diff --git a/lib/util.test.js.map b/lib/util.test.js.map index c5d18a978f..a8f415ab07 100644 --- a/lib/util.test.js.map +++ b/lib/util.test.js.map @@ -1 +1 @@ -{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/.bin/eslint-config-prettier-check b/node_modules/.bin/eslint-config-prettier similarity index 100% rename from node_modules/.bin/eslint-config-prettier-check rename to node_modules/.bin/eslint-config-prettier diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp deleted file mode 120000 index 017896cebb..0000000000 --- a/node_modules/.bin/mkdirp +++ /dev/null @@ -1 +0,0 @@ -../mkdirp/bin/cmd.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 8811f75666..2e8853625a 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -104,21 +104,35 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.5.5", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", + "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.5.0", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, - "license": "MIT", "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@chrisgavin/safe-which": { @@ -145,18 +159,18 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "0.1.3", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", - "globals": "^12.1.0", + "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -166,16 +180,18 @@ }, "node_modules/@eslint/eslintrc/node_modules/ignore": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -183,6 +199,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.3", "dev": true, @@ -402,9 +438,10 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.6", - "dev": true, - "license": "MIT" + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", @@ -464,17 +501,18 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.1.0", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.5.tgz", + "integrity": "sha512-m31cPEnbuCqXtEZQJOXAHsHvtoDi9OVaeL5wZnO2KZTnkvELk+u6J6jHg+NzvWQxk+87Zjbc4lJS4NHmgImz6Q==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "4.1.0", - "@typescript-eslint/scope-manager": "4.1.0", - "debug": "^4.1.1", + "@typescript-eslint/experimental-utils": "4.28.5", + "@typescript-eslint/scope-manager": "4.28.5", + "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -493,52 +531,58 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.17.1", + "node_modules/@typescript-eslint/experimental-utils": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.5.tgz", + "integrity": "sha512-bGPLCOJAa+j49hsynTaAtQIWg6uZd8VLiPcyDe4QPULsvQwLHGLSGKKcBN8/lBxIX14F74UEMK2zNDI8r0okwA==", "dev": true, - "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.5", + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/typescript-estree": "4.28.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "eslint": "*" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.1.0", + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.1.0", - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/typescript-estree": "4.1.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": "*" + "eslint": ">=5" } }, "node_modules/@typescript-eslint/parser": { - "version": "4.1.0", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.5.tgz", + "integrity": "sha512-NPCOGhTnkXGMqTznqgVbA5LqVsnw+i3+XA1UKLnAb+MG1Y1rP4ZSK9GX0kJBmAZTMIktf+dTwXToT6kFwyimbw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "4.1.0", - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/typescript-estree": "4.1.0", - "debug": "^4.1.1" + "@typescript-eslint/scope-manager": "4.28.5", + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/typescript-estree": "4.28.5", + "debug": "^4.3.1" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -557,12 +601,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.1.0", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.5.tgz", + "integrity": "sha512-PHLq6n9nTMrLYcVcIZ7v0VY1X7dK309NM8ya9oL/yG8syFINIMHxyr2GzGoBYUdv3NUfCOqtuqps0ZmcgnZTfQ==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/visitor-keys": "4.1.0" + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/visitor-keys": "4.28.5" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" @@ -573,9 +618,10 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.1.0", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.5.tgz", + "integrity": "sha512-MruOu4ZaDOLOhw4f/6iudyks/obuvvZUAHBDSW80Trnc5+ovmViLT2ZMDXhUV66ozcl6z0LJfKs1Usldgi/WCA==", "dev": true, - "license": "MIT", "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -585,18 +631,18 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.1.0", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.5.tgz", + "integrity": "sha512-FzJUKsBX8poCCdve7iV7ShirP8V+ys2t1fvamVeD1rWpiAnIm550a+BX/fmTHrjEpQJ7ZAn+Z7ZZwJjytk9rZw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/visitor-keys": "4.1.0", - "debug": "^4.1.1", - "globby": "^11.0.1", + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/visitor-keys": "4.28.5", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" @@ -611,45 +657,13 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { - "version": "11.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { - "version": "3.17.1", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.1.0", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.5.tgz", + "integrity": "sha512-dva/7Rr+EkxNWdJWau26xU/0slnFlkh88v3TsyTgRS/IIYFi5iIfpCFM4ikw0vQTFUR9FYSSyqgK4w64gsgxhg==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.1.0", + "@typescript-eslint/types": "4.28.5", "eslint-visitor-keys": "^2.0.0" }, "engines": { @@ -661,9 +675,10 @@ } }, "node_modules/acorn": { - "version": "7.1.1", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -672,9 +687,10 @@ } }, "node_modules/acorn-jsx": { - "version": "5.3.1", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -692,9 +708,10 @@ } }, "node_modules/ajv": { - "version": "6.12.5", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -793,12 +810,15 @@ } }, "node_modules/array-includes": { - "version": "3.1.1", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, - "license": "MIT", "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" }, "engines": { @@ -816,12 +836,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.2.3", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, - "license": "MIT", "dependencies": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.1" }, "engines": { "node": ">= 0.4" @@ -847,11 +869,12 @@ } }, "node_modules/astral-regex": { - "version": "1.0.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/ava": { @@ -1199,6 +1222,19 @@ "node": ">=8" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "dev": true, @@ -1472,14 +1508,6 @@ "version": "1.4.1", "license": "MIT" }, - "node_modules/contains-path": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/convert-source-map": { "version": "1.7.0", "dev": true, @@ -1534,11 +1562,20 @@ } }, "node_modules/debug": { - "version": "4.1.1", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decamelize": { @@ -1595,8 +1632,9 @@ }, "node_modules/define-properties": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "license": "MIT", "dependencies": { "object-keys": "^1.0.12" }, @@ -1674,6 +1712,18 @@ "node": ">=8" } }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dot-prop": { "version": "5.2.0", "dev": true, @@ -1742,21 +1792,27 @@ } }, "node_modules/es-abstract": { - "version": "1.17.6", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", "dev": true, - "license": "MIT", "dependencies": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -1767,8 +1823,9 @@ }, "node_modules/es-to-primitive": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -1797,28 +1854,32 @@ } }, "node_modules/eslint": { - "version": "7.9.0", + "version": "7.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz", + "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.1.3", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -1826,7 +1887,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -1835,7 +1896,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -1850,17 +1911,15 @@ } }, "node_modules/eslint-config-prettier": { - "version": "6.11.0", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, - "license": "MIT", - "dependencies": { - "get-stdin": "^6.0.0" - }, "bin": { - "eslint-config-prettier-check": "bin/cli.js" + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { - "eslint": ">=3.14.1" + "eslint": ">=7.0.0" } }, "node_modules/eslint-import-resolver-node": { @@ -1886,11 +1945,12 @@ "license": "MIT" }, "node_modules/eslint-module-utils": { - "version": "2.6.0", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, - "license": "MIT", "dependencies": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "engines": { @@ -1898,17 +1958,19 @@ } }, "node_modules/eslint-module-utils/node_modules/debug": { - "version": "2.6.9", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-module-utils/node_modules/find-up": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -1918,8 +1980,9 @@ }, "node_modules/eslint-module-utils/node_modules/locate-path": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -1928,15 +1991,11 @@ "node": ">=4" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/eslint-module-utils/node_modules/p-limit": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -1946,8 +2005,9 @@ }, "node_modules/eslint-module-utils/node_modules/p-locate": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -1957,24 +2017,27 @@ }, "node_modules/eslint-module-utils/node_modules/p-try": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/eslint-module-utils/node_modules/path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/eslint-module-utils/node_modules/pkg-dir": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^2.1.0" }, @@ -2015,44 +2078,48 @@ } }, "node_modules/eslint-plugin-github": { - "version": "4.1.1", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-github/-/eslint-plugin-github-4.1.5.tgz", + "integrity": "sha512-fY+3C8914Efqzmb6ODvL0ZNjv8xxLkwmUasYZ189IY1gL7AxFE9CVED+MZA8B1e+OZtnfTdrQR036t5AYoun0A==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": ">=2.25.0", - "@typescript-eslint/parser": ">=2.25.0", - "eslint-config-prettier": ">=6.10.1", - "eslint-plugin-eslint-comments": ">=3.0.1", - "eslint-plugin-import": ">=2.20.1", - "eslint-plugin-prettier": ">=3.1.2", + "@typescript-eslint/eslint-plugin": "^4.20.0", + "@typescript-eslint/parser": "^4.20.0", + "eslint-config-prettier": ">=8.0.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-prettier": "^3.3.1", "eslint-rule-documentation": ">=1.0.0", - "prettier": ">=1.12.0", - "svg-element-attributes": ">=1.3.1" + "prettier": "^2.2.1", + "svg-element-attributes": "^1.3.1" }, "bin": { "eslint-ignore-errors": "bin/eslint-ignore-errors.js" }, "peerDependencies": { - "eslint": ">=4.19.0" + "eslint": "^7.23.0" } }, "node_modules/eslint-plugin-import": { - "version": "2.22.0", + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", "dev": true, - "license": "MIT", "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.3", - "eslint-module-utils": "^2.6.0", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.4.0", "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", "tsconfig-paths": "^3.9.0" }, "engines": { @@ -2070,36 +2137,76 @@ "ms": "2.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", + "node_modules/eslint-plugin-import/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "locate-path": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/eslint-plugin-import/node_modules/isarray": { - "version": "1.0.0", + "node_modules/eslint-plugin-import/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "license": "MIT" + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "dev": true, "license": "MIT" }, - "node_modules/eslint-plugin-import/node_modules/resolve": { - "version": "1.17.0", + "node_modules/eslint-plugin-import/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "license": "MIT", "dependencies": { - "path-parse": "^1.0.6" + "p-limit": "^1.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/eslint-plugin-no-async-foreach": { @@ -2114,9 +2221,10 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "3.1.4", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz", + "integrity": "sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==", "dev": true, - "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0" }, @@ -2126,6 +2234,11 @@ "peerDependencies": { "eslint": ">=5.0.0", "prettier": ">=1.13.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, "node_modules/eslint-rule-documentation": { @@ -2248,12 +2361,16 @@ "node": ">=6.0.0" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/has-flag": { @@ -2336,41 +2453,33 @@ } }, "node_modules/espree": { - "version": "7.3.0", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "acorn": "^7.4.0", - "acorn-jsx": "^5.2.0", + "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/esquery": { - "version": "1.3.1", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -2380,8 +2489,9 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -2448,8 +2558,9 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -2479,14 +2590,15 @@ } }, "node_modules/file-entry-cache": { - "version": "5.0.1", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "dependencies": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=4" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/file-url": { @@ -2527,33 +2639,23 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "license": "MIT", "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "2.0.2", - "dev": true, - "license": "ISC" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "dev": true }, "node_modules/fs": { "version": "0.0.1-security", @@ -2586,8 +2688,9 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -2602,12 +2705,18 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-stdin": { - "version": "6.0.0", + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-stream": { @@ -2681,9 +2790,10 @@ } }, "node_modules/glob-parent": { - "version": ">=5.1.2", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2703,11 +2813,12 @@ } }, "node_modules/globals": { - "version": "12.4.0", + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" @@ -2717,9 +2828,10 @@ } }, "node_modules/globby": { - "version": "11.0.0", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -2762,8 +2874,9 @@ }, "node_modules/has": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -2771,6 +2884,15 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "license": "MIT", @@ -2779,9 +2901,10 @@ } }, "node_modules/has-symbols": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2821,21 +2944,26 @@ "license": "ISC" }, "node_modules/import-fresh": { - "version": "3.2.1", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -2909,6 +3037,15 @@ "dev": true, "license": "MIT" }, + "node_modules/is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "dev": true, @@ -2920,14 +3057,30 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-buffer": { "version": "1.1.6", "license": "MIT" }, "node_modules/is-callable": { - "version": "1.2.1", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2946,10 +3099,23 @@ "is-ci": "bin.js" } }, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { - "version": "1.0.2", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3013,11 +3179,15 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-npm": { @@ -3036,6 +3206,18 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "dev": true, @@ -3077,11 +3259,13 @@ "license": "MIT" }, "node_modules/is-regex": { - "version": "1.1.1", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3091,9 +3275,10 @@ } }, "node_modules/is-string": { - "version": "1.0.5", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3102,11 +3287,12 @@ } }, "node_modules/is-symbol": { - "version": "1.0.3", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "license": "MIT", "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3153,8 +3339,9 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.13.1", @@ -3190,8 +3377,9 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3366,6 +3554,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "node_modules/lodash.upperfirst": { "version": "4.3.1", "dev": true, @@ -3394,6 +3588,17 @@ "node": ">=0.10.0" } }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/make-dir": { "version": "3.0.2", "dev": true, @@ -3544,17 +3749,6 @@ "dev": true, "license": "MIT" }, - "node_modules/mkdirp": { - "version": "0.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.2", "dev": true, @@ -3639,28 +3833,31 @@ } }, "node_modules/object-inspect": { - "version": "1.8.0", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true, - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.1", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "license": "MIT", "dependencies": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" }, @@ -3671,40 +3868,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.assign/node_modules/es-abstract": { - "version": "1.18.0-next.0", - "dev": true, - "license": "MIT", - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { - "version": "1.1.1", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, - "license": "MIT", "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "es-abstract": "^1.18.2" }, "engines": { "node": ">= 0.4" @@ -3898,8 +4070,9 @@ }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4041,6 +4214,85 @@ "node": ">=8" } }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/plur": { "version": "4.0.0", "dev": true, @@ -4072,9 +4324,10 @@ } }, "node_modules/prettier": { - "version": "2.1.1", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -4084,8 +4337,9 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -4141,8 +4395,9 @@ }, "node_modules/punycode": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -4203,12 +4458,13 @@ } }, "node_modules/read-pkg-up": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" }, "engines": { "node": ">=4" @@ -4216,8 +4472,9 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^2.0.0" }, @@ -4226,13 +4483,14 @@ } }, "node_modules/read-pkg-up/node_modules/load-json-file": { - "version": "2.0.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, - "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "engines": { @@ -4241,8 +4499,9 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -4253,8 +4512,9 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^1.0.0" }, @@ -4264,8 +4524,9 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^1.1.0" }, @@ -4275,39 +4536,52 @@ }, "node_modules/read-pkg-up/node_modules/p-try": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/path-type": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "license": "MIT", "dependencies": { - "pify": "^2.0.0" + "pify": "^3.0.0" }, "engines": { "node": ">=4" } }, + "node_modules/read-pkg-up/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "2.0.0", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, - "license": "MIT", "dependencies": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" }, "engines": { "node": ">=4" @@ -4398,6 +4672,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-main-filename": { "version": "2.0.0", "dev": true, @@ -4412,10 +4695,12 @@ } }, "node_modules/resolve": { - "version": "1.13.1", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, - "license": "MIT", "dependencies": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" }, "funding": { @@ -4495,8 +4780,12 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.3.2", - "license": "ISC", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" }, @@ -4621,14 +4910,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/slice-ansi/node_modules/color-convert": { "version": "2.0.1", "dev": true, @@ -4713,24 +4994,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.1", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, - "license": "MIT", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.1", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, - "license": "MIT", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4841,67 +5124,92 @@ } }, "node_modules/table": { - "version": "5.4.6", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0.0" } }, - "node_modules/table/node_modules/emoji-regex": { - "version": "7.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", + "node_modules/table/node_modules/ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/table/node_modules/slice-ansi": { - "version": "2.1.0", + "node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", + "node_modules/table/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6" + "node": ">=7.0.0" } }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", + "node_modules/table/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/temp-dir": { @@ -5002,9 +5310,25 @@ } }, "node_modules/tslib": { - "version": "1.11.1", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "license": "Apache-2.0" + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } }, "node_modules/type-check": { "version": "0.4.0", @@ -5026,11 +5350,15 @@ } }, "node_modules/type-fest": { - "version": "0.8.1", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray-to-buffer": { @@ -5054,6 +5382,21 @@ "node": ">=4.2.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unique-string": { "version": "2.0.0", "dev": true, @@ -5165,9 +5508,10 @@ } }, "node_modules/uri-js": { - "version": "4.4.0", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -5227,6 +5571,22 @@ "node": ">=6" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "2.0.0", "dev": true, @@ -5283,17 +5643,6 @@ "version": "1.0.2", "license": "ISC" }, - "node_modules/write": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/write-file-atomic": { "version": "3.0.3", "dev": true, @@ -5318,6 +5667,11 @@ "dev": true, "license": "ISC" }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/yargs": { "version": "15.3.1", "dev": true, diff --git a/node_modules/@babel/code-frame/README.md b/node_modules/@babel/code-frame/README.md index 185f93d247..08cacb0477 100644 --- a/node_modules/@babel/code-frame/README.md +++ b/node_modules/@babel/code-frame/README.md @@ -2,7 +2,7 @@ > Generate errors that contain a code frame that point to source locations. -See our website [@babel/code-frame](https://babeljs.io/docs/en/next/babel-code-frame.html) for more information. +See our website [@babel/code-frame](https://babeljs.io/docs/en/babel-code-frame) for more information. ## Install diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js index 35176fbc06..28d86f7bc1 100644 --- a/node_modules/@babel/code-frame/lib/index.js +++ b/node_modules/@babel/code-frame/lib/index.js @@ -6,17 +6,11 @@ Object.defineProperty(exports, "__esModule", { exports.codeFrameColumns = codeFrameColumns; exports.default = _default; -function _highlight() { - const data = _interopRequireWildcard(require("@babel/highlight")); +var _highlight = _interopRequireWildcard(require("@babel/highlight")); - _highlight = function () { - return data; - }; - - return data; -} +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } let deprecationWarningShown = false; @@ -94,8 +88,8 @@ function getMarkerLines(loc, source, opts) { } function codeFrameColumns(rawLines, loc, opts = {}) { - const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight().shouldHighlight)(opts); - const chalk = (0, _highlight().getChalk)(opts); + const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); + const chalk = (0, _highlight.getChalk)(opts); const defs = getDefs(chalk); const maybeHighlight = (chalkFn, string) => { @@ -110,7 +104,7 @@ function codeFrameColumns(rawLines, loc, opts = {}) { } = getMarkerLines(loc, lines, opts); const hasColumns = loc.start && typeof loc.start.column === "number"; const numberMaxWidth = String(end).length; - const highlightedLines = highlighted ? (0, _highlight().default)(rawLines, opts) : rawLines; + const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => { const number = start + 1 + index; const paddedNumber = ` ${number}`.slice(-numberMaxWidth); diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json index ce0bf0f627..07a28a6bda 100644 --- a/node_modules/@babel/code-frame/package.json +++ b/node_modules/@babel/code-frame/package.json @@ -1,6 +1,6 @@ { "name": "@babel/code-frame", - "version": "7.5.5", + "version": "7.12.11", "description": "Generate errors that contain a code frame that point to source locations.", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,14 +8,18 @@ "publishConfig": { "access": "public" }, - "repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-code-frame" + }, "main": "lib/index.js", "dependencies": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.10.4" }, "devDependencies": { + "@types/chalk": "^2.0.0", "chalk": "^2.0.0", "strip-ansi": "^4.0.0" - }, - "gitHead": "0407f034f09381b95e9cabefbf6b176c76485a43" + } } \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/LICENSE b/node_modules/@babel/helper-validator-identifier/LICENSE new file mode 100644 index 0000000000..f31575ec77 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-validator-identifier/README.md b/node_modules/@babel/helper-validator-identifier/README.md new file mode 100644 index 0000000000..6733576a8c --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/README.md @@ -0,0 +1,19 @@ +# @babel/helper-validator-identifier + +> Validate identifier/keywords name + +See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/en/babel-helper-validator-identifier) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/helper-validator-identifier +``` + +or using yarn: + +```sh +yarn add @babel/helper-validator-identifier --dev +``` diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/node_modules/@babel/helper-validator-identifier/lib/identifier.js new file mode 100644 index 0000000000..71310db1f3 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/identifier.js @@ -0,0 +1,84 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isIdentifierStart = isIdentifierStart; +exports.isIdentifierChar = isIdentifierChar; +exports.isIdentifierName = isIdentifierName; +let nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + +function isInAstralSet(code, set) { + let pos = 0x10000; + + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + + return false; +} + +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + + return isInAstralSet(code, astralIdentifierStartCodes); +} + +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} + +function isIdentifierName(name) { + let isFirst = true; + + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + + if (isFirst) { + isFirst = false; + + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + + return !isFirst; +} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js b/node_modules/@babel/helper-validator-identifier/lib/index.js new file mode 100644 index 0000000000..7b623c90a6 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/index.js @@ -0,0 +1,57 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isIdentifierName", { + enumerable: true, + get: function () { + return _identifier.isIdentifierName; + } +}); +Object.defineProperty(exports, "isIdentifierChar", { + enumerable: true, + get: function () { + return _identifier.isIdentifierChar; + } +}); +Object.defineProperty(exports, "isIdentifierStart", { + enumerable: true, + get: function () { + return _identifier.isIdentifierStart; + } +}); +Object.defineProperty(exports, "isReservedWord", { + enumerable: true, + get: function () { + return _keyword.isReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindOnlyReservedWord; + } +}); +Object.defineProperty(exports, "isStrictBindReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictBindReservedWord; + } +}); +Object.defineProperty(exports, "isStrictReservedWord", { + enumerable: true, + get: function () { + return _keyword.isStrictReservedWord; + } +}); +Object.defineProperty(exports, "isKeyword", { + enumerable: true, + get: function () { + return _keyword.isKeyword; + } +}); + +var _identifier = require("./identifier"); + +var _keyword = require("./keyword"); \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/node_modules/@babel/helper-validator-identifier/lib/keyword.js new file mode 100644 index 0000000000..110cee4002 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/lib/keyword.js @@ -0,0 +1,38 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isReservedWord = isReservedWord; +exports.isStrictReservedWord = isStrictReservedWord; +exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; +exports.isStrictBindReservedWord = isStrictBindReservedWord; +exports.isKeyword = isKeyword; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} + +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} + +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} + +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} + +function isKeyword(word) { + return keywords.has(word); +} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/package.json b/node_modules/@babel/helper-validator-identifier/package.json new file mode 100644 index 0000000000..cf138d6f2c --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/package.json @@ -0,0 +1,26 @@ +{ + "name": "@babel/helper-validator-identifier", + "version": "7.14.8", + "description": "Validate identifier/keywords name", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-helper-validator-identifier" + }, + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "exports": "./lib/index.js", + "devDependencies": { + "@babel/helper-validator-identifier-baseline": "npm:@babel/helper-validator-identifier@7.10.4", + "@unicode/unicode-13.0.0": "^1.0.6", + "benchmark": "^2.1.4", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)" +} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js b/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js new file mode 100644 index 0000000000..45276d51b2 --- /dev/null +++ b/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js @@ -0,0 +1,75 @@ +"use strict"; + +// Always use the latest available version of Unicode! +// https://tc39.github.io/ecma262/#sec-conformance +const version = "13.0.0"; + +const start = require("@unicode/unicode-" + + version + + "/Binary_Property/ID_Start/code-points.js").filter(function (ch) { + return ch > 0x7f; +}); +let last = -1; +const cont = [0x200c, 0x200d].concat( + require("@unicode/unicode-" + + version + + "/Binary_Property/ID_Continue/code-points.js").filter(function (ch) { + return ch > 0x7f && search(start, ch, last + 1) == -1; + }) +); + +function search(arr, ch, starting) { + for (let i = starting; arr[i] <= ch && i < arr.length; last = i++) { + if (arr[i] === ch) return i; + } + return -1; +} + +function pad(str, width) { + while (str.length < width) str = "0" + str; + return str; +} + +function esc(code) { + const hex = code.toString(16); + if (hex.length <= 2) return "\\x" + pad(hex, 2); + else return "\\u" + pad(hex, 4); +} + +function generate(chars) { + const astral = []; + let re = ""; + for (let i = 0, at = 0x10000; i < chars.length; i++) { + const from = chars[i]; + let to = from; + while (i < chars.length - 1 && chars[i + 1] == to + 1) { + i++; + to++; + } + if (to <= 0xffff) { + if (from == to) re += esc(from); + else if (from + 1 == to) re += esc(from) + esc(to); + else re += esc(from) + "-" + esc(to); + } else { + astral.push(from - at, to - from); + at = to; + } + } + return { nonASCII: re, astral: astral }; +} + +const startData = generate(start); +const contData = generate(cont); + +console.log("/* prettier-ignore */"); +console.log('let nonASCIIidentifierStartChars = "' + startData.nonASCII + '";'); +console.log("/* prettier-ignore */"); +console.log('let nonASCIIidentifierChars = "' + contData.nonASCII + '";'); +console.log("/* prettier-ignore */"); +console.log( + "const astralIdentifierStartCodes = " + JSON.stringify(startData.astral) + ";" +); +console.log("/* prettier-ignore */"); +console.log( + "const astralIdentifierCodes = " + JSON.stringify(contData.astral) + ";" +); diff --git a/node_modules/@babel/highlight/README.md b/node_modules/@babel/highlight/README.md index 72dae60945..f8887ad2ca 100644 --- a/node_modules/@babel/highlight/README.md +++ b/node_modules/@babel/highlight/README.md @@ -2,7 +2,7 @@ > Syntax highlight JavaScript strings for output in terminals. -See our website [@babel/highlight](https://babeljs.io/docs/en/next/babel-highlight.html) for more information. +See our website [@babel/highlight](https://babeljs.io/docs/en/babel-highlight) for more information. ## Install diff --git a/node_modules/@babel/highlight/lib/index.js b/node_modules/@babel/highlight/lib/index.js index 6ac5b4a350..34e308f4ef 100644 --- a/node_modules/@babel/highlight/lib/index.js +++ b/node_modules/@babel/highlight/lib/index.js @@ -7,45 +7,19 @@ exports.shouldHighlight = shouldHighlight; exports.getChalk = getChalk; exports.default = highlight; -function _jsTokens() { - const data = _interopRequireWildcard(require("js-tokens")); +var _jsTokens = require("js-tokens"); - _jsTokens = function () { - return data; - }; - - return data; -} - -function _esutils() { - const data = _interopRequireDefault(require("esutils")); - - _esutils = function () { - return data; - }; - - return data; -} - -function _chalk() { - const data = _interopRequireDefault(require("chalk")); +var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); - _chalk = function () { - return data; - }; +var _chalk = require("chalk"); - return data; -} - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); function getDefs(chalk) { return { keyword: chalk.cyan, capitalized: chalk.yellow, - jsx_tag: chalk.yellow, + jsxIdentifier: chalk.yellow, punctuator: chalk.yellow, number: chalk.magenta, string: chalk.green, @@ -56,66 +30,79 @@ function getDefs(chalk) { } const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; -const JSX_TAG = /^[a-z][\w-]*$/i; const BRACKET = /^[()[\]{}]$/; - -function getTokenType(match) { - const [offset, text] = match.slice(-2); - const token = (0, _jsTokens().matchToToken)(match); - - if (token.type === "name") { - if (_esutils().default.keyword.isReservedWordES6(token.value)) { - return "keyword"; +let tokenize; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; + + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); + highlighted += value.split(NEWLINE).map(str => colorize(str)).join("\n"); } else { - return args[0]; + highlighted += value; } - }); + } + + return highlighted; } function shouldHighlight(options) { - return _chalk().default.supportsColor || options.forceColor; + return !!_chalk.supportsColor || options.forceColor; } function getChalk(options) { - let chalk = _chalk().default; - - if (options.forceColor) { - chalk = new (_chalk().default.constructor)({ - enabled: true, - level: 1 - }); - } - - return chalk; + return options.forceColor ? new _chalk.constructor({ + enabled: true, + level: 1 + }) : _chalk; } function highlight(code, options = {}) { diff --git a/node_modules/@babel/highlight/package.json b/node_modules/@babel/highlight/package.json index c958a9e8d4..210c22c511 100644 --- a/node_modules/@babel/highlight/package.json +++ b/node_modules/@babel/highlight/package.json @@ -1,22 +1,29 @@ { "name": "@babel/highlight", - "version": "7.5.0", + "version": "7.14.5", "description": "Syntax highlight JavaScript strings for output in terminals.", - "author": "suchipi ", - "homepage": "https://babeljs.io/", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-highlight", "license": "MIT", "publishConfig": { "access": "public" }, - "repository": "https://github.com/babel/babel/tree/master/packages/babel-highlight", - "main": "lib/index.js", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-highlight" + }, + "main": "./lib/index.js", "dependencies": { + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" }, "devDependencies": { + "@types/chalk": "^2.0.0", "strip-ansi": "^4.0.0" }, - "gitHead": "49da9a07c81156e997e60146eb001ea77b7044c4" + "engines": { + "node": ">=6.9.0" + } } \ No newline at end of file diff --git a/node_modules/@eslint/eslintrc/CHANGELOG.md b/node_modules/@eslint/eslintrc/CHANGELOG.md index 1e39a092e5..3250e1e841 100644 --- a/node_modules/@eslint/eslintrc/CHANGELOG.md +++ b/node_modules/@eslint/eslintrc/CHANGELOG.md @@ -1,3 +1,49 @@ +v0.4.3 - July 17, 2021 + +* [`ce78027`](https://github.com/eslint/eslintrc/commit/ce78027f6a319a29fdf0b78ac1e7071373acffc4) Fix: ensure config files are files (#42) (Tom Jenkinson) +* [`95b1c9b`](https://github.com/eslint/eslintrc/commit/95b1c9b30267479a75cd07768f8f9e9cfa63c105) Chore: pin fs-teardown@0.1.1 (#45) (Milos Djermanovic) +* [`593fbe3`](https://github.com/eslint/eslintrc/commit/593fbe3c2c1c5f723f71810963ed21a56caed4c1) Chore: fix failing test (#44) (Tom Jenkinson) + +v0.4.2 - June 4, 2021 + +* [`cc79a4d`](https://github.com/eslint/eslintrc/commit/cc79a4db45a2ca0236a846ed8eba28eea07d4db5) Upgrade: update globals to version 13.6 (#32) (Rouven Weßling) + +v0.4.1 - May 7, 2021 + +* [`aa38ef4`](https://github.com/eslint/eslintrc/commit/aa38ef40c3123f8f534c7f9b0b7c306f5f011dce) Fix: Properly export module resolver (#34) (Richie Bendall) +* [`62ea4bd`](https://github.com/eslint/eslintrc/commit/62ea4bd74b78fbeff12ffb21f1f978817601d4d1) Build: add node v16 (#33) (薛定谔的猫) +* [`7c43d77`](https://github.com/eslint/eslintrc/commit/7c43d7784e39cf0b7b102af64f703cade11252bb) Chore: add tests for built-in rules config schema validation (fixes #15) (#31) (Milos Djermanovic) +* [`d8ea601`](https://github.com/eslint/eslintrc/commit/d8ea601ecb4b9f81cdc332b012b6b1bbc984366c) Chore: Test on Node 15.x (#30) (Milos Djermanovic) +* [`0b2f80d`](https://github.com/eslint/eslintrc/commit/0b2f80d6f6b33e4c5e168b08468867653f726754) Chore: lint test files (#18) (Milos Djermanovic) + +v0.4.0 - February 27, 2021 + +* [`d9a527b`](https://github.com/eslint/eslintrc/commit/d9a527bdb16af46a28d37fa9022131149970a438) New: Implement DotCompat class (#20) (Nicholas C. Zakas) +* [`dac76c0`](https://github.com/eslint/eslintrc/commit/dac76c035a9ab9d315050f688867373966aab288) Chore: Replace usage of lodash with cache set (#29) (Tim van der Lippe) +* [`3ae2d77`](https://github.com/eslint/eslintrc/commit/3ae2d770cb810c026de817e6861e25dac111da9f) Update: add AggregateError global to es2021 environment (#28) (Milos Djermanovic) + +v0.3.0 - January 15, 2021 + +* [`5184490`](https://github.com/eslint/eslintrc/commit/51844902bc4132f264f05a0614f2cdeb89290f68) Upgrade: lodash@4.17.20 (#24) (Milos Djermanovic) +* [`f1179c5`](https://github.com/eslint/eslintrc/commit/f1179c587ae09fabb5c3402598363cfcec2494f7) Update: Implement missing functionality from ESLint port (fixes #12) (#23) (Nicholas C. Zakas) + +v0.2.2 - December 5, 2020 + +* [`1746840`](https://github.com/eslint/eslintrc/commit/17468407c1baf05747cb261c91f7f7b7c2a82422) Fix: include loadRules in internalSlotsMap cache (#19) (Henry Q. Dineen) +* [`f30bb49`](https://github.com/eslint/eslintrc/commit/f30bb4935aaf3f4c1b268490da495a59647e58d8) Chore: Test fixes for CascadingConfigArrayFactory (#17) (Nicholas C. Zakas) +* [`4440df8`](https://github.com/eslint/eslintrc/commit/4440df8237a127e15cbde5c697353e1224f12ec1) Chore: Fix config-array tests (#16) (Nicholas C. Zakas) +* [`7890e02`](https://github.com/eslint/eslintrc/commit/7890e027df530a0fb53bcf5751c8c7a008b2a494) Chore: Test fixes for config-array-factory.js (#13) (Nicholas C. Zakas) + +v0.2.1 - October 26, 2020 + +* [`8b202ff`](https://github.com/eslint/eslintrc/commit/8b202ff866a39efdaad6394fde9f88372afbfca8) Fix: validate schema for built-in rules (#14) (Milos Djermanovic) +* [`04f3cae`](https://github.com/eslint/eslintrc/commit/04f3cae17fe07b2fd0b74fd3e88482b3094e75e3) Fix: cache compiled config schema (#9) (Milos Djermanovic) + +v0.2.0 - October 16, 2020 + +* [`cb12255`](https://github.com/eslint/eslintrc/commit/cb12255b85390e932e1942e479c2c97310149390) Update: Allow eslint:all and eslint:recommended paths to be passed in (#11) (Nicholas C. Zakas) +* [`a75bacd`](https://github.com/eslint/eslintrc/commit/a75bacd9a743a7bbcdb8c59e5d4f9de3dc8b0f20) Chore: use GitHub Actions (#10) (Milos Djermanovic) + v0.1.3 - September 1, 2020 * [`8647a61`](https://github.com/eslint/eslintrc/commit/8647a61991fe121f923d33e96232475209b78210) Fix: version number and eslint-release version (refs #6) (Nicholas C. Zakas) diff --git a/node_modules/@eslint/eslintrc/README.md b/node_modules/@eslint/eslintrc/README.md index cd65564e66..11ff46ec04 100644 --- a/node_modules/@eslint/eslintrc/README.md +++ b/node_modules/@eslint/eslintrc/README.md @@ -4,7 +4,7 @@ This repository contains the legacy ESLintRC configuration file format for ESLin **Note:** This package is not intended for use outside of the ESLint ecosystem. It is ESLint-specific and not intended for use in other programs. -## Usage +## Installation You can install the package as follows: @@ -16,6 +16,46 @@ npm install @eslint/eslintrc --save-dev yarn add @eslint/eslintrc -D ``` +## Future Usage + +**Note:** This package is not intended for public use at this time. The following is an example of how it will be used in the future. + +The primary class in this package is `FlatCompat`, which is a utility to translate ESLintRC-style configs into flat configs. Here's how you use it inside of your `eslint.config.js` file: + +```js +import { FlatCompat } from "@eslint/eslintrc"; + +const compat = new FlatCompat(); + +export default [ + + // mimic ESLintRC-style extends + compat.extends("standard", "example"), + + // mimic environments + compat.env({ + es2020: true, + node: true + }), + + // mimic plugins + compat.plugins("airbnb", "react"), + + // translate an entire config + compat.config({ + plugins: ["airbnb", "react"], + extends: "standard", + env: { + es2020: true, + node: true + }, + rules: { + semi: "error" + } + }) +]; +``` + ## License MIT License diff --git a/node_modules/@eslint/eslintrc/conf/category-list.json b/node_modules/@eslint/eslintrc/conf/category-list.json deleted file mode 100644 index cd3b816b65..0000000000 --- a/node_modules/@eslint/eslintrc/conf/category-list.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "categories": [ - { "name": "Possible Errors", "description": "These rules relate to possible syntax or logic errors in JavaScript code:" }, - { "name": "Best Practices", "description": "These rules relate to better ways of doing things to help you avoid problems:" }, - { "name": "Strict Mode", "description": "These rules relate to strict mode directives:" }, - { "name": "Variables", "description": "These rules relate to variable declarations:" }, - { "name": "Stylistic Issues", "description": "These rules relate to style guidelines, and are therefore quite subjective:" }, - { "name": "ECMAScript 6", "description": "These rules relate to ES6, also known as ES2015:" } - ], - "deprecated": { - "name": "Deprecated", - "description": "These rules have been deprecated in accordance with the deprecation policy, and replaced by newer rules:", - "rules": [] - }, - "removed": { - "name": "Removed", - "description": "These rules from older versions of ESLint (before the deprecation policy existed) have been replaced by newer rules:", - "rules": [ - { "removed": "generator-star", "replacedBy": ["generator-star-spacing"] }, - { "removed": "global-strict", "replacedBy": ["strict"] }, - { "removed": "no-arrow-condition", "replacedBy": ["no-confusing-arrow", "no-constant-condition"] }, - { "removed": "no-comma-dangle", "replacedBy": ["comma-dangle"] }, - { "removed": "no-empty-class", "replacedBy": ["no-empty-character-class"] }, - { "removed": "no-empty-label", "replacedBy": ["no-labels"] }, - { "removed": "no-extra-strict", "replacedBy": ["strict"] }, - { "removed": "no-reserved-keys", "replacedBy": ["quote-props"] }, - { "removed": "no-space-before-semi", "replacedBy": ["semi-spacing"] }, - { "removed": "no-wrap-func", "replacedBy": ["no-extra-parens"] }, - { "removed": "space-after-function-name", "replacedBy": ["space-before-function-paren"] }, - { "removed": "space-after-keywords", "replacedBy": ["keyword-spacing"] }, - { "removed": "space-before-function-parentheses", "replacedBy": ["space-before-function-paren"] }, - { "removed": "space-before-keywords", "replacedBy": ["keyword-spacing"] }, - { "removed": "space-in-brackets", "replacedBy": ["object-curly-spacing", "array-bracket-spacing"] }, - { "removed": "space-return-throw-case", "replacedBy": ["keyword-spacing"] }, - { "removed": "space-unary-word-ops", "replacedBy": ["space-unary-ops"] }, - { "removed": "spaced-line-comment", "replacedBy": ["spaced-comment"] } - ] - } -} diff --git a/node_modules/@eslint/eslintrc/conf/default-cli-options.js b/node_modules/@eslint/eslintrc/conf/default-cli-options.js deleted file mode 100644 index e09a829d17..0000000000 --- a/node_modules/@eslint/eslintrc/conf/default-cli-options.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * @fileoverview Default CLIEngineOptions. - * @author Ian VanSchooten - */ - -"use strict"; - -module.exports = { - configFile: null, - baseConfig: false, - rulePaths: [], - useEslintrc: true, - envs: [], - globals: [], - extensions: null, - ignore: true, - ignorePath: void 0, - cache: false, - - /* - * in order to honor the cacheFile option if specified - * this option should not have a default value otherwise - * it will always be used - */ - cacheLocation: "", - cacheFile: ".eslintcache", - fix: false, - allowInlineConfig: true, - reportUnusedDisableDirectives: void 0, - globInputPaths: true -}; diff --git a/node_modules/@eslint/eslintrc/conf/environments.js b/node_modules/@eslint/eslintrc/conf/environments.js index d3237c7256..757c9fe696 100644 --- a/node_modules/@eslint/eslintrc/conf/environments.js +++ b/node_modules/@eslint/eslintrc/conf/environments.js @@ -45,6 +45,7 @@ const newGlobals2020 = { }; const newGlobals2021 = { + AggregateError: false, FinalizationRegistry: false, WeakRef: false }; diff --git a/node_modules/@eslint/eslintrc/conf/eslint-all.js b/node_modules/@eslint/eslintrc/conf/eslint-all.js index cdd8a3e471..859811c8d5 100644 --- a/node_modules/@eslint/eslintrc/conf/eslint-all.js +++ b/node_modules/@eslint/eslintrc/conf/eslint-all.js @@ -1,32 +1,12 @@ /** - * @fileoverview Config to enable all rules. - * @author Robert Fletcher + * @fileoverview Stub eslint:all config + * @author Nicholas C. Zakas */ "use strict"; -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -// FIXME: "../lib/rules" doesn't exist in this package -const builtInRules = require("../lib/rules"); - -//------------------------------------------------------------------------------ -// Helpers -//------------------------------------------------------------------------------ - -const allRules = {}; - -for (const [ruleId, rule] of builtInRules) { - if (!rule.meta.deprecated) { - allRules[ruleId] = "error"; +module.exports = { + settings: { + "eslint:all": true } -} - -//------------------------------------------------------------------------------ -// Public Interface -//------------------------------------------------------------------------------ - -/** @type {import("../lib/shared/types").ConfigData} */ -module.exports = { rules: allRules }; +}; diff --git a/node_modules/@eslint/eslintrc/conf/eslint-recommended.js b/node_modules/@eslint/eslintrc/conf/eslint-recommended.js index 2137685fb7..96300919ac 100644 --- a/node_modules/@eslint/eslintrc/conf/eslint-recommended.js +++ b/node_modules/@eslint/eslintrc/conf/eslint-recommended.js @@ -1,72 +1,12 @@ /** - * @fileoverview Configuration applied when a user configuration extends from - * eslint:recommended. + * @fileoverview Stub eslint:recommended config * @author Nicholas C. Zakas */ "use strict"; -/* eslint sort-keys: ["error", "asc"] */ - -/** @type {import("../lib/shared/types").ConfigData} */ module.exports = { - rules: { - "constructor-super": "error", - "for-direction": "error", - "getter-return": "error", - "no-async-promise-executor": "error", - "no-case-declarations": "error", - "no-class-assign": "error", - "no-compare-neg-zero": "error", - "no-cond-assign": "error", - "no-const-assign": "error", - "no-constant-condition": "error", - "no-control-regex": "error", - "no-debugger": "error", - "no-delete-var": "error", - "no-dupe-args": "error", - "no-dupe-class-members": "error", - "no-dupe-else-if": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-empty": "error", - "no-empty-character-class": "error", - "no-empty-pattern": "error", - "no-ex-assign": "error", - "no-extra-boolean-cast": "error", - "no-extra-semi": "error", - "no-fallthrough": "error", - "no-func-assign": "error", - "no-global-assign": "error", - "no-import-assign": "error", - "no-inner-declarations": "error", - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-misleading-character-class": "error", - "no-mixed-spaces-and-tabs": "error", - "no-new-symbol": "error", - "no-obj-calls": "error", - "no-octal": "error", - "no-prototype-builtins": "error", - "no-redeclare": "error", - "no-regex-spaces": "error", - "no-self-assign": "error", - "no-setter-return": "error", - "no-shadow-restricted-names": "error", - "no-sparse-arrays": "error", - "no-this-before-super": "error", - "no-undef": "error", - "no-unexpected-multiline": "error", - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unsafe-negation": "error", - "no-unused-labels": "error", - "no-unused-vars": "error", - "no-useless-catch": "error", - "no-useless-escape": "error", - "no-with": "error", - "require-yield": "error", - "use-isnan": "error", - "valid-typeof": "error" + settings: { + "eslint:recommended": true } }; diff --git a/node_modules/@eslint/eslintrc/conf/replacements.json b/node_modules/@eslint/eslintrc/conf/replacements.json deleted file mode 100644 index c047811e60..0000000000 --- a/node_modules/@eslint/eslintrc/conf/replacements.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "rules": { - "generator-star": ["generator-star-spacing"], - "global-strict": ["strict"], - "no-arrow-condition": ["no-confusing-arrow", "no-constant-condition"], - "no-comma-dangle": ["comma-dangle"], - "no-empty-class": ["no-empty-character-class"], - "no-empty-label": ["no-labels"], - "no-extra-strict": ["strict"], - "no-reserved-keys": ["quote-props"], - "no-space-before-semi": ["semi-spacing"], - "no-wrap-func": ["no-extra-parens"], - "space-after-function-name": ["space-before-function-paren"], - "space-after-keywords": ["keyword-spacing"], - "space-before-function-parentheses": ["space-before-function-paren"], - "space-before-keywords": ["keyword-spacing"], - "space-in-brackets": ["object-curly-spacing", "array-bracket-spacing", "computed-property-spacing"], - "space-return-throw-case": ["keyword-spacing"], - "space-unary-word-ops": ["space-unary-ops"], - "spaced-line-comment": ["spaced-comment"] - } -} diff --git a/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js b/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js index a6933964e9..c991c24b60 100644 --- a/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +++ b/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js @@ -36,9 +36,10 @@ const debug = require("debug")("eslintrc:cascading-config-array-factory"); //------------------------------------------------------------------------------ // Define types for VSCode IntelliSense. -/** @typedef {import("../shared/types").ConfigData} ConfigData */ -/** @typedef {import("../shared/types").Parser} Parser */ -/** @typedef {import("../shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").ConfigData} ConfigData */ +/** @typedef {import("./shared/types").Parser} Parser */ +/** @typedef {import("./shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").Rule} Rule */ /** @typedef {ReturnType} ConfigArray */ /** @@ -51,6 +52,11 @@ const debug = require("debug")("eslintrc:cascading-config-array-factory"); * @property {string[]} [rulePaths] The value of `--rulesdir` option. * @property {string} [specificConfigPath] The value of `--config` option. * @property {boolean} [useEslintrc] if `false` then it doesn't load config files. + * @property {Function} loadRules The function to use to load rules. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. */ /** @@ -67,6 +73,11 @@ const debug = require("debug")("eslintrc:cascading-config-array-factory"); * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`. * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`. * @property {boolean} useEslintrc if `false` then it doesn't load config files. + * @property {Function} loadRules The function to use to load rules. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. */ /** @type {WeakMap} */ @@ -205,14 +216,18 @@ class CascadingConfigArrayFactory { useEslintrc = true, builtInRules = new Map(), loadRules, - resolver + resolver, + eslintRecommendedPath, + eslintAllPath } = {}) { const configArrayFactory = new ConfigArrayFactory({ additionalPluginPool, cwd, resolvePluginsRelativeTo, builtInRules, - resolver + resolver, + eslintRecommendedPath, + eslintAllPath }); internalSlotsMap.set(this, { @@ -240,7 +255,9 @@ class CascadingConfigArrayFactory { ignorePath, rulePaths, specificConfigPath, - useEslintrc + useEslintrc, + builtInRules, + loadRules }); } @@ -423,7 +440,8 @@ class CascadingConfigArrayFactory { cliConfigArray, configArrayFactory, finalizeCache, - useEslintrc + useEslintrc, + builtInRules } = internalSlotsMap.get(this); let finalConfigArray = finalizeCache.get(configArray); @@ -469,7 +487,7 @@ class CascadingConfigArrayFactory { // Validate rule settings and environments. const validator = new ConfigValidator({ - builtInRules: configArrayFactory.builtInRules + builtInRules }); validator.validateConfigArray(finalConfigArray); diff --git a/node_modules/@eslint/eslintrc/lib/config-array-factory.js b/node_modules/@eslint/eslintrc/lib/config-array-factory.js index 97f8b5cb2d..406601c247 100644 --- a/node_modules/@eslint/eslintrc/lib/config-array-factory.js +++ b/node_modules/@eslint/eslintrc/lib/config-array-factory.js @@ -58,8 +58,6 @@ const debug = require("debug")("eslintrc:config-array-factory"); // Helpers //------------------------------------------------------------------------------ -const eslintRecommendedPath = path.resolve(__dirname, "../../eslint/conf/eslint-recommended.js"); -const eslintAllPath = path.resolve(__dirname, "../../eslint/conf/eslint-all.js"); const configFilenames = [ ".eslintrc.js", ".eslintrc.cjs", @@ -71,10 +69,11 @@ const configFilenames = [ ]; // Define types for VSCode IntelliSense. -/** @typedef {import("../shared/types").ConfigData} ConfigData */ -/** @typedef {import("../shared/types").OverrideConfigData} OverrideConfigData */ -/** @typedef {import("../shared/types").Parser} Parser */ -/** @typedef {import("../shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").ConfigData} ConfigData */ +/** @typedef {import("./shared/types").OverrideConfigData} OverrideConfigData */ +/** @typedef {import("./shared/types").Parser} Parser */ +/** @typedef {import("./shared/types").Plugin} Plugin */ +/** @typedef {import("./shared/types").Rule} Rule */ /** @typedef {import("./config-array/config-dependency").DependentParser} DependentParser */ /** @typedef {import("./config-array/config-dependency").DependentPlugin} DependentPlugin */ /** @typedef {ConfigArray[0]} ConfigArrayElement */ @@ -84,6 +83,10 @@ const configFilenames = [ * @property {Map} [additionalPluginPool] The map for additional plugins. * @property {string} [cwd] The path to the current working directory. * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. */ /** @@ -91,6 +94,10 @@ const configFilenames = [ * @property {Map} additionalPluginPool The map for additional plugins. * @property {string} cwd The path to the current working directory. * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from. + * @property {Map} builtInRules The rules that are built in to ESLint. + * @property {Object} [resolver=ModuleResolver] The module resolver object. + * @property {string} eslintAllPath The path to the definitions for eslint:all. + * @property {string} eslintRecommendedPath The path to the definitions for eslint:recommended. */ /** @@ -274,14 +281,15 @@ function loadESLintIgnoreFile(filePath) { * Creates an error to notify about a missing config to extend from. * @param {string} configName The name of the missing config. * @param {string} importerName The name of the config that imported the missing config + * @param {string} messageTemplate The text template to source error strings from. * @returns {Error} The error object to throw * @private */ -function configMissingError(configName, importerName) { +function configInvalidError(configName, importerName, messageTemplate) { return Object.assign( new Error(`Failed to load config "${configName}" to extend from.`), { - messageTemplate: "extend-config-missing", + messageTemplate, messageData: { configName, importerName } } ); @@ -414,7 +422,9 @@ class ConfigArrayFactory { cwd = process.cwd(), resolvePluginsRelativeTo, builtInRules, - resolver = ModuleResolver + resolver = ModuleResolver, + eslintAllPath, + eslintRecommendedPath } = {}) { internalSlotsMap.set(this, { additionalPluginPool, @@ -423,7 +433,9 @@ class ConfigArrayFactory { resolvePluginsRelativeTo && path.resolve(cwd, resolvePluginsRelativeTo), builtInRules, - resolver + resolver, + eslintAllPath, + eslintRecommendedPath }); } @@ -483,7 +495,7 @@ class ConfigArrayFactory { basePath ); - if (fs.existsSync(ctx.filePath)) { + if (fs.existsSync(ctx.filePath) && fs.statSync(ctx.filePath).isFile()) { let configData; try { @@ -781,6 +793,8 @@ class ConfigArrayFactory { * @private */ _loadExtendedBuiltInConfig(extendName, ctx) { + const { eslintAllPath, eslintRecommendedPath } = internalSlotsMap.get(this); + if (extendName === "eslint:recommended") { return this._loadConfigData({ ...ctx, @@ -796,7 +810,7 @@ class ConfigArrayFactory { }); } - throw configMissingError(extendName, ctx.name); + throw configInvalidError(extendName, ctx.name, "extend-config-missing"); } /** @@ -808,6 +822,11 @@ class ConfigArrayFactory { */ _loadExtendedPluginConfig(extendName, ctx) { const slashIndex = extendName.lastIndexOf("/"); + + if (slashIndex === -1) { + throw configInvalidError(extendName, ctx.filePath, "plugin-invalid"); + } + const pluginName = extendName.slice("plugin:".length, slashIndex); const configName = extendName.slice(slashIndex + 1); @@ -828,7 +847,7 @@ class ConfigArrayFactory { }); } - throw plugin.error || configMissingError(extendName, ctx.filePath); + throw plugin.error || configInvalidError(extendName, ctx.filePath, "extend-config-missing"); } /** @@ -861,7 +880,7 @@ class ConfigArrayFactory { } catch (error) { /* istanbul ignore else */ if (error && error.code === "MODULE_NOT_FOUND") { - throw configMissingError(extendName, ctx.filePath); + throw configInvalidError(extendName, ctx.filePath, "extend-config-missing"); } throw error; } diff --git a/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js b/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js index 6eaec4258e..4c16278ee8 100644 --- a/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +++ b/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js @@ -36,7 +36,7 @@ const assert = require("assert"); const path = require("path"); const ignore = require("ignore"); -const debug = require("debug")("eslint:ignore-pattern"); +const debug = require("debug")("eslintrc:ignore-pattern"); /** @typedef {ReturnType} Ignore */ diff --git a/node_modules/@eslint/eslintrc/lib/flat-compat.js b/node_modules/@eslint/eslintrc/lib/flat-compat.js new file mode 100644 index 0000000000..c0d0ea2284 --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/flat-compat.js @@ -0,0 +1,308 @@ +/** + * @fileoverview Compatibility class for flat config. + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const path = require("path"); +const environments = require("../conf/environments"); +const createDebug = require("debug"); +const { ConfigArrayFactory } = require("./config-array-factory"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/** @typedef {import("../../shared/types").Environment} Environment */ +/** @typedef {import("../../shared/types").Processor} Processor */ + +const debug = createDebug("eslintrc:flat-compat"); +const cafactory = Symbol("cafactory"); + +/** + * Translates an ESLintRC-style config object into a flag-config-style config + * object. + * @param {Object} eslintrcConfig An ESLintRC-style config object. + * @param {Object} options Options to help translate the config. + * @param {string} options.resolveConfigRelativeTo To the directory to resolve + * configs from. + * @param {string} options.resolvePluginsRelativeTo The directory to resolve + * plugins from. + * @param {ReadOnlyMap} options.pluginEnvironments A map of plugin environment + * names to objects. + * @param {ReadOnlyMap} options.pluginProcessors A map of plugin processor + * names to objects. + * @returns {Object} A flag-config-style config object. + */ +function translateESLintRC(eslintrcConfig, { + resolveConfigRelativeTo, + resolvePluginsRelativeTo, + pluginEnvironments, + pluginProcessors +}) { + + const flatConfig = {}; + const configs = []; + const languageOptions = {}; + const linterOptions = {}; + const keysToCopy = ["settings", "rules", "processor"]; + const languageOptionsKeysToCopy = ["globals", "parser", "parserOptions"]; + const linterOptionsKeysToCopy = ["noInlineConfig", "reportUnusedDisableDirectives"]; + + // check for special settings for eslint:all and eslint:recommended: + if (eslintrcConfig.settings) { + if (eslintrcConfig.settings["eslint:all"] === true) { + return ["eslint:all"]; + } + + if (eslintrcConfig.settings["eslint:recommended"] === true) { + return ["eslint:recommended"]; + } + } + + // copy over simple translations + for (const key of keysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + flatConfig[key] = eslintrcConfig[key]; + } + } + + // copy over languageOptions + for (const key of languageOptionsKeysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + + // create the languageOptions key in the flat config + flatConfig.languageOptions = languageOptions; + + if (key === "parser") { + debug(`Resolving parser '${languageOptions[key]}' relative to ${resolveConfigRelativeTo}`); + + if (eslintrcConfig[key].error) { + throw eslintrcConfig[key].error; + } + + languageOptions[key] = eslintrcConfig[key].definition; + continue; + } + + // clone any object values that are in the eslintrc config + if (eslintrcConfig[key] && typeof eslintrcConfig[key] === "object") { + languageOptions[key] = { + ...eslintrcConfig[key] + }; + } else { + languageOptions[key] = eslintrcConfig[key]; + } + } + } + + // copy over linterOptions + for (const key of linterOptionsKeysToCopy) { + if (key in eslintrcConfig && typeof eslintrcConfig[key] !== "undefined") { + flatConfig.linterOptions = linterOptions; + linterOptions[key] = eslintrcConfig[key]; + } + } + + // move ecmaVersion a level up + if (languageOptions.parserOptions) { + + if ("ecmaVersion" in languageOptions.parserOptions) { + languageOptions.ecmaVersion = languageOptions.parserOptions.ecmaVersion; + delete languageOptions.parserOptions.ecmaVersion; + } + + if ("sourceType" in languageOptions.parserOptions) { + languageOptions.sourceType = languageOptions.parserOptions.sourceType; + delete languageOptions.parserOptions.sourceType; + } + + // check to see if we even need parserOptions anymore and remove it if not + if (Object.keys(languageOptions.parserOptions).length === 0) { + delete languageOptions.parserOptions; + } + } + + // overrides + if (eslintrcConfig.criteria) { + flatConfig.files = [absoluteFilePath => eslintrcConfig.criteria.test(absoluteFilePath)]; + } + + // translate plugins + if (eslintrcConfig.plugins && typeof eslintrcConfig.plugins === "object") { + debug(`Translating plugins: ${eslintrcConfig.plugins}`); + + flatConfig.plugins = {}; + + for (const pluginName of Object.keys(eslintrcConfig.plugins)) { + + debug(`Translating plugin: ${pluginName}`); + debug(`Resolving plugin '${pluginName} relative to ${resolvePluginsRelativeTo}`); + + const { definition: plugin, error } = eslintrcConfig.plugins[pluginName]; + + if (error) { + throw error; + } + + flatConfig.plugins[pluginName] = plugin; + + // create a config for any processors + if (plugin.processors) { + for (const processorName of Object.keys(plugin.processors)) { + if (processorName.startsWith(".")) { + debug(`Assigning processor: ${pluginName}/${processorName}`); + + configs.unshift({ + files: [`**/*${processorName}`], + processor: pluginProcessors.get(`${pluginName}/${processorName}`) + }); + } + + } + } + } + } + + // translate env - must come after plugins + if (eslintrcConfig.env && typeof eslintrcConfig.env === "object") { + for (const envName of Object.keys(eslintrcConfig.env)) { + + // only add environments that are true + if (eslintrcConfig.env[envName]) { + debug(`Translating environment: ${envName}`); + + if (environments.has(envName)) { + + // built-in environments should be defined first + configs.unshift(...translateESLintRC(environments.get(envName), { + resolveConfigRelativeTo, + resolvePluginsRelativeTo + })); + } else if (pluginEnvironments.has(envName)) { + + // if the environment comes from a plugin, it should come after the plugin config + configs.push(...translateESLintRC(pluginEnvironments.get(envName), { + resolveConfigRelativeTo, + resolvePluginsRelativeTo + })); + } + } + } + } + + // only add if there are actually keys in the config + if (Object.keys(flatConfig).length > 0) { + configs.push(flatConfig); + } + + return configs; +} + + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * A compatibility class for working with configs. + */ +class FlatCompat { + + constructor({ + baseDirectory = process.cwd(), + resolvePluginsRelativeTo = baseDirectory + } = {}) { + this.baseDirectory = baseDirectory; + this.resolvePluginsRelativeTo = resolvePluginsRelativeTo; + this[cafactory] = new ConfigArrayFactory({ + cwd: baseDirectory, + resolvePluginsRelativeTo, + eslintAllPath: path.resolve(__dirname, "../conf/eslint-all.js"), + eslintRecommendedPath: path.resolve(__dirname, "../conf/eslint-recommended.js") + }); + } + + /** + * Translates an ESLintRC-style config into a flag-config-style config. + * @param {Object} eslintrcConfig The ESLintRC-style config object. + * @returns {Object} A flag-config-style config object. + */ + config(eslintrcConfig) { + const eslintrcArray = this[cafactory].create(eslintrcConfig, { + basePath: this.baseDirectory + }); + + const flatArray = []; + let hasIgnorePatterns = false; + + eslintrcArray.forEach(configData => { + if (configData.type === "config") { + hasIgnorePatterns = hasIgnorePatterns || configData.ignorePattern; + flatArray.push(...translateESLintRC(configData, { + resolveConfigRelativeTo: path.join(this.baseDirectory, "__placeholder.js"), + resolvePluginsRelativeTo: path.join(this.resolvePluginsRelativeTo, "__placeholder.js"), + pluginEnvironments: eslintrcArray.pluginEnvironments, + pluginProcessors: eslintrcArray.pluginProcessors + })); + } + }); + + // combine ignorePatterns to emulate ESLintRC behavior better + if (hasIgnorePatterns) { + flatArray.unshift({ + ignores: [filePath => { + + // Compute the final config for this file. + // This filters config array elements by `files`/`excludedFiles` then merges the elements. + const finalConfig = eslintrcArray.extractConfig(filePath); + + // Test the `ignorePattern` properties of the final config. + return Boolean(finalConfig.ignores) && finalConfig.ignores(filePath); + }] + }); + } + + return flatArray; + } + + /** + * Translates the `env` section of an ESLintRC-style config. + * @param {Object} envConfig The `env` section of an ESLintRC config. + * @returns {Object} A flag-config object representing the environments. + */ + env(envConfig) { + return this.config({ + env: envConfig + }); + } + + /** + * Translates the `extends` section of an ESLintRC-style config. + * @param {...string} configsToExtend The names of the configs to load. + * @returns {Object} A flag-config object representing the config. + */ + extends(...configsToExtend) { + return this.config({ + extends: configsToExtend + }); + } + + /** + * Translates the `plugins` section of an ESLintRC-style config. + * @param {...string} plugins The names of the plugins to load. + * @returns {Object} A flag-config object representing the plugins. + */ + plugins(...plugins) { + return this.config({ + plugins + }); + } +} + +exports.FlatCompat = FlatCompat; diff --git a/node_modules/@eslint/eslintrc/lib/index.js b/node_modules/@eslint/eslintrc/lib/index.js index 90959c16e8..de2a95d986 100644 --- a/node_modules/@eslint/eslintrc/lib/index.js +++ b/node_modules/@eslint/eslintrc/lib/index.js @@ -14,7 +14,7 @@ const { } = require("./config-array-factory"); const { CascadingConfigArrayFactory } = require("./cascading-config-array-factory"); -const { ModuleResolver } = require("./shared/relative-module-resolver"); +const ModuleResolver = require("./shared/relative-module-resolver"); const { ConfigArray, getUsedExtractedConfigs } = require("./config-array"); const { ConfigDependency } = require("./config-array/config-dependency"); const { ExtractedConfig } = require("./config-array/extracted-config"); @@ -23,6 +23,7 @@ const { OverrideTester } = require("./config-array/override-tester"); const ConfigOps = require("./shared/config-ops"); const ConfigValidator = require("./shared/config-validator"); const naming = require("./shared/naming"); +const { FlatCompat } = require("./flat-compat"); //----------------------------------------------------------------------------- // Exports @@ -46,6 +47,8 @@ module.exports = { ConfigValidator, ModuleResolver, naming - } + }, + + FlatCompat }; diff --git a/node_modules/@eslint/eslintrc/lib/shared/config-validator.js b/node_modules/@eslint/eslintrc/lib/shared/config-validator.js index d3c7001278..90869739ca 100644 --- a/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +++ b/node_modules/@eslint/eslintrc/lib/shared/config-validator.js @@ -5,6 +5,8 @@ "use strict"; +/* eslint class-methods-use-this: "off" */ + //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ @@ -265,7 +267,7 @@ module.exports = class ConfigValidator { * @returns {void} */ validateConfigSchema(config, source = null) { - validateSchema = this.validateSchema || ajv.compile(configSchema); + validateSchema = validateSchema || ajv.compile(configSchema); if (!validateSchema(config)) { throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`); diff --git a/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js b/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js index e1481a2e9a..136fc255ff 100644 --- a/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +++ b/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js @@ -9,7 +9,6 @@ //------------------------------------------------------------------------------ const path = require("path"); -const lodash = require("lodash"); //------------------------------------------------------------------------------ // Private @@ -28,6 +27,8 @@ const deprecationWarningMessages = { "projects in order to avoid loading '~/.eslintrc.*' accidentally." }; +const sourceFileErrorCache = new Set(); + /** * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted * for each unique file path, but repeated invocations with the same file path have no effect. @@ -36,7 +37,14 @@ const deprecationWarningMessages = { * @param {string} errorCode The warning message to show. * @returns {void} */ -const emitDeprecationWarning = lodash.memoize((source, errorCode) => { +function emitDeprecationWarning(source, errorCode) { + const cacheKey = JSON.stringify({ source, errorCode }); + + if (sourceFileErrorCache.has(cacheKey)) { + return; + } + sourceFileErrorCache.add(cacheKey); + const rel = path.relative(process.cwd(), source); const message = deprecationWarningMessages[errorCode]; @@ -45,7 +53,7 @@ const emitDeprecationWarning = lodash.memoize((source, errorCode) => { "DeprecationWarning", errorCode ); -}, (...args) => JSON.stringify(args)); +} //------------------------------------------------------------------------------ // Public Interface diff --git a/node_modules/@eslint/eslintrc/lib/shared/types.js b/node_modules/@eslint/eslintrc/lib/shared/types.js new file mode 100644 index 0000000000..d4ac14e26d --- /dev/null +++ b/node_modules/@eslint/eslintrc/lib/shared/types.js @@ -0,0 +1,150 @@ +/** + * @fileoverview Define common types for input completion. + * @author Toru Nagashima + */ +"use strict"; + +/** @type {any} */ +module.exports = {}; + +/** @typedef {boolean | "off" | "readable" | "readonly" | "writable" | "writeable"} GlobalConf */ +/** @typedef {0 | 1 | 2 | "off" | "warn" | "error"} SeverityConf */ +/** @typedef {SeverityConf | [SeverityConf, ...any[]]} RuleConf */ + +/** + * @typedef {Object} EcmaFeatures + * @property {boolean} [globalReturn] Enabling `return` statements at the top-level. + * @property {boolean} [jsx] Enabling JSX syntax. + * @property {boolean} [impliedStrict] Enabling strict mode always. + */ + +/** + * @typedef {Object} ParserOptions + * @property {EcmaFeatures} [ecmaFeatures] The optional features. + * @property {3|5|6|7|8|9|10|11|12|2015|2016|2017|2018|2019|2020|2021} [ecmaVersion] The ECMAScript version (or revision number). + * @property {"script"|"module"} [sourceType] The source code type. + */ + +/** + * @typedef {Object} ConfigData + * @property {Record} [env] The environment settings. + * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. + * @property {Record} [globals] The global variable settings. + * @property {string | string[]} [ignorePatterns] The glob patterns that ignore to lint. + * @property {boolean} [noInlineConfig] The flag that disables directive comments. + * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. + * @property {string} [parser] The path to a parser or the package name of a parser. + * @property {ParserOptions} [parserOptions] The parser options. + * @property {string[]} [plugins] The plugin specifiers. + * @property {string} [processor] The processor specifier. + * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. + * @property {boolean} [root] The root flag. + * @property {Record} [rules] The rule settings. + * @property {Object} [settings] The shared settings. + */ + +/** + * @typedef {Object} OverrideConfigData + * @property {Record} [env] The environment settings. + * @property {string | string[]} [excludedFiles] The glob pattarns for excluded files. + * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. + * @property {string | string[]} files The glob patterns for target files. + * @property {Record} [globals] The global variable settings. + * @property {boolean} [noInlineConfig] The flag that disables directive comments. + * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. + * @property {string} [parser] The path to a parser or the package name of a parser. + * @property {ParserOptions} [parserOptions] The parser options. + * @property {string[]} [plugins] The plugin specifiers. + * @property {string} [processor] The processor specifier. + * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. + * @property {Record} [rules] The rule settings. + * @property {Object} [settings] The shared settings. + */ + +/** + * @typedef {Object} ParseResult + * @property {Object} ast The AST. + * @property {ScopeManager} [scopeManager] The scope manager of the AST. + * @property {Record} [services] The services that the parser provides. + * @property {Record} [visitorKeys] The visitor keys of the AST. + */ + +/** + * @typedef {Object} Parser + * @property {(text:string, options:ParserOptions) => Object} parse The definition of global variables. + * @property {(text:string, options:ParserOptions) => ParseResult} [parseForESLint] The parser options that will be enabled under this environment. + */ + +/** + * @typedef {Object} Environment + * @property {Record} [globals] The definition of global variables. + * @property {ParserOptions} [parserOptions] The parser options that will be enabled under this environment. + */ + +/** + * @typedef {Object} LintMessage + * @property {number} column The 1-based column number. + * @property {number} [endColumn] The 1-based column number of the end location. + * @property {number} [endLine] The 1-based line number of the end location. + * @property {boolean} fatal If `true` then this is a fatal error. + * @property {{range:[number,number], text:string}} [fix] Information for autofix. + * @property {number} line The 1-based line number. + * @property {string} message The error message. + * @property {string|null} ruleId The ID of the rule which makes this message. + * @property {0|1|2} severity The severity of this message. + * @property {Array<{desc?: string, messageId?: string, fix: {range: [number, number], text: string}}>} [suggestions] Information for suggestions. + */ + +/** + * @typedef {Object} SuggestionResult + * @property {string} desc A short description. + * @property {string} [messageId] Id referencing a message for the description. + * @property {{ text: string, range: number[] }} fix fix result info + */ + +/** + * @typedef {Object} Processor + * @property {(text:string, filename:string) => Array} [preprocess] The function to extract code blocks. + * @property {(messagesList:LintMessage[][], filename:string) => LintMessage[]} [postprocess] The function to merge messages. + * @property {boolean} [supportsAutofix] If `true` then it means the processor supports autofix. + */ + +/** + * @typedef {Object} RuleMetaDocs + * @property {string} category The category of the rule. + * @property {string} description The description of the rule. + * @property {boolean} recommended If `true` then the rule is included in `eslint:recommended` preset. + * @property {string} url The URL of the rule documentation. + */ + +/** + * @typedef {Object} RuleMeta + * @property {boolean} [deprecated] If `true` then the rule has been deprecated. + * @property {RuleMetaDocs} docs The document information of the rule. + * @property {"code"|"whitespace"} [fixable] The autofix type. + * @property {Record} [messages] The messages the rule reports. + * @property {string[]} [replacedBy] The IDs of the alternative rules. + * @property {Array|Object} schema The option schema of the rule. + * @property {"problem"|"suggestion"|"layout"} type The rule type. + */ + +/** + * @typedef {Object} Rule + * @property {Function} create The factory of the rule. + * @property {RuleMeta} meta The meta data of the rule. + */ + +/** + * @typedef {Object} Plugin + * @property {Record} [configs] The definition of plugin configs. + * @property {Record} [environments] The definition of plugin environments. + * @property {Record} [processors] The definition of plugin processors. + * @property {Record} [rules] The definition of plugin rules. + */ + +/** + * Information of deprecated rules. + * @typedef {Object} DeprecatedRuleInfo + * @property {string} ruleId The rule ID. + * @property {string[]} replacedBy The rule IDs that replace this deprecated rule. + */ diff --git a/node_modules/@eslint/eslintrc/package.json b/node_modules/@eslint/eslintrc/package.json index 71830c09a4..105f3c6a17 100644 --- a/node_modules/@eslint/eslintrc/package.json +++ b/node_modules/@eslint/eslintrc/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/eslintrc", - "version": "0.1.3", + "version": "0.4.3", "description": "The legacy ESLintRC config file format for ESLint", "main": "lib/index.js", "files": [ @@ -12,8 +12,9 @@ "access": "public" }, "scripts": { - "lint": "eslint .", - "test": "mocha tests/lib/shared", + "lint": "eslint . --report-unused-disable-directives", + "fix": "npm run lint -- --fix", + "test": "mocha -R progress -c 'tests/lib/**/*.js'", "generate-release": "eslint-generate-release", "generate-alpharelease": "eslint-generate-prerelease alpha", "generate-betarelease": "eslint-generate-prerelease beta", @@ -34,22 +35,25 @@ "homepage": "https://github.com/eslint/eslintrc#readme", "devDependencies": { "chai": "^4.2.0", - "eslint": "^7.7.0", - "eslint-config-eslint": "^6.0.0", - "eslint-plugin-jsdoc": "^22.1.0", + "eslint": "^7.21.0", + "eslint-config-eslint": "^7.0.0", + "eslint-plugin-jsdoc": "^32.2.0", "eslint-plugin-node": "^11.1.0", "eslint-release": "^3.1.2", - "mocha": "^8.1.1" + "fs-teardown": "0.1.1", + "mocha": "^8.1.1", + "shelljs": "^0.8.4", + "sinon": "^9.2.0", + "temp-dir": "^2.0.0" }, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", - "globals": "^12.1.0", + "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, diff --git a/node_modules/@humanwhocodes/config-array/LICENSE b/node_modules/@humanwhocodes/config-array/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/@humanwhocodes/config-array/README.md b/node_modules/@humanwhocodes/config-array/README.md new file mode 100644 index 0000000000..9cfe637bb3 --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/README.md @@ -0,0 +1,258 @@ +# Config Array + +by [Nicholas C. Zakas](https://humanwhocodes.com) + +If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate). + +## Description + +A config array is a way of managing configurations that are based on glob pattern matching of filenames. Each config array contains the information needed to determine the correct configuration for any file based on the filename. + +## Background + +In 2019, I submitted an [ESLint RFC](https://github.com/eslint/rfcs/pull/9) proposing a new way of configuring ESLint. The goal was to streamline what had become an increasingly complicated configuration process. Over several iterations, this proposal was eventually born. + +The basic idea is that all configuration, including overrides, can be represented by a single array where each item in the array is a config object. Config objects appearing later in the array override config objects appearing earlier in the array. You can calculate a config for a given file by traversing all config objects in the array to find the ones that match the filename. Matching is done by specifying glob patterns in `files` and `ignores` properties on each config object. Here's an example: + +```js +export default [ + + // match all JSON files + { + name: "JSON Handler", + files: ["**/*.json"], + handler: jsonHandler + }, + + // match only package.json + { + name: "package.json Handler", + files: ["package.json"], + handler: packageJsonHandler + } +]; +``` + +In this example, there are two config objects: the first matches all JSON files in all directories and the second matches just `package.json` in the base path directory (all the globs are evaluated as relative to a base path that can be specified). When you retrieve a configuration for `foo.json`, only the first config object matches so `handler` is equal to `jsonHandler`; when you retrieve a configuration for `package.json`, `handler` is equal to `packageJsonHandler` (because both config objects match, the second one wins). + +## Installation + +You can install the package using npm or Yarn: + +```bash +npm install @humanwhocodes/config-array --save + +# or + +yarn add @humanwhocodes/config-array +``` + +## Usage + +First, import the `ConfigArray` constructor: + +```js +import { ConfigArray } from "@humanwhocodes/config-array"; + +// or using CommonJS + +const { ConfigArray } = require("@humanwhocodes/config-array"); +``` + +When you create a new instance of `ConfigArray`, you must pass in two arguments: an array of configs and an options object. The array of configs is most likely read in from a configuration file, so here's a typical example: + +```js +const configFilename = path.resolve(process.cwd(), "my.config.js"); +const { default: rawConfigs } = await import(configFilename); +const configs = new ConfigArray(rawConfigs, { + + // the path to match filenames from + basePath: process.cwd(), + + // additional items in each config + schema: mySchema +}); +``` + +This example reads in an object or array from `my.config.js` and passes it into the `ConfigArray` constructor as the first argument. The second argument is an object specifying the `basePath` (the directoy in which `my.config.js` is found) and a `schema` to define the additional properties of a config object beyond `files`, `ignores`, and `name`. + +### Specifying a Schema + +The `schema` option is required for you to use additional properties in config objects. The schema is object that follows the format of an [`ObjectSchema`](https://npmjs.com/package/@humanwhocodes/object-schema). The schema specifies both validation and merge rules that the `ConfigArray` instance needs to combine configs when there are multiple matches. Here's an example: + +```js +const configFilename = path.resolve(process.cwd(), "my.config.js"); +const { default: rawConfigs } = await import(configFilename); + +const mySchema = { + + // define the handler key in configs + handler: { + required: true, + merge(a, b) { + if (!b) return a; + if (!a) return b; + }, + validate(value) { + if (typeof value !== "function") { + throw new TypeError("Function expected."); + } + } + } +}; + +const configs = new ConfigArray(rawConfigs, { + + // the path to match filenames from + basePath: process.cwd(), + + // additional items in each config + schema: mySchema +}); +``` + +### Config Arrays + +Config arrays can be multidimensional, so it's possible for a config array to contain another config array, such as: + +```js +export default [ + + // JS config + { + files: ["**/*.js"], + handler: jsHandler + }, + + // JSON configs + [ + + // match all JSON files + { + name: "JSON Handler", + files: ["**/*.json"], + handler: jsonHandler + }, + + // match only package.json + { + name: "package.json Handler", + files: ["package.json"], + handler: packageJsonHandler + } + ], + + // filename must match function + { + files: [ filePath => filePath.endsWith(".md") ], + handler: markdownHandler + }, + + // filename must match all patterns in subarray + { + files: [ ["*.test.*", "*.js"] ], + handler: jsTestHandler + }, + + // filename must not match patterns beginning with ! + { + name: "Non-JS files", + files: ["!*.js"], + settings: { + js: false + } + } +]; +``` + +In this example, the array contains both config objects and a config array. When a config array is normalized (see details below), it is flattened so only config objects remain. However, the order of evaluation remains the same. + +If the `files` array contains a function, then that function is called with the absolute path of the file and is expected to return `true` if there is a match and `false` if not. (The `ignores` array can also contain functions.) + +If the `files` array contains an item that is an array of strings and functions, then all patterns must match in order for the config to match. In the preceding examples, both `*.test.*` and `*.js` must match in order for the config object to be used. + +If a pattern in the files array begins with `!` then it excludes that pattern. In the preceding example, any filename that doesn't end with `.js` will automatically getting a `settings.js` property set to `false`. + +### Config Functions + +Config arrays can also include config functions. A config function accepts a single parameter, `context` (defined by you), and must return either a config object or a config array (it cannot return another function). Config functions allow end users to execute code in the creation of appropriate config objects. Here's an example: + +```js +export default [ + + // JS config + { + files: ["**/*.js"], + handler: jsHandler + }, + + // JSON configs + function (context) { + return [ + + // match all JSON files + { + name: context.name + " JSON Handler", + files: ["**/*.json"], + handler: jsonHandler + }, + + // match only package.json + { + name: context.name + " package.json Handler", + files: ["package.json"], + handler: packageJsonHandler + } + ]; + } +]; +``` + +When a config array is normalized, each function is executed and replaced in the config array with the return value. + +**Note:** Config functions cannot be async. This will be added in a future version. + +### Normalizing Config Arrays + +Once a config array has been created and loaded with all of the raw config data, it must be normalized before it can be used. The normalization process goes through and flattens the config array as well as executing all config functions to get their final values. + +To normalize a config array, call the `normalize()` method and pass in a context object: + +```js +await configs.normalize({ + name: "MyApp" +}); +``` + +The `normalize()` method returns a promise, so be sure to use the `await` operator. The config array instance is normalized in-place, so you don't need to create a new variable. + +**Important:** Once a `ConfigArray` is normalized, it cannot be changed further. You can, however, create a new `ConfigArray` and pass in the normalized instance to create an unnormalized copy. + +### Getting Config for a File + +To get the config for a file, use the `getConfig()` method on a normalized config array and pass in the filename to get a config for: + +```js +// pass in absolute filename +const fileConfig = configs.getConfig(path.resolve(process.cwd(), "package.json")); +``` + +The config array always returns an object, even if there are no configs matching the given filename. You can then inspect the returned config object to determine how to proceed. + +A few things to keep in mind: + +* You must pass in the absolute filename to get a config for. +* The returned config object never has `files`, `ignores`, or `name` properties; the only properties on the object will be the other configuration options specified. +* The config array caches configs, so subsequent calls to `getConfig()` with the same filename will return in a fast lookup rather than another calculation. + +## Acknowledgements + +The design of this project was influenced by feedback on the ESLint RFC, and incorporates ideas from: + +* Teddy Katz (@not-an-aardvark) +* Toru Nagashima (@mysticatea) +* Kai Cataldo (@kaicataldo) + +## License + +Apache 2.0 diff --git a/node_modules/@humanwhocodes/config-array/api.js b/node_modules/@humanwhocodes/config-array/api.js new file mode 100644 index 0000000000..a9aacf46b5 --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/api.js @@ -0,0 +1,457 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var path = _interopDefault(require('path')); +var minimatch = _interopDefault(require('minimatch')); +var createDebug = _interopDefault(require('debug')); +var objectSchema = require('@humanwhocodes/object-schema'); + +/** + * @fileoverview ConfigSchema + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Assets that a given value is an array. + * @param {*} value The value to check. + * @returns {void} + * @throws {TypeError} When the value is not an array. + */ +function assertIsArray(value) { + if (!Array.isArray(value)) { + throw new TypeError('Expected value to be an array.'); + } +} + +/** + * Assets that a given value is an array containing only strings and functions. + * @param {*} value The value to check. + * @returns {void} + * @throws {TypeError} When the value is not an array of strings and functions. + */ +function assertIsArrayOfStringsAndFunctions(value, name) { + assertIsArray(value); + + if (value.some(item => typeof item !== 'string' && typeof item !== 'function')) { + throw new TypeError('Expected array to only contain strings.'); + } +} + +//------------------------------------------------------------------------------ +// Exports +//------------------------------------------------------------------------------ + +/** + * The base schema that every ConfigArray uses. + * @type Object + */ +const baseSchema = Object.freeze({ + name: { + required: false, + merge() { + return undefined; + }, + validate(value) { + if (typeof value !== 'string') { + throw new TypeError('Property must be a string.'); + } + } + }, + files: { + required: false, + merge() { + return undefined; + }, + validate(value) { + + // first check if it's an array + assertIsArray(value); + + // then check each member + value.forEach(item => { + if (Array.isArray(item)) { + assertIsArrayOfStringsAndFunctions(item); + } else if (typeof item !== 'string' && typeof item !== 'function') { + throw new TypeError('Items must be a string, a function, or an array of strings and functions.'); + } + }); + + } + }, + ignores: { + required: false, + merge() { + return undefined; + }, + validate: assertIsArrayOfStringsAndFunctions + } +}); + +/** + * @fileoverview ConfigArray + * @author Nicholas C. Zakas + */ + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const debug = createDebug('@hwc/config-array'); + +const MINIMATCH_OPTIONS = { + matchBase: true +}; + +/** + * Shorthand for checking if a value is a string. + * @param {any} value The value to check. + * @returns {boolean} True if a string, false if not. + */ +function isString(value) { + return typeof value === 'string'; +} + +/** + * Normalizes a `ConfigArray` by flattening it and executing any functions + * that are found inside. + * @param {Array} items The items in a `ConfigArray`. + * @param {Object} context The context object to pass into any function + * found. + * @returns {Array} A flattened array containing only config objects. + * @throws {TypeError} When a config function returns a function. + */ +async function normalize(items, context) { + + // TODO: Allow async config functions + + function *flatTraverse(array) { + for (let item of array) { + if (typeof item === 'function') { + item = item(context); + } + + if (Array.isArray(item)) { + yield * flatTraverse(item); + } else if (typeof item === 'function') { + throw new TypeError('A config function can only return an object or array.'); + } else { + yield item; + } + } + } + + return [...flatTraverse(items)]; +} + +/** + * Determines if a given file path is matched by a config. If the config + * has no `files` field, then it matches; otherwise, if a `files` field + * is present then we match the globs in `files` and exclude any globs in + * `ignores`. + * @param {string} filePath The absolute file path to check. + * @param {Object} config The config object to check. + * @returns {boolean} True if the file path is matched by the config, + * false if not. + */ +function pathMatches(filePath, basePath, config) { + + // a config without a `files` field always matches + if (!config.files) { + return true; + } + + // if files isn't an array, throw an error + if (!Array.isArray(config.files) || config.files.length === 0) { + throw new TypeError('The files key must be a non-empty array.'); + } + + const relativeFilePath = path.relative(basePath, filePath); + + // match both strings and functions + const match = pattern => { + if (isString(pattern)) { + return minimatch(relativeFilePath, pattern, MINIMATCH_OPTIONS); + } + + if (typeof pattern === 'function') { + return pattern(filePath); + } + }; + + // check for all matches to config.files + let matches = config.files.some(pattern => { + if (Array.isArray(pattern)) { + return pattern.every(match); + } + + return match(pattern); + }); + + /* + * If the file path matches the config.files patterns, then check to see + * if there are any files to ignore. + */ + if (matches && config.ignores) { + matches = !config.ignores.some(pattern => { + return minimatch(filePath, pattern, MINIMATCH_OPTIONS); + }); + } + + return matches; +} + +/** + * Ensures that a ConfigArray has been normalized. + * @param {ConfigArray} configArray The ConfigArray to check. + * @returns {void} + * @throws {Error} When the `ConfigArray` is not normalized. + */ +function assertNormalized(configArray) { + // TODO: Throw more verbose error + if (!configArray.isNormalized()) { + throw new Error('ConfigArray must be normalized to perform this operation.'); + } +} + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +const ConfigArraySymbol = { + isNormalized: Symbol('isNormalized'), + configCache: Symbol('configCache'), + schema: Symbol('schema'), + finalizeConfig: Symbol('finalizeConfig'), + preprocessConfig: Symbol('preprocessConfig') +}; + +/** + * Represents an array of config objects and provides method for working with + * those config objects. + */ +class ConfigArray extends Array { + + /** + * Creates a new instance of ConfigArray. + * @param {Iterable|Function|Object} configs An iterable yielding config + * objects, or a config function, or a config object. + * @param {string} [options.basePath=""] The path of the config file + * @param {boolean} [options.normalized=false] Flag indicating if the + * configs have already been normalized. + * @param {Object} [options.schema] The additional schema + * definitions to use for the ConfigArray schema. + */ + constructor(configs, { basePath = '', normalized = false, schema: customSchema } = {}) { + super(); + + /** + * Tracks if the array has been normalized. + * @property isNormalized + * @type boolean + * @private + */ + this[ConfigArraySymbol.isNormalized] = normalized; + + /** + * The schema used for validating and merging configs. + * @property schema + * @type ObjectSchema + * @private + */ + this[ConfigArraySymbol.schema] = new objectSchema.ObjectSchema({ + ...customSchema, + ...baseSchema + }); + + /** + * The path of the config file that this array was loaded from. + * This is used to calculate filename matches. + * @property basePath + * @type string + */ + this.basePath = basePath; + + /** + * A cache to store calculated configs for faster repeat lookup. + * @property configCache + * @type Map + * @private + */ + this[ConfigArraySymbol.configCache] = new Map(); + + // load the configs into this array + if (Array.isArray(configs)) { + this.push(...configs); + } else { + this.push(configs); + } + + } + + /** + * Prevent normal array methods from creating a new `ConfigArray` instance. + * This is to ensure that methods such as `slice()` won't try to create a + * new instance of `ConfigArray` behind the scenes as doing so may throw + * an error due to the different constructor signature. + * @returns {Function} The `Array` constructor. + */ + static get [Symbol.species]() { + return Array; + } + + /** + * Returns the `files` globs from every config object in the array. + * Negated patterns (those beginning with `!`) are not returned. + * This can be used to determine which files will be matched by a + * config array or to use as a glob pattern when no patterns are provided + * for a command line interface. + * @returns {string[]} An array of string patterns. + */ + get files() { + + assertNormalized(this); + + const result = []; + + for (const config of this) { + if (config.files) { + config.files.forEach(filePattern => { + if (Array.isArray(filePattern)) { + result.push(...filePattern.filter(pattern => { + return isString(pattern) && !pattern.startsWith('!'); + })); + } else if (isString(filePattern) && !filePattern.startsWith('!')) { + result.push(filePattern); + } + }); + } + } + + return result; + } + + /** + * Returns the file globs that should always be ignored regardless of + * the matching `files` fields in any configs. This is necessary to mimic + * the behavior of things like .gitignore and .eslintignore, allowing a + * globbing operation to be faster. + * @returns {string[]} An array of string patterns to be ignored. + */ + get ignores() { + + assertNormalized(this); + + const result = []; + + for (const config of this) { + if (config.ignores && !config.files) { + result.push(...config.ignores.filter(isString)); + } + } + + return result; + } + + /** + * Indicates if the config array has been normalized. + * @returns {boolean} True if the config array is normalized, false if not. + */ + isNormalized() { + return this[ConfigArraySymbol.isNormalized]; + } + + /** + * Normalizes a config array by flattening embedded arrays and executing + * config functions. + * @param {ConfigContext} context The context object for config functions. + * @returns {ConfigArray} A new ConfigArray instance that is normalized. + */ + async normalize(context = {}) { + + if (!this.isNormalized()) { + const normalizedConfigs = await normalize(this, context); + this.length = 0; + this.push(...normalizedConfigs.map(this[ConfigArraySymbol.preprocessConfig])); + this[ConfigArraySymbol.isNormalized] = true; + + // prevent further changes + Object.freeze(this); + } + + return this; + } + + /** + * Finalizes the state of a config before being cached and returned by + * `getConfig()`. Does nothing by default but is provided to be + * overridden by subclasses as necessary. + * @param {Object} config The config to finalize. + * @returns {Object} The finalized config. + */ + [ConfigArraySymbol.finalizeConfig](config) { + return config; + } + + /** + * Preprocesses a config during the normalization process. This is the + * method to override if you want to convert an array item before it is + * validated for the first time. For example, if you want to replace a + * string with an object, this is the method to override. + * @param {Object} config The config to preprocess. + * @returns {Object} The config to use in place of the argument. + */ + [ConfigArraySymbol.preprocessConfig](config) { + return config; + } + + /** + * Returns the config object for a given file path. + * @param {string} filePath The complete path of a file to get a config for. + * @returns {Object} The config object for this file. + */ + getConfig(filePath) { + + assertNormalized(this); + + // first check the cache to avoid duplicate work + let finalConfig = this[ConfigArraySymbol.configCache].get(filePath); + + if (finalConfig) { + return finalConfig; + } + + // No config found in cache, so calculate a new one + + const matchingConfigs = []; + + for (const config of this) { + if (pathMatches(filePath, this.basePath, config)) { + debug(`Matching config found for ${filePath}`); + matchingConfigs.push(config); + } else { + debug(`No matching config found for ${filePath}`); + } + } + + finalConfig = matchingConfigs.reduce((result, config) => { + return this[ConfigArraySymbol.schema].merge(result, config); + }, {}, this); + + finalConfig = this[ConfigArraySymbol.finalizeConfig](finalConfig); + + this[ConfigArraySymbol.configCache].set(filePath, finalConfig); + + return finalConfig; + } + +} + +exports.ConfigArray = ConfigArray; +exports.ConfigArraySymbol = ConfigArraySymbol; diff --git a/node_modules/@humanwhocodes/config-array/package.json b/node_modules/@humanwhocodes/config-array/package.json new file mode 100644 index 0000000000..4dc3a4e5d4 --- /dev/null +++ b/node_modules/@humanwhocodes/config-array/package.json @@ -0,0 +1,61 @@ +{ + "name": "@humanwhocodes/config-array", + "version": "0.5.0", + "description": "Glob-based configuration matching.", + "author": "Nicholas C. Zakas", + "main": "api.js", + "files": [ + "api.js" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/humanwhocodes/config-array.git" + }, + "bugs": { + "url": "https://github.com/humanwhocodes/config-array/issues" + }, + "homepage": "https://github.com/humanwhocodes/config-array#readme", + "scripts": { + "build": "rollup -c", + "format": "nitpik", + "lint": "eslint *.config.js src/*.js tests/*.js", + "prepublish": "npm run build", + "test:coverage": "nyc --include src/*.js npm run test", + "test": "mocha -r esm tests/ --recursive" + }, + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.js": [ + "nitpik", + "eslint --fix --ignore-pattern '!.eslintrc.js'" + ] + }, + "keywords": [ + "configuration", + "configarray", + "config file" + ], + "license": "Apache-2.0", + "engines": { + "node": ">=10.10.0" + }, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "devDependencies": { + "@nitpik/javascript": "^0.3.3", + "@nitpik/node": "0.0.5", + "chai": "^4.2.0", + "eslint": "^6.7.1", + "esm": "^3.2.25", + "lint-staged": "^10.2.8", + "mocha": "^6.1.4", + "nyc": "^14.1.1", + "rollup": "^1.12.3", + "yorkie": "^2.0.0" + } +} \ No newline at end of file diff --git a/node_modules/@humanwhocodes/object-schema/.eslintrc.js b/node_modules/@humanwhocodes/object-schema/.eslintrc.js new file mode 100644 index 0000000000..4934076c43 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/.eslintrc.js @@ -0,0 +1,29 @@ +module.exports = { + "env": { + "commonjs": true, + "es6": true, + "node": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 2018 + }, + "rules": { + "indent": [ + "error", + 4 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "double" + ], + "semi": [ + "error", + "always" + ] + } +}; \ No newline at end of file diff --git a/node_modules/@humanwhocodes/object-schema/.travis.yml b/node_modules/@humanwhocodes/object-schema/.travis.yml new file mode 100644 index 0000000000..1e53f24d8e --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/.travis.yml @@ -0,0 +1,14 @@ +language: node_js +node_js: + - "8" + - "9" + - "10" + - "11" +sudo: false +branches: + only: + - master + +# Run npm test always +script: + - "npm test" diff --git a/node_modules/@humanwhocodes/object-schema/LICENSE b/node_modules/@humanwhocodes/object-schema/LICENSE new file mode 100644 index 0000000000..a5e3ae46fd --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2019, Human Who Codes +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/@humanwhocodes/object-schema/README.md b/node_modules/@humanwhocodes/object-schema/README.md new file mode 100644 index 0000000000..2163797f8f --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/README.md @@ -0,0 +1,234 @@ +# JavaScript ObjectSchema Package + +by [Nicholas C. Zakas](https://humanwhocodes.com) + +If you find this useful, please consider supporting my work with a [donation](https://humanwhocodes.com/donate). + +## Overview + +A JavaScript object merge/validation utility where you can define a different merge and validation strategy for each key. This is helpful when you need to validate complex data structures and then merge them in a way that is more complex than `Object.assign()`. + +## Installation + +You can install using either npm: + +``` +npm install @humanwhocodes/object-schema +``` + +Or Yarn: + +``` +yarn add @humanwhocodes/object-schema +``` + +## Usage + +Use CommonJS to get access to the `ObjectSchema` constructor: + +```js +const { ObjectSchema } = require("@humanwhocodes/object-schema"); + +const schema = new ObjectSchema({ + + // define a definition for the "downloads" key + downloads: { + required: true, + merge(value1, value2) { + return value1 + value2; + }, + validate(value) { + if (typeof value !== "number") { + throw new Error("Expected downloads to be a number."); + } + } + }, + + // define a strategy for the "versions" key + version: { + required: true, + merge(value1, value2) { + return value1.concat(value2); + }, + validate(value) { + if (!Array.isArray(value)) { + throw new Error("Expected versions to be an array."); + } + } + } +}); + +const record1 = { + downloads: 25, + versions: [ + "v1.0.0", + "v1.1.0", + "v1.2.0" + ] +}; + +const record2 = { + downloads: 125, + versions: [ + "v2.0.0", + "v2.1.0", + "v3.0.0" + ] +}; + +// make sure the records are valid +schema.validate(record1); +schema.validate(record2); + +// merge together (schema.merge() accepts any number of objects) +const result = schema.merge(record1, record2); + +// result looks like this: + +const result = { + downloads: 75, + versions: [ + "v1.0.0", + "v1.1.0", + "v1.2.0", + "v2.0.0", + "v2.1.0", + "v3.0.0" + ] +}; +``` + +## Tips and Tricks + +### Named merge strategies + +Instead of specifying a `merge()` method, you can specify one of the following strings to use a default merge strategy: + +* `"assign"` - use `Object.assign()` to merge the two values into one object. +* `"overwrite"` - the second value always replaces the first. +* `"replace"` - the second value replaces the first if the second is not `undefined`. + +For example: + +```js +const schema = new ObjectSchema({ + name: { + merge: "replace", + validate() {} + } +}); +``` + +### Named validation strategies + +Instead of specifying a `validate()` method, you can specify one of the following strings to use a default validation strategy: + +* `"array"` - value must be an array. +* `"boolean"` - value must be a boolean. +* `"number"` - value must be a number. +* `"object"` - value must be an object. +* `"object?"` - value must be an object or null. +* `"string"` - value must be a string. +* `"string!"` - value must be a non-empty string. + +For example: + +```js +const schema = new ObjectSchema({ + name: { + merge: "replace", + validate: "string" + } +}); +``` + +### Subschemas + +If you are defining a key that is, itself, an object, you can simplify the process by using a subschema. Instead of defining `merge()` and `validate()`, assign a `schema` key that contains a schema definition, like this: + +```js +const schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } +}); + +schema.validate({ + name: { + first: "n", + last: "z" + } +}); +``` + +### Remove Keys During Merge + +If the merge strategy for a key returns `undefined`, then the key will not appear in the final object. For example: + +```js +const schema = new ObjectSchema({ + date: { + merge() { + return undefined; + }, + validate(value) { + Date.parse(value); // throws an error when invalid + } + } +}); + +const object1 = { date: "5/5/2005" }; +const object2 = { date: "6/6/2006" }; + +const result = schema.merge(object1, object2); + +console.log("date" in result); // false +``` + +### Requiring Another Key Be Present + +If you'd like the presence of one key to require the presence of another key, you can use the `requires` property to specify an array of other properties that any key requires. For example: + +```js +const schema = new ObjectSchema(); + +const schema = new ObjectSchema({ + date: { + merge() { + return undefined; + }, + validate(value) { + Date.parse(value); // throws an error when invalid + } + }, + time: { + requires: ["date"], + merge(first, second) { + return second; + }, + validate(value) { + // ... + } + } +}); + +// throws error: Key "time" requires keys "date" +schema.validate({ + time: "13:45" +}); +``` + +In this example, even though `date` is an optional key, it is required to be present whenever `time` is present. + +## License + +BSD 3-Clause diff --git a/node_modules/@humanwhocodes/object-schema/package.json b/node_modules/@humanwhocodes/object-schema/package.json new file mode 100644 index 0000000000..ba829090e5 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/package.json @@ -0,0 +1,33 @@ +{ + "name": "@humanwhocodes/object-schema", + "version": "1.2.0", + "description": "An object schema merger/validator", + "main": "src/index.js", + "directories": { + "test": "tests" + }, + "scripts": { + "test": "mocha tests/" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/humanwhocodes/object-schema.git" + }, + "keywords": [ + "object", + "validation", + "schema", + "merge" + ], + "author": "Nicholas C. Zakas", + "license": "BSD-3-Clause", + "bugs": { + "url": "https://github.com/humanwhocodes/object-schema/issues" + }, + "homepage": "https://github.com/humanwhocodes/object-schema#readme", + "devDependencies": { + "chai": "^4.2.0", + "eslint": "^5.13.0", + "mocha": "^5.2.0" + } +} \ No newline at end of file diff --git a/node_modules/@humanwhocodes/object-schema/src/index.js b/node_modules/@humanwhocodes/object-schema/src/index.js new file mode 100644 index 0000000000..b2bc4fb96e --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/index.js @@ -0,0 +1,7 @@ +/** + * @filedescription Object Schema Package + */ + +exports.ObjectSchema = require("./object-schema").ObjectSchema; +exports.MergeStrategy = require("./merge-strategy").MergeStrategy; +exports.ValidationStrategy = require("./validation-strategy").ValidationStrategy; diff --git a/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js b/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js new file mode 100644 index 0000000000..8217449276 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js @@ -0,0 +1,53 @@ +/** + * @filedescription Merge Strategy + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +/** + * Container class for several different merge strategies. + */ +class MergeStrategy { + + /** + * Merges two keys by overwriting the first with the second. + * @param {*} value1 The value from the first object key. + * @param {*} value2 The value from the second object key. + * @returns {*} The second value. + */ + static overwrite(value1, value2) { + return value2; + } + + /** + * Merges two keys by replacing the first with the second only if the + * second is defined. + * @param {*} value1 The value from the first object key. + * @param {*} value2 The value from the second object key. + * @returns {*} The second value if it is defined. + */ + static replace(value1, value2) { + if (typeof value2 !== "undefined") { + return value2; + } + + return value1; + } + + /** + * Merges two properties by assigning properties from the second to the first. + * @param {*} value1 The value from the first object key. + * @param {*} value2 The value from the second object key. + * @returns {*} A new object containing properties from both value1 and + * value2. + */ + static assign(value1, value2) { + return Object.assign({}, value1, value2); + } +} + +exports.MergeStrategy = MergeStrategy; diff --git a/node_modules/@humanwhocodes/object-schema/src/object-schema.js b/node_modules/@humanwhocodes/object-schema/src/object-schema.js new file mode 100644 index 0000000000..25864f5a28 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/object-schema.js @@ -0,0 +1,239 @@ +/** + * @filedescription Object Schema + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const { MergeStrategy } = require("./merge-strategy"); +const { ValidationStrategy } = require("./validation-strategy"); + +//----------------------------------------------------------------------------- +// Private +//----------------------------------------------------------------------------- + +const strategies = Symbol("strategies"); +const requiredKeys = Symbol("requiredKeys"); + +/** + * Validates a schema strategy. + * @param {string} name The name of the key this strategy is for. + * @param {Object} strategy The strategy for the object key. + * @param {boolean} [strategy.required=true] Whether the key is required. + * @param {string[]} [strategy.requires] Other keys that are required when + * this key is present. + * @param {Function} strategy.merge A method to call when merging two objects + * with the same key. + * @param {Function} strategy.validate A method to call when validating an + * object with the key. + * @returns {void} + * @throws {Error} When the strategy is missing a name. + * @throws {Error} When the strategy is missing a merge() method. + * @throws {Error} When the strategy is missing a validate() method. + */ +function validateDefinition(name, strategy) { + + let hasSchema = false; + if (strategy.schema) { + if (typeof strategy.schema === "object") { + hasSchema = true; + } else { + throw new TypeError("Schema must be an object."); + } + } + + if (typeof strategy.merge === "string") { + if (!(strategy.merge in MergeStrategy)) { + throw new TypeError(`Definition for key "${name}" missing valid merge strategy.`); + } + } else if (!hasSchema && typeof strategy.merge !== "function") { + throw new TypeError(`Definition for key "${name}" must have a merge property.`); + } + + if (typeof strategy.validate === "string") { + if (!(strategy.validate in ValidationStrategy)) { + throw new TypeError(`Definition for key "${name}" missing valid validation strategy.`); + } + } else if (!hasSchema && typeof strategy.validate !== "function") { + throw new TypeError(`Definition for key "${name}" must have a validate() method.`); + } +} + + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +/** + * Represents an object validation/merging schema. + */ +class ObjectSchema { + + /** + * Creates a new instance. + */ + constructor(definitions) { + + if (!definitions) { + throw new Error("Schema definitions missing."); + } + + /** + * Track all strategies in the schema by key. + * @type {Map} + * @property strategies + */ + this[strategies] = new Map(); + + /** + * Separately track any keys that are required for faster validation. + * @type {Map} + * @property requiredKeys + */ + this[requiredKeys] = new Map(); + + // add in all strategies + for (const key of Object.keys(definitions)) { + validateDefinition(key, definitions[key]); + + // normalize merge and validate methods if subschema is present + if (typeof definitions[key].schema === "object") { + const schema = new ObjectSchema(definitions[key].schema); + definitions[key] = { + ...definitions[key], + merge(first, second) { + if (first && second) { + return schema.merge(first, second); + } + + return MergeStrategy.assign(first, second); + }, + validate(value) { + ValidationStrategy.object(value); + schema.validate(value); + } + }; + } + + // normalize the merge method in case there's a string + if (typeof definitions[key].merge === "string") { + definitions[key] = { + ...definitions[key], + merge: MergeStrategy[definitions[key].merge] + }; + }; + + // normalize the validate method in case there's a string + if (typeof definitions[key].validate === "string") { + definitions[key] = { + ...definitions[key], + validate: ValidationStrategy[definitions[key].validate] + }; + }; + + this[strategies].set(key, definitions[key]); + + if (definitions[key].required) { + this[requiredKeys].set(key, definitions[key]); + } + } + } + + /** + * Determines if a strategy has been registered for the given object key. + * @param {string} key The object key to find a strategy for. + * @returns {boolean} True if the key has a strategy registered, false if not. + */ + hasKey(key) { + return this[strategies].has(key); + } + + /** + * Merges objects together to create a new object comprised of the keys + * of the all objects. Keys are merged based on the each key's merge + * strategy. + * @param {...Object} objects The objects to merge. + * @returns {Object} A new object with a mix of all objects' keys. + * @throws {Error} If any object is invalid. + */ + merge(...objects) { + + // double check arguments + if (objects.length < 2) { + throw new Error("merge() requires at least two arguments."); + } + + if (objects.some(object => (object == null || typeof object !== "object"))) { + throw new Error("All arguments must be objects."); + } + + return objects.reduce((result, object) => { + + this.validate(object); + + for (const [key, strategy] of this[strategies]) { + try { + if (key in result || key in object) { + const value = strategy.merge.call(this, result[key], object[key]); + if (value !== undefined) { + result[key] = value; + } + } + } catch (ex) { + ex.message = `Key "${key}": ` + ex.message; + throw ex; + } + } + return result; + }, {}); + } + + /** + * Validates an object's keys based on the validate strategy for each key. + * @param {Object} object The object to validate. + * @returns {void} + * @throws {Error} When the object is invalid. + */ + validate(object) { + + // check existing keys first + for (const key of Object.keys(object)) { + + // check to see if the key is defined + if (!this.hasKey(key)) { + throw new Error(`Unexpected key "${key}" found.`); + } + + // validate existing keys + const strategy = this[strategies].get(key); + + // first check to see if any other keys are required + if (Array.isArray(strategy.requires)) { + if (!strategy.requires.every(otherKey => otherKey in object)) { + throw new Error(`Key "${key}" requires keys "${strategy.requires.join("\", \"")}".`); + } + } + + // now apply remaining validation strategy + try { + strategy.validate.call(strategy, object[key]); + } catch (ex) { + ex.message = `Key "${key}": ` + ex.message; + throw ex; + } + } + + // ensure required keys aren't missing + for (const [key] of this[requiredKeys]) { + if (!(key in object)) { + throw new Error(`Missing required key "${key}".`); + } + } + + } +} + +exports.ObjectSchema = ObjectSchema; diff --git a/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js b/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js new file mode 100644 index 0000000000..ecf918bdd1 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js @@ -0,0 +1,102 @@ +/** + * @filedescription Validation Strategy + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +/** + * Container class for several different validation strategies. + */ +class ValidationStrategy { + + /** + * Validates that a value is an array. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static array(value) { + if (!Array.isArray(value)) { + throw new TypeError("Expected an array."); + } + } + + /** + * Validates that a value is a boolean. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static boolean(value) { + if (typeof value !== "boolean") { + throw new TypeError("Expected a Boolean."); + } + } + + /** + * Validates that a value is a number. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static number(value) { + if (typeof value !== "number") { + throw new TypeError("Expected a number."); + } + } + + /** + * Validates that a value is a object. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static object(value) { + if (!value || typeof value !== "object") { + throw new TypeError("Expected an object."); + } + } + + /** + * Validates that a value is a object or null. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static "object?"(value) { + if (typeof value !== "object") { + throw new TypeError("Expected an object or null."); + } + } + + /** + * Validates that a value is a string. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static string(value) { + if (typeof value !== "string") { + throw new TypeError("Expected a string."); + } + } + + /** + * Validates that a value is a non-empty string. + * @param {*} value The value to validate. + * @returns {void} + * @throws {TypeError} If the value is invalid. + */ + static "string!"(value) { + if (typeof value !== "string" || value.length === 0) { + throw new TypeError("Expected a non-empty string."); + } + } + +} + +exports.ValidationStrategy = ValidationStrategy; diff --git a/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js b/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js new file mode 100644 index 0000000000..84032d7e89 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js @@ -0,0 +1,66 @@ +/** + * @filedescription Merge Strategy Tests + */ +/* global it, describe, beforeEach */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("chai").assert; +const { MergeStrategy } = require("../src/"); + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +describe("MergeStrategy", () => { + + + describe("overwrite()", () => { + + it("should overwrite the first value with the second when the second is defined", () => { + const result = MergeStrategy.overwrite(1, 2); + assert.strictEqual(result, 2); + }); + + it("should overwrite the first value with the second when the second is undefined", () => { + const result = MergeStrategy.overwrite(1, undefined); + assert.strictEqual(result, undefined); + }); + + }); + + describe("replace()", () => { + + it("should overwrite the first value with the second when the second is defined", () => { + const result = MergeStrategy.replace(1, 2); + assert.strictEqual(result, 2); + }); + + it("should return the first value when the second is undefined", () => { + const result = MergeStrategy.replace(1, undefined); + assert.strictEqual(result, 1); + }); + + }); + + describe("assign()", () => { + + it("should merge properties from two objects when called", () => { + + const object1 = { foo: 1, bar: 3 }; + const object2 = { foo: 2 }; + + const result = MergeStrategy.assign(object1, object2); + assert.deepStrictEqual(result, { + foo: 2, + bar: 3 + }); + }); + + }); + +}); diff --git a/node_modules/@humanwhocodes/object-schema/tests/object-schema.js b/node_modules/@humanwhocodes/object-schema/tests/object-schema.js new file mode 100644 index 0000000000..bff00600c2 --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/tests/object-schema.js @@ -0,0 +1,528 @@ +/** + * @filedescription Object Schema Tests + */ +/* global it, describe, beforeEach */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("chai").assert; +const { ObjectSchema } = require("../src/"); + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +describe("ObjectSchema", () => { + + let schema; + + describe("new ObjectSchema()", () => { + + it("should add a new key when a strategy is passed", () => { + schema = new ObjectSchema({ + foo: { + merge() {}, + validate() {} + } + }); + + assert.isTrue(schema.hasKey("foo")); + }); + + it("should throw an error when a strategy is missing a merge() method", () => { + assert.throws(() => { + schema = new ObjectSchema({ + foo: { + validate() { } + } + }); + }, /Definition for key "foo" must have a merge property/); + }); + + it("should throw an error when a strategy is missing a merge() method", () => { + assert.throws(() => { + schema = new ObjectSchema(); + }, /Schema definitions missing/); + }); + + it("should throw an error when a strategy is missing a validate() method", () => { + assert.throws(() => { + schema = new ObjectSchema({ + foo: { + merge() { }, + } + }); + }, /Definition for key "foo" must have a validate\(\) method/); + }); + + it("should throw an error when merge is an invalid string", () => { + assert.throws(() => { + new ObjectSchema({ + foo: { + merge: "bar", + validate() { } + } + }); + }, /key "foo" missing valid merge strategy/); + }); + + it("should throw an error when validate is an invalid string", () => { + assert.throws(() => { + new ObjectSchema({ + foo: { + merge: "assign", + validate: "s" + } + }); + }, /key "foo" missing valid validation strategy/); + }); + + }); + + + describe("merge()", () => { + + it("should throw an error when an unexpected key is found", () => { + let schema = new ObjectSchema({}); + + assert.throws(() => { + schema.merge({ foo: true }, { foo: true }); + }, /Unexpected key "foo"/); + }); + + it("should throw an error when merge() throws an error", () => { + let schema = new ObjectSchema({ + foo: { + merge() { + throw new Error("Boom!"); + }, + validate() {} + } + }); + + assert.throws(() => { + schema.merge({ foo: true }, { foo: true }); + }, /Key "foo": Boom!/); + + }); + + it("should call the merge() strategy for one key when called", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() {} + } + }); + + const result = schema.merge({ foo: true }, { foo: false }); + assert.propertyVal(result, "foo", "bar"); + }); + + it("should not call the merge() strategy when both objects don't contain the key", () => { + + let called = false; + + schema = new ObjectSchema({ + foo: { + merge() { + called = true; + }, + validate() {} + } + }); + + schema.merge({}, {}); + assert.isFalse(called, "The merge() strategy should not have been called."); + }); + + it("should omit returning the key when the merge() strategy returns undefined", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return undefined; + }, + validate() { } + } + }); + + const result = schema.merge({ foo: true }, { foo: false }); + assert.notProperty(result, "foo"); + }); + + it("should call the merge() strategy for two keys when called", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + bar: { + merge() { + return "baz"; + }, + validate() {} + } + }); + + const result = schema.merge({ foo: true, bar: 1 }, { foo: true, bar: 2 }); + assert.propertyVal(result, "foo", "bar"); + assert.propertyVal(result, "bar", "baz"); + }); + + it("should call the merge() strategy for two keys when called on three objects", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + bar: { + merge() { + return "baz"; + }, + validate() { } + } + }); + + const result = schema.merge( + { foo: true, bar: 1 }, + { foo: true, bar: 3 }, + { foo: false, bar: 2 } + ); + assert.propertyVal(result, "foo", "bar"); + assert.propertyVal(result, "bar", "baz"); + }); + + it("should call the merge() strategy when defined as 'overwrite'", () => { + schema = new ObjectSchema({ + foo: { + merge: "overwrite", + validate() { } + } + }); + + const result = schema.merge( + { foo: true }, + { foo: false } + ); + assert.propertyVal(result, "foo", false); + }); + + it("should call the merge() strategy when defined as 'assign'", () => { + schema = new ObjectSchema({ + foo: { + merge: "assign", + validate() { } + } + }); + + const result = schema.merge( + { foo: { bar: true } }, + { foo: { baz: false } } + ); + + assert.strictEqual(result.foo.bar, true); + assert.strictEqual(result.foo.baz, false); + }); + + it("should call the merge strategy when there's a subschema", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + const result = schema.merge({ + name: { + first: "n", + last: "z" + } + }, { + name: { + first: "g" + } + }); + + assert.strictEqual(result.name.first, "g"); + assert.strictEqual(result.name.last, "z"); + }); + + it("should not error when calling the merge strategy when there's a subschema and no matching key in second object", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + const result = schema.merge({ + name: { + first: "n", + last: "z" + } + }, { + }); + + assert.strictEqual(result.name.first, "n"); + assert.strictEqual(result.name.last, "z"); + }); + + + }); + + describe("validate()", () => { + + it("should throw an error when an unexpected key is found", () => { + let schema = new ObjectSchema({}); + assert.throws(() => { + schema.validate({ foo: true }); + }, /Unexpected key "foo"/); + }); + + it("should not throw an error when an expected key is found", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() {} + } + }); + + schema.validate({ foo: true }); + }); + + it("should pass the property value into validate() when key is found", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate(value) { + assert.isTrue(value); + } + } + }); + + schema.validate({ foo: true }); + }); + + it("should not throw an error when expected keys are found", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() {} + }, + bar: { + merge() { + return "baz"; + }, + validate() {} + } + }); + + schema.validate({ foo: true, bar: true }); + }); + + it("should not throw an error when expected keys are found with required keys", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + bar: { + requires: ["foo"], + merge() { + return "baz"; + }, + validate() { } + } + }); + + schema.validate({ foo: true, bar: true }); + }); + + it("should throw an error when expected keys are found without required keys", () => { + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { } + }, + baz: { + merge() { + return "baz"; + }, + validate() { } + }, + bar: { + name: "bar", + requires: ["foo", "baz"], + merge() { }, + validate() { } + } + }); + + assert.throws(() => { + schema.validate({ bar: true }); + }, /Key "bar" requires keys "foo", "baz"./); + }); + + + it("should throw an error when an expected key is found but is invalid", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate() { + throw new Error("Invalid key."); + } + } + }); + + assert.throws(() => { + schema.validate({ foo: true }); + }, /Key "foo": Invalid key/); + }); + + it("should throw an error when an expected key is found but is invalid with a string validator", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate: "string" + } + }); + + assert.throws(() => { + schema.validate({ foo: true }); + }, /Key "foo": Expected a string/); + }); + + it("should throw an error when an expected key is found but is invalid with a number validator", () => { + + schema = new ObjectSchema({ + foo: { + merge() { + return "bar"; + }, + validate: "number" + } + }); + + assert.throws(() => { + schema.validate({ foo: true }); + }, /Key "foo": Expected a number/); + }); + + it("should throw an error when a required key is missing", () => { + + schema = new ObjectSchema({ + foo: { + required: true, + merge() { + return "bar"; + }, + validate() {} + } + }); + + assert.throws(() => { + schema.validate({}); + }, /Missing required key "foo"/); + }); + + it("should throw an error when a subschema is provided and the value doesn't validate", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + assert.throws(() => { + schema.validate({ + name: { + first: 123, + last: "z" + } + }); + + }, /Key "name": Key "first": Expected a string/); + }); + + it("should not throw an error when a subschema is provided and the value validates", () => { + + schema = new ObjectSchema({ + name: { + schema: { + first: { + merge: "replace", + validate: "string" + }, + last: { + merge: "replace", + validate: "string" + } + } + } + }); + + schema.validate({ + name: { + first: "n", + last: "z" + } + }); + + }); + + }); + +}); diff --git a/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js b/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js new file mode 100644 index 0000000000..5d3e4a24dc --- /dev/null +++ b/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js @@ -0,0 +1,186 @@ +/** + * @filedescription Merge Strategy Tests + */ +/* global it, describe, beforeEach */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const assert = require("chai").assert; +const { ValidationStrategy } = require("../src/"); + +//----------------------------------------------------------------------------- +// Class +//----------------------------------------------------------------------------- + +describe("ValidationStrategy", () => { + + describe("boolean", () => { + it("should not throw an error when the value is a boolean", () => { + ValidationStrategy.boolean(true); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.boolean(null); + }, /Expected a Boolean/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.boolean("foo"); + }, /Expected a Boolean/); + }); + + it("should throw an error when the value is a number", () => { + assert.throws(() => { + ValidationStrategy.boolean(123); + }, /Expected a Boolean/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.boolean({}); + }, /Expected a Boolean/); + }); + }); + + describe("number", () => { + it("should not throw an error when the value is a number", () => { + ValidationStrategy.number(25); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.number(null); + }, /Expected a number/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.number("foo"); + }, /Expected a number/); + }); + + it("should throw an error when the value is a boolean", () => { + assert.throws(() => { + ValidationStrategy.number(true); + }, /Expected a number/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.number({}); + }, /Expected a number/); + }); + }); + + describe("object", () => { + it("should not throw an error when the value is an object", () => { + ValidationStrategy.object({}); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.object(null); + }, /Expected an object/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.object(""); + }, /Expected an object/); + }); + }); + + describe("array", () => { + it("should not throw an error when the value is an array", () => { + ValidationStrategy.array([]); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.array(null); + }, /Expected an array/); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy.array(""); + }, /Expected an array/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.array({}); + }, /Expected an array/); + }); + }); + + describe("object?", () => { + it("should not throw an error when the value is an object", () => { + ValidationStrategy["object?"]({}); + }); + + it("should not throw an error when the value is null", () => { + ValidationStrategy["object?"](null); + }); + + it("should throw an error when the value is a string", () => { + assert.throws(() => { + ValidationStrategy["object?"](""); + }, /Expected an object/); + }); + }); + + describe("string", () => { + it("should not throw an error when the value is a string", () => { + ValidationStrategy.string("foo"); + }); + + it("should not throw an error when the value is an empty string", () => { + ValidationStrategy.string(""); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy.string(null); + }, /Expected a string/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy.string({}); + }, /Expected a string/); + }); + }); + + describe("string!", () => { + it("should not throw an error when the value is an string", () => { + ValidationStrategy["string!"]("foo"); + }); + + it("should throw an error when the value is an empty string", () => { + assert.throws(() => { + ValidationStrategy["string!"](""); + }, /Expected a non-empty string/); + }); + + it("should throw an error when the value is null", () => { + assert.throws(() => { + ValidationStrategy["string!"](null); + }, /Expected a non-empty string/); + }); + + it("should throw an error when the value is an object", () => { + assert.throws(() => { + ValidationStrategy["string!"]({}); + }, /Expected a non-empty string/); + }); + }); + + +}); diff --git a/node_modules/@types/json-schema/LICENSE b/node_modules/@types/json-schema/LICENSE old mode 100644 new mode 100755 diff --git a/node_modules/@types/json-schema/README.md b/node_modules/@types/json-schema/README.md old mode 100644 new mode 100755 index 75b31e0396..ffae5ebe66 --- a/node_modules/@types/json-schema/README.md +++ b/node_modules/@types/json-schema/README.md @@ -8,7 +8,7 @@ This package contains type definitions for json-schema 4.0, 6.0 and (https://git Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema. ### Additional Details - * Last updated: Mon, 31 Aug 2020 21:41:49 GMT + * Last updated: Tue, 06 Jul 2021 21:33:48 GMT * Dependencies: none * Global values: none diff --git a/node_modules/@types/json-schema/index.d.ts b/node_modules/@types/json-schema/index.d.ts old mode 100644 new mode 100755 index be735fbf88..5c73eb43e6 --- a/node_modules/@types/json-schema/index.d.ts +++ b/node_modules/@types/json-schema/index.d.ts @@ -16,7 +16,7 @@ * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1 */ export type JSONSchema4TypeName = - | 'string' + | 'string' // | 'number' | 'integer' | 'boolean' @@ -29,7 +29,7 @@ export type JSONSchema4TypeName = * @see https://tools.ietf.org/html/draft-zyp-json-schema-04#section-3.5 */ export type JSONSchema4Type = - | string + | string // | number | boolean | JSONSchema4Object @@ -65,9 +65,9 @@ export type JSONSchema4Version = string; * @see https://tools.ietf.org/html/draft-zyp-json-schema-04 */ export interface JSONSchema4 { - id?: string - $ref?: string - $schema?: JSONSchema4Version + id?: string | undefined; + $ref?: string | undefined; + $schema?: JSONSchema4Version | undefined; /** * This attribute is a string that provides a short description of the @@ -75,7 +75,7 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.21 */ - title?: string + title?: string | undefined; /** * This attribute is a string that provides a full description of the of @@ -83,17 +83,17 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.22 */ - description?: string + description?: string | undefined; - default?: JSONSchema4Type - multipleOf?: number - maximum?: number - exclusiveMaximum?: boolean - minimum?: number - exclusiveMinimum?: boolean - maxLength?: number - minLength?: number - pattern?: string + default?: JSONSchema4Type | undefined; + multipleOf?: number | undefined; + maximum?: number | undefined; + exclusiveMaximum?: boolean | undefined; + minimum?: number | undefined; + exclusiveMinimum?: boolean | undefined; + maxLength?: number | undefined; + minLength?: number | undefined; + pattern?: string | undefined; /** * May only be defined when "items" is defined, and is a tuple of JSONSchemas. @@ -105,7 +105,7 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.6 */ - additionalItems?: boolean | JSONSchema4 + additionalItems?: boolean | JSONSchema4 | undefined; /** * This attribute defines the allowed items in an instance array, and @@ -126,13 +126,13 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.5 */ - items?: JSONSchema4 | JSONSchema4[] + items?: JSONSchema4 | JSONSchema4[] | undefined; - maxItems?: number - minItems?: number - uniqueItems?: boolean - maxProperties?: number - minProperties?: number + maxItems?: number | undefined; + minItems?: number | undefined; + uniqueItems?: boolean | undefined; + maxProperties?: number | undefined; + minProperties?: number | undefined; /** * This attribute indicates if the instance must have a value, and not @@ -141,7 +141,7 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.7 */ - required?: false | string[] + required?: false | string[] | undefined; /** * This attribute defines a schema for all properties that are not @@ -153,11 +153,11 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.4 */ - additionalProperties?: boolean | JSONSchema4 + additionalProperties?: boolean | JSONSchema4 | undefined; definitions?: { - [k: string]: JSONSchema4 - } + [k: string]: JSONSchema4; + } | undefined; /** * This attribute is an object with property definitions that define the @@ -173,8 +173,8 @@ export interface JSONSchema4 { * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.2 */ properties?: { - [k: string]: JSONSchema4 - } + [k: string]: JSONSchema4; + } | undefined; /** * This attribute is an object that defines the schema for a set of @@ -188,11 +188,11 @@ export interface JSONSchema4 { * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.3 */ patternProperties?: { - [k: string]: JSONSchema4 - } + [k: string]: JSONSchema4; + } | undefined; dependencies?: { - [k: string]: JSONSchema4 | string[] - } + [k: string]: JSONSchema4 | string[]; + } | undefined; /** * This provides an enumeration of all possible values that are valid @@ -203,17 +203,17 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.19 */ - enum?: JSONSchema4Type[] + enum?: JSONSchema4Type[] | undefined; /** * A single type, or a union of simple types */ - type?: JSONSchema4TypeName | JSONSchema4TypeName[] + type?: JSONSchema4TypeName | JSONSchema4TypeName[] | undefined; - allOf?: JSONSchema4[] - anyOf?: JSONSchema4[] - oneOf?: JSONSchema4[] - not?: JSONSchema4 + allOf?: JSONSchema4[] | undefined; + anyOf?: JSONSchema4[] | undefined; + oneOf?: JSONSchema4[] | undefined; + not?: JSONSchema4 | undefined; /** * The value of this property MUST be another schema which will provide @@ -231,14 +231,14 @@ export interface JSONSchema4 { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.26 */ - extends?: string | string[] + extends?: string | string[] | undefined; /** * @see https://tools.ietf.org/html/draft-zyp-json-schema-04#section-5.6 */ - [k: string]: any + [k: string]: any; - format?: string + format?: string | undefined; } //================================================================================================== @@ -246,7 +246,7 @@ export interface JSONSchema4 { //================================================================================================== export type JSONSchema6TypeName = - | 'string' + | 'string' // | 'number' | 'integer' | 'boolean' @@ -256,7 +256,7 @@ export type JSONSchema6TypeName = | 'any'; export type JSONSchema6Type = - | string + | string // | number | boolean | JSONSchema6Object @@ -291,51 +291,51 @@ export type JSONSchema6Version = string; */ export type JSONSchema6Definition = JSONSchema6 | boolean; export interface JSONSchema6 { - $id?: string - $ref?: string - $schema?: JSONSchema6Version + $id?: string | undefined; + $ref?: string | undefined; + $schema?: JSONSchema6Version | undefined; /** * Must be strictly greater than 0. * A numeric instance is valid only if division by this keyword's value results in an integer. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.1 */ - multipleOf?: number + multipleOf?: number | undefined; /** * Representing an inclusive upper limit for a numeric instance. * This keyword validates only if the instance is less than or exactly equal to "maximum". * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.2 */ - maximum?: number + maximum?: number | undefined; /** * Representing an exclusive upper limit for a numeric instance. * This keyword validates only if the instance is strictly less than (not equal to) to "exclusiveMaximum". * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.3 */ - exclusiveMaximum?: number + exclusiveMaximum?: number | undefined; /** * Representing an inclusive lower limit for a numeric instance. * This keyword validates only if the instance is greater than or exactly equal to "minimum". * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.4 */ - minimum?: number + minimum?: number | undefined; /** * Representing an exclusive lower limit for a numeric instance. * This keyword validates only if the instance is strictly greater than (not equal to) to "exclusiveMinimum". * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.5 */ - exclusiveMinimum?: number + exclusiveMinimum?: number | undefined; /** * Must be a non-negative integer. * A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.6 */ - maxLength?: number + maxLength?: number | undefined; /** * Must be a non-negative integer. @@ -343,20 +343,20 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as a value of 0. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.7 */ - minLength?: number + minLength?: number | undefined; /** * Should be a valid regular expression, according to the ECMA 262 regular expression dialect. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.8 */ - pattern?: string + pattern?: string | undefined; /** * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself. * Omitting this keyword has the same behavior as an empty schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.9 */ - items?: JSONSchema6Definition | JSONSchema6Definition[] + items?: JSONSchema6Definition | JSONSchema6Definition[] | undefined; /** * This keyword determines how child instances validate for arrays, and does not directly validate the immediate instance itself. @@ -367,14 +367,14 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as an empty schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.10 */ - additionalItems?: JSONSchema6Definition + additionalItems?: JSONSchema6Definition | undefined; /** * Must be a non-negative integer. * An array instance is valid against "maxItems" if its size is less than, or equal to, the value of this keyword. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.11 */ - maxItems?: number + maxItems?: number | undefined; /** * Must be a non-negative integer. @@ -382,7 +382,7 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as a value of 0. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.12 */ - minItems?: number + minItems?: number | undefined; /** * If this keyword has boolean value false, the instance validates successfully. @@ -390,20 +390,20 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as a value of false. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.13 */ - uniqueItems?: boolean + uniqueItems?: boolean | undefined; /** * An array instance is valid against "contains" if at least one of its elements is valid against the given schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.14 */ - contains?: JSONSchema6Definition + contains?: JSONSchema6Definition | undefined; /** * Must be a non-negative integer. * An object instance is valid against "maxProperties" if its number of properties is less than, or equal to, the value of this keyword. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.15 */ - maxProperties?: number + maxProperties?: number | undefined; /** * Must be a non-negative integer. @@ -412,7 +412,7 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as a value of 0. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.16 */ - minProperties?: number + minProperties?: number | undefined; /** * Elements of this array must be unique. @@ -421,7 +421,7 @@ export interface JSONSchema6 { * * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.17 */ - required?: string[] + required?: string[] | undefined; /** * This keyword determines how child instances validate for objects, and does not directly validate the immediate instance itself. @@ -431,8 +431,8 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.18 */ properties?: { - [k: string]: JSONSchema6Definition - } + [k: string]: JSONSchema6Definition; + } | undefined; /** * This attribute is an object that defines the schema for a set of property names of an object instance. @@ -443,8 +443,8 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.19 */ patternProperties?: { - [k: string]: JSONSchema6Definition - } + [k: string]: JSONSchema6Definition; + } | undefined; /** * This attribute defines a schema for all properties that are not explicitly defined in an object type definition. @@ -453,7 +453,7 @@ export interface JSONSchema6 { * The default value is an empty schema which allows any value for additional properties. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.20 */ - additionalProperties?: JSONSchema6Definition + additionalProperties?: JSONSchema6Definition | undefined; /** * This keyword specifies rules that are evaluated if the instance is an object and contains a certain property. @@ -463,8 +463,8 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.21 */ dependencies?: { - [k: string]: JSONSchema6Definition | string[] - } + [k: string]: JSONSchema6Definition | string[]; + } | undefined; /** * Takes a schema which validates the names of all properties rather than their values. @@ -472,7 +472,7 @@ export interface JSONSchema6 { * Omitting this keyword has the same behavior as an empty schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.22 */ - propertyNames?: JSONSchema6Definition + propertyNames?: JSONSchema6Definition | undefined; /** * This provides an enumeration of all possible values that are valid @@ -483,78 +483,78 @@ export interface JSONSchema6 { * * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.23 */ - enum?: JSONSchema6Type[] + enum?: JSONSchema6Type[] | undefined; /** * More readable form of a one-element "enum" * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.24 */ - const?: JSONSchema6Type + const?: JSONSchema6Type | undefined; /** * A single type, or a union of simple types * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.25 */ - type?: JSONSchema6TypeName | JSONSchema6TypeName[] + type?: JSONSchema6TypeName | JSONSchema6TypeName[] | undefined; /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.26 */ - allOf?: JSONSchema6Definition[] + allOf?: JSONSchema6Definition[] | undefined; /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.27 */ - anyOf?: JSONSchema6Definition[] + anyOf?: JSONSchema6Definition[] | undefined; /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.28 */ - oneOf?: JSONSchema6Definition[] + oneOf?: JSONSchema6Definition[] | undefined; /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-6.29 */ - not?: JSONSchema6Definition + not?: JSONSchema6Definition | undefined; /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.1 */ definitions?: { - [k: string]: JSONSchema6Definition - } + [k: string]: JSONSchema6Definition; + } | undefined; /** * This attribute is a string that provides a short description of the instance property. * * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.2 */ - title?: string + title?: string | undefined; /** * This attribute is a string that provides a full description of the of purpose the instance property. * * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.2 */ - description?: string + description?: string | undefined; /** * This keyword can be used to supply a default JSON value associated with a particular schema. * It is RECOMMENDED that a default value be valid against the associated schema. * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.3 */ - default?: JSONSchema6Type + default?: JSONSchema6Type | undefined; /** * Array of examples with no validation effect the value of "default" is usable as an example without repeating it under this keyword * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-7.4 */ - examples?: JSONSchema6Type[] + examples?: JSONSchema6Type[] | undefined; /** * @see https://tools.ietf.org/html/draft-wright-json-schema-validation-01#section-8 */ - format?: string + format?: string | undefined; } //================================================================================================== @@ -568,7 +568,7 @@ export interface JSONSchema6 { * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1 */ export type JSONSchema7TypeName = - | 'string' + | 'string' // | 'number' | 'integer' | 'boolean' @@ -581,7 +581,7 @@ export type JSONSchema7TypeName = * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1 */ export type JSONSchema7Type = - | string + | string // | number | boolean | JSONSchema7Object @@ -616,104 +616,104 @@ export type JSONSchema7Version = string; */ export type JSONSchema7Definition = JSONSchema7 | boolean; export interface JSONSchema7 { - $id?: string; - $ref?: string; - $schema?: JSONSchema7Version; - $comment?: string; + $id?: string | undefined; + $ref?: string | undefined; + $schema?: JSONSchema7Version | undefined; + $comment?: string | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1 */ - type?: JSONSchema7TypeName | JSONSchema7TypeName[]; - enum?: JSONSchema7Type[]; - const?: JSONSchema7Type; + type?: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined; + enum?: JSONSchema7Type[] | undefined; + const?: JSONSchema7Type | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.2 */ - multipleOf?: number; - maximum?: number; - exclusiveMaximum?: number; - minimum?: number; - exclusiveMinimum?: number; + multipleOf?: number | undefined; + maximum?: number | undefined; + exclusiveMaximum?: number | undefined; + minimum?: number | undefined; + exclusiveMinimum?: number | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.3 */ - maxLength?: number; - minLength?: number; - pattern?: string; + maxLength?: number | undefined; + minLength?: number | undefined; + pattern?: string | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.4 */ - items?: JSONSchema7Definition | JSONSchema7Definition[]; - additionalItems?: JSONSchema7Definition; - maxItems?: number; - minItems?: number; - uniqueItems?: boolean; - contains?: JSONSchema7; + items?: JSONSchema7Definition | JSONSchema7Definition[] | undefined; + additionalItems?: JSONSchema7Definition | undefined; + maxItems?: number | undefined; + minItems?: number | undefined; + uniqueItems?: boolean | undefined; + contains?: JSONSchema7 | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.5 */ - maxProperties?: number; - minProperties?: number; - required?: string[]; + maxProperties?: number | undefined; + minProperties?: number | undefined; + required?: string[] | undefined; properties?: { [key: string]: JSONSchema7Definition; - }; + } | undefined; patternProperties?: { [key: string]: JSONSchema7Definition; - }; - additionalProperties?: JSONSchema7Definition; + } | undefined; + additionalProperties?: JSONSchema7Definition | undefined; dependencies?: { [key: string]: JSONSchema7Definition | string[]; - }; - propertyNames?: JSONSchema7Definition; + } | undefined; + propertyNames?: JSONSchema7Definition | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6 */ - if?: JSONSchema7Definition; - then?: JSONSchema7Definition; - else?: JSONSchema7Definition; + if?: JSONSchema7Definition | undefined; + then?: JSONSchema7Definition | undefined; + else?: JSONSchema7Definition | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.7 */ - allOf?: JSONSchema7Definition[]; - anyOf?: JSONSchema7Definition[]; - oneOf?: JSONSchema7Definition[]; - not?: JSONSchema7Definition; + allOf?: JSONSchema7Definition[] | undefined; + anyOf?: JSONSchema7Definition[] | undefined; + oneOf?: JSONSchema7Definition[] | undefined; + not?: JSONSchema7Definition | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7 */ - format?: string; + format?: string | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-8 */ - contentMediaType?: string; - contentEncoding?: string; + contentMediaType?: string | undefined; + contentEncoding?: string | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-9 */ definitions?: { [key: string]: JSONSchema7Definition; - }; + } | undefined; /** * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-10 */ - title?: string; - description?: string; - default?: JSONSchema7Type; - readOnly?: boolean; - writeOnly?: boolean; - examples?: JSONSchema7Type; + title?: string | undefined; + description?: string | undefined; + default?: JSONSchema7Type | undefined; + readOnly?: boolean | undefined; + writeOnly?: boolean | undefined; + examples?: JSONSchema7Type | undefined; } export interface ValidationResult { @@ -739,7 +739,11 @@ export function validate(instance: {}, schema: JSONSchema4 | JSONSchema6 | JSONS * This is slightly different than the validate method in that it will fail if the schema is readonly and it will * not check for self-validation, it is assumed that the passed in value is already internally valid. */ -export function checkPropertyChange(value: any, schema: JSONSchema4 | JSONSchema6 | JSONSchema7, property: string): ValidationResult; +export function checkPropertyChange( + value: any, + schema: JSONSchema4 | JSONSchema6 | JSONSchema7, + property: string, +): ValidationResult; /** * This checks to ensure that the result is valid and will throw an appropriate error message if it is not. diff --git a/node_modules/@types/json-schema/package.json b/node_modules/@types/json-schema/package.json old mode 100644 new mode 100755 index 7e1d206a95..61c2379644 --- a/node_modules/@types/json-schema/package.json +++ b/node_modules/@types/json-schema/package.json @@ -1,7 +1,8 @@ { "name": "@types/json-schema", - "version": "7.0.6", + "version": "7.0.8", "description": "TypeScript definitions for json-schema 4.0, 6.0 and", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema", "license": "MIT", "contributors": [ { @@ -39,6 +40,6 @@ }, "scripts": {}, "dependencies": {}, - "typesPublisherContentHash": "bb4b22e70ee94bf7b787307444fcee2f57a8869f012a460ed8f15b5b6985ed70", - "typeScriptVersion": "3.1" + "typesPublisherContentHash": "a58f3eeeeaaf6f6dd512e6c35e095675ba3d36c3dbae363a90d6927e672d0906", + "typeScriptVersion": "3.6" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md b/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md index 7bc2c3c4d1..4409fd5481 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md +++ b/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md @@ -3,6 +3,662 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + + +### Bug Fixes + +* **eslint-plugin:** [prefer-regexp-exec] factor in union types ([#3434](https://github.com/typescript-eslint/typescript-eslint/issues/3434)) ([ac86a79](https://github.com/typescript-eslint/typescript-eslint/commit/ac86a79bd416f031beccc7bdac28a938cb354ba5)) + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + + +### Bug Fixes + +* **eslint-plugin:** allow explicit any for no-unsafe-return ([#3498](https://github.com/typescript-eslint/typescript-eslint/issues/3498)) ([b15a2b2](https://github.com/typescript-eslint/typescript-eslint/commit/b15a2b2a02dc9af2b47b77eb3aede73ffa85ac66)) + + +### Features + +* **eslint-plugin:** [prefer-literal-enum-member] add allowBitwiseExpressions option ([#3515](https://github.com/typescript-eslint/typescript-eslint/issues/3515)) ([288092a](https://github.com/typescript-eslint/typescript-eslint/commit/288092a085fdd9abaffe0aa1d0b37a8844dd86ff)) + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + + +### Bug Fixes + +* **eslint-plugin:** [prefer-includes] ignore option chaining before indexOfs ([#3432](https://github.com/typescript-eslint/typescript-eslint/issues/3432)) ([bf0cddb](https://github.com/typescript-eslint/typescript-eslint/commit/bf0cddbe5291bbc03e2d79aa680f93680222b67f)) +* **eslint-plugin:** fix doc url generation ([#3475](https://github.com/typescript-eslint/typescript-eslint/issues/3475)) ([fc5f171](https://github.com/typescript-eslint/typescript-eslint/commit/fc5f171b1ade2b45a1a4268b6d22926d420282a6)), closes [#3473](https://github.com/typescript-eslint/typescript-eslint/issues/3473) + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + + +### Bug Fixes + +* **eslint-plugin:** [no-type-alias] consider type imports as alias types ([#3433](https://github.com/typescript-eslint/typescript-eslint/issues/3433)) ([d4f0774](https://github.com/typescript-eslint/typescript-eslint/commit/d4f077473afb04f7c4d377dd87318749632b4404)) + + +### Features + +* **eslint-plugin:** [member-ordering] add callback as an ordering type of node ([#3354](https://github.com/typescript-eslint/typescript-eslint/issues/3354)) ([d134b1f](https://github.com/typescript-eslint/typescript-eslint/commit/d134b1fa2540dec7094728f3dec1bbb8c644fe58)) +* **eslint-plugin:** [space-infix-ops] Add support for Union and intersection of type declarations ([#3360](https://github.com/typescript-eslint/typescript-eslint/issues/3360)) ([3d29323](https://github.com/typescript-eslint/typescript-eslint/commit/3d2932390cc335ab2cf80ae7a7fad066fd2eb22b)) + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + + +### Bug Fixes + +* corrected no-unsupported-browser-code in roadmap as unimplemented ([#3407](https://github.com/typescript-eslint/typescript-eslint/issues/3407)) ([2319b0e](https://github.com/typescript-eslint/typescript-eslint/commit/2319b0e1847991b8b8902ff4a3b779f1a27c7a45)) + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + + +### Bug Fixes + +* **eslint-plugin:** [no-shadow] fix static class method generics shadowing class generics ([#3393](https://github.com/typescript-eslint/typescript-eslint/issues/3393)) ([b1e1c8a](https://github.com/typescript-eslint/typescript-eslint/commit/b1e1c8a44695a58d29d19cf32ce35a8267bf506f)), closes [#2592](https://github.com/typescript-eslint/typescript-eslint/issues/2592) +* **eslint-plugin:** [no-unsafe-*] special case handling for the empty map constructor with no generics ([#3394](https://github.com/typescript-eslint/typescript-eslint/issues/3394)) ([cae4f4a](https://github.com/typescript-eslint/typescript-eslint/commit/cae4f4a0f33f8c954b1670d0abcfc8edd6193a06)), closes [#2109](https://github.com/typescript-eslint/typescript-eslint/issues/2109) + + +### Features + +* **eslint-plugin:** [dot-notation] optionally allow square bracket notation where an index signature exists in conjunction with `noPropertyAccessFromIndexSignature` ([#3361](https://github.com/typescript-eslint/typescript-eslint/issues/3361)) ([37ec2c2](https://github.com/typescript-eslint/typescript-eslint/commit/37ec2c2264add3e6ce20ac4e02d48644afda3fa8)) + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Bug Fixes + +* **scope-manager:** fix visiting TSAsExpression in assignment ([#3355](https://github.com/typescript-eslint/typescript-eslint/issues/3355)) ([87521a0](https://github.com/typescript-eslint/typescript-eslint/commit/87521a024103bc5fc643861649bee9a288f55b7b)) + + +### Features + +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + + +### Bug Fixes + +* **eslint-plugin:** [no-unsafe-argument] handle tuple types on rest arguments ([#3269](https://github.com/typescript-eslint/typescript-eslint/issues/3269)) ([6f8cfe6](https://github.com/typescript-eslint/typescript-eslint/commit/6f8cfe6f83ee26b66b2146cc17b1205100a54a9c)) + + +### Features + +* **eslint-plugin:** [prefer-regexp-exec] add autofix ([#3207](https://github.com/typescript-eslint/typescript-eslint/issues/3207)) ([e2cbeef](https://github.com/typescript-eslint/typescript-eslint/commit/e2cbeefb3d9a7cce257b5675f7f19f1b159a9d26)) + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + + +### Bug Fixes + +* **eslint-plugin:** [no-type-alias] consider `keyof` as an alias ([#3242](https://github.com/typescript-eslint/typescript-eslint/issues/3242)) ([329ef02](https://github.com/typescript-eslint/typescript-eslint/commit/329ef023090c004694b5996ddb04fdde5b05ebb0)) +* **eslint-plugin:** [no-unnecessary-type-assertion] correct bad fix for angle bracket assertion ([#3244](https://github.com/typescript-eslint/typescript-eslint/issues/3244)) ([265a039](https://github.com/typescript-eslint/typescript-eslint/commit/265a039c7e728b719143e09ee61066039d721f62)) +* **eslint-plugin:** [restrict-plus-operands] consider template literal types as strings ([#3234](https://github.com/typescript-eslint/typescript-eslint/issues/3234)) ([ccfd68e](https://github.com/typescript-eslint/typescript-eslint/commit/ccfd68e365391b3f117df96792355f9c3655288c)) +* **eslint-plugin:** [strict-boolean-expressions] account for truthy literals ([#3236](https://github.com/typescript-eslint/typescript-eslint/issues/3236)) ([0913f40](https://github.com/typescript-eslint/typescript-eslint/commit/0913f40c87762de198b05a5473b4fb79aeb46967)) +* **eslint-plugin:** always ignore assignments in no-unnecessary-type-assertion ([#3235](https://github.com/typescript-eslint/typescript-eslint/issues/3235)) ([0221476](https://github.com/typescript-eslint/typescript-eslint/commit/02214768a3721d8514c70e00546e861da6581e4d)) + + +### Features + +* **eslint-plugin:** [no-unsafe-argument] add rule ([#3256](https://github.com/typescript-eslint/typescript-eslint/issues/3256)) ([b1aa7dc](https://github.com/typescript-eslint/typescript-eslint/commit/b1aa7dc6971ee8409b729dffb8b69478455734ed)), closes [#791](https://github.com/typescript-eslint/typescript-eslint/issues/791) +* **eslint-plugin:** [no-unsafe-call][no-unsafe-member-access] improve report messages for `this` for `noImplicitThis` ([#3199](https://github.com/typescript-eslint/typescript-eslint/issues/3199)) ([b1b26c4](https://github.com/typescript-eslint/typescript-eslint/commit/b1b26c4843a4cfa209a0c9c3d8bea1de37333b48)) + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + + +### Features + +* **eslint-plugin:** [space-infix-ops] support for class properties and type aliases ([#3231](https://github.com/typescript-eslint/typescript-eslint/issues/3231)) ([5414bf2](https://github.com/typescript-eslint/typescript-eslint/commit/5414bf27a81311099d001808475d9cf832ce3bfe)) +* **eslint-plugin:** [type-annotation-spacing] handle space between ? and : ([#3138](https://github.com/typescript-eslint/typescript-eslint/issues/3138)) ([40bdb0b](https://github.com/typescript-eslint/typescript-eslint/commit/40bdb0b27b21de511f0ecd151cb8282a625ca6e1)) + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + + +### Bug Fixes + +* **eslint-plugin:** [member-delimiter-style] correct invalid fix for multiline with params on the same line ([#3177](https://github.com/typescript-eslint/typescript-eslint/issues/3177)) ([7ad343b](https://github.com/typescript-eslint/typescript-eslint/commit/7ad343b067040f6ea816b129323d110d4bc2e830)) +* **eslint-plugin:** [promise-function-async] bad fixer with computed and literal methods ([#3163](https://github.com/typescript-eslint/typescript-eslint/issues/3163)) ([e3a3ea0](https://github.com/typescript-eslint/typescript-eslint/commit/e3a3ea04757464aa2dded1ef46af8ad4e05246f2)) + + +### Features + +* **eslint-plugin:** [object-curly-spacing] support MappedType ([#3176](https://github.com/typescript-eslint/typescript-eslint/issues/3176)) ([0557a43](https://github.com/typescript-eslint/typescript-eslint/commit/0557a439327557f4c0369ae2dddc8282ba45bfe6)) +* **eslint-plugin:** [unbound-method] improve error message ([#3203](https://github.com/typescript-eslint/typescript-eslint/issues/3203)) ([5cc5d2e](https://github.com/typescript-eslint/typescript-eslint/commit/5cc5d2ef6d924d301e87f7bcf599352310e74b2c)), closes [#3201](https://github.com/typescript-eslint/typescript-eslint/issues/3201) + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + + +### Bug Fixes + +* **eslint-plugin:** [explicit-module-boundary-types] fixes [#2864](https://github.com/typescript-eslint/typescript-eslint/issues/2864) related to functions in nested object properties ([#3178](https://github.com/typescript-eslint/typescript-eslint/issues/3178)) ([55e1fba](https://github.com/typescript-eslint/typescript-eslint/commit/55e1fbaca985b500cad1cc9ec25717b18cf5a17b)) +* **eslint-plugin:** [no-extran-class] allowWithDecorator should ignore other errors ([#3160](https://github.com/typescript-eslint/typescript-eslint/issues/3160)) ([a148673](https://github.com/typescript-eslint/typescript-eslint/commit/a1486736d8ef3555832ddfb27fd0980368b363f5)) + + +### Features + +* **eslint-plugin:** add package type declaration ([#3164](https://github.com/typescript-eslint/typescript-eslint/issues/3164)) ([08b058a](https://github.com/typescript-eslint/typescript-eslint/commit/08b058a7a6db3b59c28753bb322717e1fee44d1f)) + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + + +### Bug Fixes + +* **eslint-plugin:** [no-unnecessary-type-assertion] handle assignment ([#3133](https://github.com/typescript-eslint/typescript-eslint/issues/3133)) ([cb22561](https://github.com/typescript-eslint/typescript-eslint/commit/cb2256168c67e0383083673a5afe77076de49da5)) + + +### Features + +* **eslint-plugin:** [strict-bool-expr] add fixes and suggestions ([#2847](https://github.com/typescript-eslint/typescript-eslint/issues/2847)) ([3f9e9a1](https://github.com/typescript-eslint/typescript-eslint/commit/3f9e9a1e9fc3e507bd01d1913ef642cd129de402)) + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + + +### Bug Fixes + +* **eslint-plugin:** [consistent-indexed-object-style] do not autofix if interface has extends ([#3009](https://github.com/typescript-eslint/typescript-eslint/issues/3009)) ([b0475af](https://github.com/typescript-eslint/typescript-eslint/commit/b0475aff3920d748fa74b5a6d8a7ad5dd731aec4)) +* **eslint-plugin:** [no-implied-eval] handle conditional expression ([#3125](https://github.com/typescript-eslint/typescript-eslint/issues/3125)) ([8c65d30](https://github.com/typescript-eslint/typescript-eslint/commit/8c65d30a225a3b99e80326961d0cb0c8189b039c)) +* **eslint-plugin:** [no-unused-vars] don't report nested module declaration ([#3119](https://github.com/typescript-eslint/typescript-eslint/issues/3119)) ([4ca5888](https://github.com/typescript-eslint/typescript-eslint/commit/4ca58886adf3fc0fe31c263559990c8a534205f9)) +* **eslint-plugin:** [prefer-function-type] apply existing comments to the fixed code ([#3094](https://github.com/typescript-eslint/typescript-eslint/issues/3094)) ([c32f803](https://github.com/typescript-eslint/typescript-eslint/commit/c32f803d4480acf5ffc88e308b4243e5185c4f48)) +* **eslint-plugin:** [unbound-method] allow `super` expressions in `this` assignments ([#3010](https://github.com/typescript-eslint/typescript-eslint/issues/3010)) ([c65a139](https://github.com/typescript-eslint/typescript-eslint/commit/c65a1391be15bbcf3ae293b1c53686703883d546)) + + +### Features + +* **eslint-plugin:** [member-delimiter-style] Add an option 'multilineDetection' to treat types and interfaces as single line if the last member ends on the same line as the closing bracket ([#2970](https://github.com/typescript-eslint/typescript-eslint/issues/2970)) ([cf86f42](https://github.com/typescript-eslint/typescript-eslint/commit/cf86f427186d58b0fce4bb3ff9571c4301babeb3)) +* **eslint-plugin:** [prom-func-async] report only function head ([#2872](https://github.com/typescript-eslint/typescript-eslint/issues/2872)) ([25f459c](https://github.com/typescript-eslint/typescript-eslint/commit/25f459cdc4f38d44b48554e04cfa1676538ccdfb)) + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + + +### Bug Fixes + +* **typescript-estree:** correct issues in AST definition ([#3083](https://github.com/typescript-eslint/typescript-eslint/issues/3083)) ([509a117](https://github.com/typescript-eslint/typescript-eslint/commit/509a11749f85400a01e9fecfecd12871ce562d3d)) +* add missing intrinsic keyword node to AST ([#3081](https://github.com/typescript-eslint/typescript-eslint/issues/3081)) ([409bf0b](https://github.com/typescript-eslint/typescript-eslint/commit/409bf0bb3e2ac4d8782408d436ebdefb42dba38b)) +* **eslint-plugin:** [no-var-requires] report when used in type assertion ([#3074](https://github.com/typescript-eslint/typescript-eslint/issues/3074)) ([763a252](https://github.com/typescript-eslint/typescript-eslint/commit/763a2520bfea09c3b6252ea36bc3ff10b05eca6c)) + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + + +### Bug Fixes + +* **eslint-plugin:** [explicit-module-boundary-types] check allowNames on function declarations and property methods ([#3051](https://github.com/typescript-eslint/typescript-eslint/issues/3051)) ([0ade469](https://github.com/typescript-eslint/typescript-eslint/commit/0ade469dc1cf17d79c36a9c985630d60491ed847)) + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + + +### Bug Fixes + +* **eslint-plugin:** [no-extra-parens] handle ESLint 7.19.0 ([#2993](https://github.com/typescript-eslint/typescript-eslint/issues/2993)) ([4615048](https://github.com/typescript-eslint/typescript-eslint/commit/4615048d24359e0fc57b90a96acf4d8ded1dc7bf)) +* **eslint-plugin:** [prefer-function-type] correct fixer when signature ends with a semi ([#3002](https://github.com/typescript-eslint/typescript-eslint/issues/3002)) ([898dd39](https://github.com/typescript-eslint/typescript-eslint/commit/898dd3961944a5da3a129e9eba02634286e7aee4)) +* **scope-manager:** fix visiting of TSImportType ([#3008](https://github.com/typescript-eslint/typescript-eslint/issues/3008)) ([ce4fcbf](https://github.com/typescript-eslint/typescript-eslint/commit/ce4fcbf4401098387a2cf19ae8457c89c509239a)), closes [#3006](https://github.com/typescript-eslint/typescript-eslint/issues/3006) + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + + +### Bug Fixes + +* **eslint-plugin:** [consistent-type-imports] incorrect handling of computed property type signatures ([#2990](https://github.com/typescript-eslint/typescript-eslint/issues/2990)) ([58f2655](https://github.com/typescript-eslint/typescript-eslint/commit/58f26555f62b5f59f13260306638d3148cde6079)), closes [#2989](https://github.com/typescript-eslint/typescript-eslint/issues/2989) +* **scope-manager:** correctly reference generic parameters when decorator metadata is enabled ([#2975](https://github.com/typescript-eslint/typescript-eslint/issues/2975)) ([7695ef3](https://github.com/typescript-eslint/typescript-eslint/commit/7695ef318f1cc8688acaabf4f2730769622f083f)), closes [#2972](https://github.com/typescript-eslint/typescript-eslint/issues/2972) + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + + +### Bug Fixes + +* **eslint-plugin:** [sort-type-union-intersection-members] consider `void` as a `nullish` ([#2944](https://github.com/typescript-eslint/typescript-eslint/issues/2944)) ([a241b25](https://github.com/typescript-eslint/typescript-eslint/commit/a241b25863eb063986fab76b511f478bbba91f47)), closes [#2940](https://github.com/typescript-eslint/typescript-eslint/issues/2940) +* **scope-manager:** fix incorrect handling of class decorators and class method default params ([#2943](https://github.com/typescript-eslint/typescript-eslint/issues/2943)) ([e1eac83](https://github.com/typescript-eslint/typescript-eslint/commit/e1eac8312268d1855a2ed7784b4d190ecb9c9fa4)), closes [#2941](https://github.com/typescript-eslint/typescript-eslint/issues/2941) [#2942](https://github.com/typescript-eslint/typescript-eslint/issues/2942) [#2751](https://github.com/typescript-eslint/typescript-eslint/issues/2751) + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + + +### Features + +* add support for decorator metadata in scope analysis and in consistent-type-imports ([#2751](https://github.com/typescript-eslint/typescript-eslint/issues/2751)) ([445e416](https://github.com/typescript-eslint/typescript-eslint/commit/445e416878b27a54bf07c2d3b84dabd7b06e51bc)), closes [#2559](https://github.com/typescript-eslint/typescript-eslint/issues/2559) +* **eslint-plugin:** add `object-curly-spacing` rule ([#2892](https://github.com/typescript-eslint/typescript-eslint/issues/2892)) ([32bd18d](https://github.com/typescript-eslint/typescript-eslint/commit/32bd18de80f4f8388717d0f0c16d493234362aa5)) + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + + +### Bug Fixes + +* **eslint-plugin:** support eslint@5 ([#2917](https://github.com/typescript-eslint/typescript-eslint/issues/2917)) ([f606846](https://github.com/typescript-eslint/typescript-eslint/commit/f606846af2617a0d8ee3ad5ce7c10864161ebf53)) + + +### Features + +* **eslint-plugin:** [sort-type-union-intersection-members] add nullish group ([#2919](https://github.com/typescript-eslint/typescript-eslint/issues/2919)) ([5558f41](https://github.com/typescript-eslint/typescript-eslint/commit/5558f410007da58a3f4726bbf9501c924ef166a1)) + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + + +### Bug Fixes + +* **eslint-plugin:** [comma-spacing] handle empty type params ([#2915](https://github.com/typescript-eslint/typescript-eslint/issues/2915)) ([4d69fbb](https://github.com/typescript-eslint/typescript-eslint/commit/4d69fbba91ea3161213a0ab093e398fed091168c)) + + +### Features + +* **eslint-plugin:** add rule `sort-type-union-intersection-members` ([#2913](https://github.com/typescript-eslint/typescript-eslint/issues/2913)) ([9092c04](https://github.com/typescript-eslint/typescript-eslint/commit/9092c0494ebd3486e38852198c1930f1432ef21f)) + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + + +### Bug Fixes + +* **eslint-plugin:** [naming-convention] fix precedence of method and property meta selectors ([#2877](https://github.com/typescript-eslint/typescript-eslint/issues/2877)) ([2f10e1a](https://github.com/typescript-eslint/typescript-eslint/commit/2f10e1a5c795cac28a6e0a1a3a0adb5bd6be7f1c)) + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + + +### Bug Fixes + +* **eslint-plugin:** [non-nullable-type-assertion-style] handle const assertion ([#2881](https://github.com/typescript-eslint/typescript-eslint/issues/2881)) ([53dc34d](https://github.com/typescript-eslint/typescript-eslint/commit/53dc34d3917b90c8ab0324fe8054619ddee98003)) + + +### Features + +* **eslint-plugin:** [prom-func-async] add automatic fix ([#2845](https://github.com/typescript-eslint/typescript-eslint/issues/2845)) ([717e718](https://github.com/typescript-eslint/typescript-eslint/commit/717e718e91df2165422228c02dfa248cf55f65a1)) + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + + +### Bug Fixes + +* **eslint-plugin:** [naming-convention] fix wrong member of `method` and `property` meta selectors ([#2856](https://github.com/typescript-eslint/typescript-eslint/issues/2856)) ([9a6c362](https://github.com/typescript-eslint/typescript-eslint/commit/9a6c3628a2f3a7748b7a4b9b0c55400c8d7dfeae)) + + +### Features + +* **eslint-plugin:** add rule `non-nullable-type-assertion-style` ([#2624](https://github.com/typescript-eslint/typescript-eslint/issues/2624)) ([7eee44f](https://github.com/typescript-eslint/typescript-eslint/commit/7eee44fff3041a9725d34bf2fcbfc6fd40a60c61)) + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + + +### Bug Fixes + +* **eslint-plugin:** [method-signature-style] fix crash with methods without a return type ([#2836](https://github.com/typescript-eslint/typescript-eslint/issues/2836)) ([fed89f2](https://github.com/typescript-eslint/typescript-eslint/commit/fed89f24ebe42a6412f0eb19949d5d4771656189)), closes [#2834](https://github.com/typescript-eslint/typescript-eslint/issues/2834) +* **eslint-plugin:** [no-unused-vars] false-positive with class expressions ([#2833](https://github.com/typescript-eslint/typescript-eslint/issues/2833)) ([aadb39f](https://github.com/typescript-eslint/typescript-eslint/commit/aadb39f0ff500ee99ea80e9009ab61283ca9c8cd)), closes [#2831](https://github.com/typescript-eslint/typescript-eslint/issues/2831) +* **eslint-plugin:** [no-unused-vars] fix race condition between naming-convention and no-unused-vars ([#2848](https://github.com/typescript-eslint/typescript-eslint/issues/2848)) ([ccb6b94](https://github.com/typescript-eslint/typescript-eslint/commit/ccb6b9499a4a4077f2e3d81d0844860a25244a0f)), closes [#2844](https://github.com/typescript-eslint/typescript-eslint/issues/2844) + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + + +### Bug Fixes + +* **eslint-plugin:** [consistent-indexed-object-style] convert readonly index signature to readonly record ([#2798](https://github.com/typescript-eslint/typescript-eslint/issues/2798)) ([29428a4](https://github.com/typescript-eslint/typescript-eslint/commit/29428a4dbef133563f2ee54b22908a01ab9a9472)) +* **eslint-plugin:** [consistent-type-imports] crash when using both default and namespace in one import ([#2778](https://github.com/typescript-eslint/typescript-eslint/issues/2778)) ([c816b84](https://github.com/typescript-eslint/typescript-eslint/commit/c816b84814214f7504a0d89a5cd3b08c595bfb50)) +* **eslint-plugin:** [explicit-module-boundary-types] ignore functions exported within typed object/array literals ([#2805](https://github.com/typescript-eslint/typescript-eslint/issues/2805)) ([73a63ee](https://github.com/typescript-eslint/typescript-eslint/commit/73a63ee9ea00b2db0a29f148d7863c3778e4a483)) +* **eslint-plugin:** [no-use-before-define] allow class references if they're within a class decorator ([#2827](https://github.com/typescript-eslint/typescript-eslint/issues/2827)) ([050023a](https://github.com/typescript-eslint/typescript-eslint/commit/050023aa7bd791d0be7b5788a9dcd8e61a00ce79)), closes [#2842](https://github.com/typescript-eslint/typescript-eslint/issues/2842) +* **eslint-plugin:** [triple-slash-reference] fix crash with external module reference ([#2788](https://github.com/typescript-eslint/typescript-eslint/issues/2788)) ([32b1b68](https://github.com/typescript-eslint/typescript-eslint/commit/32b1b6839fb32d93b7faa8fec74c9cb68ea587bb)) +* **scope-manager:** fix assertion assignments not being marked as write references ([#2809](https://github.com/typescript-eslint/typescript-eslint/issues/2809)) ([fa68492](https://github.com/typescript-eslint/typescript-eslint/commit/fa6849245ca55ca407dc031afbad456f2925a8e9)), closes [#2804](https://github.com/typescript-eslint/typescript-eslint/issues/2804) + + +### Features + +* **eslint-plugin:** [naming-convention] add `requireDouble`, `allowDouble`, `allowSingleOrDouble` options for underscores ([#2812](https://github.com/typescript-eslint/typescript-eslint/issues/2812)) ([dd0576a](https://github.com/typescript-eslint/typescript-eslint/commit/dd0576a66c34810bc60e0958948c9a8104a3f1a3)) +* **eslint-plugin:** [naming-convention] add `requiresQuotes` modifier ([#2813](https://github.com/typescript-eslint/typescript-eslint/issues/2813)) ([6fc8409](https://github.com/typescript-eslint/typescript-eslint/commit/6fc84094928c3645a0e04c31bd4d759fdfbdcb74)), closes [#2761](https://github.com/typescript-eslint/typescript-eslint/issues/2761) [#1483](https://github.com/typescript-eslint/typescript-eslint/issues/1483) +* **eslint-plugin:** [naming-convention] add modifier `unused` ([#2810](https://github.com/typescript-eslint/typescript-eslint/issues/2810)) ([6a06944](https://github.com/typescript-eslint/typescript-eslint/commit/6a06944e60677a402e7ab432e6ac1209737a7027)) +* **eslint-plugin:** [naming-convention] add modifiers `exported`, `global`, and `destructured` ([#2808](https://github.com/typescript-eslint/typescript-eslint/issues/2808)) ([fb254a1](https://github.com/typescript-eslint/typescript-eslint/commit/fb254a1036b89f9b78f927d607358e65e81a2250)), closes [#2239](https://github.com/typescript-eslint/typescript-eslint/issues/2239) [#2512](https://github.com/typescript-eslint/typescript-eslint/issues/2512) [#2318](https://github.com/typescript-eslint/typescript-eslint/issues/2318) [#2802](https://github.com/typescript-eslint/typescript-eslint/issues/2802) +* **eslint-plugin:** [naming-convention] allow `destructured` modifier for `parameter` selector ([#2829](https://github.com/typescript-eslint/typescript-eslint/issues/2829)) ([525d2ff](https://github.com/typescript-eslint/typescript-eslint/commit/525d2ff9292d89e1445b273b5378159bca323a1e)), closes [#2828](https://github.com/typescript-eslint/typescript-eslint/issues/2828) +* **eslint-plugin:** [naming-convention] split `property` and `method` selectors into more granular `classXXX`, `objectLiteralXXX`, `typeXXX` ([#2807](https://github.com/typescript-eslint/typescript-eslint/issues/2807)) ([665b6d4](https://github.com/typescript-eslint/typescript-eslint/commit/665b6d4023fb9d821f348c39aefff0d7571a98bf)), closes [#1477](https://github.com/typescript-eslint/typescript-eslint/issues/1477) [#2802](https://github.com/typescript-eslint/typescript-eslint/issues/2802) +* **eslint-plugin:** [no-unused-vars] fork the base rule ([#2768](https://github.com/typescript-eslint/typescript-eslint/issues/2768)) ([a8227a6](https://github.com/typescript-eslint/typescript-eslint/commit/a8227a6185dd24de4bfc7d766931643871155021)), closes [#2782](https://github.com/typescript-eslint/typescript-eslint/issues/2782) [#2714](https://github.com/typescript-eslint/typescript-eslint/issues/2714) [#2648](https://github.com/typescript-eslint/typescript-eslint/issues/2648) +* **eslint-plugin:** [unbound-method] add support for methods with a `this: void` parameter ([#2796](https://github.com/typescript-eslint/typescript-eslint/issues/2796)) ([878dd4a](https://github.com/typescript-eslint/typescript-eslint/commit/878dd4ae8c408f1eb42790a8fac37f85040b7f3c)) + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + + +### Bug Fixes + +* **eslint-plugin:** [prefer-literal-enum-member] allow pure template literal strings ([#2786](https://github.com/typescript-eslint/typescript-eslint/issues/2786)) ([f3bf6a1](https://github.com/typescript-eslint/typescript-eslint/commit/f3bf6a1791c9dc64bb18d45712f07767c9f96cbd)) + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + + +### Bug Fixes + +* **eslint-plugin:** [no-unnecessary-condition] false positive when array predicate returns unknown ([#2772](https://github.com/typescript-eslint/typescript-eslint/issues/2772)) ([111c244](https://github.com/typescript-eslint/typescript-eslint/commit/111c244c3eb157efeb5c43ff39f12633b27f091e)) + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + + +### Bug Fixes + +* **eslint-plugin:** [consistent-type-definitions] remove fixer when the interface is within a global module declaration ([#2739](https://github.com/typescript-eslint/typescript-eslint/issues/2739)) ([2326238](https://github.com/typescript-eslint/typescript-eslint/commit/2326238738c95acfc14c17f9b16798f1de6d267f)) +* **eslint-plugin:** [no-unsafe-member-access] ignore MemberExpression's whose parents are either TSClassImplements or TSInterfaceHeritage ([#2753](https://github.com/typescript-eslint/typescript-eslint/issues/2753)) ([535db3b](https://github.com/typescript-eslint/typescript-eslint/commit/535db3bf27ee1d7824ada9acd91d1b7833064628)) + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + + +### Bug Fixes + +* **eslint-plugin:** [array-type] parenthesize ReadonlyArray fix ([#2747](https://github.com/typescript-eslint/typescript-eslint/issues/2747)) ([83385ac](https://github.com/typescript-eslint/typescript-eslint/commit/83385ac351f45d3bcbd19f72711838e9a8473827)) +* **eslint-plugin:** [no-extra-non-null-assertion] false positive with non-nullable computed key ([#2737](https://github.com/typescript-eslint/typescript-eslint/issues/2737)) ([e82698c](https://github.com/typescript-eslint/typescript-eslint/commit/e82698c0ec796e460e40c3dd90a30bd100db05c2)) + + +### Features + +* **eslint-plugin:** add rule `no-confusing-void-expression` ([#2605](https://github.com/typescript-eslint/typescript-eslint/issues/2605)) ([c8a4dad](https://github.com/typescript-eslint/typescript-eslint/commit/c8a4dadeab8a64fb4768deda8f65475435dd2cad)) +* support TS4.1 features ([#2748](https://github.com/typescript-eslint/typescript-eslint/issues/2748)) ([2be354b](https://github.com/typescript-eslint/typescript-eslint/commit/2be354bb15f9013a2da1b13a0c0836e9ef057e16)), closes [#2583](https://github.com/typescript-eslint/typescript-eslint/issues/2583) + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + + +### Bug Fixes + +* **eslint-plugin:** [consistent-indexed-object-style] fix wrong autofix behaviour with generics ([#2722](https://github.com/typescript-eslint/typescript-eslint/issues/2722)) ([73d9713](https://github.com/typescript-eslint/typescript-eslint/commit/73d97130afe79b8a458c215581ce86c62009ad8b)) +* **eslint-plugin:** [no-shadow] ignore global module augmentation ([#2729](https://github.com/typescript-eslint/typescript-eslint/issues/2729)) ([d8c67a5](https://github.com/typescript-eslint/typescript-eslint/commit/d8c67a564a4cada5add8587f655aee2305cbc562)) + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + + +### Bug Fixes + +* **eslint-plugin:** [method-signature-style] correct fixer for overloads in an object literal type ([#2708](https://github.com/typescript-eslint/typescript-eslint/issues/2708)) ([0763913](https://github.com/typescript-eslint/typescript-eslint/commit/0763913c4a0d1061465ae3329704f1a7de4b9326)) +* **eslint-plugin:** [method-signature-style] don't auto-fix interfaces within namespaces ([#2678](https://github.com/typescript-eslint/typescript-eslint/issues/2678)) ([e012049](https://github.com/typescript-eslint/typescript-eslint/commit/e01204931e460f5e6731abc443c88d666ca0b07a)) +* **eslint-plugin:** [prefer-string-starts-ends-with] Check negative indices in the second position for slice ([#2696](https://github.com/typescript-eslint/typescript-eslint/issues/2696)) ([66e9c6e](https://github.com/typescript-eslint/typescript-eslint/commit/66e9c6e29f9f56bbd178ba6405f47053be591258)) + + +### Features + +* **eslint-plugin:** [ban-types] support banning `[]` ([#2704](https://github.com/typescript-eslint/typescript-eslint/issues/2704)) ([ef8b5a7](https://github.com/typescript-eslint/typescript-eslint/commit/ef8b5a7e09cca4bdacf205da28f99f2b1a419d00)), closes [#2582](https://github.com/typescript-eslint/typescript-eslint/issues/2582) +* **eslint-plugin:** add `no-unnecessary-type-constraint` rule ([#2516](https://github.com/typescript-eslint/typescript-eslint/issues/2516)) ([880ac75](https://github.com/typescript-eslint/typescript-eslint/commit/880ac753b90d63034f0a33f8f512d9fabc17c8f9)) +* **eslint-plugin:** add extension rule `space-infix-ops` ([#2593](https://github.com/typescript-eslint/typescript-eslint/issues/2593)) ([343d20d](https://github.com/typescript-eslint/typescript-eslint/commit/343d20db23a1640e3bca8cf52b7db1fa46e092e6)) + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + + +### Bug Fixes + +* **eslint-plugin:** [array-type] fix issues with readonly option ([#2667](https://github.com/typescript-eslint/typescript-eslint/issues/2667)) ([63d1d81](https://github.com/typescript-eslint/typescript-eslint/commit/63d1d8189c829c6543c7966a864b62c07fbd61a0)) +* **eslint-plugin:** [lines-between-class-members] fix typo in schema ([#2681](https://github.com/typescript-eslint/typescript-eslint/issues/2681)) ([a2a2514](https://github.com/typescript-eslint/typescript-eslint/commit/a2a2514f8a8eee478c8697c4ce42d3c586599b14)) +* **eslint-plugin:** [naming-convention] check bodyless function parameters ([#2675](https://github.com/typescript-eslint/typescript-eslint/issues/2675)) ([c505863](https://github.com/typescript-eslint/typescript-eslint/commit/c505863ac41755383e08893ba0bc4c0fd937eb1d)) +* **eslint-plugin:** [no-invalid-this] allow "this" in class property definitions ([#2685](https://github.com/typescript-eslint/typescript-eslint/issues/2685)) ([dccb6ee](https://github.com/typescript-eslint/typescript-eslint/commit/dccb6ee9f1cd9519c26808d10a5bed8291d0a8e4)) +* **eslint-plugin:** [no-misused-promises] False negative in LogicalExpression ([#2682](https://github.com/typescript-eslint/typescript-eslint/issues/2682)) ([30a6951](https://github.com/typescript-eslint/typescript-eslint/commit/30a695103e99d214fd40847aaa51c1631981c226)), closes [#2544](https://github.com/typescript-eslint/typescript-eslint/issues/2544) +* **eslint-plugin:** [no-unnecessary-type-assertion] correct fixer for vue files ([#2680](https://github.com/typescript-eslint/typescript-eslint/issues/2680)) ([55111af](https://github.com/typescript-eslint/typescript-eslint/commit/55111afd7819d29d65da4f41cc6a129f34aaeb3e)) +* **eslint-plugin:** [return-await] do not auto-fix when type is `any`/`unknown` ([#2671](https://github.com/typescript-eslint/typescript-eslint/issues/2671)) ([d690c8d](https://github.com/typescript-eslint/typescript-eslint/commit/d690c8dff3636d8c8a9a38bd422e0bedbd1d72cb)) + + +### Features + +* **eslint-plugin:** [dot-notation] add `allowProtectedClassPropertyAccess` option ([#2622](https://github.com/typescript-eslint/typescript-eslint/issues/2622)) ([bbc9e35](https://github.com/typescript-eslint/typescript-eslint/commit/bbc9e3540576891552dc2dc54b2acbc54104be9d)) +* **eslint-plugin:** [prefer-readonly-parameter-types] add `ignoreInferredTypes` option ([#2668](https://github.com/typescript-eslint/typescript-eslint/issues/2668)) ([91010e8](https://github.com/typescript-eslint/typescript-eslint/commit/91010e88258bf47a0438e842c8ddca19e0414b48)) +* **eslint-plugin:** [restrict-plus-operands] add intersection type determination logic ([#2628](https://github.com/typescript-eslint/typescript-eslint/issues/2628)) ([da71362](https://github.com/typescript-eslint/typescript-eslint/commit/da713627c88354229f245866ccf1018fb56b6e53)) +* **typescript-estree:** add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect ([#2669](https://github.com/typescript-eslint/typescript-eslint/issues/2669)) ([90a5878](https://github.com/typescript-eslint/typescript-eslint/commit/90a587845088da1b205e4d7d77dbc3f9447b1c5a)) + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + + +### Bug Fixes + +* **eslint-plugin:** [ban-ts-comment] support block comments ([#2644](https://github.com/typescript-eslint/typescript-eslint/issues/2644)) ([9c3c686](https://github.com/typescript-eslint/typescript-eslint/commit/9c3c686b59b4b8fd02c479a534b5ca9b33c5ff40)) +* **eslint-plugin:** [ban-types] allow banning types with specific parameters ([#2662](https://github.com/typescript-eslint/typescript-eslint/issues/2662)) ([77732a2](https://github.com/typescript-eslint/typescript-eslint/commit/77732a2f3979f638e471b6de327b2ea0e976d568)) +* **eslint-plugin:** [consistent-type-assertions] check type assertion in jsx props ([#2653](https://github.com/typescript-eslint/typescript-eslint/issues/2653)) ([393e925](https://github.com/typescript-eslint/typescript-eslint/commit/393e92573fbde849369af1d10b9f25299ec92eaf)) +* **eslint-plugin:** [no-duplicate-imports] distinguish member, default ([#2637](https://github.com/typescript-eslint/typescript-eslint/issues/2637)) ([c71f423](https://github.com/typescript-eslint/typescript-eslint/commit/c71f423b89bf034caf2a4f1bb3ed0389b72f3aa9)) +* **eslint-plugin:** [no-throw-literal] false positive with logical expressions ([#2645](https://github.com/typescript-eslint/typescript-eslint/issues/2645)) ([57aa6c7](https://github.com/typescript-eslint/typescript-eslint/commit/57aa6c7642320074ed2b6a15e7f38e66a2fb13d1)) +* **eslint-plugin:** [no-unused-vars] fix false positives for duplicated names in namespaces ([#2659](https://github.com/typescript-eslint/typescript-eslint/issues/2659)) ([0d696c7](https://github.com/typescript-eslint/typescript-eslint/commit/0d696c72c5c9c3446902a63509d499ee95483e81)) +* **eslint-plugin:** [no-use-before-define] correctly handle typeof type references ([#2623](https://github.com/typescript-eslint/typescript-eslint/issues/2623)) ([8e44c78](https://github.com/typescript-eslint/typescript-eslint/commit/8e44c78a20410457851e5b7fe9a24777876c0aaf)) +* **scope-manager:** don't create a variable for global augmentation ([#2639](https://github.com/typescript-eslint/typescript-eslint/issues/2639)) ([6bc9325](https://github.com/typescript-eslint/typescript-eslint/commit/6bc93257ec876214743a165093b6666d713379f6)) + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + + +### Features + +* **eslint-plugin:** add `consistent-indexed-object-style` rule ([#2401](https://github.com/typescript-eslint/typescript-eslint/issues/2401)) ([d7dc108](https://github.com/typescript-eslint/typescript-eslint/commit/d7dc108580cdcb9890ac0539e7223aedbff4a0ed)) +* **eslint-plugin:** add extension rule `no-duplicate-imports` ([#2609](https://github.com/typescript-eslint/typescript-eslint/issues/2609)) ([498f397](https://github.com/typescript-eslint/typescript-eslint/commit/498f397ff3898dde631f37311615b555f38a414e)) + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + + +### Bug Fixes + +* **eslint-plugin:** added safe getTypeOfPropertyOfType wrapper ([#2567](https://github.com/typescript-eslint/typescript-eslint/issues/2567)) ([7cba2de](https://github.com/typescript-eslint/typescript-eslint/commit/7cba2de138542563d678fbfc738cd1b3ebf01e07)) +* **experimental-utils:** treat RuleTester arrays as readonly ([#2601](https://github.com/typescript-eslint/typescript-eslint/issues/2601)) ([8025777](https://github.com/typescript-eslint/typescript-eslint/commit/80257776b78bd2b2b4389d6bd530b009a75fb520)) + + +### Features + +* **eslint-plugin:** [no-invalid-void-type] add option to allow `this: void` ([#2481](https://github.com/typescript-eslint/typescript-eslint/issues/2481)) ([ddf5660](https://github.com/typescript-eslint/typescript-eslint/commit/ddf5660846784003cab4b10ae7a5e510b9dd562b)) + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + + +### Bug Fixes + +* **eslint-plugin:** [naming-convention] ignore properties inside object patterns ([#2566](https://github.com/typescript-eslint/typescript-eslint/issues/2566)) ([53a3cbc](https://github.com/typescript-eslint/typescript-eslint/commit/53a3cbc6f002e55135efbdf4982a3ad308ac708b)) +* **eslint-plugin:** [prefer-ts-expect-error] support block comments ([#2541](https://github.com/typescript-eslint/typescript-eslint/issues/2541)) ([c6f72fb](https://github.com/typescript-eslint/typescript-eslint/commit/c6f72fbd3ccc19e39954cfe3d36d358ef43b7daa)) +* **scope-manager:** correct analysis of inferred types in conditional types ([#2537](https://github.com/typescript-eslint/typescript-eslint/issues/2537)) ([4f660fd](https://github.com/typescript-eslint/typescript-eslint/commit/4f660fd31acbb88b30719f925dcb2b3022cc2bab)) + + +### Features + +* **eslint-plugin:** add extension rule `comma-dangle` ([#2416](https://github.com/typescript-eslint/typescript-eslint/issues/2416)) ([f7babcf](https://github.com/typescript-eslint/typescript-eslint/commit/f7babcf4e6da3e5cba8f2c75d57abf8089432d05)) + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + + +### Bug Fixes + +* **eslint-plugin:** [naming-convention] allow an array of selectors with types and modifiers ([#2415](https://github.com/typescript-eslint/typescript-eslint/issues/2415)) ([7ca54c3](https://github.com/typescript-eslint/typescript-eslint/commit/7ca54c3e4601ad07db5b882a67965cd67a18c4b3)) +* **eslint-plugin:** [no-implied-eval] handle the `Function` type ([#2435](https://github.com/typescript-eslint/typescript-eslint/issues/2435)) ([e1401dc](https://github.com/typescript-eslint/typescript-eslint/commit/e1401dc5897d01da516802cfb2333cf4bc6d0e93)) +* **eslint-plugin:** [no-unused-vars] better handling for declared modules ([#2553](https://github.com/typescript-eslint/typescript-eslint/issues/2553)) ([02d72d4](https://github.com/typescript-eslint/typescript-eslint/commit/02d72d480be7a8f7ddc66a028338cfb996886f3c)), closes [#2523](https://github.com/typescript-eslint/typescript-eslint/issues/2523) +* **eslint-plugin:** [no-use-before-define] false positive for function type arguments ([#2554](https://github.com/typescript-eslint/typescript-eslint/issues/2554)) ([189162d](https://github.com/typescript-eslint/typescript-eslint/commit/189162d46ecb116c420232937a7f86df913f4e79)), closes [#2527](https://github.com/typescript-eslint/typescript-eslint/issues/2527) +* **eslint-plugin:** [prefer-function-type] handle `this` return ([#2437](https://github.com/typescript-eslint/typescript-eslint/issues/2437)) ([7c6fcee](https://github.com/typescript-eslint/typescript-eslint/commit/7c6fcee657dffd041e389e0aeaa4f3e278e92986)) +* **eslint-plugin:** [return-await] don't error for `in-try-catch` if the return is in a `catch` without a `finally` ([#2356](https://github.com/typescript-eslint/typescript-eslint/issues/2356)) ([efdd521](https://github.com/typescript-eslint/typescript-eslint/commit/efdd5213ceaef332cf0b2c26573176f844d22a09)) + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) diff --git a/node_modules/@typescript-eslint/eslint-plugin/README.md b/node_modules/@typescript-eslint/eslint-plugin/README.md index 63b5b6e7f3..344764dcb9 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/README.md +++ b/node_modules/@typescript-eslint/eslint-plugin/README.md @@ -93,85 +93,89 @@ Pro Tip: For larger codebases you may want to consider splitting our linting int -**Key**: :heavy_check_mark: = recommended, :wrench: = fixable, :thought_balloon: = requires type information +**Key**: :white_check_mark: = recommended, :wrench: = fixable, :thought_balloon: = requires type information -| Name | Description | :heavy_check_mark: | :wrench: | :thought_balloon: | +| Name | Description | :white_check_mark: | :wrench: | :thought_balloon: | | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------ | -------- | ----------------- | -| [`@typescript-eslint/adjacent-overload-signatures`](./docs/rules/adjacent-overload-signatures.md) | Require that member overloads be consecutive | :heavy_check_mark: | | | +| [`@typescript-eslint/adjacent-overload-signatures`](./docs/rules/adjacent-overload-signatures.md) | Require that member overloads be consecutive | :white_check_mark: | | | | [`@typescript-eslint/array-type`](./docs/rules/array-type.md) | Requires using either `T[]` or `Array` for arrays | | :wrench: | | -| [`@typescript-eslint/await-thenable`](./docs/rules/await-thenable.md) | Disallows awaiting a value that is not a Thenable | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/ban-ts-comment`](./docs/rules/ban-ts-comment.md) | Bans `// @ts-` comments from being used or requires descriptions after directive | :heavy_check_mark: | | | +| [`@typescript-eslint/await-thenable`](./docs/rules/await-thenable.md) | Disallows awaiting a value that is not a Thenable | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/ban-ts-comment`](./docs/rules/ban-ts-comment.md) | Bans `@ts-` comments from being used or requires descriptions after directive | :white_check_mark: | | | | [`@typescript-eslint/ban-tslint-comment`](./docs/rules/ban-tslint-comment.md) | Bans `// tslint:` comments from being used | | :wrench: | | -| [`@typescript-eslint/ban-types`](./docs/rules/ban-types.md) | Bans specific types from being used | :heavy_check_mark: | :wrench: | | +| [`@typescript-eslint/ban-types`](./docs/rules/ban-types.md) | Bans specific types from being used | :white_check_mark: | :wrench: | | | [`@typescript-eslint/class-literal-property-style`](./docs/rules/class-literal-property-style.md) | Ensures that literals on classes are exposed in a consistent style | | :wrench: | | +| [`@typescript-eslint/consistent-indexed-object-style`](./docs/rules/consistent-indexed-object-style.md) | Enforce or disallow the use of the record type | | :wrench: | | | [`@typescript-eslint/consistent-type-assertions`](./docs/rules/consistent-type-assertions.md) | Enforces consistent usage of type assertions | | | | | [`@typescript-eslint/consistent-type-definitions`](./docs/rules/consistent-type-definitions.md) | Consistent with type definition either `interface` or `type` | | :wrench: | | | [`@typescript-eslint/consistent-type-imports`](./docs/rules/consistent-type-imports.md) | Enforces consistent usage of type imports | | :wrench: | | | [`@typescript-eslint/explicit-function-return-type`](./docs/rules/explicit-function-return-type.md) | Require explicit return types on functions and class methods | | | | | [`@typescript-eslint/explicit-member-accessibility`](./docs/rules/explicit-member-accessibility.md) | Require explicit accessibility modifiers on class properties and methods | | :wrench: | | -| [`@typescript-eslint/explicit-module-boundary-types`](./docs/rules/explicit-module-boundary-types.md) | Require explicit return and argument types on exported functions' and classes' public class methods | :heavy_check_mark: | | | +| [`@typescript-eslint/explicit-module-boundary-types`](./docs/rules/explicit-module-boundary-types.md) | Require explicit return and argument types on exported functions' and classes' public class methods | :white_check_mark: | | | | [`@typescript-eslint/member-delimiter-style`](./docs/rules/member-delimiter-style.md) | Require a specific member delimiter style for interfaces and type literals | | :wrench: | | | [`@typescript-eslint/member-ordering`](./docs/rules/member-ordering.md) | Require a consistent member declaration order | | | | | [`@typescript-eslint/method-signature-style`](./docs/rules/method-signature-style.md) | Enforces using a particular method signature syntax. | | :wrench: | | | [`@typescript-eslint/naming-convention`](./docs/rules/naming-convention.md) | Enforces naming conventions for everything across a codebase | | | :thought_balloon: | | [`@typescript-eslint/no-base-to-string`](./docs/rules/no-base-to-string.md) | Requires that `.toString()` is only called on objects which provide useful information when stringified | | | :thought_balloon: | | [`@typescript-eslint/no-confusing-non-null-assertion`](./docs/rules/no-confusing-non-null-assertion.md) | Disallow non-null assertion in locations that may be confusing | | :wrench: | | +| [`@typescript-eslint/no-confusing-void-expression`](./docs/rules/no-confusing-void-expression.md) | Requires expressions of type void to appear in statement position | | :wrench: | :thought_balloon: | | [`@typescript-eslint/no-dynamic-delete`](./docs/rules/no-dynamic-delete.md) | Disallow the delete operator with computed key expressions | | :wrench: | | -| [`@typescript-eslint/no-empty-interface`](./docs/rules/no-empty-interface.md) | Disallow the declaration of empty interfaces | :heavy_check_mark: | :wrench: | | -| [`@typescript-eslint/no-explicit-any`](./docs/rules/no-explicit-any.md) | Disallow usage of the `any` type | :heavy_check_mark: | :wrench: | | -| [`@typescript-eslint/no-extra-non-null-assertion`](./docs/rules/no-extra-non-null-assertion.md) | Disallow extra non-null assertion | :heavy_check_mark: | :wrench: | | +| [`@typescript-eslint/no-empty-interface`](./docs/rules/no-empty-interface.md) | Disallow the declaration of empty interfaces | :white_check_mark: | :wrench: | | +| [`@typescript-eslint/no-explicit-any`](./docs/rules/no-explicit-any.md) | Disallow usage of the `any` type | :white_check_mark: | :wrench: | | +| [`@typescript-eslint/no-extra-non-null-assertion`](./docs/rules/no-extra-non-null-assertion.md) | Disallow extra non-null assertion | :white_check_mark: | :wrench: | | | [`@typescript-eslint/no-extraneous-class`](./docs/rules/no-extraneous-class.md) | Forbids the use of classes as namespaces | | | | -| [`@typescript-eslint/no-floating-promises`](./docs/rules/no-floating-promises.md) | Requires Promise-like values to be handled appropriately | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-for-in-array`](./docs/rules/no-for-in-array.md) | Disallow iterating over an array with a for-in loop | :heavy_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-floating-promises`](./docs/rules/no-floating-promises.md) | Requires Promise-like values to be handled appropriately | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-for-in-array`](./docs/rules/no-for-in-array.md) | Disallow iterating over an array with a for-in loop | :white_check_mark: | | :thought_balloon: | | [`@typescript-eslint/no-implicit-any-catch`](./docs/rules/no-implicit-any-catch.md) | Disallow usage of the implicit `any` type in catch clauses | | :wrench: | | -| [`@typescript-eslint/no-implied-eval`](./docs/rules/no-implied-eval.md) | Disallow the use of `eval()`-like methods | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-inferrable-types`](./docs/rules/no-inferrable-types.md) | Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean | :heavy_check_mark: | :wrench: | | +| [`@typescript-eslint/no-inferrable-types`](./docs/rules/no-inferrable-types.md) | Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean | :white_check_mark: | :wrench: | | | [`@typescript-eslint/no-invalid-void-type`](./docs/rules/no-invalid-void-type.md) | Disallows usage of `void` type outside of generic or return types | | | | -| [`@typescript-eslint/no-misused-new`](./docs/rules/no-misused-new.md) | Enforce valid definition of `new` and `constructor` | :heavy_check_mark: | | | -| [`@typescript-eslint/no-misused-promises`](./docs/rules/no-misused-promises.md) | Avoid using promises in places not designed to handle them | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-namespace`](./docs/rules/no-namespace.md) | Disallow the use of custom TypeScript modules and namespaces | :heavy_check_mark: | | | -| [`@typescript-eslint/no-non-null-asserted-optional-chain`](./docs/rules/no-non-null-asserted-optional-chain.md) | Disallows using a non-null assertion after an optional chain expression | :heavy_check_mark: | | | -| [`@typescript-eslint/no-non-null-assertion`](./docs/rules/no-non-null-assertion.md) | Disallows non-null assertions using the `!` postfix operator | :heavy_check_mark: | | | +| [`@typescript-eslint/no-misused-new`](./docs/rules/no-misused-new.md) | Enforce valid definition of `new` and `constructor` | :white_check_mark: | | | +| [`@typescript-eslint/no-misused-promises`](./docs/rules/no-misused-promises.md) | Avoid using promises in places not designed to handle them | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-namespace`](./docs/rules/no-namespace.md) | Disallow the use of custom TypeScript modules and namespaces | :white_check_mark: | | | +| [`@typescript-eslint/no-non-null-asserted-optional-chain`](./docs/rules/no-non-null-asserted-optional-chain.md) | Disallows using a non-null assertion after an optional chain expression | :white_check_mark: | | | +| [`@typescript-eslint/no-non-null-assertion`](./docs/rules/no-non-null-assertion.md) | Disallows non-null assertions using the `!` postfix operator | :white_check_mark: | | | | [`@typescript-eslint/no-parameter-properties`](./docs/rules/no-parameter-properties.md) | Disallow the use of parameter properties in class constructors | | | | | [`@typescript-eslint/no-require-imports`](./docs/rules/no-require-imports.md) | Disallows invocation of `require()` | | | | -| [`@typescript-eslint/no-this-alias`](./docs/rules/no-this-alias.md) | Disallow aliasing `this` | :heavy_check_mark: | | | -| [`@typescript-eslint/no-throw-literal`](./docs/rules/no-throw-literal.md) | Disallow throwing literals as exceptions | | | :thought_balloon: | +| [`@typescript-eslint/no-this-alias`](./docs/rules/no-this-alias.md) | Disallow aliasing `this` | :white_check_mark: | | | | [`@typescript-eslint/no-type-alias`](./docs/rules/no-type-alias.md) | Disallow the use of type aliases | | | | | [`@typescript-eslint/no-unnecessary-boolean-literal-compare`](./docs/rules/no-unnecessary-boolean-literal-compare.md) | Flags unnecessary equality comparisons against boolean literals | | :wrench: | :thought_balloon: | | [`@typescript-eslint/no-unnecessary-condition`](./docs/rules/no-unnecessary-condition.md) | Prevents conditionals where the type is always truthy or always falsy | | :wrench: | :thought_balloon: | | [`@typescript-eslint/no-unnecessary-qualifier`](./docs/rules/no-unnecessary-qualifier.md) | Warns when a namespace qualifier is unnecessary | | :wrench: | :thought_balloon: | | [`@typescript-eslint/no-unnecessary-type-arguments`](./docs/rules/no-unnecessary-type-arguments.md) | Enforces that type arguments will not be used if not required | | :wrench: | :thought_balloon: | -| [`@typescript-eslint/no-unnecessary-type-assertion`](./docs/rules/no-unnecessary-type-assertion.md) | Warns if a type assertion does not change the type of an expression | :heavy_check_mark: | :wrench: | :thought_balloon: | -| [`@typescript-eslint/no-unsafe-assignment`](./docs/rules/no-unsafe-assignment.md) | Disallows assigning any to variables and properties | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-unsafe-call`](./docs/rules/no-unsafe-call.md) | Disallows calling an any type value | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-unsafe-member-access`](./docs/rules/no-unsafe-member-access.md) | Disallows member access on any typed variables | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-unsafe-return`](./docs/rules/no-unsafe-return.md) | Disallows returning any from a function | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/no-var-requires`](./docs/rules/no-var-requires.md) | Disallows the use of require statements except in import statements | :heavy_check_mark: | | | -| [`@typescript-eslint/prefer-as-const`](./docs/rules/prefer-as-const.md) | Prefer usage of `as const` over literal type | :heavy_check_mark: | :wrench: | | +| [`@typescript-eslint/no-unnecessary-type-assertion`](./docs/rules/no-unnecessary-type-assertion.md) | Warns if a type assertion does not change the type of an expression | :white_check_mark: | :wrench: | :thought_balloon: | +| [`@typescript-eslint/no-unnecessary-type-constraint`](./docs/rules/no-unnecessary-type-constraint.md) | Disallows unnecessary constraints on generic types | | :wrench: | | +| [`@typescript-eslint/no-unsafe-argument`](./docs/rules/no-unsafe-argument.md) | Disallows calling an function with an any type value | | | :thought_balloon: | +| [`@typescript-eslint/no-unsafe-assignment`](./docs/rules/no-unsafe-assignment.md) | Disallows assigning any to variables and properties | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-unsafe-call`](./docs/rules/no-unsafe-call.md) | Disallows calling an any type value | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-unsafe-member-access`](./docs/rules/no-unsafe-member-access.md) | Disallows member access on any typed variables | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-unsafe-return`](./docs/rules/no-unsafe-return.md) | Disallows returning any from a function | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-var-requires`](./docs/rules/no-var-requires.md) | Disallows the use of require statements except in import statements | :white_check_mark: | | | +| [`@typescript-eslint/non-nullable-type-assertion-style`](./docs/rules/non-nullable-type-assertion-style.md) | Prefers a non-null assertion over explicit type cast when possible | | :wrench: | :thought_balloon: | +| [`@typescript-eslint/prefer-as-const`](./docs/rules/prefer-as-const.md) | Prefer usage of `as const` over literal type | :white_check_mark: | :wrench: | | | [`@typescript-eslint/prefer-enum-initializers`](./docs/rules/prefer-enum-initializers.md) | Prefer initializing each enums member value | | | | | [`@typescript-eslint/prefer-for-of`](./docs/rules/prefer-for-of.md) | Prefer a ‘for-of’ loop over a standard ‘for’ loop if the index is only used to access the array being iterated | | | | | [`@typescript-eslint/prefer-function-type`](./docs/rules/prefer-function-type.md) | Use function types instead of interfaces with call signatures | | :wrench: | | | [`@typescript-eslint/prefer-includes`](./docs/rules/prefer-includes.md) | Enforce `includes` method over `indexOf` method | | :wrench: | :thought_balloon: | | [`@typescript-eslint/prefer-literal-enum-member`](./docs/rules/prefer-literal-enum-member.md) | Require that all enum members be literal values to prevent unintended enum member name shadow issues | | | | -| [`@typescript-eslint/prefer-namespace-keyword`](./docs/rules/prefer-namespace-keyword.md) | Require the use of the `namespace` keyword instead of the `module` keyword to declare custom TypeScript modules | :heavy_check_mark: | :wrench: | | +| [`@typescript-eslint/prefer-namespace-keyword`](./docs/rules/prefer-namespace-keyword.md) | Require the use of the `namespace` keyword instead of the `module` keyword to declare custom TypeScript modules | :white_check_mark: | :wrench: | | | [`@typescript-eslint/prefer-nullish-coalescing`](./docs/rules/prefer-nullish-coalescing.md) | Enforce the usage of the nullish coalescing operator instead of logical chaining | | | :thought_balloon: | | [`@typescript-eslint/prefer-optional-chain`](./docs/rules/prefer-optional-chain.md) | Prefer using concise optional chain expressions instead of chained logical ands | | | | | [`@typescript-eslint/prefer-readonly`](./docs/rules/prefer-readonly.md) | Requires that private members are marked as `readonly` if they're never modified outside of the constructor | | :wrench: | :thought_balloon: | | [`@typescript-eslint/prefer-readonly-parameter-types`](./docs/rules/prefer-readonly-parameter-types.md) | Requires that function parameters are typed as readonly to prevent accidental mutation of inputs | | | :thought_balloon: | | [`@typescript-eslint/prefer-reduce-type-parameter`](./docs/rules/prefer-reduce-type-parameter.md) | Prefer using type parameter when calling `Array#reduce` instead of casting | | :wrench: | :thought_balloon: | -| [`@typescript-eslint/prefer-regexp-exec`](./docs/rules/prefer-regexp-exec.md) | Enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided | :heavy_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/prefer-regexp-exec`](./docs/rules/prefer-regexp-exec.md) | Enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided | :white_check_mark: | :wrench: | :thought_balloon: | | [`@typescript-eslint/prefer-string-starts-ends-with`](./docs/rules/prefer-string-starts-ends-with.md) | Enforce the use of `String#startsWith` and `String#endsWith` instead of other equivalent methods of checking substrings | | :wrench: | :thought_balloon: | -| [`@typescript-eslint/prefer-ts-expect-error`](./docs/rules/prefer-ts-expect-error.md) | Recommends using `// @ts-expect-error` over `// @ts-ignore` | | :wrench: | | -| [`@typescript-eslint/promise-function-async`](./docs/rules/promise-function-async.md) | Requires any function or method that returns a Promise to be marked async | | | :thought_balloon: | +| [`@typescript-eslint/prefer-ts-expect-error`](./docs/rules/prefer-ts-expect-error.md) | Recommends using `@ts-expect-error` over `@ts-ignore` | | :wrench: | | +| [`@typescript-eslint/promise-function-async`](./docs/rules/promise-function-async.md) | Requires any function or method that returns a Promise to be marked async | | :wrench: | :thought_balloon: | | [`@typescript-eslint/require-array-sort-compare`](./docs/rules/require-array-sort-compare.md) | Requires `Array#sort` calls to always provide a `compareFunction` | | | :thought_balloon: | -| [`@typescript-eslint/restrict-plus-operands`](./docs/rules/restrict-plus-operands.md) | When adding two variables, operands must both be of type number or of type string | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/restrict-template-expressions`](./docs/rules/restrict-template-expressions.md) | Enforce template literal expressions to be of string type | :heavy_check_mark: | | :thought_balloon: | -| [`@typescript-eslint/strict-boolean-expressions`](./docs/rules/strict-boolean-expressions.md) | Restricts the types allowed in boolean expressions | | | :thought_balloon: | +| [`@typescript-eslint/restrict-plus-operands`](./docs/rules/restrict-plus-operands.md) | When adding two variables, operands must both be of type number or of type string | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/restrict-template-expressions`](./docs/rules/restrict-template-expressions.md) | Enforce template literal expressions to be of string type | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/sort-type-union-intersection-members`](./docs/rules/sort-type-union-intersection-members.md) | Enforces that members of a type union/intersection are sorted alphabetically | | :wrench: | | +| [`@typescript-eslint/strict-boolean-expressions`](./docs/rules/strict-boolean-expressions.md) | Restricts the types allowed in boolean expressions | | :wrench: | :thought_balloon: | | [`@typescript-eslint/switch-exhaustiveness-check`](./docs/rules/switch-exhaustiveness-check.md) | Exhaustiveness checking in switch with union type | | | :thought_balloon: | -| [`@typescript-eslint/triple-slash-reference`](./docs/rules/triple-slash-reference.md) | Sets preference level for triple slash directives versus ES6-style import declarations | :heavy_check_mark: | | | +| [`@typescript-eslint/triple-slash-reference`](./docs/rules/triple-slash-reference.md) | Sets preference level for triple slash directives versus ES6-style import declarations | :white_check_mark: | | | | [`@typescript-eslint/type-annotation-spacing`](./docs/rules/type-annotation-spacing.md) | Require consistent spacing around type annotations | | :wrench: | | | [`@typescript-eslint/typedef`](./docs/rules/typedef.md) | Requires type annotations to exist | | | | -| [`@typescript-eslint/unbound-method`](./docs/rules/unbound-method.md) | Enforces unbound methods are called with their expected scope | :heavy_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/unbound-method`](./docs/rules/unbound-method.md) | Enforces unbound methods are called with their expected scope | :white_check_mark: | | :thought_balloon: | | [`@typescript-eslint/unified-signatures`](./docs/rules/unified-signatures.md) | Warns for any two overloads that could be unified into one by using a union or an optional/rest parameter | | | | @@ -183,11 +187,12 @@ In these cases, we create what we call an extension rule; a rule within our plug -**Key**: :heavy_check_mark: = recommended, :wrench: = fixable, :thought_balloon: = requires type information +**Key**: :white_check_mark: = recommended, :wrench: = fixable, :thought_balloon: = requires type information -| Name | Description | :heavy_check_mark: | :wrench: | :thought_balloon: | +| Name | Description | :white_check_mark: | :wrench: | :thought_balloon: | | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------ | -------- | ----------------- | | [`@typescript-eslint/brace-style`](./docs/rules/brace-style.md) | Enforce consistent brace style for blocks | | :wrench: | | +| [`@typescript-eslint/comma-dangle`](./docs/rules/comma-dangle.md) | Require or disallow trailing comma | | :wrench: | | | [`@typescript-eslint/comma-spacing`](./docs/rules/comma-spacing.md) | Enforces consistent spacing before and after commas | | :wrench: | | | [`@typescript-eslint/default-param-last`](./docs/rules/default-param-last.md) | Enforce default parameters to be last | | | | | [`@typescript-eslint/dot-notation`](./docs/rules/dot-notation.md) | enforce dot notation whenever possible | | :wrench: | :thought_balloon: | @@ -196,26 +201,31 @@ In these cases, we create what we call an extension rule; a rule within our plug | [`@typescript-eslint/init-declarations`](./docs/rules/init-declarations.md) | require or disallow initialization in variable declarations | | | | | [`@typescript-eslint/keyword-spacing`](./docs/rules/keyword-spacing.md) | Enforce consistent spacing before and after keywords | | :wrench: | | | [`@typescript-eslint/lines-between-class-members`](./docs/rules/lines-between-class-members.md) | Require or disallow an empty line between class members | | :wrench: | | -| [`@typescript-eslint/no-array-constructor`](./docs/rules/no-array-constructor.md) | Disallow generic `Array` constructors | :heavy_check_mark: | :wrench: | | +| [`@typescript-eslint/no-array-constructor`](./docs/rules/no-array-constructor.md) | Disallow generic `Array` constructors | :white_check_mark: | :wrench: | | | [`@typescript-eslint/no-dupe-class-members`](./docs/rules/no-dupe-class-members.md) | Disallow duplicate class members | | | | -| [`@typescript-eslint/no-empty-function`](./docs/rules/no-empty-function.md) | Disallow empty functions | :heavy_check_mark: | | | +| [`@typescript-eslint/no-duplicate-imports`](./docs/rules/no-duplicate-imports.md) | Disallow duplicate imports | | | | +| [`@typescript-eslint/no-empty-function`](./docs/rules/no-empty-function.md) | Disallow empty functions | :white_check_mark: | | | | [`@typescript-eslint/no-extra-parens`](./docs/rules/no-extra-parens.md) | Disallow unnecessary parentheses | | :wrench: | | -| [`@typescript-eslint/no-extra-semi`](./docs/rules/no-extra-semi.md) | Disallow unnecessary semicolons | :heavy_check_mark: | :wrench: | | -| [`@typescript-eslint/no-invalid-this`](./docs/rules/no-invalid-this.md) | disallow `this` keywords outside of classes or class-like objects | | | | +| [`@typescript-eslint/no-extra-semi`](./docs/rules/no-extra-semi.md) | Disallow unnecessary semicolons | :white_check_mark: | :wrench: | | +| [`@typescript-eslint/no-implied-eval`](./docs/rules/no-implied-eval.md) | Disallow the use of `eval()`-like methods | :white_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/no-invalid-this`](./docs/rules/no-invalid-this.md) | Disallow `this` keywords outside of classes or class-like objects | | | | | [`@typescript-eslint/no-loop-func`](./docs/rules/no-loop-func.md) | Disallow function declarations that contain unsafe references inside loop statements | | | | | [`@typescript-eslint/no-loss-of-precision`](./docs/rules/no-loss-of-precision.md) | Disallow literal numbers that lose precision | | | | | [`@typescript-eslint/no-magic-numbers`](./docs/rules/no-magic-numbers.md) | Disallow magic numbers | | | | | [`@typescript-eslint/no-redeclare`](./docs/rules/no-redeclare.md) | Disallow variable redeclaration | | | | | [`@typescript-eslint/no-shadow`](./docs/rules/no-shadow.md) | Disallow variable declarations from shadowing variables declared in the outer scope | | | | +| [`@typescript-eslint/no-throw-literal`](./docs/rules/no-throw-literal.md) | Disallow throwing literals as exceptions | | | :thought_balloon: | | [`@typescript-eslint/no-unused-expressions`](./docs/rules/no-unused-expressions.md) | Disallow unused expressions | | | | -| [`@typescript-eslint/no-unused-vars`](./docs/rules/no-unused-vars.md) | Disallow unused variables | :heavy_check_mark: | | | +| [`@typescript-eslint/no-unused-vars`](./docs/rules/no-unused-vars.md) | Disallow unused variables | :white_check_mark: | | | | [`@typescript-eslint/no-use-before-define`](./docs/rules/no-use-before-define.md) | Disallow the use of variables before they are defined | | | | | [`@typescript-eslint/no-useless-constructor`](./docs/rules/no-useless-constructor.md) | Disallow unnecessary constructors | | | | +| [`@typescript-eslint/object-curly-spacing`](./docs/rules/object-curly-spacing.md) | Enforce consistent spacing inside braces | | :wrench: | | | [`@typescript-eslint/quotes`](./docs/rules/quotes.md) | Enforce the consistent use of either backticks, double, or single quotes | | :wrench: | | -| [`@typescript-eslint/require-await`](./docs/rules/require-await.md) | Disallow async functions which have no `await` expression | :heavy_check_mark: | | :thought_balloon: | +| [`@typescript-eslint/require-await`](./docs/rules/require-await.md) | Disallow async functions which have no `await` expression | :white_check_mark: | | :thought_balloon: | | [`@typescript-eslint/return-await`](./docs/rules/return-await.md) | Enforces consistent returning of awaited values | | :wrench: | :thought_balloon: | | [`@typescript-eslint/semi`](./docs/rules/semi.md) | Require or disallow semicolons instead of ASI | | :wrench: | | | [`@typescript-eslint/space-before-function-paren`](./docs/rules/space-before-function-paren.md) | Enforces consistent spacing before function parenthesis | | :wrench: | | +| [`@typescript-eslint/space-infix-ops`](./docs/rules/space-infix-ops.md) | This rule is aimed at ensuring there are spaces around infix operators. | | :wrench: | | diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js index 037b3ca814..0e6067e559 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js @@ -14,8 +14,11 @@ module.exports = { 'brace-style': 'off', '@typescript-eslint/brace-style': 'error', '@typescript-eslint/class-literal-property-style': 'error', + 'comma-dangle': 'off', + '@typescript-eslint/comma-dangle': 'error', 'comma-spacing': 'off', '@typescript-eslint/comma-spacing': 'error', + '@typescript-eslint/consistent-indexed-object-style': 'error', '@typescript-eslint/consistent-type-assertions': 'error', '@typescript-eslint/consistent-type-definitions': 'error', '@typescript-eslint/consistent-type-imports': 'error', @@ -44,8 +47,11 @@ module.exports = { '@typescript-eslint/no-array-constructor': 'error', '@typescript-eslint/no-base-to-string': 'error', '@typescript-eslint/no-confusing-non-null-assertion': 'error', + '@typescript-eslint/no-confusing-void-expression': 'error', 'no-dupe-class-members': 'off', '@typescript-eslint/no-dupe-class-members': 'error', + 'no-duplicate-imports': 'off', + '@typescript-eslint/no-duplicate-imports': 'error', '@typescript-eslint/no-dynamic-delete': 'error', 'no-empty-function': 'off', '@typescript-eslint/no-empty-function': 'error', @@ -60,6 +66,7 @@ module.exports = { '@typescript-eslint/no-floating-promises': 'error', '@typescript-eslint/no-for-in-array': 'error', '@typescript-eslint/no-implicit-any-catch': 'error', + 'no-implied-eval': 'off', '@typescript-eslint/no-implied-eval': 'error', '@typescript-eslint/no-inferrable-types': 'error', 'no-invalid-this': 'off', @@ -83,6 +90,7 @@ module.exports = { 'no-shadow': 'off', '@typescript-eslint/no-shadow': 'error', '@typescript-eslint/no-this-alias': 'error', + 'no-throw-literal': 'off', '@typescript-eslint/no-throw-literal': 'error', '@typescript-eslint/no-type-alias': 'error', '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', @@ -90,6 +98,8 @@ module.exports = { '@typescript-eslint/no-unnecessary-qualifier': 'error', '@typescript-eslint/no-unnecessary-type-arguments': 'error', '@typescript-eslint/no-unnecessary-type-assertion': 'error', + '@typescript-eslint/no-unnecessary-type-constraint': 'error', + '@typescript-eslint/no-unsafe-argument': 'error', '@typescript-eslint/no-unsafe-assignment': 'error', '@typescript-eslint/no-unsafe-call': 'error', '@typescript-eslint/no-unsafe-member-access': 'error', @@ -103,6 +113,9 @@ module.exports = { 'no-useless-constructor': 'off', '@typescript-eslint/no-useless-constructor': 'error', '@typescript-eslint/no-var-requires': 'error', + '@typescript-eslint/non-nullable-type-assertion-style': 'error', + 'object-curly-spacing': 'off', + '@typescript-eslint/object-curly-spacing': 'error', '@typescript-eslint/prefer-as-const': 'error', '@typescript-eslint/prefer-enum-initializers': 'error', '@typescript-eslint/prefer-for-of': 'error', @@ -130,8 +143,11 @@ module.exports = { '@typescript-eslint/return-await': 'error', semi: 'off', '@typescript-eslint/semi': 'error', + '@typescript-eslint/sort-type-union-intersection-members': 'error', 'space-before-function-paren': 'off', '@typescript-eslint/space-before-function-paren': 'error', + 'space-infix-ops': 'off', + '@typescript-eslint/space-infix-ops': 'error', '@typescript-eslint/strict-boolean-expressions': 'error', '@typescript-eslint/switch-exhaustiveness-check': 'error', '@typescript-eslint/triple-slash-reference': 'error', diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map index e3533ccde6..e04b11df49 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.js.map @@ -1 +1 @@ -{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,oDAAoD;AAEpD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,iDAAiD,EAAE,OAAO;QAC1D,+BAA+B,EAAE,OAAO;QACxC,mCAAmC,EAAE,OAAO;QAC5C,mCAAmC,EAAE,OAAO;QAC5C,uCAAuC,EAAE,OAAO;QAChD,8BAA8B,EAAE,OAAO;QACvC,aAAa,EAAE,KAAK;QACpB,gCAAgC,EAAE,OAAO;QACzC,iDAAiD,EAAE,OAAO;QAC1D,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,+CAA+C,EAAE,OAAO;QACxD,gDAAgD,EAAE,OAAO;QACzD,4CAA4C,EAAE,OAAO;QACrD,oBAAoB,EAAE,KAAK;QAC3B,uCAAuC,EAAE,OAAO;QAChD,cAAc,EAAE,KAAK;QACrB,iCAAiC,EAAE,OAAO;QAC1C,kDAAkD,EAAE,OAAO;QAC3D,kDAAkD,EAAE,OAAO;QAC3D,mDAAmD,EAAE,OAAO;QAC5D,mBAAmB,EAAE,KAAK;QAC1B,sCAAsC,EAAE,OAAO;QAC/C,MAAM,EAAE,KAAK;QACb,2BAA2B,EAAE,OAAO;QACpC,mBAAmB,EAAE,KAAK;QAC1B,sCAAsC,EAAE,OAAO;QAC/C,iBAAiB,EAAE,KAAK;QACxB,oCAAoC,EAAE,OAAO;QAC7C,6BAA6B,EAAE,KAAK;QACpC,gDAAgD,EAAE,OAAO;QACzD,2CAA2C,EAAE,OAAO;QACpD,oCAAoC,EAAE,OAAO;QAC7C,2CAA2C,EAAE,OAAO;QACpD,sCAAsC,EAAE,OAAO;QAC/C,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,sCAAsC,EAAE,OAAO;QAC/C,oDAAoD,EAAE,OAAO;QAC7D,uBAAuB,EAAE,KAAK;QAC9B,0CAA0C,EAAE,OAAO;QACnD,sCAAsC,EAAE,OAAO;QAC/C,mBAAmB,EAAE,KAAK;QAC1B,sCAAsC,EAAE,OAAO;QAC/C,uCAAuC,EAAE,OAAO;QAChD,oCAAoC,EAAE,OAAO;QAC7C,gDAAgD,EAAE,OAAO;QACzD,iBAAiB,EAAE,KAAK;QACxB,oCAAoC,EAAE,OAAO;QAC7C,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,wCAAwC,EAAE,OAAO;QACjD,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,0CAA0C,EAAE,OAAO;QACnD,oCAAoC,EAAE,OAAO;QAC7C,wCAAwC,EAAE,OAAO;QACjD,iBAAiB,EAAE,KAAK;QACxB,oCAAoC,EAAE,OAAO;QAC7C,yCAAyC,EAAE,OAAO;QAClD,cAAc,EAAE,KAAK;QACrB,iCAAiC,EAAE,OAAO;QAC1C,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,kBAAkB,EAAE,KAAK;QACzB,qCAAqC,EAAE,OAAO;QAC9C,mCAAmC,EAAE,OAAO;QAC5C,wCAAwC,EAAE,OAAO;QACjD,iCAAiC,EAAE,OAAO;QAC1C,wDAAwD,EAAE,OAAO;QACjE,0CAA0C,EAAE,OAAO;QACnD,4CAA4C,EAAE,OAAO;QACrD,cAAc,EAAE,KAAK;QACrB,iCAAiC,EAAE,OAAO;QAC1C,uCAAuC,EAAE,OAAO;QAChD,WAAW,EAAE,KAAK;QAClB,8BAA8B,EAAE,OAAO;QACvC,kCAAkC,EAAE,OAAO;QAC3C,qCAAqC,EAAE,OAAO;QAC9C,kCAAkC,EAAE,OAAO;QAC3C,2DAA2D,EAAE,OAAO;QACpE,6CAA6C,EAAE,OAAO;QACtD,6CAA6C,EAAE,OAAO;QACtD,kDAAkD,EAAE,OAAO;QAC3D,kDAAkD,EAAE,OAAO;QAC3D,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,4CAA4C,EAAE,OAAO;QACrD,qCAAqC,EAAE,OAAO;QAC9C,uBAAuB,EAAE,KAAK;QAC9B,0CAA0C,EAAE,OAAO;QACnD,gBAAgB,EAAE,KAAK;QACvB,mCAAmC,EAAE,OAAO;QAC5C,sBAAsB,EAAE,KAAK;QAC7B,yCAAyC,EAAE,OAAO;QAClD,wBAAwB,EAAE,KAAK;QAC/B,2CAA2C,EAAE,OAAO;QACpD,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,6CAA6C,EAAE,OAAO;QACtD,kCAAkC,EAAE,OAAO;QAC3C,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,+CAA+C,EAAE,OAAO;QACxD,6CAA6C,EAAE,OAAO;QACtD,8CAA8C,EAAE,OAAO;QACvD,0CAA0C,EAAE,OAAO;QACnD,oCAAoC,EAAE,OAAO;QAC7C,oDAAoD,EAAE,OAAO;QAC7D,iDAAiD,EAAE,OAAO;QAC1D,uCAAuC,EAAE,OAAO;QAChD,mDAAmD,EAAE,OAAO;QAC5D,2CAA2C,EAAE,OAAO;QACpD,2CAA2C,EAAE,OAAO;QACpD,MAAM,EAAE,KAAK;QACb,2BAA2B,EAAE,OAAO;QACpC,+CAA+C,EAAE,OAAO;QACxD,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,2CAA2C,EAAE,OAAO;QACpD,kDAAkD,EAAE,OAAO;QAC3D,iBAAiB,EAAE,KAAK;QACxB,iCAAiC,EAAE,OAAO;QAC1C,IAAI,EAAE,KAAK;QACX,yBAAyB,EAAE,OAAO;QAClC,6BAA6B,EAAE,KAAK;QACpC,gDAAgD,EAAE,OAAO;QACzD,+CAA+C,EAAE,OAAO;QACxD,gDAAgD,EAAE,OAAO;QACzD,2CAA2C,EAAE,OAAO;QACpD,4CAA4C,EAAE,OAAO;QACrD,4BAA4B,EAAE,OAAO;QACrC,mCAAmC,EAAE,OAAO;QAC5C,uCAAuC,EAAE,OAAO;KACjD;CACF,CAAC"} \ No newline at end of file +{"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/configs/all.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js index f1b5191e87..0e77d96d2d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js @@ -24,7 +24,7 @@ module.exports = { 'prefer-const': 'error', 'prefer-rest-params': 'error', 'prefer-spread': 'error', - 'valid-typeof': 'off', + 'valid-typeof': 'off', // ts(2367) }, }, ], diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map index 8181881ace..ceaa6ab020 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map @@ -1 +1 @@ -{"version":3,"file":"eslint-recommended.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":";AAKA,iBAAS;IACP,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACxB,KAAK,EAAE;gBACL,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,KAAK;gBACtB,iBAAiB,EAAE,KAAK;gBACxB,cAAc,EAAE,KAAK;gBACrB,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,KAAK;gBACvB,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,KAAK;gBACrB,kBAAkB,EAAE,KAAK;gBACzB,sBAAsB,EAAE,KAAK;gBAC7B,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,cAAc,EAAE,OAAO;gBACvB,oBAAoB,EAAE,OAAO;gBAC7B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,KAAK;aACtB;SACF;KACF;CACF,CAAC"} \ No newline at end of file +{"version":3,"file":"eslint-recommended.js","sourceRoot":"","sources":["../../src/configs/eslint-recommended.ts"],"names":[],"mappings":";AAKA,iBAAS;IACP,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACxB,KAAK,EAAE;gBACL,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,KAAK;gBACtB,iBAAiB,EAAE,KAAK;gBACxB,cAAc,EAAE,KAAK;gBACrB,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,KAAK;gBACvB,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,KAAK;gBACrB,kBAAkB,EAAE,KAAK;gBACzB,sBAAsB,EAAE,KAAK;gBAC7B,UAAU,EAAE,KAAK;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,cAAc,EAAE,OAAO;gBACvB,oBAAoB,EAAE,OAAO;gBAC7B,eAAe,EAAE,OAAO;gBACxB,cAAc,EAAE,KAAK,EAAE,WAAW;aACnC;SACF;KACF;CACF,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js index cb31319f0d..5aeb553387 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js @@ -8,6 +8,7 @@ module.exports = { '@typescript-eslint/await-thenable': 'error', '@typescript-eslint/no-floating-promises': 'error', '@typescript-eslint/no-for-in-array': 'error', + 'no-implied-eval': 'off', '@typescript-eslint/no-implied-eval': 'error', '@typescript-eslint/no-misused-promises': 'error', '@typescript-eslint/no-unnecessary-type-assertion': 'error', diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map index ef219919f4..10fcfda829 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended-requiring-type-checking.js.map @@ -1 +1 @@ -{"version":3,"file":"recommended-requiring-type-checking.js","sourceRoot":"","sources":["../../src/configs/recommended-requiring-type-checking.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,oDAAoD;AAEpD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,oCAAoC,EAAE,OAAO;QAC7C,wCAAwC,EAAE,OAAO;QACjD,kDAAkD,EAAE,OAAO;QAC3D,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,4CAA4C,EAAE,OAAO;QACrD,qCAAqC,EAAE,OAAO;QAC9C,uCAAuC,EAAE,OAAO;QAChD,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,2CAA2C,EAAE,OAAO;QACpD,kDAAkD,EAAE,OAAO;QAC3D,mCAAmC,EAAE,OAAO;KAC7C;CACF,CAAC"} \ No newline at end of file +{"version":3,"file":"recommended-requiring-type-checking.js","sourceRoot":"","sources":["../../src/configs/recommended-requiring-type-checking.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,oDAAoD;AAEpD,iBAAS;IACP,OAAO,EAAE,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;IAC3D,KAAK,EAAE;QACL,mCAAmC,EAAE,OAAO;QAC5C,yCAAyC,EAAE,OAAO;QAClD,oCAAoC,EAAE,OAAO;QAC7C,iBAAiB,EAAE,KAAK;QACxB,oCAAoC,EAAE,OAAO;QAC7C,wCAAwC,EAAE,OAAO;QACjD,kDAAkD,EAAE,OAAO;QAC3D,yCAAyC,EAAE,OAAO;QAClD,mCAAmC,EAAE,OAAO;QAC5C,4CAA4C,EAAE,OAAO;QACrD,qCAAqC,EAAE,OAAO;QAC9C,uCAAuC,EAAE,OAAO;QAChD,eAAe,EAAE,KAAK;QACtB,kCAAkC,EAAE,OAAO;QAC3C,2CAA2C,EAAE,OAAO;QACpD,kDAAkD,EAAE,OAAO;QAC3D,mCAAmC,EAAE,OAAO;KAC7C;CACF,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map index 7371090741..90316cde25 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map @@ -1 +1 @@ -{"version":3,"file":"adjacent-overload-signatures.js","sourceRoot":"","sources":["../../src/rules/adjacent-overload-signatures.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"adjacent-overload-signatures.js","sourceRoot":"","sources":["../../src/rules/adjacent-overload-signatures.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js index 4f4d2d1957..ea84b4b4ce 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js @@ -123,24 +123,6 @@ exports.default = util.createRule({ const sourceCode = context.getSourceCode(); const defaultOption = options.default; const readonlyOption = (_a = options.readonly) !== null && _a !== void 0 ? _a : defaultOption; - const isArraySimpleOption = defaultOption === 'array-simple' && readonlyOption === 'array-simple'; - const isArrayOption = defaultOption === 'array' && readonlyOption === 'array'; - const isGenericOption = defaultOption === 'generic' && readonlyOption === 'generic'; - /** - * Check if whitespace is needed before this node - * @param node the node to be evaluated. - */ - function requireWhitespaceBefore(node) { - const prevToken = sourceCode.getTokenBefore(node); - if (!prevToken) { - return false; - } - const nextToken = sourceCode.getTokenAfter(prevToken); - if (nextToken && sourceCode.isSpaceBetweenTokens(prevToken, nextToken)) { - return false; - } - return prevToken.type === experimental_utils_1.AST_TOKEN_TYPES.Identifier; - } /** * @param node the node to be evaluated. */ @@ -155,84 +137,55 @@ exports.default = util.createRule({ } return 'T'; } - /** - * @param node the node to be evaluated - */ - function getTypeOpNodeRange(node) { - if (!node) { - return undefined; - } - const firstToken = sourceCode.getFirstToken(node); - const nextToken = sourceCode.getTokenAfter(firstToken); - return [firstToken.range[0], nextToken.range[0]]; - } return { TSArrayType(node) { - if (isArrayOption || - (isArraySimpleOption && isSimpleType(node.elementType))) { - return; - } const isReadonly = node.parent && node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeOperator && node.parent.operator === 'readonly'; - const isReadonlyGeneric = readonlyOption === 'generic' && defaultOption !== 'generic'; - const isReadonlyArray = readonlyOption !== 'generic' && defaultOption === 'generic'; - if ((isReadonlyGeneric && !isReadonly) || - (isReadonlyArray && isReadonly)) { + const currentOption = isReadonly ? readonlyOption : defaultOption; + if (currentOption === 'array' || + (currentOption === 'array-simple' && isSimpleType(node.elementType))) { return; } - const messageId = defaultOption === 'generic' + const messageId = currentOption === 'generic' ? 'errorStringGeneric' : 'errorStringGenericSimple'; - const typeOpNode = isReadonly ? node.parent : null; + const errorNode = isReadonly ? node.parent : node; context.report({ - node: isReadonly ? node.parent : node, + node: errorNode, messageId, data: { type: getMessageType(node.elementType), }, fix(fixer) { - const toFix = [ - fixer.replaceTextRange([node.range[1] - 2, node.range[1]], '>'), + const typeNode = node.elementType.type === experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType + ? node.elementType.typeAnnotation + : node.elementType; + const arrayType = isReadonly ? 'ReadonlyArray' : 'Array'; + return [ + fixer.replaceTextRange([errorNode.range[0], typeNode.range[0]], `${arrayType}<`), + fixer.replaceTextRange([typeNode.range[1], errorNode.range[1]], '>'), ]; - const startText = requireWhitespaceBefore(node); - const typeOpNodeRange = getTypeOpNodeRange(typeOpNode); - if (typeOpNodeRange) { - toFix.unshift(fixer.removeRange(typeOpNodeRange)); - } - else { - toFix.push(fixer.insertTextBefore(node, `${startText ? ' ' : ''}`)); - } - toFix.push(fixer.insertTextBefore(node, `${isReadonly ? 'Readonly' : ''}Array<`)); - if (node.elementType.type === experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType) { - const first = sourceCode.getFirstToken(node.elementType); - const last = sourceCode.getLastToken(node.elementType); - if (!first || !last) { - return null; - } - toFix.push(fixer.remove(first)); - toFix.push(fixer.remove(last)); - } - return toFix; }, }); }, TSTypeReference(node) { - var _a; - if (isGenericOption || - node.typeName.type !== experimental_utils_1.AST_NODE_TYPES.Identifier) { + var _a, _b; + if (node.typeName.type !== experimental_utils_1.AST_NODE_TYPES.Identifier || + !(node.typeName.name === 'Array' || + node.typeName.name === 'ReadonlyArray')) { return; } const isReadonlyArrayType = node.typeName.name === 'ReadonlyArray'; - const isArrayType = node.typeName.name === 'Array'; - if (!(isArrayType || isReadonlyArrayType) || - (readonlyOption === 'generic' && isReadonlyArrayType) || - (defaultOption === 'generic' && !isReadonlyArrayType)) { + const currentOption = isReadonlyArrayType + ? readonlyOption + : defaultOption; + if (currentOption === 'generic') { return; } const readonlyPrefix = isReadonlyArrayType ? 'readonly ' : ''; const typeParams = (_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params; - const messageId = defaultOption === 'array' + const messageId = currentOption === 'array' ? 'errorStringArray' : 'errorStringArraySimple'; if (!typeParams || typeParams.length === 0) { @@ -250,11 +203,14 @@ exports.default = util.createRule({ return; } if (typeParams.length !== 1 || - (defaultOption === 'array-simple' && !isSimpleType(typeParams[0]))) { + (currentOption === 'array-simple' && !isSimpleType(typeParams[0]))) { return; } const type = typeParams[0]; - const parens = typeNeedsParentheses(type); + const typeParens = typeNeedsParentheses(type); + const parentParens = readonlyPrefix && ((_b = node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.TSArrayType; + const start = `${parentParens ? '(' : ''}${readonlyPrefix}${typeParens ? '(' : ''}`; + const end = `${typeParens ? ')' : ''}[]${parentParens ? ')' : ''}`; context.report({ node, messageId, @@ -263,8 +219,8 @@ exports.default = util.createRule({ }, fix(fixer) { return [ - fixer.replaceTextRange([node.range[0], type.range[0]], `${readonlyPrefix}${parens ? '(' : ''}`), - fixer.replaceTextRange([type.range[1], node.range[1]], parens ? ')[]' : '[]'), + fixer.replaceTextRange([node.range[0], type.range[0]], start), + fixer.replaceTextRange([type.range[1], node.range[1]], end), ]; }, }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map index 2acd2d280d..e5f4968787 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map @@ -1 +1 @@ -{"version":3,"file":"array-type.js","sourceRoot":"","sources":["../../src/rules/array-type.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"array-type.js","sourceRoot":"","sources":["../../src/rules/array-type.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js index d2a19b45dd..95e7c28308 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js @@ -28,13 +28,13 @@ exports.default = util.createRule({ meta: { type: 'problem', docs: { - description: 'Bans `// @ts-` comments from being used or requires descriptions after directive', + description: 'Bans `@ts-` comments from being used or requires descriptions after directive', category: 'Best Practices', recommended: 'error', }, messages: { - tsDirectiveComment: 'Do not use "// @ts-{{directive}}" because it alters compilation errors.', - tsDirectiveCommentRequiresDescription: 'Include a description after the "// @ts-{{directive}}" directive to explain why the @ts-{{directive}} is necessary. The description must be {{minimumDescriptionLength}} characters or longer.', + tsDirectiveComment: 'Do not use "@ts-{{directive}}" because it alters compilation errors.', + tsDirectiveCommentRequiresDescription: 'Include a description after the "@ts-{{directive}}" directive to explain why the @ts-{{directive}} is necessary. The description must be {{minimumDescriptionLength}} characters or longer.', }, schema: [ { @@ -103,17 +103,23 @@ exports.default = util.createRule({ }, ], create(context, [options]) { - const tsCommentRegExp = /^\/*\s*@ts-(expect-error|ignore|check|nocheck)(.*)/; + /* + The regex used are taken from the ones used in the official TypeScript repo - + https://github.com/microsoft/TypeScript/blob/master/src/compiler/scanner.ts#L281-L289 + */ + const commentDirectiveRegExSingleLine = /^\/*\s*@ts-(expect-error|ignore|check|nocheck)(.*)/; + const commentDirectiveRegExMultiLine = /^\s*(?:\/|\*)*\s*@ts-(expect-error|ignore|check|nocheck)(.*)/; const sourceCode = context.getSourceCode(); return { Program() { const comments = sourceCode.getAllComments(); comments.forEach(comment => { var _a; + let regExp = commentDirectiveRegExSingleLine; if (comment.type !== experimental_utils_1.AST_TOKEN_TYPES.Line) { - return; + regExp = commentDirectiveRegExMultiLine; } - const [, directive, description] = (_a = tsCommentRegExp.exec(comment.value)) !== null && _a !== void 0 ? _a : []; + const [, directive, description] = (_a = regExp.exec(comment.value)) !== null && _a !== void 0 ? _a : []; const fullDirective = `ts-${directive}`; const option = options[fullDirective]; if (option === true) { diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map index 7d6e42109d..1320e5b869 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js.map @@ -1 +1 @@ -{"version":3,"file":"ban-ts-comment.js","sourceRoot":"","sources":["../../src/rules/ban-ts-comment.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ban-ts-comment.js","sourceRoot":"","sources":["../../src/rules/ban-ts-comment.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map index 301958f152..b815c852e5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-tslint-comment.js.map @@ -1 +1 @@ -{"version":3,"file":"ban-tslint-comment.js","sourceRoot":"","sources":["../../src/rules/ban-tslint-comment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,8CAAgC;AAEhC,eAAe;AACf,iHAAiH;AACjH,MAAM,oBAAoB,GAAG,2DAA2D,CAAC;AAEzF,MAAM,MAAM,GAAG,CACb,IAAY,EACZ,IAAkD,EAC1C,EAAE,CACV,IAAI,KAAK,oCAAe,CAAC,IAAI;IAC3B,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/B,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1C,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,uCAAuC;SACzD;QACD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,MAAM;KAChB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,OAAO,CAAC,EAAE;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;4BACvC,IAAI,EAAE,CAAC;4BACP,SAAS,EAAE,iBAAiB;4BAC5B,GAAG,CAAC,KAAK;gCACP,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC;oCAC5C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC3D,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;iCACvB,CAAC,CAAC;gCACH,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;oCAC1C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;oCACxB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;iCACrB,CAAC,CAAC;gCACH,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;4BACvD,CAAC;yBACF,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"ban-tslint-comment.js","sourceRoot":"","sources":["../../src/rules/ban-tslint-comment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,8CAAgC;AAEhC,eAAe;AACf,iHAAiH;AACjH,MAAM,oBAAoB,GACxB,2DAA2D,CAAC;AAE9D,MAAM,MAAM,GAAG,CACb,IAAY,EACZ,IAAkD,EAC1C,EAAE,CACV,IAAI,KAAK,oCAAe,CAAC,IAAI;IAC3B,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/B,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1C,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,uCAAuC;SACzD;QACD,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,MAAM;KAChB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,OAAO,CAAC,EAAE;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnB,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;4BACvC,IAAI,EAAE,CAAC;4BACP,SAAS,EAAE,iBAAiB;4BAC5B,GAAG,CAAC,KAAK;gCACP,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC;oCAC5C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC3D,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;iCACvB,CAAC,CAAC;gCACH,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;oCAC1C,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;oCACxB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;iCACrB,CAAC,CAAC;gCACH,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;4BACvD,CAAC;yBACF,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js index eb9fc2d5fb..0cbb3e6c82 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js @@ -25,7 +25,7 @@ const util = __importStar(require("../util")); function removeSpaces(str) { return str.replace(/ /g, ''); } -function stringifyTypeName(node, sourceCode) { +function stringifyNode(node, sourceCode) { return removeSpaces(sourceCode.getText(node)); } function getCustomMessage(bannedType) { @@ -78,6 +78,7 @@ const defaultTypes = { '`{}` actually means "any non-nullish value".', '- If you want a type meaning "any object", you probably want `Record` instead.', '- If you want a type meaning "any value", you probably want `unknown` instead.', + '- If you want a type meaning "empty object", you probably want `Record` instead.', ].join('\n'), }, object: { @@ -150,7 +151,7 @@ exports.default = util.createRule({ const customTypes = (_b = options.types) !== null && _b !== void 0 ? _b : {}; const types = Object.assign({}, extendDefaults ? defaultTypes : {}, customTypes); const bannedTypes = new Map(Object.entries(types).map(([type, data]) => [removeSpaces(type), data])); - function checkBannedTypes(typeNode, name = stringifyTypeName(typeNode, context.getSourceCode())) { + function checkBannedTypes(typeNode, name = stringifyNode(typeNode, context.getSourceCode())) { const bannedType = bannedTypes.get(name); if (bannedType === undefined || bannedType === false) { return; @@ -181,8 +182,16 @@ exports.default = util.createRule({ } checkBannedTypes(node); }, - TSTypeReference({ typeName }) { - checkBannedTypes(typeName); + TSTupleType(node) { + if (node.elementTypes.length === 0) { + checkBannedTypes(node); + } + }, + TSTypeReference(node) { + checkBannedTypes(node.typeName); + if (node.typeParameters) { + checkBannedTypes(node); + } } }); }, }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map index 3f3eb618b2..d8788fda96 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map @@ -1 +1 @@ -{"version":3,"file":"ban-types.js","sourceRoot":"","sources":["../../src/rules/ban-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,8CAAgC;AAqBhC,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAmB,EACnB,UAA+B;IAE/B,OAAO,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAkE;IAElE,IAAI,UAAU,KAAK,IAAI,EAAE;QACvB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,IAAI,UAAU,EAAE,CAAC;KACzB;IAED,IAAI,UAAU,CAAC,OAAO,EAAE;QACtB,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;KACjC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,YAAY,GAAU;IAC1B,MAAM,EAAE;QACN,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,QAAQ;KAClB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,SAAS;KACnB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,QAAQ;KAClB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE,QAAQ;KAClB;IAED,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,sDAAsD;YACtD,6FAA6F;YAC7F,oHAAoH;YACpH,iHAAiH;SAClH,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;IAED,gBAAgB;IAChB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,sGAAsG;YACtG,iGAAiG;YACjG,gFAAgF;SACjF,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;IACD,IAAI,EAAE;QACJ,OAAO,EAAE;YACP,8CAA8C;YAC9C,iGAAiG;YACjG,gFAAgF;SACjF,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;IACD,MAAM,EAAE;QACN,OAAO,EAAE;YACP,sHAAsH;YACtH,6GAA6G;SAC9G,CAAC,IAAI,CAAC,IAAI,CAAC;KACb;CACF,CAAC;AAEW,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,mCAAc,CAAC,eAAe;IACtC,OAAO,EAAE,mCAAc,CAAC,gBAAgB;IACxC,KAAK,EAAE,mCAAc,CAAC,cAAc;IACpC,IAAI,EAAE,mCAAc,CAAC,aAAa;IAClC,MAAM,EAAE,mCAAc,CAAC,eAAe;IACtC,MAAM,EAAE,mCAAc,CAAC,eAAe;IACtC,MAAM,EAAE,mCAAc,CAAC,eAAe;IACtC,MAAM,EAAE,mCAAc,CAAC,eAAe;IACtC,SAAS,EAAE,mCAAc,CAAC,kBAAkB;IAC5C,OAAO,EAAE,mCAAc,CAAC,gBAAgB;IACxC,IAAI,EAAE,mCAAc,CAAC,aAAa;CACnC,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,iBAAiB,EAAE,kDAAkD;SACtE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE;4BACpB,KAAK,EAAE;gCACL,EAAE,IAAI,EAAE,MAAM,EAAE;gCAChB,EAAE,IAAI,EAAE,SAAS,EAAE;gCACnB,EAAE,IAAI,EAAE,QAAQ,EAAE;gCAClB;oCACE,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE;wCACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wCAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qCAC5B;oCACD,oBAAoB,EAAE,KAAK;iCAC5B;6BACF;yBACF;qBACF;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;;QACvB,MAAM,cAAc,SAAG,OAAO,CAAC,cAAc,mCAAI,IAAI,CAAC;QACtD,MAAM,WAAW,SAAG,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CACzB,EAAE,EACF,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAClC,WAAW,CACZ,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CACxE,CAAC;QAEF,SAAS,gBAAgB,CACvB,QAAuB,EACvB,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAE3D,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,KAAK,EAAE;gBACpD,OAAO;aACR;YAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,OAAO,GACX,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC;YAErE,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,mBAAmB;gBAC9B,IAAI,EAAE;oBACJ,IAAI;oBACJ,aAAa;iBACd;gBACD,GAAG,EAAE,OAAO;oBACV,CAAC,CAAC,CAAC,KAAK,EAAoB,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC;oBACnE,CAAC,CAAC,IAAI;aACT,CAAC,CAAC;QACL,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAC3C,qBAAa,EACb,CAAC,GAA0B,EAAE,OAAO,EAAE,EAAE;YACtC,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC5B,GAAG,CAAC,qBAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAmB,EAAQ,EAAE,CAC1D,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aACnC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QAEF,uCACK,gBAAgB,KAEnB,aAAa,CAAC,IAAI;gBAChB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACvB,OAAO;iBACR;gBAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,eAAe,CAAC,EAAE,QAAQ,EAAE;gBAC1B,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"ban-types.js","sourceRoot":"","sources":["../../src/rules/ban-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js index 5709f0a9a7..32f40b8905 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js @@ -21,7 +21,7 @@ exports.default = util_1.createRule({ }, defaultOptions: ['1tbs'], create(context) { - const [style, { allowSingleLine } = { allowSingleLine: false },] = context.options; + const [style, { allowSingleLine } = { allowSingleLine: false }] = context.options; const isAllmanStyle = style === 'allman'; const sourceCode = context.getSourceCode(); const rules = brace_style_1.default.create(context); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js.map index 8bfa2a8746..d7bcebbcfa 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/brace-style.js.map @@ -1 +1 @@ -{"version":3,"file":"brace-style.js","sourceRoot":"","sources":["../../src/rules/brace-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"brace-style.js","sourceRoot":"","sources":["../../src/rules/brace-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js new file mode 100644 index 0000000000..5083584c85 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js @@ -0,0 +1,177 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const util = __importStar(require("../util")); +const comma_dangle_1 = __importDefault(require("eslint/lib/rules/comma-dangle")); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const OPTION_VALUE_SCHEME = [ + 'always-multiline', + 'always', + 'never', + 'only-multiline', +]; +const DEFAULT_OPTION_VALUE = 'never'; +function normalizeOptions(options) { + var _a, _b, _c; + if (typeof options === 'string') { + return { + enums: options, + generics: options, + tuples: options, + }; + } + return { + enums: (_a = options.enums) !== null && _a !== void 0 ? _a : DEFAULT_OPTION_VALUE, + generics: (_b = options.generics) !== null && _b !== void 0 ? _b : DEFAULT_OPTION_VALUE, + tuples: (_c = options.tuples) !== null && _c !== void 0 ? _c : DEFAULT_OPTION_VALUE, + }; +} +exports.default = util.createRule({ + name: 'comma-dangle', + meta: { + type: 'layout', + docs: { + description: 'Require or disallow trailing comma', + category: 'Stylistic Issues', + recommended: false, + extendsBaseRule: true, + }, + schema: { + definitions: { + value: { + enum: OPTION_VALUE_SCHEME, + }, + valueWithIgnore: { + enum: [...OPTION_VALUE_SCHEME, 'ignore'], + }, + }, + type: 'array', + items: [ + { + oneOf: [ + { + $ref: '#/definitions/value', + }, + { + type: 'object', + properties: { + arrays: { $ref: '#/definitions/valueWithIgnore' }, + objects: { $ref: '#/definitions/valueWithIgnore' }, + imports: { $ref: '#/definitions/valueWithIgnore' }, + exports: { $ref: '#/definitions/valueWithIgnore' }, + functions: { $ref: '#/definitions/valueWithIgnore' }, + enums: { $ref: '#/definitions/valueWithIgnore' }, + generics: { $ref: '#/definitions/valueWithIgnore' }, + tuples: { $ref: '#/definitions/valueWithIgnore' }, + }, + additionalProperties: false, + }, + ], + }, + ], + }, + fixable: 'code', + messages: comma_dangle_1.default.meta.messages, + }, + defaultOptions: ['never'], + create(context, [options]) { + const rules = comma_dangle_1.default.create(context); + const sourceCode = context.getSourceCode(); + const normalizedOptions = normalizeOptions(options); + const predicate = { + always: forceComma, + 'always-multiline': forceCommaIfMultiline, + 'only-multiline': allowCommaIfMultiline, + never: forbidComma, + ignore: () => { }, + }; + function last(nodes) { + var _a; + return (_a = nodes[nodes.length - 1]) !== null && _a !== void 0 ? _a : null; + } + function getLastItem(node) { + switch (node.type) { + case experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration: + return last(node.members); + case experimental_utils_1.AST_NODE_TYPES.TSTypeParameterDeclaration: + return last(node.params); + case experimental_utils_1.AST_NODE_TYPES.TSTupleType: + return last(node.elementTypes); + default: + return null; + } + } + function getTrailingToken(node) { + const last = getLastItem(node); + const trailing = last && sourceCode.getTokenAfter(last); + return trailing; + } + function isMultiline(node) { + const last = getLastItem(node); + const lastToken = sourceCode.getLastToken(node); + return (last === null || last === void 0 ? void 0 : last.loc.end.line) !== (lastToken === null || lastToken === void 0 ? void 0 : lastToken.loc.end.line); + } + function forbidComma(node) { + const last = getLastItem(node); + const trailing = getTrailingToken(node); + if (last && trailing && util.isCommaToken(trailing)) { + context.report({ + node, + messageId: 'unexpected', + fix(fixer) { + return fixer.remove(trailing); + }, + }); + } + } + function forceComma(node) { + const last = getLastItem(node); + const trailing = getTrailingToken(node); + if (last && trailing && !util.isCommaToken(trailing)) { + context.report({ + node, + messageId: 'missing', + fix(fixer) { + return fixer.insertTextAfter(last, ','); + }, + }); + } + } + function allowCommaIfMultiline(node) { + if (!isMultiline(node)) { + forbidComma(node); + } + } + function forceCommaIfMultiline(node) { + if (isMultiline(node)) { + forceComma(node); + } + else { + forbidComma(node); + } + } + return Object.assign(Object.assign({}, rules), { TSEnumDeclaration: predicate[normalizedOptions.enums], TSTypeParameterDeclaration: predicate[normalizedOptions.generics], TSTupleType: predicate[normalizedOptions.tuples] }); + }, +}); +//# sourceMappingURL=comma-dangle.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js.map new file mode 100644 index 0000000000..10119f91d3 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-dangle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"comma-dangle.js","sourceRoot":"","sources":["../../src/rules/comma-dangle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js index 6e2c440666..791fbe54cf 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js @@ -69,10 +69,13 @@ exports.default = util_1.createRule({ * @param node node to evaluate */ function addTypeParametersTrailingCommaToIgnoreList(node) { - const param = node.params[node.params.length - 1]; - const afterToken = sourceCode.getTokenAfter(param); - if (afterToken && util_1.isCommaToken(afterToken)) { - ignoredTokens.add(afterToken); + const paramLength = node.params.length; + if (paramLength) { + const param = node.params[paramLength - 1]; + const afterToken = sourceCode.getTokenAfter(param); + if (afterToken && util_1.isCommaToken(afterToken)) { + ignoredTokens.add(afterToken); + } } } /** diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map index 9ddd17a655..a030380959 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/comma-spacing.js.map @@ -1 +1 @@ -{"version":3,"file":"comma-spacing.js","sourceRoot":"","sources":["../../src/rules/comma-spacing.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"comma-spacing.js","sourceRoot":"","sources":["../../src/rules/comma-spacing.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js new file mode 100644 index 0000000000..e7c4c523f5 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js @@ -0,0 +1,109 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const util_1 = require("../util"); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +exports.default = util_1.createRule({ + name: 'consistent-indexed-object-style', + meta: { + type: 'suggestion', + docs: { + description: 'Enforce or disallow the use of the record type', + category: 'Stylistic Issues', + // too opinionated to be recommended + recommended: false, + }, + messages: { + preferRecord: 'A record is preferred over an index signature', + preferIndexSignature: 'An index signature is preferred over a record.', + }, + fixable: 'code', + schema: [ + { + enum: ['record', 'index-signature'], + }, + ], + }, + defaultOptions: ['record'], + create(context) { + const sourceCode = context.getSourceCode(); + if (context.options[0] === 'index-signature') { + return { + TSTypeReference(node) { + var _a; + const typeName = node.typeName; + if (typeName.type !== experimental_utils_1.AST_NODE_TYPES.Identifier) { + return; + } + if (typeName.name !== 'Record') { + return; + } + const params = (_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params; + if ((params === null || params === void 0 ? void 0 : params.length) !== 2) { + return; + } + context.report({ + node, + messageId: 'preferIndexSignature', + fix(fixer) { + const key = sourceCode.getText(params[0]); + const type = sourceCode.getText(params[1]); + return fixer.replaceText(node, `{ [key: ${key}]: ${type} }`); + }, + }); + }, + }; + } + function checkMembers(members, node, prefix, postfix, safeFix = true) { + if (members.length !== 1) { + return; + } + const [member] = members; + if (member.type !== experimental_utils_1.AST_NODE_TYPES.TSIndexSignature) { + return; + } + const [parameter] = member.parameters; + if (!parameter) { + return; + } + if (parameter.type !== experimental_utils_1.AST_NODE_TYPES.Identifier) { + return; + } + const keyType = parameter.typeAnnotation; + if (!keyType) { + return; + } + const valueType = member.typeAnnotation; + if (!valueType) { + return; + } + context.report({ + node, + messageId: 'preferRecord', + fix: safeFix + ? (fixer) => { + const key = sourceCode.getText(keyType.typeAnnotation); + const value = sourceCode.getText(valueType.typeAnnotation); + const record = member.readonly + ? `Readonly>` + : `Record<${key}, ${value}>`; + return fixer.replaceText(node, `${prefix}${record}${postfix}`); + } + : null, + }); + } + return { + TSTypeLiteral(node) { + checkMembers(node.members, node, '', ''); + }, + TSInterfaceDeclaration(node) { + var _a, _b, _c, _d; + let genericTypes = ''; + if (((_b = (_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : []).length > 0) { + genericTypes = `<${(_c = node.typeParameters) === null || _c === void 0 ? void 0 : _c.params.map(p => p.name.name).join(', ')}>`; + } + checkMembers(node.body.body, node, `type ${node.id.name}${genericTypes} = `, ';', !((_d = node.extends) === null || _d === void 0 ? void 0 : _d.length)); + }, + }; + }, +}); +//# sourceMappingURL=consistent-indexed-object-style.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js.map new file mode 100644 index 0000000000..57dacaf1ad --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-indexed-object-style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"consistent-indexed-object-style.js","sourceRoot":"","sources":["../../src/rules/consistent-indexed-object-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js index 00e292ad42..da4eb4aa31 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js @@ -121,7 +121,8 @@ exports.default = util.createRule({ (node.parent.type === experimental_utils_1.AST_NODE_TYPES.NewExpression || node.parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression || node.parent.type === experimental_utils_1.AST_NODE_TYPES.ThrowStatement || - node.parent.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern)) { + node.parent.type === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern || + node.parent.type === experimental_utils_1.AST_NODE_TYPES.JSXExpressionContainer)) { return; } if (checkType(node.typeAnnotation) && diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map index 41dd8b124e..79a302dcb6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-assertions.js.map @@ -1 +1 @@ -{"version":3,"file":"consistent-type-assertions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-assertions.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consistent-type-assertions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-assertions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js index cd0de69e53..36a08f091b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js @@ -45,6 +45,17 @@ exports.default = util.createRule({ defaultOptions: ['interface'], create(context, [option]) { const sourceCode = context.getSourceCode(); + /** + * Iterates from the highest parent to the currently traversed node + * to determine whether any node in tree is globally declared module declaration + */ + function isCurrentlyTraversedNodeWithinModuleDeclaration() { + return context + .getAncestors() + .some(node => node.type === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration && + node.declare && + node.global); + } return { "TSTypeAliasDeclaration[typeAnnotation.type='TSTypeLiteral']"(node) { if (option === 'interface') { @@ -76,23 +87,29 @@ exports.default = util.createRule({ context.report({ node: node.id, messageId: 'typeOverInterface', - fix(fixer) { - var _a; - const typeNode = (_a = node.typeParameters) !== null && _a !== void 0 ? _a : node.id; - const fixes = []; - const firstToken = sourceCode.getFirstToken(node); - if (firstToken) { - fixes.push(fixer.replaceText(firstToken, 'type')); - fixes.push(fixer.replaceTextRange([typeNode.range[1], node.body.range[0]], ' = ')); - } - if (node.extends) { - node.extends.forEach(heritage => { - const typeIdentifier = sourceCode.getText(heritage); - fixes.push(fixer.insertTextAfter(node.body, ` & ${typeIdentifier}`)); - }); - } - return fixes; - }, + /** + * remove automatically fix when the interface is within a declare global + * @see {@link https://github.com/typescript-eslint/typescript-eslint/issues/2707} + */ + fix: isCurrentlyTraversedNodeWithinModuleDeclaration() + ? null + : (fixer) => { + var _a; + const typeNode = (_a = node.typeParameters) !== null && _a !== void 0 ? _a : node.id; + const fixes = []; + const firstToken = sourceCode.getFirstToken(node); + if (firstToken) { + fixes.push(fixer.replaceText(firstToken, 'type')); + fixes.push(fixer.replaceTextRange([typeNode.range[1], node.body.range[0]], ' = ')); + } + if (node.extends) { + node.extends.forEach(heritage => { + const typeIdentifier = sourceCode.getText(heritage); + fixes.push(fixer.insertTextAfter(node.body, ` & ${typeIdentifier}`)); + }); + } + return fixes; + }, }); } }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map index a9d96cba89..1bf66d8f8b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map @@ -1 +1 @@ -{"version":3,"file":"consistent-type-definitions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-definitions.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consistent-type-definitions.js","sourceRoot":"","sources":["../../src/rules/consistent-type-definitions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js index c61196c548..2a0246cdc5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js @@ -40,6 +40,8 @@ exports.default = util.createRule({ typeOverValue: 'All imports in the declaration are only used as types. Use `import type`', someImportsAreOnlyTypes: 'Imports {{typeImports}} are only used as types', aImportIsOnlyTypes: 'Import {{typeImports}} is only used as types', + someImportsInDecoMeta: 'Type imports {{typeImports}} are used by decorator metadata', + aImportInDecoMeta: 'Type import {{typeImports}} is used by decorator metadata', valueOverType: 'Use an `import` instead of an `import type`.', noImportTypeAnnotations: '`import()` type annotations are forbidden.', }, @@ -81,15 +83,20 @@ exports.default = util.createRule({ source, reportValueImports: [], typeOnlyNamedImport: null, + valueOnlyNamedImport: null, }); if (node.importKind === 'type') { if (!sourceImports.typeOnlyNamedImport && node.specifiers.every(specifier => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier)) { sourceImports.typeOnlyNamedImport = node; } - return; } - // if importKind === 'value' + else { + if (!sourceImports.valueOnlyNamedImport && + node.specifiers.every(specifier => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier)) { + sourceImports.valueOnlyNamedImport = node; + } + } const typeSpecifiers = []; const valueSpecifiers = []; const unusedSpecifiers = []; @@ -100,21 +107,58 @@ exports.default = util.createRule({ } else { const onlyHasTypeReferences = variable.references.every(ref => { + var _a, _b; + /** + * keep origin import kind when export + * export { Type } + * export default Type; + */ + if (((_a = ref.identifier.parent) === null || _a === void 0 ? void 0 : _a.type) === + experimental_utils_1.AST_NODE_TYPES.ExportSpecifier || + ((_b = ref.identifier.parent) === null || _b === void 0 ? void 0 : _b.type) === + experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration) { + if (ref.isValueReference && ref.isTypeReference) { + return node.importKind === 'type'; + } + } if (ref.isValueReference) { - // `type T = typeof foo` will create a value reference because "foo" must be a value type - // however this value reference is safe to use with type-only imports let parent = ref.identifier.parent; + let child = ref.identifier; while (parent) { - if (parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeQuery) { - return true; + switch (parent.type) { + // CASE 1: + // `type T = typeof foo` will create a value reference because "foo" must be a value type + // however this value reference is safe to use with type-only imports + case experimental_utils_1.AST_NODE_TYPES.TSTypeQuery: + return true; + case experimental_utils_1.AST_NODE_TYPES.TSQualifiedName: + // TSTypeQuery must have a TSESTree.EntityName as its child, so we can filter here and break early + if (parent.left !== child) { + return false; + } + child = parent; + parent = parent.parent; + continue; + // END CASE 1 + ////////////// + // CASE 2: + // `type T = { [foo]: string }` will create a value reference because "foo" must be a value type + // however this value reference is safe to use with type-only imports. + // Also this is represented as a non-type AST - hence it uses MemberExpression + case experimental_utils_1.AST_NODE_TYPES.TSPropertySignature: + return parent.key === child; + case experimental_utils_1.AST_NODE_TYPES.MemberExpression: + if (parent.object !== child) { + return false; + } + child = parent; + parent = parent.parent; + continue; + // END CASE 2 + default: + return false; } - // TSTypeQuery must have a TSESTree.EntityName as its child, so we can filter here and break early - if (parent.type !== experimental_utils_1.AST_NODE_TYPES.TSQualifiedName) { - break; - } - parent = parent.parent; } - return false; } return ref.isTypeReference; }); @@ -126,7 +170,8 @@ exports.default = util.createRule({ } } } - if (typeSpecifiers.length) { + if ((node.importKind === 'value' && typeSpecifiers.length) || + (node.importKind === 'type' && valueSpecifiers.length)) { sourceImports.reportValueImports.push({ node, typeSpecifiers, @@ -153,25 +198,54 @@ exports.default = util.createRule({ }); } else { + const isTypeImport = report.node.importKind === 'type'; // we have a mixed type/value import, so we need to split them out into multiple exports - const typeImportNames = report.typeSpecifiers.map(specifier => `"${specifier.local.name}"`); - context.report({ - node: report.node, - messageId: typeImportNames.length === 1 - ? 'aImportIsOnlyTypes' - : 'someImportsAreOnlyTypes', - data: { - typeImports: typeImportNames.length === 1 - ? typeImportNames[0] - : [ - typeImportNames.slice(0, -1).join(', '), - typeImportNames.slice(-1)[0], - ].join(' and '), - }, - *fix(fixer) { - yield* fixToTypeImport(fixer, report, sourceImports); - }, - }); + const importNames = (isTypeImport + ? report.valueSpecifiers + : report.typeSpecifiers).map(specifier => `"${specifier.local.name}"`); + const message = (() => { + if (importNames.length === 1) { + const typeImports = importNames[0]; + if (isTypeImport) { + return { + messageId: 'aImportInDecoMeta', + data: { typeImports }, + }; + } + else { + return { + messageId: 'aImportIsOnlyTypes', + data: { typeImports }, + }; + } + } + else { + const typeImports = [ + importNames.slice(0, -1).join(', '), + importNames.slice(-1)[0], + ].join(' and '); + if (isTypeImport) { + return { + messageId: 'someImportsInDecoMeta', + data: { typeImports }, + }; + } + else { + return { + messageId: 'someImportsAreOnlyTypes', + data: { typeImports }, + }; + } + } + })(); + context.report(Object.assign(Object.assign({ node: report.node }, message), { *fix(fixer) { + if (isTypeImport) { + yield* fixToValueImportInDecoMeta(fixer, report, sourceImports); + } + else { + yield* fixToTypeImport(fixer, report, sourceImports); + } + } })); } } } @@ -199,16 +273,117 @@ exports.default = util.createRule({ }, } : {})); - function* fixToTypeImport(fixer, report, sourceImports) { - const { node } = report; + function classifySpecifier(node) { + var _a; const defaultSpecifier = node.specifiers[0].type === experimental_utils_1.AST_NODE_TYPES.ImportDefaultSpecifier ? node.specifiers[0] : null; - const namespaceSpecifier = node.specifiers[0].type === experimental_utils_1.AST_NODE_TYPES.ImportNamespaceSpecifier - ? node.specifiers[0] - : null; + const namespaceSpecifier = (_a = node.specifiers.find((specifier) => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportNamespaceSpecifier)) !== null && _a !== void 0 ? _a : null; const namedSpecifiers = node.specifiers.filter((specifier) => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier); - if (namespaceSpecifier) { + return { + defaultSpecifier, + namespaceSpecifier, + namedSpecifiers, + }; + } + /** + * Returns information for fixing named specifiers. + */ + function getFixesNamedSpecifiers(fixer, node, typeNamedSpecifiers, allNamedSpecifiers) { + if (allNamedSpecifiers.length === 0) { + return { + typeNamedSpecifiersText: '', + removeTypeNamedSpecifiers: [], + }; + } + const typeNamedSpecifiersTexts = []; + const removeTypeNamedSpecifiers = []; + if (typeNamedSpecifiers.length === allNamedSpecifiers.length) { + // e.g. + // import Foo, {Type1, Type2} from 'foo' + // import DefType, {Type1, Type2} from 'foo' + const openingBraceToken = util.nullThrows(sourceCode.getTokenBefore(typeNamedSpecifiers[0], util.isOpeningBraceToken), util.NullThrowsReasons.MissingToken('{', node.type)); + const commaToken = util.nullThrows(sourceCode.getTokenBefore(openingBraceToken, util.isCommaToken), util.NullThrowsReasons.MissingToken(',', node.type)); + const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(openingBraceToken, node.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', node.type)); + // import DefType, {...} from 'foo' + // ^^^^^^^ remove + removeTypeNamedSpecifiers.push(fixer.removeRange([commaToken.range[0], closingBraceToken.range[1]])); + typeNamedSpecifiersTexts.push(sourceCode.text.slice(openingBraceToken.range[1], closingBraceToken.range[0])); + } + else { + const typeNamedSpecifierGroups = []; + let group = []; + for (const namedSpecifier of allNamedSpecifiers) { + if (typeNamedSpecifiers.includes(namedSpecifier)) { + group.push(namedSpecifier); + } + else if (group.length) { + typeNamedSpecifierGroups.push(group); + group = []; + } + } + if (group.length) { + typeNamedSpecifierGroups.push(group); + } + for (const namedSpecifiers of typeNamedSpecifierGroups) { + const { removeRange, textRange } = getNamedSpecifierRanges(namedSpecifiers, allNamedSpecifiers); + removeTypeNamedSpecifiers.push(fixer.removeRange(removeRange)); + typeNamedSpecifiersTexts.push(sourceCode.text.slice(...textRange)); + } + } + return { + typeNamedSpecifiersText: typeNamedSpecifiersTexts.join(','), + removeTypeNamedSpecifiers, + }; + } + /** + * Returns ranges for fixing named specifier. + */ + function getNamedSpecifierRanges(namedSpecifierGroup, allNamedSpecifiers) { + const first = namedSpecifierGroup[0]; + const last = namedSpecifierGroup[namedSpecifierGroup.length - 1]; + const removeRange = [first.range[0], last.range[1]]; + const textRange = [...removeRange]; + const before = sourceCode.getTokenBefore(first); + textRange[0] = before.range[1]; + if (util.isCommaToken(before)) { + removeRange[0] = before.range[0]; + } + else { + removeRange[0] = before.range[1]; + } + const isFirst = allNamedSpecifiers[0] === first; + const isLast = allNamedSpecifiers[allNamedSpecifiers.length - 1] === last; + const after = sourceCode.getTokenAfter(last); + textRange[1] = after.range[0]; + if (isFirst || isLast) { + if (util.isCommaToken(after)) { + removeRange[1] = after.range[1]; + } + } + return { + textRange, + removeRange, + }; + } + /** + * insert specifiers to named import node. + * e.g. + * import type { Already, Type1, Type2 } from 'foo' + * ^^^^^^^^^^^^^ insert + */ + function insertToNamedImport(fixer, target, insertText) { + const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(sourceCode.getFirstToken(target), target.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', target.type)); + const before = sourceCode.getTokenBefore(closingBraceToken); + if (!util.isCommaToken(before) && !util.isOpeningBraceToken(before)) { + insertText = ',' + insertText; + } + return fixer.insertTextBefore(closingBraceToken, insertText); + } + function* fixToTypeImport(fixer, report, sourceImports) { + const { node } = report; + const { defaultSpecifier, namespaceSpecifier, namedSpecifiers } = classifySpecifier(node); + if (namespaceSpecifier && !defaultSpecifier) { // e.g. // import * as types from 'foo' yield* fixToTypeImportByInsertType(fixer, node, false); @@ -216,7 +391,8 @@ exports.default = util.createRule({ } else if (defaultSpecifier) { if (report.typeSpecifiers.includes(defaultSpecifier) && - namedSpecifiers.length === 0) { + namedSpecifiers.length === 0 && + !namespaceSpecifier) { // e.g. // import Type from 'foo' yield* fixToTypeImportByInsertType(fixer, node, true); @@ -224,7 +400,8 @@ exports.default = util.createRule({ } } else { - if (namedSpecifiers.every(specifier => report.typeSpecifiers.includes(specifier))) { + if (namedSpecifiers.every(specifier => report.typeSpecifiers.includes(specifier)) && + !namespaceSpecifier) { // e.g. // import {Type1, Type2} from 'foo' yield* fixToTypeImportByInsertType(fixer, node, false); @@ -232,19 +409,11 @@ exports.default = util.createRule({ } } const typeNamedSpecifiers = namedSpecifiers.filter(specifier => report.typeSpecifiers.includes(specifier)); - const fixesNamedSpecifiers = getFixesNamedSpecifiers(typeNamedSpecifiers, namedSpecifiers); + const fixesNamedSpecifiers = getFixesNamedSpecifiers(fixer, node, typeNamedSpecifiers, namedSpecifiers); const afterFixes = []; if (typeNamedSpecifiers.length) { if (sourceImports.typeOnlyNamedImport) { - const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(sourceCode.getFirstToken(sourceImports.typeOnlyNamedImport), sourceImports.typeOnlyNamedImport.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', sourceImports.typeOnlyNamedImport.type)); - let insertText = fixesNamedSpecifiers.typeNamedSpecifiersText; - const before = sourceCode.getTokenBefore(closingBraceToken); - if (!util.isCommaToken(before) && !util.isOpeningBraceToken(before)) { - insertText = ',' + insertText; - } - // import type { Already, Type1, Type2 } from 'foo' - // ^^^^^^^^^^^^^ insert - const insertTypeNamedSpecifiers = fixer.insertTextBefore(closingBraceToken, insertText); + const insertTypeNamedSpecifiers = insertToNamedImport(fixer, sourceImports.typeOnlyNamedImport, fixesNamedSpecifiers.typeNamedSpecifiersText); if (sourceImports.typeOnlyNamedImport.range[1] <= node.range[0]) { yield insertTypeNamedSpecifiers; } @@ -256,101 +425,49 @@ exports.default = util.createRule({ yield fixer.insertTextBefore(node, `import type {${fixesNamedSpecifiers.typeNamedSpecifiersText}} from ${sourceCode.getText(node.source)};\n`); } } + const fixesRemoveTypeNamespaceSpecifier = []; + if (namespaceSpecifier && + report.typeSpecifiers.includes(namespaceSpecifier)) { + // e.g. + // import Foo, * as Type from 'foo' + // import DefType, * as Type from 'foo' + // import DefType, * as Type from 'foo' + const commaToken = util.nullThrows(sourceCode.getTokenBefore(namespaceSpecifier, util.isCommaToken), util.NullThrowsReasons.MissingToken(',', node.type)); + // import Def, * as Ns from 'foo' + // ^^^^^^^^^ remove + fixesRemoveTypeNamespaceSpecifier.push(fixer.removeRange([commaToken.range[0], namespaceSpecifier.range[1]])); + // import type * as Ns from 'foo' + // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ insert + yield fixer.insertTextBefore(node, `import type ${sourceCode.getText(namespaceSpecifier)} from ${sourceCode.getText(node.source)};\n`); + } if (defaultSpecifier && report.typeSpecifiers.includes(defaultSpecifier)) { - if (typeNamedSpecifiers.length === namedSpecifiers.length) { + if (report.typeSpecifiers.length === node.specifiers.length) { const importToken = util.nullThrows(sourceCode.getFirstToken(node, isImportToken), util.NullThrowsReasons.MissingToken('import', node.type)); // import type Type from 'foo' // ^^^^ insert yield fixer.insertTextAfter(importToken, ' type'); } else { - yield fixer.insertTextBefore(node, `import type ${sourceCode.getText(defaultSpecifier)} from ${sourceCode.getText(node.source)};\n`); + const commaToken = util.nullThrows(sourceCode.getTokenAfter(defaultSpecifier, util.isCommaToken), util.NullThrowsReasons.MissingToken(',', defaultSpecifier.type)); + // import Type , {...} from 'foo' + // ^^^^^ pick + const defaultText = sourceCode.text + .slice(defaultSpecifier.range[0], commaToken.range[0]) + .trim(); + yield fixer.insertTextBefore(node, `import type ${defaultText} from ${sourceCode.getText(node.source)};\n`); + const afterToken = util.nullThrows(sourceCode.getTokenAfter(commaToken, { includeComments: true }), util.NullThrowsReasons.MissingToken('any token', node.type)); // import Type , {...} from 'foo' - // ^^^^^^ remove - yield fixer.remove(defaultSpecifier); - yield fixer.remove(sourceCode.getTokenAfter(defaultSpecifier)); + // ^^^^^^^ remove + yield fixer.removeRange([ + defaultSpecifier.range[0], + afterToken.range[0], + ]); } } yield* fixesNamedSpecifiers.removeTypeNamedSpecifiers; + yield* fixesRemoveTypeNamespaceSpecifier; yield* afterFixes; - /** - * Returns information for fixing named specifiers. - */ - function getFixesNamedSpecifiers(typeNamedSpecifiers, allNamedSpecifiers) { - const typeNamedSpecifiersTexts = []; - const removeTypeNamedSpecifiers = []; - if (typeNamedSpecifiers.length === allNamedSpecifiers.length) { - // e.g. - // import Foo, {Type1, Type2} from 'foo' - // import DefType, {Type1, Type2} from 'foo' - const openingBraceToken = util.nullThrows(sourceCode.getTokenBefore(typeNamedSpecifiers[0], util.isOpeningBraceToken), util.NullThrowsReasons.MissingToken('{', node.type)); - const commaToken = util.nullThrows(sourceCode.getTokenBefore(openingBraceToken, util.isCommaToken), util.NullThrowsReasons.MissingToken(',', node.type)); - const closingBraceToken = util.nullThrows(sourceCode.getFirstTokenBetween(openingBraceToken, node.source, util.isClosingBraceToken), util.NullThrowsReasons.MissingToken('}', node.type)); - // import DefType, {...} from 'foo' - // ^^^^^^^ remove - removeTypeNamedSpecifiers.push(fixer.removeRange([ - commaToken.range[0], - closingBraceToken.range[1], - ])); - typeNamedSpecifiersTexts.push(sourceCode.text.slice(openingBraceToken.range[1], closingBraceToken.range[0])); - } - else { - const typeNamedSpecifierGroups = []; - let group = []; - for (const namedSpecifier of allNamedSpecifiers) { - if (typeNamedSpecifiers.includes(namedSpecifier)) { - group.push(namedSpecifier); - } - else if (group.length) { - typeNamedSpecifierGroups.push(group); - group = []; - } - } - if (group.length) { - typeNamedSpecifierGroups.push(group); - } - for (const namedSpecifiers of typeNamedSpecifierGroups) { - const { removeRange, textRange } = getNamedSpecifierRanges(namedSpecifiers, allNamedSpecifiers); - removeTypeNamedSpecifiers.push(fixer.removeRange(removeRange)); - typeNamedSpecifiersTexts.push(sourceCode.text.slice(...textRange)); - } - } - return { - typeNamedSpecifiersText: typeNamedSpecifiersTexts.join(','), - removeTypeNamedSpecifiers, - }; - } - /** - * Returns ranges for fixing named specifier. - */ - function getNamedSpecifierRanges(namedSpecifierGroup, allNamedSpecifiers) { - const first = namedSpecifierGroup[0]; - const last = namedSpecifierGroup[namedSpecifierGroup.length - 1]; - const removeRange = [first.range[0], last.range[1]]; - const textRange = [...removeRange]; - const before = sourceCode.getTokenBefore(first); - textRange[0] = before.range[1]; - if (util.isCommaToken(before)) { - removeRange[0] = before.range[0]; - } - else { - removeRange[0] = before.range[1]; - } - const isFirst = allNamedSpecifiers[0] === first; - const isLast = allNamedSpecifiers[allNamedSpecifiers.length - 1] === last; - const after = sourceCode.getTokenAfter(last); - textRange[1] = after.range[0]; - if (isFirst || isLast) { - if (util.isCommaToken(after)) { - removeRange[1] = after.range[1]; - } - } - return { - textRange, - removeRange, - }; - } } function* fixToTypeImportByInsertType(fixer, node, isDefaultImport) { // import type Foo from 'foo' @@ -379,13 +496,60 @@ exports.default = util.createRule({ } } } - function fixToValueImport(fixer, node) { + function* fixToValueImportInDecoMeta(fixer, report, sourceImports) { + const { node } = report; + const { defaultSpecifier, namespaceSpecifier, namedSpecifiers } = classifySpecifier(node); + if (namespaceSpecifier) { + // e.g. + // import type * as types from 'foo' + yield* fixToValueImport(fixer, node); + return; + } + else if (defaultSpecifier) { + if (report.valueSpecifiers.includes(defaultSpecifier) && + namedSpecifiers.length === 0) { + // e.g. + // import type Type from 'foo' + yield* fixToValueImport(fixer, node); + return; + } + } + else { + if (namedSpecifiers.every(specifier => report.valueSpecifiers.includes(specifier))) { + // e.g. + // import type {Type1, Type2} from 'foo' + yield* fixToValueImport(fixer, node); + return; + } + } + const valueNamedSpecifiers = namedSpecifiers.filter(specifier => report.valueSpecifiers.includes(specifier)); + const fixesNamedSpecifiers = getFixesNamedSpecifiers(fixer, node, valueNamedSpecifiers, namedSpecifiers); + const afterFixes = []; + if (valueNamedSpecifiers.length) { + if (sourceImports.valueOnlyNamedImport) { + const insertTypeNamedSpecifiers = insertToNamedImport(fixer, sourceImports.valueOnlyNamedImport, fixesNamedSpecifiers.typeNamedSpecifiersText); + if (sourceImports.valueOnlyNamedImport.range[1] <= node.range[0]) { + yield insertTypeNamedSpecifiers; + } + else { + afterFixes.push(insertTypeNamedSpecifiers); + } + } + else { + yield fixer.insertTextBefore(node, `import {${fixesNamedSpecifiers.typeNamedSpecifiersText}} from ${sourceCode.getText(node.source)};\n`); + } + } + yield* fixesNamedSpecifiers.removeTypeNamedSpecifiers; + yield* afterFixes; + } + function* fixToValueImport(fixer, node) { var _a, _b; // import type Foo from 'foo' // ^^^^ remove const importToken = util.nullThrows(sourceCode.getFirstToken(node, isImportToken), util.NullThrowsReasons.MissingToken('import', node.type)); const typeToken = util.nullThrows(sourceCode.getFirstTokenBetween(importToken, (_b = (_a = node.specifiers[0]) === null || _a === void 0 ? void 0 : _a.local) !== null && _b !== void 0 ? _b : node.source, isTypeToken), util.NullThrowsReasons.MissingToken('type', node.type)); - return fixer.remove(typeToken); + const afterToken = util.nullThrows(sourceCode.getTokenAfter(typeToken, { includeComments: true }), util.NullThrowsReasons.MissingToken('any token', node.type)); + yield fixer.removeRange([typeToken.range[0], afterToken.range[0]]); } }, }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map index ce74bfdb22..60f1f386cf 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-imports.js.map @@ -1 +1 @@ -{"version":3,"file":"consistent-type-imports.js","sourceRoot":"","sources":["../../src/rules/consistent-type-imports.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"consistent-type-imports.js","sourceRoot":"","sources":["../../src/rules/consistent-type-imports.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js index a4a89d0a82..af389445d7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js @@ -23,6 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const ts = __importStar(require("typescript")); +const tsutils = __importStar(require("tsutils")); const dot_notation_1 = __importDefault(require("eslint/lib/rules/dot-notation")); const util_1 = require("../util"); exports.default = util_1.createRule({ @@ -52,6 +53,14 @@ exports.default = util_1.createRule({ type: 'boolean', default: false, }, + allowProtectedClassPropertyAccess: { + type: 'boolean', + default: false, + }, + allowIndexSignaturePropertyAccess: { + type: 'boolean', + default: false, + }, }, additionalProperties: false, }, @@ -62,25 +71,47 @@ exports.default = util_1.createRule({ defaultOptions: [ { allowPrivateClassPropertyAccess: false, + allowProtectedClassPropertyAccess: false, + allowIndexSignaturePropertyAccess: false, allowKeywords: true, allowPattern: '', }, ], create(context, [options]) { + var _a; const rules = dot_notation_1.default.create(context); + const { program, esTreeNodeToTSNodeMap } = util_1.getParserServices(context); + const typeChecker = program.getTypeChecker(); const allowPrivateClassPropertyAccess = options.allowPrivateClassPropertyAccess; - const parserServices = util_1.getParserServices(context); - const typeChecker = parserServices.program.getTypeChecker(); + const allowProtectedClassPropertyAccess = options.allowProtectedClassPropertyAccess; + const allowIndexSignaturePropertyAccess = ((_a = options.allowIndexSignaturePropertyAccess) !== null && _a !== void 0 ? _a : false) || + tsutils.isCompilerOptionEnabled(program.getCompilerOptions(), + // @ts-expect-error - TS is refining the type to never for some reason + 'noPropertyAccessFromIndexSignature'); return { MemberExpression(node) { var _a, _b, _c; - if (allowPrivateClassPropertyAccess && node.computed) { - // for perf reasons - only fetch the symbol if we have to - const objectSymbol = typeChecker.getSymbolAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node.property)); - if (((_c = (_b = (_a = objectSymbol === null || objectSymbol === void 0 ? void 0 : objectSymbol.getDeclarations()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.modifiers) === null || _c === void 0 ? void 0 : _c[0].kind) === - ts.SyntaxKind.PrivateKeyword) { + if ((allowPrivateClassPropertyAccess || + allowProtectedClassPropertyAccess || + allowIndexSignaturePropertyAccess) && + node.computed) { + // for perf reasons - only fetch symbols if we have to + const propertySymbol = typeChecker.getSymbolAtLocation(esTreeNodeToTSNodeMap.get(node.property)); + const modifierKind = (_c = (_b = (_a = propertySymbol === null || propertySymbol === void 0 ? void 0 : propertySymbol.getDeclarations()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.modifiers) === null || _c === void 0 ? void 0 : _c[0].kind; + if ((allowPrivateClassPropertyAccess && + modifierKind == ts.SyntaxKind.PrivateKeyword) || + (allowProtectedClassPropertyAccess && + modifierKind == ts.SyntaxKind.ProtectedKeyword)) { return; } + if (propertySymbol === undefined && + allowIndexSignaturePropertyAccess) { + const objectType = typeChecker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(node.object)); + const indexType = typeChecker.getIndexTypeOfType(objectType, ts.IndexKind.String); + if (indexType != undefined) { + return; + } + } } rules.MemberExpression(node); }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map index 297244e7d3..a6d3f46fd0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/dot-notation.js.map @@ -1 +1 @@ -{"version":3,"file":"dot-notation.js","sourceRoot":"","sources":["../../src/rules/dot-notation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAiC;AACjC,iFAAqD;AACrD,kCAKiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,aAAa,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;qBACd;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;qBACZ;oBACD,+BAA+B,EAAE;wBAC/B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,OAAO,EAAE,sBAAQ,CAAC,IAAI,CAAC,OAAO;QAC9B,QAAQ,EAAE,sBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd;YACE,+BAA+B,EAAE,KAAK;YACtC,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,EAAE;SACjB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,KAAK,GAAG,sBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,+BAA+B,GACnC,OAAO,CAAC,+BAA+B,CAAC;QAE1C,MAAM,cAAc,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAE5D,OAAO;YACL,gBAAgB,CAAC,IAA+B;;gBAC9C,IAAI,+BAA+B,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACpD,yDAAyD;oBACzD,MAAM,YAAY,GAAG,WAAW,CAAC,mBAAmB,CAClD,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CACxD,CAAC;oBACF,IACE,mBAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,4CAAK,CAAC,2CAAG,SAAS,0CAAG,CAAC,EAAE,IAAI;wBACzD,EAAE,CAAC,UAAU,CAAC,cAAc,EAC5B;wBACA,OAAO;qBACR;iBACF;gBACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"dot-notation.js","sourceRoot":"","sources":["../../src/rules/dot-notation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAiC;AACjC,iDAAmC;AACnC,iFAAqD;AACrD,kCAKiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,aAAa,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;qBACd;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,EAAE;qBACZ;oBACD,+BAA+B,EAAE;wBAC/B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;oBACD,iCAAiC,EAAE;wBACjC,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;oBACD,iCAAiC,EAAE;wBACjC,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,OAAO,EAAE,sBAAQ,CAAC,IAAI,CAAC,OAAO;QAC9B,QAAQ,EAAE,sBAAQ,CAAC,IAAI,CAAC,QAAQ;KACjC;IACD,cAAc,EAAE;QACd;YACE,+BAA+B,EAAE,KAAK;YACtC,iCAAiC,EAAE,KAAK;YACxC,iCAAiC,EAAE,KAAK;YACxC,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,EAAE;SACjB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;;QACvB,MAAM,KAAK,GAAG,sBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAE7C,MAAM,+BAA+B,GACnC,OAAO,CAAC,+BAA+B,CAAC;QAC1C,MAAM,iCAAiC,GACrC,OAAO,CAAC,iCAAiC,CAAC;QAC5C,MAAM,iCAAiC,GACrC,CAAC,MAAA,OAAO,CAAC,iCAAiC,mCAAI,KAAK,CAAC;YACpD,OAAO,CAAC,uBAAuB,CAC7B,OAAO,CAAC,kBAAkB,EAAE;YAC5B,sEAAsE;YACtE,oCAAoC,CACrC,CAAC;QAEJ,OAAO;YACL,gBAAgB,CAAC,IAA+B;;gBAC9C,IACE,CAAC,+BAA+B;oBAC9B,iCAAiC;oBACjC,iCAAiC,CAAC;oBACpC,IAAI,CAAC,QAAQ,EACb;oBACA,sDAAsD;oBACtD,MAAM,cAAc,GAAG,WAAW,CAAC,mBAAmB,CACpD,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzC,CAAC;oBACF,MAAM,YAAY,GAChB,MAAA,MAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,EAAE,0CAAG,CAAC,CAAC,0CAAE,SAAS,0CAAG,CAAC,EAAE,IAAI,CAAC;oBAC9D,IACE,CAAC,+BAA+B;wBAC9B,YAAY,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;wBAC/C,CAAC,iCAAiC;4BAChC,YAAY,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACjD;wBACA,OAAO;qBACR;oBACD,IACE,cAAc,KAAK,SAAS;wBAC5B,iCAAiC,EACjC;wBACA,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAC9C,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CACvC,CAAC;wBACF,MAAM,SAAS,GAAG,WAAW,CAAC,kBAAkB,CAC9C,UAAU,EACV,EAAE,CAAC,SAAS,CAAC,MAAM,CACpB,CAAC;wBACF,IAAI,SAAS,IAAI,SAAS,EAAE;4BAC1B,OAAO;yBACR;qBACF;iBACF;gBACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map index ba2416f7ba..a5b12d5a7f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map @@ -1 +1 @@ -{"version":3,"file":"explicit-member-accessibility.js","sourceRoot":"","sources":["../../src/rules/explicit-member-accessibility.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"explicit-member-accessibility.js","sourceRoot":"","sources":["../../src/rules/explicit-member-accessibility.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js index 61858dcc29..2940b8571c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js @@ -194,15 +194,18 @@ exports.default = util.createRule({ * Checks if a function name is allowed and should not be checked. */ function isAllowedName(node) { + var _a; if (!node || !options.allowedNames || !options.allowedNames.length) { return false; } - if (node.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator) { - return (node.id.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + if (node.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator || + node.type === experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration) { + return (((_a = node.id) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.Identifier && options.allowedNames.includes(node.id.name)); } else if (node.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition || - node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition) { + node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition || + (node.type === experimental_utils_1.AST_NODE_TYPES.Property && node.method)) { if (node.key.type === experimental_utils_1.AST_NODE_TYPES.Literal && typeof node.key.value === 'string') { return options.allowedNames.includes(node.key.value); @@ -327,6 +330,9 @@ exports.default = util.createRule({ */ function ancestorHasReturnType(node) { let ancestor = node.parent; + if ((ancestor === null || ancestor === void 0 ? void 0 : ancestor.type) === experimental_utils_1.AST_NODE_TYPES.Property) { + ancestor = ancestor.value; + } // if the ancestor is not a return, then this function was not returned at all, so we can exit early const isReturnStatement = (ancestor === null || ancestor === void 0 ? void 0 : ancestor.type) === experimental_utils_1.AST_NODE_TYPES.ReturnStatement; const isBodylessArrow = (ancestor === null || ancestor === void 0 ? void 0 : ancestor.type) === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression && @@ -395,7 +401,7 @@ exports.default = util.createRule({ return; } checkedFunctions.add(node); - if (isAllowedName(node.parent) || ancestorHasReturnType(node)) { + if (isAllowedName(node) || ancestorHasReturnType(node)) { return; } explicitReturnTypeUtils_1.checkFunctionReturnType(node, options, sourceCode, loc => { diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map index 564b7928fe..9f4628a20c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-module-boundary-types.js.map @@ -1 +1 @@ -{"version":3,"file":"explicit-module-boundary-types.js","sourceRoot":"","sources":["../../src/rules/explicit-module-boundary-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"explicit-module-boundary-types.js","sourceRoot":"","sources":["../../src/rules/explicit-module-boundary-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map index a677e9d2fc..0df60d8ebd 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map @@ -1 +1 @@ -{"version":3,"file":"func-call-spacing.js","sourceRoot":"","sources":["../../src/rules/func-call-spacing.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"func-call-spacing.js","sourceRoot":"","sources":["../../src/rules/func-call-spacing.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map index 6f0c20ea05..c330925021 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map @@ -1 +1 @@ -{"version":3,"file":"BinarySearchTree.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/BinarySearchTree.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;;;;AAGlG,0FAAmD;AASnD;;;;GAIG;AACH,MAAa,gBAAgB;IAA7B;QACU,WAAM,GAAG,mCAAU,EAAa,CAAC;IAwC3C,CAAC;IAtCC;;OAEG;IACI,MAAM,CAAC,GAAW,EAAE,KAAgB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC9C;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAErC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAa,EAAE,GAAW;QAC3C,+DAA+D;QAC/D,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC;SACjB;IACH,CAAC;CACF;AAzCD,4CAyCC"} \ No newline at end of file +{"version":3,"file":"BinarySearchTree.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/BinarySearchTree.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;;;;AAGlG,0FAAmD;AAQnD;;;;GAIG;AACH,MAAa,gBAAgB;IAA7B;QACU,WAAM,GAAG,mCAAU,EAAa,CAAC;IAwC3C,CAAC;IAtCC;;OAEG;IACI,MAAM,CAAC,GAAW,EAAE,KAAgB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC9C;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAW;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAErC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAa,EAAE,GAAW;QAC3C,+DAA+D;QAC/D,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,EAAE,CAAC;SACjB;IACH,CAAC;CACF;AAzCD,4CAyCC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map index dc3aa66715..99b2d99f09 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map @@ -1 +1 @@ -{"version":3,"file":"OffsetStorage.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/OffsetStorage.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"OffsetStorage.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/OffsetStorage.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map index 7bc04ad441..ec5438a3f2 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map @@ -1 +1 @@ -{"version":3,"file":"TokenInfo.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/TokenInfo.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;AAKlG;;GAEG;AACH,MAAa,SAAS;IAIpB,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtC;YACD,IACE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5B,UAAU,CAAC,IAAI;qBACZ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC5D,IAAI,EAAE,EACT;gBACA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACpC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,IAAI,GAAG,EAAE,CACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,mBAAmB,CACxB,KAAqC;QAErC,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IACjE,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,KAAqB;QAC7C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAqB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAC/B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EACvC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC;CACF;AAtDD,8BAsDC"} \ No newline at end of file +{"version":3,"file":"TokenInfo.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/TokenInfo.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,kGAAkG;;;AAIlG;;GAEG;AACH,MAAa,SAAS;IAIpB,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAChE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtC;YACD,IACE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5B,UAAU,CAAC,IAAI;qBACZ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBAC5D,IAAI,EAAE,EACT;gBACA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACpC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,IAAI,GAAG,EAA0B,CAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,mBAAmB,CACxB,KAAqC;QAErC,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IACjE,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,KAAqB;QAC7C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAqB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAC/B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EACvC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC;CACF;AAtDD,8BAsDC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js index c43a8a3731..2819312c7c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js @@ -1091,16 +1091,15 @@ exports.default = util_1.createRule({ ignoredNodes.forEach(ignoreNode); addParensIndent(sourceCode.ast.tokens); /* - * Create a Map from (tokenOrComment) => (precedingToken). + * Create a Map from (token) => (precedingToken). * This is necessary because sourceCode.getTokenBefore does not handle a comment as an argument correctly. */ const precedingTokens = sourceCode.ast.comments.reduce((commentMap, comment) => { - const tokenOrCommentBefore = sourceCode.getTokenBefore(comment, { + var _a; + const tokenBefore = sourceCode.getTokenBefore(comment, { includeComments: true, }); - return commentMap.set(comment, commentMap.has(tokenOrCommentBefore) - ? commentMap.get(tokenOrCommentBefore) - : tokenOrCommentBefore); + return commentMap.set(comment, (_a = commentMap.get(tokenBefore)) !== null && _a !== void 0 ? _a : tokenBefore); }, new WeakMap()); sourceCode.lines.forEach((_, lineIndex) => { const lineNumber = lineIndex + 1; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map index 5556626d7f..220cce90cb 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,eAAe;AACf,gFAAgF;;AAEhF,8EAK+C;AAG/C,mDAAgD;AAChD,2CAAwC;AACxC,qCAcoB;AAEpB,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAC3D,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,mCAAc,CAAC,oBAAoB;IACnC,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,uBAAuB;IACtC,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,WAAW;IAC1B,mCAAc,CAAC,SAAS;IACxB,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,qBAAqB;IACpC,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,UAAU;IACzB,mCAAc,CAAC,WAAW;IAC1B,mCAAc,CAAC,OAAO;IACtB,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,OAAO;IACtB,mCAAc,CAAC,QAAQ;IACvB,mCAAc,CAAC,WAAW;IAC1B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,KAAK;IACpB,mCAAc,CAAC,UAAU;IACzB,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,wBAAwB;IACvC,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,sBAAsB;IACrC,mCAAc,CAAC,UAAU;IACzB,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,OAAO;IACtB,mCAAc,CAAC,wBAAwB;IACvC,mCAAc,CAAC,sBAAsB;IACrC,mCAAc,CAAC,oBAAoB;IACnC,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,sBAAsB;IACrC,mCAAc,CAAC,wBAAwB;IAEvC,qDAAqD;IACrD,mCAAc,CAAC,aAAa;IAE5B,cAAc;IACd,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,aAAa;IAE5B,uCAAuC;IACvC,mCAAc,CAAC,uBAAuB;IACtC,mCAAc,CAAC,0BAA0B;IACzC,mCAAc,CAAC,WAAW;IAC1B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,0BAA0B;IACzC,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,+BAA+B;IAC9C,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,6BAA6B;IAC5C,mCAAc,CAAC,iBAAiB;IAChC,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,yBAAyB;IACxC,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,WAAW;IAC1B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,sBAAsB;IACrC,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,kBAAkB;IACjC,mCAAc,CAAC,yBAAyB;IACxC,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,YAAY;IAC3B,mCAAc,CAAC,iBAAiB;IAChC,cAAc;IACd,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,mBAAmB;IAClC,aAAa;IACb,mCAAc,CAAC,mBAAmB;IAClC,mCAAc,CAAC,eAAe;IAC9B,iBAAiB;IACjB,mCAAc,CAAC,UAAU;IACzB,mCAAc,CAAC,UAAU;IACzB,mCAAc,CAAC,WAAW;IAC1B,mCAAc,CAAC,gBAAgB;IAC/B,mCAAc,CAAC,aAAa;IAC5B,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,0BAA0B;IACzC,mCAAc,CAAC,4BAA4B;IAC3C,mCAAc,CAAC,eAAe;IAC9B,mCAAc,CAAC,WAAW;CAC3B,CAAC,CAAC;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,mCAAc,CAAC,OAAO;IACtB,mCAAc,CAAC,cAAc;IAC7B,mCAAc,CAAC,UAAU;CAC1B,CAAC,CAAC;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC;;;;;;;;;;;GAWG;AAEH,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE;QACL;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,CAAC;SACX;QACD;YACE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;SACvB;KACF;CACF,CAAC;AA0CF,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE;YACN;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,CAAC,KAAK,CAAC;qBACd;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;qBACX;iBACF;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,CAAC;qBACX;oBACD,kBAAkB,EAAE;wBAClB,KAAK,EAAE;4BACL,mBAAmB;4BACnB;gCACE,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE;oCACV,GAAG,EAAE,mBAAmB;oCACxB,GAAG,EAAE,mBAAmB;oCACxB,KAAK,EAAE,mBAAmB;iCAC3B;gCACD,oBAAoB,EAAE,KAAK;6BAC5B;yBACF;qBACF;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,CAAC;qBACX;oBACD,gBAAgB,EAAE;wBAChB,KAAK,EAAE;4BACL;gCACE,IAAI,EAAE,SAAS;gCACf,OAAO,EAAE,CAAC;6BACX;4BACD;gCACE,IAAI,EAAE,CAAC,KAAK,CAAC;6BACd;yBACF;qBACF;oBACD,mBAAmB,EAAE;wBACnB,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,UAAU,EAAE,mBAAmB;4BAC/B,IAAI,EAAE;gCACJ,IAAI,EAAE,SAAS;gCACf,OAAO,EAAE,CAAC;6BACX;yBACF;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;oBACD,kBAAkB,EAAE;wBAClB,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,UAAU,EAAE,mBAAmB;4BAC/B,IAAI,EAAE;gCACJ,IAAI,EAAE,SAAS;gCACf,OAAO,EAAE,CAAC;6BACX;yBACF;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,SAAS,EAAE,mBAAmB;yBAC/B;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;oBACD,eAAe,EAAE,mBAAmB;oBACpC,gBAAgB,EAAE,mBAAmB;oBACrC,iBAAiB,EAAE,mBAAmB;oBACtC,sBAAsB,EAAE;wBACtB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;oBACD,YAAY,EAAE;wBACZ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,GAAG,EAAE;gCACH,OAAO,EAAE,QAAQ;6BAClB;yBACF;qBACF;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,KAAK;qBACf;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,QAAQ,EAAE;YACR,gBAAgB,EACd,4DAA4D;SAC/D;KACF;IACD,cAAc,EAAE;QACd,oDAAoD;QACpD,CAAC;QACD;YACE,kDAAkD;YAClD,2FAA2F;YAC3F,UAAU,EAAE,CAAC;YACb,kBAAkB,EAAE;gBAClB,GAAG,EAAE,uBAAuB;gBAC5B,GAAG,EAAE,uBAAuB;gBAC5B,KAAK,EAAE,uBAAuB;aAC/B;YACD,aAAa,EAAE,CAAC;YAChB,mBAAmB,EAAE;gBACnB,UAAU,EAAE,wBAAwB;gBACpC,IAAI,EAAE,4BAA4B;aACnC;YACD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,wBAAwB;gBACpC,IAAI,EAAE,4BAA4B;aACnC;YACD,cAAc,EAAE;gBACd,SAAS,EAAE,wBAAwB;aACpC;YACD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,sBAAsB,EAAE,KAAK;YAC7B,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,KAAK;SACtB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QACvC,MAAM,UAAU,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1D,MAAM,UAAU,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAW,CAAC;QAE1D,MAAM,OAAO,GAAG,WAA6B,CAAC;QAC9C,IACE,OAAO,WAAY,CAAC,kBAAkB,KAAK,QAAQ;YACnD,WAAY,CAAC,kBAAkB,KAAK,OAAO,EAC3C;YACA,qDAAqD;YACrD,OAAO,CAAC,kBAAkB,GAAG;gBAC3B,GAAG,EAAE,WAAY,CAAC,kBAAsC;gBACxD,GAAG,EAAE,WAAY,CAAC,kBAAsC;gBACxD,KAAK,EAAE,WAAY,CAAC,kBAAsC;aAC3D,CAAC;SACH;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,6BAAa,CAC/B,SAAS,EACT,UAAU,EACV,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACpC,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,OAAO,EAAkB,CAAC;QAEtD;;;;;;WAMG;QACH,SAAS,sBAAsB,CAC7B,cAAsB,EACtB,YAAoB,EACpB,UAAkB;YAElB,MAAM,iBAAiB,GAAG,GAAG,cAAc,IAAI,UAAU,GACvD,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAC9B,EAAE,CAAC,CAAC,gBAAgB;YACpB,MAAM,eAAe,GAAG,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe;YAChF,MAAM,aAAa,GAAG,MAAM,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,cAAc;YACzE,IAAI,cAAc,CAAC;YAEnB,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB;;;mBAGG;gBACH,cAAc;oBACZ,UAAU,KAAK,OAAO;wBACpB,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,GAAG,YAAY,IAAI,eAAe,EAAE,CAAC;aAC5C;iBAAM,IAAI,UAAU,GAAG,CAAC,EAAE;gBACzB,cAAc;oBACZ,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,aAAa,EAAE,CAAC;aACxE;iBAAM;gBACL,cAAc,GAAG,GAAG,CAAC;aACtB;YACD,OAAO;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,cAAc;aACvB,CAAC;QACJ,CAAC;QAED;;;;WAIG;QACH,SAAS,MAAM,CAAC,KAAqB,EAAE,YAAoB;YACzD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;YAElE,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,kBAAkB;gBAC7B,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;gBACrE,GAAG,EAAE;oBACH,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;oBAChD,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;iBACpE;gBACD,GAAG,CAAC,KAAK;oBACP,OAAO,KAAK,CAAC,gBAAgB,CAC3B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACzD,YAAY,CACb,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED;;;;;WAKG;QACH,SAAS,mBAAmB,CAC1B,KAAqB,EACrB,aAAqB;YAErB,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEpD,OAAO,CACL,WAAW,KAAK,aAAa;gBAC7B,wFAAwF;gBACxF,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED;;;;WAIG;QACH,SAAS,WAAW,CAAC,IAAmB;;YACtC;;eAEG;YACH,IACE,CAAC,IAAI,CAAC,MAAM;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;gBAClD,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;gBACA,OAAO,KAAK,CAAC;aACd;YAED;;;;eAIG;YACH,IAAI,SAAS,SAAG,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAC;YAEpC,OACE,SAAS;gBACT,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBACjD,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAClD,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,oBAAoB;oBACtD,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB;oBACnD,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;oBACpD,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB,CAAC,EACvD;gBACA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;aAC9B;YAED,OAAO,CACL,CAAC,CAAC,SAAS;gBACX,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB;oBACpD,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxD,CAAC,CAAC,SAAS,CAAC,MAAM;gBAClB,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,CACjD,CAAC;QACJ,CAAC;QAED;;;;;WAKG;QACH,SAAS,uBAAuB,CAAC,GAAW;YAC1C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEzE,OAAO,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACjE,CAAC;QAED;;;;;;WAMG;QACH,SAAS,oBAAoB,CAC3B,QAAkC,EAClC,UAA0B,EAC1B,QAAwB,EACxB,MAAuB;YAEvB;;;;eAIG;YACH,SAAS,aAAa,CAAC,OAAsB;gBAC3C,IAAI,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,CAAE,CAAC;gBAEhD,OAAO,0BAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,UAAU,EAAE;oBACzD,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAE,CAAC;iBAC3C;gBACD,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAE,CAAC;YAC1C,CAAC;YAED,yIAAyI;YACzI,OAAO,CAAC,iBAAiB,CACvB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACxC,UAAU,EACV,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;YACF,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAElD,6HAA6H;YAC7H,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE;gBAC1D,OAAO;aACR;YACD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAClC,IAAI,CAAC,OAAO,EAAE;oBACZ,uBAAuB;oBACvB,OAAO;iBACR;gBACD,IAAI,MAAM,KAAK,KAAK,EAAE;oBACpB,sEAAsE;oBACtE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;iBAC7C;gBAED,wEAAwE;gBACxE,IAAI,KAAK,KAAK,CAAC,EAAE;oBACf,OAAO;iBACR;gBACD,IACE,MAAM,KAAK,OAAO;oBAClB,SAAS,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,EACpD;oBACA,OAAO,CAAC,aAAa,CACnB,aAAa,CAAC,YAAa,CAAC,EAC5B,aAAa,CAAC,OAAO,CAAC,CACvB,CAAC;iBACH;qBAAM;oBACL,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC5C,MAAM,2BAA2B,GAC/B,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;oBACpD,MAAM,wBAAwB,GAC5B,eAAe,IAAI,UAAU,CAAC,YAAY,CAAC,eAAe,CAAE,CAAC;oBAE/D,IACE,eAAe;wBACf,wBAAwB;wBACxB,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;4BACnC,uBAAuB,CAAC,wBAAwB,CAAC,KAAK,CAAC;4BACvD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EACzB;wBACA,OAAO,CAAC,iBAAiB,CACvB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5C,2BAA2B,EAC3B,CAAC,CACF,CAAC;qBACH;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,SAAS,sBAAsB,CAAC,IAAmB;YACjD,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,EAAE;gBAC/C,MAAM,eAAe,GAAG,UAAU,CAAC,cAAc,CAC/C,IAAI,EACJ,6BAAsB,CACtB,CAAC;gBAEH,IAAI,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACrD,IAAI,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;gBAEnD,OACE,0BAAmB,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC;oBAC/D,0BAAmB,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,EAC7D;oBACA,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,cAAc,CAAE,CAAC;oBAC5D,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC;iBAC1D;gBAED,OAAO,CAAC,iBAAiB,CACvB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACjD,eAAe,EACf,CAAC,CACF,CAAC;gBAEF;;;;;mBAKG;gBACH,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAEhD,IACE,SAAS;oBACT,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;oBAC3C,uBAAgB,CAAC,SAAS,CAAC,EAC3B;oBACA,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;iBACzD;aACF;QACH,CAAC;QAED;;WAEG;QACH,SAAS,qBAAqB,CAC5B,IAAsD;YAEtD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM;gBACxC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAC7B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EACjB,0BAAmB,CACnB;gBACJ,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC;YACtC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;YAEpD,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,OAAO,CAAC,gBAAgB,CACtB,YAAY,EACZ,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,EACvC,CAAC,CACF,CAAC;YAEF,oBAAoB,CAClB,IAAI,CAAC,SAAS,EACd,YAAY,EACZ,YAAY,EACZ,OAAO,CAAC,cAAc,CAAC,SAAU,CAClC,CAAC;QACJ,CAAC;QAED;;;WAGG;QACH,SAAS,eAAe,CAAC,MAAwB;YAC/C,MAAM,UAAU,GAAqB,EAAE,CAAC;YACxC,MAAM,UAAU,GAAsD,EAAE,CAAC;YAEzE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACzB,yCAAyC;gBACzC,IAAI,0BAAmB,CAAC,SAAS,CAAC,EAAE;oBAClC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC5B;qBAAM,IAAI,0BAAmB,CAAC,SAAS,CAAC,EAAE;oBACzC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,EAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;iBACnE;YACH,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE9B,wIAAwI;gBACxI,IACE,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC/B,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAChC;oBACA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CACnD,CAAC;oBAEF,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAClC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,EAAE;4BAChE,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;yBAC/C;oBACH,CAAC,CAAC,CAAC;iBACJ;gBAED,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACH,SAAS,UAAU,CAAC,IAAmB;YACrC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CACtD,CAAC;YAEF,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,EAAE;oBAC9D,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAE9D,IAAI,KAAK,KAAK,gBAAgB,EAAE;wBAC9B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;qBAC5B;yBAAM;wBACL,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;qBACtD;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;;WAIG;QACH,SAAS,wBAAwB,CAC/B,KAAqB,EACrB,QAAuB;YAEvB,IAAI,IAAI,GAA8B,QAAQ,CAAC;YAE/C,OACE,IAAI,CAAC,MAAM;gBACX,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACvC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EACzC;gBACA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;aACpB;YACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YAEnB,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/D,CAAC;QAED;;;;;WAKG;QACH,SAAS,oBAAoB,CAC3B,UAA0B,EAC1B,WAA2B;YAE3B,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/C,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAEnD,IACE,cAAc,KAAK,eAAe;gBAClC,cAAc,KAAK,eAAe,GAAG,CAAC,EACtC;gBACA,OAAO,KAAK,CAAC;aACd;YAED,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,EAAE,EAAE,IAAI,EAAE;gBAClE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAChD,OAAO,IAAI,CAAC;iBACb;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzC,MAAM,mBAAmB,GAA0B;YACjD,+BAA+B,CAC7B,IAAsD;;gBAEtD,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACvD,MAAM,cAAc,GAAG,UAAU,CAAC,aAAa,OAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,cAAc,EACzD,4BAAqB,CACrB,CAAC;gBAEH,oBAAoB,CAClB,IAAI,CAAC,QAAQ,EACb,cAAc,EACd,cAAc,EACd,OAAO,CAAC,eAAe,CACxB,CAAC;YACJ,CAAC;YAED,uBAAuB,CAAC,IAAI;gBAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBAEnD,IAAI,0BAAmB,CAAC,UAAU,CAAC,EAAE;oBACnC,MAAM,YAAY,GAAG,UAAU,CAAC;oBAChC,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAC5C,IAAI,CAAC,IAAI,EACT,0BAAmB,CACnB,CAAC;oBAEH,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAClC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAClC,oBAAoB,CAClB,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,YAAY,EACZ,OAAO,CAAC,kBAAkB,CAAC,UAAW,CACvC,CAAC;iBACH;gBACD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,oBAAoB,CAAC,IAAI;gBACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,oBAAoB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CACtC,CAAC;gBAEH,OAAO,CAAC,iBAAiB,CACvB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAClC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAClC,CAAC,CACF,CAAC;gBACF,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC,CAAC;YAC3D,CAAC;YAED,qCAAqC,CACnC,IAA4D;gBAE5D,MAAM,QAAQ,GAAG,UAAU,CAAC,oBAAoB,CAC9C,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CACtC,CAAC;gBAEH;;;;mBAIG;gBAEH,MAAM,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;gBAE/D,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC9B,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBACxC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,2BAA2B,CACzB,IAAkD;gBAElD,IAAI,gBAAgB,CAAC;gBAErB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC3C,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;iBAC1C;qBAAM,IACL,IAAI,CAAC,MAAM;oBACX,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;wBACrD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,uBAAuB,CAAC,EAC9D;oBACA,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;iBACpD;qBAAM,IACL,IAAI,CAAC,MAAM;oBACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,EACvD;oBACA,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;iBACrD;qBAAM;oBACL,gBAAgB,GAAG,CAAC,CAAC;iBACtB;gBAED;;;mBAGG;gBACH,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAChE,OAAO,CAAC,gBAAgB,CACtB,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,EAC/B,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EACrC,CAAC,CACF,CAAC;iBACH;gBACD,oBAAoB,CAClB,IAAI,CAAC,IAAI,EACT,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,EAC/B,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,EAC9B,gBAAiB,CAClB,CAAC;YACJ,CAAC;YAED,cAAc,EAAE,qBAAqB;YAErC,2DAA2D,CACzD,IAA0D;gBAE1D,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACnD,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAC5C,IAAI,CAAC,UAAW,EAChB,6BAAsB,CACtB,CAAC;gBAEH,OAAO,CAAC,iBAAiB,CACvB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC3C,UAAU,EACV,CAAC,CACF,CAAC;YACJ,CAAC;YAED,qBAAqB,CAAC,IAAI;gBACxB,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBAEnD,8DAA8D;gBAC9D,UAAU;gBACV,sBAAsB;gBACtB,sBAAsB;gBACtB,qBAAqB;gBACrB,IACE,CAAC,OAAO,CAAC,sBAAsB;oBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;oBACzD,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,EAC1C;oBACA,MAAM,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,CACvD,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAClE,CAAC;oBACH,MAAM,UAAU,GAAG,UAAU,CAAC,oBAAoB,CAChD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAClE,CAAC;oBAEH,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CACnD,iBAAiB,CACjB,CAAC;oBACH,MAAM,mBAAmB,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,CAAE,CAAC;oBACnE,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa,CAAC,UAAU,CAAE,CAAC;oBAElE,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC3D,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAEpD,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAE9D;;;;;;;;;uBASG;oBACH,IACE,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;wBAChC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAClC;wBACA,OAAO,CAAC,gBAAgB,CACtB,mBAAmB,EACnB,oBAAoB,EACpB,CAAC,CACF,CAAC;qBACH;yBAAM;wBACL;;;;;;;;2BAQG;wBACH,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;qBAC9D;iBACF;YACH,CAAC;YAED,kEAAkE,EAAE,CAClE,IAI2B,EAC3B,EAAE;gBACF,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,sBAAsB,CAAC,IAAI;gBACzB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;oBAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAC1C,IAAI,EACJ,0BAAmB,CACnB,CAAC;oBAEH,oDAAoD;oBACpD,oBAAoB,CAClB,IAAI,CAAC,UAAU,EACf,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAE,EAC5C,YAAY,EACZ,CAAC,CACF,CAAC;oBAEF,IAAI,IAAI,CAAC,MAAM,EAAE;wBACf,gGAAgG;wBAChG,OAAO,CAAC,iBAAiB,CACvB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACtC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAC9B,CAAC,CACF,CAAC;qBACH;iBACF;YACH,CAAC;YAED,YAAY,CAAC,IAAI;gBACf,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC;gBAE3D,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;iBAChE;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;iBAChE;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;iBAClE;gBACD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,yCAAyC,CACvC,IAAgE;gBAEhE,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;gBAC3D,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAClD,CAAC;gBAEH,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClC,oBAAoB,CAClB,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,YAAY,EACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAW,CAC/B,CAAC;YACJ,CAAC;YAED,WAAW,CAAC,IAAI;gBACd,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxC,IACE,IAAI,CAAC,SAAS;oBACd,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,WAAW,EAClD;oBACA,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACxC;YACH,CAAC;YAED,iBAAiB,CAAC,IAAI;gBACpB,IACE,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,CAC/D,EACD;oBACA,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAC3C,IAAI,EACJ,0BAAmB,CACnB,CAAC;oBACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAC1C,IAAI,EACJ,0BAAmB,CACnB,CAAC;oBAEH,oBAAoB,CAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CACpB,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,CAC/D,EACD,YAAY,EACZ,YAAY,EACZ,OAAO,CAAC,iBAAiB,CAC1B,CAAC;iBACH;gBAED,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CACvC,IAAI,EACJ,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CACrE,CAAC;gBACH,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CACzC,IAAI,EACJ,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,MAAM,CAC9C,CAAC;gBACH,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CACvC,IAAI,EACJ,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAClE,CAAC;gBAEH,IAAI,SAAS,EAAE;oBACb,MAAM,GAAG,GACP,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBACf,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAE3B,OAAO,CAAC,iBAAiB,CACvB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACzB,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAC9B,CAAC,CACF,CAAC;iBACH;YACH,CAAC;YAED,qDAAqD,CACnD,IAGyB;gBAEzB,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBACtE,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACvD,MAAM,mBAAmB,GAAG,UAAU,CAAC,oBAAoB,CACzD,MAAM,EACN,IAAI,CAAC,QAAQ,EACb,6BAAsB,CACtB,CAAC;gBACH,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CACnD,mBAAmB,CACnB,CAAC;gBAEH,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAClD,MAAM,EACN,IAAI,CAAC,QAAQ,EACb,EAAE,MAAM,EAAE,0BAAmB,EAAE,CAChC,CAAC,MAAM,CAAC;gBACT,MAAM,gBAAgB,GAAG,gBAAgB;oBACvC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,GAAG,CAAC,EAAE,CAAE;oBACpE,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;gBACtC,MAAM,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAE,CAAC;gBACxE,MAAM,kBAAkB,GAAG,UAAU;oBACnC,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,oBAAoB,CAAC;gBAEzB,IAAI,UAAU,EAAE;oBACd,sFAAsF;oBACtF,OAAO,CAAC,gBAAgB,CACtB,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,EAC9B,mBAAmB,EACnB,CAAC,CACF,CAAC;oBACF,OAAO,CAAC,iBAAiB,CACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,mBAAmB,EACnB,CAAC,CACF,CAAC;iBACH;gBAED;;;;;;;;mBAQG;gBACH,MAAM,UAAU,GACd,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;oBAChE,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,gBAAgB,CAAC;gBAEvB,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE;oBAChD,mHAAmH;oBACnH,OAAO,CAAC,gBAAgB,CACtB,mBAAmB,EACnB,UAAU,EACV,OAAO,CAAC,gBAAgB,CACzB,CAAC;oBAEF;;;uBAGG;oBACH,OAAO,CAAC,gBAAgB,CACtB,oBAAoB,EACpB,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,EAC7C,OAAO,CAAC,gBAAgB,CACzB,CAAC;iBACH;qBAAM;oBACL,6FAA6F;oBAC7F,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;oBACzC,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;oBAE1C,oGAAoG;oBACpG,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;oBAC7D,OAAO,CAAC,gBAAgB,CACtB,oBAAoB,EACpB,mBAAmB,EACnB,CAAC,CACF,CAAC;iBACH;YACH,CAAC;YAED,aAAa,CAAC,IAAI;gBAChB,mHAAmH;gBACnH,IACE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;oBACzB,CAAC,0BAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;wBAClD,0BAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC,CAAC,EACzD;oBACA,qBAAqB,CAAC,IAAI,CAAC,CAAC;iBAC7B;YACH,CAAC;YAED,iCAAiC,CAC/B,IAAwD;gBAExD,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACrD,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAC3C,IAAI,CAAC,UAAU,CAAC,MAAM;oBACpB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC7C,CAAC,CAAC,YAAY,EAChB,0BAAmB,CACnB,CAAC;gBAEH,oBAAoB,CAClB,IAAI,CAAC,UAAU,EACf,YAAY,EACZ,YAAY,EACZ,OAAO,CAAC,gBAAgB,CACzB,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,IAAI;gBACX,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;oBAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,oBAAoB,CAC3C,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,KAAK,EACV,mBAAY,CACZ,CAAC;oBAEH,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAE,CAAC,CAAC;iBACvD;YACH,CAAC;YAED,eAAe,CAAC,IAAI;gBAClB,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAC3C,IAAI,CAAC,YAAY,EACjB,0BAAmB,CACnB,CAAC;gBACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;gBAEpD,OAAO,CAAC,iBAAiB,CACvB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,YAAY,EACZ,OAAO,CAAC,UAAU,CACnB,CAAC;gBAEF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACrB,UAAU;yBACP,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE;wBACjE,eAAe,EAAE,IAAI;wBACrB,MAAM,EAAE,qBAAc;qBACvB,CAAC;yBACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;iBACjD;YACH,CAAC;YAED,UAAU,CAAC,IAAI;gBACb,IACE,CAAC,CACC,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;oBAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,CAC1D,EACD;oBACA,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;oBACpD,MAAM,qBAAqB,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;oBAE9D,OAAO,CAAC,iBAAiB,CACvB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACtD,WAAW,EACX,CAAC,CACF,CAAC;iBACH;YACH,CAAC;YAED,eAAe,CAAC,IAAI;gBAClB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;oBACpC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACzC,MAAM,gBAAgB,GACpB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;wBACzD,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC;wBACzC,CAAC,CAAC,IAAI,CAAC;oBAEX,OAAO,CAAC,iBAAiB,CACvB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5C,gBAAgB,EAChB,CAAC,CACF,CAAC;oBACF,OAAO,CAAC,gBAAgB,CACtB,UAAU,CAAC,aAAa,CAAC,SAAS,CAAE,EACpC,gBAAgB,EAChB,CAAC,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YAED,mBAAmB,CAAC,IAAI;gBACtB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,OAAO;iBACR;gBAED,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACvD,OAAO,CAAC,kBAAkB,EAC1B,IAAI,CAAC,IAAI,CACV;oBACC,CAAC,CAAE,OAAO,CAAC,kBAA4C,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClE,CAAC,CAAC,uBAAuB,CAAC;gBAE5B,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACnD,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;gBAEjD,IAAI,cAAc,KAAK,OAAO,EAAE;oBAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBAChC,oBAAoB,CAClB,IAAI,CAAC,YAAY,EACjB,UAAU,EACV,SAAS,EACT,OAAO,CACR,CAAC;wBACF,OAAO;qBACR;oBAED,cAAc,GAAG,uBAAuB,CAAC;iBAC1C;gBAED,IACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI;oBAC9D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EACnB;oBACA;;;;;;;;;;;;;;;;;;uBAkBG;oBACH,OAAO,CAAC,iBAAiB,CACvB,IAAI,CAAC,KAAK,EACV,UAAU,EACV,cAAwB,EACxB,IAAI,CACL,CAAC;iBACH;qBAAM;oBACL,OAAO,CAAC,iBAAiB,CACvB,IAAI,CAAC,KAAK,EACV,UAAU,EACV,cAAwB,CACzB,CAAC;iBACH;gBAED,IAAI,uBAAgB,CAAC,SAAS,CAAC,EAAE;oBAC/B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBAChC;YACH,CAAC;YAED,kBAAkB,CAAC,IAAI;gBACrB,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAC7C,IAAI,CAAC,IAAI,EACT,6BAAsB,CACtB,CAAC;oBACH,MAAM,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC;oBAEpE,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;oBACnC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;oBACxC,OAAO,CAAC,iBAAiB,CACvB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5C,aAAa,EACb,CAAC,CACF,CAAC;oBACF,OAAO,CAAC,gBAAgB,CACtB,aAAa,EACb,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAChC,CAAC,CACF,CAAC;iBACH;YACH,CAAC;YAED,qBAAqB,CAAC,IAA2B;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAM,CAAC;gBAC9B,MAAM,WAAW,GAAG,UAAU,CAAC,oBAAoB,CACjD,IAAI,CAAC,IAAI,EACT,SAAS,EACT,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,CAClE,CAAC;gBAEH,OAAO,CAAC,iBAAiB,CACvB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC1C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,CAAC,CACF,CAAC;YACJ,CAAC;YAED,UAAU,CAAC,IAAI;gBACb,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,oBAAoB,CAClB,IAAI,CAAC,QAAQ,EACb,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAE,EAC9C,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAE,EAC9C,CAAC,CACF,CAAC;iBACH;YACH,CAAC;YAED,iBAAiB,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACnD,IAAI,YAAY,CAAC;gBAEjB,IAAI,IAAI,CAAC,WAAW,EAAE;oBACpB,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAE,CAAC;oBAC3D,OAAO,CAAC,gBAAgB,CACtB,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,EAC9B,YAAY,EACZ,CAAC,CACF,CAAC;iBACH;qBAAM;oBACL,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;iBAC/C;gBACD,OAAO,CAAC,iBAAiB,CACvB,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAC/B,CAAC;gBACF,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,iBAAiB,CAAC,IAAI;gBACpB,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAElD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,sBAAsB,CAAC,IAAI;gBACzB,MAAM,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC;gBACrD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAE,CAAC;gBAEpD,OAAO,CAAC,iBAAiB,CACvB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,YAAY,EACZ,CAAC,CACF,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,IAAmB;gBACrB,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAElD,2FAA2F;gBAC3F,IAAI,UAAU,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;oBACzD,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;iBACtD;YACH,CAAC;SACF,CAAC;QAEF,MAAM,iBAAiB,GAGjB,EAAE,CAAC;QAET;;;;;WAKG;QACH,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM;QAG7D;;;;;;;;;;;;;;;WAeG;QACH,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAEvC,CAAC;YACF,4EAA4E;YAC5E,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9D,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH,CAAC;QAEF,+FAA+F;QAC/F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;QAE9C;;;WAGG;QACH,SAAS,iBAAiB,CAAC,IAAmB;YAC5C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CACtD,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,CAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC,EACpE,EAAE,CACH,CAAC;QAEF;;;;;;;WAOG;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,oBAAoB,EAAE;YAC1D,QAAQ,CAAC,IAAmB;gBAC1B,kGAAkG;gBAClG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/B,iBAAiB,CAAC,IAAI,CAAC,CAAC;iBACzB;YACH,CAAC;YACD,cAAc;gBACZ,kEAAkE;gBAClE,IAAI,OAAO,CAAC,cAAc,EAAE;oBAC1B,UAAU;yBACP,cAAc,EAAE;yBAChB,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;iBACrD;gBAED,wEAAwE;gBACxE,iBAAiB;qBACd,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBACpD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEzD,0FAA0F;gBAC1F,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAEjC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEvC;;;mBAGG;gBACH,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CACpD,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE;oBACtB,MAAM,oBAAoB,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE;wBAC9D,eAAe,EAAE,IAAI;qBACtB,CAAE,CAAC;oBAEJ,OAAO,UAAU,CAAC,GAAG,CACnB,OAAO,EACP,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC;wBAClC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC;wBACtC,CAAC,CAAC,oBAAoB,CACzB,CAAC;gBACJ,CAAC,EACD,IAAI,OAAO,EAAE,CACd,CAAC;gBAEF,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;oBACxC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;oBAEjC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;wBACtD,yCAAyC;wBACzC,OAAO;qBACR;oBAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAC5D,UAAU,CACV,CAAC;oBAEH,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;wBAClD,qGAAqG;wBACrG,OAAO;qBACR;oBAED,2EAA2E;oBAC3E,IACE,mBAAmB,CACjB,gBAAgB,EAChB,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAC3C,EACD;wBACA,OAAO;qBACR;oBAED,IAAI,qBAAc,CAAC,gBAAgB,CAAC,EAAE;wBACpC,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAC1D,MAAM,UAAU,GAAG,WAAW;4BAC5B,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAE;4BACxC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAE7B,MAAM,kBAAkB,GACtB,WAAW;4BACX,CAAC,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;wBACvD,MAAM,iBAAiB,GACrB,UAAU,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;wBAEpE,2GAA2G;wBAC3G,IACE,CAAC,kBAAkB;4BACjB,mBAAmB,CACjB,gBAAgB,EAChB,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CACtC,CAAC;4BACJ,CAAC,iBAAiB;gCAChB,mBAAmB,CACjB,gBAAgB,EAChB,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACrC,CAAC,EACJ;4BACA,OAAO;yBACR;qBACF;oBAED,uCAAuC;oBACvC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/indent-new-do-not-use/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js index bdb0d7a291..061e0586a0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js @@ -4,7 +4,7 @@ * This is due to some really funky type conversions between different node types. * This is done intentionally based on the internal implementation of the base indent rule. */ -/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map index 9ec4bd57df..b9e38a7905 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map @@ -1 +1 @@ -{"version":3,"file":"indent.js","sourceRoot":"","sources":["../../src/rules/indent.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"indent.js","sourceRoot":"","sources":["../../src/rules/indent.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js index 3f69b8b273..26902eb4b6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js @@ -11,8 +11,9 @@ const ban_tslint_comment_1 = __importDefault(require("./ban-tslint-comment")); const ban_types_1 = __importDefault(require("./ban-types")); const brace_style_1 = __importDefault(require("./brace-style")); const class_literal_property_style_1 = __importDefault(require("./class-literal-property-style")); +const comma_dangle_1 = __importDefault(require("./comma-dangle")); const comma_spacing_1 = __importDefault(require("./comma-spacing")); -const no_confusing_non_null_assertion_1 = __importDefault(require("./no-confusing-non-null-assertion")); +const consistent_indexed_object_style_1 = __importDefault(require("./consistent-indexed-object-style")); const consistent_type_assertions_1 = __importDefault(require("./consistent-type-assertions")); const consistent_type_definitions_1 = __importDefault(require("./consistent-type-definitions")); const consistent_type_imports_1 = __importDefault(require("./consistent-type-imports")); @@ -32,25 +33,27 @@ const method_signature_style_1 = __importDefault(require("./method-signature-sty const naming_convention_1 = __importDefault(require("./naming-convention")); const no_array_constructor_1 = __importDefault(require("./no-array-constructor")); const no_base_to_string_1 = __importDefault(require("./no-base-to-string")); +const no_confusing_non_null_assertion_1 = __importDefault(require("./no-confusing-non-null-assertion")); +const no_confusing_void_expression_1 = __importDefault(require("./no-confusing-void-expression")); const no_dupe_class_members_1 = __importDefault(require("./no-dupe-class-members")); +const no_duplicate_imports_1 = __importDefault(require("./no-duplicate-imports")); const no_dynamic_delete_1 = __importDefault(require("./no-dynamic-delete")); const no_empty_function_1 = __importDefault(require("./no-empty-function")); const no_empty_interface_1 = __importDefault(require("./no-empty-interface")); const no_explicit_any_1 = __importDefault(require("./no-explicit-any")); -const no_implicit_any_catch_1 = __importDefault(require("./no-implicit-any-catch")); -const no_extraneous_class_1 = __importDefault(require("./no-extraneous-class")); const no_extra_non_null_assertion_1 = __importDefault(require("./no-extra-non-null-assertion")); const no_extra_parens_1 = __importDefault(require("./no-extra-parens")); const no_extra_semi_1 = __importDefault(require("./no-extra-semi")); +const no_extraneous_class_1 = __importDefault(require("./no-extraneous-class")); const no_floating_promises_1 = __importDefault(require("./no-floating-promises")); const no_for_in_array_1 = __importDefault(require("./no-for-in-array")); -const prefer_literal_enum_member_1 = __importDefault(require("./prefer-literal-enum-member")); +const no_implicit_any_catch_1 = __importDefault(require("./no-implicit-any-catch")); const no_implied_eval_1 = __importDefault(require("./no-implied-eval")); const no_inferrable_types_1 = __importDefault(require("./no-inferrable-types")); const no_invalid_this_1 = __importDefault(require("./no-invalid-this")); const no_invalid_void_type_1 = __importDefault(require("./no-invalid-void-type")); -const no_loss_of_precision_1 = __importDefault(require("./no-loss-of-precision")); const no_loop_func_1 = __importDefault(require("./no-loop-func")); +const no_loss_of_precision_1 = __importDefault(require("./no-loss-of-precision")); const no_magic_numbers_1 = __importDefault(require("./no-magic-numbers")); const no_misused_new_1 = __importDefault(require("./no-misused-new")); const no_misused_promises_1 = __importDefault(require("./no-misused-promises")); @@ -69,6 +72,8 @@ const no_unnecessary_condition_1 = __importDefault(require("./no-unnecessary-con const no_unnecessary_qualifier_1 = __importDefault(require("./no-unnecessary-qualifier")); const no_unnecessary_type_arguments_1 = __importDefault(require("./no-unnecessary-type-arguments")); const no_unnecessary_type_assertion_1 = __importDefault(require("./no-unnecessary-type-assertion")); +const no_unnecessary_type_constraint_1 = __importDefault(require("./no-unnecessary-type-constraint")); +const no_unsafe_argument_1 = __importDefault(require("./no-unsafe-argument")); const no_unsafe_assignment_1 = __importDefault(require("./no-unsafe-assignment")); const no_unsafe_call_1 = __importDefault(require("./no-unsafe-call")); const no_unsafe_member_access_1 = __importDefault(require("./no-unsafe-member-access")); @@ -79,11 +84,14 @@ const no_unused_vars_experimental_1 = __importDefault(require("./no-unused-vars- const no_use_before_define_1 = __importDefault(require("./no-use-before-define")); const no_useless_constructor_1 = __importDefault(require("./no-useless-constructor")); const no_var_requires_1 = __importDefault(require("./no-var-requires")); +const non_nullable_type_assertion_style_1 = __importDefault(require("./non-nullable-type-assertion-style")); +const object_curly_spacing_1 = __importDefault(require("./object-curly-spacing")); const prefer_as_const_1 = __importDefault(require("./prefer-as-const")); const prefer_enum_initializers_1 = __importDefault(require("./prefer-enum-initializers")); const prefer_for_of_1 = __importDefault(require("./prefer-for-of")); const prefer_function_type_1 = __importDefault(require("./prefer-function-type")); const prefer_includes_1 = __importDefault(require("./prefer-includes")); +const prefer_literal_enum_member_1 = __importDefault(require("./prefer-literal-enum-member")); const prefer_namespace_keyword_1 = __importDefault(require("./prefer-namespace-keyword")); const prefer_nullish_coalescing_1 = __importDefault(require("./prefer-nullish-coalescing")); const prefer_optional_chain_1 = __importDefault(require("./prefer-optional-chain")); @@ -101,7 +109,9 @@ const restrict_plus_operands_1 = __importDefault(require("./restrict-plus-operan const restrict_template_expressions_1 = __importDefault(require("./restrict-template-expressions")); const return_await_1 = __importDefault(require("./return-await")); const semi_1 = __importDefault(require("./semi")); +const sort_type_union_intersection_members_1 = __importDefault(require("./sort-type-union-intersection-members")); const space_before_function_paren_1 = __importDefault(require("./space-before-function-paren")); +const space_infix_ops_1 = __importDefault(require("./space-infix-ops")); const strict_boolean_expressions_1 = __importDefault(require("./strict-boolean-expressions")); const switch_exhaustiveness_check_1 = __importDefault(require("./switch-exhaustiveness-check")); const triple_slash_reference_1 = __importDefault(require("./triple-slash-reference")); @@ -118,7 +128,9 @@ exports.default = { 'ban-types': ban_types_1.default, 'brace-style': brace_style_1.default, 'class-literal-property-style': class_literal_property_style_1.default, + 'comma-dangle': comma_dangle_1.default, 'comma-spacing': comma_spacing_1.default, + 'consistent-indexed-object-style': consistent_indexed_object_style_1.default, 'consistent-type-assertions': consistent_type_assertions_1.default, 'consistent-type-definitions': consistent_type_definitions_1.default, 'consistent-type-imports': consistent_type_imports_1.default, @@ -128,6 +140,7 @@ exports.default = { 'explicit-member-accessibility': explicit_member_accessibility_1.default, 'explicit-module-boundary-types': explicit_module_boundary_types_1.default, 'func-call-spacing': func_call_spacing_1.default, + indent: indent_1.default, 'init-declarations': init_declarations_1.default, 'keyword-spacing': keyword_spacing_1.default, 'lines-between-class-members': lines_between_class_members_1.default, @@ -138,7 +151,9 @@ exports.default = { 'no-array-constructor': no_array_constructor_1.default, 'no-base-to-string': no_base_to_string_1.default, 'no-confusing-non-null-assertion': no_confusing_non_null_assertion_1.default, + 'no-confusing-void-expression': no_confusing_void_expression_1.default, 'no-dupe-class-members': no_dupe_class_members_1.default, + 'no-duplicate-imports': no_duplicate_imports_1.default, 'no-dynamic-delete': no_dynamic_delete_1.default, 'no-empty-function': no_empty_function_1.default, 'no-empty-interface': no_empty_interface_1.default, @@ -174,16 +189,20 @@ exports.default = { 'no-unnecessary-qualifier': no_unnecessary_qualifier_1.default, 'no-unnecessary-type-arguments': no_unnecessary_type_arguments_1.default, 'no-unnecessary-type-assertion': no_unnecessary_type_assertion_1.default, + 'no-unnecessary-type-constraint': no_unnecessary_type_constraint_1.default, + 'no-unsafe-argument': no_unsafe_argument_1.default, 'no-unsafe-assignment': no_unsafe_assignment_1.default, 'no-unsafe-call': no_unsafe_call_1.default, 'no-unsafe-member-access': no_unsafe_member_access_1.default, 'no-unsafe-return': no_unsafe_return_1.default, 'no-unused-expressions': no_unused_expressions_1.default, - 'no-unused-vars-experimental': no_unused_vars_experimental_1.default, 'no-unused-vars': no_unused_vars_1.default, + 'no-unused-vars-experimental': no_unused_vars_experimental_1.default, 'no-use-before-define': no_use_before_define_1.default, 'no-useless-constructor': no_useless_constructor_1.default, 'no-var-requires': no_var_requires_1.default, + 'non-nullable-type-assertion-style': non_nullable_type_assertion_style_1.default, + 'object-curly-spacing': object_curly_spacing_1.default, 'prefer-as-const': prefer_as_const_1.default, 'prefer-enum-initializers': prefer_enum_initializers_1.default, 'prefer-for-of': prefer_for_of_1.default, @@ -193,28 +212,29 @@ exports.default = { 'prefer-namespace-keyword': prefer_namespace_keyword_1.default, 'prefer-nullish-coalescing': prefer_nullish_coalescing_1.default, 'prefer-optional-chain': prefer_optional_chain_1.default, - 'prefer-readonly-parameter-types': prefer_readonly_parameter_types_1.default, 'prefer-readonly': prefer_readonly_1.default, + 'prefer-readonly-parameter-types': prefer_readonly_parameter_types_1.default, 'prefer-reduce-type-parameter': prefer_reduce_type_parameter_1.default, 'prefer-regexp-exec': prefer_regexp_exec_1.default, 'prefer-string-starts-ends-with': prefer_string_starts_ends_with_1.default, 'prefer-ts-expect-error': prefer_ts_expect_error_1.default, 'promise-function-async': promise_function_async_1.default, + quotes: quotes_1.default, 'require-array-sort-compare': require_array_sort_compare_1.default, 'require-await': require_await_1.default, 'restrict-plus-operands': restrict_plus_operands_1.default, 'restrict-template-expressions': restrict_template_expressions_1.default, 'return-await': return_await_1.default, + semi: semi_1.default, + 'sort-type-union-intersection-members': sort_type_union_intersection_members_1.default, 'space-before-function-paren': space_before_function_paren_1.default, + 'space-infix-ops': space_infix_ops_1.default, 'strict-boolean-expressions': strict_boolean_expressions_1.default, 'switch-exhaustiveness-check': switch_exhaustiveness_check_1.default, 'triple-slash-reference': triple_slash_reference_1.default, 'type-annotation-spacing': type_annotation_spacing_1.default, + typedef: typedef_1.default, 'unbound-method': unbound_method_1.default, 'unified-signatures': unified_signatures_1.default, - indent: indent_1.default, - quotes: quotes_1.default, - semi: semi_1.default, - typedef: typedef_1.default, }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map index 3d62e0eeb1..ed032f31a9 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js index 9b4b3311f6..a318ae85db 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js @@ -35,7 +35,8 @@ exports.default = util_1.createRule({ return; } if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSModuleBlock && - ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration && ((_c = node.parent.parent) === null || _c === void 0 ? void 0 : _c.declare)) { + ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration && + ((_c = node.parent.parent) === null || _c === void 0 ? void 0 : _c.declare)) { return; } } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map index 99bf077b78..b000e39279 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/init-declarations.js.map @@ -1 +1 @@ -{"version":3,"file":"init-declarations.js","sourceRoot":"","sources":["../../src/rules/init-declarations.ts"],"names":[],"mappings":";;;;;;AAAA,8EAG+C;AAC/C,2FAA0D;AAC1D,kCAIiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,6DAA6D;YAC/D,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,2BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,2BAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EACT,6DAA6D;YAC/D,cAAc,EACZ,iEAAiE;SACpE;KACF;IACD,cAAc,EAAE,CAAC,QAAQ,CAAC;IAC1B,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,2BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAE5C,OAAO;YACL,0BAA0B,CAAC,IAAkC;;gBAC3D,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,OAAO;qBACR;oBACD,IACE,OAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,aAAa;wBAClD,OAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB,WAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,OAAO,CAAA,EAC3B;wBACA,OAAO;qBACR;iBACF;gBAED,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"init-declarations.js","sourceRoot":"","sources":["../../src/rules/init-declarations.ts"],"names":[],"mappings":";;;;;;AAAA,8EAG+C;AAC/C,2FAA0D;AAC1D,kCAIiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,6DAA6D;YAC/D,QAAQ,EAAE,WAAW;YACrB,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,2BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,MAAA,2BAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EACT,6DAA6D;YAC/D,cAAc,EACZ,iEAAiE;SACpE;KACF;IACD,cAAc,EAAE,CAAC,QAAQ,CAAC;IAC1B,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,2BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAE5C,OAAO;YACL,0BAA0B,CAAC,IAAkC;;gBAC3D,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,OAAO;qBACR;oBACD,IACE,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,aAAa;wBAClD,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB;yBAC/D,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,OAAO,CAAA,EAC3B;wBACA,OAAO;qBACR;iBACF;gBAED,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map index 181f8eea55..c7a487b824 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/keyword-spacing.js.map @@ -1 +1 @@ -{"version":3,"file":"keyword-spacing.js","sourceRoot":"","sources":["../../src/rules/keyword-spacing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,uFAAwD;AACxD,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,yBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,cAAc,EAAE,uCAAuC;YACvD,aAAa,EAAE,sCAAsC;YACrD,gBAAgB,EAAE,yCAAyC;YAC3D,eAAe,EAAE,wCAAwC;SAC1D;KACF;IACD,cAAc,EAAE,CAAC,EAAE,CAAC;IAEpB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,yBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,uCACK,SAAS,KACZ,cAAc,CAAC,IAAI;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAC7B,UAAU,CAAC,aAAa,CACtB,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAC9B,EACD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;gBAClC,uEAAuE;gBACvE,mEAAmE;gBACnE,mFAAmF;gBACnF,kFAAkF;gBAClF,OAAO,CAAC,IAAI,GAAG,oCAAe,CAAC,OAAO,CAAC;gBAEvC,qFAAqF;gBACrF,SAAS,CAAC,iBAAiB,CAAC,OAAgB,CAAC,CAAC;gBAE9C,+EAA+E;gBAC/E,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC9B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"keyword-spacing.js","sourceRoot":"","sources":["../../src/rules/keyword-spacing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,uFAAwD;AACxD,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,MAAA,yBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,cAAc,EAAE,uCAAuC;YACvD,aAAa,EAAE,sCAAsC;YACrD,gBAAgB,EAAE,yCAAyC;YAC3D,eAAe,EAAE,wCAAwC;SAC1D;KACF;IACD,cAAc,EAAE,CAAC,EAAE,CAAC;IAEpB,MAAM,CAAC,OAAO;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,yBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,uCACK,SAAS,KACZ,cAAc,CAAC,IAAI;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAC7B,UAAU,CAAC,aAAa,CACtB,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAC9B,EACD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;gBAClC,uEAAuE;gBACvE,mEAAmE;gBACnE,mFAAmF;gBACnF,kFAAkF;gBAClF,OAAO,CAAC,IAAI,GAAG,oCAAe,CAAC,OAAO,CAAC;gBAEvC,qFAAqF;gBACrF,SAAS,CAAC,iBAAiB,CAAC,OAAgB,CAAC,CAAC;gBAE9C,+EAA+E;gBAC/E,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC9B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js index 7d55e43331..43f3f9f094 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js @@ -29,7 +29,7 @@ const util = __importStar(require("../util")); const schema = util.deepMerge(Object.assign({}, lines_between_class_members_1.default.meta.schema), { 1: { exceptAfterOverload: { - type: 'booleean', + type: 'boolean', default: true, }, }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map index f8300c0e33..a13b80fb96 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/lines-between-class-members.js.map @@ -1 +1 @@ -{"version":3,"file":"lines-between-class-members.js","sourceRoot":"","sources":["../../src/rules/lines-between-class-members.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,+GAAoE;AACpE,8CAAgC;AAKhC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,mBACtB,qCAAQ,CAAC,IAAI,CAAC,MAAM,GACzB;IACE,CAAC,EAAE;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,IAAI;SACd;KACF;CACF,CACF,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM;QACN,QAAQ,QAAE,qCAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,KAAK,EAAE,8CAA8C;YACrD,MAAM,EAAE,4CAA4C;SACrD;KACF;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,mBAAmB,EAAE,IAAI;YACzB,qBAAqB,EAAE,KAAK;SAC7B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;;QACrB,MAAM,KAAK,GAAG,qCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,mBAAmB,GACvB,OAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,mBAAmB,KAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QAE7D,SAAS,UAAU,CAAC,IAAmB;YACrC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,CACjE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,CAAC,IAAI;gBACZ,MAAM,IAAI,GAAG,mBAAmB;oBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEd,KAAK,CAAC,SAAS,iCAAM,IAAI,KAAE,IAAI,IAAG,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"lines-between-class-members.js","sourceRoot":"","sources":["../../src/rules/lines-between-class-members.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,+GAAoE;AACpE,8CAAgC;AAKhC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,mBACtB,qCAAQ,CAAC,IAAI,CAAC,MAAM,GACzB;IACE,CAAC,EAAE;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;KACF;CACF,CACF,CAAC;AAEF,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,yDAAyD;YACtE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,YAAY;QACrB,MAAM;QACN,QAAQ,EAAE,MAAA,qCAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,KAAK,EAAE,8CAA8C;YACrD,MAAM,EAAE,4CAA4C;SACrD;KACF;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,mBAAmB,EAAE,IAAI;YACzB,qBAAqB,EAAE,KAAK;SAC7B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;;QACrB,MAAM,KAAK,GAAG,qCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,mBAAmB,GACvB,CAAA,MAAA,OAAO,CAAC,CAAC,CAAC,0CAAE,mBAAmB,KAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QAE7D,SAAS,UAAU,CAAC,IAAmB;YACrC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,6BAA6B,CACjE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,CAAC,IAAI;gBACZ,MAAM,IAAI,GAAG,mBAAmB;oBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAEd,KAAK,CAAC,SAAS,iCAAM,IAAI,KAAE,IAAI,IAAG,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js index 2faac1c369..68dbb2e706 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js @@ -44,6 +44,31 @@ const definition = { }, additionalProperties: false, }; +const isLastTokenEndOfLine = (token, line) => { + const positionInLine = line.indexOf(token); + return positionInLine === line.length - 1; +}; +const makeFixFunction = ({ optsNone, optsSemi, lastToken, missingDelimiter, lastTokenLine, isSingleLine, }) => { + // if removing is the action but last token is not the end of the line + if (optsNone && + !isLastTokenEndOfLine(lastToken.value, lastTokenLine) && + !isSingleLine) { + return null; + } + return (fixer) => { + if (optsNone) { + // remove the unneeded token + return fixer.remove(lastToken); + } + const token = optsSemi ? ';' : ','; + if (missingDelimiter) { + // add the missing delimiter + return fixer.insertTextAfter(lastToken, token); + } + // correct the current delimiter + return fixer.replaceText(lastToken, token); + }; +}; exports.default = util.createRule({ name: 'member-delimiter-style', meta: { @@ -72,6 +97,9 @@ exports.default = util.createRule({ }, additionalProperties: false, }, + multilineDetection: { + enum: ['brackets', 'last-member'], + }, }), additionalProperties: false, }, @@ -87,6 +115,7 @@ exports.default = util.createRule({ delimiter: 'semi', requireLast: false, }, + multilineDetection: 'brackets', }, ], create(context, [options]) { @@ -123,6 +152,8 @@ exports.default = util.createRule({ if (!lastToken) { return; } + const sourceCodeLines = sourceCode.getLines(); + const lastTokenLine = sourceCodeLines[(lastToken === null || lastToken === void 0 ? void 0 : lastToken.loc.start.line) - 1]; const optsSemi = getOption('semi'); const optsComma = getOption('comma'); const optsNone = getOption('none'); @@ -168,19 +199,14 @@ exports.default = util.createRule({ }, }, messageId, - fix(fixer) { - if (optsNone) { - // remove the unneeded token - return fixer.remove(lastToken); - } - const token = optsSemi ? ';' : ','; - if (missingDelimiter) { - // add the missing delimiter - return fixer.insertTextAfter(lastToken, token); - } - // correct the current delimiter - return fixer.replaceText(lastToken, token); - }, + fix: makeFixFunction({ + optsNone, + optsSemi, + lastToken, + missingDelimiter, + lastTokenLine, + isSingleLine: opts.type === 'single-line', + }), }); } } @@ -189,12 +215,21 @@ exports.default = util.createRule({ * @param {ASTNode} node the node to be evaluated. */ function checkMemberSeparatorStyle(node) { - const isSingleLine = node.loc.start.line === node.loc.end.line; const members = node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceBody ? node.body : node.members; + let isSingleLine = node.loc.start.line === node.loc.end.line; + if (options.multilineDetection === 'last-member' && + !isSingleLine && + members.length > 0) { + const lastMember = members[members.length - 1]; + if (lastMember.loc.end.line === node.loc.end.line) { + isSingleLine = true; + } + } const typeOpts = node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceBody ? interfaceOptions : typeLiteralOptions; - const opts = isSingleLine ? typeOpts.singleline : typeOpts.multiline; + const opts = isSingleLine + ? Object.assign(Object.assign({}, typeOpts.singleline), { type: 'single-line' }) : Object.assign(Object.assign({}, typeOpts.multiline), { type: 'multi-line' }); members.forEach((member, index) => { checkLastToken(member, opts !== null && opts !== void 0 ? opts : {}, index === members.length - 1); }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map index f48cf7b4e9..6c0ce7da37 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map @@ -1 +1 @@ -{"version":3,"file":"member-delimiter-style.js","sourceRoot":"","sources":["../../src/rules/member-delimiter-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"member-delimiter-style.js","sourceRoot":"","sources":["../../src/rules/member-delimiter-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js index 2dbbe7df74..b2e06a934f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js @@ -48,6 +48,7 @@ const objectConfig = (memberTypes) => ({ exports.defaultOrder = [ // Index signature 'signature', + 'call-signature', // Fields 'public-static-field', 'protected-static-field', @@ -96,7 +97,13 @@ exports.defaultOrder = [ 'decorated-method', 'method', ]; -const allMemberTypes = ['signature', 'field', 'method', 'constructor'].reduce((all, type) => { +const allMemberTypes = [ + 'signature', + 'field', + 'method', + 'call-signature', + 'constructor', +].reduce((all, type) => { all.push(type); ['public', 'protected', 'private'].forEach(accessibility => { if (type !== 'signature') { @@ -135,13 +142,14 @@ const functionExpressions = [ * @param node the node to be evaluated. */ function getNodeType(node) { - // TODO: add missing TSCallSignatureDeclaration switch (node.type) { case experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition: case experimental_utils_1.AST_NODE_TYPES.MethodDefinition: return node.kind; case experimental_utils_1.AST_NODE_TYPES.TSMethodSignature: return 'method'; + case experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration: + return 'call-signature'; case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration: return 'constructor'; case experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty: @@ -177,6 +185,8 @@ function getMemberName(node, sourceCode) { : util.getNameFromMember(node, sourceCode); case experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration: return 'new'; + case experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration: + return 'call'; case experimental_utils_1.AST_NODE_TYPES.TSIndexSignature: return util.getNameFromIndexSignature(node); default: diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map index 912eb4b436..ff3030677d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map @@ -1 +1 @@ -{"version":3,"file":"member-ordering.js","sourceRoot":"","sources":["../../src/rules/member-ordering.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"member-ordering.js","sourceRoot":"","sources":["../../src/rules/member-ordering.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js index f73a0173db..1c5911ee32 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js @@ -71,7 +71,11 @@ exports.default = util.createRule({ return params; } function getMethodReturnType(node) { - return sourceCode.getText(node.returnType.typeAnnotation); + return node.returnType == null + ? // if the method has no return type, it implicitly has an `any` return type + // we just make it explicit here so we can do the fix + 'any' + : sourceCode.getText(node.returnType.typeAnnotation); } function getDelimiter(node) { const lastToken = sourceCode.getLastToken(node); @@ -81,59 +85,93 @@ exports.default = util.createRule({ } return ''; } + function isNodeParentModuleDeclaration(node) { + if (!node.parent) { + return false; + } + if (node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration) { + return true; + } + if (node.parent.type === experimental_utils_1.AST_NODE_TYPES.Program) { + return false; + } + return isNodeParentModuleDeclaration(node.parent); + } return { TSMethodSignature(methodNode) { - var _a; if (mode === 'method') { return; } - const duplicatedKeyMethodNodes = ((_a = methodNode.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSInterfaceBody - ? methodNode.parent.body.filter((element) => element.type === experimental_utils_1.AST_NODE_TYPES.TSMethodSignature && - element !== methodNode && - getMethodKey(element) === getMethodKey(methodNode)) - : []; + const parent = methodNode.parent; + const members = (parent === null || parent === void 0 ? void 0 : parent.type) === experimental_utils_1.AST_NODE_TYPES.TSInterfaceBody + ? parent.body + : (parent === null || parent === void 0 ? void 0 : parent.type) === experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral + ? parent.members + : []; + const duplicatedKeyMethodNodes = members.filter((element) => element.type === experimental_utils_1.AST_NODE_TYPES.TSMethodSignature && + element !== methodNode && + getMethodKey(element) === getMethodKey(methodNode)); + const isParentModule = isNodeParentModuleDeclaration(methodNode); if (duplicatedKeyMethodNodes.length > 0) { + if (isParentModule) { + context.report({ + node: methodNode, + messageId: 'errorMethod', + }); + } + else { + context.report({ + node: methodNode, + messageId: 'errorMethod', + *fix(fixer) { + const methodNodes = [ + methodNode, + ...duplicatedKeyMethodNodes, + ].sort((a, b) => (a.range[0] < b.range[0] ? -1 : 1)); + const typeString = methodNodes + .map(node => { + const params = getMethodParams(node); + const returnType = getMethodReturnType(node); + return `(${params} => ${returnType})`; + }) + .join(' & '); + const key = getMethodKey(methodNode); + const delimiter = getDelimiter(methodNode); + yield fixer.replaceText(methodNode, `${key}: ${typeString}${delimiter}`); + for (const node of duplicatedKeyMethodNodes) { + const lastToken = sourceCode.getLastToken(node); + if (lastToken) { + const nextToken = sourceCode.getTokenAfter(lastToken); + if (nextToken) { + yield fixer.remove(node); + yield fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], ''); + } + } + } + }, + }); + } + return; + } + if (isParentModule) { context.report({ node: methodNode, messageId: 'errorMethod', - *fix(fixer) { - const methodNodes = [ - methodNode, - ...duplicatedKeyMethodNodes, - ].sort((a, b) => (a.range[0] < b.range[0] ? -1 : 1)); - const typeString = methodNodes.reduce((str, node, idx, nodes) => { - const params = getMethodParams(node); - const returnType = getMethodReturnType(node); - return `${str}(${params} => ${returnType})${idx !== nodes.length - 1 ? ' & ' : ''}`; - }, ''); + }); + } + else { + context.report({ + node: methodNode, + messageId: 'errorMethod', + fix: fixer => { const key = getMethodKey(methodNode); + const params = getMethodParams(methodNode); + const returnType = getMethodReturnType(methodNode); const delimiter = getDelimiter(methodNode); - yield fixer.replaceText(methodNode, `${key}: ${typeString}${delimiter}`); - for (const node of duplicatedKeyMethodNodes) { - const lastToken = sourceCode.getLastToken(node); - if (lastToken) { - const nextToken = sourceCode.getTokenAfter(lastToken); - if (nextToken) { - yield fixer.remove(node); - yield fixer.replaceTextRange([lastToken.range[1], nextToken.range[0]], ''); - } - } - } + return fixer.replaceText(methodNode, `${key}: ${params} => ${returnType}${delimiter}`); }, }); - return; } - context.report({ - node: methodNode, - messageId: 'errorMethod', - fix: fixer => { - const key = getMethodKey(methodNode); - const params = getMethodParams(methodNode); - const returnType = getMethodReturnType(methodNode); - const delimiter = getDelimiter(methodNode); - return fixer.replaceText(methodNode, `${key}: ${params} => ${returnType}${delimiter}`); - }, - }); }, TSPropertySignature(propertyNode) { var _a; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map index e7081d2cf9..189f431970 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js.map @@ -1 +1 @@ -{"version":3,"file":"method-signature-style.js","sourceRoot":"","sources":["../../src/rules/method-signature-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"method-signature-style.js","sourceRoot":"","sources":["../../src/rules/method-signature-style.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js new file mode 100644 index 0000000000..ea6f2eb0a3 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js @@ -0,0 +1,94 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UnderscoreOptions = exports.TypeModifiers = exports.Selectors = exports.PredefinedFormats = exports.Modifiers = exports.MetaSelectors = void 0; +var PredefinedFormats; +(function (PredefinedFormats) { + PredefinedFormats[PredefinedFormats["camelCase"] = 1] = "camelCase"; + PredefinedFormats[PredefinedFormats["strictCamelCase"] = 2] = "strictCamelCase"; + PredefinedFormats[PredefinedFormats["PascalCase"] = 3] = "PascalCase"; + PredefinedFormats[PredefinedFormats["StrictPascalCase"] = 4] = "StrictPascalCase"; + PredefinedFormats[PredefinedFormats["snake_case"] = 5] = "snake_case"; + PredefinedFormats[PredefinedFormats["UPPER_CASE"] = 6] = "UPPER_CASE"; +})(PredefinedFormats || (PredefinedFormats = {})); +exports.PredefinedFormats = PredefinedFormats; +var UnderscoreOptions; +(function (UnderscoreOptions) { + UnderscoreOptions[UnderscoreOptions["forbid"] = 1] = "forbid"; + UnderscoreOptions[UnderscoreOptions["allow"] = 2] = "allow"; + UnderscoreOptions[UnderscoreOptions["require"] = 3] = "require"; + // special cases as it's common practice to use double underscore + UnderscoreOptions[UnderscoreOptions["requireDouble"] = 4] = "requireDouble"; + UnderscoreOptions[UnderscoreOptions["allowDouble"] = 5] = "allowDouble"; + UnderscoreOptions[UnderscoreOptions["allowSingleOrDouble"] = 6] = "allowSingleOrDouble"; +})(UnderscoreOptions || (UnderscoreOptions = {})); +exports.UnderscoreOptions = UnderscoreOptions; +var Selectors; +(function (Selectors) { + // variableLike + Selectors[Selectors["variable"] = 1] = "variable"; + Selectors[Selectors["function"] = 2] = "function"; + Selectors[Selectors["parameter"] = 4] = "parameter"; + // memberLike + Selectors[Selectors["parameterProperty"] = 8] = "parameterProperty"; + Selectors[Selectors["accessor"] = 16] = "accessor"; + Selectors[Selectors["enumMember"] = 32] = "enumMember"; + Selectors[Selectors["classMethod"] = 64] = "classMethod"; + Selectors[Selectors["objectLiteralMethod"] = 128] = "objectLiteralMethod"; + Selectors[Selectors["typeMethod"] = 256] = "typeMethod"; + Selectors[Selectors["classProperty"] = 512] = "classProperty"; + Selectors[Selectors["objectLiteralProperty"] = 1024] = "objectLiteralProperty"; + Selectors[Selectors["typeProperty"] = 2048] = "typeProperty"; + // typeLike + Selectors[Selectors["class"] = 4096] = "class"; + Selectors[Selectors["interface"] = 8192] = "interface"; + Selectors[Selectors["typeAlias"] = 16384] = "typeAlias"; + Selectors[Selectors["enum"] = 32768] = "enum"; + Selectors[Selectors["typeParameter"] = 131072] = "typeParameter"; +})(Selectors || (Selectors = {})); +exports.Selectors = Selectors; +var MetaSelectors; +(function (MetaSelectors) { + MetaSelectors[MetaSelectors["default"] = -1] = "default"; + MetaSelectors[MetaSelectors["variableLike"] = 7] = "variableLike"; + MetaSelectors[MetaSelectors["memberLike"] = 4088] = "memberLike"; + MetaSelectors[MetaSelectors["typeLike"] = 192512] = "typeLike"; + MetaSelectors[MetaSelectors["method"] = 448] = "method"; + MetaSelectors[MetaSelectors["property"] = 3584] = "property"; +})(MetaSelectors || (MetaSelectors = {})); +exports.MetaSelectors = MetaSelectors; +var Modifiers; +(function (Modifiers) { + // const variable + Modifiers[Modifiers["const"] = 1] = "const"; + // readonly members + Modifiers[Modifiers["readonly"] = 2] = "readonly"; + // static members + Modifiers[Modifiers["static"] = 4] = "static"; + // member accessibility + Modifiers[Modifiers["public"] = 8] = "public"; + Modifiers[Modifiers["protected"] = 16] = "protected"; + Modifiers[Modifiers["private"] = 32] = "private"; + Modifiers[Modifiers["abstract"] = 64] = "abstract"; + // destructured variable + Modifiers[Modifiers["destructured"] = 128] = "destructured"; + // variables declared in the top-level scope + Modifiers[Modifiers["global"] = 256] = "global"; + // things that are exported + Modifiers[Modifiers["exported"] = 512] = "exported"; + // things that are unused + Modifiers[Modifiers["unused"] = 1024] = "unused"; + // properties that require quoting + Modifiers[Modifiers["requiresQuotes"] = 2048] = "requiresQuotes"; + // make sure TypeModifiers starts at Modifiers + 1 or else sorting won't work +})(Modifiers || (Modifiers = {})); +exports.Modifiers = Modifiers; +var TypeModifiers; +(function (TypeModifiers) { + TypeModifiers[TypeModifiers["boolean"] = 4096] = "boolean"; + TypeModifiers[TypeModifiers["string"] = 8192] = "string"; + TypeModifiers[TypeModifiers["number"] = 16384] = "number"; + TypeModifiers[TypeModifiers["function"] = 32768] = "function"; + TypeModifiers[TypeModifiers["array"] = 65536] = "array"; +})(TypeModifiers || (TypeModifiers = {})); +exports.TypeModifiers = TypeModifiers; +//# sourceMappingURL=enums.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js.map new file mode 100644 index 0000000000..9a55fe7b72 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/enums.js.map @@ -0,0 +1 @@ +{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/enums.ts"],"names":[],"mappings":";;;AAAA,IAAK,iBAOJ;AAPD,WAAK,iBAAiB;IACpB,mEAAa,CAAA;IACb,+EAAe,CAAA;IACf,qEAAU,CAAA;IACV,iFAAgB,CAAA;IAChB,qEAAU,CAAA;IACV,qEAAU,CAAA;AACZ,CAAC,EAPI,iBAAiB,KAAjB,iBAAiB,QAOrB;AAqHC,8CAAiB;AAlHnB,IAAK,iBASJ;AATD,WAAK,iBAAiB;IACpB,6DAAU,CAAA;IACV,2DAAK,CAAA;IACL,+DAAO,CAAA;IAEP,iEAAiE;IACjE,2EAAa,CAAA;IACb,uEAAW,CAAA;IACX,uFAAmB,CAAA;AACrB,CAAC,EATI,iBAAiB,KAAjB,iBAAiB,QASrB;AA+GC,8CAAiB;AA5GnB,IAAK,SAuBJ;AAvBD,WAAK,SAAS;IACZ,eAAe;IACf,iDAAiB,CAAA;IACjB,iDAAiB,CAAA;IACjB,mDAAkB,CAAA;IAElB,aAAa;IACb,mEAA0B,CAAA;IAC1B,kDAAiB,CAAA;IACjB,sDAAmB,CAAA;IACnB,wDAAoB,CAAA;IACpB,yEAA4B,CAAA;IAC5B,uDAAmB,CAAA;IACnB,6DAAsB,CAAA;IACtB,8EAA+B,CAAA;IAC/B,4DAAsB,CAAA;IAEtB,WAAW;IACX,8CAAe,CAAA;IACf,sDAAmB,CAAA;IACnB,uDAAmB,CAAA;IACnB,6CAAc,CAAA;IACd,gEAAuB,CAAA;AACzB,CAAC,EAvBI,SAAS,KAAT,SAAS,QAuBb;AAiFC,8BAAS;AA9EX,IAAK,aA8BJ;AA9BD,WAAK,aAAa;IAChB,wDAAY,CAAA;IACZ,iEAGqB,CAAA;IACrB,gEASoB,CAAA;IACpB,8DAKyB,CAAA;IACzB,uDAGsB,CAAA;IACtB,4DAGwB,CAAA;AAC1B,CAAC,EA9BI,aAAa,KAAb,aAAa,QA8BjB;AA0CC,sCAAa;AAtCf,IAAK,SAwBJ;AAxBD,WAAK,SAAS;IACZ,iBAAiB;IACjB,2CAAc,CAAA;IACd,mBAAmB;IACnB,iDAAiB,CAAA;IACjB,iBAAiB;IACjB,6CAAe,CAAA;IACf,uBAAuB;IACvB,6CAAe,CAAA;IACf,oDAAkB,CAAA;IAClB,gDAAgB,CAAA;IAChB,kDAAiB,CAAA;IACjB,wBAAwB;IACxB,2DAAqB,CAAA;IACrB,4CAA4C;IAC5C,+CAAe,CAAA;IACf,2BAA2B;IAC3B,mDAAiB,CAAA;IACjB,yBAAyB;IACzB,gDAAgB,CAAA;IAChB,kCAAkC;IAClC,gEAAwB,CAAA;IAExB,6EAA6E;AAC/E,CAAC,EAxBI,SAAS,KAAT,SAAS,QAwBb;AAgBC,8BAAS;AAbX,IAAK,aAMJ;AAND,WAAK,aAAa;IAChB,0DAAiB,CAAA;IACjB,wDAAgB,CAAA;IAChB,yDAAgB,CAAA;IAChB,6DAAkB,CAAA;IAClB,uDAAe,CAAA;AACjB,CAAC,EANI,aAAa,KAAb,aAAa,QAMjB;AAaC,sCAAa"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js new file mode 100644 index 0000000000..e59ab45802 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PredefinedFormatToCheckFunction = void 0; +const enums_1 = require("./enums"); +/* +These format functions are taken from `tslint-consistent-codestyle/naming-convention`: +https://github.com/ajafff/tslint-consistent-codestyle/blob/ab156cc8881bcc401236d999f4ce034b59039e81/rules/namingConventionRule.ts#L603-L645 + +The licence for the code can be viewed here: +https://github.com/ajafff/tslint-consistent-codestyle/blob/ab156cc8881bcc401236d999f4ce034b59039e81/LICENSE +*/ +/* +Why not regex here? Because it's actually really, really difficult to create a regex to handle +all of the unicode cases, and we have many non-english users that use non-english characters. +https://gist.github.com/mathiasbynens/6334847 +*/ +function isPascalCase(name) { + return (name.length === 0 || + (name[0] === name[0].toUpperCase() && !name.includes('_'))); +} +function isStrictPascalCase(name) { + return (name.length === 0 || + (name[0] === name[0].toUpperCase() && hasStrictCamelHumps(name, true))); +} +function isCamelCase(name) { + return (name.length === 0 || + (name[0] === name[0].toLowerCase() && !name.includes('_'))); +} +function isStrictCamelCase(name) { + return (name.length === 0 || + (name[0] === name[0].toLowerCase() && hasStrictCamelHumps(name, false))); +} +function hasStrictCamelHumps(name, isUpper) { + function isUppercaseChar(char) { + return char === char.toUpperCase() && char !== char.toLowerCase(); + } + if (name.startsWith('_')) { + return false; + } + for (let i = 1; i < name.length; ++i) { + if (name[i] === '_') { + return false; + } + if (isUpper === isUppercaseChar(name[i])) { + if (isUpper) { + return false; + } + } + else { + isUpper = !isUpper; + } + } + return true; +} +function isSnakeCase(name) { + return (name.length === 0 || + (name === name.toLowerCase() && validateUnderscores(name))); +} +function isUpperCase(name) { + return (name.length === 0 || + (name === name.toUpperCase() && validateUnderscores(name))); +} +/** Check for leading trailing and adjacent underscores */ +function validateUnderscores(name) { + if (name.startsWith('_')) { + return false; + } + let wasUnderscore = false; + for (let i = 1; i < name.length; ++i) { + if (name[i] === '_') { + if (wasUnderscore) { + return false; + } + wasUnderscore = true; + } + else { + wasUnderscore = false; + } + } + return !wasUnderscore; +} +const PredefinedFormatToCheckFunction = { + [enums_1.PredefinedFormats.PascalCase]: isPascalCase, + [enums_1.PredefinedFormats.StrictPascalCase]: isStrictPascalCase, + [enums_1.PredefinedFormats.camelCase]: isCamelCase, + [enums_1.PredefinedFormats.strictCamelCase]: isStrictCamelCase, + [enums_1.PredefinedFormats.UPPER_CASE]: isUpperCase, + [enums_1.PredefinedFormats.snake_case]: isSnakeCase, +}; +exports.PredefinedFormatToCheckFunction = PredefinedFormatToCheckFunction; +//# sourceMappingURL=format.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js.map new file mode 100644 index 0000000000..939f505d8c --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/format.js.map @@ -0,0 +1 @@ +{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/format.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js new file mode 100644 index 0000000000..e75eef6115 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseOptions = exports.selectorTypeToMessageString = exports.SCHEMA = exports.Modifiers = void 0; +var enums_1 = require("./enums"); +Object.defineProperty(exports, "Modifiers", { enumerable: true, get: function () { return enums_1.Modifiers; } }); +var schema_1 = require("./schema"); +Object.defineProperty(exports, "SCHEMA", { enumerable: true, get: function () { return schema_1.SCHEMA; } }); +var shared_1 = require("./shared"); +Object.defineProperty(exports, "selectorTypeToMessageString", { enumerable: true, get: function () { return shared_1.selectorTypeToMessageString; } }); +var parse_options_1 = require("./parse-options"); +Object.defineProperty(exports, "parseOptions", { enumerable: true, get: function () { return parse_options_1.parseOptions; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js.map new file mode 100644 index 0000000000..a307155bcf --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/index.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAGlB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,mCAAuD;AAA9C,qHAAA,2BAA2B,OAAA;AACpC,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js new file mode 100644 index 0000000000..564828bcd2 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js @@ -0,0 +1,90 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseOptions = void 0; +const util = __importStar(require("../../util")); +const enums_1 = require("./enums"); +const shared_1 = require("./shared"); +const validator_1 = require("./validator"); +function normalizeOption(option) { + var _a, _b, _c, _d, _e, _f; + let weight = 0; + (_a = option.modifiers) === null || _a === void 0 ? void 0 : _a.forEach(mod => { + weight |= enums_1.Modifiers[mod]; + }); + (_b = option.types) === null || _b === void 0 ? void 0 : _b.forEach(mod => { + weight |= enums_1.TypeModifiers[mod]; + }); + // give selectors with a filter the _highest_ priority + if (option.filter) { + weight |= 1 << 30; + } + const normalizedOption = { + // format options + format: option.format ? option.format.map(f => enums_1.PredefinedFormats[f]) : null, + custom: option.custom + ? { + regex: new RegExp(option.custom.regex, 'u'), + match: option.custom.match, + } + : null, + leadingUnderscore: option.leadingUnderscore !== undefined + ? enums_1.UnderscoreOptions[option.leadingUnderscore] + : null, + trailingUnderscore: option.trailingUnderscore !== undefined + ? enums_1.UnderscoreOptions[option.trailingUnderscore] + : null, + prefix: option.prefix && option.prefix.length > 0 ? option.prefix : null, + suffix: option.suffix && option.suffix.length > 0 ? option.suffix : null, + modifiers: (_d = (_c = option.modifiers) === null || _c === void 0 ? void 0 : _c.map(m => enums_1.Modifiers[m])) !== null && _d !== void 0 ? _d : null, + types: (_f = (_e = option.types) === null || _e === void 0 ? void 0 : _e.map(m => enums_1.TypeModifiers[m])) !== null && _f !== void 0 ? _f : null, + filter: option.filter !== undefined + ? typeof option.filter === 'string' + ? { + regex: new RegExp(option.filter, 'u'), + match: true, + } + : { + regex: new RegExp(option.filter.regex, 'u'), + match: option.filter.match, + } + : null, + // calculated ordering weight based on modifiers + modifierWeight: weight, + }; + const selectors = Array.isArray(option.selector) + ? option.selector + : [option.selector]; + return selectors.map(selector => (Object.assign({ selector: shared_1.isMetaSelector(selector) + ? enums_1.MetaSelectors[selector] + : enums_1.Selectors[selector] }, normalizedOption))); +} +function parseOptions(context) { + const normalizedOptions = context.options + .map(opt => normalizeOption(opt)) + .reduce((acc, val) => acc.concat(val), []); + return util.getEnumNames(enums_1.Selectors).reduce((acc, k) => { + acc[k] = validator_1.createValidator(k, context, normalizedOptions); + return acc; + }, {}); +} +exports.parseOptions = parseOptions; +//# sourceMappingURL=parse-options.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js.map new file mode 100644 index 0000000000..668a600fc1 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/parse-options.js.map @@ -0,0 +1 @@ +{"version":3,"file":"parse-options.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/parse-options.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js new file mode 100644 index 0000000000..c49f979348 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js @@ -0,0 +1,259 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SCHEMA = void 0; +const enums_1 = require("./enums"); +const util = __importStar(require("../../util")); +const UNDERSCORE_SCHEMA = { + type: 'string', + enum: util.getEnumNames(enums_1.UnderscoreOptions), +}; +const PREFIX_SUFFIX_SCHEMA = { + type: 'array', + items: { + type: 'string', + minLength: 1, + }, + additionalItems: false, +}; +const MATCH_REGEX_SCHEMA = { + type: 'object', + properties: { + match: { type: 'boolean' }, + regex: { type: 'string' }, + }, + required: ['match', 'regex'], +}; +const FORMAT_OPTIONS_PROPERTIES = { + format: { + oneOf: [ + { + type: 'array', + items: { + type: 'string', + enum: util.getEnumNames(enums_1.PredefinedFormats), + }, + additionalItems: false, + }, + { + type: 'null', + }, + ], + }, + custom: MATCH_REGEX_SCHEMA, + leadingUnderscore: UNDERSCORE_SCHEMA, + trailingUnderscore: UNDERSCORE_SCHEMA, + prefix: PREFIX_SUFFIX_SCHEMA, + suffix: PREFIX_SUFFIX_SCHEMA, + failureMessage: { + type: 'string', + }, +}; +function selectorSchema(selectorString, allowType, modifiers) { + const selector = { + filter: { + oneOf: [ + { + type: 'string', + minLength: 1, + }, + MATCH_REGEX_SCHEMA, + ], + }, + selector: { + type: 'string', + enum: [selectorString], + }, + }; + if (modifiers && modifiers.length > 0) { + selector.modifiers = { + type: 'array', + items: { + type: 'string', + enum: modifiers, + }, + additionalItems: false, + }; + } + if (allowType) { + selector.types = { + type: 'array', + items: { + type: 'string', + enum: util.getEnumNames(enums_1.TypeModifiers), + }, + additionalItems: false, + }; + } + return [ + { + type: 'object', + properties: Object.assign(Object.assign({}, FORMAT_OPTIONS_PROPERTIES), selector), + required: ['selector', 'format'], + additionalProperties: false, + }, + ]; +} +function selectorsSchema() { + return { + type: 'object', + properties: Object.assign(Object.assign({}, FORMAT_OPTIONS_PROPERTIES), { + filter: { + oneOf: [ + { + type: 'string', + minLength: 1, + }, + MATCH_REGEX_SCHEMA, + ], + }, + selector: { + type: 'array', + items: { + type: 'string', + enum: [ + ...util.getEnumNames(enums_1.MetaSelectors), + ...util.getEnumNames(enums_1.Selectors), + ], + }, + additionalItems: false, + }, + modifiers: { + type: 'array', + items: { + type: 'string', + enum: util.getEnumNames(enums_1.Modifiers), + }, + additionalItems: false, + }, + types: { + type: 'array', + items: { + type: 'string', + enum: util.getEnumNames(enums_1.TypeModifiers), + }, + additionalItems: false, + }, + }), + required: ['selector', 'format'], + additionalProperties: false, + }; +} +const SCHEMA = { + type: 'array', + items: { + oneOf: [ + selectorsSchema(), + ...selectorSchema('default', false, util.getEnumNames(enums_1.Modifiers)), + ...selectorSchema('variableLike', false, ['unused']), + ...selectorSchema('variable', true, [ + 'const', + 'destructured', + 'exported', + 'global', + 'unused', + ]), + ...selectorSchema('function', false, ['exported', 'global', 'unused']), + ...selectorSchema('parameter', true, ['destructured', 'unused']), + ...selectorSchema('memberLike', false, [ + 'abstract', + 'private', + 'protected', + 'public', + 'readonly', + 'requiresQuotes', + 'static', + ]), + ...selectorSchema('classProperty', true, [ + 'abstract', + 'private', + 'protected', + 'public', + 'readonly', + 'requiresQuotes', + 'static', + ]), + ...selectorSchema('objectLiteralProperty', true, [ + 'public', + 'requiresQuotes', + ]), + ...selectorSchema('typeProperty', true, [ + 'public', + 'readonly', + 'requiresQuotes', + ]), + ...selectorSchema('parameterProperty', true, [ + 'private', + 'protected', + 'public', + 'readonly', + ]), + ...selectorSchema('property', true, [ + 'abstract', + 'private', + 'protected', + 'public', + 'readonly', + 'requiresQuotes', + 'static', + ]), + ...selectorSchema('classMethod', false, [ + 'abstract', + 'private', + 'protected', + 'public', + 'requiresQuotes', + 'static', + ]), + ...selectorSchema('objectLiteralMethod', false, [ + 'public', + 'requiresQuotes', + ]), + ...selectorSchema('typeMethod', false, ['public', 'requiresQuotes']), + ...selectorSchema('method', false, [ + 'abstract', + 'private', + 'protected', + 'public', + 'requiresQuotes', + 'static', + ]), + ...selectorSchema('accessor', true, [ + 'abstract', + 'private', + 'protected', + 'public', + 'requiresQuotes', + 'static', + ]), + ...selectorSchema('enumMember', false, ['requiresQuotes']), + ...selectorSchema('typeLike', false, ['abstract', 'exported', 'unused']), + ...selectorSchema('class', false, ['abstract', 'exported', 'unused']), + ...selectorSchema('interface', false, ['exported', 'unused']), + ...selectorSchema('typeAlias', false, ['exported', 'unused']), + ...selectorSchema('enum', false, ['exported', 'unused']), + ...selectorSchema('typeParameter', false, ['unused']), + ], + }, + additionalItems: false, +}; +exports.SCHEMA = SCHEMA; +//# sourceMappingURL=schema.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js.map new file mode 100644 index 0000000000..515f628d09 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/schema.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/schema.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js new file mode 100644 index 0000000000..0371db59fa --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isMethodOrPropertySelector = exports.isMetaSelector = exports.selectorTypeToMessageString = void 0; +const enums_1 = require("./enums"); +function selectorTypeToMessageString(selectorType) { + const notCamelCase = selectorType.replace(/([A-Z])/g, ' $1'); + return notCamelCase.charAt(0).toUpperCase() + notCamelCase.slice(1); +} +exports.selectorTypeToMessageString = selectorTypeToMessageString; +function isMetaSelector(selector) { + return selector in enums_1.MetaSelectors; +} +exports.isMetaSelector = isMetaSelector; +function isMethodOrPropertySelector(selector) { + return (selector === enums_1.MetaSelectors.method || selector === enums_1.MetaSelectors.property); +} +exports.isMethodOrPropertySelector = isMethodOrPropertySelector; +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js.map new file mode 100644 index 0000000000..a8412be4fb --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/shared.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/shared.ts"],"names":[],"mappings":";;;AAAA,mCAMiB;AAEjB,SAAS,2BAA2B,CAAC,YAA6B;IAChE,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAiBC,kEAA2B;AAf7B,SAAS,cAAc,CACrB,QAAsE;IAEtE,OAAO,QAAQ,IAAI,qBAAa,CAAC;AACnC,CAAC;AAYC,wCAAc;AAVhB,SAAS,0BAA0B,CACjC,QAAsE;IAEtE,OAAO,CACL,QAAQ,KAAK,qBAAa,CAAC,MAAM,IAAI,QAAQ,KAAK,qBAAa,CAAC,QAAQ,CACzE,CAAC;AACJ,CAAC;AAKC,gEAA0B"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js new file mode 100644 index 0000000000..11e638d1ee --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js.map new file mode 100644 index 0000000000..60c24d818a --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js new file mode 100644 index 0000000000..67b5ba55da --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js @@ -0,0 +1,368 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createValidator = void 0; +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const enums_1 = require("./enums"); +const format_1 = require("./format"); +const shared_1 = require("./shared"); +const util = __importStar(require("../../util")); +function createValidator(type, context, allConfigs) { + // make sure the "highest priority" configs are checked first + const selectorType = enums_1.Selectors[type]; + const configs = allConfigs + // gather all of the applicable selectors + .filter(c => (c.selector & selectorType) !== 0 || + c.selector === enums_1.MetaSelectors.default) + .sort((a, b) => { + if (a.selector === b.selector) { + // in the event of the same selector, order by modifier weight + // sort descending - the type modifiers are "more important" + return b.modifierWeight - a.modifierWeight; + } + const aIsMeta = shared_1.isMetaSelector(a.selector); + const bIsMeta = shared_1.isMetaSelector(b.selector); + // non-meta selectors should go ahead of meta selectors + if (aIsMeta && !bIsMeta) { + return 1; + } + if (!aIsMeta && bIsMeta) { + return -1; + } + const aIsMethodOrProperty = shared_1.isMethodOrPropertySelector(a.selector); + const bIsMethodOrProperty = shared_1.isMethodOrPropertySelector(b.selector); + // for backward compatibility, method and property have higher precedence than other meta selectors + if (aIsMethodOrProperty && !bIsMethodOrProperty) { + return -1; + } + if (!aIsMethodOrProperty && bIsMethodOrProperty) { + return 1; + } + // both aren't meta selectors + // sort descending - the meta selectors are "least important" + return b.selector - a.selector; + }); + return (node, modifiers = new Set()) => { + var _a, _b, _c; + const originalName = node.type === experimental_utils_1.AST_NODE_TYPES.Identifier ? node.name : `${node.value}`; + // return will break the loop and stop checking configs + // it is only used when the name is known to have failed or succeeded a config. + for (const config of configs) { + if (((_a = config.filter) === null || _a === void 0 ? void 0 : _a.regex.test(originalName)) !== ((_b = config.filter) === null || _b === void 0 ? void 0 : _b.match)) { + // name does not match the filter + continue; + } + if ((_c = config.modifiers) === null || _c === void 0 ? void 0 : _c.some(modifier => !modifiers.has(modifier))) { + // does not have the required modifiers + continue; + } + if (!isCorrectType(node, config, context, selectorType)) { + // is not the correct type + continue; + } + let name = originalName; + name = validateUnderscore('leading', config, name, node, originalName); + if (name === null) { + // fail + return; + } + name = validateUnderscore('trailing', config, name, node, originalName); + if (name === null) { + // fail + return; + } + name = validateAffix('prefix', config, name, node, originalName); + if (name === null) { + // fail + return; + } + name = validateAffix('suffix', config, name, node, originalName); + if (name === null) { + // fail + return; + } + if (!validateCustom(config, name, node, originalName)) { + // fail + return; + } + if (!validatePredefinedFormat(config, name, node, originalName)) { + // fail + return; + } + // it's valid for this config, so we don't need to check any more configs + return; + } + }; + // centralizes the logic for formatting the report data + function formatReportData({ affixes, formats, originalName, processedName, position, custom, count, }) { + var _a; + return { + type: shared_1.selectorTypeToMessageString(type), + name: originalName, + processedName, + position, + count, + affixes: affixes === null || affixes === void 0 ? void 0 : affixes.join(', '), + formats: formats === null || formats === void 0 ? void 0 : formats.map(f => enums_1.PredefinedFormats[f]).join(', '), + regex: (_a = custom === null || custom === void 0 ? void 0 : custom.regex) === null || _a === void 0 ? void 0 : _a.toString(), + regexMatch: (custom === null || custom === void 0 ? void 0 : custom.match) === true + ? 'match' + : (custom === null || custom === void 0 ? void 0 : custom.match) === false + ? 'not match' + : null, + }; + } + /** + * @returns the name with the underscore removed, if it is valid according to the specified underscore option, null otherwise + */ + function validateUnderscore(position, config, name, node, originalName) { + const option = position === 'leading' + ? config.leadingUnderscore + : config.trailingUnderscore; + if (!option) { + return name; + } + const hasSingleUnderscore = position === 'leading' + ? () => name.startsWith('_') + : () => name.endsWith('_'); + const trimSingleUnderscore = position === 'leading' + ? () => name.slice(1) + : () => name.slice(0, -1); + const hasDoubleUnderscore = position === 'leading' + ? () => name.startsWith('__') + : () => name.endsWith('__'); + const trimDoubleUnderscore = position === 'leading' + ? () => name.slice(2) + : () => name.slice(0, -2); + switch (option) { + // ALLOW - no conditions as the user doesn't care if it's there or not + case enums_1.UnderscoreOptions.allow: { + if (hasSingleUnderscore()) { + return trimSingleUnderscore(); + } + return name; + } + case enums_1.UnderscoreOptions.allowDouble: { + if (hasDoubleUnderscore()) { + return trimDoubleUnderscore(); + } + return name; + } + case enums_1.UnderscoreOptions.allowSingleOrDouble: { + if (hasDoubleUnderscore()) { + return trimDoubleUnderscore(); + } + if (hasSingleUnderscore()) { + return trimSingleUnderscore(); + } + return name; + } + // FORBID + case enums_1.UnderscoreOptions.forbid: { + if (hasSingleUnderscore()) { + context.report({ + node, + messageId: 'unexpectedUnderscore', + data: formatReportData({ + originalName, + position, + count: 'one', + }), + }); + return null; + } + return name; + } + // REQUIRE + case enums_1.UnderscoreOptions.require: { + if (!hasSingleUnderscore()) { + context.report({ + node, + messageId: 'missingUnderscore', + data: formatReportData({ + originalName, + position, + count: 'one', + }), + }); + return null; + } + return trimSingleUnderscore(); + } + case enums_1.UnderscoreOptions.requireDouble: { + if (!hasDoubleUnderscore()) { + context.report({ + node, + messageId: 'missingUnderscore', + data: formatReportData({ + originalName, + position, + count: 'two', + }), + }); + return null; + } + return trimDoubleUnderscore(); + } + } + } + /** + * @returns the name with the affix removed, if it is valid according to the specified affix option, null otherwise + */ + function validateAffix(position, config, name, node, originalName) { + const affixes = config[position]; + if (!affixes || affixes.length === 0) { + return name; + } + for (const affix of affixes) { + const hasAffix = position === 'prefix' ? name.startsWith(affix) : name.endsWith(affix); + const trimAffix = position === 'prefix' + ? () => name.slice(affix.length) + : () => name.slice(0, -affix.length); + if (hasAffix) { + // matches, so trim it and return + return trimAffix(); + } + } + context.report({ + node, + messageId: 'missingAffix', + data: formatReportData({ + originalName, + position, + affixes, + }), + }); + return null; + } + /** + * @returns true if the name is valid according to the `regex` option, false otherwise + */ + function validateCustom(config, name, node, originalName) { + const custom = config.custom; + if (!custom) { + return true; + } + const result = custom.regex.test(name); + if (custom.match && result) { + return true; + } + if (!custom.match && !result) { + return true; + } + context.report({ + node, + messageId: 'satisfyCustom', + data: formatReportData({ + originalName, + custom, + }), + }); + return false; + } + /** + * @returns true if the name is valid according to the `format` option, false otherwise + */ + function validatePredefinedFormat(config, name, node, originalName) { + const formats = config.format; + if (formats === null || formats.length === 0) { + return true; + } + for (const format of formats) { + const checker = format_1.PredefinedFormatToCheckFunction[format]; + if (checker(name)) { + return true; + } + } + context.report({ + node, + messageId: originalName === name + ? 'doesNotMatchFormat' + : 'doesNotMatchFormatTrimmed', + data: formatReportData({ + originalName, + processedName: name, + formats, + }), + }); + return false; + } +} +exports.createValidator = createValidator; +const SelectorsAllowedToHaveTypes = enums_1.Selectors.variable | + enums_1.Selectors.parameter | + enums_1.Selectors.classProperty | + enums_1.Selectors.objectLiteralProperty | + enums_1.Selectors.typeProperty | + enums_1.Selectors.parameterProperty | + enums_1.Selectors.accessor; +function isCorrectType(node, config, context, selector) { + if (config.types === null) { + return true; + } + if ((SelectorsAllowedToHaveTypes & selector) === 0) { + return true; + } + const { esTreeNodeToTSNodeMap, program } = util.getParserServices(context); + const checker = program.getTypeChecker(); + const tsNode = esTreeNodeToTSNodeMap.get(node); + const type = checker + .getTypeAtLocation(tsNode) + // remove null and undefined from the type, as we don't care about it here + .getNonNullableType(); + for (const allowedType of config.types) { + switch (allowedType) { + case enums_1.TypeModifiers.array: + if (isAllTypesMatch(type, t => checker.isArrayType(t) || checker.isTupleType(t))) { + return true; + } + break; + case enums_1.TypeModifiers.function: + if (isAllTypesMatch(type, t => t.getCallSignatures().length > 0)) { + return true; + } + break; + case enums_1.TypeModifiers.boolean: + case enums_1.TypeModifiers.number: + case enums_1.TypeModifiers.string: { + const typeString = checker.typeToString( + // this will resolve things like true => boolean, 'a' => string and 1 => number + checker.getWidenedType(checker.getBaseTypeOfLiteralType(type))); + const allowedTypeString = enums_1.TypeModifiers[allowedType]; + if (typeString === allowedTypeString) { + return true; + } + break; + } + } + } + return false; +} +/** + * @returns `true` if the type (or all union types) in the given type return true for the callback + */ +function isAllTypesMatch(type, cb) { + if (type.isUnion()) { + return type.types.every(t => cb(t)); + } + return cb(type); +} +//# sourceMappingURL=validator.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js.map new file mode 100644 index 0000000000..6dfdc4c1b9 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention-utils/validator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/rules/naming-convention-utils/validator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js index 212c773113..0ea6a82fc6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js @@ -19,262 +19,10 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.selectorTypeToMessageString = void 0; const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const scope_manager_1 = require("@typescript-eslint/scope-manager"); const util = __importStar(require("../util")); -// #region Options Type Config -var PredefinedFormats; -(function (PredefinedFormats) { - PredefinedFormats[PredefinedFormats["camelCase"] = 1] = "camelCase"; - PredefinedFormats[PredefinedFormats["strictCamelCase"] = 2] = "strictCamelCase"; - PredefinedFormats[PredefinedFormats["PascalCase"] = 4] = "PascalCase"; - PredefinedFormats[PredefinedFormats["StrictPascalCase"] = 8] = "StrictPascalCase"; - PredefinedFormats[PredefinedFormats["snake_case"] = 16] = "snake_case"; - PredefinedFormats[PredefinedFormats["UPPER_CASE"] = 32] = "UPPER_CASE"; -})(PredefinedFormats || (PredefinedFormats = {})); -var UnderscoreOptions; -(function (UnderscoreOptions) { - UnderscoreOptions[UnderscoreOptions["forbid"] = 1] = "forbid"; - UnderscoreOptions[UnderscoreOptions["allow"] = 2] = "allow"; - UnderscoreOptions[UnderscoreOptions["require"] = 4] = "require"; -})(UnderscoreOptions || (UnderscoreOptions = {})); -var Selectors; -(function (Selectors) { - // variableLike - Selectors[Selectors["variable"] = 1] = "variable"; - Selectors[Selectors["function"] = 2] = "function"; - Selectors[Selectors["parameter"] = 4] = "parameter"; - // memberLike - Selectors[Selectors["property"] = 8] = "property"; - Selectors[Selectors["parameterProperty"] = 16] = "parameterProperty"; - Selectors[Selectors["method"] = 32] = "method"; - Selectors[Selectors["accessor"] = 64] = "accessor"; - Selectors[Selectors["enumMember"] = 128] = "enumMember"; - // typeLike - Selectors[Selectors["class"] = 256] = "class"; - Selectors[Selectors["interface"] = 512] = "interface"; - Selectors[Selectors["typeAlias"] = 1024] = "typeAlias"; - Selectors[Selectors["enum"] = 2048] = "enum"; - Selectors[Selectors["typeParameter"] = 4096] = "typeParameter"; -})(Selectors || (Selectors = {})); -const SELECTOR_COUNT = util.getEnumNames(Selectors).length; -var MetaSelectors; -(function (MetaSelectors) { - MetaSelectors[MetaSelectors["default"] = -1] = "default"; - MetaSelectors[MetaSelectors["variableLike"] = 7] = "variableLike"; - MetaSelectors[MetaSelectors["memberLike"] = 248] = "memberLike"; - MetaSelectors[MetaSelectors["typeLike"] = 7936] = "typeLike"; -})(MetaSelectors || (MetaSelectors = {})); -var Modifiers; -(function (Modifiers) { - Modifiers[Modifiers["const"] = 1] = "const"; - Modifiers[Modifiers["readonly"] = 2] = "readonly"; - Modifiers[Modifiers["static"] = 4] = "static"; - Modifiers[Modifiers["public"] = 8] = "public"; - Modifiers[Modifiers["protected"] = 16] = "protected"; - Modifiers[Modifiers["private"] = 32] = "private"; - Modifiers[Modifiers["abstract"] = 64] = "abstract"; -})(Modifiers || (Modifiers = {})); -var TypeModifiers; -(function (TypeModifiers) { - TypeModifiers[TypeModifiers["boolean"] = 1024] = "boolean"; - TypeModifiers[TypeModifiers["string"] = 2048] = "string"; - TypeModifiers[TypeModifiers["number"] = 4096] = "number"; - TypeModifiers[TypeModifiers["function"] = 8192] = "function"; - TypeModifiers[TypeModifiers["array"] = 16384] = "array"; -})(TypeModifiers || (TypeModifiers = {})); -// #endregion Options Type Config -// #region Schema Config -const UNDERSCORE_SCHEMA = { - type: 'string', - enum: util.getEnumNames(UnderscoreOptions), -}; -const PREFIX_SUFFIX_SCHEMA = { - type: 'array', - items: { - type: 'string', - minLength: 1, - }, - additionalItems: false, -}; -const MATCH_REGEX_SCHEMA = { - type: 'object', - properties: { - match: { type: 'boolean' }, - regex: { type: 'string' }, - }, - required: ['match', 'regex'], -}; -const FORMAT_OPTIONS_PROPERTIES = { - format: { - oneOf: [ - { - type: 'array', - items: { - type: 'string', - enum: util.getEnumNames(PredefinedFormats), - }, - additionalItems: false, - }, - { - type: 'null', - }, - ], - }, - custom: MATCH_REGEX_SCHEMA, - leadingUnderscore: UNDERSCORE_SCHEMA, - trailingUnderscore: UNDERSCORE_SCHEMA, - prefix: PREFIX_SUFFIX_SCHEMA, - suffix: PREFIX_SUFFIX_SCHEMA, -}; -function selectorSchema(selectorString, allowType, modifiers) { - const selector = { - filter: { - oneOf: [ - { - type: 'string', - minLength: 1, - }, - MATCH_REGEX_SCHEMA, - ], - }, - selector: { - type: 'string', - enum: [selectorString], - }, - }; - if (modifiers && modifiers.length > 0) { - selector.modifiers = { - type: 'array', - items: { - type: 'string', - enum: modifiers, - }, - additionalItems: false, - }; - } - if (allowType) { - selector.types = { - type: 'array', - items: { - type: 'string', - enum: util.getEnumNames(TypeModifiers), - }, - additionalItems: false, - }; - } - return [ - { - type: 'object', - properties: Object.assign(Object.assign({}, FORMAT_OPTIONS_PROPERTIES), selector), - required: ['selector', 'format'], - additionalProperties: false, - }, - ]; -} -function selectorsSchema() { - return { - type: 'object', - properties: Object.assign(Object.assign({}, FORMAT_OPTIONS_PROPERTIES), { - filter: { - oneOf: [ - { - type: 'string', - minLength: 1, - }, - MATCH_REGEX_SCHEMA, - ], - }, - selector: { - type: 'array', - items: { - type: 'string', - enum: [ - ...util.getEnumNames(MetaSelectors), - ...util.getEnumNames(Selectors), - ], - }, - additionalItems: false, - }, - }), - modifiers: { - type: 'array', - items: { - type: 'string', - enum: util.getEnumNames(Modifiers), - }, - additionalItems: false, - }, - types: { - type: 'array', - items: { - type: 'string', - enum: util.getEnumNames(TypeModifiers), - }, - additionalItems: false, - }, - required: ['selector', 'format'], - additionalProperties: false, - }; -} -const SCHEMA = { - type: 'array', - items: { - oneOf: [ - selectorsSchema(), - ...selectorSchema('default', false, util.getEnumNames(Modifiers)), - ...selectorSchema('variableLike', false), - ...selectorSchema('variable', true, ['const']), - ...selectorSchema('function', false), - ...selectorSchema('parameter', true), - ...selectorSchema('memberLike', false, [ - 'private', - 'protected', - 'public', - 'static', - 'readonly', - 'abstract', - ]), - ...selectorSchema('property', true, [ - 'private', - 'protected', - 'public', - 'static', - 'readonly', - 'abstract', - ]), - ...selectorSchema('parameterProperty', true, [ - 'private', - 'protected', - 'public', - 'readonly', - ]), - ...selectorSchema('method', false, [ - 'private', - 'protected', - 'public', - 'static', - 'abstract', - ]), - ...selectorSchema('accessor', true, [ - 'private', - 'protected', - 'public', - 'static', - 'abstract', - ]), - ...selectorSchema('enumMember', false), - ...selectorSchema('typeLike', false, ['abstract']), - ...selectorSchema('class', false, ['abstract']), - ...selectorSchema('interface', false), - ...selectorSchema('typeAlias', false), - ...selectorSchema('enum', false), - ...selectorSchema('typeParameter', false), - ], - }, - additionalItems: false, -}; -// #endregion Schema Config +const naming_convention_utils_1 = require("./naming-convention-utils"); // This essentially mirrors ESLint's `camelcase` rule // note that that rule ignores leading and trailing underscores and only checks those in the middle of a variable name const defaultCamelCaseAllTheThingsConfig = [ @@ -308,13 +56,13 @@ exports.default = util.createRule({ type: 'suggestion', messages: { unexpectedUnderscore: '{{type}} name `{{name}}` must not have a {{position}} underscore.', - missingUnderscore: '{{type}} name `{{name}}` must have a {{position}} underscore.', + missingUnderscore: '{{type}} name `{{name}}` must have {{count}} {{position}} underscore(s).', missingAffix: '{{type}} name `{{name}}` must have one of the following {{position}}es: {{affixes}}', satisfyCustom: '{{type}} name `{{name}}` must {{regexMatch}} the RegExp: {{regex}}', doesNotMatchFormat: '{{type}} name `{{name}}` must match one of the following formats: {{formats}}', doesNotMatchFormatTrimmed: '{{type}} name `{{name}}` trimmed as `{{processedName}}` must match one of the following formats: {{formats}}', }, - schema: SCHEMA, + schema: naming_convention_utils_1.SCHEMA, }, defaultOptions: defaultCamelCaseAllTheThingsConfig, create(contextWithoutDefaults) { @@ -325,34 +73,70 @@ exports.default = util.createRule({ Object.setPrototypeOf({ options: defaultCamelCaseAllTheThingsConfig, }, contextWithoutDefaults); - const validators = parseOptions(context); + const validators = naming_convention_utils_1.parseOptions(context); + // getParserServices(context, false) -- dirty hack to work around the docs checker test... + const compilerOptions = util + .getParserServices(context, true) + .program.getCompilerOptions(); function handleMember(validator, node, modifiers) { if (!validator) { return; } const key = node.key; + if (requiresQuoting(key, compilerOptions.target)) { + modifiers.add(naming_convention_utils_1.Modifiers.requiresQuotes); + } validator(key, modifiers); } function getMemberModifiers(node) { const modifiers = new Set(); if (node.accessibility) { - modifiers.add(Modifiers[node.accessibility]); + modifiers.add(naming_convention_utils_1.Modifiers[node.accessibility]); } else { - modifiers.add(Modifiers.public); + modifiers.add(naming_convention_utils_1.Modifiers.public); } if (node.static) { - modifiers.add(Modifiers.static); + modifiers.add(naming_convention_utils_1.Modifiers.static); } if ('readonly' in node && node.readonly) { - modifiers.add(Modifiers.readonly); + modifiers.add(naming_convention_utils_1.Modifiers.readonly); } if (node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty || node.type === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition) { - modifiers.add(Modifiers.abstract); + modifiers.add(naming_convention_utils_1.Modifiers.abstract); } return modifiers; } + const unusedVariables = util.collectUnusedVariables(context); + function isUnused(name, initialScope = context.getScope()) { + var _a; + let variable = null; + let scope = initialScope; + while (scope) { + variable = (_a = scope.set.get(name)) !== null && _a !== void 0 ? _a : null; + if (variable) { + break; + } + scope = scope.upper; + } + if (!variable) { + return false; + } + return unusedVariables.has(variable); + } + function isDestructured(id) { + var _a, _b, _c; + return ( + // `const { x }` + // does not match `const { x: y }` + (((_a = id.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.Property && id.parent.shorthand) || + // `const { x = 2 }` + // does not match const `{ x: y = 2 }` + (((_b = id.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.AssignmentPattern && + ((_c = id.parent.parent) === null || _c === void 0 ? void 0 : _c.type) === experimental_utils_1.AST_NODE_TYPES.Property && + id.parent.parent.shorthand)); + } return { // #region variable VariableDeclarator(node) { @@ -360,17 +144,29 @@ exports.default = util.createRule({ if (!validator) { return; } - const identifiers = []; - getIdentifiersFromPattern(node.id, identifiers); - const modifiers = new Set(); + const identifiers = getIdentifiersFromPattern(node.id); + const baseModifiers = new Set(); const parent = node.parent; - if (parent && - parent.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclaration && - parent.kind === 'const') { - modifiers.add(Modifiers.const); + if ((parent === null || parent === void 0 ? void 0 : parent.type) === experimental_utils_1.AST_NODE_TYPES.VariableDeclaration) { + if (parent.kind === 'const') { + baseModifiers.add(naming_convention_utils_1.Modifiers.const); + } + if (isGlobal(context.getScope())) { + baseModifiers.add(naming_convention_utils_1.Modifiers.global); + } } - identifiers.forEach(i => { - validator(i, modifiers); + identifiers.forEach(id => { + const modifiers = new Set(baseModifiers); + if (isDestructured(id)) { + modifiers.add(naming_convention_utils_1.Modifiers.destructured); + } + if (isExported(parent, id.name, context.getScope())) { + modifiers.add(naming_convention_utils_1.Modifiers.exported); + } + if (isUnused(id.name)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(id, modifiers); }); }, // #endregion @@ -380,11 +176,23 @@ exports.default = util.createRule({ if (!validator || node.id === null) { return; } - validator(node.id); + const modifiers = new Set(); + // functions create their own nested scope + const scope = context.getScope().upper; + if (isGlobal(scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.global); + } + if (isExported(node, node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.exported); + } + if (isUnused(node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(node.id, modifiers); }, // #endregion function // #region parameter - 'FunctionDeclaration, TSDeclareFunction, FunctionExpression, ArrowFunctionExpression'(node) { + 'FunctionDeclaration, TSDeclareFunction, TSEmptyBodyFunctionExpression, FunctionExpression, ArrowFunctionExpression'(node) { const validator = validators.parameter; if (!validator) { return; @@ -393,10 +201,16 @@ exports.default = util.createRule({ if (param.type === experimental_utils_1.AST_NODE_TYPES.TSParameterProperty) { return; } - const identifiers = []; - getIdentifiersFromPattern(param, identifiers); + const identifiers = getIdentifiersFromPattern(param); identifiers.forEach(i => { - validator(i); + const modifiers = new Set(); + if (isDestructured(i)) { + modifiers.add(naming_convention_utils_1.Modifiers.destructured); + } + if (isUnused(i.name)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(i, modifiers); }); }); }, @@ -408,28 +222,27 @@ exports.default = util.createRule({ return; } const modifiers = getMemberModifiers(node); - const identifiers = []; - getIdentifiersFromPattern(node.parameter, identifiers); + const identifiers = getIdentifiersFromPattern(node.parameter); identifiers.forEach(i => { validator(i, modifiers); }); }, // #endregion parameterProperty // #region property - 'Property[computed = false][kind = "init"][value.type != "ArrowFunctionExpression"][value.type != "FunctionExpression"][value.type != "TSEmptyBodyFunctionExpression"]'(node) { - const modifiers = new Set([Modifiers.public]); - handleMember(validators.property, node, modifiers); + ':not(ObjectPattern) > Property[computed = false][kind = "init"][value.type != "ArrowFunctionExpression"][value.type != "FunctionExpression"][value.type != "TSEmptyBodyFunctionExpression"]'(node) { + const modifiers = new Set([naming_convention_utils_1.Modifiers.public]); + handleMember(validators.objectLiteralProperty, node, modifiers); }, ':matches(ClassProperty, TSAbstractClassProperty)[computed = false][value.type != "ArrowFunctionExpression"][value.type != "FunctionExpression"][value.type != "TSEmptyBodyFunctionExpression"]'(node) { const modifiers = getMemberModifiers(node); - handleMember(validators.property, node, modifiers); + handleMember(validators.classProperty, node, modifiers); }, 'TSPropertySignature[computed = false]'(node) { - const modifiers = new Set([Modifiers.public]); + const modifiers = new Set([naming_convention_utils_1.Modifiers.public]); if (node.readonly) { - modifiers.add(Modifiers.readonly); + modifiers.add(naming_convention_utils_1.Modifiers.readonly); } - handleMember(validators.property, node, modifiers); + handleMember(validators.typeProperty, node, modifiers); }, // #endregion property // #region method @@ -437,10 +250,9 @@ exports.default = util.createRule({ 'Property[computed = false][kind = "init"][value.type = "ArrowFunctionExpression"]', 'Property[computed = false][kind = "init"][value.type = "FunctionExpression"]', 'Property[computed = false][kind = "init"][value.type = "TSEmptyBodyFunctionExpression"]', - 'TSMethodSignature[computed = false]', ].join(', ')](node) { - const modifiers = new Set([Modifiers.public]); - handleMember(validators.method, node, modifiers); + const modifiers = new Set([naming_convention_utils_1.Modifiers.public]); + handleMember(validators.objectLiteralMethod, node, modifiers); }, [[ ':matches(ClassProperty, TSAbstractClassProperty)[computed = false][value.type = "ArrowFunctionExpression"]', @@ -449,12 +261,16 @@ exports.default = util.createRule({ ':matches(MethodDefinition, TSAbstractMethodDefinition)[computed = false][kind = "method"]', ].join(', ')](node) { const modifiers = getMemberModifiers(node); - handleMember(validators.method, node, modifiers); + handleMember(validators.classMethod, node, modifiers); + }, + 'TSMethodSignature[computed = false]'(node) { + const modifiers = new Set([naming_convention_utils_1.Modifiers.public]); + handleMember(validators.typeMethod, node, modifiers); }, // #endregion method // #region accessor 'Property[computed = false]:matches([kind = "get"], [kind = "set"])'(node) { - const modifiers = new Set([Modifiers.public]); + const modifiers = new Set([naming_convention_utils_1.Modifiers.public]); handleMember(validators.accessor, node, modifiers); }, 'MethodDefinition[computed = false]:matches([kind = "get"], [kind = "set"])'(node) { @@ -470,7 +286,11 @@ exports.default = util.createRule({ return; } const id = node.id; - validator(id); + const modifiers = new Set(); + if (requiresQuoting(id, compilerOptions.target)) { + modifiers.add(naming_convention_utils_1.Modifiers.requiresQuotes); + } + validator(id, modifiers); }, // #endregion enumMember // #region class @@ -484,8 +304,16 @@ exports.default = util.createRule({ return; } const modifiers = new Set(); + // classes create their own nested scope + const scope = context.getScope().upper; if (node.abstract) { - modifiers.add(Modifiers.abstract); + modifiers.add(naming_convention_utils_1.Modifiers.abstract); + } + if (isExported(node, id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.exported); + } + if (isUnused(id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); } validator(id, modifiers); }, @@ -496,7 +324,15 @@ exports.default = util.createRule({ if (!validator) { return; } - validator(node.id); + const modifiers = new Set(); + const scope = context.getScope(); + if (isExported(node, node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.exported); + } + if (isUnused(node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(node.id, modifiers); }, // #endregion interface // #region typeAlias @@ -505,7 +341,15 @@ exports.default = util.createRule({ if (!validator) { return; } - validator(node.id); + const modifiers = new Set(); + const scope = context.getScope(); + if (isExported(node, node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.exported); + } + if (isUnused(node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(node.id, modifiers); }, // #endregion typeAlias // #region enum @@ -514,7 +358,16 @@ exports.default = util.createRule({ if (!validator) { return; } - validator(node.id); + const modifiers = new Set(); + // enums create their own nested scope + const scope = context.getScope().upper; + if (isExported(node, node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.exported); + } + if (isUnused(node.id.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(node.id, modifiers); }, // #endregion enum // #region typeParameter @@ -523,477 +376,53 @@ exports.default = util.createRule({ if (!validator) { return; } - validator(node.name); + const modifiers = new Set(); + const scope = context.getScope(); + if (isUnused(node.name.name, scope)) { + modifiers.add(naming_convention_utils_1.Modifiers.unused); + } + validator(node.name, modifiers); }, + // #endregion typeParameter }; }, }); -function getIdentifiersFromPattern(pattern, identifiers) { - switch (pattern.type) { - case experimental_utils_1.AST_NODE_TYPES.Identifier: - identifiers.push(pattern); - break; - case experimental_utils_1.AST_NODE_TYPES.ArrayPattern: - pattern.elements.forEach(element => { - if (element !== null) { - getIdentifiersFromPattern(element, identifiers); - } - }); - break; - case experimental_utils_1.AST_NODE_TYPES.ObjectPattern: - pattern.properties.forEach(property => { - if (property.type === experimental_utils_1.AST_NODE_TYPES.RestElement) { - getIdentifiersFromPattern(property, identifiers); - } - else { - // this is a bit weird, but it's because ESTree doesn't have a new node type - // for object destructuring properties - it just reuses Property... - // https://github.com/estree/estree/blob/9ae284b71130d53226e7153b42f01bf819e6e657/es2015.md#L206-L211 - // However, the parser guarantees this is safe (and there is error handling) - getIdentifiersFromPattern(property.value, identifiers); - } - }); - break; - case experimental_utils_1.AST_NODE_TYPES.RestElement: - getIdentifiersFromPattern(pattern.argument, identifiers); - break; - case experimental_utils_1.AST_NODE_TYPES.AssignmentPattern: - getIdentifiersFromPattern(pattern.left, identifiers); - break; - case experimental_utils_1.AST_NODE_TYPES.MemberExpression: - // ignore member expressions, as the everything must already be defined - break; - default: - // https://github.com/typescript-eslint/typescript-eslint/issues/1282 - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion - throw new Error(`Unexpected pattern type ${pattern.type}`); - } -} -function parseOptions(context) { - const normalizedOptions = context.options.map(opt => normalizeOption(opt)); - return util.getEnumNames(Selectors).reduce((acc, k) => { - acc[k] = createValidator(k, context, normalizedOptions); - return acc; - }, {}); +function getIdentifiersFromPattern(pattern) { + const identifiers = []; + const visitor = new scope_manager_1.PatternVisitor({}, pattern, id => identifiers.push(id)); + visitor.visit(pattern); + return identifiers; } -function createValidator(type, context, allConfigs) { - // make sure the "highest priority" configs are checked first - const selectorType = Selectors[type]; - const configs = allConfigs - // gather all of the applicable selectors - .filter(c => (c.selector & selectorType) !== 0 || - c.selector === MetaSelectors.default) - .sort((a, b) => { - if (a.selector === b.selector) { - // in the event of the same selector, order by modifier weight - // sort descending - the type modifiers are "more important" - return b.modifierWeight - a.modifierWeight; - } - /* - meta selectors will always be larger numbers than the normal selectors they contain, as they are the sum of all - of the selectors that they contain. - to give normal selectors a higher priority, shift them all SELECTOR_COUNT bits to the left before comparison, so - they are instead always guaranteed to be larger than the meta selectors. - */ - const aSelector = isMetaSelector(a.selector) - ? a.selector - : a.selector << SELECTOR_COUNT; - const bSelector = isMetaSelector(b.selector) - ? b.selector - : b.selector << SELECTOR_COUNT; - // sort descending - the meta selectors are "least important" - return bSelector - aSelector; - }); - return (node, modifiers = new Set()) => { - var _a, _b, _c; - const originalName = node.type === experimental_utils_1.AST_NODE_TYPES.Identifier ? node.name : `${node.value}`; - // return will break the loop and stop checking configs - // it is only used when the name is known to have failed or succeeded a config. - for (const config of configs) { - if (((_a = config.filter) === null || _a === void 0 ? void 0 : _a.regex.test(originalName)) !== ((_b = config.filter) === null || _b === void 0 ? void 0 : _b.match)) { - // name does not match the filter - continue; - } - if ((_c = config.modifiers) === null || _c === void 0 ? void 0 : _c.some(modifier => !modifiers.has(modifier))) { - // does not have the required modifiers - continue; - } - if (!isCorrectType(node, config, context)) { - // is not the correct type - continue; - } - let name = originalName; - name = validateUnderscore('leading', config, name, node, originalName); - if (name === null) { - // fail - return; - } - name = validateUnderscore('trailing', config, name, node, originalName); - if (name === null) { - // fail - return; - } - name = validateAffix('prefix', config, name, node, originalName); - if (name === null) { - // fail - return; - } - name = validateAffix('suffix', config, name, node, originalName); - if (name === null) { - // fail - return; - } - if (!validateCustom(config, name, node, originalName)) { - // fail - return; - } - if (!validatePredefinedFormat(config, name, node, originalName)) { - // fail - return; - } - // it's valid for this config, so we don't need to check any more configs - return; - } - }; - // centralizes the logic for formatting the report data - function formatReportData({ affixes, formats, originalName, processedName, position, custom, }) { - var _a; - return { - type: selectorTypeToMessageString(type), - name: originalName, - processedName, - position, - affixes: affixes === null || affixes === void 0 ? void 0 : affixes.join(', '), - formats: formats === null || formats === void 0 ? void 0 : formats.map(f => PredefinedFormats[f]).join(', '), - regex: (_a = custom === null || custom === void 0 ? void 0 : custom.regex) === null || _a === void 0 ? void 0 : _a.toString(), - regexMatch: (custom === null || custom === void 0 ? void 0 : custom.match) === true - ? 'match' - : (custom === null || custom === void 0 ? void 0 : custom.match) === false - ? 'not match' - : null, - }; - } - /** - * @returns the name with the underscore removed, if it is valid according to the specified underscore option, null otherwise - */ - function validateUnderscore(position, config, name, node, originalName) { - const option = position === 'leading' - ? config.leadingUnderscore - : config.trailingUnderscore; - if (!option) { - return name; - } - const hasUnderscore = position === 'leading' ? name.startsWith('_') : name.endsWith('_'); - const trimUnderscore = position === 'leading' - ? () => name.slice(1) - : () => name.slice(0, -1); - switch (option) { - case UnderscoreOptions.allow: - // no check - the user doesn't care if it's there or not - break; - case UnderscoreOptions.forbid: - if (hasUnderscore) { - context.report({ - node, - messageId: 'unexpectedUnderscore', - data: formatReportData({ - originalName, - position, - }), - }); - return null; - } - break; - case UnderscoreOptions.require: - if (!hasUnderscore) { - context.report({ - node, - messageId: 'missingUnderscore', - data: formatReportData({ - originalName, - position, - }), - }); - return null; - } - } - return hasUnderscore ? trimUnderscore() : name; - } - /** - * @returns the name with the affix removed, if it is valid according to the specified affix option, null otherwise - */ - function validateAffix(position, config, name, node, originalName) { - const affixes = config[position]; - if (!affixes || affixes.length === 0) { - return name; - } - for (const affix of affixes) { - const hasAffix = position === 'prefix' ? name.startsWith(affix) : name.endsWith(affix); - const trimAffix = position === 'prefix' - ? () => name.slice(affix.length) - : () => name.slice(0, -affix.length); - if (hasAffix) { - // matches, so trim it and return - return trimAffix(); - } - } - context.report({ - node, - messageId: 'missingAffix', - data: formatReportData({ - originalName, - position, - affixes, - }), - }); - return null; +function isExported(node, name, scope) { + var _a, _b; + if (((_a = node === null || node === void 0 ? void 0 : node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration || + ((_b = node === null || node === void 0 ? void 0 : node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration) { + return true; } - /** - * @returns true if the name is valid according to the `regex` option, false otherwise - */ - function validateCustom(config, name, node, originalName) { - const custom = config.custom; - if (!custom) { - return true; - } - const result = custom.regex.test(name); - if (custom.match && result) { - return true; - } - if (!custom.match && !result) { - return true; - } - context.report({ - node, - messageId: 'satisfyCustom', - data: formatReportData({ - originalName, - custom, - }), - }); + if (scope == null) { return false; } - /** - * @returns true if the name is valid according to the `format` option, false otherwise - */ - function validatePredefinedFormat(config, name, node, originalName) { - const formats = config.format; - if (formats === null || formats.length === 0) { - return true; - } - for (const format of formats) { - const checker = PredefinedFormatToCheckFunction[format]; - if (checker(name)) { + const variable = scope.set.get(name); + if (variable) { + for (const ref of variable.references) { + const refParent = ref.identifier.parent; + if ((refParent === null || refParent === void 0 ? void 0 : refParent.type) === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration || + (refParent === null || refParent === void 0 ? void 0 : refParent.type) === experimental_utils_1.AST_NODE_TYPES.ExportSpecifier) { return true; } } - context.report({ - node, - messageId: originalName === name - ? 'doesNotMatchFormat' - : 'doesNotMatchFormatTrimmed', - data: formatReportData({ - originalName, - processedName: name, - formats, - }), - }); - return false; - } -} -// #region Predefined Format Functions -/* -These format functions are taken from `tslint-consistent-codestyle/naming-convention`: -https://github.com/ajafff/tslint-consistent-codestyle/blob/ab156cc8881bcc401236d999f4ce034b59039e81/rules/namingConventionRule.ts#L603-L645 - -The licence for the code can be viewed here: -https://github.com/ajafff/tslint-consistent-codestyle/blob/ab156cc8881bcc401236d999f4ce034b59039e81/LICENSE -*/ -/* -Why not regex here? Because it's actually really, really difficult to create a regex to handle -all of the unicode cases, and we have many non-english users that use non-english characters. -https://gist.github.com/mathiasbynens/6334847 -*/ -function isPascalCase(name) { - return (name.length === 0 || - (name[0] === name[0].toUpperCase() && !name.includes('_'))); -} -function isStrictPascalCase(name) { - return (name.length === 0 || - (name[0] === name[0].toUpperCase() && hasStrictCamelHumps(name, true))); -} -function isCamelCase(name) { - return (name.length === 0 || - (name[0] === name[0].toLowerCase() && !name.includes('_'))); -} -function isStrictCamelCase(name) { - return (name.length === 0 || - (name[0] === name[0].toLowerCase() && hasStrictCamelHumps(name, false))); -} -function hasStrictCamelHumps(name, isUpper) { - function isUppercaseChar(char) { - return char === char.toUpperCase() && char !== char.toLowerCase(); - } - if (name.startsWith('_')) { - return false; - } - for (let i = 1; i < name.length; ++i) { - if (name[i] === '_') { - return false; - } - if (isUpper === isUppercaseChar(name[i])) { - if (isUpper) { - return false; - } - } - else { - isUpper = !isUpper; - } } - return true; -} -function isSnakeCase(name) { - return (name.length === 0 || - (name === name.toLowerCase() && validateUnderscores(name))); -} -function isUpperCase(name) { - return (name.length === 0 || - (name === name.toUpperCase() && validateUnderscores(name))); + return false; } -/** Check for leading trailing and adjacent underscores */ -function validateUnderscores(name) { - if (name.startsWith('_')) { +function isGlobal(scope) { + if (scope == null) { return false; } - let wasUnderscore = false; - for (let i = 1; i < name.length; ++i) { - if (name[i] === '_') { - if (wasUnderscore) { - return false; - } - wasUnderscore = true; - } - else { - wasUnderscore = false; - } - } - return !wasUnderscore; + return (scope.type === experimental_utils_1.TSESLint.Scope.ScopeType.global || + scope.type === experimental_utils_1.TSESLint.Scope.ScopeType.module); } -const PredefinedFormatToCheckFunction = { - [PredefinedFormats.PascalCase]: isPascalCase, - [PredefinedFormats.StrictPascalCase]: isStrictPascalCase, - [PredefinedFormats.camelCase]: isCamelCase, - [PredefinedFormats.strictCamelCase]: isStrictCamelCase, - [PredefinedFormats.UPPER_CASE]: isUpperCase, - [PredefinedFormats.snake_case]: isSnakeCase, -}; -// #endregion Predefined Format Functions -function selectorTypeToMessageString(selectorType) { - const notCamelCase = selectorType.replace(/([A-Z])/g, ' $1'); - return notCamelCase.charAt(0).toUpperCase() + notCamelCase.slice(1); -} -exports.selectorTypeToMessageString = selectorTypeToMessageString; -function isMetaSelector(selector) { - return selector in MetaSelectors; -} -function normalizeOption(option) { - var _a, _b, _c, _d, _e, _f; - let weight = 0; - (_a = option.modifiers) === null || _a === void 0 ? void 0 : _a.forEach(mod => { - weight |= Modifiers[mod]; - }); - (_b = option.types) === null || _b === void 0 ? void 0 : _b.forEach(mod => { - weight |= TypeModifiers[mod]; - }); - // give selectors with a filter the _highest_ priority - if (option.filter) { - weight |= 1 << 30; - } - const normalizedOption = { - // format options - format: option.format ? option.format.map(f => PredefinedFormats[f]) : null, - custom: option.custom - ? { - regex: new RegExp(option.custom.regex, 'u'), - match: option.custom.match, - } - : null, - leadingUnderscore: option.leadingUnderscore !== undefined - ? UnderscoreOptions[option.leadingUnderscore] - : null, - trailingUnderscore: option.trailingUnderscore !== undefined - ? UnderscoreOptions[option.trailingUnderscore] - : null, - prefix: option.prefix && option.prefix.length > 0 ? option.prefix : null, - suffix: option.suffix && option.suffix.length > 0 ? option.suffix : null, - modifiers: (_d = (_c = option.modifiers) === null || _c === void 0 ? void 0 : _c.map(m => Modifiers[m])) !== null && _d !== void 0 ? _d : null, - types: (_f = (_e = option.types) === null || _e === void 0 ? void 0 : _e.map(m => TypeModifiers[m])) !== null && _f !== void 0 ? _f : null, - filter: option.filter !== undefined - ? typeof option.filter === 'string' - ? { regex: new RegExp(option.filter, 'u'), match: true } - : { - regex: new RegExp(option.filter.regex, 'u'), - match: option.filter.match, - } - : null, - // calculated ordering weight based on modifiers - modifierWeight: weight, - }; - const selectors = Array.isArray(option.selector) - ? option.selector - : [option.selector]; - return Object.assign({ selector: selectors - .map(selector => isMetaSelector(selector) - ? MetaSelectors[selector] - : Selectors[selector]) - .reduce((accumulator, selector) => accumulator | selector) }, normalizedOption); -} -function isCorrectType(node, config, context) { - if (config.types === null) { - return true; - } - const { esTreeNodeToTSNodeMap, program } = util.getParserServices(context); - const checker = program.getTypeChecker(); - const tsNode = esTreeNodeToTSNodeMap.get(node); - const type = checker - .getTypeAtLocation(tsNode) - // remove null and undefined from the type, as we don't care about it here - .getNonNullableType(); - for (const allowedType of config.types) { - switch (allowedType) { - case TypeModifiers.array: - if (isAllTypesMatch(type, t => checker.isArrayType(t) || checker.isTupleType(t))) { - return true; - } - break; - case TypeModifiers.function: - if (isAllTypesMatch(type, t => t.getCallSignatures().length > 0)) { - return true; - } - break; - case TypeModifiers.boolean: - case TypeModifiers.number: - case TypeModifiers.string: { - const typeString = checker.typeToString( - // this will resolve things like true => boolean, 'a' => string and 1 => number - checker.getWidenedType(checker.getBaseTypeOfLiteralType(type))); - const allowedTypeString = TypeModifiers[allowedType]; - if (typeString === allowedTypeString) { - return true; - } - break; - } - } - } - return false; -} -/** - * @returns `true` if the type (or all union types) in the given type return true for the callback - */ -function isAllTypesMatch(type, cb) { - if (type.isUnion()) { - return type.types.every(t => cb(t)); - } - return cb(type); +function requiresQuoting(node, target) { + const name = node.type === experimental_utils_1.AST_NODE_TYPES.Identifier ? node.name : `${node.value}`; + return util.requiresQuoting(name, target); } //# sourceMappingURL=naming-convention.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map index a146c3d33a..7c478c971e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/naming-convention.js.map @@ -1 +1 @@ -{"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/rules/naming-convention.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"naming-convention.js","sourceRoot":"","sources":["../../src/rules/naming-convention.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map index 378fe4c7bf..b1dfd37b8a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js.map @@ -1 +1 @@ -{"version":3,"file":"no-base-to-string.js","sourceRoot":"","sources":["../../src/rules/no-base-to-string.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-base-to-string.js","sourceRoot":"","sources":["../../src/rules/no-base-to-string.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js new file mode 100644 index 0000000000..9d31a5a4b8 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js @@ -0,0 +1,268 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const tsutils = __importStar(require("tsutils")); +const ts = __importStar(require("typescript")); +const util = __importStar(require("../util")); +exports.default = util.createRule({ + name: 'no-confusing-void-expression', + meta: { + docs: { + description: 'Requires expressions of type void to appear in statement position', + category: 'Best Practices', + recommended: false, + requiresTypeChecking: true, + }, + messages: { + invalidVoidExpr: 'Placing a void expression inside another expression is forbidden. ' + + 'Move it to its own statement instead.', + invalidVoidExprWrapVoid: 'Void expressions used inside another expression ' + + 'must be moved to its own statement ' + + 'or marked explicitly with the `void` operator.', + invalidVoidExprArrow: 'Returning a void expression from an arrow function shorthand is forbidden. ' + + 'Please add braces to the arrow function.', + invalidVoidExprArrowWrapVoid: 'Void expressions returned from an arrow function shorthand ' + + 'must be marked explicitly with the `void` operator.', + invalidVoidExprReturn: 'Returning a void expression from a function is forbidden. ' + + 'Please move it before the `return` statement.', + invalidVoidExprReturnLast: 'Returning a void expression from a function is forbidden. ' + + 'Please remove the `return` statement.', + invalidVoidExprReturnWrapVoid: 'Void expressions returned from a function ' + + 'must be marked explicitly with the `void` operator.', + voidExprWrapVoid: 'Mark with an explicit `void` operator', + }, + schema: [ + { + type: 'object', + properties: { + ignoreArrowShorthand: { type: 'boolean' }, + ignoreVoidOperator: { type: 'boolean' }, + }, + additionalProperties: false, + }, + ], + type: 'problem', + fixable: 'code', + }, + defaultOptions: [{}], + create(context, [options]) { + return { + 'AwaitExpression, CallExpression, TaggedTemplateExpression'(node) { + const parserServices = util.getParserServices(context); + const checker = parserServices.program.getTypeChecker(); + const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); + const type = util.getConstrainedTypeAtLocation(checker, tsNode); + if (!tsutils.isTypeFlagSet(type, ts.TypeFlags.VoidLike)) { + // not a void expression + return; + } + const invalidAncestor = findInvalidAncestor(node); + if (invalidAncestor == null) { + // void expression is in valid position + return; + } + const sourceCode = context.getSourceCode(); + const wrapVoidFix = (fixer) => { + const nodeText = sourceCode.getText(node); + const newNodeText = `void ${nodeText}`; + return fixer.replaceText(node, newNodeText); + }; + if (invalidAncestor.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression) { + // handle arrow function shorthand + if (options.ignoreVoidOperator) { + // handle wrapping with `void` + return context.report({ + node, + messageId: 'invalidVoidExprArrowWrapVoid', + fix: wrapVoidFix, + }); + } + // handle wrapping with braces + const arrowFunction = invalidAncestor; + return context.report({ + node, + messageId: 'invalidVoidExprArrow', + fix(fixer) { + const arrowBody = arrowFunction.body; + const arrowBodyText = sourceCode.getText(arrowBody); + const newArrowBodyText = `{ ${arrowBodyText}; }`; + if (util.isParenthesized(arrowBody, sourceCode)) { + const bodyOpeningParen = sourceCode.getTokenBefore(arrowBody, util.isOpeningParenToken); + const bodyClosingParen = sourceCode.getTokenAfter(arrowBody, util.isClosingParenToken); + return fixer.replaceTextRange([bodyOpeningParen.range[0], bodyClosingParen.range[1]], newArrowBodyText); + } + return fixer.replaceText(arrowBody, newArrowBodyText); + }, + }); + } + if (invalidAncestor.type === experimental_utils_1.AST_NODE_TYPES.ReturnStatement) { + // handle return statement + if (options.ignoreVoidOperator) { + // handle wrapping with `void` + return context.report({ + node, + messageId: 'invalidVoidExprReturnWrapVoid', + fix: wrapVoidFix, + }); + } + const returnStmt = invalidAncestor; + if (isFinalReturn(returnStmt)) { + // remove the `return` keyword + return context.report({ + node, + messageId: 'invalidVoidExprReturnLast', + fix(fixer) { + const returnValue = returnStmt.argument; + const returnValueText = sourceCode.getText(returnValue); + let newReturnStmtText = `${returnValueText};`; + if (isPreventingASI(returnValue, sourceCode)) { + // put a semicolon at the beginning of the line + newReturnStmtText = `;${newReturnStmtText}`; + } + return fixer.replaceText(returnStmt, newReturnStmtText); + }, + }); + } + // move before the `return` keyword + return context.report({ + node, + messageId: 'invalidVoidExprReturn', + fix(fixer) { + var _a; + const returnValue = returnStmt.argument; + const returnValueText = sourceCode.getText(returnValue); + let newReturnStmtText = `${returnValueText}; return;`; + if (isPreventingASI(returnValue, sourceCode)) { + // put a semicolon at the beginning of the line + newReturnStmtText = `;${newReturnStmtText}`; + } + if (((_a = returnStmt.parent) === null || _a === void 0 ? void 0 : _a.type) !== experimental_utils_1.AST_NODE_TYPES.BlockStatement) { + // e.g. `if (cond) return console.error();` + // add braces if not inside a block + newReturnStmtText = `{ ${newReturnStmtText} }`; + } + return fixer.replaceText(returnStmt, newReturnStmtText); + }, + }); + } + // handle generic case + if (options.ignoreVoidOperator) { + // this would be reported by this rule btw. such irony + return context.report({ + node, + messageId: 'invalidVoidExprWrapVoid', + suggest: [{ messageId: 'voidExprWrapVoid', fix: wrapVoidFix }], + }); + } + context.report({ + node, + messageId: 'invalidVoidExpr', + }); + }, + }; + /** + * Inspects the void expression's ancestors and finds closest invalid one. + * By default anything other than an ExpressionStatement is invalid. + * Parent expressions which can be used for their short-circuiting behavior + * are ignored and their parents are checked instead. + * @param node The void expression node to check. + * @returns Invalid ancestor node if it was found. `null` otherwise. + */ + function findInvalidAncestor(node) { + const parent = util.nullThrows(node.parent, util.NullThrowsReasons.MissingParent); + if (parent.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement) { + // e.g. `{ console.log("foo"); }` + // this is always valid + return null; + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression) { + if (parent.right === node) { + // e.g. `x && console.log(x)` + // this is valid only if the next ancestor is valid + return findInvalidAncestor(parent); + } + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.ConditionalExpression) { + if (parent.consequent === node || parent.alternate === node) { + // e.g. `cond ? console.log(true) : console.log(false)` + // this is valid only if the next ancestor is valid + return findInvalidAncestor(parent); + } + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression) { + // e.g. `() => console.log("foo")` + // this is valid with an appropriate option + if (options.ignoreArrowShorthand) { + return null; + } + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression) { + if (parent.operator === 'void') { + // e.g. `void console.log("foo")` + // this is valid with an appropriate option + if (options.ignoreVoidOperator) { + return null; + } + } + } + // any other parent is invalid + return parent; + } + /** Checks whether the return statement is the last statement in a function body. */ + function isFinalReturn(node) { + // the parent must be a block + const block = util.nullThrows(node.parent, util.NullThrowsReasons.MissingParent); + if (block.type !== experimental_utils_1.AST_NODE_TYPES.BlockStatement) { + // e.g. `if (cond) return;` (not in a block) + return false; + } + // the block's parent must be a function + const blockParent = util.nullThrows(block.parent, util.NullThrowsReasons.MissingParent); + if (![ + experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration, + experimental_utils_1.AST_NODE_TYPES.FunctionExpression, + experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression, + ].includes(blockParent.type)) { + // e.g. `if (cond) { return; }` + // not in a top-level function block + return false; + } + // must be the last child of the block + if (block.body.indexOf(node) < block.body.length - 1) { + // not the last statement in the block + return false; + } + return true; + } + /** + * Checks whether the given node, if placed on its own line, + * would prevent automatic semicolon insertion on the line before. + * + * This happens if the line begins with `(`, `[` or `` ` `` + */ + function isPreventingASI(node, sourceCode) { + const startToken = util.nullThrows(sourceCode.getFirstToken(node), util.NullThrowsReasons.MissingToken('first token', node.type)); + return ['(', '[', '`'].includes(startToken.value); + } + }, +}); +//# sourceMappingURL=no-confusing-void-expression.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js.map new file mode 100644 index 0000000000..f43c15c7b8 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-confusing-void-expression.js.map @@ -0,0 +1 @@ +{"version":3,"file":"no-confusing-void-expression.js","sourceRoot":"","sources":["../../src/rules/no-confusing-void-expression.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-imports.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-imports.js new file mode 100644 index 0000000000..fae271360d --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-imports.js @@ -0,0 +1,126 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const no_duplicate_imports_1 = __importDefault(require("eslint/lib/rules/no-duplicate-imports")); +const util = __importStar(require("../util")); +exports.default = util.createRule({ + name: 'no-duplicate-imports', + meta: { + type: 'problem', + docs: { + description: 'Disallow duplicate imports', + category: 'Best Practices', + recommended: false, + extendsBaseRule: true, + }, + schema: no_duplicate_imports_1.default.meta.schema, + messages: Object.assign(Object.assign({}, no_duplicate_imports_1.default.meta.messages), { importType: '{{module}} type import is duplicated', importTypeAs: '{{module}} type import is duplicated as type export', exportType: '{{module}} type export is duplicated', exportTypeAs: '{{module}} type export is duplicated as type import' }), + }, + defaultOptions: [ + { + includeExports: false, + }, + ], + create(context, [option]) { + const rules = no_duplicate_imports_1.default.create(context); + const includeExports = option.includeExports; + const typeMemberImports = new Set(); + const typeDefaultImports = new Set(); + const typeExports = new Set(); + function report(messageId, node, module) { + context.report({ + messageId, + node, + data: { + module, + }, + }); + } + function isStringLiteral(node) { + return (!!node && + node.type === experimental_utils_1.AST_NODE_TYPES.Literal && + typeof node.value === 'string'); + } + function isAllMemberImport(node) { + return node.specifiers.every(specifier => specifier.type === experimental_utils_1.AST_NODE_TYPES.ImportSpecifier); + } + function checkTypeImport(node) { + if (isStringLiteral(node.source)) { + const value = node.source.value; + const isMemberImport = isAllMemberImport(node); + if (isMemberImport + ? typeMemberImports.has(value) + : typeDefaultImports.has(value)) { + report('importType', node, value); + } + if (includeExports && typeExports.has(value)) { + report('importTypeAs', node, value); + } + if (isMemberImport) { + typeMemberImports.add(value); + } + else { + typeDefaultImports.add(value); + } + } + } + function checkTypeExport(node) { + if (isStringLiteral(node.source)) { + const value = node.source.value; + if (typeExports.has(value)) { + report('exportType', node, value); + } + if (typeMemberImports.has(value) || typeDefaultImports.has(value)) { + report('exportTypeAs', node, value); + } + typeExports.add(value); + } + } + return Object.assign(Object.assign({}, rules), { ImportDeclaration(node) { + if (node.importKind === 'type') { + checkTypeImport(node); + return; + } + rules.ImportDeclaration(node); + }, + ExportNamedDeclaration(node) { + var _a; + if (includeExports && node.exportKind === 'type') { + checkTypeExport(node); + return; + } + (_a = rules.ExportNamedDeclaration) === null || _a === void 0 ? void 0 : _a.call(rules, node); + }, + ExportAllDeclaration(node) { + var _a; + if (includeExports && node.exportKind === 'type') { + checkTypeExport(node); + return; + } + (_a = rules.ExportAllDeclaration) === null || _a === void 0 ? void 0 : _a.call(rules, node); + } }); + }, +}); +//# sourceMappingURL=no-duplicate-imports.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-imports.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-imports.js.map new file mode 100644 index 0000000000..e34b908d8e --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-duplicate-imports.js.map @@ -0,0 +1 @@ +{"version":3,"file":"no-duplicate-imports.js","sourceRoot":"","sources":["../../src/rules/no-duplicate-imports.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map index e081d10c4f..0fe7366e18 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map @@ -1 +1 @@ -{"version":3,"file":"no-empty-function.js","sourceRoot":"","sources":["../../src/rules/no-empty-function.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-empty-function.js","sourceRoot":"","sources":["../../src/rules/no-empty-function.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js index f64ee14783..e0835a12f4 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js @@ -76,7 +76,7 @@ exports.default = util.createRule({ experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration, experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration, experimental_utils_1.AST_NODE_TYPES.TSMethodSignature, - experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction, + experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction, // declare function _8(...args: any[]): unknown; ].includes(node.type); } /** diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map index d9f8f5466c..28c9bcec1d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map @@ -1 +1 @@ -{"version":3,"file":"no-explicit-any.js","sourceRoot":"","sources":["../../src/rules/no-explicit-any.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-explicit-any.js","sourceRoot":"","sources":["../../src/rules/no-explicit-any.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js index 9c0ac371da..0b1263755b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js @@ -48,7 +48,7 @@ exports.default = util.createRule({ } return { 'TSNonNullExpression > TSNonNullExpression': checkExtraNonNullAssertion, - 'MemberExpression[optional = true] > TSNonNullExpression': checkExtraNonNullAssertion, + 'MemberExpression[optional = true] > TSNonNullExpression.object': checkExtraNonNullAssertion, 'CallExpression[optional = true] > TSNonNullExpression.callee': checkExtraNonNullAssertion, }; }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map index ad93d3fe9f..d7bd41bebc 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-non-null-assertion.js.map @@ -1 +1 @@ -{"version":3,"file":"no-extra-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-extra-non-null-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,uBAAuB,EAAE,qCAAqC;SAC/D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,0BAA0B,CACjC,IAAkC;YAElC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS,EAAE,yBAAyB;gBACpC,GAAG,CAAC,KAAK;oBACP,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,2CAA2C,EAAE,0BAA0B;YACvE,yDAAyD,EAAE,0BAA0B;YACrF,8DAA8D,EAAE,0BAA0B;SAC3F,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-extra-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-extra-non-null-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,uBAAuB,EAAE,qCAAqC;SAC/D;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,0BAA0B,CACjC,IAAkC;YAElC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS,EAAE,yBAAyB;gBACpC,GAAG,CAAC,KAAK;oBACP,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,2CAA2C,EAAE,0BAA0B;YACvE,gEAAgE,EAC9D,0BAA0B;YAC5B,8DAA8D,EAC5D,0BAA0B;SAC7B,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js index 713be4ddd4..0dbe52eb51 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js @@ -1,6 +1,6 @@ "use strict"; // any is required to work around manipulating the AST in weird ways -/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); @@ -67,8 +67,9 @@ exports.default = util.createRule({ // reduces the precedence of the node so the rule thinks it needs to be wrapped return rule(Object.assign(Object.assign({}, node), { callee: Object.assign(Object.assign({}, node.callee), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }) })); } - if (node.arguments.length === 1 && ((_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType || - param.type === experimental_utils_1.AST_NODE_TYPES.TSImportType))) { + if (node.arguments.length === 1 && + ((_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType || + param.type === experimental_utils_1.AST_NODE_TYPES.TSImportType))) { return rule(Object.assign(Object.assign({}, node), { arguments: [ Object.assign(Object.assign({}, node.arguments[0]), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }), ] })); @@ -111,13 +112,7 @@ exports.default = util.createRule({ return rules.ConditionalExpression(node); }, // DoWhileStatement - 'ForInStatement, ForOfStatement'(node) { - if (util.isTypeAssertion(node.right)) { - // makes the rule skip checking of the right - return rules['ForInStatement, ForOfStatement'](Object.assign(Object.assign({}, node), { type: experimental_utils_1.AST_NODE_TYPES.ForOfStatement, right: Object.assign(Object.assign({}, node.right), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }) })); - } - return rules['ForInStatement, ForOfStatement'](node); - }, + // ForIn and ForOf are guarded by eslint version ForStatement(node) { // make the rule skip the piece by removing it entirely if (node.init && util.isTypeAssertion(node.init)) { @@ -176,6 +171,32 @@ exports.default = util.createRule({ } }, }; + if (rules.ForInStatement && rules.ForOfStatement) { + overrides.ForInStatement = function (node) { + if (util.isTypeAssertion(node.right)) { + // as of 7.20.0 there's no way to skip checking the right of the ForIn + // so just don't validate it at all + return; + } + return rules.ForInStatement(node); + }; + overrides.ForOfStatement = function (node) { + if (util.isTypeAssertion(node.right)) { + // makes the rule skip checking of the right + return rules.ForOfStatement(Object.assign(Object.assign({}, node), { type: experimental_utils_1.AST_NODE_TYPES.ForOfStatement, right: Object.assign(Object.assign({}, node.right), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }) })); + } + return rules.ForOfStatement(node); + }; + } + else { + overrides['ForInStatement, ForOfStatement'] = function (node) { + if (util.isTypeAssertion(node.right)) { + // makes the rule skip checking of the right + return rules['ForInStatement, ForOfStatement'](Object.assign(Object.assign({}, node), { type: experimental_utils_1.AST_NODE_TYPES.ForOfStatement, right: Object.assign(Object.assign({}, node.right), { type: experimental_utils_1.AST_NODE_TYPES.SequenceExpression }) })); + } + return rules['ForInStatement, ForOfStatement'](node); + }; + } return Object.assign({}, rules, overrides); }, }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map index b3b7d7eace..26bb3a2a36 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map @@ -1 +1 @@ -{"version":3,"file":"no-extra-parens.js","sourceRoot":"","sources":["../../src/rules/no-extra-parens.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-extra-parens.js","sourceRoot":"","sources":["../../src/rules/no-extra-parens.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js index 3e8136974c..d7d9fedb08 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js @@ -74,12 +74,12 @@ exports.default = util.createRule({ return { ClassBody(node) { const parent = node.parent; - if (!parent || parent.superClass) { + if (!parent || parent.superClass || isAllowWithDecorator(parent)) { return; } const reportNode = 'id' in parent && parent.id ? parent.id : parent; if (node.body.length === 0) { - if (allowEmpty || isAllowWithDecorator(parent)) { + if (allowEmpty) { return; } context.report({ diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map index 6865a15f3c..423ee9c5ef 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map @@ -1 +1 @@ -{"version":3,"file":"no-extraneous-class.js","sourceRoot":"","sources":["../../src/rules/no-extraneous-class.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-extraneous-class.js","sourceRoot":"","sources":["../../src/rules/no-extraneous-class.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js index 38191bcb69..bb2cbde79e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js @@ -20,7 +20,6 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const tsutils = __importStar(require("tsutils")); -const ts = __importStar(require("typescript")); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const util = __importStar(require("../util")); exports.default = util.createRule({ @@ -63,11 +62,10 @@ exports.default = util.createRule({ const sourceCode = context.getSourceCode(); return { ExpressionStatement(node) { - const { expression } = parserServices.esTreeNodeToTSNodeMap.get(node); if (options.ignoreIIFE && isAsyncIife(node)) { return; } - if (isUnhandledPromise(checker, expression)) { + if (isUnhandledPromise(checker, node.expression)) { if (options.ignoreVoid) { context.report({ node, @@ -104,39 +102,39 @@ exports.default = util.createRule({ } function isUnhandledPromise(checker, node) { // First, check expressions whose resulting types may not be promise-like - if (ts.isBinaryExpression(node) && - node.operatorToken.kind === ts.SyntaxKind.CommaToken) { + if (node.type === experimental_utils_1.AST_NODE_TYPES.SequenceExpression) { // Any child in a comma expression could return a potentially unhandled // promise, so we check them all regardless of whether the final returned // value is promise-like. - return (isUnhandledPromise(checker, node.left) || - isUnhandledPromise(checker, node.right)); + return node.expressions.some(item => isUnhandledPromise(checker, item)); } - if (ts.isVoidExpression(node) && !options.ignoreVoid) { + if (!options.ignoreVoid && + node.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression && + node.operator === 'void') { // Similarly, a `void` expression always returns undefined, so we need to // see what's inside it without checking the type of the overall expression. - return isUnhandledPromise(checker, node.expression); + return isUnhandledPromise(checker, node.argument); } // Check the type. At this point it can't be unhandled if it isn't a promise - if (!isPromiseLike(checker, node)) { + if (!isPromiseLike(checker, parserServices.esTreeNodeToTSNodeMap.get(node))) { return false; } - if (ts.isCallExpression(node)) { + if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) { // If the outer expression is a call, it must be either a `.then()` or // `.catch()` that handles the promise. return (!isPromiseCatchCallWithHandler(node) && !isPromiseThenCallWithRejectionHandler(node) && !isPromiseFinallyCallWithHandler(node)); } - else if (ts.isConditionalExpression(node)) { + else if (node.type === experimental_utils_1.AST_NODE_TYPES.ConditionalExpression) { // We must be getting the promise-like value from one of the branches of the // ternary. Check them directly. - return (isUnhandledPromise(checker, node.whenFalse) || - isUnhandledPromise(checker, node.whenTrue)); + return (isUnhandledPromise(checker, node.alternate) || + isUnhandledPromise(checker, node.consequent)); } - else if (ts.isPropertyAccessExpression(node) || - ts.isIdentifier(node) || - ts.isNewExpression(node)) { + else if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression || + node.type === experimental_utils_1.AST_NODE_TYPES.Identifier || + node.type === experimental_utils_1.AST_NODE_TYPES.NewExpression) { // If it is just a property access chain or a `new` call (e.g. `foo.bar` or // `new Promise()`), the promise is not handled because it doesn't have the // necessary then/catch call at the end of the chain. @@ -187,18 +185,21 @@ function isFunctionParam(checker, param, node) { return false; } function isPromiseCatchCallWithHandler(expression) { - return (tsutils.isPropertyAccessExpression(expression.expression) && - expression.expression.name.text === 'catch' && + return (expression.callee.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression && + expression.callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + expression.callee.property.name === 'catch' && expression.arguments.length >= 1); } function isPromiseThenCallWithRejectionHandler(expression) { - return (tsutils.isPropertyAccessExpression(expression.expression) && - expression.expression.name.text === 'then' && + return (expression.callee.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression && + expression.callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + expression.callee.property.name === 'then' && expression.arguments.length >= 2); } function isPromiseFinallyCallWithHandler(expression) { - return (tsutils.isPropertyAccessExpression(expression.expression) && - expression.expression.name.text === 'finally' && + return (expression.callee.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression && + expression.callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + expression.callee.property.name === 'finally' && expression.arguments.length >= 1); } //# sourceMappingURL=no-floating-promises.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map index d025287816..67462170ff 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"no-floating-promises.js","sourceRoot":"","sources":["../../src/rules/no-floating-promises.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-floating-promises.js","sourceRoot":"","sources":["../../src/rules/no-floating-promises.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js index 8fbc30cc72..581ccdccdd 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js @@ -38,6 +38,7 @@ exports.default = util.createRule({ description: 'Disallow the use of `eval()`-like methods', category: 'Best Practices', recommended: 'error', + extendsBaseRule: true, requiresTypeChecking: true, }, messages: { @@ -70,6 +71,7 @@ exports.default = util.createRule({ return null; } function isFunctionType(node) { + var _a; const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); const type = checker.getTypeAtLocation(tsNode); const symbol = type.getSymbol(); @@ -77,6 +79,15 @@ exports.default = util.createRule({ tsutils.isSymbolFlagSet(symbol, ts.SymbolFlags.Function | ts.SymbolFlags.Method)) { return true; } + if (symbol && symbol.escapedName === FUNCTION_CONSTRUCTOR) { + const declarations = (_a = symbol.getDeclarations()) !== null && _a !== void 0 ? _a : []; + for (const declaration of declarations) { + const sourceFile = declaration.getSourceFile(); + if (program.isSourceFileDefaultLibrary(sourceFile)) { + return true; + } + } + } const signatures = checker.getSignaturesOfType(type, ts.SignatureKind.Call); return signatures.length > 0; } @@ -88,6 +99,7 @@ exports.default = util.createRule({ return true; case experimental_utils_1.AST_NODE_TYPES.MemberExpression: case experimental_utils_1.AST_NODE_TYPES.Identifier: + case experimental_utils_1.AST_NODE_TYPES.ConditionalExpression: return isFunctionType(node); case experimental_utils_1.AST_NODE_TYPES.CallExpression: return ((node.callee.type === experimental_utils_1.AST_NODE_TYPES.Identifier && diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map index f58a0f96bd..d2f7f02351 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-implied-eval.js.map @@ -1 +1 @@ -{"version":3,"file":"no-implied-eval.js","sourceRoot":"","sources":["../../src/rules/no-implied-eval.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-implied-eval.js","sourceRoot":"","sources":["../../src/rules/no-implied-eval.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,8EAG+C;AAC/C,iDAAmC;AACnC,8CAAgC;AAEhC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AACxC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,cAAc;IACd,aAAa;IACb,YAAY;IACZ,YAAY;CACb,CAAC,CAAC;AAEH,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,kBAAkB,EAAE,4CAA4C;YAChE,qBAAqB,EACnB,wEAAwE;SAC3E;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAExD,SAAS,aAAa,CACpB,IAAqC;YAErC,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAAE;gBAC3C,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;YAED,IACE,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;gBAC9C,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EACvC;gBACA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,EAAE;oBACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;iBAC3B;gBAED,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;oBAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,EACvC;oBACA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;iBAC5B;aACF;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,cAAc,CAAC,IAAmB;;YACzC,MAAM,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAEhC,IACE,MAAM;gBACN,OAAO,CAAC,eAAe,CACrB,MAAM,EACN,EAAE,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAChD,EACD;gBACA,OAAO,IAAI,CAAC;aACb;YAED,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,oBAAoB,EAAE;gBACzD,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,eAAe,EAAE,mCAAI,EAAE,CAAC;gBACpD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACtC,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC/C,IAAI,OAAO,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE;wBAClD,OAAO,IAAI,CAAC;qBACb;iBACF;aACF;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAC5C,IAAI,EACJ,EAAE,CAAC,aAAa,CAAC,IAAI,CACtB,CAAC;YAEF,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,SAAS,UAAU,CAAC,IAAmB;YACrC,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,mCAAc,CAAC,uBAAuB,CAAC;gBAC5C,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,kBAAkB;oBACpC,OAAO,IAAI,CAAC;gBAEd,KAAK,mCAAc,CAAC,gBAAgB,CAAC;gBACrC,KAAK,mCAAc,CAAC,UAAU,CAAC;gBAC/B,KAAK,mCAAc,CAAC,qBAAqB;oBACvC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;gBAE9B,KAAK,mCAAc,CAAC,cAAc;oBAChC,OAAO,CACL,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;wBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;wBAC9B,cAAc,CAAC,IAAI,CAAC,CACrB,CAAC;gBAEJ;oBACE,OAAO,KAAK,CAAC;aAChB;QACH,CAAC;QAED,SAAS,gBAAgB,CACvB,IAAsD;;YAEtD,MAAM,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAE/C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,UAAU,KAAK,IAAI,EAAE;gBACvB,OAAO;aACR;YAED,IAAI,UAAU,KAAK,oBAAoB,EAAE;gBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,IAAI,MAAM,EAAE;oBACV,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,eAAe,EAAE,mCAAI,EAAE,CAAC;oBACpD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;wBACtC,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;wBAC/C,IAAI,OAAO,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE;4BAClD,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;4BAC7D,OAAO;yBACR;qBACF;iBACF;qBAAM;oBACL,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAC7D,OAAO;iBACR;aACF;YAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,OAAO;aACR;YAED,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBAC7D,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;aACpE;QACH,CAAC;QAED,OAAO;YACL,aAAa,EAAE,gBAAgB;YAC/B,cAAc,EAAE,gBAAgB;SACjC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map index a31baf22c4..ba9361106f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map @@ -1 +1 @@ -{"version":3,"file":"no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/no-inferrable-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/no-inferrable-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js index bfa7ae2c97..499999370a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js @@ -12,7 +12,7 @@ exports.default = util_1.createRule({ meta: { type: 'suggestion', docs: { - description: 'disallow `this` keywords outside of classes or class-like objects', + description: 'Disallow `this` keywords outside of classes or class-like objects', category: 'Best Practices', recommended: false, extendsBaseRule: true, @@ -25,30 +25,50 @@ exports.default = util_1.createRule({ defaultOptions: [{ capIsConstructor: true }], create(context) { const rules = no_invalid_this_1.default.create(context); - const argList = []; - return Object.assign(Object.assign({}, rules), { FunctionDeclaration(node) { - argList.push(node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier && param.name === 'this')); + /** + * Since function definitions can be nested we use a stack storing if "this" is valid in the current context. + * + * Example: + * + * function a(this: number) { // valid "this" + * function b() { + * console.log(this); // invalid "this" + * } + * } + * + * When parsing the function declaration of "a" the stack will be: [true] + * When parsing the function declaration of "b" the stack will be: [true, false] + */ + const thisIsValidStack = []; + return Object.assign(Object.assign({}, rules), { ClassProperty() { + thisIsValidStack.push(true); + }, + 'ClassProperty:exit'() { + thisIsValidStack.pop(); + }, + FunctionDeclaration(node) { + thisIsValidStack.push(node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier && param.name === 'this')); // baseRule's work rules.FunctionDeclaration(node); }, 'FunctionDeclaration:exit'(node) { - argList.pop(); + thisIsValidStack.pop(); // baseRule's work rules['FunctionDeclaration:exit'](node); }, FunctionExpression(node) { - argList.push(node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier && param.name === 'this')); + thisIsValidStack.push(node.params.some(param => param.type === experimental_utils_1.AST_NODE_TYPES.Identifier && param.name === 'this')); // baseRule's work rules.FunctionExpression(node); }, 'FunctionExpression:exit'(node) { - argList.pop(); + thisIsValidStack.pop(); // baseRule's work rules['FunctionExpression:exit'](node); }, ThisExpression(node) { - const lastFnArg = argList[argList.length - 1]; - if (lastFnArg) { + const thisIsValidHere = thisIsValidStack[thisIsValidStack.length - 1]; + if (thisIsValidHere) { return; } // baseRule's work diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map index 1d60a4ee46..9e34fa207e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-this.js.map @@ -1 +1 @@ -{"version":3,"file":"no-invalid-this.js","sourceRoot":"","sources":["../../src/rules/no-invalid-this.ts"],"names":[],"mappings":";;;;;;AAAA,8EAG+C;AAC/C,uFAAwD;AACxD,kCAIiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,mEAAmE;YACrE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,QAAQ,QAAE,yBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,cAAc,EAAE,oBAAoB;SACrC;QACD,MAAM,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,yBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,OAAO,GAAc,EAAE,CAAC;QAE9B,uCACK,KAAK,KACR,mBAAmB,CAAC,IAAkC;gBACpD,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACpE,CACF,CAAC;gBACF,kBAAkB;gBAClB,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,0BAA0B,CAAC,IAAkC;gBAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,kBAAkB;gBAClB,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,kBAAkB,CAAC,IAAiC;gBAClD,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACpE,CACF,CAAC;gBACF,kBAAkB;gBAClB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,yBAAyB,CAAC,IAAiC;gBACzD,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,kBAAkB;gBAClB,KAAK,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,cAAc,CAAC,IAA6B;gBAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE9C,IAAI,SAAS,EAAE;oBACb,OAAO;iBACR;gBAED,kBAAkB;gBAClB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-invalid-this.js","sourceRoot":"","sources":["../../src/rules/no-invalid-this.ts"],"names":[],"mappings":";;;;;;AAAA,8EAG+C;AAC/C,uFAAwD;AACxD,kCAIiB;AAKjB,kBAAe,iBAAU,CAAsB;IAC7C,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,mEAAmE;YACrE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,QAAQ,EAAE,MAAA,yBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,cAAc,EAAE,oBAAoB;SACrC;QACD,MAAM,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,yBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC;;;;;;;;;;;;;WAaG;QACH,MAAM,gBAAgB,GAAc,EAAE,CAAC;QAEvC,uCACK,KAAK,KACR,aAAa;gBACX,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YACD,oBAAoB;gBAClB,gBAAgB,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;YACD,mBAAmB,CAAC,IAAkC;gBACpD,gBAAgB,CAAC,IAAI,CACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACpE,CACF,CAAC;gBACF,kBAAkB;gBAClB,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,0BAA0B,CAAC,IAAkC;gBAC3D,gBAAgB,CAAC,GAAG,EAAE,CAAC;gBACvB,kBAAkB;gBAClB,KAAK,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,kBAAkB,CAAC,IAAiC;gBAClD,gBAAgB,CAAC,IAAI,CACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CACpE,CACF,CAAC;gBACF,kBAAkB;gBAClB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,yBAAyB,CAAC,IAAiC;gBACzD,gBAAgB,CAAC,GAAG,EAAE,CAAC;gBACvB,kBAAkB;gBAClB,KAAK,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,cAAc,CAAC,IAA6B;gBAC1C,MAAM,eAAe,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEtE,IAAI,eAAe,EAAE;oBACnB,OAAO;iBACR;gBAED,kBAAkB;gBAClB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js index eff4c2bfeb..e0eb740a45 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js @@ -34,6 +34,8 @@ exports.default = util.createRule({ invalidVoidForGeneric: '{{ generic }} may not have void as a type variable', invalidVoidNotReturnOrGeneric: 'void is only valid as a return type or generic type variable', invalidVoidNotReturn: 'void is only valid as a return type', + invalidVoidNotReturnOrThisParam: 'void is only valid as return type or type of `this` parameter', + invalidVoidNotReturnOrThisParamOrGeneric: 'void is only valid as a return type or generic type variable or the type of a `this` parameter', }, schema: [ { @@ -49,15 +51,20 @@ exports.default = util.createRule({ }, ], }, + allowAsThisParameter: { + type: 'boolean', + }, }, additionalProperties: false, }, ], }, - defaultOptions: [{ allowInGenericTypeArguments: true }], - create(context, [{ allowInGenericTypeArguments }]) { + defaultOptions: [ + { allowInGenericTypeArguments: true, allowAsThisParameter: false }, + ], + create(context, [{ allowInGenericTypeArguments, allowAsThisParameter }]) { const validParents = [ - experimental_utils_1.AST_NODE_TYPES.TSTypeAnnotation, + experimental_utils_1.AST_NODE_TYPES.TSTypeAnnotation, // ]; const invalidGrandParents = [ experimental_utils_1.AST_NODE_TYPES.TSPropertySignature, @@ -107,7 +114,9 @@ exports.default = util.createRule({ } if (!allowInGenericTypeArguments) { context.report({ - messageId: 'invalidVoidNotReturn', + messageId: allowAsThisParameter + ? 'invalidVoidNotReturnOrThisParam' + : 'invalidVoidNotReturn', node, }); } @@ -124,7 +133,8 @@ exports.default = util.createRule({ // allows any T<..., void, ...> here, checked by checkGenericTypeArgument (member.type === experimental_utils_1.AST_NODE_TYPES.TSTypeReference && ((_a = member.typeParameters) === null || _a === void 0 ? void 0 : _a.type) === - experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation && ((_b = member.typeParameters) === null || _b === void 0 ? void 0 : _b.params.map(param => param.type).includes(experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword))); + experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation && + ((_b = member.typeParameters) === null || _b === void 0 ? void 0 : _b.params.map(param => param.type).includes(experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword))); }); } return { @@ -145,15 +155,26 @@ exports.default = util.createRule({ isValidUnionType(node.parent)) { return; } + // this parameter is ok to be void. + if (allowAsThisParameter && + node.parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeAnnotation && + node.parent.parent.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + node.parent.parent.name === 'this') { + return; + } // default cases if (validParents.includes(node.parent.type) && !invalidGrandParents.includes(node.parent.parent.type)) { return; } context.report({ - messageId: allowInGenericTypeArguments - ? 'invalidVoidNotReturnOrGeneric' - : 'invalidVoidNotReturn', + messageId: allowInGenericTypeArguments && allowAsThisParameter + ? 'invalidVoidNotReturnOrThisParamOrGeneric' + : allowInGenericTypeArguments + ? 'invalidVoidNotReturnOrGeneric' + : allowAsThisParameter + ? 'invalidVoidNotReturnOrThisParam' + : 'invalidVoidNotReturn', node, }); }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map index ec011fc43f..b878013650 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-invalid-void-type.js.map @@ -1 +1 @@ -{"version":3,"file":"no-invalid-void-type.js","sourceRoot":"","sources":["../../src/rules/no-invalid-void-type.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-invalid-void-type.js","sourceRoot":"","sources":["../../src/rules/no-invalid-void-type.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map index 45c6496cd7..6532ada16f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js.map @@ -1 +1 @@ -{"version":3,"file":"no-loop-func.js","sourceRoot":"","sources":["../../src/rules/no-loop-func.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iFAAqD;AACrD,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,sFAAsF;YACxF,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,QAAE,sBAAQ,aAAR,sBAAQ,uBAAR,sBAAQ,CAAE,IAAI,CAAC,QAAQ,mCAAI;YACnC,UAAU,EACR,uFAAuF;SAC1F;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ;;;;;;;WAOG;QACH,SAAS,aAAa,CACpB,IAGgC;YAEhC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO;aACR;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;YAC9C,MAAM,UAAU,GAAG,UAAU;iBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,YAAY;oBACvB,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;iBACnD,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,uBAAuB,EAAE,aAAa;YACtC,kBAAkB,EAAE,aAAa;YACjC,mBAAmB,EAAE,aAAa;SACnC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,IAAmB;IAChD,KACE,IAAI,WAAW,GAAG,IAAI,EACtB,WAAW,CAAC,MAAM,EAClB,WAAW,GAAG,WAAW,CAAC,MAAM,EAChC;QACA,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAElC,QAAQ,MAAM,CAAC,IAAI,EAAE;YACnB,KAAK,mCAAc,CAAC,cAAc,CAAC;YACnC,KAAK,mCAAc,CAAC,gBAAgB;gBAClC,OAAO,MAAM,CAAC;YAEhB,KAAK,mCAAc,CAAC,YAAY;gBAC9B,iCAAiC;gBACjC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;oBAC/B,OAAO,MAAM,CAAC;iBACf;gBACD,MAAM;YAER,KAAK,mCAAc,CAAC,cAAc,CAAC;YACnC,KAAK,mCAAc,CAAC,cAAc;gBAChC,kCAAkC;gBAClC,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,EAAE;oBAChC,OAAO,MAAM,CAAC;iBACf;gBACD,MAAM;YAER,KAAK,mCAAc,CAAC,uBAAuB,CAAC;YAC5C,KAAK,mCAAc,CAAC,kBAAkB,CAAC;YACvC,KAAK,mCAAc,CAAC,mBAAmB;gBACrC,2CAA2C;gBAC3C,OAAO,IAAI,CAAC;YAEd;gBACE,MAAM;SACT;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,IAAmB,EACnB,YAA8C;IAE9C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,kBAAkB,GAAyB,IAAI,CAAC;IAEpD,OAAO,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;QAClE,IAAI,GAAG,kBAAkB,CAAC;QAC1B,kBAAkB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;KAChE;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CACb,QAAuB,EACvB,SAAmC;;IAEnC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,MAAM,UAAU,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC;IACvC,MAAM,IAAI,GACR,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB;QACtD,CAAC,CAAC,WAAW,CAAC,IAAI;QAClB,CAAC,CAAC,EAAE,CAAC;IAET,+BAA+B;IAC/B,yEAAyE;IACzE,IAAI,SAAS,CAAC,eAAe,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,mDAAmD;IACnD,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,OAAO,IAAI,CAAC;KACb;IAED;;;OAGG;IACH,IACE,IAAI,KAAK,KAAK;QACd,WAAW;QACX,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EACxC;QACA,OAAO,IAAI,CAAC;KACb;IAED;;;OAGG;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;SACzE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEZ;;;;;;;;;;;OAWG;IACH,SAAS,eAAe,CAAC,QAAkC;;QACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;QAE/B,OAAO,CACL,CAAC,QAAQ,CAAC,OAAO,EAAE;YACnB,CAAC,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,aAAa,MAAK,QAAQ,CAAC,IAAI,CAAC,aAAa;gBAC7D,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CACxB,CAAC;IACJ,CAAC;IAED,aAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,KAAK,CAAC,eAAe,oCAAK,KAAK,CAAC;AAC9D,CAAC"} \ No newline at end of file +{"version":3,"file":"no-loop-func.js","sourceRoot":"","sources":["../../src/rules/no-loop-func.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js index 154caa1828..c9db54bec0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js @@ -50,12 +50,12 @@ exports.default = util.createRule({ } // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion const rules = baseRule.create(context); - function isSeperatedNumeric(node) { + function isSeparatedNumeric(node) { return typeof node.value === 'number' && node.raw.includes('_'); } return { Literal(node) { - rules.Literal(Object.assign(Object.assign({}, node), { raw: isSeperatedNumeric(node) ? node.raw.replace(/_/g, '') : node.raw })); + rules.Literal(Object.assign(Object.assign({}, node), { raw: isSeparatedNumeric(node) ? node.raw.replace(/_/g, '') : node.raw })); }, }; }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map index ad268ed9e6..efba133a1f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loss-of-precision.js.map @@ -1 +1 @@ -{"version":3,"file":"no-loss-of-precision.js","sourceRoot":"","sources":["../../src/rules/no-loss-of-precision.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,8CAAgC;AAEhC,MAAM,QAAQ,GAAG,CAAC,GAA2B,EAAE;IAC7C,IAAI;QACF,OAAO,OAAO,CAAC,uCAAuC,CAAC,CAAC;KACzD;IAAC,WAAM;QACN,0BAA0B;QAC1B,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC,EAAE,CAAC;AAKL,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,QAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,QAAQ,mCAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE;KAC/D;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,wBAAwB,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC9C,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;SACH;QAED,4EAA4E;QAC5E,MAAM,KAAK,GAAG,QAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExC,SAAS,kBAAkB,CAAC,IAAsB;YAChD,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;YACL,OAAO,CAAC,IAAsB;gBAC5B,KAAK,CAAC,OAAO,iCACR,IAAI,KACP,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IACrE,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-loss-of-precision.js","sourceRoot":"","sources":["../../src/rules/no-loss-of-precision.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAEA,8CAAgC;AAEhC,MAAM,QAAQ,GAAG,CAAC,GAA2B,EAAE;IAC7C,IAAI;QACF,OAAO,OAAO,CAAC,uCAAuC,CAAC,CAAC;KACzD;IAAC,WAAM;QACN,0BAA0B;QAC1B,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC,EAAE,CAAC;AAKL,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,QAAQ,mCAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE;KAC/D;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,wBAAwB,CAAC,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC9C,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;SACH;QAED,4EAA4E;QAC5E,MAAM,KAAK,GAAG,QAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAExC,SAAS,kBAAkB,CAAC,IAAsB;YAChD,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,OAAO;YACL,OAAO,CAAC,IAAsB;gBAC5B,KAAK,CAAC,OAAO,CAAC,gCACT,IAAI,KACP,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAC7D,CAAC,CAAC;YACd,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map index 98542b9b7a..2e566986e5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map @@ -1 +1 @@ -{"version":3,"file":"no-magic-numbers.js","sourceRoot":"","sources":["../../src/rules/no-magic-numbers.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-magic-numbers.js","sourceRoot":"","sources":["../../src/rules/no-magic-numbers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js index 5c5b72fc32..9d652a935e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js @@ -19,6 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const tsutils = __importStar(require("tsutils")); const ts = __importStar(require("typescript")); const util = __importStar(require("../util")); @@ -59,20 +60,15 @@ exports.default = util.createRule({ create(context, [{ checksConditionals, checksVoidReturn }]) { const parserServices = util.getParserServices(context); const checker = parserServices.program.getTypeChecker(); + const checkedNodes = new Set(); const conditionalChecks = { ConditionalExpression: checkTestConditional, DoWhileStatement: checkTestConditional, ForStatement: checkTestConditional, IfStatement: checkTestConditional, - LogicalExpression(node) { - // We only check the lhs of a logical expression because the rhs might - // be the return value of a short circuit expression. - checkConditional(node.left); - }, - UnaryExpression(node) { - if (node.operator === '!') { - checkConditional(node.argument); - } + LogicalExpression: checkConditional, + 'UnaryExpression[operator="!"]'(node) { + checkConditional(node.argument, true); }, WhileStatement: checkTestConditional, }; @@ -82,10 +78,32 @@ exports.default = util.createRule({ }; function checkTestConditional(node) { if (node.test) { - checkConditional(node.test); + checkConditional(node.test, true); } } - function checkConditional(node) { + /** + * This function analyzes the type of a node and checks if it is a Promise in a boolean conditional. + * It uses recursion when checking nested logical operators. + * @param node The AST node to check. + * @param isTestExpr Whether the node is a descendant of a test expression. + */ + function checkConditional(node, isTestExpr = false) { + // prevent checking the same node multiple times + if (checkedNodes.has(node)) { + return; + } + checkedNodes.add(node); + if (node.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression) { + // ignore the left operand for nullish coalescing expressions not in a context of a test expression + if (node.operator !== '??' || isTestExpr) { + checkConditional(node.left, isTestExpr); + } + // we ignore the right operand when not in a context of a test expression + if (isTestExpr) { + checkConditional(node.right, isTestExpr); + } + return; + } const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); if (isAlwaysThenable(checker, tsNode)) { context.report({ diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map index ae24636023..052135c86e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"no-misused-promises.js","sourceRoot":"","sources":["../../src/rules/no-misused-promises.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-misused-promises.js","sourceRoot":"","sources":["../../src/rules/no-misused-promises.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map index db4bd761b1..ab30c4bd9d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map @@ -1 +1 @@ -{"version":3,"file":"no-namespace.js","sourceRoot":"","sources":["../../src/rules/no-namespace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,uBAAuB,EACrB,kFAAkF;SACrF;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;qBAChB;oBACD,oBAAoB,EAAE;wBACpB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEvC,SAAS,aAAa,CAAC,IAAkC;;YACvD,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,IAAI;gBACrB,CAAC,OAAA,IAAI,CAAC,MAAO,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB;oBAC/D,aAAa,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,CACtC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,yDAAyD,CACvD,IAAkC;gBAElC,IACE,CAAC,IAAI,CAAC,MAAM;oBACV,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAAC;oBAC1D,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACzD,CAAC,iBAAiB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAC1C;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,yBAAyB;iBACrC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-namespace.js","sourceRoot":"","sources":["../../src/rules/no-namespace.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,8DAA8D;YAChE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,uBAAuB,EACrB,kFAAkF;SACrF;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,iBAAiB,EAAE;wBACjB,IAAI,EAAE,SAAS;qBAChB;oBACD,oBAAoB,EAAE;wBACpB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEvC,SAAS,aAAa,CAAC,IAAkC;;YACvD,OAAO,CACL,IAAI,CAAC,OAAO,KAAK,IAAI;gBACrB,CAAC,CAAA,MAAA,IAAI,CAAC,MAAO,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,mBAAmB;oBAC/D,aAAa,CAAC,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,CACtC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,yDAAyD,CACvD,IAAkC;gBAElC,IACE,CAAC,IAAI,CAAC,MAAM;oBACV,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAAC;oBAC1D,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACzD,CAAC,iBAAiB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAC1C;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,yBAAyB;iBACrC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map index 4f1d31ddb9..824449fb1b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map @@ -1 +1 @@ -{"version":3,"file":"no-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-non-null-assertion.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-non-null-assertion.js","sourceRoot":"","sources":["../../src/rules/no-non-null-assertion.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js index ccea8a9530..744ab80463 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js @@ -21,28 +21,6 @@ var __importStar = (this && this.__importStar) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const util = __importStar(require("../util")); -// https://github.com/lodash/lodash/blob/86a852fe763935bb64c12589df5391fd7d3bb14d/escapeRegExp.js -const reRegExpChar = /[\\^$.*+?()[\]{}|]/g; -const reHasRegExpChar = RegExp(reRegExpChar.source); -function escapeRegExp(str) { - return str && reHasRegExpChar.test(str) - ? str.replace(reRegExpChar, '\\$&') - : str || ''; -} -function getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) { - const namePattern = new RegExp(`[\\s,]${escapeRegExp(name)}(?:$|[\\s,:])`, 'gu'); - // To ignore the first text "global". - namePattern.lastIndex = comment.value.indexOf('global') + 6; - // Search a given variable name. - const match = namePattern.exec(comment.value); - // Convert the index to loc. - const start = sourceCode.getLocFromIndex(comment.range[0] + '/*'.length + (match ? match.index + 1 : 0)); - const end = { - line: start.line, - column: start.column + (match ? name.length : 1), - }; - return { start, end }; -} exports.default = util.createRule({ name: 'no-redeclare', meta: { @@ -103,7 +81,7 @@ exports.default = util.createRule({ yield { type: 'comment', node: comment, - loc: getNameLocationInGlobalDirectiveComment(sourceCode, comment, variable.name), + loc: util.getNameLocationInGlobalDirectiveComment(sourceCode, comment, variable.name), }; } } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map index 38aac7aa9a..30eb376a1d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-redeclare.js.map @@ -1 +1 @@ -{"version":3,"file":"no-redeclare.js","sourceRoot":"","sources":["../../src/rules/no-redeclare.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-redeclare.js","sourceRoot":"","sources":["../../src/rules/no-redeclare.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js index e70d5c17e0..39a3dee92e 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js @@ -20,6 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const scope_manager_1 = require("@typescript-eslint/scope-manager"); const util = __importStar(require("../util")); exports.default = util.createRule({ name: 'no-shadow', @@ -71,6 +72,13 @@ exports.default = util.createRule({ }, ], create(context, [options]) { + /** + * Check if a scope is a TypeScript module augmenting the global namespace. + */ + function isGlobalAugmentation(scope) { + return ((scope.type === scope_manager_1.ScopeType.tsModule && !!scope.block.global) || + (!!scope.upper && isGlobalAugmentation(scope.upper))); + } /** * Check if variable is a `this` parameter. */ @@ -103,6 +111,62 @@ exports.default = util.createRule({ const id = variable.identifiers[0]; return util.isFunctionType(id.parent); } + function isGenericOfStaticMethod(variable) { + if (!('isTypeVariable' in variable)) { + // this shouldn't happen... + return false; + } + if (!variable.isTypeVariable) { + return false; + } + if (variable.identifiers.length === 0) { + return false; + } + const typeParameter = variable.identifiers[0].parent; + if ((typeParameter === null || typeParameter === void 0 ? void 0 : typeParameter.type) !== experimental_utils_1.AST_NODE_TYPES.TSTypeParameter) { + return false; + } + const typeParameterDecl = typeParameter.parent; + if ((typeParameterDecl === null || typeParameterDecl === void 0 ? void 0 : typeParameterDecl.type) !== experimental_utils_1.AST_NODE_TYPES.TSTypeParameterDeclaration) { + return false; + } + const functionExpr = typeParameterDecl.parent; + if (!functionExpr || + (functionExpr.type !== experimental_utils_1.AST_NODE_TYPES.FunctionExpression && + functionExpr.type !== experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression)) { + return false; + } + const methodDefinition = functionExpr.parent; + if ((methodDefinition === null || methodDefinition === void 0 ? void 0 : methodDefinition.type) !== experimental_utils_1.AST_NODE_TYPES.MethodDefinition) { + return false; + } + return methodDefinition.static; + } + function isGenericOfClassDecl(variable) { + if (!('isTypeVariable' in variable)) { + // this shouldn't happen... + return false; + } + if (!variable.isTypeVariable) { + return false; + } + if (variable.identifiers.length === 0) { + return false; + } + const typeParameter = variable.identifiers[0].parent; + if ((typeParameter === null || typeParameter === void 0 ? void 0 : typeParameter.type) !== experimental_utils_1.AST_NODE_TYPES.TSTypeParameter) { + return false; + } + const typeParameterDecl = typeParameter.parent; + if ((typeParameterDecl === null || typeParameterDecl === void 0 ? void 0 : typeParameterDecl.type) !== experimental_utils_1.AST_NODE_TYPES.TSTypeParameterDeclaration) { + return false; + } + const classDecl = typeParameterDecl.parent; + return (classDecl === null || classDecl === void 0 ? void 0 : classDecl.type) === experimental_utils_1.AST_NODE_TYPES.ClassDeclaration; + } + function isGenericOfAStaticMethodShadow(variable, shadowed) { + return (isGenericOfStaticMethod(variable) && isGenericOfClassDecl(shadowed)); + } /** * Check if variable name is allowed. * @param variable The variable to check. @@ -212,6 +276,10 @@ exports.default = util.createRule({ * @param {Scope} scope Fixme */ function checkForShadows(scope) { + // ignore global augmentation + if (isGlobalAugmentation(scope)) { + return; + } const variables = scope.variables; for (const variable of variables) { // ignore "arguments" @@ -247,6 +315,12 @@ exports.default = util.createRule({ if (isFunctionTypeParameterNameValueShadow(variable, shadowed)) { continue; } + // ignore static class method generic shadowing class generic + // this is impossible for the scope analyser to understand + // so we have to handle this manually in this rule + if (isGenericOfAStaticMethodShadow(variable, shadowed)) { + continue; + } const isESLintGlobal = 'writeable' in shadowed; if ((shadowed.identifiers.length > 0 || (options.builtinGlobals && isESLintGlobal)) && diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map index 188c172737..af2d331e81 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js.map @@ -1 +1 @@ -{"version":3,"file":"no-shadow.js","sourceRoot":"","sources":["../../src/rules/no-shadow.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-shadow.js","sourceRoot":"","sources":["../../src/rules/no-shadow.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js index b11fa4b4db..445f067d05 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js @@ -30,6 +30,7 @@ exports.default = util.createRule({ description: 'Disallow throwing literals as exceptions', category: 'Best Practices', recommended: false, + extendsBaseRule: true, requiresTypeChecking: true, }, schema: [], @@ -73,48 +74,21 @@ exports.default = util.createRule({ } return false; } - function tryGetThrowArgumentType(node) { - switch (node.type) { - case experimental_utils_1.AST_NODE_TYPES.Identifier: - case experimental_utils_1.AST_NODE_TYPES.CallExpression: - case experimental_utils_1.AST_NODE_TYPES.NewExpression: - case experimental_utils_1.AST_NODE_TYPES.MemberExpression: - case experimental_utils_1.AST_NODE_TYPES.TSAsExpression: { - const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); - return checker.getTypeAtLocation(tsNode); - } - case experimental_utils_1.AST_NODE_TYPES.AssignmentExpression: - return tryGetThrowArgumentType(node.right); - case experimental_utils_1.AST_NODE_TYPES.SequenceExpression: - return tryGetThrowArgumentType(node.expressions[node.expressions.length - 1]); - case experimental_utils_1.AST_NODE_TYPES.LogicalExpression: { - const left = tryGetThrowArgumentType(node.left); - return left !== null && left !== void 0 ? left : tryGetThrowArgumentType(node.right); - } - case experimental_utils_1.AST_NODE_TYPES.ConditionalExpression: { - const consequent = tryGetThrowArgumentType(node.consequent); - return consequent !== null && consequent !== void 0 ? consequent : tryGetThrowArgumentType(node.alternate); - } - default: - return null; - } - } function checkThrowArgument(node) { if (node.type === experimental_utils_1.AST_NODE_TYPES.AwaitExpression || node.type === experimental_utils_1.AST_NODE_TYPES.YieldExpression) { return; } - const type = tryGetThrowArgumentType(node); - if (type) { - if (type.flags & ts.TypeFlags.Undefined) { - context.report({ node, messageId: 'undef' }); - return; - } - if (util.isTypeAnyType(type) || - util.isTypeUnknownType(type) || - isErrorLike(type)) { - return; - } + const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); + const type = checker.getTypeAtLocation(tsNode); + if (type.flags & ts.TypeFlags.Undefined) { + context.report({ node, messageId: 'undef' }); + return; + } + if (util.isTypeAnyType(type) || + util.isTypeUnknownType(type) || + isErrorLike(type)) { + return; } context.report({ node, messageId: 'object' }); } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map index 86d94ff0a0..542b5f602b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-throw-literal.js.map @@ -1 +1 @@ -{"version":3,"file":"no-throw-literal.js","sourceRoot":"","sources":["../../src/rules/no-throw-literal.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-throw-literal.js","sourceRoot":"","sources":["../../src/rules/no-throw-literal.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js index 62b9398b42..85926abf32 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js @@ -97,6 +97,7 @@ exports.default = util.createRule({ ]; const aliasTypes = new Set([ experimental_utils_1.AST_NODE_TYPES.TSArrayType, + experimental_utils_1.AST_NODE_TYPES.TSImportType, experimental_utils_1.AST_NODE_TYPES.TSTypeReference, experimental_utils_1.AST_NODE_TYPES.TSLiteralType, experimental_utils_1.AST_NODE_TYPES.TSTypeQuery, @@ -205,9 +206,10 @@ exports.default = util.createRule({ type.node.type.endsWith('Keyword') || aliasTypes.has(type.node.type) || (type.node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeOperator && - type.node.operator === 'readonly' && - type.node.typeAnnotation && - aliasTypes.has(type.node.typeAnnotation.type))) { + (type.node.operator === 'keyof' || + (type.node.operator === 'readonly' && + type.node.typeAnnotation && + aliasTypes.has(type.node.typeAnnotation.type))))) { // alias / keyword checkAndReport(allowAliases, isTopLevel, type, 'Aliases'); } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map index ad55508083..4aeb7b5596 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map @@ -1 +1 @@ -{"version":3,"file":"no-type-alias.js","sourceRoot":"","sources":["../../src/rules/no-type-alias.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-type-alias.js","sourceRoot":"","sources":["../../src/rules/no-type-alias.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js index 1ed42ea8c9..1988f8cdac 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js @@ -338,6 +338,10 @@ exports.default = util_1.createRule({ // Not a callable function return; } + // Predicate is always necessary if it involves `any` or `unknown` + if (returnTypes.some(t => util_1.isTypeAnyType(t) || util_1.isTypeUnknownType(t))) { + return; + } if (!returnTypes.some(isPossiblyFalsy)) { return context.report({ node: callback, @@ -376,7 +380,7 @@ exports.default = util_1.createRule({ return propertyType.types.some(type => isNullablePropertyType(objType, type)); } if (propertyType.isNumberLiteral() || propertyType.isStringLiteral()) { - const propType = checker.getTypeOfPropertyOfType(objType, propertyType.value.toString()); + const propType = util_1.getTypeOfPropertyOfName(checker, objType, propertyType.value.toString()); if (propType) { return util_1.isNullableType(propType, { allowUndefined: true }); } @@ -404,7 +408,7 @@ exports.default = util_1.createRule({ const propertyType = getNodeType(node.property); return isNullablePropertyType(type, propertyType); } - const propType = checker.getTypeOfPropertyOfType(type, property.name); + const propType = util_1.getTypeOfPropertyOfName(checker, type, property.name); return propType && util_1.isNullableType(propType, { allowUndefined: true }); }); return (!isOwnNullable && util_1.isNullableType(prevType, { allowUndefined: true })); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map index 0178403e34..57ab2546b3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-condition.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unnecessary-condition.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-condition.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unnecessary-condition.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-condition.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map index c516a45223..597f0f6ea7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unnecessary-qualifier.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-qualifier.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unnecessary-qualifier.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-qualifier.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js index d8fab61138..eba72f0f24 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js @@ -95,7 +95,7 @@ function getTypeParametersFromType(type, checker) { if (!declarations) { return undefined; } - return util_1.findFirstResult(declarations, decl => tsutils.isClassLikeDeclaration(decl) || + return util_1.findFirstResult(declarations, decl => ts.isClassLike(decl) || ts.isTypeAliasDeclaration(decl) || ts.isInterfaceDeclaration(decl) ? decl.typeParameters diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map index c669509aca..fad81d59d7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-arguments.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unnecessary-type-arguments.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-arguments.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unnecessary-type-arguments.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-arguments.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js index 249849fec9..2ca6df3e4c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js @@ -125,6 +125,27 @@ exports.default = util.createRule({ } return { TSNonNullExpression(node) { + var _a; + if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.AssignmentExpression && + node.parent.operator === '=') { + if (node.parent.left === node) { + context.report({ + node, + messageId: 'contextuallyUnnecessary', + fix(fixer) { + return fixer.removeRange([ + node.expression.range[1], + node.range[1], + ]); + }, + }); + } + // for all other = assignments we ignore non-null checks + // this is because non-null assertions can change the type-flow of the code + // so whilst they might be unnecessary for the assignment - they are necessary + // for following code + return; + } const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node); const type = util.getConstrainedTypeAtLocation(checker, originalNode.expression); if (!util.isNullableType(type)) { @@ -198,15 +219,19 @@ exports.default = util.createRule({ node, messageId: 'unnecessaryAssertion', fix(fixer) { - return originalNode.kind === ts.SyntaxKind.TypeAssertionExpression - ? fixer.removeRange([ - originalNode.getStart(), - originalNode.expression.getStart(), - ]) - : fixer.removeRange([ - originalNode.expression.end, - originalNode.end, - ]); + if (originalNode.kind === ts.SyntaxKind.TypeAssertionExpression) { + const closingAngleBracket = sourceCode.getTokenAfter(node.typeAnnotation); + return (closingAngleBracket === null || closingAngleBracket === void 0 ? void 0 : closingAngleBracket.value) === '>' + ? fixer.removeRange([ + node.range[0], + closingAngleBracket.range[1], + ]) + : null; + } + return fixer.removeRange([ + node.expression.range[1] + 1, + node.range[1], + ]); }, }); } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map index 31dfa14d78..99b0a2145a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js new file mode 100644 index 0000000000..4c57743d98 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js @@ -0,0 +1,90 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const semver = __importStar(require("semver")); +const ts = __importStar(require("typescript")); +const util = __importStar(require("../util")); +const is3dot5 = semver.satisfies(ts.version, `>= 3.5.0 || >= 3.5.1-rc || >= 3.5.0-beta`, { + includePrerelease: true, +}); +const is3dot9 = is3dot5 && + semver.satisfies(ts.version, `>= 3.9.0 || >= 3.9.1-rc || >= 3.9.0-beta`, { + includePrerelease: true, + }); +exports.default = util.createRule({ + name: 'no-unnecessary-type-constraint', + meta: { + docs: { + category: 'Best Practices', + description: 'Disallows unnecessary constraints on generic types', + recommended: false, + suggestion: true, + }, + fixable: 'code', + messages: { + unnecessaryConstraint: 'Constraining the generic type `{{name}}` to `{{constraint}}` does nothing and is unnecessary.', + }, + schema: [], + type: 'suggestion', + }, + defaultOptions: [], + create(context) { + if (!is3dot5) { + return {}; + } + // In theory, we could use the type checker for more advanced constraint types... + // ...but in practice, these types are rare, and likely not worth requiring type info. + // https://github.com/typescript-eslint/typescript-eslint/pull/2516#discussion_r495731858 + const unnecessaryConstraints = is3dot9 + ? new Map([ + [experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword, 'any'], + [experimental_utils_1.AST_NODE_TYPES.TSUnknownKeyword, 'unknown'], + ]) + : new Map([[experimental_utils_1.AST_NODE_TYPES.TSUnknownKeyword, 'unknown']]); + const inJsx = context.getFilename().toLowerCase().endsWith('tsx'); + const checkNode = (node, inArrowFunction) => { + const constraint = unnecessaryConstraints.get(node.constraint.type); + if (constraint) { + context.report({ + data: { + constraint, + name: node.name.name, + }, + fix(fixer) { + return fixer.replaceTextRange([node.name.range[1], node.constraint.range[1]], inArrowFunction && inJsx ? ',' : ''); + }, + messageId: 'unnecessaryConstraint', + node, + }); + } + }; + return { + ':not(ArrowFunctionExpression) > TSTypeParameterDeclaration > TSTypeParameter[constraint]'(node) { + checkNode(node, false); + }, + 'ArrowFunctionExpression > TSTypeParameterDeclaration > TSTypeParameter[constraint]'(node) { + checkNode(node, true); + }, + }; + }, +}); +//# sourceMappingURL=no-unnecessary-type-constraint.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js.map new file mode 100644 index 0000000000..ed95f0bbf4 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-constraint.js.map @@ -0,0 +1 @@ +{"version":3,"file":"no-unnecessary-type-constraint.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-constraint.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,+CAAiC;AACjC,+CAAiC;AACjC,8CAAgC;AAUhC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAC9B,EAAE,CAAC,OAAO,EACV,0CAA0C,EAC1C;IACE,iBAAiB,EAAE,IAAI;CACxB,CACF,CAAC;AAEF,MAAM,OAAO,GACX,OAAO;IACP,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,0CAA0C,EAAE;QACvE,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC;AAEL,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,oDAAoD;YACjE,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,qBAAqB,EACnB,+FAA+F;SAClG;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,EAAE,CAAC;SACX;QAED,iFAAiF;QACjF,sFAAsF;QACtF,yFAAyF;QACzF,MAAM,sBAAsB,GAAG,OAAO;YACpC,CAAC,CAAC,IAAI,GAAG,CAAC;gBACN,CAAC,mCAAc,CAAC,YAAY,EAAE,KAAK,CAAC;gBACpC,CAAC,mCAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC;aAC7C,CAAC;YACJ,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,mCAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,SAAS,GAAG,CAChB,IAAiC,EACjC,eAAwB,EAClB,EAAE;YACR,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEpE,IAAI,UAAU,EAAE;gBACd,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE;wBACJ,UAAU;wBACV,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;qBACrB;oBACD,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,gBAAgB,CAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9C,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC;oBACJ,CAAC;oBACD,SAAS,EAAE,uBAAuB;oBAClC,IAAI;iBACL,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEF,OAAO;YACL,0FAA0F,CACxF,IAAiC;gBAEjC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,oFAAoF,CAClF,IAAiC;gBAEjC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js new file mode 100644 index 0000000000..0cb4cbf644 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js @@ -0,0 +1,227 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const ts = __importStar(require("typescript")); +const util = __importStar(require("../util")); +class FunctionSignature { + constructor(paramTypes, restType) { + this.paramTypes = paramTypes; + this.restType = restType; + this.parameterTypeIndex = 0; + this.hasConsumedArguments = false; + } + static create(checker, tsNode) { + var _a; + const signature = checker.getResolvedSignature(tsNode); + if (!signature) { + return null; + } + const paramTypes = []; + let restType = null; + const parameters = signature.getParameters(); + for (let i = 0; i < parameters.length; i += 1) { + const param = parameters[i]; + const type = checker.getTypeOfSymbolAtLocation(param, tsNode); + const decl = (_a = param.getDeclarations()) === null || _a === void 0 ? void 0 : _a[0]; + if (decl && ts.isParameter(decl) && decl.dotDotDotToken) { + // is a rest param + if (checker.isArrayType(type)) { + restType = { + type: checker.getTypeArguments(type)[0], + kind: 0 /* Array */, + index: i, + }; + } + else if (checker.isTupleType(type)) { + restType = { + typeArguments: checker.getTypeArguments(type), + kind: 1 /* Tuple */, + index: i, + }; + } + else { + restType = { + type, + kind: 2 /* Other */, + index: i, + }; + } + break; + } + paramTypes.push(type); + } + return new this(paramTypes, restType); + } + getNextParameterType() { + const index = this.parameterTypeIndex; + this.parameterTypeIndex += 1; + if (index >= this.paramTypes.length || this.hasConsumedArguments) { + if (this.restType == null) { + return null; + } + switch (this.restType.kind) { + case 1 /* Tuple */: { + const typeArguments = this.restType.typeArguments; + if (this.hasConsumedArguments) { + // all types consumed by a rest - just assume it's the last type + // there is one edge case where this is wrong, but we ignore it because + // it's rare and really complicated to handle + // eg: function foo(...a: [number, ...string[], number]) + return typeArguments[typeArguments.length - 1]; + } + const typeIndex = index - this.restType.index; + if (typeIndex >= typeArguments.length) { + return typeArguments[typeArguments.length - 1]; + } + return typeArguments[typeIndex]; + } + case 0 /* Array */: + case 2 /* Other */: + return this.restType.type; + } + } + return this.paramTypes[index]; + } + consumeRemainingArguments() { + this.hasConsumedArguments = true; + } +} +exports.default = util.createRule({ + name: 'no-unsafe-argument', + meta: { + type: 'problem', + docs: { + description: 'Disallows calling an function with an any type value', + category: 'Possible Errors', + // TODO - enable this with next breaking + recommended: false, + requiresTypeChecking: true, + }, + messages: { + unsafeArgument: 'Unsafe argument of type `{{sender}}` assigned to a parameter of type `{{receiver}}`.', + unsafeTupleSpread: 'Unsafe spread of a tuple type. The {{index}} element is of type `{{sender}}` and is assigned to a parameter of type `{{reciever}}`.', + unsafeArraySpread: 'Unsafe spread of an `any` array type.', + unsafeSpread: 'Unsafe spread of an `any` type.', + }, + schema: [], + }, + defaultOptions: [], + create(context) { + const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context); + const checker = program.getTypeChecker(); + return { + 'CallExpression, NewExpression'(node) { + if (node.arguments.length === 0) { + return; + } + // ignore any-typed calls as these are caught by no-unsafe-call + if (util.isTypeAnyType(checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(node.callee)))) { + return; + } + const tsNode = esTreeNodeToTSNodeMap.get(node); + const signature = FunctionSignature.create(checker, tsNode); + if (!signature) { + return; + } + for (let i = 0; i < node.arguments.length; i += 1) { + const argument = node.arguments[i]; + switch (argument.type) { + // spreads consume + case experimental_utils_1.AST_NODE_TYPES.SpreadElement: { + const spreadArgType = checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(argument.argument)); + if (util.isTypeAnyType(spreadArgType)) { + // foo(...any) + context.report({ + node: argument, + messageId: 'unsafeSpread', + }); + } + else if (util.isTypeAnyArrayType(spreadArgType, checker)) { + // foo(...any[]) + // TODO - we could break down the spread and compare the array type against each argument + context.report({ + node: argument, + messageId: 'unsafeArraySpread', + }); + } + else if (checker.isTupleType(spreadArgType)) { + // foo(...[tuple1, tuple2]) + const spreadTypeArguments = checker.getTypeArguments(spreadArgType); + for (let j = 0; j < spreadTypeArguments.length; j += 1) { + const tupleType = spreadTypeArguments[j]; + const parameterType = signature.getNextParameterType(); + if (parameterType == null) { + continue; + } + const result = util.isUnsafeAssignment(tupleType, parameterType, checker, + // we can't pass the individual tuple members in here as this will most likely be a spread variable + // not a spread array + null); + if (result) { + context.report({ + node: argument, + messageId: 'unsafeTupleSpread', + data: { + sender: checker.typeToString(tupleType), + receiver: checker.typeToString(parameterType), + }, + }); + } + } + if (spreadArgType.target.hasRestElement) { + // the last element was a rest - so all remaining defined arguments can be considered "consumed" + // all remaining arguments should be compared against the rest type (if one exists) + signature.consumeRemainingArguments(); + } + } + else { + // something that's iterable + // handling this will be pretty complex - so we ignore it for now + // TODO - handle generic iterable case + } + break; + } + default: { + const parameterType = signature.getNextParameterType(); + if (parameterType == null) { + continue; + } + const argumentType = checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(argument)); + const result = util.isUnsafeAssignment(argumentType, parameterType, checker, argument); + if (result) { + context.report({ + node: argument, + messageId: 'unsafeArgument', + data: { + sender: checker.typeToString(argumentType), + receiver: checker.typeToString(parameterType), + }, + }); + } + } + } + } + }, + }; + }, +}); +//# sourceMappingURL=no-unsafe-argument.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js.map new file mode 100644 index 0000000000..9c7ae7de82 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-argument.js.map @@ -0,0 +1 @@ +{"version":3,"file":"no-unsafe-argument.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-argument.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js index 42b1f9c55c..6a961f6eb5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js @@ -20,7 +20,9 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const tsutils = __importStar(require("tsutils")); const util = __importStar(require("../util")); +const util_1 = require("../util"); exports.default = util.createRule({ name: 'no-unsafe-assignment', meta: { @@ -32,11 +34,15 @@ exports.default = util.createRule({ requiresTypeChecking: true, }, messages: { - anyAssignment: 'Unsafe assignment of an any value.', - unsafeArrayPattern: 'Unsafe array destructuring of an any array value.', - unsafeArrayPatternFromTuple: 'Unsafe array destructuring of a tuple element with an any value.', + anyAssignment: 'Unsafe assignment of an `any` value.', + anyAssignmentThis: [ + 'Unsafe assignment of an `any` value. `this` is typed as `any`.', + 'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.', + ].join('\n'), + unsafeArrayPattern: 'Unsafe array destructuring of an `any` array value.', + unsafeArrayPatternFromTuple: 'Unsafe array destructuring of a tuple element with an `any` value.', unsafeAssignment: 'Unsafe assignment of type {{sender}} to a variable of type {{receiver}}.', - unsafeArraySpread: 'Unsafe spread of an any value in an array.', + unsafeArraySpread: 'Unsafe spread of an `any` value in an array.', }, schema: [], }, @@ -44,6 +50,8 @@ exports.default = util.createRule({ create(context) { const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context); const checker = program.getTypeChecker(); + const compilerOptions = program.getCompilerOptions(); + const isNoImplicitThis = tsutils.isStrictCompilerOptionEnabled(compilerOptions, 'noImplicitThis'); // returns true if the assignment reported function checkArrayDestructureHelper(receiverNode, senderNode) { if (receiverNode.type !== experimental_utils_1.AST_NODE_TYPES.ArrayPattern) { @@ -170,23 +178,33 @@ exports.default = util.createRule({ var _a; const receiverTsNode = esTreeNodeToTSNodeMap.get(receiverNode); const receiverType = comparisonType === 2 /* Contextual */ - ? (_a = util.getContextualType(checker, receiverTsNode)) !== null && _a !== void 0 ? _a : checker.getTypeAtLocation(receiverTsNode) : checker.getTypeAtLocation(receiverTsNode); + ? (_a = util.getContextualType(checker, receiverTsNode)) !== null && _a !== void 0 ? _a : checker.getTypeAtLocation(receiverTsNode) + : checker.getTypeAtLocation(receiverTsNode); const senderType = checker.getTypeAtLocation(esTreeNodeToTSNodeMap.get(senderNode)); if (util.isTypeAnyType(senderType)) { // handle cases when we assign any ==> unknown. if (util.isTypeUnknownType(receiverType)) { return false; } + let messageId = 'anyAssignment'; + if (!isNoImplicitThis) { + // `var foo = this` + const thisExpression = util_1.getThisExpression(senderNode); + if (thisExpression && + util.isTypeAnyType(util.getConstrainedTypeAtLocation(checker, esTreeNodeToTSNodeMap.get(thisExpression)))) { + messageId = 'anyAssignmentThis'; + } + } context.report({ node: reportingNode, - messageId: 'anyAssignment', + messageId, }); return true; } if (comparisonType === 0 /* None */) { return false; } - const result = util.isUnsafeAssignment(senderType, receiverType, checker); + const result = util.isUnsafeAssignment(senderType, receiverType, checker, senderNode); if (!result) { return false; } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map index 272d4ac330..1b1b1e1ed3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-assignment.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unsafe-assignment.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-assignment.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unsafe-assignment.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-assignment.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js index b3d4b5d6c1..70071d95c2 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js @@ -19,7 +19,9 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); +const tsutils = __importStar(require("tsutils")); const util = __importStar(require("../util")); +const util_1 = require("../util"); exports.default = util.createRule({ name: 'no-unsafe-call', meta: { @@ -31,7 +33,11 @@ exports.default = util.createRule({ requiresTypeChecking: true, }, messages: { - unsafeCall: 'Unsafe call of an any typed value.', + unsafeCall: 'Unsafe call of an `any` typed value.', + unsafeCallThis: [ + 'Unsafe call of an `any` typed value. `this` is typed as `any`.', + 'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.', + ].join('\n'), unsafeNew: 'Unsafe construction of an any type value.', unsafeTemplateTag: 'Unsafe any typed template tag.', }, @@ -41,10 +47,20 @@ exports.default = util.createRule({ create(context) { const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context); const checker = program.getTypeChecker(); + const compilerOptions = program.getCompilerOptions(); + const isNoImplicitThis = tsutils.isStrictCompilerOptionEnabled(compilerOptions, 'noImplicitThis'); function checkCall(node, reportingNode, messageId) { const tsNode = esTreeNodeToTSNodeMap.get(node); const type = util.getConstrainedTypeAtLocation(checker, tsNode); if (util.isTypeAnyType(type)) { + if (!isNoImplicitThis) { + // `this()` or `this.foo()` or `this.foo[bar]()` + const thisExpression = util_1.getThisExpression(node); + if (thisExpression && + util.isTypeAnyType(util.getConstrainedTypeAtLocation(checker, esTreeNodeToTSNodeMap.get(thisExpression)))) { + messageId = 'unsafeCallThis'; + } + } context.report({ node: reportingNode, messageId: messageId, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map index 2f8e7e8b34..1fea13aa2d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-call.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unsafe-call.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-call.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAIhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,oCAAoC;YAChD,SAAS,EAAE,2CAA2C;YACtD,iBAAiB,EAAE,gCAAgC;SACpD;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,SAAS,SAAS,CAChB,IAAmB,EACnB,aAA4B,EAC5B,SAAqB;YAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,2BAA2B,CACzB,IAAuC;gBAEvC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACtC,CAAC;YACD,aAAa,CAAC,IAAI;gBAChB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC;YACD,kCAAkC,CAAC,IAAmB;gBACpD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-unsafe-call.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-call.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,iDAAmC;AACnC,8CAAgC;AAChC,kCAA4C;AAQ5C,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,sCAAsC;YAClD,cAAc,EAAE;gBACd,gEAAgE;gBAChE,2HAA2H;aAC5H,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,2CAA2C;YACtD,iBAAiB,EAAE,gCAAgC;SACpD;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAC5D,eAAe,EACf,gBAAgB,CACjB,CAAC;QAEF,SAAS,SAAS,CAChB,IAAmB,EACnB,aAA4B,EAC5B,SAAqB;YAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,EAAE;oBACrB,gDAAgD;oBAChD,MAAM,cAAc,GAAG,wBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC/C,IACE,cAAc;wBACd,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,4BAA4B,CAC/B,OAAO,EACP,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAC1C,CACF,EACD;wBACA,SAAS,GAAG,gBAAgB,CAAC;qBAC9B;iBACF;gBACD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,SAAS;iBACrB,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,2BAA2B,CACzB,IAAuC;gBAEvC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACtC,CAAC;YACD,aAAa,CAAC,IAAI;gBAChB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC;YACD,kCAAkC,CAAC,IAAmB;gBACpD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js index 21c6c3151d..f169e6a042 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js @@ -20,7 +20,9 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const tsutils = __importStar(require("tsutils")); const util = __importStar(require("../util")); +const util_1 = require("../util"); exports.default = util.createRule({ name: 'no-unsafe-member-access', meta: { @@ -32,7 +34,11 @@ exports.default = util.createRule({ requiresTypeChecking: true, }, messages: { - unsafeMemberExpression: 'Unsafe member access {{property}} on an any value.', + unsafeMemberExpression: 'Unsafe member access {{property}} on an `any` value.', + unsafeThisMemberExpression: [ + 'Unsafe member access {{property}} on an `any` value. `this` is typed as `any`.', + 'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.', + ].join('\n'), unsafeComputedMemberAccess: 'Computed name {{property}} resolves to an any value.', }, schema: [], @@ -41,6 +47,8 @@ exports.default = util.createRule({ create(context) { const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context); const checker = program.getTypeChecker(); + const compilerOptions = program.getCompilerOptions(); + const isNoImplicitThis = tsutils.isStrictCompilerOptionEnabled(compilerOptions, 'noImplicitThis'); const sourceCode = context.getSourceCode(); const stateCache = new Map(); function checkMemberExpression(node) { @@ -63,9 +71,18 @@ exports.default = util.createRule({ stateCache.set(node, state); if (state === 1 /* Unsafe */) { const propertyName = sourceCode.getText(node.property); + let messageId = 'unsafeMemberExpression'; + if (!isNoImplicitThis) { + // `this.foo` or `this.foo[bar]` + const thisExpression = util_1.getThisExpression(node); + if (thisExpression && + util.isTypeAnyType(util.getConstrainedTypeAtLocation(checker, esTreeNodeToTSNodeMap.get(thisExpression)))) { + messageId = 'unsafeThisMemberExpression'; + } + } context.report({ node, - messageId: 'unsafeMemberExpression', + messageId, data: { property: node.computed ? `[${propertyName}]` : `.${propertyName}`, }, @@ -74,7 +91,8 @@ exports.default = util.createRule({ return state; } return { - MemberExpression: checkMemberExpression, + // ignore MemberExpression if it's parent is TSClassImplements or TSInterfaceHeritage + ':not(TSClassImplements, TSInterfaceHeritage) > MemberExpression': checkMemberExpression, 'MemberExpression[computed = true] > *.property'(node) { if ( // x[1] diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map index 4a2df7a7e0..5007b22a0a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-member-access.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unsafe-member-access.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-member-access.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js index 50b809c8c9..d47fa5962d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js @@ -20,8 +20,9 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); -const tsutils_1 = require("tsutils"); +const tsutils = __importStar(require("tsutils")); const util = __importStar(require("../util")); +const util_1 = require("../util"); exports.default = util.createRule({ name: 'no-unsafe-return', meta: { @@ -33,8 +34,12 @@ exports.default = util.createRule({ requiresTypeChecking: true, }, messages: { - unsafeReturn: 'Unsafe return of an {{type}} typed value', - unsafeReturnAssignment: 'Unsafe return of type {{sender}} from function with return type {{receiver}}.', + unsafeReturn: 'Unsafe return of an `{{type}}` typed value.', + unsafeReturnThis: [ + 'Unsafe return of an `{{type}}` typed value. `this` is typed as `any`.', + 'You can try to fix this by turning on the `noImplicitThis` compiler option, or adding a `this` parameter to the function.', + ].join('\n'), + unsafeReturnAssignment: 'Unsafe return of type `{{sender}}` from function with return type `{{receiver}}`.', }, schema: [], }, @@ -42,6 +47,8 @@ exports.default = util.createRule({ create(context) { const { program, esTreeNodeToTSNodeMap } = util.getParserServices(context); const checker = program.getTypeChecker(); + const compilerOptions = program.getCompilerOptions(); + const isNoImplicitThis = tsutils.isStrictCompilerOptionEnabled(compilerOptions, 'noImplicitThis'); function getParentFunctionNode(node) { let current = node.parent; while (current) { @@ -70,12 +77,21 @@ exports.default = util.createRule({ // so we have to use the contextual typing in these cases, i.e. // const foo1: () => Set = () => new Set(); // the return type of the arrow function is Set even though the variable is typed as Set - let functionType = tsutils_1.isExpression(functionTSNode) + let functionType = tsutils.isExpression(functionTSNode) ? util.getContextualType(checker, functionTSNode) : checker.getTypeAtLocation(functionTSNode); if (!functionType) { functionType = checker.getTypeAtLocation(functionTSNode); } + // If there is an explicit type annotation *and* that type matches the actual + // function return type, we shouldn't complain (it's intentional, even if unsafe) + if (functionTSNode.type) { + for (const signature of functionType.getCallSignatures()) { + if (returnNodeType === signature.getReturnType()) { + return; + } + } + } if (anyType !== 2 /* Safe */) { // Allow cases when the declared return type of the function is either unknown or unknown[] // and the function is returning any or any[]. @@ -90,10 +106,19 @@ exports.default = util.createRule({ return; } } + let messageId = 'unsafeReturn'; + if (!isNoImplicitThis) { + // `return this` + const thisExpression = util_1.getThisExpression(returnNode); + if (thisExpression && + util.isTypeAnyType(util.getConstrainedTypeAtLocation(checker, esTreeNodeToTSNodeMap.get(thisExpression)))) { + messageId = 'unsafeReturnThis'; + } + } // If the function return type was not unknown/unknown[], mark usage as unsafeReturn. return context.report({ node: reportingNode, - messageId: 'unsafeReturn', + messageId, data: { type: anyType === 0 /* Any */ ? 'any' : 'any[]', }, @@ -101,13 +126,7 @@ exports.default = util.createRule({ } for (const signature of functionType.getCallSignatures()) { const functionReturnType = signature.getReturnType(); - if (returnNodeType === functionReturnType) { - // don't bother checking if they're the same - // either the function is explicitly declared to return the same type - // or there was no declaration, so the return type is implicit - return; - } - const result = util.isUnsafeAssignment(returnNodeType, functionReturnType, checker); + const result = util.isUnsafeAssignment(returnNodeType, functionReturnType, checker, returnNode); if (!result) { return; } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map index e2f30ca0b5..d22fe7d8ca 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unsafe-return.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unsafe-return.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-return.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unsafe-return.js","sourceRoot":"","sources":["../../src/rules/no-unsafe-return.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map index d9fc64616d..2d5fba8101 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-expressions.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unused-expressions.js","sourceRoot":"","sources":["../../src/rules/no-unused-expressions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,mGAA8D;AAC9D,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,+BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,+BAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,gBAAgB,EACd,wEAAwE;SAC3E;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;QACrB,MAAM,KAAK,GAAG,+BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEvE,SAAS,iBAAiB,CAAC,IAAmB;YAC5C,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EAAE;gBACvE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACtC;YACD,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,qBAAqB,EAAE;gBACtE,OAAO,CACL,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CACnC,CAAC;aACH;YACD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAC9C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IAAI,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACxD,OAAO;iBACR;gBAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-unused-expressions.js","sourceRoot":"","sources":["../../src/rules/no-unused-expressions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,mGAA8D;AAC9D,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,+BAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,MAAA,+BAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,gBAAgB,EACd,wEAAwE;SAC3E;KACF;IACD,cAAc,EAAE;QACd;YACE,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;QACrB,MAAM,KAAK,GAAG,+BAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAEvE,SAAS,iBAAiB,CAAC,IAAmB;YAC5C,IAAI,iBAAiB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB,EAAE;gBACvE,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACtC;YACD,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,qBAAqB,EAAE;gBACtE,OAAO,CACL,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CACnC,CAAC;aACH;YACD,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,CAAC;gBACzD,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAC9C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,mBAAmB,CAAC,IAAI;gBACtB,IAAI,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACxD,OAAO;iBACR;gBAED,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js index fd05722156..b8dea0bfdc 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js @@ -295,7 +295,7 @@ function isUnusedDiagnostic(code) { 6196, 6198, 6199, - 6205, + 6205, // All type parameters are unused. ].includes(code); } /** diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map index d5e15835db..18bf83b5d3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars-experimental.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unused-vars-experimental.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars-experimental.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unused-vars-experimental.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars-experimental.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js index 6d4d3bc000..d7ee5246da 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js @@ -18,14 +18,9 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -var _a; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const scope_manager_1 = require("@typescript-eslint/scope-manager"); -const no_unused_vars_1 = __importDefault(require("eslint/lib/rules/no-unused-vars")); const util = __importStar(require("../util")); exports.default = util.createRule({ name: 'no-unused-vars', @@ -37,149 +32,178 @@ exports.default = util.createRule({ recommended: 'warn', extendsBaseRule: true, }, - schema: no_unused_vars_1.default.meta.schema, - messages: (_a = no_unused_vars_1.default.meta.messages) !== null && _a !== void 0 ? _a : { + schema: [ + { + oneOf: [ + { + enum: ['all', 'local'], + }, + { + type: 'object', + properties: { + vars: { + enum: ['all', 'local'], + }, + varsIgnorePattern: { + type: 'string', + }, + args: { + enum: ['all', 'after-used', 'none'], + }, + ignoreRestSiblings: { + type: 'boolean', + }, + argsIgnorePattern: { + type: 'string', + }, + caughtErrors: { + enum: ['all', 'none'], + }, + caughtErrorsIgnorePattern: { + type: 'string', + }, + }, + additionalProperties: false, + }, + ], + }, + ], + messages: { unusedVar: "'{{varName}}' is {{action}} but never used{{additional}}.", }, }, defaultOptions: [{}], create(context) { - const rules = no_unused_vars_1.default.create(context); const filename = context.getFilename(); + const sourceCode = context.getSourceCode(); const MODULE_DECL_CACHE = new Map(); - /** - * Gets a list of TS module definitions for a specified variable. - * @param variable eslint-scope variable object. - */ - function getModuleNameDeclarations(variable) { - const moduleDeclarations = []; - variable.defs.forEach(def => { - if (def.type === 'TSModuleName') { - moduleDeclarations.push(def.node); + const options = (() => { + var _a, _b, _c, _d; + const options = { + vars: 'all', + args: 'after-used', + ignoreRestSiblings: false, + caughtErrors: 'none', + }; + const firstOption = context.options[0]; + if (firstOption) { + if (typeof firstOption === 'string') { + options.vars = firstOption; } - }); - return moduleDeclarations; - } - /** - * Determine if an identifier is referencing an enclosing name. - * This only applies to declarations that create their own scope (modules, functions, classes) - * @param ref The reference to check. - * @param nodes The candidate function nodes. - * @returns True if it's a self-reference, false if not. - */ - function isBlockSelfReference(ref, nodes) { - let scope = ref.from; - while (scope) { - if (nodes.indexOf(scope.block) >= 0) { - return true; + else { + options.vars = (_a = firstOption.vars) !== null && _a !== void 0 ? _a : options.vars; + options.args = (_b = firstOption.args) !== null && _b !== void 0 ? _b : options.args; + options.ignoreRestSiblings = + (_c = firstOption.ignoreRestSiblings) !== null && _c !== void 0 ? _c : options.ignoreRestSiblings; + options.caughtErrors = + (_d = firstOption.caughtErrors) !== null && _d !== void 0 ? _d : options.caughtErrors; + if (firstOption.varsIgnorePattern) { + options.varsIgnorePattern = new RegExp(firstOption.varsIgnorePattern, 'u'); + } + if (firstOption.argsIgnorePattern) { + options.argsIgnorePattern = new RegExp(firstOption.argsIgnorePattern, 'u'); + } + if (firstOption.caughtErrorsIgnorePattern) { + options.caughtErrorsIgnorePattern = new RegExp(firstOption.caughtErrorsIgnorePattern, 'u'); + } } - scope = scope.upper; } - return false; - } - function isExported(variable, target) { - // TS will require that all merged namespaces/interfaces are exported, so we only need to find one - return variable.defs.some(def => { - var _a, _b; - return def.node.type === target && - (((_a = def.node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration || - ((_b = def.node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration); - }); - } - return Object.assign(Object.assign({}, rules), { 'TSCallSignatureDeclaration, TSConstructorType, TSConstructSignatureDeclaration, TSDeclareFunction, TSEmptyBodyFunctionExpression, TSFunctionType, TSMethodSignature'(node) { - // function type signature params create variables because they can be referenced within the signature, - // but they obviously aren't unused variables for the purposes of this rule. - for (const param of node.params) { - visitPattern(param, name => { - context.markVariableAsUsed(name.name); + return options; + })(); + function collectUnusedVariables() { + var _a, _b, _c; + /** + * Determines if a variable has a sibling rest property + * @param variable eslint-scope variable object. + * @returns True if the variable is exported, false if not. + */ + function hasRestSpreadSibling(variable) { + if (options.ignoreRestSiblings) { + return variable.defs.some(def => { + const propertyNode = def.name.parent; + const patternNode = propertyNode.parent; + return (propertyNode.type === experimental_utils_1.AST_NODE_TYPES.Property && + patternNode.type === experimental_utils_1.AST_NODE_TYPES.ObjectPattern && + patternNode.properties[patternNode.properties.length - 1].type === + experimental_utils_1.AST_NODE_TYPES.RestElement); }); } - }, - TSEnumDeclaration() { - // enum members create variables because they can be referenced within the enum, - // but they obviously aren't unused variables for the purposes of this rule. - const scope = context.getScope(); - for (const variable of scope.variables) { - context.markVariableAsUsed(variable.name); + return false; + } + /** + * Checks whether the given variable is after the last used parameter. + * @param variable The variable to check. + * @returns `true` if the variable is defined after the last used parameter. + */ + function isAfterLastUsedArg(variable) { + const def = variable.defs[0]; + const params = context.getDeclaredVariables(def.node); + const posteriorParams = params.slice(params.indexOf(variable) + 1); + // If any used parameters occur after this parameter, do not report. + return !posteriorParams.some(v => v.references.length > 0 || v.eslintUsed); + } + const unusedVariablesOriginal = util.collectUnusedVariables(context); + const unusedVariablesReturn = []; + for (const variable of unusedVariablesOriginal) { + // explicit global variables don't have definitions. + if (variable.defs.length === 0) { + unusedVariablesReturn.push(variable); + continue; } - }, - TSMappedType(node) { - // mapped types create a variable for their type name, but it's not necessary to reference it, - // so we shouldn't consider it as unused for the purpose of this rule. - context.markVariableAsUsed(node.typeParameter.name.name); - }, - TSModuleDeclaration() { - const childScope = context.getScope(); - const scope = util.nullThrows(context.getScope().upper, util.NullThrowsReasons.MissingToken(childScope.type, 'upper scope')); - for (const variable of scope.variables) { - const moduleNodes = getModuleNameDeclarations(variable); - if (moduleNodes.length === 0 || - // ignore unreferenced module definitions, as the base rule will report on them - variable.references.length === 0 || - // ignore exported nodes - isExported(variable, experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration)) { + const def = variable.defs[0]; + if (variable.scope.type === experimental_utils_1.TSESLint.Scope.ScopeType.global && + options.vars === 'local') { + // skip variables in the global scope if configured to + continue; + } + // skip catch variables + if (def.type === experimental_utils_1.TSESLint.Scope.DefinitionType.CatchClause) { + if (options.caughtErrors === 'none') { continue; } - // check if the only reference to a module's name is a self-reference in its body - // this won't be caught by the base rule because it doesn't understand TS modules - const isOnlySelfReferenced = variable.references.every(ref => { - return isBlockSelfReference(ref, moduleNodes); - }); - if (isOnlySelfReferenced) { - context.report({ - node: variable.identifiers[0], - messageId: 'unusedVar', - data: { - varName: variable.name, - action: 'defined', - additional: '', - }, - }); + // skip ignored parameters + if ('name' in def.name && + ((_a = options.caughtErrorsIgnorePattern) === null || _a === void 0 ? void 0 : _a.test(def.name.name))) { + continue; } } - }, - [[ - 'TSParameterProperty > AssignmentPattern > Identifier.left', - 'TSParameterProperty > Identifier.parameter', - ].join(', ')](node) { - // just assume parameter properties are used as property usage tracking is beyond the scope of this rule - context.markVariableAsUsed(node.name); - }, - ':matches(FunctionDeclaration, FunctionExpression, ArrowFunctionExpression) > Identifier[name="this"].params'(node) { - // this parameters should always be considered used as they're pseudo-parameters - context.markVariableAsUsed(node.name); - }, - 'TSInterfaceDeclaration, TSTypeAliasDeclaration'(node) { - const variable = context.getScope().set.get(node.id.name); - if (!variable) { - return; - } - if (variable.references.length === 0 || - // ignore exported nodes - isExported(variable, node.type)) { - return; + if (def.type === experimental_utils_1.TSESLint.Scope.DefinitionType.Parameter) { + // if "args" option is "none", skip any parameter + if (options.args === 'none') { + continue; + } + // skip ignored parameters + if ('name' in def.name && + ((_b = options.argsIgnorePattern) === null || _b === void 0 ? void 0 : _b.test(def.name.name))) { + continue; + } + // if "args" option is "after-used", skip used variables + if (options.args === 'after-used' && + util.isFunction(def.name.parent) && + !isAfterLastUsedArg(variable)) { + continue; + } } - // check if the type is only self-referenced - // this won't be caught by the base rule because it doesn't understand self-referencing types - const isOnlySelfReferenced = variable.references.every(ref => { - if (ref.identifier.range[0] >= node.range[0] && - ref.identifier.range[1] <= node.range[1]) { - return true; + else { + // skip ignored variables + if ('name' in def.name && + ((_c = options.varsIgnorePattern) === null || _c === void 0 ? void 0 : _c.test(def.name.name))) { + continue; } - return false; - }); - if (isOnlySelfReferenced) { - context.report({ - node: variable.identifiers[0], - messageId: 'unusedVar', - data: { - varName: variable.name, - action: 'defined', - additional: '', - }, - }); } - }, + if (hasRestSpreadSibling(variable)) { + continue; + } + // in case another rule has run and used the collectUnusedVariables, + // we want to ensure our selectors that marked variables as used are respected + if (variable.eslintUsed) { + continue; + } + unusedVariablesReturn.push(variable); + } + return unusedVariablesReturn; + } + return { // declaration file handling [ambientDeclarationSelector(experimental_utils_1.AST_NODE_TYPES.Program, true)](node) { if (!util.isDefinitionFile(filename)) { @@ -187,27 +211,130 @@ exports.default = util.createRule({ } markDeclarationChildAsUsed(node); }, + // module declaration in module declaration should not report unused vars error + // this is workaround as this change should be done in better way + 'TSModuleDeclaration > TSModuleDeclaration'(node) { + if (node.id.type === experimental_utils_1.AST_NODE_TYPES.Identifier) { + let scope = context.getScope(); + if (scope.upper) { + scope = scope.upper; + } + const superVar = scope.set.get(node.id.name); + if (superVar) { + superVar.eslintUsed = true; + } + } + }, + // children of a namespace that is a child of a declared namespace are auto-exported + [ambientDeclarationSelector('TSModuleDeclaration[declare = true] > TSModuleBlock TSModuleDeclaration > TSModuleBlock', false)](node) { + markDeclarationChildAsUsed(node); + }, // declared namespace handling [ambientDeclarationSelector('TSModuleDeclaration[declare = true] > TSModuleBlock', false)](node) { var _a; const moduleDecl = util.nullThrows((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent, util.NullThrowsReasons.MissingParent); - // declared modules with an `export =` statement will only export that one thing + // declared ambient modules with an `export =` statement will only export that one thing // all other statements are not automatically exported in this case - if (checkModuleDeclForExportEquals(moduleDecl)) { + if (moduleDecl.id.type === experimental_utils_1.AST_NODE_TYPES.Literal && + checkModuleDeclForExportEquals(moduleDecl)) { return; } markDeclarationChildAsUsed(node); - } }); + }, + // collect + 'Program:exit'(programNode) { + /** + * Generates the message data about the variable being defined and unused, + * including the ignore pattern if configured. + * @param unusedVar eslint-scope variable object. + * @returns The message data to be used with this unused variable. + */ + function getDefinedMessageData(unusedVar) { + var _a; + const defType = (_a = unusedVar === null || unusedVar === void 0 ? void 0 : unusedVar.defs[0]) === null || _a === void 0 ? void 0 : _a.type; + let type; + let pattern; + if (defType === experimental_utils_1.TSESLint.Scope.DefinitionType.CatchClause && + options.caughtErrorsIgnorePattern) { + type = 'args'; + pattern = options.caughtErrorsIgnorePattern.toString(); + } + else if (defType === experimental_utils_1.TSESLint.Scope.DefinitionType.Parameter && + options.argsIgnorePattern) { + type = 'args'; + pattern = options.argsIgnorePattern.toString(); + } + else if (defType !== experimental_utils_1.TSESLint.Scope.DefinitionType.Parameter && + options.varsIgnorePattern) { + type = 'vars'; + pattern = options.varsIgnorePattern.toString(); + } + const additional = type + ? `. Allowed unused ${type} must match ${pattern}` + : ''; + return { + varName: unusedVar.name, + action: 'defined', + additional, + }; + } + /** + * Generate the warning message about the variable being + * assigned and unused, including the ignore pattern if configured. + * @param unusedVar eslint-scope variable object. + * @returns The message data to be used with this unused variable. + */ + function getAssignedMessageData(unusedVar) { + const additional = options.varsIgnorePattern + ? `. Allowed unused vars must match ${options.varsIgnorePattern.toString()}` + : ''; + return { + varName: unusedVar.name, + action: 'assigned a value', + additional, + }; + } + const unusedVars = collectUnusedVariables(); + for (let i = 0, l = unusedVars.length; i < l; ++i) { + const unusedVar = unusedVars[i]; + // Report the first declaration. + if (unusedVar.defs.length > 0) { + context.report({ + node: unusedVar.references.length + ? unusedVar.references[unusedVar.references.length - 1] + .identifier + : unusedVar.identifiers[0], + messageId: 'unusedVar', + data: unusedVar.references.some(ref => ref.isWrite()) + ? getAssignedMessageData(unusedVar) + : getDefinedMessageData(unusedVar), + }); + // If there are no regular declaration, report the first `/*globals*/` comment directive. + } + else if ('eslintExplicitGlobalComments' in unusedVar && + unusedVar.eslintExplicitGlobalComments) { + const directiveComment = unusedVar.eslintExplicitGlobalComments[0]; + context.report({ + node: programNode, + loc: util.getNameLocationInGlobalDirectiveComment(sourceCode, directiveComment, unusedVar.name), + messageId: 'unusedVar', + data: getDefinedMessageData(unusedVar), + }); + } + } + }, + }; function checkModuleDeclForExportEquals(node) { - var _a, _b; const cached = MODULE_DECL_CACHE.get(node); if (cached != null) { return cached; } - for (const statement of (_b = (_a = node.body) === null || _a === void 0 ? void 0 : _a.body) !== null && _b !== void 0 ? _b : []) { - if (statement.type === experimental_utils_1.AST_NODE_TYPES.TSExportAssignment) { - MODULE_DECL_CACHE.set(node, true); - return true; + if (node.body && node.body.type === experimental_utils_1.AST_NODE_TYPES.TSModuleBlock) { + for (const statement of node.body.body) { + if (statement.type === experimental_utils_1.AST_NODE_TYPES.TSExportAssignment) { + MODULE_DECL_CACHE.set(node, true); + return true; + } } } MODULE_DECL_CACHE.set(node, false); @@ -227,7 +354,7 @@ exports.default = util.createRule({ experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration, experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration, experimental_utils_1.AST_NODE_TYPES.VariableDeclaration, - ].join(', ')})${childDeclare ? '[declare=true]' : ''}`, + ].join(', ')})${childDeclare ? '[declare = true]' : ''}`, ].join(', '); } function markDeclarationChildAsUsed(node) { @@ -253,19 +380,21 @@ exports.default = util.createRule({ } break; } - const scope = context.getScope(); - const { variableScope } = scope; - if (variableScope !== scope) { - for (const id of identifiers) { - const superVar = variableScope.set.get(id.name); - if (superVar) { - superVar.eslintUsed = true; - } - } + let scope = context.getScope(); + const shouldUseUpperScope = [ + experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration, + experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction, + ].includes(node.type); + if (scope.variableScope !== scope) { + scope = scope.variableScope; + } + else if (shouldUseUpperScope && scope.upper) { + scope = scope.upper; } - else { - for (const id of identifiers) { - context.markVariableAsUsed(id.name); + for (const id of identifiers) { + const superVar = scope.set.get(id.name); + if (superVar) { + superVar.eslintUsed = true; } } } @@ -309,6 +438,31 @@ function bar( // bar should be unused _arg: typeof bar ) {} + +--- if an interface is merged into a namespace --- +--- NOTE - TS gets these cases wrong + +namespace Test { + interface Foo { // Foo should be unused here + a: string; + } + export namespace Foo { + export type T = 'b'; + } +} +type T = Test.Foo; // Error: Namespace 'Test' has no exported member 'Foo'. + + +namespace Test { + export interface Foo { + a: string; + } + namespace Foo { // Foo should be unused here + export type T = 'b'; + } +} +type T = Test.Foo.T; // Error: Namespace 'Test' has no exported member 'Foo'. + */ /* diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map index 95f3815328..73af5b4bf3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map @@ -1 +1 @@ -{"version":3,"file":"no-unused-vars.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-unused-vars.js","sourceRoot":"","sources":["../../src/rules/no-unused-vars.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js index 64a01d1c2b..8f2ef47c60 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js @@ -85,12 +85,57 @@ function isOuterVariable(variable, reference) { return (variable.defs[0].type === 'Variable' && variable.scope.variableScope !== reference.from.variableScope); } +/** + * Recursively checks whether or not a given reference has a type query declaration among it's parents + */ +function referenceContainsTypeQuery(node) { + switch (node.type) { + case experimental_utils_1.AST_NODE_TYPES.TSTypeQuery: + return true; + case experimental_utils_1.AST_NODE_TYPES.TSQualifiedName: + case experimental_utils_1.AST_NODE_TYPES.Identifier: + if (!node.parent) { + return false; + } + return referenceContainsTypeQuery(node.parent); + default: + // if we find a different node, there's no chance that we're in a TSTypeQuery + return false; + } +} +/** + * Checks whether or not a given reference is a type reference. + */ +function isTypeReference(reference) { + return (reference.isTypeReference || + referenceContainsTypeQuery(reference.identifier)); +} /** * Checks whether or not a given location is inside of the range of a given node. */ function isInRange(node, location) { return !!node && node.range[0] <= location && location <= node.range[1]; } +/** + * Decorators are transpiled such that the decorator is placed after the class declaration + * So it is considered safe + */ +function isClassRefInClassDecorator(variable, reference) { + if (variable.defs[0].type !== 'ClassName') { + return false; + } + if (!variable.defs[0].node.decorators || + variable.defs[0].node.decorators.length === 0) { + return false; + } + for (const deco of variable.defs[0].node.decorators) { + if (reference.identifier.range[0] >= deco.range[0] && + reference.identifier.range[1] <= deco.range[1]) { + return true; + } + } + return false; +} /** * Checks whether or not a given reference is inside of the initializers of a given variable. * @@ -186,7 +231,7 @@ exports.default = util.createRule({ * @param reference The reference to the variable */ function isForbidden(variable, reference) { - if (reference.isTypeReference && options.ignoreTypeReferences) { + if (options.ignoreTypeReferences && isTypeReference(reference)) { return false; } if (isFunction(variable)) { @@ -223,7 +268,9 @@ exports.default = util.createRule({ variable.identifiers.length === 0 || (variable.identifiers[0].range[1] <= reference.identifier.range[1] && !isInInitializer(variable, reference)) || - !isForbidden(variable, reference)) { + !isForbidden(variable, reference) || + isClassRefInClassDecorator(variable, reference) || + reference.from.type === experimental_utils_1.TSESLint.Scope.ScopeType.functionType) { return; } // Reports. diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map index 4cfeb2fe67..dba0512164 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map @@ -1 +1 @@ -{"version":3,"file":"no-use-before-define.js","sourceRoot":"","sources":["../../src/rules/no-use-before-define.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"no-use-before-define.js","sourceRoot":"","sources":["../../src/rules/no-use-before-define.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map index 865009c387..e989788009 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map @@ -1 +1 @@ -{"version":3,"file":"no-useless-constructor.js","sourceRoot":"","sources":["../../src/rules/no-useless-constructor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qGAA+D;AAC/D,8CAAgC;AAKhC;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAA+B;IACzD,QAAQ,IAAI,CAAC,aAAa,EAAE;QAC1B,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,IACE,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,SAAS;gBAC7C,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAC7B;gBACA,OAAO,KAAK,CAAC;aACd;YACD,MAAM;KACT;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAClB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACrB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAC3D,CACF,CAAC;AACJ,CAAC;AAED,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,gCAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,gCAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,oBAAoB,EAAE,sBAAsB;SAC7C;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,gCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO;YACL,gBAAgB,CAAC,IAAI;gBACnB,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;oBACrD,IAAI,CAAC,KAAK,CAAC,IAAI;oBACf,kBAAkB,CAAC,IAAI,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,EACjB;oBACA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-useless-constructor.js","sourceRoot":"","sources":["../../src/rules/no-useless-constructor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qGAA+D;AAC/D,8CAAgC;AAKhC;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAA+B;IACzD,QAAQ,IAAI,CAAC,aAAa,EAAE;QAC1B,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,IACE,IAAI,CAAC,MAAM;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,SAAS;gBAC7C,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;gBAClC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAC7B;gBACA,OAAO,KAAK,CAAC;aACd;YACD,MAAM;KACT;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAA+B;IAClD,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAClB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACrB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,CAC3D,CACF,CAAC;AACJ,CAAC;AAED,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,gCAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,MAAA,gCAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,oBAAoB,EAAE,sBAAsB;SAC7C;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,gCAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO;YACL,gBAAgB,CAAC,IAAI;gBACnB,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;oBACrD,IAAI,CAAC,KAAK,CAAC,IAAI;oBACf,kBAAkB,CAAC,IAAI,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,EACjB;oBACA,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;iBAC9B;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js index c042fe09a0..8e066696b9 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js @@ -49,6 +49,7 @@ exports.default = util.createRule({ (parent.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator || parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression || parent.type === experimental_utils_1.AST_NODE_TYPES.TSAsExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.TSTypeAssertion || parent.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression)) { context.report({ node, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map index 3d9eefcbfb..413653c141 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map @@ -1 +1 @@ -{"version":3,"file":"no-var-requires.js","sourceRoot":"","sources":["../../src/rules/no-var-requires.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,qEAAqE;YACvE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,iDAAiD;SAC7D;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,cAAc,CAAC,IAA6B;;gBAC1C,MAAM,MAAM,GACV,OAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,eAAe;oBAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;oBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;oBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBAC9B,MAAM;oBACN,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;wBAChD,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAC7C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAC7C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAAC,EAClD;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,WAAW;qBACvB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"no-var-requires.js","sourceRoot":"","sources":["../../src/rules/no-var-requires.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,qEAAqE;YACvE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,iDAAiD;SAC7D;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,cAAc,CAAC,IAA6B;;gBAC1C,MAAM,MAAM,GACV,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,eAAe;oBAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;oBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;oBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBAC9B,MAAM;oBACN,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,kBAAkB;wBAChD,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAC7C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc;wBAC7C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;wBAC9C,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAAC,EAClD;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,WAAW;qBACvB,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js new file mode 100644 index 0000000000..03aa2dd76a --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js @@ -0,0 +1,101 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const tsutils = __importStar(require("tsutils")); +const ts = __importStar(require("typescript")); +const util = __importStar(require("../util")); +exports.default = util.createRule({ + name: 'non-nullable-type-assertion-style', + meta: { + docs: { + category: 'Best Practices', + description: 'Prefers a non-null assertion over explicit type cast when possible', + recommended: false, + requiresTypeChecking: true, + suggestion: true, + }, + fixable: 'code', + messages: { + preferNonNullAssertion: 'Use a ! assertion to more succintly remove null and undefined from the type.', + }, + schema: [], + type: 'suggestion', + }, + defaultOptions: [], + create(context) { + const parserServices = util.getParserServices(context); + const checker = parserServices.program.getTypeChecker(); + const sourceCode = context.getSourceCode(); + const getTypesIfNotLoose = (node) => { + const type = checker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(node)); + if (tsutils.isTypeFlagSet(type, ts.TypeFlags.Any | ts.TypeFlags.Unknown)) { + return undefined; + } + return tsutils.unionTypeParts(type); + }; + const sameTypeWithoutNullish = (assertedTypes, originalTypes) => { + const nonNullishOriginalTypes = originalTypes.filter(type => type.flags !== ts.TypeFlags.Null && + type.flags !== ts.TypeFlags.Undefined); + for (const assertedType of assertedTypes) { + if (!nonNullishOriginalTypes.includes(assertedType)) { + return false; + } + } + for (const originalType of nonNullishOriginalTypes) { + if (!assertedTypes.includes(originalType)) { + return false; + } + } + return true; + }; + const isConstAssertion = (node) => { + return (node.typeAnnotation.type === experimental_utils_1.AST_NODE_TYPES.TSTypeReference && + node.typeAnnotation.typeName.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + node.typeAnnotation.typeName.name === 'const'); + }; + return { + 'TSAsExpression, TSTypeAssertion'(node) { + if (isConstAssertion(node)) { + return; + } + const originalTypes = getTypesIfNotLoose(node.expression); + if (!originalTypes) { + return; + } + const assertedTypes = getTypesIfNotLoose(node.typeAnnotation); + if (!assertedTypes) { + return; + } + if (sameTypeWithoutNullish(assertedTypes, originalTypes)) { + context.report({ + fix(fixer) { + return fixer.replaceText(node, `${sourceCode.getText(node.expression)}!`); + }, + messageId: 'preferNonNullAssertion', + node, + }); + } + }, + }; + }, +}); +//# sourceMappingURL=non-nullable-type-assertion-style.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js.map new file mode 100644 index 0000000000..ffa72ba3c5 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/non-nullable-type-assertion-style.js.map @@ -0,0 +1 @@ +{"version":3,"file":"non-nullable-type-assertion-style.js","sourceRoot":"","sources":["../../src/rules/non-nullable-type-assertion-style.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,iDAAmC;AACnC,+CAAiC;AAEjC,8CAAgC;AAEhC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,mCAAmC;IACzC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EACT,oEAAoE;YACtE,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE,IAAI;SACjB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,sBAAsB,EACpB,8EAA8E;SACjF;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,EAAE;IAElB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAyB,EAAE;YACxE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CACpC,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAC/C,CAAC;YAEF,IACE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EACpE;gBACA,OAAO,SAAS,CAAC;aAClB;YAED,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,MAAM,sBAAsB,GAAG,CAC7B,aAAwB,EACxB,aAAwB,EACf,EAAE;YACX,MAAM,uBAAuB,GAAG,aAAa,CAAC,MAAM,CAClD,IAAI,CAAC,EAAE,CACL,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI;gBAChC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,SAAS,CACxC,CAAC;YAEF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;gBACxC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBACnD,OAAO,KAAK,CAAC;iBACd;aACF;YAED,KAAK,MAAM,YAAY,IAAI,uBAAuB,EAAE;gBAClD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;oBACzC,OAAO,KAAK,CAAC;iBACd;aACF;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,CACvB,IAAwD,EAC/C,EAAE;YACX,OAAO,CACL,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;gBAC3D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;gBAC/D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAC9C,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,iCAAiC,CAC/B,IAAwD;gBAExD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;oBAC1B,OAAO;iBACR;gBAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,CAAC,aAAa,EAAE;oBAClB,OAAO;iBACR;gBAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC9D,IAAI,CAAC,aAAa,EAAE;oBAClB,OAAO;iBACR;gBAED,IAAI,sBAAsB,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE;oBACxD,OAAO,CAAC,MAAM,CAAC;wBACb,GAAG,CAAC,KAAK;4BACP,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,EACJ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAC1C,CAAC;wBACJ,CAAC;wBACD,SAAS,EAAE,wBAAwB;wBACnC,IAAI;qBACL,CAAC,CAAC;iBACJ;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/object-curly-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/object-curly-spacing.js new file mode 100644 index 0000000000..17ad0647e8 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/object-curly-spacing.js @@ -0,0 +1,220 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const object_curly_spacing_1 = __importDefault(require("eslint/lib/rules/object-curly-spacing")); +const util_1 = require("../util"); +exports.default = util_1.createRule({ + name: 'object-curly-spacing', + meta: Object.assign(Object.assign({}, object_curly_spacing_1.default.meta), { docs: { + description: 'Enforce consistent spacing inside braces', + category: 'Stylistic Issues', + recommended: false, + extendsBaseRule: true, + } }), + defaultOptions: ['never'], + create(context) { + const spaced = context.options[0] === 'always'; + const sourceCode = context.getSourceCode(); + /** + * Determines whether an option is set, relative to the spacing option. + * If spaced is "always", then check whether option is set to false. + * If spaced is "never", then check whether option is set to true. + * @param option The option to exclude. + * @returns Whether or not the property is excluded. + */ + function isOptionSet(option) { + return context.options[1] + ? context.options[1][option] === !spaced + : false; + } + const options = { + spaced, + arraysInObjectsException: isOptionSet('arraysInObjects'), + objectsInObjectsException: isOptionSet('objectsInObjects'), + }; + //-------------------------------------------------------------------------- + // Helpers + //-------------------------------------------------------------------------- + /** + * Reports that there shouldn't be a space after the first token + * @param node The node to report in the event of an error. + * @param token The token to use for the report. + */ + function reportNoBeginningSpace(node, token) { + const nextToken = context + .getSourceCode() + .getTokenAfter(token, { includeComments: true }); + context.report({ + node, + loc: { start: token.loc.end, end: nextToken.loc.start }, + messageId: 'unexpectedSpaceAfter', + data: { + token: token.value, + }, + fix(fixer) { + return fixer.removeRange([token.range[1], nextToken.range[0]]); + }, + }); + } + /** + * Reports that there shouldn't be a space before the last token + * @param node The node to report in the event of an error. + * @param token The token to use for the report. + */ + function reportNoEndingSpace(node, token) { + const previousToken = context + .getSourceCode() + .getTokenBefore(token, { includeComments: true }); + context.report({ + node, + loc: { start: previousToken.loc.end, end: token.loc.start }, + messageId: 'unexpectedSpaceBefore', + data: { + token: token.value, + }, + fix(fixer) { + return fixer.removeRange([previousToken.range[1], token.range[0]]); + }, + }); + } + /** + * Reports that there should be a space after the first token + * @param node The node to report in the event of an error. + * @param token The token to use for the report. + */ + function reportRequiredBeginningSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: 'requireSpaceAfter', + data: { + token: token.value, + }, + fix(fixer) { + return fixer.insertTextAfter(token, ' '); + }, + }); + } + /** + * Reports that there should be a space before the last token + * @param node The node to report in the event of an error. + * @param token The token to use for the report. + */ + function reportRequiredEndingSpace(node, token) { + context.report({ + node, + loc: token.loc, + messageId: 'requireSpaceBefore', + data: { + token: token.value, + }, + fix(fixer) { + return fixer.insertTextBefore(token, ' '); + }, + }); + } + /** + * Determines if spacing in curly braces is valid. + * @param node The AST node to check. + * @param first The first token to check (should be the opening brace) + * @param second The second token to check (should be first after the opening brace) + * @param penultimate The penultimate token to check (should be last before closing brace) + * @param last The last token to check (should be closing brace) + */ + function validateBraceSpacing(node, first, second, penultimate, last) { + if (util_1.isTokenOnSameLine(first, second)) { + const firstSpaced = sourceCode.isSpaceBetween(first, second); + const secondType = sourceCode.getNodeByRangeIndex(second.range[0]).type; + const openingCurlyBraceMustBeSpaced = options.arraysInObjectsException && + [ + experimental_utils_1.AST_NODE_TYPES.TSMappedType, + experimental_utils_1.AST_NODE_TYPES.TSIndexSignature, + ].includes(secondType) + ? !options.spaced + : options.spaced; + if (openingCurlyBraceMustBeSpaced && !firstSpaced) { + reportRequiredBeginningSpace(node, first); + } + if (!openingCurlyBraceMustBeSpaced && + firstSpaced && + second.type !== experimental_utils_1.AST_TOKEN_TYPES.Line) { + reportNoBeginningSpace(node, first); + } + } + if (util_1.isTokenOnSameLine(penultimate, last)) { + const shouldCheckPenultimate = (options.arraysInObjectsException && + util_1.isClosingBracketToken(penultimate)) || + (options.objectsInObjectsException && + util_1.isClosingBraceToken(penultimate)); + const penultimateType = shouldCheckPenultimate + ? sourceCode.getNodeByRangeIndex(penultimate.range[0]).type + : undefined; + const closingCurlyBraceMustBeSpaced = (options.arraysInObjectsException && + penultimateType === experimental_utils_1.AST_NODE_TYPES.TSTupleType) || + (options.objectsInObjectsException && + penultimateType !== undefined && + [ + experimental_utils_1.AST_NODE_TYPES.TSMappedType, + experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral, + ].includes(penultimateType)) + ? !options.spaced + : options.spaced; + const lastSpaced = sourceCode.isSpaceBetween(penultimate, last); + if (closingCurlyBraceMustBeSpaced && !lastSpaced) { + reportRequiredEndingSpace(node, last); + } + if (!closingCurlyBraceMustBeSpaced && lastSpaced) { + reportNoEndingSpace(node, last); + } + } + } + /** + * Gets '}' token of an object node. + * + * Because the last token of object patterns might be a type annotation, + * this traverses tokens preceded by the last property, then returns the + * first '}' token. + * @param node The node to get. This node is an + * ObjectExpression or an ObjectPattern. And this node has one or + * more properties. + * @returns '}' token. + */ + function getClosingBraceOfObject(node) { + const lastProperty = node.members[node.members.length - 1]; + return sourceCode.getTokenAfter(lastProperty, util_1.isClosingBraceToken); + } + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + const rules = object_curly_spacing_1.default.create(context); + return Object.assign(Object.assign({}, rules), { TSMappedType(node) { + const first = sourceCode.getFirstToken(node); + const last = sourceCode.getLastToken(node); + const second = sourceCode.getTokenAfter(first, { + includeComments: true, + }); + const penultimate = sourceCode.getTokenBefore(last, { + includeComments: true, + }); + validateBraceSpacing(node, first, second, penultimate, last); + }, + TSTypeLiteral(node) { + if (node.members.length === 0) { + return; + } + const first = sourceCode.getFirstToken(node); + const last = getClosingBraceOfObject(node); + const second = sourceCode.getTokenAfter(first, { + includeComments: true, + }); + const penultimate = sourceCode.getTokenBefore(last, { + includeComments: true, + }); + validateBraceSpacing(node, first, second, penultimate, last); + } }); + }, +}); +//# sourceMappingURL=object-curly-spacing.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/object-curly-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/object-curly-spacing.js.map new file mode 100644 index 0000000000..06ea8f23bc --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/object-curly-spacing.js.map @@ -0,0 +1 @@ +{"version":3,"file":"object-curly-spacing.js","sourceRoot":"","sources":["../../src/rules/object-curly-spacing.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map index b7cc1d9944..d63f369ac2 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-for-of.js","sourceRoot":"","sources":["../../src/rules/prefer-for-of.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"prefer-for-of.js","sourceRoot":"","sources":["../../src/rules/prefer-for-of.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js index 0232f5109f..cfffcc0921 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js @@ -19,8 +19,13 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.phrases = void 0; const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const util = __importStar(require("../util")); +exports.phrases = { + [experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral]: 'Type literal', + [experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration]: 'Interface', +}; exports.default = util.createRule({ name: 'prefer-function-type', meta: { @@ -31,7 +36,8 @@ exports.default = util.createRule({ }, fixable: 'code', messages: { - functionTypeOverCallableType: "{{ type }} has only a call signature - use '{{ sigSuggestion }}' instead.", + functionTypeOverCallableType: '{{ literalOrInterface }} only has a call signature, you should use a function type instead.', + unexpectedThisOnFunctionOnlyInterface: "`this` refers to the function type '{{ interfaceName }}', did you intend to use a generic `this` parameter like `(this: Self, ...) => Self` instead?", }, schema: [], type: 'suggestion', @@ -69,64 +75,129 @@ exports.default = util.createRule({ return false; } } - /** - * @param call The call signature causing the diagnostic - * @param parent The parent of the call - * @returns The suggestion to report - */ - function renderSuggestion(call, parent) { - const start = call.range[0]; - const colonPos = call.returnType.range[0] - start; - const text = sourceCode.getText().slice(start, call.range[1]); - let suggestion = `${text.slice(0, colonPos)} =>${text.slice(colonPos + 1)}`; - if (shouldWrapSuggestion(parent.parent)) { - suggestion = `(${suggestion})`; - } - if (parent.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration) { - if (typeof parent.typeParameters !== 'undefined') { - return `type ${sourceCode - .getText() - .slice(parent.id.range[0], parent.typeParameters.range[1])} = ${suggestion}`; - } - return `type ${parent.id.name} = ${suggestion}`; - } - return suggestion.endsWith(';') ? suggestion.slice(0, -1) : suggestion; - } /** * @param member The TypeElement being checked * @param node The parent of member being checked + * @param tsThisTypes */ - function checkMember(member, node) { + function checkMember(member, node, tsThisTypes = null) { if ((member.type === experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration || member.type === experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration) && typeof member.returnType !== 'undefined') { - const suggestion = renderSuggestion(member, node); - const fixStart = node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral - ? node.range[0] - : sourceCode - .getTokens(node) - .filter(token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Keyword && - token.value === 'interface')[0].range[0]; + if (tsThisTypes !== null && + tsThisTypes.length > 0 && + node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration) { + // the message can be confusing if we don't point directly to the `this` node instead of the whole member + // and in favour of generating at most one error we'll only report the first occurrence of `this` if there are multiple + context.report({ + node: tsThisTypes[0], + messageId: 'unexpectedThisOnFunctionOnlyInterface', + data: { + interfaceName: node.id.name, + }, + }); + return; + } + const fixable = node.parent && + node.parent.type === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration; context.report({ node: member, messageId: 'functionTypeOverCallableType', data: { - type: node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral - ? 'Type literal' - : 'Interface', - sigSuggestion: suggestion, - }, - fix(fixer) { - return fixer.replaceTextRange([fixStart, node.range[1]], suggestion); + literalOrInterface: exports.phrases[node.type], }, + fix: fixable + ? null + : (fixer) => { + const fixes = []; + const start = member.range[0]; + const colonPos = member.returnType.range[0] - start; + const text = sourceCode.getText().slice(start, member.range[1]); + const comments = sourceCode + .getCommentsBefore(member) + .concat(sourceCode.getCommentsAfter(member)); + let suggestion = `${text.slice(0, colonPos)} =>${text.slice(colonPos + 1)}`; + const lastChar = suggestion.endsWith(';') ? ';' : ''; + if (lastChar) { + suggestion = suggestion.slice(0, -1); + } + if (shouldWrapSuggestion(node.parent)) { + suggestion = `(${suggestion})`; + } + if (node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration) { + if (typeof node.typeParameters !== 'undefined') { + suggestion = `type ${sourceCode + .getText() + .slice(node.id.range[0], node.typeParameters.range[1])} = ${suggestion}${lastChar}`; + } + else { + suggestion = `type ${node.id.name} = ${suggestion}${lastChar}`; + } + } + const isParentExported = node.parent && + node.parent.type === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration; + if (node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration && + isParentExported) { + const commentsText = comments.reduce((text, comment) => { + return (text + + (comment.type === experimental_utils_1.AST_TOKEN_TYPES.Line + ? `//${comment.value}` + : `/*${comment.value}*/`) + + '\n'); + }, ''); + // comments should move before export and not between export and interface declaration + fixes.push(fixer.insertTextBefore(node.parent, commentsText)); + } + else { + comments.forEach(comment => { + let commentText = comment.type === experimental_utils_1.AST_TOKEN_TYPES.Line + ? `//${comment.value}` + : `/*${comment.value}*/`; + const isCommentOnTheSameLine = comment.loc.start.line === member.loc.start.line; + if (!isCommentOnTheSameLine) { + commentText += '\n'; + } + else { + commentText += ' '; + } + suggestion = commentText + suggestion; + }); + } + const fixStart = node.range[0]; + fixes.push(fixer.replaceTextRange([fixStart, node.range[1]], suggestion)); + return fixes; + }, }); } } + let tsThisTypes = null; + let literalNesting = 0; return { - TSInterfaceDeclaration(node) { + TSInterfaceDeclaration() { + // when entering an interface reset the count of `this`s to empty. + tsThisTypes = []; + }, + 'TSInterfaceDeclaration TSThisType'(node) { + // inside an interface keep track of all ThisType references. + // unless it's inside a nested type literal in which case it's invalid code anyway + // we don't want to incorrectly say "it refers to name" while typescript says it's completely invalid. + if (literalNesting === 0 && tsThisTypes !== null) { + tsThisTypes.push(node); + } + }, + 'TSInterfaceDeclaration:exit'(node) { if (!hasOneSupertype(node) && node.body.body.length === 1) { - checkMember(node.body.body[0], node); + checkMember(node.body.body[0], node, tsThisTypes); } + // on exit check member and reset the array to nothing. + tsThisTypes = null; + }, + // keep track of nested literals to avoid complaining about invalid `this` uses + 'TSInterfaceDeclaration TSTypeLiteral'() { + literalNesting += 1; + }, + 'TSInterfaceDeclaration TSTypeLiteral:exit'() { + literalNesting -= 1; }, 'TSTypeLiteral[members.length = 1]'(node) { checkMember(node.members[0], node); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map index 177925f219..d0073896b6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-function-type.js","sourceRoot":"","sources":["../../src/rules/prefer-function-type.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"prefer-function-type.js","sourceRoot":"","sources":["../../src/rules/prefer-function-type.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js index e352e96457..d3b1c92e65 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js @@ -115,56 +115,56 @@ exports.default = util_1.createRule({ // To string. return String.fromCodePoint(...chars.map(c => c.value)); } - return { - [[ - // a.indexOf(b) !== 1 - "BinaryExpression > CallExpression.left > MemberExpression.callee[property.name='indexOf'][computed=false]", - // a?.indexOf(b) !== 1 - "BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name='indexOf'][computed=false]", - ].join(', ')](node) { - var _a, _b, _c; - // Check if the comparison is equivalent to `includes()`. - const callNode = node.parent; - const compareNode = (((_a = callNode.parent) === null || _a === void 0 ? void 0 : _a.type) === - experimental_utils_1.AST_NODE_TYPES.ChainExpression - ? callNode.parent.parent - : callNode.parent); - const negative = isNegativeCheck(compareNode); - if (!negative && !isPositiveCheck(compareNode)) { - return; - } - // Get the symbol of `indexOf` method. - const tsNode = services.esTreeNodeToTSNodeMap.get(node.property); - const indexofMethodDeclarations = (_b = types - .getSymbolAtLocation(tsNode)) === null || _b === void 0 ? void 0 : _b.getDeclarations(); - if (indexofMethodDeclarations == null || - indexofMethodDeclarations.length === 0) { + function checkArrayIndexOf(node, allowFixing) { + var _a, _b, _c; + // Check if the comparison is equivalent to `includes()`. + const callNode = node.parent; + const compareNode = (((_a = callNode.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ChainExpression + ? callNode.parent.parent + : callNode.parent); + const negative = isNegativeCheck(compareNode); + if (!negative && !isPositiveCheck(compareNode)) { + return; + } + // Get the symbol of `indexOf` method. + const tsNode = services.esTreeNodeToTSNodeMap.get(node.property); + const indexofMethodDeclarations = (_b = types + .getSymbolAtLocation(tsNode)) === null || _b === void 0 ? void 0 : _b.getDeclarations(); + if (indexofMethodDeclarations == null || + indexofMethodDeclarations.length === 0) { + return; + } + // Check if every declaration of `indexOf` method has `includes` method + // and the two methods have the same parameters. + for (const instanceofMethodDecl of indexofMethodDeclarations) { + const typeDecl = instanceofMethodDecl.parent; + const type = types.getTypeAtLocation(typeDecl); + const includesMethodDecl = (_c = type + .getProperty('includes')) === null || _c === void 0 ? void 0 : _c.getDeclarations(); + if (includesMethodDecl == null || + !includesMethodDecl.some(includesMethodDecl => hasSameParameters(includesMethodDecl, instanceofMethodDecl))) { return; } - // Check if every declaration of `indexOf` method has `includes` method - // and the two methods have the same parameters. - for (const instanceofMethodDecl of indexofMethodDeclarations) { - const typeDecl = instanceofMethodDecl.parent; - const type = types.getTypeAtLocation(typeDecl); - const includesMethodDecl = (_c = type - .getProperty('includes')) === null || _c === void 0 ? void 0 : _c.getDeclarations(); - if (includesMethodDecl == null || - !includesMethodDecl.some(includesMethodDecl => hasSameParameters(includesMethodDecl, instanceofMethodDecl))) { - return; + } + // Report it. + context.report(Object.assign({ node: compareNode, messageId: 'preferIncludes' }, (allowFixing && { + *fix(fixer) { + if (negative) { + yield fixer.insertTextBefore(callNode, '!'); } - } - // Report it. - context.report({ - node: compareNode, - messageId: 'preferIncludes', - *fix(fixer) { - if (negative) { - yield fixer.insertTextBefore(callNode, '!'); - } - yield fixer.replaceText(node.property, 'includes'); - yield fixer.removeRange([callNode.range[1], compareNode.range[1]]); - }, - }); + yield fixer.replaceText(node.property, 'includes'); + yield fixer.removeRange([callNode.range[1], compareNode.range[1]]); + }, + }))); + } + return { + // a.indexOf(b) !== 1 + "BinaryExpression > CallExpression.left > MemberExpression.callee[property.name='indexOf'][computed=false]"(node) { + checkArrayIndexOf(node, /* allowFixing */ true); + }, + // a?.indexOf(b) !== 1 + "BinaryExpression > ChainExpression.left > CallExpression > MemberExpression.callee[property.name='indexOf'][computed=false]"(node) { + checkArrayIndexOf(node, /* allowFixing */ false); }, // /bar/.test(foo) 'CallExpression > MemberExpression.callee[property.name="test"][computed=false]'(node) { @@ -198,7 +198,7 @@ exports.default = util_1.createRule({ yield fixer.insertTextBefore(argNode, '('); yield fixer.insertTextAfter(argNode, ')'); } - yield fixer.insertTextAfter(argNode, `${node.optional ? '?.' : '.'}includes(${JSON.stringify(text)}`); + yield fixer.insertTextAfter(argNode, `${node.optional ? '?.' : '.'}includes('${text}'`); }, }); }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map index b0f5b8056f..f434d91398 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-includes.js","sourceRoot":"","sources":["../../src/rules/prefer-includes.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"prefer-includes.js","sourceRoot":"","sources":["../../src/rules/prefer-includes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js index 475f4e7a43..cb8db7875b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js @@ -15,10 +15,24 @@ exports.default = util_1.createRule({ messages: { notLiteral: `Explicit enum value must only be a literal value (string, number, boolean, etc).`, }, - schema: [], + schema: [ + { + type: 'object', + properties: { + allowBitwiseExpressions: { + type: 'boolean', + }, + }, + additionalProperties: false, + }, + ], }, - defaultOptions: [], - create(context) { + defaultOptions: [ + { + allowBitwiseExpressions: false, + }, + ], + create(context, [{ allowBitwiseExpressions }]) { return { TSEnumMember(node) { // If there is no initializer, then this node is just the name of the member, so ignore. @@ -29,10 +43,23 @@ exports.default = util_1.createRule({ if (node.initializer.type === experimental_utils_1.AST_NODE_TYPES.Literal) { return; } + // TemplateLiteral without expressions + if (node.initializer.type === experimental_utils_1.AST_NODE_TYPES.TemplateLiteral && + node.initializer.expressions.length === 0) { + return; + } // -1 and +1 if (node.initializer.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression && - ['+', '-'].includes(node.initializer.operator) && - node.initializer.argument.type === experimental_utils_1.AST_NODE_TYPES.Literal) { + node.initializer.argument.type === experimental_utils_1.AST_NODE_TYPES.Literal && + (['+', '-'].includes(node.initializer.operator) || + (allowBitwiseExpressions && node.initializer.operator === '~'))) { + return; + } + if (allowBitwiseExpressions && + node.initializer.type === experimental_utils_1.AST_NODE_TYPES.BinaryExpression && + ['|', '&', '^', '<<', '>>', '>>>'].includes(node.initializer.operator) && + node.initializer.left.type === experimental_utils_1.AST_NODE_TYPES.Literal && + node.initializer.right.type === experimental_utils_1.AST_NODE_TYPES.Literal) { return; } context.report({ diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map index 9d5f038114..bb8f6b48f5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-literal-enum-member.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-literal-enum-member.js","sourceRoot":"","sources":["../../src/rules/prefer-literal-enum-member.ts"],"names":[],"mappings":";;AAAA,8EAAuE;AACvE,kCAAqC;AAErC,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,sGAAsG;YACxG,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,kFAAkF;SAC/F;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,YAAY,CAAC,IAAI;gBACf,wFAAwF;gBACxF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;oBAC5B,OAAO;iBACR;gBACD,kBAAkB;gBAClB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;oBACpD,OAAO;iBACR;gBACD,YAAY;gBACZ,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBACxD,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EACzD;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"prefer-literal-enum-member.js","sourceRoot":"","sources":["../../src/rules/prefer-literal-enum-member.ts"],"names":[],"mappings":";;AAAA,8EAAuE;AACvE,kCAAqC;AAErC,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,sGAAsG;YACxG,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,KAAK;SAC5B;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,kFAAkF;SAC/F;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,uBAAuB,EAAE;wBACvB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,uBAAuB,EAAE,KAAK;SAC/B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC;QAC3C,OAAO;YACL,YAAY,CAAC,IAAI;gBACf,wFAAwF;gBACxF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;oBAC5B,OAAO;iBACR;gBACD,kBAAkB;gBAClB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;oBACpD,OAAO;iBACR;gBACD,sCAAsC;gBACtC,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBACxD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EACzC;oBACA,OAAO;iBACR;gBACD,YAAY;gBACZ,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe;oBACxD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;oBACzD,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;wBAC7C,CAAC,uBAAuB,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,EACjE;oBACA,OAAO;iBACR;gBAED,IACE,uBAAuB;oBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;oBACzD,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CACzC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAC1B;oBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO;oBACrD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EACtD;oBACA,OAAO;iBACR;gBAED,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,YAAY;iBACxB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js index c8eb961b94..1e3dfdd389 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js @@ -66,7 +66,8 @@ exports.default = util.createRule({ ].join(',')](initialIdentifierOrNotEqualsExpr) { var _a; // selector guarantees this cast - const initialExpression = (((_a = initialIdentifierOrNotEqualsExpr.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ChainExpression + const initialExpression = (((_a = initialIdentifierOrNotEqualsExpr.parent) === null || _a === void 0 ? void 0 : _a.type) === + experimental_utils_1.AST_NODE_TYPES.ChainExpression ? initialIdentifierOrNotEqualsExpr.parent.parent : initialIdentifierOrNotEqualsExpr.parent); if (initialExpression.left !== initialIdentifierOrNotEqualsExpr) { diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map index 1ce75dd7a7..8526b12dd6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-optional-chain.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-optional-chain.js","sourceRoot":"","sources":["../../src/rules/prefer-optional-chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"prefer-optional-chain.js","sourceRoot":"","sources":["../../src/rules/prefer-optional-chain.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js index 1c79049542..e80cf169b4 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js @@ -39,6 +39,9 @@ exports.default = util.createRule({ checkParameterProperties: { type: 'boolean', }, + ignoreInferredTypes: { + type: 'boolean', + }, }, }, ], @@ -49,9 +52,11 @@ exports.default = util.createRule({ defaultOptions: [ { checkParameterProperties: true, + ignoreInferredTypes: false, }, ], - create(context, [{ checkParameterProperties }]) { + create(context, options) { + const [{ checkParameterProperties, ignoreInferredTypes }] = options; const { esTreeNodeToTSNodeMap, program } = util.getParserServices(context); const checker = program.getTypeChecker(); return { @@ -74,6 +79,9 @@ exports.default = util.createRule({ const actualParam = param.type === experimental_utils_1.AST_NODE_TYPES.TSParameterProperty ? param.parameter : param; + if (ignoreInferredTypes && actualParam.typeAnnotation == null) { + continue; + } const tsNode = esTreeNodeToTSNodeMap.get(actualParam); const type = checker.getTypeAtLocation(tsNode); const isReadOnly = util.isTypeReadonly(checker, type); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map index be616c825f..3fca6fec6d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly-parameter-types.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-readonly-parameter-types.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly-parameter-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAShC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,kGAAkG;YACpG,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,wBAAwB,EAAE;wBACxB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,gBAAgB,EAAE,uCAAuC;SAC1D;KACF;IACD,cAAc,EAAE;QACd;YACE,wBAAwB,EAAE,IAAI;SAC/B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,wBAAwB,EAAE,CAAC;QAC5C,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,OAAO;YACL,CAAC;gBACC,mCAAc,CAAC,uBAAuB;gBACtC,mCAAc,CAAC,mBAAmB;gBAClC,mCAAc,CAAC,kBAAkB;gBACjC,mCAAc,CAAC,0BAA0B;gBACzC,mCAAc,CAAC,+BAA+B;gBAC9C,mCAAc,CAAC,iBAAiB;gBAChC,mCAAc,CAAC,6BAA6B;gBAC5C,mCAAc,CAAC,cAAc;gBAC7B,mCAAc,CAAC,iBAAiB;aACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACX,IAS8B;gBAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,IACE,CAAC,wBAAwB;wBACzB,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,EACjD;wBACA,SAAS;qBACV;oBAED,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB;wBAC/C,CAAC,CAAC,KAAK,CAAC,SAAS;wBACjB,CAAC,CAAC,KAAK,CAAC;oBACZ,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtD,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAEtD,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,kBAAkB;yBAC9B,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"prefer-readonly-parameter-types.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly-parameter-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,8CAAgC;AAUhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,kGAAkG;YACpG,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,wBAAwB,EAAE;wBACxB,IAAI,EAAE,SAAS;qBAChB;oBACD,mBAAmB,EAAE;wBACnB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF;SACF;QACD,QAAQ,EAAE;YACR,gBAAgB,EAAE,uCAAuC;SAC1D;KACF;IACD,cAAc,EAAE;QACd;YACE,wBAAwB,EAAE,IAAI;YAC9B,mBAAmB,EAAE,KAAK;SAC3B;KACF;IACD,MAAM,CAAC,OAAO,EAAE,OAAO;QACrB,MAAM,CAAC,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,CAAC,GAAG,OAAO,CAAC;QACpE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAEzC,OAAO;YACL,CAAC;gBACC,mCAAc,CAAC,uBAAuB;gBACtC,mCAAc,CAAC,mBAAmB;gBAClC,mCAAc,CAAC,kBAAkB;gBACjC,mCAAc,CAAC,0BAA0B;gBACzC,mCAAc,CAAC,+BAA+B;gBAC9C,mCAAc,CAAC,iBAAiB;gBAChC,mCAAc,CAAC,6BAA6B;gBAC5C,mCAAc,CAAC,cAAc;gBAC7B,mCAAc,CAAC,iBAAiB;aACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACX,IAS8B;gBAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAC/B,IACE,CAAC,wBAAwB;wBACzB,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB,EACjD;wBACA,SAAS;qBACV;oBAED,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,mCAAc,CAAC,mBAAmB;wBAC/C,CAAC,CAAC,KAAK,CAAC,SAAS;wBACjB,CAAC,CAAC,KAAK,CAAC;oBAEZ,IAAI,mBAAmB,IAAI,WAAW,CAAC,cAAc,IAAI,IAAI,EAAE;wBAC7D,SAAS;qBACV;oBAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACtD,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;oBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAEtD,IAAI,CAAC,UAAU,EAAE;wBACf,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,kBAAkB;yBAC9B,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map index 1aae677d9c..b49afc91b5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-readonly.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"prefer-readonly.js","sourceRoot":"","sources":["../../src/rules/prefer-readonly.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js index a09b655950..7a7a8c4d7a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js @@ -1,11 +1,40 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const tsutils = __importStar(require("tsutils")); const util_1 = require("../util"); +var ArgumentType; +(function (ArgumentType) { + ArgumentType[ArgumentType["Other"] = 0] = "Other"; + ArgumentType[ArgumentType["String"] = 1] = "String"; + ArgumentType[ArgumentType["RegExp"] = 2] = "RegExp"; + ArgumentType[ArgumentType["Both"] = 3] = "Both"; +})(ArgumentType || (ArgumentType = {})); exports.default = util_1.createRule({ name: 'prefer-regexp-exec', defaultOptions: [], meta: { type: 'suggestion', + fixable: 'code', docs: { description: 'Enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided', category: 'Best Practices', @@ -19,33 +48,89 @@ exports.default = util_1.createRule({ }, create(context) { const globalScope = context.getScope(); - const service = util_1.getParserServices(context); - const typeChecker = service.program.getTypeChecker(); + const parserServices = util_1.getParserServices(context); + const typeChecker = parserServices.program.getTypeChecker(); + const sourceCode = context.getSourceCode(); + /** + * Check if a given node type is a string. + * @param node The node type to check. + */ + function isStringType(type) { + return util_1.getTypeName(typeChecker, type) === 'string'; + } /** - * Check if a given node is a string. - * @param node The node to check. + * Check if a given node type is a RegExp. + * @param node The node type to check. */ - function isStringType(node) { - const objectType = typeChecker.getTypeAtLocation(service.esTreeNodeToTSNodeMap.get(node)); - return util_1.getTypeName(typeChecker, objectType) === 'string'; + function isRegExpType(type) { + return util_1.getTypeName(typeChecker, type) === 'RegExp'; + } + function collectArgumentTypes(types) { + let result = ArgumentType.Other; + for (const type of types) { + if (isRegExpType(type)) { + result |= ArgumentType.RegExp; + } + else if (isStringType(type)) { + result |= ArgumentType.String; + } + } + return result; } return { - "CallExpression[arguments.length=1] > MemberExpression.callee[property.name='match'][computed=false]"(node) { - const callNode = node.parent; - const arg = callNode.arguments[0]; - const evaluated = util_1.getStaticValue(arg, globalScope); + "CallExpression[arguments.length=1] > MemberExpression.callee[property.name='match'][computed=false]"(memberNode) { + const objectNode = memberNode.object; + const callNode = memberNode.parent; + const argumentNode = callNode.arguments[0]; + const argumentValue = util_1.getStaticValue(argumentNode, globalScope); + if (!isStringType(typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(objectNode)))) { + return; + } // Don't report regular expressions with global flag. - if (evaluated && - evaluated.value instanceof RegExp && - evaluated.value.flags.includes('g')) { + if (argumentValue && + argumentValue.value instanceof RegExp && + argumentValue.value.flags.includes('g')) { return; } - if (isStringType(node.object)) { - context.report({ - node: callNode, + if (argumentNode.type === experimental_utils_1.AST_NODE_TYPES.Literal && + typeof argumentNode.value == 'string') { + const regExp = RegExp(argumentNode.value); + return context.report({ + node: memberNode.property, messageId: 'regExpExecOverStringMatch', + fix: util_1.getWrappingFixer({ + sourceCode, + node: callNode, + innerNode: [objectNode], + wrap: objectCode => `${regExp.toString()}.exec(${objectCode})`, + }), }); - return; + } + const argumentType = typeChecker.getTypeAtLocation(parserServices.esTreeNodeToTSNodeMap.get(argumentNode)); + const argumentTypes = collectArgumentTypes(tsutils.unionTypeParts(argumentType)); + switch (argumentTypes) { + case ArgumentType.RegExp: + return context.report({ + node: memberNode.property, + messageId: 'regExpExecOverStringMatch', + fix: util_1.getWrappingFixer({ + sourceCode, + node: callNode, + innerNode: [objectNode, argumentNode], + wrap: (objectCode, argumentCode) => `${argumentCode}.exec(${objectCode})`, + }), + }); + case ArgumentType.String: + return context.report({ + node: memberNode.property, + messageId: 'regExpExecOverStringMatch', + fix: util_1.getWrappingFixer({ + sourceCode, + node: callNode, + innerNode: [objectNode, argumentNode], + wrap: (objectCode, argumentCode) => `RegExp(${argumentCode}).exec(${objectCode})`, + }), + }); } }, }; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map index 3aa5e7362f..c58569f7aa 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-regexp-exec.js","sourceRoot":"","sources":["../../src/rules/prefer-regexp-exec.ts"],"names":[],"mappings":";;AACA,kCAKiB;AAEjB,kBAAe,iBAAU,CAAC;IACxB,IAAI,EAAE,oBAAoB;IAC1B,cAAc,EAAE,EAAE;IAElB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,4FAA4F;YAC9F,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,yBAAyB,EAAE,yCAAyC;SACrE;QACD,MAAM,EAAE,EAAE;KACX;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,wBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAErD;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAqC;YACzD,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAC9C,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CACxC,CAAC;YACF,OAAO,kBAAW,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,QAAQ,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,qGAAqG,CACnG,IAA+B;gBAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAiC,CAAC;gBACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,qBAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAEnD,qDAAqD;gBACrD,IACE,SAAS;oBACT,SAAS,CAAC,KAAK,YAAY,MAAM;oBACjC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnC;oBACA,OAAO;iBACR;gBAED,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC7B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,QAAQ;wBACd,SAAS,EAAE,2BAA2B;qBACvC,CAAC,CAAC;oBACH,OAAO;iBACR;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"prefer-regexp-exec.js","sourceRoot":"","sources":["../../src/rules/prefer-regexp-exec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js index 5b3e028305..9786ec5cc8 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js @@ -411,7 +411,8 @@ exports.default = util_1.createRule({ isNegativeIndexExpression(callNode.arguments[0], node.object); const isStartsWith = !isEndsWith && callNode.arguments.length === 2 && - isNumber(callNode.arguments[0], 0); + isNumber(callNode.arguments[0], 0) && + !isNegativeIndexExpression(callNode.arguments[1], node.object); if (!isStartsWith && !isEndsWith) { return; } diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map index 55dc08b9e9..cf9f46e7b0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-string-starts-ends-with.js","sourceRoot":"","sources":["../../src/rules/prefer-string-starts-ends-with.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"prefer-string-starts-ends-with.js","sourceRoot":"","sources":["../../src/rules/prefer-string-starts-ends-with.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js index c0179f8508..e086529eb5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js @@ -19,39 +19,58 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const util = __importStar(require("../util")); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); exports.default = util.createRule({ name: 'prefer-ts-expect-error', meta: { type: 'problem', docs: { - description: 'Recommends using `// @ts-expect-error` over `// @ts-ignore`', + description: 'Recommends using `@ts-expect-error` over `@ts-ignore`', category: 'Best Practices', recommended: false, }, fixable: 'code', messages: { - preferExpectErrorComment: 'Use "// @ts-expect-error" to ensure an error is actually being suppressed.', + preferExpectErrorComment: 'Use "@ts-expect-error" to ensure an error is actually being suppressed.', }, schema: [], }, defaultOptions: [], create(context) { - const tsIgnoreRegExp = /^\/*\s*@ts-ignore/; + const tsIgnoreRegExpSingleLine = /^\s*\/?\s*@ts-ignore/; + const tsIgnoreRegExpMultiLine = /^\s*(?:\/|\*)*\s*@ts-ignore/; const sourceCode = context.getSourceCode(); + function isLineComment(comment) { + return comment.type === experimental_utils_1.AST_TOKEN_TYPES.Line; + } + function getLastCommentLine(comment) { + if (isLineComment(comment)) { + return comment.value; + } + // For multiline comments - we look at only the last line. + const commentlines = comment.value.split('\n'); + return commentlines[commentlines.length - 1]; + } + function isValidTsIgnorePresent(comment) { + const line = getLastCommentLine(comment); + return isLineComment(comment) + ? tsIgnoreRegExpSingleLine.test(line) + : tsIgnoreRegExpMultiLine.test(line); + } return { Program() { const comments = sourceCode.getAllComments(); comments.forEach(comment => { - if (comment.type !== experimental_utils_1.AST_TOKEN_TYPES.Line) { - return; - } - if (tsIgnoreRegExp.test(comment.value)) { + if (isValidTsIgnorePresent(comment)) { + const lineCommentRuleFixer = (fixer) => fixer.replaceText(comment, `//${comment.value.replace('@ts-ignore', '@ts-expect-error')}`); + const blockCommentRuleFixer = (fixer) => fixer.replaceText(comment, `/*${comment.value.replace('@ts-ignore', '@ts-expect-error')}*/`); context.report({ node: comment, messageId: 'preferExpectErrorComment', - fix: fixer => fixer.replaceText(comment, `//${comment.value.replace('@ts-ignore', '@ts-expect-error')}`), + fix: isLineComment(comment) + ? lineCommentRuleFixer + : blockCommentRuleFixer, }); } }); diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map index 3b812041e6..4680747487 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-ts-expect-error.js.map @@ -1 +1 @@ -{"version":3,"file":"prefer-ts-expect-error.js","sourceRoot":"","sources":["../../src/rules/prefer-ts-expect-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAAwE;AACxE,8CAAgC;AAIhC,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,6DAA6D;YAC/D,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,wBAAwB,EACtB,4EAA4E;SAC/E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,mBAAmB,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAE7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,oCAAe,CAAC,IAAI,EAAE;wBACzC,OAAO;qBACR;oBAED,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBACtC,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,0BAA0B;4BACrC,GAAG,EAAE,KAAK,CAAC,EAAE,CACX,KAAK,CAAC,WAAW,CACf,OAAO,EACP,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CACxB,YAAY,EACZ,kBAAkB,CACnB,EAAE,CACJ;yBACJ,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"prefer-ts-expect-error.js","sourceRoot":"","sources":["../../src/rules/prefer-ts-expect-error.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAChC,8EAG+C;AAQ/C,kBAAe,IAAI,CAAC,UAAU,CAAiB;IAC7C,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,wBAAwB,EACtB,yEAAyE;SAC5E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;QACxD,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,aAAa,CAAC,OAAyB;YAC9C,OAAO,OAAO,CAAC,IAAI,KAAK,oCAAe,CAAC,IAAI,CAAC;QAC/C,CAAC;QAED,SAAS,kBAAkB,CAAC,OAAyB;YACnD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;gBAC1B,OAAO,OAAO,CAAC,KAAK,CAAC;aACtB;YAED,0DAA0D;YAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,SAAS,sBAAsB,CAAC,OAAyB;YACvD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,aAAa,CAAC,OAAO,CAAC;gBAC3B,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,OAAO;gBACL,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBACzB,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE;wBACnC,MAAM,oBAAoB,GAAG,CAAC,KAAgB,EAAW,EAAE,CACzD,KAAK,CAAC,WAAW,CACf,OAAO,EACP,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,CAC/D,CAAC;wBAEJ,MAAM,qBAAqB,GAAG,CAAC,KAAgB,EAAW,EAAE,CAC1D,KAAK,CAAC,WAAW,CACf,OAAO,EACP,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CACxB,YAAY,EACZ,kBAAkB,CACnB,IAAI,CACN,CAAC;wBAEJ,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,0BAA0B;4BACrC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC;gCACzB,CAAC,CAAC,oBAAoB;gCACtB,CAAC,CAAC,qBAAqB;yBAC1B,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js index b216a9c5e8..23882cf172 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js @@ -20,11 +20,13 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const ts = __importStar(require("typescript")); const util = __importStar(require("../util")); exports.default = util.createRule({ name: 'promise-function-async', meta: { type: 'suggestion', + fixable: 'code', docs: { description: 'Requires any function or method that returns a Promise to be marked async', category: 'Best Practices', @@ -81,7 +83,9 @@ exports.default = util.createRule({ ]); const parserServices = util.getParserServices(context); const checker = parserServices.program.getTypeChecker(); + const sourceCode = context.getSourceCode(); function validateNode(node) { + var _a; const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node); const signatures = checker .getTypeAtLocation(originalNode) @@ -91,17 +95,61 @@ exports.default = util.createRule({ } const returnType = checker.getReturnTypeOfSignature(signatures[0]); if (!util.containsAllTypesByName(returnType, allowAny, allAllowedPromiseNames)) { + // Return type is not a promise + return; + } + if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition) { + // Abstract method can't be async return; } if (node.parent && (node.parent.type === experimental_utils_1.AST_NODE_TYPES.Property || node.parent.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition) && (node.parent.kind === 'get' || node.parent.kind === 'set')) { + // Getters and setters can't be async return; } + if (util.isTypeFlagSet(returnType, ts.TypeFlags.Any | ts.TypeFlags.Unknown)) { + // Report without auto fixer because the return type is unknown + return context.report({ + messageId: 'missingAsync', + node, + loc: util.getFunctionHeadLoc(node, sourceCode), + }); + } context.report({ messageId: 'missingAsync', node, + loc: util.getFunctionHeadLoc(node, sourceCode), + fix: fixer => { + if (node.parent && + (node.parent.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition || + (node.parent.type === experimental_utils_1.AST_NODE_TYPES.Property && + node.parent.method))) { + // this function is a class method or object function property shorthand + const method = node.parent; + // the token to put `async` before + let keyToken = sourceCode.getFirstToken(method); + // if there are decorators then skip past them + if (method.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition && + method.decorators) { + const lastDecorator = method.decorators[method.decorators.length - 1]; + keyToken = sourceCode.getTokenAfter(lastDecorator); + } + // if current token is a keyword like `static` or `public` then skip it + while (keyToken.type === experimental_utils_1.AST_TOKEN_TYPES.Keyword) { + keyToken = sourceCode.getTokenAfter(keyToken); + } + // check if there is a space between key and previous token + const insertSpace = !sourceCode.isSpaceBetween(sourceCode.getTokenBefore(keyToken), keyToken); + let code = 'async '; + if (insertSpace) { + code = ` ${code}`; + } + return fixer.insertTextBefore(keyToken, code); + } + return fixer.insertTextBefore(node, 'async '); + }, }); } return { @@ -117,13 +165,14 @@ exports.default = util.createRule({ }, 'FunctionExpression[async = false]'(node) { if (node.parent && - 'kind' in node.parent && + node.parent.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition && node.parent.kind === 'method') { if (checkMethodDeclarations) { - validateNode(node.parent); + validateNode(node); } + return; } - else if (checkFunctionExpressions) { + if (checkFunctionExpressions) { validateNode(node); } }, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map index bfd56d5d90..fd4c5aa782 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map @@ -1 +1 @@ -{"version":3,"file":"promise-function-async.js","sourceRoot":"","sources":["../../src/rules/promise-function-async.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"promise-function-async.js","sourceRoot":"","sources":["../../src/rules/promise-function-async.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,+CAAiC;AACjC,8CAAgC;AAchC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE;YACJ,WAAW,EACT,2EAA2E;YAC7E,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,KAAK;YAClB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,YAAY,EAAE,+CAA+C;SAC9D;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;qBAChB;oBACD,mBAAmB,EAAE;wBACnB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;oBACD,mBAAmB,EAAE;wBACnB,IAAI,EAAE,SAAS;qBAChB;oBACD,yBAAyB,EAAE;wBACzB,IAAI,EAAE,SAAS;qBAChB;oBACD,wBAAwB,EAAE;wBACxB,IAAI,EAAE,SAAS;qBAChB;oBACD,uBAAuB,EAAE;wBACvB,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,QAAQ,EAAE,IAAI;YACd,mBAAmB,EAAE,EAAE;YACvB,mBAAmB,EAAE,IAAI;YACzB,yBAAyB,EAAE,IAAI;YAC/B,wBAAwB,EAAE,IAAI;YAC9B,uBAAuB,EAAE,IAAI;SAC9B;KACF;IACD,MAAM,CACJ,OAAO,EACP,CACE,EACE,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,GACxB,EACF;QAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;YACrC,SAAS;YACT,GAAG,mBAAoB;SACxB,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,SAAS,YAAY,CACnB,IAG+B;;YAE/B,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,OAAO;iBACvB,iBAAiB,CAAC,YAAY,CAAC;iBAC/B,iBAAiB,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,OAAO;aACR;YACD,MAAM,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnE,IACE,CAAC,IAAI,CAAC,sBAAsB,CAC1B,UAAU,EACV,QAAS,EACT,sBAAsB,CACvB,EACD;gBACA,+BAA+B;gBAC/B,OAAO;aACR;YAED,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,MAAK,mCAAc,CAAC,0BAA0B,EAAE;gBACnE,iCAAiC;gBACjC,OAAO;aACR;YAED,IACE,IAAI,CAAC,MAAM;gBACX,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,QAAQ;oBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,CAAC;gBACvD,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,EAC1D;gBACA,qCAAqC;gBACrC,OAAO;aACR;YAED,IACE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EACvE;gBACA,+DAA+D;gBAC/D,OAAO,OAAO,CAAC,MAAM,CAAC;oBACpB,SAAS,EAAE,cAAc;oBACzB,IAAI;oBACJ,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC;iBAC/C,CAAC,CAAC;aACJ;YAED,OAAO,CAAC,MAAM,CAAC;gBACb,SAAS,EAAE,cAAc;gBACzB,IAAI;gBACJ,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC;gBAC9C,GAAG,EAAE,KAAK,CAAC,EAAE;oBACX,IACE,IAAI,CAAC,MAAM;wBACX,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;4BACnD,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,QAAQ;gCAC3C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACxB;wBACA,wEAAwE;wBACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;wBAE3B,kCAAkC;wBAClC,IAAI,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;wBAEjD,8CAA8C;wBAC9C,IACE,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;4BAC/C,MAAM,CAAC,UAAU,EACjB;4BACA,MAAM,aAAa,GACjB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAClD,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC;yBACrD;wBAED,uEAAuE;wBACvE,OAAO,QAAQ,CAAC,IAAI,KAAK,oCAAe,CAAC,OAAO,EAAE;4BAChD,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAE,CAAC;yBAChD;wBAED,2DAA2D;wBAC3D,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,cAAe,CAC7C,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAE,EACpC,QAAQ,CACT,CAAC;wBAEF,IAAI,IAAI,GAAG,QAAQ,CAAC;wBACpB,IAAI,WAAW,EAAE;4BACf,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;yBACnB;wBACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;qBAC/C;oBAED,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,wCAAwC,CACtC,IAAsC;gBAEtC,IAAI,mBAAmB,EAAE;oBACvB,YAAY,CAAC,IAAI,CAAC,CAAC;iBACpB;YACH,CAAC;YACD,oCAAoC,CAClC,IAAkC;gBAElC,IAAI,yBAAyB,EAAE;oBAC7B,YAAY,CAAC,IAAI,CAAC,CAAC;iBACpB;YACH,CAAC;YACD,mCAAmC,CACjC,IAAiC;gBAEjC,IACE,IAAI,CAAC,MAAM;oBACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB;oBACpD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAC7B;oBACA,IAAI,uBAAuB,EAAE;wBAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;qBACpB;oBACD,OAAO;iBACR;gBACD,IAAI,wBAAwB,EAAE;oBAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;iBACpB;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map index de3a0e5dcf..f93fd80cc4 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/quotes.js.map @@ -1 +1 @@ -{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/rules/quotes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qEAA+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EACT,0EAA0E;YAC5E,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,QAAE,gBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EAAE,mCAAmC;SACjD;QACD,MAAM,EAAE,gBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,qBAAqB,EAAE,KAAK;YAC5B,WAAW,EAAE,KAAK;SACnB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,gBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,SAAS,sBAAsB,CAAC,IAAsB;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;gBACpB,KAAK,mCAAc,CAAC,0BAA0B,CAAC;gBAC/C,KAAK,mCAAc,CAAC,iBAAiB,CAAC;gBACtC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,aAAa,CAAC;gBAClC,KAAK,mCAAc,CAAC,yBAAyB;oBAC3C,OAAO,IAAI,CAAC;gBAEd,KAAK,mCAAc,CAAC,YAAY;oBAC9B,OAAO,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBAE5B,KAAK,mCAAc,CAAC,uBAAuB,CAAC;gBAC5C,KAAK,mCAAc,CAAC,aAAa;oBAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;gBAE7B;oBACE,OAAO,KAAK,CAAC;aAChB;QACH,CAAC;QAED,OAAO;YACL,OAAO,CAAC,IAAI;gBACV,IAAI,MAAM,KAAK,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE;oBACzD,OAAO;iBACR;gBAED,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAED,eAAe,CAAC,IAAI;gBAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/rules/quotes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,qEAA+C;AAC/C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EACT,0EAA0E;YAC5E,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,MAAA,gBAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EAAE,mCAAmC;SACjD;QACD,MAAM,EAAE,gBAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,qBAAqB,EAAE,KAAK;YAC5B,WAAW,EAAE,KAAK;SACnB;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;QACtB,MAAM,KAAK,GAAG,gBAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvC,SAAS,sBAAsB,CAAC,IAAsB;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE;gBACpB,KAAK,mCAAc,CAAC,0BAA0B,CAAC;gBAC/C,KAAK,mCAAc,CAAC,iBAAiB,CAAC;gBACtC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,mBAAmB,CAAC;gBACxC,KAAK,mCAAc,CAAC,aAAa,CAAC;gBAClC,KAAK,mCAAc,CAAC,yBAAyB;oBAC3C,OAAO,IAAI,CAAC;gBAEd,KAAK,mCAAc,CAAC,YAAY;oBAC9B,OAAO,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;gBAE5B,KAAK,mCAAc,CAAC,uBAAuB,CAAC;gBAC5C,KAAK,mCAAc,CAAC,aAAa;oBAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,GAAG,CAAC;gBAE7B;oBACE,OAAO,KAAK,CAAC;aAChB;QACH,CAAC;QAED,OAAO;YACL,OAAO,CAAC,IAAI;gBACV,IAAI,MAAM,KAAK,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE;oBACzD,OAAO;iBACR;gBAED,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAED,eAAe,CAAC,IAAI;gBAClB,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map index bab6931d7c..664d56858c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map @@ -1 +1 @@ -{"version":3,"file":"require-await.js","sourceRoot":"","sources":["../../src/rules/require-await.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iDAAmC;AAEnC,8CAAgC;AAchC,kBAAe,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,2DAA2D;YACxE,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;YACpB,oBAAoB,EAAE,IAAI;YAC1B,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,YAAY,EAAE,qCAAqC;SACpD;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAExD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,IAAI,SAAS,GAAqB,IAAI,CAAC;QAEvC;;WAEG;QACH,SAAS,aAAa,CAAC,IAAkB;YACvC,SAAS,GAAG;gBACV,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI,CAAC,KAAK;gBACpB,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;gBAC9B,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,CAAC;QAED;;;WAGG;QACH,SAAS,YAAY,CAAC,IAAkB;YACtC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE;gBACvC,8EAA8E;gBAC9E,OAAO;aACR;YAED,IACE,IAAI,CAAC,KAAK;gBACV,CAAC,SAAS,CAAC,QAAQ;gBACnB,CAAC,eAAe,CAAC,IAAI,CAAC;gBACtB,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC,EAC5C;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG,EAAE,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC;oBACzC,SAAS,EAAE,cAAc;oBACzB,IAAI,EAAE;wBACJ,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;qBAC9D;iBACF,CAAC,CAAC;aACJ;YAED,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED;;WAEG;QACH,SAAS,cAAc,CAAC,IAAa;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAE7C,OAAO,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QAED;;WAEG;QACH,SAAS,cAAc;YACrB,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO;aACR;YACD,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED;;;WAGG;QACH,SAAS,oBAAoB,CAAC,IAA8B;;YAC1D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpD,OAAO;aACR;YAED,IAAI,OAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,0CAAE,IAAI,MAAK,mCAAc,CAAC,OAAO,EAAE;gBACnD,4EAA4E;gBAC5E,0CAA0C;gBAC1C,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;aAChC;YAED,MAAM,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,CAAC;YACxE,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAEhC,qDAAqD;YACrD,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,QAAO,gBAAgB,EAAE;gBAC1C,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;aAC/B;QACH,CAAC;QAED,OAAO;YACL,mBAAmB,EAAE,aAAa;YAClC,kBAAkB,EAAE,aAAa;YACjC,uBAAuB,EAAE,aAAa;YACtC,0BAA0B,EAAE,YAAY;YACxC,yBAAyB,EAAE,YAAY;YACvC,8BAA8B,EAAE,YAAY;YAE5C,eAAe,EAAE,cAAc;YAC/B,8BAA8B,EAAE,cAAc;YAC9C,kCAAkC,EAAE,oBAAoB;YAExD,wCAAwC;YACxC,gEAAgE;YAChE,+EAA+E,CAC7E,IAGC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClE,IAAI,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE;oBAC5C,cAAc,EAAE,CAAC;iBAClB;YACH,CAAC;YACD,eAAe,CAAC,IAAI;gBAClB,uDAAuD;gBACvD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;oBAC3D,OAAO;iBACR;gBAED,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtE,IAAI,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE;oBAC5C,cAAc,EAAE,CAAC;iBAClB;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,IAAkB;;IACzC,OAAO,CACL,OAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,MAAK,mCAAc,CAAC,cAAc;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED,wHAAwH;AACxH;;GAEG;AACH,SAAS,uBAAuB,CAC9B,IAAkB,EAClB,UAA+B;IAE/B,OAAO,IAAI,CAAC,UAAU,CACpB,IAAI,CAAC,EAAE;QACL,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC;QAC7D,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAC5D,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CACpD,CAAC;AACJ,CAAC;AAED,0HAA0H;AAC1H;;GAEG;AACH,SAAS,kBAAkB,CACzB,IAAkB,EAClB,UAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAC5B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,iBAAiB,CAAC,aAAa,CACrC,CAAC;IACF,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,GAAG,GAAG,IAAI,CAAC;IAEf,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,uBAAuB,EAAE;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAChC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACvD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;QAEF,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;KAC1B;SAAM,IACL,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,QAAQ;QACvC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,EAC/C;QACA,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACzB,GAAG,GAAG,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;KAC3D;SAAM;QACL,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACvB,GAAG,GAAG,uBAAuB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;KAC3D;IAED,OAAO;QACL,KAAK;QACL,GAAG;KACJ,CAAC;AACJ,CAAC"} \ No newline at end of file +{"version":3,"file":"require-await.js","sourceRoot":"","sources":["../../src/rules/require-await.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js index aa2ba07423..2f0aa59fe8 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js @@ -63,7 +63,8 @@ exports.default = util.createRule({ if (type.isNumberLiteral()) { return 'number'; } - if (type.isStringLiteral()) { + if (type.isStringLiteral() || + util.isTypeFlagSet(type, ts.TypeFlags.TemplateLiteral)) { return 'string'; } // is BigIntLiteral @@ -74,6 +75,10 @@ exports.default = util.createRule({ const types = type.types.map(getBaseTypeOfLiteralType); return types.every(value => value === types[0]) ? types[0] : 'invalid'; } + if (type.isIntersection()) { + const types = type.types.map(getBaseTypeOfLiteralType); + return types.some(value => value === 'string') ? 'string' : 'invalid'; + } const stringType = typeChecker.typeToString(type); if (stringType === 'number' || stringType === 'string' || diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map index df5c3ce75c..8bff76b175 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map @@ -1 +1 @@ -{"version":3,"file":"restrict-plus-operands.js","sourceRoot":"","sources":["../../src/rules/restrict-plus-operands.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"restrict-plus-operands.js","sourceRoot":"","sources":["../../src/rules/restrict-plus-operands.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js index 578f2f2aef..3cbc7ef1cd 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js @@ -57,17 +57,48 @@ exports.default = util.createRule({ hasAsync: node.async, }; } - function inTryCatch(node) { + function inTry(node) { let ancestor = node.parent; while (ancestor && !ts.isFunctionLike(ancestor)) { - if (tsutils.isTryStatement(ancestor) || - tsutils.isCatchClause(ancestor)) { + if (ts.isTryStatement(ancestor)) { return true; } ancestor = ancestor.parent; } return false; } + function inCatch(node) { + let ancestor = node.parent; + while (ancestor && !ts.isFunctionLike(ancestor)) { + if (ts.isCatchClause(ancestor)) { + return true; + } + ancestor = ancestor.parent; + } + return false; + } + function isReturnPromiseInFinally(node) { + let ancestor = node.parent; + while (ancestor && !ts.isFunctionLike(ancestor)) { + if (ts.isTryStatement(ancestor.parent) && + ts.isBlock(ancestor) && + ancestor.parent.end === ancestor.end) { + return true; + } + ancestor = ancestor.parent; + } + return false; + } + function hasFinallyBlock(node) { + let ancestor = node.parent; + while (ancestor && !ts.isFunctionLike(ancestor)) { + if (ts.isTryStatement(ancestor)) { + return !!ancestor.finallyBlock; + } + ancestor = ancestor.parent; + } + return false; + } // function findTokensToRemove() function removeAwait(fixer, node) { // Should always be an await node; but let's be safe. @@ -95,7 +126,7 @@ exports.default = util.createRule({ } function test(node, expression) { let child; - const isAwait = tsutils.isAwaitExpression(expression); + const isAwait = ts.isAwaitExpression(expression); if (isAwait) { child = expression.getChildAt(1); } @@ -108,11 +139,19 @@ exports.default = util.createRule({ return; } if (isAwait && !isThenable) { - context.report({ - messageId: 'nonPromiseAwait', - node, - fix: fixer => removeAwait(fixer, node), - }); + // any/unknown could be thenable; do not auto-fix + const useAutoFix = !(util.isTypeAnyType(type) || util.isTypeUnknownType(type)); + const fix = (fixer) => removeAwait(fixer, node); + context.report(Object.assign({ messageId: 'nonPromiseAwait', node }, (useAutoFix + ? { fix } + : { + suggest: [ + { + messageId: 'nonPromiseAwait', + fix, + }, + ], + }))); return; } if (option === 'always') { @@ -136,7 +175,7 @@ exports.default = util.createRule({ return; } if (option === 'in-try-catch') { - const isInTryCatch = inTryCatch(expression); + const isInTryCatch = inTry(expression) || inCatch(expression); if (isAwait && !isInTryCatch) { context.report({ messageId: 'disallowedPromiseAwait', @@ -145,6 +184,12 @@ exports.default = util.createRule({ }); } else if (!isAwait && isInTryCatch) { + if (inCatch(expression) && !hasFinallyBlock(expression)) { + return; + } + if (isReturnPromiseInFinally(expression)) { + return; + } context.report({ messageId: 'requiredPromiseAwait', node, diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map index 311a5366ac..d5672f74b4 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/return-await.js.map @@ -1 +1 @@ -{"version":3,"file":"return-await.js","sourceRoot":"","sources":["../../src/rules/return-await.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"return-await.js","sourceRoot":"","sources":["../../src/rules/return-await.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map index 5c2e0f7f70..d9c04cbdc6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map @@ -1 +1 @@ -{"version":3,"file":"semi.js","sourceRoot":"","sources":["../../src/rules/semi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iEAA6C;AAC7C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,cAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,QAAE,cAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,kBAAkB;SAC9B;KACF;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,sBAAsB,EAAE,KAAK;YAC7B,gCAAgC,EAAE,KAAK;SACxC;KACF;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,cAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,KAAK,CAAC,mBAE/B,CAAC;QAEF;;;;;;;UAOE;QACF,MAAM,YAAY,GAAG;YACnB,mCAAc,CAAC,aAAa;YAC5B,mCAAc,CAAC,uBAAuB;YACtC,mCAAc,CAAC,0BAA0B;YACzC,mCAAc,CAAC,iBAAiB;YAChC,mCAAc,CAAC,kBAAkB;YACjC,mCAAc,CAAC,yBAAyB;YACxC,mCAAc,CAAC,sBAAsB;SACtC,CAAC,MAAM,CAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5C,GAAG,CAAC,IAAc,CAAC,GAAG,iBAAiB,CAAC;YACxC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,qDACK,KAAK,GACL,YAAY,KACf,wBAAwB,CAAC,IAAI;gBAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,EAAE;oBACnE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;iBACtC;YACH,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"semi.js","sourceRoot":"","sources":["../../src/rules/semi.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAI+C;AAC/C,iEAA6C;AAC7C,8CAAgC;AAKhC,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,kBAAkB;YAC5B,oCAAoC;YACpC,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,IAAI;SACtB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,cAAQ,CAAC,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,MAAA,cAAQ,CAAC,IAAI,CAAC,QAAQ,mCAAI;YAClC,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,kBAAkB;SAC9B;KACF;IACD,cAAc,EAAE;QACd,QAAQ;QACR;YACE,sBAAsB,EAAE,KAAK;YAC7B,gCAAgC,EAAE,KAAK;SACxC;KACF;IACD,MAAM,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,cAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,iBAAiB,GACrB,KAAK,CAAC,mBAA2D,CAAC;QAEpE;;;;;;;UAOE;QACF,MAAM,YAAY,GAAG;YACnB,mCAAc,CAAC,aAAa;YAC5B,mCAAc,CAAC,uBAAuB;YACtC,mCAAc,CAAC,0BAA0B;YACzC,mCAAc,CAAC,iBAAiB;YAChC,mCAAc,CAAC,kBAAkB;YACjC,mCAAc,CAAC,yBAAyB;YACxC,mCAAc,CAAC,sBAAsB;SACtC,CAAC,MAAM,CAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5C,GAAG,CAAC,IAAc,CAAC,GAAG,iBAAiB,CAAC;YACxC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,qDACK,KAAK,GACL,YAAY,KACf,wBAAwB,CAAC,IAAI;gBAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mCAAc,CAAC,sBAAsB,EAAE;oBACnE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;iBACtC;YACH,CAAC,IACD;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-union-intersection-members.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-union-intersection-members.js new file mode 100644 index 0000000000..d9b392326b --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-union-intersection-members.js @@ -0,0 +1,229 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const util = __importStar(require("../util")); +const util_1 = require("../util"); +var Group; +(function (Group) { + Group["conditional"] = "conditional"; + Group["function"] = "function"; + Group["import"] = "import"; + Group["intersection"] = "intersection"; + Group["keyword"] = "keyword"; + Group["nullish"] = "nullish"; + Group["literal"] = "literal"; + Group["named"] = "named"; + Group["object"] = "object"; + Group["operator"] = "operator"; + Group["tuple"] = "tuple"; + Group["union"] = "union"; +})(Group || (Group = {})); +function getGroup(node) { + switch (node.type) { + case experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType: + return getGroup(node.typeAnnotation); + case experimental_utils_1.AST_NODE_TYPES.TSConditionalType: + return Group.conditional; + case experimental_utils_1.AST_NODE_TYPES.TSConstructorType: + case experimental_utils_1.AST_NODE_TYPES.TSFunctionType: + return Group.function; + case experimental_utils_1.AST_NODE_TYPES.TSImportType: + return Group.import; + case experimental_utils_1.AST_NODE_TYPES.TSIntersectionType: + return Group.intersection; + case experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSBigIntKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSBooleanKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSNeverKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSNumberKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSObjectKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSStringKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSSymbolKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSThisType: + case experimental_utils_1.AST_NODE_TYPES.TSUnknownKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSIntrinsicKeyword: + return Group.keyword; + case experimental_utils_1.AST_NODE_TYPES.TSNullKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSUndefinedKeyword: + case experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword: + return Group.nullish; + case experimental_utils_1.AST_NODE_TYPES.TSLiteralType: + case experimental_utils_1.AST_NODE_TYPES.TSTemplateLiteralType: + return Group.literal; + case experimental_utils_1.AST_NODE_TYPES.TSArrayType: + case experimental_utils_1.AST_NODE_TYPES.TSIndexedAccessType: + case experimental_utils_1.AST_NODE_TYPES.TSInferType: + case experimental_utils_1.AST_NODE_TYPES.TSTypeReference: + return Group.named; + case experimental_utils_1.AST_NODE_TYPES.TSMappedType: + case experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral: + return Group.object; + case experimental_utils_1.AST_NODE_TYPES.TSTypeOperator: + case experimental_utils_1.AST_NODE_TYPES.TSTypeQuery: + return Group.operator; + case experimental_utils_1.AST_NODE_TYPES.TSTupleType: + return Group.tuple; + case experimental_utils_1.AST_NODE_TYPES.TSUnionType: + return Group.union; + // These types should never occur as part of a union/intersection + case experimental_utils_1.AST_NODE_TYPES.TSNamedTupleMember: + case experimental_utils_1.AST_NODE_TYPES.TSOptionalType: + case experimental_utils_1.AST_NODE_TYPES.TSRestType: + case experimental_utils_1.AST_NODE_TYPES.TSTypePredicate: + /* istanbul ignore next */ + throw new Error(`Unexpected Type ${node.type}`); + } +} +exports.default = util.createRule({ + name: 'sort-type-union-intersection-members', + meta: { + type: 'suggestion', + docs: { + description: 'Enforces that members of a type union/intersection are sorted alphabetically', + category: 'Stylistic Issues', + recommended: false, + }, + fixable: 'code', + messages: { + notSorted: '{{type}} type members must be sorted.', + notSortedNamed: '{{type}} type {{name}} members must be sorted.', + suggestFix: 'Sort members of type (removes all comments).', + }, + schema: [ + { + type: 'object', + properties: { + checkIntersections: { + type: 'boolean', + }, + checkUnions: { + type: 'boolean', + }, + groupOrder: { + type: 'array', + items: { + type: 'string', + enum: util_1.getEnumNames(Group), + }, + }, + }, + }, + ], + }, + defaultOptions: [ + { + checkIntersections: true, + checkUnions: true, + groupOrder: [ + Group.named, + Group.keyword, + Group.operator, + Group.literal, + Group.function, + Group.import, + Group.conditional, + Group.object, + Group.tuple, + Group.intersection, + Group.union, + Group.nullish, + ], + }, + ], + create(context, [{ checkIntersections, checkUnions, groupOrder }]) { + const sourceCode = context.getSourceCode(); + const collator = new Intl.Collator('en', { + sensitivity: 'base', + numeric: true, + }); + function checkSorting(node) { + var _a; + const sourceOrder = node.types.map(type => { + var _a; + const group = (_a = groupOrder === null || groupOrder === void 0 ? void 0 : groupOrder.indexOf(getGroup(type))) !== null && _a !== void 0 ? _a : -1; + return { + group: group === -1 ? Number.MAX_SAFE_INTEGER : group, + node: type, + text: sourceCode.getText(type), + }; + }); + const expectedOrder = [...sourceOrder].sort((a, b) => { + if (a.group !== b.group) { + return a.group - b.group; + } + return (collator.compare(a.text, b.text) || + (a.text < b.text ? -1 : a.text > b.text ? 1 : 0)); + }); + const hasComments = node.types.some(type => { + const count = sourceCode.getCommentsBefore(type).length + + sourceCode.getCommentsAfter(type).length; + return count > 0; + }); + for (let i = 0; i < expectedOrder.length; i += 1) { + if (expectedOrder[i].node !== sourceOrder[i].node) { + let messageId = 'notSorted'; + const data = { + name: '', + type: node.type === experimental_utils_1.AST_NODE_TYPES.TSIntersectionType + ? 'Intersection' + : 'Union', + }; + if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration) { + messageId = 'notSortedNamed'; + data.name = node.parent.id.name; + } + const fix = fixer => { + const sorted = expectedOrder + .map(t => t.text) + .join(node.type === experimental_utils_1.AST_NODE_TYPES.TSIntersectionType ? ' & ' : ' | '); + return fixer.replaceText(node, sorted); + }; + return context.report(Object.assign({ node, + messageId, + data }, (hasComments + ? { + suggest: [ + { + messageId: 'suggestFix', + fix, + }, + ], + } + : { fix }))); + } + } + } + return { + TSIntersectionType(node) { + if (checkIntersections === true) { + checkSorting(node); + } + }, + TSUnionType(node) { + if (checkUnions === true) { + checkSorting(node); + } + }, + }; + }, +}); +//# sourceMappingURL=sort-type-union-intersection-members.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-union-intersection-members.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-union-intersection-members.js.map new file mode 100644 index 0000000000..83d73d0ecf --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/sort-type-union-intersection-members.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sort-type-union-intersection-members.js","sourceRoot":"","sources":["../../src/rules/sort-type-union-intersection-members.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map index 4f69e19931..e695e6b785 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-before-function-paren.js.map @@ -1 +1 @@ -{"version":3,"file":"space-before-function-paren.js","sourceRoot":"","sources":["../../src/rules/space-before-function-paren.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"space-before-function-paren.js","sourceRoot":"","sources":["../../src/rules/space-before-function-paren.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-infix-ops.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-infix-ops.js new file mode 100644 index 0000000000..8433f6951c --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-infix-ops.js @@ -0,0 +1,146 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const space_infix_ops_1 = __importDefault(require("eslint/lib/rules/space-infix-ops")); +const util = __importStar(require("../util")); +const UNIONS = ['|', '&']; +exports.default = util.createRule({ + name: 'space-infix-ops', + meta: { + type: 'layout', + docs: { + description: 'This rule is aimed at ensuring there are spaces around infix operators.', + category: 'Stylistic Issues', + recommended: false, + extendsBaseRule: true, + }, + fixable: space_infix_ops_1.default.meta.fixable, + schema: space_infix_ops_1.default.meta.schema, + messages: (_a = space_infix_ops_1.default.meta.messages) !== null && _a !== void 0 ? _a : { + missingSpace: "Operator '{{operator}}' must be spaced.", + }, + }, + defaultOptions: [ + { + int32Hint: false, + }, + ], + create(context) { + const rules = space_infix_ops_1.default.create(context); + const sourceCode = context.getSourceCode(); + const report = (node, operator) => { + context.report({ + node: node, + loc: operator.loc, + messageId: 'missingSpace', + data: { + operator: operator.value, + }, + fix(fixer) { + const previousToken = sourceCode.getTokenBefore(operator); + const afterToken = sourceCode.getTokenAfter(operator); + let fixString = ''; + if (operator.range[0] - previousToken.range[1] === 0) { + fixString = ' '; + } + fixString += operator.value; + if (afterToken.range[0] - operator.range[1] === 0) { + fixString += ' '; + } + return fixer.replaceText(operator, fixString); + }, + }); + }; + function isSpaceChar(token) { + return token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '='; + } + function checkAndReportAssignmentSpace(node, leftNode, rightNode) { + if (!rightNode) { + return; + } + const operator = sourceCode.getFirstTokenBetween(leftNode, rightNode, isSpaceChar); + const prev = sourceCode.getTokenBefore(operator); + const next = sourceCode.getTokenAfter(operator); + if (!sourceCode.isSpaceBetween(prev, operator) || + !sourceCode.isSpaceBetween(operator, next)) { + report(node, operator); + } + } + /** + * Check if it has an assignment char and report if it's faulty + * @param node The node to report + */ + function checkForEnumAssignmentSpace(node) { + if (!node.initializer) { + return; + } + const leftNode = sourceCode.getTokenByRangeStart(node.id.range[0]); + const rightNode = sourceCode.getTokenByRangeStart(node.initializer.range[0]); + checkAndReportAssignmentSpace(node, leftNode, rightNode); + } + /** + * Check if it has an assignment char and report if it's faulty + * @param node The node to report + */ + function checkForClassPropertyAssignmentSpace(node) { + var _a, _b; + const leftNode = sourceCode.getTokenByRangeStart((_b = (_a = node.typeAnnotation) === null || _a === void 0 ? void 0 : _a.range[0]) !== null && _b !== void 0 ? _b : node.range[0]); + const rightNode = node.value + ? sourceCode.getTokenByRangeStart(node.value.range[0]) + : undefined; + checkAndReportAssignmentSpace(node, leftNode, rightNode); + } + /** + * Check if it is missing spaces between type annotations chaining + * @param typeAnnotation TypeAnnotations list + */ + function checkForTypeAnnotationSpace(typeAnnotation) { + const types = typeAnnotation.types; + types.forEach(type => { + const operator = sourceCode.getTokenBefore(type); + if (operator != null && UNIONS.includes(operator.value)) { + const prev = sourceCode.getTokenBefore(operator); + const next = sourceCode.getTokenAfter(operator); + if (!sourceCode.isSpaceBetween(prev, operator) || + !sourceCode.isSpaceBetween(operator, next)) { + report(typeAnnotation, operator); + } + } + }); + } + /** + * Check if it has an assignment char and report if it's faulty + * @param node The node to report + */ + function checkForTypeAliasAssignment(node) { + const leftNode = sourceCode.getTokenByRangeStart(node.id.range[0]); + const rightNode = sourceCode.getTokenByRangeStart(node.typeAnnotation.range[0]); + checkAndReportAssignmentSpace(node, leftNode, rightNode); + } + return Object.assign(Object.assign({}, rules), { TSEnumMember: checkForEnumAssignmentSpace, ClassProperty: checkForClassPropertyAssignmentSpace, TSTypeAliasDeclaration: checkForTypeAliasAssignment, TSUnionType: checkForTypeAnnotationSpace, TSIntersectionType: checkForTypeAnnotationSpace }); + }, +}); +//# sourceMappingURL=space-infix-ops.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-infix-ops.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-infix-ops.js.map new file mode 100644 index 0000000000..f3f4a79a03 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/space-infix-ops.js.map @@ -0,0 +1 @@ +{"version":3,"file":"space-infix-ops.js","sourceRoot":"","sources":["../../src/rules/space-infix-ops.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js index 3f2454c2a6..39c18ddc49 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js @@ -20,13 +20,14 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); -const ts = __importStar(require("typescript")); const tsutils = __importStar(require("tsutils")); +const ts = __importStar(require("typescript")); const util = __importStar(require("../util")); exports.default = util.createRule({ name: 'strict-boolean-expressions', meta: { type: 'suggestion', + fixable: 'code', docs: { description: 'Restricts the types allowed in boolean expressions', category: 'Best Practices', @@ -73,6 +74,17 @@ exports.default = util.createRule({ conditionErrorNullableObject: 'Unexpected nullable object value in conditional. ' + 'An explicit null check is required.', noStrictNullCheck: 'This rule requires the `strictNullChecks` compiler option to be turned on to function correctly.', + conditionFixDefaultFalse: 'Explicitly treat nullish value the same as false (`value ?? false`)', + conditionFixDefaultEmptyString: 'Explicitly treat nullish value the same as an empty string (`value ?? ""`)', + conditionFixDefaultZero: 'Explicitly treat nullish value the same as 0 (`value ?? 0`)', + conditionFixCompareNullish: 'Change condition to check for null/undefined (`value != null`)', + conditionFixCastBoolean: 'Explicitly cast value to a boolean (`Boolean(value)`)', + conditionFixCompareTrue: 'Change condition to check if true (`value === true`)', + conditionFixCompareFalse: 'Change condition to check if false (`value === false`)', + conditionFixCompareStringLength: "Change condition to check string's length (`value.length !== 0`)", + conditionFixCompareEmptyString: 'Change condition to check for empty string (`value !== ""`)', + conditionFixCompareZero: 'Change condition to check for 0 (`value !== 0`)', + conditionFixCompareNaN: 'Change condition to check for NaN (`!Number.isNaN(value)`)', }, }, defaultOptions: [ @@ -88,9 +100,10 @@ exports.default = util.createRule({ }, ], create(context, [options]) { - const service = util.getParserServices(context); - const checker = service.program.getTypeChecker(); - const compilerOptions = service.program.getCompilerOptions(); + const parserServices = util.getParserServices(context); + const typeChecker = parserServices.program.getTypeChecker(); + const compilerOptions = parserServices.program.getCompilerOptions(); + const sourceCode = context.getSourceCode(); const isStrictNullChecks = tsutils.isStrictCompilerOptionEnabled(compilerOptions, 'strictNullChecks'); if (!isStrictNullChecks && options.allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing !== true) { @@ -144,8 +157,8 @@ exports.default = util.createRule({ } return; } - const tsNode = service.esTreeNodeToTSNodeMap.get(node); - const type = util.getConstrainedTypeAtLocation(checker, tsNode); + const tsNode = parserServices.esTreeNodeToTSNodeMap.get(node); + const type = util.getConstrainedTypeAtLocation(typeChecker, tsNode); const types = inspectVariantTypes(tsutils.unionTypeParts(type)); const is = (...wantedTypes) => types.size === wantedTypes.length && wantedTypes.every(type => types.has(type)); @@ -168,35 +181,389 @@ exports.default = util.createRule({ // nullable boolean if (is('nullish', 'boolean')) { if (!options.allowNullableBoolean) { - context.report({ node, messageId: 'conditionErrorNullableBoolean' }); + if (isLogicalNegationExpression(node.parent)) { + // if (!nullableBoolean) + context.report({ + node, + messageId: 'conditionErrorNullableBoolean', + suggest: [ + { + messageId: 'conditionFixDefaultFalse', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} ?? false`, + }), + }, + { + messageId: 'conditionFixCompareFalse', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code} === false`, + }), + }, + ], + }); + } + else { + // if (nullableBoolean) + context.report({ + node, + messageId: 'conditionErrorNullableBoolean', + suggest: [ + { + messageId: 'conditionFixDefaultFalse', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} ?? false`, + }), + }, + { + messageId: 'conditionFixCompareTrue', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} === true`, + }), + }, + ], + }); + } } return; } + // Known edge case: truthy primitives and nullish values are always valid boolean expressions + if ((options.allowNumber && is('nullish', 'truthy number')) || + (options.allowString && is('nullish', 'truthy string'))) { + return; + } // string - if (is('string')) { + if (is('string') || is('truthy string')) { if (!options.allowString) { - context.report({ node, messageId: 'conditionErrorString' }); + if (isLogicalNegationExpression(node.parent)) { + // if (!string) + context.report({ + node, + messageId: 'conditionErrorString', + suggest: [ + { + messageId: 'conditionFixCompareStringLength', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code}.length === 0`, + }), + }, + { + messageId: 'conditionFixCompareEmptyString', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code} === ""`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `!Boolean(${code})`, + }), + }, + ], + }); + } + else { + // if (string) + context.report({ + node, + messageId: 'conditionErrorString', + suggest: [ + { + messageId: 'conditionFixCompareStringLength', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code}.length > 0`, + }), + }, + { + messageId: 'conditionFixCompareEmptyString', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} !== ""`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `Boolean(${code})`, + }), + }, + ], + }); + } } return; } // nullable string if (is('nullish', 'string')) { if (!options.allowNullableString) { - context.report({ node, messageId: 'conditionErrorNullableString' }); + if (isLogicalNegationExpression(node.parent)) { + // if (!nullableString) + context.report({ + node, + messageId: 'conditionErrorNullableString', + suggest: [ + { + messageId: 'conditionFixCompareNullish', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code} == null`, + }), + }, + { + messageId: 'conditionFixDefaultEmptyString', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} ?? ""`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `!Boolean(${code})`, + }), + }, + ], + }); + } + else { + // if (nullableString) + context.report({ + node, + messageId: 'conditionErrorNullableString', + suggest: [ + { + messageId: 'conditionFixCompareNullish', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} != null`, + }), + }, + { + messageId: 'conditionFixDefaultEmptyString', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} ?? ""`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `Boolean(${code})`, + }), + }, + ], + }); + } } return; } // number - if (is('number')) { + if (is('number') || is('truthy number')) { if (!options.allowNumber) { - context.report({ node, messageId: 'conditionErrorNumber' }); + if (isArrayLengthExpression(node, typeChecker, parserServices)) { + if (isLogicalNegationExpression(node.parent)) { + // if (!array.length) + context.report({ + node, + messageId: 'conditionErrorNumber', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code} === 0`, + }), + }); + } + else { + // if (array.length) + context.report({ + node, + messageId: 'conditionErrorNumber', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} > 0`, + }), + }); + } + } + else if (isLogicalNegationExpression(node.parent)) { + // if (!number) + context.report({ + node, + messageId: 'conditionErrorNumber', + suggest: [ + { + messageId: 'conditionFixCompareZero', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + // TODO: we have to compare to 0n if the type is bigint + wrap: code => `${code} === 0`, + }), + }, + { + // TODO: don't suggest this for bigint because it can't be NaN + messageId: 'conditionFixCompareNaN', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `Number.isNaN(${code})`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `!Boolean(${code})`, + }), + }, + ], + }); + } + else { + // if (number) + context.report({ + node, + messageId: 'conditionErrorNumber', + suggest: [ + { + messageId: 'conditionFixCompareZero', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} !== 0`, + }), + }, + { + messageId: 'conditionFixCompareNaN', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `!Number.isNaN(${code})`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `Boolean(${code})`, + }), + }, + ], + }); + } } return; } // nullable number if (is('nullish', 'number')) { if (!options.allowNullableNumber) { - context.report({ node, messageId: 'conditionErrorNullableNumber' }); + if (isLogicalNegationExpression(node.parent)) { + // if (!nullableNumber) + context.report({ + node, + messageId: 'conditionErrorNullableNumber', + suggest: [ + { + messageId: 'conditionFixCompareNullish', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code} == null`, + }), + }, + { + messageId: 'conditionFixDefaultZero', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} ?? 0`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `!Boolean(${code})`, + }), + }, + ], + }); + } + else { + // if (nullableNumber) + context.report({ + node, + messageId: 'conditionErrorNullableNumber', + suggest: [ + { + messageId: 'conditionFixCompareNullish', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} != null`, + }), + }, + { + messageId: 'conditionFixDefaultZero', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} ?? 0`, + }), + }, + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `Boolean(${code})`, + }), + }, + ], + }); + } } return; } @@ -209,14 +576,51 @@ exports.default = util.createRule({ // nullable object if (is('nullish', 'object')) { if (!options.allowNullableObject) { - context.report({ node, messageId: 'conditionErrorNullableObject' }); + if (isLogicalNegationExpression(node.parent)) { + // if (!nullableObject) + context.report({ + node, + messageId: 'conditionErrorNullableObject', + fix: util.getWrappingFixer({ + sourceCode, + node: node.parent, + innerNode: node, + wrap: code => `${code} == null`, + }), + }); + } + else { + // if (nullableObject) + context.report({ + node, + messageId: 'conditionErrorNullableObject', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `${code} != null`, + }), + }); + } } return; } // any if (is('any')) { if (!options.allowAny) { - context.report({ node, messageId: 'conditionErrorAny' }); + context.report({ + node, + messageId: 'conditionErrorAny', + suggest: [ + { + messageId: 'conditionFixCastBoolean', + fix: util.getWrappingFixer({ + sourceCode, + node, + wrap: code => `Boolean(${code})`, + }), + }, + ], + }); } return; } @@ -234,11 +638,23 @@ exports.default = util.createRule({ if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.BooleanLike))) { variantTypes.add('boolean'); } - if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.StringLike))) { - variantTypes.add('string'); + const strings = types.filter(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.StringLike)); + if (strings.length) { + if (strings.some(type => type.isStringLiteral() && type.value !== '')) { + variantTypes.add('truthy string'); + } + else { + variantTypes.add('string'); + } } - if (types.some(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.NumberLike | ts.TypeFlags.BigIntLike))) { - variantTypes.add('number'); + const numbers = types.filter(type => tsutils.isTypeFlagSet(type, ts.TypeFlags.NumberLike | ts.TypeFlags.BigIntLike)); + if (numbers.length) { + if (numbers.some(type => type.isNumberLiteral() && type.value !== 0)) { + variantTypes.add('truthy number'); + } + else { + variantTypes.add('number'); + } } if (types.some(type => !tsutils.isTypeFlagSet(type, ts.TypeFlags.Null | ts.TypeFlags.Undefined | @@ -262,4 +678,21 @@ exports.default = util.createRule({ } }, }); +function isLogicalNegationExpression(node) { + return node.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression && node.operator === '!'; +} +function isArrayLengthExpression(node, typeChecker, parserServices) { + if (node.type !== experimental_utils_1.AST_NODE_TYPES.MemberExpression) { + return false; + } + if (node.computed) { + return false; + } + if (node.property.name !== 'length') { + return false; + } + const objectTsNode = parserServices.esTreeNodeToTSNodeMap.get(node.object); + const objectType = util.getConstrainedTypeAtLocation(typeChecker, objectTsNode); + return util.isTypeArrayTypeOrUnionOfArrayTypes(objectType, typeChecker); +} //# sourceMappingURL=strict-boolean-expressions.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map index 0c4d8dfb5f..7073f6cae9 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map @@ -1 +1 @@ -{"version":3,"file":"strict-boolean-expressions.js","sourceRoot":"","sources":["../../src/rules/strict-boolean-expressions.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"strict-boolean-expressions.js","sourceRoot":"","sources":["../../src/rules/strict-boolean-expressions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js index 92ea5fa383..110d2f7450 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js @@ -45,20 +45,6 @@ exports.default = util_1.createRule({ const service = util_1.getParserServices(context); const checker = service.program.getTypeChecker(); const compilerOptions = service.program.getCompilerOptions(); - function requiresQuoting(name) { - if (name.length === 0) { - return true; - } - if (!ts.isIdentifierStart(name.charCodeAt(0), compilerOptions.target)) { - return true; - } - for (let i = 1; i < name.length; i += 1) { - if (!ts.isIdentifierPart(name.charCodeAt(i), compilerOptions.target)) { - return true; - } - } - return false; - } function getNodeType(node) { const tsNode = service.esTreeNodeToTSNodeMap.get(node); return util_1.getConstrainedTypeAtLocation(checker, tsNode); @@ -90,7 +76,7 @@ exports.default = util_1.createRule({ let caseTest = checker.typeToString(missingBranchType); if (symbolName && (missingBranchName || missingBranchName === '') && - requiresQuoting(missingBranchName.toString())) { + util_1.requiresQuoting(missingBranchName.toString(), compilerOptions.target)) { caseTest = `${symbolName}['${missingBranchName}']`; } const errorMessage = `Not implemented yet: ${caseTest} case`; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map index 0a8b9daf6b..db25a308d1 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/switch-exhaustiveness-check.js.map @@ -1 +1 @@ -{"version":3,"file":"switch-exhaustiveness-check.js","sourceRoot":"","sources":["../../src/rules/switch-exhaustiveness-check.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"switch-exhaustiveness-check.js","sourceRoot":"","sources":["../../src/rules/switch-exhaustiveness-check.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js index 943df2eb85..e5139ed76f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js @@ -83,9 +83,10 @@ exports.default = util.createRule({ }, TSImportEqualsDeclaration(node) { if (programNode) { - const source = node.moduleReference - .expression; - hasMatchingReference(source); + const reference = node.moduleReference; + if (reference.type === experimental_utils_1.AST_NODE_TYPES.TSExternalModuleReference) { + hasMatchingReference(reference.expression); + } } }, Program(node) { diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map index 3efae8a3fc..8fdc0eaa93 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map @@ -1 +1 @@ -{"version":3,"file":"triple-slash-reference.js","sourceRoot":"","sources":["../../src/rules/triple-slash-reference.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"triple-slash-reference.js","sourceRoot":"","sources":["../../src/rules/triple-slash-reference.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js index fc017d7a9f..74f1686019 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js @@ -90,6 +90,7 @@ exports.default = util.createRule({ expectedSpaceBefore: "Expected a space before the '{{type}}'.", unexpectedSpaceAfter: "Unexpected space after the '{{type}}'.", unexpectedSpaceBefore: "Unexpected space before the '{{type}}'.", + unexpectedSpaceBetween: "Unexpected space between the '{{previousToken}}' and the '{{type}}'.", }, schema: [ { @@ -138,6 +139,22 @@ exports.default = util.createRule({ } const { before, after } = getRules(ruleSet, typeAnnotation); if (type === ':' && previousToken.value === '?') { + if (sourceCode.isSpaceBetweenTokens(previousToken, punctuatorTokenStart)) { + context.report({ + node: punctuatorTokenStart, + messageId: 'unexpectedSpaceBetween', + data: { + type, + previousToken: previousToken.value, + }, + fix(fixer) { + return fixer.removeRange([ + previousToken.range[1], + punctuatorTokenStart.range[0], + ]); + }, + }); + } // shift the start to the ? type = '?:'; punctuatorTokenStart = previousToken; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map index fb0086405b..31a8257529 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map @@ -1 +1 @@ -{"version":3,"file":"type-annotation-spacing.js","sourceRoot":"","sources":["../../src/rules/type-annotation-spacing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,8CAAgC;AAChC,kCAQiB;AA6BjB,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC3B;IACD,oBAAoB,EAAE,KAAK;CAC5B,CAAC;AAEF,SAAS,WAAW,CAAC,OAAgB;;IACnC,MAAM,OAAO,mCACR,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,MAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GACjE,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAClE,CAAC;IACF,MAAM,QAAQ,SAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,EAAE,CAAC;IAC1C,MAAM,KAAK,+BACN,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAC9B,OAAO,GACP,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CACnB,CAAC;IACF,MAAM,KAAK,+BACN,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAC7B,OAAO,GACP,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CACnB,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,QAAQ,kCAAO,KAAK,GAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAE;QAC7C,QAAQ,kCAAO,KAAK,GAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAE;QAC7C,SAAS,kCAAO,KAAK,GAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAE;QAC/C,UAAU,kCAAO,KAAK,GAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAE;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAsB,EACtB,IAA+B;IAE/B,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC;IAE3B,IAAI,2BAAoB,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,KAAK,CAAC,QAAQ,CAAC;KACvB;SAAM,IAAI,+BAAwB,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,KAAK,CAAC,SAAS,CAAC;KACxB;SAAM;QACL,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;AACH,CAAC;AAED,SAAS,QAAQ,CACf,KAAsB,EACtB,IAAuB;;IAEvB,MAAM,KAAK,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,0CAAE,MAAM,CAAC;IAEnC,IAAI,uBAAgB,CAAC,KAAK,CAAC,IAAI,0BAAmB,CAAC,KAAK,CAAC,EAAE;QACzD,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;SAAM,IAAI,mBAAY,CAAC,KAAK,CAAC,EAAE;QAC9B,OAAO,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACzC;SAAM,IAAI,2BAAoB,CAAC,KAAK,CAAC,EAAE;QACtC,OAAO,KAAK,CAAC,QAAQ,CAAC;KACvB;SAAM,IAAI,iBAAU,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,KAAK,CAAC,UAAU,CAAC;KACzB;SAAM;QACL,OAAO,KAAK,CAAC,KAAK,CAAC;KACpB;AACH,CAAC;AAED,kBAAe,IAAI,CAAC,UAAU,CAAsB;IAClD,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE;YACJ,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,kBAAkB;YAC5B,WAAW,EAAE,KAAK;SACnB;QACD,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE;YACR,kBAAkB,EAAE,wCAAwC;YAC5D,mBAAmB,EAAE,yCAAyC;YAC9D,oBAAoB,EAAE,wCAAwC;YAC9D,qBAAqB,EAAE,yCAAyC;SACjE;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC1B,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,UAAU;4BACjB,KAAK,EAAE,UAAU;4BACjB,QAAQ,EAAE,UAAU;4BACpB,SAAS,EAAE,UAAU;4BACrB,QAAQ,EAAE,UAAU;4BACpB,UAAU,EAAE,UAAU;yBACvB;wBACD,oBAAoB,EAAE,KAAK;qBAC5B;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd,yDAAyD;QACzD,kEAAkE;QAClE,EAAE;KACH;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAErC;;;WAGG;QACH,SAAS,0BAA0B,CACjC,cAAiC;YAEjC,MAAM,SAAS,GAAG,cAAc,CAAC;YACjC,MAAM,kBAAkB,GAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAE,CAAC;YACjE,IAAI,oBAAoB,GAAG,kBAAkB,CAAC;YAC9C,IAAI,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAE,CAAC;YACnE,IAAI,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAEpC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC/B,OAAO;aACR;YAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAE5D,IAAI,IAAI,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,KAAK,GAAG,EAAE;gBAC/C,2BAA2B;gBAC3B,IAAI,GAAG,IAAI,CAAC;gBACZ,oBAAoB,GAAG,aAAa,CAAC;gBACrC,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC;gBAE1D,+DAA+D;gBAC/D,IAAI,aAAa,CAAC,KAAK,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,KAAK,GAAG,EAAE;oBAC9D,IAAI,GAAG,GAAG,aAAa,CAAC,KAAK,IAAI,CAAC;oBAClC,oBAAoB,GAAG,aAAa,CAAC;oBACrC,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,aAAa,CAAE,CAAC;iBAC3D;aACF;YAED,MAAM,aAAa,GACjB,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEnE,IAAI,KAAK,IAAI,SAAS,KAAK,CAAC,EAAE;gBAC5B,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE,oBAAoB;oBAC/B,IAAI,EAAE;wBACJ,IAAI;qBACL;oBACD,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,eAAe,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;oBACxD,CAAC;iBACF,CAAC,CAAC;aACJ;iBAAM,IAAI,CAAC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE;gBAClC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE,sBAAsB;oBACjC,IAAI,EAAE;wBACJ,IAAI;qBACL;oBACD,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,WAAW,CAAC;4BACvB,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC3B,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;yBACnB,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;aACJ;YAED,IAAI,MAAM,IAAI,aAAa,KAAK,CAAC,EAAE;gBACjC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,oBAAoB;oBAC1B,SAAS,EAAE,qBAAqB;oBAChC,IAAI,EAAE;wBACJ,IAAI;qBACL;oBACD,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;oBACnD,CAAC;iBACF,CAAC,CAAC;aACJ;iBAAM,IAAI,CAAC,MAAM,IAAI,aAAa,GAAG,CAAC,EAAE;gBACvC,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,oBAAoB;oBAC1B,SAAS,EAAE,uBAAuB;oBAClC,IAAI,EAAE;wBACJ,IAAI;qBACL;oBACD,GAAG,CAAC,KAAK;wBACP,OAAO,KAAK,CAAC,WAAW,CAAC;4BACvB,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;4BACtB,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;yBAC9B,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;aACJ;QACH,CAAC;QAED,OAAO;YACL,YAAY,CAAC,IAAI;gBACf,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACjD;YACH,CAAC;YACD,gBAAgB,CAAC,IAAI;gBACnB,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClD,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"type-annotation-spacing.js","sourceRoot":"","sources":["../../src/rules/type-annotation-spacing.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map index bc2080836b..de8d00f60c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/typedef.js.map @@ -1 +1 @@ -{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/rules/typedef.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/rules/typedef.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js index 88777e02af..196ba1e870 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js @@ -111,6 +111,7 @@ const isNotImported = (symbol, currentSourceFile) => { }; const getNodeName = (node) => node.type === experimental_utils_1.AST_NODE_TYPES.Identifier ? node.name : null; const getMemberFullName = (node) => `${getNodeName(node.object)}.${getNodeName(node.property)}`; +const BASE_MESSAGE = 'Avoid referencing unbound methods which may cause unintentional scoping of `this`.'; exports.default = util.createRule({ name: 'unbound-method', meta: { @@ -121,7 +122,10 @@ exports.default = util.createRule({ requiresTypeChecking: true, }, messages: { - unbound: 'Avoid referencing unbound methods which may cause unintentional scoping of `this`.', + unbound: BASE_MESSAGE, + unboundWithoutThisAnnotation: BASE_MESSAGE + + '\n' + + 'If your function does not access `this`, you can annotate it with `this: void`, or consider using an arrow function instead.', }, schema: [ { @@ -145,6 +149,20 @@ exports.default = util.createRule({ const parserServices = util.getParserServices(context); const checker = parserServices.program.getTypeChecker(); const currentSourceFile = parserServices.program.getSourceFile(context.getFilename()); + function checkMethodAndReport(node, symbol) { + if (!symbol) { + return; + } + const { dangerous, firstParamIsThis } = checkMethod(symbol, ignoreStatic); + if (dangerous) { + context.report({ + messageId: firstParamIsThis === false + ? 'unboundWithoutThisAnnotation' + : 'unbound', + node, + }); + } + } return { MemberExpression(node) { if (isSafeUse(node)) { @@ -157,13 +175,7 @@ exports.default = util.createRule({ return; } const originalNode = parserServices.esTreeNodeToTSNodeMap.get(node); - const symbol = checker.getSymbolAtLocation(originalNode); - if (symbol && isDangerousMethod(symbol, ignoreStatic)) { - context.report({ - messageId: 'unbound', - node, - }); - } + checkMethodAndReport(node, checker.getSymbolAtLocation(originalNode)); }, 'VariableDeclarator, AssignmentExpression'(node) { const [idNode, initNode] = node.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator @@ -182,13 +194,7 @@ exports.default = util.createRule({ nativelyBoundMembers.includes(`${initNode.name}.${property.key.name}`)) { return; } - const symbol = initTypes.getProperty(property.key.name); - if (symbol && isDangerousMethod(symbol, ignoreStatic)) { - context.report({ - messageId: 'unbound', - node, - }); - } + checkMethodAndReport(node, initTypes.getProperty(property.key.name)); } }); } @@ -196,23 +202,36 @@ exports.default = util.createRule({ }; }, }); -function isDangerousMethod(symbol, ignoreStatic) { - var _a; +function checkMethod(symbol, ignoreStatic) { + var _a, _b; const { valueDeclaration } = symbol; if (!valueDeclaration) { // working around https://github.com/microsoft/TypeScript/issues/31294 - return false; + return { dangerous: false }; } switch (valueDeclaration.kind) { case ts.SyntaxKind.PropertyDeclaration: - return (((_a = valueDeclaration.initializer) === null || _a === void 0 ? void 0 : _a.kind) === - ts.SyntaxKind.FunctionExpression); + return { + dangerous: ((_a = valueDeclaration.initializer) === null || _a === void 0 ? void 0 : _a.kind) === + ts.SyntaxKind.FunctionExpression, + }; case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.MethodSignature: - return !(ignoreStatic && - tsutils.hasModifier(valueDeclaration.modifiers, ts.SyntaxKind.StaticKeyword)); + case ts.SyntaxKind.MethodSignature: { + const decl = valueDeclaration; + const firstParam = decl.parameters[0]; + const firstParamIsThis = (firstParam === null || firstParam === void 0 ? void 0 : firstParam.name.kind) === ts.SyntaxKind.Identifier && + (firstParam === null || firstParam === void 0 ? void 0 : firstParam.name.escapedText) === 'this'; + const thisArgIsVoid = firstParamIsThis && + ((_b = firstParam === null || firstParam === void 0 ? void 0 : firstParam.type) === null || _b === void 0 ? void 0 : _b.kind) === ts.SyntaxKind.VoidKeyword; + return { + dangerous: !thisArgIsVoid && + !(ignoreStatic && + tsutils.hasModifier(valueDeclaration.modifiers, ts.SyntaxKind.StaticKeyword)), + firstParamIsThis, + }; + } } - return false; + return { dangerous: false }; } function isSafeUse(node) { const parent = node.parent; @@ -238,7 +257,12 @@ function isSafeUse(node) { case experimental_utils_1.AST_NODE_TYPES.BinaryExpression: return ['instanceof', '==', '!=', '===', '!=='].includes(parent.operator); case experimental_utils_1.AST_NODE_TYPES.AssignmentExpression: - return parent.operator === '=' && node === parent.left; + return (parent.operator === '=' && + (node === parent.left || + (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression && + node.object.type === experimental_utils_1.AST_NODE_TYPES.Super && + parent.left.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression && + parent.left.object.type === experimental_utils_1.AST_NODE_TYPES.ThisExpression))); case experimental_utils_1.AST_NODE_TYPES.ChainExpression: case experimental_utils_1.AST_NODE_TYPES.TSNonNullExpression: case experimental_utils_1.AST_NODE_TYPES.TSAsExpression: diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map index a42745e429..ce70932b97 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map @@ -1 +1 @@ -{"version":3,"file":"unbound-method.js","sourceRoot":"","sources":["../../src/rules/unbound-method.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"unbound-method.js","sourceRoot":"","sources":["../../src/rules/unbound-method.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map index ce84d5caf8..c316044407 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map @@ -1 +1 @@ -{"version":3,"file":"unified-signatures.js","sourceRoot":"","sources":["../../src/rules/unified-signatures.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"unified-signatures.js","sourceRoot":"","sources":["../../src/rules/unified-signatures.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js index 249bf798b8..9b40782d37 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js @@ -10,6 +10,33 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.getNameLocationInGlobalDirectiveComment = void 0; +const escapeRegExp_1 = require("./escapeRegExp"); // deeply re-export, for convenience __exportStar(require("@typescript-eslint/experimental-utils/dist/ast-utils"), exports); +// The following is copied from `eslint`'s source code since it doesn't exist in eslint@5. +// https://github.com/eslint/eslint/blob/145aec1ab9052fbca96a44d04927c595951b1536/lib/rules/utils/ast-utils.js#L1751-L1779 +// Could be export { getNameLocationInGlobalDirectiveComment } from 'eslint/lib/rules/utils/ast-utils' +/** + * Get the `loc` object of a given name in a `/*globals` directive comment. + * @param {SourceCode} sourceCode The source code to convert index to loc. + * @param {Comment} comment The `/*globals` directive comment which include the name. + * @param {string} name The name to find. + * @returns {SourceLocation} The `loc` object. + */ +function getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) { + const namePattern = new RegExp(`[\\s,]${escapeRegExp_1.escapeRegExp(name)}(?:$|[\\s,:])`, 'gu'); + // To ignore the first text "global". + namePattern.lastIndex = comment.value.indexOf('global') + 6; + // Search a given variable name. + const match = namePattern.exec(comment.value); + // Convert the index to loc. + const start = sourceCode.getLocFromIndex(comment.range[0] + '/*'.length + (match ? match.index + 1 : 0)); + const end = { + line: start.line, + column: start.column + (match ? name.length : 1), + }; + return { start, end }; +} +exports.getNameLocationInGlobalDirectiveComment = getNameLocationInGlobalDirectiveComment; //# sourceMappingURL=astUtils.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map index 872e04e40e..e16818b445 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"astUtils.js","sourceRoot":"","sources":["../../src/util/astUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAoC;AACpC,uFAAqE"} \ No newline at end of file +{"version":3,"file":"astUtils.js","sourceRoot":"","sources":["../../src/util/astUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,iDAA8C;AAE9C,oCAAoC;AACpC,uFAAqE;AAErE,0FAA0F;AAC1F,0HAA0H;AAC1H,sGAAsG;AACtG;;;;;;GAMG;AACH,SAAgB,uCAAuC,CACrD,UAA+B,EAC/B,OAAyB,EACzB,IAAY;IAEZ,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,SAAS,2BAAY,CAAC,IAAI,CAAC,eAAe,EAC1C,IAAI,CACL,CAAC;IAEF,qCAAqC;IACrC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE5D,gCAAgC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE9C,4BAA4B;IAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KACjD,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC;AA1BD,0FA0BC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js new file mode 100644 index 0000000000..880388aa19 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js @@ -0,0 +1,585 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _UnusedVarsVisitor_scopeManager; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.collectUnusedVariables = void 0; +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const scope_manager_1 = require("@typescript-eslint/scope-manager"); +const Visitor_1 = require("@typescript-eslint/scope-manager/dist/referencer/Visitor"); +const util = __importStar(require(".")); +class UnusedVarsVisitor extends Visitor_1.Visitor { + // readonly #unusedVariables = new Set(); + constructor(context) { + super({ + visitChildrenEvenIfSelectorExists: true, + }); + _UnusedVarsVisitor_scopeManager.set(this, void 0); + //#endregion HELPERS + //#region VISITORS + // NOTE - This is a simple visitor - meaning it does not support selectors + this.ClassDeclaration = this.visitClass; + this.ClassExpression = this.visitClass; + this.FunctionDeclaration = this.visitFunction; + this.FunctionExpression = this.visitFunction; + this.MethodDefinition = this.visitSetter; + this.Property = this.visitSetter; + this.TSCallSignatureDeclaration = this.visitFunctionTypeSignature; + this.TSConstructorType = this.visitFunctionTypeSignature; + this.TSConstructSignatureDeclaration = this.visitFunctionTypeSignature; + this.TSDeclareFunction = this.visitFunctionTypeSignature; + this.TSEmptyBodyFunctionExpression = this.visitFunctionTypeSignature; + this.TSFunctionType = this.visitFunctionTypeSignature; + this.TSMethodSignature = this.visitFunctionTypeSignature; + __classPrivateFieldSet(this, _UnusedVarsVisitor_scopeManager, util.nullThrows(context.getSourceCode().scopeManager, 'Missing required scope manager'), "f"); + } + static collectUnusedVariables(context) { + const program = context.getSourceCode().ast; + const cached = this.RESULTS_CACHE.get(program); + if (cached) { + return cached; + } + const visitor = new this(context); + visitor.visit(program); + const unusedVars = visitor.collectUnusedVariables(visitor.getScope(program)); + this.RESULTS_CACHE.set(program, unusedVars); + return unusedVars; + } + collectUnusedVariables(scope, unusedVariables = new Set()) { + for (const variable of scope.variables) { + if ( + // skip function expression names, + scope.functionExpressionScope || + // variables marked with markVariableAsUsed(), + variable.eslintUsed || + // implicit lib variables (from @typescript-eslint/scope-manager), + variable instanceof scope_manager_1.ImplicitLibVariable || + // basic exported variables + isExported(variable) || + // variables implicitly exported via a merged declaration + isMergableExported(variable) || + // used variables + isUsedVariable(variable)) { + continue; + } + unusedVariables.add(variable); + } + for (const childScope of scope.childScopes) { + this.collectUnusedVariables(childScope, unusedVariables); + } + return unusedVariables; + } + //#region HELPERS + getScope(currentNode) { + // On Program node, get the outermost scope to avoid return Node.js special function scope or ES modules scope. + const inner = currentNode.type !== experimental_utils_1.AST_NODE_TYPES.Program; + let node = currentNode; + while (node) { + const scope = __classPrivateFieldGet(this, _UnusedVarsVisitor_scopeManager, "f").acquire(node, inner); + if (scope) { + if (scope.type === 'function-expression-name') { + return scope.childScopes[0]; + } + return scope; + } + node = node.parent; + } + return __classPrivateFieldGet(this, _UnusedVarsVisitor_scopeManager, "f").scopes[0]; + } + markVariableAsUsed(variableOrIdentifierOrName, parent) { + if (typeof variableOrIdentifierOrName !== 'string' && + !('type' in variableOrIdentifierOrName)) { + variableOrIdentifierOrName.eslintUsed = true; + return; + } + let name; + let node; + if (typeof variableOrIdentifierOrName === 'string') { + name = variableOrIdentifierOrName; + node = parent; + } + else { + name = variableOrIdentifierOrName.name; + node = variableOrIdentifierOrName; + } + let currentScope = this.getScope(node); + while (currentScope) { + const variable = currentScope.variables.find(scopeVar => scopeVar.name === name); + if (variable) { + variable.eslintUsed = true; + return; + } + currentScope = currentScope.upper; + } + } + visitClass(node) { + // skip a variable of class itself name in the class scope + const scope = this.getScope(node); + for (const variable of scope.variables) { + if (variable.identifiers[0] === scope.block.id) { + this.markVariableAsUsed(variable); + return; + } + } + } + visitFunction(node) { + const scope = this.getScope(node); + // skip implicit "arguments" variable + const variable = scope.set.get('arguments'); + if ((variable === null || variable === void 0 ? void 0 : variable.defs.length) === 0) { + this.markVariableAsUsed(variable); + } + } + visitFunctionTypeSignature(node) { + // function type signature params create variables because they can be referenced within the signature, + // but they obviously aren't unused variables for the purposes of this rule. + for (const param of node.params) { + this.visitPattern(param, name => { + this.markVariableAsUsed(name); + }); + } + } + visitSetter(node) { + if (node.kind === 'set') { + // ignore setter parameters because they're syntactically required to exist + for (const param of node.value.params) { + this.visitPattern(param, id => { + this.markVariableAsUsed(id); + }); + } + } + } + ForInStatement(node) { + /** + * (Brad Zacher): I hate that this has to exist. + * But it is required for compat with the base ESLint rule. + * + * In 2015, ESLint decided to add an exception for these two specific cases + * ``` + * for (var key in object) return; + * + * var key; + * for (key in object) return; + * ``` + * + * I disagree with it, but what are you going to do... + * + * https://github.com/eslint/eslint/issues/2342 + */ + let idOrVariable; + if (node.left.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclaration) { + const variable = __classPrivateFieldGet(this, _UnusedVarsVisitor_scopeManager, "f").getDeclaredVariables(node.left)[0]; + if (!variable) { + return; + } + idOrVariable = variable; + } + if (node.left.type === experimental_utils_1.AST_NODE_TYPES.Identifier) { + idOrVariable = node.left; + } + if (idOrVariable == null) { + return; + } + let body = node.body; + if (node.body.type === experimental_utils_1.AST_NODE_TYPES.BlockStatement) { + if (node.body.body.length !== 1) { + return; + } + body = node.body.body[0]; + } + if (body.type !== experimental_utils_1.AST_NODE_TYPES.ReturnStatement) { + return; + } + this.markVariableAsUsed(idOrVariable); + } + Identifier(node) { + const scope = this.getScope(node); + if (scope.type === experimental_utils_1.TSESLint.Scope.ScopeType.function && + node.name === 'this') { + // this parameters should always be considered used as they're pseudo-parameters + if ('params' in scope.block && scope.block.params.includes(node)) { + this.markVariableAsUsed(node); + } + } + } + TSEnumDeclaration(node) { + // enum members create variables because they can be referenced within the enum, + // but they obviously aren't unused variables for the purposes of this rule. + const scope = this.getScope(node); + for (const variable of scope.variables) { + this.markVariableAsUsed(variable); + } + } + TSMappedType(node) { + // mapped types create a variable for their type name, but it's not necessary to reference it, + // so we shouldn't consider it as unused for the purpose of this rule. + this.markVariableAsUsed(node.typeParameter.name); + } + TSModuleDeclaration(node) { + // global augmentation can be in any file, and they do not need exports + if (node.global === true) { + this.markVariableAsUsed('global', node.parent); + } + } + TSParameterProperty(node) { + let identifier = null; + switch (node.parameter.type) { + case experimental_utils_1.AST_NODE_TYPES.AssignmentPattern: + if (node.parameter.left.type === experimental_utils_1.AST_NODE_TYPES.Identifier) { + identifier = node.parameter.left; + } + break; + case experimental_utils_1.AST_NODE_TYPES.Identifier: + identifier = node.parameter; + break; + } + if (identifier) { + this.markVariableAsUsed(identifier); + } + } +} +_UnusedVarsVisitor_scopeManager = new WeakMap(); +UnusedVarsVisitor.RESULTS_CACHE = new WeakMap(); +//#region private helpers +/** + * Checks the position of given nodes. + * @param inner A node which is expected as inside. + * @param outer A node which is expected as outside. + * @returns `true` if the `inner` node exists in the `outer` node. + */ +function isInside(inner, outer) { + return inner.range[0] >= outer.range[0] && inner.range[1] <= outer.range[1]; +} +/** + * Determine if an identifier is referencing an enclosing name. + * This only applies to declarations that create their own scope (modules, functions, classes) + * @param ref The reference to check. + * @param nodes The candidate function nodes. + * @returns True if it's a self-reference, false if not. + */ +function isSelfReference(ref, nodes) { + let scope = ref.from; + while (scope) { + if (nodes.has(scope.block)) { + return true; + } + scope = scope.upper; + } + return false; +} +const MERGABLE_TYPES = new Set([ + experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration, + experimental_utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration, + experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration, + experimental_utils_1.AST_NODE_TYPES.ClassDeclaration, + experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration, +]); +/** + * Determine if the variable is directly exported + * @param variable the variable to check + * @param target the type of node that is expected to be exported + */ +function isMergableExported(variable) { + var _a, _b; + // If all of the merged things are of the same type, TS will error if not all of them are exported - so we only need to find one + for (const def of variable.defs) { + // parameters can never be exported. + // their `node` prop points to the function decl, which can be exported + // so we need to special case them + if (def.type === experimental_utils_1.TSESLint.Scope.DefinitionType.Parameter) { + continue; + } + if ((MERGABLE_TYPES.has(def.node.type) && + ((_a = def.node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration) || + ((_b = def.node.parent) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration) { + return true; + } + } + return false; +} +/** + * Determines if a given variable is being exported from a module. + * @param variable eslint-scope variable object. + * @returns True if the variable is exported, false if not. + */ +function isExported(variable) { + const definition = variable.defs[0]; + if (definition) { + let node = definition.node; + if (node.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator) { + node = node.parent; + } + else if (definition.type === experimental_utils_1.TSESLint.Scope.DefinitionType.Parameter) { + return false; + } + return node.parent.type.indexOf('Export') === 0; + } + return false; +} +/** + * Determines if the variable is used. + * @param variable The variable to check. + * @returns True if the variable is used + */ +function isUsedVariable(variable) { + /** + * Gets a list of function definitions for a specified variable. + * @param variable eslint-scope variable object. + * @returns Function nodes. + */ + function getFunctionDefinitions(variable) { + const functionDefinitions = new Set(); + variable.defs.forEach(def => { + var _a, _b; + // FunctionDeclarations + if (def.type === experimental_utils_1.TSESLint.Scope.DefinitionType.FunctionName) { + functionDefinitions.add(def.node); + } + // FunctionExpressions + if (def.type === experimental_utils_1.TSESLint.Scope.DefinitionType.Variable && + (((_a = def.node.init) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.FunctionExpression || + ((_b = def.node.init) === null || _b === void 0 ? void 0 : _b.type) === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression)) { + functionDefinitions.add(def.node.init); + } + }); + return functionDefinitions; + } + function getTypeDeclarations(variable) { + const nodes = new Set(); + variable.defs.forEach(def => { + if (def.node.type === experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration || + def.node.type === experimental_utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration) { + nodes.add(def.node); + } + }); + return nodes; + } + function getModuleDeclarations(variable) { + const nodes = new Set(); + variable.defs.forEach(def => { + if (def.node.type === experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration) { + nodes.add(def.node); + } + }); + return nodes; + } + /** + * Checks if the ref is contained within one of the given nodes + */ + function isInsideOneOf(ref, nodes) { + for (const node of nodes) { + if (isInside(ref.identifier, node)) { + return true; + } + } + return false; + } + /** + * If a given reference is left-hand side of an assignment, this gets + * the right-hand side node of the assignment. + * + * In the following cases, this returns null. + * + * - The reference is not the LHS of an assignment expression. + * - The reference is inside of a loop. + * - The reference is inside of a function scope which is different from + * the declaration. + * @param ref A reference to check. + * @param prevRhsNode The previous RHS node. + * @returns The RHS node or null. + */ + function getRhsNode(ref, prevRhsNode) { + /** + * Checks whether the given node is in a loop or not. + * @param node The node to check. + * @returns `true` if the node is in a loop. + */ + function isInLoop(node) { + let currentNode = node; + while (currentNode) { + if (util.isFunction(currentNode)) { + break; + } + if (util.isLoop(currentNode)) { + return true; + } + currentNode = currentNode.parent; + } + return false; + } + const id = ref.identifier; + const parent = id.parent; + const grandparent = parent.parent; + const refScope = ref.from.variableScope; + const varScope = ref.resolved.scope.variableScope; + const canBeUsedLater = refScope !== varScope || isInLoop(id); + /* + * Inherits the previous node if this reference is in the node. + * This is for `a = a + a`-like code. + */ + if (prevRhsNode && isInside(id, prevRhsNode)) { + return prevRhsNode; + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.AssignmentExpression && + grandparent.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement && + id === parent.left && + !canBeUsedLater) { + return parent.right; + } + return null; + } + /** + * Checks whether a given reference is a read to update itself or not. + * @param ref A reference to check. + * @param rhsNode The RHS node of the previous assignment. + * @returns The reference is a read to update itself. + */ + function isReadForItself(ref, rhsNode) { + /** + * Checks whether a given Identifier node exists inside of a function node which can be used later. + * + * "can be used later" means: + * - the function is assigned to a variable. + * - the function is bound to a property and the object can be used later. + * - the function is bound as an argument of a function call. + * + * If a reference exists in a function which can be used later, the reference is read when the function is called. + * @param id An Identifier node to check. + * @param rhsNode The RHS node of the previous assignment. + * @returns `true` if the `id` node exists inside of a function node which can be used later. + */ + function isInsideOfStorableFunction(id, rhsNode) { + /** + * Finds a function node from ancestors of a node. + * @param node A start node to find. + * @returns A found function node. + */ + function getUpperFunction(node) { + let currentNode = node; + while (currentNode) { + if (util.isFunction(currentNode)) { + return currentNode; + } + currentNode = currentNode.parent; + } + return null; + } + /** + * Checks whether a given function node is stored to somewhere or not. + * If the function node is stored, the function can be used later. + * @param funcNode A function node to check. + * @param rhsNode The RHS node of the previous assignment. + * @returns `true` if under the following conditions: + * - the funcNode is assigned to a variable. + * - the funcNode is bound as an argument of a function call. + * - the function is bound to a property and the object satisfies above conditions. + */ + function isStorableFunction(funcNode, rhsNode) { + let node = funcNode; + let parent = funcNode.parent; + while (parent && isInside(parent, rhsNode)) { + switch (parent.type) { + case experimental_utils_1.AST_NODE_TYPES.SequenceExpression: + if (parent.expressions[parent.expressions.length - 1] !== node) { + return false; + } + break; + case experimental_utils_1.AST_NODE_TYPES.CallExpression: + case experimental_utils_1.AST_NODE_TYPES.NewExpression: + return parent.callee !== node; + case experimental_utils_1.AST_NODE_TYPES.AssignmentExpression: + case experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression: + case experimental_utils_1.AST_NODE_TYPES.YieldExpression: + return true; + default: + if (parent.type.endsWith('Statement') || + parent.type.endsWith('Declaration')) { + /* + * If it encountered statements, this is a complex pattern. + * Since analyzing complex patterns is hard, this returns `true` to avoid false positive. + */ + return true; + } + } + node = parent; + parent = parent.parent; + } + return false; + } + const funcNode = getUpperFunction(id); + return (!!funcNode && + isInside(funcNode, rhsNode) && + isStorableFunction(funcNode, rhsNode)); + } + const id = ref.identifier; + const parent = id.parent; + const grandparent = parent.parent; + return (ref.isRead() && // in RHS of an assignment for itself. e.g. `a = a + 1` + // self update. e.g. `a += 1`, `a++` + ((parent.type === experimental_utils_1.AST_NODE_TYPES.AssignmentExpression && + grandparent.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement && + parent.left === id) || + (parent.type === experimental_utils_1.AST_NODE_TYPES.UpdateExpression && + grandparent.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement) || + (!!rhsNode && + isInside(id, rhsNode) && + !isInsideOfStorableFunction(id, rhsNode)))); + } + const functionNodes = getFunctionDefinitions(variable); + const isFunctionDefinition = functionNodes.size > 0; + const typeDeclNodes = getTypeDeclarations(variable); + const isTypeDecl = typeDeclNodes.size > 0; + const moduleDeclNodes = getModuleDeclarations(variable); + const isModuleDecl = moduleDeclNodes.size > 0; + let rhsNode = null; + return variable.references.some(ref => { + const forItself = isReadForItself(ref, rhsNode); + rhsNode = getRhsNode(ref, rhsNode); + return (ref.isRead() && + !forItself && + !(isFunctionDefinition && isSelfReference(ref, functionNodes)) && + !(isTypeDecl && isInsideOneOf(ref, typeDeclNodes)) && + !(isModuleDecl && isSelfReference(ref, moduleDeclNodes))); + }); +} +//#endregion private helpers +/** + * Collects the set of unused variables for a given context. + * + * Due to complexity, this does not take into consideration: + * - variables within declaration files + * - variables within ambient module declarations + */ +function collectUnusedVariables(context) { + return UnusedVarsVisitor.collectUnusedVariables(context); +} +exports.collectUnusedVariables = collectUnusedVariables; +//# sourceMappingURL=collectUnusedVariables.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js.map new file mode 100644 index 0000000000..dd410998d0 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/collectUnusedVariables.js.map @@ -0,0 +1 @@ +{"version":3,"file":"collectUnusedVariables.js","sourceRoot":"","sources":["../../src/util/collectUnusedVariables.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js index b7066ab418..4799c815af 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js @@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.createRule = void 0; const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); // note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder +// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const version = require('../../package.json').version; exports.createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `https://github.com/typescript-eslint/typescript-eslint/blob/v${version}/packages/eslint-plugin/docs/rules/${name}.md`); //# sourceMappingURL=createRule.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map index 768d51b074..c94f0c140d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map @@ -1 +1 @@ -{"version":3,"file":"createRule.js","sourceRoot":"","sources":["../../src/util/createRule.ts"],"names":[],"mappings":";;;AAAA,8EAAoE;AAEpE,sHAAsH;AACtH,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAEzC,QAAA,UAAU,GAAG,gCAAW,CAAC,WAAW,CAC/C,IAAI,CAAC,EAAE,CACL,gEAAgE,OAAO,sCAAsC,IAAI,KAAK,CACzH,CAAC"} \ No newline at end of file +{"version":3,"file":"createRule.js","sourceRoot":"","sources":["../../src/util/createRule.ts"],"names":[],"mappings":";;;AAAA,8EAAoE;AAEpE,sHAAsH;AACtH,mEAAmE;AACnE,MAAM,OAAO,GAAW,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAEjD,QAAA,UAAU,GAAG,gCAAW,CAAC,WAAW,CAC/C,IAAI,CAAC,EAAE,CACL,gEAAgE,OAAO,sCAAsC,IAAI,KAAK,CACzH,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js new file mode 100644 index 0000000000..35c84903e5 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.escapeRegExp = void 0; +/** + * Lodash + * Released under MIT license + */ +const reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +const reHasRegExpChar = RegExp(reRegExpChar.source); +function escapeRegExp(string = '') { + return string && reHasRegExpChar.test(string) + ? string.replace(reRegExpChar, '\\$&') + : string; +} +exports.escapeRegExp = escapeRegExp; +//# sourceMappingURL=escapeRegExp.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js.map new file mode 100644 index 0000000000..4a5814031d --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/escapeRegExp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"escapeRegExp.js","sourceRoot":"","sources":["../../src/util/escapeRegExp.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAC3C,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpD,SAAgB,YAAY,CAAC,MAAM,GAAG,EAAE;IACtC,OAAO,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACtC,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAJD,oCAIC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js index ad102492dc..ff151592ad 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js @@ -3,52 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.isTypedFunctionExpression = exports.doesImmediatelyReturnFunctionExpression = exports.checkFunctionReturnType = exports.checkFunctionExpressionReturnType = void 0; const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const astUtils_1 = require("./astUtils"); +const getFunctionHeadLoc_1 = require("./getFunctionHeadLoc"); const nullThrows_1 = require("./nullThrows"); -/** - * Creates a report location for the given function. - * The location only encompasses the "start" of the function, and not the body - * - * eg. - * function foo(args) {} - * ^^^^^^^^^^^^^^^^^^ - * - * get y(args) {} - * ^^^^^^^^^^^ - * - * const x = (args) => {} - * ^^^^^^^^^ - */ -function getReporLoc(node, sourceCode) { - /** - * Returns start column position - * @param node - */ - function getLocStart() { - /* highlight method name */ - const parent = node.parent; - if (parent && - (parent.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition || - (parent.type === experimental_utils_1.AST_NODE_TYPES.Property && parent.method))) { - return parent.loc.start; - } - return node.loc.start; - } - /** - * Returns end column position - * @param node - */ - function getLocEnd() { - /* highlight `=>` */ - if (node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression) { - return sourceCode.getTokenBefore(node.body, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '=>').loc.end; - } - return sourceCode.getTokenBefore(node.body).loc.end; - } - return { - start: getLocStart(), - end: getLocEnd(), - }; -} /** * Checks if a node is a variable declarator with a type annotation. * ``` @@ -78,11 +34,12 @@ function isConstructorArgument(node) { return node.type === experimental_utils_1.AST_NODE_TYPES.NewExpression; } /** - * Checks if a node belongs to: + * Checks if a node is a property or a nested property of a typed object: * ``` * const x: Foo = { prop: () => {} } * const x = { prop: () => {} } as Foo * const x = { prop: () => {} } + * const x: Foo = { bar: { prop: () => {} } } * ``` */ function isPropertyOfObjectWithType(property) { @@ -101,7 +58,8 @@ function isPropertyOfObjectWithType(property) { return (astUtils_1.isTypeAssertion(parent) || isClassPropertyWithTypeAnnotation(parent) || isVariableDeclaratorWithTypeAnnotation(parent) || - isFunctionArgument(parent)); + isFunctionArgument(parent) || + isPropertyOfObjectWithType(parent)); } /** * Checks if a function belongs to: @@ -225,7 +183,7 @@ function checkFunctionReturnType(node, options, sourceCode, report) { if (isValidFunctionReturnType(node, options)) { return; } - report(getReporLoc(node, sourceCode)); + report(getFunctionHeadLoc_1.getFunctionHeadLoc(node, sourceCode)); } exports.checkFunctionReturnType = checkFunctionReturnType; /** diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map index 1dbb920a0b..4f05184055 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/explicitReturnTypeUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"explicitReturnTypeUtils.js","sourceRoot":"","sources":["../../src/util/explicitReturnTypeUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"explicitReturnTypeUtils.js","sourceRoot":"","sources":["../../src/util/explicitReturnTypeUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js new file mode 100644 index 0000000000..b3a3b27b42 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getFunctionHeadLoc = void 0; +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +/** + * Creates a report location for the given function. + * The location only encompasses the "start" of the function, and not the body + * + * eg. + * + * ``` + * function foo(args) {} + * ^^^^^^^^^^^^^^^^^^ + * + * get y(args) {} + * ^^^^^^^^^^^ + * + * const x = (args) => {} + * ^^^^^^^^^ + * ``` + */ +function getFunctionHeadLoc(node, sourceCode) { + function getLocStart() { + if (node.parent && node.parent.type === experimental_utils_1.AST_NODE_TYPES.MethodDefinition) { + // return the start location for class method + if (node.parent.decorators && node.parent.decorators.length > 0) { + // exclude decorators + return sourceCode.getTokenAfter(node.parent.decorators[node.parent.decorators.length - 1]).loc.start; + } + return node.parent.loc.start; + } + if (node.parent && + node.parent.type === experimental_utils_1.AST_NODE_TYPES.Property && + node.parent.method) { + // return the start location for object method shorthand + return node.parent.loc.start; + } + // return the start location for a regular function + return node.loc.start; + } + function getLocEnd() { + if (node.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression) { + // find the end location for arrow function expression + return sourceCode.getTokenBefore(node.body, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '=>').loc.end; + } + // return the end location for a regular function + return sourceCode.getTokenBefore(node.body).loc.end; + } + return { + start: getLocStart(), + end: getLocEnd(), + }; +} +exports.getFunctionHeadLoc = getFunctionHeadLoc; +//# sourceMappingURL=getFunctionHeadLoc.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js.map new file mode 100644 index 0000000000..77aca2dba3 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getFunctionHeadLoc.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getFunctionHeadLoc.js","sourceRoot":"","sources":["../../src/util/getFunctionHeadLoc.ts"],"names":[],"mappings":";;;AAAA,8EAK+C;AAO/C;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,kBAAkB,CAChC,IAAkB,EAClB,UAA+B;IAE/B,SAAS,WAAW;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,EAAE;YACvE,6CAA6C;YAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/D,qBAAqB;gBACrB,OAAO,UAAU,CAAC,aAAa,CAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CACzD,CAAC,GAAG,CAAC,KAAK,CAAC;aACd;YAED,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC9B;QAED,IACE,IAAI,CAAC,MAAM;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,QAAQ;YAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB;YACA,wDAAwD;YACxD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC9B;QAED,mDAAmD;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,SAAS,SAAS;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,uBAAuB,EAAE;YACxD,sDAAsD;YACtD,OAAO,UAAU,CAAC,cAAc,CAC9B,IAAI,CAAC,IAAI,EACT,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,oCAAe,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CACnE,CAAC,GAAG,CAAC,GAAG,CAAC;SACZ;QAED,iDAAiD;QACjD,OAAO,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IACvD,CAAC;IAED,OAAO;QACL,KAAK,EAAE,WAAW,EAAE;QACpB,GAAG,EAAE,SAAS,EAAE;KACjB,CAAC;AACJ,CAAC;AAjDD,gDAiDC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js new file mode 100644 index 0000000000..dee0776b0f --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getThisExpression = void 0; +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +function getThisExpression(node) { + while (node) { + if (node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) { + node = node.callee; + } + else if (node.type === experimental_utils_1.AST_NODE_TYPES.ThisExpression) { + return node; + } + else if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) { + node = node.object; + } + else if (node.type === experimental_utils_1.AST_NODE_TYPES.ChainExpression) { + node = node.expression; + } + else { + break; + } + } + return; +} +exports.getThisExpression = getThisExpression; +//# sourceMappingURL=getThisExpression.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js.map new file mode 100644 index 0000000000..d19d081416 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getThisExpression.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getThisExpression.js","sourceRoot":"","sources":["../../src/util/getThisExpression.ts"],"names":[],"mappings":";;;AAAA,8EAG+C;AAE/C,SAAgB,iBAAiB,CAC/B,IAAmB;IAEnB,OAAO,IAAI,EAAE;QACX,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,EAAE;YAC/C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,cAAc,EAAE;YACtD,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,gBAAgB,EAAE;YACxD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACpB;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,eAAe,EAAE;YACvD,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;SACxB;aAAM;YACL,MAAM;SACP;KACF;IAED,OAAO;AACT,CAAC;AAlBD,8CAkBC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js new file mode 100644 index 0000000000..a81d6063cc --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js @@ -0,0 +1,160 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getWrappingFixer = void 0; +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); +const util = __importStar(require("../util")); +/** + * Wraps node with some code. Adds parenthesis as necessary. + * @returns Fixer which adds the specified code and parens if necessary. + */ +function getWrappingFixer(params) { + const { sourceCode, node, innerNode = node, wrap } = params; + const innerNodes = Array.isArray(innerNode) ? innerNode : [innerNode]; + return (fixer) => { + const innerCodes = innerNodes.map(innerNode => { + let code = sourceCode.getText(innerNode); + // check the inner expression's precedence + if (!isStrongPrecedenceNode(innerNode)) { + // the code we are adding might have stronger precedence than our wrapped node + // let's wrap our node in parens in case it has a weaker precedence than the code we are wrapping it in + code = `(${code})`; + } + return code; + }); + // do the wrapping + let code = wrap(...innerCodes); + // check the outer expression's precedence + if (isWeakPrecedenceParent(node)) { + // we wrapped the node in some expression which very likely has a different precedence than original wrapped node + // let's wrap the whole expression in parens just in case + if (!util.isParenthesized(node, sourceCode)) { + code = `(${code})`; + } + } + // check if we need to insert semicolon + if (/^[`([]/.exec(code) && isMissingSemicolonBefore(node, sourceCode)) { + code = `;${code}`; + } + return fixer.replaceText(node, code); + }; +} +exports.getWrappingFixer = getWrappingFixer; +/** + * Check if a node will always have the same precedence if it's parent changes. + */ +function isStrongPrecedenceNode(innerNode) { + return (innerNode.type === experimental_utils_1.AST_NODE_TYPES.Literal || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.Identifier || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.ArrayExpression || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.ObjectExpression || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.CallExpression || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.NewExpression || + innerNode.type === experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression); +} +/** + * Check if a node's parent could have different precedence if the node changes. + */ +function isWeakPrecedenceParent(node) { + const parent = node.parent; + if (parent.type === experimental_utils_1.AST_NODE_TYPES.UpdateExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.BinaryExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.ConditionalExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.AwaitExpression) { + return true; + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression && + parent.object === node) { + return true; + } + if ((parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.NewExpression) && + parent.callee === node) { + return true; + } + if (parent.type === experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression && + parent.tag === node) { + return true; + } + return false; +} +/** + * Returns true if a node is at the beginning of expression statement and the statement above doesn't end with semicolon. + * Doesn't check if the node begins with `(`, `[` or `` ` ``. + */ +function isMissingSemicolonBefore(node, sourceCode) { + for (;;) { + const parent = node.parent; + if (parent.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement) { + const block = parent.parent; + if (block.type === experimental_utils_1.AST_NODE_TYPES.Program || + block.type === experimental_utils_1.AST_NODE_TYPES.BlockStatement) { + // parent is an expression statement in a block + const statementIndex = block.body.indexOf(parent); + const previousStatement = block.body[statementIndex - 1]; + if (statementIndex > 0 && + sourceCode.getLastToken(previousStatement).value !== ';') { + return true; + } + } + } + if (!isLeftHandSide(node)) { + return false; + } + node = parent; + } +} +/** + * Checks if a node is LHS of an operator. + */ +function isLeftHandSide(node) { + const parent = node.parent; + // a++ + if (parent.type === experimental_utils_1.AST_NODE_TYPES.UpdateExpression) { + return true; + } + // a + b + if ((parent.type === experimental_utils_1.AST_NODE_TYPES.BinaryExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression || + parent.type === experimental_utils_1.AST_NODE_TYPES.AssignmentExpression) && + node === parent.left) { + return true; + } + // a ? b : c + if (parent.type === experimental_utils_1.AST_NODE_TYPES.ConditionalExpression && + node === parent.test) { + return true; + } + // a(b) + if (parent.type === experimental_utils_1.AST_NODE_TYPES.CallExpression && node === parent.callee) { + return true; + } + // a`b` + if (parent.type === experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression && + node === parent.tag) { + return true; + } + return false; +} +//# sourceMappingURL=getWrappingFixer.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js.map new file mode 100644 index 0000000000..150f010220 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/getWrappingFixer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getWrappingFixer.js","sourceRoot":"","sources":["../../src/util/getWrappingFixer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js index 9ab6ac9a21..964f8bca67 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js @@ -13,14 +13,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.getParserServices = exports.isObjectNotArray = exports.deepMerge = exports.applyDefault = void 0; const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); __exportStar(require("./astUtils"), exports); +__exportStar(require("./collectUnusedVariables"), exports); __exportStar(require("./createRule"), exports); +__exportStar(require("./getFunctionHeadLoc"), exports); +__exportStar(require("./getThisExpression"), exports); +__exportStar(require("./getWrappingFixer"), exports); __exportStar(require("./isTypeReadonly"), exports); __exportStar(require("./misc"), exports); __exportStar(require("./nullThrows"), exports); __exportStar(require("./objectIterators"), exports); +__exportStar(require("./propertyTypes"), exports); +__exportStar(require("./requiresQuoting"), exports); __exportStar(require("./types"), exports); // this is done for convenience - saves migrating all of the old rules -const { applyDefault, deepMerge, isObjectNotArray, getParserServices, } = experimental_utils_1.ESLintUtils; +const { applyDefault, deepMerge, isObjectNotArray, getParserServices } = experimental_utils_1.ESLintUtils; exports.applyDefault = applyDefault; exports.deepMerge = deepMerge; exports.isObjectNotArray = isObjectNotArray; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map index d3ef1edb10..6e317d87e4 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,8EAAoE;AAEpE,6CAA2B;AAC3B,+CAA6B;AAC7B,mDAAiC;AACjC,yCAAuB;AACvB,+CAA6B;AAC7B,oDAAkC;AAClC,0CAAwB;AAExB,sEAAsE;AACtE,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,GAAG,gCAAW,CAAC;AAOd,oCAAY;AACZ,8BAAS;AACT,4CAAgB;AAChB,8CAAiB"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,8EAAoE;AAEpE,6CAA2B;AAC3B,2DAAyC;AACzC,+CAA6B;AAC7B,uDAAqC;AACrC,sDAAoC;AACpC,qDAAmC;AACnC,mDAAiC;AACjC,yCAAuB;AACvB,+CAA6B;AAC7B,oDAAkC;AAClC,kDAAgC;AAChC,oDAAkC;AAClC,0CAAwB;AAExB,sEAAsE;AACtE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,GACpE,gCAAW,CAAC;AAMZ,oCAAY;AACZ,8BAAS;AACT,4CAAgB;AAChB,8CAAiB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js index 754b09d2a4..78f5f46208 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js @@ -79,7 +79,7 @@ function isTypeReadonlyObject(checker, type, seenTypes) { // as we might be able to bail out early due to a mutable property before // doing this deep, potentially expensive check. for (const property of properties) { - const propertyType = _1.nullThrows(checker.getTypeOfPropertyOfType(type, property.getName()), _1.NullThrowsReasons.MissingToken(`property "${property.name}"`, 'type')); + const propertyType = _1.nullThrows(_1.getTypeOfPropertyOfType(checker, type, property), _1.NullThrowsReasons.MissingToken(`property "${property.name}"`, 'type')); // handle recursive types. // we only need this simple check, because a mutable recursive type will break via the above prop readonly check if (seenTypes.has(propertyType)) { diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map index e4705c029b..7cfab62df2 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/isTypeReadonly.js.map @@ -1 +1 @@ -{"version":3,"file":"isTypeReadonly.js","sourceRoot":"","sources":["../../src/util/isTypeReadonly.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"isTypeReadonly.js","sourceRoot":"","sources":["../../src/util/isTypeReadonly.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,qCAMiB;AACjB,+CAAiC;AACjC,wBAA2E;AAW3E,SAAS,0BAA0B,CACjC,OAAuB,EACvB,IAAa,EACb,SAAuB;IAEvB,SAAS,kBAAkB,CAAC,SAA2B;QACrD,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC1D,uCAAuC;QACvC,4CAA4C;QAC5C,oDAAoD;QACpD,wBAAwB,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YACvD,wBAA6B;SAC9B;QAED,+CAA+C;QAC/C,IACE,aAAa,CAAC,IAAI,CAChB,OAAO,CAAC,EAAE,CACR,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;2BAC/B,CACvB,EACD;YACA,uBAA4B;SAC7B;QACD,wBAA6B;IAC/B,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAC7B,MAAM,MAAM,GAAG,aAAU,CACvB,IAAI,CAAC,SAAS,EAAE,EAChB,oBAAiB,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CACvD,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC5C,IAAI,WAAW,KAAK,OAAO,EAAE;YAC3B,uBAA4B;SAC7B;QAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACjC;IAED,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACzB,uBAA4B;SAC7B;QAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACjC;IAED,2BAAgC;AAClC,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAuB,EACvB,IAAa,EACb,SAAuB;IAEvB,SAAS,mBAAmB,CAAC,IAAkB;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC,UAAU;gBACzB,CAAC;gBACD,CAAC,gBAAqB,CAAC;SAC1B;QAED,2BAAgC;IAClC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,+CAA+C;QAC/C,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;YACjC,IAAI,CAAC,kCAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE;gBACvE,uBAA4B;aAC7B;SACF;QAED,+BAA+B;QAC/B,uDAAuD;QAEvD,wEAAwE;QACxE,yEAAyE;QACzE,gDAAgD;QAChD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;YACjC,MAAM,YAAY,GAAG,aAAU,CAC7B,0BAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EAChD,oBAAiB,CAAC,YAAY,CAAC,aAAa,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CACtE,CAAC;YAEF,0BAA0B;YAC1B,gHAAgH;YAChH,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;gBAC/B,SAAS;aACV;YAED,IACE,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC;+BACpC,EACpB;gBACA,uBAA4B;aAC7B;SACF;KACF;IAED,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,wBAAwB,oBAAyB,EAAE;QACrD,OAAO,wBAAwB,CAAC;KACjC;IAED,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,wBAAwB,oBAAyB,EAAE;QACrD,OAAO,wBAAwB,CAAC;KACjC;IAED,wBAA6B;AAC/B,CAAC;AAED,qGAAqG;AACrG,SAAS,sBAAsB,CAC7B,OAAuB,EACvB,IAAa,EACb,SAAuB;IAEvB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEpB,IAAI,qBAAW,CAAC,IAAI,CAAC,EAAE;QACrB,0CAA0C;QAC1C,MAAM,MAAM,GAAG,wBAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC5C,sBAAsB,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAC9C,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,kBAAuB,CAAC,gBAAqB,CAAC;QAC3E,OAAO,YAAY,CAAC;KACrB;IAED,uDAAuD;IACvD,sCAAsC;IACtC,IAAI,CAAC,sBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAyB,CAAC,IAAI,CAAC,EAAE;QAC3D,wBAA6B;KAC9B;IAED,mCAAmC;IACnC,IACE,IAAI,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EACjC;QACA,wBAA6B;KAC9B;IAED,MAAM,eAAe,GAAG,0BAA0B,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7E,IAAI,eAAe,wBAA6B,EAAE;QAChD,OAAO,eAAe,CAAC;KACxB;IAED,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACxE,0BAA0B,CAAC,IACzB,gBAAgB,wBAA6B,EAC7C;QACA,OAAO,gBAAgB,CAAC;KACzB;IAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAuB,EAAE,IAAa;IAC5D,OAAO,CACL,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,qBAA0B,CAC3E,CAAC;AACJ,CAAC;AAEQ,wCAAc"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js new file mode 100644 index 0000000000..6470d8f481 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getTypeOfPropertyOfType = exports.getTypeOfPropertyOfName = void 0; +function getTypeOfPropertyOfName(checker, type, name, escapedName) { + // Most names are directly usable in the checker and aren't different from escaped names + if (!escapedName || !name.startsWith('__')) { + return checker.getTypeOfPropertyOfType(type, name); + } + // Symbolic names may differ in their escaped name compared to their human-readable name + // https://github.com/typescript-eslint/typescript-eslint/issues/2143 + const escapedProperty = type + .getProperties() + .find(property => property.escapedName === escapedName); + return escapedProperty + ? checker.getDeclaredTypeOfSymbol(escapedProperty) + : undefined; +} +exports.getTypeOfPropertyOfName = getTypeOfPropertyOfName; +function getTypeOfPropertyOfType(checker, type, property) { + return getTypeOfPropertyOfName(checker, type, property.getName(), property.getEscapedName()); +} +exports.getTypeOfPropertyOfType = getTypeOfPropertyOfType; +//# sourceMappingURL=propertyTypes.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js.map new file mode 100644 index 0000000000..06e4a077c1 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/propertyTypes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"propertyTypes.js","sourceRoot":"","sources":["../../src/util/propertyTypes.ts"],"names":[],"mappings":";;;AAEA,SAAgB,uBAAuB,CACrC,OAAuB,EACvB,IAAa,EACb,IAAY,EACZ,WAAyB;IAEzB,wFAAwF;IACxF,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC1C,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACpD;IAED,wFAAwF;IACxF,qEAAqE;IACrE,MAAM,eAAe,GAAG,IAAI;SACzB,aAAa,EAAE;SACf,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;IAE1D,OAAO,eAAe;QACpB,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,eAAe,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AApBD,0DAoBC;AAED,SAAgB,uBAAuB,CACrC,OAAuB,EACvB,IAAa,EACb,QAAmB;IAEnB,OAAO,uBAAuB,CAC5B,OAAO,EACP,IAAI,EACJ,QAAQ,CAAC,OAAO,EAAE,EAClB,QAAQ,CAAC,cAAc,EAAE,CAC1B,CAAC;AACJ,CAAC;AAXD,0DAWC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/requiresQuoting.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/requiresQuoting.js new file mode 100644 index 0000000000..c8dafe277d --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/requiresQuoting.js @@ -0,0 +1,39 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.requiresQuoting = void 0; +const ts = __importStar(require("typescript")); +function requiresQuoting(name, target = ts.ScriptTarget.ESNext) { + if (name.length === 0) { + return true; + } + if (!ts.isIdentifierStart(name.charCodeAt(0), target)) { + return true; + } + for (let i = 1; i < name.length; i += 1) { + if (!ts.isIdentifierPart(name.charCodeAt(i), target)) { + return true; + } + } + return false; +} +exports.requiresQuoting = requiresQuoting; +//# sourceMappingURL=requiresQuoting.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/requiresQuoting.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/requiresQuoting.js.map new file mode 100644 index 0000000000..bea7ea2ae0 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/requiresQuoting.js.map @@ -0,0 +1 @@ +{"version":3,"file":"requiresQuoting.js","sourceRoot":"","sources":["../../src/util/requiresQuoting.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,SAAS,eAAe,CACtB,IAAY,EACZ,SAA0B,EAAE,CAAC,YAAY,CAAC,MAAM;IAEhD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;QACrD,OAAO,IAAI,CAAC;KACb;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEQ,0CAAe"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js index bb543a3588..14b38b21b3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js @@ -23,6 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getContextualType = exports.isUnsafeAssignment = exports.isAnyOrAnyArrayTypeDiscriminated = exports.isTypeUnknownArrayType = exports.isTypeAnyArrayType = exports.isTypeAnyType = exports.isTypeUnknownType = exports.getTypeArguments = exports.getEqualsKind = exports.getTokenAtPosition = exports.getSourceFileOfNode = exports.typeIsOrHasBaseType = exports.isTypeFlagSet = exports.getTypeFlags = exports.getDeclaration = exports.isNullableType = exports.getConstrainedTypeAtLocation = exports.getTypeName = exports.containsAllTypesByName = exports.isTypeArrayTypeOrUnionOfArrayTypes = void 0; +const experimental_utils_1 = require("@typescript-eslint/experimental-utils"); const debug_1 = __importDefault(require("debug")); const tsutils_1 = require("tsutils"); const ts = __importStar(require("typescript")); @@ -329,7 +330,7 @@ exports.isAnyOrAnyArrayTypeDiscriminated = isAnyOrAnyArrayTypeDiscriminated; * * @returns false if it's safe, or an object with the two types if it's unsafe */ -function isUnsafeAssignment(type, receiver, checker) { +function isUnsafeAssignment(type, receiver, checker, senderNode) { var _a, _b; if (isTypeAnyType(type)) { // Allow assignment of any ==> unknown. @@ -358,12 +359,22 @@ function isUnsafeAssignment(type, receiver, checker) { // the generic positions might not be equivalent for both types return false; } + if ((senderNode === null || senderNode === void 0 ? void 0 : senderNode.type) === experimental_utils_1.AST_NODE_TYPES.NewExpression && + senderNode.callee.type === experimental_utils_1.AST_NODE_TYPES.Identifier && + senderNode.callee.name === 'Map' && + senderNode.arguments.length === 0 && + senderNode.typeParameters == null) { + // special case to handle `new Map()` + // unfortunately Map's default empty constructor is typed to return `Map` :( + // https://github.com/typescript-eslint/typescript-eslint/issues/2109#issuecomment-634144396 + return false; + } const typeArguments = (_a = type.typeArguments) !== null && _a !== void 0 ? _a : []; const receiverTypeArguments = (_b = receiver.typeArguments) !== null && _b !== void 0 ? _b : []; for (let i = 0; i < typeArguments.length; i += 1) { const arg = typeArguments[i]; const receiverArg = receiverTypeArguments[i]; - const unsafe = isUnsafeAssignment(arg, receiverArg, checker); + const unsafe = isUnsafeAssignment(arg, receiverArg, checker, senderNode); if (unsafe) { return { sender: type, receiver }; } @@ -400,6 +411,12 @@ function getContextualType(checker, node) { else if (tsutils_1.isPropertyAssignment(parent) && tsutils_1.isIdentifier(node)) { return checker.getContextualType(node); } + else if (tsutils_1.isBinaryExpression(parent) && + parent.operatorToken.kind === ts.SyntaxKind.EqualsToken && + parent.right === node) { + // is RHS of assignment + return checker.getTypeAtLocation(parent.left); + } else if (![ts.SyntaxKind.TemplateSpan, ts.SyntaxKind.JsxExpression].includes(parent.kind)) { // parent is not something we know we can get the contextual type of return; diff --git a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map index 275e1eedd2..b070e338b3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map +++ b/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map @@ -1 +1 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,qCAYiB;AACjB,+CAAiC;AAEjC,MAAM,GAAG,GAAG,eAAK,CAAC,6CAA6C,CAAC,CAAC;AAEjE;;;GAGG;AACH,SAAgB,kCAAkC,CAChD,IAAa,EACb,OAAuB;IAEvB,KAAK,MAAM,CAAC,IAAI,wBAAc,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,gFAWC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,IAAa,EACb,QAAiB,EACjB,YAAyB;IAEzB,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QAChE,OAAO,CAAC,QAAQ,CAAC;KAClB;IAED,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;QACzB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;IAED,IAAI,mCAAyB,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC1B,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAClD,CAAC;KACH;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,WAAW;QAC5B,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AA9BD,wDA8BC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CACzB,WAA2B,EAC3B,IAAa;IAEb,0DAA0D;IAC1D,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAChD,OAAO,QAAQ,CAAC;KACjB;IAED,wEAAwE;IACxE,sEAAsE;IACtE,8BAA8B;IAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACnD,sEAAsE;QACtE,uEAAuE;QACvE,WAAW;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAgC,CAAC;QAChE,IACE,EAAE,CAAC,0BAA0B,CAAC,aAAa,CAAC;YAC5C,aAAa,CAAC,UAAU,IAAI,IAAI,EAChC;YACA,OAAO,WAAW,CAChB,WAAW,EACX,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAC1D,CAAC;SACH;KACF;IAED,qEAAqE;IACrE,gCAAgC;IAChC,2BAA2B;IAC3B,uCAAuC;IACvC,IACE,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,KAAK;aACP,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC7C,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC7B;QACA,OAAO,QAAQ,CAAC;KACjB;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,IACE,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,KAAK;aACP,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC5B;QACA,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAvDD,kCAuDC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,OAAuB,EACvB,IAAa;IAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAE9D,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,QAAQ,CAAC;AACjC,CAAC;AARD,oEAQC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,IAAa,EACb,EACE,UAAU,GAAG,KAAK,EAClB,cAAc,GAAG,IAAI,MACiC,EAAE;IAE1D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAED,IAAI,cAAc,EAAE;QAClB,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;KACrE;SAAM;QACL,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;AACH,CAAC;AAlBD,wCAkBC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,OAAuB,EACvB,IAAmB;;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,aAAO,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,oCAAK,IAAI,CAAC;AACnC,CAAC;AAVD,wCAUC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAa;IACxC,IAAI,KAAK,GAAiB,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,wBAAc,CAAC,IAAI,CAAC,EAAE;QACpC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;KAClB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAND,oCAMC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,IAAa,EACb,YAA0B,EAC1B,UAAoB;IAEpB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAZD,sCAYC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAa,EACb,UAAmB;IAEnB,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;QACtC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAE1C,IAAI,aAAa,EAAE;QACjB,gBAAgB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;KACzC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE;QACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAxBD,kDAwBC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE;QACrD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,OAAO,IAAqB,CAAC;AAC/B,CAAC;AALD,kDAKC;AAED,SAAgB,kBAAkB,CAChC,UAAyB,EACzB,QAAgB;IAEhB,MAAM,KAAK,GAAc,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,OAAgB,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QACzB,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YACnD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,KAAK,GAAG,QAAQ,EAAE;gBACpB,kFAAkF;gBAClF,OAAO,OAAO,CAAC;aAChB;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,IACE,QAAQ,GAAG,GAAG;gBACd,CAAC,QAAQ,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EACjE;gBACA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,MAAM;aACP;SACF;KACF;IACD,OAAO,OAAQ,CAAC;AAClB,CAAC;AA3BD,gDA2BC;AAOD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,QAAQ,QAAQ,EAAE;QAChB,KAAK,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,KAAK;aAChB,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC;QAEJ,KAAK,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI;aACf,CAAC;QAEJ;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC;AA7BD,sCA6BC;AAED,SAAgB,gBAAgB,CAC9B,IAAsB,EACtB,OAAuB;;IAEvB,2CAA2C;IAC3C,IAAI,OAAO,CAAC,gBAAgB,EAAE;QAC5B,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACvC;IAED,aAAO,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC;AAClC,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAFD,8CAEC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAa;IACzC,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;QACzC,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;YAClC,GAAG,CAAC,2BAA2B,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,sCAQC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,IAAa,EACb,OAAuB;IAEvB,OAAO,CACL,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QACzB,aAAa;QACX,2CAA2C;QAC3C,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACnC,CACF,CAAC;AACJ,CAAC;AAXD,gDAWC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,IAAa,EACb,OAAuB;IAEvB,OAAO,CACL,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QACzB,iBAAiB;QACf,2CAA2C;QAC3C,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACnC,CACF,CAAC;AACJ,CAAC;AAXD,wDAWC;AAOD;;;GAGG;AACH,SAAgB,gCAAgC,CAC9C,IAAa,EACb,OAAuB;IAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;QACvB,mBAAmB;KACpB;IACD,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QACrC,wBAAwB;KACzB;IACD,oBAAoB;AACtB,CAAC;AAZD,4EAYC;AAED;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAChC,IAAa,EACb,QAAiB,EACjB,OAAuB;;IAEvB,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;QACvB,uCAAuC;QACvC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACnC;KACF;IAED,IAAI,yBAAe,CAAC,IAAI,CAAC,IAAI,yBAAe,CAAC,QAAQ,CAAC,EAAE;QACtD,mDAAmD;QACnD,wDAAwD;QACxD;;;;;;;;;UASE;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;YACnC,mGAAmG;YACnG,+DAA+D;YAC/D,OAAO,KAAK,CAAC;SACd;QAED,MAAM,aAAa,SAAG,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC;QAC/C,MAAM,qBAAqB,SAAG,QAAQ,CAAC,aAAa,mCAAI,EAAE,CAAC;QAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAChD,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,MAAM,EAAE;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACnC;SACF;QAED,OAAO,KAAK,CAAC;KACd;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AArDD,gDAqDC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,OAAuB,EACvB,IAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,IAAI,0BAAgB,CAAC,MAAM,CAAC,IAAI,yBAAe,CAAC,MAAM,CAAC,EAAE;QACvD,IAAI,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE;YAC9B,2CAA2C;YAC3C,OAAO;SACR;KACF;SAAM,IACL,+BAAqB,CAAC,MAAM,CAAC;QAC7B,+BAAqB,CAAC,MAAM,CAAC;QAC7B,gCAAsB,CAAC,MAAM,CAAC,EAC9B;QACA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC3E;SAAM,IAAI,yBAAe,CAAC,MAAM,CAAC,EAAE;QAClC,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;KAC1C;SAAM,IAAI,8BAAoB,CAAC,MAAM,CAAC,IAAI,sBAAY,CAAC,IAAI,CAAC,EAAE;QAC7D,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KACxC;SAAM,IACL,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,QAAQ,CACjE,MAAM,CAAC,IAAI,CACZ,EACD;QACA,oEAAoE;QACpE,OAAO;KACR;IACD,2CAA2C;IAE3C,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAnCD,8CAmCC"} \ No newline at end of file +{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAG+C;AAC/C,kDAA0B;AAC1B,qCAaiB;AACjB,+CAAiC;AAEjC,MAAM,GAAG,GAAG,eAAK,CAAC,6CAA6C,CAAC,CAAC;AAEjE;;;GAGG;AACH,SAAgB,kCAAkC,CAChD,IAAa,EACb,OAAuB;IAEvB,KAAK,MAAM,CAAC,IAAI,wBAAc,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,gFAWC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,IAAa,EACb,QAAiB,EACjB,YAAyB;IAEzB,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QAChE,OAAO,CAAC,QAAQ,CAAC;KAClB;IAED,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;QACzB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;IAED,IAAI,mCAAyB,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC1B,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAClD,CAAC;KACH;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,WAAW;QAC5B,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AA9BD,wDA8BC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CACzB,WAA2B,EAC3B,IAAa;IAEb,0DAA0D;IAC1D,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QAChD,OAAO,QAAQ,CAAC;KACjB;IAED,wEAAwE;IACxE,sEAAsE;IACtE,8BAA8B;IAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACnD,sEAAsE;QACtE,uEAAuE;QACvE,WAAW;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAgC,CAAC;QAChE,IACE,EAAE,CAAC,0BAA0B,CAAC,aAAa,CAAC;YAC5C,aAAa,CAAC,UAAU,IAAI,IAAI,EAChC;YACA,OAAO,WAAW,CAChB,WAAW,EACX,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAC1D,CAAC;SACH;KACF;IAED,qEAAqE;IACrE,gCAAgC;IAChC,2BAA2B;IAC3B,uCAAuC;IACvC,IACE,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,KAAK;aACP,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC7C,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC7B;QACA,OAAO,QAAQ,CAAC;KACjB;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,IACE,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,KAAK;aACP,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAC5B;QACA,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAvDD,kCAuDC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,OAAuB,EACvB,IAAa;IAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAE9D,OAAO,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,QAAQ,CAAC;AACjC,CAAC;AARD,oEAQC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,IAAa,EACb,EACE,UAAU,GAAG,KAAK,EAClB,cAAc,GAAG,IAAI,MACiC,EAAE;IAE1D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAED,IAAI,cAAc,EAAE;QAClB,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;KACrE;SAAM;QACL,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;AACH,CAAC;AAlBD,wCAkBC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,OAAuB,EACvB,IAAmB;;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,OAAO,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,CAAC,mCAAI,IAAI,CAAC;AACnC,CAAC;AAVD,wCAUC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAa;IACxC,IAAI,KAAK,GAAiB,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,wBAAc,CAAC,IAAI,CAAC,EAAE;QACpC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;KAClB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAND,oCAMC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,IAAa,EACb,YAA0B,EAC1B,UAAoB;IAEpB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAZD,sCAYC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAa,EACb,UAAmB;IAEnB,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;QACtC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAE1C,IAAI,aAAa,EAAE;QACjB,gBAAgB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;KACzC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE;QACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE;YACvD,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAxBD,kDAwBC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE;QACrD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,OAAO,IAAqB,CAAC;AAC/B,CAAC;AALD,kDAKC;AAED,SAAgB,kBAAkB,CAChC,UAAyB,EACzB,QAAgB;IAEhB,MAAM,KAAK,GAAc,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,OAAgB,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QACzB,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YACnD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,KAAK,GAAG,QAAQ,EAAE;gBACpB,kFAAkF;gBAClF,OAAO,OAAO,CAAC;aAChB;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,IACE,QAAQ,GAAG,GAAG;gBACd,CAAC,QAAQ,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EACjE;gBACA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,MAAM;aACP;SACF;KACF;IACD,OAAO,OAAQ,CAAC;AAClB,CAAC;AA3BD,gDA2BC;AAOD,SAAgB,aAAa,CAAC,QAAgB;IAC5C,QAAQ,QAAQ,EAAE;QAChB,KAAK,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,KAAK;aAChB,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC;QAEJ,KAAK,IAAI;YACP,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QAEJ,KAAK,KAAK;YACR,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI;aACf,CAAC;QAEJ;YACE,OAAO,SAAS,CAAC;KACpB;AACH,CAAC;AA7BD,sCA6BC;AAED,SAAgB,gBAAgB,CAC9B,IAAsB,EACtB,OAAuB;;IAEvB,2CAA2C;IAC3C,IAAI,OAAO,CAAC,gBAAgB,EAAE;QAC5B,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KACvC;IAED,OAAO,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC;AAClC,CAAC;AAVD,4CAUC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAa;IAC7C,OAAO,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAFD,8CAEC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAa;IACzC,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;QACzC,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;YAClC,GAAG,CAAC,2BAA2B,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AARD,sCAQC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,IAAa,EACb,OAAuB;IAEvB,OAAO,CACL,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QACzB,aAAa;QACX,2CAA2C;QAC3C,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACnC,CACF,CAAC;AACJ,CAAC;AAXD,gDAWC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,IAAa,EACb,OAAuB;IAEvB,OAAO,CACL,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QACzB,iBAAiB;QACf,2CAA2C;QAC3C,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACnC,CACF,CAAC;AACJ,CAAC;AAXD,wDAWC;AAOD;;;GAGG;AACH,SAAgB,gCAAgC,CAC9C,IAAa,EACb,OAAuB;IAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;QACvB,mBAAmB;KACpB;IACD,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QACrC,wBAAwB;KACzB;IACD,oBAAoB;AACtB,CAAC;AAZD,4EAYC;AAED;;;;;;;;;GASG;AACH,SAAgB,kBAAkB,CAChC,IAAa,EACb,QAAiB,EACjB,OAAuB,EACvB,UAAgC;;IAEhC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;QACvB,uCAAuC;QACvC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACnC;KACF;IAED,IAAI,yBAAe,CAAC,IAAI,CAAC,IAAI,yBAAe,CAAC,QAAQ,CAAC,EAAE;QACtD,mDAAmD;QACnD,wDAAwD;QACxD;;;;;;;;;UASE;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;YACnC,mGAAmG;YACnG,+DAA+D;YAC/D,OAAO,KAAK,CAAC;SACd;QAED,IACE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,mCAAc,CAAC,aAAa;YACjD,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,UAAU;YACpD,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK;YAChC,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACjC,UAAU,CAAC,cAAc,IAAI,IAAI,EACjC;YACA,qCAAqC;YACrC,sFAAsF;YACtF,4FAA4F;YAC5F,OAAO,KAAK,CAAC;SACd;QAED,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC;QAC/C,MAAM,qBAAqB,GAAG,MAAA,QAAQ,CAAC,aAAa,mCAAI,EAAE,CAAC;QAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAChD,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACzE,IAAI,MAAM,EAAE;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACnC;SACF;QAED,OAAO,KAAK,CAAC;KACd;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAnED,gDAmEC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,OAAuB,EACvB,IAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,IAAI,0BAAgB,CAAC,MAAM,CAAC,IAAI,yBAAe,CAAC,MAAM,CAAC,EAAE;QACvD,IAAI,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE;YAC9B,2CAA2C;YAC3C,OAAO;SACR;KACF;SAAM,IACL,+BAAqB,CAAC,MAAM,CAAC;QAC7B,+BAAqB,CAAC,MAAM,CAAC;QAC7B,gCAAsB,CAAC,MAAM,CAAC,EAC9B;QACA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC3E;SAAM,IAAI,yBAAe,CAAC,MAAM,CAAC,EAAE;QAClC,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;KAC1C;SAAM,IAAI,8BAAoB,CAAC,MAAM,CAAC,IAAI,sBAAY,CAAC,IAAI,CAAC,EAAE;QAC7D,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KACxC;SAAM,IACL,4BAAkB,CAAC,MAAM,CAAC;QAC1B,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW;QACvD,MAAM,CAAC,KAAK,KAAK,IAAI,EACrB;QACA,uBAAuB;QACvB,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC/C;SAAM,IACL,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,QAAQ,CACjE,MAAM,CAAC,IAAI,CACZ,EACD;QACA,oEAAoE;QACpE,OAAO;KACR;IACD,2CAA2C;IAE3C,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AA1CD,8CA0CC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/array-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/array-type.md index 2ed521c293..75e2b1c6d6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/array-type.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/array-type.md @@ -92,6 +92,25 @@ const e: string[] = ['a', 'b']; const f: readonly string[] = ['a', 'b']; ``` +## Combination matrix + +This matrix lists all possible option combinations and their expected results for different types of Arrays. + +| defaultOption | readonlyOption | Array with simple type | Array with non simple type | Readonly array with simple type | Readonly array with non simple type | +| -------------- | -------------- | ---------------------- | -------------------------- | ------------------------------- | ----------------------------------- | +| `array` | | `number[]` | `(Foo & Bar)[]` | `readonly number[]` | `readonly (Foo & Bar)[]` | +| `array` | `array` | `number[]` | `(Foo & Bar)[]` | `readonly number[]` | `readonly (Foo & Bar)[]` | +| `array` | `array-simple` | `number[]` | `(Foo & Bar)[]` | `readonly number[]` | `ReadonlyArray` | +| `array` | `generic` | `number[]` | `(Foo & Bar)[]` | `ReadonlyArray` | `ReadonlyArray` | +| `array-simple` | | `number[]` | `Array` | `readonly number[]` | `ReadonlyArray` | +| `array-simple` | `array` | `number[]` | `Array` | `readonly number[]` | `readonly (Foo & Bar)[]` | +| `array-simple` | `array-simple` | `number[]` | `Array` | `readonly number[]` | `ReadonlyArray` | +| `array-simple` | `generic` | `number[]` | `Array` | `ReadonlyArray` | `ReadonlyArray` | +| `generic` | | `Array` | `Array` | `ReadonlyArray` | `ReadonlyArray` | +| `generic` | `array` | `Array` | `Array` | `readonly number[]` | `readonly (Foo & Bar)[]` | +| `generic` | `array-simple` | `Array` | `Array` | `readonly number[]` | `ReadonlyArray` | +| `generic` | `generic` | `Array` | `Array` | `ReadonlyArray` | `ReadonlyArray` | + ## Related to - TSLint: [array-type](https://palantir.github.io/tslint/rules/array-type/) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md index 2509793ebd..bfdd410475 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-comment.md @@ -1,4 +1,4 @@ -# Bans `// @ts-` comments from being used or requires descriptions after directive (`ban-ts-comment`) +# Bans `@ts-` comments from being used or requires descriptions after directive (`ban-ts-comment`) TypeScript provides several directive comments that can be used to alter how it processes files. Using these to suppress TypeScript Compiler Errors reduces the effectiveness of TypeScript overall. @@ -41,13 +41,19 @@ const defaultOptions: Options = { A value of `true` for a particular directive means that this rule will report if it finds any usage of said directive. -For example, with the defaults above the following patterns are considered warnings: +For example, with the defaults above the following patterns are considered warnings for single line or comment block lines: ```ts if (false) { // @ts-ignore: Unreachable code error console.log('hello'); } +if (false) { + /* + @ts-ignore: Unreachable code error + */ + console.log('hello'); +} ``` The following patterns are not warnings: @@ -63,22 +69,32 @@ if (false) { A value of `'allow-with-description'` for a particular directive means that this rule will report if it finds a directive that does not have a description following the directive (on the same line). -For example, with `{ 'ts-expect-error': 'allow-with-description' }` the following pattern is considered a warning: +For example, with `{ 'ts-expect-error': 'allow-with-description' }` the following patterns are considered a warning: ```ts if (false) { // @ts-expect-error console.log('hello'); } +if (false) { + /* @ts-expect-error */ + console.log('hello'); +} ``` -The following pattern is not a warning: +The following patterns are not a warning: ```ts if (false) { // @ts-expect-error: Unreachable code error console.log('hello'); } +if (false) { + /* + @ts-expect-error: Unreachable code error + */ + console.log('hello'); +} ``` ### `minimumDescriptionLength` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md index 9f279ea7ba..bf59ffb846 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md @@ -28,7 +28,7 @@ type Options = { The rule accepts a single object as options, with the following keys: - `types` - An object whose keys are the types you want to ban, and the values are error messages. - - The type can either be a type name literal (`Foo`), a type name with generic parameter instantiation(s) (`Foo`), or the empty object literal (`{}`). + - The type can either be a type name literal (`Foo`), a type name with generic parameter instantiation(s) (`Foo`), the empty object literal (`{}`), or the empty tuple type (`[]`). - The values can be a string, which is the error message to be reported, `false` to specifically disable this type or it can be an object with the following properties: - `message: string` - the message to display when the type is matched. @@ -46,7 +46,7 @@ Example configuration: { "types": { // add a custom message to help explain why not to use it - "Foo": "Don't use Far because it is unsafe", + "Foo": "Don't use Foo because it is unsafe", // add a custom message, AND tell the plugin how to fix it "String": { @@ -74,6 +74,7 @@ The default options provide a set of "best practices", intended to provide safet - It accepts class declarations, which will fail when called, as they are called without the `new` keyword. - Avoid the `Object` and `{}` types, as they mean "any non-nullish value". - This is a point of confusion for many developers, who think it means "any object type". + - See [this comment for more information](https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492). - Avoid the `object` type, as it is currently hard to use due to not being able to assert that keys exist. - See [microsoft/TypeScript#21732](https://github.com/microsoft/TypeScript/issues/21732). diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md new file mode 100644 index 0000000000..bfb40d338b --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/comma-dangle.md @@ -0,0 +1,34 @@ +# Require or disallow trailing comma (`comma-dangle`) + +## Rule Details + +This rule extends the base [`eslint/comma-dangle`](https://eslint.org/docs/rules/comma-dangle) rule. +It adds support for TypeScript syntax. + +See the [ESLint documentation](https://eslint.org/docs/rules/comma-dangle) for more details on the `comma-dangle` rule. + +## Rule Changes + +```cjson +{ + // note you must disable the base rule as it can report incorrect errors + "comma-dangle": "off", + "@typescript-eslint/comma-dangle": ["error"] +} +``` + +In addition to the options supported by the `comma-dangle` rule in ESLint core, the rule adds the following options: + +## Options + +This rule has a string option and an object option. + +- Object option: + + - `"enums"` is for trailing comma in enum. (e.g. `enum Foo = {Bar,}`) + - `"generics"` is for trailing comma in generic. (e.g. `function foo() {}`) + - `"tuples"` is for trailing comma in tuple. (e.g. `type Foo = [string,]`) + +- [See the other options allowed](https://github.com/eslint/eslint/blob/master/docs/rules/comma-dangle.md#options) + +Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/comma-dangle.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-indexed-object-style.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-indexed-object-style.md new file mode 100644 index 0000000000..c98997c5e0 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-indexed-object-style.md @@ -0,0 +1,67 @@ +# Enforce or disallow the use of the record type (`consistent-indexed-object-style`) + +TypeScript supports defining object show keys can be flexible using an index signature. TypeScript also has a builtin type named `Record` to create an empty object defining only an index signature. For example, the following types are equal: + +```ts +interface Foo { + [key: string]: unknown; +} + +type Foo = { + [key: string]: unknown; +}; + +type Foo = Record; +``` + +## Options + +- `"record"`: Set to `"record"` to only allow the `Record` type. Set to `"index-signature"` to only allow index signatures. (Defaults to `"record"`) + +For example: + +```CJSON +{ + "@typescript-eslint/consistent-indexed-object-style": ["error", "index-signature"] +} +``` + +## Rule details + +This rule enforces a consistent way to define records. + +Examples of **incorrect** code with `record` option. + +```ts +interface Foo { + [key: string]: unknown; +} + +type Foo = { + [key: string]: unknown; +}; +``` + +Examples of **correct** code with `record` option. + +```ts +type Foo = Record; +``` + +Examples of **incorrect** code with `index-signature` option. + +```ts +type Foo = Record; +``` + +Examples of **correct** code with `index-signature` option. + +```ts +interface Foo { + [key: string]: unknown; +} + +type Foo = { + [key: string]: unknown; +}; +``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md index 43e67b755b..899647636c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-assertions.md @@ -74,13 +74,14 @@ function foo(): T { Examples of **correct** code for `{ assertionStyle: 'as', objectLiteralTypeAssertions: 'allow-as-parameter' }`. -```ts +```tsx const x: T = { ... }; const y = { ... } as any; const z = { ... } as unknown; foo({ ... } as T); new Clazz({ ... } as T); function foo() { throw { bar: 5 } as Foo } +const foo = ; ``` ## When Not To Use It diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md index 1688552d8f..52afd3f9a8 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md @@ -25,10 +25,10 @@ This rule accepts one string option: For example: -```CJSON +```jsonc { - // Use type for object definitions - "@typescript-eslint/consistent-type-definitions": ["error", "type"] + // Use type for object definitions + "@typescript-eslint/consistent-type-definitions": ["error", "type"] } ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md index 3487bf9b5e..a5808b4557 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-imports.md @@ -25,7 +25,7 @@ const defaultOptions: Options = { This option defines the expected import kind for type-only imports. Valid values for `prefer` are: -- `type-imports` will enforce that you always use `import type Foo from '...'`. It is default. +- `type-imports` will enforce that you always use `import type Foo from '...'` except referenced by metadata of decorators. It is default. - `no-type-imports` will enforce that you always use `import Foo from '...'`. Examples of **correct** code with `{prefer: 'type-imports'}`, and **incorrect** code with `{prefer: 'no-type-imports'}`. @@ -61,4 +61,6 @@ const x: import('Bar') = 1; ## When Not To Use It - If you are not using TypeScript 3.8 (or greater), then you will not be able to use this rule, as type-only imports are not allowed. +- Certain libraries use the non-inlined imports to infer information about the variables. For example, for dependency injection.
+ type-only imports cannot be used with these libraries. See [#2559](https://github.com/typescript-eslint/typescript-eslint/issues/2559#issuecomment-692780580) - If you specifically want to use both import kinds for stylistic reasons, you can disable this rule. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md index f827b003e5..094e2e4fc6 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/dot-notation.md @@ -3,11 +3,14 @@ ## Rule Details This rule extends the base [`eslint/dot-notation`](https://eslint.org/docs/rules/dot-notation) rule. -It adds support for optionally ignoring computed `private` member access. +It adds: + +- Support for optionally ignoring computed `private` and/or `protected` member access. +- Compatibility with TypeScript's `noPropertyAccessFromIndexSignature` option. ## How to use -```cjson +```jsonc { // note you must disable the base rule as it can report incorrect errors "dot-notation": "off", @@ -23,13 +26,19 @@ This rule adds the following options: ```ts interface Options extends BaseDotNotationOptions { allowPrivateClassPropertyAccess?: boolean; + allowProtectedClassPropertyAccess?: boolean; + allowIndexSignaturePropertyAccess?: boolean; } const defaultOptions: Options = { ...baseDotNotationDefaultOptions, allowPrivateClassPropertyAccess: false, + allowProtectedClassPropertyAccess: false, + allowIndexSignaturePropertyAccess: false, }; ``` +If the TypeScript compiler option `noPropertyAccessFromIndexSignature` is set to `true`, then this rule always allows the use of square bracket notation to access properties of types that have a `string` index signature, even if `allowIndexSignaturePropertyAccess` is `false`. + ### `allowPrivateClassPropertyAccess` Example of a correct code when `allowPrivateClassPropertyAccess` is set to `true` @@ -43,4 +52,32 @@ const x = new X(); x['priv_prop'] = 123; ``` +### `allowProtectedClassPropertyAccess` + +Example of a correct code when `allowProtectedClassPropertyAccess` is set to `true` + +```ts +class X { + protected protected_prop = 123; +} + +const x = new X(); +x['protected_prop'] = 123; +``` + +### `allowIndexSignaturePropertyAccess` + +Example of correct code when `allowIndexSignaturePropertyAccess` is set to `true` + +```ts +class X { + [key: string]: number; +} + +const x = new X(); +x['hello'] = 123; +``` + +If the TypeScript compiler option `noPropertyAccessFromIndexSignature` is set to `true`, then the above code is always allowed, even if `allowIndexSignaturePropertyAccess` is `false`. + Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/dot-notation.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md index 3cafe4224e..894a996175 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md @@ -69,6 +69,8 @@ type Options = { allowTypedFunctionExpressions?: boolean; // if true, functions immediately returning another function expression will not be checked allowHigherOrderFunctions?: boolean; + // if true, arrow functions immediately returning a `as const` value will not be checked + allowDirectConstAssertionInArrowFunctions?: boolean; // if true, concise arrow functions that start with the void keyword will not be checked allowConciseArrowFunctionExpressionsStartingWithVoid?: boolean; }; @@ -77,7 +79,8 @@ const defaults = { allowExpressions: false, allowTypedFunctionExpressions: true, allowHigherOrderFunctions: true, - allowConciseArrowFunctionExpressionsStartingWithVoid: true, + allowDirectConstAssertionInArrowFunctions: true, + allowConciseArrowFunctionExpressionsStartingWithVoid: false, }; ``` @@ -201,6 +204,22 @@ function fn() { } ``` +### `allowDirectConstAssertionInArrowFunctions` + +Examples of **incorrect** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: true }`: + +```ts +const func = (value: number) => ({ type: 'X', value } as any); +const func = (value: number) => ({ type: 'X', value } as Action); +``` + +Examples of **correct** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: true }`: + +```ts +const func = (value: number) => ({ foo: 'bar', value } as const); +const func = () => x as const; +``` + ### `allowConciseArrowFunctionExpressionsStartingWithVoid` Examples of **incorrect** code for this rule with `{ allowConciseArrowFunctionExpressionsStartingWithVoid: true }`: diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md index 9b148d95c8..cfbb3154f9 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md @@ -258,6 +258,10 @@ class Animal { class Animal { constructor(public animalName: string) {} } + +class Animal { + constructor(animalName: string) {} +} ``` e.g. `[ { accessibility: 'off', overrides: { parameterProperties: 'no-public' } } ]` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md index f33a8d5b79..a6945749f2 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-module-boundary-types.md @@ -130,33 +130,29 @@ If you are working on a codebase within which you lint non-TypeScript code (i.e. ### `allowArgumentsExplicitlyTypedAsAny` -Examples of **incorrect** code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: true }`: +Examples of **incorrect** code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: false }`: ```ts -export const func = (value: any): void => ({ type: 'X', value }); -export function foo(value: any): void {} +export const func = (value: any): number => value + 1; ``` Examples of **correct** code for this rule with `{ allowArgumentsExplicitlyTypedAsAny: true }`: ```ts -export const func = (value: number): void => ({ type: 'X', value }); -export function foo(value: number): void {} +export const func = (value: number): number => value + 1; ``` ### `allowDirectConstAssertionInArrowFunctions` -Examples of **incorrect** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: true }`: +Examples of **incorrect** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: false }`: ```ts export const func = (value: number) => ({ type: 'X', value }); -export const foo = () => { - return { +export const foo = () => + ({ bar: true, - } as const; -}; + } as const); export const bar = () => 1; -export const baz = arg => arg as const; ``` Examples of **correct** code for this rule with `{ allowDirectConstAssertionInArrowFunctions: true }`: @@ -168,7 +164,6 @@ export const foo = () => bar: true, } as const); export const bar = () => 1 as const; -export const baz = (arg: string) => arg as const; ``` ### `allowedNames` @@ -188,24 +183,24 @@ You may pass function/method names you would like this rule to ignore, like so: ### `allowHigherOrderFunctions` -Examples of **incorrect** code for this rule with `{ allowHigherOrderFunctions: true }`: +Examples of **incorrect** code for this rule with `{ allowHigherOrderFunctions: false }`: ```ts -export var arrowFn = () => () => {}; +export const arrowFn = () => (): void => {}; export function fn() { - return function () {}; + return function (): void {}; } -export function foo(outer) { - return function (inner): void {}; +export function foo(outer: string) { + return function (inner: string): void {}; } ``` Examples of **correct** code for this rule with `{ allowHigherOrderFunctions: true }`: ```ts -export var arrowFn = () => (): void => {}; +export const arrowFn = () => (): void => {}; export function fn() { return function (): void {}; @@ -218,7 +213,7 @@ export function foo(outer: string) { ### `allowTypedFunctionExpressions` -Examples of **incorrect** code for this rule with `{ allowTypedFunctionExpressions: true }`: +Examples of **incorrect** code for this rule with `{ allowTypedFunctionExpressions: false }`: ```ts export let arrowFn = () => 'test'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md index 8888e2efef..f83c5bd9c3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/init-declarations.md @@ -7,7 +7,7 @@ It adds support for TypeScript's `declare` variables. ## How to use -```cjson +```jsonc { // note you must disable the base rule as it can report incorrect errors "init-declarations": "off", diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md index ca2926d6c8..3178542d2d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/keyword-spacing.md @@ -7,7 +7,7 @@ This version adds support for generic type parameters on function calls. ## How to use -```cjson +```jsonc { // note you must disable the base rule as it can report incorrect errors "keyword-spacing": "off", diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md index 06cdf55421..e2692bb18a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/lines-between-class-members.md @@ -11,7 +11,7 @@ See the [ESLint documentation](https://eslint.org/docs/rules/lines-between-class ## Rule Changes -```cjson +```jsonc { // note you must disable the base rule as it can report incorrect errors "lines-between-class-members": "off", diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-delimiter-style.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-delimiter-style.md index ed1b095775..c6f7ca4700 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-delimiter-style.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-delimiter-style.md @@ -72,6 +72,7 @@ type Config = BaseConfig & { interface?: BaseConfig; typeLiteral?: BaseConfig; }; + multilineDetection?: 'brackets' | 'last-member'; }; ``` @@ -86,7 +87,8 @@ Default config: "singleline": { "delimiter": "semi", "requireLast": false - } + }, + "multilineDetection": "brackets" } ``` @@ -94,6 +96,11 @@ Default config: `singleline` config only applies to single line `interface`/`type` definitions. The two configs are entirely separate, and do not effect one another. +`multilineDetection` determines what counts as multiline + +- `"brackets"` (default) any newlines in the type or interface make it multiline. +- `"last-member"` if the last member of the interface is on the same line as the last bracket, it is counted as a single line. + ### `delimiter` Accepts three values (or two for `singleline`): diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md index d57bc1c69d..4b28cffcea 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/naming-convention.md @@ -33,8 +33,20 @@ type Options = { regex: string; match: boolean; }; - leadingUnderscore?: 'forbid' | 'allow' | 'require'; - trailingUnderscore?: 'forbid' | 'allow' | 'require'; + leadingUnderscore?: + | 'forbid' + | 'require' + | 'requireDouble' + | 'allow' + | 'allowDouble' + | 'allowSingleOrDouble'; + trailingUnderscore?: + | 'forbid' + | 'require' + | 'requireDouble' + | 'allow' + | 'allowDouble' + | 'allowSingleOrDouble'; prefix?: string[]; suffix?: string[]; @@ -77,29 +89,7 @@ const defaultOptions: Options = [ ### Format Options Every single selector can have the same set of format options. -When the format of an identifier is checked, it is checked in the following order: - -1. validate leading underscore -1. validate trailing underscore -1. validate prefix -1. validate suffix -1. validate custom -1. validate format - -For steps 1-4, if the identifier matches the option, the matching part will be removed. -For example, if you provide the following formatting option: `{ leadingUnderscore: 'allow', prefix: ['I'], format: ['StrictPascalCase'] }`, for the identifier `_IMyInterface`, then the following checks will occur: - -1. `name = _IMyInterface` -1. validate leading underscore - pass - - Trim leading underscore - `name = IMyInterface` -1. validate trailing underscore - no check -1. validate prefix - pass - - Trim prefix - `name = MyInterface` -1. validate suffix - no check -1. validate custom - no check -1. validate format - pass - -One final note is that if the name were to become empty via this trimming process, it is considered to match all `format`s. An example of where this might be useful is for generic type parameters, where you want all names to be prefixed with `T`, but also want to allow for the single character `T` name. +For information about how each selector is applied, see ["How does the rule evaluate a name's format?"](#how-does-the-rule-evaluate-a-names-format). #### `format` @@ -120,7 +110,7 @@ This can be useful if you want to enforce no particular format for a specific se The `custom` option defines a custom regex that the identifier must (or must not) match. This option allows you to have a bit more finer-grained control over identifiers, letting you ban (or force) certain patterns and substrings. Accepts an object with the following properties: -- `regex` - accepts a regular expression (anything accepted into `new RegExp(regex)`). +- `regex` - a string that is then passed into RegExp to create a new regular expression: `new RegExp(regex)` - `match` - true if the identifier _must_ match the `regex`, false if the identifier _must not_ match the `regex`. ### `filter` @@ -131,7 +121,7 @@ You can use this to include or exclude specific identifiers from specific config Accepts an object with the following properties: -- `regex` - accepts a regular expression (anything accepted into `new RegExp(regex)`). +- `regex` - a string that is then passed into RegExp to create a new regular expression: `new RegExp(regex)` - `match` - true if the identifier _must_ match the `regex`, false if the identifier _must not_ match the `regex`. Alternatively, `filter` accepts a regular expression (anything accepted into `new RegExp(filter)`). In this case, it's treated as if you had passed an object with the regex and `match: true`. @@ -141,8 +131,11 @@ Alternatively, `filter` accepts a regular expression (anything accepted into `ne The `leadingUnderscore` / `trailingUnderscore` options control whether leading/trailing underscores are considered valid. Accepts one of the following values: - `forbid` - a leading/trailing underscore is not allowed at all. -- `allow` - existence of a leading/trailing underscore is not explicitly enforced. -- `require` - a leading/trailing underscore must be included. +- `require` - a single leading/trailing underscore must be included. +- `requireDouble` - two leading/trailing underscores must be included. +- `allow` - existence of a single leading/trailing underscore is not explicitly enforced. +- `allowDouble` - existence of a double leading/trailing underscore is not explicitly enforced. +- `allowSingleOrDouble` - existence of a single or a double leading/trailing underscore is not explicitly enforced. #### `prefix` / `suffix` @@ -154,36 +147,35 @@ If these are provided, the identifier must start with one of the provided values ### Selector Options -- `selector` (see "Allowed Selectors, Modifiers and Types" below). +- `selector` allows you to specify what types of identifiers to target. - Accepts one or array of selectors to define an option block that applies to one or multiple selectors. - For example, if you provide `{ selector: ['variable', 'function'] }`, then it will apply the same option to variable and function nodes. + - See [Allowed Selectors, Modifiers and Types](#allowed-selectors-modifiers-and-types) below for the complete list of allowed selectors. - `modifiers` allows you to specify which modifiers to granularly apply to, such as the accessibility (`private`/`public`/`protected`), or if the thing is `static`, etc. - The name must match _all_ of the modifiers. - For example, if you provide `{ modifiers: ['private', 'static', 'readonly'] }`, then it will only match something that is `private static readonly`, and something that is just `private` will not match. + - The following `modifiers` are allowed: + - `const` - matches a variable declared as being `const` (`const x = 1`). + - `destructured` - matches a variable declared via an object destructuring pattern (`const {x, z = 2}`). + - Note that this does not match renamed destructured properties (`const {x: y, a: b = 2}`). + - `global` - matches a variable/function declared in the top-level scope. + - `exported` - matches anything that is exported from the module. + - `unused` - matches anything that is not used. + - `requiresQuotes` - matches any name that requires quotes as it is not a valid identifier (i.e. has a space, a dash, etc in it). + - `public` - matches any member that is either explicitly declared as `public`, or has no visibility modifier (i.e. implicitly public). + - `readonly`, `static`, `abstract`, `protected`, `private` - matches any member explicitly declared with the given modifier. - `types` allows you to specify which types to match. This option supports simple, primitive types only (`boolean`, `string`, `number`, `array`, `function`). - The name must match _one_ of the types. - **_NOTE - Using this option will require that you lint with type information._** - For example, this lets you do things like enforce that `boolean` variables are prefixed with a verb. - - `boolean` matches any type assignable to `boolean | null | undefined` - - `string` matches any type assignable to `string | null | undefined` - - `number` matches any type assignable to `number | null | undefined` - - `array` matches any type assignable to `Array | null | undefined` - - `function` matches any type assignable to `Function | null | undefined` - -The ordering of selectors does not matter. The implementation will automatically sort the selectors to ensure they match from most-specific to least specific. It will keep checking selectors in that order until it finds one that matches the name. - -For example, if you provide the following config: - -```ts -[ - /* 1 */ { selector: 'default', format: ['camelCase'] }, - /* 2 */ { selector: 'variable', format: ['snake_case'] }, - /* 3 */ { selector: 'variable', types: ['boolean'], format: ['UPPER_CASE'] }, - /* 4 */ { selector: 'variableLike', format: ['PascalCase'] }, -]; -``` + - The following `types` are allowed: + - `boolean` matches any type assignable to `boolean | null | undefined` + - `string` matches any type assignable to `string | null | undefined` + - `number` matches any type assignable to `number | null | undefined` + - `array` matches any type assignable to `Array | null | undefined` + - `function` matches any type assignable to `Function | null | undefined` -Then for the code `const x = 1`, the rule will validate the selectors in the following order: `3`, `2`, `4`, `1`. +The ordering of selectors does not matter. The implementation will automatically sort the selectors to ensure they match from most-specific to least specific. It will keep checking selectors in that order until it finds one that matches the name. See ["How does the rule automatically order selectors?"](#how-does-the-rule-automatically-order-selectors) #### Allowed Selectors, Modifiers and Types @@ -194,43 +186,55 @@ There are two types of selectors, individual selectors, and grouped selectors. Individual Selectors match specific, well-defined sets. There is no overlap between each of the individual selectors. - `variable` - matches any `var` / `let` / `const` variable name. - - Allowed `modifiers`: `const`. + - Allowed `modifiers`: `const`, `destructured`, `global`, `exported`, `unused`. - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. - `function` - matches any named function declaration or named function expression. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `global`, `exported`, `unused`. - Allowed `types`: none. - `parameter` - matches any function parameter. Does not match parameter properties. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `destructured`, `unused`. - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. -- `property` - matches any object, class, or object type property. Does not match properties that have direct function expression or arrow function expression values. - - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`. +- `classProperty` - matches any class property. Does not match properties that have direct function expression or arrow function expression values. + - Allowed `modifiers`: `abstract`, `private`, `protected`, `public`, `readonly`, `requiresQuotes`, `static`. + - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. +- `objectLiteralProperty` - matches any object literal property. Does not match properties that have direct function expression or arrow function expression values. + - Allowed `modifiers`: `public`, `requiresQuotes`. + - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. +- `typeProperty` - matches any object type property. Does not match properties that have direct function expression or arrow function expression values. + - Allowed `modifiers`: `public`, `readonly`, `requiresQuotes`. - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. - `parameterProperty` - matches any parameter property. - Allowed `modifiers`: `private`, `protected`, `public`, `readonly`. - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. -- `method` - matches any object, class, or object type method. Also matches properties that have direct function expression or arrow function expression values. Does not match accessors. - - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`. +- `classMethod` - matches any class method. Also matches properties that have direct function expression or arrow function expression values. Does not match accessors. + - Allowed `modifiers`: `abstract`, `private`, `protected`, `public`, `requiresQuotes`, `static`. + - Allowed `types`: none. +- `objectLiteralMethod` - matches any object literal method. Also matches properties that have direct function expression or arrow function expression values. Does not match accessors. + - Allowed `modifiers`: `public`, `requiresQuotes`. + - Allowed `types`: none. +- `typeMethod` - matches any object type method. Also matches properties that have direct function expression or arrow function expression values. Does not match accessors. + - Allowed `modifiers`: `public`, `requiresQuotes`. - Allowed `types`: none. - `accessor` - matches any accessor. - - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`. + - Allowed `modifiers`: `abstract`, `private`, `protected`, `public`, `requiresQuotes`, `static`. - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. - `enumMember` - matches any enum member. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `requiresQuotes`. - Allowed `types`: none. - `class` - matches any class declaration. - - Allowed `modifiers`: `abstract`. + - Allowed `modifiers`: `abstract`, `exported`, `unused`. - Allowed `types`: none. - `interface` - matches any interface declaration. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `exported`, `unused`. - Allowed `types`: none. - `typeAlias` - matches any type alias declaration. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `exported`, `unused`. - Allowed `types`: none. - `enum` - matches any enum declaration. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `exported`, `unused`. - Allowed `types`: none. - `typeParameter` - matches any generic type parameter declaration. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `unused`. - Allowed `types`: none. ##### Group Selectors @@ -238,17 +242,197 @@ Individual Selectors match specific, well-defined sets. There is no overlap betw Group Selectors are provided for convenience, and essentially bundle up sets of individual selectors. - `default` - matches everything. - - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`. + - Allowed `modifiers`: all modifiers. - Allowed `types`: none. - `variableLike` - matches the same as `variable`, `function` and `parameter`. - - Allowed `modifiers`: none. + - Allowed `modifiers`: `unused`. - Allowed `types`: none. - `memberLike` - matches the same as `property`, `parameterProperty`, `method`, `accessor`, `enumMember`. - - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`. + - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`, `requiresQuotes`. - Allowed `types`: none. - `typeLike` - matches the same as `class`, `interface`, `typeAlias`, `enum`, `typeParameter`. - - Allowed `modifiers`: `abstract`. + - Allowed `modifiers`: `abstract`, `unused`. - Allowed `types`: none. +- `property` - matches the same as `classProperty`, `objectLiteralProperty`, `typeProperty`. + - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`, `requiresQuotes`. + - Allowed `types`: `boolean`, `string`, `number`, `function`, `array`. +- `method` - matches the same as `classMethod`, `objectLiteralMethod`, `typeMethod`. + - Allowed `modifiers`: `private`, `protected`, `public`, `static`, `readonly`, `abstract`, `requiresQuotes`. + - Allowed `types`: none. + +## FAQ + +This is a big rule, and there's a lot of docs. Here are a few clarifications that people often ask about or figure out via trial-and-error. + +### How does the rule evaluate a selector? + +Each selector is checked in the following way: + +1. check the `selector` + 1. if `selector` is one individual selector → the name's type must be of that type. + 1. if `selector` is a group selector → the name's type must be one of the grouped types. + 1. if `selector` is an array of selectors → apply the above for each selector in the array. +1. check the `filter` + 1. if `filter` is omitted → skip this step. + 1. if the name matches the `filter` → continue evaluating this selector. + 1. if the name does not match the `filter` → skip this selector and continue to the next selector. +1. check the `types` + 1. if `types` is omitted → skip this step. + 1. if the name has a type in `types` → continue evaluating this selector. + 1. if the name does not have a type in `types` → skip this selector and continue to the next selector. + +A name is considered to pass the config if it: + +1. Matches one selector and passes all of that selector's format checks. +2. Matches no selectors. + +A name is considered to fail the config if it matches one selector and fails one that selector's format checks. + +### How does the rule automatically order selectors? + +Each identifier should match exactly one selector. It may match multiple group selectors - but only ever one selector. +With that in mind - the base sort order works out to be: + +1. Individual Selectors +2. Grouped Selectors +3. Default Selector + +Within each of these categories, some further sorting occurs based on what selector options are supplied: + +1. `filter` is given the highest priority above all else. +2. `types` +3. `modifiers` +4. everything else + +For example, if you provide the following config: + +```ts +[ + /* 1 */ { selector: 'default', format: ['camelCase'] }, + /* 2 */ { selector: 'variable', format: ['snake_case'] }, + /* 3 */ { selector: 'variable', types: ['boolean'], format: ['UPPER_CASE'] }, + /* 4 */ { selector: 'variableLike', format: ['PascalCase'] }, +]; +``` + +Then for the code `const x = 1`, the rule will validate the selectors in the following order: `3`, `2`, `4`, `1`. +To clearly spell it out: + +- (3) is tested first because it has `types` and is an individual selector. +- (2) is tested next because it is an individual selector. +- (4) is tested next as it is a grouped selector. +- (1) is tested last as it is the base default selector. + +Its worth noting that whilst this order is applied, all selectors may not run on a name. +This is explained in ["How does the rule evaluate a name's format?"](#how-does-the-rule-evaluate-a-names-format) + +### How does the rule evaluate a name's format? + +When the format of an identifier is checked, it is checked in the following order: + +1. validate leading underscore +1. validate trailing underscore +1. validate prefix +1. validate suffix +1. validate custom +1. validate format + +For steps 1-4, if the identifier matches the option, the matching part will be removed. +This is done so that you can apply formats like PascalCase without worrying about prefixes or underscores causing it to not match. + +One final note is that if the name were to become empty via this trimming process, it is considered to match all `format`s. An example of where this might be useful is for generic type parameters, where you want all names to be prefixed with `T`, but also want to allow for the single character `T` name. + +Here are some examples to help illustrate + +Name: `_IMyInterface` +Selector: + +```json +{ + "leadingUnderscore": "require", + "prefix": ["I"], + "format": ["UPPER_CASE", "StrictPascalCase"] +} +``` + +1. `name = _IMyInterface` +1. validate leading underscore + 1. config is provided + 1. check name → pass + 1. Trim underscore → `name = IMyInterface` +1. validate trailing underscore + 1. config is not provided → skip +1. validate prefix + 1. config is provided + 1. check name → pass + 1. Trim prefix → `name = MyInterface` +1. validate suffix + 1. config is not provided → skip +1. validate custom + 1. config is not provided → skip +1. validate format + 1. for each format... + 1. `format = 'UPPER_CASE'` + 1. check format → fail. + - Important to note that if you supply multiple formats - the name only needs to match _one_ of them! + 1. `format = 'StrictPascalCase'` + 1. check format → success. +1. **_success_** + +Name: `IMyInterface` +Selector: + +```json +{ + "format": ["StrictPascalCase"], + "trailingUnderscore": "allow", + "custom": { + "regex": "^I[A-Z]", + "match": false + } +} +``` + +1. `name = IMyInterface` +1. validate leading underscore + 1. config is not provided → skip +1. validate trailing underscore + 1. config is provided + 1. check name → pass + 1. Trim underscore → `name = IMyInterface` +1. validate prefix + 1. config is not provided → skip +1. validate suffix + 1. config is not provided → skip +1. validate custom + 1. config is provided + 1. `regex = new RegExp("^I[A-Z]")` + 1. `regex.test(name) === custom.match` + 1. **_fail_** → report and exit + +### What happens if I provide a `modifiers` to a Group Selector? + +Some group selectors accept `modifiers`. For the most part these will work exactly the same as with individual selectors. +There is one exception to this in that a modifier might not apply to all individual selectors covered by a group selector. + +For example - `memberLike` includes the `enumMember` selector, and it allows the `protected` modifier. +An `enumMember` can never ever be `protected`, which means that the following config will never match any `enumMember`: + +```json +{ + "selector": "memberLike", + "modifiers": ["protected"] +} +``` + +To help with matching, members that cannot specify an accessibility will always have the `public` modifier. This means that the following config will always match any `enumMember`: + +```json +{ + "selector": "memberLike", + "modifiers": ["public"] +} +``` ## Examples @@ -380,12 +564,36 @@ This allows you to lint multiple type with same pattern. } ``` -### Ignore properties that require quotes +### Ignore properties that **_require_** quotes Sometimes you have to use a quoted name that breaks the convention (for example, HTTP headers). -If this is a common thing in your codebase, then you can use the `filter` option in one of two ways: +If this is a common thing in your codebase, then you have a few options. -You can use the `filter` option to ignore specific names only: +If you simply want to allow all property names that require quotes, you can use the `requiresQuotes` modifier to match any property name that _requires_ quoting, and use `format: null` to ignore the name. + +```jsonc +{ + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": [ + "classProperty", + "objectLiteralProperty", + "typeProperty", + "classMethod", + "objectLiteralMethod", + "typeMethod", + "accessor", + "enumMember" + ], + "format": null, + "modifiers": ["requiresQuotes"] + } + ] +} +``` + +If you have a small and known list of exceptions, you can use the `filter` option to ignore these specific names only: ```jsonc { @@ -404,7 +612,7 @@ You can use the `filter` option to ignore specific names only: } ``` -You can use the `filter` option to ignore names that require quoting: +You can use the `filter` option to ignore names with specific characters: ```jsonc { @@ -423,6 +631,29 @@ You can use the `filter` option to ignore names that require quoting: } ``` +Note that there is no way to ignore any name that is quoted - only names that are required to be quoted. +This is intentional - adding quotes around a name is not an escape hatch for proper naming. +If you want an escape hatch for a specific name - you should can use an [`eslint-disable` comment](https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments). + +### Ignore destructured names + +Sometimes you might want to allow destructured properties to retain their original name, even if it breaks your naming convention. + +You can use the `destructured` modifier to match these names, and explicitly set `format: null` to apply no formatting: + +```jsonc +{ + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "variable", + "modifiers": ["destructured"], + "format": null + } + ] +} +``` + ### Enforce the codebase follows ESLint's `camelcase` conventions ```json diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-void-expression.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-void-expression.md new file mode 100644 index 0000000000..8a00255170 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-confusing-void-expression.md @@ -0,0 +1,149 @@ +# Requires expressions of type void to appear in statement position (`no-confusing-void-expression`) + +Returning the results of an expression whose type is void can be misleading. +Attempting to do so is likely a symptom of expecting a different return type from a function. +Even if used correctly, it can be misleading for other developers, +who don't know what a particular function does and if its result matters. + +This rule provides automatic fixes for most common cases. + +## Examples + +Examples of **incorrect** code for this rule: + +```ts +// somebody forgot that `alert` doesn't return anything +const response = alert('Are you sure?'); +console.log(alert('Are you sure?')); + +// it's not obvious whether the chained promise will contain the response (fixable) +promise.then(value => window.postMessage(value)); + +// it looks like we are returning the result of `console.error` (fixable) +function doSomething() { + if (!somethingToDo) { + return console.error('Nothing to do!'); + } + + console.log('Doing a thing...'); +} +``` + +Examples of **correct** code for this rule: + +```ts +// just a regular void function in a statement position +alert('Hello, world!'); + +// this function returns a boolean value so it's ok +const response = confirm('Are you sure?'); +console.log(confirm('Are you sure?')); + +// now it's obvious that `postMessage` doesn't return any response +promise.then(value => { + window.postMessage(value); +}); + +// now it's explicit that we want to log the error and return early +function doSomething() { + if (!somethingToDo) { + console.error('Nothing to do!'); + return; + } + + console.log('Doing a thing...'); +} + +// using logical expressions for their side effects is fine +cond && console.log('true'); +cond || console.error('false'); +cond ? console.log('true') : console.error('false'); +``` + +## Options + +An object option can be specified. Each boolean flag makes the rule less strict. + +```ts +type Options = { + ignoreArrowShorthand?: boolean; + ignoreVoidOperator?: boolean; +}; + +const defaults: Options = { + ignoreArrowShorthand: false, + ignoreVoidOperator: false, +}; +``` + +### `ignoreArrowShorthand` + +`false` by default. + +```json +{ + "@typescript-eslint/no-confusing-void-expression": [ + "error", + { "ignoreArrowShorthand": true } + ] +} +``` + +It might be undesirable to wrap every arrow function shorthand expression with braces. +Especially when using Prettier formatter, which spreads such code across 3 lines instead of 1. + +Examples of additional **correct** code with this option enabled: + +```ts +promise.then(value => window.postMessage(value)); +``` + +### `ignoreVoidOperator` + +`false` by default. + +```json +{ + "@typescript-eslint/no-confusing-void-expression": [ + "error", + { "ignoreVoidOperator": true } + ] +} +``` + +It might be preferable to only use some distinct syntax +to explicitly mark the confusing but valid usage of void expressions. +This option allows void expressions which are explicitly wrapped in the `void` operator. +This can help avoid confusion among other developers as long as they are made aware of this code style. + +This option also changes the automatic fixes for common cases to use the `void` operator. +It also enables a suggestion fix to wrap the void expression with `void` operator for every problem reported. + +Examples of additional **correct** code with this option enabled: + +```ts +// now it's obvious that we don't expect any response +promise.then(value => void window.postMessage(value)); + +// now it's explicit that we don't want to return anything +function doSomething() { + if (!somethingToDo) { + return void console.error('Nothing to do!'); + } + + console.log('Doing a thing...'); +} + +// we are sure that we want to always log `undefined` +console.log(void alert('Hello, world!')); +``` + +## When Not To Use It + +The return type of a function can be inspected by going to its definition or hovering over it in an IDE. +If you don't care about being explicit about the void type in actual code then don't use this rule. +Also, if you prefer concise coding style then also don't use it. + +## Related to + +- TSLint: ['no-void-expression'](https://palantir.github.io/tslint/rules/no-void-expression/) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-duplicate-imports.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-duplicate-imports.md new file mode 100644 index 0000000000..140a8a1ece --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-duplicate-imports.md @@ -0,0 +1,22 @@ +# Disallow duplicate imports (`no-duplicate-imports`) + +## Rule Details + +This rule extends the base [`eslint/no-duplicate-imports`](https://eslint.org/docs/rules/no-duplicate-imports) rule. +This version adds support for type-only import and export. + +## How to use + +```jsonc +{ + // note you must disable the base rule as it can report incorrect errors + "no-duplicate-imports": "off", + "@typescript-eslint/no-duplicate-imports": ["error"] +} +``` + +## Options + +See [`eslint/no-duplicate-imports` options](https://eslint.org/docs/rules/no-duplicate-imports#options). + +Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-duplicate-imports.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md index 071584e990..356700d834 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md @@ -75,4 +75,16 @@ class Foo { } ``` +## How to use + +```jsonc +{ + // note you must disable the base rule as it can report incorrect errors + "no-empty-function": "off", + "@typescript-eslint/no-empty-function": ["error"] +} +``` + +--- + Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-empty-function.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md index bda8c26b78..86923bfad7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md @@ -77,7 +77,7 @@ void returnsPromise(); void Promise.reject('value'); ``` -With this option set to `true`, and if you are using `no-void`, you should turn on the [`allowAsAStatement`](https://eslint.org/docs/rules/no-void#allowasstatement) option. +With this option set to `true`, and if you are using `no-void`, you should turn on the [`allowAsStatement`](https://eslint.org/docs/rules/no-void#allowasstatement) option. ### `ignoreIIFE` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md index 3753adf26d..a03ce72793 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-implied-eval.md @@ -88,6 +88,16 @@ class Foo { setTimeout(Foo.fn, 100); ``` +## How to use + +```jsonc +{ + // note you must disable the base rule as it can report incorrect errors + "no-implied-eval": "off", + "@typescript-eslint/no-implied-eval": ["error"] +} +``` + ## When Not To Use It If you want to allow `new Function()` or `setTimeout()`, `setInterval()`, `setImmediate()` and `execScript()` with string arguments, then you can safely disable this rule. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md index ac9dc30122..a7f907380a 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-this.md @@ -1,4 +1,4 @@ -# disallow `this` keywords outside of classes or class-like objects (`no-invalid-this`) +# Disallow `this` keywords outside of classes or class-like objects (`no-invalid-this`) ## Rule Details @@ -7,7 +7,7 @@ It adds support for TypeScript's `this` parameters. ## How to use -```cjson +```jsonc { // note you must disable the base rule as it can report incorrect errors "no-invalid-this": "off", diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md index f1607478a0..567d9c0bb3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-invalid-void-type.md @@ -54,10 +54,12 @@ type stillVoid = void | never; ```ts interface Options { allowInGenericTypeArguments?: boolean | string[]; + allowAsThisParameter?: boolean; } const defaultOptions: Options = { allowInGenericTypeArguments: true, + allowAsThisParameter: false, }; ``` @@ -97,6 +99,23 @@ type AllowedVoid = Ex.Mx.Tx; type AllowedVoidUnion = void | Ex.Mx.Tx; ``` +#### `allowAsThisParameter` + +This option allows specifying a `this` parameter of a function to be `void` when set to `true`. +This pattern can be useful to explicitly label function types that do not use a `this` argument. [See the TypeScript docs for more information](https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters-in-callbacks). + +This option is `false` by default. + +The following patterns are considered warnings with `{ allowAsThisParameter: false }` but valid with `{ allowAsThisParameter: true }`: + +```ts +function doThing(this: void) {} +class Example { + static helper(this: void) {} + callback(this: void) {} +} +``` + ## When Not To Use It If you don't care about if `void` is used with other types, diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md index d48d38c20f..d4e66d6c7d 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-loop-func.md @@ -7,7 +7,7 @@ It adds support for TypeScript types. ## How to use -```cjson +```jsonc { // note you must disable the base rule as it can report incorrect errors "no-loop-func": "off", diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md index f41204c132..8149ad6ddd 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md @@ -53,8 +53,8 @@ Examples of **incorrect** code for the `{ "ignoreEnums": false }` option: ```ts /*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnums": false }]*/ -enum foo = { - SECOND = 1000, +enum foo { + SECOND = 1000, } ``` @@ -63,8 +63,8 @@ Examples of **correct** code for the `{ "ignoreEnums": true }` option: ```ts /*eslint @typescript-eslint/no-magic-numbers: ["error", { "ignoreEnums": true }]*/ -enum foo = { - SECOND = 1000, +enum foo { + SECOND = 1000, } ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md index b155c2aeb3..da83ada2bb 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md @@ -18,7 +18,7 @@ or more of the following you may pass an object with the options set as follows: - `allowDefinitionFiles` set to `true` will allow you to `declare` and use custom TypeScript modules and namespaces inside definition files (Default: `true`). -Examples of **incorrect** code for the default `{ "allowDeclarations": false, "allowDefinitionFiles": false }` options: +Examples of **incorrect** code for the default `{ "allowDeclarations": false, "allowDefinitionFiles": true }` options: ```ts module foo {} @@ -26,14 +26,14 @@ namespace foo {} declare module foo {} declare namespace foo {} - -// anything inside a d.ts file ``` -Examples of **correct** code for the default `{ "allowDeclarations": false, "allowDefinitionFiles": false }` options: +Examples of **correct** code for the default `{ "allowDeclarations": false, "allowDefinitionFiles": true }` options: ```ts declare module 'foo' {} + +// anything inside a d.ts file ``` ### `allowDeclarations` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md index d9e7042447..4b5164d6f0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-redeclare.md @@ -21,12 +21,12 @@ See [`eslint/no-redeclare` options](https://eslint.org/docs/rules/no-redeclare#o This rule adds the following options: ```ts -interface Options extends BaseNoShadowOptions { +interface Options extends BaseNoRedeclareOptions { ignoreDeclarationMerge?: boolean; } const defaultOptions: Options = { - ...baseNoShadowDefaultOptions, + ...baseNoRedeclareDefaultOptions, ignoreDeclarationMerge: true, }; ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md index ed241b8078..bcb40d4fb5 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-shadow.md @@ -3,7 +3,7 @@ ## Rule Details This rule extends the base [`eslint/no-shadow`](https://eslint.org/docs/rules/no-shadow) rule. -It adds support for TypeScript's `this` parameters, and adds options for TypeScript features. +It adds support for TypeScript's `this` parameters and global augmentation, and adds options for TypeScript features. ## How to use diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md index 324929e52c..ffb0db1e21 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md @@ -44,7 +44,7 @@ You can pass an object option: "@typescript-eslint/no-this-alias": [ "error", { - "allowDestructuring": true, // Allow `const { props, state } = this`; false by default + "allowDestructuring": false, // Disallow `const { props, state } = this`; true by default "allowedNames": ["self"] // Allow `const self = this`; `[]` by default } ] diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md index 3b7ee9c2d9..0b89f10e92 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-throw-literal.md @@ -79,6 +79,16 @@ class CustomError extends Error { throw new CustomError(); ``` +## How to use + +```jsonc +{ + // note you must disable the base rule as it can report incorrect errors + "no-throw-literal": "off", + "@typescript-eslint/no-throw-literal": ["error"] +} +``` + --- Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/no-throw-literal.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md index d600bb7930..2532504285 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-boolean-literal-compare.md @@ -8,6 +8,10 @@ This rule ensures that you do not include unnecessary comparisons with boolean l A comparison is considered unnecessary if it checks a boolean literal against any variable with just the `boolean` type. A comparison is **_not_** considered unnecessary if the type is a union of booleans (`string | boolean`, `someObject | boolean`). +**Warning**: Do not use this rule when `strictNullChecks` is disabled. +ESLint is not able to distinguish between `false` and `undefined` or `null` values. +This can cause unintended code changes when using autofix. + **Note**: Throughout this page, only strict equality (`===` and `!==`) are used in the examples. However, the implementation of the rule does not distinguish between strict and loose equality. Any example below that uses @@ -120,10 +124,10 @@ if (!(someNullCondition ?? true)) { | Comparison | Fixer Output | Notes | | :----------------------------: | ------------------------------- | ----------------------------------------------------------------------------------- | -| `booleanVar === true` | `booleanLiteral` | | -| `booleanVar !== true` | `!booleanLiteral` | | -| `booleanVar === false` | `!booleanLiteral` | | -| `booleanVar !== false` | `booleanLiteral` | | +| `booleanVar === true` | `booleanVar` | | +| `booleanVar !== true` | `!booleanVar` | | +| `booleanVar === false` | `!booleanVar` | | +| `booleanVar !== false` | `booleanVar` | | | `nullableBooleanVar === true` | `nullableBooleanVar` | Only checked/fixed if the `allowComparingNullableBooleansToTrue` option is `false` | | `nullableBooleanVar !== true` | `!nullableBooleanVar` | Only checked/fixed if the `allowComparingNullableBooleansToTrue` option is `false` | | `nullableBooleanVar === false` | `nullableBooleanVar ?? true` | Only checked/fixed if the `allowComparingNullableBooleansToFalse` option is `false` | diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-constraint.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-constraint.md new file mode 100644 index 0000000000..8656ace566 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-constraint.md @@ -0,0 +1,55 @@ +# Disallows unnecessary constraints on generic types (`no-unnecessary-type-constraint`) + +## Rule Details + +Type parameters (``) may be "constrained" with an `extends` keyword ([docs](https://www.typescriptlang.org/docs/handbook/generics.html#generic-constraints)). +When not provided, type parameters happen to default to: + +- As of TypeScript 3.9: `unknown` ([docs](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-9.html#type-parameters-that-extend-any-no-longer-act-as-any)) +- Before that, as of 3.5: `any` ([docs](https://devblogs.microsoft.com/typescript/announcing-typescript-3-5/#breaking-changes)) + +It is therefore redundant to `extend` from these types in later versions of TypeScript. + +Examples of **incorrect** code for this rule: + +```ts +interface FooAny {} +interface FooUnknown {} + +type BarAny = {}; +type BarUnknown = {}; + +class BazAny { + quxUnknown() {} +} + +class BazUnknown { + quxUnknown() {} +} + +const QuuxAny = () => {}; +const QuuxUnknown = () => {}; + +function QuuzAny() {} +function QuuzUnknown() {} +``` + +Examples of **correct** code for this rule: + +```ts +interface Foo {} + +type Bar = {}; + +class Baz { + qux { } +} + +const Quux = () => {}; + +function Quuz() {} +``` + +## When Not To Use It + +If you don't care about the specific styles of your type constraints, or never use them in the first place, then you will not need this rule. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-argument.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-argument.md new file mode 100644 index 0000000000..d8e3456d18 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-argument.md @@ -0,0 +1,69 @@ +# Disallows calling an function with an any type value (`no-unsafe-argument`) + +Despite your best intentions, the `any` type can sometimes leak into your codebase. +Call a function with `any` typed argument are not checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase. + +## Rule Details + +This rule disallows calling a function with `any` in its arguments, and it will disallow spreading `any[]`. +This rule also disallows spreading a tuple type with one of its elements typed as `any`. +This rule also compares the argument's type to the variable's type to ensure you don't pass an unsafe `any` in a generic position to a receiver that's expecting a specific type. For example, it will error if you assign `Set` to an argument declared as `Set`. + +Examples of **incorrect** code for this rule: + +```ts +declare function foo(arg1: string, arg2: number, arg2: string): void; + +const anyTyped = 1 as any; + +foo(...anyTyped); +foo(anyTyped, 1, 'a'); + +const anyArray: any[] = []; +foo(...anyArray); + +const tuple1 = ['a', anyTyped, 'b'] as const; +foo(...tuple1); + +const tuple2 = [1] as const; +foo('a', ...tuple, anyTyped); + +declare function bar(arg1: string, arg2: number, ...rest: string[]): void; +const x = [1, 2] as [number, ...number[]]; +foo('a', ...x, anyTyped); + +declare function baz(arg1: Set, arg2: Map): void; +foo(new Set(), new Map()); +``` + +Examples of **correct** code for this rule: + +```ts +declare function foo(arg1: string, arg2: number, arg2: string): void; + +foo('a', 1, 'b'); + +const tuple1 = ['a', 1, 'b'] as const; +foo(...tuple1); + +declare function bar(arg1: string, arg2: number, ...rest: string[]): void; +const array: string[] = ['a']; +bar('a', 1, ...array); + +declare function baz(arg1: Set, arg2: Map): void; +foo(new Set(), new Map()); +``` + +There are cases where the rule allows passing an argument of `any` to `unknown`. + +Example of `any` to `unknown` assignment that are allowed. + +```ts +declare function foo(arg1: unknown, arg2: Set, arg3: unknown[]): void; +foo(1 as any, new Set(), [] as any[]); +``` + +## Related to + +- [`no-explicit-any`](./no-explicit-any.md) +- TSLint: [`no-unsafe-any`](https://palantir.github.io/tslint/rules/no-unsafe-any/) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md index 2c2d8831f4..e64294f4e9 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-member-access.md @@ -35,11 +35,11 @@ Examples of **correct** code for this rule: ```ts declare const properlyTyped: { prop: { a: string } }; -nestedAny.prop.a; -nestedAny.prop['a']; +properlyTyped.prop.a; +properlyTyped.prop['a']; const key = 'a'; -nestedAny.prop[key]; +properlyTyped.prop[key]; const arr = [1, 2, 3]; arr[1]; diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md index 9810be3cf1..225593eb02 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unsafe-return.md @@ -1,7 +1,7 @@ # Disallows returning any from a function (`no-unsafe-return`) Despite your best intentions, the `any` type can sometimes leak into your codebase. -Returned `any` typed values not checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase. +Returned `any` typed values are not checked at all by TypeScript, so it creates a potential safety hole, and source of bugs in your codebase. ## Rule Details diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.md new file mode 100644 index 0000000000..473f83b0a9 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/non-nullable-type-assertion-style.md @@ -0,0 +1,27 @@ +# Prefers a non-null assertion over explicit type cast when possible (`non-nullable-type-assertion-style`) + +This rule detects when an `as` cast is doing the same job as a `!` would, and suggests fixing the code to be an `!`. + +## Rule Details + +Examples of **incorrect** code for this rule: + +```ts +const maybe = Math.random() > 0.5 ? '' : undefined; + +const definitely = maybe as string; +const alsoDefinitely = maybe; +``` + +Examples of **correct** code for this rule: + +```ts +const maybe = Math.random() > 0.5 ? '' : undefined; + +const definitely = maybe!; +const alsoDefinitely = maybe!; +``` + +## When Not To Use It + +If you don't mind having unnecessarily verbose type casts, you can avoid this rule. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/object-curly-spacing.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/object-curly-spacing.md new file mode 100644 index 0000000000..44bd35afb5 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/object-curly-spacing.md @@ -0,0 +1,22 @@ +# Enforce consistent spacing inside braces (`object-curly-spacing`) + +## Rule Details + +This rule extends the base [`eslint/object-curly-spacing`](https://eslint.org/docs/rules/object-curly-spacing) rule. +It adds support for TypeScript's object types. + +## How to use + +```cjson +{ + // note you must disable the base rule as it can report incorrect errors + "object-curly-spacing": "off", + "@typescript-eslint/object-curly-spacing": ["error"] +} +``` + +## Options + +See [`eslint/object-curly-spacing` options](https://eslint.org/docs/rules/object-curly-spacing#options). + +Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/object-curly-spacing.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md index a3210a133a..5c3bc55c9f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md @@ -24,6 +24,13 @@ interface Foo extends Function { } ``` +```ts +interface MixinMethod { + // returns the function itself, not the `this` argument. + (arg: string): this; +} +``` + Examples of **correct** code for this rule: ```ts @@ -48,6 +55,23 @@ interface Bar extends Foo { } ``` +```ts +// returns the `this` argument of function, retaining it's type. +type MixinMethod = (this: TSelf, arg: string) => TSelf; +// a function that returns itself is much clearer in this form. +type ReturnsSelf = (arg: string) => ReturnsSelf; +``` + +```ts +// multiple call signatures (overloads) is allowed: +interface Overloaded { + (data: string): number; + (id: number): string; +} +// this is equivelent to Overloaded interface. +type Intersection = ((data: string) => number) & ((id: number) => string); +``` + ## When Not To Use It If you specifically want to use an interface or type literal with a single call signature for stylistic reasons, you can disable this rule. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-includes.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-includes.md index 07cc9ea44e..018780a657 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-includes.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-includes.md @@ -22,6 +22,7 @@ let str: string; let array: any[]; let readonlyArray: ReadonlyArray; let typedArray: UInt8Array; +let maybe: string; let userDefined: { indexOf(x: any): number; includes(x: any): boolean; @@ -31,6 +32,7 @@ str.indexOf(value) !== -1; array.indexOf(value) !== -1; readonlyArray.indexOf(value) === -1; typedArray.indexOf(value) > -1; +maybe?.indexOf('') !== -1; userDefined.indexOf(value) >= 0; // simple RegExp test diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md index e2350f3571..2086f6533c 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-literal-enum-member.md @@ -21,6 +21,10 @@ The answer is that `Foo.c` will be `1` at runtime. The [playground](https://www. This rule is meant to prevent unexpected results in code by requiring the use of literal values as enum members to prevent unexpected runtime behavior. Template literals, arrays, objects, constructors, and all other expression types can end up using a variable from its scope or the parent scope, which can result in the same unexpected behavior at runtime. +## Options + +- `allowBitwiseExpressions` set to `true` will allow you to use bitwise expressions in enum initializer (Default: `false`). + Examples of **incorrect** code for this rule: ```ts @@ -46,6 +50,37 @@ enum Valid { } ``` +### `allowBitwiseExpressions` + +Examples of **incorrect** code for the `{ "allowBitwiseExpressions": true }` option: + +```ts +const x = 1; +enum Foo { + A = x << 0, + B = x >> 0, + C = x >>> 0, + D = x | 0, + E = x & 0, + F = x ^ 0, + G = ~x, +} +``` + +Examples of **correct** code for the `{ "allowBitwiseExpressions": true }` option: + +```ts +enum Foo { + A = 1 << 0, + B = 1 >> 0, + C = 1 >>> 0, + D = 1 | 0, + E = 1 & 0, + F = 1 ^ 0, + G = ~1, +} +``` + ## When Not To Use It If you want use anything other than simple literals as an enum value. diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md index 74697f2d3e..34544456f0 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly-parameter-types.md @@ -124,10 +124,12 @@ interface Foo { ```ts interface Options { checkParameterProperties?: boolean; + ignoreInferredTypes?: boolean; } const defaultOptions: Options = { checkParameterProperties: true, + ignoreInferredTypes: false, }; ``` @@ -162,3 +164,53 @@ class Foo { ) {} } ``` + +### `ignoreInferredTypes` + +This option allows you to ignore parameters which don't explicitly specify a type. This may be desirable in cases where an external dependency specifies a callback with mutable parameters, and manually annotating the callback's parameters is undesirable. + +Examples of **incorrect** code for this rule with `{ignoreInferredTypes: true}`: + +```ts +import { acceptsCallback, CallbackOptions } from 'external-dependency'; + +acceceptsCallback((options: CallbackOptions) => {}); +``` + +
+external-dependency.d.ts + +```ts +export interface CallbackOptions { + prop: string; +} +type Callback = (options: CallbackOptions) => void; +type AcceptsCallback = (callback: Callback) => void; + +export const acceptsCallback: AcceptsCallback; +``` + +
+ +Examples of **correct** code for this rule with `{ignoreInferredTypes: true}`: + +```ts +import { acceptsCallback } from 'external-dependency'; + +acceceptsCallback(options => {}); +``` + +
+external-dependency.d.ts + +```ts +export interface CallbackOptions { + prop: string; +} +type Callback = (options: CallbackOptions) => void; +type AcceptsCallback = (callback: Callback) => void; + +export const acceptsCallback: AcceptsCallback; +``` + +
diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-regexp-exec.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-regexp-exec.md index 4640d35a98..3f3d149a7f 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-regexp-exec.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-regexp-exec.md @@ -1,18 +1,16 @@ # Enforce that `RegExp#exec` is used instead of `String#match` if no global flag is provided (`prefer-regexp-exec`) -`RegExp#exec` is faster than `String#match` and both work the same when not using the `/g` flag. +As `String#match` is defined to be the same as `RegExp#exec` when the regular expression does not include the `g` flag, prefer a consistent usage. ## Rule Details -This rule is aimed at enforcing the more performant way of applying regular expressions on strings. +This rule is aimed at enforcing a consistent way to apply regular expressions to strings. From [`String#match` on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match): > If the regular expression does not include the g flag, returns the same result as `RegExp.exec()`. -From [Stack Overflow](https://stackoverflow.com/questions/9214754/what-is-the-difference-between-regexp-s-exec-function-and-string-s-match-fun) - -> `RegExp.prototype.exec` is a lot faster than `String.prototype.match`, but that’s because they are not exactly the same thing, they are different. +`RegExp#exec` may also be slightly faster than `String#match`; this is the reason to choose it as the preferred usage. Examples of **incorrect** code for this rule: diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md index 7ec0cac771..60fdf79c80 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-ts-expect-error.md @@ -1,6 +1,6 @@ -# Recommends using `// @ts-expect-error` over `// @ts-ignore` (`prefer-ts-expect-error`) +# Recommends using `@ts-expect-error` over `@ts-ignore` (`prefer-ts-expect-error`) -TypeScript allows you to suppress all errors on a line by placing a single-line comment starting with `@ts-ignore` immediately before the erroring line. +TypeScript allows you to suppress all errors on a line by placing a single-line comment or a comment block line starting with `@ts-ignore` immediately before the erroring line. While powerful, there is no way to know if a `@ts-ignore` is actually suppressing an error without manually investigating what happens when the `@ts-ignore` is removed. This means its easy for `@ts-ignore`s to be forgotten about, and remain in code even after the error they were suppressing is fixed. @@ -20,6 +20,15 @@ Examples of **incorrect** code for this rule: // @ts-ignore const str: string = 1; +/** + * Explaining comment + * + * @ts-ignore */ +const multiLine: number = 'value'; + +/** @ts-ignore */ +const block: string = 1; + const isOptionEnabled = (key: string): boolean => { // @ts-ignore: if key isn't in globalOptions it'll be undefined which is false return !!globalOptions[key]; @@ -32,6 +41,15 @@ Examples of **correct** code for this rule: // @ts-expect-error const str: string = 1; +/** + * Explaining comment + * + * @ts-expect-error */ +const multiLine: number = 'value'; + +/** @ts-expect-error */ +const block: string = 1; + const isOptionEnabled = (key: string): boolean => { // @ts-expect-error: if key isn't in globalOptions it'll be undefined which is false return !!globalOptions[key]; @@ -40,7 +58,7 @@ const isOptionEnabled = (key: string): boolean => { ## When Not To Use It -If you are not using TypeScript 3.9 (or greater), then you will not be able to use this rule, as the directive is not supported +If you are **NOT** using TypeScript 3.9 (or greater), then you will not be able to use this rule, as the directive is not supported ## Further Reading diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md index 1f0adc71ec..3c621d2510 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/return-await.md @@ -28,6 +28,12 @@ const defaultOptions: Options = 'in-try-catch'; ### `in-try-catch` Requires that a returned promise must be `await`ed in `try-catch-finally` blocks, and disallows it elsewhere. +Specifically: + +- if you `return` a promise within a `try`, then it must be `await`ed. +- if you `return` a promise within a `catch`, and there **_is no_** `finally`, then it **_must not_** be `await`ed. +- if you `return` a promise within a `catch`, and there **_is a_** `finally`, then it **_must_** be `await`ed. +- if you `return` a promise within a `finally`, then it **_must not_** be `await`ed. Examples of **incorrect** code with `in-try-catch`: @@ -39,10 +45,38 @@ async function invalidInTryCatch1() { } async function invalidInTryCatch2() { - return await Promise.resolve('try'); + try { + throw new Error('error'); + } catch (e) { + return await Promise.resolve('catch'); + } } async function invalidInTryCatch3() { + try { + throw new Error('error'); + } catch (e) { + return Promise.resolve('catch'); + } finally { + console.log('cleanup'); + } +} + +async function invalidInTryCatch4() { + try { + throw new Error('error'); + } catch (e) { + throw new Error('error2'); + } finally { + return await Promise.resolve('finally'); + } +} + +async function invalidInTryCatch5() { + return await Promise.resolve('try'); +} + +async function invalidInTryCatch6() { return await 'value'; } ``` @@ -57,10 +91,38 @@ async function validInTryCatch1() { } async function validInTryCatch2() { - return Promise.resolve('try'); + try { + throw new Error('error'); + } catch (e) { + return Promise.resolve('catch'); + } } async function validInTryCatch3() { + try { + throw new Error('error'); + } catch (e) { + return await Promise.resolve('catch'); + } finally { + console.log('cleanup'); + } +} + +async function validInTryCatch4() { + try { + throw new Error('error'); + } catch (e) { + throw new Error('error2'); + } finally { + return Promise.resolve('finally'); + } +} + +async function validInTryCatch5() { + return Promise.resolve('try'); +} + +async function validInTryCatch6() { return 'value'; } ``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-union-intersection-members.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-union-intersection-members.md new file mode 100644 index 0000000000..43ef069a71 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/sort-type-union-intersection-members.md @@ -0,0 +1,147 @@ +# Enforces that members of a type union/intersection are sorted alphabetically (`sort-type-union-intersection-members`) + +Sorting union (`|`) and intersection (`&`) types can help: + +- keep your codebase standardized +- find repeated types +- reduce diff churn + +## Rule Details + +Sorting within each group is done using the following code: + +```ts +const collator = new Intl.Collator('en', { + sensitivity: 'base', + numeric: true, +}); + +function compare(a, b) { + return collator.compare(a, b) || (a < b ? -1 : a > b ? 1 : 0); +} +``` + +In other words, the types are sorted alphabetically, case-insensitively and treating numbers like a human would, falling back to character code sorting in case of ties. + +Examples of **incorrect** code for this rule: + +```ts +type T1 = B | A; + +type T2 = { b: string } & { a: string }; + +type T3 = [1, 2, 4] & [1, 2, 3]; + +type T4 = + | [1, 2, 4] + | [1, 2, 3] + | { b: string } + | { a: string } + | (() => void) + | (() => string) + | 'b' + | 'a' + | 'b' + | 'a' + | readonly string[] + | readonly number[] + | string[] + | number[] + | B + | A + | string + | any; +``` + +Examples of **correct** code for this rule: + +```ts +type T1 = A | B; + +type T2 = { a: string } & { b: string }; + +type T3 = [1, 2, 3] & [1, 2, 4]; + +type T4 = + | any + | string + | A + | B + | number[] + | string[] + | readonly number[] + | readonly string[] + | 'a' + | 'b' + | 'a' + | 'b' + | (() => string) + | (() => void) + | { a: string } + | { b: string } + | [1, 2, 3] + | [1, 2, 4]; +``` + +## Options + +```ts +type Options = { + // true to check intersection types, false otherwise + checkIntersections?: boolean; + // true to check union types, false otherwise + checkUnions?: boolean; + // the ordering of the groups + groupOrder?: ( + | 'conditional' + | 'function' + | 'import' + | 'intersection' + | 'keyword' + | 'literal' + | 'named' + | 'object' + | 'operator' + | 'tuple' + | 'union' + | 'nullish' + )[]; +}; + +const defaultOptions: Options = { + checkIntersections: true, + checkUnions: true, + groupOrder: [ + 'named', + 'keyword', + 'operator', + 'literal', + 'function', + 'import', + 'conditional', + 'object', + 'tuple', + 'intersection', + 'union', + 'nullish', + ], +}; +``` + +### `groupOrder` + +Each member of the type is placed into a group, and then the rule sorts alphabetically within each group. +The ordering of groups is determined by this option. + +- `conditional` - Conditional types (`A extends B ? C : D`) +- `function` - Function and constructor types (`() => void`, `new () => type`) +- `import` - Import types (`import('path')`) +- `intersection` - Intersection types (`A & B`) +- `keyword` - Keyword types (`any`, `string`, etc) +- `literal` - Literal types (`1`, `'b'`, `true`, etc) +- `named` - Named types (`A`, `A['prop']`, `B[]`, `Array`) +- `object` - Object types (`{ a: string }`, `{ [key: string]: number }`) +- `operator` - Operator types (`keyof A`, `typeof B`, `readonly C[]`) +- `tuple` - Tuple types (`[A, B, C]`) +- `union` - Union types (`A | B`) +- `nullish` - `null` and `undefined` diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-infix-ops.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-infix-ops.md new file mode 100644 index 0000000000..da36f25726 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/space-infix-ops.md @@ -0,0 +1,26 @@ +# This rule is aimed at ensuring there are spaces around infix operators. (`space-infix-ops`) + +This rule extends the base [`eslint/space-infix-ops`](https://eslint.org/docs/rules/space-infix-ops) rule. + +It also add support for enum members + +```ts +enum MyEnum { + KEY = 'value', +} +``` + +## How to use + +```jsonc +{ + "space-infix-ops": "off", + "@typescript-eslint/space-infix-ops": ["error", { "int32Hint": false }] +} +``` + +## Options + +See [`eslint/space-infix-ops` options](https://eslint.org/docs/rules/space-infix-ops#options). + +Taken with ❤️ [from ESLint core](https://github.com/eslint/eslint/blob/master/docs/rules/space-infix-ops.md) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md index 243d54fda1..b1ad94d8b3 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md @@ -50,7 +50,7 @@ while (obj) { Examples of **correct** code for this rule: ```tsx -// Using logical operators for their side effects is allowed +// Using logical operator short-circuiting is allowed const Component = () => { const entry = map.get('foo') || {}; return entry &&

Name: {entry.name}

; @@ -155,6 +155,38 @@ You should be using `strictNullChecks` to ensure complete type-safety in your co If for some reason you cannot turn on `strictNullChecks`, but still want to use this rule - you can use this option to allow it - but know that the behavior of this rule is _undefined_ with the compiler option turned off. We will not accept bug reports if you are using this option. +## Fixes and suggestions + +This rule provides following fixes and suggestions for particular types in boolean context: + +- `boolean` - Always allowed - no fix needed. +- `string` - (when `allowString` is `false`) - Provides following suggestions: + - Change condition to check string's length (`str` → `str.length > 0`) + - Change condition to check for empty string (`str` → `str !== ""`) + - Explicitly cast value to a boolean (`str` → `Boolean(str)`) +- `number` - (when `allowNumber` is `false`): + - For `array.length` - Provides **autofix**: + - Change condition to check for 0 (`array.length` → `array.length > 0`) + - For other number values - Provides following suggestions: + - Change condition to check for 0 (`num` → `num !== 0`) + - Change condition to check for NaN (`num` → `!Number.isNaN(num)`) + - Explicitly cast value to a boolean (`num` → `Boolean(num)`) +- `object | null | undefined` - (when `allowNullableObject` is `false`) - Provides **autofix**: + - Change condition to check for null/undefined (`maybeObj` → `maybeObj != null`) +- `boolean | null | undefined` - Provides following suggestions: + - Explicitly treat nullish value the same as false (`maybeBool` → `maybeBool ?? false`) + - Change condition to check for true/false (`maybeBool` → `maybeBool === true`) +- `string | null | undefined` - Provides following suggestions: + - Change condition to check for null/undefined (`maybeStr` → `maybeStr != null`) + - Explicitly treat nullish value the same as an empty string (`maybeStr` → `maybeStr ?? ""`) + - Explicitly cast value to a boolean (`maybeStr` → `Boolean(maybeStr)`) +- `number | null | undefined` - Provides following suggestions: + - Change condition to check for null/undefined (`maybeNum` → `maybeNum != null`) + - Explicitly treat nullish value the same as 0 (`maybeNum` → `maybeNum ?? 0`) + - Explicitly cast value to a boolean (`maybeNum` → `Boolean(maybeNum)`) +- `any` and `unknown` - Provides following suggestions: + - Explicitly cast value to a boolean (`value` → `Boolean(value)`) + ## Related To - TSLint: [strict-boolean-expressions](https://palantir.github.io/tslint/rules/strict-boolean-expressions) diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/triple-slash-reference.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/triple-slash-reference.md index af9e5498b6..9eb463a3c7 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/triple-slash-reference.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/triple-slash-reference.md @@ -2,8 +2,6 @@ Use of triple-slash reference type directives is discouraged in favor of the newer `import` style. This rule allows you to ban use of `/// `, `/// `, or `/// ` directives. -Consider using this rule in place of [`no-triple-slash-reference`](./no-triple-slash-reference.md) which has been deprecated. - ## Rule Details With `{ "path": "never", "types": "never", "lib": "never" }` options set, the following will all be **incorrect** usage: diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md index 6c96fa0317..03409e110b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/typedef.md @@ -114,7 +114,7 @@ const mapper = { Examples of **correct** code with `{ "arrowParameter": true }`: ```ts -const logsSize = (size: number) => console.log(text); +const logsSize = (size: number) => console.log(size); ['hello', 'world'].map((text: string) => text.length); diff --git a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unbound-method.md b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unbound-method.md index 0de7b17abc..538edaf956 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unbound-method.md +++ b/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unbound-method.md @@ -4,6 +4,10 @@ Warns when a method is used outside of a method call. Class functions don't preserve the class scope when passed as standalone variables. +If your function does not access `this`, [you can annotate it with `this: void`](https://www.typescriptlang.org/docs/handbook/2/functions.html#declaring-this-in-a-function), or consider using an arrow function instead. + +If you're working with `jest`, you can use [`eslint-plugin-jest`'s version of this rule](https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/unbound-method.md) to lint your test files, which knows when it's ok to pass an unbound method to `expect` calls. + ## Rule Details Examples of **incorrect** code for this rule @@ -23,6 +27,14 @@ myLog(); // This log might later be called with an incorrect scope const { log } = instance; + +// arith.double may refer to `this` internally +const arith = { + double(x: number): number { + return x * 2; + }, +}; +const { double } = arith; ``` Examples of **correct** code for this rule @@ -45,6 +57,14 @@ logBound(); // .bind and lambdas will also add a correct scope const dotBindLog = instance.logBound.bind(instance); const innerLog = () => instance.logBound(); + +// arith.double explicitly declares that it does not refer to `this` internally +const arith = { + double(this: void, x: number): number { + return x * 2; + }, +}; +const { double } = arith; ``` ## Options @@ -87,6 +107,8 @@ log(); If your code intentionally waits to bind methods after use, such as by passing a `scope: this` along with the method, you can disable this rule. +If you're wanting to use `toBeCalled` and similar matches in `jest` tests, you can disable this rule for your test files in favor of [`eslint-plugin-jest`'s version of this rule](https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/unbound-method.md). + ## Related To - TSLint: [no-unbound-method](https://palantir.github.io/tslint/rules/no-unbound-method/) diff --git a/node_modules/@typescript-eslint/eslint-plugin/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/index.d.ts new file mode 100644 index 0000000000..8092cabcc4 --- /dev/null +++ b/node_modules/@typescript-eslint/eslint-plugin/index.d.ts @@ -0,0 +1,4 @@ +import { TSESLint } from '@typescript-eslint/experimental-utils'; + +export const rules: Record>; +export const configs: Record; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.editorconfig b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.editorconfig deleted file mode 100644 index 4818afd6b7..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true -charset = utf-8 -indent_size = 4 -indent_style = space -trim_trailing_whitespace = true - -[*.{json,yml,md}] -indent_size = 2 diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.fimbullinter.yaml b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.fimbullinter.yaml deleted file mode 100644 index 74e903e76c..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.fimbullinter.yaml +++ /dev/null @@ -1,2 +0,0 @@ -exclude: - - test/rules/** diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.wotanrc.yaml b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.wotanrc.yaml deleted file mode 100644 index 46153ecb73..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/.wotanrc.yaml +++ /dev/null @@ -1,5 +0,0 @@ -extends: wotan:recommended -rules: - # TODO enable once https://github.com/Microsoft/TypeScript/issues/24706 is resolved - no-useless-assertion: off - no-useless-predicate: off diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/CHANGELOG.md b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/CHANGELOG.md deleted file mode 100644 index 0d01e793b1..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/CHANGELOG.md +++ /dev/null @@ -1,741 +0,0 @@ -# 3.17.1 - -**Bugfixes:** - -* `isValidJsxIdentifier`, `isValidPropertyAccess`, `isValidPropertyName`: fix unicode character width handling - -# 3.17.0 - -**Features:** - -* `isValidJsxIdentifier` added an optional parameter to specify the target ECMAScript version - -**Bugfixes:** - -* `isValidJsxIdentifier` now handles astral plane characters - -# 3.16.0 - -**Features:** - -* added `getIteratorYieldResultFromIteratorResult` to extract the `yield`ed type from `IteratorResult` - -# 3.15.0 - -**Features:** - -* `isValidIdentifier`, `isValidPropertyName`, `isValidPropertyAccess`, `isValidNumericLiteral` added an optional parameter to specify the target ECMAScript version - -**Bugfixes:** - -* `isValidPropertyName`, `isValidPropertyAccess` now handle astral plane characters - -# 3.14.1 - -**Bugfixes:** - -* `findImports`: fixed crash on nested namespaces - -# 3.14.0 - -**Features:** - -* added `getInstanceTypeOfClassLikeDeclaration` and `getConstructorTypeOfClassLikeDeclaration` -* added `AccessKind.Delete` to `getAccessKind`: `getAccessKind(node) & AccessKind.Modification` can now be used to restore the old behavior of `isReassignmentTarget(node)` - -# 3.13.0 - -**Features:** - -* `getAccessKind` determines whether an expression is read from, written to or both -* optimized `getPropertyOfType` for unambiguous property names to partially work around https://github.com/microsoft/TypeScript/issues/31565 - -**Bugfixes:** - -* `isReassignmentTarget` no longer returns `true` for `DeleteExpression` as it doesn't **assign** a value to the operand - -# 3.12.0 - -**Features:** - -* `getLateBoundPropertyNamesOfPropertyName` returns all statically analyzable names of a property, method, ... -* `getSingleLateBoundPropertyNameOfPropertyName` returns the literal name of a property, method, ... if statically analyzable - -**Bugfixes:** - -* fixed circular import - -# 3.11.0 - -**Features:** - -* typeguards: `isNumericOrStringLikeLiteral`, `isTupleTypeReference` -* `intersectionTypeParts` as counterpart to `unionTypeParts` -* `someTypePart` to execute a callback for each union or intersection constituent until the callback returns true -* `getPropertyOfType` looks up a property by its escaped name -* `isPropertyReadonlyInType` determines whether a property in a given type cannot be written to -* `symbolHasReadonlyDeclaration` determines if a Symbol has any readonly or constant declaration -* `isNumericPropertyName` determines whether a property name would match an index signature -* `isBindableObjectDefinePropertyCall` returns true for statically analyzable forms of `Object.defineProperty(o, 'p', {value, writable})` -* `isReadonlyAssignmentDeclaration` determines whether an `Object.defineProperty` call is known to result in a readonly property -* `getLateBoundPropertyNames` returns all known property names of an expression -* `getPropertyNameFromType` extracts the property name of literal types -* `isWellKnownSymbolLiterally` to recognize expressions in the form of `Symbol.` -* `getPropertyNameOfWellKnownSymbol` returns the escaped name for a well known symbol literal -* `unwrapParentheses` returns the first child expression that is not a `ParenthesizedExpression` - -# 3.10.0 - -**Features:** - -* `isCompilerOptionEnabled`: `incremental` is implicitly enabled by `composite` - -**Bugfixes:** - -* `collectVariableUsage`/`getUsageDomain`: no longer treat `as const` as type usage - -# 3.9.1 - -**Bugfixes:** - -* reverted invalid deprecation of `canHaveJsdoc` -* fixed condition in `parseJsdocOfNode` - -# 3.9.0 - -**Features:** - -* added typeguards: `isNullLiteral` and `isBooleanLiteral` - -# 3.8.0 - -**Features:** - -* exposes typeguards for typescript@3.2 by default -* added utilities: `isConstAssertion` and `isInConstContext` - -# 3.7.0 - -**Features:** - -* added `isBlockScopedDeclarationStatement` -* added `isInSingleStatementContext` - -# 3.6.0 - -**Features:** - -* added `getCheckJsDirective` utility to parse `// @ts-check` and `// @ts-nocheck` pragmas - -# 3.5.2 - -**Bugfixes:** - -* Published declaration files no longer contain `const enum`. They are now declared as regular enums instead. - -# 3.5.1 - -**Bugfixes:** - -* `isThenableType` allows `Node` instead of `Expression` as parameter -* `isBlockScopeBoundary` and `isScopeBoundary` consider `WithStatement` as scope boundary - -# 3.5.0 - -**Features:** - -* correctly handle BigInt literals - * added typeguard `isBigIntLiteral` - * `isLiteralType` recognises BigInt - * `getPropertyName` adds special handling for BigInt - -# 3.4.0 - -**Features:** - -* added utility `commentText` to get the actual text content of a comment excluding the characters needed to start and end the comment - -# 3.3.1 - -**Bugfixes:** - -* `findImports`: fixed handling of ImportEqualsDeclaration - -# 3.3.0 - -**Features:** - -* `isCompilerOptionEnabled`: recognizes `strictBindCallApply` -* `getTokenAtPosition`: optionally includes JSDoc during lookup - -**Bugfixes:** - -* `isCompilerOptionEnabled`: correctly implements logic for `allowSyntheticDefaultImports` -* `findImportLikeNodes`: correctly finds imports in namespaces -* `findImportLikeNodes` / `findImports`: finds import types in JSDoc of JS files - -# 3.2.0 - -**Features:** - -* added utility `findImportLikeNodes` that works similar to `findImports` but returns the import statement or expression instead of the module specifier and doesn't filter non-string module specifiers - -# 3.1.0 - -**Features:** - -* added utilities: `isKeywordKind` and `isValidJsxIdentifier` -* exposes typeguards for typescript@3.0 by default - -# 3.0.0 - -:warning: **Breaking Changes:** - -* Dropped support for `typescript@<2.8.0` -* Dropped support for Node.js 4 -* Removed deprecated APIs: - * `getIdentifierText`, `isJsxFramgment`, `ImportOptions` - * deprected overloads of `isModifierFlagSet`, `findImports` and `getControlFlowEnd` -* control flow related symbols can no longer be imported from `'tsutils/util/util'`, import directly from `'tsutils/util/control-flow'` or `'tsutils/util'` -* `isFunctionScopeBoundary` and `isBlockScopeBoundary` now return a enum member of `ScopeBoundary` instead of a boolean -* `isFunctionScopeBoundary` no longer returns a truthy value for `InterfaceDeclaration`, `TypeAliasDeclaration` - -**Features:** - -* added utility `isTypeScopeBoundary` returning `ScopeBoundary.Type` or `ScopeBoundary.ConditionalType` -* added enum `ScopeBoundarySelector` whose members can be used to determine if a declaration belongs to a given `ScopeBoundary` by using bitwise AND - -**Bugfixes:** - -* `collectVariableUsage` now correctly handles `infer T` nested inside function signatures or mapped types -* `isCompilerOptionEnabled` correctly handles `skipDefaultLibCHeck` and `suppressImplicitAnyIndexErrors` - -# 2.29.0 - -**Features:** - -* added utility `isCompilerOptionEnabled` - -# 2.28.0 - -Typeguards are now split into multiple submodules for each version of TypeScript (starting with 2.8.0). -That means you can now import directly from `"tsutils/typeguard/2.8"` to get compatible declaraton files for TypeScript@2.8. -For more information please read the relevant section in [README.md](README.md). - -**Features:** - -* added typeguards: `isTupleType`, `isOptionalTypeNode`, `isRestTypeNode`, `isSyntheticExpression` (currently available from `"tsutils/typeguard/3.0"`) -* added utility `isStrictCompilerOptionEnabled` - -# 2.27.2 - -Avoid crash caused by removed function in `typescript@3.0.0`. - -# 2.27.1 - -Added support for TypeScript@3.0.0 nightly builds. - -# 2.27.0 - -**Features:** - -* added `getIIFE` utility - -# 2.26.2 - -**Bugfixes:** - -* `forEachComment` and `forEachTokenWithTrivia` no longer duplicate comments around missing nodes - -# 2.26.1 - -**Bugfixes:** - -* fixed crash in `hasSideEffects` with tagged template literal without substitution: ``tag`template` `` - -# 2.26.0 - -**Features:** - -* added typeguard `isLiteralTypeNode` -* added support for type imports (`type T = import('foo')`) to `findImports` via `ImportKind.ImportType` - -# 2.25.1 - -**Bugfixes:** - -* `collectVariableUsage`: fixed name lookup in function signatures to match runtime behavior. Note that this is not completely fixed in TypeScript, yet. See: [Microsoft/TypeScript#22825](https://github.com/Microsoft/TypeScript/issues/22825) and [Microsoft/TypeScript#22769](https://github.com/Microsoft/TypeScript/issues/22769) - -# 2.25.0 - -**Features:** - -* added utilities: `isStatementInAmbientContext` and `isAmbientModuleBlock` - -# 2.24.0 - -**Features:** - -* added typeguards for typescript@2.8: `isConditionalTypeNode`, `isInferTypeNode`, `isConditionalType`, `isInstantiableType`, `isSubstitutionType` - -# 2.23.0 - -**Features:** - -* added typeguard `isForInOrOfStatement` - -**Bugfixes:** - -* correctly handle comments in generic JSX elements: `/*comment*/>` -* fixed a bug with false positive trailing comments at the end of JSX self closing element: `

/*no comment*/
` - -# 2.22.2 - -**Bugfixes:** - -* `collectVariableUsage`: handle ConditionalTypes and `infer T`, which will be introduced in TypeScript@2.8.0 and are already available in nightly builds -* `isLiteralType` no longer returns true for `ts.TypeFlags.BooleanLiteral` as this is not a `ts.LiteralType` - -# 2.22.1 - -**Bugfixes:** - -* `endsControlFlow`: - * handle loops that might not even run a single iteration - * handle constant boolean conditions in loops and if - -# 2.22.0 - -**Features:** - -* added `isFalsyType` utility - -# 2.21.2 - -**Bugfixes:** - -* fixed compile error with `typescript@2.8.0-dev` - -# 2.21.1 - -**Bugfixes:** - -* `isReassignmentTarget`: handle type assertions and non-null assertion - -# 2.21.0 - -**Bugfixes:** - -* `forEachDeclaredVariable` uses a more precise type for the callback parameter to make it useable again with typescript@2.7.1 - -**Features:** - -* added `isUniqueESSymbolType` typeguard - -# 2.20.0 - -**Features:** - -* added `isThenableType` utility -* added `unionTypeParts` utility - -# 2.19.1 - -**Bugfixes:** - -* `forEachComment`, `getCommentAtPosition` and `isPositionInComment`: skip shebang (`#! something`) to not miss following comments at the start of the file - -# 2.19.0 - -**Features:** - -* added `WrappedAst` interface that models the type of a wrapped SourceFile more accurate -* added `getWrappedNodeAtPosition` utiltiy that takes a `NodeWrap` and returns the most deeply nested NodeWrap that contains the given position - -# 2.18.0 - -**Features:** - -* `getControlFlowEnd` accepts BlockLike as argument - -**Bugfixes:** - -* `getControlFlowEnd` and `endsControlFlow`: correctly handle nested LabeledStatements -* `endsControlFlow` removed erroneous special case when an IterationStatement is passed as argument whose parent is a LabeledStatement. - * if you want labels of an IterationStatement (or SwitchStatement) to be handled, you need to pass the LabeledStatement as argument. - * :warning: this fix may change the returned value if you relied on the buggy behavior - -**Deprecations:** - -* deprecated overload of `getControlFlowEnd` that contains the `label` parameter. This parameter is no longer used and should no longer be passed to the function. - -# 2.17.1 - -**Bugfixes:** - -* `getControlFlowEnd` and `endsControlFlow` (#22) - * ThrowStatements inside `try` are filtered out if there is a `catch` clause - * TryStatements with `catch` only end control flow if `try` AND `catch` definitely end control flow - -# 2.17.0 - -**Features:** - -* added `kind` property to `NodeWrap` -* added `getControlFlowEnd` to public API - -# 2.16.0 - -**Features:** - -* added `isDecorator` and `isCallLikeExpression` typeguards - -# 2.15.0 - -**Features:** - -* added `convertAst` utility to produce a flattened and wrapped version of the AST - -# 2.14.0 - -**Features:** - -* added `isDeleteExpression` -* added `getLineBreakStyle` - -# 2.13.1 - -**Bugfixes:** - -* fixed name of `isJsxFragment` - -# 2.13.0 - -**Features:** - -* added support for `JsxFragment` introduced in typescript@2.6.2 -* added corresponding typeguard functions - -# 2.12.2 - -**Bugfixes:** - -* `endsControlFlow` - * added missing logic for labeled statement, iteration statements and try-catch - * added missing logic for `break` and `continue` with labels - * take all jump statements into account, not only the last statement -* `isValidIdentifier` and `isValidNumericLiteral` handle irregular whitespace -* `findImports` searches in ambient modules inside regular `.ts` files (not only `.d.ts`) -* `canHaveJsDoc` is now a typeguard - -# 2.12.1 - -**Bugfixes:** - -* `forEachTokenWithTrivia` - * handles irregular whitespace and no longer visits some tokens twice - * correctly calculates the range of JsxText - -# 2.12.0 - -**API-Changes:** - -* deprecated `ImportOptions` if favor of the new `ImportKind` enum - -# 2.11.2 - -**Bugfixes:** - -* `parseJsDocOfNode`: set correct `pos`, `end` and `parent` properties. Also affects `getJsDoc` of `EndOfFileToken` - -# 2.11.1 - -**Bugfixes:** - -* `collectVariableUsage`: correctly consider catch binding as block scoped declaration inside catch block - -# 2.11.0 - -**Bugfixes:** - -* `getJsDoc` now correctly returns JsDoc for `EndOfFileToken` - -**Features:** - -* added utility `parseJsDocOfNode` - -# 2.10.0 - -**Features:** - -* added utility `findImports` to find all kinds of imports in a source file - -# 2.9.0 - -**Features:** - -* added typeguard `isMappedTypeNode` -* added utilities `canHaveJsDoc` and `getJsDoc` - -# 2.8.2 - -**Bugfixes:** - -* `collectVariableUsage`: handle global augmentation like other module augmentations - -# 2.8.1 - -**Bugfixes:** - -* Support `typescript@2.5.1` with optional catch binding -* `collectVariableUsage` fixed a bug where method decorator had method's parameters in scope - -# 2.8.0 - -* Compatibility with the latest typescript nightly -* Added `getIdentifierText` to unescape identifiers across typescript versions - -# 2.7.1 - -**Bugfixes:** - -* `isReassignmentTarget` don't return `true` for right side of assignment - -# 2.7.0 - -**Features:** - -* Added `isReassignmentTarget` utility - -# 2.6.1 - -**Bugfixes:** - -* `getDeclarationDomain` now returns `undefined` for Parameter in IndexSignature -* `collectVariableUsage` ignores Parameter in IndexSignature - -# 2.6.0 - -**Bugfixes:** - -* `collectVariableUsage`: - * don't merge imports with global declarations - * treat everything in a declaration file as exported if there is no explicit `export {};` -* `isExpressionValueUsed`: handle destructuring in `for...of` - -**Features:** - -* Added `getModifier` utility -* Added `DeclarationDomain.Import` to distinguish imports from other declarations - -# 2.5.1 - -**Bugfixes:** - -* `collectVariableUsage` ignore jump labels as in `break label;` - -# 2.5.0 - -**Bugfixes:** - -* `isFunctionWithBody` handles constructor overload correctly. - -**Features:** - -* Implemented `isExpressionValueUsed` to check whether the result of an expression is actually used. -* Implemented `getDeclarationDomain` to determine if a given declaration introduces a new symbol in the value or type domain. - -**`collectVariableUses` is now usable** - -* no longer ignores signatures and its parameters -* don't merge declarations and uses across domains -* no longer marks exceptions in catch clause or parameter properties as exported -* fixed exports of namespaces -* fixed scoping of ClassExpression name -* correcly handle ambient namespaces and module augmentations -* fixed how `: typeof foo` is handled for parameters and function return type -* **still WIP**: `export {Foo as Bar}` inside ambient namespaces and modules - -# 2.4.0 - -**Bugfixes:** - -* `getLineRanges`: `contentLength` now contains the correct line length when there are multiple consecutive line break characters -* `getTokenAtPosition`: don't match tokens that end at the specified position (because that's already outside of their range) -* deprecated the misnamed `isModfierFlagSet`, use the new `isModifierFlagSet` instead - -**Features:** - -* Added typeguard: `isJsDoc` -* Added experimental scope and usage analysis (`getUsageDomain` and `collectVariableUsage`) - -# 2.3.0 - -**Bugfixes:** - -* `forEachComment` no longer omits some comments when callback returns a truthy value -* `isPositionInComment` fixed false positive inside JSXText - -**Features:** - -* Added utility: `getCommentAtPosition` - -# 2.2.0 - -**Bugfixes:** - -* Fixed bit value of `SideEffectOptions.JsxElement` to be a power of 2 - -**Features:** - -* Added utilities: `getTokenAtPosition` and `isPositionInComment` - -# 2.1.0 - -**Features:** - -* Added typeguard `isExpression` -* Added utilities: `hasSideEffects`, `getDeclarationOfBindingElement` - -# 2.0.0 - -**Breaking Changes:** - -* Dropped compatibility with `typescript@<2.1.0` -* Removed misnamed `isNumericliteral`, use `isNumericLiteral` instead (notice the uppercase L) -* Removed `isEnumLiteralType` which will cause compile errors with typescript@2.4.0 -* Refactored directory structure: all imports that referenced subdirectories (e.g. `require('tsutils/src/typeguard')` will be broken - -**Features:** - -* New directory structure allows imports of typeguards or utils independently, e.g. (`require('tsutils/typeguard')`) - -# 1.9.1 - -**Bugfixes:** - -* `isObjectFlagSet` now uses the correct `objectFlags` property - -# 1.9.0 - -**Bugfixes:** - -* `getNextToken` no longer omits `EndOfFileToken` when there is no trivia before EOF. That means the only inputs where `getNextToken` returns `undefined` are `SourceFile` and `EndOfFileToken` - -**Features**: - -* Added typeguards for types -* Added utilities for flag checking: `isNodeFlagSet`, `isTypeFlagSet`, `isSymbolFlagSet`,`isObjectFlagSet`, `isModifierFlagSet` - -# 1.8.0 - -**Features:** - -* Support peer dependency of typescript nightlies of 2.4.0 -* Added typeguards: `isJsxAttributes`, `isIntersectionTypeNode`, `isTypeOperatorNode`, `isTypePredicateNode`, `isTypeQueryNode`, `isUnionTypeNode` - -# 1.7.0 - -**Bugfixes:** - -* `isFunctionScopeBoundary` now handles Interfaces, TypeAliases, FunctionSignatures, etc - -**Features:** - -* Added utilities: `isThisParameter`, `isSameLine` and `isFunctionWithBody` - -# 1.6.0 - -**Features:** - -* Add `isValidPropertyAccess`, `isValidNumericLiteral` and `isValidPropertyName` - -# 1.5.0 - -**Features:** - -* Add `isValidIdentifier` - -# 1.4.0 - -**Features:** - -* Add `contentLength` property to the result of `getLineRanges` - -# 1.3.0 - -**Bugfixes:** - -* `canHaveLeadingTrivia`: - * Fix property access on undefined parent reference - * Fixes: [palantir/tslint#2330](https://github.com/palantir/tslint/issues/2330) -* `hasOwnThisReference`: now includes accessors on object literals - -**Features:** - -* Typeguards: - * isTypeParameterDeclaration - * isEnitityName - -# 1.2.2 - -**Bugfixes:** - -* `hasOwnThisReference`: - * exclude overload signatures of function declarations - * add method declarations on object literals - -# 1.2.1 - -**Bugfixes:** - -* Fix name of `isNumericLiteral` - -# 1.2.0 - -**Features:** - -* Typeguards: - * isEnumMember - * isExpressionWithTypeArguments - * isImportSpecifier -* Utilities: - * isJsDocKind, isTypeNodeKind -* Allow typescript@next in peerDependencies - -# 1.1.0 - -**Bugfixes:** - -* Fix isBlockScopeBoundary: Remove WithStatement, IfStatment, DoStatement and WhileStatement because they are no scope boundary whitout a block. - -**Features:** - -* Added more typeguards: - * isAssertionExpression - * isEmptyStatement - * isJsxAttributeLike - * isJsxOpeningLikeElement - * isNonNullExpression - * isSyntaxList -* Utilities: - * getNextToken, getPreviousToken - * hasOwnThisReference - * getLineRanges - -# 1.0.0 - -**Features:** - -* Initial implementation of typeguards -* Utilities: - * getChildOfKind - * isNodeKind, isAssignmentKind - * hasModifier, isParameterProperty, hasAccessModifier - * getPreviousStatement, getNextStatement - * getPropertyName - * forEachDestructuringIdentifier, forEachDeclaredVariable - * getVariableDeclarationKind, isBlockScopedVariableDeclarationList, isBlockScopedVariableDeclaration - * isScopeBoundary, isFunctionScopeBoundary, isBlockScopeBoundary - * forEachToken, forEachTokenWithTrivia, forEachComment - * endsControlFlow diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/LICENSE b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/LICENSE deleted file mode 100644 index 3a990ff405..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017 Klaus Meinhardt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/README.md b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/README.md deleted file mode 100644 index a2363e6aca..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Utility functions for working with typescript's AST - -[![Greenkeeper badge](https://badges.greenkeeper.io/ajafff/tsutils.svg)](https://greenkeeper.io/) - -## Usage - -This package consists of two major parts: utilities and typeguard functions. -By importing the project you will get both of them. -```js -import * as utils from "tsutils"; -utils.isIdentifier(node); // typeguard -utils.getLineRanges(sourceFile); // utilities -``` - -If you don't need everything offered by this package, you can select what should be imported. The parts that are not imported are never read from disk and may save some startup time and reduce memory consumtion. - -If you only need typeguards you can explicitly import them: -```js -import { isIdentifier } from "tsutils/typeguard"; -// You can even distiguish between typeguards for nodes and types -import { isUnionTypeNode } from "tsutils/typeguard/node"; -import { isUnionType } from "tsutils/typeguard/type"; -``` - -If you only need the utilities you can also explicitly import them: -```js -import { forEachComment, forEachToken } from "tsutils/util"; -``` - -### Typescript version dependency - -This package is backwards compatible with typescript 2.8.0 at runtime although compiling might need a newer version of typescript installed. - -Using `typescript@next` might work, but it's not officially supported. If you encounter any bugs, please open an issue. - -For compatibility with older versions of TypeScript typeguard functions are separated by TypeScript version. If you are stuck on `typescript@2.8`, you should import directly from the submodule for that version: - -```js -// all typeguards compatible with typescript@2.8 -import { isIdentifier } from "tsutils/typeguard/2.8"; -// you can even use nested submodules -import { isIdentifier } from "tsutils/typeguard/2.8/node"; - -// all typeguards compatible with typescript@2.9 (includes those of 2.8) -import { isIdentifier } from "tsutils/typeguard/2.9"; - -// always points to the latest stable version (2.9 as of writing this) -import { isIdentifier } from "tsutils/typeguard"; -import { isIdentifier } from "tsutils"; - -// always points to the typeguards for the next TypeScript version (3.0 as of writing this) -import { isIdentifier } from "tsutils/typeguard/next"; -``` - -Note that if you are also using utility functions, you should prefer the relevant submodule: - -```js -// importing directly from 'tsutils' would pull in the latest typeguards -import { forEachToken } from 'tsutils/util'; -import { isIdentifier } from 'tsutils/typeguard/2.8'; -``` diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/index.d.ts deleted file mode 100644 index 26b9ee17cf..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './typeguard'; -export * from './util'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/index.js deleted file mode 100644 index 4ee8dc264b..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./typeguard"), exports); -tslib_1.__exportStar(require("./util"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/package.json b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/package.json deleted file mode 100644 index dbe0a20986..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "tsutils", - "version": "3.17.1", - "description": "utilities for working with typescript's AST", - "scripts": { - "compile": "rm -rf {,util,typeguard,test/**}/*.js; ttsc -p .", - "lint:tslint": "wotan -m @fimbul/valtyr", - "lint:wotan": "wotan", - "lint": "run-p lint:*", - "test": "mocha test/*Tests.js && tslint --test 'test/rules/**/tslint.json'", - "verify": "run-s compile lint coverage", - "prepublishOnly": "run-s verify", - "coverage": "nyc run-s test", - "report-coverage": "cat ./coverage/lcov.info | coveralls", - "github-release": "GITHUB_TOKEN=$(cat ~/github_token.txt) github-release-from-changelog", - "postpublish": "git push origin master --tags; run-s github-release" - }, - "repository": { - "type": "git", - "url": "https://github.com/ajafff/tsutils" - }, - "keywords": [ - "typescript", - "ts", - "ast", - "typeguard", - "utils", - "helper", - "node" - ], - "author": "Klaus Meinhardt", - "license": "MIT", - "devDependencies": { - "@fimbul/mithotyn": "^0.17.0", - "@fimbul/valtyr": "^0.20.0", - "@fimbul/wotan": "^0.20.0", - "@types/chai": "^4.0.10", - "@types/mocha": "^5.0.0", - "@types/node": "^11.13.0", - "chai": "^4.1.2", - "coveralls": "^3.0.0", - "github-release-from-changelog": "^1.3.0", - "mocha": "^6.0.2", - "npm-run-all": "^4.1.2", - "nyc": "^13.3.0", - "ts-transform-const-enum": "^0.0.1", - "tslint": "^5.8.0", - "tslint-consistent-codestyle": "^1.11.0", - "ttypescript": "^1.5.5", - "typescript": "^3.6.0-dev.20190804" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - }, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - } -} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/node.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/node.d.ts deleted file mode 100644 index c5aa5a9d10..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/node.d.ts +++ /dev/null @@ -1,155 +0,0 @@ -import * as ts from 'typescript'; -export declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclaration; -export declare function isArrayBindingPattern(node: ts.Node): node is ts.ArrayBindingPattern; -export declare function isArrayLiteralExpression(node: ts.Node): node is ts.ArrayLiteralExpression; -export declare function isArrayTypeNode(node: ts.Node): node is ts.ArrayTypeNode; -export declare function isArrowFunction(node: ts.Node): node is ts.ArrowFunction; -export declare function isAsExpression(node: ts.Node): node is ts.AsExpression; -export declare function isAssertionExpression(node: ts.Node): node is ts.AssertionExpression; -export declare function isAwaitExpression(node: ts.Node): node is ts.AwaitExpression; -export declare function isBinaryExpression(node: ts.Node): node is ts.BinaryExpression; -export declare function isBindingElement(node: ts.Node): node is ts.BindingElement; -export declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern; -export declare function isBlock(node: ts.Node): node is ts.Block; -export declare function isBlockLike(node: ts.Node): node is ts.BlockLike; -export declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral; -export declare function isBreakOrContinueStatement(node: ts.Node): node is ts.BreakOrContinueStatement; -export declare function isBreakStatement(node: ts.Node): node is ts.BreakStatement; -export declare function isCallExpression(node: ts.Node): node is ts.CallExpression; -export declare function isCallLikeExpression(node: ts.Node): node is ts.CallLikeExpression; -export declare function isCallSignatureDeclaration(node: ts.Node): node is ts.CallSignatureDeclaration; -export declare function isCaseBlock(node: ts.Node): node is ts.CaseBlock; -export declare function isCaseClause(node: ts.Node): node is ts.CaseClause; -export declare function isCaseOrDefaultClause(node: ts.Node): node is ts.CaseOrDefaultClause; -export declare function isCatchClause(node: ts.Node): node is ts.CatchClause; -export declare function isClassDeclaration(node: ts.Node): node is ts.ClassDeclaration; -export declare function isClassExpression(node: ts.Node): node is ts.ClassExpression; -export declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDeclaration; -export declare function isCommaListExpression(node: ts.Node): node is ts.CommaListExpression; -export declare function isConditionalExpression(node: ts.Node): node is ts.ConditionalExpression; -export declare function isConditionalTypeNode(node: ts.Node): node is ts.ConditionalTypeNode; -export declare function isConstructorDeclaration(node: ts.Node): node is ts.ConstructorDeclaration; -export declare function isConstructorTypeNode(node: ts.Node): node is ts.ConstructorTypeNode; -export declare function isConstructSignatureDeclaration(node: ts.Node): node is ts.ConstructSignatureDeclaration; -export declare function isContinueStatement(node: ts.Node): node is ts.ContinueStatement; -export declare function isComputedPropertyName(node: ts.Node): node is ts.ComputedPropertyName; -export declare function isDebuggerStatement(node: ts.Node): node is ts.DebuggerStatement; -export declare function isDecorator(node: ts.Node): node is ts.Decorator; -export declare function isDefaultClause(node: ts.Node): node is ts.DefaultClause; -export declare function isDeleteExpression(node: ts.Node): node is ts.DeleteExpression; -export declare function isDoStatement(node: ts.Node): node is ts.DoStatement; -export declare function isElementAccessExpression(node: ts.Node): node is ts.ElementAccessExpression; -export declare function isEmptyStatement(node: ts.Node): node is ts.EmptyStatement; -export declare function isEntityName(node: ts.Node): node is ts.EntityName; -export declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExpression; -export declare function isEnumDeclaration(node: ts.Node): node is ts.EnumDeclaration; -export declare function isEnumMember(node: ts.Node): node is ts.EnumMember; -export declare function isExportAssignment(node: ts.Node): node is ts.ExportAssignment; -export declare function isExportDeclaration(node: ts.Node): node is ts.ExportDeclaration; -export declare function isExportSpecifier(node: ts.Node): node is ts.ExportSpecifier; -export declare function isExpression(node: ts.Node): node is ts.Expression; -export declare function isExpressionStatement(node: ts.Node): node is ts.ExpressionStatement; -export declare function isExpressionWithTypeArguments(node: ts.Node): node is ts.ExpressionWithTypeArguments; -export declare function isExternalModuleReference(node: ts.Node): node is ts.ExternalModuleReference; -export declare function isForInStatement(node: ts.Node): node is ts.ForInStatement; -export declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatement; -export declare function isForOfStatement(node: ts.Node): node is ts.ForOfStatement; -export declare function isForStatement(node: ts.Node): node is ts.ForStatement; -export declare function isFunctionDeclaration(node: ts.Node): node is ts.FunctionDeclaration; -export declare function isFunctionExpression(node: ts.Node): node is ts.FunctionExpression; -export declare function isFunctionTypeNode(node: ts.Node): node is ts.FunctionTypeNode; -export declare function isGetAccessorDeclaration(node: ts.Node): node is ts.GetAccessorDeclaration; -export declare function isIdentifier(node: ts.Node): node is ts.Identifier; -export declare function isIfStatement(node: ts.Node): node is ts.IfStatement; -export declare function isImportClause(node: ts.Node): node is ts.ImportClause; -export declare function isImportDeclaration(node: ts.Node): node is ts.ImportDeclaration; -export declare function isImportEqualsDeclaration(node: ts.Node): node is ts.ImportEqualsDeclaration; -export declare function isImportSpecifier(node: ts.Node): node is ts.ImportSpecifier; -export declare function isIndexedAccessTypeNode(node: ts.Node): node is ts.IndexedAccessTypeNode; -export declare function isIndexSignatureDeclaration(node: ts.Node): node is ts.IndexSignatureDeclaration; -export declare function isInferTypeNode(node: ts.Node): node is ts.InferTypeNode; -export declare function isInterfaceDeclaration(node: ts.Node): node is ts.InterfaceDeclaration; -export declare function isIntersectionTypeNode(node: ts.Node): node is ts.IntersectionTypeNode; -export declare function isIterationStatement(node: ts.Node): node is ts.IterationStatement; -export declare function isJsDoc(node: ts.Node): node is ts.JSDoc; -export declare function isJsxAttribute(node: ts.Node): node is ts.JsxAttribute; -export declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike; -export declare function isJsxAttributes(node: ts.Node): node is ts.JsxAttributes; -export declare function isJsxClosingElement(node: ts.Node): node is ts.JsxClosingElement; -export declare function isJsxClosingFragment(node: ts.Node): node is ts.JsxClosingFragment; -export declare function isJsxElement(node: ts.Node): node is ts.JsxElement; -export declare function isJsxExpression(node: ts.Node): node is ts.JsxExpression; -export declare function isJsxFragment(node: ts.Node): node is ts.JsxFragment; -export declare function isJsxOpeningElement(node: ts.Node): node is ts.JsxOpeningElement; -export declare function isJsxOpeningFragment(node: ts.Node): node is ts.JsxOpeningFragment; -export declare function isJsxOpeningLikeElement(node: ts.Node): node is ts.JsxOpeningLikeElement; -export declare function isJsxSelfClosingElement(node: ts.Node): node is ts.JsxSelfClosingElement; -export declare function isJsxSpreadAttribute(node: ts.Node): node is ts.JsxSpreadAttribute; -export declare function isJsxText(node: ts.Node): node is ts.JsxText; -export declare function isLabeledStatement(node: ts.Node): node is ts.LabeledStatement; -export declare function isLiteralExpression(node: ts.Node): node is ts.LiteralExpression; -export declare function isLiteralTypeNode(node: ts.Node): node is ts.LiteralTypeNode; -export declare function isMappedTypeNode(node: ts.Node): node is ts.MappedTypeNode; -export declare function isMetaProperty(node: ts.Node): node is ts.MetaProperty; -export declare function isMethodDeclaration(node: ts.Node): node is ts.MethodDeclaration; -export declare function isMethodSignature(node: ts.Node): node is ts.MethodSignature; -export declare function isModuleBlock(node: ts.Node): node is ts.ModuleBlock; -export declare function isModuleDeclaration(node: ts.Node): node is ts.ModuleDeclaration; -export declare function isNamedExports(node: ts.Node): node is ts.NamedExports; -export declare function isNamedImports(node: ts.Node): node is ts.NamedImports; -export declare function isNamespaceDeclaration(node: ts.Node): node is ts.NamespaceDeclaration; -export declare function isNamespaceImport(node: ts.Node): node is ts.NamespaceImport; -export declare function isNamespaceExportDeclaration(node: ts.Node): node is ts.NamespaceExportDeclaration; -export declare function isNewExpression(node: ts.Node): node is ts.NewExpression; -export declare function isNonNullExpression(node: ts.Node): node is ts.NonNullExpression; -export declare function isNoSubstitutionTemplateLiteral(node: ts.Node): node is ts.NoSubstitutionTemplateLiteral; -export declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral; -export declare function isNumericLiteral(node: ts.Node): node is ts.NumericLiteral; -export declare function isNumericOrStringLikeLiteral(node: ts.Node): node is ts.NumericLiteral | ts.StringLiteral | ts.NoSubstitutionTemplateLiteral; -export declare function isObjectBindingPattern(node: ts.Node): node is ts.ObjectBindingPattern; -export declare function isObjectLiteralExpression(node: ts.Node): node is ts.ObjectLiteralExpression; -export declare function isOmittedExpression(node: ts.Node): node is ts.OmittedExpression; -export declare function isParameterDeclaration(node: ts.Node): node is ts.ParameterDeclaration; -export declare function isParenthesizedExpression(node: ts.Node): node is ts.ParenthesizedExpression; -export declare function isParenthesizedTypeNode(node: ts.Node): node is ts.ParenthesizedTypeNode; -export declare function isPostfixUnaryExpression(node: ts.Node): node is ts.PostfixUnaryExpression; -export declare function isPrefixUnaryExpression(node: ts.Node): node is ts.PrefixUnaryExpression; -export declare function isPropertyAccessExpression(node: ts.Node): node is ts.PropertyAccessExpression; -export declare function isPropertyAssignment(node: ts.Node): node is ts.PropertyAssignment; -export declare function isPropertyDeclaration(node: ts.Node): node is ts.PropertyDeclaration; -export declare function isPropertySignature(node: ts.Node): node is ts.PropertySignature; -export declare function isQualifiedName(node: ts.Node): node is ts.QualifiedName; -export declare function isRegularExpressionLiteral(node: ts.Node): node is ts.RegularExpressionLiteral; -export declare function isReturnStatement(node: ts.Node): node is ts.ReturnStatement; -export declare function isSetAccessorDeclaration(node: ts.Node): node is ts.SetAccessorDeclaration; -export declare function isShorthandPropertyAssignment(node: ts.Node): node is ts.ShorthandPropertyAssignment; -export declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDeclaration; -export declare function isSourceFile(node: ts.Node): node is ts.SourceFile; -export declare function isSpreadAssignment(node: ts.Node): node is ts.SpreadAssignment; -export declare function isSpreadElement(node: ts.Node): node is ts.SpreadElement; -export declare function isStringLiteral(node: ts.Node): node is ts.StringLiteral; -export declare function isSwitchStatement(node: ts.Node): node is ts.SwitchStatement; -export declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList; -export declare function isTaggedTemplateExpression(node: ts.Node): node is ts.TaggedTemplateExpression; -export declare function isTemplateExpression(node: ts.Node): node is ts.TemplateExpression; -export declare function isTemplateLiteral(node: ts.Node): node is ts.TemplateLiteral; -export declare function isTextualLiteral(node: ts.Node): node is ts.StringLiteral | ts.NoSubstitutionTemplateLiteral; -export declare function isThrowStatement(node: ts.Node): node is ts.ThrowStatement; -export declare function isTryStatement(node: ts.Node): node is ts.TryStatement; -export declare function isTupleTypeNode(node: ts.Node): node is ts.TupleTypeNode; -export declare function isTypeAliasDeclaration(node: ts.Node): node is ts.TypeAliasDeclaration; -export declare function isTypeAssertion(node: ts.Node): node is ts.TypeAssertion; -export declare function isTypeLiteralNode(node: ts.Node): node is ts.TypeLiteralNode; -export declare function isTypeOfExpression(node: ts.Node): node is ts.TypeOfExpression; -export declare function isTypeOperatorNode(node: ts.Node): node is ts.TypeOperatorNode; -export declare function isTypeParameterDeclaration(node: ts.Node): node is ts.TypeParameterDeclaration; -export declare function isTypePredicateNode(node: ts.Node): node is ts.TypePredicateNode; -export declare function isTypeReferenceNode(node: ts.Node): node is ts.TypeReferenceNode; -export declare function isTypeQueryNode(node: ts.Node): node is ts.TypeQueryNode; -export declare function isUnionTypeNode(node: ts.Node): node is ts.UnionTypeNode; -export declare function isVariableDeclaration(node: ts.Node): node is ts.VariableDeclaration; -export declare function isVariableStatement(node: ts.Node): node is ts.VariableStatement; -export declare function isVariableDeclarationList(node: ts.Node): node is ts.VariableDeclarationList; -export declare function isVoidExpression(node: ts.Node): node is ts.VoidExpression; -export declare function isWhileStatement(node: ts.Node): node is ts.WhileStatement; -export declare function isWithStatement(node: ts.Node): node is ts.WithStatement; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/node.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/node.js deleted file mode 100644 index b63a09be91..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/node.js +++ /dev/null @@ -1,709 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -function isAccessorDeclaration(node) { - return node.kind === ts.SyntaxKind.GetAccessor || - node.kind === ts.SyntaxKind.SetAccessor; -} -exports.isAccessorDeclaration = isAccessorDeclaration; -function isArrayBindingPattern(node) { - return node.kind === ts.SyntaxKind.ArrayBindingPattern; -} -exports.isArrayBindingPattern = isArrayBindingPattern; -function isArrayLiteralExpression(node) { - return node.kind === ts.SyntaxKind.ArrayLiteralExpression; -} -exports.isArrayLiteralExpression = isArrayLiteralExpression; -function isArrayTypeNode(node) { - return node.kind === ts.SyntaxKind.ArrayType; -} -exports.isArrayTypeNode = isArrayTypeNode; -function isArrowFunction(node) { - return node.kind === ts.SyntaxKind.ArrowFunction; -} -exports.isArrowFunction = isArrowFunction; -function isAsExpression(node) { - return node.kind === ts.SyntaxKind.AsExpression; -} -exports.isAsExpression = isAsExpression; -function isAssertionExpression(node) { - return node.kind === ts.SyntaxKind.AsExpression || - node.kind === ts.SyntaxKind.TypeAssertionExpression; -} -exports.isAssertionExpression = isAssertionExpression; -function isAwaitExpression(node) { - return node.kind === ts.SyntaxKind.AwaitExpression; -} -exports.isAwaitExpression = isAwaitExpression; -function isBinaryExpression(node) { - return node.kind === ts.SyntaxKind.BinaryExpression; -} -exports.isBinaryExpression = isBinaryExpression; -function isBindingElement(node) { - return node.kind === ts.SyntaxKind.BindingElement; -} -exports.isBindingElement = isBindingElement; -function isBindingPattern(node) { - return node.kind === ts.SyntaxKind.ArrayBindingPattern || - node.kind === ts.SyntaxKind.ObjectBindingPattern; -} -exports.isBindingPattern = isBindingPattern; -function isBlock(node) { - return node.kind === ts.SyntaxKind.Block; -} -exports.isBlock = isBlock; -function isBlockLike(node) { - return node.statements !== undefined; -} -exports.isBlockLike = isBlockLike; -function isBooleanLiteral(node) { - return node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword; -} -exports.isBooleanLiteral = isBooleanLiteral; -function isBreakOrContinueStatement(node) { - return node.kind === ts.SyntaxKind.BreakStatement || - node.kind === ts.SyntaxKind.ContinueStatement; -} -exports.isBreakOrContinueStatement = isBreakOrContinueStatement; -function isBreakStatement(node) { - return node.kind === ts.SyntaxKind.BreakStatement; -} -exports.isBreakStatement = isBreakStatement; -function isCallExpression(node) { - return node.kind === ts.SyntaxKind.CallExpression; -} -exports.isCallExpression = isCallExpression; -function isCallLikeExpression(node) { - switch (node.kind) { - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.Decorator: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.TaggedTemplateExpression: - return true; - default: - return false; - } -} -exports.isCallLikeExpression = isCallLikeExpression; -function isCallSignatureDeclaration(node) { - return node.kind === ts.SyntaxKind.CallSignature; -} -exports.isCallSignatureDeclaration = isCallSignatureDeclaration; -function isCaseBlock(node) { - return node.kind === ts.SyntaxKind.CaseBlock; -} -exports.isCaseBlock = isCaseBlock; -function isCaseClause(node) { - return node.kind === ts.SyntaxKind.CaseClause; -} -exports.isCaseClause = isCaseClause; -function isCaseOrDefaultClause(node) { - return node.kind === ts.SyntaxKind.CaseClause || - node.kind === ts.SyntaxKind.DefaultClause; -} -exports.isCaseOrDefaultClause = isCaseOrDefaultClause; -function isCatchClause(node) { - return node.kind === ts.SyntaxKind.CatchClause; -} -exports.isCatchClause = isCatchClause; -function isClassDeclaration(node) { - return node.kind === ts.SyntaxKind.ClassDeclaration; -} -exports.isClassDeclaration = isClassDeclaration; -function isClassExpression(node) { - return node.kind === ts.SyntaxKind.ClassExpression; -} -exports.isClassExpression = isClassExpression; -function isClassLikeDeclaration(node) { - return node.kind === ts.SyntaxKind.ClassDeclaration || - node.kind === ts.SyntaxKind.ClassExpression; -} -exports.isClassLikeDeclaration = isClassLikeDeclaration; -function isCommaListExpression(node) { - return node.kind === ts.SyntaxKind.CommaListExpression; -} -exports.isCommaListExpression = isCommaListExpression; -function isConditionalExpression(node) { - return node.kind === ts.SyntaxKind.ConditionalExpression; -} -exports.isConditionalExpression = isConditionalExpression; -function isConditionalTypeNode(node) { - return node.kind === ts.SyntaxKind.ConditionalType; -} -exports.isConditionalTypeNode = isConditionalTypeNode; -function isConstructorDeclaration(node) { - return node.kind === ts.SyntaxKind.Constructor; -} -exports.isConstructorDeclaration = isConstructorDeclaration; -function isConstructorTypeNode(node) { - return node.kind === ts.SyntaxKind.ConstructorType; -} -exports.isConstructorTypeNode = isConstructorTypeNode; -function isConstructSignatureDeclaration(node) { - return node.kind === ts.SyntaxKind.ConstructSignature; -} -exports.isConstructSignatureDeclaration = isConstructSignatureDeclaration; -function isContinueStatement(node) { - return node.kind === ts.SyntaxKind.ContinueStatement; -} -exports.isContinueStatement = isContinueStatement; -function isComputedPropertyName(node) { - return node.kind === ts.SyntaxKind.ComputedPropertyName; -} -exports.isComputedPropertyName = isComputedPropertyName; -function isDebuggerStatement(node) { - return node.kind === ts.SyntaxKind.DebuggerStatement; -} -exports.isDebuggerStatement = isDebuggerStatement; -function isDecorator(node) { - return node.kind === ts.SyntaxKind.Decorator; -} -exports.isDecorator = isDecorator; -function isDefaultClause(node) { - return node.kind === ts.SyntaxKind.DefaultClause; -} -exports.isDefaultClause = isDefaultClause; -function isDeleteExpression(node) { - return node.kind === ts.SyntaxKind.DeleteExpression; -} -exports.isDeleteExpression = isDeleteExpression; -function isDoStatement(node) { - return node.kind === ts.SyntaxKind.DoStatement; -} -exports.isDoStatement = isDoStatement; -function isElementAccessExpression(node) { - return node.kind === ts.SyntaxKind.ElementAccessExpression; -} -exports.isElementAccessExpression = isElementAccessExpression; -function isEmptyStatement(node) { - return node.kind === ts.SyntaxKind.EmptyStatement; -} -exports.isEmptyStatement = isEmptyStatement; -function isEntityName(node) { - return node.kind === ts.SyntaxKind.Identifier || isQualifiedName(node); -} -exports.isEntityName = isEntityName; -function isEntityNameExpression(node) { - return node.kind === ts.SyntaxKind.Identifier || - isPropertyAccessExpression(node) && isEntityNameExpression(node.expression); -} -exports.isEntityNameExpression = isEntityNameExpression; -function isEnumDeclaration(node) { - return node.kind === ts.SyntaxKind.EnumDeclaration; -} -exports.isEnumDeclaration = isEnumDeclaration; -function isEnumMember(node) { - return node.kind === ts.SyntaxKind.EnumMember; -} -exports.isEnumMember = isEnumMember; -function isExportAssignment(node) { - return node.kind === ts.SyntaxKind.ExportAssignment; -} -exports.isExportAssignment = isExportAssignment; -function isExportDeclaration(node) { - return node.kind === ts.SyntaxKind.ExportDeclaration; -} -exports.isExportDeclaration = isExportDeclaration; -function isExportSpecifier(node) { - return node.kind === ts.SyntaxKind.ExportSpecifier; -} -exports.isExportSpecifier = isExportSpecifier; -function isExpression(node) { - switch (node.kind) { - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.AsExpression: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.BinaryExpression: - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.CommaListExpression: - case ts.SyntaxKind.ConditionalExpression: - case ts.SyntaxKind.DeleteExpression: - case ts.SyntaxKind.ElementAccessExpression: - case ts.SyntaxKind.FalseKeyword: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.Identifier: - case ts.SyntaxKind.JsxElement: - case ts.SyntaxKind.JsxFragment: - case ts.SyntaxKind.JsxExpression: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxOpeningFragment: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.MetaProperty: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.NonNullExpression: - case ts.SyntaxKind.NoSubstitutionTemplateLiteral: - case ts.SyntaxKind.NullKeyword: - case ts.SyntaxKind.NumericLiteral: - case ts.SyntaxKind.ObjectLiteralExpression: - case ts.SyntaxKind.OmittedExpression: - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.PostfixUnaryExpression: - case ts.SyntaxKind.PrefixUnaryExpression: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.RegularExpressionLiteral: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.StringLiteral: - case ts.SyntaxKind.SuperKeyword: - case ts.SyntaxKind.TaggedTemplateExpression: - case ts.SyntaxKind.TemplateExpression: - case ts.SyntaxKind.ThisKeyword: - case ts.SyntaxKind.TrueKeyword: - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.VoidExpression: - case ts.SyntaxKind.YieldExpression: - return true; - default: - return false; - } -} -exports.isExpression = isExpression; -function isExpressionStatement(node) { - return node.kind === ts.SyntaxKind.ExpressionStatement; -} -exports.isExpressionStatement = isExpressionStatement; -function isExpressionWithTypeArguments(node) { - return node.kind === ts.SyntaxKind.ExpressionWithTypeArguments; -} -exports.isExpressionWithTypeArguments = isExpressionWithTypeArguments; -function isExternalModuleReference(node) { - return node.kind === ts.SyntaxKind.ExternalModuleReference; -} -exports.isExternalModuleReference = isExternalModuleReference; -function isForInStatement(node) { - return node.kind === ts.SyntaxKind.ForInStatement; -} -exports.isForInStatement = isForInStatement; -function isForInOrOfStatement(node) { - return node.kind === ts.SyntaxKind.ForOfStatement || node.kind === ts.SyntaxKind.ForInStatement; -} -exports.isForInOrOfStatement = isForInOrOfStatement; -function isForOfStatement(node) { - return node.kind === ts.SyntaxKind.ForOfStatement; -} -exports.isForOfStatement = isForOfStatement; -function isForStatement(node) { - return node.kind === ts.SyntaxKind.ForStatement; -} -exports.isForStatement = isForStatement; -function isFunctionDeclaration(node) { - return node.kind === ts.SyntaxKind.FunctionDeclaration; -} -exports.isFunctionDeclaration = isFunctionDeclaration; -function isFunctionExpression(node) { - return node.kind === ts.SyntaxKind.FunctionExpression; -} -exports.isFunctionExpression = isFunctionExpression; -function isFunctionTypeNode(node) { - return node.kind === ts.SyntaxKind.FunctionType; -} -exports.isFunctionTypeNode = isFunctionTypeNode; -function isGetAccessorDeclaration(node) { - return node.kind === ts.SyntaxKind.GetAccessor; -} -exports.isGetAccessorDeclaration = isGetAccessorDeclaration; -function isIdentifier(node) { - return node.kind === ts.SyntaxKind.Identifier; -} -exports.isIdentifier = isIdentifier; -function isIfStatement(node) { - return node.kind === ts.SyntaxKind.IfStatement; -} -exports.isIfStatement = isIfStatement; -function isImportClause(node) { - return node.kind === ts.SyntaxKind.ImportClause; -} -exports.isImportClause = isImportClause; -function isImportDeclaration(node) { - return node.kind === ts.SyntaxKind.ImportDeclaration; -} -exports.isImportDeclaration = isImportDeclaration; -function isImportEqualsDeclaration(node) { - return node.kind === ts.SyntaxKind.ImportEqualsDeclaration; -} -exports.isImportEqualsDeclaration = isImportEqualsDeclaration; -function isImportSpecifier(node) { - return node.kind === ts.SyntaxKind.ImportSpecifier; -} -exports.isImportSpecifier = isImportSpecifier; -function isIndexedAccessTypeNode(node) { - return node.kind === ts.SyntaxKind.IndexedAccessType; -} -exports.isIndexedAccessTypeNode = isIndexedAccessTypeNode; -function isIndexSignatureDeclaration(node) { - return node.kind === ts.SyntaxKind.IndexSignature; -} -exports.isIndexSignatureDeclaration = isIndexSignatureDeclaration; -function isInferTypeNode(node) { - return node.kind === ts.SyntaxKind.InferType; -} -exports.isInferTypeNode = isInferTypeNode; -function isInterfaceDeclaration(node) { - return node.kind === ts.SyntaxKind.InterfaceDeclaration; -} -exports.isInterfaceDeclaration = isInterfaceDeclaration; -function isIntersectionTypeNode(node) { - return node.kind === ts.SyntaxKind.IntersectionType; -} -exports.isIntersectionTypeNode = isIntersectionTypeNode; -function isIterationStatement(node) { - switch (node.kind) { - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - return true; - default: - return false; - } -} -exports.isIterationStatement = isIterationStatement; -function isJsDoc(node) { - return node.kind === ts.SyntaxKind.JSDocComment; -} -exports.isJsDoc = isJsDoc; -function isJsxAttribute(node) { - return node.kind === ts.SyntaxKind.JsxAttribute; -} -exports.isJsxAttribute = isJsxAttribute; -function isJsxAttributeLike(node) { - return node.kind === ts.SyntaxKind.JsxAttribute || - node.kind === ts.SyntaxKind.JsxSpreadAttribute; -} -exports.isJsxAttributeLike = isJsxAttributeLike; -function isJsxAttributes(node) { - return node.kind === ts.SyntaxKind.JsxAttributes; -} -exports.isJsxAttributes = isJsxAttributes; -function isJsxClosingElement(node) { - return node.kind === ts.SyntaxKind.JsxClosingElement; -} -exports.isJsxClosingElement = isJsxClosingElement; -function isJsxClosingFragment(node) { - return node.kind === ts.SyntaxKind.JsxClosingFragment; -} -exports.isJsxClosingFragment = isJsxClosingFragment; -function isJsxElement(node) { - return node.kind === ts.SyntaxKind.JsxElement; -} -exports.isJsxElement = isJsxElement; -function isJsxExpression(node) { - return node.kind === ts.SyntaxKind.JsxExpression; -} -exports.isJsxExpression = isJsxExpression; -function isJsxFragment(node) { - return node.kind === ts.SyntaxKind.JsxFragment; -} -exports.isJsxFragment = isJsxFragment; -function isJsxOpeningElement(node) { - return node.kind === ts.SyntaxKind.JsxOpeningElement; -} -exports.isJsxOpeningElement = isJsxOpeningElement; -function isJsxOpeningFragment(node) { - return node.kind === ts.SyntaxKind.JsxOpeningFragment; -} -exports.isJsxOpeningFragment = isJsxOpeningFragment; -function isJsxOpeningLikeElement(node) { - return node.kind === ts.SyntaxKind.JsxOpeningElement || - node.kind === ts.SyntaxKind.JsxSelfClosingElement; -} -exports.isJsxOpeningLikeElement = isJsxOpeningLikeElement; -function isJsxSelfClosingElement(node) { - return node.kind === ts.SyntaxKind.JsxSelfClosingElement; -} -exports.isJsxSelfClosingElement = isJsxSelfClosingElement; -function isJsxSpreadAttribute(node) { - return node.kind === ts.SyntaxKind.JsxSpreadAttribute; -} -exports.isJsxSpreadAttribute = isJsxSpreadAttribute; -function isJsxText(node) { - return node.kind === ts.SyntaxKind.JsxText; -} -exports.isJsxText = isJsxText; -function isLabeledStatement(node) { - return node.kind === ts.SyntaxKind.LabeledStatement; -} -exports.isLabeledStatement = isLabeledStatement; -function isLiteralExpression(node) { - return node.kind >= ts.SyntaxKind.FirstLiteralToken && - node.kind <= ts.SyntaxKind.LastLiteralToken; -} -exports.isLiteralExpression = isLiteralExpression; -function isLiteralTypeNode(node) { - return node.kind === ts.SyntaxKind.LiteralType; -} -exports.isLiteralTypeNode = isLiteralTypeNode; -function isMappedTypeNode(node) { - return node.kind === ts.SyntaxKind.MappedType; -} -exports.isMappedTypeNode = isMappedTypeNode; -function isMetaProperty(node) { - return node.kind === ts.SyntaxKind.MetaProperty; -} -exports.isMetaProperty = isMetaProperty; -function isMethodDeclaration(node) { - return node.kind === ts.SyntaxKind.MethodDeclaration; -} -exports.isMethodDeclaration = isMethodDeclaration; -function isMethodSignature(node) { - return node.kind === ts.SyntaxKind.MethodSignature; -} -exports.isMethodSignature = isMethodSignature; -function isModuleBlock(node) { - return node.kind === ts.SyntaxKind.ModuleBlock; -} -exports.isModuleBlock = isModuleBlock; -function isModuleDeclaration(node) { - return node.kind === ts.SyntaxKind.ModuleDeclaration; -} -exports.isModuleDeclaration = isModuleDeclaration; -function isNamedExports(node) { - return node.kind === ts.SyntaxKind.NamedExports; -} -exports.isNamedExports = isNamedExports; -function isNamedImports(node) { - return node.kind === ts.SyntaxKind.NamedImports; -} -exports.isNamedImports = isNamedImports; -function isNamespaceDeclaration(node) { - return isModuleDeclaration(node) && - node.name.kind === ts.SyntaxKind.Identifier && - node.body !== undefined && - (node.body.kind === ts.SyntaxKind.ModuleBlock || - isNamespaceDeclaration(node.body)); -} -exports.isNamespaceDeclaration = isNamespaceDeclaration; -function isNamespaceImport(node) { - return node.kind === ts.SyntaxKind.NamespaceImport; -} -exports.isNamespaceImport = isNamespaceImport; -function isNamespaceExportDeclaration(node) { - return node.kind === ts.SyntaxKind.NamespaceExportDeclaration; -} -exports.isNamespaceExportDeclaration = isNamespaceExportDeclaration; -function isNewExpression(node) { - return node.kind === ts.SyntaxKind.NewExpression; -} -exports.isNewExpression = isNewExpression; -function isNonNullExpression(node) { - return node.kind === ts.SyntaxKind.NonNullExpression; -} -exports.isNonNullExpression = isNonNullExpression; -function isNoSubstitutionTemplateLiteral(node) { - return node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral; -} -exports.isNoSubstitutionTemplateLiteral = isNoSubstitutionTemplateLiteral; -function isNullLiteral(node) { - return node.kind === ts.SyntaxKind.NullKeyword; -} -exports.isNullLiteral = isNullLiteral; -function isNumericLiteral(node) { - return node.kind === ts.SyntaxKind.NumericLiteral; -} -exports.isNumericLiteral = isNumericLiteral; -function isNumericOrStringLikeLiteral(node) { - switch (node.kind) { - case ts.SyntaxKind.StringLiteral: - case ts.SyntaxKind.NumericLiteral: - case ts.SyntaxKind.NoSubstitutionTemplateLiteral: - return true; - default: - return false; - } -} -exports.isNumericOrStringLikeLiteral = isNumericOrStringLikeLiteral; -function isObjectBindingPattern(node) { - return node.kind === ts.SyntaxKind.ObjectBindingPattern; -} -exports.isObjectBindingPattern = isObjectBindingPattern; -function isObjectLiteralExpression(node) { - return node.kind === ts.SyntaxKind.ObjectLiteralExpression; -} -exports.isObjectLiteralExpression = isObjectLiteralExpression; -function isOmittedExpression(node) { - return node.kind === ts.SyntaxKind.OmittedExpression; -} -exports.isOmittedExpression = isOmittedExpression; -function isParameterDeclaration(node) { - return node.kind === ts.SyntaxKind.Parameter; -} -exports.isParameterDeclaration = isParameterDeclaration; -function isParenthesizedExpression(node) { - return node.kind === ts.SyntaxKind.ParenthesizedExpression; -} -exports.isParenthesizedExpression = isParenthesizedExpression; -function isParenthesizedTypeNode(node) { - return node.kind === ts.SyntaxKind.ParenthesizedType; -} -exports.isParenthesizedTypeNode = isParenthesizedTypeNode; -function isPostfixUnaryExpression(node) { - return node.kind === ts.SyntaxKind.PostfixUnaryExpression; -} -exports.isPostfixUnaryExpression = isPostfixUnaryExpression; -function isPrefixUnaryExpression(node) { - return node.kind === ts.SyntaxKind.PrefixUnaryExpression; -} -exports.isPrefixUnaryExpression = isPrefixUnaryExpression; -function isPropertyAccessExpression(node) { - return node.kind === ts.SyntaxKind.PropertyAccessExpression; -} -exports.isPropertyAccessExpression = isPropertyAccessExpression; -function isPropertyAssignment(node) { - return node.kind === ts.SyntaxKind.PropertyAssignment; -} -exports.isPropertyAssignment = isPropertyAssignment; -function isPropertyDeclaration(node) { - return node.kind === ts.SyntaxKind.PropertyDeclaration; -} -exports.isPropertyDeclaration = isPropertyDeclaration; -function isPropertySignature(node) { - return node.kind === ts.SyntaxKind.PropertySignature; -} -exports.isPropertySignature = isPropertySignature; -function isQualifiedName(node) { - return node.kind === ts.SyntaxKind.QualifiedName; -} -exports.isQualifiedName = isQualifiedName; -function isRegularExpressionLiteral(node) { - return node.kind === ts.SyntaxKind.RegularExpressionLiteral; -} -exports.isRegularExpressionLiteral = isRegularExpressionLiteral; -function isReturnStatement(node) { - return node.kind === ts.SyntaxKind.ReturnStatement; -} -exports.isReturnStatement = isReturnStatement; -function isSetAccessorDeclaration(node) { - return node.kind === ts.SyntaxKind.SetAccessor; -} -exports.isSetAccessorDeclaration = isSetAccessorDeclaration; -function isShorthandPropertyAssignment(node) { - return node.kind === ts.SyntaxKind.ShorthandPropertyAssignment; -} -exports.isShorthandPropertyAssignment = isShorthandPropertyAssignment; -function isSignatureDeclaration(node) { - return node.parameters !== undefined; -} -exports.isSignatureDeclaration = isSignatureDeclaration; -function isSourceFile(node) { - return node.kind === ts.SyntaxKind.SourceFile; -} -exports.isSourceFile = isSourceFile; -function isSpreadAssignment(node) { - return node.kind === ts.SyntaxKind.SpreadAssignment; -} -exports.isSpreadAssignment = isSpreadAssignment; -function isSpreadElement(node) { - return node.kind === ts.SyntaxKind.SpreadElement; -} -exports.isSpreadElement = isSpreadElement; -function isStringLiteral(node) { - return node.kind === ts.SyntaxKind.StringLiteral; -} -exports.isStringLiteral = isStringLiteral; -function isSwitchStatement(node) { - return node.kind === ts.SyntaxKind.SwitchStatement; -} -exports.isSwitchStatement = isSwitchStatement; -function isSyntaxList(node) { - return node.kind === ts.SyntaxKind.SyntaxList; -} -exports.isSyntaxList = isSyntaxList; -function isTaggedTemplateExpression(node) { - return node.kind === ts.SyntaxKind.TaggedTemplateExpression; -} -exports.isTaggedTemplateExpression = isTaggedTemplateExpression; -function isTemplateExpression(node) { - return node.kind === ts.SyntaxKind.TemplateExpression; -} -exports.isTemplateExpression = isTemplateExpression; -function isTemplateLiteral(node) { - return node.kind === ts.SyntaxKind.TemplateExpression || - node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral; -} -exports.isTemplateLiteral = isTemplateLiteral; -function isTextualLiteral(node) { - return node.kind === ts.SyntaxKind.StringLiteral || - node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral; -} -exports.isTextualLiteral = isTextualLiteral; -function isThrowStatement(node) { - return node.kind === ts.SyntaxKind.ThrowStatement; -} -exports.isThrowStatement = isThrowStatement; -function isTryStatement(node) { - return node.kind === ts.SyntaxKind.TryStatement; -} -exports.isTryStatement = isTryStatement; -function isTupleTypeNode(node) { - return node.kind === ts.SyntaxKind.TupleType; -} -exports.isTupleTypeNode = isTupleTypeNode; -function isTypeAliasDeclaration(node) { - return node.kind === ts.SyntaxKind.TypeAliasDeclaration; -} -exports.isTypeAliasDeclaration = isTypeAliasDeclaration; -function isTypeAssertion(node) { - return node.kind === ts.SyntaxKind.TypeAssertionExpression; -} -exports.isTypeAssertion = isTypeAssertion; -function isTypeLiteralNode(node) { - return node.kind === ts.SyntaxKind.TypeLiteral; -} -exports.isTypeLiteralNode = isTypeLiteralNode; -function isTypeOfExpression(node) { - return node.kind === ts.SyntaxKind.TypeOfExpression; -} -exports.isTypeOfExpression = isTypeOfExpression; -function isTypeOperatorNode(node) { - return node.kind === ts.SyntaxKind.TypeOperator; -} -exports.isTypeOperatorNode = isTypeOperatorNode; -function isTypeParameterDeclaration(node) { - return node.kind === ts.SyntaxKind.TypeParameter; -} -exports.isTypeParameterDeclaration = isTypeParameterDeclaration; -function isTypePredicateNode(node) { - return node.kind === ts.SyntaxKind.TypePredicate; -} -exports.isTypePredicateNode = isTypePredicateNode; -function isTypeReferenceNode(node) { - return node.kind === ts.SyntaxKind.TypeReference; -} -exports.isTypeReferenceNode = isTypeReferenceNode; -function isTypeQueryNode(node) { - return node.kind === ts.SyntaxKind.TypeQuery; -} -exports.isTypeQueryNode = isTypeQueryNode; -function isUnionTypeNode(node) { - return node.kind === ts.SyntaxKind.UnionType; -} -exports.isUnionTypeNode = isUnionTypeNode; -function isVariableDeclaration(node) { - return node.kind === ts.SyntaxKind.VariableDeclaration; -} -exports.isVariableDeclaration = isVariableDeclaration; -function isVariableStatement(node) { - return node.kind === ts.SyntaxKind.VariableStatement; -} -exports.isVariableStatement = isVariableStatement; -function isVariableDeclarationList(node) { - return node.kind === ts.SyntaxKind.VariableDeclarationList; -} -exports.isVariableDeclarationList = isVariableDeclarationList; -function isVoidExpression(node) { - return node.kind === ts.SyntaxKind.VoidExpression; -} -exports.isVoidExpression = isVoidExpression; -function isWhileStatement(node) { - return node.kind === ts.SyntaxKind.WhileStatement; -} -exports.isWhileStatement = isWhileStatement; -function isWithStatement(node) { - return node.kind === ts.SyntaxKind.WithStatement; -} -exports.isWithStatement = isWithStatement; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/type.d.ts deleted file mode 100644 index 45b6bc3d32..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/type.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as ts from 'typescript'; -export declare function isConditionalType(type: ts.Type): type is ts.ConditionalType; -export declare function isEnumType(type: ts.Type): type is ts.EnumType; -export declare function isGenericType(type: ts.Type): type is ts.GenericType; -export declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessType; -export declare function isIndexedAccessype(type: ts.Type): type is ts.IndexType; -export declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType; -export declare function isInterfaceType(type: ts.Type): type is ts.InterfaceType; -export declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType; -export declare function isLiteralType(type: ts.Type): type is ts.LiteralType; -export declare function isObjectType(type: ts.Type): type is ts.ObjectType; -export declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType; -export declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter; -export declare function isTypeReference(type: ts.Type): type is ts.TypeReference; -export declare function isTypeVariable(type: ts.Type): type is ts.TypeParameter | ts.IndexedAccessType; -export declare function isUnionOrIntersectionType(type: ts.Type): type is ts.UnionOrIntersectionType; -export declare function isUnionType(type: ts.Type): type is ts.UnionType; -export declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolType; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/type.js deleted file mode 100644 index 01fc06ead7..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.8/type.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -function isConditionalType(type) { - return (type.flags & ts.TypeFlags.Conditional) !== 0; -} -exports.isConditionalType = isConditionalType; -function isEnumType(type) { - return (type.flags & ts.TypeFlags.Enum) !== 0; -} -exports.isEnumType = isEnumType; -function isGenericType(type) { - return (type.flags & ts.TypeFlags.Object) !== 0 && - (type.objectFlags & ts.ObjectFlags.ClassOrInterface) !== 0 && - (type.objectFlags & ts.ObjectFlags.Reference) !== 0; -} -exports.isGenericType = isGenericType; -function isIndexedAccessType(type) { - return (type.flags & ts.TypeFlags.IndexedAccess) !== 0; -} -exports.isIndexedAccessType = isIndexedAccessType; -function isIndexedAccessype(type) { - return (type.flags & ts.TypeFlags.Index) !== 0; -} -exports.isIndexedAccessype = isIndexedAccessype; -function isInstantiableType(type) { - return (type.flags & ts.TypeFlags.Instantiable) !== 0; -} -exports.isInstantiableType = isInstantiableType; -function isInterfaceType(type) { - return (type.flags & ts.TypeFlags.Object) !== 0 && - (type.objectFlags & ts.ObjectFlags.ClassOrInterface) !== 0; -} -exports.isInterfaceType = isInterfaceType; -function isIntersectionType(type) { - return (type.flags & ts.TypeFlags.Intersection) !== 0; -} -exports.isIntersectionType = isIntersectionType; -function isLiteralType(type) { - return (type.flags & (ts.TypeFlags.StringOrNumberLiteral | ts.TypeFlags.BigIntLiteral)) !== 0; -} -exports.isLiteralType = isLiteralType; -function isObjectType(type) { - return (type.flags & ts.TypeFlags.Object) !== 0; -} -exports.isObjectType = isObjectType; -function isSubstitutionType(type) { - return (type.flags & ts.TypeFlags.Substitution) !== 0; -} -exports.isSubstitutionType = isSubstitutionType; -function isTypeParameter(type) { - return (type.flags & ts.TypeFlags.TypeParameter) !== 0; -} -exports.isTypeParameter = isTypeParameter; -function isTypeReference(type) { - return (type.flags & ts.TypeFlags.Object) !== 0 && - (type.objectFlags & ts.ObjectFlags.Reference) !== 0; -} -exports.isTypeReference = isTypeReference; -function isTypeVariable(type) { - return (type.flags & ts.TypeFlags.TypeVariable) !== 0; -} -exports.isTypeVariable = isTypeVariable; -function isUnionOrIntersectionType(type) { - return (type.flags & ts.TypeFlags.UnionOrIntersection) !== 0; -} -exports.isUnionOrIntersectionType = isUnionOrIntersectionType; -function isUnionType(type) { - return (type.flags & ts.TypeFlags.Union) !== 0; -} -exports.isUnionType = isUnionType; -function isUniqueESSymbolType(type) { - return (type.flags & ts.TypeFlags.UniqueESSymbol) !== 0; -} -exports.isUniqueESSymbolType = isUniqueESSymbolType; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/node.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/node.d.ts deleted file mode 100644 index bf2ec1d1f2..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/node.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from '../2.8/node'; -import * as ts from 'typescript'; -export declare function isImportTypeNode(node: ts.Node): node is ts.ImportTypeNode; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/node.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/node.js deleted file mode 100644 index e24159778a..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/node.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.8/node"), exports); -const ts = require("typescript"); -function isImportTypeNode(node) { - return node.kind === ts.SyntaxKind.ImportType; -} -exports.isImportTypeNode = isImportTypeNode; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/type.d.ts deleted file mode 100644 index ec83ac3f48..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../2.8/type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/type.js deleted file mode 100644 index 9315cac2b9..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/2.9/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.8/type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/node.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/node.d.ts deleted file mode 100644 index 305991140b..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/node.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from '../2.9/node'; -import * as ts from 'typescript'; -export declare function isOptionalTypeNode(node: ts.Node): node is ts.OptionalTypeNode; -export declare function isRestTypeNode(node: ts.Node): node is ts.RestTypeNode; -export declare function isSyntheticExpression(node: ts.Node): node is ts.SyntheticExpression; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/node.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/node.js deleted file mode 100644 index 943bb36e8a..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/node.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.9/node"), exports); -const ts = require("typescript"); -function isOptionalTypeNode(node) { - return node.kind === ts.SyntaxKind.OptionalType; -} -exports.isOptionalTypeNode = isOptionalTypeNode; -function isRestTypeNode(node) { - return node.kind === ts.SyntaxKind.RestType; -} -exports.isRestTypeNode = isRestTypeNode; -function isSyntheticExpression(node) { - return node.kind === ts.SyntaxKind.SyntheticExpression; -} -exports.isSyntheticExpression = isSyntheticExpression; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/type.d.ts deleted file mode 100644 index 5cf0df95a2..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/type.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from '../2.9/type'; -import * as ts from 'typescript'; -export declare function isTupleType(type: ts.Type): type is ts.TupleType; -export declare function isTupleTypeReference(type: ts.Type): type is ts.TypeReference & { - target: ts.TupleType; -}; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/type.js deleted file mode 100644 index 7ec876f8f4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.0/type.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.9/type"), exports); -const ts = require("typescript"); -const type_1 = require("../2.9/type"); -function isTupleType(type) { - return (type.flags & ts.TypeFlags.Object && type.objectFlags & ts.ObjectFlags.Tuple) !== 0; -} -exports.isTupleType = isTupleType; -function isTupleTypeReference(type) { - return type_1.isTypeReference(type) && isTupleType(type.target); -} -exports.isTupleTypeReference = isTupleTypeReference; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/node.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/node.d.ts deleted file mode 100644 index cf88ae114f..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/node.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from '../3.0/node'; -import * as ts from 'typescript'; -export declare function isBigIntLiteral(node: ts.Node): node is ts.BigIntLiteral; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/node.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/node.js deleted file mode 100644 index 26e8c1a749..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/node.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.0/node"), exports); -const ts = require("typescript"); -function isBigIntLiteral(node) { - return node.kind === ts.SyntaxKind.BigIntLiteral; -} -exports.isBigIntLiteral = isBigIntLiteral; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/type.d.ts deleted file mode 100644 index fee77fb183..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../3.0/type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/type.js deleted file mode 100644 index d800ef8412..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/3.2/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.0/type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/node.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/node.d.ts deleted file mode 100644 index d64678a349..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/node.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../3.2/node'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/node.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/node.js deleted file mode 100644 index e2c022f122..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/node.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.2/node"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/type.d.ts deleted file mode 100644 index 6cd4408ace..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../3.2/type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/type.js deleted file mode 100644 index ef88473b66..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/next/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.2/type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/node.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/node.d.ts deleted file mode 100644 index f6a9f8b7de..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/node.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './3.2/node'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/node.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/node.js deleted file mode 100644 index 3d8e376089..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/node.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./3.2/node"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/type.d.ts deleted file mode 100644 index 8a20aeb1f0..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './3.2/type'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/type.js deleted file mode 100644 index cecc6fd6c3..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/typeguard/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./3.2/type"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/control-flow.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/control-flow.d.ts deleted file mode 100644 index 528155c1b9..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/control-flow.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as ts from 'typescript'; -export declare function endsControlFlow(statement: ts.Statement | ts.BlockLike): boolean; -export declare type ControlFlowStatement = ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.ThrowStatement; -export interface ControlFlowEnd { - readonly statements: ReadonlyArray; - readonly end: boolean; -} -export declare function getControlFlowEnd(statement: ts.Statement | ts.BlockLike): ControlFlowEnd; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/control-flow.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/control-flow.js deleted file mode 100644 index 7e83773f05..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/control-flow.js +++ /dev/null @@ -1,171 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const node_1 = require("../typeguard/node"); -function endsControlFlow(statement) { - return getControlFlowEnd(statement).end; -} -exports.endsControlFlow = endsControlFlow; -const defaultControlFlowEnd = { statements: [], end: false }; -function getControlFlowEnd(statement) { - return node_1.isBlockLike(statement) ? handleBlock(statement) : getControlFlowEndWorker(statement); -} -exports.getControlFlowEnd = getControlFlowEnd; -function getControlFlowEndWorker(statement) { - switch (statement.kind) { - case ts.SyntaxKind.ReturnStatement: - case ts.SyntaxKind.ThrowStatement: - case ts.SyntaxKind.ContinueStatement: - case ts.SyntaxKind.BreakStatement: - return { statements: [statement], end: true }; - case ts.SyntaxKind.Block: - return handleBlock(statement); - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.WhileStatement: - return handleForAndWhileStatement(statement); - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.ForInStatement: - return handleForInOrOfStatement(statement); - case ts.SyntaxKind.DoStatement: - return matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement); - case ts.SyntaxKind.IfStatement: - return handleIfStatement(statement); - case ts.SyntaxKind.SwitchStatement: - return matchBreakOrContinue(handleSwitchStatement(statement), node_1.isBreakStatement); - case ts.SyntaxKind.TryStatement: - return handleTryStatement(statement); - case ts.SyntaxKind.LabeledStatement: - return matchLabel(getControlFlowEndWorker(statement.statement), statement.label); - case ts.SyntaxKind.WithStatement: - return getControlFlowEndWorker(statement.statement); - default: - return defaultControlFlowEnd; - } -} -function handleBlock(statement) { - const result = { statements: [], end: false }; - for (const s of statement.statements) { - const current = getControlFlowEndWorker(s); - result.statements.push(...current.statements); - if (current.end) { - result.end = true; - break; - } - } - return result; -} -function handleForInOrOfStatement(statement) { - const end = matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement); - end.end = false; - return end; -} -function handleForAndWhileStatement(statement) { - const constantCondition = statement.kind === ts.SyntaxKind.WhileStatement - ? getConstantCondition(statement.expression) - : statement.condition === undefined || getConstantCondition(statement.condition); - if (constantCondition === false) - return defaultControlFlowEnd; - const end = matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement); - if (constantCondition === undefined) - end.end = false; - return end; -} -function getConstantCondition(node) { - switch (node.kind) { - case ts.SyntaxKind.TrueKeyword: - return true; - case ts.SyntaxKind.FalseKeyword: - return false; - default: - return; - } -} -function handleIfStatement(node) { - switch (getConstantCondition(node.expression)) { - case true: - return getControlFlowEndWorker(node.thenStatement); - case false: - return node.elseStatement === undefined - ? defaultControlFlowEnd - : getControlFlowEndWorker(node.elseStatement); - } - const then = getControlFlowEndWorker(node.thenStatement); - if (node.elseStatement === undefined) - return { - statements: then.statements, - end: false, - }; - const elze = getControlFlowEndWorker(node.elseStatement); - return { - statements: [...then.statements, ...elze.statements], - end: then.end && elze.end, - }; -} -function handleSwitchStatement(node) { - let hasDefault = false; - const result = { - statements: [], - end: false, - }; - for (const clause of node.caseBlock.clauses) { - if (clause.kind === ts.SyntaxKind.DefaultClause) - hasDefault = true; - const current = handleBlock(clause); - result.end = current.end; - result.statements.push(...current.statements); - } - if (!hasDefault) - result.end = false; - return result; -} -function handleTryStatement(node) { - let finallyResult; - if (node.finallyBlock !== undefined) { - finallyResult = handleBlock(node.finallyBlock); - if (finallyResult.end) - return finallyResult; - } - const tryResult = handleBlock(node.tryBlock); - if (node.catchClause === undefined) - return { statements: finallyResult.statements.concat(tryResult.statements), end: tryResult.end }; - const catchResult = handleBlock(node.catchClause.block); - return { - statements: tryResult.statements - .filter((s) => s.kind !== ts.SyntaxKind.ThrowStatement) - .concat(catchResult.statements, finallyResult === undefined ? [] : finallyResult.statements), - end: tryResult.end && catchResult.end, - }; -} -function matchBreakOrContinue(current, pred) { - const result = { - statements: [], - end: current.end, - }; - for (const statement of current.statements) { - if (pred(statement) && statement.label === undefined) { - result.end = false; - continue; - } - result.statements.push(statement); - } - return result; -} -function matchLabel(current, label) { - const result = { - statements: [], - end: current.end, - }; - const labelText = label.text; - for (const statement of current.statements) { - switch (statement.kind) { - case ts.SyntaxKind.BreakStatement: - case ts.SyntaxKind.ContinueStatement: - if (statement.label !== undefined && statement.label.text === labelText) { - result.end = false; - continue; - } - } - result.statements.push(statement); - } - return result; -} diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/convert-ast.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/convert-ast.d.ts deleted file mode 100644 index 7e95feaf0f..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/convert-ast.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import * as ts from 'typescript'; -export interface NodeWrap { - node: ts.Node; - kind: ts.SyntaxKind; - children: NodeWrap[]; - next?: NodeWrap; - skip?: NodeWrap; - parent?: NodeWrap; -} -export interface WrappedAst extends NodeWrap { - node: ts.SourceFile; - next: NodeWrap; - skip: undefined; - parent: undefined; -} -export interface ConvertedAst { - wrapped: WrappedAst; - flat: ReadonlyArray; -} -export declare function convertAst(sourceFile: ts.SourceFile): ConvertedAst; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/convert-ast.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/convert-ast.js deleted file mode 100644 index bfdb0282c1..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/convert-ast.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const util_1 = require("./util"); -function convertAst(sourceFile) { - const wrapped = { - node: sourceFile, - parent: undefined, - kind: ts.SyntaxKind.SourceFile, - children: [], - next: undefined, - skip: undefined, - }; - const flat = []; - let current = wrapped; - let previous = current; - ts.forEachChild(sourceFile, function wrap(node) { - flat.push(node); - const parent = current; - previous.next = current = { - node, - parent, - kind: node.kind, - children: [], - next: undefined, - skip: undefined, - }; - if (previous !== parent) - setSkip(previous, current); - previous = current; - parent.children.push(current); - if (util_1.isNodeKind(node.kind)) - ts.forEachChild(node, wrap); - current = parent; - }); - return { - wrapped, - flat, - }; -} -exports.convertAst = convertAst; -function setSkip(node, skip) { - do { - node.skip = skip; - node = node.parent; - } while (node !== skip.parent); -} diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/index.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/index.d.ts deleted file mode 100644 index 9e93ff6f1e..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './util'; -export * from './usage'; -export * from './control-flow'; -export * from './type'; -export * from './convert-ast'; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/index.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/index.js deleted file mode 100644 index 2087d2a37e..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/index.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./util"), exports); -tslib_1.__exportStar(require("./usage"), exports); -tslib_1.__exportStar(require("./control-flow"), exports); -tslib_1.__exportStar(require("./type"), exports); -tslib_1.__exportStar(require("./convert-ast"), exports); diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/type.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/type.d.ts deleted file mode 100644 index f4343a4584..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/type.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import * as ts from 'typescript'; -import { PropertyName } from './util'; -export declare function isEmptyObjectType(type: ts.Type): type is ts.ObjectType; -export declare function removeOptionalityFromType(checker: ts.TypeChecker, type: ts.Type): ts.Type; -export declare function isTypeAssignableToNumber(checker: ts.TypeChecker, type: ts.Type): boolean; -export declare function isTypeAssignableToString(checker: ts.TypeChecker, type: ts.Type): boolean; -export declare function getCallSignaturesOfType(type: ts.Type): ReadonlyArray; -export declare function unionTypeParts(type: ts.Type): ts.Type[]; -export declare function intersectionTypeParts(type: ts.Type): ts.Type[]; -export declare function someTypePart(type: ts.Type, predicate: (t: ts.Type) => t is ts.UnionOrIntersectionType, cb: (t: ts.Type) => boolean): boolean; -export declare function isThenableType(checker: ts.TypeChecker, node: ts.Node, type: ts.Type): boolean; -export declare function isThenableType(checker: ts.TypeChecker, node: ts.Expression, type?: ts.Type): boolean; -export declare function isFalsyType(type: ts.Type): boolean; -export declare function isBooleanLiteralType(type: ts.Type, literal: boolean): boolean; -export declare function getPropertyOfType(type: ts.Type, name: ts.__String): ts.Symbol | undefined; -export declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, checker: ts.TypeChecker): boolean; -export declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, checker: ts.TypeChecker): boolean; -export declare function getPropertyNameFromType(type: ts.Type): PropertyName | undefined; -export declare function getConstructorTypeOfClassLikeDeclaration(node: ts.ClassLikeDeclaration, checker: ts.TypeChecker): ts.Type; -export declare function getInstanceTypeOfClassLikeDeclaration(node: ts.ClassLikeDeclaration, checker: ts.TypeChecker): ts.Type; -export declare function getIteratorYieldResultFromIteratorResult(type: ts.Type, node: ts.Node, checker: ts.TypeChecker): ts.Type; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/type.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/type.js deleted file mode 100644 index 7a530d9fd7..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/type.js +++ /dev/null @@ -1,238 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const type_1 = require("../typeguard/type"); -const util_1 = require("./util"); -const node_1 = require("../typeguard/node"); -function isEmptyObjectType(type) { - if (type_1.isObjectType(type) && - type.objectFlags & ts.ObjectFlags.Anonymous && - type.getProperties().length === 0 && - type.getCallSignatures().length === 0 && - type.getConstructSignatures().length === 0 && - type.getStringIndexType() === undefined && - type.getNumberIndexType() === undefined) { - const baseTypes = type.getBaseTypes(); - return baseTypes === undefined || baseTypes.every(isEmptyObjectType); - } - return false; -} -exports.isEmptyObjectType = isEmptyObjectType; -function removeOptionalityFromType(checker, type) { - if (!containsTypeWithFlag(type, ts.TypeFlags.Undefined)) - return type; - const allowsNull = containsTypeWithFlag(type, ts.TypeFlags.Null); - type = checker.getNonNullableType(type); - return allowsNull ? checker.getNullableType(type, ts.TypeFlags.Null) : type; -} -exports.removeOptionalityFromType = removeOptionalityFromType; -function containsTypeWithFlag(type, flag) { - for (const t of unionTypeParts(type)) - if (util_1.isTypeFlagSet(t, flag)) - return true; - return false; -} -function isTypeAssignableToNumber(checker, type) { - return isTypeAssignableTo(checker, type, ts.TypeFlags.NumberLike); -} -exports.isTypeAssignableToNumber = isTypeAssignableToNumber; -function isTypeAssignableToString(checker, type) { - return isTypeAssignableTo(checker, type, ts.TypeFlags.StringLike); -} -exports.isTypeAssignableToString = isTypeAssignableToString; -function isTypeAssignableTo(checker, type, flags) { - flags |= ts.TypeFlags.Any; - let typeParametersSeen; - return (function check(t) { - if (type_1.isTypeParameter(t) && t.symbol !== undefined && t.symbol.declarations !== undefined) { - if (typeParametersSeen === undefined) { - typeParametersSeen = new Set([t]); - } - else if (!typeParametersSeen.has(t)) { - typeParametersSeen.add(t); - } - else { - return false; - } - const declaration = t.symbol.declarations[0]; - if (declaration.constraint === undefined) - return true; - return check(checker.getTypeFromTypeNode(declaration.constraint)); - } - if (type_1.isUnionType(t)) - return t.types.every(check); - if (type_1.isIntersectionType(t)) - return t.types.some(check); - return util_1.isTypeFlagSet(t, flags); - })(type); -} -function getCallSignaturesOfType(type) { - if (type_1.isUnionType(type)) { - const signatures = []; - for (const t of type.types) - signatures.push(...getCallSignaturesOfType(t)); - return signatures; - } - if (type_1.isIntersectionType(type)) { - let signatures; - for (const t of type.types) { - const sig = getCallSignaturesOfType(t); - if (sig.length !== 0) { - if (signatures !== undefined) - return []; - signatures = sig; - } - } - return signatures === undefined ? [] : signatures; - } - return type.getCallSignatures(); -} -exports.getCallSignaturesOfType = getCallSignaturesOfType; -function unionTypeParts(type) { - return type_1.isUnionType(type) ? type.types : [type]; -} -exports.unionTypeParts = unionTypeParts; -function intersectionTypeParts(type) { - return type_1.isIntersectionType(type) ? type.types : [type]; -} -exports.intersectionTypeParts = intersectionTypeParts; -function someTypePart(type, predicate, cb) { - return predicate(type) ? type.types.some(cb) : cb(type); -} -exports.someTypePart = someTypePart; -function isThenableType(checker, node, type = checker.getTypeAtLocation(node)) { - for (const ty of unionTypeParts(checker.getApparentType(type))) { - const then = ty.getProperty('then'); - if (then === undefined) - continue; - const thenType = checker.getTypeOfSymbolAtLocation(then, node); - for (const t of unionTypeParts(thenType)) - for (const signature of t.getCallSignatures()) - if (signature.parameters.length !== 0 && isCallback(checker, signature.parameters[0], node)) - return true; - } - return false; -} -exports.isThenableType = isThenableType; -function isCallback(checker, param, node) { - let type = checker.getApparentType(checker.getTypeOfSymbolAtLocation(param, node)); - if (param.valueDeclaration.dotDotDotToken) { - type = type.getNumberIndexType(); - if (type === undefined) - return false; - } - for (const t of unionTypeParts(type)) - if (t.getCallSignatures().length !== 0) - return true; - return false; -} -function isFalsyType(type) { - if (type.flags & (ts.TypeFlags.Undefined | ts.TypeFlags.Null | ts.TypeFlags.Void)) - return true; - if (type_1.isLiteralType(type)) - return !type.value; - return isBooleanLiteralType(type, false); -} -exports.isFalsyType = isFalsyType; -function isBooleanLiteralType(type, literal) { - return util_1.isTypeFlagSet(type, ts.TypeFlags.BooleanLiteral) && - type.intrinsicName === (literal ? 'true' : 'false'); -} -exports.isBooleanLiteralType = isBooleanLiteralType; -function getPropertyOfType(type, name) { - if (!name.startsWith('__')) - return type.getProperty(name); - return type.getProperties().find((s) => s.escapedName === name); -} -exports.getPropertyOfType = getPropertyOfType; -function isPropertyReadonlyInType(type, name, checker) { - let seenProperty = false; - let seenReadonlySignature = false; - for (const t of unionTypeParts(type)) { - if (getPropertyOfType(t, name) === undefined) { - const index = (util_1.isNumericPropertyName(name) ? checker.getIndexInfoOfType(t, ts.IndexKind.Number) : undefined) || - checker.getIndexInfoOfType(t, ts.IndexKind.String); - if (index !== undefined && index.isReadonly) { - if (seenProperty) - return true; - seenReadonlySignature = true; - } - } - else if (seenReadonlySignature || isReadonlyPropertyIntersection(t, name, checker)) { - return true; - } - else { - seenProperty = true; - } - } - return false; -} -exports.isPropertyReadonlyInType = isPropertyReadonlyInType; -function isReadonlyPropertyIntersection(type, name, checker) { - return someTypePart(type, type_1.isIntersectionType, (t) => { - const prop = getPropertyOfType(t, name); - if (prop === undefined) - return false; - if (prop.flags & ts.SymbolFlags.Transient) { - if (/^(?:[1-9]\d*|0)$/.test(name) && type_1.isTupleTypeReference(t)) - return t.target.readonly; - switch (isReadonlyPropertyFromMappedType(t, name, checker)) { - case true: - return true; - case false: - return false; - default: - } - } - return (util_1.isSymbolFlagSet(prop, ts.SymbolFlags.ValueModule) || - symbolHasReadonlyDeclaration(prop, checker)); - }); -} -function isReadonlyPropertyFromMappedType(type, name, checker) { - if (!type_1.isObjectType(type) || !util_1.isObjectFlagSet(type, ts.ObjectFlags.Mapped)) - return; - const declaration = type.symbol.declarations[0]; - if (declaration.readonlyToken !== undefined && !/^__@[^@]+$/.test(name)) - return declaration.readonlyToken.kind !== ts.SyntaxKind.MinusToken; - return isPropertyReadonlyInType(type.modifiersType, name, checker); -} -function symbolHasReadonlyDeclaration(symbol, checker) { - return (symbol.flags & ts.SymbolFlags.Accessor) === ts.SymbolFlags.GetAccessor || - symbol.declarations !== undefined && - symbol.declarations.some((node) => util_1.isModifierFlagSet(node, ts.ModifierFlags.Readonly) || - node_1.isVariableDeclaration(node) && util_1.isNodeFlagSet(node.parent, ts.NodeFlags.Const) || - node_1.isCallExpression(node) && util_1.isReadonlyAssignmentDeclaration(node, checker) || - node_1.isEnumMember(node) || - (node_1.isPropertyAssignment(node) || node_1.isShorthandPropertyAssignment(node)) && util_1.isInConstContext(node.parent)); -} -exports.symbolHasReadonlyDeclaration = symbolHasReadonlyDeclaration; -function getPropertyNameFromType(type) { - if (type.flags & (ts.TypeFlags.StringLiteral | ts.TypeFlags.NumberLiteral)) { - const value = String(type.value); - return { displayName: value, symbolName: ts.escapeLeadingUnderscores(value) }; - } - if (type_1.isUniqueESSymbolType(type)) - return { - displayName: `[${type.symbol ? type.symbol.name : type.escapedName.replace(/^__@|@\d+$/g, '')}]`, - symbolName: type.escapedName, - }; -} -exports.getPropertyNameFromType = getPropertyNameFromType; -function getConstructorTypeOfClassLikeDeclaration(node, checker) { - return checker.getDeclaredTypeOfSymbol(node.name !== undefined ? checker.getSymbolAtLocation(node.name) : checker.getTypeAtLocation(node).symbol); -} -exports.getConstructorTypeOfClassLikeDeclaration = getConstructorTypeOfClassLikeDeclaration; -function getInstanceTypeOfClassLikeDeclaration(node, checker) { - return node.kind === ts.SyntaxKind.ClassDeclaration - ? checker.getTypeAtLocation(node) - : checker.getTypeOfSymbolAtLocation(checker.getTypeAtLocation(node).getProperty('prototype'), node); -} -exports.getInstanceTypeOfClassLikeDeclaration = getInstanceTypeOfClassLikeDeclaration; -function getIteratorYieldResultFromIteratorResult(type, node, checker) { - return type_1.isUnionType(type) && type.types.find((t) => { - const done = t.getProperty('done'); - return done !== undefined && - isBooleanLiteralType(removeOptionalityFromType(checker, checker.getTypeOfSymbolAtLocation(done, node)), false); - }) || type; -} -exports.getIteratorYieldResultFromIteratorResult = getIteratorYieldResultFromIteratorResult; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/usage.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/usage.d.ts deleted file mode 100644 index a4c022c9d1..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/usage.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as ts from 'typescript'; -export interface VariableInfo { - domain: DeclarationDomain; - exported: boolean; - uses: VariableUse[]; - inGlobalScope: boolean; - declarations: ts.Identifier[]; -} -export interface VariableUse { - domain: UsageDomain; - location: ts.Identifier; -} -export declare enum DeclarationDomain { - Namespace = 1, - Type = 2, - Value = 4, - Import = 8, - Any = 7 -} -export declare enum UsageDomain { - Namespace = 1, - Type = 2, - Value = 4, - ValueOrNamespace = 5, - Any = 7, - TypeQuery = 8 -} -export declare function getUsageDomain(node: ts.Identifier): UsageDomain | undefined; -export declare function getDeclarationDomain(node: ts.Identifier): DeclarationDomain | undefined; -export declare function collectVariableUsage(sourceFile: ts.SourceFile): Map; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/usage.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/usage.js deleted file mode 100644 index 372d38a69f..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/usage.js +++ /dev/null @@ -1,645 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const util_1 = require("./util"); -const ts = require("typescript"); -var DeclarationDomain; -(function (DeclarationDomain) { - DeclarationDomain[DeclarationDomain["Namespace"] = 1] = "Namespace"; - DeclarationDomain[DeclarationDomain["Type"] = 2] = "Type"; - DeclarationDomain[DeclarationDomain["Value"] = 4] = "Value"; - DeclarationDomain[DeclarationDomain["Import"] = 8] = "Import"; - DeclarationDomain[DeclarationDomain["Any"] = 7] = "Any"; -})(DeclarationDomain = exports.DeclarationDomain || (exports.DeclarationDomain = {})); -var UsageDomain; -(function (UsageDomain) { - UsageDomain[UsageDomain["Namespace"] = 1] = "Namespace"; - UsageDomain[UsageDomain["Type"] = 2] = "Type"; - UsageDomain[UsageDomain["Value"] = 4] = "Value"; - UsageDomain[UsageDomain["ValueOrNamespace"] = 5] = "ValueOrNamespace"; - UsageDomain[UsageDomain["Any"] = 7] = "Any"; - UsageDomain[UsageDomain["TypeQuery"] = 8] = "TypeQuery"; -})(UsageDomain = exports.UsageDomain || (exports.UsageDomain = {})); -function getUsageDomain(node) { - const parent = node.parent; - switch (parent.kind) { - case ts.SyntaxKind.TypeReference: - return node.originalKeywordKind !== ts.SyntaxKind.ConstKeyword ? 2 : undefined; - case ts.SyntaxKind.ExpressionWithTypeArguments: - return parent.parent.token === ts.SyntaxKind.ImplementsKeyword || - parent.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration - ? 2 - : 4; - case ts.SyntaxKind.TypeQuery: - return 5 | 8; - case ts.SyntaxKind.QualifiedName: - if (parent.left === node) { - if (getEntityNameParent(parent).kind === ts.SyntaxKind.TypeQuery) - return 1 | 8; - return 1; - } - break; - case ts.SyntaxKind.ExportSpecifier: - if (parent.propertyName === undefined || - parent.propertyName === node) - return 7; - break; - case ts.SyntaxKind.ExportAssignment: - return 7; - case ts.SyntaxKind.BindingElement: - if (parent.initializer === node) - return 5; - break; - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.ImportEqualsDeclaration: - if (parent.name !== node) - return 5; - break; - case ts.SyntaxKind.JsxAttribute: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.NamespaceImport: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.LabeledStatement: - case ts.SyntaxKind.BreakStatement: - case ts.SyntaxKind.ContinueStatement: - case ts.SyntaxKind.ImportClause: - case ts.SyntaxKind.ImportSpecifier: - case ts.SyntaxKind.TypePredicate: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.NamespaceExportDeclaration: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.TypeParameter: - break; - default: - return 5; - } -} -exports.getUsageDomain = getUsageDomain; -function getDeclarationDomain(node) { - switch (node.parent.kind) { - case ts.SyntaxKind.TypeParameter: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - return 2; - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - return 2 | 4; - case ts.SyntaxKind.EnumDeclaration: - return 7; - case ts.SyntaxKind.NamespaceImport: - case ts.SyntaxKind.ImportClause: - return 7 | 8; - case ts.SyntaxKind.ImportEqualsDeclaration: - case ts.SyntaxKind.ImportSpecifier: - return node.parent.name === node - ? 7 | 8 - : undefined; - case ts.SyntaxKind.ModuleDeclaration: - return 1; - case ts.SyntaxKind.Parameter: - if (node.parent.parent.kind === ts.SyntaxKind.IndexSignature || node.originalKeywordKind === ts.SyntaxKind.ThisKeyword) - return; - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.VariableDeclaration: - return node.parent.name === node ? 4 : undefined; - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - return 4; - } -} -exports.getDeclarationDomain = getDeclarationDomain; -function collectVariableUsage(sourceFile) { - return new UsageWalker().getUsage(sourceFile); -} -exports.collectVariableUsage = collectVariableUsage; -class AbstractScope { - constructor(_global) { - this._global = _global; - this._variables = new Map(); - this._uses = []; - this._namespaceScopes = undefined; - this._enumScopes = undefined; - } - addVariable(identifier, name, selector, exported, domain) { - const variables = this.getDestinationScope(selector).getVariables(); - const declaration = { - domain, - exported, - declaration: name, - }; - const variable = variables.get(identifier); - if (variable === undefined) { - variables.set(identifier, { - domain, - declarations: [declaration], - uses: [], - }); - } - else { - variable.domain |= domain; - variable.declarations.push(declaration); - } - } - addUse(use) { - this._uses.push(use); - } - getVariables() { - return this._variables; - } - getFunctionScope() { - return this; - } - end(cb) { - if (this._namespaceScopes !== undefined) - this._namespaceScopes.forEach((value) => value.finish(cb)); - this._namespaceScopes = this._enumScopes = undefined; - this._applyUses(); - this._variables.forEach((variable) => { - for (const declaration of variable.declarations) { - const result = { - declarations: [], - domain: declaration.domain, - exported: declaration.exported, - inGlobalScope: this._global, - uses: [], - }; - for (const other of variable.declarations) - if (other.domain & declaration.domain) - result.declarations.push(other.declaration); - for (const use of variable.uses) - if (use.domain & declaration.domain) - result.uses.push(use); - cb(result, declaration.declaration, this); - } - }); - } - markExported(_name) { } - createOrReuseNamespaceScope(name, _exported, ambient, hasExportStatement) { - let scope; - if (this._namespaceScopes === undefined) { - this._namespaceScopes = new Map(); - } - else { - scope = this._namespaceScopes.get(name); - } - if (scope === undefined) { - scope = new NamespaceScope(ambient, hasExportStatement, this); - this._namespaceScopes.set(name, scope); - } - else { - scope.refresh(ambient, hasExportStatement); - } - return scope; - } - createOrReuseEnumScope(name, _exported) { - let scope; - if (this._enumScopes === undefined) { - this._enumScopes = new Map(); - } - else { - scope = this._enumScopes.get(name); - } - if (scope === undefined) { - scope = new EnumScope(this); - this._enumScopes.set(name, scope); - } - return scope; - } - _applyUses() { - for (const use of this._uses) - if (!this._applyUse(use)) - this._addUseToParent(use); - this._uses = []; - } - _applyUse(use, variables = this._variables) { - const variable = variables.get(use.location.text); - if (variable === undefined || (variable.domain & use.domain) === 0) - return false; - variable.uses.push(use); - return true; - } - _addUseToParent(_use) { } -} -class RootScope extends AbstractScope { - constructor(_exportAll, global) { - super(global); - this._exportAll = _exportAll; - this._exports = undefined; - this._innerScope = new NonRootScope(this, 1); - } - addVariable(identifier, name, selector, exported, domain) { - if (domain & 8) - return super.addVariable(identifier, name, selector, exported, domain); - return this._innerScope.addVariable(identifier, name, selector, exported, domain); - } - addUse(use, origin) { - if (origin === this._innerScope) - return super.addUse(use); - return this._innerScope.addUse(use); - } - markExported(id) { - if (this._exports === undefined) { - this._exports = [id.text]; - } - else { - this._exports.push(id.text); - } - } - end(cb) { - this._innerScope.end((value, key) => { - value.exported = value.exported || this._exportAll - || this._exports !== undefined && this._exports.includes(key.text); - value.inGlobalScope = this._global; - return cb(value, key, this); - }); - return super.end((value, key, scope) => { - value.exported = value.exported || scope === this - && this._exports !== undefined && this._exports.includes(key.text); - return cb(value, key, scope); - }); - } - getDestinationScope() { - return this; - } -} -class NonRootScope extends AbstractScope { - constructor(_parent, _boundary) { - super(false); - this._parent = _parent; - this._boundary = _boundary; - } - _addUseToParent(use) { - return this._parent.addUse(use, this); - } - getDestinationScope(selector) { - return this._boundary & selector - ? this - : this._parent.getDestinationScope(selector); - } -} -class EnumScope extends NonRootScope { - constructor(parent) { - super(parent, 1); - } - end() { - this._applyUses(); - } -} -class ConditionalTypeScope extends NonRootScope { - constructor(parent) { - super(parent, 8); - this._state = 0; - } - updateState(newState) { - this._state = newState; - } - addUse(use) { - if (this._state === 2) - return void this._uses.push(use); - return this._parent.addUse(use, this); - } -} -class FunctionScope extends NonRootScope { - constructor(parent) { - super(parent, 1); - } - beginBody() { - this._applyUses(); - } -} -class AbstractNamedExpressionScope extends NonRootScope { - constructor(_name, _domain, parent) { - super(parent, 1); - this._name = _name; - this._domain = _domain; - } - end(cb) { - this._innerScope.end(cb); - return cb({ - declarations: [this._name], - domain: this._domain, - exported: false, - uses: this._uses, - inGlobalScope: false, - }, this._name, this); - } - addUse(use, source) { - if (source !== this._innerScope) - return this._innerScope.addUse(use); - if (use.domain & this._domain && use.location.text === this._name.text) { - this._uses.push(use); - } - else { - return this._parent.addUse(use, this); - } - } - getFunctionScope() { - return this._innerScope; - } - getDestinationScope() { - return this._innerScope; - } -} -class FunctionExpressionScope extends AbstractNamedExpressionScope { - constructor(name, parent) { - super(name, 4, parent); - this._innerScope = new FunctionScope(this); - } - beginBody() { - return this._innerScope.beginBody(); - } -} -class ClassExpressionScope extends AbstractNamedExpressionScope { - constructor(name, parent) { - super(name, 4 | 2, parent); - this._innerScope = new NonRootScope(this, 1); - } -} -class BlockScope extends NonRootScope { - constructor(_functionScope, parent) { - super(parent, 2); - this._functionScope = _functionScope; - } - getFunctionScope() { - return this._functionScope; - } -} -function mapDeclaration(declaration) { - return { - declaration, - exported: true, - domain: getDeclarationDomain(declaration), - }; -} -class NamespaceScope extends NonRootScope { - constructor(_ambient, _hasExport, parent) { - super(parent, 1); - this._ambient = _ambient; - this._hasExport = _hasExport; - this._innerScope = new NonRootScope(this, 1); - this._exports = undefined; - } - finish(cb) { - return super.end(cb); - } - end(cb) { - this._innerScope.end((variable, key, scope) => { - if (scope !== this._innerScope || - !variable.exported && (!this._ambient || this._exports !== undefined && !this._exports.has(key.text))) - return cb(variable, key, scope); - const namespaceVar = this._variables.get(key.text); - if (namespaceVar === undefined) { - this._variables.set(key.text, { - declarations: variable.declarations.map(mapDeclaration), - domain: variable.domain, - uses: [...variable.uses], - }); - } - else { - outer: for (const declaration of variable.declarations) { - for (const existing of namespaceVar.declarations) - if (existing.declaration === declaration) - continue outer; - namespaceVar.declarations.push(mapDeclaration(declaration)); - } - namespaceVar.domain |= variable.domain; - for (const use of variable.uses) { - if (namespaceVar.uses.includes(use)) - continue; - namespaceVar.uses.push(use); - } - } - }); - this._applyUses(); - this._innerScope = new NonRootScope(this, 1); - } - createOrReuseNamespaceScope(name, exported, ambient, hasExportStatement) { - if (!exported && (!this._ambient || this._hasExport)) - return this._innerScope.createOrReuseNamespaceScope(name, exported, ambient || this._ambient, hasExportStatement); - return super.createOrReuseNamespaceScope(name, exported, ambient || this._ambient, hasExportStatement); - } - createOrReuseEnumScope(name, exported) { - if (!exported && (!this._ambient || this._hasExport)) - return this._innerScope.createOrReuseEnumScope(name, exported); - return super.createOrReuseEnumScope(name, exported); - } - addUse(use, source) { - if (source !== this._innerScope) - return this._innerScope.addUse(use); - this._uses.push(use); - } - refresh(ambient, hasExport) { - this._ambient = ambient; - this._hasExport = hasExport; - } - markExported(name, _as) { - if (this._exports === undefined) - this._exports = new Set(); - this._exports.add(name.text); - } - getDestinationScope() { - return this._innerScope; - } -} -function getEntityNameParent(name) { - let parent = name.parent; - while (parent.kind === ts.SyntaxKind.QualifiedName) - parent = parent.parent; - return parent; -} -class UsageWalker { - constructor() { - this._result = new Map(); - } - getUsage(sourceFile) { - const variableCallback = (variable, key) => { - this._result.set(key, variable); - }; - const isModule = ts.isExternalModule(sourceFile); - this._scope = new RootScope(sourceFile.isDeclarationFile && isModule && !containsExportStatement(sourceFile), !isModule); - const cb = (node) => { - if (util_1.isBlockScopeBoundary(node)) - return continueWithScope(node, new BlockScope(this._scope.getFunctionScope(), this._scope), handleBlockScope); - switch (node.kind) { - case ts.SyntaxKind.ClassExpression: - return continueWithScope(node, node.name !== undefined - ? new ClassExpressionScope(node.name, this._scope) - : new NonRootScope(this._scope, 1)); - case ts.SyntaxKind.ClassDeclaration: - this._handleDeclaration(node, true, 4 | 2); - return continueWithScope(node, new NonRootScope(this._scope, 1)); - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - this._handleDeclaration(node, true, 2); - return continueWithScope(node, new NonRootScope(this._scope, 4)); - case ts.SyntaxKind.EnumDeclaration: - this._handleDeclaration(node, true, 7); - return continueWithScope(node, this._scope.createOrReuseEnumScope(node.name.text, util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword))); - case ts.SyntaxKind.ModuleDeclaration: - return this._handleModule(node, continueWithScope); - case ts.SyntaxKind.MappedType: - return continueWithScope(node, new NonRootScope(this._scope, 4)); - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.ConstructorType: - case ts.SyntaxKind.FunctionType: - return this._handleFunctionLikeDeclaration(node, cb, variableCallback); - case ts.SyntaxKind.ConditionalType: - return this._handleConditionalType(node, cb, variableCallback); - case ts.SyntaxKind.VariableDeclarationList: - this._handleVariableDeclaration(node); - break; - case ts.SyntaxKind.Parameter: - if (node.parent.kind !== ts.SyntaxKind.IndexSignature && - (node.name.kind !== ts.SyntaxKind.Identifier || - node.name.originalKeywordKind !== ts.SyntaxKind.ThisKeyword)) - this._handleBindingName(node.name, false, false); - break; - case ts.SyntaxKind.EnumMember: - this._scope.addVariable(util_1.getPropertyName(node.name), node.name, 1, true, 4); - break; - case ts.SyntaxKind.ImportClause: - case ts.SyntaxKind.ImportSpecifier: - case ts.SyntaxKind.NamespaceImport: - case ts.SyntaxKind.ImportEqualsDeclaration: - this._handleDeclaration(node, false, 7 | 8); - break; - case ts.SyntaxKind.TypeParameter: - this._scope.addVariable(node.name.text, node.name, node.parent.kind === ts.SyntaxKind.InferType ? 8 : 7, false, 2); - break; - case ts.SyntaxKind.ExportSpecifier: - if (node.propertyName !== undefined) - return this._scope.markExported(node.propertyName, node.name); - return this._scope.markExported(node.name); - case ts.SyntaxKind.ExportAssignment: - if (node.expression.kind === ts.SyntaxKind.Identifier) - return this._scope.markExported(node.expression); - break; - case ts.SyntaxKind.Identifier: - const domain = getUsageDomain(node); - if (domain !== undefined) - this._scope.addUse({ domain, location: node }); - return; - } - return ts.forEachChild(node, cb); - }; - const continueWithScope = (node, scope, next = forEachChild) => { - const savedScope = this._scope; - this._scope = scope; - next(node); - this._scope.end(variableCallback); - this._scope = savedScope; - }; - const handleBlockScope = (node) => { - if (node.kind === ts.SyntaxKind.CatchClause && node.variableDeclaration !== undefined) - this._handleBindingName(node.variableDeclaration.name, true, false); - return ts.forEachChild(node, cb); - }; - ts.forEachChild(sourceFile, cb); - this._scope.end(variableCallback); - return this._result; - function forEachChild(node) { - return ts.forEachChild(node, cb); - } - } - _handleConditionalType(node, cb, varCb) { - const savedScope = this._scope; - const scope = this._scope = new ConditionalTypeScope(savedScope); - cb(node.checkType); - scope.updateState(1); - cb(node.extendsType); - scope.updateState(2); - cb(node.trueType); - scope.updateState(3); - cb(node.falseType); - scope.end(varCb); - this._scope = savedScope; - } - _handleFunctionLikeDeclaration(node, cb, varCb) { - if (node.decorators !== undefined) - node.decorators.forEach(cb); - const savedScope = this._scope; - if (node.kind === ts.SyntaxKind.FunctionDeclaration) - this._handleDeclaration(node, false, 4); - const scope = this._scope = node.kind === ts.SyntaxKind.FunctionExpression && node.name !== undefined - ? new FunctionExpressionScope(node.name, savedScope) - : new FunctionScope(savedScope); - if (node.name !== undefined) - cb(node.name); - if (node.typeParameters !== undefined) - node.typeParameters.forEach(cb); - node.parameters.forEach(cb); - if (node.type !== undefined) - cb(node.type); - if (node.body !== undefined) { - scope.beginBody(); - cb(node.body); - } - scope.end(varCb); - this._scope = savedScope; - } - _handleModule(node, next) { - if (node.flags & ts.NodeFlags.GlobalAugmentation) - return next(node, this._scope.createOrReuseNamespaceScope('-global', false, true, false)); - if (node.name.kind === ts.SyntaxKind.Identifier) { - const exported = isNamespaceExported(node); - this._scope.addVariable(node.name.text, node.name, 1, exported, 1 | 4); - const ambient = util_1.hasModifier(node.modifiers, ts.SyntaxKind.DeclareKeyword); - return next(node, this._scope.createOrReuseNamespaceScope(node.name.text, exported, ambient, ambient && namespaceHasExportStatement(node))); - } - return next(node, this._scope.createOrReuseNamespaceScope(`"${node.name.text}"`, false, true, namespaceHasExportStatement(node))); - } - _handleDeclaration(node, blockScoped, domain) { - if (node.name !== undefined) - this._scope.addVariable(node.name.text, node.name, blockScoped ? 3 : 1, util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword), domain); - } - _handleBindingName(name, blockScoped, exported) { - if (name.kind === ts.SyntaxKind.Identifier) - return this._scope.addVariable(name.text, name, blockScoped ? 3 : 1, exported, 4); - util_1.forEachDestructuringIdentifier(name, (declaration) => { - this._scope.addVariable(declaration.name.text, declaration.name, blockScoped ? 3 : 1, exported, 4); - }); - } - _handleVariableDeclaration(declarationList) { - const blockScoped = util_1.isBlockScopedVariableDeclarationList(declarationList); - const exported = declarationList.parent.kind === ts.SyntaxKind.VariableStatement && - util_1.hasModifier(declarationList.parent.modifiers, ts.SyntaxKind.ExportKeyword); - for (const declaration of declarationList.declarations) - this._handleBindingName(declaration.name, blockScoped, exported); - } -} -function isNamespaceExported(node) { - return node.parent.kind === ts.SyntaxKind.ModuleDeclaration || util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword); -} -function namespaceHasExportStatement(ns) { - if (ns.body === undefined || ns.body.kind !== ts.SyntaxKind.ModuleBlock) - return false; - return containsExportStatement(ns.body); -} -function containsExportStatement(block) { - for (const statement of block.statements) - if (statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment) - return true; - return false; -} diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/util.d.ts b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/util.d.ts deleted file mode 100644 index 1ae3299a8c..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/util.d.ts +++ /dev/null @@ -1,167 +0,0 @@ -import * as ts from 'typescript'; -import { NodeWrap } from './convert-ast'; -export declare function getChildOfKind(node: ts.Node, kind: T, sourceFile?: ts.SourceFile): ts.Token | undefined; -export declare function isTokenKind(kind: ts.SyntaxKind): boolean; -export declare function isNodeKind(kind: ts.SyntaxKind): boolean; -export declare function isAssignmentKind(kind: ts.SyntaxKind): boolean; -export declare function isTypeNodeKind(kind: ts.SyntaxKind): boolean; -export declare function isJsDocKind(kind: ts.SyntaxKind): boolean; -export declare function isKeywordKind(kind: ts.SyntaxKind): boolean; -export declare function isThisParameter(parameter: ts.ParameterDeclaration): boolean; -export declare function getModifier(node: ts.Node, kind: ts.Modifier['kind']): ts.Modifier | undefined; -export declare function hasModifier(modifiers: ts.ModifiersArray | undefined, ...kinds: Array): boolean; -export declare function isParameterProperty(node: ts.ParameterDeclaration): boolean; -export declare function hasAccessModifier(node: ts.ClassElement | ts.ParameterDeclaration): boolean; -export declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean; -export declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean; -export declare const isSymbolFlagSet: (symbol: ts.Symbol, flag: ts.SymbolFlags) => boolean; -export declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags): boolean; -export declare function isModifierFlagSet(node: ts.Node, flag: ts.ModifierFlags): boolean; -export declare function getPreviousStatement(statement: ts.Statement): ts.Statement | undefined; -export declare function getNextStatement(statement: ts.Statement): ts.Statement | undefined; -export declare function getPreviousToken(node: ts.Node, sourceFile?: ts.SourceFile): ts.Node | undefined; -export declare function getNextToken(node: ts.Node, sourceFile?: ts.SourceFile): ts.Node | undefined; -export declare function getTokenAtPosition(parent: ts.Node, pos: number, sourceFile?: ts.SourceFile, allowJsDoc?: boolean): ts.Node | undefined; -export declare function getCommentAtPosition(sourceFile: ts.SourceFile, pos: number, parent?: ts.Node): ts.CommentRange | undefined; -export declare function isPositionInComment(sourceFile: ts.SourceFile, pos: number, parent?: ts.Node): boolean; -export declare function commentText(sourceText: string, comment: ts.CommentRange): string; -export declare function getWrappedNodeAtPosition(wrap: NodeWrap, pos: number): NodeWrap | undefined; -export declare function getPropertyName(propertyName: ts.PropertyName): string | undefined; -export declare function forEachDestructuringIdentifier(pattern: ts.BindingPattern, fn: (element: ts.BindingElement & { - name: ts.Identifier; -}) => T): T | undefined; -export declare function forEachDeclaredVariable(declarationList: ts.VariableDeclarationList, cb: (element: (ts.VariableDeclaration | ts.BindingElement) & { - name: ts.Identifier; -}) => T): T | undefined; -export declare enum VariableDeclarationKind { - Var = 0, - Let = 1, - Const = 2 -} -export declare function getVariableDeclarationKind(declarationList: ts.VariableDeclarationList): VariableDeclarationKind; -export declare function isBlockScopedVariableDeclarationList(declarationList: ts.VariableDeclarationList): boolean; -export declare function isBlockScopedVariableDeclaration(declaration: ts.VariableDeclaration): boolean; -export declare function isBlockScopedDeclarationStatement(statement: ts.Statement): statement is ts.DeclarationStatement; -export declare function isInSingleStatementContext(statement: ts.Statement): boolean; -export declare enum ScopeBoundary { - None = 0, - Function = 1, - Block = 2, - Type = 4, - ConditionalType = 8 -} -export declare enum ScopeBoundarySelector { - Function = 1, - Block = 3, - Type = 7, - InferType = 8 -} -export declare function isScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function isTypeScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function isFunctionScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function isBlockScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function hasOwnThisReference(node: ts.Node): boolean; -export declare function isFunctionWithBody(node: ts.Node): node is ts.FunctionLikeDeclaration & { - body: {}; -}; -export declare function forEachToken(node: ts.Node, cb: (node: ts.Node) => void, sourceFile?: ts.SourceFile): void; -export declare type ForEachTokenCallback = (fullText: string, kind: ts.SyntaxKind, range: ts.TextRange, parent: ts.Node) => void; -export declare function forEachTokenWithTrivia(node: ts.Node, cb: ForEachTokenCallback, sourceFile?: ts.SourceFile): void; -export declare type ForEachCommentCallback = (fullText: string, comment: ts.CommentRange) => void; -export declare function forEachComment(node: ts.Node, cb: ForEachCommentCallback, sourceFile?: ts.SourceFile): void; -export interface LineRange extends ts.TextRange { - contentLength: number; -} -export declare function getLineRanges(sourceFile: ts.SourceFile): LineRange[]; -export declare function getLineBreakStyle(sourceFile: ts.SourceFile): "\n" | "\r\n"; -export declare function isValidIdentifier(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidPropertyAccess(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidPropertyName(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidNumericLiteral(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidJsxIdentifier(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isNumericPropertyName(name: string | ts.__String): boolean; -export declare function isSameLine(sourceFile: ts.SourceFile, pos1: number, pos2: number): boolean; -export declare enum SideEffectOptions { - None = 0, - TaggedTemplate = 1, - Constructor = 2, - JsxElement = 4 -} -export declare function hasSideEffects(node: ts.Expression, options?: SideEffectOptions): boolean; -export declare function getDeclarationOfBindingElement(node: ts.BindingElement): ts.VariableDeclaration | ts.ParameterDeclaration; -export declare function isExpressionValueUsed(node: ts.Expression): boolean; -export declare enum AccessKind { - None = 0, - Read = 1, - Write = 2, - Delete = 4, - ReadWrite = 3, - Modification = 6 -} -export declare function getAccessKind(node: ts.Node): AccessKind; -export declare function isReassignmentTarget(node: ts.Expression): boolean; -export declare function canHaveJsDoc(node: ts.Node): node is ts.HasJSDoc; -export declare function getJsDoc(node: ts.Node, sourceFile?: ts.SourceFile): ts.JSDoc[]; -export declare function parseJsDocOfNode(node: ts.Node, considerTrailingComments?: boolean, sourceFile?: ts.SourceFile): ts.JSDoc[]; -export declare enum ImportKind { - ImportDeclaration = 1, - ImportEquals = 2, - ExportFrom = 4, - DynamicImport = 8, - Require = 16, - ImportType = 32, - All = 63, - AllImports = 59, - AllStaticImports = 3, - AllImportExpressions = 24, - AllRequireLike = 18 -} -export declare function findImports(sourceFile: ts.SourceFile, kinds: ImportKind): (ts.StringLiteral | ts.NoSubstitutionTemplateLiteral)[]; -export declare type ImportLike = ts.ImportDeclaration | (ts.ImportEqualsDeclaration & { - moduleReference: ts.ExternalModuleReference; -}) | (ts.ExportDeclaration & { - moduleSpecifier: {}; -}) | (ts.CallExpression & { - expression: ts.Token | (ts.Identifier & { - text: 'require'; - }); - arguments: [ts.Expression]; -}) | ts.ImportTypeNode; -export declare function findImportLikeNodes(sourceFile: ts.SourceFile, kinds: ImportKind): ImportLike[]; -export declare function isStatementInAmbientContext(node: ts.Statement): boolean; -export declare function isAmbientModuleBlock(node: ts.Node): node is ts.ModuleBlock; -export declare function getIIFE(func: ts.FunctionExpression | ts.ArrowFunction): ts.CallExpression | undefined; -export declare type StrictCompilerOption = 'noImplicitAny' | 'noImplicitThis' | 'strictNullChecks' | 'strictFunctionTypes' | 'strictPropertyInitialization' | 'alwaysStrict' | 'strictBindCallApply'; -export declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, option: StrictCompilerOption): boolean; -export declare type BooleanCompilerOptions = { - [K in keyof ts.CompilerOptions]: NonNullable extends boolean ? K : never; -} extends { - [_ in keyof ts.CompilerOptions]: infer U; -} ? U : never; -export declare function isCompilerOptionEnabled(options: ts.CompilerOptions, option: BooleanCompilerOptions | 'stripInternal'): boolean; -export declare function isAmbientModule(node: ts.ModuleDeclaration): boolean; -export declare function getCheckJsDirective(source: string): ts.CheckJsDirective | undefined; -export declare function isConstAssertion(node: ts.AssertionExpression): boolean; -export declare function isInConstContext(node: ts.Expression): boolean; -export declare function isReadonlyAssignmentDeclaration(node: ts.CallExpression, checker: ts.TypeChecker): boolean; -export declare function isBindableObjectDefinePropertyCall(node: ts.CallExpression): boolean; -export interface WellKnownSymbolLiteral extends ts.PropertyAccessExpression { - expression: ts.Identifier & { - text: 'Symbol'; - escapedText: 'symbol'; - }; -} -export declare function isWellKnownSymbolLiterally(node: ts.Expression): node is WellKnownSymbolLiteral; -export interface PropertyName { - displayName: string; - symbolName: ts.__String; -} -export declare function getPropertyNameOfWellKnownSymbol(node: WellKnownSymbolLiteral): PropertyName; -export interface LateBoundPropertyNames { - known: boolean; - names: PropertyName[]; -} -export declare function getLateBoundPropertyNames(node: ts.Expression, checker: ts.TypeChecker): LateBoundPropertyNames; -export declare function getLateBoundPropertyNamesOfPropertyName(node: ts.PropertyName, checker: ts.TypeChecker): LateBoundPropertyNames; -export declare function getSingleLateBoundPropertyNameOfPropertyName(node: ts.PropertyName, checker: ts.TypeChecker): PropertyName | undefined; -export declare function unwrapParentheses(node: ts.Expression): ts.Expression; diff --git a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/util.js b/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/util.js deleted file mode 100644 index 07b469a496..0000000000 --- a/node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils/util/util.js +++ /dev/null @@ -1,1422 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const node_1 = require("../typeguard/node"); -const _3_2_1 = require("../typeguard/3.2"); -const type_1 = require("./type"); -function getChildOfKind(node, kind, sourceFile) { - for (const child of node.getChildren(sourceFile)) - if (child.kind === kind) - return child; -} -exports.getChildOfKind = getChildOfKind; -function isTokenKind(kind) { - return kind >= ts.SyntaxKind.FirstToken && kind <= ts.SyntaxKind.LastToken; -} -exports.isTokenKind = isTokenKind; -function isNodeKind(kind) { - return kind >= ts.SyntaxKind.FirstNode; -} -exports.isNodeKind = isNodeKind; -function isAssignmentKind(kind) { - return kind >= ts.SyntaxKind.FirstAssignment && kind <= ts.SyntaxKind.LastAssignment; -} -exports.isAssignmentKind = isAssignmentKind; -function isTypeNodeKind(kind) { - return kind >= ts.SyntaxKind.FirstTypeNode && kind <= ts.SyntaxKind.LastTypeNode; -} -exports.isTypeNodeKind = isTypeNodeKind; -function isJsDocKind(kind) { - return kind >= ts.SyntaxKind.FirstJSDocNode && kind <= ts.SyntaxKind.LastJSDocNode; -} -exports.isJsDocKind = isJsDocKind; -function isKeywordKind(kind) { - return kind >= ts.SyntaxKind.FirstKeyword && kind <= ts.SyntaxKind.LastKeyword; -} -exports.isKeywordKind = isKeywordKind; -function isThisParameter(parameter) { - return parameter.name.kind === ts.SyntaxKind.Identifier && parameter.name.originalKeywordKind === ts.SyntaxKind.ThisKeyword; -} -exports.isThisParameter = isThisParameter; -function getModifier(node, kind) { - if (node.modifiers !== undefined) - for (const modifier of node.modifiers) - if (modifier.kind === kind) - return modifier; -} -exports.getModifier = getModifier; -function hasModifier(modifiers, ...kinds) { - if (modifiers === undefined) - return false; - for (const modifier of modifiers) - if (kinds.includes(modifier.kind)) - return true; - return false; -} -exports.hasModifier = hasModifier; -function isParameterProperty(node) { - return hasModifier(node.modifiers, ts.SyntaxKind.PublicKeyword, ts.SyntaxKind.ProtectedKeyword, ts.SyntaxKind.PrivateKeyword, ts.SyntaxKind.ReadonlyKeyword); -} -exports.isParameterProperty = isParameterProperty; -function hasAccessModifier(node) { - return hasModifier(node.modifiers, ts.SyntaxKind.PublicKeyword, ts.SyntaxKind.ProtectedKeyword, ts.SyntaxKind.PrivateKeyword); -} -exports.hasAccessModifier = hasAccessModifier; -function isFlagSet(obj, flag) { - return (obj.flags & flag) !== 0; -} -exports.isNodeFlagSet = isFlagSet; -exports.isTypeFlagSet = isFlagSet; -exports.isSymbolFlagSet = isFlagSet; -function isObjectFlagSet(objectType, flag) { - return (objectType.objectFlags & flag) !== 0; -} -exports.isObjectFlagSet = isObjectFlagSet; -function isModifierFlagSet(node, flag) { - return (ts.getCombinedModifierFlags(node) & flag) !== 0; -} -exports.isModifierFlagSet = isModifierFlagSet; -function getPreviousStatement(statement) { - const parent = statement.parent; - if (node_1.isBlockLike(parent)) { - const index = parent.statements.indexOf(statement); - if (index > 0) - return parent.statements[index - 1]; - } -} -exports.getPreviousStatement = getPreviousStatement; -function getNextStatement(statement) { - const parent = statement.parent; - if (node_1.isBlockLike(parent)) { - const index = parent.statements.indexOf(statement); - if (index < parent.statements.length) - return parent.statements[index + 1]; - } -} -exports.getNextStatement = getNextStatement; -function getPreviousToken(node, sourceFile) { - let parent = node.parent; - while (parent !== undefined && parent.pos === node.pos) - parent = parent.parent; - if (parent === undefined) - return; - outer: while (true) { - const children = parent.getChildren(sourceFile); - for (let i = children.length - 1; i >= 0; --i) { - const child = children[i]; - if (child.pos < node.pos && child.kind !== ts.SyntaxKind.JSDocComment) { - if (isTokenKind(child.kind)) - return child; - parent = child; - continue outer; - } - } - return; - } -} -exports.getPreviousToken = getPreviousToken; -function getNextToken(node, sourceFile = node.getSourceFile()) { - if (node.kind === ts.SyntaxKind.SourceFile || node.kind === ts.SyntaxKind.EndOfFileToken) - return; - const end = node.end; - node = node.parent; - while (node.end === end) { - if (node.parent === undefined) - return node.endOfFileToken; - node = node.parent; - } - return getTokenAtPositionWorker(node, end, sourceFile, false); -} -exports.getNextToken = getNextToken; -function getTokenAtPosition(parent, pos, sourceFile, allowJsDoc) { - if (pos < parent.pos || pos >= parent.end) - return; - if (isTokenKind(parent.kind)) - return parent; - if (sourceFile === undefined) - sourceFile = parent.getSourceFile(); - return getTokenAtPositionWorker(parent, pos, sourceFile, allowJsDoc === true); -} -exports.getTokenAtPosition = getTokenAtPosition; -function getTokenAtPositionWorker(node, pos, sourceFile, allowJsDoc) { - outer: while (true) { - for (const child of node.getChildren(sourceFile)) { - if (child.end > pos && (allowJsDoc || child.kind !== ts.SyntaxKind.JSDocComment)) { - if (isTokenKind(child.kind)) - return child; - node = child; - continue outer; - } - } - return; - } -} -function getCommentAtPosition(sourceFile, pos, parent = sourceFile) { - const token = getTokenAtPosition(parent, pos, sourceFile); - if (token === undefined || token.kind === ts.SyntaxKind.JsxText || pos >= token.end - (ts.tokenToString(token.kind) || '').length) - return; - const startPos = token.pos === 0 - ? (ts.getShebang(sourceFile.text) || '').length - : token.pos; - return startPos !== 0 && ts.forEachTrailingCommentRange(sourceFile.text, startPos, commentAtPositionCallback, pos) || - ts.forEachLeadingCommentRange(sourceFile.text, startPos, commentAtPositionCallback, pos); -} -exports.getCommentAtPosition = getCommentAtPosition; -function commentAtPositionCallback(pos, end, kind, _nl, at) { - return at >= pos && at < end ? { pos, end, kind } : undefined; -} -function isPositionInComment(sourceFile, pos, parent) { - return getCommentAtPosition(sourceFile, pos, parent) !== undefined; -} -exports.isPositionInComment = isPositionInComment; -function commentText(sourceText, comment) { - return sourceText.substring(comment.pos + 2, comment.kind === ts.SyntaxKind.SingleLineCommentTrivia ? comment.end : comment.end - 2); -} -exports.commentText = commentText; -function getWrappedNodeAtPosition(wrap, pos) { - if (wrap.node.pos > pos || wrap.node.end <= pos) - return; - outer: while (true) { - for (const child of wrap.children) { - if (child.node.pos > pos) - return wrap; - if (child.node.end > pos) { - wrap = child; - continue outer; - } - } - return wrap; - } -} -exports.getWrappedNodeAtPosition = getWrappedNodeAtPosition; -function getPropertyName(propertyName) { - if (propertyName.kind === ts.SyntaxKind.ComputedPropertyName) { - if (!node_1.isLiteralExpression(propertyName.expression)) - return; - if (_3_2_1.isBigIntLiteral(propertyName.expression)) - return propertyName.expression.text.slice(0, -1); - return propertyName.expression.text; - } - return propertyName.text; -} -exports.getPropertyName = getPropertyName; -function forEachDestructuringIdentifier(pattern, fn) { - for (const element of pattern.elements) { - if (element.kind !== ts.SyntaxKind.BindingElement) - continue; - let result; - if (element.name.kind === ts.SyntaxKind.Identifier) { - result = fn(element); - } - else { - result = forEachDestructuringIdentifier(element.name, fn); - } - if (result) - return result; - } -} -exports.forEachDestructuringIdentifier = forEachDestructuringIdentifier; -function forEachDeclaredVariable(declarationList, cb) { - for (const declaration of declarationList.declarations) { - let result; - if (declaration.name.kind === ts.SyntaxKind.Identifier) { - result = cb(declaration); - } - else { - result = forEachDestructuringIdentifier(declaration.name, cb); - } - if (result) - return result; - } -} -exports.forEachDeclaredVariable = forEachDeclaredVariable; -var VariableDeclarationKind; -(function (VariableDeclarationKind) { - VariableDeclarationKind[VariableDeclarationKind["Var"] = 0] = "Var"; - VariableDeclarationKind[VariableDeclarationKind["Let"] = 1] = "Let"; - VariableDeclarationKind[VariableDeclarationKind["Const"] = 2] = "Const"; -})(VariableDeclarationKind = exports.VariableDeclarationKind || (exports.VariableDeclarationKind = {})); -function getVariableDeclarationKind(declarationList) { - if (declarationList.flags & ts.NodeFlags.Let) - return 1; - if (declarationList.flags & ts.NodeFlags.Const) - return 2; - return 0; -} -exports.getVariableDeclarationKind = getVariableDeclarationKind; -function isBlockScopedVariableDeclarationList(declarationList) { - return (declarationList.flags & ts.NodeFlags.BlockScoped) !== 0; -} -exports.isBlockScopedVariableDeclarationList = isBlockScopedVariableDeclarationList; -function isBlockScopedVariableDeclaration(declaration) { - const parent = declaration.parent; - return parent.kind === ts.SyntaxKind.CatchClause || - isBlockScopedVariableDeclarationList(parent); -} -exports.isBlockScopedVariableDeclaration = isBlockScopedVariableDeclaration; -function isBlockScopedDeclarationStatement(statement) { - switch (statement.kind) { - case ts.SyntaxKind.VariableStatement: - return isBlockScopedVariableDeclarationList(statement.declarationList); - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - return true; - default: - return false; - } -} -exports.isBlockScopedDeclarationStatement = isBlockScopedDeclarationStatement; -function isInSingleStatementContext(statement) { - switch (statement.parent.kind) { - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.IfStatement: - case ts.SyntaxKind.WithStatement: - case ts.SyntaxKind.LabeledStatement: - return true; - default: - return false; - } -} -exports.isInSingleStatementContext = isInSingleStatementContext; -var ScopeBoundary; -(function (ScopeBoundary) { - ScopeBoundary[ScopeBoundary["None"] = 0] = "None"; - ScopeBoundary[ScopeBoundary["Function"] = 1] = "Function"; - ScopeBoundary[ScopeBoundary["Block"] = 2] = "Block"; - ScopeBoundary[ScopeBoundary["Type"] = 4] = "Type"; - ScopeBoundary[ScopeBoundary["ConditionalType"] = 8] = "ConditionalType"; -})(ScopeBoundary = exports.ScopeBoundary || (exports.ScopeBoundary = {})); -var ScopeBoundarySelector; -(function (ScopeBoundarySelector) { - ScopeBoundarySelector[ScopeBoundarySelector["Function"] = 1] = "Function"; - ScopeBoundarySelector[ScopeBoundarySelector["Block"] = 3] = "Block"; - ScopeBoundarySelector[ScopeBoundarySelector["Type"] = 7] = "Type"; - ScopeBoundarySelector[ScopeBoundarySelector["InferType"] = 8] = "InferType"; -})(ScopeBoundarySelector = exports.ScopeBoundarySelector || (exports.ScopeBoundarySelector = {})); -function isScopeBoundary(node) { - return isFunctionScopeBoundary(node) || isBlockScopeBoundary(node) || isTypeScopeBoundary(node); -} -exports.isScopeBoundary = isScopeBoundary; -function isTypeScopeBoundary(node) { - switch (node.kind) { - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.MappedType: - return 4; - case ts.SyntaxKind.ConditionalType: - return 8; - default: - return 0; - } -} -exports.isTypeScopeBoundary = isTypeScopeBoundary; -function isFunctionScopeBoundary(node) { - switch (node.kind) { - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.ConstructorType: - case ts.SyntaxKind.FunctionType: - return 1; - case ts.SyntaxKind.SourceFile: - return ts.isExternalModule(node) ? 1 : 0; - default: - return 0; - } -} -exports.isFunctionScopeBoundary = isFunctionScopeBoundary; -function isBlockScopeBoundary(node) { - switch (node.kind) { - case ts.SyntaxKind.Block: - const parent = node.parent; - return parent.kind !== ts.SyntaxKind.CatchClause && - (parent.kind === ts.SyntaxKind.SourceFile || - !isFunctionScopeBoundary(parent)) - ? 2 - : 0; - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.CaseBlock: - case ts.SyntaxKind.CatchClause: - case ts.SyntaxKind.WithStatement: - return 2; - default: - return 0; - } -} -exports.isBlockScopeBoundary = isBlockScopeBoundary; -function hasOwnThisReference(node) { - switch (node.kind) { - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.FunctionExpression: - return true; - case ts.SyntaxKind.FunctionDeclaration: - return node.body !== undefined; - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - return node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression; - default: - return false; - } -} -exports.hasOwnThisReference = hasOwnThisReference; -function isFunctionWithBody(node) { - switch (node.kind) { - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.Constructor: - return node.body !== undefined; - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - return true; - default: - return false; - } -} -exports.isFunctionWithBody = isFunctionWithBody; -function forEachToken(node, cb, sourceFile = node.getSourceFile()) { - return (function iterate(child) { - if (isTokenKind(child.kind)) - return cb(child); - if (child.kind !== ts.SyntaxKind.JSDocComment) - return child.getChildren(sourceFile).forEach(iterate); - })(node); -} -exports.forEachToken = forEachToken; -function forEachTokenWithTrivia(node, cb, sourceFile = node.getSourceFile()) { - const fullText = sourceFile.text; - const scanner = ts.createScanner(sourceFile.languageVersion, false, sourceFile.languageVariant, fullText); - return forEachToken(node, (token) => { - const tokenStart = token.kind === ts.SyntaxKind.JsxText || token.pos === token.end ? token.pos : token.getStart(sourceFile); - if (tokenStart !== token.pos) { - scanner.setTextPos(token.pos); - let kind = scanner.scan(); - let pos = scanner.getTokenPos(); - while (pos < tokenStart) { - const textPos = scanner.getTextPos(); - cb(fullText, kind, { pos, end: textPos }, token.parent); - if (textPos === tokenStart) - break; - kind = scanner.scan(); - pos = scanner.getTokenPos(); - } - } - return cb(fullText, token.kind, { end: token.end, pos: tokenStart }, token.parent); - }, sourceFile); -} -exports.forEachTokenWithTrivia = forEachTokenWithTrivia; -function forEachComment(node, cb, sourceFile = node.getSourceFile()) { - const fullText = sourceFile.text; - const notJsx = sourceFile.languageVariant !== ts.LanguageVariant.JSX; - return forEachToken(node, (token) => { - if (token.pos === token.end) - return; - if (token.kind !== ts.SyntaxKind.JsxText) - ts.forEachLeadingCommentRange(fullText, token.pos === 0 ? (ts.getShebang(fullText) || '').length : token.pos, commentCallback); - if (notJsx || canHaveTrailingTrivia(token)) - return ts.forEachTrailingCommentRange(fullText, token.end, commentCallback); - }, sourceFile); - function commentCallback(pos, end, kind) { - cb(fullText, { pos, end, kind }); - } -} -exports.forEachComment = forEachComment; -function canHaveTrailingTrivia(token) { - switch (token.kind) { - case ts.SyntaxKind.CloseBraceToken: - return token.parent.kind !== ts.SyntaxKind.JsxExpression || !isJsxElementOrFragment(token.parent.parent); - case ts.SyntaxKind.GreaterThanToken: - switch (token.parent.kind) { - case ts.SyntaxKind.JsxOpeningElement: - return token.end !== token.parent.end; - case ts.SyntaxKind.JsxOpeningFragment: - return false; - case ts.SyntaxKind.JsxSelfClosingElement: - return token.end !== token.parent.end || - !isJsxElementOrFragment(token.parent.parent); - case ts.SyntaxKind.JsxClosingElement: - case ts.SyntaxKind.JsxClosingFragment: - return !isJsxElementOrFragment(token.parent.parent.parent); - } - } - return true; -} -function isJsxElementOrFragment(node) { - return node.kind === ts.SyntaxKind.JsxElement || node.kind === ts.SyntaxKind.JsxFragment; -} -function getLineRanges(sourceFile) { - const lineStarts = sourceFile.getLineStarts(); - const result = []; - const length = lineStarts.length; - const sourceText = sourceFile.text; - let pos = 0; - for (let i = 1; i < length; ++i) { - const end = lineStarts[i]; - let lineEnd = end; - for (; lineEnd > pos; --lineEnd) - if (!ts.isLineBreak(sourceText.charCodeAt(lineEnd - 1))) - break; - result.push({ - pos, - end, - contentLength: lineEnd - pos, - }); - pos = end; - } - result.push({ - pos, - end: sourceFile.end, - contentLength: sourceFile.end - pos, - }); - return result; -} -exports.getLineRanges = getLineRanges; -function getLineBreakStyle(sourceFile) { - const lineStarts = sourceFile.getLineStarts(); - return lineStarts.length === 1 || lineStarts[1] < 2 || sourceFile.text[lineStarts[1] - 2] !== '\r' - ? '\n' - : '\r\n'; -} -exports.getLineBreakStyle = getLineBreakStyle; -let cachedScanner; -function scanToken(text, languageVersion) { - if (cachedScanner === undefined) { - cachedScanner = ts.createScanner(languageVersion, false, undefined, text); - } - else { - cachedScanner.setScriptTarget(languageVersion); - cachedScanner.setText(text); - } - cachedScanner.scan(); - return cachedScanner; -} -function isValidIdentifier(text, languageVersion = ts.ScriptTarget.Latest) { - const scan = scanToken(text, languageVersion); - return scan.isIdentifier() && scan.getTextPos() === text.length && scan.getTokenPos() === 0; -} -exports.isValidIdentifier = isValidIdentifier; -function charSize(ch) { - return ch >= 0x10000 ? 2 : 1; -} -function isValidPropertyAccess(text, languageVersion = ts.ScriptTarget.Latest) { - if (text.length === 0) - return false; - let ch = text.codePointAt(0); - if (!ts.isIdentifierStart(ch, languageVersion)) - return false; - for (let i = charSize(ch); i < text.length; i += charSize(ch)) { - ch = text.codePointAt(i); - if (!ts.isIdentifierPart(ch, languageVersion)) - return false; - } - return true; -} -exports.isValidPropertyAccess = isValidPropertyAccess; -function isValidPropertyName(text, languageVersion = ts.ScriptTarget.Latest) { - if (isValidPropertyAccess(text, languageVersion)) - return true; - const scan = scanToken(text, languageVersion); - return scan.getTextPos() === text.length && - scan.getToken() === ts.SyntaxKind.NumericLiteral && scan.getTokenValue() === text; -} -exports.isValidPropertyName = isValidPropertyName; -function isValidNumericLiteral(text, languageVersion = ts.ScriptTarget.Latest) { - const scan = scanToken(text, languageVersion); - return scan.getToken() === ts.SyntaxKind.NumericLiteral && scan.getTextPos() === text.length && scan.getTokenPos() === 0; -} -exports.isValidNumericLiteral = isValidNumericLiteral; -function isValidJsxIdentifier(text, languageVersion = ts.ScriptTarget.Latest) { - if (text.length === 0) - return false; - let ch = text.codePointAt(0); - if (!ts.isIdentifierStart(ch, languageVersion)) - return false; - for (let i = charSize(ch); i < text.length; i += charSize(ch)) { - ch = text.codePointAt(i); - if (!ts.isIdentifierPart(ch, languageVersion) && ch !== 45) - return false; - } - return true; -} -exports.isValidJsxIdentifier = isValidJsxIdentifier; -function isNumericPropertyName(name) { - return String(+name) === name; -} -exports.isNumericPropertyName = isNumericPropertyName; -function isSameLine(sourceFile, pos1, pos2) { - return ts.getLineAndCharacterOfPosition(sourceFile, pos1).line === ts.getLineAndCharacterOfPosition(sourceFile, pos2).line; -} -exports.isSameLine = isSameLine; -var SideEffectOptions; -(function (SideEffectOptions) { - SideEffectOptions[SideEffectOptions["None"] = 0] = "None"; - SideEffectOptions[SideEffectOptions["TaggedTemplate"] = 1] = "TaggedTemplate"; - SideEffectOptions[SideEffectOptions["Constructor"] = 2] = "Constructor"; - SideEffectOptions[SideEffectOptions["JsxElement"] = 4] = "JsxElement"; -})(SideEffectOptions = exports.SideEffectOptions || (exports.SideEffectOptions = {})); -function hasSideEffects(node, options) { - switch (node.kind) { - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.PostfixUnaryExpression: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.YieldExpression: - case ts.SyntaxKind.DeleteExpression: - return true; - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.AsExpression: - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.NonNullExpression: - case ts.SyntaxKind.VoidExpression: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.PartiallyEmittedExpression: - return hasSideEffects(node.expression, options); - case ts.SyntaxKind.BinaryExpression: - return isAssignmentKind(node.operatorToken.kind) || - hasSideEffects(node.left, options) || - hasSideEffects(node.right, options); - case ts.SyntaxKind.PrefixUnaryExpression: - switch (node.operator) { - case ts.SyntaxKind.PlusPlusToken: - case ts.SyntaxKind.MinusMinusToken: - return true; - default: - return hasSideEffects(node.operand, options); - } - case ts.SyntaxKind.ElementAccessExpression: - return hasSideEffects(node.expression, options) || - node.argumentExpression !== undefined && - hasSideEffects(node.argumentExpression, options); - case ts.SyntaxKind.ConditionalExpression: - return hasSideEffects(node.condition, options) || - hasSideEffects(node.whenTrue, options) || - hasSideEffects(node.whenFalse, options); - case ts.SyntaxKind.NewExpression: - if (options & 2 || hasSideEffects(node.expression, options)) - return true; - if (node.arguments !== undefined) - for (const child of node.arguments) - if (hasSideEffects(child, options)) - return true; - return false; - case ts.SyntaxKind.TaggedTemplateExpression: - if (options & 1 || hasSideEffects(node.tag, options)) - return true; - if (node.template.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral) - return false; - node = node.template; - case ts.SyntaxKind.TemplateExpression: - for (const child of node.templateSpans) - if (hasSideEffects(child.expression, options)) - return true; - return false; - case ts.SyntaxKind.ClassExpression: - return classExpressionHasSideEffects(node, options); - case ts.SyntaxKind.ArrayLiteralExpression: - for (const child of node.elements) - if (hasSideEffects(child, options)) - return true; - return false; - case ts.SyntaxKind.ObjectLiteralExpression: - for (const child of node.properties) { - if (child.name !== undefined && child.name.kind === ts.SyntaxKind.ComputedPropertyName && - hasSideEffects(child.name.expression, options)) - return true; - switch (child.kind) { - case ts.SyntaxKind.PropertyAssignment: - if (hasSideEffects(child.initializer, options)) - return true; - break; - case ts.SyntaxKind.SpreadAssignment: - if (hasSideEffects(child.expression, options)) - return true; - } - } - return false; - case ts.SyntaxKind.JsxExpression: - return node.expression !== undefined && hasSideEffects(node.expression, options); - case ts.SyntaxKind.JsxElement: - case ts.SyntaxKind.JsxFragment: - for (const child of node.children) - if (child.kind !== ts.SyntaxKind.JsxText && hasSideEffects(child, options)) - return true; - if (node.kind === ts.SyntaxKind.JsxFragment) - return false; - node = node.openingElement; - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.JsxOpeningElement: - if (options & 4) - return true; - for (const child of node.attributes.properties) { - if (child.kind === ts.SyntaxKind.JsxSpreadAttribute) { - if (hasSideEffects(child.expression, options)) - return true; - } - else if (child.initializer !== undefined && hasSideEffects(child.initializer, options)) { - return true; - } - } - return false; - case ts.SyntaxKind.CommaListExpression: - for (const child of node.elements) - if (hasSideEffects(child, options)) - return true; - return false; - default: - return false; - } -} -exports.hasSideEffects = hasSideEffects; -function classExpressionHasSideEffects(node, options) { - if (node.heritageClauses !== undefined && node.heritageClauses[0].token === ts.SyntaxKind.ExtendsKeyword) - for (const base of node.heritageClauses[0].types) - if (hasSideEffects(base.expression, options)) - return true; - for (const child of node.members) - if (child.name !== undefined && child.name.kind === ts.SyntaxKind.ComputedPropertyName && - hasSideEffects(child.name.expression, options) || - node_1.isPropertyDeclaration(child) && child.initializer !== undefined && - hasSideEffects(child.initializer, options)) - return true; - return false; -} -function getDeclarationOfBindingElement(node) { - let parent = node.parent.parent; - while (parent.kind === ts.SyntaxKind.BindingElement) - parent = parent.parent.parent; - return parent; -} -exports.getDeclarationOfBindingElement = getDeclarationOfBindingElement; -function isExpressionValueUsed(node) { - while (true) { - const parent = node.parent; - switch (parent.kind) { - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.ElementAccessExpression: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.WithStatement: - case ts.SyntaxKind.ThrowStatement: - case ts.SyntaxKind.ReturnStatement: - case ts.SyntaxKind.JsxExpression: - case ts.SyntaxKind.JsxSpreadAttribute: - case ts.SyntaxKind.JsxElement: - case ts.SyntaxKind.JsxFragment: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.ComputedPropertyName: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.ExportSpecifier: - case ts.SyntaxKind.ExportAssignment: - case ts.SyntaxKind.ImportDeclaration: - case ts.SyntaxKind.ExternalModuleReference: - case ts.SyntaxKind.Decorator: - case ts.SyntaxKind.TaggedTemplateExpression: - case ts.SyntaxKind.TemplateSpan: - case ts.SyntaxKind.ExpressionWithTypeArguments: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.YieldExpression: - case ts.SyntaxKind.LiteralType: - case ts.SyntaxKind.JsxAttributes: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxClosingElement: - case ts.SyntaxKind.IfStatement: - case ts.SyntaxKind.CaseClause: - case ts.SyntaxKind.SwitchStatement: - return true; - case ts.SyntaxKind.PropertyAccessExpression: - return parent.expression === node; - case ts.SyntaxKind.QualifiedName: - return parent.left === node; - case ts.SyntaxKind.ShorthandPropertyAssignment: - return parent.objectAssignmentInitializer === node || - !isInDestructuringAssignment(parent); - case ts.SyntaxKind.PropertyAssignment: - return parent.initializer === node && !isInDestructuringAssignment(parent); - case ts.SyntaxKind.SpreadAssignment: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.ArrayLiteralExpression: - return !isInDestructuringAssignment(parent); - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.AsExpression: - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.PostfixUnaryExpression: - case ts.SyntaxKind.PrefixUnaryExpression: - case ts.SyntaxKind.NonNullExpression: - node = parent; - break; - case ts.SyntaxKind.ForStatement: - return parent.condition === node; - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.ForOfStatement: - return parent.expression === node; - case ts.SyntaxKind.ConditionalExpression: - if (parent.condition === node) - return true; - node = parent; - break; - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.EnumMember: - return parent.initializer === node; - case ts.SyntaxKind.ImportEqualsDeclaration: - return parent.moduleReference === node; - case ts.SyntaxKind.CommaListExpression: - if (parent.elements[parent.elements.length - 1] !== node) - return false; - node = parent; - break; - case ts.SyntaxKind.BinaryExpression: - if (parent.right === node) { - if (parent.operatorToken.kind === ts.SyntaxKind.CommaToken) { - node = parent; - break; - } - return true; - } - switch (parent.operatorToken.kind) { - case ts.SyntaxKind.CommaToken: - case ts.SyntaxKind.EqualsToken: - return false; - case ts.SyntaxKind.EqualsEqualsEqualsToken: - case ts.SyntaxKind.EqualsEqualsToken: - case ts.SyntaxKind.ExclamationEqualsEqualsToken: - case ts.SyntaxKind.ExclamationEqualsToken: - case ts.SyntaxKind.InstanceOfKeyword: - case ts.SyntaxKind.PlusToken: - case ts.SyntaxKind.MinusToken: - case ts.SyntaxKind.AsteriskToken: - case ts.SyntaxKind.SlashToken: - case ts.SyntaxKind.PercentToken: - case ts.SyntaxKind.AsteriskAsteriskToken: - case ts.SyntaxKind.GreaterThanToken: - case ts.SyntaxKind.GreaterThanGreaterThanToken: - case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken: - case ts.SyntaxKind.GreaterThanEqualsToken: - case ts.SyntaxKind.LessThanToken: - case ts.SyntaxKind.LessThanLessThanToken: - case ts.SyntaxKind.LessThanEqualsToken: - case ts.SyntaxKind.AmpersandToken: - case ts.SyntaxKind.BarToken: - case ts.SyntaxKind.CaretToken: - case ts.SyntaxKind.BarBarToken: - case ts.SyntaxKind.AmpersandAmpersandToken: - case ts.SyntaxKind.InKeyword: - return true; - default: - node = parent; - } - break; - default: - return false; - } - } -} -exports.isExpressionValueUsed = isExpressionValueUsed; -function isInDestructuringAssignment(node) { - switch (node.kind) { - case ts.SyntaxKind.ShorthandPropertyAssignment: - if (node.objectAssignmentInitializer !== undefined) - return true; - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.SpreadAssignment: - node = node.parent; - break; - case ts.SyntaxKind.SpreadElement: - if (node.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) - return false; - node = node.parent; - } - while (true) { - switch (node.parent.kind) { - case ts.SyntaxKind.BinaryExpression: - return node.parent.left === node && - node.parent.operatorToken.kind === ts.SyntaxKind.EqualsToken; - case ts.SyntaxKind.ForOfStatement: - return node.parent.initializer === node; - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.ObjectLiteralExpression: - node = node.parent; - break; - case ts.SyntaxKind.SpreadAssignment: - case ts.SyntaxKind.PropertyAssignment: - node = node.parent.parent; - break; - case ts.SyntaxKind.SpreadElement: - if (node.parent.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) - return false; - node = node.parent.parent; - break; - default: - return false; - } - } -} -var AccessKind; -(function (AccessKind) { - AccessKind[AccessKind["None"] = 0] = "None"; - AccessKind[AccessKind["Read"] = 1] = "Read"; - AccessKind[AccessKind["Write"] = 2] = "Write"; - AccessKind[AccessKind["Delete"] = 4] = "Delete"; - AccessKind[AccessKind["ReadWrite"] = 3] = "ReadWrite"; - AccessKind[AccessKind["Modification"] = 6] = "Modification"; -})(AccessKind = exports.AccessKind || (exports.AccessKind = {})); -function getAccessKind(node) { - const parent = node.parent; - switch (parent.kind) { - case ts.SyntaxKind.DeleteExpression: - return 4; - case ts.SyntaxKind.PostfixUnaryExpression: - return 3; - case ts.SyntaxKind.PrefixUnaryExpression: - return parent.operator === ts.SyntaxKind.PlusPlusToken || - parent.operator === ts.SyntaxKind.MinusMinusToken - ? 3 - : 1; - case ts.SyntaxKind.BinaryExpression: - return parent.right === node - ? 1 - : !isAssignmentKind(parent.operatorToken.kind) - ? 1 - : parent.operatorToken.kind === ts.SyntaxKind.EqualsToken - ? 2 - : 3; - case ts.SyntaxKind.ShorthandPropertyAssignment: - return parent.objectAssignmentInitializer === node - ? 1 - : isInDestructuringAssignment(parent) - ? 2 - : 1; - case ts.SyntaxKind.PropertyAssignment: - return parent.name === node - ? 0 - : isInDestructuringAssignment(parent) - ? 2 - : 1; - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.SpreadAssignment: - return isInDestructuringAssignment(parent) - ? 2 - : 1; - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.NonNullExpression: - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.AsExpression: - return getAccessKind(parent); - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.ForInStatement: - return parent.initializer === node - ? 2 - : 1; - case ts.SyntaxKind.ExpressionWithTypeArguments: - return parent.parent.token === ts.SyntaxKind.ExtendsKeyword && - parent.parent.parent.kind !== ts.SyntaxKind.InterfaceDeclaration - ? 1 - : 0; - case ts.SyntaxKind.ComputedPropertyName: - case ts.SyntaxKind.ExpressionStatement: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.ElementAccessExpression: - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.IfStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.SwitchStatement: - case ts.SyntaxKind.WithStatement: - case ts.SyntaxKind.ThrowStatement: - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.TaggedTemplateExpression: - case ts.SyntaxKind.JsxExpression: - case ts.SyntaxKind.Decorator: - case ts.SyntaxKind.TemplateSpan: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.JsxSpreadAttribute: - case ts.SyntaxKind.VoidExpression: - case ts.SyntaxKind.ReturnStatement: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.YieldExpression: - case ts.SyntaxKind.ConditionalExpression: - case ts.SyntaxKind.CaseClause: - case ts.SyntaxKind.JsxElement: - return 1; - case ts.SyntaxKind.ArrowFunction: - return parent.body === node - ? 1 - : 2; - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.JsxAttribute: - return parent.initializer === node - ? 1 - : 0; - case ts.SyntaxKind.PropertyAccessExpression: - return parent.expression === node - ? 1 - : 0; - case ts.SyntaxKind.ExportAssignment: - return parent.isExportEquals - ? 1 - : 0; - } - return 0; -} -exports.getAccessKind = getAccessKind; -function isReassignmentTarget(node) { - return (getAccessKind(node) & 2) !== 0; -} -exports.isReassignmentTarget = isReassignmentTarget; -function canHaveJsDoc(node) { - const kind = node.kind; - switch (kind) { - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.SpreadAssignment: - case ts.SyntaxKind.ShorthandPropertyAssignment: - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.LabeledStatement: - case ts.SyntaxKind.ExpressionStatement: - case ts.SyntaxKind.VariableStatement: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.ImportEqualsDeclaration: - case ts.SyntaxKind.IndexSignature: - case ts.SyntaxKind.FunctionType: - case ts.SyntaxKind.ConstructorType: - case ts.SyntaxKind.JSDocFunctionType: - case ts.SyntaxKind.EndOfFileToken: - case ts.SyntaxKind.ExportDeclaration: - return true; - default: - return false; - } -} -exports.canHaveJsDoc = canHaveJsDoc; -function getJsDoc(node, sourceFile) { - if (node.kind === ts.SyntaxKind.EndOfFileToken) - return parseJsDocWorker(node, sourceFile || node.parent); - const result = []; - for (const child of node.getChildren(sourceFile)) { - if (!node_1.isJsDoc(child)) - break; - result.push(child); - } - return result; -} -exports.getJsDoc = getJsDoc; -function parseJsDocOfNode(node, considerTrailingComments, sourceFile = node.getSourceFile()) { - if (canHaveJsDoc(node) && node.kind !== ts.SyntaxKind.EndOfFileToken) { - const result = getJsDoc(node, sourceFile); - if (result.length !== 0 || !considerTrailingComments) - return result; - } - return parseJsDocWorker(node, sourceFile, considerTrailingComments); -} -exports.parseJsDocOfNode = parseJsDocOfNode; -function parseJsDocWorker(node, sourceFile, considerTrailingComments) { - const nodeStart = node.getStart(sourceFile); - const start = ts[considerTrailingComments && isSameLine(sourceFile, node.pos, nodeStart) - ? 'forEachTrailingCommentRange' - : 'forEachLeadingCommentRange'](sourceFile.text, node.pos, (pos, _end, kind) => kind === ts.SyntaxKind.MultiLineCommentTrivia && sourceFile.text[pos + 2] === '*' ? { pos } : undefined); - if (start === undefined) - return []; - const startPos = start.pos; - const text = sourceFile.text.slice(startPos, nodeStart); - const newSourceFile = ts.createSourceFile('jsdoc.ts', `${text}var a;`, sourceFile.languageVersion); - const result = getJsDoc(newSourceFile.statements[0], newSourceFile); - for (const doc of result) - updateNode(doc, node); - return result; - function updateNode(n, parent) { - n.pos += startPos; - n.end += startPos; - n.parent = parent; - return ts.forEachChild(n, (child) => updateNode(child, n), (children) => { - children.pos += startPos; - children.end += startPos; - for (const child of children) - updateNode(child, n); - }); - } -} -var ImportKind; -(function (ImportKind) { - ImportKind[ImportKind["ImportDeclaration"] = 1] = "ImportDeclaration"; - ImportKind[ImportKind["ImportEquals"] = 2] = "ImportEquals"; - ImportKind[ImportKind["ExportFrom"] = 4] = "ExportFrom"; - ImportKind[ImportKind["DynamicImport"] = 8] = "DynamicImport"; - ImportKind[ImportKind["Require"] = 16] = "Require"; - ImportKind[ImportKind["ImportType"] = 32] = "ImportType"; - ImportKind[ImportKind["All"] = 63] = "All"; - ImportKind[ImportKind["AllImports"] = 59] = "AllImports"; - ImportKind[ImportKind["AllStaticImports"] = 3] = "AllStaticImports"; - ImportKind[ImportKind["AllImportExpressions"] = 24] = "AllImportExpressions"; - ImportKind[ImportKind["AllRequireLike"] = 18] = "AllRequireLike"; - ImportKind[ImportKind["AllNestedImports"] = 56] = "AllNestedImports"; - ImportKind[ImportKind["AllTopLevelImports"] = 7] = "AllTopLevelImports"; -})(ImportKind = exports.ImportKind || (exports.ImportKind = {})); -function findImports(sourceFile, kinds) { - const result = []; - for (const node of findImportLikeNodes(sourceFile, kinds)) { - switch (node.kind) { - case ts.SyntaxKind.ImportDeclaration: - addIfTextualLiteral(node.moduleSpecifier); - break; - case ts.SyntaxKind.ImportEqualsDeclaration: - addIfTextualLiteral(node.moduleReference.expression); - break; - case ts.SyntaxKind.ExportDeclaration: - addIfTextualLiteral(node.moduleSpecifier); - break; - case ts.SyntaxKind.CallExpression: - addIfTextualLiteral(node.arguments[0]); - break; - case ts.SyntaxKind.ImportType: - if (node_1.isLiteralTypeNode(node.argument)) - addIfTextualLiteral(node.argument.literal); - break; - default: - throw new Error('unexpected node'); - } - } - return result; - function addIfTextualLiteral(node) { - if (node_1.isTextualLiteral(node)) - result.push(node); - } -} -exports.findImports = findImports; -function findImportLikeNodes(sourceFile, kinds) { - return new ImportFinder(sourceFile, kinds).find(); -} -exports.findImportLikeNodes = findImportLikeNodes; -class ImportFinder { - constructor(_sourceFile, _options) { - this._sourceFile = _sourceFile; - this._options = _options; - this._result = []; - } - find() { - if (this._sourceFile.isDeclarationFile) - this._options &= ~24; - if (this._options & 7) - this._findImports(this._sourceFile.statements); - if (this._options & 56) - this._findNestedImports(); - return this._result; - } - _findImports(statements) { - for (const statement of statements) { - if (node_1.isImportDeclaration(statement)) { - if (this._options & 1) - this._result.push(statement); - } - else if (node_1.isImportEqualsDeclaration(statement)) { - if (this._options & 2 && - statement.moduleReference.kind === ts.SyntaxKind.ExternalModuleReference) - this._result.push(statement); - } - else if (node_1.isExportDeclaration(statement)) { - if (statement.moduleSpecifier !== undefined && this._options & 4) - this._result.push(statement); - } - else if (node_1.isModuleDeclaration(statement)) { - this._findImportsInModule(statement); - } - } - } - _findImportsInModule(declaration) { - if (declaration.body === undefined) - return; - if (declaration.body.kind === ts.SyntaxKind.ModuleDeclaration) - return this._findImportsInModule(declaration.body); - this._findImports(declaration.body.statements); - } - _findNestedImports() { - let re; - if ((this._options & 56) === 16) { - re = /\brequire\s*[ { - if (kind === ts.SyntaxKind.SingleLineCommentTrivia) { - const text = source.slice(pos, end); - const match = /^\/{2,3}\s*@ts-(no)?check(?:\s|$)/i.exec(text); - if (match !== null) - directive = { pos, end, enabled: match[1] === undefined }; - } - }); - return directive; -} -exports.getCheckJsDirective = getCheckJsDirective; -function isConstAssertion(node) { - return node_1.isTypeReferenceNode(node.type) && - node.type.typeName.kind === ts.SyntaxKind.Identifier && - node.type.typeName.escapedText === 'const'; -} -exports.isConstAssertion = isConstAssertion; -function isInConstContext(node) { - let current = node; - while (true) { - const parent = current.parent; - outer: switch (parent.kind) { - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.AsExpression: - return isConstAssertion(parent); - case ts.SyntaxKind.PrefixUnaryExpression: - if (current.kind !== ts.SyntaxKind.NumericLiteral) - return false; - switch (parent.operator) { - case ts.SyntaxKind.PlusToken: - case ts.SyntaxKind.MinusToken: - current = parent; - break outer; - default: - return false; - } - case ts.SyntaxKind.PropertyAssignment: - if (parent.initializer !== current) - return false; - current = parent.parent; - break; - case ts.SyntaxKind.ShorthandPropertyAssignment: - current = parent.parent; - break; - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.ObjectLiteralExpression: - current = parent; - break; - default: - return false; - } - } -} -exports.isInConstContext = isInConstContext; -function isReadonlyAssignmentDeclaration(node, checker) { - if (!isBindableObjectDefinePropertyCall(node)) - return false; - const descriptorType = checker.getTypeAtLocation(node.arguments[2]); - if (descriptorType.getProperty('value') === undefined) - return descriptorType.getProperty('set') === undefined; - const writableProp = descriptorType.getProperty('writable'); - if (writableProp === undefined) - return false; - const writableType = writableProp.valueDeclaration !== undefined && node_1.isPropertyAssignment(writableProp.valueDeclaration) - ? checker.getTypeAtLocation(writableProp.valueDeclaration.initializer) - : checker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]); - return type_1.isBooleanLiteralType(writableType, false); -} -exports.isReadonlyAssignmentDeclaration = isReadonlyAssignmentDeclaration; -function isBindableObjectDefinePropertyCall(node) { - return node.arguments.length === 3 && - node_1.isEntityNameExpression(node.arguments[0]) && - node_1.isNumericOrStringLikeLiteral(node.arguments[1]) && - node_1.isPropertyAccessExpression(node.expression) && - node.expression.name.escapedText === 'defineProperty' && - node_1.isIdentifier(node.expression.expression) && - node.expression.expression.escapedText === 'Object'; -} -exports.isBindableObjectDefinePropertyCall = isBindableObjectDefinePropertyCall; -function isWellKnownSymbolLiterally(node) { - return ts.isPropertyAccessExpression(node) && - ts.isIdentifier(node.expression) && - node.expression.escapedText === 'Symbol'; -} -exports.isWellKnownSymbolLiterally = isWellKnownSymbolLiterally; -function getPropertyNameOfWellKnownSymbol(node) { - return { - displayName: `[Symbol.${node.name.text}]`, - symbolName: ('__@' + node.name.text), - }; -} -exports.getPropertyNameOfWellKnownSymbol = getPropertyNameOfWellKnownSymbol; -function getLateBoundPropertyNames(node, checker) { - const result = { - known: true, - names: [], - }; - node = unwrapParentheses(node); - if (isWellKnownSymbolLiterally(node)) { - result.names.push(getPropertyNameOfWellKnownSymbol(node)); - } - else { - const type = checker.getTypeAtLocation(node); - for (const key of type_1.unionTypeParts(checker.getBaseConstraintOfType(type) || type)) { - const propertyName = type_1.getPropertyNameFromType(key); - if (propertyName) { - result.names.push(propertyName); - } - else { - result.known = false; - } - } - } - return result; -} -exports.getLateBoundPropertyNames = getLateBoundPropertyNames; -function getLateBoundPropertyNamesOfPropertyName(node, checker) { - const staticName = getPropertyName(node); - return staticName !== undefined - ? { known: true, names: [{ displayName: staticName, symbolName: ts.escapeLeadingUnderscores(staticName) }] } - : getLateBoundPropertyNames(node.expression, checker); -} -exports.getLateBoundPropertyNamesOfPropertyName = getLateBoundPropertyNamesOfPropertyName; -function getSingleLateBoundPropertyNameOfPropertyName(node, checker) { - const staticName = getPropertyName(node); - if (staticName !== undefined) - return { displayName: staticName, symbolName: ts.escapeLeadingUnderscores(staticName) }; - const { expression } = node; - return isWellKnownSymbolLiterally(expression) - ? getPropertyNameOfWellKnownSymbol(expression) - : type_1.getPropertyNameFromType(checker.getTypeAtLocation(expression)); -} -exports.getSingleLateBoundPropertyNameOfPropertyName = getSingleLateBoundPropertyNameOfPropertyName; -function unwrapParentheses(node) { - while (node.kind === ts.SyntaxKind.ParenthesizedExpression) - node = node.expression; - return node; -} -exports.unwrapParentheses = unwrapParentheses; diff --git a/node_modules/@typescript-eslint/eslint-plugin/package.json b/node_modules/@typescript-eslint/eslint-plugin/package.json index a6a1ba32e9..6f65b3115b 100644 --- a/node_modules/@typescript-eslint/eslint-plugin/package.json +++ b/node_modules/@typescript-eslint/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin", - "version": "4.1.0", + "version": "4.28.5", "description": "TypeScript plugin for ESLint", "keywords": [ "eslint", @@ -14,6 +14,7 @@ "files": [ "dist", "docs", + "index.d.ts", "package.json", "README.md", "LICENSE" @@ -28,12 +29,13 @@ }, "license": "MIT", "main": "dist/index.js", + "types": "index.d.ts", "scripts": { "build": "tsc -b tsconfig.build.json", - "check:docs": "jest tests/docs.test.ts --runTestsByPath --silent --runInBand", - "check:configs": "jest tests/configs.test.ts --runTestsByPath --silent --runInBand", + "check-docs": "jest tests/docs.test.ts --runTestsByPath --silent --runInBand", + "check-configs": "jest tests/configs.test.ts --runTestsByPath --silent --runInBand", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist", + "postclean": "rimraf dist && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "generate:configs": "../../node_modules/.bin/ts-node --files --transpile-only tools/generate-configs.ts", "generate:rules-lists": "../../node_modules/.bin/ts-node --files --transpile-only tools/generate-rules-lists.ts", @@ -42,20 +44,20 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/experimental-utils": "4.1.0", - "@typescript-eslint/scope-manager": "4.1.0", - "debug": "^4.1.1", + "@typescript-eslint/experimental-utils": "4.28.5", + "@typescript-eslint/scope-manager": "4.28.5", + "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "devDependencies": { "@types/debug": "*", - "@types/marked": "^1.1.0", + "@types/marked": "*", "@types/prettier": "*", - "chalk": "^4.0.0", - "marked": "^1.0.0", + "chalk": "^4.1.1", + "marked": "^2.0.6", "prettier": "*", "typescript": "*" }, @@ -72,5 +74,5 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md b/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md index b32112bea0..754f93ce14 100644 --- a/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md +++ b/node_modules/@typescript-eslint/experimental-utils/CHANGELOG.md @@ -3,6 +3,409 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + + +### Bug Fixes + +* **experimental-utils:** expand `RuleTester` config properties ([#3557](https://github.com/typescript-eslint/typescript-eslint/issues/3557)) ([ffbb3cf](https://github.com/typescript-eslint/typescript-eslint/commit/ffbb3cff18bc78467e70e794f9b1f0e79be4aff7)) +* **experimental-utils:** fix `eslint-utils`' negative predicates' return types ([#3462](https://github.com/typescript-eslint/typescript-eslint/issues/3462)) ([1e6016b](https://github.com/typescript-eslint/typescript-eslint/commit/1e6016b356ae40e4636a3cbe41fa02b6a61403ee)) +* **experimental-utils:** fix `eslint-utils`' negative predicates' return types in `ast-utils` ([#3461](https://github.com/typescript-eslint/typescript-eslint/issues/3461)) ([614b0a3](https://github.com/typescript-eslint/typescript-eslint/commit/614b0a38b4163eb4667cce7a415d534222d15dd3)) +* **experimental-utils:** make keys for `ReferenceTracker` options optional ([#3531](https://github.com/typescript-eslint/typescript-eslint/issues/3531)) ([a7fd7bb](https://github.com/typescript-eslint/typescript-eslint/commit/a7fd7bb25584cb3f72f0339025dc76efa6cccceb)) + + +### Features + +* **experimental-utils:** add `only` property to `RuleTester` types ([#3555](https://github.com/typescript-eslint/typescript-eslint/issues/3555)) ([2a36e3e](https://github.com/typescript-eslint/typescript-eslint/commit/2a36e3e737f935cc6b967befb022d10a83c8bc9b)) +* **experimental-utils:** expose ReferenceTracker.ESM ([#3532](https://github.com/typescript-eslint/typescript-eslint/issues/3532)) ([4ac67c4](https://github.com/typescript-eslint/typescript-eslint/commit/4ac67c4c9401c5ce0e947a6409efbc11afe1eb3b)) +* **experimental-utils:** use mergable interface for `settings` property ([#3556](https://github.com/typescript-eslint/typescript-eslint/issues/3556)) ([abfc19b](https://github.com/typescript-eslint/typescript-eslint/commit/abfc19bf9364d881bdf594ee166a1deb23240630)) + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + + +### Bug Fixes + +* **typescript-estree:** allow providing more one than one existing program in config ([#3508](https://github.com/typescript-eslint/typescript-eslint/issues/3508)) ([4f1806e](https://github.com/typescript-eslint/typescript-eslint/commit/4f1806e548affb7265da360d1fc8d033e25de325)) + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + + +### Bug Fixes + +* **experimental-utils:** fix `isAwaitKeyword` predicate in ast-utils ([#3290](https://github.com/typescript-eslint/typescript-eslint/issues/3290)) ([c15da67](https://github.com/typescript-eslint/typescript-eslint/commit/c15da67b939b615ed063291cde12c55c0d6d236e)) + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Features + +* **experimental-utils:** Include `getCwd()` in `RuleContext` type ([#3308](https://github.com/typescript-eslint/typescript-eslint/issues/3308)) ([2b75c11](https://github.com/typescript-eslint/typescript-eslint/commit/2b75c11d69bee88ca0cb77d7efd32b8d0387e6b3)) +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + + +### Features + +* **eslint-plugin:** [no-unused-vars] fork the base rule ([#2768](https://github.com/typescript-eslint/typescript-eslint/issues/2768)) ([a8227a6](https://github.com/typescript-eslint/typescript-eslint/commit/a8227a6185dd24de4bfc7d766931643871155021)), closes [#2782](https://github.com/typescript-eslint/typescript-eslint/issues/2782) [#2714](https://github.com/typescript-eslint/typescript-eslint/issues/2714) [#2648](https://github.com/typescript-eslint/typescript-eslint/issues/2648) + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + + +### Features + +* **typescript-estree:** add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect ([#2669](https://github.com/typescript-eslint/typescript-eslint/issues/2669)) ([90a5878](https://github.com/typescript-eslint/typescript-eslint/commit/90a587845088da1b205e4d7d77dbc3f9447b1c5a)) + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + + +### Bug Fixes + +* **experimental-utils:** treat RuleTester arrays as readonly ([#2601](https://github.com/typescript-eslint/typescript-eslint/issues/2601)) ([8025777](https://github.com/typescript-eslint/typescript-eslint/commit/80257776b78bd2b2b4389d6bd530b009a75fb520)) + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + + +### Bug Fixes + +* **eslint-plugin:** [no-use-before-define] false positive for function type arguments ([#2554](https://github.com/typescript-eslint/typescript-eslint/issues/2554)) ([189162d](https://github.com/typescript-eslint/typescript-eslint/commit/189162d46ecb116c420232937a7f86df913f4e79)), closes [#2527](https://github.com/typescript-eslint/typescript-eslint/issues/2527) + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) **Note:** Version bump only for package @typescript-eslint/experimental-utils diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts index 76b56772c2..98a82cbe7d 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts @@ -3,6 +3,7 @@ import * as TSESLint from '../../ts-eslint'; declare const ReferenceTrackerREAD: unique symbol; declare const ReferenceTrackerCALL: unique symbol; declare const ReferenceTrackerCONSTRUCT: unique symbol; +declare const ReferenceTrackerESM: unique symbol; interface ReferenceTracker { /** * Iterate the references that the given `traceMap` determined. @@ -33,26 +34,29 @@ interface ReferenceTrackerStatic { * If this is `"strict"`, the method binds CommonJS modules to the default export. Otherwise, the method binds * CommonJS modules to both the default export and named exports. Optional. Default is `"strict"`. */ - mode: 'strict' | 'legacy'; + mode?: 'strict' | 'legacy'; /** * The name list of Global Object. Optional. Default is `["global", "globalThis", "self", "window"]`. */ - globalObjectNames: readonly string[]; + globalObjectNames?: readonly string[]; }): ReferenceTracker; readonly READ: typeof ReferenceTrackerREAD; readonly CALL: typeof ReferenceTrackerCALL; readonly CONSTRUCT: typeof ReferenceTrackerCONSTRUCT; + readonly ESM: typeof ReferenceTrackerESM; } declare namespace ReferenceTracker { type READ = ReferenceTrackerStatic['READ']; type CALL = ReferenceTrackerStatic['CALL']; type CONSTRUCT = ReferenceTrackerStatic['CONSTRUCT']; + type ESM = ReferenceTrackerStatic['ESM']; type ReferenceType = READ | CALL | CONSTRUCT; type TraceMap = Record>; interface TraceMapElement { [ReferenceTrackerREAD]?: T; [ReferenceTrackerCALL]?: T; [ReferenceTrackerCONSTRUCT]?: T; + [ReferenceTrackerESM]?: true; [key: string]: TraceMapElement; } interface FoundReference { diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts index d9c3fdfb45..842f6ca043 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/astUtilities.d.ts @@ -19,7 +19,7 @@ declare const getFunctionNameWithKind: (node: TSESTree.FunctionDeclaration | TSE * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getpropertyname} * @returns The property name of the node. If the property name is not constant then it returns `null`. */ -declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Property | TSESTree.MethodDefinition, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/BlockScope").BlockScope | import("@typescript-eslint/scope-manager/dist/scope/CatchScope").CatchScope | import("@typescript-eslint/scope-manager/dist/scope/ClassScope").ClassScope | import("@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope").ConditionalTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ForScope").ForScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope").FunctionExpressionNameScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionScope").FunctionScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope").FunctionTypeScope | import("@typescript-eslint/scope-manager/dist/scope/GlobalScope").GlobalScope | import("@typescript-eslint/scope-manager/dist/scope/MappedTypeScope").MappedTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ModuleScope").ModuleScope | import("@typescript-eslint/scope-manager/dist/scope/SwitchScope").SwitchScope | import("@typescript-eslint/scope-manager/dist/scope/TSEnumScope").TSEnumScope | import("@typescript-eslint/scope-manager/dist/scope/TSModuleScope").TSModuleScope | import("@typescript-eslint/scope-manager/dist/scope/TypeScope").TypeScope | import("@typescript-eslint/scope-manager/dist/scope/WithScope").WithScope | undefined) => string | null; +declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Property | TSESTree.MethodDefinition, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => string | null; /** * Get the value of a given node if it can decide the value statically. * If the 2nd parameter `initialScope` was given, this function tries to resolve identifier references which are in the @@ -31,7 +31,7 @@ declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Prope * @returns The `{ value: any }` shaped object. The `value` property is the static value. If it couldn't compute the * static value of the node, it returns `null`. */ -declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/BlockScope").BlockScope | import("@typescript-eslint/scope-manager/dist/scope/CatchScope").CatchScope | import("@typescript-eslint/scope-manager/dist/scope/ClassScope").ClassScope | import("@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope").ConditionalTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ForScope").ForScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope").FunctionExpressionNameScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionScope").FunctionScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope").FunctionTypeScope | import("@typescript-eslint/scope-manager/dist/scope/GlobalScope").GlobalScope | import("@typescript-eslint/scope-manager/dist/scope/MappedTypeScope").MappedTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ModuleScope").ModuleScope | import("@typescript-eslint/scope-manager/dist/scope/SwitchScope").SwitchScope | import("@typescript-eslint/scope-manager/dist/scope/TSEnumScope").TSEnumScope | import("@typescript-eslint/scope-manager/dist/scope/TSModuleScope").TSModuleScope | import("@typescript-eslint/scope-manager/dist/scope/TypeScope").TypeScope | import("@typescript-eslint/scope-manager/dist/scope/WithScope").WithScope | undefined) => { +declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => { value: unknown; } | null; /** @@ -40,7 +40,7 @@ declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@type * * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstringifconstant} */ -declare const getStringIfConstant: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/BlockScope").BlockScope | import("@typescript-eslint/scope-manager/dist/scope/CatchScope").CatchScope | import("@typescript-eslint/scope-manager/dist/scope/ClassScope").ClassScope | import("@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope").ConditionalTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ForScope").ForScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope").FunctionExpressionNameScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionScope").FunctionScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope").FunctionTypeScope | import("@typescript-eslint/scope-manager/dist/scope/GlobalScope").GlobalScope | import("@typescript-eslint/scope-manager/dist/scope/MappedTypeScope").MappedTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ModuleScope").ModuleScope | import("@typescript-eslint/scope-manager/dist/scope/SwitchScope").SwitchScope | import("@typescript-eslint/scope-manager/dist/scope/TSEnumScope").TSEnumScope | import("@typescript-eslint/scope-manager/dist/scope/TSModuleScope").TSModuleScope | import("@typescript-eslint/scope-manager/dist/scope/TypeScope").TypeScope | import("@typescript-eslint/scope-manager/dist/scope/WithScope").WithScope | undefined) => string | null; +declare const getStringIfConstant: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => string | null; /** * Check whether a given node has any side effect or not. * The side effect means that it may modify a certain variable or object member. This function considers the node which diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts index 944c9f3d45..b38579a95f 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/eslint-utils/predicates.d.ts @@ -1,45 +1,31 @@ import { TSESTree } from '../../ts-estree'; -declare const isArrowToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '=>'; -}; -declare const isNotArrowToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isClosingBraceToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '}'; -}; -declare const isNotClosingBraceToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isClosingBracketToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ']'; -}; -declare const isNotClosingBracketToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isClosingParenToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ')'; -}; -declare const isNotClosingParenToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isColonToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ':'; -}; -declare const isNotColonToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isCommaToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ','; -}; -declare const isNotCommaToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isCommentToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.Comment; -declare const isNotCommentToken: (token: T) => token is Exclude; -declare const isOpeningBraceToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '{'; -}; -declare const isNotOpeningBraceToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isOpeningBracketToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '['; -}; -declare const isNotOpeningBracketToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isOpeningParenToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '('; -}; -declare const isNotOpeningParenToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isSemicolonToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ';'; -}; -declare const isNotSemicolonToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; +declare type IsPunctuatorTokenWithValueFunction = (token: TSESTree.Token) => token is TSESTree.PunctuatorToken & { + value: Value; +}; +declare type IsNotPunctuatorTokenWithValueFunction = (token: TSESTree.Token) => token is Exclude; +declare const isArrowToken: IsPunctuatorTokenWithValueFunction<"=>">; +declare const isNotArrowToken: IsNotPunctuatorTokenWithValueFunction<"=>">; +declare const isClosingBraceToken: IsPunctuatorTokenWithValueFunction<"}">; +declare const isNotClosingBraceToken: IsNotPunctuatorTokenWithValueFunction<"}">; +declare const isClosingBracketToken: IsPunctuatorTokenWithValueFunction<"]">; +declare const isNotClosingBracketToken: IsNotPunctuatorTokenWithValueFunction<"]">; +declare const isClosingParenToken: IsPunctuatorTokenWithValueFunction<")">; +declare const isNotClosingParenToken: IsNotPunctuatorTokenWithValueFunction<")">; +declare const isColonToken: IsPunctuatorTokenWithValueFunction<":">; +declare const isNotColonToken: IsNotPunctuatorTokenWithValueFunction<":">; +declare const isCommaToken: IsPunctuatorTokenWithValueFunction<",">; +declare const isNotCommaToken: IsNotPunctuatorTokenWithValueFunction<",">; +declare const isCommentToken: (token: TSESTree.Token) => token is TSESTree.Comment; +declare const isNotCommentToken: (token: TSESTree.Token) => token is TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken; +declare const isOpeningBraceToken: IsPunctuatorTokenWithValueFunction<"{">; +declare const isNotOpeningBraceToken: IsNotPunctuatorTokenWithValueFunction<"{">; +declare const isOpeningBracketToken: IsPunctuatorTokenWithValueFunction<"[">; +declare const isNotOpeningBracketToken: IsNotPunctuatorTokenWithValueFunction<"[">; +declare const isOpeningParenToken: IsPunctuatorTokenWithValueFunction<"(">; +declare const isNotOpeningParenToken: IsNotPunctuatorTokenWithValueFunction<"(">; +declare const isSemicolonToken: IsPunctuatorTokenWithValueFunction<";">; +declare const isNotSemicolonToken: IsNotPunctuatorTokenWithValueFunction<";">; export { isArrowToken, isClosingBraceToken, isClosingBracketToken, isClosingParenToken, isColonToken, isCommaToken, isCommentToken, isNotArrowToken, isNotClosingBraceToken, isNotClosingBracketToken, isNotClosingParenToken, isNotColonToken, isNotCommaToken, isNotCommentToken, isNotOpeningBraceToken, isNotOpeningBracketToken, isNotOpeningParenToken, isNotSemicolonToken, isOpeningBraceToken, isOpeningBracketToken, isOpeningParenToken, isSemicolonToken, }; //# sourceMappingURL=predicates.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts index 6adacba74c..29c22e463a 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/misc.d.ts @@ -3,6 +3,6 @@ declare const LINEBREAK_MATCHER: RegExp; /** * Determines whether two adjacent tokens are on the same line */ -declare function isTokenOnSameLine(left: TSESTree.Token | TSESTree.Comment, right: TSESTree.Token | TSESTree.Comment): boolean; +declare function isTokenOnSameLine(left: TSESTree.Token, right: TSESTree.Token): boolean; export { isTokenOnSameLine, LINEBREAK_MATCHER }; //# sourceMappingURL=misc.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts index 37e4363178..9896230f0c 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ast-utils/predicates.d.ts @@ -1,12 +1,16 @@ import { TSESTree } from '../ts-estree'; -declare function isOptionalChainPunctuator(token: TSESTree.Token | TSESTree.Comment): token is TSESTree.PunctuatorToken & { +declare function isOptionalChainPunctuator(token: TSESTree.Token): token is TSESTree.PunctuatorToken & { value: '?.'; }; -declare function isNotOptionalChainPunctuator(token: TSESTree.Token | TSESTree.Comment): boolean; -declare function isNonNullAssertionPunctuator(token: TSESTree.Token | TSESTree.Comment): token is TSESTree.PunctuatorToken & { +declare function isNotOptionalChainPunctuator(token: TSESTree.Token): token is Exclude; +declare function isNonNullAssertionPunctuator(token: TSESTree.Token): token is TSESTree.PunctuatorToken & { value: '!'; }; -declare function isNotNonNullAssertionPunctuator(token: TSESTree.Token | TSESTree.Comment): boolean; +declare function isNotNonNullAssertionPunctuator(token: TSESTree.Token): token is Exclude; /** * Returns true if and only if the node represents: foo?.() or foo.bar?.() */ @@ -50,8 +54,9 @@ declare function isAwaitExpression(node: TSESTree.Node | undefined | null): node /** * Checks if a possible token is the `await` keyword. */ -declare function isAwaitKeyword(node: TSESTree.Token | TSESTree.Comment | undefined | null): node is TSESTree.KeywordToken & { +declare function isAwaitKeyword(node: TSESTree.Token | undefined | null): node is TSESTree.IdentifierToken & { value: 'await'; }; -export { isAwaitExpression, isAwaitKeyword, isConstructor, isClassOrTypeElement, isFunction, isFunctionOrFunctionType, isFunctionType, isIdentifier, isLogicalOrOperator, isNonNullAssertionPunctuator, isNotNonNullAssertionPunctuator, isNotOptionalChainPunctuator, isOptionalChainPunctuator, isOptionalCallExpression, isSetter, isTSConstructorType, isTSFunctionType, isTypeAssertion, isVariableDeclarator, }; +declare function isLoop(node: TSESTree.Node | undefined | null): node is TSESTree.DoWhileStatement | TSESTree.ForStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.WhileStatement; +export { isAwaitExpression, isAwaitKeyword, isConstructor, isClassOrTypeElement, isFunction, isFunctionOrFunctionType, isFunctionType, isIdentifier, isLoop, isLogicalOrOperator, isNonNullAssertionPunctuator, isNotNonNullAssertionPunctuator, isNotOptionalChainPunctuator, isOptionalChainPunctuator, isOptionalCallExpression, isSetter, isTSConstructorType, isTSFunctionType, isTypeAssertion, isVariableDeclarator, }; //# sourceMappingURL=predicates.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts index b87b7e8368..9ee0d05647 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/InferTypesFromRule.d.ts @@ -1,12 +1,11 @@ -import { RuleModule } from '../ts-eslint'; -declare type InferOptionsTypeFromRuleNever = T extends RuleModule ? TOptions : unknown; +import { RuleCreateFunction, RuleModule } from '../ts-eslint'; /** * Uses type inference to fetch the TOptions type from the given RuleModule */ -declare type InferOptionsTypeFromRule = T extends RuleModule ? TOptions : InferOptionsTypeFromRuleNever; +declare type InferOptionsTypeFromRule = T extends RuleModule ? TOptions : T extends RuleCreateFunction ? TOptions : unknown; /** * Uses type inference to fetch the TMessageIds type from the given RuleModule */ -declare type InferMessageIdsTypeFromRule = T extends RuleModule ? TMessageIds : unknown; +declare type InferMessageIdsTypeFromRule = T extends RuleModule ? TMessageIds : T extends RuleCreateFunction ? TMessageIds : unknown; export { InferOptionsTypeFromRule, InferMessageIdsTypeFromRule }; //# sourceMappingURL=InferTypesFromRule.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts index feac266f48..b0c9405e62 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/eslint-utils/applyDefault.d.ts @@ -5,6 +5,6 @@ * @param userOptions the user opts * @returns the options with defaults */ -declare function applyDefault(defaultOptions: TDefault, userOptions: TUser | null): TDefault; +declare function applyDefault(defaultOptions: Readonly, userOptions: Readonly | null): TDefault; export { applyDefault }; //# sourceMappingURL=applyDefault.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts index e2b7fbe9d0..f242166165 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint-scope/Reference.d.ts @@ -19,7 +19,7 @@ interface Reference { isReadWrite(): boolean; } declare const Reference: { - new (identifier: TSESTree.Identifier, scope: Scope, flag?: 2 | 3 | 1 | undefined, writeExpr?: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ChainExpression | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportExpression | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamedTupleMember | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPrivateKeyword | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSProtectedKeyword | TSESTree.TSPublicKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference; + new (identifier: TSESTree.Identifier, scope: Scope, flag?: ReferenceFlag | undefined, writeExpr?: TSESTree.Node | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference; READ: 0x1; WRITE: 0x2; RW: 0x3; diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts index 3fc0d035bd..f28292a1d0 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Linter.d.ts @@ -1,6 +1,6 @@ import { TSESTree, ParserServices } from '../ts-estree'; import { ParserOptions as TSParserOptions } from './ParserOptions'; -import { RuleCreateFunction, RuleFix, RuleModule } from './Rule'; +import { RuleCreateFunction, RuleFix, RuleModule, SharedConfigurationSettings } from './Rule'; import { Scope } from './Scope'; import { SourceCode } from './SourceCode'; declare class LinterBase { @@ -132,9 +132,7 @@ declare namespace Linter { /** * The shared settings. */ - settings?: { - [name: string]: unknown; - }; + settings?: SharedConfigurationSettings; } export interface ConfigOverride extends BaseConfig { excludedFiles?: string | string[]; diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts index 3a47b7080e..b7b08fb471 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Rule.d.ts @@ -114,7 +114,7 @@ interface ReportDescriptorNodeOptionalLoc { /** * The Node or AST Token which the report is being attached to */ - readonly node: TSESTree.Node | TSESTree.Comment | TSESTree.Token; + readonly node: TSESTree.Node | TSESTree.Token; /** * An override of the location of the report */ @@ -127,6 +127,13 @@ interface ReportDescriptorLocOnly { loc: Readonly | Readonly; } declare type ReportDescriptor = ReportDescriptorWithSuggestion & (ReportDescriptorNodeOptionalLoc | ReportDescriptorLocOnly); +/** + * Plugins can add their settings using declaration + * merging against this interface. + */ +interface SharedConfigurationSettings { + [name: string]: unknown; +} interface RuleContext { /** * The rule ID. @@ -153,7 +160,7 @@ interface RuleContext; + settings: SharedConfigurationSettings; /** * Returns an array of the ancestors of the currently-traversed node, starting at * the root of the AST and continuing through the direct parent of the current node. @@ -165,6 +172,13 @@ interface RuleContext>): TRuleListener; } -declare type RuleCreateFunction = (context: Readonly>) => RuleListener; -export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleCreateFunction, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, }; +declare type RuleCreateFunction = (context: Readonly>) => TRuleListener; +export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleCreateFunction, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, SharedConfigurationSettings, }; //# sourceMappingURL=Rule.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts index 2479b2e2eb..f431bafe54 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/RuleTester.d.ts @@ -1,6 +1,7 @@ import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '../ts-estree'; import { ParserOptions } from './ParserOptions'; -import { RuleModule } from './Rule'; +import { Linter } from './Linter'; +import { RuleCreateFunction, RuleModule, SharedConfigurationSettings } from './Rule'; interface ValidTestCase> { /** * Code for the test case. @@ -17,7 +18,7 @@ interface ValidTestCase> { /** * The additional global variables. */ - readonly globals?: Record; + readonly globals?: Record; /** * Options for the test case. */ @@ -33,7 +34,11 @@ interface ValidTestCase> { /** * Settings for the test case. */ - readonly settings?: Readonly>; + readonly settings?: Readonly; + /** + * Run this case exclusively for debugging in supported test frameworks. + */ + readonly only?: boolean; } interface SuggestionOutput { /** @@ -54,7 +59,7 @@ interface InvalidTestCase[]; + readonly errors: readonly TestCaseError[]; /** * The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested. */ @@ -95,10 +100,10 @@ interface TestCaseError { readonly type?: AST_NODE_TYPES | AST_TOKEN_TYPES; } interface RunTests> { - readonly valid: (ValidTestCase | string)[]; - readonly invalid: InvalidTestCase[]; + readonly valid: readonly (ValidTestCase | string)[]; + readonly invalid: readonly InvalidTestCase[]; } -interface RuleTesterConfig { +interface RuleTesterConfig extends Linter.Config { readonly parser: string; readonly parserOptions?: Readonly; } @@ -129,6 +134,12 @@ declare class RuleTesterBase { * @param callback the test callback */ static it?: (text: string, callback: () => void) => void; + /** + * Define a rule for one particular run of tests. + * @param name The name of the rule to define. + * @param rule The rule definition. + */ + defineRule>(name: string, rule: RuleModule | RuleCreateFunction): void; } declare const RuleTester_base: typeof RuleTesterBase; declare class RuleTester extends RuleTester_base { diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts index 79dfc9dfcf..27d01c724e 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/Scope.d.ts @@ -1,44 +1,44 @@ import * as scopeManager from '@typescript-eslint/scope-manager'; -import { TSESTree } from '@typescript-eslint/types'; declare namespace Scope { - class ESLintScopeVariable { - readonly defs: Definition[]; - readonly identifiers: TSESTree.Identifier[]; - readonly name: string; - readonly references: Reference[]; - readonly scope: Scope; - /** - * Written to by ESLint. - * If this key exists, this variable is a global variable added by ESLint. - * If this is `true`, this variable can be assigned arbitrary values. - * If this is `false`, this variable is readonly. - */ - writeable?: boolean; - /** - * Written to by ESLint. - * This property is undefined if there are no globals directive comments. - * The array of globals directive comments which defined this global variable in the source code file. - */ - eslintExplicitGlobal?: boolean; - /** - * Written to by ESLint. - * The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments. - */ - eslintImplicitGlobalSetting?: 'readonly' | 'writable'; - /** - * Written to by ESLint. - * If this key exists, it is a global variable added by ESLint. - * If `true`, this global variable was defined by a globals directive comment in the source code file. - */ - eslintExplicitGlobalComments?: TSESTree.Comment[]; + type ScopeManager = scopeManager.ScopeManager; + type Reference = scopeManager.Reference; + type Variable = scopeManager.Variable | scopeManager.ESLintScopeVariable; + type Scope = scopeManager.Scope; + const ScopeType: typeof scopeManager.ScopeType; + type DefinitionType = scopeManager.Definition; + type Definition = scopeManager.Definition; + const DefinitionType: typeof scopeManager.DefinitionType; + namespace Definitions { + type CatchClauseDefinition = scopeManager.CatchClauseDefinition; + type ClassNameDefinition = scopeManager.ClassNameDefinition; + type FunctionNameDefinition = scopeManager.FunctionNameDefinition; + type ImplicitGlobalVariableDefinition = scopeManager.ImplicitGlobalVariableDefinition; + type ImportBindingDefinition = scopeManager.ImportBindingDefinition; + type ParameterDefinition = scopeManager.ParameterDefinition; + type TSEnumMemberDefinition = scopeManager.TSEnumMemberDefinition; + type TSEnumNameDefinition = scopeManager.TSEnumNameDefinition; + type TSModuleNameDefinition = scopeManager.TSModuleNameDefinition; + type TypeDefinition = scopeManager.TypeDefinition; + type VariableDefinition = scopeManager.VariableDefinition; + } + namespace Scopes { + type BlockScope = scopeManager.BlockScope; + type CatchScope = scopeManager.CatchScope; + type ClassScope = scopeManager.ClassScope; + type ConditionalTypeScope = scopeManager.ConditionalTypeScope; + type ForScope = scopeManager.ForScope; + type FunctionExpressionNameScope = scopeManager.FunctionExpressionNameScope; + type FunctionScope = scopeManager.FunctionScope; + type FunctionTypeScope = scopeManager.FunctionTypeScope; + type GlobalScope = scopeManager.GlobalScope; + type MappedTypeScope = scopeManager.MappedTypeScope; + type ModuleScope = scopeManager.ModuleScope; + type SwitchScope = scopeManager.SwitchScope; + type TSEnumScope = scopeManager.TSEnumScope; + type TSModuleScope = scopeManager.TSModuleScope; + type TypeScope = scopeManager.TypeScope; + type WithScope = scopeManager.WithScope; } - export type ScopeManager = scopeManager.ScopeManager; - export type Reference = scopeManager.Reference; - export type Variable = scopeManager.Variable | ESLintScopeVariable; - export type Scope = scopeManager.Scope; - export type DefinitionType = scopeManager.Definition; - export type Definition = scopeManager.Definition; - export {}; } export { Scope }; //# sourceMappingURL=Scope.d.ts.map diff --git a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts index af0775fb8a..238fbeb5a5 100644 --- a/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/_ts3.4/dist/ts-eslint/SourceCode.d.ts @@ -40,7 +40,7 @@ declare class TokenStore { * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. * @returns An object representing the token. */ - getFirstTokenBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getFirstTokenBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the first `count` tokens of the given node. * @param node The AST node. @@ -55,7 +55,7 @@ declare class TokenStore { * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens between left and right. */ - getFirstTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getFirstTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets the last token of the given node. * @param node The AST node. @@ -70,7 +70,7 @@ declare class TokenStore { * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. * @returns An object representing the token. */ - getLastTokenBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getLastTokenBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the last `count` tokens of the given node. * @param node The AST node. @@ -85,21 +85,21 @@ declare class TokenStore { * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens between left and right. */ - getLastTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getLastTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets the token that follows a given node or token. * @param node The AST node or token. * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. * @returns An object representing the token. */ - getTokenAfter(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getTokenAfter(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the token that precedes a given node or token. * @param node The AST node or token. * @param options The option object * @returns An object representing the token. */ - getTokenBefore(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getTokenBefore(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the token starting at the specified index. * @param offset Index of the start of the token's range. @@ -130,14 +130,14 @@ declare class TokenStore { * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens. */ - getTokensAfter(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getTokensAfter(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets the `count` tokens that precedes a given node or token. * @param node The AST node. * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens. */ - getTokensBefore(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getTokensBefore(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets all of the tokens between two non-overlapping nodes. * @param left Node before the desired token range. @@ -145,7 +145,7 @@ declare class TokenStore { * @param options The option object. If this is a function then it's `options.filter`. * @returns Tokens between left and right. */ - getTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: T): SourceCode.ReturnTypeFromOptions[]; + getTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, padding?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets all of the tokens between two non-overlapping nodes. * @param left Node before the desired token range. @@ -153,7 +153,7 @@ declare class TokenStore { * @param padding Number of extra tokens on either side of center. * @returns Tokens between left and right. */ - getTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: number): SourceCode.ReturnTypeFromOptions[]; + getTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, padding?: number): SourceCode.ReturnTypeFromOptions[]; } declare class SourceCodeBase extends TokenStore { /** @@ -230,7 +230,7 @@ declare class SourceCodeBase extends TokenStore { * @param second The second node or token to check between. * @returns True if there is a whitespace character between any of the tokens found between the two given nodes or tokens. */ - isSpaceBetween?(first: TSESTree.Token | TSESTree.Comment | TSESTree.Node, second: TSESTree.Token | TSESTree.Comment | TSESTree.Node): boolean; + isSpaceBetween?(first: TSESTree.Token | TSESTree.Node, second: TSESTree.Token | TSESTree.Node): boolean; /** * Determines if two nodes or tokens have at least one whitespace character * between them. Order does not matter. Returns false if the given nodes or @@ -267,8 +267,10 @@ declare class SourceCodeBase extends TokenStore { text: string; /** * All of the tokens and comments in the AST. + * + * TODO: rename to 'tokens' */ - tokensAndComments: (TSESTree.Comment | TSESTree.Token)[]; + tokensAndComments: TSESTree.Token[]; /** * The visitor keys to traverse AST. */ @@ -310,7 +312,7 @@ declare namespace SourceCode { interface VisitorKeys { [nodeType: string]: string[]; } - type FilterPredicate = (tokenOrComment: TSESTree.Token | TSESTree.Comment) => boolean; + type FilterPredicate = (token: TSESTree.Token) => boolean; type ReturnTypeFromOptions = T extends { includeComments: true; } ? TSESTree.Token : Exclude; diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts index 2a51357753..c12c88a432 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts @@ -3,6 +3,7 @@ import * as TSESLint from '../../ts-eslint'; declare const ReferenceTrackerREAD: unique symbol; declare const ReferenceTrackerCALL: unique symbol; declare const ReferenceTrackerCONSTRUCT: unique symbol; +declare const ReferenceTrackerESM: unique symbol; interface ReferenceTracker { /** * Iterate the references that the given `traceMap` determined. @@ -33,26 +34,29 @@ interface ReferenceTrackerStatic { * If this is `"strict"`, the method binds CommonJS modules to the default export. Otherwise, the method binds * CommonJS modules to both the default export and named exports. Optional. Default is `"strict"`. */ - mode: 'strict' | 'legacy'; + mode?: 'strict' | 'legacy'; /** * The name list of Global Object. Optional. Default is `["global", "globalThis", "self", "window"]`. */ - globalObjectNames: readonly string[]; + globalObjectNames?: readonly string[]; }): ReferenceTracker; readonly READ: typeof ReferenceTrackerREAD; readonly CALL: typeof ReferenceTrackerCALL; readonly CONSTRUCT: typeof ReferenceTrackerCONSTRUCT; + readonly ESM: typeof ReferenceTrackerESM; } declare namespace ReferenceTracker { type READ = ReferenceTrackerStatic['READ']; type CALL = ReferenceTrackerStatic['CALL']; type CONSTRUCT = ReferenceTrackerStatic['CONSTRUCT']; + type ESM = ReferenceTrackerStatic['ESM']; type ReferenceType = READ | CALL | CONSTRUCT; type TraceMap = Record>; interface TraceMapElement { [ReferenceTrackerREAD]?: T; [ReferenceTrackerCALL]?: T; [ReferenceTrackerCONSTRUCT]?: T; + [ReferenceTrackerESM]?: true; [key: string]: TraceMapElement; } interface FoundReference { diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map index 84fa9dd5ee..116b916559 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ReferenceTracker.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/ReferenceTracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAA0C,CAAC;AAC9E,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAA0C,CAAC;AAC9E,QAAA,MAAM,yBAAyB,EAAE,OAAO,MACA,CAAC;AAEzC,UAAU,gBAAgB;IACxB;;;;;OAKG;IACH,uBAAuB,CAAC,CAAC,EACvB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,EACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,EACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD;AACD,UAAU,sBAAsB;IAC9B,KACE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EACjC,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B;;WAEG;QACH,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;KACtC,GACA,gBAAgB,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;CACtD;AAED,kBAAU,gBAAgB,CAAC;IACzB,KAAY,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,KAAY,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,KAAY,SAAS,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,KAAY,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpD,KAAY,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,UAAiB,eAAe,CAAC,CAAC;QAChC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;KACnC;IAED,UAAiB,cAAc,CAAC,CAAC,GAAG,GAAG;QACrC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC;KACV;CACF;AAED;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,wBAAyD,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"ReferenceTracker.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/ReferenceTracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAA0C,CAAC;AAC9E,QAAA,MAAM,oBAAoB,EAAE,OAAO,MAA0C,CAAC;AAC9E,QAAA,MAAM,yBAAyB,EAAE,OAAO,MACA,CAAC;AACzC,QAAA,MAAM,mBAAmB,EAAE,OAAO,MAAyC,CAAC;AAE5E,UAAU,gBAAgB;IACxB;;;;;OAKG;IACH,uBAAuB,CAAC,CAAC,EACvB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,EACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,EACpB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GACrC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD;AACD,UAAU,sBAAsB;IAC9B,KACE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EACjC,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC3B;;WAEG;QACH,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACvC,GACA,gBAAgB,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,OAAO,yBAAyB,CAAC;IACrD,QAAQ,CAAC,GAAG,EAAE,OAAO,mBAAmB,CAAC;CAC1C;AAED,kBAAU,gBAAgB,CAAC;IACzB,KAAY,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,KAAY,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,KAAY,SAAS,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,KAAY,GAAG,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChD,KAAY,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAEpD,KAAY,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,UAAiB,eAAe,CAAC,CAAC;QAChC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC;QAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;KACnC;IAED,UAAiB,cAAc,CAAC,CAAC,GAAG,GAAG;QACrC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;QACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC;KACV;CACF;AAED;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,wBAAyD,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js index 89f1f7d2e1..29e7c7054a 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js @@ -1,5 +1,4 @@ "use strict"; -/* eslint-disable @typescript-eslint/no-namespace */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); @@ -21,10 +20,12 @@ var __importStar = (this && this.__importStar) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReferenceTracker = void 0; +/* eslint-disable @typescript-eslint/no-namespace */ const eslintUtils = __importStar(require("eslint-utils")); const ReferenceTrackerREAD = eslintUtils.ReferenceTracker.READ; const ReferenceTrackerCALL = eslintUtils.ReferenceTracker.CALL; const ReferenceTrackerCONSTRUCT = eslintUtils.ReferenceTracker.CONSTRUCT; +const ReferenceTrackerESM = eslintUtils.ReferenceTracker.ESM; /** * The tracker for references. This provides reference tracking for global variables, CommonJS modules, and ES modules. * diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map index 52d6efde17..4d78d59b32 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/ReferenceTracker.js.map @@ -1 +1 @@ -{"version":3,"file":"ReferenceTracker.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/ReferenceTracker.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;AAEpD,0DAA4C;AAI5C,MAAM,oBAAoB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9E,MAAM,oBAAoB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9E,MAAM,yBAAyB,GAC7B,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC;AA6EzC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAA0C,CAAC;AAEvE,4CAAgB"} \ No newline at end of file +{"version":3,"file":"ReferenceTracker.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/ReferenceTracker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAoD;AACpD,0DAA4C;AAI5C,MAAM,oBAAoB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9E,MAAM,oBAAoB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9E,MAAM,yBAAyB,GAC7B,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACzC,MAAM,mBAAmB,GAAkB,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAgF5E;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAA0C,CAAC;AAEvE,4CAAgB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts index fec065f433..086d1902e8 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts @@ -19,7 +19,7 @@ declare const getFunctionNameWithKind: (node: TSESTree.FunctionDeclaration | TSE * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getpropertyname} * @returns The property name of the node. If the property name is not constant then it returns `null`. */ -declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Property | TSESTree.MethodDefinition, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/BlockScope").BlockScope | import("@typescript-eslint/scope-manager/dist/scope/CatchScope").CatchScope | import("@typescript-eslint/scope-manager/dist/scope/ClassScope").ClassScope | import("@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope").ConditionalTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ForScope").ForScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope").FunctionExpressionNameScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionScope").FunctionScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope").FunctionTypeScope | import("@typescript-eslint/scope-manager/dist/scope/GlobalScope").GlobalScope | import("@typescript-eslint/scope-manager/dist/scope/MappedTypeScope").MappedTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ModuleScope").ModuleScope | import("@typescript-eslint/scope-manager/dist/scope/SwitchScope").SwitchScope | import("@typescript-eslint/scope-manager/dist/scope/TSEnumScope").TSEnumScope | import("@typescript-eslint/scope-manager/dist/scope/TSModuleScope").TSModuleScope | import("@typescript-eslint/scope-manager/dist/scope/TypeScope").TypeScope | import("@typescript-eslint/scope-manager/dist/scope/WithScope").WithScope | undefined) => string | null; +declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Property | TSESTree.MethodDefinition, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => string | null; /** * Get the value of a given node if it can decide the value statically. * If the 2nd parameter `initialScope` was given, this function tries to resolve identifier references which are in the @@ -31,7 +31,7 @@ declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Prope * @returns The `{ value: any }` shaped object. The `value` property is the static value. If it couldn't compute the * static value of the node, it returns `null`. */ -declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/BlockScope").BlockScope | import("@typescript-eslint/scope-manager/dist/scope/CatchScope").CatchScope | import("@typescript-eslint/scope-manager/dist/scope/ClassScope").ClassScope | import("@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope").ConditionalTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ForScope").ForScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope").FunctionExpressionNameScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionScope").FunctionScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope").FunctionTypeScope | import("@typescript-eslint/scope-manager/dist/scope/GlobalScope").GlobalScope | import("@typescript-eslint/scope-manager/dist/scope/MappedTypeScope").MappedTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ModuleScope").ModuleScope | import("@typescript-eslint/scope-manager/dist/scope/SwitchScope").SwitchScope | import("@typescript-eslint/scope-manager/dist/scope/TSEnumScope").TSEnumScope | import("@typescript-eslint/scope-manager/dist/scope/TSModuleScope").TSModuleScope | import("@typescript-eslint/scope-manager/dist/scope/TypeScope").TypeScope | import("@typescript-eslint/scope-manager/dist/scope/WithScope").WithScope | undefined) => { +declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => { value: unknown; } | null; /** @@ -40,7 +40,7 @@ declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@type * * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstringifconstant} */ -declare const getStringIfConstant: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/BlockScope").BlockScope | import("@typescript-eslint/scope-manager/dist/scope/CatchScope").CatchScope | import("@typescript-eslint/scope-manager/dist/scope/ClassScope").ClassScope | import("@typescript-eslint/scope-manager/dist/scope/ConditionalTypeScope").ConditionalTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ForScope").ForScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionExpressionNameScope").FunctionExpressionNameScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionScope").FunctionScope | import("@typescript-eslint/scope-manager/dist/scope/FunctionTypeScope").FunctionTypeScope | import("@typescript-eslint/scope-manager/dist/scope/GlobalScope").GlobalScope | import("@typescript-eslint/scope-manager/dist/scope/MappedTypeScope").MappedTypeScope | import("@typescript-eslint/scope-manager/dist/scope/ModuleScope").ModuleScope | import("@typescript-eslint/scope-manager/dist/scope/SwitchScope").SwitchScope | import("@typescript-eslint/scope-manager/dist/scope/TSEnumScope").TSEnumScope | import("@typescript-eslint/scope-manager/dist/scope/TSModuleScope").TSModuleScope | import("@typescript-eslint/scope-manager/dist/scope/TypeScope").TypeScope | import("@typescript-eslint/scope-manager/dist/scope/WithScope").WithScope | undefined) => string | null; +declare const getStringIfConstant: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => string | null; /** * Check whether a given node has any side effect or not. * The side effect means that it may modify a certain variable or object member. This function considers the node which diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map index 18cbf2dcfe..5953b35ed1 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/astUtilities.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"astUtilities.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/astUtilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,SAEvB,SAAS,mBAAmB,GAC5B,SAAS,kBAAkB,GAC3B,SAAS,uBAAuB,cACxB,SAAS,UAAU,KAC5B,SAAS,cAAc,CAAC;AAE7B;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,SAEvB,SAAS,mBAAmB,GAC5B,SAAS,kBAAkB,GAC3B,SAAS,uBAAuB,KACjC,MAAM,CAAC;AAEZ;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,SAEf,SAAS,gBAAgB,GACzB,SAAS,QAAQ,GACjB,SAAS,gBAAgB,y1CAE1B,MAAM,GAAG,IAAI,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,QAAA,MAAM,cAAc,SACZ,SAAS,IAAI,y1CAEhB;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC;AAE/B;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,SACjB,SAAS,IAAI,y1CAEhB,MAAM,GAAG,IAAI,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,aAAa,SACX,SAAS,IAAI,cACP,SAAS,UAAU;;;kBAK5B,OAAO,CAAC;AAEb;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,SACb,SAAS,IAAI,cACP,SAAS,UAAU,KAC5B,OAAO,CAAC;AAEb,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,CAAC"} \ No newline at end of file +{"version":3,"file":"astUtilities.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/astUtilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,SAEvB,SAAS,mBAAmB,GAC5B,SAAS,kBAAkB,GAC3B,SAAS,uBAAuB,cACxB,SAAS,UAAU,KAC5B,SAAS,cAAc,CAAC;AAE7B;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,SAEvB,SAAS,mBAAmB,GAC5B,SAAS,kBAAkB,GAC3B,SAAS,uBAAuB,KACjC,MAAM,CAAC;AAEZ;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,SAEf,SAAS,gBAAgB,GACzB,SAAS,QAAQ,GACjB,SAAS,gBAAgB,mGAE1B,MAAM,GAAG,IAAI,CAAC;AAEnB;;;;;;;;;;GAUG;AACH,QAAA,MAAM,cAAc,SACZ,SAAS,IAAI,mGAEhB;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC;AAE/B;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,SACjB,SAAS,IAAI,mGAEhB,MAAM,GAAG,IAAI,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,aAAa,SACX,SAAS,IAAI,cACP,SAAS,UAAU;;;kBAK5B,OAAO,CAAC;AAEb;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,SACb,SAAS,IAAI,cACP,SAAS,UAAU,KAC5B,OAAO,CAAC;AAEb,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,eAAe,GAChB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts index 867d24b696..efadc3e2f7 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts @@ -1,45 +1,31 @@ import { TSESTree } from '../../ts-estree'; -declare const isArrowToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '=>'; -}; -declare const isNotArrowToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isClosingBraceToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '}'; -}; -declare const isNotClosingBraceToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isClosingBracketToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ']'; -}; -declare const isNotClosingBracketToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isClosingParenToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ')'; -}; -declare const isNotClosingParenToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isColonToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ':'; -}; -declare const isNotColonToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isCommaToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ','; -}; -declare const isNotCommaToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isCommentToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.Comment; -declare const isNotCommentToken: (token: T) => token is Exclude; -declare const isOpeningBraceToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '{'; -}; -declare const isNotOpeningBraceToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isOpeningBracketToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '['; -}; -declare const isNotOpeningBracketToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isOpeningParenToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: '('; -}; -declare const isNotOpeningParenToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; -declare const isSemicolonToken: (token: TSESTree.Token | TSESTree.Comment) => token is TSESTree.PunctuatorToken & { - value: ';'; -}; -declare const isNotSemicolonToken: (token: TSESTree.Token | TSESTree.Comment) => boolean; +declare type IsPunctuatorTokenWithValueFunction = (token: TSESTree.Token) => token is TSESTree.PunctuatorToken & { + value: Value; +}; +declare type IsNotPunctuatorTokenWithValueFunction = (token: TSESTree.Token) => token is Exclude; +declare const isArrowToken: IsPunctuatorTokenWithValueFunction<"=>">; +declare const isNotArrowToken: IsNotPunctuatorTokenWithValueFunction<"=>">; +declare const isClosingBraceToken: IsPunctuatorTokenWithValueFunction<"}">; +declare const isNotClosingBraceToken: IsNotPunctuatorTokenWithValueFunction<"}">; +declare const isClosingBracketToken: IsPunctuatorTokenWithValueFunction<"]">; +declare const isNotClosingBracketToken: IsNotPunctuatorTokenWithValueFunction<"]">; +declare const isClosingParenToken: IsPunctuatorTokenWithValueFunction<")">; +declare const isNotClosingParenToken: IsNotPunctuatorTokenWithValueFunction<")">; +declare const isColonToken: IsPunctuatorTokenWithValueFunction<":">; +declare const isNotColonToken: IsNotPunctuatorTokenWithValueFunction<":">; +declare const isCommaToken: IsPunctuatorTokenWithValueFunction<",">; +declare const isNotCommaToken: IsNotPunctuatorTokenWithValueFunction<",">; +declare const isCommentToken: (token: TSESTree.Token) => token is TSESTree.Comment; +declare const isNotCommentToken: (token: TSESTree.Token) => token is TSESTree.BooleanToken | TSESTree.IdentifierToken | TSESTree.JSXIdentifierToken | TSESTree.JSXTextToken | TSESTree.KeywordToken | TSESTree.NullToken | TSESTree.NumericToken | TSESTree.PunctuatorToken | TSESTree.RegularExpressionToken | TSESTree.StringToken | TSESTree.TemplateToken; +declare const isOpeningBraceToken: IsPunctuatorTokenWithValueFunction<"{">; +declare const isNotOpeningBraceToken: IsNotPunctuatorTokenWithValueFunction<"{">; +declare const isOpeningBracketToken: IsPunctuatorTokenWithValueFunction<"[">; +declare const isNotOpeningBracketToken: IsNotPunctuatorTokenWithValueFunction<"[">; +declare const isOpeningParenToken: IsPunctuatorTokenWithValueFunction<"(">; +declare const isNotOpeningParenToken: IsNotPunctuatorTokenWithValueFunction<"(">; +declare const isSemicolonToken: IsPunctuatorTokenWithValueFunction<";">; +declare const isNotSemicolonToken: IsNotPunctuatorTokenWithValueFunction<";">; export { isArrowToken, isClosingBraceToken, isClosingBracketToken, isClosingParenToken, isColonToken, isCommaToken, isCommentToken, isNotArrowToken, isNotClosingBraceToken, isNotClosingBracketToken, isNotClosingParenToken, isNotColonToken, isNotCommaToken, isNotCommentToken, isNotOpeningBraceToken, isNotOpeningBracketToken, isNotOpeningParenToken, isNotSemicolonToken, isOpeningBraceToken, isOpeningBracketToken, isOpeningParenToken, isSemicolonToken, }; //# sourceMappingURL=predicates.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map index e8079514cd..e5556392f3 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/predicates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,QAAA,MAAM,YAAY,UACT,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,IAAI;CAAE,CAAC;AACzD,QAAA,MAAM,eAAe,UACZ,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,mBAAmB,UAChB,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,sBAAsB,UACnB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,qBAAqB,UAClB,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,wBAAwB,UACrB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,mBAAmB,UAChB,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,sBAAsB,UACnB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,YAAY,UACT,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,eAAe,UACZ,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,YAAY,UACT,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,eAAe,UACZ,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,cAAc,UACX,SAAS,KAAK,GAAG,SAAS,OAAO,8BACZ,CAAC;AAC/B,QAAA,MAAM,iBAAiB,+EAImB,CAAC;AAE3C,QAAA,MAAM,mBAAmB,UAChB,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,sBAAsB,UACnB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,qBAAqB,UAClB,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,wBAAwB,UACrB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,mBAAmB,UAChB,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,sBAAsB,UACnB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,QAAA,MAAM,gBAAgB,UACb,SAAS,KAAK,GAAG,SAAS,OAAO;WACQ,GAAG;CAAE,CAAC;AACxD,QAAA,MAAM,mBAAmB,UAChB,SAAS,KAAK,GAAG,SAAS,OAAO,KACrC,OAAO,CAAC;AAEb,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,CAAC"} \ No newline at end of file +{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/predicates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,aAAK,kCAAkC,CAAC,KAAK,SAAS,MAAM,IAAI,CAC9D,KAAK,EAAE,QAAQ,CAAC,KAAK,KAClB,KAAK,IAAI,QAAQ,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAE1D,aAAK,qCAAqC,CAAC,KAAK,SAAS,MAAM,IAAI,CACjE,KAAK,EAAE,QAAQ,CAAC,KAAK,KAClB,KAAK,IAAI,OAAO,CACnB,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAC5C,CAAC;AAEF,QAAA,MAAM,YAAY,0CACoD,CAAC;AACvE,QAAA,MAAM,eAAe,6CACuD,CAAC;AAE7E,QAAA,MAAM,mBAAmB,yCACmD,CAAC;AAC7E,QAAA,MAAM,sBAAsB,4CACsD,CAAC;AAEnF,QAAA,MAAM,qBAAqB,yCACmD,CAAC;AAC/E,QAAA,MAAM,wBAAwB,4CACsD,CAAC;AAErF,QAAA,MAAM,mBAAmB,yCACmD,CAAC;AAC7E,QAAA,MAAM,sBAAsB,4CACsD,CAAC;AAEnF,QAAA,MAAM,YAAY,yCACmD,CAAC;AACtE,QAAA,MAAM,eAAe,4CACsD,CAAC;AAE5E,QAAA,MAAM,YAAY,yCACmD,CAAC;AACtE,QAAA,MAAM,eAAe,4CACsD,CAAC;AAE5E,QAAA,MAAM,cAAc,UACX,SAAS,KAAK,8BACO,CAAC;AAC/B,QAAA,MAAM,iBAAiB,UACd,SAAS,KAAK,sSACgC,CAAC;AAExD,QAAA,MAAM,mBAAmB,yCACmD,CAAC;AAC7E,QAAA,MAAM,sBAAsB,4CACsD,CAAC;AAEnF,QAAA,MAAM,qBAAqB,yCACmD,CAAC;AAC/E,QAAA,MAAM,wBAAwB,4CACsD,CAAC;AAErF,QAAA,MAAM,mBAAmB,yCACmD,CAAC;AAC7E,QAAA,MAAM,sBAAsB,4CACsD,CAAC;AAEnF,QAAA,MAAM,gBAAgB,yCACmD,CAAC;AAC1E,QAAA,MAAM,mBAAmB,4CACsD,CAAC;AAEhF,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map index b39d5cf4b6..1beaa23cdd 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/eslint-utils/predicates.js.map @@ -1 +1 @@ -{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/predicates.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4C;AAG5C,MAAM,YAAY,GAAG,WAAW,CAAC,YAEuB,CAAC;AA8EvD,oCAAY;AA7Ed,MAAM,eAAe,GAAG,WAAW,CAAC,eAExB,CAAC;AAkFX,0CAAe;AAhFjB,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AAwEtD,kDAAmB;AAvErB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AA4EX,wDAAsB;AA1ExB,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAEa,CAAC;AAkEtD,sDAAqB;AAjEvB,MAAM,wBAAwB,GAAG,WAAW,CAAC,wBAEjC,CAAC;AAsEX,4DAAwB;AApE1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AA4DtD,kDAAmB;AA3DrB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AAgEX,wDAAsB;AA9DxB,MAAM,YAAY,GAAG,WAAW,CAAC,YAEsB,CAAC;AAsDtD,oCAAY;AArDd,MAAM,eAAe,GAAG,WAAW,CAAC,eAExB,CAAC;AA0DX,0CAAe;AAxDjB,MAAM,YAAY,GAAG,WAAW,CAAC,YAEsB,CAAC;AAgDtD,oCAAY;AA/Cd,MAAM,eAAe,GAAG,WAAW,CAAC,eAExB,CAAC;AAoDX,0CAAe;AAlDjB,MAAM,cAAc,GAAG,WAAW,CAAC,cAEL,CAAC;AA0C7B,wCAAc;AAzChB,MAAM,iBAAiB,GAAG,WAAW,CAAC,iBAII,CAAC;AA4CzC,8CAAiB;AA1CnB,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AA6CtD,kDAAmB;AA5CrB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AAsCX,wDAAsB;AApCxB,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAEa,CAAC;AAuCtD,sDAAqB;AAtCvB,MAAM,wBAAwB,GAAG,WAAW,CAAC,wBAEjC,CAAC;AAgCX,4DAAwB;AA9B1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAEe,CAAC;AAiCtD,kDAAmB;AAhCrB,MAAM,sBAAsB,GAAG,WAAW,CAAC,sBAE/B,CAAC;AA0BX,wDAAsB;AAxBxB,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAEkB,CAAC;AA2BtD,4CAAgB;AA1BlB,MAAM,mBAAmB,GAAG,WAAW,CAAC,mBAE5B,CAAC;AAoBX,kDAAmB"} \ No newline at end of file +{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../../src/ast-utils/eslint-utils/predicates.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4C;AAc5C,MAAM,YAAY,GAChB,WAAW,CAAC,YAAwD,CAAC;AAyDrE,oCAAY;AAxDd,MAAM,eAAe,GACnB,WAAW,CAAC,eAA8D,CAAC;AA8D3E,0CAAe;AA5DjB,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAA8D,CAAC;AAqD3E,kDAAmB;AApDrB,MAAM,sBAAsB,GAC1B,WAAW,CAAC,sBAAoE,CAAC;AA0DjF,wDAAsB;AAxDxB,MAAM,qBAAqB,GACzB,WAAW,CAAC,qBAAgE,CAAC;AAiD7E,sDAAqB;AAhDvB,MAAM,wBAAwB,GAC5B,WAAW,CAAC,wBAAsE,CAAC;AAsDnF,4DAAwB;AApD1B,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAA8D,CAAC;AA6C3E,kDAAmB;AA5CrB,MAAM,sBAAsB,GAC1B,WAAW,CAAC,sBAAoE,CAAC;AAkDjF,wDAAsB;AAhDxB,MAAM,YAAY,GAChB,WAAW,CAAC,YAAuD,CAAC;AAyCpE,oCAAY;AAxCd,MAAM,eAAe,GACnB,WAAW,CAAC,eAA6D,CAAC;AA8C1E,0CAAe;AA5CjB,MAAM,YAAY,GAChB,WAAW,CAAC,YAAuD,CAAC;AAqCpE,oCAAY;AApCd,MAAM,eAAe,GACnB,WAAW,CAAC,eAA6D,CAAC;AA0C1E,0CAAe;AAxCjB,MAAM,cAAc,GAAG,WAAW,CAAC,cAEL,CAAC;AAgC7B,wCAAc;AA/BhB,MAAM,iBAAiB,GAAG,WAAW,CAAC,iBAEiB,CAAC;AAoCtD,8CAAiB;AAlCnB,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAA8D,CAAC;AAsC3E,kDAAmB;AArCrB,MAAM,sBAAsB,GAC1B,WAAW,CAAC,sBAAoE,CAAC;AAgCjF,wDAAsB;AA9BxB,MAAM,qBAAqB,GACzB,WAAW,CAAC,qBAAgE,CAAC;AAkC7E,sDAAqB;AAjCvB,MAAM,wBAAwB,GAC5B,WAAW,CAAC,wBAAsE,CAAC;AA4BnF,4DAAwB;AA1B1B,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAA8D,CAAC;AA8B3E,kDAAmB;AA7BrB,MAAM,sBAAsB,GAC1B,WAAW,CAAC,sBAAoE,CAAC;AAwBjF,wDAAsB;AAtBxB,MAAM,gBAAgB,GACpB,WAAW,CAAC,gBAA2D,CAAC;AA0BxE,4CAAgB;AAzBlB,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAAiE,CAAC;AAoB9E,kDAAmB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts index 498e01da9e..5fa540b0f2 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts @@ -3,6 +3,6 @@ declare const LINEBREAK_MATCHER: RegExp; /** * Determines whether two adjacent tokens are on the same line */ -declare function isTokenOnSameLine(left: TSESTree.Token | TSESTree.Comment, right: TSESTree.Token | TSESTree.Comment): boolean; +declare function isTokenOnSameLine(left: TSESTree.Token, right: TSESTree.Token): boolean; export { isTokenOnSameLine, LINEBREAK_MATCHER }; //# sourceMappingURL=misc.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map index 635a9160ef..3fbe4c2f97 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/ast-utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,QAAA,MAAM,iBAAiB,QAA4B,CAAC;AAEpD;;GAEG;AACH,iBAAS,iBAAiB,CACxB,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,EACvC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,GACvC,OAAO,CAET;AAED,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/ast-utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,QAAA,MAAM,iBAAiB,QAA4B,CAAC;AAEpD;;GAEG;AACH,iBAAS,iBAAiB,CACxB,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,KAAK,EAAE,QAAQ,CAAC,KAAK,GACpB,OAAO,CAET;AAED,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map index b1f3f39309..49c431688c 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/misc.js.map @@ -1 +1 @@ -{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/ast-utils/misc.ts"],"names":[],"mappings":";;;AAEA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAYxB,8CAAiB;AAV7C;;GAEG;AACH,SAAS,iBAAiB,CACxB,IAAuC,EACvC,KAAwC;IAExC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACpD,CAAC;AAEQ,8CAAiB"} \ No newline at end of file +{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/ast-utils/misc.ts"],"names":[],"mappings":";;;AAEA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAYxB,8CAAiB;AAV7C;;GAEG;AACH,SAAS,iBAAiB,CACxB,IAAoB,EACpB,KAAqB;IAErB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACpD,CAAC;AAEQ,8CAAiB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts index 3fbd696cd9..a883da3bf8 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts @@ -1,12 +1,16 @@ import { TSESTree } from '../ts-estree'; -declare function isOptionalChainPunctuator(token: TSESTree.Token | TSESTree.Comment): token is TSESTree.PunctuatorToken & { +declare function isOptionalChainPunctuator(token: TSESTree.Token): token is TSESTree.PunctuatorToken & { value: '?.'; }; -declare function isNotOptionalChainPunctuator(token: TSESTree.Token | TSESTree.Comment): boolean; -declare function isNonNullAssertionPunctuator(token: TSESTree.Token | TSESTree.Comment): token is TSESTree.PunctuatorToken & { +declare function isNotOptionalChainPunctuator(token: TSESTree.Token): token is Exclude; +declare function isNonNullAssertionPunctuator(token: TSESTree.Token): token is TSESTree.PunctuatorToken & { value: '!'; }; -declare function isNotNonNullAssertionPunctuator(token: TSESTree.Token | TSESTree.Comment): boolean; +declare function isNotNonNullAssertionPunctuator(token: TSESTree.Token): token is Exclude; /** * Returns true if and only if the node represents: foo?.() or foo.bar?.() */ @@ -50,8 +54,9 @@ declare function isAwaitExpression(node: TSESTree.Node | undefined | null): node /** * Checks if a possible token is the `await` keyword. */ -declare function isAwaitKeyword(node: TSESTree.Token | TSESTree.Comment | undefined | null): node is TSESTree.KeywordToken & { +declare function isAwaitKeyword(node: TSESTree.Token | undefined | null): node is TSESTree.IdentifierToken & { value: 'await'; }; -export { isAwaitExpression, isAwaitKeyword, isConstructor, isClassOrTypeElement, isFunction, isFunctionOrFunctionType, isFunctionType, isIdentifier, isLogicalOrOperator, isNonNullAssertionPunctuator, isNotNonNullAssertionPunctuator, isNotOptionalChainPunctuator, isOptionalChainPunctuator, isOptionalCallExpression, isSetter, isTSConstructorType, isTSFunctionType, isTypeAssertion, isVariableDeclarator, }; +declare function isLoop(node: TSESTree.Node | undefined | null): node is TSESTree.DoWhileStatement | TSESTree.ForStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.WhileStatement; +export { isAwaitExpression, isAwaitKeyword, isConstructor, isClassOrTypeElement, isFunction, isFunctionOrFunctionType, isFunctionType, isIdentifier, isLoop, isLogicalOrOperator, isNonNullAssertionPunctuator, isNotNonNullAssertionPunctuator, isNotOptionalChainPunctuator, isOptionalChainPunctuator, isOptionalCallExpression, isSetter, isTSConstructorType, isTSFunctionType, isTypeAssertion, isVariableDeclarator, }; //# sourceMappingURL=predicates.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map index 237c92e030..d772e89255 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../src/ast-utils/predicates.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../src/ast-utils/predicates.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js index 007d6047b9..46d3cb9c85 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.isVariableDeclarator = exports.isTypeAssertion = exports.isTSFunctionType = exports.isTSConstructorType = exports.isSetter = exports.isOptionalCallExpression = exports.isOptionalChainPunctuator = exports.isNotOptionalChainPunctuator = exports.isNotNonNullAssertionPunctuator = exports.isNonNullAssertionPunctuator = exports.isLogicalOrOperator = exports.isIdentifier = exports.isFunctionType = exports.isFunctionOrFunctionType = exports.isFunction = exports.isClassOrTypeElement = exports.isConstructor = exports.isAwaitKeyword = exports.isAwaitExpression = void 0; +exports.isVariableDeclarator = exports.isTypeAssertion = exports.isTSFunctionType = exports.isTSConstructorType = exports.isSetter = exports.isOptionalCallExpression = exports.isOptionalChainPunctuator = exports.isNotOptionalChainPunctuator = exports.isNotNonNullAssertionPunctuator = exports.isNonNullAssertionPunctuator = exports.isLogicalOrOperator = exports.isLoop = exports.isIdentifier = exports.isFunctionType = exports.isFunctionOrFunctionType = exports.isFunction = exports.isClassOrTypeElement = exports.isConstructor = exports.isAwaitKeyword = exports.isAwaitExpression = void 0; const ts_estree_1 = require("../ts-estree"); function isOptionalChainPunctuator(token) { return token.type === ts_estree_1.AST_TOKEN_TYPES.Punctuator && token.value === '?.'; @@ -149,4 +149,15 @@ function isAwaitKeyword(node) { return (node === null || node === void 0 ? void 0 : node.type) === ts_estree_1.AST_TOKEN_TYPES.Identifier && node.value === 'await'; } exports.isAwaitKeyword = isAwaitKeyword; +function isLoop(node) { + if (!node) { + return false; + } + return (node.type === ts_estree_1.AST_NODE_TYPES.DoWhileStatement || + node.type === ts_estree_1.AST_NODE_TYPES.ForStatement || + node.type === ts_estree_1.AST_NODE_TYPES.ForInStatement || + node.type === ts_estree_1.AST_NODE_TYPES.ForOfStatement || + node.type === ts_estree_1.AST_NODE_TYPES.WhileStatement); +} +exports.isLoop = isLoop; //# sourceMappingURL=predicates.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map index 555abb7080..d51a313593 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ast-utils/predicates.js.map @@ -1 +1 @@ -{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../src/ast-utils/predicates.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"predicates.js","sourceRoot":"","sources":["../../src/ast-utils/predicates.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts index 2074ddc39a..9cda791499 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts @@ -1,12 +1,11 @@ -import { RuleModule } from '../ts-eslint'; -declare type InferOptionsTypeFromRuleNever = T extends RuleModule ? TOptions : unknown; +import { RuleCreateFunction, RuleModule } from '../ts-eslint'; /** * Uses type inference to fetch the TOptions type from the given RuleModule */ -declare type InferOptionsTypeFromRule = T extends RuleModule ? TOptions : InferOptionsTypeFromRuleNever; +declare type InferOptionsTypeFromRule = T extends RuleModule ? TOptions : T extends RuleCreateFunction ? TOptions : unknown; /** * Uses type inference to fetch the TMessageIds type from the given RuleModule */ -declare type InferMessageIdsTypeFromRule = T extends RuleModule ? TMessageIds : unknown; +declare type InferMessageIdsTypeFromRule = T extends RuleModule ? TMessageIds : T extends RuleCreateFunction ? TMessageIds : unknown; export { InferOptionsTypeFromRule, InferMessageIdsTypeFromRule }; //# sourceMappingURL=InferTypesFromRule.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map index 0d6570b238..0f29a0acd7 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/InferTypesFromRule.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"InferTypesFromRule.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/InferTypesFromRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,aAAK,6BAA6B,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAC1D,KAAK,EACL,MAAM,QAAQ,CACf,GACG,QAAQ,GACR,OAAO,CAAC;AACZ;;GAEG;AACH,aAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,MAAM,QAAQ,CAAC,GAC3E,QAAQ,GACR,6BAA6B,CAAC,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,aAAK,2BAA2B,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CACxD,MAAM,WAAW,EACjB,OAAO,EAAE,CACV,GACG,WAAW,GACX,OAAO,CAAC;AAEZ,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"InferTypesFromRule.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/InferTypesFromRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9D;;GAEG;AACH,aAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CACrD,MAAM,YAAY,EAClB,MAAM,QAAQ,CACf,GACG,QAAQ,GACR,CAAC,SAAS,kBAAkB,CAAC,MAAM,YAAY,EAAE,MAAM,QAAQ,CAAC,GAChE,QAAQ,GACR,OAAO,CAAC;AAEZ;;GAEG;AACH,aAAK,2BAA2B,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CACxD,MAAM,WAAW,EACjB,MAAM,SAAS,CAChB,GACG,WAAW,GACX,CAAC,SAAS,kBAAkB,CAAC,MAAM,WAAW,EAAE,MAAM,SAAS,CAAC,GAChE,WAAW,GACX,OAAO,CAAC;AAEZ,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map index 26af05f3e7..16a1f77759 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/RuleTester.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AAEzC,QAAA,MAAM,MAAM,8BAA8B,CAAC;AAE3C,aAAK,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG;IAClE,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB,CAAC;AAEF,cAAM,UAAW,SAAQ,QAAQ,CAAC,UAAU;;gBAM9B,OAAO,EAAE,gBAAgB;IAyBrC,OAAO,CAAC,WAAW;IAuBnB,GAAG,CAAC,WAAW,SAAS,MAAM,EAAE,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAClE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAChD,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GACtD,IAAI;CA4CR;AAED;;;GAGG;AACH,iBAAS,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAM1E;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/RuleTester.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AAEzC,QAAA,MAAM,MAAM,8BAA8B,CAAC;AAE3C,aAAK,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG;IAClE,MAAM,EAAE,OAAO,MAAM,CAAC;CACvB,CAAC;AAEF,cAAM,UAAW,SAAQ,QAAQ,CAAC,UAAU;;gBAM9B,OAAO,EAAE,gBAAgB;IA0BrC,OAAO,CAAC,WAAW;IAuBnB,GAAG,CAAC,WAAW,SAAS,MAAM,EAAE,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAClE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EAChD,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GACtD,IAAI;CA4CR;AAED;;;GAGG;AACH,iBAAS,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAM1E;AAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js index 348238a1dc..579ea6669a 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js @@ -18,20 +18,18 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _options; +var _RuleTester_options; Object.defineProperty(exports, "__esModule", { value: true }); exports.RuleTester = exports.noFormat = void 0; const path = __importStar(require("path")); @@ -44,14 +42,15 @@ class RuleTester extends TSESLint.RuleTester { constructor(options) { var _a, _b; super(Object.assign(Object.assign({}, options), { parserOptions: Object.assign(Object.assign({}, options.parserOptions), { warnOnUnsupportedTypeScriptVersion: (_b = (_a = options.parserOptions) === null || _a === void 0 ? void 0 : _a.warnOnUnsupportedTypeScriptVersion) !== null && _b !== void 0 ? _b : false }), parser: require.resolve(options.parser) })); - _options.set(this, void 0); - __classPrivateFieldSet(this, _options, options); + _RuleTester_options.set(this, void 0); + __classPrivateFieldSet(this, _RuleTester_options, options, "f"); // make sure that the parser doesn't hold onto file handles between tests // on linux (i.e. our CI env), there can be very a limited number of watch handles available afterAll(() => { try { // instead of creating a hard dependency, just use a soft require // a bit weird, but if they're using this tooling, it'll be installed + // eslint-disable-next-line @typescript-eslint/no-unsafe-call require(parser).clearCaches(); } catch (_a) { @@ -70,8 +69,8 @@ class RuleTester extends TSESLint.RuleTester { } return filename; } - else if (__classPrivateFieldGet(this, _options).parserOptions) { - return this.getFilename(__classPrivateFieldGet(this, _options).parserOptions); + else if (__classPrivateFieldGet(this, _RuleTester_options, "f").parserOptions) { + return this.getFilename(__classPrivateFieldGet(this, _RuleTester_options, "f").parserOptions); } return 'file.ts'; } @@ -114,7 +113,7 @@ class RuleTester extends TSESLint.RuleTester { } } exports.RuleTester = RuleTester; -_options = new WeakMap(); +_RuleTester_options = new WeakMap(); /** * Simple no-op tag to mark code samples as "should not format with prettier" * for the internal/plugin-test-formatting lint rule diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map index bff9ff1998..e8fdf29514 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/RuleTester.js.map @@ -1 +1 @@ -{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/eslint-utils/RuleTester.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uDAAyC;AAEzC,MAAM,MAAM,GAAG,2BAA2B,CAAC;AAM3C,MAAM,UAAW,SAAQ,QAAQ,CAAC,UAAU;IAG1C,oEAAoE;IACpE,4EAA4E;IAC5E,+CAA+C;IAC/C,YAAY,OAAyB;;QACnC,KAAK,iCACA,OAAO,KACV,aAAa,kCACR,OAAO,CAAC,aAAa,KACxB,kCAAkC,cAChC,OAAO,CAAC,aAAa,0CAAE,kCAAkC,mCAAI,KAAK,KAEtE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IACvC,CAAC;QAdL,2BAAoC;QAgBlC,uBAAA,IAAI,YAAY,OAAO,EAAC;QAExB,yEAAyE;QACzE,4FAA4F;QAC5F,QAAQ,CAAC,GAAG,EAAE;YACZ,IAAI;gBACF,iEAAiE;gBACjE,qEAAqE;gBACrE,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;aAC/B;YAAC,WAAM;gBACN,UAAU;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACO,WAAW,CAAC,OAAgC;;QAClD,IAAI,OAAO,EAAE;YACX,MAAM,QAAQ,GAAG,UAAU,OAAA,OAAO,CAAC,YAAY,0CAAE,GAAG,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAClE,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,CAAC,eAAe,IAAI,IAAI;oBAC7B,CAAC,CAAC,OAAO,CAAC,eAAe;oBACzB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EACjB,QAAQ,CACT,CAAC;aACH;YAED,OAAO,QAAQ,CAAC;SACjB;aAAM,IAAI,uCAAc,aAAa,EAAE;YACtC,OAAO,IAAI,CAAC,WAAW,CAAC,uCAAc,aAAa,CAAC,CAAC;SACtD;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oEAAoE;IACpE,qFAAqF;IACrF,8BAA8B;IAC9B,GAAG,CACD,IAAY,EACZ,IAAgD,EAChD,aAAuD;QAEvD,MAAM,YAAY,GAAG,sFAAsF,MAAM,EAAE,CAAC;QAEpH,MAAM,KAAK,qBAAQ,aAAa,CAAE,CAAC;QAEnC,yCAAyC;QACzC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,OAAO;oBACL,IAAI,EAAE,IAAI;iBACX,CAAC;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;oBAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAClB,uCACK,IAAI,KACP,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAC9C;iBACH;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,uCACK,IAAI,KACP,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAC9C;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF;AAckB,gCAAU;;AAZ7B;;;GAGG;AACH,SAAS,QAAQ,CAAC,OAA6B,EAAE,GAAG,IAAc;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,OAAO,CACL,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACpE,OAAO,CAAC,SAAS,CAAC,CACnB,CAAC;AACJ,CAAC;AAEQ,4BAAQ"} \ No newline at end of file +{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/eslint-utils/RuleTester.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts index b92df58f50..6bc5b6d1f0 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts @@ -5,6 +5,6 @@ * @param userOptions the user opts * @returns the options with defaults */ -declare function applyDefault(defaultOptions: TDefault, userOptions: TUser | null): TDefault; +declare function applyDefault(defaultOptions: Readonly, userOptions: Readonly | null): TDefault; export { applyDefault }; //# sourceMappingURL=applyDefault.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map index 50c710ed4d..a938e786a7 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"applyDefault.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,QAAQ,SAAS,KAAK,EAC5E,cAAc,EAAE,QAAQ,EACxB,WAAW,EAAE,KAAK,GAAG,IAAI,GACxB,QAAQ,CAuBV;AAMD,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"applyDefault.d.ts","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iBAAS,YAAY,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,QAAQ,SAAS,KAAK,EAC5E,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAClC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,GAClC,QAAQ,CAuBV;AAMD,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map index 797a3b5095..2e87f27a4a 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/applyDefault.js.map @@ -1 +1 @@ -{"version":3,"file":"applyDefault.js","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAE1D;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,cAAwB,EACxB,WAAyB;IAEzB,iBAAiB;IACjB,MAAM,OAAO,GAAwB,IAAI,CAAC,KAAK,CAC7C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAC/B,CAAC;IAEF,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,4BAAgB,CAAC,OAAO,CAAC,IAAI,4BAAgB,CAAC,GAAG,CAAC,EAAE;gBACtD,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACtB;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAMQ,oCAAY"} \ No newline at end of file +{"version":3,"file":"applyDefault.js","sourceRoot":"","sources":["../../src/eslint-utils/applyDefault.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAE1D;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,cAAkC,EAClC,WAAmC;IAEnC,iBAAiB;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CACR,CAAC;IAEzB,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;QACrD,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,4BAAgB,CAAC,OAAO,CAAC,IAAI,4BAAgB,CAAC,GAAG,CAAC,EAAE;gBACtD,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aACtC;iBAAM;gBACL,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACtB;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAMQ,oCAAY"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map index 31f68d6880..b527968576 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/batchedSingleLineTests.js.map @@ -1 +1 @@ -{"version":3,"file":"batchedSingleLineTests.js","sourceRoot":"","sources":["../../src/eslint-utils/batchedSingleLineTests.ts"],"names":[],"mappings":";;;AA8BA,SAAS,sBAAsB,CAI7B,OAAyE;IAEzE,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,OAAO,CAAC,IAAI;SAChB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC;QAC/B,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,SAAS,mCACV,OAAO,KACV,IAAI,EACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACnB,CAAC,KACJ,IAAI,EAAE,CAAC,IACP,CAAC,GACJ,CAAC;QACF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,GAAG;YACf,uCACK,SAAS,KACZ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAEQ,wDAAsB"} \ No newline at end of file +{"version":3,"file":"batchedSingleLineTests.js","sourceRoot":"","sources":["../../src/eslint-utils/batchedSingleLineTests.ts"],"names":[],"mappings":";;;AA8BA,SAAS,sBAAsB,CAI7B,OAAyE;IAEzE,6BAA6B;IAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACX,OAAO,OAAO,CAAC,IAAI;SAChB,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC;QAC/B,MAAM,MAAM,GACV,QAAQ,IAAI,OAAO;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,SAAS,mCACV,OAAO,KACV,IAAI,EACJ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iCACnB,CAAC,KACJ,IAAI,EAAE,CAAC,IACP,CAAC,GACJ,CAAC;QACF,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,EAAE;YACf,uCACK,SAAS,KACZ,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC;AAEQ,wDAAsB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map index 4d4012577e..c0ea5f4a28 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/eslint-utils/getParserServices.js.map @@ -1 +1 @@ -{"version":3,"file":"getParserServices.js","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GACjB,gLAAgL,CAAC;AAEnL;;GAEG;AACH,SAAS,iBAAiB,CAIxB,OAA8D,EAC9D,+BAA+B,GAAG,KAAK;;IAEvC,gCAAgC;IAChC,sGAAsG;IACtG,IACE,CAAC,OAAO,CAAC,cAAc;QACvB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO;QAC/B,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB;QAC7C,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAC7C;QACA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,MAAM,sBAAsB,SAC1B,OAAO,CAAC,cAAc,CAAC,sBAAsB;IAC7C,0BAA0B,CAAC,IAAI,CAAC;IAElC,+EAA+E;IAC/E,uDAAuD;IACvD,IAAI,CAAC,sBAAsB,IAAI,CAAC,+BAA+B,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAEQ,8CAAiB"} \ No newline at end of file +{"version":3,"file":"getParserServices.js","sourceRoot":"","sources":["../../src/eslint-utils/getParserServices.ts"],"names":[],"mappings":";;;AAGA,MAAM,aAAa,GACjB,gLAAgL,CAAC;AAEnL;;GAEG;AACH,SAAS,iBAAiB,CAIxB,OAA8D,EAC9D,+BAA+B,GAAG,KAAK;;IAEvC,gCAAgC;IAChC,sGAAsG;IACtG,IACE,CAAC,OAAO,CAAC,cAAc;QACvB,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO;QAC/B,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB;QAC7C,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAC7C;QACA,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,MAAM,sBAAsB,GAC1B,MAAA,OAAO,CAAC,cAAc,CAAC,sBAAsB;IAC7C,0BAA0B,CAAC,IAAI,CAAC;IAElC,+EAA+E;IAC/E,uDAAuD;IACvD,IAAI,CAAC,sBAAsB,IAAI,CAAC,+BAA+B,EAAE;QAC/D,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC,cAAc,CAAC;AAChC,CAAC;AAEQ,8CAAiB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map index 845788b30d..abb3e92367 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/json-schema.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"} \ No newline at end of file +{"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map index ab9c63877a..5d7a45655c 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,qBAAqB;IAC7B,KACE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,EAClD,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,EAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,UAAU,CAAC;CACf;AACD,QAAA,MAAM,UAAU,uBAA4C,CAAC;AAG7D,UAAU,mBAAoB,SAAQ,UAAU;CAAG;AACnD,QAAA,MAAM,mBAAmB,sCAEf,SAAS,IAAI,QACb,SAAS,IAAI,oEAGlB,mBAAmB,CACvB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"Definition.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AACD,UAAU,qBAAqB;IAC7B,KACE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,EAClD,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,EAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GACnB,UAAU,CAAC;CACf;AACD,QAAA,MAAM,UAAU,uBAA4C,CAAC;AAG7D,UAAU,mBAAoB,SAAQ,UAAU;CAAG;AACnD,QAAA,MAAM,mBAAmB,sCAGb,SAAS,IAAI,QACb,SAAS,IAAI,oEAGlB,mBAAmB,CACvB,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map index fa19c8c142..f239f2a7bc 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Definition.js.map @@ -1 +1 @@ -{"version":3,"file":"Definition.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":";;;AAAA,4DAGqC;AAsBrC,MAAM,UAAU,GAAG,uBAAyC,CAAC;AAapD,gCAAU;AATnB,MAAM,mBAAmB,GAAG,gCAO3B,CAAC;AAEmB,kDAAmB"} \ No newline at end of file +{"version":3,"file":"Definition.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Definition.ts"],"names":[],"mappings":";;;AAAA,4DAGqC;AAsBrC,MAAM,UAAU,GAAG,uBAAyC,CAAC;AAcpD,gCAAU;AAVnB,MAAM,mBAAmB,GACvB,gCAOC,CAAC;AAEiB,kDAAmB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts index 0d479b39be..2512accb42 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts @@ -19,7 +19,7 @@ interface Reference { isReadWrite(): boolean; } declare const Reference: { - new (identifier: TSESTree.Identifier, scope: Scope, flag?: 2 | 3 | 1 | undefined, writeExpr?: TSESTree.ArrayExpression | TSESTree.ArrayPattern | TSESTree.ArrowFunctionExpression | TSESTree.AssignmentExpression | TSESTree.AssignmentPattern | TSESTree.AwaitExpression | TSESTree.BigIntLiteral | TSESTree.BinaryExpression | TSESTree.BlockStatement | TSESTree.BreakStatement | TSESTree.CallExpression | TSESTree.CatchClause | TSESTree.ChainExpression | TSESTree.ClassBody | TSESTree.ClassDeclaration | TSESTree.ClassExpression | TSESTree.ClassPropertyComputedName | TSESTree.ClassPropertyNonComputedName | TSESTree.ConditionalExpression | TSESTree.ContinueStatement | TSESTree.DebuggerStatement | TSESTree.Decorator | TSESTree.DoWhileStatement | TSESTree.EmptyStatement | TSESTree.ExportAllDeclaration | TSESTree.ExportDefaultDeclaration | TSESTree.ExportNamedDeclaration | TSESTree.ExportSpecifier | TSESTree.ExpressionStatement | TSESTree.ForInStatement | TSESTree.ForOfStatement | TSESTree.ForStatement | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.Identifier | TSESTree.IfStatement | TSESTree.ImportDeclaration | TSESTree.ImportDefaultSpecifier | TSESTree.ImportExpression | TSESTree.ImportNamespaceSpecifier | TSESTree.ImportSpecifier | TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXText | TSESTree.LabeledStatement | TSESTree.BooleanLiteral | TSESTree.NumberLiteral | TSESTree.NullLiteral | TSESTree.RegExpLiteral | TSESTree.StringLiteral | TSESTree.LogicalExpression | TSESTree.MemberExpressionComputedName | TSESTree.MemberExpressionNonComputedName | TSESTree.MetaProperty | TSESTree.MethodDefinitionComputedName | TSESTree.MethodDefinitionNonComputedName | TSESTree.NewExpression | TSESTree.ObjectExpression | TSESTree.ObjectPattern | TSESTree.Program | TSESTree.PropertyComputedName | TSESTree.PropertyNonComputedName | TSESTree.RestElement | TSESTree.ReturnStatement | TSESTree.SequenceExpression | TSESTree.SpreadElement | TSESTree.Super | TSESTree.SwitchCase | TSESTree.SwitchStatement | TSESTree.TaggedTemplateExpression | TSESTree.TemplateElement | TSESTree.TemplateLiteral | TSESTree.ThisExpression | TSESTree.ThrowStatement | TSESTree.TryStatement | TSESTree.TSAbstractClassPropertyComputedName | TSESTree.TSAbstractClassPropertyNonComputedName | TSESTree.TSAbstractKeyword | TSESTree.TSAbstractMethodDefinitionComputedName | TSESTree.TSAbstractMethodDefinitionNonComputedName | TSESTree.TSAnyKeyword | TSESTree.TSArrayType | TSESTree.TSAsExpression | TSESTree.TSAsyncKeyword | TSESTree.TSBigIntKeyword | TSESTree.TSBooleanKeyword | TSESTree.TSCallSignatureDeclaration | TSESTree.TSClassImplements | TSESTree.TSConditionalType | TSESTree.TSConstructorType | TSESTree.TSConstructSignatureDeclaration | TSESTree.TSDeclareFunction | TSESTree.TSDeclareKeyword | TSESTree.TSEmptyBodyFunctionExpression | TSESTree.TSEnumDeclaration | TSESTree.TSEnumMemberComputedName | TSESTree.TSEnumMemberNonComputedName | TSESTree.TSExportAssignment | TSESTree.TSExportKeyword | TSESTree.TSExternalModuleReference | TSESTree.TSFunctionType | TSESTree.TSImportEqualsDeclaration | TSESTree.TSImportType | TSESTree.TSIndexedAccessType | TSESTree.TSIndexSignature | TSESTree.TSInferType | TSESTree.TSInterfaceBody | TSESTree.TSInterfaceDeclaration | TSESTree.TSInterfaceHeritage | TSESTree.TSIntersectionType | TSESTree.TSLiteralType | TSESTree.TSMappedType | TSESTree.TSMethodSignatureComputedName | TSESTree.TSMethodSignatureNonComputedName | TSESTree.TSModuleBlock | TSESTree.TSModuleDeclaration | TSESTree.TSNamedTupleMember | TSESTree.TSNamespaceExportDeclaration | TSESTree.TSNeverKeyword | TSESTree.TSNonNullExpression | TSESTree.TSNullKeyword | TSESTree.TSNumberKeyword | TSESTree.TSObjectKeyword | TSESTree.TSOptionalType | TSESTree.TSParameterProperty | TSESTree.TSParenthesizedType | TSESTree.TSPrivateKeyword | TSESTree.TSPropertySignatureComputedName | TSESTree.TSPropertySignatureNonComputedName | TSESTree.TSProtectedKeyword | TSESTree.TSPublicKeyword | TSESTree.TSQualifiedName | TSESTree.TSReadonlyKeyword | TSESTree.TSRestType | TSESTree.TSStaticKeyword | TSESTree.TSStringKeyword | TSESTree.TSSymbolKeyword | TSESTree.TSThisType | TSESTree.TSTupleType | TSESTree.TSTypeAliasDeclaration | TSESTree.TSTypeAnnotation | TSESTree.TSTypeAssertion | TSESTree.TSTypeLiteral | TSESTree.TSTypeOperator | TSESTree.TSTypeParameter | TSESTree.TSTypeParameterDeclaration | TSESTree.TSTypeParameterInstantiation | TSESTree.TSTypePredicate | TSESTree.TSTypeQuery | TSESTree.TSTypeReference | TSESTree.TSUndefinedKeyword | TSESTree.TSUnionType | TSESTree.TSUnknownKeyword | TSESTree.TSVoidKeyword | TSESTree.UnaryExpression | TSESTree.UpdateExpression | TSESTree.VariableDeclaration | TSESTree.VariableDeclarator | TSESTree.WhileStatement | TSESTree.WithStatement | TSESTree.YieldExpression | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference; + new (identifier: TSESTree.Identifier, scope: Scope, flag?: ReferenceFlag | undefined, writeExpr?: TSESTree.Node | null | undefined, maybeImplicitGlobal?: boolean | undefined, partial?: boolean | undefined, init?: boolean | undefined): Reference; READ: 0x1; WRITE: 0x2; RW: 0x3; diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map index 1384afbb9a..c4bc6ff5c7 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Reference.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,oBAAY,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5C,UAAU,SAAS;IACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC;CACxB;AACD,QAAA,MAAM,SAAS;qBAEC,SAAS,UAAU,SACxB,KAAK,2lKAMX,SAAS;UAEN,GAAG;WACF,GAAG;QACN,GAAG;CACR,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"Reference.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Reference.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,oBAAY,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5C,UAAU,SAAS;IACjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAChC,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IAEd,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,IAAI,OAAO,CAAC;IAClB,WAAW,IAAI,OAAO,CAAC;IACvB,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC;CACxB;AACD,QAAA,MAAM,SAAS;qBAEC,SAAS,UAAU,SACxB,KAAK,yLAMX,SAAS;UAEN,GAAG;WACF,GAAG;QACN,GAAG;CACR,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map index 8b6f342ec7..ab83f77e6e 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map index b0d79696ef..39831a9fed 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/Scope.js.map @@ -1 +1 @@ -{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":";AAAA,8FAA8F;;;AAE9F,kDAYgC;AA8GhC,MAAM,KAAK,GAAG,aAA+B,CAAC;AA2D5C,sBAAK;AAhDP,MAAM,WAAW,GAAG,mBAEnB,CAAC;AA+CA,kCAAW;AA5Cb,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA4CjD,kCAAW;AAzCb,MAAM,2BAA2B,GAAG,mCAC8B,CAAC;AAyCjE,kEAA2B;AAtC7B,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAsChD,gCAAU;AAnCZ,MAAM,SAAS,GAAG,iBAC8B,CAAC;AAmC/C,8BAAS;AAhCX,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAgChD,gCAAU;AA7BZ,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA6BjD,kCAAW;AA1Bb,MAAM,aAAa,GAAG,qBAOrB,CAAC;AAoBA,sCAAa;AAjBf,MAAM,QAAQ,GAAG,gBAC8B,CAAC;AAiB9C,4BAAQ;AAdV,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAchD,gCAAU"} \ No newline at end of file +{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/Scope.ts"],"names":[],"mappings":";AAAA,8FAA8F;;;AAE9F,kDAYgC;AA8GhC,MAAM,KAAK,GAAG,aAA+B,CAAC;AA4D5C,sBAAK;AAjDP,MAAM,WAAW,GAAG,mBAEnB,CAAC;AAgDA,kCAAW;AA7Cb,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA6CjD,kCAAW;AA1Cb,MAAM,2BAA2B,GAC/B,mCACkE,CAAC;AAyCnE,kEAA2B;AAtC7B,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAsChD,gCAAU;AAnCZ,MAAM,SAAS,GAAG,iBAC8B,CAAC;AAmC/C,8BAAS;AAhCX,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAgChD,gCAAU;AA7BZ,MAAM,WAAW,GAAG,mBAC8B,CAAC;AA6BjD,kCAAW;AA1Bb,MAAM,aAAa,GAAG,qBAOrB,CAAC;AAoBA,sCAAa;AAjBf,MAAM,QAAQ,GAAG,gBAC8B,CAAC;AAiB9C,4BAAQ;AAdV,MAAM,UAAU,GAAG,kBAC8B,CAAC;AAchD,gCAAU"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map index 26afd66cfe..c9103cfe09 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,eAAO,MAAM,OAAO,EAAE,MAAsB,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAE3B,eAAO,MAAM,OAAO,EAAE,MAAsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map index 8872a9fbd1..0ffacefbcb 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint-scope/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAwD;AAExD,4CAA0B;AAC1B,+CAA6B;AAC7B,4CAA0B;AAC1B,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,6CAA2B;AACd,QAAA,OAAO,GAAW,sBAAa,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ts-eslint-scope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAwD;AAExD,4CAA0B;AAC1B,+CAA6B;AAC7B,4CAA0B;AAC1B,mDAAiC;AACjC,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,6CAA2B;AAEd,QAAA,OAAO,GAAW,sBAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts index 248e8fb2f3..62fff39661 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts @@ -1,6 +1,6 @@ import { TSESTree, ParserServices } from '../ts-estree'; import { ParserOptions as TSParserOptions } from './ParserOptions'; -import { RuleCreateFunction, RuleFix, RuleModule } from './Rule'; +import { RuleCreateFunction, RuleFix, RuleModule, SharedConfigurationSettings } from './Rule'; import { Scope } from './Scope'; import { SourceCode } from './SourceCode'; declare class LinterBase { @@ -129,9 +129,7 @@ declare namespace Linter { /** * The shared settings. */ - settings?: { - [name: string]: unknown; - }; + settings?: SharedConfigurationSettings; } export interface ConfigOverride extends BaseConfig { excludedFiles?: string | string[]; diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map index 5c2bc13e0c..a3cab47525 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Linter.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Linter.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map index 8c8e207d18..34699a4410 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Linter.js.map @@ -1 +1 @@ -{"version":3,"file":"Linter.js","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAgD;AA8WhD;;;;GAIG;AACH,MAAM,MAAO,SAAS,eAAkC;CAAG;AAElD,wBAAM"} \ No newline at end of file +{"version":3,"file":"Linter.js","sourceRoot":"","sources":["../../src/ts-eslint/Linter.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAgD;AAmXhD;;;;GAIG;AACH,MAAM,MAAO,SAAS,eAAkC;CAAG;AAElD,wBAAM"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts index 66a65991c5..ab745ee629 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts @@ -114,7 +114,7 @@ interface ReportDescriptorNodeOptionalLoc { /** * The Node or AST Token which the report is being attached to */ - readonly node: TSESTree.Node | TSESTree.Comment | TSESTree.Token; + readonly node: TSESTree.Node | TSESTree.Token; /** * An override of the location of the report */ @@ -127,6 +127,13 @@ interface ReportDescriptorLocOnly { loc: Readonly | Readonly; } declare type ReportDescriptor = ReportDescriptorWithSuggestion & (ReportDescriptorNodeOptionalLoc | ReportDescriptorLocOnly); +/** + * Plugins can add their settings using declaration + * merging against this interface. + */ +interface SharedConfigurationSettings { + [name: string]: unknown; +} interface RuleContext { /** * The rule ID. @@ -153,7 +160,7 @@ interface RuleContext; + settings: SharedConfigurationSettings; /** * Returns an array of the ancestors of the currently-traversed node, starting at * the root of the AST and continuing through the direct parent of the current node. @@ -165,6 +172,13 @@ interface RuleContext>): TRuleListener; } -declare type RuleCreateFunction = (context: Readonly>) => RuleListener; -export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleCreateFunction, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, }; +declare type RuleCreateFunction = (context: Readonly>) => TRuleListener; +export { ReportDescriptor, ReportFixFunction, ReportSuggestionArray, RuleContext, RuleCreateFunction, RuleFix, RuleFixer, RuleFunction, RuleListener, RuleMetaData, RuleMetaDataDocs, RuleModule, SharedConfigurationSettings, }; //# sourceMappingURL=Rule.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map index 0e858f8416..656ff111ed 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Rule.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,UAAU,gBAAgB;IACxB;;OAEG;IACH,QAAQ,EACJ,gBAAgB,GAChB,kBAAkB,GAClB,WAAW,GACX,iBAAiB,CAAC;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACtC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACpC;AACD,UAAU,YAAY,CAAC,WAAW,SAAS,MAAM;IAC/C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAChC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACtC;;;;;OAKG;IACH,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,MAAM,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;CACrC;AAED,UAAU,OAAO;IACf,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,eAAe,CACb,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAEX,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9D,gBAAgB,CACd,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAEX,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/D,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC;IAE7D,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;IAEvC,WAAW,CACT,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAEX,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3D;AAED,aAAK,iBAAiB,GAAG,CACvB,KAAK,EAAE,SAAS,KACb,IAAI,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC5D,aAAK,qBAAqB,CAAC,WAAW,SAAS,MAAM,IAAI,oBAAoB,CAC3E,WAAW,CACZ,EAAE,CAAC;AAEJ,UAAU,oBAAoB,CAAC,WAAW,SAAS,MAAM;IACvD;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;CAIjC;AACD,UAAU,8BAA8B,CAAC,WAAW,SAAS,MAAM,CACjE,SAAQ,oBAAoB,CAAC,WAAW,CAAC;IACzC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;CACxE;AAED,UAAU,+BAA+B;IACvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjE;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EACT,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GACjC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;CAC1C;AACD,UAAU,uBAAuB;IAC/B;;OAEG;IACH,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;CAC/E;AACD,aAAK,gBAAgB,CACnB,WAAW,SAAS,MAAM,IACxB,8BAA8B,CAAC,WAAW,CAAC,GAC7C,CAAC,+BAA+B,GAAG,uBAAuB,CAAC,CAAC;AAE9D,UAAU,WAAW,CACnB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,SAAS,OAAO,EAAE;IAEnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,OAAO,EAAE,QAAQ,CAAC;IAClB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;IACpC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC;;;;OAIG;IACH,YAAY,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEhC;;;OAGG;IACH,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE5D;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;IAExB;;;OAGG;IACH,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEtC;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAE1C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACzD;AAID,aAAK,YAAY,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAE3E,UAAU,YAAY;IACpB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,uBAAuB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACzE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,oBAAoB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACnE,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACrE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,oBAAoB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACnE,wBAAwB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC3E,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,wBAAwB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC3E,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,wBAAwB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAC3E,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,uBAAuB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACzE,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,0BAA0B,CAAC,EAAE,YAAY,CACvC,QAAQ,CAAC,0BAA0B,CACpC,CAAC;IACF,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,0BAA0B,CAAC,EAAE,YAAY,CACvC,QAAQ,CAAC,0BAA0B,CACpC,CAAC;IACF,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,+BAA+B,CAAC,EAAE,YAAY,CAC5C,QAAQ,CAAC,+BAA+B,CACzC,CAAC;IACF,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,6BAA6B,CAAC,EAAE,YAAY,CAC1C,QAAQ,CAAC,6BAA6B,CACvC,CAAC;IACF,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,yBAAyB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC7E,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,yBAAyB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IAC7E,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,4BAA4B,CAAC,EAAE,YAAY,CACzC,QAAQ,CAAC,4BAA4B,CACtC,CAAC;IACF,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,sBAAsB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACvE,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,0BAA0B,CAAC,EAAE,YAAY,CACvC,QAAQ,CAAC,0BAA0B,CACpC,CAAC;IACF,4BAA4B,CAAC,EAAE,YAAY,CACzC,QAAQ,CAAC,4BAA4B,CACtC,CAAC;IACF,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,WAAW,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACzD,gBAAgB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3D,mBAAmB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;CAC1D;AAED,UAAU,UAAU,CAClB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,SAAS,OAAO,EAAE,EAEnC,aAAa,SAAS,YAAY,GAAG,YAAY;IAEjD;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IAEhC;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,GAAG,aAAa,CAAC;CAC9E;AAED,aAAK,kBAAkB,GAAG,CACxB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAC7C,YAAY,CAAC;AAElB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,CAAC"} \ No newline at end of file +{"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Rule.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts index 22765608c4..7e2beeb7f0 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts @@ -1,6 +1,7 @@ import { AST_NODE_TYPES, AST_TOKEN_TYPES } from '../ts-estree'; import { ParserOptions } from './ParserOptions'; -import { RuleModule } from './Rule'; +import { Linter } from './Linter'; +import { RuleCreateFunction, RuleModule, SharedConfigurationSettings } from './Rule'; interface ValidTestCase> { /** * Code for the test case. @@ -17,7 +18,7 @@ interface ValidTestCase> { /** * The additional global variables. */ - readonly globals?: Record; + readonly globals?: Record; /** * Options for the test case. */ @@ -33,7 +34,11 @@ interface ValidTestCase> { /** * Settings for the test case. */ - readonly settings?: Readonly>; + readonly settings?: Readonly; + /** + * Run this case exclusively for debugging in supported test frameworks. + */ + readonly only?: boolean; } interface SuggestionOutput { /** @@ -54,7 +59,7 @@ interface InvalidTestCase[]; + readonly errors: readonly TestCaseError[]; /** * The expected code after autofixes are applied. If set to `null`, the test runner will assert that no autofix is suggested. */ @@ -95,10 +100,10 @@ interface TestCaseError { readonly type?: AST_NODE_TYPES | AST_TOKEN_TYPES; } interface RunTests> { - readonly valid: (ValidTestCase | string)[]; - readonly invalid: InvalidTestCase[]; + readonly valid: readonly (ValidTestCase | string)[]; + readonly invalid: readonly InvalidTestCase[]; } -interface RuleTesterConfig { +interface RuleTesterConfig extends Linter.Config { readonly parser: string; readonly parserOptions?: Readonly; } @@ -129,6 +134,12 @@ declare class RuleTesterBase { * @param callback the test callback */ static it?: (text: string, callback: () => void) => void; + /** + * Define a rule for one particular run of tests. + * @param name The name of the rule to define. + * @param rule The rule definition. + */ + defineRule>(name: string, rule: RuleModule | RuleCreateFunction): void; } declare const RuleTester_base: typeof RuleTesterBase; declare class RuleTester extends RuleTester_base { diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map index 045a474f6e..549244940c 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"RuleTester.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,2BAA2B,EAC5B,MAAM,QAAQ,CAAC;AAEhB,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;IAC1E;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC1D;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,gBAAgB,CAAC,WAAW,SAAS,MAAM;IACnD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAIzB;AAED,UAAU,eAAe,CACvB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,CACpC,SAAQ,aAAa,CAAC,QAAQ,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;IACvD;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,UAAU,aAAa,CAAC,WAAW,SAAS,MAAM;IAChD;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC;IAC9D;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;CAIlD;AAED,UAAU,QAAQ,CAChB,WAAW,SAAS,MAAM,EAC1B,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC;IAGpC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;CACrE;AACD,UAAU,gBAAiB,SAAQ,MAAM,CAAC,MAAM;IAE9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CAClD;AAED,OAAO,OAAO,cAAc;IAC1B;;;OAGG;gBACS,YAAY,CAAC,EAAE,gBAAgB;IAE3C;;;;;OAKG;IACH,GAAG,CAAC,WAAW,SAAS,MAAM,EAAE,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EAClE,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,EACvC,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GACrC,IAAI;IAEP;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAE/D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAEzD;;;;OAIG;IACH,UAAU,CAAC,WAAW,SAAS,MAAM,EAAE,QAAQ,SAAS,QAAQ,CAAC,OAAO,EAAE,CAAC,EACzE,IAAI,EAAE,MAAM,EACZ,IAAI,EACA,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,GACjC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,GAC5C,IAAI;CACR;;AAED,cAAM,UAAW,SAAQ,eAA2C;CAAG;AAEvE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,aAAa,GACd,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map index 4fe5fc649f..b7a34b62b9 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/RuleTester.js.map @@ -1 +1 @@ -{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":";;;AAAA,mCAAwD;AAiKxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAKrE,gCAAU"} \ No newline at end of file +{"version":3,"file":"RuleTester.js","sourceRoot":"","sources":["../../src/ts-eslint/RuleTester.ts"],"names":[],"mappings":";;;AAAA,mCAAwD;AAsLxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAKrE,gCAAU"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts index 004dec4a18..37af416679 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts @@ -1,44 +1,44 @@ import * as scopeManager from '@typescript-eslint/scope-manager'; -import { TSESTree } from '@typescript-eslint/types'; declare namespace Scope { - class ESLintScopeVariable { - readonly defs: Definition[]; - readonly identifiers: TSESTree.Identifier[]; - readonly name: string; - readonly references: Reference[]; - readonly scope: Scope; - /** - * Written to by ESLint. - * If this key exists, this variable is a global variable added by ESLint. - * If this is `true`, this variable can be assigned arbitrary values. - * If this is `false`, this variable is readonly. - */ - writeable?: boolean; - /** - * Written to by ESLint. - * This property is undefined if there are no globals directive comments. - * The array of globals directive comments which defined this global variable in the source code file. - */ - eslintExplicitGlobal?: boolean; - /** - * Written to by ESLint. - * The configured value in config files. This can be different from `variable.writeable` if there are globals directive comments. - */ - eslintImplicitGlobalSetting?: 'readonly' | 'writable'; - /** - * Written to by ESLint. - * If this key exists, it is a global variable added by ESLint. - * If `true`, this global variable was defined by a globals directive comment in the source code file. - */ - eslintExplicitGlobalComments?: TSESTree.Comment[]; + type ScopeManager = scopeManager.ScopeManager; + type Reference = scopeManager.Reference; + type Variable = scopeManager.Variable | scopeManager.ESLintScopeVariable; + type Scope = scopeManager.Scope; + const ScopeType: typeof scopeManager.ScopeType; + type DefinitionType = scopeManager.Definition; + type Definition = scopeManager.Definition; + const DefinitionType: typeof scopeManager.DefinitionType; + namespace Definitions { + type CatchClauseDefinition = scopeManager.CatchClauseDefinition; + type ClassNameDefinition = scopeManager.ClassNameDefinition; + type FunctionNameDefinition = scopeManager.FunctionNameDefinition; + type ImplicitGlobalVariableDefinition = scopeManager.ImplicitGlobalVariableDefinition; + type ImportBindingDefinition = scopeManager.ImportBindingDefinition; + type ParameterDefinition = scopeManager.ParameterDefinition; + type TSEnumMemberDefinition = scopeManager.TSEnumMemberDefinition; + type TSEnumNameDefinition = scopeManager.TSEnumNameDefinition; + type TSModuleNameDefinition = scopeManager.TSModuleNameDefinition; + type TypeDefinition = scopeManager.TypeDefinition; + type VariableDefinition = scopeManager.VariableDefinition; + } + namespace Scopes { + type BlockScope = scopeManager.BlockScope; + type CatchScope = scopeManager.CatchScope; + type ClassScope = scopeManager.ClassScope; + type ConditionalTypeScope = scopeManager.ConditionalTypeScope; + type ForScope = scopeManager.ForScope; + type FunctionExpressionNameScope = scopeManager.FunctionExpressionNameScope; + type FunctionScope = scopeManager.FunctionScope; + type FunctionTypeScope = scopeManager.FunctionTypeScope; + type GlobalScope = scopeManager.GlobalScope; + type MappedTypeScope = scopeManager.MappedTypeScope; + type ModuleScope = scopeManager.ModuleScope; + type SwitchScope = scopeManager.SwitchScope; + type TSEnumScope = scopeManager.TSEnumScope; + type TSModuleScope = scopeManager.TSModuleScope; + type TypeScope = scopeManager.TypeScope; + type WithScope = scopeManager.WithScope; } - export type ScopeManager = scopeManager.ScopeManager; - export type Reference = scopeManager.Reference; - export type Variable = scopeManager.Variable | ESLintScopeVariable; - export type Scope = scopeManager.Scope; - export type DefinitionType = scopeManager.Definition; - export type Definition = scopeManager.Definition; - export {}; } export { Scope }; //# sourceMappingURL=Scope.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map index 3464622938..868fbb2474 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,kBAAU,KAAK,CAAC;IAGd,MAAc,mBAAmB;QAC/B,SAAgB,IAAI,EAAE,UAAU,EAAE,CAAC;QACnC,SAAgB,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QACnD,SAAgB,IAAI,EAAE,MAAM,CAAC;QAC7B,SAAgB,UAAU,EAAE,SAAS,EAAE,CAAC;QACxC,SAAgB,KAAK,EAAE,KAAK,CAAC;QAE7B;;;;;WAKG;QACI,SAAS,CAAC,EAAE,OAAO,CAAC;QAE3B;;;;WAIG;QACI,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAEtC;;;WAGG;QACI,2BAA2B,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;QAE7D;;;;WAIG;QACI,4BAA4B,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC1D;IAED,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IACrD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAC/C,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,GAAG,mBAAmB,CAAC;IACnE,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAEvC,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC;IACrD,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;;CAClD;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"Scope.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,YAAY,MAAM,kCAAkC,CAAC;AAEjE,kBAAU,KAAK,CAAC;IACd,KAAY,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IACrD,KAAY,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAC/C,KAAY,QAAQ,GAChB,YAAY,CAAC,QAAQ,GACrB,YAAY,CAAC,mBAAmB,CAAC;IACrC,KAAY,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAChC,MAAM,SAAS,+BAAyB,CAAC;IAEhD,KAAY,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC;IACrD,KAAY,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IAC1C,MAAM,cAAc,oCAA8B,CAAC;IAE1D,UAAiB,WAAW,CAAC;QAC3B,KAAY,qBAAqB,GAAG,YAAY,CAAC,qBAAqB,CAAC;QACvE,KAAY,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,CAAC;QACnE,KAAY,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,CAAC;QACzE,KAAY,gCAAgC,GAC1C,YAAY,CAAC,gCAAgC,CAAC;QAChD,KAAY,uBAAuB,GAAG,YAAY,CAAC,uBAAuB,CAAC;QAC3E,KAAY,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,CAAC;QACnE,KAAY,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,CAAC;QACzE,KAAY,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAC;QACrE,KAAY,sBAAsB,GAAG,YAAY,CAAC,sBAAsB,CAAC;QACzE,KAAY,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;QACzD,KAAY,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;KAClE;IACD,UAAiB,MAAM,CAAC;QACtB,KAAY,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QACjD,KAAY,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QACjD,KAAY,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;QACjD,KAAY,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAC;QACrE,KAAY,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC7C,KAAY,2BAA2B,GACrC,YAAY,CAAC,2BAA2B,CAAC;QAC3C,KAAY,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QACvD,KAAY,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;QAC/D,KAAY,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QACnD,KAAY,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;QAC3D,KAAY,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QACnD,KAAY,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QACnD,KAAY,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QACnD,KAAY,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QACvD,KAAY,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QAC/C,KAAY,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;KAChD;CACF;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js index 3d9d67b98b..f2d43b6f2e 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js @@ -1,9 +1,31 @@ "use strict"; /* eslint-disable @typescript-eslint/no-namespace */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.Scope = void 0; +const scopeManager = __importStar(require("@typescript-eslint/scope-manager")); var Scope; (function (Scope) { + Scope.ScopeType = scopeManager.ScopeType; + Scope.DefinitionType = scopeManager.DefinitionType; })(Scope || (Scope = {})); exports.Scope = Scope; //# sourceMappingURL=Scope.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map index bf72f5e50f..537c76afd4 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/Scope.js.map @@ -1 +1 @@ -{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,IAAU,KAAK,CA8Cd;AA9CD,WAAU,KAAK;AA8Cf,CAAC,EA9CS,KAAK,KAAL,KAAK,QA8Cd;AAEQ,sBAAK"} \ No newline at end of file +{"version":3,"file":"Scope.js","sourceRoot":"","sources":["../../src/ts-eslint/Scope.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;;;;;;;;;;;;;;;;;AAEpD,+EAAiE;AAEjE,IAAU,KAAK,CA8Cd;AA9CD,WAAU,KAAK;IAOA,eAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAInC,oBAAc,GAAG,YAAY,CAAC,cAAc,CAAC;AAmC5D,CAAC,EA9CS,KAAK,KAAL,KAAK,QA8Cd;AAEQ,sBAAK"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts index 5d5b19365c..a85f31acf7 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts @@ -40,7 +40,7 @@ declare class TokenStore { * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. * @returns An object representing the token. */ - getFirstTokenBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getFirstTokenBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the first `count` tokens of the given node. * @param node The AST node. @@ -55,7 +55,7 @@ declare class TokenStore { * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens between left and right. */ - getFirstTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getFirstTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets the last token of the given node. * @param node The AST node. @@ -70,7 +70,7 @@ declare class TokenStore { * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. * @returns An object representing the token. */ - getLastTokenBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getLastTokenBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the last `count` tokens of the given node. * @param node The AST node. @@ -85,21 +85,21 @@ declare class TokenStore { * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens between left and right. */ - getLastTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getLastTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets the token that follows a given node or token. * @param node The AST node or token. * @param option The option object. If this is a number then it's `options.skip`. If this is a function then it's `options.filter`. * @returns An object representing the token. */ - getTokenAfter(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getTokenAfter(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the token that precedes a given node or token. * @param node The AST node or token. * @param options The option object * @returns An object representing the token. */ - getTokenBefore(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions | null; + getTokenBefore(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions | null; /** * Gets the token starting at the specified index. * @param offset Index of the start of the token's range. @@ -130,14 +130,14 @@ declare class TokenStore { * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens. */ - getTokensAfter(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getTokensAfter(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets the `count` tokens that precedes a given node or token. * @param node The AST node. * @param options The option object. If this is a number then it's `options.count`. If this is a function then it's `options.filter`. * @returns Tokens. */ - getTokensBefore(node: TSESTree.Node | TSESTree.Token | TSESTree.Comment, options?: T): SourceCode.ReturnTypeFromOptions[]; + getTokensBefore(node: TSESTree.Node | TSESTree.Token, options?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets all of the tokens between two non-overlapping nodes. * @param left Node before the desired token range. @@ -145,7 +145,7 @@ declare class TokenStore { * @param options The option object. If this is a function then it's `options.filter`. * @returns Tokens between left and right. */ - getTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: T): SourceCode.ReturnTypeFromOptions[]; + getTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, padding?: T): SourceCode.ReturnTypeFromOptions[]; /** * Gets all of the tokens between two non-overlapping nodes. * @param left Node before the desired token range. @@ -153,7 +153,7 @@ declare class TokenStore { * @param padding Number of extra tokens on either side of center. * @returns Tokens between left and right. */ - getTokensBetween(left: TSESTree.Node | TSESTree.Token | TSESTree.Comment, right: TSESTree.Node | TSESTree.Token | TSESTree.Comment, padding?: number): SourceCode.ReturnTypeFromOptions[]; + getTokensBetween(left: TSESTree.Node | TSESTree.Token, right: TSESTree.Node | TSESTree.Token, padding?: number): SourceCode.ReturnTypeFromOptions[]; } declare class SourceCodeBase extends TokenStore { /** @@ -230,7 +230,7 @@ declare class SourceCodeBase extends TokenStore { * @param second The second node or token to check between. * @returns True if there is a whitespace character between any of the tokens found between the two given nodes or tokens. */ - isSpaceBetween?(first: TSESTree.Token | TSESTree.Comment | TSESTree.Node, second: TSESTree.Token | TSESTree.Comment | TSESTree.Node): boolean; + isSpaceBetween?(first: TSESTree.Token | TSESTree.Node, second: TSESTree.Token | TSESTree.Node): boolean; /** * Determines if two nodes or tokens have at least one whitespace character * between them. Order does not matter. Returns false if the given nodes or @@ -267,8 +267,10 @@ declare class SourceCodeBase extends TokenStore { text: string; /** * All of the tokens and comments in the AST. + * + * TODO: rename to 'tokens' */ - tokensAndComments: (TSESTree.Comment | TSESTree.Token)[]; + tokensAndComments: TSESTree.Token[]; /** * The visitor keys to traverse AST. */ @@ -310,7 +312,7 @@ declare namespace SourceCode { interface VisitorKeys { [nodeType: string]: string[]; } - type FilterPredicate = (tokenOrComment: TSESTree.Token | TSESTree.Comment) => boolean; + type FilterPredicate = (token: TSESTree.Token) => boolean; type ReturnTypeFromOptions = T extends { includeComments: true; } ? TSESTree.Token : Exclude; diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map index 18f49a7f82..c27597cc27 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"SourceCode.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SourceCode.d.ts","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map index 60f58ea365..30f4021fc9 100644 --- a/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map +++ b/node_modules/@typescript-eslint/experimental-utils/dist/ts-eslint/SourceCode.js.map @@ -1 +1 @@ -{"version":3,"file":"SourceCode.js","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAwD;AAubxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAE9D,gCAAU"} \ No newline at end of file +{"version":3,"file":"SourceCode.js","sourceRoot":"","sources":["../../src/ts-eslint/SourceCode.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,mCAAwD;AAwbxD,MAAM,UAAW,SAAS,mBAA0C;CAAG;AAE9D,gCAAU"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/LICENSE b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/LICENSE new file mode 100644 index 0000000000..883ee1f612 --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Toru Nagashima + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/README.md b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/README.md new file mode 100644 index 0000000000..0b917591b0 --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/README.md @@ -0,0 +1,38 @@ +# eslint-utils + +[![npm version](https://img.shields.io/npm/v/eslint-utils.svg)](https://www.npmjs.com/package/eslint-utils) +[![Downloads/month](https://img.shields.io/npm/dm/eslint-utils.svg)](http://www.npmtrends.com/eslint-utils) +[![Build Status](https://github.com/mysticatea/eslint-utils/workflows/CI/badge.svg)](https://github.com/mysticatea/eslint-utils/actions) +[![Coverage Status](https://codecov.io/gh/mysticatea/eslint-utils/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/eslint-utils) +[![Dependency Status](https://david-dm.org/mysticatea/eslint-utils.svg)](https://david-dm.org/mysticatea/eslint-utils) + +## 🏁 Goal + +This package provides utility functions and classes for make ESLint custom rules. + +For examples: + +- [getStaticValue](https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstaticvalue) evaluates static value on AST. +- [ReferenceTracker](https://eslint-utils.mysticatea.dev/api/scope-utils.html#referencetracker-class) checks the members of modules/globals as handling assignments and destructuring. + +## 📖 Usage + +See [documentation](https://eslint-utils.mysticatea.dev/). + +## 📰 Changelog + +See [releases](https://github.com/mysticatea/eslint-utils/releases). + +## ❤️ Contributing + +Welcome contributing! + +Please use GitHub's Issues/PRs. + +### Development Tools + +- `npm test` runs tests and measures coverage. +- `npm run clean` removes the coverage result of `npm test` command. +- `npm run coverage` shows the coverage result of the last `npm test` command. +- `npm run lint` runs ESLint. +- `npm run watch` runs tests on each file change. diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.js b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.js new file mode 100644 index 0000000000..034a19b631 --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.js @@ -0,0 +1,1956 @@ +/*! @author Toru Nagashima */ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var evk = _interopDefault(require('eslint-visitor-keys')); + +/** + * Get the innermost scope which contains a given location. + * @param {Scope} initialScope The initial scope to search. + * @param {Node} node The location to search. + * @returns {Scope} The innermost scope. + */ +function getInnermostScope(initialScope, node) { + const location = node.range[0]; + + let scope = initialScope; + let found = false; + do { + found = false; + for (const childScope of scope.childScopes) { + const range = childScope.block.range; + + if (range[0] <= location && location < range[1]) { + scope = childScope; + found = true; + break + } + } + } while (found) + + return scope +} + +/** + * Find the variable of a given name. + * @param {Scope} initialScope The scope to start finding. + * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node. + * @returns {Variable|null} The found variable or null. + */ +function findVariable(initialScope, nameOrNode) { + let name = ""; + let scope = initialScope; + + if (typeof nameOrNode === "string") { + name = nameOrNode; + } else { + name = nameOrNode.name; + scope = getInnermostScope(scope, nameOrNode); + } + + while (scope != null) { + const variable = scope.set.get(name); + if (variable != null) { + return variable + } + scope = scope.upper; + } + + return null +} + +/** + * Negate the result of `this` calling. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the result of `this(token)` is `false`. + */ +function negate0(token) { + return !this(token) //eslint-disable-line no-invalid-this +} + +/** + * Creates the negate function of the given function. + * @param {function(Token):boolean} f - The function to negate. + * @returns {function(Token):boolean} Negated function. + */ +function negate(f) { + return negate0.bind(f) +} + +/** + * Checks if the given token is a PunctuatorToken with the given value + * @param {Token} token - The token to check. + * @param {string} value - The value to check. + * @returns {boolean} `true` if the token is a PunctuatorToken with the given value. + */ +function isPunctuatorTokenWithValue(token, value) { + return token.type === "Punctuator" && token.value === value +} + +/** + * Checks if the given token is an arrow token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an arrow token. + */ +function isArrowToken(token) { + return isPunctuatorTokenWithValue(token, "=>") +} + +/** + * Checks if the given token is a comma token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a comma token. + */ +function isCommaToken(token) { + return isPunctuatorTokenWithValue(token, ",") +} + +/** + * Checks if the given token is a semicolon token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a semicolon token. + */ +function isSemicolonToken(token) { + return isPunctuatorTokenWithValue(token, ";") +} + +/** + * Checks if the given token is a colon token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a colon token. + */ +function isColonToken(token) { + return isPunctuatorTokenWithValue(token, ":") +} + +/** + * Checks if the given token is an opening parenthesis token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an opening parenthesis token. + */ +function isOpeningParenToken(token) { + return isPunctuatorTokenWithValue(token, "(") +} + +/** + * Checks if the given token is a closing parenthesis token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a closing parenthesis token. + */ +function isClosingParenToken(token) { + return isPunctuatorTokenWithValue(token, ")") +} + +/** + * Checks if the given token is an opening square bracket token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an opening square bracket token. + */ +function isOpeningBracketToken(token) { + return isPunctuatorTokenWithValue(token, "[") +} + +/** + * Checks if the given token is a closing square bracket token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a closing square bracket token. + */ +function isClosingBracketToken(token) { + return isPunctuatorTokenWithValue(token, "]") +} + +/** + * Checks if the given token is an opening brace token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an opening brace token. + */ +function isOpeningBraceToken(token) { + return isPunctuatorTokenWithValue(token, "{") +} + +/** + * Checks if the given token is a closing brace token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a closing brace token. + */ +function isClosingBraceToken(token) { + return isPunctuatorTokenWithValue(token, "}") +} + +/** + * Checks if the given token is a comment token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a comment token. + */ +function isCommentToken(token) { + return ["Block", "Line", "Shebang"].includes(token.type) +} + +const isNotArrowToken = negate(isArrowToken); +const isNotCommaToken = negate(isCommaToken); +const isNotSemicolonToken = negate(isSemicolonToken); +const isNotColonToken = negate(isColonToken); +const isNotOpeningParenToken = negate(isOpeningParenToken); +const isNotClosingParenToken = negate(isClosingParenToken); +const isNotOpeningBracketToken = negate(isOpeningBracketToken); +const isNotClosingBracketToken = negate(isClosingBracketToken); +const isNotOpeningBraceToken = negate(isOpeningBraceToken); +const isNotClosingBraceToken = negate(isClosingBraceToken); +const isNotCommentToken = negate(isCommentToken); + +/** + * Get the `(` token of the given function node. + * @param {Node} node - The function node to get. + * @param {SourceCode} sourceCode - The source code object to get tokens. + * @returns {Token} `(` token. + */ +function getOpeningParenOfParams(node, sourceCode) { + return node.id + ? sourceCode.getTokenAfter(node.id, isOpeningParenToken) + : sourceCode.getFirstToken(node, isOpeningParenToken) +} + +/** + * Get the location of the given function node for reporting. + * @param {Node} node - The function node to get. + * @param {SourceCode} sourceCode - The source code object to get tokens. + * @returns {string} The location of the function node for reporting. + */ +function getFunctionHeadLocation(node, sourceCode) { + const parent = node.parent; + let start = null; + let end = null; + + if (node.type === "ArrowFunctionExpression") { + const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken); + + start = arrowToken.loc.start; + end = arrowToken.loc.end; + } else if ( + parent.type === "Property" || + parent.type === "MethodDefinition" || + parent.type === "PropertyDefinition" + ) { + start = parent.loc.start; + end = getOpeningParenOfParams(node, sourceCode).loc.start; + } else { + start = node.loc.start; + end = getOpeningParenOfParams(node, sourceCode).loc.start; + } + + return { + start: { ...start }, + end: { ...end }, + } +} + +/* globals globalThis, global, self, window */ + +const globalObject = + typeof globalThis !== "undefined" + ? globalThis + : typeof self !== "undefined" + ? self + : typeof window !== "undefined" + ? window + : typeof global !== "undefined" + ? global + : {}; + +const builtinNames = Object.freeze( + new Set([ + "Array", + "ArrayBuffer", + "BigInt", + "BigInt64Array", + "BigUint64Array", + "Boolean", + "DataView", + "Date", + "decodeURI", + "decodeURIComponent", + "encodeURI", + "encodeURIComponent", + "escape", + "Float32Array", + "Float64Array", + "Function", + "Infinity", + "Int16Array", + "Int32Array", + "Int8Array", + "isFinite", + "isNaN", + "isPrototypeOf", + "JSON", + "Map", + "Math", + "NaN", + "Number", + "Object", + "parseFloat", + "parseInt", + "Promise", + "Proxy", + "Reflect", + "RegExp", + "Set", + "String", + "Symbol", + "Uint16Array", + "Uint32Array", + "Uint8Array", + "Uint8ClampedArray", + "undefined", + "unescape", + "WeakMap", + "WeakSet", + ]), +); +const callAllowed = new Set( + [ + Array.isArray, + typeof BigInt === "function" ? BigInt : undefined, + Boolean, + Date, + Date.parse, + decodeURI, + decodeURIComponent, + encodeURI, + encodeURIComponent, + escape, + isFinite, + isNaN, + isPrototypeOf, + ...Object.getOwnPropertyNames(Math) + .map((k) => Math[k]) + .filter((f) => typeof f === "function"), + Number, + Number.isFinite, + Number.isNaN, + Number.parseFloat, + Number.parseInt, + Object, + Object.entries, + Object.is, + Object.isExtensible, + Object.isFrozen, + Object.isSealed, + Object.keys, + Object.values, + parseFloat, + parseInt, + RegExp, + String, + String.fromCharCode, + String.fromCodePoint, + String.raw, + Symbol.for, + Symbol.keyFor, + unescape, + ].filter((f) => typeof f === "function"), +); +const callPassThrough = new Set([ + Object.freeze, + Object.preventExtensions, + Object.seal, +]); + +/** + * Get the property descriptor. + * @param {object} object The object to get. + * @param {string|number|symbol} name The property name to get. + */ +function getPropertyDescriptor(object, name) { + let x = object; + while ((typeof x === "object" || typeof x === "function") && x !== null) { + const d = Object.getOwnPropertyDescriptor(x, name); + if (d) { + return d + } + x = Object.getPrototypeOf(x); + } + return null +} + +/** + * Check if a property is getter or not. + * @param {object} object The object to check. + * @param {string|number|symbol} name The property name to check. + */ +function isGetter(object, name) { + const d = getPropertyDescriptor(object, name); + return d != null && d.get != null +} + +/** + * Get the element values of a given node list. + * @param {Node[]} nodeList The node list to get values. + * @param {Scope|undefined} initialScope The initial scope to find variables. + * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null. + */ +function getElementValues(nodeList, initialScope) { + const valueList = []; + + for (let i = 0; i < nodeList.length; ++i) { + const elementNode = nodeList[i]; + + if (elementNode == null) { + valueList.length = i + 1; + } else if (elementNode.type === "SpreadElement") { + const argument = getStaticValueR(elementNode.argument, initialScope); + if (argument == null) { + return null + } + valueList.push(...argument.value); + } else { + const element = getStaticValueR(elementNode, initialScope); + if (element == null) { + return null + } + valueList.push(element.value); + } + } + + return valueList +} + +const operations = Object.freeze({ + ArrayExpression(node, initialScope) { + const elements = getElementValues(node.elements, initialScope); + return elements != null ? { value: elements } : null + }, + + AssignmentExpression(node, initialScope) { + if (node.operator === "=") { + return getStaticValueR(node.right, initialScope) + } + return null + }, + + //eslint-disable-next-line complexity + BinaryExpression(node, initialScope) { + if (node.operator === "in" || node.operator === "instanceof") { + // Not supported. + return null + } + + const left = getStaticValueR(node.left, initialScope); + const right = getStaticValueR(node.right, initialScope); + if (left != null && right != null) { + switch (node.operator) { + case "==": + return { value: left.value == right.value } //eslint-disable-line eqeqeq + case "!=": + return { value: left.value != right.value } //eslint-disable-line eqeqeq + case "===": + return { value: left.value === right.value } + case "!==": + return { value: left.value !== right.value } + case "<": + return { value: left.value < right.value } + case "<=": + return { value: left.value <= right.value } + case ">": + return { value: left.value > right.value } + case ">=": + return { value: left.value >= right.value } + case "<<": + return { value: left.value << right.value } + case ">>": + return { value: left.value >> right.value } + case ">>>": + return { value: left.value >>> right.value } + case "+": + return { value: left.value + right.value } + case "-": + return { value: left.value - right.value } + case "*": + return { value: left.value * right.value } + case "/": + return { value: left.value / right.value } + case "%": + return { value: left.value % right.value } + case "**": + return { value: Math.pow(left.value, right.value) } + case "|": + return { value: left.value | right.value } + case "^": + return { value: left.value ^ right.value } + case "&": + return { value: left.value & right.value } + + // no default + } + } + + return null + }, + + CallExpression(node, initialScope) { + const calleeNode = node.callee; + const args = getElementValues(node.arguments, initialScope); + + if (args != null) { + if (calleeNode.type === "MemberExpression") { + if (calleeNode.property.type === "PrivateIdentifier") { + return null + } + const object = getStaticValueR(calleeNode.object, initialScope); + if (object != null) { + if ( + object.value == null && + (object.optional || node.optional) + ) { + return { value: undefined, optional: true } + } + const property = getStaticPropertyNameValue( + calleeNode, + initialScope, + ); + + if (property != null) { + const receiver = object.value; + const methodName = property.value; + if (callAllowed.has(receiver[methodName])) { + return { value: receiver[methodName](...args) } + } + if (callPassThrough.has(receiver[methodName])) { + return { value: args[0] } + } + } + } + } else { + const callee = getStaticValueR(calleeNode, initialScope); + if (callee != null) { + if (callee.value == null && node.optional) { + return { value: undefined, optional: true } + } + const func = callee.value; + if (callAllowed.has(func)) { + return { value: func(...args) } + } + if (callPassThrough.has(func)) { + return { value: args[0] } + } + } + } + } + + return null + }, + + ConditionalExpression(node, initialScope) { + const test = getStaticValueR(node.test, initialScope); + if (test != null) { + return test.value + ? getStaticValueR(node.consequent, initialScope) + : getStaticValueR(node.alternate, initialScope) + } + return null + }, + + ExpressionStatement(node, initialScope) { + return getStaticValueR(node.expression, initialScope) + }, + + Identifier(node, initialScope) { + if (initialScope != null) { + const variable = findVariable(initialScope, node); + + // Built-in globals. + if ( + variable != null && + variable.defs.length === 0 && + builtinNames.has(variable.name) && + variable.name in globalObject + ) { + return { value: globalObject[variable.name] } + } + + // Constants. + if (variable != null && variable.defs.length === 1) { + const def = variable.defs[0]; + if ( + def.parent && + def.parent.kind === "const" && + // TODO(mysticatea): don't support destructuring here. + def.node.id.type === "Identifier" + ) { + return getStaticValueR(def.node.init, initialScope) + } + } + } + return null + }, + + Literal(node) { + //istanbul ignore if : this is implementation-specific behavior. + if ((node.regex != null || node.bigint != null) && node.value == null) { + // It was a RegExp/BigInt literal, but Node.js didn't support it. + return null + } + return { value: node.value } + }, + + LogicalExpression(node, initialScope) { + const left = getStaticValueR(node.left, initialScope); + if (left != null) { + if ( + (node.operator === "||" && Boolean(left.value) === true) || + (node.operator === "&&" && Boolean(left.value) === false) || + (node.operator === "??" && left.value != null) + ) { + return left + } + + const right = getStaticValueR(node.right, initialScope); + if (right != null) { + return right + } + } + + return null + }, + + MemberExpression(node, initialScope) { + if (node.property.type === "PrivateIdentifier") { + return null + } + const object = getStaticValueR(node.object, initialScope); + if (object != null) { + if (object.value == null && (object.optional || node.optional)) { + return { value: undefined, optional: true } + } + const property = getStaticPropertyNameValue(node, initialScope); + + if (property != null && !isGetter(object.value, property.value)) { + return { value: object.value[property.value] } + } + } + return null + }, + + ChainExpression(node, initialScope) { + const expression = getStaticValueR(node.expression, initialScope); + if (expression != null) { + return { value: expression.value } + } + return null + }, + + NewExpression(node, initialScope) { + const callee = getStaticValueR(node.callee, initialScope); + const args = getElementValues(node.arguments, initialScope); + + if (callee != null && args != null) { + const Func = callee.value; + if (callAllowed.has(Func)) { + return { value: new Func(...args) } + } + } + + return null + }, + + ObjectExpression(node, initialScope) { + const object = {}; + + for (const propertyNode of node.properties) { + if (propertyNode.type === "Property") { + if (propertyNode.kind !== "init") { + return null + } + const key = getStaticPropertyNameValue( + propertyNode, + initialScope, + ); + const value = getStaticValueR(propertyNode.value, initialScope); + if (key == null || value == null) { + return null + } + object[key.value] = value.value; + } else if ( + propertyNode.type === "SpreadElement" || + propertyNode.type === "ExperimentalSpreadProperty" + ) { + const argument = getStaticValueR( + propertyNode.argument, + initialScope, + ); + if (argument == null) { + return null + } + Object.assign(object, argument.value); + } else { + return null + } + } + + return { value: object } + }, + + SequenceExpression(node, initialScope) { + const last = node.expressions[node.expressions.length - 1]; + return getStaticValueR(last, initialScope) + }, + + TaggedTemplateExpression(node, initialScope) { + const tag = getStaticValueR(node.tag, initialScope); + const expressions = getElementValues( + node.quasi.expressions, + initialScope, + ); + + if (tag != null && expressions != null) { + const func = tag.value; + const strings = node.quasi.quasis.map((q) => q.value.cooked); + strings.raw = node.quasi.quasis.map((q) => q.value.raw); + + if (func === String.raw) { + return { value: func(strings, ...expressions) } + } + } + + return null + }, + + TemplateLiteral(node, initialScope) { + const expressions = getElementValues(node.expressions, initialScope); + if (expressions != null) { + let value = node.quasis[0].value.cooked; + for (let i = 0; i < expressions.length; ++i) { + value += expressions[i]; + value += node.quasis[i + 1].value.cooked; + } + return { value } + } + return null + }, + + UnaryExpression(node, initialScope) { + if (node.operator === "delete") { + // Not supported. + return null + } + if (node.operator === "void") { + return { value: undefined } + } + + const arg = getStaticValueR(node.argument, initialScope); + if (arg != null) { + switch (node.operator) { + case "-": + return { value: -arg.value } + case "+": + return { value: +arg.value } //eslint-disable-line no-implicit-coercion + case "!": + return { value: !arg.value } + case "~": + return { value: ~arg.value } + case "typeof": + return { value: typeof arg.value } + + // no default + } + } + + return null + }, +}); + +/** + * Get the value of a given node if it's a static value. + * @param {Node} node The node to get. + * @param {Scope|undefined} initialScope The scope to start finding variable. + * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`. + */ +function getStaticValueR(node, initialScope) { + if (node != null && Object.hasOwnProperty.call(operations, node.type)) { + return operations[node.type](node, initialScope) + } + return null +} + +/** + * Get the static value of property name from a MemberExpression node or a Property node. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it. + * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the property name of the node, or `null`. + */ +function getStaticPropertyNameValue(node, initialScope) { + const nameNode = node.type === "Property" ? node.key : node.property; + + if (node.computed) { + return getStaticValueR(nameNode, initialScope) + } + + if (nameNode.type === "Identifier") { + return { value: nameNode.name } + } + + if (nameNode.type === "Literal") { + if (nameNode.bigint) { + return { value: nameNode.bigint } + } + return { value: String(nameNode.value) } + } + + return null +} + +/** + * Get the value of a given node if it's a static value. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible. + * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`. + */ +function getStaticValue(node, initialScope = null) { + try { + return getStaticValueR(node, initialScope) + } catch (_error) { + return null + } +} + +/** + * Get the value of a given node if it's a literal or a template literal. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant. + * @returns {string|null} The value of the node, or `null`. + */ +function getStringIfConstant(node, initialScope = null) { + // Handle the literals that the platform doesn't support natively. + if (node && node.type === "Literal" && node.value === null) { + if (node.regex) { + return `/${node.regex.pattern}/${node.regex.flags}` + } + if (node.bigint) { + return node.bigint + } + } + + const evaluated = getStaticValue(node, initialScope); + return evaluated && String(evaluated.value) +} + +/** + * Get the property name from a MemberExpression node or a Property node. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it. + * @returns {string|null} The property name of the node. + */ +function getPropertyName(node, initialScope) { + switch (node.type) { + case "MemberExpression": + if (node.computed) { + return getStringIfConstant(node.property, initialScope) + } + if (node.property.type === "PrivateIdentifier") { + return null + } + return node.property.name + + case "Property": + case "MethodDefinition": + case "PropertyDefinition": + if (node.computed) { + return getStringIfConstant(node.key, initialScope) + } + if (node.key.type === "Literal") { + return String(node.key.value) + } + if (node.key.type === "PrivateIdentifier") { + return null + } + return node.key.name + + // no default + } + + return null +} + +/** + * Get the name and kind of the given function node. + * @param {ASTNode} node - The function node to get. + * @param {SourceCode} [sourceCode] The source code object to get the code of computed property keys. + * @returns {string} The name and kind of the function node. + */ +// eslint-disable-next-line complexity +function getFunctionNameWithKind(node, sourceCode) { + const parent = node.parent; + const tokens = []; + const isObjectMethod = parent.type === "Property" && parent.value === node; + const isClassMethod = + parent.type === "MethodDefinition" && parent.value === node; + const isClassFieldMethod = + parent.type === "PropertyDefinition" && parent.value === node; + + // Modifiers. + if (isClassMethod || isClassFieldMethod) { + if (parent.static) { + tokens.push("static"); + } + if (parent.key.type === "PrivateIdentifier") { + tokens.push("private"); + } + } + if (node.async) { + tokens.push("async"); + } + if (node.generator) { + tokens.push("generator"); + } + + // Kinds. + if (isObjectMethod || isClassMethod) { + if (parent.kind === "constructor") { + return "constructor" + } + if (parent.kind === "get") { + tokens.push("getter"); + } else if (parent.kind === "set") { + tokens.push("setter"); + } else { + tokens.push("method"); + } + } else if (isClassFieldMethod) { + tokens.push("method"); + } else { + if (node.type === "ArrowFunctionExpression") { + tokens.push("arrow"); + } + tokens.push("function"); + } + + // Names. + if (isObjectMethod || isClassMethod || isClassFieldMethod) { + if (parent.key.type === "PrivateIdentifier") { + tokens.push(`#${parent.key.name}`); + } else { + const name = getPropertyName(parent); + if (name) { + tokens.push(`'${name}'`); + } else if (sourceCode) { + const keyText = sourceCode.getText(parent.key); + if (!keyText.includes("\n")) { + tokens.push(`[${keyText}]`); + } + } + } + } else if (node.id) { + tokens.push(`'${node.id.name}'`); + } else if ( + parent.type === "VariableDeclarator" && + parent.id && + parent.id.type === "Identifier" + ) { + tokens.push(`'${parent.id.name}'`); + } else if ( + (parent.type === "AssignmentExpression" || + parent.type === "AssignmentPattern") && + parent.left && + parent.left.type === "Identifier" + ) { + tokens.push(`'${parent.left.name}'`); + } + + return tokens.join(" ") +} + +const typeConversionBinaryOps = Object.freeze( + new Set([ + "==", + "!=", + "<", + "<=", + ">", + ">=", + "<<", + ">>", + ">>>", + "+", + "-", + "*", + "/", + "%", + "|", + "^", + "&", + "in", + ]), +); +const typeConversionUnaryOps = Object.freeze(new Set(["-", "+", "!", "~"])); + +/** + * Check whether the given value is an ASTNode or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is an ASTNode. + */ +function isNode(x) { + return x !== null && typeof x === "object" && typeof x.type === "string" +} + +const visitor = Object.freeze( + Object.assign(Object.create(null), { + $visit(node, options, visitorKeys) { + const { type } = node; + + if (typeof this[type] === "function") { + return this[type](node, options, visitorKeys) + } + + return this.$visitChildren(node, options, visitorKeys) + }, + + $visitChildren(node, options, visitorKeys) { + const { type } = node; + + for (const key of visitorKeys[type] || evk.getKeys(node)) { + const value = node[key]; + + if (Array.isArray(value)) { + for (const element of value) { + if ( + isNode(element) && + this.$visit(element, options, visitorKeys) + ) { + return true + } + } + } else if ( + isNode(value) && + this.$visit(value, options, visitorKeys) + ) { + return true + } + } + + return false + }, + + ArrowFunctionExpression() { + return false + }, + AssignmentExpression() { + return true + }, + AwaitExpression() { + return true + }, + BinaryExpression(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + typeConversionBinaryOps.has(node.operator) && + (node.left.type !== "Literal" || node.right.type !== "Literal") + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + CallExpression() { + return true + }, + FunctionExpression() { + return false + }, + ImportExpression() { + return true + }, + MemberExpression(node, options, visitorKeys) { + if (options.considerGetters) { + return true + } + if ( + options.considerImplicitTypeConversion && + node.computed && + node.property.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + MethodDefinition(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + node.computed && + node.key.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + NewExpression() { + return true + }, + Property(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + node.computed && + node.key.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + PropertyDefinition(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + node.computed && + node.key.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + UnaryExpression(node, options, visitorKeys) { + if (node.operator === "delete") { + return true + } + if ( + options.considerImplicitTypeConversion && + typeConversionUnaryOps.has(node.operator) && + node.argument.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + UpdateExpression() { + return true + }, + YieldExpression() { + return true + }, + }), +); + +/** + * Check whether a given node has any side effect or not. + * @param {Node} node The node to get. + * @param {SourceCode} sourceCode The source code object. + * @param {object} [options] The option object. + * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects. + * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects. + * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`. + * @returns {boolean} `true` if the node has a certain side effect. + */ +function hasSideEffect( + node, + sourceCode, + { considerGetters = false, considerImplicitTypeConversion = false } = {}, +) { + return visitor.$visit( + node, + { considerGetters, considerImplicitTypeConversion }, + sourceCode.visitorKeys || evk.KEYS, + ) +} + +/** + * Get the left parenthesis of the parent node syntax if it exists. + * E.g., `if (a) {}` then the `(`. + * @param {Node} node The AST node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {Token|null} The left parenthesis of the parent node syntax + */ +function getParentSyntaxParen(node, sourceCode) { + const parent = node.parent; + + switch (parent.type) { + case "CallExpression": + case "NewExpression": + if (parent.arguments.length === 1 && parent.arguments[0] === node) { + return sourceCode.getTokenAfter( + parent.callee, + isOpeningParenToken, + ) + } + return null + + case "DoWhileStatement": + if (parent.test === node) { + return sourceCode.getTokenAfter( + parent.body, + isOpeningParenToken, + ) + } + return null + + case "IfStatement": + case "WhileStatement": + if (parent.test === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + case "ImportExpression": + if (parent.source === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + case "SwitchStatement": + if (parent.discriminant === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + case "WithStatement": + if (parent.object === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + default: + return null + } +} + +/** + * Check whether a given node is parenthesized or not. + * @param {number} times The number of parantheses. + * @param {Node} node The AST node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {boolean} `true` if the node is parenthesized the given times. + */ +/** + * Check whether a given node is parenthesized or not. + * @param {Node} node The AST node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {boolean} `true` if the node is parenthesized. + */ +function isParenthesized( + timesOrNode, + nodeOrSourceCode, + optionalSourceCode, +) { + let times, node, sourceCode, maybeLeftParen, maybeRightParen; + if (typeof timesOrNode === "number") { + times = timesOrNode | 0; + node = nodeOrSourceCode; + sourceCode = optionalSourceCode; + if (!(times >= 1)) { + throw new TypeError("'times' should be a positive integer.") + } + } else { + times = 1; + node = timesOrNode; + sourceCode = nodeOrSourceCode; + } + + if ( + node == null || + // `CatchClause.param` can't be parenthesized, example `try {} catch (error) {}` + (node.parent.type === "CatchClause" && node.parent.param === node) + ) { + return false + } + + maybeLeftParen = maybeRightParen = node; + do { + maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen); + maybeRightParen = sourceCode.getTokenAfter(maybeRightParen); + } while ( + maybeLeftParen != null && + maybeRightParen != null && + isOpeningParenToken(maybeLeftParen) && + isClosingParenToken(maybeRightParen) && + // Avoid false positive such as `if (a) {}` + maybeLeftParen !== getParentSyntaxParen(node, sourceCode) && + --times > 0 + ) + + return times === 0 +} + +/** + * @author Toru Nagashima + * See LICENSE file in root directory for full license. + */ + +const placeholder = /\$(?:[$&`']|[1-9][0-9]?)/gu; + +/** @type {WeakMap} */ +const internal = new WeakMap(); + +/** + * Check whether a given character is escaped or not. + * @param {string} str The string to check. + * @param {number} index The location of the character to check. + * @returns {boolean} `true` if the character is escaped. + */ +function isEscaped(str, index) { + let escaped = false; + for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) { + escaped = !escaped; + } + return escaped +} + +/** + * Replace a given string by a given matcher. + * @param {PatternMatcher} matcher The pattern matcher. + * @param {string} str The string to be replaced. + * @param {string} replacement The new substring to replace each matched part. + * @returns {string} The replaced string. + */ +function replaceS(matcher, str, replacement) { + const chunks = []; + let index = 0; + + /** @type {RegExpExecArray} */ + let match = null; + + /** + * @param {string} key The placeholder. + * @returns {string} The replaced string. + */ + function replacer(key) { + switch (key) { + case "$$": + return "$" + case "$&": + return match[0] + case "$`": + return str.slice(0, match.index) + case "$'": + return str.slice(match.index + match[0].length) + default: { + const i = key.slice(1); + if (i in match) { + return match[i] + } + return key + } + } + } + + for (match of matcher.execAll(str)) { + chunks.push(str.slice(index, match.index)); + chunks.push(replacement.replace(placeholder, replacer)); + index = match.index + match[0].length; + } + chunks.push(str.slice(index)); + + return chunks.join("") +} + +/** + * Replace a given string by a given matcher. + * @param {PatternMatcher} matcher The pattern matcher. + * @param {string} str The string to be replaced. + * @param {(...strs[])=>string} replace The function to replace each matched part. + * @returns {string} The replaced string. + */ +function replaceF(matcher, str, replace) { + const chunks = []; + let index = 0; + + for (const match of matcher.execAll(str)) { + chunks.push(str.slice(index, match.index)); + chunks.push(String(replace(...match, match.index, match.input))); + index = match.index + match[0].length; + } + chunks.push(str.slice(index)); + + return chunks.join("") +} + +/** + * The class to find patterns as considering escape sequences. + */ +class PatternMatcher { + /** + * Initialize this matcher. + * @param {RegExp} pattern The pattern to match. + * @param {{escaped:boolean}} options The options. + */ + constructor(pattern, { escaped = false } = {}) { + if (!(pattern instanceof RegExp)) { + throw new TypeError("'pattern' should be a RegExp instance.") + } + if (!pattern.flags.includes("g")) { + throw new Error("'pattern' should contains 'g' flag.") + } + + internal.set(this, { + pattern: new RegExp(pattern.source, pattern.flags), + escaped: Boolean(escaped), + }); + } + + /** + * Find the pattern in a given string. + * @param {string} str The string to find. + * @returns {IterableIterator} The iterator which iterate the matched information. + */ + *execAll(str) { + const { pattern, escaped } = internal.get(this); + let match = null; + let lastIndex = 0; + + pattern.lastIndex = 0; + while ((match = pattern.exec(str)) != null) { + if (escaped || !isEscaped(str, match.index)) { + lastIndex = pattern.lastIndex; + yield match; + pattern.lastIndex = lastIndex; + } + } + } + + /** + * Check whether the pattern is found in a given string. + * @param {string} str The string to check. + * @returns {boolean} `true` if the pattern was found in the string. + */ + test(str) { + const it = this.execAll(str); + const ret = it.next(); + return !ret.done + } + + /** + * Replace a given string. + * @param {string} str The string to be replaced. + * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`. + * @returns {string} The replaced string. + */ + [Symbol.replace](str, replacer) { + return typeof replacer === "function" + ? replaceF(this, String(str), replacer) + : replaceS(this, String(str), String(replacer)) + } +} + +const IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u; +const has = Function.call.bind(Object.hasOwnProperty); + +const READ = Symbol("read"); +const CALL = Symbol("call"); +const CONSTRUCT = Symbol("construct"); +const ESM = Symbol("esm"); + +const requireCall = { require: { [CALL]: true } }; + +/** + * Check whether a given variable is modified or not. + * @param {Variable} variable The variable to check. + * @returns {boolean} `true` if the variable is modified. + */ +function isModifiedGlobal(variable) { + return ( + variable == null || + variable.defs.length !== 0 || + variable.references.some((r) => r.isWrite()) + ) +} + +/** + * Check if the value of a given node is passed through to the parent syntax as-is. + * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through. + * @param {Node} node A node to check. + * @returns {boolean} `true` if the node is passed through. + */ +function isPassThrough(node) { + const parent = node.parent; + + switch (parent && parent.type) { + case "ConditionalExpression": + return parent.consequent === node || parent.alternate === node + case "LogicalExpression": + return true + case "SequenceExpression": + return parent.expressions[parent.expressions.length - 1] === node + case "ChainExpression": + return true + + default: + return false + } +} + +/** + * The reference tracker. + */ +class ReferenceTracker { + /** + * Initialize this tracker. + * @param {Scope} globalScope The global scope. + * @param {object} [options] The options. + * @param {"legacy"|"strict"} [options.mode="strict"] The mode to determine the ImportDeclaration's behavior for CJS modules. + * @param {string[]} [options.globalObjectNames=["global","globalThis","self","window"]] The variable names for Global Object. + */ + constructor( + globalScope, + { + mode = "strict", + globalObjectNames = ["global", "globalThis", "self", "window"], + } = {}, + ) { + this.variableStack = []; + this.globalScope = globalScope; + this.mode = mode; + this.globalObjectNames = globalObjectNames.slice(0); + } + + /** + * Iterate the references of global variables. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *iterateGlobalReferences(traceMap) { + for (const key of Object.keys(traceMap)) { + const nextTraceMap = traceMap[key]; + const path = [key]; + const variable = this.globalScope.set.get(key); + + if (isModifiedGlobal(variable)) { + continue + } + + yield* this._iterateVariableReferences( + variable, + path, + nextTraceMap, + true, + ); + } + + for (const key of this.globalObjectNames) { + const path = []; + const variable = this.globalScope.set.get(key); + + if (isModifiedGlobal(variable)) { + continue + } + + yield* this._iterateVariableReferences( + variable, + path, + traceMap, + false, + ); + } + } + + /** + * Iterate the references of CommonJS modules. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *iterateCjsReferences(traceMap) { + for (const { node } of this.iterateGlobalReferences(requireCall)) { + const key = getStringIfConstant(node.arguments[0]); + if (key == null || !has(traceMap, key)) { + continue + } + + const nextTraceMap = traceMap[key]; + const path = [key]; + + if (nextTraceMap[READ]) { + yield { + node, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iteratePropertyReferences(node, path, nextTraceMap); + } + } + + /** + * Iterate the references of ES modules. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *iterateEsmReferences(traceMap) { + const programNode = this.globalScope.block; + + for (const node of programNode.body) { + if (!IMPORT_TYPE.test(node.type) || node.source == null) { + continue + } + const moduleId = node.source.value; + + if (!has(traceMap, moduleId)) { + continue + } + const nextTraceMap = traceMap[moduleId]; + const path = [moduleId]; + + if (nextTraceMap[READ]) { + yield { node, path, type: READ, info: nextTraceMap[READ] }; + } + + if (node.type === "ExportAllDeclaration") { + for (const key of Object.keys(nextTraceMap)) { + const exportTraceMap = nextTraceMap[key]; + if (exportTraceMap[READ]) { + yield { + node, + path: path.concat(key), + type: READ, + info: exportTraceMap[READ], + }; + } + } + } else { + for (const specifier of node.specifiers) { + const esm = has(nextTraceMap, ESM); + const it = this._iterateImportReferences( + specifier, + path, + esm + ? nextTraceMap + : this.mode === "legacy" + ? { default: nextTraceMap, ...nextTraceMap } + : { default: nextTraceMap }, + ); + + if (esm) { + yield* it; + } else { + for (const report of it) { + report.path = report.path.filter(exceptDefault); + if ( + report.path.length >= 2 || + report.type !== READ + ) { + yield report; + } + } + } + } + } + } + } + + /** + * Iterate the references for a given variable. + * @param {Variable} variable The variable to iterate that references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @param {boolean} shouldReport = The flag to report those references. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *_iterateVariableReferences(variable, path, traceMap, shouldReport) { + if (this.variableStack.includes(variable)) { + return + } + this.variableStack.push(variable); + try { + for (const reference of variable.references) { + if (!reference.isRead()) { + continue + } + const node = reference.identifier; + + if (shouldReport && traceMap[READ]) { + yield { node, path, type: READ, info: traceMap[READ] }; + } + yield* this._iteratePropertyReferences(node, path, traceMap); + } + } finally { + this.variableStack.pop(); + } + } + + /** + * Iterate the references for a given AST node. + * @param rootNode The AST node to iterate references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + //eslint-disable-next-line complexity + *_iteratePropertyReferences(rootNode, path, traceMap) { + let node = rootNode; + while (isPassThrough(node)) { + node = node.parent; + } + + const parent = node.parent; + if (parent.type === "MemberExpression") { + if (parent.object === node) { + const key = getPropertyName(parent); + if (key == null || !has(traceMap, key)) { + return + } + + path = path.concat(key); //eslint-disable-line no-param-reassign + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: parent, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iteratePropertyReferences( + parent, + path, + nextTraceMap, + ); + } + return + } + if (parent.type === "CallExpression") { + if (parent.callee === node && traceMap[CALL]) { + yield { node: parent, path, type: CALL, info: traceMap[CALL] }; + } + return + } + if (parent.type === "NewExpression") { + if (parent.callee === node && traceMap[CONSTRUCT]) { + yield { + node: parent, + path, + type: CONSTRUCT, + info: traceMap[CONSTRUCT], + }; + } + return + } + if (parent.type === "AssignmentExpression") { + if (parent.right === node) { + yield* this._iterateLhsReferences(parent.left, path, traceMap); + yield* this._iteratePropertyReferences(parent, path, traceMap); + } + return + } + if (parent.type === "AssignmentPattern") { + if (parent.right === node) { + yield* this._iterateLhsReferences(parent.left, path, traceMap); + } + return + } + if (parent.type === "VariableDeclarator") { + if (parent.init === node) { + yield* this._iterateLhsReferences(parent.id, path, traceMap); + } + } + } + + /** + * Iterate the references for a given Pattern node. + * @param {Node} patternNode The Pattern node to iterate references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *_iterateLhsReferences(patternNode, path, traceMap) { + if (patternNode.type === "Identifier") { + const variable = findVariable(this.globalScope, patternNode); + if (variable != null) { + yield* this._iterateVariableReferences( + variable, + path, + traceMap, + false, + ); + } + return + } + if (patternNode.type === "ObjectPattern") { + for (const property of patternNode.properties) { + const key = getPropertyName(property); + + if (key == null || !has(traceMap, key)) { + continue + } + + const nextPath = path.concat(key); + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: property, + path: nextPath, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iterateLhsReferences( + property.value, + nextPath, + nextTraceMap, + ); + } + return + } + if (patternNode.type === "AssignmentPattern") { + yield* this._iterateLhsReferences(patternNode.left, path, traceMap); + } + } + + /** + * Iterate the references for a given ModuleSpecifier node. + * @param {Node} specifierNode The ModuleSpecifier node to iterate references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *_iterateImportReferences(specifierNode, path, traceMap) { + const type = specifierNode.type; + + if (type === "ImportSpecifier" || type === "ImportDefaultSpecifier") { + const key = + type === "ImportDefaultSpecifier" + ? "default" + : specifierNode.imported.name; + if (!has(traceMap, key)) { + return + } + + path = path.concat(key); //eslint-disable-line no-param-reassign + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: specifierNode, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iterateVariableReferences( + findVariable(this.globalScope, specifierNode.local), + path, + nextTraceMap, + false, + ); + + return + } + + if (type === "ImportNamespaceSpecifier") { + yield* this._iterateVariableReferences( + findVariable(this.globalScope, specifierNode.local), + path, + traceMap, + false, + ); + return + } + + if (type === "ExportSpecifier") { + const key = specifierNode.local.name; + if (!has(traceMap, key)) { + return + } + + path = path.concat(key); //eslint-disable-line no-param-reassign + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: specifierNode, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + } + } +} + +ReferenceTracker.READ = READ; +ReferenceTracker.CALL = CALL; +ReferenceTracker.CONSTRUCT = CONSTRUCT; +ReferenceTracker.ESM = ESM; + +/** + * This is a predicate function for Array#filter. + * @param {string} name A name part. + * @param {number} index The index of the name. + * @returns {boolean} `false` if it's default. + */ +function exceptDefault(name, index) { + return !(index === 1 && name === "default") +} + +var index = { + CALL, + CONSTRUCT, + ESM, + findVariable, + getFunctionHeadLocation, + getFunctionNameWithKind, + getInnermostScope, + getPropertyName, + getStaticValue, + getStringIfConstant, + hasSideEffect, + isArrowToken, + isClosingBraceToken, + isClosingBracketToken, + isClosingParenToken, + isColonToken, + isCommaToken, + isCommentToken, + isNotArrowToken, + isNotClosingBraceToken, + isNotClosingBracketToken, + isNotClosingParenToken, + isNotColonToken, + isNotCommaToken, + isNotCommentToken, + isNotOpeningBraceToken, + isNotOpeningBracketToken, + isNotOpeningParenToken, + isNotSemicolonToken, + isOpeningBraceToken, + isOpeningBracketToken, + isOpeningParenToken, + isParenthesized, + isSemicolonToken, + PatternMatcher, + READ, + ReferenceTracker, +}; + +exports.CALL = CALL; +exports.CONSTRUCT = CONSTRUCT; +exports.ESM = ESM; +exports.PatternMatcher = PatternMatcher; +exports.READ = READ; +exports.ReferenceTracker = ReferenceTracker; +exports.default = index; +exports.findVariable = findVariable; +exports.getFunctionHeadLocation = getFunctionHeadLocation; +exports.getFunctionNameWithKind = getFunctionNameWithKind; +exports.getInnermostScope = getInnermostScope; +exports.getPropertyName = getPropertyName; +exports.getStaticValue = getStaticValue; +exports.getStringIfConstant = getStringIfConstant; +exports.hasSideEffect = hasSideEffect; +exports.isArrowToken = isArrowToken; +exports.isClosingBraceToken = isClosingBraceToken; +exports.isClosingBracketToken = isClosingBracketToken; +exports.isClosingParenToken = isClosingParenToken; +exports.isColonToken = isColonToken; +exports.isCommaToken = isCommaToken; +exports.isCommentToken = isCommentToken; +exports.isNotArrowToken = isNotArrowToken; +exports.isNotClosingBraceToken = isNotClosingBraceToken; +exports.isNotClosingBracketToken = isNotClosingBracketToken; +exports.isNotClosingParenToken = isNotClosingParenToken; +exports.isNotColonToken = isNotColonToken; +exports.isNotCommaToken = isNotCommaToken; +exports.isNotCommentToken = isNotCommentToken; +exports.isNotOpeningBraceToken = isNotOpeningBraceToken; +exports.isNotOpeningBracketToken = isNotOpeningBracketToken; +exports.isNotOpeningParenToken = isNotOpeningParenToken; +exports.isNotSemicolonToken = isNotSemicolonToken; +exports.isOpeningBraceToken = isOpeningBraceToken; +exports.isOpeningBracketToken = isOpeningBracketToken; +exports.isOpeningParenToken = isOpeningParenToken; +exports.isParenthesized = isParenthesized; +exports.isSemicolonToken = isSemicolonToken; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.js.map b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.js.map new file mode 100644 index 0000000000..2a76624fba --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["src/get-innermost-scope.js","src/find-variable.js","src/token-predicate.js","src/get-function-head-location.js","src/get-static-value.js","src/get-string-if-constant.js","src/get-property-name.js","src/get-function-name-with-kind.js","src/has-side-effect.js","src/is-parenthesized.js","src/pattern-matcher.js","src/reference-tracker.js","src/index.js"],"sourcesContent":["/**\n * Get the innermost scope which contains a given location.\n * @param {Scope} initialScope The initial scope to search.\n * @param {Node} node The location to search.\n * @returns {Scope} The innermost scope.\n */\nexport function getInnermostScope(initialScope, node) {\n const location = node.range[0]\n\n let scope = initialScope\n let found = false\n do {\n found = false\n for (const childScope of scope.childScopes) {\n const range = childScope.block.range\n\n if (range[0] <= location && location < range[1]) {\n scope = childScope\n found = true\n break\n }\n }\n } while (found)\n\n return scope\n}\n","import { getInnermostScope } from \"./get-innermost-scope\"\n\n/**\n * Find the variable of a given name.\n * @param {Scope} initialScope The scope to start finding.\n * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.\n * @returns {Variable|null} The found variable or null.\n */\nexport function findVariable(initialScope, nameOrNode) {\n let name = \"\"\n let scope = initialScope\n\n if (typeof nameOrNode === \"string\") {\n name = nameOrNode\n } else {\n name = nameOrNode.name\n scope = getInnermostScope(scope, nameOrNode)\n }\n\n while (scope != null) {\n const variable = scope.set.get(name)\n if (variable != null) {\n return variable\n }\n scope = scope.upper\n }\n\n return null\n}\n","/**\n * Negate the result of `this` calling.\n * @param {Token} token The token to check.\n * @returns {boolean} `true` if the result of `this(token)` is `false`.\n */\nfunction negate0(token) {\n return !this(token) //eslint-disable-line no-invalid-this\n}\n\n/**\n * Creates the negate function of the given function.\n * @param {function(Token):boolean} f - The function to negate.\n * @returns {function(Token):boolean} Negated function.\n */\nfunction negate(f) {\n return negate0.bind(f)\n}\n\n/**\n * Checks if the given token is a PunctuatorToken with the given value\n * @param {Token} token - The token to check.\n * @param {string} value - The value to check.\n * @returns {boolean} `true` if the token is a PunctuatorToken with the given value.\n */\nfunction isPunctuatorTokenWithValue(token, value) {\n return token.type === \"Punctuator\" && token.value === value\n}\n\n/**\n * Checks if the given token is an arrow token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an arrow token.\n */\nexport function isArrowToken(token) {\n return isPunctuatorTokenWithValue(token, \"=>\")\n}\n\n/**\n * Checks if the given token is a comma token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comma token.\n */\nexport function isCommaToken(token) {\n return isPunctuatorTokenWithValue(token, \",\")\n}\n\n/**\n * Checks if the given token is a semicolon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a semicolon token.\n */\nexport function isSemicolonToken(token) {\n return isPunctuatorTokenWithValue(token, \";\")\n}\n\n/**\n * Checks if the given token is a colon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a colon token.\n */\nexport function isColonToken(token) {\n return isPunctuatorTokenWithValue(token, \":\")\n}\n\n/**\n * Checks if the given token is an opening parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening parenthesis token.\n */\nexport function isOpeningParenToken(token) {\n return isPunctuatorTokenWithValue(token, \"(\")\n}\n\n/**\n * Checks if the given token is a closing parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing parenthesis token.\n */\nexport function isClosingParenToken(token) {\n return isPunctuatorTokenWithValue(token, \")\")\n}\n\n/**\n * Checks if the given token is an opening square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening square bracket token.\n */\nexport function isOpeningBracketToken(token) {\n return isPunctuatorTokenWithValue(token, \"[\")\n}\n\n/**\n * Checks if the given token is a closing square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing square bracket token.\n */\nexport function isClosingBracketToken(token) {\n return isPunctuatorTokenWithValue(token, \"]\")\n}\n\n/**\n * Checks if the given token is an opening brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening brace token.\n */\nexport function isOpeningBraceToken(token) {\n return isPunctuatorTokenWithValue(token, \"{\")\n}\n\n/**\n * Checks if the given token is a closing brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing brace token.\n */\nexport function isClosingBraceToken(token) {\n return isPunctuatorTokenWithValue(token, \"}\")\n}\n\n/**\n * Checks if the given token is a comment token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nexport function isCommentToken(token) {\n return [\"Block\", \"Line\", \"Shebang\"].includes(token.type)\n}\n\nexport const isNotArrowToken = negate(isArrowToken)\nexport const isNotCommaToken = negate(isCommaToken)\nexport const isNotSemicolonToken = negate(isSemicolonToken)\nexport const isNotColonToken = negate(isColonToken)\nexport const isNotOpeningParenToken = negate(isOpeningParenToken)\nexport const isNotClosingParenToken = negate(isClosingParenToken)\nexport const isNotOpeningBracketToken = negate(isOpeningBracketToken)\nexport const isNotClosingBracketToken = negate(isClosingBracketToken)\nexport const isNotOpeningBraceToken = negate(isOpeningBraceToken)\nexport const isNotClosingBraceToken = negate(isClosingBraceToken)\nexport const isNotCommentToken = negate(isCommentToken)\n","import { isArrowToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the `(` token of the given function node.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {Token} `(` token.\n */\nfunction getOpeningParenOfParams(node, sourceCode) {\n return node.id\n ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)\n : sourceCode.getFirstToken(node, isOpeningParenToken)\n}\n\n/**\n * Get the location of the given function node for reporting.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {string} The location of the function node for reporting.\n */\nexport function getFunctionHeadLocation(node, sourceCode) {\n const parent = node.parent\n let start = null\n let end = null\n\n if (node.type === \"ArrowFunctionExpression\") {\n const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken)\n\n start = arrowToken.loc.start\n end = arrowToken.loc.end\n } else if (\n parent.type === \"Property\" ||\n parent.type === \"MethodDefinition\" ||\n parent.type === \"PropertyDefinition\"\n ) {\n start = parent.loc.start\n end = getOpeningParenOfParams(node, sourceCode).loc.start\n } else {\n start = node.loc.start\n end = getOpeningParenOfParams(node, sourceCode).loc.start\n }\n\n return {\n start: { ...start },\n end: { ...end },\n }\n}\n","/* globals globalThis, global, self, window */\n\nimport { findVariable } from \"./find-variable\"\n\nconst globalObject =\n typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {}\n\nconst builtinNames = Object.freeze(\n new Set([\n \"Array\",\n \"ArrayBuffer\",\n \"BigInt\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"Boolean\",\n \"DataView\",\n \"Date\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Infinity\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"isFinite\",\n \"isNaN\",\n \"isPrototypeOf\",\n \"JSON\",\n \"Map\",\n \"Math\",\n \"NaN\",\n \"Number\",\n \"Object\",\n \"parseFloat\",\n \"parseInt\",\n \"Promise\",\n \"Proxy\",\n \"Reflect\",\n \"RegExp\",\n \"Set\",\n \"String\",\n \"Symbol\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"undefined\",\n \"unescape\",\n \"WeakMap\",\n \"WeakSet\",\n ]),\n)\nconst callAllowed = new Set(\n [\n Array.isArray,\n typeof BigInt === \"function\" ? BigInt : undefined,\n Boolean,\n Date,\n Date.parse,\n decodeURI,\n decodeURIComponent,\n encodeURI,\n encodeURIComponent,\n escape,\n isFinite,\n isNaN,\n isPrototypeOf,\n ...Object.getOwnPropertyNames(Math)\n .map((k) => Math[k])\n .filter((f) => typeof f === \"function\"),\n Number,\n Number.isFinite,\n Number.isNaN,\n Number.parseFloat,\n Number.parseInt,\n Object,\n Object.entries,\n Object.is,\n Object.isExtensible,\n Object.isFrozen,\n Object.isSealed,\n Object.keys,\n Object.values,\n parseFloat,\n parseInt,\n RegExp,\n String,\n String.fromCharCode,\n String.fromCodePoint,\n String.raw,\n Symbol.for,\n Symbol.keyFor,\n unescape,\n ].filter((f) => typeof f === \"function\"),\n)\nconst callPassThrough = new Set([\n Object.freeze,\n Object.preventExtensions,\n Object.seal,\n])\n\n/**\n * Get the property descriptor.\n * @param {object} object The object to get.\n * @param {string|number|symbol} name The property name to get.\n */\nfunction getPropertyDescriptor(object, name) {\n let x = object\n while ((typeof x === \"object\" || typeof x === \"function\") && x !== null) {\n const d = Object.getOwnPropertyDescriptor(x, name)\n if (d) {\n return d\n }\n x = Object.getPrototypeOf(x)\n }\n return null\n}\n\n/**\n * Check if a property is getter or not.\n * @param {object} object The object to check.\n * @param {string|number|symbol} name The property name to check.\n */\nfunction isGetter(object, name) {\n const d = getPropertyDescriptor(object, name)\n return d != null && d.get != null\n}\n\n/**\n * Get the element values of a given node list.\n * @param {Node[]} nodeList The node list to get values.\n * @param {Scope|undefined} initialScope The initial scope to find variables.\n * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.\n */\nfunction getElementValues(nodeList, initialScope) {\n const valueList = []\n\n for (let i = 0; i < nodeList.length; ++i) {\n const elementNode = nodeList[i]\n\n if (elementNode == null) {\n valueList.length = i + 1\n } else if (elementNode.type === \"SpreadElement\") {\n const argument = getStaticValueR(elementNode.argument, initialScope)\n if (argument == null) {\n return null\n }\n valueList.push(...argument.value)\n } else {\n const element = getStaticValueR(elementNode, initialScope)\n if (element == null) {\n return null\n }\n valueList.push(element.value)\n }\n }\n\n return valueList\n}\n\nconst operations = Object.freeze({\n ArrayExpression(node, initialScope) {\n const elements = getElementValues(node.elements, initialScope)\n return elements != null ? { value: elements } : null\n },\n\n AssignmentExpression(node, initialScope) {\n if (node.operator === \"=\") {\n return getStaticValueR(node.right, initialScope)\n }\n return null\n },\n\n //eslint-disable-next-line complexity\n BinaryExpression(node, initialScope) {\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n // Not supported.\n return null\n }\n\n const left = getStaticValueR(node.left, initialScope)\n const right = getStaticValueR(node.right, initialScope)\n if (left != null && right != null) {\n switch (node.operator) {\n case \"==\":\n return { value: left.value == right.value } //eslint-disable-line eqeqeq\n case \"!=\":\n return { value: left.value != right.value } //eslint-disable-line eqeqeq\n case \"===\":\n return { value: left.value === right.value }\n case \"!==\":\n return { value: left.value !== right.value }\n case \"<\":\n return { value: left.value < right.value }\n case \"<=\":\n return { value: left.value <= right.value }\n case \">\":\n return { value: left.value > right.value }\n case \">=\":\n return { value: left.value >= right.value }\n case \"<<\":\n return { value: left.value << right.value }\n case \">>\":\n return { value: left.value >> right.value }\n case \">>>\":\n return { value: left.value >>> right.value }\n case \"+\":\n return { value: left.value + right.value }\n case \"-\":\n return { value: left.value - right.value }\n case \"*\":\n return { value: left.value * right.value }\n case \"/\":\n return { value: left.value / right.value }\n case \"%\":\n return { value: left.value % right.value }\n case \"**\":\n return { value: Math.pow(left.value, right.value) }\n case \"|\":\n return { value: left.value | right.value }\n case \"^\":\n return { value: left.value ^ right.value }\n case \"&\":\n return { value: left.value & right.value }\n\n // no default\n }\n }\n\n return null\n },\n\n CallExpression(node, initialScope) {\n const calleeNode = node.callee\n const args = getElementValues(node.arguments, initialScope)\n\n if (args != null) {\n if (calleeNode.type === \"MemberExpression\") {\n if (calleeNode.property.type === \"PrivateIdentifier\") {\n return null\n }\n const object = getStaticValueR(calleeNode.object, initialScope)\n if (object != null) {\n if (\n object.value == null &&\n (object.optional || node.optional)\n ) {\n return { value: undefined, optional: true }\n }\n const property = getStaticPropertyNameValue(\n calleeNode,\n initialScope,\n )\n\n if (property != null) {\n const receiver = object.value\n const methodName = property.value\n if (callAllowed.has(receiver[methodName])) {\n return { value: receiver[methodName](...args) }\n }\n if (callPassThrough.has(receiver[methodName])) {\n return { value: args[0] }\n }\n }\n }\n } else {\n const callee = getStaticValueR(calleeNode, initialScope)\n if (callee != null) {\n if (callee.value == null && node.optional) {\n return { value: undefined, optional: true }\n }\n const func = callee.value\n if (callAllowed.has(func)) {\n return { value: func(...args) }\n }\n if (callPassThrough.has(func)) {\n return { value: args[0] }\n }\n }\n }\n }\n\n return null\n },\n\n ConditionalExpression(node, initialScope) {\n const test = getStaticValueR(node.test, initialScope)\n if (test != null) {\n return test.value\n ? getStaticValueR(node.consequent, initialScope)\n : getStaticValueR(node.alternate, initialScope)\n }\n return null\n },\n\n ExpressionStatement(node, initialScope) {\n return getStaticValueR(node.expression, initialScope)\n },\n\n Identifier(node, initialScope) {\n if (initialScope != null) {\n const variable = findVariable(initialScope, node)\n\n // Built-in globals.\n if (\n variable != null &&\n variable.defs.length === 0 &&\n builtinNames.has(variable.name) &&\n variable.name in globalObject\n ) {\n return { value: globalObject[variable.name] }\n }\n\n // Constants.\n if (variable != null && variable.defs.length === 1) {\n const def = variable.defs[0]\n if (\n def.parent &&\n def.parent.kind === \"const\" &&\n // TODO(mysticatea): don't support destructuring here.\n def.node.id.type === \"Identifier\"\n ) {\n return getStaticValueR(def.node.init, initialScope)\n }\n }\n }\n return null\n },\n\n Literal(node) {\n //istanbul ignore if : this is implementation-specific behavior.\n if ((node.regex != null || node.bigint != null) && node.value == null) {\n // It was a RegExp/BigInt literal, but Node.js didn't support it.\n return null\n }\n return { value: node.value }\n },\n\n LogicalExpression(node, initialScope) {\n const left = getStaticValueR(node.left, initialScope)\n if (left != null) {\n if (\n (node.operator === \"||\" && Boolean(left.value) === true) ||\n (node.operator === \"&&\" && Boolean(left.value) === false) ||\n (node.operator === \"??\" && left.value != null)\n ) {\n return left\n }\n\n const right = getStaticValueR(node.right, initialScope)\n if (right != null) {\n return right\n }\n }\n\n return null\n },\n\n MemberExpression(node, initialScope) {\n if (node.property.type === \"PrivateIdentifier\") {\n return null\n }\n const object = getStaticValueR(node.object, initialScope)\n if (object != null) {\n if (object.value == null && (object.optional || node.optional)) {\n return { value: undefined, optional: true }\n }\n const property = getStaticPropertyNameValue(node, initialScope)\n\n if (property != null && !isGetter(object.value, property.value)) {\n return { value: object.value[property.value] }\n }\n }\n return null\n },\n\n ChainExpression(node, initialScope) {\n const expression = getStaticValueR(node.expression, initialScope)\n if (expression != null) {\n return { value: expression.value }\n }\n return null\n },\n\n NewExpression(node, initialScope) {\n const callee = getStaticValueR(node.callee, initialScope)\n const args = getElementValues(node.arguments, initialScope)\n\n if (callee != null && args != null) {\n const Func = callee.value\n if (callAllowed.has(Func)) {\n return { value: new Func(...args) }\n }\n }\n\n return null\n },\n\n ObjectExpression(node, initialScope) {\n const object = {}\n\n for (const propertyNode of node.properties) {\n if (propertyNode.type === \"Property\") {\n if (propertyNode.kind !== \"init\") {\n return null\n }\n const key = getStaticPropertyNameValue(\n propertyNode,\n initialScope,\n )\n const value = getStaticValueR(propertyNode.value, initialScope)\n if (key == null || value == null) {\n return null\n }\n object[key.value] = value.value\n } else if (\n propertyNode.type === \"SpreadElement\" ||\n propertyNode.type === \"ExperimentalSpreadProperty\"\n ) {\n const argument = getStaticValueR(\n propertyNode.argument,\n initialScope,\n )\n if (argument == null) {\n return null\n }\n Object.assign(object, argument.value)\n } else {\n return null\n }\n }\n\n return { value: object }\n },\n\n SequenceExpression(node, initialScope) {\n const last = node.expressions[node.expressions.length - 1]\n return getStaticValueR(last, initialScope)\n },\n\n TaggedTemplateExpression(node, initialScope) {\n const tag = getStaticValueR(node.tag, initialScope)\n const expressions = getElementValues(\n node.quasi.expressions,\n initialScope,\n )\n\n if (tag != null && expressions != null) {\n const func = tag.value\n const strings = node.quasi.quasis.map((q) => q.value.cooked)\n strings.raw = node.quasi.quasis.map((q) => q.value.raw)\n\n if (func === String.raw) {\n return { value: func(strings, ...expressions) }\n }\n }\n\n return null\n },\n\n TemplateLiteral(node, initialScope) {\n const expressions = getElementValues(node.expressions, initialScope)\n if (expressions != null) {\n let value = node.quasis[0].value.cooked\n for (let i = 0; i < expressions.length; ++i) {\n value += expressions[i]\n value += node.quasis[i + 1].value.cooked\n }\n return { value }\n }\n return null\n },\n\n UnaryExpression(node, initialScope) {\n if (node.operator === \"delete\") {\n // Not supported.\n return null\n }\n if (node.operator === \"void\") {\n return { value: undefined }\n }\n\n const arg = getStaticValueR(node.argument, initialScope)\n if (arg != null) {\n switch (node.operator) {\n case \"-\":\n return { value: -arg.value }\n case \"+\":\n return { value: +arg.value } //eslint-disable-line no-implicit-coercion\n case \"!\":\n return { value: !arg.value }\n case \"~\":\n return { value: ~arg.value }\n case \"typeof\":\n return { value: typeof arg.value }\n\n // no default\n }\n }\n\n return null\n },\n})\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope|undefined} initialScope The scope to start finding variable.\n * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`.\n */\nfunction getStaticValueR(node, initialScope) {\n if (node != null && Object.hasOwnProperty.call(operations, node.type)) {\n return operations[node.type](node, initialScope)\n }\n return null\n}\n\n/**\n * Get the static value of property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the property name of the node, or `null`.\n */\nfunction getStaticPropertyNameValue(node, initialScope) {\n const nameNode = node.type === \"Property\" ? node.key : node.property\n\n if (node.computed) {\n return getStaticValueR(nameNode, initialScope)\n }\n\n if (nameNode.type === \"Identifier\") {\n return { value: nameNode.name }\n }\n\n if (nameNode.type === \"Literal\") {\n if (nameNode.bigint) {\n return { value: nameNode.bigint }\n }\n return { value: String(nameNode.value) }\n }\n\n return null\n}\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.\n * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`.\n */\nexport function getStaticValue(node, initialScope = null) {\n try {\n return getStaticValueR(node, initialScope)\n } catch (_error) {\n return null\n }\n}\n","import { getStaticValue } from \"./get-static-value\"\n\n/**\n * Get the value of a given node if it's a literal or a template literal.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.\n * @returns {string|null} The value of the node, or `null`.\n */\nexport function getStringIfConstant(node, initialScope = null) {\n // Handle the literals that the platform doesn't support natively.\n if (node && node.type === \"Literal\" && node.value === null) {\n if (node.regex) {\n return `/${node.regex.pattern}/${node.regex.flags}`\n }\n if (node.bigint) {\n return node.bigint\n }\n }\n\n const evaluated = getStaticValue(node, initialScope)\n return evaluated && String(evaluated.value)\n}\n","import { getStringIfConstant } from \"./get-string-if-constant\"\n\n/**\n * Get the property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {string|null} The property name of the node.\n */\nexport function getPropertyName(node, initialScope) {\n switch (node.type) {\n case \"MemberExpression\":\n if (node.computed) {\n return getStringIfConstant(node.property, initialScope)\n }\n if (node.property.type === \"PrivateIdentifier\") {\n return null\n }\n return node.property.name\n\n case \"Property\":\n case \"MethodDefinition\":\n case \"PropertyDefinition\":\n if (node.computed) {\n return getStringIfConstant(node.key, initialScope)\n }\n if (node.key.type === \"Literal\") {\n return String(node.key.value)\n }\n if (node.key.type === \"PrivateIdentifier\") {\n return null\n }\n return node.key.name\n\n // no default\n }\n\n return null\n}\n","import { getPropertyName } from \"./get-property-name\"\n\n/**\n * Get the name and kind of the given function node.\n * @param {ASTNode} node - The function node to get.\n * @param {SourceCode} [sourceCode] The source code object to get the code of computed property keys.\n * @returns {string} The name and kind of the function node.\n */\n// eslint-disable-next-line complexity\nexport function getFunctionNameWithKind(node, sourceCode) {\n const parent = node.parent\n const tokens = []\n const isObjectMethod = parent.type === \"Property\" && parent.value === node\n const isClassMethod =\n parent.type === \"MethodDefinition\" && parent.value === node\n const isClassFieldMethod =\n parent.type === \"PropertyDefinition\" && parent.value === node\n\n // Modifiers.\n if (isClassMethod || isClassFieldMethod) {\n if (parent.static) {\n tokens.push(\"static\")\n }\n if (parent.key.type === \"PrivateIdentifier\") {\n tokens.push(\"private\")\n }\n }\n if (node.async) {\n tokens.push(\"async\")\n }\n if (node.generator) {\n tokens.push(\"generator\")\n }\n\n // Kinds.\n if (isObjectMethod || isClassMethod) {\n if (parent.kind === \"constructor\") {\n return \"constructor\"\n }\n if (parent.kind === \"get\") {\n tokens.push(\"getter\")\n } else if (parent.kind === \"set\") {\n tokens.push(\"setter\")\n } else {\n tokens.push(\"method\")\n }\n } else if (isClassFieldMethod) {\n tokens.push(\"method\")\n } else {\n if (node.type === \"ArrowFunctionExpression\") {\n tokens.push(\"arrow\")\n }\n tokens.push(\"function\")\n }\n\n // Names.\n if (isObjectMethod || isClassMethod || isClassFieldMethod) {\n if (parent.key.type === \"PrivateIdentifier\") {\n tokens.push(`#${parent.key.name}`)\n } else {\n const name = getPropertyName(parent)\n if (name) {\n tokens.push(`'${name}'`)\n } else if (sourceCode) {\n const keyText = sourceCode.getText(parent.key)\n if (!keyText.includes(\"\\n\")) {\n tokens.push(`[${keyText}]`)\n }\n }\n }\n } else if (node.id) {\n tokens.push(`'${node.id.name}'`)\n } else if (\n parent.type === \"VariableDeclarator\" &&\n parent.id &&\n parent.id.type === \"Identifier\"\n ) {\n tokens.push(`'${parent.id.name}'`)\n } else if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left &&\n parent.left.type === \"Identifier\"\n ) {\n tokens.push(`'${parent.left.name}'`)\n }\n\n return tokens.join(\" \")\n}\n","import evk from \"eslint-visitor-keys\"\n\nconst typeConversionBinaryOps = Object.freeze(\n new Set([\n \"==\",\n \"!=\",\n \"<\",\n \"<=\",\n \">\",\n \">=\",\n \"<<\",\n \">>\",\n \">>>\",\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"%\",\n \"|\",\n \"^\",\n \"&\",\n \"in\",\n ]),\n)\nconst typeConversionUnaryOps = Object.freeze(new Set([\"-\", \"+\", \"!\", \"~\"]))\n\n/**\n * Check whether the given value is an ASTNode or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an ASTNode.\n */\nfunction isNode(x) {\n return x !== null && typeof x === \"object\" && typeof x.type === \"string\"\n}\n\nconst visitor = Object.freeze(\n Object.assign(Object.create(null), {\n $visit(node, options, visitorKeys) {\n const { type } = node\n\n if (typeof this[type] === \"function\") {\n return this[type](node, options, visitorKeys)\n }\n\n return this.$visitChildren(node, options, visitorKeys)\n },\n\n $visitChildren(node, options, visitorKeys) {\n const { type } = node\n\n for (const key of visitorKeys[type] || evk.getKeys(node)) {\n const value = node[key]\n\n if (Array.isArray(value)) {\n for (const element of value) {\n if (\n isNode(element) &&\n this.$visit(element, options, visitorKeys)\n ) {\n return true\n }\n }\n } else if (\n isNode(value) &&\n this.$visit(value, options, visitorKeys)\n ) {\n return true\n }\n }\n\n return false\n },\n\n ArrowFunctionExpression() {\n return false\n },\n AssignmentExpression() {\n return true\n },\n AwaitExpression() {\n return true\n },\n BinaryExpression(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n typeConversionBinaryOps.has(node.operator) &&\n (node.left.type !== \"Literal\" || node.right.type !== \"Literal\")\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n CallExpression() {\n return true\n },\n FunctionExpression() {\n return false\n },\n ImportExpression() {\n return true\n },\n MemberExpression(node, options, visitorKeys) {\n if (options.considerGetters) {\n return true\n }\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.property.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n MethodDefinition(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.key.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n NewExpression() {\n return true\n },\n Property(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.key.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n PropertyDefinition(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.key.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n UnaryExpression(node, options, visitorKeys) {\n if (node.operator === \"delete\") {\n return true\n }\n if (\n options.considerImplicitTypeConversion &&\n typeConversionUnaryOps.has(node.operator) &&\n node.argument.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n UpdateExpression() {\n return true\n },\n YieldExpression() {\n return true\n },\n }),\n)\n\n/**\n * Check whether a given node has any side effect or not.\n * @param {Node} node The node to get.\n * @param {SourceCode} sourceCode The source code object.\n * @param {object} [options] The option object.\n * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.\n * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.\n * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.\n * @returns {boolean} `true` if the node has a certain side effect.\n */\nexport function hasSideEffect(\n node,\n sourceCode,\n { considerGetters = false, considerImplicitTypeConversion = false } = {},\n) {\n return visitor.$visit(\n node,\n { considerGetters, considerImplicitTypeConversion },\n sourceCode.visitorKeys || evk.KEYS,\n )\n}\n","import { isClosingParenToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the left parenthesis of the parent node syntax if it exists.\n * E.g., `if (a) {}` then the `(`.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {Token|null} The left parenthesis of the parent node syntax\n */\nfunction getParentSyntaxParen(node, sourceCode) {\n const parent = node.parent\n\n switch (parent.type) {\n case \"CallExpression\":\n case \"NewExpression\":\n if (parent.arguments.length === 1 && parent.arguments[0] === node) {\n return sourceCode.getTokenAfter(\n parent.callee,\n isOpeningParenToken,\n )\n }\n return null\n\n case \"DoWhileStatement\":\n if (parent.test === node) {\n return sourceCode.getTokenAfter(\n parent.body,\n isOpeningParenToken,\n )\n }\n return null\n\n case \"IfStatement\":\n case \"WhileStatement\":\n if (parent.test === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n case \"ImportExpression\":\n if (parent.source === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n case \"SwitchStatement\":\n if (parent.discriminant === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n case \"WithStatement\":\n if (parent.object === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n default:\n return null\n }\n}\n\n/**\n * Check whether a given node is parenthesized or not.\n * @param {number} times The number of parantheses.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized the given times.\n */\n/**\n * Check whether a given node is parenthesized or not.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized.\n */\nexport function isParenthesized(\n timesOrNode,\n nodeOrSourceCode,\n optionalSourceCode,\n) {\n let times, node, sourceCode, maybeLeftParen, maybeRightParen\n if (typeof timesOrNode === \"number\") {\n times = timesOrNode | 0\n node = nodeOrSourceCode\n sourceCode = optionalSourceCode\n if (!(times >= 1)) {\n throw new TypeError(\"'times' should be a positive integer.\")\n }\n } else {\n times = 1\n node = timesOrNode\n sourceCode = nodeOrSourceCode\n }\n\n if (\n node == null ||\n // `CatchClause.param` can't be parenthesized, example `try {} catch (error) {}`\n (node.parent.type === \"CatchClause\" && node.parent.param === node)\n ) {\n return false\n }\n\n maybeLeftParen = maybeRightParen = node\n do {\n maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen)\n maybeRightParen = sourceCode.getTokenAfter(maybeRightParen)\n } while (\n maybeLeftParen != null &&\n maybeRightParen != null &&\n isOpeningParenToken(maybeLeftParen) &&\n isClosingParenToken(maybeRightParen) &&\n // Avoid false positive such as `if (a) {}`\n maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&\n --times > 0\n )\n\n return times === 0\n}\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n\nconst placeholder = /\\$(?:[$&`']|[1-9][0-9]?)/gu\n\n/** @type {WeakMap} */\nconst internal = new WeakMap()\n\n/**\n * Check whether a given character is escaped or not.\n * @param {string} str The string to check.\n * @param {number} index The location of the character to check.\n * @returns {boolean} `true` if the character is escaped.\n */\nfunction isEscaped(str, index) {\n let escaped = false\n for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {\n escaped = !escaped\n }\n return escaped\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {string} replacement The new substring to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceS(matcher, str, replacement) {\n const chunks = []\n let index = 0\n\n /** @type {RegExpExecArray} */\n let match = null\n\n /**\n * @param {string} key The placeholder.\n * @returns {string} The replaced string.\n */\n function replacer(key) {\n switch (key) {\n case \"$$\":\n return \"$\"\n case \"$&\":\n return match[0]\n case \"$`\":\n return str.slice(0, match.index)\n case \"$'\":\n return str.slice(match.index + match[0].length)\n default: {\n const i = key.slice(1)\n if (i in match) {\n return match[i]\n }\n return key\n }\n }\n }\n\n for (match of matcher.execAll(str)) {\n chunks.push(str.slice(index, match.index))\n chunks.push(replacement.replace(placeholder, replacer))\n index = match.index + match[0].length\n }\n chunks.push(str.slice(index))\n\n return chunks.join(\"\")\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {(...strs[])=>string} replace The function to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceF(matcher, str, replace) {\n const chunks = []\n let index = 0\n\n for (const match of matcher.execAll(str)) {\n chunks.push(str.slice(index, match.index))\n chunks.push(String(replace(...match, match.index, match.input)))\n index = match.index + match[0].length\n }\n chunks.push(str.slice(index))\n\n return chunks.join(\"\")\n}\n\n/**\n * The class to find patterns as considering escape sequences.\n */\nexport class PatternMatcher {\n /**\n * Initialize this matcher.\n * @param {RegExp} pattern The pattern to match.\n * @param {{escaped:boolean}} options The options.\n */\n constructor(pattern, { escaped = false } = {}) {\n if (!(pattern instanceof RegExp)) {\n throw new TypeError(\"'pattern' should be a RegExp instance.\")\n }\n if (!pattern.flags.includes(\"g\")) {\n throw new Error(\"'pattern' should contains 'g' flag.\")\n }\n\n internal.set(this, {\n pattern: new RegExp(pattern.source, pattern.flags),\n escaped: Boolean(escaped),\n })\n }\n\n /**\n * Find the pattern in a given string.\n * @param {string} str The string to find.\n * @returns {IterableIterator} The iterator which iterate the matched information.\n */\n *execAll(str) {\n const { pattern, escaped } = internal.get(this)\n let match = null\n let lastIndex = 0\n\n pattern.lastIndex = 0\n while ((match = pattern.exec(str)) != null) {\n if (escaped || !isEscaped(str, match.index)) {\n lastIndex = pattern.lastIndex\n yield match\n pattern.lastIndex = lastIndex\n }\n }\n }\n\n /**\n * Check whether the pattern is found in a given string.\n * @param {string} str The string to check.\n * @returns {boolean} `true` if the pattern was found in the string.\n */\n test(str) {\n const it = this.execAll(str)\n const ret = it.next()\n return !ret.done\n }\n\n /**\n * Replace a given string.\n * @param {string} str The string to be replaced.\n * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.\n * @returns {string} The replaced string.\n */\n [Symbol.replace](str, replacer) {\n return typeof replacer === \"function\"\n ? replaceF(this, String(str), replacer)\n : replaceS(this, String(str), String(replacer))\n }\n}\n","import { findVariable } from \"./find-variable\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\n\nconst IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u\nconst has = Function.call.bind(Object.hasOwnProperty)\n\nexport const READ = Symbol(\"read\")\nexport const CALL = Symbol(\"call\")\nexport const CONSTRUCT = Symbol(\"construct\")\nexport const ESM = Symbol(\"esm\")\n\nconst requireCall = { require: { [CALL]: true } }\n\n/**\n * Check whether a given variable is modified or not.\n * @param {Variable} variable The variable to check.\n * @returns {boolean} `true` if the variable is modified.\n */\nfunction isModifiedGlobal(variable) {\n return (\n variable == null ||\n variable.defs.length !== 0 ||\n variable.references.some((r) => r.isWrite())\n )\n}\n\n/**\n * Check if the value of a given node is passed through to the parent syntax as-is.\n * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.\n * @param {Node} node A node to check.\n * @returns {boolean} `true` if the node is passed through.\n */\nfunction isPassThrough(node) {\n const parent = node.parent\n\n switch (parent && parent.type) {\n case \"ConditionalExpression\":\n return parent.consequent === node || parent.alternate === node\n case \"LogicalExpression\":\n return true\n case \"SequenceExpression\":\n return parent.expressions[parent.expressions.length - 1] === node\n case \"ChainExpression\":\n return true\n\n default:\n return false\n }\n}\n\n/**\n * The reference tracker.\n */\nexport class ReferenceTracker {\n /**\n * Initialize this tracker.\n * @param {Scope} globalScope The global scope.\n * @param {object} [options] The options.\n * @param {\"legacy\"|\"strict\"} [options.mode=\"strict\"] The mode to determine the ImportDeclaration's behavior for CJS modules.\n * @param {string[]} [options.globalObjectNames=[\"global\",\"globalThis\",\"self\",\"window\"]] The variable names for Global Object.\n */\n constructor(\n globalScope,\n {\n mode = \"strict\",\n globalObjectNames = [\"global\", \"globalThis\", \"self\", \"window\"],\n } = {},\n ) {\n this.variableStack = []\n this.globalScope = globalScope\n this.mode = mode\n this.globalObjectNames = globalObjectNames.slice(0)\n }\n\n /**\n * Iterate the references of global variables.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *iterateGlobalReferences(traceMap) {\n for (const key of Object.keys(traceMap)) {\n const nextTraceMap = traceMap[key]\n const path = [key]\n const variable = this.globalScope.set.get(key)\n\n if (isModifiedGlobal(variable)) {\n continue\n }\n\n yield* this._iterateVariableReferences(\n variable,\n path,\n nextTraceMap,\n true,\n )\n }\n\n for (const key of this.globalObjectNames) {\n const path = []\n const variable = this.globalScope.set.get(key)\n\n if (isModifiedGlobal(variable)) {\n continue\n }\n\n yield* this._iterateVariableReferences(\n variable,\n path,\n traceMap,\n false,\n )\n }\n }\n\n /**\n * Iterate the references of CommonJS modules.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *iterateCjsReferences(traceMap) {\n for (const { node } of this.iterateGlobalReferences(requireCall)) {\n const key = getStringIfConstant(node.arguments[0])\n if (key == null || !has(traceMap, key)) {\n continue\n }\n\n const nextTraceMap = traceMap[key]\n const path = [key]\n\n if (nextTraceMap[READ]) {\n yield {\n node,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iteratePropertyReferences(node, path, nextTraceMap)\n }\n }\n\n /**\n * Iterate the references of ES modules.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *iterateEsmReferences(traceMap) {\n const programNode = this.globalScope.block\n\n for (const node of programNode.body) {\n if (!IMPORT_TYPE.test(node.type) || node.source == null) {\n continue\n }\n const moduleId = node.source.value\n\n if (!has(traceMap, moduleId)) {\n continue\n }\n const nextTraceMap = traceMap[moduleId]\n const path = [moduleId]\n\n if (nextTraceMap[READ]) {\n yield { node, path, type: READ, info: nextTraceMap[READ] }\n }\n\n if (node.type === \"ExportAllDeclaration\") {\n for (const key of Object.keys(nextTraceMap)) {\n const exportTraceMap = nextTraceMap[key]\n if (exportTraceMap[READ]) {\n yield {\n node,\n path: path.concat(key),\n type: READ,\n info: exportTraceMap[READ],\n }\n }\n }\n } else {\n for (const specifier of node.specifiers) {\n const esm = has(nextTraceMap, ESM)\n const it = this._iterateImportReferences(\n specifier,\n path,\n esm\n ? nextTraceMap\n : this.mode === \"legacy\"\n ? { default: nextTraceMap, ...nextTraceMap }\n : { default: nextTraceMap },\n )\n\n if (esm) {\n yield* it\n } else {\n for (const report of it) {\n report.path = report.path.filter(exceptDefault)\n if (\n report.path.length >= 2 ||\n report.type !== READ\n ) {\n yield report\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Iterate the references for a given variable.\n * @param {Variable} variable The variable to iterate that references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @param {boolean} shouldReport = The flag to report those references.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *_iterateVariableReferences(variable, path, traceMap, shouldReport) {\n if (this.variableStack.includes(variable)) {\n return\n }\n this.variableStack.push(variable)\n try {\n for (const reference of variable.references) {\n if (!reference.isRead()) {\n continue\n }\n const node = reference.identifier\n\n if (shouldReport && traceMap[READ]) {\n yield { node, path, type: READ, info: traceMap[READ] }\n }\n yield* this._iteratePropertyReferences(node, path, traceMap)\n }\n } finally {\n this.variableStack.pop()\n }\n }\n\n /**\n * Iterate the references for a given AST node.\n * @param rootNode The AST node to iterate references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n //eslint-disable-next-line complexity\n *_iteratePropertyReferences(rootNode, path, traceMap) {\n let node = rootNode\n while (isPassThrough(node)) {\n node = node.parent\n }\n\n const parent = node.parent\n if (parent.type === \"MemberExpression\") {\n if (parent.object === node) {\n const key = getPropertyName(parent)\n if (key == null || !has(traceMap, key)) {\n return\n }\n\n path = path.concat(key) //eslint-disable-line no-param-reassign\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: parent,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iteratePropertyReferences(\n parent,\n path,\n nextTraceMap,\n )\n }\n return\n }\n if (parent.type === \"CallExpression\") {\n if (parent.callee === node && traceMap[CALL]) {\n yield { node: parent, path, type: CALL, info: traceMap[CALL] }\n }\n return\n }\n if (parent.type === \"NewExpression\") {\n if (parent.callee === node && traceMap[CONSTRUCT]) {\n yield {\n node: parent,\n path,\n type: CONSTRUCT,\n info: traceMap[CONSTRUCT],\n }\n }\n return\n }\n if (parent.type === \"AssignmentExpression\") {\n if (parent.right === node) {\n yield* this._iterateLhsReferences(parent.left, path, traceMap)\n yield* this._iteratePropertyReferences(parent, path, traceMap)\n }\n return\n }\n if (parent.type === \"AssignmentPattern\") {\n if (parent.right === node) {\n yield* this._iterateLhsReferences(parent.left, path, traceMap)\n }\n return\n }\n if (parent.type === \"VariableDeclarator\") {\n if (parent.init === node) {\n yield* this._iterateLhsReferences(parent.id, path, traceMap)\n }\n }\n }\n\n /**\n * Iterate the references for a given Pattern node.\n * @param {Node} patternNode The Pattern node to iterate references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *_iterateLhsReferences(patternNode, path, traceMap) {\n if (patternNode.type === \"Identifier\") {\n const variable = findVariable(this.globalScope, patternNode)\n if (variable != null) {\n yield* this._iterateVariableReferences(\n variable,\n path,\n traceMap,\n false,\n )\n }\n return\n }\n if (patternNode.type === \"ObjectPattern\") {\n for (const property of patternNode.properties) {\n const key = getPropertyName(property)\n\n if (key == null || !has(traceMap, key)) {\n continue\n }\n\n const nextPath = path.concat(key)\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: property,\n path: nextPath,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iterateLhsReferences(\n property.value,\n nextPath,\n nextTraceMap,\n )\n }\n return\n }\n if (patternNode.type === \"AssignmentPattern\") {\n yield* this._iterateLhsReferences(patternNode.left, path, traceMap)\n }\n }\n\n /**\n * Iterate the references for a given ModuleSpecifier node.\n * @param {Node} specifierNode The ModuleSpecifier node to iterate references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *_iterateImportReferences(specifierNode, path, traceMap) {\n const type = specifierNode.type\n\n if (type === \"ImportSpecifier\" || type === \"ImportDefaultSpecifier\") {\n const key =\n type === \"ImportDefaultSpecifier\"\n ? \"default\"\n : specifierNode.imported.name\n if (!has(traceMap, key)) {\n return\n }\n\n path = path.concat(key) //eslint-disable-line no-param-reassign\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: specifierNode,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iterateVariableReferences(\n findVariable(this.globalScope, specifierNode.local),\n path,\n nextTraceMap,\n false,\n )\n\n return\n }\n\n if (type === \"ImportNamespaceSpecifier\") {\n yield* this._iterateVariableReferences(\n findVariable(this.globalScope, specifierNode.local),\n path,\n traceMap,\n false,\n )\n return\n }\n\n if (type === \"ExportSpecifier\") {\n const key = specifierNode.local.name\n if (!has(traceMap, key)) {\n return\n }\n\n path = path.concat(key) //eslint-disable-line no-param-reassign\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: specifierNode,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n }\n }\n}\n\nReferenceTracker.READ = READ\nReferenceTracker.CALL = CALL\nReferenceTracker.CONSTRUCT = CONSTRUCT\nReferenceTracker.ESM = ESM\n\n/**\n * This is a predicate function for Array#filter.\n * @param {string} name A name part.\n * @param {number} index The index of the name.\n * @returns {boolean} `false` if it's default.\n */\nfunction exceptDefault(name, index) {\n return !(index === 1 && name === \"default\")\n}\n","import { findVariable } from \"./find-variable\"\nimport { getFunctionHeadLocation } from \"./get-function-head-location\"\nimport { getFunctionNameWithKind } from \"./get-function-name-with-kind\"\nimport { getInnermostScope } from \"./get-innermost-scope\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStaticValue } from \"./get-static-value\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\nimport { hasSideEffect } from \"./has-side-effect\"\nimport { isParenthesized } from \"./is-parenthesized\"\nimport { PatternMatcher } from \"./pattern-matcher\"\nimport {\n CALL,\n CONSTRUCT,\n ESM,\n READ,\n ReferenceTracker,\n} from \"./reference-tracker\"\nimport {\n isArrowToken,\n isClosingBraceToken,\n isClosingBracketToken,\n isClosingParenToken,\n isColonToken,\n isCommaToken,\n isCommentToken,\n isNotArrowToken,\n isNotClosingBraceToken,\n isNotClosingBracketToken,\n isNotClosingParenToken,\n isNotColonToken,\n isNotCommaToken,\n isNotCommentToken,\n isNotOpeningBraceToken,\n isNotOpeningBracketToken,\n isNotOpeningParenToken,\n isNotSemicolonToken,\n isOpeningBraceToken,\n isOpeningBracketToken,\n isOpeningParenToken,\n isSemicolonToken,\n} from \"./token-predicate\"\n\nexport default {\n CALL,\n CONSTRUCT,\n ESM,\n findVariable,\n getFunctionHeadLocation,\n getFunctionNameWithKind,\n getInnermostScope,\n getPropertyName,\n getStaticValue,\n getStringIfConstant,\n hasSideEffect,\n isArrowToken,\n isClosingBraceToken,\n isClosingBracketToken,\n isClosingParenToken,\n isColonToken,\n isCommaToken,\n isCommentToken,\n isNotArrowToken,\n isNotClosingBraceToken,\n isNotClosingBracketToken,\n isNotClosingParenToken,\n isNotColonToken,\n isNotCommaToken,\n isNotCommentToken,\n isNotOpeningBraceToken,\n isNotOpeningBracketToken,\n isNotOpeningParenToken,\n isNotSemicolonToken,\n isOpeningBraceToken,\n isOpeningBracketToken,\n isOpeningParenToken,\n isParenthesized,\n isSemicolonToken,\n PatternMatcher,\n READ,\n ReferenceTracker,\n}\nexport {\n CALL,\n CONSTRUCT,\n ESM,\n findVariable,\n getFunctionHeadLocation,\n getFunctionNameWithKind,\n getInnermostScope,\n getPropertyName,\n getStaticValue,\n getStringIfConstant,\n hasSideEffect,\n isArrowToken,\n isClosingBraceToken,\n isClosingBracketToken,\n isClosingParenToken,\n isColonToken,\n isCommaToken,\n isCommentToken,\n isNotArrowToken,\n isNotClosingBraceToken,\n isNotClosingBracketToken,\n isNotClosingParenToken,\n isNotColonToken,\n isNotCommaToken,\n isNotCommentToken,\n isNotOpeningBraceToken,\n isNotOpeningBracketToken,\n isNotOpeningParenToken,\n isNotSemicolonToken,\n isOpeningBraceToken,\n isOpeningBracketToken,\n isOpeningParenToken,\n isParenthesized,\n isSemicolonToken,\n PatternMatcher,\n READ,\n ReferenceTracker,\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.mjs b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.mjs new file mode 100644 index 0000000000..50edb341d0 --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.mjs @@ -0,0 +1,1914 @@ +/*! @author Toru Nagashima */ +import evk from 'eslint-visitor-keys'; + +/** + * Get the innermost scope which contains a given location. + * @param {Scope} initialScope The initial scope to search. + * @param {Node} node The location to search. + * @returns {Scope} The innermost scope. + */ +function getInnermostScope(initialScope, node) { + const location = node.range[0]; + + let scope = initialScope; + let found = false; + do { + found = false; + for (const childScope of scope.childScopes) { + const range = childScope.block.range; + + if (range[0] <= location && location < range[1]) { + scope = childScope; + found = true; + break + } + } + } while (found) + + return scope +} + +/** + * Find the variable of a given name. + * @param {Scope} initialScope The scope to start finding. + * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node. + * @returns {Variable|null} The found variable or null. + */ +function findVariable(initialScope, nameOrNode) { + let name = ""; + let scope = initialScope; + + if (typeof nameOrNode === "string") { + name = nameOrNode; + } else { + name = nameOrNode.name; + scope = getInnermostScope(scope, nameOrNode); + } + + while (scope != null) { + const variable = scope.set.get(name); + if (variable != null) { + return variable + } + scope = scope.upper; + } + + return null +} + +/** + * Negate the result of `this` calling. + * @param {Token} token The token to check. + * @returns {boolean} `true` if the result of `this(token)` is `false`. + */ +function negate0(token) { + return !this(token) //eslint-disable-line no-invalid-this +} + +/** + * Creates the negate function of the given function. + * @param {function(Token):boolean} f - The function to negate. + * @returns {function(Token):boolean} Negated function. + */ +function negate(f) { + return negate0.bind(f) +} + +/** + * Checks if the given token is a PunctuatorToken with the given value + * @param {Token} token - The token to check. + * @param {string} value - The value to check. + * @returns {boolean} `true` if the token is a PunctuatorToken with the given value. + */ +function isPunctuatorTokenWithValue(token, value) { + return token.type === "Punctuator" && token.value === value +} + +/** + * Checks if the given token is an arrow token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an arrow token. + */ +function isArrowToken(token) { + return isPunctuatorTokenWithValue(token, "=>") +} + +/** + * Checks if the given token is a comma token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a comma token. + */ +function isCommaToken(token) { + return isPunctuatorTokenWithValue(token, ",") +} + +/** + * Checks if the given token is a semicolon token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a semicolon token. + */ +function isSemicolonToken(token) { + return isPunctuatorTokenWithValue(token, ";") +} + +/** + * Checks if the given token is a colon token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a colon token. + */ +function isColonToken(token) { + return isPunctuatorTokenWithValue(token, ":") +} + +/** + * Checks if the given token is an opening parenthesis token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an opening parenthesis token. + */ +function isOpeningParenToken(token) { + return isPunctuatorTokenWithValue(token, "(") +} + +/** + * Checks if the given token is a closing parenthesis token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a closing parenthesis token. + */ +function isClosingParenToken(token) { + return isPunctuatorTokenWithValue(token, ")") +} + +/** + * Checks if the given token is an opening square bracket token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an opening square bracket token. + */ +function isOpeningBracketToken(token) { + return isPunctuatorTokenWithValue(token, "[") +} + +/** + * Checks if the given token is a closing square bracket token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a closing square bracket token. + */ +function isClosingBracketToken(token) { + return isPunctuatorTokenWithValue(token, "]") +} + +/** + * Checks if the given token is an opening brace token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is an opening brace token. + */ +function isOpeningBraceToken(token) { + return isPunctuatorTokenWithValue(token, "{") +} + +/** + * Checks if the given token is a closing brace token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a closing brace token. + */ +function isClosingBraceToken(token) { + return isPunctuatorTokenWithValue(token, "}") +} + +/** + * Checks if the given token is a comment token or not. + * @param {Token} token - The token to check. + * @returns {boolean} `true` if the token is a comment token. + */ +function isCommentToken(token) { + return ["Block", "Line", "Shebang"].includes(token.type) +} + +const isNotArrowToken = negate(isArrowToken); +const isNotCommaToken = negate(isCommaToken); +const isNotSemicolonToken = negate(isSemicolonToken); +const isNotColonToken = negate(isColonToken); +const isNotOpeningParenToken = negate(isOpeningParenToken); +const isNotClosingParenToken = negate(isClosingParenToken); +const isNotOpeningBracketToken = negate(isOpeningBracketToken); +const isNotClosingBracketToken = negate(isClosingBracketToken); +const isNotOpeningBraceToken = negate(isOpeningBraceToken); +const isNotClosingBraceToken = negate(isClosingBraceToken); +const isNotCommentToken = negate(isCommentToken); + +/** + * Get the `(` token of the given function node. + * @param {Node} node - The function node to get. + * @param {SourceCode} sourceCode - The source code object to get tokens. + * @returns {Token} `(` token. + */ +function getOpeningParenOfParams(node, sourceCode) { + return node.id + ? sourceCode.getTokenAfter(node.id, isOpeningParenToken) + : sourceCode.getFirstToken(node, isOpeningParenToken) +} + +/** + * Get the location of the given function node for reporting. + * @param {Node} node - The function node to get. + * @param {SourceCode} sourceCode - The source code object to get tokens. + * @returns {string} The location of the function node for reporting. + */ +function getFunctionHeadLocation(node, sourceCode) { + const parent = node.parent; + let start = null; + let end = null; + + if (node.type === "ArrowFunctionExpression") { + const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken); + + start = arrowToken.loc.start; + end = arrowToken.loc.end; + } else if ( + parent.type === "Property" || + parent.type === "MethodDefinition" || + parent.type === "PropertyDefinition" + ) { + start = parent.loc.start; + end = getOpeningParenOfParams(node, sourceCode).loc.start; + } else { + start = node.loc.start; + end = getOpeningParenOfParams(node, sourceCode).loc.start; + } + + return { + start: { ...start }, + end: { ...end }, + } +} + +/* globals globalThis, global, self, window */ + +const globalObject = + typeof globalThis !== "undefined" + ? globalThis + : typeof self !== "undefined" + ? self + : typeof window !== "undefined" + ? window + : typeof global !== "undefined" + ? global + : {}; + +const builtinNames = Object.freeze( + new Set([ + "Array", + "ArrayBuffer", + "BigInt", + "BigInt64Array", + "BigUint64Array", + "Boolean", + "DataView", + "Date", + "decodeURI", + "decodeURIComponent", + "encodeURI", + "encodeURIComponent", + "escape", + "Float32Array", + "Float64Array", + "Function", + "Infinity", + "Int16Array", + "Int32Array", + "Int8Array", + "isFinite", + "isNaN", + "isPrototypeOf", + "JSON", + "Map", + "Math", + "NaN", + "Number", + "Object", + "parseFloat", + "parseInt", + "Promise", + "Proxy", + "Reflect", + "RegExp", + "Set", + "String", + "Symbol", + "Uint16Array", + "Uint32Array", + "Uint8Array", + "Uint8ClampedArray", + "undefined", + "unescape", + "WeakMap", + "WeakSet", + ]), +); +const callAllowed = new Set( + [ + Array.isArray, + typeof BigInt === "function" ? BigInt : undefined, + Boolean, + Date, + Date.parse, + decodeURI, + decodeURIComponent, + encodeURI, + encodeURIComponent, + escape, + isFinite, + isNaN, + isPrototypeOf, + ...Object.getOwnPropertyNames(Math) + .map((k) => Math[k]) + .filter((f) => typeof f === "function"), + Number, + Number.isFinite, + Number.isNaN, + Number.parseFloat, + Number.parseInt, + Object, + Object.entries, + Object.is, + Object.isExtensible, + Object.isFrozen, + Object.isSealed, + Object.keys, + Object.values, + parseFloat, + parseInt, + RegExp, + String, + String.fromCharCode, + String.fromCodePoint, + String.raw, + Symbol.for, + Symbol.keyFor, + unescape, + ].filter((f) => typeof f === "function"), +); +const callPassThrough = new Set([ + Object.freeze, + Object.preventExtensions, + Object.seal, +]); + +/** + * Get the property descriptor. + * @param {object} object The object to get. + * @param {string|number|symbol} name The property name to get. + */ +function getPropertyDescriptor(object, name) { + let x = object; + while ((typeof x === "object" || typeof x === "function") && x !== null) { + const d = Object.getOwnPropertyDescriptor(x, name); + if (d) { + return d + } + x = Object.getPrototypeOf(x); + } + return null +} + +/** + * Check if a property is getter or not. + * @param {object} object The object to check. + * @param {string|number|symbol} name The property name to check. + */ +function isGetter(object, name) { + const d = getPropertyDescriptor(object, name); + return d != null && d.get != null +} + +/** + * Get the element values of a given node list. + * @param {Node[]} nodeList The node list to get values. + * @param {Scope|undefined} initialScope The initial scope to find variables. + * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null. + */ +function getElementValues(nodeList, initialScope) { + const valueList = []; + + for (let i = 0; i < nodeList.length; ++i) { + const elementNode = nodeList[i]; + + if (elementNode == null) { + valueList.length = i + 1; + } else if (elementNode.type === "SpreadElement") { + const argument = getStaticValueR(elementNode.argument, initialScope); + if (argument == null) { + return null + } + valueList.push(...argument.value); + } else { + const element = getStaticValueR(elementNode, initialScope); + if (element == null) { + return null + } + valueList.push(element.value); + } + } + + return valueList +} + +const operations = Object.freeze({ + ArrayExpression(node, initialScope) { + const elements = getElementValues(node.elements, initialScope); + return elements != null ? { value: elements } : null + }, + + AssignmentExpression(node, initialScope) { + if (node.operator === "=") { + return getStaticValueR(node.right, initialScope) + } + return null + }, + + //eslint-disable-next-line complexity + BinaryExpression(node, initialScope) { + if (node.operator === "in" || node.operator === "instanceof") { + // Not supported. + return null + } + + const left = getStaticValueR(node.left, initialScope); + const right = getStaticValueR(node.right, initialScope); + if (left != null && right != null) { + switch (node.operator) { + case "==": + return { value: left.value == right.value } //eslint-disable-line eqeqeq + case "!=": + return { value: left.value != right.value } //eslint-disable-line eqeqeq + case "===": + return { value: left.value === right.value } + case "!==": + return { value: left.value !== right.value } + case "<": + return { value: left.value < right.value } + case "<=": + return { value: left.value <= right.value } + case ">": + return { value: left.value > right.value } + case ">=": + return { value: left.value >= right.value } + case "<<": + return { value: left.value << right.value } + case ">>": + return { value: left.value >> right.value } + case ">>>": + return { value: left.value >>> right.value } + case "+": + return { value: left.value + right.value } + case "-": + return { value: left.value - right.value } + case "*": + return { value: left.value * right.value } + case "/": + return { value: left.value / right.value } + case "%": + return { value: left.value % right.value } + case "**": + return { value: Math.pow(left.value, right.value) } + case "|": + return { value: left.value | right.value } + case "^": + return { value: left.value ^ right.value } + case "&": + return { value: left.value & right.value } + + // no default + } + } + + return null + }, + + CallExpression(node, initialScope) { + const calleeNode = node.callee; + const args = getElementValues(node.arguments, initialScope); + + if (args != null) { + if (calleeNode.type === "MemberExpression") { + if (calleeNode.property.type === "PrivateIdentifier") { + return null + } + const object = getStaticValueR(calleeNode.object, initialScope); + if (object != null) { + if ( + object.value == null && + (object.optional || node.optional) + ) { + return { value: undefined, optional: true } + } + const property = getStaticPropertyNameValue( + calleeNode, + initialScope, + ); + + if (property != null) { + const receiver = object.value; + const methodName = property.value; + if (callAllowed.has(receiver[methodName])) { + return { value: receiver[methodName](...args) } + } + if (callPassThrough.has(receiver[methodName])) { + return { value: args[0] } + } + } + } + } else { + const callee = getStaticValueR(calleeNode, initialScope); + if (callee != null) { + if (callee.value == null && node.optional) { + return { value: undefined, optional: true } + } + const func = callee.value; + if (callAllowed.has(func)) { + return { value: func(...args) } + } + if (callPassThrough.has(func)) { + return { value: args[0] } + } + } + } + } + + return null + }, + + ConditionalExpression(node, initialScope) { + const test = getStaticValueR(node.test, initialScope); + if (test != null) { + return test.value + ? getStaticValueR(node.consequent, initialScope) + : getStaticValueR(node.alternate, initialScope) + } + return null + }, + + ExpressionStatement(node, initialScope) { + return getStaticValueR(node.expression, initialScope) + }, + + Identifier(node, initialScope) { + if (initialScope != null) { + const variable = findVariable(initialScope, node); + + // Built-in globals. + if ( + variable != null && + variable.defs.length === 0 && + builtinNames.has(variable.name) && + variable.name in globalObject + ) { + return { value: globalObject[variable.name] } + } + + // Constants. + if (variable != null && variable.defs.length === 1) { + const def = variable.defs[0]; + if ( + def.parent && + def.parent.kind === "const" && + // TODO(mysticatea): don't support destructuring here. + def.node.id.type === "Identifier" + ) { + return getStaticValueR(def.node.init, initialScope) + } + } + } + return null + }, + + Literal(node) { + //istanbul ignore if : this is implementation-specific behavior. + if ((node.regex != null || node.bigint != null) && node.value == null) { + // It was a RegExp/BigInt literal, but Node.js didn't support it. + return null + } + return { value: node.value } + }, + + LogicalExpression(node, initialScope) { + const left = getStaticValueR(node.left, initialScope); + if (left != null) { + if ( + (node.operator === "||" && Boolean(left.value) === true) || + (node.operator === "&&" && Boolean(left.value) === false) || + (node.operator === "??" && left.value != null) + ) { + return left + } + + const right = getStaticValueR(node.right, initialScope); + if (right != null) { + return right + } + } + + return null + }, + + MemberExpression(node, initialScope) { + if (node.property.type === "PrivateIdentifier") { + return null + } + const object = getStaticValueR(node.object, initialScope); + if (object != null) { + if (object.value == null && (object.optional || node.optional)) { + return { value: undefined, optional: true } + } + const property = getStaticPropertyNameValue(node, initialScope); + + if (property != null && !isGetter(object.value, property.value)) { + return { value: object.value[property.value] } + } + } + return null + }, + + ChainExpression(node, initialScope) { + const expression = getStaticValueR(node.expression, initialScope); + if (expression != null) { + return { value: expression.value } + } + return null + }, + + NewExpression(node, initialScope) { + const callee = getStaticValueR(node.callee, initialScope); + const args = getElementValues(node.arguments, initialScope); + + if (callee != null && args != null) { + const Func = callee.value; + if (callAllowed.has(Func)) { + return { value: new Func(...args) } + } + } + + return null + }, + + ObjectExpression(node, initialScope) { + const object = {}; + + for (const propertyNode of node.properties) { + if (propertyNode.type === "Property") { + if (propertyNode.kind !== "init") { + return null + } + const key = getStaticPropertyNameValue( + propertyNode, + initialScope, + ); + const value = getStaticValueR(propertyNode.value, initialScope); + if (key == null || value == null) { + return null + } + object[key.value] = value.value; + } else if ( + propertyNode.type === "SpreadElement" || + propertyNode.type === "ExperimentalSpreadProperty" + ) { + const argument = getStaticValueR( + propertyNode.argument, + initialScope, + ); + if (argument == null) { + return null + } + Object.assign(object, argument.value); + } else { + return null + } + } + + return { value: object } + }, + + SequenceExpression(node, initialScope) { + const last = node.expressions[node.expressions.length - 1]; + return getStaticValueR(last, initialScope) + }, + + TaggedTemplateExpression(node, initialScope) { + const tag = getStaticValueR(node.tag, initialScope); + const expressions = getElementValues( + node.quasi.expressions, + initialScope, + ); + + if (tag != null && expressions != null) { + const func = tag.value; + const strings = node.quasi.quasis.map((q) => q.value.cooked); + strings.raw = node.quasi.quasis.map((q) => q.value.raw); + + if (func === String.raw) { + return { value: func(strings, ...expressions) } + } + } + + return null + }, + + TemplateLiteral(node, initialScope) { + const expressions = getElementValues(node.expressions, initialScope); + if (expressions != null) { + let value = node.quasis[0].value.cooked; + for (let i = 0; i < expressions.length; ++i) { + value += expressions[i]; + value += node.quasis[i + 1].value.cooked; + } + return { value } + } + return null + }, + + UnaryExpression(node, initialScope) { + if (node.operator === "delete") { + // Not supported. + return null + } + if (node.operator === "void") { + return { value: undefined } + } + + const arg = getStaticValueR(node.argument, initialScope); + if (arg != null) { + switch (node.operator) { + case "-": + return { value: -arg.value } + case "+": + return { value: +arg.value } //eslint-disable-line no-implicit-coercion + case "!": + return { value: !arg.value } + case "~": + return { value: ~arg.value } + case "typeof": + return { value: typeof arg.value } + + // no default + } + } + + return null + }, +}); + +/** + * Get the value of a given node if it's a static value. + * @param {Node} node The node to get. + * @param {Scope|undefined} initialScope The scope to start finding variable. + * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`. + */ +function getStaticValueR(node, initialScope) { + if (node != null && Object.hasOwnProperty.call(operations, node.type)) { + return operations[node.type](node, initialScope) + } + return null +} + +/** + * Get the static value of property name from a MemberExpression node or a Property node. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it. + * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the property name of the node, or `null`. + */ +function getStaticPropertyNameValue(node, initialScope) { + const nameNode = node.type === "Property" ? node.key : node.property; + + if (node.computed) { + return getStaticValueR(nameNode, initialScope) + } + + if (nameNode.type === "Identifier") { + return { value: nameNode.name } + } + + if (nameNode.type === "Literal") { + if (nameNode.bigint) { + return { value: nameNode.bigint } + } + return { value: String(nameNode.value) } + } + + return null +} + +/** + * Get the value of a given node if it's a static value. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible. + * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`. + */ +function getStaticValue(node, initialScope = null) { + try { + return getStaticValueR(node, initialScope) + } catch (_error) { + return null + } +} + +/** + * Get the value of a given node if it's a literal or a template literal. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant. + * @returns {string|null} The value of the node, or `null`. + */ +function getStringIfConstant(node, initialScope = null) { + // Handle the literals that the platform doesn't support natively. + if (node && node.type === "Literal" && node.value === null) { + if (node.regex) { + return `/${node.regex.pattern}/${node.regex.flags}` + } + if (node.bigint) { + return node.bigint + } + } + + const evaluated = getStaticValue(node, initialScope); + return evaluated && String(evaluated.value) +} + +/** + * Get the property name from a MemberExpression node or a Property node. + * @param {Node} node The node to get. + * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it. + * @returns {string|null} The property name of the node. + */ +function getPropertyName(node, initialScope) { + switch (node.type) { + case "MemberExpression": + if (node.computed) { + return getStringIfConstant(node.property, initialScope) + } + if (node.property.type === "PrivateIdentifier") { + return null + } + return node.property.name + + case "Property": + case "MethodDefinition": + case "PropertyDefinition": + if (node.computed) { + return getStringIfConstant(node.key, initialScope) + } + if (node.key.type === "Literal") { + return String(node.key.value) + } + if (node.key.type === "PrivateIdentifier") { + return null + } + return node.key.name + + // no default + } + + return null +} + +/** + * Get the name and kind of the given function node. + * @param {ASTNode} node - The function node to get. + * @param {SourceCode} [sourceCode] The source code object to get the code of computed property keys. + * @returns {string} The name and kind of the function node. + */ +// eslint-disable-next-line complexity +function getFunctionNameWithKind(node, sourceCode) { + const parent = node.parent; + const tokens = []; + const isObjectMethod = parent.type === "Property" && parent.value === node; + const isClassMethod = + parent.type === "MethodDefinition" && parent.value === node; + const isClassFieldMethod = + parent.type === "PropertyDefinition" && parent.value === node; + + // Modifiers. + if (isClassMethod || isClassFieldMethod) { + if (parent.static) { + tokens.push("static"); + } + if (parent.key.type === "PrivateIdentifier") { + tokens.push("private"); + } + } + if (node.async) { + tokens.push("async"); + } + if (node.generator) { + tokens.push("generator"); + } + + // Kinds. + if (isObjectMethod || isClassMethod) { + if (parent.kind === "constructor") { + return "constructor" + } + if (parent.kind === "get") { + tokens.push("getter"); + } else if (parent.kind === "set") { + tokens.push("setter"); + } else { + tokens.push("method"); + } + } else if (isClassFieldMethod) { + tokens.push("method"); + } else { + if (node.type === "ArrowFunctionExpression") { + tokens.push("arrow"); + } + tokens.push("function"); + } + + // Names. + if (isObjectMethod || isClassMethod || isClassFieldMethod) { + if (parent.key.type === "PrivateIdentifier") { + tokens.push(`#${parent.key.name}`); + } else { + const name = getPropertyName(parent); + if (name) { + tokens.push(`'${name}'`); + } else if (sourceCode) { + const keyText = sourceCode.getText(parent.key); + if (!keyText.includes("\n")) { + tokens.push(`[${keyText}]`); + } + } + } + } else if (node.id) { + tokens.push(`'${node.id.name}'`); + } else if ( + parent.type === "VariableDeclarator" && + parent.id && + parent.id.type === "Identifier" + ) { + tokens.push(`'${parent.id.name}'`); + } else if ( + (parent.type === "AssignmentExpression" || + parent.type === "AssignmentPattern") && + parent.left && + parent.left.type === "Identifier" + ) { + tokens.push(`'${parent.left.name}'`); + } + + return tokens.join(" ") +} + +const typeConversionBinaryOps = Object.freeze( + new Set([ + "==", + "!=", + "<", + "<=", + ">", + ">=", + "<<", + ">>", + ">>>", + "+", + "-", + "*", + "/", + "%", + "|", + "^", + "&", + "in", + ]), +); +const typeConversionUnaryOps = Object.freeze(new Set(["-", "+", "!", "~"])); + +/** + * Check whether the given value is an ASTNode or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is an ASTNode. + */ +function isNode(x) { + return x !== null && typeof x === "object" && typeof x.type === "string" +} + +const visitor = Object.freeze( + Object.assign(Object.create(null), { + $visit(node, options, visitorKeys) { + const { type } = node; + + if (typeof this[type] === "function") { + return this[type](node, options, visitorKeys) + } + + return this.$visitChildren(node, options, visitorKeys) + }, + + $visitChildren(node, options, visitorKeys) { + const { type } = node; + + for (const key of visitorKeys[type] || evk.getKeys(node)) { + const value = node[key]; + + if (Array.isArray(value)) { + for (const element of value) { + if ( + isNode(element) && + this.$visit(element, options, visitorKeys) + ) { + return true + } + } + } else if ( + isNode(value) && + this.$visit(value, options, visitorKeys) + ) { + return true + } + } + + return false + }, + + ArrowFunctionExpression() { + return false + }, + AssignmentExpression() { + return true + }, + AwaitExpression() { + return true + }, + BinaryExpression(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + typeConversionBinaryOps.has(node.operator) && + (node.left.type !== "Literal" || node.right.type !== "Literal") + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + CallExpression() { + return true + }, + FunctionExpression() { + return false + }, + ImportExpression() { + return true + }, + MemberExpression(node, options, visitorKeys) { + if (options.considerGetters) { + return true + } + if ( + options.considerImplicitTypeConversion && + node.computed && + node.property.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + MethodDefinition(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + node.computed && + node.key.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + NewExpression() { + return true + }, + Property(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + node.computed && + node.key.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + PropertyDefinition(node, options, visitorKeys) { + if ( + options.considerImplicitTypeConversion && + node.computed && + node.key.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + UnaryExpression(node, options, visitorKeys) { + if (node.operator === "delete") { + return true + } + if ( + options.considerImplicitTypeConversion && + typeConversionUnaryOps.has(node.operator) && + node.argument.type !== "Literal" + ) { + return true + } + return this.$visitChildren(node, options, visitorKeys) + }, + UpdateExpression() { + return true + }, + YieldExpression() { + return true + }, + }), +); + +/** + * Check whether a given node has any side effect or not. + * @param {Node} node The node to get. + * @param {SourceCode} sourceCode The source code object. + * @param {object} [options] The option object. + * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects. + * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects. + * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`. + * @returns {boolean} `true` if the node has a certain side effect. + */ +function hasSideEffect( + node, + sourceCode, + { considerGetters = false, considerImplicitTypeConversion = false } = {}, +) { + return visitor.$visit( + node, + { considerGetters, considerImplicitTypeConversion }, + sourceCode.visitorKeys || evk.KEYS, + ) +} + +/** + * Get the left parenthesis of the parent node syntax if it exists. + * E.g., `if (a) {}` then the `(`. + * @param {Node} node The AST node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {Token|null} The left parenthesis of the parent node syntax + */ +function getParentSyntaxParen(node, sourceCode) { + const parent = node.parent; + + switch (parent.type) { + case "CallExpression": + case "NewExpression": + if (parent.arguments.length === 1 && parent.arguments[0] === node) { + return sourceCode.getTokenAfter( + parent.callee, + isOpeningParenToken, + ) + } + return null + + case "DoWhileStatement": + if (parent.test === node) { + return sourceCode.getTokenAfter( + parent.body, + isOpeningParenToken, + ) + } + return null + + case "IfStatement": + case "WhileStatement": + if (parent.test === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + case "ImportExpression": + if (parent.source === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + case "SwitchStatement": + if (parent.discriminant === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + case "WithStatement": + if (parent.object === node) { + return sourceCode.getFirstToken(parent, 1) + } + return null + + default: + return null + } +} + +/** + * Check whether a given node is parenthesized or not. + * @param {number} times The number of parantheses. + * @param {Node} node The AST node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {boolean} `true` if the node is parenthesized the given times. + */ +/** + * Check whether a given node is parenthesized or not. + * @param {Node} node The AST node to check. + * @param {SourceCode} sourceCode The source code object to get tokens. + * @returns {boolean} `true` if the node is parenthesized. + */ +function isParenthesized( + timesOrNode, + nodeOrSourceCode, + optionalSourceCode, +) { + let times, node, sourceCode, maybeLeftParen, maybeRightParen; + if (typeof timesOrNode === "number") { + times = timesOrNode | 0; + node = nodeOrSourceCode; + sourceCode = optionalSourceCode; + if (!(times >= 1)) { + throw new TypeError("'times' should be a positive integer.") + } + } else { + times = 1; + node = timesOrNode; + sourceCode = nodeOrSourceCode; + } + + if ( + node == null || + // `CatchClause.param` can't be parenthesized, example `try {} catch (error) {}` + (node.parent.type === "CatchClause" && node.parent.param === node) + ) { + return false + } + + maybeLeftParen = maybeRightParen = node; + do { + maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen); + maybeRightParen = sourceCode.getTokenAfter(maybeRightParen); + } while ( + maybeLeftParen != null && + maybeRightParen != null && + isOpeningParenToken(maybeLeftParen) && + isClosingParenToken(maybeRightParen) && + // Avoid false positive such as `if (a) {}` + maybeLeftParen !== getParentSyntaxParen(node, sourceCode) && + --times > 0 + ) + + return times === 0 +} + +/** + * @author Toru Nagashima + * See LICENSE file in root directory for full license. + */ + +const placeholder = /\$(?:[$&`']|[1-9][0-9]?)/gu; + +/** @type {WeakMap} */ +const internal = new WeakMap(); + +/** + * Check whether a given character is escaped or not. + * @param {string} str The string to check. + * @param {number} index The location of the character to check. + * @returns {boolean} `true` if the character is escaped. + */ +function isEscaped(str, index) { + let escaped = false; + for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) { + escaped = !escaped; + } + return escaped +} + +/** + * Replace a given string by a given matcher. + * @param {PatternMatcher} matcher The pattern matcher. + * @param {string} str The string to be replaced. + * @param {string} replacement The new substring to replace each matched part. + * @returns {string} The replaced string. + */ +function replaceS(matcher, str, replacement) { + const chunks = []; + let index = 0; + + /** @type {RegExpExecArray} */ + let match = null; + + /** + * @param {string} key The placeholder. + * @returns {string} The replaced string. + */ + function replacer(key) { + switch (key) { + case "$$": + return "$" + case "$&": + return match[0] + case "$`": + return str.slice(0, match.index) + case "$'": + return str.slice(match.index + match[0].length) + default: { + const i = key.slice(1); + if (i in match) { + return match[i] + } + return key + } + } + } + + for (match of matcher.execAll(str)) { + chunks.push(str.slice(index, match.index)); + chunks.push(replacement.replace(placeholder, replacer)); + index = match.index + match[0].length; + } + chunks.push(str.slice(index)); + + return chunks.join("") +} + +/** + * Replace a given string by a given matcher. + * @param {PatternMatcher} matcher The pattern matcher. + * @param {string} str The string to be replaced. + * @param {(...strs[])=>string} replace The function to replace each matched part. + * @returns {string} The replaced string. + */ +function replaceF(matcher, str, replace) { + const chunks = []; + let index = 0; + + for (const match of matcher.execAll(str)) { + chunks.push(str.slice(index, match.index)); + chunks.push(String(replace(...match, match.index, match.input))); + index = match.index + match[0].length; + } + chunks.push(str.slice(index)); + + return chunks.join("") +} + +/** + * The class to find patterns as considering escape sequences. + */ +class PatternMatcher { + /** + * Initialize this matcher. + * @param {RegExp} pattern The pattern to match. + * @param {{escaped:boolean}} options The options. + */ + constructor(pattern, { escaped = false } = {}) { + if (!(pattern instanceof RegExp)) { + throw new TypeError("'pattern' should be a RegExp instance.") + } + if (!pattern.flags.includes("g")) { + throw new Error("'pattern' should contains 'g' flag.") + } + + internal.set(this, { + pattern: new RegExp(pattern.source, pattern.flags), + escaped: Boolean(escaped), + }); + } + + /** + * Find the pattern in a given string. + * @param {string} str The string to find. + * @returns {IterableIterator} The iterator which iterate the matched information. + */ + *execAll(str) { + const { pattern, escaped } = internal.get(this); + let match = null; + let lastIndex = 0; + + pattern.lastIndex = 0; + while ((match = pattern.exec(str)) != null) { + if (escaped || !isEscaped(str, match.index)) { + lastIndex = pattern.lastIndex; + yield match; + pattern.lastIndex = lastIndex; + } + } + } + + /** + * Check whether the pattern is found in a given string. + * @param {string} str The string to check. + * @returns {boolean} `true` if the pattern was found in the string. + */ + test(str) { + const it = this.execAll(str); + const ret = it.next(); + return !ret.done + } + + /** + * Replace a given string. + * @param {string} str The string to be replaced. + * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`. + * @returns {string} The replaced string. + */ + [Symbol.replace](str, replacer) { + return typeof replacer === "function" + ? replaceF(this, String(str), replacer) + : replaceS(this, String(str), String(replacer)) + } +} + +const IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u; +const has = Function.call.bind(Object.hasOwnProperty); + +const READ = Symbol("read"); +const CALL = Symbol("call"); +const CONSTRUCT = Symbol("construct"); +const ESM = Symbol("esm"); + +const requireCall = { require: { [CALL]: true } }; + +/** + * Check whether a given variable is modified or not. + * @param {Variable} variable The variable to check. + * @returns {boolean} `true` if the variable is modified. + */ +function isModifiedGlobal(variable) { + return ( + variable == null || + variable.defs.length !== 0 || + variable.references.some((r) => r.isWrite()) + ) +} + +/** + * Check if the value of a given node is passed through to the parent syntax as-is. + * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through. + * @param {Node} node A node to check. + * @returns {boolean} `true` if the node is passed through. + */ +function isPassThrough(node) { + const parent = node.parent; + + switch (parent && parent.type) { + case "ConditionalExpression": + return parent.consequent === node || parent.alternate === node + case "LogicalExpression": + return true + case "SequenceExpression": + return parent.expressions[parent.expressions.length - 1] === node + case "ChainExpression": + return true + + default: + return false + } +} + +/** + * The reference tracker. + */ +class ReferenceTracker { + /** + * Initialize this tracker. + * @param {Scope} globalScope The global scope. + * @param {object} [options] The options. + * @param {"legacy"|"strict"} [options.mode="strict"] The mode to determine the ImportDeclaration's behavior for CJS modules. + * @param {string[]} [options.globalObjectNames=["global","globalThis","self","window"]] The variable names for Global Object. + */ + constructor( + globalScope, + { + mode = "strict", + globalObjectNames = ["global", "globalThis", "self", "window"], + } = {}, + ) { + this.variableStack = []; + this.globalScope = globalScope; + this.mode = mode; + this.globalObjectNames = globalObjectNames.slice(0); + } + + /** + * Iterate the references of global variables. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *iterateGlobalReferences(traceMap) { + for (const key of Object.keys(traceMap)) { + const nextTraceMap = traceMap[key]; + const path = [key]; + const variable = this.globalScope.set.get(key); + + if (isModifiedGlobal(variable)) { + continue + } + + yield* this._iterateVariableReferences( + variable, + path, + nextTraceMap, + true, + ); + } + + for (const key of this.globalObjectNames) { + const path = []; + const variable = this.globalScope.set.get(key); + + if (isModifiedGlobal(variable)) { + continue + } + + yield* this._iterateVariableReferences( + variable, + path, + traceMap, + false, + ); + } + } + + /** + * Iterate the references of CommonJS modules. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *iterateCjsReferences(traceMap) { + for (const { node } of this.iterateGlobalReferences(requireCall)) { + const key = getStringIfConstant(node.arguments[0]); + if (key == null || !has(traceMap, key)) { + continue + } + + const nextTraceMap = traceMap[key]; + const path = [key]; + + if (nextTraceMap[READ]) { + yield { + node, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iteratePropertyReferences(node, path, nextTraceMap); + } + } + + /** + * Iterate the references of ES modules. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *iterateEsmReferences(traceMap) { + const programNode = this.globalScope.block; + + for (const node of programNode.body) { + if (!IMPORT_TYPE.test(node.type) || node.source == null) { + continue + } + const moduleId = node.source.value; + + if (!has(traceMap, moduleId)) { + continue + } + const nextTraceMap = traceMap[moduleId]; + const path = [moduleId]; + + if (nextTraceMap[READ]) { + yield { node, path, type: READ, info: nextTraceMap[READ] }; + } + + if (node.type === "ExportAllDeclaration") { + for (const key of Object.keys(nextTraceMap)) { + const exportTraceMap = nextTraceMap[key]; + if (exportTraceMap[READ]) { + yield { + node, + path: path.concat(key), + type: READ, + info: exportTraceMap[READ], + }; + } + } + } else { + for (const specifier of node.specifiers) { + const esm = has(nextTraceMap, ESM); + const it = this._iterateImportReferences( + specifier, + path, + esm + ? nextTraceMap + : this.mode === "legacy" + ? { default: nextTraceMap, ...nextTraceMap } + : { default: nextTraceMap }, + ); + + if (esm) { + yield* it; + } else { + for (const report of it) { + report.path = report.path.filter(exceptDefault); + if ( + report.path.length >= 2 || + report.type !== READ + ) { + yield report; + } + } + } + } + } + } + } + + /** + * Iterate the references for a given variable. + * @param {Variable} variable The variable to iterate that references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @param {boolean} shouldReport = The flag to report those references. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *_iterateVariableReferences(variable, path, traceMap, shouldReport) { + if (this.variableStack.includes(variable)) { + return + } + this.variableStack.push(variable); + try { + for (const reference of variable.references) { + if (!reference.isRead()) { + continue + } + const node = reference.identifier; + + if (shouldReport && traceMap[READ]) { + yield { node, path, type: READ, info: traceMap[READ] }; + } + yield* this._iteratePropertyReferences(node, path, traceMap); + } + } finally { + this.variableStack.pop(); + } + } + + /** + * Iterate the references for a given AST node. + * @param rootNode The AST node to iterate references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + //eslint-disable-next-line complexity + *_iteratePropertyReferences(rootNode, path, traceMap) { + let node = rootNode; + while (isPassThrough(node)) { + node = node.parent; + } + + const parent = node.parent; + if (parent.type === "MemberExpression") { + if (parent.object === node) { + const key = getPropertyName(parent); + if (key == null || !has(traceMap, key)) { + return + } + + path = path.concat(key); //eslint-disable-line no-param-reassign + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: parent, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iteratePropertyReferences( + parent, + path, + nextTraceMap, + ); + } + return + } + if (parent.type === "CallExpression") { + if (parent.callee === node && traceMap[CALL]) { + yield { node: parent, path, type: CALL, info: traceMap[CALL] }; + } + return + } + if (parent.type === "NewExpression") { + if (parent.callee === node && traceMap[CONSTRUCT]) { + yield { + node: parent, + path, + type: CONSTRUCT, + info: traceMap[CONSTRUCT], + }; + } + return + } + if (parent.type === "AssignmentExpression") { + if (parent.right === node) { + yield* this._iterateLhsReferences(parent.left, path, traceMap); + yield* this._iteratePropertyReferences(parent, path, traceMap); + } + return + } + if (parent.type === "AssignmentPattern") { + if (parent.right === node) { + yield* this._iterateLhsReferences(parent.left, path, traceMap); + } + return + } + if (parent.type === "VariableDeclarator") { + if (parent.init === node) { + yield* this._iterateLhsReferences(parent.id, path, traceMap); + } + } + } + + /** + * Iterate the references for a given Pattern node. + * @param {Node} patternNode The Pattern node to iterate references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *_iterateLhsReferences(patternNode, path, traceMap) { + if (patternNode.type === "Identifier") { + const variable = findVariable(this.globalScope, patternNode); + if (variable != null) { + yield* this._iterateVariableReferences( + variable, + path, + traceMap, + false, + ); + } + return + } + if (patternNode.type === "ObjectPattern") { + for (const property of patternNode.properties) { + const key = getPropertyName(property); + + if (key == null || !has(traceMap, key)) { + continue + } + + const nextPath = path.concat(key); + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: property, + path: nextPath, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iterateLhsReferences( + property.value, + nextPath, + nextTraceMap, + ); + } + return + } + if (patternNode.type === "AssignmentPattern") { + yield* this._iterateLhsReferences(patternNode.left, path, traceMap); + } + } + + /** + * Iterate the references for a given ModuleSpecifier node. + * @param {Node} specifierNode The ModuleSpecifier node to iterate references. + * @param {string[]} path The current path. + * @param {object} traceMap The trace map. + * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references. + */ + *_iterateImportReferences(specifierNode, path, traceMap) { + const type = specifierNode.type; + + if (type === "ImportSpecifier" || type === "ImportDefaultSpecifier") { + const key = + type === "ImportDefaultSpecifier" + ? "default" + : specifierNode.imported.name; + if (!has(traceMap, key)) { + return + } + + path = path.concat(key); //eslint-disable-line no-param-reassign + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: specifierNode, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + yield* this._iterateVariableReferences( + findVariable(this.globalScope, specifierNode.local), + path, + nextTraceMap, + false, + ); + + return + } + + if (type === "ImportNamespaceSpecifier") { + yield* this._iterateVariableReferences( + findVariable(this.globalScope, specifierNode.local), + path, + traceMap, + false, + ); + return + } + + if (type === "ExportSpecifier") { + const key = specifierNode.local.name; + if (!has(traceMap, key)) { + return + } + + path = path.concat(key); //eslint-disable-line no-param-reassign + const nextTraceMap = traceMap[key]; + if (nextTraceMap[READ]) { + yield { + node: specifierNode, + path, + type: READ, + info: nextTraceMap[READ], + }; + } + } + } +} + +ReferenceTracker.READ = READ; +ReferenceTracker.CALL = CALL; +ReferenceTracker.CONSTRUCT = CONSTRUCT; +ReferenceTracker.ESM = ESM; + +/** + * This is a predicate function for Array#filter. + * @param {string} name A name part. + * @param {number} index The index of the name. + * @returns {boolean} `false` if it's default. + */ +function exceptDefault(name, index) { + return !(index === 1 && name === "default") +} + +var index = { + CALL, + CONSTRUCT, + ESM, + findVariable, + getFunctionHeadLocation, + getFunctionNameWithKind, + getInnermostScope, + getPropertyName, + getStaticValue, + getStringIfConstant, + hasSideEffect, + isArrowToken, + isClosingBraceToken, + isClosingBracketToken, + isClosingParenToken, + isColonToken, + isCommaToken, + isCommentToken, + isNotArrowToken, + isNotClosingBraceToken, + isNotClosingBracketToken, + isNotClosingParenToken, + isNotColonToken, + isNotCommaToken, + isNotCommentToken, + isNotOpeningBraceToken, + isNotOpeningBracketToken, + isNotOpeningParenToken, + isNotSemicolonToken, + isOpeningBraceToken, + isOpeningBracketToken, + isOpeningParenToken, + isParenthesized, + isSemicolonToken, + PatternMatcher, + READ, + ReferenceTracker, +}; + +export default index; +export { CALL, CONSTRUCT, ESM, PatternMatcher, READ, ReferenceTracker, findVariable, getFunctionHeadLocation, getFunctionNameWithKind, getInnermostScope, getPropertyName, getStaticValue, getStringIfConstant, hasSideEffect, isArrowToken, isClosingBraceToken, isClosingBracketToken, isClosingParenToken, isColonToken, isCommaToken, isCommentToken, isNotArrowToken, isNotClosingBraceToken, isNotClosingBracketToken, isNotClosingParenToken, isNotColonToken, isNotCommaToken, isNotCommentToken, isNotOpeningBraceToken, isNotOpeningBracketToken, isNotOpeningParenToken, isNotSemicolonToken, isOpeningBraceToken, isOpeningBracketToken, isOpeningParenToken, isParenthesized, isSemicolonToken }; +//# sourceMappingURL=index.mjs.map diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.mjs.map b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.mjs.map new file mode 100644 index 0000000000..399507fdc3 --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.mjs","sources":["src/get-innermost-scope.js","src/find-variable.js","src/token-predicate.js","src/get-function-head-location.js","src/get-static-value.js","src/get-string-if-constant.js","src/get-property-name.js","src/get-function-name-with-kind.js","src/has-side-effect.js","src/is-parenthesized.js","src/pattern-matcher.js","src/reference-tracker.js","src/index.js"],"sourcesContent":["/**\n * Get the innermost scope which contains a given location.\n * @param {Scope} initialScope The initial scope to search.\n * @param {Node} node The location to search.\n * @returns {Scope} The innermost scope.\n */\nexport function getInnermostScope(initialScope, node) {\n const location = node.range[0]\n\n let scope = initialScope\n let found = false\n do {\n found = false\n for (const childScope of scope.childScopes) {\n const range = childScope.block.range\n\n if (range[0] <= location && location < range[1]) {\n scope = childScope\n found = true\n break\n }\n }\n } while (found)\n\n return scope\n}\n","import { getInnermostScope } from \"./get-innermost-scope\"\n\n/**\n * Find the variable of a given name.\n * @param {Scope} initialScope The scope to start finding.\n * @param {string|Node} nameOrNode The variable name to find. If this is a Node object then it should be an Identifier node.\n * @returns {Variable|null} The found variable or null.\n */\nexport function findVariable(initialScope, nameOrNode) {\n let name = \"\"\n let scope = initialScope\n\n if (typeof nameOrNode === \"string\") {\n name = nameOrNode\n } else {\n name = nameOrNode.name\n scope = getInnermostScope(scope, nameOrNode)\n }\n\n while (scope != null) {\n const variable = scope.set.get(name)\n if (variable != null) {\n return variable\n }\n scope = scope.upper\n }\n\n return null\n}\n","/**\n * Negate the result of `this` calling.\n * @param {Token} token The token to check.\n * @returns {boolean} `true` if the result of `this(token)` is `false`.\n */\nfunction negate0(token) {\n return !this(token) //eslint-disable-line no-invalid-this\n}\n\n/**\n * Creates the negate function of the given function.\n * @param {function(Token):boolean} f - The function to negate.\n * @returns {function(Token):boolean} Negated function.\n */\nfunction negate(f) {\n return negate0.bind(f)\n}\n\n/**\n * Checks if the given token is a PunctuatorToken with the given value\n * @param {Token} token - The token to check.\n * @param {string} value - The value to check.\n * @returns {boolean} `true` if the token is a PunctuatorToken with the given value.\n */\nfunction isPunctuatorTokenWithValue(token, value) {\n return token.type === \"Punctuator\" && token.value === value\n}\n\n/**\n * Checks if the given token is an arrow token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an arrow token.\n */\nexport function isArrowToken(token) {\n return isPunctuatorTokenWithValue(token, \"=>\")\n}\n\n/**\n * Checks if the given token is a comma token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comma token.\n */\nexport function isCommaToken(token) {\n return isPunctuatorTokenWithValue(token, \",\")\n}\n\n/**\n * Checks if the given token is a semicolon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a semicolon token.\n */\nexport function isSemicolonToken(token) {\n return isPunctuatorTokenWithValue(token, \";\")\n}\n\n/**\n * Checks if the given token is a colon token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a colon token.\n */\nexport function isColonToken(token) {\n return isPunctuatorTokenWithValue(token, \":\")\n}\n\n/**\n * Checks if the given token is an opening parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening parenthesis token.\n */\nexport function isOpeningParenToken(token) {\n return isPunctuatorTokenWithValue(token, \"(\")\n}\n\n/**\n * Checks if the given token is a closing parenthesis token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing parenthesis token.\n */\nexport function isClosingParenToken(token) {\n return isPunctuatorTokenWithValue(token, \")\")\n}\n\n/**\n * Checks if the given token is an opening square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening square bracket token.\n */\nexport function isOpeningBracketToken(token) {\n return isPunctuatorTokenWithValue(token, \"[\")\n}\n\n/**\n * Checks if the given token is a closing square bracket token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing square bracket token.\n */\nexport function isClosingBracketToken(token) {\n return isPunctuatorTokenWithValue(token, \"]\")\n}\n\n/**\n * Checks if the given token is an opening brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is an opening brace token.\n */\nexport function isOpeningBraceToken(token) {\n return isPunctuatorTokenWithValue(token, \"{\")\n}\n\n/**\n * Checks if the given token is a closing brace token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a closing brace token.\n */\nexport function isClosingBraceToken(token) {\n return isPunctuatorTokenWithValue(token, \"}\")\n}\n\n/**\n * Checks if the given token is a comment token or not.\n * @param {Token} token - The token to check.\n * @returns {boolean} `true` if the token is a comment token.\n */\nexport function isCommentToken(token) {\n return [\"Block\", \"Line\", \"Shebang\"].includes(token.type)\n}\n\nexport const isNotArrowToken = negate(isArrowToken)\nexport const isNotCommaToken = negate(isCommaToken)\nexport const isNotSemicolonToken = negate(isSemicolonToken)\nexport const isNotColonToken = negate(isColonToken)\nexport const isNotOpeningParenToken = negate(isOpeningParenToken)\nexport const isNotClosingParenToken = negate(isClosingParenToken)\nexport const isNotOpeningBracketToken = negate(isOpeningBracketToken)\nexport const isNotClosingBracketToken = negate(isClosingBracketToken)\nexport const isNotOpeningBraceToken = negate(isOpeningBraceToken)\nexport const isNotClosingBraceToken = negate(isClosingBraceToken)\nexport const isNotCommentToken = negate(isCommentToken)\n","import { isArrowToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the `(` token of the given function node.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {Token} `(` token.\n */\nfunction getOpeningParenOfParams(node, sourceCode) {\n return node.id\n ? sourceCode.getTokenAfter(node.id, isOpeningParenToken)\n : sourceCode.getFirstToken(node, isOpeningParenToken)\n}\n\n/**\n * Get the location of the given function node for reporting.\n * @param {Node} node - The function node to get.\n * @param {SourceCode} sourceCode - The source code object to get tokens.\n * @returns {string} The location of the function node for reporting.\n */\nexport function getFunctionHeadLocation(node, sourceCode) {\n const parent = node.parent\n let start = null\n let end = null\n\n if (node.type === \"ArrowFunctionExpression\") {\n const arrowToken = sourceCode.getTokenBefore(node.body, isArrowToken)\n\n start = arrowToken.loc.start\n end = arrowToken.loc.end\n } else if (\n parent.type === \"Property\" ||\n parent.type === \"MethodDefinition\" ||\n parent.type === \"PropertyDefinition\"\n ) {\n start = parent.loc.start\n end = getOpeningParenOfParams(node, sourceCode).loc.start\n } else {\n start = node.loc.start\n end = getOpeningParenOfParams(node, sourceCode).loc.start\n }\n\n return {\n start: { ...start },\n end: { ...end },\n }\n}\n","/* globals globalThis, global, self, window */\n\nimport { findVariable } from \"./find-variable\"\n\nconst globalObject =\n typeof globalThis !== \"undefined\"\n ? globalThis\n : typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : typeof global !== \"undefined\"\n ? global\n : {}\n\nconst builtinNames = Object.freeze(\n new Set([\n \"Array\",\n \"ArrayBuffer\",\n \"BigInt\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"Boolean\",\n \"DataView\",\n \"Date\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"Float32Array\",\n \"Float64Array\",\n \"Function\",\n \"Infinity\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"isFinite\",\n \"isNaN\",\n \"isPrototypeOf\",\n \"JSON\",\n \"Map\",\n \"Math\",\n \"NaN\",\n \"Number\",\n \"Object\",\n \"parseFloat\",\n \"parseInt\",\n \"Promise\",\n \"Proxy\",\n \"Reflect\",\n \"RegExp\",\n \"Set\",\n \"String\",\n \"Symbol\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"undefined\",\n \"unescape\",\n \"WeakMap\",\n \"WeakSet\",\n ]),\n)\nconst callAllowed = new Set(\n [\n Array.isArray,\n typeof BigInt === \"function\" ? BigInt : undefined,\n Boolean,\n Date,\n Date.parse,\n decodeURI,\n decodeURIComponent,\n encodeURI,\n encodeURIComponent,\n escape,\n isFinite,\n isNaN,\n isPrototypeOf,\n ...Object.getOwnPropertyNames(Math)\n .map((k) => Math[k])\n .filter((f) => typeof f === \"function\"),\n Number,\n Number.isFinite,\n Number.isNaN,\n Number.parseFloat,\n Number.parseInt,\n Object,\n Object.entries,\n Object.is,\n Object.isExtensible,\n Object.isFrozen,\n Object.isSealed,\n Object.keys,\n Object.values,\n parseFloat,\n parseInt,\n RegExp,\n String,\n String.fromCharCode,\n String.fromCodePoint,\n String.raw,\n Symbol.for,\n Symbol.keyFor,\n unescape,\n ].filter((f) => typeof f === \"function\"),\n)\nconst callPassThrough = new Set([\n Object.freeze,\n Object.preventExtensions,\n Object.seal,\n])\n\n/**\n * Get the property descriptor.\n * @param {object} object The object to get.\n * @param {string|number|symbol} name The property name to get.\n */\nfunction getPropertyDescriptor(object, name) {\n let x = object\n while ((typeof x === \"object\" || typeof x === \"function\") && x !== null) {\n const d = Object.getOwnPropertyDescriptor(x, name)\n if (d) {\n return d\n }\n x = Object.getPrototypeOf(x)\n }\n return null\n}\n\n/**\n * Check if a property is getter or not.\n * @param {object} object The object to check.\n * @param {string|number|symbol} name The property name to check.\n */\nfunction isGetter(object, name) {\n const d = getPropertyDescriptor(object, name)\n return d != null && d.get != null\n}\n\n/**\n * Get the element values of a given node list.\n * @param {Node[]} nodeList The node list to get values.\n * @param {Scope|undefined} initialScope The initial scope to find variables.\n * @returns {any[]|null} The value list if all nodes are constant. Otherwise, null.\n */\nfunction getElementValues(nodeList, initialScope) {\n const valueList = []\n\n for (let i = 0; i < nodeList.length; ++i) {\n const elementNode = nodeList[i]\n\n if (elementNode == null) {\n valueList.length = i + 1\n } else if (elementNode.type === \"SpreadElement\") {\n const argument = getStaticValueR(elementNode.argument, initialScope)\n if (argument == null) {\n return null\n }\n valueList.push(...argument.value)\n } else {\n const element = getStaticValueR(elementNode, initialScope)\n if (element == null) {\n return null\n }\n valueList.push(element.value)\n }\n }\n\n return valueList\n}\n\nconst operations = Object.freeze({\n ArrayExpression(node, initialScope) {\n const elements = getElementValues(node.elements, initialScope)\n return elements != null ? { value: elements } : null\n },\n\n AssignmentExpression(node, initialScope) {\n if (node.operator === \"=\") {\n return getStaticValueR(node.right, initialScope)\n }\n return null\n },\n\n //eslint-disable-next-line complexity\n BinaryExpression(node, initialScope) {\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n // Not supported.\n return null\n }\n\n const left = getStaticValueR(node.left, initialScope)\n const right = getStaticValueR(node.right, initialScope)\n if (left != null && right != null) {\n switch (node.operator) {\n case \"==\":\n return { value: left.value == right.value } //eslint-disable-line eqeqeq\n case \"!=\":\n return { value: left.value != right.value } //eslint-disable-line eqeqeq\n case \"===\":\n return { value: left.value === right.value }\n case \"!==\":\n return { value: left.value !== right.value }\n case \"<\":\n return { value: left.value < right.value }\n case \"<=\":\n return { value: left.value <= right.value }\n case \">\":\n return { value: left.value > right.value }\n case \">=\":\n return { value: left.value >= right.value }\n case \"<<\":\n return { value: left.value << right.value }\n case \">>\":\n return { value: left.value >> right.value }\n case \">>>\":\n return { value: left.value >>> right.value }\n case \"+\":\n return { value: left.value + right.value }\n case \"-\":\n return { value: left.value - right.value }\n case \"*\":\n return { value: left.value * right.value }\n case \"/\":\n return { value: left.value / right.value }\n case \"%\":\n return { value: left.value % right.value }\n case \"**\":\n return { value: Math.pow(left.value, right.value) }\n case \"|\":\n return { value: left.value | right.value }\n case \"^\":\n return { value: left.value ^ right.value }\n case \"&\":\n return { value: left.value & right.value }\n\n // no default\n }\n }\n\n return null\n },\n\n CallExpression(node, initialScope) {\n const calleeNode = node.callee\n const args = getElementValues(node.arguments, initialScope)\n\n if (args != null) {\n if (calleeNode.type === \"MemberExpression\") {\n if (calleeNode.property.type === \"PrivateIdentifier\") {\n return null\n }\n const object = getStaticValueR(calleeNode.object, initialScope)\n if (object != null) {\n if (\n object.value == null &&\n (object.optional || node.optional)\n ) {\n return { value: undefined, optional: true }\n }\n const property = getStaticPropertyNameValue(\n calleeNode,\n initialScope,\n )\n\n if (property != null) {\n const receiver = object.value\n const methodName = property.value\n if (callAllowed.has(receiver[methodName])) {\n return { value: receiver[methodName](...args) }\n }\n if (callPassThrough.has(receiver[methodName])) {\n return { value: args[0] }\n }\n }\n }\n } else {\n const callee = getStaticValueR(calleeNode, initialScope)\n if (callee != null) {\n if (callee.value == null && node.optional) {\n return { value: undefined, optional: true }\n }\n const func = callee.value\n if (callAllowed.has(func)) {\n return { value: func(...args) }\n }\n if (callPassThrough.has(func)) {\n return { value: args[0] }\n }\n }\n }\n }\n\n return null\n },\n\n ConditionalExpression(node, initialScope) {\n const test = getStaticValueR(node.test, initialScope)\n if (test != null) {\n return test.value\n ? getStaticValueR(node.consequent, initialScope)\n : getStaticValueR(node.alternate, initialScope)\n }\n return null\n },\n\n ExpressionStatement(node, initialScope) {\n return getStaticValueR(node.expression, initialScope)\n },\n\n Identifier(node, initialScope) {\n if (initialScope != null) {\n const variable = findVariable(initialScope, node)\n\n // Built-in globals.\n if (\n variable != null &&\n variable.defs.length === 0 &&\n builtinNames.has(variable.name) &&\n variable.name in globalObject\n ) {\n return { value: globalObject[variable.name] }\n }\n\n // Constants.\n if (variable != null && variable.defs.length === 1) {\n const def = variable.defs[0]\n if (\n def.parent &&\n def.parent.kind === \"const\" &&\n // TODO(mysticatea): don't support destructuring here.\n def.node.id.type === \"Identifier\"\n ) {\n return getStaticValueR(def.node.init, initialScope)\n }\n }\n }\n return null\n },\n\n Literal(node) {\n //istanbul ignore if : this is implementation-specific behavior.\n if ((node.regex != null || node.bigint != null) && node.value == null) {\n // It was a RegExp/BigInt literal, but Node.js didn't support it.\n return null\n }\n return { value: node.value }\n },\n\n LogicalExpression(node, initialScope) {\n const left = getStaticValueR(node.left, initialScope)\n if (left != null) {\n if (\n (node.operator === \"||\" && Boolean(left.value) === true) ||\n (node.operator === \"&&\" && Boolean(left.value) === false) ||\n (node.operator === \"??\" && left.value != null)\n ) {\n return left\n }\n\n const right = getStaticValueR(node.right, initialScope)\n if (right != null) {\n return right\n }\n }\n\n return null\n },\n\n MemberExpression(node, initialScope) {\n if (node.property.type === \"PrivateIdentifier\") {\n return null\n }\n const object = getStaticValueR(node.object, initialScope)\n if (object != null) {\n if (object.value == null && (object.optional || node.optional)) {\n return { value: undefined, optional: true }\n }\n const property = getStaticPropertyNameValue(node, initialScope)\n\n if (property != null && !isGetter(object.value, property.value)) {\n return { value: object.value[property.value] }\n }\n }\n return null\n },\n\n ChainExpression(node, initialScope) {\n const expression = getStaticValueR(node.expression, initialScope)\n if (expression != null) {\n return { value: expression.value }\n }\n return null\n },\n\n NewExpression(node, initialScope) {\n const callee = getStaticValueR(node.callee, initialScope)\n const args = getElementValues(node.arguments, initialScope)\n\n if (callee != null && args != null) {\n const Func = callee.value\n if (callAllowed.has(Func)) {\n return { value: new Func(...args) }\n }\n }\n\n return null\n },\n\n ObjectExpression(node, initialScope) {\n const object = {}\n\n for (const propertyNode of node.properties) {\n if (propertyNode.type === \"Property\") {\n if (propertyNode.kind !== \"init\") {\n return null\n }\n const key = getStaticPropertyNameValue(\n propertyNode,\n initialScope,\n )\n const value = getStaticValueR(propertyNode.value, initialScope)\n if (key == null || value == null) {\n return null\n }\n object[key.value] = value.value\n } else if (\n propertyNode.type === \"SpreadElement\" ||\n propertyNode.type === \"ExperimentalSpreadProperty\"\n ) {\n const argument = getStaticValueR(\n propertyNode.argument,\n initialScope,\n )\n if (argument == null) {\n return null\n }\n Object.assign(object, argument.value)\n } else {\n return null\n }\n }\n\n return { value: object }\n },\n\n SequenceExpression(node, initialScope) {\n const last = node.expressions[node.expressions.length - 1]\n return getStaticValueR(last, initialScope)\n },\n\n TaggedTemplateExpression(node, initialScope) {\n const tag = getStaticValueR(node.tag, initialScope)\n const expressions = getElementValues(\n node.quasi.expressions,\n initialScope,\n )\n\n if (tag != null && expressions != null) {\n const func = tag.value\n const strings = node.quasi.quasis.map((q) => q.value.cooked)\n strings.raw = node.quasi.quasis.map((q) => q.value.raw)\n\n if (func === String.raw) {\n return { value: func(strings, ...expressions) }\n }\n }\n\n return null\n },\n\n TemplateLiteral(node, initialScope) {\n const expressions = getElementValues(node.expressions, initialScope)\n if (expressions != null) {\n let value = node.quasis[0].value.cooked\n for (let i = 0; i < expressions.length; ++i) {\n value += expressions[i]\n value += node.quasis[i + 1].value.cooked\n }\n return { value }\n }\n return null\n },\n\n UnaryExpression(node, initialScope) {\n if (node.operator === \"delete\") {\n // Not supported.\n return null\n }\n if (node.operator === \"void\") {\n return { value: undefined }\n }\n\n const arg = getStaticValueR(node.argument, initialScope)\n if (arg != null) {\n switch (node.operator) {\n case \"-\":\n return { value: -arg.value }\n case \"+\":\n return { value: +arg.value } //eslint-disable-line no-implicit-coercion\n case \"!\":\n return { value: !arg.value }\n case \"~\":\n return { value: ~arg.value }\n case \"typeof\":\n return { value: typeof arg.value }\n\n // no default\n }\n }\n\n return null\n },\n})\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope|undefined} initialScope The scope to start finding variable.\n * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`.\n */\nfunction getStaticValueR(node, initialScope) {\n if (node != null && Object.hasOwnProperty.call(operations, node.type)) {\n return operations[node.type](node, initialScope)\n }\n return null\n}\n\n/**\n * Get the static value of property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the property name of the node, or `null`.\n */\nfunction getStaticPropertyNameValue(node, initialScope) {\n const nameNode = node.type === \"Property\" ? node.key : node.property\n\n if (node.computed) {\n return getStaticValueR(nameNode, initialScope)\n }\n\n if (nameNode.type === \"Identifier\") {\n return { value: nameNode.name }\n }\n\n if (nameNode.type === \"Literal\") {\n if (nameNode.bigint) {\n return { value: nameNode.bigint }\n }\n return { value: String(nameNode.value) }\n }\n\n return null\n}\n\n/**\n * Get the value of a given node if it's a static value.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If this scope was given, this tries to resolve identifier references which are in the given node as much as possible.\n * @returns {{value:any}|{value:undefined,optional?:true}|null} The static value of the node, or `null`.\n */\nexport function getStaticValue(node, initialScope = null) {\n try {\n return getStaticValueR(node, initialScope)\n } catch (_error) {\n return null\n }\n}\n","import { getStaticValue } from \"./get-static-value\"\n\n/**\n * Get the value of a given node if it's a literal or a template literal.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is an Identifier node and this scope was given, this checks the variable of the identifier, and returns the value of it if the variable is a constant.\n * @returns {string|null} The value of the node, or `null`.\n */\nexport function getStringIfConstant(node, initialScope = null) {\n // Handle the literals that the platform doesn't support natively.\n if (node && node.type === \"Literal\" && node.value === null) {\n if (node.regex) {\n return `/${node.regex.pattern}/${node.regex.flags}`\n }\n if (node.bigint) {\n return node.bigint\n }\n }\n\n const evaluated = getStaticValue(node, initialScope)\n return evaluated && String(evaluated.value)\n}\n","import { getStringIfConstant } from \"./get-string-if-constant\"\n\n/**\n * Get the property name from a MemberExpression node or a Property node.\n * @param {Node} node The node to get.\n * @param {Scope} [initialScope] The scope to start finding variable. Optional. If the node is a computed property node and this scope was given, this checks the computed property name by the `getStringIfConstant` function with the scope, and returns the value of it.\n * @returns {string|null} The property name of the node.\n */\nexport function getPropertyName(node, initialScope) {\n switch (node.type) {\n case \"MemberExpression\":\n if (node.computed) {\n return getStringIfConstant(node.property, initialScope)\n }\n if (node.property.type === \"PrivateIdentifier\") {\n return null\n }\n return node.property.name\n\n case \"Property\":\n case \"MethodDefinition\":\n case \"PropertyDefinition\":\n if (node.computed) {\n return getStringIfConstant(node.key, initialScope)\n }\n if (node.key.type === \"Literal\") {\n return String(node.key.value)\n }\n if (node.key.type === \"PrivateIdentifier\") {\n return null\n }\n return node.key.name\n\n // no default\n }\n\n return null\n}\n","import { getPropertyName } from \"./get-property-name\"\n\n/**\n * Get the name and kind of the given function node.\n * @param {ASTNode} node - The function node to get.\n * @param {SourceCode} [sourceCode] The source code object to get the code of computed property keys.\n * @returns {string} The name and kind of the function node.\n */\n// eslint-disable-next-line complexity\nexport function getFunctionNameWithKind(node, sourceCode) {\n const parent = node.parent\n const tokens = []\n const isObjectMethod = parent.type === \"Property\" && parent.value === node\n const isClassMethod =\n parent.type === \"MethodDefinition\" && parent.value === node\n const isClassFieldMethod =\n parent.type === \"PropertyDefinition\" && parent.value === node\n\n // Modifiers.\n if (isClassMethod || isClassFieldMethod) {\n if (parent.static) {\n tokens.push(\"static\")\n }\n if (parent.key.type === \"PrivateIdentifier\") {\n tokens.push(\"private\")\n }\n }\n if (node.async) {\n tokens.push(\"async\")\n }\n if (node.generator) {\n tokens.push(\"generator\")\n }\n\n // Kinds.\n if (isObjectMethod || isClassMethod) {\n if (parent.kind === \"constructor\") {\n return \"constructor\"\n }\n if (parent.kind === \"get\") {\n tokens.push(\"getter\")\n } else if (parent.kind === \"set\") {\n tokens.push(\"setter\")\n } else {\n tokens.push(\"method\")\n }\n } else if (isClassFieldMethod) {\n tokens.push(\"method\")\n } else {\n if (node.type === \"ArrowFunctionExpression\") {\n tokens.push(\"arrow\")\n }\n tokens.push(\"function\")\n }\n\n // Names.\n if (isObjectMethod || isClassMethod || isClassFieldMethod) {\n if (parent.key.type === \"PrivateIdentifier\") {\n tokens.push(`#${parent.key.name}`)\n } else {\n const name = getPropertyName(parent)\n if (name) {\n tokens.push(`'${name}'`)\n } else if (sourceCode) {\n const keyText = sourceCode.getText(parent.key)\n if (!keyText.includes(\"\\n\")) {\n tokens.push(`[${keyText}]`)\n }\n }\n }\n } else if (node.id) {\n tokens.push(`'${node.id.name}'`)\n } else if (\n parent.type === \"VariableDeclarator\" &&\n parent.id &&\n parent.id.type === \"Identifier\"\n ) {\n tokens.push(`'${parent.id.name}'`)\n } else if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left &&\n parent.left.type === \"Identifier\"\n ) {\n tokens.push(`'${parent.left.name}'`)\n }\n\n return tokens.join(\" \")\n}\n","import evk from \"eslint-visitor-keys\"\n\nconst typeConversionBinaryOps = Object.freeze(\n new Set([\n \"==\",\n \"!=\",\n \"<\",\n \"<=\",\n \">\",\n \">=\",\n \"<<\",\n \">>\",\n \">>>\",\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"%\",\n \"|\",\n \"^\",\n \"&\",\n \"in\",\n ]),\n)\nconst typeConversionUnaryOps = Object.freeze(new Set([\"-\", \"+\", \"!\", \"~\"]))\n\n/**\n * Check whether the given value is an ASTNode or not.\n * @param {any} x The value to check.\n * @returns {boolean} `true` if the value is an ASTNode.\n */\nfunction isNode(x) {\n return x !== null && typeof x === \"object\" && typeof x.type === \"string\"\n}\n\nconst visitor = Object.freeze(\n Object.assign(Object.create(null), {\n $visit(node, options, visitorKeys) {\n const { type } = node\n\n if (typeof this[type] === \"function\") {\n return this[type](node, options, visitorKeys)\n }\n\n return this.$visitChildren(node, options, visitorKeys)\n },\n\n $visitChildren(node, options, visitorKeys) {\n const { type } = node\n\n for (const key of visitorKeys[type] || evk.getKeys(node)) {\n const value = node[key]\n\n if (Array.isArray(value)) {\n for (const element of value) {\n if (\n isNode(element) &&\n this.$visit(element, options, visitorKeys)\n ) {\n return true\n }\n }\n } else if (\n isNode(value) &&\n this.$visit(value, options, visitorKeys)\n ) {\n return true\n }\n }\n\n return false\n },\n\n ArrowFunctionExpression() {\n return false\n },\n AssignmentExpression() {\n return true\n },\n AwaitExpression() {\n return true\n },\n BinaryExpression(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n typeConversionBinaryOps.has(node.operator) &&\n (node.left.type !== \"Literal\" || node.right.type !== \"Literal\")\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n CallExpression() {\n return true\n },\n FunctionExpression() {\n return false\n },\n ImportExpression() {\n return true\n },\n MemberExpression(node, options, visitorKeys) {\n if (options.considerGetters) {\n return true\n }\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.property.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n MethodDefinition(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.key.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n NewExpression() {\n return true\n },\n Property(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.key.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n PropertyDefinition(node, options, visitorKeys) {\n if (\n options.considerImplicitTypeConversion &&\n node.computed &&\n node.key.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n UnaryExpression(node, options, visitorKeys) {\n if (node.operator === \"delete\") {\n return true\n }\n if (\n options.considerImplicitTypeConversion &&\n typeConversionUnaryOps.has(node.operator) &&\n node.argument.type !== \"Literal\"\n ) {\n return true\n }\n return this.$visitChildren(node, options, visitorKeys)\n },\n UpdateExpression() {\n return true\n },\n YieldExpression() {\n return true\n },\n }),\n)\n\n/**\n * Check whether a given node has any side effect or not.\n * @param {Node} node The node to get.\n * @param {SourceCode} sourceCode The source code object.\n * @param {object} [options] The option object.\n * @param {boolean} [options.considerGetters=false] If `true` then it considers member accesses as the node which has side effects.\n * @param {boolean} [options.considerImplicitTypeConversion=false] If `true` then it considers implicit type conversion as the node which has side effects.\n * @param {object} [options.visitorKeys=evk.KEYS] The keys to traverse nodes. Use `context.getSourceCode().visitorKeys`.\n * @returns {boolean} `true` if the node has a certain side effect.\n */\nexport function hasSideEffect(\n node,\n sourceCode,\n { considerGetters = false, considerImplicitTypeConversion = false } = {},\n) {\n return visitor.$visit(\n node,\n { considerGetters, considerImplicitTypeConversion },\n sourceCode.visitorKeys || evk.KEYS,\n )\n}\n","import { isClosingParenToken, isOpeningParenToken } from \"./token-predicate\"\n\n/**\n * Get the left parenthesis of the parent node syntax if it exists.\n * E.g., `if (a) {}` then the `(`.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {Token|null} The left parenthesis of the parent node syntax\n */\nfunction getParentSyntaxParen(node, sourceCode) {\n const parent = node.parent\n\n switch (parent.type) {\n case \"CallExpression\":\n case \"NewExpression\":\n if (parent.arguments.length === 1 && parent.arguments[0] === node) {\n return sourceCode.getTokenAfter(\n parent.callee,\n isOpeningParenToken,\n )\n }\n return null\n\n case \"DoWhileStatement\":\n if (parent.test === node) {\n return sourceCode.getTokenAfter(\n parent.body,\n isOpeningParenToken,\n )\n }\n return null\n\n case \"IfStatement\":\n case \"WhileStatement\":\n if (parent.test === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n case \"ImportExpression\":\n if (parent.source === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n case \"SwitchStatement\":\n if (parent.discriminant === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n case \"WithStatement\":\n if (parent.object === node) {\n return sourceCode.getFirstToken(parent, 1)\n }\n return null\n\n default:\n return null\n }\n}\n\n/**\n * Check whether a given node is parenthesized or not.\n * @param {number} times The number of parantheses.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized the given times.\n */\n/**\n * Check whether a given node is parenthesized or not.\n * @param {Node} node The AST node to check.\n * @param {SourceCode} sourceCode The source code object to get tokens.\n * @returns {boolean} `true` if the node is parenthesized.\n */\nexport function isParenthesized(\n timesOrNode,\n nodeOrSourceCode,\n optionalSourceCode,\n) {\n let times, node, sourceCode, maybeLeftParen, maybeRightParen\n if (typeof timesOrNode === \"number\") {\n times = timesOrNode | 0\n node = nodeOrSourceCode\n sourceCode = optionalSourceCode\n if (!(times >= 1)) {\n throw new TypeError(\"'times' should be a positive integer.\")\n }\n } else {\n times = 1\n node = timesOrNode\n sourceCode = nodeOrSourceCode\n }\n\n if (\n node == null ||\n // `CatchClause.param` can't be parenthesized, example `try {} catch (error) {}`\n (node.parent.type === \"CatchClause\" && node.parent.param === node)\n ) {\n return false\n }\n\n maybeLeftParen = maybeRightParen = node\n do {\n maybeLeftParen = sourceCode.getTokenBefore(maybeLeftParen)\n maybeRightParen = sourceCode.getTokenAfter(maybeRightParen)\n } while (\n maybeLeftParen != null &&\n maybeRightParen != null &&\n isOpeningParenToken(maybeLeftParen) &&\n isClosingParenToken(maybeRightParen) &&\n // Avoid false positive such as `if (a) {}`\n maybeLeftParen !== getParentSyntaxParen(node, sourceCode) &&\n --times > 0\n )\n\n return times === 0\n}\n","/**\n * @author Toru Nagashima \n * See LICENSE file in root directory for full license.\n */\n\nconst placeholder = /\\$(?:[$&`']|[1-9][0-9]?)/gu\n\n/** @type {WeakMap} */\nconst internal = new WeakMap()\n\n/**\n * Check whether a given character is escaped or not.\n * @param {string} str The string to check.\n * @param {number} index The location of the character to check.\n * @returns {boolean} `true` if the character is escaped.\n */\nfunction isEscaped(str, index) {\n let escaped = false\n for (let i = index - 1; i >= 0 && str.charCodeAt(i) === 0x5c; --i) {\n escaped = !escaped\n }\n return escaped\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {string} replacement The new substring to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceS(matcher, str, replacement) {\n const chunks = []\n let index = 0\n\n /** @type {RegExpExecArray} */\n let match = null\n\n /**\n * @param {string} key The placeholder.\n * @returns {string} The replaced string.\n */\n function replacer(key) {\n switch (key) {\n case \"$$\":\n return \"$\"\n case \"$&\":\n return match[0]\n case \"$`\":\n return str.slice(0, match.index)\n case \"$'\":\n return str.slice(match.index + match[0].length)\n default: {\n const i = key.slice(1)\n if (i in match) {\n return match[i]\n }\n return key\n }\n }\n }\n\n for (match of matcher.execAll(str)) {\n chunks.push(str.slice(index, match.index))\n chunks.push(replacement.replace(placeholder, replacer))\n index = match.index + match[0].length\n }\n chunks.push(str.slice(index))\n\n return chunks.join(\"\")\n}\n\n/**\n * Replace a given string by a given matcher.\n * @param {PatternMatcher} matcher The pattern matcher.\n * @param {string} str The string to be replaced.\n * @param {(...strs[])=>string} replace The function to replace each matched part.\n * @returns {string} The replaced string.\n */\nfunction replaceF(matcher, str, replace) {\n const chunks = []\n let index = 0\n\n for (const match of matcher.execAll(str)) {\n chunks.push(str.slice(index, match.index))\n chunks.push(String(replace(...match, match.index, match.input)))\n index = match.index + match[0].length\n }\n chunks.push(str.slice(index))\n\n return chunks.join(\"\")\n}\n\n/**\n * The class to find patterns as considering escape sequences.\n */\nexport class PatternMatcher {\n /**\n * Initialize this matcher.\n * @param {RegExp} pattern The pattern to match.\n * @param {{escaped:boolean}} options The options.\n */\n constructor(pattern, { escaped = false } = {}) {\n if (!(pattern instanceof RegExp)) {\n throw new TypeError(\"'pattern' should be a RegExp instance.\")\n }\n if (!pattern.flags.includes(\"g\")) {\n throw new Error(\"'pattern' should contains 'g' flag.\")\n }\n\n internal.set(this, {\n pattern: new RegExp(pattern.source, pattern.flags),\n escaped: Boolean(escaped),\n })\n }\n\n /**\n * Find the pattern in a given string.\n * @param {string} str The string to find.\n * @returns {IterableIterator} The iterator which iterate the matched information.\n */\n *execAll(str) {\n const { pattern, escaped } = internal.get(this)\n let match = null\n let lastIndex = 0\n\n pattern.lastIndex = 0\n while ((match = pattern.exec(str)) != null) {\n if (escaped || !isEscaped(str, match.index)) {\n lastIndex = pattern.lastIndex\n yield match\n pattern.lastIndex = lastIndex\n }\n }\n }\n\n /**\n * Check whether the pattern is found in a given string.\n * @param {string} str The string to check.\n * @returns {boolean} `true` if the pattern was found in the string.\n */\n test(str) {\n const it = this.execAll(str)\n const ret = it.next()\n return !ret.done\n }\n\n /**\n * Replace a given string.\n * @param {string} str The string to be replaced.\n * @param {(string|((...strs:string[])=>string))} replacer The string or function to replace. This is the same as the 2nd argument of `String.prototype.replace`.\n * @returns {string} The replaced string.\n */\n [Symbol.replace](str, replacer) {\n return typeof replacer === \"function\"\n ? replaceF(this, String(str), replacer)\n : replaceS(this, String(str), String(replacer))\n }\n}\n","import { findVariable } from \"./find-variable\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\n\nconst IMPORT_TYPE = /^(?:Import|Export(?:All|Default|Named))Declaration$/u\nconst has = Function.call.bind(Object.hasOwnProperty)\n\nexport const READ = Symbol(\"read\")\nexport const CALL = Symbol(\"call\")\nexport const CONSTRUCT = Symbol(\"construct\")\nexport const ESM = Symbol(\"esm\")\n\nconst requireCall = { require: { [CALL]: true } }\n\n/**\n * Check whether a given variable is modified or not.\n * @param {Variable} variable The variable to check.\n * @returns {boolean} `true` if the variable is modified.\n */\nfunction isModifiedGlobal(variable) {\n return (\n variable == null ||\n variable.defs.length !== 0 ||\n variable.references.some((r) => r.isWrite())\n )\n}\n\n/**\n * Check if the value of a given node is passed through to the parent syntax as-is.\n * For example, `a` and `b` in (`a || b` and `c ? a : b`) are passed through.\n * @param {Node} node A node to check.\n * @returns {boolean} `true` if the node is passed through.\n */\nfunction isPassThrough(node) {\n const parent = node.parent\n\n switch (parent && parent.type) {\n case \"ConditionalExpression\":\n return parent.consequent === node || parent.alternate === node\n case \"LogicalExpression\":\n return true\n case \"SequenceExpression\":\n return parent.expressions[parent.expressions.length - 1] === node\n case \"ChainExpression\":\n return true\n\n default:\n return false\n }\n}\n\n/**\n * The reference tracker.\n */\nexport class ReferenceTracker {\n /**\n * Initialize this tracker.\n * @param {Scope} globalScope The global scope.\n * @param {object} [options] The options.\n * @param {\"legacy\"|\"strict\"} [options.mode=\"strict\"] The mode to determine the ImportDeclaration's behavior for CJS modules.\n * @param {string[]} [options.globalObjectNames=[\"global\",\"globalThis\",\"self\",\"window\"]] The variable names for Global Object.\n */\n constructor(\n globalScope,\n {\n mode = \"strict\",\n globalObjectNames = [\"global\", \"globalThis\", \"self\", \"window\"],\n } = {},\n ) {\n this.variableStack = []\n this.globalScope = globalScope\n this.mode = mode\n this.globalObjectNames = globalObjectNames.slice(0)\n }\n\n /**\n * Iterate the references of global variables.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *iterateGlobalReferences(traceMap) {\n for (const key of Object.keys(traceMap)) {\n const nextTraceMap = traceMap[key]\n const path = [key]\n const variable = this.globalScope.set.get(key)\n\n if (isModifiedGlobal(variable)) {\n continue\n }\n\n yield* this._iterateVariableReferences(\n variable,\n path,\n nextTraceMap,\n true,\n )\n }\n\n for (const key of this.globalObjectNames) {\n const path = []\n const variable = this.globalScope.set.get(key)\n\n if (isModifiedGlobal(variable)) {\n continue\n }\n\n yield* this._iterateVariableReferences(\n variable,\n path,\n traceMap,\n false,\n )\n }\n }\n\n /**\n * Iterate the references of CommonJS modules.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *iterateCjsReferences(traceMap) {\n for (const { node } of this.iterateGlobalReferences(requireCall)) {\n const key = getStringIfConstant(node.arguments[0])\n if (key == null || !has(traceMap, key)) {\n continue\n }\n\n const nextTraceMap = traceMap[key]\n const path = [key]\n\n if (nextTraceMap[READ]) {\n yield {\n node,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iteratePropertyReferences(node, path, nextTraceMap)\n }\n }\n\n /**\n * Iterate the references of ES modules.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *iterateEsmReferences(traceMap) {\n const programNode = this.globalScope.block\n\n for (const node of programNode.body) {\n if (!IMPORT_TYPE.test(node.type) || node.source == null) {\n continue\n }\n const moduleId = node.source.value\n\n if (!has(traceMap, moduleId)) {\n continue\n }\n const nextTraceMap = traceMap[moduleId]\n const path = [moduleId]\n\n if (nextTraceMap[READ]) {\n yield { node, path, type: READ, info: nextTraceMap[READ] }\n }\n\n if (node.type === \"ExportAllDeclaration\") {\n for (const key of Object.keys(nextTraceMap)) {\n const exportTraceMap = nextTraceMap[key]\n if (exportTraceMap[READ]) {\n yield {\n node,\n path: path.concat(key),\n type: READ,\n info: exportTraceMap[READ],\n }\n }\n }\n } else {\n for (const specifier of node.specifiers) {\n const esm = has(nextTraceMap, ESM)\n const it = this._iterateImportReferences(\n specifier,\n path,\n esm\n ? nextTraceMap\n : this.mode === \"legacy\"\n ? { default: nextTraceMap, ...nextTraceMap }\n : { default: nextTraceMap },\n )\n\n if (esm) {\n yield* it\n } else {\n for (const report of it) {\n report.path = report.path.filter(exceptDefault)\n if (\n report.path.length >= 2 ||\n report.type !== READ\n ) {\n yield report\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Iterate the references for a given variable.\n * @param {Variable} variable The variable to iterate that references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @param {boolean} shouldReport = The flag to report those references.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *_iterateVariableReferences(variable, path, traceMap, shouldReport) {\n if (this.variableStack.includes(variable)) {\n return\n }\n this.variableStack.push(variable)\n try {\n for (const reference of variable.references) {\n if (!reference.isRead()) {\n continue\n }\n const node = reference.identifier\n\n if (shouldReport && traceMap[READ]) {\n yield { node, path, type: READ, info: traceMap[READ] }\n }\n yield* this._iteratePropertyReferences(node, path, traceMap)\n }\n } finally {\n this.variableStack.pop()\n }\n }\n\n /**\n * Iterate the references for a given AST node.\n * @param rootNode The AST node to iterate references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n //eslint-disable-next-line complexity\n *_iteratePropertyReferences(rootNode, path, traceMap) {\n let node = rootNode\n while (isPassThrough(node)) {\n node = node.parent\n }\n\n const parent = node.parent\n if (parent.type === \"MemberExpression\") {\n if (parent.object === node) {\n const key = getPropertyName(parent)\n if (key == null || !has(traceMap, key)) {\n return\n }\n\n path = path.concat(key) //eslint-disable-line no-param-reassign\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: parent,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iteratePropertyReferences(\n parent,\n path,\n nextTraceMap,\n )\n }\n return\n }\n if (parent.type === \"CallExpression\") {\n if (parent.callee === node && traceMap[CALL]) {\n yield { node: parent, path, type: CALL, info: traceMap[CALL] }\n }\n return\n }\n if (parent.type === \"NewExpression\") {\n if (parent.callee === node && traceMap[CONSTRUCT]) {\n yield {\n node: parent,\n path,\n type: CONSTRUCT,\n info: traceMap[CONSTRUCT],\n }\n }\n return\n }\n if (parent.type === \"AssignmentExpression\") {\n if (parent.right === node) {\n yield* this._iterateLhsReferences(parent.left, path, traceMap)\n yield* this._iteratePropertyReferences(parent, path, traceMap)\n }\n return\n }\n if (parent.type === \"AssignmentPattern\") {\n if (parent.right === node) {\n yield* this._iterateLhsReferences(parent.left, path, traceMap)\n }\n return\n }\n if (parent.type === \"VariableDeclarator\") {\n if (parent.init === node) {\n yield* this._iterateLhsReferences(parent.id, path, traceMap)\n }\n }\n }\n\n /**\n * Iterate the references for a given Pattern node.\n * @param {Node} patternNode The Pattern node to iterate references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *_iterateLhsReferences(patternNode, path, traceMap) {\n if (patternNode.type === \"Identifier\") {\n const variable = findVariable(this.globalScope, patternNode)\n if (variable != null) {\n yield* this._iterateVariableReferences(\n variable,\n path,\n traceMap,\n false,\n )\n }\n return\n }\n if (patternNode.type === \"ObjectPattern\") {\n for (const property of patternNode.properties) {\n const key = getPropertyName(property)\n\n if (key == null || !has(traceMap, key)) {\n continue\n }\n\n const nextPath = path.concat(key)\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: property,\n path: nextPath,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iterateLhsReferences(\n property.value,\n nextPath,\n nextTraceMap,\n )\n }\n return\n }\n if (patternNode.type === \"AssignmentPattern\") {\n yield* this._iterateLhsReferences(patternNode.left, path, traceMap)\n }\n }\n\n /**\n * Iterate the references for a given ModuleSpecifier node.\n * @param {Node} specifierNode The ModuleSpecifier node to iterate references.\n * @param {string[]} path The current path.\n * @param {object} traceMap The trace map.\n * @returns {IterableIterator<{node:Node,path:string[],type:symbol,info:any}>} The iterator to iterate references.\n */\n *_iterateImportReferences(specifierNode, path, traceMap) {\n const type = specifierNode.type\n\n if (type === \"ImportSpecifier\" || type === \"ImportDefaultSpecifier\") {\n const key =\n type === \"ImportDefaultSpecifier\"\n ? \"default\"\n : specifierNode.imported.name\n if (!has(traceMap, key)) {\n return\n }\n\n path = path.concat(key) //eslint-disable-line no-param-reassign\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: specifierNode,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n yield* this._iterateVariableReferences(\n findVariable(this.globalScope, specifierNode.local),\n path,\n nextTraceMap,\n false,\n )\n\n return\n }\n\n if (type === \"ImportNamespaceSpecifier\") {\n yield* this._iterateVariableReferences(\n findVariable(this.globalScope, specifierNode.local),\n path,\n traceMap,\n false,\n )\n return\n }\n\n if (type === \"ExportSpecifier\") {\n const key = specifierNode.local.name\n if (!has(traceMap, key)) {\n return\n }\n\n path = path.concat(key) //eslint-disable-line no-param-reassign\n const nextTraceMap = traceMap[key]\n if (nextTraceMap[READ]) {\n yield {\n node: specifierNode,\n path,\n type: READ,\n info: nextTraceMap[READ],\n }\n }\n }\n }\n}\n\nReferenceTracker.READ = READ\nReferenceTracker.CALL = CALL\nReferenceTracker.CONSTRUCT = CONSTRUCT\nReferenceTracker.ESM = ESM\n\n/**\n * This is a predicate function for Array#filter.\n * @param {string} name A name part.\n * @param {number} index The index of the name.\n * @returns {boolean} `false` if it's default.\n */\nfunction exceptDefault(name, index) {\n return !(index === 1 && name === \"default\")\n}\n","import { findVariable } from \"./find-variable\"\nimport { getFunctionHeadLocation } from \"./get-function-head-location\"\nimport { getFunctionNameWithKind } from \"./get-function-name-with-kind\"\nimport { getInnermostScope } from \"./get-innermost-scope\"\nimport { getPropertyName } from \"./get-property-name\"\nimport { getStaticValue } from \"./get-static-value\"\nimport { getStringIfConstant } from \"./get-string-if-constant\"\nimport { hasSideEffect } from \"./has-side-effect\"\nimport { isParenthesized } from \"./is-parenthesized\"\nimport { PatternMatcher } from \"./pattern-matcher\"\nimport {\n CALL,\n CONSTRUCT,\n ESM,\n READ,\n ReferenceTracker,\n} from \"./reference-tracker\"\nimport {\n isArrowToken,\n isClosingBraceToken,\n isClosingBracketToken,\n isClosingParenToken,\n isColonToken,\n isCommaToken,\n isCommentToken,\n isNotArrowToken,\n isNotClosingBraceToken,\n isNotClosingBracketToken,\n isNotClosingParenToken,\n isNotColonToken,\n isNotCommaToken,\n isNotCommentToken,\n isNotOpeningBraceToken,\n isNotOpeningBracketToken,\n isNotOpeningParenToken,\n isNotSemicolonToken,\n isOpeningBraceToken,\n isOpeningBracketToken,\n isOpeningParenToken,\n isSemicolonToken,\n} from \"./token-predicate\"\n\nexport default {\n CALL,\n CONSTRUCT,\n ESM,\n findVariable,\n getFunctionHeadLocation,\n getFunctionNameWithKind,\n getInnermostScope,\n getPropertyName,\n getStaticValue,\n getStringIfConstant,\n hasSideEffect,\n isArrowToken,\n isClosingBraceToken,\n isClosingBracketToken,\n isClosingParenToken,\n isColonToken,\n isCommaToken,\n isCommentToken,\n isNotArrowToken,\n isNotClosingBraceToken,\n isNotClosingBracketToken,\n isNotClosingParenToken,\n isNotColonToken,\n isNotCommaToken,\n isNotCommentToken,\n isNotOpeningBraceToken,\n isNotOpeningBracketToken,\n isNotOpeningParenToken,\n isNotSemicolonToken,\n isOpeningBraceToken,\n isOpeningBracketToken,\n isOpeningParenToken,\n isParenthesized,\n isSemicolonToken,\n PatternMatcher,\n READ,\n ReferenceTracker,\n}\nexport {\n CALL,\n CONSTRUCT,\n ESM,\n findVariable,\n getFunctionHeadLocation,\n getFunctionNameWithKind,\n getInnermostScope,\n getPropertyName,\n getStaticValue,\n getStringIfConstant,\n hasSideEffect,\n isArrowToken,\n isClosingBraceToken,\n isClosingBracketToken,\n isClosingParenToken,\n isColonToken,\n isCommaToken,\n isCommentToken,\n isNotArrowToken,\n isNotClosingBraceToken,\n isNotClosingBracketToken,\n isNotClosingParenToken,\n isNotColonToken,\n isNotCommaToken,\n isNotCommentToken,\n isNotOpeningBraceToken,\n isNotOpeningBracketToken,\n isNotOpeningParenToken,\n isNotSemicolonToken,\n isOpeningBraceToken,\n isOpeningBracketToken,\n isOpeningParenToken,\n isParenthesized,\n isSemicolonToken,\n PatternMatcher,\n READ,\n ReferenceTracker,\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/package.json b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/package.json new file mode 100644 index 0000000000..259ec0f615 --- /dev/null +++ b/node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils/package.json @@ -0,0 +1,78 @@ +{ + "name": "eslint-utils", + "version": "3.0.0", + "description": "Utilities for ESLint plugins.", + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "sideEffects": false, + "main": "index", + "module": "index.mjs", + "files": [ + "index.*" + ], + "exports": { + ".": { + "import": "./index.mjs", + "require": "./index.js" + }, + "./package.json": "./package.json" + }, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "devDependencies": { + "@mysticatea/eslint-plugin": "^13.0.0", + "codecov": "^3.6.1", + "dot-prop": "^4.2.0", + "eslint": "^7.24.0", + "esm": "^3.2.25", + "espree": "github:eslint/espree#1c744b3a602b783926344811a9459b92afe57444", + "mocha": "^6.2.2", + "npm-run-all": "^4.1.5", + "nyc": "^14.1.1", + "opener": "^1.5.1", + "prettier": "~2.3.0", + "rimraf": "^3.0.0", + "rollup": "^1.25.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "semver": "^7.3.2", + "vuepress": "^1.2.0", + "warun": "^1.0.0" + }, + "peerDependencies": { + "eslint": ">=5" + }, + "scripts": { + "prebuild": "npm run -s clean", + "build": "rollup -c", + "clean": "rimraf .nyc_output coverage index.*", + "codecov": "nyc report -r lcovonly && codecov", + "coverage": "opener ./coverage/lcov-report/index.html", + "docs:build": "vuepress build docs", + "docs:watch": "vuepress dev docs", + "format": "npm run -s format:prettier -- --write", + "format:prettier": "prettier docs/.vuepress/config.js src/**/*.js test/**/*.js rollup.config.js .vscode/*.json *.json .github/**/*.yml *.yml docs/**/*.md *.md", + "lint": "eslint docs/.vuepress/config.js src test rollup.config.js", + "test": "run-s \"format:prettier -- --check\" lint build test:mocha", + "test:mocha": "nyc mocha --reporter dot \"test/*.js\"", + "preversion": "npm test && npm run -s build", + "postversion": "git push && git push --tags", + "prewatch": "npm run -s clean", + "watch": "warun \"{src,test}/**/*.js\" -- npm run -s test:mocha" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/mysticatea/eslint-utils.git" + }, + "keywords": [ + "eslint" + ], + "author": "Toru Nagashima", + "license": "MIT", + "bugs": { + "url": "https://github.com/mysticatea/eslint-utils/issues" + }, + "homepage": "https://github.com/mysticatea/eslint-utils#readme", + "funding": "https://github.com/sponsors/mysticatea" +} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/experimental-utils/package.json b/node_modules/@typescript-eslint/experimental-utils/package.json index 623041ed21..627ad2967a 100644 --- a/node_modules/@typescript-eslint/experimental-utils/package.json +++ b/node_modules/@typescript-eslint/experimental-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/experimental-utils", - "version": "4.1.0", + "version": "4.28.5", "description": "(Experimental) Utilities for working with TypeScript + ESLint together", "keywords": [ "eslint", @@ -32,19 +32,19 @@ "build": "tsc -b tsconfig.build.json", "postbuild": "downlevel-dts dist _ts3.4/dist", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist && rimraf _ts3.4", + "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'", "test": "jest --coverage", "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.1.0", - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/typescript-estree": "4.1.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.5", + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/typescript-estree": "4.28.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, "peerDependencies": { "eslint": "*" @@ -63,5 +63,5 @@ ] } }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/CHANGELOG.md b/node_modules/@typescript-eslint/parser/CHANGELOG.md index 8007f5601d..83a7fd33fd 100644 --- a/node_modules/@typescript-eslint/parser/CHANGELOG.md +++ b/node_modules/@typescript-eslint/parser/CHANGELOG.md @@ -3,6 +3,396 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + + +### Bug Fixes + +* **typescript-estree:** allow providing more one than one existing program in config ([#3508](https://github.com/typescript-eslint/typescript-eslint/issues/3508)) ([4f1806e](https://github.com/typescript-eslint/typescript-eslint/commit/4f1806e548affb7265da360d1fc8d033e25de325)) + + +### Features + +* allow user to provide TS program instance in parser options ([#3484](https://github.com/typescript-eslint/typescript-eslint/issues/3484)) ([e855b18](https://github.com/typescript-eslint/typescript-eslint/commit/e855b18b8feee0edb5c617c11006861426a6f530)) + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Features + +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + + +### Features + +* add support for decorator metadata in scope analysis and in consistent-type-imports ([#2751](https://github.com/typescript-eslint/typescript-eslint/issues/2751)) ([445e416](https://github.com/typescript-eslint/typescript-eslint/commit/445e416878b27a54bf07c2d3b84dabd7b06e51bc)), closes [#2559](https://github.com/typescript-eslint/typescript-eslint/issues/2559) + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + + +### Bug Fixes + +* **parser:** minor fix regexp, map-filter to reduce ([#2684](https://github.com/typescript-eslint/typescript-eslint/issues/2684)) ([f1329f6](https://github.com/typescript-eslint/typescript-eslint/commit/f1329f6c4e3d1de21b1dc59c30ce16503c346eee)) + + +### Features + +* **typescript-estree:** add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect ([#2669](https://github.com/typescript-eslint/typescript-eslint/issues/2669)) ([90a5878](https://github.com/typescript-eslint/typescript-eslint/commit/90a587845088da1b205e4d7d77dbc3f9447b1c5a)) + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + +**Note:** Version bump only for package @typescript-eslint/parser + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) diff --git a/node_modules/@typescript-eslint/parser/README.md b/node_modules/@typescript-eslint/parser/README.md index f6417fd588..04f5c53d0f 100644 --- a/node_modules/@typescript-eslint/parser/README.md +++ b/node_modules/@typescript-eslint/parser/README.md @@ -45,7 +45,7 @@ By far the most common case will be installing the [`@typescript-eslint/eslint-p ## Configuration -The following additional configuration options are available by specifying them in [`parserOptions`](https://eslint.org/docs/user-guide/configuring#specifying-parser-options) in your ESLint configuration file. +The following additional configuration options are available by specifying them in [`parserOptions`](https://eslint.org/docs/user-guide/configuring/language-options#specifying-parser-options) in your ESLint configuration file. ```ts interface ParserOptions { @@ -64,6 +64,8 @@ interface ParserOptions { tsconfigRootDir?: string; extraFileExtensions?: string[]; warnOnUnsupportedTypeScriptVersion?: boolean; + + program?: import('typescript').Program; } ``` @@ -99,6 +101,8 @@ Accepts any valid ECMAScript version number: - A version: es3, es5, es6, es7, es8, es9, es10, es11, ..., or - A year: es2015, es2016, es2017, es2018, es2019, es2020, ... +The value **must** be a number - so do not include the `es` prefix. + Specifies the version of ECMAScript syntax you want to use. This is used by the parser to determine how to perform scope analysis, and it affects the default ### `parserOptions.jsxPragma` @@ -209,6 +213,39 @@ Default `false`. This option allows you to request that when the `project` setting is specified, files will be allowed when not included in the projects defined by the provided `tsconfig.json` files. **Using this option will incur significant performance costs. This option is primarily included for backwards-compatibility.** See the **`project`** section above for more information. +### `parserOptions.programs` + +Default `undefined`. + +This option allows you to programmatically provide an array of one or more instances of a TypeScript Program object that will provide type information to rules. +This will override any programs that would have been computed from `parserOptions.project` or `parserOptions.createDefaultProgram`. +All linted files must be part of the provided program(s). + +## Utilities + +### `createProgram(configFile, projectDirectory)` + +This serves as a utility method for users of the `parserOptions.programs` feature to create a TypeScript program instance from a config file. + +```ts +declare function createProgram( + configFile: string, + projectDirectory?: string, +): import('typescript').Program; +``` + +Example usage in .eslintrc.js: + +```js +const parser = require('@typescript-eslint/parser'); +const programs = [parser.createProgram('tsconfig.json')]; +module.exports = { + parserOptions: { + programs, + }, +}; +``` + ## Supported TypeScript Version Please see [`typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) for the supported TypeScript version. diff --git a/node_modules/@typescript-eslint/parser/dist/index.d.ts b/node_modules/@typescript-eslint/parser/dist/index.d.ts index 2229e017dc..c81068fbc4 100644 --- a/node_modules/@typescript-eslint/parser/dist/index.d.ts +++ b/node_modules/@typescript-eslint/parser/dist/index.d.ts @@ -1,5 +1,4 @@ export { parse, parseForESLint, ParserOptions } from './parser'; -export { ParserServices } from '@typescript-eslint/typescript-estree'; -export { clearCaches } from '@typescript-eslint/typescript-estree'; +export { ParserServices, clearCaches, createProgram, } from '@typescript-eslint/typescript-estree'; export declare const version: string; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/index.d.ts.map b/node_modules/@typescript-eslint/parser/dist/index.d.ts.map index 69632b8a0e..b673a384e8 100644 --- a/node_modules/@typescript-eslint/parser/dist/index.d.ts.map +++ b/node_modules/@typescript-eslint/parser/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,sCAAsC,CAAC;AAI9C,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/index.js b/node_modules/@typescript-eslint/parser/dist/index.js index b9e888ae1c..c43b1cfef1 100644 --- a/node_modules/@typescript-eslint/parser/dist/index.js +++ b/node_modules/@typescript-eslint/parser/dist/index.js @@ -1,11 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.version = exports.clearCaches = exports.parseForESLint = exports.parse = void 0; +exports.version = exports.createProgram = exports.clearCaches = exports.parseForESLint = exports.parse = void 0; var parser_1 = require("./parser"); Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parser_1.parse; } }); Object.defineProperty(exports, "parseForESLint", { enumerable: true, get: function () { return parser_1.parseForESLint; } }); var typescript_estree_1 = require("@typescript-eslint/typescript-estree"); Object.defineProperty(exports, "clearCaches", { enumerable: true, get: function () { return typescript_estree_1.clearCaches; } }); +Object.defineProperty(exports, "createProgram", { enumerable: true, get: function () { return typescript_estree_1.createProgram; } }); // note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder +// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment exports.version = require('../package.json').version; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/index.js.map b/node_modules/@typescript-eslint/parser/dist/index.js.map index 604901f926..5497998ec8 100644 --- a/node_modules/@typescript-eslint/parser/dist/index.js.map +++ b/node_modules/@typescript-eslint/parser/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAgE;AAAvD,+FAAA,KAAK,OAAA;AAAE,wGAAA,cAAc,OAAA;AAE9B,0EAAmE;AAA1D,gHAAA,WAAW,OAAA;AAEpB,sHAAsH;AACzG,QAAA,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAgE;AAAvD,+FAAA,KAAK,OAAA;AAAE,wGAAA,cAAc,OAAA;AAC9B,0EAI8C;AAF5C,gHAAA,WAAW,OAAA;AACX,kHAAA,aAAa,OAAA;AAGf,sHAAsH;AACtH,mEAAmE;AACtD,QAAA,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts b/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts deleted file mode 100644 index a829c4016a..0000000000 --- a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { ParserOptions } from '@typescript-eslint/types'; -//# sourceMappingURL=parser-options.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map deleted file mode 100644 index 85aeca5e1b..0000000000 --- a/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/parser-options.js b/node_modules/@typescript-eslint/parser/dist/parser-options.js deleted file mode 100644 index 66f40a290d..0000000000 --- a/node_modules/@typescript-eslint/parser/dist/parser-options.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=parser-options.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/parser-options.js.map b/node_modules/@typescript-eslint/parser/dist/parser-options.js.map deleted file mode 100644 index 22b7b8ab93..0000000000 --- a/node_modules/@typescript-eslint/parser/dist/parser-options.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parser-options.js","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map b/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map index 2e2563832e..61bdab3427 100644 --- a/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +++ b/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAO,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAEL,cAAc,EAEd,WAAW,EACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAGL,YAAY,EACb,MAAM,kCAAkC,CAAC;AAM1C,UAAU,oBAAoB;IAC5B,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG;QACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAiDD,iBAAS,KAAK,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACtB,oBAAoB,CAAC,KAAK,CAAC,CAE7B;AAED,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC7B,oBAAoB,CAwFtB;AAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAO,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAEL,cAAc,EAEd,WAAW,EACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAGL,YAAY,EACb,MAAM,kCAAkC,CAAC;AAM1C,UAAU,oBAAoB;IAC5B,GAAG,EAAE,QAAQ,CAAC,OAAO,GAAG;QACtB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAC/B,CAAC;IACF,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,YAAY,EAAE,YAAY,CAAC;CAC5B;AA+CD,iBAAS,KAAK,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GACtB,oBAAoB,CAAC,KAAK,CAAC,CAE7B;AAED,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,GAC7B,oBAAoB,CA4FtB;AAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/dist/parser.js b/node_modules/@typescript-eslint/parser/dist/parser.js index 3b6a30cf9b..930be7db77 100644 --- a/node_modules/@typescript-eslint/parser/dist/parser.js +++ b/node_modules/@typescript-eslint/parser/dist/parser.js @@ -15,19 +15,17 @@ function validateBoolean(value, fallback = false) { } return value; } -const LIB_FILENAME_REGEX = /lib\.(.+)\.d\.ts/; +const LIB_FILENAME_REGEX = /lib\.(.+)\.d\.ts$/; function getLib(compilerOptions) { var _a; if (compilerOptions.lib) { - return compilerOptions.lib - .map(lib => { + return compilerOptions.lib.reduce((acc, lib) => { const match = LIB_FILENAME_REGEX.exec(lib.toLowerCase()); - if (!match) { - return null; + if (match) { + acc.push(match[1]); } - return match[1]; - }) - .filter(l => l != null); + return acc; + }, []); } const target = (_a = compilerOptions.target) !== null && _a !== void 0 ? _a : typescript_1.ScriptTarget.ES5; // https://github.com/Microsoft/TypeScript/blob/59ad375234dc2efe38d8ee0ba58414474c1d5169/src/compiler/utilitiesPublic.ts#L13-L32 @@ -123,6 +121,10 @@ function parseForESLint(code, options) { log('Resolved jsxFragmentName from program: %s', analyzeOptions.jsxFragmentName); } } + if (compilerOptions.emitDecoratorMetadata === true) { + analyzeOptions.emitDecoratorMetadata = + compilerOptions.emitDecoratorMetadata; + } } const scopeManager = scope_manager_1.analyze(ast, analyzeOptions); return { ast, services, scopeManager, visitorKeys: typescript_estree_1.visitorKeys }; diff --git a/node_modules/@typescript-eslint/parser/dist/parser.js.map b/node_modules/@typescript-eslint/parser/dist/parser.js.map index e3b8dd068c..9fe7486b43 100644 --- a/node_modules/@typescript-eslint/parser/dist/parser.js.map +++ b/node_modules/@typescript-eslint/parser/dist/parser.js.map @@ -1 +1 @@ -{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/parser/package.json b/node_modules/@typescript-eslint/parser/package.json index 31c5850c38..6214937238 100644 --- a/node_modules/@typescript-eslint/parser/package.json +++ b/node_modules/@typescript-eslint/parser/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/parser", - "version": "4.1.0", + "version": "4.28.5", "description": "An ESLint custom parser which leverages TypeScript ESTree", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -34,7 +34,7 @@ "build": "tsc -b tsconfig.build.json", "postbuild": "downlevel-dts dist _ts3.4/dist", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist", + "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'", "test": "jest --coverage", @@ -44,15 +44,14 @@ "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "dependencies": { - "@typescript-eslint/scope-manager": "4.1.0", - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/typescript-estree": "4.1.0", - "debug": "^4.1.1" + "@typescript-eslint/scope-manager": "4.28.5", + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/typescript-estree": "4.28.5", + "debug": "^4.3.1" }, "devDependencies": { "@types/glob": "*", - "@typescript-eslint/experimental-utils": "4.1.0", - "@typescript-eslint/shared-fixtures": "4.1.0", + "@typescript-eslint/experimental-utils": "4.28.5", "glob": "*", "typescript": "*" }, @@ -72,5 +71,5 @@ ] } }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md b/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md index cf0ad482f4..2c88e35160 100644 --- a/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md +++ b/node_modules/@typescript-eslint/scope-manager/CHANGELOG.md @@ -3,6 +3,425 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + + +### Bug Fixes + +* generate library types for TypeScript v4.3 ([#3460](https://github.com/typescript-eslint/typescript-eslint/issues/3460)) ([ed4776a](https://github.com/typescript-eslint/typescript-eslint/commit/ed4776afa1374279027b9b7d82aa4b453b334998)), closes [#3449](https://github.com/typescript-eslint/typescript-eslint/issues/3449) + + +### Features + +* **scope-manager:** reduce generated lib file size ([#3468](https://github.com/typescript-eslint/typescript-eslint/issues/3468)) ([258116b](https://github.com/typescript-eslint/typescript-eslint/commit/258116ba7b0dd4ac7a1cc3876fab12f2556bda74)) + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Bug Fixes + +* **scope-manager:** fix visiting TSAsExpression in assignment ([#3355](https://github.com/typescript-eslint/typescript-eslint/issues/3355)) ([87521a0](https://github.com/typescript-eslint/typescript-eslint/commit/87521a024103bc5fc643861649bee9a288f55b7b)) + + +### Features + +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + + +### Bug Fixes + +* **scope-manager:** update libs for typescript 4.2 ([#3118](https://github.com/typescript-eslint/typescript-eslint/issues/3118)) ([0336c79](https://github.com/typescript-eslint/typescript-eslint/commit/0336c798c9502fc250d2eaa045661950da55e52f)) + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + + +### Bug Fixes + +* **scope-manager:** fix visiting of TSImportType ([#3008](https://github.com/typescript-eslint/typescript-eslint/issues/3008)) ([ce4fcbf](https://github.com/typescript-eslint/typescript-eslint/commit/ce4fcbf4401098387a2cf19ae8457c89c509239a)), closes [#3006](https://github.com/typescript-eslint/typescript-eslint/issues/3006) + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + + +### Bug Fixes + +* **scope-manager:** correctly reference generic parameters when decorator metadata is enabled ([#2975](https://github.com/typescript-eslint/typescript-eslint/issues/2975)) ([7695ef3](https://github.com/typescript-eslint/typescript-eslint/commit/7695ef318f1cc8688acaabf4f2730769622f083f)), closes [#2972](https://github.com/typescript-eslint/typescript-eslint/issues/2972) + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + + +### Bug Fixes + +* **scope-manager:** fix incorrect handling of class decorators and class method default params ([#2943](https://github.com/typescript-eslint/typescript-eslint/issues/2943)) ([e1eac83](https://github.com/typescript-eslint/typescript-eslint/commit/e1eac8312268d1855a2ed7784b4d190ecb9c9fa4)), closes [#2941](https://github.com/typescript-eslint/typescript-eslint/issues/2941) [#2942](https://github.com/typescript-eslint/typescript-eslint/issues/2942) [#2751](https://github.com/typescript-eslint/typescript-eslint/issues/2751) + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + + +### Features + +* add support for decorator metadata in scope analysis and in consistent-type-imports ([#2751](https://github.com/typescript-eslint/typescript-eslint/issues/2751)) ([445e416](https://github.com/typescript-eslint/typescript-eslint/commit/445e416878b27a54bf07c2d3b84dabd7b06e51bc)), closes [#2559](https://github.com/typescript-eslint/typescript-eslint/issues/2559) + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + + +### Bug Fixes + +* **scope-manager:** fix assertion assignments not being marked as write references ([#2809](https://github.com/typescript-eslint/typescript-eslint/issues/2809)) ([fa68492](https://github.com/typescript-eslint/typescript-eslint/commit/fa6849245ca55ca407dc031afbad456f2925a8e9)), closes [#2804](https://github.com/typescript-eslint/typescript-eslint/issues/2804) + + +### Features + +* **eslint-plugin:** [no-unused-vars] fork the base rule ([#2768](https://github.com/typescript-eslint/typescript-eslint/issues/2768)) ([a8227a6](https://github.com/typescript-eslint/typescript-eslint/commit/a8227a6185dd24de4bfc7d766931643871155021)), closes [#2782](https://github.com/typescript-eslint/typescript-eslint/issues/2782) [#2714](https://github.com/typescript-eslint/typescript-eslint/issues/2714) [#2648](https://github.com/typescript-eslint/typescript-eslint/issues/2648) + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + + +### Features + +* support TS4.1 features ([#2748](https://github.com/typescript-eslint/typescript-eslint/issues/2748)) ([2be354b](https://github.com/typescript-eslint/typescript-eslint/commit/2be354bb15f9013a2da1b13a0c0836e9ef057e16)), closes [#2583](https://github.com/typescript-eslint/typescript-eslint/issues/2583) + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + + +### Features + +* **typescript-estree:** add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect ([#2669](https://github.com/typescript-eslint/typescript-eslint/issues/2669)) ([90a5878](https://github.com/typescript-eslint/typescript-eslint/commit/90a587845088da1b205e4d7d77dbc3f9447b1c5a)) + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + + +### Bug Fixes + +* **scope-manager:** don't create a variable for global augmentation ([#2639](https://github.com/typescript-eslint/typescript-eslint/issues/2639)) ([6bc9325](https://github.com/typescript-eslint/typescript-eslint/commit/6bc93257ec876214743a165093b6666d713379f6)) + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + + +### Bug Fixes + +* **scope-manager:** correct analysis of inferred types in conditional types ([#2537](https://github.com/typescript-eslint/typescript-eslint/issues/2537)) ([4f660fd](https://github.com/typescript-eslint/typescript-eslint/commit/4f660fd31acbb88b30719f925dcb2b3022cc2bab)) + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) diff --git a/node_modules/@typescript-eslint/scope-manager/README.md b/node_modules/@typescript-eslint/scope-manager/README.md index 24ccd839df..7671214e8d 100644 --- a/node_modules/@typescript-eslint/scope-manager/README.md +++ b/node_modules/@typescript-eslint/scope-manager/README.md @@ -83,6 +83,12 @@ interface AnalyzeOptions { * The source type of the script. */ sourceType?: 'script' | 'module'; + + /** + * Emit design-type metadata for decorated declarations in source. + * Defaults to `false`. + */ + emitDecoratorMetadata?: boolean; } ``` diff --git a/node_modules/@typescript-eslint/scope-manager/dist/ID.js.map b/node_modules/@typescript-eslint/scope-manager/dist/ID.js.map index ec2b09d010..cdbd46597f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/ID.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/ID.js.map @@ -1 +1 @@ -{"version":3,"file":"ID.js","sourceRoot":"","sources":["../src/ID.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,SAAS,iBAAiB;IACxB,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAErB,OAAO,GAAW,EAAE;;QAClB,MAAM,OAAO,SAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAMQ,8CAAiB;AAJ1B,SAAS,QAAQ;IACf,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAE2B,4BAAQ"} \ No newline at end of file +{"version":3,"file":"ID.js","sourceRoot":"","sources":["../src/ID.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,SAAS,iBAAiB;IACxB,MAAM,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAErB,OAAO,GAAW,EAAE;;QAClB,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAMQ,8CAAiB;AAJ1B,SAAS,QAAQ;IACf,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAE2B,4BAAQ"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js b/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js index 96567915d2..0d9426745c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js @@ -1,30 +1,28 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _options; +var _ScopeManager_options; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScopeManager = void 0; const assert_1 = require("./assert"); const scope_1 = require("./scope"); class ScopeManager { constructor(options) { - _options.set(this, void 0); + _ScopeManager_options.set(this, void 0); this.scopes = []; this.globalScope = null; this.nodeToScope = new WeakMap(); this.currentScope = null; - __classPrivateFieldSet(this, _options, options); + __classPrivateFieldSet(this, _ScopeManager_options, options, "f"); this.declaredVariables = new WeakMap(); } get variables() { @@ -37,19 +35,19 @@ class ScopeManager { return Array.from(variables).sort((a, b) => a.$id - b.$id); } isGlobalReturn() { - return __classPrivateFieldGet(this, _options).globalReturn === true; + return __classPrivateFieldGet(this, _ScopeManager_options, "f").globalReturn === true; } isModule() { - return __classPrivateFieldGet(this, _options).sourceType === 'module'; + return __classPrivateFieldGet(this, _ScopeManager_options, "f").sourceType === 'module'; } isImpliedStrict() { - return __classPrivateFieldGet(this, _options).impliedStrict === true; + return __classPrivateFieldGet(this, _ScopeManager_options, "f").impliedStrict === true; } isStrictModeSupported() { - return __classPrivateFieldGet(this, _options).ecmaVersion != null && __classPrivateFieldGet(this, _options).ecmaVersion >= 5; + return __classPrivateFieldGet(this, _ScopeManager_options, "f").ecmaVersion != null && __classPrivateFieldGet(this, _ScopeManager_options, "f").ecmaVersion >= 5; } isES6() { - return __classPrivateFieldGet(this, _options).ecmaVersion != null && __classPrivateFieldGet(this, _options).ecmaVersion >= 6; + return __classPrivateFieldGet(this, _ScopeManager_options, "f").ecmaVersion != null && __classPrivateFieldGet(this, _ScopeManager_options, "f").ecmaVersion >= 6; } /** * Get the variables that a given AST node defines. The gotten variables' `def[].node`/`def[].parent` property is the node. @@ -177,5 +175,5 @@ class ScopeManager { } } exports.ScopeManager = ScopeManager; -_options = new WeakMap(); +_ScopeManager_options = new WeakMap(); //# sourceMappingURL=ScopeManager.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map b/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map index 2eda4ba8ea..fdccf512c7 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/ScopeManager.js.map @@ -1 +1 @@ -{"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../src/ScopeManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScopeManager.js","sourceRoot":"","sources":["../src/ScopeManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts index 77c03f2a2e..fa23f3492d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts @@ -47,6 +47,11 @@ interface AnalyzeOptions { * The source type of the script. */ sourceType?: 'script' | 'module'; + /** + * Emit design-type metadata for decorated declarations in source. + * Defaults to `false`. + */ + emitDecoratorMetadata?: boolean; } /** * Takes an AST and returns the analyzed scopes. diff --git a/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts.map index ce287b9be3..fb19e0f594 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/analyze.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAc,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,UAAU,cAAc;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAEZ;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAClC;AAwBD;;GAEG;AACH,iBAAS,OAAO,CACd,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,eAAe,CAAC,EAAE,cAAc,GAC/B,YAAY,CA0Bd;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAc,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,UAAU,cAAc;IACtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAEzD;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAEZ;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAEjC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAyBD;;GAEG;AACH,iBAAS,OAAO,CACd,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,eAAe,CAAC,EAAE,cAAc,GAC/B,YAAY,CA6Bd;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/analyze.js b/node_modules/@typescript-eslint/scope-manager/dist/analyze.js index 611b2125f9..903cd95685 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/analyze.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/analyze.js @@ -14,6 +14,7 @@ const DEFAULT_OPTIONS = { jsxFragmentName: null, lib: ['es2018'], sourceType: 'script', + emitDecoratorMetadata: false, }; function mapEcmaVersion(version) { if (version == null || version === 3 || version === 5) { @@ -27,7 +28,7 @@ function mapEcmaVersion(version) { * Takes an AST and returns the analyzed scopes. */ function analyze(tree, providedOptions) { - var _a, _b, _c, _d, _e, _f, _g, _h; + var _a, _b, _c, _d, _e, _f, _g, _h, _j; const ecmaVersion = (_a = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.ecmaVersion) !== null && _a !== void 0 ? _a : DEFAULT_OPTIONS.ecmaVersion; const options = { childVisitorKeys: (_b = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.childVisitorKeys) !== null && _b !== void 0 ? _b : DEFAULT_OPTIONS.childVisitorKeys, @@ -38,6 +39,7 @@ function analyze(tree, providedOptions) { jsxFragmentName: (_f = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.jsxFragmentName) !== null && _f !== void 0 ? _f : DEFAULT_OPTIONS.jsxFragmentName, sourceType: (_g = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.sourceType) !== null && _g !== void 0 ? _g : DEFAULT_OPTIONS.sourceType, lib: (_h = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.lib) !== null && _h !== void 0 ? _h : [mapEcmaVersion(ecmaVersion)], + emitDecoratorMetadata: (_j = providedOptions === null || providedOptions === void 0 ? void 0 : providedOptions.emitDecoratorMetadata) !== null && _j !== void 0 ? _j : DEFAULT_OPTIONS.emitDecoratorMetadata, }; // ensure the option is lower cased options.lib = options.lib.map(l => l.toLowerCase()); diff --git a/node_modules/@typescript-eslint/scope-manager/dist/analyze.js.map b/node_modules/@typescript-eslint/scope-manager/dist/analyze.js.map index dd445117ba..7476d2d4b4 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/analyze.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/analyze.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":";;;AACA,kEAA8D;AAC9D,6CAA6D;AAC7D,iDAA8C;AAC9C,+BAA2C;AA6D3C,MAAM,eAAe,GAA6B;IAChD,gBAAgB,EAAE,0BAAW;IAC7B,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,OAAO;IAClB,eAAe,EAAE,IAAI;IACrB,GAAG,EAAE,CAAC,QAAQ,CAAC;IACf,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF,SAAS,cAAc,CAAC,OAAgC;IACtD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IAED,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;IAExB,OAAO,GAAG,IAAI,SAAW,CAAC,CAAC,CAAE,GAAW,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CACd,IAAmB,EACnB,eAAgC;;IAEhC,MAAM,WAAW,SACf,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,eAAe,CAAC,WAAW,CAAC;IAC9D,MAAM,OAAO,GAA6B;QACxC,gBAAgB,QACd,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,gBAAgB,mCAAI,eAAe,CAAC,gBAAgB;QACvE,WAAW;QACX,YAAY,QAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,mCAAI,eAAe,CAAC,YAAY;QAC3E,aAAa,QACX,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,mCAAI,eAAe,CAAC,aAAa;QACjE,SAAS,QAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,eAAe,CAAC,SAAS;QAClE,eAAe,QACb,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,mCAAI,eAAe,CAAC,eAAe;QACrE,UAAU,QAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,mCAAI,eAAe,CAAC,UAAU;QACrE,GAAG,QAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,GAAG,mCAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC3D,CAAC;IAEF,mCAAmC;IACnC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAS,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEzD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAEQ,0BAAO"} \ No newline at end of file +{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":";;;AACA,kEAA8D;AAC9D,6CAA6D;AAC7D,iDAA8C;AAC9C,+BAA2C;AAmE3C,MAAM,eAAe,GAA6B;IAChD,gBAAgB,EAAE,0BAAW;IAC7B,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,OAAO;IAClB,eAAe,EAAE,IAAI;IACrB,GAAG,EAAE,CAAC,QAAQ,CAAC;IACf,UAAU,EAAE,QAAQ;IACpB,qBAAqB,EAAE,KAAK;CAC7B,CAAC;AAEF,SAAS,cAAc,CAAC,OAAgC;IACtD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IAED,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE,CAAC;IAExB,OAAO,GAAG,IAAI,SAAW,CAAC,CAAC,CAAE,GAAW,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CACd,IAAmB,EACnB,eAAgC;;IAEhC,MAAM,WAAW,GACf,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,eAAe,CAAC,WAAW,CAAC;IAC9D,MAAM,OAAO,GAA6B;QACxC,gBAAgB,EACd,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,gBAAgB,mCAAI,eAAe,CAAC,gBAAgB;QACvE,WAAW;QACX,YAAY,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,mCAAI,eAAe,CAAC,YAAY;QAC3E,aAAa,EACX,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,mCAAI,eAAe,CAAC,aAAa;QACjE,SAAS,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,eAAe,CAAC,SAAS;QAClE,eAAe,EACb,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,mCAAI,eAAe,CAAC,eAAe;QACrE,UAAU,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,mCAAI,eAAe,CAAC,UAAU;QACrE,GAAG,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,GAAG,mCAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAC1D,qBAAqB,EACnB,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,qBAAqB,mCACtC,eAAe,CAAC,qBAAqB;KACxC,CAAC;IAEF,mCAAmC;IACnC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAS,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEzD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvB,OAAO,YAAY,CAAC;AACtB,CAAC;AAEQ,0BAAO"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.d.ts new file mode 100644 index 0000000000..2f836426ac --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.d.ts @@ -0,0 +1,16 @@ +export declare const TYPE: Readonly<{ + eslintImplicitGlobalSetting: string; + isTypeVariable: boolean; + isValueVariable: boolean; +}>; +export declare const VALUE: Readonly<{ + eslintImplicitGlobalSetting: string; + isTypeVariable: boolean; + isValueVariable: boolean; +}>; +export declare const TYPE_VALUE: Readonly<{ + eslintImplicitGlobalSetting: string; + isTypeVariable: boolean; + isValueVariable: boolean; +}>; +//# sourceMappingURL=base-config.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.d.ts.map new file mode 100644 index 0000000000..66399a9e8d --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"base-config.d.ts","sourceRoot":"","sources":["../../src/lib/base-config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,IAAI;;;;EAIf,CAAC;AACH,eAAO,MAAM,KAAK;;;;EAIhB,CAAC;AACH,eAAO,MAAM,UAAU;;;;EAIrB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js new file mode 100644 index 0000000000..5d0fb28d47 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js @@ -0,0 +1,22 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TYPE_VALUE = exports.VALUE = exports.TYPE = void 0; +exports.TYPE = Object.freeze({ + eslintImplicitGlobalSetting: 'readonly', + isTypeVariable: true, + isValueVariable: false, +}); +exports.VALUE = Object.freeze({ + eslintImplicitGlobalSetting: 'readonly', + isTypeVariable: false, + isValueVariable: true, +}); +exports.TYPE_VALUE = Object.freeze({ + eslintImplicitGlobalSetting: 'readonly', + isTypeVariable: true, + isValueVariable: true, +}); +//# sourceMappingURL=base-config.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js.map new file mode 100644 index 0000000000..ed3a67f50a --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/base-config.js.map @@ -0,0 +1 @@ +{"version":3,"file":"base-config.js","sourceRoot":"","sources":["../../src/lib/base-config.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAEnC,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,2BAA2B,EAAE,UAAU;IACvC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;CACvB,CAAC,CAAC;AACU,QAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,2BAA2B,EAAE,UAAU;IACvC,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AACU,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,2BAA2B,EAAE,UAAU;IACvC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map index 253949e5ad..c39fddafcf 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/lib/dom.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,GAAG,4CA+tP+B,CAAC"} \ No newline at end of file +{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/lib/dom.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,GAAG,4CAuxC+B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map index ce174d2db3..cbecef8a64 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"dom.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,YAAY,4CAyTsB,CAAC"} \ No newline at end of file +{"version":3,"file":"dom.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,YAAY,4CAqDsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js index b1d6e449df..0ac2dbb643 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js @@ -4,318 +4,59 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.dom_iterable = void 0; +const base_config_1 = require("./base-config"); exports.dom_iterable = { - AudioParam: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioParam', - }, - AudioParamMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioParamMap', - }, - BaseAudioContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BaseAudioContext', - }, - CSSRuleList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CSSRuleList', - }, - CSSStyleDeclaration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CSSStyleDeclaration', - }, - Cache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Cache', - }, - CanvasPathDrawingStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasPathDrawingStyles', - }, - ClientRectList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClientRectList', - }, - DOMRectList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMRectList', - }, - DOMStringList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMStringList', - }, - DOMTokenList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMTokenList', - }, - DataTransferItemList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DataTransferItemList', - }, - FileList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FileList', - }, - FormData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FormData', - }, - HTMLAllCollection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLAllCollection', - }, - HTMLCollectionBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLCollectionBase', - }, - HTMLCollectionOf: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLCollectionOf', - }, - HTMLFormElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLFormElement', - }, - HTMLSelectElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLSelectElement', - }, - Headers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Headers', - }, - IDBObjectStore: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBObjectStore', - }, - MediaKeyStatusMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeyStatusMap', - }, - MediaList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaList', - }, - MimeTypeArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MimeTypeArray', - }, - NamedNodeMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NamedNodeMap', - }, - Navigator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Navigator', - }, - NodeList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NodeList', - }, - NodeListOf: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NodeListOf', - }, - Plugin: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Plugin', - }, - PluginArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PluginArray', - }, - RTCRtpTransceiver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpTransceiver', - }, - RTCStatsReport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStatsReport', - }, - SVGLengthList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGLengthList', - }, - SVGNumberList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGNumberList', - }, - SVGPointList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGPointList', - }, - SVGStringList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGStringList', - }, - SourceBufferList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SourceBufferList', - }, - SpeechGrammarList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechGrammarList', - }, - SpeechRecognitionResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechRecognitionResult', - }, - SpeechRecognitionResultList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechRecognitionResultList', - }, - StyleSheetList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StyleSheetList', - }, - TextTrackCueList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackCueList', - }, - TextTrackList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackList', - }, - TouchList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TouchList', - }, - URLSearchParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'URLSearchParams', - }, - VRDisplay: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VRDisplay', - }, - WEBGL_draw_buffers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_draw_buffers', - }, - WebAuthentication: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebAuthentication', - }, - WebGL2RenderingContextBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGL2RenderingContextBase', - }, - WebGL2RenderingContextOverloads: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGL2RenderingContextOverloads', - }, - WebGLRenderingContextBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLRenderingContextBase', - }, - WebGLRenderingContextOverloads: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLRenderingContextOverloads', - }, + AudioParam: base_config_1.TYPE, + AudioParamMap: base_config_1.TYPE, + BaseAudioContext: base_config_1.TYPE, + CSSRuleList: base_config_1.TYPE, + CSSStyleDeclaration: base_config_1.TYPE, + Cache: base_config_1.TYPE, + CanvasPathDrawingStyles: base_config_1.TYPE, + ClientRectList: base_config_1.TYPE, + DOMRectList: base_config_1.TYPE, + DOMStringList: base_config_1.TYPE, + DOMTokenList: base_config_1.TYPE, + DataTransferItemList: base_config_1.TYPE, + FileList: base_config_1.TYPE, + FormData: base_config_1.TYPE, + HTMLAllCollection: base_config_1.TYPE, + HTMLCollectionBase: base_config_1.TYPE, + HTMLCollectionOf: base_config_1.TYPE, + HTMLFormElement: base_config_1.TYPE, + HTMLSelectElement: base_config_1.TYPE, + Headers: base_config_1.TYPE, + IDBDatabase: base_config_1.TYPE, + IDBObjectStore: base_config_1.TYPE, + MediaKeyStatusMap: base_config_1.TYPE, + MediaList: base_config_1.TYPE, + MimeTypeArray: base_config_1.TYPE, + NamedNodeMap: base_config_1.TYPE, + Navigator: base_config_1.TYPE, + NodeList: base_config_1.TYPE, + NodeListOf: base_config_1.TYPE, + Plugin: base_config_1.TYPE, + PluginArray: base_config_1.TYPE, + RTCRtpTransceiver: base_config_1.TYPE, + RTCStatsReport: base_config_1.TYPE, + SVGLengthList: base_config_1.TYPE, + SVGNumberList: base_config_1.TYPE, + SVGPointList: base_config_1.TYPE, + SVGStringList: base_config_1.TYPE, + SourceBufferList: base_config_1.TYPE, + SpeechGrammarList: base_config_1.TYPE, + SpeechRecognitionResult: base_config_1.TYPE, + SpeechRecognitionResultList: base_config_1.TYPE, + StyleSheetList: base_config_1.TYPE, + TextTrackCueList: base_config_1.TYPE, + TextTrackList: base_config_1.TYPE, + TouchList: base_config_1.TYPE, + URLSearchParams: base_config_1.TYPE, + VRDisplay: base_config_1.TYPE, + WEBGL_draw_buffers: base_config_1.TYPE, + WebGL2RenderingContextBase: base_config_1.TYPE, + WebGL2RenderingContextOverloads: base_config_1.TYPE, + WebGLRenderingContextBase: base_config_1.TYPE, + WebGLRenderingContextOverloads: base_config_1.TYPE, }; //# sourceMappingURL=dom.iterable.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map index 5a59418f34..7c0612f4e8 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.iterable.js.map @@ -1 +1 @@ -{"version":3,"file":"dom.iterable.js","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dom.iterable.js","sourceRoot":"","sources":["../../src/lib/dom.iterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,YAAY,GAAG;IAC1B,UAAU,EAAE,kBAAI;IAChB,aAAa,EAAE,kBAAI;IACnB,gBAAgB,EAAE,kBAAI;IACtB,WAAW,EAAE,kBAAI;IACjB,mBAAmB,EAAE,kBAAI;IACzB,KAAK,EAAE,kBAAI;IACX,uBAAuB,EAAE,kBAAI;IAC7B,cAAc,EAAE,kBAAI;IACpB,WAAW,EAAE,kBAAI;IACjB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,oBAAoB,EAAE,kBAAI;IAC1B,QAAQ,EAAE,kBAAI;IACd,QAAQ,EAAE,kBAAI;IACd,iBAAiB,EAAE,kBAAI;IACvB,kBAAkB,EAAE,kBAAI;IACxB,gBAAgB,EAAE,kBAAI;IACtB,eAAe,EAAE,kBAAI;IACrB,iBAAiB,EAAE,kBAAI;IACvB,OAAO,EAAE,kBAAI;IACb,WAAW,EAAE,kBAAI;IACjB,cAAc,EAAE,kBAAI;IACpB,iBAAiB,EAAE,kBAAI;IACvB,SAAS,EAAE,kBAAI;IACf,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,SAAS,EAAE,kBAAI;IACf,QAAQ,EAAE,kBAAI;IACd,UAAU,EAAE,kBAAI;IAChB,MAAM,EAAE,kBAAI;IACZ,WAAW,EAAE,kBAAI;IACjB,iBAAiB,EAAE,kBAAI;IACvB,cAAc,EAAE,kBAAI;IACpB,aAAa,EAAE,kBAAI;IACnB,aAAa,EAAE,kBAAI;IACnB,YAAY,EAAE,kBAAI;IAClB,aAAa,EAAE,kBAAI;IACnB,gBAAgB,EAAE,kBAAI;IACtB,iBAAiB,EAAE,kBAAI;IACvB,uBAAuB,EAAE,kBAAI;IAC7B,2BAA2B,EAAE,kBAAI;IACjC,cAAc,EAAE,kBAAI;IACpB,gBAAgB,EAAE,kBAAI;IACtB,aAAa,EAAE,kBAAI;IACnB,SAAS,EAAE,kBAAI;IACf,eAAe,EAAE,kBAAI;IACrB,SAAS,EAAE,kBAAI;IACf,kBAAkB,EAAE,kBAAI;IACxB,0BAA0B,EAAE,kBAAI;IAChC,+BAA+B,EAAE,kBAAI;IACrC,yBAAyB,EAAE,kBAAI;IAC/B,8BAA8B,EAAE,kBAAI;CACS,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js index 7ebfe9f34b..8eafd77e77 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js @@ -4,7908 +4,1309 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.dom = void 0; +const base_config_1 = require("./base-config"); exports.dom = { - Account: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Account', - }, - AddEventListenerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AddEventListenerOptions', - }, - AesCbcParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCbcParams', - }, - AesCtrParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCtrParams', - }, - AesDerivedKeyParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesDerivedKeyParams', - }, - AesGcmParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesGcmParams', - }, - AesKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesKeyAlgorithm', - }, - AesKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesKeyGenParams', - }, - Algorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Algorithm', - }, - AnalyserOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnalyserOptions', - }, - AnimationEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnimationEventInit', - }, - AnimationPlaybackEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnimationPlaybackEventInit', - }, - AssertionOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AssertionOptions', - }, - AssignedNodesOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AssignedNodesOptions', - }, - AudioBufferOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioBufferOptions', - }, - AudioBufferSourceOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioBufferSourceOptions', - }, - AudioContextInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioContextInfo', - }, - AudioContextOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioContextOptions', - }, - AudioNodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioNodeOptions', - }, - AudioParamDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioParamDescriptor', - }, - AudioProcessingEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioProcessingEventInit', - }, - AudioTimestamp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioTimestamp', - }, - AudioWorkletNodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioWorkletNodeOptions', - }, - AuthenticationExtensionsClientInputs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticationExtensionsClientInputs', - }, - AuthenticationExtensionsClientOutputs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticationExtensionsClientOutputs', - }, - AuthenticatorSelectionCriteria: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticatorSelectionCriteria', - }, - BiquadFilterOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BiquadFilterOptions', - }, - BlobPropertyBag: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BlobPropertyBag', - }, - ByteLengthChunk: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ByteLengthChunk', - }, - CacheQueryOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CacheQueryOptions', - }, - CanvasRenderingContext2DSettings: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasRenderingContext2DSettings', - }, - ChannelMergerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ChannelMergerOptions', - }, - ChannelSplitterOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ChannelSplitterOptions', - }, - ClientData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClientData', - }, - ClientQueryOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClientQueryOptions', - }, - ClipboardEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClipboardEventInit', - }, - CloseEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CloseEventInit', - }, - CompositionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CompositionEventInit', - }, - ComputedEffectTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ComputedEffectTiming', - }, - ComputedKeyframe: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ComputedKeyframe', - }, - ConfirmSiteSpecificExceptionsInformation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConfirmSiteSpecificExceptionsInformation', - }, - ConstantSourceOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstantSourceOptions', - }, - ConstrainBooleanParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainBooleanParameters', - }, - ConstrainDOMStringParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainDOMStringParameters', - }, - ConstrainDoubleRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainDoubleRange', - }, - ConstrainULongRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainULongRange', - }, - ConstrainVideoFacingModeParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainVideoFacingModeParameters', - }, - ConvolverOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConvolverOptions', - }, - CredentialCreationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CredentialCreationOptions', - }, - CredentialRequestOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CredentialRequestOptions', - }, - CustomEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CustomEventInit', - }, - DOMMatrix2DInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMMatrix2DInit', - }, - DOMMatrixInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMMatrixInit', - }, - DOMPointInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMPointInit', - }, - DOMQuadInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMQuadInit', - }, - DOMRectInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMRectInit', - }, - DelayOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DelayOptions', - }, - DeviceLightEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceLightEventInit', - }, - DeviceMotionEventAccelerationInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceMotionEventAccelerationInit', - }, - DeviceMotionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceMotionEventInit', - }, - DeviceMotionEventRotationRateInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceMotionEventRotationRateInit', - }, - DeviceOrientationEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceOrientationEventInit', - }, - DevicePermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DevicePermissionDescriptor', - }, - DocumentTimelineOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentTimelineOptions', - }, - DoubleRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DoubleRange', - }, - DragEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DragEventInit', - }, - DynamicsCompressorOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DynamicsCompressorOptions', - }, - EcKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcKeyAlgorithm', - }, - EcKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcKeyGenParams', - }, - EcKeyImportParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcKeyImportParams', - }, - EcdhKeyDeriveParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcdhKeyDeriveParams', - }, - EcdsaParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcdsaParams', - }, - EffectTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EffectTiming', - }, - ElementCreationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ElementCreationOptions', - }, - ElementDefinitionOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ElementDefinitionOptions', - }, - ErrorEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ErrorEventInit', - }, - EventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventInit', - }, - EventListenerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListenerOptions', - }, - EventModifierInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventModifierInit', - }, - EventSourceInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventSourceInit', - }, - ExceptionInformation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ExceptionInformation', - }, - FilePropertyBag: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FilePropertyBag', - }, - FocusEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FocusEventInit', - }, - FocusNavigationEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FocusNavigationEventInit', - }, - FocusNavigationOrigin: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FocusNavigationOrigin', - }, - FocusOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FocusOptions', - }, - FullscreenOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FullscreenOptions', - }, - GainOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GainOptions', - }, - GamepadEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GamepadEventInit', - }, - GetNotificationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GetNotificationOptions', - }, - GetRootNodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GetRootNodeOptions', - }, - HashChangeEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HashChangeEventInit', - }, - HkdfParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HkdfParams', - }, - HmacImportParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HmacImportParams', - }, - HmacKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HmacKeyAlgorithm', - }, - HmacKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HmacKeyGenParams', - }, - IDBIndexParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBIndexParameters', - }, - IDBObjectStoreParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBObjectStoreParameters', - }, - IDBVersionChangeEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBVersionChangeEventInit', - }, - IIRFilterOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IIRFilterOptions', - }, - ImageBitmapOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageBitmapOptions', - }, - ImageBitmapRenderingContextSettings: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageBitmapRenderingContextSettings', - }, - ImageEncodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageEncodeOptions', - }, - InputEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'InputEventInit', - }, - IntersectionObserverEntryInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IntersectionObserverEntryInit', - }, - IntersectionObserverInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IntersectionObserverInit', - }, - JsonWebKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'JsonWebKey', - }, - KeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyAlgorithm', - }, - KeyboardEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyboardEventInit', - }, - Keyframe: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Keyframe', - }, - KeyframeAnimationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyframeAnimationOptions', - }, - KeyframeEffectOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyframeEffectOptions', - }, - MediaElementAudioSourceOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaElementAudioSourceOptions', - }, - MediaEncryptedEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaEncryptedEventInit', - }, - MediaKeyMessageEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeyMessageEventInit', - }, - MediaKeySystemConfiguration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeySystemConfiguration', - }, - MediaKeySystemMediaCapability: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeySystemMediaCapability', - }, - MediaQueryListEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaQueryListEventInit', - }, - MediaStreamAudioSourceOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamAudioSourceOptions', - }, - MediaStreamConstraints: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamConstraints', - }, - MediaStreamErrorEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamErrorEventInit', - }, - MediaStreamEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamEventInit', - }, - MediaStreamTrackAudioSourceOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamTrackAudioSourceOptions', - }, - MediaStreamTrackEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamTrackEventInit', - }, - MediaTrackCapabilities: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaTrackCapabilities', - }, - MediaTrackConstraintSet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaTrackConstraintSet', - }, - MediaTrackConstraints: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaTrackConstraints', - }, - MediaTrackSettings: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaTrackSettings', - }, - MediaTrackSupportedConstraints: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaTrackSupportedConstraints', - }, - MessageEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MessageEventInit', - }, - MidiPermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MidiPermissionDescriptor', - }, - MouseEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MouseEventInit', - }, - MultiCacheQueryOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MultiCacheQueryOptions', - }, - MutationObserverInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MutationObserverInit', - }, - NavigationPreloadState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigationPreloadState', - }, - NotificationAction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationAction', - }, - NotificationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationOptions', - }, - OfflineAudioCompletionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OfflineAudioCompletionEventInit', - }, - OfflineAudioContextOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OfflineAudioContextOptions', - }, - OptionalEffectTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OptionalEffectTiming', - }, - OscillatorOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OscillatorOptions', - }, - PageTransitionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PageTransitionEventInit', - }, - PannerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PannerOptions', - }, - PaymentCurrencyAmount: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentCurrencyAmount', - }, - PaymentDetailsBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentDetailsBase', - }, - PaymentDetailsInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentDetailsInit', - }, - PaymentDetailsModifier: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentDetailsModifier', - }, - PaymentDetailsUpdate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentDetailsUpdate', - }, - PaymentItem: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentItem', - }, - PaymentMethodData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentMethodData', - }, - PaymentOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentOptions', - }, - PaymentRequestUpdateEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentRequestUpdateEventInit', - }, - PaymentShippingOption: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentShippingOption', - }, - Pbkdf2Params: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Pbkdf2Params', - }, - PerformanceObserverInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceObserverInit', - }, - PeriodicWaveConstraints: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PeriodicWaveConstraints', - }, - PeriodicWaveOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PeriodicWaveOptions', - }, - PermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionDescriptor', - }, - PipeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PipeOptions', - }, - PointerEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PointerEventInit', - }, - PopStateEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PopStateEventInit', - }, - PositionOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PositionOptions', - }, - PostMessageOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PostMessageOptions', - }, - ProgressEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ProgressEventInit', - }, - PromiseRejectionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseRejectionEventInit', - }, - PropertyIndexedKeyframes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PropertyIndexedKeyframes', - }, - PublicKeyCredentialCreationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialCreationOptions', - }, - PublicKeyCredentialDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialDescriptor', - }, - PublicKeyCredentialEntity: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialEntity', - }, - PublicKeyCredentialParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialParameters', - }, - PublicKeyCredentialRequestOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialRequestOptions', - }, - PublicKeyCredentialRpEntity: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialRpEntity', - }, - PublicKeyCredentialUserEntity: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialUserEntity', - }, - PushPermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushPermissionDescriptor', - }, - PushSubscriptionJSON: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushSubscriptionJSON', - }, - PushSubscriptionOptionsInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushSubscriptionOptionsInit', - }, - QueuingStrategy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'QueuingStrategy', - }, - RTCAnswerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCAnswerOptions', - }, - RTCCertificateExpiration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCCertificateExpiration', - }, - RTCConfiguration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCConfiguration', - }, - RTCDTMFToneChangeEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDTMFToneChangeEventInit', - }, - RTCDataChannelEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDataChannelEventInit', - }, - RTCDataChannelInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDataChannelInit', - }, - RTCDtlsFingerprint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtlsFingerprint', - }, - RTCDtlsParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtlsParameters', - }, - RTCErrorEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCErrorEventInit', - }, - RTCErrorInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCErrorInit', - }, - RTCIceCandidateAttributes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidateAttributes', - }, - RTCIceCandidateComplete: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidateComplete', - }, - RTCIceCandidateDictionary: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidateDictionary', - }, - RTCIceCandidateInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidateInit', - }, - RTCIceCandidatePair: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidatePair', - }, - RTCIceCandidatePairStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidatePairStats', - }, - RTCIceGatherOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceGatherOptions', - }, - RTCIceParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceParameters', - }, - RTCIceServer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceServer', - }, - RTCIdentityProviderOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIdentityProviderOptions', - }, - RTCInboundRTPStreamStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCInboundRTPStreamStats', - }, - RTCMediaStreamTrackStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCMediaStreamTrackStats', - }, - RTCOAuthCredential: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCOAuthCredential', - }, - RTCOfferAnswerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCOfferAnswerOptions', - }, - RTCOfferOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCOfferOptions', - }, - RTCOutboundRTPStreamStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCOutboundRTPStreamStats', - }, - RTCPeerConnectionIceErrorEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCPeerConnectionIceErrorEventInit', - }, - RTCPeerConnectionIceEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCPeerConnectionIceEventInit', - }, - RTCRTPStreamStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRTPStreamStats', - }, - RTCRtcpFeedback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtcpFeedback', - }, - RTCRtcpParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtcpParameters', - }, - RTCRtpCapabilities: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpCapabilities', - }, - RTCRtpCodecCapability: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpCodecCapability', - }, - RTCRtpCodecParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpCodecParameters', - }, - RTCRtpCodingParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpCodingParameters', - }, - RTCRtpContributingSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpContributingSource', - }, - RTCRtpDecodingParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpDecodingParameters', - }, - RTCRtpEncodingParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpEncodingParameters', - }, - RTCRtpFecParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpFecParameters', - }, - RTCRtpHeaderExtension: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpHeaderExtension', - }, - RTCRtpHeaderExtensionCapability: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpHeaderExtensionCapability', - }, - RTCRtpHeaderExtensionParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpHeaderExtensionParameters', - }, - RTCRtpParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpParameters', - }, - RTCRtpReceiveParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpReceiveParameters', - }, - RTCRtpRtxParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpRtxParameters', - }, - RTCRtpSendParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpSendParameters', - }, - RTCRtpSynchronizationSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpSynchronizationSource', - }, - RTCRtpTransceiverInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpTransceiverInit', - }, - RTCRtpUnhandled: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpUnhandled', - }, - RTCSessionDescriptionInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSessionDescriptionInit', - }, - RTCSrtpKeyParam: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSrtpKeyParam', - }, - RTCSrtpSdesParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSrtpSdesParameters', - }, - RTCSsrcRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSsrcRange', - }, - RTCStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStats', - }, - RTCStatsEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStatsEventInit', - }, - RTCStatsReport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCStatsReport', - }, - RTCTrackEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCTrackEventInit', - }, - RTCTransportStats: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCTransportStats', - }, - ReadableStreamReadDoneResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamReadDoneResult', - }, - ReadableStreamReadValueResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamReadValueResult', - }, - RegistrationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegistrationOptions', - }, - RequestInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestInit', - }, - ResponseInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ResponseInit', - }, - RsaHashedImportParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaHashedImportParams', - }, - RsaHashedKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaHashedKeyAlgorithm', - }, - RsaHashedKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaHashedKeyGenParams', - }, - RsaKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaKeyAlgorithm', - }, - RsaKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaKeyGenParams', - }, - RsaOaepParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaOaepParams', - }, - RsaOtherPrimesInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaOtherPrimesInfo', - }, - RsaPssParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaPssParams', - }, - SVGBoundingBoxOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGBoundingBoxOptions', - }, - ScopedCredentialDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScopedCredentialDescriptor', - }, - ScopedCredentialOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScopedCredentialOptions', - }, - ScopedCredentialParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScopedCredentialParameters', - }, - ScrollIntoViewOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollIntoViewOptions', - }, - ScrollOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollOptions', - }, - ScrollToOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollToOptions', - }, - SecurityPolicyViolationEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SecurityPolicyViolationEventInit', - }, - ServiceWorkerMessageEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerMessageEventInit', - }, - ShadowRootInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ShadowRootInit', - }, - ShareData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ShareData', - }, - SpeechSynthesisErrorEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechSynthesisErrorEventInit', - }, - SpeechSynthesisEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechSynthesisEventInit', - }, - StaticRangeInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StaticRangeInit', - }, - StereoPannerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StereoPannerOptions', - }, - StorageEstimate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StorageEstimate', - }, - StorageEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StorageEventInit', - }, - StoreExceptionsInformation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StoreExceptionsInformation', - }, - StoreSiteSpecificExceptionsInformation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StoreSiteSpecificExceptionsInformation', - }, - TextDecodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextDecodeOptions', - }, - TextDecoderOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextDecoderOptions', - }, - TextEncoderEncodeIntoResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextEncoderEncodeIntoResult', - }, - TouchEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TouchEventInit', - }, - TouchInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TouchInit', - }, - TrackEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TrackEventInit', - }, - Transformer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Transformer', - }, - TransitionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransitionEventInit', - }, - UIEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UIEventInit', - }, - ULongRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ULongRange', - }, - UnderlyingByteSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UnderlyingByteSource', - }, - UnderlyingSink: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UnderlyingSink', - }, - UnderlyingSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UnderlyingSource', - }, - VRDisplayEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VRDisplayEventInit', - }, - VRLayer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VRLayer', - }, - VRStageParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VRStageParameters', - }, - WaveShaperOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WaveShaperOptions', - }, - WebAuthnExtensions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebAuthnExtensions', - }, - WebGLContextAttributes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLContextAttributes', - }, - WebGLContextEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLContextEventInit', - }, - WheelEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WheelEventInit', - }, - WorkerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerOptions', - }, - WorkletOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkletOptions', - }, - txAuthGenericArg: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'txAuthGenericArg', - }, - EventListener: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListener', - }, - XPathNSResolver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XPathNSResolver', - }, - ANGLE_instanced_arrays: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ANGLE_instanced_arrays', - }, - AbortController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AbortController', - }, - AbortSignalEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AbortSignalEventMap', - }, - AbortSignal: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AbortSignal', - }, - AbstractRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AbstractRange', - }, - AbstractWorkerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AbstractWorkerEventMap', - }, - AbstractWorker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AbstractWorker', - }, - AesCfbParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCfbParams', - }, - AesCmacParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCmacParams', - }, - AnalyserNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AnalyserNode', - }, - Animatable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Animatable', - }, - AnimationEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnimationEventMap', - }, - Animation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Animation', - }, - AnimationEffect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AnimationEffect', - }, - AnimationEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AnimationEvent', - }, - AnimationFrameProvider: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnimationFrameProvider', - }, - AnimationPlaybackEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AnimationPlaybackEvent', - }, - AnimationTimeline: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AnimationTimeline', - }, - ApplicationCacheEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ApplicationCacheEventMap', - }, - ApplicationCache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ApplicationCache', - }, - Attr: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Attr', - }, - AudioBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioBuffer', - }, - AudioBufferSourceNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioBufferSourceNode', - }, - AudioContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioContext', - }, - AudioDestinationNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioDestinationNode', - }, - AudioListener: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioListener', - }, - AudioNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioNode', - }, - AudioParam: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioParam', - }, - AudioParamMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioParamMap', - }, - AudioProcessingEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioProcessingEvent', - }, - AudioScheduledSourceNodeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioScheduledSourceNodeEventMap', - }, - AudioScheduledSourceNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioScheduledSourceNode', - }, - AudioWorklet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioWorklet', - }, - AudioWorkletNodeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioWorkletNodeEventMap', - }, - AudioWorkletNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AudioWorkletNode', - }, - AuthenticatorAssertionResponse: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AuthenticatorAssertionResponse', - }, - AuthenticatorAttestationResponse: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AuthenticatorAttestationResponse', - }, - AuthenticatorResponse: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AuthenticatorResponse', - }, - BarProp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BarProp', - }, - BaseAudioContextEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BaseAudioContextEventMap', - }, - BaseAudioContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BaseAudioContext', - }, - BeforeUnloadEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BeforeUnloadEvent', - }, - BhxBrowser: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BhxBrowser', - }, - BiquadFilterNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BiquadFilterNode', - }, - Blob: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Blob', - }, - Body: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Body', - }, - BroadcastChannelEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BroadcastChannelEventMap', - }, - BroadcastChannel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BroadcastChannel', - }, - ByteLengthQueuingStrategy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ByteLengthQueuingStrategy', - }, - CDATASection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CDATASection', - }, - CSSConditionRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSConditionRule', - }, - CSSFontFaceRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSFontFaceRule', - }, - CSSGroupingRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSGroupingRule', - }, - CSSImportRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSImportRule', - }, - CSSKeyframeRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSKeyframeRule', - }, - CSSKeyframesRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSKeyframesRule', - }, - CSSMediaRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSMediaRule', - }, - CSSNamespaceRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSNamespaceRule', - }, - CSSPageRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSPageRule', - }, - CSSRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSRule', - }, - CSSRuleList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSRuleList', - }, - CSSStyleDeclaration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSStyleDeclaration', - }, - CSSStyleRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSStyleRule', - }, - CSSStyleSheet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSStyleSheet', - }, - CSSSupportsRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSSSupportsRule', - }, - Cache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Cache', - }, - CacheStorage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CacheStorage', - }, - CanvasCompositing: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasCompositing', - }, - CanvasDrawImage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasDrawImage', - }, - CanvasDrawPath: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasDrawPath', - }, - CanvasFillStrokeStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasFillStrokeStyles', - }, - CanvasFilters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasFilters', - }, - CanvasGradient: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CanvasGradient', - }, - CanvasImageData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasImageData', - }, - CanvasImageSmoothing: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasImageSmoothing', - }, - CanvasPath: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasPath', - }, - CanvasPathDrawingStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasPathDrawingStyles', - }, - CanvasPattern: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CanvasPattern', - }, - CanvasRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasRect', - }, - CanvasRenderingContext2D: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CanvasRenderingContext2D', - }, - CanvasShadowStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasShadowStyles', - }, - CanvasState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasState', - }, - CanvasText: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasText', - }, - CanvasTextDrawingStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTextDrawingStyles', - }, - CanvasTransform: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTransform', - }, - CanvasUserInterface: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasUserInterface', - }, - CaretPosition: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CaretPosition', - }, - ChannelMergerNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ChannelMergerNode', - }, - ChannelSplitterNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ChannelSplitterNode', - }, - CharacterData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CharacterData', - }, - ChildNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ChildNode', - }, - ClientRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ClientRect', - }, - ClientRectList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ClientRectList', - }, - Clipboard: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Clipboard', - }, - ClipboardEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ClipboardEvent', - }, - CloseEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CloseEvent', - }, - Comment: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Comment', - }, - CompositionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CompositionEvent', - }, - ConcatParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConcatParams', - }, - ConstantSourceNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ConstantSourceNode', - }, - ConvolverNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ConvolverNode', - }, - Coordinates: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Coordinates', - }, - CountQueuingStrategy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CountQueuingStrategy', - }, - Credential: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Credential', - }, - CredentialsContainer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CredentialsContainer', - }, - Crypto: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Crypto', - }, - CryptoKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CryptoKey', - }, - CryptoKeyPair: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CryptoKeyPair', - }, - CustomElementRegistry: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CustomElementRegistry', - }, - CustomEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CustomEvent', - }, - DOMError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMError', - }, - DOMException: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMException', - }, - DOMImplementation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMImplementation', - }, - DOML2DeprecatedColorProperty: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOML2DeprecatedColorProperty', - }, - DOMMatrix: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMMatrix', - }, - SVGMatrix: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGMatrix', - }, - WebKitCSSMatrix: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebKitCSSMatrix', - }, - DOMMatrixReadOnly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMMatrixReadOnly', - }, - DOMParser: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMParser', - }, - DOMPoint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMPoint', - }, - SVGPoint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPoint', - }, - DOMPointReadOnly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMPointReadOnly', - }, - DOMQuad: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMQuad', - }, - DOMRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMRect', - }, - SVGRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGRect', - }, - DOMRectList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMRectList', - }, - DOMRectReadOnly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMRectReadOnly', - }, - DOMSettableTokenList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMSettableTokenList', - }, - DOMStringList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMStringList', - }, - DOMStringMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMStringMap', - }, - DOMTokenList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMTokenList', - }, - DataCue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DataCue', - }, - DataTransfer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DataTransfer', - }, - DataTransferItem: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DataTransferItem', - }, - DataTransferItemList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DataTransferItemList', - }, - DeferredPermissionRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DeferredPermissionRequest', - }, - DelayNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DelayNode', - }, - DeviceAcceleration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DeviceAcceleration', - }, - DeviceLightEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DeviceLightEvent', - }, - DeviceMotionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DeviceMotionEvent', - }, - DeviceMotionEventAcceleration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceMotionEventAcceleration', - }, - DeviceMotionEventRotationRate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DeviceMotionEventRotationRate', - }, - DeviceOrientationEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DeviceOrientationEvent', - }, - DeviceRotationRate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DeviceRotationRate', - }, - DhImportKeyParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhImportKeyParams', - }, - DhKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhKeyAlgorithm', - }, - DhKeyDeriveParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhKeyDeriveParams', - }, - DhKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhKeyGenParams', - }, - DocumentEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentEventMap', - }, - Document: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Document', - }, - DocumentAndElementEventHandlersEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentAndElementEventHandlersEventMap', - }, - DocumentAndElementEventHandlers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentAndElementEventHandlers', - }, - DocumentEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentEvent', - }, - DocumentFragment: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DocumentFragment', - }, - DocumentOrShadowRoot: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentOrShadowRoot', - }, - DocumentTimeline: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DocumentTimeline', - }, - DocumentType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DocumentType', - }, - DragEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DragEvent', - }, - DynamicsCompressorNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DynamicsCompressorNode', - }, - EXT_blend_minmax: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_blend_minmax', - }, - EXT_frag_depth: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_frag_depth', - }, - EXT_sRGB: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_sRGB', - }, - EXT_shader_texture_lod: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_shader_texture_lod', - }, - EXT_texture_filter_anisotropic: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_texture_filter_anisotropic', - }, - ElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ElementEventMap', - }, - Element: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Element', - }, - ElementCSSInlineStyle: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ElementCSSInlineStyle', - }, - ElementContentEditable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ElementContentEditable', - }, - ErrorEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ErrorEvent', - }, - Event: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Event', - }, - EventListenerObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListenerObject', - }, - EventSourceEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventSourceEventMap', - }, - EventSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'EventSource', - }, - EventTarget: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'EventTarget', - }, - ExtensionScriptApis: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ExtensionScriptApis', - }, - External: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'External', - }, - File: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'File', - }, - FileList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FileList', - }, - FileReaderEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FileReaderEventMap', - }, - FileReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FileReader', - }, - FocusEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FocusEvent', - }, - FocusNavigationEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FocusNavigationEvent', - }, - FormData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FormData', - }, - GainNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'GainNode', - }, - Gamepad: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Gamepad', - }, - GamepadButton: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'GamepadButton', - }, - GamepadEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'GamepadEvent', - }, - GamepadHapticActuator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'GamepadHapticActuator', - }, - GamepadPose: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'GamepadPose', - }, - GenericTransformStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GenericTransformStream', - }, - Geolocation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Geolocation', - }, - GlobalEventHandlersEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GlobalEventHandlersEventMap', - }, - GlobalEventHandlers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GlobalEventHandlers', - }, - HTMLAllCollection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLAllCollection', - }, - HTMLAnchorElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLAnchorElement', - }, - HTMLAppletElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLAppletElement', - }, - HTMLAreaElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLAreaElement', - }, - HTMLAudioElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLAudioElement', - }, - HTMLBRElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLBRElement', - }, - HTMLBaseElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLBaseElement', - }, - HTMLBaseFontElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLBaseFontElement', - }, - HTMLBodyElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLBodyElementEventMap', - }, - HTMLBodyElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLBodyElement', - }, - HTMLButtonElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLButtonElement', - }, - HTMLCanvasElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLCanvasElement', - }, - HTMLCollectionBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLCollectionBase', - }, - HTMLCollection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLCollection', - }, - HTMLCollectionOf: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLCollectionOf', - }, - HTMLDListElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDListElement', - }, - HTMLDataElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDataElement', - }, - HTMLDataListElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDataListElement', - }, - HTMLDetailsElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDetailsElement', - }, - HTMLDialogElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDialogElement', - }, - HTMLDirectoryElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDirectoryElement', - }, - HTMLDivElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDivElement', - }, - HTMLDocument: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLDocument', - }, - HTMLElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLElementEventMap', - }, - HTMLElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLElement', - }, - HTMLEmbedElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLEmbedElement', - }, - HTMLFieldSetElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLFieldSetElement', - }, - HTMLFontElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLFontElement', - }, - HTMLFormControlsCollection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLFormControlsCollection', - }, - HTMLFormElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLFormElement', - }, - HTMLFrameElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLFrameElement', - }, - HTMLFrameSetElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLFrameSetElementEventMap', - }, - HTMLFrameSetElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLFrameSetElement', - }, - HTMLHRElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLHRElement', - }, - HTMLHeadElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLHeadElement', - }, - HTMLHeadingElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLHeadingElement', - }, - HTMLHtmlElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLHtmlElement', - }, - HTMLHyperlinkElementUtils: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLHyperlinkElementUtils', - }, - HTMLIFrameElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLIFrameElement', - }, - HTMLImageElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLImageElement', - }, - HTMLInputElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLInputElement', - }, - HTMLLIElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLLIElement', - }, - HTMLLabelElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLLabelElement', - }, - HTMLLegendElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLLegendElement', - }, - HTMLLinkElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLLinkElement', - }, - HTMLMapElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLMapElement', - }, - HTMLMarqueeElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLMarqueeElementEventMap', - }, - HTMLMarqueeElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLMarqueeElement', - }, - HTMLMediaElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLMediaElementEventMap', - }, - HTMLMediaElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLMediaElement', - }, - HTMLMenuElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLMenuElement', - }, - HTMLMetaElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLMetaElement', - }, - HTMLMeterElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLMeterElement', - }, - HTMLModElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLModElement', - }, - HTMLOListElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLOListElement', - }, - HTMLObjectElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLObjectElement', - }, - HTMLOptGroupElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLOptGroupElement', - }, - HTMLOptionElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLOptionElement', - }, - HTMLOptionsCollection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLOptionsCollection', - }, - HTMLOrSVGElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLOrSVGElement', - }, - HTMLOutputElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLOutputElement', - }, - HTMLParagraphElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLParagraphElement', - }, - HTMLParamElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLParamElement', - }, - HTMLPictureElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLPictureElement', - }, - HTMLPreElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLPreElement', - }, - HTMLProgressElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLProgressElement', - }, - HTMLQuoteElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLQuoteElement', - }, - HTMLScriptElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLScriptElement', - }, - HTMLSelectElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLSelectElement', - }, - HTMLSlotElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLSlotElement', - }, - HTMLSourceElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLSourceElement', - }, - HTMLSpanElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLSpanElement', - }, - HTMLStyleElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLStyleElement', - }, - HTMLTableCaptionElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableCaptionElement', - }, - HTMLTableCellElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableCellElement', - }, - HTMLTableColElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableColElement', - }, - HTMLTableDataCellElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableDataCellElement', - }, - HTMLTableElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableElement', - }, - HTMLTableHeaderCellElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableHeaderCellElement', - }, - HTMLTableRowElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableRowElement', - }, - HTMLTableSectionElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTableSectionElement', - }, - HTMLTemplateElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTemplateElement', - }, - HTMLTextAreaElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTextAreaElement', - }, - HTMLTimeElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTimeElement', - }, - HTMLTitleElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTitleElement', - }, - HTMLTrackElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLTrackElement', - }, - HTMLUListElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLUListElement', - }, - HTMLUnknownElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLUnknownElement', - }, - HTMLVideoElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HTMLVideoElement', - }, - HashChangeEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'HashChangeEvent', - }, - Headers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Headers', - }, - History: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'History', - }, - HkdfCtrParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HkdfCtrParams', - }, - IDBArrayKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBArrayKey', - }, - IDBCursor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBCursor', - }, - IDBCursorWithValue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBCursorWithValue', - }, - IDBDatabaseEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBDatabaseEventMap', - }, - IDBDatabase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBDatabase', - }, - IDBFactory: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBFactory', - }, - IDBIndex: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBIndex', - }, - IDBKeyRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBKeyRange', - }, - IDBObjectStore: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBObjectStore', - }, - IDBOpenDBRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBOpenDBRequestEventMap', - }, - IDBOpenDBRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBOpenDBRequest', - }, - IDBRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBRequestEventMap', - }, - IDBRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBRequest', - }, - IDBTransactionEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBTransactionEventMap', - }, - IDBTransaction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBTransaction', - }, - IDBVersionChangeEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBVersionChangeEvent', - }, - IIRFilterNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IIRFilterNode', - }, - ImageBitmap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ImageBitmap', - }, - ImageBitmapRenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ImageBitmapRenderingContext', - }, - ImageData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ImageData', - }, - InnerHTML: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'InnerHTML', - }, - InputDeviceInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'InputDeviceInfo', - }, - InputEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'InputEvent', - }, - IntersectionObserver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IntersectionObserver', - }, - IntersectionObserverEntry: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IntersectionObserverEntry', - }, - KeyboardEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'KeyboardEvent', - }, - KeyframeEffect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'KeyframeEffect', - }, - LinkStyle: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'LinkStyle', - }, - ListeningStateChangedEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ListeningStateChangedEvent', - }, - Location: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Location', - }, - MSAssertion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSAssertion', - }, - MSBlobBuilder: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSBlobBuilder', - }, - MSFIDOCredentialAssertion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSFIDOCredentialAssertion', - }, - MSFIDOSignature: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSFIDOSignature', - }, - MSFIDOSignatureAssertion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSFIDOSignatureAssertion', - }, - MSFileSaver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSFileSaver', - }, - MSGesture: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSGesture', - }, - MSGestureEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSGestureEvent', - }, - MSGraphicsTrust: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSGraphicsTrust', - }, - MSInputMethodContextEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSInputMethodContextEventMap', - }, - MSInputMethodContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSInputMethodContext', - }, - MSMediaKeyError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSMediaKeyError', - }, - MSMediaKeyMessageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSMediaKeyMessageEvent', - }, - MSMediaKeyNeededEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSMediaKeyNeededEvent', - }, - MSMediaKeySession: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSMediaKeySession', - }, - MSMediaKeys: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSMediaKeys', - }, - MSNavigatorDoNotTrack: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSNavigatorDoNotTrack', - }, - MSPointerEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSPointerEvent', - }, - MSStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MSStream', - }, - MediaDeviceInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaDeviceInfo', - }, - MediaDevicesEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaDevicesEventMap', - }, - MediaDevices: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaDevices', - }, - MediaElementAudioSourceNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaElementAudioSourceNode', - }, - MediaEncryptedEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaEncryptedEvent', - }, - MediaError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaError', - }, - MediaKeyMessageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaKeyMessageEvent', - }, - MediaKeySessionEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeySessionEventMap', - }, - MediaKeySession: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaKeySession', - }, - MediaKeyStatusMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaKeyStatusMap', - }, - MediaKeySystemAccess: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaKeySystemAccess', - }, - MediaKeys: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaKeys', - }, - MediaList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaList', - }, - MediaQueryListEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaQueryListEventMap', - }, - MediaQueryList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaQueryList', - }, - MediaQueryListEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaQueryListEvent', - }, - MediaSourceEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaSourceEventMap', - }, - MediaSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaSource', - }, - MediaStreamEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamEventMap', - }, - MediaStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStream', - }, - MediaStreamAudioDestinationNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamAudioDestinationNode', - }, - MediaStreamAudioSourceNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamAudioSourceNode', - }, - MediaStreamError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamError', - }, - MediaStreamErrorEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamErrorEvent', - }, - MediaStreamEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamEvent', - }, - MediaStreamTrackEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamTrackEventMap', - }, - MediaStreamTrack: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamTrack', - }, - MediaStreamTrackAudioSourceNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamTrackAudioSourceNode', - }, - MediaStreamTrackEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MediaStreamTrackEvent', - }, - MessageChannel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MessageChannel', - }, - MessageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MessageEvent', - }, - MessagePortEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MessagePortEventMap', - }, - MessagePort: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MessagePort', - }, - MimeType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MimeType', - }, - MimeTypeArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MimeTypeArray', - }, - MouseEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MouseEvent', - }, - MutationEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MutationEvent', - }, - MutationObserver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MutationObserver', - }, - MutationRecord: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MutationRecord', - }, - NamedNodeMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NamedNodeMap', - }, - NavigationPreloadManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NavigationPreloadManager', - }, - Navigator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Navigator', - }, - NavigatorAutomationInformation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorAutomationInformation', - }, - NavigatorBeacon: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorBeacon', - }, - NavigatorConcurrentHardware: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorConcurrentHardware', - }, - NavigatorContentUtils: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorContentUtils', - }, - NavigatorCookies: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorCookies', - }, - NavigatorID: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorID', - }, - NavigatorLanguage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorLanguage', - }, - NavigatorOnLine: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorOnLine', - }, - NavigatorPlugins: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorPlugins', - }, - NavigatorStorage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorStorage', - }, - Node: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Node', - }, - NodeFilter: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NodeFilter', - }, - NodeIterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NodeIterator', - }, - NodeList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NodeList', - }, - NodeListOf: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NodeListOf', - }, - NonDocumentTypeChildNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NonDocumentTypeChildNode', - }, - NonElementParentNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NonElementParentNode', - }, - NotificationEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationEventMap', - }, - Notification: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Notification', - }, - OES_element_index_uint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_element_index_uint', - }, - OES_standard_derivatives: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_standard_derivatives', - }, - OES_texture_float: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_float', - }, - OES_texture_float_linear: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_float_linear', - }, - OES_texture_half_float: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_half_float', - }, - OES_texture_half_float_linear: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_half_float_linear', - }, - OES_vertex_array_object: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_vertex_array_object', - }, - OfflineAudioCompletionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OfflineAudioCompletionEvent', - }, - OfflineAudioContextEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OfflineAudioContextEventMap', - }, - OfflineAudioContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OfflineAudioContext', - }, - OffscreenCanvas: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OffscreenCanvas', - }, - OffscreenCanvasRenderingContext2D: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OffscreenCanvasRenderingContext2D', - }, - OscillatorNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OscillatorNode', - }, - OverconstrainedError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OverconstrainedError', - }, - OverflowEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OverflowEvent', - }, - PageTransitionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PageTransitionEvent', - }, - PannerNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PannerNode', - }, - ParentNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ParentNode', - }, - Path2D: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Path2D', - }, - PaymentAddress: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PaymentAddress', - }, - PaymentRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentRequestEventMap', - }, - PaymentRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PaymentRequest', - }, - PaymentRequestUpdateEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PaymentRequestUpdateEvent', - }, - PaymentResponse: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PaymentResponse', - }, - PerfWidgetExternal: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerfWidgetExternal', - }, - PerformanceEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceEventMap', - }, - Performance: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Performance', - }, - PerformanceEntry: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceEntry', - }, - PerformanceMark: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceMark', - }, - PerformanceMeasure: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceMeasure', - }, - PerformanceNavigation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceNavigation', - }, - PerformanceNavigationTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceNavigationTiming', - }, - PerformanceObserver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceObserver', - }, - PerformanceObserverEntryList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceObserverEntryList', - }, - PerformanceResourceTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceResourceTiming', - }, - PerformanceTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceTiming', - }, - PeriodicWave: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PeriodicWave', - }, - PermissionRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PermissionRequest', - }, - PermissionRequestedEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PermissionRequestedEvent', - }, - PermissionStatusEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionStatusEventMap', - }, - PermissionStatus: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PermissionStatus', - }, - Permissions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Permissions', - }, - Plugin: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Plugin', - }, - PluginArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PluginArray', - }, - PointerEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PointerEvent', - }, - PopStateEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PopStateEvent', - }, - Position: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Position', - }, - PositionError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PositionError', - }, - ProcessingInstruction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ProcessingInstruction', - }, - ProgressEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ProgressEvent', - }, - PromiseRejectionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PromiseRejectionEvent', - }, - PublicKeyCredential: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PublicKeyCredential', - }, - PushManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushManager', - }, - PushSubscription: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushSubscription', - }, - PushSubscriptionOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushSubscriptionOptions', - }, - RTCCertificate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCCertificate', - }, - RTCDTMFSenderEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDTMFSenderEventMap', - }, - RTCDTMFSender: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDTMFSender', - }, - RTCDTMFToneChangeEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDTMFToneChangeEvent', - }, - RTCDataChannelEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDataChannelEventMap', - }, - RTCDataChannel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDataChannel', - }, - RTCDataChannelEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDataChannelEvent', - }, - RTCDtlsTransportEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtlsTransportEventMap', - }, - RTCDtlsTransport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDtlsTransport', - }, - RTCDtlsTransportStateChangedEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDtlsTransportStateChangedEvent', - }, - RTCDtmfSenderEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtmfSenderEventMap', - }, - RTCDtmfSender: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCDtmfSender', - }, - RTCError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCError', - }, - RTCErrorEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCErrorEvent', - }, - RTCIceCandidate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIceCandidate', - }, - RTCIceCandidatePairChangedEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIceCandidatePairChangedEvent', - }, - RTCIceGathererEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceGathererEventMap', - }, - RTCIceGatherer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIceGatherer', - }, - RTCIceGathererEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIceGathererEvent', - }, - RTCIceTransportEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceTransportEventMap', - }, - RTCIceTransport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIceTransport', - }, - RTCIceTransportStateChangedEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIceTransportStateChangedEvent', - }, - RTCIdentityAssertion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCIdentityAssertion', - }, - RTCPeerConnectionEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCPeerConnectionEventMap', - }, - RTCPeerConnection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCPeerConnection', - }, - RTCPeerConnectionIceErrorEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCPeerConnectionIceErrorEvent', - }, - RTCPeerConnectionIceEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCPeerConnectionIceEvent', - }, - RTCRtpReceiver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCRtpReceiver', - }, - RTCRtpSender: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCRtpSender', - }, - RTCRtpTransceiver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCRtpTransceiver', - }, - RTCSctpTransportEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSctpTransportEventMap', - }, - RTCSctpTransport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCSctpTransport', - }, - RTCSessionDescription: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCSessionDescription', - }, - RTCSrtpSdesTransportEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSrtpSdesTransportEventMap', - }, - RTCSrtpSdesTransport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCSrtpSdesTransport', - }, - RTCSsrcConflictEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCSsrcConflictEvent', - }, - RTCStatsEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCStatsEvent', - }, - RTCStatsProvider: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCStatsProvider', - }, - RTCTrackEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RTCTrackEvent', - }, - RadioNodeList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RadioNodeList', - }, - RandomSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RandomSource', - }, - Range: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Range', - }, - ReadableByteStreamController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableByteStreamController', - }, - ReadableStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ReadableStream', - }, - ReadableStreamBYOBReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamBYOBReader', - }, - ReadableStreamBYOBRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamBYOBRequest', - }, - ReadableStreamDefaultController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamDefaultController', - }, - ReadableStreamDefaultReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamDefaultReader', - }, - ReadableStreamReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ReadableStreamReader', - }, - Request: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Request', - }, - Response: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Response', - }, - SVGAElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAElement', - }, - SVGAngle: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAngle', - }, - SVGAnimateElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimateElement', - }, - SVGAnimateMotionElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimateMotionElement', - }, - SVGAnimateTransformElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimateTransformElement', - }, - SVGAnimatedAngle: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedAngle', - }, - SVGAnimatedBoolean: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedBoolean', - }, - SVGAnimatedEnumeration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedEnumeration', - }, - SVGAnimatedInteger: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedInteger', - }, - SVGAnimatedLength: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedLength', - }, - SVGAnimatedLengthList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedLengthList', - }, - SVGAnimatedNumber: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedNumber', - }, - SVGAnimatedNumberList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedNumberList', - }, - SVGAnimatedPoints: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGAnimatedPoints', - }, - SVGAnimatedPreserveAspectRatio: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedPreserveAspectRatio', - }, - SVGAnimatedRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedRect', - }, - SVGAnimatedString: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedString', - }, - SVGAnimatedTransformList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimatedTransformList', - }, - SVGAnimationElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGAnimationElement', - }, - SVGCircleElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGCircleElement', - }, - SVGClipPathElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGClipPathElement', - }, - SVGComponentTransferFunctionElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGComponentTransferFunctionElement', - }, - SVGCursorElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGCursorElement', - }, - SVGDefsElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGDefsElement', - }, - SVGDescElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGDescElement', - }, - SVGElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGElementEventMap', - }, - SVGElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGElement', - }, - SVGElementInstance: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGElementInstance', - }, - SVGElementInstanceList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGElementInstanceList', - }, - SVGEllipseElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGEllipseElement', - }, - SVGFEBlendElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEBlendElement', - }, - SVGFEColorMatrixElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEColorMatrixElement', - }, - SVGFEComponentTransferElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEComponentTransferElement', - }, - SVGFECompositeElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFECompositeElement', - }, - SVGFEConvolveMatrixElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEConvolveMatrixElement', - }, - SVGFEDiffuseLightingElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEDiffuseLightingElement', - }, - SVGFEDisplacementMapElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEDisplacementMapElement', - }, - SVGFEDistantLightElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEDistantLightElement', - }, - SVGFEDropShadowElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEDropShadowElement', - }, - SVGFEFloodElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEFloodElement', - }, - SVGFEFuncAElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEFuncAElement', - }, - SVGFEFuncBElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEFuncBElement', - }, - SVGFEFuncGElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEFuncGElement', - }, - SVGFEFuncRElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEFuncRElement', - }, - SVGFEGaussianBlurElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEGaussianBlurElement', - }, - SVGFEImageElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEImageElement', - }, - SVGFEMergeElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEMergeElement', - }, - SVGFEMergeNodeElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEMergeNodeElement', - }, - SVGFEMorphologyElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEMorphologyElement', - }, - SVGFEOffsetElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEOffsetElement', - }, - SVGFEPointLightElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFEPointLightElement', - }, - SVGFESpecularLightingElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFESpecularLightingElement', - }, - SVGFESpotLightElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFESpotLightElement', - }, - SVGFETileElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFETileElement', - }, - SVGFETurbulenceElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFETurbulenceElement', - }, - SVGFilterElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGFilterElement', - }, - SVGFilterPrimitiveStandardAttributes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGFilterPrimitiveStandardAttributes', - }, - SVGFitToViewBox: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGFitToViewBox', - }, - SVGForeignObjectElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGForeignObjectElement', - }, - SVGGElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGGElement', - }, - SVGGeometryElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGGeometryElement', - }, - SVGGradientElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGGradientElement', - }, - SVGGraphicsElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGGraphicsElement', - }, - SVGImageElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGImageElement', - }, - SVGLength: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGLength', - }, - SVGLengthList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGLengthList', - }, - SVGLineElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGLineElement', - }, - SVGLinearGradientElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGLinearGradientElement', - }, - SVGMarkerElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGMarkerElement', - }, - SVGMaskElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGMaskElement', - }, - SVGMetadataElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGMetadataElement', - }, - SVGNumber: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGNumber', - }, - SVGNumberList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGNumberList', - }, - SVGPathElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathElement', - }, - SVGPathSeg: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSeg', - }, - SVGPathSegArcAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegArcAbs', - }, - SVGPathSegArcRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegArcRel', - }, - SVGPathSegClosePath: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegClosePath', - }, - SVGPathSegCurvetoCubicAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoCubicAbs', - }, - SVGPathSegCurvetoCubicRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoCubicRel', - }, - SVGPathSegCurvetoCubicSmoothAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoCubicSmoothAbs', - }, - SVGPathSegCurvetoCubicSmoothRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoCubicSmoothRel', - }, - SVGPathSegCurvetoQuadraticAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoQuadraticAbs', - }, - SVGPathSegCurvetoQuadraticRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoQuadraticRel', - }, - SVGPathSegCurvetoQuadraticSmoothAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoQuadraticSmoothAbs', - }, - SVGPathSegCurvetoQuadraticSmoothRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegCurvetoQuadraticSmoothRel', - }, - SVGPathSegLinetoAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegLinetoAbs', - }, - SVGPathSegLinetoHorizontalAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegLinetoHorizontalAbs', - }, - SVGPathSegLinetoHorizontalRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegLinetoHorizontalRel', - }, - SVGPathSegLinetoRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegLinetoRel', - }, - SVGPathSegLinetoVerticalAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegLinetoVerticalAbs', - }, - SVGPathSegLinetoVerticalRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegLinetoVerticalRel', - }, - SVGPathSegList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegList', - }, - SVGPathSegMovetoAbs: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegMovetoAbs', - }, - SVGPathSegMovetoRel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPathSegMovetoRel', - }, - SVGPatternElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPatternElement', - }, - SVGPointList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPointList', - }, - SVGPolygonElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPolygonElement', - }, - SVGPolylineElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPolylineElement', - }, - SVGPreserveAspectRatio: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGPreserveAspectRatio', - }, - SVGRadialGradientElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGRadialGradientElement', - }, - SVGRectElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGRectElement', - }, - SVGSVGElementEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGSVGElementEventMap', - }, - SVGSVGElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGSVGElement', - }, - SVGScriptElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGScriptElement', - }, - SVGStopElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGStopElement', - }, - SVGStringList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGStringList', - }, - SVGStyleElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGStyleElement', - }, - SVGSwitchElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGSwitchElement', - }, - SVGSymbolElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGSymbolElement', - }, - SVGTSpanElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTSpanElement', - }, - SVGTests: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGTests', - }, - SVGTextContentElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTextContentElement', - }, - SVGTextElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTextElement', - }, - SVGTextPathElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTextPathElement', - }, - SVGTextPositioningElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTextPositioningElement', - }, - SVGTitleElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTitleElement', - }, - SVGTransform: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTransform', - }, - SVGTransformList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGTransformList', - }, - SVGURIReference: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGURIReference', - }, - SVGUnitTypes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGUnitTypes', - }, - SVGUseElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGUseElement', - }, - SVGViewElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGViewElement', - }, - SVGZoomAndPan: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGZoomAndPan', - }, - SVGZoomEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SVGZoomEvent', - }, - ScopedCredential: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ScopedCredential', - }, - ScopedCredentialInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ScopedCredentialInfo', - }, - Screen: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Screen', - }, - ScreenOrientationEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScreenOrientationEventMap', - }, - ScreenOrientation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ScreenOrientation', - }, - ScriptProcessorNodeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScriptProcessorNodeEventMap', - }, - ScriptProcessorNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ScriptProcessorNode', - }, - SecurityPolicyViolationEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SecurityPolicyViolationEvent', - }, - Selection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Selection', - }, - ServiceUIFrameContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceUIFrameContext', - }, - ServiceWorkerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerEventMap', - }, - ServiceWorker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorker', - }, - ServiceWorkerContainerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerContainerEventMap', - }, - ServiceWorkerContainer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorkerContainer', - }, - ServiceWorkerMessageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorkerMessageEvent', - }, - ServiceWorkerRegistrationEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerRegistrationEventMap', - }, - ServiceWorkerRegistration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorkerRegistration', - }, - ShadowRoot: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ShadowRoot', - }, - SharedWorker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SharedWorker', - }, - Slottable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Slottable', - }, - SourceBufferEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SourceBufferEventMap', - }, - SourceBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SourceBuffer', - }, - SourceBufferListEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SourceBufferListEventMap', - }, - SourceBufferList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SourceBufferList', - }, - SpeechGrammar: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechGrammar', - }, - SpeechGrammarList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechGrammarList', - }, - SpeechRecognitionEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechRecognitionEventMap', - }, - SpeechRecognition: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechRecognition', - }, - SpeechRecognitionAlternative: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechRecognitionAlternative', - }, - SpeechRecognitionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechRecognitionEvent', - }, - SpeechRecognitionResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechRecognitionResult', - }, - SpeechRecognitionResultList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechRecognitionResultList', - }, - SpeechSynthesisEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechSynthesisEventMap', - }, - SpeechSynthesis: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechSynthesis', - }, - SpeechSynthesisErrorEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechSynthesisErrorEvent', - }, - SpeechSynthesisEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechSynthesisEvent', - }, - SpeechSynthesisUtteranceEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechSynthesisUtteranceEventMap', - }, - SpeechSynthesisUtterance: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechSynthesisUtterance', - }, - SpeechSynthesisVoice: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SpeechSynthesisVoice', - }, - StaticRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StaticRange', - }, - StereoPannerNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StereoPannerNode', - }, - Storage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Storage', - }, - StorageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StorageEvent', - }, - StorageManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StorageManager', - }, - StyleMedia: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StyleMedia', - }, - StyleSheet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StyleSheet', - }, - StyleSheetList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StyleSheetList', - }, - SubtleCrypto: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SubtleCrypto', - }, - SyncManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SyncManager', - }, - Text: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Text', - }, - TextDecoder: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextDecoder', - }, - TextDecoderCommon: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextDecoderCommon', - }, - TextDecoderStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextDecoderStream', - }, - TextEncoder: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextEncoder', - }, - TextEncoderCommon: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextEncoderCommon', - }, - TextEncoderStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextEncoderStream', - }, - TextEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextEvent', - }, - TextMetrics: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextMetrics', - }, - TextTrackEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackEventMap', - }, - TextTrack: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextTrack', - }, - TextTrackCueEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackCueEventMap', - }, - TextTrackCue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextTrackCue', - }, - TextTrackCueList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextTrackCueList', - }, - TextTrackListEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackListEventMap', - }, - TextTrackList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextTrackList', - }, - TimeRanges: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TimeRanges', - }, - Touch: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Touch', - }, - TouchEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TouchEvent', - }, - TouchList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TouchList', - }, - TrackEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TrackEvent', - }, - TransformStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TransformStream', - }, - TransformStreamDefaultController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransformStreamDefaultController', - }, - TransitionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TransitionEvent', - }, - TreeWalker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TreeWalker', - }, - UIEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'UIEvent', - }, - URL: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'URL', - }, - webkitURL: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'webkitURL', - }, - URLSearchParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'URLSearchParams', - }, - VRDisplay: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VRDisplay', - }, - VRDisplayCapabilities: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VRDisplayCapabilities', - }, - VRDisplayEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VRDisplayEvent', - }, - VREyeParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VREyeParameters', - }, - VRFieldOfView: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VRFieldOfView', - }, - VRFrameData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VRFrameData', - }, - VRPose: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VRPose', - }, - VTTCue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VTTCue', - }, - VTTRegion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VTTRegion', - }, - ValidityState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ValidityState', - }, - VideoPlaybackQuality: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VideoPlaybackQuality', - }, - VisualViewportEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VisualViewportEventMap', - }, - VisualViewport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VisualViewport', - }, - WEBGL_color_buffer_float: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_color_buffer_float', - }, - WEBGL_compressed_texture_astc: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_compressed_texture_astc', - }, - WEBGL_compressed_texture_s3tc: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_compressed_texture_s3tc', - }, - WEBGL_compressed_texture_s3tc_srgb: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_compressed_texture_s3tc_srgb', - }, - WEBGL_debug_renderer_info: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_debug_renderer_info', - }, - WEBGL_debug_shaders: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_debug_shaders', - }, - WEBGL_depth_texture: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_depth_texture', - }, - WEBGL_draw_buffers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_draw_buffers', - }, - WEBGL_lose_context: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_lose_context', - }, - WaveShaperNode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WaveShaperNode', - }, - WebAuthentication: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebAuthentication', - }, - WebAuthnAssertion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebAuthnAssertion', - }, - WebGL2RenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGL2RenderingContext', - }, - WebGL2RenderingContextBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGL2RenderingContextBase', - }, - WebGL2RenderingContextOverloads: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGL2RenderingContextOverloads', - }, - WebGLActiveInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLActiveInfo', - }, - WebGLBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLBuffer', - }, - WebGLContextEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLContextEvent', - }, - WebGLFramebuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLFramebuffer', - }, - WebGLObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLObject', - }, - WebGLProgram: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLProgram', - }, - WebGLQuery: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLQuery', - }, - WebGLRenderbuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLRenderbuffer', - }, - WebGLRenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLRenderingContext', - }, - WebGLRenderingContextBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLRenderingContextBase', - }, - WebGLRenderingContextOverloads: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLRenderingContextOverloads', - }, - WebGLSampler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLSampler', - }, - WebGLShader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLShader', - }, - WebGLShaderPrecisionFormat: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLShaderPrecisionFormat', - }, - WebGLSync: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLSync', - }, - WebGLTexture: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLTexture', - }, - WebGLTransformFeedback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLTransformFeedback', - }, - WebGLUniformLocation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLUniformLocation', - }, - WebGLVertexArrayObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLVertexArrayObject', - }, - WebGLVertexArrayObjectOES: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLVertexArrayObjectOES', - }, - WebKitPoint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebKitPoint', - }, - WebSocketEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebSocketEventMap', - }, - WebSocket: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebSocket', - }, - WheelEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WheelEvent', - }, - WindowEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowEventMap', - }, - Window: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Window', - }, - WindowEventHandlersEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowEventHandlersEventMap', - }, - WindowEventHandlers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowEventHandlers', - }, - WindowLocalStorage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowLocalStorage', - }, - WindowOrWorkerGlobalScope: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowOrWorkerGlobalScope', - }, - WindowSessionStorage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowSessionStorage', - }, - WorkerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerEventMap', - }, - Worker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Worker', - }, - Worklet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Worklet', - }, - WritableStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WritableStream', - }, - WritableStreamDefaultController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultController', - }, - WritableStreamDefaultWriter: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultWriter', - }, - XMLDocument: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLDocument', - }, - XMLHttpRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XMLHttpRequestEventMap', - }, - XMLHttpRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLHttpRequest', - }, - XMLHttpRequestEventTargetEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XMLHttpRequestEventTargetEventMap', - }, - XMLHttpRequestEventTarget: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLHttpRequestEventTarget', - }, - XMLHttpRequestUpload: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLHttpRequestUpload', - }, - XMLSerializer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLSerializer', - }, - XPathEvaluator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XPathEvaluator', - }, - XPathEvaluatorBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XPathEvaluatorBase', - }, - XPathExpression: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XPathExpression', - }, - XPathResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XPathResult', - }, - XSLTProcessor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XSLTProcessor', - }, - webkitRTCPeerConnection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'webkitRTCPeerConnection', - }, - EventListenerOrEventListenerObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListenerOrEventListenerObject', - }, - Console: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Console', - }, - CSS: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CSS', - }, - WebAssembly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebAssembly', - }, - BlobCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BlobCallback', - }, - CustomElementConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CustomElementConstructor', - }, - DecodeErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DecodeErrorCallback', - }, - DecodeSuccessCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DecodeSuccessCallback', - }, - EventHandlerNonNull: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventHandlerNonNull', - }, - ForEachCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ForEachCallback', - }, - FrameRequestCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FrameRequestCallback', - }, - FunctionStringCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FunctionStringCallback', - }, - IntersectionObserverCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IntersectionObserverCallback', - }, - MSLaunchUriCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSLaunchUriCallback', - }, - MutationCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MutationCallback', - }, - NavigatorUserMediaErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorUserMediaErrorCallback', - }, - NavigatorUserMediaSuccessCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorUserMediaSuccessCallback', - }, - NotificationPermissionCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationPermissionCallback', - }, - OnBeforeUnloadEventHandlerNonNull: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OnBeforeUnloadEventHandlerNonNull', - }, - OnErrorEventHandlerNonNull: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OnErrorEventHandlerNonNull', - }, - PerformanceObserverCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceObserverCallback', - }, - PositionCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PositionCallback', - }, - PositionErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PositionErrorCallback', - }, - QueuingStrategySizeCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'QueuingStrategySizeCallback', - }, - RTCPeerConnectionErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCPeerConnectionErrorCallback', - }, - RTCSessionDescriptionCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSessionDescriptionCallback', - }, - RTCStatsCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStatsCallback', - }, - ReadableByteStreamControllerCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableByteStreamControllerCallback', - }, - ReadableStreamDefaultControllerCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamDefaultControllerCallback', - }, - ReadableStreamErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamErrorCallback', - }, - TransformStreamDefaultControllerCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransformStreamDefaultControllerCallback', - }, - TransformStreamDefaultControllerTransformCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransformStreamDefaultControllerTransformCallback', - }, - VoidFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VoidFunction', - }, - WritableStreamDefaultControllerCloseCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultControllerCloseCallback', - }, - WritableStreamDefaultControllerStartCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultControllerStartCallback', - }, - WritableStreamDefaultControllerWriteCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultControllerWriteCallback', - }, - WritableStreamErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamErrorCallback', - }, - HTMLElementTagNameMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLElementTagNameMap', - }, - HTMLElementDeprecatedTagNameMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLElementDeprecatedTagNameMap', - }, - SVGElementTagNameMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SVGElementTagNameMap', - }, - ElementTagNameMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ElementTagNameMap', - }, - HeadersInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HeadersInit', - }, - BodyInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BodyInit', - }, - RequestInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestInfo', - }, - BlobPart: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BlobPart', - }, - DOMHighResTimeStamp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMHighResTimeStamp', - }, - RenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RenderingContext', - }, - HTMLOrSVGImageElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLOrSVGImageElement', - }, - CanvasImageSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasImageSource', - }, - OffscreenRenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OffscreenRenderingContext', - }, - MessageEventSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MessageEventSource', - }, - HTMLOrSVGScriptElement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HTMLOrSVGScriptElement', - }, - ImageBitmapSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageBitmapSource', - }, - MediaProvider: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaProvider', - }, - OnErrorEventHandler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OnErrorEventHandler', - }, - OnBeforeUnloadEventHandler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OnBeforeUnloadEventHandler', - }, - TimerHandler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TimerHandler', - }, - ConstrainULong: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainULong', - }, - ConstrainDouble: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainDouble', - }, - ConstrainBoolean: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainBoolean', - }, - ConstrainDOMString: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstrainDOMString', - }, - PerformanceEntryList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceEntryList', - }, - ReadableStreamReadResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamReadResult', - }, - VibratePattern: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VibratePattern', - }, - COSEAlgorithmIdentifier: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'COSEAlgorithmIdentifier', - }, - AuthenticatorSelectionList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticatorSelectionList', - }, - AAGUID: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AAGUID', - }, - AuthenticationExtensionsSupported: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticationExtensionsSupported', - }, - UvmEntry: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UvmEntry', - }, - UvmEntries: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UvmEntries', - }, - AlgorithmIdentifier: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AlgorithmIdentifier', - }, - HashAlgorithmIdentifier: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HashAlgorithmIdentifier', - }, - BigInteger: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigInteger', - }, - NamedCurve: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NamedCurve', - }, - GLenum: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLenum', - }, - GLboolean: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLboolean', - }, - GLbitfield: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLbitfield', - }, - GLint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLint', - }, - GLsizei: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLsizei', - }, - GLintptr: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLintptr', - }, - GLsizeiptr: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLsizeiptr', - }, - GLuint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLuint', - }, - GLfloat: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLfloat', - }, - GLclampf: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLclampf', - }, - TexImageSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TexImageSource', - }, - Float32List: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32List', - }, - Int32List: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32List', - }, - GLint64: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLint64', - }, - GLuint64: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLuint64', - }, - Uint32List: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32List', - }, - BufferSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BufferSource', - }, - DOMTimeStamp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMTimeStamp', - }, - LineAndPositionSetting: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'LineAndPositionSetting', - }, - FormDataEntryValue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FormDataEntryValue', - }, - InsertPosition: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'InsertPosition', - }, - IDBValidKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBValidKey', - }, - MutationRecordType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MutationRecordType', - }, - IDBKeyPath: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBKeyPath', - }, - Transferable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Transferable', - }, - RTCIceGatherCandidate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceGatherCandidate', - }, - RTCTransport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCTransport', - }, - MouseWheelEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MouseWheelEvent', - }, - WindowProxy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowProxy', - }, - AlignSetting: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AlignSetting', - }, - AnimationPlayState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnimationPlayState', - }, - AppendMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AppendMode', - }, - AttestationConveyancePreference: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AttestationConveyancePreference', - }, - AudioContextLatencyCategory: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioContextLatencyCategory', - }, - AudioContextState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AudioContextState', - }, - AuthenticatorAttachment: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticatorAttachment', - }, - AuthenticatorTransport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AuthenticatorTransport', - }, - AutoKeyword: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AutoKeyword', - }, - AutomationRate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AutomationRate', - }, - BinaryType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BinaryType', - }, - BiquadFilterType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BiquadFilterType', - }, - CanPlayTypeResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanPlayTypeResult', - }, - CanvasDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasDirection', - }, - CanvasFillRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasFillRule', - }, - CanvasLineCap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasLineCap', - }, - CanvasLineJoin: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasLineJoin', - }, - CanvasTextAlign: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTextAlign', - }, - CanvasTextBaseline: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTextBaseline', - }, - ChannelCountMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ChannelCountMode', - }, - ChannelInterpretation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ChannelInterpretation', - }, - ClientTypes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClientTypes', - }, - ColorSpaceConversion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ColorSpaceConversion', - }, - CompositeOperation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CompositeOperation', - }, - CompositeOperationOrAuto: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CompositeOperationOrAuto', - }, - CredentialMediationRequirement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CredentialMediationRequirement', - }, - DOMParserSupportedType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMParserSupportedType', - }, - DirectionSetting: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DirectionSetting', - }, - DisplayCaptureSurfaceType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DisplayCaptureSurfaceType', - }, - DistanceModelType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DistanceModelType', - }, - DocumentReadyState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DocumentReadyState', - }, - EndOfStreamError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EndOfStreamError', - }, - EndingType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EndingType', - }, - FillMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FillMode', - }, - FullscreenNavigationUI: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FullscreenNavigationUI', - }, - GamepadHand: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GamepadHand', - }, - GamepadHapticActuatorType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GamepadHapticActuatorType', - }, - GamepadMappingType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GamepadMappingType', - }, - IDBCursorDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBCursorDirection', - }, - IDBRequestReadyState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBRequestReadyState', - }, - IDBTransactionMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBTransactionMode', - }, - ImageOrientation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageOrientation', - }, - ImageSmoothingQuality: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageSmoothingQuality', - }, - IterationCompositeOperation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IterationCompositeOperation', - }, - KeyFormat: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyFormat', - }, - KeyType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyType', - }, - KeyUsage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyUsage', - }, - LineAlignSetting: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'LineAlignSetting', - }, - ListeningState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ListeningState', - }, - MSCredentialType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSCredentialType', - }, - MSTransportType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSTransportType', - }, - MSWebViewPermissionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSWebViewPermissionState', - }, - MSWebViewPermissionType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MSWebViewPermissionType', - }, - MediaDeviceKind: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaDeviceKind', - }, - MediaKeyMessageType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeyMessageType', - }, - MediaKeySessionType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeySessionType', - }, - MediaKeyStatus: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeyStatus', - }, - MediaKeysRequirement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaKeysRequirement', - }, - MediaStreamTrackState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MediaStreamTrackState', - }, - NavigationReason: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigationReason', - }, - NavigationType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigationType', - }, - NotificationDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationDirection', - }, - NotificationPermission: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationPermission', - }, - OffscreenRenderingContextId: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OffscreenRenderingContextId', - }, - OrientationLockType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OrientationLockType', - }, - OrientationType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OrientationType', - }, - OscillatorType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OscillatorType', - }, - OverSampleType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OverSampleType', - }, - PanningModelType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PanningModelType', - }, - PaymentComplete: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentComplete', - }, - PaymentShippingType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PaymentShippingType', - }, - PermissionName: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionName', - }, - PermissionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionState', - }, - PlaybackDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PlaybackDirection', - }, - PositionAlignSetting: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PositionAlignSetting', - }, - PremultiplyAlpha: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PremultiplyAlpha', - }, - PublicKeyCredentialType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PublicKeyCredentialType', - }, - PushEncryptionKeyName: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushEncryptionKeyName', - }, - PushPermissionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushPermissionState', - }, - RTCBundlePolicy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCBundlePolicy', - }, - RTCDataChannelState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDataChannelState', - }, - RTCDegradationPreference: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDegradationPreference', - }, - RTCDtlsRole: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtlsRole', - }, - RTCDtlsTransportState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtlsTransportState', - }, - RTCDtxStatus: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCDtxStatus', - }, - RTCErrorDetailType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCErrorDetailType', - }, - RTCIceCandidateType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCandidateType', - }, - RTCIceComponent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceComponent', - }, - RTCIceConnectionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceConnectionState', - }, - RTCIceCredentialType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceCredentialType', - }, - RTCIceGatherPolicy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceGatherPolicy', - }, - RTCIceGathererState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceGathererState', - }, - RTCIceGatheringState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceGatheringState', - }, - RTCIceProtocol: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceProtocol', - }, - RTCIceRole: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceRole', - }, - RTCIceTcpCandidateType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceTcpCandidateType', - }, - RTCIceTransportPolicy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceTransportPolicy', - }, - RTCIceTransportState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCIceTransportState', - }, - RTCPeerConnectionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCPeerConnectionState', - }, - RTCPriorityType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCPriorityType', - }, - RTCRtcpMuxPolicy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtcpMuxPolicy', - }, - RTCRtpTransceiverDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCRtpTransceiverDirection', - }, - RTCSctpTransportState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSctpTransportState', - }, - RTCSdpType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSdpType', - }, - RTCSignalingState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCSignalingState', - }, - RTCStatsIceCandidatePairState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStatsIceCandidatePairState', - }, - RTCStatsIceCandidateType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStatsIceCandidateType', - }, - RTCStatsType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RTCStatsType', - }, - ReadyState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadyState', - }, - ReferrerPolicy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReferrerPolicy', - }, - RequestCache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestCache', - }, - RequestCredentials: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestCredentials', - }, - RequestDestination: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestDestination', - }, - RequestMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestMode', - }, - RequestRedirect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestRedirect', - }, - ResizeQuality: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ResizeQuality', - }, - ResponseType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ResponseType', - }, - ScopedCredentialType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScopedCredentialType', - }, - ScrollBehavior: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollBehavior', - }, - ScrollLogicalPosition: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollLogicalPosition', - }, - ScrollRestoration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollRestoration', - }, - ScrollSetting: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ScrollSetting', - }, - SelectionMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SelectionMode', - }, - ServiceWorkerState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerState', - }, - ServiceWorkerUpdateViaCache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerUpdateViaCache', - }, - ShadowRootMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ShadowRootMode', - }, - SpeechSynthesisErrorCode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SpeechSynthesisErrorCode', - }, - TextTrackKind: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackKind', - }, - TextTrackMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextTrackMode', - }, - TouchType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TouchType', - }, - Transport: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Transport', - }, - UserVerificationRequirement: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UserVerificationRequirement', - }, - VRDisplayEventReason: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VRDisplayEventReason', - }, - VideoFacingModeEnum: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VideoFacingModeEnum', - }, - VisibilityState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VisibilityState', - }, - WebGLPowerPreference: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLPowerPreference', - }, - WorkerType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerType', - }, - XMLHttpRequestResponseType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XMLHttpRequestResponseType', - }, + AddEventListenerOptions: base_config_1.TYPE, + AddressErrors: base_config_1.TYPE, + AesCbcParams: base_config_1.TYPE, + AesCtrParams: base_config_1.TYPE, + AesDerivedKeyParams: base_config_1.TYPE, + AesGcmParams: base_config_1.TYPE, + AesKeyAlgorithm: base_config_1.TYPE, + AesKeyGenParams: base_config_1.TYPE, + Algorithm: base_config_1.TYPE, + AnalyserOptions: base_config_1.TYPE, + AnimationEventInit: base_config_1.TYPE, + AnimationPlaybackEventInit: base_config_1.TYPE, + AssignedNodesOptions: base_config_1.TYPE, + AudioBufferOptions: base_config_1.TYPE, + AudioBufferSourceOptions: base_config_1.TYPE, + AudioContextInfo: base_config_1.TYPE, + AudioContextOptions: base_config_1.TYPE, + AudioNodeOptions: base_config_1.TYPE, + AudioParamDescriptor: base_config_1.TYPE, + AudioProcessingEventInit: base_config_1.TYPE, + AudioTimestamp: base_config_1.TYPE, + AudioWorkletNodeOptions: base_config_1.TYPE, + AuthenticationExtensionsClientInputs: base_config_1.TYPE, + AuthenticationExtensionsClientOutputs: base_config_1.TYPE, + AuthenticatorSelectionCriteria: base_config_1.TYPE, + BiquadFilterOptions: base_config_1.TYPE, + BlobPropertyBag: base_config_1.TYPE, + ByteLengthChunk: base_config_1.TYPE, + CacheQueryOptions: base_config_1.TYPE, + CanvasRenderingContext2DSettings: base_config_1.TYPE, + ChannelMergerOptions: base_config_1.TYPE, + ChannelSplitterOptions: base_config_1.TYPE, + ClientQueryOptions: base_config_1.TYPE, + ClipboardEventInit: base_config_1.TYPE, + CloseEventInit: base_config_1.TYPE, + CompositionEventInit: base_config_1.TYPE, + ComputedEffectTiming: base_config_1.TYPE, + ComputedKeyframe: base_config_1.TYPE, + ConfirmSiteSpecificExceptionsInformation: base_config_1.TYPE, + ConstantSourceOptions: base_config_1.TYPE, + ConstrainBooleanParameters: base_config_1.TYPE, + ConstrainDOMStringParameters: base_config_1.TYPE, + ConstrainDoubleRange: base_config_1.TYPE, + ConstrainULongRange: base_config_1.TYPE, + ConstrainVideoFacingModeParameters: base_config_1.TYPE, + ConvolverOptions: base_config_1.TYPE, + CredentialCreationOptions: base_config_1.TYPE, + CredentialPropertiesOutput: base_config_1.TYPE, + CredentialRequestOptions: base_config_1.TYPE, + CustomEventInit: base_config_1.TYPE, + DOMMatrix2DInit: base_config_1.TYPE, + DOMMatrixInit: base_config_1.TYPE, + DOMPointInit: base_config_1.TYPE, + DOMQuadInit: base_config_1.TYPE, + DOMRectInit: base_config_1.TYPE, + DelayOptions: base_config_1.TYPE, + DeviceMotionEventAccelerationInit: base_config_1.TYPE, + DeviceMotionEventInit: base_config_1.TYPE, + DeviceMotionEventRotationRateInit: base_config_1.TYPE, + DeviceOrientationEventInit: base_config_1.TYPE, + DevicePermissionDescriptor: base_config_1.TYPE, + DocumentTimelineOptions: base_config_1.TYPE, + DoubleRange: base_config_1.TYPE, + DragEventInit: base_config_1.TYPE, + DynamicsCompressorOptions: base_config_1.TYPE, + EcKeyAlgorithm: base_config_1.TYPE, + EcKeyGenParams: base_config_1.TYPE, + EcKeyImportParams: base_config_1.TYPE, + EcdhKeyDeriveParams: base_config_1.TYPE, + EcdsaParams: base_config_1.TYPE, + EffectTiming: base_config_1.TYPE, + ElementCreationOptions: base_config_1.TYPE, + ElementDefinitionOptions: base_config_1.TYPE, + ErrorEventInit: base_config_1.TYPE, + EventInit: base_config_1.TYPE, + EventListenerOptions: base_config_1.TYPE, + EventModifierInit: base_config_1.TYPE, + EventSourceInit: base_config_1.TYPE, + ExceptionInformation: base_config_1.TYPE, + FilePropertyBag: base_config_1.TYPE, + FocusEventInit: base_config_1.TYPE, + FocusNavigationEventInit: base_config_1.TYPE, + FocusNavigationOrigin: base_config_1.TYPE, + FocusOptions: base_config_1.TYPE, + FullscreenOptions: base_config_1.TYPE, + GainOptions: base_config_1.TYPE, + GamepadEventInit: base_config_1.TYPE, + GetNotificationOptions: base_config_1.TYPE, + GetRootNodeOptions: base_config_1.TYPE, + HashChangeEventInit: base_config_1.TYPE, + HkdfParams: base_config_1.TYPE, + HmacImportParams: base_config_1.TYPE, + HmacKeyAlgorithm: base_config_1.TYPE, + HmacKeyGenParams: base_config_1.TYPE, + IDBIndexParameters: base_config_1.TYPE, + IDBObjectStoreParameters: base_config_1.TYPE, + IDBVersionChangeEventInit: base_config_1.TYPE, + IIRFilterOptions: base_config_1.TYPE, + ImageBitmapOptions: base_config_1.TYPE, + ImageBitmapRenderingContextSettings: base_config_1.TYPE, + ImageEncodeOptions: base_config_1.TYPE, + ImportMeta: base_config_1.TYPE, + InputEventInit: base_config_1.TYPE, + IntersectionObserverEntryInit: base_config_1.TYPE, + IntersectionObserverInit: base_config_1.TYPE, + JsonWebKey: base_config_1.TYPE, + KeyAlgorithm: base_config_1.TYPE, + KeyboardEventInit: base_config_1.TYPE, + Keyframe: base_config_1.TYPE, + KeyframeAnimationOptions: base_config_1.TYPE, + KeyframeEffectOptions: base_config_1.TYPE, + MediaElementAudioSourceOptions: base_config_1.TYPE, + MediaEncryptedEventInit: base_config_1.TYPE, + MediaKeyMessageEventInit: base_config_1.TYPE, + MediaKeySystemConfiguration: base_config_1.TYPE, + MediaKeySystemMediaCapability: base_config_1.TYPE, + MediaQueryListEventInit: base_config_1.TYPE, + MediaStreamAudioSourceOptions: base_config_1.TYPE, + MediaStreamConstraints: base_config_1.TYPE, + MediaStreamErrorEventInit: base_config_1.TYPE, + MediaStreamEventInit: base_config_1.TYPE, + MediaStreamTrackAudioSourceOptions: base_config_1.TYPE, + MediaStreamTrackEventInit: base_config_1.TYPE, + MediaTrackCapabilities: base_config_1.TYPE, + MediaTrackConstraintSet: base_config_1.TYPE, + MediaTrackConstraints: base_config_1.TYPE, + MediaTrackSettings: base_config_1.TYPE, + MediaTrackSupportedConstraints: base_config_1.TYPE, + MessageEventInit: base_config_1.TYPE, + MidiPermissionDescriptor: base_config_1.TYPE, + MouseEventInit: base_config_1.TYPE, + MultiCacheQueryOptions: base_config_1.TYPE, + MutationObserverInit: base_config_1.TYPE, + NavigationPreloadState: base_config_1.TYPE, + NotificationAction: base_config_1.TYPE, + NotificationOptions: base_config_1.TYPE, + OfflineAudioCompletionEventInit: base_config_1.TYPE, + OfflineAudioContextOptions: base_config_1.TYPE, + OptionalEffectTiming: base_config_1.TYPE, + OscillatorOptions: base_config_1.TYPE, + PageTransitionEventInit: base_config_1.TYPE, + PannerOptions: base_config_1.TYPE, + PayerErrors: base_config_1.TYPE, + PaymentCurrencyAmount: base_config_1.TYPE, + PaymentDetailsBase: base_config_1.TYPE, + PaymentDetailsInit: base_config_1.TYPE, + PaymentDetailsModifier: base_config_1.TYPE, + PaymentDetailsUpdate: base_config_1.TYPE, + PaymentItem: base_config_1.TYPE, + PaymentMethodChangeEventInit: base_config_1.TYPE, + PaymentMethodData: base_config_1.TYPE, + PaymentOptions: base_config_1.TYPE, + PaymentRequestUpdateEventInit: base_config_1.TYPE, + PaymentShippingOption: base_config_1.TYPE, + PaymentValidationErrors: base_config_1.TYPE, + Pbkdf2Params: base_config_1.TYPE, + PerformanceObserverInit: base_config_1.TYPE, + PeriodicWaveConstraints: base_config_1.TYPE, + PeriodicWaveOptions: base_config_1.TYPE, + PermissionDescriptor: base_config_1.TYPE, + PointerEventInit: base_config_1.TYPE, + PopStateEventInit: base_config_1.TYPE, + PositionOptions: base_config_1.TYPE, + PostMessageOptions: base_config_1.TYPE, + ProgressEventInit: base_config_1.TYPE, + PromiseRejectionEventInit: base_config_1.TYPE, + PropertyIndexedKeyframes: base_config_1.TYPE, + PublicKeyCredentialCreationOptions: base_config_1.TYPE, + PublicKeyCredentialDescriptor: base_config_1.TYPE, + PublicKeyCredentialEntity: base_config_1.TYPE, + PublicKeyCredentialParameters: base_config_1.TYPE, + PublicKeyCredentialRequestOptions: base_config_1.TYPE, + PublicKeyCredentialRpEntity: base_config_1.TYPE, + PublicKeyCredentialUserEntity: base_config_1.TYPE, + PushPermissionDescriptor: base_config_1.TYPE, + PushSubscriptionJSON: base_config_1.TYPE, + PushSubscriptionOptionsInit: base_config_1.TYPE, + QueuingStrategy: base_config_1.TYPE, + QueuingStrategyInit: base_config_1.TYPE, + RTCAnswerOptions: base_config_1.TYPE, + RTCCertificateExpiration: base_config_1.TYPE, + RTCConfiguration: base_config_1.TYPE, + RTCDTMFToneChangeEventInit: base_config_1.TYPE, + RTCDataChannelEventInit: base_config_1.TYPE, + RTCDataChannelInit: base_config_1.TYPE, + RTCDtlsFingerprint: base_config_1.TYPE, + RTCDtlsParameters: base_config_1.TYPE, + RTCErrorEventInit: base_config_1.TYPE, + RTCErrorInit: base_config_1.TYPE, + RTCIceCandidateAttributes: base_config_1.TYPE, + RTCIceCandidateComplete: base_config_1.TYPE, + RTCIceCandidateDictionary: base_config_1.TYPE, + RTCIceCandidateInit: base_config_1.TYPE, + RTCIceCandidatePair: base_config_1.TYPE, + RTCIceCandidatePairStats: base_config_1.TYPE, + RTCIceGatherOptions: base_config_1.TYPE, + RTCIceParameters: base_config_1.TYPE, + RTCIceServer: base_config_1.TYPE, + RTCIdentityProviderOptions: base_config_1.TYPE, + RTCInboundRTPStreamStats: base_config_1.TYPE, + RTCLocalSessionDescriptionInit: base_config_1.TYPE, + RTCMediaStreamTrackStats: base_config_1.TYPE, + RTCOfferAnswerOptions: base_config_1.TYPE, + RTCOfferOptions: base_config_1.TYPE, + RTCOutboundRTPStreamStats: base_config_1.TYPE, + RTCPeerConnectionIceErrorEventInit: base_config_1.TYPE, + RTCPeerConnectionIceEventInit: base_config_1.TYPE, + RTCRTPStreamStats: base_config_1.TYPE, + RTCRtcpFeedback: base_config_1.TYPE, + RTCRtcpParameters: base_config_1.TYPE, + RTCRtpCapabilities: base_config_1.TYPE, + RTCRtpCodecCapability: base_config_1.TYPE, + RTCRtpCodecParameters: base_config_1.TYPE, + RTCRtpCodingParameters: base_config_1.TYPE, + RTCRtpContributingSource: base_config_1.TYPE, + RTCRtpEncodingParameters: base_config_1.TYPE, + RTCRtpFecParameters: base_config_1.TYPE, + RTCRtpHeaderExtension: base_config_1.TYPE, + RTCRtpHeaderExtensionCapability: base_config_1.TYPE, + RTCRtpHeaderExtensionParameters: base_config_1.TYPE, + RTCRtpParameters: base_config_1.TYPE, + RTCRtpReceiveParameters: base_config_1.TYPE, + RTCRtpRtxParameters: base_config_1.TYPE, + RTCRtpSendParameters: base_config_1.TYPE, + RTCRtpSynchronizationSource: base_config_1.TYPE, + RTCRtpTransceiverInit: base_config_1.TYPE, + RTCRtpUnhandled: base_config_1.TYPE, + RTCSessionDescriptionInit: base_config_1.TYPE, + RTCSrtpKeyParam: base_config_1.TYPE, + RTCSrtpSdesParameters: base_config_1.TYPE, + RTCSsrcRange: base_config_1.TYPE, + RTCStats: base_config_1.TYPE, + RTCStatsReport: base_config_1.TYPE_VALUE, + RTCTrackEventInit: base_config_1.TYPE, + RTCTransportStats: base_config_1.TYPE, + ReadableStreamDefaultReadDoneResult: base_config_1.TYPE, + ReadableStreamDefaultReadValueResult: base_config_1.TYPE, + ReadableWritablePair: base_config_1.TYPE, + RegistrationOptions: base_config_1.TYPE, + RequestInit: base_config_1.TYPE, + ResizeObserverOptions: base_config_1.TYPE, + ResponseInit: base_config_1.TYPE, + RsaHashedImportParams: base_config_1.TYPE, + RsaHashedKeyAlgorithm: base_config_1.TYPE, + RsaHashedKeyGenParams: base_config_1.TYPE, + RsaKeyAlgorithm: base_config_1.TYPE, + RsaKeyGenParams: base_config_1.TYPE, + RsaOaepParams: base_config_1.TYPE, + RsaOtherPrimesInfo: base_config_1.TYPE, + RsaPssParams: base_config_1.TYPE, + SVGBoundingBoxOptions: base_config_1.TYPE, + ScrollIntoViewOptions: base_config_1.TYPE, + ScrollOptions: base_config_1.TYPE, + ScrollToOptions: base_config_1.TYPE, + SecurityPolicyViolationEventInit: base_config_1.TYPE, + ShadowRootInit: base_config_1.TYPE, + ShareData: base_config_1.TYPE, + SpeechRecognitionErrorEventInit: base_config_1.TYPE, + SpeechRecognitionEventInit: base_config_1.TYPE, + SpeechSynthesisErrorEventInit: base_config_1.TYPE, + SpeechSynthesisEventInit: base_config_1.TYPE, + StaticRangeInit: base_config_1.TYPE, + StereoPannerOptions: base_config_1.TYPE, + StorageEstimate: base_config_1.TYPE, + StorageEventInit: base_config_1.TYPE, + StoreExceptionsInformation: base_config_1.TYPE, + StoreSiteSpecificExceptionsInformation: base_config_1.TYPE, + StreamPipeOptions: base_config_1.TYPE, + TextDecodeOptions: base_config_1.TYPE, + TextDecoderOptions: base_config_1.TYPE, + TextEncoderEncodeIntoResult: base_config_1.TYPE, + TouchEventInit: base_config_1.TYPE, + TouchInit: base_config_1.TYPE, + TrackEventInit: base_config_1.TYPE, + Transformer: base_config_1.TYPE, + TransitionEventInit: base_config_1.TYPE, + UIEventInit: base_config_1.TYPE, + ULongRange: base_config_1.TYPE, + UnderlyingSink: base_config_1.TYPE, + UnderlyingSource: base_config_1.TYPE, + VRDisplayEventInit: base_config_1.TYPE, + VRLayer: base_config_1.TYPE, + VRStageParameters: base_config_1.TYPE, + WaveShaperOptions: base_config_1.TYPE, + WebGLContextAttributes: base_config_1.TYPE, + WebGLContextEventInit: base_config_1.TYPE, + WheelEventInit: base_config_1.TYPE, + WorkerOptions: base_config_1.TYPE, + WorkletOptions: base_config_1.TYPE, + EventListener: base_config_1.TYPE, + XPathNSResolver: base_config_1.TYPE, + ANGLE_instanced_arrays: base_config_1.TYPE, + AbortController: base_config_1.TYPE_VALUE, + AbortSignalEventMap: base_config_1.TYPE, + AbortSignal: base_config_1.TYPE_VALUE, + AbstractRange: base_config_1.TYPE_VALUE, + AbstractWorkerEventMap: base_config_1.TYPE, + AbstractWorker: base_config_1.TYPE, + AesCfbParams: base_config_1.TYPE, + AesCmacParams: base_config_1.TYPE, + AnalyserNode: base_config_1.TYPE_VALUE, + Animatable: base_config_1.TYPE, + AnimationEventMap: base_config_1.TYPE, + Animation: base_config_1.TYPE_VALUE, + AnimationEffect: base_config_1.TYPE_VALUE, + AnimationEvent: base_config_1.TYPE_VALUE, + AnimationFrameProvider: base_config_1.TYPE, + AnimationPlaybackEvent: base_config_1.TYPE_VALUE, + AnimationTimeline: base_config_1.TYPE_VALUE, + ApplicationCacheEventMap: base_config_1.TYPE, + ApplicationCache: base_config_1.TYPE_VALUE, + Attr: base_config_1.TYPE_VALUE, + AudioBuffer: base_config_1.TYPE_VALUE, + AudioBufferSourceNode: base_config_1.TYPE_VALUE, + AudioContext: base_config_1.TYPE_VALUE, + AudioDestinationNode: base_config_1.TYPE_VALUE, + AudioListener: base_config_1.TYPE_VALUE, + AudioNode: base_config_1.TYPE_VALUE, + AudioParam: base_config_1.TYPE_VALUE, + AudioParamMap: base_config_1.TYPE_VALUE, + AudioProcessingEvent: base_config_1.TYPE_VALUE, + AudioScheduledSourceNodeEventMap: base_config_1.TYPE, + AudioScheduledSourceNode: base_config_1.TYPE_VALUE, + AudioWorklet: base_config_1.TYPE_VALUE, + AudioWorkletNodeEventMap: base_config_1.TYPE, + AudioWorkletNode: base_config_1.TYPE_VALUE, + AuthenticatorAssertionResponse: base_config_1.TYPE_VALUE, + AuthenticatorAttestationResponse: base_config_1.TYPE_VALUE, + AuthenticatorResponse: base_config_1.TYPE_VALUE, + BarProp: base_config_1.TYPE_VALUE, + BaseAudioContextEventMap: base_config_1.TYPE, + BaseAudioContext: base_config_1.TYPE_VALUE, + BeforeUnloadEvent: base_config_1.TYPE_VALUE, + BhxBrowser: base_config_1.TYPE_VALUE, + BiquadFilterNode: base_config_1.TYPE_VALUE, + Blob: base_config_1.TYPE_VALUE, + Body: base_config_1.TYPE, + BroadcastChannelEventMap: base_config_1.TYPE, + BroadcastChannel: base_config_1.TYPE_VALUE, + ByteLengthQueuingStrategy: base_config_1.TYPE_VALUE, + CDATASection: base_config_1.TYPE_VALUE, + CSSConditionRule: base_config_1.TYPE_VALUE, + CSSFontFaceRule: base_config_1.TYPE_VALUE, + CSSGroupingRule: base_config_1.TYPE_VALUE, + CSSImportRule: base_config_1.TYPE_VALUE, + CSSKeyframeRule: base_config_1.TYPE_VALUE, + CSSKeyframesRule: base_config_1.TYPE_VALUE, + CSSMediaRule: base_config_1.TYPE_VALUE, + CSSNamespaceRule: base_config_1.TYPE_VALUE, + CSSPageRule: base_config_1.TYPE_VALUE, + CSSRule: base_config_1.TYPE_VALUE, + CSSRuleList: base_config_1.TYPE_VALUE, + CSSStyleDeclaration: base_config_1.TYPE_VALUE, + CSSStyleRule: base_config_1.TYPE_VALUE, + CSSStyleSheet: base_config_1.TYPE_VALUE, + CSSSupportsRule: base_config_1.TYPE_VALUE, + Cache: base_config_1.TYPE_VALUE, + CacheStorage: base_config_1.TYPE_VALUE, + CanvasCompositing: base_config_1.TYPE, + CanvasDrawImage: base_config_1.TYPE, + CanvasDrawPath: base_config_1.TYPE, + CanvasFillStrokeStyles: base_config_1.TYPE, + CanvasFilters: base_config_1.TYPE, + CanvasGradient: base_config_1.TYPE_VALUE, + CanvasImageData: base_config_1.TYPE, + CanvasImageSmoothing: base_config_1.TYPE, + CanvasPath: base_config_1.TYPE, + CanvasPathDrawingStyles: base_config_1.TYPE, + CanvasPattern: base_config_1.TYPE_VALUE, + CanvasRect: base_config_1.TYPE, + CanvasRenderingContext2D: base_config_1.TYPE_VALUE, + CanvasShadowStyles: base_config_1.TYPE, + CanvasState: base_config_1.TYPE, + CanvasText: base_config_1.TYPE, + CanvasTextDrawingStyles: base_config_1.TYPE, + CanvasTransform: base_config_1.TYPE, + CanvasUserInterface: base_config_1.TYPE, + CaretPosition: base_config_1.TYPE_VALUE, + ChannelMergerNode: base_config_1.TYPE_VALUE, + ChannelSplitterNode: base_config_1.TYPE_VALUE, + CharacterData: base_config_1.TYPE_VALUE, + ChildNode: base_config_1.TYPE, + ClientRect: base_config_1.TYPE_VALUE, + ClientRectList: base_config_1.TYPE_VALUE, + Clipboard: base_config_1.TYPE_VALUE, + ClipboardEvent: base_config_1.TYPE_VALUE, + CloseEvent: base_config_1.TYPE_VALUE, + Comment: base_config_1.TYPE_VALUE, + CompositionEvent: base_config_1.TYPE_VALUE, + ConcatParams: base_config_1.TYPE, + ConstantSourceNode: base_config_1.TYPE_VALUE, + ConvolverNode: base_config_1.TYPE_VALUE, + CountQueuingStrategy: base_config_1.TYPE_VALUE, + Credential: base_config_1.TYPE_VALUE, + CredentialsContainer: base_config_1.TYPE_VALUE, + Crypto: base_config_1.TYPE_VALUE, + CryptoKey: base_config_1.TYPE_VALUE, + CryptoKeyPair: base_config_1.TYPE_VALUE, + CustomElementRegistry: base_config_1.TYPE_VALUE, + CustomEvent: base_config_1.TYPE_VALUE, + DOMError: base_config_1.TYPE_VALUE, + DOMException: base_config_1.TYPE_VALUE, + DOMImplementation: base_config_1.TYPE_VALUE, + DOMMatrix: base_config_1.TYPE_VALUE, + SVGMatrix: base_config_1.TYPE_VALUE, + WebKitCSSMatrix: base_config_1.TYPE_VALUE, + DOMMatrixReadOnly: base_config_1.TYPE_VALUE, + DOMParser: base_config_1.TYPE_VALUE, + DOMPoint: base_config_1.TYPE_VALUE, + SVGPoint: base_config_1.TYPE_VALUE, + DOMPointReadOnly: base_config_1.TYPE_VALUE, + DOMQuad: base_config_1.TYPE_VALUE, + DOMRect: base_config_1.TYPE_VALUE, + SVGRect: base_config_1.TYPE_VALUE, + DOMRectList: base_config_1.TYPE_VALUE, + DOMRectReadOnly: base_config_1.TYPE_VALUE, + DOMSettableTokenList: base_config_1.TYPE_VALUE, + DOMStringList: base_config_1.TYPE_VALUE, + DOMStringMap: base_config_1.TYPE_VALUE, + DOMTokenList: base_config_1.TYPE_VALUE, + DataCue: base_config_1.TYPE_VALUE, + DataTransfer: base_config_1.TYPE_VALUE, + DataTransferItem: base_config_1.TYPE_VALUE, + DataTransferItemList: base_config_1.TYPE_VALUE, + DeferredPermissionRequest: base_config_1.TYPE_VALUE, + DelayNode: base_config_1.TYPE_VALUE, + DeviceAcceleration: base_config_1.TYPE_VALUE, + DeviceMotionEvent: base_config_1.TYPE_VALUE, + DeviceMotionEventAcceleration: base_config_1.TYPE, + DeviceMotionEventRotationRate: base_config_1.TYPE, + DeviceOrientationEvent: base_config_1.TYPE_VALUE, + DeviceRotationRate: base_config_1.TYPE_VALUE, + DhImportKeyParams: base_config_1.TYPE, + DhKeyAlgorithm: base_config_1.TYPE, + DhKeyDeriveParams: base_config_1.TYPE, + DhKeyGenParams: base_config_1.TYPE, + DocumentEventMap: base_config_1.TYPE, + Document: base_config_1.TYPE_VALUE, + DocumentAndElementEventHandlersEventMap: base_config_1.TYPE, + DocumentAndElementEventHandlers: base_config_1.TYPE, + DocumentEvent: base_config_1.TYPE, + DocumentFragment: base_config_1.TYPE_VALUE, + DocumentOrShadowRoot: base_config_1.TYPE, + DocumentTimeline: base_config_1.TYPE_VALUE, + DocumentType: base_config_1.TYPE_VALUE, + DragEvent: base_config_1.TYPE_VALUE, + DynamicsCompressorNode: base_config_1.TYPE_VALUE, + EXT_blend_minmax: base_config_1.TYPE, + EXT_frag_depth: base_config_1.TYPE, + EXT_sRGB: base_config_1.TYPE, + EXT_shader_texture_lod: base_config_1.TYPE, + EXT_texture_filter_anisotropic: base_config_1.TYPE, + ElementEventMap: base_config_1.TYPE, + Element: base_config_1.TYPE_VALUE, + ElementCSSInlineStyle: base_config_1.TYPE, + ElementContentEditable: base_config_1.TYPE, + ErrorEvent: base_config_1.TYPE_VALUE, + Event: base_config_1.TYPE_VALUE, + EventListenerObject: base_config_1.TYPE, + EventSourceEventMap: base_config_1.TYPE, + EventSource: base_config_1.TYPE_VALUE, + EventTarget: base_config_1.TYPE_VALUE, + ExtensionScriptApis: base_config_1.TYPE_VALUE, + External: base_config_1.TYPE_VALUE, + File: base_config_1.TYPE_VALUE, + FileList: base_config_1.TYPE_VALUE, + FileReaderEventMap: base_config_1.TYPE, + FileReader: base_config_1.TYPE_VALUE, + FocusEvent: base_config_1.TYPE_VALUE, + FocusNavigationEvent: base_config_1.TYPE_VALUE, + FormData: base_config_1.TYPE_VALUE, + GainNode: base_config_1.TYPE_VALUE, + Gamepad: base_config_1.TYPE_VALUE, + GamepadButton: base_config_1.TYPE_VALUE, + GamepadEvent: base_config_1.TYPE_VALUE, + GamepadHapticActuator: base_config_1.TYPE_VALUE, + GamepadPose: base_config_1.TYPE_VALUE, + GenericTransformStream: base_config_1.TYPE, + Geolocation: base_config_1.TYPE_VALUE, + GeolocationCoordinates: base_config_1.TYPE_VALUE, + GeolocationPosition: base_config_1.TYPE_VALUE, + GeolocationPositionError: base_config_1.TYPE_VALUE, + GlobalEventHandlersEventMap: base_config_1.TYPE, + GlobalEventHandlers: base_config_1.TYPE, + HTMLAllCollection: base_config_1.TYPE_VALUE, + HTMLAnchorElement: base_config_1.TYPE_VALUE, + HTMLAppletElement: base_config_1.TYPE_VALUE, + HTMLAreaElement: base_config_1.TYPE_VALUE, + HTMLAudioElement: base_config_1.TYPE_VALUE, + HTMLBRElement: base_config_1.TYPE_VALUE, + HTMLBaseElement: base_config_1.TYPE_VALUE, + HTMLBodyElementEventMap: base_config_1.TYPE, + HTMLBodyElement: base_config_1.TYPE_VALUE, + HTMLButtonElement: base_config_1.TYPE_VALUE, + HTMLCanvasElement: base_config_1.TYPE_VALUE, + HTMLCollectionBase: base_config_1.TYPE, + HTMLCollection: base_config_1.TYPE_VALUE, + HTMLCollectionOf: base_config_1.TYPE, + HTMLDListElement: base_config_1.TYPE_VALUE, + HTMLDataElement: base_config_1.TYPE_VALUE, + HTMLDataListElement: base_config_1.TYPE_VALUE, + HTMLDetailsElement: base_config_1.TYPE_VALUE, + HTMLDialogElement: base_config_1.TYPE_VALUE, + HTMLDirectoryElement: base_config_1.TYPE_VALUE, + HTMLDivElement: base_config_1.TYPE_VALUE, + HTMLDocument: base_config_1.TYPE_VALUE, + HTMLElementEventMap: base_config_1.TYPE, + HTMLElement: base_config_1.TYPE_VALUE, + HTMLEmbedElement: base_config_1.TYPE_VALUE, + HTMLFieldSetElement: base_config_1.TYPE_VALUE, + HTMLFontElement: base_config_1.TYPE_VALUE, + HTMLFormControlsCollection: base_config_1.TYPE_VALUE, + HTMLFormElement: base_config_1.TYPE_VALUE, + HTMLFrameElement: base_config_1.TYPE_VALUE, + HTMLFrameSetElementEventMap: base_config_1.TYPE, + HTMLFrameSetElement: base_config_1.TYPE_VALUE, + HTMLHRElement: base_config_1.TYPE_VALUE, + HTMLHeadElement: base_config_1.TYPE_VALUE, + HTMLHeadingElement: base_config_1.TYPE_VALUE, + HTMLHtmlElement: base_config_1.TYPE_VALUE, + HTMLHyperlinkElementUtils: base_config_1.TYPE, + HTMLIFrameElement: base_config_1.TYPE_VALUE, + HTMLImageElement: base_config_1.TYPE_VALUE, + HTMLInputElement: base_config_1.TYPE_VALUE, + HTMLLIElement: base_config_1.TYPE_VALUE, + HTMLLabelElement: base_config_1.TYPE_VALUE, + HTMLLegendElement: base_config_1.TYPE_VALUE, + HTMLLinkElement: base_config_1.TYPE_VALUE, + HTMLMapElement: base_config_1.TYPE_VALUE, + HTMLMarqueeElementEventMap: base_config_1.TYPE, + HTMLMarqueeElement: base_config_1.TYPE_VALUE, + HTMLMediaElementEventMap: base_config_1.TYPE, + HTMLMediaElement: base_config_1.TYPE_VALUE, + HTMLMenuElement: base_config_1.TYPE_VALUE, + HTMLMetaElement: base_config_1.TYPE_VALUE, + HTMLMeterElement: base_config_1.TYPE_VALUE, + HTMLModElement: base_config_1.TYPE_VALUE, + HTMLOListElement: base_config_1.TYPE_VALUE, + HTMLObjectElement: base_config_1.TYPE_VALUE, + HTMLOptGroupElement: base_config_1.TYPE_VALUE, + HTMLOptionElement: base_config_1.TYPE_VALUE, + HTMLOptionsCollection: base_config_1.TYPE_VALUE, + HTMLOrSVGElement: base_config_1.TYPE, + HTMLOutputElement: base_config_1.TYPE_VALUE, + HTMLParagraphElement: base_config_1.TYPE_VALUE, + HTMLParamElement: base_config_1.TYPE_VALUE, + HTMLPictureElement: base_config_1.TYPE_VALUE, + HTMLPreElement: base_config_1.TYPE_VALUE, + HTMLProgressElement: base_config_1.TYPE_VALUE, + HTMLQuoteElement: base_config_1.TYPE_VALUE, + HTMLScriptElement: base_config_1.TYPE_VALUE, + HTMLSelectElement: base_config_1.TYPE_VALUE, + HTMLSlotElement: base_config_1.TYPE_VALUE, + HTMLSourceElement: base_config_1.TYPE_VALUE, + HTMLSpanElement: base_config_1.TYPE_VALUE, + HTMLStyleElement: base_config_1.TYPE_VALUE, + HTMLTableCaptionElement: base_config_1.TYPE_VALUE, + HTMLTableCellElement: base_config_1.TYPE_VALUE, + HTMLTableColElement: base_config_1.TYPE_VALUE, + HTMLTableDataCellElement: base_config_1.TYPE_VALUE, + HTMLTableElement: base_config_1.TYPE_VALUE, + HTMLTableHeaderCellElement: base_config_1.TYPE_VALUE, + HTMLTableRowElement: base_config_1.TYPE_VALUE, + HTMLTableSectionElement: base_config_1.TYPE_VALUE, + HTMLTemplateElement: base_config_1.TYPE_VALUE, + HTMLTextAreaElement: base_config_1.TYPE_VALUE, + HTMLTimeElement: base_config_1.TYPE_VALUE, + HTMLTitleElement: base_config_1.TYPE_VALUE, + HTMLTrackElement: base_config_1.TYPE_VALUE, + HTMLUListElement: base_config_1.TYPE_VALUE, + HTMLUnknownElement: base_config_1.TYPE_VALUE, + HTMLVideoElement: base_config_1.TYPE_VALUE, + HashChangeEvent: base_config_1.TYPE_VALUE, + Headers: base_config_1.TYPE_VALUE, + History: base_config_1.TYPE_VALUE, + IDBArrayKey: base_config_1.TYPE, + IDBCursor: base_config_1.TYPE_VALUE, + IDBCursorWithValue: base_config_1.TYPE_VALUE, + IDBDatabaseEventMap: base_config_1.TYPE, + IDBDatabase: base_config_1.TYPE_VALUE, + IDBFactory: base_config_1.TYPE_VALUE, + IDBIndex: base_config_1.TYPE_VALUE, + IDBKeyRange: base_config_1.TYPE_VALUE, + IDBObjectStore: base_config_1.TYPE_VALUE, + IDBOpenDBRequestEventMap: base_config_1.TYPE, + IDBOpenDBRequest: base_config_1.TYPE_VALUE, + IDBRequestEventMap: base_config_1.TYPE, + IDBRequest: base_config_1.TYPE_VALUE, + IDBTransactionEventMap: base_config_1.TYPE, + IDBTransaction: base_config_1.TYPE_VALUE, + IDBVersionChangeEvent: base_config_1.TYPE_VALUE, + IIRFilterNode: base_config_1.TYPE_VALUE, + ImageBitmap: base_config_1.TYPE_VALUE, + ImageBitmapRenderingContext: base_config_1.TYPE_VALUE, + ImageData: base_config_1.TYPE_VALUE, + InnerHTML: base_config_1.TYPE, + InputDeviceInfo: base_config_1.TYPE_VALUE, + InputEvent: base_config_1.TYPE_VALUE, + IntersectionObserver: base_config_1.TYPE_VALUE, + IntersectionObserverEntry: base_config_1.TYPE_VALUE, + KeyboardEvent: base_config_1.TYPE_VALUE, + KeyframeEffect: base_config_1.TYPE_VALUE, + LinkStyle: base_config_1.TYPE, + ListeningStateChangedEvent: base_config_1.TYPE_VALUE, + Location: base_config_1.TYPE_VALUE, + MSAssertion: base_config_1.TYPE_VALUE, + MSBlobBuilder: base_config_1.TYPE_VALUE, + MSFIDOCredentialAssertion: base_config_1.TYPE_VALUE, + MSFIDOSignature: base_config_1.TYPE_VALUE, + MSFIDOSignatureAssertion: base_config_1.TYPE_VALUE, + MSFileSaver: base_config_1.TYPE, + MSGesture: base_config_1.TYPE_VALUE, + MSGraphicsTrust: base_config_1.TYPE_VALUE, + MSInputMethodContextEventMap: base_config_1.TYPE, + MSInputMethodContext: base_config_1.TYPE_VALUE, + MSMediaKeyError: base_config_1.TYPE_VALUE, + MSMediaKeySession: base_config_1.TYPE_VALUE, + MSMediaKeys: base_config_1.TYPE_VALUE, + MSNavigatorDoNotTrack: base_config_1.TYPE, + MSStream: base_config_1.TYPE_VALUE, + MediaDeviceInfo: base_config_1.TYPE_VALUE, + MediaDevicesEventMap: base_config_1.TYPE, + MediaDevices: base_config_1.TYPE_VALUE, + MediaElementAudioSourceNode: base_config_1.TYPE_VALUE, + MediaEncryptedEvent: base_config_1.TYPE_VALUE, + MediaError: base_config_1.TYPE_VALUE, + MediaKeyMessageEvent: base_config_1.TYPE_VALUE, + MediaKeySessionEventMap: base_config_1.TYPE, + MediaKeySession: base_config_1.TYPE_VALUE, + MediaKeyStatusMap: base_config_1.TYPE_VALUE, + MediaKeySystemAccess: base_config_1.TYPE_VALUE, + MediaKeys: base_config_1.TYPE_VALUE, + MediaList: base_config_1.TYPE_VALUE, + MediaQueryListEventMap: base_config_1.TYPE, + MediaQueryList: base_config_1.TYPE_VALUE, + MediaQueryListEvent: base_config_1.TYPE_VALUE, + MediaSourceEventMap: base_config_1.TYPE, + MediaSource: base_config_1.TYPE_VALUE, + MediaStreamEventMap: base_config_1.TYPE, + MediaStream: base_config_1.TYPE_VALUE, + MediaStreamAudioDestinationNode: base_config_1.TYPE_VALUE, + MediaStreamAudioSourceNode: base_config_1.TYPE_VALUE, + MediaStreamError: base_config_1.TYPE_VALUE, + MediaStreamErrorEvent: base_config_1.TYPE_VALUE, + MediaStreamEvent: base_config_1.TYPE_VALUE, + MediaStreamTrackEventMap: base_config_1.TYPE, + MediaStreamTrack: base_config_1.TYPE_VALUE, + MediaStreamTrackAudioSourceNode: base_config_1.TYPE_VALUE, + MediaStreamTrackEvent: base_config_1.TYPE_VALUE, + MessageChannel: base_config_1.TYPE_VALUE, + MessageEvent: base_config_1.TYPE_VALUE, + MessagePortEventMap: base_config_1.TYPE, + MessagePort: base_config_1.TYPE_VALUE, + MimeType: base_config_1.TYPE_VALUE, + MimeTypeArray: base_config_1.TYPE_VALUE, + MouseEvent: base_config_1.TYPE_VALUE, + MutationEvent: base_config_1.TYPE_VALUE, + MutationObserver: base_config_1.TYPE_VALUE, + MutationRecord: base_config_1.TYPE_VALUE, + NamedNodeMap: base_config_1.TYPE_VALUE, + NavigationPreloadManager: base_config_1.TYPE_VALUE, + Navigator: base_config_1.TYPE_VALUE, + NavigatorAutomationInformation: base_config_1.TYPE, + NavigatorBeacon: base_config_1.TYPE, + NavigatorConcurrentHardware: base_config_1.TYPE, + NavigatorContentUtils: base_config_1.TYPE, + NavigatorCookies: base_config_1.TYPE, + NavigatorID: base_config_1.TYPE, + NavigatorLanguage: base_config_1.TYPE, + NavigatorOnLine: base_config_1.TYPE, + NavigatorPlugins: base_config_1.TYPE, + NavigatorStorage: base_config_1.TYPE, + Node: base_config_1.TYPE_VALUE, + NodeFilter: base_config_1.TYPE_VALUE, + NodeIterator: base_config_1.TYPE_VALUE, + NodeList: base_config_1.TYPE_VALUE, + NodeListOf: base_config_1.TYPE, + NonDocumentTypeChildNode: base_config_1.TYPE, + NonElementParentNode: base_config_1.TYPE, + NotificationEventMap: base_config_1.TYPE, + Notification: base_config_1.TYPE_VALUE, + OES_element_index_uint: base_config_1.TYPE, + OES_standard_derivatives: base_config_1.TYPE, + OES_texture_float: base_config_1.TYPE, + OES_texture_float_linear: base_config_1.TYPE, + OES_texture_half_float: base_config_1.TYPE, + OES_texture_half_float_linear: base_config_1.TYPE, + OES_vertex_array_object: base_config_1.TYPE, + OfflineAudioCompletionEvent: base_config_1.TYPE_VALUE, + OfflineAudioContextEventMap: base_config_1.TYPE, + OfflineAudioContext: base_config_1.TYPE_VALUE, + OffscreenCanvas: base_config_1.TYPE_VALUE, + OffscreenCanvasRenderingContext2D: base_config_1.TYPE_VALUE, + OscillatorNode: base_config_1.TYPE_VALUE, + OverconstrainedError: base_config_1.TYPE_VALUE, + OverflowEvent: base_config_1.TYPE_VALUE, + PageTransitionEvent: base_config_1.TYPE_VALUE, + PannerNode: base_config_1.TYPE_VALUE, + ParentNode: base_config_1.TYPE, + Path2D: base_config_1.TYPE_VALUE, + PaymentAddress: base_config_1.TYPE_VALUE, + PaymentMethodChangeEvent: base_config_1.TYPE_VALUE, + PaymentRequestEventMap: base_config_1.TYPE, + PaymentRequest: base_config_1.TYPE_VALUE, + PaymentRequestUpdateEvent: base_config_1.TYPE_VALUE, + PaymentResponseEventMap: base_config_1.TYPE, + PaymentResponse: base_config_1.TYPE_VALUE, + PerfWidgetExternal: base_config_1.TYPE_VALUE, + PerformanceEventMap: base_config_1.TYPE, + Performance: base_config_1.TYPE_VALUE, + PerformanceEntry: base_config_1.TYPE_VALUE, + PerformanceMark: base_config_1.TYPE_VALUE, + PerformanceMeasure: base_config_1.TYPE_VALUE, + PerformanceNavigation: base_config_1.TYPE_VALUE, + PerformanceNavigationTiming: base_config_1.TYPE_VALUE, + PerformanceObserver: base_config_1.TYPE_VALUE, + PerformanceObserverEntryList: base_config_1.TYPE_VALUE, + PerformanceResourceTiming: base_config_1.TYPE_VALUE, + PerformanceTiming: base_config_1.TYPE_VALUE, + PeriodicWave: base_config_1.TYPE_VALUE, + PermissionRequest: base_config_1.TYPE_VALUE, + PermissionRequestedEvent: base_config_1.TYPE_VALUE, + PermissionStatusEventMap: base_config_1.TYPE, + PermissionStatus: base_config_1.TYPE_VALUE, + Permissions: base_config_1.TYPE_VALUE, + Plugin: base_config_1.TYPE_VALUE, + PluginArray: base_config_1.TYPE_VALUE, + PointerEvent: base_config_1.TYPE_VALUE, + PopStateEvent: base_config_1.TYPE_VALUE, + ProcessingInstruction: base_config_1.TYPE_VALUE, + ProgressEvent: base_config_1.TYPE_VALUE, + PromiseRejectionEvent: base_config_1.TYPE_VALUE, + PublicKeyCredential: base_config_1.TYPE_VALUE, + PushManager: base_config_1.TYPE_VALUE, + PushSubscription: base_config_1.TYPE_VALUE, + PushSubscriptionOptions: base_config_1.TYPE_VALUE, + RTCCertificate: base_config_1.TYPE_VALUE, + RTCDTMFSenderEventMap: base_config_1.TYPE, + RTCDTMFSender: base_config_1.TYPE_VALUE, + RTCDTMFToneChangeEvent: base_config_1.TYPE_VALUE, + RTCDataChannelEventMap: base_config_1.TYPE, + RTCDataChannel: base_config_1.TYPE_VALUE, + RTCDataChannelEvent: base_config_1.TYPE_VALUE, + RTCDtlsTransportEventMap: base_config_1.TYPE, + RTCDtlsTransport: base_config_1.TYPE_VALUE, + RTCDtlsTransportStateChangedEvent: base_config_1.TYPE_VALUE, + RTCDtmfSenderEventMap: base_config_1.TYPE, + RTCDtmfSender: base_config_1.TYPE_VALUE, + RTCError: base_config_1.TYPE_VALUE, + RTCErrorEvent: base_config_1.TYPE_VALUE, + RTCIceCandidate: base_config_1.TYPE_VALUE, + RTCIceCandidatePairChangedEvent: base_config_1.TYPE_VALUE, + RTCIceGathererEventMap: base_config_1.TYPE, + RTCIceGatherer: base_config_1.TYPE_VALUE, + RTCIceGathererEvent: base_config_1.TYPE_VALUE, + RTCIceTransportEventMap: base_config_1.TYPE, + RTCIceTransport: base_config_1.TYPE_VALUE, + RTCIceTransportStateChangedEvent: base_config_1.TYPE_VALUE, + RTCIdentityAssertion: base_config_1.TYPE_VALUE, + RTCPeerConnectionEventMap: base_config_1.TYPE, + RTCPeerConnection: base_config_1.TYPE_VALUE, + RTCPeerConnectionIceErrorEvent: base_config_1.TYPE_VALUE, + RTCPeerConnectionIceEvent: base_config_1.TYPE_VALUE, + RTCRtpReceiver: base_config_1.TYPE_VALUE, + RTCRtpSender: base_config_1.TYPE_VALUE, + RTCRtpTransceiver: base_config_1.TYPE_VALUE, + RTCSctpTransportEventMap: base_config_1.TYPE, + RTCSctpTransport: base_config_1.TYPE_VALUE, + RTCSessionDescription: base_config_1.TYPE_VALUE, + RTCSrtpSdesTransportEventMap: base_config_1.TYPE, + RTCSrtpSdesTransport: base_config_1.TYPE_VALUE, + RTCSsrcConflictEvent: base_config_1.TYPE_VALUE, + RTCStatsProvider: base_config_1.TYPE_VALUE, + RTCTrackEvent: base_config_1.TYPE_VALUE, + RadioNodeList: base_config_1.TYPE_VALUE, + RandomSource: base_config_1.TYPE_VALUE, + Range: base_config_1.TYPE_VALUE, + ReadableStream: base_config_1.TYPE_VALUE, + ReadableStreamDefaultController: base_config_1.TYPE_VALUE, + ReadableStreamDefaultReader: base_config_1.TYPE_VALUE, + ReadableStreamGenericReader: base_config_1.TYPE, + Request: base_config_1.TYPE_VALUE, + ResizeObserver: base_config_1.TYPE_VALUE, + ResizeObserverEntry: base_config_1.TYPE_VALUE, + ResizeObserverSize: base_config_1.TYPE_VALUE, + Response: base_config_1.TYPE_VALUE, + SVGAElement: base_config_1.TYPE_VALUE, + SVGAngle: base_config_1.TYPE_VALUE, + SVGAnimateElement: base_config_1.TYPE_VALUE, + SVGAnimateMotionElement: base_config_1.TYPE_VALUE, + SVGAnimateTransformElement: base_config_1.TYPE_VALUE, + SVGAnimatedAngle: base_config_1.TYPE_VALUE, + SVGAnimatedBoolean: base_config_1.TYPE_VALUE, + SVGAnimatedEnumeration: base_config_1.TYPE_VALUE, + SVGAnimatedInteger: base_config_1.TYPE_VALUE, + SVGAnimatedLength: base_config_1.TYPE_VALUE, + SVGAnimatedLengthList: base_config_1.TYPE_VALUE, + SVGAnimatedNumber: base_config_1.TYPE_VALUE, + SVGAnimatedNumberList: base_config_1.TYPE_VALUE, + SVGAnimatedPoints: base_config_1.TYPE, + SVGAnimatedPreserveAspectRatio: base_config_1.TYPE_VALUE, + SVGAnimatedRect: base_config_1.TYPE_VALUE, + SVGAnimatedString: base_config_1.TYPE_VALUE, + SVGAnimatedTransformList: base_config_1.TYPE_VALUE, + SVGAnimationElement: base_config_1.TYPE_VALUE, + SVGCircleElement: base_config_1.TYPE_VALUE, + SVGClipPathElement: base_config_1.TYPE_VALUE, + SVGComponentTransferFunctionElement: base_config_1.TYPE_VALUE, + SVGCursorElement: base_config_1.TYPE_VALUE, + SVGDefsElement: base_config_1.TYPE_VALUE, + SVGDescElement: base_config_1.TYPE_VALUE, + SVGElementEventMap: base_config_1.TYPE, + SVGElement: base_config_1.TYPE_VALUE, + SVGElementInstance: base_config_1.TYPE_VALUE, + SVGElementInstanceList: base_config_1.TYPE_VALUE, + SVGEllipseElement: base_config_1.TYPE_VALUE, + SVGFEBlendElement: base_config_1.TYPE_VALUE, + SVGFEColorMatrixElement: base_config_1.TYPE_VALUE, + SVGFEComponentTransferElement: base_config_1.TYPE_VALUE, + SVGFECompositeElement: base_config_1.TYPE_VALUE, + SVGFEConvolveMatrixElement: base_config_1.TYPE_VALUE, + SVGFEDiffuseLightingElement: base_config_1.TYPE_VALUE, + SVGFEDisplacementMapElement: base_config_1.TYPE_VALUE, + SVGFEDistantLightElement: base_config_1.TYPE_VALUE, + SVGFEDropShadowElement: base_config_1.TYPE_VALUE, + SVGFEFloodElement: base_config_1.TYPE_VALUE, + SVGFEFuncAElement: base_config_1.TYPE_VALUE, + SVGFEFuncBElement: base_config_1.TYPE_VALUE, + SVGFEFuncGElement: base_config_1.TYPE_VALUE, + SVGFEFuncRElement: base_config_1.TYPE_VALUE, + SVGFEGaussianBlurElement: base_config_1.TYPE_VALUE, + SVGFEImageElement: base_config_1.TYPE_VALUE, + SVGFEMergeElement: base_config_1.TYPE_VALUE, + SVGFEMergeNodeElement: base_config_1.TYPE_VALUE, + SVGFEMorphologyElement: base_config_1.TYPE_VALUE, + SVGFEOffsetElement: base_config_1.TYPE_VALUE, + SVGFEPointLightElement: base_config_1.TYPE_VALUE, + SVGFESpecularLightingElement: base_config_1.TYPE_VALUE, + SVGFESpotLightElement: base_config_1.TYPE_VALUE, + SVGFETileElement: base_config_1.TYPE_VALUE, + SVGFETurbulenceElement: base_config_1.TYPE_VALUE, + SVGFilterElement: base_config_1.TYPE_VALUE, + SVGFilterPrimitiveStandardAttributes: base_config_1.TYPE, + SVGFitToViewBox: base_config_1.TYPE, + SVGForeignObjectElement: base_config_1.TYPE_VALUE, + SVGGElement: base_config_1.TYPE_VALUE, + SVGGeometryElement: base_config_1.TYPE_VALUE, + SVGGradientElement: base_config_1.TYPE_VALUE, + SVGGraphicsElement: base_config_1.TYPE_VALUE, + SVGImageElement: base_config_1.TYPE_VALUE, + SVGLength: base_config_1.TYPE_VALUE, + SVGLengthList: base_config_1.TYPE_VALUE, + SVGLineElement: base_config_1.TYPE_VALUE, + SVGLinearGradientElement: base_config_1.TYPE_VALUE, + SVGMarkerElement: base_config_1.TYPE_VALUE, + SVGMaskElement: base_config_1.TYPE_VALUE, + SVGMetadataElement: base_config_1.TYPE_VALUE, + SVGNumber: base_config_1.TYPE_VALUE, + SVGNumberList: base_config_1.TYPE_VALUE, + SVGPathElement: base_config_1.TYPE_VALUE, + SVGPathSeg: base_config_1.TYPE_VALUE, + SVGPathSegArcAbs: base_config_1.TYPE_VALUE, + SVGPathSegArcRel: base_config_1.TYPE_VALUE, + SVGPathSegClosePath: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoCubicAbs: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoCubicRel: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoCubicSmoothAbs: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoCubicSmoothRel: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoQuadraticAbs: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoQuadraticRel: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoQuadraticSmoothAbs: base_config_1.TYPE_VALUE, + SVGPathSegCurvetoQuadraticSmoothRel: base_config_1.TYPE_VALUE, + SVGPathSegLinetoAbs: base_config_1.TYPE_VALUE, + SVGPathSegLinetoHorizontalAbs: base_config_1.TYPE_VALUE, + SVGPathSegLinetoHorizontalRel: base_config_1.TYPE_VALUE, + SVGPathSegLinetoRel: base_config_1.TYPE_VALUE, + SVGPathSegLinetoVerticalAbs: base_config_1.TYPE_VALUE, + SVGPathSegLinetoVerticalRel: base_config_1.TYPE_VALUE, + SVGPathSegList: base_config_1.TYPE_VALUE, + SVGPathSegMovetoAbs: base_config_1.TYPE_VALUE, + SVGPathSegMovetoRel: base_config_1.TYPE_VALUE, + SVGPatternElement: base_config_1.TYPE_VALUE, + SVGPointList: base_config_1.TYPE_VALUE, + SVGPolygonElement: base_config_1.TYPE_VALUE, + SVGPolylineElement: base_config_1.TYPE_VALUE, + SVGPreserveAspectRatio: base_config_1.TYPE_VALUE, + SVGRadialGradientElement: base_config_1.TYPE_VALUE, + SVGRectElement: base_config_1.TYPE_VALUE, + SVGSVGElementEventMap: base_config_1.TYPE, + SVGSVGElement: base_config_1.TYPE_VALUE, + SVGScriptElement: base_config_1.TYPE_VALUE, + SVGStopElement: base_config_1.TYPE_VALUE, + SVGStringList: base_config_1.TYPE_VALUE, + SVGStyleElement: base_config_1.TYPE_VALUE, + SVGSwitchElement: base_config_1.TYPE_VALUE, + SVGSymbolElement: base_config_1.TYPE_VALUE, + SVGTSpanElement: base_config_1.TYPE_VALUE, + SVGTests: base_config_1.TYPE, + SVGTextContentElement: base_config_1.TYPE_VALUE, + SVGTextElement: base_config_1.TYPE_VALUE, + SVGTextPathElement: base_config_1.TYPE_VALUE, + SVGTextPositioningElement: base_config_1.TYPE_VALUE, + SVGTitleElement: base_config_1.TYPE_VALUE, + SVGTransform: base_config_1.TYPE_VALUE, + SVGTransformList: base_config_1.TYPE_VALUE, + SVGURIReference: base_config_1.TYPE, + SVGUnitTypes: base_config_1.TYPE_VALUE, + SVGUseElement: base_config_1.TYPE_VALUE, + SVGViewElement: base_config_1.TYPE_VALUE, + SVGZoomAndPan: base_config_1.TYPE, + SVGZoomEvent: base_config_1.TYPE_VALUE, + Screen: base_config_1.TYPE_VALUE, + ScreenOrientationEventMap: base_config_1.TYPE, + ScreenOrientation: base_config_1.TYPE_VALUE, + ScriptProcessorNodeEventMap: base_config_1.TYPE, + ScriptProcessorNode: base_config_1.TYPE_VALUE, + SecurityPolicyViolationEvent: base_config_1.TYPE_VALUE, + Selection: base_config_1.TYPE_VALUE, + ServiceUIFrameContext: base_config_1.TYPE_VALUE, + ServiceWorkerEventMap: base_config_1.TYPE, + ServiceWorker: base_config_1.TYPE_VALUE, + ServiceWorkerContainerEventMap: base_config_1.TYPE, + ServiceWorkerContainer: base_config_1.TYPE_VALUE, + ServiceWorkerRegistrationEventMap: base_config_1.TYPE, + ServiceWorkerRegistration: base_config_1.TYPE_VALUE, + ShadowRoot: base_config_1.TYPE_VALUE, + SharedWorker: base_config_1.TYPE_VALUE, + Slottable: base_config_1.TYPE, + SourceBufferEventMap: base_config_1.TYPE, + SourceBuffer: base_config_1.TYPE_VALUE, + SourceBufferListEventMap: base_config_1.TYPE, + SourceBufferList: base_config_1.TYPE_VALUE, + SpeechGrammar: base_config_1.TYPE_VALUE, + SpeechGrammarList: base_config_1.TYPE_VALUE, + SpeechRecognitionEventMap: base_config_1.TYPE, + SpeechRecognition: base_config_1.TYPE_VALUE, + SpeechRecognitionAlternative: base_config_1.TYPE_VALUE, + SpeechRecognitionErrorEvent: base_config_1.TYPE_VALUE, + SpeechRecognitionEvent: base_config_1.TYPE_VALUE, + SpeechRecognitionResult: base_config_1.TYPE_VALUE, + SpeechRecognitionResultList: base_config_1.TYPE_VALUE, + SpeechSynthesisEventMap: base_config_1.TYPE, + SpeechSynthesis: base_config_1.TYPE_VALUE, + SpeechSynthesisErrorEvent: base_config_1.TYPE_VALUE, + SpeechSynthesisEvent: base_config_1.TYPE_VALUE, + SpeechSynthesisUtteranceEventMap: base_config_1.TYPE, + SpeechSynthesisUtterance: base_config_1.TYPE_VALUE, + SpeechSynthesisVoice: base_config_1.TYPE_VALUE, + StaticRange: base_config_1.TYPE_VALUE, + StereoPannerNode: base_config_1.TYPE_VALUE, + Storage: base_config_1.TYPE_VALUE, + StorageEvent: base_config_1.TYPE_VALUE, + StorageManager: base_config_1.TYPE_VALUE, + StyleMedia: base_config_1.TYPE_VALUE, + StyleSheet: base_config_1.TYPE_VALUE, + StyleSheetList: base_config_1.TYPE_VALUE, + SubtleCrypto: base_config_1.TYPE_VALUE, + SyncManager: base_config_1.TYPE_VALUE, + Text: base_config_1.TYPE_VALUE, + TextDecoder: base_config_1.TYPE_VALUE, + TextDecoderCommon: base_config_1.TYPE, + TextDecoderStream: base_config_1.TYPE_VALUE, + TextEncoder: base_config_1.TYPE_VALUE, + TextEncoderCommon: base_config_1.TYPE, + TextEncoderStream: base_config_1.TYPE_VALUE, + TextEvent: base_config_1.TYPE_VALUE, + TextMetrics: base_config_1.TYPE_VALUE, + TextTrackEventMap: base_config_1.TYPE, + TextTrack: base_config_1.TYPE_VALUE, + TextTrackCueEventMap: base_config_1.TYPE, + TextTrackCue: base_config_1.TYPE_VALUE, + TextTrackCueList: base_config_1.TYPE_VALUE, + TextTrackListEventMap: base_config_1.TYPE, + TextTrackList: base_config_1.TYPE_VALUE, + TimeRanges: base_config_1.TYPE_VALUE, + Touch: base_config_1.TYPE_VALUE, + TouchEvent: base_config_1.TYPE_VALUE, + TouchList: base_config_1.TYPE_VALUE, + TrackEvent: base_config_1.TYPE_VALUE, + TransformStream: base_config_1.TYPE_VALUE, + TransformStreamDefaultController: base_config_1.TYPE_VALUE, + TransitionEvent: base_config_1.TYPE_VALUE, + TreeWalker: base_config_1.TYPE_VALUE, + UIEvent: base_config_1.TYPE_VALUE, + URL: base_config_1.TYPE_VALUE, + webkitURL: base_config_1.TYPE_VALUE, + URLSearchParams: base_config_1.TYPE_VALUE, + VRDisplay: base_config_1.TYPE_VALUE, + VRDisplayCapabilities: base_config_1.TYPE_VALUE, + VRDisplayEvent: base_config_1.TYPE_VALUE, + VREyeParameters: base_config_1.TYPE_VALUE, + VRFieldOfView: base_config_1.TYPE_VALUE, + VRFrameData: base_config_1.TYPE_VALUE, + VRPose: base_config_1.TYPE_VALUE, + VTTCue: base_config_1.TYPE_VALUE, + VTTRegion: base_config_1.TYPE_VALUE, + ValidityState: base_config_1.TYPE_VALUE, + VideoPlaybackQuality: base_config_1.TYPE_VALUE, + VisualViewportEventMap: base_config_1.TYPE, + VisualViewport: base_config_1.TYPE_VALUE, + WEBGL_color_buffer_float: base_config_1.TYPE, + WEBGL_compressed_texture_astc: base_config_1.TYPE, + WEBGL_compressed_texture_s3tc: base_config_1.TYPE, + WEBGL_compressed_texture_s3tc_srgb: base_config_1.TYPE, + WEBGL_debug_renderer_info: base_config_1.TYPE, + WEBGL_debug_shaders: base_config_1.TYPE, + WEBGL_depth_texture: base_config_1.TYPE, + WEBGL_draw_buffers: base_config_1.TYPE, + WEBGL_lose_context: base_config_1.TYPE, + WaveShaperNode: base_config_1.TYPE_VALUE, + WebGL2RenderingContext: base_config_1.TYPE_VALUE, + WebGL2RenderingContextBase: base_config_1.TYPE, + WebGL2RenderingContextOverloads: base_config_1.TYPE, + WebGLActiveInfo: base_config_1.TYPE_VALUE, + WebGLBuffer: base_config_1.TYPE_VALUE, + WebGLContextEvent: base_config_1.TYPE_VALUE, + WebGLFramebuffer: base_config_1.TYPE_VALUE, + WebGLProgram: base_config_1.TYPE_VALUE, + WebGLQuery: base_config_1.TYPE_VALUE, + WebGLRenderbuffer: base_config_1.TYPE_VALUE, + WebGLRenderingContext: base_config_1.TYPE_VALUE, + WebGLRenderingContextBase: base_config_1.TYPE, + WebGLRenderingContextOverloads: base_config_1.TYPE, + WebGLSampler: base_config_1.TYPE_VALUE, + WebGLShader: base_config_1.TYPE_VALUE, + WebGLShaderPrecisionFormat: base_config_1.TYPE_VALUE, + WebGLSync: base_config_1.TYPE_VALUE, + WebGLTexture: base_config_1.TYPE_VALUE, + WebGLTransformFeedback: base_config_1.TYPE_VALUE, + WebGLUniformLocation: base_config_1.TYPE_VALUE, + WebGLVertexArrayObject: base_config_1.TYPE_VALUE, + WebGLVertexArrayObjectOES: base_config_1.TYPE, + WebKitPoint: base_config_1.TYPE_VALUE, + WebSocketEventMap: base_config_1.TYPE, + WebSocket: base_config_1.TYPE_VALUE, + WheelEvent: base_config_1.TYPE_VALUE, + WindowEventMap: base_config_1.TYPE, + Window: base_config_1.TYPE_VALUE, + WindowEventHandlersEventMap: base_config_1.TYPE, + WindowEventHandlers: base_config_1.TYPE, + WindowLocalStorage: base_config_1.TYPE, + WindowOrWorkerGlobalScope: base_config_1.TYPE, + WindowSessionStorage: base_config_1.TYPE, + WorkerEventMap: base_config_1.TYPE, + Worker: base_config_1.TYPE_VALUE, + Worklet: base_config_1.TYPE_VALUE, + WritableStream: base_config_1.TYPE_VALUE, + WritableStreamDefaultController: base_config_1.TYPE_VALUE, + WritableStreamDefaultWriter: base_config_1.TYPE_VALUE, + XMLDocument: base_config_1.TYPE_VALUE, + XMLHttpRequestEventMap: base_config_1.TYPE, + XMLHttpRequest: base_config_1.TYPE_VALUE, + XMLHttpRequestEventTargetEventMap: base_config_1.TYPE, + XMLHttpRequestEventTarget: base_config_1.TYPE_VALUE, + XMLHttpRequestUpload: base_config_1.TYPE_VALUE, + XMLSerializer: base_config_1.TYPE_VALUE, + XPathEvaluator: base_config_1.TYPE_VALUE, + XPathEvaluatorBase: base_config_1.TYPE, + XPathExpression: base_config_1.TYPE_VALUE, + XPathResult: base_config_1.TYPE_VALUE, + XSLTProcessor: base_config_1.TYPE_VALUE, + webkitRTCPeerConnection: base_config_1.TYPE_VALUE, + EventListenerOrEventListenerObject: base_config_1.TYPE, + Console: base_config_1.TYPE, + CSS: base_config_1.TYPE_VALUE, + WebAssembly: base_config_1.TYPE_VALUE, + BlobCallback: base_config_1.TYPE, + CustomElementConstructor: base_config_1.TYPE, + DecodeErrorCallback: base_config_1.TYPE, + DecodeSuccessCallback: base_config_1.TYPE, + EventHandlerNonNull: base_config_1.TYPE, + ForEachCallback: base_config_1.TYPE, + FrameRequestCallback: base_config_1.TYPE, + FunctionStringCallback: base_config_1.TYPE, + IntersectionObserverCallback: base_config_1.TYPE, + MSLaunchUriCallback: base_config_1.TYPE, + MutationCallback: base_config_1.TYPE, + NavigatorUserMediaErrorCallback: base_config_1.TYPE, + NavigatorUserMediaSuccessCallback: base_config_1.TYPE, + NotificationPermissionCallback: base_config_1.TYPE, + OnBeforeUnloadEventHandlerNonNull: base_config_1.TYPE, + OnErrorEventHandlerNonNull: base_config_1.TYPE, + PerformanceObserverCallback: base_config_1.TYPE, + PositionCallback: base_config_1.TYPE, + PositionErrorCallback: base_config_1.TYPE, + QueuingStrategySize: base_config_1.TYPE, + RTCPeerConnectionErrorCallback: base_config_1.TYPE, + RTCSessionDescriptionCallback: base_config_1.TYPE, + RTCStatsCallback: base_config_1.TYPE, + ResizeObserverCallback: base_config_1.TYPE, + TransformerFlushCallback: base_config_1.TYPE, + TransformerStartCallback: base_config_1.TYPE, + TransformerTransformCallback: base_config_1.TYPE, + UnderlyingSinkAbortCallback: base_config_1.TYPE, + UnderlyingSinkCloseCallback: base_config_1.TYPE, + UnderlyingSinkStartCallback: base_config_1.TYPE, + UnderlyingSinkWriteCallback: base_config_1.TYPE, + UnderlyingSourceCancelCallback: base_config_1.TYPE, + UnderlyingSourcePullCallback: base_config_1.TYPE, + UnderlyingSourceStartCallback: base_config_1.TYPE, + VoidFunction: base_config_1.TYPE, + HTMLElementTagNameMap: base_config_1.TYPE, + HTMLElementDeprecatedTagNameMap: base_config_1.TYPE, + SVGElementTagNameMap: base_config_1.TYPE, + ElementTagNameMap: base_config_1.TYPE, + HeadersInit: base_config_1.TYPE, + BodyInit: base_config_1.TYPE, + RequestInfo: base_config_1.TYPE, + BlobPart: base_config_1.TYPE, + DOMHighResTimeStamp: base_config_1.TYPE, + RenderingContext: base_config_1.TYPE, + HTMLOrSVGImageElement: base_config_1.TYPE, + CanvasImageSource: base_config_1.TYPE, + OffscreenRenderingContext: base_config_1.TYPE, + MessageEventSource: base_config_1.TYPE, + HTMLOrSVGScriptElement: base_config_1.TYPE, + ImageBitmapSource: base_config_1.TYPE, + MediaProvider: base_config_1.TYPE, + OnErrorEventHandler: base_config_1.TYPE, + OnBeforeUnloadEventHandler: base_config_1.TYPE, + TimerHandler: base_config_1.TYPE, + ConstrainULong: base_config_1.TYPE, + ConstrainDouble: base_config_1.TYPE, + ConstrainBoolean: base_config_1.TYPE, + ConstrainDOMString: base_config_1.TYPE, + PerformanceEntryList: base_config_1.TYPE, + ReadableStreamReader: base_config_1.TYPE, + ReadableStreamController: base_config_1.TYPE, + VibratePattern: base_config_1.TYPE, + COSEAlgorithmIdentifier: base_config_1.TYPE, + UvmEntry: base_config_1.TYPE, + UvmEntries: base_config_1.TYPE, + AlgorithmIdentifier: base_config_1.TYPE, + HashAlgorithmIdentifier: base_config_1.TYPE, + BigInteger: base_config_1.TYPE, + NamedCurve: base_config_1.TYPE, + GLenum: base_config_1.TYPE, + GLboolean: base_config_1.TYPE, + GLbitfield: base_config_1.TYPE, + GLint: base_config_1.TYPE, + GLsizei: base_config_1.TYPE, + GLintptr: base_config_1.TYPE, + GLsizeiptr: base_config_1.TYPE, + GLuint: base_config_1.TYPE, + GLfloat: base_config_1.TYPE, + GLclampf: base_config_1.TYPE, + TexImageSource: base_config_1.TYPE, + Float32List: base_config_1.TYPE, + Int32List: base_config_1.TYPE, + GLint64: base_config_1.TYPE, + GLuint64: base_config_1.TYPE, + Uint32List: base_config_1.TYPE, + BufferSource: base_config_1.TYPE, + DOMTimeStamp: base_config_1.TYPE, + LineAndPositionSetting: base_config_1.TYPE, + FormDataEntryValue: base_config_1.TYPE, + InsertPosition: base_config_1.TYPE, + IDBValidKey: base_config_1.TYPE, + MutationRecordType: base_config_1.TYPE, + IDBKeyPath: base_config_1.TYPE, + Transferable: base_config_1.TYPE, + RTCIceGatherCandidate: base_config_1.TYPE, + RTCTransport: base_config_1.TYPE, + MouseWheelEvent: base_config_1.TYPE, + WindowProxy: base_config_1.TYPE, + ReadableStreamDefaultReadResult: base_config_1.TYPE, + AlignSetting: base_config_1.TYPE, + AnimationPlayState: base_config_1.TYPE, + AppendMode: base_config_1.TYPE, + AttestationConveyancePreference: base_config_1.TYPE, + AudioContextLatencyCategory: base_config_1.TYPE, + AudioContextState: base_config_1.TYPE, + AuthenticatorAttachment: base_config_1.TYPE, + AuthenticatorTransport: base_config_1.TYPE, + AutoKeyword: base_config_1.TYPE, + AutomationRate: base_config_1.TYPE, + BinaryType: base_config_1.TYPE, + BiquadFilterType: base_config_1.TYPE, + CanPlayTypeResult: base_config_1.TYPE, + CanvasDirection: base_config_1.TYPE, + CanvasFillRule: base_config_1.TYPE, + CanvasLineCap: base_config_1.TYPE, + CanvasLineJoin: base_config_1.TYPE, + CanvasTextAlign: base_config_1.TYPE, + CanvasTextBaseline: base_config_1.TYPE, + ChannelCountMode: base_config_1.TYPE, + ChannelInterpretation: base_config_1.TYPE, + ClientTypes: base_config_1.TYPE, + ColorSpaceConversion: base_config_1.TYPE, + CompositeOperation: base_config_1.TYPE, + CompositeOperationOrAuto: base_config_1.TYPE, + CredentialMediationRequirement: base_config_1.TYPE, + DOMParserSupportedType: base_config_1.TYPE, + DirectionSetting: base_config_1.TYPE, + DisplayCaptureSurfaceType: base_config_1.TYPE, + DistanceModelType: base_config_1.TYPE, + DocumentReadyState: base_config_1.TYPE, + EndOfStreamError: base_config_1.TYPE, + EndingType: base_config_1.TYPE, + FillMode: base_config_1.TYPE, + FullscreenNavigationUI: base_config_1.TYPE, + GamepadHand: base_config_1.TYPE, + GamepadHapticActuatorType: base_config_1.TYPE, + GamepadMappingType: base_config_1.TYPE, + IDBCursorDirection: base_config_1.TYPE, + IDBRequestReadyState: base_config_1.TYPE, + IDBTransactionMode: base_config_1.TYPE, + ImageOrientation: base_config_1.TYPE, + ImageSmoothingQuality: base_config_1.TYPE, + IterationCompositeOperation: base_config_1.TYPE, + KeyFormat: base_config_1.TYPE, + KeyType: base_config_1.TYPE, + KeyUsage: base_config_1.TYPE, + LineAlignSetting: base_config_1.TYPE, + ListeningState: base_config_1.TYPE, + MSCredentialType: base_config_1.TYPE, + MSTransportType: base_config_1.TYPE, + MSWebViewPermissionState: base_config_1.TYPE, + MSWebViewPermissionType: base_config_1.TYPE, + MediaDeviceKind: base_config_1.TYPE, + MediaKeyMessageType: base_config_1.TYPE, + MediaKeySessionType: base_config_1.TYPE, + MediaKeyStatus: base_config_1.TYPE, + MediaKeysRequirement: base_config_1.TYPE, + MediaStreamTrackState: base_config_1.TYPE, + NavigationReason: base_config_1.TYPE, + NavigationType: base_config_1.TYPE, + NotificationDirection: base_config_1.TYPE, + NotificationPermission: base_config_1.TYPE, + OffscreenRenderingContextId: base_config_1.TYPE, + OrientationLockType: base_config_1.TYPE, + OrientationType: base_config_1.TYPE, + OscillatorType: base_config_1.TYPE, + OverSampleType: base_config_1.TYPE, + PanningModelType: base_config_1.TYPE, + PaymentComplete: base_config_1.TYPE, + PaymentShippingType: base_config_1.TYPE, + PermissionName: base_config_1.TYPE, + PermissionState: base_config_1.TYPE, + PlaybackDirection: base_config_1.TYPE, + PositionAlignSetting: base_config_1.TYPE, + PremultiplyAlpha: base_config_1.TYPE, + PublicKeyCredentialType: base_config_1.TYPE, + PushEncryptionKeyName: base_config_1.TYPE, + PushPermissionState: base_config_1.TYPE, + RTCBundlePolicy: base_config_1.TYPE, + RTCDataChannelState: base_config_1.TYPE, + RTCDtlsRole: base_config_1.TYPE, + RTCDtlsTransportState: base_config_1.TYPE, + RTCErrorDetailType: base_config_1.TYPE, + RTCIceCandidateType: base_config_1.TYPE, + RTCIceComponent: base_config_1.TYPE, + RTCIceConnectionState: base_config_1.TYPE, + RTCIceCredentialType: base_config_1.TYPE, + RTCIceGatherPolicy: base_config_1.TYPE, + RTCIceGathererState: base_config_1.TYPE, + RTCIceGatheringState: base_config_1.TYPE, + RTCIceProtocol: base_config_1.TYPE, + RTCIceRole: base_config_1.TYPE, + RTCIceTcpCandidateType: base_config_1.TYPE, + RTCIceTransportPolicy: base_config_1.TYPE, + RTCIceTransportState: base_config_1.TYPE, + RTCPeerConnectionState: base_config_1.TYPE, + RTCRtcpMuxPolicy: base_config_1.TYPE, + RTCRtpTransceiverDirection: base_config_1.TYPE, + RTCSctpTransportState: base_config_1.TYPE, + RTCSdpType: base_config_1.TYPE, + RTCSignalingState: base_config_1.TYPE, + RTCStatsIceCandidatePairState: base_config_1.TYPE, + RTCStatsIceCandidateType: base_config_1.TYPE, + RTCStatsType: base_config_1.TYPE, + ReadyState: base_config_1.TYPE, + ReferrerPolicy: base_config_1.TYPE, + RequestCache: base_config_1.TYPE, + RequestCredentials: base_config_1.TYPE, + RequestDestination: base_config_1.TYPE, + RequestMode: base_config_1.TYPE, + RequestRedirect: base_config_1.TYPE, + ResidentKeyRequirement: base_config_1.TYPE, + ResizeObserverBoxOptions: base_config_1.TYPE, + ResizeQuality: base_config_1.TYPE, + ResponseType: base_config_1.TYPE, + ScrollBehavior: base_config_1.TYPE, + ScrollLogicalPosition: base_config_1.TYPE, + ScrollRestoration: base_config_1.TYPE, + ScrollSetting: base_config_1.TYPE, + SelectionMode: base_config_1.TYPE, + ServiceWorkerState: base_config_1.TYPE, + ServiceWorkerUpdateViaCache: base_config_1.TYPE, + ShadowRootMode: base_config_1.TYPE, + SpeechRecognitionErrorCode: base_config_1.TYPE, + SpeechSynthesisErrorCode: base_config_1.TYPE, + TextTrackKind: base_config_1.TYPE, + TextTrackMode: base_config_1.TYPE, + TouchType: base_config_1.TYPE, + UserVerificationRequirement: base_config_1.TYPE, + VRDisplayEventReason: base_config_1.TYPE, + VideoFacingModeEnum: base_config_1.TYPE, + VisibilityState: base_config_1.TYPE, + WebGLPowerPreference: base_config_1.TYPE, + WorkerType: base_config_1.TYPE, + XMLHttpRequestResponseType: base_config_1.TYPE, }; //# sourceMappingURL=dom.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map index 147cdfb729..d0ad50bc38 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/dom.js.map @@ -1 +1 @@ -{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/lib/dom.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/lib/dom.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.d.ts.map index 88c3754f4d..a03b42a92c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.collection.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.collection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,iBAAiB,4CA6DiB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.collection.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.collection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,iBAAiB,4CAWiB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js index cf4b8951ec..98ae620c10 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js @@ -4,66 +4,17 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_collection = void 0; +const base_config_1 = require("./base-config"); exports.es2015_collection = { - Map: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Map', - }, - MapConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MapConstructor', - }, - ReadonlyMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyMap', - }, - WeakMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WeakMap', - }, - WeakMapConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakMapConstructor', - }, - Set: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Set', - }, - SetConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SetConstructor', - }, - ReadonlySet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlySet', - }, - WeakSet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WeakSet', - }, - WeakSetConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakSetConstructor', - }, + Map: base_config_1.TYPE_VALUE, + MapConstructor: base_config_1.TYPE, + ReadonlyMap: base_config_1.TYPE, + WeakMap: base_config_1.TYPE_VALUE, + WeakMapConstructor: base_config_1.TYPE, + Set: base_config_1.TYPE_VALUE, + SetConstructor: base_config_1.TYPE, + ReadonlySet: base_config_1.TYPE, + WeakSet: base_config_1.TYPE_VALUE, + WeakSetConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2015.collection.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js.map index 388b6d0e62..e3c3b5dc52 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.collection.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.collection.js","sourceRoot":"","sources":["../../src/lib/es2015.collection.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,iBAAiB,GAAG;IAC/B,GAAG,EAAE;QACH,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,KAAK;KACZ;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,gBAAgB;KACvB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;IACD,GAAG,EAAE;QACH,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,KAAK;KACZ;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,gBAAgB;KACvB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.collection.js","sourceRoot":"","sources":["../../src/lib/es2015.collection.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,iBAAiB,GAAG;IAC/B,GAAG,EAAE,wBAAU;IACf,cAAc,EAAE,kBAAI;IACpB,WAAW,EAAE,kBAAI;IACjB,OAAO,EAAE,wBAAU;IACnB,kBAAkB,EAAE,kBAAI;IACxB,GAAG,EAAE,wBAAU;IACf,cAAc,EAAE,kBAAI;IACpB,WAAW,EAAE,kBAAI;IACjB,OAAO,EAAE,wBAAU;IACnB,kBAAkB,EAAE,kBAAI;CACqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.d.ts.map index 5d53767e58..c9f8a64c29 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.core.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.core.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,WAAW,4CAyEuB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.core.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.core.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,WAAW,4CAauB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js index ce70b37c2e..97adfda4ae 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js @@ -4,78 +4,19 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_core = void 0; +const base_config_1 = require("./base-config"); exports.es2015_core = { - Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Array', - }, - ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayConstructor', - }, - DateConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DateConstructor', - }, - Function: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Function', - }, - Math: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Math', - }, - NumberConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NumberConstructor', - }, - ObjectConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ObjectConstructor', - }, - ReadonlyArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyArray', - }, - RegExp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExp', - }, - RegExpConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpConstructor', - }, - String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - }, - StringConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StringConstructor', - }, + Array: base_config_1.TYPE, + ArrayConstructor: base_config_1.TYPE, + DateConstructor: base_config_1.TYPE, + Function: base_config_1.TYPE, + Math: base_config_1.TYPE, + NumberConstructor: base_config_1.TYPE, + ObjectConstructor: base_config_1.TYPE, + ReadonlyArray: base_config_1.TYPE, + RegExp: base_config_1.TYPE, + RegExpConstructor: base_config_1.TYPE, + String: base_config_1.TYPE, + StringConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2015.core.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js.map index 76a05087f6..6c9e9fb7f3 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.core.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.core.js","sourceRoot":"","sources":["../../src/lib/es2015.core.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE;QACL,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,OAAO;KACd;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;KACb;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.core.js","sourceRoot":"","sources":["../../src/lib/es2015.core.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,kBAAI;IACX,gBAAgB,EAAE,kBAAI;IACtB,eAAe,EAAE,kBAAI;IACrB,QAAQ,EAAE,kBAAI;IACd,IAAI,EAAE,kBAAI;IACV,iBAAiB,EAAE,kBAAI;IACvB,iBAAiB,EAAE,kBAAI;IACvB,aAAa,EAAE,kBAAI;IACnB,MAAM,EAAE,kBAAI;IACZ,iBAAiB,EAAE,kBAAI;IACvB,MAAM,EAAE,kBAAI;IACZ,iBAAiB,EAAE,kBAAI;CACsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.d.ts.map index fdb6493302..6169ed52a5 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.generator.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,gBAAgB,4CAoBkB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.generator.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,gBAAgB,4CAKkB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js index 5600c3347c..90a6dd614f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js @@ -5,20 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_generator = void 0; const es2015_iterable_1 = require("./es2015.iterable"); -exports.es2015_generator = Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), { Generator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Generator', - }, GeneratorFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GeneratorFunction', - }, GeneratorFunctionConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GeneratorFunctionConstructor', - } }); +const base_config_1 = require("./base-config"); +exports.es2015_generator = Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), { Generator: base_config_1.TYPE, GeneratorFunction: base_config_1.TYPE, GeneratorFunctionConstructor: base_config_1.TYPE }); //# sourceMappingURL=es2015.generator.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js.map index 80048e13ba..a63893c23c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.generator.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.generator.js","sourceRoot":"","sources":["../../src/lib/es2015.generator.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AAEvC,QAAA,gBAAgB,GAAG,gCAC3B,iCAAe,KAClB,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,WAAW;KAClB,EACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B,EACD,4BAA4B,EAAE;QAC5B,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,8BAA8B;KACrC,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.generator.js","sourceRoot":"","sources":["../../src/lib/es2015.generator.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AACpD,+CAAqC;AAExB,QAAA,gBAAgB,GAAG,gCAC3B,iCAAe,KAClB,SAAS,EAAE,kBAAI,EACf,iBAAiB,EAAE,kBAAI,EACvB,4BAA4B,EAAE,kBAAI,GACW,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.d.ts.map index 583cb28b42..cfce536949 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.iterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,eAAe,4CAoQmB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.iterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,eAAe,4CA4CmB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js index 28b02e9051..1148558beb 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js @@ -5,220 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_iterable = void 0; const es2015_symbol_1 = require("./es2015.symbol"); -exports.es2015_iterable = Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), { SymbolConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SymbolConstructor', - }, IteratorYieldResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IteratorYieldResult', - }, IteratorReturnResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IteratorReturnResult', - }, IteratorResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IteratorResult', - }, Iterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Iterator', - }, Iterable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Iterable', - }, IterableIterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IterableIterator', - }, Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Array', - }, ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayConstructor', - }, ReadonlyArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyArray', - }, IArguments: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IArguments', - }, Map: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Map', - }, ReadonlyMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyMap', - }, MapConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MapConstructor', - }, WeakMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakMap', - }, WeakMapConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakMapConstructor', - }, Set: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Set', - }, ReadonlySet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlySet', - }, SetConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SetConstructor', - }, WeakSet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakSet', - }, WeakSetConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakSetConstructor', - }, Promise: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Promise', - }, PromiseConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseConstructor', - }, Reflect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Reflect', - }, String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - }, Int8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int8Array', - }, Int8ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int8ArrayConstructor', - }, Uint8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8Array', - }, Uint8ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ArrayConstructor', - }, Uint8ClampedArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ClampedArray', - }, Uint8ClampedArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ClampedArrayConstructor', - }, Int16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int16Array', - }, Int16ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int16ArrayConstructor', - }, Uint16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint16Array', - }, Uint16ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint16ArrayConstructor', - }, Int32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32Array', - }, Int32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32ArrayConstructor', - }, Uint32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32Array', - }, Uint32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32ArrayConstructor', - }, Float32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32Array', - }, Float32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32ArrayConstructor', - }, Float64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float64Array', - }, Float64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float64ArrayConstructor', - } }); +const base_config_1 = require("./base-config"); +exports.es2015_iterable = Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), { SymbolConstructor: base_config_1.TYPE, IteratorYieldResult: base_config_1.TYPE, IteratorReturnResult: base_config_1.TYPE, IteratorResult: base_config_1.TYPE, Iterator: base_config_1.TYPE, Iterable: base_config_1.TYPE, IterableIterator: base_config_1.TYPE, Array: base_config_1.TYPE, ArrayConstructor: base_config_1.TYPE, ReadonlyArray: base_config_1.TYPE, IArguments: base_config_1.TYPE, Map: base_config_1.TYPE, ReadonlyMap: base_config_1.TYPE, MapConstructor: base_config_1.TYPE, WeakMap: base_config_1.TYPE, WeakMapConstructor: base_config_1.TYPE, Set: base_config_1.TYPE, ReadonlySet: base_config_1.TYPE, SetConstructor: base_config_1.TYPE, WeakSet: base_config_1.TYPE, WeakSetConstructor: base_config_1.TYPE, Promise: base_config_1.TYPE, PromiseConstructor: base_config_1.TYPE, String: base_config_1.TYPE, Int8Array: base_config_1.TYPE, Int8ArrayConstructor: base_config_1.TYPE, Uint8Array: base_config_1.TYPE, Uint8ArrayConstructor: base_config_1.TYPE, Uint8ClampedArray: base_config_1.TYPE, Uint8ClampedArrayConstructor: base_config_1.TYPE, Int16Array: base_config_1.TYPE, Int16ArrayConstructor: base_config_1.TYPE, Uint16Array: base_config_1.TYPE, Uint16ArrayConstructor: base_config_1.TYPE, Int32Array: base_config_1.TYPE, Int32ArrayConstructor: base_config_1.TYPE, Uint32Array: base_config_1.TYPE, Uint32ArrayConstructor: base_config_1.TYPE, Float32Array: base_config_1.TYPE, Float32ArrayConstructor: base_config_1.TYPE, Float64Array: base_config_1.TYPE, Float64ArrayConstructor: base_config_1.TYPE }); //# sourceMappingURL=es2015.iterable.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js.map index a674421cd6..e837011807 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.iterable.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.iterable.js","sourceRoot":"","sources":["../../src/lib/es2015.iterable.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es2015.iterable.js","sourceRoot":"","sources":["../../src/lib/es2015.iterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,+CAAqC;AAExB,QAAA,eAAe,GAAG,gCAC1B,6BAAa,KAChB,iBAAiB,EAAE,kBAAI,EACvB,mBAAmB,EAAE,kBAAI,EACzB,oBAAoB,EAAE,kBAAI,EAC1B,cAAc,EAAE,kBAAI,EACpB,QAAQ,EAAE,kBAAI,EACd,QAAQ,EAAE,kBAAI,EACd,gBAAgB,EAAE,kBAAI,EACtB,KAAK,EAAE,kBAAI,EACX,gBAAgB,EAAE,kBAAI,EACtB,aAAa,EAAE,kBAAI,EACnB,UAAU,EAAE,kBAAI,EAChB,GAAG,EAAE,kBAAI,EACT,WAAW,EAAE,kBAAI,EACjB,cAAc,EAAE,kBAAI,EACpB,OAAO,EAAE,kBAAI,EACb,kBAAkB,EAAE,kBAAI,EACxB,GAAG,EAAE,kBAAI,EACT,WAAW,EAAE,kBAAI,EACjB,cAAc,EAAE,kBAAI,EACpB,OAAO,EAAE,kBAAI,EACb,kBAAkB,EAAE,kBAAI,EACxB,OAAO,EAAE,kBAAI,EACb,kBAAkB,EAAE,kBAAI,EACxB,MAAM,EAAE,kBAAI,EACZ,SAAS,EAAE,kBAAI,EACf,oBAAoB,EAAE,kBAAI,EAC1B,UAAU,EAAE,kBAAI,EAChB,qBAAqB,EAAE,kBAAI,EAC3B,iBAAiB,EAAE,kBAAI,EACvB,4BAA4B,EAAE,kBAAI,EAClC,UAAU,EAAE,kBAAI,EAChB,qBAAqB,EAAE,kBAAI,EAC3B,WAAW,EAAE,kBAAI,EACjB,sBAAsB,EAAE,kBAAI,EAC5B,UAAU,EAAE,kBAAI,EAChB,qBAAqB,EAAE,kBAAI,EAC3B,WAAW,EAAE,kBAAI,EACjB,sBAAsB,EAAE,kBAAI,EAC5B,YAAY,EAAE,kBAAI,EAClB,uBAAuB,EAAE,kBAAI,EAC7B,YAAY,EAAE,kBAAI,EAClB,uBAAuB,EAAE,kBAAI,GACgB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.d.ts.map index ed845312a1..2cb7fd2cd6 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,cAAc,4CAOoB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAEoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js index ed607da828..7f97c425aa 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_promise = void 0; +const base_config_1 = require("./base-config"); exports.es2015_promise = { - PromiseConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseConstructor', - }, + PromiseConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2015.promise.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js.map index d5f255ee27..cdbf5d6c51 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.promise.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.promise.js","sourceRoot":"","sources":["../../src/lib/es2015.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,cAAc,GAAG;IAC5B,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.promise.js","sourceRoot":"","sources":["../../src/lib/es2015.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,cAAc,GAAG;IAC5B,kBAAkB,EAAE,kBAAI;CACqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.d.ts.map index c93307e882..5c5407bd15 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.proxy.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.proxy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,YAAY,4CAasB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.proxy.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.proxy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,YAAY,4CAGsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js index f74d7315b4..1c90310920 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js @@ -4,18 +4,9 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_proxy = void 0; +const base_config_1 = require("./base-config"); exports.es2015_proxy = { - ProxyHandler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ProxyHandler', - }, - ProxyConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ProxyConstructor', - }, + ProxyHandler: base_config_1.TYPE, + ProxyConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2015.proxy.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js.map index 4b8876aba9..75b56937bd 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.proxy.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.proxy.js","sourceRoot":"","sources":["../../src/lib/es2015.proxy.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,YAAY,GAAG;IAC1B,YAAY,EAAE;QACZ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,cAAc;KACrB;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.proxy.js","sourceRoot":"","sources":["../../src/lib/es2015.proxy.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,YAAY,GAAG;IAC1B,YAAY,EAAE,kBAAI;IAClB,gBAAgB,EAAE,kBAAI;CACuB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.d.ts.map index 730708a28e..b261478aa5 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.reflect.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.reflect.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,cAAc,4CAOoB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.reflect.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.reflect.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAEoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js index d149f07c54..a74446085c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_reflect = void 0; +const base_config_1 = require("./base-config"); exports.es2015_reflect = { - Reflect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Reflect', - }, + Reflect: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=es2015.reflect.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js.map index 770a7708b0..80bdcbf65e 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.reflect.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.reflect.js","sourceRoot":"","sources":["../../src/lib/es2015.reflect.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.reflect.js","sourceRoot":"","sources":["../../src/lib/es2015.reflect.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAA2C;AAE9B,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,wBAAU;CAC0B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.d.ts.map index e64431f0c0..b12060e8d5 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.symbol.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.symbol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.symbol.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.symbol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js index e7a3fd43e6..4fd96f61c3 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_symbol = void 0; +const base_config_1 = require("./base-config"); exports.es2015_symbol = { - SymbolConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SymbolConstructor', - }, + SymbolConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2015.symbol.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js.map index 97e8384d4d..398063643f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.symbol.js","sourceRoot":"","sources":["../../src/lib/es2015.symbol.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.symbol.js","sourceRoot":"","sources":["../../src/lib/es2015.symbol.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,kBAAI;CACsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.d.ts.map index 4aa79bab31..b30e9df4f6 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2015.symbol.wellknown.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.symbol.wellknown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,uBAAuB,4CAkMW,CAAC"} \ No newline at end of file +{"version":3,"file":"es2015.symbol.wellknown.d.ts","sourceRoot":"","sources":["../../src/lib/es2015.symbol.wellknown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,uBAAuB,4CAkCW,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js index 7c12d5f362..a8d0551678 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js @@ -5,165 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2015_symbol_wellknown = void 0; const es2015_symbol_1 = require("./es2015.symbol"); -exports.es2015_symbol_wellknown = Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), { SymbolConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SymbolConstructor', - }, Symbol: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Symbol', - }, Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Array', - }, Date: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Date', - }, Map: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Map', - }, WeakMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakMap', - }, Set: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Set', - }, WeakSet: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WeakSet', - }, JSON: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'JSON', - }, Function: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Function', - }, GeneratorFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GeneratorFunction', - }, Math: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Math', - }, Promise: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Promise', - }, PromiseConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseConstructor', - }, RegExp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExp', - }, RegExpConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpConstructor', - }, String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - }, ArrayBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBuffer', - }, DataView: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DataView', - }, Int8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int8Array', - }, Uint8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8Array', - }, Uint8ClampedArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ClampedArray', - }, Int16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int16Array', - }, Uint16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint16Array', - }, Int32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32Array', - }, Uint32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32Array', - }, Float32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32Array', - }, Float64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float64Array', - }, ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayConstructor', - }, MapConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MapConstructor', - }, SetConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SetConstructor', - }, ArrayBufferConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBufferConstructor', - } }); +const base_config_1 = require("./base-config"); +exports.es2015_symbol_wellknown = Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), { SymbolConstructor: base_config_1.TYPE, Symbol: base_config_1.TYPE, Array: base_config_1.TYPE, Date: base_config_1.TYPE, Map: base_config_1.TYPE, WeakMap: base_config_1.TYPE, Set: base_config_1.TYPE, WeakSet: base_config_1.TYPE, JSON: base_config_1.TYPE, Function: base_config_1.TYPE, GeneratorFunction: base_config_1.TYPE, Math: base_config_1.TYPE, Promise: base_config_1.TYPE, PromiseConstructor: base_config_1.TYPE, RegExp: base_config_1.TYPE, RegExpConstructor: base_config_1.TYPE, String: base_config_1.TYPE, ArrayBuffer: base_config_1.TYPE, DataView: base_config_1.TYPE, Int8Array: base_config_1.TYPE, Uint8Array: base_config_1.TYPE, Uint8ClampedArray: base_config_1.TYPE, Int16Array: base_config_1.TYPE, Uint16Array: base_config_1.TYPE, Int32Array: base_config_1.TYPE, Uint32Array: base_config_1.TYPE, Float32Array: base_config_1.TYPE, Float64Array: base_config_1.TYPE, ArrayConstructor: base_config_1.TYPE, MapConstructor: base_config_1.TYPE, SetConstructor: base_config_1.TYPE, ArrayBufferConstructor: base_config_1.TYPE }); //# sourceMappingURL=es2015.symbol.wellknown.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js.map index 55f628c725..6682e831f1 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2015.symbol.wellknown.js.map @@ -1 +1 @@ -{"version":3,"file":"es2015.symbol.wellknown.js","sourceRoot":"","sources":["../../src/lib/es2015.symbol.wellknown.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es2015.symbol.wellknown.js","sourceRoot":"","sources":["../../src/lib/es2015.symbol.wellknown.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,+CAAqC;AAExB,QAAA,uBAAuB,GAAG,gCAClC,6BAAa,KAChB,iBAAiB,EAAE,kBAAI,EACvB,MAAM,EAAE,kBAAI,EACZ,KAAK,EAAE,kBAAI,EACX,IAAI,EAAE,kBAAI,EACV,GAAG,EAAE,kBAAI,EACT,OAAO,EAAE,kBAAI,EACb,GAAG,EAAE,kBAAI,EACT,OAAO,EAAE,kBAAI,EACb,IAAI,EAAE,kBAAI,EACV,QAAQ,EAAE,kBAAI,EACd,iBAAiB,EAAE,kBAAI,EACvB,IAAI,EAAE,kBAAI,EACV,OAAO,EAAE,kBAAI,EACb,kBAAkB,EAAE,kBAAI,EACxB,MAAM,EAAE,kBAAI,EACZ,iBAAiB,EAAE,kBAAI,EACvB,MAAM,EAAE,kBAAI,EACZ,WAAW,EAAE,kBAAI,EACjB,QAAQ,EAAE,kBAAI,EACd,SAAS,EAAE,kBAAI,EACf,UAAU,EAAE,kBAAI,EAChB,iBAAiB,EAAE,kBAAI,EACvB,UAAU,EAAE,kBAAI,EAChB,WAAW,EAAE,kBAAI,EACjB,UAAU,EAAE,kBAAI,EAChB,WAAW,EAAE,kBAAI,EACjB,YAAY,EAAE,kBAAI,EAClB,YAAY,EAAE,kBAAI,EAClB,gBAAgB,EAAE,kBAAI,EACtB,cAAc,EAAE,kBAAI,EACpB,cAAc,EAAE,kBAAI,EACpB,sBAAsB,EAAE,kBAAI,GACiB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.d.ts.map index fc357c38cf..ac3378cd27 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2016.array.include.d.ts","sourceRoot":"","sources":["../../src/lib/es2016.array.include.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,oBAAoB,4CAmEc,CAAC"} \ No newline at end of file +{"version":3,"file":"es2016.array.include.d.ts","sourceRoot":"","sources":["../../src/lib/es2016.array.include.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,oBAAoB,4CAYc,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js index 6b67414b5e..960e30da86 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js @@ -4,72 +4,18 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2016_array_include = void 0; +const base_config_1 = require("./base-config"); exports.es2016_array_include = { - Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Array', - }, - ReadonlyArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyArray', - }, - Int8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int8Array', - }, - Uint8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8Array', - }, - Uint8ClampedArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ClampedArray', - }, - Int16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int16Array', - }, - Uint16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint16Array', - }, - Int32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32Array', - }, - Uint32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32Array', - }, - Float32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32Array', - }, - Float64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float64Array', - }, + Array: base_config_1.TYPE, + ReadonlyArray: base_config_1.TYPE, + Int8Array: base_config_1.TYPE, + Uint8Array: base_config_1.TYPE, + Uint8ClampedArray: base_config_1.TYPE, + Int16Array: base_config_1.TYPE, + Uint16Array: base_config_1.TYPE, + Int32Array: base_config_1.TYPE, + Uint32Array: base_config_1.TYPE, + Float32Array: base_config_1.TYPE, + Float64Array: base_config_1.TYPE, }; //# sourceMappingURL=es2016.array.include.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js.map index 458d3ec5c1..7a7bba9665 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2016.array.include.js.map @@ -1 +1 @@ -{"version":3,"file":"es2016.array.include.js","sourceRoot":"","sources":["../../src/lib/es2016.array.include.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE;QACL,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,OAAO;KACd;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB;IACD,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,WAAW;KAClB;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,YAAY,EAAE;QACZ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,cAAc;KACrB;IACD,YAAY,EAAE;QACZ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,cAAc;KACrB;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2016.array.include.js","sourceRoot":"","sources":["../../src/lib/es2016.array.include.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE,kBAAI;IACX,aAAa,EAAE,kBAAI;IACnB,SAAS,EAAE,kBAAI;IACf,UAAU,EAAE,kBAAI;IAChB,iBAAiB,EAAE,kBAAI;IACvB,UAAU,EAAE,kBAAI;IAChB,WAAW,EAAE,kBAAI;IACjB,UAAU,EAAE,kBAAI;IAChB,WAAW,EAAE,kBAAI;IACjB,YAAY,EAAE,kBAAI;IAClB,YAAY,EAAE,kBAAI;CAC2B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.d.ts.map index acd44df102..f7a5c1a877 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2017.intl.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,WAAW,4CAOuB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.intl.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,WAAW,4CAEuB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js index 27f2dfa0d0..337427a765 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2017_intl = void 0; +const base_config_1 = require("./base-config"); exports.es2017_intl = { - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=es2017.intl.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js.map index 8c277bb1ac..56f8d6c0b5 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.intl.js.map @@ -1 +1 @@ -{"version":3,"file":"es2017.intl.js","sourceRoot":"","sources":["../../src/lib/es2017.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.intl.js","sourceRoot":"","sources":["../../src/lib/es2017.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAA2C;AAE9B,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,wBAAU;CAC6B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.d.ts.map index a0b40ce60d..0403965f79 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2017.object.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.object.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.object.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.object.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js index c8fd03ac74..efd23608af 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2017_object = void 0; +const base_config_1 = require("./base-config"); exports.es2017_object = { - ObjectConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ObjectConstructor', - }, + ObjectConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2017.object.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js.map index a248d3cd79..bf9549103b 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.object.js.map @@ -1 +1 @@ -{"version":3,"file":"es2017.object.js","sourceRoot":"","sources":["../../src/lib/es2017.object.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.object.js","sourceRoot":"","sources":["../../src/lib/es2017.object.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,kBAAI;CACsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.d.ts.map index 920157f9b2..08a7890e50 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2017.sharedmemory.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.sharedmemory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,mBAAmB,4CA2Be,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.sharedmemory.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.sharedmemory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAKzD,eAAO,MAAM,mBAAmB,4CAOe,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js index 5f2f1b276d..48f7ab3901 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js @@ -6,25 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2017_sharedmemory = void 0; const es2015_symbol_1 = require("./es2015.symbol"); const es2015_symbol_wellknown_1 = require("./es2015.symbol.wellknown"); -exports.es2017_sharedmemory = Object.assign(Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), es2015_symbol_wellknown_1.es2015_symbol_wellknown), { SharedArrayBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SharedArrayBuffer', - }, SharedArrayBufferConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SharedArrayBufferConstructor', - }, ArrayBufferTypes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBufferTypes', - }, Atomics: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Atomics', - } }); +const base_config_1 = require("./base-config"); +exports.es2017_sharedmemory = Object.assign(Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), es2015_symbol_wellknown_1.es2015_symbol_wellknown), { SharedArrayBuffer: base_config_1.TYPE_VALUE, SharedArrayBufferConstructor: base_config_1.TYPE, ArrayBufferTypes: base_config_1.TYPE, Atomics: base_config_1.TYPE_VALUE }); //# sourceMappingURL=es2017.sharedmemory.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js.map index 58d86ca062..7aa983f8cd 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.sharedmemory.js.map @@ -1 +1 @@ -{"version":3,"file":"es2017.sharedmemory.js","sourceRoot":"","sources":["../../src/lib/es2017.sharedmemory.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,uEAAoE;AAEvD,QAAA,mBAAmB,GAAG,8CAC9B,6BAAa,GACb,iDAAuB,KAC1B,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,mBAAmB;KAC1B,EACD,4BAA4B,EAAE;QAC5B,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,8BAA8B;KACrC,EACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB,EACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.sharedmemory.js","sourceRoot":"","sources":["../../src/lib/es2017.sharedmemory.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,uEAAoE;AACpE,+CAAiD;AAEpC,QAAA,mBAAmB,GAAG,8CAC9B,6BAAa,GACb,iDAAuB,KAC1B,iBAAiB,EAAE,wBAAU,EAC7B,4BAA4B,EAAE,kBAAI,EAClC,gBAAgB,EAAE,kBAAI,EACtB,OAAO,EAAE,wBAAU,GAC0B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.d.ts.map index c141c9b618..b8b665fde5 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2017.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js index 51d9181ac2..d7fdcf7bef 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2017_string = void 0; +const base_config_1 = require("./base-config"); exports.es2017_string = { - String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - }, + String: base_config_1.TYPE, }; //# sourceMappingURL=es2017.string.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js.map index f536a801fc..903279aea2 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.string.js.map @@ -1 +1 @@ -{"version":3,"file":"es2017.string.js","sourceRoot":"","sources":["../../src/lib/es2017.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.string.js","sourceRoot":"","sources":["../../src/lib/es2017.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.d.ts.map index a5fdfc3566..017ce784c6 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2017.typedarrays.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.typedarrays.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,kBAAkB,4CAuDgB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.typedarrays.d.ts","sourceRoot":"","sources":["../../src/lib/es2017.typedarrays.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,kBAAkB,4CAUgB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js index ef4cee5a52..cf7ab52860 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js @@ -4,60 +4,16 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2017_typedarrays = void 0; +const base_config_1 = require("./base-config"); exports.es2017_typedarrays = { - Int8ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int8ArrayConstructor', - }, - Uint8ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ArrayConstructor', - }, - Uint8ClampedArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ClampedArrayConstructor', - }, - Int16ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int16ArrayConstructor', - }, - Uint16ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint16ArrayConstructor', - }, - Int32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32ArrayConstructor', - }, - Uint32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32ArrayConstructor', - }, - Float32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32ArrayConstructor', - }, - Float64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float64ArrayConstructor', - }, + Int8ArrayConstructor: base_config_1.TYPE, + Uint8ArrayConstructor: base_config_1.TYPE, + Uint8ClampedArrayConstructor: base_config_1.TYPE, + Int16ArrayConstructor: base_config_1.TYPE, + Uint16ArrayConstructor: base_config_1.TYPE, + Int32ArrayConstructor: base_config_1.TYPE, + Uint32ArrayConstructor: base_config_1.TYPE, + Float32ArrayConstructor: base_config_1.TYPE, + Float64ArrayConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2017.typedarrays.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js.map index 448b55284a..556edc332d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2017.typedarrays.js.map @@ -1 +1 @@ -{"version":3,"file":"es2017.typedarrays.js","sourceRoot":"","sources":["../../src/lib/es2017.typedarrays.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,kBAAkB,GAAG;IAChC,oBAAoB,EAAE;QACpB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,sBAAsB;KAC7B;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,4BAA4B,EAAE;QAC5B,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,8BAA8B;KACrC;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,uBAAuB,EAAE;QACvB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,yBAAyB;KAChC;IACD,uBAAuB,EAAE;QACvB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,yBAAyB;KAChC;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2017.typedarrays.js","sourceRoot":"","sources":["../../src/lib/es2017.typedarrays.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,kBAAkB,GAAG;IAChC,oBAAoB,EAAE,kBAAI;IAC1B,qBAAqB,EAAE,kBAAI;IAC3B,4BAA4B,EAAE,kBAAI;IAClC,qBAAqB,EAAE,kBAAI;IAC3B,sBAAsB,EAAE,kBAAI;IAC5B,qBAAqB,EAAE,kBAAI;IAC3B,sBAAsB,EAAE,kBAAI;IAC5B,uBAAuB,EAAE,kBAAI;IAC7B,uBAAuB,EAAE,kBAAI;CACgB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.d.ts.map index 66d72e4558..10c2aca75b 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2018.asyncgenerator.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.asyncgenerator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,qBAAqB,4CAoBa,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.asyncgenerator.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.asyncgenerator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,qBAAqB,4CAKa,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js index 8d58ab5e98..416187f56e 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js @@ -5,20 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2018_asyncgenerator = void 0; const es2018_asynciterable_1 = require("./es2018.asynciterable"); -exports.es2018_asyncgenerator = Object.assign(Object.assign({}, es2018_asynciterable_1.es2018_asynciterable), { AsyncGenerator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncGenerator', - }, AsyncGeneratorFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncGeneratorFunction', - }, AsyncGeneratorFunctionConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncGeneratorFunctionConstructor', - } }); +const base_config_1 = require("./base-config"); +exports.es2018_asyncgenerator = Object.assign(Object.assign({}, es2018_asynciterable_1.es2018_asynciterable), { AsyncGenerator: base_config_1.TYPE, AsyncGeneratorFunction: base_config_1.TYPE, AsyncGeneratorFunctionConstructor: base_config_1.TYPE }); //# sourceMappingURL=es2018.asyncgenerator.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js.map index 992b7c929e..a62fea6fac 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asyncgenerator.js.map @@ -1 +1 @@ -{"version":3,"file":"es2018.asyncgenerator.js","sourceRoot":"","sources":["../../src/lib/es2018.asyncgenerator.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,iEAA8D;AAEjD,QAAA,qBAAqB,GAAG,gCAChC,2CAAoB,KACvB,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,gBAAgB;KACvB,EACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B,EACD,iCAAiC,EAAE;QACjC,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mCAAmC;KAC1C,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.asyncgenerator.js","sourceRoot":"","sources":["../../src/lib/es2018.asyncgenerator.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,iEAA8D;AAC9D,+CAAqC;AAExB,QAAA,qBAAqB,GAAG,gCAChC,2CAAoB,KACvB,cAAc,EAAE,kBAAI,EACpB,sBAAsB,EAAE,kBAAI,EAC5B,iCAAiC,EAAE,kBAAI,GACM,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.d.ts.map index b8d5be53f0..a55846e667 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2018.asynciterable.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.asynciterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,oBAAoB,4CA2Bc,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.asynciterable.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.asynciterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAKzD,eAAO,MAAM,oBAAoB,4CAOc,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js index fafa6bb7c7..7407f3c045 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js @@ -6,25 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2018_asynciterable = void 0; const es2015_symbol_1 = require("./es2015.symbol"); const es2015_iterable_1 = require("./es2015.iterable"); -exports.es2018_asynciterable = Object.assign(Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), es2015_iterable_1.es2015_iterable), { SymbolConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SymbolConstructor', - }, AsyncIterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncIterator', - }, AsyncIterable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncIterable', - }, AsyncIterableIterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncIterableIterator', - } }); +const base_config_1 = require("./base-config"); +exports.es2018_asynciterable = Object.assign(Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), es2015_iterable_1.es2015_iterable), { SymbolConstructor: base_config_1.TYPE, AsyncIterator: base_config_1.TYPE, AsyncIterable: base_config_1.TYPE, AsyncIterableIterator: base_config_1.TYPE }); //# sourceMappingURL=es2018.asynciterable.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js.map index 361aa69dd1..52891838a7 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.asynciterable.js.map @@ -1 +1 @@ -{"version":3,"file":"es2018.asynciterable.js","sourceRoot":"","sources":["../../src/lib/es2018.asynciterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,uDAAoD;AAEvC,QAAA,oBAAoB,GAAG,8CAC/B,6BAAa,GACb,iCAAe,KAClB,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B,EACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB,EACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB,EACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.asynciterable.js","sourceRoot":"","sources":["../../src/lib/es2018.asynciterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,uDAAoD;AACpD,+CAAqC;AAExB,QAAA,oBAAoB,GAAG,8CAC/B,6BAAa,GACb,iCAAe,KAClB,iBAAiB,EAAE,kBAAI,EACvB,aAAa,EAAE,kBAAI,EACnB,aAAa,EAAE,kBAAI,EACnB,qBAAqB,EAAE,kBAAI,GACkB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.d.ts.map index 19b35f0a4c..6cecfd1b28 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2018.intl.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,WAAW,4CAOuB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.intl.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,WAAW,4CAEuB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js index 769ed3583f..d6a684037d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2018_intl = void 0; +const base_config_1 = require("./base-config"); exports.es2018_intl = { - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=es2018.intl.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js.map index baec0edec0..1a1900f268 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.intl.js.map @@ -1 +1 @@ -{"version":3,"file":"es2018.intl.js","sourceRoot":"","sources":["../../src/lib/es2018.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.intl.js","sourceRoot":"","sources":["../../src/lib/es2018.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAA2C;AAE9B,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,wBAAU;CAC6B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.d.ts.map index 4f244488ef..3ffbed7965 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2018.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,cAAc,4CAOoB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAEoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js index 27e5ef1214..82ecf0bc32 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2018_promise = void 0; +const base_config_1 = require("./base-config"); exports.es2018_promise = { - Promise: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Promise', - }, + Promise: base_config_1.TYPE, }; //# sourceMappingURL=es2018.promise.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js.map index 62968a0d43..8095363cae 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.promise.js.map @@ -1 +1 @@ -{"version":3,"file":"es2018.promise.js","sourceRoot":"","sources":["../../src/lib/es2018.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,SAAS;KAChB;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.promise.js","sourceRoot":"","sources":["../../src/lib/es2018.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,kBAAI;CACgC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.d.ts.map index 371fba888a..9d43c95e6e 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2018.regexp.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.regexp.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAmBqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.regexp.d.ts","sourceRoot":"","sources":["../../src/lib/es2018.regexp.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAIqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js index fc21009eb8..621320640e 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js @@ -4,24 +4,10 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2018_regexp = void 0; +const base_config_1 = require("./base-config"); exports.es2018_regexp = { - RegExpMatchArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpMatchArray', - }, - RegExpExecArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpExecArray', - }, - RegExp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExp', - }, + RegExpMatchArray: base_config_1.TYPE, + RegExpExecArray: base_config_1.TYPE, + RegExp: base_config_1.TYPE, }; //# sourceMappingURL=es2018.regexp.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js.map index c525105979..d74cbb74fb 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2018.regexp.js.map @@ -1 +1 @@ -{"version":3,"file":"es2018.regexp.js","sourceRoot":"","sources":["../../src/lib/es2018.regexp.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2018.regexp.js","sourceRoot":"","sources":["../../src/lib/es2018.regexp.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,gBAAgB,EAAE,kBAAI;IACtB,eAAe,EAAE,kBAAI;IACrB,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.d.ts.map index 85a5b81e40..4d07857115 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2019.array.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,YAAY,4CAmBsB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.array.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,YAAY,4CAIsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js index 8561f40696..dc1ca93e7a 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js @@ -4,24 +4,10 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2019_array = void 0; +const base_config_1 = require("./base-config"); exports.es2019_array = { - FlatArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FlatArray', - }, - ReadonlyArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyArray', - }, - Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Array', - }, + FlatArray: base_config_1.TYPE, + ReadonlyArray: base_config_1.TYPE, + Array: base_config_1.TYPE, }; //# sourceMappingURL=es2019.array.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js.map index fde39349b9..dcb1ea4e6f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.array.js.map @@ -1 +1 @@ -{"version":3,"file":"es2019.array.js","sourceRoot":"","sources":["../../src/lib/es2019.array.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,WAAW;KAClB;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,OAAO;KACd;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.array.js","sourceRoot":"","sources":["../../src/lib/es2019.array.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,kBAAI;IACf,aAAa,EAAE,kBAAI;IACnB,KAAK,EAAE,kBAAI;CACkC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.d.ts.map index 6cc0c03ebe..142a48fd3d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2019.object.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.object.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAQqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.object.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.object.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,aAAa,4CAGqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js index b3c6692005..800a59100f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js @@ -5,10 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2019_object = void 0; const es2015_iterable_1 = require("./es2015.iterable"); -exports.es2019_object = Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), { ObjectConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ObjectConstructor', - } }); +const base_config_1 = require("./base-config"); +exports.es2019_object = Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), { ObjectConstructor: base_config_1.TYPE }); //# sourceMappingURL=es2019.object.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js.map index d926a916ae..6af2c937c3 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.object.js.map @@ -1 +1 @@ -{"version":3,"file":"es2019.object.js","sourceRoot":"","sources":["../../src/lib/es2019.object.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AAEvC,QAAA,aAAa,GAAG,gCACxB,iCAAe,KAClB,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.object.js","sourceRoot":"","sources":["../../src/lib/es2019.object.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AACpD,+CAAqC;AAExB,QAAA,aAAa,GAAG,gCACxB,iCAAe,KAClB,iBAAiB,EAAE,kBAAI,GACsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.d.ts.map index a2bf201366..4719d78610 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2019.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js index 23884fae46..3cfa8c05bb 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2019_string = void 0; +const base_config_1 = require("./base-config"); exports.es2019_string = { - String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - }, + String: base_config_1.TYPE, }; //# sourceMappingURL=es2019.string.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js.map index aba9cf9a7b..77a0cd3810 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.string.js.map @@ -1 +1 @@ -{"version":3,"file":"es2019.string.js","sourceRoot":"","sources":["../../src/lib/es2019.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.string.js","sourceRoot":"","sources":["../../src/lib/es2019.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.d.ts.map index 172b59f237..a1bc4293ae 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2019.symbol.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.symbol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.symbol.d.ts","sourceRoot":"","sources":["../../src/lib/es2019.symbol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js index c71974ba0d..838db23e26 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2019_symbol = void 0; +const base_config_1 = require("./base-config"); exports.es2019_symbol = { - Symbol: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Symbol', - }, + Symbol: base_config_1.TYPE, }; //# sourceMappingURL=es2019.symbol.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js.map index 9d29d8fa9f..bacddbbed9 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2019.symbol.js.map @@ -1 +1 @@ -{"version":3,"file":"es2019.symbol.js","sourceRoot":"","sources":["../../src/lib/es2019.symbol.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2019.symbol.js","sourceRoot":"","sources":["../../src/lib/es2019.symbol.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.d.ts.map index 70995c8db7..1d70132532 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2020.bigint.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.bigint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAuDqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.bigint.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.bigint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAUqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js index 625895c336..00b96c8348 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js @@ -4,60 +4,16 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2020_bigint = void 0; +const base_config_1 = require("./base-config"); exports.es2020_bigint = { - BigIntToLocaleStringOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigIntToLocaleStringOptions', - }, - BigInt: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BigInt', - }, - BigIntConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigIntConstructor', - }, - BigInt64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BigInt64Array', - }, - BigInt64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigInt64ArrayConstructor', - }, - BigUint64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BigUint64Array', - }, - BigUint64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigUint64ArrayConstructor', - }, - DataView: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DataView', - }, - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + BigIntToLocaleStringOptions: base_config_1.TYPE, + BigInt: base_config_1.TYPE_VALUE, + BigIntConstructor: base_config_1.TYPE, + BigInt64Array: base_config_1.TYPE_VALUE, + BigInt64ArrayConstructor: base_config_1.TYPE, + BigUint64Array: base_config_1.TYPE_VALUE, + BigUint64ArrayConstructor: base_config_1.TYPE, + DataView: base_config_1.TYPE, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=es2020.bigint.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js.map index 885f48d00b..a007a52fa3 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.bigint.js.map @@ -1 +1 @@ -{"version":3,"file":"es2020.bigint.js","sourceRoot":"","sources":["../../src/lib/es2020.bigint.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,2BAA2B,EAAE;QAC3B,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,6BAA6B;KACpC;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,wBAAwB,EAAE;QACxB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,0BAA0B;KACjC;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,gBAAgB;KACvB;IACD,yBAAyB,EAAE;QACzB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,2BAA2B;KAClC;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.bigint.js","sourceRoot":"","sources":["../../src/lib/es2020.bigint.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,aAAa,GAAG;IAC3B,2BAA2B,EAAE,kBAAI;IACjC,MAAM,EAAE,wBAAU;IAClB,iBAAiB,EAAE,kBAAI;IACvB,aAAa,EAAE,wBAAU;IACzB,wBAAwB,EAAE,kBAAI;IAC9B,cAAc,EAAE,wBAAU;IAC1B,yBAAyB,EAAE,kBAAI;IAC/B,QAAQ,EAAE,kBAAI;IACd,IAAI,EAAE,wBAAU;CAC6B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.d.ts.map index f632671a3a..63382ba85f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2020.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAQzD,eAAO,MAAM,MAAM,4CAO4B,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AASzD,eAAO,MAAM,MAAM,4CAQ4B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.d.ts.map index fd5aeef6b7..9af8bdb496 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2020.intl.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,WAAW,4CAOuB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.intl.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,WAAW,4CAEuB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js index fa32f47750..5ea0941393 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2020_intl = void 0; +const base_config_1 = require("./base-config"); exports.es2020_intl = { - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=es2020.intl.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js.map index c0ceb5ea04..5329c1982d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.intl.js.map @@ -1 +1 @@ -{"version":3,"file":"es2020.intl.js","sourceRoot":"","sources":["../../src/lib/es2020.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.intl.js","sourceRoot":"","sources":["../../src/lib/es2020.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAA2C;AAE9B,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,wBAAU;CAC6B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js index 642d3609ac..c7a3a85a8f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js @@ -7,8 +7,9 @@ exports.es2020 = void 0; const es2019_1 = require("./es2019"); const es2020_bigint_1 = require("./es2020.bigint"); const es2020_promise_1 = require("./es2020.promise"); +const es2020_sharedmemory_1 = require("./es2020.sharedmemory"); const es2020_string_1 = require("./es2020.string"); const es2020_symbol_wellknown_1 = require("./es2020.symbol.wellknown"); const es2020_intl_1 = require("./es2020.intl"); -exports.es2020 = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, es2019_1.es2019), es2020_bigint_1.es2020_bigint), es2020_promise_1.es2020_promise), es2020_string_1.es2020_string), es2020_symbol_wellknown_1.es2020_symbol_wellknown), es2020_intl_1.es2020_intl); +exports.es2020 = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, es2019_1.es2019), es2020_bigint_1.es2020_bigint), es2020_promise_1.es2020_promise), es2020_sharedmemory_1.es2020_sharedmemory), es2020_string_1.es2020_string), es2020_symbol_wellknown_1.es2020_symbol_wellknown), es2020_intl_1.es2020_intl); //# sourceMappingURL=es2020.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js.map index 8c8360ea80..900d640dda 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.js.map @@ -1 +1 @@ -{"version":3,"file":"es2020.js","sourceRoot":"","sources":["../../src/lib/es2020.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,qCAAkC;AAClC,mDAAgD;AAChD,qDAAkD;AAClD,mDAAgD;AAChD,uEAAoE;AACpE,+CAA4C;AAE/B,QAAA,MAAM,GAAG,wFACjB,eAAM,GACN,6BAAa,GACb,+BAAc,GACd,6BAAa,GACb,iDAAuB,GACvB,yBAAW,CAC+B,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.js","sourceRoot":"","sources":["../../src/lib/es2020.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,qCAAkC;AAClC,mDAAgD;AAChD,qDAAkD;AAClD,+DAA4D;AAC5D,mDAAgD;AAChD,uEAAoE;AACpE,+CAA4C;AAE/B,QAAA,MAAM,GAAG,sGACjB,eAAM,GACN,6BAAa,GACb,+BAAc,GACd,yCAAmB,GACnB,6BAAa,GACb,iDAAuB,GACvB,yBAAW,CAC+B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.d.ts.map index 33b4c473c9..349dd6d812 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2020.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,cAAc,4CAyBoB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAKoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js index 6650bedf89..3910974fcb 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js @@ -4,30 +4,11 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es2020_promise = void 0; +const base_config_1 = require("./base-config"); exports.es2020_promise = { - PromiseFulfilledResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseFulfilledResult', - }, - PromiseRejectedResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseRejectedResult', - }, - PromiseSettledResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseSettledResult', - }, - PromiseConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseConstructor', - }, + PromiseFulfilledResult: base_config_1.TYPE, + PromiseRejectedResult: base_config_1.TYPE, + PromiseSettledResult: base_config_1.TYPE, + PromiseConstructor: base_config_1.TYPE, }; //# sourceMappingURL=es2020.promise.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js.map index 1dbd10fa61..8798f25268 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.promise.js.map @@ -1 +1 @@ -{"version":3,"file":"es2020.promise.js","sourceRoot":"","sources":["../../src/lib/es2020.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,cAAc,GAAG;IAC5B,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,oBAAoB,EAAE;QACpB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,sBAAsB;KAC7B;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.promise.js","sourceRoot":"","sources":["../../src/lib/es2020.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,cAAc,GAAG;IAC5B,sBAAsB,EAAE,kBAAI;IAC5B,qBAAqB,EAAE,kBAAI;IAC3B,oBAAoB,EAAE,kBAAI;IAC1B,kBAAkB,EAAE,kBAAI;CACqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.d.ts new file mode 100644 index 0000000000..cd2818319b --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const es2020_sharedmemory: Record; +//# sourceMappingURL=es2020.sharedmemory.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.d.ts.map new file mode 100644 index 0000000000..7b9c1ed68e --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"es2020.sharedmemory.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.sharedmemory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,mBAAmB,4CAEe,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js new file mode 100644 index 0000000000..95951b7c90 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js @@ -0,0 +1,11 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.es2020_sharedmemory = void 0; +const base_config_1 = require("./base-config"); +exports.es2020_sharedmemory = { + Atomics: base_config_1.TYPE, +}; +//# sourceMappingURL=es2020.sharedmemory.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js.map new file mode 100644 index 0000000000..0c99fcb324 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.sharedmemory.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es2020.sharedmemory.js","sourceRoot":"","sources":["../../src/lib/es2020.sharedmemory.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,mBAAmB,GAAG;IACjC,OAAO,EAAE,kBAAI;CACgC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.d.ts.map index b2d3f9cad9..b2a6caf6d2 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2020.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAQqB,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,aAAa,4CAGqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js index cb7451e9c6..8b26a382d5 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js @@ -5,10 +5,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2020_string = void 0; const es2015_iterable_1 = require("./es2015.iterable"); -exports.es2020_string = Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), { String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - } }); +const base_config_1 = require("./base-config"); +exports.es2020_string = Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), { String: base_config_1.TYPE }); //# sourceMappingURL=es2020.string.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js.map index b13bab139d..8137a7f4ec 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.string.js.map @@ -1 +1 @@ -{"version":3,"file":"es2020.string.js","sourceRoot":"","sources":["../../src/lib/es2020.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AAEvC,QAAA,aAAa,GAAG,gCACxB,iCAAe,KAClB,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.string.js","sourceRoot":"","sources":["../../src/lib/es2020.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AACpD,+CAAqC;AAExB,QAAA,aAAa,GAAG,gCACxB,iCAAe,KAClB,MAAM,EAAE,kBAAI,GACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.d.ts.map index e4de6204ff..97e31797de 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es2020.symbol.wellknown.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.symbol.wellknown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,uBAAuB,4CAeW,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.symbol.wellknown.d.ts","sourceRoot":"","sources":["../../src/lib/es2020.symbol.wellknown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAKzD,eAAO,MAAM,uBAAuB,4CAKW,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js index 0dd89aa2f0..57d4ff195b 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js @@ -6,15 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.es2020_symbol_wellknown = void 0; const es2015_iterable_1 = require("./es2015.iterable"); const es2015_symbol_1 = require("./es2015.symbol"); -exports.es2020_symbol_wellknown = Object.assign(Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), es2015_symbol_1.es2015_symbol), { SymbolConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SymbolConstructor', - }, RegExp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExp', - } }); +const base_config_1 = require("./base-config"); +exports.es2020_symbol_wellknown = Object.assign(Object.assign(Object.assign({}, es2015_iterable_1.es2015_iterable), es2015_symbol_1.es2015_symbol), { SymbolConstructor: base_config_1.TYPE, RegExp: base_config_1.TYPE }); //# sourceMappingURL=es2020.symbol.wellknown.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js.map index 1e220dfca2..6d94184e88 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2020.symbol.wellknown.js.map @@ -1 +1 @@ -{"version":3,"file":"es2020.symbol.wellknown.js","sourceRoot":"","sources":["../../src/lib/es2020.symbol.wellknown.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AACpD,mDAAgD;AAEnC,QAAA,uBAAuB,GAAG,8CAClC,iCAAe,GACf,6BAAa,KAChB,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B,EACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es2020.symbol.wellknown.js","sourceRoot":"","sources":["../../src/lib/es2020.symbol.wellknown.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,uDAAoD;AACpD,mDAAgD;AAChD,+CAAqC;AAExB,QAAA,uBAAuB,GAAG,8CAClC,iCAAe,GACf,6BAAa,KAChB,iBAAiB,EAAE,kBAAI,EACvB,MAAM,EAAE,kBAAI,GACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.d.ts new file mode 100644 index 0000000000..b4cad1a7d8 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const es2021: Record; +//# sourceMappingURL=es2021.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.d.ts.map new file mode 100644 index 0000000000..dbeeb5f695 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.d.ts","sourceRoot":"","sources":["../../src/lib/es2021.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAMzD,eAAO,MAAM,MAAM,4CAK4B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.d.ts new file mode 100644 index 0000000000..727cd61bd0 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const es2021_full: Record; +//# sourceMappingURL=es2021.full.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.d.ts.map new file mode 100644 index 0000000000..7a544fb971 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.full.d.ts","sourceRoot":"","sources":["../../src/lib/es2021.full.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAOzD,eAAO,MAAM,WAAW,4CAMuB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js new file mode 100644 index 0000000000..55b1a4f752 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js @@ -0,0 +1,13 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.es2021_full = void 0; +const es2021_1 = require("./es2021"); +const dom_1 = require("./dom"); +const webworker_importscripts_1 = require("./webworker.importscripts"); +const scripthost_1 = require("./scripthost"); +const dom_iterable_1 = require("./dom.iterable"); +exports.es2021_full = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, es2021_1.es2021), dom_1.dom), webworker_importscripts_1.webworker_importscripts), scripthost_1.scripthost), dom_iterable_1.dom_iterable); +//# sourceMappingURL=es2021.full.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js.map new file mode 100644 index 0000000000..b8c0a84071 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.full.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.full.js","sourceRoot":"","sources":["../../src/lib/es2021.full.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,qCAAkC;AAClC,+BAA4B;AAC5B,uEAAoE;AACpE,6CAA0C;AAC1C,iDAA8C;AAEjC,QAAA,WAAW,GAAG,0EACtB,eAAM,GACN,SAAG,GACH,iDAAuB,GACvB,uBAAU,GACV,2BAAY,CAC8B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js new file mode 100644 index 0000000000..310588d715 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js @@ -0,0 +1,12 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.es2021 = void 0; +const es2020_1 = require("./es2020"); +const es2021_promise_1 = require("./es2021.promise"); +const es2021_string_1 = require("./es2021.string"); +const es2021_weakref_1 = require("./es2021.weakref"); +exports.es2021 = Object.assign(Object.assign(Object.assign(Object.assign({}, es2020_1.es2020), es2021_promise_1.es2021_promise), es2021_string_1.es2021_string), es2021_weakref_1.es2021_weakref); +//# sourceMappingURL=es2021.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js.map new file mode 100644 index 0000000000..3fd23736ff --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.js","sourceRoot":"","sources":["../../src/lib/es2021.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,qCAAkC;AAClC,qDAAkD;AAClD,mDAAgD;AAChD,qDAAkD;AAErC,QAAA,MAAM,GAAG,4DACjB,eAAM,GACN,+BAAc,GACd,6BAAa,GACb,+BAAc,CAC4B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.d.ts new file mode 100644 index 0000000000..cd5f32b796 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const es2021_promise: Record; +//# sourceMappingURL=es2021.promise.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.d.ts.map new file mode 100644 index 0000000000..2e399633a5 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.promise.d.ts","sourceRoot":"","sources":["../../src/lib/es2021.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAIoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js new file mode 100644 index 0000000000..bf57e95ac6 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js @@ -0,0 +1,13 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.es2021_promise = void 0; +const base_config_1 = require("./base-config"); +exports.es2021_promise = { + AggregateError: base_config_1.TYPE_VALUE, + AggregateErrorConstructor: base_config_1.TYPE, + PromiseConstructor: base_config_1.TYPE, +}; +//# sourceMappingURL=es2021.promise.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js.map new file mode 100644 index 0000000000..4bb5217061 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.promise.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.promise.js","sourceRoot":"","sources":["../../src/lib/es2021.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,wBAAU;IAC1B,yBAAyB,EAAE,kBAAI;IAC/B,kBAAkB,EAAE,kBAAI;CACqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.d.ts new file mode 100644 index 0000000000..14be67a6e0 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const es2021_string: Record; +//# sourceMappingURL=es2021.string.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.d.ts.map new file mode 100644 index 0000000000..8d764994fa --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.string.d.ts","sourceRoot":"","sources":["../../src/lib/es2021.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js new file mode 100644 index 0000000000..b54216a3dd --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js @@ -0,0 +1,11 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.es2021_string = void 0; +const base_config_1 = require("./base-config"); +exports.es2021_string = { + String: base_config_1.TYPE, +}; +//# sourceMappingURL=es2021.string.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js.map new file mode 100644 index 0000000000..c2ac1df308 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.string.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.string.js","sourceRoot":"","sources":["../../src/lib/es2021.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.d.ts new file mode 100644 index 0000000000..0cff1eeff4 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const es2021_weakref: Record; +//# sourceMappingURL=es2021.weakref.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.d.ts.map new file mode 100644 index 0000000000..3a7fd5b8a7 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.weakref.d.ts","sourceRoot":"","sources":["../../src/lib/es2021.weakref.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAKoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js new file mode 100644 index 0000000000..f8dc0f8b81 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js @@ -0,0 +1,14 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.es2021_weakref = void 0; +const base_config_1 = require("./base-config"); +exports.es2021_weakref = { + WeakRef: base_config_1.TYPE_VALUE, + WeakRefConstructor: base_config_1.TYPE, + FinalizationRegistry: base_config_1.TYPE_VALUE, + FinalizationRegistryConstructor: base_config_1.TYPE, +}; +//# sourceMappingURL=es2021.weakref.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js.map new file mode 100644 index 0000000000..6ec9fcea6e --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es2021.weakref.js.map @@ -0,0 +1 @@ +{"version":3,"file":"es2021.weakref.js","sourceRoot":"","sources":["../../src/lib/es2021.weakref.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,wBAAU;IACnB,kBAAkB,EAAE,kBAAI;IACxB,oBAAoB,EAAE,wBAAU;IAChC,+BAA+B,EAAE,kBAAI;CACQ,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.d.ts.map index f935434f7f..d99b334870 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"es5.d.ts","sourceRoot":"","sources":["../../src/lib/es5.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,GAAG,4CAikB+B,CAAC"} \ No newline at end of file +{"version":3,"file":"es5.d.ts","sourceRoot":"","sources":["../../src/lib/es5.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,GAAG,4CAqG+B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js index 1d036766b7..148f093dc8 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js @@ -4,582 +4,107 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.es5 = void 0; +const base_config_1 = require("./base-config"); exports.es5 = { - Symbol: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Symbol', - }, - PropertyKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PropertyKey', - }, - PropertyDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PropertyDescriptor', - }, - PropertyDescriptorMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PropertyDescriptorMap', - }, - Object: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Object', - }, - ObjectConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ObjectConstructor', - }, - Function: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Function', - }, - FunctionConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FunctionConstructor', - }, - ThisParameterType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ThisParameterType', - }, - OmitThisParameter: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OmitThisParameter', - }, - CallableFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CallableFunction', - }, - NewableFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NewableFunction', - }, - IArguments: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IArguments', - }, - String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'String', - }, - StringConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StringConstructor', - }, - Boolean: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Boolean', - }, - BooleanConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BooleanConstructor', - }, - Number: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Number', - }, - NumberConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NumberConstructor', - }, - TemplateStringsArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TemplateStringsArray', - }, - ImportMeta: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImportMeta', - }, - Math: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Math', - }, - Date: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Date', - }, - DateConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DateConstructor', - }, - RegExpMatchArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpMatchArray', - }, - RegExpExecArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpExecArray', - }, - RegExp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RegExp', - }, - RegExpConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegExpConstructor', - }, - Error: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Error', - }, - ErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ErrorConstructor', - }, - EvalError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'EvalError', - }, - EvalErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EvalErrorConstructor', - }, - RangeError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'RangeError', - }, - RangeErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RangeErrorConstructor', - }, - ReferenceError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ReferenceError', - }, - ReferenceErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReferenceErrorConstructor', - }, - SyntaxError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SyntaxError', - }, - SyntaxErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SyntaxErrorConstructor', - }, - TypeError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TypeError', - }, - TypeErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TypeErrorConstructor', - }, - URIError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'URIError', - }, - URIErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'URIErrorConstructor', - }, - JSON: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'JSON', - }, - ReadonlyArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyArray', - }, - ConcatArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConcatArray', - }, - Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Array', - }, - ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayConstructor', - }, - TypedPropertyDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TypedPropertyDescriptor', - }, - ClassDecorator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClassDecorator', - }, - PropertyDecorator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PropertyDecorator', - }, - MethodDecorator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MethodDecorator', - }, - ParameterDecorator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ParameterDecorator', - }, - PromiseConstructorLike: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseConstructorLike', - }, - PromiseLike: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseLike', - }, - Promise: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Promise', - }, - ArrayLike: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayLike', - }, - Partial: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Partial', - }, - Required: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Required', - }, - Readonly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Readonly', - }, - Pick: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Pick', - }, - Record: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Record', - }, - Exclude: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Exclude', - }, - Extract: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Extract', - }, - Omit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Omit', - }, - NonNullable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NonNullable', - }, - Parameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Parameters', - }, - ConstructorParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConstructorParameters', - }, - ReturnType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReturnType', - }, - InstanceType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'InstanceType', - }, - ThisType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ThisType', - }, - ArrayBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ArrayBuffer', - }, - ArrayBufferTypes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBufferTypes', - }, - ArrayBufferLike: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBufferLike', - }, - ArrayBufferConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBufferConstructor', - }, - ArrayBufferView: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ArrayBufferView', - }, - DataView: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DataView', - }, - DataViewConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DataViewConstructor', - }, - Int8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Int8Array', - }, - Int8ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int8ArrayConstructor', - }, - Uint8Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Uint8Array', - }, - Uint8ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ArrayConstructor', - }, - Uint8ClampedArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Uint8ClampedArray', - }, - Uint8ClampedArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint8ClampedArrayConstructor', - }, - Int16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Int16Array', - }, - Int16ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int16ArrayConstructor', - }, - Uint16Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Uint16Array', - }, - Uint16ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint16ArrayConstructor', - }, - Int32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Int32Array', - }, - Int32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32ArrayConstructor', - }, - Uint32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Uint32Array', - }, - Uint32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32ArrayConstructor', - }, - Float32Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Float32Array', - }, - Float32ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32ArrayConstructor', - }, - Float64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Float64Array', - }, - Float64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float64ArrayConstructor', - }, - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + Symbol: base_config_1.TYPE, + PropertyKey: base_config_1.TYPE, + PropertyDescriptor: base_config_1.TYPE, + PropertyDescriptorMap: base_config_1.TYPE, + Object: base_config_1.TYPE_VALUE, + ObjectConstructor: base_config_1.TYPE, + Function: base_config_1.TYPE_VALUE, + FunctionConstructor: base_config_1.TYPE, + ThisParameterType: base_config_1.TYPE, + OmitThisParameter: base_config_1.TYPE, + CallableFunction: base_config_1.TYPE, + NewableFunction: base_config_1.TYPE, + IArguments: base_config_1.TYPE, + String: base_config_1.TYPE_VALUE, + StringConstructor: base_config_1.TYPE, + Boolean: base_config_1.TYPE_VALUE, + BooleanConstructor: base_config_1.TYPE, + Number: base_config_1.TYPE_VALUE, + NumberConstructor: base_config_1.TYPE, + TemplateStringsArray: base_config_1.TYPE, + ImportMeta: base_config_1.TYPE, + Math: base_config_1.TYPE_VALUE, + Date: base_config_1.TYPE_VALUE, + DateConstructor: base_config_1.TYPE, + RegExpMatchArray: base_config_1.TYPE, + RegExpExecArray: base_config_1.TYPE, + RegExp: base_config_1.TYPE_VALUE, + RegExpConstructor: base_config_1.TYPE, + Error: base_config_1.TYPE_VALUE, + ErrorConstructor: base_config_1.TYPE, + EvalError: base_config_1.TYPE_VALUE, + EvalErrorConstructor: base_config_1.TYPE, + RangeError: base_config_1.TYPE_VALUE, + RangeErrorConstructor: base_config_1.TYPE, + ReferenceError: base_config_1.TYPE_VALUE, + ReferenceErrorConstructor: base_config_1.TYPE, + SyntaxError: base_config_1.TYPE_VALUE, + SyntaxErrorConstructor: base_config_1.TYPE, + TypeError: base_config_1.TYPE_VALUE, + TypeErrorConstructor: base_config_1.TYPE, + URIError: base_config_1.TYPE_VALUE, + URIErrorConstructor: base_config_1.TYPE, + JSON: base_config_1.TYPE_VALUE, + ReadonlyArray: base_config_1.TYPE, + ConcatArray: base_config_1.TYPE, + Array: base_config_1.TYPE_VALUE, + ArrayConstructor: base_config_1.TYPE, + TypedPropertyDescriptor: base_config_1.TYPE, + ClassDecorator: base_config_1.TYPE, + PropertyDecorator: base_config_1.TYPE, + MethodDecorator: base_config_1.TYPE, + ParameterDecorator: base_config_1.TYPE, + PromiseConstructorLike: base_config_1.TYPE, + PromiseLike: base_config_1.TYPE, + Promise: base_config_1.TYPE, + ArrayLike: base_config_1.TYPE, + Partial: base_config_1.TYPE, + Required: base_config_1.TYPE, + Readonly: base_config_1.TYPE, + Pick: base_config_1.TYPE, + Record: base_config_1.TYPE, + Exclude: base_config_1.TYPE, + Extract: base_config_1.TYPE, + Omit: base_config_1.TYPE, + NonNullable: base_config_1.TYPE, + Parameters: base_config_1.TYPE, + ConstructorParameters: base_config_1.TYPE, + ReturnType: base_config_1.TYPE, + InstanceType: base_config_1.TYPE, + Uppercase: base_config_1.TYPE, + Lowercase: base_config_1.TYPE, + Capitalize: base_config_1.TYPE, + Uncapitalize: base_config_1.TYPE, + ThisType: base_config_1.TYPE, + ArrayBuffer: base_config_1.TYPE_VALUE, + ArrayBufferTypes: base_config_1.TYPE, + ArrayBufferLike: base_config_1.TYPE, + ArrayBufferConstructor: base_config_1.TYPE, + ArrayBufferView: base_config_1.TYPE, + DataView: base_config_1.TYPE_VALUE, + DataViewConstructor: base_config_1.TYPE, + Int8Array: base_config_1.TYPE_VALUE, + Int8ArrayConstructor: base_config_1.TYPE, + Uint8Array: base_config_1.TYPE_VALUE, + Uint8ArrayConstructor: base_config_1.TYPE, + Uint8ClampedArray: base_config_1.TYPE_VALUE, + Uint8ClampedArrayConstructor: base_config_1.TYPE, + Int16Array: base_config_1.TYPE_VALUE, + Int16ArrayConstructor: base_config_1.TYPE, + Uint16Array: base_config_1.TYPE_VALUE, + Uint16ArrayConstructor: base_config_1.TYPE, + Int32Array: base_config_1.TYPE_VALUE, + Int32ArrayConstructor: base_config_1.TYPE, + Uint32Array: base_config_1.TYPE_VALUE, + Uint32ArrayConstructor: base_config_1.TYPE, + Float32Array: base_config_1.TYPE_VALUE, + Float32ArrayConstructor: base_config_1.TYPE, + Float64Array: base_config_1.TYPE_VALUE, + Float64ArrayConstructor: base_config_1.TYPE, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=es5.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js.map index b3a3783517..8071155804 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/es5.js.map @@ -1 +1 @@ -{"version":3,"file":"es5.js","sourceRoot":"","sources":["../../src/lib/es5.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,GAAG,GAAG;IACjB,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,UAAU;KACjB;IACD,mBAAmB,EAAE;QACnB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,qBAAqB;KAC5B;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,oBAAoB,EAAE;QACpB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,sBAAsB;KAC7B;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,OAAO;KACd;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KAClB;IACD,oBAAoB,EAAE;QACpB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,sBAAsB;KAC7B;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,YAAY;KACnB;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,gBAAgB;KACvB;IACD,yBAAyB,EAAE;QACzB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,2BAA2B;KAClC;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,aAAa;KACpB;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KAClB;IACD,oBAAoB,EAAE;QACpB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,sBAAsB;KAC7B;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,UAAU;KACjB;IACD,mBAAmB,EAAE;QACnB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,qBAAqB;KAC5B;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,OAAO;KACd;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,uBAAuB,EAAE;QACvB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,yBAAyB;KAChC;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,gBAAgB;KACvB;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,SAAS;KAChB;IACD,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,WAAW;KAClB;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,SAAS;KAChB;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;KACb;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,SAAS;KAChB;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,SAAS;KAChB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;KACb;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,YAAY;KACnB;IACD,YAAY,EAAE;QACZ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,cAAc;KACrB;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,aAAa;KACpB;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,UAAU;KACjB;IACD,mBAAmB,EAAE;QACnB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,qBAAqB;KAC5B;IACD,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KAClB;IACD,oBAAoB,EAAE;QACpB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,sBAAsB;KAC7B;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,YAAY;KACnB;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,mBAAmB;KAC1B;IACD,4BAA4B,EAAE;QAC5B,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,8BAA8B;KACrC;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,YAAY;KACnB;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,aAAa;KACpB;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,YAAY;KACnB;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,aAAa;KACpB;IACD,sBAAsB,EAAE;QACtB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,wBAAwB;KAC/B;IACD,YAAY,EAAE;QACZ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,cAAc;KACrB;IACD,uBAAuB,EAAE;QACvB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,yBAAyB;KAChC;IACD,YAAY,EAAE;QACZ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,cAAc;KACrB;IACD,uBAAuB,EAAE;QACvB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,yBAAyB;KAChC;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"es5.js","sourceRoot":"","sources":["../../src/lib/es5.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.d.ts.map index d3f7ae6f8e..94481961b4 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.array.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,YAAY,4CAmBsB,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.array.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,YAAY,4CAIsB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js index 716509406e..76d9652870 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js @@ -4,24 +4,10 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_array = void 0; +const base_config_1 = require("./base-config"); exports.esnext_array = { - FlatArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FlatArray', - }, - ReadonlyArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadonlyArray', - }, - Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Array', - }, + FlatArray: base_config_1.TYPE, + ReadonlyArray: base_config_1.TYPE, + Array: base_config_1.TYPE, }; //# sourceMappingURL=esnext.array.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js.map index 72c450ae4c..f55353c4db 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.array.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.array.js","sourceRoot":"","sources":["../../src/lib/esnext.array.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,WAAW;KAClB;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB;IACD,KAAK,EAAE;QACL,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,OAAO;KACd;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.array.js","sourceRoot":"","sources":["../../src/lib/esnext.array.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,YAAY,GAAG;IAC1B,SAAS,EAAE,kBAAI;IACf,aAAa,EAAE,kBAAI;IACnB,KAAK,EAAE,kBAAI;CACkC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.d.ts.map index 4bc2c4a61c..037bd953d6 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.asynciterable.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.asynciterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,oBAAoB,4CA2Bc,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.asynciterable.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.asynciterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAKzD,eAAO,MAAM,oBAAoB,4CAOc,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js index 00ac9b168a..10e279c52d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js @@ -6,25 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_asynciterable = void 0; const es2015_symbol_1 = require("./es2015.symbol"); const es2015_iterable_1 = require("./es2015.iterable"); -exports.esnext_asynciterable = Object.assign(Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), es2015_iterable_1.es2015_iterable), { SymbolConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SymbolConstructor', - }, AsyncIterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncIterator', - }, AsyncIterable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncIterable', - }, AsyncIterableIterator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AsyncIterableIterator', - } }); +const base_config_1 = require("./base-config"); +exports.esnext_asynciterable = Object.assign(Object.assign(Object.assign({}, es2015_symbol_1.es2015_symbol), es2015_iterable_1.es2015_iterable), { SymbolConstructor: base_config_1.TYPE, AsyncIterator: base_config_1.TYPE, AsyncIterable: base_config_1.TYPE, AsyncIterableIterator: base_config_1.TYPE }); //# sourceMappingURL=esnext.asynciterable.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js.map index bc3312d273..ea790594ec 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.asynciterable.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.asynciterable.js","sourceRoot":"","sources":["../../src/lib/esnext.asynciterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,uDAAoD;AAEvC,QAAA,oBAAoB,GAAG,8CAC/B,6BAAa,GACb,iCAAe,KAClB,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B,EACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB,EACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,eAAe;KACtB,EACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B,GAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.asynciterable.js","sourceRoot":"","sources":["../../src/lib/esnext.asynciterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,mDAAgD;AAChD,uDAAoD;AACpD,+CAAqC;AAExB,QAAA,oBAAoB,GAAG,8CAC/B,6BAAa,GACb,iCAAe,KAClB,iBAAiB,EAAE,kBAAI,EACvB,aAAa,EAAE,kBAAI,EACnB,aAAa,EAAE,kBAAI,EACnB,qBAAqB,EAAE,kBAAI,GACkB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.d.ts.map index 69b5ddde2c..a100923a8c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.bigint.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.bigint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAuDqB,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.bigint.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.bigint.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAUqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js index ea080ba2df..64826145e6 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js @@ -4,60 +4,16 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_bigint = void 0; +const base_config_1 = require("./base-config"); exports.esnext_bigint = { - BigIntToLocaleStringOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigIntToLocaleStringOptions', - }, - BigInt: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BigInt', - }, - BigIntConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigIntConstructor', - }, - BigInt64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BigInt64Array', - }, - BigInt64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigInt64ArrayConstructor', - }, - BigUint64Array: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BigUint64Array', - }, - BigUint64ArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigUint64ArrayConstructor', - }, - DataView: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DataView', - }, - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + BigIntToLocaleStringOptions: base_config_1.TYPE, + BigInt: base_config_1.TYPE_VALUE, + BigIntConstructor: base_config_1.TYPE, + BigInt64Array: base_config_1.TYPE_VALUE, + BigInt64ArrayConstructor: base_config_1.TYPE, + BigUint64Array: base_config_1.TYPE_VALUE, + BigUint64ArrayConstructor: base_config_1.TYPE, + DataView: base_config_1.TYPE, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=esnext.bigint.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js.map index 44d4092fbe..35898fa275 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.bigint.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.bigint.js","sourceRoot":"","sources":["../../src/lib/esnext.bigint.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,2BAA2B,EAAE;QAC3B,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,6BAA6B;KACpC;IACD,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,QAAQ;KACf;IACD,iBAAiB,EAAE;QACjB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,mBAAmB;KAC1B;IACD,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,wBAAwB,EAAE;QACxB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,0BAA0B;KACjC;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,gBAAgB;KACvB;IACD,yBAAyB,EAAE;QACzB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,2BAA2B;KAClC;IACD,QAAQ,EAAE;QACR,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.bigint.js","sourceRoot":"","sources":["../../src/lib/esnext.bigint.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,aAAa,GAAG;IAC3B,2BAA2B,EAAE,kBAAI;IACjC,MAAM,EAAE,wBAAU;IAClB,iBAAiB,EAAE,kBAAI;IACvB,aAAa,EAAE,wBAAU;IACzB,wBAAwB,EAAE,kBAAI;IAC9B,cAAc,EAAE,wBAAU;IAC1B,yBAAyB,EAAE,kBAAI;IAC/B,QAAQ,EAAE,kBAAI;IACd,IAAI,EAAE,wBAAU;CAC6B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.d.ts.map index e414c2771f..044396f04d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAMzD,eAAO,MAAM,MAAM,4CAK4B,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAIzD,eAAO,MAAM,MAAM,4CAG4B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.d.ts.map index f955c84253..40cb0e7fd7 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.intl.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,WAAW,4CAOuB,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.intl.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.intl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,WAAW,4CAEuB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js index 7e87a0e7a5..cd25f95179 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_intl = void 0; +const base_config_1 = require("./base-config"); exports.esnext_intl = { - Intl: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Intl', - }, + Intl: base_config_1.TYPE_VALUE, }; //# sourceMappingURL=esnext.intl.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js.map index c1d75c5f89..5118da4a15 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.intl.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.intl.js","sourceRoot":"","sources":["../../src/lib/esnext.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.intl.js","sourceRoot":"","sources":["../../src/lib/esnext.intl.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAA2C;AAE9B,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE,wBAAU;CAC6B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js index 5bf51829c6..f8630efcf3 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js @@ -4,9 +4,7 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext = void 0; -const es2020_1 = require("./es2020"); +const es2021_1 = require("./es2021"); const esnext_intl_1 = require("./esnext.intl"); -const esnext_string_1 = require("./esnext.string"); -const esnext_promise_1 = require("./esnext.promise"); -exports.esnext = Object.assign(Object.assign(Object.assign(Object.assign({}, es2020_1.es2020), esnext_intl_1.esnext_intl), esnext_string_1.esnext_string), esnext_promise_1.esnext_promise); +exports.esnext = Object.assign(Object.assign({}, es2021_1.es2021), esnext_intl_1.esnext_intl); //# sourceMappingURL=esnext.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js.map index be61999c5c..7d4b460d3c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.js","sourceRoot":"","sources":["../../src/lib/esnext.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,qCAAkC;AAClC,+CAA4C;AAC5C,mDAAgD;AAChD,qDAAkD;AAErC,QAAA,MAAM,GAAG,4DACjB,eAAM,GACN,yBAAW,GACX,6BAAa,GACb,+BAAc,CAC4B,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.js","sourceRoot":"","sources":["../../src/lib/esnext.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,qCAAkC;AAClC,+CAA4C;AAE/B,QAAA,MAAM,GAAG,gCACjB,eAAM,GACN,yBAAW,CAC+B,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.d.ts.map index 5421852e40..5f69c6a3db 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.promise.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,cAAc,4CAmBoB,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.promise.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.promise.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAIoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js index 8e297b69b8..99d6caa42a 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js @@ -4,24 +4,10 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_promise = void 0; +const base_config_1 = require("./base-config"); exports.esnext_promise = { - AggregateError: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AggregateError', - }, - AggregateErrorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AggregateErrorConstructor', - }, - PromiseConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseConstructor', - }, + AggregateError: base_config_1.TYPE_VALUE, + AggregateErrorConstructor: base_config_1.TYPE, + PromiseConstructor: base_config_1.TYPE, }; //# sourceMappingURL=esnext.promise.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js.map index aca57a1cbe..ea96349d89 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.promise.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.promise.js","sourceRoot":"","sources":["../../src/lib/esnext.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,gBAAgB;KACvB;IACD,yBAAyB,EAAE;QACzB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,2BAA2B;KAClC;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.promise.js","sourceRoot":"","sources":["../../src/lib/esnext.promise.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,wBAAU;IAC1B,yBAAyB,EAAE,kBAAI;IAC/B,kBAAkB,EAAE,kBAAI;CACqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.d.ts.map index 32451ca313..3e29c0c636 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.string.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.string.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.string.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js index 5cec00be61..394aca5f35 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_string = void 0; +const base_config_1 = require("./base-config"); exports.esnext_string = { - String: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'String', - }, + String: base_config_1.TYPE, }; //# sourceMappingURL=esnext.string.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js.map index 714de47ee0..cc3946986c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.string.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.string.js","sourceRoot":"","sources":["../../src/lib/esnext.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.string.js","sourceRoot":"","sources":["../../src/lib/esnext.string.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.d.ts.map index ac7c90a567..0675f4150f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"esnext.symbol.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.symbol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,aAAa,4CAOqB,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.symbol.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.symbol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,aAAa,4CAEqB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js index 72e7bc2276..c925d35c5f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js @@ -4,12 +4,8 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.esnext_symbol = void 0; +const base_config_1 = require("./base-config"); exports.esnext_symbol = { - Symbol: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Symbol', - }, + Symbol: base_config_1.TYPE, }; //# sourceMappingURL=esnext.symbol.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js.map index 605f87c5cf..c2b25aaa67 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.symbol.js.map @@ -1 +1 @@ -{"version":3,"file":"esnext.symbol.js","sourceRoot":"","sources":["../../src/lib/esnext.symbol.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE;QACN,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,QAAQ;KACf;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"esnext.symbol.js","sourceRoot":"","sources":["../../src/lib/esnext.symbol.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,kBAAI;CACiC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.d.ts new file mode 100644 index 0000000000..d111a0bbfc --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const esnext_weakref: Record; +//# sourceMappingURL=esnext.weakref.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.d.ts.map new file mode 100644 index 0000000000..444315879f --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"esnext.weakref.d.ts","sourceRoot":"","sources":["../../src/lib/esnext.weakref.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,cAAc,4CAKoB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js new file mode 100644 index 0000000000..b59c3f66d8 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js @@ -0,0 +1,14 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.esnext_weakref = void 0; +const base_config_1 = require("./base-config"); +exports.esnext_weakref = { + WeakRef: base_config_1.TYPE_VALUE, + WeakRefConstructor: base_config_1.TYPE, + FinalizationRegistry: base_config_1.TYPE_VALUE, + FinalizationRegistryConstructor: base_config_1.TYPE, +}; +//# sourceMappingURL=esnext.weakref.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js.map new file mode 100644 index 0000000000..4adbca48ce --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/esnext.weakref.js.map @@ -0,0 +1 @@ +{"version":3,"file":"esnext.weakref.js","sourceRoot":"","sources":["../../src/lib/esnext.weakref.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,wBAAU;IACnB,kBAAkB,EAAE,kBAAI;IACxB,oBAAoB,EAAE,wBAAU;IAChC,+BAA+B,EAAE,kBAAI;CACQ,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts index 548ac55d04..d4b105d425 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts @@ -8,11 +8,13 @@ declare const lib: { readonly es2018: Record; readonly es2019: Record; readonly es2020: Record; + readonly es2021: Record; readonly esnext: Record; readonly dom: Record; readonly 'dom.iterable': Record; readonly webworker: Record; readonly 'webworker.importscripts': Record; + readonly 'webworker.iterable': Record; readonly scripthost: Record; readonly 'es2015.core': Record; readonly 'es2015.collection': Record; @@ -40,9 +42,13 @@ declare const lib: { readonly 'es2019.symbol': Record; readonly 'es2020.bigint': Record; readonly 'es2020.promise': Record; + readonly 'es2020.sharedmemory': Record; readonly 'es2020.string': Record; readonly 'es2020.symbol.wellknown': Record; readonly 'es2020.intl': Record; + readonly 'es2021.promise': Record; + readonly 'es2021.string': Record; + readonly 'es2021.weakref': Record; readonly 'esnext.array': Record; readonly 'esnext.symbol': Record; readonly 'esnext.asynciterable': Record; @@ -50,11 +56,13 @@ declare const lib: { readonly 'esnext.bigint': Record; readonly 'esnext.string': Record; readonly 'esnext.promise': Record; + readonly 'esnext.weakref': Record; readonly 'es2016.full': Record; readonly 'es2017.full': Record; readonly 'es2018.full': Record; readonly 'es2019.full': Record; readonly 'es2020.full': Record; + readonly 'es2021.full': Record; readonly 'esnext.full': Record; readonly lib: Record; }; diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map index 31708d0980..4db653e4a6 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AA+DA,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAuEA,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js index 52518e6977..6b5ef5dea9 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js @@ -13,11 +13,13 @@ const es2017_1 = require("./es2017"); const es2018_1 = require("./es2018"); const es2019_1 = require("./es2019"); const es2020_1 = require("./es2020"); +const es2021_1 = require("./es2021"); const esnext_1 = require("./esnext"); const dom_1 = require("./dom"); const dom_iterable_1 = require("./dom.iterable"); const webworker_1 = require("./webworker"); const webworker_importscripts_1 = require("./webworker.importscripts"); +const webworker_iterable_1 = require("./webworker.iterable"); const scripthost_1 = require("./scripthost"); const es2015_core_1 = require("./es2015.core"); const es2015_collection_1 = require("./es2015.collection"); @@ -45,9 +47,13 @@ const es2019_string_1 = require("./es2019.string"); const es2019_symbol_1 = require("./es2019.symbol"); const es2020_bigint_1 = require("./es2020.bigint"); const es2020_promise_1 = require("./es2020.promise"); +const es2020_sharedmemory_1 = require("./es2020.sharedmemory"); const es2020_string_1 = require("./es2020.string"); const es2020_symbol_wellknown_1 = require("./es2020.symbol.wellknown"); const es2020_intl_1 = require("./es2020.intl"); +const es2021_promise_1 = require("./es2021.promise"); +const es2021_string_1 = require("./es2021.string"); +const es2021_weakref_1 = require("./es2021.weakref"); const esnext_array_1 = require("./esnext.array"); const esnext_symbol_1 = require("./esnext.symbol"); const esnext_asynciterable_1 = require("./esnext.asynciterable"); @@ -55,11 +61,13 @@ const esnext_intl_1 = require("./esnext.intl"); const esnext_bigint_1 = require("./esnext.bigint"); const esnext_string_1 = require("./esnext.string"); const esnext_promise_1 = require("./esnext.promise"); +const esnext_weakref_1 = require("./esnext.weakref"); const es2016_full_1 = require("./es2016.full"); const es2017_full_1 = require("./es2017.full"); const es2018_full_1 = require("./es2018.full"); const es2019_full_1 = require("./es2019.full"); const es2020_full_1 = require("./es2020.full"); +const es2021_full_1 = require("./es2021.full"); const esnext_full_1 = require("./esnext.full"); const lib_1 = require("./lib"); const lib = { @@ -72,11 +80,13 @@ const lib = { es2018: es2018_1.es2018, es2019: es2019_1.es2019, es2020: es2020_1.es2020, + es2021: es2021_1.es2021, esnext: esnext_1.esnext, dom: dom_1.dom, 'dom.iterable': dom_iterable_1.dom_iterable, webworker: webworker_1.webworker, 'webworker.importscripts': webworker_importscripts_1.webworker_importscripts, + 'webworker.iterable': webworker_iterable_1.webworker_iterable, scripthost: scripthost_1.scripthost, 'es2015.core': es2015_core_1.es2015_core, 'es2015.collection': es2015_collection_1.es2015_collection, @@ -104,9 +114,13 @@ const lib = { 'es2019.symbol': es2019_symbol_1.es2019_symbol, 'es2020.bigint': es2020_bigint_1.es2020_bigint, 'es2020.promise': es2020_promise_1.es2020_promise, + 'es2020.sharedmemory': es2020_sharedmemory_1.es2020_sharedmemory, 'es2020.string': es2020_string_1.es2020_string, 'es2020.symbol.wellknown': es2020_symbol_wellknown_1.es2020_symbol_wellknown, 'es2020.intl': es2020_intl_1.es2020_intl, + 'es2021.promise': es2021_promise_1.es2021_promise, + 'es2021.string': es2021_string_1.es2021_string, + 'es2021.weakref': es2021_weakref_1.es2021_weakref, 'esnext.array': esnext_array_1.esnext_array, 'esnext.symbol': esnext_symbol_1.esnext_symbol, 'esnext.asynciterable': esnext_asynciterable_1.esnext_asynciterable, @@ -114,11 +128,13 @@ const lib = { 'esnext.bigint': esnext_bigint_1.esnext_bigint, 'esnext.string': esnext_string_1.esnext_string, 'esnext.promise': esnext_promise_1.esnext_promise, + 'esnext.weakref': esnext_weakref_1.esnext_weakref, 'es2016.full': es2016_full_1.es2016_full, 'es2017.full': es2017_full_1.es2017_full, 'es2018.full': es2018_full_1.es2018_full, 'es2019.full': es2019_full_1.es2019_full, 'es2020.full': es2020_full_1.es2020_full, + 'es2021.full': es2021_full_1.es2021_full, 'esnext.full': esnext_full_1.esnext_full, lib: lib_1.lib, }; diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map index 5b17b816df..b6c631290a 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.d.ts.map index 5ea9f54c2f..1181b448f1 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"scripthost.d.ts","sourceRoot":"","sources":["../../src/lib/scripthost.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,UAAU,4CA+EwB,CAAC"} \ No newline at end of file +{"version":3,"file":"scripthost.d.ts","sourceRoot":"","sources":["../../src/lib/scripthost.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,UAAU,4CAcwB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js index 34407089c2..b429c68755 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js @@ -4,84 +4,20 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.scripthost = void 0; +const base_config_1 = require("./base-config"); exports.scripthost = { - ActiveXObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ActiveXObject', - }, - ITextWriter: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ITextWriter', - }, - TextStreamBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextStreamBase', - }, - TextStreamWriter: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextStreamWriter', - }, - TextStreamReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextStreamReader', - }, - SafeArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SafeArray', - }, - Enumerator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Enumerator', - }, - EnumeratorConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EnumeratorConstructor', - }, - VBArray: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VBArray', - }, - VBArrayConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VBArrayConstructor', - }, - VarDate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'VarDate', - }, - DateConstructor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DateConstructor', - }, - Date: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Date', - }, + ActiveXObject: base_config_1.TYPE_VALUE, + ITextWriter: base_config_1.TYPE, + TextStreamBase: base_config_1.TYPE, + TextStreamWriter: base_config_1.TYPE, + TextStreamReader: base_config_1.TYPE, + SafeArray: base_config_1.TYPE_VALUE, + Enumerator: base_config_1.TYPE_VALUE, + EnumeratorConstructor: base_config_1.TYPE, + VBArray: base_config_1.TYPE_VALUE, + VBArrayConstructor: base_config_1.TYPE, + VarDate: base_config_1.TYPE_VALUE, + DateConstructor: base_config_1.TYPE, + Date: base_config_1.TYPE, }; //# sourceMappingURL=scripthost.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js.map index 8684ff1aee..4020e08b3b 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/scripthost.js.map @@ -1 +1 @@ -{"version":3,"file":"scripthost.js","sourceRoot":"","sources":["../../src/lib/scripthost.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAInC,QAAA,UAAU,GAAG;IACxB,aAAa,EAAE;QACb,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,eAAe;KACtB;IACD,WAAW,EAAE;QACX,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,aAAa;KACpB;IACD,cAAc,EAAE;QACd,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,gBAAgB;KACvB;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,gBAAgB,EAAE;QAChB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,kBAAkB;KACzB;IACD,SAAS,EAAE;QACT,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,WAAW;KAClB;IACD,UAAU,EAAE;QACV,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,YAAY;KACnB;IACD,qBAAqB,EAAE;QACrB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,uBAAuB;KAC9B;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB;IACD,kBAAkB,EAAE;QAClB,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,oBAAoB;KAC3B;IACD,OAAO,EAAE;QACP,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,IAAI;QACrB,IAAI,EAAE,SAAS;KAChB;IACD,eAAe,EAAE;QACf,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,iBAAiB;KACxB;IACD,IAAI,EAAE;QACJ,2BAA2B,EAAE,UAAU;QACvC,cAAc,EAAE,IAAI;QACpB,eAAe,EAAE,KAAK;QACtB,IAAI,EAAE,MAAM;KACb;CAC4C,CAAC"} \ No newline at end of file +{"version":3,"file":"scripthost.js","sourceRoot":"","sources":["../../src/lib/scripthost.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAiD;AAEpC,QAAA,UAAU,GAAG;IACxB,aAAa,EAAE,wBAAU;IACzB,WAAW,EAAE,kBAAI;IACjB,cAAc,EAAE,kBAAI;IACpB,gBAAgB,EAAE,kBAAI;IACtB,gBAAgB,EAAE,kBAAI;IACtB,SAAS,EAAE,wBAAU;IACrB,UAAU,EAAE,wBAAU;IACtB,qBAAqB,EAAE,kBAAI;IAC3B,OAAO,EAAE,wBAAU;IACnB,kBAAkB,EAAE,kBAAI;IACxB,OAAO,EAAE,wBAAU;IACnB,eAAe,EAAE,kBAAI;IACrB,IAAI,EAAE,kBAAI;CACmC,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map index 6e64e1ba88..a391827bdb 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"webworker.d.ts","sourceRoot":"","sources":["../../src/lib/webworker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,SAAS,4CAm6EyB,CAAC"} \ No newline at end of file +{"version":3,"file":"webworker.d.ts","sourceRoot":"","sources":["../../src/lib/webworker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,SAAS,4CA2ZyB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts new file mode 100644 index 0000000000..f7f0401989 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts @@ -0,0 +1,3 @@ +import { ImplicitLibVariableOptions } from '../variable'; +export declare const webworker_iterable: Record; +//# sourceMappingURL=webworker.iterable.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map new file mode 100644 index 0000000000..21daea236e --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"webworker.iterable.d.ts","sourceRoot":"","sources":["../../src/lib/webworker.iterable.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAGzD,eAAO,MAAM,kBAAkB,4CAegB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js new file mode 100644 index 0000000000..270e3684b0 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js @@ -0,0 +1,24 @@ +"use strict"; +// THIS CODE WAS AUTOMATICALLY GENERATED +// DO NOT EDIT THIS CODE BY HAND +// YOU CAN REGENERATE IT USING yarn generate:lib +Object.defineProperty(exports, "__esModule", { value: true }); +exports.webworker_iterable = void 0; +const base_config_1 = require("./base-config"); +exports.webworker_iterable = { + Cache: base_config_1.TYPE, + CanvasPathDrawingStyles: base_config_1.TYPE, + DOMStringList: base_config_1.TYPE, + FileList: base_config_1.TYPE, + FormData: base_config_1.TYPE, + Headers: base_config_1.TYPE, + IDBDatabase: base_config_1.TYPE, + IDBObjectStore: base_config_1.TYPE, + URLSearchParams: base_config_1.TYPE, + WEBGL_draw_buffers: base_config_1.TYPE, + WebGL2RenderingContextBase: base_config_1.TYPE, + WebGL2RenderingContextOverloads: base_config_1.TYPE, + WebGLRenderingContextBase: base_config_1.TYPE, + WebGLRenderingContextOverloads: base_config_1.TYPE, +}; +//# sourceMappingURL=webworker.iterable.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map new file mode 100644 index 0000000000..6a96007000 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.iterable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"webworker.iterable.js","sourceRoot":"","sources":["../../src/lib/webworker.iterable.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,gCAAgC;AAChC,gDAAgD;;;AAGhD,+CAAqC;AAExB,QAAA,kBAAkB,GAAG;IAChC,KAAK,EAAE,kBAAI;IACX,uBAAuB,EAAE,kBAAI;IAC7B,aAAa,EAAE,kBAAI;IACnB,QAAQ,EAAE,kBAAI;IACd,QAAQ,EAAE,kBAAI;IACd,OAAO,EAAE,kBAAI;IACb,WAAW,EAAE,kBAAI;IACjB,cAAc,EAAE,kBAAI;IACpB,eAAe,EAAE,kBAAI;IACrB,kBAAkB,EAAE,kBAAI;IACxB,0BAA0B,EAAE,kBAAI;IAChC,+BAA+B,EAAE,kBAAI;IACrC,yBAAyB,EAAE,kBAAI;IAC/B,8BAA8B,EAAE,kBAAI;CACS,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js index 7d53aed197..c1cadd950f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js @@ -4,2472 +4,417 @@ // YOU CAN REGENERATE IT USING yarn generate:lib Object.defineProperty(exports, "__esModule", { value: true }); exports.webworker = void 0; +const base_config_1 = require("./base-config"); exports.webworker = { - AddEventListenerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AddEventListenerOptions', - }, - AesCbcParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCbcParams', - }, - AesCtrParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCtrParams', - }, - AesDerivedKeyParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesDerivedKeyParams', - }, - AesGcmParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesGcmParams', - }, - AesKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesKeyAlgorithm', - }, - AesKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesKeyGenParams', - }, - Algorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Algorithm', - }, - BlobPropertyBag: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BlobPropertyBag', - }, - CacheQueryOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CacheQueryOptions', - }, - CanvasRenderingContext2DSettings: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasRenderingContext2DSettings', - }, - ClientQueryOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClientQueryOptions', - }, - CloseEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CloseEventInit', - }, - CryptoKeyPair: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CryptoKeyPair', - }, - CustomEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CustomEventInit', - }, - DOMMatrix2DInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMMatrix2DInit', - }, - DOMMatrixInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMMatrixInit', - }, - DOMPointInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMPointInit', - }, - DOMQuadInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMQuadInit', - }, - DOMRectInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMRectInit', - }, - DevicePermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DevicePermissionDescriptor', - }, - EcKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcKeyGenParams', - }, - EcKeyImportParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcKeyImportParams', - }, - EcdhKeyDeriveParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcdhKeyDeriveParams', - }, - EcdsaParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EcdsaParams', - }, - ErrorEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ErrorEventInit', - }, - EventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventInit', - }, - EventListenerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListenerOptions', - }, - EventSourceInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventSourceInit', - }, - ExtendableEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ExtendableEventInit', - }, - ExtendableMessageEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ExtendableMessageEventInit', - }, - FetchEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FetchEventInit', - }, - FilePropertyBag: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FilePropertyBag', - }, - GetNotificationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GetNotificationOptions', - }, - HmacImportParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HmacImportParams', - }, - HmacKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HmacKeyGenParams', - }, - IDBIndexParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBIndexParameters', - }, - IDBObjectStoreParameters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBObjectStoreParameters', - }, - IDBVersionChangeEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBVersionChangeEventInit', - }, - ImageBitmapOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageBitmapOptions', - }, - ImageBitmapRenderingContextSettings: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageBitmapRenderingContextSettings', - }, - ImageEncodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageEncodeOptions', - }, - JsonWebKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'JsonWebKey', - }, - KeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyAlgorithm', - }, - MessageEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MessageEventInit', - }, - MidiPermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MidiPermissionDescriptor', - }, - MultiCacheQueryOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MultiCacheQueryOptions', - }, - NavigationPreloadState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigationPreloadState', - }, - NotificationAction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationAction', - }, - NotificationEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationEventInit', - }, - NotificationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationOptions', - }, - Pbkdf2Params: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Pbkdf2Params', - }, - PerformanceObserverInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceObserverInit', - }, - PermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionDescriptor', - }, - PipeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PipeOptions', - }, - PostMessageOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PostMessageOptions', - }, - ProgressEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ProgressEventInit', - }, - PromiseRejectionEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PromiseRejectionEventInit', - }, - PushEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushEventInit', - }, - PushPermissionDescriptor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushPermissionDescriptor', - }, - PushSubscriptionChangeEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushSubscriptionChangeEventInit', - }, - PushSubscriptionJSON: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushSubscriptionJSON', - }, - PushSubscriptionOptionsInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushSubscriptionOptionsInit', - }, - QueuingStrategy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'QueuingStrategy', - }, - ReadableStreamReadDoneResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamReadDoneResult', - }, - ReadableStreamReadValueResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamReadValueResult', - }, - RegistrationOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RegistrationOptions', - }, - RequestInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestInit', - }, - ResponseInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ResponseInit', - }, - RsaHashedImportParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaHashedImportParams', - }, - RsaHashedKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaHashedKeyGenParams', - }, - RsaKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaKeyGenParams', - }, - RsaOaepParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaOaepParams', - }, - RsaOtherPrimesInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaOtherPrimesInfo', - }, - RsaPssParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RsaPssParams', - }, - StorageEstimate: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'StorageEstimate', - }, - SyncEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SyncEventInit', - }, - TextDecodeOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextDecodeOptions', - }, - TextDecoderOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextDecoderOptions', - }, - TextEncoderEncodeIntoResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextEncoderEncodeIntoResult', - }, - Transformer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Transformer', - }, - UnderlyingByteSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UnderlyingByteSource', - }, - UnderlyingSink: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UnderlyingSink', - }, - UnderlyingSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'UnderlyingSource', - }, - WebGLContextAttributes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLContextAttributes', - }, - WebGLContextEventInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLContextEventInit', - }, - WorkerOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerOptions', - }, - EventListener: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListener', - }, - ANGLE_instanced_arrays: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ANGLE_instanced_arrays', - }, - AbortController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AbortController', - }, - AbortSignalEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AbortSignalEventMap', - }, - AbortSignal: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'AbortSignal', - }, - AbstractWorkerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AbstractWorkerEventMap', - }, - AbstractWorker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AbstractWorker', - }, - AesCfbParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCfbParams', - }, - AesCmacParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AesCmacParams', - }, - AnimationFrameProvider: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AnimationFrameProvider', - }, - Blob: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Blob', - }, - Body: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Body', - }, - BroadcastChannelEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BroadcastChannelEventMap', - }, - BroadcastChannel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'BroadcastChannel', - }, - ByteLengthQueuingStrategy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ByteLengthQueuingStrategy', - }, - Cache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Cache', - }, - CacheStorage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CacheStorage', - }, - CanvasCompositing: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasCompositing', - }, - CanvasDrawImage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasDrawImage', - }, - CanvasDrawPath: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasDrawPath', - }, - CanvasFillStrokeStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasFillStrokeStyles', - }, - CanvasFilters: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasFilters', - }, - CanvasGradient: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CanvasGradient', - }, - CanvasImageData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasImageData', - }, - CanvasImageSmoothing: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasImageSmoothing', - }, - CanvasPath: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasPath', - }, - CanvasPathDrawingStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasPathDrawingStyles', - }, - CanvasPattern: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CanvasPattern', - }, - CanvasRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasRect', - }, - CanvasShadowStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasShadowStyles', - }, - CanvasState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasState', - }, - CanvasText: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasText', - }, - CanvasTextDrawingStyles: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTextDrawingStyles', - }, - CanvasTransform: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTransform', - }, - Client: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Client', - }, - Clients: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Clients', - }, - CloseEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CloseEvent', - }, - ConcatParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ConcatParams', - }, - CountQueuingStrategy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CountQueuingStrategy', - }, - Crypto: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Crypto', - }, - CryptoKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CryptoKey', - }, - CustomEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'CustomEvent', - }, - DOMException: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMException', - }, - DOMMatrix: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMMatrix', - }, - DOMMatrixReadOnly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMMatrixReadOnly', - }, - DOMPoint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMPoint', - }, - DOMPointReadOnly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMPointReadOnly', - }, - DOMQuad: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMQuad', - }, - DOMRect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMRect', - }, - DOMRectReadOnly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMRectReadOnly', - }, - DOMStringList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DOMStringList', - }, - DedicatedWorkerGlobalScopeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DedicatedWorkerGlobalScopeEventMap', - }, - DedicatedWorkerGlobalScope: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'DedicatedWorkerGlobalScope', - }, - DhImportKeyParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhImportKeyParams', - }, - DhKeyAlgorithm: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhKeyAlgorithm', - }, - DhKeyDeriveParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhKeyDeriveParams', - }, - DhKeyGenParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DhKeyGenParams', - }, - EXT_blend_minmax: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_blend_minmax', - }, - EXT_frag_depth: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_frag_depth', - }, - EXT_sRGB: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_sRGB', - }, - EXT_shader_texture_lod: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_shader_texture_lod', - }, - EXT_texture_filter_anisotropic: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EXT_texture_filter_anisotropic', - }, - ErrorEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ErrorEvent', - }, - Event: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Event', - }, - EventListenerObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListenerObject', - }, - EventSourceEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventSourceEventMap', - }, - EventSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'EventSource', - }, - EventTarget: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'EventTarget', - }, - ExtendableEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ExtendableEvent', - }, - ExtendableMessageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ExtendableMessageEvent', - }, - FetchEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FetchEvent', - }, - File: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'File', - }, - FileList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FileList', - }, - FileReaderEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FileReaderEventMap', - }, - FileReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FileReader', - }, - FileReaderSync: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FileReaderSync', - }, - FormData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'FormData', - }, - GenericTransformStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GenericTransformStream', - }, - Headers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Headers', - }, - HkdfCtrParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HkdfCtrParams', - }, - IDBArrayKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBArrayKey', - }, - IDBCursor: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBCursor', - }, - IDBCursorWithValue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBCursorWithValue', - }, - IDBDatabaseEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBDatabaseEventMap', - }, - IDBDatabase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBDatabase', - }, - IDBFactory: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBFactory', - }, - IDBIndex: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBIndex', - }, - IDBKeyRange: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBKeyRange', - }, - IDBObjectStore: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBObjectStore', - }, - IDBOpenDBRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBOpenDBRequestEventMap', - }, - IDBOpenDBRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBOpenDBRequest', - }, - IDBRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBRequestEventMap', - }, - IDBRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBRequest', - }, - IDBTransactionEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBTransactionEventMap', - }, - IDBTransaction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBTransaction', - }, - IDBVersionChangeEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'IDBVersionChangeEvent', - }, - ImageBitmap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ImageBitmap', - }, - ImageBitmapRenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ImageBitmapRenderingContext', - }, - ImageData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ImageData', - }, - MessageChannel: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MessageChannel', - }, - MessageEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MessageEvent', - }, - MessagePortEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MessagePortEventMap', - }, - MessagePort: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'MessagePort', - }, - NavigationPreloadManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NavigationPreloadManager', - }, - NavigatorConcurrentHardware: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorConcurrentHardware', - }, - NavigatorID: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorID', - }, - NavigatorLanguage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorLanguage', - }, - NavigatorOnLine: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorOnLine', - }, - NavigatorStorage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NavigatorStorage', - }, - NotificationEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationEventMap', - }, - Notification: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Notification', - }, - NotificationEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'NotificationEvent', - }, - OES_element_index_uint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_element_index_uint', - }, - OES_standard_derivatives: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_standard_derivatives', - }, - OES_texture_float: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_float', - }, - OES_texture_float_linear: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_float_linear', - }, - OES_texture_half_float: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_half_float', - }, - OES_texture_half_float_linear: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_texture_half_float_linear', - }, - OES_vertex_array_object: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OES_vertex_array_object', - }, - OffscreenCanvas: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OffscreenCanvas', - }, - OffscreenCanvasRenderingContext2D: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'OffscreenCanvasRenderingContext2D', - }, - Path2D: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Path2D', - }, - PerformanceEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceEventMap', - }, - Performance: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Performance', - }, - PerformanceEntry: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceEntry', - }, - PerformanceMark: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceMark', - }, - PerformanceMeasure: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceMeasure', - }, - PerformanceObserver: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceObserver', - }, - PerformanceObserverEntryList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceObserverEntryList', - }, - PerformanceResourceTiming: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PerformanceResourceTiming', - }, - PermissionStatusEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionStatusEventMap', - }, - PermissionStatus: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PermissionStatus', - }, - Permissions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Permissions', - }, - ProgressEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ProgressEvent', - }, - PromiseRejectionEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PromiseRejectionEvent', - }, - PushEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushEvent', - }, - PushManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushManager', - }, - PushMessageData: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushMessageData', - }, - PushSubscription: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushSubscription', - }, - PushSubscriptionChangeEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushSubscriptionChangeEvent', - }, - PushSubscriptionOptions: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'PushSubscriptionOptions', - }, - ReadableByteStreamController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableByteStreamController', - }, - ReadableStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ReadableStream', - }, - ReadableStreamBYOBReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamBYOBReader', - }, - ReadableStreamBYOBRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamBYOBRequest', - }, - ReadableStreamDefaultController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamDefaultController', - }, - ReadableStreamDefaultReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamDefaultReader', - }, - ReadableStreamReader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ReadableStreamReader', - }, - Request: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Request', - }, - Response: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Response', - }, - ServiceWorkerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerEventMap', - }, - ServiceWorker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorker', - }, - ServiceWorkerContainerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerContainerEventMap', - }, - ServiceWorkerContainer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorkerContainer', - }, - ServiceWorkerGlobalScopeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerGlobalScopeEventMap', - }, - ServiceWorkerGlobalScope: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorkerGlobalScope', - }, - ServiceWorkerRegistrationEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerRegistrationEventMap', - }, - ServiceWorkerRegistration: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'ServiceWorkerRegistration', - }, - SharedWorker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SharedWorker', - }, - SharedWorkerGlobalScopeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'SharedWorkerGlobalScopeEventMap', - }, - SharedWorkerGlobalScope: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SharedWorkerGlobalScope', - }, - StorageManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'StorageManager', - }, - SubtleCrypto: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SubtleCrypto', - }, - SyncEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SyncEvent', - }, - SyncManager: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'SyncManager', - }, - TextDecoder: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextDecoder', - }, - TextDecoderCommon: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextDecoderCommon', - }, - TextDecoderStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextDecoderStream', - }, - TextEncoder: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextEncoder', - }, - TextEncoderCommon: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TextEncoderCommon', - }, - TextEncoderStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextEncoderStream', - }, - TextMetrics: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TextMetrics', - }, - TransformStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'TransformStream', - }, - TransformStreamDefaultController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransformStreamDefaultController', - }, - URL: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'URL', - }, - URLSearchParams: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'URLSearchParams', - }, - WEBGL_color_buffer_float: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_color_buffer_float', - }, - WEBGL_compressed_texture_astc: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_compressed_texture_astc', - }, - WEBGL_compressed_texture_s3tc: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_compressed_texture_s3tc', - }, - WEBGL_compressed_texture_s3tc_srgb: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_compressed_texture_s3tc_srgb', - }, - WEBGL_debug_renderer_info: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_debug_renderer_info', - }, - WEBGL_debug_shaders: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_debug_shaders', - }, - WEBGL_depth_texture: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_depth_texture', - }, - WEBGL_draw_buffers: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_draw_buffers', - }, - WEBGL_lose_context: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WEBGL_lose_context', - }, - WebGL2RenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGL2RenderingContext', - }, - WebGL2RenderingContextBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGL2RenderingContextBase', - }, - WebGL2RenderingContextOverloads: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGL2RenderingContextOverloads', - }, - WebGLActiveInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLActiveInfo', - }, - WebGLBuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLBuffer', - }, - WebGLContextEvent: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLContextEvent', - }, - WebGLFramebuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLFramebuffer', - }, - WebGLObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLObject', - }, - WebGLProgram: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLProgram', - }, - WebGLQuery: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLQuery', - }, - WebGLRenderbuffer: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLRenderbuffer', - }, - WebGLRenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLRenderingContext', - }, - WebGLRenderingContextBase: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLRenderingContextBase', - }, - WebGLRenderingContextOverloads: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLRenderingContextOverloads', - }, - WebGLSampler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLSampler', - }, - WebGLShader: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLShader', - }, - WebGLShaderPrecisionFormat: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLShaderPrecisionFormat', - }, - WebGLSync: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLSync', - }, - WebGLTexture: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLTexture', - }, - WebGLTransformFeedback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLTransformFeedback', - }, - WebGLUniformLocation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLUniformLocation', - }, - WebGLVertexArrayObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebGLVertexArrayObject', - }, - WebGLVertexArrayObjectOES: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLVertexArrayObjectOES', - }, - WebSocketEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebSocketEventMap', - }, - WebSocket: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebSocket', - }, - WindowClient: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WindowClient', - }, - WindowOrWorkerGlobalScope: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WindowOrWorkerGlobalScope', - }, - WorkerEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerEventMap', - }, - Worker: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'Worker', - }, - WorkerGlobalScopeEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerGlobalScopeEventMap', - }, - WorkerGlobalScope: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WorkerGlobalScope', - }, - WorkerLocation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WorkerLocation', - }, - WorkerNavigator: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WorkerNavigator', - }, - WritableStream: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WritableStream', - }, - WritableStreamDefaultController: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultController', - }, - WritableStreamDefaultWriter: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultWriter', - }, - XMLHttpRequestEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XMLHttpRequestEventMap', - }, - XMLHttpRequest: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLHttpRequest', - }, - XMLHttpRequestEventTargetEventMap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XMLHttpRequestEventTargetEventMap', - }, - XMLHttpRequestEventTarget: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLHttpRequestEventTarget', - }, - XMLHttpRequestUpload: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'XMLHttpRequestUpload', - }, - EventListenerOrEventListenerObject: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EventListenerOrEventListenerObject', - }, - Console: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Console', - }, - WebAssembly: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: true, - name: 'WebAssembly', - }, - FrameRequestCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FrameRequestCallback', - }, - OnErrorEventHandlerNonNull: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OnErrorEventHandlerNonNull', - }, - PerformanceObserverCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceObserverCallback', - }, - QueuingStrategySizeCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'QueuingStrategySizeCallback', - }, - ReadableByteStreamControllerCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableByteStreamControllerCallback', - }, - ReadableStreamDefaultControllerCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamDefaultControllerCallback', - }, - ReadableStreamErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamErrorCallback', - }, - TransformStreamDefaultControllerCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransformStreamDefaultControllerCallback', - }, - TransformStreamDefaultControllerTransformCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TransformStreamDefaultControllerTransformCallback', - }, - VoidFunction: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VoidFunction', - }, - WritableStreamDefaultControllerCloseCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultControllerCloseCallback', - }, - WritableStreamDefaultControllerStartCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultControllerStartCallback', - }, - WritableStreamDefaultControllerWriteCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamDefaultControllerWriteCallback', - }, - WritableStreamErrorCallback: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WritableStreamErrorCallback', - }, - HeadersInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HeadersInit', - }, - BodyInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BodyInit', - }, - RequestInfo: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestInfo', - }, - BlobPart: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BlobPart', - }, - DOMHighResTimeStamp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMHighResTimeStamp', - }, - CanvasImageSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasImageSource', - }, - OffscreenRenderingContext: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OffscreenRenderingContext', - }, - MessageEventSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'MessageEventSource', - }, - ImageBitmapSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageBitmapSource', - }, - OnErrorEventHandler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OnErrorEventHandler', - }, - TimerHandler: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TimerHandler', - }, - PerformanceEntryList: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PerformanceEntryList', - }, - PushMessageDataInit: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushMessageDataInit', - }, - ReadableStreamReadResult: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReadableStreamReadResult', - }, - VibratePattern: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VibratePattern', - }, - AlgorithmIdentifier: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'AlgorithmIdentifier', - }, - HashAlgorithmIdentifier: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'HashAlgorithmIdentifier', - }, - BigInteger: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BigInteger', - }, - NamedCurve: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NamedCurve', - }, - GLenum: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLenum', - }, - GLboolean: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLboolean', - }, - GLbitfield: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLbitfield', - }, - GLint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLint', - }, - GLsizei: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLsizei', - }, - GLintptr: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLintptr', - }, - GLsizeiptr: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLsizeiptr', - }, - GLuint: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLuint', - }, - GLfloat: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLfloat', - }, - GLclampf: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLclampf', - }, - TexImageSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'TexImageSource', - }, - Float32List: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Float32List', - }, - Int32List: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Int32List', - }, - GLint64: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLint64', - }, - GLuint64: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'GLuint64', - }, - Uint32List: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Uint32List', - }, - BufferSource: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BufferSource', - }, - DOMTimeStamp: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'DOMTimeStamp', - }, - FormDataEntryValue: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FormDataEntryValue', - }, - IDBValidKey: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBValidKey', - }, - Transferable: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'Transferable', - }, - BinaryType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'BinaryType', - }, - CanvasDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasDirection', - }, - CanvasFillRule: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasFillRule', - }, - CanvasLineCap: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasLineCap', - }, - CanvasLineJoin: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasLineJoin', - }, - CanvasTextAlign: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTextAlign', - }, - CanvasTextBaseline: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'CanvasTextBaseline', - }, - ClientTypes: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ClientTypes', - }, - ColorSpaceConversion: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ColorSpaceConversion', - }, - EndingType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'EndingType', - }, - FrameType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'FrameType', - }, - IDBCursorDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBCursorDirection', - }, - IDBRequestReadyState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBRequestReadyState', - }, - IDBTransactionMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'IDBTransactionMode', - }, - ImageOrientation: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageOrientation', - }, - ImageSmoothingQuality: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ImageSmoothingQuality', - }, - KeyFormat: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyFormat', - }, - KeyType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyType', - }, - KeyUsage: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'KeyUsage', - }, - NotificationDirection: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationDirection', - }, - NotificationPermission: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'NotificationPermission', - }, - OffscreenRenderingContextId: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'OffscreenRenderingContextId', - }, - PermissionName: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionName', - }, - PermissionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PermissionState', - }, - PremultiplyAlpha: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PremultiplyAlpha', - }, - PushEncryptionKeyName: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushEncryptionKeyName', - }, - PushPermissionState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'PushPermissionState', - }, - ReferrerPolicy: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ReferrerPolicy', - }, - RequestCache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestCache', - }, - RequestCredentials: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestCredentials', - }, - RequestDestination: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestDestination', - }, - RequestMode: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestMode', - }, - RequestRedirect: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'RequestRedirect', - }, - ResizeQuality: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ResizeQuality', - }, - ResponseType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ResponseType', - }, - ServiceWorkerState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerState', - }, - ServiceWorkerUpdateViaCache: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'ServiceWorkerUpdateViaCache', - }, - VisibilityState: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'VisibilityState', - }, - WebGLPowerPreference: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WebGLPowerPreference', - }, - WorkerType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'WorkerType', - }, - XMLHttpRequestResponseType: { - eslintImplicitGlobalSetting: 'readonly', - isTypeVariable: true, - isValueVariable: false, - name: 'XMLHttpRequestResponseType', - }, + AddEventListenerOptions: base_config_1.TYPE, + AesCbcParams: base_config_1.TYPE, + AesCtrParams: base_config_1.TYPE, + AesDerivedKeyParams: base_config_1.TYPE, + AesGcmParams: base_config_1.TYPE, + AesKeyAlgorithm: base_config_1.TYPE, + AesKeyGenParams: base_config_1.TYPE, + Algorithm: base_config_1.TYPE, + BlobPropertyBag: base_config_1.TYPE, + CacheQueryOptions: base_config_1.TYPE, + CanvasRenderingContext2DSettings: base_config_1.TYPE, + ClientQueryOptions: base_config_1.TYPE, + CloseEventInit: base_config_1.TYPE, + CryptoKeyPair: base_config_1.TYPE, + CustomEventInit: base_config_1.TYPE, + DOMMatrix2DInit: base_config_1.TYPE, + DOMMatrixInit: base_config_1.TYPE, + DOMPointInit: base_config_1.TYPE, + DOMQuadInit: base_config_1.TYPE, + DOMRectInit: base_config_1.TYPE, + DevicePermissionDescriptor: base_config_1.TYPE, + EcKeyGenParams: base_config_1.TYPE, + EcKeyImportParams: base_config_1.TYPE, + EcdhKeyDeriveParams: base_config_1.TYPE, + EcdsaParams: base_config_1.TYPE, + ErrorEventInit: base_config_1.TYPE, + EventInit: base_config_1.TYPE, + EventListenerOptions: base_config_1.TYPE, + EventSourceInit: base_config_1.TYPE, + ExtendableEventInit: base_config_1.TYPE, + ExtendableMessageEventInit: base_config_1.TYPE, + FetchEventInit: base_config_1.TYPE, + FilePropertyBag: base_config_1.TYPE, + GetNotificationOptions: base_config_1.TYPE, + HkdfParams: base_config_1.TYPE, + HmacImportParams: base_config_1.TYPE, + HmacKeyGenParams: base_config_1.TYPE, + IDBIndexParameters: base_config_1.TYPE, + IDBObjectStoreParameters: base_config_1.TYPE, + IDBVersionChangeEventInit: base_config_1.TYPE, + ImageBitmapOptions: base_config_1.TYPE, + ImageBitmapRenderingContextSettings: base_config_1.TYPE, + ImageEncodeOptions: base_config_1.TYPE, + ImportMeta: base_config_1.TYPE, + JsonWebKey: base_config_1.TYPE, + KeyAlgorithm: base_config_1.TYPE, + MessageEventInit: base_config_1.TYPE, + MidiPermissionDescriptor: base_config_1.TYPE, + MultiCacheQueryOptions: base_config_1.TYPE, + NavigationPreloadState: base_config_1.TYPE, + NotificationAction: base_config_1.TYPE, + NotificationEventInit: base_config_1.TYPE, + NotificationOptions: base_config_1.TYPE, + Pbkdf2Params: base_config_1.TYPE, + PerformanceObserverInit: base_config_1.TYPE, + PermissionDescriptor: base_config_1.TYPE, + PostMessageOptions: base_config_1.TYPE, + ProgressEventInit: base_config_1.TYPE, + PromiseRejectionEventInit: base_config_1.TYPE, + PushEventInit: base_config_1.TYPE, + PushPermissionDescriptor: base_config_1.TYPE, + PushSubscriptionJSON: base_config_1.TYPE, + PushSubscriptionOptionsInit: base_config_1.TYPE, + QueuingStrategy: base_config_1.TYPE, + QueuingStrategyInit: base_config_1.TYPE, + ReadableStreamDefaultReadDoneResult: base_config_1.TYPE, + ReadableStreamDefaultReadValueResult: base_config_1.TYPE, + ReadableWritablePair: base_config_1.TYPE, + RegistrationOptions: base_config_1.TYPE, + RequestInit: base_config_1.TYPE, + ResponseInit: base_config_1.TYPE, + RsaHashedImportParams: base_config_1.TYPE, + RsaHashedKeyGenParams: base_config_1.TYPE, + RsaKeyGenParams: base_config_1.TYPE, + RsaOaepParams: base_config_1.TYPE, + RsaOtherPrimesInfo: base_config_1.TYPE, + RsaPssParams: base_config_1.TYPE, + StorageEstimate: base_config_1.TYPE, + StreamPipeOptions: base_config_1.TYPE, + SyncEventInit: base_config_1.TYPE, + TextDecodeOptions: base_config_1.TYPE, + TextDecoderOptions: base_config_1.TYPE, + TextEncoderEncodeIntoResult: base_config_1.TYPE, + Transformer: base_config_1.TYPE, + UnderlyingSink: base_config_1.TYPE, + UnderlyingSource: base_config_1.TYPE, + WebGLContextAttributes: base_config_1.TYPE, + WebGLContextEventInit: base_config_1.TYPE, + WorkerOptions: base_config_1.TYPE, + EventListener: base_config_1.TYPE, + ANGLE_instanced_arrays: base_config_1.TYPE, + AbortController: base_config_1.TYPE_VALUE, + AbortSignalEventMap: base_config_1.TYPE, + AbortSignal: base_config_1.TYPE_VALUE, + AbstractWorkerEventMap: base_config_1.TYPE, + AbstractWorker: base_config_1.TYPE, + AesCfbParams: base_config_1.TYPE, + AesCmacParams: base_config_1.TYPE, + AnimationFrameProvider: base_config_1.TYPE, + Blob: base_config_1.TYPE_VALUE, + Body: base_config_1.TYPE, + BroadcastChannelEventMap: base_config_1.TYPE, + BroadcastChannel: base_config_1.TYPE_VALUE, + ByteLengthQueuingStrategy: base_config_1.TYPE_VALUE, + Cache: base_config_1.TYPE_VALUE, + CacheStorage: base_config_1.TYPE_VALUE, + CanvasCompositing: base_config_1.TYPE, + CanvasDrawImage: base_config_1.TYPE, + CanvasDrawPath: base_config_1.TYPE, + CanvasFillStrokeStyles: base_config_1.TYPE, + CanvasFilters: base_config_1.TYPE, + CanvasGradient: base_config_1.TYPE_VALUE, + CanvasImageData: base_config_1.TYPE, + CanvasImageSmoothing: base_config_1.TYPE, + CanvasPath: base_config_1.TYPE, + CanvasPathDrawingStyles: base_config_1.TYPE, + CanvasPattern: base_config_1.TYPE_VALUE, + CanvasRect: base_config_1.TYPE, + CanvasShadowStyles: base_config_1.TYPE, + CanvasState: base_config_1.TYPE, + CanvasText: base_config_1.TYPE, + CanvasTextDrawingStyles: base_config_1.TYPE, + CanvasTransform: base_config_1.TYPE, + Client: base_config_1.TYPE_VALUE, + Clients: base_config_1.TYPE_VALUE, + CloseEvent: base_config_1.TYPE_VALUE, + ConcatParams: base_config_1.TYPE, + CountQueuingStrategy: base_config_1.TYPE_VALUE, + Crypto: base_config_1.TYPE_VALUE, + CryptoKey: base_config_1.TYPE_VALUE, + CustomEvent: base_config_1.TYPE_VALUE, + DOMException: base_config_1.TYPE_VALUE, + DOMMatrix: base_config_1.TYPE_VALUE, + DOMMatrixReadOnly: base_config_1.TYPE_VALUE, + DOMPoint: base_config_1.TYPE_VALUE, + DOMPointReadOnly: base_config_1.TYPE_VALUE, + DOMQuad: base_config_1.TYPE_VALUE, + DOMRect: base_config_1.TYPE_VALUE, + DOMRectReadOnly: base_config_1.TYPE_VALUE, + DOMStringList: base_config_1.TYPE_VALUE, + DedicatedWorkerGlobalScopeEventMap: base_config_1.TYPE, + DedicatedWorkerGlobalScope: base_config_1.TYPE_VALUE, + DhImportKeyParams: base_config_1.TYPE, + DhKeyAlgorithm: base_config_1.TYPE, + DhKeyDeriveParams: base_config_1.TYPE, + DhKeyGenParams: base_config_1.TYPE, + EXT_blend_minmax: base_config_1.TYPE, + EXT_frag_depth: base_config_1.TYPE, + EXT_sRGB: base_config_1.TYPE, + EXT_shader_texture_lod: base_config_1.TYPE, + EXT_texture_filter_anisotropic: base_config_1.TYPE, + ErrorEvent: base_config_1.TYPE_VALUE, + Event: base_config_1.TYPE_VALUE, + EventListenerObject: base_config_1.TYPE, + EventSourceEventMap: base_config_1.TYPE, + EventSource: base_config_1.TYPE_VALUE, + EventTarget: base_config_1.TYPE_VALUE, + ExtendableEvent: base_config_1.TYPE_VALUE, + ExtendableMessageEvent: base_config_1.TYPE_VALUE, + FetchEvent: base_config_1.TYPE_VALUE, + File: base_config_1.TYPE_VALUE, + FileList: base_config_1.TYPE_VALUE, + FileReaderEventMap: base_config_1.TYPE, + FileReader: base_config_1.TYPE_VALUE, + FileReaderSync: base_config_1.TYPE_VALUE, + FormData: base_config_1.TYPE_VALUE, + GenericTransformStream: base_config_1.TYPE, + Headers: base_config_1.TYPE_VALUE, + IDBArrayKey: base_config_1.TYPE, + IDBCursor: base_config_1.TYPE_VALUE, + IDBCursorWithValue: base_config_1.TYPE_VALUE, + IDBDatabaseEventMap: base_config_1.TYPE, + IDBDatabase: base_config_1.TYPE_VALUE, + IDBFactory: base_config_1.TYPE_VALUE, + IDBIndex: base_config_1.TYPE_VALUE, + IDBKeyRange: base_config_1.TYPE_VALUE, + IDBObjectStore: base_config_1.TYPE_VALUE, + IDBOpenDBRequestEventMap: base_config_1.TYPE, + IDBOpenDBRequest: base_config_1.TYPE_VALUE, + IDBRequestEventMap: base_config_1.TYPE, + IDBRequest: base_config_1.TYPE_VALUE, + IDBTransactionEventMap: base_config_1.TYPE, + IDBTransaction: base_config_1.TYPE_VALUE, + IDBVersionChangeEvent: base_config_1.TYPE_VALUE, + ImageBitmap: base_config_1.TYPE_VALUE, + ImageBitmapRenderingContext: base_config_1.TYPE_VALUE, + ImageData: base_config_1.TYPE_VALUE, + MessageChannel: base_config_1.TYPE_VALUE, + MessageEvent: base_config_1.TYPE_VALUE, + MessagePortEventMap: base_config_1.TYPE, + MessagePort: base_config_1.TYPE_VALUE, + NavigationPreloadManager: base_config_1.TYPE_VALUE, + NavigatorConcurrentHardware: base_config_1.TYPE, + NavigatorID: base_config_1.TYPE, + NavigatorLanguage: base_config_1.TYPE, + NavigatorOnLine: base_config_1.TYPE, + NavigatorStorage: base_config_1.TYPE, + NotificationEventMap: base_config_1.TYPE, + Notification: base_config_1.TYPE_VALUE, + NotificationEvent: base_config_1.TYPE_VALUE, + OES_element_index_uint: base_config_1.TYPE, + OES_standard_derivatives: base_config_1.TYPE, + OES_texture_float: base_config_1.TYPE, + OES_texture_float_linear: base_config_1.TYPE, + OES_texture_half_float: base_config_1.TYPE, + OES_texture_half_float_linear: base_config_1.TYPE, + OES_vertex_array_object: base_config_1.TYPE, + OffscreenCanvas: base_config_1.TYPE_VALUE, + OffscreenCanvasRenderingContext2D: base_config_1.TYPE_VALUE, + Path2D: base_config_1.TYPE_VALUE, + PerformanceEventMap: base_config_1.TYPE, + Performance: base_config_1.TYPE_VALUE, + PerformanceEntry: base_config_1.TYPE_VALUE, + PerformanceMark: base_config_1.TYPE_VALUE, + PerformanceMeasure: base_config_1.TYPE_VALUE, + PerformanceObserver: base_config_1.TYPE_VALUE, + PerformanceObserverEntryList: base_config_1.TYPE_VALUE, + PerformanceResourceTiming: base_config_1.TYPE_VALUE, + PermissionStatusEventMap: base_config_1.TYPE, + PermissionStatus: base_config_1.TYPE_VALUE, + Permissions: base_config_1.TYPE_VALUE, + ProgressEvent: base_config_1.TYPE_VALUE, + PromiseRejectionEvent: base_config_1.TYPE_VALUE, + PushEvent: base_config_1.TYPE_VALUE, + PushManager: base_config_1.TYPE_VALUE, + PushMessageData: base_config_1.TYPE_VALUE, + PushSubscription: base_config_1.TYPE_VALUE, + PushSubscriptionOptions: base_config_1.TYPE_VALUE, + ReadableStream: base_config_1.TYPE_VALUE, + ReadableStreamDefaultController: base_config_1.TYPE_VALUE, + ReadableStreamDefaultReader: base_config_1.TYPE_VALUE, + ReadableStreamGenericReader: base_config_1.TYPE, + Request: base_config_1.TYPE_VALUE, + Response: base_config_1.TYPE_VALUE, + ServiceWorkerEventMap: base_config_1.TYPE, + ServiceWorker: base_config_1.TYPE_VALUE, + ServiceWorkerContainerEventMap: base_config_1.TYPE, + ServiceWorkerContainer: base_config_1.TYPE_VALUE, + ServiceWorkerGlobalScopeEventMap: base_config_1.TYPE, + ServiceWorkerGlobalScope: base_config_1.TYPE_VALUE, + ServiceWorkerRegistrationEventMap: base_config_1.TYPE, + ServiceWorkerRegistration: base_config_1.TYPE_VALUE, + SharedWorker: base_config_1.TYPE_VALUE, + SharedWorkerGlobalScopeEventMap: base_config_1.TYPE, + SharedWorkerGlobalScope: base_config_1.TYPE_VALUE, + StorageManager: base_config_1.TYPE_VALUE, + SubtleCrypto: base_config_1.TYPE_VALUE, + SyncEvent: base_config_1.TYPE_VALUE, + SyncManager: base_config_1.TYPE_VALUE, + TextDecoder: base_config_1.TYPE_VALUE, + TextDecoderCommon: base_config_1.TYPE, + TextDecoderStream: base_config_1.TYPE_VALUE, + TextEncoder: base_config_1.TYPE_VALUE, + TextEncoderCommon: base_config_1.TYPE, + TextEncoderStream: base_config_1.TYPE_VALUE, + TextMetrics: base_config_1.TYPE_VALUE, + TransformStream: base_config_1.TYPE_VALUE, + TransformStreamDefaultController: base_config_1.TYPE_VALUE, + URL: base_config_1.TYPE_VALUE, + URLSearchParams: base_config_1.TYPE_VALUE, + WEBGL_color_buffer_float: base_config_1.TYPE, + WEBGL_compressed_texture_astc: base_config_1.TYPE, + WEBGL_compressed_texture_s3tc: base_config_1.TYPE, + WEBGL_compressed_texture_s3tc_srgb: base_config_1.TYPE, + WEBGL_debug_renderer_info: base_config_1.TYPE, + WEBGL_debug_shaders: base_config_1.TYPE, + WEBGL_depth_texture: base_config_1.TYPE, + WEBGL_draw_buffers: base_config_1.TYPE, + WEBGL_lose_context: base_config_1.TYPE, + WebGL2RenderingContext: base_config_1.TYPE_VALUE, + WebGL2RenderingContextBase: base_config_1.TYPE, + WebGL2RenderingContextOverloads: base_config_1.TYPE, + WebGLActiveInfo: base_config_1.TYPE_VALUE, + WebGLBuffer: base_config_1.TYPE_VALUE, + WebGLContextEvent: base_config_1.TYPE_VALUE, + WebGLFramebuffer: base_config_1.TYPE_VALUE, + WebGLProgram: base_config_1.TYPE_VALUE, + WebGLQuery: base_config_1.TYPE_VALUE, + WebGLRenderbuffer: base_config_1.TYPE_VALUE, + WebGLRenderingContext: base_config_1.TYPE_VALUE, + WebGLRenderingContextBase: base_config_1.TYPE, + WebGLRenderingContextOverloads: base_config_1.TYPE, + WebGLSampler: base_config_1.TYPE_VALUE, + WebGLShader: base_config_1.TYPE_VALUE, + WebGLShaderPrecisionFormat: base_config_1.TYPE_VALUE, + WebGLSync: base_config_1.TYPE_VALUE, + WebGLTexture: base_config_1.TYPE_VALUE, + WebGLTransformFeedback: base_config_1.TYPE_VALUE, + WebGLUniformLocation: base_config_1.TYPE_VALUE, + WebGLVertexArrayObject: base_config_1.TYPE_VALUE, + WebGLVertexArrayObjectOES: base_config_1.TYPE, + WebSocketEventMap: base_config_1.TYPE, + WebSocket: base_config_1.TYPE_VALUE, + WindowClient: base_config_1.TYPE_VALUE, + WindowOrWorkerGlobalScope: base_config_1.TYPE, + WorkerEventMap: base_config_1.TYPE, + Worker: base_config_1.TYPE_VALUE, + WorkerGlobalScopeEventMap: base_config_1.TYPE, + WorkerGlobalScope: base_config_1.TYPE_VALUE, + WorkerLocation: base_config_1.TYPE_VALUE, + WorkerNavigator: base_config_1.TYPE_VALUE, + WritableStream: base_config_1.TYPE_VALUE, + WritableStreamDefaultController: base_config_1.TYPE_VALUE, + WritableStreamDefaultWriter: base_config_1.TYPE_VALUE, + XMLHttpRequestEventMap: base_config_1.TYPE, + XMLHttpRequest: base_config_1.TYPE_VALUE, + XMLHttpRequestEventTargetEventMap: base_config_1.TYPE, + XMLHttpRequestEventTarget: base_config_1.TYPE_VALUE, + XMLHttpRequestUpload: base_config_1.TYPE_VALUE, + EventListenerOrEventListenerObject: base_config_1.TYPE, + Console: base_config_1.TYPE, + WebAssembly: base_config_1.TYPE_VALUE, + FrameRequestCallback: base_config_1.TYPE, + OnErrorEventHandlerNonNull: base_config_1.TYPE, + PerformanceObserverCallback: base_config_1.TYPE, + QueuingStrategySize: base_config_1.TYPE, + TransformerFlushCallback: base_config_1.TYPE, + TransformerStartCallback: base_config_1.TYPE, + TransformerTransformCallback: base_config_1.TYPE, + UnderlyingSinkAbortCallback: base_config_1.TYPE, + UnderlyingSinkCloseCallback: base_config_1.TYPE, + UnderlyingSinkStartCallback: base_config_1.TYPE, + UnderlyingSinkWriteCallback: base_config_1.TYPE, + UnderlyingSourceCancelCallback: base_config_1.TYPE, + UnderlyingSourcePullCallback: base_config_1.TYPE, + UnderlyingSourceStartCallback: base_config_1.TYPE, + VoidFunction: base_config_1.TYPE, + HeadersInit: base_config_1.TYPE, + BodyInit: base_config_1.TYPE, + RequestInfo: base_config_1.TYPE, + BlobPart: base_config_1.TYPE, + DOMHighResTimeStamp: base_config_1.TYPE, + CanvasImageSource: base_config_1.TYPE, + OffscreenRenderingContext: base_config_1.TYPE, + MessageEventSource: base_config_1.TYPE, + ImageBitmapSource: base_config_1.TYPE, + OnErrorEventHandler: base_config_1.TYPE, + TimerHandler: base_config_1.TYPE, + PerformanceEntryList: base_config_1.TYPE, + PushMessageDataInit: base_config_1.TYPE, + ReadableStreamReader: base_config_1.TYPE, + ReadableStreamController: base_config_1.TYPE, + VibratePattern: base_config_1.TYPE, + AlgorithmIdentifier: base_config_1.TYPE, + HashAlgorithmIdentifier: base_config_1.TYPE, + BigInteger: base_config_1.TYPE, + NamedCurve: base_config_1.TYPE, + GLenum: base_config_1.TYPE, + GLboolean: base_config_1.TYPE, + GLbitfield: base_config_1.TYPE, + GLint: base_config_1.TYPE, + GLsizei: base_config_1.TYPE, + GLintptr: base_config_1.TYPE, + GLsizeiptr: base_config_1.TYPE, + GLuint: base_config_1.TYPE, + GLfloat: base_config_1.TYPE, + GLclampf: base_config_1.TYPE, + TexImageSource: base_config_1.TYPE, + Float32List: base_config_1.TYPE, + Int32List: base_config_1.TYPE, + GLint64: base_config_1.TYPE, + GLuint64: base_config_1.TYPE, + Uint32List: base_config_1.TYPE, + BufferSource: base_config_1.TYPE, + DOMTimeStamp: base_config_1.TYPE, + FormDataEntryValue: base_config_1.TYPE, + IDBValidKey: base_config_1.TYPE, + Transferable: base_config_1.TYPE, + ReadableStreamDefaultReadResult: base_config_1.TYPE, + BinaryType: base_config_1.TYPE, + CanvasDirection: base_config_1.TYPE, + CanvasFillRule: base_config_1.TYPE, + CanvasLineCap: base_config_1.TYPE, + CanvasLineJoin: base_config_1.TYPE, + CanvasTextAlign: base_config_1.TYPE, + CanvasTextBaseline: base_config_1.TYPE, + ClientTypes: base_config_1.TYPE, + ColorSpaceConversion: base_config_1.TYPE, + EndingType: base_config_1.TYPE, + FrameType: base_config_1.TYPE, + IDBCursorDirection: base_config_1.TYPE, + IDBRequestReadyState: base_config_1.TYPE, + IDBTransactionMode: base_config_1.TYPE, + ImageOrientation: base_config_1.TYPE, + ImageSmoothingQuality: base_config_1.TYPE, + KeyFormat: base_config_1.TYPE, + KeyType: base_config_1.TYPE, + KeyUsage: base_config_1.TYPE, + NotificationDirection: base_config_1.TYPE, + NotificationPermission: base_config_1.TYPE, + OffscreenRenderingContextId: base_config_1.TYPE, + PermissionName: base_config_1.TYPE, + PermissionState: base_config_1.TYPE, + PremultiplyAlpha: base_config_1.TYPE, + PushEncryptionKeyName: base_config_1.TYPE, + PushPermissionState: base_config_1.TYPE, + ReferrerPolicy: base_config_1.TYPE, + RequestCache: base_config_1.TYPE, + RequestCredentials: base_config_1.TYPE, + RequestDestination: base_config_1.TYPE, + RequestMode: base_config_1.TYPE, + RequestRedirect: base_config_1.TYPE, + ResizeQuality: base_config_1.TYPE, + ResponseType: base_config_1.TYPE, + ServiceWorkerState: base_config_1.TYPE, + ServiceWorkerUpdateViaCache: base_config_1.TYPE, + VisibilityState: base_config_1.TYPE, + WebGLPowerPreference: base_config_1.TYPE, + WorkerType: base_config_1.TYPE, + XMLHttpRequestResponseType: base_config_1.TYPE, }; //# sourceMappingURL=webworker.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map index 56390fe3e7..199cf30e41 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/lib/webworker.js.map @@ -1 +1 @@ -{"version":3,"file":"webworker.js","sourceRoot":"","sources":["../../src/lib/webworker.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"webworker.js","sourceRoot":"","sources":["../../src/lib/webworker.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts new file mode 100644 index 0000000000..4969cd0f3c --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts @@ -0,0 +1,25 @@ +import { TSESTree } from '@typescript-eslint/types'; +import { Referencer } from './Referencer'; +import { Visitor } from './Visitor'; +declare class ClassVisitor extends Visitor { + #private; + constructor(referencer: Referencer, node: TSESTree.ClassDeclaration | TSESTree.ClassExpression, emitDecoratorMetadata: boolean); + static visit(referencer: Referencer, node: TSESTree.ClassDeclaration | TSESTree.ClassExpression, emitDecoratorMetadata: boolean): void; + visit(node: TSESTree.Node | null | undefined): void; + protected visitClass(node: TSESTree.ClassDeclaration | TSESTree.ClassExpression): void; + protected visitClassProperty(node: TSESTree.TSAbstractClassProperty | TSESTree.ClassProperty): void; + protected visitFunctionParameterTypeAnnotation(node: TSESTree.Parameter, withDecorators: boolean): void; + protected visitMethodFunction(node: TSESTree.FunctionExpression, methodNode: TSESTree.MethodDefinition): void; + protected visitProperty(node: TSESTree.ClassProperty | TSESTree.TSAbstractClassProperty | TSESTree.TSAbstractMethodDefinition): void; + protected visitMethod(node: TSESTree.MethodDefinition): void; + protected visitType(node: TSESTree.Node | null | undefined): void; + protected visitMetadataType(node: TSESTree.TSTypeAnnotation | null | undefined, withDecorators: boolean): void; + protected ClassBody(node: TSESTree.ClassBody): void; + protected ClassProperty(node: TSESTree.ClassProperty): void; + protected MethodDefinition(node: TSESTree.MethodDefinition): void; + protected TSAbstractClassProperty(node: TSESTree.TSAbstractClassProperty): void; + protected TSAbstractMethodDefinition(node: TSESTree.TSAbstractMethodDefinition): void; + protected Identifier(node: TSESTree.Identifier): void; +} +export { ClassVisitor }; +//# sourceMappingURL=ClassVisitor.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map new file mode 100644 index 0000000000..199701d244 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ClassVisitor.d.ts","sourceRoot":"","sources":["../../src/referencer/ClassVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,cAAM,YAAa,SAAQ,OAAO;;gBAM9B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,eAAe,EAC1D,qBAAqB,EAAE,OAAO;IAQhC,MAAM,CAAC,KAAK,CACV,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,eAAe,EAC1D,qBAAqB,EAAE,OAAO,GAC7B,IAAI;IASP,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAanD,SAAS,CAAC,UAAU,CAClB,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,eAAe,GACzD,IAAI;IAgCP,SAAS,CAAC,kBAAkB,CAC1B,IAAI,EAAE,QAAQ,CAAC,uBAAuB,GAAG,QAAQ,CAAC,aAAa,GAC9D,IAAI;IAWP,SAAS,CAAC,oCAAoC,CAC5C,IAAI,EAAE,QAAQ,CAAC,SAAS,EACxB,cAAc,EAAE,OAAO,GACtB,IAAI;IAUP,SAAS,CAAC,mBAAmB,CAC3B,IAAI,EAAE,QAAQ,CAAC,kBAAkB,EACjC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,GACpC,IAAI;IAsHP,SAAS,CAAC,aAAa,CACrB,IAAI,EACA,QAAQ,CAAC,aAAa,GACtB,QAAQ,CAAC,uBAAuB,GAChC,QAAQ,CAAC,0BAA0B,GACtC,IAAI;IAYP,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IAgB5D,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAOjE,SAAS,CAAC,iBAAiB,CACzB,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAClD,cAAc,EAAE,OAAO,GACtB,IAAI;IA0CP,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI;IAMnD,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,IAAI;IAI3D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IAIjE,SAAS,CAAC,uBAAuB,CAC/B,IAAI,EAAE,QAAQ,CAAC,uBAAuB,GACrC,IAAI;IAIP,SAAS,CAAC,0BAA0B,CAClC,IAAI,EAAE,QAAQ,CAAC,0BAA0B,GACxC,IAAI;IAIP,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI;CAGtD;AAsCD,OAAO,EAAE,YAAY,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js new file mode 100644 index 0000000000..92a748868a --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js @@ -0,0 +1,303 @@ +"use strict"; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _ClassVisitor_classNode, _ClassVisitor_referencer, _ClassVisitor_emitDecoratorMetadata; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ClassVisitor = void 0; +const types_1 = require("@typescript-eslint/types"); +const definition_1 = require("../definition"); +const TypeVisitor_1 = require("./TypeVisitor"); +const Visitor_1 = require("./Visitor"); +class ClassVisitor extends Visitor_1.Visitor { + constructor(referencer, node, emitDecoratorMetadata) { + super(referencer); + _ClassVisitor_classNode.set(this, void 0); + _ClassVisitor_referencer.set(this, void 0); + _ClassVisitor_emitDecoratorMetadata.set(this, void 0); + __classPrivateFieldSet(this, _ClassVisitor_referencer, referencer, "f"); + __classPrivateFieldSet(this, _ClassVisitor_classNode, node, "f"); + __classPrivateFieldSet(this, _ClassVisitor_emitDecoratorMetadata, emitDecoratorMetadata, "f"); + } + static visit(referencer, node, emitDecoratorMetadata) { + const classVisitor = new ClassVisitor(referencer, node, emitDecoratorMetadata); + classVisitor.visitClass(node); + } + visit(node) { + // make sure we only handle the nodes we are designed to handle + if (node && node.type in this) { + super.visit(node); + } + else { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node); + } + } + /////////////////// + // Visit helpers // + /////////////////// + visitClass(node) { + var _a, _b; + if (node.type === types_1.AST_NODE_TYPES.ClassDeclaration && node.id) { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f") + .currentScope() + .defineIdentifier(node.id, new definition_1.ClassNameDefinition(node.id, node)); + } + (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.forEach(d => __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(d)); + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").scopeManager.nestClassScope(node); + if (node.id) { + // define the class name again inside the new scope + // references to the class should not resolve directly to the parent class + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f") + .currentScope() + .defineIdentifier(node.id, new definition_1.ClassNameDefinition(node.id, node)); + } + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node.superClass); + // visit the type param declarations + this.visitType(node.typeParameters); + // then the usages + this.visitType(node.superTypeParameters); + (_b = node.implements) === null || _b === void 0 ? void 0 : _b.forEach(imp => this.visitType(imp)); + this.visit(node.body); + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").close(node); + } + visitClassProperty(node) { + this.visitProperty(node); + /** + * class A { + * @meta // <--- check this + * foo: Type; + * } + */ + this.visitMetadataType(node.typeAnnotation, !!node.decorators); + } + visitFunctionParameterTypeAnnotation(node, withDecorators) { + if ('typeAnnotation' in node) { + this.visitMetadataType(node.typeAnnotation, withDecorators); + } + else if (node.type === types_1.AST_NODE_TYPES.AssignmentPattern) { + this.visitMetadataType(node.left.typeAnnotation, withDecorators); + } + else if (node.type === types_1.AST_NODE_TYPES.TSParameterProperty) { + this.visitFunctionParameterTypeAnnotation(node.parameter, withDecorators); + } + } + visitMethodFunction(node, methodNode) { + var _a, _b; + if (node.id) { + // FunctionExpression with name creates its special scope; + // FunctionExpressionNameScope. + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").scopeManager.nestFunctionExpressionNameScope(node); + } + // Consider this function is in the MethodDefinition. + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").scopeManager.nestFunctionScope(node, true); + /** + * class A { + * @meta // <--- check this + * foo(a: Type) {} + * + * @meta // <--- check this + * foo(): Type {} + * } + */ + let withMethodDecorators = !!methodNode.decorators; + /** + * class A { + * foo( + * @meta // <--- check this + * a: Type + * ) {} + * + * set foo( + * @meta // <--- EXCEPT this. TS do nothing for this + * a: Type + * ) {} + * } + */ + withMethodDecorators = + withMethodDecorators || + (methodNode.kind !== 'set' && + node.params.some(param => param.decorators)); + if (!withMethodDecorators && methodNode.kind === 'set') { + const keyName = getLiteralMethodKeyName(methodNode); + /** + * class A { + * @meta // <--- check this + * get a() {} + * set ['a'](v: Type) {} + * } + */ + if (keyName !== null && + ((_a = __classPrivateFieldGet(this, _ClassVisitor_classNode, "f").body.body.find((node) => node !== methodNode && + node.type === types_1.AST_NODE_TYPES.MethodDefinition && + // Node must both be static or not + node.static === methodNode.static && + getLiteralMethodKeyName(node) === keyName)) === null || _a === void 0 ? void 0 : _a.decorators)) { + withMethodDecorators = true; + } + } + /** + * @meta // <--- check this + * class A { + * constructor(a: Type) {} + * } + */ + if (!withMethodDecorators && + methodNode.kind === 'constructor' && + __classPrivateFieldGet(this, _ClassVisitor_classNode, "f").decorators) { + withMethodDecorators = true; + } + // Process parameter declarations. + for (const param of node.params) { + this.visitPattern(param, (pattern, info) => { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f") + .currentScope() + .defineIdentifier(pattern, new definition_1.ParameterDefinition(pattern, node, info.rest)); + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").referencingDefaultValue(pattern, info.assignments, null, true); + }, { processRightHandNodes: true }); + this.visitFunctionParameterTypeAnnotation(param, withMethodDecorators); + (_b = param.decorators) === null || _b === void 0 ? void 0 : _b.forEach(d => this.visit(d)); + } + this.visitMetadataType(node.returnType, withMethodDecorators); + this.visitType(node.typeParameters); + // In TypeScript there are a number of function-like constructs which have no body, + // so check it exists before traversing + if (node.body) { + // Skip BlockStatement to prevent creating BlockStatement scope. + if (node.body.type === types_1.AST_NODE_TYPES.BlockStatement) { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visitChildren(node.body); + } + else { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node.body); + } + } + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").close(node); + } + visitProperty(node) { + var _a; + if (node.computed) { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node.key); + } + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node.value); + if ('decorators' in node) { + (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.forEach(d => __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(d)); + } + } + visitMethod(node) { + var _a; + if (node.computed) { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node.key); + } + if (node.value.type === types_1.AST_NODE_TYPES.FunctionExpression) { + this.visitMethodFunction(node.value, node); + } + else { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node.value); + } + if ('decorators' in node) { + (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.forEach(d => __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(d)); + } + } + visitType(node) { + if (!node) { + return; + } + TypeVisitor_1.TypeVisitor.visit(__classPrivateFieldGet(this, _ClassVisitor_referencer, "f"), node); + } + visitMetadataType(node, withDecorators) { + if (!node) { + return; + } + // emit decorators metadata only work for TSTypeReference in ClassDeclaration + if (__classPrivateFieldGet(this, _ClassVisitor_classNode, "f").type === types_1.AST_NODE_TYPES.ClassDeclaration && + !__classPrivateFieldGet(this, _ClassVisitor_classNode, "f").declare && + node.typeAnnotation.type === types_1.AST_NODE_TYPES.TSTypeReference && + __classPrivateFieldGet(this, _ClassVisitor_emitDecoratorMetadata, "f")) { + let identifier; + if (node.typeAnnotation.typeName.type === types_1.AST_NODE_TYPES.TSQualifiedName) { + let iter = node.typeAnnotation.typeName; + while (iter.left.type === types_1.AST_NODE_TYPES.TSQualifiedName) { + iter = iter.left; + } + identifier = iter.left; + } + else { + identifier = node.typeAnnotation.typeName; + } + if (withDecorators) { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").currentScope().referenceDualValueType(identifier); + if (node.typeAnnotation.typeParameters) { + this.visitType(node.typeAnnotation.typeParameters); + } + // everything is handled now + return; + } + } + this.visitType(node); + } + ///////////////////// + // Visit selectors // + ///////////////////// + ClassBody(node) { + // this is here on purpose so that this visitor explicitly declares visitors + // for all nodes it cares about (see the instance visit method above) + this.visitChildren(node); + } + ClassProperty(node) { + this.visitClassProperty(node); + } + MethodDefinition(node) { + this.visitMethod(node); + } + TSAbstractClassProperty(node) { + this.visitClassProperty(node); + } + TSAbstractMethodDefinition(node) { + this.visitProperty(node); + } + Identifier(node) { + __classPrivateFieldGet(this, _ClassVisitor_referencer, "f").visit(node); + } +} +exports.ClassVisitor = ClassVisitor; +_ClassVisitor_classNode = new WeakMap(), _ClassVisitor_referencer = new WeakMap(), _ClassVisitor_emitDecoratorMetadata = new WeakMap(); +/** + * Only if key is one of [identifier, string, number], ts will combine metadata of accessors . + * class A { + * get a() {} + * set ['a'](v: Type) {} + * + * get [1]() {} + * set [1](v: Type) {} + * + * // Following won't be combined + * get [key]() {} + * set [key](v: Type) {} + * + * get [true]() {} + * set [true](v: Type) {} + * + * get ['a'+'b']() {} + * set ['a'+'b']() {} + * } + */ +function getLiteralMethodKeyName(node) { + if (node.computed && node.key.type === types_1.AST_NODE_TYPES.Literal) { + if (typeof node.key.value === 'string' || + typeof node.key.value === 'number') { + return node.key.value; + } + } + else if (!node.computed && node.key.type === types_1.AST_NODE_TYPES.Identifier) { + return node.key.name; + } + return null; +} +//# sourceMappingURL=ClassVisitor.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map new file mode 100644 index 0000000000..2d73b68a61 --- /dev/null +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ClassVisitor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ClassVisitor.js","sourceRoot":"","sources":["../../src/referencer/ClassVisitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js index 67c77246e4..ae26173d6e 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _referencer, _exportNode; +var _ExportVisitor_referencer, _ExportVisitor_exportNode; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExportVisitor = void 0; const types_1 = require("@typescript-eslint/types"); @@ -20,22 +18,22 @@ const Visitor_1 = require("./Visitor"); class ExportVisitor extends Visitor_1.Visitor { constructor(node, referencer) { super(referencer); - _referencer.set(this, void 0); - _exportNode.set(this, void 0); - __classPrivateFieldSet(this, _exportNode, node); - __classPrivateFieldSet(this, _referencer, referencer); + _ExportVisitor_referencer.set(this, void 0); + _ExportVisitor_exportNode.set(this, void 0); + __classPrivateFieldSet(this, _ExportVisitor_exportNode, node, "f"); + __classPrivateFieldSet(this, _ExportVisitor_referencer, referencer, "f"); } static visit(referencer, node) { const exportReferencer = new ExportVisitor(node, referencer); exportReferencer.visit(node); } Identifier(node) { - if (__classPrivateFieldGet(this, _exportNode).exportKind === 'type') { + if (__classPrivateFieldGet(this, _ExportVisitor_exportNode, "f").exportKind === 'type') { // type exports can only reference types - __classPrivateFieldGet(this, _referencer).currentScope().referenceType(node); + __classPrivateFieldGet(this, _ExportVisitor_referencer, "f").currentScope().referenceType(node); } else { - __classPrivateFieldGet(this, _referencer).currentScope().referenceDualValueType(node); + __classPrivateFieldGet(this, _ExportVisitor_referencer, "f").currentScope().referenceDualValueType(node); } } ExportDefaultDeclaration(node) { @@ -71,5 +69,5 @@ class ExportVisitor extends Visitor_1.Visitor { } } exports.ExportVisitor = ExportVisitor; -_referencer = new WeakMap(), _exportNode = new WeakMap(); +_ExportVisitor_referencer = new WeakMap(), _ExportVisitor_exportNode = new WeakMap(); //# sourceMappingURL=ExportVisitor.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js.map index 607277429f..a62ccf19e2 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ExportVisitor.js.map @@ -1 +1 @@ -{"version":3,"file":"ExportVisitor.js","sourceRoot":"","sources":["../../src/referencer/ExportVisitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAoE;AAEpE,uCAAoC;AAOpC,MAAM,aAAc,SAAQ,iBAAO;IAIjC,YAAY,IAAgB,EAAE,UAAsB;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAJpB,8BAAiC;QACjC,8BAAiC;QAI/B,uBAAA,IAAI,eAAe,IAAI,EAAC;QACxB,uBAAA,IAAI,eAAe,UAAU,EAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAsB,EAAE,IAAgB;QACnD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7D,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,UAAU,CAAC,IAAyB;QAC5C,IAAI,0CAAiB,UAAU,KAAK,MAAM,EAAE;YAC1C,wCAAwC;YACxC,0CAAiB,YAAY,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SACrD;aAAM;YACL,0CAAiB,YAAY,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;SAC9D;IACH,CAAC;IAES,wBAAwB,CAChC,IAAuC;QAEvC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;YACvD,oBAAoB;YACpB,qCAAqC;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC9B;aAAM;YACL,sBAAsB;YACtB,sBAAsB;YACtB,MAAM;YACN,+GAA+G;SAChH;IACH,CAAC;IAES,sBAAsB,CAC9B,IAAqC;QAErC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,yBAAyB;YACzB,0EAA0E;YAC1E,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,gBAAgB;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM;YACL,sBAAsB;YACtB,6EAA6E;SAC9E;IACH,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file +{"version":3,"file":"ExportVisitor.js","sourceRoot":"","sources":["../../src/referencer/ExportVisitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAoE;AAEpE,uCAAoC;AAOpC,MAAM,aAAc,SAAQ,iBAAO;IAIjC,YAAY,IAAgB,EAAE,UAAsB;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QAJpB,4CAAiC;QACjC,4CAAiC;QAI/B,uBAAA,IAAI,6BAAe,IAAI,MAAA,CAAC;QACxB,uBAAA,IAAI,6BAAe,UAAU,MAAA,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAsB,EAAE,IAAgB;QACnD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7D,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAES,UAAU,CAAC,IAAyB;QAC5C,IAAI,uBAAA,IAAI,iCAAY,CAAC,UAAU,KAAK,MAAM,EAAE;YAC1C,wCAAwC;YACxC,uBAAA,IAAI,iCAAY,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SACrD;aAAM;YACL,uBAAA,IAAI,iCAAY,CAAC,YAAY,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;SAC9D;IACH,CAAC;IAES,wBAAwB,CAChC,IAAuC;QAEvC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;YACvD,oBAAoB;YACpB,qCAAqC;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC9B;aAAM;YACL,sBAAsB;YACtB,sBAAsB;YACtB,MAAM;YACN,+GAA+G;SAChH;IACH,CAAC;IAES,sBAAsB,CAC9B,IAAqC;QAErC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,yBAAyB;YACzB,0EAA0E;YAC1E,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,gBAAgB;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC1B;aAAM;YACL,sBAAsB;YACtB,6EAA6E;SAC9E;IACH,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js index dcc08d6b9b..7f494b2888 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _declaration, _referencer; +var _ImportVisitor_declaration, _ImportVisitor_referencer; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImportVisitor = void 0; const definition_1 = require("../definition"); @@ -20,18 +18,19 @@ const Visitor_1 = require("./Visitor"); class ImportVisitor extends Visitor_1.Visitor { constructor(declaration, referencer) { super(referencer); - _declaration.set(this, void 0); - _referencer.set(this, void 0); - __classPrivateFieldSet(this, _declaration, declaration); - __classPrivateFieldSet(this, _referencer, referencer); + _ImportVisitor_declaration.set(this, void 0); + _ImportVisitor_referencer.set(this, void 0); + __classPrivateFieldSet(this, _ImportVisitor_declaration, declaration, "f"); + __classPrivateFieldSet(this, _ImportVisitor_referencer, referencer, "f"); } static visit(referencer, declaration) { const importReferencer = new ImportVisitor(declaration, referencer); importReferencer.visit(declaration); } visitImport(id, specifier) { - __classPrivateFieldGet(this, _referencer).currentScope() - .defineIdentifier(id, new definition_1.ImportBindingDefinition(id, specifier, __classPrivateFieldGet(this, _declaration))); + __classPrivateFieldGet(this, _ImportVisitor_referencer, "f") + .currentScope() + .defineIdentifier(id, new definition_1.ImportBindingDefinition(id, specifier, __classPrivateFieldGet(this, _ImportVisitor_declaration, "f"))); } ImportNamespaceSpecifier(node) { const local = node.local; @@ -47,5 +46,5 @@ class ImportVisitor extends Visitor_1.Visitor { } } exports.ImportVisitor = ImportVisitor; -_declaration = new WeakMap(), _referencer = new WeakMap(); +_ImportVisitor_declaration = new WeakMap(), _ImportVisitor_referencer = new WeakMap(); //# sourceMappingURL=ImportVisitor.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js.map index 220a7c856b..32e23b9337 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/ImportVisitor.js.map @@ -1 +1 @@ -{"version":3,"file":"ImportVisitor.js","sourceRoot":"","sources":["../../src/referencer/ImportVisitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAwD;AAExD,uCAAoC;AAEpC,MAAM,aAAc,SAAQ,iBAAO;IAIjC,YAAY,WAAuC,EAAE,UAAsB;QACzE,KAAK,CAAC,UAAU,CAAC,CAAC;QAJpB,+BAAkD;QAClD,8BAAiC;QAI/B,uBAAA,IAAI,gBAAgB,WAAW,EAAC;QAChC,uBAAA,IAAI,eAAe,UAAU,EAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CACV,UAAsB,EACtB,WAAuC;QAEvC,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACpE,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAES,WAAW,CACnB,EAAuB,EACvB,SAG4B;QAE5B,0CACG,YAAY,EAAE;aACd,gBAAgB,CACf,EAAE,EACF,IAAI,oCAAuB,CAAC,EAAE,EAAE,SAAS,6CAAoB,CAC9D,CAAC;IACN,CAAC;IAES,wBAAwB,CAChC,IAAuC;QAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,sBAAsB,CAC9B,IAAqC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file +{"version":3,"file":"ImportVisitor.js","sourceRoot":"","sources":["../../src/referencer/ImportVisitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,8CAAwD;AAExD,uCAAoC;AAEpC,MAAM,aAAc,SAAQ,iBAAO;IAIjC,YAAY,WAAuC,EAAE,UAAsB;QACzE,KAAK,CAAC,UAAU,CAAC,CAAC;QAJpB,6CAAkD;QAClD,4CAAiC;QAI/B,uBAAA,IAAI,8BAAgB,WAAW,MAAA,CAAC;QAChC,uBAAA,IAAI,6BAAe,UAAU,MAAA,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CACV,UAAsB,EACtB,WAAuC;QAEvC,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACpE,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAES,WAAW,CACnB,EAAuB,EACvB,SAG4B;QAE5B,uBAAA,IAAI,iCAAY;aACb,YAAY,EAAE;aACd,gBAAgB,CACf,EAAE,EACF,IAAI,oCAAuB,CAAC,EAAE,EAAE,SAAS,EAAE,uBAAA,IAAI,kCAAa,CAAC,CAC9D,CAAC;IACN,CAAC;IAES,wBAAwB,CAChC,IAAuC;QAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,sBAAsB,CAC9B,IAAqC;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,eAAe,CAAC,IAA8B;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js index 6e96a7bcd5..d4993529a7 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _rootPattern, _callback, _assignments, _restElements; +var _PatternVisitor_rootPattern, _PatternVisitor_callback, _PatternVisitor_assignments, _PatternVisitor_restElements; Object.defineProperty(exports, "__esModule", { value: true }); exports.PatternVisitor = void 0; const types_1 = require("@typescript-eslint/types"); @@ -20,13 +18,13 @@ const Visitor_1 = require("./Visitor"); class PatternVisitor extends Visitor_1.VisitorBase { constructor(options, rootPattern, callback) { super(options); - _rootPattern.set(this, void 0); - _callback.set(this, void 0); - _assignments.set(this, []); + _PatternVisitor_rootPattern.set(this, void 0); + _PatternVisitor_callback.set(this, void 0); + _PatternVisitor_assignments.set(this, []); this.rightHandNodes = []; - _restElements.set(this, []); - __classPrivateFieldSet(this, _rootPattern, rootPattern); - __classPrivateFieldSet(this, _callback, callback); + _PatternVisitor_restElements.set(this, []); + __classPrivateFieldSet(this, _PatternVisitor_rootPattern, rootPattern, "f"); + __classPrivateFieldSet(this, _PatternVisitor_callback, callback, "f"); } static isPattern(node) { const nodeType = node.type; @@ -46,16 +44,16 @@ class PatternVisitor extends Visitor_1.VisitorBase { } } AssignmentExpression(node) { - __classPrivateFieldGet(this, _assignments).push(node); + __classPrivateFieldGet(this, _PatternVisitor_assignments, "f").push(node); this.visit(node.left); this.rightHandNodes.push(node.right); - __classPrivateFieldGet(this, _assignments).pop(); + __classPrivateFieldGet(this, _PatternVisitor_assignments, "f").pop(); } AssignmentPattern(pattern) { - __classPrivateFieldGet(this, _assignments).push(pattern); + __classPrivateFieldGet(this, _PatternVisitor_assignments, "f").push(pattern); this.visit(pattern.left); this.rightHandNodes.push(pattern.right); - __classPrivateFieldGet(this, _assignments).pop(); + __classPrivateFieldGet(this, _PatternVisitor_assignments, "f").pop(); } CallExpression(node) { // arguments are right hand nodes. @@ -69,13 +67,13 @@ class PatternVisitor extends Visitor_1.VisitorBase { } Identifier(pattern) { var _a; - const lastRestElement = (_a = __classPrivateFieldGet(this, _restElements)[__classPrivateFieldGet(this, _restElements).length - 1]) !== null && _a !== void 0 ? _a : null; - __classPrivateFieldGet(this, _callback).call(this, pattern, { - topLevel: pattern === __classPrivateFieldGet(this, _rootPattern), + const lastRestElement = (_a = __classPrivateFieldGet(this, _PatternVisitor_restElements, "f")[__classPrivateFieldGet(this, _PatternVisitor_restElements, "f").length - 1]) !== null && _a !== void 0 ? _a : null; + __classPrivateFieldGet(this, _PatternVisitor_callback, "f").call(this, pattern, { + topLevel: pattern === __classPrivateFieldGet(this, _PatternVisitor_rootPattern, "f"), rest: lastRestElement !== null && lastRestElement !== undefined && lastRestElement.argument === pattern, - assignments: __classPrivateFieldGet(this, _assignments), + assignments: __classPrivateFieldGet(this, _PatternVisitor_assignments, "f"), }); } MemberExpression(node) { @@ -97,9 +95,9 @@ class PatternVisitor extends Visitor_1.VisitorBase { this.visit(property.value); } RestElement(pattern) { - __classPrivateFieldGet(this, _restElements).push(pattern); + __classPrivateFieldGet(this, _PatternVisitor_restElements, "f").push(pattern); this.visit(pattern.argument); - __classPrivateFieldGet(this, _restElements).pop(); + __classPrivateFieldGet(this, _PatternVisitor_restElements, "f").pop(); } SpreadElement(node) { this.visit(node.argument); @@ -109,5 +107,5 @@ class PatternVisitor extends Visitor_1.VisitorBase { } } exports.PatternVisitor = PatternVisitor; -_rootPattern = new WeakMap(), _callback = new WeakMap(), _assignments = new WeakMap(), _restElements = new WeakMap(); +_PatternVisitor_rootPattern = new WeakMap(), _PatternVisitor_callback = new WeakMap(), _PatternVisitor_assignments = new WeakMap(), _PatternVisitor_restElements = new WeakMap(); //# sourceMappingURL=PatternVisitor.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map index e4c57bdf9c..9e3866cca8 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/PatternVisitor.js.map @@ -1 +1 @@ -{"version":3,"file":"PatternVisitor.js","sourceRoot":"","sources":["../../src/referencer/PatternVisitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"PatternVisitor.js","sourceRoot":"","sources":["../../src/referencer/PatternVisitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js index 31bd82893e..23627f6e1a 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _flag, _referenceType; +var _Reference_flag, _Reference_referenceType; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReferenceTypeFlag = exports.ReferenceFlag = exports.Reference = void 0; const ID_1 = require("../ID"); @@ -42,70 +40,70 @@ class Reference { /** * The read-write mode of the reference. */ - _flag.set(this, void 0); + _Reference_flag.set(this, void 0); /** * In some cases, a reference may be a type, value or both a type and value reference. */ - _referenceType.set(this, void 0); + _Reference_referenceType.set(this, void 0); this.identifier = identifier; this.from = scope; this.resolved = null; - __classPrivateFieldSet(this, _flag, flag); + __classPrivateFieldSet(this, _Reference_flag, flag, "f"); if (this.isWrite()) { this.writeExpr = writeExpr; this.init = init; } this.maybeImplicitGlobal = maybeImplicitGlobal; - __classPrivateFieldSet(this, _referenceType, referenceType); + __classPrivateFieldSet(this, _Reference_referenceType, referenceType, "f"); } /** * True if this reference can reference types */ get isTypeReference() { - return (__classPrivateFieldGet(this, _referenceType) & ReferenceTypeFlag.Type) !== 0; + return (__classPrivateFieldGet(this, _Reference_referenceType, "f") & ReferenceTypeFlag.Type) !== 0; } /** * True if this reference can reference values */ get isValueReference() { - return (__classPrivateFieldGet(this, _referenceType) & ReferenceTypeFlag.Value) !== 0; + return (__classPrivateFieldGet(this, _Reference_referenceType, "f") & ReferenceTypeFlag.Value) !== 0; } /** * Whether the reference is writeable. * @public */ isWrite() { - return !!(__classPrivateFieldGet(this, _flag) & ReferenceFlag.Write); + return !!(__classPrivateFieldGet(this, _Reference_flag, "f") & ReferenceFlag.Write); } /** * Whether the reference is readable. * @public */ isRead() { - return !!(__classPrivateFieldGet(this, _flag) & ReferenceFlag.Read); + return !!(__classPrivateFieldGet(this, _Reference_flag, "f") & ReferenceFlag.Read); } /** * Whether the reference is read-only. * @public */ isReadOnly() { - return __classPrivateFieldGet(this, _flag) === ReferenceFlag.Read; + return __classPrivateFieldGet(this, _Reference_flag, "f") === ReferenceFlag.Read; } /** * Whether the reference is write-only. * @public */ isWriteOnly() { - return __classPrivateFieldGet(this, _flag) === ReferenceFlag.Write; + return __classPrivateFieldGet(this, _Reference_flag, "f") === ReferenceFlag.Write; } /** * Whether the reference is read-write. * @public */ isReadWrite() { - return __classPrivateFieldGet(this, _flag) === ReferenceFlag.ReadWrite; + return __classPrivateFieldGet(this, _Reference_flag, "f") === ReferenceFlag.ReadWrite; } } exports.Reference = Reference; -_flag = new WeakMap(), _referenceType = new WeakMap(); +_Reference_flag = new WeakMap(), _Reference_referenceType = new WeakMap(); //# sourceMappingURL=Reference.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map index 1592182519..f0cabb3246 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Reference.js.map @@ -1 +1 @@ -{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../src/referencer/Reference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8BAA0C;AAI1C,IAAK,aAIJ;AAJD,WAAK,aAAa;IAChB,iDAAU,CAAA;IACV,mDAAW,CAAA;IACX,2DAAe,CAAA;AACjB,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AA0ImB,sCAAa;AAlIjC,MAAM,SAAS,GAAG,sBAAiB,EAAE,CAAC;AAEtC,IAAK,iBAGJ;AAHD,WAAK,iBAAiB;IACpB,2DAAW,CAAA;IACX,yDAAU,CAAA;AACZ,CAAC,EAHI,iBAAiB,KAAjB,iBAAiB,QAGrB;AA6HkC,8CAAiB;AA3HpD;;GAEG;AACH,MAAM,SAAS;IAwDb,YACE,UAAwD,EACxD,KAAY,EACZ,IAAmB,EACnB,SAAgC,EAChC,mBAAoD,EACpD,IAAc,EACd,aAAa,GAAG,iBAAiB,CAAC,KAAK;QA9DzC;;WAEG;QACa,QAAG,GAAW,SAAS,EAAE,CAAC;QAC1C;;WAEG;QACH,wBAA8B;QA6B9B;;WAEG;QACH,iCAA2C;QAyBzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,uBAAA,IAAI,SAAS,IAAI,EAAC;QAElB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,uBAAA,IAAI,kBAAkB,aAAa,EAAC;IACtC,CAAC;IAnCD;;OAEG;IACH,IAAW,eAAe;QACxB,OAAO,CAAC,+CAAsB,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,CAAC,+CAAsB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAyBD;;;OAGG;IACI,OAAO;QACZ,OAAO,CAAC,CAAC,CAAC,sCAAa,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,CAAC,CAAC,CAAC,sCAAa,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,wCAAe,aAAa,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,wCAAe,aAAa,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,wCAAe,aAAa,CAAC,SAAS,CAAC;IAChD,CAAC;CACF;AAEQ,8BAAS"} \ No newline at end of file +{"version":3,"file":"Reference.js","sourceRoot":"","sources":["../../src/referencer/Reference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,8BAA0C;AAI1C,IAAK,aAIJ;AAJD,WAAK,aAAa;IAChB,iDAAU,CAAA;IACV,mDAAW,CAAA;IACX,2DAAe,CAAA;AACjB,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AA0ImB,sCAAa;AAlIjC,MAAM,SAAS,GAAG,sBAAiB,EAAE,CAAC;AAEtC,IAAK,iBAGJ;AAHD,WAAK,iBAAiB;IACpB,2DAAW,CAAA;IACX,yDAAU,CAAA;AACZ,CAAC,EAHI,iBAAiB,KAAjB,iBAAiB,QAGrB;AA6HkC,8CAAiB;AA3HpD;;GAEG;AACH,MAAM,SAAS;IAwDb,YACE,UAAwD,EACxD,KAAY,EACZ,IAAmB,EACnB,SAAgC,EAChC,mBAAoD,EACpD,IAAc,EACd,aAAa,GAAG,iBAAiB,CAAC,KAAK;QA9DzC;;WAEG;QACa,QAAG,GAAW,SAAS,EAAE,CAAC;QAC1C;;WAEG;QACH,kCAA8B;QA6B9B;;WAEG;QACH,2CAA2C;QAyBzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,uBAAA,IAAI,mBAAS,IAAI,MAAA,CAAC;QAElB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,uBAAA,IAAI,4BAAkB,aAAa,MAAA,CAAC;IACtC,CAAC;IAnCD;;OAEG;IACH,IAAW,eAAe;QACxB,OAAO,CAAC,uBAAA,IAAI,gCAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,CAAC,uBAAA,IAAI,gCAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAyBD;;;OAGG;IACI,OAAO;QACZ,OAAO,CAAC,CAAC,CAAC,uBAAA,IAAI,uBAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,MAAM;QACX,OAAO,CAAC,CAAC,CAAC,uBAAA,IAAI,uBAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,UAAU;QACf,OAAO,uBAAA,IAAI,uBAAM,KAAK,aAAa,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,uBAAA,IAAI,uBAAM,KAAK,aAAa,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,uBAAA,IAAI,uBAAM,KAAK,aAAa,CAAC,SAAS,CAAC;IAChD,CAAC;CACF;AAEQ,8BAAS"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts index 86346bc3a9..f5b26cdaac 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts @@ -7,6 +7,7 @@ interface ReferencerOptions extends VisitorOptions { jsxPragma: string; jsxFragmentName: string | null; lib: Lib[]; + emitDecoratorMetadata: boolean; } declare class Referencer extends Visitor { #private; @@ -15,9 +16,7 @@ declare class Referencer extends Visitor { currentScope(): Scope; currentScope(throwOnNull: true): Scope | null; close(node: TSESTree.Node): void; - protected pushInnerMethodDefinition(isInnerMethodDefinition: boolean): boolean; - protected popInnerMethodDefinition(isInnerMethodDefinition: boolean | undefined): void; - protected referencingDefaultValue(pattern: TSESTree.Identifier, assignments: (TSESTree.AssignmentExpression | TSESTree.AssignmentPattern)[], maybeImplicitGlobal: ReferenceImplicitGlobal | null, init: boolean): void; + referencingDefaultValue(pattern: TSESTree.Identifier, assignments: (TSESTree.AssignmentExpression | TSESTree.AssignmentPattern)[], maybeImplicitGlobal: ReferenceImplicitGlobal | null, init: boolean): void; private populateGlobalsFromLib; /** * Searches for a variable named "name" in the upper scopes and adds a pseudo-reference from itself to itself @@ -26,11 +25,10 @@ declare class Referencer extends Visitor { private referenceJsxPragma; private referenceJsxFragment; protected visitClass(node: TSESTree.ClassDeclaration | TSESTree.ClassExpression): void; - protected visitClassProperty(node: TSESTree.TSAbstractClassProperty | TSESTree.ClassProperty): void; protected visitForIn(node: TSESTree.ForInStatement | TSESTree.ForOfStatement): void; protected visitFunctionParameterTypeAnnotation(node: TSESTree.Parameter): void; protected visitFunction(node: TSESTree.ArrowFunctionExpression | TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.TSDeclareFunction | TSESTree.TSEmptyBodyFunctionExpression): void; - protected visitProperty(node: TSESTree.ClassProperty | TSESTree.MethodDefinition | TSESTree.Property | TSESTree.TSAbstractClassProperty | TSESTree.TSAbstractMethodDefinition): void; + protected visitProperty(node: TSESTree.Property): void; protected visitType(node: TSESTree.Node | null | undefined): void; protected visitTypeAssertion(node: TSESTree.TSAsExpression | TSESTree.TSTypeAssertion): void; protected ArrowFunctionExpression(node: TSESTree.ArrowFunctionExpression): void; @@ -41,7 +39,6 @@ declare class Referencer extends Visitor { protected CatchClause(node: TSESTree.CatchClause): void; protected ClassExpression(node: TSESTree.ClassExpression): void; protected ClassDeclaration(node: TSESTree.ClassDeclaration): void; - protected ClassProperty(node: TSESTree.ClassProperty): void; protected ContinueStatement(): void; protected ExportAllDeclaration(): void; protected ExportDefaultDeclaration(node: TSESTree.ExportDefaultDeclaration): void; @@ -62,14 +59,11 @@ declare class Referencer extends Visitor { protected LabeledStatement(node: TSESTree.LabeledStatement): void; protected MemberExpression(node: TSESTree.MemberExpression): void; protected MetaProperty(): void; - protected MethodDefinition(node: TSESTree.MethodDefinition): void; protected NewExpression(node: TSESTree.NewExpression): void; protected Program(node: TSESTree.Program): void; protected Property(node: TSESTree.Property): void; protected SwitchStatement(node: TSESTree.SwitchStatement): void; protected TaggedTemplateExpression(node: TSESTree.TaggedTemplateExpression): void; - protected TSAbstractClassProperty(node: TSESTree.TSAbstractClassProperty): void; - protected TSAbstractMethodDefinition(node: TSESTree.TSAbstractMethodDefinition): void; protected TSAsExpression(node: TSESTree.TSAsExpression): void; protected TSDeclareFunction(node: TSESTree.TSDeclareFunction): void; protected TSImportEqualsDeclaration(node: TSESTree.TSImportEqualsDeclaration): void; diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map index 326dccdbae..7018bbd58f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Referencer.d.ts","sourceRoot":"","sources":["../../src/referencer/Referencer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Referencer.d.ts","sourceRoot":"","sources":["../../src/referencer/Referencer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js index 839dae98ab..3dc4674eec 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js @@ -1,21 +1,20 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _isInnerMethodDefinition, _jsxPragma, _jsxFragmentName, _hasReferencedJsxFactory, _hasReferencedJsxFragmentFactory, _lib; +var _Referencer_jsxPragma, _Referencer_jsxFragmentName, _Referencer_hasReferencedJsxFactory, _Referencer_hasReferencedJsxFragmentFactory, _Referencer_lib, _Referencer_emitDecoratorMetadata; Object.defineProperty(exports, "__esModule", { value: true }); exports.Referencer = void 0; const types_1 = require("@typescript-eslint/types"); +const ClassVisitor_1 = require("./ClassVisitor"); const ExportVisitor_1 = require("./ExportVisitor"); const ImportVisitor_1 = require("./ImportVisitor"); const PatternVisitor_1 = require("./PatternVisitor"); @@ -29,17 +28,17 @@ const lib_1 = require("../lib"); class Referencer extends Visitor_1.Visitor { constructor(options, scopeManager) { super(options); - _isInnerMethodDefinition.set(this, void 0); - _jsxPragma.set(this, void 0); - _jsxFragmentName.set(this, void 0); - _hasReferencedJsxFactory.set(this, false); - _hasReferencedJsxFragmentFactory.set(this, false); - _lib.set(this, void 0); + _Referencer_jsxPragma.set(this, void 0); + _Referencer_jsxFragmentName.set(this, void 0); + _Referencer_hasReferencedJsxFactory.set(this, false); + _Referencer_hasReferencedJsxFragmentFactory.set(this, false); + _Referencer_lib.set(this, void 0); + _Referencer_emitDecoratorMetadata.set(this, void 0); this.scopeManager = scopeManager; - __classPrivateFieldSet(this, _jsxPragma, options.jsxPragma); - __classPrivateFieldSet(this, _jsxFragmentName, options.jsxFragmentName); - __classPrivateFieldSet(this, _lib, options.lib); - __classPrivateFieldSet(this, _isInnerMethodDefinition, false); + __classPrivateFieldSet(this, _Referencer_jsxPragma, options.jsxPragma, "f"); + __classPrivateFieldSet(this, _Referencer_jsxFragmentName, options.jsxFragmentName, "f"); + __classPrivateFieldSet(this, _Referencer_lib, options.lib, "f"); + __classPrivateFieldSet(this, _Referencer_emitDecoratorMetadata, options.emitDecoratorMetadata, "f"); } currentScope(dontThrowOnNull) { if (!dontThrowOnNull) { @@ -52,32 +51,23 @@ class Referencer extends Visitor_1.Visitor { this.scopeManager.currentScope = this.currentScope().close(this.scopeManager); } } - pushInnerMethodDefinition(isInnerMethodDefinition) { - const previous = __classPrivateFieldGet(this, _isInnerMethodDefinition); - __classPrivateFieldSet(this, _isInnerMethodDefinition, isInnerMethodDefinition); - return previous; - } - popInnerMethodDefinition(isInnerMethodDefinition) { - __classPrivateFieldSet(this, _isInnerMethodDefinition, !!isInnerMethodDefinition); - } referencingDefaultValue(pattern, assignments, maybeImplicitGlobal, init) { assignments.forEach(assignment => { this.currentScope().referenceValue(pattern, Reference_1.ReferenceFlag.Write, assignment.right, maybeImplicitGlobal, init); }); } populateGlobalsFromLib(globalScope) { - for (const lib of __classPrivateFieldGet(this, _lib)) { + for (const lib of __classPrivateFieldGet(this, _Referencer_lib, "f")) { const variables = lib_1.lib[lib]; /* istanbul ignore if */ if (!variables) { throw new Error(`Invalid value for lib provided: ${lib}`); } - for (const variable of Object.values(variables)) { - globalScope.defineImplicitVariable(variable); + for (const [name, variable] of Object.entries(variables)) { + globalScope.defineImplicitVariable(name, variable); } } // for const assertions (`{} as const` / `{}`) - globalScope.defineImplicitVariable({ - name: 'const', + globalScope.defineImplicitVariable('const', { eslintImplicitGlobalSetting: 'readonly', isTypeVariable: true, isValueVariable: false, @@ -100,44 +90,23 @@ class Referencer extends Visitor_1.Visitor { return false; } referenceJsxPragma() { - if (__classPrivateFieldGet(this, _hasReferencedJsxFactory)) { + if (__classPrivateFieldGet(this, _Referencer_hasReferencedJsxFactory, "f")) { return; } - __classPrivateFieldSet(this, _hasReferencedJsxFactory, this.referenceInSomeUpperScope(__classPrivateFieldGet(this, _jsxPragma))); + __classPrivateFieldSet(this, _Referencer_hasReferencedJsxFactory, this.referenceInSomeUpperScope(__classPrivateFieldGet(this, _Referencer_jsxPragma, "f")), "f"); } referenceJsxFragment() { - if (__classPrivateFieldGet(this, _jsxFragmentName) === null || __classPrivateFieldGet(this, _hasReferencedJsxFragmentFactory)) { + if (__classPrivateFieldGet(this, _Referencer_jsxFragmentName, "f") === null || + __classPrivateFieldGet(this, _Referencer_hasReferencedJsxFragmentFactory, "f")) { return; } - __classPrivateFieldSet(this, _hasReferencedJsxFragmentFactory, this.referenceInSomeUpperScope(__classPrivateFieldGet(this, _jsxFragmentName))); + __classPrivateFieldSet(this, _Referencer_hasReferencedJsxFragmentFactory, this.referenceInSomeUpperScope(__classPrivateFieldGet(this, _Referencer_jsxFragmentName, "f")), "f"); } /////////////////// // Visit helpers // /////////////////// visitClass(node) { - var _a, _b; - if (node.type === types_1.AST_NODE_TYPES.ClassDeclaration && node.id) { - this.currentScope().defineIdentifier(node.id, new definition_1.ClassNameDefinition(node.id, node)); - } - (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.forEach(d => this.visit(d)); - this.scopeManager.nestClassScope(node); - if (node.id) { - // define the class name again inside the new scope - // references to the class should not resolve directly to the parent class - this.currentScope().defineIdentifier(node.id, new definition_1.ClassNameDefinition(node.id, node)); - } - this.visit(node.superClass); - // visit the type param declarations - this.visitType(node.typeParameters); - // then the usages - this.visitType(node.superTypeParameters); - (_b = node.implements) === null || _b === void 0 ? void 0 : _b.forEach(imp => this.visitType(imp)); - this.visit(node.body); - this.close(node); - } - visitClassProperty(node) { - this.visitProperty(node); - this.visitType(node.typeAnnotation); + ClassVisitor_1.ClassVisitor.visit(this, node, __classPrivateFieldGet(this, _Referencer_emitDecoratorMetadata, "f")); } visitForIn(node) { if (node.left.type === types_1.AST_NODE_TYPES.VariableDeclaration && @@ -196,7 +165,7 @@ class Referencer extends Visitor_1.Visitor { this.currentScope().defineIdentifier(node.id, new definition_1.FunctionNameDefinition(node.id, node)); } // Consider this function is in the MethodDefinition. - this.scopeManager.nestFunctionScope(node, __classPrivateFieldGet(this, _isInnerMethodDefinition)); + this.scopeManager.nestFunctionScope(node, false); // Process parameter declarations. for (const param of node.params) { this.visitPattern(param, (pattern, info) => { @@ -222,22 +191,10 @@ class Referencer extends Visitor_1.Visitor { this.close(node); } visitProperty(node) { - var _a; - let previous; if (node.computed) { this.visit(node.key); } - const isMethodDefinition = node.type === types_1.AST_NODE_TYPES.MethodDefinition; - if (isMethodDefinition) { - previous = this.pushInnerMethodDefinition(true); - } this.visit(node.value); - if (isMethodDefinition) { - this.popInnerMethodDefinition(previous); - } - if ('decorators' in node) { - (_a = node.decorators) === null || _a === void 0 ? void 0 : _a.forEach(d => this.visit(d)); - } } visitType(node) { if (!node) { @@ -256,9 +213,20 @@ class Referencer extends Visitor_1.Visitor { this.visitFunction(node); } AssignmentExpression(node) { - if (PatternVisitor_1.PatternVisitor.isPattern(node.left)) { + let left = node.left; + switch (left.type) { + case types_1.AST_NODE_TYPES.TSAsExpression: + case types_1.AST_NODE_TYPES.TSTypeAssertion: + // explicitly visit the type annotation + this.visitType(left.typeAnnotation); + // intentional fallthrough + case types_1.AST_NODE_TYPES.TSNonNullExpression: + // unwrap the expression + left = left.expression; + } + if (PatternVisitor_1.PatternVisitor.isPattern(left)) { if (node.operator === '=') { - this.visitPattern(node.left, (pattern, info) => { + this.visitPattern(left, (pattern, info) => { const maybeImplicitGlobal = !this.currentScope().isStrict ? { pattern, @@ -269,12 +237,12 @@ class Referencer extends Visitor_1.Visitor { this.currentScope().referenceValue(pattern, Reference_1.ReferenceFlag.Write, node.right, maybeImplicitGlobal, false); }, { processRightHandNodes: true }); } - else if (node.left.type === types_1.AST_NODE_TYPES.Identifier) { - this.currentScope().referenceValue(node.left, Reference_1.ReferenceFlag.ReadWrite, node.right); + else if (left.type === types_1.AST_NODE_TYPES.Identifier) { + this.currentScope().referenceValue(left, Reference_1.ReferenceFlag.ReadWrite, node.right); } } else { - this.visit(node.left); + this.visit(left); } this.visit(node.right); } @@ -310,9 +278,6 @@ class Referencer extends Visitor_1.Visitor { ClassDeclaration(node) { this.visitClass(node); } - ClassProperty(node) { - this.visitClassProperty(node); - } ContinueStatement() { // don't reference the continue statement's label } @@ -415,9 +380,6 @@ class Referencer extends Visitor_1.Visitor { MetaProperty() { // meta properties all builtin globals } - MethodDefinition(node) { - this.visitProperty(node); - } NewExpression(node) { this.visitChildren(node, ['typeParameters']); this.visitType(node.typeParameters); @@ -458,12 +420,6 @@ class Referencer extends Visitor_1.Visitor { this.visit(node.quasi); this.visitType(node.typeParameters); } - TSAbstractClassProperty(node) { - this.visitClassProperty(node); - } - TSAbstractMethodDefinition(node) { - this.visitProperty(node); - } TSAsExpression(node) { this.visitTypeAssertion(node); } @@ -512,7 +468,7 @@ class Referencer extends Visitor_1.Visitor { this.visitType(node); } TSModuleDeclaration(node) { - if (node.id.type === types_1.AST_NODE_TYPES.Identifier) { + if (node.id.type === types_1.AST_NODE_TYPES.Identifier && !node.global) { this.currentScope().defineIdentifier(node.id, new definition_1.TSModuleNameDefinition(node.id, node)); } this.scopeManager.nestTSModuleScope(node); @@ -565,5 +521,5 @@ class Referencer extends Visitor_1.Visitor { } } exports.Referencer = Referencer; -_isInnerMethodDefinition = new WeakMap(), _jsxPragma = new WeakMap(), _jsxFragmentName = new WeakMap(), _hasReferencedJsxFactory = new WeakMap(), _hasReferencedJsxFragmentFactory = new WeakMap(), _lib = new WeakMap(); +_Referencer_jsxPragma = new WeakMap(), _Referencer_jsxFragmentName = new WeakMap(), _Referencer_hasReferencedJsxFactory = new WeakMap(), _Referencer_hasReferencedJsxFragmentFactory = new WeakMap(), _Referencer_lib = new WeakMap(), _Referencer_emitDecoratorMetadata = new WeakMap(); //# sourceMappingURL=Referencer.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map index 38ae759ddb..7f0e771bd7 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Referencer.js.map @@ -1 +1 @@ -{"version":3,"file":"Referencer.js","sourceRoot":"","sources":["../../src/referencer/Referencer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Referencer.js","sourceRoot":"","sources":["../../src/referencer/Referencer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts index fe358826db..39ee0d8692 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts @@ -14,6 +14,7 @@ declare class TypeVisitor extends Visitor { protected TSConstructorType(node: TSESTree.TSConstructorType): void; protected TSConstructSignatureDeclaration(node: TSESTree.TSConstructSignatureDeclaration): void; protected TSFunctionType(node: TSESTree.TSFunctionType): void; + protected TSImportType(node: TSESTree.TSImportType): void; protected TSIndexSignature(node: TSESTree.TSIndexSignature): void; protected TSInferType(node: TSESTree.TSInferType): void; protected TSInterfaceDeclaration(node: TSESTree.TSInterfaceDeclaration): void; @@ -26,6 +27,7 @@ declare class TypeVisitor extends Visitor { protected TSTypeParameter(node: TSESTree.TSTypeParameter): void; protected TSTypePredicate(node: TSESTree.TSTypePredicate): void; protected TSTypeQuery(node: TSESTree.TSTypeQuery): void; + protected TSTypeAnnotation(node: TSESTree.TSTypeAnnotation): void; } export { TypeVisitor }; //# sourceMappingURL=TypeVisitor.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map index a471358d7b..29faa8fe62 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"TypeVisitor.d.ts","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,cAAM,WAAY,SAAQ,OAAO;;gBAGnB,UAAU,EAAE,UAAU;IAKlC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI;IAS/D,SAAS,CAAC,iBAAiB,CACzB,IAAI,EACA,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,+BAA+B,GACxC,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,iBAAiB,GAC7B,IAAI;IAgCP,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,mBAAmB,GAC9D,IAAI;IAYP,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI;IAIrD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IAKjE,SAAS,CAAC,0BAA0B,CAClC,IAAI,EAAE,QAAQ,CAAC,0BAA0B,GACxC,IAAI;IAIP,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAUnE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAInE,SAAS,CAAC,+BAA+B,CACvC,IAAI,EAAE,QAAQ,CAAC,+BAA+B,GAC7C,IAAI;IAIP,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI;IAI7D,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IASjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;IAsCvD,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAoBP,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI;IAOzD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAKnE,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,GAAG,IAAI;IAKrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,GAAG,IAAI;IAKvE,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAK/D,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAkBP,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAS/D,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAQ/D,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;CAWxD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"TypeVisitor.d.ts","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,cAAM,WAAY,SAAQ,OAAO;;gBAGnB,UAAU,EAAE,UAAU;IAKlC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI;IAS/D,SAAS,CAAC,iBAAiB,CACzB,IAAI,EACA,QAAQ,CAAC,0BAA0B,GACnC,QAAQ,CAAC,iBAAiB,GAC1B,QAAQ,CAAC,+BAA+B,GACxC,QAAQ,CAAC,cAAc,GACvB,QAAQ,CAAC,iBAAiB,GAC7B,IAAI;IAgCP,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,mBAAmB,GAC9D,IAAI;IAYP,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI;IAIrD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IAKjE,SAAS,CAAC,0BAA0B,CAClC,IAAI,EAAE,QAAQ,CAAC,0BAA0B,GACxC,IAAI;IAIP,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAanE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAInE,SAAS,CAAC,+BAA+B,CACvC,IAAI,EAAE,QAAQ,CAAC,+BAA+B,GAC7C,IAAI;IAIP,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI;IAI7D,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI;IAMzD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;IASjE,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;IAsCvD,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAoBP,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,GAAG,IAAI;IAOzD,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,GAAG,IAAI;IAKnE,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,GAAG,IAAI;IAKrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,mBAAmB,GAAG,IAAI;IAKvE,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAK/D,SAAS,CAAC,sBAAsB,CAC9B,IAAI,EAAE,QAAQ,CAAC,sBAAsB,GACpC,IAAI;IAkBP,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAS/D,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,GAAG,IAAI;IAQ/D,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI;IAYvD,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAAG,IAAI;CAIlE;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js index 6a3d4e6ee3..087a8e8209 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _referencer; +var _TypeVisitor_referencer; Object.defineProperty(exports, "__esModule", { value: true }); exports.TypeVisitor = void 0; const types_1 = require("@typescript-eslint/types"); @@ -22,8 +20,8 @@ const scope_1 = require("../scope"); class TypeVisitor extends Visitor_1.Visitor { constructor(referencer) { super(referencer); - _referencer.set(this, void 0); - __classPrivateFieldSet(this, _referencer, referencer); + _TypeVisitor_referencer.set(this, void 0); + __classPrivateFieldSet(this, _TypeVisitor_referencer, referencer, "f"); } static visit(referencer, node) { const typeReferencer = new TypeVisitor(referencer); @@ -34,13 +32,14 @@ class TypeVisitor extends Visitor_1.Visitor { /////////////////// visitFunctionType(node) { // arguments and type parameters can only be referenced from within the function - __classPrivateFieldGet(this, _referencer).scopeManager.nestFunctionTypeScope(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").scopeManager.nestFunctionTypeScope(node); this.visit(node.typeParameters); for (const param of node.params) { let didVisitAnnotation = false; this.visitPattern(param, (pattern, info) => { // a parameter name creates a value type variable which can be referenced later via typeof arg - __classPrivateFieldGet(this, _referencer).currentScope() + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f") + .currentScope() .defineIdentifier(pattern, new definition_1.ParameterDefinition(pattern, node, info.rest)); if (pattern.typeAnnotation) { this.visit(pattern.typeAnnotation); @@ -53,20 +52,20 @@ class TypeVisitor extends Visitor_1.Visitor { } } this.visit(node.returnType); - __classPrivateFieldGet(this, _referencer).close(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").close(node); } visitPropertyKey(node) { if (!node.computed) { return; } // computed members are treated as value references, and TS expects they have a literal type - __classPrivateFieldGet(this, _referencer).visit(node.key); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").visit(node.key); } ///////////////////// // Visit selectors // ///////////////////// Identifier(node) { - __classPrivateFieldGet(this, _referencer).currentScope().referenceType(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").currentScope().referenceType(node); } MemberExpression(node) { this.visit(node.object); @@ -78,9 +77,11 @@ class TypeVisitor extends Visitor_1.Visitor { TSConditionalType(node) { // conditional types can define inferred type parameters // which are only accessible from inside the conditional parameter - __classPrivateFieldGet(this, _referencer).scopeManager.nestConditionalTypeScope(node); - this.visitChildren(node); - __classPrivateFieldGet(this, _referencer).close(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").scopeManager.nestConditionalTypeScope(node); + // type parameters inferred in the condition clause are not accessible within the false branch + this.visitChildren(node, ['falseType']); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").close(node); + this.visit(node.falseType); } TSConstructorType(node) { this.visitFunctionType(node); @@ -91,6 +92,11 @@ class TypeVisitor extends Visitor_1.Visitor { TSFunctionType(node) { this.visitFunctionType(node); } + TSImportType(node) { + // the TS parser allows any type to be the parameter, but it's a syntax error - so we can ignore it + this.visit(node.typeParameters); + // the qualifier is just part of a standard EntityName, so it should not be visited + } TSIndexSignature(node) { for (const param of node.parameters) { if (param.type === types_1.AST_NODE_TYPES.Identifier) { @@ -101,7 +107,7 @@ class TypeVisitor extends Visitor_1.Visitor { } TSInferType(node) { const typeParameter = node.typeParameter; - let scope = __classPrivateFieldGet(this, _referencer).currentScope(); + let scope = __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").currentScope(); /* In cases where there is a sub-type scope created within a conditional type, then the generic should be defined in the conditional type's scope, not the child type scope. @@ -129,25 +135,26 @@ class TypeVisitor extends Visitor_1.Visitor { } TSInterfaceDeclaration(node) { var _a, _b; - __classPrivateFieldGet(this, _referencer).currentScope() + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f") + .currentScope() .defineIdentifier(node.id, new definition_1.TypeDefinition(node.id, node)); if (node.typeParameters) { // type parameters cannot be referenced from outside their current scope - __classPrivateFieldGet(this, _referencer).scopeManager.nestTypeScope(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").scopeManager.nestTypeScope(node); this.visit(node.typeParameters); } (_a = node.extends) === null || _a === void 0 ? void 0 : _a.forEach(this.visit, this); (_b = node.implements) === null || _b === void 0 ? void 0 : _b.forEach(this.visit, this); this.visit(node.body); if (node.typeParameters) { - __classPrivateFieldGet(this, _referencer).close(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").close(node); } } TSMappedType(node) { // mapped types key can only be referenced within their return value - __classPrivateFieldGet(this, _referencer).scopeManager.nestMappedTypeScope(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").scopeManager.nestMappedTypeScope(node); this.visitChildren(node); - __classPrivateFieldGet(this, _referencer).close(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").close(node); } TSMethodSignature(node) { this.visitPropertyKey(node); @@ -166,44 +173,50 @@ class TypeVisitor extends Visitor_1.Visitor { // we don't visit the right as it a name on the thing, not a name to reference } TSTypeAliasDeclaration(node) { - __classPrivateFieldGet(this, _referencer).currentScope() + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f") + .currentScope() .defineIdentifier(node.id, new definition_1.TypeDefinition(node.id, node)); if (node.typeParameters) { // type parameters cannot be referenced from outside their current scope - __classPrivateFieldGet(this, _referencer).scopeManager.nestTypeScope(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").scopeManager.nestTypeScope(node); this.visit(node.typeParameters); } this.visit(node.typeAnnotation); if (node.typeParameters) { - __classPrivateFieldGet(this, _referencer).close(node); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").close(node); } } TSTypeParameter(node) { - __classPrivateFieldGet(this, _referencer).currentScope() + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f") + .currentScope() .defineIdentifier(node.name, new definition_1.TypeDefinition(node.name, node)); this.visit(node.constraint); this.visit(node.default); } TSTypePredicate(node) { if (node.parameterName.type !== types_1.AST_NODE_TYPES.TSThisType) { - __classPrivateFieldGet(this, _referencer).currentScope().referenceValue(node.parameterName); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").currentScope().referenceValue(node.parameterName); } this.visit(node.typeAnnotation); } // a type query `typeof foo` is a special case that references a _non-type_ variable, TSTypeQuery(node) { if (node.exprName.type === types_1.AST_NODE_TYPES.Identifier) { - __classPrivateFieldGet(this, _referencer).currentScope().referenceValue(node.exprName); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").currentScope().referenceValue(node.exprName); } else { let expr = node.exprName.left; while (expr.type !== types_1.AST_NODE_TYPES.Identifier) { expr = expr.left; } - __classPrivateFieldGet(this, _referencer).currentScope().referenceValue(expr); + __classPrivateFieldGet(this, _TypeVisitor_referencer, "f").currentScope().referenceValue(expr); } } + TSTypeAnnotation(node) { + // check + this.visitChildren(node); + } } exports.TypeVisitor = TypeVisitor; -_referencer = new WeakMap(); +_TypeVisitor_referencer = new WeakMap(); //# sourceMappingURL=TypeVisitor.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map index 6ef5c83e11..c79cd0c85f 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/TypeVisitor.js.map @@ -1 +1 @@ -{"version":3,"file":"TypeVisitor.js","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TypeVisitor.js","sourceRoot":"","sources":["../../src/referencer/TypeVisitor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js index e3021eec17..2d0156fdbd 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var _options; +var _Visitor_options; Object.defineProperty(exports, "__esModule", { value: true }); exports.VisitorBase = exports.Visitor = void 0; const VisitorBase_1 = require("./VisitorBase"); @@ -21,14 +19,16 @@ const PatternVisitor_1 = require("./PatternVisitor"); class Visitor extends VisitorBase_1.VisitorBase { constructor(optionsOrVisitor) { super(optionsOrVisitor instanceof Visitor - ? __classPrivateFieldGet(optionsOrVisitor, _options) : optionsOrVisitor); - _options.set(this, void 0); - __classPrivateFieldSet(this, _options, optionsOrVisitor instanceof Visitor - ? __classPrivateFieldGet(optionsOrVisitor, _options) : optionsOrVisitor); + ? __classPrivateFieldGet(optionsOrVisitor, _Visitor_options, "f") + : optionsOrVisitor); + _Visitor_options.set(this, void 0); + __classPrivateFieldSet(this, _Visitor_options, optionsOrVisitor instanceof Visitor + ? __classPrivateFieldGet(optionsOrVisitor, _Visitor_options, "f") + : optionsOrVisitor, "f"); } visitPattern(node, callback, options = { processRightHandNodes: false }) { // Call the callback at left hand identifier nodes, and Collect right hand nodes. - const visitor = new PatternVisitor_1.PatternVisitor(__classPrivateFieldGet(this, _options), node, callback); + const visitor = new PatternVisitor_1.PatternVisitor(__classPrivateFieldGet(this, _Visitor_options, "f"), node, callback); visitor.visit(node); // Process the right hand nodes recursively. if (options.processRightHandNodes) { @@ -37,5 +37,5 @@ class Visitor extends VisitorBase_1.VisitorBase { } } exports.Visitor = Visitor; -_options = new WeakMap(); +_Visitor_options = new WeakMap(); //# sourceMappingURL=Visitor.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js.map index 45ed8ca362..db6f70567d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/Visitor.js.map @@ -1 +1 @@ -{"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/referencer/Visitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+CAA4D;AA0C1C,4FA1CT,yBAAW,OA0CS;AAzC7B,qDAI0B;AAK1B,MAAM,OAAQ,SAAQ,yBAAW;IAE/B,YAAY,gBAA0C;QACpD,KAAK,CACH,gBAAgB,YAAY,OAAO;YACjC,CAAC,oDACD,CAAC,CAAC,gBAAgB,CACrB,CAAC;QANJ,2BAAkC;QAQhC,uBAAA,IAAI,YACF,gBAAgB,YAAY,OAAO;YACjC,CAAC,oDACD,CAAC,CAAC,gBAAgB,EAAC;IACzB,CAAC;IAES,YAAY,CACpB,IAAmB,EACnB,QAAgC,EAChC,UAA+B,EAAE,qBAAqB,EAAE,KAAK,EAAE;QAE/D,iFAAiF;QACjF,MAAM,OAAO,GAAG,IAAI,+BAAc,yCAAgB,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,4CAA4C;QAC5C,IAAI,OAAO,CAAC,qBAAqB,EAAE;YACjC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAClD;IACH,CAAC;CACF;AAEQ,0BAAO"} \ No newline at end of file +{"version":3,"file":"Visitor.js","sourceRoot":"","sources":["../../src/referencer/Visitor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAA4D;AA0C1C,4FA1CT,yBAAW,OA0CS;AAzC7B,qDAI0B;AAK1B,MAAM,OAAQ,SAAQ,yBAAW;IAE/B,YAAY,gBAA0C;QACpD,KAAK,CACH,gBAAgB,YAAY,OAAO;YACjC,CAAC,CAAC,uBAAA,gBAAgB,wBAAS;YAC3B,CAAC,CAAC,gBAAgB,CACrB,CAAC;QANJ,mCAAkC;QAQhC,uBAAA,IAAI,oBACF,gBAAgB,YAAY,OAAO;YACjC,CAAC,CAAC,uBAAA,gBAAgB,wBAAS;YAC3B,CAAC,CAAC,gBAAgB,MAAA,CAAC;IACzB,CAAC;IAES,YAAY,CACpB,IAAmB,EACnB,QAAgC,EAChC,UAA+B,EAAE,qBAAqB,EAAE,KAAK,EAAE;QAE/D,iFAAiF;QACjF,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,uBAAA,IAAI,wBAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,4CAA4C;QAC5C,IAAI,OAAO,CAAC,qBAAqB,EAAE;YACjC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAClD;IACH,CAAC;CACF;AAEQ,0BAAO"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts index 297fe71264..a45ba81bea 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts @@ -2,6 +2,7 @@ import { TSESTree } from '@typescript-eslint/types'; import { VisitorKeys } from '@typescript-eslint/visitor-keys'; interface VisitorOptions { childVisitorKeys?: VisitorKeys | null; + visitChildrenEvenIfSelectorExists?: boolean; } declare abstract class VisitorBase { #private; diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts.map index 43ca6b2392..03310d28d1 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"VisitorBase.d.ts","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAe,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE3E,UAAU,cAAc;IACtB,gBAAgB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACvC;AAaD,uBAAe,WAAW;;gBAEZ,OAAO,EAAE,cAAc;IAInC;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EACnC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GACvB,IAAI;IA6BP;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CAYpD;AAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"VisitorBase.d.ts","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAe,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE3E,UAAU,cAAc;IACtB,gBAAgB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C;AAaD,uBAAe,WAAW;;gBAGZ,OAAO,EAAE,cAAc;IAMnC;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EACnC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,UAAU,GAAE,CAAC,MAAM,CAAC,CAAC,EAAO,GAC3B,IAAI;IA6BP;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CAepD;AAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js index 10ff0cb492..d1ab2ead94 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _childVisitorKeys; +var _VisitorBase_childVisitorKeys, _VisitorBase_visitChildrenEvenIfSelectorExists; Object.defineProperty(exports, "__esModule", { value: true }); exports.VisitorBase = void 0; const visitor_keys_1 = require("@typescript-eslint/visitor-keys"); @@ -24,22 +22,24 @@ function isNode(node) { } class VisitorBase { constructor(options) { - var _a; - _childVisitorKeys.set(this, void 0); - __classPrivateFieldSet(this, _childVisitorKeys, (_a = options.childVisitorKeys) !== null && _a !== void 0 ? _a : visitor_keys_1.visitorKeys); + var _a, _b; + _VisitorBase_childVisitorKeys.set(this, void 0); + _VisitorBase_visitChildrenEvenIfSelectorExists.set(this, void 0); + __classPrivateFieldSet(this, _VisitorBase_childVisitorKeys, (_a = options.childVisitorKeys) !== null && _a !== void 0 ? _a : visitor_keys_1.visitorKeys, "f"); + __classPrivateFieldSet(this, _VisitorBase_visitChildrenEvenIfSelectorExists, (_b = options.visitChildrenEvenIfSelectorExists) !== null && _b !== void 0 ? _b : false, "f"); } /** * Default method for visiting children. * @param node the node whose children should be visited * @param exclude a list of keys to not visit */ - visitChildren(node, excludeArr) { + visitChildren(node, excludeArr = []) { var _a; if (node == null || node.type == null) { return; } - const exclude = new Set(excludeArr); - const children = (_a = __classPrivateFieldGet(this, _childVisitorKeys)[node.type]) !== null && _a !== void 0 ? _a : Object.keys(node); + const exclude = new Set(excludeArr.concat(['parent'])); + const children = (_a = __classPrivateFieldGet(this, _VisitorBase_childVisitorKeys, "f")[node.type]) !== null && _a !== void 0 ? _a : Object.keys(node); for (const key of children) { if (exclude.has(key)) { continue; @@ -69,11 +69,14 @@ class VisitorBase { } const visitor = this[node.type]; if (visitor) { - return visitor.call(this, node); + visitor.call(this, node); + if (!__classPrivateFieldGet(this, _VisitorBase_visitChildrenEvenIfSelectorExists, "f")) { + return; + } } this.visitChildren(node); } } exports.VisitorBase = VisitorBase; -_childVisitorKeys = new WeakMap(); +_VisitorBase_childVisitorKeys = new WeakMap(), _VisitorBase_visitChildrenEvenIfSelectorExists = new WeakMap(); //# sourceMappingURL=VisitorBase.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js.map b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js.map index 878c1233ef..56aef115d3 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/referencer/VisitorBase.js.map @@ -1 +1 @@ -{"version":3,"file":"VisitorBase.js","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,kEAA2E;AAM3E,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;AAChD,CAAC;AACD,SAAS,MAAM,CAAC,IAAa;IAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzD,CAAC;AAMD,MAAe,WAAW;IAExB,YAAY,OAAuB;;QADnC,oCAAwC;QAEtC,uBAAA,IAAI,2BAAqB,OAAO,CAAC,gBAAgB,mCAAI,0BAAW,EAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,IAA0B,EAC1B,UAAwB;;QAExB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrC,OAAO;SACR;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAgB,CAAC;QACnD,MAAM,QAAQ,SAAG,gDAAuB,IAAI,CAAC,IAAI,CAAC,mCAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACpB,SAAS;aACV;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAA0B,CAAY,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE;gBACV,SAAS;aACV;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;oBAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;wBACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBACtB;iBACF;aACF;iBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACnB;SACF;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAsC;QAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrC,OAAO;SACR;QAED,MAAM,OAAO,GAAI,IAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACjC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAEQ,kCAAW"} \ No newline at end of file +{"version":3,"file":"VisitorBase.js","sourceRoot":"","sources":["../../src/referencer/VisitorBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kEAA2E;AAO3E,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;AAChD,CAAC;AACD,SAAS,MAAM,CAAC,IAAa;IAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzD,CAAC;AAMD,MAAe,WAAW;IAGxB,YAAY,OAAuB;;QAFnC,gDAAwC;QACxC,iEAAqD;QAEnD,uBAAA,IAAI,iCAAqB,MAAA,OAAO,CAAC,gBAAgB,mCAAI,0BAAW,MAAA,CAAC;QACjE,uBAAA,IAAI,kDACF,MAAA,OAAO,CAAC,iCAAiC,mCAAI,KAAK,MAAA,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,IAA0B,EAC1B,aAA0B,EAAE;;QAE5B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrC,OAAO;SACR;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAgB,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAA,uBAAA,IAAI,qCAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACpB,SAAS;aACV;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAA0B,CAAY,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE;gBACV,SAAS;aACV;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;oBAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE;wBACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBACtB;iBACF;aACF;iBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACnB;SACF;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAsC;QAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrC,OAAO;SACR;QAED,MAAM,OAAO,GAAI,IAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,uBAAA,IAAI,sDAAmC,EAAE;gBAC5C,OAAO;aACR;SACF;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAEQ,kCAAW"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js.map b/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js.map index 097c567671..e7940f4246 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js.map @@ -1 +1 @@ -{"version":3,"file":"FunctionScope.js","sourceRoot":"","sources":["../../src/scope/FunctionScope.ts"],"names":[],"mappings":";;;AAAA,oDAAoE;AAEpE,2CAAwC;AACxC,2CAAwC;AAKxC,MAAM,aAAc,SAAQ,qBAS3B;IACC,YACE,YAA0B,EAC1B,UAAkC,EAClC,KAA6B,EAC7B,kBAA2B;QAE3B,KAAK,CACH,YAAY,EACZ,qBAAS,CAAC,QAAQ,EAClB,UAAU,EACV,KAAK,EACL,kBAAkB,CACnB,CAAC;QAEF,oDAAoD;QACpD,wDAAwD;QACxD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,uBAAuB,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACxE;IACH,CAAC;IAED,iGAAiG;IACjG,kBAAkB;IAClB,iFAAiF;IACjF,sBAAsB;IACtB,yBAAyB;IACzB,QAAQ;IACE,iBAAiB,CAAC,GAAc,EAAE,QAAkB;;QAC5D,0EAA0E;QAC1E,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,OAAO,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,SAAS,eAAG,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC,oCAAK,CAAC,CAAC,CAAC;QAElD,iDAAiD;QACjD,OAAO,CAAC,CACN,CACE,QAAQ,CAAC,KAAK,KAAK,IAAI;YACvB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,0CAA0C;YACjF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CACvD,CAAC,+BAA+B;SAClC,CAAC;IACJ,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file +{"version":3,"file":"FunctionScope.js","sourceRoot":"","sources":["../../src/scope/FunctionScope.ts"],"names":[],"mappings":";;;AAAA,oDAAoE;AAEpE,2CAAwC;AACxC,2CAAwC;AAKxC,MAAM,aAAc,SAAQ,qBAS3B;IACC,YACE,YAA0B,EAC1B,UAAkC,EAClC,KAA6B,EAC7B,kBAA2B;QAE3B,KAAK,CACH,YAAY,EACZ,qBAAS,CAAC,QAAQ,EAClB,UAAU,EACV,KAAK,EACL,kBAAkB,CACnB,CAAC;QAEF,oDAAoD;QACpD,wDAAwD;QACxD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,uBAAuB,EAAE;YAC9D,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACxE;IACH,CAAC;IAED,iGAAiG;IACjG,kBAAkB;IAClB,iFAAiF;IACjF,sBAAsB;IACtB,yBAAyB;IACzB,QAAQ;IACE,iBAAiB,CAAC,GAAc,EAAE,QAAkB;;QAC5D,0EAA0E;QAC1E,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,OAAO,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,SAAS,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC;QAElD,iDAAiD;QACjD,OAAO,CAAC,CACN,CACE,QAAQ,CAAC,KAAK,KAAK,IAAI;YACvB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,0CAA0C;YACjF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CACvD,CAAC,+BAA+B;SAClC,CAAC;IACJ,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts index 018fcd4b5d..30e3454b8d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts @@ -11,7 +11,7 @@ declare class GlobalScope extends ScopeBase { private readonly implicit; constructor(scopeManager: ScopeManager, block: GlobalScope['block']); - defineImplicitVariable(options: ImplicitLibVariableOptions): void; + defineImplicitVariable(name: string, options: ImplicitLibVariableOptions): void; close(scopeManager: ScopeManager): Scope | null; } export { GlobalScope }; diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts.map index be9a0123da..98acde4f58 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"GlobalScope.d.ts","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAGL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB,cAAM,WAAY,SAAQ,SAAS,CACjC,SAAS,CAAC,MAAM,EAChB,QAAQ,CAAC,OAAO;AAChB;;GAEG;AACH,IAAI,CACL;IAEC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAQvB;gBAEU,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;IAS5D,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAUjE,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI;CAuBvD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"GlobalScope.d.ts","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAGL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB,cAAM,WAAY,SAAQ,SAAS,CACjC,SAAS,CAAC,MAAM,EAChB,QAAQ,CAAC,OAAO;AAChB;;GAEG;AACH,IAAI,CACL;IAEC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAQvB;gBAEU,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;IAS5D,sBAAsB,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,0BAA0B,GAClC,IAAI;IAUA,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI;CAuBvD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js index d3fa4bfd2b..c27231d633 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js @@ -16,8 +16,8 @@ class GlobalScope extends ScopeBase_1.ScopeBase { leftToBeResolved: [], }; } - defineImplicitVariable(options) { - this.defineVariable(new variable_1.ImplicitLibVariable(this, options), this.set, this.variables, null, null); + defineImplicitVariable(name, options) { + this.defineVariable(new variable_1.ImplicitLibVariable(this, name, options), this.set, this.variables, null, null); } close(scopeManager) { assert_1.assert(this.leftToResolve); diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js.map b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js.map index 38deb003eb..cc9037025d 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/GlobalScope.js.map @@ -1 +1 @@ -{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":";;;AAAA,oDAAoE;AAEpE,2CAAwC;AACxC,2CAAwC;AACxC,sCAAmC;AACnC,qGAAkG;AAGlG,0CAIqB;AAErB,MAAM,WAAY,SAAQ,qBAOzB;IAYC,YAAY,YAA0B,EAAE,KAA2B;QACjE,KAAK,CAAC,YAAY,EAAE,qBAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,EAAE,IAAI,GAAG,EAAE;YACd,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;IAEM,sBAAsB,CAAC,OAAmC;QAC/D,IAAI,CAAC,cAAc,CACjB,IAAI,8BAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,EACtC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,SAAS,EACd,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAA0B;QACrC,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;YACpC,IAAI,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACjE,gEAAgE;gBAChE,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;oBACnD,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,IAAI,EACJ,IAAI,mEAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;iBACH;aACF;SACF;QAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF;AAEQ,kCAAW"} \ No newline at end of file +{"version":3,"file":"GlobalScope.js","sourceRoot":"","sources":["../../src/scope/GlobalScope.ts"],"names":[],"mappings":";;;AAAA,oDAAoE;AAEpE,2CAAwC;AACxC,2CAAwC;AACxC,sCAAmC;AACnC,qGAAkG;AAGlG,0CAIqB;AAErB,MAAM,WAAY,SAAQ,qBAOzB;IAYC,YAAY,YAA0B,EAAE,KAA2B;QACjE,KAAK,CAAC,YAAY,EAAE,qBAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,EAAE,IAAI,GAAG,EAAoB;YAChC,SAAS,EAAE,EAAE;YACb,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;IAEM,sBAAsB,CAC3B,IAAY,EACZ,OAAmC;QAEnC,IAAI,CAAC,cAAc,CACjB,IAAI,8BAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAC5C,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,SAAS,EACd,IAAI,EACJ,IAAI,CACL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAA0B;QACrC,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE;YACpC,IAAI,GAAG,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACjE,gEAAgE;gBAChE,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,CAAC;gBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE;oBACnD,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,CAAC,GAAG,EACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB,IAAI,EACJ,IAAI,mEAAgC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAC9D,CAAC;iBACH;aACF;SACF;QAED,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;CACF;AAEQ,kCAAW"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map index d4c55a3c41..28fcabca4c 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ScopeBase.d.ts","sourceRoot":"","sources":["../../src/scope/ScopeBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScopeBase.d.ts","sourceRoot":"","sources":["../../src/scope/ScopeBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js b/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js index d62fec586f..41086fc019 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js @@ -1,18 +1,16 @@ "use strict"; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - privateMap.set(receiver, value); - return value; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; }; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _declaredVariables, _dynamic, _staticCloseRef, _dynamicCloseRef, _globalCloseRef; +var _ScopeBase_declaredVariables, _ScopeBase_dynamic, _ScopeBase_staticCloseRef, _ScopeBase_dynamicCloseRef, _ScopeBase_globalCloseRef; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScopeBase = void 0; const types_1 = require("@typescript-eslint/types"); @@ -79,20 +77,18 @@ function isStrictScope(scope, block, isMethodDefinition) { if (stmt.type !== types_1.AST_NODE_TYPES.ExpressionStatement) { break; } + if (stmt.directive === 'use strict') { + return true; + } const expr = stmt.expression; - if (expr.type !== types_1.AST_NODE_TYPES.Literal || - typeof expr.value !== 'string') { + if (expr.type !== types_1.AST_NODE_TYPES.Literal) { break; } - if (expr.raw !== null && expr.raw !== undefined) { - if (expr.raw === '"use strict"' || expr.raw === "'use strict'") { - return true; - } + if (expr.raw === '"use strict"' || expr.raw === "'use strict'") { + return true; } - else { - if (expr.value === 'use strict') { - return true; - } + if (expr.value === 'use strict') { + return true; } } return false; @@ -132,14 +128,14 @@ class ScopeBase { * A map of the variables for each node in this scope. * This is map is a pointer to the one in the parent ScopeManager instance */ - _declaredVariables.set(this, void 0); + _ScopeBase_declaredVariables.set(this, void 0); /** * Generally, through the lexical scoping of JS you can always know which variable an identifier in the source code * refers to. There are a few exceptions to this rule. With `global` and `with` scopes you can only decide at runtime * which variable a reference refers to. * All those scopes are considered "dynamic". */ - _dynamic.set(this, void 0); + _ScopeBase_dynamic.set(this, void 0); /** * Whether this scope is created by a FunctionExpression. * @public @@ -176,7 +172,7 @@ class ScopeBase { * @public */ this.variables = []; - _staticCloseRef.set(this, (ref) => { + _ScopeBase_staticCloseRef.set(this, (ref) => { const resolve = () => { const name = ref.identifier.name; const variable = this.set.get(name); @@ -200,7 +196,7 @@ class ScopeBase { this.delegateToUpperScope(ref); } }); - _dynamicCloseRef.set(this, (ref) => { + _ScopeBase_dynamicCloseRef.set(this, (ref) => { // notify all names are through to global let current = this; do { @@ -208,19 +204,19 @@ class ScopeBase { current = current.upper; } while (current); }); - _globalCloseRef.set(this, (ref, scopeManager) => { + _ScopeBase_globalCloseRef.set(this, (ref, scopeManager) => { // let/const/class declarations should be resolved statically. // others should be resolved dynamically. if (this.shouldStaticallyCloseForGlobal(ref, scopeManager)) { - __classPrivateFieldGet(this, _staticCloseRef).call(this, ref); + __classPrivateFieldGet(this, _ScopeBase_staticCloseRef, "f").call(this, ref); } else { - __classPrivateFieldGet(this, _dynamicCloseRef).call(this, ref); + __classPrivateFieldGet(this, _ScopeBase_dynamicCloseRef, "f").call(this, ref); } }); const upperScopeAsScopeBase = upperScope; this.type = type; - __classPrivateFieldSet(this, _dynamic, this.type === ScopeType_1.ScopeType.global || this.type === ScopeType_1.ScopeType.with); + __classPrivateFieldSet(this, _ScopeBase_dynamic, this.type === ScopeType_1.ScopeType.global || this.type === ScopeType_1.ScopeType.with, "f"); this.block = block; this.variableScope = this.isVariableScope() ? this @@ -235,14 +231,14 @@ class ScopeBase { // this is guaranteed to be correct at runtime upperScopeAsScopeBase.childScopes.push(this); } - __classPrivateFieldSet(this, _declaredVariables, scopeManager.declaredVariables); + __classPrivateFieldSet(this, _ScopeBase_declaredVariables, scopeManager.declaredVariables, "f"); registerScope(scopeManager, this); } isVariableScope() { return VARIABLE_SCOPE_TYPES.has(this.type); } shouldStaticallyClose() { - return !__classPrivateFieldGet(this, _dynamic); + return !__classPrivateFieldGet(this, _ScopeBase_dynamic, "f"); } shouldStaticallyCloseForGlobal(ref, scopeManager) { // On global scope, let/const/class declarations should be resolved statically. @@ -275,13 +271,13 @@ class ScopeBase { close(scopeManager) { let closeRef; if (this.shouldStaticallyClose()) { - closeRef = __classPrivateFieldGet(this, _staticCloseRef); + closeRef = __classPrivateFieldGet(this, _ScopeBase_staticCloseRef, "f"); } else if (this.type !== 'global') { - closeRef = __classPrivateFieldGet(this, _dynamicCloseRef); + closeRef = __classPrivateFieldGet(this, _ScopeBase_dynamicCloseRef, "f"); } else { - closeRef = __classPrivateFieldGet(this, _globalCloseRef); + closeRef = __classPrivateFieldGet(this, _ScopeBase_globalCloseRef, "f"); } // Try Resolving all references in this scope. assert_1.assert(this.leftToResolve); @@ -310,10 +306,10 @@ class ScopeBase { if (node == null) { return; } - let variables = __classPrivateFieldGet(this, _declaredVariables).get(node); + let variables = __classPrivateFieldGet(this, _ScopeBase_declaredVariables, "f").get(node); if (variables == null) { variables = []; - __classPrivateFieldGet(this, _declaredVariables).set(node, variables); + __classPrivateFieldGet(this, _ScopeBase_declaredVariables, "f").set(node, variables); } if (!variables.includes(variable)) { variables.push(variable); @@ -365,5 +361,5 @@ class ScopeBase { } } exports.ScopeBase = ScopeBase; -_declaredVariables = new WeakMap(), _dynamic = new WeakMap(), _staticCloseRef = new WeakMap(), _dynamicCloseRef = new WeakMap(), _globalCloseRef = new WeakMap(); +_ScopeBase_declaredVariables = new WeakMap(), _ScopeBase_dynamic = new WeakMap(), _ScopeBase_staticCloseRef = new WeakMap(), _ScopeBase_dynamicCloseRef = new WeakMap(), _ScopeBase_globalCloseRef = new WeakMap(); //# sourceMappingURL=ScopeBase.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js.map b/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js.map index 5adba46a8d..f3abc43a02 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/scope/ScopeBase.js.map @@ -1 +1 @@ -{"version":3,"file":"ScopeBase.js","sourceRoot":"","sources":["../../src/scope/ScopeBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ScopeBase.js","sourceRoot":"","sources":["../../src/scope/ScopeBase.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts index 9622d1766a..94e92fabdb 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts +++ b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts @@ -5,7 +5,6 @@ interface ImplicitLibVariableOptions { readonly eslintImplicitGlobalSetting?: ESLintScopeVariable['eslintImplicitGlobalSetting']; readonly isTypeVariable?: boolean; readonly isValueVariable?: boolean; - readonly name: string; readonly writeable?: boolean; } /** @@ -20,7 +19,7 @@ declare class ImplicitLibVariable extends ESLintScopeVariable implements Variabl * `true` if the variable is valid in a value context, false otherwise */ readonly isValueVariable: boolean; - constructor(scope: Scope, { isTypeVariable, isValueVariable, name, writeable, eslintImplicitGlobalSetting, }: ImplicitLibVariableOptions); + constructor(scope: Scope, name: string, { isTypeVariable, isValueVariable, writeable, eslintImplicitGlobalSetting, }: ImplicitLibVariableOptions); } export { ImplicitLibVariable, ImplicitLibVariableOptions }; //# sourceMappingURL=ImplicitLibVariable.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts.map b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts.map index a9bc0c5960..98a385f065 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ImplicitLibVariable.d.ts","sourceRoot":"","sources":["../../src/variable/ImplicitLibVariable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,UAAU,0BAA0B;IAClC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;IAC1F,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,cAAM,mBAAoB,SAAQ,mBAAoB,YAAW,QAAQ;IACvE;;OAEG;IACH,SAAgB,cAAc,EAAE,OAAO,CAAC;IAExC;;OAEG;IACH,SAAgB,eAAe,EAAE,OAAO,CAAC;gBAGvC,KAAK,EAAE,KAAK,EACZ,EACE,cAAc,EACd,eAAe,EACf,IAAI,EACJ,SAAS,EACT,2BAA2B,GAC5B,EAAE,0BAA0B;CAShC;AAED,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"ImplicitLibVariable.d.ts","sourceRoot":"","sources":["../../src/variable/ImplicitLibVariable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,UAAU,0BAA0B;IAClC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;IAC1F,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,cAAM,mBAAoB,SAAQ,mBAAoB,YAAW,QAAQ;IACvE;;OAEG;IACH,SAAgB,cAAc,EAAE,OAAO,CAAC;IAExC;;OAEG;IACH,SAAgB,eAAe,EAAE,OAAO,CAAC;gBAGvC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,EACE,cAAc,EACd,eAAe,EACf,SAAS,EACT,2BAA2B,GAC5B,EAAE,0BAA0B;CAShC;AAED,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js index 2f0a9e3d01..745a6aff33 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js +++ b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js @@ -6,12 +6,13 @@ const ESLintScopeVariable_1 = require("./ESLintScopeVariable"); * An variable implicitly defined by the TS Lib */ class ImplicitLibVariable extends ESLintScopeVariable_1.ESLintScopeVariable { - constructor(scope, { isTypeVariable, isValueVariable, name, writeable, eslintImplicitGlobalSetting, }) { + constructor(scope, name, { isTypeVariable, isValueVariable, writeable, eslintImplicitGlobalSetting, }) { super(name, scope); this.isTypeVariable = isTypeVariable !== null && isTypeVariable !== void 0 ? isTypeVariable : false; this.isValueVariable = isValueVariable !== null && isValueVariable !== void 0 ? isValueVariable : false; this.writeable = writeable !== null && writeable !== void 0 ? writeable : false; - this.eslintImplicitGlobalSetting = eslintImplicitGlobalSetting !== null && eslintImplicitGlobalSetting !== void 0 ? eslintImplicitGlobalSetting : 'readonly'; + this.eslintImplicitGlobalSetting = + eslintImplicitGlobalSetting !== null && eslintImplicitGlobalSetting !== void 0 ? eslintImplicitGlobalSetting : 'readonly'; } } exports.ImplicitLibVariable = ImplicitLibVariable; diff --git a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js.map b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js.map index 7e62cbee25..600a3dedb9 100644 --- a/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js.map +++ b/node_modules/@typescript-eslint/scope-manager/dist/variable/ImplicitLibVariable.js.map @@ -1 +1 @@ -{"version":3,"file":"ImplicitLibVariable.js","sourceRoot":"","sources":["../../src/variable/ImplicitLibVariable.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAY5D;;GAEG;AACH,MAAM,mBAAoB,SAAQ,yCAAmB;IAWnD,YACE,KAAY,EACZ,EACE,cAAc,EACd,eAAe,EACf,IAAI,EACJ,SAAS,EACT,2BAA2B,GACA;QAE7B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,KAAK,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,CAAC;QACpC,IAAI,CAAC,2BAA2B,GAC9B,2BAA2B,aAA3B,2BAA2B,cAA3B,2BAA2B,GAAI,UAAU,CAAC;IAC9C,CAAC;CACF;AAEQ,kDAAmB"} \ No newline at end of file +{"version":3,"file":"ImplicitLibVariable.js","sourceRoot":"","sources":["../../src/variable/ImplicitLibVariable.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAW5D;;GAEG;AACH,MAAM,mBAAoB,SAAQ,yCAAmB;IAWnD,YACE,KAAY,EACZ,IAAY,EACZ,EACE,cAAc,EACd,eAAe,EACf,SAAS,EACT,2BAA2B,GACA;QAE7B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,KAAK,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,CAAC;QACpC,IAAI,CAAC,2BAA2B;YAC9B,2BAA2B,aAA3B,2BAA2B,cAA3B,2BAA2B,GAAI,UAAU,CAAC;IAC9C,CAAC;CACF;AAEQ,kDAAmB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/scope-manager/package.json b/node_modules/@typescript-eslint/scope-manager/package.json index 8af22e7721..0cba1a5c6d 100644 --- a/node_modules/@typescript-eslint/scope-manager/package.json +++ b/node_modules/@typescript-eslint/scope-manager/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/scope-manager", - "version": "4.1.0", + "version": "4.28.5", "description": "TypeScript scope analyser for ESLint", "keywords": [ "eslint", @@ -31,7 +31,7 @@ "build": "tsc -b tsconfig.build.json", "postbuild": "downlevel-dts dist _ts3.4/dist", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist", + "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "generate:lib": "../../node_modules/.bin/ts-node --files --transpile-only tools/generate-lib.ts", "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'", @@ -39,17 +39,17 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/visitor-keys": "4.1.0" + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/visitor-keys": "4.28.5" }, "devDependencies": { "@types/glob": "*", - "@typescript-eslint/typescript-estree": "4.1.0", + "@typescript-eslint/typescript-estree": "4.28.5", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", "prettier": "*", - "pretty-format": "^26.4.2", + "pretty-format": "*", "rimraf": "*", "typescript": "*" }, @@ -64,5 +64,5 @@ ] } }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/CHANGELOG.md b/node_modules/@typescript-eslint/types/CHANGELOG.md index 43d03464c1..9abe57bc44 100644 --- a/node_modules/@typescript-eslint/types/CHANGELOG.md +++ b/node_modules/@typescript-eslint/types/CHANGELOG.md @@ -3,6 +3,405 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + + +### Features + +* allow user to provide TS program instance in parser options ([#3484](https://github.com/typescript-eslint/typescript-eslint/issues/3484)) ([e855b18](https://github.com/typescript-eslint/typescript-eslint/commit/e855b18b8feee0edb5c617c11006861426a6f530)) + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + + +### Bug Fixes + +* generate library types for TypeScript v4.3 ([#3460](https://github.com/typescript-eslint/typescript-eslint/issues/3460)) ([ed4776a](https://github.com/typescript-eslint/typescript-eslint/commit/ed4776afa1374279027b9b7d82aa4b453b334998)), closes [#3449](https://github.com/typescript-eslint/typescript-eslint/issues/3449) + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Features + +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + + +### Bug Fixes + +* **typescript-estree:** [ts 4.2] add support for import type equal declaration ([#3189](https://github.com/typescript-eslint/typescript-eslint/issues/3189)) ([6a25faf](https://github.com/typescript-eslint/typescript-eslint/commit/6a25faf5cfa4d21a7546d9866819f4e017308fb2)) + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + + +### Features + +* TypeScript 4.2 syntax support ([#3112](https://github.com/typescript-eslint/typescript-eslint/issues/3112)) ([2ebfb21](https://github.com/typescript-eslint/typescript-eslint/commit/2ebfb21ba6c88c793cfbd0e231e5803b2381694c)) + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + + +### Bug Fixes + +* **typescript-estree:** correct issues in AST definition ([#3083](https://github.com/typescript-eslint/typescript-eslint/issues/3083)) ([509a117](https://github.com/typescript-eslint/typescript-eslint/commit/509a11749f85400a01e9fecfecd12871ce562d3d)) +* add missing intrinsic keyword node to AST ([#3081](https://github.com/typescript-eslint/typescript-eslint/issues/3081)) ([409bf0b](https://github.com/typescript-eslint/typescript-eslint/commit/409bf0bb3e2ac4d8782408d436ebdefb42dba38b)) + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + + +### Features + +* **eslint-plugin:** [no-unused-vars] fork the base rule ([#2768](https://github.com/typescript-eslint/typescript-eslint/issues/2768)) ([a8227a6](https://github.com/typescript-eslint/typescript-eslint/commit/a8227a6185dd24de4bfc7d766931643871155021)), closes [#2782](https://github.com/typescript-eslint/typescript-eslint/issues/2782) [#2714](https://github.com/typescript-eslint/typescript-eslint/issues/2714) [#2648](https://github.com/typescript-eslint/typescript-eslint/issues/2648) + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + + +### Features + +* support TS4.1 features ([#2748](https://github.com/typescript-eslint/typescript-eslint/issues/2748)) ([2be354b](https://github.com/typescript-eslint/typescript-eslint/commit/2be354bb15f9013a2da1b13a0c0836e9ef057e16)), closes [#2583](https://github.com/typescript-eslint/typescript-eslint/issues/2583) + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + + +### Features + +* **typescript-estree:** add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect ([#2669](https://github.com/typescript-eslint/typescript-eslint/issues/2669)) ([90a5878](https://github.com/typescript-eslint/typescript-eslint/commit/90a587845088da1b205e4d7d77dbc3f9447b1c5a)) + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + +**Note:** Version bump only for package @typescript-eslint/types + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + + +### Bug Fixes + +* **types:** artificial fix needed to trigger release ([b577daf](https://github.com/typescript-eslint/typescript-eslint/commit/b577daf27cd87870b6e095e4e995519f96d321dd)) + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) diff --git a/node_modules/@typescript-eslint/types/dist/ast-node-types.d.ts b/node_modules/@typescript-eslint/types/dist/ast-node-types.d.ts deleted file mode 100644 index d3338c8cbd..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-node-types.d.ts +++ /dev/null @@ -1,165 +0,0 @@ -declare enum AST_NODE_TYPES { - ArrayExpression = "ArrayExpression", - ArrayPattern = "ArrayPattern", - ArrowFunctionExpression = "ArrowFunctionExpression", - AssignmentExpression = "AssignmentExpression", - AssignmentPattern = "AssignmentPattern", - AwaitExpression = "AwaitExpression", - BinaryExpression = "BinaryExpression", - BlockStatement = "BlockStatement", - BreakStatement = "BreakStatement", - CallExpression = "CallExpression", - CatchClause = "CatchClause", - ChainExpression = "ChainExpression", - ClassBody = "ClassBody", - ClassDeclaration = "ClassDeclaration", - ClassExpression = "ClassExpression", - ClassProperty = "ClassProperty", - ConditionalExpression = "ConditionalExpression", - ContinueStatement = "ContinueStatement", - DebuggerStatement = "DebuggerStatement", - Decorator = "Decorator", - DoWhileStatement = "DoWhileStatement", - EmptyStatement = "EmptyStatement", - ExportAllDeclaration = "ExportAllDeclaration", - ExportDefaultDeclaration = "ExportDefaultDeclaration", - ExportNamedDeclaration = "ExportNamedDeclaration", - ExportSpecifier = "ExportSpecifier", - ExpressionStatement = "ExpressionStatement", - ForInStatement = "ForInStatement", - ForOfStatement = "ForOfStatement", - ForStatement = "ForStatement", - FunctionDeclaration = "FunctionDeclaration", - FunctionExpression = "FunctionExpression", - Identifier = "Identifier", - IfStatement = "IfStatement", - ImportDeclaration = "ImportDeclaration", - ImportDefaultSpecifier = "ImportDefaultSpecifier", - ImportExpression = "ImportExpression", - ImportNamespaceSpecifier = "ImportNamespaceSpecifier", - ImportSpecifier = "ImportSpecifier", - JSXAttribute = "JSXAttribute", - JSXClosingElement = "JSXClosingElement", - JSXClosingFragment = "JSXClosingFragment", - JSXElement = "JSXElement", - JSXEmptyExpression = "JSXEmptyExpression", - JSXExpressionContainer = "JSXExpressionContainer", - JSXFragment = "JSXFragment", - JSXIdentifier = "JSXIdentifier", - JSXMemberExpression = "JSXMemberExpression", - JSXOpeningElement = "JSXOpeningElement", - JSXOpeningFragment = "JSXOpeningFragment", - JSXSpreadAttribute = "JSXSpreadAttribute", - JSXSpreadChild = "JSXSpreadChild", - JSXText = "JSXText", - LabeledStatement = "LabeledStatement", - Literal = "Literal", - 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", - /** - * TS-prefixed nodes - */ - TSAbstractClassProperty = "TSAbstractClassProperty", - TSAbstractKeyword = "TSAbstractKeyword", - TSAbstractMethodDefinition = "TSAbstractMethodDefinition", - TSAnyKeyword = "TSAnyKeyword", - TSArrayType = "TSArrayType", - TSAsExpression = "TSAsExpression", - TSAsyncKeyword = "TSAsyncKeyword", - TSBigIntKeyword = "TSBigIntKeyword", - TSBooleanKeyword = "TSBooleanKeyword", - TSCallSignatureDeclaration = "TSCallSignatureDeclaration", - TSClassImplements = "TSClassImplements", - TSConditionalType = "TSConditionalType", - TSConstructorType = "TSConstructorType", - TSConstructSignatureDeclaration = "TSConstructSignatureDeclaration", - TSDeclareFunction = "TSDeclareFunction", - TSDeclareKeyword = "TSDeclareKeyword", - TSEmptyBodyFunctionExpression = "TSEmptyBodyFunctionExpression", - TSEnumDeclaration = "TSEnumDeclaration", - TSEnumMember = "TSEnumMember", - TSExportAssignment = "TSExportAssignment", - TSExportKeyword = "TSExportKeyword", - TSExternalModuleReference = "TSExternalModuleReference", - TSFunctionType = "TSFunctionType", - TSImportEqualsDeclaration = "TSImportEqualsDeclaration", - TSImportType = "TSImportType", - TSIndexedAccessType = "TSIndexedAccessType", - TSIndexSignature = "TSIndexSignature", - TSInferType = "TSInferType", - TSInterfaceBody = "TSInterfaceBody", - TSInterfaceDeclaration = "TSInterfaceDeclaration", - TSInterfaceHeritage = "TSInterfaceHeritage", - TSIntersectionType = "TSIntersectionType", - TSLiteralType = "TSLiteralType", - TSMappedType = "TSMappedType", - TSMethodSignature = "TSMethodSignature", - TSModuleBlock = "TSModuleBlock", - TSModuleDeclaration = "TSModuleDeclaration", - TSNamedTupleMember = "TSNamedTupleMember", - TSNamespaceExportDeclaration = "TSNamespaceExportDeclaration", - TSNeverKeyword = "TSNeverKeyword", - TSNonNullExpression = "TSNonNullExpression", - TSNullKeyword = "TSNullKeyword", - TSNumberKeyword = "TSNumberKeyword", - TSObjectKeyword = "TSObjectKeyword", - TSOptionalType = "TSOptionalType", - TSParameterProperty = "TSParameterProperty", - TSParenthesizedType = "TSParenthesizedType", - TSPrivateKeyword = "TSPrivateKeyword", - TSPropertySignature = "TSPropertySignature", - TSProtectedKeyword = "TSProtectedKeyword", - TSPublicKeyword = "TSPublicKeyword", - TSQualifiedName = "TSQualifiedName", - TSReadonlyKeyword = "TSReadonlyKeyword", - TSRestType = "TSRestType", - TSStaticKeyword = "TSStaticKeyword", - TSStringKeyword = "TSStringKeyword", - TSSymbolKeyword = "TSSymbolKeyword", - TSThisType = "TSThisType", - TSTupleType = "TSTupleType", - TSTypeAliasDeclaration = "TSTypeAliasDeclaration", - TSTypeAnnotation = "TSTypeAnnotation", - TSTypeAssertion = "TSTypeAssertion", - TSTypeLiteral = "TSTypeLiteral", - TSTypeOperator = "TSTypeOperator", - TSTypeParameter = "TSTypeParameter", - TSTypeParameterDeclaration = "TSTypeParameterDeclaration", - TSTypeParameterInstantiation = "TSTypeParameterInstantiation", - TSTypePredicate = "TSTypePredicate", - TSTypeQuery = "TSTypeQuery", - TSTypeReference = "TSTypeReference", - TSUndefinedKeyword = "TSUndefinedKeyword", - TSUnionType = "TSUnionType", - TSUnknownKeyword = "TSUnknownKeyword", - TSVoidKeyword = "TSVoidKeyword" -} -export { AST_NODE_TYPES }; -//# sourceMappingURL=ast-node-types.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-node-types.d.ts.map b/node_modules/@typescript-eslint/types/dist/ast-node-types.d.ts.map deleted file mode 100644 index f9db685e78..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-node-types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ast-node-types.d.ts","sourceRoot":"","sources":["../src/ast-node-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-node-types.js b/node_modules/@typescript-eslint/types/dist/ast-node-types.js deleted file mode 100644 index 7345e80be4..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-node-types.js +++ /dev/null @@ -1,169 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AST_NODE_TYPES = void 0; -var AST_NODE_TYPES; -(function (AST_NODE_TYPES) { - AST_NODE_TYPES["ArrayExpression"] = "ArrayExpression"; - AST_NODE_TYPES["ArrayPattern"] = "ArrayPattern"; - AST_NODE_TYPES["ArrowFunctionExpression"] = "ArrowFunctionExpression"; - AST_NODE_TYPES["AssignmentExpression"] = "AssignmentExpression"; - AST_NODE_TYPES["AssignmentPattern"] = "AssignmentPattern"; - AST_NODE_TYPES["AwaitExpression"] = "AwaitExpression"; - AST_NODE_TYPES["BinaryExpression"] = "BinaryExpression"; - AST_NODE_TYPES["BlockStatement"] = "BlockStatement"; - AST_NODE_TYPES["BreakStatement"] = "BreakStatement"; - AST_NODE_TYPES["CallExpression"] = "CallExpression"; - AST_NODE_TYPES["CatchClause"] = "CatchClause"; - AST_NODE_TYPES["ChainExpression"] = "ChainExpression"; - AST_NODE_TYPES["ClassBody"] = "ClassBody"; - AST_NODE_TYPES["ClassDeclaration"] = "ClassDeclaration"; - AST_NODE_TYPES["ClassExpression"] = "ClassExpression"; - AST_NODE_TYPES["ClassProperty"] = "ClassProperty"; - AST_NODE_TYPES["ConditionalExpression"] = "ConditionalExpression"; - AST_NODE_TYPES["ContinueStatement"] = "ContinueStatement"; - AST_NODE_TYPES["DebuggerStatement"] = "DebuggerStatement"; - AST_NODE_TYPES["Decorator"] = "Decorator"; - AST_NODE_TYPES["DoWhileStatement"] = "DoWhileStatement"; - AST_NODE_TYPES["EmptyStatement"] = "EmptyStatement"; - AST_NODE_TYPES["ExportAllDeclaration"] = "ExportAllDeclaration"; - AST_NODE_TYPES["ExportDefaultDeclaration"] = "ExportDefaultDeclaration"; - AST_NODE_TYPES["ExportNamedDeclaration"] = "ExportNamedDeclaration"; - AST_NODE_TYPES["ExportSpecifier"] = "ExportSpecifier"; - AST_NODE_TYPES["ExpressionStatement"] = "ExpressionStatement"; - AST_NODE_TYPES["ForInStatement"] = "ForInStatement"; - AST_NODE_TYPES["ForOfStatement"] = "ForOfStatement"; - AST_NODE_TYPES["ForStatement"] = "ForStatement"; - AST_NODE_TYPES["FunctionDeclaration"] = "FunctionDeclaration"; - AST_NODE_TYPES["FunctionExpression"] = "FunctionExpression"; - AST_NODE_TYPES["Identifier"] = "Identifier"; - AST_NODE_TYPES["IfStatement"] = "IfStatement"; - AST_NODE_TYPES["ImportDeclaration"] = "ImportDeclaration"; - AST_NODE_TYPES["ImportDefaultSpecifier"] = "ImportDefaultSpecifier"; - AST_NODE_TYPES["ImportExpression"] = "ImportExpression"; - AST_NODE_TYPES["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier"; - AST_NODE_TYPES["ImportSpecifier"] = "ImportSpecifier"; - AST_NODE_TYPES["JSXAttribute"] = "JSXAttribute"; - AST_NODE_TYPES["JSXClosingElement"] = "JSXClosingElement"; - AST_NODE_TYPES["JSXClosingFragment"] = "JSXClosingFragment"; - AST_NODE_TYPES["JSXElement"] = "JSXElement"; - AST_NODE_TYPES["JSXEmptyExpression"] = "JSXEmptyExpression"; - AST_NODE_TYPES["JSXExpressionContainer"] = "JSXExpressionContainer"; - AST_NODE_TYPES["JSXFragment"] = "JSXFragment"; - AST_NODE_TYPES["JSXIdentifier"] = "JSXIdentifier"; - AST_NODE_TYPES["JSXMemberExpression"] = "JSXMemberExpression"; - AST_NODE_TYPES["JSXOpeningElement"] = "JSXOpeningElement"; - AST_NODE_TYPES["JSXOpeningFragment"] = "JSXOpeningFragment"; - AST_NODE_TYPES["JSXSpreadAttribute"] = "JSXSpreadAttribute"; - AST_NODE_TYPES["JSXSpreadChild"] = "JSXSpreadChild"; - AST_NODE_TYPES["JSXText"] = "JSXText"; - AST_NODE_TYPES["LabeledStatement"] = "LabeledStatement"; - AST_NODE_TYPES["Literal"] = "Literal"; - AST_NODE_TYPES["LogicalExpression"] = "LogicalExpression"; - AST_NODE_TYPES["MemberExpression"] = "MemberExpression"; - AST_NODE_TYPES["MetaProperty"] = "MetaProperty"; - AST_NODE_TYPES["MethodDefinition"] = "MethodDefinition"; - AST_NODE_TYPES["NewExpression"] = "NewExpression"; - AST_NODE_TYPES["ObjectExpression"] = "ObjectExpression"; - AST_NODE_TYPES["ObjectPattern"] = "ObjectPattern"; - AST_NODE_TYPES["Program"] = "Program"; - AST_NODE_TYPES["Property"] = "Property"; - AST_NODE_TYPES["RestElement"] = "RestElement"; - AST_NODE_TYPES["ReturnStatement"] = "ReturnStatement"; - AST_NODE_TYPES["SequenceExpression"] = "SequenceExpression"; - AST_NODE_TYPES["SpreadElement"] = "SpreadElement"; - AST_NODE_TYPES["Super"] = "Super"; - AST_NODE_TYPES["SwitchCase"] = "SwitchCase"; - AST_NODE_TYPES["SwitchStatement"] = "SwitchStatement"; - AST_NODE_TYPES["TaggedTemplateExpression"] = "TaggedTemplateExpression"; - AST_NODE_TYPES["TemplateElement"] = "TemplateElement"; - AST_NODE_TYPES["TemplateLiteral"] = "TemplateLiteral"; - AST_NODE_TYPES["ThisExpression"] = "ThisExpression"; - AST_NODE_TYPES["ThrowStatement"] = "ThrowStatement"; - AST_NODE_TYPES["TryStatement"] = "TryStatement"; - AST_NODE_TYPES["UnaryExpression"] = "UnaryExpression"; - AST_NODE_TYPES["UpdateExpression"] = "UpdateExpression"; - AST_NODE_TYPES["VariableDeclaration"] = "VariableDeclaration"; - AST_NODE_TYPES["VariableDeclarator"] = "VariableDeclarator"; - AST_NODE_TYPES["WhileStatement"] = "WhileStatement"; - AST_NODE_TYPES["WithStatement"] = "WithStatement"; - AST_NODE_TYPES["YieldExpression"] = "YieldExpression"; - /** - * TS-prefixed nodes - */ - AST_NODE_TYPES["TSAbstractClassProperty"] = "TSAbstractClassProperty"; - AST_NODE_TYPES["TSAbstractKeyword"] = "TSAbstractKeyword"; - AST_NODE_TYPES["TSAbstractMethodDefinition"] = "TSAbstractMethodDefinition"; - AST_NODE_TYPES["TSAnyKeyword"] = "TSAnyKeyword"; - AST_NODE_TYPES["TSArrayType"] = "TSArrayType"; - AST_NODE_TYPES["TSAsExpression"] = "TSAsExpression"; - AST_NODE_TYPES["TSAsyncKeyword"] = "TSAsyncKeyword"; - AST_NODE_TYPES["TSBigIntKeyword"] = "TSBigIntKeyword"; - AST_NODE_TYPES["TSBooleanKeyword"] = "TSBooleanKeyword"; - AST_NODE_TYPES["TSCallSignatureDeclaration"] = "TSCallSignatureDeclaration"; - AST_NODE_TYPES["TSClassImplements"] = "TSClassImplements"; - AST_NODE_TYPES["TSConditionalType"] = "TSConditionalType"; - AST_NODE_TYPES["TSConstructorType"] = "TSConstructorType"; - AST_NODE_TYPES["TSConstructSignatureDeclaration"] = "TSConstructSignatureDeclaration"; - AST_NODE_TYPES["TSDeclareFunction"] = "TSDeclareFunction"; - AST_NODE_TYPES["TSDeclareKeyword"] = "TSDeclareKeyword"; - AST_NODE_TYPES["TSEmptyBodyFunctionExpression"] = "TSEmptyBodyFunctionExpression"; - AST_NODE_TYPES["TSEnumDeclaration"] = "TSEnumDeclaration"; - AST_NODE_TYPES["TSEnumMember"] = "TSEnumMember"; - AST_NODE_TYPES["TSExportAssignment"] = "TSExportAssignment"; - AST_NODE_TYPES["TSExportKeyword"] = "TSExportKeyword"; - AST_NODE_TYPES["TSExternalModuleReference"] = "TSExternalModuleReference"; - AST_NODE_TYPES["TSFunctionType"] = "TSFunctionType"; - AST_NODE_TYPES["TSImportEqualsDeclaration"] = "TSImportEqualsDeclaration"; - AST_NODE_TYPES["TSImportType"] = "TSImportType"; - AST_NODE_TYPES["TSIndexedAccessType"] = "TSIndexedAccessType"; - AST_NODE_TYPES["TSIndexSignature"] = "TSIndexSignature"; - AST_NODE_TYPES["TSInferType"] = "TSInferType"; - AST_NODE_TYPES["TSInterfaceBody"] = "TSInterfaceBody"; - AST_NODE_TYPES["TSInterfaceDeclaration"] = "TSInterfaceDeclaration"; - AST_NODE_TYPES["TSInterfaceHeritage"] = "TSInterfaceHeritage"; - AST_NODE_TYPES["TSIntersectionType"] = "TSIntersectionType"; - AST_NODE_TYPES["TSLiteralType"] = "TSLiteralType"; - AST_NODE_TYPES["TSMappedType"] = "TSMappedType"; - AST_NODE_TYPES["TSMethodSignature"] = "TSMethodSignature"; - AST_NODE_TYPES["TSModuleBlock"] = "TSModuleBlock"; - AST_NODE_TYPES["TSModuleDeclaration"] = "TSModuleDeclaration"; - AST_NODE_TYPES["TSNamedTupleMember"] = "TSNamedTupleMember"; - AST_NODE_TYPES["TSNamespaceExportDeclaration"] = "TSNamespaceExportDeclaration"; - AST_NODE_TYPES["TSNeverKeyword"] = "TSNeverKeyword"; - AST_NODE_TYPES["TSNonNullExpression"] = "TSNonNullExpression"; - AST_NODE_TYPES["TSNullKeyword"] = "TSNullKeyword"; - AST_NODE_TYPES["TSNumberKeyword"] = "TSNumberKeyword"; - AST_NODE_TYPES["TSObjectKeyword"] = "TSObjectKeyword"; - AST_NODE_TYPES["TSOptionalType"] = "TSOptionalType"; - AST_NODE_TYPES["TSParameterProperty"] = "TSParameterProperty"; - AST_NODE_TYPES["TSParenthesizedType"] = "TSParenthesizedType"; - AST_NODE_TYPES["TSPrivateKeyword"] = "TSPrivateKeyword"; - AST_NODE_TYPES["TSPropertySignature"] = "TSPropertySignature"; - AST_NODE_TYPES["TSProtectedKeyword"] = "TSProtectedKeyword"; - AST_NODE_TYPES["TSPublicKeyword"] = "TSPublicKeyword"; - AST_NODE_TYPES["TSQualifiedName"] = "TSQualifiedName"; - AST_NODE_TYPES["TSReadonlyKeyword"] = "TSReadonlyKeyword"; - AST_NODE_TYPES["TSRestType"] = "TSRestType"; - AST_NODE_TYPES["TSStaticKeyword"] = "TSStaticKeyword"; - AST_NODE_TYPES["TSStringKeyword"] = "TSStringKeyword"; - AST_NODE_TYPES["TSSymbolKeyword"] = "TSSymbolKeyword"; - AST_NODE_TYPES["TSThisType"] = "TSThisType"; - AST_NODE_TYPES["TSTupleType"] = "TSTupleType"; - AST_NODE_TYPES["TSTypeAliasDeclaration"] = "TSTypeAliasDeclaration"; - AST_NODE_TYPES["TSTypeAnnotation"] = "TSTypeAnnotation"; - AST_NODE_TYPES["TSTypeAssertion"] = "TSTypeAssertion"; - AST_NODE_TYPES["TSTypeLiteral"] = "TSTypeLiteral"; - AST_NODE_TYPES["TSTypeOperator"] = "TSTypeOperator"; - AST_NODE_TYPES["TSTypeParameter"] = "TSTypeParameter"; - AST_NODE_TYPES["TSTypeParameterDeclaration"] = "TSTypeParameterDeclaration"; - AST_NODE_TYPES["TSTypeParameterInstantiation"] = "TSTypeParameterInstantiation"; - AST_NODE_TYPES["TSTypePredicate"] = "TSTypePredicate"; - AST_NODE_TYPES["TSTypeQuery"] = "TSTypeQuery"; - AST_NODE_TYPES["TSTypeReference"] = "TSTypeReference"; - AST_NODE_TYPES["TSUndefinedKeyword"] = "TSUndefinedKeyword"; - AST_NODE_TYPES["TSUnionType"] = "TSUnionType"; - AST_NODE_TYPES["TSUnknownKeyword"] = "TSUnknownKeyword"; - AST_NODE_TYPES["TSVoidKeyword"] = "TSVoidKeyword"; -})(AST_NODE_TYPES || (AST_NODE_TYPES = {})); -exports.AST_NODE_TYPES = AST_NODE_TYPES; -//# sourceMappingURL=ast-node-types.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-node-types.js.map b/node_modules/@typescript-eslint/types/dist/ast-node-types.js.map deleted file mode 100644 index 7d7ba41f6c..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-node-types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ast-node-types.js","sourceRoot":"","sources":["../src/ast-node-types.ts"],"names":[],"mappings":";;;AAAA,IAAK,cAkKJ;AAlKD,WAAK,cAAc;IACjB,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,qEAAmD,CAAA;IACnD,+DAA6C,CAAA;IAC7C,yDAAuC,CAAA;IACvC,qDAAmC,CAAA;IACnC,uDAAqC,CAAA;IACrC,mDAAiC,CAAA;IACjC,mDAAiC,CAAA;IACjC,mDAAiC,CAAA;IACjC,6CAA2B,CAAA;IAC3B,qDAAmC,CAAA;IACnC,yCAAuB,CAAA;IACvB,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,iDAA+B,CAAA;IAC/B,iEAA+C,CAAA;IAC/C,yDAAuC,CAAA;IACvC,yDAAuC,CAAA;IACvC,yCAAuB,CAAA;IACvB,uDAAqC,CAAA;IACrC,mDAAiC,CAAA;IACjC,+DAA6C,CAAA;IAC7C,uEAAqD,CAAA;IACrD,mEAAiD,CAAA;IACjD,qDAAmC,CAAA;IACnC,6DAA2C,CAAA;IAC3C,mDAAiC,CAAA;IACjC,mDAAiC,CAAA;IACjC,+CAA6B,CAAA;IAC7B,6DAA2C,CAAA;IAC3C,2DAAyC,CAAA;IACzC,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,yDAAuC,CAAA;IACvC,mEAAiD,CAAA;IACjD,uDAAqC,CAAA;IACrC,uEAAqD,CAAA;IACrD,qDAAmC,CAAA;IACnC,+CAA6B,CAAA;IAC7B,yDAAuC,CAAA;IACvC,2DAAyC,CAAA;IACzC,2CAAyB,CAAA;IACzB,2DAAyC,CAAA;IACzC,mEAAiD,CAAA;IACjD,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;IAC/B,6DAA2C,CAAA;IAC3C,yDAAuC,CAAA;IACvC,2DAAyC,CAAA;IACzC,2DAAyC,CAAA;IACzC,mDAAiC,CAAA;IACjC,qCAAmB,CAAA;IACnB,uDAAqC,CAAA;IACrC,qCAAmB,CAAA;IACnB,yDAAuC,CAAA;IACvC,uDAAqC,CAAA;IACrC,+CAA6B,CAAA;IAC7B,uDAAqC,CAAA;IACrC,iDAA+B,CAAA;IAC/B,uDAAqC,CAAA;IACrC,iDAA+B,CAAA;IAC/B,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,6CAA2B,CAAA;IAC3B,qDAAmC,CAAA;IACnC,2DAAyC,CAAA;IACzC,iDAA+B,CAAA;IAC/B,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,qDAAmC,CAAA;IACnC,uEAAqD,CAAA;IACrD,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,mDAAiC,CAAA;IACjC,mDAAiC,CAAA;IACjC,+CAA6B,CAAA;IAC7B,qDAAmC,CAAA;IACnC,uDAAqC,CAAA;IACrC,6DAA2C,CAAA;IAC3C,2DAAyC,CAAA;IACzC,mDAAiC,CAAA;IACjC,iDAA+B,CAAA;IAC/B,qDAAmC,CAAA;IACnC;;OAEG;IACH,qEAAmD,CAAA;IACnD,yDAAuC,CAAA;IACvC,2EAAyD,CAAA;IACzD,+CAA6B,CAAA;IAC7B,6CAA2B,CAAA;IAC3B,mDAAiC,CAAA;IACjC,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,uDAAqC,CAAA;IACrC,2EAAyD,CAAA;IACzD,yDAAuC,CAAA;IACvC,yDAAuC,CAAA;IACvC,yDAAuC,CAAA;IACvC,qFAAmE,CAAA;IACnE,yDAAuC,CAAA;IACvC,uDAAqC,CAAA;IACrC,iFAA+D,CAAA;IAC/D,yDAAuC,CAAA;IACvC,+CAA6B,CAAA;IAC7B,2DAAyC,CAAA;IACzC,qDAAmC,CAAA;IACnC,yEAAuD,CAAA;IACvD,mDAAiC,CAAA;IACjC,yEAAuD,CAAA;IACvD,+CAA6B,CAAA;IAC7B,6DAA2C,CAAA;IAC3C,uDAAqC,CAAA;IACrC,6CAA2B,CAAA;IAC3B,qDAAmC,CAAA;IACnC,mEAAiD,CAAA;IACjD,6DAA2C,CAAA;IAC3C,2DAAyC,CAAA;IACzC,iDAA+B,CAAA;IAC/B,+CAA6B,CAAA;IAC7B,yDAAuC,CAAA;IACvC,iDAA+B,CAAA;IAC/B,6DAA2C,CAAA;IAC3C,2DAAyC,CAAA;IACzC,+EAA6D,CAAA;IAC7D,mDAAiC,CAAA;IACjC,6DAA2C,CAAA;IAC3C,iDAA+B,CAAA;IAC/B,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,mDAAiC,CAAA;IACjC,6DAA2C,CAAA;IAC3C,6DAA2C,CAAA;IAC3C,uDAAqC,CAAA;IACrC,6DAA2C,CAAA;IAC3C,2DAAyC,CAAA;IACzC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,yDAAuC,CAAA;IACvC,2CAAyB,CAAA;IACzB,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,qDAAmC,CAAA;IACnC,2CAAyB,CAAA;IACzB,6CAA2B,CAAA;IAC3B,mEAAiD,CAAA;IACjD,uDAAqC,CAAA;IACrC,qDAAmC,CAAA;IACnC,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;IACjC,qDAAmC,CAAA;IACnC,2EAAyD,CAAA;IACzD,+EAA6D,CAAA;IAC7D,qDAAmC,CAAA;IACnC,6CAA2B,CAAA;IAC3B,qDAAmC,CAAA;IACnC,2DAAyC,CAAA;IACzC,6CAA2B,CAAA;IAC3B,uDAAqC,CAAA;IACrC,iDAA+B,CAAA;AACjC,CAAC,EAlKI,cAAc,KAAd,cAAc,QAkKlB;AAEQ,wCAAc"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-spec.d.ts b/node_modules/@typescript-eslint/types/dist/ast-spec.d.ts new file mode 100644 index 0000000000..2dbe7758e4 --- /dev/null +++ b/node_modules/@typescript-eslint/types/dist/ast-spec.d.ts @@ -0,0 +1,1341 @@ +/********************************************** + * DO NOT MODIFY THIS FILE MANUALLY * + * * + * THIS FILE HAS BEEN COPIED FROM ast-spec. * + * ANY CHANGES WILL BE LOST ON THE NEXT BUILD * + * * + * MAKE CHANGES TO ast-spec AND THEN RUN * + * yarn build * + **********************************************/ +import type { SyntaxKind } from 'typescript'; +export declare type Accessibility = 'private' | 'protected' | 'public'; +export declare interface ArrayExpression extends BaseNode { + type: AST_NODE_TYPES.ArrayExpression; + elements: Expression[]; +} +export declare interface ArrayPattern extends BaseNode { + type: AST_NODE_TYPES.ArrayPattern; + elements: (DestructuringPattern | null)[]; + typeAnnotation?: TSTypeAnnotation; + optional?: boolean; + decorators?: Decorator[]; +} +export declare interface ArrowFunctionExpression extends BaseNode { + type: AST_NODE_TYPES.ArrowFunctionExpression; + generator: boolean; + id: null; + params: Parameter[]; + body: BlockStatement | Expression; + async: boolean; + expression: boolean; + returnType?: TSTypeAnnotation; + typeParameters?: TSTypeParameterDeclaration; +} +export declare interface AssignmentExpression extends BinaryExpressionBase { + type: AST_NODE_TYPES.AssignmentExpression; + operator: '-=' | '??=' | '**=' | '*=' | '/=' | '&&=' | '&=' | '%=' | '^=' | '+=' | '<<=' | '=' | '>>=' | '>>>=' | '|=' | '||='; +} +export declare interface AssignmentPattern extends BaseNode { + type: AST_NODE_TYPES.AssignmentPattern; + left: BindingName; + right: Expression; + typeAnnotation?: TSTypeAnnotation; + optional?: boolean; + decorators?: Decorator[]; +} +export declare enum AST_NODE_TYPES { + ArrayExpression = "ArrayExpression", + ArrayPattern = "ArrayPattern", + ArrowFunctionExpression = "ArrowFunctionExpression", + AssignmentExpression = "AssignmentExpression", + AssignmentPattern = "AssignmentPattern", + AwaitExpression = "AwaitExpression", + BinaryExpression = "BinaryExpression", + BlockStatement = "BlockStatement", + BreakStatement = "BreakStatement", + CallExpression = "CallExpression", + CatchClause = "CatchClause", + ChainExpression = "ChainExpression", + ClassBody = "ClassBody", + ClassDeclaration = "ClassDeclaration", + ClassExpression = "ClassExpression", + ClassProperty = "ClassProperty", + ConditionalExpression = "ConditionalExpression", + ContinueStatement = "ContinueStatement", + DebuggerStatement = "DebuggerStatement", + Decorator = "Decorator", + DoWhileStatement = "DoWhileStatement", + EmptyStatement = "EmptyStatement", + ExportAllDeclaration = "ExportAllDeclaration", + ExportDefaultDeclaration = "ExportDefaultDeclaration", + ExportNamedDeclaration = "ExportNamedDeclaration", + ExportSpecifier = "ExportSpecifier", + ExpressionStatement = "ExpressionStatement", + ForInStatement = "ForInStatement", + ForOfStatement = "ForOfStatement", + ForStatement = "ForStatement", + FunctionDeclaration = "FunctionDeclaration", + FunctionExpression = "FunctionExpression", + Identifier = "Identifier", + IfStatement = "IfStatement", + ImportDeclaration = "ImportDeclaration", + ImportDefaultSpecifier = "ImportDefaultSpecifier", + ImportExpression = "ImportExpression", + ImportNamespaceSpecifier = "ImportNamespaceSpecifier", + ImportSpecifier = "ImportSpecifier", + JSXAttribute = "JSXAttribute", + JSXClosingElement = "JSXClosingElement", + JSXClosingFragment = "JSXClosingFragment", + JSXElement = "JSXElement", + JSXEmptyExpression = "JSXEmptyExpression", + JSXExpressionContainer = "JSXExpressionContainer", + JSXFragment = "JSXFragment", + JSXIdentifier = "JSXIdentifier", + JSXMemberExpression = "JSXMemberExpression", + JSXNamespacedName = "JSXNamespacedName", + JSXOpeningElement = "JSXOpeningElement", + JSXOpeningFragment = "JSXOpeningFragment", + JSXSpreadAttribute = "JSXSpreadAttribute", + JSXSpreadChild = "JSXSpreadChild", + JSXText = "JSXText", + LabeledStatement = "LabeledStatement", + Literal = "Literal", + 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", + /** + * TS-prefixed nodes + */ + TSAbstractClassProperty = "TSAbstractClassProperty", + TSAbstractKeyword = "TSAbstractKeyword", + TSAbstractMethodDefinition = "TSAbstractMethodDefinition", + TSAnyKeyword = "TSAnyKeyword", + TSArrayType = "TSArrayType", + TSAsExpression = "TSAsExpression", + TSAsyncKeyword = "TSAsyncKeyword", + TSBigIntKeyword = "TSBigIntKeyword", + TSBooleanKeyword = "TSBooleanKeyword", + TSCallSignatureDeclaration = "TSCallSignatureDeclaration", + TSClassImplements = "TSClassImplements", + TSConditionalType = "TSConditionalType", + TSConstructorType = "TSConstructorType", + TSConstructSignatureDeclaration = "TSConstructSignatureDeclaration", + TSDeclareFunction = "TSDeclareFunction", + TSDeclareKeyword = "TSDeclareKeyword", + TSEmptyBodyFunctionExpression = "TSEmptyBodyFunctionExpression", + TSEnumDeclaration = "TSEnumDeclaration", + TSEnumMember = "TSEnumMember", + TSExportAssignment = "TSExportAssignment", + TSExportKeyword = "TSExportKeyword", + TSExternalModuleReference = "TSExternalModuleReference", + TSFunctionType = "TSFunctionType", + TSImportEqualsDeclaration = "TSImportEqualsDeclaration", + TSImportType = "TSImportType", + TSIndexedAccessType = "TSIndexedAccessType", + TSIndexSignature = "TSIndexSignature", + TSInferType = "TSInferType", + TSInterfaceBody = "TSInterfaceBody", + TSInterfaceDeclaration = "TSInterfaceDeclaration", + TSInterfaceHeritage = "TSInterfaceHeritage", + TSIntersectionType = "TSIntersectionType", + TSIntrinsicKeyword = "TSIntrinsicKeyword", + TSLiteralType = "TSLiteralType", + TSMappedType = "TSMappedType", + TSMethodSignature = "TSMethodSignature", + TSModuleBlock = "TSModuleBlock", + TSModuleDeclaration = "TSModuleDeclaration", + TSNamedTupleMember = "TSNamedTupleMember", + TSNamespaceExportDeclaration = "TSNamespaceExportDeclaration", + TSNeverKeyword = "TSNeverKeyword", + TSNonNullExpression = "TSNonNullExpression", + TSNullKeyword = "TSNullKeyword", + TSNumberKeyword = "TSNumberKeyword", + TSObjectKeyword = "TSObjectKeyword", + TSOptionalType = "TSOptionalType", + TSParameterProperty = "TSParameterProperty", + TSParenthesizedType = "TSParenthesizedType", + TSPrivateKeyword = "TSPrivateKeyword", + TSPropertySignature = "TSPropertySignature", + TSProtectedKeyword = "TSProtectedKeyword", + TSPublicKeyword = "TSPublicKeyword", + TSQualifiedName = "TSQualifiedName", + TSReadonlyKeyword = "TSReadonlyKeyword", + TSRestType = "TSRestType", + TSStaticKeyword = "TSStaticKeyword", + TSStringKeyword = "TSStringKeyword", + TSSymbolKeyword = "TSSymbolKeyword", + TSTemplateLiteralType = "TSTemplateLiteralType", + TSThisType = "TSThisType", + TSTupleType = "TSTupleType", + TSTypeAliasDeclaration = "TSTypeAliasDeclaration", + TSTypeAnnotation = "TSTypeAnnotation", + TSTypeAssertion = "TSTypeAssertion", + TSTypeLiteral = "TSTypeLiteral", + TSTypeOperator = "TSTypeOperator", + TSTypeParameter = "TSTypeParameter", + TSTypeParameterDeclaration = "TSTypeParameterDeclaration", + TSTypeParameterInstantiation = "TSTypeParameterInstantiation", + TSTypePredicate = "TSTypePredicate", + TSTypeQuery = "TSTypeQuery", + TSTypeReference = "TSTypeReference", + TSUndefinedKeyword = "TSUndefinedKeyword", + TSUnionType = "TSUnionType", + TSUnknownKeyword = "TSUnknownKeyword", + TSVoidKeyword = "TSVoidKeyword" +} +export declare enum AST_TOKEN_TYPES { + Boolean = "Boolean", + Identifier = "Identifier", + JSXIdentifier = "JSXIdentifier", + JSXText = "JSXText", + Keyword = "Keyword", + Null = "Null", + Numeric = "Numeric", + Punctuator = "Punctuator", + RegularExpression = "RegularExpression", + String = "String", + Template = "Template", + Block = "Block", + Line = "Line" +} +export declare interface AwaitExpression extends BaseNode { + type: AST_NODE_TYPES.AwaitExpression; + argument: AwaitExpression | LeftHandSideExpression | UnaryExpression | UpdateExpression; +} +export declare interface BaseNode { + /** + * The source location information of the node. + * @see {SourceLocation} + */ + loc: SourceLocation; + /** + * @see {Range} + */ + range: Range; +} +declare interface BaseToken extends BaseNode { + value: string; +} +export declare interface BigIntLiteral extends LiteralBase { + type: AST_NODE_TYPES.Literal; + value: bigint | null; + bigint: string; +} +export declare interface BinaryExpression extends BinaryExpressionBase { + type: AST_NODE_TYPES.BinaryExpression; +} +declare interface BinaryExpressionBase extends BaseNode { + operator: string; + left: Expression; + right: Expression; +} +export declare type BindingName = BindingPattern | Identifier; +export declare type BindingPattern = ArrayPattern | ObjectPattern; +export declare interface BlockComment extends BaseToken { + type: AST_TOKEN_TYPES.Block; +} +export declare interface BlockStatement extends BaseNode { + type: AST_NODE_TYPES.BlockStatement; + body: Statement[]; +} +export declare interface BooleanLiteral extends LiteralBase { + type: AST_NODE_TYPES.Literal; + value: boolean; + raw: 'false' | 'true'; +} +export declare interface BooleanToken extends BaseToken { + type: AST_TOKEN_TYPES.Boolean; +} +export declare interface BreakStatement extends BaseNode { + type: AST_NODE_TYPES.BreakStatement; + label: Identifier | null; +} +export declare interface CallExpression extends BaseNode { + type: AST_NODE_TYPES.CallExpression; + callee: LeftHandSideExpression; + arguments: CallExpressionArgument[]; + typeParameters?: TSTypeParameterInstantiation; + optional: boolean; +} +export declare type CallExpressionArgument = Expression | SpreadElement; +export declare interface CatchClause extends BaseNode { + type: AST_NODE_TYPES.CatchClause; + param: BindingName | null; + body: BlockStatement; +} +export declare type ChainElement = CallExpression | MemberExpression | TSNonNullExpression; +export declare interface ChainExpression extends BaseNode { + type: AST_NODE_TYPES.ChainExpression; + expression: ChainElement; +} +export declare interface ClassBody extends BaseNode { + type: AST_NODE_TYPES.ClassBody; + body: ClassElement[]; +} +export declare interface ClassDeclaration extends ClassDeclarationBase { + type: AST_NODE_TYPES.ClassDeclaration; +} +declare interface ClassDeclarationBase extends BaseNode { + typeParameters?: TSTypeParameterDeclaration; + superTypeParameters?: TSTypeParameterInstantiation; + id: Identifier | null; + body: ClassBody; + superClass: LeftHandSideExpression | null; + implements?: TSClassImplements[]; + abstract?: boolean; + declare?: boolean; + decorators?: Decorator[]; +} +export declare type ClassElement = ClassProperty | MethodDefinition | TSAbstractClassProperty | TSAbstractMethodDefinition | TSIndexSignature; +export declare interface ClassExpression extends ClassDeclarationBase { + type: AST_NODE_TYPES.ClassExpression; +} +export declare type ClassProperty = ClassPropertyComputedName | ClassPropertyNonComputedName; +declare interface ClassPropertyBase extends BaseNode { + key: PropertyName; + value: Expression | null; + computed: boolean; + static: boolean; + declare: boolean; + readonly?: boolean; + decorators?: Decorator[]; + accessibility?: Accessibility; + optional?: boolean; + definite?: boolean; + typeAnnotation?: TSTypeAnnotation; + override?: boolean; +} +export declare interface ClassPropertyComputedName extends ClassPropertyComputedNameBase { + type: AST_NODE_TYPES.ClassProperty; +} +declare interface ClassPropertyComputedNameBase extends ClassPropertyBase { + key: PropertyNameComputed; + computed: true; +} +export declare interface ClassPropertyNonComputedName extends ClassPropertyNonComputedNameBase { + type: AST_NODE_TYPES.ClassProperty; +} +declare interface ClassPropertyNonComputedNameBase extends ClassPropertyBase { + key: PropertyNameNonComputed; + computed: false; +} +export declare type Comment = BlockComment | LineComment; +export declare interface ConditionalExpression extends BaseNode { + type: AST_NODE_TYPES.ConditionalExpression; + test: Expression; + consequent: Expression; + alternate: Expression; +} +export declare interface ContinueStatement extends BaseNode { + type: AST_NODE_TYPES.ContinueStatement; + label: Identifier | null; +} +export declare interface DebuggerStatement extends BaseNode { + type: AST_NODE_TYPES.DebuggerStatement; +} +export declare type DeclarationStatement = ClassDeclaration | ClassExpression | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | FunctionDeclaration | TSDeclareFunction | TSEnumDeclaration | TSImportEqualsDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSNamespaceExportDeclaration | TSTypeAliasDeclaration; +export declare interface Decorator extends BaseNode { + type: AST_NODE_TYPES.Decorator; + expression: LeftHandSideExpression; +} +export declare type DestructuringPattern = ArrayPattern | AssignmentPattern | Identifier | MemberExpression | ObjectPattern | RestElement; +export declare interface DoWhileStatement extends BaseNode { + type: AST_NODE_TYPES.DoWhileStatement; + test: Expression; + body: Statement; +} +export declare interface EmptyStatement extends BaseNode { + type: AST_NODE_TYPES.EmptyStatement; +} +export declare type EntityName = Identifier | TSQualifiedName; +export declare interface ExportAllDeclaration extends BaseNode { + type: AST_NODE_TYPES.ExportAllDeclaration; + source: Expression | null; + exportKind: 'type' | 'value'; + exported: Identifier | null; +} +export declare type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | TSDeclareFunction | TSEnumDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSTypeAliasDeclaration | VariableDeclaration; +export declare interface ExportDefaultDeclaration extends BaseNode { + type: AST_NODE_TYPES.ExportDefaultDeclaration; + declaration: ExportDeclaration | Expression; + exportKind: 'type' | 'value'; +} +export declare interface ExportNamedDeclaration extends BaseNode { + type: AST_NODE_TYPES.ExportNamedDeclaration; + declaration: ExportDeclaration | null; + specifiers: ExportSpecifier[]; + source: Expression | null; + exportKind: 'type' | 'value'; +} +export declare interface ExportSpecifier extends BaseNode { + type: AST_NODE_TYPES.ExportSpecifier; + local: Identifier; + exported: Identifier; +} +export declare type Expression = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AwaitExpression | BinaryExpression | CallExpression | ChainExpression | ClassExpression | ClassExpression | ConditionalExpression | FunctionExpression | FunctionExpression | Identifier | ImportExpression | JSXElement | JSXFragment | LiteralExpression | LogicalExpression | MemberExpression | MetaProperty | NewExpression | ObjectExpression | ObjectPattern | SequenceExpression | Super | TaggedTemplateExpression | TemplateLiteral | ThisExpression | TSAsExpression | TSNonNullExpression | TSTypeAssertion | UnaryExpression | UpdateExpression | YieldExpression; +export declare interface ExpressionStatement extends BaseNode { + type: AST_NODE_TYPES.ExpressionStatement; + expression: Expression; + directive?: string; +} +export declare type ForInitialiser = Expression | VariableDeclaration; +export declare interface ForInStatement extends BaseNode { + type: AST_NODE_TYPES.ForInStatement; + left: ForInitialiser; + right: Expression; + body: Statement; +} +export declare interface ForOfStatement extends BaseNode { + type: AST_NODE_TYPES.ForOfStatement; + left: ForInitialiser; + right: Expression; + body: Statement; + await: boolean; +} +export declare interface ForStatement extends BaseNode { + type: AST_NODE_TYPES.ForStatement; + init: Expression | ForInitialiser | null; + test: Expression | null; + update: Expression | null; + body: Statement; +} +export declare interface FunctionDeclaration extends FunctionDeclarationBase { + type: AST_NODE_TYPES.FunctionDeclaration; + body: BlockStatement; +} +declare interface FunctionDeclarationBase extends BaseNode { + id: Identifier | null; + generator: boolean; + expression: boolean; + async: boolean; + params: Parameter[]; + body?: BlockStatement | null; + returnType?: TSTypeAnnotation; + typeParameters?: TSTypeParameterDeclaration; + declare?: boolean; +} +export declare interface FunctionExpression extends FunctionDeclarationBase { + type: AST_NODE_TYPES.FunctionExpression; + body: BlockStatement; +} +export declare type FunctionLike = ArrowFunctionExpression | FunctionDeclaration | FunctionExpression | TSDeclareFunction | TSEmptyBodyFunctionExpression; +export declare interface Identifier extends BaseNode { + type: AST_NODE_TYPES.Identifier; + name: string; + typeAnnotation?: TSTypeAnnotation; + optional?: boolean; + decorators?: Decorator[]; +} +export declare interface IdentifierToken extends BaseToken { + type: AST_TOKEN_TYPES.Identifier; +} +export declare interface IfStatement extends BaseNode { + type: AST_NODE_TYPES.IfStatement; + test: Expression; + consequent: Statement; + alternate: Statement | null; +} +export declare type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier; +export declare interface ImportDeclaration extends BaseNode { + type: AST_NODE_TYPES.ImportDeclaration; + source: Literal; + specifiers: ImportClause[]; + importKind: 'type' | 'value'; +} +export declare interface ImportDefaultSpecifier extends BaseNode { + type: AST_NODE_TYPES.ImportDefaultSpecifier; + local: Identifier; +} +export declare interface ImportExpression extends BaseNode { + type: AST_NODE_TYPES.ImportExpression; + source: Expression; +} +export declare interface ImportNamespaceSpecifier extends BaseNode { + type: AST_NODE_TYPES.ImportNamespaceSpecifier; + local: Identifier; +} +export declare interface ImportSpecifier extends BaseNode { + type: AST_NODE_TYPES.ImportSpecifier; + local: Identifier; + imported: Identifier; +} +export declare type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement; +export declare interface JSXAttribute extends BaseNode { + type: AST_NODE_TYPES.JSXAttribute; + name: JSXIdentifier | JSXNamespacedName; + value: JSXExpression | Literal | null; +} +export declare type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText; +export declare interface JSXClosingElement extends BaseNode { + type: AST_NODE_TYPES.JSXClosingElement; + name: JSXTagNameExpression; +} +export declare interface JSXClosingFragment extends BaseNode { + type: AST_NODE_TYPES.JSXClosingFragment; +} +export declare interface JSXElement extends BaseNode { + type: AST_NODE_TYPES.JSXElement; + openingElement: JSXOpeningElement; + closingElement: JSXClosingElement | null; + children: JSXChild[]; +} +export declare interface JSXEmptyExpression extends BaseNode { + type: AST_NODE_TYPES.JSXEmptyExpression; +} +export declare type JSXExpression = JSXEmptyExpression | JSXExpressionContainer | JSXSpreadChild; +export declare interface JSXExpressionContainer extends BaseNode { + type: AST_NODE_TYPES.JSXExpressionContainer; + expression: Expression | JSXEmptyExpression; +} +export declare interface JSXFragment extends BaseNode { + type: AST_NODE_TYPES.JSXFragment; + openingFragment: JSXOpeningFragment; + closingFragment: JSXClosingFragment; + children: JSXChild[]; +} +export declare interface JSXIdentifier extends BaseNode { + type: AST_NODE_TYPES.JSXIdentifier; + name: string; +} +export declare interface JSXIdentifierToken extends BaseToken { + type: AST_TOKEN_TYPES.JSXIdentifier; +} +export declare interface JSXMemberExpression extends BaseNode { + type: AST_NODE_TYPES.JSXMemberExpression; + object: JSXTagNameExpression; + property: JSXIdentifier; +} +export declare interface JSXNamespacedName extends BaseNode { + type: AST_NODE_TYPES.JSXNamespacedName; + namespace: JSXIdentifier; + name: JSXIdentifier; +} +export declare interface JSXOpeningElement extends BaseNode { + type: AST_NODE_TYPES.JSXOpeningElement; + typeParameters?: TSTypeParameterInstantiation; + selfClosing: boolean; + name: JSXTagNameExpression; + attributes: (JSXAttribute | JSXSpreadAttribute)[]; +} +export declare interface JSXOpeningFragment extends BaseNode { + type: AST_NODE_TYPES.JSXOpeningFragment; +} +export declare interface JSXSpreadAttribute extends BaseNode { + type: AST_NODE_TYPES.JSXSpreadAttribute; + argument: Expression; +} +export declare interface JSXSpreadChild extends BaseNode { + type: AST_NODE_TYPES.JSXSpreadChild; + expression: Expression | JSXEmptyExpression; +} +export declare type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName; +export declare interface JSXText extends BaseNode { + type: AST_NODE_TYPES.JSXText; + value: string; + raw: string; +} +export declare interface JSXTextToken extends BaseToken { + type: AST_TOKEN_TYPES.JSXText; +} +export declare interface KeywordToken extends BaseToken { + type: AST_TOKEN_TYPES.Keyword; +} +export declare interface LabeledStatement extends BaseNode { + type: AST_NODE_TYPES.LabeledStatement; + label: Identifier; + body: Statement; +} +export declare type LeftHandSideExpression = ArrayExpression | ArrayPattern | ArrowFunctionExpression | CallExpression | ClassExpression | FunctionExpression | Identifier | JSXElement | JSXFragment | LiteralExpression | MemberExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TaggedTemplateExpression | ThisExpression | TSAsExpression | TSNonNullExpression | TSTypeAssertion; +export declare interface LineAndColumnData { + /** + * Line number (1-indexed) + */ + line: number; + /** + * Column number on the line (0-indexed) + */ + column: number; +} +export declare interface LineComment extends BaseToken { + type: AST_TOKEN_TYPES.Line; +} +export declare type Literal = BigIntLiteral | BooleanLiteral | NullLiteral | NumberLiteral | RegExpLiteral | StringLiteral; +declare interface LiteralBase extends BaseNode { + raw: string; + value: RegExp | bigint | boolean | number | string | null; +} +export declare type LiteralExpression = Literal | TemplateLiteral; +export declare interface LogicalExpression extends BinaryExpressionBase { + type: AST_NODE_TYPES.LogicalExpression; + operator: '??' | '&&' | '||'; +} +export declare type MemberExpression = MemberExpressionComputedName | MemberExpressionNonComputedName; +declare interface MemberExpressionBase extends BaseNode { + object: LeftHandSideExpression; + property: Expression | Identifier; + computed: boolean; + optional: boolean; +} +export declare interface MemberExpressionComputedName extends MemberExpressionBase { + type: AST_NODE_TYPES.MemberExpression; + property: Expression; + computed: true; +} +export declare interface MemberExpressionNonComputedName extends MemberExpressionBase { + type: AST_NODE_TYPES.MemberExpression; + property: Identifier; + computed: false; +} +export declare interface MetaProperty extends BaseNode { + type: AST_NODE_TYPES.MetaProperty; + meta: Identifier; + property: Identifier; +} +export declare type MethodDefinition = MethodDefinitionComputedName | MethodDefinitionNonComputedName; +/** this should not be directly used - instead use MethodDefinitionComputedNameBase or MethodDefinitionNonComputedNameBase */ +declare interface MethodDefinitionBase extends BaseNode { + key: PropertyName; + value: FunctionExpression | TSEmptyBodyFunctionExpression; + computed: boolean; + static: boolean; + kind: 'constructor' | 'get' | 'method' | 'set'; + optional?: boolean; + decorators?: Decorator[]; + accessibility?: Accessibility; + typeParameters?: TSTypeParameterDeclaration; + override?: boolean; +} +export declare interface MethodDefinitionComputedName extends MethodDefinitionComputedNameBase { + type: AST_NODE_TYPES.MethodDefinition; +} +declare interface MethodDefinitionComputedNameBase extends MethodDefinitionBase { + key: PropertyNameComputed; + computed: true; +} +export declare interface MethodDefinitionNonComputedName extends MethodDefinitionNonComputedNameBase { + type: AST_NODE_TYPES.MethodDefinition; +} +declare interface MethodDefinitionNonComputedNameBase extends MethodDefinitionBase { + key: PropertyNameNonComputed; + computed: false; +} +export declare type Modifier = TSAbstractKeyword | TSAsyncKeyword | TSPrivateKeyword | TSProtectedKeyword | TSPublicKeyword | TSReadonlyKeyword | TSStaticKeyword; +export declare interface NewExpression extends BaseNode { + type: AST_NODE_TYPES.NewExpression; + callee: LeftHandSideExpression; + arguments: Expression[]; + typeParameters?: TSTypeParameterInstantiation; +} +export declare type Node = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BinaryExpression | BlockStatement | BreakStatement | CallExpression | CatchClause | ChainExpression | ClassBody | ClassDeclaration | ClassExpression | ClassProperty | ConditionalExpression | ContinueStatement | DebuggerStatement | Decorator | DoWhileStatement | EmptyStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ExpressionStatement | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | ImportDeclaration | ImportDefaultSpecifier | ImportExpression | ImportNamespaceSpecifier | ImportSpecifier | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXNamespacedName | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LabeledStatement | Literal | LogicalExpression | MemberExpression | MetaProperty | MethodDefinition | NewExpression | ObjectExpression | ObjectPattern | Program | Property | RestElement | ReturnStatement | SequenceExpression | SpreadElement | Super | SwitchCase | SwitchStatement | TaggedTemplateExpression | TemplateElement | TemplateLiteral | ThisExpression | ThrowStatement | TryStatement | TSAbstractClassProperty | TSAbstractKeyword | TSAbstractMethodDefinition | TSAnyKeyword | TSArrayType | TSAsExpression | TSAsyncKeyword | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSClassImplements | TSConditionalType | TSConstructorType | TSConstructSignatureDeclaration | TSDeclareFunction | TSDeclareKeyword | TSEmptyBodyFunctionExpression | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExportKeyword | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexedAccessType | TSIndexSignature | TSInferType | TSInterfaceBody | TSInterfaceDeclaration | TSInterfaceHeritage | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPrivateKeyword | TSPropertySignature | TSProtectedKeyword | TSPublicKeyword | TSQualifiedName | TSReadonlyKeyword | TSRestType | TSStaticKeyword | TSStringKeyword | TSSymbolKeyword | TSTemplateLiteralType | TSThisType | TSTupleType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | UnaryExpression | UpdateExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | YieldExpression; +export declare interface NullLiteral extends LiteralBase { + type: AST_NODE_TYPES.Literal; + value: null; + raw: 'null'; +} +export declare interface NullToken extends BaseToken { + type: AST_TOKEN_TYPES.Null; +} +export declare interface NumberLiteral extends LiteralBase { + type: AST_NODE_TYPES.Literal; + value: number; +} +export declare interface NumericToken extends BaseToken { + type: AST_TOKEN_TYPES.Numeric; +} +export declare interface ObjectExpression extends BaseNode { + type: AST_NODE_TYPES.ObjectExpression; + properties: ObjectLiteralElement[]; +} +export declare type ObjectLiteralElement = MethodDefinition | Property | SpreadElement; +export declare type ObjectLiteralElementLike = ObjectLiteralElement; +export declare interface ObjectPattern extends BaseNode { + type: AST_NODE_TYPES.ObjectPattern; + properties: (Property | RestElement)[]; + typeAnnotation?: TSTypeAnnotation; + optional?: boolean; + decorators?: Decorator[]; +} +export declare type OptionalRangeAndLoc = Pick> & { + range?: Range; + loc?: SourceLocation; +}; +export declare type Parameter = ArrayPattern | AssignmentPattern | Identifier | ObjectPattern | RestElement | TSParameterProperty; +export declare type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | JSXElement | JSXFragment | JSXOpeningElement | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression | TSNullKeyword; +export declare interface Program extends BaseNode { + type: AST_NODE_TYPES.Program; + body: ProgramStatement[]; + sourceType: 'module' | 'script'; + comments?: Comment[]; + tokens?: Token[]; +} +export declare type ProgramStatement = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | Statement | TSImportEqualsDeclaration | TSNamespaceExportDeclaration; +export declare type Property = PropertyComputedName | PropertyNonComputedName; +declare interface PropertyBase extends BaseNode { + type: AST_NODE_TYPES.Property; + key: PropertyName; + value: AssignmentPattern | BindingName | Expression | TSEmptyBodyFunctionExpression; + computed: boolean; + method: boolean; + shorthand: boolean; + optional?: boolean; + kind: 'get' | 'init' | 'set'; +} +export declare interface PropertyComputedName extends PropertyBase { + key: PropertyNameComputed; + computed: true; +} +export declare type PropertyName = PropertyNameComputed | PropertyNameNonComputed; +export declare type PropertyNameComputed = Expression; +export declare type PropertyNameNonComputed = Identifier | NumberLiteral | StringLiteral; +export declare interface PropertyNonComputedName extends PropertyBase { + key: PropertyNameNonComputed; + computed: false; +} +export declare interface PunctuatorToken extends BaseToken { + type: AST_TOKEN_TYPES.Punctuator; + value: ValueOf; +} +export declare interface PunctuatorTokenToText { + [SyntaxKind.OpenBraceToken]: '{'; + [SyntaxKind.CloseBraceToken]: '}'; + [SyntaxKind.OpenParenToken]: '('; + [SyntaxKind.CloseParenToken]: ')'; + [SyntaxKind.OpenBracketToken]: '['; + [SyntaxKind.CloseBracketToken]: ']'; + [SyntaxKind.DotToken]: '.'; + [SyntaxKind.DotDotDotToken]: '...'; + [SyntaxKind.SemicolonToken]: ';'; + [SyntaxKind.CommaToken]: ','; + [SyntaxKind.QuestionDotToken]: '?.'; + [SyntaxKind.LessThanToken]: '<'; + [SyntaxKind.LessThanSlashToken]: ''; + [SyntaxKind.LessThanEqualsToken]: '<='; + [SyntaxKind.GreaterThanEqualsToken]: '>='; + [SyntaxKind.EqualsEqualsToken]: '=='; + [SyntaxKind.ExclamationEqualsToken]: '!='; + [SyntaxKind.EqualsEqualsEqualsToken]: '==='; + [SyntaxKind.ExclamationEqualsEqualsToken]: '!=='; + [SyntaxKind.EqualsGreaterThanToken]: '=>'; + [SyntaxKind.PlusToken]: '+'; + [SyntaxKind.MinusToken]: '-'; + [SyntaxKind.AsteriskToken]: '*'; + [SyntaxKind.AsteriskAsteriskToken]: '**'; + [SyntaxKind.SlashToken]: '/'; + [SyntaxKind.PercentToken]: '%'; + [SyntaxKind.PlusPlusToken]: '++'; + [SyntaxKind.MinusMinusToken]: '--'; + [SyntaxKind.LessThanLessThanToken]: '<<'; + [SyntaxKind.GreaterThanGreaterThanToken]: '>>'; + [SyntaxKind.GreaterThanGreaterThanGreaterThanToken]: '>>>'; + [SyntaxKind.AmpersandToken]: '&'; + [SyntaxKind.BarToken]: '|'; + [SyntaxKind.CaretToken]: '^'; + [SyntaxKind.ExclamationToken]: '!'; + [SyntaxKind.TildeToken]: '~'; + [SyntaxKind.AmpersandAmpersandToken]: '&&'; + [SyntaxKind.BarBarToken]: '||'; + [SyntaxKind.QuestionToken]: '?'; + [SyntaxKind.ColonToken]: ':'; + [SyntaxKind.AtToken]: '@'; + [SyntaxKind.QuestionQuestionToken]: '??'; + [SyntaxKind.BacktickToken]: '`'; + [SyntaxKind.EqualsToken]: '='; + [SyntaxKind.PlusEqualsToken]: '+='; + [SyntaxKind.MinusEqualsToken]: '-='; + [SyntaxKind.AsteriskEqualsToken]: '*='; + [SyntaxKind.AsteriskAsteriskEqualsToken]: '**='; + [SyntaxKind.SlashEqualsToken]: '/='; + [SyntaxKind.PercentEqualsToken]: '%='; + [SyntaxKind.LessThanLessThanEqualsToken]: '<<='; + [SyntaxKind.GreaterThanGreaterThanEqualsToken]: '>>='; + [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: '>>>='; + [SyntaxKind.AmpersandEqualsToken]: '&='; + [SyntaxKind.BarEqualsToken]: '|='; + [SyntaxKind.BarBarEqualsToken]: '||='; + [SyntaxKind.AmpersandAmpersandEqualsToken]: '&&='; + [SyntaxKind.QuestionQuestionEqualsToken]: '??='; + [SyntaxKind.CaretEqualsToken]: '^='; +} +/** + * An array of two numbers. + * Both numbers are a 0-based index which is the position in the array of source code characters. + * The first is the start position of the node, the second is the end position of the node. + */ +export declare type Range = [number, number]; +export declare interface RegExpLiteral extends LiteralBase { + type: AST_NODE_TYPES.Literal; + value: RegExp | null; + regex: { + pattern: string; + flags: string; + }; +} +export declare interface RegularExpressionToken extends BaseToken { + type: AST_TOKEN_TYPES.RegularExpression; + regex: { + pattern: string; + flags: string; + }; +} +export declare interface RestElement extends BaseNode { + type: AST_NODE_TYPES.RestElement; + argument: DestructuringPattern; + typeAnnotation?: TSTypeAnnotation; + optional?: boolean; + value?: AssignmentPattern; + decorators?: Decorator[]; +} +export declare interface ReturnStatement extends BaseNode { + type: AST_NODE_TYPES.ReturnStatement; + argument: Expression | null; +} +export declare interface SequenceExpression extends BaseNode { + type: AST_NODE_TYPES.SequenceExpression; + expressions: Expression[]; +} +export declare interface SourceLocation { + /** + * The position of the first character of the parsed source region + */ + start: LineAndColumnData; + /** + * The position of the first character after the parsed source region + */ + end: LineAndColumnData; +} +export declare interface SpreadElement extends BaseNode { + type: AST_NODE_TYPES.SpreadElement; + argument: Expression; +} +export declare type Statement = BlockStatement | BreakStatement | ClassDeclaration | ContinueStatement | DebuggerStatement | DoWhileStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExpressionStatement | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | IfStatement | ImportDeclaration | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | TSDeclareFunction | TSEnumDeclaration | TSExportAssignment | TSImportEqualsDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSNamespaceExportDeclaration | TSTypeAliasDeclaration | VariableDeclaration | WhileStatement | WithStatement; +export declare interface StringLiteral extends LiteralBase { + type: AST_NODE_TYPES.Literal; + value: string; +} +export declare interface StringToken extends BaseToken { + type: AST_TOKEN_TYPES.String; +} +export declare interface Super extends BaseNode { + type: AST_NODE_TYPES.Super; +} +export declare interface SwitchCase extends BaseNode { + type: AST_NODE_TYPES.SwitchCase; + test: Expression | null; + consequent: Statement[]; +} +export declare interface SwitchStatement extends BaseNode { + type: AST_NODE_TYPES.SwitchStatement; + discriminant: Expression; + cases: SwitchCase[]; +} +export declare interface TaggedTemplateExpression extends BaseNode { + type: AST_NODE_TYPES.TaggedTemplateExpression; + typeParameters?: TSTypeParameterInstantiation; + tag: LeftHandSideExpression; + quasi: TemplateLiteral; +} +export declare interface TemplateElement extends BaseNode { + type: AST_NODE_TYPES.TemplateElement; + value: { + raw: string; + cooked: string; + }; + tail: boolean; +} +export declare interface TemplateLiteral extends BaseNode { + type: AST_NODE_TYPES.TemplateLiteral; + quasis: TemplateElement[]; + expressions: Expression[]; +} +export declare interface TemplateToken extends BaseToken { + type: AST_TOKEN_TYPES.Template; +} +export declare interface ThisExpression extends BaseNode { + type: AST_NODE_TYPES.ThisExpression; +} +export declare interface ThrowStatement extends BaseNode { + type: AST_NODE_TYPES.ThrowStatement; + argument: Statement | TSAsExpression | null; +} +export declare type Token = BooleanToken | Comment | IdentifierToken | JSXIdentifierToken | JSXTextToken | KeywordToken | NullToken | NumericToken | PunctuatorToken | RegularExpressionToken | StringToken | TemplateToken; +export declare interface TryStatement extends BaseNode { + type: AST_NODE_TYPES.TryStatement; + block: BlockStatement; + handler: CatchClause | null; + finalizer: BlockStatement | null; +} +export declare type TSAbstractClassProperty = TSAbstractClassPropertyComputedName | TSAbstractClassPropertyNonComputedName; +export declare interface TSAbstractClassPropertyComputedName extends ClassPropertyComputedNameBase { + type: AST_NODE_TYPES.TSAbstractClassProperty; +} +export declare interface TSAbstractClassPropertyNonComputedName extends ClassPropertyNonComputedNameBase { + type: AST_NODE_TYPES.TSAbstractClassProperty; +} +export declare interface TSAbstractKeyword extends BaseNode { + type: AST_NODE_TYPES.TSAbstractKeyword; +} +export declare type TSAbstractMethodDefinition = TSAbstractMethodDefinitionComputedName | TSAbstractMethodDefinitionNonComputedName; +export declare interface TSAbstractMethodDefinitionComputedName extends MethodDefinitionComputedNameBase { + type: AST_NODE_TYPES.TSAbstractMethodDefinition; +} +export declare interface TSAbstractMethodDefinitionNonComputedName extends MethodDefinitionNonComputedNameBase { + type: AST_NODE_TYPES.TSAbstractMethodDefinition; +} +export declare interface TSAnyKeyword extends BaseNode { + type: AST_NODE_TYPES.TSAnyKeyword; +} +export declare interface TSArrayType extends BaseNode { + type: AST_NODE_TYPES.TSArrayType; + elementType: TypeNode; +} +export declare interface TSAsExpression extends BaseNode { + type: AST_NODE_TYPES.TSAsExpression; + expression: Expression; + typeAnnotation: TypeNode; +} +export declare interface TSAsyncKeyword extends BaseNode { + type: AST_NODE_TYPES.TSAsyncKeyword; +} +export declare interface TSBigIntKeyword extends BaseNode { + type: AST_NODE_TYPES.TSBigIntKeyword; +} +export declare interface TSBooleanKeyword extends BaseNode { + type: AST_NODE_TYPES.TSBooleanKeyword; +} +export declare interface TSCallSignatureDeclaration extends TSFunctionSignatureBase { + type: AST_NODE_TYPES.TSCallSignatureDeclaration; +} +export declare interface TSClassImplements extends TSHeritageBase { + type: AST_NODE_TYPES.TSClassImplements; +} +export declare interface TSConditionalType extends BaseNode { + type: AST_NODE_TYPES.TSConditionalType; + checkType: TypeNode; + extendsType: TypeNode; + trueType: TypeNode; + falseType: TypeNode; +} +export declare interface TSConstructorType extends TSFunctionSignatureBase { + type: AST_NODE_TYPES.TSConstructorType; + abstract: boolean; +} +export declare interface TSConstructSignatureDeclaration extends TSFunctionSignatureBase { + type: AST_NODE_TYPES.TSConstructSignatureDeclaration; +} +export declare interface TSDeclareFunction extends FunctionDeclarationBase { + type: AST_NODE_TYPES.TSDeclareFunction; +} +export declare interface TSDeclareKeyword extends BaseNode { + type: AST_NODE_TYPES.TSDeclareKeyword; +} +export declare interface TSEmptyBodyFunctionExpression extends FunctionDeclarationBase { + type: AST_NODE_TYPES.TSEmptyBodyFunctionExpression; + body: null; +} +export declare interface TSEnumDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSEnumDeclaration; + id: Identifier; + members: TSEnumMember[]; + const?: boolean; + declare?: boolean; + modifiers?: Modifier[]; +} +export declare type TSEnumMember = TSEnumMemberComputedName | TSEnumMemberNonComputedName; +declare interface TSEnumMemberBase extends BaseNode { + type: AST_NODE_TYPES.TSEnumMember; + id: PropertyNameComputed | PropertyNameNonComputed; + initializer?: Expression; + computed?: boolean; +} +/** + * this should only really happen in semantically invalid code (errors 1164 and 2452) + * + * VALID: + * enum Foo { ['a'] } + * + * INVALID: + * const x = 'a'; + * enum Foo { [x] } + * enum Bar { ['a' + 'b'] } + */ +export declare interface TSEnumMemberComputedName extends TSEnumMemberBase { + id: PropertyNameComputed; + computed: true; +} +export declare interface TSEnumMemberNonComputedName extends TSEnumMemberBase { + id: PropertyNameNonComputed; + computed?: false; +} +export declare interface TSExportAssignment extends BaseNode { + type: AST_NODE_TYPES.TSExportAssignment; + expression: Expression; +} +export declare interface TSExportKeyword extends BaseNode { + type: AST_NODE_TYPES.TSExportKeyword; +} +export declare interface TSExternalModuleReference extends BaseNode { + type: AST_NODE_TYPES.TSExternalModuleReference; + expression: Expression; +} +declare interface TSFunctionSignatureBase extends BaseNode { + params: Parameter[]; + returnType?: TSTypeAnnotation; + typeParameters?: TSTypeParameterDeclaration; +} +export declare interface TSFunctionType extends TSFunctionSignatureBase { + type: AST_NODE_TYPES.TSFunctionType; +} +declare interface TSHeritageBase extends BaseNode { + expression: Expression; + typeParameters?: TSTypeParameterInstantiation; +} +export declare interface TSImportEqualsDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSImportEqualsDeclaration; + id: Identifier; + moduleReference: EntityName | TSExternalModuleReference; + importKind: 'type' | 'value'; + isExport: boolean; +} +export declare interface TSImportType extends BaseNode { + type: AST_NODE_TYPES.TSImportType; + isTypeOf: boolean; + parameter: TypeNode; + qualifier: EntityName | null; + typeParameters: TSTypeParameterInstantiation | null; +} +export declare interface TSIndexedAccessType extends BaseNode { + type: AST_NODE_TYPES.TSIndexedAccessType; + objectType: TypeNode; + indexType: TypeNode; +} +export declare interface TSIndexSignature extends BaseNode { + type: AST_NODE_TYPES.TSIndexSignature; + parameters: Parameter[]; + typeAnnotation?: TSTypeAnnotation; + readonly?: boolean; + accessibility?: Accessibility; + export?: boolean; + static?: boolean; +} +export declare interface TSInferType extends BaseNode { + type: AST_NODE_TYPES.TSInferType; + typeParameter: TSTypeParameter; +} +export declare interface TSInterfaceBody extends BaseNode { + type: AST_NODE_TYPES.TSInterfaceBody; + body: TypeElement[]; +} +export declare interface TSInterfaceDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSInterfaceDeclaration; + body: TSInterfaceBody; + id: Identifier; + typeParameters?: TSTypeParameterDeclaration; + extends?: TSInterfaceHeritage[]; + implements?: TSInterfaceHeritage[]; + abstract?: boolean; + declare?: boolean; +} +export declare interface TSInterfaceHeritage extends TSHeritageBase { + type: AST_NODE_TYPES.TSInterfaceHeritage; +} +export declare interface TSIntersectionType extends BaseNode { + type: AST_NODE_TYPES.TSIntersectionType; + types: TypeNode[]; +} +declare interface TSIntrinsicKeyword extends BaseNode { + type: AST_NODE_TYPES.TSIntrinsicKeyword; +} +export declare interface TSLiteralType extends BaseNode { + type: AST_NODE_TYPES.TSLiteralType; + literal: LiteralExpression | UnaryExpression | UpdateExpression; +} +export declare interface TSMappedType extends BaseNode { + type: AST_NODE_TYPES.TSMappedType; + typeParameter: TSTypeParameter; + readonly?: boolean | '-' | '+'; + optional?: boolean | '-' | '+'; + typeAnnotation?: TypeNode; + nameType: TypeNode | null; +} +export declare type TSMethodSignature = TSMethodSignatureComputedName | TSMethodSignatureNonComputedName; +declare interface TSMethodSignatureBase extends BaseNode { + type: AST_NODE_TYPES.TSMethodSignature; + key: PropertyName; + computed: boolean; + params: Parameter[]; + optional?: boolean; + returnType?: TSTypeAnnotation; + readonly?: boolean; + typeParameters?: TSTypeParameterDeclaration; + accessibility?: Accessibility; + export?: boolean; + static?: boolean; + kind: 'get' | 'method' | 'set'; +} +export declare interface TSMethodSignatureComputedName extends TSMethodSignatureBase { + key: PropertyNameComputed; + computed: true; +} +export declare interface TSMethodSignatureNonComputedName extends TSMethodSignatureBase { + key: PropertyNameNonComputed; + computed: false; +} +export declare interface TSModuleBlock extends BaseNode { + type: AST_NODE_TYPES.TSModuleBlock; + body: ProgramStatement[]; +} +export declare interface TSModuleDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSModuleDeclaration; + id: Identifier | Literal; + body?: TSModuleBlock | TSModuleDeclaration; + global?: boolean; + declare?: boolean; + modifiers?: Modifier[]; +} +export declare interface TSNamedTupleMember extends BaseNode { + type: AST_NODE_TYPES.TSNamedTupleMember; + elementType: TypeNode; + label: Identifier; + optional: boolean; +} +export declare interface TSNamespaceExportDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSNamespaceExportDeclaration; + id: Identifier; +} +export declare interface TSNeverKeyword extends BaseNode { + type: AST_NODE_TYPES.TSNeverKeyword; +} +export declare interface TSNonNullExpression extends BaseNode { + type: AST_NODE_TYPES.TSNonNullExpression; + expression: Expression; +} +export declare interface TSNullKeyword extends BaseNode { + type: AST_NODE_TYPES.TSNullKeyword; +} +export declare interface TSNumberKeyword extends BaseNode { + type: AST_NODE_TYPES.TSNumberKeyword; +} +export declare interface TSObjectKeyword extends BaseNode { + type: AST_NODE_TYPES.TSObjectKeyword; +} +export declare interface TSOptionalType extends BaseNode { + type: AST_NODE_TYPES.TSOptionalType; + typeAnnotation: TypeNode; +} +export declare interface TSParameterProperty extends BaseNode { + type: AST_NODE_TYPES.TSParameterProperty; + accessibility?: Accessibility; + readonly?: boolean; + static?: boolean; + export?: boolean; + override?: boolean; + parameter: AssignmentPattern | BindingName | RestElement; + decorators?: Decorator[]; +} +export declare interface TSParenthesizedType extends BaseNode { + type: AST_NODE_TYPES.TSParenthesizedType; + typeAnnotation: TypeNode; +} +export declare interface TSPrivateKeyword extends BaseNode { + type: AST_NODE_TYPES.TSPrivateKeyword; +} +export declare type TSPropertySignature = TSPropertySignatureComputedName | TSPropertySignatureNonComputedName; +declare interface TSPropertySignatureBase extends BaseNode { + type: AST_NODE_TYPES.TSPropertySignature; + key: PropertyName; + optional?: boolean; + computed: boolean; + typeAnnotation?: TSTypeAnnotation; + initializer?: Expression; + readonly?: boolean; + static?: boolean; + export?: boolean; + accessibility?: Accessibility; +} +export declare interface TSPropertySignatureComputedName extends TSPropertySignatureBase { + key: PropertyNameComputed; + computed: true; +} +export declare interface TSPropertySignatureNonComputedName extends TSPropertySignatureBase { + key: PropertyNameNonComputed; + computed: false; +} +export declare interface TSProtectedKeyword extends BaseNode { + type: AST_NODE_TYPES.TSProtectedKeyword; +} +export declare interface TSPublicKeyword extends BaseNode { + type: AST_NODE_TYPES.TSPublicKeyword; +} +export declare interface TSQualifiedName extends BaseNode { + type: AST_NODE_TYPES.TSQualifiedName; + left: EntityName; + right: Identifier; +} +export declare interface TSReadonlyKeyword extends BaseNode { + type: AST_NODE_TYPES.TSReadonlyKeyword; +} +export declare interface TSRestType extends BaseNode { + type: AST_NODE_TYPES.TSRestType; + typeAnnotation: TypeNode; +} +export declare interface TSStaticKeyword extends BaseNode { + type: AST_NODE_TYPES.TSStaticKeyword; +} +export declare interface TSStringKeyword extends BaseNode { + type: AST_NODE_TYPES.TSStringKeyword; +} +export declare interface TSSymbolKeyword extends BaseNode { + type: AST_NODE_TYPES.TSSymbolKeyword; +} +export declare interface TSTemplateLiteralType extends BaseNode { + type: AST_NODE_TYPES.TSTemplateLiteralType; + quasis: TemplateElement[]; + types: TypeNode[]; +} +export declare interface TSThisType extends BaseNode { + type: AST_NODE_TYPES.TSThisType; +} +export declare interface TSTupleType extends BaseNode { + type: AST_NODE_TYPES.TSTupleType; + elementTypes: TypeNode[]; +} +export declare interface TSTypeAliasDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSTypeAliasDeclaration; + id: Identifier; + typeAnnotation: TypeNode; + declare?: boolean; + typeParameters?: TSTypeParameterDeclaration; +} +export declare interface TSTypeAnnotation extends BaseNode { + type: AST_NODE_TYPES.TSTypeAnnotation; + typeAnnotation: TypeNode; +} +export declare interface TSTypeAssertion extends BaseNode { + type: AST_NODE_TYPES.TSTypeAssertion; + typeAnnotation: TypeNode; + expression: Expression; +} +export declare interface TSTypeLiteral extends BaseNode { + type: AST_NODE_TYPES.TSTypeLiteral; + members: TypeElement[]; +} +export declare interface TSTypeOperator extends BaseNode { + type: AST_NODE_TYPES.TSTypeOperator; + operator: 'keyof' | 'readonly' | 'unique'; + typeAnnotation?: TypeNode; +} +export declare interface TSTypeParameter extends BaseNode { + type: AST_NODE_TYPES.TSTypeParameter; + name: Identifier; + constraint?: TypeNode; + default?: TypeNode; +} +export declare interface TSTypeParameterDeclaration extends BaseNode { + type: AST_NODE_TYPES.TSTypeParameterDeclaration; + params: TSTypeParameter[]; +} +export declare interface TSTypeParameterInstantiation extends BaseNode { + type: AST_NODE_TYPES.TSTypeParameterInstantiation; + params: TypeNode[]; +} +export declare interface TSTypePredicate extends BaseNode { + type: AST_NODE_TYPES.TSTypePredicate; + asserts: boolean; + parameterName: Identifier | TSThisType; + typeAnnotation: TSTypeAnnotation | null; +} +export declare interface TSTypeQuery extends BaseNode { + type: AST_NODE_TYPES.TSTypeQuery; + exprName: EntityName; +} +export declare interface TSTypeReference extends BaseNode { + type: AST_NODE_TYPES.TSTypeReference; + typeName: EntityName; + typeParameters?: TSTypeParameterInstantiation; +} +export declare type TSUnaryExpression = AwaitExpression | LeftHandSideExpression | UnaryExpression | UpdateExpression; +export declare interface TSUndefinedKeyword extends BaseNode { + type: AST_NODE_TYPES.TSUndefinedKeyword; +} +export declare interface TSUnionType extends BaseNode { + type: AST_NODE_TYPES.TSUnionType; + types: TypeNode[]; +} +export declare interface TSUnknownKeyword extends BaseNode { + type: AST_NODE_TYPES.TSUnknownKeyword; +} +export declare interface TSVoidKeyword extends BaseNode { + type: AST_NODE_TYPES.TSVoidKeyword; +} +export declare type TypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSIndexSignature | TSMethodSignature | TSPropertySignature; +export declare type TypeNode = TSAnyKeyword | TSArrayType | TSBigIntKeyword | TSBooleanKeyword | TSConditionalType | TSConstructorType | TSFunctionType | TSImportType | TSIndexedAccessType | TSInferType | TSIntersectionType | TSIntrinsicKeyword | TSLiteralType | TSMappedType | TSNamedTupleMember | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParenthesizedType | TSRestType | TSStringKeyword | TSSymbolKeyword | TSTemplateLiteralType | TSThisType | TSTupleType | TSTypeLiteral | TSTypeOperator | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword; +export declare interface UnaryExpression extends UnaryExpressionBase { + type: AST_NODE_TYPES.UnaryExpression; + operator: '-' | '!' | '+' | '~' | 'delete' | 'typeof' | 'void'; +} +declare interface UnaryExpressionBase extends BaseNode { + operator: string; + prefix: boolean; + argument: LeftHandSideExpression | Literal | UnaryExpression; +} +export declare interface UpdateExpression extends UnaryExpressionBase { + type: AST_NODE_TYPES.UpdateExpression; + operator: '--' | '++'; +} +declare type ValueOf = T[keyof T]; +export declare interface VariableDeclaration extends BaseNode { + type: AST_NODE_TYPES.VariableDeclaration; + declarations: VariableDeclarator[]; + kind: 'const' | 'let' | 'var'; + declare?: boolean; +} +export declare interface VariableDeclarator extends BaseNode { + type: AST_NODE_TYPES.VariableDeclarator; + id: BindingName; + init: Expression | null; + definite?: boolean; +} +export declare interface WhileStatement extends BaseNode { + type: AST_NODE_TYPES.WhileStatement; + test: Expression; + body: Statement; +} +export declare interface WithStatement extends BaseNode { + type: AST_NODE_TYPES.WithStatement; + object: Expression; + body: Statement; +} +export declare interface YieldExpression extends BaseNode { + type: AST_NODE_TYPES.YieldExpression; + delegate: boolean; + argument?: Expression; +} +export {}; +//# sourceMappingURL=ast-spec.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-spec.d.ts.map b/node_modules/@typescript-eslint/types/dist/ast-spec.d.ts.map new file mode 100644 index 0000000000..ce1d33e977 --- /dev/null +++ b/node_modules/@typescript-eslint/types/dist/ast-spec.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"ast-spec.d.ts","sourceRoot":"","sources":["../src/ast-spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-spec.js b/node_modules/@typescript-eslint/types/dist/ast-spec.js new file mode 100644 index 0000000000..cbf698abc1 --- /dev/null +++ b/node_modules/@typescript-eslint/types/dist/ast-spec.js @@ -0,0 +1,196 @@ +"use strict"; +/********************************************** + * DO NOT MODIFY THIS FILE MANUALLY * + * * + * THIS FILE HAS BEEN COPIED FROM ast-spec. * + * ANY CHANGES WILL BE LOST ON THE NEXT BUILD * + * * + * MAKE CHANGES TO ast-spec AND THEN RUN * + * yarn build * + **********************************************/ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AST_TOKEN_TYPES = exports.AST_NODE_TYPES = void 0; +var AST_NODE_TYPES; +(function (AST_NODE_TYPES) { + AST_NODE_TYPES["ArrayExpression"] = "ArrayExpression"; + AST_NODE_TYPES["ArrayPattern"] = "ArrayPattern"; + AST_NODE_TYPES["ArrowFunctionExpression"] = "ArrowFunctionExpression"; + AST_NODE_TYPES["AssignmentExpression"] = "AssignmentExpression"; + AST_NODE_TYPES["AssignmentPattern"] = "AssignmentPattern"; + AST_NODE_TYPES["AwaitExpression"] = "AwaitExpression"; + AST_NODE_TYPES["BinaryExpression"] = "BinaryExpression"; + AST_NODE_TYPES["BlockStatement"] = "BlockStatement"; + AST_NODE_TYPES["BreakStatement"] = "BreakStatement"; + AST_NODE_TYPES["CallExpression"] = "CallExpression"; + AST_NODE_TYPES["CatchClause"] = "CatchClause"; + AST_NODE_TYPES["ChainExpression"] = "ChainExpression"; + AST_NODE_TYPES["ClassBody"] = "ClassBody"; + AST_NODE_TYPES["ClassDeclaration"] = "ClassDeclaration"; + AST_NODE_TYPES["ClassExpression"] = "ClassExpression"; + AST_NODE_TYPES["ClassProperty"] = "ClassProperty"; + AST_NODE_TYPES["ConditionalExpression"] = "ConditionalExpression"; + AST_NODE_TYPES["ContinueStatement"] = "ContinueStatement"; + AST_NODE_TYPES["DebuggerStatement"] = "DebuggerStatement"; + AST_NODE_TYPES["Decorator"] = "Decorator"; + AST_NODE_TYPES["DoWhileStatement"] = "DoWhileStatement"; + AST_NODE_TYPES["EmptyStatement"] = "EmptyStatement"; + AST_NODE_TYPES["ExportAllDeclaration"] = "ExportAllDeclaration"; + AST_NODE_TYPES["ExportDefaultDeclaration"] = "ExportDefaultDeclaration"; + AST_NODE_TYPES["ExportNamedDeclaration"] = "ExportNamedDeclaration"; + AST_NODE_TYPES["ExportSpecifier"] = "ExportSpecifier"; + AST_NODE_TYPES["ExpressionStatement"] = "ExpressionStatement"; + AST_NODE_TYPES["ForInStatement"] = "ForInStatement"; + AST_NODE_TYPES["ForOfStatement"] = "ForOfStatement"; + AST_NODE_TYPES["ForStatement"] = "ForStatement"; + AST_NODE_TYPES["FunctionDeclaration"] = "FunctionDeclaration"; + AST_NODE_TYPES["FunctionExpression"] = "FunctionExpression"; + AST_NODE_TYPES["Identifier"] = "Identifier"; + AST_NODE_TYPES["IfStatement"] = "IfStatement"; + AST_NODE_TYPES["ImportDeclaration"] = "ImportDeclaration"; + AST_NODE_TYPES["ImportDefaultSpecifier"] = "ImportDefaultSpecifier"; + AST_NODE_TYPES["ImportExpression"] = "ImportExpression"; + AST_NODE_TYPES["ImportNamespaceSpecifier"] = "ImportNamespaceSpecifier"; + AST_NODE_TYPES["ImportSpecifier"] = "ImportSpecifier"; + AST_NODE_TYPES["JSXAttribute"] = "JSXAttribute"; + AST_NODE_TYPES["JSXClosingElement"] = "JSXClosingElement"; + AST_NODE_TYPES["JSXClosingFragment"] = "JSXClosingFragment"; + AST_NODE_TYPES["JSXElement"] = "JSXElement"; + AST_NODE_TYPES["JSXEmptyExpression"] = "JSXEmptyExpression"; + AST_NODE_TYPES["JSXExpressionContainer"] = "JSXExpressionContainer"; + AST_NODE_TYPES["JSXFragment"] = "JSXFragment"; + AST_NODE_TYPES["JSXIdentifier"] = "JSXIdentifier"; + AST_NODE_TYPES["JSXMemberExpression"] = "JSXMemberExpression"; + AST_NODE_TYPES["JSXNamespacedName"] = "JSXNamespacedName"; + AST_NODE_TYPES["JSXOpeningElement"] = "JSXOpeningElement"; + AST_NODE_TYPES["JSXOpeningFragment"] = "JSXOpeningFragment"; + AST_NODE_TYPES["JSXSpreadAttribute"] = "JSXSpreadAttribute"; + AST_NODE_TYPES["JSXSpreadChild"] = "JSXSpreadChild"; + AST_NODE_TYPES["JSXText"] = "JSXText"; + AST_NODE_TYPES["LabeledStatement"] = "LabeledStatement"; + AST_NODE_TYPES["Literal"] = "Literal"; + AST_NODE_TYPES["LogicalExpression"] = "LogicalExpression"; + AST_NODE_TYPES["MemberExpression"] = "MemberExpression"; + AST_NODE_TYPES["MetaProperty"] = "MetaProperty"; + AST_NODE_TYPES["MethodDefinition"] = "MethodDefinition"; + AST_NODE_TYPES["NewExpression"] = "NewExpression"; + AST_NODE_TYPES["ObjectExpression"] = "ObjectExpression"; + AST_NODE_TYPES["ObjectPattern"] = "ObjectPattern"; + AST_NODE_TYPES["Program"] = "Program"; + AST_NODE_TYPES["Property"] = "Property"; + AST_NODE_TYPES["RestElement"] = "RestElement"; + AST_NODE_TYPES["ReturnStatement"] = "ReturnStatement"; + AST_NODE_TYPES["SequenceExpression"] = "SequenceExpression"; + AST_NODE_TYPES["SpreadElement"] = "SpreadElement"; + AST_NODE_TYPES["Super"] = "Super"; + AST_NODE_TYPES["SwitchCase"] = "SwitchCase"; + AST_NODE_TYPES["SwitchStatement"] = "SwitchStatement"; + AST_NODE_TYPES["TaggedTemplateExpression"] = "TaggedTemplateExpression"; + AST_NODE_TYPES["TemplateElement"] = "TemplateElement"; + AST_NODE_TYPES["TemplateLiteral"] = "TemplateLiteral"; + AST_NODE_TYPES["ThisExpression"] = "ThisExpression"; + AST_NODE_TYPES["ThrowStatement"] = "ThrowStatement"; + AST_NODE_TYPES["TryStatement"] = "TryStatement"; + AST_NODE_TYPES["UnaryExpression"] = "UnaryExpression"; + AST_NODE_TYPES["UpdateExpression"] = "UpdateExpression"; + AST_NODE_TYPES["VariableDeclaration"] = "VariableDeclaration"; + AST_NODE_TYPES["VariableDeclarator"] = "VariableDeclarator"; + AST_NODE_TYPES["WhileStatement"] = "WhileStatement"; + AST_NODE_TYPES["WithStatement"] = "WithStatement"; + AST_NODE_TYPES["YieldExpression"] = "YieldExpression"; + /** + * TS-prefixed nodes + */ + AST_NODE_TYPES["TSAbstractClassProperty"] = "TSAbstractClassProperty"; + AST_NODE_TYPES["TSAbstractKeyword"] = "TSAbstractKeyword"; + AST_NODE_TYPES["TSAbstractMethodDefinition"] = "TSAbstractMethodDefinition"; + AST_NODE_TYPES["TSAnyKeyword"] = "TSAnyKeyword"; + AST_NODE_TYPES["TSArrayType"] = "TSArrayType"; + AST_NODE_TYPES["TSAsExpression"] = "TSAsExpression"; + AST_NODE_TYPES["TSAsyncKeyword"] = "TSAsyncKeyword"; + AST_NODE_TYPES["TSBigIntKeyword"] = "TSBigIntKeyword"; + AST_NODE_TYPES["TSBooleanKeyword"] = "TSBooleanKeyword"; + AST_NODE_TYPES["TSCallSignatureDeclaration"] = "TSCallSignatureDeclaration"; + AST_NODE_TYPES["TSClassImplements"] = "TSClassImplements"; + AST_NODE_TYPES["TSConditionalType"] = "TSConditionalType"; + AST_NODE_TYPES["TSConstructorType"] = "TSConstructorType"; + AST_NODE_TYPES["TSConstructSignatureDeclaration"] = "TSConstructSignatureDeclaration"; + AST_NODE_TYPES["TSDeclareFunction"] = "TSDeclareFunction"; + AST_NODE_TYPES["TSDeclareKeyword"] = "TSDeclareKeyword"; + AST_NODE_TYPES["TSEmptyBodyFunctionExpression"] = "TSEmptyBodyFunctionExpression"; + AST_NODE_TYPES["TSEnumDeclaration"] = "TSEnumDeclaration"; + AST_NODE_TYPES["TSEnumMember"] = "TSEnumMember"; + AST_NODE_TYPES["TSExportAssignment"] = "TSExportAssignment"; + AST_NODE_TYPES["TSExportKeyword"] = "TSExportKeyword"; + AST_NODE_TYPES["TSExternalModuleReference"] = "TSExternalModuleReference"; + AST_NODE_TYPES["TSFunctionType"] = "TSFunctionType"; + AST_NODE_TYPES["TSImportEqualsDeclaration"] = "TSImportEqualsDeclaration"; + AST_NODE_TYPES["TSImportType"] = "TSImportType"; + AST_NODE_TYPES["TSIndexedAccessType"] = "TSIndexedAccessType"; + AST_NODE_TYPES["TSIndexSignature"] = "TSIndexSignature"; + AST_NODE_TYPES["TSInferType"] = "TSInferType"; + AST_NODE_TYPES["TSInterfaceBody"] = "TSInterfaceBody"; + AST_NODE_TYPES["TSInterfaceDeclaration"] = "TSInterfaceDeclaration"; + AST_NODE_TYPES["TSInterfaceHeritage"] = "TSInterfaceHeritage"; + AST_NODE_TYPES["TSIntersectionType"] = "TSIntersectionType"; + AST_NODE_TYPES["TSIntrinsicKeyword"] = "TSIntrinsicKeyword"; + AST_NODE_TYPES["TSLiteralType"] = "TSLiteralType"; + AST_NODE_TYPES["TSMappedType"] = "TSMappedType"; + AST_NODE_TYPES["TSMethodSignature"] = "TSMethodSignature"; + AST_NODE_TYPES["TSModuleBlock"] = "TSModuleBlock"; + AST_NODE_TYPES["TSModuleDeclaration"] = "TSModuleDeclaration"; + AST_NODE_TYPES["TSNamedTupleMember"] = "TSNamedTupleMember"; + AST_NODE_TYPES["TSNamespaceExportDeclaration"] = "TSNamespaceExportDeclaration"; + AST_NODE_TYPES["TSNeverKeyword"] = "TSNeverKeyword"; + AST_NODE_TYPES["TSNonNullExpression"] = "TSNonNullExpression"; + AST_NODE_TYPES["TSNullKeyword"] = "TSNullKeyword"; + AST_NODE_TYPES["TSNumberKeyword"] = "TSNumberKeyword"; + AST_NODE_TYPES["TSObjectKeyword"] = "TSObjectKeyword"; + AST_NODE_TYPES["TSOptionalType"] = "TSOptionalType"; + AST_NODE_TYPES["TSParameterProperty"] = "TSParameterProperty"; + AST_NODE_TYPES["TSParenthesizedType"] = "TSParenthesizedType"; + AST_NODE_TYPES["TSPrivateKeyword"] = "TSPrivateKeyword"; + AST_NODE_TYPES["TSPropertySignature"] = "TSPropertySignature"; + AST_NODE_TYPES["TSProtectedKeyword"] = "TSProtectedKeyword"; + AST_NODE_TYPES["TSPublicKeyword"] = "TSPublicKeyword"; + AST_NODE_TYPES["TSQualifiedName"] = "TSQualifiedName"; + AST_NODE_TYPES["TSReadonlyKeyword"] = "TSReadonlyKeyword"; + AST_NODE_TYPES["TSRestType"] = "TSRestType"; + AST_NODE_TYPES["TSStaticKeyword"] = "TSStaticKeyword"; + AST_NODE_TYPES["TSStringKeyword"] = "TSStringKeyword"; + AST_NODE_TYPES["TSSymbolKeyword"] = "TSSymbolKeyword"; + AST_NODE_TYPES["TSTemplateLiteralType"] = "TSTemplateLiteralType"; + AST_NODE_TYPES["TSThisType"] = "TSThisType"; + AST_NODE_TYPES["TSTupleType"] = "TSTupleType"; + AST_NODE_TYPES["TSTypeAliasDeclaration"] = "TSTypeAliasDeclaration"; + AST_NODE_TYPES["TSTypeAnnotation"] = "TSTypeAnnotation"; + AST_NODE_TYPES["TSTypeAssertion"] = "TSTypeAssertion"; + AST_NODE_TYPES["TSTypeLiteral"] = "TSTypeLiteral"; + AST_NODE_TYPES["TSTypeOperator"] = "TSTypeOperator"; + AST_NODE_TYPES["TSTypeParameter"] = "TSTypeParameter"; + AST_NODE_TYPES["TSTypeParameterDeclaration"] = "TSTypeParameterDeclaration"; + AST_NODE_TYPES["TSTypeParameterInstantiation"] = "TSTypeParameterInstantiation"; + AST_NODE_TYPES["TSTypePredicate"] = "TSTypePredicate"; + AST_NODE_TYPES["TSTypeQuery"] = "TSTypeQuery"; + AST_NODE_TYPES["TSTypeReference"] = "TSTypeReference"; + AST_NODE_TYPES["TSUndefinedKeyword"] = "TSUndefinedKeyword"; + AST_NODE_TYPES["TSUnionType"] = "TSUnionType"; + AST_NODE_TYPES["TSUnknownKeyword"] = "TSUnknownKeyword"; + AST_NODE_TYPES["TSVoidKeyword"] = "TSVoidKeyword"; +})(AST_NODE_TYPES = exports.AST_NODE_TYPES || (exports.AST_NODE_TYPES = {})); +var AST_TOKEN_TYPES; +(function (AST_TOKEN_TYPES) { + AST_TOKEN_TYPES["Boolean"] = "Boolean"; + AST_TOKEN_TYPES["Identifier"] = "Identifier"; + AST_TOKEN_TYPES["JSXIdentifier"] = "JSXIdentifier"; + AST_TOKEN_TYPES["JSXText"] = "JSXText"; + AST_TOKEN_TYPES["Keyword"] = "Keyword"; + AST_TOKEN_TYPES["Null"] = "Null"; + AST_TOKEN_TYPES["Numeric"] = "Numeric"; + AST_TOKEN_TYPES["Punctuator"] = "Punctuator"; + AST_TOKEN_TYPES["RegularExpression"] = "RegularExpression"; + AST_TOKEN_TYPES["String"] = "String"; + AST_TOKEN_TYPES["Template"] = "Template"; + AST_TOKEN_TYPES["Block"] = "Block"; + AST_TOKEN_TYPES["Line"] = "Line"; +})(AST_TOKEN_TYPES = exports.AST_TOKEN_TYPES || (exports.AST_TOKEN_TYPES = {})); +//# sourceMappingURL=ast-spec.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-spec.js.map b/node_modules/@typescript-eslint/types/dist/ast-spec.js.map new file mode 100644 index 0000000000..bffdd28227 --- /dev/null +++ b/node_modules/@typescript-eslint/types/dist/ast-spec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ast-spec.js","sourceRoot":"","sources":["../src/ast-spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-token-types.d.ts b/node_modules/@typescript-eslint/types/dist/ast-token-types.d.ts deleted file mode 100644 index 6536628f2f..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-token-types.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare enum AST_TOKEN_TYPES { - Boolean = "Boolean", - Identifier = "Identifier", - JSXIdentifier = "JSXIdentifier", - JSXText = "JSXText", - Keyword = "Keyword", - Null = "Null", - Numeric = "Numeric", - Punctuator = "Punctuator", - RegularExpression = "RegularExpression", - String = "String", - Template = "Template", - Block = "Block", - Line = "Line" -} -export { AST_TOKEN_TYPES }; -//# sourceMappingURL=ast-token-types.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-token-types.d.ts.map b/node_modules/@typescript-eslint/types/dist/ast-token-types.d.ts.map deleted file mode 100644 index 46cc6f7b07..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-token-types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ast-token-types.d.ts","sourceRoot":"","sources":["../src/ast-token-types.ts"],"names":[],"mappings":"AAAA,aAAK,eAAe;IAClB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,iBAAiB,sBAAsB;IACvC,MAAM,WAAW;IACjB,QAAQ,aAAa;IAGrB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-token-types.js b/node_modules/@typescript-eslint/types/dist/ast-token-types.js deleted file mode 100644 index 4a4bc4ad0b..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-token-types.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.AST_TOKEN_TYPES = void 0; -var AST_TOKEN_TYPES; -(function (AST_TOKEN_TYPES) { - AST_TOKEN_TYPES["Boolean"] = "Boolean"; - AST_TOKEN_TYPES["Identifier"] = "Identifier"; - AST_TOKEN_TYPES["JSXIdentifier"] = "JSXIdentifier"; - AST_TOKEN_TYPES["JSXText"] = "JSXText"; - AST_TOKEN_TYPES["Keyword"] = "Keyword"; - AST_TOKEN_TYPES["Null"] = "Null"; - AST_TOKEN_TYPES["Numeric"] = "Numeric"; - AST_TOKEN_TYPES["Punctuator"] = "Punctuator"; - AST_TOKEN_TYPES["RegularExpression"] = "RegularExpression"; - AST_TOKEN_TYPES["String"] = "String"; - AST_TOKEN_TYPES["Template"] = "Template"; - // comment types - AST_TOKEN_TYPES["Block"] = "Block"; - AST_TOKEN_TYPES["Line"] = "Line"; -})(AST_TOKEN_TYPES || (AST_TOKEN_TYPES = {})); -exports.AST_TOKEN_TYPES = AST_TOKEN_TYPES; -//# sourceMappingURL=ast-token-types.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ast-token-types.js.map b/node_modules/@typescript-eslint/types/dist/ast-token-types.js.map deleted file mode 100644 index 10b2fa5f24..0000000000 --- a/node_modules/@typescript-eslint/types/dist/ast-token-types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ast-token-types.js","sourceRoot":"","sources":["../src/ast-token-types.ts"],"names":[],"mappings":";;;AAAA,IAAK,eAgBJ;AAhBD,WAAK,eAAe;IAClB,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,sCAAmB,CAAA;IACnB,4CAAyB,CAAA;IACzB,0DAAuC,CAAA;IACvC,oCAAiB,CAAA;IACjB,wCAAqB,CAAA;IAErB,gBAAgB;IAChB,kCAAe,CAAA;IACf,gCAAa,CAAA;AACf,CAAC,EAhBI,eAAe,KAAf,eAAe,QAgBnB;AAEQ,0CAAe"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/index.d.ts b/node_modules/@typescript-eslint/types/dist/index.d.ts index 8f03adbbc9..63065d4ea1 100644 --- a/node_modules/@typescript-eslint/types/dist/index.d.ts +++ b/node_modules/@typescript-eslint/types/dist/index.d.ts @@ -1,7 +1,6 @@ -import * as TSESTree from './ts-estree'; -export { AST_NODE_TYPES } from './ast-node-types'; -export { AST_TOKEN_TYPES } from './ast-token-types'; +export { AST_NODE_TYPES } from './ast-spec'; +export { AST_TOKEN_TYPES } from './ast-spec'; export * from './lib'; export * from './parser-options'; -export { TSESTree }; +export * from './ts-estree'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/index.d.ts.map b/node_modules/@typescript-eslint/types/dist/index.d.ts.map index bdebc7c4fd..92d180006e 100644 --- a/node_modules/@typescript-eslint/types/dist/index.d.ts.map +++ b/node_modules/@typescript-eslint/types/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/index.js b/node_modules/@typescript-eslint/types/dist/index.js index cf76bb3870..8fec5e79c1 100644 --- a/node_modules/@typescript-eslint/types/dist/index.js +++ b/node_modules/@typescript-eslint/types/dist/index.js @@ -6,31 +6,16 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi if (k2 === undefined) k2 = k; o[k2] = m[k]; })); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.TSESTree = exports.AST_TOKEN_TYPES = exports.AST_NODE_TYPES = void 0; -// TODO(Brad Zacher) - convert this to export * as TSESTree from './ts-estree' -// https://github.com/sandersn/downlevel-dts/pull/42 -const TSESTree = __importStar(require("./ts-estree")); -exports.TSESTree = TSESTree; -var ast_node_types_1 = require("./ast-node-types"); -Object.defineProperty(exports, "AST_NODE_TYPES", { enumerable: true, get: function () { return ast_node_types_1.AST_NODE_TYPES; } }); -var ast_token_types_1 = require("./ast-token-types"); -Object.defineProperty(exports, "AST_TOKEN_TYPES", { enumerable: true, get: function () { return ast_token_types_1.AST_TOKEN_TYPES; } }); +exports.AST_TOKEN_TYPES = exports.AST_NODE_TYPES = void 0; +var ast_spec_1 = require("./ast-spec"); +Object.defineProperty(exports, "AST_NODE_TYPES", { enumerable: true, get: function () { return ast_spec_1.AST_NODE_TYPES; } }); +var ast_spec_2 = require("./ast-spec"); +Object.defineProperty(exports, "AST_TOKEN_TYPES", { enumerable: true, get: function () { return ast_spec_2.AST_TOKEN_TYPES; } }); __exportStar(require("./lib"), exports); __exportStar(require("./parser-options"), exports); +__exportStar(require("./ts-estree"), exports); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/index.js.map b/node_modules/@typescript-eslint/types/dist/index.js.map index 43ca6e5687..730857290e 100644 --- a/node_modules/@typescript-eslint/types/dist/index.js.map +++ b/node_modules/@typescript-eslint/types/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAA8E;AAC9E,oDAAoD;AACpD,sDAAwC;AAM/B,4BAAQ;AAJjB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,wCAAsB;AACtB,mDAAiC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,wCAAsB;AACtB,mDAAiC;AACjC,8CAA4B"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/lib.d.ts b/node_modules/@typescript-eslint/types/dist/lib.d.ts index afbb6a1992..96ce972550 100644 --- a/node_modules/@typescript-eslint/types/dist/lib.d.ts +++ b/node_modules/@typescript-eslint/types/dist/lib.d.ts @@ -1,3 +1,3 @@ -declare type Lib = 'es5' | 'es6' | 'es2015' | 'es7' | 'es2016' | 'es2017' | 'es2018' | 'es2019' | 'es2020' | 'esnext' | 'dom' | 'dom.iterable' | 'webworker' | 'webworker.importscripts' | 'scripthost' | 'es2015.core' | 'es2015.collection' | 'es2015.generator' | 'es2015.iterable' | 'es2015.promise' | 'es2015.proxy' | 'es2015.reflect' | 'es2015.symbol' | 'es2015.symbol.wellknown' | 'es2016.array.include' | 'es2017.object' | 'es2017.sharedmemory' | 'es2017.string' | 'es2017.intl' | 'es2017.typedarrays' | 'es2018.asyncgenerator' | 'es2018.asynciterable' | 'es2018.intl' | 'es2018.promise' | 'es2018.regexp' | 'es2019.array' | 'es2019.object' | 'es2019.string' | 'es2019.symbol' | 'es2020.bigint' | 'es2020.promise' | 'es2020.string' | 'es2020.symbol.wellknown' | 'es2020.intl' | 'esnext.array' | 'esnext.symbol' | 'esnext.asynciterable' | 'esnext.intl' | 'esnext.bigint' | 'esnext.string' | 'esnext.promise' | 'es2016.full' | 'es2017.full' | 'es2018.full' | 'es2019.full' | 'es2020.full' | 'esnext.full' | 'lib'; +declare type Lib = 'es5' | 'es6' | 'es2015' | 'es7' | 'es2016' | 'es2017' | 'es2018' | 'es2019' | 'es2020' | 'es2021' | 'esnext' | 'dom' | 'dom.iterable' | 'webworker' | 'webworker.importscripts' | 'webworker.iterable' | 'scripthost' | 'es2015.core' | 'es2015.collection' | 'es2015.generator' | 'es2015.iterable' | 'es2015.promise' | 'es2015.proxy' | 'es2015.reflect' | 'es2015.symbol' | 'es2015.symbol.wellknown' | 'es2016.array.include' | 'es2017.object' | 'es2017.sharedmemory' | 'es2017.string' | 'es2017.intl' | 'es2017.typedarrays' | 'es2018.asyncgenerator' | 'es2018.asynciterable' | 'es2018.intl' | 'es2018.promise' | 'es2018.regexp' | 'es2019.array' | 'es2019.object' | 'es2019.string' | 'es2019.symbol' | 'es2020.bigint' | 'es2020.promise' | 'es2020.sharedmemory' | 'es2020.string' | 'es2020.symbol.wellknown' | 'es2020.intl' | 'es2021.promise' | 'es2021.string' | 'es2021.weakref' | 'esnext.array' | 'esnext.symbol' | 'esnext.asynciterable' | 'esnext.intl' | 'esnext.bigint' | 'esnext.string' | 'esnext.promise' | 'esnext.weakref' | 'es2016.full' | 'es2017.full' | 'es2018.full' | 'es2019.full' | 'es2020.full' | 'es2021.full' | 'esnext.full' | 'lib'; export { Lib }; //# sourceMappingURL=lib.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/lib.d.ts.map b/node_modules/@typescript-eslint/types/dist/lib.d.ts.map index d464c4630e..064ec7aa0c 100644 --- a/node_modules/@typescript-eslint/types/dist/lib.d.ts.map +++ b/node_modules/@typescript-eslint/types/dist/lib.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAIA,aAAK,GAAG,GACJ,KAAK,GACL,KAAK,GACL,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,cAAc,GACd,WAAW,GACX,yBAAyB,GACzB,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB,sBAAsB,GACtB,eAAe,GACf,qBAAqB,GACrB,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,GACtB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB,aAAa,GACb,cAAc,GACd,eAAe,GACf,sBAAsB,GACtB,aAAa,GACb,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,KAAK,CAAC;AAEV,OAAO,EAAE,GAAG,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAIA,aAAK,GAAG,GACJ,KAAK,GACL,KAAK,GACL,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,cAAc,GACd,WAAW,GACX,yBAAyB,GACzB,oBAAoB,GACpB,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB,sBAAsB,GACtB,eAAe,GACf,qBAAqB,GACrB,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,GACtB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,qBAAqB,GACrB,eAAe,GACf,yBAAyB,GACzB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,sBAAsB,GACtB,aAAa,GACb,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,KAAK,CAAC;AAEV,OAAO,EAAE,GAAG,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts index 5d2953d397..fb67193f65 100644 --- a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +++ b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts @@ -1,4 +1,5 @@ import { Lib } from './lib'; +import type { Program } from 'typescript'; declare type DebugLevel = boolean | ('typescript-eslint' | 'eslint' | 'typescript')[]; declare type EcmaVersion = 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020; declare type SourceType = 'script' | 'module'; @@ -15,9 +16,11 @@ interface ParserOptions { debugLevel?: DebugLevel; errorOnTypeScriptSyntacticAndSemanticIssues?: boolean; errorOnUnknownASTType?: boolean; + EXPERIMENTAL_useSourceOfProjectReferenceRedirect?: boolean; extraFileExtensions?: string[]; filePath?: string; loc?: boolean; + program?: Program; project?: string | string[]; projectFolderIgnoreList?: (string | RegExp)[]; range?: boolean; diff --git a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map index 4ebe73379e..9751edd8e4 100644 --- a/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map +++ b/node_modules/@typescript-eslint/types/dist/parser-options.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,aAAK,UAAU,GAAG,OAAO,GAAG,CAAC,mBAAmB,GAAG,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;AAE9E,aAAK,WAAW,GACZ,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,EAAE,GACF,EAAE,GACF,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,aAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtC,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAGZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2CAA2C,CAAC,EAAE,OAAO,CAAC;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,aAAK,UAAU,GAAG,OAAO,GAAG,CAAC,mBAAmB,GAAG,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC;AAE9E,aAAK,WAAW,GACZ,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,CAAC,GACD,EAAE,GACF,EAAE,GACF,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,aAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtC,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;IAGZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2CAA2C,CAAC,EAAE,OAAO,CAAC;IACtD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gDAAgD,CAAC,EAAE,OAAO,CAAC;IAC3D,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,uBAAuB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C;AAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts b/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts index 1bf72ebafb..f4fece7199 100644 --- a/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts +++ b/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts @@ -1,1070 +1,8 @@ -import { AST_NODE_TYPES } from './ast-node-types'; -import { AST_TOKEN_TYPES } from './ast-token-types'; -export interface LineAndColumnData { - /** - * Line number (1-indexed) - */ - line: number; - /** - * Column number on the line (0-indexed) - */ - column: number; +import * as TSESTree from './ast-spec'; +declare module './ast-spec' { + interface BaseNode { + parent?: TSESTree.Node; + } } -export interface SourceLocation { - /** - * The position of the first character of the parsed source region - */ - start: LineAndColumnData; - /** - * The position of the first character after the parsed source region - */ - end: LineAndColumnData; -} -export declare type Range = [number, number]; -export interface BaseNode { - /** - * The source location information of the node. - */ - loc: SourceLocation; - /** - * An array of two numbers. - * Both numbers are a 0-based index which is the position in the array of source code characters. - * The first is the start position of the node, the second is the end position of the node. - */ - range: Range; - /** - * The parent node of the current node - */ - parent?: Node; -} -interface BaseToken extends BaseNode { - value: string; -} -export interface BooleanToken extends BaseToken { - type: AST_TOKEN_TYPES.Boolean; -} -export interface IdentifierToken extends BaseToken { - type: AST_TOKEN_TYPES.Identifier; -} -export interface JSXIdentifierToken extends BaseToken { - type: AST_TOKEN_TYPES.JSXIdentifier; -} -export interface JSXTextToken extends BaseToken { - type: AST_TOKEN_TYPES.JSXText; -} -export interface KeywordToken extends BaseToken { - type: AST_TOKEN_TYPES.Keyword; -} -export interface NullToken extends BaseToken { - type: AST_TOKEN_TYPES.Null; -} -export interface NumericToken extends BaseToken { - type: AST_TOKEN_TYPES.Numeric; -} -export interface PunctuatorToken extends BaseToken { - type: AST_TOKEN_TYPES.Punctuator; -} -export interface RegularExpressionToken extends BaseToken { - type: AST_TOKEN_TYPES.RegularExpression; - regex: { - pattern: string; - flags: string; - }; -} -export interface StringToken extends BaseToken { - type: AST_TOKEN_TYPES.String; -} -export interface TemplateToken extends BaseToken { - type: AST_TOKEN_TYPES.Template; -} -export interface BlockComment extends BaseToken { - type: AST_TOKEN_TYPES.Block; -} -export interface LineComment extends BaseToken { - type: AST_TOKEN_TYPES.Line; -} -export declare type Comment = BlockComment | LineComment; -export declare type Token = BooleanToken | Comment | IdentifierToken | JSXIdentifierToken | JSXTextToken | KeywordToken | NullToken | NumericToken | PunctuatorToken | RegularExpressionToken | StringToken | TemplateToken; -export declare type OptionalRangeAndLoc = Pick> & { - range?: Range; - loc?: SourceLocation; -}; -export declare type Node = ArrayExpression | ArrayPattern | ArrowFunctionExpression | AssignmentExpression | AssignmentPattern | AwaitExpression | BigIntLiteral | BinaryExpression | BlockStatement | BreakStatement | CallExpression | CatchClause | ChainExpression | ClassBody | ClassDeclaration | ClassExpression | ClassProperty | ConditionalExpression | ContinueStatement | DebuggerStatement | Decorator | DoWhileStatement | EmptyStatement | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ExportSpecifier | ExpressionStatement | ForInStatement | ForOfStatement | ForStatement | FunctionDeclaration | FunctionExpression | Identifier | IfStatement | ImportDeclaration | ImportDefaultSpecifier | ImportExpression | ImportNamespaceSpecifier | ImportSpecifier | JSXAttribute | JSXClosingElement | JSXClosingFragment | JSXElement | JSXEmptyExpression | JSXExpressionContainer | JSXFragment | JSXIdentifier | JSXMemberExpression | JSXOpeningElement | JSXOpeningFragment | JSXSpreadAttribute | JSXSpreadChild | JSXText | LabeledStatement | Literal | LogicalExpression | MemberExpression | MetaProperty | MethodDefinition | NewExpression | ObjectExpression | ObjectPattern | Program | Property | RestElement | ReturnStatement | SequenceExpression | SpreadElement | Super | SwitchCase | SwitchStatement | TaggedTemplateExpression | TemplateElement | TemplateLiteral | ThisExpression | ThrowStatement | TryStatement | TSAbstractClassProperty | TSAbstractKeyword | TSAbstractMethodDefinition | TSAnyKeyword | TSArrayType | TSAsExpression | TSAsyncKeyword | TSBigIntKeyword | TSBooleanKeyword | TSCallSignatureDeclaration | TSClassImplements | TSConditionalType | TSConstructorType | TSConstructSignatureDeclaration | TSDeclareFunction | TSDeclareKeyword | TSEmptyBodyFunctionExpression | TSEnumDeclaration | TSEnumMember | TSExportAssignment | TSExportKeyword | TSExternalModuleReference | TSFunctionType | TSImportEqualsDeclaration | TSImportType | TSIndexedAccessType | TSIndexSignature | TSInferType | TSInterfaceBody | TSInterfaceDeclaration | TSInterfaceHeritage | TSIntersectionType | TSLiteralType | TSMappedType | TSMethodSignature | TSModuleBlock | TSModuleDeclaration | TSNamedTupleMember | TSNamespaceExportDeclaration | TSNeverKeyword | TSNonNullExpression | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParameterProperty | TSParenthesizedType | TSPrivateKeyword | TSPropertySignature | TSProtectedKeyword | TSPublicKeyword | TSQualifiedName | TSReadonlyKeyword | TSRestType | TSStaticKeyword | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSTypeAliasDeclaration | TSTypeAnnotation | TSTypeAssertion | TSTypeLiteral | TSTypeOperator | TSTypeParameter | TSTypeParameterDeclaration | TSTypeParameterInstantiation | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword | UnaryExpression | UpdateExpression | VariableDeclaration | VariableDeclarator | WhileStatement | WithStatement | YieldExpression; -export declare type Accessibility = 'public' | 'protected' | 'private'; -export declare type BindingPattern = ArrayPattern | ObjectPattern; -export declare type BindingName = BindingPattern | Identifier; -export declare type ChainElement = CallExpression | MemberExpression | TSNonNullExpression; -export declare type ClassElement = ClassProperty | MethodDefinition | TSAbstractClassProperty | TSAbstractMethodDefinition | TSIndexSignature; -export declare type ClassProperty = ClassPropertyComputedName | ClassPropertyNonComputedName; -export declare type DeclarationStatement = ClassDeclaration | ClassExpression | ExportDefaultDeclaration | ExportAllDeclaration | ExportNamedDeclaration | FunctionDeclaration | TSDeclareFunction | TSImportEqualsDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSNamespaceExportDeclaration | TSTypeAliasDeclaration | TSEnumDeclaration; -export declare type DestructuringPattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression; -export declare type EntityName = Identifier | TSQualifiedName; -export declare type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | TSDeclareFunction | TSEnumDeclaration | TSInterfaceDeclaration | TSModuleDeclaration | TSTypeAliasDeclaration | VariableDeclaration; -export declare type Expression = ArrowFunctionExpression | AssignmentExpression | BinaryExpression | ChainExpression | ConditionalExpression | ImportExpression | JSXClosingElement | JSXClosingFragment | JSXExpressionContainer | JSXOpeningElement | JSXOpeningFragment | JSXSpreadChild | LogicalExpression | NewExpression | RestElement | SequenceExpression | SpreadElement | TSAsExpression | TSUnaryExpression | YieldExpression; -export declare type ForInitialiser = Expression | VariableDeclaration; -export declare type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier; -export declare type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement; -export declare type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText; -export declare type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer; -export declare type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression; -export declare type LeftHandSideExpression = CallExpression | ClassExpression | ClassDeclaration | FunctionExpression | LiteralExpression | MemberExpression | PrimaryExpression | TaggedTemplateExpression | TSNonNullExpression | TSAsExpression | ArrowFunctionExpression; -export declare type Literal = BigIntLiteral | BooleanLiteral | NumberLiteral | NullLiteral | RegExpLiteral | StringLiteral; -export declare type LiteralExpression = Literal | TemplateLiteral; -export declare type MemberExpression = MemberExpressionComputedName | MemberExpressionNonComputedName; -export declare type MethodDefinition = MethodDefinitionComputedName | MethodDefinitionNonComputedName; -export declare type Modifier = TSAbstractKeyword | TSAsyncKeyword | TSDeclareKeyword | TSExportKeyword | TSPublicKeyword | TSPrivateKeyword | TSProtectedKeyword | TSReadonlyKeyword | TSStaticKeyword; -export declare type ObjectLiteralElementLike = MethodDefinition | Property | SpreadElement | TSAbstractMethodDefinition; -export declare type Parameter = ArrayPattern | AssignmentPattern | Identifier | ObjectPattern | RestElement | TSParameterProperty; -export declare type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression | TSNullKeyword; -export declare type ProgramStatement = ClassDeclaration | ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration | Statement | TSDeclareFunction | TSEnumDeclaration | TSExportAssignment | TSImportEqualsDeclaration | TSInterfaceDeclaration | TSNamespaceExportDeclaration | TSTypeAliasDeclaration; -export declare type Property = PropertyComputedName | PropertyNonComputedName; -export declare type PropertyName = PropertyNameComputed | PropertyNameNonComputed; -export declare type PropertyNameComputed = Expression; -export declare type PropertyNameNonComputed = Identifier | StringLiteral | NumberLiteral; -export declare type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ImportDeclaration | LabeledStatement | TSModuleBlock | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WithStatement; -export declare type TSAbstractClassProperty = TSAbstractClassPropertyComputedName | TSAbstractClassPropertyNonComputedName; -export declare type TSAbstractMethodDefinition = TSAbstractMethodDefinitionComputedName | TSAbstractMethodDefinitionNonComputedName; -export declare type TSMethodSignature = TSMethodSignatureComputedName | TSMethodSignatureNonComputedName; -export declare type TSPropertySignature = TSPropertySignatureComputedName | TSPropertySignatureNonComputedName; -export declare type TSEnumMember = TSEnumMemberComputedName | TSEnumMemberNonComputedName; -export declare type TSUnaryExpression = AwaitExpression | LeftHandSideExpression | TSTypeAssertion | UnaryExpression | UpdateExpression; -export declare type TypeElement = TSCallSignatureDeclaration | TSConstructSignatureDeclaration | TSIndexSignature | TSMethodSignature | TSPropertySignature; -export declare type TypeNode = TSAnyKeyword | TSArrayType | TSBigIntKeyword | TSBooleanKeyword | TSConditionalType | TSConstructorType | TSFunctionType | TSImportType | TSIndexedAccessType | TSInferType | TSInterfaceHeritage | TSIntersectionType | TSLiteralType | TSMappedType | TSNamedTupleMember | TSNeverKeyword | TSNullKeyword | TSNumberKeyword | TSObjectKeyword | TSOptionalType | TSParenthesizedType | TSRestType | TSStringKeyword | TSSymbolKeyword | TSThisType | TSTupleType | TSTypeLiteral | TSTypeOperator | TSTypePredicate | TSTypeQuery | TSTypeReference | TSUndefinedKeyword | TSUnionType | TSUnknownKeyword | TSVoidKeyword; -interface BinaryExpressionBase extends BaseNode { - operator: string; - left: Expression; - right: Expression; -} -interface CallExpressionBase extends BaseNode { - callee: LeftHandSideExpression; - arguments: Expression[]; - typeParameters?: TSTypeParameterInstantiation; - optional: boolean; -} -interface ClassDeclarationBase extends BaseNode { - typeParameters?: TSTypeParameterDeclaration; - superTypeParameters?: TSTypeParameterInstantiation; - id: Identifier | null; - body: ClassBody; - superClass: LeftHandSideExpression | null; - implements?: TSClassImplements[]; - abstract?: boolean; - declare?: boolean; - decorators?: Decorator[]; -} -/** this should not be directly used - instead use ClassPropertyComputedNameBase or ClassPropertyNonComputedNameBase */ -interface ClassPropertyBase extends BaseNode { - key: PropertyName; - value: Expression | null; - computed: boolean; - static: boolean; - declare: boolean; - readonly?: boolean; - decorators?: Decorator[]; - accessibility?: Accessibility; - optional?: boolean; - definite?: boolean; - typeAnnotation?: TSTypeAnnotation; -} -interface ClassPropertyComputedNameBase extends ClassPropertyBase { - key: PropertyNameComputed; - computed: true; -} -interface ClassPropertyNonComputedNameBase extends ClassPropertyBase { - key: PropertyNameNonComputed; - computed: false; -} -interface FunctionDeclarationBase extends BaseNode { - id: Identifier | null; - generator: boolean; - expression: boolean; - async: boolean; - params: Parameter[]; - body?: BlockStatement | null; - returnType?: TSTypeAnnotation; - typeParameters?: TSTypeParameterDeclaration; - declare?: boolean; -} -interface FunctionSignatureBase extends BaseNode { - params: Parameter[]; - returnType?: TSTypeAnnotation; - typeParameters?: TSTypeParameterDeclaration; -} -interface LiteralBase extends BaseNode { - raw: string; - value: string | boolean | null | number | RegExp | bigint; - regex?: { - pattern: string; - flags: string; - }; -} -/** this should not be directly used - instead use MemberExpressionComputedNameBase or MemberExpressionNonComputedNameBase */ -interface MemberExpressionBase extends BaseNode { - object: LeftHandSideExpression; - property: Expression | Identifier; - computed: boolean; - optional: boolean; -} -interface MemberExpressionComputedNameBase extends MemberExpressionBase { - property: Expression; - computed: true; -} -interface MemberExpressionNonComputedNameBase extends MemberExpressionBase { - property: Identifier; - computed: false; -} -/** this should not be directly used - instead use MethodDefinitionComputedNameBase or MethodDefinitionNonComputedNameBase */ -interface MethodDefinitionBase extends BaseNode { - key: PropertyName; - value: FunctionExpression | TSEmptyBodyFunctionExpression; - computed: boolean; - static: boolean; - kind: 'method' | 'get' | 'set' | 'constructor'; - optional?: boolean; - decorators?: Decorator[]; - accessibility?: Accessibility; - typeParameters?: TSTypeParameterDeclaration; -} -interface MethodDefinitionComputedNameBase extends MethodDefinitionBase { - key: PropertyNameComputed; - computed: true; -} -interface MethodDefinitionNonComputedNameBase extends MethodDefinitionBase { - key: PropertyNameNonComputed; - computed: false; -} -interface PropertyBase extends BaseNode { - type: AST_NODE_TYPES.Property; - key: PropertyName; - value: Expression | AssignmentPattern | BindingName | TSEmptyBodyFunctionExpression; - computed: boolean; - method: boolean; - shorthand: boolean; - optional?: boolean; - kind: 'init' | 'get' | 'set'; -} -interface TSEnumMemberBase extends BaseNode { - type: AST_NODE_TYPES.TSEnumMember; - id: PropertyNameNonComputed | PropertyNameComputed; - initializer?: Expression; - computed?: boolean; -} -interface TSHeritageBase extends BaseNode { - expression: Expression; - typeParameters?: TSTypeParameterInstantiation; -} -interface TSMethodSignatureBase extends BaseNode { - type: AST_NODE_TYPES.TSMethodSignature; - key: PropertyName; - computed: boolean; - params: Parameter[]; - optional?: boolean; - returnType?: TSTypeAnnotation; - readonly?: boolean; - typeParameters?: TSTypeParameterDeclaration; - accessibility?: Accessibility; - export?: boolean; - static?: boolean; -} -interface TSPropertySignatureBase extends BaseNode { - type: AST_NODE_TYPES.TSPropertySignature; - key: PropertyName; - optional?: boolean; - computed: boolean; - typeAnnotation?: TSTypeAnnotation; - initializer?: Expression; - readonly?: boolean; - static?: boolean; - export?: boolean; - accessibility?: Accessibility; -} -interface UnaryExpressionBase extends BaseNode { - operator: string; - prefix: boolean; - argument: LeftHandSideExpression | Literal | UnaryExpression; -} -export interface ArrayExpression extends BaseNode { - type: AST_NODE_TYPES.ArrayExpression; - elements: Expression[]; -} -export interface ArrayPattern extends BaseNode { - type: AST_NODE_TYPES.ArrayPattern; - elements: (DestructuringPattern | null)[]; - typeAnnotation?: TSTypeAnnotation; - optional?: boolean; - decorators?: Decorator[]; -} -export interface ArrowFunctionExpression extends BaseNode { - type: AST_NODE_TYPES.ArrowFunctionExpression; - generator: boolean; - id: null; - params: Parameter[]; - body: Expression | BlockStatement; - async: boolean; - expression: boolean; - returnType?: TSTypeAnnotation; - typeParameters?: TSTypeParameterDeclaration; -} -export interface AssignmentExpression extends BinaryExpressionBase { - type: AST_NODE_TYPES.AssignmentExpression; - operator: '-=' | '??=' | '**=' | '*=' | '/=' | '&&=' | '&=' | '%=' | '^=' | '+=' | '<<=' | '=' | '>>=' | '>>>=' | '|=' | '||='; -} -export interface AssignmentPattern extends BaseNode { - type: AST_NODE_TYPES.AssignmentPattern; - left: BindingName; - right: Expression; - typeAnnotation?: TSTypeAnnotation; - optional?: boolean; - decorators?: Decorator[]; -} -export interface AwaitExpression extends BaseNode { - type: AST_NODE_TYPES.AwaitExpression; - argument: TSUnaryExpression; -} -export interface BigIntLiteral extends LiteralBase { - type: AST_NODE_TYPES.Literal; - value: bigint | null; - bigint: string; -} -export interface BinaryExpression extends BinaryExpressionBase { - type: AST_NODE_TYPES.BinaryExpression; -} -export interface BlockStatement extends BaseNode { - type: AST_NODE_TYPES.BlockStatement; - body: Statement[]; -} -export interface BooleanLiteral extends LiteralBase { - type: AST_NODE_TYPES.Literal; - value: boolean; -} -export interface BreakStatement extends BaseNode { - type: AST_NODE_TYPES.BreakStatement; - label: Identifier | null; -} -export interface ChainExpression extends BaseNode { - type: AST_NODE_TYPES.ChainExpression; - expression: ChainElement; -} -export interface CallExpression extends CallExpressionBase { - type: AST_NODE_TYPES.CallExpression; -} -export interface CatchClause extends BaseNode { - type: AST_NODE_TYPES.CatchClause; - param: BindingName | null; - body: BlockStatement; -} -export interface ClassBody extends BaseNode { - type: AST_NODE_TYPES.ClassBody; - body: ClassElement[]; -} -export interface ClassDeclaration extends ClassDeclarationBase { - type: AST_NODE_TYPES.ClassDeclaration; -} -export interface ClassExpression extends ClassDeclarationBase { - type: AST_NODE_TYPES.ClassExpression; -} -export interface ClassPropertyComputedName extends ClassPropertyComputedNameBase { - type: AST_NODE_TYPES.ClassProperty; -} -export interface ClassPropertyNonComputedName extends ClassPropertyNonComputedNameBase { - type: AST_NODE_TYPES.ClassProperty; -} -export interface ConditionalExpression extends BaseNode { - type: AST_NODE_TYPES.ConditionalExpression; - test: Expression; - consequent: Expression; - alternate: Expression; -} -export interface ContinueStatement extends BaseNode { - type: AST_NODE_TYPES.ContinueStatement; - label: Identifier | null; -} -export interface DebuggerStatement extends BaseNode { - type: AST_NODE_TYPES.DebuggerStatement; -} -export interface Decorator extends BaseNode { - type: AST_NODE_TYPES.Decorator; - expression: LeftHandSideExpression; -} -export interface DoWhileStatement extends BaseNode { - type: AST_NODE_TYPES.DoWhileStatement; - test: Expression; - body: Statement; -} -export interface EmptyStatement extends BaseNode { - type: AST_NODE_TYPES.EmptyStatement; -} -export interface ExportAllDeclaration extends BaseNode { - type: AST_NODE_TYPES.ExportAllDeclaration; - source: Expression | null; - exportKind: 'type' | 'value'; - exported: Identifier | null; -} -export interface ExportDefaultDeclaration extends BaseNode { - type: AST_NODE_TYPES.ExportDefaultDeclaration; - declaration: ExportDeclaration | Expression; - exportKind: 'type' | 'value'; -} -export interface ExportNamedDeclaration extends BaseNode { - type: AST_NODE_TYPES.ExportNamedDeclaration; - declaration: ExportDeclaration | null; - specifiers: ExportSpecifier[]; - source: Expression | null; - exportKind: 'type' | 'value'; -} -export interface ExportSpecifier extends BaseNode { - type: AST_NODE_TYPES.ExportSpecifier; - local: Identifier; - exported: Identifier; -} -export interface ExpressionStatement extends BaseNode { - type: AST_NODE_TYPES.ExpressionStatement; - expression: Expression; - directive?: string; -} -export interface ForInStatement extends BaseNode { - type: AST_NODE_TYPES.ForInStatement; - left: ForInitialiser; - right: Expression; - body: Statement; -} -export interface ForOfStatement extends BaseNode { - type: AST_NODE_TYPES.ForOfStatement; - left: ForInitialiser; - right: Expression; - body: Statement; - await: boolean; -} -export interface ForStatement extends BaseNode { - type: AST_NODE_TYPES.ForStatement; - init: Expression | ForInitialiser | null; - test: Expression | null; - update: Expression | null; - body: Statement; -} -export interface FunctionDeclaration extends FunctionDeclarationBase { - type: AST_NODE_TYPES.FunctionDeclaration; - body: BlockStatement; -} -export interface FunctionExpression extends FunctionDeclarationBase { - type: AST_NODE_TYPES.FunctionExpression; - body: BlockStatement; -} -export interface Identifier extends BaseNode { - type: AST_NODE_TYPES.Identifier; - name: string; - typeAnnotation?: TSTypeAnnotation; - optional?: boolean; - decorators?: Decorator[]; -} -export interface IfStatement extends BaseNode { - type: AST_NODE_TYPES.IfStatement; - test: Expression; - consequent: Statement; - alternate: Statement | null; -} -export interface ImportDeclaration extends BaseNode { - type: AST_NODE_TYPES.ImportDeclaration; - source: Literal; - specifiers: ImportClause[]; - importKind: 'type' | 'value'; -} -export interface ImportDefaultSpecifier extends BaseNode { - type: AST_NODE_TYPES.ImportDefaultSpecifier; - local: Identifier; -} -export interface ImportExpression extends BaseNode { - type: AST_NODE_TYPES.ImportExpression; - source: Expression; -} -export interface ImportNamespaceSpecifier extends BaseNode { - type: AST_NODE_TYPES.ImportNamespaceSpecifier; - local: Identifier; -} -export interface ImportSpecifier extends BaseNode { - type: AST_NODE_TYPES.ImportSpecifier; - local: Identifier; - imported: Identifier; -} -export interface JSXAttribute extends BaseNode { - type: AST_NODE_TYPES.JSXAttribute; - name: JSXIdentifier; - value: Literal | JSXExpression | null; -} -export interface JSXClosingElement extends BaseNode { - type: AST_NODE_TYPES.JSXClosingElement; - name: JSXTagNameExpression; -} -export interface JSXClosingFragment extends BaseNode { - type: AST_NODE_TYPES.JSXClosingFragment; -} -export interface JSXElement extends BaseNode { - type: AST_NODE_TYPES.JSXElement; - openingElement: JSXOpeningElement; - closingElement: JSXClosingElement | null; - children: JSXChild[]; -} -export interface JSXEmptyExpression extends BaseNode { - type: AST_NODE_TYPES.JSXEmptyExpression; -} -export interface JSXExpressionContainer extends BaseNode { - type: AST_NODE_TYPES.JSXExpressionContainer; - expression: Expression | JSXEmptyExpression; -} -export interface JSXFragment extends BaseNode { - type: AST_NODE_TYPES.JSXFragment; - openingFragment: JSXOpeningFragment; - closingFragment: JSXClosingFragment; - children: JSXChild[]; -} -export interface JSXIdentifier extends BaseNode { - type: AST_NODE_TYPES.JSXIdentifier; - name: string; -} -export interface JSXMemberExpression extends BaseNode { - type: AST_NODE_TYPES.JSXMemberExpression; - object: JSXTagNameExpression; - property: JSXIdentifier; -} -export interface JSXOpeningElement extends BaseNode { - type: AST_NODE_TYPES.JSXOpeningElement; - typeParameters?: TSTypeParameterInstantiation; - selfClosing: boolean; - name: JSXTagNameExpression; - attributes: JSXAttribute[]; -} -export interface JSXOpeningFragment extends BaseNode { - type: AST_NODE_TYPES.JSXOpeningFragment; -} -export interface JSXSpreadAttribute extends BaseNode { - type: AST_NODE_TYPES.JSXSpreadAttribute; - argument: Expression; -} -export interface JSXSpreadChild extends BaseNode { - type: AST_NODE_TYPES.JSXSpreadChild; - expression: Expression | JSXEmptyExpression; -} -export interface JSXText extends BaseNode { - type: AST_NODE_TYPES.JSXText; - value: string; - raw: string; -} -export interface LabeledStatement extends BaseNode { - type: AST_NODE_TYPES.LabeledStatement; - label: Identifier; - body: Statement; -} -export interface LogicalExpression extends BinaryExpressionBase { - type: AST_NODE_TYPES.LogicalExpression; -} -export interface MemberExpressionComputedName extends MemberExpressionComputedNameBase { - type: AST_NODE_TYPES.MemberExpression; -} -export interface MemberExpressionNonComputedName extends MemberExpressionNonComputedNameBase { - type: AST_NODE_TYPES.MemberExpression; -} -export interface MetaProperty extends BaseNode { - type: AST_NODE_TYPES.MetaProperty; - meta: Identifier; - property: Identifier; -} -export interface MethodDefinitionComputedName extends MethodDefinitionComputedNameBase { - type: AST_NODE_TYPES.MethodDefinition; -} -export interface MethodDefinitionNonComputedName extends MethodDefinitionNonComputedNameBase { - type: AST_NODE_TYPES.MethodDefinition; -} -export interface NewExpression extends BaseNode { - type: AST_NODE_TYPES.NewExpression; - callee: LeftHandSideExpression; - arguments: Expression[]; - typeParameters?: TSTypeParameterInstantiation; -} -export interface NumberLiteral extends LiteralBase { - type: AST_NODE_TYPES.Literal; - value: number; -} -export interface NullLiteral extends LiteralBase { - type: AST_NODE_TYPES.Literal; - value: null; -} -export interface ObjectExpression extends BaseNode { - type: AST_NODE_TYPES.ObjectExpression; - properties: ObjectLiteralElementLike[]; -} -export interface ObjectPattern extends BaseNode { - type: AST_NODE_TYPES.ObjectPattern; - properties: (Property | RestElement)[]; - typeAnnotation?: TSTypeAnnotation; - optional?: boolean; - decorators?: Decorator[]; -} -export interface Program extends BaseNode { - type: AST_NODE_TYPES.Program; - body: ProgramStatement[]; - sourceType: 'module' | 'script'; - comments?: Comment[]; - tokens?: Token[]; -} -export interface PropertyComputedName extends PropertyBase { - key: PropertyNameComputed; - computed: true; -} -export interface PropertyNonComputedName extends PropertyBase { - key: PropertyNameNonComputed; - computed: false; -} -export interface RegExpLiteral extends LiteralBase { - type: AST_NODE_TYPES.Literal; - value: RegExp; -} -export interface RestElement extends BaseNode { - type: AST_NODE_TYPES.RestElement; - argument: DestructuringPattern; - typeAnnotation?: TSTypeAnnotation; - optional?: boolean; - value?: AssignmentPattern; - decorators?: Decorator[]; -} -export interface ReturnStatement extends BaseNode { - type: AST_NODE_TYPES.ReturnStatement; - argument: Expression | null; -} -export interface SequenceExpression extends BaseNode { - type: AST_NODE_TYPES.SequenceExpression; - expressions: Expression[]; -} -export interface SpreadElement extends BaseNode { - type: AST_NODE_TYPES.SpreadElement; - argument: Expression; -} -export interface StringLiteral extends LiteralBase { - type: AST_NODE_TYPES.Literal; - value: string; -} -export interface Super extends BaseNode { - type: AST_NODE_TYPES.Super; -} -export interface SwitchCase extends BaseNode { - type: AST_NODE_TYPES.SwitchCase; - test: Expression | null; - consequent: Statement[]; -} -export interface SwitchStatement extends BaseNode { - type: AST_NODE_TYPES.SwitchStatement; - discriminant: Expression; - cases: SwitchCase[]; -} -export interface TaggedTemplateExpression extends BaseNode { - type: AST_NODE_TYPES.TaggedTemplateExpression; - typeParameters?: TSTypeParameterInstantiation; - tag: LeftHandSideExpression; - quasi: TemplateLiteral; -} -export interface TemplateElement extends BaseNode { - type: AST_NODE_TYPES.TemplateElement; - value: { - raw: string; - cooked: string; - }; - tail: boolean; -} -export interface TemplateLiteral extends BaseNode { - type: AST_NODE_TYPES.TemplateLiteral; - quasis: TemplateElement[]; - expressions: Expression[]; -} -export interface ThisExpression extends BaseNode { - type: AST_NODE_TYPES.ThisExpression; -} -export interface ThrowStatement extends BaseNode { - type: AST_NODE_TYPES.ThrowStatement; - argument: Statement | TSAsExpression | null; -} -export interface TryStatement extends BaseNode { - type: AST_NODE_TYPES.TryStatement; - block: BlockStatement; - handler: CatchClause | null; - finalizer: BlockStatement; -} -export interface TSAbstractClassPropertyComputedName extends ClassPropertyComputedNameBase { - type: AST_NODE_TYPES.TSAbstractClassProperty; -} -export interface TSAbstractClassPropertyNonComputedName extends ClassPropertyNonComputedNameBase { - type: AST_NODE_TYPES.TSAbstractClassProperty; -} -export interface TSAbstractKeyword extends BaseNode { - type: AST_NODE_TYPES.TSAbstractKeyword; -} -export interface TSAbstractMethodDefinitionComputedName extends MethodDefinitionComputedNameBase { - type: AST_NODE_TYPES.TSAbstractMethodDefinition; -} -export interface TSAbstractMethodDefinitionNonComputedName extends MethodDefinitionNonComputedNameBase { - type: AST_NODE_TYPES.TSAbstractMethodDefinition; -} -export interface TSAnyKeyword extends BaseNode { - type: AST_NODE_TYPES.TSAnyKeyword; -} -export interface TSArrayType extends BaseNode { - type: AST_NODE_TYPES.TSArrayType; - elementType: TypeNode; -} -export interface TSAsExpression extends BaseNode { - type: AST_NODE_TYPES.TSAsExpression; - expression: Expression; - typeAnnotation: TypeNode; -} -export interface TSAsyncKeyword extends BaseNode { - type: AST_NODE_TYPES.TSAsyncKeyword; -} -export interface TSBigIntKeyword extends BaseNode { - type: AST_NODE_TYPES.TSBigIntKeyword; -} -export interface TSBooleanKeyword extends BaseNode { - type: AST_NODE_TYPES.TSBooleanKeyword; -} -export interface TSCallSignatureDeclaration extends FunctionSignatureBase { - type: AST_NODE_TYPES.TSCallSignatureDeclaration; -} -export interface TSClassImplements extends TSHeritageBase { - type: AST_NODE_TYPES.TSClassImplements; -} -export interface TSConditionalType extends BaseNode { - type: AST_NODE_TYPES.TSConditionalType; - checkType: TypeNode; - extendsType: TypeNode; - trueType: TypeNode; - falseType: TypeNode; -} -export interface TSConstructorType extends FunctionSignatureBase { - type: AST_NODE_TYPES.TSConstructorType; -} -export interface TSConstructSignatureDeclaration extends FunctionSignatureBase { - type: AST_NODE_TYPES.TSConstructSignatureDeclaration; -} -export interface TSDeclareFunction extends FunctionDeclarationBase { - type: AST_NODE_TYPES.TSDeclareFunction; -} -export interface TSDeclareKeyword extends BaseNode { - type: AST_NODE_TYPES.TSDeclareKeyword; -} -export interface TSEmptyBodyFunctionExpression extends FunctionDeclarationBase { - type: AST_NODE_TYPES.TSEmptyBodyFunctionExpression; - body: null; -} -export interface TSEnumDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSEnumDeclaration; - id: Identifier; - members: TSEnumMember[]; - const?: boolean; - declare?: boolean; - modifiers?: Modifier[]; -} -/** - * this should only really happen in semantically invalid code (errors 1164 and 2452) - * - * VALID: - * enum Foo { ['a'] } - * - * INVALID: - * const x = 'a'; - * enum Foo { [x] } - * enum Bar { ['a' + 'b'] } - */ -export interface TSEnumMemberComputedName extends TSEnumMemberBase { - id: PropertyNameComputed; - computed: true; -} -export interface TSEnumMemberNonComputedName extends TSEnumMemberBase { - id: PropertyNameNonComputed; - computed?: false; -} -export interface TSExportAssignment extends BaseNode { - type: AST_NODE_TYPES.TSExportAssignment; - expression: Expression; -} -export interface TSExportKeyword extends BaseNode { - type: AST_NODE_TYPES.TSExportKeyword; -} -export interface TSExternalModuleReference extends BaseNode { - type: AST_NODE_TYPES.TSExternalModuleReference; - expression: Expression; -} -export interface TSFunctionType extends FunctionSignatureBase { - type: AST_NODE_TYPES.TSFunctionType; -} -export interface TSImportEqualsDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSImportEqualsDeclaration; - id: Identifier; - moduleReference: EntityName | TSExternalModuleReference; - isExport: boolean; -} -export interface TSImportType extends BaseNode { - type: AST_NODE_TYPES.TSImportType; - isTypeOf: boolean; - parameter: TypeNode; - qualifier: EntityName | null; - typeParameters: TSTypeParameterInstantiation | null; -} -export interface TSIndexedAccessType extends BaseNode { - type: AST_NODE_TYPES.TSIndexedAccessType; - objectType: TypeNode; - indexType: TypeNode; -} -export interface TSIndexSignature extends BaseNode { - type: AST_NODE_TYPES.TSIndexSignature; - parameters: Parameter[]; - typeAnnotation?: TSTypeAnnotation; - readonly?: boolean; - accessibility?: Accessibility; - export?: boolean; - static?: boolean; -} -export interface TSInferType extends BaseNode { - type: AST_NODE_TYPES.TSInferType; - typeParameter: TSTypeParameter; -} -export interface TSInterfaceDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSInterfaceDeclaration; - body: TSInterfaceBody; - id: Identifier; - typeParameters?: TSTypeParameterDeclaration; - extends?: TSInterfaceHeritage[]; - implements?: TSInterfaceHeritage[]; - abstract?: boolean; - declare?: boolean; -} -export interface TSInterfaceBody extends BaseNode { - type: AST_NODE_TYPES.TSInterfaceBody; - body: TypeElement[]; -} -export interface TSInterfaceHeritage extends TSHeritageBase { - type: AST_NODE_TYPES.TSInterfaceHeritage; -} -export interface TSIntersectionType extends BaseNode { - type: AST_NODE_TYPES.TSIntersectionType; - types: TypeNode[]; -} -export interface TSLiteralType extends BaseNode { - type: AST_NODE_TYPES.TSLiteralType; - literal: LiteralExpression | UnaryExpression | UpdateExpression; -} -export interface TSMappedType extends BaseNode { - type: AST_NODE_TYPES.TSMappedType; - typeParameter: TSTypeParameter; - readonly?: boolean | '-' | '+'; - optional?: boolean | '-' | '+'; - typeAnnotation?: TypeNode; -} -export interface TSMethodSignatureComputedName extends TSMethodSignatureBase { - key: PropertyNameComputed; - computed: true; -} -export interface TSMethodSignatureNonComputedName extends TSMethodSignatureBase { - key: PropertyNameNonComputed; - computed: false; -} -export interface TSModuleBlock extends BaseNode { - type: AST_NODE_TYPES.TSModuleBlock; - body: ProgramStatement[]; -} -export interface TSModuleDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSModuleDeclaration; - id: Identifier | Literal; - body?: TSModuleBlock; - global?: boolean; - declare?: boolean; - modifiers?: Modifier[]; -} -export interface TSNamespaceExportDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSNamespaceExportDeclaration; - id: Identifier; -} -export interface TSNeverKeyword extends BaseNode { - type: AST_NODE_TYPES.TSNeverKeyword; -} -export interface TSNonNullExpression extends BaseNode { - type: AST_NODE_TYPES.TSNonNullExpression; - expression: Expression; -} -export interface TSNullKeyword extends BaseNode { - type: AST_NODE_TYPES.TSNullKeyword; -} -export interface TSNumberKeyword extends BaseNode { - type: AST_NODE_TYPES.TSNumberKeyword; -} -export interface TSObjectKeyword extends BaseNode { - type: AST_NODE_TYPES.TSObjectKeyword; -} -export interface TSOptionalType extends BaseNode { - type: AST_NODE_TYPES.TSOptionalType; - typeAnnotation: TypeNode; -} -export interface TSParameterProperty extends BaseNode { - type: AST_NODE_TYPES.TSParameterProperty; - accessibility?: Accessibility; - readonly?: boolean; - static?: boolean; - export?: boolean; - parameter: AssignmentPattern | BindingName | RestElement; - decorators?: Decorator[]; -} -export interface TSParenthesizedType extends BaseNode { - type: AST_NODE_TYPES.TSParenthesizedType; - typeAnnotation: TypeNode; -} -export interface TSPropertySignatureComputedName extends TSPropertySignatureBase { - key: PropertyNameComputed; - computed: true; -} -export interface TSPropertySignatureNonComputedName extends TSPropertySignatureBase { - key: PropertyNameNonComputed; - computed: false; -} -export interface TSPublicKeyword extends BaseNode { - type: AST_NODE_TYPES.TSPublicKeyword; -} -export interface TSPrivateKeyword extends BaseNode { - type: AST_NODE_TYPES.TSPrivateKeyword; -} -export interface TSProtectedKeyword extends BaseNode { - type: AST_NODE_TYPES.TSProtectedKeyword; -} -export interface TSQualifiedName extends BaseNode { - type: AST_NODE_TYPES.TSQualifiedName; - left: EntityName; - right: Identifier; -} -export interface TSReadonlyKeyword extends BaseNode { - type: AST_NODE_TYPES.TSReadonlyKeyword; -} -export interface TSRestType extends BaseNode { - type: AST_NODE_TYPES.TSRestType; - typeAnnotation: TypeNode; -} -export interface TSStaticKeyword extends BaseNode { - type: AST_NODE_TYPES.TSStaticKeyword; -} -export interface TSStringKeyword extends BaseNode { - type: AST_NODE_TYPES.TSStringKeyword; -} -export interface TSSymbolKeyword extends BaseNode { - type: AST_NODE_TYPES.TSSymbolKeyword; -} -export interface TSThisType extends BaseNode { - type: AST_NODE_TYPES.TSThisType; -} -export interface TSNamedTupleMember extends BaseNode { - type: AST_NODE_TYPES.TSNamedTupleMember; - elementType: TypeNode; - label: Identifier; - optional: boolean; -} -export interface TSTupleType extends BaseNode { - type: AST_NODE_TYPES.TSTupleType; - elementTypes: TypeNode[]; -} -export interface TSTypeAliasDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSTypeAliasDeclaration; - id: Identifier; - typeAnnotation: TypeNode; - declare?: boolean; - typeParameters?: TSTypeParameterDeclaration; -} -export interface TSTypeAnnotation extends BaseNode { - type: AST_NODE_TYPES.TSTypeAnnotation; - typeAnnotation: TypeNode; -} -export interface TSTypeAssertion extends BaseNode { - type: AST_NODE_TYPES.TSTypeAssertion; - typeAnnotation: TypeNode; - expression: Expression; -} -export interface TSTypeLiteral extends BaseNode { - type: AST_NODE_TYPES.TSTypeLiteral; - members: TypeElement[]; -} -export interface TSTypeOperator extends BaseNode { - type: AST_NODE_TYPES.TSTypeOperator; - operator: 'keyof' | 'unique' | 'readonly'; - typeAnnotation?: TypeNode; -} -export interface TSTypeParameter extends BaseNode { - type: AST_NODE_TYPES.TSTypeParameter; - name: Identifier; - constraint?: TypeNode; - default?: TypeNode; -} -export interface TSTypeParameterDeclaration extends BaseNode { - type: AST_NODE_TYPES.TSTypeParameterDeclaration; - params: TSTypeParameter[]; -} -export interface TSTypeParameterInstantiation extends BaseNode { - type: AST_NODE_TYPES.TSTypeParameterInstantiation; - params: TypeNode[]; -} -export interface TSTypePredicate extends BaseNode { - type: AST_NODE_TYPES.TSTypePredicate; - asserts: boolean; - parameterName: Identifier | TSThisType; - typeAnnotation: TSTypeAnnotation | null; -} -export interface TSTypeQuery extends BaseNode { - type: AST_NODE_TYPES.TSTypeQuery; - exprName: EntityName; -} -export interface TSTypeReference extends BaseNode { - type: AST_NODE_TYPES.TSTypeReference; - typeName: EntityName; - typeParameters?: TSTypeParameterInstantiation; -} -export interface TSUndefinedKeyword extends BaseNode { - type: AST_NODE_TYPES.TSUndefinedKeyword; -} -export interface TSUnionType extends BaseNode { - type: AST_NODE_TYPES.TSUnionType; - types: TypeNode[]; -} -export interface TSUnknownKeyword extends BaseNode { - type: AST_NODE_TYPES.TSUnknownKeyword; -} -export interface TSVoidKeyword extends BaseNode { - type: AST_NODE_TYPES.TSVoidKeyword; -} -export interface UpdateExpression extends UnaryExpressionBase { - type: AST_NODE_TYPES.UpdateExpression; - operator: '++' | '--'; -} -export interface UnaryExpression extends UnaryExpressionBase { - type: AST_NODE_TYPES.UnaryExpression; - operator: '+' | '-' | '!' | '~' | 'delete' | 'void' | 'typeof'; -} -export interface VariableDeclaration extends BaseNode { - type: AST_NODE_TYPES.VariableDeclaration; - declarations: VariableDeclarator[]; - kind: 'let' | 'const' | 'var'; - declare?: boolean; -} -export interface VariableDeclarator extends BaseNode { - type: AST_NODE_TYPES.VariableDeclarator; - id: BindingName; - init: Expression | null; - definite?: boolean; -} -export interface WhileStatement extends BaseNode { - type: AST_NODE_TYPES.WhileStatement; - test: Expression; - body: Statement; -} -export interface WithStatement extends BaseNode { - type: AST_NODE_TYPES.WithStatement; - object: Expression; - body: Statement; -} -export interface YieldExpression extends BaseNode { - type: AST_NODE_TYPES.YieldExpression; - delegate: boolean; - argument?: Expression; -} -export {}; +export * as TSESTree from './ast-spec'; //# sourceMappingURL=ts-estree.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts.map b/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts.map index 16b0634aba..23921cca82 100644 --- a/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts.map +++ b/node_modules/@typescript-eslint/types/dist/ts-estree.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ts-estree.d.ts","sourceRoot":"","sources":["../src/ts-estree.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ts-estree.d.ts","sourceRoot":"","sources":["../src/ts-estree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAGvC,OAAO,QAAQ,YAAY,CAAC;IAC1B,UAAU,QAAQ;QAChB,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;KACxB;CAYF;AAED,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ts-estree.js b/node_modules/@typescript-eslint/types/dist/ts-estree.js index 47f7a01f14..20e5bf149f 100644 --- a/node_modules/@typescript-eslint/types/dist/ts-estree.js +++ b/node_modules/@typescript-eslint/types/dist/ts-estree.js @@ -1,3 +1,24 @@ "use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; Object.defineProperty(exports, "__esModule", { value: true }); +exports.TSESTree = void 0; +exports.TSESTree = __importStar(require("./ast-spec")); //# sourceMappingURL=ts-estree.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/dist/ts-estree.js.map b/node_modules/@typescript-eslint/types/dist/ts-estree.js.map index c41387a137..4dfa7e6e08 100644 --- a/node_modules/@typescript-eslint/types/dist/ts-estree.js.map +++ b/node_modules/@typescript-eslint/types/dist/ts-estree.js.map @@ -1 +1 @@ -{"version":3,"file":"ts-estree.js","sourceRoot":"","sources":["../src/ts-estree.ts"],"names":[],"mappings":""} \ No newline at end of file +{"version":3,"file":"ts-estree.js","sourceRoot":"","sources":["../src/ts-estree.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAoBA,uDAAuC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/types/package.json b/node_modules/@typescript-eslint/types/package.json index 2e42e476ac..043ecda7fb 100644 --- a/node_modules/@typescript-eslint/types/package.json +++ b/node_modules/@typescript-eslint/types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/types", - "version": "4.1.0", + "version": "4.28.5", "description": "Types for the TypeScript-ESTree AST spec", "keywords": [ "eslint", @@ -19,7 +19,7 @@ "repository": { "type": "git", "url": "https://github.com/typescript-eslint/typescript-eslint.git", - "directory": "packages/visitor-keys" + "directory": "packages/types" }, "bugs": { "url": "https://github.com/typescript-eslint/typescript-eslint/issues" @@ -28,10 +28,11 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { + "prebuild": "yarn ts-node --transpile-only ./tools/copy-ast-spec.ts", "build": "tsc -b tsconfig.build.json", "postbuild": "downlevel-dts dist _ts3.4/dist", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist", + "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "generate:lib": "../../node_modules/.bin/ts-node --files --transpile-only ../scope-manager/tools/generate-lib.ts", "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'", @@ -48,5 +49,8 @@ ] } }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "devDependencies": { + "typescript": "*" + }, + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md b/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md index 284d90a3f8..313f0ed9be 100644 --- a/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md +++ b/node_modules/@typescript-eslint/typescript-estree/CHANGELOG.md @@ -3,6 +3,431 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + + +### Bug Fixes + +* **typescript-estree:** allow providing more one than one existing program in config ([#3508](https://github.com/typescript-eslint/typescript-eslint/issues/3508)) ([4f1806e](https://github.com/typescript-eslint/typescript-eslint/commit/4f1806e548affb7265da360d1fc8d033e25de325)) +* **typescript-estree:** support override modifier for parameter property ([#3485](https://github.com/typescript-eslint/typescript-eslint/issues/3485)) ([33b9f69](https://github.com/typescript-eslint/typescript-eslint/commit/33b9f69a681cd3219a2acca5b0b2fa67609f099e)) + + +### Features + +* **ast-spec:** specify `PunctuatorToken`'s `value` type ([#3496](https://github.com/typescript-eslint/typescript-eslint/issues/3496)) ([fdb1d81](https://github.com/typescript-eslint/typescript-eslint/commit/fdb1d81f0fcf75a9216e6a90469f18c24c91f718)) +* **typescript-estree:** add opt-in inference for single runs and create programs for projects up front ([#3512](https://github.com/typescript-eslint/typescript-eslint/issues/3512)) ([06c2d9b](https://github.com/typescript-eslint/typescript-eslint/commit/06c2d9ba5442330f56637ecb14fae7e41696699c)) +* allow user to provide TS program instance in parser options ([#3484](https://github.com/typescript-eslint/typescript-eslint/issues/3484)) ([e855b18](https://github.com/typescript-eslint/typescript-eslint/commit/e855b18b8feee0edb5c617c11006861426a6f530)) + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + + +### Bug Fixes + +* generate library types for TypeScript v4.3 ([#3460](https://github.com/typescript-eslint/typescript-eslint/issues/3460)) ([ed4776a](https://github.com/typescript-eslint/typescript-eslint/commit/ed4776afa1374279027b9b7d82aa4b453b334998)), closes [#3449](https://github.com/typescript-eslint/typescript-eslint/issues/3449) + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + + +### Features + +* **typescript-estree:** [TS4.3] support overrides on class members ([#3429](https://github.com/typescript-eslint/typescript-eslint/issues/3429)) ([21d1b62](https://github.com/typescript-eslint/typescript-eslint/commit/21d1b62a0b84b502d2cf12674b3d141994a3ffd4)) +* **typescript-estree:** add support for getter/setter signatures on types ([#3427](https://github.com/typescript-eslint/typescript-eslint/issues/3427)) ([b830b7f](https://github.com/typescript-eslint/typescript-eslint/commit/b830b7f4e8a99affc8af8b53cb83371ef81d7032)), closes [#3272](https://github.com/typescript-eslint/typescript-eslint/issues/3272) [#3272](https://github.com/typescript-eslint/typescript-eslint/issues/3272) + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Features + +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + + +### Bug Fixes + +* **typescript-estree:** [ts 4.2] add support for import type equal declaration ([#3189](https://github.com/typescript-eslint/typescript-eslint/issues/3189)) ([6a25faf](https://github.com/typescript-eslint/typescript-eslint/commit/6a25faf5cfa4d21a7546d9866819f4e017308fb2)) + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + + +### Bug Fixes + +* **typescript-estree:** update TS version range ([#3127](https://github.com/typescript-eslint/typescript-eslint/issues/3127)) ([0473674](https://github.com/typescript-eslint/typescript-eslint/commit/0473674c58df5039a2de3c63ad7494fc6be7487e)) + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + + +### Features + +* TypeScript 4.2 syntax support ([#3112](https://github.com/typescript-eslint/typescript-eslint/issues/3112)) ([2ebfb21](https://github.com/typescript-eslint/typescript-eslint/commit/2ebfb21ba6c88c793cfbd0e231e5803b2381694c)) +* **typescript-estree:** throw custom error instead of plain object ([#3011](https://github.com/typescript-eslint/typescript-eslint/issues/3011)) ([ae14bf5](https://github.com/typescript-eslint/typescript-eslint/commit/ae14bf55fe31b0eb982ba17333e4aac550d10342)) + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + + +### Bug Fixes + +* **typescript-estree:** correct issues in AST definition ([#3083](https://github.com/typescript-eslint/typescript-eslint/issues/3083)) ([509a117](https://github.com/typescript-eslint/typescript-eslint/commit/509a11749f85400a01e9fecfecd12871ce562d3d)) +* add missing intrinsic keyword node to AST ([#3081](https://github.com/typescript-eslint/typescript-eslint/issues/3081)) ([409bf0b](https://github.com/typescript-eslint/typescript-eslint/commit/409bf0bb3e2ac4d8782408d436ebdefb42dba38b)) +* correct test names on windows for semantic-diagnostics-enabled ([#3060](https://github.com/typescript-eslint/typescript-eslint/issues/3060)) ([885780d](https://github.com/typescript-eslint/typescript-eslint/commit/885780d4a2b07e418256b7323d76b18453c14a50)) + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + + +### Features + +* **typescript-estree:** improve logic used to escape string literals in jsx ([#2995](https://github.com/typescript-eslint/typescript-eslint/issues/2995)) ([3cb3aad](https://github.com/typescript-eslint/typescript-eslint/commit/3cb3aade2864bab15ed1ff8d7cd32766aa57152f)) + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + + +### Bug Fixes + +* **typescript-estree:** add default value for `parserOptions.projectFolderIgnoreList` and deduplicate resolved projects ([#2819](https://github.com/typescript-eslint/typescript-eslint/issues/2819)) ([bf904ec](https://github.com/typescript-eslint/typescript-eslint/commit/bf904ec72db57174fec531f61e9427230662553e)), closes [#2418](https://github.com/typescript-eslint/typescript-eslint/issues/2418) [#2814](https://github.com/typescript-eslint/typescript-eslint/issues/2814) + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + + +### Bug Fixes + +* **typescript-estree:** fix type-only regression for consumers not yet on TS 4.1 ([#2789](https://github.com/typescript-eslint/typescript-eslint/issues/2789)) ([50a46c6](https://github.com/typescript-eslint/typescript-eslint/commit/50a46c60fb81d8434aa4268a13d17d8fcf499e21)) + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + + +### Bug Fixes + +* **typescript-estree:** parseWithNodeMaps returning empty maps ([#2773](https://github.com/typescript-eslint/typescript-eslint/issues/2773)) ([3e4a0ed](https://github.com/typescript-eslint/typescript-eslint/commit/3e4a0ed0d615fd22a2f28c7c8af6179673e195f8)) + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + + +### Features + +* **typescript-estree:** add `parseWithNodeMaps` API ([#2760](https://github.com/typescript-eslint/typescript-eslint/issues/2760)) ([9441d50](https://github.com/typescript-eslint/typescript-eslint/commit/9441d5030211f1c32f5ae8e61d5565cab8bb6823)), closes [#1852](https://github.com/typescript-eslint/typescript-eslint/issues/1852) + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + + +### Features + +* support TS4.1 features ([#2748](https://github.com/typescript-eslint/typescript-eslint/issues/2748)) ([2be354b](https://github.com/typescript-eslint/typescript-eslint/commit/2be354bb15f9013a2da1b13a0c0836e9ef057e16)), closes [#2583](https://github.com/typescript-eslint/typescript-eslint/issues/2583) + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + + +### Features + +* **typescript-estree:** add flag EXPERIMENTAL_useSourceOfProjectReferenceRedirect ([#2669](https://github.com/typescript-eslint/typescript-eslint/issues/2669)) ([90a5878](https://github.com/typescript-eslint/typescript-eslint/commit/90a587845088da1b205e4d7d77dbc3f9447b1c5a)) + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) **Note:** Version bump only for package @typescript-eslint/typescript-estree diff --git a/node_modules/@typescript-eslint/typescript-estree/README.md b/node_modules/@typescript-eslint/typescript-estree/README.md index 3a434c7841..3108415064 100644 --- a/node_modules/@typescript-eslint/typescript-estree/README.md +++ b/node_modules/@typescript-eslint/typescript-estree/README.md @@ -152,6 +152,18 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { */ errorOnTypeScriptSyntacticAndSemanticIssues?: boolean; + /** + * ***EXPERIMENTAL FLAG*** - Use this at your own risk. + * + * Causes TS to use the source files for referenced projects instead of the compiled .d.ts files. + * This feature is not yet optimized, and is likely to cause OOMs for medium to large projects. + * + * This flag REQUIRES at least TS v3.9, otherwise it does nothing. + * + * See: https://github.com/typescript-eslint/typescript-eslint/issues/2094 + */ + EXPERIMENTAL_useSourceOfProjectReferenceRedirect?: boolean; + /** * When `project` is provided, this controls the non-standard file extensions which will be parsed. * It accepts an array of file extensions, each preceded by a `.`. @@ -196,6 +208,13 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { */ tsconfigRootDir?: string; + /** + * Instance of a TypeScript Program object to be used for type information. + * This overrides any program or programs that would have been computed from the `project` option. + * All linted files must be part of the provided program. + */ + program?: import('typescript').Program; + /** *************************************************************************************** * IT IS RECOMMENDED THAT YOU DO NOT USE THIS OPTION, AS IT CAUSES PERFORMANCE ISSUES. * @@ -206,6 +225,32 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { * it will not error, but will instead parse the file and its dependencies in a new program. */ createDefaultProgram?: boolean; + + /** + * ESLint (and therefore typescript-eslint) is used in both "single run"/one-time contexts, + * such as an ESLint CLI invocation, and long-running sessions (such as continuous feedback + * on a file in an IDE). + * + * When typescript-eslint handles TypeScript Program management behind the scenes, this distinction + * is important because there is significant overhead to managing the so called Watch Programs + * needed for the long-running use-case. + * + * When allowAutomaticSingleRunInference is enabled, we will use common heuristics to infer + * whether or not ESLint is being used as part of a single run. + */ + allowAutomaticSingleRunInference?: boolean; +} + +interface ParserServices { + program: ts.Program; + esTreeNodeToTSNodeMap: WeakMap; + tsNodeToESTreeNodeMap: WeakMap; + hasFullTypeInformation: boolean; +} + +interface ParseAndGenerateServicesResult { + ast: TSESTree.Program; + services: ParserServices; } const PARSE_AND_GENERATE_SERVICES_DEFAULT_OPTIONS: ParseOptions = { @@ -221,7 +266,7 @@ const PARSE_AND_GENERATE_SERVICES_DEFAULT_OPTIONS: ParseOptions = { declare function parseAndGenerateServices( code: string, options: ParseOptions = PARSE_DEFAULT_OPTIONS, -): TSESTree.Program; +): ParseAndGenerateServicesResult; ``` Example usage: @@ -230,7 +275,7 @@ Example usage: import { parseAndGenerateServices } from '@typescript-eslint/typescript-estree'; const code = `const hello: string = 'world';`; -const ast = parseAndGenerateServices(code, { +const { ast, services } = parseAndGenerateServices(code, { filePath: '/some/path/to/file/foo.ts', loc: true, project: './tsconfig.json', @@ -238,6 +283,39 @@ const ast = parseAndGenerateServices(code, { }); ``` +#### `parseWithNodeMaps(code, options)` + +Parses the given string of code with the options provided and returns both the ESTree-compatible AST as well as the node maps. +This allows you to work with both ASTs without the overhead of types that may come with `parseAndGenerateServices`. + +```ts +interface ParseWithNodeMapsResult { + ast: TSESTree.Program; + esTreeNodeToTSNodeMap: ParserServices['esTreeNodeToTSNodeMap']; + tsNodeToESTreeNodeMap: ParserServices['tsNodeToESTreeNodeMap']; +} + +declare function parseWithNodeMaps( + code: string, + options: ParseOptions = PARSE_DEFAULT_OPTIONS, +): ParseWithNodeMapsResult; +``` + +Example usage: + +```js +import { parseWithNodeMaps } from '@typescript-eslint/typescript-estree'; + +const code = `const hello: string = 'world';`; +const { ast, esTreeNodeToTSNodeMap, tsNodeToESTreeNodeMap } = parseWithNodeMaps( + code, + { + loc: true, + range: true, + }, +); +``` + ### `TSESTree`, `AST_NODE_TYPES` and `AST_TOKEN_TYPES` Types for the AST produced by the parse functions. @@ -246,6 +324,34 @@ Types for the AST produced by the parse functions. - `AST_NODE_TYPES` is an enum which provides the values for every single AST node's `type` property. - `AST_TOKEN_TYPES` is an enum which provides the values for every single AST token's `type` property. +### Utilities + +#### `createProgram(configFile, projectDirectory)` + +This serves as a utility method for users of the `ParseOptions.program` feature to create a TypeScript program instance from a config file. + +```ts +declare function createProgram( + configFile: string, + projectDirectory: string = process.cwd(), +): import('typescript').Program; +``` + +Example usage: + +```js +const tsESTree = require('@typescript-eslint/typescript-estree'); + +const program = tsESTree.createProgram('tsconfig.json'); +const code = `const hello: string = 'world';`; +const { ast, services } = parseAndGenerateServices(code, { + filePath: '/some/path/to/file/foo.ts', + loc: true, + program, + range: true, +}); +``` + ## Supported TypeScript Version See the [Supported TypeScript Version](../../README.md#supported-typescript-version) section in the project root. @@ -265,13 +371,7 @@ Please check the current list of open and known issues and ensure the issue has A couple of years after work on this parser began, the TypeScript Team at Microsoft began [officially supporting TypeScript parsing via Babel](https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/). -I work closely with the TypeScript Team and we are gradually aligning the AST of this project with the one produced by Babel's parser. To that end, I have created a full test harness to compare the ASTs of the two projects which runs on every PR, please see the code for more details. - -## Build/Test Commands - -- `npm test` - run all tests -- `npm run unit-tests` - run only unit tests -- `npm run ast-alignment-tests` - run only Babylon AST alignment tests +I work closely with the TypeScript Team and we are gradually aligning the AST of this project with the one produced by Babel's parser. To that end, I have created a full test harness to compare the ASTs of the two projects which runs on every PR, please see [the code](https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/typescript-estree/tests/ast-alignment) for more details. ## Debugging diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map index df6276c5ad..3b487b08df 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ast-converter.d.ts","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAA2B,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,OAAO,GAC9B;IAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA4DhD"} \ No newline at end of file +{"version":3,"file":"ast-converter.d.ts","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAA2B,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,wBAAgB,YAAY,CAC1B,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,sBAAsB,EAAE,OAAO,GAC9B;IAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CA0DhD"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js index 6af960ee33..c4d6f29e00 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js @@ -10,9 +10,7 @@ function astConverter(ast, extra, shouldPreserveNodeMaps) { * The TypeScript compiler produced fundamental parse errors when parsing the * source. */ - // internal typescript api... - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const parseDiagnostics = ast.parseDiagnostics; + const { parseDiagnostics } = ast; if (parseDiagnostics.length) { throw convert_1.convertError(parseDiagnostics[0]); } diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map index 6a5b215589..1e64ce18b7 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ast-converter.js.map @@ -1 +1 @@ -{"version":3,"file":"ast-converter.js","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":";;;AACA,uCAA6D;AAC7D,yDAAqD;AACrD,6CAA6C;AAG7C,uDAAmD;AAEnD,SAAgB,YAAY,CAC1B,GAAe,EACf,KAAY,EACZ,sBAA+B;IAE/B;;;OAGG;IACH,6BAA6B;IAC7B,8DAA8D;IAC9D,MAAM,gBAAgB,GAAI,GAAW,CAAC,gBAAgB,CAAC;IACvD,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,sBAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED;;OAEG;IACH,MAAM,QAAQ,GAAG,IAAI,mBAAS,CAAC,GAAG,EAAE;QAClC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,KAAK;QAC3D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,sBAAsB;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9B,gCAAc,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBAChB,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC;iBACnB;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACd,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,GAAG,CAAC;iBACjB;YACH,CAAC;SACF,CAAC,CAAC;KACJ;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,CAAC,MAAM,GAAG,0BAAa,CAAC,GAAG,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,MAAM,CAAC,QAAQ,GAAG,kCAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAhED,oCAgEC"} \ No newline at end of file +{"version":3,"file":"ast-converter.js","sourceRoot":"","sources":["../src/ast-converter.ts"],"names":[],"mappings":";;;AACA,uCAA6D;AAC7D,yDAAqD;AACrD,6CAA6C;AAG7C,uDAAmD;AAEnD,SAAgB,YAAY,CAC1B,GAAe,EACf,KAAY,EACZ,sBAA+B;IAE/B;;;OAGG;IACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC;IACjC,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,sBAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED;;OAEG;IACH,MAAM,QAAQ,GAAG,IAAI,mBAAS,CAAC,GAAG,EAAE;QAClC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,KAAK;QAC3D,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,sBAAsB;KACvB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEzC;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;QAC9B,gCAAc,CAAC,MAAM,EAAE;YACrB,KAAK,EAAE,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;oBAChB,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC;iBACnB;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;oBACd,4HAA4H;oBAC5H,mBAAmB;oBACnB,OAAO,IAAI,CAAC,GAAG,CAAC;iBACjB;YACH,CAAC;SACF,CAAC,CAAC;KACJ;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,MAAM,CAAC,MAAM,GAAG,0BAAa,CAAC,GAAG,CAAC,CAAC;KACpC;IAED;;OAEG;IACH,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,MAAM,CAAC,QAAQ,GAAG,kCAAe,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;IAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AA9DD,oCA8DC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts index c065e15d0e..c292bfcf69 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts @@ -117,6 +117,8 @@ export declare class Converter { * property instead of a kind property. Recursively copies all children. */ private deeplyCopy; + private convertJSXIdentifier; + private convertJSXNamespaceOrIdentifier; /** * Converts a TypeScript JSX node.tagName into an ESTree node.name * @param node the tagName object from a JSX ts.Node @@ -124,6 +126,7 @@ export declare class Converter { * @returns the converted ESTree name object */ private convertJSXTagName; + private convertMethodSignature; /** * Applies the given TS modifiers to the given result object. * @param result diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map index c1f6816c12..6299eb88a9 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAkBL,OAAO,EAGR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAEL,QAAQ,EACR,MAAM,EAEP,MAAM,aAAa,CAAC;AAKrB,UAAU,gBAAgB;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAMhD;AAED,MAAM,WAAW,OAAO;IACtB,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAEvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;OAKG;gBACS,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAKzD,UAAU,IAAI,OAAO;IAOrB,cAAc,IAAI,QAAQ,CAAC,OAAO;IAIlC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAkCjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAyDlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,oCAAoC;IAe5C;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,oCAAoC;IAa5C;;;;OAIG;IACH,OAAO,CAAC,kDAAkD;IAe1D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,sBAAsB;IA4C9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAmElB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CA8iEpB"} \ No newline at end of file +{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAmBL,OAAO,EAER,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAEL,QAAQ,EAER,MAAM,EACP,MAAM,aAAa,CAAC;AAKrB,UAAU,gBAAgB;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAMhD;AAED,MAAM,WAAW,OAAO;IACtB,qBAAqB,EAAE,2BAA2B,CAAC;IACnD,qBAAqB,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAEvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;OAKG;gBACS,GAAG,EAAE,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,gBAAgB;IAKzD,UAAU,IAAI,OAAO;IAOrB,cAAc,IAAI,QAAQ,CAAC,OAAO;IAIlC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAkCjB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAyDlB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,oCAAoC;IAe5C;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,oCAAoC;IAa5C;;;;OAIG;IACH,OAAO,CAAC,kDAAkD;IAe1D;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,sBAAsB;IA4C9B;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAmElB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,+BAA+B;IA6BvC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,sBAAsB;IA4D9B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IA6C9B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CAgjEpB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js index e45592f532..f4f7a0b079 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js @@ -21,7 +21,7 @@ var __importStar = (this && this.__importStar) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.Converter = exports.convertError = void 0; // There's lots of funny stuff due to the typing of ts.Node -/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call */ const ts = __importStar(require("typescript")); const node_utils_1 = require("./node-utils"); const ts_estree_1 = require("./ts-estree"); @@ -364,7 +364,7 @@ class Converter { result.decorators = node.decorators.map(el => this.convertChild(el)); } Object.entries(node) - .filter(([key]) => !/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators)$/.test(key)) + .filter(([key]) => !/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators|transformFlags)$/.test(key)) .forEach(([key, value]) => { if (Array.isArray(value)) { result[key] = value.map(el => this.convertChild(el)); @@ -379,6 +379,39 @@ class Converter { }); return result; } + convertJSXIdentifier(node) { + const result = this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier, + name: node.getText(), + }); + this.registerTSNodeInNodeMap(node, result); + return result; + } + convertJSXNamespaceOrIdentifier(node) { + const text = node.getText(); + const colonIndex = text.indexOf(':'); + // this is intentional we can ignore conversion if `:` is in first character + if (colonIndex > 0) { + const range = node_utils_1.getRange(node, this.ast); + const result = this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.JSXNamespacedName, + namespace: this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier, + name: text.slice(0, colonIndex), + range: [range[0], range[0] + colonIndex], + }), + name: this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier, + name: text.slice(colonIndex + 1), + range: [range[0] + colonIndex + 1, range[1]], + }), + range, + }); + this.registerTSNodeInNodeMap(node, result); + return result; + } + return this.convertJSXIdentifier(node); + } /** * Converts a TypeScript JSX node.tagName into an ESTree node.name * @param node the tagName object from a JSX ts.Node @@ -397,26 +430,59 @@ class Converter { result = this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.JSXMemberExpression, object: this.convertJSXTagName(node.expression, parent), - property: this.convertJSXTagName(node.name, parent), + property: this.convertJSXIdentifier(node.name), }); break; case SyntaxKind.ThisKeyword: - result = this.createNode(node, { - type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier, - name: 'this', - }); - break; case SyntaxKind.Identifier: default: - result = this.createNode(node, { - type: ts_estree_1.AST_NODE_TYPES.JSXIdentifier, - name: node.text, - }); - break; + return this.convertJSXNamespaceOrIdentifier(node); } this.registerTSNodeInNodeMap(node, result); return result; } + convertMethodSignature(node) { + const result = this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.TSMethodSignature, + computed: node_utils_1.isComputedProperty(node.name), + key: this.convertChild(node.name), + params: this.convertParameters(node.parameters), + kind: (() => { + switch (node.kind) { + case SyntaxKind.GetAccessor: + return 'get'; + case SyntaxKind.SetAccessor: + return 'set'; + case SyntaxKind.MethodSignature: + return 'method'; + } + })(), + }); + if (node_utils_1.isOptional(node)) { + result.optional = true; + } + if (node.type) { + result.returnType = this.convertTypeAnnotation(node.type, node); + } + if (node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node)) { + result.readonly = true; + } + if (node.typeParameters) { + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + } + const accessibility = node_utils_1.getTSNodeAccessibility(node); + if (accessibility) { + result.accessibility = accessibility; + } + if (node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node)) { + result.export = true; + } + if (node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node)) { + result.static = true; + } + return result; + } /** * Applies the given TS modifiers to the given result object. * @param result @@ -428,13 +494,13 @@ class Converter { if (!modifiers || !modifiers.length) { return; } + const remainingModifiers = []; /** * Some modifiers are explicitly handled by applying them as * boolean values on the result node. As well as adding them * to the result, we remove them from the array, so that they * are not handled twice. */ - const handledModifierIndices = {}; for (let i = 0; i < modifiers.length; i++) { const modifier = modifiers[i]; switch (modifier.kind) { @@ -444,17 +510,16 @@ class Converter { */ case SyntaxKind.ExportKeyword: case SyntaxKind.DefaultKeyword: - handledModifierIndices[i] = true; break; case SyntaxKind.ConstKeyword: result.const = true; - handledModifierIndices[i] = true; break; case SyntaxKind.DeclareKeyword: result.declare = true; - handledModifierIndices[i] = true; break; default: + remainingModifiers.push(this.convertChild(modifier)); + break; } } /** @@ -462,11 +527,9 @@ class Converter { * not been explicitly handled above, we just convert and * add the modifiers array to the result node. */ - const remainingModifiers = modifiers.filter((_, i) => !handledModifierIndices[i]); - if (!remainingModifiers || !remainingModifiers.length) { - return; + if (remainingModifiers.length) { + result.modifiers = remainingModifiers; } - result.modifiers = remainingModifiers.map(el => this.convertChild(el)); } /** * Uses the provided range location to adjust the location data of the given Node @@ -492,7 +555,7 @@ class Converter { * @returns the converted ESTree node */ convertNode(node, parent) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; switch (node.kind) { case SyntaxKind.SourceFile: { return this.createNode(node, { @@ -651,7 +714,8 @@ class Converter { } // Process typeParameters if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } // check for exports return this.fixExports(node, result); @@ -786,6 +850,7 @@ class Converter { static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node), readonly: node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined, declare: node_utils_1.hasModifier(SyntaxKind.DeclareKeyword, node), + override: node_utils_1.hasModifier(SyntaxKind.OverrideKeyword, node), }); if (node.type) { result.typeAnnotation = this.convertTypeAnnotation(node.type, node); @@ -811,7 +876,13 @@ class Converter { return result; } case SyntaxKind.GetAccessor: - case SyntaxKind.SetAccessor: + case SyntaxKind.SetAccessor: { + if (node.parent.kind === SyntaxKind.InterfaceDeclaration || + node.parent.kind === SyntaxKind.TypeLiteral) { + return this.convertMethodSignature(node); + } + } + // otherwise, it is a non-type accessor - intentional fallthrough case SyntaxKind.MethodDeclaration: { const method = this.createNode(node, { type: !node.body @@ -830,7 +901,8 @@ class Converter { } // Process typeParameters if (node.typeParameters) { - method.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + method.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); this.fixParentLocation(method, method.typeParameters.range); } let result; @@ -865,6 +937,7 @@ class Converter { computed: node_utils_1.isComputedProperty(node.name), static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node), kind: 'method', + override: node_utils_1.hasModifier(SyntaxKind.OverrideKeyword, node), }); if (node.decorators) { result.decorators = node.decorators.map(el => this.convertChild(el)); @@ -910,7 +983,8 @@ class Converter { }); // Process typeParameters if (node.typeParameters) { - constructor.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + constructor.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); this.fixParentLocation(constructor, constructor.typeParameters.range); } // Process returnType @@ -932,6 +1006,7 @@ class Converter { computed: false, static: isStatic, kind: isStatic ? 'method' : 'constructor', + override: false, }); const accessibility = node_utils_1.getTSNodeAccessibility(node); if (accessibility) { @@ -955,7 +1030,8 @@ class Converter { } // Process typeParameters if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } return result; } @@ -1043,7 +1119,8 @@ class Converter { } // Process typeParameters if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } return result; } @@ -1167,6 +1244,7 @@ class Converter { readonly: node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node) || undefined, static: node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node) || undefined, export: node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node) || undefined, + override: node_utils_1.hasModifier(SyntaxKind.OverrideKeyword, node) || undefined, parameter: result, }); } @@ -1189,7 +1267,8 @@ class Converter { body: [], range: [node.members.pos - 1, node.end], }), - superClass: (superClass === null || superClass === void 0 ? void 0 : superClass.types[0]) ? this.convertChild(superClass.types[0].expression) + superClass: (superClass === null || superClass === void 0 ? void 0 : superClass.types[0]) + ? this.convertChild(superClass.types[0].expression) : null, }); if (superClass) { @@ -1197,11 +1276,13 @@ class Converter { throw node_utils_1.createError(this.ast, superClass.types[1].pos, 'Classes can only extend a single class.'); } if ((_e = superClass.types[0]) === null || _e === void 0 ? void 0 : _e.typeArguments) { - result.superTypeParameters = this.convertTypeArgumentsToTypeParameters(superClass.types[0].typeArguments, superClass.types[0]); + result.superTypeParameters = + this.convertTypeArgumentsToTypeParameters(superClass.types[0].typeArguments, superClass.types[0]); } } if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } if (implementsClause) { result.implements = implementsClause.types.map(el => this.convertChild(el)); @@ -1501,19 +1582,13 @@ class Converter { } // Literals case SyntaxKind.StringLiteral: { - const result = this.createNode(node, { + return this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.Literal, - raw: '', - value: '', + value: parent.kind === SyntaxKind.JsxAttribute + ? node_utils_1.unescapeStringLiteralText(node.text) + : node.text, + raw: node.getText(), }); - result.raw = this.ast.text.slice(result.range[0], result.range[1]); - if ('name' in parent && parent.name === node) { - result.value = node.text; - } - else { - result.value = node_utils_1.unescapeStringLiteralText(node.text); - } - return result; } case SyntaxKind.NumericLiteral: { return this.createNode(node, { @@ -1673,11 +1748,9 @@ class Converter { } } case SyntaxKind.JsxAttribute: { - const attributeName = this.convertChild(node.name); - attributeName.type = ts_estree_1.AST_NODE_TYPES.JSXIdentifier; return this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.JSXAttribute, - name: attributeName, + name: this.convertJSXNamespaceOrIdentifier(node.name), value: this.convertChild(node.initializer), }); } @@ -1690,19 +1763,20 @@ class Converter { case SyntaxKind.JsxText: { const start = node.getFullStart(); const end = node.getEnd(); + const text = this.ast.text.slice(start, end); if (this.options.useJSXTextNode) { return this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.JSXText, - value: this.ast.text.slice(start, end), - raw: this.ast.text.slice(start, end), + value: node_utils_1.unescapeStringLiteralText(text), + raw: text, range: [start, end], }); } else { return this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.Literal, - value: this.ast.text.slice(start, end), - raw: this.ast.text.slice(start, end), + value: node_utils_1.unescapeStringLiteralText(text), + raw: text, range: [start, end], }); } @@ -1753,7 +1827,8 @@ class Converter { case SyntaxKind.SymbolKeyword: case SyntaxKind.UnknownKeyword: case SyntaxKind.VoidKeyword: - case SyntaxKind.UndefinedKeyword: { + case SyntaxKind.UndefinedKeyword: + case SyntaxKind.IntrinsicKeyword: { return this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES[`TS${SyntaxKind[node.kind]}`], }); @@ -1803,6 +1878,7 @@ class Converter { const result = this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.TSMappedType, typeParameter: this.convertType(node.typeParameter), + nameType: (_j = this.convertType(node.nameType)) !== null && _j !== void 0 ? _j : null, }); if (node.readonlyToken) { if (node.readonlyToken.kind === SyntaxKind.ReadonlyKeyword) { @@ -1838,41 +1914,14 @@ class Converter { } // Process typeParameters if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } // check for exports return this.fixExports(node, result); } case SyntaxKind.MethodSignature: { - const result = this.createNode(node, { - type: ts_estree_1.AST_NODE_TYPES.TSMethodSignature, - computed: node_utils_1.isComputedProperty(node.name), - key: this.convertChild(node.name), - params: this.convertParameters(node.parameters), - }); - if (node_utils_1.isOptional(node)) { - result.optional = true; - } - if (node.type) { - result.returnType = this.convertTypeAnnotation(node.type, node); - } - if (node_utils_1.hasModifier(SyntaxKind.ReadonlyKeyword, node)) { - result.readonly = true; - } - if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); - } - const accessibility = node_utils_1.getTSNodeAccessibility(node); - if (accessibility) { - result.accessibility = accessibility; - } - if (node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node)) { - result.export = true; - } - if (node_utils_1.hasModifier(SyntaxKind.StaticKeyword, node)) { - result.static = true; - } - return result; + return this.convertMethodSignature(node); } case SyntaxKind.PropertySignature: { const result = this.createNode(node, { @@ -1917,26 +1966,29 @@ class Converter { } return result; } - case SyntaxKind.ConstructorType: + case SyntaxKind.ConstructorType: { + const result = this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.TSConstructorType, + params: this.convertParameters(node.parameters), + abstract: node_utils_1.hasModifier(SyntaxKind.AbstractKeyword, node), + }); + if (node.type) { + result.returnType = this.convertTypeAnnotation(node.type, node); + } + if (node.typeParameters) { + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + } + return result; + } case SyntaxKind.FunctionType: case SyntaxKind.ConstructSignature: case SyntaxKind.CallSignature: { - let type; - switch (node.kind) { - case SyntaxKind.ConstructSignature: - type = ts_estree_1.AST_NODE_TYPES.TSConstructSignatureDeclaration; - break; - case SyntaxKind.CallSignature: - type = ts_estree_1.AST_NODE_TYPES.TSCallSignatureDeclaration; - break; - case SyntaxKind.FunctionType: - type = ts_estree_1.AST_NODE_TYPES.TSFunctionType; - break; - case SyntaxKind.ConstructorType: - default: - type = ts_estree_1.AST_NODE_TYPES.TSConstructorType; - break; - } + const type = node.kind === SyntaxKind.ConstructSignature + ? ts_estree_1.AST_NODE_TYPES.TSConstructSignatureDeclaration + : node.kind === SyntaxKind.CallSignature + ? ts_estree_1.AST_NODE_TYPES.TSCallSignatureDeclaration + : ts_estree_1.AST_NODE_TYPES.TSFunctionType; const result = this.createNode(node, { type: type, params: this.convertParameters(node.parameters), @@ -1945,7 +1997,8 @@ class Converter { result.returnType = this.convertTypeAnnotation(node.type, node); } if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } return result; } @@ -1962,7 +2015,7 @@ class Converter { return result; } case SyntaxKind.InterfaceDeclaration: { - const interfaceHeritageClauses = (_j = node.heritageClauses) !== null && _j !== void 0 ? _j : []; + const interfaceHeritageClauses = (_k = node.heritageClauses) !== null && _k !== void 0 ? _k : []; const result = this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.TSInterfaceDeclaration, body: this.createNode(node, { @@ -1973,7 +2026,8 @@ class Converter { id: this.convertChild(node.name), }); if (node.typeParameters) { - result.typeParameters = this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); + result.typeParameters = + this.convertTSTypeParametersToTypeParametersDeclaration(node.typeParameters); } if (interfaceHeritageClauses.length > 0) { const interfaceExtends = []; @@ -2134,6 +2188,7 @@ class Converter { type: ts_estree_1.AST_NODE_TYPES.TSImportEqualsDeclaration, id: this.convertChild(node.name), moduleReference: this.convertChild(node.moduleReference), + importKind: node.isTypeOnly ? 'type' : 'value', isExport: node_utils_1.hasModifier(SyntaxKind.ExportKeyword, node), }); } @@ -2161,7 +2216,7 @@ class Converter { // if the former does not exist. const elementTypes = 'elementTypes' in node ? node.elementTypes.map((el) => this.convertType(el)) - : node.elements.map((el) => this.convertType(el)); + : node.elements.map(el => this.convertType(el)); return this.createNode(node, { type: ts_estree_1.AST_NODE_TYPES.TSTupleType, elementTypes, @@ -2197,6 +2252,19 @@ class Converter { typeAnnotation: this.convertType(node.type), }); } + // Template Literal Types + case SyntaxKind.TemplateLiteralType: { + const result = this.createNode(node, { + type: ts_estree_1.AST_NODE_TYPES.TSTemplateLiteralType, + quasis: [this.convertChild(node.head)], + types: [], + }); + node.templateSpans.forEach(templateSpan => { + result.types.push(this.convertChild(templateSpan.type)); + result.quasis.push(this.convertChild(templateSpan.literal)); + }); + return result; + } default: return this.deeplyCopy(node); } diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map index da4e64df79..15d0d0a147 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/convert.js.map @@ -1 +1 @@ -{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js index 9f60bc04cb..7c1c584c90 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js @@ -40,7 +40,7 @@ function createDefaultProgram(code, extra) { if (!extra.projects || extra.projects.length !== 1) { return undefined; } - const tsconfigPath = shared_1.getTsconfigPath(extra.projects[0], extra); + const tsconfigPath = extra.projects[0]; const commandLine = ts.getParsedCommandLineOfConfigFile(tsconfigPath, shared_1.createDefaultCompilerOptionsFromExtra(extra), Object.assign(Object.assign({}, ts.sys), { onUnRecoverableConfigFileDiagnostic: () => { } })); if (!commandLine) { return undefined; diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map index 7ae63e4af0..e70eabd768 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createDefaultProgram.js.map @@ -1 +1 @@ -{"version":3,"file":"createDefaultProgram.js","sourceRoot":"","sources":["../../src/create-program/createDefaultProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAY;IAEZ,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,wBAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,WAAW,GAAG,EAAE,CAAC,gCAAgC,CACrD,YAAY,EACZ,8CAAqC,CAAC,KAAK,CAAC,kCACvC,EAAE,CAAC,GAAG,KAAE,mCAAmC,EAAE,GAAG,EAAE,GAAE,CAAC,IAC3D,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,CACxC,WAAW,CAAC,OAAO;IACnB,oBAAoB,CAAC,IAAI,CAC1B,CAAC;IACF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC;IAC1C,YAAY,CAAC,QAAQ,GAAG,CAAC,QAAgB,EAAsB,EAAE,CAC/D,cAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChB,WAAW,CAAC,OAAO,EACnB,YAAY,CACb,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAEQ,oDAAoB"} \ No newline at end of file +{"version":3,"file":"createDefaultProgram.js","sourceRoot":"","sources":["../../src/create-program/createDefaultProgram.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAY;IAEZ,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QAClD,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAkB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,EAAE,CAAC,gCAAgC,CACrD,YAAY,EACZ,8CAAqC,CAAC,KAAK,CAAC,kCACvC,EAAE,CAAC,GAAG,KAAE,mCAAmC,EAAE,GAAG,EAAE,GAAE,CAAC,IAC3D,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,YAAY,GAAG,EAAE,CAAC,kBAAkB,CACxC,WAAW,CAAC,OAAO;IACnB,oBAAoB,CAAC,IAAI,CAC1B,CAAC;IACF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC;IAC1C,YAAY,CAAC,QAAQ,GAAG,CAAC,QAAgB,EAAsB,EAAE,CAC/D,cAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAC9B,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChB,WAAW,CAAC,OAAO,EACnB,YAAY,CACb,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAEQ,oDAAoB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map index 18380901c9..7b72959c1f 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"createProjectProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAazC;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,OAAO,EAC7B,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CAyE3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"createProjectProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAM5D;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,OAAO,EAC7B,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CA8D3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js index 917330b7e3..85af8bf3a7 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js @@ -8,14 +8,9 @@ const debug_1 = __importDefault(require("debug")); const path_1 = __importDefault(require("path")); const createWatchProgram_1 = require("./createWatchProgram"); const node_utils_1 = require("../node-utils"); +const shared_1 = require("./shared"); const log = debug_1.default('typescript-eslint:typescript-estree:createProjectProgram'); const DEFAULT_EXTRA_FILE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx']; -function getExtension(fileName) { - if (!fileName) { - return null; - } - return fileName.endsWith('.d.ts') ? '.d.ts' : path_1.default.extname(fileName); -} /** * @param code The code of the file being linted * @param createDefaultProgram True if the default program should be created @@ -24,16 +19,7 @@ function getExtension(fileName) { */ function createProjectProgram(code, createDefaultProgram, extra) { log('Creating project program for: %s', extra.filePath); - const astAndProgram = node_utils_1.firstDefined(createWatchProgram_1.getProgramsForProjects(code, extra.filePath, extra), currentProgram => { - const ast = currentProgram.getSourceFile(extra.filePath); - // working around https://github.com/typescript-eslint/typescript-eslint/issues/1573 - const expectedExt = getExtension(extra.filePath); - const returnedExt = getExtension(ast === null || ast === void 0 ? void 0 : ast.fileName); - if (expectedExt !== returnedExt) { - return; - } - return ast && { ast, program: currentProgram }; - }); + const astAndProgram = node_utils_1.firstDefined(createWatchProgram_1.getProgramsForProjects(code, extra.filePath, extra), currentProgram => shared_1.getAstFromProgram(currentProgram, extra)); if (!astAndProgram && !createDefaultProgram) { // the file was either not matched within the tsconfig, or the extension wasn't expected const errorLines = [ diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map index a39bb006e9..d055f645b1 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createProjectProgram.js.map @@ -1 +1 @@ -{"version":3,"file":"createProjectProgram.js","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"createProjectProgram.js","sourceRoot":"","sources":["../../src/create-program/createProjectProgram.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,6DAA8D;AAC9D,8CAA6C;AAE7C,qCAA4D;AAE5D,MAAM,GAAG,GAAG,eAAK,CAAC,0DAA0D,CAAC,CAAC;AAE9E,MAAM,6BAA6B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAErE;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,oBAA6B,EAC7B,KAAY;IAEZ,GAAG,CAAC,kCAAkC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExD,MAAM,aAAa,GAAG,yBAAY,CAChC,2CAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EACnD,cAAc,CAAC,EAAE,CAAC,0BAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAC3D,CAAC;IAEF,IAAI,CAAC,aAAa,IAAI,CAAC,oBAAoB,EAAE;QAC3C,wFAAwF;QACxF,MAAM,UAAU,GAAG;YACjB,qEAAqE;YACrE,gDAAgD,cAAI,CAAC,QAAQ,CAC3D,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,EACtC,KAAK,CAAC,QAAQ,CACf,GAAG;SACL,CAAC;QACF,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAE5D,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACnC,UAAU,CAAC,IAAI,CACb,+BAA+B,cAAc,qEAAqE,cAAc,IAAI,CACrI,CAAC;aACH;YACD,IAAI,6BAA6B,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1D,UAAU,CAAC,IAAI,CACb,6CAA6C,cAAc,sGAAsG,CAClK,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;YAC1D,MAAM,cAAc,GAAG,+BAA+B,aAAa,mBAAmB,CAAC;YACvF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;oBAChD,UAAU,CAAC,IAAI,CACb,GAAG,cAAc,4EAA4E,CAC9F,CAAC;oBACF,iBAAiB,GAAG,IAAI,CAAC;iBAC1B;aACF;iBAAM;gBACL,UAAU,CAAC,IAAI,CACb,GAAG,cAAc,sEAAsE,CACxF,CAAC;gBACF,iBAAiB,GAAG,IAAI,CAAC;aAC1B;SACF;QAED,IAAI,CAAC,iBAAiB,EAAE;YACtB,UAAU,CAAC,IAAI,CACb,qEAAqE,CACtE,CAAC;SACH;QAED,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACxC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEQ,oDAAoB"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts index af73e0c66f..e92660ad31 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts @@ -4,7 +4,7 @@ import { Extra } from '../parser-options'; * Clear all of the parser caches. * This should only be used in testing to ensure the parser is clean between tests. */ -declare function clearCaches(): void; +declare function clearWatchCaches(): void; /** * Calculate project environments using options provided by consumer and paths from config * @param code The code being linted @@ -15,5 +15,5 @@ declare function clearCaches(): void; */ declare function getProgramsForProjects(code: string, filePathIn: string, extra: Extra): ts.Program[]; declare function createWatchProgram(tsconfigPath: string, extra: Extra): ts.WatchOfConfigFile; -export { clearCaches, createWatchProgram, getProgramsForProjects }; +export { clearWatchCaches, createWatchProgram, getProgramsForProjects }; //# sourceMappingURL=createWatchProgram.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map index 5e6bce8364..f97e8b6f54 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"createWatchProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA6C1C;;;GAGG;AACH,iBAAS,WAAW,IAAI,IAAI,CAO3B;AA2DD;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,OAAO,EAAE,CAgGd;AAMD,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,CAAC,CAwHzC;AAoJD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"createWatchProgram.d.ts","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AA4C1C;;;GAGG;AACH,iBAAS,gBAAgB,IAAI,IAAI,CAOhC;AAyED;;;;;;;GAOG;AACH,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,OAAO,EAAE,CAyGd;AAMD,iBAAS,kBAAkB,CACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,CAAC,CA+HzC;AAmJD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js index fe03663309..af583247f9 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js @@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getProgramsForProjects = exports.createWatchProgram = exports.clearCaches = void 0; +exports.getProgramsForProjects = exports.createWatchProgram = exports.clearWatchCaches = void 0; const debug_1 = __importDefault(require("debug")); const fs_1 = __importDefault(require("fs")); const semver_1 = __importDefault(require("semver")); @@ -52,7 +52,7 @@ const parsedFilesSeenHash = new Map(); * Clear all of the parser caches. * This should only be used in testing to ensure the parser is clean between tests. */ -function clearCaches() { +function clearWatchCaches() { knownWatchProgramMap.clear(); fileWatchCallbackTrackingMap.clear(); folderWatchCallbackTrackingMap.clear(); @@ -60,7 +60,7 @@ function clearCaches() { programFileListCache.clear(); tsconfigLastModifiedTimestampCache.clear(); } -exports.clearCaches = clearCaches; +exports.clearWatchCaches = clearWatchCaches; function saveWatchCallback(trackingMap) { return (fileName, callback) => { const normalizedFileName = shared_1.getCanonicalFileName(fileName); @@ -107,6 +107,13 @@ function createHash(content) { } return content; } +function updateCachedFileList(tsconfigPath, program, extra) { + const fileList = extra.EXPERIMENTAL_useSourceOfProjectReferenceRedirect + ? new Set(program.getSourceFiles().map(sf => shared_1.getCanonicalFileName(sf.fileName))) + : new Set(program.getRootFileNames().map(f => shared_1.getCanonicalFileName(f))); + programFileListCache.set(tsconfigPath, fileList); + return fileList; +} /** * Calculate project environments using options provided by consumer and paths from config * @param code The code being linted @@ -133,22 +140,17 @@ function getProgramsForProjects(code, filePathIn, extra) { * before we go into the process of attempting to find and update every program * see if we know of a program that contains this file */ - for (const rawTsconfigPath of extra.projects) { - const tsconfigPath = shared_1.getTsconfigPath(rawTsconfigPath, extra); - const existingWatch = knownWatchProgramMap.get(tsconfigPath); - if (!existingWatch) { - continue; - } + for (const [tsconfigPath, existingWatch] of knownWatchProgramMap.entries()) { let fileList = programFileListCache.get(tsconfigPath); let updatedProgram = null; if (!fileList) { updatedProgram = existingWatch.getProgram().getProgram(); - fileList = new Set(updatedProgram.getRootFileNames().map(f => shared_1.getCanonicalFileName(f))); - programFileListCache.set(tsconfigPath, fileList); + fileList = updateCachedFileList(tsconfigPath, updatedProgram, extra); } if (fileList.has(filePath)) { log('Found existing program for file. %s', filePath); - updatedProgram = updatedProgram !== null && updatedProgram !== void 0 ? updatedProgram : existingWatch.getProgram().getProgram(); + updatedProgram = + updatedProgram !== null && updatedProgram !== void 0 ? updatedProgram : existingWatch.getProgram().getProgram(); // sets parent pointers in source files updatedProgram.getTypeChecker(); return [updatedProgram]; @@ -160,8 +162,7 @@ function getProgramsForProjects(code, filePathIn, extra) { * - the required program hasn't been created yet, or * - the file is new/renamed, and the program hasn't been updated. */ - for (const rawTsconfigPath of extra.projects) { - const tsconfigPath = shared_1.getTsconfigPath(rawTsconfigPath, extra); + for (const tsconfigPath of extra.projects) { const existingWatch = knownWatchProgramMap.get(tsconfigPath); if (existingWatch) { const updatedProgram = maybeInvalidateProgram(existingWatch, filePath, tsconfigPath); @@ -170,15 +171,28 @@ function getProgramsForProjects(code, filePathIn, extra) { } // sets parent pointers in source files updatedProgram.getTypeChecker(); + // cache and check the file list + const fileList = updateCachedFileList(tsconfigPath, updatedProgram, extra); + if (fileList.has(filePath)) { + log('Found updated program for file. %s', filePath); + // we can return early because we know this program contains the file + return [updatedProgram]; + } results.push(updatedProgram); continue; } const programWatch = createWatchProgram(tsconfigPath, extra); - const program = programWatch.getProgram().getProgram(); - // cache watch program and return current program knownWatchProgramMap.set(tsconfigPath, programWatch); + const program = programWatch.getProgram().getProgram(); // sets parent pointers in source files program.getTypeChecker(); + // cache and check the file list + const fileList = updateCachedFileList(tsconfigPath, program, extra); + if (fileList.has(filePath)) { + log('Found program for file. %s', filePath); + // we can return early because we know this program contains the file + return [program]; + } results.push(program); } return results; @@ -242,6 +256,11 @@ function createWatchProgram(tsconfigPath, extra) { scriptKind: ts.ScriptKind.Deferred, })); watchCompilerHost.trace = log; + /** + * TODO: this needs refinement and development, but we're allowing users to opt-in to this for now for testing and feedback. + * See https://github.com/typescript-eslint/typescript-eslint/issues/2094 + */ + watchCompilerHost.useSourceOfProjectReferenceRedirect = () => extra.EXPERIMENTAL_useSourceOfProjectReferenceRedirect; // Since we don't want to asynchronously update program we want to disable timeout methods // So any changes in the program will be delayed and updated when getProgram is called on watch let callback; diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map index 326e15ae24..46e6f373ad 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/createWatchProgram.js.map @@ -1 +1 @@ -{"version":3,"file":"createWatchProgram.js","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"createWatchProgram.js","sourceRoot":"","sources":["../../src/create-program/createWatchProgram.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts index ea10a4804d..66ae7d2c10 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts @@ -1,17 +1,22 @@ import * as ts from 'typescript'; +import { Program } from 'typescript'; import { Extra } from '../parser-options'; interface ASTAndProgram { ast: ts.SourceFile; program: ts.Program; } +/** + * Compiler options required to avoid critical functionality issues + */ +declare const CORE_COMPILER_OPTIONS: ts.CompilerOptions; declare function createDefaultCompilerOptionsFromExtra(extra: Extra): ts.CompilerOptions; declare type CanonicalPath = string & { __brand: unknown; }; declare function getCanonicalFileName(filePath: string): CanonicalPath; declare function ensureAbsolutePath(p: string, extra: Extra): string; -declare function getTsconfigPath(tsconfigPath: string, extra: Extra): CanonicalPath; declare function canonicalDirname(p: CanonicalPath): CanonicalPath; declare function getScriptKind(extra: Extra, filePath?: string): ts.ScriptKind; -export { ASTAndProgram, canonicalDirname, CanonicalPath, createDefaultCompilerOptionsFromExtra, ensureAbsolutePath, getCanonicalFileName, getScriptKind, getTsconfigPath, }; +declare function getAstFromProgram(currentProgram: Program, extra: Extra): ASTAndProgram | undefined; +export { ASTAndProgram, CORE_COMPILER_OPTIONS, canonicalDirname, CanonicalPath, createDefaultCompilerOptionsFromExtra, ensureAbsolutePath, getCanonicalFileName, getScriptKind, getAstFromProgram, }; //# sourceMappingURL=shared.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map index 3e22bc40aa..a63de3cad5 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,UAAU,aAAa;IACrB,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;CACrB;AAkBD,iBAAS,qCAAqC,CAC5C,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,eAAe,CASpB;AAGD,aAAK,aAAa,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AASnD,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM7D;AAED,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI3D;AAED,iBAAS,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAE1E;AAED,iBAAS,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAEzD;AAED,iBAAS,aAAa,CACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,MAAuB,GAChC,EAAE,CAAC,UAAU,CAwBf;AAED,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,qCAAqC,EACrC,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,eAAe,GAChB,CAAC"} \ No newline at end of file +{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,UAAU,aAAa;IACrB,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,eAQ/B,CAAC;AAYF,iBAAS,qCAAqC,CAC5C,KAAK,EAAE,KAAK,GACX,EAAE,CAAC,eAAe,CASpB;AAGD,aAAK,aAAa,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AASnD,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAM7D;AAED,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAI3D;AAED,iBAAS,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,CAEzD;AAED,iBAAS,aAAa,CACpB,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,MAAuB,GAChC,EAAE,CAAC,UAAU,CAwBf;AASD,iBAAS,iBAAiB,CACxB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CAW3B;AAED,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,qCAAqC,EACrC,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js index 5e8c1986fb..d88c121b99 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js @@ -22,24 +22,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.getTsconfigPath = exports.getScriptKind = exports.getCanonicalFileName = exports.ensureAbsolutePath = exports.createDefaultCompilerOptionsFromExtra = exports.canonicalDirname = void 0; +exports.getAstFromProgram = exports.getScriptKind = exports.getCanonicalFileName = exports.ensureAbsolutePath = exports.createDefaultCompilerOptionsFromExtra = exports.canonicalDirname = exports.CORE_COMPILER_OPTIONS = void 0; const path_1 = __importDefault(require("path")); const ts = __importStar(require("typescript")); /** - * Default compiler options for program generation from single root file + * Compiler options required to avoid critical functionality issues */ -const DEFAULT_COMPILER_OPTIONS = { - allowNonTsExtensions: true, - allowJs: true, - checkJs: true, +const CORE_COMPILER_OPTIONS = { noEmit: true, - // extendedDiagnostics: true, /** * Flags required to make no-unused-vars work */ noUnusedLocals: true, noUnusedParameters: true, }; +exports.CORE_COMPILER_OPTIONS = CORE_COMPILER_OPTIONS; +/** + * Default compiler options for program generation + */ +const DEFAULT_COMPILER_OPTIONS = Object.assign(Object.assign({}, CORE_COMPILER_OPTIONS), { allowNonTsExtensions: true, allowJs: true, checkJs: true }); function createDefaultCompilerOptionsFromExtra(extra) { if (extra.debugLevel.has('typescript')) { return Object.assign(Object.assign({}, DEFAULT_COMPILER_OPTIONS), { extendedDiagnostics: true }); @@ -66,10 +67,6 @@ function ensureAbsolutePath(p, extra) { : path_1.default.join(extra.tsconfigRootDir || process.cwd(), p); } exports.ensureAbsolutePath = ensureAbsolutePath; -function getTsconfigPath(tsconfigPath, extra) { - return getCanonicalFileName(ensureAbsolutePath(tsconfigPath, extra)); -} -exports.getTsconfigPath = getTsconfigPath; function canonicalDirname(p) { return path_1.default.dirname(p); } @@ -95,4 +92,21 @@ function getScriptKind(extra, filePath = extra.filePath) { } } exports.getScriptKind = getScriptKind; +function getExtension(fileName) { + if (!fileName) { + return null; + } + return fileName.endsWith('.d.ts') ? '.d.ts' : path_1.default.extname(fileName); +} +function getAstFromProgram(currentProgram, extra) { + const ast = currentProgram.getSourceFile(extra.filePath); + // working around https://github.com/typescript-eslint/typescript-eslint/issues/1573 + const expectedExt = getExtension(extra.filePath); + const returnedExt = getExtension(ast === null || ast === void 0 ? void 0 : ast.fileName); + if (expectedExt !== returnedExt) { + return undefined; + } + return ast && { ast, program: currentProgram }; +} +exports.getAstFromProgram = getAstFromProgram; //# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map index 30f05b202e..77e884d70d 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/shared.js.map @@ -1 +1 @@ -{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/create-program/shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.d.ts new file mode 100644 index 0000000000..75aaf34a38 --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.d.ts @@ -0,0 +1,13 @@ +import * as ts from 'typescript'; +import { Extra } from '../parser-options'; +import { ASTAndProgram } from './shared'; +declare function useProvidedPrograms(programInstances: Iterable, extra: Extra): ASTAndProgram | undefined; +/** + * Utility offered by parser to help consumers construct their own program instance. + * + * @param configFile the path to the tsconfig.json file, relative to `projectDirectory` + * @param projectDirectory the project directory to use as the CWD, defaults to `process.cwd()` + */ +declare function createProgramFromConfigFile(configFile: string, projectDirectory?: string): ts.Program; +export { useProvidedPrograms, createProgramFromConfigFile }; +//# sourceMappingURL=useProvidedPrograms.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.d.ts.map new file mode 100644 index 0000000000..de6c47df9a --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"useProvidedPrograms.d.ts","sourceRoot":"","sources":["../../src/create-program/useProvidedPrograms.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,aAAa,EAGd,MAAM,UAAU,CAAC;AAIlB,iBAAS,mBAAmB,CAC1B,gBAAgB,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EACtC,KAAK,EAAE,KAAK,GACX,aAAa,GAAG,SAAS,CA+B3B;AAED;;;;;GAKG;AACH,iBAAS,2BAA2B,CAClC,UAAU,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB,EAAE,CAAC,OAAO,CA4BZ;AAUD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js new file mode 100644 index 0000000000..e68a74591d --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js @@ -0,0 +1,89 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createProgramFromConfigFile = exports.useProvidedPrograms = void 0; +const debug_1 = __importDefault(require("debug")); +const fs = __importStar(require("fs")); +const path = __importStar(require("path")); +const ts = __importStar(require("typescript")); +const shared_1 = require("./shared"); +const log = debug_1.default('typescript-eslint:typescript-estree:useProvidedProgram'); +function useProvidedPrograms(programInstances, extra) { + log('Retrieving ast for %s from provided program instance(s)', extra.filePath); + let astAndProgram; + for (const programInstance of programInstances) { + astAndProgram = shared_1.getAstFromProgram(programInstance, extra); + // Stop at the first applicable program instance + if (astAndProgram) { + break; + } + } + if (!astAndProgram) { + const relativeFilePath = path.relative(extra.tsconfigRootDir || process.cwd(), extra.filePath); + const errorLines = [ + '"parserOptions.programs" has been provided for @typescript-eslint/parser.', + `The file was not found in any of the provided program instance(s): ${relativeFilePath}`, + ]; + throw new Error(errorLines.join('\n')); + } + astAndProgram.program.getTypeChecker(); // ensure parent pointers are set in source files + return astAndProgram; +} +exports.useProvidedPrograms = useProvidedPrograms; +/** + * Utility offered by parser to help consumers construct their own program instance. + * + * @param configFile the path to the tsconfig.json file, relative to `projectDirectory` + * @param projectDirectory the project directory to use as the CWD, defaults to `process.cwd()` + */ +function createProgramFromConfigFile(configFile, projectDirectory) { + if (ts.sys === undefined) { + throw new Error('`createProgramFromConfigFile` is only supported in a Node-like environment.'); + } + const parsed = ts.getParsedCommandLineOfConfigFile(configFile, shared_1.CORE_COMPILER_OPTIONS, { + onUnRecoverableConfigFileDiagnostic: diag => { + throw new Error(formatDiagnostics([diag])); // ensures that `parsed` is defined. + }, + fileExists: fs.existsSync, + getCurrentDirectory: () => (projectDirectory && path.resolve(projectDirectory)) || process.cwd(), + readDirectory: ts.sys.readDirectory, + readFile: file => fs.readFileSync(file, 'utf-8'), + useCaseSensitiveFileNames: ts.sys.useCaseSensitiveFileNames, + }); + const result = parsed; // parsed is not undefined, since we throw on failure. + if (result.errors.length) { + throw new Error(formatDiagnostics(result.errors)); + } + const host = ts.createCompilerHost(result.options, true); + return ts.createProgram(result.fileNames, result.options, host); +} +exports.createProgramFromConfigFile = createProgramFromConfigFile; +function formatDiagnostics(diagnostics) { + return ts.formatDiagnostics(diagnostics, { + getCanonicalFileName: f => f, + getCurrentDirectory: process.cwd, + getNewLine: () => '\n', + }); +} +//# sourceMappingURL=useProvidedPrograms.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js.map new file mode 100644 index 0000000000..09334e569a --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/create-program/useProvidedPrograms.js.map @@ -0,0 +1 @@ +{"version":3,"file":"useProvidedPrograms.js","sourceRoot":"","sources":["../../src/create-program/useProvidedPrograms.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AAEjC,qCAIkB;AAElB,MAAM,GAAG,GAAG,eAAK,CAAC,wDAAwD,CAAC,CAAC;AAE5E,SAAS,mBAAmB,CAC1B,gBAAsC,EACtC,KAAY;IAEZ,GAAG,CACD,yDAAyD,EACzD,KAAK,CAAC,QAAQ,CACf,CAAC;IAEF,IAAI,aAAwC,CAAC;IAC7C,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;QAC9C,aAAa,GAAG,0BAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC1D,gDAAgD;QAChD,IAAI,aAAa,EAAE;YACjB,MAAM;SACP;KACF;IAED,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CACpC,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,EACtC,KAAK,CAAC,QAAQ,CACf,CAAC;QACF,MAAM,UAAU,GAAG;YACjB,2EAA2E;YAC3E,sEAAsE,gBAAgB,EAAE;SACzF,CAAC;QAEF,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACxC;IAED,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,iDAAiD;IAEzF,OAAO,aAAa,CAAC;AACvB,CAAC;AAiDQ,kDAAmB;AA/C5B;;;;;GAKG;AACH,SAAS,2BAA2B,CAClC,UAAkB,EAClB,gBAAyB;IAEzB,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;KACH;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,gCAAgC,CAChD,UAAU,EACV,8BAAqB,EACrB;QACE,mCAAmC,EAAE,IAAI,CAAC,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC;QAClF,CAAC;QACD,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,mBAAmB,EAAE,GAAG,EAAE,CACxB,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE;QACvE,aAAa,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa;QACnC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;QAChD,yBAAyB,EAAE,EAAE,CAAC,GAAG,CAAC,yBAAyB;KAC5D,CACF,CAAC;IACF,MAAM,MAAM,GAAG,MAAO,CAAC,CAAC,sDAAsD;IAC9E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KACnD;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAU6B,kEAA2B;AARzD,SAAS,iBAAiB,CAAC,WAA4B;IACrD,OAAO,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE;QACvC,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC,GAAG;QAChC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;KACvB,CAAC,CAAC;AACL,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts index 14e0d8b7aa..c6eb4d0cda 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts @@ -1,8 +1,9 @@ -export { AST, parse, parseAndGenerateServices, ParseAndGenerateServicesResult, } from './parser'; +export * from './parser'; export { ParserServices, TSESTreeOptions } from './parser-options'; export { simpleTraverse } from './simple-traverse'; export * from './ts-estree'; -export { clearCaches } from './create-program/createWatchProgram'; +export { clearWatchCaches as clearCaches } from './create-program/createWatchProgram'; +export { createProgramFromConfigFile as createProgram } from './create-program/useProvidedPrograms'; export { visitorKeys } from '@typescript-eslint/visitor-keys'; export declare const version: string; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map index 41ffbdc63a..f031ef2b4c 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,KAAK,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,gBAAgB,IAAI,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,2BAA2B,IAAI,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGpG,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/index.js b/node_modules/@typescript-eslint/typescript-estree/dist/index.js index 4df304cb2f..1c50cfa7dc 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/index.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/index.js @@ -10,18 +10,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.version = exports.visitorKeys = exports.clearCaches = exports.simpleTraverse = exports.parseAndGenerateServices = exports.parse = void 0; -var parser_1 = require("./parser"); -Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parser_1.parse; } }); -Object.defineProperty(exports, "parseAndGenerateServices", { enumerable: true, get: function () { return parser_1.parseAndGenerateServices; } }); +exports.version = exports.visitorKeys = exports.createProgram = exports.clearCaches = exports.simpleTraverse = void 0; +__exportStar(require("./parser"), exports); var simple_traverse_1 = require("./simple-traverse"); Object.defineProperty(exports, "simpleTraverse", { enumerable: true, get: function () { return simple_traverse_1.simpleTraverse; } }); __exportStar(require("./ts-estree"), exports); var createWatchProgram_1 = require("./create-program/createWatchProgram"); -Object.defineProperty(exports, "clearCaches", { enumerable: true, get: function () { return createWatchProgram_1.clearCaches; } }); +Object.defineProperty(exports, "clearCaches", { enumerable: true, get: function () { return createWatchProgram_1.clearWatchCaches; } }); +var useProvidedPrograms_1 = require("./create-program/useProvidedPrograms"); +Object.defineProperty(exports, "createProgram", { enumerable: true, get: function () { return useProvidedPrograms_1.createProgramFromConfigFile; } }); // re-export for backwards-compat var visitor_keys_1 = require("@typescript-eslint/visitor-keys"); Object.defineProperty(exports, "visitorKeys", { enumerable: true, get: function () { return visitor_keys_1.visitorKeys; } }); // note - cannot migrate this to an import statement because it will make TSC copy the package.json to the dist folder +// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment exports.version = require('../package.json').version; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map index a17f0a342a..0e842de558 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mCAKkB;AAHhB,+FAAA,KAAK,OAAA;AACL,kHAAA,wBAAwB,OAAA;AAI1B,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,8CAA4B;AAC5B,0EAAkE;AAAzD,iHAAA,WAAW,OAAA;AAEpB,iCAAiC;AACjC,gEAA8D;AAArD,2GAAA,WAAW,OAAA;AAEpB,sHAAsH;AACzG,QAAA,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAyB;AAEzB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,8CAA4B;AAC5B,0EAAsF;AAA7E,iHAAA,gBAAgB,OAAe;AACxC,4EAAoG;AAA3F,oHAAA,2BAA2B,OAAiB;AAErD,iCAAiC;AACjC,gEAA8D;AAArD,2GAAA,WAAW,OAAA;AAEpB,sHAAsH;AACtH,mEAAmE;AACtD,QAAA,OAAO,GAAW,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.d.ts new file mode 100644 index 0000000000..7953cc6fee --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.d.ts @@ -0,0 +1,2 @@ +export declare const xhtmlEntities: Record; +//# sourceMappingURL=xhtml-entities.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.d.ts.map new file mode 100644 index 0000000000..ce45e83d3d --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"xhtml-entities.d.ts","sourceRoot":"","sources":["../../src/jsx/xhtml-entities.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA8PhD,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js new file mode 100644 index 0000000000..bf58e96574 --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js @@ -0,0 +1,259 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.xhtmlEntities = void 0; +exports.xhtmlEntities = { + quot: '\u0022', + amp: '&', + apos: '\u0027', + lt: '<', + gt: '>', + nbsp: '\u00A0', + iexcl: '\u00A1', + cent: '\u00A2', + pound: '\u00A3', + curren: '\u00A4', + yen: '\u00A5', + brvbar: '\u00A6', + sect: '\u00A7', + uml: '\u00A8', + copy: '\u00A9', + ordf: '\u00AA', + laquo: '\u00AB', + not: '\u00AC', + shy: '\u00AD', + reg: '\u00AE', + macr: '\u00AF', + deg: '\u00B0', + plusmn: '\u00B1', + sup2: '\u00B2', + sup3: '\u00B3', + acute: '\u00B4', + micro: '\u00B5', + para: '\u00B6', + middot: '\u00B7', + cedil: '\u00B8', + sup1: '\u00B9', + ordm: '\u00BA', + raquo: '\u00BB', + frac14: '\u00BC', + frac12: '\u00BD', + frac34: '\u00BE', + iquest: '\u00BF', + Agrave: '\u00C0', + Aacute: '\u00C1', + Acirc: '\u00C2', + Atilde: '\u00C3', + Auml: '\u00C4', + Aring: '\u00C5', + AElig: '\u00C6', + Ccedil: '\u00C7', + Egrave: '\u00C8', + Eacute: '\u00C9', + Ecirc: '\u00CA', + Euml: '\u00CB', + Igrave: '\u00CC', + Iacute: '\u00CD', + Icirc: '\u00CE', + Iuml: '\u00CF', + ETH: '\u00D0', + Ntilde: '\u00D1', + Ograve: '\u00D2', + Oacute: '\u00D3', + Ocirc: '\u00D4', + Otilde: '\u00D5', + Ouml: '\u00D6', + times: '\u00D7', + Oslash: '\u00D8', + Ugrave: '\u00D9', + Uacute: '\u00DA', + Ucirc: '\u00DB', + Uuml: '\u00DC', + Yacute: '\u00DD', + THORN: '\u00DE', + szlig: '\u00DF', + agrave: '\u00E0', + aacute: '\u00E1', + acirc: '\u00E2', + atilde: '\u00E3', + auml: '\u00E4', + aring: '\u00E5', + aelig: '\u00E6', + ccedil: '\u00E7', + egrave: '\u00E8', + eacute: '\u00E9', + ecirc: '\u00EA', + euml: '\u00EB', + igrave: '\u00EC', + iacute: '\u00ED', + icirc: '\u00EE', + iuml: '\u00EF', + eth: '\u00F0', + ntilde: '\u00F1', + ograve: '\u00F2', + oacute: '\u00F3', + ocirc: '\u00F4', + otilde: '\u00F5', + ouml: '\u00F6', + divide: '\u00F7', + oslash: '\u00F8', + ugrave: '\u00F9', + uacute: '\u00FA', + ucirc: '\u00FB', + uuml: '\u00FC', + yacute: '\u00FD', + thorn: '\u00FE', + yuml: '\u00FF', + OElig: '\u0152', + oelig: '\u0153', + Scaron: '\u0160', + scaron: '\u0161', + Yuml: '\u0178', + fnof: '\u0192', + circ: '\u02C6', + tilde: '\u02DC', + Alpha: '\u0391', + Beta: '\u0392', + Gamma: '\u0393', + Delta: '\u0394', + Epsilon: '\u0395', + Zeta: '\u0396', + Eta: '\u0397', + Theta: '\u0398', + Iota: '\u0399', + Kappa: '\u039A', + Lambda: '\u039B', + Mu: '\u039C', + Nu: '\u039D', + Xi: '\u039E', + Omicron: '\u039F', + Pi: '\u03A0', + Rho: '\u03A1', + Sigma: '\u03A3', + Tau: '\u03A4', + Upsilon: '\u03A5', + Phi: '\u03A6', + Chi: '\u03A7', + Psi: '\u03A8', + Omega: '\u03A9', + alpha: '\u03B1', + beta: '\u03B2', + gamma: '\u03B3', + delta: '\u03B4', + epsilon: '\u03B5', + zeta: '\u03B6', + eta: '\u03B7', + theta: '\u03B8', + iota: '\u03B9', + kappa: '\u03BA', + lambda: '\u03BB', + mu: '\u03BC', + nu: '\u03BD', + xi: '\u03BE', + omicron: '\u03BF', + pi: '\u03C0', + rho: '\u03C1', + sigmaf: '\u03C2', + sigma: '\u03C3', + tau: '\u03C4', + upsilon: '\u03C5', + phi: '\u03C6', + chi: '\u03C7', + psi: '\u03C8', + omega: '\u03C9', + thetasym: '\u03D1', + upsih: '\u03D2', + piv: '\u03D6', + ensp: '\u2002', + emsp: '\u2003', + thinsp: '\u2009', + zwnj: '\u200C', + zwj: '\u200D', + lrm: '\u200E', + rlm: '\u200F', + ndash: '\u2013', + mdash: '\u2014', + lsquo: '\u2018', + rsquo: '\u2019', + sbquo: '\u201A', + ldquo: '\u201C', + rdquo: '\u201D', + bdquo: '\u201E', + dagger: '\u2020', + Dagger: '\u2021', + bull: '\u2022', + hellip: '\u2026', + permil: '\u2030', + prime: '\u2032', + Prime: '\u2033', + lsaquo: '\u2039', + rsaquo: '\u203A', + oline: '\u203E', + frasl: '\u2044', + euro: '\u20AC', + image: '\u2111', + weierp: '\u2118', + real: '\u211C', + trade: '\u2122', + alefsym: '\u2135', + larr: '\u2190', + uarr: '\u2191', + rarr: '\u2192', + darr: '\u2193', + harr: '\u2194', + crarr: '\u21B5', + lArr: '\u21D0', + uArr: '\u21D1', + rArr: '\u21D2', + dArr: '\u21D3', + hArr: '\u21D4', + forall: '\u2200', + part: '\u2202', + exist: '\u2203', + empty: '\u2205', + nabla: '\u2207', + isin: '\u2208', + notin: '\u2209', + ni: '\u220B', + prod: '\u220F', + sum: '\u2211', + minus: '\u2212', + lowast: '\u2217', + radic: '\u221A', + prop: '\u221D', + infin: '\u221E', + ang: '\u2220', + and: '\u2227', + or: '\u2228', + cap: '\u2229', + cup: '\u222A', + int: '\u222B', + there4: '\u2234', + sim: '\u223C', + cong: '\u2245', + asymp: '\u2248', + ne: '\u2260', + equiv: '\u2261', + le: '\u2264', + ge: '\u2265', + sub: '\u2282', + sup: '\u2283', + nsub: '\u2284', + sube: '\u2286', + supe: '\u2287', + oplus: '\u2295', + otimes: '\u2297', + perp: '\u22A5', + sdot: '\u22C5', + lceil: '\u2308', + rceil: '\u2309', + lfloor: '\u230A', + rfloor: '\u230B', + lang: '\u2329', + rang: '\u232A', + loz: '\u25CA', + spades: '\u2660', + clubs: '\u2663', + hearts: '\u2665', + diams: '\u2666', +}; +//# sourceMappingURL=xhtml-entities.js.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js.map new file mode 100644 index 0000000000..30c14ec78b --- /dev/null +++ b/node_modules/@typescript-eslint/typescript-estree/dist/jsx/xhtml-entities.js.map @@ -0,0 +1 @@ +{"version":3,"file":"xhtml-entities.js","sourceRoot":"","sources":["../../src/jsx/xhtml-entities.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts index e9b5d410e2..1a7a86be21 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts @@ -1,73 +1,14 @@ import * as ts from 'typescript'; import { AST_NODE_TYPES, AST_TOKEN_TYPES, TSESTree } from './ts-estree'; declare const SyntaxKind: typeof ts.SyntaxKind; -interface TokenToText { - [SyntaxKind.OpenBraceToken]: '{'; - [SyntaxKind.CloseBraceToken]: '}'; - [SyntaxKind.OpenParenToken]: '('; - [SyntaxKind.CloseParenToken]: ')'; - [SyntaxKind.OpenBracketToken]: '['; - [SyntaxKind.CloseBracketToken]: ']'; - [SyntaxKind.DotToken]: '.'; - [SyntaxKind.DotDotDotToken]: '...'; - [SyntaxKind.SemicolonToken]: ';'; - [SyntaxKind.CommaToken]: ','; - [SyntaxKind.LessThanToken]: '<'; - [SyntaxKind.GreaterThanToken]: '>'; - [SyntaxKind.LessThanEqualsToken]: '<='; - [SyntaxKind.GreaterThanEqualsToken]: '>='; - [SyntaxKind.EqualsEqualsToken]: '=='; - [SyntaxKind.ExclamationEqualsToken]: '!='; - [SyntaxKind.EqualsEqualsEqualsToken]: '==='; - [SyntaxKind.InstanceOfKeyword]: 'instanceof'; - [SyntaxKind.ExclamationEqualsEqualsToken]: '!=='; - [SyntaxKind.EqualsGreaterThanToken]: '=>'; - [SyntaxKind.PlusToken]: '+'; - [SyntaxKind.MinusToken]: '-'; - [SyntaxKind.AsteriskToken]: '*'; - [SyntaxKind.AsteriskAsteriskToken]: '**'; - [SyntaxKind.SlashToken]: '/'; - [SyntaxKind.PercentToken]: '%'; - [SyntaxKind.PlusPlusToken]: '++'; - [SyntaxKind.MinusMinusToken]: '--'; - [SyntaxKind.LessThanLessThanToken]: '<<'; - [SyntaxKind.LessThanSlashToken]: '>'; - [SyntaxKind.GreaterThanGreaterThanGreaterThanToken]: '>>>'; - [SyntaxKind.AmpersandToken]: '&'; - [SyntaxKind.BarToken]: '|'; - [SyntaxKind.CaretToken]: '^'; - [SyntaxKind.ExclamationToken]: '!'; - [SyntaxKind.TildeToken]: '~'; - [SyntaxKind.AmpersandAmpersandToken]: '&&'; - [SyntaxKind.BarBarToken]: '||'; - [SyntaxKind.QuestionToken]: '?'; - [SyntaxKind.ColonToken]: ':'; - [SyntaxKind.EqualsToken]: '='; - [SyntaxKind.PlusEqualsToken]: '+='; - [SyntaxKind.MinusEqualsToken]: '-='; - [SyntaxKind.AsteriskEqualsToken]: '*='; - [SyntaxKind.AsteriskAsteriskEqualsToken]: '**='; - [SyntaxKind.SlashEqualsToken]: '/='; - [SyntaxKind.PercentEqualsToken]: '%='; - [SyntaxKind.LessThanLessThanEqualsToken]: '<<='; - [SyntaxKind.GreaterThanGreaterThanEqualsToken]: '>>='; - [SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken]: '>>>='; - [SyntaxKind.AmpersandEqualsToken]: '&='; - [SyntaxKind.AmpersandAmpersandEqualsToken]: '&&='; - [SyntaxKind.BarEqualsToken]: '|='; - [SyntaxKind.BarBarEqualsToken]: '||='; - [SyntaxKind.CaretEqualsToken]: '^='; - [SyntaxKind.QuestionQuestionEqualsToken]: '??='; - [SyntaxKind.AtToken]: '@'; +interface TokenToText extends TSESTree.PunctuatorTokenToText { + [SyntaxKind.ImportKeyword]: 'import'; [SyntaxKind.InKeyword]: 'in'; - [SyntaxKind.UniqueKeyword]: 'unique'; - [SyntaxKind.KeyOfKeyword]: 'keyof'; + [SyntaxKind.InstanceOfKeyword]: 'instanceof'; [SyntaxKind.NewKeyword]: 'new'; - [SyntaxKind.ImportKeyword]: 'import'; + [SyntaxKind.KeyOfKeyword]: 'keyof'; [SyntaxKind.ReadonlyKeyword]: 'readonly'; - [SyntaxKind.QuestionQuestionToken]: '??'; - [SyntaxKind.QuestionDotToken]: '?.'; + [SyntaxKind.UniqueKeyword]: 'unique'; } /** * Returns true if the given ts.Token is the assignment operator @@ -111,7 +52,7 @@ export declare function getLastModifier(node: ts.Node): ts.Modifier | null; * @param token the TypeScript token * @returns is comma */ -export declare function isComma(token: ts.Node): boolean; +export declare function isComma(token: ts.Node): token is ts.Token; /** * Returns true if the given ts.Node is a comment * @param node the TypeScript node @@ -123,7 +64,7 @@ export declare function isComment(node: ts.Node): boolean; * @param node the TypeScript node * @returns is JSDoc comment */ -export declare function isJSDocComment(node: ts.Node): boolean; +export declare function isJSDocComment(node: ts.Node): node is ts.JSDoc; /** * Returns the binary expression type of the given ts.Token * @param operator the operator token @@ -164,7 +105,7 @@ export declare function getRange(node: ts.Node, ast: ts.SourceFile): [number, nu * @param node the ts.Node * @returns is a token */ -export declare function isToken(node: ts.Node): boolean; +export declare function isToken(node: ts.Node): node is ts.Token; /** * Returns true if a given ts.Node is a JSX token * @param node ts.Node to be checked @@ -216,7 +157,7 @@ export declare function unescapeStringLiteralText(text: string): string; * @param node ts.Node to be checked * @returns is Computed Property */ -export declare function isComputedProperty(node: ts.Node): boolean; +export declare function isComputedProperty(node: ts.Node): node is ts.ComputedPropertyName; /** * Returns true if a given ts.Node is optional (has QuestionToken) * @param node ts.Node to be checked @@ -245,22 +186,23 @@ export declare function getTokenType(token: ts.Identifier | ts.Token, ast: ts.SourceFile): TSESTree.Token; /** * Converts all tokens for the given AST * @param ast the AST object * @returns the converted Tokens */ export declare function convertTokens(ast: ts.SourceFile): TSESTree.Token[]; -export interface TSError { - index: number; - lineNumber: number; - column: number; - message: string; +export declare class TSError extends Error { + readonly fileName: string; + readonly index: number; + readonly lineNumber: number; + readonly column: number; + constructor(message: string, fileName: string, index: number, lineNumber: number, column: number); } /** * @param ast the AST object - * @param start the index at which the error starts + * @param start the index at which the error starts * @param message the error message * @returns converted error object */ diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map index f898a2f283..8a00758415 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"node-utils.d.ts","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"node-utils.d.ts","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js index 05c95cf2f4..266bb7c149 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js @@ -18,14 +18,11 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; Object.defineProperty(exports, "__esModule", { value: true }); -exports.firstDefined = exports.nodeHasTokens = exports.createError = exports.convertTokens = exports.convertToken = exports.getTokenType = exports.isChildUnwrappableOptionalChain = exports.isChainExpression = exports.isOptional = exports.isComputedProperty = exports.unescapeStringLiteralText = exports.hasJSXAncestor = exports.findFirstMatchingAncestor = exports.findNextToken = exports.getTSNodeAccessibility = exports.getDeclarationKind = exports.isJSXToken = exports.isToken = exports.getRange = exports.canContainDirective = exports.getLocFor = exports.getLineAndCharacterFor = exports.getBinaryExpressionType = exports.isJSDocComment = exports.isComment = exports.isComma = exports.getLastModifier = exports.hasModifier = exports.isESTreeClassMember = exports.getTextForTokenKind = exports.isLogicalOperator = exports.isAssignmentOperator = void 0; -const unescape_1 = __importDefault(require("lodash/unescape")); +exports.firstDefined = exports.nodeHasTokens = exports.createError = exports.TSError = exports.convertTokens = exports.convertToken = exports.getTokenType = exports.isChildUnwrappableOptionalChain = exports.isChainExpression = exports.isOptional = exports.isComputedProperty = exports.unescapeStringLiteralText = exports.hasJSXAncestor = exports.findFirstMatchingAncestor = exports.findNextToken = exports.getTSNodeAccessibility = exports.getDeclarationKind = exports.isJSXToken = exports.isToken = exports.getRange = exports.canContainDirective = exports.getLocFor = exports.getLineAndCharacterFor = exports.getBinaryExpressionType = exports.isJSDocComment = exports.isComment = exports.isComma = exports.getLastModifier = exports.hasModifier = exports.isESTreeClassMember = exports.getTextForTokenKind = exports.isLogicalOperator = exports.isAssignmentOperator = void 0; const ts = __importStar(require("typescript")); const ts_estree_1 = require("./ts-estree"); +const xhtml_entities_1 = require("./jsx/xhtml-entities"); const SyntaxKind = ts.SyntaxKind; const LOGICAL_OPERATORS = [ SyntaxKind.BarBarToken, @@ -316,7 +313,18 @@ exports.hasJSXAncestor = hasJSXAncestor; * @returns The unescaped string literal text. */ function unescapeStringLiteralText(text) { - return unescape_1.default(text); + return text.replace(/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g, entity => { + const item = entity.slice(1, -1); + if (item[0] === '#') { + const codePoint = item[1] === 'x' + ? parseInt(item.slice(2), 16) + : parseInt(item.slice(1), 10); + return codePoint > 0x10ffff // RangeError: Invalid code point + ? entity + : String.fromCodePoint(codePoint); + } + return xhtml_entities_1.xhtmlEntities[item] || entity; + }); } exports.unescapeStringLiteralText = unescapeStringLiteralText; /** @@ -350,12 +358,9 @@ exports.isChainExpression = isChainExpression; * Returns true of the child of property access expression is an optional chain */ function isChildUnwrappableOptionalChain(node, child) { - if (isChainExpression(child) && + return (isChainExpression(child) && // (x?.y).z is semantically different, and as such .z is no longer optional - node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression) { - return true; - } - return false; + node.expression.kind !== ts.SyntaxKind.ParenthesizedExpression); } exports.isChildUnwrappableOptionalChain = isChildUnwrappableOptionalChain; /** @@ -383,7 +388,7 @@ function getTokenType(token) { return ts_estree_1.AST_TOKEN_TYPES.Keyword; } if (token.kind >= SyntaxKind.FirstPunctuation && - token.kind <= SyntaxKind.LastBinaryOperator) { + token.kind <= SyntaxKind.LastPunctuation) { return ts_estree_1.AST_TOKEN_TYPES.Punctuator; } if (token.kind >= SyntaxKind.NoSubstitutionTemplateLiteral && @@ -410,7 +415,7 @@ function getTokenType(token) { case SyntaxKind.ConstructorKeyword: case SyntaxKind.GetKeyword: case SyntaxKind.SetKeyword: - // falls through + // intentional fallthrough default: } // Some JSX tokens have to be determined based on their parent @@ -452,6 +457,8 @@ function convertToken(token, ast) { }; } else { + // @ts-expect-error TS is complaining about `value` not being the correct + // type but it is return { type: tokenType, value, @@ -491,20 +498,30 @@ function convertTokens(ast) { return result; } exports.convertTokens = convertTokens; +class TSError extends Error { + constructor(message, fileName, index, lineNumber, column) { + super(message); + this.fileName = fileName; + this.index = index; + this.lineNumber = lineNumber; + this.column = column; + Object.defineProperty(this, 'name', { + value: new.target.name, + enumerable: false, + configurable: true, + }); + } +} +exports.TSError = TSError; /** * @param ast the AST object - * @param start the index at which the error starts + * @param start the index at which the error starts * @param message the error message * @returns converted error object */ function createError(ast, start, message) { const loc = ast.getLineAndCharacterOfPosition(start); - return { - index: start, - lineNumber: loc.line + 1, - column: loc.character, - message, - }; + return new TSError(message, ast.fileName, start, loc.line + 1, loc.character); } exports.createError = createError; /** diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map index 306ba36684..f8044eca7b 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/node-utils.js.map @@ -1 +1 @@ -{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAuC;AACvC,+CAAiC;AACjC,2CAAwE;AAExE,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AAEjC,MAAM,iBAAiB,GAGjB;IACJ,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,uBAAuB;IAClC,UAAU,CAAC,qBAAqB;CACjC,CAAC;AAuEF;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,QAAqB;IAErB,OAAO,CACL,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,eAAe;QAC3C,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,cAAc,CAC3C,CAAC;AACJ,CAAC;AAPD,oDAOC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC/B,QAAqB;IAErB,OAAQ,iBAAqC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxE,CAAC;AAJD,8CAIC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,IAAO;IAEP,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAEN,CAAC;AACzB,CAAC;AAND,kDAMC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,IAAa;IAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,qBAAqB,CAAC;AACxD,CAAC;AAFD,kDAEC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CACzB,YAAkC,EAClC,IAAa;IAEb,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,SAAS;QAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAChE,CAAC;AACJ,CAAC;AATD,kCASC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAa;IAC3C,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;QACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,CACL,CAAC;AACJ,CAAC;AAPD,0CAOC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC;AAC9C,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAa;IACrC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,uBAAuB;QAChD,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,sBAAsB,CAChD,CAAC;AACJ,CAAC;AALD,8BAKC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAa;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY,CAAC;AAC/C,CAAC;AAFD,wCAEC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,QAAqB;IAKrB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE;QAClC,OAAO,0BAAc,CAAC,oBAAoB,CAAC;KAC5C;SAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE;QACtC,OAAO,0BAAc,CAAC,iBAAiB,CAAC;KACzC;IACD,OAAO,0BAAc,CAAC,gBAAgB,CAAC;AACzC,CAAC;AAZD,0DAYC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,GAAW,EACX,GAAkB;IAElB,MAAM,GAAG,GAAG,GAAG,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;QAClB,MAAM,EAAE,GAAG,CAAC,SAAS;KACtB,CAAC;AACJ,CAAC;AATD,wDASC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,KAAa,EACb,GAAW,EACX,GAAkB;IAElB,OAAO;QACL,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC;QACzC,GAAG,EAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC;KACtC,CAAC;AACJ,CAAC;AATD,8BASC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,IAA+C;IAE/C,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;QACrC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACxB,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAC/B,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAC/B,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAC/B,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;YACjC,KAAK,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;YACtC,KAAK,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,CAAC,UAAU,CAAC,iBAAiB;gBAClC,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,KAAK,CAAC;SAChB;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAlBD,kDAkBC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAa,EAAE,GAAkB;IACxD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7C,CAAC;AAFD,4BAEC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,IAAa;IACnC,OAAO,CACL,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,SAAS,CACxE,CAAC;AACJ,CAAC;AAJD,0BAIC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAa;IACtC,OAAO,CACL,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY,CAC3E,CAAC;AACJ,CAAC;AAJD,gCAIC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,IAAgC;IAEhC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;QACjC,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;QACnC,OAAO,OAAO,CAAC;KAChB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAVD,gDAUC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,IAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,QAAQ,QAAQ,CAAC,IAAI,EAAE;YACrB,KAAK,UAAU,CAAC,aAAa;gBAC3B,OAAO,QAAQ,CAAC;YAClB,KAAK,UAAU,CAAC,gBAAgB;gBAC9B,OAAO,WAAW,CAAC;YACrB,KAAK,UAAU,CAAC,cAAc;gBAC5B,OAAO,SAAS,CAAC;YACnB;gBACE,MAAM;SACT;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,wDAqBC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAC3B,aAA2B,EAC3B,MAAe,EACf,GAAkB;IAElB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpB,SAAS,IAAI,CAAC,CAAU;QACtB,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE;YAChD,qEAAqE;YACrE,OAAO,CAAC,CAAC;SACV;QACD,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,KAAc,EAAE,EAAE;YACzD,MAAM,qBAAqB;YACzB,oDAAoD;YACpD,CAAC,KAAK,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;gBACjE,wDAAwD;gBACxD,KAAK,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC;YAClC,OAAO,qBAAqB,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC;gBACvD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBACb,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAvBD,sCAuBC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CACvC,IAAa,EACb,SAAqC;IAErC,OAAO,IAAI,EAAE;QACX,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAXD,8DAWC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAa;IAC1C,OAAO,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAFD,wCAEC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,IAAY;IACpD,OAAO,kBAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAFD,8DAEC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,IAAa;IAC9C,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,oBAAoB,CAAC;AACvD,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAE1B;IACC,OAAO,IAAI,CAAC,aAAa;QACvB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,UAAU,CAAC,aAAa;QACtD,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAND,gCAMC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,IAAmB;IAEnB,OAAO,IAAI,CAAC,IAAI,KAAK,0BAAc,CAAC,eAAe,CAAC;AACtD,CAAC;AAJD,8CAIC;AAED;;GAEG;AACH,SAAgB,+BAA+B,CAC7C,IAIwB,EACxB,KAAoB;IAEpB,IACE,iBAAiB,CAAC,KAAK,CAAC;QACxB,2EAA2E;QAC3E,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,uBAAuB,EAC9D;QACA,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAjBD,0EAiBC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAC1B,KAA8C;IAE9C,IAAI,qBAAqB,IAAI,KAAK,IAAI,KAAK,CAAC,mBAAmB,EAAE;QAC/D,IAAI,KAAK,CAAC,mBAAmB,KAAK,UAAU,CAAC,WAAW,EAAE;YACxD,OAAO,2BAAe,CAAC,IAAI,CAAC;SAC7B;aAAM,IACL,KAAK,CAAC,mBAAmB,IAAI,UAAU,CAAC,uBAAuB;YAC/D,KAAK,CAAC,mBAAmB,IAAI,UAAU,CAAC,WAAW,EACnD;YACA,OAAO,2BAAe,CAAC,UAAU,CAAC;SACnC;QACD,OAAO,2BAAe,CAAC,OAAO,CAAC;KAChC;IAED,IACE,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY;QACrC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,sBAAsB,EAC/C;QACA,IACE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;YACtC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,WAAW,EACrC;YACA,OAAO,2BAAe,CAAC,OAAO,CAAC;SAChC;QAED,OAAO,2BAAe,CAAC,OAAO,CAAC;KAChC;IAED,IACE,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,gBAAgB;QACzC,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,kBAAkB,EAC3C;QACA,OAAO,2BAAe,CAAC,UAAU,CAAC;KACnC;IAED,IACE,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,6BAA6B;QACtD,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY,EACrC;QACA,OAAO,2BAAe,CAAC,QAAQ,CAAC;KACjC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE;QAClB,KAAK,UAAU,CAAC,cAAc;YAC5B,OAAO,2BAAe,CAAC,OAAO,CAAC;QAEjC,KAAK,UAAU,CAAC,OAAO;YACrB,OAAO,2BAAe,CAAC,OAAO,CAAC;QAEjC,KAAK,UAAU,CAAC,aAAa;YAC3B,mGAAmG;YACnG,2CAA2C;YAC3C,IACE,KAAK,CAAC,MAAM;gBACZ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;oBAC5C,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC,EAC9C;gBACA,OAAO,2BAAe,CAAC,OAAO,CAAC;aAChC;YAED,OAAO,2BAAe,CAAC,MAAM,CAAC;QAEhC,KAAK,UAAU,CAAC,wBAAwB;YACtC,OAAO,2BAAe,CAAC,iBAAiB,CAAC;QAE3C,KAAK,UAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,UAAU,CAAC,kBAAkB,CAAC;QACnC,KAAK,UAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,UAAU,CAAC,UAAU,CAAC;QAE3B,gBAAgB;QAChB,QAAQ;KACT;IAED,8DAA8D;IAC9D,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;QACxD,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO,2BAAe,CAAC,aAAa,CAAC;SACtC;QAED,IACE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,wBAAwB;YACzD,cAAc,CAAC,KAAK,CAAC,EACrB;YACA,OAAO,2BAAe,CAAC,aAAa,CAAC;SACtC;KACF;IAED,OAAO,2BAAe,CAAC,UAAU,CAAC;AACpC,CAAC;AA1FD,oCA0FC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAC1B,KAAc,EACd,GAAkB;IAElB,MAAM,KAAK,GACT,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO;QAC/B,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;QACtB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,2BAAe,CAAC,iBAAiB,EAAE;QACnD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK;YACL,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;YACnB,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;YAC/B,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC/C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC/C;SACF,CAAC;KACH;SAAM;QACL,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK;YACL,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC;YACnB,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;SAChC,CAAC;KACH;AACH,CAAC;AA/BD,oCA+BC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,GAAkB;IAC9C,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC;;OAEG;IACH,SAAS,IAAI,CAAC,IAAa;QACzB,wEAAwE;QACxE,iFAAiF;QACjF,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;YAC3C,OAAO;SACR;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc,EAAE;YAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE1C,IAAI,SAAS,EAAE;gBACb,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACxB;SACF;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,sCAwBC;AASD;;;;;GAKG;AACH,SAAgB,WAAW,CACzB,GAAkB,EAClB,KAAa,EACb,OAAe;IAEf,MAAM,GAAG,GAAG,GAAG,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,SAAS;QACrB,OAAO;KACR,CAAC;AACJ,CAAC;AAZD,kCAYC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,CAAU,EAAE,GAAkB;IAC1D,6EAA6E;IAC7E,sDAAsD;IACtD,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,cAAc;QACzC,CAAC,CAAC,8DAA8D;YAC9D,CAAC,CAAE,CAAS,CAAC,KAAK;QACpB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAPD,sCAOC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,KAA+B,EAC/B,QAAsD;IAEtD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,SAAS,CAAC;KAClB;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAfD,oCAeC"} \ No newline at end of file +{"version":3,"file":"node-utils.js","sourceRoot":"","sources":["../src/node-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts index e64a09d255..0eee1cc38f 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts @@ -1,6 +1,7 @@ import { DebugLevel } from '@typescript-eslint/types'; -import { Program } from 'typescript'; -import { TSESTree, TSNode, TSESTreeToTSNode, TSToken } from './ts-estree'; +import type { Program } from 'typescript'; +import { CanonicalPath } from './create-program/shared'; +import { TSESTree, TSESTreeToTSNode, TSNode, TSToken } from './ts-estree'; declare type DebugModule = 'typescript-eslint' | 'eslint' | 'typescript'; export interface Extra { code: string; @@ -10,13 +11,16 @@ export interface Extra { debugLevel: Set; errorOnTypeScriptSyntacticAndSemanticIssues: boolean; errorOnUnknownASTType: boolean; + EXPERIMENTAL_useSourceOfProjectReferenceRedirect: boolean; extraFileExtensions: string[]; filePath: string; jsx: boolean; loc: boolean; + singleRun: boolean; log: (message: string) => void; preserveNodeMaps?: boolean; - projects: string[]; + programs: null | Iterable; + projects: CanonicalPath[]; range: boolean; strict: boolean; tokens: null | TSESTree.Token[]; @@ -82,6 +86,17 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { * Causes the parser to error if the TypeScript compiler returns any unexpected syntax/semantic errors. */ errorOnTypeScriptSyntacticAndSemanticIssues?: boolean; + /** + * ***EXPERIMENTAL FLAG*** - Use this at your own risk. + * + * Causes TS to use the source files for referenced projects instead of the compiled .d.ts files. + * This feature is not yet optimized, and is likely to cause OOMs for medium to large projects. + * + * This flag REQUIRES at least TS v3.9, otherwise it does nothing. + * + * See: https://github.com/typescript-eslint/typescript-eslint/issues/2094 + */ + EXPERIMENTAL_useSourceOfProjectReferenceRedirect?: boolean; /** * When `project` is provided, this controls the non-standard file extensions which will be parsed. * It accepts an array of file extensions, each preceded by a `.`. @@ -120,6 +135,12 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { * The absolute path to the root directory for all provided `project`s. */ tsconfigRootDir?: string; + /** + * An array of one or more instances of TypeScript Program objects to be used for type information. + * This overrides any program or programs that would have been computed from the `project` option. + * All linted files must be part of the provided program(s). + */ + programs?: Program[]; /** *************************************************************************************** * IT IS RECOMMENDED THAT YOU DO NOT USE THIS OPTION, AS IT CAUSES PERFORMANCE ISSUES. * @@ -130,6 +151,19 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { * it will not error, but will instead parse the file and its dependencies in a new program. */ createDefaultProgram?: boolean; + /** + * ESLint (and therefore typescript-eslint) is used in both "single run"/one-time contexts, + * such as an ESLint CLI invocation, and long-running sessions (such as continuous feedback + * on a file in an IDE). + * + * When typescript-eslint handles TypeScript Program management behind the scenes, this distinction + * is important because there is significant overhead to managing the so called Watch Programs + * needed for the long-running use-case. + * + * When allowAutomaticSingleRunInference is enabled, we will use common heuristics to infer + * whether or not ESLint is being used as part of a single run. + */ + allowAutomaticSingleRunInference?: boolean; } export declare type TSESTreeOptions = ParseAndGenerateServicesOptions; export interface ParserWeakMap { diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map index af6375f004..163502813f 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"parser-options.d.ts","sourceRoot":"","sources":["../src/parser-options.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts index d31f3a7aba..57ebd4f021 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts @@ -1,5 +1,6 @@ import { TSESTreeOptions, ParserServices } from './parser-options'; import { TSESTree } from './ts-estree'; +declare function clearProgramCache(): void; interface EmptyObject { } declare type AST = TSESTree.Program & (T['tokens'] extends true ? { @@ -11,7 +12,13 @@ interface ParseAndGenerateServicesResult { ast: AST; services: ParserServices; } +interface ParseWithNodeMapsResult { + ast: AST; + esTreeNodeToTSNodeMap: ParserServices['esTreeNodeToTSNodeMap']; + tsNodeToESTreeNodeMap: ParserServices['tsNodeToESTreeNodeMap']; +} declare function parse(code: string, options?: T): AST; +declare function parseWithNodeMaps(code: string, options?: T): ParseWithNodeMapsResult; declare function parseAndGenerateServices(code: string, options: T): ParseAndGenerateServicesResult; -export { AST, parse, parseAndGenerateServices, ParseAndGenerateServicesResult }; +export { AST, parse, parseAndGenerateServices, parseWithNodeMaps, ParseAndGenerateServicesResult, ParseWithNodeMapsResult, clearProgramCache, }; //# sourceMappingURL=parser.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map index 0647033539..cd9870568a 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAWA,OAAO,EAAS,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwSvC,UAAU,WAAW;CAAG;AACxB,aAAK,GAAG,CAAC,CAAC,SAAS,eAAe,IAAI,QAAQ,CAAC,OAAO,GACpD,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,GACvE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,CAAC;AAE/E,UAAU,8BAA8B,CAAC,CAAC,SAAS,eAAe;IAChE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,iBAAS,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACxD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,GACV,GAAG,CAAC,CAAC,CAAC,CA4CR;AAED,iBAAS,wBAAwB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3E,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACT,8BAA8B,CAAC,CAAC,CAAC,CA0EnC;AAED,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAYA,OAAO,EAAS,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAyCvC,iBAAS,iBAAiB,IAAI,IAAI,CAEjC;AA+VD,UAAU,WAAW;CAAG;AACxB,aAAK,GAAG,CAAC,CAAC,SAAS,eAAe,IAAI,QAAQ,CAAC,OAAO,GACpD,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,GACvE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;CAAE,GAAG,WAAW,CAAC,CAAC;AAE/E,UAAU,8BAA8B,CAAC,CAAC,SAAS,eAAe;IAChE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;CAC1B;AACD,UAAU,uBAAuB,CAAC,CAAC,SAAS,eAAe;IACzD,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACZ,qBAAqB,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAC;IAC/D,qBAAqB,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAC;CAChE;AAED,iBAAS,KAAK,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACxD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,GACV,GAAG,CAAC,CAAC,CAAC,CAGR;AA8DD,iBAAS,iBAAiB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACpE,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,GACV,uBAAuB,CAAC,CAAC,CAAC,CAE5B;AAED,iBAAS,wBAAwB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3E,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACT,8BAA8B,CAAC,CAAC,CAAC,CAyGnC;AAED,OAAO,EACL,GAAG,EACH,KAAK,EACL,wBAAwB,EACxB,iBAAiB,EACjB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,GAClB,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js index 20db621224..ff9f4b04f0 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js @@ -22,11 +22,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.parseAndGenerateServices = exports.parse = void 0; +exports.clearProgramCache = exports.parseWithNodeMaps = exports.parseAndGenerateServices = exports.parse = void 0; const debug_1 = __importDefault(require("debug")); const globby_1 = require("globby"); const is_glob_1 = __importDefault(require("is-glob")); const semver_1 = __importDefault(require("semver")); +const path_1 = require("path"); const ts = __importStar(require("typescript")); const ast_converter_1 = require("./ast-converter"); const convert_1 = require("./convert"); @@ -36,23 +37,34 @@ const createProjectProgram_1 = require("./create-program/createProjectProgram"); const createSourceFile_1 = require("./create-program/createSourceFile"); const semantic_or_syntactic_errors_1 = require("./semantic-or-syntactic-errors"); const shared_1 = require("./create-program/shared"); +const useProvidedPrograms_1 = require("./create-program/useProvidedPrograms"); const log = debug_1.default('typescript-eslint:typescript-estree:parser'); /** * This needs to be kept in sync with the top-level README.md in the * typescript-eslint monorepo */ -const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.1.0'; +const SUPPORTED_TYPESCRIPT_VERSIONS = '>=3.3.1 <4.4.0'; /* * The semver package will ignore prerelease ranges, and we don't want to explicitly document every one * List them all separately here, so we can automatically create the full string */ -const SUPPORTED_PRERELEASE_RANGES = []; +const SUPPORTED_PRERELEASE_RANGES = ['4.3.0-beta', '4.3.1-rc']; const ACTIVE_TYPESCRIPT_VERSION = ts.version; const isRunningSupportedTypeScriptVersion = semver_1.default.satisfies(ACTIVE_TYPESCRIPT_VERSION, [SUPPORTED_TYPESCRIPT_VERSIONS] .concat(SUPPORTED_PRERELEASE_RANGES) .join(' || ')); let extra; let warnedAboutTSVersion = false; +/** + * Cache existing programs for the single run use-case. + * + * clearProgramCache() is only intended to be used in testing to ensure the parser is clean between tests. + */ +const existingPrograms = new Map(); +function clearProgramCache() { + existingPrograms.clear(); +} +exports.clearProgramCache = clearProgramCache; function enforceString(code) { /** * Ensure the source code is a string @@ -64,13 +76,15 @@ function enforceString(code) { } /** * @param code The code of the file being linted + * @param programInstances One or more (potentially lazily constructed) existing programs to use * @param shouldProvideParserServices True if the program should be attempted to be calculated from provided tsconfig files * @param shouldCreateDefaultProgram True if the program should be created from compiler host * @returns Returns a source file and program corresponding to the linted code */ -function getProgramAndAST(code, shouldProvideParserServices, shouldCreateDefaultProgram) { - return ((shouldProvideParserServices && - createProjectProgram_1.createProjectProgram(code, shouldCreateDefaultProgram, extra)) || +function getProgramAndAST(code, programInstances, shouldProvideParserServices, shouldCreateDefaultProgram) { + return ((programInstances && useProvidedPrograms_1.useProvidedPrograms(programInstances, extra)) || + (shouldProvideParserServices && + createProjectProgram_1.createProjectProgram(code, shouldCreateDefaultProgram, extra)) || (shouldProvideParserServices && shouldCreateDefaultProgram && createDefaultProgram_1.createDefaultProgram(code, extra)) || @@ -99,48 +113,59 @@ function resetExtra() { debugLevel: new Set(), errorOnTypeScriptSyntacticAndSemanticIssues: false, errorOnUnknownASTType: false, + EXPERIMENTAL_useSourceOfProjectReferenceRedirect: false, extraFileExtensions: [], filePath: getFileName(), jsx: false, loc: false, log: console.log, preserveNodeMaps: true, + programs: null, projects: [], range: false, strict: false, tokens: null, tsconfigRootDir: process.cwd(), useJSXTextNode: false, + /** + * Unless we can reliably infer otherwise, we default to assuming that this run could be part + * of a long-running session (e.g. in an IDE) and watch programs will therefore be required + */ + singleRun: false, }; } +function getTsconfigPath(tsconfigPath, extra) { + return shared_1.getCanonicalFileName(shared_1.ensureAbsolutePath(tsconfigPath, extra)); +} /** - * Normalizes, sanitizes, resolves and filters the provided + * Normalizes, sanitizes, resolves and filters the provided project paths */ function prepareAndTransformProjects(projectsInput, ignoreListInput) { - let projects = []; + const sanitizedProjects = []; // Normalize and sanitize the project paths if (typeof projectsInput === 'string') { - projects.push(projectsInput); + sanitizedProjects.push(projectsInput); } else if (Array.isArray(projectsInput)) { for (const project of projectsInput) { if (typeof project === 'string') { - projects.push(project); + sanitizedProjects.push(project); } } } - if (projects.length === 0) { - return projects; + if (sanitizedProjects.length === 0) { + return []; } // Transform glob patterns into paths - const globbedProjects = projects.filter(project => is_glob_1.default(project)); - projects = projects - .filter(project => !is_glob_1.default(project)) - .concat(globby_1.sync([...globbedProjects, ...ignoreListInput], { + const nonGlobProjects = sanitizedProjects.filter(project => !is_glob_1.default(project)); + const globProjects = sanitizedProjects.filter(project => is_glob_1.default(project)); + const uniqueCanonicalProjectPaths = new Set(nonGlobProjects + .concat(globby_1.sync([...globProjects, ...ignoreListInput], { cwd: extra.tsconfigRootDir, - })); - log('parserOptions.project (excluding ignored) matched projects: %s', projects); - return projects; + })) + .map(project => getTsconfigPath(project, extra))); + log('parserOptions.project (excluding ignored) matched projects: %s', uniqueCanonicalProjectPaths); + return Array.from(uniqueCanonicalProjectPaths); } function applyParserOptionsToExtra(options) { var _a; @@ -161,7 +186,7 @@ function applyParserOptionsToExtra(options) { } if (extra.debugLevel.has('eslint') || // make sure we don't turn off the eslint debug if it was enabled via --debug - debug_1.default.enabled('eslint:*')) { + debug_1.default.enabled('eslint:*,-eslint:code-path')) { // https://github.com/eslint/eslint/blob/9dfc8501fb1956c90dc11e6377b4cb38a6bea65d/bin/eslint.js#L25 namespaces.push('eslint:*,-eslint:code-path'); } @@ -232,17 +257,27 @@ function applyParserOptionsToExtra(options) { } // NOTE - ensureAbsolutePath relies upon having the correct tsconfigRootDir in extra extra.filePath = shared_1.ensureAbsolutePath(extra.filePath, extra); - // NOTE - prepareAndTransformProjects relies upon having the correct tsconfigRootDir in extra - const projectFolderIgnoreList = ((_a = options.projectFolderIgnoreList) !== null && _a !== void 0 ? _a : []) - .reduce((acc, folder) => { - if (typeof folder === 'string') { - acc.push(folder); + if (Array.isArray(options.programs)) { + if (!options.programs.length) { + throw new Error(`You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.`); } - return acc; - }, []) - // prefix with a ! for not match glob - .map(folder => (folder.startsWith('!') ? folder : `!${folder}`)); - extra.projects = prepareAndTransformProjects(options.project, projectFolderIgnoreList); + extra.programs = options.programs; + log('parserOptions.programs was provided, so parserOptions.project will be ignored.'); + } + if (!extra.programs) { + // providing a program overrides project resolution + const projectFolderIgnoreList = ((_a = options.projectFolderIgnoreList) !== null && _a !== void 0 ? _a : ['**/node_modules/**']) + .reduce((acc, folder) => { + if (typeof folder === 'string') { + acc.push(folder); + } + return acc; + }, []) + // prefix with a ! for not match glob + .map(folder => (folder.startsWith('!') ? folder : `!${folder}`)); + // NOTE - prepareAndTransformProjects relies upon having the correct tsconfigRootDir in extra + extra.projects = prepareAndTransformProjects(options.project, projectFolderIgnoreList); + } if (Array.isArray(options.extraFileExtensions) && options.extraFileExtensions.every(ext => typeof ext === 'string')) { extra.extraFileExtensions = options.extraFileExtensions; @@ -257,6 +292,9 @@ function applyParserOptionsToExtra(options) { extra.createDefaultProgram = typeof options.createDefaultProgram === 'boolean' && options.createDefaultProgram; + extra.EXPERIMENTAL_useSourceOfProjectReferenceRedirect = + typeof options.EXPERIMENTAL_useSourceOfProjectReferenceRedirect === + 'boolean' && options.EXPERIMENTAL_useSourceOfProjectReferenceRedirect; } function warnAboutTSVersion() { var _a; @@ -278,7 +316,49 @@ function warnAboutTSVersion() { warnedAboutTSVersion = true; } } +/** + * ESLint (and therefore typescript-eslint) is used in both "single run"/one-time contexts, + * such as an ESLint CLI invocation, and long-running sessions (such as continuous feedback + * on a file in an IDE). + * + * When typescript-eslint handles TypeScript Program management behind the scenes, this distinction + * is important because there is significant overhead to managing the so called Watch Programs + * needed for the long-running use-case. We therefore use the following logic to figure out which + * of these contexts applies to the current execution. + */ +function inferSingleRun(options) { + // Allow users to explicitly inform us of their intent to perform a single run (or not) with TSESTREE_SINGLE_RUN + if (process.env.TSESTREE_SINGLE_RUN === 'false') { + extra.singleRun = false; + return; + } + if (process.env.TSESTREE_SINGLE_RUN === 'true') { + extra.singleRun = true; + return; + } + // Currently behind a flag while we gather real-world feedback + if (options === null || options === void 0 ? void 0 : options.allowAutomaticSingleRunInference) { + if ( + // Default to single runs for CI processes. CI=true is set by most CI providers by default. + process.env.CI === 'true' || + // This will be true for invocations such as `npx eslint ...` and `./node_modules/.bin/eslint ...` + process.argv[1].endsWith(path_1.normalize('node_modules/.bin/eslint'))) { + extra.singleRun = true; + return; + } + } + /** + * We default to assuming that this run could be part of a long-running session (e.g. in an IDE) + * and watch programs will therefore be required + */ + extra.singleRun = false; +} function parse(code, options) { + const { ast } = parseWithNodeMapsInternal(code, options, false); + return ast; +} +exports.parse = parse; +function parseWithNodeMapsInternal(code, options, shouldPreserveNodeMaps) { /** * Reset the parse configuration */ @@ -304,6 +384,10 @@ function parse(code, options) { * Warn if the user is using an unsupported version of TypeScript */ warnAboutTSVersion(); + /** + * Figure out whether this is a single run or part of a long-running process + */ + inferSingleRun(options); /** * Create a ts.SourceFile directly, no ts.Program is needed for a simple * parse @@ -312,11 +396,19 @@ function parse(code, options) { /** * Convert the TypeScript AST to an ESTree-compatible one */ - const { estree } = ast_converter_1.astConverter(ast, extra, false); - return estree; + const { estree, astMaps } = ast_converter_1.astConverter(ast, extra, shouldPreserveNodeMaps); + return { + ast: estree, + esTreeNodeToTSNodeMap: astMaps.esTreeNodeToTSNodeMap, + tsNodeToESTreeNodeMap: astMaps.tsNodeToESTreeNodeMap, + }; } -exports.parse = parse; +function parseWithNodeMaps(code, options) { + return parseWithNodeMapsInternal(code, options, true); +} +exports.parseWithNodeMaps = parseWithNodeMaps; function parseAndGenerateServices(code, options) { + var _a; /** * Reset the parse configuration */ @@ -342,11 +434,37 @@ function parseAndGenerateServices(code, options) { */ warnAboutTSVersion(); /** - * Generate a full ts.Program in order to be able to provide parser - * services, such as type-checking + * Figure out whether this is a single run or part of a long-running process + */ + inferSingleRun(options); + /** + * If this is a single run in which the user has not provided any existing programs but there + * are programs which need to be created from the provided "project" option, + * create an Iterable which will lazily create the programs as needed by the iteration logic + */ + if (extra.singleRun && !extra.programs && ((_a = extra.projects) === null || _a === void 0 ? void 0 : _a.length) > 0) { + extra.programs = { + *[Symbol.iterator]() { + for (const configFile of extra.projects) { + const existingProgram = existingPrograms.get(configFile); + if (existingProgram) { + yield existingProgram; + } + else { + log('Detected single-run/CLI usage, creating Program once ahead of time for project: %s', configFile); + const newProgram = useProvidedPrograms_1.createProgramFromConfigFile(configFile); + existingPrograms.set(configFile, newProgram); + yield newProgram; + } + } + }, + }; + } + /** + * Generate a full ts.Program or offer provided instances in order to be able to provide parser services, such as type-checking */ - const shouldProvideParserServices = extra.projects && extra.projects.length > 0; - const { ast, program } = getProgramAndAST(code, shouldProvideParserServices, extra.createDefaultProgram); + const shouldProvideParserServices = extra.programs != null || (extra.projects && extra.projects.length > 0); + const { ast, program } = getProgramAndAST(code, extra.programs, shouldProvideParserServices, extra.createDefaultProgram); /** * Convert the TypeScript AST to an ESTree-compatible one, and optionally preserve * mappings between converted and original AST nodes diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map index d717c37d47..c6e5da8853 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/parser.js.map @@ -1 +1 @@ -{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts index c3aa41b7a0..da6cf6b264 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts @@ -54,6 +54,7 @@ export interface EstreeToTsNodeTypes { [AST_NODE_TYPES.JSXSpreadAttribute]: ts.JsxSpreadAttribute; [AST_NODE_TYPES.JSXSpreadChild]: ts.JsxExpression; [AST_NODE_TYPES.JSXMemberExpression]: ts.PropertyAccessExpression; + [AST_NODE_TYPES.JSXNamespacedName]: ts.Identifier | ts.ThisExpression; [AST_NODE_TYPES.JSXText]: ts.JsxText; [AST_NODE_TYPES.LabeledStatement]: ts.LabeledStatement; [AST_NODE_TYPES.Literal]: ts.StringLiteral | ts.NumericLiteral | ts.RegularExpressionLiteral | ts.JsxText | ts.NullLiteral | ts.BooleanLiteral | ts.BigIntLiteral; @@ -83,11 +84,11 @@ export interface EstreeToTsNodeTypes { [AST_NODE_TYPES.TSAbstractMethodDefinition]: ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.MethodDeclaration | ts.ConstructorDeclaration; [AST_NODE_TYPES.TSArrayType]: ts.ArrayTypeNode; [AST_NODE_TYPES.TSAsExpression]: ts.AsExpression; - [AST_NODE_TYPES.TSCallSignatureDeclaration]: ts.PropertySignature; + [AST_NODE_TYPES.TSCallSignatureDeclaration]: ts.CallSignatureDeclaration; [AST_NODE_TYPES.TSClassImplements]: ts.ExpressionWithTypeArguments; [AST_NODE_TYPES.TSConditionalType]: ts.ConditionalTypeNode; [AST_NODE_TYPES.TSConstructorType]: ts.ConstructorTypeNode; - [AST_NODE_TYPES.TSConstructSignatureDeclaration]: ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.ConstructSignatureDeclaration | ts.CallSignatureDeclaration; + [AST_NODE_TYPES.TSConstructSignatureDeclaration]: ts.ConstructSignatureDeclaration; [AST_NODE_TYPES.TSDeclareFunction]: ts.FunctionDeclaration; [AST_NODE_TYPES.TSEnumDeclaration]: ts.EnumDeclaration; [AST_NODE_TYPES.TSEnumMember]: ts.EnumMember; @@ -105,7 +106,7 @@ export interface EstreeToTsNodeTypes { [AST_NODE_TYPES.TSIntersectionType]: ts.IntersectionTypeNode; [AST_NODE_TYPES.TSLiteralType]: ts.LiteralTypeNode; [AST_NODE_TYPES.TSMappedType]: ts.MappedTypeNode; - [AST_NODE_TYPES.TSMethodSignature]: ts.MethodSignature; + [AST_NODE_TYPES.TSMethodSignature]: ts.MethodSignature | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration; [AST_NODE_TYPES.TSModuleBlock]: ts.ModuleBlock; [AST_NODE_TYPES.TSModuleDeclaration]: ts.ModuleDeclaration; [AST_NODE_TYPES.TSNamedTupleMember]: ts.NamedTupleMember; @@ -119,6 +120,7 @@ export interface EstreeToTsNodeTypes { [AST_NODE_TYPES.TSRestType]: ts.RestTypeNode | ts.NamedTupleMember; [AST_NODE_TYPES.TSThisType]: ts.ThisTypeNode; [AST_NODE_TYPES.TSTupleType]: ts.TupleTypeNode; + [AST_NODE_TYPES.TSTemplateLiteralType]: ts.TemplateLiteralTypeNode; [AST_NODE_TYPES.TSTypeAliasDeclaration]: ts.TypeAliasDeclaration; [AST_NODE_TYPES.TSTypeAnnotation]: undefined; [AST_NODE_TYPES.TSTypeAssertion]: ts.TypeAssertion; @@ -144,6 +146,7 @@ export interface EstreeToTsNodeTypes { [AST_NODE_TYPES.TSAnyKeyword]: ts.KeywordTypeNode; [AST_NODE_TYPES.TSBigIntKeyword]: ts.KeywordTypeNode; [AST_NODE_TYPES.TSBooleanKeyword]: ts.KeywordTypeNode; + [AST_NODE_TYPES.TSIntrinsicKeyword]: ts.KeywordTypeNode; [AST_NODE_TYPES.TSNeverKeyword]: ts.KeywordTypeNode; [AST_NODE_TYPES.TSNumberKeyword]: ts.KeywordTypeNode; [AST_NODE_TYPES.TSObjectKeyword]: ts.KeywordTypeNode; diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map index 8704471bf4..aa8d79cc51 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/estree-to-ts-node-types.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"estree-to-ts-node-types.d.ts","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,WAAW,mBAAmB;IAClC,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC;IAC5D,CAAC,cAAc,CAAC,YAAY,CAAC,EACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,mBAAmB,CAAC;IAC3B,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC3D,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IAC3D,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAC9B,EAAE,CAAC,2BAA2B,GAC9B,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,oBAAoB,CAAC;IAC5B,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACvD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;IAC1C,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAC7C,CAAC,cAAc,CAAC,eAAe,CAAC,EAC5B,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,wBAAwB,GAC3B,EAAE,CAAC,uBAAuB,GAC1B,EAAE,CAAC,iBAAiB,CAAC;IACzB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe,CAAC;IACrE,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACvD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IACvD,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;IACjE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACzD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACzD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;IACzC,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAClD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAC5D,CAAC,cAAc,CAAC,wBAAwB,CAAC,EACrC,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,mBAAmB,GACtB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,iBAAiB,CAAC;IACzB,CAAC,cAAc,CAAC,sBAAsB,CAAC,EACnC,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,mBAAmB,GACtB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,iBAAiB,CAAC;IACzB,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC7D,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IAC/C,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC7D,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC/B,EAAE,CAAC,kBAAkB,GACrB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,iBAAiB,CAAC;IACzB,CAAC,cAAc,CAAC,UAAU,CAAC,EACvB,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAC7C,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACzD,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IACzD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACrD,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAC9D,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IAC/C,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACzD,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;IAC3D,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,CAAC;IACtE,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IACtD,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC1D,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAC7C,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC;IAClE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAC9B,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,qBAAqB,CAAC;IAC7B,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;IAC3D,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;IAC3D,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAClD,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC;IAClE,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IACrC,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACvD,CAAC,cAAc,CAAC,OAAO,CAAC,EACpB,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,wBAAwB,GAC3B,EAAE,CAAC,OAAO,GACV,EAAE,CAAC,WAAW,GACd,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,aAAa,CAAC;IACrB,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACxD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAC7B,EAAE,CAAC,wBAAwB,GAC3B,EAAE,CAAC,uBAAuB,CAAC;IAC/B,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IAC/C,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAC7B,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,sBAAsB,CAAC;IAC9B,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IACjD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC;IAC9D,CAAC,cAAc,CAAC,aAAa,CAAC,EAC1B,EAAE,CAAC,uBAAuB,GAC1B,EAAE,CAAC,oBAAoB,CAAC;IAC5B,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxC,CAAC,cAAc,CAAC,QAAQ,CAAC,EACrB,EAAE,CAAC,kBAAkB,GACrB,EAAE,CAAC,2BAA2B,GAC9B,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,cAAc,CAAC;IACtB,CAAC,cAAc,CAAC,WAAW,CAAC,EACxB,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,oBAAoB,CAAC;IAC5B,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACzD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,gBAAgB,CAAC;IACvE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAC3C,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC;IAC9D,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC;IACvE,CAAC,cAAc,CAAC,eAAe,CAAC,EAC5B,EAAE,CAAC,6BAA6B,GAChC,EAAE,CAAC,YAAY,GACf,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,YAAY,CAAC;IACpB,CAAC,cAAc,CAAC,eAAe,CAAC,EAC5B,EAAE,CAAC,6BAA6B,GAChC,EAAE,CAAC,kBAAkB,CAAC;IAC1B,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC;IACxE,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IAC/C,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IACjE,CAAC,cAAc,CAAC,0BAA0B,CAAC,EACvC,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,sBAAsB,CAAC;IAC9B,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC/C,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IACjD,CAAC,cAAc,CAAC,0BAA0B,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAClE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC;IACnE,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC3D,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC3D,CAAC,cAAc,CAAC,+BAA+B,CAAC,EAC5C,EAAE,CAAC,mBAAmB,GACtB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,6BAA6B,GAChC,EAAE,CAAC,wBAAwB,CAAC;IAChC,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC3D,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACvD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IAC7C,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACzD,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC;IACvE,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACrD,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC;IACvE,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACjD,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAC/D,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC;IAChE,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC/C,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC;IACjE,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC;IAC1D,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,2BAA2B,CAAC;IACrE,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC;IAC7D,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACnD,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACjD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACvD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;IAC/C,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAC3D,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACzD,CAAC,cAAc,CAAC,4BAA4B,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC;IAC7E,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAC3D,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACrD,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC;IAC9D,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAC/D,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAC3D,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IACnD,CAAC,cAAc,CAAC,UAAU,CAAC,EACvB,EAAE,CAAC,YAAY,GAEf,EAAE,CAAC,gBAAgB,CAAC;IACxB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;IAC7C,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC/C,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC;IACjE,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7C,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IACnD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACnD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC;IACrD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC;IAC9D,CAAC,cAAc,CAAC,0BAA0B,CAAC,EAAE,SAAS,CAAC;IACvD,CAAC,cAAc,CAAC,4BAA4B,CAAC,EACzC,EAAE,CAAC,wBAAwB,GAC3B,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,2BAA2B,GAC9B,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,qBAAqB,GACxB,EAAE,CAAC,aAAa,GAChB,EAAE,CAAC,cAAc,CAAC;IACtB,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACvD,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC/C,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;IACvD,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAC/C,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAC7B,EAAE,CAAC,qBAAqB,GACxB,EAAE,CAAC,sBAAsB,CAAC;IAC9B,CAAC,cAAc,CAAC,eAAe,CAAC,EAC5B,EAAE,CAAC,qBAAqB,GACxB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,gBAAgB,CAAC;IACxB,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAChC,EAAE,CAAC,uBAAuB,GAC1B,EAAE,CAAC,iBAAiB,CAAC;IACzB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;IAC5D,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC;IACnD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IACjD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAIrD,CAAC,cAAc,CAAC,6BAA6B,CAAC,EAC1C,EAAE,CAAC,kBAAkB,GACrB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,sBAAsB,GACzB,EAAE,CAAC,iBAAiB,CAAC;IAGzB,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5E,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,eAAe,CAAC;IAEpE,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAClD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACtD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACpD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACrD,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACtD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACnD,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAGxD,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxE,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;CAC7E;AAED;;;GAGG;AACH,oBAAY,gBAAgB,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,CAC7E,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAEzE,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAC/B,CAAC"} \ No newline at end of file +{"version":3,"file":"estree-to-ts-node-types.d.ts","sourceRoot":"","sources":["../../src/ts-estree/estree-to-ts-node-types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts index 8142fc45fd..cc622388ae 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts @@ -2,7 +2,9 @@ import * as ts from 'typescript'; declare module 'typescript' { interface NamedTupleMember extends ts.Node { } + interface TemplateLiteralTypeNode extends ts.Node { + } } export declare type TSToken = ts.Token; -export declare type TSNode = ts.Modifier | ts.Identifier | ts.QualifiedName | ts.ComputedPropertyName | ts.Decorator | ts.TypeParameterDeclaration | ts.CallSignatureDeclaration | ts.ConstructSignatureDeclaration | ts.VariableDeclaration | ts.VariableDeclarationList | ts.ParameterDeclaration | ts.BindingElement | ts.PropertySignature | ts.PropertyDeclaration | ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.SpreadAssignment | ts.ObjectBindingPattern | ts.ArrayBindingPattern | ts.FunctionDeclaration | ts.MethodSignature | ts.MethodDeclaration | ts.ConstructorDeclaration | ts.SemicolonClassElement | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.IndexSignatureDeclaration | ts.KeywordTypeNode | ts.ImportTypeNode | ts.ThisTypeNode | ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.TypeReferenceNode | ts.TypePredicateNode | ts.TypeQueryNode | ts.TypeLiteralNode | ts.ArrayTypeNode | ts.NamedTupleMember | ts.TupleTypeNode | ts.OptionalTypeNode | ts.RestTypeNode | ts.UnionTypeNode | ts.IntersectionTypeNode | ts.ConditionalTypeNode | ts.InferTypeNode | ts.ParenthesizedTypeNode | ts.TypeOperatorNode | ts.IndexedAccessTypeNode | ts.MappedTypeNode | ts.LiteralTypeNode | ts.StringLiteral | ts.OmittedExpression | ts.PartiallyEmittedExpression | ts.PrefixUnaryExpression | ts.PostfixUnaryExpression | ts.NullLiteral | ts.BooleanLiteral | ts.ThisExpression | ts.SuperExpression | ts.ImportExpression | ts.DeleteExpression | ts.TypeOfExpression | ts.VoidExpression | ts.AwaitExpression | ts.YieldExpression | ts.SyntheticExpression | ts.BinaryExpression | ts.ConditionalExpression | ts.FunctionExpression | ts.ArrowFunction | ts.RegularExpressionLiteral | ts.NoSubstitutionTemplateLiteral | ts.NumericLiteral | ts.BigIntLiteral | ts.TemplateHead | ts.TemplateMiddle | ts.TemplateTail | ts.TemplateExpression | ts.TemplateSpan | ts.ParenthesizedExpression | ts.ArrayLiteralExpression | ts.SpreadElement | ts.ObjectLiteralExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.ExpressionWithTypeArguments | ts.NewExpression | ts.TaggedTemplateExpression | ts.AsExpression | ts.TypeAssertion | ts.NonNullExpression | ts.MetaProperty | ts.JsxElement | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.JsxFragment | ts.JsxOpeningFragment | ts.JsxClosingFragment | ts.JsxAttribute | ts.JsxSpreadAttribute | ts.JsxClosingElement | ts.JsxExpression | ts.JsxText | ts.NotEmittedStatement | ts.CommaListExpression | ts.EmptyStatement | ts.DebuggerStatement | ts.MissingDeclaration | ts.Block | ts.VariableStatement | ts.ExpressionStatement | ts.IfStatement | ts.DoStatement | ts.WhileStatement | ts.ForStatement | ts.ForInStatement | ts.ForOfStatement | ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.WithStatement | ts.SwitchStatement | ts.CaseBlock | ts.CaseClause | ts.DefaultClause | ts.LabeledStatement | ts.ThrowStatement | ts.TryStatement | ts.CatchClause | ts.ClassDeclaration | ts.ClassExpression | ts.InterfaceDeclaration | ts.HeritageClause | ts.TypeAliasDeclaration | ts.EnumMember | ts.EnumDeclaration | ts.ModuleDeclaration | ts.ModuleBlock | ts.ImportEqualsDeclaration | ts.ExternalModuleReference | ts.ImportDeclaration | ts.ImportClause | ts.NamespaceImport | ts.NamespaceExportDeclaration | ts.ExportDeclaration | ts.NamedImports | ts.NamedExports | ts.ImportSpecifier | ts.ExportSpecifier | ts.ExportAssignment | ts.SourceFile | ts.Bundle | ts.InputFiles | ts.UnparsedSource | ts.JsonMinusNumericLiteral | ts.JSDoc | ts.JSDocTypeExpression | ts.JSDocUnknownTag | ts.JSDocAugmentsTag | ts.JSDocClassTag | ts.JSDocEnumTag | ts.JSDocThisTag | ts.JSDocTemplateTag | ts.JSDocReturnTag | ts.JSDocTypeTag | ts.JSDocTypedefTag | ts.JSDocCallbackTag | ts.JSDocSignature | ts.JSDocPropertyTag | ts.JSDocParameterTag | ts.JSDocTypeLiteral | ts.JSDocFunctionType | ts.JSDocAllType | ts.JSDocUnknownType | ts.JSDocNullableType | ts.JSDocNonNullableType | ts.JSDocOptionalType | ts.JSDocVariadicType | ts.JSDocAuthorTag; +export declare type TSNode = ts.Modifier | ts.Identifier | ts.QualifiedName | ts.ComputedPropertyName | ts.Decorator | ts.TypeParameterDeclaration | ts.CallSignatureDeclaration | ts.ConstructSignatureDeclaration | ts.VariableDeclaration | ts.VariableDeclarationList | ts.ParameterDeclaration | ts.BindingElement | ts.PropertySignature | ts.PropertyDeclaration | ts.PropertyAssignment | ts.ShorthandPropertyAssignment | ts.SpreadAssignment | ts.ObjectBindingPattern | ts.ArrayBindingPattern | ts.FunctionDeclaration | ts.MethodSignature | ts.MethodDeclaration | ts.ConstructorDeclaration | ts.SemicolonClassElement | ts.GetAccessorDeclaration | ts.SetAccessorDeclaration | ts.IndexSignatureDeclaration | ts.KeywordTypeNode | ts.ImportTypeNode | ts.ThisTypeNode | ts.ConstructorTypeNode | ts.FunctionTypeNode | ts.TypeReferenceNode | ts.TypePredicateNode | ts.TypeQueryNode | ts.TypeLiteralNode | ts.ArrayTypeNode | ts.NamedTupleMember | ts.TupleTypeNode | ts.OptionalTypeNode | ts.RestTypeNode | ts.UnionTypeNode | ts.IntersectionTypeNode | ts.ConditionalTypeNode | ts.InferTypeNode | ts.ParenthesizedTypeNode | ts.TypeOperatorNode | ts.IndexedAccessTypeNode | ts.MappedTypeNode | ts.LiteralTypeNode | ts.StringLiteral | ts.OmittedExpression | ts.PartiallyEmittedExpression | ts.PrefixUnaryExpression | ts.PostfixUnaryExpression | ts.NullLiteral | ts.BooleanLiteral | ts.ThisExpression | ts.SuperExpression | ts.ImportExpression | ts.DeleteExpression | ts.TypeOfExpression | ts.VoidExpression | ts.AwaitExpression | ts.YieldExpression | ts.SyntheticExpression | ts.BinaryExpression | ts.ConditionalExpression | ts.FunctionExpression | ts.ArrowFunction | ts.RegularExpressionLiteral | ts.NoSubstitutionTemplateLiteral | ts.NumericLiteral | ts.BigIntLiteral | ts.TemplateHead | ts.TemplateMiddle | ts.TemplateTail | ts.TemplateExpression | ts.TemplateSpan | ts.ParenthesizedExpression | ts.ArrayLiteralExpression | ts.SpreadElement | ts.ObjectLiteralExpression | ts.PropertyAccessExpression | ts.ElementAccessExpression | ts.CallExpression | ts.ExpressionWithTypeArguments | ts.NewExpression | ts.TaggedTemplateExpression | ts.AsExpression | ts.TypeAssertion | ts.NonNullExpression | ts.MetaProperty | ts.JsxElement | ts.JsxOpeningElement | ts.JsxSelfClosingElement | ts.JsxFragment | ts.JsxOpeningFragment | ts.JsxClosingFragment | ts.JsxAttribute | ts.JsxSpreadAttribute | ts.JsxClosingElement | ts.JsxExpression | ts.JsxText | ts.NotEmittedStatement | ts.CommaListExpression | ts.EmptyStatement | ts.DebuggerStatement | ts.MissingDeclaration | ts.Block | ts.VariableStatement | ts.ExpressionStatement | ts.IfStatement | ts.DoStatement | ts.WhileStatement | ts.ForStatement | ts.ForInStatement | ts.ForOfStatement | ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.WithStatement | ts.SwitchStatement | ts.CaseBlock | ts.CaseClause | ts.DefaultClause | ts.LabeledStatement | ts.ThrowStatement | ts.TryStatement | ts.CatchClause | ts.ClassDeclaration | ts.ClassExpression | ts.InterfaceDeclaration | ts.HeritageClause | ts.TypeAliasDeclaration | ts.EnumMember | ts.EnumDeclaration | ts.ModuleDeclaration | ts.ModuleBlock | ts.ImportEqualsDeclaration | ts.ExternalModuleReference | ts.ImportDeclaration | ts.ImportClause | ts.NamespaceImport | ts.NamespaceExportDeclaration | ts.ExportDeclaration | ts.NamedImports | ts.NamedExports | ts.ImportSpecifier | ts.ExportSpecifier | ts.ExportAssignment | ts.SourceFile | ts.Bundle | ts.InputFiles | ts.UnparsedSource | ts.JsonMinusNumericLiteral | ts.TemplateLiteralTypeNode | ts.JSDoc | ts.JSDocTypeExpression | ts.JSDocUnknownTag | ts.JSDocAugmentsTag | ts.JSDocClassTag | ts.JSDocEnumTag | ts.JSDocThisTag | ts.JSDocTemplateTag | ts.JSDocReturnTag | ts.JSDocTypeTag | ts.JSDocTypedefTag | ts.JSDocCallbackTag | ts.JSDocSignature | ts.JSDocPropertyTag | ts.JSDocParameterTag | ts.JSDocTypeLiteral | ts.JSDocFunctionType | ts.JSDocAllType | ts.JSDocUnknownType | ts.JSDocNullableType | ts.JSDocNonNullableType | ts.JSDocOptionalType | ts.JSDocVariadicType | ts.JSDocAuthorTag; //# sourceMappingURL=ts-nodes.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map index aacaf8190a..3ef52afe13 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map +++ b/node_modules/@typescript-eslint/typescript-estree/dist/ts-estree/ts-nodes.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"ts-nodes.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ts-nodes.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ts-nodes.d.ts","sourceRoot":"","sources":["../../src/ts-estree/ts-nodes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts b/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts index e5aa34ee7b..1fd68a7aa0 100644 --- a/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts +++ b/node_modules/@typescript-eslint/typescript-estree/dist/version-check.d.ts @@ -1,3 +1,3 @@ -declare const typescriptVersionIsAtLeast: Record<"4.0" | "3.7" | "3.8" | "3.9", boolean>; +declare const typescriptVersionIsAtLeast: Record<"3.7" | "3.8" | "3.9" | "4.0", boolean>; export { typescriptVersionIsAtLeast }; //# sourceMappingURL=version-check.d.ts.map \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/gitignore.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/gitignore.js deleted file mode 100644 index 6a1a57afd4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/gitignore.js +++ /dev/null @@ -1,118 +0,0 @@ -'use strict'; -const {promisify} = require('util'); -const fs = require('fs'); -const path = require('path'); -const fastGlob = require('fast-glob'); -const gitIgnore = require('ignore'); -const slash = require('slash'); - -const DEFAULT_IGNORE = [ - '**/node_modules/**', - '**/flow-typed/**', - '**/coverage/**', - '**/.git' -]; - -const readFileP = promisify(fs.readFile); - -const mapGitIgnorePatternTo = base => ignore => { - if (ignore.startsWith('!')) { - return '!' + path.posix.join(base, ignore.slice(1)); - } - - return path.posix.join(base, ignore); -}; - -const parseGitIgnore = (content, options) => { - const base = slash(path.relative(options.cwd, path.dirname(options.fileName))); - - return content - .split(/\r?\n/) - .filter(Boolean) - .filter(line => !line.startsWith('#')) - .map(mapGitIgnorePatternTo(base)); -}; - -const reduceIgnore = files => { - return files.reduce((ignores, file) => { - ignores.add(parseGitIgnore(file.content, { - cwd: file.cwd, - fileName: file.filePath - })); - return ignores; - }, gitIgnore()); -}; - -const ensureAbsolutePathForCwd = (cwd, p) => { - cwd = slash(cwd); - if (path.isAbsolute(p)) { - if (p.startsWith(cwd)) { - return p; - } - - throw new Error(`Path ${p} is not in cwd ${cwd}`); - } - - return path.join(cwd, p); -}; - -const getIsIgnoredPredecate = (ignores, cwd) => { - return p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p)))); -}; - -const getFile = async (file, cwd) => { - const filePath = path.join(cwd, file); - const content = await readFileP(filePath, 'utf8'); - - return { - cwd, - filePath, - content - }; -}; - -const getFileSync = (file, cwd) => { - const filePath = path.join(cwd, file); - const content = fs.readFileSync(filePath, 'utf8'); - - return { - cwd, - filePath, - content - }; -}; - -const normalizeOptions = ({ - ignore = [], - cwd = slash(process.cwd()) -} = {}) => { - return {ignore, cwd}; -}; - -module.exports = async options => { - options = normalizeOptions(options); - - const paths = await fastGlob('**/.gitignore', { - ignore: DEFAULT_IGNORE.concat(options.ignore), - cwd: options.cwd - }); - - const files = await Promise.all(paths.map(file => getFile(file, options.cwd))); - const ignores = reduceIgnore(files); - - return getIsIgnoredPredecate(ignores, options.cwd); -}; - -module.exports.sync = options => { - options = normalizeOptions(options); - - const paths = fastGlob.sync('**/.gitignore', { - ignore: DEFAULT_IGNORE.concat(options.ignore), - cwd: options.cwd - }); - - const files = paths.map(file => getFileSync(file, options.cwd)); - const ignores = reduceIgnore(files); - - return getIsIgnoredPredecate(ignores, options.cwd); -}; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.d.ts deleted file mode 100644 index c40e4fec48..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.d.ts +++ /dev/null @@ -1,176 +0,0 @@ -import {Options as FastGlobOptions} from 'fast-glob'; - -declare namespace globby { - type ExpandDirectoriesOption = - | boolean - | readonly string[] - | {files?: readonly string[]; extensions?: readonly string[]}; - - interface GlobbyOptions extends FastGlobOptions { - /** - If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. - - Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. - - @default true - - @example - ``` - import globby = require('globby'); - - (async () => { - const paths = await globby('images', { - expandDirectories: { - files: ['cat', 'unicorn', '*.jpg'], - extensions: ['png'] - } - }); - - console.log(paths); - //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] - })(); - ``` - */ - readonly expandDirectories?: ExpandDirectoriesOption; - - /** - Respect ignore patterns in `.gitignore` files that apply to the globbed files. - - @default false - */ - readonly gitignore?: boolean; - } - - interface GlobTask { - readonly pattern: string; - readonly options: globby.GlobbyOptions; - } - - interface GitignoreOptions { - readonly cwd?: string; - readonly ignore?: readonly string[]; - } - - type FilterFunction = (path: string) => boolean; -} - -interface Gitignore { - /** - `.gitignore` files matched by the ignore config are not used for the resulting filter function. - - @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. - - @example - ``` - import {gitignore} from 'globby'; - - (async () => { - const isIgnored = await gitignore(); - console.log(isIgnored('some/file')); - })(); - ``` - */ - (options?: globby.GitignoreOptions): Promise; - - /** - @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. - */ - sync(options?: globby.GitignoreOptions): globby.FilterFunction; -} - -declare const globby: { - /** - Find files and directories using glob patterns. - - Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. - - @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. - @returns The matching paths. - - @example - ``` - import globby = require('globby'); - - (async () => { - const paths = await globby(['*', '!cake']); - - console.log(paths); - //=> ['unicorn', 'rainbow'] - })(); - ``` - */ - ( - patterns: string | readonly string[], - options?: globby.GlobbyOptions - ): Promise; - - /** - Find files and directories using glob patterns. - - Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. - - @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. - @returns The matching paths. - */ - sync( - patterns: string | readonly string[], - options?: globby.GlobbyOptions - ): string[]; - - /** - Find files and directories using glob patterns. - - Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. - - @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. - @returns The stream of matching paths. - - @example - ``` - import globby = require('globby'); - - (async () => { - for await (const path of globby.stream('*.tmp')) { - console.log(path); - } - })(); - ``` - */ - stream( - patterns: string | readonly string[], - options?: globby.GlobbyOptions - ): NodeJS.ReadableStream; - - /** - Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. - - @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. - @returns An object in the format `{pattern: string, options: object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. - */ - generateGlobTasks( - patterns: string | readonly string[], - options?: globby.GlobbyOptions - ): globby.GlobTask[]; - - /** - Note that the options affect the results. - - This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). - - @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3). - @returns Whether there are any special glob characters in the `patterns`. - */ - hasMagic( - patterns: string | readonly string[], - options?: FastGlobOptions - ): boolean; - - readonly gitignore: Gitignore; -}; - -export = globby; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.js deleted file mode 100644 index 3504057118..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/index.js +++ /dev/null @@ -1,177 +0,0 @@ -'use strict'; -const fs = require('fs'); -const arrayUnion = require('array-union'); -const merge2 = require('merge2'); -const fastGlob = require('fast-glob'); -const dirGlob = require('dir-glob'); -const gitignore = require('./gitignore'); -const {FilterStream, UniqueStream} = require('./stream-utils'); - -const DEFAULT_FILTER = () => false; - -const isNegative = pattern => pattern[0] === '!'; - -const assertPatternsInput = patterns => { - if (!patterns.every(pattern => typeof pattern === 'string')) { - throw new TypeError('Patterns must be a string or an array of strings'); - } -}; - -const checkCwdOption = (options = {}) => { - if (!options.cwd) { - return; - } - - let stat; - try { - stat = fs.statSync(options.cwd); - } catch (_) { - return; - } - - if (!stat.isDirectory()) { - throw new Error('The `cwd` option must be a path to a directory'); - } -}; - -const getPathString = p => p.stats instanceof fs.Stats ? p.path : p; - -const generateGlobTasks = (patterns, taskOptions) => { - patterns = arrayUnion([].concat(patterns)); - assertPatternsInput(patterns); - checkCwdOption(taskOptions); - - const globTasks = []; - - taskOptions = { - ignore: [], - expandDirectories: true, - ...taskOptions - }; - - for (const [index, pattern] of patterns.entries()) { - if (isNegative(pattern)) { - continue; - } - - const ignore = patterns - .slice(index) - .filter(isNegative) - .map(pattern => pattern.slice(1)); - - const options = { - ...taskOptions, - ignore: taskOptions.ignore.concat(ignore) - }; - - globTasks.push({pattern, options}); - } - - return globTasks; -}; - -const globDirs = (task, fn) => { - let options = {}; - if (task.options.cwd) { - options.cwd = task.options.cwd; - } - - if (Array.isArray(task.options.expandDirectories)) { - options = { - ...options, - files: task.options.expandDirectories - }; - } else if (typeof task.options.expandDirectories === 'object') { - options = { - ...options, - ...task.options.expandDirectories - }; - } - - return fn(task.pattern, options); -}; - -const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern]; - -const getFilterSync = options => { - return options && options.gitignore ? - gitignore.sync({cwd: options.cwd, ignore: options.ignore}) : - DEFAULT_FILTER; -}; - -const globToTask = task => glob => { - const {options} = task; - if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { - options.ignore = dirGlob.sync(options.ignore); - } - - return { - pattern: glob, - options - }; -}; - -module.exports = async (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - - const getFilter = async () => { - return options && options.gitignore ? - gitignore({cwd: options.cwd, ignore: options.ignore}) : - DEFAULT_FILTER; - }; - - const getTasks = async () => { - const tasks = await Promise.all(globTasks.map(async task => { - const globs = await getPattern(task, dirGlob); - return Promise.all(globs.map(globToTask(task))); - })); - - return arrayUnion(...tasks); - }; - - const [filter, tasks] = await Promise.all([getFilter(), getTasks()]); - const paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options))); - - return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_))); -}; - -module.exports.sync = (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - - const tasks = globTasks.reduce((tasks, task) => { - const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); - - const filter = getFilterSync(options); - - return tasks.reduce( - (matches, task) => arrayUnion(matches, fastGlob.sync(task.pattern, task.options)), - [] - ).filter(path_ => !filter(path_)); -}; - -module.exports.stream = (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - - const tasks = globTasks.reduce((tasks, task) => { - const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); - - const filter = getFilterSync(options); - const filterStream = new FilterStream(p => !filter(p)); - const uniqueStream = new UniqueStream(); - - return merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options))) - .pipe(filterStream) - .pipe(uniqueStream); -}; - -module.exports.generateGlobTasks = generateGlobTasks; - -module.exports.hasMagic = (patterns, options) => [] - .concat(patterns) - .some(pattern => fastGlob.isDynamicPattern(pattern, options)); - -module.exports.gitignore = gitignore; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/package.json b/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/package.json deleted file mode 100644 index bf95095ee5..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "globby", - "version": "11.0.1", - "description": "User-friendly glob matching", - "license": "MIT", - "repository": "sindresorhus/globby", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "bench": "npm update glob-stream fast-glob && matcha bench.js", - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts", - "gitignore.js", - "stream-utils.js" - ], - "keywords": [ - "all", - "array", - "directories", - "expand", - "files", - "filesystem", - "filter", - "find", - "fnmatch", - "folders", - "fs", - "glob", - "globbing", - "globs", - "gulpfriendly", - "match", - "matcher", - "minimatch", - "multi", - "multiple", - "paths", - "pattern", - "patterns", - "traverse", - "util", - "utility", - "wildcard", - "wildcards", - "promise", - "gitignore", - "git" - ], - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "devDependencies": { - "ava": "^2.1.0", - "get-stream": "^5.1.0", - "glob-stream": "^6.1.0", - "globby": "sindresorhus/globby#master", - "matcha": "^0.7.0", - "rimraf": "^3.0.0", - "tsd": "^0.11.0", - "xo": "^0.25.3" - }, - "xo": { - "ignores": [ - "fixtures" - ] - } -} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/readme.md b/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/readme.md deleted file mode 100644 index 709e5aa8c8..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/readme.md +++ /dev/null @@ -1,170 +0,0 @@ -# globby [![Build Status](https://travis-ci.org/sindresorhus/globby.svg?branch=master)](https://travis-ci.org/sindresorhus/globby) - -> User-friendly glob matching - -Based on [`fast-glob`](https://github.com/mrmlnc/fast-glob) but adds a bunch of useful features. - -## Features - -- Promise API -- Multiple patterns -- Negated patterns: `['foo*', '!foobar']` -- Expands directories: `foo` → `foo/**/*` -- Supports `.gitignore` - -## Install - -``` -$ npm install globby -``` - -## Usage - -``` -├── unicorn -├── cake -└── rainbow -``` - -```js -const globby = require('globby'); - -(async () => { - const paths = await globby(['*', '!cake']); - - console.log(paths); - //=> ['unicorn', 'rainbow'] -})(); -``` - -## API - -Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. - -### globby(patterns, options?) - -Returns a `Promise` of matching paths. - -#### patterns - -Type: `string | string[]` - -See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). - -#### options - -Type: `object` - -See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones below. - -##### expandDirectories - -Type: `boolean | string[] | object`\ -Default: `true` - -If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `object` with `files` and `extensions` like below: - -```js -const globby = require('globby'); - -(async () => { - const paths = await globby('images', { - expandDirectories: { - files: ['cat', 'unicorn', '*.jpg'], - extensions: ['png'] - } - }); - - console.log(paths); - //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] -})(); -``` - -Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. - -##### gitignore - -Type: `boolean`\ -Default: `false` - -Respect ignore patterns in `.gitignore` files that apply to the globbed files. - -### globby.sync(patterns, options?) - -Returns `string[]` of matching paths. - -### globby.stream(patterns, options?) - -Returns a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_readable_streams) of matching paths. - -Since Node.js 10, [readable streams are iterable](https://nodejs.org/api/stream.html#stream_readable_symbol_asynciterator), so you can loop over glob matches in a [`for await...of` loop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) like this: - -```js -const globby = require('globby'); - -(async () => { - for await (const path of globby.stream('*.tmp')) { - console.log(path); - } -})(); -``` - -### globby.generateGlobTasks(patterns, options?) - -Returns an `object[]` in the format `{pattern: string, options: Object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. - -Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. - -### globby.hasMagic(patterns, options?) - -Returns a `boolean` of whether there are any special glob characters in the `patterns`. - -Note that the options affect the results. - -This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). - -### globby.gitignore(options?) - -Returns a `Promise<(path: string) => boolean>` indicating whether a given path is ignored via a `.gitignore` file. - -Takes `cwd?: string` and `ignore?: string[]` as options. `.gitignore` files matched by the ignore config are not used for the resulting filter function. - -```js -const {gitignore} = require('globby'); - -(async () => { - const isIgnored = await gitignore(); - console.log(isIgnored('some/file')); -})(); -``` - -### globby.gitignore.sync(options?) - -Returns a `(path: string) => boolean` indicating whether a given path is ignored via a `.gitignore` file. - -Takes the same options as `globby.gitignore`. - -## Globbing patterns - -Just a quick overview. - -- `*` matches any number of characters, but not `/` -- `?` matches a single character, but not `/` -- `**` matches any number of characters, including `/`, as long as it's the only thing in a path part -- `{}` allows for a comma-separated list of "or" expressions -- `!` at the beginning of a pattern will negate the match - -[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) - -## globby for enterprise - -Available as part of the Tidelift Subscription. - -The maintainers of globby and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-globby?utm_source=npm-globby&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - -## Related - -- [multimatch](https://github.com/sindresorhus/multimatch) - Match against a list instead of the filesystem -- [matcher](https://github.com/sindresorhus/matcher) - Simple wildcard matching -- [del](https://github.com/sindresorhus/del) - Delete files and directories -- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/stream-utils.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/stream-utils.js deleted file mode 100644 index 98aedc896f..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/stream-utils.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; -const {Transform} = require('stream'); - -class ObjectTransform extends Transform { - constructor() { - super({ - objectMode: true - }); - } -} - -class FilterStream extends ObjectTransform { - constructor(filter) { - super(); - this._filter = filter; - } - - _transform(data, encoding, callback) { - if (this._filter(data)) { - this.push(data); - } - - callback(); - } -} - -class UniqueStream extends ObjectTransform { - constructor() { - super(); - this._pushed = new Set(); - } - - _transform(data, encoding, callback) { - if (!this._pushed.has(data)) { - this.push(data); - this._pushed.add(data); - } - - callback(); - } -} - -module.exports = { - FilterStream, - UniqueStream -}; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.editorconfig b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.editorconfig deleted file mode 100644 index 4818afd6b7..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -end_of_line = lf -insert_final_newline = true -charset = utf-8 -indent_size = 4 -indent_style = space -trim_trailing_whitespace = true - -[*.{json,yml,md}] -indent_size = 2 diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.fimbullinter.yaml b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.fimbullinter.yaml deleted file mode 100644 index 74e903e76c..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.fimbullinter.yaml +++ /dev/null @@ -1,2 +0,0 @@ -exclude: - - test/rules/** diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.wotanrc.yaml b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.wotanrc.yaml deleted file mode 100644 index 46153ecb73..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/.wotanrc.yaml +++ /dev/null @@ -1,5 +0,0 @@ -extends: wotan:recommended -rules: - # TODO enable once https://github.com/Microsoft/TypeScript/issues/24706 is resolved - no-useless-assertion: off - no-useless-predicate: off diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/CHANGELOG.md b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/CHANGELOG.md deleted file mode 100644 index 0d01e793b1..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/CHANGELOG.md +++ /dev/null @@ -1,741 +0,0 @@ -# 3.17.1 - -**Bugfixes:** - -* `isValidJsxIdentifier`, `isValidPropertyAccess`, `isValidPropertyName`: fix unicode character width handling - -# 3.17.0 - -**Features:** - -* `isValidJsxIdentifier` added an optional parameter to specify the target ECMAScript version - -**Bugfixes:** - -* `isValidJsxIdentifier` now handles astral plane characters - -# 3.16.0 - -**Features:** - -* added `getIteratorYieldResultFromIteratorResult` to extract the `yield`ed type from `IteratorResult` - -# 3.15.0 - -**Features:** - -* `isValidIdentifier`, `isValidPropertyName`, `isValidPropertyAccess`, `isValidNumericLiteral` added an optional parameter to specify the target ECMAScript version - -**Bugfixes:** - -* `isValidPropertyName`, `isValidPropertyAccess` now handle astral plane characters - -# 3.14.1 - -**Bugfixes:** - -* `findImports`: fixed crash on nested namespaces - -# 3.14.0 - -**Features:** - -* added `getInstanceTypeOfClassLikeDeclaration` and `getConstructorTypeOfClassLikeDeclaration` -* added `AccessKind.Delete` to `getAccessKind`: `getAccessKind(node) & AccessKind.Modification` can now be used to restore the old behavior of `isReassignmentTarget(node)` - -# 3.13.0 - -**Features:** - -* `getAccessKind` determines whether an expression is read from, written to or both -* optimized `getPropertyOfType` for unambiguous property names to partially work around https://github.com/microsoft/TypeScript/issues/31565 - -**Bugfixes:** - -* `isReassignmentTarget` no longer returns `true` for `DeleteExpression` as it doesn't **assign** a value to the operand - -# 3.12.0 - -**Features:** - -* `getLateBoundPropertyNamesOfPropertyName` returns all statically analyzable names of a property, method, ... -* `getSingleLateBoundPropertyNameOfPropertyName` returns the literal name of a property, method, ... if statically analyzable - -**Bugfixes:** - -* fixed circular import - -# 3.11.0 - -**Features:** - -* typeguards: `isNumericOrStringLikeLiteral`, `isTupleTypeReference` -* `intersectionTypeParts` as counterpart to `unionTypeParts` -* `someTypePart` to execute a callback for each union or intersection constituent until the callback returns true -* `getPropertyOfType` looks up a property by its escaped name -* `isPropertyReadonlyInType` determines whether a property in a given type cannot be written to -* `symbolHasReadonlyDeclaration` determines if a Symbol has any readonly or constant declaration -* `isNumericPropertyName` determines whether a property name would match an index signature -* `isBindableObjectDefinePropertyCall` returns true for statically analyzable forms of `Object.defineProperty(o, 'p', {value, writable})` -* `isReadonlyAssignmentDeclaration` determines whether an `Object.defineProperty` call is known to result in a readonly property -* `getLateBoundPropertyNames` returns all known property names of an expression -* `getPropertyNameFromType` extracts the property name of literal types -* `isWellKnownSymbolLiterally` to recognize expressions in the form of `Symbol.` -* `getPropertyNameOfWellKnownSymbol` returns the escaped name for a well known symbol literal -* `unwrapParentheses` returns the first child expression that is not a `ParenthesizedExpression` - -# 3.10.0 - -**Features:** - -* `isCompilerOptionEnabled`: `incremental` is implicitly enabled by `composite` - -**Bugfixes:** - -* `collectVariableUsage`/`getUsageDomain`: no longer treat `as const` as type usage - -# 3.9.1 - -**Bugfixes:** - -* reverted invalid deprecation of `canHaveJsdoc` -* fixed condition in `parseJsdocOfNode` - -# 3.9.0 - -**Features:** - -* added typeguards: `isNullLiteral` and `isBooleanLiteral` - -# 3.8.0 - -**Features:** - -* exposes typeguards for typescript@3.2 by default -* added utilities: `isConstAssertion` and `isInConstContext` - -# 3.7.0 - -**Features:** - -* added `isBlockScopedDeclarationStatement` -* added `isInSingleStatementContext` - -# 3.6.0 - -**Features:** - -* added `getCheckJsDirective` utility to parse `// @ts-check` and `// @ts-nocheck` pragmas - -# 3.5.2 - -**Bugfixes:** - -* Published declaration files no longer contain `const enum`. They are now declared as regular enums instead. - -# 3.5.1 - -**Bugfixes:** - -* `isThenableType` allows `Node` instead of `Expression` as parameter -* `isBlockScopeBoundary` and `isScopeBoundary` consider `WithStatement` as scope boundary - -# 3.5.0 - -**Features:** - -* correctly handle BigInt literals - * added typeguard `isBigIntLiteral` - * `isLiteralType` recognises BigInt - * `getPropertyName` adds special handling for BigInt - -# 3.4.0 - -**Features:** - -* added utility `commentText` to get the actual text content of a comment excluding the characters needed to start and end the comment - -# 3.3.1 - -**Bugfixes:** - -* `findImports`: fixed handling of ImportEqualsDeclaration - -# 3.3.0 - -**Features:** - -* `isCompilerOptionEnabled`: recognizes `strictBindCallApply` -* `getTokenAtPosition`: optionally includes JSDoc during lookup - -**Bugfixes:** - -* `isCompilerOptionEnabled`: correctly implements logic for `allowSyntheticDefaultImports` -* `findImportLikeNodes`: correctly finds imports in namespaces -* `findImportLikeNodes` / `findImports`: finds import types in JSDoc of JS files - -# 3.2.0 - -**Features:** - -* added utility `findImportLikeNodes` that works similar to `findImports` but returns the import statement or expression instead of the module specifier and doesn't filter non-string module specifiers - -# 3.1.0 - -**Features:** - -* added utilities: `isKeywordKind` and `isValidJsxIdentifier` -* exposes typeguards for typescript@3.0 by default - -# 3.0.0 - -:warning: **Breaking Changes:** - -* Dropped support for `typescript@<2.8.0` -* Dropped support for Node.js 4 -* Removed deprecated APIs: - * `getIdentifierText`, `isJsxFramgment`, `ImportOptions` - * deprected overloads of `isModifierFlagSet`, `findImports` and `getControlFlowEnd` -* control flow related symbols can no longer be imported from `'tsutils/util/util'`, import directly from `'tsutils/util/control-flow'` or `'tsutils/util'` -* `isFunctionScopeBoundary` and `isBlockScopeBoundary` now return a enum member of `ScopeBoundary` instead of a boolean -* `isFunctionScopeBoundary` no longer returns a truthy value for `InterfaceDeclaration`, `TypeAliasDeclaration` - -**Features:** - -* added utility `isTypeScopeBoundary` returning `ScopeBoundary.Type` or `ScopeBoundary.ConditionalType` -* added enum `ScopeBoundarySelector` whose members can be used to determine if a declaration belongs to a given `ScopeBoundary` by using bitwise AND - -**Bugfixes:** - -* `collectVariableUsage` now correctly handles `infer T` nested inside function signatures or mapped types -* `isCompilerOptionEnabled` correctly handles `skipDefaultLibCHeck` and `suppressImplicitAnyIndexErrors` - -# 2.29.0 - -**Features:** - -* added utility `isCompilerOptionEnabled` - -# 2.28.0 - -Typeguards are now split into multiple submodules for each version of TypeScript (starting with 2.8.0). -That means you can now import directly from `"tsutils/typeguard/2.8"` to get compatible declaraton files for TypeScript@2.8. -For more information please read the relevant section in [README.md](README.md). - -**Features:** - -* added typeguards: `isTupleType`, `isOptionalTypeNode`, `isRestTypeNode`, `isSyntheticExpression` (currently available from `"tsutils/typeguard/3.0"`) -* added utility `isStrictCompilerOptionEnabled` - -# 2.27.2 - -Avoid crash caused by removed function in `typescript@3.0.0`. - -# 2.27.1 - -Added support for TypeScript@3.0.0 nightly builds. - -# 2.27.0 - -**Features:** - -* added `getIIFE` utility - -# 2.26.2 - -**Bugfixes:** - -* `forEachComment` and `forEachTokenWithTrivia` no longer duplicate comments around missing nodes - -# 2.26.1 - -**Bugfixes:** - -* fixed crash in `hasSideEffects` with tagged template literal without substitution: ``tag`template` `` - -# 2.26.0 - -**Features:** - -* added typeguard `isLiteralTypeNode` -* added support for type imports (`type T = import('foo')`) to `findImports` via `ImportKind.ImportType` - -# 2.25.1 - -**Bugfixes:** - -* `collectVariableUsage`: fixed name lookup in function signatures to match runtime behavior. Note that this is not completely fixed in TypeScript, yet. See: [Microsoft/TypeScript#22825](https://github.com/Microsoft/TypeScript/issues/22825) and [Microsoft/TypeScript#22769](https://github.com/Microsoft/TypeScript/issues/22769) - -# 2.25.0 - -**Features:** - -* added utilities: `isStatementInAmbientContext` and `isAmbientModuleBlock` - -# 2.24.0 - -**Features:** - -* added typeguards for typescript@2.8: `isConditionalTypeNode`, `isInferTypeNode`, `isConditionalType`, `isInstantiableType`, `isSubstitutionType` - -# 2.23.0 - -**Features:** - -* added typeguard `isForInOrOfStatement` - -**Bugfixes:** - -* correctly handle comments in generic JSX elements: `/*comment*/>` -* fixed a bug with false positive trailing comments at the end of JSX self closing element: `

/*no comment*/
` - -# 2.22.2 - -**Bugfixes:** - -* `collectVariableUsage`: handle ConditionalTypes and `infer T`, which will be introduced in TypeScript@2.8.0 and are already available in nightly builds -* `isLiteralType` no longer returns true for `ts.TypeFlags.BooleanLiteral` as this is not a `ts.LiteralType` - -# 2.22.1 - -**Bugfixes:** - -* `endsControlFlow`: - * handle loops that might not even run a single iteration - * handle constant boolean conditions in loops and if - -# 2.22.0 - -**Features:** - -* added `isFalsyType` utility - -# 2.21.2 - -**Bugfixes:** - -* fixed compile error with `typescript@2.8.0-dev` - -# 2.21.1 - -**Bugfixes:** - -* `isReassignmentTarget`: handle type assertions and non-null assertion - -# 2.21.0 - -**Bugfixes:** - -* `forEachDeclaredVariable` uses a more precise type for the callback parameter to make it useable again with typescript@2.7.1 - -**Features:** - -* added `isUniqueESSymbolType` typeguard - -# 2.20.0 - -**Features:** - -* added `isThenableType` utility -* added `unionTypeParts` utility - -# 2.19.1 - -**Bugfixes:** - -* `forEachComment`, `getCommentAtPosition` and `isPositionInComment`: skip shebang (`#! something`) to not miss following comments at the start of the file - -# 2.19.0 - -**Features:** - -* added `WrappedAst` interface that models the type of a wrapped SourceFile more accurate -* added `getWrappedNodeAtPosition` utiltiy that takes a `NodeWrap` and returns the most deeply nested NodeWrap that contains the given position - -# 2.18.0 - -**Features:** - -* `getControlFlowEnd` accepts BlockLike as argument - -**Bugfixes:** - -* `getControlFlowEnd` and `endsControlFlow`: correctly handle nested LabeledStatements -* `endsControlFlow` removed erroneous special case when an IterationStatement is passed as argument whose parent is a LabeledStatement. - * if you want labels of an IterationStatement (or SwitchStatement) to be handled, you need to pass the LabeledStatement as argument. - * :warning: this fix may change the returned value if you relied on the buggy behavior - -**Deprecations:** - -* deprecated overload of `getControlFlowEnd` that contains the `label` parameter. This parameter is no longer used and should no longer be passed to the function. - -# 2.17.1 - -**Bugfixes:** - -* `getControlFlowEnd` and `endsControlFlow` (#22) - * ThrowStatements inside `try` are filtered out if there is a `catch` clause - * TryStatements with `catch` only end control flow if `try` AND `catch` definitely end control flow - -# 2.17.0 - -**Features:** - -* added `kind` property to `NodeWrap` -* added `getControlFlowEnd` to public API - -# 2.16.0 - -**Features:** - -* added `isDecorator` and `isCallLikeExpression` typeguards - -# 2.15.0 - -**Features:** - -* added `convertAst` utility to produce a flattened and wrapped version of the AST - -# 2.14.0 - -**Features:** - -* added `isDeleteExpression` -* added `getLineBreakStyle` - -# 2.13.1 - -**Bugfixes:** - -* fixed name of `isJsxFragment` - -# 2.13.0 - -**Features:** - -* added support for `JsxFragment` introduced in typescript@2.6.2 -* added corresponding typeguard functions - -# 2.12.2 - -**Bugfixes:** - -* `endsControlFlow` - * added missing logic for labeled statement, iteration statements and try-catch - * added missing logic for `break` and `continue` with labels - * take all jump statements into account, not only the last statement -* `isValidIdentifier` and `isValidNumericLiteral` handle irregular whitespace -* `findImports` searches in ambient modules inside regular `.ts` files (not only `.d.ts`) -* `canHaveJsDoc` is now a typeguard - -# 2.12.1 - -**Bugfixes:** - -* `forEachTokenWithTrivia` - * handles irregular whitespace and no longer visits some tokens twice - * correctly calculates the range of JsxText - -# 2.12.0 - -**API-Changes:** - -* deprecated `ImportOptions` if favor of the new `ImportKind` enum - -# 2.11.2 - -**Bugfixes:** - -* `parseJsDocOfNode`: set correct `pos`, `end` and `parent` properties. Also affects `getJsDoc` of `EndOfFileToken` - -# 2.11.1 - -**Bugfixes:** - -* `collectVariableUsage`: correctly consider catch binding as block scoped declaration inside catch block - -# 2.11.0 - -**Bugfixes:** - -* `getJsDoc` now correctly returns JsDoc for `EndOfFileToken` - -**Features:** - -* added utility `parseJsDocOfNode` - -# 2.10.0 - -**Features:** - -* added utility `findImports` to find all kinds of imports in a source file - -# 2.9.0 - -**Features:** - -* added typeguard `isMappedTypeNode` -* added utilities `canHaveJsDoc` and `getJsDoc` - -# 2.8.2 - -**Bugfixes:** - -* `collectVariableUsage`: handle global augmentation like other module augmentations - -# 2.8.1 - -**Bugfixes:** - -* Support `typescript@2.5.1` with optional catch binding -* `collectVariableUsage` fixed a bug where method decorator had method's parameters in scope - -# 2.8.0 - -* Compatibility with the latest typescript nightly -* Added `getIdentifierText` to unescape identifiers across typescript versions - -# 2.7.1 - -**Bugfixes:** - -* `isReassignmentTarget` don't return `true` for right side of assignment - -# 2.7.0 - -**Features:** - -* Added `isReassignmentTarget` utility - -# 2.6.1 - -**Bugfixes:** - -* `getDeclarationDomain` now returns `undefined` for Parameter in IndexSignature -* `collectVariableUsage` ignores Parameter in IndexSignature - -# 2.6.0 - -**Bugfixes:** - -* `collectVariableUsage`: - * don't merge imports with global declarations - * treat everything in a declaration file as exported if there is no explicit `export {};` -* `isExpressionValueUsed`: handle destructuring in `for...of` - -**Features:** - -* Added `getModifier` utility -* Added `DeclarationDomain.Import` to distinguish imports from other declarations - -# 2.5.1 - -**Bugfixes:** - -* `collectVariableUsage` ignore jump labels as in `break label;` - -# 2.5.0 - -**Bugfixes:** - -* `isFunctionWithBody` handles constructor overload correctly. - -**Features:** - -* Implemented `isExpressionValueUsed` to check whether the result of an expression is actually used. -* Implemented `getDeclarationDomain` to determine if a given declaration introduces a new symbol in the value or type domain. - -**`collectVariableUses` is now usable** - -* no longer ignores signatures and its parameters -* don't merge declarations and uses across domains -* no longer marks exceptions in catch clause or parameter properties as exported -* fixed exports of namespaces -* fixed scoping of ClassExpression name -* correcly handle ambient namespaces and module augmentations -* fixed how `: typeof foo` is handled for parameters and function return type -* **still WIP**: `export {Foo as Bar}` inside ambient namespaces and modules - -# 2.4.0 - -**Bugfixes:** - -* `getLineRanges`: `contentLength` now contains the correct line length when there are multiple consecutive line break characters -* `getTokenAtPosition`: don't match tokens that end at the specified position (because that's already outside of their range) -* deprecated the misnamed `isModfierFlagSet`, use the new `isModifierFlagSet` instead - -**Features:** - -* Added typeguard: `isJsDoc` -* Added experimental scope and usage analysis (`getUsageDomain` and `collectVariableUsage`) - -# 2.3.0 - -**Bugfixes:** - -* `forEachComment` no longer omits some comments when callback returns a truthy value -* `isPositionInComment` fixed false positive inside JSXText - -**Features:** - -* Added utility: `getCommentAtPosition` - -# 2.2.0 - -**Bugfixes:** - -* Fixed bit value of `SideEffectOptions.JsxElement` to be a power of 2 - -**Features:** - -* Added utilities: `getTokenAtPosition` and `isPositionInComment` - -# 2.1.0 - -**Features:** - -* Added typeguard `isExpression` -* Added utilities: `hasSideEffects`, `getDeclarationOfBindingElement` - -# 2.0.0 - -**Breaking Changes:** - -* Dropped compatibility with `typescript@<2.1.0` -* Removed misnamed `isNumericliteral`, use `isNumericLiteral` instead (notice the uppercase L) -* Removed `isEnumLiteralType` which will cause compile errors with typescript@2.4.0 -* Refactored directory structure: all imports that referenced subdirectories (e.g. `require('tsutils/src/typeguard')` will be broken - -**Features:** - -* New directory structure allows imports of typeguards or utils independently, e.g. (`require('tsutils/typeguard')`) - -# 1.9.1 - -**Bugfixes:** - -* `isObjectFlagSet` now uses the correct `objectFlags` property - -# 1.9.0 - -**Bugfixes:** - -* `getNextToken` no longer omits `EndOfFileToken` when there is no trivia before EOF. That means the only inputs where `getNextToken` returns `undefined` are `SourceFile` and `EndOfFileToken` - -**Features**: - -* Added typeguards for types -* Added utilities for flag checking: `isNodeFlagSet`, `isTypeFlagSet`, `isSymbolFlagSet`,`isObjectFlagSet`, `isModifierFlagSet` - -# 1.8.0 - -**Features:** - -* Support peer dependency of typescript nightlies of 2.4.0 -* Added typeguards: `isJsxAttributes`, `isIntersectionTypeNode`, `isTypeOperatorNode`, `isTypePredicateNode`, `isTypeQueryNode`, `isUnionTypeNode` - -# 1.7.0 - -**Bugfixes:** - -* `isFunctionScopeBoundary` now handles Interfaces, TypeAliases, FunctionSignatures, etc - -**Features:** - -* Added utilities: `isThisParameter`, `isSameLine` and `isFunctionWithBody` - -# 1.6.0 - -**Features:** - -* Add `isValidPropertyAccess`, `isValidNumericLiteral` and `isValidPropertyName` - -# 1.5.0 - -**Features:** - -* Add `isValidIdentifier` - -# 1.4.0 - -**Features:** - -* Add `contentLength` property to the result of `getLineRanges` - -# 1.3.0 - -**Bugfixes:** - -* `canHaveLeadingTrivia`: - * Fix property access on undefined parent reference - * Fixes: [palantir/tslint#2330](https://github.com/palantir/tslint/issues/2330) -* `hasOwnThisReference`: now includes accessors on object literals - -**Features:** - -* Typeguards: - * isTypeParameterDeclaration - * isEnitityName - -# 1.2.2 - -**Bugfixes:** - -* `hasOwnThisReference`: - * exclude overload signatures of function declarations - * add method declarations on object literals - -# 1.2.1 - -**Bugfixes:** - -* Fix name of `isNumericLiteral` - -# 1.2.0 - -**Features:** - -* Typeguards: - * isEnumMember - * isExpressionWithTypeArguments - * isImportSpecifier -* Utilities: - * isJsDocKind, isTypeNodeKind -* Allow typescript@next in peerDependencies - -# 1.1.0 - -**Bugfixes:** - -* Fix isBlockScopeBoundary: Remove WithStatement, IfStatment, DoStatement and WhileStatement because they are no scope boundary whitout a block. - -**Features:** - -* Added more typeguards: - * isAssertionExpression - * isEmptyStatement - * isJsxAttributeLike - * isJsxOpeningLikeElement - * isNonNullExpression - * isSyntaxList -* Utilities: - * getNextToken, getPreviousToken - * hasOwnThisReference - * getLineRanges - -# 1.0.0 - -**Features:** - -* Initial implementation of typeguards -* Utilities: - * getChildOfKind - * isNodeKind, isAssignmentKind - * hasModifier, isParameterProperty, hasAccessModifier - * getPreviousStatement, getNextStatement - * getPropertyName - * forEachDestructuringIdentifier, forEachDeclaredVariable - * getVariableDeclarationKind, isBlockScopedVariableDeclarationList, isBlockScopedVariableDeclaration - * isScopeBoundary, isFunctionScopeBoundary, isBlockScopeBoundary - * forEachToken, forEachTokenWithTrivia, forEachComment - * endsControlFlow diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/LICENSE b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/LICENSE deleted file mode 100644 index 3a990ff405..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2017 Klaus Meinhardt - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/README.md b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/README.md deleted file mode 100644 index a2363e6aca..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Utility functions for working with typescript's AST - -[![Greenkeeper badge](https://badges.greenkeeper.io/ajafff/tsutils.svg)](https://greenkeeper.io/) - -## Usage - -This package consists of two major parts: utilities and typeguard functions. -By importing the project you will get both of them. -```js -import * as utils from "tsutils"; -utils.isIdentifier(node); // typeguard -utils.getLineRanges(sourceFile); // utilities -``` - -If you don't need everything offered by this package, you can select what should be imported. The parts that are not imported are never read from disk and may save some startup time and reduce memory consumtion. - -If you only need typeguards you can explicitly import them: -```js -import { isIdentifier } from "tsutils/typeguard"; -// You can even distiguish between typeguards for nodes and types -import { isUnionTypeNode } from "tsutils/typeguard/node"; -import { isUnionType } from "tsutils/typeguard/type"; -``` - -If you only need the utilities you can also explicitly import them: -```js -import { forEachComment, forEachToken } from "tsutils/util"; -``` - -### Typescript version dependency - -This package is backwards compatible with typescript 2.8.0 at runtime although compiling might need a newer version of typescript installed. - -Using `typescript@next` might work, but it's not officially supported. If you encounter any bugs, please open an issue. - -For compatibility with older versions of TypeScript typeguard functions are separated by TypeScript version. If you are stuck on `typescript@2.8`, you should import directly from the submodule for that version: - -```js -// all typeguards compatible with typescript@2.8 -import { isIdentifier } from "tsutils/typeguard/2.8"; -// you can even use nested submodules -import { isIdentifier } from "tsutils/typeguard/2.8/node"; - -// all typeguards compatible with typescript@2.9 (includes those of 2.8) -import { isIdentifier } from "tsutils/typeguard/2.9"; - -// always points to the latest stable version (2.9 as of writing this) -import { isIdentifier } from "tsutils/typeguard"; -import { isIdentifier } from "tsutils"; - -// always points to the typeguards for the next TypeScript version (3.0 as of writing this) -import { isIdentifier } from "tsutils/typeguard/next"; -``` - -Note that if you are also using utility functions, you should prefer the relevant submodule: - -```js -// importing directly from 'tsutils' would pull in the latest typeguards -import { forEachToken } from 'tsutils/util'; -import { isIdentifier } from 'tsutils/typeguard/2.8'; -``` diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/index.d.ts deleted file mode 100644 index 26b9ee17cf..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './typeguard'; -export * from './util'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/index.js deleted file mode 100644 index 4ee8dc264b..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./typeguard"), exports); -tslib_1.__exportStar(require("./util"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/package.json b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/package.json deleted file mode 100644 index dbe0a20986..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "tsutils", - "version": "3.17.1", - "description": "utilities for working with typescript's AST", - "scripts": { - "compile": "rm -rf {,util,typeguard,test/**}/*.js; ttsc -p .", - "lint:tslint": "wotan -m @fimbul/valtyr", - "lint:wotan": "wotan", - "lint": "run-p lint:*", - "test": "mocha test/*Tests.js && tslint --test 'test/rules/**/tslint.json'", - "verify": "run-s compile lint coverage", - "prepublishOnly": "run-s verify", - "coverage": "nyc run-s test", - "report-coverage": "cat ./coverage/lcov.info | coveralls", - "github-release": "GITHUB_TOKEN=$(cat ~/github_token.txt) github-release-from-changelog", - "postpublish": "git push origin master --tags; run-s github-release" - }, - "repository": { - "type": "git", - "url": "https://github.com/ajafff/tsutils" - }, - "keywords": [ - "typescript", - "ts", - "ast", - "typeguard", - "utils", - "helper", - "node" - ], - "author": "Klaus Meinhardt", - "license": "MIT", - "devDependencies": { - "@fimbul/mithotyn": "^0.17.0", - "@fimbul/valtyr": "^0.20.0", - "@fimbul/wotan": "^0.20.0", - "@types/chai": "^4.0.10", - "@types/mocha": "^5.0.0", - "@types/node": "^11.13.0", - "chai": "^4.1.2", - "coveralls": "^3.0.0", - "github-release-from-changelog": "^1.3.0", - "mocha": "^6.0.2", - "npm-run-all": "^4.1.2", - "nyc": "^13.3.0", - "ts-transform-const-enum": "^0.0.1", - "tslint": "^5.8.0", - "tslint-consistent-codestyle": "^1.11.0", - "ttypescript": "^1.5.5", - "typescript": "^3.6.0-dev.20190804" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - }, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - } -} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/node.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/node.d.ts deleted file mode 100644 index c5aa5a9d10..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/node.d.ts +++ /dev/null @@ -1,155 +0,0 @@ -import * as ts from 'typescript'; -export declare function isAccessorDeclaration(node: ts.Node): node is ts.AccessorDeclaration; -export declare function isArrayBindingPattern(node: ts.Node): node is ts.ArrayBindingPattern; -export declare function isArrayLiteralExpression(node: ts.Node): node is ts.ArrayLiteralExpression; -export declare function isArrayTypeNode(node: ts.Node): node is ts.ArrayTypeNode; -export declare function isArrowFunction(node: ts.Node): node is ts.ArrowFunction; -export declare function isAsExpression(node: ts.Node): node is ts.AsExpression; -export declare function isAssertionExpression(node: ts.Node): node is ts.AssertionExpression; -export declare function isAwaitExpression(node: ts.Node): node is ts.AwaitExpression; -export declare function isBinaryExpression(node: ts.Node): node is ts.BinaryExpression; -export declare function isBindingElement(node: ts.Node): node is ts.BindingElement; -export declare function isBindingPattern(node: ts.Node): node is ts.BindingPattern; -export declare function isBlock(node: ts.Node): node is ts.Block; -export declare function isBlockLike(node: ts.Node): node is ts.BlockLike; -export declare function isBooleanLiteral(node: ts.Node): node is ts.BooleanLiteral; -export declare function isBreakOrContinueStatement(node: ts.Node): node is ts.BreakOrContinueStatement; -export declare function isBreakStatement(node: ts.Node): node is ts.BreakStatement; -export declare function isCallExpression(node: ts.Node): node is ts.CallExpression; -export declare function isCallLikeExpression(node: ts.Node): node is ts.CallLikeExpression; -export declare function isCallSignatureDeclaration(node: ts.Node): node is ts.CallSignatureDeclaration; -export declare function isCaseBlock(node: ts.Node): node is ts.CaseBlock; -export declare function isCaseClause(node: ts.Node): node is ts.CaseClause; -export declare function isCaseOrDefaultClause(node: ts.Node): node is ts.CaseOrDefaultClause; -export declare function isCatchClause(node: ts.Node): node is ts.CatchClause; -export declare function isClassDeclaration(node: ts.Node): node is ts.ClassDeclaration; -export declare function isClassExpression(node: ts.Node): node is ts.ClassExpression; -export declare function isClassLikeDeclaration(node: ts.Node): node is ts.ClassLikeDeclaration; -export declare function isCommaListExpression(node: ts.Node): node is ts.CommaListExpression; -export declare function isConditionalExpression(node: ts.Node): node is ts.ConditionalExpression; -export declare function isConditionalTypeNode(node: ts.Node): node is ts.ConditionalTypeNode; -export declare function isConstructorDeclaration(node: ts.Node): node is ts.ConstructorDeclaration; -export declare function isConstructorTypeNode(node: ts.Node): node is ts.ConstructorTypeNode; -export declare function isConstructSignatureDeclaration(node: ts.Node): node is ts.ConstructSignatureDeclaration; -export declare function isContinueStatement(node: ts.Node): node is ts.ContinueStatement; -export declare function isComputedPropertyName(node: ts.Node): node is ts.ComputedPropertyName; -export declare function isDebuggerStatement(node: ts.Node): node is ts.DebuggerStatement; -export declare function isDecorator(node: ts.Node): node is ts.Decorator; -export declare function isDefaultClause(node: ts.Node): node is ts.DefaultClause; -export declare function isDeleteExpression(node: ts.Node): node is ts.DeleteExpression; -export declare function isDoStatement(node: ts.Node): node is ts.DoStatement; -export declare function isElementAccessExpression(node: ts.Node): node is ts.ElementAccessExpression; -export declare function isEmptyStatement(node: ts.Node): node is ts.EmptyStatement; -export declare function isEntityName(node: ts.Node): node is ts.EntityName; -export declare function isEntityNameExpression(node: ts.Node): node is ts.EntityNameExpression; -export declare function isEnumDeclaration(node: ts.Node): node is ts.EnumDeclaration; -export declare function isEnumMember(node: ts.Node): node is ts.EnumMember; -export declare function isExportAssignment(node: ts.Node): node is ts.ExportAssignment; -export declare function isExportDeclaration(node: ts.Node): node is ts.ExportDeclaration; -export declare function isExportSpecifier(node: ts.Node): node is ts.ExportSpecifier; -export declare function isExpression(node: ts.Node): node is ts.Expression; -export declare function isExpressionStatement(node: ts.Node): node is ts.ExpressionStatement; -export declare function isExpressionWithTypeArguments(node: ts.Node): node is ts.ExpressionWithTypeArguments; -export declare function isExternalModuleReference(node: ts.Node): node is ts.ExternalModuleReference; -export declare function isForInStatement(node: ts.Node): node is ts.ForInStatement; -export declare function isForInOrOfStatement(node: ts.Node): node is ts.ForInOrOfStatement; -export declare function isForOfStatement(node: ts.Node): node is ts.ForOfStatement; -export declare function isForStatement(node: ts.Node): node is ts.ForStatement; -export declare function isFunctionDeclaration(node: ts.Node): node is ts.FunctionDeclaration; -export declare function isFunctionExpression(node: ts.Node): node is ts.FunctionExpression; -export declare function isFunctionTypeNode(node: ts.Node): node is ts.FunctionTypeNode; -export declare function isGetAccessorDeclaration(node: ts.Node): node is ts.GetAccessorDeclaration; -export declare function isIdentifier(node: ts.Node): node is ts.Identifier; -export declare function isIfStatement(node: ts.Node): node is ts.IfStatement; -export declare function isImportClause(node: ts.Node): node is ts.ImportClause; -export declare function isImportDeclaration(node: ts.Node): node is ts.ImportDeclaration; -export declare function isImportEqualsDeclaration(node: ts.Node): node is ts.ImportEqualsDeclaration; -export declare function isImportSpecifier(node: ts.Node): node is ts.ImportSpecifier; -export declare function isIndexedAccessTypeNode(node: ts.Node): node is ts.IndexedAccessTypeNode; -export declare function isIndexSignatureDeclaration(node: ts.Node): node is ts.IndexSignatureDeclaration; -export declare function isInferTypeNode(node: ts.Node): node is ts.InferTypeNode; -export declare function isInterfaceDeclaration(node: ts.Node): node is ts.InterfaceDeclaration; -export declare function isIntersectionTypeNode(node: ts.Node): node is ts.IntersectionTypeNode; -export declare function isIterationStatement(node: ts.Node): node is ts.IterationStatement; -export declare function isJsDoc(node: ts.Node): node is ts.JSDoc; -export declare function isJsxAttribute(node: ts.Node): node is ts.JsxAttribute; -export declare function isJsxAttributeLike(node: ts.Node): node is ts.JsxAttributeLike; -export declare function isJsxAttributes(node: ts.Node): node is ts.JsxAttributes; -export declare function isJsxClosingElement(node: ts.Node): node is ts.JsxClosingElement; -export declare function isJsxClosingFragment(node: ts.Node): node is ts.JsxClosingFragment; -export declare function isJsxElement(node: ts.Node): node is ts.JsxElement; -export declare function isJsxExpression(node: ts.Node): node is ts.JsxExpression; -export declare function isJsxFragment(node: ts.Node): node is ts.JsxFragment; -export declare function isJsxOpeningElement(node: ts.Node): node is ts.JsxOpeningElement; -export declare function isJsxOpeningFragment(node: ts.Node): node is ts.JsxOpeningFragment; -export declare function isJsxOpeningLikeElement(node: ts.Node): node is ts.JsxOpeningLikeElement; -export declare function isJsxSelfClosingElement(node: ts.Node): node is ts.JsxSelfClosingElement; -export declare function isJsxSpreadAttribute(node: ts.Node): node is ts.JsxSpreadAttribute; -export declare function isJsxText(node: ts.Node): node is ts.JsxText; -export declare function isLabeledStatement(node: ts.Node): node is ts.LabeledStatement; -export declare function isLiteralExpression(node: ts.Node): node is ts.LiteralExpression; -export declare function isLiteralTypeNode(node: ts.Node): node is ts.LiteralTypeNode; -export declare function isMappedTypeNode(node: ts.Node): node is ts.MappedTypeNode; -export declare function isMetaProperty(node: ts.Node): node is ts.MetaProperty; -export declare function isMethodDeclaration(node: ts.Node): node is ts.MethodDeclaration; -export declare function isMethodSignature(node: ts.Node): node is ts.MethodSignature; -export declare function isModuleBlock(node: ts.Node): node is ts.ModuleBlock; -export declare function isModuleDeclaration(node: ts.Node): node is ts.ModuleDeclaration; -export declare function isNamedExports(node: ts.Node): node is ts.NamedExports; -export declare function isNamedImports(node: ts.Node): node is ts.NamedImports; -export declare function isNamespaceDeclaration(node: ts.Node): node is ts.NamespaceDeclaration; -export declare function isNamespaceImport(node: ts.Node): node is ts.NamespaceImport; -export declare function isNamespaceExportDeclaration(node: ts.Node): node is ts.NamespaceExportDeclaration; -export declare function isNewExpression(node: ts.Node): node is ts.NewExpression; -export declare function isNonNullExpression(node: ts.Node): node is ts.NonNullExpression; -export declare function isNoSubstitutionTemplateLiteral(node: ts.Node): node is ts.NoSubstitutionTemplateLiteral; -export declare function isNullLiteral(node: ts.Node): node is ts.NullLiteral; -export declare function isNumericLiteral(node: ts.Node): node is ts.NumericLiteral; -export declare function isNumericOrStringLikeLiteral(node: ts.Node): node is ts.NumericLiteral | ts.StringLiteral | ts.NoSubstitutionTemplateLiteral; -export declare function isObjectBindingPattern(node: ts.Node): node is ts.ObjectBindingPattern; -export declare function isObjectLiteralExpression(node: ts.Node): node is ts.ObjectLiteralExpression; -export declare function isOmittedExpression(node: ts.Node): node is ts.OmittedExpression; -export declare function isParameterDeclaration(node: ts.Node): node is ts.ParameterDeclaration; -export declare function isParenthesizedExpression(node: ts.Node): node is ts.ParenthesizedExpression; -export declare function isParenthesizedTypeNode(node: ts.Node): node is ts.ParenthesizedTypeNode; -export declare function isPostfixUnaryExpression(node: ts.Node): node is ts.PostfixUnaryExpression; -export declare function isPrefixUnaryExpression(node: ts.Node): node is ts.PrefixUnaryExpression; -export declare function isPropertyAccessExpression(node: ts.Node): node is ts.PropertyAccessExpression; -export declare function isPropertyAssignment(node: ts.Node): node is ts.PropertyAssignment; -export declare function isPropertyDeclaration(node: ts.Node): node is ts.PropertyDeclaration; -export declare function isPropertySignature(node: ts.Node): node is ts.PropertySignature; -export declare function isQualifiedName(node: ts.Node): node is ts.QualifiedName; -export declare function isRegularExpressionLiteral(node: ts.Node): node is ts.RegularExpressionLiteral; -export declare function isReturnStatement(node: ts.Node): node is ts.ReturnStatement; -export declare function isSetAccessorDeclaration(node: ts.Node): node is ts.SetAccessorDeclaration; -export declare function isShorthandPropertyAssignment(node: ts.Node): node is ts.ShorthandPropertyAssignment; -export declare function isSignatureDeclaration(node: ts.Node): node is ts.SignatureDeclaration; -export declare function isSourceFile(node: ts.Node): node is ts.SourceFile; -export declare function isSpreadAssignment(node: ts.Node): node is ts.SpreadAssignment; -export declare function isSpreadElement(node: ts.Node): node is ts.SpreadElement; -export declare function isStringLiteral(node: ts.Node): node is ts.StringLiteral; -export declare function isSwitchStatement(node: ts.Node): node is ts.SwitchStatement; -export declare function isSyntaxList(node: ts.Node): node is ts.SyntaxList; -export declare function isTaggedTemplateExpression(node: ts.Node): node is ts.TaggedTemplateExpression; -export declare function isTemplateExpression(node: ts.Node): node is ts.TemplateExpression; -export declare function isTemplateLiteral(node: ts.Node): node is ts.TemplateLiteral; -export declare function isTextualLiteral(node: ts.Node): node is ts.StringLiteral | ts.NoSubstitutionTemplateLiteral; -export declare function isThrowStatement(node: ts.Node): node is ts.ThrowStatement; -export declare function isTryStatement(node: ts.Node): node is ts.TryStatement; -export declare function isTupleTypeNode(node: ts.Node): node is ts.TupleTypeNode; -export declare function isTypeAliasDeclaration(node: ts.Node): node is ts.TypeAliasDeclaration; -export declare function isTypeAssertion(node: ts.Node): node is ts.TypeAssertion; -export declare function isTypeLiteralNode(node: ts.Node): node is ts.TypeLiteralNode; -export declare function isTypeOfExpression(node: ts.Node): node is ts.TypeOfExpression; -export declare function isTypeOperatorNode(node: ts.Node): node is ts.TypeOperatorNode; -export declare function isTypeParameterDeclaration(node: ts.Node): node is ts.TypeParameterDeclaration; -export declare function isTypePredicateNode(node: ts.Node): node is ts.TypePredicateNode; -export declare function isTypeReferenceNode(node: ts.Node): node is ts.TypeReferenceNode; -export declare function isTypeQueryNode(node: ts.Node): node is ts.TypeQueryNode; -export declare function isUnionTypeNode(node: ts.Node): node is ts.UnionTypeNode; -export declare function isVariableDeclaration(node: ts.Node): node is ts.VariableDeclaration; -export declare function isVariableStatement(node: ts.Node): node is ts.VariableStatement; -export declare function isVariableDeclarationList(node: ts.Node): node is ts.VariableDeclarationList; -export declare function isVoidExpression(node: ts.Node): node is ts.VoidExpression; -export declare function isWhileStatement(node: ts.Node): node is ts.WhileStatement; -export declare function isWithStatement(node: ts.Node): node is ts.WithStatement; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/node.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/node.js deleted file mode 100644 index b63a09be91..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/node.js +++ /dev/null @@ -1,709 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -function isAccessorDeclaration(node) { - return node.kind === ts.SyntaxKind.GetAccessor || - node.kind === ts.SyntaxKind.SetAccessor; -} -exports.isAccessorDeclaration = isAccessorDeclaration; -function isArrayBindingPattern(node) { - return node.kind === ts.SyntaxKind.ArrayBindingPattern; -} -exports.isArrayBindingPattern = isArrayBindingPattern; -function isArrayLiteralExpression(node) { - return node.kind === ts.SyntaxKind.ArrayLiteralExpression; -} -exports.isArrayLiteralExpression = isArrayLiteralExpression; -function isArrayTypeNode(node) { - return node.kind === ts.SyntaxKind.ArrayType; -} -exports.isArrayTypeNode = isArrayTypeNode; -function isArrowFunction(node) { - return node.kind === ts.SyntaxKind.ArrowFunction; -} -exports.isArrowFunction = isArrowFunction; -function isAsExpression(node) { - return node.kind === ts.SyntaxKind.AsExpression; -} -exports.isAsExpression = isAsExpression; -function isAssertionExpression(node) { - return node.kind === ts.SyntaxKind.AsExpression || - node.kind === ts.SyntaxKind.TypeAssertionExpression; -} -exports.isAssertionExpression = isAssertionExpression; -function isAwaitExpression(node) { - return node.kind === ts.SyntaxKind.AwaitExpression; -} -exports.isAwaitExpression = isAwaitExpression; -function isBinaryExpression(node) { - return node.kind === ts.SyntaxKind.BinaryExpression; -} -exports.isBinaryExpression = isBinaryExpression; -function isBindingElement(node) { - return node.kind === ts.SyntaxKind.BindingElement; -} -exports.isBindingElement = isBindingElement; -function isBindingPattern(node) { - return node.kind === ts.SyntaxKind.ArrayBindingPattern || - node.kind === ts.SyntaxKind.ObjectBindingPattern; -} -exports.isBindingPattern = isBindingPattern; -function isBlock(node) { - return node.kind === ts.SyntaxKind.Block; -} -exports.isBlock = isBlock; -function isBlockLike(node) { - return node.statements !== undefined; -} -exports.isBlockLike = isBlockLike; -function isBooleanLiteral(node) { - return node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword; -} -exports.isBooleanLiteral = isBooleanLiteral; -function isBreakOrContinueStatement(node) { - return node.kind === ts.SyntaxKind.BreakStatement || - node.kind === ts.SyntaxKind.ContinueStatement; -} -exports.isBreakOrContinueStatement = isBreakOrContinueStatement; -function isBreakStatement(node) { - return node.kind === ts.SyntaxKind.BreakStatement; -} -exports.isBreakStatement = isBreakStatement; -function isCallExpression(node) { - return node.kind === ts.SyntaxKind.CallExpression; -} -exports.isCallExpression = isCallExpression; -function isCallLikeExpression(node) { - switch (node.kind) { - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.Decorator: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.TaggedTemplateExpression: - return true; - default: - return false; - } -} -exports.isCallLikeExpression = isCallLikeExpression; -function isCallSignatureDeclaration(node) { - return node.kind === ts.SyntaxKind.CallSignature; -} -exports.isCallSignatureDeclaration = isCallSignatureDeclaration; -function isCaseBlock(node) { - return node.kind === ts.SyntaxKind.CaseBlock; -} -exports.isCaseBlock = isCaseBlock; -function isCaseClause(node) { - return node.kind === ts.SyntaxKind.CaseClause; -} -exports.isCaseClause = isCaseClause; -function isCaseOrDefaultClause(node) { - return node.kind === ts.SyntaxKind.CaseClause || - node.kind === ts.SyntaxKind.DefaultClause; -} -exports.isCaseOrDefaultClause = isCaseOrDefaultClause; -function isCatchClause(node) { - return node.kind === ts.SyntaxKind.CatchClause; -} -exports.isCatchClause = isCatchClause; -function isClassDeclaration(node) { - return node.kind === ts.SyntaxKind.ClassDeclaration; -} -exports.isClassDeclaration = isClassDeclaration; -function isClassExpression(node) { - return node.kind === ts.SyntaxKind.ClassExpression; -} -exports.isClassExpression = isClassExpression; -function isClassLikeDeclaration(node) { - return node.kind === ts.SyntaxKind.ClassDeclaration || - node.kind === ts.SyntaxKind.ClassExpression; -} -exports.isClassLikeDeclaration = isClassLikeDeclaration; -function isCommaListExpression(node) { - return node.kind === ts.SyntaxKind.CommaListExpression; -} -exports.isCommaListExpression = isCommaListExpression; -function isConditionalExpression(node) { - return node.kind === ts.SyntaxKind.ConditionalExpression; -} -exports.isConditionalExpression = isConditionalExpression; -function isConditionalTypeNode(node) { - return node.kind === ts.SyntaxKind.ConditionalType; -} -exports.isConditionalTypeNode = isConditionalTypeNode; -function isConstructorDeclaration(node) { - return node.kind === ts.SyntaxKind.Constructor; -} -exports.isConstructorDeclaration = isConstructorDeclaration; -function isConstructorTypeNode(node) { - return node.kind === ts.SyntaxKind.ConstructorType; -} -exports.isConstructorTypeNode = isConstructorTypeNode; -function isConstructSignatureDeclaration(node) { - return node.kind === ts.SyntaxKind.ConstructSignature; -} -exports.isConstructSignatureDeclaration = isConstructSignatureDeclaration; -function isContinueStatement(node) { - return node.kind === ts.SyntaxKind.ContinueStatement; -} -exports.isContinueStatement = isContinueStatement; -function isComputedPropertyName(node) { - return node.kind === ts.SyntaxKind.ComputedPropertyName; -} -exports.isComputedPropertyName = isComputedPropertyName; -function isDebuggerStatement(node) { - return node.kind === ts.SyntaxKind.DebuggerStatement; -} -exports.isDebuggerStatement = isDebuggerStatement; -function isDecorator(node) { - return node.kind === ts.SyntaxKind.Decorator; -} -exports.isDecorator = isDecorator; -function isDefaultClause(node) { - return node.kind === ts.SyntaxKind.DefaultClause; -} -exports.isDefaultClause = isDefaultClause; -function isDeleteExpression(node) { - return node.kind === ts.SyntaxKind.DeleteExpression; -} -exports.isDeleteExpression = isDeleteExpression; -function isDoStatement(node) { - return node.kind === ts.SyntaxKind.DoStatement; -} -exports.isDoStatement = isDoStatement; -function isElementAccessExpression(node) { - return node.kind === ts.SyntaxKind.ElementAccessExpression; -} -exports.isElementAccessExpression = isElementAccessExpression; -function isEmptyStatement(node) { - return node.kind === ts.SyntaxKind.EmptyStatement; -} -exports.isEmptyStatement = isEmptyStatement; -function isEntityName(node) { - return node.kind === ts.SyntaxKind.Identifier || isQualifiedName(node); -} -exports.isEntityName = isEntityName; -function isEntityNameExpression(node) { - return node.kind === ts.SyntaxKind.Identifier || - isPropertyAccessExpression(node) && isEntityNameExpression(node.expression); -} -exports.isEntityNameExpression = isEntityNameExpression; -function isEnumDeclaration(node) { - return node.kind === ts.SyntaxKind.EnumDeclaration; -} -exports.isEnumDeclaration = isEnumDeclaration; -function isEnumMember(node) { - return node.kind === ts.SyntaxKind.EnumMember; -} -exports.isEnumMember = isEnumMember; -function isExportAssignment(node) { - return node.kind === ts.SyntaxKind.ExportAssignment; -} -exports.isExportAssignment = isExportAssignment; -function isExportDeclaration(node) { - return node.kind === ts.SyntaxKind.ExportDeclaration; -} -exports.isExportDeclaration = isExportDeclaration; -function isExportSpecifier(node) { - return node.kind === ts.SyntaxKind.ExportSpecifier; -} -exports.isExportSpecifier = isExportSpecifier; -function isExpression(node) { - switch (node.kind) { - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.AsExpression: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.BinaryExpression: - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.CommaListExpression: - case ts.SyntaxKind.ConditionalExpression: - case ts.SyntaxKind.DeleteExpression: - case ts.SyntaxKind.ElementAccessExpression: - case ts.SyntaxKind.FalseKeyword: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.Identifier: - case ts.SyntaxKind.JsxElement: - case ts.SyntaxKind.JsxFragment: - case ts.SyntaxKind.JsxExpression: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxOpeningFragment: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.MetaProperty: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.NonNullExpression: - case ts.SyntaxKind.NoSubstitutionTemplateLiteral: - case ts.SyntaxKind.NullKeyword: - case ts.SyntaxKind.NumericLiteral: - case ts.SyntaxKind.ObjectLiteralExpression: - case ts.SyntaxKind.OmittedExpression: - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.PostfixUnaryExpression: - case ts.SyntaxKind.PrefixUnaryExpression: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.RegularExpressionLiteral: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.StringLiteral: - case ts.SyntaxKind.SuperKeyword: - case ts.SyntaxKind.TaggedTemplateExpression: - case ts.SyntaxKind.TemplateExpression: - case ts.SyntaxKind.ThisKeyword: - case ts.SyntaxKind.TrueKeyword: - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.VoidExpression: - case ts.SyntaxKind.YieldExpression: - return true; - default: - return false; - } -} -exports.isExpression = isExpression; -function isExpressionStatement(node) { - return node.kind === ts.SyntaxKind.ExpressionStatement; -} -exports.isExpressionStatement = isExpressionStatement; -function isExpressionWithTypeArguments(node) { - return node.kind === ts.SyntaxKind.ExpressionWithTypeArguments; -} -exports.isExpressionWithTypeArguments = isExpressionWithTypeArguments; -function isExternalModuleReference(node) { - return node.kind === ts.SyntaxKind.ExternalModuleReference; -} -exports.isExternalModuleReference = isExternalModuleReference; -function isForInStatement(node) { - return node.kind === ts.SyntaxKind.ForInStatement; -} -exports.isForInStatement = isForInStatement; -function isForInOrOfStatement(node) { - return node.kind === ts.SyntaxKind.ForOfStatement || node.kind === ts.SyntaxKind.ForInStatement; -} -exports.isForInOrOfStatement = isForInOrOfStatement; -function isForOfStatement(node) { - return node.kind === ts.SyntaxKind.ForOfStatement; -} -exports.isForOfStatement = isForOfStatement; -function isForStatement(node) { - return node.kind === ts.SyntaxKind.ForStatement; -} -exports.isForStatement = isForStatement; -function isFunctionDeclaration(node) { - return node.kind === ts.SyntaxKind.FunctionDeclaration; -} -exports.isFunctionDeclaration = isFunctionDeclaration; -function isFunctionExpression(node) { - return node.kind === ts.SyntaxKind.FunctionExpression; -} -exports.isFunctionExpression = isFunctionExpression; -function isFunctionTypeNode(node) { - return node.kind === ts.SyntaxKind.FunctionType; -} -exports.isFunctionTypeNode = isFunctionTypeNode; -function isGetAccessorDeclaration(node) { - return node.kind === ts.SyntaxKind.GetAccessor; -} -exports.isGetAccessorDeclaration = isGetAccessorDeclaration; -function isIdentifier(node) { - return node.kind === ts.SyntaxKind.Identifier; -} -exports.isIdentifier = isIdentifier; -function isIfStatement(node) { - return node.kind === ts.SyntaxKind.IfStatement; -} -exports.isIfStatement = isIfStatement; -function isImportClause(node) { - return node.kind === ts.SyntaxKind.ImportClause; -} -exports.isImportClause = isImportClause; -function isImportDeclaration(node) { - return node.kind === ts.SyntaxKind.ImportDeclaration; -} -exports.isImportDeclaration = isImportDeclaration; -function isImportEqualsDeclaration(node) { - return node.kind === ts.SyntaxKind.ImportEqualsDeclaration; -} -exports.isImportEqualsDeclaration = isImportEqualsDeclaration; -function isImportSpecifier(node) { - return node.kind === ts.SyntaxKind.ImportSpecifier; -} -exports.isImportSpecifier = isImportSpecifier; -function isIndexedAccessTypeNode(node) { - return node.kind === ts.SyntaxKind.IndexedAccessType; -} -exports.isIndexedAccessTypeNode = isIndexedAccessTypeNode; -function isIndexSignatureDeclaration(node) { - return node.kind === ts.SyntaxKind.IndexSignature; -} -exports.isIndexSignatureDeclaration = isIndexSignatureDeclaration; -function isInferTypeNode(node) { - return node.kind === ts.SyntaxKind.InferType; -} -exports.isInferTypeNode = isInferTypeNode; -function isInterfaceDeclaration(node) { - return node.kind === ts.SyntaxKind.InterfaceDeclaration; -} -exports.isInterfaceDeclaration = isInterfaceDeclaration; -function isIntersectionTypeNode(node) { - return node.kind === ts.SyntaxKind.IntersectionType; -} -exports.isIntersectionTypeNode = isIntersectionTypeNode; -function isIterationStatement(node) { - switch (node.kind) { - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - return true; - default: - return false; - } -} -exports.isIterationStatement = isIterationStatement; -function isJsDoc(node) { - return node.kind === ts.SyntaxKind.JSDocComment; -} -exports.isJsDoc = isJsDoc; -function isJsxAttribute(node) { - return node.kind === ts.SyntaxKind.JsxAttribute; -} -exports.isJsxAttribute = isJsxAttribute; -function isJsxAttributeLike(node) { - return node.kind === ts.SyntaxKind.JsxAttribute || - node.kind === ts.SyntaxKind.JsxSpreadAttribute; -} -exports.isJsxAttributeLike = isJsxAttributeLike; -function isJsxAttributes(node) { - return node.kind === ts.SyntaxKind.JsxAttributes; -} -exports.isJsxAttributes = isJsxAttributes; -function isJsxClosingElement(node) { - return node.kind === ts.SyntaxKind.JsxClosingElement; -} -exports.isJsxClosingElement = isJsxClosingElement; -function isJsxClosingFragment(node) { - return node.kind === ts.SyntaxKind.JsxClosingFragment; -} -exports.isJsxClosingFragment = isJsxClosingFragment; -function isJsxElement(node) { - return node.kind === ts.SyntaxKind.JsxElement; -} -exports.isJsxElement = isJsxElement; -function isJsxExpression(node) { - return node.kind === ts.SyntaxKind.JsxExpression; -} -exports.isJsxExpression = isJsxExpression; -function isJsxFragment(node) { - return node.kind === ts.SyntaxKind.JsxFragment; -} -exports.isJsxFragment = isJsxFragment; -function isJsxOpeningElement(node) { - return node.kind === ts.SyntaxKind.JsxOpeningElement; -} -exports.isJsxOpeningElement = isJsxOpeningElement; -function isJsxOpeningFragment(node) { - return node.kind === ts.SyntaxKind.JsxOpeningFragment; -} -exports.isJsxOpeningFragment = isJsxOpeningFragment; -function isJsxOpeningLikeElement(node) { - return node.kind === ts.SyntaxKind.JsxOpeningElement || - node.kind === ts.SyntaxKind.JsxSelfClosingElement; -} -exports.isJsxOpeningLikeElement = isJsxOpeningLikeElement; -function isJsxSelfClosingElement(node) { - return node.kind === ts.SyntaxKind.JsxSelfClosingElement; -} -exports.isJsxSelfClosingElement = isJsxSelfClosingElement; -function isJsxSpreadAttribute(node) { - return node.kind === ts.SyntaxKind.JsxSpreadAttribute; -} -exports.isJsxSpreadAttribute = isJsxSpreadAttribute; -function isJsxText(node) { - return node.kind === ts.SyntaxKind.JsxText; -} -exports.isJsxText = isJsxText; -function isLabeledStatement(node) { - return node.kind === ts.SyntaxKind.LabeledStatement; -} -exports.isLabeledStatement = isLabeledStatement; -function isLiteralExpression(node) { - return node.kind >= ts.SyntaxKind.FirstLiteralToken && - node.kind <= ts.SyntaxKind.LastLiteralToken; -} -exports.isLiteralExpression = isLiteralExpression; -function isLiteralTypeNode(node) { - return node.kind === ts.SyntaxKind.LiteralType; -} -exports.isLiteralTypeNode = isLiteralTypeNode; -function isMappedTypeNode(node) { - return node.kind === ts.SyntaxKind.MappedType; -} -exports.isMappedTypeNode = isMappedTypeNode; -function isMetaProperty(node) { - return node.kind === ts.SyntaxKind.MetaProperty; -} -exports.isMetaProperty = isMetaProperty; -function isMethodDeclaration(node) { - return node.kind === ts.SyntaxKind.MethodDeclaration; -} -exports.isMethodDeclaration = isMethodDeclaration; -function isMethodSignature(node) { - return node.kind === ts.SyntaxKind.MethodSignature; -} -exports.isMethodSignature = isMethodSignature; -function isModuleBlock(node) { - return node.kind === ts.SyntaxKind.ModuleBlock; -} -exports.isModuleBlock = isModuleBlock; -function isModuleDeclaration(node) { - return node.kind === ts.SyntaxKind.ModuleDeclaration; -} -exports.isModuleDeclaration = isModuleDeclaration; -function isNamedExports(node) { - return node.kind === ts.SyntaxKind.NamedExports; -} -exports.isNamedExports = isNamedExports; -function isNamedImports(node) { - return node.kind === ts.SyntaxKind.NamedImports; -} -exports.isNamedImports = isNamedImports; -function isNamespaceDeclaration(node) { - return isModuleDeclaration(node) && - node.name.kind === ts.SyntaxKind.Identifier && - node.body !== undefined && - (node.body.kind === ts.SyntaxKind.ModuleBlock || - isNamespaceDeclaration(node.body)); -} -exports.isNamespaceDeclaration = isNamespaceDeclaration; -function isNamespaceImport(node) { - return node.kind === ts.SyntaxKind.NamespaceImport; -} -exports.isNamespaceImport = isNamespaceImport; -function isNamespaceExportDeclaration(node) { - return node.kind === ts.SyntaxKind.NamespaceExportDeclaration; -} -exports.isNamespaceExportDeclaration = isNamespaceExportDeclaration; -function isNewExpression(node) { - return node.kind === ts.SyntaxKind.NewExpression; -} -exports.isNewExpression = isNewExpression; -function isNonNullExpression(node) { - return node.kind === ts.SyntaxKind.NonNullExpression; -} -exports.isNonNullExpression = isNonNullExpression; -function isNoSubstitutionTemplateLiteral(node) { - return node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral; -} -exports.isNoSubstitutionTemplateLiteral = isNoSubstitutionTemplateLiteral; -function isNullLiteral(node) { - return node.kind === ts.SyntaxKind.NullKeyword; -} -exports.isNullLiteral = isNullLiteral; -function isNumericLiteral(node) { - return node.kind === ts.SyntaxKind.NumericLiteral; -} -exports.isNumericLiteral = isNumericLiteral; -function isNumericOrStringLikeLiteral(node) { - switch (node.kind) { - case ts.SyntaxKind.StringLiteral: - case ts.SyntaxKind.NumericLiteral: - case ts.SyntaxKind.NoSubstitutionTemplateLiteral: - return true; - default: - return false; - } -} -exports.isNumericOrStringLikeLiteral = isNumericOrStringLikeLiteral; -function isObjectBindingPattern(node) { - return node.kind === ts.SyntaxKind.ObjectBindingPattern; -} -exports.isObjectBindingPattern = isObjectBindingPattern; -function isObjectLiteralExpression(node) { - return node.kind === ts.SyntaxKind.ObjectLiteralExpression; -} -exports.isObjectLiteralExpression = isObjectLiteralExpression; -function isOmittedExpression(node) { - return node.kind === ts.SyntaxKind.OmittedExpression; -} -exports.isOmittedExpression = isOmittedExpression; -function isParameterDeclaration(node) { - return node.kind === ts.SyntaxKind.Parameter; -} -exports.isParameterDeclaration = isParameterDeclaration; -function isParenthesizedExpression(node) { - return node.kind === ts.SyntaxKind.ParenthesizedExpression; -} -exports.isParenthesizedExpression = isParenthesizedExpression; -function isParenthesizedTypeNode(node) { - return node.kind === ts.SyntaxKind.ParenthesizedType; -} -exports.isParenthesizedTypeNode = isParenthesizedTypeNode; -function isPostfixUnaryExpression(node) { - return node.kind === ts.SyntaxKind.PostfixUnaryExpression; -} -exports.isPostfixUnaryExpression = isPostfixUnaryExpression; -function isPrefixUnaryExpression(node) { - return node.kind === ts.SyntaxKind.PrefixUnaryExpression; -} -exports.isPrefixUnaryExpression = isPrefixUnaryExpression; -function isPropertyAccessExpression(node) { - return node.kind === ts.SyntaxKind.PropertyAccessExpression; -} -exports.isPropertyAccessExpression = isPropertyAccessExpression; -function isPropertyAssignment(node) { - return node.kind === ts.SyntaxKind.PropertyAssignment; -} -exports.isPropertyAssignment = isPropertyAssignment; -function isPropertyDeclaration(node) { - return node.kind === ts.SyntaxKind.PropertyDeclaration; -} -exports.isPropertyDeclaration = isPropertyDeclaration; -function isPropertySignature(node) { - return node.kind === ts.SyntaxKind.PropertySignature; -} -exports.isPropertySignature = isPropertySignature; -function isQualifiedName(node) { - return node.kind === ts.SyntaxKind.QualifiedName; -} -exports.isQualifiedName = isQualifiedName; -function isRegularExpressionLiteral(node) { - return node.kind === ts.SyntaxKind.RegularExpressionLiteral; -} -exports.isRegularExpressionLiteral = isRegularExpressionLiteral; -function isReturnStatement(node) { - return node.kind === ts.SyntaxKind.ReturnStatement; -} -exports.isReturnStatement = isReturnStatement; -function isSetAccessorDeclaration(node) { - return node.kind === ts.SyntaxKind.SetAccessor; -} -exports.isSetAccessorDeclaration = isSetAccessorDeclaration; -function isShorthandPropertyAssignment(node) { - return node.kind === ts.SyntaxKind.ShorthandPropertyAssignment; -} -exports.isShorthandPropertyAssignment = isShorthandPropertyAssignment; -function isSignatureDeclaration(node) { - return node.parameters !== undefined; -} -exports.isSignatureDeclaration = isSignatureDeclaration; -function isSourceFile(node) { - return node.kind === ts.SyntaxKind.SourceFile; -} -exports.isSourceFile = isSourceFile; -function isSpreadAssignment(node) { - return node.kind === ts.SyntaxKind.SpreadAssignment; -} -exports.isSpreadAssignment = isSpreadAssignment; -function isSpreadElement(node) { - return node.kind === ts.SyntaxKind.SpreadElement; -} -exports.isSpreadElement = isSpreadElement; -function isStringLiteral(node) { - return node.kind === ts.SyntaxKind.StringLiteral; -} -exports.isStringLiteral = isStringLiteral; -function isSwitchStatement(node) { - return node.kind === ts.SyntaxKind.SwitchStatement; -} -exports.isSwitchStatement = isSwitchStatement; -function isSyntaxList(node) { - return node.kind === ts.SyntaxKind.SyntaxList; -} -exports.isSyntaxList = isSyntaxList; -function isTaggedTemplateExpression(node) { - return node.kind === ts.SyntaxKind.TaggedTemplateExpression; -} -exports.isTaggedTemplateExpression = isTaggedTemplateExpression; -function isTemplateExpression(node) { - return node.kind === ts.SyntaxKind.TemplateExpression; -} -exports.isTemplateExpression = isTemplateExpression; -function isTemplateLiteral(node) { - return node.kind === ts.SyntaxKind.TemplateExpression || - node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral; -} -exports.isTemplateLiteral = isTemplateLiteral; -function isTextualLiteral(node) { - return node.kind === ts.SyntaxKind.StringLiteral || - node.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral; -} -exports.isTextualLiteral = isTextualLiteral; -function isThrowStatement(node) { - return node.kind === ts.SyntaxKind.ThrowStatement; -} -exports.isThrowStatement = isThrowStatement; -function isTryStatement(node) { - return node.kind === ts.SyntaxKind.TryStatement; -} -exports.isTryStatement = isTryStatement; -function isTupleTypeNode(node) { - return node.kind === ts.SyntaxKind.TupleType; -} -exports.isTupleTypeNode = isTupleTypeNode; -function isTypeAliasDeclaration(node) { - return node.kind === ts.SyntaxKind.TypeAliasDeclaration; -} -exports.isTypeAliasDeclaration = isTypeAliasDeclaration; -function isTypeAssertion(node) { - return node.kind === ts.SyntaxKind.TypeAssertionExpression; -} -exports.isTypeAssertion = isTypeAssertion; -function isTypeLiteralNode(node) { - return node.kind === ts.SyntaxKind.TypeLiteral; -} -exports.isTypeLiteralNode = isTypeLiteralNode; -function isTypeOfExpression(node) { - return node.kind === ts.SyntaxKind.TypeOfExpression; -} -exports.isTypeOfExpression = isTypeOfExpression; -function isTypeOperatorNode(node) { - return node.kind === ts.SyntaxKind.TypeOperator; -} -exports.isTypeOperatorNode = isTypeOperatorNode; -function isTypeParameterDeclaration(node) { - return node.kind === ts.SyntaxKind.TypeParameter; -} -exports.isTypeParameterDeclaration = isTypeParameterDeclaration; -function isTypePredicateNode(node) { - return node.kind === ts.SyntaxKind.TypePredicate; -} -exports.isTypePredicateNode = isTypePredicateNode; -function isTypeReferenceNode(node) { - return node.kind === ts.SyntaxKind.TypeReference; -} -exports.isTypeReferenceNode = isTypeReferenceNode; -function isTypeQueryNode(node) { - return node.kind === ts.SyntaxKind.TypeQuery; -} -exports.isTypeQueryNode = isTypeQueryNode; -function isUnionTypeNode(node) { - return node.kind === ts.SyntaxKind.UnionType; -} -exports.isUnionTypeNode = isUnionTypeNode; -function isVariableDeclaration(node) { - return node.kind === ts.SyntaxKind.VariableDeclaration; -} -exports.isVariableDeclaration = isVariableDeclaration; -function isVariableStatement(node) { - return node.kind === ts.SyntaxKind.VariableStatement; -} -exports.isVariableStatement = isVariableStatement; -function isVariableDeclarationList(node) { - return node.kind === ts.SyntaxKind.VariableDeclarationList; -} -exports.isVariableDeclarationList = isVariableDeclarationList; -function isVoidExpression(node) { - return node.kind === ts.SyntaxKind.VoidExpression; -} -exports.isVoidExpression = isVoidExpression; -function isWhileStatement(node) { - return node.kind === ts.SyntaxKind.WhileStatement; -} -exports.isWhileStatement = isWhileStatement; -function isWithStatement(node) { - return node.kind === ts.SyntaxKind.WithStatement; -} -exports.isWithStatement = isWithStatement; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/type.d.ts deleted file mode 100644 index 45b6bc3d32..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/type.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as ts from 'typescript'; -export declare function isConditionalType(type: ts.Type): type is ts.ConditionalType; -export declare function isEnumType(type: ts.Type): type is ts.EnumType; -export declare function isGenericType(type: ts.Type): type is ts.GenericType; -export declare function isIndexedAccessType(type: ts.Type): type is ts.IndexedAccessType; -export declare function isIndexedAccessype(type: ts.Type): type is ts.IndexType; -export declare function isInstantiableType(type: ts.Type): type is ts.InstantiableType; -export declare function isInterfaceType(type: ts.Type): type is ts.InterfaceType; -export declare function isIntersectionType(type: ts.Type): type is ts.IntersectionType; -export declare function isLiteralType(type: ts.Type): type is ts.LiteralType; -export declare function isObjectType(type: ts.Type): type is ts.ObjectType; -export declare function isSubstitutionType(type: ts.Type): type is ts.SubstitutionType; -export declare function isTypeParameter(type: ts.Type): type is ts.TypeParameter; -export declare function isTypeReference(type: ts.Type): type is ts.TypeReference; -export declare function isTypeVariable(type: ts.Type): type is ts.TypeParameter | ts.IndexedAccessType; -export declare function isUnionOrIntersectionType(type: ts.Type): type is ts.UnionOrIntersectionType; -export declare function isUnionType(type: ts.Type): type is ts.UnionType; -export declare function isUniqueESSymbolType(type: ts.Type): type is ts.UniqueESSymbolType; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/type.js deleted file mode 100644 index 01fc06ead7..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.8/type.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -function isConditionalType(type) { - return (type.flags & ts.TypeFlags.Conditional) !== 0; -} -exports.isConditionalType = isConditionalType; -function isEnumType(type) { - return (type.flags & ts.TypeFlags.Enum) !== 0; -} -exports.isEnumType = isEnumType; -function isGenericType(type) { - return (type.flags & ts.TypeFlags.Object) !== 0 && - (type.objectFlags & ts.ObjectFlags.ClassOrInterface) !== 0 && - (type.objectFlags & ts.ObjectFlags.Reference) !== 0; -} -exports.isGenericType = isGenericType; -function isIndexedAccessType(type) { - return (type.flags & ts.TypeFlags.IndexedAccess) !== 0; -} -exports.isIndexedAccessType = isIndexedAccessType; -function isIndexedAccessype(type) { - return (type.flags & ts.TypeFlags.Index) !== 0; -} -exports.isIndexedAccessype = isIndexedAccessype; -function isInstantiableType(type) { - return (type.flags & ts.TypeFlags.Instantiable) !== 0; -} -exports.isInstantiableType = isInstantiableType; -function isInterfaceType(type) { - return (type.flags & ts.TypeFlags.Object) !== 0 && - (type.objectFlags & ts.ObjectFlags.ClassOrInterface) !== 0; -} -exports.isInterfaceType = isInterfaceType; -function isIntersectionType(type) { - return (type.flags & ts.TypeFlags.Intersection) !== 0; -} -exports.isIntersectionType = isIntersectionType; -function isLiteralType(type) { - return (type.flags & (ts.TypeFlags.StringOrNumberLiteral | ts.TypeFlags.BigIntLiteral)) !== 0; -} -exports.isLiteralType = isLiteralType; -function isObjectType(type) { - return (type.flags & ts.TypeFlags.Object) !== 0; -} -exports.isObjectType = isObjectType; -function isSubstitutionType(type) { - return (type.flags & ts.TypeFlags.Substitution) !== 0; -} -exports.isSubstitutionType = isSubstitutionType; -function isTypeParameter(type) { - return (type.flags & ts.TypeFlags.TypeParameter) !== 0; -} -exports.isTypeParameter = isTypeParameter; -function isTypeReference(type) { - return (type.flags & ts.TypeFlags.Object) !== 0 && - (type.objectFlags & ts.ObjectFlags.Reference) !== 0; -} -exports.isTypeReference = isTypeReference; -function isTypeVariable(type) { - return (type.flags & ts.TypeFlags.TypeVariable) !== 0; -} -exports.isTypeVariable = isTypeVariable; -function isUnionOrIntersectionType(type) { - return (type.flags & ts.TypeFlags.UnionOrIntersection) !== 0; -} -exports.isUnionOrIntersectionType = isUnionOrIntersectionType; -function isUnionType(type) { - return (type.flags & ts.TypeFlags.Union) !== 0; -} -exports.isUnionType = isUnionType; -function isUniqueESSymbolType(type) { - return (type.flags & ts.TypeFlags.UniqueESSymbol) !== 0; -} -exports.isUniqueESSymbolType = isUniqueESSymbolType; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/node.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/node.d.ts deleted file mode 100644 index bf2ec1d1f2..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/node.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from '../2.8/node'; -import * as ts from 'typescript'; -export declare function isImportTypeNode(node: ts.Node): node is ts.ImportTypeNode; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/node.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/node.js deleted file mode 100644 index e24159778a..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/node.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.8/node"), exports); -const ts = require("typescript"); -function isImportTypeNode(node) { - return node.kind === ts.SyntaxKind.ImportType; -} -exports.isImportTypeNode = isImportTypeNode; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/type.d.ts deleted file mode 100644 index ec83ac3f48..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../2.8/type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/type.js deleted file mode 100644 index 9315cac2b9..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/2.9/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.8/type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/node.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/node.d.ts deleted file mode 100644 index 305991140b..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/node.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from '../2.9/node'; -import * as ts from 'typescript'; -export declare function isOptionalTypeNode(node: ts.Node): node is ts.OptionalTypeNode; -export declare function isRestTypeNode(node: ts.Node): node is ts.RestTypeNode; -export declare function isSyntheticExpression(node: ts.Node): node is ts.SyntheticExpression; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/node.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/node.js deleted file mode 100644 index 943bb36e8a..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/node.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.9/node"), exports); -const ts = require("typescript"); -function isOptionalTypeNode(node) { - return node.kind === ts.SyntaxKind.OptionalType; -} -exports.isOptionalTypeNode = isOptionalTypeNode; -function isRestTypeNode(node) { - return node.kind === ts.SyntaxKind.RestType; -} -exports.isRestTypeNode = isRestTypeNode; -function isSyntheticExpression(node) { - return node.kind === ts.SyntaxKind.SyntheticExpression; -} -exports.isSyntheticExpression = isSyntheticExpression; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/type.d.ts deleted file mode 100644 index 5cf0df95a2..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/type.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from '../2.9/type'; -import * as ts from 'typescript'; -export declare function isTupleType(type: ts.Type): type is ts.TupleType; -export declare function isTupleTypeReference(type: ts.Type): type is ts.TypeReference & { - target: ts.TupleType; -}; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/type.js deleted file mode 100644 index 7ec876f8f4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.0/type.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../2.9/type"), exports); -const ts = require("typescript"); -const type_1 = require("../2.9/type"); -function isTupleType(type) { - return (type.flags & ts.TypeFlags.Object && type.objectFlags & ts.ObjectFlags.Tuple) !== 0; -} -exports.isTupleType = isTupleType; -function isTupleTypeReference(type) { - return type_1.isTypeReference(type) && isTupleType(type.target); -} -exports.isTupleTypeReference = isTupleTypeReference; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/node.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/node.d.ts deleted file mode 100644 index cf88ae114f..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/node.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from '../3.0/node'; -import * as ts from 'typescript'; -export declare function isBigIntLiteral(node: ts.Node): node is ts.BigIntLiteral; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/node.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/node.js deleted file mode 100644 index 26e8c1a749..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/node.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.0/node"), exports); -const ts = require("typescript"); -function isBigIntLiteral(node) { - return node.kind === ts.SyntaxKind.BigIntLiteral; -} -exports.isBigIntLiteral = isBigIntLiteral; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/type.d.ts deleted file mode 100644 index fee77fb183..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../3.0/type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/type.js deleted file mode 100644 index d800ef8412..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/3.2/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.0/type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/index.d.ts deleted file mode 100644 index 71762921c4..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './node'; -export * from './type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/index.js deleted file mode 100644 index 0c381e79a0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./node"), exports); -tslib_1.__exportStar(require("./type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/node.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/node.d.ts deleted file mode 100644 index d64678a349..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/node.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../3.2/node'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/node.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/node.js deleted file mode 100644 index e2c022f122..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/node.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.2/node"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/type.d.ts deleted file mode 100644 index 6cd4408ace..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../3.2/type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/type.js deleted file mode 100644 index ef88473b66..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/next/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("../3.2/type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/node.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/node.d.ts deleted file mode 100644 index f6a9f8b7de..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/node.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './3.2/node'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/node.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/node.js deleted file mode 100644 index 3d8e376089..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/node.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./3.2/node"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/type.d.ts deleted file mode 100644 index 8a20aeb1f0..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/type.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './3.2/type'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/type.js deleted file mode 100644 index cecc6fd6c3..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/typeguard/type.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./3.2/type"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/control-flow.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/control-flow.d.ts deleted file mode 100644 index 528155c1b9..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/control-flow.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import * as ts from 'typescript'; -export declare function endsControlFlow(statement: ts.Statement | ts.BlockLike): boolean; -export declare type ControlFlowStatement = ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.ThrowStatement; -export interface ControlFlowEnd { - readonly statements: ReadonlyArray; - readonly end: boolean; -} -export declare function getControlFlowEnd(statement: ts.Statement | ts.BlockLike): ControlFlowEnd; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/control-flow.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/control-flow.js deleted file mode 100644 index 7e83773f05..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/control-flow.js +++ /dev/null @@ -1,171 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const node_1 = require("../typeguard/node"); -function endsControlFlow(statement) { - return getControlFlowEnd(statement).end; -} -exports.endsControlFlow = endsControlFlow; -const defaultControlFlowEnd = { statements: [], end: false }; -function getControlFlowEnd(statement) { - return node_1.isBlockLike(statement) ? handleBlock(statement) : getControlFlowEndWorker(statement); -} -exports.getControlFlowEnd = getControlFlowEnd; -function getControlFlowEndWorker(statement) { - switch (statement.kind) { - case ts.SyntaxKind.ReturnStatement: - case ts.SyntaxKind.ThrowStatement: - case ts.SyntaxKind.ContinueStatement: - case ts.SyntaxKind.BreakStatement: - return { statements: [statement], end: true }; - case ts.SyntaxKind.Block: - return handleBlock(statement); - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.WhileStatement: - return handleForAndWhileStatement(statement); - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.ForInStatement: - return handleForInOrOfStatement(statement); - case ts.SyntaxKind.DoStatement: - return matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement); - case ts.SyntaxKind.IfStatement: - return handleIfStatement(statement); - case ts.SyntaxKind.SwitchStatement: - return matchBreakOrContinue(handleSwitchStatement(statement), node_1.isBreakStatement); - case ts.SyntaxKind.TryStatement: - return handleTryStatement(statement); - case ts.SyntaxKind.LabeledStatement: - return matchLabel(getControlFlowEndWorker(statement.statement), statement.label); - case ts.SyntaxKind.WithStatement: - return getControlFlowEndWorker(statement.statement); - default: - return defaultControlFlowEnd; - } -} -function handleBlock(statement) { - const result = { statements: [], end: false }; - for (const s of statement.statements) { - const current = getControlFlowEndWorker(s); - result.statements.push(...current.statements); - if (current.end) { - result.end = true; - break; - } - } - return result; -} -function handleForInOrOfStatement(statement) { - const end = matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement); - end.end = false; - return end; -} -function handleForAndWhileStatement(statement) { - const constantCondition = statement.kind === ts.SyntaxKind.WhileStatement - ? getConstantCondition(statement.expression) - : statement.condition === undefined || getConstantCondition(statement.condition); - if (constantCondition === false) - return defaultControlFlowEnd; - const end = matchBreakOrContinue(getControlFlowEndWorker(statement.statement), node_1.isBreakOrContinueStatement); - if (constantCondition === undefined) - end.end = false; - return end; -} -function getConstantCondition(node) { - switch (node.kind) { - case ts.SyntaxKind.TrueKeyword: - return true; - case ts.SyntaxKind.FalseKeyword: - return false; - default: - return; - } -} -function handleIfStatement(node) { - switch (getConstantCondition(node.expression)) { - case true: - return getControlFlowEndWorker(node.thenStatement); - case false: - return node.elseStatement === undefined - ? defaultControlFlowEnd - : getControlFlowEndWorker(node.elseStatement); - } - const then = getControlFlowEndWorker(node.thenStatement); - if (node.elseStatement === undefined) - return { - statements: then.statements, - end: false, - }; - const elze = getControlFlowEndWorker(node.elseStatement); - return { - statements: [...then.statements, ...elze.statements], - end: then.end && elze.end, - }; -} -function handleSwitchStatement(node) { - let hasDefault = false; - const result = { - statements: [], - end: false, - }; - for (const clause of node.caseBlock.clauses) { - if (clause.kind === ts.SyntaxKind.DefaultClause) - hasDefault = true; - const current = handleBlock(clause); - result.end = current.end; - result.statements.push(...current.statements); - } - if (!hasDefault) - result.end = false; - return result; -} -function handleTryStatement(node) { - let finallyResult; - if (node.finallyBlock !== undefined) { - finallyResult = handleBlock(node.finallyBlock); - if (finallyResult.end) - return finallyResult; - } - const tryResult = handleBlock(node.tryBlock); - if (node.catchClause === undefined) - return { statements: finallyResult.statements.concat(tryResult.statements), end: tryResult.end }; - const catchResult = handleBlock(node.catchClause.block); - return { - statements: tryResult.statements - .filter((s) => s.kind !== ts.SyntaxKind.ThrowStatement) - .concat(catchResult.statements, finallyResult === undefined ? [] : finallyResult.statements), - end: tryResult.end && catchResult.end, - }; -} -function matchBreakOrContinue(current, pred) { - const result = { - statements: [], - end: current.end, - }; - for (const statement of current.statements) { - if (pred(statement) && statement.label === undefined) { - result.end = false; - continue; - } - result.statements.push(statement); - } - return result; -} -function matchLabel(current, label) { - const result = { - statements: [], - end: current.end, - }; - const labelText = label.text; - for (const statement of current.statements) { - switch (statement.kind) { - case ts.SyntaxKind.BreakStatement: - case ts.SyntaxKind.ContinueStatement: - if (statement.label !== undefined && statement.label.text === labelText) { - result.end = false; - continue; - } - } - result.statements.push(statement); - } - return result; -} diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/convert-ast.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/convert-ast.d.ts deleted file mode 100644 index 7e95feaf0f..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/convert-ast.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import * as ts from 'typescript'; -export interface NodeWrap { - node: ts.Node; - kind: ts.SyntaxKind; - children: NodeWrap[]; - next?: NodeWrap; - skip?: NodeWrap; - parent?: NodeWrap; -} -export interface WrappedAst extends NodeWrap { - node: ts.SourceFile; - next: NodeWrap; - skip: undefined; - parent: undefined; -} -export interface ConvertedAst { - wrapped: WrappedAst; - flat: ReadonlyArray; -} -export declare function convertAst(sourceFile: ts.SourceFile): ConvertedAst; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/convert-ast.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/convert-ast.js deleted file mode 100644 index bfdb0282c1..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/convert-ast.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const util_1 = require("./util"); -function convertAst(sourceFile) { - const wrapped = { - node: sourceFile, - parent: undefined, - kind: ts.SyntaxKind.SourceFile, - children: [], - next: undefined, - skip: undefined, - }; - const flat = []; - let current = wrapped; - let previous = current; - ts.forEachChild(sourceFile, function wrap(node) { - flat.push(node); - const parent = current; - previous.next = current = { - node, - parent, - kind: node.kind, - children: [], - next: undefined, - skip: undefined, - }; - if (previous !== parent) - setSkip(previous, current); - previous = current; - parent.children.push(current); - if (util_1.isNodeKind(node.kind)) - ts.forEachChild(node, wrap); - current = parent; - }); - return { - wrapped, - flat, - }; -} -exports.convertAst = convertAst; -function setSkip(node, skip) { - do { - node.skip = skip; - node = node.parent; - } while (node !== skip.parent); -} diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/index.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/index.d.ts deleted file mode 100644 index 9e93ff6f1e..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './util'; -export * from './usage'; -export * from './control-flow'; -export * from './type'; -export * from './convert-ast'; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/index.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/index.js deleted file mode 100644 index 2087d2a37e..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/index.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -tslib_1.__exportStar(require("./util"), exports); -tslib_1.__exportStar(require("./usage"), exports); -tslib_1.__exportStar(require("./control-flow"), exports); -tslib_1.__exportStar(require("./type"), exports); -tslib_1.__exportStar(require("./convert-ast"), exports); diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/type.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/type.d.ts deleted file mode 100644 index f4343a4584..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/type.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import * as ts from 'typescript'; -import { PropertyName } from './util'; -export declare function isEmptyObjectType(type: ts.Type): type is ts.ObjectType; -export declare function removeOptionalityFromType(checker: ts.TypeChecker, type: ts.Type): ts.Type; -export declare function isTypeAssignableToNumber(checker: ts.TypeChecker, type: ts.Type): boolean; -export declare function isTypeAssignableToString(checker: ts.TypeChecker, type: ts.Type): boolean; -export declare function getCallSignaturesOfType(type: ts.Type): ReadonlyArray; -export declare function unionTypeParts(type: ts.Type): ts.Type[]; -export declare function intersectionTypeParts(type: ts.Type): ts.Type[]; -export declare function someTypePart(type: ts.Type, predicate: (t: ts.Type) => t is ts.UnionOrIntersectionType, cb: (t: ts.Type) => boolean): boolean; -export declare function isThenableType(checker: ts.TypeChecker, node: ts.Node, type: ts.Type): boolean; -export declare function isThenableType(checker: ts.TypeChecker, node: ts.Expression, type?: ts.Type): boolean; -export declare function isFalsyType(type: ts.Type): boolean; -export declare function isBooleanLiteralType(type: ts.Type, literal: boolean): boolean; -export declare function getPropertyOfType(type: ts.Type, name: ts.__String): ts.Symbol | undefined; -export declare function isPropertyReadonlyInType(type: ts.Type, name: ts.__String, checker: ts.TypeChecker): boolean; -export declare function symbolHasReadonlyDeclaration(symbol: ts.Symbol, checker: ts.TypeChecker): boolean; -export declare function getPropertyNameFromType(type: ts.Type): PropertyName | undefined; -export declare function getConstructorTypeOfClassLikeDeclaration(node: ts.ClassLikeDeclaration, checker: ts.TypeChecker): ts.Type; -export declare function getInstanceTypeOfClassLikeDeclaration(node: ts.ClassLikeDeclaration, checker: ts.TypeChecker): ts.Type; -export declare function getIteratorYieldResultFromIteratorResult(type: ts.Type, node: ts.Node, checker: ts.TypeChecker): ts.Type; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/type.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/type.js deleted file mode 100644 index 7a530d9fd7..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/type.js +++ /dev/null @@ -1,238 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const type_1 = require("../typeguard/type"); -const util_1 = require("./util"); -const node_1 = require("../typeguard/node"); -function isEmptyObjectType(type) { - if (type_1.isObjectType(type) && - type.objectFlags & ts.ObjectFlags.Anonymous && - type.getProperties().length === 0 && - type.getCallSignatures().length === 0 && - type.getConstructSignatures().length === 0 && - type.getStringIndexType() === undefined && - type.getNumberIndexType() === undefined) { - const baseTypes = type.getBaseTypes(); - return baseTypes === undefined || baseTypes.every(isEmptyObjectType); - } - return false; -} -exports.isEmptyObjectType = isEmptyObjectType; -function removeOptionalityFromType(checker, type) { - if (!containsTypeWithFlag(type, ts.TypeFlags.Undefined)) - return type; - const allowsNull = containsTypeWithFlag(type, ts.TypeFlags.Null); - type = checker.getNonNullableType(type); - return allowsNull ? checker.getNullableType(type, ts.TypeFlags.Null) : type; -} -exports.removeOptionalityFromType = removeOptionalityFromType; -function containsTypeWithFlag(type, flag) { - for (const t of unionTypeParts(type)) - if (util_1.isTypeFlagSet(t, flag)) - return true; - return false; -} -function isTypeAssignableToNumber(checker, type) { - return isTypeAssignableTo(checker, type, ts.TypeFlags.NumberLike); -} -exports.isTypeAssignableToNumber = isTypeAssignableToNumber; -function isTypeAssignableToString(checker, type) { - return isTypeAssignableTo(checker, type, ts.TypeFlags.StringLike); -} -exports.isTypeAssignableToString = isTypeAssignableToString; -function isTypeAssignableTo(checker, type, flags) { - flags |= ts.TypeFlags.Any; - let typeParametersSeen; - return (function check(t) { - if (type_1.isTypeParameter(t) && t.symbol !== undefined && t.symbol.declarations !== undefined) { - if (typeParametersSeen === undefined) { - typeParametersSeen = new Set([t]); - } - else if (!typeParametersSeen.has(t)) { - typeParametersSeen.add(t); - } - else { - return false; - } - const declaration = t.symbol.declarations[0]; - if (declaration.constraint === undefined) - return true; - return check(checker.getTypeFromTypeNode(declaration.constraint)); - } - if (type_1.isUnionType(t)) - return t.types.every(check); - if (type_1.isIntersectionType(t)) - return t.types.some(check); - return util_1.isTypeFlagSet(t, flags); - })(type); -} -function getCallSignaturesOfType(type) { - if (type_1.isUnionType(type)) { - const signatures = []; - for (const t of type.types) - signatures.push(...getCallSignaturesOfType(t)); - return signatures; - } - if (type_1.isIntersectionType(type)) { - let signatures; - for (const t of type.types) { - const sig = getCallSignaturesOfType(t); - if (sig.length !== 0) { - if (signatures !== undefined) - return []; - signatures = sig; - } - } - return signatures === undefined ? [] : signatures; - } - return type.getCallSignatures(); -} -exports.getCallSignaturesOfType = getCallSignaturesOfType; -function unionTypeParts(type) { - return type_1.isUnionType(type) ? type.types : [type]; -} -exports.unionTypeParts = unionTypeParts; -function intersectionTypeParts(type) { - return type_1.isIntersectionType(type) ? type.types : [type]; -} -exports.intersectionTypeParts = intersectionTypeParts; -function someTypePart(type, predicate, cb) { - return predicate(type) ? type.types.some(cb) : cb(type); -} -exports.someTypePart = someTypePart; -function isThenableType(checker, node, type = checker.getTypeAtLocation(node)) { - for (const ty of unionTypeParts(checker.getApparentType(type))) { - const then = ty.getProperty('then'); - if (then === undefined) - continue; - const thenType = checker.getTypeOfSymbolAtLocation(then, node); - for (const t of unionTypeParts(thenType)) - for (const signature of t.getCallSignatures()) - if (signature.parameters.length !== 0 && isCallback(checker, signature.parameters[0], node)) - return true; - } - return false; -} -exports.isThenableType = isThenableType; -function isCallback(checker, param, node) { - let type = checker.getApparentType(checker.getTypeOfSymbolAtLocation(param, node)); - if (param.valueDeclaration.dotDotDotToken) { - type = type.getNumberIndexType(); - if (type === undefined) - return false; - } - for (const t of unionTypeParts(type)) - if (t.getCallSignatures().length !== 0) - return true; - return false; -} -function isFalsyType(type) { - if (type.flags & (ts.TypeFlags.Undefined | ts.TypeFlags.Null | ts.TypeFlags.Void)) - return true; - if (type_1.isLiteralType(type)) - return !type.value; - return isBooleanLiteralType(type, false); -} -exports.isFalsyType = isFalsyType; -function isBooleanLiteralType(type, literal) { - return util_1.isTypeFlagSet(type, ts.TypeFlags.BooleanLiteral) && - type.intrinsicName === (literal ? 'true' : 'false'); -} -exports.isBooleanLiteralType = isBooleanLiteralType; -function getPropertyOfType(type, name) { - if (!name.startsWith('__')) - return type.getProperty(name); - return type.getProperties().find((s) => s.escapedName === name); -} -exports.getPropertyOfType = getPropertyOfType; -function isPropertyReadonlyInType(type, name, checker) { - let seenProperty = false; - let seenReadonlySignature = false; - for (const t of unionTypeParts(type)) { - if (getPropertyOfType(t, name) === undefined) { - const index = (util_1.isNumericPropertyName(name) ? checker.getIndexInfoOfType(t, ts.IndexKind.Number) : undefined) || - checker.getIndexInfoOfType(t, ts.IndexKind.String); - if (index !== undefined && index.isReadonly) { - if (seenProperty) - return true; - seenReadonlySignature = true; - } - } - else if (seenReadonlySignature || isReadonlyPropertyIntersection(t, name, checker)) { - return true; - } - else { - seenProperty = true; - } - } - return false; -} -exports.isPropertyReadonlyInType = isPropertyReadonlyInType; -function isReadonlyPropertyIntersection(type, name, checker) { - return someTypePart(type, type_1.isIntersectionType, (t) => { - const prop = getPropertyOfType(t, name); - if (prop === undefined) - return false; - if (prop.flags & ts.SymbolFlags.Transient) { - if (/^(?:[1-9]\d*|0)$/.test(name) && type_1.isTupleTypeReference(t)) - return t.target.readonly; - switch (isReadonlyPropertyFromMappedType(t, name, checker)) { - case true: - return true; - case false: - return false; - default: - } - } - return (util_1.isSymbolFlagSet(prop, ts.SymbolFlags.ValueModule) || - symbolHasReadonlyDeclaration(prop, checker)); - }); -} -function isReadonlyPropertyFromMappedType(type, name, checker) { - if (!type_1.isObjectType(type) || !util_1.isObjectFlagSet(type, ts.ObjectFlags.Mapped)) - return; - const declaration = type.symbol.declarations[0]; - if (declaration.readonlyToken !== undefined && !/^__@[^@]+$/.test(name)) - return declaration.readonlyToken.kind !== ts.SyntaxKind.MinusToken; - return isPropertyReadonlyInType(type.modifiersType, name, checker); -} -function symbolHasReadonlyDeclaration(symbol, checker) { - return (symbol.flags & ts.SymbolFlags.Accessor) === ts.SymbolFlags.GetAccessor || - symbol.declarations !== undefined && - symbol.declarations.some((node) => util_1.isModifierFlagSet(node, ts.ModifierFlags.Readonly) || - node_1.isVariableDeclaration(node) && util_1.isNodeFlagSet(node.parent, ts.NodeFlags.Const) || - node_1.isCallExpression(node) && util_1.isReadonlyAssignmentDeclaration(node, checker) || - node_1.isEnumMember(node) || - (node_1.isPropertyAssignment(node) || node_1.isShorthandPropertyAssignment(node)) && util_1.isInConstContext(node.parent)); -} -exports.symbolHasReadonlyDeclaration = symbolHasReadonlyDeclaration; -function getPropertyNameFromType(type) { - if (type.flags & (ts.TypeFlags.StringLiteral | ts.TypeFlags.NumberLiteral)) { - const value = String(type.value); - return { displayName: value, symbolName: ts.escapeLeadingUnderscores(value) }; - } - if (type_1.isUniqueESSymbolType(type)) - return { - displayName: `[${type.symbol ? type.symbol.name : type.escapedName.replace(/^__@|@\d+$/g, '')}]`, - symbolName: type.escapedName, - }; -} -exports.getPropertyNameFromType = getPropertyNameFromType; -function getConstructorTypeOfClassLikeDeclaration(node, checker) { - return checker.getDeclaredTypeOfSymbol(node.name !== undefined ? checker.getSymbolAtLocation(node.name) : checker.getTypeAtLocation(node).symbol); -} -exports.getConstructorTypeOfClassLikeDeclaration = getConstructorTypeOfClassLikeDeclaration; -function getInstanceTypeOfClassLikeDeclaration(node, checker) { - return node.kind === ts.SyntaxKind.ClassDeclaration - ? checker.getTypeAtLocation(node) - : checker.getTypeOfSymbolAtLocation(checker.getTypeAtLocation(node).getProperty('prototype'), node); -} -exports.getInstanceTypeOfClassLikeDeclaration = getInstanceTypeOfClassLikeDeclaration; -function getIteratorYieldResultFromIteratorResult(type, node, checker) { - return type_1.isUnionType(type) && type.types.find((t) => { - const done = t.getProperty('done'); - return done !== undefined && - isBooleanLiteralType(removeOptionalityFromType(checker, checker.getTypeOfSymbolAtLocation(done, node)), false); - }) || type; -} -exports.getIteratorYieldResultFromIteratorResult = getIteratorYieldResultFromIteratorResult; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/usage.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/usage.d.ts deleted file mode 100644 index a4c022c9d1..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/usage.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as ts from 'typescript'; -export interface VariableInfo { - domain: DeclarationDomain; - exported: boolean; - uses: VariableUse[]; - inGlobalScope: boolean; - declarations: ts.Identifier[]; -} -export interface VariableUse { - domain: UsageDomain; - location: ts.Identifier; -} -export declare enum DeclarationDomain { - Namespace = 1, - Type = 2, - Value = 4, - Import = 8, - Any = 7 -} -export declare enum UsageDomain { - Namespace = 1, - Type = 2, - Value = 4, - ValueOrNamespace = 5, - Any = 7, - TypeQuery = 8 -} -export declare function getUsageDomain(node: ts.Identifier): UsageDomain | undefined; -export declare function getDeclarationDomain(node: ts.Identifier): DeclarationDomain | undefined; -export declare function collectVariableUsage(sourceFile: ts.SourceFile): Map; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/usage.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/usage.js deleted file mode 100644 index 372d38a69f..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/usage.js +++ /dev/null @@ -1,645 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const util_1 = require("./util"); -const ts = require("typescript"); -var DeclarationDomain; -(function (DeclarationDomain) { - DeclarationDomain[DeclarationDomain["Namespace"] = 1] = "Namespace"; - DeclarationDomain[DeclarationDomain["Type"] = 2] = "Type"; - DeclarationDomain[DeclarationDomain["Value"] = 4] = "Value"; - DeclarationDomain[DeclarationDomain["Import"] = 8] = "Import"; - DeclarationDomain[DeclarationDomain["Any"] = 7] = "Any"; -})(DeclarationDomain = exports.DeclarationDomain || (exports.DeclarationDomain = {})); -var UsageDomain; -(function (UsageDomain) { - UsageDomain[UsageDomain["Namespace"] = 1] = "Namespace"; - UsageDomain[UsageDomain["Type"] = 2] = "Type"; - UsageDomain[UsageDomain["Value"] = 4] = "Value"; - UsageDomain[UsageDomain["ValueOrNamespace"] = 5] = "ValueOrNamespace"; - UsageDomain[UsageDomain["Any"] = 7] = "Any"; - UsageDomain[UsageDomain["TypeQuery"] = 8] = "TypeQuery"; -})(UsageDomain = exports.UsageDomain || (exports.UsageDomain = {})); -function getUsageDomain(node) { - const parent = node.parent; - switch (parent.kind) { - case ts.SyntaxKind.TypeReference: - return node.originalKeywordKind !== ts.SyntaxKind.ConstKeyword ? 2 : undefined; - case ts.SyntaxKind.ExpressionWithTypeArguments: - return parent.parent.token === ts.SyntaxKind.ImplementsKeyword || - parent.parent.parent.kind === ts.SyntaxKind.InterfaceDeclaration - ? 2 - : 4; - case ts.SyntaxKind.TypeQuery: - return 5 | 8; - case ts.SyntaxKind.QualifiedName: - if (parent.left === node) { - if (getEntityNameParent(parent).kind === ts.SyntaxKind.TypeQuery) - return 1 | 8; - return 1; - } - break; - case ts.SyntaxKind.ExportSpecifier: - if (parent.propertyName === undefined || - parent.propertyName === node) - return 7; - break; - case ts.SyntaxKind.ExportAssignment: - return 7; - case ts.SyntaxKind.BindingElement: - if (parent.initializer === node) - return 5; - break; - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.ImportEqualsDeclaration: - if (parent.name !== node) - return 5; - break; - case ts.SyntaxKind.JsxAttribute: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.NamespaceImport: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.LabeledStatement: - case ts.SyntaxKind.BreakStatement: - case ts.SyntaxKind.ContinueStatement: - case ts.SyntaxKind.ImportClause: - case ts.SyntaxKind.ImportSpecifier: - case ts.SyntaxKind.TypePredicate: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.NamespaceExportDeclaration: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.TypeParameter: - break; - default: - return 5; - } -} -exports.getUsageDomain = getUsageDomain; -function getDeclarationDomain(node) { - switch (node.parent.kind) { - case ts.SyntaxKind.TypeParameter: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - return 2; - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - return 2 | 4; - case ts.SyntaxKind.EnumDeclaration: - return 7; - case ts.SyntaxKind.NamespaceImport: - case ts.SyntaxKind.ImportClause: - return 7 | 8; - case ts.SyntaxKind.ImportEqualsDeclaration: - case ts.SyntaxKind.ImportSpecifier: - return node.parent.name === node - ? 7 | 8 - : undefined; - case ts.SyntaxKind.ModuleDeclaration: - return 1; - case ts.SyntaxKind.Parameter: - if (node.parent.parent.kind === ts.SyntaxKind.IndexSignature || node.originalKeywordKind === ts.SyntaxKind.ThisKeyword) - return; - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.VariableDeclaration: - return node.parent.name === node ? 4 : undefined; - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.FunctionExpression: - return 4; - } -} -exports.getDeclarationDomain = getDeclarationDomain; -function collectVariableUsage(sourceFile) { - return new UsageWalker().getUsage(sourceFile); -} -exports.collectVariableUsage = collectVariableUsage; -class AbstractScope { - constructor(_global) { - this._global = _global; - this._variables = new Map(); - this._uses = []; - this._namespaceScopes = undefined; - this._enumScopes = undefined; - } - addVariable(identifier, name, selector, exported, domain) { - const variables = this.getDestinationScope(selector).getVariables(); - const declaration = { - domain, - exported, - declaration: name, - }; - const variable = variables.get(identifier); - if (variable === undefined) { - variables.set(identifier, { - domain, - declarations: [declaration], - uses: [], - }); - } - else { - variable.domain |= domain; - variable.declarations.push(declaration); - } - } - addUse(use) { - this._uses.push(use); - } - getVariables() { - return this._variables; - } - getFunctionScope() { - return this; - } - end(cb) { - if (this._namespaceScopes !== undefined) - this._namespaceScopes.forEach((value) => value.finish(cb)); - this._namespaceScopes = this._enumScopes = undefined; - this._applyUses(); - this._variables.forEach((variable) => { - for (const declaration of variable.declarations) { - const result = { - declarations: [], - domain: declaration.domain, - exported: declaration.exported, - inGlobalScope: this._global, - uses: [], - }; - for (const other of variable.declarations) - if (other.domain & declaration.domain) - result.declarations.push(other.declaration); - for (const use of variable.uses) - if (use.domain & declaration.domain) - result.uses.push(use); - cb(result, declaration.declaration, this); - } - }); - } - markExported(_name) { } - createOrReuseNamespaceScope(name, _exported, ambient, hasExportStatement) { - let scope; - if (this._namespaceScopes === undefined) { - this._namespaceScopes = new Map(); - } - else { - scope = this._namespaceScopes.get(name); - } - if (scope === undefined) { - scope = new NamespaceScope(ambient, hasExportStatement, this); - this._namespaceScopes.set(name, scope); - } - else { - scope.refresh(ambient, hasExportStatement); - } - return scope; - } - createOrReuseEnumScope(name, _exported) { - let scope; - if (this._enumScopes === undefined) { - this._enumScopes = new Map(); - } - else { - scope = this._enumScopes.get(name); - } - if (scope === undefined) { - scope = new EnumScope(this); - this._enumScopes.set(name, scope); - } - return scope; - } - _applyUses() { - for (const use of this._uses) - if (!this._applyUse(use)) - this._addUseToParent(use); - this._uses = []; - } - _applyUse(use, variables = this._variables) { - const variable = variables.get(use.location.text); - if (variable === undefined || (variable.domain & use.domain) === 0) - return false; - variable.uses.push(use); - return true; - } - _addUseToParent(_use) { } -} -class RootScope extends AbstractScope { - constructor(_exportAll, global) { - super(global); - this._exportAll = _exportAll; - this._exports = undefined; - this._innerScope = new NonRootScope(this, 1); - } - addVariable(identifier, name, selector, exported, domain) { - if (domain & 8) - return super.addVariable(identifier, name, selector, exported, domain); - return this._innerScope.addVariable(identifier, name, selector, exported, domain); - } - addUse(use, origin) { - if (origin === this._innerScope) - return super.addUse(use); - return this._innerScope.addUse(use); - } - markExported(id) { - if (this._exports === undefined) { - this._exports = [id.text]; - } - else { - this._exports.push(id.text); - } - } - end(cb) { - this._innerScope.end((value, key) => { - value.exported = value.exported || this._exportAll - || this._exports !== undefined && this._exports.includes(key.text); - value.inGlobalScope = this._global; - return cb(value, key, this); - }); - return super.end((value, key, scope) => { - value.exported = value.exported || scope === this - && this._exports !== undefined && this._exports.includes(key.text); - return cb(value, key, scope); - }); - } - getDestinationScope() { - return this; - } -} -class NonRootScope extends AbstractScope { - constructor(_parent, _boundary) { - super(false); - this._parent = _parent; - this._boundary = _boundary; - } - _addUseToParent(use) { - return this._parent.addUse(use, this); - } - getDestinationScope(selector) { - return this._boundary & selector - ? this - : this._parent.getDestinationScope(selector); - } -} -class EnumScope extends NonRootScope { - constructor(parent) { - super(parent, 1); - } - end() { - this._applyUses(); - } -} -class ConditionalTypeScope extends NonRootScope { - constructor(parent) { - super(parent, 8); - this._state = 0; - } - updateState(newState) { - this._state = newState; - } - addUse(use) { - if (this._state === 2) - return void this._uses.push(use); - return this._parent.addUse(use, this); - } -} -class FunctionScope extends NonRootScope { - constructor(parent) { - super(parent, 1); - } - beginBody() { - this._applyUses(); - } -} -class AbstractNamedExpressionScope extends NonRootScope { - constructor(_name, _domain, parent) { - super(parent, 1); - this._name = _name; - this._domain = _domain; - } - end(cb) { - this._innerScope.end(cb); - return cb({ - declarations: [this._name], - domain: this._domain, - exported: false, - uses: this._uses, - inGlobalScope: false, - }, this._name, this); - } - addUse(use, source) { - if (source !== this._innerScope) - return this._innerScope.addUse(use); - if (use.domain & this._domain && use.location.text === this._name.text) { - this._uses.push(use); - } - else { - return this._parent.addUse(use, this); - } - } - getFunctionScope() { - return this._innerScope; - } - getDestinationScope() { - return this._innerScope; - } -} -class FunctionExpressionScope extends AbstractNamedExpressionScope { - constructor(name, parent) { - super(name, 4, parent); - this._innerScope = new FunctionScope(this); - } - beginBody() { - return this._innerScope.beginBody(); - } -} -class ClassExpressionScope extends AbstractNamedExpressionScope { - constructor(name, parent) { - super(name, 4 | 2, parent); - this._innerScope = new NonRootScope(this, 1); - } -} -class BlockScope extends NonRootScope { - constructor(_functionScope, parent) { - super(parent, 2); - this._functionScope = _functionScope; - } - getFunctionScope() { - return this._functionScope; - } -} -function mapDeclaration(declaration) { - return { - declaration, - exported: true, - domain: getDeclarationDomain(declaration), - }; -} -class NamespaceScope extends NonRootScope { - constructor(_ambient, _hasExport, parent) { - super(parent, 1); - this._ambient = _ambient; - this._hasExport = _hasExport; - this._innerScope = new NonRootScope(this, 1); - this._exports = undefined; - } - finish(cb) { - return super.end(cb); - } - end(cb) { - this._innerScope.end((variable, key, scope) => { - if (scope !== this._innerScope || - !variable.exported && (!this._ambient || this._exports !== undefined && !this._exports.has(key.text))) - return cb(variable, key, scope); - const namespaceVar = this._variables.get(key.text); - if (namespaceVar === undefined) { - this._variables.set(key.text, { - declarations: variable.declarations.map(mapDeclaration), - domain: variable.domain, - uses: [...variable.uses], - }); - } - else { - outer: for (const declaration of variable.declarations) { - for (const existing of namespaceVar.declarations) - if (existing.declaration === declaration) - continue outer; - namespaceVar.declarations.push(mapDeclaration(declaration)); - } - namespaceVar.domain |= variable.domain; - for (const use of variable.uses) { - if (namespaceVar.uses.includes(use)) - continue; - namespaceVar.uses.push(use); - } - } - }); - this._applyUses(); - this._innerScope = new NonRootScope(this, 1); - } - createOrReuseNamespaceScope(name, exported, ambient, hasExportStatement) { - if (!exported && (!this._ambient || this._hasExport)) - return this._innerScope.createOrReuseNamespaceScope(name, exported, ambient || this._ambient, hasExportStatement); - return super.createOrReuseNamespaceScope(name, exported, ambient || this._ambient, hasExportStatement); - } - createOrReuseEnumScope(name, exported) { - if (!exported && (!this._ambient || this._hasExport)) - return this._innerScope.createOrReuseEnumScope(name, exported); - return super.createOrReuseEnumScope(name, exported); - } - addUse(use, source) { - if (source !== this._innerScope) - return this._innerScope.addUse(use); - this._uses.push(use); - } - refresh(ambient, hasExport) { - this._ambient = ambient; - this._hasExport = hasExport; - } - markExported(name, _as) { - if (this._exports === undefined) - this._exports = new Set(); - this._exports.add(name.text); - } - getDestinationScope() { - return this._innerScope; - } -} -function getEntityNameParent(name) { - let parent = name.parent; - while (parent.kind === ts.SyntaxKind.QualifiedName) - parent = parent.parent; - return parent; -} -class UsageWalker { - constructor() { - this._result = new Map(); - } - getUsage(sourceFile) { - const variableCallback = (variable, key) => { - this._result.set(key, variable); - }; - const isModule = ts.isExternalModule(sourceFile); - this._scope = new RootScope(sourceFile.isDeclarationFile && isModule && !containsExportStatement(sourceFile), !isModule); - const cb = (node) => { - if (util_1.isBlockScopeBoundary(node)) - return continueWithScope(node, new BlockScope(this._scope.getFunctionScope(), this._scope), handleBlockScope); - switch (node.kind) { - case ts.SyntaxKind.ClassExpression: - return continueWithScope(node, node.name !== undefined - ? new ClassExpressionScope(node.name, this._scope) - : new NonRootScope(this._scope, 1)); - case ts.SyntaxKind.ClassDeclaration: - this._handleDeclaration(node, true, 4 | 2); - return continueWithScope(node, new NonRootScope(this._scope, 1)); - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - this._handleDeclaration(node, true, 2); - return continueWithScope(node, new NonRootScope(this._scope, 4)); - case ts.SyntaxKind.EnumDeclaration: - this._handleDeclaration(node, true, 7); - return continueWithScope(node, this._scope.createOrReuseEnumScope(node.name.text, util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword))); - case ts.SyntaxKind.ModuleDeclaration: - return this._handleModule(node, continueWithScope); - case ts.SyntaxKind.MappedType: - return continueWithScope(node, new NonRootScope(this._scope, 4)); - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.ConstructorType: - case ts.SyntaxKind.FunctionType: - return this._handleFunctionLikeDeclaration(node, cb, variableCallback); - case ts.SyntaxKind.ConditionalType: - return this._handleConditionalType(node, cb, variableCallback); - case ts.SyntaxKind.VariableDeclarationList: - this._handleVariableDeclaration(node); - break; - case ts.SyntaxKind.Parameter: - if (node.parent.kind !== ts.SyntaxKind.IndexSignature && - (node.name.kind !== ts.SyntaxKind.Identifier || - node.name.originalKeywordKind !== ts.SyntaxKind.ThisKeyword)) - this._handleBindingName(node.name, false, false); - break; - case ts.SyntaxKind.EnumMember: - this._scope.addVariable(util_1.getPropertyName(node.name), node.name, 1, true, 4); - break; - case ts.SyntaxKind.ImportClause: - case ts.SyntaxKind.ImportSpecifier: - case ts.SyntaxKind.NamespaceImport: - case ts.SyntaxKind.ImportEqualsDeclaration: - this._handleDeclaration(node, false, 7 | 8); - break; - case ts.SyntaxKind.TypeParameter: - this._scope.addVariable(node.name.text, node.name, node.parent.kind === ts.SyntaxKind.InferType ? 8 : 7, false, 2); - break; - case ts.SyntaxKind.ExportSpecifier: - if (node.propertyName !== undefined) - return this._scope.markExported(node.propertyName, node.name); - return this._scope.markExported(node.name); - case ts.SyntaxKind.ExportAssignment: - if (node.expression.kind === ts.SyntaxKind.Identifier) - return this._scope.markExported(node.expression); - break; - case ts.SyntaxKind.Identifier: - const domain = getUsageDomain(node); - if (domain !== undefined) - this._scope.addUse({ domain, location: node }); - return; - } - return ts.forEachChild(node, cb); - }; - const continueWithScope = (node, scope, next = forEachChild) => { - const savedScope = this._scope; - this._scope = scope; - next(node); - this._scope.end(variableCallback); - this._scope = savedScope; - }; - const handleBlockScope = (node) => { - if (node.kind === ts.SyntaxKind.CatchClause && node.variableDeclaration !== undefined) - this._handleBindingName(node.variableDeclaration.name, true, false); - return ts.forEachChild(node, cb); - }; - ts.forEachChild(sourceFile, cb); - this._scope.end(variableCallback); - return this._result; - function forEachChild(node) { - return ts.forEachChild(node, cb); - } - } - _handleConditionalType(node, cb, varCb) { - const savedScope = this._scope; - const scope = this._scope = new ConditionalTypeScope(savedScope); - cb(node.checkType); - scope.updateState(1); - cb(node.extendsType); - scope.updateState(2); - cb(node.trueType); - scope.updateState(3); - cb(node.falseType); - scope.end(varCb); - this._scope = savedScope; - } - _handleFunctionLikeDeclaration(node, cb, varCb) { - if (node.decorators !== undefined) - node.decorators.forEach(cb); - const savedScope = this._scope; - if (node.kind === ts.SyntaxKind.FunctionDeclaration) - this._handleDeclaration(node, false, 4); - const scope = this._scope = node.kind === ts.SyntaxKind.FunctionExpression && node.name !== undefined - ? new FunctionExpressionScope(node.name, savedScope) - : new FunctionScope(savedScope); - if (node.name !== undefined) - cb(node.name); - if (node.typeParameters !== undefined) - node.typeParameters.forEach(cb); - node.parameters.forEach(cb); - if (node.type !== undefined) - cb(node.type); - if (node.body !== undefined) { - scope.beginBody(); - cb(node.body); - } - scope.end(varCb); - this._scope = savedScope; - } - _handleModule(node, next) { - if (node.flags & ts.NodeFlags.GlobalAugmentation) - return next(node, this._scope.createOrReuseNamespaceScope('-global', false, true, false)); - if (node.name.kind === ts.SyntaxKind.Identifier) { - const exported = isNamespaceExported(node); - this._scope.addVariable(node.name.text, node.name, 1, exported, 1 | 4); - const ambient = util_1.hasModifier(node.modifiers, ts.SyntaxKind.DeclareKeyword); - return next(node, this._scope.createOrReuseNamespaceScope(node.name.text, exported, ambient, ambient && namespaceHasExportStatement(node))); - } - return next(node, this._scope.createOrReuseNamespaceScope(`"${node.name.text}"`, false, true, namespaceHasExportStatement(node))); - } - _handleDeclaration(node, blockScoped, domain) { - if (node.name !== undefined) - this._scope.addVariable(node.name.text, node.name, blockScoped ? 3 : 1, util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword), domain); - } - _handleBindingName(name, blockScoped, exported) { - if (name.kind === ts.SyntaxKind.Identifier) - return this._scope.addVariable(name.text, name, blockScoped ? 3 : 1, exported, 4); - util_1.forEachDestructuringIdentifier(name, (declaration) => { - this._scope.addVariable(declaration.name.text, declaration.name, blockScoped ? 3 : 1, exported, 4); - }); - } - _handleVariableDeclaration(declarationList) { - const blockScoped = util_1.isBlockScopedVariableDeclarationList(declarationList); - const exported = declarationList.parent.kind === ts.SyntaxKind.VariableStatement && - util_1.hasModifier(declarationList.parent.modifiers, ts.SyntaxKind.ExportKeyword); - for (const declaration of declarationList.declarations) - this._handleBindingName(declaration.name, blockScoped, exported); - } -} -function isNamespaceExported(node) { - return node.parent.kind === ts.SyntaxKind.ModuleDeclaration || util_1.hasModifier(node.modifiers, ts.SyntaxKind.ExportKeyword); -} -function namespaceHasExportStatement(ns) { - if (ns.body === undefined || ns.body.kind !== ts.SyntaxKind.ModuleBlock) - return false; - return containsExportStatement(ns.body); -} -function containsExportStatement(block) { - for (const statement of block.statements) - if (statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment) - return true; - return false; -} diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/util.d.ts b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/util.d.ts deleted file mode 100644 index 1ae3299a8c..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/util.d.ts +++ /dev/null @@ -1,167 +0,0 @@ -import * as ts from 'typescript'; -import { NodeWrap } from './convert-ast'; -export declare function getChildOfKind(node: ts.Node, kind: T, sourceFile?: ts.SourceFile): ts.Token | undefined; -export declare function isTokenKind(kind: ts.SyntaxKind): boolean; -export declare function isNodeKind(kind: ts.SyntaxKind): boolean; -export declare function isAssignmentKind(kind: ts.SyntaxKind): boolean; -export declare function isTypeNodeKind(kind: ts.SyntaxKind): boolean; -export declare function isJsDocKind(kind: ts.SyntaxKind): boolean; -export declare function isKeywordKind(kind: ts.SyntaxKind): boolean; -export declare function isThisParameter(parameter: ts.ParameterDeclaration): boolean; -export declare function getModifier(node: ts.Node, kind: ts.Modifier['kind']): ts.Modifier | undefined; -export declare function hasModifier(modifiers: ts.ModifiersArray | undefined, ...kinds: Array): boolean; -export declare function isParameterProperty(node: ts.ParameterDeclaration): boolean; -export declare function hasAccessModifier(node: ts.ClassElement | ts.ParameterDeclaration): boolean; -export declare const isNodeFlagSet: (node: ts.Node, flag: ts.NodeFlags) => boolean; -export declare const isTypeFlagSet: (type: ts.Type, flag: ts.TypeFlags) => boolean; -export declare const isSymbolFlagSet: (symbol: ts.Symbol, flag: ts.SymbolFlags) => boolean; -export declare function isObjectFlagSet(objectType: ts.ObjectType, flag: ts.ObjectFlags): boolean; -export declare function isModifierFlagSet(node: ts.Node, flag: ts.ModifierFlags): boolean; -export declare function getPreviousStatement(statement: ts.Statement): ts.Statement | undefined; -export declare function getNextStatement(statement: ts.Statement): ts.Statement | undefined; -export declare function getPreviousToken(node: ts.Node, sourceFile?: ts.SourceFile): ts.Node | undefined; -export declare function getNextToken(node: ts.Node, sourceFile?: ts.SourceFile): ts.Node | undefined; -export declare function getTokenAtPosition(parent: ts.Node, pos: number, sourceFile?: ts.SourceFile, allowJsDoc?: boolean): ts.Node | undefined; -export declare function getCommentAtPosition(sourceFile: ts.SourceFile, pos: number, parent?: ts.Node): ts.CommentRange | undefined; -export declare function isPositionInComment(sourceFile: ts.SourceFile, pos: number, parent?: ts.Node): boolean; -export declare function commentText(sourceText: string, comment: ts.CommentRange): string; -export declare function getWrappedNodeAtPosition(wrap: NodeWrap, pos: number): NodeWrap | undefined; -export declare function getPropertyName(propertyName: ts.PropertyName): string | undefined; -export declare function forEachDestructuringIdentifier(pattern: ts.BindingPattern, fn: (element: ts.BindingElement & { - name: ts.Identifier; -}) => T): T | undefined; -export declare function forEachDeclaredVariable(declarationList: ts.VariableDeclarationList, cb: (element: (ts.VariableDeclaration | ts.BindingElement) & { - name: ts.Identifier; -}) => T): T | undefined; -export declare enum VariableDeclarationKind { - Var = 0, - Let = 1, - Const = 2 -} -export declare function getVariableDeclarationKind(declarationList: ts.VariableDeclarationList): VariableDeclarationKind; -export declare function isBlockScopedVariableDeclarationList(declarationList: ts.VariableDeclarationList): boolean; -export declare function isBlockScopedVariableDeclaration(declaration: ts.VariableDeclaration): boolean; -export declare function isBlockScopedDeclarationStatement(statement: ts.Statement): statement is ts.DeclarationStatement; -export declare function isInSingleStatementContext(statement: ts.Statement): boolean; -export declare enum ScopeBoundary { - None = 0, - Function = 1, - Block = 2, - Type = 4, - ConditionalType = 8 -} -export declare enum ScopeBoundarySelector { - Function = 1, - Block = 3, - Type = 7, - InferType = 8 -} -export declare function isScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function isTypeScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function isFunctionScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function isBlockScopeBoundary(node: ts.Node): ScopeBoundary; -export declare function hasOwnThisReference(node: ts.Node): boolean; -export declare function isFunctionWithBody(node: ts.Node): node is ts.FunctionLikeDeclaration & { - body: {}; -}; -export declare function forEachToken(node: ts.Node, cb: (node: ts.Node) => void, sourceFile?: ts.SourceFile): void; -export declare type ForEachTokenCallback = (fullText: string, kind: ts.SyntaxKind, range: ts.TextRange, parent: ts.Node) => void; -export declare function forEachTokenWithTrivia(node: ts.Node, cb: ForEachTokenCallback, sourceFile?: ts.SourceFile): void; -export declare type ForEachCommentCallback = (fullText: string, comment: ts.CommentRange) => void; -export declare function forEachComment(node: ts.Node, cb: ForEachCommentCallback, sourceFile?: ts.SourceFile): void; -export interface LineRange extends ts.TextRange { - contentLength: number; -} -export declare function getLineRanges(sourceFile: ts.SourceFile): LineRange[]; -export declare function getLineBreakStyle(sourceFile: ts.SourceFile): "\n" | "\r\n"; -export declare function isValidIdentifier(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidPropertyAccess(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidPropertyName(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidNumericLiteral(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isValidJsxIdentifier(text: string, languageVersion?: ts.ScriptTarget): boolean; -export declare function isNumericPropertyName(name: string | ts.__String): boolean; -export declare function isSameLine(sourceFile: ts.SourceFile, pos1: number, pos2: number): boolean; -export declare enum SideEffectOptions { - None = 0, - TaggedTemplate = 1, - Constructor = 2, - JsxElement = 4 -} -export declare function hasSideEffects(node: ts.Expression, options?: SideEffectOptions): boolean; -export declare function getDeclarationOfBindingElement(node: ts.BindingElement): ts.VariableDeclaration | ts.ParameterDeclaration; -export declare function isExpressionValueUsed(node: ts.Expression): boolean; -export declare enum AccessKind { - None = 0, - Read = 1, - Write = 2, - Delete = 4, - ReadWrite = 3, - Modification = 6 -} -export declare function getAccessKind(node: ts.Node): AccessKind; -export declare function isReassignmentTarget(node: ts.Expression): boolean; -export declare function canHaveJsDoc(node: ts.Node): node is ts.HasJSDoc; -export declare function getJsDoc(node: ts.Node, sourceFile?: ts.SourceFile): ts.JSDoc[]; -export declare function parseJsDocOfNode(node: ts.Node, considerTrailingComments?: boolean, sourceFile?: ts.SourceFile): ts.JSDoc[]; -export declare enum ImportKind { - ImportDeclaration = 1, - ImportEquals = 2, - ExportFrom = 4, - DynamicImport = 8, - Require = 16, - ImportType = 32, - All = 63, - AllImports = 59, - AllStaticImports = 3, - AllImportExpressions = 24, - AllRequireLike = 18 -} -export declare function findImports(sourceFile: ts.SourceFile, kinds: ImportKind): (ts.StringLiteral | ts.NoSubstitutionTemplateLiteral)[]; -export declare type ImportLike = ts.ImportDeclaration | (ts.ImportEqualsDeclaration & { - moduleReference: ts.ExternalModuleReference; -}) | (ts.ExportDeclaration & { - moduleSpecifier: {}; -}) | (ts.CallExpression & { - expression: ts.Token | (ts.Identifier & { - text: 'require'; - }); - arguments: [ts.Expression]; -}) | ts.ImportTypeNode; -export declare function findImportLikeNodes(sourceFile: ts.SourceFile, kinds: ImportKind): ImportLike[]; -export declare function isStatementInAmbientContext(node: ts.Statement): boolean; -export declare function isAmbientModuleBlock(node: ts.Node): node is ts.ModuleBlock; -export declare function getIIFE(func: ts.FunctionExpression | ts.ArrowFunction): ts.CallExpression | undefined; -export declare type StrictCompilerOption = 'noImplicitAny' | 'noImplicitThis' | 'strictNullChecks' | 'strictFunctionTypes' | 'strictPropertyInitialization' | 'alwaysStrict' | 'strictBindCallApply'; -export declare function isStrictCompilerOptionEnabled(options: ts.CompilerOptions, option: StrictCompilerOption): boolean; -export declare type BooleanCompilerOptions = { - [K in keyof ts.CompilerOptions]: NonNullable extends boolean ? K : never; -} extends { - [_ in keyof ts.CompilerOptions]: infer U; -} ? U : never; -export declare function isCompilerOptionEnabled(options: ts.CompilerOptions, option: BooleanCompilerOptions | 'stripInternal'): boolean; -export declare function isAmbientModule(node: ts.ModuleDeclaration): boolean; -export declare function getCheckJsDirective(source: string): ts.CheckJsDirective | undefined; -export declare function isConstAssertion(node: ts.AssertionExpression): boolean; -export declare function isInConstContext(node: ts.Expression): boolean; -export declare function isReadonlyAssignmentDeclaration(node: ts.CallExpression, checker: ts.TypeChecker): boolean; -export declare function isBindableObjectDefinePropertyCall(node: ts.CallExpression): boolean; -export interface WellKnownSymbolLiteral extends ts.PropertyAccessExpression { - expression: ts.Identifier & { - text: 'Symbol'; - escapedText: 'symbol'; - }; -} -export declare function isWellKnownSymbolLiterally(node: ts.Expression): node is WellKnownSymbolLiteral; -export interface PropertyName { - displayName: string; - symbolName: ts.__String; -} -export declare function getPropertyNameOfWellKnownSymbol(node: WellKnownSymbolLiteral): PropertyName; -export interface LateBoundPropertyNames { - known: boolean; - names: PropertyName[]; -} -export declare function getLateBoundPropertyNames(node: ts.Expression, checker: ts.TypeChecker): LateBoundPropertyNames; -export declare function getLateBoundPropertyNamesOfPropertyName(node: ts.PropertyName, checker: ts.TypeChecker): LateBoundPropertyNames; -export declare function getSingleLateBoundPropertyNameOfPropertyName(node: ts.PropertyName, checker: ts.TypeChecker): PropertyName | undefined; -export declare function unwrapParentheses(node: ts.Expression): ts.Expression; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/util.js b/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/util.js deleted file mode 100644 index 07b469a496..0000000000 --- a/node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils/util/util.js +++ /dev/null @@ -1,1422 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const ts = require("typescript"); -const node_1 = require("../typeguard/node"); -const _3_2_1 = require("../typeguard/3.2"); -const type_1 = require("./type"); -function getChildOfKind(node, kind, sourceFile) { - for (const child of node.getChildren(sourceFile)) - if (child.kind === kind) - return child; -} -exports.getChildOfKind = getChildOfKind; -function isTokenKind(kind) { - return kind >= ts.SyntaxKind.FirstToken && kind <= ts.SyntaxKind.LastToken; -} -exports.isTokenKind = isTokenKind; -function isNodeKind(kind) { - return kind >= ts.SyntaxKind.FirstNode; -} -exports.isNodeKind = isNodeKind; -function isAssignmentKind(kind) { - return kind >= ts.SyntaxKind.FirstAssignment && kind <= ts.SyntaxKind.LastAssignment; -} -exports.isAssignmentKind = isAssignmentKind; -function isTypeNodeKind(kind) { - return kind >= ts.SyntaxKind.FirstTypeNode && kind <= ts.SyntaxKind.LastTypeNode; -} -exports.isTypeNodeKind = isTypeNodeKind; -function isJsDocKind(kind) { - return kind >= ts.SyntaxKind.FirstJSDocNode && kind <= ts.SyntaxKind.LastJSDocNode; -} -exports.isJsDocKind = isJsDocKind; -function isKeywordKind(kind) { - return kind >= ts.SyntaxKind.FirstKeyword && kind <= ts.SyntaxKind.LastKeyword; -} -exports.isKeywordKind = isKeywordKind; -function isThisParameter(parameter) { - return parameter.name.kind === ts.SyntaxKind.Identifier && parameter.name.originalKeywordKind === ts.SyntaxKind.ThisKeyword; -} -exports.isThisParameter = isThisParameter; -function getModifier(node, kind) { - if (node.modifiers !== undefined) - for (const modifier of node.modifiers) - if (modifier.kind === kind) - return modifier; -} -exports.getModifier = getModifier; -function hasModifier(modifiers, ...kinds) { - if (modifiers === undefined) - return false; - for (const modifier of modifiers) - if (kinds.includes(modifier.kind)) - return true; - return false; -} -exports.hasModifier = hasModifier; -function isParameterProperty(node) { - return hasModifier(node.modifiers, ts.SyntaxKind.PublicKeyword, ts.SyntaxKind.ProtectedKeyword, ts.SyntaxKind.PrivateKeyword, ts.SyntaxKind.ReadonlyKeyword); -} -exports.isParameterProperty = isParameterProperty; -function hasAccessModifier(node) { - return hasModifier(node.modifiers, ts.SyntaxKind.PublicKeyword, ts.SyntaxKind.ProtectedKeyword, ts.SyntaxKind.PrivateKeyword); -} -exports.hasAccessModifier = hasAccessModifier; -function isFlagSet(obj, flag) { - return (obj.flags & flag) !== 0; -} -exports.isNodeFlagSet = isFlagSet; -exports.isTypeFlagSet = isFlagSet; -exports.isSymbolFlagSet = isFlagSet; -function isObjectFlagSet(objectType, flag) { - return (objectType.objectFlags & flag) !== 0; -} -exports.isObjectFlagSet = isObjectFlagSet; -function isModifierFlagSet(node, flag) { - return (ts.getCombinedModifierFlags(node) & flag) !== 0; -} -exports.isModifierFlagSet = isModifierFlagSet; -function getPreviousStatement(statement) { - const parent = statement.parent; - if (node_1.isBlockLike(parent)) { - const index = parent.statements.indexOf(statement); - if (index > 0) - return parent.statements[index - 1]; - } -} -exports.getPreviousStatement = getPreviousStatement; -function getNextStatement(statement) { - const parent = statement.parent; - if (node_1.isBlockLike(parent)) { - const index = parent.statements.indexOf(statement); - if (index < parent.statements.length) - return parent.statements[index + 1]; - } -} -exports.getNextStatement = getNextStatement; -function getPreviousToken(node, sourceFile) { - let parent = node.parent; - while (parent !== undefined && parent.pos === node.pos) - parent = parent.parent; - if (parent === undefined) - return; - outer: while (true) { - const children = parent.getChildren(sourceFile); - for (let i = children.length - 1; i >= 0; --i) { - const child = children[i]; - if (child.pos < node.pos && child.kind !== ts.SyntaxKind.JSDocComment) { - if (isTokenKind(child.kind)) - return child; - parent = child; - continue outer; - } - } - return; - } -} -exports.getPreviousToken = getPreviousToken; -function getNextToken(node, sourceFile = node.getSourceFile()) { - if (node.kind === ts.SyntaxKind.SourceFile || node.kind === ts.SyntaxKind.EndOfFileToken) - return; - const end = node.end; - node = node.parent; - while (node.end === end) { - if (node.parent === undefined) - return node.endOfFileToken; - node = node.parent; - } - return getTokenAtPositionWorker(node, end, sourceFile, false); -} -exports.getNextToken = getNextToken; -function getTokenAtPosition(parent, pos, sourceFile, allowJsDoc) { - if (pos < parent.pos || pos >= parent.end) - return; - if (isTokenKind(parent.kind)) - return parent; - if (sourceFile === undefined) - sourceFile = parent.getSourceFile(); - return getTokenAtPositionWorker(parent, pos, sourceFile, allowJsDoc === true); -} -exports.getTokenAtPosition = getTokenAtPosition; -function getTokenAtPositionWorker(node, pos, sourceFile, allowJsDoc) { - outer: while (true) { - for (const child of node.getChildren(sourceFile)) { - if (child.end > pos && (allowJsDoc || child.kind !== ts.SyntaxKind.JSDocComment)) { - if (isTokenKind(child.kind)) - return child; - node = child; - continue outer; - } - } - return; - } -} -function getCommentAtPosition(sourceFile, pos, parent = sourceFile) { - const token = getTokenAtPosition(parent, pos, sourceFile); - if (token === undefined || token.kind === ts.SyntaxKind.JsxText || pos >= token.end - (ts.tokenToString(token.kind) || '').length) - return; - const startPos = token.pos === 0 - ? (ts.getShebang(sourceFile.text) || '').length - : token.pos; - return startPos !== 0 && ts.forEachTrailingCommentRange(sourceFile.text, startPos, commentAtPositionCallback, pos) || - ts.forEachLeadingCommentRange(sourceFile.text, startPos, commentAtPositionCallback, pos); -} -exports.getCommentAtPosition = getCommentAtPosition; -function commentAtPositionCallback(pos, end, kind, _nl, at) { - return at >= pos && at < end ? { pos, end, kind } : undefined; -} -function isPositionInComment(sourceFile, pos, parent) { - return getCommentAtPosition(sourceFile, pos, parent) !== undefined; -} -exports.isPositionInComment = isPositionInComment; -function commentText(sourceText, comment) { - return sourceText.substring(comment.pos + 2, comment.kind === ts.SyntaxKind.SingleLineCommentTrivia ? comment.end : comment.end - 2); -} -exports.commentText = commentText; -function getWrappedNodeAtPosition(wrap, pos) { - if (wrap.node.pos > pos || wrap.node.end <= pos) - return; - outer: while (true) { - for (const child of wrap.children) { - if (child.node.pos > pos) - return wrap; - if (child.node.end > pos) { - wrap = child; - continue outer; - } - } - return wrap; - } -} -exports.getWrappedNodeAtPosition = getWrappedNodeAtPosition; -function getPropertyName(propertyName) { - if (propertyName.kind === ts.SyntaxKind.ComputedPropertyName) { - if (!node_1.isLiteralExpression(propertyName.expression)) - return; - if (_3_2_1.isBigIntLiteral(propertyName.expression)) - return propertyName.expression.text.slice(0, -1); - return propertyName.expression.text; - } - return propertyName.text; -} -exports.getPropertyName = getPropertyName; -function forEachDestructuringIdentifier(pattern, fn) { - for (const element of pattern.elements) { - if (element.kind !== ts.SyntaxKind.BindingElement) - continue; - let result; - if (element.name.kind === ts.SyntaxKind.Identifier) { - result = fn(element); - } - else { - result = forEachDestructuringIdentifier(element.name, fn); - } - if (result) - return result; - } -} -exports.forEachDestructuringIdentifier = forEachDestructuringIdentifier; -function forEachDeclaredVariable(declarationList, cb) { - for (const declaration of declarationList.declarations) { - let result; - if (declaration.name.kind === ts.SyntaxKind.Identifier) { - result = cb(declaration); - } - else { - result = forEachDestructuringIdentifier(declaration.name, cb); - } - if (result) - return result; - } -} -exports.forEachDeclaredVariable = forEachDeclaredVariable; -var VariableDeclarationKind; -(function (VariableDeclarationKind) { - VariableDeclarationKind[VariableDeclarationKind["Var"] = 0] = "Var"; - VariableDeclarationKind[VariableDeclarationKind["Let"] = 1] = "Let"; - VariableDeclarationKind[VariableDeclarationKind["Const"] = 2] = "Const"; -})(VariableDeclarationKind = exports.VariableDeclarationKind || (exports.VariableDeclarationKind = {})); -function getVariableDeclarationKind(declarationList) { - if (declarationList.flags & ts.NodeFlags.Let) - return 1; - if (declarationList.flags & ts.NodeFlags.Const) - return 2; - return 0; -} -exports.getVariableDeclarationKind = getVariableDeclarationKind; -function isBlockScopedVariableDeclarationList(declarationList) { - return (declarationList.flags & ts.NodeFlags.BlockScoped) !== 0; -} -exports.isBlockScopedVariableDeclarationList = isBlockScopedVariableDeclarationList; -function isBlockScopedVariableDeclaration(declaration) { - const parent = declaration.parent; - return parent.kind === ts.SyntaxKind.CatchClause || - isBlockScopedVariableDeclarationList(parent); -} -exports.isBlockScopedVariableDeclaration = isBlockScopedVariableDeclaration; -function isBlockScopedDeclarationStatement(statement) { - switch (statement.kind) { - case ts.SyntaxKind.VariableStatement: - return isBlockScopedVariableDeclarationList(statement.declarationList); - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - return true; - default: - return false; - } -} -exports.isBlockScopedDeclarationStatement = isBlockScopedDeclarationStatement; -function isInSingleStatementContext(statement) { - switch (statement.parent.kind) { - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.IfStatement: - case ts.SyntaxKind.WithStatement: - case ts.SyntaxKind.LabeledStatement: - return true; - default: - return false; - } -} -exports.isInSingleStatementContext = isInSingleStatementContext; -var ScopeBoundary; -(function (ScopeBoundary) { - ScopeBoundary[ScopeBoundary["None"] = 0] = "None"; - ScopeBoundary[ScopeBoundary["Function"] = 1] = "Function"; - ScopeBoundary[ScopeBoundary["Block"] = 2] = "Block"; - ScopeBoundary[ScopeBoundary["Type"] = 4] = "Type"; - ScopeBoundary[ScopeBoundary["ConditionalType"] = 8] = "ConditionalType"; -})(ScopeBoundary = exports.ScopeBoundary || (exports.ScopeBoundary = {})); -var ScopeBoundarySelector; -(function (ScopeBoundarySelector) { - ScopeBoundarySelector[ScopeBoundarySelector["Function"] = 1] = "Function"; - ScopeBoundarySelector[ScopeBoundarySelector["Block"] = 3] = "Block"; - ScopeBoundarySelector[ScopeBoundarySelector["Type"] = 7] = "Type"; - ScopeBoundarySelector[ScopeBoundarySelector["InferType"] = 8] = "InferType"; -})(ScopeBoundarySelector = exports.ScopeBoundarySelector || (exports.ScopeBoundarySelector = {})); -function isScopeBoundary(node) { - return isFunctionScopeBoundary(node) || isBlockScopeBoundary(node) || isTypeScopeBoundary(node); -} -exports.isScopeBoundary = isScopeBoundary; -function isTypeScopeBoundary(node) { - switch (node.kind) { - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.MappedType: - return 4; - case ts.SyntaxKind.ConditionalType: - return 8; - default: - return 0; - } -} -exports.isTypeScopeBoundary = isTypeScopeBoundary; -function isFunctionScopeBoundary(node) { - switch (node.kind) { - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.ConstructorType: - case ts.SyntaxKind.FunctionType: - return 1; - case ts.SyntaxKind.SourceFile: - return ts.isExternalModule(node) ? 1 : 0; - default: - return 0; - } -} -exports.isFunctionScopeBoundary = isFunctionScopeBoundary; -function isBlockScopeBoundary(node) { - switch (node.kind) { - case ts.SyntaxKind.Block: - const parent = node.parent; - return parent.kind !== ts.SyntaxKind.CatchClause && - (parent.kind === ts.SyntaxKind.SourceFile || - !isFunctionScopeBoundary(parent)) - ? 2 - : 0; - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.CaseBlock: - case ts.SyntaxKind.CatchClause: - case ts.SyntaxKind.WithStatement: - return 2; - default: - return 0; - } -} -exports.isBlockScopeBoundary = isBlockScopeBoundary; -function hasOwnThisReference(node) { - switch (node.kind) { - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.FunctionExpression: - return true; - case ts.SyntaxKind.FunctionDeclaration: - return node.body !== undefined; - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - return node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression; - default: - return false; - } -} -exports.hasOwnThisReference = hasOwnThisReference; -function isFunctionWithBody(node) { - switch (node.kind) { - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.Constructor: - return node.body !== undefined; - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.ArrowFunction: - return true; - default: - return false; - } -} -exports.isFunctionWithBody = isFunctionWithBody; -function forEachToken(node, cb, sourceFile = node.getSourceFile()) { - return (function iterate(child) { - if (isTokenKind(child.kind)) - return cb(child); - if (child.kind !== ts.SyntaxKind.JSDocComment) - return child.getChildren(sourceFile).forEach(iterate); - })(node); -} -exports.forEachToken = forEachToken; -function forEachTokenWithTrivia(node, cb, sourceFile = node.getSourceFile()) { - const fullText = sourceFile.text; - const scanner = ts.createScanner(sourceFile.languageVersion, false, sourceFile.languageVariant, fullText); - return forEachToken(node, (token) => { - const tokenStart = token.kind === ts.SyntaxKind.JsxText || token.pos === token.end ? token.pos : token.getStart(sourceFile); - if (tokenStart !== token.pos) { - scanner.setTextPos(token.pos); - let kind = scanner.scan(); - let pos = scanner.getTokenPos(); - while (pos < tokenStart) { - const textPos = scanner.getTextPos(); - cb(fullText, kind, { pos, end: textPos }, token.parent); - if (textPos === tokenStart) - break; - kind = scanner.scan(); - pos = scanner.getTokenPos(); - } - } - return cb(fullText, token.kind, { end: token.end, pos: tokenStart }, token.parent); - }, sourceFile); -} -exports.forEachTokenWithTrivia = forEachTokenWithTrivia; -function forEachComment(node, cb, sourceFile = node.getSourceFile()) { - const fullText = sourceFile.text; - const notJsx = sourceFile.languageVariant !== ts.LanguageVariant.JSX; - return forEachToken(node, (token) => { - if (token.pos === token.end) - return; - if (token.kind !== ts.SyntaxKind.JsxText) - ts.forEachLeadingCommentRange(fullText, token.pos === 0 ? (ts.getShebang(fullText) || '').length : token.pos, commentCallback); - if (notJsx || canHaveTrailingTrivia(token)) - return ts.forEachTrailingCommentRange(fullText, token.end, commentCallback); - }, sourceFile); - function commentCallback(pos, end, kind) { - cb(fullText, { pos, end, kind }); - } -} -exports.forEachComment = forEachComment; -function canHaveTrailingTrivia(token) { - switch (token.kind) { - case ts.SyntaxKind.CloseBraceToken: - return token.parent.kind !== ts.SyntaxKind.JsxExpression || !isJsxElementOrFragment(token.parent.parent); - case ts.SyntaxKind.GreaterThanToken: - switch (token.parent.kind) { - case ts.SyntaxKind.JsxOpeningElement: - return token.end !== token.parent.end; - case ts.SyntaxKind.JsxOpeningFragment: - return false; - case ts.SyntaxKind.JsxSelfClosingElement: - return token.end !== token.parent.end || - !isJsxElementOrFragment(token.parent.parent); - case ts.SyntaxKind.JsxClosingElement: - case ts.SyntaxKind.JsxClosingFragment: - return !isJsxElementOrFragment(token.parent.parent.parent); - } - } - return true; -} -function isJsxElementOrFragment(node) { - return node.kind === ts.SyntaxKind.JsxElement || node.kind === ts.SyntaxKind.JsxFragment; -} -function getLineRanges(sourceFile) { - const lineStarts = sourceFile.getLineStarts(); - const result = []; - const length = lineStarts.length; - const sourceText = sourceFile.text; - let pos = 0; - for (let i = 1; i < length; ++i) { - const end = lineStarts[i]; - let lineEnd = end; - for (; lineEnd > pos; --lineEnd) - if (!ts.isLineBreak(sourceText.charCodeAt(lineEnd - 1))) - break; - result.push({ - pos, - end, - contentLength: lineEnd - pos, - }); - pos = end; - } - result.push({ - pos, - end: sourceFile.end, - contentLength: sourceFile.end - pos, - }); - return result; -} -exports.getLineRanges = getLineRanges; -function getLineBreakStyle(sourceFile) { - const lineStarts = sourceFile.getLineStarts(); - return lineStarts.length === 1 || lineStarts[1] < 2 || sourceFile.text[lineStarts[1] - 2] !== '\r' - ? '\n' - : '\r\n'; -} -exports.getLineBreakStyle = getLineBreakStyle; -let cachedScanner; -function scanToken(text, languageVersion) { - if (cachedScanner === undefined) { - cachedScanner = ts.createScanner(languageVersion, false, undefined, text); - } - else { - cachedScanner.setScriptTarget(languageVersion); - cachedScanner.setText(text); - } - cachedScanner.scan(); - return cachedScanner; -} -function isValidIdentifier(text, languageVersion = ts.ScriptTarget.Latest) { - const scan = scanToken(text, languageVersion); - return scan.isIdentifier() && scan.getTextPos() === text.length && scan.getTokenPos() === 0; -} -exports.isValidIdentifier = isValidIdentifier; -function charSize(ch) { - return ch >= 0x10000 ? 2 : 1; -} -function isValidPropertyAccess(text, languageVersion = ts.ScriptTarget.Latest) { - if (text.length === 0) - return false; - let ch = text.codePointAt(0); - if (!ts.isIdentifierStart(ch, languageVersion)) - return false; - for (let i = charSize(ch); i < text.length; i += charSize(ch)) { - ch = text.codePointAt(i); - if (!ts.isIdentifierPart(ch, languageVersion)) - return false; - } - return true; -} -exports.isValidPropertyAccess = isValidPropertyAccess; -function isValidPropertyName(text, languageVersion = ts.ScriptTarget.Latest) { - if (isValidPropertyAccess(text, languageVersion)) - return true; - const scan = scanToken(text, languageVersion); - return scan.getTextPos() === text.length && - scan.getToken() === ts.SyntaxKind.NumericLiteral && scan.getTokenValue() === text; -} -exports.isValidPropertyName = isValidPropertyName; -function isValidNumericLiteral(text, languageVersion = ts.ScriptTarget.Latest) { - const scan = scanToken(text, languageVersion); - return scan.getToken() === ts.SyntaxKind.NumericLiteral && scan.getTextPos() === text.length && scan.getTokenPos() === 0; -} -exports.isValidNumericLiteral = isValidNumericLiteral; -function isValidJsxIdentifier(text, languageVersion = ts.ScriptTarget.Latest) { - if (text.length === 0) - return false; - let ch = text.codePointAt(0); - if (!ts.isIdentifierStart(ch, languageVersion)) - return false; - for (let i = charSize(ch); i < text.length; i += charSize(ch)) { - ch = text.codePointAt(i); - if (!ts.isIdentifierPart(ch, languageVersion) && ch !== 45) - return false; - } - return true; -} -exports.isValidJsxIdentifier = isValidJsxIdentifier; -function isNumericPropertyName(name) { - return String(+name) === name; -} -exports.isNumericPropertyName = isNumericPropertyName; -function isSameLine(sourceFile, pos1, pos2) { - return ts.getLineAndCharacterOfPosition(sourceFile, pos1).line === ts.getLineAndCharacterOfPosition(sourceFile, pos2).line; -} -exports.isSameLine = isSameLine; -var SideEffectOptions; -(function (SideEffectOptions) { - SideEffectOptions[SideEffectOptions["None"] = 0] = "None"; - SideEffectOptions[SideEffectOptions["TaggedTemplate"] = 1] = "TaggedTemplate"; - SideEffectOptions[SideEffectOptions["Constructor"] = 2] = "Constructor"; - SideEffectOptions[SideEffectOptions["JsxElement"] = 4] = "JsxElement"; -})(SideEffectOptions = exports.SideEffectOptions || (exports.SideEffectOptions = {})); -function hasSideEffects(node, options) { - switch (node.kind) { - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.PostfixUnaryExpression: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.YieldExpression: - case ts.SyntaxKind.DeleteExpression: - return true; - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.AsExpression: - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.NonNullExpression: - case ts.SyntaxKind.VoidExpression: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.PropertyAccessExpression: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.PartiallyEmittedExpression: - return hasSideEffects(node.expression, options); - case ts.SyntaxKind.BinaryExpression: - return isAssignmentKind(node.operatorToken.kind) || - hasSideEffects(node.left, options) || - hasSideEffects(node.right, options); - case ts.SyntaxKind.PrefixUnaryExpression: - switch (node.operator) { - case ts.SyntaxKind.PlusPlusToken: - case ts.SyntaxKind.MinusMinusToken: - return true; - default: - return hasSideEffects(node.operand, options); - } - case ts.SyntaxKind.ElementAccessExpression: - return hasSideEffects(node.expression, options) || - node.argumentExpression !== undefined && - hasSideEffects(node.argumentExpression, options); - case ts.SyntaxKind.ConditionalExpression: - return hasSideEffects(node.condition, options) || - hasSideEffects(node.whenTrue, options) || - hasSideEffects(node.whenFalse, options); - case ts.SyntaxKind.NewExpression: - if (options & 2 || hasSideEffects(node.expression, options)) - return true; - if (node.arguments !== undefined) - for (const child of node.arguments) - if (hasSideEffects(child, options)) - return true; - return false; - case ts.SyntaxKind.TaggedTemplateExpression: - if (options & 1 || hasSideEffects(node.tag, options)) - return true; - if (node.template.kind === ts.SyntaxKind.NoSubstitutionTemplateLiteral) - return false; - node = node.template; - case ts.SyntaxKind.TemplateExpression: - for (const child of node.templateSpans) - if (hasSideEffects(child.expression, options)) - return true; - return false; - case ts.SyntaxKind.ClassExpression: - return classExpressionHasSideEffects(node, options); - case ts.SyntaxKind.ArrayLiteralExpression: - for (const child of node.elements) - if (hasSideEffects(child, options)) - return true; - return false; - case ts.SyntaxKind.ObjectLiteralExpression: - for (const child of node.properties) { - if (child.name !== undefined && child.name.kind === ts.SyntaxKind.ComputedPropertyName && - hasSideEffects(child.name.expression, options)) - return true; - switch (child.kind) { - case ts.SyntaxKind.PropertyAssignment: - if (hasSideEffects(child.initializer, options)) - return true; - break; - case ts.SyntaxKind.SpreadAssignment: - if (hasSideEffects(child.expression, options)) - return true; - } - } - return false; - case ts.SyntaxKind.JsxExpression: - return node.expression !== undefined && hasSideEffects(node.expression, options); - case ts.SyntaxKind.JsxElement: - case ts.SyntaxKind.JsxFragment: - for (const child of node.children) - if (child.kind !== ts.SyntaxKind.JsxText && hasSideEffects(child, options)) - return true; - if (node.kind === ts.SyntaxKind.JsxFragment) - return false; - node = node.openingElement; - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.JsxOpeningElement: - if (options & 4) - return true; - for (const child of node.attributes.properties) { - if (child.kind === ts.SyntaxKind.JsxSpreadAttribute) { - if (hasSideEffects(child.expression, options)) - return true; - } - else if (child.initializer !== undefined && hasSideEffects(child.initializer, options)) { - return true; - } - } - return false; - case ts.SyntaxKind.CommaListExpression: - for (const child of node.elements) - if (hasSideEffects(child, options)) - return true; - return false; - default: - return false; - } -} -exports.hasSideEffects = hasSideEffects; -function classExpressionHasSideEffects(node, options) { - if (node.heritageClauses !== undefined && node.heritageClauses[0].token === ts.SyntaxKind.ExtendsKeyword) - for (const base of node.heritageClauses[0].types) - if (hasSideEffects(base.expression, options)) - return true; - for (const child of node.members) - if (child.name !== undefined && child.name.kind === ts.SyntaxKind.ComputedPropertyName && - hasSideEffects(child.name.expression, options) || - node_1.isPropertyDeclaration(child) && child.initializer !== undefined && - hasSideEffects(child.initializer, options)) - return true; - return false; -} -function getDeclarationOfBindingElement(node) { - let parent = node.parent.parent; - while (parent.kind === ts.SyntaxKind.BindingElement) - parent = parent.parent.parent; - return parent; -} -exports.getDeclarationOfBindingElement = getDeclarationOfBindingElement; -function isExpressionValueUsed(node) { - while (true) { - const parent = node.parent; - switch (parent.kind) { - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.ElementAccessExpression: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.WithStatement: - case ts.SyntaxKind.ThrowStatement: - case ts.SyntaxKind.ReturnStatement: - case ts.SyntaxKind.JsxExpression: - case ts.SyntaxKind.JsxSpreadAttribute: - case ts.SyntaxKind.JsxElement: - case ts.SyntaxKind.JsxFragment: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.ComputedPropertyName: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.ExportSpecifier: - case ts.SyntaxKind.ExportAssignment: - case ts.SyntaxKind.ImportDeclaration: - case ts.SyntaxKind.ExternalModuleReference: - case ts.SyntaxKind.Decorator: - case ts.SyntaxKind.TaggedTemplateExpression: - case ts.SyntaxKind.TemplateSpan: - case ts.SyntaxKind.ExpressionWithTypeArguments: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.YieldExpression: - case ts.SyntaxKind.LiteralType: - case ts.SyntaxKind.JsxAttributes: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxClosingElement: - case ts.SyntaxKind.IfStatement: - case ts.SyntaxKind.CaseClause: - case ts.SyntaxKind.SwitchStatement: - return true; - case ts.SyntaxKind.PropertyAccessExpression: - return parent.expression === node; - case ts.SyntaxKind.QualifiedName: - return parent.left === node; - case ts.SyntaxKind.ShorthandPropertyAssignment: - return parent.objectAssignmentInitializer === node || - !isInDestructuringAssignment(parent); - case ts.SyntaxKind.PropertyAssignment: - return parent.initializer === node && !isInDestructuringAssignment(parent); - case ts.SyntaxKind.SpreadAssignment: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.ArrayLiteralExpression: - return !isInDestructuringAssignment(parent); - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.AsExpression: - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.PostfixUnaryExpression: - case ts.SyntaxKind.PrefixUnaryExpression: - case ts.SyntaxKind.NonNullExpression: - node = parent; - break; - case ts.SyntaxKind.ForStatement: - return parent.condition === node; - case ts.SyntaxKind.ForInStatement: - case ts.SyntaxKind.ForOfStatement: - return parent.expression === node; - case ts.SyntaxKind.ConditionalExpression: - if (parent.condition === node) - return true; - node = parent; - break; - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.EnumMember: - return parent.initializer === node; - case ts.SyntaxKind.ImportEqualsDeclaration: - return parent.moduleReference === node; - case ts.SyntaxKind.CommaListExpression: - if (parent.elements[parent.elements.length - 1] !== node) - return false; - node = parent; - break; - case ts.SyntaxKind.BinaryExpression: - if (parent.right === node) { - if (parent.operatorToken.kind === ts.SyntaxKind.CommaToken) { - node = parent; - break; - } - return true; - } - switch (parent.operatorToken.kind) { - case ts.SyntaxKind.CommaToken: - case ts.SyntaxKind.EqualsToken: - return false; - case ts.SyntaxKind.EqualsEqualsEqualsToken: - case ts.SyntaxKind.EqualsEqualsToken: - case ts.SyntaxKind.ExclamationEqualsEqualsToken: - case ts.SyntaxKind.ExclamationEqualsToken: - case ts.SyntaxKind.InstanceOfKeyword: - case ts.SyntaxKind.PlusToken: - case ts.SyntaxKind.MinusToken: - case ts.SyntaxKind.AsteriskToken: - case ts.SyntaxKind.SlashToken: - case ts.SyntaxKind.PercentToken: - case ts.SyntaxKind.AsteriskAsteriskToken: - case ts.SyntaxKind.GreaterThanToken: - case ts.SyntaxKind.GreaterThanGreaterThanToken: - case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken: - case ts.SyntaxKind.GreaterThanEqualsToken: - case ts.SyntaxKind.LessThanToken: - case ts.SyntaxKind.LessThanLessThanToken: - case ts.SyntaxKind.LessThanEqualsToken: - case ts.SyntaxKind.AmpersandToken: - case ts.SyntaxKind.BarToken: - case ts.SyntaxKind.CaretToken: - case ts.SyntaxKind.BarBarToken: - case ts.SyntaxKind.AmpersandAmpersandToken: - case ts.SyntaxKind.InKeyword: - return true; - default: - node = parent; - } - break; - default: - return false; - } - } -} -exports.isExpressionValueUsed = isExpressionValueUsed; -function isInDestructuringAssignment(node) { - switch (node.kind) { - case ts.SyntaxKind.ShorthandPropertyAssignment: - if (node.objectAssignmentInitializer !== undefined) - return true; - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.SpreadAssignment: - node = node.parent; - break; - case ts.SyntaxKind.SpreadElement: - if (node.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) - return false; - node = node.parent; - } - while (true) { - switch (node.parent.kind) { - case ts.SyntaxKind.BinaryExpression: - return node.parent.left === node && - node.parent.operatorToken.kind === ts.SyntaxKind.EqualsToken; - case ts.SyntaxKind.ForOfStatement: - return node.parent.initializer === node; - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.ObjectLiteralExpression: - node = node.parent; - break; - case ts.SyntaxKind.SpreadAssignment: - case ts.SyntaxKind.PropertyAssignment: - node = node.parent.parent; - break; - case ts.SyntaxKind.SpreadElement: - if (node.parent.parent.kind !== ts.SyntaxKind.ArrayLiteralExpression) - return false; - node = node.parent.parent; - break; - default: - return false; - } - } -} -var AccessKind; -(function (AccessKind) { - AccessKind[AccessKind["None"] = 0] = "None"; - AccessKind[AccessKind["Read"] = 1] = "Read"; - AccessKind[AccessKind["Write"] = 2] = "Write"; - AccessKind[AccessKind["Delete"] = 4] = "Delete"; - AccessKind[AccessKind["ReadWrite"] = 3] = "ReadWrite"; - AccessKind[AccessKind["Modification"] = 6] = "Modification"; -})(AccessKind = exports.AccessKind || (exports.AccessKind = {})); -function getAccessKind(node) { - const parent = node.parent; - switch (parent.kind) { - case ts.SyntaxKind.DeleteExpression: - return 4; - case ts.SyntaxKind.PostfixUnaryExpression: - return 3; - case ts.SyntaxKind.PrefixUnaryExpression: - return parent.operator === ts.SyntaxKind.PlusPlusToken || - parent.operator === ts.SyntaxKind.MinusMinusToken - ? 3 - : 1; - case ts.SyntaxKind.BinaryExpression: - return parent.right === node - ? 1 - : !isAssignmentKind(parent.operatorToken.kind) - ? 1 - : parent.operatorToken.kind === ts.SyntaxKind.EqualsToken - ? 2 - : 3; - case ts.SyntaxKind.ShorthandPropertyAssignment: - return parent.objectAssignmentInitializer === node - ? 1 - : isInDestructuringAssignment(parent) - ? 2 - : 1; - case ts.SyntaxKind.PropertyAssignment: - return parent.name === node - ? 0 - : isInDestructuringAssignment(parent) - ? 2 - : 1; - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.SpreadElement: - case ts.SyntaxKind.SpreadAssignment: - return isInDestructuringAssignment(parent) - ? 2 - : 1; - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.NonNullExpression: - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.AsExpression: - return getAccessKind(parent); - case ts.SyntaxKind.ForOfStatement: - case ts.SyntaxKind.ForInStatement: - return parent.initializer === node - ? 2 - : 1; - case ts.SyntaxKind.ExpressionWithTypeArguments: - return parent.parent.token === ts.SyntaxKind.ExtendsKeyword && - parent.parent.parent.kind !== ts.SyntaxKind.InterfaceDeclaration - ? 1 - : 0; - case ts.SyntaxKind.ComputedPropertyName: - case ts.SyntaxKind.ExpressionStatement: - case ts.SyntaxKind.TypeOfExpression: - case ts.SyntaxKind.ElementAccessExpression: - case ts.SyntaxKind.ForStatement: - case ts.SyntaxKind.IfStatement: - case ts.SyntaxKind.DoStatement: - case ts.SyntaxKind.WhileStatement: - case ts.SyntaxKind.SwitchStatement: - case ts.SyntaxKind.WithStatement: - case ts.SyntaxKind.ThrowStatement: - case ts.SyntaxKind.CallExpression: - case ts.SyntaxKind.NewExpression: - case ts.SyntaxKind.TaggedTemplateExpression: - case ts.SyntaxKind.JsxExpression: - case ts.SyntaxKind.Decorator: - case ts.SyntaxKind.TemplateSpan: - case ts.SyntaxKind.JsxOpeningElement: - case ts.SyntaxKind.JsxSelfClosingElement: - case ts.SyntaxKind.JsxSpreadAttribute: - case ts.SyntaxKind.VoidExpression: - case ts.SyntaxKind.ReturnStatement: - case ts.SyntaxKind.AwaitExpression: - case ts.SyntaxKind.YieldExpression: - case ts.SyntaxKind.ConditionalExpression: - case ts.SyntaxKind.CaseClause: - case ts.SyntaxKind.JsxElement: - return 1; - case ts.SyntaxKind.ArrowFunction: - return parent.body === node - ? 1 - : 2; - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.VariableDeclaration: - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.BindingElement: - case ts.SyntaxKind.JsxAttribute: - return parent.initializer === node - ? 1 - : 0; - case ts.SyntaxKind.PropertyAccessExpression: - return parent.expression === node - ? 1 - : 0; - case ts.SyntaxKind.ExportAssignment: - return parent.isExportEquals - ? 1 - : 0; - } - return 0; -} -exports.getAccessKind = getAccessKind; -function isReassignmentTarget(node) { - return (getAccessKind(node) & 2) !== 0; -} -exports.isReassignmentTarget = isReassignmentTarget; -function canHaveJsDoc(node) { - const kind = node.kind; - switch (kind) { - case ts.SyntaxKind.Parameter: - case ts.SyntaxKind.CallSignature: - case ts.SyntaxKind.ConstructSignature: - case ts.SyntaxKind.MethodSignature: - case ts.SyntaxKind.PropertySignature: - case ts.SyntaxKind.ArrowFunction: - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.SpreadAssignment: - case ts.SyntaxKind.ShorthandPropertyAssignment: - case ts.SyntaxKind.PropertyAssignment: - case ts.SyntaxKind.FunctionExpression: - case ts.SyntaxKind.FunctionDeclaration: - case ts.SyntaxKind.LabeledStatement: - case ts.SyntaxKind.ExpressionStatement: - case ts.SyntaxKind.VariableStatement: - case ts.SyntaxKind.Constructor: - case ts.SyntaxKind.MethodDeclaration: - case ts.SyntaxKind.PropertyDeclaration: - case ts.SyntaxKind.GetAccessor: - case ts.SyntaxKind.SetAccessor: - case ts.SyntaxKind.ClassDeclaration: - case ts.SyntaxKind.ClassExpression: - case ts.SyntaxKind.InterfaceDeclaration: - case ts.SyntaxKind.TypeAliasDeclaration: - case ts.SyntaxKind.EnumMember: - case ts.SyntaxKind.EnumDeclaration: - case ts.SyntaxKind.ModuleDeclaration: - case ts.SyntaxKind.ImportEqualsDeclaration: - case ts.SyntaxKind.IndexSignature: - case ts.SyntaxKind.FunctionType: - case ts.SyntaxKind.ConstructorType: - case ts.SyntaxKind.JSDocFunctionType: - case ts.SyntaxKind.EndOfFileToken: - case ts.SyntaxKind.ExportDeclaration: - return true; - default: - return false; - } -} -exports.canHaveJsDoc = canHaveJsDoc; -function getJsDoc(node, sourceFile) { - if (node.kind === ts.SyntaxKind.EndOfFileToken) - return parseJsDocWorker(node, sourceFile || node.parent); - const result = []; - for (const child of node.getChildren(sourceFile)) { - if (!node_1.isJsDoc(child)) - break; - result.push(child); - } - return result; -} -exports.getJsDoc = getJsDoc; -function parseJsDocOfNode(node, considerTrailingComments, sourceFile = node.getSourceFile()) { - if (canHaveJsDoc(node) && node.kind !== ts.SyntaxKind.EndOfFileToken) { - const result = getJsDoc(node, sourceFile); - if (result.length !== 0 || !considerTrailingComments) - return result; - } - return parseJsDocWorker(node, sourceFile, considerTrailingComments); -} -exports.parseJsDocOfNode = parseJsDocOfNode; -function parseJsDocWorker(node, sourceFile, considerTrailingComments) { - const nodeStart = node.getStart(sourceFile); - const start = ts[considerTrailingComments && isSameLine(sourceFile, node.pos, nodeStart) - ? 'forEachTrailingCommentRange' - : 'forEachLeadingCommentRange'](sourceFile.text, node.pos, (pos, _end, kind) => kind === ts.SyntaxKind.MultiLineCommentTrivia && sourceFile.text[pos + 2] === '*' ? { pos } : undefined); - if (start === undefined) - return []; - const startPos = start.pos; - const text = sourceFile.text.slice(startPos, nodeStart); - const newSourceFile = ts.createSourceFile('jsdoc.ts', `${text}var a;`, sourceFile.languageVersion); - const result = getJsDoc(newSourceFile.statements[0], newSourceFile); - for (const doc of result) - updateNode(doc, node); - return result; - function updateNode(n, parent) { - n.pos += startPos; - n.end += startPos; - n.parent = parent; - return ts.forEachChild(n, (child) => updateNode(child, n), (children) => { - children.pos += startPos; - children.end += startPos; - for (const child of children) - updateNode(child, n); - }); - } -} -var ImportKind; -(function (ImportKind) { - ImportKind[ImportKind["ImportDeclaration"] = 1] = "ImportDeclaration"; - ImportKind[ImportKind["ImportEquals"] = 2] = "ImportEquals"; - ImportKind[ImportKind["ExportFrom"] = 4] = "ExportFrom"; - ImportKind[ImportKind["DynamicImport"] = 8] = "DynamicImport"; - ImportKind[ImportKind["Require"] = 16] = "Require"; - ImportKind[ImportKind["ImportType"] = 32] = "ImportType"; - ImportKind[ImportKind["All"] = 63] = "All"; - ImportKind[ImportKind["AllImports"] = 59] = "AllImports"; - ImportKind[ImportKind["AllStaticImports"] = 3] = "AllStaticImports"; - ImportKind[ImportKind["AllImportExpressions"] = 24] = "AllImportExpressions"; - ImportKind[ImportKind["AllRequireLike"] = 18] = "AllRequireLike"; - ImportKind[ImportKind["AllNestedImports"] = 56] = "AllNestedImports"; - ImportKind[ImportKind["AllTopLevelImports"] = 7] = "AllTopLevelImports"; -})(ImportKind = exports.ImportKind || (exports.ImportKind = {})); -function findImports(sourceFile, kinds) { - const result = []; - for (const node of findImportLikeNodes(sourceFile, kinds)) { - switch (node.kind) { - case ts.SyntaxKind.ImportDeclaration: - addIfTextualLiteral(node.moduleSpecifier); - break; - case ts.SyntaxKind.ImportEqualsDeclaration: - addIfTextualLiteral(node.moduleReference.expression); - break; - case ts.SyntaxKind.ExportDeclaration: - addIfTextualLiteral(node.moduleSpecifier); - break; - case ts.SyntaxKind.CallExpression: - addIfTextualLiteral(node.arguments[0]); - break; - case ts.SyntaxKind.ImportType: - if (node_1.isLiteralTypeNode(node.argument)) - addIfTextualLiteral(node.argument.literal); - break; - default: - throw new Error('unexpected node'); - } - } - return result; - function addIfTextualLiteral(node) { - if (node_1.isTextualLiteral(node)) - result.push(node); - } -} -exports.findImports = findImports; -function findImportLikeNodes(sourceFile, kinds) { - return new ImportFinder(sourceFile, kinds).find(); -} -exports.findImportLikeNodes = findImportLikeNodes; -class ImportFinder { - constructor(_sourceFile, _options) { - this._sourceFile = _sourceFile; - this._options = _options; - this._result = []; - } - find() { - if (this._sourceFile.isDeclarationFile) - this._options &= ~24; - if (this._options & 7) - this._findImports(this._sourceFile.statements); - if (this._options & 56) - this._findNestedImports(); - return this._result; - } - _findImports(statements) { - for (const statement of statements) { - if (node_1.isImportDeclaration(statement)) { - if (this._options & 1) - this._result.push(statement); - } - else if (node_1.isImportEqualsDeclaration(statement)) { - if (this._options & 2 && - statement.moduleReference.kind === ts.SyntaxKind.ExternalModuleReference) - this._result.push(statement); - } - else if (node_1.isExportDeclaration(statement)) { - if (statement.moduleSpecifier !== undefined && this._options & 4) - this._result.push(statement); - } - else if (node_1.isModuleDeclaration(statement)) { - this._findImportsInModule(statement); - } - } - } - _findImportsInModule(declaration) { - if (declaration.body === undefined) - return; - if (declaration.body.kind === ts.SyntaxKind.ModuleDeclaration) - return this._findImportsInModule(declaration.body); - this._findImports(declaration.body.statements); - } - _findNestedImports() { - let re; - if ((this._options & 56) === 16) { - re = /\brequire\s*[ { - if (kind === ts.SyntaxKind.SingleLineCommentTrivia) { - const text = source.slice(pos, end); - const match = /^\/{2,3}\s*@ts-(no)?check(?:\s|$)/i.exec(text); - if (match !== null) - directive = { pos, end, enabled: match[1] === undefined }; - } - }); - return directive; -} -exports.getCheckJsDirective = getCheckJsDirective; -function isConstAssertion(node) { - return node_1.isTypeReferenceNode(node.type) && - node.type.typeName.kind === ts.SyntaxKind.Identifier && - node.type.typeName.escapedText === 'const'; -} -exports.isConstAssertion = isConstAssertion; -function isInConstContext(node) { - let current = node; - while (true) { - const parent = current.parent; - outer: switch (parent.kind) { - case ts.SyntaxKind.TypeAssertionExpression: - case ts.SyntaxKind.AsExpression: - return isConstAssertion(parent); - case ts.SyntaxKind.PrefixUnaryExpression: - if (current.kind !== ts.SyntaxKind.NumericLiteral) - return false; - switch (parent.operator) { - case ts.SyntaxKind.PlusToken: - case ts.SyntaxKind.MinusToken: - current = parent; - break outer; - default: - return false; - } - case ts.SyntaxKind.PropertyAssignment: - if (parent.initializer !== current) - return false; - current = parent.parent; - break; - case ts.SyntaxKind.ShorthandPropertyAssignment: - current = parent.parent; - break; - case ts.SyntaxKind.ParenthesizedExpression: - case ts.SyntaxKind.ArrayLiteralExpression: - case ts.SyntaxKind.ObjectLiteralExpression: - current = parent; - break; - default: - return false; - } - } -} -exports.isInConstContext = isInConstContext; -function isReadonlyAssignmentDeclaration(node, checker) { - if (!isBindableObjectDefinePropertyCall(node)) - return false; - const descriptorType = checker.getTypeAtLocation(node.arguments[2]); - if (descriptorType.getProperty('value') === undefined) - return descriptorType.getProperty('set') === undefined; - const writableProp = descriptorType.getProperty('writable'); - if (writableProp === undefined) - return false; - const writableType = writableProp.valueDeclaration !== undefined && node_1.isPropertyAssignment(writableProp.valueDeclaration) - ? checker.getTypeAtLocation(writableProp.valueDeclaration.initializer) - : checker.getTypeOfSymbolAtLocation(writableProp, node.arguments[2]); - return type_1.isBooleanLiteralType(writableType, false); -} -exports.isReadonlyAssignmentDeclaration = isReadonlyAssignmentDeclaration; -function isBindableObjectDefinePropertyCall(node) { - return node.arguments.length === 3 && - node_1.isEntityNameExpression(node.arguments[0]) && - node_1.isNumericOrStringLikeLiteral(node.arguments[1]) && - node_1.isPropertyAccessExpression(node.expression) && - node.expression.name.escapedText === 'defineProperty' && - node_1.isIdentifier(node.expression.expression) && - node.expression.expression.escapedText === 'Object'; -} -exports.isBindableObjectDefinePropertyCall = isBindableObjectDefinePropertyCall; -function isWellKnownSymbolLiterally(node) { - return ts.isPropertyAccessExpression(node) && - ts.isIdentifier(node.expression) && - node.expression.escapedText === 'Symbol'; -} -exports.isWellKnownSymbolLiterally = isWellKnownSymbolLiterally; -function getPropertyNameOfWellKnownSymbol(node) { - return { - displayName: `[Symbol.${node.name.text}]`, - symbolName: ('__@' + node.name.text), - }; -} -exports.getPropertyNameOfWellKnownSymbol = getPropertyNameOfWellKnownSymbol; -function getLateBoundPropertyNames(node, checker) { - const result = { - known: true, - names: [], - }; - node = unwrapParentheses(node); - if (isWellKnownSymbolLiterally(node)) { - result.names.push(getPropertyNameOfWellKnownSymbol(node)); - } - else { - const type = checker.getTypeAtLocation(node); - for (const key of type_1.unionTypeParts(checker.getBaseConstraintOfType(type) || type)) { - const propertyName = type_1.getPropertyNameFromType(key); - if (propertyName) { - result.names.push(propertyName); - } - else { - result.known = false; - } - } - } - return result; -} -exports.getLateBoundPropertyNames = getLateBoundPropertyNames; -function getLateBoundPropertyNamesOfPropertyName(node, checker) { - const staticName = getPropertyName(node); - return staticName !== undefined - ? { known: true, names: [{ displayName: staticName, symbolName: ts.escapeLeadingUnderscores(staticName) }] } - : getLateBoundPropertyNames(node.expression, checker); -} -exports.getLateBoundPropertyNamesOfPropertyName = getLateBoundPropertyNamesOfPropertyName; -function getSingleLateBoundPropertyNameOfPropertyName(node, checker) { - const staticName = getPropertyName(node); - if (staticName !== undefined) - return { displayName: staticName, symbolName: ts.escapeLeadingUnderscores(staticName) }; - const { expression } = node; - return isWellKnownSymbolLiterally(expression) - ? getPropertyNameOfWellKnownSymbol(expression) - : type_1.getPropertyNameFromType(checker.getTypeAtLocation(expression)); -} -exports.getSingleLateBoundPropertyNameOfPropertyName = getSingleLateBoundPropertyNameOfPropertyName; -function unwrapParentheses(node) { - while (node.kind === ts.SyntaxKind.ParenthesizedExpression) - node = node.expression; - return node; -} -exports.unwrapParentheses = unwrapParentheses; diff --git a/node_modules/@typescript-eslint/typescript-estree/package.json b/node_modules/@typescript-eslint/typescript-estree/package.json index a04c3ac78b..64d81a62eb 100644 --- a/node_modules/@typescript-eslint/typescript-estree/package.json +++ b/node_modules/@typescript-eslint/typescript-estree/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/typescript-estree", - "version": "4.1.0", + "version": "4.28.5", "description": "A parser that converts TypeScript source code into an ESTree compatible form", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -34,34 +34,32 @@ "build": "tsc -b tsconfig.build.json", "postbuild": "downlevel-dts dist _ts3.4/dist", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist", + "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'", "test": "jest --coverage", "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "4.1.0", - "@typescript-eslint/visitor-keys": "4.1.0", - "debug": "^4.1.1", - "globby": "^11.0.1", + "@typescript-eslint/types": "4.28.5", + "@typescript-eslint/visitor-keys": "4.28.5", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "devDependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.11.3", - "@babel/types": "^7.11.0", - "@types/babel__code-frame": "^7.0.1", + "@babel/code-frame": "*", + "@babel/parser": "*", + "@babel/types": "*", + "@types/babel__code-frame": "*", "@types/debug": "*", "@types/glob": "*", - "@types/is-glob": "^4.0.1", - "@types/lodash": "*", - "@types/semver": "^7.1.0", - "@types/tmp": "^0.2.0", - "@typescript-eslint/shared-fixtures": "4.1.0", + "@types/is-glob": "*", + "@types/semver": "*", + "@types/tmp": "*", + "@typescript-eslint/shared-fixtures": "4.28.5", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", @@ -84,5 +82,5 @@ ] } }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md b/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md index ef433031f8..c147f162a6 100644 --- a/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md +++ b/node_modules/@typescript-eslint/visitor-keys/CHANGELOG.md @@ -3,6 +3,386 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [4.28.5](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.4...v4.28.5) (2021-07-26) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.28.4](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.3...v4.28.4) (2021-07-19) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.28.3](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.2...v4.28.3) (2021-07-12) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.28.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.1...v4.28.2) (2021-07-05) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.28.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.28.0...v4.28.1) (2021-06-28) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.28.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.27.0...v4.28.0) (2021-06-21) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.27.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.1...v4.27.0) (2021-06-14) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.26.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.26.0...v4.26.1) (2021-06-07) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.26.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.25.0...v4.26.0) (2021-05-31) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.25.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.24.0...v4.25.0) (2021-05-24) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.24.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.23.0...v4.24.0) (2021-05-17) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.23.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.1...v4.23.0) (2021-05-10) + + +### Features + +* refactor to split AST specification out as its own module ([#2911](https://github.com/typescript-eslint/typescript-eslint/issues/2911)) ([25ea953](https://github.com/typescript-eslint/typescript-eslint/commit/25ea953cc60b118bd385c71e0a9b61c286c26fcf)) + + + + + +## [4.22.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.22.0...v4.22.1) (2021-05-04) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.22.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.21.0...v4.22.0) (2021-04-12) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.21.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.20.0...v4.21.0) (2021-04-05) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.20.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.19.0...v4.20.0) (2021-03-29) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.19.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.18.0...v4.19.0) (2021-03-22) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.18.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.17.0...v4.18.0) (2021-03-15) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.17.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.1...v4.17.0) (2021-03-08) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.16.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.16.0...v4.16.1) (2021-03-01) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.16.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.2...v4.16.0) (2021-03-01) + + +### Features + +* TypeScript 4.2 syntax support ([#3112](https://github.com/typescript-eslint/typescript-eslint/issues/3112)) ([2ebfb21](https://github.com/typescript-eslint/typescript-eslint/commit/2ebfb21ba6c88c793cfbd0e231e5803b2381694c)) + + + + + +## [4.15.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.1...v4.15.2) (2021-02-22) + + +### Bug Fixes + +* add missing intrinsic keyword node to AST ([#3081](https://github.com/typescript-eslint/typescript-eslint/issues/3081)) ([409bf0b](https://github.com/typescript-eslint/typescript-eslint/commit/409bf0bb3e2ac4d8782408d436ebdefb42dba38b)) + + + + + +## [4.15.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.15.0...v4.15.1) (2021-02-15) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.15.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.2...v4.15.0) (2021-02-08) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.14.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.1...v4.14.2) (2021-02-01) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.14.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.14.0...v4.14.1) (2021-01-25) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.14.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.13.0...v4.14.0) (2021-01-18) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.13.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.12.0...v4.13.0) (2021-01-11) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.12.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.1...v4.12.0) (2021-01-04) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.11.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.11.0...v4.11.1) (2020-12-28) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.11.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.10.0...v4.11.0) (2020-12-21) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.10.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.1...v4.10.0) (2020-12-14) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.9.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.9.0...v4.9.1) (2020-12-07) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.9.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.2...v4.9.0) (2020-11-30) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.8.2](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.1...v4.8.2) (2020-11-23) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.8.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.8.0...v4.8.1) (2020-11-17) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.8.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.7.0...v4.8.0) (2020-11-16) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.7.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.1...v4.7.0) (2020-11-09) + + +### Features + +* support TS4.1 features ([#2748](https://github.com/typescript-eslint/typescript-eslint/issues/2748)) ([2be354b](https://github.com/typescript-eslint/typescript-eslint/commit/2be354bb15f9013a2da1b13a0c0836e9ef057e16)), closes [#2583](https://github.com/typescript-eslint/typescript-eslint/issues/2583) + + + + + +## [4.6.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.6.0...v4.6.1) (2020-11-02) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.6.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.5.0...v4.6.0) (2020-10-26) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.5.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.1...v4.5.0) (2020-10-19) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.4.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.4.0...v4.4.1) (2020-10-12) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.4.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.3.0...v4.4.0) (2020-10-05) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.2.0...v4.3.0) (2020-09-28) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +# [4.2.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.1...v4.2.0) (2020-09-21) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + +## [4.1.1](https://github.com/typescript-eslint/typescript-eslint/compare/v4.1.0...v4.1.1) (2020-09-14) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + + + + + # [4.1.0](https://github.com/typescript-eslint/typescript-eslint/compare/v4.0.1...v4.1.0) (2020-09-07) **Note:** Version bump only for package @typescript-eslint/visitor-keys diff --git a/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map b/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map index 00aab33ffd..b03f09fb64 100644 --- a/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map +++ b/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"visitor-keys.d.ts","sourceRoot":"","sources":["../src/visitor-keys.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACxD;AA4ID,QAAA,MAAM,WAAW,EAAE,WAAyD,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"visitor-keys.d.ts","sourceRoot":"","sources":["../src/visitor-keys.ts"],"names":[],"mappings":"AAGA,UAAU,WAAW;IACnB,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACxD;AA8ID,QAAA,MAAM,WAAW,EAAE,WAAyD,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js b/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js index 0813decda6..a750ca047a 100644 --- a/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js +++ b/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js @@ -101,8 +101,9 @@ const additionalKeys = { TSInterfaceDeclaration: ['id', 'typeParameters', 'extends', 'body'], TSInterfaceHeritage: ['expression', 'typeParameters'], TSIntersectionType: ['types'], + TSIntrinsicKeyword: [], TSLiteralType: ['literal'], - TSMappedType: ['typeParameter', 'typeAnnotation'], + TSMappedType: ['nameType', 'typeParameter', 'typeAnnotation'], TSMethodSignature: ['typeParameters', 'key', 'params', 'returnType'], TSModuleBlock: ['body'], TSModuleDeclaration: ['id', 'body'], @@ -126,6 +127,7 @@ const additionalKeys = { TSStaticKeyword: [], TSStringKeyword: [], TSSymbolKeyword: [], + TSTemplateLiteralType: ['quasis', 'types'], TSThisType: [], TSTupleType: ['elementTypes'], TSTypeAliasDeclaration: ['id', 'typeParameters', 'typeAnnotation'], diff --git a/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map b/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map index 81d0fcfbef..b3007b4f09 100644 --- a/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map +++ b/node_modules/@typescript-eslint/visitor-keys/dist/visitor-keys.js.map @@ -1 +1 @@ -{"version":3,"file":"visitor-keys.js","sourceRoot":"","sources":["../src/visitor-keys.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"visitor-keys.js","sourceRoot":"","sources":["../src/visitor-keys.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@typescript-eslint/visitor-keys/package.json b/node_modules/@typescript-eslint/visitor-keys/package.json index 71c92882ae..9fe898a610 100644 --- a/node_modules/@typescript-eslint/visitor-keys/package.json +++ b/node_modules/@typescript-eslint/visitor-keys/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/visitor-keys", - "version": "4.1.0", + "version": "4.28.5", "description": "Visitor keys used to help traverse the TypeScript-ESTree AST", "keywords": [ "eslint", @@ -31,18 +31,18 @@ "build": "tsc -b tsconfig.build.json", "postbuild": "downlevel-dts dist _ts3.4/dist", "clean": "tsc -b tsconfig.build.json --clean", - "postclean": "rimraf dist", + "postclean": "rimraf dist && rimraf _ts3.4 && rimraf coverage", "format": "prettier --write \"./**/*.{ts,js,json,md}\" --ignore-path ../../.prettierignore", "lint": "eslint . --ext .js,.ts --ignore-path='../../.eslintignore'", "test": "jest --coverage", "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "4.1.0", + "@typescript-eslint/types": "4.28.5", "eslint-visitor-keys": "^2.0.0" }, "devDependencies": { - "@types/eslint-visitor-keys": "^1.0.0" + "@types/eslint-visitor-keys": "*" }, "funding": { "type": "opencollective", @@ -55,5 +55,5 @@ ] } }, - "gitHead": "00a24706222254774121ee62038e67d0efa993e7" + "gitHead": "15f718415eb4e522440a5d81f38d65ee81535795" } \ No newline at end of file diff --git a/node_modules/acorn-jsx/index.d.ts b/node_modules/acorn-jsx/index.d.ts new file mode 100644 index 0000000000..f37b1df4c7 --- /dev/null +++ b/node_modules/acorn-jsx/index.d.ts @@ -0,0 +1,12 @@ +import { Parser } from 'acorn' + +declare const jsx: (options?: jsx.Options) => (BaseParser: typeof Parser) => typeof Parser; + +declare namespace jsx { + interface Options { + allowNamespacedObjects?: boolean; + allowNamespaces?: boolean; + } +} + +export = jsx; diff --git a/node_modules/acorn-jsx/package.json b/node_modules/acorn-jsx/package.json index 3088f9add0..4ee8e38d6c 100644 --- a/node_modules/acorn-jsx/package.json +++ b/node_modules/acorn-jsx/package.json @@ -2,7 +2,7 @@ "name": "acorn-jsx", "description": "Modern, fast React.js JSX parser", "homepage": "https://github.com/acornjs/acorn-jsx", - "version": "5.3.1", + "version": "5.3.2", "maintainers": [ { "name": "Ingvar Stepanyan", diff --git a/node_modules/acorn/CHANGELOG.md b/node_modules/acorn/CHANGELOG.md index 32f5ce8f3b..164fd27c6c 100644 --- a/node_modules/acorn/CHANGELOG.md +++ b/node_modules/acorn/CHANGELOG.md @@ -1,3 +1,49 @@ +## 7.4.0 (2020-08-03) + +### New features + +Add support for logical assignment operators. + +Add support for numeric separators. + +## 7.3.1 (2020-06-11) + +### Bug fixes + +Make the string in the `version` export match the actual library version. + +## 7.3.0 (2020-06-11) + +### Bug fixes + +Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail. + +### New features + +Add support for optional chaining (`?.`). + +## 7.2.0 (2020-05-09) + +### Bug fixes + +Fix precedence issue in parsing of async arrow functions. + +### New features + +Add support for nullish coalescing. + +Add support for `import.meta`. + +Support `export * as ...` syntax. + +Upgrade to Unicode 13. + +## 6.4.1 (2020-03-09) + +### Bug fixes + +More carefully check for valid UTF16 surrogate pairs in regexp validator. + ## 7.1.1 (2020-03-01) ### Bug fixes diff --git a/node_modules/acorn/LICENSE b/node_modules/acorn/LICENSE index 2c0632b6a7..cc5272c966 100644 --- a/node_modules/acorn/LICENSE +++ b/node_modules/acorn/LICENSE @@ -1,3 +1,5 @@ +MIT License + Copyright (C) 2012-2018 by various contributors (see AUTHORS) Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/node_modules/acorn/README.md b/node_modules/acorn/README.md index 585f2736fc..52d2e9b71c 100644 --- a/node_modules/acorn/README.md +++ b/node_modules/acorn/README.md @@ -266,5 +266,4 @@ Plugins for ECMAScript proposals: - [`acorn-stage3`](https://github.com/acornjs/acorn-stage3): Parse most stage 3 proposals, bundling: - [`acorn-class-fields`](https://github.com/acornjs/acorn-class-fields): Parse [class fields proposal](https://github.com/tc39/proposal-class-fields) - [`acorn-import-meta`](https://github.com/acornjs/acorn-import-meta): Parse [import.meta proposal](https://github.com/tc39/proposal-import-meta) - - [`acorn-numeric-separator`](https://github.com/acornjs/acorn-numeric-separator): Parse [numeric separator proposal](https://github.com/tc39/proposal-numeric-separator) - [`acorn-private-methods`](https://github.com/acornjs/acorn-private-methods): parse [private methods, getters and setters proposal](https://github.com/tc39/proposal-private-methods)n diff --git a/node_modules/acorn/dist/acorn.js b/node_modules/acorn/dist/acorn.js index e2b33179c7..0523f0e348 100644 --- a/node_modules/acorn/dist/acorn.js +++ b/node_modules/acorn/dist/acorn.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.acorn = {})); -}(this, function (exports) { 'use strict'; +}(this, (function (exports) { 'use strict'; // Reserved word lists for various dialects of the language @@ -33,8 +33,8 @@ // are only applied when a character is found to actually have a // code point above 128. // Generated by `bin/generate-identifier-regex.js`. - var nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab67\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"; - var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; + var nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; + var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); @@ -48,10 +48,10 @@ // generated by bin/generate-identifier-regex.js // eslint-disable-next-line comma-spacing - var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,155,22,13,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,0,33,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,0,161,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,754,9486,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]; + var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938]; // eslint-disable-next-line comma-spacing - var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,232,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,792487,239]; + var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239]; // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is @@ -166,6 +166,7 @@ colon: new TokenType(":", beforeExpr), dot: new TokenType("."), question: new TokenType("?", beforeExpr), + questionDot: new TokenType("?."), arrow: new TokenType("=>", beforeExpr), template: new TokenType("template"), invalidTemplate: new TokenType("invalidTemplate"), @@ -204,6 +205,7 @@ star: binop("*", 10), slash: binop("/", 10), starstar: new TokenType("**", {beforeExpr: true}), + coalesce: binop("??", 1), // Keyword token types. _break: kw("break"), @@ -592,7 +594,7 @@ // ## Parser utilities - var literal = /^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)")/; + var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; pp.strictDirective = function(start) { for (;;) { // Try to find string literal. @@ -600,7 +602,14 @@ start += skipWhiteSpace.exec(this.input)[0].length; var match = literal.exec(this.input.slice(start)); if (!match) { return false } - if ((match[1] || match[2]) === "use strict") { return true } + if ((match[1] || match[2]) === "use strict") { + skipWhiteSpace.lastIndex = start + match[0].length; + var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; + var next = this.input.charAt(end); + return next === ";" || next === "}" || + (lineBreak.test(spaceAfter[0]) && + !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "=")) + } start += match[0].length; // Skip semicolon, if any. @@ -850,7 +859,7 @@ skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - if (nextCh === 40) // '(' + if (nextCh === 40 || nextCh === 46) // '(' or '.' { return this.parseExpressionStatement(node, this.parseExpression()) } } @@ -1150,17 +1159,19 @@ // strict"` declarations when `allowStrict` is true (used for // function bodies). - pp$1.parseBlock = function(createNewLexicalScope, node) { + pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) { if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; if ( node === void 0 ) node = this.startNode(); node.body = []; this.expect(types.braceL); if (createNewLexicalScope) { this.enterScope(0); } - while (!this.eat(types.braceR)) { + while (this.type !== types.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } + if (exitStrict) { this.strict = false; } + this.next(); if (createNewLexicalScope) { this.exitScope(); } return this.finishNode(node, "BlockStatement") }; @@ -1311,7 +1322,7 @@ var hadConstructor = false; classBody.body = []; this.expect(types.braceL); - while (!this.eat(types.braceR)) { + while (this.type !== types.braceR) { var element = this.parseClassElement(node.superClass !== null); if (element) { classBody.body.push(element); @@ -1321,8 +1332,9 @@ } } } - node.body = this.finishNode(classBody, "ClassBody"); this.strict = oldStrict; + this.next(); + node.body = this.finishNode(classBody, "ClassBody"); return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") }; @@ -1410,6 +1422,14 @@ this.next(); // export * from '...' if (this.eat(types.star)) { + if (this.options.ecmaVersion >= 11) { + if (this.eatContextual("as")) { + node.exported = this.parseIdent(true); + this.checkExport(exports, node.exported.name, this.lastTokStart); + } else { + node.exported = null; + } + } this.expectContextual("from"); if (this.type !== types.string) { this.unexpected(); } node.source = this.parseExprAtom(); @@ -1686,6 +1706,10 @@ this.toAssignable(node.expression, isBinding, refDestructuringErrors); break + case "ChainExpression": + this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); + break + case "MemberExpression": if (!isBinding) { break } @@ -1816,6 +1840,10 @@ if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); } break + case "ChainExpression": + this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); + break + case "MemberExpression": if (bindingType) { this.raiseRecoverable(expr.start, "Binding member expression"); } break @@ -2026,11 +2054,20 @@ if (prec != null && (!noIn || this.type !== types._in)) { if (prec > minPrec) { var logical = this.type === types.logicalOR || this.type === types.logicalAND; + var coalesce = this.type === types.coalesce; + if (coalesce) { + // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. + // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. + prec = types.logicalAND.binop; + } var op = this.value; this.next(); var startPos = this.start, startLoc = this.startLoc; var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn); - var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical); + var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); + if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) { + this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); + } return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn) } } @@ -2102,22 +2139,42 @@ pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) { var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && - this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === "async"; + this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && + this.potentialArrowAt === base.start; + var optionalChained = false; + while (true) { - var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow); - if (element === base || element.type === "ArrowFunctionExpression") { return element } + var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained); + + if (element.optional) { optionalChained = true; } + if (element === base || element.type === "ArrowFunctionExpression") { + if (optionalChained) { + var chainNode = this.startNodeAt(startPos, startLoc); + chainNode.expression = element; + element = this.finishNode(chainNode, "ChainExpression"); + } + return element + } + base = element; } }; - pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) { + pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) { + var optionalSupported = this.options.ecmaVersion >= 11; + var optional = optionalSupported && this.eat(types.questionDot); + if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } + var computed = this.eat(types.bracketL); - if (computed || this.eat(types.dot)) { + if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) { var node = this.startNodeAt(startPos, startLoc); node.object = base; node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== "never"); node.computed = !!computed; if (computed) { this.expect(types.bracketR); } + if (optionalSupported) { + node.optional = optional; + } base = this.finishNode(node, "MemberExpression"); } else if (!noCalls && this.eat(types.parenL)) { var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; @@ -2125,7 +2182,7 @@ this.awaitPos = 0; this.awaitIdentPos = 0; var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) { + if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); if (this.awaitIdentPos > 0) @@ -2142,8 +2199,14 @@ var node$1 = this.startNodeAt(startPos, startLoc); node$1.callee = base; node$1.arguments = exprList; + if (optionalSupported) { + node$1.optional = optional; + } base = this.finishNode(node$1, "CallExpression"); } else if (this.type === types.backQuote) { + if (optional || optionalChained) { + this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); + } var node$2 = this.startNodeAt(startPos, startLoc); node$2.tag = base; node$2.quasi = this.parseTemplate({isTagged: true}); @@ -2266,10 +2329,18 @@ pp$3.parseExprImport = function() { var node = this.startNode(); - this.next(); // skip `import` + + // Consume `import` as an identifier for `import.meta`. + // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`. + if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword import"); } + var meta = this.parseIdent(true); + switch (this.type) { case types.parenL: return this.parseDynamicImport(node) + case types.dot: + node.meta = meta; + return this.parseImportMeta(node) default: this.unexpected(); } @@ -2294,11 +2365,27 @@ return this.finishNode(node, "ImportExpression") }; + pp$3.parseImportMeta = function(node) { + this.next(); // skip `.` + + var containsEsc = this.containsEsc; + node.property = this.parseIdent(true); + + if (node.property.name !== "meta") + { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); } + if (containsEsc) + { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); } + if (this.options.sourceType !== "module") + { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); } + + return this.finishNode(node, "MetaProperty") + }; + pp$3.parseLiteral = function(value) { var node = this.startNode(); node.value = value; node.raw = this.input.slice(this.start, this.end); - if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1); } + if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, ""); } this.next(); return this.finishNode(node, "Literal") }; @@ -2396,10 +2483,12 @@ node.meta = meta; var containsEsc = this.containsEsc; node.property = this.parseIdent(true); - if (node.property.name !== "target" || containsEsc) - { this.raiseRecoverable(node.property.start, "The only valid meta property for new is new.target"); } + if (node.property.name !== "target") + { this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); } + if (containsEsc) + { this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); } if (!this.inNonArrowFunction()) - { this.raiseRecoverable(node.start, "new.target can only be used in functions"); } + { this.raiseRecoverable(node.start, "'new.target' can only be used in functions"); } return this.finishNode(node, "MetaProperty") } var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import; @@ -2548,7 +2637,7 @@ } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && - (this.type !== types.comma && this.type !== types.braceR)) { + (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) { if (isGenerator || isAsync) { this.unexpected(); } prop.kind = prop.key.name; this.parsePropertyName(prop); @@ -2683,16 +2772,14 @@ // Add the params to varDeclaredNames to ensure that an error is thrown // if a let/const declaration in the function clashes with one of the params. this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); - node.body = this.parseBlock(false); + // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' + if (this.strict && node.id) { this.checkLVal(node.id, BIND_OUTSIDE); } + node.body = this.parseBlock(false, undefined, useStrict && !oldStrict); node.expression = false; this.adaptDirectivePrologue(node.body.body); this.labels = oldLabels; } this.exitScope(); - - // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' - if (this.strict && node.id) { this.checkLVal(node.id, BIND_OUTSIDE); } - this.strict = oldStrict; }; pp$3.isSimpleParamList = function(params) { @@ -3211,49 +3298,61 @@ // If u flag is given, this returns the code point at the index (it combines a surrogate pair). // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair). - RegExpValidationState.prototype.at = function at (i) { + RegExpValidationState.prototype.at = function at (i, forceU) { + if ( forceU === void 0 ) forceU = false; + var s = this.source; var l = s.length; if (i >= l) { return -1 } var c = s.charCodeAt(i); - if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { + if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { return c } var next = s.charCodeAt(i + 1); return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c }; - RegExpValidationState.prototype.nextIndex = function nextIndex (i) { + RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) { + if ( forceU === void 0 ) forceU = false; + var s = this.source; var l = s.length; if (i >= l) { return l } var c = s.charCodeAt(i), next; - if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || + if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) { return i + 1 } return i + 2 }; - RegExpValidationState.prototype.current = function current () { - return this.at(this.pos) + RegExpValidationState.prototype.current = function current (forceU) { + if ( forceU === void 0 ) forceU = false; + + return this.at(this.pos, forceU) }; - RegExpValidationState.prototype.lookahead = function lookahead () { - return this.at(this.nextIndex(this.pos)) + RegExpValidationState.prototype.lookahead = function lookahead (forceU) { + if ( forceU === void 0 ) forceU = false; + + return this.at(this.nextIndex(this.pos, forceU), forceU) }; - RegExpValidationState.prototype.advance = function advance () { - this.pos = this.nextIndex(this.pos); + RegExpValidationState.prototype.advance = function advance (forceU) { + if ( forceU === void 0 ) forceU = false; + + this.pos = this.nextIndex(this.pos, forceU); }; - RegExpValidationState.prototype.eat = function eat (ch) { - if (this.current() === ch) { - this.advance(); + RegExpValidationState.prototype.eat = function eat (ch, forceU) { + if ( forceU === void 0 ) forceU = false; + + if (this.current(forceU) === ch) { + this.advance(forceU); return true } return false @@ -3592,9 +3691,9 @@ return false }; - // GroupSpecifier[U] :: + // GroupSpecifier :: // [empty] - // `?` GroupName[?U] + // `?` GroupName pp$8.regexp_groupSpecifier = function(state) { if (state.eat(0x3F /* ? */)) { if (this.regexp_eatGroupName(state)) { @@ -3608,8 +3707,8 @@ } }; - // GroupName[U] :: - // `<` RegExpIdentifierName[?U] `>` + // GroupName :: + // `<` RegExpIdentifierName `>` // Note: this updates `state.lastStringValue` property with the eaten name. pp$8.regexp_eatGroupName = function(state) { state.lastStringValue = ""; @@ -3622,9 +3721,9 @@ return false }; - // RegExpIdentifierName[U] :: - // RegExpIdentifierStart[?U] - // RegExpIdentifierName[?U] RegExpIdentifierPart[?U] + // RegExpIdentifierName :: + // RegExpIdentifierStart + // RegExpIdentifierName RegExpIdentifierPart // Note: this updates `state.lastStringValue` property with the eaten name. pp$8.regexp_eatRegExpIdentifierName = function(state) { state.lastStringValue = ""; @@ -3638,17 +3737,18 @@ return false }; - // RegExpIdentifierStart[U] :: + // RegExpIdentifierStart :: // UnicodeIDStart // `$` // `_` - // `\` RegExpUnicodeEscapeSequence[?U] + // `\` RegExpUnicodeEscapeSequence[+U] pp$8.regexp_eatRegExpIdentifierStart = function(state) { var start = state.pos; - var ch = state.current(); - state.advance(); + var forceU = this.options.ecmaVersion >= 11; + var ch = state.current(forceU); + state.advance(forceU); - if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) { + if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { ch = state.lastIntValue; } if (isRegExpIdentifierStart(ch)) { @@ -3663,19 +3763,20 @@ return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ } - // RegExpIdentifierPart[U] :: + // RegExpIdentifierPart :: // UnicodeIDContinue // `$` // `_` - // `\` RegExpUnicodeEscapeSequence[?U] + // `\` RegExpUnicodeEscapeSequence[+U] // // pp$8.regexp_eatRegExpIdentifierPart = function(state) { var start = state.pos; - var ch = state.current(); - state.advance(); + var forceU = this.options.ecmaVersion >= 11; + var ch = state.current(forceU); + state.advance(forceU); - if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) { + if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { ch = state.lastIntValue; } if (isRegExpIdentifierPart(ch)) { @@ -3745,7 +3846,7 @@ this.regexp_eatCControlLetter(state) || this.regexp_eatZero(state) || this.regexp_eatHexEscapeSequence(state) || - this.regexp_eatRegExpUnicodeEscapeSequence(state) || + this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) || this.regexp_eatIdentityEscape(state) ) @@ -3818,13 +3919,16 @@ } // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence - pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state) { + pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { + if ( forceU === void 0 ) forceU = false; + var start = state.pos; + var switchU = forceU || state.switchU; if (state.eat(0x75 /* u */)) { if (this.regexp_eatFixedHexDigits(state, 4)) { var lead = state.lastIntValue; - if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) { + if (switchU && lead >= 0xD800 && lead <= 0xDBFF) { var leadSurrogateEnd = state.pos; if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) { var trail = state.lastIntValue; @@ -3839,7 +3943,7 @@ return true } if ( - state.switchU && + switchU && state.eat(0x7B /* { */) && this.regexp_eatHexDigits(state) && state.eat(0x7D /* } */) && @@ -3847,7 +3951,7 @@ ) { return true } - if (state.switchU) { + if (switchU) { state.raise("Invalid unicode escape"); } state.pos = start; @@ -4447,7 +4551,13 @@ pp$9.readToken_pipe_amp = function(code) { // '|&' var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) } + if (next === code) { + if (this.options.ecmaVersion >= 12) { + var next2 = this.input.charCodeAt(this.pos + 2); + if (next2 === 61) { return this.finishOp(types.assign, 3) } + } + return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) + } if (next === 61) { return this.finishOp(types.assign, 2) } return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1) }; @@ -4503,6 +4613,25 @@ return this.finishOp(code === 61 ? types.eq : types.prefix, 1) }; + pp$9.readToken_question = function() { // '?' + var ecmaVersion = this.options.ecmaVersion; + if (ecmaVersion >= 11) { + var next = this.input.charCodeAt(this.pos + 1); + if (next === 46) { + var next2 = this.input.charCodeAt(this.pos + 2); + if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) } + } + if (next === 63) { + if (ecmaVersion >= 12) { + var next2$1 = this.input.charCodeAt(this.pos + 2); + if (next2$1 === 61) { return this.finishOp(types.assign, 3) } + } + return this.finishOp(types.coalesce, 2) + } + } + return this.finishOp(types.question, 1) + }; + pp$9.getTokenFromCode = function(code) { switch (code) { // The interpretation of a dot depends on whether it is followed @@ -4520,7 +4649,6 @@ case 123: ++this.pos; return this.finishToken(types.braceL) case 125: ++this.pos; return this.finishToken(types.braceR) case 58: ++this.pos; return this.finishToken(types.colon) - case 63: ++this.pos; return this.finishToken(types.question) case 96: // '`' if (this.options.ecmaVersion < 6) { break } @@ -4570,6 +4698,9 @@ case 61: case 33: // '=!' return this.readToken_eq_excl(code) + case 63: // '?' + return this.readToken_question() + case 126: // '~' return this.finishOp(types.prefix, 1) } @@ -4625,30 +4756,67 @@ // were read, the integer value otherwise. When `len` is given, this // will return `null` unless the integer has exactly `len` digits. - pp$9.readInt = function(radix, len) { - var start = this.pos, total = 0; - for (var i = 0, e = len == null ? Infinity : len; i < e; ++i) { + pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { + // `len` is used for character escape sequences. In that case, disallow separators. + var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined; + + // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b) + // and isn't fraction part nor exponent part. In that case, if the first digit + // is zero then disallow separators. + var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48; + + var start = this.pos, total = 0, lastCode = 0; + for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) { var code = this.input.charCodeAt(this.pos), val = (void 0); + + if (allowSeparators && code === 95) { + if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, "Numeric separator is not allowed in legacy octal numeric literals"); } + if (lastCode === 95) { this.raiseRecoverable(this.pos, "Numeric separator must be exactly one underscore"); } + if (i === 0) { this.raiseRecoverable(this.pos, "Numeric separator is not allowed at the first of digits"); } + lastCode = code; + continue + } + if (code >= 97) { val = code - 97 + 10; } // a else if (code >= 65) { val = code - 65 + 10; } // A else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9 else { val = Infinity; } if (val >= radix) { break } - ++this.pos; + lastCode = code; total = total * radix + val; } + + if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, "Numeric separator is not allowed at the last of digits"); } if (this.pos === start || len != null && this.pos - start !== len) { return null } return total }; + function stringToNumber(str, isLegacyOctalNumericLiteral) { + if (isLegacyOctalNumericLiteral) { + return parseInt(str, 8) + } + + // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value. + return parseFloat(str.replace(/_/g, "")) + } + + function stringToBigInt(str) { + if (typeof BigInt !== "function") { + return null + } + + // `BigInt(value)` throws syntax error if the string contains numeric separators. + return BigInt(str.replace(/_/g, "")) + } + pp$9.readRadixNumber = function(radix) { var start = this.pos; this.pos += 2; // 0x var val = this.readInt(radix); if (val == null) { this.raise(this.start + 2, "Expected number in radix " + radix); } if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) { - val = typeof BigInt !== "undefined" ? BigInt(this.input.slice(start, this.pos)) : null; + val = stringToBigInt(this.input.slice(start, this.pos)); ++this.pos; } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } return this.finishToken(types.num, val) @@ -4658,13 +4826,12 @@ pp$9.readNumber = function(startsWithDot) { var start = this.pos; - if (!startsWithDot && this.readInt(10) === null) { this.raise(start, "Invalid number"); } + if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, "Invalid number"); } var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48; if (octal && this.strict) { this.raise(start, "Invalid number"); } var next = this.input.charCodeAt(this.pos); if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) { - var str$1 = this.input.slice(start, this.pos); - var val$1 = typeof BigInt !== "undefined" ? BigInt(str$1) : null; + var val$1 = stringToBigInt(this.input.slice(start, this.pos)); ++this.pos; if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } return this.finishToken(types.num, val$1) @@ -4682,8 +4849,7 @@ } if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } - var str = this.input.slice(start, this.pos); - var val = octal ? parseInt(str, 8) : parseFloat(str); + var val = stringToNumber(this.input.slice(start, this.pos), octal); return this.finishToken(types.num, val) }; @@ -4942,7 +5108,7 @@ // Acorn is a tiny, fast JavaScript parser written in JavaScript. - var version = "7.1.0"; + var version = "7.4.1"; Parser.acorn = { Parser: Parser, @@ -5017,4 +5183,4 @@ Object.defineProperty(exports, '__esModule', { value: true }); -})); +}))); diff --git a/node_modules/acorn/dist/acorn.js.map b/node_modules/acorn/dist/acorn.js.map index 7b366e95b2..7781620d64 100644 --- a/node_modules/acorn/dist/acorn.js.map +++ b/node_modules/acorn/dist/acorn.js.map @@ -1 +1 @@ -{"version":3,"file":"acorn.js","sources":["../src/identifier.js","../src/tokentype.js","../src/whitespace.js","../src/util.js","../src/locutil.js","../src/options.js","../src/scopeflags.js","../src/state.js","../src/parseutil.js","../src/statement.js","../src/lval.js","../src/expression.js","../src/location.js","../src/scope.js","../src/node.js","../src/tokencontext.js","../src/unicode-property-data.js","../src/regexp.js","../src/tokenize.js","../src/index.js"],"sourcesContent":["// Reserved word lists for various dialects of the language\n\nexport const reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n}\n\n// And the keywords\n\nconst ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\"\n\nexport const keywords = {\n 5: ecma5AndLessKeywords,\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n}\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point above 128.\n// Generated by `bin/generate-identifier-regex.js`.\n\nlet nonASCIIidentifierStartChars = \"\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\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\\u09fc\\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\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\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-\\u1878\\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\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\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-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7b9\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\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\"\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf2-\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\"\n\nconst nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\")\nconst nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\")\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null\n\n// These are a run-length and offset encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by bin/generate-identifier-regex.js\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541]\n\n// eslint-disable-next-line comma-spacing\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239]\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n let pos = 0x10000\n for (let i = 0; i < set.length; i += 2) {\n pos += set[i]\n if (pos > code) return false\n pos += set[i + 1]\n if (pos >= code) return true\n }\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code, astral) {\n if (code < 65) return code === 36\n if (code < 91) return true\n if (code < 97) return code === 95\n if (code < 123) return true\n if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n if (astral === false) return false\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code, astral) {\n if (code < 48) return code === 36\n if (code < 58) return true\n if (code < 65) return false\n if (code < 91) return true\n if (code < 97) return code === 95\n if (code < 123) return true\n if (code <= 0xffff) return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code))\n if (astral === false) return false\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n","// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nexport class TokenType {\n constructor(label, conf = {}) {\n this.label = label\n this.keyword = conf.keyword\n this.beforeExpr = !!conf.beforeExpr\n this.startsExpr = !!conf.startsExpr\n this.isLoop = !!conf.isLoop\n this.isAssign = !!conf.isAssign\n this.prefix = !!conf.prefix\n this.postfix = !!conf.postfix\n this.binop = conf.binop || null\n this.updateContext = null\n }\n}\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nconst beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}\n\n// Map keyword names to token types.\n\nexport const keywords = {}\n\n// Succinct definitions of keyword token types\nfunction kw(name, options = {}) {\n options.keyword = name\n return keywords[name] = new TokenType(name, options)\n}\n\nexport const types = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"/<=/>=\", 7),\n bitShift: binop(\"<>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\"),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n}\n","// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nexport const lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\")\n\nexport function isNewLine(code, ecma2019String) {\n return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029))\n}\n\nexport const nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g\n","const {hasOwnProperty, toString} = Object.prototype\n\n// Checks if an object has a property.\n\nexport function has(obj, propName) {\n return hasOwnProperty.call(obj, propName)\n}\n\nexport const isArray = Array.isArray || ((obj) => (\n toString.call(obj) === \"[object Array]\"\n))\n\nexport function wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n","import {lineBreakG} from \"./whitespace\"\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n constructor(line, col) {\n this.line = line\n this.column = col\n }\n\n offset(n) {\n return new Position(this.line, this.column + n)\n }\n}\n\nexport class SourceLocation {\n constructor(p, start, end) {\n this.start = start\n this.end = end\n if (p.sourceFile !== null) this.source = p.sourceFile\n }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input, offset) {\n for (let line = 1, cur = 0;;) {\n lineBreakG.lastIndex = cur\n let match = lineBreakG.exec(input)\n if (match && match.index < offset) {\n ++line\n cur = match.index + match[0].length\n } else {\n return new Position(line, offset - cur)\n }\n }\n}\n","import {has, isArray} from \"./util\"\nimport {SourceLocation} from \"./locutil\"\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport const defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10\n // (2019). This influences support for strict mode, the set of\n // reserved words, and support for new syntax features. The default\n // is 9.\n ecmaVersion: 9,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: false,\n // When enabled, hashbang directive in the beginning of file\n // is allowed and treated as a line comment.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n}\n\n// Interpret and default an options object\n\nexport function getOptions(opts) {\n let options = {}\n\n for (let opt in defaultOptions)\n options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]\n\n if (options.ecmaVersion >= 2015)\n options.ecmaVersion -= 2009\n\n if (options.allowReserved == null)\n options.allowReserved = options.ecmaVersion < 5\n\n if (isArray(options.onToken)) {\n let tokens = options.onToken\n options.onToken = (token) => tokens.push(token)\n }\n if (isArray(options.onComment))\n options.onComment = pushComment(options, options.onComment)\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n let comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n }\n if (options.locations)\n comment.loc = new SourceLocation(this, startLoc, endLoc)\n if (options.ranges)\n comment.range = [start, end]\n array.push(comment)\n }\n}\n","// Each scope gets a bitset that may contain these flags\nexport const\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128\n\nexport function functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal and declareName to determine the type of a binding\nexport const\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5 // Special case for function names as bound inside the function\n","import {reservedWords, keywords} from \"./identifier\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\nimport {getOptions} from \"./options\"\nimport {wordsRegexp} from \"./util\"\nimport {SCOPE_TOP, SCOPE_FUNCTION, SCOPE_ASYNC, SCOPE_GENERATOR, SCOPE_SUPER, SCOPE_DIRECT_SUPER} from \"./scopeflags\"\n\nexport class Parser {\n constructor(options, input, startPos) {\n this.options = options = getOptions(options)\n this.sourceFile = options.sourceFile\n this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : 5])\n let reserved = \"\"\n if (!options.allowReserved) {\n for (let v = options.ecmaVersion;; v--)\n if (reserved = reservedWords[v]) break\n if (options.sourceType === \"module\") reserved += \" await\"\n }\n this.reservedWords = wordsRegexp(reserved)\n let reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict\n this.reservedWordsStrict = wordsRegexp(reservedStrict)\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind)\n this.input = String(input)\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length\n } else {\n this.pos = this.lineStart = 0\n this.curLine = 1\n }\n\n // Properties of the current token:\n // Its type\n this.type = tt.eof\n // For tokens that include more information than their type, the value\n this.value = null\n // Its start and end offset\n this.start = this.end = this.pos\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition()\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null\n this.lastTokStart = this.lastTokEnd = this.pos\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext()\n this.exprAllowed = true\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\"\n this.strict = this.inModule || this.strictDirective(this.pos)\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0\n // Labels in scope.\n this.labels = []\n // Thus-far undefined exports.\n this.undefinedExports = {}\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n this.skipLineComment(2)\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = []\n this.enterScope(SCOPE_TOP)\n\n // For RegExp validation\n this.regexpState = null\n }\n\n parse() {\n let node = this.options.program || this.startNode()\n this.nextToken()\n return this.parseTopLevel(node)\n }\n\n get inFunction() { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }\n get inGenerator() { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }\n get inAsync() { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }\n get allowSuper() { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }\n get allowDirectSuper() { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }\n get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()) }\n\n // Switch to a getter for 7.0.0.\n inNonArrowFunction() { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }\n\n static extend(...plugins) {\n let cls = this\n for (let i = 0; i < plugins.length; i++) cls = plugins[i](cls)\n return cls\n }\n\n static parse(input, options) {\n return new this(options, input).parse()\n }\n\n static parseExpressionAt(input, pos, options) {\n let parser = new this(options, input, pos)\n parser.nextToken()\n return parser.parseExpression()\n }\n\n static tokenizer(input, options) {\n return new this(options, input)\n }\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\n\nconst pp = Parser.prototype\n\n// ## Parser utilities\n\nconst literal = /^(?:'((?:\\\\.|[^'])*?)'|\"((?:\\\\.|[^\"])*?)\")/\npp.strictDirective = function(start) {\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start\n start += skipWhiteSpace.exec(this.input)[0].length\n let match = literal.exec(this.input.slice(start))\n if (!match) return false\n if ((match[1] || match[2]) === \"use strict\") return true\n start += match[0].length\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start\n start += skipWhiteSpace.exec(this.input)[0].length\n if (this.input[start] === \";\")\n start++\n }\n}\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp.eat = function(type) {\n if (this.type === type) {\n this.next()\n return true\n } else {\n return false\n }\n}\n\n// Tests whether parsed token is a contextual keyword.\n\npp.isContextual = function(name) {\n return this.type === tt.name && this.value === name && !this.containsEsc\n}\n\n// Consumes contextual keyword if possible.\n\npp.eatContextual = function(name) {\n if (!this.isContextual(name)) return false\n this.next()\n return true\n}\n\n// Asserts that following token is given contextual keyword.\n\npp.expectContextual = function(name) {\n if (!this.eatContextual(name)) this.unexpected()\n}\n\n// Test whether a semicolon can be inserted at the current position.\n\npp.canInsertSemicolon = function() {\n return this.type === tt.eof ||\n this.type === tt.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\npp.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc)\n return true\n }\n}\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp.semicolon = function() {\n if (!this.eat(tt.semi) && !this.insertSemicolon()) this.unexpected()\n}\n\npp.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc)\n if (!notNext)\n this.next()\n return true\n }\n}\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp.expect = function(type) {\n this.eat(type) || this.unexpected()\n}\n\n// Raise an unexpected token error.\n\npp.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\")\n}\n\nexport function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1\n}\n\npp.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) return\n if (refDestructuringErrors.trailingComma > -1)\n this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\")\n let parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind\n if (parens > -1) this.raiseRecoverable(parens, \"Parenthesized pattern\")\n}\n\npp.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) return false\n let {shorthandAssign, doubleProto} = refDestructuringErrors\n if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0\n if (shorthandAssign >= 0)\n this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\")\n if (doubleProto >= 0)\n this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\")\n}\n\npp.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n this.raise(this.yieldPos, \"Yield expression cannot be a default value\")\n if (this.awaitPos)\n this.raise(this.awaitPos, \"Await expression cannot be a default value\")\n}\n\npp.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n return this.isSimpleAssignTarget(expr.expression)\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {lineBreak, skipWhiteSpace} from \"./whitespace\"\nimport {isIdentifierStart, isIdentifierChar, keywordRelationalOperator} from \"./identifier\"\nimport {has} from \"./util\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {functionFlags, SCOPE_SIMPLE_CATCH, BIND_SIMPLE_CATCH, BIND_LEXICAL, BIND_VAR, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp.parseTopLevel = function(node) {\n let exports = {}\n if (!node.body) node.body = []\n while (this.type !== tt.eof) {\n let stmt = this.parseStatement(null, true, exports)\n node.body.push(stmt)\n }\n if (this.inModule)\n for (let name of Object.keys(this.undefinedExports))\n this.raiseRecoverable(this.undefinedExports[name].start, `Export '${name}' is not defined`)\n this.adaptDirectivePrologue(node.body)\n this.next()\n if (this.options.ecmaVersion >= 6) {\n node.sourceType = this.options.sourceType\n }\n return this.finishNode(node, \"Program\")\n}\n\nconst loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"}\n\npp.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) return false\n skipWhiteSpace.lastIndex = this.pos\n let skip = skipWhiteSpace.exec(this.input)\n let next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next)\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91) return true // '['\n if (context) return false\n\n if (nextCh === 123) return true // '{'\n if (isIdentifierStart(nextCh, true)) {\n let pos = next + 1\n while (isIdentifierChar(this.input.charCodeAt(pos), true)) ++pos\n let ident = this.input.slice(next, pos)\n if (!keywordRelationalOperator.test(ident)) return true\n }\n return false\n}\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n return false\n\n skipWhiteSpace.lastIndex = this.pos\n let skip = skipWhiteSpace.exec(this.input)\n let next = this.pos + skip[0].length\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8)))\n}\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp.parseStatement = function(context, topLevel, exports) {\n let starttype = this.type, node = this.startNode(), kind\n\n if (this.isLet(context)) {\n starttype = tt._var\n kind = \"let\"\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case tt._break: case tt._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case tt._debugger: return this.parseDebuggerStatement(node)\n case tt._do: return this.parseDoStatement(node)\n case tt._for: return this.parseForStatement(node)\n case tt._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) this.unexpected()\n return this.parseFunctionStatement(node, false, !context)\n case tt._class:\n if (context) this.unexpected()\n return this.parseClass(node, true)\n case tt._if: return this.parseIfStatement(node)\n case tt._return: return this.parseReturnStatement(node)\n case tt._switch: return this.parseSwitchStatement(node)\n case tt._throw: return this.parseThrowStatement(node)\n case tt._try: return this.parseTryStatement(node)\n case tt._const: case tt._var:\n kind = kind || this.value\n if (context && kind !== \"var\") this.unexpected()\n return this.parseVarStatement(node, kind)\n case tt._while: return this.parseWhileStatement(node)\n case tt._with: return this.parseWithStatement(node)\n case tt.braceL: return this.parseBlock(true, node)\n case tt.semi: return this.parseEmptyStatement(node)\n case tt._export:\n case tt._import:\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n this.raise(this.start, \"'import' and 'export' may only appear at the top level\")\n if (!this.inModule)\n this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\")\n }\n return starttype === tt._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) this.unexpected()\n this.next()\n return this.parseFunctionStatement(node, true, !context)\n }\n\n let maybeName = this.value, expr = this.parseExpression()\n if (starttype === tt.name && expr.type === \"Identifier\" && this.eat(tt.colon))\n return this.parseLabeledStatement(node, maybeName, expr, context)\n else return this.parseExpressionStatement(node, expr)\n }\n}\n\npp.parseBreakContinueStatement = function(node, keyword) {\n let isBreak = keyword === \"break\"\n this.next()\n if (this.eat(tt.semi) || this.insertSemicolon()) node.label = null\n else if (this.type !== tt.name) this.unexpected()\n else {\n node.label = this.parseIdent()\n this.semicolon()\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n let i = 0\n for (; i < this.labels.length; ++i) {\n let lab = this.labels[i]\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) break\n if (node.label && isBreak) break\n }\n }\n if (i === this.labels.length) this.raise(node.start, \"Unsyntactic \" + keyword)\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n}\n\npp.parseDebuggerStatement = function(node) {\n this.next()\n this.semicolon()\n return this.finishNode(node, \"DebuggerStatement\")\n}\n\npp.parseDoStatement = function(node) {\n this.next()\n this.labels.push(loopLabel)\n node.body = this.parseStatement(\"do\")\n this.labels.pop()\n this.expect(tt._while)\n node.test = this.parseParenExpression()\n if (this.options.ecmaVersion >= 6)\n this.eat(tt.semi)\n else\n this.semicolon()\n return this.finishNode(node, \"DoWhileStatement\")\n}\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp.parseForStatement = function(node) {\n this.next()\n let awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual(\"await\")) ? this.lastTokStart : -1\n this.labels.push(loopLabel)\n this.enterScope(0)\n this.expect(tt.parenL)\n if (this.type === tt.semi) {\n if (awaitAt > -1) this.unexpected(awaitAt)\n return this.parseFor(node, null)\n }\n let isLet = this.isLet()\n if (this.type === tt._var || this.type === tt._const || isLet) {\n let init = this.startNode(), kind = isLet ? \"let\" : this.value\n this.next()\n this.parseVar(init, true, kind)\n this.finishNode(init, \"VariableDeclaration\")\n if ((this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init.declarations.length === 1 &&\n !(kind !== \"var\" && init.declarations[0].init)) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === tt._in) {\n if (awaitAt > -1) this.unexpected(awaitAt)\n } else node.await = awaitAt > -1\n }\n return this.parseForIn(node, init)\n }\n if (awaitAt > -1) this.unexpected(awaitAt)\n return this.parseFor(node, init)\n }\n let refDestructuringErrors = new DestructuringErrors\n let init = this.parseExpression(true, refDestructuringErrors)\n if (this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === tt._in) {\n if (awaitAt > -1) this.unexpected(awaitAt)\n } else node.await = awaitAt > -1\n }\n this.toAssignable(init, false, refDestructuringErrors)\n this.checkLVal(init)\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true)\n }\n if (awaitAt > -1) this.unexpected(awaitAt)\n return this.parseFor(node, init)\n}\n\npp.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next()\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n}\n\npp.parseIfStatement = function(node) {\n this.next()\n node.test = this.parseParenExpression()\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\")\n node.alternate = this.eat(tt._else) ? this.parseStatement(\"if\") : null\n return this.finishNode(node, \"IfStatement\")\n}\n\npp.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n this.raise(this.start, \"'return' outside of function\")\n this.next()\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(tt.semi) || this.insertSemicolon()) node.argument = null\n else { node.argument = this.parseExpression(); this.semicolon() }\n return this.finishNode(node, \"ReturnStatement\")\n}\n\npp.parseSwitchStatement = function(node) {\n this.next()\n node.discriminant = this.parseParenExpression()\n node.cases = []\n this.expect(tt.braceL)\n this.labels.push(switchLabel)\n this.enterScope(0)\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n let cur\n for (let sawDefault = false; this.type !== tt.braceR;) {\n if (this.type === tt._case || this.type === tt._default) {\n let isCase = this.type === tt._case\n if (cur) this.finishNode(cur, \"SwitchCase\")\n node.cases.push(cur = this.startNode())\n cur.consequent = []\n this.next()\n if (isCase) {\n cur.test = this.parseExpression()\n } else {\n if (sawDefault) this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\")\n sawDefault = true\n cur.test = null\n }\n this.expect(tt.colon)\n } else {\n if (!cur) this.unexpected()\n cur.consequent.push(this.parseStatement(null))\n }\n }\n this.exitScope()\n if (cur) this.finishNode(cur, \"SwitchCase\")\n this.next() // Closing brace\n this.labels.pop()\n return this.finishNode(node, \"SwitchStatement\")\n}\n\npp.parseThrowStatement = function(node) {\n this.next()\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n this.raise(this.lastTokEnd, \"Illegal newline after throw\")\n node.argument = this.parseExpression()\n this.semicolon()\n return this.finishNode(node, \"ThrowStatement\")\n}\n\n// Reused empty array added for node fields that are always empty.\n\nconst empty = []\n\npp.parseTryStatement = function(node) {\n this.next()\n node.block = this.parseBlock()\n node.handler = null\n if (this.type === tt._catch) {\n let clause = this.startNode()\n this.next()\n if (this.eat(tt.parenL)) {\n clause.param = this.parseBindingAtom()\n let simple = clause.param.type === \"Identifier\"\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0)\n this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL)\n this.expect(tt.parenR)\n } else {\n if (this.options.ecmaVersion < 10) this.unexpected()\n clause.param = null\n this.enterScope(0)\n }\n clause.body = this.parseBlock(false)\n this.exitScope()\n node.handler = this.finishNode(clause, \"CatchClause\")\n }\n node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null\n if (!node.handler && !node.finalizer)\n this.raise(node.start, \"Missing catch or finally clause\")\n return this.finishNode(node, \"TryStatement\")\n}\n\npp.parseVarStatement = function(node, kind) {\n this.next()\n this.parseVar(node, false, kind)\n this.semicolon()\n return this.finishNode(node, \"VariableDeclaration\")\n}\n\npp.parseWhileStatement = function(node) {\n this.next()\n node.test = this.parseParenExpression()\n this.labels.push(loopLabel)\n node.body = this.parseStatement(\"while\")\n this.labels.pop()\n return this.finishNode(node, \"WhileStatement\")\n}\n\npp.parseWithStatement = function(node) {\n if (this.strict) this.raise(this.start, \"'with' in strict mode\")\n this.next()\n node.object = this.parseParenExpression()\n node.body = this.parseStatement(\"with\")\n return this.finishNode(node, \"WithStatement\")\n}\n\npp.parseEmptyStatement = function(node) {\n this.next()\n return this.finishNode(node, \"EmptyStatement\")\n}\n\npp.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (let label of this.labels)\n if (label.name === maybeName)\n this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\")\n let kind = this.type.isLoop ? \"loop\" : this.type === tt._switch ? \"switch\" : null\n for (let i = this.labels.length - 1; i >= 0; i--) {\n let label = this.labels[i]\n if (label.statementStart === node.start) {\n // Update information about previous labels on this node\n label.statementStart = this.start\n label.kind = kind\n } else break\n }\n this.labels.push({name: maybeName, kind, statementStart: this.start})\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\")\n this.labels.pop()\n node.label = expr\n return this.finishNode(node, \"LabeledStatement\")\n}\n\npp.parseExpressionStatement = function(node, expr) {\n node.expression = expr\n this.semicolon()\n return this.finishNode(node, \"ExpressionStatement\")\n}\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp.parseBlock = function(createNewLexicalScope = true, node = this.startNode()) {\n node.body = []\n this.expect(tt.braceL)\n if (createNewLexicalScope) this.enterScope(0)\n while (!this.eat(tt.braceR)) {\n let stmt = this.parseStatement(null)\n node.body.push(stmt)\n }\n if (createNewLexicalScope) this.exitScope()\n return this.finishNode(node, \"BlockStatement\")\n}\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp.parseFor = function(node, init) {\n node.init = init\n this.expect(tt.semi)\n node.test = this.type === tt.semi ? null : this.parseExpression()\n this.expect(tt.semi)\n node.update = this.type === tt.parenR ? null : this.parseExpression()\n this.expect(tt.parenR)\n node.body = this.parseStatement(\"for\")\n this.exitScope()\n this.labels.pop()\n return this.finishNode(node, \"ForStatement\")\n}\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp.parseForIn = function(node, init) {\n let type = this.type === tt._in ? \"ForInStatement\" : \"ForOfStatement\"\n this.next()\n if (type === \"ForInStatement\") {\n if (init.type === \"AssignmentPattern\" ||\n (init.type === \"VariableDeclaration\" && init.declarations[0].init != null &&\n (this.strict || init.declarations[0].id.type !== \"Identifier\")))\n this.raise(init.start, \"Invalid assignment in for-in loop head\")\n }\n node.left = init\n node.right = type === \"ForInStatement\" ? this.parseExpression() : this.parseMaybeAssign()\n this.expect(tt.parenR)\n node.body = this.parseStatement(\"for\")\n this.exitScope()\n this.labels.pop()\n return this.finishNode(node, type)\n}\n\n// Parse a list of variable declarations.\n\npp.parseVar = function(node, isFor, kind) {\n node.declarations = []\n node.kind = kind\n for (;;) {\n let decl = this.startNode()\n this.parseVarId(decl, kind)\n if (this.eat(tt.eq)) {\n decl.init = this.parseMaybeAssign(isFor)\n } else if (kind === \"const\" && !(this.type === tt._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected()\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === tt._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\")\n } else {\n decl.init = null\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"))\n if (!this.eat(tt.comma)) break\n }\n return node\n}\n\npp.parseVarId = function(decl, kind) {\n if ((kind === \"const\" || kind === \"let\") && this.isContextual(\"let\")) {\n this.raiseRecoverable(this.start, \"let is disallowed as a lexically bound name\")\n }\n decl.id = this.parseBindingAtom()\n this.checkLVal(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false)\n}\n\nconst FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp.parseFunction = function(node, statement, allowExpressionBody, isAsync) {\n this.initFunction(node)\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === tt.star && (statement & FUNC_HANGING_STATEMENT))\n this.unexpected()\n node.generator = this.eat(tt.star)\n }\n if (this.options.ecmaVersion >= 8)\n node.async = !!isAsync\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== tt.name ? null : this.parseIdent()\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION)\n }\n\n let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n this.enterScope(functionFlags(node.async, node.generator))\n\n if (!(statement & FUNC_STATEMENT))\n node.id = this.type === tt.name ? this.parseIdent() : null\n\n this.parseFunctionParams(node)\n this.parseFunctionBody(node, allowExpressionBody, false)\n\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n}\n\npp.parseFunctionParams = function(node) {\n this.expect(tt.parenL)\n node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n this.checkYieldAwaitInDefaultParams()\n}\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp.parseClass = function(node, isStatement) {\n this.next()\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n const oldStrict = this.strict\n this.strict = true\n\n this.parseClassId(node, isStatement)\n this.parseClassSuper(node)\n let classBody = this.startNode()\n let hadConstructor = false\n classBody.body = []\n this.expect(tt.braceL)\n while (!this.eat(tt.braceR)) {\n const element = this.parseClassElement(node.superClass !== null)\n if (element) {\n classBody.body.push(element)\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) this.raise(element.start, \"Duplicate constructor in the same class\")\n hadConstructor = true\n }\n }\n }\n node.body = this.finishNode(classBody, \"ClassBody\")\n this.strict = oldStrict\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n}\n\npp.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(tt.semi)) return null\n\n let method = this.startNode()\n const tryContextual = (k, noLineBreak = false) => {\n const start = this.start, startLoc = this.startLoc\n if (!this.eatContextual(k)) return false\n if (this.type !== tt.parenL && (!noLineBreak || !this.canInsertSemicolon())) return true\n if (method.key) this.unexpected()\n method.computed = false\n method.key = this.startNodeAt(start, startLoc)\n method.key.name = k\n this.finishNode(method.key, \"Identifier\")\n return false\n }\n\n method.kind = \"method\"\n method.static = tryContextual(\"static\")\n let isGenerator = this.eat(tt.star)\n let isAsync = false\n if (!isGenerator) {\n if (this.options.ecmaVersion >= 8 && tryContextual(\"async\", true)) {\n isAsync = true\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n } else if (tryContextual(\"get\")) {\n method.kind = \"get\"\n } else if (tryContextual(\"set\")) {\n method.kind = \"set\"\n }\n }\n if (!method.key) this.parsePropertyName(method)\n let {key} = method\n let allowsDirectSuper = false\n if (!method.computed && !method.static && (key.type === \"Identifier\" && key.name === \"constructor\" ||\n key.type === \"Literal\" && key.value === \"constructor\")) {\n if (method.kind !== \"method\") this.raise(key.start, \"Constructor can't have get/set modifier\")\n if (isGenerator) this.raise(key.start, \"Constructor can't be a generator\")\n if (isAsync) this.raise(key.start, \"Constructor can't be an async method\")\n method.kind = \"constructor\"\n allowsDirectSuper = constructorAllowsSuper\n } else if (method.static && key.type === \"Identifier\" && key.name === \"prototype\") {\n this.raise(key.start, \"Classes may not have a static property named prototype\")\n }\n this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper)\n if (method.kind === \"get\" && method.value.params.length !== 0)\n this.raiseRecoverable(method.value.start, \"getter should have no params\")\n if (method.kind === \"set\" && method.value.params.length !== 1)\n this.raiseRecoverable(method.value.start, \"setter should have exactly one param\")\n if (method.kind === \"set\" && method.value.params[0].type === \"RestElement\")\n this.raiseRecoverable(method.value.params[0].start, \"Setter cannot use rest params\")\n return method\n}\n\npp.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper)\n return this.finishNode(method, \"MethodDefinition\")\n}\n\npp.parseClassId = function(node, isStatement) {\n if (this.type === tt.name) {\n node.id = this.parseIdent()\n if (isStatement)\n this.checkLVal(node.id, BIND_LEXICAL, false)\n } else {\n if (isStatement === true)\n this.unexpected()\n node.id = null\n }\n}\n\npp.parseClassSuper = function(node) {\n node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null\n}\n\n// Parses module export declaration.\n\npp.parseExport = function(node, exports) {\n this.next()\n // export * from '...'\n if (this.eat(tt.star)) {\n this.expectContextual(\"from\")\n if (this.type !== tt.string) this.unexpected()\n node.source = this.parseExprAtom()\n this.semicolon()\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(tt._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart)\n let isAsync\n if (this.type === tt._function || (isAsync = this.isAsyncFunction())) {\n let fNode = this.startNode()\n this.next()\n if (isAsync) this.next()\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync)\n } else if (this.type === tt._class) {\n let cNode = this.startNode()\n node.declaration = this.parseClass(cNode, \"nullableID\")\n } else {\n node.declaration = this.parseMaybeAssign()\n this.semicolon()\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null)\n if (node.declaration.type === \"VariableDeclaration\")\n this.checkVariableExport(exports, node.declaration.declarations)\n else\n this.checkExport(exports, node.declaration.id.name, node.declaration.id.start)\n node.specifiers = []\n node.source = null\n } else { // export { x, y as z } [from '...']\n node.declaration = null\n node.specifiers = this.parseExportSpecifiers(exports)\n if (this.eatContextual(\"from\")) {\n if (this.type !== tt.string) this.unexpected()\n node.source = this.parseExprAtom()\n } else {\n for (let spec of node.specifiers) {\n // check for keywords used as local names\n this.checkUnreserved(spec.local)\n // check if export is defined\n this.checkLocalExport(spec.local)\n }\n\n node.source = null\n }\n this.semicolon()\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n}\n\npp.checkExport = function(exports, name, pos) {\n if (!exports) return\n if (has(exports, name))\n this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\")\n exports[name] = true\n}\n\npp.checkPatternExport = function(exports, pat) {\n let type = pat.type\n if (type === \"Identifier\")\n this.checkExport(exports, pat.name, pat.start)\n else if (type === \"ObjectPattern\")\n for (let prop of pat.properties)\n this.checkPatternExport(exports, prop)\n else if (type === \"ArrayPattern\")\n for (let elt of pat.elements) {\n if (elt) this.checkPatternExport(exports, elt)\n }\n else if (type === \"Property\")\n this.checkPatternExport(exports, pat.value)\n else if (type === \"AssignmentPattern\")\n this.checkPatternExport(exports, pat.left)\n else if (type === \"RestElement\")\n this.checkPatternExport(exports, pat.argument)\n else if (type === \"ParenthesizedExpression\")\n this.checkPatternExport(exports, pat.expression)\n}\n\npp.checkVariableExport = function(exports, decls) {\n if (!exports) return\n for (let decl of decls)\n this.checkPatternExport(exports, decl.id)\n}\n\npp.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n}\n\n// Parses a comma-separated list of module exports.\n\npp.parseExportSpecifiers = function(exports) {\n let nodes = [], first = true\n // export { x, y as z } [from '...']\n this.expect(tt.braceL)\n while (!this.eat(tt.braceR)) {\n if (!first) {\n this.expect(tt.comma)\n if (this.afterTrailingComma(tt.braceR)) break\n } else first = false\n\n let node = this.startNode()\n node.local = this.parseIdent(true)\n node.exported = this.eatContextual(\"as\") ? this.parseIdent(true) : node.local\n this.checkExport(exports, node.exported.name, node.exported.start)\n nodes.push(this.finishNode(node, \"ExportSpecifier\"))\n }\n return nodes\n}\n\n// Parses import declaration.\n\npp.parseImport = function(node) {\n this.next()\n // import '...'\n if (this.type === tt.string) {\n node.specifiers = empty\n node.source = this.parseExprAtom()\n } else {\n node.specifiers = this.parseImportSpecifiers()\n this.expectContextual(\"from\")\n node.source = this.type === tt.string ? this.parseExprAtom() : this.unexpected()\n }\n this.semicolon()\n return this.finishNode(node, \"ImportDeclaration\")\n}\n\n// Parses a comma-separated list of module imports.\n\npp.parseImportSpecifiers = function() {\n let nodes = [], first = true\n if (this.type === tt.name) {\n // import defaultObj, { x, y as z } from '...'\n let node = this.startNode()\n node.local = this.parseIdent()\n this.checkLVal(node.local, BIND_LEXICAL)\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"))\n if (!this.eat(tt.comma)) return nodes\n }\n if (this.type === tt.star) {\n let node = this.startNode()\n this.next()\n this.expectContextual(\"as\")\n node.local = this.parseIdent()\n this.checkLVal(node.local, BIND_LEXICAL)\n nodes.push(this.finishNode(node, \"ImportNamespaceSpecifier\"))\n return nodes\n }\n this.expect(tt.braceL)\n while (!this.eat(tt.braceR)) {\n if (!first) {\n this.expect(tt.comma)\n if (this.afterTrailingComma(tt.braceR)) break\n } else first = false\n\n let node = this.startNode()\n node.imported = this.parseIdent(true)\n if (this.eatContextual(\"as\")) {\n node.local = this.parseIdent()\n } else {\n this.checkUnreserved(node.imported)\n node.local = node.imported\n }\n this.checkLVal(node.local, BIND_LEXICAL)\n nodes.push(this.finishNode(node, \"ImportSpecifier\"))\n }\n return nodes\n}\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp.adaptDirectivePrologue = function(statements) {\n for (let i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1)\n }\n}\npp.isDirectiveCandidate = function(statement) {\n return (\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n}\n","import {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {has} from \"./util\"\nimport {BIND_NONE, BIND_OUTSIDE} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\")\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\"\n if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n for (let prop of node.properties) {\n this.toAssignable(prop, isBinding)\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\")\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") this.raise(node.key.start, \"Object pattern can't contain getter or setter\")\n this.toAssignable(node.value, isBinding)\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\"\n if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n this.toAssignableList(node.elements, isBinding)\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\"\n this.toAssignable(node.argument, isBinding)\n if (node.argument.type === \"AssignmentPattern\")\n this.raise(node.argument.start, \"Rest elements cannot have a default value\")\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\")\n node.type = \"AssignmentPattern\"\n delete node.operator\n this.toAssignable(node.left, isBinding)\n // falls through to AssignmentPattern\n\n case \"AssignmentPattern\":\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors)\n break\n\n case \"MemberExpression\":\n if (!isBinding) break\n\n default:\n this.raise(node.start, \"Assigning to rvalue\")\n }\n } else if (refDestructuringErrors) this.checkPatternErrors(refDestructuringErrors, true)\n return node\n}\n\n// Convert list of expression atoms to binding list.\n\npp.toAssignableList = function(exprList, isBinding) {\n let end = exprList.length\n for (let i = 0; i < end; i++) {\n let elt = exprList[i]\n if (elt) this.toAssignable(elt, isBinding)\n }\n if (end) {\n let last = exprList[end - 1]\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n this.unexpected(last.argument.start)\n }\n return exprList\n}\n\n// Parses spread element.\n\npp.parseSpread = function(refDestructuringErrors) {\n let node = this.startNode()\n this.next()\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n return this.finishNode(node, \"SpreadElement\")\n}\n\npp.parseRestBinding = function() {\n let node = this.startNode()\n this.next()\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== tt.name)\n this.unexpected()\n\n node.argument = this.parseBindingAtom()\n\n return this.finishNode(node, \"RestElement\")\n}\n\n// Parses lvalue (assignable) atom.\n\npp.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case tt.bracketL:\n let node = this.startNode()\n this.next()\n node.elements = this.parseBindingList(tt.bracketR, true, true)\n return this.finishNode(node, \"ArrayPattern\")\n\n case tt.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n}\n\npp.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n let elts = [], first = true\n while (!this.eat(close)) {\n if (first) first = false\n else this.expect(tt.comma)\n if (allowEmpty && this.type === tt.comma) {\n elts.push(null)\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === tt.ellipsis) {\n let rest = this.parseRestBinding()\n this.parseBindingListItem(rest)\n elts.push(rest)\n if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n this.expect(close)\n break\n } else {\n let elem = this.parseMaybeDefault(this.start, this.startLoc)\n this.parseBindingListItem(elem)\n elts.push(elem)\n }\n }\n return elts\n}\n\npp.parseBindingListItem = function(param) {\n return param\n}\n\n// Parses assignment pattern around given atom if possible.\n\npp.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom()\n if (this.options.ecmaVersion < 6 || !this.eat(tt.eq)) return left\n let node = this.startNodeAt(startPos, startLoc)\n node.left = left\n node.right = this.parseMaybeAssign()\n return this.finishNode(node, \"AssignmentPattern\")\n}\n\n// Verify that a node is an lval — something that can be assigned\n// to.\n// bindingType can be either:\n// 'var' indicating that the lval creates a 'var' binding\n// 'let' indicating that the lval creates a lexical ('let' or 'const') binding\n// 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references\n\npp.checkLVal = function(expr, bindingType = BIND_NONE, checkClashes) {\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n this.raiseRecoverable(expr.start, (bindingType ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\")\n if (checkClashes) {\n if (has(checkClashes, expr.name))\n this.raiseRecoverable(expr.start, \"Argument name clash\")\n checkClashes[expr.name] = true\n }\n if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) this.declareName(expr.name, bindingType, expr.start)\n break\n\n case \"MemberExpression\":\n if (bindingType) this.raiseRecoverable(expr.start, \"Binding member expression\")\n break\n\n case \"ObjectPattern\":\n for (let prop of expr.properties)\n this.checkLVal(prop, bindingType, checkClashes)\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLVal(expr.value, bindingType, checkClashes)\n break\n\n case \"ArrayPattern\":\n for (let elem of expr.elements) {\n if (elem) this.checkLVal(elem, bindingType, checkClashes)\n }\n break\n\n case \"AssignmentPattern\":\n this.checkLVal(expr.left, bindingType, checkClashes)\n break\n\n case \"RestElement\":\n this.checkLVal(expr.argument, bindingType, checkClashes)\n break\n\n case \"ParenthesizedExpression\":\n this.checkLVal(expr.expression, bindingType, checkClashes)\n break\n\n default:\n this.raise(expr.start, (bindingType ? \"Binding\" : \"Assigning to\") + \" rvalue\")\n }\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {types as tt} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {DestructuringErrors} from \"./parseutil\"\nimport {lineBreak} from \"./whitespace\"\nimport {functionFlags, SCOPE_ARROW, SCOPE_SUPER, SCOPE_DIRECT_SUPER, BIND_OUTSIDE, BIND_VAR} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n return\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n return\n let {key} = prop, name\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n let {kind} = prop\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors && refDestructuringErrors.doubleProto < 0) refDestructuringErrors.doubleProto = key.start\n // Backwards-compat kludge. Can be removed in version 6.0\n else this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\")\n }\n propHash.proto = true\n }\n return\n }\n name = \"$\" + name\n let other = propHash[name]\n if (other) {\n let redefinition\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set\n } else {\n redefinition = other.init || other[kind]\n }\n if (redefinition)\n this.raiseRecoverable(key.start, \"Redefinition of property\")\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n }\n }\n other[kind] = true\n}\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp.parseExpression = function(noIn, refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseMaybeAssign(noIn, refDestructuringErrors)\n if (this.type === tt.comma) {\n let node = this.startNodeAt(startPos, startLoc)\n node.expressions = [expr]\n while (this.eat(tt.comma)) node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors))\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n}\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) return this.parseYield(noIn)\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else this.exprAllowed = false\n }\n\n let ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldShorthandAssign = -1\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign\n oldTrailingComma = refDestructuringErrors.trailingComma\n oldShorthandAssign = refDestructuringErrors.shorthandAssign\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.shorthandAssign = -1\n } else {\n refDestructuringErrors = new DestructuringErrors\n ownDestructuringErrors = true\n }\n\n let startPos = this.start, startLoc = this.startLoc\n if (this.type === tt.parenL || this.type === tt.name)\n this.potentialArrowAt = this.start\n let left = this.parseMaybeConditional(noIn, refDestructuringErrors)\n if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc)\n if (this.type.isAssign) {\n let node = this.startNodeAt(startPos, startLoc)\n node.operator = this.value\n node.left = this.type === tt.eq ? this.toAssignable(left, false, refDestructuringErrors) : left\n if (!ownDestructuringErrors) DestructuringErrors.call(refDestructuringErrors)\n refDestructuringErrors.shorthandAssign = -1 // reset because shorthand default was used correctly\n this.checkLVal(left)\n this.next()\n node.right = this.parseMaybeAssign(noIn)\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) this.checkExpressionErrors(refDestructuringErrors, true)\n }\n if (oldParenAssign > -1) refDestructuringErrors.parenthesizedAssign = oldParenAssign\n if (oldTrailingComma > -1) refDestructuringErrors.trailingComma = oldTrailingComma\n if (oldShorthandAssign > -1) refDestructuringErrors.shorthandAssign = oldShorthandAssign\n return left\n}\n\n// Parse a ternary conditional (`?:`) operator.\n\npp.parseMaybeConditional = function(noIn, refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseExprOps(noIn, refDestructuringErrors)\n if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n if (this.eat(tt.question)) {\n let node = this.startNodeAt(startPos, startLoc)\n node.test = expr\n node.consequent = this.parseMaybeAssign()\n this.expect(tt.colon)\n node.alternate = this.parseMaybeAssign(noIn)\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n}\n\n// Start the precedence parser.\n\npp.parseExprOps = function(noIn, refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseMaybeUnary(refDestructuringErrors, false)\n if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn)\n}\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) {\n let prec = this.type.binop\n if (prec != null && (!noIn || this.type !== tt._in)) {\n if (prec > minPrec) {\n let logical = this.type === tt.logicalOR || this.type === tt.logicalAND\n let op = this.value\n this.next()\n let startPos = this.start, startLoc = this.startLoc\n let right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn)\n let node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical)\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn)\n }\n }\n return left\n}\n\npp.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n let node = this.startNodeAt(startPos, startLoc)\n node.left = left\n node.operator = op\n node.right = right\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n}\n\n// Parse unary operators, both prefix and postfix.\n\npp.parseMaybeUnary = function(refDestructuringErrors, sawUnary) {\n let startPos = this.start, startLoc = this.startLoc, expr\n if (this.isContextual(\"await\") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) {\n expr = this.parseAwait()\n sawUnary = true\n } else if (this.type.prefix) {\n let node = this.startNode(), update = this.type === tt.incDec\n node.operator = this.value\n node.prefix = true\n this.next()\n node.argument = this.parseMaybeUnary(null, true)\n this.checkExpressionErrors(refDestructuringErrors, true)\n if (update) this.checkLVal(node.argument)\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\")\n else sawUnary = true\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\")\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors)\n if (this.checkExpressionErrors(refDestructuringErrors)) return expr\n while (this.type.postfix && !this.canInsertSemicolon()) {\n let node = this.startNodeAt(startPos, startLoc)\n node.operator = this.value\n node.prefix = false\n node.argument = expr\n this.checkLVal(expr)\n this.next()\n expr = this.finishNode(node, \"UpdateExpression\")\n }\n }\n\n if (!sawUnary && this.eat(tt.starstar))\n return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), \"**\", false)\n else\n return expr\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp.parseExprSubscripts = function(refDestructuringErrors) {\n let startPos = this.start, startLoc = this.startLoc\n let expr = this.parseExprAtom(refDestructuringErrors)\n let skipArrowSubscripts = expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\"\n if (this.checkExpressionErrors(refDestructuringErrors) || skipArrowSubscripts) return expr\n let result = this.parseSubscripts(expr, startPos, startLoc)\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) refDestructuringErrors.parenthesizedAssign = -1\n if (refDestructuringErrors.parenthesizedBind >= result.start) refDestructuringErrors.parenthesizedBind = -1\n }\n return result\n}\n\npp.parseSubscripts = function(base, startPos, startLoc, noCalls) {\n let maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && this.input.slice(base.start, base.end) === \"async\"\n while (true) {\n let element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow)\n if (element === base || element.type === \"ArrowFunctionExpression\") return element\n base = element\n }\n}\n\npp.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow) {\n let computed = this.eat(tt.bracketL)\n if (computed || this.eat(tt.dot)) {\n let node = this.startNodeAt(startPos, startLoc)\n node.object = base\n node.property = computed ? this.parseExpression() : this.parseIdent(true)\n node.computed = !!computed\n if (computed) this.expect(tt.bracketR)\n base = this.finishNode(node, \"MemberExpression\")\n } else if (!noCalls && this.eat(tt.parenL)) {\n let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n let exprList = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors)\n if (maybeAsyncArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false)\n this.checkYieldAwaitInDefaultParams()\n if (this.awaitIdentPos > 0)\n this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\")\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true)\n }\n this.checkExpressionErrors(refDestructuringErrors, true)\n this.yieldPos = oldYieldPos || this.yieldPos\n this.awaitPos = oldAwaitPos || this.awaitPos\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos\n let node = this.startNodeAt(startPos, startLoc)\n node.callee = base\n node.arguments = exprList\n base = this.finishNode(node, \"CallExpression\")\n } else if (this.type === tt.backQuote) {\n let node = this.startNodeAt(startPos, startLoc)\n node.tag = base\n node.quasi = this.parseTemplate({isTagged: true})\n base = this.finishNode(node, \"TaggedTemplateExpression\")\n }\n return base\n}\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp.parseExprAtom = function(refDestructuringErrors) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === tt.slash) this.readRegexp()\n\n let node, canBeArrow = this.potentialArrowAt === this.start\n switch (this.type) {\n case tt._super:\n if (!this.allowSuper)\n this.raise(this.start, \"'super' keyword outside a method\")\n node = this.startNode()\n this.next()\n if (this.type === tt.parenL && !this.allowDirectSuper)\n this.raise(node.start, \"super() call outside constructor of a subclass\")\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super Arguments\n if (this.type !== tt.dot && this.type !== tt.bracketL && this.type !== tt.parenL)\n this.unexpected()\n return this.finishNode(node, \"Super\")\n\n case tt._this:\n node = this.startNode()\n this.next()\n return this.finishNode(node, \"ThisExpression\")\n\n case tt.name:\n let startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc\n let id = this.parseIdent(false)\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(tt._function))\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true)\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(tt.arrow))\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false)\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === tt.name && !containsEsc) {\n id = this.parseIdent(false)\n if (this.canInsertSemicolon() || !this.eat(tt.arrow))\n this.unexpected()\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true)\n }\n }\n return id\n\n case tt.regexp:\n let value = this.value\n node = this.parseLiteral(value.value)\n node.regex = {pattern: value.pattern, flags: value.flags}\n return node\n\n case tt.num: case tt.string:\n return this.parseLiteral(this.value)\n\n case tt._null: case tt._true: case tt._false:\n node = this.startNode()\n node.value = this.type === tt._null ? null : this.type === tt._true\n node.raw = this.type.keyword\n this.next()\n return this.finishNode(node, \"Literal\")\n\n case tt.parenL:\n let start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow)\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n refDestructuringErrors.parenthesizedAssign = start\n if (refDestructuringErrors.parenthesizedBind < 0)\n refDestructuringErrors.parenthesizedBind = start\n }\n return expr\n\n case tt.bracketL:\n node = this.startNode()\n this.next()\n node.elements = this.parseExprList(tt.bracketR, true, true, refDestructuringErrors)\n return this.finishNode(node, \"ArrayExpression\")\n\n case tt.braceL:\n return this.parseObj(false, refDestructuringErrors)\n\n case tt._function:\n node = this.startNode()\n this.next()\n return this.parseFunction(node, 0)\n\n case tt._class:\n return this.parseClass(this.startNode(), false)\n\n case tt._new:\n return this.parseNew()\n\n case tt.backQuote:\n return this.parseTemplate()\n\n default:\n this.unexpected()\n }\n}\n\npp.parseLiteral = function(value) {\n let node = this.startNode()\n node.value = value\n node.raw = this.input.slice(this.start, this.end)\n this.next()\n return this.finishNode(node, \"Literal\")\n}\n\npp.parseParenExpression = function() {\n this.expect(tt.parenL)\n let val = this.parseExpression()\n this.expect(tt.parenR)\n return val\n}\n\npp.parseParenAndDistinguishExpression = function(canBeArrow) {\n let startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8\n if (this.options.ecmaVersion >= 6) {\n this.next()\n\n let innerStartPos = this.start, innerStartLoc = this.startLoc\n let exprList = [], first = true, lastIsComma = false\n let refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart\n this.yieldPos = 0\n this.awaitPos = 0\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== tt.parenR) {\n first ? first = false : this.expect(tt.comma)\n if (allowTrailingComma && this.afterTrailingComma(tt.parenR, true)) {\n lastIsComma = true\n break\n } else if (this.type === tt.ellipsis) {\n spreadStart = this.start\n exprList.push(this.parseParenItem(this.parseRestBinding()))\n if (this.type === tt.comma) this.raise(this.start, \"Comma is not permitted after the rest element\")\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem))\n }\n }\n let innerEndPos = this.start, innerEndLoc = this.startLoc\n this.expect(tt.parenR)\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false)\n this.checkYieldAwaitInDefaultParams()\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n return this.parseParenArrowList(startPos, startLoc, exprList)\n }\n\n if (!exprList.length || lastIsComma) this.unexpected(this.lastTokStart)\n if (spreadStart) this.unexpected(spreadStart)\n this.checkExpressionErrors(refDestructuringErrors, true)\n this.yieldPos = oldYieldPos || this.yieldPos\n this.awaitPos = oldAwaitPos || this.awaitPos\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc)\n val.expressions = exprList\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc)\n } else {\n val = exprList[0]\n }\n } else {\n val = this.parseParenExpression()\n }\n\n if (this.options.preserveParens) {\n let par = this.startNodeAt(startPos, startLoc)\n par.expression = val\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n}\n\npp.parseParenItem = function(item) {\n return item\n}\n\npp.parseParenArrowList = function(startPos, startLoc, exprList) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList)\n}\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nconst empty = []\n\npp.parseNew = function() {\n let node = this.startNode()\n let meta = this.parseIdent(true)\n if (this.options.ecmaVersion >= 6 && this.eat(tt.dot)) {\n node.meta = meta\n let containsEsc = this.containsEsc\n node.property = this.parseIdent(true)\n if (node.property.name !== \"target\" || containsEsc)\n this.raiseRecoverable(node.property.start, \"The only valid meta property for new is new.target\")\n if (!this.inNonArrowFunction())\n this.raiseRecoverable(node.start, \"new.target can only be used in functions\")\n return this.finishNode(node, \"MetaProperty\")\n }\n let startPos = this.start, startLoc = this.startLoc\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true)\n if (this.eat(tt.parenL)) node.arguments = this.parseExprList(tt.parenR, this.options.ecmaVersion >= 8, false)\n else node.arguments = empty\n return this.finishNode(node, \"NewExpression\")\n}\n\n// Parse template expression.\n\npp.parseTemplateElement = function({isTagged}) {\n let elem = this.startNode()\n if (this.type === tt.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\")\n }\n elem.value = {\n raw: this.value,\n cooked: null\n }\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n }\n }\n this.next()\n elem.tail = this.type === tt.backQuote\n return this.finishNode(elem, \"TemplateElement\")\n}\n\npp.parseTemplate = function({isTagged = false} = {}) {\n let node = this.startNode()\n this.next()\n node.expressions = []\n let curElt = this.parseTemplateElement({isTagged})\n node.quasis = [curElt]\n while (!curElt.tail) {\n if (this.type === tt.eof) this.raise(this.pos, \"Unterminated template literal\")\n this.expect(tt.dollarBraceL)\n node.expressions.push(this.parseExpression())\n this.expect(tt.braceR)\n node.quasis.push(curElt = this.parseTemplateElement({isTagged}))\n }\n this.next()\n return this.finishNode(node, \"TemplateLiteral\")\n}\n\npp.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === tt.name || this.type === tt.num || this.type === tt.string || this.type === tt.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === tt.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n}\n\n// Parse an object literal or binding pattern.\n\npp.parseObj = function(isPattern, refDestructuringErrors) {\n let node = this.startNode(), first = true, propHash = {}\n node.properties = []\n this.next()\n while (!this.eat(tt.braceR)) {\n if (!first) {\n this.expect(tt.comma)\n if (this.afterTrailingComma(tt.braceR)) break\n } else first = false\n\n const prop = this.parseProperty(isPattern, refDestructuringErrors)\n if (!isPattern) this.checkPropClash(prop, propHash, refDestructuringErrors)\n node.properties.push(prop)\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n}\n\npp.parseProperty = function(isPattern, refDestructuringErrors) {\n let prop = this.startNode(), isGenerator, isAsync, startPos, startLoc\n if (this.options.ecmaVersion >= 9 && this.eat(tt.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false)\n if (this.type === tt.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\")\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // To disallow parenthesized identifier via `this.toAssignable()`.\n if (this.type === tt.parenL && refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0) {\n refDestructuringErrors.parenthesizedAssign = this.start\n }\n if (refDestructuringErrors.parenthesizedBind < 0) {\n refDestructuringErrors.parenthesizedBind = this.start\n }\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors)\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === tt.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false\n prop.shorthand = false\n if (isPattern || refDestructuringErrors) {\n startPos = this.start\n startLoc = this.startLoc\n }\n if (!isPattern)\n isGenerator = this.eat(tt.star)\n }\n let containsEsc = this.containsEsc\n this.parsePropertyName(prop)\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(tt.star)\n this.parsePropertyName(prop, refDestructuringErrors)\n } else {\n isAsync = false\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc)\n return this.finishNode(prop, \"Property\")\n}\n\npp.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === tt.colon)\n this.unexpected()\n\n if (this.eat(tt.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors)\n prop.kind = \"init\"\n } else if (this.options.ecmaVersion >= 6 && this.type === tt.parenL) {\n if (isPattern) this.unexpected()\n prop.kind = \"init\"\n prop.method = true\n prop.value = this.parseMethod(isGenerator, isAsync)\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== tt.comma && this.type !== tt.braceR)) {\n if (isGenerator || isAsync) this.unexpected()\n prop.kind = prop.key.name\n this.parsePropertyName(prop)\n prop.value = this.parseMethod(false)\n let paramCount = prop.kind === \"get\" ? 0 : 1\n if (prop.value.params.length !== paramCount) {\n let start = prop.value.start\n if (prop.kind === \"get\")\n this.raiseRecoverable(start, \"getter should have no params\")\n else\n this.raiseRecoverable(start, \"setter should have exactly one param\")\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\")\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) this.unexpected()\n this.checkUnreserved(prop.key)\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n this.awaitIdentPos = startPos\n prop.kind = \"init\"\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n } else if (this.type === tt.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n refDestructuringErrors.shorthandAssign = this.start\n prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key)\n } else {\n prop.value = prop.key\n }\n prop.shorthand = true\n } else this.unexpected()\n}\n\npp.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(tt.bracketL)) {\n prop.computed = true\n prop.key = this.parseMaybeAssign()\n this.expect(tt.bracketR)\n return prop.key\n } else {\n prop.computed = false\n }\n }\n return prop.key = this.type === tt.num || this.type === tt.string ? this.parseExprAtom() : this.parseIdent(true)\n}\n\n// Initialize empty function node.\n\npp.initFunction = function(node) {\n node.id = null\n if (this.options.ecmaVersion >= 6) node.generator = node.expression = false\n if (this.options.ecmaVersion >= 8) node.async = false\n}\n\n// Parse object or class method.\n\npp.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n let node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n this.initFunction(node)\n if (this.options.ecmaVersion >= 6)\n node.generator = isGenerator\n if (this.options.ecmaVersion >= 8)\n node.async = !!isAsync\n\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0))\n\n this.expect(tt.parenL)\n node.params = this.parseBindingList(tt.parenR, false, this.options.ecmaVersion >= 8)\n this.checkYieldAwaitInDefaultParams()\n this.parseFunctionBody(node, false, true)\n\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.finishNode(node, \"FunctionExpression\")\n}\n\n// Parse arrow function expression with given parameters.\n\npp.parseArrowExpression = function(node, params, isAsync) {\n let oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW)\n this.initFunction(node)\n if (this.options.ecmaVersion >= 8) node.async = !!isAsync\n\n this.yieldPos = 0\n this.awaitPos = 0\n this.awaitIdentPos = 0\n\n node.params = this.toAssignableList(params, true)\n this.parseFunctionBody(node, true, false)\n\n this.yieldPos = oldYieldPos\n this.awaitPos = oldAwaitPos\n this.awaitIdentPos = oldAwaitIdentPos\n return this.finishNode(node, \"ArrowFunctionExpression\")\n}\n\n// Parse function body and check parameters.\n\npp.parseFunctionBody = function(node, isArrowFunction, isMethod) {\n let isExpression = isArrowFunction && this.type !== tt.braceL\n let oldStrict = this.strict, useStrict = false\n\n if (isExpression) {\n node.body = this.parseMaybeAssign()\n node.expression = true\n this.checkParams(node, false)\n } else {\n let nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params)\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end)\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\")\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n let oldLabels = this.labels\n this.labels = []\n if (useStrict) this.strict = true\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params))\n node.body = this.parseBlock(false)\n node.expression = false\n this.adaptDirectivePrologue(node.body.body)\n this.labels = oldLabels\n }\n this.exitScope()\n\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) this.checkLVal(node.id, BIND_OUTSIDE)\n this.strict = oldStrict\n}\n\npp.isSimpleParamList = function(params) {\n for (let param of params)\n if (param.type !== \"Identifier\") return false\n return true\n}\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp.checkParams = function(node, allowDuplicates) {\n let nameHash = {}\n for (let param of node.params)\n this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash)\n}\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n let elts = [], first = true\n while (!this.eat(close)) {\n if (!first) {\n this.expect(tt.comma)\n if (allowTrailingComma && this.afterTrailingComma(close)) break\n } else first = false\n\n let elt\n if (allowEmpty && this.type === tt.comma)\n elt = null\n else if (this.type === tt.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors)\n if (refDestructuringErrors && this.type === tt.comma && refDestructuringErrors.trailingComma < 0)\n refDestructuringErrors.trailingComma = this.start\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors)\n }\n elts.push(elt)\n }\n return elts\n}\n\npp.checkUnreserved = function({start, end, name}) {\n if (this.inGenerator && name === \"yield\")\n this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\")\n if (this.inAsync && name === \"await\")\n this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\")\n if (this.keywords.test(name))\n this.raise(start, `Unexpected keyword '${name}'`)\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) return\n const re = this.strict ? this.reservedWordsStrict : this.reservedWords\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\")\n this.raiseRecoverable(start, `The keyword '${name}' is reserved`)\n }\n}\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp.parseIdent = function(liberal, isBinding) {\n let node = this.startNode()\n if (liberal && this.options.allowReserved === \"never\") liberal = false\n if (this.type === tt.name) {\n node.name = this.value\n } else if (this.type.keyword) {\n node.name = this.type.keyword\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop()\n }\n } else {\n this.unexpected()\n }\n this.next()\n this.finishNode(node, \"Identifier\")\n if (!liberal) {\n this.checkUnreserved(node)\n if (node.name === \"await\" && !this.awaitIdentPos)\n this.awaitIdentPos = node.start\n }\n return node\n}\n\n// Parses yield expression inside generator.\n\npp.parseYield = function(noIn) {\n if (!this.yieldPos) this.yieldPos = this.start\n\n let node = this.startNode()\n this.next()\n if (this.type === tt.semi || this.canInsertSemicolon() || (this.type !== tt.star && !this.type.startsExpr)) {\n node.delegate = false\n node.argument = null\n } else {\n node.delegate = this.eat(tt.star)\n node.argument = this.parseMaybeAssign(noIn)\n }\n return this.finishNode(node, \"YieldExpression\")\n}\n\npp.parseAwait = function() {\n if (!this.awaitPos) this.awaitPos = this.start\n\n let node = this.startNode()\n this.next()\n node.argument = this.parseMaybeUnary(null, true)\n return this.finishNode(node, \"AwaitExpression\")\n}\n","import {Parser} from \"./state\"\nimport {Position, getLineInfo} from \"./locutil\"\n\nconst pp = Parser.prototype\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp.raise = function(pos, message) {\n let loc = getLineInfo(this.input, pos)\n message += \" (\" + loc.line + \":\" + loc.column + \")\"\n let err = new SyntaxError(message)\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos\n throw err\n}\n\npp.raiseRecoverable = pp.raise\n\npp.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n}\n","import {Parser} from \"./state\"\nimport {SCOPE_VAR, SCOPE_FUNCTION, SCOPE_TOP, SCOPE_ARROW, SCOPE_SIMPLE_CATCH, BIND_LEXICAL, BIND_SIMPLE_CATCH, BIND_FUNCTION} from \"./scopeflags\"\n\nconst pp = Parser.prototype\n\nclass Scope {\n constructor(flags) {\n this.flags = flags\n // A list of var-declared names in the current lexical scope\n this.var = []\n // A list of lexically-declared names in the current lexical scope\n this.lexical = []\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = []\n }\n}\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags))\n}\n\npp.exitScope = function() {\n this.scopeStack.pop()\n}\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n}\n\npp.declareName = function(name, bindingType, pos) {\n let redeclared = false\n if (bindingType === BIND_LEXICAL) {\n const scope = this.currentScope()\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n scope.lexical.push(name)\n if (this.inModule && (scope.flags & SCOPE_TOP))\n delete this.undefinedExports[name]\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n const scope = this.currentScope()\n scope.lexical.push(name)\n } else if (bindingType === BIND_FUNCTION) {\n const scope = this.currentScope()\n if (this.treatFunctionsAsVar)\n redeclared = scope.lexical.indexOf(name) > -1\n else\n redeclared = scope.lexical.indexOf(name) > -1 || scope.var.indexOf(name) > -1\n scope.functions.push(name)\n } else {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n const scope = this.scopeStack[i]\n if (scope.lexical.indexOf(name) > -1 && !((scope.flags & SCOPE_SIMPLE_CATCH) && scope.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1) {\n redeclared = true\n break\n }\n scope.var.push(name)\n if (this.inModule && (scope.flags & SCOPE_TOP))\n delete this.undefinedExports[name]\n if (scope.flags & SCOPE_VAR) break\n }\n }\n if (redeclared) this.raiseRecoverable(pos, `Identifier '${name}' has already been declared`)\n}\n\npp.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id\n }\n}\n\npp.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n}\n\npp.currentVarScope = function() {\n for (let i = this.scopeStack.length - 1;; i--) {\n let scope = this.scopeStack[i]\n if (scope.flags & SCOPE_VAR) return scope\n }\n}\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp.currentThisScope = function() {\n for (let i = this.scopeStack.length - 1;; i--) {\n let scope = this.scopeStack[i]\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) return scope\n }\n}\n","import {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\n\nexport class Node {\n constructor(parser, pos, loc) {\n this.type = \"\"\n this.start = pos\n this.end = 0\n if (parser.options.locations)\n this.loc = new SourceLocation(parser, loc)\n if (parser.options.directSourceFile)\n this.sourceFile = parser.options.directSourceFile\n if (parser.options.ranges)\n this.range = [pos, 0]\n }\n}\n\n// Start an AST node, attaching a start offset.\n\nconst pp = Parser.prototype\n\npp.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n}\n\npp.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n}\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type\n node.end = pos\n if (this.options.locations)\n node.loc.end = loc\n if (this.options.ranges)\n node.range[1] = pos\n return node\n}\n\npp.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n}\n\n// Finish node at given position\n\npp.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n}\n","// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport {Parser} from \"./state\"\nimport {types as tt} from \"./tokentype\"\nimport {lineBreak} from \"./whitespace\"\n\nexport class TokContext {\n constructor(token, isExpr, preserveSpace, override, generator) {\n this.token = token\n this.isExpr = !!isExpr\n this.preserveSpace = !!preserveSpace\n this.override = override\n this.generator = !!generator\n }\n}\n\nexport const types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, p => p.tryReadTemplateToken()),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n}\n\nconst pp = Parser.prototype\n\npp.initialContext = function() {\n return [types.b_stat]\n}\n\npp.braceIsBlock = function(prevType) {\n let parent = this.curContext()\n if (parent === types.f_expr || parent === types.f_stat)\n return true\n if (prevType === tt.colon && (parent === types.b_stat || parent === types.b_expr))\n return !parent.isExpr\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === tt._return || prevType === tt.name && this.exprAllowed)\n return lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n if (prevType === tt._else || prevType === tt.semi || prevType === tt.eof || prevType === tt.parenR || prevType === tt.arrow)\n return true\n if (prevType === tt.braceL)\n return parent === types.b_stat\n if (prevType === tt._var || prevType === tt._const || prevType === tt.name)\n return false\n return !this.exprAllowed\n}\n\npp.inGeneratorContext = function() {\n for (let i = this.context.length - 1; i >= 1; i--) {\n let context = this.context[i]\n if (context.token === \"function\")\n return context.generator\n }\n return false\n}\n\npp.updateContext = function(prevType) {\n let update, type = this.type\n if (type.keyword && prevType === tt.dot)\n this.exprAllowed = false\n else if (update = type.updateContext)\n update.call(this, prevType)\n else\n this.exprAllowed = type.beforeExpr\n}\n\n// Token-specific context update code\n\ntt.parenR.updateContext = tt.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true\n return\n }\n let out = this.context.pop()\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop()\n }\n this.exprAllowed = !out.isExpr\n}\n\ntt.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr)\n this.exprAllowed = true\n}\n\ntt.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl)\n this.exprAllowed = true\n}\n\ntt.parenL.updateContext = function(prevType) {\n let statementParens = prevType === tt._if || prevType === tt._for || prevType === tt._with || prevType === tt._while\n this.context.push(statementParens ? types.p_stat : types.p_expr)\n this.exprAllowed = true\n}\n\ntt.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n}\n\ntt._function.updateContext = tt._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== tt.semi && prevType !== tt._else &&\n !(prevType === tt._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === tt.colon || prevType === tt.braceL) && this.curContext() === types.b_stat))\n this.context.push(types.f_expr)\n else\n this.context.push(types.f_stat)\n this.exprAllowed = false\n}\n\ntt.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n this.context.pop()\n else\n this.context.push(types.q_tmpl)\n this.exprAllowed = false\n}\n\ntt.star.updateContext = function(prevType) {\n if (prevType === tt._function) {\n let index = this.context.length - 1\n if (this.context[index] === types.f_expr)\n this.context[index] = types.f_expr_gen\n else\n this.context[index] = types.f_gen\n }\n this.exprAllowed = true\n}\n\ntt.name.updateContext = function(prevType) {\n let allowed = false\n if (this.options.ecmaVersion >= 6 && prevType !== tt.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n allowed = true\n }\n this.exprAllowed = allowed\n}\n","import {wordsRegexp} from \"./util.js\"\n\n// This file contains Unicode properties extracted from the ECMAScript\n// specification. The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nconst ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\"\nconst unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma9BinaryProperties + \" Extended_Pictographic\"\n}\n\n// #table-unicode-general-category-values\nconst unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\"\n\n// #table-unicode-script-values\nconst ecma9ScriptValues = \"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\"\nconst unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\"\n}\n\nconst data = {}\nfunction buildUnicodeData(ecmaVersion) {\n let d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n }\n d.nonBinary.Script_Extensions = d.nonBinary.Script\n\n d.nonBinary.gc = d.nonBinary.General_Category\n d.nonBinary.sc = d.nonBinary.Script\n d.nonBinary.scx = d.nonBinary.Script_Extensions\n}\nbuildUnicodeData(9)\nbuildUnicodeData(10)\n\nexport default data\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier.js\"\nimport {Parser} from \"./state.js\"\nimport UNICODE_PROPERTY_VALUES from \"./unicode-property-data.js\"\nimport {has} from \"./util.js\"\n\nconst pp = Parser.prototype\n\nexport class RegExpValidationState {\n constructor(parser) {\n this.parser = parser\n this.validFlags = `gim${parser.options.ecmaVersion >= 6 ? \"uy\" : \"\"}${parser.options.ecmaVersion >= 9 ? \"s\" : \"\"}`\n this.unicodeProperties = UNICODE_PROPERTY_VALUES[parser.options.ecmaVersion >= 10 ? 10 : parser.options.ecmaVersion]\n this.source = \"\"\n this.flags = \"\"\n this.start = 0\n this.switchU = false\n this.switchN = false\n this.pos = 0\n this.lastIntValue = 0\n this.lastStringValue = \"\"\n this.lastAssertionIsQuantifiable = false\n this.numCapturingParens = 0\n this.maxBackReference = 0\n this.groupNames = []\n this.backReferenceNames = []\n }\n\n reset(start, pattern, flags) {\n const unicode = flags.indexOf(\"u\") !== -1\n this.start = start | 0\n this.source = pattern + \"\"\n this.flags = flags\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9\n }\n\n raise(message) {\n this.parser.raiseRecoverable(this.start, `Invalid regular expression: /${this.source}/: ${message}`)\n }\n\n // If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\n at(i) {\n const s = this.source\n const l = s.length\n if (i >= l) {\n return -1\n }\n const c = s.charCodeAt(i)\n if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n return (c << 10) + s.charCodeAt(i + 1) - 0x35FDC00\n }\n\n nextIndex(i) {\n const s = this.source\n const l = s.length\n if (i >= l) {\n return l\n }\n const c = s.charCodeAt(i)\n if (!this.switchU || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return i + 1\n }\n return i + 2\n }\n\n current() {\n return this.at(this.pos)\n }\n\n lookahead() {\n return this.at(this.nextIndex(this.pos))\n }\n\n advance() {\n this.pos = this.nextIndex(this.pos)\n }\n\n eat(ch) {\n if (this.current() === ch) {\n this.advance()\n return true\n }\n return false\n }\n}\n\nfunction codePointToString(ch) {\n if (ch <= 0xFFFF) return String.fromCharCode(ch)\n ch -= 0x10000\n return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)\n}\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpFlags = function(state) {\n const validFlags = state.validFlags\n const flags = state.flags\n\n for (let i = 0; i < flags.length; i++) {\n const flag = flags.charAt(i)\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\")\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\")\n }\n }\n}\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp.validateRegExpPattern = function(state) {\n this.regexp_pattern(state)\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true\n this.regexp_pattern(state)\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp.regexp_pattern = function(state) {\n state.pos = 0\n state.lastIntValue = 0\n state.lastStringValue = \"\"\n state.lastAssertionIsQuantifiable = false\n state.numCapturingParens = 0\n state.maxBackReference = 0\n state.groupNames.length = 0\n state.backReferenceNames.length = 0\n\n this.regexp_disjunction(state)\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\")\n }\n if (state.eat(0x5D /* [ */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\")\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\")\n }\n for (const name of state.backReferenceNames) {\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\")\n }\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp.regexp_disjunction = function(state) {\n this.regexp_alternative(state)\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state)\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\")\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\")\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n ;\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\")\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state)\n return true\n }\n\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp.regexp_eatAssertion = function(state) {\n const start = state.pos\n state.lastAssertionIsQuantifiable = false\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n let lookbehind = false\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */)\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state)\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\")\n }\n state.lastAssertionIsQuantifiable = !lookbehind\n return true\n }\n }\n\n state.pos = start\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp.regexp_eatQuantifier = function(state, noError = false) {\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */)\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n}\npp.regexp_eatBracedQuantifier = function(state, noError) {\n const start = state.pos\n if (state.eat(0x7B /* { */)) {\n let min = 0, max = -1\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\")\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\")\n }\n state.pos = start\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n}\npp.regexp_eatReverseSolidusAtomEscape = function(state) {\n const start = state.pos\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatUncapturingGroup = function(state) {\n const start = state.pos\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state)\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\")\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state)\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\")\n }\n this.regexp_disjunction(state)\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1\n return true\n }\n state.raise(\"Unterminated group\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp.regexp_eatSyntaxCharacter = function(state) {\n const ch = state.current()\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch\n state.advance()\n return true\n }\n return false\n}\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp.regexp_eatPatternCharacters = function(state) {\n const start = state.pos\n let ch = 0\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance()\n }\n return state.pos !== start\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp.regexp_eatExtendedPatternCharacter = function(state) {\n const ch = state.current()\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance()\n return true\n }\n return false\n}\n\n// GroupSpecifier[U] ::\n// [empty]\n// `?` GroupName[?U]\npp.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\")\n }\n state.groupNames.push(state.lastStringValue)\n return\n }\n state.raise(\"Invalid group\")\n }\n}\n\n// GroupName[U] ::\n// `<` RegExpIdentifierName[?U] `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\"\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\")\n }\n return false\n}\n\n// RegExpIdentifierName[U] ::\n// RegExpIdentifierStart[?U]\n// RegExpIdentifierName[?U] RegExpIdentifierPart[?U]\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\"\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue)\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue)\n }\n return true\n }\n return false\n}\n\n// RegExpIdentifierStart[U] ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[?U]\npp.regexp_eatRegExpIdentifierStart = function(state) {\n const start = state.pos\n let ch = state.current()\n state.advance()\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n ch = state.lastIntValue\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch\n return true\n }\n\n state.pos = start\n return false\n}\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart[U] ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[?U]\n// \n// \npp.regexp_eatRegExpIdentifierPart = function(state) {\n const start = state.pos\n let ch = state.current()\n state.advance()\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state)) {\n ch = state.lastIntValue\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch\n return true\n }\n\n state.pos = start\n return false\n}\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\")\n }\n state.raise(\"Invalid escape\")\n }\n return false\n}\npp.regexp_eatBackReference = function(state) {\n const start = state.pos\n if (this.regexp_eatDecimalEscape(state)) {\n const n = state.lastIntValue\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue)\n return true\n }\n state.raise(\"Invalid named reference\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n}\npp.regexp_eatCControlLetter = function(state) {\n const start = state.pos\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start\n }\n return false\n}\npp.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0\n state.advance()\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp.regexp_eatControlEscape = function(state) {\n const ch = state.current()\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09 /* \\t */\n state.advance()\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A /* \\n */\n state.advance()\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B /* \\v */\n state.advance()\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C /* \\f */\n state.advance()\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D /* \\r */\n state.advance()\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp.regexp_eatControlLetter = function(state) {\n const ch = state.current()\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20\n state.advance()\n return true\n }\n return false\n}\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp.regexp_eatRegExpUnicodeEscapeSequence = function(state) {\n const start = state.pos\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n const lead = state.lastIntValue\n if (state.switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n const leadSurrogateEnd = state.pos\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n const trail = state.lastIntValue\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000\n return true\n }\n }\n state.pos = leadSurrogateEnd\n state.lastIntValue = lead\n }\n return true\n }\n if (\n state.switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid unicode escape\")\n }\n state.pos = start\n }\n\n return false\n}\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F /* / */\n return true\n }\n return false\n }\n\n const ch = state.current()\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch\n state.advance()\n return true\n }\n\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0\n let ch = state.current()\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n state.advance()\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp.regexp_eatCharacterClassEscape = function(state) {\n const ch = state.current()\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1\n state.advance()\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1\n state.advance()\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\")\n }\n\n return false\n}\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp.regexp_eatUnicodePropertyValueExpression = function(state) {\n const start = state.pos\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n const name = state.lastStringValue\n if (this.regexp_eatUnicodePropertyValue(state)) {\n const value = state.lastStringValue\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value)\n return true\n }\n }\n state.pos = start\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n const nameOrValue = state.lastStringValue\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue)\n return true\n }\n return false\n}\npp.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!has(state.unicodeProperties.nonBinary, name))\n state.raise(\"Invalid property name\")\n if (!state.unicodeProperties.nonBinary[name].test(value))\n state.raise(\"Invalid property value\")\n}\npp.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n state.raise(\"Invalid property name\")\n}\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp.regexp_eatUnicodePropertyName = function(state) {\n let ch = 0\n state.lastStringValue = \"\"\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch)\n state.advance()\n }\n return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp.regexp_eatUnicodePropertyValue = function(state) {\n let ch = 0\n state.lastStringValue = \"\"\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch)\n state.advance()\n }\n return state.lastStringValue !== \"\"\n}\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */)\n this.regexp_classRanges(state)\n if (state.eat(0x5D /* [ */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\")\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n const left = state.lastIntValue\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n const right = state.lastIntValue\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\")\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\")\n }\n }\n }\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp.regexp_eatClassAtom = function(state) {\n const start = state.pos\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n const ch = state.current()\n if (ch === 0x63 /* c */ || isOctalDigit(ch)) {\n state.raise(\"Invalid class escape\")\n }\n state.raise(\"Invalid escape\")\n }\n state.pos = start\n }\n\n const ch = state.current()\n if (ch !== 0x5D /* [ */) {\n state.lastIntValue = ch\n state.advance()\n return true\n }\n\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp.regexp_eatClassEscape = function(state) {\n const start = state.pos\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08 /* */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp.regexp_eatClassControlLetter = function(state) {\n const ch = state.current()\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20\n state.advance()\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatHexEscapeSequence = function(state) {\n const start = state.pos\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\")\n }\n state.pos = start\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp.regexp_eatDecimalDigits = function(state) {\n const start = state.pos\n let ch = 0\n state.lastIntValue = 0\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */)\n state.advance()\n }\n return state.pos !== start\n}\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp.regexp_eatHexDigits = function(state) {\n const start = state.pos\n let ch = 0\n state.lastIntValue = 0\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n state.advance()\n }\n return state.pos !== start\n}\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n const n1 = state.lastIntValue\n if (this.regexp_eatOctalDigit(state)) {\n const n2 = state.lastIntValue\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue\n } else {\n state.lastIntValue = n1 * 8 + n2\n }\n } else {\n state.lastIntValue = n1\n }\n return true\n }\n return false\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp.regexp_eatOctalDigit = function(state) {\n const ch = state.current()\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30 /* 0 */\n state.advance()\n return true\n }\n state.lastIntValue = 0\n return false\n}\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp.regexp_eatFixedHexDigits = function(state, length) {\n const start = state.pos\n state.lastIntValue = 0\n for (let i = 0; i < length; ++i) {\n const ch = state.current()\n if (!isHexDigit(ch)) {\n state.pos = start\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch)\n state.advance()\n }\n return true\n}\n","import {isIdentifierStart, isIdentifierChar} from \"./identifier\"\nimport {types as tt, keywords as keywordTypes} from \"./tokentype\"\nimport {Parser} from \"./state\"\nimport {SourceLocation} from \"./locutil\"\nimport {RegExpValidationState} from \"./regexp\"\nimport {lineBreak, lineBreakG, isNewLine, nonASCIIwhitespace} from \"./whitespace\"\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(p) {\n this.type = p.type\n this.value = p.value\n this.start = p.start\n this.end = p.end\n if (p.options.locations)\n this.loc = new SourceLocation(p, p.startLoc, p.endLoc)\n if (p.options.ranges)\n this.range = [p.start, p.end]\n }\n}\n\n// ## Tokenizer\n\nconst pp = Parser.prototype\n\n// Move to the next token\n\npp.next = function() {\n if (this.options.onToken)\n this.options.onToken(new Token(this))\n\n this.lastTokEnd = this.end\n this.lastTokStart = this.start\n this.lastTokEndLoc = this.endLoc\n this.lastTokStartLoc = this.startLoc\n this.nextToken()\n}\n\npp.getToken = function() {\n this.next()\n return new Token(this)\n}\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n pp[Symbol.iterator] = function() {\n return {\n next: () => {\n let token = this.getToken()\n return {\n done: token.type === tt.eof,\n value: token\n }\n }\n }\n }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\npp.curContext = function() {\n return this.context[this.context.length - 1]\n}\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n let curContext = this.curContext()\n if (!curContext || !curContext.preserveSpace) this.skipSpace()\n\n this.start = this.pos\n if (this.options.locations) this.startLoc = this.curPosition()\n if (this.pos >= this.input.length) return this.finishToken(tt.eof)\n\n if (curContext.override) return curContext.override(this)\n else this.readToken(this.fullCharCodeAtPos())\n}\n\npp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n return this.readWord()\n\n return this.getTokenFromCode(code)\n}\n\npp.fullCharCodeAtPos = function() {\n let code = this.input.charCodeAt(this.pos)\n if (code <= 0xd7ff || code >= 0xe000) return code\n let next = this.input.charCodeAt(this.pos + 1)\n return (code << 10) + next - 0x35fdc00\n}\n\npp.skipBlockComment = function() {\n let startLoc = this.options.onComment && this.curPosition()\n let start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2)\n if (end === -1) this.raise(this.pos - 2, \"Unterminated comment\")\n this.pos = end + 2\n if (this.options.locations) {\n lineBreakG.lastIndex = start\n let match\n while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {\n ++this.curLine\n this.lineStart = match.index + match[0].length\n }\n }\n if (this.options.onComment)\n this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition())\n}\n\npp.skipLineComment = function(startSkip) {\n let start = this.pos\n let startLoc = this.options.onComment && this.curPosition()\n let ch = this.input.charCodeAt(this.pos += startSkip)\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos)\n }\n if (this.options.onComment)\n this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition())\n}\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n let ch = this.input.charCodeAt(this.pos)\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos\n }\n case 10: case 8232: case 8233:\n ++this.pos\n if (this.options.locations) {\n ++this.curLine\n this.lineStart = this.pos\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment()\n break\n case 47:\n this.skipLineComment(2)\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos\n } else {\n break loop\n }\n }\n }\n}\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n this.end = this.pos\n if (this.options.locations) this.endLoc = this.curPosition()\n let prevType = this.type\n this.type = type\n this.value = val\n\n this.updateContext(prevType)\n}\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n let next = this.input.charCodeAt(this.pos + 1)\n if (next >= 48 && next <= 57) return this.readNumber(true)\n let next2 = this.input.charCodeAt(this.pos + 2)\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3\n return this.finishToken(tt.ellipsis)\n } else {\n ++this.pos\n return this.finishToken(tt.dot)\n }\n}\n\npp.readToken_slash = function() { // '/'\n let next = this.input.charCodeAt(this.pos + 1)\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.slash, 1)\n}\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n let tokentype = code === 42 ? tt.star : tt.modulo\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size\n tokentype = tt.starstar\n next = this.input.charCodeAt(this.pos + 2)\n }\n\n if (next === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tokentype, size)\n}\n\npp.readToken_pipe_amp = function(code) { // '|&'\n let next = this.input.charCodeAt(this.pos + 1)\n if (next === code) return this.finishOp(code === 124 ? tt.logicalOR : tt.logicalAND, 2)\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(code === 124 ? tt.bitwiseOR : tt.bitwiseAND, 1)\n}\n\npp.readToken_caret = function() { // '^'\n let next = this.input.charCodeAt(this.pos + 1)\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.bitwiseXOR, 1)\n}\n\npp.readToken_plus_min = function(code) { // '+-'\n let next = this.input.charCodeAt(this.pos + 1)\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // ` - - -- [Installation](#installation) - - [Excluding deprecated rules](#excluding-deprecated-rules) -- [CLI helper tool](#cli-helper-tool) -- [Example configuration](#example-configuration) -- [Special rules](#special-rules) - - [arrow-body-style and prefer-arrow-callback](#arrow-body-style-and-prefer-arrow-callback) - - [curly](#curly) - - [lines-around-comment](#lines-around-comment) - - [max-len](#max-len) - - [no-confusing-arrow](#no-confusing-arrow) - - [no-mixed-operators](#no-mixed-operators) - - [no-tabs](#no-tabs) - - [no-unexpected-multiline](#no-unexpected-multiline) - - [quotes](#quotes) - - [Enforce backticks](#enforce-backticks) - - [Forbid unnecessary backticks](#forbid-unnecessary-backticks) - - [Example _double_ quote configuration](#example-_double_-quote-configuration) - - [Example _single_ quote configuration](#example-_single_-quote-configuration) - - [vue/html-self-closing](#vuehtml-self-closing) -- [Other rules worth mentioning](#other-rules-worth-mentioning) - - [no-sequences](#no-sequences) -- [Contributing](#contributing) -- [License](#license) - - - -## Installation - -Install eslint-config-prettier: - -``` -npm install --save-dev eslint-config-prettier -``` - -Then, add eslint-config-prettier to the "extends" array in your `.eslintrc.*` file. Make sure to put it **last,** so it gets the chance to override other configs. - - -```json -{ - "extends": [ - "some-other-config-you-use", - "prettier" - ] -} -``` - -A few ESLint plugins are supported as well: - -- [@typescript-eslint/eslint-plugin] -- [eslint-plugin-babel] -- [eslint-plugin-flowtype] -- [eslint-plugin-react] -- [eslint-plugin-standard] -- [eslint-plugin-unicorn] -- [eslint-plugin-vue] - -Add extra exclusions for the plugins you use like so: - - -```json -{ - "extends": [ - "some-other-config-you-use", - "prettier", - "prettier/@typescript-eslint", - "prettier/babel", - "prettier/flowtype", - "prettier/react", - "prettier/standard", - "prettier/unicorn", - "prettier/vue" - ] -} -``` - -If you extend a config which uses a plugin, it is recommended to add `"prettier/that-plugin"` (if available). For example, [eslint-config-airbnb] enables [eslint-plugin-react] rules, so `"prettier/react"` is needed: - - -```json -{ - "extends": [ - "airbnb", - "prettier", - "prettier/react" - ] -} -``` - -If you’re unsure which plugins are used, you can usually find them in your `package.json`. - -### Excluding deprecated rules - -Some of the rules that eslint-config-prettier turns off may be deprecated. **This is perfectly fine,** but if you really need to omit the deprecated rules, you can do so by setting the `ESLINT_CONFIG_PRETTIER_NO_DEPRECATED` environment variable to a non-empty value. For example: - -``` -env ESLINT_CONFIG_PRETTIER_NO_DEPRECATED=true npx eslint-find-rules --deprecated index.js -``` - -## CLI helper tool - -eslint-config-prettier also ships with a little CLI tool to help you check if your configuration contains any rules that are unnecessary or conflict with Prettier. - -You can run it using `npx`: - -``` -npx eslint --print-config path/to/main.js | npx eslint-config-prettier-check -``` - -(Change `path/to/main.js` to a file that exists in your project.) - -In theory you need to run `npx eslint --print-config file.js | npx eslint-config-prettier-check` for every single file in your project to be 100% sure that there are no conflicting rules, because ESLint supports having different rules for different files. But usually you’ll have about the same rules for all files, so it is enough to run the command on one file (pick one that you won’t be moving). If you use [multiple configuration files] or [overrides], you can (but you probably don’t need to!) run the above script several times with different `--print-config` arguments, such as: - -``` -npx eslint --print-config index.js | npx eslint-config-prettier-check -npx eslint --print-config test/index.js | npx eslint-config-prettier-check -npx eslint --print-config legacy/main.js | npx eslint-config-prettier-check -``` - -Exit codes: - -- 0: No problems found. -- 1: Unexpected error. -- 2: Conflicting rules found. - -## Example configuration - - -```json -{ - "extends": [ - "standard", - "plugin:@typescript-eslint/recommended", - "plugin:flowtype/recommended", - "plugin:react/recommended", - "plugin:unicorn/recommended", - "plugin:vue/recommended", - "prettier", - "prettier/@typescript-eslint", - "prettier/babel", - "prettier/flowtype", - "prettier/react", - "prettier/standard", - "prettier/unicorn", - "prettier/vue" - ], - "plugins": [ - "@typescript-eslint", - "babel", - "flowtype", - "react", - "standard", - "unicorn", - "vue" - ], - "parserOptions": { - "sourceType": "module", - "ecmaFeatures": { - "jsx": true - } - }, - "env": { - "es6": true, - "node": true - } -} -``` - -## Special rules - -There a few rules that eslint-config-prettier disables that actually can be enabled in some cases. - -- Some require certain options. The CLI helper tool validates this. -- Some require special attention when writing code. The CLI helper tool warns you if any of those rules are enabled, but can’t tell if anything is problematic. -- Some can cause problems if using [eslint-plugin-prettier] and `--fix`. - -For maximum ease of use, the special rules are disabled by default. If you want them, you need to explicitly specify them in your ESLint config. - -### [arrow-body-style] and [prefer-arrow-callback] - -**These rules might cause problems if using [eslint-plugin-prettier] and `--fix`.** - -If you use any of these rules together with the `prettier/prettier` rule from [eslint-plugin-prettier], you can in some cases end up with invalid code due to a bug in ESLint’s autofix. - -These rules are safe to use if: - -- You don’t use [eslint-plugin-prettier]. In other words, you run `eslint --fix` and `prettier --write` as separate steps. -- You _do_ use [eslint-plugin-prettier], but don’t use `--fix`. (But then, what’s the point?) - -You _can_ still use these rules together with [eslint-plugin-prettier] if you want, because the bug does not occur _all the time._ But if you do, you need to keep in mind that you might end up with invalid code, where you manually have to insert a missing closing parenthesis to get going again. - -If you’re fixing large of amounts of previously unformatted code, consider temporarily disabling the `prettier/prettier` rule and running `eslint --fix` and `prettier --write` separately. - -See these issues for more information: - -- [eslint-config-prettier#31] -- [eslint-config-prettier#71] -- [eslint-plugin-prettier#65] - -When the autofix bug in ESLint has been fixed, the special case for these rules can be removed. - -### [curly] - -**This rule requires certain options.** - -If a block (for example after `if`, `else`, `for` or `while`) contains only one statement, JavaScript allows omitting the curly braces around that statement. This rule enforces if or when those optional curly braces should be omitted. - -If you use the `"multi-line"` or `"multi-or-nest"` option, the rule can conflict with Prettier. - -For example, the `"multi-line"` option allows this line: - - -```js -if (cart.items && cart.items[0] && cart.items[0].quantity === 0) updateCart(cart); -``` - -However, Prettier might consider the line too long and turn it into the following, which the `"multi-line"` option does _not_ allow: - - -```js -if (cart.items && cart.items[0] && cart.items[0].quantity === 0) - updateCart(cart); -``` - -If you like this rule, it can be used just fine with Prettier as long as you don’t use the `"multi-line"` or `"multi-or-nest"` option. - -Example ESLint configuration: - - -```json -{ - "rules": { - "curly": ["error", "all"] - } -} -``` - -### [lines-around-comment] - -**This rule can be used with certain options.** - -This rule requires empty lines before and/or after comments. Prettier preserves blank lines, with two exceptions: - -- Several blank lines in a row are collapsed into a single blank line. This is fine. -- Blank lines at the beginning and end of blocks, objects and arrays are always removed. This may lead to conflicts. - -By default, ESLint requires a blank line above the comment is this case: - - -```js -if (result) { - - /* comment */ - return result; -} -``` - -However, Prettier removes the blank line: - - -```js -if (result) { - /* comment */ - return result; -} -``` - -If you like this rule, it can be used just fine with Prettier as long as you add some extra configuration to allow comments at the start and end of blocks, objects and arrays. - -Example ESLint configuration: - - -```json -{ - "rules": { - "lines-around-comment": [ - "error", - { - "beforeBlockComment": true, - "afterBlockComment": true, - "beforeLineComment": true, - "afterLineComment": true, - "allowBlockStart": true, - "allowBlockEnd": true, - "allowObjectStart": true, - "allowObjectEnd": true, - "allowArrayStart": true, - "allowArrayEnd": true - } - ] - } -} -``` - -### [max-len] - -(The following applies to [vue/max-len] as well.) - -**This rule requires special attention when writing code.** - -Usually, Prettier takes care of following a maximum line length automatically. However, there are cases where Prettier can’t do anything, such as for long strings, regular expressions and comments. Those need to be split up by a human. - -If you’d like to enforce an even stricter maximum line length policy than Prettier can provide automatically, you can enable this rule. Just remember to keep `max-len`’s options and Prettier’s `printWidth` option in sync. - -Keep in mind that you might have to refactor code slightly if Prettier formats lines in a way that the `max-len` rule does not approve of. - -Example ESLint configuration: - - -```json -{ - "rules": { - "max-len": ["error", {"code": 80, "ignoreUrls": true}] - } -} -``` - -### [no-confusing-arrow] - -**This rule requires certain options.** - -For example, the rule could warn about this line: - - -```js -var x = a => 1 ? 2 : 3; -``` - -With `{allowParens: true}` (the default since ESLint 6.0.0), adding parentheses is considered a valid way to avoid the arrow confusion: - - -```js -var x = a => (1 ? 2 : 3); -``` - -While Prettier keeps those parentheses, it removes them if the line is long enough to introduce a line break: - - -```js -EnterpriseCalculator.prototype.calculateImportantNumbers = inputNumber => - 1 ? 2 : 3; -``` - -With `{allowParens: false}`, ESLint instead suggests switching to an explicit return: - - -```js -var x = a => { return 1 ? 2 : 3; }; -``` - -That causes no problems with Prettier. - -If you like this rule, it can be used just fine with Prettier as long as the `allowParens` option is off. - -Example ESLint configuration: - - -```json -{ - "rules": { - "no-confusing-arrow": ["error", { "allowParens": false }] - } -} -``` - -(Note: The CLI helper tool considers `{allowParens: true}` to be the default, which is the case since ESLint 6.0.0. The tool will produce a warning if you use the default even if you use an older version of ESLint. It doesn’t hurt to explicitly set `{allowParens: false}` even though it is technically redundant. This way you are prepared for a future ESLint upgrade and the CLI tool can be kept simple.) - -### [no-mixed-operators] - -**This rule requires special attention when writing code.** - -This rule forbids mixing certain operators, such as `&&` and `||`. - -For example, the rule could warn about this line: - - -```js -var foo = a + b * c; -``` - -The rule suggests adding parentheses, like this: - - -```js -var foo = a + (b * c); -``` - -However, Prettier removes many “unnecessary” parentheses, turning it back to: - - -```js -var foo = a + b * c; -``` - -If you want to use this rule with Prettier, you need to split the expression into another variable: - - -```js -var bar = b * c; -var foo = a + bar; -``` - -Keep in mind that Prettier prints _some_ “unnecessary” parentheses, though: - - -```js -var foo = (a && b) || c; -``` - -Example ESLint configuration: - - -```json -{ - "rules": { - "no-mixed-operators": "error" - } -} -``` - -### [no-tabs] - -**This rule requires certain Prettier options.** - -This rule disallows the use of tab characters at all. It can be used just fine with Prettier as long as you don’t configure Prettier to indent using tabs. - -Example ESLint configuration: - - -```json -{ - "rules": { - "no-tabs": "error" - } -} -``` - -Example Prettier configuration (this is the default, so adding this is not required): - - -```json -{ - "useTabs": false -} -``` - -**Note:** Since [ESlint 5.7.0] this rule can be configured to work regardless of your Prettier configuration: - - -```json -{ - "rules": { - "no-tabs": ["error", {"allowIndentationTabs": true}] - } -} -``` - -A future version of eslint-config-prettier might check for that automatically. - -### [no-unexpected-multiline] - -**This rule requires special attention when writing code.** - -This rule disallows confusing multiline expressions where a newline looks like it is ending a statement, but is not. - -For example, the rule could warn about this: - - -```js -var hello = "world" -[1, 2, 3].forEach(addNumber) -``` - -Prettier usually formats this in a way that makes it obvious that a semicolon was missing: - - -```js -var hello = "world"[(1, 2, 3)].forEach(addNumber); -``` - -However, there are cases where Prettier breaks things into several lines such that the `no-unexpected-multiline` conflicts. - - -```js -const value = text.trim().split("\n")[position].toLowerCase(); -``` - -Prettier breaks it up into several lines, though, causing a conflict: - - -```js -const value = text - .trim() - .split("\n") - [position].toLowerCase(); -``` - -If you like this rule, it can usually be used with Prettier without problems, but occasionally you might need to either temporarily disable the rule or refactor your code. - - -```js -const value = text - .trim() - .split("\n") - // eslint-disable-next-line no-unexpected-multiline - [position].toLowerCase(); - -// Or: - -const lines = text.trim().split("\n"); -const value = lines[position].toLowerCase(); -``` - -**Note:** If you _do_ enable this rule, you have to run ESLint and Prettier as two separate steps (and ESLint first) in order to get any value out of it. Otherwise Prettier might reformat your code in such a way that ESLint never gets a chance to report anything (as seen in the first example). - -Example configuration: - - -```json -{ - "rules": { - "no-unexpected-multiline": "error" - } -} -``` - -### [quotes] - -(The following applies to [babel/quotes] and [@typescript-eslint/quotes] as well.) - -**This rule requires certain options and certain Prettier options.** - -Usually, you don’t need this rule at all. But there are two cases where it could be useful: - -- To enforce the use of backticks rather than single or double quotes for strings. -- To forbid backticks where regular strings could have been used. - -#### Enforce backticks - -If you’d like all strings to use backticks (never quotes), enable the `"backtick"` option. - -Example ESLint configuration: - - -```json -{ - "rules": { - "quotes": ["error", "backtick"] - } -} -``` - -#### Forbid unnecessary backticks - -In the following example, the first array item could have been written with quotes instead of backticks. - - -```js -const strings = [ - `could have been a regular string`, - ` - multiple - lines - `, - `uses ${interpolation}`, - String.raw`\tagged/`, -]; -``` - -If you’d like ESLint to enforce `` `could have been a regular string` `` being written as either `"could have been a regular string"` or `'could have been a regular string'`, you need to use some specific configuration. The `quotes` rule has two options, a string option and an object option. - -- The first (string) option needs to be set to `"single"` or `"double"` and be kept in sync with Prettier’s [singleQuote] option. -- The second (object) option needs the following properties: - - `"avoidEscape": true` to follow Prettier’s [string formatting rules]. - - `"allowTemplateLiterals": false` to disallow unnecessary backticks. - -##### Example _double_ quote configuration - -ESLint: - - -```json -{ - "rules": { - "quotes": [ - "error", - "double", - { "avoidEscape": true, "allowTemplateLiterals": false } - ] - } -} -``` - -Prettier (this is the default, so adding this is not required): - - -```json -{ - "singleQuote": false -} -``` - -##### Example _single_ quote configuration - -ESLint: - - -```json -{ - "rules": { - "quotes": [ - "error", - "single", - { "avoidEscape": true, "allowTemplateLiterals": false } - ] - } -} -``` - -Prettier: - - -```json -{ - "singleQuote": true -} -``` - -### [vue/html-self-closing] - -**This rule requires certain options.** - -This rule enforces whether elements should be self-closing or not. - -Prettier generally preserves the way you wrote your elements: - - -```vue -
-
- - - - -``` - -But for known _void_ HTML elements, Prettier always uses the self-closing style. For example, `` is turned into ``. - -If you like this rule, it can be used just fine with Prettier as long as you set `html.void` to `"any"`. - -Example ESLint configuration: - - -```json -{ - "rules": { - "vue/html-self-closing": [ - "error", - { - "html": { - "void": "any" - } - } - ] - } -} -``` - -## Other rules worth mentioning - -These rules don’t conflict with Prettier, but have some gotchas when used with Prettier. - -### [no-sequences] - -This rule forbids using JavaScript’s confusing comma operator (sequence expressions). This piece of code is not doing what it looks like: - - -```js -matrix[4, 7]; -``` - -Prettier adds parentheses to the above to make it clear that a sequence expression is used: - - -```js -matrix[(4, 7)]; -``` - -However, the `no-sequences` rule allows comma operators if the expression sequence is explicitly wrapped in parentheses. Since Prettier automatically wraps them in parentheses, you might never see any warnings from ESLint about comma operators. - -Ending up with an accidental sequence expression can easily happen while refactoring. If you want ESLint to catch such mistakes, it is recommended to forbid sequence expressions entirely using [no-restricted-syntax] \([as mentioned in the `no-sequences` documentation][no-sequences-full]): - - -```json -{ - "rules": { - "no-restricted-syntax": ["error", "SequenceExpression"] - } -} -``` - -If you still need to use the comma operator for some edge case, you can place an `// eslint-disable-next-line no-restricted-syntax` comment on the line above the expression. `no-sequences` can safely be disabled if you use the `no-restricted-syntax` approach. - -You can also supply a custom message if you want: - - -```json -{ - "rules": { - "no-restricted-syntax": [ - "error", - { - "selector": "SequenceExpression", - "message": "The comma operator is confusing and a common mistake. Don’t use it!" - } - ] - } -} -``` - -## Contributing - -eslint-config-prettier has been tested with: - -- ESLint 6.8.0 - - eslint-config-prettier 5.1.0 and older were tested with ESLint 5.x - - eslint-config-prettier 2.10.0 and older were tested with ESLint 4.x - - eslint-config-prettier 2.1.1 and older were tested with ESLint 3.x -- prettier 2.0.5 -- @typescript-eslint/eslint-plugin 2.29.0 -- eslint-plugin-babel 5.3.0 -- eslint-plugin-flowtype 4.7.0 -- eslint-plugin-react 7.19.0 -- eslint-plugin-standard 4.0.1 -- eslint-plugin-unicorn 18.0.1 -- eslint-plugin-vue 6.2.2 - -Have new rules been added since those versions? Have we missed any rules? Is there a plugin you would like to see exclusions for? Open an issue or a pull request! - -If you’d like to add support for eslint-plugin-foobar, this is how you’d go about it: - -First, create `foobar.js`: - - -```js -"use strict"; - -module.exports = { - rules: { - "foobar/some-rule": "off" - } -}; -``` - -Then, create `test-lint/foobar.js`: - - -```js -/* eslint-disable quotes */ -"use strict"; - -// Prettier does not want spaces before the parentheses, but -// `plugin:foobar/recommended` wants one. -console.log(); -``` - -`test-lint/foobar.js` must fail when used with eslint-plugin-foobar and eslint-plugin-prettier at the same time – until `"prettier/foobar"` is added to the "extends" property of an ESLint config. The file should be formatted according to Prettier, and that formatting should disagree with the plugin. - -Finally, you need to mention the plugin in several places: - -- Add `"foobar.js"` to the "files" field in `package.json`. -- Add eslint-plugin-foobar to the "devDependencies" field in `package.json`. -- Make sure that at least one rule from eslint-plugin-foobar gets used in `.eslintrc.base.js`. -- Add it to the list of supported plugins, to the example config and to Contributing section in `README.md`. - -When you’re done, run `npm test` to verify that you got it all right. It runs several other npm scripts: - -- `"test:lint"` makes sure that the files in `test-lint/` pass ESLint when the exclusions from eslint-config-prettier are used. It also lints the code of eslint-config-prettier itself, and checks that Prettier has been run on all files. -- `"test:lint-verify-fail"` is run by a test in `test/lint-verify-fail.test.js`. -- `"test:lint-rules"` is run by a test in `test/rules.test.js`. -- `"test:jest"` runs unit tests that check a number of things: - - That eslint-plugin-foobar is mentioned in all the places shown above. - - That no unknown rules are turned off. This helps catching typos, for example. - - That the CLI works. -- `"test:cli-sanity"` and `"test:cli-sanity-warning"` are sanity checks for the CLI. - -## License - -[MIT](LICENSE). - -[@typescript-eslint/eslint-plugin]: https://github.com/typescript-eslint/typescript-eslint -[@typescript-eslint/quotes]: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/quotes.md -[eslint 5.7.0]: https://eslint.org/blog/2018/10/eslint-v5.7.0-released -[prettier]: https://github.com/prettier/prettier -[arrow-body-style]: https://eslint.org/docs/rules/arrow-body-style -[babel/quotes]: https://github.com/babel/eslint-plugin-babel#rules -[curly]: https://eslint.org/docs/rules/curly -[eslint-config-airbnb]: https://www.npmjs.com/package/eslint-config-airbnb -[eslint-config-prettier#31]: https://github.com/prettier/eslint-config-prettier/issues/31 -[eslint-config-prettier#71]: https://github.com/prettier/eslint-config-prettier/issues/71 -[eslint-plugin-babel]: https://github.com/babel/eslint-plugin-babel -[eslint-plugin-flowtype]: https://github.com/gajus/eslint-plugin-flowtype -[eslint-plugin-prettier#65]: https://github.com/prettier/eslint-plugin-prettier/issues/65 -[eslint-plugin-prettier]: https://github.com/prettier/eslint-plugin-prettier -[eslint-plugin-react]: https://github.com/yannickcr/eslint-plugin-react -[eslint-plugin-standard]: https://github.com/xjamundx/eslint-plugin-standard -[eslint-plugin-unicorn]: https://github.com/sindresorhus/eslint-plugin-unicorn -[eslint-plugin-vue]: https://github.com/vuejs/eslint-plugin-vue -[lines-around-comment]: https://eslint.org/docs/rules/lines-around-comment -[max-len]: https://eslint.org/docs/rules/max-len -[multiple configuration files]: https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy -[no-confusing-arrow]: https://eslint.org/docs/rules/no-confusing-arrow -[no-mixed-operators]: https://eslint.org/docs/rules/no-mixed-operators -[no-restricted-syntax]: https://eslint.org/docs/rules/no-restricted-syntax -[no-sequences-full]: https://eslint.org/docs/rules/no-sequences#when-not-to-use-it -[no-sequences]: https://eslint.org/docs/rules/no-sequences -[no-tabs]: https://eslint.org/docs/rules/no-tabs -[no-unexpected-multiline]: https://eslint.org/docs/rules/no-unexpected-multiline -[overrides]: https://eslint.org/docs/user-guide/configuring#configuration-based-on-glob-patterns -[prefer-arrow-callback]: https://eslint.org/docs/rules/prefer-arrow-callback -[quotes]: https://eslint.org/docs/rules/quotes -[singlequote]: https://prettier.io/docs/en/options.html#quotes -[string formatting rules]: https://prettier.io/docs/en/rationale.html#strings -[vue/html-self-closing]: https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/html-self-closing.md -[vue/max-len]: https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/max-len.md +**[➡️ Full readme](https://github.com/prettier/eslint-config-prettier/)** \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/babel.js b/node_modules/eslint-config-prettier/babel.js index 47d0365017..fecd94b6ae 100644 --- a/node_modules/eslint-config-prettier/babel.js +++ b/node_modules/eslint-config-prettier/babel.js @@ -1,10 +1,3 @@ -"use strict"; - -module.exports = { - rules: { - "babel/quotes": 0, - - "babel/object-curly-spacing": "off", - "babel/semi": "off", - }, -}; +throw new Error( + '"prettier/babel" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' +); \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/bin/cli.js b/node_modules/eslint-config-prettier/bin/cli.js index 208b1436e5..6ee12a39a0 100755 --- a/node_modules/eslint-config-prettier/bin/cli.js +++ b/node_modules/eslint-config-prettier/bin/cli.js @@ -2,40 +2,40 @@ "use strict"; -const fs = require("fs"); -const path = require("path"); -const getStdin = require("get-stdin"); const validators = require("./validators"); +const config = require(".."); +const prettier = require("../prettier"); + +// Require locally installed eslint, for `npx eslint-config-prettier` support +// with no local eslint-config-prettier installation. +const { ESLint } = require(require.resolve("eslint", { + paths: [process.cwd(), ...require.resolve.paths("eslint")], +})); const SPECIAL_RULES_URL = "https://github.com/prettier/eslint-config-prettier#special-rules"; +const PRETTIER_RULES_URL = + "https://github.com/prettier/eslint-config-prettier#arrow-body-style-and-prefer-arrow-callback"; + if (module === require.main) { - if (process.argv.length > 2 || process.stdin.isTTY) { - console.error( - [ - "This tool checks whether an ESLint configuration contains rules that are", - "unnecessary or conflict with Prettier. It’s supposed to be run like this:", - "", - " npx eslint --print-config path/to/main.js | npx eslint-config-prettier-check", - " npx eslint --print-config test/index.js | npx eslint-config-prettier-check", - "", - "Exit codes:", - "", - "0: No automatically detectable problems found.", - "1: Unexpected error.", - "2: Conflicting rules found.", - "", - "For more information, see:", - "https://github.com/prettier/eslint-config-prettier#cli-helper-tool", - ].join("\n") - ); + const args = process.argv.slice(2); + + if (args.length === 0) { + console.error(help()); process.exit(1); } - getStdin() - .then((string) => { - const result = processString(string); + const eslint = new ESLint(); + + Promise.all(args.map((file) => eslint.calculateConfigForFile(file))) + .then((configs) => { + const rules = [].concat( + ...configs.map(({ rules }, index) => + Object.entries(rules).map((entry) => [...entry, args[index]]) + ) + ); + const result = processRules(rules); if (result.stderr) { console.error(result.stderr); } @@ -45,107 +45,77 @@ if (module === require.main) { process.exit(result.code); }) .catch((error) => { - console.error("Unexpected error", error); + console.error(error.message); process.exit(1); }); } -function processString(string) { - let config; - try { - config = JSON.parse(string); - } catch (error) { - return { - stderr: `Failed to parse JSON:\n${error.message}`, - code: 1, - }; - } +function help() { + return ` +Usage: npx eslint-config-prettier FILE... - if ( - !( - Object.prototype.toString.call(config) === "[object Object]" && - Object.prototype.toString.call(config.rules) === "[object Object]" - ) - ) { - return { - stderr: `Expected a \`{"rules: {...}"}\` JSON object, but got:\n${string}`, - code: 1, - }; - } +Resolves an ESLint configuration for every given FILE and checks if they +contain rules that are unnecessary or conflict with Prettier. Example: - // This used to look at "files" in package.json, but that is not reliable due - // to an npm bug. See: - // https://github.com/prettier/eslint-config-prettier/issues/57 - const allRules = Object.assign( - Object.create(null), - ...fs - .readdirSync(path.join(__dirname, "..")) - .filter((name) => !name.startsWith(".") && name.endsWith(".js")) - .map((ruleFileName) => require(`../${ruleFileName}`).rules) - ); + npx eslint-config-prettier index.js test/index.js other/file/to/check.js - const regularRules = filterRules( - allRules, - (ruleName, value) => value === "off" - ); +Exit codes: + +0: No automatically detectable problems found. +1: General error. +2: Conflicting rules found. + +For more information, see: +https://github.com/prettier/eslint-config-prettier#cli-helper-tool + `.trim(); +} + +function processRules(configRules) { + const regularRules = filterRules(config.rules, (_, value) => value === "off"); const optionsRules = filterRules( - allRules, + config.rules, (ruleName, value) => value === 0 && ruleName in validators ); const specialRules = filterRules( - allRules, + config.rules, (ruleName, value) => value === 0 && !(ruleName in validators) ); - const flaggedRules = Object.keys(config.rules) - .map((ruleName) => { - const value = config.rules[ruleName]; + const enabledRules = configRules + .map(([ruleName, value, source]) => { const arrayValue = Array.isArray(value) ? value : [value]; - const level = arrayValue[0]; - const options = arrayValue.slice(1); + const [level, ...options] = arrayValue; const isOff = level === "off" || level === 0; - return !isOff && ruleName in allRules ? { ruleName, options } : null; + return isOff ? null : { ruleName, options, source }; }) .filter(Boolean); + const flaggedRules = enabledRules.filter( + ({ ruleName }) => ruleName in config.rules + ); + const regularFlaggedRuleNames = filterRuleNames( flaggedRules, - (ruleName) => ruleName in regularRules + ({ ruleName }) => ruleName in regularRules ); const optionsFlaggedRuleNames = filterRuleNames( flaggedRules, - (ruleName, options) => - ruleName in optionsRules && !validators[ruleName](options) + ({ ruleName, ...rule }) => + ruleName in optionsRules && !validators[ruleName](rule) ); const specialFlaggedRuleNames = filterRuleNames( flaggedRules, - (ruleName) => ruleName in specialRules + ({ ruleName }) => ruleName in specialRules + ); + const prettierFlaggedRuleNames = filterRuleNames( + enabledRules, + ({ ruleName, source }) => + ruleName in prettier.rules && + enabledRules.some( + (rule) => + rule.ruleName === "prettier/prettier" && rule.source === source + ) ); - - if ( - regularFlaggedRuleNames.length === 0 && - optionsFlaggedRuleNames.length === 0 - ) { - const baseMessage = - "No rules that are unnecessary or conflict with Prettier were found."; - - const message = - specialFlaggedRuleNames.length === 0 - ? baseMessage - : [ - baseMessage, - "", - "However, the following rules are enabled but cannot be automatically checked. See:", - SPECIAL_RULES_URL, - "", - printRuleNames(specialFlaggedRuleNames), - ].join("\n"); - - return { - stdout: message, - code: 0, - }; - } const regularMessage = [ "The following rules are unnecessary or might conflict with Prettier:", @@ -154,7 +124,7 @@ function processString(string) { ].join("\n"); const optionsMessage = [ - "The following rules are enabled with options that might conflict with Prettier. See:", + "The following rules are enabled with config that might conflict with Prettier. See:", SPECIAL_RULES_URL, "", printRuleNames(optionsFlaggedRuleNames), @@ -167,10 +137,41 @@ function processString(string) { printRuleNames(specialFlaggedRuleNames), ].join("\n"); + const prettierMessage = [ + "The following rules can cause issues when using eslint-plugin-prettier at the same time.", + "Only enable them if you know what you are doing! See:", + PRETTIER_RULES_URL, + "", + printRuleNames(prettierFlaggedRuleNames), + ].join("\n"); + + if ( + regularFlaggedRuleNames.length === 0 && + optionsFlaggedRuleNames.length === 0 + ) { + const message = + specialFlaggedRuleNames.length === 0 && + prettierFlaggedRuleNames.length === 0 + ? "No rules that are unnecessary or conflict with Prettier were found." + : [ + specialFlaggedRuleNames.length === 0 ? null : specialMessage, + prettierFlaggedRuleNames.length === 0 ? null : prettierMessage, + "Other than that, no rules that are unnecessary or conflict with Prettier were found.", + ] + .filter(Boolean) + .join("\n\n"); + + return { + stdout: message, + code: 0, + }; + } + const message = [ regularFlaggedRuleNames.length === 0 ? null : regularMessage, optionsFlaggedRuleNames.length === 0 ? null : optionsMessage, specialFlaggedRuleNames.length === 0 ? null : specialMessage, + prettierFlaggedRuleNames.length === 0 ? null : prettierMessage, ] .filter(Boolean) .join("\n\n"); @@ -182,18 +183,18 @@ function processString(string) { } function filterRules(rules, fn) { - return Object.keys(rules) - .filter((ruleName) => fn(ruleName, rules[ruleName])) - .reduce((obj, ruleName) => { + return Object.entries(rules) + .filter(([ruleName, value]) => fn(ruleName, value)) + .reduce((obj, [ruleName]) => { obj[ruleName] = true; return obj; }, Object.create(null)); } function filterRuleNames(rules, fn) { - return rules - .filter((rule) => fn(rule.ruleName, rule.options)) - .map((rule) => rule.ruleName); + return [ + ...new Set(rules.filter((rule) => fn(rule)).map((rule) => rule.ruleName)), + ]; } function printRuleNames(ruleNames) { @@ -204,4 +205,4 @@ function printRuleNames(ruleNames) { .join("\n"); } -exports.processString = processString; +exports.processRules = processRules; diff --git a/node_modules/eslint-config-prettier/bin/validators.js b/node_modules/eslint-config-prettier/bin/validators.js index a6a9b8ae46..f63bdad6f0 100644 --- a/node_modules/eslint-config-prettier/bin/validators.js +++ b/node_modules/eslint-config-prettier/bin/validators.js @@ -4,7 +4,7 @@ // `false` if the options DO conflict with Prettier, and `true` if they don’t. module.exports = { - curly(options) { + "curly"({ options }) { if (options.length === 0) { return true; } @@ -13,7 +13,7 @@ module.exports = { return firstOption !== "multi-line" && firstOption !== "multi-or-nest"; }, - "lines-around-comment"(options) { + "lines-around-comment"({ options }) { if (options.length === 0) { return false; } @@ -30,7 +30,7 @@ module.exports = { ); }, - "no-confusing-arrow"(options) { + "no-confusing-arrow"({ options }) { if (options.length === 0) { return false; } @@ -39,7 +39,16 @@ module.exports = { return firstOption ? firstOption.allowParens === false : false; }, - "vue/html-self-closing"(options) { + "no-tabs"({ options }) { + if (options.length === 0) { + return false; + } + + const firstOption = options[0]; + return Boolean(firstOption && firstOption.allowIndentationTabs); + }, + + "vue/html-self-closing"({ options }) { if (options.length === 0) { return false; } diff --git a/node_modules/eslint-config-prettier/flowtype.js b/node_modules/eslint-config-prettier/flowtype.js index 34b8943cfe..2677fa83c2 100644 --- a/node_modules/eslint-config-prettier/flowtype.js +++ b/node_modules/eslint-config-prettier/flowtype.js @@ -1,15 +1,3 @@ -"use strict"; - -module.exports = { - rules: { - "flowtype/boolean-style": "off", - "flowtype/delimiter-dangle": "off", - "flowtype/generic-spacing": "off", - "flowtype/object-type-delimiter": "off", - "flowtype/semi": "off", - "flowtype/space-after-type-colon": "off", - "flowtype/space-before-generic-bracket": "off", - "flowtype/space-before-type-colon": "off", - "flowtype/union-intersection-spacing": "off", - }, -}; +throw new Error( + '"prettier/flowtype" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' +); \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/index.js b/node_modules/eslint-config-prettier/index.js index 1cbfd47a5f..5bbaff10f0 100644 --- a/node_modules/eslint-config-prettier/index.js +++ b/node_modules/eslint-config-prettier/index.js @@ -3,101 +3,190 @@ const includeDeprecated = !process.env.ESLINT_CONFIG_PRETTIER_NO_DEPRECATED; module.exports = { - rules: Object.assign( - { - // The following rules can be used in some cases. See the README for more - // information. (These are marked with `0` instead of `"off"` so that a - // script can distinguish them.) - "arrow-body-style": 0, - curly: 0, - "lines-around-comment": 0, - "max-len": 0, - "no-confusing-arrow": 0, - "no-mixed-operators": 0, - "no-tabs": 0, - "no-unexpected-multiline": 0, - "prefer-arrow-callback": 0, - quotes: 0, - // The rest are rules that you never need to enable when using Prettier. - "array-bracket-newline": "off", - "array-bracket-spacing": "off", - "array-element-newline": "off", - "arrow-parens": "off", - "arrow-spacing": "off", - "block-spacing": "off", - "brace-style": "off", - "comma-dangle": "off", - "comma-spacing": "off", - "comma-style": "off", - "computed-property-spacing": "off", - "dot-location": "off", - "eol-last": "off", - "func-call-spacing": "off", - "function-call-argument-newline": "off", - "function-paren-newline": "off", - "generator-star": "off", - "generator-star-spacing": "off", - "implicit-arrow-linebreak": "off", - indent: "off", - "jsx-quotes": "off", - "key-spacing": "off", - "keyword-spacing": "off", - "linebreak-style": "off", - "multiline-ternary": "off", - "newline-per-chained-call": "off", - "new-parens": "off", - "no-arrow-condition": "off", - "no-comma-dangle": "off", - "no-extra-parens": "off", - "no-extra-semi": "off", - "no-floating-decimal": "off", - "no-mixed-spaces-and-tabs": "off", - "no-multi-spaces": "off", - "no-multiple-empty-lines": "off", - "no-reserved-keys": "off", - "no-space-before-semi": "off", - "no-trailing-spaces": "off", - "no-whitespace-before-property": "off", - "no-wrap-func": "off", - "nonblock-statement-body-position": "off", - "object-curly-newline": "off", - "object-curly-spacing": "off", - "object-property-newline": "off", - "one-var-declaration-per-line": "off", - "operator-linebreak": "off", - "padded-blocks": "off", - "quote-props": "off", - "rest-spread-spacing": "off", - semi: "off", - "semi-spacing": "off", - "semi-style": "off", - "space-after-function-name": "off", - "space-after-keywords": "off", - "space-before-blocks": "off", - "space-before-function-paren": "off", - "space-before-function-parentheses": "off", - "space-before-keywords": "off", - "space-in-brackets": "off", - "space-in-parens": "off", - "space-infix-ops": "off", - "space-return-throw-case": "off", - "space-unary-ops": "off", - "space-unary-word-ops": "off", - "switch-colon-spacing": "off", - "template-curly-spacing": "off", - "template-tag-spacing": "off", - "unicode-bom": "off", - "wrap-iife": "off", - "wrap-regex": "off", - "yield-star-spacing": "off", - }, - includeDeprecated && { + rules: { + // The following rules can be used in some cases. See the README for more + // information. (These are marked with `0` instead of `"off"` so that a + // script can distinguish them.) + "curly": 0, + "lines-around-comment": 0, + "max-len": 0, + "no-confusing-arrow": 0, + "no-mixed-operators": 0, + "no-tabs": 0, + "no-unexpected-multiline": 0, + "quotes": 0, + "@typescript-eslint/quotes": 0, + "babel/quotes": 0, + "vue/html-self-closing": 0, + "vue/max-len": 0, + + // The rest are rules that you never need to enable when using Prettier. + "array-bracket-newline": "off", + "array-bracket-spacing": "off", + "array-element-newline": "off", + "arrow-parens": "off", + "arrow-spacing": "off", + "block-spacing": "off", + "brace-style": "off", + "comma-dangle": "off", + "comma-spacing": "off", + "comma-style": "off", + "computed-property-spacing": "off", + "dot-location": "off", + "eol-last": "off", + "func-call-spacing": "off", + "function-call-argument-newline": "off", + "function-paren-newline": "off", + "generator-star": "off", + "generator-star-spacing": "off", + "implicit-arrow-linebreak": "off", + "indent": "off", + "jsx-quotes": "off", + "key-spacing": "off", + "keyword-spacing": "off", + "linebreak-style": "off", + "multiline-ternary": "off", + "newline-per-chained-call": "off", + "new-parens": "off", + "no-arrow-condition": "off", + "no-comma-dangle": "off", + "no-extra-parens": "off", + "no-extra-semi": "off", + "no-floating-decimal": "off", + "no-mixed-spaces-and-tabs": "off", + "no-multi-spaces": "off", + "no-multiple-empty-lines": "off", + "no-reserved-keys": "off", + "no-space-before-semi": "off", + "no-trailing-spaces": "off", + "no-whitespace-before-property": "off", + "no-wrap-func": "off", + "nonblock-statement-body-position": "off", + "object-curly-newline": "off", + "object-curly-spacing": "off", + "object-property-newline": "off", + "one-var-declaration-per-line": "off", + "operator-linebreak": "off", + "padded-blocks": "off", + "quote-props": "off", + "rest-spread-spacing": "off", + "semi": "off", + "semi-spacing": "off", + "semi-style": "off", + "space-after-function-name": "off", + "space-after-keywords": "off", + "space-before-blocks": "off", + "space-before-function-paren": "off", + "space-before-function-parentheses": "off", + "space-before-keywords": "off", + "space-in-brackets": "off", + "space-in-parens": "off", + "space-infix-ops": "off", + "space-return-throw-case": "off", + "space-unary-ops": "off", + "space-unary-word-ops": "off", + "switch-colon-spacing": "off", + "template-curly-spacing": "off", + "template-tag-spacing": "off", + "unicode-bom": "off", + "wrap-iife": "off", + "wrap-regex": "off", + "yield-star-spacing": "off", + "@babel/object-curly-spacing": "off", + "@babel/semi": "off", + "@typescript-eslint/brace-style": "off", + "@typescript-eslint/comma-dangle": "off", + "@typescript-eslint/comma-spacing": "off", + "@typescript-eslint/func-call-spacing": "off", + "@typescript-eslint/indent": "off", + "@typescript-eslint/keyword-spacing": "off", + "@typescript-eslint/member-delimiter-style": "off", + "@typescript-eslint/no-extra-parens": "off", + "@typescript-eslint/no-extra-semi": "off", + "@typescript-eslint/object-curly-spacing": "off", + "@typescript-eslint/semi": "off", + "@typescript-eslint/space-before-function-paren": "off", + "@typescript-eslint/space-infix-ops": "off", + "@typescript-eslint/type-annotation-spacing": "off", + "babel/object-curly-spacing": "off", + "babel/semi": "off", + "flowtype/boolean-style": "off", + "flowtype/delimiter-dangle": "off", + "flowtype/generic-spacing": "off", + "flowtype/object-type-curly-spacing": "off", + "flowtype/object-type-delimiter": "off", + "flowtype/quotes": "off", + "flowtype/semi": "off", + "flowtype/space-after-type-colon": "off", + "flowtype/space-before-generic-bracket": "off", + "flowtype/space-before-type-colon": "off", + "flowtype/union-intersection-spacing": "off", + "react/jsx-child-element-spacing": "off", + "react/jsx-closing-bracket-location": "off", + "react/jsx-closing-tag-location": "off", + "react/jsx-curly-newline": "off", + "react/jsx-curly-spacing": "off", + "react/jsx-equals-spacing": "off", + "react/jsx-first-prop-new-line": "off", + "react/jsx-indent": "off", + "react/jsx-indent-props": "off", + "react/jsx-max-props-per-line": "off", + "react/jsx-newline": "off", + "react/jsx-one-expression-per-line": "off", + "react/jsx-props-no-multi-spaces": "off", + "react/jsx-tag-spacing": "off", + "react/jsx-wrap-multilines": "off", + "standard/array-bracket-even-spacing": "off", + "standard/computed-property-even-spacing": "off", + "standard/object-curly-even-spacing": "off", + "unicorn/empty-brace-spaces": "off", + "unicorn/no-nested-ternary": "off", + "unicorn/number-literal-case": "off", + "vue/array-bracket-newline": "off", + "vue/array-bracket-spacing": "off", + "vue/arrow-spacing": "off", + "vue/block-spacing": "off", + "vue/block-tag-newline": "off", + "vue/brace-style": "off", + "vue/comma-dangle": "off", + "vue/comma-spacing": "off", + "vue/comma-style": "off", + "vue/dot-location": "off", + "vue/func-call-spacing": "off", + "vue/html-closing-bracket-newline": "off", + "vue/html-closing-bracket-spacing": "off", + "vue/html-end-tags": "off", + "vue/html-indent": "off", + "vue/html-quotes": "off", + "vue/key-spacing": "off", + "vue/keyword-spacing": "off", + "vue/max-attributes-per-line": "off", + "vue/multiline-html-element-content-newline": "off", + "vue/mustache-interpolation-spacing": "off", + "vue/no-extra-parens": "off", + "vue/no-multi-spaces": "off", + "vue/no-spaces-around-equal-signs-in-attribute": "off", + "vue/object-curly-newline": "off", + "vue/object-curly-spacing": "off", + "vue/object-property-newline": "off", + "vue/operator-linebreak": "off", + "vue/script-indent": "off", + "vue/singleline-html-element-content-newline": "off", + "vue/space-in-parens": "off", + "vue/space-infix-ops": "off", + "vue/space-unary-ops": "off", + "vue/template-curly-spacing": "off", + + ...(includeDeprecated && { // Deprecated since version 4.0.0. // https://github.com/eslint/eslint/pull/8286 "indent-legacy": "off", // Deprecated since version 3.3.0. // https://eslint.org/docs/rules/no-spaced-func "no-spaced-func": "off", - } - ), + // Deprecated since version 7.0.0. + // https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06 + "react/jsx-space-before-closing": "off", + }), + }, }; diff --git a/node_modules/eslint-config-prettier/package.json b/node_modules/eslint-config-prettier/package.json index ea6eba2880..8d836597ca 100644 --- a/node_modules/eslint-config-prettier/package.json +++ b/node_modules/eslint-config-prettier/package.json @@ -1,67 +1,17 @@ { "name": "eslint-config-prettier", - "version": "6.11.0", + "version": "8.3.0", "license": "MIT", "author": "Simon Lydell", "description": "Turns off all rules that are unnecessary or might conflict with Prettier.", "repository": "prettier/eslint-config-prettier", - "files": [ - "bin/", - "@typescript-eslint.js", - "babel.js", - "flowtype.js", - "index.js", - "react.js", - "standard.js", - "unicorn.js", - "vue.js" - ], - "bin": { - "eslint-config-prettier-check": "bin/cli.js" - }, + "bin": "bin/cli.js", "keywords": [ "eslint", "eslintconfig", "prettier" ], - "scripts": { - "doctoc": "doctoc README.md && replace \"\\[\\[([\\w/-]+)\\](?:([^\\[\\]]+)\\[([\\w/-]+)\\])?\\]\" \"[\\$1\\$2\\$3]\" README.md", - "prettier": "prettier --write .", - "test:lint": "eslint . && prettier --check .", - "test:lint-verify-fail": "eslint \"test-lint/*.{js,ts,vue}\" --config .eslintrc.base.js --format json", - "test:lint-rules": "eslint index.js --config test-config/.eslintrc.js --format json", - "test:deprecated": "eslint-find-rules --deprecated index.js", - "test:jest": "jest", - "test:cli-sanity": "eslint --print-config index.js | node ./bin/cli.js", - "test:cli-sanity-warning": "eslint --print-config ./bin/cli.js | node ./bin/cli.js", - "test": "npm run test:lint && npm run test:jest && npm run test:cli-sanity && npm run test:cli-sanity-warning" - }, - "dependencies": { - "get-stdin": "^6.0.0" - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "2.29.0", - "@typescript-eslint/parser": "2.29.0", - "babel-eslint": "10.1.0", - "cross-spawn": "7.0.2", - "doctoc": "1.4.0", - "eslint": "6.8.0", - "eslint-config-google": "0.14.0", - "eslint-find-rules": "3.4.0", - "eslint-plugin-babel": "5.3.0", - "eslint-plugin-flowtype": "4.7.0", - "eslint-plugin-prettier": "3.1.3", - "eslint-plugin-react": "7.19.0", - "eslint-plugin-standard": "4.0.1", - "eslint-plugin-unicorn": "18.0.1", - "eslint-plugin-vue": "6.2.2", - "jest": "25.4.0", - "prettier": "2.0.5", - "replace": "1.1.5", - "rimraf": "3.0.2", - "typescript": "3.7.5" - }, "peerDependencies": { - "eslint": ">=3.14.1" + "eslint": ">=7.0.0" } } \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/prettier.js b/node_modules/eslint-config-prettier/prettier.js new file mode 100644 index 0000000000..aac873c4f8 --- /dev/null +++ b/node_modules/eslint-config-prettier/prettier.js @@ -0,0 +1,12 @@ +"use strict"; + +module.exports = { + rules: { + // These are safe to use as long as the `"prettier/prettier"` rule from + // eslint-plugin-prettier isn’t enabled. + // These are also included in `"plugin:prettier/recommended"`: + // https://github.com/prettier/eslint-plugin-prettier#recommended-configuration + "arrow-body-style": 0, + "prefer-arrow-callback": 0, + }, +}; diff --git a/node_modules/eslint-config-prettier/react.js b/node_modules/eslint-config-prettier/react.js index 3f4855323c..a53d08acc2 100644 --- a/node_modules/eslint-config-prettier/react.js +++ b/node_modules/eslint-config-prettier/react.js @@ -1,29 +1,3 @@ -"use strict"; - -const includeDeprecated = !process.env.ESLINT_CONFIG_PRETTIER_NO_DEPRECATED; - -module.exports = { - rules: Object.assign( - { - "react/jsx-child-element-spacing": "off", - "react/jsx-closing-bracket-location": "off", - "react/jsx-closing-tag-location": "off", - "react/jsx-curly-newline": "off", - "react/jsx-curly-spacing": "off", - "react/jsx-equals-spacing": "off", - "react/jsx-first-prop-new-line": "off", - "react/jsx-indent": "off", - "react/jsx-indent-props": "off", - "react/jsx-max-props-per-line": "off", - "react/jsx-one-expression-per-line": "off", - "react/jsx-props-no-multi-spaces": "off", - "react/jsx-tag-spacing": "off", - "react/jsx-wrap-multilines": "off", - }, - includeDeprecated && { - // Deprecated since version 7.0.0. - // https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06 - "react/jsx-space-before-closing": "off", - } - ), -}; +throw new Error( + '"prettier/react" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' +); \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/standard.js b/node_modules/eslint-config-prettier/standard.js index faacadd01e..818cb5c7af 100644 --- a/node_modules/eslint-config-prettier/standard.js +++ b/node_modules/eslint-config-prettier/standard.js @@ -1,9 +1,3 @@ -"use strict"; - -module.exports = { - rules: { - "standard/array-bracket-even-spacing": "off", - "standard/computed-property-even-spacing": "off", - "standard/object-curly-even-spacing": "off", - }, -}; +throw new Error( + '"prettier/standard" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' +); \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/unicorn.js b/node_modules/eslint-config-prettier/unicorn.js index eb7103edc0..6ac04a36bd 100644 --- a/node_modules/eslint-config-prettier/unicorn.js +++ b/node_modules/eslint-config-prettier/unicorn.js @@ -1,8 +1,3 @@ -"use strict"; - -module.exports = { - rules: { - "unicorn/no-nested-ternary": "off", - "unicorn/number-literal-case": "off", - }, -}; +throw new Error( + '"prettier/unicorn" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' +); \ No newline at end of file diff --git a/node_modules/eslint-config-prettier/vue.js b/node_modules/eslint-config-prettier/vue.js index d60c2dea86..693d38fbdf 100644 --- a/node_modules/eslint-config-prettier/vue.js +++ b/node_modules/eslint-config-prettier/vue.js @@ -1,32 +1,3 @@ -"use strict"; - -module.exports = { - rules: { - "vue/html-self-closing": 0, - "vue/max-len": 0, - - "vue/array-bracket-spacing": "off", - "vue/arrow-spacing": "off", - "vue/block-spacing": "off", - "vue/brace-style": "off", - "vue/comma-dangle": "off", - "vue/dot-location": "off", - "vue/html-closing-bracket-newline": "off", - "vue/html-closing-bracket-spacing": "off", - "vue/html-end-tags": "off", - "vue/html-indent": "off", - "vue/html-quotes": "off", - "vue/key-spacing": "off", - "vue/keyword-spacing": "off", - "vue/max-attributes-per-line": "off", - "vue/multiline-html-element-content-newline": "off", - "vue/mustache-interpolation-spacing": "off", - "vue/no-multi-spaces": "off", - "vue/no-spaces-around-equal-signs-in-attribute": "off", - "vue/object-curly-spacing": "off", - "vue/script-indent": "off", - "vue/singleline-html-element-content-newline": "off", - "vue/space-infix-ops": "off", - "vue/space-unary-ops": "off", - }, -}; +throw new Error( + '"prettier/vue" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21' +); \ No newline at end of file diff --git a/node_modules/eslint-module-utils/.nycrc b/node_modules/eslint-module-utils/.nycrc new file mode 100644 index 0000000000..8147f38718 --- /dev/null +++ b/node_modules/eslint-module-utils/.nycrc @@ -0,0 +1,15 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "require": [ + "babel-register" + ], + "sourceMap": true, + "instrument": false, + "exclude": [ + "coverage", + "test", + "tests" + ] +} diff --git a/node_modules/eslint-module-utils/CHANGELOG.md b/node_modules/eslint-module-utils/CHANGELOG.md index f337d3850a..949fa8d582 100644 --- a/node_modules/eslint-module-utils/CHANGELOG.md +++ b/node_modules/eslint-module-utils/CHANGELOG.md @@ -5,10 +5,20 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel ## Unreleased +## v2.6.1 - 2021-05-13 + +### Fixed +- `no-unresolved`: check `import()` ([#2026], thanks [@aladdin-add]) +- Add fix for Windows Subsystem for Linux ([#1786], thanks [@manuth]) + +### Changed +- [deps] update `debug` +- [Refactor] use `Array.isArray` instead of `instanceof Array` + ## v2.6.0 - 2020-03-28 ### Added -[New] Print more helpful info if parsing fails ([#1671], thanks [@kaiyoma]) +- Print more helpful info if parsing fails ([#1671], thanks [@kaiyoma]) ## v2.5.2 - 2020-01-12 @@ -75,6 +85,8 @@ Yanked due to critical issue with cache key resulting from #839. ### Fixed - `unambiguous.test()` regex is now properly in multiline mode +[#2026]: https://github.com/benmosher/eslint-plugin-import/pull/2026 +[#1786]: https://github.com/benmosher/eslint-plugin-import/pull/1786 [#1671]: https://github.com/benmosher/eslint-plugin-import/pull/1671 [#1606]: https://github.com/benmosher/eslint-plugin-import/pull/1606 [#1602]: https://github.com/benmosher/eslint-plugin-import/pull/1602 @@ -101,3 +113,5 @@ Yanked due to critical issue with cache key resulting from #839. [@sompylasar]: https://github.com/sompylasar [@iamnapo]: https://github.com/iamnapo [@kaiyoma]: https://github.com/kaiyoma +[@manuth]: https://github.com/manuth +[@aladdin-add]: https://github.com/aladdin-add \ No newline at end of file diff --git a/node_modules/eslint-module-utils/ModuleCache.js b/node_modules/eslint-module-utils/ModuleCache.js index b910a5810a..a06616de9b 100644 --- a/node_modules/eslint-module-utils/ModuleCache.js +++ b/node_modules/eslint-module-utils/ModuleCache.js @@ -1,11 +1,11 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const log = require('debug')('eslint-module-utils:ModuleCache') +const log = require('debug')('eslint-module-utils:ModuleCache'); class ModuleCache { constructor(map) { - this.map = map || new Map() + this.map = map || new Map(); } /** @@ -14,19 +14,19 @@ class ModuleCache { * @param {[type]} result [description] */ set(cacheKey, result) { - this.map.set(cacheKey, { result, lastSeen: process.hrtime() }) - log('setting entry for', cacheKey) - return result + this.map.set(cacheKey, { result, lastSeen: process.hrtime() }); + log('setting entry for', cacheKey); + return result; } get(cacheKey, settings) { if (this.map.has(cacheKey)) { - const f = this.map.get(cacheKey) + const f = this.map.get(cacheKey); // check freshness - if (process.hrtime(f.lastSeen)[0] < settings.lifetime) return f.result - } else log('cache miss for', cacheKey) + if (process.hrtime(f.lastSeen)[0] < settings.lifetime) return f.result; + } else log('cache miss for', cacheKey); // cache miss - return undefined + return undefined; } } @@ -34,14 +34,14 @@ class ModuleCache { ModuleCache.getSettings = function (settings) { const cacheSettings = Object.assign({ lifetime: 30, // seconds - }, settings['import/cache']) + }, settings['import/cache']); // parse infinity if (cacheSettings.lifetime === '∞' || cacheSettings.lifetime === 'Infinity') { - cacheSettings.lifetime = Infinity + cacheSettings.lifetime = Infinity; } - return cacheSettings -} + return cacheSettings; +}; -exports.default = ModuleCache +exports.default = ModuleCache; diff --git a/node_modules/eslint-module-utils/declaredScope.js b/node_modules/eslint-module-utils/declaredScope.js index 904279ad79..ded2131e49 100644 --- a/node_modules/eslint-module-utils/declaredScope.js +++ b/node_modules/eslint-module-utils/declaredScope.js @@ -1,14 +1,9 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; exports.default = function declaredScope(context, name) { - let references = context.getScope().references - , i - for (i = 0; i < references.length; i++) { - if (references[i].identifier.name === name) { - break - } - } - if (!references[i]) return undefined - return references[i].resolved.scope.type -} + const references = context.getScope().references; + const reference = references.find(x => x.identifier.name === name); + if (!reference) return undefined; + return reference.resolved.scope.type; +}; diff --git a/node_modules/eslint-module-utils/hash.js b/node_modules/eslint-module-utils/hash.js index d69dd4df5f..fcf00de38c 100644 --- a/node_modules/eslint-module-utils/hash.js +++ b/node_modules/eslint-module-utils/hash.js @@ -2,58 +2,58 @@ * utilities for hashing config objects. * basically iteratively updates hash with a JSON-like format */ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const createHash = require('crypto').createHash +const createHash = require('crypto').createHash; -const stringify = JSON.stringify +const stringify = JSON.stringify; function hashify(value, hash) { - if (!hash) hash = createHash('sha256') + if (!hash) hash = createHash('sha256'); - if (value instanceof Array) { - hashArray(value, hash) + if (Array.isArray(value)) { + hashArray(value, hash); } else if (value instanceof Object) { - hashObject(value, hash) + hashObject(value, hash); } else { - hash.update(stringify(value) || 'undefined') + hash.update(stringify(value) || 'undefined'); } - return hash + return hash; } -exports.default = hashify +exports.default = hashify; function hashArray(array, hash) { - if (!hash) hash = createHash('sha256') + if (!hash) hash = createHash('sha256'); - hash.update('[') + hash.update('['); for (let i = 0; i < array.length; i++) { - hashify(array[i], hash) - hash.update(',') + hashify(array[i], hash); + hash.update(','); } - hash.update(']') + hash.update(']'); - return hash + return hash; } -hashify.array = hashArray -exports.hashArray = hashArray +hashify.array = hashArray; +exports.hashArray = hashArray; function hashObject(object, hash) { - if (!hash) hash = createHash('sha256') + if (!hash) hash = createHash('sha256'); - hash.update('{') + hash.update('{'); Object.keys(object).sort().forEach(key => { - hash.update(stringify(key)) - hash.update(':') - hashify(object[key], hash) - hash.update(',') - }) - hash.update('}') - - return hash + hash.update(stringify(key)); + hash.update(':'); + hashify(object[key], hash); + hash.update(','); + }); + hash.update('}'); + + return hash; } -hashify.object = hashObject -exports.hashObject = hashObject +hashify.object = hashObject; +exports.hashObject = hashObject; diff --git a/node_modules/eslint-module-utils/ignore.js b/node_modules/eslint-module-utils/ignore.js index 47af8122dd..32bbbc6249 100644 --- a/node_modules/eslint-module-utils/ignore.js +++ b/node_modules/eslint-module-utils/ignore.js @@ -1,60 +1,60 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const extname = require('path').extname +const extname = require('path').extname; -const log = require('debug')('eslint-plugin-import:utils:ignore') +const log = require('debug')('eslint-plugin-import:utils:ignore'); // one-shot memoized -let cachedSet, lastSettings +let cachedSet; let lastSettings; function validExtensions(context) { if (cachedSet && context.settings === lastSettings) { - return cachedSet + return cachedSet; } - lastSettings = context.settings - cachedSet = makeValidExtensionSet(context.settings) - return cachedSet + lastSettings = context.settings; + cachedSet = makeValidExtensionSet(context.settings); + return cachedSet; } function makeValidExtensionSet(settings) { // start with explicit JS-parsed extensions - const exts = new Set(settings['import/extensions'] || [ '.js' ]) + const exts = new Set(settings['import/extensions'] || [ '.js' ]); // all alternate parser extensions are also valid if ('import/parsers' in settings) { - for (let parser in settings['import/parsers']) { - const parserSettings = settings['import/parsers'][parser] + for (const parser in settings['import/parsers']) { + const parserSettings = settings['import/parsers'][parser]; if (!Array.isArray(parserSettings)) { - throw new TypeError('"settings" for ' + parser + ' must be an array') + throw new TypeError('"settings" for ' + parser + ' must be an array'); } - parserSettings.forEach(ext => exts.add(ext)) + parserSettings.forEach(ext => exts.add(ext)); } } - return exts + return exts; } -exports.getFileExtensions = makeValidExtensionSet +exports.getFileExtensions = makeValidExtensionSet; exports.default = function ignore(path, context) { // check extension whitelist first (cheap) - if (!hasValidExtension(path, context)) return true + if (!hasValidExtension(path, context)) return true; - if (!('import/ignore' in context.settings)) return false - const ignoreStrings = context.settings['import/ignore'] + if (!('import/ignore' in context.settings)) return false; + const ignoreStrings = context.settings['import/ignore']; for (let i = 0; i < ignoreStrings.length; i++) { - const regex = new RegExp(ignoreStrings[i]) + const regex = new RegExp(ignoreStrings[i]); if (regex.test(path)) { - log(`ignoring ${path}, matched pattern /${ignoreStrings[i]}/`) - return true + log(`ignoring ${path}, matched pattern /${ignoreStrings[i]}/`); + return true; } } - return false -} + return false; +}; function hasValidExtension(path, context) { - return validExtensions(context).has(extname(path)) + return validExtensions(context).has(extname(path)); } -exports.hasValidExtension = hasValidExtension +exports.hasValidExtension = hasValidExtension; diff --git a/node_modules/eslint-module-utils/module-require.js b/node_modules/eslint-module-utils/module-require.js index 689450658c..70e5510621 100644 --- a/node_modules/eslint-module-utils/module-require.js +++ b/node_modules/eslint-module-utils/module-require.js @@ -1,30 +1,30 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const Module = require('module') -const path = require('path') +const Module = require('module'); +const path = require('path'); // borrowed from babel-eslint function createModule(filename) { - const mod = new Module(filename) - mod.filename = filename - mod.paths = Module._nodeModulePaths(path.dirname(filename)) - return mod + const mod = new Module(filename); + mod.filename = filename; + mod.paths = Module._nodeModulePaths(path.dirname(filename)); + return mod; } exports.default = function moduleRequire(p) { try { // attempt to get espree relative to eslint - const eslintPath = require.resolve('eslint') - const eslintModule = createModule(eslintPath) - return require(Module._resolveFilename(p, eslintModule)) + const eslintPath = require.resolve('eslint'); + const eslintModule = createModule(eslintPath); + return require(Module._resolveFilename(p, eslintModule)); } catch(err) { /* ignore */ } try { // try relative to entry point - return require.main.require(p) + return require.main.require(p); } catch(err) { /* ignore */ } // finally, try from here - return require(p) -} + return require(p); +}; diff --git a/node_modules/eslint-module-utils/moduleVisitor.js b/node_modules/eslint-module-utils/moduleVisitor.js index bc8c91b0af..69269985bd 100644 --- a/node_modules/eslint-module-utils/moduleVisitor.js +++ b/node_modules/eslint-module-utils/moduleVisitor.js @@ -1,5 +1,5 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; /** * Returns an object of node visitors that will call @@ -12,95 +12,103 @@ exports.__esModule = true */ exports.default = function visitModules(visitor, options) { // if esmodule is not explicitly disabled, it is assumed to be enabled - options = Object.assign({ esmodule: true }, options) + options = Object.assign({ esmodule: true }, options); - let ignoreRegExps = [] + let ignoreRegExps = []; if (options.ignore != null) { - ignoreRegExps = options.ignore.map(p => new RegExp(p)) + ignoreRegExps = options.ignore.map(p => new RegExp(p)); } function checkSourceValue(source, importer) { - if (source == null) return //? + if (source == null) return; //? // handle ignore - if (ignoreRegExps.some(re => re.test(source.value))) return + if (ignoreRegExps.some(re => re.test(source.value))) return; // fire visitor - visitor(source, importer) + visitor(source, importer); } // for import-y declarations function checkSource(node) { - checkSourceValue(node.source, node) + checkSourceValue(node.source, node); } // for esmodule dynamic `import()` calls function checkImportCall(node) { - if (node.callee.type !== 'Import') return - if (node.arguments.length !== 1) return + let modulePath; + // refs https://github.com/estree/estree/blob/master/es2020.md#importexpression + if (node.type === 'ImportExpression') { + modulePath = node.source; + } else if (node.type === 'CallExpression') { + if (node.callee.type !== 'Import') return; + if (node.arguments.length !== 1) return; + + modulePath = node.arguments[0]; + } - const modulePath = node.arguments[0] - if (modulePath.type !== 'Literal') return - if (typeof modulePath.value !== 'string') return + if (modulePath.type !== 'Literal') return; + if (typeof modulePath.value !== 'string') return; - checkSourceValue(modulePath, node) + checkSourceValue(modulePath, node); } // for CommonJS `require` calls // adapted from @mctep: http://git.io/v4rAu function checkCommon(call) { - if (call.callee.type !== 'Identifier') return - if (call.callee.name !== 'require') return - if (call.arguments.length !== 1) return + if (call.callee.type !== 'Identifier') return; + if (call.callee.name !== 'require') return; + if (call.arguments.length !== 1) return; - const modulePath = call.arguments[0] - if (modulePath.type !== 'Literal') return - if (typeof modulePath.value !== 'string') return + const modulePath = call.arguments[0]; + if (modulePath.type !== 'Literal') return; + if (typeof modulePath.value !== 'string') return; - checkSourceValue(modulePath, call) + checkSourceValue(modulePath, call); } function checkAMD(call) { - if (call.callee.type !== 'Identifier') return + if (call.callee.type !== 'Identifier') return; if (call.callee.name !== 'require' && - call.callee.name !== 'define') return - if (call.arguments.length !== 2) return + call.callee.name !== 'define') return; + if (call.arguments.length !== 2) return; - const modules = call.arguments[0] - if (modules.type !== 'ArrayExpression') return + const modules = call.arguments[0]; + if (modules.type !== 'ArrayExpression') return; - for (let element of modules.elements) { - if (element.type !== 'Literal') continue - if (typeof element.value !== 'string') continue + for (const element of modules.elements) { + if (element.type !== 'Literal') continue; + if (typeof element.value !== 'string') continue; if (element.value === 'require' || - element.value === 'exports') continue // magic modules: http://git.io/vByan + element.value === 'exports') continue; // magic modules: http://git.io/vByan - checkSourceValue(element, element) + checkSourceValue(element, element); } } - const visitors = {} + const visitors = {}; if (options.esmodule) { Object.assign(visitors, { 'ImportDeclaration': checkSource, 'ExportNamedDeclaration': checkSource, 'ExportAllDeclaration': checkSource, 'CallExpression': checkImportCall, - }) + 'ImportExpression': checkImportCall, + }); } if (options.commonjs || options.amd) { - const currentCallExpression = visitors['CallExpression'] + const currentCallExpression = visitors['CallExpression']; visitors['CallExpression'] = function (call) { - if (currentCallExpression) currentCallExpression(call) - if (options.commonjs) checkCommon(call) - if (options.amd) checkAMD(call) - } + if (currentCallExpression) currentCallExpression(call); + if (options.commonjs) checkCommon(call); + if (options.amd) checkAMD(call); + }; } - return visitors -} + return visitors; +}; /** * make an options schema for the module visitor, optionally @@ -121,21 +129,21 @@ function makeOptionsSchema(additionalProperties) { }, }, 'additionalProperties': false, - } + }; if (additionalProperties){ - for (let key in additionalProperties) { - base.properties[key] = additionalProperties[key] + for (const key in additionalProperties) { + base.properties[key] = additionalProperties[key]; } } - return base + return base; } -exports.makeOptionsSchema = makeOptionsSchema +exports.makeOptionsSchema = makeOptionsSchema; /** * json schema object for options parameter. can be used to build * rule options schema object. * @type {Object} */ -exports.optionsSchema = makeOptionsSchema() +exports.optionsSchema = makeOptionsSchema(); diff --git a/node_modules/eslint-module-utils/node_modules/debug/.coveralls.yml b/node_modules/eslint-module-utils/node_modules/debug/.coveralls.yml deleted file mode 100644 index 20a7068581..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve diff --git a/node_modules/eslint-module-utils/node_modules/debug/.eslintrc b/node_modules/eslint-module-utils/node_modules/debug/.eslintrc deleted file mode 100644 index 8a37ae2c2e..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/.eslintrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "env": { - "browser": true, - "node": true - }, - "rules": { - "no-console": 0, - "no-empty": [1, { "allowEmptyCatch": true }] - }, - "extends": "eslint:recommended" -} diff --git a/node_modules/eslint-module-utils/node_modules/debug/.npmignore b/node_modules/eslint-module-utils/node_modules/debug/.npmignore deleted file mode 100644 index 5f60eecc84..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -support -test -examples -example -*.sock -dist -yarn.lock -coverage -bower.json diff --git a/node_modules/eslint-module-utils/node_modules/debug/.travis.yml b/node_modules/eslint-module-utils/node_modules/debug/.travis.yml deleted file mode 100644 index 6c6090c3b0..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ - -language: node_js -node_js: - - "6" - - "5" - - "4" - -install: - - make node_modules - -script: - - make lint - - make test - - make coveralls diff --git a/node_modules/eslint-module-utils/node_modules/debug/CHANGELOG.md b/node_modules/eslint-module-utils/node_modules/debug/CHANGELOG.md index eadaa18951..820d21e332 100644 --- a/node_modules/eslint-module-utils/node_modules/debug/CHANGELOG.md +++ b/node_modules/eslint-module-utils/node_modules/debug/CHANGELOG.md @@ -1,4 +1,37 @@ +3.1.0 / 2017-09-26 +================== + + * Add `DEBUG_HIDE_DATE` env var (#486) + * Remove ReDoS regexp in %o formatter (#504) + * Remove "component" from package.json + * Remove `component.json` + * Ignore package-lock.json + * Examples: fix colors printout + * Fix: browser detection + * Fix: spelling mistake (#496, @EdwardBetts) + +3.0.1 / 2017-08-24 +================== + + * Fix: Disable colors in Edge and Internet Explorer (#489) + +3.0.0 / 2017-08-08 +================== + + * Breaking: Remove DEBUG_FD (#406) + * Breaking: Use `Date#toISOString()` instead to `Date#toUTCString()` when output is not a TTY (#418) + * Breaking: Make millisecond timer namespace specific and allow 'always enabled' output (#408) + * Addition: document `enabled` flag (#465) + * Addition: add 256 colors mode (#481) + * Addition: `enabled()` updates existing debug instances, add `destroy()` function (#440) + * Update: component: update "ms" to v2.0.0 + * Update: separate the Node and Browser tests in Travis-CI + * Update: refactor Readme, fixed documentation, added "Namespace Colors" section, redid screenshots + * Update: separate Node.js and web browser examples for organization + * Update: update "browserify" to v14.4.0 + * Fix: fix Readme typo (#473) + 2.6.9 / 2017-09-22 ================== @@ -27,7 +60,7 @@ 2.6.4 / 2017-04-20 ================== - * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) + * Fix: bug that would occur if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) * Chore: ignore bower.json in npm installations. (#437, @joaovieira) * Misc: update "ms" to v0.7.3 (@tootallnate) diff --git a/node_modules/eslint-module-utils/node_modules/debug/Makefile b/node_modules/eslint-module-utils/node_modules/debug/Makefile deleted file mode 100644 index 584da8bf93..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# Path -PATH := node_modules/.bin:$(PATH) -SHELL := /bin/bash - -# applications -NODE ?= $(shell which node) -YARN ?= $(shell which yarn) -PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -.FORCE: - -install: node_modules - -node_modules: package.json - @NODE_ENV= $(PKG) install - @touch node_modules - -lint: .FORCE - eslint browser.js debug.js index.js node.js - -test-node: .FORCE - istanbul cover node_modules/mocha/bin/_mocha -- test/**.js - -test-browser: .FORCE - mkdir -p dist - - @$(BROWSERIFY) \ - --standalone debug \ - . > dist/debug.js - - karma start --single-run - rimraf dist - -test: .FORCE - concurrently \ - "make test-node" \ - "make test-browser" - -coveralls: - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js - -.PHONY: all install clean distclean diff --git a/node_modules/eslint-module-utils/node_modules/debug/README.md b/node_modules/eslint-module-utils/node_modules/debug/README.md index f67be6b317..0ee7634ddd 100644 --- a/node_modules/eslint-module-utils/node_modules/debug/README.md +++ b/node_modules/eslint-module-utils/node_modules/debug/README.md @@ -1,12 +1,11 @@ # debug -[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) +[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) + - -A tiny node.js debugging utility modelled after node core's debugging technique. - -**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)** +A tiny JavaScript debugging utility modelled after Node.js core's debugging +technique. Works in Node.js and web browsers. ## Installation @@ -18,7 +17,7 @@ $ npm install debug `debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. -Example _app.js_: +Example [_app.js_](./examples/node/app.js): ```js var debug = require('debug')('http') @@ -27,7 +26,7 @@ var debug = require('debug')('http') // fake app -debug('booting %s', name); +debug('booting %o', name); http.createServer(function(req, res){ debug(req.method + ' ' + req.url); @@ -41,81 +40,148 @@ http.createServer(function(req, res){ require('./worker'); ``` -Example _worker.js_: +Example [_worker.js_](./examples/node/worker.js): ```js -var debug = require('debug')('worker'); +var a = require('debug')('worker:a') + , b = require('debug')('worker:b'); -setInterval(function(){ - debug('doing some work'); -}, 1000); +function work() { + a('doing lots of uninteresting work'); + setTimeout(work, Math.random() * 1000); +} + +work(); + +function workb() { + b('doing some work'); + setTimeout(workb, Math.random() * 2000); +} + +workb(); ``` - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: +The `DEBUG` environment variable is then used to enable these based on space or +comma-delimited names. + +Here are some examples: - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) +screen shot 2017-08-08 at 12 53 04 pm +screen shot 2017-08-08 at 12 53 38 pm +screen shot 2017-08-08 at 12 53 25 pm - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) +#### Windows command prompt notes -#### Windows note +##### CMD - On Windows the environment variable is set using the `set` command. +On Windows the environment variable is set using the `set` command. - ```cmd - set DEBUG=*,-not_this - ``` +```cmd +set DEBUG=*,-not_this +``` - Note that PowerShell uses different syntax to set environment variables. +Example: + +```cmd +set DEBUG=* & node app.js +``` + +##### PowerShell (VS Code default) + +PowerShell uses different syntax to set environment variables. + +```cmd +$env:DEBUG = "*,-not_this" +``` - ```cmd - $env:DEBUG = "*,-not_this" - ``` +Example: + +```cmd +$env:DEBUG='app';node app.js +``` Then, run the program to be debugged as usual. +npm script example: +```js + "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", +``` + +## Namespace Colors + +Every debug instance has a color generated for it based on its namespace name. +This helps when visually parsing the debug output to identify which debug instance +a debug line belongs to. + +#### Node.js + +In Node.js, colors are enabled when stderr is a TTY. You also _should_ install +the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, +otherwise debug will only use a small handful of basic colors. + + + +#### Web Browser + +Colors are also enabled on "Web Inspectors" that understand the `%c` formatting +option. These are WebKit web inspectors, Firefox ([since version +31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) +and the Firebug plugin for Firefox (any version). + + + + ## Millisecond diff - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. +When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. + + - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) +When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: + - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) ## Conventions - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". +If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. ## Wildcards - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. +The `*` character may be used as a wildcard. Suppose for example your library has +debuggers named "connect:bodyParser", "connect:compress", "connect:session", +instead of listing all three with +`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do +`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". +You can also exclude specific debuggers by prefixing them with a "-" character. +For example, `DEBUG=*,-connect:*` would include all debuggers except those +starting with "connect:". ## Environment Variables - When running through Node.js, you can set a few environment variables that will - change the behavior of the debug logging: +When running through Node.js, you can set a few environment variables that will +change the behavior of the debug logging: | Name | Purpose | |-----------|-------------------------------------------------| | `DEBUG` | Enables/disables specific debugging namespaces. | +| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | | `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | +| `DEBUG_DEPTH` | Object inspection depth. | | `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - __Note:__ The environment variables beginning with `DEBUG_` end up being - converted into an Options object that gets used with `%o`/`%O` formatters. - See the Node.js documentation for - [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) - for the complete list. +__Note:__ The environment variables beginning with `DEBUG_` end up being +converted into an Options object that gets used with `%o`/`%O` formatters. +See the Node.js documentation for +[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) +for the complete list. ## Formatters - - Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters: +Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. +Below are the officially supported formatters: | Formatter | Representation | |-----------|----------------| @@ -126,9 +192,12 @@ Then, run the program to be debugged as usual. | `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | | `%%` | Single percent sign ('%'). This does not consume an argument. | + ### Custom formatters - You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like: +You can add custom formatters by extending the `debug.formatters` object. +For example, if you wanted to add support for rendering a Buffer as hex with +`%h`, you could do something like: ```js const createDebug = require('debug') @@ -142,14 +211,16 @@ debug('this is hex: %h', new Buffer('hello world')) // foo this is hex: 68656c6c6f20776f726c6421 +0ms ``` -## Browser support - You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), - or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), - if you don't want to build it yourself. - Debug's enable state is currently persisted by `localStorage`. - Consider the situation shown below where you have `worker:a` and `worker:b`, - and wish to debug both. You can enable this using `localStorage.debug`: +## Browser Support + +You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), +or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), +if you don't want to build it yourself. + +Debug's enable state is currently persisted by `localStorage`. +Consider the situation shown below where you have `worker:a` and `worker:b`, +and wish to debug both. You can enable this using `localStorage.debug`: ```js localStorage.debug = 'worker:*' @@ -170,23 +241,12 @@ setInterval(function(){ }, 1200); ``` -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - ## Output streams By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: -Example _stdout.js_: +Example [_stdout.js_](./examples/node/stdout.js): ```js var debug = require('debug'); @@ -208,13 +268,78 @@ error('now goes to stdout via console.info'); log('still goes to stdout, but via console.info now'); ``` +## Extend +You can simply extend debugger +```js +const log = require('debug')('auth'); + +//creates new debug instance with extended namespace +const logSign = log.extend('sign'); +const logLogin = log.extend('login'); + +log('hello'); // auth hello +logSign('hello'); //auth:sign hello +logLogin('hello'); //auth:login hello +``` + +## Set dynamically + +You can also enable debug dynamically by calling the `enable()` method : + +```js +let debug = require('debug'); + +console.log(1, debug.enabled('test')); + +debug.enable('test'); +console.log(2, debug.enabled('test')); + +debug.disable(); +console.log(3, debug.enabled('test')); + +``` + +print : +``` +1 false +2 true +3 false +``` + +Usage : +`enable(namespaces)` +`namespaces` can include modes separated by a colon and wildcards. + +Note that calling `enable()` completely overrides previously set DEBUG variable : + +``` +$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' +=> false +``` + +## Checking whether a debug target is enabled + +After you've created a debug instance, you can determine whether or not it is +enabled by checking the `enabled` property: + +```javascript +const debug = require('debug')('http'); + +if (debug.enabled) { + // do stuff... +} +``` + +You can also manually toggle this property to force the debug instance to be +enabled or disabled. + ## Authors - TJ Holowaychuk - Nathan Rajlich - Andrew Rhyne - + ## Backers Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] @@ -290,7 +415,7 @@ Become a sponsor and get your logo on our README on Github with a link to your s (The MIT License) -Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca> +Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/node_modules/eslint-module-utils/node_modules/debug/component.json b/node_modules/eslint-module-utils/node_modules/debug/component.json deleted file mode 100644 index 9de26410f0..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.6.9", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "src/browser.js", - "scripts": [ - "src/browser.js", - "src/debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/node_modules/eslint-module-utils/node_modules/debug/karma.conf.js b/node_modules/eslint-module-utils/node_modules/debug/karma.conf.js deleted file mode 100644 index 103a82d15b..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/karma.conf.js +++ /dev/null @@ -1,70 +0,0 @@ -// Karma configuration -// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC) - -module.exports = function(config) { - config.set({ - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['mocha', 'chai', 'sinon'], - - - // list of files / patterns to load in the browser - files: [ - 'dist/debug.js', - 'test/*spec.js' - ], - - - // list of files to exclude - exclude: [ - 'src/node.js' - ], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - }, - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['PhantomJS'], - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity - }) -} diff --git a/node_modules/eslint-module-utils/node_modules/debug/package.json b/node_modules/eslint-module-utils/node_modules/debug/package.json index 0b1b9df8b4..e884995b0a 100644 --- a/node_modules/eslint-module-utils/node_modules/debug/package.json +++ b/node_modules/eslint-module-utils/node_modules/debug/package.json @@ -1,6 +1,6 @@ { "name": "debug", - "version": "2.6.9", + "version": "3.2.7", "repository": { "type": "git", "url": "git://github.com/visionmedia/debug.git" @@ -11,6 +11,13 @@ "log", "debugger" ], + "files": [ + "src", + "node.js", + "dist/debug.js", + "LICENSE", + "README.md" + ], "author": "TJ Holowaychuk ", "contributors": [ "Nathan Rajlich (http://n8.io)", @@ -18,32 +25,27 @@ ], "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" }, "devDependencies": { - "browserify": "9.0.3", + "@babel/cli": "^7.0.0", + "@babel/core": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "browserify": "14.4.0", "chai": "^3.5.0", "concurrently": "^3.1.0", - "coveralls": "^2.11.15", - "eslint": "^3.12.1", + "coveralls": "^3.0.2", "istanbul": "^0.4.5", - "karma": "^1.3.0", + "karma": "^3.0.0", "karma-chai": "^0.1.0", "karma-mocha": "^1.3.0", "karma-phantomjs-launcher": "^1.0.2", - "karma-sinon": "^1.0.5", - "mocha": "^3.2.0", + "mocha": "^5.2.0", "mocha-lcov-reporter": "^1.2.0", "rimraf": "^2.5.4", - "sinon": "^1.17.6", - "sinon-chai": "^2.8.0" + "xo": "^0.23.0" }, "main": "./src/index.js", "browser": "./src/browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - } + "unpkg": "./dist/debug.js" } \ No newline at end of file diff --git a/node_modules/eslint-module-utils/node_modules/debug/src/browser.js b/node_modules/eslint-module-utils/node_modules/debug/src/browser.js index 7106924934..c924b0ac4d 100644 --- a/node_modules/eslint-module-utils/node_modules/debug/src/browser.js +++ b/node_modules/eslint-module-utils/node_modules/debug/src/browser.js @@ -1,33 +1,23 @@ +"use strict"; + +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/* eslint-env browser */ + /** * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. */ - -exports = module.exports = require('./debug'); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - +exports.storage = localstorage(); /** * Colors. */ -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - +exports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33']; /** * Currently only WebKit-based Web Inspectors, Firefox >= v31, * and the Firebug extension (any Firefox version) are known @@ -35,79 +25,65 @@ exports.colors = [ * * TODO: add a `localStorage` variable to explicitly enable/disable colors */ +// eslint-disable-next-line complexity function useColors() { // NB: In an Electron preload script, document will be defined but not fully // initialized. Since we know we're in Chrome, we'll just detect this case // explicitly - if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { return true; - } + } // Internet Explorer and Edge do not support colors. - // is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (err) { - return '[UnexpectedJSONParseError]: ' + err.message; - } -}; + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); +} /** * Colorize log arguments if enabled. * * @api public */ -function formatArgs(args) { - var useColors = this.useColors; - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff); - if (!useColors) return; + if (!this.useColors) { + return; + } var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit') - - // the final "%c" is somewhat tricky, because there could be other + args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other // arguments passed either before or after the %c, so we need to // figure out the correct index to insert the CSS into + var index = 0; var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function(match) { - if ('%%' === match) return; + args[0].replace(/%[a-zA-Z%]/g, function (match) { + if (match === '%%') { + return; + } + index++; - if ('%c' === match) { - // we only are interested in the *last* %c + + if (match === '%c') { + // We only are interested in the *last* %c // (the user may have provided their own) lastC = index; } }); - args.splice(lastC, 0, c); } - /** * Invokes `console.log()` when available. * No-op when `console.log` is not a "function". @@ -115,14 +91,14 @@ function formatArgs(args) { * @api public */ + function log() { - // this hackery is required for IE8/9, where + var _console; + + // This hackery is required for IE8/9, where // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); + return (typeof console === "undefined" ? "undefined" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments); } - /** * Save `namespaces`. * @@ -130,16 +106,18 @@ function log() { * @api private */ + function save(namespaces) { try { - if (null == namespaces) { - exports.storage.removeItem('debug'); + if (namespaces) { + exports.storage.setItem('debug', namespaces); } else { - exports.storage.debug = namespaces; + exports.storage.removeItem('debug'); } - } catch(e) {} + } catch (error) {// Swallow + // XXX (@Qix-) should we be logging these? + } } - /** * Load `namespaces`. * @@ -147,26 +125,23 @@ function save(namespaces) { * @api private */ + function load() { var r; - try { - r = exports.storage.debug; - } catch(e) {} + try { + r = exports.storage.getItem('debug'); + } catch (error) {} // Swallow + // XXX (@Qix-) should we be logging these? // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + + if (!r && typeof process !== 'undefined' && 'env' in process) { r = process.env.DEBUG; } return r; } - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - /** * Localstorage attempts to return the localstorage. * @@ -178,8 +153,28 @@ exports.enable(load()); * @api private */ + function localstorage() { try { - return window.localStorage; - } catch (e) {} + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) {// Swallow + // XXX (@Qix-) should we be logging these? + } } + +module.exports = require('./common')(exports); +var formatters = module.exports.formatters; +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; + diff --git a/node_modules/eslint-module-utils/node_modules/debug/src/common.js b/node_modules/eslint-module-utils/node_modules/debug/src/common.js new file mode 100644 index 0000000000..e0de3fb530 --- /dev/null +++ b/node_modules/eslint-module-utils/node_modules/debug/src/common.js @@ -0,0 +1,249 @@ +"use strict"; + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + Object.keys(env).forEach(function (key) { + createDebug[key] = env[key]; + }); + /** + * Active `debug` instances. + */ + + createDebug.instances = []; + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + + createDebug.formatters = {}; + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + + function selectColor(namespace) { + var hash = 0; + + for (var i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + + createDebug.selectColor = selectColor; + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + + function createDebug(namespace) { + var prevTime; + + function debug() { + // Disabled? + if (!debug.enabled) { + return; + } + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var self = debug; // Set `diff` timestamp + + var curr = Number(new Date()); + var ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } // Apply any `formatters` transformations + + + var index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return match; + } + + index++; + var formatter = createDebug.formatters[format]; + + if (typeof formatter === 'function') { + var val = args[index]; + match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format` + + args.splice(index, 1); + index--; + } + + return match; + }); // Apply env-specific formatting (colors, etc.) + + createDebug.formatArgs.call(self, args); + var logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.enabled = createDebug.enabled(namespace); + debug.useColors = createDebug.useColors(); + debug.color = selectColor(namespace); + debug.destroy = destroy; + debug.extend = extend; // Debug.formatArgs = formatArgs; + // debug.rawLog = rawLog; + // env-specific initialization logic for debug instances + + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + createDebug.instances.push(debug); + return debug; + } + + function destroy() { + var index = createDebug.instances.indexOf(this); + + if (index !== -1) { + createDebug.instances.splice(index, 1); + return true; + } + + return false; + } + + function extend(namespace, delimiter) { + return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + } + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + + + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.names = []; + createDebug.skips = []; + var i; + var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + var len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + + for (i = 0; i < createDebug.instances.length; i++) { + var instance = createDebug.instances[i]; + instance.enabled = createDebug.enabled(instance.namespace); + } + } + /** + * Disable debug output. + * + * @api public + */ + + + function disable() { + createDebug.enable(''); + } + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + + + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } + + var i; + var len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + + + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + + return val; + } + + createDebug.enable(createDebug.load()); + return createDebug; +} + +module.exports = setup; + diff --git a/node_modules/eslint-module-utils/node_modules/debug/src/debug.js b/node_modules/eslint-module-utils/node_modules/debug/src/debug.js deleted file mode 100644 index 6a5e3fc94c..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/src/debug.js +++ /dev/null @@ -1,202 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - -exports.formatters = {}; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * @param {String} namespace - * @return {Number} - * @api private - */ - -function selectColor(namespace) { - var hash = 0, i; - - for (i in namespace) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return exports.colors[Math.abs(hash) % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function createDebug(namespace) { - - function debug() { - // disabled? - if (!debug.enabled) return; - - var self = debug; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // turn the `arguments` into a proper Array - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %O - args.unshift('%O'); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // apply env-specific formatting (colors, etc.) - exports.formatArgs.call(self, args); - - var logFn = debug.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.enabled = exports.enabled(namespace); - debug.useColors = exports.useColors(); - debug.color = selectColor(namespace); - - // env-specific initialization logic for debug instances - if ('function' === typeof exports.init) { - exports.init(debug); - } - - return debug; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - exports.names = []; - exports.skips = []; - - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/node_modules/eslint-module-utils/node_modules/debug/src/index.js b/node_modules/eslint-module-utils/node_modules/debug/src/index.js index e12cf4d58c..021731593a 100644 --- a/node_modules/eslint-module-utils/node_modules/debug/src/index.js +++ b/node_modules/eslint-module-utils/node_modules/debug/src/index.js @@ -1,10 +1,12 @@ +"use strict"; + /** - * Detect Electron renderer process, which is node, but we should + * Detect Electron renderer / nwjs process, which is node, but we should * treat as a browser. */ - -if (typeof process !== 'undefined' && process.type === 'renderer') { +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { module.exports = require('./browser.js'); } else { module.exports = require('./node.js'); } + diff --git a/node_modules/eslint-module-utils/node_modules/debug/src/inspector-log.js b/node_modules/eslint-module-utils/node_modules/debug/src/inspector-log.js deleted file mode 100644 index 60ea6c04aa..0000000000 --- a/node_modules/eslint-module-utils/node_modules/debug/src/inspector-log.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = inspectorLog; - -// black hole -const nullStream = new (require('stream').Writable)(); -nullStream._write = () => {}; - -/** - * Outputs a `console.log()` to the Node.js Inspector console *only*. - */ -function inspectorLog() { - const stdout = console._stdout; - console._stdout = nullStream; - console.log.apply(console, arguments); - console._stdout = stdout; -} diff --git a/node_modules/eslint-module-utils/node_modules/debug/src/node.js b/node_modules/eslint-module-utils/node_modules/debug/src/node.js index b15109c905..1e6a5f16ae 100644 --- a/node_modules/eslint-module-utils/node_modules/debug/src/node.js +++ b/node_modules/eslint-module-utils/node_modules/debug/src/node.js @@ -1,134 +1,112 @@ +"use strict"; + /** * Module dependencies. */ - var tty = require('tty'); -var util = require('util'); +var util = require('util'); /** * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. */ -exports = module.exports = require('./debug'); + exports.init = init; exports.log = log; exports.formatArgs = formatArgs; exports.save = save; exports.load = load; exports.useColors = useColors; - /** * Colors. */ exports.colors = [6, 2, 3, 4, 5, 1]; +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + var supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221]; + } +} catch (error) {} // Swallow - we only care if `supports-color` is available; it doesn't have to be. + /** * Build up the default `inspectOpts` object from the environment variables. * * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js */ + exports.inspectOpts = Object.keys(process.env).filter(function (key) { return /^debug_/i.test(key); }).reduce(function (obj, key) { - // camel-case - var prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); + // Camel-case + var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function (_, k) { + return k.toUpperCase(); + }); // Coerce string value into JS value - // coerce string value into JS value var val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) val = true; - else if (/^(no|off|false|disabled)$/i.test(val)) val = false; - else if (val === 'null') val = null; - else val = Number(val); + + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } obj[prop] = val; return obj; }, {}); - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; - -if (1 !== fd && 2 !== fd) { - util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() -} - -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - /** * Is stdout a TTY? Colored output is enabled when `true`. */ function useColors() { - return 'colors' in exports.inspectOpts - ? Boolean(exports.inspectOpts.colors) - : tty.isatty(fd); + return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); } - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -exports.formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n').map(function(str) { - return str.trim() - }).join(' '); -}; - -/** - * Map %o to `util.inspect()`, allowing multiple lines if needed. - */ - -exports.formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; - /** * Adds ANSI color escape codes if enabled. * * @api public */ + function formatArgs(args) { - var name = this.namespace; - var useColors = this.useColors; + var name = this.namespace, + useColors = this.useColors; if (useColors) { var c = this.color; - var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; - + var colorCode = "\x1B[3" + (c < 8 ? c : '8;5;' + c); + var prefix = " ".concat(colorCode, ";1m").concat(name, " \x1B[0m"); args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + "\x1B[0m"); } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; + args[0] = getDate() + name + ' ' + args[0]; } } +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + + return new Date().toISOString() + ' '; +} /** - * Invokes `util.format()` with the specified arguments and writes to `stream`. + * Invokes `util.format()` with the specified arguments and writes to stderr. */ + function log() { - return stream.write(util.format.apply(util, arguments) + '\n'); + return process.stderr.write(util.format.apply(util, arguments) + '\n'); } - /** * Save `namespaces`. * @@ -136,16 +114,16 @@ function log() { * @api private */ + function save(namespaces) { - if (null == namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { // If you set a process.env field to null or undefined, it gets cast to the // string 'null' or 'undefined'. Just delete instead. delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; } } - /** * Load `namespaces`. * @@ -153,78 +131,10 @@ function save(namespaces) { * @api private */ + function load() { return process.env.DEBUG; } - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - /** * Init logic for `debug` instances. * @@ -232,17 +142,36 @@ function createWritableStdioStream (fd) { * differently for a particular `debug` instance. */ -function init (debug) { - debug.inspectOpts = {}; +function init(debug) { + debug.inspectOpts = {}; var keys = Object.keys(exports.inspectOpts); + for (var i = 0; i < keys.length; i++) { debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; } } +module.exports = require('./common')(exports); +var formatters = module.exports.formatters; /** - * Enable namespaces listed in `process.env.DEBUG` initially. + * Map %o to `util.inspect()`, all on a single line. */ -exports.enable(load()); +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(function (str) { return str.trim(); }) + .join(' '); +}; +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; + diff --git a/node_modules/eslint-module-utils/node_modules/ms/index.js b/node_modules/eslint-module-utils/node_modules/ms/index.js deleted file mode 100644 index 6a522b16b3..0000000000 --- a/node_modules/eslint-module-utils/node_modules/ms/index.js +++ /dev/null @@ -1,152 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isNaN(val) === false) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtShort(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - return plural(ms, d, 'day') || - plural(ms, h, 'hour') || - plural(ms, m, 'minute') || - plural(ms, s, 'second') || - ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) { - return; - } - if (ms < n * 1.5) { - return Math.floor(ms / n) + ' ' + name; - } - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/node_modules/eslint-module-utils/node_modules/ms/license.md b/node_modules/eslint-module-utils/node_modules/ms/license.md deleted file mode 100644 index 69b61253a3..0000000000 --- a/node_modules/eslint-module-utils/node_modules/ms/license.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Zeit, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/eslint-module-utils/node_modules/ms/package.json b/node_modules/eslint-module-utils/node_modules/ms/package.json deleted file mode 100644 index 63aaff3abf..0000000000 --- a/node_modules/eslint-module-utils/node_modules/ms/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "ms", - "version": "2.0.0", - "description": "Tiny milisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" - ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" - }, - "eslintConfig": { - "extends": "eslint:recommended", - "env": { - "node": true, - "es6": true - } - }, - "lint-staged": { - "*.js": [ - "npm run lint", - "prettier --single-quote --write", - "git add" - ] - }, - "license": "MIT", - "devDependencies": { - "eslint": "3.19.0", - "expect.js": "0.3.1", - "husky": "0.13.3", - "lint-staged": "3.4.1", - "mocha": "3.4.1" - } -} \ No newline at end of file diff --git a/node_modules/eslint-module-utils/node_modules/ms/readme.md b/node_modules/eslint-module-utils/node_modules/ms/readme.md deleted file mode 100644 index 84a9974ccc..0000000000 --- a/node_modules/eslint-module-utils/node_modules/ms/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# ms - -[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) -[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/) - -Use this package to easily convert various time formats to milliseconds. - -## Examples - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('1y') // 31557600000 -ms('100') // 100 -``` - -### Convert from milliseconds - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -### Time format written-out - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -## Features - -- Works both in [node](https://nodejs.org) and in the browser. -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of equivalent ms is returned. - -## Caught a bug? - -1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device -2. Link the package to the global module directory: `npm link` -3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms! - -As always, you can run the tests using: `npm test` diff --git a/node_modules/eslint-module-utils/package.json b/node_modules/eslint-module-utils/package.json index f311b235a9..f7a9b7c775 100644 --- a/node_modules/eslint-module-utils/package.json +++ b/node_modules/eslint-module-utils/package.json @@ -1,6 +1,6 @@ { "name": "eslint-module-utils", - "version": "2.6.0", + "version": "2.6.1", "description": "Core utilities to support eslint-plugin-import and other module-related plugins.", "engines": { "node": ">=4" @@ -26,7 +26,7 @@ }, "homepage": "https://github.com/benmosher/eslint-plugin-import#readme", "dependencies": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" } } \ No newline at end of file diff --git a/node_modules/eslint-module-utils/parse.js b/node_modules/eslint-module-utils/parse.js index b3a469221d..9cc2380b3a 100644 --- a/node_modules/eslint-module-utils/parse.js +++ b/node_modules/eslint-module-utils/parse.js @@ -1,82 +1,82 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const moduleRequire = require('./module-require').default -const extname = require('path').extname +const moduleRequire = require('./module-require').default; +const extname = require('path').extname; -const log = require('debug')('eslint-plugin-import:parse') +const log = require('debug')('eslint-plugin-import:parse'); exports.default = function parse(path, content, context) { - if (context == null) throw new Error('need context to parse properly') + if (context == null) throw new Error('need context to parse properly'); - let parserOptions = context.parserOptions - const parserPath = getParserPath(path, context) + let parserOptions = context.parserOptions; + const parserPath = getParserPath(path, context); - if (!parserPath) throw new Error('parserPath is required!') + if (!parserPath) throw new Error('parserPath is required!'); // hack: espree blows up with frozen options - parserOptions = Object.assign({}, parserOptions) - parserOptions.ecmaFeatures = Object.assign({}, parserOptions.ecmaFeatures) + parserOptions = Object.assign({}, parserOptions); + parserOptions.ecmaFeatures = Object.assign({}, parserOptions.ecmaFeatures); // always include comments and tokens (for doc parsing) - parserOptions.comment = true - parserOptions.attachComment = true // keeping this for backward-compat with older parsers - parserOptions.tokens = true + parserOptions.comment = true; + parserOptions.attachComment = true; // keeping this for backward-compat with older parsers + parserOptions.tokens = true; // attach node locations - parserOptions.loc = true - parserOptions.range = true + parserOptions.loc = true; + parserOptions.range = true; // provide the `filePath` like eslint itself does, in `parserOptions` // https://github.com/eslint/eslint/blob/3ec436ee/lib/linter.js#L637 - parserOptions.filePath = path - + parserOptions.filePath = path; + // @typescript-eslint/parser will parse the entire project with typechecking if you provide // "project" or "projects" in parserOptions. Removing these options means the parser will // only parse one file in isolate mode, which is much, much faster. // https://github.com/benmosher/eslint-plugin-import/issues/1408#issuecomment-509298962 - delete parserOptions.project - delete parserOptions.projects - + delete parserOptions.project; + delete parserOptions.projects; + // require the parser relative to the main module (i.e., ESLint) - const parser = moduleRequire(parserPath) + const parser = moduleRequire(parserPath); if (typeof parser.parseForESLint === 'function') { - let ast + let ast; try { - ast = parser.parseForESLint(content, parserOptions).ast + ast = parser.parseForESLint(content, parserOptions).ast; } catch (e) { - console.warn() - console.warn('Error while parsing ' + parserOptions.filePath) - console.warn('Line ' + e.lineNumber + ', column ' + e.column + ': ' + e.message) + console.warn(); + console.warn('Error while parsing ' + parserOptions.filePath); + console.warn('Line ' + e.lineNumber + ', column ' + e.column + ': ' + e.message); } if (!ast || typeof ast !== 'object') { console.warn( '`parseForESLint` from parser `' + parserPath + '` is invalid and will just be ignored' - ) + ); } else { - return ast + return ast; } } - return parser.parse(content, parserOptions) -} + return parser.parse(content, parserOptions); +}; function getParserPath(path, context) { - const parsers = context.settings['import/parsers'] + const parsers = context.settings['import/parsers']; if (parsers != null) { - const extension = extname(path) - for (let parserPath in parsers) { + const extension = extname(path); + for (const parserPath in parsers) { if (parsers[parserPath].indexOf(extension) > -1) { // use this alternate parser - log('using alt parser:', parserPath) - return parserPath + log('using alt parser:', parserPath); + return parserPath; } } } // default to use ESLint parser - return context.parserPath + return context.parserPath; } diff --git a/node_modules/eslint-module-utils/resolve.js b/node_modules/eslint-module-utils/resolve.js index 3138194a94..ea5bf5a150 100644 --- a/node_modules/eslint-module-utils/resolve.js +++ b/node_modules/eslint-module-utils/resolve.js @@ -1,211 +1,211 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const pkgDir = require('pkg-dir') +const pkgDir = require('pkg-dir'); -const fs = require('fs') -const Module = require('module') -const path = require('path') +const fs = require('fs'); +const Module = require('module'); +const path = require('path'); -const hashObject = require('./hash').hashObject - , ModuleCache = require('./ModuleCache').default +const hashObject = require('./hash').hashObject; +const ModuleCache = require('./ModuleCache').default; -const CASE_SENSITIVE_FS = !fs.existsSync(path.join(__dirname, 'reSOLVE.js')) -exports.CASE_SENSITIVE_FS = CASE_SENSITIVE_FS +const CASE_SENSITIVE_FS = !fs.existsSync(path.join(__dirname.toUpperCase(), 'reSOLVE.js')); +exports.CASE_SENSITIVE_FS = CASE_SENSITIVE_FS; -const ERROR_NAME = 'EslintPluginImportResolveError' +const ERROR_NAME = 'EslintPluginImportResolveError'; -const fileExistsCache = new ModuleCache() +const fileExistsCache = new ModuleCache(); // Polyfill Node's `Module.createRequireFromPath` if not present (added in Node v10.12.0) // Use `Module.createRequire` if available (added in Node v12.2.0) const createRequire = Module.createRequire || Module.createRequireFromPath || function (filename) { - const mod = new Module(filename, null) - mod.filename = filename - mod.paths = Module._nodeModulePaths(path.dirname(filename)) + const mod = new Module(filename, null); + mod.filename = filename; + mod.paths = Module._nodeModulePaths(path.dirname(filename)); - mod._compile(`module.exports = require;`, filename) + mod._compile(`module.exports = require;`, filename); - return mod.exports -} + return mod.exports; +}; function tryRequire(target, sourceFile) { - let resolved + let resolved; try { // Check if the target exists if (sourceFile != null) { try { - resolved = createRequire(path.resolve(sourceFile)).resolve(target) + resolved = createRequire(path.resolve(sourceFile)).resolve(target); } catch (e) { - resolved = require.resolve(target) + resolved = require.resolve(target); } } else { - resolved = require.resolve(target) + resolved = require.resolve(target); } } catch(e) { // If the target does not exist then just return undefined - return undefined + return undefined; } // If the target exists then return the loaded module - return require(resolved) + return require(resolved); } // http://stackoverflow.com/a/27382838 exports.fileExistsWithCaseSync = function fileExistsWithCaseSync(filepath, cacheSettings) { // don't care if the FS is case-sensitive - if (CASE_SENSITIVE_FS) return true + if (CASE_SENSITIVE_FS) return true; // null means it resolved to a builtin - if (filepath === null) return true - if (filepath.toLowerCase() === process.cwd().toLowerCase()) return true - const parsedPath = path.parse(filepath) - , dir = parsedPath.dir + if (filepath === null) return true; + if (filepath.toLowerCase() === process.cwd().toLowerCase()) return true; + const parsedPath = path.parse(filepath); + const dir = parsedPath.dir; - let result = fileExistsCache.get(filepath, cacheSettings) - if (result != null) return result + let result = fileExistsCache.get(filepath, cacheSettings); + if (result != null) return result; // base case if (dir === '' || parsedPath.root === filepath) { - result = true + result = true; } else { - const filenames = fs.readdirSync(dir) + const filenames = fs.readdirSync(dir); if (filenames.indexOf(parsedPath.base) === -1) { - result = false + result = false; } else { - result = fileExistsWithCaseSync(dir, cacheSettings) + result = fileExistsWithCaseSync(dir, cacheSettings); } } - fileExistsCache.set(filepath, result) - return result -} + fileExistsCache.set(filepath, result); + return result; +}; function relative(modulePath, sourceFile, settings) { - return fullResolve(modulePath, sourceFile, settings).path + return fullResolve(modulePath, sourceFile, settings).path; } function fullResolve(modulePath, sourceFile, settings) { // check if this is a bonus core module - const coreSet = new Set(settings['import/core-modules']) - if (coreSet.has(modulePath)) return { found: true, path: null } + const coreSet = new Set(settings['import/core-modules']); + if (coreSet.has(modulePath)) return { found: true, path: null }; - const sourceDir = path.dirname(sourceFile) - , cacheKey = sourceDir + hashObject(settings).digest('hex') + modulePath + const sourceDir = path.dirname(sourceFile); + const cacheKey = sourceDir + hashObject(settings).digest('hex') + modulePath; - const cacheSettings = ModuleCache.getSettings(settings) + const cacheSettings = ModuleCache.getSettings(settings); - const cachedPath = fileExistsCache.get(cacheKey, cacheSettings) - if (cachedPath !== undefined) return { found: true, path: cachedPath } + const cachedPath = fileExistsCache.get(cacheKey, cacheSettings); + if (cachedPath !== undefined) return { found: true, path: cachedPath }; function cache(resolvedPath) { - fileExistsCache.set(cacheKey, resolvedPath) + fileExistsCache.set(cacheKey, resolvedPath); } function withResolver(resolver, config) { function v1() { try { - const resolved = resolver.resolveImport(modulePath, sourceFile, config) - if (resolved === undefined) return { found: false } - return { found: true, path: resolved } + const resolved = resolver.resolveImport(modulePath, sourceFile, config); + if (resolved === undefined) return { found: false }; + return { found: true, path: resolved }; } catch (err) { - return { found: false } + return { found: false }; } } function v2() { - return resolver.resolve(modulePath, sourceFile, config) + return resolver.resolve(modulePath, sourceFile, config); } switch (resolver.interfaceVersion) { - case 2: - return v2() + case 2: + return v2(); - default: - case 1: - return v1() + default: + case 1: + return v1(); } } const configResolvers = (settings['import/resolver'] - || { 'node': settings['import/resolve'] }) // backward compatibility + || { 'node': settings['import/resolve'] }); // backward compatibility - const resolvers = resolverReducer(configResolvers, new Map()) + const resolvers = resolverReducer(configResolvers, new Map()); - for (let pair of resolvers) { - let name = pair[0] - , config = pair[1] - const resolver = requireResolver(name, sourceFile) - , resolved = withResolver(resolver, config) + for (const pair of resolvers) { + const name = pair[0]; + const config = pair[1]; + const resolver = requireResolver(name, sourceFile); + const resolved = withResolver(resolver, config); - if (!resolved.found) continue + if (!resolved.found) continue; // else, counts - cache(resolved.path) - return resolved + cache(resolved.path); + return resolved; } // failed // cache(undefined) - return { found: false } + return { found: false }; } -exports.relative = relative +exports.relative = relative; function resolverReducer(resolvers, map) { - if (resolvers instanceof Array) { - resolvers.forEach(r => resolverReducer(r, map)) - return map + if (Array.isArray(resolvers)) { + resolvers.forEach(r => resolverReducer(r, map)); + return map; } if (typeof resolvers === 'string') { - map.set(resolvers, null) - return map + map.set(resolvers, null); + return map; } if (typeof resolvers === 'object') { - for (let key in resolvers) { - map.set(key, resolvers[key]) + for (const key in resolvers) { + map.set(key, resolvers[key]); } - return map + return map; } - const err = new Error('invalid resolver config') - err.name = ERROR_NAME - throw err + const err = new Error('invalid resolver config'); + err.name = ERROR_NAME; + throw err; } function getBaseDir(sourceFile) { - return pkgDir.sync(sourceFile) || process.cwd() + return pkgDir.sync(sourceFile) || process.cwd(); } function requireResolver(name, sourceFile) { // Try to resolve package with conventional name - let resolver = tryRequire(`eslint-import-resolver-${name}`, sourceFile) || + const resolver = tryRequire(`eslint-import-resolver-${name}`, sourceFile) || tryRequire(name, sourceFile) || - tryRequire(path.resolve(getBaseDir(sourceFile), name)) + tryRequire(path.resolve(getBaseDir(sourceFile), name)); if (!resolver) { - const err = new Error(`unable to load resolver "${name}".`) - err.name = ERROR_NAME - throw err + const err = new Error(`unable to load resolver "${name}".`); + err.name = ERROR_NAME; + throw err; } if (!isResolverValid(resolver)) { - const err = new Error(`${name} with invalid interface loaded as resolver`) - err.name = ERROR_NAME - throw err + const err = new Error(`${name} with invalid interface loaded as resolver`); + err.name = ERROR_NAME; + throw err; } - return resolver + return resolver; } function isResolverValid(resolver) { if (resolver.interfaceVersion === 2) { - return resolver.resolve && typeof resolver.resolve === 'function' + return resolver.resolve && typeof resolver.resolve === 'function'; } else { - return resolver.resolveImport && typeof resolver.resolveImport === 'function' + return resolver.resolveImport && typeof resolver.resolveImport === 'function'; } } -const erroredContexts = new Set() +const erroredContexts = new Set(); /** * Given @@ -218,24 +218,24 @@ const erroredContexts = new Set() function resolve(p, context) { try { return relative( p - , context.getFilename() - , context.settings - ) + , context.getFilename() + , context.settings + ); } catch (err) { if (!erroredContexts.has(context)) { // The `err.stack` string starts with `err.name` followed by colon and `err.message`. // We're filtering out the default `err.name` because it adds little value to the message. - let errMessage = err.message + let errMessage = err.message; if (err.name !== ERROR_NAME && err.stack) { - errMessage = err.stack.replace(/^Error: /, '') + errMessage = err.stack.replace(/^Error: /, ''); } context.report({ message: `Resolve error: ${errMessage}`, loc: { line: 1, column: 0 }, - }) - erroredContexts.add(context) + }); + erroredContexts.add(context); } } } -resolve.relative = relative -exports.default = resolve +resolve.relative = relative; +exports.default = resolve; diff --git a/node_modules/eslint-module-utils/unambiguous.js b/node_modules/eslint-module-utils/unambiguous.js index 1dae1d6167..1446632f39 100644 --- a/node_modules/eslint-module-utils/unambiguous.js +++ b/node_modules/eslint-module-utils/unambiguous.js @@ -1,8 +1,8 @@ -'use strict' -exports.__esModule = true +'use strict'; +exports.__esModule = true; -const pattern = /(^|;)\s*(export|import)((\s+\w)|(\s*[{*=]))/m +const pattern = /(^|;)\s*(export|import)((\s+\w)|(\s*[{*=]))/m; /** * detect possible imports/exports without a full parse. * @@ -14,11 +14,11 @@ const pattern = /(^|;)\s*(export|import)((\s+\w)|(\s*[{*=]))/m * @type {RegExp} */ exports.test = function isMaybeUnambiguousModule(content) { - return pattern.test(content) -} + return pattern.test(content); +}; // future-/Babel-proof at the expense of being a little loose -const unambiguousNodeType = /^(?:(?:Exp|Imp)ort.*Declaration|TSExportAssignment)$/ +const unambiguousNodeType = /^(?:(?:Exp|Imp)ort.*Declaration|TSExportAssignment)$/; /** * Given an AST, return true if the AST unambiguously represents a module. @@ -26,5 +26,5 @@ const unambiguousNodeType = /^(?:(?:Exp|Imp)ort.*Declaration|TSExportAssignment) * @return {Boolean} */ exports.isModule = function isUnambiguousModule(ast) { - return ast.body.some(node => unambiguousNodeType.test(node.type)) -} + return ast.body.some(node => unambiguousNodeType.test(node.type)); +}; diff --git a/node_modules/eslint-plugin-github/README.md b/node_modules/eslint-plugin-github/README.md index db14ae0536..629a54f5af 100644 --- a/node_modules/eslint-plugin-github/README.md +++ b/node_modules/eslint-plugin-github/README.md @@ -1,5 +1,7 @@ # eslint-plugin-github +[![Node CI](https://github.com/github/eslint-plugin-github/actions/workflows/nodejs.yml/badge.svg)](https://github.com/github/eslint-plugin-github/actions/workflows/nodejs.yml) + ## Installation ```sh @@ -28,7 +30,7 @@ JSON ESLint config example: The available configs are: -- `app` +- `internal` - Rules useful for github applications. - `browser` - Useful rules when shipping your app to the browser. diff --git a/node_modules/eslint-plugin-github/lib/configs/typescript.js b/node_modules/eslint-plugin-github/lib/configs/typescript.js index ff480bef76..5ec8c9741b 100644 --- a/node_modules/eslint-plugin-github/lib/configs/typescript.js +++ b/node_modules/eslint-plugin-github/lib/configs/typescript.js @@ -1,10 +1,12 @@ module.exports = { - extends: ['plugin:@typescript-eslint/recommended', 'prettier', 'prettier/@typescript-eslint'], + extends: ['plugin:@typescript-eslint/recommended', 'prettier'], parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint', 'github'], rules: { camelcase: 'off', 'no-unused-vars': 'off', + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': ['error'], '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/array-type': ['error', {default: 'array-simple'}], '@typescript-eslint/no-use-before-define': 'off', diff --git a/node_modules/eslint-plugin-github/lib/formatters/stylish-fixes.js b/node_modules/eslint-plugin-github/lib/formatters/stylish-fixes.js index 6ab58bc696..4b977175fb 100644 --- a/node_modules/eslint-plugin-github/lib/formatters/stylish-fixes.js +++ b/node_modules/eslint-plugin-github/lib/formatters/stylish-fixes.js @@ -12,7 +12,8 @@ try { } const getRuleURI = require('eslint-rule-documentation') -module.exports = function(results) { +// eslint-disable-next-line eslint-plugin/prefer-object-rule +module.exports = function (results) { let output = '\n' let errors = 0 let warnings = 0 @@ -82,8 +83,5 @@ function diff(a, b) { fs.writeFileSync(aPath, a, {encoding: 'utf8'}) fs.writeFileSync(bPath, b, {encoding: 'utf8'}) const result = childProcess.spawnSync('diff', ['-U5', aPath, bPath], {encoding: 'utf8'}) - return result.stdout - .split('\n') - .slice(2) - .join('\n') + return result.stdout.split('\n').slice(2).join('\n') } diff --git a/node_modules/eslint-plugin-github/lib/rules/array-foreach.js b/node_modules/eslint-plugin-github/lib/rules/array-foreach.js index 7b5aee9651..279e9687d7 100644 --- a/node_modules/eslint-plugin-github/lib/rules/array-foreach.js +++ b/node_modules/eslint-plugin-github/lib/rules/array-foreach.js @@ -1,6 +1,10 @@ module.exports = { meta: { - docs: {}, + type: 'suggestion', + docs: { + description: 'enforce `for..of` loops over `Array.forEach`', + url: require('../url')(module) + }, schema: [] }, @@ -8,7 +12,7 @@ module.exports = { return { CallExpression(node) { if (node.callee.property && node.callee.property.name === 'forEach') { - context.report(node, 'Prefer for...of instead of Array.forEach') + context.report({node, message: 'Prefer for...of instead of Array.forEach'}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/async-currenttarget.js b/node_modules/eslint-plugin-github/lib/rules/async-currenttarget.js index d07605ef22..d96c43ba89 100644 --- a/node_modules/eslint-plugin-github/lib/rules/async-currenttarget.js +++ b/node_modules/eslint-plugin-github/lib/rules/async-currenttarget.js @@ -1,6 +1,10 @@ module.exports = { meta: { - docs: {}, + type: 'problem', + docs: { + description: 'disallow `event.currentTarget` calls inside of async functions', + url: require('../url')(module) + }, schema: [] }, @@ -15,7 +19,7 @@ module.exports = { if (node.property && node.property.name === 'currentTarget') { const scope = context.getScope() if (scope.block.async && scopeDidWait.has(scope)) { - context.report(node, 'event.currentTarget inside an async function is error prone') + context.report({node, message: 'event.currentTarget inside an async function is error prone'}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/async-preventdefault.js b/node_modules/eslint-plugin-github/lib/rules/async-preventdefault.js index ab996c4951..208d99a687 100644 --- a/node_modules/eslint-plugin-github/lib/rules/async-preventdefault.js +++ b/node_modules/eslint-plugin-github/lib/rules/async-preventdefault.js @@ -1,6 +1,10 @@ module.exports = { meta: { - docs: {}, + type: 'problem', + docs: { + description: 'disallow `event.preventDefault` calls inside of async functions', + url: require('../url')(module) + }, schema: [] }, @@ -15,7 +19,7 @@ module.exports = { if (node.callee.property && node.callee.property.name === 'preventDefault') { const scope = context.getScope() if (scope.block.async && scopeDidWait.has(scope)) { - context.report(node, 'event.preventDefault() inside an async function is error prone') + context.report({node, message: 'event.preventDefault() inside an async function is error prone'}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/authenticity-token.js b/node_modules/eslint-plugin-github/lib/rules/authenticity-token.js index bccc678d1d..cccd881a63 100644 --- a/node_modules/eslint-plugin-github/lib/rules/authenticity-token.js +++ b/node_modules/eslint-plugin-github/lib/rules/authenticity-token.js @@ -1,16 +1,21 @@ module.exports = { meta: { - docs: {}, + type: 'problem', + docs: { + description: 'disallow usage of CSRF tokens in JavaScript', + url: require('../url')(module) + }, schema: [] }, create(context) { function checkAuthenticityTokenUsage(node, str) { if (str.includes('authenticity_token')) { - context.report( + context.report({ node, - 'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.' - ) + message: + 'Form CSRF tokens (authenticity tokens) should not be created in JavaScript and their values should not be used directly for XHR requests.' + }) } } diff --git a/node_modules/eslint-plugin-github/lib/rules/get-attribute.js b/node_modules/eslint-plugin-github/lib/rules/get-attribute.js index 27eb873b40..0dd553d8c6 100644 --- a/node_modules/eslint-plugin-github/lib/rules/get-attribute.js +++ b/node_modules/eslint-plugin-github/lib/rules/get-attribute.js @@ -17,28 +17,36 @@ function isValidAttribute(name) { return validSVGAttributeSet.has(name) || (validAttributeName.test(name) && !invalidSVGAttributeSet.has(name)) } -module.exports = function(context) { - return { - CallExpression(node) { - if (!node.callee.property) return - - const calleeName = node.callee.property.name - if (!attributeCalls.test(calleeName)) return - - const attributeNameNode = node.arguments[0] - if (!attributeNameNode) return - - if (!isValidAttribute(attributeNameNode.value)) { - context.report({ - meta: { - fixable: 'code' - }, - node: attributeNameNode, - message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.', - fix(fixer) { - return fixer.replaceText(attributeNameNode, `'${attributeNameNode.value.toLowerCase()}'`) - } - }) +module.exports = { + meta: { + type: 'problem', + docs: { + description: 'disallow wrong usage of attribute names', + url: require('../url')(module) + }, + fixable: 'code', + schema: [] + }, + create(context) { + return { + CallExpression(node) { + if (!node.callee.property) return + + const calleeName = node.callee.property.name + if (!attributeCalls.test(calleeName)) return + + const attributeNameNode = node.arguments[0] + if (!attributeNameNode) return + + if (!isValidAttribute(attributeNameNode.value)) { + context.report({ + node: attributeNameNode, + message: 'Attributes should be lowercase and hyphen separated, or part of the SVG whitelist.', + fix(fixer) { + return fixer.replaceText(attributeNameNode, `'${attributeNameNode.value.toLowerCase()}'`) + } + }) + } } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/js-class-name.js b/node_modules/eslint-plugin-github/lib/rules/js-class-name.js index e2f2a6c5fe..f4fe858008 100644 --- a/node_modules/eslint-plugin-github/lib/rules/js-class-name.js +++ b/node_modules/eslint-plugin-github/lib/rules/js-class-name.js @@ -1,6 +1,10 @@ module.exports = { meta: { - docs: {}, + type: 'suggestion', + docs: { + description: 'enforce a naming convention for js- prefixed classes', + url: require('../url')(module) + }, schema: [] }, @@ -13,14 +17,14 @@ module.exports = { const matches = str.match(allJsClassNameRegexp) || [] for (const match of matches) { if (!match.match(validJsClassNameRegexp)) { - context.report(node, 'js- class names should be lowercase and only contain dashes.') + context.report({node, message: 'js- class names should be lowercase and only contain dashes.'}) } } } function checkStringEndsWithJSClassName(node, str) { if (str.match(endWithJsClassNameRegexp)) { - context.report(node, 'js- class names should be statically defined.') + context.report({node, message: 'js- class names should be statically defined.'}) } } diff --git a/node_modules/eslint-plugin-github/lib/rules/no-blur.js b/node_modules/eslint-plugin-github/lib/rules/no-blur.js index 59b2164238..1d979d4ceb 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-blur.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-blur.js @@ -1,11 +1,19 @@ -module.exports = function(context) { - return { - CallExpression(node) { - if (node.callee.property && node.callee.property.name === 'blur') { - context.report(node, 'Do not use element.blur(), instead restore the focus of a previous element.') +module.exports = { + meta: { + type: 'problem', + docs: { + description: 'disallow usage of `Element.prototype.blur()`', + url: require('../url')(module) + }, + schema: [] + }, + create(context) { + return { + CallExpression(node) { + if (node.callee.property && node.callee.property.name === 'blur') { + context.report({node, message: 'Do not use element.blur(), instead restore the focus of a previous element.'}) + } } } } } - -module.exports.schema = [] diff --git a/node_modules/eslint-plugin-github/lib/rules/no-d-none.js b/node_modules/eslint-plugin-github/lib/rules/no-d-none.js index a742fa1890..7513f2e199 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-d-none.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-d-none.js @@ -1,4 +1,12 @@ module.exports = { + meta: { + type: 'problem', + docs: { + description: 'disallow usage the `d-none` CSS class', + url: require('../url')(module) + }, + schema: [] + }, create(context) { return { CallExpression(node) { diff --git a/node_modules/eslint-plugin-github/lib/rules/no-dataset.js b/node_modules/eslint-plugin-github/lib/rules/no-dataset.js index d43aad81f5..e3c0ab4bbb 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-dataset.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-dataset.js @@ -1,6 +1,10 @@ module.exports = { meta: { - docs: {}, + type: 'problem', + docs: { + description: 'enforce usage of `Element.prototype.getAttribute` instead of `Element.prototype.datalist`', + url: require('../url')(module) + }, schema: [] }, @@ -8,7 +12,7 @@ module.exports = { return { MemberExpression(node) { if (node.property && node.property.name === 'dataset') { - context.report(node, "Use getAttribute('data-your-attribute') instead of dataset.") + context.report({node, message: "Use getAttribute('data-your-attribute') instead of dataset."}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js b/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js index 663488122f..4a3af06952 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-implicit-buggy-globals.js @@ -1,6 +1,10 @@ module.exports = { meta: { - docs: {}, + type: 'problem', + docs: { + description: 'disallow implicit global variables', + url: require('../url')(module) + }, schema: [] }, @@ -21,7 +25,7 @@ module.exports = { (def.type === 'Variable' && def.parent.kind === 'const') || (def.type === 'Variable' && def.parent.kind === 'let') ) { - context.report(def.node, 'Implicit global variable, assign as global property instead.') + context.report({node: def.node, message: 'Implicit global variable, assign as global property instead.'}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/no-innerText.js b/node_modules/eslint-plugin-github/lib/rules/no-innerText.js index c6bf056bba..b1396d77fc 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-innerText.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-innerText.js @@ -1,7 +1,12 @@ module.exports = { meta: { - docs: {}, - fixable: 'code' + type: 'problem', + docs: { + description: 'disallow `Element.prototype.innerText` in favor of `Element.prototype.textContent`', + url: require('../url')(module) + }, + fixable: 'code', + schema: [] }, create(context) { diff --git a/node_modules/eslint-plugin-github/lib/rules/no-then.js b/node_modules/eslint-plugin-github/lib/rules/no-then.js index 0f152b8cb9..76656245eb 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-then.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-then.js @@ -1,15 +1,20 @@ module.exports = { meta: { - docs: {} + type: 'suggestion', + docs: { + description: 'enforce using `async/await` syntax over Promises', + url: require('../url')(module) + }, + schema: [] }, create(context) { return { MemberExpression(node) { if (node.property && node.property.name === 'then') { - context.report(node.property, 'Prefer async/await to Promise.then()') + context.report({node: node.property, message: 'Prefer async/await to Promise.then()'}) } else if (node.property && node.property.name === 'catch') { - context.report(node.property, 'Prefer async/await to Promise.catch()') + context.report({node: node.property, message: 'Prefer async/await to Promise.catch()'}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js b/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js index f9eef57d55..d53b20472f 100644 --- a/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js +++ b/node_modules/eslint-plugin-github/lib/rules/no-useless-passive.js @@ -4,13 +4,18 @@ const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && pro module.exports = { meta: { - docs: {}, - fixable: 'code' + type: 'suggestion', + docs: { + description: 'disallow marking a event handler as passive when it has no effect', + url: require('../url')(module) + }, + fixable: 'code', + schema: [] }, create(context) { return { - ['CallExpression[callee.property.name="addEventListener"]']: function(node) { + ['CallExpression[callee.property.name="addEventListener"]']: function (node) { const [name, listener, options] = node.arguments if (name.type !== 'Literal') return if (passiveEventListenerNames.has(name.value)) return diff --git a/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js b/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js index 0e9824a61a..961c75f72e 100644 --- a/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js +++ b/node_modules/eslint-plugin-github/lib/rules/prefer-observers.js @@ -4,13 +4,17 @@ const observerMap = { } module.exports = { meta: { - docs: {}, - fixable: 'code' + type: 'suggestion', + docs: { + description: 'disallow poorly performing event listeners', + url: require('../url')(module) + }, + schema: [] }, create(context) { return { - ['CallExpression[callee.property.name="addEventListener"]']: function(node) { + ['CallExpression[callee.property.name="addEventListener"]']: function (node) { const [name] = node.arguments if (name.type !== 'Literal') return if (!(name.value in observerMap)) return diff --git a/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js b/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js index 72b8a68269..bce8787b88 100644 --- a/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js +++ b/node_modules/eslint-plugin-github/lib/rules/require-passive-events.js @@ -4,18 +4,23 @@ const propIsPassiveTrue = prop => prop.key && prop.key.name === 'passive' && pro module.exports = { meta: { - docs: {} + type: 'suggestion', + docs: { + description: 'enforce marking high frequency event handlers as passive', + url: require('../url')(module) + }, + schema: [] }, create(context) { return { - ['CallExpression[callee.property.name="addEventListener"]']: function(node) { + ['CallExpression[callee.property.name="addEventListener"]']: function (node) { const [name, listener, options] = node.arguments if (!listener) return if (name.type !== 'Literal') return if (!passiveEventListenerNames.has(name.value)) return if (options && options.type === 'ObjectExpression' && options.properties.some(propIsPassiveTrue)) return - context.report(node, `High Frequency Events like "${name.value}" should be \`passive: true\``) + context.report({node, message: `High Frequency Events like "${name.value}" should be \`passive: true\``}) } } } diff --git a/node_modules/eslint-plugin-github/lib/rules/unescaped-html-literal.js b/node_modules/eslint-plugin-github/lib/rules/unescaped-html-literal.js index fc4f6f40c3..51f593721b 100644 --- a/node_modules/eslint-plugin-github/lib/rules/unescaped-html-literal.js +++ b/node_modules/eslint-plugin-github/lib/rules/unescaped-html-literal.js @@ -1,24 +1,35 @@ -module.exports = function(context) { - const htmlOpenTag = /^<[a-zA-Z]/ - const message = 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.' +module.exports = { + meta: { + type: 'problem', + docs: { + description: 'disallow unesaped HTML literals', + url: require('../url')(module) + }, + schema: [] + }, - return { - Literal(node) { - if (!htmlOpenTag.test(node.value)) return + create(context) { + const htmlOpenTag = /^<[a-zA-Z]/ + const message = 'Unescaped HTML literal. Use html`` tag template literal for secure escaping.' - context.report({ - node, - message - }) - }, - TemplateLiteral(node) { - if (!htmlOpenTag.test(node.quasis[0].value.raw)) return + return { + Literal(node) { + if (!htmlOpenTag.test(node.value)) return - if (!node.parent.tag || node.parent.tag.name !== 'html') { context.report({ node, message }) + }, + TemplateLiteral(node) { + if (!htmlOpenTag.test(node.quasis[0].value.raw)) return + + if (!node.parent.tag || node.parent.tag.name !== 'html') { + context.report({ + node, + message + }) + } } } } diff --git a/node_modules/eslint-plugin-github/lib/url.js b/node_modules/eslint-plugin-github/lib/url.js new file mode 100644 index 0000000000..2af0e08cd3 --- /dev/null +++ b/node_modules/eslint-plugin-github/lib/url.js @@ -0,0 +1,10 @@ +const {homepage, version} = require('../package.json') +const path = require('path') +// eslint-disable-next-line eslint-plugin/prefer-object-rule +module.exports = ({id}) => { + const url = new URL(homepage) + const rule = path.basename(id, '.js') + url.hash = '' + url.pathname += `/blob/v${version}/docs/rules/${rule}.md` + return url.toString() +} diff --git a/node_modules/eslint-plugin-github/package.json b/node_modules/eslint-plugin-github/package.json index d30222cfb2..e18bd5f31d 100644 --- a/node_modules/eslint-plugin-github/package.json +++ b/node_modules/eslint-plugin-github/package.json @@ -1,6 +1,6 @@ { "name": "eslint-plugin-github", - "version": "4.1.1", + "version": "4.1.5", "description": "An opinionated collection of ESLint shared configs and rules used by GitHub.", "main": "lib/index.js", "entries": [ @@ -11,7 +11,7 @@ }, "scripts": { "pretest": "mkdir -p node_modules/ && ln -fs $(pwd) node_modules/", - "eslint-check": "eslint --print-config .eslintrc.js | eslint-config-prettier-check", + "eslint-check": "eslint-config-prettier .eslintrc.js", "test": "npm run eslint-check && eslint . && mocha tests/" }, "repository": { @@ -25,19 +25,19 @@ }, "homepage": "https://github.com/github/eslint-plugin-github#readme", "dependencies": { - "@typescript-eslint/eslint-plugin": ">=2.25.0", - "@typescript-eslint/parser": ">=2.25.0", - "eslint-config-prettier": ">=6.10.1", - "eslint-plugin-eslint-comments": ">=3.0.1", - "eslint-plugin-import": ">=2.20.1", - "eslint-plugin-prettier": ">=3.1.2", + "@typescript-eslint/eslint-plugin": "^4.20.0", + "@typescript-eslint/parser": "^4.20.0", + "eslint-config-prettier": ">=8.0.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-prettier": "^3.3.1", "eslint-rule-documentation": ">=1.0.0", - "prettier": ">=1.12.0", - "svg-element-attributes": ">=1.3.1" + "prettier": "^2.2.1", + "svg-element-attributes": "^1.3.1" }, "prettier": "@github/prettier-config", "peerDependencies": { - "eslint": ">=4.19.0" + "eslint": "^7.23.0" }, "files": [ "bin/*", @@ -45,7 +45,10 @@ ], "devDependencies": { "@github/prettier-config": "0.0.4", - "eslint": ">=7.0.0", - "mocha": ">=7.1.1" + "eslint": "7.23.0", + "eslint-plugin-eslint-plugin": "^2.3.0", + "eslint-visitor-keys": "^2.0.0", + "globals": "^13.7.0", + "mocha": "^8.3.2" } } \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/CHANGELOG.md b/node_modules/eslint-plugin-import/CHANGELOG.md index c0aaae190d..95416f1af7 100644 --- a/node_modules/eslint-plugin-import/CHANGELOG.md +++ b/node_modules/eslint-plugin-import/CHANGELOG.md @@ -6,6 +6,81 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel ## [Unreleased] +## [2.23.4] - 2021-05-29 + +### Fixed +- [`no-import-module-exports`]: Don't crash if packages have no entrypoint ([#2099], thanks [@eps1lon]) +- [`no-extraneous-dependencies`]: fix package name algorithm ([#2097], thanks [@paztis]) + +## [2.23.3] - 2021-05-21 + +### Fixed +- [`no-restricted-paths`]: fix false positive matches ([#2090], thanks [@malykhinvi]) +- [`no-cycle`]: ignore imports where imported file only imports types of importing file ([#2083], thanks [@cherryblossom000]) +- [`no-cycle`]: fix false negative when file imports a type after importing a value in Flow ([#2083], thanks [@cherryblossom000]) +- [`order`]: restore default behavior unless `type` is in groups ([#2087], thanks [@grit96]) + +### Changed +- [Docs] Add `no-relative-packages` to list of to the list of rules ([#2075], thanks [@arvigeus]) + +## [2.23.2] - 2021-05-15 + +### Changed +- [meta] add `safe-publish-latest`; use `prepublishOnly` script for npm 7+ + +## [2.23.1] - 2021-05-14 + +### Fixed +- [`newline-after-import`]: fix crash with `export {}` syntax ([#2063], [#2056], thanks [@ljharb]) +- `ExportMap`: do not crash when tsconfig lacks `.compilerOptions` ([#2067], thanks [@ljharb]) +- [`order`]: fix alphabetical sorting ([#2071], thanks [@grit96]) + +## [2.23.0] - 2021-05-13 + +### Added +- [`no-commonjs`]: Also detect require calls with expressionless template literals: ``` require(`x`) ``` ([#1958], thanks [@FloEdelmann]) +- [`no-internal-modules`]: Add `forbid` option ([#1846], thanks [@guillaumewuip]) +- add [`no-relative-packages`] ([#1860], [#966], thanks [@tapayne88] [@panrafal]) +- add [`no-import-module-exports`] rule: report import declarations with CommonJS exports ([#804], thanks [@kentcdodds] and [@ttmarek]) +- [`no-unused-modules`]: Support destructuring assignment for `export`. ([#1997], thanks [@s-h-a-d-o-w]) +- [`order`]: support type imports ([#2021], thanks [@grit96]) +- [`order`]: Add `warnOnUnassignedImports` option to enable warnings for out of order unassigned imports ([#1990], thanks [@hayes]) + +### Fixed +- [`export`]/TypeScript: properly detect export specifiers as children of a TS module block ([#1889], thanks [@andreubotella]) +- [`order`]: ignore non-module-level requires ([#1940], thanks [@golopot]) +- [`no-webpack-loader-syntax`]/TypeScript: avoid crash on missing name ([#1947], thanks [@leonardodino]) +- [`no-extraneous-dependencies`]: Add package.json cache ([#1948], thanks [@fa93hws]) +- [`prefer-default-export`]: handle empty array destructuring ([#1965], thanks [@ljharb]) +- [`no-unused-modules`]: make type imports mark a module as used (fixes #1924) ([#1974], thanks [@cherryblossom000]) +- [`no-cycle`]: fix perf regression ([#1944], thanks [@Blasz]) +- [`first`]: fix handling of `import = require` ([#1963], thanks [@MatthiasKunnen]) +- [`no-cycle`]/[`extensions`]: fix isExternalModule usage ([#1696], thanks [@paztis]) +- [`extensions`]/[`no-cycle`]/[`no-extraneous-dependencies`]: Correct module real path resolution ([#1696], thanks [@paztis]) +- [`no-named-default`]: ignore Flow import type and typeof ([#1983], thanks [@christianvuerings]) +- [`no-extraneous-dependencies`]: Exclude flow `typeof` imports ([#1534], thanks [@devongovett]) +- [`newline-after-import`]: respect decorator annotations ([#1985], thanks [@lilling]) +- [`no-restricted-paths`]: enhance performance for zones with `except` paths ([#2022], thanks [@malykhinvi]) +- [`no-unresolved`]: check import() ([#2026], thanks [@aladdin-add]) + +### Changed +- [Generic Import Callback] Make callback for all imports once in rules ([#1237], thanks [@ljqx]) +- [Docs] [`no-named-as-default`]: add semicolon ([#1897], thanks [@bicstone]) +- [Docs] `no-extraneous-dependencies`: correct peerDependencies option default to `true` ([#1993], thanks [@dwardu]) +- [Docs] `order`: Document options required to match ordering example ([#1992], thanks [@silviogutierrez]) +- [Tests] `no-unresolved`: add tests for `import()` ([#2012], thanks [@davidbonnet]) +- [Docs] Add import/recommended ruleset to README ([#2034], thanks [@edemaine]) + +## [2.22.1] - 2020-09-27 +### Fixed +- [`default`]/TypeScript: avoid crash on `export =` with a MemberExpression ([#1841], thanks [@ljharb]) +- [`extensions`]/importType: Fix @/abc being treated as scoped module ([#1854], thanks [@3nuc]) +- allow using rest operator in named export ([#1878], thanks [@foray1010]) +- [`dynamic-import-chunkname`]: allow single quotes to match Webpack support ([#1848], thanks [@straub]) + +### Changed +- [`export`]: add tests for a name collision with `export * from` ([#1704], thanks @tomprats) + ## [2.22.0] - 2020-06-26 ### Added - [`no-unused-modules`]: consider exported TypeScript interfaces, types and enums ([#1819], thanks [@nicolashenry]) @@ -50,7 +125,7 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel - [`no-unused-modules`]: Fix re-export not counting as usage when used in combination with import ([#1722], thanks [@Ephem]) - [`no-duplicates`]: Handle TS import type ([#1676], thanks [@kmui2]) - [`newline-after-import`]: recognize decorators ([#1139], thanks [@atos1990]) -- [`no-unused-modules`]: Revert "[flow] `no-unused-modules`: add flow type support" ([#1770], thanks [@Hypnosphi]) +- [`no-unused-modules`]: Revert "[flow] [`no-unused-modules`]: add flow type support" ([#1770], thanks [@Hypnosphi]) - TypeScript: Add nested namespace handling ([#1763], thanks [@julien1619]) - [`namespace`]/`ExportMap`: Fix interface declarations for TypeScript ([#1764], thanks [@julien1619]) - [`no-unused-modules`]: avoid order-dependence ([#1744], thanks [@darkartur]) @@ -60,7 +135,7 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel ### Changed - [Refactor] `no-extraneous-dependencies`: use moduleVisitor ([#1735], thanks [@adamborowski]) - TypeScript config: Disable [`named`][] ([#1726], thanks [@astorije]) -- [readme] Remove duplicate no-unused-modules from docs ([#1690], thanks [@arvigeus]) +- [readme] Remove duplicate [`no-unused-modules`] from docs ([#1690], thanks [@arvigeus]) - [Docs] `order`: fix bad inline config ([#1788], thanks [@nickofthyme]) - [Tests] Add fix for Windows Subsystem for Linux ([#1786], thanks [@manuth]) - [Docs] `no-unused-rules`: Fix docs for unused exports ([#1776], thanks [@barbogast]) @@ -85,7 +160,7 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel - [`no-duplicates`]: allow duplicate imports if one is a namespace and the other not ([#1612], thanks [@sveyret]) - Add some missing rule meta schemas and types ([#1620], thanks [@bmish]) - [`named`]: for importing from a module which re-exports named exports from a `node_modules` module ([#1569], [#1447], thanks [@redbugz], [@kentcdodds]) -- [`order`]: Fix alphabetize for mixed requires and imports ([#5625], thanks [@wschurman]) +- [`order`]: Fix alphabetize for mixed requires and imports ([#1626], thanks [@wschurman]) ### Changed - [`import/external-module-folders` setting] behavior is more strict now: it will only match complete path segments ([#1605], thanks [@skozin]) @@ -208,7 +283,7 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel - aliased internal modules that look like core modules ([#1297], thanks [@echenley]) - [`namespace`]: add check for null ExportMap ([#1235], [#1144], thanks [@ljqx]) - [ExportMap] fix condition for checking if block comment ([#1234], [#1233], thanks [@ljqx]) -- Fix overwriting of dynamic import() CallExpression ([`no-cycle`], [`no-relative-parent-import`], [`no-unresolved`], [`no-useless-path-segments`]) ([#1218], [#1166], [#1035], thanks [@vikr01]) +- Fix overwriting of dynamic import() CallExpression ([`no-cycle`], [`no-relative-parent-imports`], [`no-unresolved`], [`no-useless-path-segments`]) ([#1218], [#1166], [#1035], thanks [@vikr01]) - [`export`]: false positives for TypeScript type + value export ([#1319], thanks [@bradzacher]) - [`export`]: Support TypeScript namespaces ([#1320], [#1300], thanks [@bradzacher]) @@ -701,6 +776,7 @@ for info on changes for earlier releases. [`no-duplicates`]: ./docs/rules/no-duplicates.md [`no-dynamic-require`]: ./docs/rules/no-dynamic-require.md [`no-extraneous-dependencies`]: ./docs/rules/no-extraneous-dependencies.md +[`no-import-module-exports`]: ./docs/rules/no-import-module-exports.md [`no-internal-modules`]: ./docs/rules/no-internal-modules.md [`no-mutable-exports`]: ./docs/rules/no-mutable-exports.md [`no-named-as-default-member`]: ./docs/rules/no-named-as-default-member.md @@ -709,6 +785,8 @@ for info on changes for earlier releases. [`no-named-export`]: ./docs/rules/no-named-export.md [`no-namespace`]: ./docs/rules/no-namespace.md [`no-nodejs-modules`]: ./docs/rules/no-nodejs-modules.md +[`no-relative-packages`]: ./docs/rules/no-relative-packages.md +[`no-relative-parent-imports`]: ./docs/rules/no-relative-parent-imports.md [`no-restricted-paths`]: ./docs/rules/no-restricted-paths.md [`no-self-import`]: ./docs/rules/no-self-import.md [`no-unassigned-import`]: ./docs/rules/no-unassigned-import.md @@ -722,9 +800,37 @@ for info on changes for earlier releases. [`memo-parser`]: ./memo-parser/README.md +[#2099]: https://github.com/benmosher/eslint-plugin-import/pull/2099 +[#2097]: https://github.com/benmosher/eslint-plugin-import/pull/2097 +[#2090]: https://github.com/benmosher/eslint-plugin-import/pull/2090 +[#2087]: https://github.com/benmosher/eslint-plugin-import/pull/2087 +[#2083]: https://github.com/benmosher/eslint-plugin-import/pull/2083 +[#2075]: https://github.com/benmosher/eslint-plugin-import/pull/2075 +[#2071]: https://github.com/benmosher/eslint-plugin-import/pull/2071 +[#2034]: https://github.com/benmosher/eslint-plugin-import/pull/2034 +[#2026]: https://github.com/benmosher/eslint-plugin-import/pull/2026 +[#2022]: https://github.com/benmosher/eslint-plugin-import/pull/2022 +[#2021]: https://github.com/benmosher/eslint-plugin-import/pull/2021 +[#2012]: https://github.com/benmosher/eslint-plugin-import/pull/2012 +[#1997]: https://github.com/benmosher/eslint-plugin-import/pull/1997 +[#1993]: https://github.com/benmosher/eslint-plugin-import/pull/1993 +[#1990]: https://github.com/benmosher/eslint-plugin-import/pull/1990 +[#1985]: https://github.com/benmosher/eslint-plugin-import/pull/1985 +[#1983]: https://github.com/benmosher/eslint-plugin-import/pull/1983 +[#1974]: https://github.com/benmosher/eslint-plugin-import/pull/1974 +[#1958]: https://github.com/benmosher/eslint-plugin-import/pull/1958 +[#1948]: https://github.com/benmosher/eslint-plugin-import/pull/1948 +[#1947]: https://github.com/benmosher/eslint-plugin-import/pull/1947 +[#1944]: https://github.com/benmosher/eslint-plugin-import/pull/1944 +[#1940]: https://github.com/benmosher/eslint-plugin-import/pull/1940 +[#1897]: https://github.com/benmosher/eslint-plugin-import/pull/1897 +[#1889]: https://github.com/benmosher/eslint-plugin-import/pull/1889 +[#1878]: https://github.com/benmosher/eslint-plugin-import/pull/1878 +[#1860]: https://github.com/benmosher/eslint-plugin-import/pull/1860 +[#1848]: https://github.com/benmosher/eslint-plugin-import/pull/1848 +[#1846]: https://github.com/benmosher/eslint-plugin-import/pull/1846 [#1836]: https://github.com/benmosher/eslint-plugin-import/pull/1836 [#1835]: https://github.com/benmosher/eslint-plugin-import/pull/1835 -[#1834]: https://github.com/benmosher/eslint-plugin-import/issues/1834 [#1833]: https://github.com/benmosher/eslint-plugin-import/pull/1833 [#1831]: https://github.com/benmosher/eslint-plugin-import/pull/1831 [#1830]: https://github.com/benmosher/eslint-plugin-import/pull/1830 @@ -734,7 +840,6 @@ for info on changes for earlier releases. [#1820]: https://github.com/benmosher/eslint-plugin-import/pull/1820 [#1819]: https://github.com/benmosher/eslint-plugin-import/pull/1819 [#1802]: https://github.com/benmosher/eslint-plugin-import/pull/1802 -[#1801]: https://github.com/benmosher/eslint-plugin-import/issues/1801 [#1788]: https://github.com/benmosher/eslint-plugin-import/pull/1788 [#1786]: https://github.com/benmosher/eslint-plugin-import/pull/1786 [#1785]: https://github.com/benmosher/eslint-plugin-import/pull/1785 @@ -748,9 +853,8 @@ for info on changes for earlier releases. [#1735]: https://github.com/benmosher/eslint-plugin-import/pull/1735 [#1726]: https://github.com/benmosher/eslint-plugin-import/pull/1726 [#1724]: https://github.com/benmosher/eslint-plugin-import/pull/1724 -[#1722]: https://github.com/benmosher/eslint-plugin-import/issues/1722 [#1719]: https://github.com/benmosher/eslint-plugin-import/pull/1719 -[#1702]: https://github.com/benmosher/eslint-plugin-import/issues/1702 +[#1696]: https://github.com/benmosher/eslint-plugin-import/pull/1696 [#1691]: https://github.com/benmosher/eslint-plugin-import/pull/1691 [#1690]: https://github.com/benmosher/eslint-plugin-import/pull/1690 [#1689]: https://github.com/benmosher/eslint-plugin-import/pull/1689 @@ -760,17 +864,12 @@ for info on changes for earlier releases. [#1664]: https://github.com/benmosher/eslint-plugin-import/pull/1664 [#1658]: https://github.com/benmosher/eslint-plugin-import/pull/1658 [#1651]: https://github.com/benmosher/eslint-plugin-import/pull/1651 -[#1635]: https://github.com/benmosher/eslint-plugin-import/issues/1635 -[#1631]: https://github.com/benmosher/eslint-plugin-import/issues/1631 -[#1625]: https://github.com/benmosher/eslint-plugin-import/pull/1625 +[#1626]: https://github.com/benmosher/eslint-plugin-import/pull/1626 [#1620]: https://github.com/benmosher/eslint-plugin-import/pull/1620 [#1619]: https://github.com/benmosher/eslint-plugin-import/pull/1619 -[#1616]: https://github.com/benmosher/eslint-plugin-import/issues/1616 -[#1613]: https://github.com/benmosher/eslint-plugin-import/issues/1613 [#1612]: https://github.com/benmosher/eslint-plugin-import/pull/1612 [#1611]: https://github.com/benmosher/eslint-plugin-import/pull/1611 [#1605]: https://github.com/benmosher/eslint-plugin-import/pull/1605 -[#1589]: https://github.com/benmosher/eslint-plugin-import/issues/1589 [#1586]: https://github.com/benmosher/eslint-plugin-import/pull/1586 [#1572]: https://github.com/benmosher/eslint-plugin-import/pull/1572 [#1569]: https://github.com/benmosher/eslint-plugin-import/pull/1569 @@ -778,6 +877,7 @@ for info on changes for earlier releases. [#1560]: https://github.com/benmosher/eslint-plugin-import/pull/1560 [#1551]: https://github.com/benmosher/eslint-plugin-import/pull/1551 [#1542]: https://github.com/benmosher/eslint-plugin-import/pull/1542 +[#1534]: https://github.com/benmosher/eslint-plugin-import/pull/1534 [#1528]: https://github.com/benmosher/eslint-plugin-import/pull/1528 [#1526]: https://github.com/benmosher/eslint-plugin-import/pull/1526 [#1521]: https://github.com/benmosher/eslint-plugin-import/pull/1521 @@ -788,6 +888,7 @@ for info on changes for earlier releases. [#1495]: https://github.com/benmosher/eslint-plugin-import/pull/1495 [#1494]: https://github.com/benmosher/eslint-plugin-import/pull/1494 [#1493]: https://github.com/benmosher/eslint-plugin-import/pull/1493 +[#1491]: https://github.com/benmosher/eslint-plugin-import/pull/1491 [#1472]: https://github.com/benmosher/eslint-plugin-import/pull/1472 [#1470]: https://github.com/benmosher/eslint-plugin-import/pull/1470 [#1447]: https://github.com/benmosher/eslint-plugin-import/pull/1447 @@ -835,6 +936,7 @@ for info on changes for earlier releases. [#1253]: https://github.com/benmosher/eslint-plugin-import/pull/1253 [#1248]: https://github.com/benmosher/eslint-plugin-import/pull/1248 [#1238]: https://github.com/benmosher/eslint-plugin-import/pull/1238 +[#1237]: https://github.com/benmosher/eslint-plugin-import/pull/1237 [#1235]: https://github.com/benmosher/eslint-plugin-import/pull/1235 [#1234]: https://github.com/benmosher/eslint-plugin-import/pull/1234 [#1232]: https://github.com/benmosher/eslint-plugin-import/pull/1232 @@ -859,6 +961,7 @@ for info on changes for earlier releases. [#1068]: https://github.com/benmosher/eslint-plugin-import/pull/1068 [#1049]: https://github.com/benmosher/eslint-plugin-import/pull/1049 [#1046]: https://github.com/benmosher/eslint-plugin-import/pull/1046 +[#966]: https://github.com/benmosher/eslint-plugin-import/pull/966 [#944]: https://github.com/benmosher/eslint-plugin-import/pull/944 [#912]: https://github.com/benmosher/eslint-plugin-import/pull/912 [#908]: https://github.com/benmosher/eslint-plugin-import/pull/908 @@ -868,6 +971,7 @@ for info on changes for earlier releases. [#871]: https://github.com/benmosher/eslint-plugin-import/pull/871 [#858]: https://github.com/benmosher/eslint-plugin-import/pull/858 [#843]: https://github.com/benmosher/eslint-plugin-import/pull/843 +[#804]: https://github.com/benmosher/eslint-plugin-import/pull/804 [#797]: https://github.com/benmosher/eslint-plugin-import/pull/797 [#794]: https://github.com/benmosher/eslint-plugin-import/pull/794 [#744]: https://github.com/benmosher/eslint-plugin-import/pull/744 @@ -935,10 +1039,27 @@ for info on changes for earlier releases. [#211]: https://github.com/benmosher/eslint-plugin-import/pull/211 [#164]: https://github.com/benmosher/eslint-plugin-import/pull/164 [#157]: https://github.com/benmosher/eslint-plugin-import/pull/157 +[#2067]: https://github.com/benmosher/eslint-plugin-import/issues/2067 +[#2056]: https://github.com/benmosher/eslint-plugin-import/issues/2056 +[#2063]: https://github.com/benmosher/eslint-plugin-import/issues/2063 +[#1965]: https://github.com/benmosher/eslint-plugin-import/issues/1965 +[#1924]: https://github.com/benmosher/eslint-plugin-import/issues/1924 +[#1854]: https://github.com/benmosher/eslint-plugin-import/issues/1854 +[#1841]: https://github.com/benmosher/eslint-plugin-import/issues/1841 +[#1834]: https://github.com/benmosher/eslint-plugin-import/issues/1834 [#1814]: https://github.com/benmosher/eslint-plugin-import/issues/1814 [#1811]: https://github.com/benmosher/eslint-plugin-import/issues/1811 [#1808]: https://github.com/benmosher/eslint-plugin-import/issues/1808 [#1805]: https://github.com/benmosher/eslint-plugin-import/issues/1805 +[#1801]: https://github.com/benmosher/eslint-plugin-import/issues/1801 +[#1722]: https://github.com/benmosher/eslint-plugin-import/issues/1722 +[#1704]: https://github.com/benmosher/eslint-plugin-import/issues/1704 +[#1702]: https://github.com/benmosher/eslint-plugin-import/issues/1702 +[#1635]: https://github.com/benmosher/eslint-plugin-import/issues/1635 +[#1631]: https://github.com/benmosher/eslint-plugin-import/issues/1631 +[#1616]: https://github.com/benmosher/eslint-plugin-import/issues/1616 +[#1613]: https://github.com/benmosher/eslint-plugin-import/issues/1613 +[#1589]: https://github.com/benmosher/eslint-plugin-import/issues/1589 [#1565]: https://github.com/benmosher/eslint-plugin-import/issues/1565 [#1366]: https://github.com/benmosher/eslint-plugin-import/issues/1366 [#1334]: https://github.com/benmosher/eslint-plugin-import/issues/1334 @@ -1024,7 +1145,13 @@ for info on changes for earlier releases. [#119]: https://github.com/benmosher/eslint-plugin-import/issues/119 [#89]: https://github.com/benmosher/eslint-plugin-import/issues/89 -[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.22.0...HEAD +[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.23.4...HEAD +[2.23.4]: https://github.com/benmosher/eslint-plugin-import/compare/v2.23.3...v2.23.4 +[2.23.3]: https://github.com/benmosher/eslint-plugin-import/compare/v2.23.2...v2.23.3 +[2.23.2]: https://github.com/benmosher/eslint-plugin-import/compare/v2.23.1...v2.23.2 +[2.23.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.23.0...v2.23.1 +[2.23.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.22.1...v2.23.0 +[2.22.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.22.0...v2.22.1 [2.22.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.21.1...v2.22.0 [2.21.2]: https://github.com/benmosher/eslint-plugin-import/compare/v2.21.1...v2.21.2 [2.21.1]: https://github.com/benmosher/eslint-plugin-import/compare/v2.21.0...v2.21.1 @@ -1096,163 +1223,193 @@ for info on changes for earlier releases. [0.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.11.0...v0.12.0 [0.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v0.10.1...v0.11.0 -[@mathieudutour]: https://github.com/mathieudutour +[@1pete]: https://github.com/1pete +[@3nuc]: https://github.com/3nuc +[@aamulumi]: https://github.com/aamulumi +[@adamborowski]: https://github.com/adamborowski +[@adjerbetian]: https://github.com/adjerbetian +[@ai]: https://github.com/ai +[@aladdin-add]: https://github.com/aladdin-add +[@alex-page]: https://github.com/alex-page +[@alexgorbatchev]: https://github.com/alexgorbatchev +[@andreubotella]: https://github.com/andreubotella +[@AndrewLeedham]: https://github.com/AndrewLeedham +[@aravindet]: https://github.com/aravindet +[@arvigeus]: https://github.com/arvigeus +[@asapach]: https://github.com/asapach +[@astorije]: https://github.com/astorije +[@atikenny]: https://github.com/atikenny +[@atos1990]: https://github.com/atos1990 +[@barbogast]: https://github.com/barbogast +[@be5invis]: https://github.com/be5invis +[@beatrizrezener]: https://github.com/beatrizrezener +[@benmosher]: https://github.com/benmosher +[@benmunro]: https://github.com/benmunro +[@bicstone]: https://github.com/bicstone +[@Blasz]: https://github.com/Blasz +[@bmish]: https://github.com/bmish +[@borisyankov]: https://github.com/borisyankov +[@bradennapier]: https://github.com/bradennapier +[@bradzacher]: https://github.com/bradzacher +[@brendo]: https://github.com/brendo +[@brettz9]: https://github.com/brettz9 +[@charlessuh]: https://github.com/charlessuh +[@cherryblossom000]: https://github.com/cherryblossom000 +[@chrislloyd]: https://github.com/chrislloyd +[@christianvuerings]: https://github.com/christianvuerings +[@christophercurrie]: https://github.com/christophercurrie +[@danny-andrews]: https://github.com/dany-andrews +[@darkartur]: https://github.com/darkartur +[@davidbonnet]: https://github.com/davidbonnet +[@dbrewer5]: https://github.com/dbrewer5 +[@devongovett]: https://github.com/devongovett +[@dmnd]: https://github.com/dmnd +[@duncanbeevers]: https://github.com/duncanbeevers +[@dwardu]: https://github.com/dwardu +[@echenley]: https://github.com/echenley +[@edemaine]: https://github.com/edemaine +[@eelyafi]: https://github.com/eelyafi +[@Ephem]: https://github.com/Ephem +[@ephys]: https://github.com/ephys +[@eps1lon]: https://github.com/eps1lon +[@ernestostifano]: https://github.com/ernestostifano +[@fa93hws]: https://github.com/fa93hws +[@fengkfengk]: https://github.com/fengkfengk +[@fernandopasik]: https://github.com/fernandopasik +[@feychenie]: https://github.com/feychenie +[@fisker]: https://github.com/fisker +[@FloEdelmann]: https://github.com/FloEdelmann +[@fooloomanzoo]: https://github.com/fooloomanzoo +[@foray1010]: https://github.com/foray1010 +[@forivall]: https://github.com/forivall +[@fsmaia]: https://github.com/fsmaia +[@fson]: https://github.com/fson +[@futpib]: https://github.com/futpib +[@gajus]: https://github.com/gajus [@gausie]: https://github.com/gausie -[@singles]: https://github.com/singles +[@gavriguy]: https://github.com/gavriguy +[@giodamelio]: https://github.com/giodamelio +[@golopot]: https://github.com/golopot +[@graingert]: https://github.com/graingert +[@grit96]: https://github.com/grit96 +[@guillaumewuip]: https://github.com/guillaumewuip +[@hayes]: https://github.com/hayes +[@hulkish]: https://github.com/hulkish +[@Hypnosphi]: https://github.com/Hypnosphi +[@isiahmeadows]: https://github.com/isiahmeadows +[@IvanGoncharov]: https://github.com/IvanGoncharov +[@ivo-stefchev]: https://github.com/ivo-stefchev +[@jakubsta]: https://github.com/jakubsta +[@jeffshaver]: https://github.com/jeffshaver +[@jf248]: https://github.com/jf248 [@jfmengels]: https://github.com/jfmengels -[@lo1tuma]: https://github.com/lo1tuma -[@dmnd]: https://github.com/dmnd -[@lemonmade]: https://github.com/lemonmade [@jimbolla]: https://github.com/jimbolla -[@jquense]: https://github.com/jquense +[@jkimbo]: https://github.com/jkimbo +[@joaovieira]: https://github.com/joaovieira +[@johndevedu]: https://github.com/johndevedu [@jonboiser]: https://github.com/jonboiser -[@taion]: https://github.com/taion -[@strawbrary]: https://github.com/strawbrary -[@SimenB]: https://github.com/SimenB [@josh]: https://github.com/josh -[@borisyankov]: https://github.com/borisyankov -[@gavriguy]: https://github.com/gavriguy -[@jkimbo]: https://github.com/jkimbo -[@le0nik]: https://github.com/le0nik -[@scottnonnenberg]: https://github.com/scottnonnenberg -[@sindresorhus]: https://github.com/sindresorhus -[@ljharb]: https://github.com/ljharb -[@rhettlivingston]: https://github.com/rhettlivingston -[@zloirock]: https://github.com/zloirock -[@rhys-vdw]: https://github.com/rhys-vdw -[@wKich]: https://github.com/wKich -[@tizmagik]: https://github.com/tizmagik -[@knpwrs]: https://github.com/knpwrs -[@spalger]: https://github.com/spalger -[@preco21]: https://github.com/preco21 -[@skyrpex]: https://github.com/skyrpex -[@fson]: https://github.com/fson -[@ntdb]: https://github.com/ntdb -[@jakubsta]: https://github.com/jakubsta -[@wtgtybhertgeghgtwtg]: https://github.com/wtgtybhertgeghgtwtg -[@duncanbeevers]: https://github.com/duncanbeevers -[@giodamelio]: https://github.com/giodamelio -[@ntdb]: https://github.com/ntdb -[@ramasilveyra]: https://github.com/ramasilveyra -[@sompylasar]: https://github.com/sompylasar -[@kevin940726]: https://github.com/kevin940726 -[@eelyafi]: https://github.com/eelyafi -[@mastilver]: https://github.com/mastilver +[@JounQin]: https://github.com/JounQin +[@jquense]: https://github.com/jquense [@jseminck]: https://github.com/jseminck -[@laysent]: https://github.com/laysent +[@julien1619]: https://github.com/julien1619 +[@justinanastos]: https://github.com/justinanastos [@k15a]: https://github.com/k15a -[@mplewis]: https://github.com/mplewis -[@rosswarren]: https://github.com/rosswarren -[@alexgorbatchev]: https://github.com/alexgorbatchev -[@tihonove]: https://github.com/tihonove -[@robertrossmann]: https://github.com/robertrossmann -[@isiahmeadows]: https://github.com/isiahmeadows -[@graingert]: https://github.com/graingert -[@danny-andrews]: https://github.com/dany-andrews -[@fengkfengk]: https://github.com/fengkfengk -[@futpib]: https://github.com/futpib +[@kentcdodds]: https://github.com/kentcdodds +[@kevin940726]: https://github.com/kevin940726 +[@kgregory]: https://github.com/kgregory +[@kirill-konshin]: https://github.com/kirill-konshin +[@kiwka]: https://github.com/kiwka [@klimashkin]: https://github.com/klimashkin +[@kmui2]: https://github.com/kmui2 +[@knpwrs]: https://github.com/knpwrs +[@laysent]: https://github.com/laysent +[@le0nik]: https://github.com/le0nik +[@lemonmade]: https://github.com/lemonmade +[@lencioni]: https://github.com/lencioni +[@leonardodino]: https://github.com/leonardodino +[@Librazy]: https://github.com/Librazy +[@lilling]: https://github.com/lilling +[@ljharb]: https://github.com/ljharb +[@ljqx]: https://github.com/ljqx +[@lo1tuma]: https://github.com/lo1tuma +[@loganfsmyth]: https://github.com/loganfsmyth +[@luczsoma]: https://github.com/luczsoma [@lukeapage]: https://github.com/lukeapage +[@lydell]: https://github.com/lydell +[@Mairu]: https://github.com/Mairu +[@malykhinvi]: https://github.com/malykhinvi [@manovotny]: https://github.com/manovotny +[@manuth]: https://github.com/manuth +[@marcusdarmstrong]: https://github.com/marcusdarmstrong +[@mastilver]: https://github.com/mastilver +[@mathieudutour]: https://github.com/mathieudutour +[@MatthiasKunnen]: https://github.com/MatthiasKunnen [@mattijsbliek]: https://github.com/mattijsbliek -[@hulkish]: https://github.com/hulkish -[@chrislloyd]: https://github.com/chrislloyd -[@ai]: https://github.com/ai -[@syymza]: https://github.com/syymza -[@justinanastos]: https://github.com/justinanastos -[@1pete]: https://github.com/1pete -[@gajus]: https://github.com/gajus -[@jf248]: https://github.com/jf248 -[@aravindet]: https://github.com/aravindet -[@pzhine]: https://github.com/pzhine -[@st-sloth]: https://github.com/st-sloth -[@ljqx]: https://github.com/ljqx -[@kirill-konshin]: https://github.com/kirill-konshin -[@asapach]: https://github.com/asapach -[@sergei-startsev]: https://github.com/sergei-startsev -[@ephys]: https://github.com/ephys -[@lydell]: https://github.com/lydell -[@jeffshaver]: https://github.com/jeffshaver -[@timkraut]: https://github.com/timkraut -[@TakeScoop]: https://github.com/TakeScoop -[@rfermann]: https://github.com/rfermann -[@bradennapier]: https://github.com/bradennapier -[@schmod]: https://github.com/schmod -[@echenley]: https://github.com/echenley -[@vikr01]: https://github.com/vikr01 -[@bradzacher]: https://github.com/bradzacher -[@feychenie]: https://github.com/feychenie -[@kiwka]: https://github.com/kiwka -[@loganfsmyth]: https://github.com/loganfsmyth -[@johndevedu]: https://github.com/johndevedu -[@charlessuh]: https://github.com/charlessuh -[@kgregory]: https://github.com/kgregory -[@christophercurrie]: https://github.com/christophercurrie -[@alex-page]: https://github.com/alex-page -[@benmosher]: https://github.com/benmosher -[@fooloomanzoo]: https://github.com/fooloomanzoo -[@sheepsteak]: https://github.com/sheepsteak -[@sharmilajesupaul]: https://github.com/sharmilajesupaul -[@lencioni]: https://github.com/lencioni -[@JounQin]: https://github.com/JounQin -[@atikenny]: https://github.com/atikenny -[@schmidsi]: https://github.com/schmidsi -[@TrevorBurnham]: https://github.com/TrevorBurnham -[@benmunro]: https://github.com/benmunro -[@tihonove]: https://github.com/tihonove -[@brendo]: https://github.com/brendo -[@saschanaz]: https://github.com/saschanaz -[@brettz9]: https://github.com/brettz9 -[@Taranys]: https://github.com/Taranys +[@Maxim-Mazurok]: https://github.com/Maxim-Mazurok [@maxmalov]: https://github.com/maxmalov -[@marcusdarmstrong]: https://github.com/marcusdarmstrong -[@Mairu]: https://github.com/Mairu -[@aamulumi]: https://github.com/aamulumi +[@MikeyBeLike]: https://github.com/MikeyBeLike +[@mplewis]: https://github.com/mplewis +[@nickofthyme]: https://github.com/nickofthyme +[@nicolashenry]: https://github.com/nicolashenry +[@noelebrun]: https://github.com/noelebrun +[@ntdb]: https://github.com/ntdb +[@panrafal]: https://github.com/panrafal +[@paztis]: https://github.com/paztis [@pcorpet]: https://github.com/pcorpet -[@stropho]: https://github.com/stropho -[@luczsoma]: https://github.com/luczsoma -[@christophercurrie]: https://github.com/christophercurrie -[@randallreedjr]: https://github.com/randallreedjr [@Pessimistress]: https://github.com/Pessimistress -[@stekycz]: https://github.com/stekycz -[@dbrewer5]: https://github.com/dbrewer5 +[@preco21]: https://github.com/preco21 +[@pzhine]: https://github.com/pzhine +[@ramasilveyra]: https://github.com/ramasilveyra +[@randallreedjr]: https://github.com/randallreedjr +[@redbugz]: https://github.com/redbugz +[@rfermann]: https://github.com/rfermann +[@rhettlivingston]: https://github.com/rhettlivingston +[@rhys-vdw]: https://github.com/rhys-vdw +[@richardxia]: https://github.com/richardxia +[@robertrossmann]: https://github.com/robertrossmann +[@rosswarren]: https://github.com/rosswarren [@rsolomon]: https://github.com/rsolomon -[@joaovieira]: https://github.com/joaovieira -[@ivo-stefchev]: https://github.com/ivo-stefchev +[@s-h-a-d-o-w]: https://github.com/s-h-a-d-o-w +[@saschanaz]: https://github.com/saschanaz +[@schmidsi]: https://github.com/schmidsi +[@schmod]: https://github.com/schmod +[@scottnonnenberg]: https://github.com/scottnonnenberg +[@sergei-startsev]: https://github.com/sergei-startsev +[@sharmilajesupaul]: https://github.com/sharmilajesupaul +[@sheepsteak]: https://github.com/sheepsteak +[@silviogutierrez]: https://github.com/silviogutierrez +[@SimenB]: https://github.com/SimenB +[@sindresorhus]: https://github.com/sindresorhus +[@singles]: https://github.com/singles [@skozin]: https://github.com/skozin -[@yordis]: https://github.com/yordis +[@skyrpex]: https://github.com/skyrpex +[@sompylasar]: https://github.com/sompylasar +[@spalger]: https://github.com/spalger +[@st-sloth]: https://github.com/st-sloth +[@stekycz]: https://github.com/stekycz +[@straub]: https://github.com/straub +[@strawbrary]: https://github.com/strawbrary +[@stropho]: https://github.com/stropho [@sveyret]: https://github.com/sveyret -[@bmish]: https://github.com/bmish -[@redbugz]: https://github.com/redbugz -[@kentcdodds]: https://github.com/kentcdodds -[@IvanGoncharov]: https://github.com/IvanGoncharov -[@wschurman]: https://github.com/wschurman -[@fisker]: https://github.com/fisker -[@richardxia]: https://github.com/richardxia +[@swernerx]: https://github.com/swernerx +[@syymza]: https://github.com/syymza +[@taion]: https://github.com/taion +[@TakeScoop]: https://github.com/TakeScoop +[@tapayne88]: https://github.com/tapayne88 +[@Taranys]: https://github.com/Taranys +[@taye]: https://github.com/taye [@TheCrueltySage]: https://github.com/TheCrueltySage -[@ernestostifano]: https://github.com/ernestostifano -[@forivall]: https://github.com/forivall +[@tihonove]: https://github.com/tihonove +[@timkraut]: https://github.com/timkraut +[@tizmagik]: https://github.com/tizmagik +[@tomprats]: https://github.com/tomprats +[@TrevorBurnham]: https://github.com/TrevorBurnham +[@ttmarek]: https://github.com/ttmarek +[@vikr01]: https://github.com/vikr01 +[@wKich]: https://github.com/wKich +[@wschurman]: https://github.com/wschurman +[@wtgtybhertgeghgtwtg]: https://github.com/wtgtybhertgeghgtwtg [@xpl]: https://github.com/xpl -[@astorije]: https://github.com/astorije -[@Ephem]: https://github.com/Ephem -[@kmui2]: https://github.com/kmui2 -[@arvigeus]: https://github.com/arvigeus -[@atos1990]: https://github.com/atos1990 -[@Hypnosphi]: https://github.com/Hypnosphi -[@nickofthyme]: https://github.com/nickofthyme -[@manuth]: https://github.com/manuth -[@julien1619]: https://github.com/julien1619 -[@darkartur]: https://github.com/darkartur -[@MikeyBeLike]: https://github.com/MikeyBeLike -[@barbogast]: https://github.com/barbogast -[@adamborowski]: https://github.com/adamborowski -[@adjerbetian]: https://github.com/adjerbetian -[@Maxim-Mazurok]: https://github.com/Maxim-Mazurok -[@malykhinvi]: https://github.com/malykhinvi -[@nicolashenry]: https://github.com/nicolashenry -[@fernandopasik]: https://github.com/fernandopasik -[@taye]: https://github.com/taye -[@AndrewLeedham]: https://github.com/AndrewLeedham -[@be5invis]: https://github.com/be5invis -[@noelebrun]: https://github.com/noelebrun -[@beatrizrezener]: https://github.com/beatrizrezener +[@yordis]: https://github.com/yordis +[@zloirock]: https://github.com/zloirock \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/README.md b/node_modules/eslint-plugin-import/README.md index e08e72ffa2..d7d50eaf51 100644 --- a/node_modules/eslint-plugin-import/README.md +++ b/node_modules/eslint-plugin-import/README.md @@ -27,6 +27,7 @@ This plugin intends to support linting of ES2015+ (ES6+) import/export syntax, a * Forbid a module from importing a module with a dependency path back to itself ([`no-cycle`]) * Prevent unnecessary path segments in import and require statements ([`no-useless-path-segments`]) * Forbid importing modules from parent directories ([`no-relative-parent-imports`]) +* Prevent importing packages through relative paths ([`no-relative-packages`]) [`no-unresolved`]: ./docs/rules/no-unresolved.md [`named`]: ./docs/rules/named.md @@ -41,6 +42,7 @@ This plugin intends to support linting of ES2015+ (ES6+) import/export syntax, a [`no-cycle`]: ./docs/rules/no-cycle.md [`no-useless-path-segments`]: ./docs/rules/no-useless-path-segments.md [`no-relative-parent-imports`]: ./docs/rules/no-relative-parent-imports.md +[`no-relative-packages`]: ./docs/rules/no-relative-packages.md ### Helpful warnings @@ -67,11 +69,13 @@ This plugin intends to support linting of ES2015+ (ES6+) import/export syntax, a * Report CommonJS `require` calls and `module.exports` or `exports.*`. ([`no-commonjs`]) * Report AMD `require` and `define` calls. ([`no-amd`]) * No Node.js builtin modules. ([`no-nodejs-modules`]) +* Forbid imports with CommonJS exports ([`no-import-module-exports`]) [`unambiguous`]: ./docs/rules/unambiguous.md [`no-commonjs`]: ./docs/rules/no-commonjs.md [`no-amd`]: ./docs/rules/no-amd.md [`no-nodejs-modules`]: ./docs/rules/no-nodejs-modules.md +[`no-import-module-exports`]: ./docs/rules/no-import-module-exports.md ### Style guide @@ -136,6 +140,8 @@ in your `.eslintrc.(yml|json|js)`, or extend one of the canned configs: --- extends: - eslint:recommended + - plugin:import/recommended + # alternatively, 'recommended' is the combination of these two rule sets: - plugin:import/errors - plugin:import/warnings @@ -161,8 +167,7 @@ Make sure you have installed [`@typescript-eslint/parser`] which is used in the ```yaml extends: - eslint:recommended - - plugin:import/errors - - plugin:import/warnings + - plugin:import/recommended - plugin:import/typescript # this line does the trick ``` diff --git a/node_modules/eslint-plugin-import/config/electron.js b/node_modules/eslint-plugin-import/config/electron.js index 6fab4e8b9e..f98ff0614b 100644 --- a/node_modules/eslint-plugin-import/config/electron.js +++ b/node_modules/eslint-plugin-import/config/electron.js @@ -5,4 +5,4 @@ module.exports = { settings: { 'import/core-modules': ['electron'], }, -} +}; diff --git a/node_modules/eslint-plugin-import/config/errors.js b/node_modules/eslint-plugin-import/config/errors.js index d99a9dacf0..127c29a0cc 100644 --- a/node_modules/eslint-plugin-import/config/errors.js +++ b/node_modules/eslint-plugin-import/config/errors.js @@ -5,10 +5,10 @@ */ module.exports = { plugins: ['import'], - rules: { 'import/no-unresolved': 2 - , 'import/named': 2 - , 'import/namespace': 2 - , 'import/default': 2 - , 'import/export': 2, - }, -} + rules: { 'import/no-unresolved': 2, + 'import/named': 2, + 'import/namespace': 2, + 'import/default': 2, + 'import/export': 2, + }, +}; diff --git a/node_modules/eslint-plugin-import/config/react-native.js b/node_modules/eslint-plugin-import/config/react-native.js index fbc8652c9f..a1aa0ee565 100644 --- a/node_modules/eslint-plugin-import/config/react-native.js +++ b/node_modules/eslint-plugin-import/config/react-native.js @@ -10,4 +10,4 @@ module.exports = { }, }, }, -} +}; diff --git a/node_modules/eslint-plugin-import/config/react.js b/node_modules/eslint-plugin-import/config/react.js index fe1b5f2ec1..68555512d7 100644 --- a/node_modules/eslint-plugin-import/config/react.js +++ b/node_modules/eslint-plugin-import/config/react.js @@ -15,4 +15,4 @@ module.exports = { ecmaFeatures: { jsx: true }, }, -} +}; diff --git a/node_modules/eslint-plugin-import/config/recommended.js b/node_modules/eslint-plugin-import/config/recommended.js index 9970918933..8e7ca9fd05 100644 --- a/node_modules/eslint-plugin-import/config/recommended.js +++ b/node_modules/eslint-plugin-import/config/recommended.js @@ -25,4 +25,4 @@ module.exports = { sourceType: 'module', ecmaVersion: 2018, }, -} +}; diff --git a/node_modules/eslint-plugin-import/config/stage-0.js b/node_modules/eslint-plugin-import/config/stage-0.js index 25ad75feb1..42419123f0 100644 --- a/node_modules/eslint-plugin-import/config/stage-0.js +++ b/node_modules/eslint-plugin-import/config/stage-0.js @@ -9,4 +9,4 @@ module.exports = { rules: { 'import/no-deprecated': 1, }, -} +}; diff --git a/node_modules/eslint-plugin-import/config/typescript.js b/node_modules/eslint-plugin-import/config/typescript.js index 705faaf372..01b59f06b9 100644 --- a/node_modules/eslint-plugin-import/config/typescript.js +++ b/node_modules/eslint-plugin-import/config/typescript.js @@ -2,7 +2,7 @@ * Adds `.jsx`, `.ts` and `.tsx` as an extension, and enables JSX/TSX parsing. */ -var allExtensions = ['.ts', '.tsx', '.d.ts', '.js', '.jsx'] +const allExtensions = ['.ts', '.tsx', '.d.ts', '.js', '.jsx']; module.exports = { @@ -25,4 +25,4 @@ module.exports = { // TypeScript compilation already ensures that named imports exist in the referenced module 'import/named': 'off', }, -} +}; diff --git a/node_modules/eslint-plugin-import/config/warnings.js b/node_modules/eslint-plugin-import/config/warnings.js index c05eb0722a..5d74143b28 100644 --- a/node_modules/eslint-plugin-import/config/warnings.js +++ b/node_modules/eslint-plugin-import/config/warnings.js @@ -9,4 +9,4 @@ module.exports = { 'import/no-named-as-default-member': 1, 'import/no-duplicates': 1, }, -} +}; diff --git a/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md b/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md index 4bcc5a98b1..d29c06bbaa 100644 --- a/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md +++ b/node_modules/eslint-plugin-import/docs/rules/dynamic-import-chunkname.md @@ -39,12 +39,6 @@ import( 'someModule', ); -// using single quotes instead of double quotes -import( - /* webpackChunkName: 'someModule' */ - 'someModule', -); - // invalid syntax for webpack comment import( /* totally not webpackChunkName: "someModule" */ @@ -78,6 +72,12 @@ The following patterns are valid: /* webpackChunkName: "someModule", webpackPrefetch: true */ 'someModule', ); + + // using single quotes instead of double quotes + import( + /* webpackChunkName: 'someModule' */ + 'someModule', + ); ``` ## When Not To Use It diff --git a/node_modules/eslint-plugin-import/docs/rules/no-extraneous-dependencies.md b/node_modules/eslint-plugin-import/docs/rules/no-extraneous-dependencies.md index 295590ccd0..cdc0a913fe 100644 --- a/node_modules/eslint-plugin-import/docs/rules/no-extraneous-dependencies.md +++ b/node_modules/eslint-plugin-import/docs/rules/no-extraneous-dependencies.md @@ -1,7 +1,7 @@ # import/no-extraneous-dependencies: Forbid the use of extraneous packages Forbid the import of external modules that are not declared in the `package.json`'s `dependencies`, `devDependencies`, `optionalDependencies`, `peerDependencies`, or `bundledDependencies`. -The closest parent `package.json` will be used. If no `package.json` is found, the rule will not lint anything. This behaviour can be changed with the rule option `packageDir`. +The closest parent `package.json` will be used. If no `package.json` is found, the rule will not lint anything. This behavior can be changed with the rule option `packageDir`. Modules have to be installed for this rule to work. @@ -13,7 +13,7 @@ This rule supports the following options: `optionalDependencies`: If set to `false`, then the rule will show an error when `optionalDependencies` are imported. Defaults to `true`. -`peerDependencies`: If set to `false`, then the rule will show an error when `peerDependencies` are imported. Defaults to `false`. +`peerDependencies`: If set to `false`, then the rule will show an error when `peerDependencies` are imported. Defaults to `true`. `bundledDependencies`: If set to `false`, then the rule will show an error when `bundledDependencies` are imported. Defaults to `true`. diff --git a/node_modules/eslint-plugin-import/docs/rules/no-import-module-exports.md b/node_modules/eslint-plugin-import/docs/rules/no-import-module-exports.md new file mode 100644 index 0000000000..8131fd5f78 --- /dev/null +++ b/node_modules/eslint-plugin-import/docs/rules/no-import-module-exports.md @@ -0,0 +1,74 @@ +# no-import-module-exports + +Reports the use of import declarations with CommonJS exports in any module +except for the [main module](https://docs.npmjs.com/files/package.json#main). + +If you have multiple entry points or are using `js:next` this rule includes an +`exceptions` option which you can use to exclude those files from the rule. + +## Options + +#### `exceptions` + - An array of globs. The rule will be omitted from any file that matches a glob + in the options array. For example, the following setting will omit the rule + in the `some-file.js` file. + +```json +"import/no-import-module-exports": ["error", { + "exceptions": ["**/*/some-file.js"] +}] +``` + +## Rule Details + +### Fail + +```js +import { stuff } from 'starwars' +module.exports = thing + +import * as allThings from 'starwars' +exports.bar = thing + +import thing from 'other-thing' +exports.foo = bar + +import thing from 'starwars' +const baz = module.exports = thing +console.log(baz) +``` + +### Pass +Given the following package.json: + +```json +{ + "main": "lib/index.js", +} +``` + +```js +import thing from 'other-thing' +export default thing + +const thing = require('thing') +module.exports = thing + +const thing = require('thing') +exports.foo = bar + +import thing from 'otherthing' +console.log(thing.module.exports) + +// in lib/index.js +import foo from 'path'; +module.exports = foo; + +// in some-file.js +// eslint import/no-import-module-exports: ["error", {"exceptions": ["**/*/some-file.js"]}] +import foo from 'path'; +module.exports = foo; +``` + +### Further Reading + - [webpack issue #4039](https://github.com/webpack/webpack/issues/4039) diff --git a/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md b/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md index 7bbb2edd16..d957e26f36 100644 --- a/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md +++ b/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md @@ -4,7 +4,10 @@ Use this rule to prevent importing the submodules of other modules. ## Rule Details -This rule has one option, `allow` which is an array of [minimatch/glob patterns](https://github.com/isaacs/node-glob#glob-primer) patterns that whitelist paths and import statements that can be imported with reaching. +This rule has two mutally exclusive options that are arrays of [minimatch/glob patterns](https://github.com/isaacs/node-glob#glob-primer) patterns: + +- `allow` that include paths and import statements that can be imported with reaching. +- `forbid` that exclude paths and import statements that can be imported with reaching. ### Examples @@ -33,7 +36,7 @@ And the .eslintrc file: ... "rules": { "import/no-internal-modules": [ "error", { - "allow": [ "**/actions/*", "source-map-support/*" ] + "allow": [ "**/actions/*", "source-map-support/*" ], } ] } } @@ -68,3 +71,62 @@ import getUser from '../actions/getUser'; export * from 'source-map-support/register'; export { settings } from '../app'; ``` + +Given the following folder structure: + +``` +my-project +├── actions +│ └── getUser.js +│ └── updateUser.js +├── reducer +│ └── index.js +│ └── user.js +├── redux +│ └── index.js +│ └── configureStore.js +└── app +│ └── index.js +│ └── settings.js +└── entry.js +``` + +And the .eslintrc file: +``` +{ + ... + "rules": { + "import/no-internal-modules": [ "error", { + "forbid": [ "**/actions/*", "source-map-support/*" ], + } ] + } +} +``` + +The following patterns are considered problems: + +```js +/** + * in my-project/entry.js + */ + +import 'source-map-support/register'; +import getUser from '../actions/getUser'; + +export * from 'source-map-support/register'; +export getUser from '../actions/getUser'; +``` + +The following patterns are NOT considered problems: + +```js +/** + * in my-project/entry.js + */ + +import 'source-map-support'; +import { getUser } from '../actions'; + +export * from 'source-map-support'; +export { getUser } from '../actions'; +``` diff --git a/node_modules/eslint-plugin-import/docs/rules/no-named-as-default.md b/node_modules/eslint-plugin-import/docs/rules/no-named-as-default.md index 0a92b7b517..0421413833 100644 --- a/node_modules/eslint-plugin-import/docs/rules/no-named-as-default.md +++ b/node_modules/eslint-plugin-import/docs/rules/no-named-as-default.md @@ -31,7 +31,7 @@ For post-ES2015 `export` extensions, this also prevents exporting the default fr ```js // valid: -export foo from './foo.js' +export foo from './foo.js'; // message: Using exported name 'bar' as identifier for default export. export bar from './foo.js'; diff --git a/node_modules/eslint-plugin-import/docs/rules/no-named-default.md b/node_modules/eslint-plugin-import/docs/rules/no-named-default.md index 86fb41d615..bb8b13bca4 100644 --- a/node_modules/eslint-plugin-import/docs/rules/no-named-default.md +++ b/node_modules/eslint-plugin-import/docs/rules/no-named-default.md @@ -4,6 +4,10 @@ Reports use of a default export as a locally named import. Rationale: the syntax exists to import default exports expressively, let's use it. +Note that type imports, as used by [Flow], are always ignored. + +[Flow]: https://flow.org/ + ## Rule Details Given: diff --git a/node_modules/eslint-plugin-import/docs/rules/no-relative-packages.md b/node_modules/eslint-plugin-import/docs/rules/no-relative-packages.md new file mode 100644 index 0000000000..d5a0684932 --- /dev/null +++ b/node_modules/eslint-plugin-import/docs/rules/no-relative-packages.md @@ -0,0 +1,66 @@ +# import/no-relative-packages + +Use this rule to prevent importing packages through relative paths. + +It's useful in Yarn/Lerna workspaces, were it's possible to import a sibling +package using `../package` relative path, while direct `package` is the correct one. + + +### Examples + +Given the following folder structure: + +``` +my-project +├── packages +│ ├── foo +│ │ ├── index.js +│ │ └── package.json +│ └── bar +│ ├── index.js +│ └── package.json +└── entry.js +``` + +And the .eslintrc file: +``` +{ + ... + "rules": { + "import/no-relative-packages": "error" + } +} +``` + +The following patterns are considered problems: + +```js +/** + * in my-project/packages/foo.js + */ + +import bar from '../bar'; // Import sibling package using relative path +import entry from '../../entry.js'; // Import from parent package using relative path + +/** + * in my-project/entry.js + */ + +import bar from './packages/bar'; // Import child package using relative path +``` + +The following patterns are NOT considered problems: + +```js +/** + * in my-project/packages/foo.js + */ + +import bar from 'bar'; // Import sibling package using package name + +/** + * in my-project/entry.js + */ + +import bar from 'bar'; // Import sibling package using package name +``` diff --git a/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md b/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md index 8c234202f8..4c04333ad3 100644 --- a/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md +++ b/node_modules/eslint-plugin-import/docs/rules/no-unused-modules.md @@ -12,7 +12,7 @@ Note: dynamic imports are currently not supported. In order for this plugin to work, one of the options `missingExports` or `unusedExports` must be enabled (see "Options" section below). In the future, these options will be enabled by default (see https://github.com/benmosher/eslint-plugin-import/issues/1324) -Example: +Example: ``` "rules: { ...otherRules, @@ -27,13 +27,13 @@ This rule takes the following option: - **`missingExports`**: if `true`, files without any exports are reported (defaults to `false`) - **`unusedExports`**: if `true`, exports without any static usage within other modules are reported (defaults to `false`) - `src`: an array with files/paths to be analyzed. It only applies to unused exports. Defaults to `process.cwd()`, if not provided -- `ignoreExports`: an array with files/paths for which unused exports will not be reported (e.g module entry points in a published package) +- `ignoreExports`: an array with files/paths for which unused exports will not be reported (e.g module entry points in a published package) ### Example for missing exports #### The following will be reported ```js -const class MyClass { /*...*/ } +const class MyClass { /*...*/ } function makeClass() { return new MyClass(...arguments) } ``` @@ -41,10 +41,10 @@ function makeClass() { return new MyClass(...arguments) } #### The following will not be reported ```js -export default function () { /*...*/ } +export default function () { /*...*/ } ``` ```js -export const foo = function () { /*...*/ } +export const foo = function () { /*...*/ } ``` ```js export { foo, bar } @@ -61,7 +61,7 @@ import { f } from 'file-b' import * as fileC from 'file-c' export { default, i0 } from 'file-d' // both will be reported -export const j = 99 // will be reported +export const j = 99 // will be reported ``` and file-d: ```js diff --git a/node_modules/eslint-plugin-import/docs/rules/order.md b/node_modules/eslint-plugin-import/docs/rules/order.md index 7d91efd6f5..848c91ddef 100644 --- a/node_modules/eslint-plugin-import/docs/rules/order.md +++ b/node_modules/eslint-plugin-import/docs/rules/order.md @@ -2,7 +2,8 @@ Enforce a convention in the order of `require()` / `import` statements. +(fixable) The `--fix` option on the [command line] automatically fixes problems reported by this rule. -The order is as shown in the following example: + +With the [`groups`](#groups-array) option set to `["builtin", "external", "internal", "parent", "sibling", "index", "object"]` the order is as shown in the following example: ```js // 1. node "builtin" modules @@ -24,6 +25,8 @@ import baz from './bar/baz'; import main from './'; // 7. "object"-imports (only available in TypeScript) import log = console.log; +// 8. "type" imports (only available in Flow and TypeScript) +import type { Foo } from 'foo'; ``` Unassigned imports are ignored, as the order they are imported in may be important. @@ -80,7 +83,7 @@ This rule supports the following options: ### `groups: [array]`: How groups are defined, and the order to respect. `groups` must be an array of `string` or [`string`]. The only allowed `string`s are: -`"builtin"`, `"external"`, `"internal"`, `"unknown"`, `"parent"`, `"sibling"`, `"index"`, `"object"`. +`"builtin"`, `"external"`, `"internal"`, `"unknown"`, `"parent"`, `"sibling"`, `"index"`, `"object"`, `"type"`. The enforced order is the same as the order of each element in a group. Omitted types are implicitly grouped together as the last element. Example: ```js [ @@ -96,7 +99,7 @@ The default value is `["builtin", "external", "parent", "sibling", "index"]`. You can set the options like this: ```js -"import/order": ["error", {"groups": ["index", "sibling", "parent", "internal", "external", "builtin", "object"]}] +"import/order": ["error", {"groups": ["index", "sibling", "parent", "internal", "external", "builtin", "object", "type"]}] ``` ### `pathGroups: [array of objects]`: @@ -253,6 +256,33 @@ import React, { PureComponent } from 'react'; import { compose, apply } from 'xcompose'; ``` +### `warnOnUnassignedImports: true|false`: + +* default: `false` + +Warns when unassigned imports are out of order. These warning will not be fixed +with `--fix` because unassigned imports are used for side-effects and changing the +import of order of modules with side effects can not be done automatically in a +way that is safe. + +This will fail the rule check: + +```js +/* eslint import/order: ["error", {"warnOnUnassignedImports": true}] */ +import fs from 'fs'; +import './styles.css'; +import path from 'path'; +``` + +While this will pass: + +```js +/* eslint import/order: ["error", {"warnOnUnassignedImports": true}] */ +import fs from 'fs'; +import path from 'path'; +import './styles.css'; +``` + ## Related - [`import/external-module-folders`] setting diff --git a/node_modules/eslint-plugin-import/lib/ExportMap.js b/node_modules/eslint-plugin-import/lib/ExportMap.js index acea8797e4..56ca436e55 100644 --- a/node_modules/eslint-plugin-import/lib/ExportMap.js +++ b/node_modules/eslint-plugin-import/lib/ExportMap.js @@ -642,7 +642,30 @@ -recursivePatternCapture = recursivePatternCapture;var _fs = require('fs');var _fs2 = _interopRequireDefault(_fs);var _doctrine = require('doctrine');var _doctrine2 = _interopRequireDefault(_doctrine);var _debug = require('debug');var _debug2 = _interopRequireDefault(_debug);var _eslint = require('eslint');var _parse = require('eslint-module-utils/parse');var _parse2 = _interopRequireDefault(_parse);var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);var _ignore = require('eslint-module-utils/ignore');var _ignore2 = _interopRequireDefault(_ignore);var _hash = require('eslint-module-utils/hash');var _unambiguous = require('eslint-module-utils/unambiguous');var unambiguous = _interopRequireWildcard(_unambiguous);var _tsconfigLoader = require('tsconfig-paths/lib/tsconfig-loader');var _arrayIncludes = require('array-includes');var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;} else {var newObj = {};if (obj != null) {for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];}}newObj.default = obj;return newObj;}}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}let parseConfigFileTextToJson;const log = (0, _debug2.default)('eslint-plugin-import:ExportMap');const exportCache = new Map();class ExportMap {constructor(path) {this.path = path;this.namespace = new Map(); // todo: restructure to key on path, value is resolver + map of names + + + + + + + + + + + + + + + + + + + + + + + +recursivePatternCapture = recursivePatternCapture;var _fs = require('fs');var _fs2 = _interopRequireDefault(_fs);var _doctrine = require('doctrine');var _doctrine2 = _interopRequireDefault(_doctrine);var _debug = require('debug');var _debug2 = _interopRequireDefault(_debug);var _eslint = require('eslint');var _parse = require('eslint-module-utils/parse');var _parse2 = _interopRequireDefault(_parse);var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);var _ignore = require('eslint-module-utils/ignore');var _ignore2 = _interopRequireDefault(_ignore);var _hash = require('eslint-module-utils/hash');var _unambiguous = require('eslint-module-utils/unambiguous');var unambiguous = _interopRequireWildcard(_unambiguous);var _tsconfigLoader = require('tsconfig-paths/lib/tsconfig-loader');var _arrayIncludes = require('array-includes');var _arrayIncludes2 = _interopRequireDefault(_arrayIncludes);function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;} else {var newObj = {};if (obj != null) {for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];}}newObj.default = obj;return newObj;}}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}let parseConfigFileTextToJson;const log = (0, _debug2.default)('eslint-plugin-import:ExportMap');const exportCache = new Map();const tsConfigCache = new Map();class ExportMap {constructor(path) {this.path = path;this.namespace = new Map(); // todo: restructure to key on path, value is resolver + map of names this.reexports = new Map(); /** * star-exports * @type {Set} of () => ExportMap @@ -658,58 +681,61 @@ recursivePatternCapture = recursivePatternCapture;var _fs = require('fs');var _f * @param {string} name * @return {Boolean} true if `name` is exported by this module. */has(name) {if (this.namespace.has(name)) return true;if (this.reexports.has(name)) return true; // default exports must be explicitly re-exported (#328) - if (name !== 'default') {for (let dep of this.dependencies) {let innerMap = dep(); // todo: report as unresolved? + if (name !== 'default') {for (const dep of this.dependencies) {const innerMap = dep(); // todo: report as unresolved? if (!innerMap) continue;if (innerMap.has(name)) return true;}}return false;} /** * ensure that imported name fully resolves. - * @param {[type]} name [description] - * @return {Boolean} [description] - */hasDeep(name) {if (this.namespace.has(name)) return { found: true, path: [this] };if (this.reexports.has(name)) {const reexports = this.reexports.get(name),imported = reexports.getImport(); // if import is ignored, return explicit 'null' - if (imported == null) return { found: true, path: [this] // safeguard against cycles, only if name matches - };if (imported.path === this.path && reexports.local === name) {return { found: false, path: [this] };}const deep = imported.hasDeep(reexports.local);deep.path.unshift(this);return deep;} // default exports must be explicitly re-exported (#328) - if (name !== 'default') {for (let dep of this.dependencies) {let innerMap = dep();if (innerMap == null) return { found: true, path: [this] // todo: report as unresolved? - };if (!innerMap) continue; // safeguard against cycles - if (innerMap.path === this.path) continue;let innerValue = innerMap.hasDeep(name);if (innerValue.found) {innerValue.path.unshift(this);return innerValue;}}}return { found: false, path: [this] };}get(name) {if (this.namespace.has(name)) return this.namespace.get(name);if (this.reexports.has(name)) {const reexports = this.reexports.get(name),imported = reexports.getImport(); // if import is ignored, return explicit 'null' + * @param {string} name + * @return {{ found: boolean, path: ExportMap[] }} + */hasDeep(name) {if (this.namespace.has(name)) return { found: true, path: [this] };if (this.reexports.has(name)) {const reexports = this.reexports.get(name);const imported = reexports.getImport(); // if import is ignored, return explicit 'null' + if (imported == null) return { found: true, path: [this] }; // safeguard against cycles, only if name matches + if (imported.path === this.path && reexports.local === name) {return { found: false, path: [this] };}const deep = imported.hasDeep(reexports.local);deep.path.unshift(this);return deep;} // default exports must be explicitly re-exported (#328) + if (name !== 'default') {for (const dep of this.dependencies) {const innerMap = dep();if (innerMap == null) return { found: true, path: [this] }; // todo: report as unresolved? + if (!innerMap) continue; // safeguard against cycles + if (innerMap.path === this.path) continue;const innerValue = innerMap.hasDeep(name);if (innerValue.found) {innerValue.path.unshift(this);return innerValue;}}}return { found: false, path: [this] };}get(name) {if (this.namespace.has(name)) return this.namespace.get(name);if (this.reexports.has(name)) {const reexports = this.reexports.get(name);const imported = reexports.getImport(); // if import is ignored, return explicit 'null' if (imported == null) return null; // safeguard against cycles, only if name matches if (imported.path === this.path && reexports.local === name) return undefined;return imported.get(reexports.local);} // default exports must be explicitly re-exported (#328) - if (name !== 'default') {for (let dep of this.dependencies) {let innerMap = dep(); // todo: report as unresolved? + if (name !== 'default') {for (const dep of this.dependencies) {const innerMap = dep(); // todo: report as unresolved? if (!innerMap) continue; // safeguard against cycles - if (innerMap.path === this.path) continue;let innerValue = innerMap.get(name);if (innerValue !== undefined) return innerValue;}}return undefined;}forEach(callback, thisArg) {this.namespace.forEach((v, n) => callback.call(thisArg, v, n, this));this.reexports.forEach((reexports, name) => {const reexported = reexports.getImport(); // can't look up meta for ignored re-exports (#348) + if (innerMap.path === this.path) continue;const innerValue = innerMap.get(name);if (innerValue !== undefined) return innerValue;}}return undefined;}forEach(callback, thisArg) {this.namespace.forEach((v, n) => callback.call(thisArg, v, n, this));this.reexports.forEach((reexports, name) => {const reexported = reexports.getImport(); // can't look up meta for ignored re-exports (#348) callback.call(thisArg, reexported && reexported.get(reexports.local), name, this);});this.dependencies.forEach(dep => {const d = dep(); // CJS / ignored dependencies won't exist (#717) if (d == null) return;d.forEach((v, n) => n !== 'default' && callback.call(thisArg, v, n, this));});} // todo: keys, values, entries? reportErrors(context, declaration) {context.report({ node: declaration.source, message: `Parse errors in imported module '${declaration.source.value}': ` + `${this.errors.map(e => `${e.message} (${e.lineNumber}:${e.column})`).join(', ')}` });}}exports.default = ExportMap; /** * parse docs from the first node that has leading comments */function captureDoc(source, docStyleParsers) {const metadata = {}; // 'some' short-circuits on first 'true' for (var _len = arguments.length, nodes = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {nodes[_key - 2] = arguments[_key];}nodes.some(n => {try {let leadingComments; // n.leadingComments is legacy `attachComments` behavior - if ('leadingComments' in n) {leadingComments = n.leadingComments;} else if (n.range) {leadingComments = source.getCommentsBefore(n);}if (!leadingComments || leadingComments.length === 0) return false;for (let name in docStyleParsers) {const doc = docStyleParsers[name](leadingComments);if (doc) {metadata.doc = doc;}}return true;} catch (err) {return false;}});return metadata;}const availableDocStyleParsers = { jsdoc: captureJsDoc, tomdoc: captureTomDoc /** - * parse JSDoc from leading comments - * @param {...[type]} comments [description] - * @return {{doc: object}} - */ };function captureJsDoc(comments) {let doc; // capture XSDoc + if ('leadingComments' in n) {leadingComments = n.leadingComments;} else if (n.range) {leadingComments = source.getCommentsBefore(n);}if (!leadingComments || leadingComments.length === 0) return false;for (const name in docStyleParsers) {const doc = docStyleParsers[name](leadingComments);if (doc) {metadata.doc = doc;}}return true;} catch (err) {return false;}});return metadata;}const availableDocStyleParsers = { jsdoc: captureJsDoc, tomdoc: captureTomDoc }; /** + * parse JSDoc from leading comments + * @param {object[]} comments + * @return {{ doc: object }} + */function captureJsDoc(comments) {let doc; // capture XSDoc comments.forEach(comment => {// skip non-block comments if (comment.type !== 'Block') return;try {doc = _doctrine2.default.parse(comment.value, { unwrap: true });} catch (err) {/* don't care, for now? maybe add to `errors?` */}});return doc;} /** * parse TomDoc section from comments */function captureTomDoc(comments) {// collect lines up to first paragraph break const lines = [];for (let i = 0; i < comments.length; i++) {const comment = comments[i];if (comment.value.match(/^\s*$/)) break;lines.push(comment.value.trim());} // return doctrine-like object - const statusMatch = lines.join(' ').match(/^(Public|Internal|Deprecated):\s*(.+)/);if (statusMatch) {return { description: statusMatch[2], tags: [{ title: statusMatch[1].toLowerCase(), description: statusMatch[2] }] };}}ExportMap.get = function (source, context) {const path = (0, _resolve2.default)(source, context);if (path == null) return null;return ExportMap.for(childContext(path, context));};ExportMap.for = function (context) {const path = context.path;const cacheKey = (0, _hash.hashObject)(context).digest('hex');let exportMap = exportCache.get(cacheKey); // return cached ignore + const statusMatch = lines.join(' ').match(/^(Public|Internal|Deprecated):\s*(.+)/);if (statusMatch) {return { description: statusMatch[2], tags: [{ title: statusMatch[1].toLowerCase(), description: statusMatch[2] }] };}}const supportedImportTypes = new Set(['ImportDefaultSpecifier', 'ImportNamespaceSpecifier']);ExportMap.get = function (source, context) {const path = (0, _resolve2.default)(source, context);if (path == null) return null;return ExportMap.for(childContext(path, context));};ExportMap.for = function (context) {const path = context.path;const cacheKey = (0, _hash.hashObject)(context).digest('hex');let exportMap = exportCache.get(cacheKey); // return cached ignore if (exportMap === null) return null;const stats = _fs2.default.statSync(path);if (exportMap != null) {// date equality check if (exportMap.mtime - stats.mtime === 0) {return exportMap;} // future: check content equality? } // check valid extensions first if (!(0, _ignore.hasValidExtension)(path, context)) {exportCache.set(cacheKey, null);return null;} // check for and cache ignore if ((0, _ignore2.default)(path, context)) {log('ignored path due to ignore settings:', path);exportCache.set(cacheKey, null);return null;}const content = _fs2.default.readFileSync(path, { encoding: 'utf8' }); // check for and cache unambiguous modules if (!unambiguous.test(content)) {log('ignored path due to unambiguous regex:', path);exportCache.set(cacheKey, null);return null;}log('cache miss', cacheKey, 'for path', path);exportMap = ExportMap.parse(path, content, context); // ambiguous modules return null - if (exportMap == null) return null;exportMap.mtime = stats.mtime;exportCache.set(cacheKey, exportMap);return exportMap;};ExportMap.parse = function (path, content, context) {var m = new ExportMap(path);try {var ast = (0, _parse2.default)(path, content, context);} catch (err) {log('parse error:', path, err);m.errors.push(err);return m; // can't continue + if (exportMap == null) return null;exportMap.mtime = stats.mtime;exportCache.set(cacheKey, exportMap);return exportMap;};ExportMap.parse = function (path, content, context) {const m = new ExportMap(path);let ast;try {ast = (0, _parse2.default)(path, content, context);} catch (err) {log('parse error:', path, err);m.errors.push(err);return m; // can't continue }if (!unambiguous.isModule(ast)) return null;const docstyle = context.settings && context.settings['import/docstyle'] || ['jsdoc'];const docStyleParsers = {};docstyle.forEach(style => {docStyleParsers[style] = availableDocStyleParsers[style];}); // attempt to collect module doc - if (ast.comments) {ast.comments.some(c => {if (c.type !== 'Block') return false;try {const doc = _doctrine2.default.parse(c.value, { unwrap: true });if (doc.tags.some(t => t.title === 'module')) {m.doc = doc;return true;}} catch (err) {/* ignore */}return false;});}const namespaces = new Map();function remotePath(value) {return _resolve2.default.relative(value, path, context.settings);}function resolveImport(value) {const rp = remotePath(value);if (rp == null) return null;return ExportMap.for(childContext(rp, context));}function getNamespace(identifier) {if (!namespaces.has(identifier.name)) return;return function () {return resolveImport(namespaces.get(identifier.name));};}function addNamespace(object, identifier) {const nsfn = getNamespace(identifier);if (nsfn) {Object.defineProperty(object, 'namespace', { get: nsfn });}return object;}function captureDependency(declaration) {if (declaration.source == null) return null;if (declaration.importKind === 'type') return null; // skip Flow type imports - const importedSpecifiers = new Set();const supportedTypes = new Set(['ImportDefaultSpecifier', 'ImportNamespaceSpecifier']);let hasImportedType = false;if (declaration.specifiers) {declaration.specifiers.forEach(specifier => {const isType = specifier.importKind === 'type';hasImportedType = hasImportedType || isType;if (supportedTypes.has(specifier.type) && !isType) {importedSpecifiers.add(specifier.type);}if (specifier.type === 'ImportSpecifier' && !isType) {importedSpecifiers.add(specifier.imported.name);}});} // only Flow types were imported - if (hasImportedType && importedSpecifiers.size === 0) return null;const p = remotePath(declaration.source.value);if (p == null) return null;const existing = m.imports.get(p);if (existing != null) return existing.getter;const getter = thunkFor(p, context);m.imports.set(p, { getter, source: { // capturing actual node reference holds full AST in memory! - value: declaration.source.value, loc: declaration.source.loc }, importedSpecifiers });return getter;}const source = makeSourceCode(content, ast);function isEsModuleInterop() {const tsConfigInfo = (0, _tsconfigLoader.tsConfigLoader)({ cwd: context.parserOptions && context.parserOptions.tsconfigRootDir || process.cwd(), getEnv: key => process.env[key] });try {if (tsConfigInfo.tsConfigPath !== undefined) {const jsonText = _fs2.default.readFileSync(tsConfigInfo.tsConfigPath).toString();if (!parseConfigFileTextToJson) {var _require = require('typescript'); // this is because projects not using TypeScript won't have typescript installed - parseConfigFileTextToJson = _require.parseConfigFileTextToJson;}const tsConfig = parseConfigFileTextToJson(tsConfigInfo.tsConfigPath, jsonText).config;return tsConfig.compilerOptions.esModuleInterop;}} catch (e) {return false;}}ast.body.forEach(function (n) {if (n.type === 'ExportDefaultDeclaration') {const exportMeta = captureDoc(source, docStyleParsers, n);if (n.declaration.type === 'Identifier') {addNamespace(exportMeta, n.declaration);}m.namespace.set('default', exportMeta);return;}if (n.type === 'ExportAllDeclaration') {const getter = captureDependency(n);if (getter) m.dependencies.add(getter);return;} // capture namespaces in case of later export - if (n.type === 'ImportDeclaration') {captureDependency(n);let ns;if (n.specifiers.some(s => s.type === 'ImportNamespaceSpecifier' && (ns = s))) {namespaces.set(ns.local.name, n.source.value);}return;}if (n.type === 'ExportNamedDeclaration') {// capture declaration + if (ast.comments) {ast.comments.some(c => {if (c.type !== 'Block') return false;try {const doc = _doctrine2.default.parse(c.value, { unwrap: true });if (doc.tags.some(t => t.title === 'module')) {m.doc = doc;return true;}} catch (err) {/* ignore */}return false;});}const namespaces = new Map();function remotePath(value) {return _resolve2.default.relative(value, path, context.settings);}function resolveImport(value) {const rp = remotePath(value);if (rp == null) return null;return ExportMap.for(childContext(rp, context));}function getNamespace(identifier) {if (!namespaces.has(identifier.name)) return;return function () {return resolveImport(namespaces.get(identifier.name));};}function addNamespace(object, identifier) {const nsfn = getNamespace(identifier);if (nsfn) {Object.defineProperty(object, 'namespace', { get: nsfn });}return object;}function captureDependency(_ref, isOnlyImportingTypes) {let source = _ref.source;let importedSpecifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();if (source == null) return null;const p = remotePath(source.value);if (p == null) return null;const declarationMetadata = { // capturing actual node reference holds full AST in memory! + source: { value: source.value, loc: source.loc }, isOnlyImportingTypes, importedSpecifiers };const existing = m.imports.get(p);if (existing != null) {existing.declarations.add(declarationMetadata);return existing.getter;}const getter = thunkFor(p, context);m.imports.set(p, { getter, declarations: new Set([declarationMetadata]) });return getter;}const source = makeSourceCode(content, ast);function readTsConfig() {const tsConfigInfo = (0, _tsconfigLoader.tsConfigLoader)({ cwd: context.parserOptions && context.parserOptions.tsconfigRootDir || process.cwd(), getEnv: key => process.env[key] });try {if (tsConfigInfo.tsConfigPath !== undefined) {const jsonText = _fs2.default.readFileSync(tsConfigInfo.tsConfigPath).toString();if (!parseConfigFileTextToJson) {var _require = require('typescript'); // this is because projects not using TypeScript won't have typescript installed + parseConfigFileTextToJson = _require.parseConfigFileTextToJson;}return parseConfigFileTextToJson(tsConfigInfo.tsConfigPath, jsonText).config;}} catch (e) {// Catch any errors + }return null;}function isEsModuleInterop() {const cacheKey = (0, _hash.hashObject)({ tsconfigRootDir: context.parserOptions && context.parserOptions.tsconfigRootDir }).digest('hex');let tsConfig = tsConfigCache.get(cacheKey);if (typeof tsConfig === 'undefined') {tsConfig = readTsConfig();tsConfigCache.set(cacheKey, tsConfig);}return tsConfig && tsConfig.compilerOptions ? tsConfig.compilerOptions.esModuleInterop : false;}ast.body.forEach(function (n) {if (n.type === 'ExportDefaultDeclaration') {const exportMeta = captureDoc(source, docStyleParsers, n);if (n.declaration.type === 'Identifier') {addNamespace(exportMeta, n.declaration);}m.namespace.set('default', exportMeta);return;}if (n.type === 'ExportAllDeclaration') {const getter = captureDependency(n, n.exportKind === 'type');if (getter) m.dependencies.add(getter);return;} // capture namespaces in case of later export + if (n.type === 'ImportDeclaration') {// import type { Foo } (TS and Flow) + const declarationIsType = n.importKind === 'type'; // import './foo' or import {} from './foo' (both 0 specifiers) is a side effect and + // shouldn't be considered to be just importing types + let specifiersOnlyImportingTypes = n.specifiers.length;const importedSpecifiers = new Set();n.specifiers.forEach(specifier => {if (supportedImportTypes.has(specifier.type)) {importedSpecifiers.add(specifier.type);}if (specifier.type === 'ImportSpecifier') {importedSpecifiers.add(specifier.imported.name);} // import { type Foo } (Flow) + specifiersOnlyImportingTypes = specifiersOnlyImportingTypes && specifier.importKind === 'type';});captureDependency(n, declarationIsType || specifiersOnlyImportingTypes, importedSpecifiers);const ns = n.specifiers.find(s => s.type === 'ImportNamespaceSpecifier');if (ns) {namespaces.set(ns.local.name, n.source.value);}return;}if (n.type === 'ExportNamedDeclaration') {// capture declaration if (n.declaration != null) {switch (n.declaration.type) {case 'FunctionDeclaration':case 'ClassDeclaration':case 'TypeAlias': // flowtype with babel-eslint parser case 'InterfaceDeclaration':case 'DeclareFunction':case 'TSDeclareFunction':case 'TSEnumDeclaration':case 'TSTypeAliasDeclaration':case 'TSInterfaceDeclaration':case 'TSAbstractClassDeclaration':case 'TSModuleDeclaration':m.namespace.set(n.declaration.id.name, captureDoc(source, docStyleParsers, n));break;case 'VariableDeclaration':n.declaration.declarations.forEach(d => recursivePatternCapture(d.id, id => m.namespace.set(id.name, captureDoc(source, docStyleParsers, d, n))));break;}}const nsource = n.source && n.source.value;n.specifiers.forEach(s => {const exportMeta = {};let local;switch (s.type) {case 'ExportDefaultSpecifier':if (!n.source) return;local = 'default';break;case 'ExportNamespaceSpecifier':m.namespace.set(s.exported.name, Object.defineProperty(exportMeta, 'namespace', { get() {return resolveImport(nsource);} }));return;case 'ExportSpecifier':if (!n.source) {m.namespace.set(s.exported.name, addNamespace(exportMeta, s.local));return;} // else falls through default:local = s.local.name;break;} // todo: JSDoc m.reexports.set(s.exported.name, { local, getImport: () => resolveImport(nsource) });});}const isEsModuleInteropTrue = isEsModuleInterop();const exports = ['TSExportAssignment'];if (isEsModuleInteropTrue) {exports.push('TSNamespaceExportDeclaration');} // This doesn't declare anything, but changes what's being exported. - if ((0, _arrayIncludes2.default)(exports, n.type)) {const exportedName = n.type === 'TSNamespaceExportDeclaration' ? n.id.name : n.expression && n.expression.name || n.expression.id.name;const declTypes = ['VariableDeclaration', 'ClassDeclaration', 'TSDeclareFunction', 'TSEnumDeclaration', 'TSTypeAliasDeclaration', 'TSInterfaceDeclaration', 'TSAbstractClassDeclaration', 'TSModuleDeclaration'];const exportedDecls = ast.body.filter((_ref) => {let type = _ref.type,id = _ref.id,declarations = _ref.declarations;return (0, _arrayIncludes2.default)(declTypes, type) && (id && id.name === exportedName || declarations && declarations.find(d => d.id.name === exportedName));});if (exportedDecls.length === 0) {// Export is not referencing any local declaration, must be re-exporting + if ((0, _arrayIncludes2.default)(exports, n.type)) {const exportedName = n.type === 'TSNamespaceExportDeclaration' ? n.id.name : n.expression && n.expression.name || n.expression.id && n.expression.id.name || null;const declTypes = ['VariableDeclaration', 'ClassDeclaration', 'TSDeclareFunction', 'TSEnumDeclaration', 'TSTypeAliasDeclaration', 'TSInterfaceDeclaration', 'TSAbstractClassDeclaration', 'TSModuleDeclaration'];const exportedDecls = ast.body.filter((_ref2) => {let type = _ref2.type,id = _ref2.id,declarations = _ref2.declarations;return (0, _arrayIncludes2.default)(declTypes, type) && (id && id.name === exportedName || declarations && declarations.find(d => d.id.name === exportedName));});if (exportedDecls.length === 0) {// Export is not referencing any local declaration, must be re-exporting m.namespace.set('default', captureDoc(source, docStyleParsers, n));return;}if (isEsModuleInteropTrue) {m.namespace.set('default', {});}exportedDecls.forEach(decl => {if (decl.type === 'TSModuleDeclaration') {if (decl.body && decl.body.type === 'TSModuleDeclaration') {m.namespace.set(decl.body.id.name, captureDoc(source, docStyleParsers, decl.body));} else if (decl.body && decl.body.body) {decl.body.body.forEach(moduleBlockNode => {// Export-assignment exports all members in the namespace, // explicitly exported or not. const namespaceDecl = moduleBlockNode.type === 'ExportNamedDeclaration' ? moduleBlockNode.declaration : moduleBlockNode;if (!namespaceDecl) {// TypeScript can check this for us; we needn't @@ -725,11 +751,11 @@ recursivePatternCapture = recursivePatternCapture;var _fs = require('fs');var _f * @param {Function} callback * @return {void} */function recursivePatternCapture(pattern, callback) {switch (pattern.type) {case 'Identifier': // base case - callback(pattern);break;case 'ObjectPattern':pattern.properties.forEach(p => {recursivePatternCapture(p.value, callback);});break;case 'ArrayPattern':pattern.elements.forEach(element => {if (element == null) return;recursivePatternCapture(element, callback);});break;case 'AssignmentPattern':callback(pattern.left);break;}} /** - * don't hold full context object in memory, just grab what we need. - */function childContext(path, context) {const settings = context.settings,parserOptions = context.parserOptions,parserPath = context.parserPath;return { settings, parserOptions, parserPath, path };} /** - * sometimes legacy support isn't _that_ hard... right? - */function makeSourceCode(text, ast) {if (_eslint.SourceCode.length > 1) {// ESLint 3 + callback(pattern);break;case 'ObjectPattern':pattern.properties.forEach(p => {if (p.type === 'ExperimentalRestProperty' || p.type === 'RestElement') {callback(p.argument);return;}recursivePatternCapture(p.value, callback);});break;case 'ArrayPattern':pattern.elements.forEach(element => {if (element == null) return;if (element.type === 'ExperimentalRestProperty' || element.type === 'RestElement') {callback(element.argument);return;}recursivePatternCapture(element, callback);});break;case 'AssignmentPattern':callback(pattern.left);break;}} /** + * don't hold full context object in memory, just grab what we need. + */function childContext(path, context) {const settings = context.settings,parserOptions = context.parserOptions,parserPath = context.parserPath;return { settings, parserOptions, parserPath, path };} /** + * sometimes legacy support isn't _that_ hard... right? + */function makeSourceCode(text, ast) {if (_eslint.SourceCode.length > 1) {// ESLint 3 return new _eslint.SourceCode(text, ast);} else {// ESLint 4, 5 return new _eslint.SourceCode({ text, ast });}} -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBvcnRNYXAuanMiXSwibmFtZXMiOlsicmVjdXJzaXZlUGF0dGVybkNhcHR1cmUiLCJ1bmFtYmlndW91cyIsInBhcnNlQ29uZmlnRmlsZVRleHRUb0pzb24iLCJsb2ciLCJleHBvcnRDYWNoZSIsIk1hcCIsIkV4cG9ydE1hcCIsImNvbnN0cnVjdG9yIiwicGF0aCIsIm5hbWVzcGFjZSIsInJlZXhwb3J0cyIsImRlcGVuZGVuY2llcyIsIlNldCIsImltcG9ydHMiLCJlcnJvcnMiLCJoYXNEZWZhdWx0IiwiZ2V0Iiwic2l6ZSIsImZvckVhY2giLCJkZXAiLCJkIiwiaGFzIiwibmFtZSIsImlubmVyTWFwIiwiaGFzRGVlcCIsImZvdW5kIiwiaW1wb3J0ZWQiLCJnZXRJbXBvcnQiLCJsb2NhbCIsImRlZXAiLCJ1bnNoaWZ0IiwiaW5uZXJWYWx1ZSIsInVuZGVmaW5lZCIsImNhbGxiYWNrIiwidGhpc0FyZyIsInYiLCJuIiwiY2FsbCIsInJlZXhwb3J0ZWQiLCJyZXBvcnRFcnJvcnMiLCJjb250ZXh0IiwiZGVjbGFyYXRpb24iLCJyZXBvcnQiLCJub2RlIiwic291cmNlIiwibWVzc2FnZSIsInZhbHVlIiwibWFwIiwiZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iLCJqb2luIiwiY2FwdHVyZURvYyIsImRvY1N0eWxlUGFyc2VycyIsIm1ldGFkYXRhIiwibm9kZXMiLCJzb21lIiwibGVhZGluZ0NvbW1lbnRzIiwicmFuZ2UiLCJnZXRDb21tZW50c0JlZm9yZSIsImxlbmd0aCIsImRvYyIsImVyciIsImF2YWlsYWJsZURvY1N0eWxlUGFyc2VycyIsImpzZG9jIiwiY2FwdHVyZUpzRG9jIiwidG9tZG9jIiwiY2FwdHVyZVRvbURvYyIsImNvbW1lbnRzIiwiY29tbWVudCIsInR5cGUiLCJkb2N0cmluZSIsInBhcnNlIiwidW53cmFwIiwibGluZXMiLCJpIiwibWF0Y2giLCJwdXNoIiwidHJpbSIsInN0YXR1c01hdGNoIiwiZGVzY3JpcHRpb24iLCJ0YWdzIiwidGl0bGUiLCJ0b0xvd2VyQ2FzZSIsImZvciIsImNoaWxkQ29udGV4dCIsImNhY2hlS2V5IiwiZGlnZXN0IiwiZXhwb3J0TWFwIiwic3RhdHMiLCJmcyIsInN0YXRTeW5jIiwibXRpbWUiLCJzZXQiLCJjb250ZW50IiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ0ZXN0IiwibSIsImFzdCIsImlzTW9kdWxlIiwiZG9jc3R5bGUiLCJzZXR0aW5ncyIsInN0eWxlIiwiYyIsInQiLCJuYW1lc3BhY2VzIiwicmVtb3RlUGF0aCIsInJlc29sdmUiLCJyZWxhdGl2ZSIsInJlc29sdmVJbXBvcnQiLCJycCIsImdldE5hbWVzcGFjZSIsImlkZW50aWZpZXIiLCJhZGROYW1lc3BhY2UiLCJvYmplY3QiLCJuc2ZuIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjYXB0dXJlRGVwZW5kZW5jeSIsImltcG9ydEtpbmQiLCJpbXBvcnRlZFNwZWNpZmllcnMiLCJzdXBwb3J0ZWRUeXBlcyIsImhhc0ltcG9ydGVkVHlwZSIsInNwZWNpZmllcnMiLCJzcGVjaWZpZXIiLCJpc1R5cGUiLCJhZGQiLCJwIiwiZXhpc3RpbmciLCJnZXR0ZXIiLCJ0aHVua0ZvciIsImxvYyIsIm1ha2VTb3VyY2VDb2RlIiwiaXNFc01vZHVsZUludGVyb3AiLCJ0c0NvbmZpZ0luZm8iLCJjd2QiLCJwYXJzZXJPcHRpb25zIiwidHNjb25maWdSb290RGlyIiwicHJvY2VzcyIsImdldEVudiIsImtleSIsImVudiIsInRzQ29uZmlnUGF0aCIsImpzb25UZXh0IiwidG9TdHJpbmciLCJyZXF1aXJlIiwidHNDb25maWciLCJjb25maWciLCJjb21waWxlck9wdGlvbnMiLCJlc01vZHVsZUludGVyb3AiLCJib2R5IiwiZXhwb3J0TWV0YSIsIm5zIiwicyIsImlkIiwiZGVjbGFyYXRpb25zIiwibnNvdXJjZSIsImV4cG9ydGVkIiwiaXNFc01vZHVsZUludGVyb3BUcnVlIiwiZXhwb3J0cyIsImV4cG9ydGVkTmFtZSIsImV4cHJlc3Npb24iLCJkZWNsVHlwZXMiLCJleHBvcnRlZERlY2xzIiwiZmlsdGVyIiwiZmluZCIsImRlY2wiLCJtb2R1bGVCbG9ja05vZGUiLCJuYW1lc3BhY2VEZWNsIiwicGF0dGVybiIsInByb3BlcnRpZXMiLCJlbGVtZW50cyIsImVsZW1lbnQiLCJsZWZ0IiwicGFyc2VyUGF0aCIsInRleHQiLCJTb3VyY2VDb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9vQmdCQSx1QixHQUFBQSx1QixDQXBvQmhCLHdCLHVDQUVBLG9DLG1EQUVBLDhCLDZDQUVBLGdDQUVBLGtELDZDQUNBLHNELGlE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UCxDQUNELENBSEQsTUFHTyxDQUNMO0FBQ0EsV0FBTyxJQUFJOEUsa0JBQUosQ0FBZSxFQUFFRCxJQUFGLEVBQVE3RSxHQUFSLEVBQWYsQ0FBUCxDQUNELENBQ0YiLCJmaWxlIjoiRXhwb3J0TWFwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuXG5pbXBvcnQgZG9jdHJpbmUgZnJvbSAnZG9jdHJpbmUnXG5cbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1ZydcblxuaW1wb3J0IHsgU291cmNlQ29kZSB9IGZyb20gJ2VzbGludCdcblxuaW1wb3J0IHBhcnNlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcGFyc2UnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgaXNJZ25vcmVkLCB7IGhhc1ZhbGlkRXh0ZW5zaW9uIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9pZ25vcmUnXG5cbmltcG9ydCB7IGhhc2hPYmplY3QgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2hhc2gnXG5pbXBvcnQgKiBhcyB1bmFtYmlndW91cyBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3VuYW1iaWd1b3VzJ1xuXG5pbXBvcnQgeyB0c0NvbmZpZ0xvYWRlciB9IGZyb20gJ3RzY29uZmlnLXBhdGhzL2xpYi90c2NvbmZpZy1sb2FkZXInXG5cbmltcG9ydCBpbmNsdWRlcyBmcm9tICdhcnJheS1pbmNsdWRlcydcblxubGV0IHBhcnNlQ29uZmlnRmlsZVRleHRUb0pzb25cblxuY29uc3QgbG9nID0gZGVidWcoJ2VzbGludC1wbHVnaW4taW1wb3J0OkV4cG9ydE1hcCcpXG5cbmNvbnN0IGV4cG9ydENhY2hlID0gbmV3IE1hcCgpXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydE1hcCB7XG4gIGNvbnN0cnVjdG9yKHBhdGgpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoXG4gICAgdGhpcy5uYW1lc3BhY2UgPSBuZXcgTWFwKClcbiAgICAvLyB0b2RvOiByZXN0cnVjdHVyZSB0byBrZXkgb24gcGF0aCwgdmFsdWUgaXMgcmVzb2x2ZXIgKyBtYXAgb2YgbmFtZXNcbiAgICB0aGlzLnJlZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgIC8qKlxuICAgICAqIHN0YXItZXhwb3J0c1xuICAgICAqIEB0eXBlIHtTZXR9IG9mICgpID0+IEV4cG9ydE1hcFxuICAgICAqL1xuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gbmV3IFNldCgpXG4gICAgLyoqXG4gICAgICogZGVwZW5kZW5jaWVzIG9mIHRoaXMgbW9kdWxlIHRoYXQgYXJlIG5vdCBleHBsaWNpdGx5IHJlLWV4cG9ydGVkXG4gICAgICogQHR5cGUge01hcH0gZnJvbSBwYXRoID0gKCkgPT4gRXhwb3J0TWFwXG4gICAgICovXG4gICAgdGhpcy5pbXBvcnRzID0gbmV3IE1hcCgpXG4gICAgdGhpcy5lcnJvcnMgPSBbXVxuICB9XG5cbiAgZ2V0IGhhc0RlZmF1bHQoKSB7IHJldHVybiB0aGlzLmdldCgnZGVmYXVsdCcpICE9IG51bGwgfSAvLyBzdHJvbmdlciB0aGFuIHRoaXMuaGFzXG5cbiAgZ2V0IHNpemUoKSB7XG4gICAgbGV0IHNpemUgPSB0aGlzLm5hbWVzcGFjZS5zaXplICsgdGhpcy5yZWV4cG9ydHMuc2l6ZVxuICAgIHRoaXMuZGVwZW5kZW5jaWVzLmZvckVhY2goZGVwID0+IHtcbiAgICAgIGNvbnN0IGQgPSBkZXAoKVxuICAgICAgLy8gQ0pTIC8gaWdub3JlZCBkZXBlbmRlbmNpZXMgd29uJ3QgZXhpc3QgKCM3MTcpXG4gICAgICBpZiAoZCA9PSBudWxsKSByZXR1cm5cbiAgICAgIHNpemUgKz0gZC5zaXplXG4gICAgfSlcbiAgICByZXR1cm4gc2l6ZVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGNoZWNrIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgbmFtZXMgZm9yIGV4aXN0ZW5jZVxuICAgKiBpbiB0aGUgYmFzZSBuYW1lc3BhY2UsIGJ1dCBpdCB3aWxsIGV4cGFuZCBhbGwgYGV4cG9ydCAqIGZyb20gJy4uLidgIGV4cG9ydHNcbiAgICogaWYgbm90IGZvdW5kIGluIHRoZSBleHBsaWNpdCBuYW1lc3BhY2UuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gIG5hbWVcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBgbmFtZWAgaXMgZXhwb3J0ZWQgYnkgdGhpcyBtb2R1bGUuXG4gICAqL1xuICBoYXMobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkgcmV0dXJuIHRydWVcblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChsZXQgZGVwIG9mIHRoaXMuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIGxldCBpbm5lck1hcCA9IGRlcCgpXG5cbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlXG5cbiAgICAgICAgaWYgKGlubmVyTWFwLmhhcyhuYW1lKSkgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBlbnN1cmUgdGhhdCBpbXBvcnRlZCBuYW1lIGZ1bGx5IHJlc29sdmVzLlxuICAgKiBAcGFyYW0gIHtbdHlwZV19ICBuYW1lIFtkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiB7Qm9vbGVhbn0gICAgICBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBoYXNEZWVwKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0cyA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKVxuICAgICAgICAgICwgaW1wb3J0ZWQgPSByZWV4cG9ydHMuZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4geyBmb3VuZDogdHJ1ZSwgcGF0aDogW3RoaXNdIH1cblxuICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzLCBvbmx5IGlmIG5hbWUgbWF0Y2hlc1xuICAgICAgaWYgKGltcG9ydGVkLnBhdGggPT09IHRoaXMucGF0aCAmJiByZWV4cG9ydHMubG9jYWwgPT09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlLCBwYXRoOiBbdGhpc10gfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWVwID0gaW1wb3J0ZWQuaGFzRGVlcChyZWV4cG9ydHMubG9jYWwpXG4gICAgICBkZWVwLnBhdGgudW5zaGlmdCh0aGlzKVxuXG4gICAgICByZXR1cm4gZGVlcFxuICAgIH1cblxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBmb3IgKGxldCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgbGV0IGlubmVyTWFwID0gZGVwKClcbiAgICAgICAgaWYgKGlubmVyTWFwID09IG51bGwpIHJldHVybiB7IGZvdW5kOiB0cnVlLCBwYXRoOiBbdGhpc10gfVxuICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgaWYgKCFpbm5lck1hcCkgY29udGludWVcblxuICAgICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXNcbiAgICAgICAgaWYgKGlubmVyTWFwLnBhdGggPT09IHRoaXMucGF0aCkgY29udGludWVcblxuICAgICAgICBsZXQgaW5uZXJWYWx1ZSA9IGlubmVyTWFwLmhhc0RlZXAobmFtZSlcbiAgICAgICAgaWYgKGlubmVyVmFsdWUuZm91bmQpIHtcbiAgICAgICAgICBpbm5lclZhbHVlLnBhdGgudW5zaGlmdCh0aGlzKVxuICAgICAgICAgIHJldHVybiBpbm5lclZhbHVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBmb3VuZDogZmFsc2UsIHBhdGg6IFt0aGlzXSB9XG4gIH1cblxuICBnZXQobmFtZSkge1xuICAgIGlmICh0aGlzLm5hbWVzcGFjZS5oYXMobmFtZSkpIHJldHVybiB0aGlzLm5hbWVzcGFjZS5nZXQobmFtZSlcblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0cyA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKVxuICAgICAgICAgICwgaW1wb3J0ZWQgPSByZWV4cG9ydHMuZ2V0SW1wb3J0KClcblxuICAgICAgLy8gaWYgaW1wb3J0IGlzIGlnbm9yZWQsIHJldHVybiBleHBsaWNpdCAnbnVsbCdcbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIHJlZXhwb3J0cy5sb2NhbCA9PT0gbmFtZSkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgICByZXR1cm4gaW1wb3J0ZWQuZ2V0KHJlZXhwb3J0cy5sb2NhbClcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0IGV4cG9ydHMgbXVzdCBiZSBleHBsaWNpdGx5IHJlLWV4cG9ydGVkICgjMzI4KVxuICAgIGlmIChuYW1lICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGZvciAobGV0IGRlcCBvZiB0aGlzLmRlcGVuZGVuY2llcykge1xuICAgICAgICBsZXQgaW5uZXJNYXAgPSBkZXAoKVxuICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgaWYgKCFpbm5lck1hcCkgY29udGludWVcblxuICAgICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXNcbiAgICAgICAgaWYgKGlubmVyTWFwLnBhdGggPT09IHRoaXMucGF0aCkgY29udGludWVcblxuICAgICAgICBsZXQgaW5uZXJWYWx1ZSA9IGlubmVyTWFwLmdldChuYW1lKVxuICAgICAgICBpZiAoaW5uZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaW5uZXJWYWx1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICB0aGlzLm5hbWVzcGFjZS5mb3JFYWNoKCh2LCBuKSA9PlxuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB2LCBuLCB0aGlzKSlcblxuICAgIHRoaXMucmVleHBvcnRzLmZvckVhY2goKHJlZXhwb3J0cywgbmFtZSkgPT4ge1xuICAgICAgY29uc3QgcmVleHBvcnRlZCA9IHJlZXhwb3J0cy5nZXRJbXBvcnQoKVxuICAgICAgLy8gY2FuJ3QgbG9vayB1cCBtZXRhIGZvciBpZ25vcmVkIHJlLWV4cG9ydHMgKCMzNDgpXG4gICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHJlZXhwb3J0ZWQgJiYgcmVleHBvcnRlZC5nZXQocmVleHBvcnRzLmxvY2FsKSwgbmFtZSwgdGhpcylcbiAgICB9KVxuXG4gICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4ge1xuICAgICAgY29uc3QgZCA9IGRlcCgpXG4gICAgICAvLyBDSlMgLyBpZ25vcmVkIGRlcGVuZGVuY2llcyB3b24ndCBleGlzdCAoIzcxNylcbiAgICAgIGlmIChkID09IG51bGwpIHJldHVyblxuXG4gICAgICBkLmZvckVhY2goKHYsIG4pID0+XG4gICAgICAgIG4gIT09ICdkZWZhdWx0JyAmJiBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHYsIG4sIHRoaXMpKVxuICAgIH0pXG4gIH1cblxuICAvLyB0b2RvOiBrZXlzLCB2YWx1ZXMsIGVudHJpZXM/XG5cbiAgcmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogZGVjbGFyYXRpb24uc291cmNlLFxuICAgICAgbWVzc2FnZTogYFBhcnNlIGVycm9ycyBpbiBpbXBvcnRlZCBtb2R1bGUgJyR7ZGVjbGFyYXRpb24uc291cmNlLnZhbHVlfSc6IGAgK1xuICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZSA9PiBgJHtlLm1lc3NhZ2V9ICgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pYClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsICcpfWAsXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlIGRvY3MgZnJvbSB0aGUgZmlyc3Qgbm9kZSB0aGF0IGhhcyBsZWFkaW5nIGNvbW1lbnRzXG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIC4uLm5vZGVzKSB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge31cblxuICAvLyAnc29tZScgc2hvcnQtY2lyY3VpdHMgb24gZmlyc3QgJ3RydWUnXG4gIG5vZGVzLnNvbWUobiA9PiB7XG4gICAgdHJ5IHtcblxuICAgICAgbGV0IGxlYWRpbmdDb21tZW50c1xuXG4gICAgICAvLyBuLmxlYWRpbmdDb21tZW50cyBpcyBsZWdhY3kgYGF0dGFjaENvbW1lbnRzYCBiZWhhdmlvclxuICAgICAgaWYgKCdsZWFkaW5nQ29tbWVudHMnIGluIG4pIHtcbiAgICAgICAgbGVhZGluZ0NvbW1lbnRzID0gbi5sZWFkaW5nQ29tbWVudHNcbiAgICAgIH0gZWxzZSBpZiAobi5yYW5nZSkge1xuICAgICAgICBsZWFkaW5nQ29tbWVudHMgPSBzb3VyY2UuZ2V0Q29tbWVudHNCZWZvcmUobilcbiAgICAgIH1cblxuICAgICAgaWYgKCFsZWFkaW5nQ29tbWVudHMgfHwgbGVhZGluZ0NvbW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGZvciAobGV0IG5hbWUgaW4gZG9jU3R5bGVQYXJzZXJzKSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvY1N0eWxlUGFyc2Vyc1tuYW1lXShsZWFkaW5nQ29tbWVudHMpXG4gICAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgICBtZXRhZGF0YS5kb2MgPSBkb2NcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBtZXRhZGF0YVxufVxuXG5jb25zdCBhdmFpbGFibGVEb2NTdHlsZVBhcnNlcnMgPSB7XG4gIGpzZG9jOiBjYXB0dXJlSnNEb2MsXG4gIHRvbWRvYzogY2FwdHVyZVRvbURvYyxcbn1cblxuLyoqXG4gKiBwYXJzZSBKU0RvYyBmcm9tIGxlYWRpbmcgY29tbWVudHNcbiAqIEBwYXJhbSAgey4uLlt0eXBlXX0gY29tbWVudHMgW2Rlc2NyaXB0aW9uXVxuICogQHJldHVybiB7e2RvYzogb2JqZWN0fX1cbiAqL1xuZnVuY3Rpb24gY2FwdHVyZUpzRG9jKGNvbW1lbnRzKSB7XG4gIGxldCBkb2NcblxuICAvLyBjYXB0dXJlIFhTRG9jXG4gIGNvbW1lbnRzLmZvckVhY2goY29tbWVudCA9PiB7XG4gICAgLy8gc2tpcCBub24tYmxvY2sgY29tbWVudHNcbiAgICBpZiAoY29tbWVudC50eXBlICE9PSAnQmxvY2snKSByZXR1cm5cbiAgICB0cnkge1xuICAgICAgZG9jID0gZG9jdHJpbmUucGFyc2UoY29tbWVudC52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qIGRvbid0IGNhcmUsIGZvciBub3c/IG1heWJlIGFkZCB0byBgZXJyb3JzP2AgKi9cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGRvY1xufVxuXG4vKipcbiAgKiBwYXJzZSBUb21Eb2Mgc2VjdGlvbiBmcm9tIGNvbW1lbnRzXG4gICovXG5mdW5jdGlvbiBjYXB0dXJlVG9tRG9jKGNvbW1lbnRzKSB7XG4gIC8vIGNvbGxlY3QgbGluZXMgdXAgdG8gZmlyc3QgcGFyYWdyYXBoIGJyZWFrXG4gIGNvbnN0IGxpbmVzID0gW11cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpXVxuICAgIGlmIChjb21tZW50LnZhbHVlLm1hdGNoKC9eXFxzKiQvKSkgYnJlYWtcbiAgICBsaW5lcy5wdXNoKGNvbW1lbnQudmFsdWUudHJpbSgpKVxuICB9XG5cbiAgLy8gcmV0dXJuIGRvY3RyaW5lLWxpa2Ugb2JqZWN0XG4gIGNvbnN0IHN0YXR1c01hdGNoID0gbGluZXMuam9pbignICcpLm1hdGNoKC9eKFB1YmxpY3xJbnRlcm5hbHxEZXByZWNhdGVkKTpcXHMqKC4rKS8pXG4gIGlmIChzdGF0dXNNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBkZXNjcmlwdGlvbjogc3RhdHVzTWF0Y2hbMl0sXG4gICAgICB0YWdzOiBbe1xuICAgICAgICB0aXRsZTogc3RhdHVzTWF0Y2hbMV0udG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgfV0sXG4gICAgfVxuICB9XG59XG5cbkV4cG9ydE1hcC5nZXQgPSBmdW5jdGlvbiAoc291cmNlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHBhdGggPSByZXNvbHZlKHNvdXJjZSwgY29udGV4dClcbiAgaWYgKHBhdGggPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gRXhwb3J0TWFwLmZvcihjaGlsZENvbnRleHQocGF0aCwgY29udGV4dCkpXG59XG5cbkV4cG9ydE1hcC5mb3IgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICBjb25zdCB7IHBhdGggfSA9IGNvbnRleHRcblxuICBjb25zdCBjYWNoZUtleSA9IGhhc2hPYmplY3QoY29udGV4dCkuZGlnZXN0KCdoZXgnKVxuICBsZXQgZXhwb3J0TWFwID0gZXhwb3J0Q2FjaGUuZ2V0KGNhY2hlS2V5KVxuXG4gIC8vIHJldHVybiBjYWNoZWQgaWdub3JlXG4gIGlmIChleHBvcnRNYXAgPT09IG51bGwpIHJldHVybiBudWxsXG5cbiAgY29uc3Qgc3RhdHMgPSBmcy5zdGF0U3luYyhwYXRoKVxuICBpZiAoZXhwb3J0TWFwICE9IG51bGwpIHtcbiAgICAvLyBkYXRlIGVxdWFsaXR5IGNoZWNrXG4gICAgaWYgKGV4cG9ydE1hcC5tdGltZSAtIHN0YXRzLm10aW1lID09PSAwKSB7XG4gICAgICByZXR1cm4gZXhwb3J0TWFwXG4gICAgfVxuICAgIC8vIGZ1dHVyZTogY2hlY2sgY29udGVudCBlcXVhbGl0eT9cbiAgfVxuXG4gIC8vIGNoZWNrIHZhbGlkIGV4dGVuc2lvbnMgZmlyc3RcbiAgaWYgKCFoYXNWYWxpZEV4dGVuc2lvbihwYXRoLCBjb250ZXh0KSkge1xuICAgIGV4cG9ydENhY2hlLnNldChjYWNoZUtleSwgbnVsbClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gY2hlY2sgZm9yIGFuZCBjYWNoZSBpZ25vcmVcbiAgaWYgKGlzSWdub3JlZChwYXRoLCBjb250ZXh0KSkge1xuICAgIGxvZygnaWdub3JlZCBwYXRoIGR1ZSB0byBpZ25vcmUgc2V0dGluZ3M6JywgcGF0aClcbiAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIG51bGwpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pXG5cbiAgLy8gY2hlY2sgZm9yIGFuZCBjYWNoZSB1bmFtYmlndW91cyBtb2R1bGVzXG4gIGlmICghdW5hbWJpZ3VvdXMudGVzdChjb250ZW50KSkge1xuICAgIGxvZygnaWdub3JlZCBwYXRoIGR1ZSB0byB1bmFtYmlndW91cyByZWdleDonLCBwYXRoKVxuICAgIGV4cG9ydENhY2hlLnNldChjYWNoZUtleSwgbnVsbClcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgbG9nKCdjYWNoZSBtaXNzJywgY2FjaGVLZXksICdmb3IgcGF0aCcsIHBhdGgpXG4gIGV4cG9ydE1hcCA9IEV4cG9ydE1hcC5wYXJzZShwYXRoLCBjb250ZW50LCBjb250ZXh0KVxuXG4gIC8vIGFtYmlndW91cyBtb2R1bGVzIHJldHVybiBudWxsXG4gIGlmIChleHBvcnRNYXAgPT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICBleHBvcnRNYXAubXRpbWUgPSBzdGF0cy5tdGltZVxuXG4gIGV4cG9ydENhY2hlLnNldChjYWNoZUtleSwgZXhwb3J0TWFwKVxuICByZXR1cm4gZXhwb3J0TWFwXG59XG5cblxuRXhwb3J0TWFwLnBhcnNlID0gZnVuY3Rpb24gKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpIHtcbiAgdmFyIG0gPSBuZXcgRXhwb3J0TWFwKHBhdGgpXG5cbiAgdHJ5IHtcbiAgICB2YXIgYXN0ID0gcGFyc2UocGF0aCwgY29udGVudCwgY29udGV4dClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nKCdwYXJzZSBlcnJvcjonLCBwYXRoLCBlcnIpXG4gICAgbS5lcnJvcnMucHVzaChlcnIpXG4gICAgcmV0dXJuIG0gLy8gY2FuJ3QgY29udGludWVcbiAgfVxuXG4gIGlmICghdW5hbWJpZ3VvdXMuaXNNb2R1bGUoYXN0KSkgcmV0dXJuIG51bGxcblxuICBjb25zdCBkb2NzdHlsZSA9IChjb250ZXh0LnNldHRpbmdzICYmIGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9kb2NzdHlsZSddKSB8fCBbJ2pzZG9jJ11cbiAgY29uc3QgZG9jU3R5bGVQYXJzZXJzID0ge31cbiAgZG9jc3R5bGUuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgZG9jU3R5bGVQYXJzZXJzW3N0eWxlXSA9IGF2YWlsYWJsZURvY1N0eWxlUGFyc2Vyc1tzdHlsZV1cbiAgfSlcblxuICAvLyBhdHRlbXB0IHRvIGNvbGxlY3QgbW9kdWxlIGRvY1xuICBpZiAoYXN0LmNvbW1lbnRzKSB7XG4gICAgYXN0LmNvbW1lbnRzLnNvbWUoYyA9PiB7XG4gICAgICBpZiAoYy50eXBlICE9PSAnQmxvY2snKSByZXR1cm4gZmFsc2VcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvY3RyaW5lLnBhcnNlKGMudmFsdWUsIHsgdW53cmFwOiB0cnVlIH0pXG4gICAgICAgIGlmIChkb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ21vZHVsZScpKSB7XG4gICAgICAgICAgbS5kb2MgPSBkb2NcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHsgLyogaWdub3JlICovIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpXG5cbiAgZnVuY3Rpb24gcmVtb3RlUGF0aCh2YWx1ZSkge1xuICAgIHJldHVybiByZXNvbHZlLnJlbGF0aXZlKHZhbHVlLCBwYXRoLCBjb250ZXh0LnNldHRpbmdzKVxuICB9XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydCh2YWx1ZSkge1xuICAgIGNvbnN0IHJwID0gcmVtb3RlUGF0aCh2YWx1ZSlcbiAgICBpZiAocnAgPT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gRXhwb3J0TWFwLmZvcihjaGlsZENvbnRleHQocnAsIGNvbnRleHQpKVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpIHtcbiAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGlkZW50aWZpZXIubmFtZSkpIHJldHVyblxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXNvbHZlSW1wb3J0KG5hbWVzcGFjZXMuZ2V0KGlkZW50aWZpZXIubmFtZSkpXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkTmFtZXNwYWNlKG9iamVjdCwgaWRlbnRpZmllcikge1xuICAgIGNvbnN0IG5zZm4gPSBnZXROYW1lc3BhY2UoaWRlbnRpZmllcilcbiAgICBpZiAobnNmbikge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgJ25hbWVzcGFjZScsIHsgZ2V0OiBuc2ZuIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG9iamVjdFxuICB9XG5cbiAgZnVuY3Rpb24gY2FwdHVyZURlcGVuZGVuY3koZGVjbGFyYXRpb24pIHtcbiAgICBpZiAoZGVjbGFyYXRpb24uc291cmNlID09IG51bGwpIHJldHVybiBudWxsXG4gICAgaWYgKGRlY2xhcmF0aW9uLmltcG9ydEtpbmQgPT09ICd0eXBlJykgcmV0dXJuIG51bGwgLy8gc2tpcCBGbG93IHR5cGUgaW1wb3J0c1xuICAgIGNvbnN0IGltcG9ydGVkU3BlY2lmaWVycyA9IG5ldyBTZXQoKVxuICAgIGNvbnN0IHN1cHBvcnRlZFR5cGVzID0gbmV3IFNldChbJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInLCAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJ10pXG4gICAgbGV0IGhhc0ltcG9ydGVkVHlwZSA9IGZhbHNlXG4gICAgaWYgKGRlY2xhcmF0aW9uLnNwZWNpZmllcnMpIHtcbiAgICAgIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICBjb25zdCBpc1R5cGUgPSBzcGVjaWZpZXIuaW1wb3J0S2luZCA9PT0gJ3R5cGUnXG4gICAgICAgIGhhc0ltcG9ydGVkVHlwZSA9IGhhc0ltcG9ydGVkVHlwZSB8fCBpc1R5cGVcblxuICAgICAgICBpZiAoc3VwcG9ydGVkVHlwZXMuaGFzKHNwZWNpZmllci50eXBlKSAmJiAhaXNUeXBlKSB7XG4gICAgICAgICAgaW1wb3J0ZWRTcGVjaWZpZXJzLmFkZChzcGVjaWZpZXIudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdJbXBvcnRTcGVjaWZpZXInICYmICFpc1R5cGUpIHtcbiAgICAgICAgICBpbXBvcnRlZFNwZWNpZmllcnMuYWRkKHNwZWNpZmllci5pbXBvcnRlZC5uYW1lKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIG9ubHkgRmxvdyB0eXBlcyB3ZXJlIGltcG9ydGVkXG4gICAgaWYgKGhhc0ltcG9ydGVkVHlwZSAmJiBpbXBvcnRlZFNwZWNpZmllcnMuc2l6ZSA9PT0gMCkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHAgPSByZW1vdGVQYXRoKGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSlcbiAgICBpZiAocCA9PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGV4aXN0aW5nID0gbS5pbXBvcnRzLmdldChwKVxuICAgIGlmIChleGlzdGluZyAhPSBudWxsKSByZXR1cm4gZXhpc3RpbmcuZ2V0dGVyXG5cbiAgICBjb25zdCBnZXR0ZXIgPSB0aHVua0ZvcihwLCBjb250ZXh0KVxuICAgIG0uaW1wb3J0cy5zZXQocCwge1xuICAgICAgZ2V0dGVyLFxuICAgICAgc291cmNlOiB7ICAvLyBjYXB0dXJpbmcgYWN0dWFsIG5vZGUgcmVmZXJlbmNlIGhvbGRzIGZ1bGwgQVNUIGluIG1lbW9yeSFcbiAgICAgICAgdmFsdWU6IGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSxcbiAgICAgICAgbG9jOiBkZWNsYXJhdGlvbi5zb3VyY2UubG9jLFxuICAgICAgfSxcbiAgICAgIGltcG9ydGVkU3BlY2lmaWVycyxcbiAgICB9KVxuICAgIHJldHVybiBnZXR0ZXJcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZSA9IG1ha2VTb3VyY2VDb2RlKGNvbnRlbnQsIGFzdClcblxuICBmdW5jdGlvbiBpc0VzTW9kdWxlSW50ZXJvcCgpIHtcbiAgICBjb25zdCB0c0NvbmZpZ0luZm8gPSB0c0NvbmZpZ0xvYWRlcih7XG4gICAgICBjd2Q6IGNvbnRleHQucGFyc2VyT3B0aW9ucyAmJiBjb250ZXh0LnBhcnNlck9wdGlvbnMudHNjb25maWdSb290RGlyIHx8IHByb2Nlc3MuY3dkKCksXG4gICAgICBnZXRFbnY6IChrZXkpID0+IHByb2Nlc3MuZW52W2tleV0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgaWYgKHRzQ29uZmlnSW5mby50c0NvbmZpZ1BhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBqc29uVGV4dCA9IGZzLnJlYWRGaWxlU3luYyh0c0NvbmZpZ0luZm8udHNDb25maWdQYXRoKS50b1N0cmluZygpXG4gICAgICAgIGlmICghcGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbikge1xuICAgICAgICAgIC8vIHRoaXMgaXMgYmVjYXVzZSBwcm9qZWN0cyBub3QgdXNpbmcgVHlwZVNjcmlwdCB3b24ndCBoYXZlIHR5cGVzY3JpcHQgaW5zdGFsbGVkXG4gICAgICAgICAgKHtwYXJzZUNvbmZpZ0ZpbGVUZXh0VG9Kc29ufSA9IHJlcXVpcmUoJ3R5cGVzY3JpcHQnKSlcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0c0NvbmZpZyA9IHBhcnNlQ29uZmlnRmlsZVRleHRUb0pzb24odHNDb25maWdJbmZvLnRzQ29uZmlnUGF0aCwganNvblRleHQpLmNvbmZpZ1xuICAgICAgICByZXR1cm4gdHNDb25maWcuY29tcGlsZXJPcHRpb25zLmVzTW9kdWxlSW50ZXJvcFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGFzdC5ib2R5LmZvckVhY2goZnVuY3Rpb24gKG4pIHtcbiAgICBpZiAobi50eXBlID09PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJykge1xuICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIG4pXG4gICAgICBpZiAobi5kZWNsYXJhdGlvbi50eXBlID09PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgYWRkTmFtZXNwYWNlKGV4cG9ydE1ldGEsIG4uZGVjbGFyYXRpb24pXG4gICAgICB9XG4gICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBleHBvcnRNZXRhKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJykge1xuICAgICAgY29uc3QgZ2V0dGVyID0gY2FwdHVyZURlcGVuZGVuY3kobilcbiAgICAgIGlmIChnZXR0ZXIpIG0uZGVwZW5kZW5jaWVzLmFkZChnZXR0ZXIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBjYXB0dXJlIG5hbWVzcGFjZXMgaW4gY2FzZSBvZiBsYXRlciBleHBvcnRcbiAgICBpZiAobi50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICBjYXB0dXJlRGVwZW5kZW5jeShuKVxuICAgICAgbGV0IG5zXG4gICAgICBpZiAobi5zcGVjaWZpZXJzLnNvbWUocyA9PiBzLnR5cGUgPT09ICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInICYmIChucyA9IHMpKSkge1xuICAgICAgICBuYW1lc3BhY2VzLnNldChucy5sb2NhbC5uYW1lLCBuLnNvdXJjZS52YWx1ZSlcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJykge1xuICAgICAgLy8gY2FwdHVyZSBkZWNsYXJhdGlvblxuICAgICAgaWYgKG4uZGVjbGFyYXRpb24gIT0gbnVsbCkge1xuICAgICAgICBzd2l0Y2ggKG4uZGVjbGFyYXRpb24udHlwZSkge1xuICAgICAgICAgIGNhc2UgJ0Z1bmN0aW9uRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ0NsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1R5cGVBbGlhcyc6IC8vIGZsb3d0eXBlIHdpdGggYmFiZWwtZXNsaW50IHBhcnNlclxuICAgICAgICAgIGNhc2UgJ0ludGVyZmFjZURlY2xhcmF0aW9uJzpcbiAgICAgICAgICBjYXNlICdEZWNsYXJlRnVuY3Rpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTRGVjbGFyZUZ1bmN0aW9uJzpcbiAgICAgICAgICBjYXNlICdUU0VudW1EZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNJbnRlcmZhY2VEZWNsYXJhdGlvbic6XG4gICAgICAgICAgY2FzZSAnVFNBYnN0cmFjdENsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgICAgIGNhc2UgJ1RTTW9kdWxlRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KG4uZGVjbGFyYXRpb24uaWQubmFtZSwgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgbikpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nOlxuICAgICAgICAgICAgbi5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMuZm9yRWFjaCgoZCkgPT5cbiAgICAgICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZC5pZCxcbiAgICAgICAgICAgICAgICBpZCA9PiBtLm5hbWVzcGFjZS5zZXQoaWQubmFtZSwgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgZCwgbikpKSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgbnNvdXJjZSA9IG4uc291cmNlICYmIG4uc291cmNlLnZhbHVlXG4gICAgICBuLnNwZWNpZmllcnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBjb25zdCBleHBvcnRNZXRhID0ge31cbiAgICAgICAgbGV0IGxvY2FsXG5cbiAgICAgICAgc3dpdGNoIChzLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgIGlmICghbi5zb3VyY2UpIHJldHVyblxuICAgICAgICAgICAgbG9jYWwgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRNZXRhLCAnbmFtZXNwYWNlJywge1xuICAgICAgICAgICAgICBnZXQoKSB7IHJldHVybiByZXNvbHZlSW1wb3J0KG5zb3VyY2UpIH0sXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIGNhc2UgJ0V4cG9ydFNwZWNpZmllcic6XG4gICAgICAgICAgICBpZiAoIW4uc291cmNlKSB7XG4gICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBzLmxvY2FsKSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbHNlIGZhbGxzIHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgbG9jYWwgPSBzLmxvY2FsLm5hbWVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICAvLyB0b2RvOiBKU0RvY1xuICAgICAgICBtLnJlZXhwb3J0cy5zZXQocy5leHBvcnRlZC5uYW1lLCB7IGxvY2FsLCBnZXRJbXBvcnQ6ICgpID0+IHJlc29sdmVJbXBvcnQobnNvdXJjZSkgfSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgY29uc3QgaXNFc01vZHVsZUludGVyb3BUcnVlID0gaXNFc01vZHVsZUludGVyb3AoKVxuXG4gICAgY29uc3QgZXhwb3J0cyA9IFsnVFNFeHBvcnRBc3NpZ25tZW50J11cbiAgICBpZiAoaXNFc01vZHVsZUludGVyb3BUcnVlKSB7XG4gICAgICBleHBvcnRzLnB1c2goJ1RTTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb24nKVxuICAgIH1cblxuICAgIC8vIFRoaXMgZG9lc24ndCBkZWNsYXJlIGFueXRoaW5nLCBidXQgY2hhbmdlcyB3aGF0J3MgYmVpbmcgZXhwb3J0ZWQuXG4gICAgaWYgKGluY2x1ZGVzKGV4cG9ydHMsIG4udHlwZSkpIHtcbiAgICAgIGNvbnN0IGV4cG9ydGVkTmFtZSA9IG4udHlwZSA9PT0gJ1RTTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb24nXG4gICAgICAgID8gbi5pZC5uYW1lXG4gICAgICAgIDogbi5leHByZXNzaW9uICYmIG4uZXhwcmVzc2lvbi5uYW1lIHx8IG4uZXhwcmVzc2lvbi5pZC5uYW1lXG4gICAgICBjb25zdCBkZWNsVHlwZXMgPSBbXG4gICAgICAgICdWYXJpYWJsZURlY2xhcmF0aW9uJyxcbiAgICAgICAgJ0NsYXNzRGVjbGFyYXRpb24nLFxuICAgICAgICAnVFNEZWNsYXJlRnVuY3Rpb24nLFxuICAgICAgICAnVFNFbnVtRGVjbGFyYXRpb24nLFxuICAgICAgICAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbicsXG4gICAgICAgICdUU0ludGVyZmFjZURlY2xhcmF0aW9uJyxcbiAgICAgICAgJ1RTQWJzdHJhY3RDbGFzc0RlY2xhcmF0aW9uJyxcbiAgICAgICAgJ1RTTW9kdWxlRGVjbGFyYXRpb24nLFxuICAgICAgXVxuICAgICAgY29uc3QgZXhwb3J0ZWREZWNscyA9IGFzdC5ib2R5LmZpbHRlcigoeyB0eXBlLCBpZCwgZGVjbGFyYXRpb25zIH0pID0+IGluY2x1ZGVzKGRlY2xUeXBlcywgdHlwZSkgJiYgKFxuICAgICAgICAoaWQgJiYgaWQubmFtZSA9PT0gZXhwb3J0ZWROYW1lKSB8fCAoZGVjbGFyYXRpb25zICYmIGRlY2xhcmF0aW9ucy5maW5kKChkKSA9PiBkLmlkLm5hbWUgPT09IGV4cG9ydGVkTmFtZSkpXG4gICAgICApKVxuICAgICAgaWYgKGV4cG9ydGVkRGVjbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIEV4cG9ydCBpcyBub3QgcmVmZXJlbmNpbmcgYW55IGxvY2FsIGRlY2xhcmF0aW9uLCBtdXN0IGJlIHJlLWV4cG9ydGluZ1xuICAgICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBuKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoaXNFc01vZHVsZUludGVyb3BUcnVlKSB7XG4gICAgICAgIG0ubmFtZXNwYWNlLnNldCgnZGVmYXVsdCcsIHt9KVxuICAgICAgfVxuICAgICAgZXhwb3J0ZWREZWNscy5mb3JFYWNoKChkZWNsKSA9PiB7XG4gICAgICAgIGlmIChkZWNsLnR5cGUgPT09ICdUU01vZHVsZURlY2xhcmF0aW9uJykge1xuICAgICAgICAgIGlmIChkZWNsLmJvZHkgJiYgZGVjbC5ib2R5LnR5cGUgPT09ICdUU01vZHVsZURlY2xhcmF0aW9uJykge1xuICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KGRlY2wuYm9keS5pZC5uYW1lLCBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBkZWNsLmJvZHkpKVxuICAgICAgICAgIH0gZWxzZSBpZiAoZGVjbC5ib2R5ICYmIGRlY2wuYm9keS5ib2R5KSB7XG4gICAgICAgICAgICBkZWNsLmJvZHkuYm9keS5mb3JFYWNoKChtb2R1bGVCbG9ja05vZGUpID0+IHtcbiAgICAgICAgICAgICAgLy8gRXhwb3J0LWFzc2lnbm1lbnQgZXhwb3J0cyBhbGwgbWVtYmVycyBpbiB0aGUgbmFtZXNwYWNlLFxuICAgICAgICAgICAgICAvLyBleHBsaWNpdGx5IGV4cG9ydGVkIG9yIG5vdC5cbiAgICAgICAgICAgICAgY29uc3QgbmFtZXNwYWNlRGVjbCA9IG1vZHVsZUJsb2NrTm9kZS50eXBlID09PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicgP1xuICAgICAgICAgICAgICAgIG1vZHVsZUJsb2NrTm9kZS5kZWNsYXJhdGlvbiA6XG4gICAgICAgICAgICAgICAgbW9kdWxlQmxvY2tOb2RlXG5cbiAgICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2VEZWNsKSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCBjYW4gY2hlY2sgdGhpcyBmb3IgdXM7IHdlIG5lZWRuJ3RcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lc3BhY2VEZWNsLnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0aW9uJykge1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjZURlY2wuZGVjbGFyYXRpb25zLmZvckVhY2goKGQpID0+XG4gICAgICAgICAgICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkLmlkLCAoaWQpID0+IG0ubmFtZXNwYWNlLnNldChcbiAgICAgICAgICAgICAgICAgICAgaWQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgZGVjbCwgbmFtZXNwYWNlRGVjbCwgbW9kdWxlQmxvY2tOb2RlKVxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KFxuICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlRGVjbC5pZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgbW9kdWxlQmxvY2tOb2RlKSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXhwb3J0IGFzIGRlZmF1bHRcbiAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBkZWNsKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG1cbn1cblxuLyoqXG4gKiBUaGUgY3JlYXRpb24gb2YgdGhpcyBjbG9zdXJlIGlzIGlzb2xhdGVkIGZyb20gb3RoZXIgc2NvcGVzXG4gKiB0byBhdm9pZCBvdmVyLXJldGVudGlvbiBvZiB1bnJlbGF0ZWQgdmFyaWFibGVzLCB3aGljaCBoYXNcbiAqIGNhdXNlZCBtZW1vcnkgbGVha3MuIFNlZSAjMTI2Ni5cbiAqL1xuZnVuY3Rpb24gdGh1bmtGb3IocCwgY29udGV4dCkge1xuICByZXR1cm4gKCkgPT4gRXhwb3J0TWFwLmZvcihjaGlsZENvbnRleHQocCwgY29udGV4dCkpXG59XG5cblxuLyoqXG4gKiBUcmF2ZXJzZSBhIHBhdHRlcm4vaWRlbnRpZmllciBub2RlLCBjYWxsaW5nICdjYWxsYmFjaydcbiAqIGZvciBlYWNoIGxlYWYgaWRlbnRpZmllci5cbiAqIEBwYXJhbSAge25vZGV9ICAgcGF0dGVyblxuICogQHBhcmFtICB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUocGF0dGVybiwgY2FsbGJhY2spIHtcbiAgc3dpdGNoIChwYXR0ZXJuLnR5cGUpIHtcbiAgICBjYXNlICdJZGVudGlmaWVyJzogLy8gYmFzZSBjYXNlXG4gICAgICBjYWxsYmFjayhwYXR0ZXJuKVxuICAgICAgYnJlYWtcblxuICAgIGNhc2UgJ09iamVjdFBhdHRlcm4nOlxuICAgICAgcGF0dGVybi5wcm9wZXJ0aWVzLmZvckVhY2gocCA9PiB7XG4gICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKHAudmFsdWUsIGNhbGxiYWNrKVxuICAgICAgfSlcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlICdBcnJheVBhdHRlcm4nOlxuICAgICAgcGF0dGVybi5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50ID09IG51bGwpIHJldHVyblxuICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShlbGVtZW50LCBjYWxsYmFjaylcbiAgICAgIH0pXG4gICAgICBicmVha1xuXG4gICAgY2FzZSAnQXNzaWdubWVudFBhdHRlcm4nOlxuICAgICAgY2FsbGJhY2socGF0dGVybi5sZWZ0KVxuICAgICAgYnJlYWtcbiAgfVxufVxuXG4vKipcbiAqIGRvbid0IGhvbGQgZnVsbCBjb250ZXh0IG9iamVjdCBpbiBtZW1vcnksIGp1c3QgZ3JhYiB3aGF0IHdlIG5lZWQuXG4gKi9cbmZ1bmN0aW9uIGNoaWxkQ29udGV4dChwYXRoLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgc2V0dGluZ3MsIHBhcnNlck9wdGlvbnMsIHBhcnNlclBhdGggfSA9IGNvbnRleHRcbiAgcmV0dXJuIHtcbiAgICBzZXR0aW5ncyxcbiAgICBwYXJzZXJPcHRpb25zLFxuICAgIHBhcnNlclBhdGgsXG4gICAgcGF0aCxcbiAgfVxufVxuXG5cbi8qKlxuICogc29tZXRpbWVzIGxlZ2FjeSBzdXBwb3J0IGlzbid0IF90aGF0XyBoYXJkLi4uIHJpZ2h0P1xuICovXG5mdW5jdGlvbiBtYWtlU291cmNlQ29kZSh0ZXh0LCBhc3QpIHtcbiAgaWYgKFNvdXJjZUNvZGUubGVuZ3RoID4gMSkge1xuICAgIC8vIEVTTGludCAzXG4gICAgcmV0dXJuIG5ldyBTb3VyY2VDb2RlKHRleHQsIGFzdClcbiAgfSBlbHNlIHtcbiAgICAvLyBFU0xpbnQgNCwgNVxuICAgIHJldHVybiBuZXcgU291cmNlQ29kZSh7IHRleHQsIGFzdCB9KVxuICB9XG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9FeHBvcnRNYXAuanMiXSwibmFtZXMiOlsicmVjdXJzaXZlUGF0dGVybkNhcHR1cmUiLCJ1bmFtYmlndW91cyIsInBhcnNlQ29uZmlnRmlsZVRleHRUb0pzb24iLCJsb2ciLCJleHBvcnRDYWNoZSIsIk1hcCIsInRzQ29uZmlnQ2FjaGUiLCJFeHBvcnRNYXAiLCJjb25zdHJ1Y3RvciIsInBhdGgiLCJuYW1lc3BhY2UiLCJyZWV4cG9ydHMiLCJkZXBlbmRlbmNpZXMiLCJTZXQiLCJpbXBvcnRzIiwiZXJyb3JzIiwiaGFzRGVmYXVsdCIsImdldCIsInNpemUiLCJmb3JFYWNoIiwiZGVwIiwiZCIsImhhcyIsIm5hbWUiLCJpbm5lck1hcCIsImhhc0RlZXAiLCJmb3VuZCIsImltcG9ydGVkIiwiZ2V0SW1wb3J0IiwibG9jYWwiLCJkZWVwIiwidW5zaGlmdCIsImlubmVyVmFsdWUiLCJ1bmRlZmluZWQiLCJjYWxsYmFjayIsInRoaXNBcmciLCJ2IiwibiIsImNhbGwiLCJyZWV4cG9ydGVkIiwicmVwb3J0RXJyb3JzIiwiY29udGV4dCIsImRlY2xhcmF0aW9uIiwicmVwb3J0Iiwibm9kZSIsInNvdXJjZSIsIm1lc3NhZ2UiLCJ2YWx1ZSIsIm1hcCIsImUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwiam9pbiIsImNhcHR1cmVEb2MiLCJkb2NTdHlsZVBhcnNlcnMiLCJtZXRhZGF0YSIsIm5vZGVzIiwic29tZSIsImxlYWRpbmdDb21tZW50cyIsInJhbmdlIiwiZ2V0Q29tbWVudHNCZWZvcmUiLCJsZW5ndGgiLCJkb2MiLCJlcnIiLCJhdmFpbGFibGVEb2NTdHlsZVBhcnNlcnMiLCJqc2RvYyIsImNhcHR1cmVKc0RvYyIsInRvbWRvYyIsImNhcHR1cmVUb21Eb2MiLCJjb21tZW50cyIsImNvbW1lbnQiLCJ0eXBlIiwiZG9jdHJpbmUiLCJwYXJzZSIsInVud3JhcCIsImxpbmVzIiwiaSIsIm1hdGNoIiwicHVzaCIsInRyaW0iLCJzdGF0dXNNYXRjaCIsImRlc2NyaXB0aW9uIiwidGFncyIsInRpdGxlIiwidG9Mb3dlckNhc2UiLCJzdXBwb3J0ZWRJbXBvcnRUeXBlcyIsImZvciIsImNoaWxkQ29udGV4dCIsImNhY2hlS2V5IiwiZGlnZXN0IiwiZXhwb3J0TWFwIiwic3RhdHMiLCJmcyIsInN0YXRTeW5jIiwibXRpbWUiLCJzZXQiLCJjb250ZW50IiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ0ZXN0IiwibSIsImFzdCIsImlzTW9kdWxlIiwiZG9jc3R5bGUiLCJzZXR0aW5ncyIsInN0eWxlIiwiYyIsInQiLCJuYW1lc3BhY2VzIiwicmVtb3RlUGF0aCIsInJlc29sdmUiLCJyZWxhdGl2ZSIsInJlc29sdmVJbXBvcnQiLCJycCIsImdldE5hbWVzcGFjZSIsImlkZW50aWZpZXIiLCJhZGROYW1lc3BhY2UiLCJvYmplY3QiLCJuc2ZuIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjYXB0dXJlRGVwZW5kZW5jeSIsImlzT25seUltcG9ydGluZ1R5cGVzIiwiaW1wb3J0ZWRTcGVjaWZpZXJzIiwicCIsImRlY2xhcmF0aW9uTWV0YWRhdGEiLCJsb2MiLCJleGlzdGluZyIsImRlY2xhcmF0aW9ucyIsImFkZCIsImdldHRlciIsInRodW5rRm9yIiwibWFrZVNvdXJjZUNvZGUiLCJyZWFkVHNDb25maWciLCJ0c0NvbmZpZ0luZm8iLCJjd2QiLCJwYXJzZXJPcHRpb25zIiwidHNjb25maWdSb290RGlyIiwicHJvY2VzcyIsImdldEVudiIsImtleSIsImVudiIsInRzQ29uZmlnUGF0aCIsImpzb25UZXh0IiwidG9TdHJpbmciLCJyZXF1aXJlIiwiY29uZmlnIiwiaXNFc01vZHVsZUludGVyb3AiLCJ0c0NvbmZpZyIsImNvbXBpbGVyT3B0aW9ucyIsImVzTW9kdWxlSW50ZXJvcCIsImJvZHkiLCJleHBvcnRNZXRhIiwiZXhwb3J0S2luZCIsImRlY2xhcmF0aW9uSXNUeXBlIiwiaW1wb3J0S2luZCIsInNwZWNpZmllcnNPbmx5SW1wb3J0aW5nVHlwZXMiLCJzcGVjaWZpZXJzIiwic3BlY2lmaWVyIiwibnMiLCJmaW5kIiwicyIsImlkIiwibnNvdXJjZSIsImV4cG9ydGVkIiwiaXNFc01vZHVsZUludGVyb3BUcnVlIiwiZXhwb3J0cyIsImV4cG9ydGVkTmFtZSIsImV4cHJlc3Npb24iLCJkZWNsVHlwZXMiLCJleHBvcnRlZERlY2xzIiwiZmlsdGVyIiwiZGVjbCIsIm1vZHVsZUJsb2NrTm9kZSIsIm5hbWVzcGFjZURlY2wiLCJwYXR0ZXJuIiwicHJvcGVydGllcyIsImFyZ3VtZW50IiwiZWxlbWVudHMiLCJlbGVtZW50IiwibGVmdCIsInBhcnNlclBhdGgiLCJ0ZXh0IiwiU291cmNlQ29kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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LENBSEQsTUFHTyxDQUNMO0FBQ0EsV0FBTyxJQUFJa0Ysa0JBQUosQ0FBZSxFQUFFRCxJQUFGLEVBQVFqRixHQUFSLEVBQWYsQ0FBUCxDQUNELENBQ0YiLCJmaWxlIjoiRXhwb3J0TWFwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcblxuaW1wb3J0IGRvY3RyaW5lIGZyb20gJ2RvY3RyaW5lJztcblxuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuaW1wb3J0IHsgU291cmNlQ29kZSB9IGZyb20gJ2VzbGludCc7XG5cbmltcG9ydCBwYXJzZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3BhcnNlJztcbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSc7XG5pbXBvcnQgaXNJZ25vcmVkLCB7IGhhc1ZhbGlkRXh0ZW5zaW9uIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9pZ25vcmUnO1xuXG5pbXBvcnQgeyBoYXNoT2JqZWN0IH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9oYXNoJztcbmltcG9ydCAqIGFzIHVuYW1iaWd1b3VzIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvdW5hbWJpZ3VvdXMnO1xuXG5pbXBvcnQgeyB0c0NvbmZpZ0xvYWRlciB9IGZyb20gJ3RzY29uZmlnLXBhdGhzL2xpYi90c2NvbmZpZy1sb2FkZXInO1xuXG5pbXBvcnQgaW5jbHVkZXMgZnJvbSAnYXJyYXktaW5jbHVkZXMnO1xuXG5sZXQgcGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbjtcblxuY29uc3QgbG9nID0gZGVidWcoJ2VzbGludC1wbHVnaW4taW1wb3J0OkV4cG9ydE1hcCcpO1xuXG5jb25zdCBleHBvcnRDYWNoZSA9IG5ldyBNYXAoKTtcbmNvbnN0IHRzQ29uZmlnQ2FjaGUgPSBuZXcgTWFwKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydE1hcCB7XG4gIGNvbnN0cnVjdG9yKHBhdGgpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbmV3IE1hcCgpO1xuICAgIC8vIHRvZG86IHJlc3RydWN0dXJlIHRvIGtleSBvbiBwYXRoLCB2YWx1ZSBpcyByZXNvbHZlciArIG1hcCBvZiBuYW1lc1xuICAgIHRoaXMucmVleHBvcnRzID0gbmV3IE1hcCgpO1xuICAgIC8qKlxuICAgICAqIHN0YXItZXhwb3J0c1xuICAgICAqIEB0eXBlIHtTZXR9IG9mICgpID0+IEV4cG9ydE1hcFxuICAgICAqL1xuICAgIHRoaXMuZGVwZW5kZW5jaWVzID0gbmV3IFNldCgpO1xuICAgIC8qKlxuICAgICAqIGRlcGVuZGVuY2llcyBvZiB0aGlzIG1vZHVsZSB0aGF0IGFyZSBub3QgZXhwbGljaXRseSByZS1leHBvcnRlZFxuICAgICAqIEB0eXBlIHtNYXB9IGZyb20gcGF0aCA9ICgpID0+IEV4cG9ydE1hcFxuICAgICAqL1xuICAgIHRoaXMuaW1wb3J0cyA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xuICB9XG5cbiAgZ2V0IGhhc0RlZmF1bHQoKSB7IHJldHVybiB0aGlzLmdldCgnZGVmYXVsdCcpICE9IG51bGw7IH0gLy8gc3Ryb25nZXIgdGhhbiB0aGlzLmhhc1xuXG4gIGdldCBzaXplKCkge1xuICAgIGxldCBzaXplID0gdGhpcy5uYW1lc3BhY2Uuc2l6ZSArIHRoaXMucmVleHBvcnRzLnNpemU7XG4gICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4ge1xuICAgICAgY29uc3QgZCA9IGRlcCgpO1xuICAgICAgLy8gQ0pTIC8gaWdub3JlZCBkZXBlbmRlbmNpZXMgd29uJ3QgZXhpc3QgKCM3MTcpXG4gICAgICBpZiAoZCA9PSBudWxsKSByZXR1cm47XG4gICAgICBzaXplICs9IGQuc2l6ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBjaGVjayBleHBsaWNpdGx5IHJlLWV4cG9ydGVkIG5hbWVzIGZvciBleGlzdGVuY2VcbiAgICogaW4gdGhlIGJhc2UgbmFtZXNwYWNlLCBidXQgaXQgd2lsbCBleHBhbmQgYWxsIGBleHBvcnQgKiBmcm9tICcuLi4nYCBleHBvcnRzXG4gICAqIGlmIG5vdCBmb3VuZCBpbiB0aGUgZXhwbGljaXQgbmFtZXNwYWNlLlxuICAgKiBAcGFyYW0gIHtzdHJpbmd9ICBuYW1lXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgYG5hbWVgIGlzIGV4cG9ydGVkIGJ5IHRoaXMgbW9kdWxlLlxuICAgKi9cbiAgaGFzKG5hbWUpIHtcbiAgICBpZiAodGhpcy5uYW1lc3BhY2UuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodGhpcy5yZWV4cG9ydHMuaGFzKG5hbWUpKSByZXR1cm4gdHJ1ZTtcblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgY29uc3QgaW5uZXJNYXAgPSBkZXAoKTtcblxuICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgaWYgKCFpbm5lck1hcCkgY29udGludWU7XG5cbiAgICAgICAgaWYgKGlubmVyTWFwLmhhcyhuYW1lKSkgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIGVuc3VyZSB0aGF0IGltcG9ydGVkIG5hbWUgZnVsbHkgcmVzb2x2ZXMuXG4gICAqIEBwYXJhbSAge3N0cmluZ30gbmFtZVxuICAgKiBAcmV0dXJuIHt7IGZvdW5kOiBib29sZWFuLCBwYXRoOiBFeHBvcnRNYXBbXSB9fVxuICAgKi9cbiAgaGFzRGVlcChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9O1xuXG4gICAgaWYgKHRoaXMucmVleHBvcnRzLmhhcyhuYW1lKSkge1xuICAgICAgY29uc3QgcmVleHBvcnRzID0gdGhpcy5yZWV4cG9ydHMuZ2V0KG5hbWUpO1xuICAgICAgY29uc3QgaW1wb3J0ZWQgPSByZWV4cG9ydHMuZ2V0SW1wb3J0KCk7XG5cbiAgICAgIC8vIGlmIGltcG9ydCBpcyBpZ25vcmVkLCByZXR1cm4gZXhwbGljaXQgJ251bGwnXG4gICAgICBpZiAoaW1wb3J0ZWQgPT0gbnVsbCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9O1xuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIHJlZXhwb3J0cy5sb2NhbCA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4geyBmb3VuZDogZmFsc2UsIHBhdGg6IFt0aGlzXSB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWVwID0gaW1wb3J0ZWQuaGFzRGVlcChyZWV4cG9ydHMubG9jYWwpO1xuICAgICAgZGVlcC5wYXRoLnVuc2hpZnQodGhpcyk7XG5cbiAgICAgIHJldHVybiBkZWVwO1xuICAgIH1cblxuXG4gICAgLy8gZGVmYXVsdCBleHBvcnRzIG11c3QgYmUgZXhwbGljaXRseSByZS1leHBvcnRlZCAoIzMyOClcbiAgICBpZiAobmFtZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiB0aGlzLmRlcGVuZGVuY2llcykge1xuICAgICAgICBjb25zdCBpbm5lck1hcCA9IGRlcCgpO1xuICAgICAgICBpZiAoaW5uZXJNYXAgPT0gbnVsbCkgcmV0dXJuIHsgZm91bmQ6IHRydWUsIHBhdGg6IFt0aGlzXSB9O1xuICAgICAgICAvLyB0b2RvOiByZXBvcnQgYXMgdW5yZXNvbHZlZD9cbiAgICAgICAgaWYgKCFpbm5lck1hcCkgY29udGludWU7XG5cbiAgICAgICAgLy8gc2FmZWd1YXJkIGFnYWluc3QgY3ljbGVzXG4gICAgICAgIGlmIChpbm5lck1hcC5wYXRoID09PSB0aGlzLnBhdGgpIGNvbnRpbnVlO1xuXG4gICAgICAgIGNvbnN0IGlubmVyVmFsdWUgPSBpbm5lck1hcC5oYXNEZWVwKG5hbWUpO1xuICAgICAgICBpZiAoaW5uZXJWYWx1ZS5mb3VuZCkge1xuICAgICAgICAgIGlubmVyVmFsdWUucGF0aC51bnNoaWZ0KHRoaXMpO1xuICAgICAgICAgIHJldHVybiBpbm5lclZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZm91bmQ6IGZhbHNlLCBwYXRoOiBbdGhpc10gfTtcbiAgfVxuXG4gIGdldChuYW1lKSB7XG4gICAgaWYgKHRoaXMubmFtZXNwYWNlLmhhcyhuYW1lKSkgcmV0dXJuIHRoaXMubmFtZXNwYWNlLmdldChuYW1lKTtcblxuICAgIGlmICh0aGlzLnJlZXhwb3J0cy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHJlZXhwb3J0cyA9IHRoaXMucmVleHBvcnRzLmdldChuYW1lKTtcbiAgICAgIGNvbnN0IGltcG9ydGVkID0gcmVleHBvcnRzLmdldEltcG9ydCgpO1xuXG4gICAgICAvLyBpZiBpbXBvcnQgaXMgaWdub3JlZCwgcmV0dXJuIGV4cGxpY2l0ICdudWxsJ1xuICAgICAgaWYgKGltcG9ydGVkID09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgICAvLyBzYWZlZ3VhcmQgYWdhaW5zdCBjeWNsZXMsIG9ubHkgaWYgbmFtZSBtYXRjaGVzXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gdGhpcy5wYXRoICYmIHJlZXhwb3J0cy5sb2NhbCA9PT0gbmFtZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgcmV0dXJuIGltcG9ydGVkLmdldChyZWV4cG9ydHMubG9jYWwpO1xuICAgIH1cblxuICAgIC8vIGRlZmF1bHQgZXhwb3J0cyBtdXN0IGJlIGV4cGxpY2l0bHkgcmUtZXhwb3J0ZWQgKCMzMjgpXG4gICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgY29uc3QgaW5uZXJNYXAgPSBkZXAoKTtcbiAgICAgICAgLy8gdG9kbzogcmVwb3J0IGFzIHVucmVzb2x2ZWQ/XG4gICAgICAgIGlmICghaW5uZXJNYXApIGNvbnRpbnVlO1xuXG4gICAgICAgIC8vIHNhZmVndWFyZCBhZ2FpbnN0IGN5Y2xlc1xuICAgICAgICBpZiAoaW5uZXJNYXAucGF0aCA9PT0gdGhpcy5wYXRoKSBjb250aW51ZTtcblxuICAgICAgICBjb25zdCBpbm5lclZhbHVlID0gaW5uZXJNYXAuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAoaW5uZXJWYWx1ZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaW5uZXJWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZykge1xuICAgIHRoaXMubmFtZXNwYWNlLmZvckVhY2goKHYsIG4pID0+XG4gICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIHYsIG4sIHRoaXMpKTtcblxuICAgIHRoaXMucmVleHBvcnRzLmZvckVhY2goKHJlZXhwb3J0cywgbmFtZSkgPT4ge1xuICAgICAgY29uc3QgcmVleHBvcnRlZCA9IHJlZXhwb3J0cy5nZXRJbXBvcnQoKTtcbiAgICAgIC8vIGNhbid0IGxvb2sgdXAgbWV0YSBmb3IgaWdub3JlZCByZS1leHBvcnRzICgjMzQ4KVxuICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCByZWV4cG9ydGVkICYmIHJlZXhwb3J0ZWQuZ2V0KHJlZXhwb3J0cy5sb2NhbCksIG5hbWUsIHRoaXMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBlbmRlbmNpZXMuZm9yRWFjaChkZXAgPT4ge1xuICAgICAgY29uc3QgZCA9IGRlcCgpO1xuICAgICAgLy8gQ0pTIC8gaWdub3JlZCBkZXBlbmRlbmNpZXMgd29uJ3QgZXhpc3QgKCM3MTcpXG4gICAgICBpZiAoZCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgIGQuZm9yRWFjaCgodiwgbikgPT5cbiAgICAgICAgbiAhPT0gJ2RlZmF1bHQnICYmIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdiwgbiwgdGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gdG9kbzoga2V5cywgdmFsdWVzLCBlbnRyaWVzP1xuXG4gIHJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbikge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIG5vZGU6IGRlY2xhcmF0aW9uLnNvdXJjZSxcbiAgICAgIG1lc3NhZ2U6IGBQYXJzZSBlcnJvcnMgaW4gaW1wb3J0ZWQgbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nOiBgICtcbiAgICAgICAgICAgICAgICAgIGAke3RoaXMuZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoZSA9PiBgJHtlLm1lc3NhZ2V9ICgke2UubGluZU51bWJlcn06JHtlLmNvbHVtbn0pYClcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJyl9YCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIHBhcnNlIGRvY3MgZnJvbSB0aGUgZmlyc3Qgbm9kZSB0aGF0IGhhcyBsZWFkaW5nIGNvbW1lbnRzXG4gKi9cbmZ1bmN0aW9uIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIC4uLm5vZGVzKSB7XG4gIGNvbnN0IG1ldGFkYXRhID0ge307XG5cbiAgLy8gJ3NvbWUnIHNob3J0LWNpcmN1aXRzIG9uIGZpcnN0ICd0cnVlJ1xuICBub2Rlcy5zb21lKG4gPT4ge1xuICAgIHRyeSB7XG5cbiAgICAgIGxldCBsZWFkaW5nQ29tbWVudHM7XG5cbiAgICAgIC8vIG4ubGVhZGluZ0NvbW1lbnRzIGlzIGxlZ2FjeSBgYXR0YWNoQ29tbWVudHNgIGJlaGF2aW9yXG4gICAgICBpZiAoJ2xlYWRpbmdDb21tZW50cycgaW4gbikge1xuICAgICAgICBsZWFkaW5nQ29tbWVudHMgPSBuLmxlYWRpbmdDb21tZW50cztcbiAgICAgIH0gZWxzZSBpZiAobi5yYW5nZSkge1xuICAgICAgICBsZWFkaW5nQ29tbWVudHMgPSBzb3VyY2UuZ2V0Q29tbWVudHNCZWZvcmUobik7XG4gICAgICB9XG5cbiAgICAgIGlmICghbGVhZGluZ0NvbW1lbnRzIHx8IGxlYWRpbmdDb21tZW50cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcblxuICAgICAgZm9yIChjb25zdCBuYW1lIGluIGRvY1N0eWxlUGFyc2Vycykge1xuICAgICAgICBjb25zdCBkb2MgPSBkb2NTdHlsZVBhcnNlcnNbbmFtZV0obGVhZGluZ0NvbW1lbnRzKTtcbiAgICAgICAgaWYgKGRvYykge1xuICAgICAgICAgIG1ldGFkYXRhLmRvYyA9IGRvYztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBtZXRhZGF0YTtcbn1cblxuY29uc3QgYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzID0ge1xuICBqc2RvYzogY2FwdHVyZUpzRG9jLFxuICB0b21kb2M6IGNhcHR1cmVUb21Eb2MsXG59O1xuXG4vKipcbiAqIHBhcnNlIEpTRG9jIGZyb20gbGVhZGluZyBjb21tZW50c1xuICogQHBhcmFtIHtvYmplY3RbXX0gY29tbWVudHNcbiAqIEByZXR1cm4ge3sgZG9jOiBvYmplY3QgfX1cbiAqL1xuZnVuY3Rpb24gY2FwdHVyZUpzRG9jKGNvbW1lbnRzKSB7XG4gIGxldCBkb2M7XG5cbiAgLy8gY2FwdHVyZSBYU0RvY1xuICBjb21tZW50cy5mb3JFYWNoKGNvbW1lbnQgPT4ge1xuICAgIC8vIHNraXAgbm9uLWJsb2NrIGNvbW1lbnRzXG4gICAgaWYgKGNvbW1lbnQudHlwZSAhPT0gJ0Jsb2NrJykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBkb2MgPSBkb2N0cmluZS5wYXJzZShjb21tZW50LnZhbHVlLCB7IHVud3JhcDogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qIGRvbid0IGNhcmUsIGZvciBub3c/IG1heWJlIGFkZCB0byBgZXJyb3JzP2AgKi9cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBkb2M7XG59XG5cbi8qKlxuICAqIHBhcnNlIFRvbURvYyBzZWN0aW9uIGZyb20gY29tbWVudHNcbiAgKi9cbmZ1bmN0aW9uIGNhcHR1cmVUb21Eb2MoY29tbWVudHMpIHtcbiAgLy8gY29sbGVjdCBsaW5lcyB1cCB0byBmaXJzdCBwYXJhZ3JhcGggYnJlYWtcbiAgY29uc3QgbGluZXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb21tZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpXTtcbiAgICBpZiAoY29tbWVudC52YWx1ZS5tYXRjaCgvXlxccyokLykpIGJyZWFrO1xuICAgIGxpbmVzLnB1c2goY29tbWVudC52YWx1ZS50cmltKCkpO1xuICB9XG5cbiAgLy8gcmV0dXJuIGRvY3RyaW5lLWxpa2Ugb2JqZWN0XG4gIGNvbnN0IHN0YXR1c01hdGNoID0gbGluZXMuam9pbignICcpLm1hdGNoKC9eKFB1YmxpY3xJbnRlcm5hbHxEZXByZWNhdGVkKTpcXHMqKC4rKS8pO1xuICBpZiAoc3RhdHVzTWF0Y2gpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVzY3JpcHRpb246IHN0YXR1c01hdGNoWzJdLFxuICAgICAgdGFnczogW3tcbiAgICAgICAgdGl0bGU6IHN0YXR1c01hdGNoWzFdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdGF0dXNNYXRjaFsyXSxcbiAgICAgIH1dLFxuICAgIH07XG4gIH1cbn1cblxuY29uc3Qgc3VwcG9ydGVkSW1wb3J0VHlwZXMgPSBuZXcgU2V0KFsnSW1wb3J0RGVmYXVsdFNwZWNpZmllcicsICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInXSk7XG5cbkV4cG9ydE1hcC5nZXQgPSBmdW5jdGlvbiAoc291cmNlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHBhdGggPSByZXNvbHZlKHNvdXJjZSwgY29udGV4dCk7XG4gIGlmIChwYXRoID09IG51bGwpIHJldHVybiBudWxsO1xuXG4gIHJldHVybiBFeHBvcnRNYXAuZm9yKGNoaWxkQ29udGV4dChwYXRoLCBjb250ZXh0KSk7XG59O1xuXG5FeHBvcnRNYXAuZm9yID0gZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgY29uc3QgeyBwYXRoIH0gPSBjb250ZXh0O1xuXG4gIGNvbnN0IGNhY2hlS2V5ID0gaGFzaE9iamVjdChjb250ZXh0KS5kaWdlc3QoJ2hleCcpO1xuICBsZXQgZXhwb3J0TWFwID0gZXhwb3J0Q2FjaGUuZ2V0KGNhY2hlS2V5KTtcblxuICAvLyByZXR1cm4gY2FjaGVkIGlnbm9yZVxuICBpZiAoZXhwb3J0TWFwID09PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBzdGF0cyA9IGZzLnN0YXRTeW5jKHBhdGgpO1xuICBpZiAoZXhwb3J0TWFwICE9IG51bGwpIHtcbiAgICAvLyBkYXRlIGVxdWFsaXR5IGNoZWNrXG4gICAgaWYgKGV4cG9ydE1hcC5tdGltZSAtIHN0YXRzLm10aW1lID09PSAwKSB7XG4gICAgICByZXR1cm4gZXhwb3J0TWFwO1xuICAgIH1cbiAgICAvLyBmdXR1cmU6IGNoZWNrIGNvbnRlbnQgZXF1YWxpdHk/XG4gIH1cblxuICAvLyBjaGVjayB2YWxpZCBleHRlbnNpb25zIGZpcnN0XG4gIGlmICghaGFzVmFsaWRFeHRlbnNpb24ocGF0aCwgY29udGV4dCkpIHtcbiAgICBleHBvcnRDYWNoZS5zZXQoY2FjaGVLZXksIG51bGwpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gY2hlY2sgZm9yIGFuZCBjYWNoZSBpZ25vcmVcbiAgaWYgKGlzSWdub3JlZChwYXRoLCBjb250ZXh0KSkge1xuICAgIGxvZygnaWdub3JlZCBwYXRoIGR1ZSB0byBpZ25vcmUgc2V0dGluZ3M6JywgcGF0aCk7XG4gICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBudWxsKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCwgeyBlbmNvZGluZzogJ3V0ZjgnIH0pO1xuXG4gIC8vIGNoZWNrIGZvciBhbmQgY2FjaGUgdW5hbWJpZ3VvdXMgbW9kdWxlc1xuICBpZiAoIXVuYW1iaWd1b3VzLnRlc3QoY29udGVudCkpIHtcbiAgICBsb2coJ2lnbm9yZWQgcGF0aCBkdWUgdG8gdW5hbWJpZ3VvdXMgcmVnZXg6JywgcGF0aCk7XG4gICAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBudWxsKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxvZygnY2FjaGUgbWlzcycsIGNhY2hlS2V5LCAnZm9yIHBhdGgnLCBwYXRoKTtcbiAgZXhwb3J0TWFwID0gRXhwb3J0TWFwLnBhcnNlKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpO1xuXG4gIC8vIGFtYmlndW91cyBtb2R1bGVzIHJldHVybiBudWxsXG4gIGlmIChleHBvcnRNYXAgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgZXhwb3J0TWFwLm10aW1lID0gc3RhdHMubXRpbWU7XG5cbiAgZXhwb3J0Q2FjaGUuc2V0KGNhY2hlS2V5LCBleHBvcnRNYXApO1xuICByZXR1cm4gZXhwb3J0TWFwO1xufTtcblxuXG5FeHBvcnRNYXAucGFyc2UgPSBmdW5jdGlvbiAocGF0aCwgY29udGVudCwgY29udGV4dCkge1xuICBjb25zdCBtID0gbmV3IEV4cG9ydE1hcChwYXRoKTtcblxuICBsZXQgYXN0O1xuICB0cnkge1xuICAgIGFzdCA9IHBhcnNlKHBhdGgsIGNvbnRlbnQsIGNvbnRleHQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2coJ3BhcnNlIGVycm9yOicsIHBhdGgsIGVycik7XG4gICAgbS5lcnJvcnMucHVzaChlcnIpO1xuICAgIHJldHVybiBtOyAvLyBjYW4ndCBjb250aW51ZVxuICB9XG5cbiAgaWYgKCF1bmFtYmlndW91cy5pc01vZHVsZShhc3QpKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBkb2NzdHlsZSA9IChjb250ZXh0LnNldHRpbmdzICYmIGNvbnRleHQuc2V0dGluZ3NbJ2ltcG9ydC9kb2NzdHlsZSddKSB8fCBbJ2pzZG9jJ107XG4gIGNvbnN0IGRvY1N0eWxlUGFyc2VycyA9IHt9O1xuICBkb2NzdHlsZS5mb3JFYWNoKHN0eWxlID0+IHtcbiAgICBkb2NTdHlsZVBhcnNlcnNbc3R5bGVdID0gYXZhaWxhYmxlRG9jU3R5bGVQYXJzZXJzW3N0eWxlXTtcbiAgfSk7XG5cbiAgLy8gYXR0ZW1wdCB0byBjb2xsZWN0IG1vZHVsZSBkb2NcbiAgaWYgKGFzdC5jb21tZW50cykge1xuICAgIGFzdC5jb21tZW50cy5zb21lKGMgPT4ge1xuICAgICAgaWYgKGMudHlwZSAhPT0gJ0Jsb2NrJykgcmV0dXJuIGZhbHNlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG9jID0gZG9jdHJpbmUucGFyc2UoYy52YWx1ZSwgeyB1bndyYXA6IHRydWUgfSk7XG4gICAgICAgIGlmIChkb2MudGFncy5zb21lKHQgPT4gdC50aXRsZSA9PT0gJ21vZHVsZScpKSB7XG4gICAgICAgICAgbS5kb2MgPSBkb2M7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikgeyAvKiBpZ25vcmUgKi8gfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKTtcblxuICBmdW5jdGlvbiByZW1vdGVQYXRoKHZhbHVlKSB7XG4gICAgcmV0dXJuIHJlc29sdmUucmVsYXRpdmUodmFsdWUsIHBhdGgsIGNvbnRleHQuc2V0dGluZ3MpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydCh2YWx1ZSkge1xuICAgIGNvbnN0IHJwID0gcmVtb3RlUGF0aCh2YWx1ZSk7XG4gICAgaWYgKHJwID09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBFeHBvcnRNYXAuZm9yKGNoaWxkQ29udGV4dChycCwgY29udGV4dCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmFtZXNwYWNlKGlkZW50aWZpZXIpIHtcbiAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGlkZW50aWZpZXIubmFtZSkpIHJldHVybjtcblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZUltcG9ydChuYW1lc3BhY2VzLmdldChpZGVudGlmaWVyLm5hbWUpKTtcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gYWRkTmFtZXNwYWNlKG9iamVjdCwgaWRlbnRpZmllcikge1xuICAgIGNvbnN0IG5zZm4gPSBnZXROYW1lc3BhY2UoaWRlbnRpZmllcik7XG4gICAgaWYgKG5zZm4pIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmplY3QsICduYW1lc3BhY2UnLCB7IGdldDogbnNmbiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgZnVuY3Rpb24gY2FwdHVyZURlcGVuZGVuY3koeyBzb3VyY2UgfSwgaXNPbmx5SW1wb3J0aW5nVHlwZXMsIGltcG9ydGVkU3BlY2lmaWVycyA9IG5ldyBTZXQoKSkge1xuICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBwID0gcmVtb3RlUGF0aChzb3VyY2UudmFsdWUpO1xuICAgIGlmIChwID09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZGVjbGFyYXRpb25NZXRhZGF0YSA9IHtcbiAgICAgIC8vIGNhcHR1cmluZyBhY3R1YWwgbm9kZSByZWZlcmVuY2UgaG9sZHMgZnVsbCBBU1QgaW4gbWVtb3J5IVxuICAgICAgc291cmNlOiB7IHZhbHVlOiBzb3VyY2UudmFsdWUsIGxvYzogc291cmNlLmxvYyB9LFxuICAgICAgaXNPbmx5SW1wb3J0aW5nVHlwZXMsXG4gICAgICBpbXBvcnRlZFNwZWNpZmllcnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGV4aXN0aW5nID0gbS5pbXBvcnRzLmdldChwKTtcbiAgICBpZiAoZXhpc3RpbmcgIT0gbnVsbCkge1xuICAgICAgZXhpc3RpbmcuZGVjbGFyYXRpb25zLmFkZChkZWNsYXJhdGlvbk1ldGFkYXRhKTtcbiAgICAgIHJldHVybiBleGlzdGluZy5nZXR0ZXI7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0dGVyID0gdGh1bmtGb3IocCwgY29udGV4dCk7XG4gICAgbS5pbXBvcnRzLnNldChwLCB7IGdldHRlciwgZGVjbGFyYXRpb25zOiBuZXcgU2V0KFtkZWNsYXJhdGlvbk1ldGFkYXRhXSkgfSk7XG4gICAgcmV0dXJuIGdldHRlcjtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZSA9IG1ha2VTb3VyY2VDb2RlKGNvbnRlbnQsIGFzdCk7XG5cbiAgZnVuY3Rpb24gcmVhZFRzQ29uZmlnKCkge1xuICAgIGNvbnN0IHRzQ29uZmlnSW5mbyA9IHRzQ29uZmlnTG9hZGVyKHtcbiAgICAgIGN3ZDpcbiAgICAgICAgKGNvbnRleHQucGFyc2VyT3B0aW9ucyAmJiBjb250ZXh0LnBhcnNlck9wdGlvbnMudHNjb25maWdSb290RGlyKSB8fFxuICAgICAgICBwcm9jZXNzLmN3ZCgpLFxuICAgICAgZ2V0RW52OiAoa2V5KSA9PiBwcm9jZXNzLmVudltrZXldLFxuICAgIH0pO1xuICAgIHRyeSB7XG4gICAgICBpZiAodHNDb25maWdJbmZvLnRzQ29uZmlnUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGpzb25UZXh0ID0gZnMucmVhZEZpbGVTeW5jKHRzQ29uZmlnSW5mby50c0NvbmZpZ1BhdGgpLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmICghcGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbikge1xuICAgICAgICAgIC8vIHRoaXMgaXMgYmVjYXVzZSBwcm9qZWN0cyBub3QgdXNpbmcgVHlwZVNjcmlwdCB3b24ndCBoYXZlIHR5cGVzY3JpcHQgaW5zdGFsbGVkXG4gICAgICAgICAgKHsgcGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbiB9ID0gcmVxdWlyZSgndHlwZXNjcmlwdCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VDb25maWdGaWxlVGV4dFRvSnNvbih0c0NvbmZpZ0luZm8udHNDb25maWdQYXRoLCBqc29uVGV4dCkuY29uZmlnO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIENhdGNoIGFueSBlcnJvcnNcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzRXNNb2R1bGVJbnRlcm9wKCkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gaGFzaE9iamVjdCh7XG4gICAgICB0c2NvbmZpZ1Jvb3REaXI6IGNvbnRleHQucGFyc2VyT3B0aW9ucyAmJiBjb250ZXh0LnBhcnNlck9wdGlvbnMudHNjb25maWdSb290RGlyLFxuICAgIH0pLmRpZ2VzdCgnaGV4Jyk7XG4gICAgbGV0IHRzQ29uZmlnID0gdHNDb25maWdDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmICh0eXBlb2YgdHNDb25maWcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0c0NvbmZpZyA9IHJlYWRUc0NvbmZpZygpO1xuICAgICAgdHNDb25maWdDYWNoZS5zZXQoY2FjaGVLZXksIHRzQ29uZmlnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHNDb25maWcgJiYgdHNDb25maWcuY29tcGlsZXJPcHRpb25zID8gdHNDb25maWcuY29tcGlsZXJPcHRpb25zLmVzTW9kdWxlSW50ZXJvcCA6IGZhbHNlO1xuICB9XG5cbiAgYXN0LmJvZHkuZm9yRWFjaChmdW5jdGlvbiAobikge1xuICAgIGlmIChuLnR5cGUgPT09ICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nKSB7XG4gICAgICBjb25zdCBleHBvcnRNZXRhID0gY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2Vycywgbik7XG4gICAgICBpZiAobi5kZWNsYXJhdGlvbi50eXBlID09PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgYWRkTmFtZXNwYWNlKGV4cG9ydE1ldGEsIG4uZGVjbGFyYXRpb24pO1xuICAgICAgfVxuICAgICAgbS5uYW1lc3BhY2Uuc2V0KCdkZWZhdWx0JywgZXhwb3J0TWV0YSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJykge1xuICAgICAgY29uc3QgZ2V0dGVyID0gY2FwdHVyZURlcGVuZGVuY3kobiwgbi5leHBvcnRLaW5kID09PSAndHlwZScpO1xuICAgICAgaWYgKGdldHRlcikgbS5kZXBlbmRlbmNpZXMuYWRkKGdldHRlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gY2FwdHVyZSBuYW1lc3BhY2VzIGluIGNhc2Ugb2YgbGF0ZXIgZXhwb3J0XG4gICAgaWYgKG4udHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJykge1xuICAgICAgLy8gaW1wb3J0IHR5cGUgeyBGb28gfSAoVFMgYW5kIEZsb3cpXG4gICAgICBjb25zdCBkZWNsYXJhdGlvbklzVHlwZSA9IG4uaW1wb3J0S2luZCA9PT0gJ3R5cGUnO1xuICAgICAgLy8gaW1wb3J0ICcuL2Zvbycgb3IgaW1wb3J0IHt9IGZyb20gJy4vZm9vJyAoYm90aCAwIHNwZWNpZmllcnMpIGlzIGEgc2lkZSBlZmZlY3QgYW5kXG4gICAgICAvLyBzaG91bGRuJ3QgYmUgY29uc2lkZXJlZCB0byBiZSBqdXN0IGltcG9ydGluZyB0eXBlc1xuICAgICAgbGV0IHNwZWNpZmllcnNPbmx5SW1wb3J0aW5nVHlwZXMgPSBuLnNwZWNpZmllcnMubGVuZ3RoO1xuICAgICAgY29uc3QgaW1wb3J0ZWRTcGVjaWZpZXJzID0gbmV3IFNldCgpO1xuICAgICAgbi5zcGVjaWZpZXJzLmZvckVhY2goc3BlY2lmaWVyID0+IHtcbiAgICAgICAgaWYgKHN1cHBvcnRlZEltcG9ydFR5cGVzLmhhcyhzcGVjaWZpZXIudHlwZSkpIHtcbiAgICAgICAgICBpbXBvcnRlZFNwZWNpZmllcnMuYWRkKHNwZWNpZmllci50eXBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdJbXBvcnRTcGVjaWZpZXInKSB7XG4gICAgICAgICAgaW1wb3J0ZWRTcGVjaWZpZXJzLmFkZChzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbXBvcnQgeyB0eXBlIEZvbyB9IChGbG93KVxuICAgICAgICBzcGVjaWZpZXJzT25seUltcG9ydGluZ1R5cGVzID1cbiAgICAgICAgICBzcGVjaWZpZXJzT25seUltcG9ydGluZ1R5cGVzICYmIHNwZWNpZmllci5pbXBvcnRLaW5kID09PSAndHlwZSc7XG4gICAgICB9KTtcbiAgICAgIGNhcHR1cmVEZXBlbmRlbmN5KG4sIGRlY2xhcmF0aW9uSXNUeXBlIHx8IHNwZWNpZmllcnNPbmx5SW1wb3J0aW5nVHlwZXMsIGltcG9ydGVkU3BlY2lmaWVycyk7XG5cbiAgICAgIGNvbnN0IG5zID0gbi5zcGVjaWZpZXJzLmZpbmQocyA9PiBzLnR5cGUgPT09ICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInKTtcbiAgICAgIGlmIChucykge1xuICAgICAgICBuYW1lc3BhY2VzLnNldChucy5sb2NhbC5uYW1lLCBuLnNvdXJjZS52YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG4udHlwZSA9PT0gJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nKSB7XG4gICAgICAvLyBjYXB0dXJlIGRlY2xhcmF0aW9uXG4gICAgICBpZiAobi5kZWNsYXJhdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHN3aXRjaCAobi5kZWNsYXJhdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ0Z1bmN0aW9uRGVjbGFyYXRpb24nOlxuICAgICAgICBjYXNlICdDbGFzc0RlY2xhcmF0aW9uJzpcbiAgICAgICAgY2FzZSAnVHlwZUFsaWFzJzogLy8gZmxvd3R5cGUgd2l0aCBiYWJlbC1lc2xpbnQgcGFyc2VyXG4gICAgICAgIGNhc2UgJ0ludGVyZmFjZURlY2xhcmF0aW9uJzpcbiAgICAgICAgY2FzZSAnRGVjbGFyZUZ1bmN0aW9uJzpcbiAgICAgICAgY2FzZSAnVFNEZWNsYXJlRnVuY3Rpb24nOlxuICAgICAgICBjYXNlICdUU0VudW1EZWNsYXJhdGlvbic6XG4gICAgICAgIGNhc2UgJ1RTVHlwZUFsaWFzRGVjbGFyYXRpb24nOlxuICAgICAgICBjYXNlICdUU0ludGVyZmFjZURlY2xhcmF0aW9uJzpcbiAgICAgICAgY2FzZSAnVFNBYnN0cmFjdENsYXNzRGVjbGFyYXRpb24nOlxuICAgICAgICBjYXNlICdUU01vZHVsZURlY2xhcmF0aW9uJzpcbiAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQobi5kZWNsYXJhdGlvbi5pZC5uYW1lLCBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBuKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nOlxuICAgICAgICAgIG4uZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goKGQpID0+XG4gICAgICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkLmlkLFxuICAgICAgICAgICAgICBpZCA9PiBtLm5hbWVzcGFjZS5zZXQoaWQubmFtZSwgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgZCwgbikpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgbnNvdXJjZSA9IG4uc291cmNlICYmIG4uc291cmNlLnZhbHVlO1xuICAgICAgbi5zcGVjaWZpZXJzLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgY29uc3QgZXhwb3J0TWV0YSA9IHt9O1xuICAgICAgICBsZXQgbG9jYWw7XG5cbiAgICAgICAgc3dpdGNoIChzLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6XG4gICAgICAgICAgaWYgKCFuLnNvdXJjZSkgcmV0dXJuO1xuICAgICAgICAgIGxvY2FsID0gJ2RlZmF1bHQnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdFeHBvcnROYW1lc3BhY2VTcGVjaWZpZXInOlxuICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRNZXRhLCAnbmFtZXNwYWNlJywge1xuICAgICAgICAgICAgZ2V0KCkgeyByZXR1cm4gcmVzb2x2ZUltcG9ydChuc291cmNlKTsgfSxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlICdFeHBvcnRTcGVjaWZpZXInOlxuICAgICAgICAgIGlmICghbi5zb3VyY2UpIHtcbiAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChzLmV4cG9ydGVkLm5hbWUsIGFkZE5hbWVzcGFjZShleHBvcnRNZXRhLCBzLmxvY2FsKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVsc2UgZmFsbHMgdGhyb3VnaFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxvY2FsID0gcy5sb2NhbC5uYW1lO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdG9kbzogSlNEb2NcbiAgICAgICAgbS5yZWV4cG9ydHMuc2V0KHMuZXhwb3J0ZWQubmFtZSwgeyBsb2NhbCwgZ2V0SW1wb3J0OiAoKSA9PiByZXNvbHZlSW1wb3J0KG5zb3VyY2UpIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXNFc01vZHVsZUludGVyb3BUcnVlID0gaXNFc01vZHVsZUludGVyb3AoKTtcblxuICAgIGNvbnN0IGV4cG9ydHMgPSBbJ1RTRXhwb3J0QXNzaWdubWVudCddO1xuICAgIGlmIChpc0VzTW9kdWxlSW50ZXJvcFRydWUpIHtcbiAgICAgIGV4cG9ydHMucHVzaCgnVFNOYW1lc3BhY2VFeHBvcnREZWNsYXJhdGlvbicpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZG9lc24ndCBkZWNsYXJlIGFueXRoaW5nLCBidXQgY2hhbmdlcyB3aGF0J3MgYmVpbmcgZXhwb3J0ZWQuXG4gICAgaWYgKGluY2x1ZGVzKGV4cG9ydHMsIG4udHlwZSkpIHtcbiAgICAgIGNvbnN0IGV4cG9ydGVkTmFtZSA9IG4udHlwZSA9PT0gJ1RTTmFtZXNwYWNlRXhwb3J0RGVjbGFyYXRpb24nXG4gICAgICAgID8gbi5pZC5uYW1lXG4gICAgICAgIDogKG4uZXhwcmVzc2lvbiAmJiBuLmV4cHJlc3Npb24ubmFtZSB8fCAobi5leHByZXNzaW9uLmlkICYmIG4uZXhwcmVzc2lvbi5pZC5uYW1lKSB8fCBudWxsKTtcbiAgICAgIGNvbnN0IGRlY2xUeXBlcyA9IFtcbiAgICAgICAgJ1ZhcmlhYmxlRGVjbGFyYXRpb24nLFxuICAgICAgICAnQ2xhc3NEZWNsYXJhdGlvbicsXG4gICAgICAgICdUU0RlY2xhcmVGdW5jdGlvbicsXG4gICAgICAgICdUU0VudW1EZWNsYXJhdGlvbicsXG4gICAgICAgICdUU1R5cGVBbGlhc0RlY2xhcmF0aW9uJyxcbiAgICAgICAgJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nLFxuICAgICAgICAnVFNBYnN0cmFjdENsYXNzRGVjbGFyYXRpb24nLFxuICAgICAgICAnVFNNb2R1bGVEZWNsYXJhdGlvbicsXG4gICAgICBdO1xuICAgICAgY29uc3QgZXhwb3J0ZWREZWNscyA9IGFzdC5ib2R5LmZpbHRlcigoeyB0eXBlLCBpZCwgZGVjbGFyYXRpb25zIH0pID0+IGluY2x1ZGVzKGRlY2xUeXBlcywgdHlwZSkgJiYgKFxuICAgICAgICAoaWQgJiYgaWQubmFtZSA9PT0gZXhwb3J0ZWROYW1lKSB8fCAoZGVjbGFyYXRpb25zICYmIGRlY2xhcmF0aW9ucy5maW5kKChkKSA9PiBkLmlkLm5hbWUgPT09IGV4cG9ydGVkTmFtZSkpXG4gICAgICApKTtcbiAgICAgIGlmIChleHBvcnRlZERlY2xzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBFeHBvcnQgaXMgbm90IHJlZmVyZW5jaW5nIGFueSBsb2NhbCBkZWNsYXJhdGlvbiwgbXVzdCBiZSByZS1leHBvcnRpbmdcbiAgICAgICAgbS5uYW1lc3BhY2Uuc2V0KCdkZWZhdWx0JywgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgbikpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaXNFc01vZHVsZUludGVyb3BUcnVlKSB7XG4gICAgICAgIG0ubmFtZXNwYWNlLnNldCgnZGVmYXVsdCcsIHt9KTtcbiAgICAgIH1cbiAgICAgIGV4cG9ydGVkRGVjbHMuZm9yRWFjaCgoZGVjbCkgPT4ge1xuICAgICAgICBpZiAoZGVjbC50eXBlID09PSAnVFNNb2R1bGVEZWNsYXJhdGlvbicpIHtcbiAgICAgICAgICBpZiAoZGVjbC5ib2R5ICYmIGRlY2wuYm9keS50eXBlID09PSAnVFNNb2R1bGVEZWNsYXJhdGlvbicpIHtcbiAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChkZWNsLmJvZHkuaWQubmFtZSwgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgZGVjbC5ib2R5KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChkZWNsLmJvZHkgJiYgZGVjbC5ib2R5LmJvZHkpIHtcbiAgICAgICAgICAgIGRlY2wuYm9keS5ib2R5LmZvckVhY2goKG1vZHVsZUJsb2NrTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAvLyBFeHBvcnQtYXNzaWdubWVudCBleHBvcnRzIGFsbCBtZW1iZXJzIGluIHRoZSBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgZXhwb3J0ZWQgb3Igbm90LlxuICAgICAgICAgICAgICBjb25zdCBuYW1lc3BhY2VEZWNsID0gbW9kdWxlQmxvY2tOb2RlLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyA/XG4gICAgICAgICAgICAgICAgbW9kdWxlQmxvY2tOb2RlLmRlY2xhcmF0aW9uIDpcbiAgICAgICAgICAgICAgICBtb2R1bGVCbG9ja05vZGU7XG5cbiAgICAgICAgICAgICAgaWYgKCFuYW1lc3BhY2VEZWNsKSB7XG4gICAgICAgICAgICAgICAgLy8gVHlwZVNjcmlwdCBjYW4gY2hlY2sgdGhpcyBmb3IgdXM7IHdlIG5lZWRuJ3RcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lc3BhY2VEZWNsLnR5cGUgPT09ICdWYXJpYWJsZURlY2xhcmF0aW9uJykge1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjZURlY2wuZGVjbGFyYXRpb25zLmZvckVhY2goKGQpID0+XG4gICAgICAgICAgICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkLmlkLCAoaWQpID0+IG0ubmFtZXNwYWNlLnNldChcbiAgICAgICAgICAgICAgICAgICAgaWQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZURvYyhzb3VyY2UsIGRvY1N0eWxlUGFyc2VycywgZGVjbCwgbmFtZXNwYWNlRGVjbCwgbW9kdWxlQmxvY2tOb2RlKVxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG0ubmFtZXNwYWNlLnNldChcbiAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZURlY2wuaWQubmFtZSxcbiAgICAgICAgICAgICAgICAgIGNhcHR1cmVEb2Moc291cmNlLCBkb2NTdHlsZVBhcnNlcnMsIG1vZHVsZUJsb2NrTm9kZSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRXhwb3J0IGFzIGRlZmF1bHRcbiAgICAgICAgICBtLm5hbWVzcGFjZS5zZXQoJ2RlZmF1bHQnLCBjYXB0dXJlRG9jKHNvdXJjZSwgZG9jU3R5bGVQYXJzZXJzLCBkZWNsKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG07XG59O1xuXG4vKipcbiAqIFRoZSBjcmVhdGlvbiBvZiB0aGlzIGNsb3N1cmUgaXMgaXNvbGF0ZWQgZnJvbSBvdGhlciBzY29wZXNcbiAqIHRvIGF2b2lkIG92ZXItcmV0ZW50aW9uIG9mIHVucmVsYXRlZCB2YXJpYWJsZXMsIHdoaWNoIGhhc1xuICogY2F1c2VkIG1lbW9yeSBsZWFrcy4gU2VlICMxMjY2LlxuICovXG5mdW5jdGlvbiB0aHVua0ZvcihwLCBjb250ZXh0KSB7XG4gIHJldHVybiAoKSA9PiBFeHBvcnRNYXAuZm9yKGNoaWxkQ29udGV4dChwLCBjb250ZXh0KSk7XG59XG5cblxuLyoqXG4gKiBUcmF2ZXJzZSBhIHBhdHRlcm4vaWRlbnRpZmllciBub2RlLCBjYWxsaW5nICdjYWxsYmFjaydcbiAqIGZvciBlYWNoIGxlYWYgaWRlbnRpZmllci5cbiAqIEBwYXJhbSAge25vZGV9ICAgcGF0dGVyblxuICogQHBhcmFtICB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUocGF0dGVybiwgY2FsbGJhY2spIHtcbiAgc3dpdGNoIChwYXR0ZXJuLnR5cGUpIHtcbiAgY2FzZSAnSWRlbnRpZmllcic6IC8vIGJhc2UgY2FzZVxuICAgIGNhbGxiYWNrKHBhdHRlcm4pO1xuICAgIGJyZWFrO1xuXG4gIGNhc2UgJ09iamVjdFBhdHRlcm4nOlxuICAgIHBhdHRlcm4ucHJvcGVydGllcy5mb3JFYWNoKHAgPT4ge1xuICAgICAgaWYgKHAudHlwZSA9PT0gJ0V4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eScgfHwgcC50eXBlID09PSAnUmVzdEVsZW1lbnQnKSB7XG4gICAgICAgIGNhbGxiYWNrKHAuYXJndW1lbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShwLnZhbHVlLCBjYWxsYmFjayk7XG4gICAgfSk7XG4gICAgYnJlYWs7XG5cbiAgY2FzZSAnQXJyYXlQYXR0ZXJuJzpcbiAgICBwYXR0ZXJuLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChlbGVtZW50ID09IG51bGwpIHJldHVybjtcbiAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdFeHBlcmltZW50YWxSZXN0UHJvcGVydHknIHx8IGVsZW1lbnQudHlwZSA9PT0gJ1Jlc3RFbGVtZW50Jykge1xuICAgICAgICBjYWxsYmFjayhlbGVtZW50LmFyZ3VtZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICAgIGJyZWFrO1xuXG4gIGNhc2UgJ0Fzc2lnbm1lbnRQYXR0ZXJuJzpcbiAgICBjYWxsYmFjayhwYXR0ZXJuLmxlZnQpO1xuICAgIGJyZWFrO1xuICB9XG59XG5cbi8qKlxuICogZG9uJ3QgaG9sZCBmdWxsIGNvbnRleHQgb2JqZWN0IGluIG1lbW9yeSwganVzdCBncmFiIHdoYXQgd2UgbmVlZC5cbiAqL1xuZnVuY3Rpb24gY2hpbGRDb250ZXh0KHBhdGgsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBzZXR0aW5ncywgcGFyc2VyT3B0aW9ucywgcGFyc2VyUGF0aCB9ID0gY29udGV4dDtcbiAgcmV0dXJuIHtcbiAgICBzZXR0aW5ncyxcbiAgICBwYXJzZXJPcHRpb25zLFxuICAgIHBhcnNlclBhdGgsXG4gICAgcGF0aCxcbiAgfTtcbn1cblxuXG4vKipcbiAqIHNvbWV0aW1lcyBsZWdhY3kgc3VwcG9ydCBpc24ndCBfdGhhdF8gaGFyZC4uLiByaWdodD9cbiAqL1xuZnVuY3Rpb24gbWFrZVNvdXJjZUNvZGUodGV4dCwgYXN0KSB7XG4gIGlmIChTb3VyY2VDb2RlLmxlbmd0aCA+IDEpIHtcbiAgICAvLyBFU0xpbnQgM1xuICAgIHJldHVybiBuZXcgU291cmNlQ29kZSh0ZXh0LCBhc3QpO1xuICB9IGVsc2Uge1xuICAgIC8vIEVTTGludCA0LCA1XG4gICAgcmV0dXJuIG5ldyBTb3VyY2VDb2RlKHsgdGV4dCwgYXN0IH0pO1xuICB9XG59XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/core/importType.js b/node_modules/eslint-plugin-import/lib/core/importType.js index 1deff7e4a0..462cb97401 100644 --- a/node_modules/eslint-plugin-import/lib/core/importType.js +++ b/node_modules/eslint-plugin-import/lib/core/importType.js @@ -11,6 +11,8 @@ + + isAbsolute = isAbsolute;exports. @@ -23,12 +25,15 @@ isBuiltIn = isBuiltIn;exports. +isExternalModule = isExternalModule;exports. +isExternalModuleMain = isExternalModuleMain;exports. + @@ -42,28 +47,32 @@ isBuiltIn = isBuiltIn;exports. -isExternalModule = isExternalModule;exports. -isExternalModuleMain = isExternalModuleMain;exports. -isScoped = isScoped;exports. -isScopedMain = isScopedMain;exports. +isScoped = isScoped;exports. + + + + +isScopedMain = isScopedMain;exports. + + @@ -96,7 +105,7 @@ isScopedModule = isScopedModule;exports.default = -resolveImportType;var _core = require('resolve/lib/core');var _core2 = _interopRequireDefault(_core);var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function baseModule(name) {if (isScoped(name)) {var _name$split = name.split('/'),_name$split2 = _slicedToArray(_name$split, 2);const scope = _name$split2[0],pkg = _name$split2[1];return `${scope}/${pkg}`;}var _name$split3 = name.split('/'),_name$split4 = _slicedToArray(_name$split3, 1);const pkg = _name$split4[0];return pkg;}function isAbsolute(name) {return name && name.startsWith('/');} // path is defined only when a resolver resolves to a non-standard path -function isBuiltIn(name, settings, path) {if (path || !name) return false;const base = baseModule(name);const extras = settings && settings['import/core-modules'] || [];return _core2.default[base] || extras.indexOf(base) > -1;}function isExternalPath(path, name, settings) {const folders = settings && settings['import/external-module-folders'] || ['node_modules'];return !path || folders.some(folder => isSubpath(folder, path));}function isSubpath(subpath, path) {const normPath = path.replace(/\\/g, '/');const normSubpath = subpath.replace(/\\/g, '/').replace(/\/$/, '');if (normSubpath.length === 0) {return false;}const left = normPath.indexOf(normSubpath);const right = left + normSubpath.length;return left !== -1 && (left === 0 || normSubpath[0] !== '/' && normPath[left - 1] === '/') && (right >= normPath.length || normPath[right] === '/');}const externalModuleRegExp = /^\w/;function isExternalModule(name, settings, path) {return externalModuleRegExp.test(name) && isExternalPath(path, name, settings);}const externalModuleMainRegExp = /^[\w]((?!\/).)*$/;function isExternalModuleMain(name, settings, path) {return externalModuleMainRegExp.test(name) && isExternalPath(path, name, settings);}const scopedRegExp = /^@[^/]*\/?[^/]+/;function isScoped(name) {return name && scopedRegExp.test(name);}const scopedMainRegExp = /^@[^/]+\/?[^/]+$/;function isScopedMain(name) {return name && scopedMainRegExp.test(name);}function isInternalModule(name, settings, path) {const internalScope = settings && settings['import/internal-regex'];const matchesScopedOrExternalRegExp = scopedRegExp.test(name) || externalModuleRegExp.test(name);return matchesScopedOrExternalRegExp && (internalScope && new RegExp(internalScope).test(name) || !isExternalPath(path, name, settings));}function isRelativeToParent(name) {return (/^\.\.$|^\.\.[\\/]/.test(name));}const indexFiles = ['.', './', './index', './index.js'];function isIndex(name) {return indexFiles.indexOf(name) !== -1;}function isRelativeToSibling(name) {return (/^\.[\\/]/.test(name));}function typeTest(name, settings, path) {if (isAbsolute(name, settings, path)) {return 'absolute';}if (isBuiltIn(name, settings, path)) {return 'builtin';}if (isInternalModule(name, settings, path)) {return 'internal';}if (isExternalModule(name, settings, path)) {return 'external';}if (isScoped(name, settings, path)) {return 'external';}if (isRelativeToParent(name, settings, path)) {return 'parent';}if (isIndex(name, settings, path)) {return 'index';}if (isRelativeToSibling(name, settings, path)) {return 'sibling';}return 'unknown';}function isScopedModule(name) {return name.indexOf('@') === 0;}function resolveImportType(name, context) {return typeTest(name, context.settings, (0, _resolve2.default)(name, context)); +resolveImportType;var _path = require('path');var _isCoreModule = require('is-core-module');var _isCoreModule2 = _interopRequireDefault(_isCoreModule);var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve);var _packagePath = require('./packagePath');function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function baseModule(name) {if (isScoped(name)) {var _name$split = name.split('/'),_name$split2 = _slicedToArray(_name$split, 2);const scope = _name$split2[0],pkg = _name$split2[1];return `${scope}/${pkg}`;}var _name$split3 = name.split('/'),_name$split4 = _slicedToArray(_name$split3, 1);const pkg = _name$split4[0];return pkg;}function isAbsolute(name) {return (0, _path.isAbsolute)(name);} // path is defined only when a resolver resolves to a non-standard path +function isBuiltIn(name, settings, path) {if (path || !name) return false;const base = baseModule(name);const extras = settings && settings['import/core-modules'] || [];return (0, _isCoreModule2.default)(base) || extras.indexOf(base) > -1;}function isExternalModule(name, settings, path, context) {if (arguments.length < 4) {throw new TypeError('isExternalModule: name, settings, path, and context are all required');}return isModule(name) && isExternalPath(name, settings, path, (0, _packagePath.getContextPackagePath)(context));}function isExternalModuleMain(name, settings, path, context) {return isModuleMain(name) && isExternalPath(name, settings, path, (0, _packagePath.getContextPackagePath)(context));}function isExternalPath(name, settings, path, packagePath) {const internalScope = settings && settings['import/internal-regex'];if (internalScope && new RegExp(internalScope).test(name)) {return false;}if (!path || (0, _path.relative)(packagePath, path).startsWith('..')) {return true;}const folders = settings && settings['import/external-module-folders'] || ['node_modules'];return folders.some(folder => {const folderPath = (0, _path.resolve)(packagePath, folder);const relativePath = (0, _path.relative)(folderPath, path);return !relativePath.startsWith('..');});}const moduleRegExp = /^\w/;function isModule(name) {return name && moduleRegExp.test(name);}const moduleMainRegExp = /^[\w]((?!\/).)*$/;function isModuleMain(name) {return name && moduleMainRegExp.test(name);}const scopedRegExp = /^@[^/]*\/?[^/]+/;function isScoped(name) {return name && scopedRegExp.test(name);}const scopedMainRegExp = /^@[^/]+\/?[^/]+$/;function isScopedMain(name) {return name && scopedMainRegExp.test(name);}function isRelativeToParent(name) {return (/^\.\.$|^\.\.[\\/]/.test(name));}const indexFiles = ['.', './', './index', './index.js'];function isIndex(name) {return indexFiles.indexOf(name) !== -1;}function isRelativeToSibling(name) {return (/^\.[\\/]/.test(name));}function typeTest(name, context, path) {const settings = context.settings;if (isAbsolute(name, settings, path)) {return 'absolute';}if (isBuiltIn(name, settings, path)) {return 'builtin';}if (isModule(name, settings, path) || isScoped(name, settings, path)) {const packagePath = (0, _packagePath.getContextPackagePath)(context);return isExternalPath(name, settings, path, packagePath) ? 'external' : 'internal';}if (isRelativeToParent(name, settings, path)) {return 'parent';}if (isIndex(name, settings, path)) {return 'index';}if (isRelativeToSibling(name, settings, path)) {return 'sibling';}return 'unknown';}function isScopedModule(name) {return name.indexOf('@') === 0 && !name.startsWith('@/');}function resolveImportType(name, context) {return typeTest(name, context, (0, _resolve2.default)(name, context)); } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2ltcG9ydFR5cGUuanMiXSwibmFtZXMiOlsiaXNBYnNvbHV0ZSIsImlzQnVpbHRJbiIsImlzRXh0ZXJuYWxNb2R1bGUiLCJpc0V4dGVybmFsTW9kdWxlTWFpbiIsImlzU2NvcGVkIiwiaXNTY29wZWRNYWluIiwiaXNTY29wZWRNb2R1bGUiLCJyZXNvbHZlSW1wb3J0VHlwZSIsImJhc2VNb2R1bGUiLCJuYW1lIiwic3BsaXQiLCJzY29wZSIsInBrZyIsInN0YXJ0c1dpdGgiLCJzZXR0aW5ncyIsInBhdGgiLCJiYXNlIiwiZXh0cmFzIiwiY29yZU1vZHVsZXMiLCJpbmRleE9mIiwiaXNFeHRlcm5hbFBhdGgiLCJmb2xkZXJzIiwic29tZSIsImZvbGRlciIsImlzU3VicGF0aCIsInN1YnBhdGgiLCJub3JtUGF0aCIsInJlcGxhY2UiLCJub3JtU3VicGF0aCIsImxlbmd0aCIsImxlZnQiLCJyaWdodCIsImV4dGVybmFsTW9kdWxlUmVnRXhwIiwidGVzdCIsImV4dGVybmFsTW9kdWxlTWFpblJlZ0V4cCIsInNjb3BlZFJlZ0V4cCIsInNjb3BlZE1haW5SZWdFeHAiLCJpc0ludGVybmFsTW9kdWxlIiwiaW50ZXJuYWxTY29wZSIsIm1hdGNoZXNTY29wZWRPckV4dGVybmFsUmVnRXhwIiwiUmVnRXhwIiwiaXNSZWxhdGl2ZVRvUGFyZW50IiwiaW5kZXhGaWxlcyIsImlzSW5kZXgiLCJpc1JlbGF0aXZlVG9TaWJsaW5nIiwidHlwZVRlc3QiLCJjb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBYWdCQSxVLEdBQUFBLFU7Ozs7O0FBS0FDLFMsR0FBQUEsUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQkFDLGdCLEdBQUFBLGdCOzs7OztBQUtBQyxvQixHQUFBQSxvQjs7Ozs7QUFLQUMsUSxHQUFBQSxROzs7OztBQUtBQyxZLEdBQUFBLFk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUNBQyxjLEdB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ZCxDQUFqQyxDQUFQO0FBQ0QiLCJmaWxlIjoiaW1wb3J0VHlwZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb3JlTW9kdWxlcyBmcm9tICdyZXNvbHZlL2xpYi9jb3JlJ1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5cbmZ1bmN0aW9uIGJhc2VNb2R1bGUobmFtZSkge1xuICBpZiAoaXNTY29wZWQobmFtZSkpIHtcbiAgICBjb25zdCBbc2NvcGUsIHBrZ10gPSBuYW1lLnNwbGl0KCcvJylcbiAgICByZXR1cm4gYCR7c2NvcGV9LyR7cGtnfWBcbiAgfVxuICBjb25zdCBbcGtnXSA9IG5hbWUuc3BsaXQoJy8nKVxuICByZXR1cm4gcGtnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Fic29sdXRlKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUgJiYgbmFtZS5zdGFydHNXaXRoKCcvJylcbn1cblxuLy8gcGF0aCBpcyBkZWZpbmVkIG9ubHkgd2hlbiBhIHJlc29sdmVyIHJlc29sdmVzIHRvIGEgbm9uLXN0YW5kYXJkIHBhdGhcbmV4cG9ydCBmdW5jdGlvbiBpc0J1aWx0SW4obmFtZSwgc2V0dGluZ3MsIHBhdGgpIHtcbiAgaWYgKHBhdGggfHwgIW5hbWUpIHJldHVybiBmYWxzZVxuICBjb25zdCBiYXNlID0gYmFzZU1vZHVsZShuYW1lKVxuICBjb25zdCBleHRyYXMgPSAoc2V0dGluZ3MgJiYgc2V0dGluZ3NbJ2ltcG9ydC9jb3JlLW1vZHVsZXMnXSkgfHwgW11cbiAgcmV0dXJuIGNvcmVNb2R1bGVzW2Jhc2VdIHx8IGV4dHJhcy5pbmRleE9mKGJhc2UpID4gLTFcbn1cblxuZnVuY3Rpb24gaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpIHtcbiAgY29uc3QgZm9sZGVycyA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2V4dGVybmFsLW1vZHVsZS1mb2xkZXJzJ10pIHx8IFsnbm9kZV9tb2R1bGVzJ11cbiAgcmV0dXJuICFwYXRoIHx8IGZvbGRlcnMuc29tZShmb2xkZXIgPT4gaXNTdWJwYXRoKGZvbGRlciwgcGF0aCkpXG59XG5cbmZ1bmN0aW9uIGlzU3VicGF0aChzdWJwYXRoLCBwYXRoKSB7XG4gIGNvbnN0IG5vcm1QYXRoID0gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJylcbiAgY29uc3Qgbm9ybVN1YnBhdGggPSBzdWJwYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKS5yZXBsYWNlKC9cXC8kLywgJycpXG4gIGlmIChub3JtU3VicGF0aC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBjb25zdCBsZWZ0ID0gbm9ybVBhdGguaW5kZXhPZihub3JtU3VicGF0aClcbiAgY29uc3QgcmlnaHQgPSBsZWZ0ICsgbm9ybVN1YnBhdGgubGVuZ3RoXG4gIHJldHVybiBsZWZ0ICE9PSAtMSAmJlxuICAgICAgICAobGVmdCA9PT0gMCB8fCBub3JtU3VicGF0aFswXSAhPT0gJy8nICYmIG5vcm1QYXRoW2xlZnQgLSAxXSA9PT0gJy8nKSAmJlxuICAgICAgICAocmlnaHQgPj0gbm9ybVBhdGgubGVuZ3RoIHx8IG5vcm1QYXRoW3JpZ2h0XSA9PT0gJy8nKVxufVxuXG5jb25zdCBleHRlcm5hbE1vZHVsZVJlZ0V4cCA9IC9eXFx3L1xuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpIHtcbiAgcmV0dXJuIGV4dGVybmFsTW9kdWxlUmVnRXhwLnRlc3QobmFtZSkgJiYgaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpXG59XG5cbmNvbnN0IGV4dGVybmFsTW9kdWxlTWFpblJlZ0V4cCA9IC9eW1xcd10oKD8hXFwvKS4pKiQvXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbE1vZHVsZU1haW4obmFtZSwgc2V0dGluZ3MsIHBhdGgpIHtcbiAgcmV0dXJuIGV4dGVybmFsTW9kdWxlTWFpblJlZ0V4cC50ZXN0KG5hbWUpICYmIGlzRXh0ZXJuYWxQYXRoKHBhdGgsIG5hbWUsIHNldHRpbmdzKVxufVxuXG5jb25zdCBzY29wZWRSZWdFeHAgPSAvXkBbXi9dKlxcLz9bXi9dKy9cbmV4cG9ydCBmdW5jdGlvbiBpc1Njb3BlZChuYW1lKSB7XG4gIHJldHVybiBuYW1lICYmIHNjb3BlZFJlZ0V4cC50ZXN0KG5hbWUpXG59XG5cbmNvbnN0IHNjb3BlZE1haW5SZWdFeHAgPSAvXkBbXi9dK1xcLz9bXi9dKyQvXG5leHBvcnQgZnVuY3Rpb24gaXNTY29wZWRNYWluKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUgJiYgc2NvcGVkTWFpblJlZ0V4cC50ZXN0KG5hbWUpXG59XG5cbmZ1bmN0aW9uIGlzSW50ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpIHtcbiAgY29uc3QgaW50ZXJuYWxTY29wZSA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2ludGVybmFsLXJlZ2V4J10pXG4gIGNvbnN0IG1hdGNoZXNTY29wZWRPckV4dGVybmFsUmVnRXhwID0gc2NvcGVkUmVnRXhwLnRlc3QobmFtZSkgfHwgZXh0ZXJuYWxNb2R1bGVSZWdFeHAudGVzdChuYW1lKVxuICByZXR1cm4gKG1hdGNoZXNTY29wZWRPckV4dGVybmFsUmVnRXhwICYmIChpbnRlcm5hbFNjb3BlICYmIG5ldyBSZWdFeHAoaW50ZXJuYWxTY29wZSkudGVzdChuYW1lKSB8fCAhaXNFeHRlcm5hbFBhdGgocGF0aCwgbmFtZSwgc2V0dGluZ3MpKSlcbn1cblxuZnVuY3Rpb24gaXNSZWxhdGl2ZVRvUGFyZW50KG5hbWUpIHtcbiAgcmV0dXJuL15cXC5cXC4kfF5cXC5cXC5bXFxcXC9dLy50ZXN0KG5hbWUpXG59XG5cbmNvbnN0IGluZGV4RmlsZXMgPSBbJy4nLCAnLi8nLCAnLi9pbmRleCcsICcuL2luZGV4LmpzJ11cbmZ1bmN0aW9uIGlzSW5kZXgobmFtZSkge1xuICByZXR1cm4gaW5kZXhGaWxlcy5pbmRleE9mKG5hbWUpICE9PSAtMVxufVxuXG5mdW5jdGlvbiBpc1JlbGF0aXZlVG9TaWJsaW5nKG5hbWUpIHtcbiAgcmV0dXJuIC9eXFwuW1xcXFwvXS8udGVzdChuYW1lKVxufVxuXG5mdW5jdGlvbiB0eXBlVGVzdChuYW1lLCBzZXR0aW5ncywgcGF0aCkge1xuICBpZiAoaXNBYnNvbHV0ZShuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdhYnNvbHV0ZScgfVxuICBpZiAoaXNCdWlsdEluKG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ2J1aWx0aW4nIH1cbiAgaWYgKGlzSW50ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnaW50ZXJuYWwnIH1cbiAgaWYgKGlzRXh0ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAnZXh0ZXJuYWwnIH1cbiAgaWYgKGlzU2NvcGVkKG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ2V4dGVybmFsJyB9XG4gIGlmIChpc1JlbGF0aXZlVG9QYXJlbnQobmFtZSwgc2V0dGluZ3MsIHBhdGgpKSB7IHJldHVybiAncGFyZW50JyB9XG4gIGlmIChpc0luZGV4KG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ2luZGV4JyB9XG4gIGlmIChpc1JlbGF0aXZlVG9TaWJsaW5nKG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ3NpYmxpbmcnIH1cbiAgcmV0dXJuICd1bmtub3duJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY29wZWRNb2R1bGUobmFtZSkge1xuICByZXR1cm4gbmFtZS5pbmRleE9mKCdAJykgPT09IDBcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydFR5cGUobmFtZSwgY29udGV4dCkge1xuICByZXR1cm4gdHlwZVRlc3QobmFtZSwgY29udGV4dC5zZXR0aW5ncywgcmVzb2x2ZShuYW1lLCBjb250ZXh0KSlcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2ltcG9ydFR5cGUuanMiXSwibmFtZXMiOlsiaXNBYnNvbHV0ZSIsImlzQnVpbHRJbiIsImlzRXh0ZXJuYWxNb2R1bGUiLCJpc0V4dGVybmFsTW9kdWxlTWFpbiIsImlzU2NvcGVkIiwiaXNTY29wZWRNYWluIiwiaXNTY29wZWRNb2R1bGUiLCJyZXNvbHZlSW1wb3J0VHlwZSIsImJhc2VNb2R1bGUiLCJuYW1lIiwic3BsaXQiLCJzY29wZSIsInBrZyIsInNldHRpbmdzIiwicGF0aCIsImJhc2UiLCJleHRyYXMiLCJpbmRleE9mIiwiY29udGV4dCIsImFyZ3VtZW50cyIsImxlbmd0aCIsIlR5cGVFcnJvciIsImlzTW9kdWxlIiwiaXNFeHRlcm5hbFBhdGgiLCJpc01vZHVsZU1haW4iLCJwYWNrYWdlUGF0aCIsImludGVybmFsU2NvcGUiLCJSZWdFeHAiLCJ0ZXN0Iiwic3RhcnRzV2l0aCIsImZvbGRlcnMiLCJzb21lIiwiZm9sZGVyIiwiZm9sZGVyUGF0aCIsInJlbGF0aXZlUGF0aCIsIm1vZHVsZVJlZ0V4cCIsIm1vZHVsZU1haW5SZWdFeHAiLCJzY29wZWRSZWdFeHAiLCJzY29wZWRNYWluUmVnRXhwIiwiaXNSZWxhdGl2ZVRvUGFyZW50IiwiaW5kZXhGaWxlcyIsImlzSW5kZXgiLCJpc1JlbGF0aXZlVG9TaWJsaW5nIiwidHlwZVRlc3QiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVnQkEsVSxHQUFBQSxVOzs7OztBQUtBQyxTLEdBQUFBLFM7Ozs7Ozs7QUFPQUMsZ0IsR0FBQUEsZ0I7Ozs7Ozs7QUFPQUMsb0IsR0FBQUEsb0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlDQUMsUSxHQUFBQSxROzs7OztBQUtBQyxZLEdBQUFBLFk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUErQkFDLGMsR0FBQUEsYzs7OztBQUlRQyxpQixDQTNHeEIsNEJBQ0EsOEMsMkRBRUEsc0QsaURBQ0EsNEMs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ZUksUUFBZixFQUF5QkMsSUFBekIsS0FBa0NWLFNBQVNLLElBQVQsRUFBZUksUUFBZixFQUF5QkMsSUFBekIsQ0FBdEMsRUFBc0UsQ0FDcEUsTUFBTVcsY0FBYyx3Q0FBc0JQLE9BQXRCLENBQXBCLENBQ0EsT0FBT0ssZUFBZWQsSUFBZixFQUFxQkksUUFBckIsRUFBK0JDLElBQS9CLEVBQXFDVyxXQUFyQyxJQUFvRCxVQUFwRCxHQUFpRSxVQUF4RSxDQUNELENBQ0QsSUFBSWMsbUJBQW1COUIsSUFBbkIsRUFBeUJJLFFBQXpCLEVBQW1DQyxJQUFuQyxDQUFKLEVBQThDLENBQUUsT0FBTyxRQUFQLENBQWtCLENBQ2xFLElBQUkyQixRQUFRaEMsSUFBUixFQUFjSSxRQUFkLEVBQXdCQyxJQUF4QixDQUFKLEVBQW1DLENBQUUsT0FBTyxPQUFQLENBQWlCLENBQ3RELElBQUk0QixvQkFBb0JqQyxJQUFwQixFQUEwQkksUUFBMUIsRUFBb0NDLElBQXBDLENBQUosRUFBK0MsQ0FBRSxPQUFPLFNBQVAsQ0FBbUIsQ0FDcEUsT0FBTyxTQUFQLENBQ0QsQ0FFTSxTQUFTUixjQUFULENBQXdCRyxJQUF4QixFQUE4QixDQUNuQyxPQUFPQSxLQUFLUSxPQUFMLENBQWEsR0FBYixNQUFzQixDQUF0QixJQUEyQixDQUFDUixLQUFLb0IsVUFBTCxDQUFnQixJQUFoQixDQUFuQyxDQUNELENBRWMsU0FBU3RCLGlCQUFULENBQTJCRSxJQUEzQixFQUFpQ1MsT0FBakMsRUFBMEMsQ0FDdkQsT0FBT3lCLFNBQVNsQyxJQUFULEVBQWVTLE9BQWYsRUFBd0IsdUJBQVFULElBQVIsRUFBY1MsT0FBZCxDQUF4QixDQUFQO0FBQ0QiLCJmaWxlIjoiaW1wb3J0VHlwZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQWJzb2x1dGUgYXMgbm9kZUlzQWJzb2x1dGUsIHJlbGF0aXZlLCByZXNvbHZlIGFzIG5vZGVSZXNvbHZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgaXNDb3JlTW9kdWxlIGZyb20gJ2lzLWNvcmUtbW9kdWxlJztcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJztcbmltcG9ydCB7IGdldENvbnRleHRQYWNrYWdlUGF0aCB9IGZyb20gJy4vcGFja2FnZVBhdGgnO1xuXG5mdW5jdGlvbiBiYXNlTW9kdWxlKG5hbWUpIHtcbiAgaWYgKGlzU2NvcGVkKG5hbWUpKSB7XG4gICAgY29uc3QgW3Njb3BlLCBwa2ddID0gbmFtZS5zcGxpdCgnLycpO1xuICAgIHJldHVybiBgJHtzY29wZX0vJHtwa2d9YDtcbiAgfVxuICBjb25zdCBbcGtnXSA9IG5hbWUuc3BsaXQoJy8nKTtcbiAgcmV0dXJuIHBrZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWJzb2x1dGUobmFtZSkge1xuICByZXR1cm4gbm9kZUlzQWJzb2x1dGUobmFtZSk7XG59XG5cbi8vIHBhdGggaXMgZGVmaW5lZCBvbmx5IHdoZW4gYSByZXNvbHZlciByZXNvbHZlcyB0byBhIG5vbi1zdGFuZGFyZCBwYXRoXG5leHBvcnQgZnVuY3Rpb24gaXNCdWlsdEluKG5hbWUsIHNldHRpbmdzLCBwYXRoKSB7XG4gIGlmIChwYXRoIHx8ICFuYW1lKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGJhc2UgPSBiYXNlTW9kdWxlKG5hbWUpO1xuICBjb25zdCBleHRyYXMgPSAoc2V0dGluZ3MgJiYgc2V0dGluZ3NbJ2ltcG9ydC9jb3JlLW1vZHVsZXMnXSkgfHwgW107XG4gIHJldHVybiBpc0NvcmVNb2R1bGUoYmFzZSkgfHwgZXh0cmFzLmluZGV4T2YoYmFzZSkgPiAtMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0ZXJuYWxNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgsIGNvbnRleHQpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCA0KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaXNFeHRlcm5hbE1vZHVsZTogbmFtZSwgc2V0dGluZ3MsIHBhdGgsIGFuZCBjb250ZXh0IGFyZSBhbGwgcmVxdWlyZWQnKTtcbiAgfVxuICByZXR1cm4gaXNNb2R1bGUobmFtZSkgJiYgaXNFeHRlcm5hbFBhdGgobmFtZSwgc2V0dGluZ3MsIHBhdGgsIGdldENvbnRleHRQYWNrYWdlUGF0aChjb250ZXh0KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsTW9kdWxlTWFpbihuYW1lLCBzZXR0aW5ncywgcGF0aCwgY29udGV4dCkge1xuICByZXR1cm4gaXNNb2R1bGVNYWluKG5hbWUpICYmIGlzRXh0ZXJuYWxQYXRoKG5hbWUsIHNldHRpbmdzLCBwYXRoLCBnZXRDb250ZXh0UGFja2FnZVBhdGgoY29udGV4dCkpO1xufVxuXG5mdW5jdGlvbiBpc0V4dGVybmFsUGF0aChuYW1lLCBzZXR0aW5ncywgcGF0aCwgcGFja2FnZVBhdGgpIHtcbiAgY29uc3QgaW50ZXJuYWxTY29wZSA9IChzZXR0aW5ncyAmJiBzZXR0aW5nc1snaW1wb3J0L2ludGVybmFsLXJlZ2V4J10pO1xuICBpZiAoaW50ZXJuYWxTY29wZSAmJiBuZXcgUmVnRXhwKGludGVybmFsU2NvcGUpLnRlc3QobmFtZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIXBhdGggfHwgcmVsYXRpdmUocGFja2FnZVBhdGgsIHBhdGgpLnN0YXJ0c1dpdGgoJy4uJykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGZvbGRlcnMgPSAoc2V0dGluZ3MgJiYgc2V0dGluZ3NbJ2ltcG9ydC9leHRlcm5hbC1tb2R1bGUtZm9sZGVycyddKSB8fCBbJ25vZGVfbW9kdWxlcyddO1xuICByZXR1cm4gZm9sZGVycy5zb21lKChmb2xkZXIpID0+IHtcbiAgICBjb25zdCBmb2xkZXJQYXRoID0gbm9kZVJlc29sdmUocGFja2FnZVBhdGgsIGZvbGRlcik7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcmVsYXRpdmUoZm9sZGVyUGF0aCwgcGF0aCk7XG4gICAgcmV0dXJuICFyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aCgnLi4nKTtcbiAgfSk7XG59XG5cbmNvbnN0IG1vZHVsZVJlZ0V4cCA9IC9eXFx3LztcbmZ1bmN0aW9uIGlzTW9kdWxlKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUgJiYgbW9kdWxlUmVnRXhwLnRlc3QobmFtZSk7XG59XG5cbmNvbnN0IG1vZHVsZU1haW5SZWdFeHAgPSAvXltcXHddKCg/IVxcLykuKSokLztcbmZ1bmN0aW9uIGlzTW9kdWxlTWFpbihuYW1lKSB7XG4gIHJldHVybiBuYW1lICYmIG1vZHVsZU1haW5SZWdFeHAudGVzdChuYW1lKTtcbn1cblxuY29uc3Qgc2NvcGVkUmVnRXhwID0gL15AW14vXSpcXC8/W14vXSsvO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVkKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUgJiYgc2NvcGVkUmVnRXhwLnRlc3QobmFtZSk7XG59XG5cbmNvbnN0IHNjb3BlZE1haW5SZWdFeHAgPSAvXkBbXi9dK1xcLz9bXi9dKyQvO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVkTWFpbihuYW1lKSB7XG4gIHJldHVybiBuYW1lICYmIHNjb3BlZE1haW5SZWdFeHAudGVzdChuYW1lKTtcbn1cblxuZnVuY3Rpb24gaXNSZWxhdGl2ZVRvUGFyZW50KG5hbWUpIHtcbiAgcmV0dXJuL15cXC5cXC4kfF5cXC5cXC5bXFxcXC9dLy50ZXN0KG5hbWUpO1xufVxuXG5jb25zdCBpbmRleEZpbGVzID0gWycuJywgJy4vJywgJy4vaW5kZXgnLCAnLi9pbmRleC5qcyddO1xuZnVuY3Rpb24gaXNJbmRleChuYW1lKSB7XG4gIHJldHVybiBpbmRleEZpbGVzLmluZGV4T2YobmFtZSkgIT09IC0xO1xufVxuXG5mdW5jdGlvbiBpc1JlbGF0aXZlVG9TaWJsaW5nKG5hbWUpIHtcbiAgcmV0dXJuIC9eXFwuW1xcXFwvXS8udGVzdChuYW1lKTtcbn1cblxuZnVuY3Rpb24gdHlwZVRlc3QobmFtZSwgY29udGV4dCwgcGF0aCkge1xuICBjb25zdCB7IHNldHRpbmdzIH0gPSBjb250ZXh0O1xuICBpZiAoaXNBYnNvbHV0ZShuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdhYnNvbHV0ZSc7IH1cbiAgaWYgKGlzQnVpbHRJbihuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdidWlsdGluJzsgfVxuICBpZiAoaXNNb2R1bGUobmFtZSwgc2V0dGluZ3MsIHBhdGgpIHx8IGlzU2NvcGVkKG5hbWUsIHNldHRpbmdzLCBwYXRoKSkge1xuICAgIGNvbnN0IHBhY2thZ2VQYXRoID0gZ2V0Q29udGV4dFBhY2thZ2VQYXRoKGNvbnRleHQpO1xuICAgIHJldHVybiBpc0V4dGVybmFsUGF0aChuYW1lLCBzZXR0aW5ncywgcGF0aCwgcGFja2FnZVBhdGgpID8gJ2V4dGVybmFsJyA6ICdpbnRlcm5hbCc7XG4gIH1cbiAgaWYgKGlzUmVsYXRpdmVUb1BhcmVudChuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdwYXJlbnQnOyB9XG4gIGlmIChpc0luZGV4KG5hbWUsIHNldHRpbmdzLCBwYXRoKSkgeyByZXR1cm4gJ2luZGV4JzsgfVxuICBpZiAoaXNSZWxhdGl2ZVRvU2libGluZyhuYW1lLCBzZXR0aW5ncywgcGF0aCkpIHsgcmV0dXJuICdzaWJsaW5nJzsgfVxuICByZXR1cm4gJ3Vua25vd24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY29wZWRNb2R1bGUobmFtZSkge1xuICByZXR1cm4gbmFtZS5pbmRleE9mKCdAJykgPT09IDAgJiYgIW5hbWUuc3RhcnRzV2l0aCgnQC8nKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZUltcG9ydFR5cGUobmFtZSwgY29udGV4dCkge1xuICByZXR1cm4gdHlwZVRlc3QobmFtZSwgY29udGV4dCwgcmVzb2x2ZShuYW1lLCBjb250ZXh0KSk7XG59XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/core/packagePath.js b/node_modules/eslint-plugin-import/lib/core/packagePath.js new file mode 100644 index 0000000000..f7ddd711aa --- /dev/null +++ b/node_modules/eslint-plugin-import/lib/core/packagePath.js @@ -0,0 +1,19 @@ +'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports. + + + + +getContextPackagePath = getContextPackagePath;exports. + + + +getFilePackagePath = getFilePackagePath;exports. + + + + +getFilePackageName = getFilePackageName;var _path = require('path');var _findUp = require('find-up');var _findUp2 = _interopRequireDefault(_findUp);var _readPkgUp = require('read-pkg-up');var _readPkgUp2 = _interopRequireDefault(_readPkgUp);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function getContextPackagePath(context) {return getFilePackagePath(context.getFilename());}function getFilePackagePath(filePath) {const fp = _findUp2.default.sync('package.json', { cwd: filePath });return (0, _path.dirname)(fp);}function getFilePackageName(filePath) {var _readPkgUp$sync = + _readPkgUp2.default.sync({ cwd: filePath, normalize: false });const pkg = _readPkgUp$sync.pkg; + return pkg && pkg.name; +} +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3BhY2thZ2VQYXRoLmpzIl0sIm5hbWVzIjpbImdldENvbnRleHRQYWNrYWdlUGF0aCIsImdldEZpbGVQYWNrYWdlUGF0aCIsImdldEZpbGVQYWNrYWdlTmFtZSIsImNvbnRleHQiLCJnZXRGaWxlbmFtZSIsImZpbGVQYXRoIiwiZnAiLCJmaW5kVXAiLCJzeW5jIiwiY3dkIiwicmVhZFBrZ1VwIiwibm9ybWFsaXplIiwicGtnIiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLZ0JBLHFCLEdBQUFBLHFCOzs7O0FBSUFDLGtCLEdBQUFBLGtCOzs7OztBQUtBQyxrQixHQUFBQSxrQixDQWRoQiw0QkFDQSxpQywrQ0FDQSx3QyxrSkFHTyxTQUFTRixxQkFBVCxDQUErQkcsT0FBL0IsRUFBd0MsQ0FDN0MsT0FBT0YsbUJBQW1CRSxRQUFRQyxXQUFSLEVBQW5CLENBQVAsQ0FDRCxDQUVNLFNBQVNILGtCQUFULENBQTRCSSxRQUE1QixFQUFzQyxDQUMzQyxNQUFNQyxLQUFLQyxpQkFBT0MsSUFBUCxDQUFZLGNBQVosRUFBNEIsRUFBRUMsS0FBS0osUUFBUCxFQUE1QixDQUFYLENBQ0EsT0FBTyxtQkFBUUMsRUFBUixDQUFQLENBQ0QsQ0FFTSxTQUFTSixrQkFBVCxDQUE0QkcsUUFBNUIsRUFBc0M7QUFDM0JLLHNCQUFVRixJQUFWLENBQWUsRUFBRUMsS0FBS0osUUFBUCxFQUFpQk0sV0FBVyxLQUE1QixFQUFmLENBRDJCLE9BQ25DQyxHQURtQyxtQkFDbkNBLEdBRG1DO0FBRTNDLFNBQU9BLE9BQU9BLElBQUlDLElBQWxCO0FBQ0QiLCJmaWxlIjoicGFja2FnZVBhdGguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgZmluZFVwIGZyb20gJ2ZpbmQtdXAnO1xuaW1wb3J0IHJlYWRQa2dVcCBmcm9tICdyZWFkLXBrZy11cCc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRleHRQYWNrYWdlUGF0aChjb250ZXh0KSB7XG4gIHJldHVybiBnZXRGaWxlUGFja2FnZVBhdGgoY29udGV4dC5nZXRGaWxlbmFtZSgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVQYWNrYWdlUGF0aChmaWxlUGF0aCkge1xuICBjb25zdCBmcCA9IGZpbmRVcC5zeW5jKCdwYWNrYWdlLmpzb24nLCB7IGN3ZDogZmlsZVBhdGggfSk7XG4gIHJldHVybiBkaXJuYW1lKGZwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVQYWNrYWdlTmFtZShmaWxlUGF0aCkge1xuICBjb25zdCB7IHBrZyB9ID0gcmVhZFBrZ1VwLnN5bmMoeyBjd2Q6IGZpbGVQYXRoLCBub3JtYWxpemU6IGZhbHNlIH0pO1xuICByZXR1cm4gcGtnICYmIHBrZy5uYW1lO1xufVxuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/core/staticRequire.js b/node_modules/eslint-plugin-import/lib/core/staticRequire.js index 507dce5563..9b998b3ac6 100644 --- a/node_modules/eslint-plugin-import/lib/core/staticRequire.js +++ b/node_modules/eslint-plugin-import/lib/core/staticRequire.js @@ -8,4 +8,4 @@ function isStaticRequire(node) {return node && node.arguments[0].type === 'Literal' && typeof node.arguments[0].value === 'string'; } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3N0YXRpY1JlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNTdGF0aWNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7QUFDd0JBLGUsRUFEeEI7QUFDZSxTQUFTQSxlQUFULENBQXlCQyxJQUF6QixFQUErQixDQUM1QyxPQUFPQTtBQUNMQSxPQUFLQyxNQURBO0FBRUxELE9BQUtDLE1BQUwsQ0FBWUMsSUFBWixLQUFxQixZQUZoQjtBQUdMRixPQUFLQyxNQUFMLENBQVlFLElBQVosS0FBcUIsU0FIaEI7QUFJTEgsT0FBS0ksU0FBTCxDQUFlQyxNQUFmLEtBQTBCLENBSnJCO0FBS0xMLE9BQUtJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRixJQUFsQixLQUEyQixTQUx0QjtBQU1MLFNBQU9GLEtBQUtJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRSxLQUF6QixLQUFtQyxRQU5yQztBQU9EIiwiZmlsZSI6InN0YXRpY1JlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0b2RvOiBtZXJnZSB3aXRoIG1vZHVsZSB2aXNpdG9yXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgbm9kZS5hcmd1bWVudHNbMF0udHlwZSA9PT0gJ0xpdGVyYWwnICYmXG4gICAgdHlwZW9mIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlID09PSAnc3RyaW5nJ1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3N0YXRpY1JlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNTdGF0aWNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7QUFDd0JBLGUsRUFEeEI7QUFDZSxTQUFTQSxlQUFULENBQXlCQyxJQUF6QixFQUErQixDQUM1QyxPQUFPQTtBQUNMQSxPQUFLQyxNQURBO0FBRUxELE9BQUtDLE1BQUwsQ0FBWUMsSUFBWixLQUFxQixZQUZoQjtBQUdMRixPQUFLQyxNQUFMLENBQVlFLElBQVosS0FBcUIsU0FIaEI7QUFJTEgsT0FBS0ksU0FBTCxDQUFlQyxNQUFmLEtBQTBCLENBSnJCO0FBS0xMLE9BQUtJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRixJQUFsQixLQUEyQixTQUx0QjtBQU1MLFNBQU9GLEtBQUtJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCRSxLQUF6QixLQUFtQyxRQU5yQztBQU9EIiwiZmlsZSI6InN0YXRpY1JlcXVpcmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0b2RvOiBtZXJnZSB3aXRoIG1vZHVsZSB2aXNpdG9yXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgbm9kZS5hcmd1bWVudHNbMF0udHlwZSA9PT0gJ0xpdGVyYWwnICYmXG4gICAgdHlwZW9mIG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlID09PSAnc3RyaW5nJztcbn1cbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/docsUrl.js b/node_modules/eslint-plugin-import/lib/docsUrl.js index d8aae5fc6b..58cf00d42b 100644 --- a/node_modules/eslint-plugin-import/lib/docsUrl.js +++ b/node_modules/eslint-plugin-import/lib/docsUrl.js @@ -5,4 +5,4 @@ docsUrl;var _package = require('../package.json');var _package2 = _interopRequireDefault(_package);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const repoUrl = 'https://github.com/benmosher/eslint-plugin-import';function docsUrl(ruleName) {let commitish = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : `v${_package2.default.version}`; return `${repoUrl}/blob/${commitish}/docs/rules/${ruleName}.md`; } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb2NzVXJsLmpzIl0sIm5hbWVzIjpbImRvY3NVcmwiLCJyZXBvVXJsIiwicnVsZU5hbWUiLCJjb21taXRpc2giLCJwa2ciLCJ2ZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBSXdCQSxPLENBSnhCLDBDLDhJQUVBLE1BQU1DLFVBQVUsbURBQWhCLENBRWUsU0FBU0QsT0FBVCxDQUFpQkUsUUFBakIsRUFBMEQsS0FBL0JDLFNBQStCLHVFQUFsQixJQUFHQyxrQkFBSUMsT0FBUSxFQUFHO0FBQ3ZFLFNBQVEsR0FBRUosT0FBUSxTQUFRRSxTQUFVLGVBQWNELFFBQVMsS0FBM0Q7QUFDRCIsImZpbGUiOiJkb2NzVXJsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBrZyBmcm9tICcuLi9wYWNrYWdlLmpzb24nXG5cbmNvbnN0IHJlcG9VcmwgPSAnaHR0cHM6Ly9naXRodWIuY29tL2Jlbm1vc2hlci9lc2xpbnQtcGx1Z2luLWltcG9ydCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jc1VybChydWxlTmFtZSwgY29tbWl0aXNoID0gYHYke3BrZy52ZXJzaW9ufWApIHtcbiAgcmV0dXJuIGAke3JlcG9Vcmx9L2Jsb2IvJHtjb21taXRpc2h9L2RvY3MvcnVsZXMvJHtydWxlTmFtZX0ubWRgXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb2NzVXJsLmpzIl0sIm5hbWVzIjpbImRvY3NVcmwiLCJyZXBvVXJsIiwicnVsZU5hbWUiLCJjb21taXRpc2giLCJwa2ciLCJ2ZXJzaW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBSXdCQSxPLENBSnhCLDBDLDhJQUVBLE1BQU1DLFVBQVUsbURBQWhCLENBRWUsU0FBU0QsT0FBVCxDQUFpQkUsUUFBakIsRUFBMEQsS0FBL0JDLFNBQStCLHVFQUFsQixJQUFHQyxrQkFBSUMsT0FBUSxFQUFHO0FBQ3ZFLFNBQVEsR0FBRUosT0FBUSxTQUFRRSxTQUFVLGVBQWNELFFBQVMsS0FBM0Q7QUFDRCIsImZpbGUiOiJkb2NzVXJsLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBrZyBmcm9tICcuLi9wYWNrYWdlLmpzb24nO1xuXG5jb25zdCByZXBvVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9iZW5tb3NoZXIvZXNsaW50LXBsdWdpbi1pbXBvcnQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkb2NzVXJsKHJ1bGVOYW1lLCBjb21taXRpc2ggPSBgdiR7cGtnLnZlcnNpb259YCkge1xuICByZXR1cm4gYCR7cmVwb1VybH0vYmxvYi8ke2NvbW1pdGlzaH0vZG9jcy9ydWxlcy8ke3J1bGVOYW1lfS5tZGA7XG59XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/importDeclaration.js b/node_modules/eslint-plugin-import/lib/importDeclaration.js index eefe50cc28..091b61c959 100644 --- a/node_modules/eslint-plugin-import/lib/importDeclaration.js +++ b/node_modules/eslint-plugin-import/lib/importDeclaration.js @@ -1,5 +1,5 @@ "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = importDeclaration;function importDeclaration(context) { - var ancestors = context.getAncestors(); + const ancestors = context.getAncestors(); return ancestors[ancestors.length - 1]; } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbXBvcnREZWNsYXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJpbXBvcnREZWNsYXJhdGlvbiIsImNvbnRleHQiLCJhbmNlc3RvcnMiLCJnZXRBbmNlc3RvcnMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI2RkFBd0JBLGlCLENBQVQsU0FBU0EsaUJBQVQsQ0FBMkJDLE9BQTNCLEVBQW9DO0FBQ2pELE1BQUlDLFlBQVlELFFBQVFFLFlBQVIsRUFBaEI7QUFDQSxTQUFPRCxVQUFVQSxVQUFVRSxNQUFWLEdBQW1CLENBQTdCLENBQVA7QUFDRCIsImZpbGUiOiJpbXBvcnREZWNsYXJhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpIHtcbiAgdmFyIGFuY2VzdG9ycyA9IGNvbnRleHQuZ2V0QW5jZXN0b3JzKClcbiAgcmV0dXJuIGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV1cbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbXBvcnREZWNsYXJhdGlvbi5qcyJdLCJuYW1lcyI6WyJpbXBvcnREZWNsYXJhdGlvbiIsImNvbnRleHQiLCJhbmNlc3RvcnMiLCJnZXRBbmNlc3RvcnMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI2RkFBd0JBLGlCLENBQVQsU0FBU0EsaUJBQVQsQ0FBMkJDLE9BQTNCLEVBQW9DO0FBQ2pELFFBQU1DLFlBQVlELFFBQVFFLFlBQVIsRUFBbEI7QUFDQSxTQUFPRCxVQUFVQSxVQUFVRSxNQUFWLEdBQW1CLENBQTdCLENBQVA7QUFDRCIsImZpbGUiOiJpbXBvcnREZWNsYXJhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpIHtcbiAgY29uc3QgYW5jZXN0b3JzID0gY29udGV4dC5nZXRBbmNlc3RvcnMoKTtcbiAgcmV0dXJuIGFuY2VzdG9yc1thbmNlc3RvcnMubGVuZ3RoIC0gMV07XG59XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/index.js b/node_modules/eslint-plugin-import/lib/index.js index 6497f690fe..564042abd9 100644 --- a/node_modules/eslint-plugin-import/lib/index.js +++ b/node_modules/eslint-plugin-import/lib/index.js @@ -10,6 +10,7 @@ 'no-restricted-paths': require('./rules/no-restricted-paths'), 'no-internal-modules': require('./rules/no-internal-modules'), 'group-exports': require('./rules/group-exports'), + 'no-relative-packages': require('./rules/no-relative-packages'), 'no-relative-parent-imports': require('./rules/no-relative-parent-imports'), 'no-self-import': require('./rules/no-self-import'), @@ -39,6 +40,7 @@ 'no-unassigned-import': require('./rules/no-unassigned-import'), 'no-useless-path-segments': require('./rules/no-useless-path-segments'), 'dynamic-import-chunkname': require('./rules/dynamic-import-chunkname'), + 'no-import-module-exports': require('./rules/no-import-module-exports'), // export 'exports-last': require('./rules/exports-last'), @@ -64,4 +66,4 @@ const configs = exports.configs = { 'react-native': require('../config/react-native'), 'electron': require('../config/electron'), 'typescript': require('../config/typescript') }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJydWxlcyIsInJlcXVpcmUiLCJjb25maWdzIl0sIm1hcHBpbmdzIjoiMkVBQU8sTUFBTUEsd0JBQVE7QUFDbkIsbUJBQWlCQyxRQUFRLHVCQUFSLENBREU7QUFFbkIsV0FBU0EsUUFBUSxlQUFSLENBRlU7QUFHbkIsYUFBV0EsUUFBUSxpQkFBUixDQUhRO0FBSW5CLGVBQWFBLFFBQVEsbUJBQVIsQ0FKTTtBQUtuQixrQkFBZ0JBLFFBQVEsc0JBQVIsQ0FMRztBQU1uQixZQUFVQSxRQUFRLGdCQUFSLENBTlM7QUFPbkIsd0JBQXNCQSxRQUFRLDRCQUFSLENBUEg7QUFRbkIsZ0JBQWNBLFFBQVEsb0JBQVIsQ0FSSztBQVNuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FUSjtBQVVuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FWSjtBQVduQixtQkFBaUJBLFFBQVEsdUJBQVIsQ0FYRTtBQVluQixnQ0FBOEJBLFFBQVEsb0NBQVIsQ0FaWDs7QUFjbkIsb0JBQWtCQSxRQUFRLHdCQUFSLENBZEM7QUFlbkIsY0FBWUEsUUFBUSxrQkFBUixDQWZPO0FBZ0JuQixzQkFBb0JBLFFBQVEsMEJBQVIsQ0FoQkQ7QUFpQm5CLHlCQUF1QkEsUUFBUSw2QkFBUixDQWpCSjtBQWtCbkIsZ0NBQThCQSxRQUFRLG9DQUFSLENBbEJYO0FBbUJuQixpQ0FBK0JBLFFBQVEscUNBQVIsQ0FuQlo7QUFvQm5CLHVCQUFxQkEsUUFBUSwyQkFBUixDQXBCRjs7QUFzQm5CLGlCQUFlQSxRQUFRLHFCQUFSLENBdEJJO0FBdUJuQixZQUFVQSxRQUFRLGdCQUFSLENBdkJTO0FBd0JuQixtQkFBaUJBLFFBQVEsdUJBQVIsQ0F4QkU7QUF5Qm5CLFdBQVNBLFFBQVEsZUFBUixDQXpCVTtBQTBCbkIsc0JBQW9CQSxRQUFRLDBCQUFSLENBMUJEO0FBMkJuQixnQ0FBOEJBLFFBQVEsb0NBQVIsQ0EzQlg7QUE0Qm5CLHNCQUFvQkEsUUFBUSwwQkFBUixDQTVCRDtBQTZCbkIsdUJBQXFCQSxRQUFRLDJCQUFSLENBN0JGO0FBOEJuQiw4QkFBNEJBLFFBQVEsa0NBQVIsQ0E5QlQ7QUErQm5CLFdBQVNBLFFBQVEsZUFBUixDQS9CVTtBQWdDbkIsMEJBQXdCQSxRQUFRLDhCQUFSLENBaENMO0FBaUNuQiwyQkFBeUJBLFFBQVEsK0JBQVIsQ0FqQ047QUFrQ25CLHVCQUFxQkEsUUFBUSwyQkFBUixDQWxDRjtBQW1DbkIscUJBQW1CQSxRQUFRLHlCQUFSLENBbkNBO0FBb0NuQix3QkFBc0JBLFFBQVEsNEJBQVIsQ0FwQ0g7QUFxQ25CLGlCQUFlQSxRQUFRLHFCQUFSLENBckNJO0FBc0NuQiwwQkFBd0JBLFFBQVEsOEJBQVIsQ0F0Q0w7QUF1Q25CLDhCQUE0QkEsUUFBUSxrQ0FBUixDQXZDVDtBQXdDbkIsOEJBQTRCQSxRQUFRLGtDQUFSLENBeENUOztBQTBDbkI7QUFDQSxrQkFBZ0JBLFFBQVEsc0JBQVIsQ0EzQ0c7O0FBNkNuQjtBQUNBLG1CQUFpQkEsUUFBUSx1QkFBUixDQTlDRTs7QUFnRG5CO0FBQ0EsbUJBQWlCQSxRQUFRLHVCQUFSLENBakRFLEVBQWQ7OztBQW9EQSxNQUFNQyw0QkFBVTtBQUNyQixpQkFBZUQsUUFBUSx1QkFBUixDQURNOztBQUdyQixZQUFVQSxRQUFRLGtCQUFSLENBSFc7QUFJckIsY0FBWUEsUUFBUSxvQkFBUixDQUpTOztBQU1yQjtBQUNBLGFBQVdBLFFBQVEsbUJBQVIsQ0FQVTs7QUFTckI7QUFDQSxXQUFTQSxRQUFRLGlCQUFSLENBVlk7QUFXckIsa0JBQWdCQSxRQUFRLHdCQUFSLENBWEs7QUFZckIsY0FBWUEsUUFBUSxvQkFBUixDQVpTO0FBYXJCLGdCQUFjQSxRQUFRLHNCQUFSLENBYk8sRUFBaEIiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gICduby11bnJlc29sdmVkJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnJlc29sdmVkJyksXG4gICduYW1lZCc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZWQnKSxcbiAgJ2RlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL2RlZmF1bHQnKSxcbiAgJ25hbWVzcGFjZSc6IHJlcXVpcmUoJy4vcnVsZXMvbmFtZXNwYWNlJyksXG4gICduby1uYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVzcGFjZScpLFxuICAnZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnQnKSxcbiAgJ25vLW11dGFibGUtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICdleHRlbnNpb25zJzogcmVxdWlyZSgnLi9ydWxlcy9leHRlbnNpb25zJyksXG4gICduby1yZXN0cmljdGVkLXBhdGhzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzJyksXG4gICduby1pbnRlcm5hbC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzJyksXG4gICdncm91cC1leHBvcnRzJzogcmVxdWlyZSgnLi9ydWxlcy9ncm91cC1leHBvcnRzJyksXG4gICduby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMnKSxcblxuICAnbm8tc2VsZi1pbXBvcnQnOiByZXF1aXJlKCcuL3J1bGVzL25vLXNlbGYtaW1wb3J0JyksXG4gICduby1jeWNsZSc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY3ljbGUnKSxcbiAgJ25vLW5hbWVkLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuICAnbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLXVudXNlZC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnVzZWQtbW9kdWxlcycpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdmaXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvZmlyc3QnKSxcbiAgJ21heC1kZXBlbmRlbmNpZXMnOiByZXF1aXJlKCcuL3J1bGVzL21heC1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcycpLFxuICAnbm8tYWJzb2x1dGUtcGF0aCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYWJzb2x1dGUtcGF0aCcpLFxuICAnbm8tbm9kZWpzLW1vZHVsZXMnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5vZGVqcy1tb2R1bGVzJyksXG4gICduby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiByZXF1aXJlKCcuL3J1bGVzL25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCcpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICduby1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLW5hbWVkLWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbmFtZWQtZXhwb3J0JyksXG4gICduby1keW5hbWljLXJlcXVpcmUnOiByZXF1aXJlKCcuL3J1bGVzL25vLWR5bmFtaWMtcmVxdWlyZScpLFxuICAndW5hbWJpZ3VvdXMnOiByZXF1aXJlKCcuL3J1bGVzL3VuYW1iaWd1b3VzJyksXG4gICduby11bmFzc2lnbmVkLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdW5hc3NpZ25lZC1pbXBvcnQnKSxcbiAgJ25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJyksXG4gICdkeW5hbWljLWltcG9ydC1jaHVua25hbWUnOiByZXF1aXJlKCcuL3J1bGVzL2R5bmFtaWMtaW1wb3J0LWNodW5rbmFtZScpLFxuXG4gIC8vIGV4cG9ydFxuICAnZXhwb3J0cy1sYXN0JzogcmVxdWlyZSgnLi9ydWxlcy9leHBvcnRzLWxhc3QnKSxcblxuICAvLyBtZXRhZGF0YS1iYXNlZFxuICAnbm8tZGVwcmVjYXRlZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVwcmVjYXRlZCcpLFxuXG4gIC8vIGRlcHJlY2F0ZWQgYWxpYXNlcyB0byBydWxlc1xuICAnaW1wb3J0cy1maXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvaW1wb3J0cy1maXJzdCcpLFxufVxuXG5leHBvcnQgY29uc3QgY29uZmlncyA9IHtcbiAgJ3JlY29tbWVuZGVkJzogcmVxdWlyZSgnLi4vY29uZmlnL3JlY29tbWVuZGVkJyksXG5cbiAgJ2Vycm9ycyc6IHJlcXVpcmUoJy4uL2NvbmZpZy9lcnJvcnMnKSxcbiAgJ3dhcm5pbmdzJzogcmVxdWlyZSgnLi4vY29uZmlnL3dhcm5pbmdzJyksXG5cbiAgLy8gc2hoaGguLi4gd29yayBpbiBwcm9ncmVzcyBcInNlY3JldFwiIHJ1bGVzXG4gICdzdGFnZS0wJzogcmVxdWlyZSgnLi4vY29uZmlnL3N0YWdlLTAnKSxcblxuICAvLyB1c2VmdWwgc3R1ZmYgZm9yIGZvbGtzIHVzaW5nIHZhcmlvdXMgZW52aXJvbm1lbnRzXG4gICdyZWFjdCc6IHJlcXVpcmUoJy4uL2NvbmZpZy9yZWFjdCcpLFxuICAncmVhY3QtbmF0aXZlJzogcmVxdWlyZSgnLi4vY29uZmlnL3JlYWN0LW5hdGl2ZScpLFxuICAnZWxlY3Ryb24nOiByZXF1aXJlKCcuLi9jb25maWcvZWxlY3Ryb24nKSxcbiAgJ3R5cGVzY3JpcHQnOiByZXF1aXJlKCcuLi9jb25maWcvdHlwZXNjcmlwdCcpLFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJydWxlcyIsInJlcXVpcmUiLCJjb25maWdzIl0sIm1hcHBpbmdzIjoiMkVBQU8sTUFBTUEsd0JBQVE7QUFDbkIsbUJBQWlCQyxRQUFRLHVCQUFSLENBREU7QUFFbkIsV0FBU0EsUUFBUSxlQUFSLENBRlU7QUFHbkIsYUFBV0EsUUFBUSxpQkFBUixDQUhRO0FBSW5CLGVBQWFBLFFBQVEsbUJBQVIsQ0FKTTtBQUtuQixrQkFBZ0JBLFFBQVEsc0JBQVIsQ0FMRztBQU1uQixZQUFVQSxRQUFRLGdCQUFSLENBTlM7QUFPbkIsd0JBQXNCQSxRQUFRLDRCQUFSLENBUEg7QUFRbkIsZ0JBQWNBLFFBQVEsb0JBQVIsQ0FSSztBQVNuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FUSjtBQVVuQix5QkFBdUJBLFFBQVEsNkJBQVIsQ0FWSjtBQVduQixtQkFBaUJBLFFBQVEsdUJBQVIsQ0FYRTtBQVluQiwwQkFBd0JBLFFBQVEsOEJBQVIsQ0FaTDtBQWFuQixnQ0FBOEJBLFFBQVEsb0NBQVIsQ0FiWDs7QUFlbkIsb0JBQWtCQSxRQUFRLHdCQUFSLENBZkM7QUFnQm5CLGNBQVlBLFFBQVEsa0JBQVIsQ0FoQk87QUFpQm5CLHNCQUFvQkEsUUFBUSwwQkFBUixDQWpCRDtBQWtCbkIseUJBQXVCQSxRQUFRLDZCQUFSLENBbEJKO0FBbUJuQixnQ0FBOEJBLFFBQVEsb0NBQVIsQ0FuQlg7QUFvQm5CLGlDQUErQkEsUUFBUSxxQ0FBUixDQXBCWjtBQXFCbkIsdUJBQXFCQSxRQUFRLDJCQUFSLENBckJGOztBQXVCbkIsaUJBQWVBLFFBQVEscUJBQVIsQ0F2Qkk7QUF3Qm5CLFlBQVVBLFFBQVEsZ0JBQVIsQ0F4QlM7QUF5Qm5CLG1CQUFpQkEsUUFBUSx1QkFBUixDQXpCRTtBQTBCbkIsV0FBU0EsUUFBUSxlQUFSLENBMUJVO0FBMkJuQixzQkFBb0JBLFFBQVEsMEJBQVIsQ0EzQkQ7QUE0Qm5CLGdDQUE4QkEsUUFBUSxvQ0FBUixDQTVCWDtBQTZCbkIsc0JBQW9CQSxRQUFRLDBCQUFSLENBN0JEO0FBOEJuQix1QkFBcUJBLFFBQVEsMkJBQVIsQ0E5QkY7QUErQm5CLDhCQUE0QkEsUUFBUSxrQ0FBUixDQS9CVDtBQWdDbkIsV0FBU0EsUUFBUSxlQUFSLENBaENVO0FBaUNuQiwwQkFBd0JBLFFBQVEsOEJBQVIsQ0FqQ0w7QUFrQ25CLDJCQUF5QkEsUUFBUSwrQkFBUixDQWxDTjtBQW1DbkIsdUJBQXFCQSxRQUFRLDJCQUFSLENBbkNGO0FBb0NuQixxQkFBbUJBLFFBQVEseUJBQVIsQ0FwQ0E7QUFxQ25CLHdCQUFzQkEsUUFBUSw0QkFBUixDQXJDSDtBQXNDbkIsaUJBQWVBLFFBQVEscUJBQVIsQ0F0Q0k7QUF1Q25CLDBCQUF3QkEsUUFBUSw4QkFBUixDQXZDTDtBQXdDbkIsOEJBQTRCQSxRQUFRLGtDQUFSLENBeENUO0FBeUNuQiw4QkFBNEJBLFFBQVEsa0NBQVIsQ0F6Q1Q7QUEwQ25CLDhCQUE0QkEsUUFBUSxrQ0FBUixDQTFDVDs7QUE0Q25CO0FBQ0Esa0JBQWdCQSxRQUFRLHNCQUFSLENBN0NHOztBQStDbkI7QUFDQSxtQkFBaUJBLFFBQVEsdUJBQVIsQ0FoREU7O0FBa0RuQjtBQUNBLG1CQUFpQkEsUUFBUSx1QkFBUixDQW5ERSxFQUFkOzs7QUFzREEsTUFBTUMsNEJBQVU7QUFDckIsaUJBQWVELFFBQVEsdUJBQVIsQ0FETTs7QUFHckIsWUFBVUEsUUFBUSxrQkFBUixDQUhXO0FBSXJCLGNBQVlBLFFBQVEsb0JBQVIsQ0FKUzs7QUFNckI7QUFDQSxhQUFXQSxRQUFRLG1CQUFSLENBUFU7O0FBU3JCO0FBQ0EsV0FBU0EsUUFBUSxpQkFBUixDQVZZO0FBV3JCLGtCQUFnQkEsUUFBUSx3QkFBUixDQVhLO0FBWXJCLGNBQVlBLFFBQVEsb0JBQVIsQ0FaUztBQWFyQixnQkFBY0EsUUFBUSxzQkFBUixDQWJPLEVBQWhCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHJ1bGVzID0ge1xuICAnbm8tdW5yZXNvbHZlZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdW5yZXNvbHZlZCcpLFxuICAnbmFtZWQnOiByZXF1aXJlKCcuL3J1bGVzL25hbWVkJyksXG4gICdkZWZhdWx0JzogcmVxdWlyZSgnLi9ydWxlcy9kZWZhdWx0JyksXG4gICduYW1lc3BhY2UnOiByZXF1aXJlKCcuL3J1bGVzL25hbWVzcGFjZScpLFxuICAnbm8tbmFtZXNwYWNlJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lc3BhY2UnKSxcbiAgJ2V4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvZXhwb3J0JyksXG4gICduby1tdXRhYmxlLWV4cG9ydHMnOiByZXF1aXJlKCcuL3J1bGVzL25vLW11dGFibGUtZXhwb3J0cycpLFxuICAnZXh0ZW5zaW9ucyc6IHJlcXVpcmUoJy4vcnVsZXMvZXh0ZW5zaW9ucycpLFxuICAnbm8tcmVzdHJpY3RlZC1wYXRocyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tcmVzdHJpY3RlZC1wYXRocycpLFxuICAnbm8taW50ZXJuYWwtbW9kdWxlcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8taW50ZXJuYWwtbW9kdWxlcycpLFxuICAnZ3JvdXAtZXhwb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvZ3JvdXAtZXhwb3J0cycpLFxuICAnbm8tcmVsYXRpdmUtcGFja2FnZXMnOiByZXF1aXJlKCcuL3J1bGVzL25vLXJlbGF0aXZlLXBhY2thZ2VzJyksXG4gICduby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tcmVsYXRpdmUtcGFyZW50LWltcG9ydHMnKSxcblxuICAnbm8tc2VsZi1pbXBvcnQnOiByZXF1aXJlKCcuL3J1bGVzL25vLXNlbGYtaW1wb3J0JyksXG4gICduby1jeWNsZSc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY3ljbGUnKSxcbiAgJ25vLW5hbWVkLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgJ25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyJzogcmVxdWlyZSgnLi9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlcicpLFxuICAnbm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0JzogcmVxdWlyZSgnLi9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLXVudXNlZC1tb2R1bGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby11bnVzZWQtbW9kdWxlcycpLFxuXG4gICduby1jb21tb25qcyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tY29tbW9uanMnKSxcbiAgJ25vLWFtZCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYW1kJyksXG4gICduby1kdXBsaWNhdGVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1kdXBsaWNhdGVzJyksXG4gICdmaXJzdCc6IHJlcXVpcmUoJy4vcnVsZXMvZmlyc3QnKSxcbiAgJ21heC1kZXBlbmRlbmNpZXMnOiByZXF1aXJlKCcuL3J1bGVzL21heC1kZXBlbmRlbmNpZXMnKSxcbiAgJ25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcycpLFxuICAnbm8tYWJzb2x1dGUtcGF0aCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tYWJzb2x1dGUtcGF0aCcpLFxuICAnbm8tbm9kZWpzLW1vZHVsZXMnOiByZXF1aXJlKCcuL3J1bGVzL25vLW5vZGVqcy1tb2R1bGVzJyksXG4gICduby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiByZXF1aXJlKCcuL3J1bGVzL25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCcpLFxuICAnb3JkZXInOiByZXF1aXJlKCcuL3J1bGVzL29yZGVyJyksXG4gICduZXdsaW5lLWFmdGVyLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgJ3ByZWZlci1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvcHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICduby1kZWZhdWx0LWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tZGVmYXVsdC1leHBvcnQnKSxcbiAgJ25vLW5hbWVkLWV4cG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tbmFtZWQtZXhwb3J0JyksXG4gICduby1keW5hbWljLXJlcXVpcmUnOiByZXF1aXJlKCcuL3J1bGVzL25vLWR5bmFtaWMtcmVxdWlyZScpLFxuICAndW5hbWJpZ3VvdXMnOiByZXF1aXJlKCcuL3J1bGVzL3VuYW1iaWd1b3VzJyksXG4gICduby11bmFzc2lnbmVkLWltcG9ydCc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdW5hc3NpZ25lZC1pbXBvcnQnKSxcbiAgJ25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6IHJlcXVpcmUoJy4vcnVsZXMvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJyksXG4gICdkeW5hbWljLWltcG9ydC1jaHVua25hbWUnOiByZXF1aXJlKCcuL3J1bGVzL2R5bmFtaWMtaW1wb3J0LWNodW5rbmFtZScpLFxuICAnbm8taW1wb3J0LW1vZHVsZS1leHBvcnRzJzogcmVxdWlyZSgnLi9ydWxlcy9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnKSxcblxuICAvLyBleHBvcnRcbiAgJ2V4cG9ydHMtbGFzdCc6IHJlcXVpcmUoJy4vcnVsZXMvZXhwb3J0cy1sYXN0JyksXG5cbiAgLy8gbWV0YWRhdGEtYmFzZWRcbiAgJ25vLWRlcHJlY2F0ZWQnOiByZXF1aXJlKCcuL3J1bGVzL25vLWRlcHJlY2F0ZWQnKSxcblxuICAvLyBkZXByZWNhdGVkIGFsaWFzZXMgdG8gcnVsZXNcbiAgJ2ltcG9ydHMtZmlyc3QnOiByZXF1aXJlKCcuL3J1bGVzL2ltcG9ydHMtZmlyc3QnKSxcbn07XG5cbmV4cG9ydCBjb25zdCBjb25maWdzID0ge1xuICAncmVjb21tZW5kZWQnOiByZXF1aXJlKCcuLi9jb25maWcvcmVjb21tZW5kZWQnKSxcblxuICAnZXJyb3JzJzogcmVxdWlyZSgnLi4vY29uZmlnL2Vycm9ycycpLFxuICAnd2FybmluZ3MnOiByZXF1aXJlKCcuLi9jb25maWcvd2FybmluZ3MnKSxcblxuICAvLyBzaGhoaC4uLiB3b3JrIGluIHByb2dyZXNzIFwic2VjcmV0XCIgcnVsZXNcbiAgJ3N0YWdlLTAnOiByZXF1aXJlKCcuLi9jb25maWcvc3RhZ2UtMCcpLFxuXG4gIC8vIHVzZWZ1bCBzdHVmZiBmb3IgZm9sa3MgdXNpbmcgdmFyaW91cyBlbnZpcm9ubWVudHNcbiAgJ3JlYWN0JzogcmVxdWlyZSgnLi4vY29uZmlnL3JlYWN0JyksXG4gICdyZWFjdC1uYXRpdmUnOiByZXF1aXJlKCcuLi9jb25maWcvcmVhY3QtbmF0aXZlJyksXG4gICdlbGVjdHJvbic6IHJlcXVpcmUoJy4uL2NvbmZpZy9lbGVjdHJvbicpLFxuICAndHlwZXNjcmlwdCc6IHJlcXVpcmUoJy4uL2NvbmZpZy90eXBlc2NyaXB0JyksXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/default.js b/node_modules/eslint-plugin-import/lib/rules/default.js index 933538ad57..08c73ae4e6 100644 --- a/node_modules/eslint-plugin-import/lib/rules/default.js +++ b/node_modules/eslint-plugin-import/lib/rules/default.js @@ -19,7 +19,7 @@ module.exports = { if (!defaultSpecifier) return; - var imports = _ExportMap2.default.get(node.source.value, context); + const imports = _ExportMap2.default.get(node.source.value, context); if (imports == null) return; if (imports.errors.length) { @@ -37,4 +37,4 @@ module.exports = { 'ExportNamedDeclaration': checkDefault.bind(null, 'ExportDefaultSpecifier') }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0Iiwic3BlY2lmaWVyVHlwZSIsIm5vZGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImZpbmQiLCJzcGVjaWZpZXIiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwidW5kZWZpbmVkIiwicmVwb3J0IiwibWVzc2FnZSIsImJpbmQiXSwibWFwcGluZ3MiOiJhQUFBLHlDO0FBQ0EscUM7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFNBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjs7QUFFekIsYUFBU0MsWUFBVCxDQUFzQkMsYUFBdEIsRUFBcUNDLElBQXJDLEVBQTJDOztBQUV6QyxZQUFNQyxtQkFBbUJELEtBQUtFLFVBQUwsQ0FBZ0JDLElBQWhCO0FBQ3ZCQyxtQkFBYUEsVUFBVVosSUFBVixLQUFtQk8sYUFEVCxDQUF6Qjs7O0FBSUEsVUFBSSxDQUFDRSxnQkFBTCxFQUF1QjtBQUN2QixVQUFJSSxVQUFVQyxvQkFBUUMsR0FBUixDQUFZUCxLQUFLUSxNQUFMLENBQVlDLEtBQXhCLEVBQStCWixPQUEvQixDQUFkO0FBQ0EsVUFBSVEsV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSyxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTixnQkFBUU8sWUFBUixDQUFxQmYsT0FBckIsRUFBOEJHLElBQTlCO0FBQ0QsT0FGRCxNQUVPLElBQUlLLFFBQVFFLEdBQVIsQ0FBWSxTQUFaLE1BQTJCTSxTQUEvQixFQUEwQztBQUMvQ2hCLGdCQUFRaUIsTUFBUixDQUFlO0FBQ2JkLGdCQUFNQyxnQkFETztBQUViYyxtQkFBVSwrQ0FBOENmLEtBQUtRLE1BQUwsQ0FBWUMsS0FBTSxJQUY3RCxFQUFmOztBQUlEO0FBQ0Y7O0FBRUQsV0FBTztBQUNMLDJCQUFxQlgsYUFBYWtCLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCLENBRGhCO0FBRUwsZ0NBQTBCbEIsYUFBYWtCLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0Isd0JBQXhCLENBRnJCLEVBQVA7O0FBSUQsR0FuQ2MsRUFBakIiLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBmdW5jdGlvbiBjaGVja0RlZmF1bHQoc3BlY2lmaWVyVHlwZSwgbm9kZSkge1xuXG4gICAgICBjb25zdCBkZWZhdWx0U3BlY2lmaWVyID0gbm9kZS5zcGVjaWZpZXJzLmZpbmQoXG4gICAgICAgIHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gc3BlY2lmaWVyVHlwZVxuICAgICAgKVxuXG4gICAgICBpZiAoIWRlZmF1bHRTcGVjaWZpZXIpIHJldHVyblxuICAgICAgdmFyIGltcG9ydHMgPSBFeHBvcnRzLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpXG4gICAgICB9IGVsc2UgaWYgKGltcG9ydHMuZ2V0KCdkZWZhdWx0JykgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogZGVmYXVsdFNwZWNpZmllcixcbiAgICAgICAgICBtZXNzYWdlOiBgTm8gZGVmYXVsdCBleHBvcnQgZm91bmQgaW4gaW1wb3J0ZWQgbW9kdWxlIFwiJHtub2RlLnNvdXJjZS52YWx1ZX1cIi5gLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja0RlZmF1bHQuYmluZChudWxsLCAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcicpLFxuICAgIH1cbiAgfSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0Iiwic3BlY2lmaWVyVHlwZSIsIm5vZGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImZpbmQiLCJzcGVjaWZpZXIiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwidW5kZWZpbmVkIiwicmVwb3J0IiwibWVzc2FnZSIsImJpbmQiXSwibWFwcGluZ3MiOiJhQUFBLHlDO0FBQ0EscUM7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFNBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjs7QUFFekIsYUFBU0MsWUFBVCxDQUFzQkMsYUFBdEIsRUFBcUNDLElBQXJDLEVBQTJDOztBQUV6QyxZQUFNQyxtQkFBbUJELEtBQUtFLFVBQUwsQ0FBZ0JDLElBQWhCO0FBQ3ZCQyxtQkFBYUEsVUFBVVosSUFBVixLQUFtQk8sYUFEVCxDQUF6Qjs7O0FBSUEsVUFBSSxDQUFDRSxnQkFBTCxFQUF1QjtBQUN2QixZQUFNSSxVQUFVQyxvQkFBUUMsR0FBUixDQUFZUCxLQUFLUSxNQUFMLENBQVlDLEtBQXhCLEVBQStCWixPQUEvQixDQUFoQjtBQUNBLFVBQUlRLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsVUFBSUEsUUFBUUssTUFBUixDQUFlQyxNQUFuQixFQUEyQjtBQUN6Qk4sZ0JBQVFPLFlBQVIsQ0FBcUJmLE9BQXJCLEVBQThCRyxJQUE5QjtBQUNELE9BRkQsTUFFTyxJQUFJSyxRQUFRRSxHQUFSLENBQVksU0FBWixNQUEyQk0sU0FBL0IsRUFBMEM7QUFDL0NoQixnQkFBUWlCLE1BQVIsQ0FBZTtBQUNiZCxnQkFBTUMsZ0JBRE87QUFFYmMsbUJBQVUsK0NBQThDZixLQUFLUSxNQUFMLENBQVlDLEtBQU0sSUFGN0QsRUFBZjs7QUFJRDtBQUNGOztBQUVELFdBQU87QUFDTCwyQkFBcUJYLGFBQWFrQixJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QixDQURoQjtBQUVMLGdDQUEwQmxCLGFBQWFrQixJQUFiLENBQWtCLElBQWxCLEVBQXdCLHdCQUF4QixDQUZyQixFQUFQOztBQUlELEdBbkNjLEVBQWpCIiwiZmlsZSI6ImRlZmF1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBmdW5jdGlvbiBjaGVja0RlZmF1bHQoc3BlY2lmaWVyVHlwZSwgbm9kZSkge1xuXG4gICAgICBjb25zdCBkZWZhdWx0U3BlY2lmaWVyID0gbm9kZS5zcGVjaWZpZXJzLmZpbmQoXG4gICAgICAgIHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gc3BlY2lmaWVyVHlwZVxuICAgICAgKTtcblxuICAgICAgaWYgKCFkZWZhdWx0U3BlY2lmaWVyKSByZXR1cm47XG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChpbXBvcnRzLmdldCgnZGVmYXVsdCcpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IGRlZmF1bHRTcGVjaWZpZXIsXG4gICAgICAgICAgbWVzc2FnZTogYE5vIGRlZmF1bHQgZXhwb3J0IGZvdW5kIGluIGltcG9ydGVkIG1vZHVsZSBcIiR7bm9kZS5zb3VyY2UudmFsdWV9XCIuYCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJyksXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJyksXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js b/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js index de3c3cd76a..74c71ef668 100644 --- a/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js +++ b/node_modules/eslint-plugin-import/lib/rules/dynamic-import-chunkname.js @@ -30,8 +30,8 @@ module.exports = { config || {},_ref2$webpackChunknam = _ref2.webpackChunknameFormat;const webpackChunknameFormat = _ref2$webpackChunknam === undefined ? '[0-9a-zA-Z-_/.]+' : _ref2$webpackChunknam; const paddedCommentRegex = /^ (\S[\s\S]+\S) $/; - const commentStyleRegex = /^( \w+: ("[^"]*"|\d+|false|true),?)+ $/; - const chunkSubstrFormat = ` webpackChunkName: "${webpackChunknameFormat}",? `; + const commentStyleRegex = /^( \w+: (["'][^"']*["']|\d+|false|true),?)+ $/; + const chunkSubstrFormat = ` webpackChunkName: ["']${webpackChunknameFormat}["'],? `; const chunkSubstrRegex = new RegExp(chunkSubstrFormat); function run(node, arg) { @@ -116,4 +116,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9keW5hbWljLWltcG9ydC1jaHVua25hbWUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJpbXBvcnRGdW5jdGlvbnMiLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwid2VicGFja0NodW5rbmFtZUZvcm1hdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjb25maWciLCJvcHRpb25zIiwicGFkZGVkQ29tbWVudFJlZ2V4IiwiY29tbWVudFN0eWxlUmVnZXgiLCJjaHVua1N1YnN0ckZvcm1hdCIsImNodW5rU3Vic3RyUmVnZXgiLCJSZWdFeHAiLCJydW4iLCJub2RlIiwiYXJnIiwic291cmNlQ29kZSIsImdldFNvdXJjZUNvZGUiLCJsZWFkaW5nQ29tbWVudHMiLCJnZXRDb21tZW50c0JlZm9yZSIsImdldENvbW1lbnRzIiwibGVhZGluZyIsImxlbmd0aCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJpc0NodW5rbmFtZVByZXNlbnQiLCJjb21tZW50IiwidGVzdCIsInZhbHVlIiwidm0iLCJydW5Jbk5ld0NvbnRleHQiLCJlcnJvciIsIkltcG9ydEV4cHJlc3Npb24iLCJzb3VyY2UiLCJDYWxsRXhwcmVzc2lvbiIsImNhbGxlZSIsImluZGV4T2YiLCJuYW1lIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSx3QjtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSwwQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsQ0FBQztBQUNQSCxZQUFNLFFBREM7QUFFUEksa0JBQVk7QUFDVkMseUJBQWlCO0FBQ2ZMLGdCQUFNLE9BRFM7QUFFZk0sdUJBQWEsSUFGRTtBQUdmQyxpQkFBTztBQUNMUCxrQkFBTSxRQURELEVBSFEsRUFEUDs7O0FBUVZR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bEY7QUFDRDs7QUFFRHhCLFlBQUlDLElBQUosRUFBVUEsS0FBS3dCLFNBQUwsQ0FBZSxDQUFmLENBQVY7QUFDRCxPQVhJLEVBQVA7O0FBYUQsR0FsSGMsRUFBakIiLCJmaWxlIjoiZHluYW1pYy1pbXBvcnQtY2h1bmtuYW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHZtIGZyb20gJ3ZtJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdkeW5hbWljLWltcG9ydC1jaHVua25hbWUnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW3tcbiAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpbXBvcnRGdW5jdGlvbnM6IHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB3ZWJwYWNrQ2h1bmtuYW1lRm9ybWF0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1dLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBjb25maWcgPSBjb250ZXh0Lm9wdGlvbnNbMF1cbiAgICBjb25zdCB7IGltcG9ydEZ1bmN0aW9ucyA9IFtdIH0gPSBjb25maWcgfHwge31cbiAgICBjb25zdCB7IHdlYnBhY2tDaHVua25hbWVGb3JtYXQgPSAnWzAtOWEtekEtWi1fLy5dKycgfSA9IGNvbmZpZyB8fCB7fVxuXG4gICAgY29uc3QgcGFkZGVkQ29tbWVudFJlZ2V4ID0gL14gKFxcU1tcXHNcXFNdK1xcUykgJC9cbiAgICBjb25zdCBjb21tZW50U3R5bGVSZWdleCA9IC9eKCBcXHcrOiAoXCJbXlwiXSpcInxcXGQrfGZhbHNlfHRydWUpLD8pKyAkL1xuICAgIGNvbnN0IGNodW5rU3Vic3RyRm9ybWF0ID0gYCB3ZWJwYWNrQ2h1bmtOYW1lOiBcIiR7d2VicGFja0NodW5rbmFtZUZvcm1hdH1cIiw/IGBcbiAgICBjb25zdCBjaHVua1N1YnN0clJlZ2V4ID0gbmV3IFJlZ0V4cChjaHVua1N1YnN0ckZvcm1hdClcblxuICAgIGZ1bmN0aW9uIHJ1bihub2RlLCBhcmcpIHtcbiAgICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKVxuICAgICAgY29uc3QgbGVhZGluZ0NvbW1lbnRzID0gc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZVxuICAgICAgICA/IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUoYXJnKSAvLyBUaGlzIG1ldGhvZCBpcyBhdmFpbGFibGUgaW4gRVNMaW50ID49IDQuXG4gICAgICAgIDogc291cmNlQ29kZS5nZXRDb21tZW50cyhhcmcpLmxlYWRpbmcgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCBpbiBFU0xpbnQgNy5cblxuICAgICAgaWYgKCFsZWFkaW5nQ29tbWVudHMgfHwgbGVhZGluZ0NvbW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiAnZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBsZWFkaW5nIGNvbW1lbnQgd2l0aCB0aGUgd2VicGFjayBjaHVua25hbWUnLFxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbGV0IGlzQ2h1bmtuYW1lUHJlc2VudCA9IGZhbHNlXG5cbiAgICAgIGZvciAoY29uc3QgY29tbWVudCBvZiBsZWFkaW5nQ29tbWVudHMpIHtcbiAgICAgICAgaWYgKGNvbW1lbnQudHlwZSAhPT0gJ0Jsb2NrJykge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiAnZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSAvKiBmb28gKi8gc3R5bGUgY29tbWVudCwgbm90IGEgLy8gZm9vIGNvbW1lbnQnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBhZGRlZENvbW1lbnRSZWdleC50ZXN0KGNvbW1lbnQudmFsdWUpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIGJsb2NrIGNvbW1lbnQgcGFkZGVkIHdpdGggc3BhY2VzIC0gLyogZm9vICovYCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBqdXN0IGxpa2Ugd2VicGFjayBpdHNlbGYgZG9lc1xuICAgICAgICAgIHZtLnJ1bkluTmV3Q29udGV4dChgKGZ1bmN0aW9uKCl7cmV0dXJuIHske2NvbW1lbnQudmFsdWV9fX0pKClgKVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBcIndlYnBhY2tcIiBjb21tZW50IHdpdGggdmFsaWQgc3ludGF4YCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjb21tZW50U3R5bGVSZWdleC50ZXN0KGNvbW1lbnQudmFsdWUpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgIGBkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIGxlYWRpbmcgY29tbWVudCBpbiB0aGUgZm9ybSAvKiR7Y2h1bmtTdWJzdHJGb3JtYXR9Ki9gLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2h1bmtTdWJzdHJSZWdleC50ZXN0KGNvbW1lbnQudmFsdWUpKSB7XG4gICAgICAgICAgaXNDaHVua25hbWVQcmVzZW50ID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNDaHVua25hbWVQcmVzZW50KSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBsZWFkaW5nIGNvbW1lbnQgaW4gdGhlIGZvcm0gLyoke2NodW5rU3Vic3RyRm9ybWF0fSovYCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIHJ1bihub2RlLCBub2RlLnNvdXJjZSlcbiAgICAgIH0sXG5cbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgIT09ICdJbXBvcnQnICYmIGltcG9ydEZ1bmN0aW9ucy5pbmRleE9mKG5vZGUuY2FsbGVlLm5hbWUpIDwgMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgcnVuKG5vZGUsIG5vZGUuYXJndW1lbnRzWzBdKVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9keW5hbWljLWltcG9ydC1jaHVua25hbWUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJpbXBvcnRGdW5jdGlvbnMiLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwid2VicGFja0NodW5rbmFtZUZvcm1hdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjb25maWciLCJvcHRpb25zIiwicGFkZGVkQ29tbWVudFJlZ2V4IiwiY29tbWVudFN0eWxlUmVnZXgiLCJjaHVua1N1YnN0ckZvcm1hdCIsImNodW5rU3Vic3RyUmVnZXgiLCJSZWdFeHAiLCJydW4iLCJub2RlIiwiYXJnIiwic291cmNlQ29kZSIsImdldFNvdXJjZUNvZGUiLCJsZWFkaW5nQ29tbWVudHMiLCJnZXRDb21tZW50c0JlZm9yZSIsImdldENvbW1lbnRzIiwibGVhZGluZyIsImxlbmd0aCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJpc0NodW5rbmFtZVByZXNlbnQiLCJjb21tZW50IiwidGVzdCIsInZhbHVlIiwidm0iLCJydW5Jbk5ld0NvbnRleHQiLCJlcnJvciIsIkltcG9ydEV4cHJlc3Npb24iLCJzb3VyY2UiLCJDYWxsRXhwcmVzc2lvbiIsImNhbGxlZSIsImluZGV4T2YiLCJuYW1lIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSx3QjtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSwwQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsQ0FBQztBQUNQSCxZQUFNLFFBREM7QUFFUEksa0JBQVk7QUFDVkMseUJBQWlCO0FBQ2ZMLGdCQUFNLE9BRFM7QUFFZk0sdUJBQWEsSUFGRTtBQUdmQyxpQkFBTztBQUNMUCxrQkFBTSxRQURELEVBSFEsRUFEUDs7O0FBUVZRLGdDQUF3QjtBQUN0QlIsZ0JBQU0sUUFEZ0IsRUFSZCxFQUZMLEVBQUQsQ0FMSixFQURTOzs7Ozs7QUF1QmZTLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixVQUFNQyxTQUFTRCxRQUFRRSxPQUFSLENBQWdCLENBQWhCLENBQWYsQ0FEeUI7QUFFUUQsY0FBVSxFQUZsQiw2QkFFakJOLGVBRmlCLE9BRWpCQSxlQUZpQix3Q0FFQyxFQUZEO0FBRytCTSxjQUFVLEVBSHpDLCtCQUdqQkgsc0JBSGlCLE9BR2pCQSxzQkFIaUIseUNBR1Esa0JBSFI7O0FBS3pCLFVBQU1LLHFCQUFxQixtQkFBM0I7QUFDQSxVQUFNQyxvQkFBb0IsK0NBQTFCO0FBQ0EsVUFBTUMsb0JBQXFCLDBCQUF5QlAsc0JBQXVCLFNBQTNFO0FBQ0EsVUFBTVEsbUJBQW1CLElBQUlDLE1BQUosQ0FBV0YsaUJBQVgsQ0FBekI7O0FBRUEsYUFBU0csR0FBVCxDQUFhQyxJQUFiLEVBQW1CQyxHQUFuQixFQUF3QjtBQUN0QixZQUFNQyxhQUFhWCxRQUFRWSxhQUFSLEVBQW5CO0FBQ0EsWUFBTUMsa0JBQWtCRixXQUFXRyxpQkFBWDtBQUNwQkgsaUJBQVdHLGlCQUFYLENBQTZCSixHQUE3QixDQURvQixDQUNjO0FBRGQsUUFFcEJDLFdBQVdJLFdBQVgsQ0FBdUJMLEdBQXZCLEVBQTRCTSxPQUZoQyxDQUZzQixDQUltQjs7QUFFekMsVUFBSSxDQUFDSCxlQUFELElBQW9CQSxnQkFBZ0JJLE1BQWhCLEtBQTJCLENBQW5ELEVBQXNEO0FBQ3BEakIsZ0JBQVFrQixNQUFSLENBQWU7QUFDYlQsY0FEYTtBQUViVSxtQkFBUyxzRUFGSSxFQUFmOztBQUlBO0FBQ0Q7O0FBRUQsVUFBSUMscUJBQXFCLEtBQXpCOztBQUVBLFdBQUssTUFBTUMsT0FBWCxJQUFzQlIsZUFBdEIsRUFBdUM7QUFDckMsWUFBSVEsUUFBUS9CLElBQVIsS0FBaUIsT0FBckIsRUFBOEI7QUFDNUJVLGtCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGdCQURhO0FBRWJVLHFCQUFTLHlFQUZJLEVBQWY7O0FBSUE7QUFDRDs7QUFFRCxZQUFJLENBQUNoQixtQkFBbUJtQixJQUFuQixDQUF3QkQsUUFBUUUsS0FBaEMsQ0FBTCxFQUE2QztBQUMzQ3ZCLGtCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGdCQURhO0FBRWJVLHFCQUFVLHdFQUZHLEVBQWY7O0FBSUE7QUFDRDs7QUFFRCxZQUFJO0FBQ0Y7QUFDQUssdUJBQUdDLGVBQUgsQ0FBb0IsdUJBQXNCSixRQUFRRSxLQUFNLE9BQXhEO0FBQ0Q7QUFDRCxlQUFPRyxLQUFQLEVBQWM7QUFDWjFCLGtCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGdCQURhO0FBRWJVLHFCQUFVLCtEQUZHLEVBQWY7O0FBSUE7QUFDRDs7QUFFRCxZQUFJLENBQUNmLGtCQUFrQmtCLElBQWxCLENBQXVCRCxRQUFRRSxLQUEvQixDQUFMLEVBQTRDO0FBQzFDdkIsa0JBQVFrQixNQUFSLENBQWU7QUFDYlQsZ0JBRGE7QUFFYlU7QUFDRyx1RUFBMERkLGlCQUFrQixJQUhsRSxFQUFmOztBQUtBO0FBQ0Q7O0FBRUQsWUFBSUMsaUJBQWlCZ0IsSUFBakIsQ0FBc0JELFFBQVFFLEtBQTlCLENBQUosRUFBMEM7QUFDeENILCtCQUFxQixJQUFyQjtBQUNEO0FBQ0Y7O0FBRUQsVUFBSSxDQUFDQSxrQkFBTCxFQUF5QjtBQUN2QnBCLGdCQUFRa0IsTUFBUixDQUFlO0FBQ2JULGNBRGE7QUFFYlU7QUFDRyxxRUFBMERkLGlCQUFrQixJQUhsRSxFQUFmOztBQUtEO0FBQ0Y7O0FBRUQsV0FBTztBQUNMc0IsdUJBQWlCbEIsSUFBakIsRUFBdUI7QUFDckJELFlBQUlDLElBQUosRUFBVUEsS0FBS21CLE1BQWY7QUFDRCxPQUhJOztBQUtMQyxxQkFBZXBCLElBQWYsRUFBcUI7QUFDbkIsWUFBSUEsS0FBS3FCLE1BQUwsQ0FBWXhDLElBQVosS0FBcUIsUUFBckIsSUFBaUNLLGdCQUFnQm9DLE9BQWhCLENBQXdCdEIsS0FBS3FCLE1BQUwsQ0FBWUUsSUFBcEMsSUFBNEMsQ0FBakYsRUFBb0Y7QUFDbEY7QUFDRDs7QUFFRHhCLFlBQUlDLElBQUosRUFBVUEsS0FBS3dCLFNBQUwsQ0FBZSxDQUFmLENBQVY7QUFDRCxPQVhJLEVBQVA7O0FBYUQsR0FsSGMsRUFBakIiLCJmaWxlIjoiZHluYW1pYy1pbXBvcnQtY2h1bmtuYW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHZtIGZyb20gJ3ZtJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2R5bmFtaWMtaW1wb3J0LWNodW5rbmFtZScpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbe1xuICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGltcG9ydEZ1bmN0aW9uczoge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHdlYnBhY2tDaHVua25hbWVGb3JtYXQ6IHtcbiAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfV0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbnRleHQub3B0aW9uc1swXTtcbiAgICBjb25zdCB7IGltcG9ydEZ1bmN0aW9ucyA9IFtdIH0gPSBjb25maWcgfHwge307XG4gICAgY29uc3QgeyB3ZWJwYWNrQ2h1bmtuYW1lRm9ybWF0ID0gJ1swLTlhLXpBLVotXy8uXSsnIH0gPSBjb25maWcgfHwge307XG5cbiAgICBjb25zdCBwYWRkZWRDb21tZW50UmVnZXggPSAvXiAoXFxTW1xcc1xcU10rXFxTKSAkLztcbiAgICBjb25zdCBjb21tZW50U3R5bGVSZWdleCA9IC9eKCBcXHcrOiAoW1wiJ11bXlwiJ10qW1wiJ118XFxkK3xmYWxzZXx0cnVlKSw/KSsgJC87XG4gICAgY29uc3QgY2h1bmtTdWJzdHJGb3JtYXQgPSBgIHdlYnBhY2tDaHVua05hbWU6IFtcIiddJHt3ZWJwYWNrQ2h1bmtuYW1lRm9ybWF0fVtcIiddLD8gYDtcbiAgICBjb25zdCBjaHVua1N1YnN0clJlZ2V4ID0gbmV3IFJlZ0V4cChjaHVua1N1YnN0ckZvcm1hdCk7XG5cbiAgICBmdW5jdGlvbiBydW4obm9kZSwgYXJnKSB7XG4gICAgICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCk7XG4gICAgICBjb25zdCBsZWFkaW5nQ29tbWVudHMgPSBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlXG4gICAgICAgID8gc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZShhcmcpIC8vIFRoaXMgbWV0aG9kIGlzIGF2YWlsYWJsZSBpbiBFU0xpbnQgPj0gNC5cbiAgICAgICAgOiBzb3VyY2VDb2RlLmdldENvbW1lbnRzKGFyZykubGVhZGluZzsgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCBpbiBFU0xpbnQgNy5cblxuICAgICAgaWYgKCFsZWFkaW5nQ29tbWVudHMgfHwgbGVhZGluZ0NvbW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiAnZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBsZWFkaW5nIGNvbW1lbnQgd2l0aCB0aGUgd2VicGFjayBjaHVua25hbWUnLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQgaXNDaHVua25hbWVQcmVzZW50ID0gZmFsc2U7XG5cbiAgICAgIGZvciAoY29uc3QgY29tbWVudCBvZiBsZWFkaW5nQ29tbWVudHMpIHtcbiAgICAgICAgaWYgKGNvbW1lbnQudHlwZSAhPT0gJ0Jsb2NrJykge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiAnZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSAvKiBmb28gKi8gc3R5bGUgY29tbWVudCwgbm90IGEgLy8gZm9vIGNvbW1lbnQnLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcGFkZGVkQ29tbWVudFJlZ2V4LnRlc3QoY29tbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogYGR5bmFtaWMgaW1wb3J0cyByZXF1aXJlIGEgYmxvY2sgY29tbWVudCBwYWRkZWQgd2l0aCBzcGFjZXMgLSAvKiBmb28gKi9gLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8ganVzdCBsaWtlIHdlYnBhY2sgaXRzZWxmIGRvZXNcbiAgICAgICAgICB2bS5ydW5Jbk5ld0NvbnRleHQoYChmdW5jdGlvbigpe3JldHVybiB7JHtjb21tZW50LnZhbHVlfX19KSgpYCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBkeW5hbWljIGltcG9ydHMgcmVxdWlyZSBhIFwid2VicGFja1wiIGNvbW1lbnQgd2l0aCB2YWxpZCBzeW50YXhgLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY29tbWVudFN0eWxlUmVnZXgudGVzdChjb21tZW50LnZhbHVlKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICBgZHluYW1pYyBpbXBvcnRzIHJlcXVpcmUgYSBsZWFkaW5nIGNvbW1lbnQgaW4gdGhlIGZvcm0gLyoke2NodW5rU3Vic3RyRm9ybWF0fSovYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2h1bmtTdWJzdHJSZWdleC50ZXN0KGNvbW1lbnQudmFsdWUpKSB7XG4gICAgICAgICAgaXNDaHVua25hbWVQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQ2h1bmtuYW1lUHJlc2VudCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgYGR5bmFtaWMgaW1wb3J0cyByZXF1aXJlIGEgbGVhZGluZyBjb21tZW50IGluIHRoZSBmb3JtIC8qJHtjaHVua1N1YnN0ckZvcm1hdH0qL2AsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnRFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgcnVuKG5vZGUsIG5vZGUuc291cmNlKTtcbiAgICAgIH0sXG5cbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgIT09ICdJbXBvcnQnICYmIGltcG9ydEZ1bmN0aW9ucy5pbmRleE9mKG5vZGUuY2FsbGVlLm5hbWUpIDwgMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bihub2RlLCBub2RlLmFyZ3VtZW50c1swXSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/export.js b/node_modules/eslint-plugin-import/lib/rules/export.js index c7d1aad7a6..821b98cc3d 100644 --- a/node_modules/eslint-plugin-import/lib/rules/export.js +++ b/node_modules/eslint-plugin-import/lib/rules/export.js @@ -87,7 +87,11 @@ module.exports = { return { 'ExportDefaultDeclaration': node => addNamed('default', node, getParent(node)), - 'ExportSpecifier': node => addNamed(node.exported.name, node.exported, getParent(node)), + 'ExportSpecifier': node => addNamed( + node.exported.name, + node.exported, + getParent(node.parent)), + 'ExportNamedDeclaration': function (node) { if (node.declaration == null) return; @@ -108,7 +112,7 @@ module.exports = { } if (node.declaration.declarations != null) { - for (let declaration of node.declaration.declarations) { + for (const declaration of node.declaration.declarations) { (0, _ExportMap.recursivePatternCapture)(declaration.id, v => addNamed(v.name, v, parent, isTypeVariableDecl)); } @@ -132,10 +136,12 @@ module.exports = { const parent = getParent(node); let any = false; - remoteExports.forEach((v, name) => - name !== 'default' && ( - any = true) && // poor man's filter - addNamed(name, node, parent)); + remoteExports.forEach((v, name) => { + if (name !== 'default') { + any = true; // poor man's filter + addNamed(name, node, parent); + } + }); if (!any) { context.report( @@ -146,13 +152,13 @@ module.exports = { }, 'Program:exit': function () { - for (let _ref of namespace) {var _ref2 = _slicedToArray(_ref, 2);let named = _ref2[1]; - for (let _ref3 of named) {var _ref4 = _slicedToArray(_ref3, 2);let name = _ref4[0];let nodes = _ref4[1]; + for (const _ref of namespace) {var _ref2 = _slicedToArray(_ref, 2);const named = _ref2[1]; + for (const _ref3 of named) {var _ref4 = _slicedToArray(_ref3, 2);const name = _ref4[0];const nodes = _ref4[1]; if (nodes.size <= 1) continue; if (isTypescriptFunctionOverloads(nodes)) continue; - for (let node of nodes) { + for (const node of nodes) { if (name === 'default') { context.report(node, 'Multiple default exports.'); } else { @@ -167,4 +173,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnQuanMiXSwibmFtZXMiOlsicm9vdFByb2dyYW0iLCJ0c1R5cGVQcmVmaXgiLCJpc1R5cGVzY3JpcHRGdW5jdGlvbk92ZXJsb2FkcyIsIm5vZGVzIiwidHlwZXMiLCJTZXQiLCJBcnJheSIsImZyb20iLCJub2RlIiwicGFyZW50IiwidHlwZSIsImhhcyIsInNpemUiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwibmFtZXNwYWNlIiwiTWFwIiwiYWRkTmFtZWQiLCJuYW1lIiwiaXNUeXBlIiwic2V0IiwibmFtZWQiLCJnZXQiLCJrZXkiLCJhZGQiLCJnZXRQYXJlbnQiLCJleHBvcnRlZCIsImRlY2xhcmF0aW9uIiwiaXNUeXBlVmFyaWFibGVEZWNsIiwia2luZCIsImlkIiwiZGVjbGFyYXRpb25zIiwidiIsInNvdXJjZSIsInJlbW90ZUV4cG9ydHMiLCJFeHBvcnRNYXAiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImFueSIsImZvckVhY2giLCJyZXBvcnQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoicW9CQUFBLHlDO0FBQ0EscUM7QUFDQSwrQzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNQSxjQUFjLE1BQXBCO0FBQ0EsTUFBTUMsZUFBZSxPQUFyQjs7QUFFQTs7Ozs7Ozs7OztBQVVBLFNBQVNDLDZCQUFULENBQXVDQyxLQUF2QyxFQUE4QztBQUM1QyxRQUFNQyxRQUFRLElBQUlDLEdBQUosQ0FBUUMsTUFBTUMsSUFBTixDQUFXSixLQUFYLEVBQWtCSyxRQUFRQSxLQUFLQyxNQUFMLENBQVlDLElBQXRDLENBQVIsQ0FBZDtBQUNBO0FBQ0VOLFVBQU1PLEdBQU4sQ0FBVSxtQkFBVjs7QUFFRVAsVUFBTVEsSUFBTixLQUFlLENBQWY7QUFDQ1IsVUFBTVEsSUFBTixLQUFlLENBQWYsSUFBb0JSLE1B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QTBCQSxLQUExQixFQUFpQywwQ0FBdkJILElBQXVCLGdCQUFqQnJCLEtBQWlCO0FBQy9CLGdCQUFJQSxNQUFNUyxJQUFOLElBQWMsQ0FBbEIsRUFBcUI7O0FBRXJCLGdCQUFJViw4QkFBOEJDLEtBQTlCLENBQUosRUFBMEM7O0FBRTFDLGlCQUFLLElBQUlLLElBQVQsSUFBaUJMLEtBQWpCLEVBQXdCO0FBQ3RCLGtCQUFJcUIsU0FBUyxTQUFiLEVBQXdCO0FBQ3RCSix3QkFBUTRCLE1BQVIsQ0FBZXhDLElBQWYsRUFBcUIsMkJBQXJCO0FBQ0QsZUFGRCxNQUVPO0FBQ0xZLHdCQUFRNEIsTUFBUjtBQUNFeEMsb0JBREY7QUFFRyw2Q0FBNEJnQixLQUFLeUIsT0FBTCxDQUFhaEQsWUFBYixFQUEyQixFQUEzQixDQUErQixJQUY5RDs7QUFJRDtBQUNGO0FBQ0Y7QUFDRjtBQUNGLE9BaEZJLEVBQVA7O0FBa0ZELEdBekhjLEVBQWpCIiwiZmlsZSI6ImV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRNYXAsIHsgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUgfSBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IGluY2x1ZGVzIGZyb20gJ2FycmF5LWluY2x1ZGVzJ1xuXG4vKlxuTm90ZXMgb24gVHlwZVNjcmlwdCBuYW1lc3BhY2VzIGFrYSBUU01vZHVsZURlY2xhcmF0aW9uOlxuXG5UaGVyZSBhcmUgdHdvIGZvcm1zOlxuLSBhY3RpdmUgbmFtZXNwYWNlczogbmFtZXNwYWNlIEZvbyB7fSAvIG1vZHVsZSBGb28ge31cbi0gYW1iaWVudCBtb2R1bGVzOyBkZWNsYXJlIG1vZHVsZSBcImVzbGludC1wbHVnaW4taW1wb3J0XCIge31cblxuYWN0aXZlIG5hbWVzcGFjZXM6XG4tIGNhbm5vdCBjb250YWluIGEgZGVmYXVsdCBleHBvcnRcbi0gY2Fubm90IGNvbnRhaW4gYW4gZXhwb3J0IGFsbFxuLSBjYW5ub3QgY29udGFpbiBhIG11bHRpIG5hbWUgZXhwb3J0IChleHBvcnQgeyBhLCBiIH0pXG4tIGNhbiBoYXZlIGFjdGl2ZSBuYW1lc3BhY2VzIG5lc3RlZCB3aXRoaW4gdGhlbVxuXG5hbWJpZW50IG5hbWVzcGFjZXM6XG4tIGNhbiBvbmx5IGJlIGRlZmluZWQgaW4gLmQudHMgZmlsZXNcbi0gY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYWN0aXZlIG5hbWVzcGFjZXNcbi0gaGF2ZSBubyBvdGhlciByZXN0cmljdGlvbnNcbiovXG5cbmNvbnN0IHJvb3RQcm9ncmFtID0gJ3Jvb3QnXG5jb25zdCB0c1R5cGVQcmVmaXggPSAndHlwZTonXG5cbi8qKlxuICogRGV0ZWN0IGZ1bmN0aW9uIG92ZXJsb2FkcyBsaWtlOlxuICogYGBgdHNcbiAqIGV4cG9ydCBmdW5jdGlvbiBmb28oYTogbnVtYmVyKTtcbiAqIGV4cG9ydCBmdW5jdGlvbiBmb28oYTogc3RyaW5nKTtcbiAqIGV4cG9ydCBmdW5jdGlvbiBmb28oYTogbnVtYmVyfHN0cmluZykgeyByZXR1cm4gYTsgfVxuICogYGBgXG4gKiBAcGFyYW0ge1NldDxPYmplY3Q+fSBub2Rlc1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVHlwZXNjcmlwdEZ1bmN0aW9uT3ZlcmxvYWRzKG5vZGVzKSB7XG4gIGNvbnN0IHR5cGVzID0gbmV3IFNldChBcnJheS5mcm9tKG5vZGVzLCBub2RlID0+IG5vZGUucGFyZW50LnR5cGUpKVxuICByZXR1cm4gKFxuICAgIHR5cGVzLmhhcygnVFNEZWNsYXJlRnVuY3Rpb24nKSAmJlxuICAgIChcbiAgICAgIHR5cGVzLnNpemUgPT09IDEgfHxcbiAgICAgICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygnRnVuY3Rpb25EZWNsYXJhdGlvbicpKVxuICAgIClcbiAgKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2V4cG9ydCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmV3IE1hcChbW3Jvb3RQcm9ncmFtLCBuZXcgTWFwKCldXSlcblxuICAgIGZ1bmN0aW9uIGFkZE5hbWVkKG5hbWUsIG5vZGUsIHBhcmVudCwgaXNUeXBlKSB7XG4gICAgICBpZiAoIW5hbWVzcGFjZS5oYXMocGFyZW50KSkge1xuICAgICAgICBuYW1lc3BhY2Uuc2V0KHBhcmVudCwgbmV3IE1hcCgpKVxuICAgICAgfVxuICAgICAgY29uc3QgbmFtZWQgPSBuYW1lc3BhY2UuZ2V0KHBhcmVudClcblxuICAgICAgY29uc3Qga2V5ID0gaXNUeXBlID8gYCR7dHNUeXBlUHJlZml4fSR7bmFtZX1gIDogbmFtZVxuICAgICAgbGV0IG5vZGVzID0gbmFtZWQuZ2V0KGtleSlcblxuICAgICAgaWYgKG5vZGVzID09IG51bGwpIHtcbiAgICAgICAgbm9kZXMgPSBuZXcgU2V0KClcbiAgICAgICAgbmFtZWQuc2V0KGtleSwgbm9kZXMpXG4gICAgICB9XG5cbiAgICAgIG5vZGVzLmFkZChub2RlKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudChub2RlKSB7XG4gICAgICBpZiAobm9kZS5wYXJlbnQgJiYgbm9kZS5wYXJlbnQudHlwZSA9PT0gJ1RTTW9kdWxlQmxvY2snKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudC5wYXJlbnRcbiAgICAgIH1cblxuICAgICAgLy8ganVzdCBpbiBjYXNlIHNvbWVob3cgYSBub24tdHMgbmFtZXNwYWNlIGV4cG9ydCBkZWNsYXJhdGlvbiBpc24ndCBkaXJlY3RseVxuICAgICAgLy8gcGFyZW50ZWQgdG8gdGhlIHJvb3QgUHJvZ3JhbSBub2RlXG4gICAgICByZXR1cm4gcm9vdFByb2dyYW1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IChub2RlKSA9PiBhZGROYW1lZCgnZGVmYXVsdCcsIG5vZGUsIGdldFBhcmVudChub2RlKSksXG5cbiAgICAgICdFeHBvcnRTcGVjaWZpZXInOiAobm9kZSkgPT4gYWRkTmFtZWQobm9kZS5leHBvcnRlZC5uYW1lLCBub2RlLmV4cG9ydGVkLCBnZXRQYXJlbnQobm9kZSkpLFxuXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uID09IG51bGwpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFBhcmVudChub2RlKVxuICAgICAgICAvLyBzdXBwb3J0IGZvciBvbGQgVHlwZVNjcmlwdCB2ZXJzaW9uc1xuICAgICAgICBjb25zdCBpc1R5cGVWYXJpYWJsZURlY2wgPSBub2RlLmRlY2xhcmF0aW9uLmtpbmQgPT09ICd0eXBlJ1xuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmlkICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAoaW5jbHVkZXMoW1xuICAgICAgICAgICAgJ1RTVHlwZUFsaWFzRGVjbGFyYXRpb24nLFxuICAgICAgICAgICAgJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nLFxuICAgICAgICAgIF0sIG5vZGUuZGVjbGFyYXRpb24udHlwZSkpIHtcbiAgICAgICAgICAgIGFkZE5hbWVkKG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZSwgbm9kZS5kZWNsYXJhdGlvbi5pZCwgcGFyZW50LCB0cnVlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhZGROYW1lZChub2RlLmRlY2xhcmF0aW9uLmlkLm5hbWUsIG5vZGUuZGVjbGFyYXRpb24uaWQsIHBhcmVudCwgaXNUeXBlVmFyaWFibGVEZWNsKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucyAhPSBudWxsKSB7XG4gICAgICAgICAgZm9yIChsZXQgZGVjbGFyYXRpb24gb2Ygbm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgICAgIHJlY3Vyc2l2ZVBhdHRlcm5DYXB0dXJlKGRlY2xhcmF0aW9uLmlkLCB2ID0+XG4gICAgICAgICAgICAgIGFkZE5hbWVkKHYubmFtZSwgdiwgcGFyZW50LCBpc1R5cGVWYXJpYWJsZURlY2wpKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ0V4cG9ydEFsbERlY2xhcmF0aW9uJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuc291cmNlID09IG51bGwpIHJldHVybiAvLyBub3Qgc3VyZSBpZiB0aGlzIGlzIGV2ZXIgdHJ1ZVxuXG4gICAgICAgIC8vIGBleHBvcnQgKiBhcyBYIGZyb20gJ3BhdGgnYCBkb2VzIG5vdCBjb25mbGljdFxuICAgICAgICBpZiAobm9kZS5leHBvcnRlZCAmJiBub2RlLmV4cG9ydGVkLm5hbWUpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IHJlbW90ZUV4cG9ydHMgPSBFeHBvcnRNYXAuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAocmVtb3RlRXhwb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgICBpZiAocmVtb3RlRXhwb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgcmVtb3RlRXhwb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFBhcmVudChub2RlKVxuXG4gICAgICAgIGxldCBhbnkgPSBmYWxzZVxuICAgICAgICByZW1vdGVFeHBvcnRzLmZvckVhY2goKHYsIG5hbWUpID0+XG4gICAgICAgICAgbmFtZSAhPT0gJ2RlZmF1bHQnICYmXG4gICAgICAgICAgKGFueSA9IHRydWUpICYmIC8vIHBvb3IgbWFuJ3MgZmlsdGVyXG4gICAgICAgICAgYWRkTmFtZWQobmFtZSwgbm9kZSwgcGFyZW50KSlcblxuICAgICAgICBpZiAoIWFueSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgbm9kZS5zb3VyY2UsXG4gICAgICAgICAgICBgTm8gbmFtZWQgZXhwb3J0cyBmb3VuZCBpbiBtb2R1bGUgJyR7bm9kZS5zb3VyY2UudmFsdWV9Jy5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKGxldCBbLCBuYW1lZF0gb2YgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgZm9yIChsZXQgW25hbWUsIG5vZGVzXSBvZiBuYW1lZCkge1xuICAgICAgICAgICAgaWYgKG5vZGVzLnNpemUgPD0gMSkgY29udGludWVcblxuICAgICAgICAgICAgaWYgKGlzVHlwZXNjcmlwdEZ1bmN0aW9uT3ZlcmxvYWRzKG5vZGVzKSkgY29udGludWVcblxuICAgICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgJ011bHRpcGxlIGRlZmF1bHQgZXhwb3J0cy4nKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgIGBNdWx0aXBsZSBleHBvcnRzIG9mIG5hbWUgJyR7bmFtZS5yZXBsYWNlKHRzVHlwZVByZWZpeCwgJycpfScuYFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnQuanMiXSwibmFtZXMiOlsicm9vdFByb2dyYW0iLCJ0c1R5cGVQcmVmaXgiLCJpc1R5cGVzY3JpcHRGdW5jdGlvbk92ZXJsb2FkcyIsIm5vZGVzIiwidHlwZXMiLCJTZXQiLCJBcnJheSIsImZyb20iLCJub2RlIiwicGFyZW50IiwidHlwZSIsImhhcyIsInNpemUiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwibmFtZXNwYWNlIiwiTWFwIiwiYWRkTmFtZWQiLCJuYW1lIiwiaXNUeXBlIiwic2V0IiwibmFtZWQiLCJnZXQiLCJrZXkiLCJhZGQiLCJnZXRQYXJlbnQiLCJleHBvcnRlZCIsImRlY2xhcmF0aW9uIiwiaXNUeXBlVmFyaWFibGVEZWNsIiwia2luZCIsImlkIiwiZGVjbGFyYXRpb25zIiwidiIsInNvdXJjZSIsInJlbW90ZUV4cG9ydHMiLCJFeHBvcnRNYXAiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImFueSIsImZvckVhY2giLCJyZXBvcnQiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoicW9CQUFBLHlDO0FBQ0EscUM7QUFDQSwrQzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNQSxjQUFjLE1BQXBCO0FBQ0EsTUFBTUMsZUFBZSxPQUFyQjs7QUFFQTs7Ozs7Ozs7OztBQVVBLFNBQVNDLDZCQUFULENBQXVDQyxLQUF2QyxFQUE4QztBQUM1QyxRQUFNQyxRQUFRLElBQUlDLEdBQUosQ0FBUUMsTUFBTUMsSUFBTixDQUFXSixLQUFYLEVBQWtCSyxRQUFRQSxLQUFLQyxNQUFMLENBQVlDLElBQXRDLENBQVIsQ0FBZDtBQUNBO0FBQ0VOLFVBQU1PLEdBQU4sQ0FBVSxtQkFBVjs7QUFFRVAsVUFBTVEsSUFBTixLQUFlLENBQWY7QUFDQ1IsVUFBTVEsSUFBTixLQUFlLENBQWYsSUFBb0JSLE1B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QnJCLFNBQXhCLEVBQW1DLDJDQUFyQk0sS0FBcUI7QUFDakMsOEJBQTRCQSxLQUE1QixFQUFtQyw0Q0FBdkJILElBQXVCLGtCQUFqQnJCLEtBQWlCO0FBQ2pDLGdCQUFJQSxNQUFNUyxJQUFOLElBQWMsQ0FBbEIsRUFBcUI7O0FBRXJCLGdCQUFJViw4QkFBOEJDLEtBQTlCLENBQUosRUFBMEM7O0FBRTFDLGlCQUFLLE1BQU1LLElBQVgsSUFBbUJMLEtBQW5CLEVBQTBCO0FBQ3hCLGtCQUFJcUIsU0FBUyxTQUFiLEVBQXdCO0FBQ3RCSix3QkFBUTRCLE1BQVIsQ0FBZXhDLElBQWYsRUFBcUIsMkJBQXJCO0FBQ0QsZUFGRCxNQUVPO0FBQ0xZLHdCQUFRNEIsTUFBUjtBQUNFeEMsb0JBREY7QUFFRyw2Q0FBNEJnQixLQUFLeUIsT0FBTCxDQUFhaEQsWUFBYixFQUEyQixFQUEzQixDQUErQixJQUY5RDs7QUFJRDtBQUNGO0FBQ0Y7QUFDRjtBQUNGLE9BdEZJLEVBQVA7O0FBd0ZELEdBL0hjLEVBQWpCIiwiZmlsZSI6ImV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeHBvcnRNYXAsIHsgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUgfSBmcm9tICcuLi9FeHBvcnRNYXAnO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5pbXBvcnQgaW5jbHVkZXMgZnJvbSAnYXJyYXktaW5jbHVkZXMnO1xuXG4vKlxuTm90ZXMgb24gVHlwZVNjcmlwdCBuYW1lc3BhY2VzIGFrYSBUU01vZHVsZURlY2xhcmF0aW9uOlxuXG5UaGVyZSBhcmUgdHdvIGZvcm1zOlxuLSBhY3RpdmUgbmFtZXNwYWNlczogbmFtZXNwYWNlIEZvbyB7fSAvIG1vZHVsZSBGb28ge31cbi0gYW1iaWVudCBtb2R1bGVzOyBkZWNsYXJlIG1vZHVsZSBcImVzbGludC1wbHVnaW4taW1wb3J0XCIge31cblxuYWN0aXZlIG5hbWVzcGFjZXM6XG4tIGNhbm5vdCBjb250YWluIGEgZGVmYXVsdCBleHBvcnRcbi0gY2Fubm90IGNvbnRhaW4gYW4gZXhwb3J0IGFsbFxuLSBjYW5ub3QgY29udGFpbiBhIG11bHRpIG5hbWUgZXhwb3J0IChleHBvcnQgeyBhLCBiIH0pXG4tIGNhbiBoYXZlIGFjdGl2ZSBuYW1lc3BhY2VzIG5lc3RlZCB3aXRoaW4gdGhlbVxuXG5hbWJpZW50IG5hbWVzcGFjZXM6XG4tIGNhbiBvbmx5IGJlIGRlZmluZWQgaW4gLmQudHMgZmlsZXNcbi0gY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYWN0aXZlIG5hbWVzcGFjZXNcbi0gaGF2ZSBubyBvdGhlciByZXN0cmljdGlvbnNcbiovXG5cbmNvbnN0IHJvb3RQcm9ncmFtID0gJ3Jvb3QnO1xuY29uc3QgdHNUeXBlUHJlZml4ID0gJ3R5cGU6JztcblxuLyoqXG4gKiBEZXRlY3QgZnVuY3Rpb24gb3ZlcmxvYWRzIGxpa2U6XG4gKiBgYGB0c1xuICogZXhwb3J0IGZ1bmN0aW9uIGZvbyhhOiBudW1iZXIpO1xuICogZXhwb3J0IGZ1bmN0aW9uIGZvbyhhOiBzdHJpbmcpO1xuICogZXhwb3J0IGZ1bmN0aW9uIGZvbyhhOiBudW1iZXJ8c3RyaW5nKSB7IHJldHVybiBhOyB9XG4gKiBgYGBcbiAqIEBwYXJhbSB7U2V0PE9iamVjdD59IG5vZGVzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNUeXBlc2NyaXB0RnVuY3Rpb25PdmVybG9hZHMobm9kZXMpIHtcbiAgY29uc3QgdHlwZXMgPSBuZXcgU2V0KEFycmF5LmZyb20obm9kZXMsIG5vZGUgPT4gbm9kZS5wYXJlbnQudHlwZSkpO1xuICByZXR1cm4gKFxuICAgIHR5cGVzLmhhcygnVFNEZWNsYXJlRnVuY3Rpb24nKSAmJlxuICAgIChcbiAgICAgIHR5cGVzLnNpemUgPT09IDEgfHxcbiAgICAgICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygnRnVuY3Rpb25EZWNsYXJhdGlvbicpKVxuICAgIClcbiAgKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdleHBvcnQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IG5ldyBNYXAoW1tyb290UHJvZ3JhbSwgbmV3IE1hcCgpXV0pO1xuXG4gICAgZnVuY3Rpb24gYWRkTmFtZWQobmFtZSwgbm9kZSwgcGFyZW50LCBpc1R5cGUpIHtcbiAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwYXJlbnQpKSB7XG4gICAgICAgIG5hbWVzcGFjZS5zZXQocGFyZW50LCBuZXcgTWFwKCkpO1xuICAgICAgfVxuICAgICAgY29uc3QgbmFtZWQgPSBuYW1lc3BhY2UuZ2V0KHBhcmVudCk7XG5cbiAgICAgIGNvbnN0IGtleSA9IGlzVHlwZSA/IGAke3RzVHlwZVByZWZpeH0ke25hbWV9YCA6IG5hbWU7XG4gICAgICBsZXQgbm9kZXMgPSBuYW1lZC5nZXQoa2V5KTtcblxuICAgICAgaWYgKG5vZGVzID09IG51bGwpIHtcbiAgICAgICAgbm9kZXMgPSBuZXcgU2V0KCk7XG4gICAgICAgIG5hbWVkLnNldChrZXksIG5vZGVzKTtcbiAgICAgIH1cblxuICAgICAgbm9kZXMuYWRkKG5vZGUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudChub2RlKSB7XG4gICAgICBpZiAobm9kZS5wYXJlbnQgJiYgbm9kZS5wYXJlbnQudHlwZSA9PT0gJ1RTTW9kdWxlQmxvY2snKSB7XG4gICAgICAgIHJldHVybiBub2RlLnBhcmVudC5wYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGp1c3QgaW4gY2FzZSBzb21laG93IGEgbm9uLXRzIG5hbWVzcGFjZSBleHBvcnQgZGVjbGFyYXRpb24gaXNuJ3QgZGlyZWN0bHlcbiAgICAgIC8vIHBhcmVudGVkIHRvIHRoZSByb290IFByb2dyYW0gbm9kZVxuICAgICAgcmV0dXJuIHJvb3RQcm9ncmFtO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IGFkZE5hbWVkKCdkZWZhdWx0Jywgbm9kZSwgZ2V0UGFyZW50KG5vZGUpKSxcblxuICAgICAgJ0V4cG9ydFNwZWNpZmllcic6IChub2RlKSA9PiBhZGROYW1lZChcbiAgICAgICAgbm9kZS5leHBvcnRlZC5uYW1lLFxuICAgICAgICBub2RlLmV4cG9ydGVkLFxuICAgICAgICBnZXRQYXJlbnQobm9kZS5wYXJlbnQpXG4gICAgICApLFxuXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uID09IG51bGwpIHJldHVybjtcblxuICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXRQYXJlbnQobm9kZSk7XG4gICAgICAgIC8vIHN1cHBvcnQgZm9yIG9sZCBUeXBlU2NyaXB0IHZlcnNpb25zXG4gICAgICAgIGNvbnN0IGlzVHlwZVZhcmlhYmxlRGVjbCA9IG5vZGUuZGVjbGFyYXRpb24ua2luZCA9PT0gJ3R5cGUnO1xuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmlkICE9IG51bGwpIHtcbiAgICAgICAgICBpZiAoaW5jbHVkZXMoW1xuICAgICAgICAgICAgJ1RTVHlwZUFsaWFzRGVjbGFyYXRpb24nLFxuICAgICAgICAgICAgJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nLFxuICAgICAgICAgIF0sIG5vZGUuZGVjbGFyYXRpb24udHlwZSkpIHtcbiAgICAgICAgICAgIGFkZE5hbWVkKG5vZGUuZGVjbGFyYXRpb24uaWQubmFtZSwgbm9kZS5kZWNsYXJhdGlvbi5pZCwgcGFyZW50LCB0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWRkTmFtZWQobm9kZS5kZWNsYXJhdGlvbi5pZC5uYW1lLCBub2RlLmRlY2xhcmF0aW9uLmlkLCBwYXJlbnQsIGlzVHlwZVZhcmlhYmxlRGVjbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zICE9IG51bGwpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGRlY2xhcmF0aW9uIG9mIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zKSB7XG4gICAgICAgICAgICByZWN1cnNpdmVQYXR0ZXJuQ2FwdHVyZShkZWNsYXJhdGlvbi5pZCwgdiA9PlxuICAgICAgICAgICAgICBhZGROYW1lZCh2Lm5hbWUsIHYsIHBhcmVudCwgaXNUeXBlVmFyaWFibGVEZWNsKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnRXhwb3J0QWxsRGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuOyAvLyBub3Qgc3VyZSBpZiB0aGlzIGlzIGV2ZXIgdHJ1ZVxuXG4gICAgICAgIC8vIGBleHBvcnQgKiBhcyBYIGZyb20gJ3BhdGgnYCBkb2VzIG5vdCBjb25mbGljdFxuICAgICAgICBpZiAobm9kZS5leHBvcnRlZCAmJiBub2RlLmV4cG9ydGVkLm5hbWUpIHJldHVybjtcblxuICAgICAgICBjb25zdCByZW1vdGVFeHBvcnRzID0gRXhwb3J0TWFwLmdldChub2RlLnNvdXJjZS52YWx1ZSwgY29udGV4dCk7XG4gICAgICAgIGlmIChyZW1vdGVFeHBvcnRzID09IG51bGwpIHJldHVybjtcblxuICAgICAgICBpZiAocmVtb3RlRXhwb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgcmVtb3RlRXhwb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gZ2V0UGFyZW50KG5vZGUpO1xuXG4gICAgICAgIGxldCBhbnkgPSBmYWxzZTtcbiAgICAgICAgcmVtb3RlRXhwb3J0cy5mb3JFYWNoKCh2LCBuYW1lKSA9PiB7XG4gICAgICAgICAgaWYgKG5hbWUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgICAgYW55ID0gdHJ1ZTsgLy8gcG9vciBtYW4ncyBmaWx0ZXJcbiAgICAgICAgICAgIGFkZE5hbWVkKG5hbWUsIG5vZGUsIHBhcmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFueSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KFxuICAgICAgICAgICAgbm9kZS5zb3VyY2UsXG4gICAgICAgICAgICBgTm8gbmFtZWQgZXhwb3J0cyBmb3VuZCBpbiBtb2R1bGUgJyR7bm9kZS5zb3VyY2UudmFsdWV9Jy5gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChjb25zdCBbLCBuYW1lZF0gb2YgbmFtZXNwYWNlKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgbm9kZXNdIG9mIG5hbWVkKSB7XG4gICAgICAgICAgICBpZiAobm9kZXMuc2l6ZSA8PSAxKSBjb250aW51ZTtcblxuICAgICAgICAgICAgaWYgKGlzVHlwZXNjcmlwdEZ1bmN0aW9uT3ZlcmxvYWRzKG5vZGVzKSkgY29udGludWU7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgICAgICAgICAgICBpZiAobmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgJ011bHRpcGxlIGRlZmF1bHQgZXhwb3J0cy4nKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBgTXVsdGlwbGUgZXhwb3J0cyBvZiBuYW1lICcke25hbWUucmVwbGFjZSh0c1R5cGVQcmVmaXgsICcnKX0nLmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/exports-last.js b/node_modules/eslint-plugin-import/lib/rules/exports-last.js index 54412a6704..a8dc0d4d36 100644 --- a/node_modules/eslint-plugin-import/lib/rules/exports-last.js +++ b/node_modules/eslint-plugin-import/lib/rules/exports-last.js @@ -38,4 +38,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnRzLWxhc3QuanMiXSwibmFtZXMiOlsiaXNOb25FeHBvcnRTdGF0ZW1lbnQiLCJ0eXBlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIlByb2dyYW0iLCJib2R5IiwibGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4IiwicmVkdWNlIiwiZmluZExhc3RJbmRleCIsImFjYyIsIml0ZW0iLCJpbmRleCIsInNsaWNlIiwiZm9yRWFjaCIsImNoZWNrTm9uRXhwb3J0Iiwibm9kZSIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBLFNBQVNBLG9CQUFULE9BQXdDLEtBQVJDLElBQVEsUUFBUkEsSUFBUTtBQUN0QyxTQUFPQSxTQUFTLDBCQUFUO0FBQ0xBLFdBQVMsd0JBREo7QUFFTEEsV0FBUyxzQkFGWDtBQUdEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkgsVUFBTSxZQURGO0FBRUpJLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxjQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsV0FBTztBQUNMQyxlQUFTLGlCQUFvQixLQUFSQyxJQUFRLFNBQVJBLElBQVE7QUFDM0IsY0FBTUMsOEJBQThCRCxLQUFLRSxNQUFMLENBQVksU0FBU0MsYUFBVCxDQUF1QkMsR0FBdkIsRUFBNEJDLElBQTVCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUN2RixjQUFJakIscUJBQXFCZ0IsSUFBckIsQ0FBSixFQUFnQztBQUM5QixtQkFBT0MsS0FBUDtBQUNEO0FBQ0QsaUJBQU9GLEdBQVA7QUFDRCxTQUxtQyxFQUtqQyxDQUFDLENBTGdDLENBQXBDOztBQU9BLFlBQUlILGdDQUFnQyxDQUFDLENBQXJDLEVBQXdDO0FBQ3RDRCxlQUFLTyxLQUFMLENBQVcsQ0FBWCxFQUFjTiwyQkFBZCxFQUEyQ08sT0FBM0MsQ0FBbUQsU0FBU0MsY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDL0UsZ0JBQUksQ0FBQ3JCLHFCQUFxQnFCLElBQXJCLENBQUwsRUFBaUM7QUFDL0JaLHNCQUFRYSxNQUFSLENBQWU7QUFDYkQsb0JBRGE7QUFFYkUseUJBQVMsd0RBRkksRUFBZjs7QUFJRDtBQUNGLFdBUEQ7QUFRRDtBQUNGLE9BbkJJLEVBQVA7O0FBcUJELEdBL0JjLEVBQWpCIiwiZmlsZSI6ImV4cG9ydHMtbGFzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGlzTm9uRXhwb3J0U3RhdGVtZW50KHsgdHlwZSB9KSB7XG4gIHJldHVybiB0eXBlICE9PSAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJyAmJlxuICAgIHR5cGUgIT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyAmJlxuICAgIHR5cGUgIT09ICdFeHBvcnRBbGxEZWNsYXJhdGlvbidcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdleHBvcnRzLWxhc3QnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBQcm9ncmFtOiBmdW5jdGlvbiAoeyBib2R5IH0pIHtcbiAgICAgICAgY29uc3QgbGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4ID0gYm9keS5yZWR1Y2UoZnVuY3Rpb24gZmluZExhc3RJbmRleChhY2MsIGl0ZW0sIGluZGV4KSB7XG4gICAgICAgICAgaWYgKGlzTm9uRXhwb3J0U3RhdGVtZW50KGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LCAtMSlcblxuICAgICAgICBpZiAobGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIGJvZHkuc2xpY2UoMCwgbGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4KS5mb3JFYWNoKGZ1bmN0aW9uIGNoZWNrTm9uRXhwb3J0KG5vZGUpIHtcbiAgICAgICAgICAgIGlmICghaXNOb25FeHBvcnRTdGF0ZW1lbnQobm9kZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0V4cG9ydCBzdGF0ZW1lbnRzIHNob3VsZCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZScsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHBvcnRzLWxhc3QuanMiXSwibmFtZXMiOlsiaXNOb25FeHBvcnRTdGF0ZW1lbnQiLCJ0eXBlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIlByb2dyYW0iLCJib2R5IiwibGFzdE5vbkV4cG9ydFN0YXRlbWVudEluZGV4IiwicmVkdWNlIiwiZmluZExhc3RJbmRleCIsImFjYyIsIml0ZW0iLCJpbmRleCIsInNsaWNlIiwiZm9yRWFjaCIsImNoZWNrTm9uRXhwb3J0Iiwibm9kZSIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBLFNBQVNBLG9CQUFULE9BQXdDLEtBQVJDLElBQVEsUUFBUkEsSUFBUTtBQUN0QyxTQUFPQSxTQUFTLDBCQUFUO0FBQ0xBLFdBQVMsd0JBREo7QUFFTEEsV0FBUyxzQkFGWDtBQUdEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkgsVUFBTSxZQURGO0FBRUpJLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxjQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsV0FBTztBQUNMQyxlQUFTLGlCQUFvQixLQUFSQyxJQUFRLFNBQVJBLElBQVE7QUFDM0IsY0FBTUMsOEJBQThCRCxLQUFLRSxNQUFMLENBQVksU0FBU0MsYUFBVCxDQUF1QkMsR0FBdkIsRUFBNEJDLElBQTVCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUN2RixjQUFJakIscUJBQXFCZ0IsSUFBckIsQ0FBSixFQUFnQztBQUM5QixtQkFBT0MsS0FBUDtBQUNEO0FBQ0QsaUJBQU9GLEdBQVA7QUFDRCxTQUxtQyxFQUtqQyxDQUFDLENBTGdDLENBQXBDOztBQU9BLFlBQUlILGdDQUFnQyxDQUFDLENBQXJDLEVBQXdDO0FBQ3RDRCxlQUFLTyxLQUFMLENBQVcsQ0FBWCxFQUFjTiwyQkFBZCxFQUEyQ08sT0FBM0MsQ0FBbUQsU0FBU0MsY0FBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFDL0UsZ0JBQUksQ0FBQ3JCLHFCQUFxQnFCLElBQXJCLENBQUwsRUFBaUM7QUFDL0JaLHNCQUFRYSxNQUFSLENBQWU7QUFDYkQsb0JBRGE7QUFFYkUseUJBQVMsd0RBRkksRUFBZjs7QUFJRDtBQUNGLFdBUEQ7QUFRRDtBQUNGLE9BbkJJLEVBQVA7O0FBcUJELEdBL0JjLEVBQWpCIiwiZmlsZSI6ImV4cG9ydHMtbGFzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5mdW5jdGlvbiBpc05vbkV4cG9ydFN0YXRlbWVudCh7IHR5cGUgfSkge1xuICByZXR1cm4gdHlwZSAhPT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicgJiZcbiAgICB0eXBlICE9PSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicgJiZcbiAgICB0eXBlICE9PSAnRXhwb3J0QWxsRGVjbGFyYXRpb24nO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2V4cG9ydHMtbGFzdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFByb2dyYW06IGZ1bmN0aW9uICh7IGJvZHkgfSkge1xuICAgICAgICBjb25zdCBsYXN0Tm9uRXhwb3J0U3RhdGVtZW50SW5kZXggPSBib2R5LnJlZHVjZShmdW5jdGlvbiBmaW5kTGFzdEluZGV4KGFjYywgaXRlbSwgaW5kZXgpIHtcbiAgICAgICAgICBpZiAoaXNOb25FeHBvcnRTdGF0ZW1lbnQoaXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgLTEpO1xuXG4gICAgICAgIGlmIChsYXN0Tm9uRXhwb3J0U3RhdGVtZW50SW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgYm9keS5zbGljZSgwLCBsYXN0Tm9uRXhwb3J0U3RhdGVtZW50SW5kZXgpLmZvckVhY2goZnVuY3Rpb24gY2hlY2tOb25FeHBvcnQobm9kZSkge1xuICAgICAgICAgICAgaWYgKCFpc05vbkV4cG9ydFN0YXRlbWVudChub2RlKSkge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnRXhwb3J0IHN0YXRlbWVudHMgc2hvdWxkIGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/extensions.js b/node_modules/eslint-plugin-import/lib/rules/extensions.js index 603be8609d..34430099e4 100644 --- a/node_modules/eslint-plugin-import/lib/rules/extensions.js +++ b/node_modules/eslint-plugin-import/lib/rules/extensions.js @@ -2,6 +2,7 @@ var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); var _importType = require('../core/importType'); +var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} const enumValues = { enum: ['always', 'ignorePackages', 'never'] }; @@ -129,14 +130,12 @@ module.exports = { function isExternalRootModule(file) { const slashCount = file.split('/').length - 1; + if (slashCount === 0) return true; if ((0, _importType.isScopedModule)(file) && slashCount <= 1) return true; - if ((0, _importType.isExternalModule)(file, context, (0, _resolve2.default)(file, context)) && !slashCount) return true; return false; } - function checkFileExtension(node) {const - source = node.source; - + function checkFileExtension(source) { // bail if the declaration doesn't have a source, e.g. "export { foo };" if (!source) return; @@ -158,7 +157,11 @@ module.exports = { const extension = _path2.default.extname(resolvedPath || importPath).substring(1); // determine if this is a module - const isPackage = (0, _importType.isExternalModule)(importPath, context.settings) || + const isPackage = (0, _importType.isExternalModule)( + importPath, + context.settings, + (0, _resolve2.default)(importPath, context), + context) || (0, _importType.isScoped)(importPath); if (!extension || !importPath.endsWith(`.${extension}`)) { @@ -181,9 +184,6 @@ module.exports = { } } - return { - ImportDeclaration: checkFileExtension, - ExportNamedDeclaration: checkFileExtension }; - + return (0, _moduleVisitor2.default)(checkFileExtension, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHRlbnNpb25zLmpzIl0sIm5hbWVzIjpbImVudW1WYWx1ZXMiLCJlbnVtIiwicGF0dGVyblByb3BlcnRpZXMiLCJ0eXBlIiwicHJvcGVydGllcyIsImJ1aWxkUHJvcGVydGllcyIsImNvbnRleHQiLCJyZXN1bHQiLCJkZWZhdWx0Q29uZmlnIiwicGF0dGVybiIsImlnbm9yZVBhY2thZ2VzIiwib3B0aW9ucyIsImZvckVhY2giLCJvYmoiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwicHJvcHMiLCJnZXRNb2RpZmllciIsImV4dGVuc2lvbiIsImlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZCIsImlzUGFja2FnZSIsImlzVXNlT2ZFeHRlbnNpb25Gb3JiaWRkZW4iLCJpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uIiwiZmlsZSIsInBhdGgiLCJleHRuYW1lIiwiZmlsZVdpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImxlbmd0aCIsInJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24iLCJpc0V4dGVybmFsUm9vdE1vZHVsZSIsInNsYXNoQ291bnQiLCJzcGxpdCIsImNoZWNrRmlsZUV4dGVuc2lvbiIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nIiwidmFsdWUiLCJzZXR0aW5ncyIsImltcG9ydFBhdGgiLCJyZXBsYWNlIiwicmVzb2x2ZWRQYXRoIiwic3Vic3RyaW5nIiwiZW5kc1dpdGgiLCJleHRlbnNpb25SZXF1aXJlZCIsImV4dGVuc2lvbkZvcmJpZGRlbiIsInJlcG9ydCIsIm1lc3NhZ2UiLCJJbXBvcnREZWNsYXJhdGlvbiIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iXSwibWFwcGluZ3MiOiJhQUFBLDRCOztBQUVB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d0JoQixrQkFGbkIsRUFBUDs7QUFJRCxHQS9IYyxFQUFqQiIsImZpbGUiOiJleHRlbnNpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IHsgaXNCdWlsdEluLCBpc0V4dGVybmFsTW9kdWxlLCBpc1Njb3BlZCwgaXNTY29wZWRNb2R1bGUgfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBlbnVtVmFsdWVzID0geyBlbnVtOiBbICdhbHdheXMnLCAnaWdub3JlUGFja2FnZXMnLCAnbmV2ZXInIF0gfVxuY29uc3QgcGF0dGVyblByb3BlcnRpZXMgPSB7XG4gIHR5cGU6ICdvYmplY3QnLFxuICBwYXR0ZXJuUHJvcGVydGllczogeyAnLionOiBlbnVtVmFsdWVzIH0sXG59XG5jb25zdCBwcm9wZXJ0aWVzID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgICdwYXR0ZXJuJzogcGF0dGVyblByb3BlcnRpZXMsXG4gICAgJ2lnbm9yZVBhY2thZ2VzJzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgfSxcbn1cblxuZnVuY3Rpb24gYnVpbGRQcm9wZXJ0aWVzKGNvbnRleHQpIHtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGRlZmF1bHRDb25maWc6ICduZXZlcicsXG4gICAgICBwYXR0ZXJuOiB7fSxcbiAgICAgIGlnbm9yZVBhY2thZ2VzOiBmYWxzZSxcbiAgICB9XG5cbiAgICBjb250ZXh0Lm9wdGlvbnMuZm9yRWFjaChvYmogPT4ge1xuXG4gICAgICAvLyBJZiB0aGlzIGlzIGEgc3RyaW5nLCBzZXQgZGVmYXVsdENvbmZpZyB0byBpdHMgdmFsdWVcbiAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQuZGVmYXVsdENvbmZpZyA9IG9ialxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhpcyBpcyBub3QgdGhlIG5ldyBzdHJ1Y3R1cmUsIHRyYW5zZmVyIGFsbCBwcm9wcyB0byByZXN1bHQucGF0dGVyblxuICAgICAgaWYgKG9iai5wYXR0ZXJuID09PSB1bmRlZmluZWQgJiYgb2JqLmlnbm9yZVBhY2thZ2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQucGF0dGVybiwgb2JqKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSWYgcGF0dGVybiBpcyBwcm92aWRlZCwgdHJhbnNmZXIgYWxsIHByb3BzXG4gICAgICBpZiAob2JqLnBhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlc3VsdC5wYXR0ZXJuLCBvYmoucGF0dGVybilcbiAgICAgIH1cblxuICAgICAgLy8gSWYgaWdub3JlUGFja2FnZXMgaXMgcHJvdmlkZWQsIHRyYW5zZmVyIGl0IHRvIHJlc3VsdFxuICAgICAgaWYgKG9iai5pZ25vcmVQYWNrYWdlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdC5pZ25vcmVQYWNrYWdlcyA9IG9iai5pZ25vcmVQYWNrYWdlc1xuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAocmVzdWx0LmRlZmF1bHRDb25maWcgPT09ICdpZ25vcmVQYWNrYWdlcycpIHtcbiAgICAgIHJlc3VsdC5kZWZhdWx0Q29uZmlnID0gJ2Fsd2F5cydcbiAgICAgIHJlc3VsdC5pZ25vcmVQYWNrYWdlcyA9IHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnZXh0ZW5zaW9ucycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbZW51bVZhbHVlc10sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgIGVudW1WYWx1ZXMsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtwcm9wZXJ0aWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3BhdHRlcm5Qcm9wZXJ0aWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgZW51bVZhbHVlcyxcbiAgICAgICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBjb25zdCBwcm9wcyA9IGJ1aWxkUHJvcGVydGllcyhjb250ZXh0KVxuXG4gICAgZnVuY3Rpb24gZ2V0TW9kaWZpZXIoZXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gcHJvcHMucGF0dGVybltleHRlbnNpb25dIHx8IHByb3BzLmRlZmF1bHRDb25maWdcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VzZU9mRXh0ZW5zaW9uUmVxdWlyZWQoZXh0ZW5zaW9uLCBpc1BhY2thZ2UpIHtcbiAgICAgIHJldHVybiBnZXRNb2RpZmllcihleHRlbnNpb24pID09PSAnYWx3YXlzJyAmJiAoIXByb3BzLmlnbm9yZVBhY2thZ2VzIHx8ICFpc1BhY2thZ2UpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBnZXRNb2RpZmllcihleHRlbnNpb24pID09PSAnbmV2ZXInXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNSZXNvbHZhYmxlV2l0aG91dEV4dGVuc2lvbihmaWxlKSB7XG4gICAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSlcbiAgICAgIGNvbnN0IGZpbGVXaXRob3V0RXh0ZW5zaW9uID0gZmlsZS5zbGljZSgwLCAtZXh0ZW5zaW9uLmxlbmd0aClcbiAgICAgIGNvbnN0IHJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24gPSByZXNvbHZlKGZpbGVXaXRob3V0RXh0ZW5zaW9uLCBjb250ZXh0KVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRXh0ZXJuYWxSb290TW9kdWxlKGZpbGUpIHtcbiAgICAgIGNvbnN0IHNsYXNoQ291bnQgPSBmaWxlLnNwbGl0KCcvJykubGVuZ3RoIC0gMVxuXG4gICAgICBpZiAoaXNTY29wZWRNb2R1bGUoZmlsZSkgJiYgc2xhc2hDb3VudCA8PSAxKSByZXR1cm4gdHJ1ZVxuICAgICAgaWYgKGlzRXh0ZXJuYWxNb2R1bGUoZmlsZSwgY29udGV4dCwgcmVzb2x2ZShmaWxlLCBjb250ZXh0KSkgJiYgIXNsYXNoQ291bnQpIHJldHVybiB0cnVlXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ZpbGVFeHRlbnNpb24obm9kZSkge1xuICAgICAgY29uc3QgeyBzb3VyY2UgfSA9IG5vZGVcblxuICAgICAgLy8gYmFpbCBpZiB0aGUgZGVjbGFyYXRpb24gZG9lc24ndCBoYXZlIGEgc291cmNlLCBlLmcuIFwiZXhwb3J0IHsgZm9vIH07XCJcbiAgICAgIGlmICghc291cmNlKSByZXR1cm5cblxuICAgICAgY29uc3QgaW1wb3J0UGF0aFdpdGhRdWVyeVN0cmluZyA9IHNvdXJjZS52YWx1ZVxuXG4gICAgICAvLyBkb24ndCBlbmZvcmNlIGFueXRoaW5nIG9uIGJ1aWx0aW5zXG4gICAgICBpZiAoaXNCdWlsdEluKGltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmcsIGNvbnRleHQuc2V0dGluZ3MpKSByZXR1cm5cblxuICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmcucmVwbGFjZSgvXFw/KC4qKSQvLCAnJylcblxuICAgICAgLy8gZG9uJ3QgZW5mb3JjZSBpbiByb290IGV4dGVybmFsIHBhY2thZ2VzIGFzIHRoZXkgbWF5IGhhdmUgbmFtZXMgd2l0aCBgLmpzYC5cbiAgICAgIC8vIExpa2UgYGltcG9ydCBEZWNpbWFsIGZyb20gZGVjaW1hbC5qc2ApXG4gICAgICBpZiAoaXNFeHRlcm5hbFJvb3RNb2R1bGUoaW1wb3J0UGF0aCkpIHJldHVyblxuXG4gICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlKGltcG9ydFBhdGgsIGNvbnRleHQpXG5cbiAgICAgIC8vIGdldCBleHRlbnNpb24gZnJvbSByZXNvbHZlZCBwYXRoLCBpZiBwb3NzaWJsZS5cbiAgICAgIC8vIGZvciB1bnJlc29sdmVkLCB1c2Ugc291cmNlIHZhbHVlLlxuICAgICAgY29uc3QgZXh0ZW5zaW9uID0gcGF0aC5leHRuYW1lKHJlc29sdmVkUGF0aCB8fCBpbXBvcnRQYXRoKS5zdWJzdHJpbmcoMSlcblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBtb2R1bGVcbiAgICAgIGNvbnN0IGlzUGFja2FnZSA9IGlzRXh0ZXJuYWxNb2R1bGUoaW1wb3J0UGF0aCwgY29udGV4dC5zZXR0aW5ncylcbiAgICAgICAgfHwgaXNTY29wZWQoaW1wb3J0UGF0aClcblxuICAgICAgaWYgKCFleHRlbnNpb24gfHwgIWltcG9ydFBhdGguZW5kc1dpdGgoYC4ke2V4dGVuc2lvbn1gKSkge1xuICAgICAgICBjb25zdCBleHRlbnNpb25SZXF1aXJlZCA9IGlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZChleHRlbnNpb24sIGlzUGFja2FnZSlcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uRm9yYmlkZGVuID0gaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pXG4gICAgICAgIGlmIChleHRlbnNpb25SZXF1aXJlZCAmJiAhZXh0ZW5zaW9uRm9yYmlkZGVuKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgYE1pc3NpbmcgZmlsZSBleHRlbnNpb24gJHtleHRlbnNpb24gPyBgXCIke2V4dGVuc2lvbn1cIiBgIDogJyd9Zm9yIFwiJHtpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nfVwiYCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV4dGVuc2lvbikge1xuICAgICAgICBpZiAoaXNVc2VPZkV4dGVuc2lvbkZvcmJpZGRlbihleHRlbnNpb24pICYmIGlzUmVzb2x2YWJsZVdpdGhvdXRFeHRlbnNpb24oaW1wb3J0UGF0aCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBzb3VyY2UsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB1c2Ugb2YgZmlsZSBleHRlbnNpb24gXCIke2V4dGVuc2lvbn1cIiBmb3IgXCIke2ltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmd9XCJgLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb246IGNoZWNrRmlsZUV4dGVuc2lvbixcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9leHRlbnNpb25zLmpzIl0sIm5hbWVzIjpbImVudW1WYWx1ZXMiLCJlbnVtIiwicGF0dGVyblByb3BlcnRpZXMiLCJ0eXBlIiwicHJvcGVydGllcyIsImJ1aWxkUHJvcGVydGllcyIsImNvbnRleHQiLCJyZXN1bHQiLCJkZWZhdWx0Q29uZmlnIiwicGF0dGVybiIsImlnbm9yZVBhY2thZ2VzIiwib3B0aW9ucyIsImZvckVhY2giLCJvYmoiLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwicHJvcHMiLCJnZXRNb2RpZmllciIsImV4dGVuc2lvbiIsImlzVXNlT2ZFeHRlbnNpb25SZXF1aXJlZCIsImlzUGFja2FnZSIsImlzVXNlT2ZFeHRlbnNpb25Gb3JiaWRkZW4iLCJpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uIiwiZmlsZSIsInBhdGgiLCJleHRuYW1lIiwiZmlsZVdpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImxlbmd0aCIsInJlc29sdmVkRmlsZVdpdGhvdXRFeHRlbnNpb24iLCJpc0V4dGVybmFsUm9vdE1vZHVsZSIsInNsYXNoQ291bnQiLCJzcGxpdCIsImNoZWNrRmlsZUV4dGVuc2lvbiIsInNvdXJjZSIsImltcG9ydFBhdGhXaXRoUXVlcnlTdHJpbmciLCJ2YWx1ZSIsInNldHRpbmdzIiwiaW1wb3J0UGF0aCIsInJlcGxhY2UiLCJyZXNvbHZlZFBhdGgiLCJzdWJzdHJpbmciLCJlbmRzV2l0aCIsImV4dGVuc2lvblJlcXVpcmVkIiwiZXh0ZW5zaW9uRm9yYmlkZGVuIiwicmVwb3J0Iiwibm9kZSIsIm1lc3NhZ2UiLCJjb21tb25qcyJdLCJtYXBwaW5ncyI6ImFBQUEsNEI7O0FBRUEsc0Q7QUFDQTtBQUNBLGtFO0FBQ0EscUM7O0FBRUEsTUFB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IGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuaW1wb3J0IHsgaXNCdWlsdEluLCBpc0V4dGVybmFsTW9kdWxlLCBpc1Njb3BlZCwgaXNTY29wZWRNb2R1bGUgfSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnO1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5jb25zdCBlbnVtVmFsdWVzID0geyBlbnVtOiBbICdhbHdheXMnLCAnaWdub3JlUGFja2FnZXMnLCAnbmV2ZXInIF0gfTtcbmNvbnN0IHBhdHRlcm5Qcm9wZXJ0aWVzID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcGF0dGVyblByb3BlcnRpZXM6IHsgJy4qJzogZW51bVZhbHVlcyB9LFxufTtcbmNvbnN0IHByb3BlcnRpZXMgPSB7XG4gIHR5cGU6ICdvYmplY3QnLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgJ3BhdHRlcm4nOiBwYXR0ZXJuUHJvcGVydGllcyxcbiAgICAnaWdub3JlUGFja2FnZXMnOiB7IHR5cGU6ICdib29sZWFuJyB9LFxuICB9LFxufTtcblxuZnVuY3Rpb24gYnVpbGRQcm9wZXJ0aWVzKGNvbnRleHQpIHtcblxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgZGVmYXVsdENvbmZpZzogJ25ldmVyJyxcbiAgICBwYXR0ZXJuOiB7fSxcbiAgICBpZ25vcmVQYWNrYWdlczogZmFsc2UsXG4gIH07XG5cbiAgY29udGV4dC5vcHRpb25zLmZvckVhY2gob2JqID0+IHtcblxuICAgIC8vIElmIHRoaXMgaXMgYSBzdHJpbmcsIHNldCBkZWZhdWx0Q29uZmlnIHRvIGl0cyB2YWx1ZVxuICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0LmRlZmF1bHRDb25maWcgPSBvYmo7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgdGhpcyBpcyBub3QgdGhlIG5ldyBzdHJ1Y3R1cmUsIHRyYW5zZmVyIGFsbCBwcm9wcyB0byByZXN1bHQucGF0dGVyblxuICAgIGlmIChvYmoucGF0dGVybiA9PT0gdW5kZWZpbmVkICYmIG9iai5pZ25vcmVQYWNrYWdlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdC5wYXR0ZXJuLCBvYmopO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElmIHBhdHRlcm4gaXMgcHJvdmlkZWQsIHRyYW5zZmVyIGFsbCBwcm9wc1xuICAgIGlmIChvYmoucGF0dGVybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdC5wYXR0ZXJuLCBvYmoucGF0dGVybik7XG4gICAgfVxuXG4gICAgLy8gSWYgaWdub3JlUGFja2FnZXMgaXMgcHJvdmlkZWQsIHRyYW5zZmVyIGl0IHRvIHJlc3VsdFxuICAgIGlmIChvYmouaWdub3JlUGFja2FnZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0Lmlnbm9yZVBhY2thZ2VzID0gb2JqLmlnbm9yZVBhY2thZ2VzO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHJlc3VsdC5kZWZhdWx0Q29uZmlnID09PSAnaWdub3JlUGFja2FnZXMnKSB7XG4gICAgcmVzdWx0LmRlZmF1bHRDb25maWcgPSAnYWx3YXlzJztcbiAgICByZXN1bHQuaWdub3JlUGFja2FnZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdleHRlbnNpb25zJyksXG4gICAgfSxcblxuICAgIHNjaGVtYToge1xuICAgICAgYW55T2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtlbnVtVmFsdWVzXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgZW51bVZhbHVlcyxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3Byb3BlcnRpZXNdLFxuICAgICAgICAgIGFkZGl0aW9uYWxJdGVtczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbcGF0dGVyblByb3BlcnRpZXNdLFxuICAgICAgICAgIGFkZGl0aW9uYWxJdGVtczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICBlbnVtVmFsdWVzLFxuICAgICAgICAgICAgcGF0dGVyblByb3BlcnRpZXMsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcblxuICAgIGNvbnN0IHByb3BzID0gYnVpbGRQcm9wZXJ0aWVzKGNvbnRleHQpO1xuXG4gICAgZnVuY3Rpb24gZ2V0TW9kaWZpZXIoZXh0ZW5zaW9uKSB7XG4gICAgICByZXR1cm4gcHJvcHMucGF0dGVybltleHRlbnNpb25dIHx8IHByb3BzLmRlZmF1bHRDb25maWc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVc2VPZkV4dGVuc2lvblJlcXVpcmVkKGV4dGVuc2lvbiwgaXNQYWNrYWdlKSB7XG4gICAgICByZXR1cm4gZ2V0TW9kaWZpZXIoZXh0ZW5zaW9uKSA9PT0gJ2Fsd2F5cycgJiYgKCFwcm9wcy5pZ25vcmVQYWNrYWdlcyB8fCAhaXNQYWNrYWdlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VzZU9mRXh0ZW5zaW9uRm9yYmlkZGVuKGV4dGVuc2lvbikge1xuICAgICAgcmV0dXJuIGdldE1vZGlmaWVyKGV4dGVuc2lvbikgPT09ICduZXZlcic7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNSZXNvbHZhYmxlV2l0aG91dEV4dGVuc2lvbihmaWxlKSB7XG4gICAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUoZmlsZSk7XG4gICAgICBjb25zdCBmaWxlV2l0aG91dEV4dGVuc2lvbiA9IGZpbGUuc2xpY2UoMCwgLWV4dGVuc2lvbi5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9IHJlc29sdmUoZmlsZVdpdGhvdXRFeHRlbnNpb24sIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gcmVzb2x2ZWRGaWxlV2l0aG91dEV4dGVuc2lvbiA9PT0gcmVzb2x2ZShmaWxlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0V4dGVybmFsUm9vdE1vZHVsZShmaWxlKSB7XG4gICAgICBjb25zdCBzbGFzaENvdW50ID0gZmlsZS5zcGxpdCgnLycpLmxlbmd0aCAtIDE7XG5cbiAgICAgIGlmIChzbGFzaENvdW50ID09PSAwKSAgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoaXNTY29wZWRNb2R1bGUoZmlsZSkgJiYgc2xhc2hDb3VudCA8PSAxKSByZXR1cm4gdHJ1ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ZpbGVFeHRlbnNpb24oc291cmNlKSB7XG4gICAgICAvLyBiYWlsIGlmIHRoZSBkZWNsYXJhdGlvbiBkb2Vzbid0IGhhdmUgYSBzb3VyY2UsIGUuZy4gXCJleHBvcnQgeyBmb28gfTtcIlxuICAgICAgaWYgKCFzb3VyY2UpIHJldHVybjtcbiAgICAgIFxuICAgICAgY29uc3QgaW1wb3J0UGF0aFdpdGhRdWVyeVN0cmluZyA9IHNvdXJjZS52YWx1ZTtcblxuICAgICAgLy8gZG9uJ3QgZW5mb3JjZSBhbnl0aGluZyBvbiBidWlsdGluc1xuICAgICAgaWYgKGlzQnVpbHRJbihpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nLCBjb250ZXh0LnNldHRpbmdzKSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBpbXBvcnRQYXRoID0gaW1wb3J0UGF0aFdpdGhRdWVyeVN0cmluZy5yZXBsYWNlKC9cXD8oLiopJC8sICcnKTtcblxuICAgICAgLy8gZG9uJ3QgZW5mb3JjZSBpbiByb290IGV4dGVybmFsIHBhY2thZ2VzIGFzIHRoZXkgbWF5IGhhdmUgbmFtZXMgd2l0aCBgLmpzYC5cbiAgICAgIC8vIExpa2UgYGltcG9ydCBEZWNpbWFsIGZyb20gZGVjaW1hbC5qc2ApXG4gICAgICBpZiAoaXNFeHRlcm5hbFJvb3RNb2R1bGUoaW1wb3J0UGF0aCkpIHJldHVybjtcblxuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KTtcblxuICAgICAgLy8gZ2V0IGV4dGVuc2lvbiBmcm9tIHJlc29sdmVkIHBhdGgsIGlmIHBvc3NpYmxlLlxuICAgICAgLy8gZm9yIHVucmVzb2x2ZWQsIHVzZSBzb3VyY2UgdmFsdWUuXG4gICAgICBjb25zdCBleHRlbnNpb24gPSBwYXRoLmV4dG5hbWUocmVzb2x2ZWRQYXRoIHx8IGltcG9ydFBhdGgpLnN1YnN0cmluZygxKTtcblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBtb2R1bGVcbiAgICAgIGNvbnN0IGlzUGFja2FnZSA9IGlzRXh0ZXJuYWxNb2R1bGUoXG4gICAgICAgIGltcG9ydFBhdGgsXG4gICAgICAgIGNvbnRleHQuc2V0dGluZ3MsXG4gICAgICAgIHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dCksXG4gICAgICAgIGNvbnRleHRcbiAgICAgICkgfHwgaXNTY29wZWQoaW1wb3J0UGF0aCk7XG5cbiAgICAgIGlmICghZXh0ZW5zaW9uIHx8ICFpbXBvcnRQYXRoLmVuZHNXaXRoKGAuJHtleHRlbnNpb259YCkpIHtcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uUmVxdWlyZWQgPSBpc1VzZU9mRXh0ZW5zaW9uUmVxdWlyZWQoZXh0ZW5zaW9uLCBpc1BhY2thZ2UpO1xuICAgICAgICBjb25zdCBleHRlbnNpb25Gb3JiaWRkZW4gPSBpc1VzZU9mRXh0ZW5zaW9uRm9yYmlkZGVuKGV4dGVuc2lvbik7XG4gICAgICAgIGlmIChleHRlbnNpb25SZXF1aXJlZCAmJiAhZXh0ZW5zaW9uRm9yYmlkZGVuKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgYE1pc3NpbmcgZmlsZSBleHRlbnNpb24gJHtleHRlbnNpb24gPyBgXCIke2V4dGVuc2lvbn1cIiBgIDogJyd9Zm9yIFwiJHtpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nfVwiYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChleHRlbnNpb24pIHtcbiAgICAgICAgaWYgKGlzVXNlT2ZFeHRlbnNpb25Gb3JiaWRkZW4oZXh0ZW5zaW9uKSAmJiBpc1Jlc29sdmFibGVXaXRob3V0RXh0ZW5zaW9uKGltcG9ydFBhdGgpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdXNlIG9mIGZpbGUgZXh0ZW5zaW9uIFwiJHtleHRlbnNpb259XCIgZm9yIFwiJHtpbXBvcnRQYXRoV2l0aFF1ZXJ5U3RyaW5nfVwiYCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrRmlsZUV4dGVuc2lvbiwgeyBjb21tb25qczogdHJ1ZSB9KTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/first.js b/node_modules/eslint-plugin-import/lib/rules/first.js index 02d8229c25..7c84226786 100644 --- a/node_modules/eslint-plugin-import/lib/rules/first.js +++ b/node_modules/eslint-plugin-import/lib/rules/first.js @@ -1,5 +1,11 @@ 'use strict';var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +function getImportValue(node) { + return node.type === 'ImportDeclaration' ? + node.source.value : + node.moduleReference.expression.value; +} + module.exports = { meta: { type: 'suggestion', @@ -24,18 +30,18 @@ module.exports = { return { 'Program': function (n) { - const body = n.body, - absoluteFirst = context.options[0] === 'absolute-first', - message = 'Import in body of module; reorder to top.', - sourceCode = context.getSourceCode(), - originSourceCode = sourceCode.getText(); - let nonImportCount = 0, - anyExpressions = false, - anyRelative = false, - lastLegalImp = null, - errorInfos = [], - shouldSort = true, - lastSortNodesIndex = 0; + const body = n.body; + const absoluteFirst = context.options[0] === 'absolute-first'; + const message = 'Import in body of module; reorder to top.'; + const sourceCode = context.getSourceCode(); + const originSourceCode = sourceCode.getText(); + let nonImportCount = 0; + let anyExpressions = false; + let anyRelative = false; + let lastLegalImp = null; + const errorInfos = []; + let shouldSort = true; + let lastSortNodesIndex = 0; body.forEach(function (node, index) { if (!anyExpressions && isPossibleDirective(node)) { return; @@ -43,23 +49,23 @@ module.exports = { anyExpressions = true; - if (node.type === 'ImportDeclaration') { + if (node.type === 'ImportDeclaration' || node.type === 'TSImportEqualsDeclaration') { if (absoluteFirst) { - if (/^\./.test(node.source.value)) { + if (/^\./.test(getImportValue(node))) { anyRelative = true; } else if (anyRelative) { context.report({ - node: node.source, + node: node.type === 'ImportDeclaration' ? node.source : node.moduleReference, message: 'Absolute imports should come before relative imports.' }); } } if (nonImportCount > 0) { - for (let variable of context.getDeclaredVariables(node)) { + for (const variable of context.getDeclaredVariables(node)) { if (!shouldSort) break; const references = variable.references; if (references.length) { - for (let reference of references) { + for (const reference of references) { if (reference.identifier.range[0] < node.range[1]) { shouldSort = false; break; @@ -81,8 +87,8 @@ module.exports = { }); if (!errorInfos.length) return; errorInfos.forEach(function (errorInfo, index) { - const node = errorInfo.node, - infos = { + const node = errorInfo.node; + const infos = { node, message }; @@ -95,8 +101,8 @@ module.exports = { infos.fix = function (fixer) { const removeFixers = sortNodes.map(function (_errorInfo) { return fixer.removeRange(_errorInfo.range); - }), - range = [0, removeFixers[removeFixers.length - 1].range[1]]; + }); + const range = [0, removeFixers[removeFixers.length - 1].range[1]]; let insertSourceCode = sortNodes.map(function (_errorInfo) { const nodeSourceCode = String.prototype.slice.apply( originSourceCode, _errorInfo.range); @@ -105,9 +111,9 @@ module.exports = { return '\n' + nodeSourceCode; } return nodeSourceCode; - }).join(''), - insertFixer = null, - replaceSourceCode = ''; + }).join(''); + let insertFixer = null; + let replaceSourceCode = ''; if (!lastLegalImp) { insertSourceCode = insertSourceCode.trim() + insertSourceCode.match(/^(\s+)/)[0]; @@ -129,4 +135,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9maXJzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsImVudW0iLCJjcmVhdGUiLCJjb250ZXh0IiwiaXNQb3NzaWJsZURpcmVjdGl2ZSIsIm5vZGUiLCJleHByZXNzaW9uIiwidmFsdWUiLCJuIiwiYm9keSIsImFic29sdXRlRmlyc3QiLCJvcHRpb25zIiwibWVzc2FnZSIsInNvdXJjZUNvZGUiLCJnZXRTb3VyY2VDb2RlIiwib3JpZ2luU291cmNlQ29kZSIsImdldFRleHQiLCJub25JbXBvcnRDb3VudCIsImFueUV4cHJlc3Npb25zIiwiYW55UmVsYXRpdmUiLCJsYXN0TGVnYWxJbXAiLCJlcnJvckluZm9zIiwic2hvdWxkU29ydCIsImxhc3RTb3J0Tm9kZXNJbmRleCIsImZvckVhY2giLCJpbmRleCIsInRlc3QiLCJzb3VyY2UiLCJyZXBvcnQiLCJ2YXJpYWJsZSIsImdldERlY2xhcmVkVmFyaWFibGVzIiwicmVmZXJlbmNlcyIsImxlbmd0aCIsInJlZmVyZW5jZSIsImlkZW50aWZpZXIiLCJyYW5nZSIsInB1c2giLCJlcnJvckluZm8iLCJpbmZvcyIsImZpeCIsImZpeGVyIiwiaW5zZXJ0VGV4dEFmdGVyIiwic29ydE5vZGVzIiwic2xpY2UiLCJyZW1vdmVGaXhlcnMiLCJtYXAiLCJfZXJyb3JJbmZvIiwicmVtb3ZlUmFuZ2UiLCJpbnNlcnRTb3VyY2VDb2RlIiwibm9kZVNvdXJjZUNvZGUiLCJTdHJpbmciLCJwcm90b3R5cGUiLCJhcHBseSIsImpvaW4iLCJpbnNlcnRGaXhlciIsInJlcGxhY2VTb3VyY2VDb2RlIiwidHJpbSIsIm1hdGNoIiwiaW5zZXJ0VGV4dEJlZm9yZSIsImZpeGVycyIsImNvbmNhdCIsImNvbXB1dGVkRml4ZXIiLCJpIiwidGV4dCIsInJlcGxhY2VUZXh0UmFuZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFD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QVJnQixDQVFYLEVBUlcsQ0FBdkI7QUFTSUMsNEJBQWMsSUFUbEI7QUFVSUMsa0NBQW9CLEVBVnhCO0FBV0Esa0JBQUksQ0FBQ25DLFlBQUwsRUFBbUI7QUFDZjRCO0FBQ0VBLGlDQUFpQlEsSUFBakIsS0FBMEJSLGlCQUFpQlMsS0FBakIsQ0FBdUIsUUFBdkIsRUFBaUMsQ0FBakMsQ0FENUI7QUFFSDtBQUNESCw0QkFBY2xDO0FBQ0FvQixvQkFBTUMsZUFBTixDQUFzQnJCLFlBQXRCLEVBQW9DNEIsZ0JBQXBDLENBREE7QUFFQVIsb0JBQU1rQixnQkFBTixDQUF1QmpELEtBQUssQ0FBTCxDQUF2QixFQUFnQ3VDLGdCQUFoQyxDQUZkO0FBR0Esb0JBQU1XLFNBQVMsQ0FBQ0wsV0FBRCxFQUFjTSxNQUFkLENBQXFCaEIsWUFBckIsQ0FBZjtBQUNBZSxxQkFBT25DLE9BQVAsQ0FBZSxVQUFVcUMsYUFBVixFQUF5QkMsQ0FBekIsRUFBNEI7QUFDekNQLHFDQUFzQnhDLGlCQUFpQjRCLEtBQWpCO0FBQ3BCZ0IsdUJBQU9HLElBQUksQ0FBWCxJQUFnQkgsT0FBT0csSUFBSSxDQUFYLEVBQWMzQixLQUFkLENBQW9CLENBQXBCLENBQWhCLEdBQXlDLENBRHJCLEVBQ3dCMEIsY0FBYzFCLEtBQWQsQ0FBb0IsQ0FBcEIsQ0FEeEI7QUFFbEIwQiw4QkFBY0UsSUFGbEI7QUFHRCxlQUpEO0FBS0EscUJBQU92QixNQUFNd0IsZ0JBQU4sQ0FBdUI3QixLQUF2QixFQUE4Qm9CLGlCQUE5QixDQUFQO0FBQ0QsYUE5QkQ7QUErQkQ7QUFDRHBELGtCQUFReUIsTUFBUixDQUFlVSxLQUFmO0FBQ0QsU0E3Q0Q7QUE4Q0QsT0F4R0ksRUFBUDs7QUEwR0QsR0FoSWMsRUFBakIiLCJmaWxlIjoiZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ2ZpcnN0JyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBlbnVtOiBbJ2Fic29sdXRlLWZpcnN0JywgJ2Rpc2FibGUtYWJzb2x1dGUtZmlyc3QnXSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gaXNQb3NzaWJsZURpcmVjdGl2ZSAobm9kZSkge1xuICAgICAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0V4cHJlc3Npb25TdGF0ZW1lbnQnICYmXG4gICAgICAgIG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSAnTGl0ZXJhbCcgJiZcbiAgICAgICAgdHlwZW9mIG5vZGUuZXhwcmVzc2lvbi52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ1Byb2dyYW0nOiBmdW5jdGlvbiAobikge1xuICAgICAgICBjb25zdCBib2R5ID0gbi5ib2R5XG4gICAgICAgICAgICAsIGFic29sdXRlRmlyc3QgPSBjb250ZXh0Lm9wdGlvbnNbMF0gPT09ICdhYnNvbHV0ZS1maXJzdCdcbiAgICAgICAgICAgICwgbWVzc2FnZSA9ICdJbXBvcnQgaW4gYm9keSBvZiBtb2R1bGU7IHJlb3JkZXIgdG8gdG9wLidcbiAgICAgICAgICAgICwgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gICAgICAgICAgICAsIG9yaWdpblNvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmdldFRleHQoKVxuICAgICAgICBsZXQgbm9uSW1wb3J0Q291bnQgPSAwXG4gICAgICAgICAgLCBhbnlFeHByZXNzaW9ucyA9IGZhbHNlXG4gICAgICAgICAgLCBhbnlSZWxhdGl2ZSA9IGZhbHNlXG4gICAgICAgICAgLCBsYXN0TGVnYWxJbXAgPSBudWxsXG4gICAgICAgICAgLCBlcnJvckluZm9zID0gW11cbiAgICAgICAgICAsIHNob3VsZFNvcnQgPSB0cnVlXG4gICAgICAgICAgLCBsYXN0U29ydE5vZGVzSW5kZXggPSAwXG4gICAgICAgIGJvZHkuZm9yRWFjaChmdW5jdGlvbiAobm9kZSwgaW5kZXgpe1xuICAgICAgICAgIGlmICghYW55RXhwcmVzc2lvbnMgJiYgaXNQb3NzaWJsZURpcmVjdGl2ZShub2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYW55RXhwcmVzc2lvbnMgPSB0cnVlXG5cbiAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgICBpZiAoYWJzb2x1dGVGaXJzdCkge1xuICAgICAgICAgICAgICBpZiAoL15cXC4vLnRlc3Qobm9kZS5zb3VyY2UudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgYW55UmVsYXRpdmUgPSB0cnVlXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoYW55UmVsYXRpdmUpIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgICBub2RlOiBub2RlLnNvdXJjZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBYnNvbHV0ZSBpbXBvcnRzIHNob3VsZCBjb21lIGJlZm9yZSByZWxhdGl2ZSBpbXBvcnRzLicsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5vbkltcG9ydENvdW50ID4gMCkge1xuICAgICAgICAgICAgICBmb3IgKGxldCB2YXJpYWJsZSBvZiBjb250ZXh0LmdldERlY2xhcmVkVmFyaWFibGVzKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRTb3J0KSBicmVha1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSB2YXJpYWJsZS5yZWZlcmVuY2VzXG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLmlkZW50aWZpZXIucmFuZ2VbMF0gPCBub2RlLnJhbmdlWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2hvdWxkU29ydCA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzaG91bGRTb3J0ICYmIChsYXN0U29ydE5vZGVzSW5kZXggPSBlcnJvckluZm9zLmxlbmd0aClcbiAgICAgICAgICAgICAgZXJyb3JJbmZvcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIHJhbmdlOiBbYm9keVtpbmRleCAtIDFdLnJhbmdlWzFdLCBub2RlLnJhbmdlWzFdXSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxhc3RMZWdhbEltcCA9IG5vZGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9uSW1wb3J0Q291bnQrK1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaWYgKCFlcnJvckluZm9zLmxlbmd0aCkgcmV0dXJuXG4gICAgICAgIGVycm9ySW5mb3MuZm9yRWFjaChmdW5jdGlvbiAoZXJyb3JJbmZvLCBpbmRleCkge1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSBlcnJvckluZm8ubm9kZVxuICAgICAgICAgICAgICAsIGluZm9zID0ge1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbmRleCA8IGxhc3RTb3J0Tm9kZXNJbmRleCkge1xuICAgICAgICAgICAgaW5mb3MuZml4ID0gZnVuY3Rpb24gKGZpeGVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXIobm9kZSwgJycpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gbGFzdFNvcnROb2Rlc0luZGV4KSB7XG4gICAgICAgICAgICBjb25zdCBzb3J0Tm9kZXMgPSBlcnJvckluZm9zLnNsaWNlKDAsIGxhc3RTb3J0Tm9kZXNJbmRleCArIDEpXG4gICAgICAgICAgICBpbmZvcy5maXggPSBmdW5jdGlvbiAoZml4ZXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlRml4ZXJzID0gc29ydE5vZGVzLm1hcChmdW5jdGlvbiAoX2Vycm9ySW5mbykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXIucmVtb3ZlUmFuZ2UoX2Vycm9ySW5mby5yYW5nZSlcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAsIHJhbmdlID0gWzAsIHJlbW92ZUZpeGVyc1tyZW1vdmVGaXhlcnMubGVuZ3RoIC0gMV0ucmFuZ2VbMV1dXG4gICAgICAgICAgICAgIGxldCBpbnNlcnRTb3VyY2VDb2RlID0gc29ydE5vZGVzLm1hcChmdW5jdGlvbiAoX2Vycm9ySW5mbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlU291cmNlQ29kZSA9IFN0cmluZy5wcm90b3R5cGUuc2xpY2UuYXBwbHkoXG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ2luU291cmNlQ29kZSwgX2Vycm9ySW5mby5yYW5nZVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXFxTLy50ZXN0KG5vZGVTb3VyY2VDb2RlWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnXFxuJyArIG5vZGVTb3VyY2VDb2RlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVTb3VyY2VDb2RlXG4gICAgICAgICAgICAgICAgICB9KS5qb2luKCcnKVxuICAgICAgICAgICAgICAgICwgaW5zZXJ0Rml4ZXIgPSBudWxsXG4gICAgICAgICAgICAgICAgLCByZXBsYWNlU291cmNlQ29kZSA9ICcnXG4gICAgICAgICAgICAgIGlmICghbGFzdExlZ2FsSW1wKSB7XG4gICAgICAgICAgICAgICAgICBpbnNlcnRTb3VyY2VDb2RlID1cbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0U291cmNlQ29kZS50cmltKCkgKyBpbnNlcnRTb3VyY2VDb2RlLm1hdGNoKC9eKFxccyspLylbMF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbnNlcnRGaXhlciA9IGxhc3RMZWdhbEltcCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGxhc3RMZWdhbEltcCwgaW5zZXJ0U291cmNlQ29kZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVyLmluc2VydFRleHRCZWZvcmUoYm9keVswXSwgaW5zZXJ0U291cmNlQ29kZSlcbiAgICAgICAgICAgICAgY29uc3QgZml4ZXJzID0gW2luc2VydEZpeGVyXS5jb25jYXQocmVtb3ZlRml4ZXJzKVxuICAgICAgICAgICAgICBmaXhlcnMuZm9yRWFjaChmdW5jdGlvbiAoY29tcHV0ZWRGaXhlciwgaSkge1xuICAgICAgICAgICAgICAgIHJlcGxhY2VTb3VyY2VDb2RlICs9IChvcmlnaW5Tb3VyY2VDb2RlLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgZml4ZXJzW2kgLSAxXSA/IGZpeGVyc1tpIC0gMV0ucmFuZ2VbMV0gOiAwLCBjb21wdXRlZEZpeGVyLnJhbmdlWzBdXG4gICAgICAgICAgICAgICAgKSArIGNvbXB1dGVkRml4ZXIudGV4dClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsIHJlcGxhY2VTb3VyY2VDb2RlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbmZvcylcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9maXJzdC5qcyJdLCJuYW1lcyI6WyJnZXRJbXBvcnRWYWx1ZSIsIm5vZGUiLCJ0eXBlIiwic291cmNlIiwidmFsdWUiLCJtb2R1bGVSZWZlcmVuY2UiLCJleHByZXNzaW9uIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsImVudW0iLCJjcmVhdGUiLCJjb250ZXh0IiwiaXNQb3NzaWJsZURpcmVjdGl2ZSIsIm4iLCJib2R5IiwiYWJzb2x1dGVGaXJzdCIsIm9wdGlvbnMiLCJtZXNzYWdlIiwic291cmNlQ29kZSIsImdldFNvdXJjZUNvZGUiLCJvcmlnaW5Tb3VyY2VDb2RlIiwiZ2V0VGV4dCIsIm5vbkltcG9ydENvdW50IiwiYW55RXhwcmVzc2lvbnMiLCJhbnlSZWxhdGl2ZSIsImxhc3RMZWdhbEltcCIsImVycm9ySW5mb3MiLCJzaG91bGRTb3J0IiwibGFzdFNvcnROb2Rlc0luZGV4IiwiZm9yRWFjaCIsImluZGV4IiwidGVzdCIsInJlcG9ydCIsInZhcmlhYmxlIiwiZ2V0RGVjbGFyZWRWYXJpYWJsZXMiLCJyZWZlcmVuY2VzIiwibGVuZ3RoIiwicmVmZXJlbmNlIiwiaWRlbnRpZmllciIsInJhbmdlIiwicHVzaCIsImVycm9ySW5mbyIsImluZm9zIiwiZml4IiwiZml4ZXIiLCJpbnNlcnRUZXh0QWZ0ZXIiLCJzb3J0Tm9kZXMiLCJzbGljZSIsInJlbW92ZUZpeGVycyIsIm1hcCIsIl9lcnJvckluZm8iLCJyZW1vdmVSYW5nZSIsImluc2VydFNvdXJjZUNvZGUiLCJub2RlU291cmNlQ29kZSIsIlN0cmluZyIsInByb3RvdHlwZSIsImFwcGx5Iiwiam9pbiIsImluc2VydEZpeGVyIiwicmVwbGFjZVNvdXJjZUNvZGUiLCJ0cmltIiwibWF0Y2giLCJpbnNlcnRUZXh0QmVmb3JlIiwiZml4ZXJzIiwiY29uY2F0IiwiY29tcHV0ZWRGaXhlciIsImkiLCJ0ZXh0IiwicmVw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bEIwQiw4QkFBY0UsSUFGbEI7QUFHRCxlQUpEO0FBS0EscUJBQU92QixNQUFNd0IsZ0JBQU4sQ0FBdUI3QixLQUF2QixFQUE4Qm9CLGlCQUE5QixDQUFQO0FBQ0QsYUE5QkQ7QUErQkQ7QUFDRGhELGtCQUFRcUIsTUFBUixDQUFlVSxLQUFmO0FBQ0QsU0E3Q0Q7QUE4Q0QsT0F4R0ksRUFBUDs7QUEwR0QsR0FoSWMsRUFBakIiLCJmaWxlIjoiZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuZnVuY3Rpb24gZ2V0SW1wb3J0VmFsdWUobm9kZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nXG4gICAgPyBub2RlLnNvdXJjZS52YWx1ZVxuICAgIDogbm9kZS5tb2R1bGVSZWZlcmVuY2UuZXhwcmVzc2lvbi52YWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdmaXJzdCcpLFxuICAgIH0sXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZW51bTogWydhYnNvbHV0ZS1maXJzdCcsICdkaXNhYmxlLWFic29sdXRlLWZpcnN0J10sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGZ1bmN0aW9uIGlzUG9zc2libGVEaXJlY3RpdmUgKG5vZGUpIHtcbiAgICAgIHJldHVybiBub2RlLnR5cGUgPT09ICdFeHByZXNzaW9uU3RhdGVtZW50JyAmJlxuICAgICAgICBub2RlLmV4cHJlc3Npb24udHlwZSA9PT0gJ0xpdGVyYWwnICYmXG4gICAgICAgIHR5cGVvZiBub2RlLmV4cHJlc3Npb24udmFsdWUgPT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnUHJvZ3JhbSc6IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBuLmJvZHk7XG4gICAgICAgIGNvbnN0IGFic29sdXRlRmlyc3QgPSBjb250ZXh0Lm9wdGlvbnNbMF0gPT09ICdhYnNvbHV0ZS1maXJzdCc7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnSW1wb3J0IGluIGJvZHkgb2YgbW9kdWxlOyByZW9yZGVyIHRvIHRvcC4nO1xuICAgICAgICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCk7XG4gICAgICAgIGNvbnN0IG9yaWdpblNvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmdldFRleHQoKTtcbiAgICAgICAgbGV0IG5vbkltcG9ydENvdW50ID0gMDtcbiAgICAgICAgbGV0IGFueUV4cHJlc3Npb25zID0gZmFsc2U7XG4gICAgICAgIGxldCBhbnlSZWxhdGl2ZSA9IGZhbHNlO1xuICAgICAgICBsZXQgbGFzdExlZ2FsSW1wID0gbnVsbDtcbiAgICAgICAgY29uc3QgZXJyb3JJbmZvcyA9IFtdO1xuICAgICAgICBsZXQgc2hvdWxkU29ydCA9IHRydWU7XG4gICAgICAgIGxldCBsYXN0U29ydE5vZGVzSW5kZXggPSAwO1xuICAgICAgICBib2R5LmZvckVhY2goZnVuY3Rpb24gKG5vZGUsIGluZGV4KXtcbiAgICAgICAgICBpZiAoIWFueUV4cHJlc3Npb25zICYmIGlzUG9zc2libGVEaXJlY3RpdmUobm9kZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhbnlFeHByZXNzaW9ucyA9IHRydWU7XG5cbiAgICAgICAgICBpZiAobm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nIHx8IG5vZGUudHlwZSA9PT0gJ1RTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24nKSB7XG4gICAgICAgICAgICBpZiAoYWJzb2x1dGVGaXJzdCkge1xuICAgICAgICAgICAgICBpZiAoL15cXC4vLnRlc3QoZ2V0SW1wb3J0VmFsdWUobm9kZSkpKSB7XG4gICAgICAgICAgICAgICAgYW55UmVsYXRpdmUgPSB0cnVlO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFueVJlbGF0aXZlKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgbm9kZTogbm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nID8gbm9kZS5zb3VyY2UgOiBub2RlLm1vZHVsZVJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdBYnNvbHV0ZSBpbXBvcnRzIHNob3VsZCBjb21lIGJlZm9yZSByZWxhdGl2ZSBpbXBvcnRzLicsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChub25JbXBvcnRDb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCB2YXJpYWJsZSBvZiBjb250ZXh0LmdldERlY2xhcmVkVmFyaWFibGVzKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzaG91bGRTb3J0KSBicmVhaztcbiAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gdmFyaWFibGUucmVmZXJlbmNlcztcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5pZGVudGlmaWVyLnJhbmdlWzBdIDwgbm9kZS5yYW5nZVsxXSkge1xuICAgICAgICAgICAgICAgICAgICAgIHNob3VsZFNvcnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzaG91bGRTb3J0ICYmIChsYXN0U29ydE5vZGVzSW5kZXggPSBlcnJvckluZm9zLmxlbmd0aCk7XG4gICAgICAgICAgICAgIGVycm9ySW5mb3MucHVzaCh7XG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICByYW5nZTogW2JvZHlbaW5kZXggLSAxXS5yYW5nZVsxXSwgbm9kZS5yYW5nZVsxXV0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdExlZ2FsSW1wID0gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9uSW1wb3J0Q291bnQrKztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIWVycm9ySW5mb3MubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIGVycm9ySW5mb3MuZm9yRWFjaChmdW5jdGlvbiAoZXJyb3JJbmZvLCBpbmRleCkge1xuICAgICAgICAgIGNvbnN0IG5vZGUgPSBlcnJvckluZm8ubm9kZTtcbiAgICAgICAgICBjb25zdCBpbmZvcyA9IHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGluZGV4IDwgbGFzdFNvcnROb2Rlc0luZGV4KSB7XG4gICAgICAgICAgICBpbmZvcy5maXggPSBmdW5jdGlvbiAoZml4ZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLmluc2VydFRleHRBZnRlcihub2RlLCAnJyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IGxhc3RTb3J0Tm9kZXNJbmRleCkge1xuICAgICAgICAgICAgY29uc3Qgc29ydE5vZGVzID0gZXJyb3JJbmZvcy5zbGljZSgwLCBsYXN0U29ydE5vZGVzSW5kZXggKyAxKTtcbiAgICAgICAgICAgIGluZm9zLmZpeCA9IGZ1bmN0aW9uIChmaXhlcikge1xuICAgICAgICAgICAgICBjb25zdCByZW1vdmVGaXhlcnMgPSBzb3J0Tm9kZXMubWFwKGZ1bmN0aW9uIChfZXJyb3JJbmZvKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlbW92ZVJhbmdlKF9lcnJvckluZm8ucmFuZ2UpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBbMCwgcmVtb3ZlRml4ZXJzW3JlbW92ZUZpeGVycy5sZW5ndGggLSAxXS5yYW5nZVsxXV07XG4gICAgICAgICAgICAgIGxldCBpbnNlcnRTb3VyY2VDb2RlID0gc29ydE5vZGVzLm1hcChmdW5jdGlvbiAoX2Vycm9ySW5mbykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVTb3VyY2VDb2RlID0gU3RyaW5nLnByb3RvdHlwZS5zbGljZS5hcHBseShcbiAgICAgICAgICAgICAgICAgIG9yaWdpblNvdXJjZUNvZGUsIF9lcnJvckluZm8ucmFuZ2VcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICgvXFxTLy50ZXN0KG5vZGVTb3VyY2VDb2RlWzBdKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICdcXG4nICsgbm9kZVNvdXJjZUNvZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBub2RlU291cmNlQ29kZTtcbiAgICAgICAgICAgICAgfSkuam9pbignJyk7XG4gICAgICAgICAgICAgIGxldCBpbnNlcnRGaXhlciA9IG51bGw7XG4gICAgICAgICAgICAgIGxldCByZXBsYWNlU291cmNlQ29kZSA9ICcnO1xuICAgICAgICAgICAgICBpZiAoIWxhc3RMZWdhbEltcCkge1xuICAgICAgICAgICAgICAgIGluc2VydFNvdXJjZUNvZGUgPVxuICAgICAgICAgICAgICAgICAgICBpbnNlcnRTb3VyY2VDb2RlLnRyaW0oKSArIGluc2VydFNvdXJjZUNvZGUubWF0Y2goL14oXFxzKykvKVswXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbnNlcnRGaXhlciA9IGxhc3RMZWdhbEltcCA/XG4gICAgICAgICAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGxhc3RMZWdhbEltcCwgaW5zZXJ0U291cmNlQ29kZSkgOlxuICAgICAgICAgICAgICAgIGZpeGVyLmluc2VydFRleHRCZWZvcmUoYm9keVswXSwgaW5zZXJ0U291cmNlQ29kZSk7XG4gICAgICAgICAgICAgIGNvbnN0IGZpeGVycyA9IFtpbnNlcnRGaXhlcl0uY29uY2F0KHJlbW92ZUZpeGVycyk7XG4gICAgICAgICAgICAgIGZpeGVycy5mb3JFYWNoKGZ1bmN0aW9uIChjb21wdXRlZEZpeGVyLCBpKSB7XG4gICAgICAgICAgICAgICAgcmVwbGFjZVNvdXJjZUNvZGUgKz0gKG9yaWdpblNvdXJjZUNvZGUuc2xpY2UoXG4gICAgICAgICAgICAgICAgICBmaXhlcnNbaSAtIDFdID8gZml4ZXJzW2kgLSAxXS5yYW5nZVsxXSA6IDAsIGNvbXB1dGVkRml4ZXIucmFuZ2VbMF1cbiAgICAgICAgICAgICAgICApICsgY29tcHV0ZWRGaXhlci50ZXh0KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKHJhbmdlLCByZXBsYWNlU291cmNlQ29kZSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbmZvcyk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/group-exports.js b/node_modules/eslint-plugin-import/lib/rules/group-exports.js index 42f6b4954c..56ad668837 100644 --- a/node_modules/eslint-plugin-import/lib/rules/group-exports.js +++ b/node_modules/eslint-plugin-import/lib/rules/group-exports.js @@ -5,28 +5,28 @@ var _arrayPrototype = require('array.prototype.flat');var _arrayPrototype2 = _in const meta = { type: 'suggestion', docs: { - url: (0, _docsUrl2.default)('group-exports') } + url: (0, _docsUrl2.default)('group-exports') } }; - /* eslint-disable max-len */ }; +/* eslint-disable max-len */ const errors = { ExportNamedDeclaration: 'Multiple named export declarations; consolidate all named exports into a single export declaration', - AssignmentExpression: 'Multiple CommonJS exports; consolidate all exports into a single assignment to `module.exports`' - - /* eslint-enable max-len */ - - /** - * Returns an array with names of the properties in the accessor chain for MemberExpression nodes - * - * Example: - * - * `module.exports = {}` => ['module', 'exports'] - * `module.exports.property = true` => ['module', 'exports', 'property'] - * - * @param {Node} node AST Node (MemberExpression) - * @return {Array} Array with the property names in the chain - * @private - */ }; + AssignmentExpression: 'Multiple CommonJS exports; consolidate all exports into a single assignment to `module.exports`' }; + +/* eslint-enable max-len */ + +/** + * Returns an array with names of the properties in the accessor chain for MemberExpression nodes + * + * Example: + * + * `module.exports = {}` => ['module', 'exports'] + * `module.exports.property = true` => ['module', 'exports', 'property'] + * + * @param {Node} node AST Node (MemberExpression) + * @return {Array} Array with the property names in the chain + * @private + */ function accessorChain(node) { const chain = []; @@ -61,7 +61,7 @@ function create(context) { return { ExportNamedDeclaration(node) { - let target = node.exportKind === 'type' ? nodes.types : nodes.modules; + const target = node.exportKind === 'type' ? nodes.types : nodes.modules; if (!node.source) { target.set.add(node); } else if (Array.isArray(target.sources[node.source.value])) { @@ -150,4 +150,4 @@ function create(context) { module.exports = { meta, create }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9ncm91cC1leHBvcnRzLmpzIl0sIm5hbWVzIjpbIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImVycm9ycyIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iLCJBc3NpZ25tZW50RXhwcmVzc2lvbiIsImFjY2Vzc29yQ2hhaW4iLCJub2RlIiwiY2hhaW4iLCJ1bnNoaWZ0IiwicHJvcGVydHkiLCJuYW1lIiwib2JqZWN0IiwiY3JlYXRlIiwiY29udGV4dCIsIm5vZGVzIiwibW9kdWxlcyIsInNldCIsIlNldCIsInNvdXJjZXMiLCJ0eXBlcyIsImNvbW1vbmpzIiwidGFyZ2V0IiwiZXhwb3J0S2luZCIsInNvdXJjZSIsImFkZCIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlIiwicHVzaCIsImxlZnQiLCJsZW5ndGgiLCJvbkV4aXQiLCJzaXplIiwiZm9yRWFjaCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaWx0ZXIiLCJub2Rlc1dpdGhTb3VyY2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxxQztBQUNBLHVDO0FBQ0Esc0Q7O0FBRUEsTUFBTUEsT0FBTztBQUNYQyxRQUFNLFlBREs7QUFFWEMsUUFBTTtBQUNKQyxTQUFLLHVCQUFRLGVBQVIsQ0FERDs7O0FBSVIsOEJBTmEsRUFBYjtBQU9BLE1BQU1DLFNBQVM7QUFDYkMsMEJBQXdCLG9HQURYO0FBRWJDLHdCQUFzQjs7QUFFeEI7O0FBRUE7Ozs7Ozs7Ozs7O2lDQU5lLEVBQWY7QUFrQkEsU0FBU0MsYUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFDM0IsUUFBTUMsUUFBUSxFQUFkOztBQUVBLEtBQUc7QUFDREEsVUFBTUMsT0FBTixDQUFjRixLQUFLRyxRQUFMLENBQWNDLElBQTVCOztBQUVBLFFBQUlKLEtBQUtLLE1BQUwsQ0FBWVosSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUNyQ1EsWUFBTUMsT0FBTixDQUFjRixLQUFLSyxNQUFMLENBQVlELElBQTFCO0FB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QixJQUFoQixHQUF1QixDQUEzQixFQUE4QjtBQUM1QmxCLGNBQU1LLEtBQU4sQ0FBWUgsR0FBWixDQUFnQmlCLE9BQWhCLENBQXdCM0IsUUFBUTtBQUM5Qk8sa0JBQVFxQixNQUFSLENBQWU7QUFDYjVCLGdCQURhO0FBRWI2QixxQkFBU2pDLE9BQU9JLEtBQUtQLElBQVosQ0FGSSxFQUFmOztBQUlELFNBTEQ7QUFNRDs7QUFFRDtBQUNBLG9DQUFLLHNCQUFPZSxNQUFNSyxLQUFOLENBQVlELE9BQW5CO0FBQ0ZrQixZQURFLENBQ0tDLG1CQUFtQlosTUFBTUMsT0FBTixDQUFjVyxlQUFkLEtBQWtDQSxnQkFBZ0JQLE1BQWhCLEdBQXlCLENBRG5GLENBQUw7QUFFR0csYUFGSCxDQUVZM0IsSUFBRCxJQUFVO0FBQ2pCTyxnQkFBUXFCLE1BQVIsQ0FBZTtBQUNiNUIsY0FEYTtBQUViNkIsbUJBQVNqQyxPQUFPSSxLQUFLUCxJQUFaLENBRkksRUFBZjs7QUFJRCxPQVBIOztBQVNBO0FBQ0EsVUFBSWUsTUFBTU0sUUFBTixDQUFlSixHQUFmLENBQW1CZ0IsSUFBbkIsR0FBMEIsQ0FBOUIsRUFBaUM7QUFDL0JsQixjQUFNTSxRQUFOLENBQWVKLEdBQWYsQ0FBbUJpQixPQUFuQixDQUEyQjNCLFFBQVE7QUFDakNPLGtCQUFRcUIsTUFBUixDQUFlO0FBQ2I1QixnQkFEYTtBQUViNkIscUJBQVNqQyxPQUFPSSxLQUFLUCxJQUFaLENBRkksRUFBZjs7QUFJRCxTQUxEO0FBTUQ7QUFDRixLQXBGSSxFQUFQOztBQXNGRDs7QUFFRHVDLE9BQU9DLE9BQVAsR0FBaUI7QUFDZnpDLE1BRGU7QUFFZmMsUUFGZSxFQUFqQiIsImZpbGUiOiJncm91cC1leHBvcnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcbmltcG9ydCB2YWx1ZXMgZnJvbSAnb2JqZWN0LnZhbHVlcydcbmltcG9ydCBmbGF0IGZyb20gJ2FycmF5LnByb3RvdHlwZS5mbGF0J1xuXG5jb25zdCBtZXRhID0ge1xuICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gIGRvY3M6IHtcbiAgICB1cmw6IGRvY3NVcmwoJ2dyb3VwLWV4cG9ydHMnKSxcbiAgfSxcbn1cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmNvbnN0IGVycm9ycyA9IHtcbiAgRXhwb3J0TmFtZWREZWNsYXJhdGlvbjogJ011bHRpcGxlIG5hbWVkIGV4cG9ydCBkZWNsYXJhdGlvbnM7IGNvbnNvbGlkYXRlIGFsbCBuYW1lZCBleHBvcnRzIGludG8gYSBzaW5nbGUgZXhwb3J0IGRlY2xhcmF0aW9uJyxcbiAgQXNzaWdubWVudEV4cHJlc3Npb246ICdNdWx0aXBsZSBDb21tb25KUyBleHBvcnRzOyBjb25zb2xpZGF0ZSBhbGwgZXhwb3J0cyBpbnRvIGEgc2luZ2xlIGFzc2lnbm1lbnQgdG8gYG1vZHVsZS5leHBvcnRzYCcsXG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IHdpdGggbmFtZXMgb2YgdGhlIHByb3BlcnRpZXMgaW4gdGhlIGFjY2Vzc29yIGNoYWluIGZvciBNZW1iZXJFeHByZXNzaW9uIG5vZGVzXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgbW9kdWxlLmV4cG9ydHMgPSB7fWAgPT4gWydtb2R1bGUnLCAnZXhwb3J0cyddXG4gKiBgbW9kdWxlLmV4cG9ydHMucHJvcGVydHkgPSB0cnVlYCA9PiBbJ21vZHVsZScsICdleHBvcnRzJywgJ3Byb3BlcnR5J11cbiAqXG4gKiBAcGFyYW0gICAgIHtOb2RlfSAgICBub2RlICAgIEFTVCBOb2RlIChNZW1iZXJFeHByZXNzaW9uKVxuICogQHJldHVybiAgICB7QXJyYXl9ICAgICAgICAgICBBcnJheSB3aXRoIHRoZSBwcm9wZXJ0eSBuYW1lcyBpbiB0aGUgY2hhaW5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGFjY2Vzc29yQ2hhaW4obm9kZSkge1xuICBjb25zdCBjaGFpbiA9IFtdXG5cbiAgZG8ge1xuICAgIGNoYWluLnVuc2hpZnQobm9kZS5wcm9wZXJ0eS5uYW1lKVxuXG4gICAgaWYgKG5vZGUub2JqZWN0LnR5cGUgPT09ICdJZGVudGlmaWVyJykge1xuICAgICAgY2hhaW4udW5zaGlmdChub2RlLm9iamVjdC5uYW1lKVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5vYmplY3RcbiAgfSB3aGlsZSAobm9kZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpXG5cbiAgcmV0dXJuIGNoYWluXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZShjb250ZXh0KSB7XG4gIGNvbnN0IG5vZGVzID0ge1xuICAgIG1vZHVsZXM6IHtcbiAgICAgIHNldDogbmV3IFNldCgpLFxuICAgICAgc291cmNlczoge30sXG4gICAgfSxcbiAgICB0eXBlczoge1xuICAgICAgc2V0OiBuZXcgU2V0KCksXG4gICAgICBzb3VyY2VzOiB7fSxcbiAgICB9LFxuICAgIGNvbW1vbmpzOiB7XG4gICAgICBzZXQ6IG5ldyBTZXQoKSxcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGxldCB0YXJnZXQgPSBub2RlLmV4cG9ydEtpbmQgPT09ICd0eXBlJyA/IG5vZGVzLnR5cGVzIDogbm9kZXMubW9kdWxlc1xuICAgICAgaWYgKCFub2RlLnNvdXJjZSkge1xuICAgICAgICB0YXJnZXQuc2V0LmFkZChub2RlKVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRhcmdldC5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXSkpIHtcbiAgICAgICAgdGFyZ2V0LnNvdXJjZXNbbm9kZS5zb3VyY2UudmFsdWVdLnB1c2gobm9kZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldC5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXSA9IFtub2RlXVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBBc3NpZ25tZW50RXhwcmVzc2lvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5sZWZ0LnR5cGUgIT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hhaW4gPSBhY2Nlc3NvckNoYWluKG5vZGUubGVmdClcblxuICAgICAgLy8gQXNzaWdubWVudHMgdG8gbW9kdWxlLmV4cG9ydHNcbiAgICAgIC8vIERlZXBlciBhc3NpZ25tZW50cyBhcmUgaWdub3JlZCBzaW5jZSB0aGV5IGp1c3QgbW9kaWZ5IHdoYXQncyBhbHJlYWR5IGJlaW5nIGV4cG9ydGVkXG4gICAgICAvLyAoaWUuIG1vZHVsZS5leHBvcnRzLmV4cG9ydGVkLnByb3AgPSB0cnVlIGlzIGlnbm9yZWQpXG4gICAgICBpZiAoY2hhaW5bMF0gPT09ICdtb2R1bGUnICYmIGNoYWluWzFdID09PSAnZXhwb3J0cycgJiYgY2hhaW4ubGVuZ3RoIDw9IDMpIHtcbiAgICAgICAgbm9kZXMuY29tbW9uanMuc2V0LmFkZChub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gQXNzaWdubWVudHMgdG8gZXhwb3J0cyAoZXhwb3J0cy4qID0gKilcbiAgICAgIGlmIChjaGFpblswXSA9PT0gJ2V4cG9ydHMnICYmIGNoYWluLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBub2Rlcy5jb21tb25qcy5zZXQuYWRkKG5vZGUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH0sXG5cbiAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gb25FeGl0KCkge1xuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBleHBvcnRgIGRlY2xhcmF0aW9ucyAoRVMyMDE1IG1vZHVsZXMpXG4gICAgICBpZiAobm9kZXMubW9kdWxlcy5zZXQuc2l6ZSA+IDEpIHtcbiAgICAgICAgbm9kZXMubW9kdWxlcy5zZXQuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBhZ2dyZWdhdGVkIGV4cG9ydHNgIGZyb20gdGhlIHNhbWUgbW9kdWxlIChFUzIwMTUgbW9kdWxlcylcbiAgICAgIGZsYXQodmFsdWVzKG5vZGVzLm1vZHVsZXMuc291cmNlcylcbiAgICAgICAgLmZpbHRlcihub2Rlc1dpdGhTb3VyY2UgPT4gQXJyYXkuaXNBcnJheShub2Rlc1dpdGhTb3VyY2UpICYmIG5vZGVzV2l0aFNvdXJjZS5sZW5ndGggPiAxKSlcbiAgICAgICAgLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBleHBvcnQgdHlwZWAgZGVjbGFyYXRpb25zIChGTE9XIEVTMjAxNSBtb2R1bGVzKVxuICAgICAgaWYgKG5vZGVzLnR5cGVzLnNldC5zaXplID4gMSkge1xuICAgICAgICBub2Rlcy50eXBlcy5zZXQuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBhZ2dyZWdhdGVkIHR5cGUgZXhwb3J0c2AgZnJvbSB0aGUgc2FtZSBtb2R1bGUgKEZMT1cgRVMyMDE1IG1vZHVsZXMpXG4gICAgICBmbGF0KHZhbHVlcyhub2Rlcy50eXBlcy5zb3VyY2VzKVxuICAgICAgICAuZmlsdGVyKG5vZGVzV2l0aFNvdXJjZSA9PiBBcnJheS5pc0FycmF5KG5vZGVzV2l0aFNvdXJjZSkgJiYgbm9kZXNXaXRoU291cmNlLmxlbmd0aCA+IDEpKVxuICAgICAgICAuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvcnNbbm9kZS50eXBlXSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuXG4gICAgICAvLyBSZXBvcnQgbXVsdGlwbGUgYG1vZHVsZS5leHBvcnRzYCBhc3NpZ25tZW50cyAoQ29tbW9uSlMpXG4gICAgICBpZiAobm9kZXMuY29tbW9uanMuc2V0LnNpemUgPiAxKSB7XG4gICAgICAgIG5vZGVzLmNvbW1vbmpzLnNldC5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvcnNbbm9kZS50eXBlXSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGEsXG4gIGNyZWF0ZSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9ncm91cC1leHBvcnRzLmpzIl0sIm5hbWVzIjpbIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImVycm9ycyIsIkV4cG9ydE5hbWVkRGVjbGFyYXRpb24iLCJBc3NpZ25tZW50RXhwcmVzc2lvbiIsImFjY2Vzc29yQ2hhaW4iLCJub2RlIiwiY2hhaW4iLCJ1bnNoaWZ0IiwicHJvcGVydHkiLCJuYW1lIiwib2JqZWN0IiwiY3JlYXRlIiwiY29udGV4dCIsIm5vZGVzIiwibW9kdWxlcyIsInNldCIsIlNldCIsInNvdXJjZXMiLCJ0eXBlcyIsImNvbW1vbmpzIiwidGFyZ2V0IiwiZXhwb3J0S2luZCIsInNvdXJjZSIsImFkZCIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlIiwicHVzaCIsImxlZnQiLCJsZW5ndGgiLCJvbkV4aXQiLCJzaXplIiwiZm9yRWFjaCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaWx0ZXIiLCJub2Rlc1dpdGhTb3VyY2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxxQztBQUNBLHVDO0FBQ0Esc0Q7O0FBRUEsTUFBTUEsT0FBTztBQUNYQyxRQUFNLFlBREs7QUFFWEMsUUFBTTtBQUNKQyxTQUFLLHVCQUFRLGVBQVIsQ0FERCxFQUZLLEVBQWI7OztBQU1BO0FBQ0EsTUFBTUMsU0FBUztBQUNiQywwQkFBd0Isb0dBRFg7QUFFYkMsd0JBQXNCLGlHQUZULEVBQWY7O0FBSUE7O0FBRUE7Ozs7Ozs7Ozs7OztBQVlBLFNBQVNDLGFBQVQsQ0FBdUJDLElBQXZCLEVBQTZCO0FBQzNCLFFBQU1DLFFBQVEsRUFBZDs7QUFFQSxLQUFHO0FBQ0RBLFVBQU1DLE9BQU4sQ0FBY0YsS0FBS0csUUFBTCxDQUFjQyxJQUE1Qjs7QUFFQSxRQUFJSixLQUFLSyxNQUFMLENBQVlaLElBQVosS0FBcUIsWUFBekIsRUFBdUM7QUFDckNRLFlBQU1DLE9BQU4sQ0FBY0YsS0FBS0ssTUFBTCxDQUFZRCxJQUExQjtBQUNB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SUFBaEIsR0FBdUIsQ0FBM0IsRUFBOEI7QUFDNUJsQixjQUFNSyxLQUFOLENBQVlILEdBQVosQ0FBZ0JpQixPQUFoQixDQUF3QjNCLFFBQVE7QUFDOUJPLGtCQUFRcUIsTUFBUixDQUFlO0FBQ2I1QixnQkFEYTtBQUViNkIscUJBQVNqQyxPQUFPSSxLQUFLUCxJQUFaLENBRkksRUFBZjs7QUFJRCxTQUxEO0FBTUQ7O0FBRUQ7QUFDQSxvQ0FBSyxzQkFBT2UsTUFBTUssS0FBTixDQUFZRCxPQUFuQjtBQUNGa0IsWUFERSxDQUNLQyxtQkFBbUJaLE1BQU1DLE9BQU4sQ0FBY1csZUFBZCxLQUFrQ0EsZ0JBQWdCUCxNQUFoQixHQUF5QixDQURuRixDQUFMO0FBRUdHLGFBRkgsQ0FFWTNCLElBQUQsSUFBVTtBQUNqQk8sZ0JBQVFxQixNQUFSLENBQWU7QUFDYjVCLGNBRGE7QUFFYjZCLG1CQUFTakMsT0FBT0ksS0FBS1AsSUFBWixDQUZJLEVBQWY7O0FBSUQsT0FQSDs7QUFTQTtBQUNBLFVBQUllLE1BQU1NLFFBQU4sQ0FBZUosR0FBZixDQUFtQmdCLElBQW5CLEdBQTBCLENBQTlCLEVBQWlDO0FBQy9CbEIsY0FBTU0sUUFBTixDQUFlSixHQUFmLENBQW1CaUIsT0FBbkIsQ0FBMkIzQixRQUFRO0FBQ2pDTyxrQkFBUXFCLE1BQVIsQ0FBZTtBQUNiNUIsZ0JBRGE7QUFFYjZCLHFCQUFTakMsT0FBT0ksS0FBS1AsSUFBWixDQUZJLEVBQWY7O0FBSUQsU0FMRDtBQU1EO0FBQ0YsS0FwRkksRUFBUDs7QUFzRkQ7O0FBRUR1QyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2Z6QyxNQURlO0FBRWZjLFFBRmUsRUFBakIiLCJmaWxlIjoiZ3JvdXAtZXhwb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuaW1wb3J0IHZhbHVlcyBmcm9tICdvYmplY3QudmFsdWVzJztcbmltcG9ydCBmbGF0IGZyb20gJ2FycmF5LnByb3RvdHlwZS5mbGF0JztcblxuY29uc3QgbWV0YSA9IHtcbiAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICBkb2NzOiB7XG4gICAgdXJsOiBkb2NzVXJsKCdncm91cC1leHBvcnRzJyksXG4gIH0sXG59O1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuY29uc3QgZXJyb3JzID0ge1xuICBFeHBvcnROYW1lZERlY2xhcmF0aW9uOiAnTXVsdGlwbGUgbmFtZWQgZXhwb3J0IGRlY2xhcmF0aW9uczsgY29uc29saWRhdGUgYWxsIG5hbWVkIGV4cG9ydHMgaW50byBhIHNpbmdsZSBleHBvcnQgZGVjbGFyYXRpb24nLFxuICBBc3NpZ25tZW50RXhwcmVzc2lvbjogJ011bHRpcGxlIENvbW1vbkpTIGV4cG9ydHM7IGNvbnNvbGlkYXRlIGFsbCBleHBvcnRzIGludG8gYSBzaW5nbGUgYXNzaWdubWVudCB0byBgbW9kdWxlLmV4cG9ydHNgJyxcbn07XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4gKi9cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFycmF5IHdpdGggbmFtZXMgb2YgdGhlIHByb3BlcnRpZXMgaW4gdGhlIGFjY2Vzc29yIGNoYWluIGZvciBNZW1iZXJFeHByZXNzaW9uIG5vZGVzXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBgbW9kdWxlLmV4cG9ydHMgPSB7fWAgPT4gWydtb2R1bGUnLCAnZXhwb3J0cyddXG4gKiBgbW9kdWxlLmV4cG9ydHMucHJvcGVydHkgPSB0cnVlYCA9PiBbJ21vZHVsZScsICdleHBvcnRzJywgJ3Byb3BlcnR5J11cbiAqXG4gKiBAcGFyYW0gICAgIHtOb2RlfSAgICBub2RlICAgIEFTVCBOb2RlIChNZW1iZXJFeHByZXNzaW9uKVxuICogQHJldHVybiAgICB7QXJyYXl9ICAgICAgICAgICBBcnJheSB3aXRoIHRoZSBwcm9wZXJ0eSBuYW1lcyBpbiB0aGUgY2hhaW5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGFjY2Vzc29yQ2hhaW4obm9kZSkge1xuICBjb25zdCBjaGFpbiA9IFtdO1xuXG4gIGRvIHtcbiAgICBjaGFpbi51bnNoaWZ0KG5vZGUucHJvcGVydHkubmFtZSk7XG5cbiAgICBpZiAobm9kZS5vYmplY3QudHlwZSA9PT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICBjaGFpbi51bnNoaWZ0KG5vZGUub2JqZWN0Lm5hbWUpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUub2JqZWN0O1xuICB9IHdoaWxlIChub2RlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJyk7XG5cbiAgcmV0dXJuIGNoYWluO1xufVxuXG5mdW5jdGlvbiBjcmVhdGUoY29udGV4dCkge1xuICBjb25zdCBub2RlcyA9IHtcbiAgICBtb2R1bGVzOiB7XG4gICAgICBzZXQ6IG5ldyBTZXQoKSxcbiAgICAgIHNvdXJjZXM6IHt9LFxuICAgIH0sXG4gICAgdHlwZXM6IHtcbiAgICAgIHNldDogbmV3IFNldCgpLFxuICAgICAgc291cmNlczoge30sXG4gICAgfSxcbiAgICBjb21tb25qczoge1xuICAgICAgc2V0OiBuZXcgU2V0KCksXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbm9kZS5leHBvcnRLaW5kID09PSAndHlwZScgPyBub2Rlcy50eXBlcyA6IG5vZGVzLm1vZHVsZXM7XG4gICAgICBpZiAoIW5vZGUuc291cmNlKSB7XG4gICAgICAgIHRhcmdldC5zZXQuYWRkKG5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRhcmdldC5zb3VyY2VzW25vZGUuc291cmNlLnZhbHVlXSkpIHtcbiAgICAgICAgdGFyZ2V0LnNvdXJjZXNbbm9kZS5zb3VyY2UudmFsdWVdLnB1c2gobm9kZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXQuc291cmNlc1tub2RlLnNvdXJjZS52YWx1ZV0gPSBbbm9kZV07XG4gICAgICB9XG4gICAgfSxcblxuICAgIEFzc2lnbm1lbnRFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmxlZnQudHlwZSAhPT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2hhaW4gPSBhY2Nlc3NvckNoYWluKG5vZGUubGVmdCk7XG5cbiAgICAgIC8vIEFzc2lnbm1lbnRzIHRvIG1vZHVsZS5leHBvcnRzXG4gICAgICAvLyBEZWVwZXIgYXNzaWdubWVudHMgYXJlIGlnbm9yZWQgc2luY2UgdGhleSBqdXN0IG1vZGlmeSB3aGF0J3MgYWxyZWFkeSBiZWluZyBleHBvcnRlZFxuICAgICAgLy8gKGllLiBtb2R1bGUuZXhwb3J0cy5leHBvcnRlZC5wcm9wID0gdHJ1ZSBpcyBpZ25vcmVkKVxuICAgICAgaWYgKGNoYWluWzBdID09PSAnbW9kdWxlJyAmJiBjaGFpblsxXSA9PT0gJ2V4cG9ydHMnICYmIGNoYWluLmxlbmd0aCA8PSAzKSB7XG4gICAgICAgIG5vZGVzLmNvbW1vbmpzLnNldC5hZGQobm9kZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gQXNzaWdubWVudHMgdG8gZXhwb3J0cyAoZXhwb3J0cy4qID0gKilcbiAgICAgIGlmIChjaGFpblswXSA9PT0gJ2V4cG9ydHMnICYmIGNoYWluLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBub2Rlcy5jb21tb25qcy5zZXQuYWRkKG5vZGUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSxcblxuICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiBvbkV4aXQoKSB7XG4gICAgICAvLyBSZXBvcnQgbXVsdGlwbGUgYGV4cG9ydGAgZGVjbGFyYXRpb25zIChFUzIwMTUgbW9kdWxlcylcbiAgICAgIGlmIChub2Rlcy5tb2R1bGVzLnNldC5zaXplID4gMSkge1xuICAgICAgICBub2Rlcy5tb2R1bGVzLnNldC5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvcnNbbm9kZS50eXBlXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlcG9ydCBtdWx0aXBsZSBgYWdncmVnYXRlZCBleHBvcnRzYCBmcm9tIHRoZSBzYW1lIG1vZHVsZSAoRVMyMDE1IG1vZHVsZXMpXG4gICAgICBmbGF0KHZhbHVlcyhub2Rlcy5tb2R1bGVzLnNvdXJjZXMpXG4gICAgICAgIC5maWx0ZXIobm9kZXNXaXRoU291cmNlID0+IEFycmF5LmlzQXJyYXkobm9kZXNXaXRoU291cmNlKSAmJiBub2Rlc1dpdGhTb3VyY2UubGVuZ3RoID4gMSkpXG4gICAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yc1tub2RlLnR5cGVdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBleHBvcnQgdHlwZWAgZGVjbGFyYXRpb25zIChGTE9XIEVTMjAxNSBtb2R1bGVzKVxuICAgICAgaWYgKG5vZGVzLnR5cGVzLnNldC5zaXplID4gMSkge1xuICAgICAgICBub2Rlcy50eXBlcy5zZXQuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcnQgbXVsdGlwbGUgYGFnZ3JlZ2F0ZWQgdHlwZSBleHBvcnRzYCBmcm9tIHRoZSBzYW1lIG1vZHVsZSAoRkxPVyBFUzIwMTUgbW9kdWxlcylcbiAgICAgIGZsYXQodmFsdWVzKG5vZGVzLnR5cGVzLnNvdXJjZXMpXG4gICAgICAgIC5maWx0ZXIobm9kZXNXaXRoU291cmNlID0+IEFycmF5LmlzQXJyYXkobm9kZXNXaXRoU291cmNlKSAmJiBub2Rlc1dpdGhTb3VyY2UubGVuZ3RoID4gMSkpXG4gICAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yc1tub2RlLnR5cGVdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgLy8gUmVwb3J0IG11bHRpcGxlIGBtb2R1bGUuZXhwb3J0c2AgYXNzaWdubWVudHMgKENvbW1vbkpTKVxuICAgICAgaWYgKG5vZGVzLmNvbW1vbmpzLnNldC5zaXplID4gMSkge1xuICAgICAgICBub2Rlcy5jb21tb25qcy5zZXQuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JzW25vZGUudHlwZV0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhLFxuICBjcmVhdGUsXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/imports-first.js b/node_modules/eslint-plugin-import/lib/rules/imports-first.js index 7f6d199ca1..293fadca94 100644 --- a/node_modules/eslint-plugin-import/lib/rules/imports-first.js +++ b/node_modules/eslint-plugin-import/lib/rules/imports-first.js @@ -10,4 +10,4 @@ const newMeta = Object.assign({}, first.meta, { module.exports = Object.assign({}, first, { meta: newMeta }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9pbXBvcnRzLWZpcnN0LmpzIl0sIm5hbWVzIjpbImZpcnN0IiwicmVxdWlyZSIsIm5ld01ldGEiLCJPYmplY3QiLCJhc3NpZ24iLCJtZXRhIiwiZGVwcmVjYXRlZCIsImRvY3MiLCJ1cmwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQSxNQUFNQSxRQUFRQyxRQUFRLFNBQVIsQ0FBZDs7QUFFQSxNQUFNQyxVQUFVQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosTUFBTUssSUFBeEIsRUFBOEI7QUFDNUNDLGNBQVksSUFEZ0M7QUFFNUNDLFFBQU07QUFDSkMsU0FBSyx1QkFBUSxlQUFSLEVBQXlCLDBDQUF6QixDQURELEVBRnNDLEVBQTlCLENBQWhCOzs7O0FBT0FDLE9BQU9DLE9BQVAsR0FBaUJQLE9BQU9DLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSixLQUFsQixFQUF5QixFQUFFSyxNQUFNSCxPQUFSLEVBQXpCLENBQWpCIiwiZmlsZSI6ImltcG9ydHMtZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBmaXJzdCA9IHJlcXVpcmUoJy4vZmlyc3QnKVxuXG5jb25zdCBuZXdNZXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QubWV0YSwge1xuICBkZXByZWNhdGVkOiB0cnVlLFxuICBkb2NzOiB7XG4gICAgdXJsOiBkb2NzVXJsKCdpbXBvcnRzLWZpcnN0JywgJzdiMjVjMWNiOTVlZTE4YWNjMTUzMTAwMmZkMzQzZTFlNjAzMWY5ZWQnKSxcbiAgfSxcbn0pXG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QsIHsgbWV0YTogbmV3TWV0YSB9KVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9pbXBvcnRzLWZpcnN0LmpzIl0sIm5hbWVzIjpbImZpcnN0IiwicmVxdWlyZSIsIm5ld01ldGEiLCJPYmplY3QiLCJhc3NpZ24iLCJtZXRhIiwiZGVwcmVjYXRlZCIsImRvY3MiLCJ1cmwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQSxNQUFNQSxRQUFRQyxRQUFRLFNBQVIsQ0FBZDs7QUFFQSxNQUFNQyxVQUFVQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosTUFBTUssSUFBeEIsRUFBOEI7QUFDNUNDLGNBQVksSUFEZ0M7QUFFNUNDLFFBQU07QUFDSkMsU0FBSyx1QkFBUSxlQUFSLEVBQXlCLDBDQUF6QixDQURELEVBRnNDLEVBQTlCLENBQWhCOzs7O0FBT0FDLE9BQU9DLE9BQVAsR0FBaUJQLE9BQU9DLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSixLQUFsQixFQUF5QixFQUFFSyxNQUFNSCxPQUFSLEVBQXpCLENBQWpCIiwiZmlsZSI6ImltcG9ydHMtZmlyc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuY29uc3QgZmlyc3QgPSByZXF1aXJlKCcuL2ZpcnN0Jyk7XG5cbmNvbnN0IG5ld01ldGEgPSBPYmplY3QuYXNzaWduKHt9LCBmaXJzdC5tZXRhLCB7XG4gIGRlcHJlY2F0ZWQ6IHRydWUsXG4gIGRvY3M6IHtcbiAgICB1cmw6IGRvY3NVcmwoJ2ltcG9ydHMtZmlyc3QnLCAnN2IyNWMxY2I5NWVlMThhY2MxNTMxMDAyZmQzNDNlMWU2MDMxZjllZCcpLFxuICB9LFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QsIHsgbWV0YTogbmV3TWV0YSB9KTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js b/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js index 83aaeeaeca..7c14fc0a80 100644 --- a/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js +++ b/node_modules/eslint-plugin-import/lib/rules/max-dependencies.js @@ -1,4 +1,4 @@ -'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire); +'use strict';var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} const DEFAULT_MAX = 10; @@ -36,23 +36,13 @@ module.exports = { const dependencies = new Set(); // keep track of dependencies let lastNode; // keep track of the last node to report on - return { - ImportDeclaration(node) { - dependencies.add(node.source.value); - lastNode = node.source; - }, - - CallExpression(node) { - if ((0, _staticRequire2.default)(node)) {var _node$arguments = _slicedToArray( - node.arguments, 1);const requirePath = _node$arguments[0]; - dependencies.add(requirePath.value); - lastNode = node; - } - }, - + return Object.assign({ 'Program:exit': function () { countDependencies(dependencies, lastNode, context); - } }; - + } }, + (0, _moduleVisitor2.default)(source => { + dependencies.add(source.value); + lastNode = source; + }, { commonjs: true })); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9tYXgtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYIiwiY291bnREZXBlbmRlbmNpZXMiLCJkZXBlbmRlbmNpZXMiLCJsYXN0Tm9kZSIsImNvbnRleHQiLCJvcHRpb25zIiwibWF4Iiwic2l6ZSIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJTZXQiLCJJbXBvcnREZWNsYXJhdGlvbiIsIm5vZGUiLCJhZGQiLCJzb3VyY2UiLCJ2YWx1ZSIsIkNhbGxFeHByZXNzaW9uIiwiYXJndW1lbnRzIiwicmVxdWlyZVBhdGgiXSwibWFwcGluZ3MiOiJxb0JBQUEsc0Q7QUFDQSxxQzs7QUFFQSxNQUFNQSxjQUFjLEVBQXBCOztBQUVBLE1BQU1DLG9CQUFvQixDQUFDQyxZQUFELEVBQWVDLFFBQWYsRUFBeUJDLE9BQXpCLEtBQXFDO0FBQy9DQSxVQUFRQyxPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQUVDLEtBQUtOLFdBQVAsRUFEeUIsT0FDdERNLEdBRHNELFFBQ3REQSxHQURzRDs7QUFHN0QsTUFBSUosYUFBYUssSUFBYixHQUFvQkQsR0FBeEIsRUFBNkI7QUFDM0JGLFlBQVFJLE1BQVI7QUFDRUwsWUFERjtBQUVHLHVDQUFrQ0csR0FBSSxhQUZ6Qzs7QUFJRDtBQUNGLENBVEQ7O0FBV0FHLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLGtCQUFSLENBREQsRUFGRjs7O0FBTUpDLFlBQVE7QUFDTjtBQUNFLGNBQVEsUUFEVjtBQUVFLG9CQUFjO0FBQ1osZUFBTyxFQUFFLFFBQVEsUUFBVixFQURLLEVBRmhCOztBQUtFLDhCQUF3QixLQUwxQixFQURNLENBTkosRUFEUzs7Ozs7QUFrQmZDLFVBQVFaLFdBQVc7QUFDakIsVUFBTUYsZUFBZSxJQUFJZSxHQUFKLEVBQXJCLENBRGlCLENBQ2M7QUFDL0IsUUFBSWQsUUFBSixDQUZpQixDQUVKOztBQUViLFdBQU87QUFDTGUsd0JBQWtCQyxJQUFsQixFQUF3QjtBQUN0QmpCLHFCQUFha0IsR0FBYixDQUFpQkQsS0FBS0UsTUFBTCxDQUFZQyxLQUE3QjtBQUNBbkIsbUJBQVdnQixLQUFLRSxNQUFoQjtBQUNELE9BSkk7O0FBTUxFLHFCQUFlSixJQUFmLEVBQXFCO0FBQ25CLFlBQUksNkJBQWdCQSxJQUFoQixDQUFKLEVBQTJCO0FBQ0RBLGVBQUtLLFNBREosV0FDakJDLFdBRGlCO0FBRXpCdkIsdUJBQWFrQixHQUFiLENBQWlCSyxZQUFZSCxLQUE3QjtBQUNBbkIscUJBQVdnQixJQUFYO0FBQ0Q7QUFDRixPQVpJOztBQWNMLHNCQUFnQixZQUFZO0FBQzFCbEIsMEJBQWtCQyxZQUFsQixFQUFnQ0MsUUFBaEMsRUFBMENDLE9BQTFDO0FBQ0QsT0FoQkksRUFBUDs7QUFrQkQsR0F4Q2MsRUFBakIiLCJmaWxlIjoibWF4LWRlcGVuZGVuY2llcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuY29uc3QgREVGQVVMVF9NQVggPSAxMFxuXG5jb25zdCBjb3VudERlcGVuZGVuY2llcyA9IChkZXBlbmRlbmNpZXMsIGxhc3ROb2RlLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IHttYXh9ID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHsgbWF4OiBERUZBVUxUX01BWCB9XG5cbiAgaWYgKGRlcGVuZGVuY2llcy5zaXplID4gbWF4KSB7XG4gICAgY29udGV4dC5yZXBvcnQoXG4gICAgICBsYXN0Tm9kZSxcbiAgICAgIGBNYXhpbXVtIG51bWJlciBvZiBkZXBlbmRlbmNpZXMgKCR7bWF4fSkgZXhjZWVkZWQuYFxuICAgIClcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ21heC1kZXBlbmRlbmNpZXMnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICdtYXgnOiB7ICd0eXBlJzogJ251bWJlcicgfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBjb250ZXh0ID0+IHtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBuZXcgU2V0KCkgLy8ga2VlcCB0cmFjayBvZiBkZXBlbmRlbmNpZXNcbiAgICBsZXQgbGFzdE5vZGUgLy8ga2VlcCB0cmFjayBvZiB0aGUgbGFzdCBub2RlIHRvIHJlcG9ydCBvblxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgZGVwZW5kZW5jaWVzLmFkZChub2RlLnNvdXJjZS52YWx1ZSlcbiAgICAgICAgbGFzdE5vZGUgPSBub2RlLnNvdXJjZVxuICAgICAgfSxcblxuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgICAgY29uc3QgWyByZXF1aXJlUGF0aCBdID0gbm9kZS5hcmd1bWVudHNcbiAgICAgICAgICBkZXBlbmRlbmNpZXMuYWRkKHJlcXVpcmVQYXRoLnZhbHVlKVxuICAgICAgICAgIGxhc3ROb2RlID0gbm9kZVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnUHJvZ3JhbTpleGl0JzogZnVuY3Rpb24gKCkge1xuICAgICAgICBjb3VudERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMsIGxhc3ROb2RlLCBjb250ZXh0KVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9tYXgtZGVwZW5kZW5jaWVzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfTUFYIiwiY291bnREZXBlbmRlbmNpZXMiLCJkZXBlbmRlbmNpZXMiLCJsYXN0Tm9kZSIsImNvbnRleHQiLCJvcHRpb25zIiwibWF4Iiwic2l6ZSIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJTZXQiLCJPYmplY3QiLCJhc3NpZ24iLCJzb3VyY2UiLCJhZGQiLCJ2YWx1ZSIsImNvbW1vbmpzIl0sIm1hcHBpbmdzIjoiYUFBQSxrRTtBQUNBLHFDOztBQUVBLE1BQU1BLGNBQWMsRUFBcEI7O0FBRUEsTUFBTUMsb0JBQW9CLENBQUNDLFlBQUQsRUFBZUMsUUFBZixFQUF5QkMsT0FBekIsS0FBcUM7QUFDN0NBLFVBQVFDLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBRUMsS0FBS04sV0FBUCxFQUR1QixPQUNyRE0sR0FEcUQsUUFDckRBLEdBRHFEOztBQUc3RCxNQUFJSixhQUFhSyxJQUFiLEdBQW9CRCxHQUF4QixFQUE2QjtBQUMzQkYsWUFBUUksTUFBUjtBQUNFTCxZQURGO0FBRUcsdUNBQWtDRyxHQUFJLGFBRnpDOztBQUlEO0FBQ0YsQ0FURDs7QUFXQUcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsa0JBQVIsQ0FERCxFQUZGOzs7QUFNSkMsWUFBUTtBQUNOO0FBQ0UsY0FBUSxRQURWO0FBRUUsb0JBQWM7QUFDWixlQUFPLEVBQUUsUUFBUSxRQUFWLEVBREssRUFGaEI7O0FBS0UsOEJBQXdCLEtBTDFCLEVBRE0sQ0FOSixFQURTOzs7OztBQWtCZkMsVUFBUVosV0FBVztBQUNqQixVQUFNRixlQUFlLElBQUllLEdBQUosRUFBckIsQ0FEaUIsQ0FDZTtBQUNoQyxRQUFJZCxRQUFKLENBRmlCLENBRUg7O0FBRWQsV0FBT2UsT0FBT0MsTUFBUCxDQUFjO0FBQ25CLHNCQUFnQixZQUFZO0FBQzFCbEIsMEJBQWtCQyxZQUFsQixFQUFnQ0MsUUFBaEMsRUFBMENDLE9BQTFDO0FBQ0QsT0FIa0IsRUFBZDtBQUlKLGlDQUFlZ0IsTUFBRCxJQUFZO0FBQzNCbEIsbUJBQWFtQixHQUFiLENBQWlCRCxPQUFPRSxLQUF4QjtBQUNBbkIsaUJBQVdpQixNQUFYO0FBQ0QsS0FIRSxFQUdBLEVBQUVHLFVBQVUsSUFBWixFQUhBLENBSkksQ0FBUDtBQVFELEdBOUJjLEVBQWpCIiwiZmlsZSI6Im1heC1kZXBlbmRlbmNpZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbmNvbnN0IERFRkFVTFRfTUFYID0gMTA7XG5cbmNvbnN0IGNvdW50RGVwZW5kZW5jaWVzID0gKGRlcGVuZGVuY2llcywgbGFzdE5vZGUsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgeyBtYXggfSA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7IG1heDogREVGQVVMVF9NQVggfTtcblxuICBpZiAoZGVwZW5kZW5jaWVzLnNpemUgPiBtYXgpIHtcbiAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgIGxhc3ROb2RlLFxuICAgICAgYE1heGltdW0gbnVtYmVyIG9mIGRlcGVuZGVuY2llcyAoJHttYXh9KSBleGNlZWRlZC5gXG4gICAgKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCdtYXgtZGVwZW5kZW5jaWVzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnbWF4JzogeyAndHlwZSc6ICdudW1iZXInIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogY29udGV4dCA9PiB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gbmV3IFNldCgpOyAvLyBrZWVwIHRyYWNrIG9mIGRlcGVuZGVuY2llc1xuICAgIGxldCBsYXN0Tm9kZTsgLy8ga2VlcCB0cmFjayBvZiB0aGUgbGFzdCBub2RlIHRvIHJlcG9ydCBvblxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY291bnREZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzLCBsYXN0Tm9kZSwgY29udGV4dCk7XG4gICAgICB9LFxuICAgIH0sIG1vZHVsZVZpc2l0b3IoKHNvdXJjZSkgPT4ge1xuICAgICAgZGVwZW5kZW5jaWVzLmFkZChzb3VyY2UudmFsdWUpO1xuICAgICAgbGFzdE5vZGUgPSBzb3VyY2U7XG4gICAgfSwgeyBjb21tb25qczogdHJ1ZSB9KSk7XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/named.js b/node_modules/eslint-plugin-import/lib/rules/named.js index f2b516612a..7326ae169f 100644 --- a/node_modules/eslint-plugin-import/lib/rules/named.js +++ b/node_modules/eslint-plugin-import/lib/rules/named.js @@ -69,4 +69,4 @@ module.exports = { } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lZC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NwZWNpZmllcnMiLCJrZXkiLCJub2RlIiwic291cmNlIiwiaW1wb3J0S2luZCIsImV4cG9ydEtpbmQiLCJzcGVjaWZpZXJzIiwic29tZSIsImltIiwiaW1wb3J0cyIsIkV4cG9ydHMiLCJnZXQiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImZvckVhY2giLCJkZWVwTG9va3VwIiwiaGFzRGVlcCIsIm5hbWUiLCJmb3VuZCIsImRlZXBQYXRoIiwibWFwIiwiaSIsInJlbGF0aXZlIiwiZGlybmFtZSIsImdldEZpbGVuYW1lIiwiam9pbiIsInJlcG9ydCIsImJpbmQiXSwibWFwcGluZ3MiOiJhQUFBLDRCLElBQVlBLEk7QUFDWix5QztBQUNBLHFDOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxPQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsYUFBU0MsZUFBVCxDQUF5QkMsR0FBekIsRUFBOEJQLElBQTlCLEVBQW9DUSxJQUFwQyxFQUEwQztBQUN4QztBQUNBLFVBQUlBLEtBQUtDLE1BQUwsSUFBZSxJQUFmLElBQXVCRCxLQUFLRSxVQUFMLEtBQW9CLE1BQTNDO0FBQ0FGLFdBQUtFLFVBQUwsS0FBb0IsUUFEcEIsSUFDaUNGLEtBQUtHLFVBQUwsS0FBb0IsTUFEekQsRUFDaUU7QUFDL0Q7QUFDRDs7QUFFRCxVQUFJLENBQUNILEtBQUtJLFVBQUw7QUFDRUMsVUFERixDQUNPLFVBQVVDLEVBQVYsRUFBYyxDQUFFLE9BQU9BLEdBQUdkLElBQUgsS0FBWUEsSUFBbkIsQ0FBeUIsQ0FEaEQsQ0FBTCxFQUN3RDtBQUN0RCxlQURzRCxDQUMvQztBQUNSOztBQUVELFlBQU1lLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlULEtBQUtDLE1BQUwsQ0FBWVMsS0FBeEIsRUFBK0JiLE9BQS9CLENBQWhCO0FBQ0EsVUFBSVUsV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSSxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTCxnQkFBUU0sWUFBUixDQUFxQmhCLE9BQXJCLEVBQThCRyxJQUE5QjtBQUNBO0FBQ0Q7O0FBRURBLFdBQUtJLFVBQUwsQ0FBZ0JVLE9BQWhCLENBQXdCLFVBQVVSLEVBQVYsRUFBYztBQUNwQyxZQUFJQSxHQUFHZCxJQUFILEtBQVlBLElBQWhCLEVBQXNCOztBQUV0QjtBQUNBLFlBQUljLEdBQUdKLFVBQUgsS0FBa0IsTUFBbEIsSUFBNEJJLEdBQUdKLFVBQUgsS0FBa0IsUUFBbEQsRUFBNEQ7O0FBRTVELGNBQU1hLGFBQWFSLFFBQVFTLE9BQVIsQ0FBZ0JWLEdBQUdQLEdBQUgsRUFBUWtCLElBQXhCLENBQW5COztBQUVBLFlBQUksQ0FBQ0YsV0FBV0csS0FBaEIsRUFBdUI7QUFDckIsY0FBSUgsV0FBVzNCLElBQVgsQ0FBZ0J3QixNQUFoQixHQUF5QixDQUE3QixFQUFnQztBQUM5QixrQkFBTU8sV0FBV0osV0FBVzNCLElBQVg7QUFDZGdDLGVBRGMsQ0FDVkMsS0FBS2pDLEtBQUtrQyxRQUFMLENBQWNsQyxLQUFLbUMsT0FBTCxDQUFhMUIsUUFBUTJCLFdBQVIsRUFBYixDQUFkLEVBQW1ESCxFQUFFakMsSUFBckQsQ0FESztBQUVkcUMsZ0JBRmMsQ0FFVCxNQUZTLENBQWpCOztBQUlBNUIsb0JBQVE2QixNQUFSLENBQWVwQixHQUFHUCxHQUFILENBQWY7QUFDRyxlQUFFTyxHQUFHUCxHQUFILEVBQVFrQixJQUFLLGtCQUFpQkUsUUFBUyxFQUQ1QztBQUVELFdBUEQsTUFPTztBQUNMdEIsb0JBQVE2QixNQUFSLENBQWVwQixHQUFHUCxHQUFILENBQWY7QUFDRU8sZUFBR1AsR0FBSCxFQUFRa0IsSUFBUixHQUFlLGtCQUFmLEdBQW9DakIsS0FBS0MsTUFBTCxDQUFZUyxLQUFoRCxHQUF3RCxJQUQxRDtBQUVEO0FBQ0Y7QUFDRixPQXJCRDtBQXNCRDs7QUFFRCxXQUFPO0FBQ0wsMkJBQXFCWixnQkFBZ0I2QixJQUFoQixDQUFzQixJQUF0QjtBQUNzQixnQkFEdEI7QUFFc0IsdUJBRnRCLENBRGhCOzs7QUFNTCxnQ0FBMEI3QixnQkFBZ0I2QixJQUFoQixDQUFzQixJQUF0QjtBQUNzQixhQUR0QjtBQUVzQix1QkFGdEIsQ0FOckIsRUFBUDs7OztBQVlELEdBbEVjLEVBQWpCIiwiZmlsZSI6Im5hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vRXhwb3J0TWFwJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduYW1lZCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKGtleSwgdHlwZSwgbm9kZSkge1xuICAgICAgLy8gaWdub3JlIGxvY2FsIGV4cG9ydHMgYW5kIHR5cGUgaW1wb3J0cy9leHBvcnRzXG4gICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCB8fCBub2RlLmltcG9ydEtpbmQgPT09ICd0eXBlJyB8fFxuICAgICAgICAgIG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGVvZicgIHx8IG5vZGUuZXhwb3J0S2luZCA9PT0gJ3R5cGUnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIW5vZGUuc3BlY2lmaWVyc1xuICAgICAgICAgICAgLnNvbWUoZnVuY3Rpb24gKGltKSB7IHJldHVybiBpbS50eXBlID09PSB0eXBlIH0pKSB7XG4gICAgICAgIHJldHVybiAvLyBubyBuYW1lZCBpbXBvcnRzL2V4cG9ydHNcbiAgICAgIH1cblxuICAgICAgY29uc3QgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KG5vZGUuc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgbm9kZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICBpZiAoaW0udHlwZSAhPT0gdHlwZSkgcmV0dXJuXG5cbiAgICAgICAgLy8gaWdub3JlIHR5cGUgaW1wb3J0c1xuICAgICAgICBpZiAoaW0uaW1wb3J0S2luZCA9PT0gJ3R5cGUnIHx8IGltLmltcG9ydEtpbmQgPT09ICd0eXBlb2YnKSByZXR1cm5cblxuICAgICAgICBjb25zdCBkZWVwTG9va3VwID0gaW1wb3J0cy5oYXNEZWVwKGltW2tleV0ubmFtZSlcblxuICAgICAgICBpZiAoIWRlZXBMb29rdXAuZm91bmQpIHtcbiAgICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZXBQYXRoID0gZGVlcExvb2t1cC5wYXRoXG4gICAgICAgICAgICAgIC5tYXAoaSA9PiBwYXRoLnJlbGF0aXZlKHBhdGguZGlybmFtZShjb250ZXh0LmdldEZpbGVuYW1lKCkpLCBpLnBhdGgpKVxuICAgICAgICAgICAgICAuam9pbignIC0+ICcpXG5cbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KGltW2tleV0sXG4gICAgICAgICAgICAgIGAke2ltW2tleV0ubmFtZX0gbm90IGZvdW5kIHZpYSAke2RlZXBQYXRofWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KGltW2tleV0sXG4gICAgICAgICAgICAgIGltW2tleV0ubmFtZSArICcgbm90IGZvdW5kIGluIFxcJycgKyBub2RlLnNvdXJjZS52YWx1ZSArICdcXCcnKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0ltcG9ydERlY2xhcmF0aW9uJzogY2hlY2tTcGVjaWZpZXJzLmJpbmQoIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAnaW1wb3J0ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgJ0ltcG9ydFNwZWNpZmllcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcblxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBjaGVja1NwZWNpZmllcnMuYmluZCggbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgJ2xvY2FsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgJ0V4cG9ydFNwZWNpZmllcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgIH1cblxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lZC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NwZWNpZmllcnMiLCJrZXkiLCJub2RlIiwic291cmNlIiwiaW1wb3J0S2luZCIsImV4cG9ydEtpbmQiLCJzcGVjaWZpZXJzIiwic29tZSIsImltIiwiaW1wb3J0cyIsIkV4cG9ydHMiLCJnZXQiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsImZvckVhY2giLCJkZWVwTG9va3VwIiwiaGFzRGVlcCIsIm5hbWUiLCJmb3VuZCIsImRlZXBQYXRoIiwibWFwIiwiaSIsInJlbGF0aXZlIiwiZGlybmFtZSIsImdldEZpbGVuYW1lIiwiam9pbiIsInJlcG9ydCIsImJpbmQiXSwibWFwcGluZ3MiOiJhQUFBLDRCLElBQVlBLEk7QUFDWix5QztBQUNBLHFDOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxPQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVDLE9BQVYsRUFBbUI7QUFDekIsYUFBU0MsZUFBVCxDQUF5QkMsR0FBekIsRUFBOEJQLElBQTlCLEVBQW9DUSxJQUFwQyxFQUEwQztBQUN4QztBQUNBLFVBQUlBLEtBQUtDLE1BQUwsSUFBZSxJQUFmLElBQXVCRCxLQUFLRSxVQUFMLEtBQW9CLE1BQTNDO0FBQ0FGLFdBQUtFLFVBQUwsS0FBb0IsUUFEcEIsSUFDaUNGLEtBQUtHLFVBQUwsS0FBb0IsTUFEekQsRUFDaUU7QUFDL0Q7QUFDRDs7QUFFRCxVQUFJLENBQUNILEtBQUtJLFVBQUw7QUFDRkMsVUFERSxDQUNHLFVBQVVDLEVBQVYsRUFBYyxDQUFFLE9BQU9BLEdBQUdkLElBQUgsS0FBWUEsSUFBbkIsQ0FBMEIsQ0FEN0MsQ0FBTCxFQUNxRDtBQUNuRCxlQURtRCxDQUMzQztBQUNUOztBQUVELFlBQU1lLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlULEtBQUtDLE1BQUwsQ0FBWVMsS0FBeEIsRUFBK0JiLE9BQS9CLENBQWhCO0FBQ0EsVUFBSVUsV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSSxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTCxnQkFBUU0sWUFBUixDQUFxQmhCLE9BQXJCLEVBQThCRyxJQUE5QjtBQUNBO0FBQ0Q7O0FBRURBLFdBQUtJLFVBQUwsQ0FBZ0JVLE9BQWhCLENBQXdCLFVBQVVSLEVBQVYsRUFBYztBQUNwQyxZQUFJQSxHQUFHZCxJQUFILEtBQVlBLElBQWhCLEVBQXNCOztBQUV0QjtBQUNBLFlBQUljLEdBQUdKLFVBQUgsS0FBa0IsTUFBbEIsSUFBNEJJLEdBQUdKLFVBQUgsS0FBa0IsUUFBbEQsRUFBNEQ7O0FBRTVELGNBQU1hLGFBQWFSLFFBQVFTLE9BQVIsQ0FBZ0JWLEdBQUdQLEdBQUgsRUFBUWtCLElBQXhCLENBQW5COztBQUVBLFlBQUksQ0FBQ0YsV0FBV0csS0FBaEIsRUFBdUI7QUFDckIsY0FBSUgsV0FBVzNCLElBQVgsQ0FBZ0J3QixNQUFoQixHQUF5QixDQUE3QixFQUFnQztBQUM5QixrQkFBTU8sV0FBV0osV0FBVzNCLElBQVg7QUFDZGdDLGVBRGMsQ0FDVkMsS0FBS2pDLEtBQUtrQyxRQUFMLENBQWNsQyxLQUFLbUMsT0FBTCxDQUFhMUIsUUFBUTJCLFdBQVIsRUFBYixDQUFkLEVBQW1ESCxFQUFFakMsSUFBckQsQ0FESztBQUVkcUMsZ0JBRmMsQ0FFVCxNQUZTLENBQWpCOztBQUlBNUIsb0JBQVE2QixNQUFSLENBQWVwQixHQUFHUCxHQUFILENBQWY7QUFDRyxlQUFFTyxHQUFHUCxHQUFILEVBQVFrQixJQUFLLGtCQUFpQkUsUUFBUyxFQUQ1QztBQUVELFdBUEQsTUFPTztBQUNMdEIsb0JBQVE2QixNQUFSLENBQWVwQixHQUFHUCxHQUFILENBQWY7QUFDRU8sZUFBR1AsR0FBSCxFQUFRa0IsSUFBUixHQUFlLGtCQUFmLEdBQW9DakIsS0FBS0MsTUFBTCxDQUFZUyxLQUFoRCxHQUF3RCxJQUQxRDtBQUVEO0FBQ0Y7QUFDRixPQXJCRDtBQXNCRDs7QUFFRCxXQUFPO0FBQ0wsMkJBQXFCWixnQkFBZ0I2QixJQUFoQixDQUFzQixJQUF0QjtBQUNqQixnQkFEaUI7QUFFakIsdUJBRmlCLENBRGhCOzs7QUFNTCxnQ0FBMEI3QixnQkFBZ0I2QixJQUFoQixDQUFzQixJQUF0QjtBQUN0QixhQURzQjtBQUV0Qix1QkFGc0IsQ0FOckIsRUFBUDs7OztBQVlELEdBbEVjLEVBQWpCIiwiZmlsZSI6Im5hbWVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCc7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduYW1lZCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKGtleSwgdHlwZSwgbm9kZSkge1xuICAgICAgLy8gaWdub3JlIGxvY2FsIGV4cG9ydHMgYW5kIHR5cGUgaW1wb3J0cy9leHBvcnRzXG4gICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCB8fCBub2RlLmltcG9ydEtpbmQgPT09ICd0eXBlJyB8fFxuICAgICAgICAgIG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGVvZicgIHx8IG5vZGUuZXhwb3J0S2luZCA9PT0gJ3R5cGUnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFub2RlLnNwZWNpZmllcnNcbiAgICAgICAgLnNvbWUoZnVuY3Rpb24gKGltKSB7IHJldHVybiBpbS50eXBlID09PSB0eXBlOyB9KSkge1xuICAgICAgICByZXR1cm47IC8vIG5vIG5hbWVkIGltcG9ydHMvZXhwb3J0c1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIG5vZGUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICBpZiAoaW0udHlwZSAhPT0gdHlwZSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIGlnbm9yZSB0eXBlIGltcG9ydHNcbiAgICAgICAgaWYgKGltLmltcG9ydEtpbmQgPT09ICd0eXBlJyB8fCBpbS5pbXBvcnRLaW5kID09PSAndHlwZW9mJykgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGRlZXBMb29rdXAgPSBpbXBvcnRzLmhhc0RlZXAoaW1ba2V5XS5uYW1lKTtcblxuICAgICAgICBpZiAoIWRlZXBMb29rdXAuZm91bmQpIHtcbiAgICAgICAgICBpZiAoZGVlcExvb2t1cC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZXBQYXRoID0gZGVlcExvb2t1cC5wYXRoXG4gICAgICAgICAgICAgIC5tYXAoaSA9PiBwYXRoLnJlbGF0aXZlKHBhdGguZGlybmFtZShjb250ZXh0LmdldEZpbGVuYW1lKCkpLCBpLnBhdGgpKVxuICAgICAgICAgICAgICAuam9pbignIC0+ICcpO1xuXG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbVtrZXldLFxuICAgICAgICAgICAgICBgJHtpbVtrZXldLm5hbWV9IG5vdCBmb3VuZCB2aWEgJHtkZWVwUGF0aH1gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoaW1ba2V5XSxcbiAgICAgICAgICAgICAgaW1ba2V5XS5uYW1lICsgJyBub3QgZm91bmQgaW4gXFwnJyArIG5vZGUuc291cmNlLnZhbHVlICsgJ1xcJycpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGNoZWNrU3BlY2lmaWVycy5iaW5kKCBudWxsXG4gICAgICAgICwgJ2ltcG9ydGVkJ1xuICAgICAgICAsICdJbXBvcnRTcGVjaWZpZXInXG4gICAgICApLFxuXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGNoZWNrU3BlY2lmaWVycy5iaW5kKCBudWxsXG4gICAgICAgICwgJ2xvY2FsJ1xuICAgICAgICAsICdFeHBvcnRTcGVjaWZpZXInXG4gICAgICApLFxuICAgIH07XG5cbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/namespace.js b/node_modules/eslint-plugin-import/lib/rules/namespace.js index 0b9abf8289..607abf4b3c 100644 --- a/node_modules/eslint-plugin-import/lib/rules/namespace.js +++ b/node_modules/eslint-plugin-import/lib/rules/namespace.js @@ -83,9 +83,9 @@ module.exports = { // same as above, but does not add names to local map ExportNamespaceSpecifier(namespace) { - var declaration = (0, _importDeclaration2.default)(context); + const declaration = (0, _importDeclaration2.default)(context); - var imports = _ExportMap2.default.get(declaration.source.value, context); + const imports = _ExportMap2.default.get(declaration.source.value, context); if (imports == null) return null; if (imports.errors.length) { @@ -116,8 +116,8 @@ module.exports = { } // go deep - var namespace = namespaces.get(dereference.object.name); - var namepath = [dereference.object.name]; + let namespace = namespaces.get(dereference.object.name); + const namepath = [dereference.object.name]; // while property is namespace and parent is member expression, keep validating while (namespace instanceof _ExportMap2.default && dereference.type === 'MemberExpression') { @@ -204,7 +204,7 @@ module.exports = { JSXMemberExpression(_ref4) {let object = _ref4.object,property = _ref4.property; if (!namespaces.has(object.name)) return; - var namespace = namespaces.get(object.name); + const namespace = namespaces.get(object.name); if (!namespace.has(property.name)) { context.report({ node: property, @@ -214,4 +214,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJhbGxvd0NvbXB1dGVkIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJuYW1lc3BhY2VSdWxlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJuYW1lc3BhY2VzIiwiTWFwIiwibWFrZU1lc3NhZ2UiLCJsYXN0IiwibmFtZXBhdGgiLCJuYW1lIiwibGVuZ3RoIiwiam9pbiIsIlByb2dyYW0iLCJib2R5IiwicHJvY2Vzc0JvZHlTdGF0ZW1lbnQiLCJkZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwicmVwb3J0RXJyb3JzIiwic3BlY2lmaWVyIiwic2l6ZSIsInJlcG9ydCIsInNldCIsImxvY2FsIiwiaW1wb3J0ZWQiLCJuYW1lc3BhY2UiLCJmb3JFYWNoIiwiRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyIiwiTWVtYmVyRXhwcmVzc2lvbiIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwiaGFzIiwicGFyZW50IiwibGVmdCIsImNvbXB1dGVkIiwicHJvcGVydHkiLCJleHBvcnRlZCIsInB1c2giLCJWYXJpYWJsZURlY2xhcmF0b3IiLCJpZCIsImluaXQiLCJ0ZXN0S2V5IiwicGF0dGVybiIsInBhdGgiLCJrZXkiLCJub2RlIiwibWVzc2FnZSIsImRlcGVuZGVuY3lFeHBvcnRNYXAiLCJwb3AiLCJKU1hNZW1iZXJFeHByZXNzaW9uIl0sIm1hcHBpbmdzIjoiYUFBQSxrRTtBQUNBLHlDO0FBQ0EseUQ7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pD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LElBQXRCLENBQUwsRUFBa0M7QUFDbEMsWUFBSXFCLFlBQVkxQixXQUFXZSxHQUFYLENBQWVnQixPQUFPMUIsSUFBdEIsQ0FBaEI7QUFDQSxZQUFJLENBQUNxQixVQUFVTSxHQUFWLENBQWNJLFNBQVMvQixJQUF2QixDQUFMLEVBQW1DO0FBQ2pDUCxrQkFBUXdCLE1BQVIsQ0FBZTtBQUNid0Isa0JBQU1WLFFBRE87QUFFYlcscUJBQVM3QyxZQUFZa0MsUUFBWixFQUFzQixDQUFDTCxPQUFPMUIsSUFBUixDQUF0QixDQUZJLEVBQWY7O0FBSUQ7QUFDSCxPQTdLSSxFQUFQOztBQStLRCxHQWxOYyxFQUFqQiIsImZpbGUiOiJuYW1lc3BhY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVjbGFyZWRTY29wZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2RlY2xhcmVkU2NvcGUnXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25hbWVzcGFjZScpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBhbGxvd0NvbXB1dGVkOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGNvbXB1dGVkIChhbmQgdGh1cywgdW4tbGludGFibGUpIHJlZmVyZW5jZXMgdG8gbmFtZXNwYWNlIG1lbWJlcnMuJyxcbiAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5hbWVzcGFjZVJ1bGUoY29udGV4dCkge1xuXG4gICAgLy8gcmVhZCBvcHRpb25zXG4gICAgY29uc3Qge1xuICAgICAgYWxsb3dDb21wdXRlZCA9IGZhbHNlLFxuICAgIH0gPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cblxuICAgIGNvbnN0IG5hbWVzcGFjZXMgPSBuZXcgTWFwKClcblxuICAgIGZ1bmN0aW9uIG1ha2VNZXNzYWdlKGxhc3QsIG5hbWVwYXRoKSB7XG4gICAgICByZXR1cm4gYCcke2xhc3QubmFtZX0nIG5vdCBmb3VuZCBpbiAke25hbWVwYXRoLmxlbmd0aCA+IDEgPyAnZGVlcGx5ICcgOiAnJ31pbXBvcnRlZCBuYW1lc3BhY2UgJyR7bmFtZXBhdGguam9pbignLicpfScuYFxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBwaWNrIHVwIGFsbCBpbXBvcnRzIGF0IGJvZHkgZW50cnkgdGltZSwgdG8gcHJvcGVybHkgcmVzcGVjdCBob2lzdGluZ1xuICAgICAgUHJvZ3JhbSh7IGJvZHkgfSkge1xuICAgICAgICBmdW5jdGlvbiBwcm9jZXNzQm9keVN0YXRlbWVudChkZWNsYXJhdGlvbikge1xuICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm5cblxuICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsXG5cbiAgICAgICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3BlY2lmaWVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzpcbiAgICAgICAgICAgICAgICBpZiAoIWltcG9ydHMuc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcixcbiAgICAgICAgICAgICAgICAgICAgYE5vIGV4cG9ydGVkIG5hbWVzIGZvdW5kIGluIG1vZHVsZSAnJHtkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWV9Jy5gXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KHNwZWNpZmllci5sb2NhbC5uYW1lLCBpbXBvcnRzKVxuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgICBjYXNlICdJbXBvcnRTcGVjaWZpZXInOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IGltcG9ydHMuZ2V0KFxuICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byAnZGVmYXVsdCcgZm9yIGRlZmF1bHQgaHR0cDovL2kuaW1ndXIuY29tL25qNnFBV3kuanBnXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpZXIuaW1wb3J0ZWQgPyBzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSA6ICdkZWZhdWx0J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAoIW1ldGEgfHwgIW1ldGEubmFtZXNwYWNlKSB7IGJyZWFrIH1cbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VzLnNldChzcGVjaWZpZXIubG9jYWwubmFtZSwgbWV0YS5uYW1lc3BhY2UpXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBib2R5LmZvckVhY2gocHJvY2Vzc0JvZHlTdGF0ZW1lbnQpXG4gICAgICB9LFxuXG4gICAgICAvLyBzYW1lIGFzIGFib3ZlLCBidXQgZG9lcyBub3QgYWRkIG5hbWVzIHRvIGxvY2FsIG1hcFxuICAgICAgRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyKG5hbWVzcGFjZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICAgIHZhciBpbXBvcnRzID0gRXhwb3J0cy5nZXQoZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLCBjb250ZXh0KVxuICAgICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIGlmIChpbXBvcnRzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgICBgTm8gZXhwb3J0ZWQgbmFtZXMgZm91bmQgaW4gbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nLmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIHRvZG86IGNoZWNrIGZvciBwb3NzaWJsZSByZWRlZmluaXRpb25cblxuICAgICAgTWVtYmVyRXhwcmVzc2lvbihkZXJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoZGVyZWZlcmVuY2Uub2JqZWN0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuXG4gICAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpKSByZXR1cm5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLnBhcmVudC50eXBlID09PSAnQXNzaWdubWVudEV4cHJlc3Npb24nICYmIGRlcmVmZXJlbmNlLnBhcmVudC5sZWZ0ID09PSBkZXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnBhcmVudCxcbiAgICAgICAgICAgICAgYEFzc2lnbm1lbnQgdG8gbWVtYmVyIG9mIG5hbWVzcGFjZSAnJHtkZXJlZmVyZW5jZS5vYmplY3QubmFtZX0nLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGdvIGRlZXBcbiAgICAgICAgdmFyIG5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuZ2V0KGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKVxuICAgICAgICB2YXIgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdXG4gICAgICAgIC8vIHdoaWxlIHByb3BlcnR5IGlzIG5hbWVzcGFjZSBhbmQgcGFyZW50IGlzIG1lbWJlciBleHByZXNzaW9uLCBrZWVwIHZhbGlkYXRpbmdcbiAgICAgICAgd2hpbGUgKG5hbWVzcGFjZSBpbnN0YW5jZW9mIEV4cG9ydHMgJiYgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICBpZiAoZGVyZWZlcmVuY2UuY29tcHV0ZWQpIHtcbiAgICAgICAgICAgIGlmICghYWxsb3dDb21wdXRlZCkge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgICAgICBkZXJlZmVyZW5jZS5wcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBgVW5hYmxlIHRvIHZhbGlkYXRlIGNvbXB1dGVkIHJlZmVyZW5jZSB0byBpbXBvcnRlZCBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgICBtYWtlTWVzc2FnZShkZXJlZmVyZW5jZS5wcm9wZXJ0eSwgbmFtZXBhdGgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGV4cG9ydGVkID0gbmFtZXNwYWNlLmdldChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKVxuICAgICAgICAgIGlmIChleHBvcnRlZCA9PSBudWxsKSByZXR1cm5cblxuICAgICAgICAgIC8vIHN0YXNoIGFuZCBwb3BcbiAgICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpXG4gICAgICAgICAgbmFtZXNwYWNlID0gZXhwb3J0ZWQubmFtZXNwYWNlXG4gICAgICAgICAgZGVyZWZlcmVuY2UgPSBkZXJlZmVyZW5jZS5wYXJlbnRcbiAgICAgICAgfVxuXG4gICAgICB9LFxuXG4gICAgICBWYXJpYWJsZURlY2xhcmF0b3IoeyBpZCwgaW5pdCB9KSB7XG4gICAgICAgIGlmIChpbml0ID09IG51bGwpIHJldHVyblxuICAgICAgICBpZiAoaW5pdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGluaXQubmFtZSkpIHJldHVyblxuXG4gICAgICAgIC8vIGNoZWNrIGZvciByZWRlZmluaXRpb24gaW4gaW50ZXJtZWRpYXRlIHNjb3Blc1xuICAgICAgICBpZiAoZGVjbGFyZWRTY29wZShjb250ZXh0LCBpbml0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgLy8gREZTIHRyYXZlcnNlIGNoaWxkIG5hbWVzcGFjZXNcbiAgICAgICAgZnVuY3Rpb24gdGVzdEtleShwYXR0ZXJuLCBuYW1lc3BhY2UsIHBhdGggPSBbaW5pdC5uYW1lXSkge1xuICAgICAgICAgIGlmICghKG5hbWVzcGFjZSBpbnN0YW5jZW9mIEV4cG9ydHMpKSByZXR1cm5cblxuICAgICAgICAgIGlmIChwYXR0ZXJuLnR5cGUgIT09ICdPYmplY3RQYXR0ZXJuJykgcmV0dXJuXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHBhdHRlcm4ucHJvcGVydGllcykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwcm9wZXJ0eS50eXBlID09PSAnRXhwZXJpbWVudGFsUmVzdFByb3BlcnR5J1xuICAgICAgICAgICAgICB8fCBwcm9wZXJ0eS50eXBlID09PSAnUmVzdEVsZW1lbnQnXG4gICAgICAgICAgICAgIHx8ICFwcm9wZXJ0eS5rZXlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJvcGVydHkua2V5LnR5cGUgIT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgbm9kZTogcHJvcGVydHksXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ09ubHkgZGVzdHJ1Y3R1cmUgdG9wLWxldmVsIG5hbWVzLicsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwcm9wZXJ0eS5rZXkubmFtZSkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgIG5vZGU6IHByb3BlcnR5LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1ha2VNZXNzYWdlKHByb3BlcnR5LmtleSwgcGF0aCksXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgucHVzaChwcm9wZXJ0eS5rZXkubmFtZSlcbiAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lFeHBvcnRNYXAgPSBuYW1lc3BhY2UuZ2V0KHByb3BlcnR5LmtleS5uYW1lKVxuICAgICAgICAgICAgLy8gY291bGQgYmUgbnVsbCB3aGVuIGlnbm9yZWQgb3IgYW1iaWd1b3VzXG4gICAgICAgICAgICBpZiAoZGVwZW5kZW5jeUV4cG9ydE1hcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICB0ZXN0S2V5KHByb3BlcnR5LnZhbHVlLCBkZXBlbmRlbmN5RXhwb3J0TWFwLm5hbWVzcGFjZSwgcGF0aClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGgucG9wKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0ZXN0S2V5KGlkLCBuYW1lc3BhY2VzLmdldChpbml0Lm5hbWUpKVxuICAgICAgfSxcblxuICAgICAgSlNYTWVtYmVyRXhwcmVzc2lvbih7b2JqZWN0LCBwcm9wZXJ0eX0pIHtcbiAgICAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMob2JqZWN0Lm5hbWUpKSByZXR1cm5cbiAgICAgICAgIHZhciBuYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmdldChvYmplY3QubmFtZSlcbiAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhwcm9wZXJ0eS5uYW1lKSkge1xuICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgbm9kZTogcHJvcGVydHksXG4gICAgICAgICAgICAgbWVzc2FnZTogbWFrZU1lc3NhZ2UocHJvcGVydHksIFtvYmplY3QubmFtZV0pLFxuICAgICAgICAgICB9KVxuICAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJhbGxvd0NvbXB1dGVkIiwiZGVzY3JpcHRpb24iLCJkZWZhdWx0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJuYW1lc3BhY2VSdWxlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJuYW1lc3BhY2VzIiwiTWFwIiwibWFrZU1lc3NhZ2UiLCJsYXN0IiwibmFtZXBhdGgiLCJuYW1lIiwibGVuZ3RoIiwiam9pbiIsIlByb2dyYW0iLCJib2R5IiwicHJvY2Vzc0JvZHlTdGF0ZW1lbnQiLCJkZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwicmVwb3J0RXJyb3JzIiwic3BlY2lmaWVyIiwic2l6ZSIsInJlcG9ydCIsInNldCIsImxvY2FsIiwiaW1wb3J0ZWQiLCJuYW1lc3BhY2UiLCJmb3JFYWNoIiwiRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyIiwiTWVtYmVyRXhwcmVzc2lvbiIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwiaGFzIiwicGFyZW50IiwibGVmdCIsImNvbXB1dGVkIiwicHJvcGVydHkiLCJleHBvcnRlZCIsInB1c2giLCJWYXJpYWJsZURlY2xhcmF0b3IiLCJpZCIsImluaXQiLCJ0ZXN0S2V5IiwicGF0dGVybiIsInBhdGgiLCJrZXkiLCJub2RlIiwibWVzc2FnZSIsImRlcGVuZGVuY3lFeHBvcnRNYXAiLCJwb3AiLCJKU1hNZW1iZXJFeHByZXNzaW9uIl0sIm1hcHBpbmdzIjoiYUFBQSxrRTtBQUNBLHlDO0FBQ0EseUQ7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pD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MUIsSUFBdEIsQ0FBTCxFQUFrQztBQUNsQyxjQUFNcUIsWUFBWTFCLFdBQVdlLEdBQVgsQ0FBZWdCLE9BQU8xQixJQUF0QixDQUFsQjtBQUNBLFlBQUksQ0FBQ3FCLFVBQVVNLEdBQVYsQ0FBY0ksU0FBUy9CLElBQXZCLENBQUwsRUFBbUM7QUFDakNQLGtCQUFRd0IsTUFBUixDQUFlO0FBQ2J3QixrQkFBTVYsUUFETztBQUViVyxxQkFBUzdDLFlBQVlrQyxRQUFaLEVBQXNCLENBQUNMLE9BQU8xQixJQUFSLENBQXRCLENBRkksRUFBZjs7QUFJRDtBQUNGLE9BN0tJLEVBQVA7O0FBK0tELEdBbE5jLEVBQWpCIiwiZmlsZSI6Im5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvZGVjbGFyZWRTY29wZSc7XG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnO1xuaW1wb3J0IGltcG9ydERlY2xhcmF0aW9uIGZyb20gJy4uL2ltcG9ydERlY2xhcmF0aW9uJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25hbWVzcGFjZScpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBhbGxvd0NvbXB1dGVkOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGNvbXB1dGVkIChhbmQgdGh1cywgdW4tbGludGFibGUpIHJlZmVyZW5jZXMgdG8gbmFtZXNwYWNlIG1lbWJlcnMuJyxcbiAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5hbWVzcGFjZVJ1bGUoY29udGV4dCkge1xuXG4gICAgLy8gcmVhZCBvcHRpb25zXG4gICAgY29uc3Qge1xuICAgICAgYWxsb3dDb21wdXRlZCA9IGZhbHNlLFxuICAgIH0gPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge307XG5cbiAgICBjb25zdCBuYW1lc3BhY2VzID0gbmV3IE1hcCgpO1xuXG4gICAgZnVuY3Rpb24gbWFrZU1lc3NhZ2UobGFzdCwgbmFtZXBhdGgpIHtcbiAgICAgIHJldHVybiBgJyR7bGFzdC5uYW1lfScgbm90IGZvdW5kIGluICR7bmFtZXBhdGgubGVuZ3RoID4gMSA/ICdkZWVwbHkgJyA6ICcnfWltcG9ydGVkIG5hbWVzcGFjZSAnJHtuYW1lcGF0aC5qb2luKCcuJyl9Jy5gO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAvLyBwaWNrIHVwIGFsbCBpbXBvcnRzIGF0IGJvZHkgZW50cnkgdGltZSwgdG8gcHJvcGVybHkgcmVzcGVjdCBob2lzdGluZ1xuICAgICAgUHJvZ3JhbSh7IGJvZHkgfSkge1xuICAgICAgICBmdW5jdGlvbiBwcm9jZXNzQm9keVN0YXRlbWVudChkZWNsYXJhdGlvbikge1xuICAgICAgICAgIGlmIChkZWNsYXJhdGlvbi50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm47XG5cbiAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc3BlY2lmaWVycy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIGRlY2xhcmF0aW9uLnNwZWNpZmllcnMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3BlY2lmaWVyLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6XG4gICAgICAgICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgICAgICBzcGVjaWZpZXIsXG4gICAgICAgICAgICAgICAgICBgTm8gZXhwb3J0ZWQgbmFtZXMgZm91bmQgaW4gbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nLmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG5hbWVzcGFjZXMuc2V0KHNwZWNpZmllci5sb2NhbC5uYW1lLCBpbXBvcnRzKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6IHtcbiAgICAgICAgICAgICAgY29uc3QgbWV0YSA9IGltcG9ydHMuZ2V0KFxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gJ2RlZmF1bHQnIGZvciBkZWZhdWx0IGh0dHA6Ly9pLmltZ3VyLmNvbS9uajZxQVd5LmpwZ1xuICAgICAgICAgICAgICAgIHNwZWNpZmllci5pbXBvcnRlZCA/IHNwZWNpZmllci5pbXBvcnRlZC5uYW1lIDogJ2RlZmF1bHQnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmICghbWV0YSB8fCAhbWV0YS5uYW1lc3BhY2UpIHsgYnJlYWs7IH1cbiAgICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoc3BlY2lmaWVyLmxvY2FsLm5hbWUsIG1ldGEubmFtZXNwYWNlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJvZHkuZm9yRWFjaChwcm9jZXNzQm9keVN0YXRlbWVudCk7XG4gICAgICB9LFxuXG4gICAgICAvLyBzYW1lIGFzIGFib3ZlLCBidXQgZG9lcyBub3QgYWRkIG5hbWVzIHRvIGxvY2FsIG1hcFxuICAgICAgRXhwb3J0TmFtZXNwYWNlU3BlY2lmaWVyKG5hbWVzcGFjZSkge1xuICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgaW1wb3J0cy5yZXBvcnRFcnJvcnMoY29udGV4dCwgZGVjbGFyYXRpb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaW1wb3J0cy5zaXplKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgICAgICBgTm8gZXhwb3J0ZWQgbmFtZXMgZm91bmQgaW4gbW9kdWxlICcke2RlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZX0nLmBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyB0b2RvOiBjaGVjayBmb3IgcG9zc2libGUgcmVkZWZpbml0aW9uXG5cbiAgICAgIE1lbWJlckV4cHJlc3Npb24oZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVybjtcbiAgICAgICAgaWYgKCFuYW1lc3BhY2VzLmhhcyhkZXJlZmVyZW5jZS5vYmplY3QubmFtZSkpIHJldHVybjtcbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuO1xuXG4gICAgICAgIGlmIChkZXJlZmVyZW5jZS5wYXJlbnQudHlwZSA9PT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJyAmJiBkZXJlZmVyZW5jZS5wYXJlbnQubGVmdCA9PT0gZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICAgIGRlcmVmZXJlbmNlLnBhcmVudCxcbiAgICAgICAgICAgIGBBc3NpZ25tZW50IHRvIG1lbWJlciBvZiBuYW1lc3BhY2UgJyR7ZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWV9Jy5gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGdvIGRlZXBcbiAgICAgICAgbGV0IG5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuZ2V0KGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKTtcbiAgICAgICAgY29uc3QgbmFtZXBhdGggPSBbZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWVdO1xuICAgICAgICAvLyB3aGlsZSBwcm9wZXJ0eSBpcyBuYW1lc3BhY2UgYW5kIHBhcmVudCBpcyBtZW1iZXIgZXhwcmVzc2lvbiwga2VlcCB2YWxpZGF0aW5nXG4gICAgICAgIHdoaWxlIChuYW1lc3BhY2UgaW5zdGFuY2VvZiBFeHBvcnRzICYmIGRlcmVmZXJlbmNlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJykge1xuXG4gICAgICAgICAgaWYgKGRlcmVmZXJlbmNlLmNvbXB1dGVkKSB7XG4gICAgICAgICAgICBpZiAoIWFsbG93Q29tcHV0ZWQpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgICAgZGVyZWZlcmVuY2UucHJvcGVydHksXG4gICAgICAgICAgICAgICAgYFVuYWJsZSB0byB2YWxpZGF0ZSBjb21wdXRlZCByZWZlcmVuY2UgdG8gaW1wb3J0ZWQgbmFtZXNwYWNlICcke2RlcmVmZXJlbmNlLm9iamVjdC5uYW1lfScuYFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghbmFtZXNwYWNlLmhhcyhkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICAgIGRlcmVmZXJlbmNlLnByb3BlcnR5LFxuICAgICAgICAgICAgICBtYWtlTWVzc2FnZShkZXJlZmVyZW5jZS5wcm9wZXJ0eSwgbmFtZXBhdGgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZXhwb3J0ZWQgPSBuYW1lc3BhY2UuZ2V0KGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpO1xuICAgICAgICAgIGlmIChleHBvcnRlZCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgICAvLyBzdGFzaCBhbmQgcG9wXG4gICAgICAgICAgbmFtZXBhdGgucHVzaChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKTtcbiAgICAgICAgICBuYW1lc3BhY2UgPSBleHBvcnRlZC5uYW1lc3BhY2U7XG4gICAgICAgICAgZGVyZWZlcmVuY2UgPSBkZXJlZmVyZW5jZS5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgfSxcblxuICAgICAgVmFyaWFibGVEZWNsYXJhdG9yKHsgaWQsIGluaXQgfSkge1xuICAgICAgICBpZiAoaW5pdCA9PSBudWxsKSByZXR1cm47XG4gICAgICAgIGlmIChpbml0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuO1xuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGluaXQubmFtZSkpIHJldHVybjtcblxuICAgICAgICAvLyBjaGVjayBmb3IgcmVkZWZpbml0aW9uIGluIGludGVybWVkaWF0ZSBzY29wZXNcbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgaW5pdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVybjtcblxuICAgICAgICAvLyBERlMgdHJhdmVyc2UgY2hpbGQgbmFtZXNwYWNlc1xuICAgICAgICBmdW5jdGlvbiB0ZXN0S2V5KHBhdHRlcm4sIG5hbWVzcGFjZSwgcGF0aCA9IFtpbml0Lm5hbWVdKSB7XG4gICAgICAgICAgaWYgKCEobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cykpIHJldHVybjtcblxuICAgICAgICAgIGlmIChwYXR0ZXJuLnR5cGUgIT09ICdPYmplY3RQYXR0ZXJuJykgcmV0dXJuO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwYXR0ZXJuLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgcHJvcGVydHkudHlwZSA9PT0gJ0V4cGVyaW1lbnRhbFJlc3RQcm9wZXJ0eSdcbiAgICAgICAgICAgICAgfHwgcHJvcGVydHkudHlwZSA9PT0gJ1Jlc3RFbGVtZW50J1xuICAgICAgICAgICAgICB8fCAhcHJvcGVydHkua2V5XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5rZXkudHlwZSAhPT0gJ0lkZW50aWZpZXInKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnT25seSBkZXN0cnVjdHVyZSB0b3AtbGV2ZWwgbmFtZXMuJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW5hbWVzcGFjZS5oYXMocHJvcGVydHkua2V5Lm5hbWUpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBub2RlOiBwcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eS5rZXksIHBhdGgpLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgucHVzaChwcm9wZXJ0eS5rZXkubmFtZSk7XG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5RXhwb3J0TWFwID0gbmFtZXNwYWNlLmdldChwcm9wZXJ0eS5rZXkubmFtZSk7XG4gICAgICAgICAgICAvLyBjb3VsZCBiZSBudWxsIHdoZW4gaWdub3JlZCBvciBhbWJpZ3VvdXNcbiAgICAgICAgICAgIGlmIChkZXBlbmRlbmN5RXhwb3J0TWFwICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRlc3RLZXkocHJvcGVydHkudmFsdWUsIGRlcGVuZGVuY3lFeHBvcnRNYXAubmFtZXNwYWNlLCBwYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhdGgucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGVzdEtleShpZCwgbmFtZXNwYWNlcy5nZXQoaW5pdC5uYW1lKSk7XG4gICAgICB9LFxuXG4gICAgICBKU1hNZW1iZXJFeHByZXNzaW9uKHsgb2JqZWN0LCBwcm9wZXJ0eSB9KSB7XG4gICAgICAgIGlmICghbmFtZXNwYWNlcy5oYXMob2JqZWN0Lm5hbWUpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuZ2V0KG9iamVjdC5uYW1lKTtcbiAgICAgICAgaWYgKCFuYW1lc3BhY2UuaGFzKHByb3BlcnR5Lm5hbWUpKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZTogcHJvcGVydHksXG4gICAgICAgICAgICBtZXNzYWdlOiBtYWtlTWVzc2FnZShwcm9wZXJ0eSwgW29iamVjdC5uYW1lXSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js b/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js index d047a91e5c..1f389351d8 100644 --- a/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js +++ b/node_modules/eslint-plugin-import/lib/rules/newline-after-import.js @@ -47,6 +47,11 @@ function isExportDefaultClass(node) { return node.type === 'ExportDefaultDeclaration' && node.declaration.type === 'ClassDeclaration'; } +function isExportNameClass(node) { + + return node.type === 'ExportNamedDeclaration' && node.declaration && node.declaration.type === 'ClassDeclaration'; +} + module.exports = { meta: { type: 'layout', @@ -72,8 +77,8 @@ module.exports = { const requireCalls = []; function checkForNewLine(node, nextNode, type) { - if (isExportDefaultClass(nextNode)) { - let classNode = nextNode.declaration; + if (isExportDefaultClass(nextNode) || isExportNameClass(nextNode)) { + const classNode = nextNode.declaration; if (isClassWithDecorator(classNode)) { nextNode = classNode.decorators[0]; @@ -176,4 +181,4 @@ after ${type} statement not followed by another ${type}.`, 'Decorator:exit': decrementLevel }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uZXdsaW5lLWFmdGVyLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJjb250YWluc05vZGVPckVxdWFsIiwib3V0ZXJOb2RlIiwiaW5uZXJOb2RlIiwicmFuZ2UiLCJnZXRTY29wZUJvZHkiLCJzY29wZSIsImJsb2NrIiwidHlwZSIsImJvZHkiLCJmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkiLCJub2RlVG9GaW5kIiwiZmluZEluZGV4Iiwibm9kZSIsImdldExpbmVEaWZmZXJlbmNlIiwibmV4dE5vZGUiLCJsb2MiLCJzdGFydCIsImxpbmUiLCJlbmQiLCJpc0NsYXNzV2l0aERlY29yYXRvciIsImRlY29yYXRvcnMiLCJsZW5ndGgiLCJpc0V4cG9ydERlZmF1bHRDbGFzcyIsImRlY2xhcmF0aW9uIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJsZXZlbCIsInJlcXVpcmVDYWxscyIsImNoZWNrRm9yTmV3TGluZSIsImNsYXNzTm9kZSIsIm9wdGlvbnMiLCJjb3VudCIsImxpbmVEaWZmZXJlbmNlIiwiRVhQRUNURURfTElORV9ESUZGRVJFTkNFIiwiY29sdW1uIiwicmVwb3J0IiwibWVzc2FnZSIsImZpeCIsImZpeGVyIiwiaW5zZXJ0VGV4dEFmdGVyIiwicmVwZWF0IiwiaW5jcmVtZW50TGV2ZWwiLCJkZWNyZW1lbnRMZXZlbCIsImNoZWNrSW1wb3J0IiwicGFyZW50Iiwibm9kZVBvc2l0aW9uIiwiaW5kZXhPZiIsImlzRXhwb3J0IiwiSW1wb3J0RGVjbGFyYXRpb24iLCJUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJwdXNoIiwiZ2V0RmlsZW5hbWUiLCJzY29wZUJvZHkiLCJnZXRTY29wZSIsImZvckVhY2giLCJpbmRleCIsInN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCIsIm5leHRTdGF0ZW1lbnQiLCJuZXh0UmVxdWlyZUNhbGwiLCJGdW5jdGlvbkRlY2xhcmF0aW9uIiwiRnVuY3Rpb25FeHByZXNzaW9uIiwiQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24iLCJCbG9ja1N0YXRlbWVudCIsIk9iamVjdEV4cHJlc3Npb24iLCJEZWNvcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0Esc0Q7QUFDQSxxQzs7QUFFQSw4QjtBQUNBLE1BQU1BLE1BQU0scUJBQU0saURBQU4sQ0FBWjs7QUFFQTtBQUNBO0FBQ0E7QUFiQTs7O0dBZUEsU0FBU0MsbUJBQVQsQ0FBNkJDLFNBQTdCLEVBQXdDQyxTQUF4QyxFQUFtRCxDQUMvQyxPQUFPRCxVQUFVRSxLQUFWLENBQWdCLENBQWhCLEtBQXNCRCxVQUFVQyxLQUFWLENBQWdCLENBQWhCLENBQXRCLElBQTRDRixVQUFVRSxLQUFWLENBQWdCLENBQWhCLEtBQXNCRCxVQUFVQyxLQUFWLENBQWdCLENBQWhCLENBQXpFLENBQ0g7O0FBRUQsU0FBU0MsWUFBVCxDQUFzQkMsS0FBdEIsRUFBNkI7QUFDekIsTUFBSUEsTUFBTUMsS0FBTixDQUFZQyxJQUFaLEtBQXFCLGlCQUF6QixFQUE0QztBQUMxQ1IsUUFBSSxzQ0FBSjtBQUNBLFdBQU8sSUFBUDtBQUNELEdBSndCOztBQU1qQlMsTUFOaUIsR0FNUkgsTUFBTUMsS0FORSxDQU1qQkUsSUFOaUI7QUFPekIsTUFBSUEsUUFBUUEsS0FBS0QsSUFBTCxLQUFjLGdCQUExQixFQUE0QztBQUN4QyxXQUFPQyxLQUFLQSxJQUFaO0FBQ0g7O0FBRUQsU0FBT0EsSUFBUDtBQUNIOztBQUVELFNBQVNDLHdCQUFULENBQWtDRCxJQUFsQyxFQUF3Q0UsVUFBeEMsRUFBb0Q7QUFDaEQsU0FBT0YsS0FBS0csU0FBTCxDQUFnQkMsSUFBRCxJQUFVWixvQkFBb0JZLElBQXBCLEVBQTBCRixVQUExQixDQUF6QixDQUFQO0FBQ0g7O0FBRUQsU0FBU0csaUJBQVQsQ0FBMkJELElBQTNCLEVBQWlDRSxRQUFqQyxFQUEyQztBQUN6QyxTQUFPQSxTQUFTQyxHQUFULENBQWFDLEtBQWIsQ0FBbUJDLElBQW5CLEdBQTBCTCxLQUFLRyxHQUFMLENBQVNHLEdBQVQsQ0FBYUQsSUFBOUM7QUFDRDs7QUFFRCxTQUFTRSxvQkFBVCxDQUE4QlAsSUFBOUIsRUFBb0M7QUFDbEMsU0FBT0EsS0FBS0wsSUFBTCxLQUFjLGtCQUFkLElBQW9DSyxLQUFLUSxVQUF6QyxJQUF1RFIsS0FBS1EsVUFBTCxDQUFnQkMsTUFBOUU7QUFDRDs7QUFFRCxTQUFTQyxvQkFBVCxDQUE4QlYsSUFBOUIsRUFBb0M7QUFDbEMsU0FBT0EsS0FBS0wsSUFBTCxLQUFjLDBCQUFkLElBQTRDSyxLQUFLVyxXQUFMLENBQWlCaEIsSUFBakIsS0FBMEIsa0JBQTdFO0FBQ0Q7O0FBRURpQixPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSm5CLFVBQU0sUUFERjtBQUVKb0IsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHNCQUFSLENBREQsRUFGRjs7QUFLSkMsYUFBUyxZQUxMO0FBTUpDLFlBQVE7QUFDTjtBQUNFLGNBQVEsUUFEVjtBQUVFLG9CQUFjO0FBQ1osaUJBQVM7QUFDUCxrQkFBUSxTQUREO0FBRVAscUJBQVcsQ0FGSixFQURHLEVBRmhCOzs7QUFRRSw4QkFBd0IsS0FSMUIsRUFETSxDQU5KLEVBRFM7Ozs7QUFvQmZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixRQUFJQyxRQUFRLENBQVo7QUFDQSxVQUFNQyxlQUFlLEVBQXJCOztBQUVBLGFBQVNDLGVBQVQsQ0FBeUJ2QixJQUF6QixFQUErQkUsUUFBL0IsRUFBeUNQLElBQXpDLEVBQStDO0FBQzdDLFVBQUllLHFCQUFxQlIsUUFBckIsQ0FBSixFQUFvQztBQUNsQyxZQUFJc0IsWUFBWXRCLFNBQVNTLFdBQXpCOztBQUVBLFlBQUlKLHFCQUFxQmlCLFNBQXJCLENBQUosRUFBcUM7QUFDbkN0QixxQkFBV3NCLFVBQVVoQixVQUFWLENBQXFCLENBQXJCLENBQVg7QUFDRDtBQUNGLE9BTkQsTUFNTyxJQUFJRCxxQkFBcUJMLFFBQXJCLENBQUosRUFBb0M7QUFDekNBLG1CQUFXQSxTQUFTTSxVQUFULENBQW9CLENBQXBCLENBQVg7QUFDRDs7QUFFRCxZQUFNaUIsVUFBVUwsUUFBUUssT0FBUixDQUFnQixDQUFoQixLQUFzQixFQUFFQyxPQUFPLENBQVQsRUFBdEM7QUFDQSxZQUFNQyxpQkFBaUIxQixrQkFBa0JELElBQWxCLEVBQXdCRSxRQUF4QixDQUF2QjtBQUNBLFlBQU0wQiwyQkFBMkJILFFBQVFDLEtBQVIsR0FBZ0IsQ0FBakQ7O0FBRUEsVUFBSUMsaUJBQWlCQyx3QkFBckIsRUFBK0M7QUFDN0MsWUFBSUMsU0FBUzdCLEtBQUtHLEdBQUwsQ0FBU0MsS0FBVCxDQUFleUIsTUFBNUI7O0FBRUEsWUFBSTdCLEtBQUtHLEdBQUwsQ0FBU0MsS0FBVCxDQUFlQyxJQUFmLEtBQXdCTCxLQUFLRyxHQUFMLENBQVNHLEdBQVQsQ0FBYUQsSUFBekMsRUFBK0M7QUFDN0N3QixtQkFBUyxDQUFUO0FBQ0Q7O0FBRURULGdCQUFRVSxNQUFSLENBQWU7QUFDYjNCLGVBQUs7QUFDSEUsa0JBQU1MLEtBQUtHLEdBQUwsQ0FBU0csR0FBVCxDQUFhRCxJQURoQjtBQUVId0Isa0JBRkcsRUFEUTs7QUFLYkUsbUJBQVUsWUFBV04sUUFBUUMsS0FBTSxjQUFhRCxRQUFRQyxLQUFSLEdBQWdCLENBQWhCLEdBQW9CLEdBQXBCLEdBQTBCLEVBQUc7UUFDL0UvQixJQUFLLHNDQUFxQ0EsSUFBSyxHQU5oQztBQU9icUMsZUFBS0MsU0FBU0EsTUFBTUMsZUFBTjtBQUNabEMsY0FEWTtBQUVaLGVBQUttQyxNQUFMLENBQVlQLDJCQUEyQkQsY0FBdkMsQ0FGWSxDQVBELEVBQWY7OztBQVlEO0FBQ0Y7O0FBRUQsYUFBU1MsY0FBVCxHQUEwQjtBQUN4QmY7QUFDRDtBQUNELGFBQVNnQixjQUFULEdBQTBCO0FBQ3hCaEI7QUFDRDs7QUFFRCxhQUFTaUIsV0FBVCxDQUFxQnRDLElBQXJCLEVBQTJCO0FBQ2Z1QyxZQURlLEdBQ0p2QyxJQURJLENBQ2Z1QyxNQURlO0FBRXZCLFlBQU1DLGVBQWVELE9BQU8zQyxJQUFQLENBQVk2QyxPQUFaLENBQW9CekMsSUFBcEIsQ0FBckI7QUFDQSxZQUFNRSxXQUFXcUMsT0FBTzNDLElBQVAsQ0FBWTRDLGVBQWUsQ0FBM0IsQ0FBakI7O0FBRUE7QUFDQSxVQUFJeEMsS0FBS0wsSUFBTCxLQUFjLDJCQUFkLElBQTZDSyxLQUFLMEMsUUFBdEQsRUFBZ0U7QUFDOUQ7QUFDRDs7QUFFRCxVQUFJeEMsWUFBWUEsU0FBU1AsSUFBVCxLQUFrQixtQkFBOUIsS0FBc0RPLFNBQVNQLElBQVQsS0FBa0IsMkJBQWxCLElBQWlETyxTQUFTd0MsUUFBaEgsQ0FBSixFQUErSDtBQUM3SG5CLHdCQUFnQnZCLElBQWhCLEVBQXNCRSxRQUF0QixFQUFnQyxRQUFoQztBQUNEO0FBQ0o7O0FBRUQsV0FBTztBQUNMeUMseUJBQW1CTCxXQURkO0FBRUxNLGlDQUEyQk4sV0FGdEI7QUFHTE8sc0JBQWdCLFVBQVM3QyxJQUFULEVBQWU7QUFDN0IsWUFBSSw2QkFBZ0JBLElBQWhCLEtBQXlCcUIsVUFBVSxDQUF2QyxFQUEwQztBQUN4Q0MsdUJBQWF3QixJQUFiLENBQWtCOUMsSUFBbEI7QUFDRDtBQUNGLE9BUEk7QUFRTCxzQkFBZ0IsWUFBWTtBQUMxQmIsWUFBSSxxQkFBSixFQUEyQmlDLFFBQVEyQixXQUFSLEVBQTNCO0FBQ0EsY0FBTUMsWUFBWXhELGFBQWE0QixRQUFRNkIsUUFBUixFQUFiLENBQWxCO0FBQ0E5RCxZQUFJLFlBQUosRUFBa0I2RCxTQUFsQjs7QUFFQTFCLHFCQUFhNEIsT0FBYixDQUFxQixVQUFVbEQsSUFBVixFQUFnQm1ELEtBQWhCLEVBQXVCO0FBQzFDLGdCQUFNWCxlQUFlM0MseUJBQXlCbUQsU0FBekIsRUFBb0NoRCxJQUFwQyxDQUFyQjtBQUNBYixjQUFJLHlCQUFKLEVBQStCcUQsWUFBL0I7O0FBRUEsZ0JBQU1ZLDJCQUEyQkosVUFBVVIsWUFBVixDQUFqQztBQUNBLGdCQUFNYSxnQkFBZ0JMLFVBQVVSLGVBQWUsQ0FBekIsQ0FBdEI7QUFDQSxnQkFBTWMsa0JBQWtCaEMsYUFBYTZCLFFBQVEsQ0FBckIsQ0FBeEI7O0FBRUEsY0FBSUcsbUJBQW1CbEUsb0JBQW9CZ0Usd0JBQXBCLEVBQThDRSxlQUE5QyxDQUF2QixFQUF1RjtBQUNyRjtBQUNEOztBQUVELGNBQUlEO0FBQ0EsV0FBQ0MsZUFBRCxJQUFvQixDQUFDbEUsb0JBQW9CaUUsYUFBcEIsRUFBbUNDLGVBQW5DLENBRHJCLENBQUosRUFDK0U7O0FBRTdFL0IsNEJBQWdCNkIsd0JBQWhCLEVBQTBDQyxhQUExQyxFQUF5RCxTQUF6RDtBQUNEO0FBQ0YsU0FqQkQ7QUFrQkQsT0EvQkk7QUFnQ0xFLDJCQUFxQm5CLGNBaENoQjtBQWlDTG9CLDBCQUFvQnBCLGNBakNmO0FBa0NMcUIsK0JBQXlCckIsY0FsQ3BCO0FBbUNMc0Isc0JBQWdCdEIsY0FuQ1g7QUFvQ0x1Qix3QkFBa0J2QixjQXBDYjtBQXFDTHdCLGlCQUFXeEIsY0FyQ047QUFzQ0wsa0NBQTRCQyxjQXRDdkI7QUF1Q0wsaUNBQTJCQSxjQXZDdEI7QUF3Q0wsc0NBQWdDQSxjQXhDM0I7QUF5Q0wsNkJBQXVCQSxjQXpDbEI7QUEwQ0wsK0JBQXlCQSxjQTFDcEI7QUEyQ0wsd0JBQWtCQSxjQTNDYixFQUFQOztBQTZDRCxHQWhJYyxFQUFqQiIsImZpbGUiOiJuZXdsaW5lLWFmdGVyLWltcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGVuZm9yY2UgbmV3IGxpbmUgYWZ0ZXIgaW1wb3J0IG5vdCBmb2xsb3dlZCBieSBhbm90aGVyIGltcG9ydC5cbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnXG5jb25zdCBsb2cgPSBkZWJ1ZygnZXNsaW50LXBsdWdpbi1pbXBvcnQ6cnVsZXM6bmV3bGluZS1hZnRlci1pbXBvcnQnKVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBjb250YWluc05vZGVPckVxdWFsKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gICAgcmV0dXJuIG91dGVyTm9kZS5yYW5nZVswXSA8PSBpbm5lck5vZGUucmFuZ2VbMF0gJiYgb3V0ZXJOb2RlLnJhbmdlWzFdID49IGlubmVyTm9kZS5yYW5nZVsxXVxufVxuXG5mdW5jdGlvbiBnZXRTY29wZUJvZHkoc2NvcGUpIHtcbiAgICBpZiAoc2NvcGUuYmxvY2sudHlwZSA9PT0gJ1N3aXRjaFN0YXRlbWVudCcpIHtcbiAgICAgIGxvZygnU3dpdGNoU3RhdGVtZW50IHNjb3BlcyBub3Qgc3VwcG9ydGVkJylcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgeyBib2R5IH0gPSBzY29wZS5ibG9ja1xuICAgIGlmIChib2R5ICYmIGJvZHkudHlwZSA9PT0gJ0Jsb2NrU3RhdGVtZW50Jykge1xuICAgICAgICByZXR1cm4gYm9keS5ib2R5XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHlcbn1cblxuZnVuY3Rpb24gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KGJvZHksIG5vZGVUb0ZpbmQpIHtcbiAgICByZXR1cm4gYm9keS5maW5kSW5kZXgoKG5vZGUpID0+IGNvbnRhaW5zTm9kZU9yRXF1YWwobm9kZSwgbm9kZVRvRmluZCkpXG59XG5cbmZ1bmN0aW9uIGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKSB7XG4gIHJldHVybiBuZXh0Tm9kZS5sb2Muc3RhcnQubGluZSAtIG5vZGUubG9jLmVuZC5saW5lXG59XG5cbmZ1bmN0aW9uIGlzQ2xhc3NXaXRoRGVjb3JhdG9yKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0NsYXNzRGVjbGFyYXRpb24nICYmIG5vZGUuZGVjb3JhdG9ycyAmJiBub2RlLmRlY29yYXRvcnMubGVuZ3RoXG59XG5cbmZ1bmN0aW9uIGlzRXhwb3J0RGVmYXVsdENsYXNzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicgJiYgbm9kZS5kZWNsYXJhdGlvbi50eXBlID09PSAnQ2xhc3NEZWNsYXJhdGlvbidcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnbGF5b3V0JyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25ld2xpbmUtYWZ0ZXItaW1wb3J0JyksXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnd2hpdGVzcGFjZScsXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgICd0eXBlJzogJ29iamVjdCcsXG4gICAgICAgICdwcm9wZXJ0aWVzJzoge1xuICAgICAgICAgICdjb3VudCc6IHtcbiAgICAgICAgICAgICd0eXBlJzogJ2ludGVnZXInLFxuICAgICAgICAgICAgJ21pbmltdW0nOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgbGV0IGxldmVsID0gMFxuICAgIGNvbnN0IHJlcXVpcmVDYWxscyA9IFtdXG5cbiAgICBmdW5jdGlvbiBjaGVja0Zvck5ld0xpbmUobm9kZSwgbmV4dE5vZGUsIHR5cGUpIHtcbiAgICAgIGlmIChpc0V4cG9ydERlZmF1bHRDbGFzcyhuZXh0Tm9kZSkpIHtcbiAgICAgICAgbGV0IGNsYXNzTm9kZSA9IG5leHROb2RlLmRlY2xhcmF0aW9uXG5cbiAgICAgICAgaWYgKGlzQ2xhc3NXaXRoRGVjb3JhdG9yKGNsYXNzTm9kZSkpIHtcbiAgICAgICAgICBuZXh0Tm9kZSA9IGNsYXNzTm9kZS5kZWNvcmF0b3JzWzBdXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNDbGFzc1dpdGhEZWNvcmF0b3IobmV4dE5vZGUpKSB7XG4gICAgICAgIG5leHROb2RlID0gbmV4dE5vZGUuZGVjb3JhdG9yc1swXVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHsgY291bnQ6IDEgfVxuICAgICAgY29uc3QgbGluZURpZmZlcmVuY2UgPSBnZXRMaW5lRGlmZmVyZW5jZShub2RlLCBuZXh0Tm9kZSlcbiAgICAgIGNvbnN0IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSA9IG9wdGlvbnMuY291bnQgKyAxXG5cbiAgICAgIGlmIChsaW5lRGlmZmVyZW5jZSA8IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSkge1xuICAgICAgICBsZXQgY29sdW1uID0gbm9kZS5sb2Muc3RhcnQuY29sdW1uXG5cbiAgICAgICAgaWYgKG5vZGUubG9jLnN0YXJ0LmxpbmUgIT09IG5vZGUubG9jLmVuZC5saW5lKSB7XG4gICAgICAgICAgY29sdW1uID0gMFxuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGxvYzoge1xuICAgICAgICAgICAgbGluZTogbm9kZS5sb2MuZW5kLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgJHtvcHRpb25zLmNvdW50fSBlbXB0eSBsaW5lJHtvcHRpb25zLmNvdW50ID4gMSA/ICdzJyA6ICcnfSBcXFxuYWZ0ZXIgJHt0eXBlfSBzdGF0ZW1lbnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgJHt0eXBlfS5gLFxuICAgICAgICAgIGZpeDogZml4ZXIgPT4gZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICdcXG4nLnJlcGVhdChFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UgLSBsaW5lRGlmZmVyZW5jZSlcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwrK1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNyZW1lbnRMZXZlbCgpIHtcbiAgICAgIGxldmVsLS1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ltcG9ydChub2RlKSB7XG4gICAgICAgIGNvbnN0IHsgcGFyZW50IH0gPSBub2RlXG4gICAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IHBhcmVudC5ib2R5LmluZGV4T2Yobm9kZSlcbiAgICAgICAgY29uc3QgbmV4dE5vZGUgPSBwYXJlbnQuYm9keVtub2RlUG9zaXRpb24gKyAxXVxuICAgICAgICBcbiAgICAgICAgLy8gc2tpcCBcImV4cG9ydCBpbXBvcnRcInNcbiAgICAgICAgaWYgKG5vZGUudHlwZSA9PT0gJ1RTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24nICYmIG5vZGUuaXNFeHBvcnQpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXh0Tm9kZSAmJiBuZXh0Tm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nICYmIChuZXh0Tm9kZS50eXBlICE9PSAnVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbicgfHwgbmV4dE5vZGUuaXNFeHBvcnQpKSB7XG4gICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCAnaW1wb3J0JylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogY2hlY2tJbXBvcnQsXG4gICAgICBUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOiBjaGVja0ltcG9ydCxcbiAgICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkgJiYgbGV2ZWwgPT09IDApIHtcbiAgICAgICAgICByZXF1aXJlQ2FsbHMucHVzaChub2RlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9nKCdleGl0IHByb2Nlc3NpbmcgZm9yJywgY29udGV4dC5nZXRGaWxlbmFtZSgpKVxuICAgICAgICBjb25zdCBzY29wZUJvZHkgPSBnZXRTY29wZUJvZHkoY29udGV4dC5nZXRTY29wZSgpKVxuICAgICAgICBsb2coJ2dvdCBzY29wZTonLCBzY29wZUJvZHkpXG5cbiAgICAgICAgcmVxdWlyZUNhbGxzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUsIGluZGV4KSB7XG4gICAgICAgICAgY29uc3Qgbm9kZVBvc2l0aW9uID0gZmluZE5vZGVJbmRleEluU2NvcGVCb2R5KHNjb3BlQm9keSwgbm9kZSlcbiAgICAgICAgICBsb2coJ25vZGUgcG9zaXRpb24gaW4gc2NvcGU6Jywgbm9kZVBvc2l0aW9uKVxuXG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbl1cbiAgICAgICAgICBjb25zdCBuZXh0U3RhdGVtZW50ID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbiArIDFdXG4gICAgICAgICAgY29uc3QgbmV4dFJlcXVpcmVDYWxsID0gcmVxdWlyZUNhbGxzW2luZGV4ICsgMV1cblxuICAgICAgICAgIGlmIChuZXh0UmVxdWlyZUNhbGwgJiYgY29udGFpbnNOb2RlT3JFcXVhbChzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwsIG5leHRSZXF1aXJlQ2FsbCkpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChuZXh0U3RhdGVtZW50ICYmXG4gICAgICAgICAgICAgKCFuZXh0UmVxdWlyZUNhbGwgfHwgIWNvbnRhaW5zTm9kZU9yRXF1YWwobmV4dFN0YXRlbWVudCwgbmV4dFJlcXVpcmVDYWxsKSkpIHtcblxuICAgICAgICAgICAgY2hlY2tGb3JOZXdMaW5lKHN0YXRlbWVudFdpdGhSZXF1aXJlQ2FsbCwgbmV4dFN0YXRlbWVudCwgJ3JlcXVpcmUnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBCbG9ja1N0YXRlbWVudDogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBPYmplY3RFeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIERlY29yYXRvcjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQmxvY2tTdGF0ZW1lbnQ6ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ09iamVjdEV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0RlY29yYXRvcjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uZXdsaW5lLWFmdGVyLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJsb2ciLCJjb250YWluc05vZGVPckVxdWFsIiwib3V0ZXJOb2RlIiwiaW5uZXJOb2RlIiwicmFuZ2UiLCJnZXRTY29wZUJvZHkiLCJzY29wZSIsImJsb2NrIiwidHlwZSIsImJvZHkiLCJmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkiLCJub2RlVG9GaW5kIiwiZmluZEluZGV4Iiwibm9kZSIsImdldExpbmVEaWZmZXJlbmNlIiwibmV4dE5vZGUiLCJsb2MiLCJzdGFydCIsImxpbmUiLCJlbmQiLCJpc0NsYXNzV2l0aERlY29yYXRvciIsImRlY29yYXRvcnMiLCJsZW5ndGgiLCJpc0V4cG9ydERlZmF1bHRDbGFzcyIsImRlY2xhcmF0aW9uIiwiaXNFeHBvcnROYW1lQ2xhc3MiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsImxldmVsIiwicmVxdWlyZUNhbGxzIiwiY2hlY2tGb3JOZXdMaW5lIiwiY2xhc3NOb2RlIiwib3B0aW9ucyIsImNvdW50IiwibGluZURpZmZlcmVuY2UiLCJFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UiLCJjb2x1bW4iLCJyZXBvcnQiLCJtZXNzYWdlIiwiZml4IiwiZml4ZXIiLCJpbnNlcnRUZXh0QWZ0ZXIiLCJyZXBlYXQiLCJpbmNyZW1lbnRMZXZlbCIsImRlY3JlbWVudExldmVsIiwiY2hlY2tJbXBvcnQiLCJwYXJlbnQiLCJub2RlUG9zaXRpb24iLCJpbmRleE9mIiwiaXNFeHBvcnQiLCJJbXBvcnREZWNsYXJhdGlvbiIsIlRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24iLCJDYWxsRXhwcmVzc2lvbiIsInB1c2giLCJnZXRGaWxlbmFtZSIsInNjb3BlQm9keSIsImdldFNjb3BlIiwiZm9yRWFjaCIsImluZGV4Iiwic3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsIiwibmV4dFN0YXRlbWVudCIsIm5leHRSZXF1aXJlQ2FsbCIsIkZ1bmN0aW9uRGVjbGFyYXRpb24iLCJGdW5jdGlvbkV4cHJlc3Npb24iLCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiIsIkJsb2NrU3RhdGVtZW50IiwiT2JqZWN0RXhwcmVzc2lvbiIsIkRlY29yYXRvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxzRDtBQUNBLHFDOztBQUVBLDhCO0FBQ0EsTUFBTUEsTUFBTSxxQkFBTSxpREFBTixDQUFaOztBQUVBO0FBQ0E7QUFDQTtBQWJBOzs7R0FlQSxTQUFTQyxtQkFBVCxDQUE2QkMsU0FBN0IsRUFBd0NDLFNBQXhDLEVBQW1ELENBQ2pELE9BQU9ELFVBQVVFLEtBQVYsQ0FBZ0IsQ0FBaEIsS0FBc0JELFVBQVVDLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBdEIsSUFBNENGLFVBQVVFLEtBQVYsQ0FBZ0IsQ0FBaEIsS0FBc0JELFVBQVVDLEtBQVYsQ0FBZ0IsQ0FBaEIsQ0FBekUsQ0FDRDs7QUFFRCxTQUFTQyxZQUFULENBQXNCQyxLQUF0QixFQUE2QjtBQUMzQixNQUFJQSxNQUFNQyxLQUFOLENBQVlDLElBQVosS0FBcUIsaUJBQXpCLEVBQTRDO0FBQzFDUixRQUFJLHNDQUFKO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FKMEI7O0FBTW5CUyxNQU5tQixHQU1WSCxNQUFNQyxLQU5JLENBTW5CRSxJQU5tQjtBQU8zQixNQUFJQSxRQUFRQSxLQUFLRCxJQUFMLEtBQWMsZ0JBQTFCLEVBQTRDO0FBQzFDLFdBQU9DLEtBQUtBLElBQVo7QUFDRDs7QUFFRCxTQUFPQSxJQUFQO0FBQ0Q7O0FBRUQsU0FBU0Msd0JBQVQsQ0FBa0NELElBQWxDLEVBQXdDRSxVQUF4QyxFQUFvRDtBQUNsRCxTQUFPRixLQUFLRyxTQUFMLENBQWdCQyxJQUFELElBQVVaLG9CQUFvQlksSUFBcEIsRUFBMEJGLFVBQTFCLENBQXpCLENBQVA7QUFDRDs7QUFFRCxTQUFTRyxpQkFBVCxDQUEyQkQsSUFBM0IsRUFBaUNFLFFBQWpD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LEVBQWdCb0QsS0FBaEIsRUFBdUI7QUFDMUMsZ0JBQU1YLGVBQWU1Qyx5QkFBeUJvRCxTQUF6QixFQUFvQ2pELElBQXBDLENBQXJCO0FBQ0FiLGNBQUkseUJBQUosRUFBK0JzRCxZQUEvQjs7QUFFQSxnQkFBTVksMkJBQTJCSixVQUFVUixZQUFWLENBQWpDO0FBQ0EsZ0JBQU1hLGdCQUFnQkwsVUFBVVIsZUFBZSxDQUF6QixDQUF0QjtBQUNBLGdCQUFNYyxrQkFBa0JoQyxhQUFhNkIsUUFBUSxDQUFyQixDQUF4Qjs7QUFFQSxjQUFJRyxtQkFBbUJuRSxvQkFBb0JpRSx3QkFBcEIsRUFBOENFLGVBQTlDLENBQXZCLEVBQXVGO0FBQ3JGO0FBQ0Q7O0FBRUQsY0FBSUQ7QUFDQSxXQUFDQyxlQUFELElBQW9CLENBQUNuRSxvQkFBb0JrRSxhQUFwQixFQUFtQ0MsZUFBbkMsQ0FEckIsQ0FBSixFQUMrRTs7QUFFN0UvQiw0QkFBZ0I2Qix3QkFBaEIsRUFBMENDLGFBQTFDLEVBQXlELFNBQXpEO0FBQ0Q7QUFDRixTQWpCRDtBQWtCRCxPQS9CSTtBQWdDTEUsMkJBQXFCbkIsY0FoQ2hCO0FBaUNMb0IsMEJBQW9CcEIsY0FqQ2Y7QUFrQ0xxQiwrQkFBeUJyQixjQWxDcEI7QUFtQ0xzQixzQkFBZ0J0QixjQW5DWDtBQW9DTHVCLHdCQUFrQnZCLGNBcENiO0FBcUNMd0IsaUJBQVd4QixjQXJDTjtBQXNDTCxrQ0FBNEJDLGNBdEN2QjtBQXVDTCxpQ0FBMkJBLGNBdkN0QjtBQXdDTCxzQ0FBZ0NBLGNBeEMzQjtBQXlDTCw2QkFBdUJBLGNBekNsQjtBQTBDTCwrQkFBeUJBLGNBMUNwQjtBQTJDTCx3QkFBa0JBLGNBM0NiLEVBQVA7O0FBNkNELEdBaEljLEVBQWpCIiwiZmlsZSI6Im5ld2xpbmUtYWZ0ZXItaW1wb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZW5mb3JjZSBuZXcgbGluZSBhZnRlciBpbXBvcnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgaW1wb3J0LlxuICogQGF1dGhvciBSYWRlayBCZW5rZWxcbiAqL1xuXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSc7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmNvbnN0IGxvZyA9IGRlYnVnKCdlc2xpbnQtcGx1Z2luLWltcG9ydDpydWxlczpuZXdsaW5lLWFmdGVyLWltcG9ydCcpO1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBjb250YWluc05vZGVPckVxdWFsKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gIHJldHVybiBvdXRlck5vZGUucmFuZ2VbMF0gPD0gaW5uZXJOb2RlLnJhbmdlWzBdICYmIG91dGVyTm9kZS5yYW5nZVsxXSA+PSBpbm5lck5vZGUucmFuZ2VbMV07XG59XG5cbmZ1bmN0aW9uIGdldFNjb3BlQm9keShzY29wZSkge1xuICBpZiAoc2NvcGUuYmxvY2sudHlwZSA9PT0gJ1N3aXRjaFN0YXRlbWVudCcpIHtcbiAgICBsb2coJ1N3aXRjaFN0YXRlbWVudCBzY29wZXMgbm90IHN1cHBvcnRlZCcpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgeyBib2R5IH0gPSBzY29wZS5ibG9jaztcbiAgaWYgKGJvZHkgJiYgYm9keS50eXBlID09PSAnQmxvY2tTdGF0ZW1lbnQnKSB7XG4gICAgcmV0dXJuIGJvZHkuYm9keTtcbiAgfVxuXG4gIHJldHVybiBib2R5O1xufVxuXG5mdW5jdGlvbiBmaW5kTm9kZUluZGV4SW5TY29wZUJvZHkoYm9keSwgbm9kZVRvRmluZCkge1xuICByZXR1cm4gYm9keS5maW5kSW5kZXgoKG5vZGUpID0+IGNvbnRhaW5zTm9kZU9yRXF1YWwobm9kZSwgbm9kZVRvRmluZCkpO1xufVxuXG5mdW5jdGlvbiBnZXRMaW5lRGlmZmVyZW5jZShub2RlLCBuZXh0Tm9kZSkge1xuICByZXR1cm4gbmV4dE5vZGUubG9jLnN0YXJ0LmxpbmUgLSBub2RlLmxvYy5lbmQubGluZTtcbn1cblxuZnVuY3Rpb24gaXNDbGFzc1dpdGhEZWNvcmF0b3Iobm9kZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnQ2xhc3NEZWNsYXJhdGlvbicgJiYgbm9kZS5kZWNvcmF0b3JzICYmIG5vZGUuZGVjb3JhdG9ycy5sZW5ndGg7XG59XG5cbmZ1bmN0aW9uIGlzRXhwb3J0RGVmYXVsdENsYXNzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbicgJiYgbm9kZS5kZWNsYXJhdGlvbi50eXBlID09PSAnQ2xhc3NEZWNsYXJhdGlvbic7XG59XG5cbmZ1bmN0aW9uIGlzRXhwb3J0TmFtZUNsYXNzKG5vZGUpIHtcbiAgXG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJyAmJiBub2RlLmRlY2xhcmF0aW9uICYmIG5vZGUuZGVjbGFyYXRpb24udHlwZSA9PT0gJ0NsYXNzRGVjbGFyYXRpb24nO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdsYXlvdXQnLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbmV3bGluZS1hZnRlci1pbXBvcnQnKSxcbiAgICB9LFxuICAgIGZpeGFibGU6ICd3aGl0ZXNwYWNlJyxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICAgJ2NvdW50Jzoge1xuICAgICAgICAgICAgJ3R5cGUnOiAnaW50ZWdlcicsXG4gICAgICAgICAgICAnbWluaW11bSc6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBsZXQgbGV2ZWwgPSAwO1xuICAgIGNvbnN0IHJlcXVpcmVDYWxscyA9IFtdO1xuXG4gICAgZnVuY3Rpb24gY2hlY2tGb3JOZXdMaW5lKG5vZGUsIG5leHROb2RlLCB0eXBlKSB7XG4gICAgICBpZiAoaXNFeHBvcnREZWZhdWx0Q2xhc3MobmV4dE5vZGUpIHx8IGlzRXhwb3J0TmFtZUNsYXNzKG5leHROb2RlKSkge1xuICAgICAgICBjb25zdCBjbGFzc05vZGUgPSBuZXh0Tm9kZS5kZWNsYXJhdGlvbjtcblxuICAgICAgICBpZiAoaXNDbGFzc1dpdGhEZWNvcmF0b3IoY2xhc3NOb2RlKSkge1xuICAgICAgICAgIG5leHROb2RlID0gY2xhc3NOb2RlLmRlY29yYXRvcnNbMF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNDbGFzc1dpdGhEZWNvcmF0b3IobmV4dE5vZGUpKSB7XG4gICAgICAgIG5leHROb2RlID0gbmV4dE5vZGUuZGVjb3JhdG9yc1swXTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7IGNvdW50OiAxIH07XG4gICAgICBjb25zdCBsaW5lRGlmZmVyZW5jZSA9IGdldExpbmVEaWZmZXJlbmNlKG5vZGUsIG5leHROb2RlKTtcbiAgICAgIGNvbnN0IEVYUEVDVEVEX0xJTkVfRElGRkVSRU5DRSA9IG9wdGlvbnMuY291bnQgKyAxO1xuXG4gICAgICBpZiAobGluZURpZmZlcmVuY2UgPCBFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UpIHtcbiAgICAgICAgbGV0IGNvbHVtbiA9IG5vZGUubG9jLnN0YXJ0LmNvbHVtbjtcblxuICAgICAgICBpZiAobm9kZS5sb2Muc3RhcnQubGluZSAhPT0gbm9kZS5sb2MuZW5kLmxpbmUpIHtcbiAgICAgICAgICBjb2x1bW4gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGxvYzoge1xuICAgICAgICAgICAgbGluZTogbm9kZS5sb2MuZW5kLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXNzYWdlOiBgRXhwZWN0ZWQgJHtvcHRpb25zLmNvdW50fSBlbXB0eSBsaW5lJHtvcHRpb25zLmNvdW50ID4gMSA/ICdzJyA6ICcnfSBcXFxuYWZ0ZXIgJHt0eXBlfSBzdGF0ZW1lbnQgbm90IGZvbGxvd2VkIGJ5IGFub3RoZXIgJHt0eXBlfS5gLFxuICAgICAgICAgIGZpeDogZml4ZXIgPT4gZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICdcXG4nLnJlcGVhdChFWFBFQ1RFRF9MSU5FX0RJRkZFUkVOQ0UgLSBsaW5lRGlmZmVyZW5jZSlcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbmNyZW1lbnRMZXZlbCgpIHtcbiAgICAgIGxldmVsKys7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwtLTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ltcG9ydChub2RlKSB7XG4gICAgICBjb25zdCB7IHBhcmVudCB9ID0gbm9kZTtcbiAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IHBhcmVudC5ib2R5LmluZGV4T2Yobm9kZSk7XG4gICAgICBjb25zdCBuZXh0Tm9kZSA9IHBhcmVudC5ib2R5W25vZGVQb3NpdGlvbiArIDFdO1xuICAgICAgICBcbiAgICAgIC8vIHNraXAgXCJleHBvcnQgaW1wb3J0XCJzXG4gICAgICBpZiAobm9kZS50eXBlID09PSAnVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbicgJiYgbm9kZS5pc0V4cG9ydCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXh0Tm9kZSAmJiBuZXh0Tm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nICYmIChuZXh0Tm9kZS50eXBlICE9PSAnVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbicgfHwgbmV4dE5vZGUuaXNFeHBvcnQpKSB7XG4gICAgICAgIGNoZWNrRm9yTmV3TGluZShub2RlLCBuZXh0Tm9kZSwgJ2ltcG9ydCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogY2hlY2tJbXBvcnQsXG4gICAgICBUU0ltcG9ydEVxdWFsc0RlY2xhcmF0aW9uOiBjaGVja0ltcG9ydCxcbiAgICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkgJiYgbGV2ZWwgPT09IDApIHtcbiAgICAgICAgICByZXF1aXJlQ2FsbHMucHVzaChub2RlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxvZygnZXhpdCBwcm9jZXNzaW5nIGZvcicsIGNvbnRleHQuZ2V0RmlsZW5hbWUoKSk7XG4gICAgICAgIGNvbnN0IHNjb3BlQm9keSA9IGdldFNjb3BlQm9keShjb250ZXh0LmdldFNjb3BlKCkpO1xuICAgICAgICBsb2coJ2dvdCBzY29wZTonLCBzY29wZUJvZHkpO1xuXG4gICAgICAgIHJlcXVpcmVDYWxscy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlLCBpbmRleCkge1xuICAgICAgICAgIGNvbnN0IG5vZGVQb3NpdGlvbiA9IGZpbmROb2RlSW5kZXhJblNjb3BlQm9keShzY29wZUJvZHksIG5vZGUpO1xuICAgICAgICAgIGxvZygnbm9kZSBwb3NpdGlvbiBpbiBzY29wZTonLCBub2RlUG9zaXRpb24pO1xuXG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50V2l0aFJlcXVpcmVDYWxsID0gc2NvcGVCb2R5W25vZGVQb3NpdGlvbl07XG4gICAgICAgICAgY29uc3QgbmV4dFN0YXRlbWVudCA9IHNjb3BlQm9keVtub2RlUG9zaXRpb24gKyAxXTtcbiAgICAgICAgICBjb25zdCBuZXh0UmVxdWlyZUNhbGwgPSByZXF1aXJlQ2FsbHNbaW5kZXggKyAxXTtcblxuICAgICAgICAgIGlmIChuZXh0UmVxdWlyZUNhbGwgJiYgY29udGFpbnNOb2RlT3JFcXVhbChzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwsIG5leHRSZXF1aXJlQ2FsbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobmV4dFN0YXRlbWVudCAmJlxuICAgICAgICAgICAgICghbmV4dFJlcXVpcmVDYWxsIHx8ICFjb250YWluc05vZGVPckVxdWFsKG5leHRTdGF0ZW1lbnQsIG5leHRSZXF1aXJlQ2FsbCkpKSB7XG5cbiAgICAgICAgICAgIGNoZWNrRm9yTmV3TGluZShzdGF0ZW1lbnRXaXRoUmVxdWlyZUNhbGwsIG5leHRTdGF0ZW1lbnQsICdyZXF1aXJlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEZ1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBCbG9ja1N0YXRlbWVudDogaW5jcmVtZW50TGV2ZWwsXG4gICAgICBPYmplY3RFeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIERlY29yYXRvcjogaW5jcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25EZWNsYXJhdGlvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnRnVuY3Rpb25FeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQmxvY2tTdGF0ZW1lbnQ6ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ09iamVjdEV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0RlY29yYXRvcjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js b/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js index ff1cb22c77..5a2c8cd426 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-absolute-path.js @@ -21,4 +21,4 @@ module.exports = { const options = Object.assign({ esmodule: true, commonjs: true }, context.options[0]); return (0, _moduleVisitor2.default)(reportIfAbsolute, options); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hYnNvbHV0ZS1wYXRoLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwicmVwb3J0SWZBYnNvbHV0ZSIsInNvdXJjZSIsInZhbHVlIiwicmVwb3J0Iiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImVzbW9kdWxlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiJhQUFBLGtFO0FBQ0E7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsa0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLENBQUUsdUNBQUYsQ0FMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLGFBQVNDLGdCQUFULENBQTBCQyxNQUExQixFQUFrQztBQUNoQyxVQUFJLE9BQU9BLE9BQU9DLEtBQWQsS0FBd0IsUUFBeEIsSUFBb0MsNEJBQVdELE9BQU9DLEtBQWxCLENBQXhDLEVBQWtFO0FBQ2hFSCxnQkFBUUksTUFBUixDQUFlRixNQUFmLEVBQXVCLDhDQUF2QjtBQUNEO0FBQ0Y7O0FBRUQsVUFBTUcsVUFBVUMsT0FBT0MsTUFBUCxDQUFjLEVBQUVDLFVBQVUsSUFBWixFQUFrQkMsVUFBVSxJQUE1QixFQUFkLEVBQWtEVCxRQUFRSyxPQUFSLENBQWdCLENBQWhCLENBQWxELENBQWhCO0FBQ0EsV0FBTyw2QkFBY0osZ0JBQWQsRUFBZ0NJLE9BQWhDLENBQVA7QUFDRCxHQWxCYyxFQUFqQiIsImZpbGUiOiJuby1hYnNvbHV0ZS1wYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InXG5pbXBvcnQgeyBpc0Fic29sdXRlIH0gZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1hYnNvbHV0ZS1wYXRoJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFsgbWFrZU9wdGlvbnNTY2hlbWEoKSBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiByZXBvcnRJZkFic29sdXRlKHNvdXJjZSkge1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnICYmIGlzQWJzb2x1dGUoc291cmNlLnZhbHVlKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsICdEbyBub3QgaW1wb3J0IG1vZHVsZXMgdXNpbmcgYW4gYWJzb2x1dGUgcGF0aCcpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBlc21vZHVsZTogdHJ1ZSwgY29tbW9uanM6IHRydWUgfSwgY29udGV4dC5vcHRpb25zWzBdKVxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKHJlcG9ydElmQWJzb2x1dGUsIG9wdGlvbnMpXG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hYnNvbHV0ZS1wYXRoLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwicmVwb3J0SWZBYnNvbHV0ZSIsInNvdXJjZSIsInZhbHVlIiwicmVwb3J0Iiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImVzbW9kdWxlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiJhQUFBLGtFO0FBQ0E7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsa0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLENBQUUsdUNBQUYsQ0FMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLGFBQVNDLGdCQUFULENBQTBCQyxNQUExQixFQUFrQztBQUNoQyxVQUFJLE9BQU9BLE9BQU9DLEtBQWQsS0FBd0IsUUFBeEIsSUFBb0MsNEJBQVdELE9BQU9DLEtBQWxCLENBQXhDLEVBQWtFO0FBQ2hFSCxnQkFBUUksTUFBUixDQUFlRixNQUFmLEVBQXVCLDhDQUF2QjtBQUNEO0FBQ0Y7O0FBRUQsVUFBTUcsVUFBVUMsT0FBT0MsTUFBUCxDQUFjLEVBQUVDLFVBQVUsSUFBWixFQUFrQkMsVUFBVSxJQUE1QixFQUFkLEVBQWtEVCxRQUFRSyxPQUFSLENBQWdCLENBQWhCLENBQWxELENBQWhCO0FBQ0EsV0FBTyw2QkFBY0osZ0JBQWQsRUFBZ0NJLE9BQWhDLENBQVA7QUFDRCxHQWxCYyxFQUFqQiIsImZpbGUiOiJuby1hYnNvbHV0ZS1wYXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IHsgaXNBYnNvbHV0ZSB9IGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSc7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1hYnNvbHV0ZS1wYXRoJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFsgbWFrZU9wdGlvbnNTY2hlbWEoKSBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiByZXBvcnRJZkFic29sdXRlKHNvdXJjZSkge1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnICYmIGlzQWJzb2x1dGUoc291cmNlLnZhbHVlKSkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsICdEbyBub3QgaW1wb3J0IG1vZHVsZXMgdXNpbmcgYW4gYWJzb2x1dGUgcGF0aCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgZXNtb2R1bGU6IHRydWUsIGNvbW1vbmpzOiB0cnVlIH0sIGNvbnRleHQub3B0aW9uc1swXSk7XG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IocmVwb3J0SWZBYnNvbHV0ZSwgb3B0aW9ucyk7XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-amd.js b/node_modules/eslint-plugin-import/lib/rules/no-amd.js index 4eca3f4616..0ca36c7fce 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-amd.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-amd.js @@ -43,4 +43,4 @@ module.exports = { * @fileoverview Rule to prefer imports to AMD * @author Jamund Ferguson */ -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbWQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJub2RlIiwiZ2V0U2NvcGUiLCJjYWxsZWUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwibW9kdWxlcyIsInJlcG9ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFFBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0wsd0JBQWtCLFVBQVVDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSUQsUUFBUUUsUUFBUixHQUFtQlAsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFlBQUlNLEtBQUtFLE1BQUwsQ0FBWVIsSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxZQUFJTSxLQUFLRSxNQUFMLENBQVlDLElBQVosS0FBcUIsU0FBckI7QUFDQUgsYUFBS0UsTUFBTCxDQUFZQyxJQUFaLEtBQXFCLFFBRHpCLEVBQ21DOztBQUVuQztBQUNBLFlBQUlILEtBQUtJLFNBQUwsQ0FBZUMsTUFBZixLQUEwQixDQUE5QixFQUFpQzs7QUFFakMsY0FBTUMsVUFBVU4sS0FBS0ksU0FBTCxDQUFlLENBQWYsQ0FBaEI7QUFDQSxZQUFJRSxRQUFRWixJQUFSLEtBQWlCLGlCQUFyQixFQUF3Qzs7QUFFeEM7O0FBRUFLLGdCQUFRUSxNQUFSLENBQWVQLElBQWYsRUFBc0IsbUNBQWtDQSxLQUFLRSxNQUFMLENBQVlDLElBQUssS0FBekU7QUFDRCxPQWpCSSxFQUFQOzs7QUFvQkQsR0E5QmMsRUFBakIsQyxDQVhBIiwiZmlsZSI6Im5vLWFtZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBpbXBvcnRzIHRvIEFNRFxuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUnVsZSBEZWZpbml0aW9uXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFtZCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmdldFNjb3BlKCkudHlwZSAhPT0gJ21vZHVsZScpIHJldHVyblxuXG4gICAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAobm9kZS5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnICYmXG4gICAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuXG5cbiAgICAgICAgLy8gdG9kbzogY2FwdHVyZSBkZWZpbmUoKHJlcXVpcmUsIG1vZHVsZSwgZXhwb3J0cykgPT4ge30pIGZvcm0/XG4gICAgICAgIGlmIChub2RlLmFyZ3VtZW50cy5sZW5ndGggIT09IDIpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IG1vZHVsZXMgPSBub2RlLmFyZ3VtZW50c1swXVxuICAgICAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuXG5cbiAgICAgICAgLy8gdG9kbzogY2hlY2sgc2Vjb25kIGFyZyB0eXBlPyAoaWRlbnRpZmllciBvciBjYWxsYmFjaylcblxuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwZWN0ZWQgaW1wb3J0cyBpbnN0ZWFkIG9mIEFNRCAke25vZGUuY2FsbGVlLm5hbWV9KCkuYClcbiAgICAgIH0sXG4gICAgfVxuXG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbWQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJub2RlIiwiZ2V0U2NvcGUiLCJjYWxsZWUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwibW9kdWxlcyIsInJlcG9ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLFFBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0wsd0JBQWtCLFVBQVVDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSUQsUUFBUUUsUUFBUixHQUFtQlAsSUFBbkIsS0FBNEIsUUFBaEMsRUFBMEM7O0FBRTFDLFlBQUlNLEtBQUtFLE1BQUwsQ0FBWVIsSUFBWixLQUFxQixZQUF6QixFQUF1QztBQUN2QyxZQUFJTSxLQUFLRSxNQUFMLENBQVlDLElBQVosS0FBcUIsU0FBckI7QUFDQUgsYUFBS0UsTUFBTCxDQUFZQyxJQUFaLEtBQXFCLFFBRHpCLEVBQ21DOztBQUVuQztBQUNBLFlBQUlILEtBQUtJLFNBQUwsQ0FBZUMsTUFBZixLQUEwQixDQUE5QixFQUFpQzs7QUFFakMsY0FBTUMsVUFBVU4sS0FBS0ksU0FBTCxDQUFlLENBQWYsQ0FBaEI7QUFDQSxZQUFJRSxRQUFRWixJQUFSLEtBQWlCLGlCQUFyQixFQUF3Qzs7QUFFeEM7O0FBRUFLLGdCQUFRUSxNQUFSLENBQWVQLElBQWYsRUFBc0IsbUNBQWtDQSxLQUFLRSxNQUFMLENBQVlDLElBQUssS0FBekU7QUFDRCxPQWpCSSxFQUFQOzs7QUFvQkQsR0E5QmMsRUFBakIsQyxDQVhBIiwiZmlsZSI6Im5vLWFtZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBpbXBvcnRzIHRvIEFNRFxuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1hbWQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICAnQ2FsbEV4cHJlc3Npb24nOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAoY29udGV4dC5nZXRTY29wZSgpLnR5cGUgIT09ICdtb2R1bGUnKSByZXR1cm47XG5cbiAgICAgICAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuO1xuICAgICAgICBpZiAobm9kZS5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnICYmXG4gICAgICAgICAgICBub2RlLmNhbGxlZS5uYW1lICE9PSAnZGVmaW5lJykgcmV0dXJuO1xuXG4gICAgICAgIC8vIHRvZG86IGNhcHR1cmUgZGVmaW5lKChyZXF1aXJlLCBtb2R1bGUsIGV4cG9ydHMpID0+IHt9KSBmb3JtP1xuICAgICAgICBpZiAobm9kZS5hcmd1bWVudHMubGVuZ3RoICE9PSAyKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgbW9kdWxlcyA9IG5vZGUuYXJndW1lbnRzWzBdO1xuICAgICAgICBpZiAobW9kdWxlcy50eXBlICE9PSAnQXJyYXlFeHByZXNzaW9uJykgcmV0dXJuO1xuXG4gICAgICAgIC8vIHRvZG86IGNoZWNrIHNlY29uZCBhcmcgdHlwZT8gKGlkZW50aWZpZXIgb3IgY2FsbGJhY2spXG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgYEV4cGVjdGVkIGltcG9ydHMgaW5zdGVhZCBvZiBBTUQgJHtub2RlLmNhbGxlZS5uYW1lfSgpLmApO1xuICAgICAgfSxcbiAgICB9O1xuXG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js b/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js index 0c2b7dac28..e5abf81b14 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-anonymous-default-export.js @@ -101,4 +101,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsiZGVmcyIsIkFycmF5RXhwcmVzc2lvbiIsIm9wdGlvbiIsImRlc2NyaXB0aW9uIiwibWVzc2FnZSIsIkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJkZWZhdWx0IiwiQ2xhc3NEZWNsYXJhdGlvbiIsImZvcmJpZCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImlkIiwiRnVuY3Rpb25EZWNsYXJhdGlvbiIsIkxpdGVyYWwiLCJPYmplY3RFeHByZXNzaW9uIiwiVGVtcGxhdGVMaXRlcmFsIiwic2NoZW1hUHJvcGVydGllcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJyZWR1Y2UiLCJhY2MiLCJkZWYiLCJ0eXBlIiwiZGVmYXVsdHMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhc3NpZ24iLCJyZXBvcnQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EscUM7QUFDQSwwQix1SUFOQTs7O29LQVFBLE1BQU1BLE9BQU8sRUFDWEMsaUJBQWlCO0FBQ2ZDLFlBQVEsWUFETztBQUVmQyxpQkFBYSxvREFGRTtBQUdmQyxhQUFTLCtEQUhNLEVBRE47O0FBTVhDLDJCQUF5QjtBQUN2QkgsWUFBUSxvQkFEZTtBQUV2QkMsaUJBQWEsNkRBRlU7QUFHdkJDLGFBQVMsd0VBSGMsRUFOZDs7QUFXWEUsa0JBQWdCO0FBQ2RKLFlBQVEscUJBRE07QUFFZEMsaUJBQWEsMkRBRkM7QUFHZEMsYUFBUyxxRUFISztBQUlkRyxhQUFTLElBSkssRUFYTDs7QUFpQlhDLG9CQUFrQjtBQUNoQk4sWUFBUSxxQkFEUTtBQUVoQkMsaUJBQWEsOERBRkc7QUFHaEJDLGFBQVMsOENBSE87QUFJaEJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQyxFQUpwQixFQWpCUDs7QUF1QlhDLHVCQUFxQjtBQUNuQlgsWUFBUSx3QkFEVztBQUVuQkMsaUJBQWEsaUVBRk07QUFHbkJDLGFBQVMsaURBSFU7QUFJbkJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQyxFQUpqQixFQXZCVjs7QUE2QlhFLFdBQVM7QUFDUFosWUFBUSxjQUREO0FBRVBDLGlCQUFhLHFEQUZOO0FBR1BDLGFBQVMsaUVBSEYsRUE3QkU7O0FBa0NYVyxvQkFBa0I7QUFDaEJiLFlBQVEsYUFEUTtBQUVoQkMsaUJBQWEsZ0VBRkc7QUFHaEJDLGFBQVMsZ0VBSE8sRUFsQ1A7O0FBdUNYWSxtQkFBaUI7QUFDZmQsWUFBUSxjQURPO0FBRWZDLGlCQUFhLHFEQUZFO0FBR2ZDLGFBQVMsaUVBSE0sRUF2Q04sRUFBYjs7OztBQThDQSxNQUFNYSxtQkFBbUJDLE9BQU9DLElBQVAsQ0FBWW5CLElBQVo7QUFDdEJvQixHQURzQixDQUNqQkMsR0FBRCxJQUFTckIsS0FBS3FCLEdBQUwsQ0FEUztBQUV0QkMsTUFGc0IsQ0FFZixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUNwQkQsTUFBSUMsSUFBSXRCLE1BQVIsSUFBa0I7QUFDaEJDLGlCQUFhcUIsSUFBSXJCLFdBREQ7QUFFaEJzQixVQUFNLFNBRlUsRUFBbEI7OztBQUtBLFNBQU9GLEdBQVA7QUFDRCxDQVRzQixFQVNwQixFQVRvQixDQUF6Qjs7QUFXQSxNQUFNRyxXQUFXUixPQUFPQyxJQUFQLENBQVluQixJQUFaO0FBQ2RvQixHQURjLENBQ1RDLEdBQUQsSUFBU3JCLEtBQUtxQixHQUFMLENBREM7QUFFZEMsTUFGYyxDQUVQLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQ3BCRCxNQUFJQyxJQUFJdEIsTUFBUixJQUFrQixtQkFBSXNCLEdBQUosRUFBUyxTQUFULElBQXNCQSxJQUFJakIsT0FBMUIsR0FBb0MsS0FBdEQ7QUFDQSxTQUFPZ0IsR0FBUDtBQUNELENBTGMsRUFLWixFQUxZLENBQWpCOztBQU9BSSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkosVUFBTSxZQURGO0FBRUpLLFVBQU07QUFDSkMsV0FBSyx1QkFBUSw2QkFBUixDQURELEVBRkY7OztBQU1KQyxZQUFRO0FBQ047QUFDRVAsWUFBTSxRQURSO0FBRUVRLGtCQUFZaEIsZ0JBRmQ7QUFHRSw4QkFBd0IsS0FIMUIsRUFETSxDQU5KLEVBRFM7Ozs7O0FBZ0JmaUIsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1DLFVBQVVsQixPQUFPbUIsTUFBUCxDQUFjLEVBQWQsRUFBa0JYLFFBQWxCLEVBQTRCUyxRQUFRQyxPQUFSLENBQWdCLENBQWhCLENBQTVCLENBQWhCOztBQUVBLFdBQU87QUFDTCxrQ0FBNkIxQixJQUFELElBQVU7QUFDcEMsY0FBTWMsTUFBTXhCLEtBQUtVLEtBQUtDLFdBQUwsQ0FBaUJjLElBQXRCLENBQVo7O0FBRUE7QUFDQTtBQUNBLFlBQUlELE9BQU8sQ0FBQ1ksUUFBUVosSUFBSXRCLE1BQVosQ0FBUixLQUFnQyxDQUFDc0IsSUFBSWYsTUFBTCxJQUFlZSxJQUFJZixNQUFKLENBQVdDLElBQVgsQ0FBL0MsQ0FBSixFQUFzRTtBQUNwRXlCLGtCQUFRRyxNQUFSLENBQWUsRUFBRTVCLElBQUYsRUFBUU4sU0FBU29CLElBQUlwQixPQUFyQixFQUFmO0FBQ0Q7QUFDRixPQVRJLEVBQVA7O0FBV0QsR0E5QmMsRUFBakIiLCJmaWxlIjoibm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZGlzYWxsb3cgYW5vbnltb3VzIGRlZmF1bHQgZXhwb3J0cy5cbiAqIEBhdXRob3IgRHVuY2FuIEJlZXZlcnNcbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IGhhcyBmcm9tICdoYXMnXG5cbmNvbnN0IGRlZnMgPSB7XG4gIEFycmF5RXhwcmVzc2lvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QXJyYXknLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYXJyYXknLFxuICAgIG1lc3NhZ2U6ICdBc3NpZ24gYXJyYXkgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd0Fycm93RnVuY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYXJyb3cgZnVuY3Rpb24nLFxuICAgIG1lc3NhZ2U6ICdBc3NpZ24gYXJyb3cgZnVuY3Rpb24gdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgQ2FsbEV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd0NhbGxFeHByZXNzaW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgZnVuY3Rpb24gY2FsbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBjYWxsIHJlc3VsdCB0byBhIHZhcmlhYmxlIGJlZm9yZSBleHBvcnRpbmcgYXMgbW9kdWxlIGRlZmF1bHQnLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIENsYXNzRGVjbGFyYXRpb246IHtcbiAgICBvcHRpb246ICdhbGxvd0Fub255bW91c0NsYXNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGFuIGFub255bW91cyBjbGFzcycsXG4gICAgbWVzc2FnZTogJ1VuZXhwZWN0ZWQgZGVmYXVsdCBleHBvcnQgb2YgYW5vbnltb3VzIGNsYXNzJyxcbiAgICBmb3JiaWQ6IChub2RlKSA9PiAhbm9kZS5kZWNsYXJhdGlvbi5pZCxcbiAgfSxcbiAgRnVuY3Rpb25EZWNsYXJhdGlvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QW5vbnltb3VzRnVuY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYW5vbnltb3VzIGZ1bmN0aW9uJyxcbiAgICBtZXNzYWdlOiAnVW5leHBlY3RlZCBkZWZhdWx0IGV4cG9ydCBvZiBhbm9ueW1vdXMgZnVuY3Rpb24nLFxuICAgIGZvcmJpZDogKG5vZGUpID0+ICFub2RlLmRlY2xhcmF0aW9uLmlkLFxuICB9LFxuICBMaXRlcmFsOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dMaXRlcmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgbGl0ZXJhbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBsaXRlcmFsIHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gIH0sXG4gIE9iamVjdEV4cHJlc3Npb246IHtcbiAgICBvcHRpb246ICdhbGxvd09iamVjdCcsXG4gICAgZGVzY3JpcHRpb246ICdJZiBgZmFsc2VgLCB3aWxsIHJlcG9ydCBkZWZhdWx0IGV4cG9ydCBvZiBhbiBvYmplY3QgZXhwcmVzc2lvbicsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBvYmplY3QgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgVGVtcGxhdGVMaXRlcmFsOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dMaXRlcmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGEgbGl0ZXJhbCcsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBsaXRlcmFsIHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gIH0sXG59XG5cbmNvbnN0IHNjaGVtYVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhkZWZzKVxuICAubWFwKChrZXkpID0+IGRlZnNba2V5XSlcbiAgLnJlZHVjZSgoYWNjLCBkZWYpID0+IHtcbiAgICBhY2NbZGVmLm9wdGlvbl0gPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH1cblxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbmNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmtleXMoZGVmcylcbiAgLm1hcCgoa2V5KSA9PiBkZWZzW2tleV0pXG4gIC5yZWR1Y2UoKGFjYywgZGVmKSA9PiB7XG4gICAgYWNjW2RlZi5vcHRpb25dID0gaGFzKGRlZiwgJ2RlZmF1bHQnKSA/IGRlZi5kZWZhdWx0IDogZmFsc2VcbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHNjaGVtYVByb3BlcnRpZXMsXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIGNvbnRleHQub3B0aW9uc1swXSlcblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogKG5vZGUpID0+IHtcbiAgICAgICAgY29uc3QgZGVmID0gZGVmc1tub2RlLmRlY2xhcmF0aW9uLnR5cGVdXG5cbiAgICAgICAgLy8gUmVjb2duaXplZCBub2RlIHR5cGUgYW5kIGFsbG93ZWQgYnkgY29uZmlndXJhdGlvbixcbiAgICAgICAgLy8gICBhbmQgaGFzIG5vIGZvcmJpZCBjaGVjaywgb3IgZm9yYmlkIGNoZWNrIHJldHVybiB2YWx1ZSBpcyB0cnV0aHlcbiAgICAgICAgaWYgKGRlZiAmJiAhb3B0aW9uc1tkZWYub3B0aW9uXSAmJiAoIWRlZi5mb3JiaWQgfHwgZGVmLmZvcmJpZChub2RlKSkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IGRlZi5tZXNzYWdlIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsiZGVmcyIsIkFycmF5RXhwcmVzc2lvbiIsIm9wdGlvbiIsImRlc2NyaXB0aW9uIiwibWVzc2FnZSIsIkFycm93RnVuY3Rpb25FeHByZXNzaW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJkZWZhdWx0IiwiQ2xhc3NEZWNsYXJhdGlvbiIsImZvcmJpZCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImlkIiwiRnVuY3Rpb25EZWNsYXJhdGlvbiIsIkxpdGVyYWwiLCJPYmplY3RFeHByZXNzaW9uIiwiVGVtcGxhdGVMaXRlcmFsIiwic2NoZW1hUHJvcGVydGllcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJrZXkiLCJyZWR1Y2UiLCJhY2MiLCJkZWYiLCJ0eXBlIiwiZGVmYXVsdHMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhc3NpZ24iLCJyZXBvcnQiXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EscUM7QUFDQSwwQix1SUFOQTs7O29LQVFBLE1BQU1BLE9BQU8sRUFDWEMsaUJBQWlCO0FBQ2ZDLFlBQVEsWUFETztBQUVmQyxpQkFBYSxvREFGRTtBQUdmQyxhQUFTLCtEQUhNLEVBRE47O0FBTVhDLDJCQUF5QjtBQUN2QkgsWUFBUSxvQkFEZTtBQUV2QkMsaUJBQWEsNkRBRlU7QUFHdkJDLGFBQVMsd0VBSGMsRUFOZDs7QUFXWEUsa0JBQWdCO0FBQ2RKLFlBQVEscUJBRE07QUFFZEMsaUJBQWEsMkRBRkM7QUFHZEMsYUFBUyxxRUFISztBQUlkRyxhQUFTLElBSkssRUFYTDs7QUFpQlhDLG9CQUFrQjtBQUNoQk4sWUFBUSxxQkFEUTtBQUVoQkMsaUJBQWEsOERBRkc7QUFHaEJDLGFBQVMsOENBSE87QUFJaEJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQyxFQUpwQixFQWpCUDs7QUF1QlhDLHVCQUFxQjtBQUNuQlgsWUFBUSx3QkFEVztBQUVuQkMsaUJBQWEsaUVBRk07QUFHbkJDLGFBQVMsaURBSFU7QUFJbkJLLFlBQVNDLElBQUQsSUFBVSxDQUFDQSxLQUFLQyxXQUFMLENBQWlCQyxFQUpqQixFQXZCVjs7QUE2QlhFLFdBQVM7QUFDUFosWUFBUSxjQUREO0FBRVBDLGlCQUFhLHFEQUZOO0FBR1BDLGFBQVMsaUVBSEYsRUE3QkU7O0FBa0NYVyxvQkFBa0I7QUFDaEJiLFlBQVEsYUFEUTtBQUVoQkMsaUJBQWEsZ0VBRkc7QUFHaEJDLGFBQVMsZ0VBSE8sRUFsQ1A7O0FBdUNYWSxtQkFBaUI7QUFDZmQsWUFBUSxjQURPO0FBRWZDLGlCQUFhLHFEQUZFO0FBR2ZDLGFBQVMsaUVBSE0sRUF2Q04sRUFBYjs7OztBQThDQSxNQUFNYSxtQkFBbUJDLE9BQU9DLElBQVAsQ0FBWW5CLElBQVo7QUFDdEJvQixHQURzQixDQUNqQkMsR0FBRCxJQUFTckIsS0FBS3FCLEdBQUwsQ0FEUztBQUV0QkMsTUFGc0IsQ0FFZixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUNwQkQsTUFBSUMsSUFBSXRCLE1BQVIsSUFBa0I7QUFDaEJDLGlCQUFhcUIsSUFBSXJCLFdBREQ7QUFFaEJzQixVQUFNLFNBRlUsRUFBbEI7OztBQUtBLFNBQU9GLEdBQVA7QUFDRCxDQVRzQixFQVNwQixFQVRvQixDQUF6Qjs7QUFXQSxNQUFNRyxXQUFXUixPQUFPQyxJQUFQLENBQVluQixJQUFaO0FBQ2RvQixHQURjLENBQ1RDLEdBQUQsSUFBU3JCLEtBQUtxQixHQUFMLENBREM7QUFFZEMsTUFGYyxDQUVQLENBQUNDLEdBQUQsRUFBTUMsR0FBTixLQUFjO0FBQ3BCRCxNQUFJQyxJQUFJdEIsTUFBUixJQUFrQixtQkFBSXNCLEdBQUosRUFBUyxTQUFULElBQXNCQSxJQUFJakIsT0FBMUIsR0FBb0MsS0FBdEQ7QUFDQSxTQUFPZ0IsR0FBUDtBQUNELENBTGMsRUFLWixFQUxZLENBQWpCOztBQU9BSSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkosVUFBTSxZQURGO0FBRUpLLFVBQU07QUFDSkMsV0FBSyx1QkFBUSw2QkFBUixDQURELEVBRkY7OztBQU1KQyxZQUFRO0FBQ047QUFDRVAsWUFBTSxRQURSO0FBRUVRLGtCQUFZaEIsZ0JBRmQ7QUFHRSw4QkFBd0IsS0FIMUIsRUFETSxDQU5KLEVBRFM7Ozs7O0FBZ0JmaUIsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1DLFVBQVVsQixPQUFPbUIsTUFBUCxDQUFjLEVBQWQsRUFBa0JYLFFBQWxCLEVBQTRCUyxRQUFRQyxPQUFSLENBQWdCLENBQWhCLENBQTVCLENBQWhCOztBQUVBLFdBQU87QUFDTCxrQ0FBNkIxQixJQUFELElBQVU7QUFDcEMsY0FBTWMsTUFBTXhCLEtBQUtVLEtBQUtDLFdBQUwsQ0FBaUJjLElBQXRCLENBQVo7O0FBRUE7QUFDQTtBQUNBLFlBQUlELE9BQU8sQ0FBQ1ksUUFBUVosSUFBSXRCLE1BQVosQ0FBUixLQUFnQyxDQUFDc0IsSUFBSWYsTUFBTCxJQUFlZSxJQUFJZixNQUFKLENBQVdDLElBQVgsQ0FBL0MsQ0FBSixFQUFzRTtBQUNwRXlCLGtCQUFRRyxNQUFSLENBQWUsRUFBRTVCLElBQUYsRUFBUU4sU0FBU29CLElBQUlwQixPQUFyQixFQUFmO0FBQ0Q7QUFDRixPQVRJLEVBQVA7O0FBV0QsR0E5QmMsRUFBakIiLCJmaWxlIjoibm8tYW5vbnltb3VzLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZW92ZXJ2aWV3IFJ1bGUgdG8gZGlzYWxsb3cgYW5vbnltb3VzIGRlZmF1bHQgZXhwb3J0cy5cbiAqIEBhdXRob3IgRHVuY2FuIEJlZXZlcnNcbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcbmltcG9ydCBoYXMgZnJvbSAnaGFzJztcblxuY29uc3QgZGVmcyA9IHtcbiAgQXJyYXlFeHByZXNzaW9uOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dBcnJheScsXG4gICAgZGVzY3JpcHRpb246ICdJZiBgZmFsc2VgLCB3aWxsIHJlcG9ydCBkZWZhdWx0IGV4cG9ydCBvZiBhbiBhcnJheScsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBhcnJheSB0byBhIHZhcmlhYmxlIGJlZm9yZSBleHBvcnRpbmcgYXMgbW9kdWxlIGRlZmF1bHQnLFxuICB9LFxuICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QXJyb3dGdW5jdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdJZiBgZmFsc2VgLCB3aWxsIHJlcG9ydCBkZWZhdWx0IGV4cG9ydCBvZiBhbiBhcnJvdyBmdW5jdGlvbicsXG4gICAgbWVzc2FnZTogJ0Fzc2lnbiBhcnJvdyBmdW5jdGlvbiB0byBhIHZhcmlhYmxlIGJlZm9yZSBleHBvcnRpbmcgYXMgbW9kdWxlIGRlZmF1bHQnLFxuICB9LFxuICBDYWxsRXhwcmVzc2lvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93Q2FsbEV4cHJlc3Npb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYSBmdW5jdGlvbiBjYWxsJyxcbiAgICBtZXNzYWdlOiAnQXNzaWduIGNhbGwgcmVzdWx0IHRvIGEgdmFyaWFibGUgYmVmb3JlIGV4cG9ydGluZyBhcyBtb2R1bGUgZGVmYXVsdCcsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgQ2xhc3NEZWNsYXJhdGlvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93QW5vbnltb3VzQ2xhc3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYW4gYW5vbnltb3VzIGNsYXNzJyxcbiAgICBtZXNzYWdlOiAnVW5leHBlY3RlZCBkZWZhdWx0IGV4cG9ydCBvZiBhbm9ueW1vdXMgY2xhc3MnLFxuICAgIGZvcmJpZDogKG5vZGUpID0+ICFub2RlLmRlY2xhcmF0aW9uLmlkLFxuICB9LFxuICBGdW5jdGlvbkRlY2xhcmF0aW9uOiB7XG4gICAgb3B0aW9uOiAnYWxsb3dBbm9ueW1vdXNGdW5jdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdJZiBgZmFsc2VgLCB3aWxsIHJlcG9ydCBkZWZhdWx0IGV4cG9ydCBvZiBhbiBhbm9ueW1vdXMgZnVuY3Rpb24nLFxuICAgIG1lc3NhZ2U6ICdVbmV4cGVjdGVkIGRlZmF1bHQgZXhwb3J0IG9mIGFub255bW91cyBmdW5jdGlvbicsXG4gICAgZm9yYmlkOiAobm9kZSkgPT4gIW5vZGUuZGVjbGFyYXRpb24uaWQsXG4gIH0sXG4gIExpdGVyYWw6IHtcbiAgICBvcHRpb246ICdhbGxvd0xpdGVyYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYSBsaXRlcmFsJyxcbiAgICBtZXNzYWdlOiAnQXNzaWduIGxpdGVyYWwgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbiAgT2JqZWN0RXhwcmVzc2lvbjoge1xuICAgIG9wdGlvbjogJ2FsbG93T2JqZWN0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0lmIGBmYWxzZWAsIHdpbGwgcmVwb3J0IGRlZmF1bHQgZXhwb3J0IG9mIGFuIG9iamVjdCBleHByZXNzaW9uJyxcbiAgICBtZXNzYWdlOiAnQXNzaWduIG9iamVjdCB0byBhIHZhcmlhYmxlIGJlZm9yZSBleHBvcnRpbmcgYXMgbW9kdWxlIGRlZmF1bHQnLFxuICB9LFxuICBUZW1wbGF0ZUxpdGVyYWw6IHtcbiAgICBvcHRpb246ICdhbGxvd0xpdGVyYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnSWYgYGZhbHNlYCwgd2lsbCByZXBvcnQgZGVmYXVsdCBleHBvcnQgb2YgYSBsaXRlcmFsJyxcbiAgICBtZXNzYWdlOiAnQXNzaWduIGxpdGVyYWwgdG8gYSB2YXJpYWJsZSBiZWZvcmUgZXhwb3J0aW5nIGFzIG1vZHVsZSBkZWZhdWx0JyxcbiAgfSxcbn07XG5cbmNvbnN0IHNjaGVtYVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhkZWZzKVxuICAubWFwKChrZXkpID0+IGRlZnNba2V5XSlcbiAgLnJlZHVjZSgoYWNjLCBkZWYpID0+IHtcbiAgICBhY2NbZGVmLm9wdGlvbl0gPSB7XG4gICAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH07XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG5cbmNvbnN0IGRlZmF1bHRzID0gT2JqZWN0LmtleXMoZGVmcylcbiAgLm1hcCgoa2V5KSA9PiBkZWZzW2tleV0pXG4gIC5yZWR1Y2UoKGFjYywgZGVmKSA9PiB7XG4gICAgYWNjW2RlZi5vcHRpb25dID0gaGFzKGRlZiwgJ2RlZmF1bHQnKSA/IGRlZi5kZWZhdWx0IDogZmFsc2U7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHNjaGVtYVByb3BlcnRpZXMsXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMsIGNvbnRleHQub3B0aW9uc1swXSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IChub2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZiA9IGRlZnNbbm9kZS5kZWNsYXJhdGlvbi50eXBlXTtcblxuICAgICAgICAvLyBSZWNvZ25pemVkIG5vZGUgdHlwZSBhbmQgYWxsb3dlZCBieSBjb25maWd1cmF0aW9uLFxuICAgICAgICAvLyAgIGFuZCBoYXMgbm8gZm9yYmlkIGNoZWNrLCBvciBmb3JiaWQgY2hlY2sgcmV0dXJuIHZhbHVlIGlzIHRydXRoeVxuICAgICAgICBpZiAoZGVmICYmICFvcHRpb25zW2RlZi5vcHRpb25dICYmICghZGVmLmZvcmJpZCB8fCBkZWYuZm9yYmlkKG5vZGUpKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogZGVmLm1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js b/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js index 5fb56084ed..5ef7f7db0c 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-commonjs.js @@ -5,11 +5,11 @@ var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const EXPORT_MESSAGE = 'Expected "export" or "export default"', -IMPORT_MESSAGE = 'Expected "import" instead of "require()"'; /** - * @fileoverview Rule to prefer ES6 to CJS - * @author Jamund Ferguson - */function normalizeLegacyOptions(options) {if (options.indexOf('allow-primitive-modules') >= 0) { +const EXPORT_MESSAGE = 'Expected "export" or "export default"'; /** + * @fileoverview Rule to prefer ES6 to CJS + * @author Jamund Ferguson + */const IMPORT_MESSAGE = 'Expected "import" instead of "require()"';function normalizeLegacyOptions(options) { + if (options.indexOf('allow-primitive-modules') >= 0) { return { allowPrimitiveModules: true }; } return options[0] || {}; @@ -45,6 +45,11 @@ function isConditional(node) { return false; } +function isLiteralString(node) { + return node.type === 'Literal' && typeof node.value === 'string' || + node.type === 'TemplateLiteral' && node.expressions.length === 0; +} + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -114,10 +119,7 @@ module.exports = { if (call.callee.name !== 'require') return; if (call.arguments.length !== 1) return; - var module = call.arguments[0]; - - if (module.type !== 'Literal') return; - if (typeof module.value !== 'string') return; + if (!isLiteralString(call.arguments[0])) return; if (allowRequire(call, options)) return; @@ -132,4 +134,4 @@ module.exports = { } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jb21tb25qcy5qcyJdLCJuYW1lcyI6WyJFWFBPUlRfTUVTU0FHRSIsIklNUE9SVF9NRVNTQUdFIiwibm9ybWFsaXplTGVnYWN5T3B0aW9ucyIsIm9wdGlvbnMiLCJpbmRleE9mIiwiYWxsb3dQcmltaXRpdmVNb2R1bGVzIiwiYWxsb3dQcmltaXRpdmUiLCJub2RlIiwicGFyZW50IiwidHlwZSIsInJpZ2h0IiwiYWxsb3dSZXF1aXJlIiwiYWxsb3dDb25kaXRpb25hbFJlcXVpcmUiLCJ2YWxpZGF0ZVNjb3BlIiwic2NvcGUiLCJ2YXJpYWJsZVNjb3BlIiwiaXNDb25kaXRpb25hbCIsInNjaGVtYVN0cmluZyIsImVudW0iLCJzY2hlbWFPYmplY3QiLCJwcm9wZXJ0aWVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJhbnlPZiIsIml0ZW1zIiwiYWRkaXRpb25hbEl0ZW1zIiwiY3JlYXRlIiwiY29udGV4dCIsIm9iamVjdCIsIm5hbWUiLCJwcm9wZXJ0eSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJpc0luU2NvcGUiLCJnZXRTY29wZSIsInZhcmlhYmxlcyIsInNvbWUiLCJ2YXJpYWJsZSIsImNhbGwiLCJjYWxsZWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxxQzs7QUFFQSxNQUFNQSxpQkFBaUIsdUNBQXZCO0FBQ01DLGlCQUFpQiwwQ0FEdkIsQyxDQVBBOzs7Z0VBVUEsU0FBU0Msc0JBQVQsQ0FBZ0NDLE9BQWhDLEVBQXlDLENBQ3ZDLElBQUlBLFFBQVFDLE9BQVIsQ0FBZ0IseUJBQWhCLEtBQThDLENBQWxELEVBQXFEO0FBQ25ELFdBQU8sRUFBRUMsdUJBQXVCLElBQXpCLEVBQVA7QUFDRDtBQUNELFNBQU9GLFFBQVEsQ0FBUixLQUFjLEVBQXJCO0FBQ0Q7O0FBRUQsU0FBU0csY0FBVCxD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QVNyQyxjQUFqQixFQUFmO0FBQ0Q7QUFDRjs7QUFFRixPQXBCSTtBQXFCTCx3QkFBa0IsVUFBVTJDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSSxDQUFDOUIsY0FBY21CLFFBQVFPLFFBQVIsRUFBZCxDQUFMLEVBQXdDOztBQUV4QyxZQUFJSSxLQUFLQyxNQUFMLENBQVluQyxJQUFaLEtBQXFCLFlBQXpCLEVBQXVDO0FBQ3ZDLFlBQUlrQyxLQUFLQyxNQUFMLENBQVlWLElBQVosS0FBcUIsU0FBekIsRUFBb0M7O0FBRXBDLFlBQUlTLEtBQUtFLFNBQUwsQ0FBZUMsTUFBZixLQUEwQixDQUE5QixFQUFpQztBQUNqQyxZQUFJeEIsU0FBU3FCLEtBQUtFLFNBQUwsQ0FBZSxDQUFmLENBQWI7O0FBRUEsWUFBSXZCLE9BQU9iLElBQVAsS0FBZ0IsU0FBcEIsRUFBK0I7QUFDL0IsWUFBSSxPQUFPYSxPQUFPeUIsS0FBZCxLQUF3QixRQUE1QixFQUFzQzs7QUFFdEMsWUFBSXBDLGFBQWFnQyxJQUFiLEVBQW1CeEMsT0FBbkIsQ0FBSixFQUFpQzs7QUFFakMsWUFBSVMsd0JBQXdCK0IsSUFBeEIsRUFBOEJ4QyxPQUE5QixLQUEwQ2EsY0FBYzJCLEtBQUtuQyxNQUFuQixDQUE5QyxFQUEwRTs7QUFFMUU7QUFDQXdCLGdCQUFRSSxNQUFSLENBQWU7QUFDYjdCLGdCQUFNb0MsS0FBS0MsTUFERTtBQUViUCxtQkFBU3BDLGNBRkksRUFBZjs7QUFJRCxPQTFDSSxFQUFQOzs7QUE2Q0QsR0F2RWMsRUFBakIiLCJmaWxlIjoibm8tY29tbW9uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlb3ZlcnZpZXcgUnVsZSB0byBwcmVmZXIgRVM2IHRvIENKU1xuICogQGF1dGhvciBKYW11bmQgRmVyZ3Vzb25cbiAqL1xuXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBFWFBPUlRfTUVTU0FHRSA9ICdFeHBlY3RlZCBcImV4cG9ydFwiIG9yIFwiZXhwb3J0IGRlZmF1bHRcIidcbiAgICAsIElNUE9SVF9NRVNTQUdFID0gJ0V4cGVjdGVkIFwiaW1wb3J0XCIgaW5zdGVhZCBvZiBcInJlcXVpcmUoKVwiJ1xuXG5mdW5jdGlvbiBub3JtYWxpemVMZWdhY3lPcHRpb25zKG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMuaW5kZXhPZignYWxsb3ctcHJpbWl0aXZlLW1vZHVsZXMnKSA+PSAwKSB7XG4gICAgcmV0dXJuIHsgYWxsb3dQcmltaXRpdmVNb2R1bGVzOiB0cnVlIH1cbiAgfVxuICByZXR1cm4gb3B0aW9uc1swXSB8fCB7fVxufVxuXG5mdW5jdGlvbiBhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucy5hbGxvd1ByaW1pdGl2ZU1vZHVsZXMpIHJldHVybiBmYWxzZVxuICBpZiAobm9kZS5wYXJlbnQudHlwZSAhPT0gJ0Fzc2lnbm1lbnRFeHByZXNzaW9uJykgcmV0dXJuIGZhbHNlXG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKVxufVxuXG5mdW5jdGlvbiBhbGxvd1JlcXVpcmUobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5hbGxvd1JlcXVpcmVcbn1cblxuZnVuY3Rpb24gYWxsb3dDb25kaXRpb25hbFJlcXVpcmUobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5hbGxvd0NvbmRpdGlvbmFsUmVxdWlyZSAhPT0gZmFsc2Vcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTY29wZShzY29wZSkge1xuICByZXR1cm4gc2NvcGUudmFyaWFibGVTY29wZS50eXBlID09PSAnbW9kdWxlJ1xufVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZXN0cmVlL2VzdHJlZS9ibG9iL21hc3Rlci9lczUubWRcbmZ1bmN0aW9uIGlzQ29uZGl0aW9uYWwobm9kZSkge1xuICBpZiAoXG4gICAgbm9kZS50eXBlID09PSAnSWZTdGF0ZW1lbnQnXG4gICAgfHwgbm9kZS50eXBlID09PSAnVHJ5U3RhdGVtZW50J1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ0xvZ2ljYWxFeHByZXNzaW9uJ1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ0NvbmRpdGlvbmFsRXhwcmVzc2lvbidcbiAgKSByZXR1cm4gdHJ1ZVxuICBpZiAobm9kZS5wYXJlbnQpIHJldHVybiBpc0NvbmRpdGlvbmFsKG5vZGUucGFyZW50KVxuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3Qgc2NoZW1hU3RyaW5nID0geyBlbnVtOiBbJ2FsbG93LXByaW1pdGl2ZS1tb2R1bGVzJ10gfVxuY29uc3Qgc2NoZW1hT2JqZWN0ID0ge1xuICB0eXBlOiAnb2JqZWN0JyxcbiAgcHJvcGVydGllczoge1xuICAgIGFsbG93UHJpbWl0aXZlTW9kdWxlczogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIGFsbG93UmVxdWlyZTogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICAgIGFsbG93Q29uZGl0aW9uYWxSZXF1aXJlOiB7ICd0eXBlJzogJ2Jvb2xlYW4nIH0sXG4gIH0sXG4gIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1jb21tb25qcycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IHtcbiAgICAgIGFueU9mOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbc2NoZW1hU3RyaW5nXSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBpdGVtczogW3NjaGVtYU9iamVjdF0sXG4gICAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IG5vcm1hbGl6ZUxlZ2FjeU9wdGlvbnMoY29udGV4dC5vcHRpb25zKVxuXG4gICAgcmV0dXJuIHtcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAobm9kZSkge1xuXG4gICAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICAgIGlmIChub2RlLm9iamVjdC5uYW1lID09PSAnbW9kdWxlJyAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGlmIChhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSkgcmV0dXJuXG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXhwb3J0cy5cbiAgICAgICAgaWYgKG5vZGUub2JqZWN0Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGNvbnN0IGlzSW5TY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuICAgICAgICAgICAgLnZhcmlhYmxlc1xuICAgICAgICAgICAgLnNvbWUodmFyaWFibGUgPT4gdmFyaWFibGUubmFtZSA9PT0gJ2V4cG9ydHMnKVxuICAgICAgICAgIGlmICghIGlzSW5TY29wZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9LFxuICAgICAgJ0NhbGxFeHByZXNzaW9uJzogZnVuY3Rpb24gKGNhbGwpIHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNjb3BlKGNvbnRleHQuZ2V0U2NvcGUoKSkpIHJldHVyblxuXG4gICAgICAgIGlmIChjYWxsLmNhbGxlZS50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm5cblxuICAgICAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm5cbiAgICAgICAgdmFyIG1vZHVsZSA9IGNhbGwuYXJndW1lbnRzWzBdXG5cbiAgICAgICAgaWYgKG1vZHVsZS50eXBlICE9PSAnTGl0ZXJhbCcpIHJldHVyblxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZS52YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gICAgICAgIGlmIChhbGxvd1JlcXVpcmUoY2FsbCwgb3B0aW9ucykpIHJldHVyblxuXG4gICAgICAgIGlmIChhbGxvd0NvbmRpdGlvbmFsUmVxdWlyZShjYWxsLCBvcHRpb25zKSAmJiBpc0NvbmRpdGlvbmFsKGNhbGwucGFyZW50KSkgcmV0dXJuXG5cbiAgICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogY2FsbC5jYWxsZWUsXG4gICAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH1cblxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jb21tb25qcy5qcyJdLCJuYW1lcyI6WyJFWFBPUlRfTUVTU0FHRSIsIklNUE9SVF9NRVNTQUdFIiwibm9ybWFsaXplTGVnYWN5T3B0aW9ucyIsIm9wdGlvbnMiLCJpbmRleE9mIiwiYWxsb3dQcmltaXRpdmVNb2R1bGVzIiwiYWxsb3dQcmltaXRpdmUiLCJub2RlIiwicGFyZW50IiwidHlwZSIsInJpZ2h0IiwiYWxsb3dSZXF1aXJlIiwiYWxsb3dDb25kaXRpb25hbFJlcXVpcmUiLCJ2YWxpZGF0ZVNjb3BlIiwic2NvcGUiLCJ2YXJpYWJsZVNjb3BlIiwiaXNDb25kaXRpb25hbCIsImlzTGl0ZXJhbFN0cmluZyIsInZhbHVlIiwiZXhwcmVzc2lvbnMiLCJsZW5ndGgiLCJzY2hlbWFTdHJpbmciLCJlbnVtIiwic2NoZW1hT2JqZWN0IiwicHJvcGVydGllcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiYW55T2YiLCJpdGVtcyIsImFkZGl0aW9uYWxJdGVtcyIsImNyZWF0ZSIsImNvbnRleHQiLCJvYmplY3QiLCJuYW1lIiwicHJvcGVydHkiLCJyZXBvcnQiLCJtZXNzYWdlIiwiaXNJblNjb3BlIiwiZ2V0U2NvcGUiLCJ2YXJpYWJsZXMiLCJzb21lIiwidmFyaWFibGUiLCJjYWxsIiwiY2FsbGVlIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBLHFDOztBQUVBLE1BQU1BLGlCQUFpQix1Q0FBdkIsQyxDQVBBOzs7bUVBUUEsTUFBTUMsaUJBQWlCLDBDQUF2QixDQUVBLFNBQVNDLHNCQUFULENBQWdDQyxPQUFoQyxFQUF5QztBQUN2QyxNQUFJQSxRQUFRQyxPQUFSLENBQWdCLHlCQUFoQixLQUE4QyxDQUFsRCxFQUFxRDtBQUNuRCxXQUFPLEVBQUVDLHVCQUF1QixJQUF6QixFQUFQO0FBQ0Q7QUFDRCxTQUFPRixRQUFRLENB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RDtBQUNBLFlBQUlPLEtBQUs4QixNQUFMLENBQVlDLElBQVosS0FBcUIsU0FBekIsRUFBb0M7QUFDbEMsZ0JBQU1JLFlBQVlOLFFBQVFPLFFBQVI7QUFDZkMsbUJBRGU7QUFFZkMsY0FGZSxDQUVWQyxZQUFZQSxTQUFTUixJQUFULEtBQWtCLFNBRnBCLENBQWxCO0FBR0EsY0FBSSxDQUFFSSxTQUFOLEVBQWlCO0FBQ2ZOLG9CQUFRSSxNQUFSLENBQWUsRUFBRWpDLElBQUYsRUFBUWtDLFNBQVN6QyxjQUFqQixFQUFmO0FBQ0Q7QUFDRjs7QUFFRixPQXBCSTtBQXFCTCx3QkFBa0IsVUFBVStDLElBQVYsRUFBZ0I7QUFDaEMsWUFBSSxDQUFDbEMsY0FBY3VCLFFBQVFPLFFBQVIsRUFBZCxDQUFMLEVBQXdDOztBQUV4QyxZQUFJSSxLQUFLQyxNQUFMLENBQVl2QyxJQUFaLEtBQXFCLFlBQXpCLEVBQXVDO0FBQ3ZDLFlBQUlzQyxLQUFLQyxNQUFMLENBQVlWLElBQVosS0FBcUIsU0FBekIsRUFBb0M7O0FBRXBDLFlBQUlTLEtBQUtFLFNBQUwsQ0FBZTdCLE1BQWYsS0FBMEIsQ0FBOUIsRUFBaUM7QUFDakMsWUFBSSxDQUFDSCxnQkFBZ0I4QixLQUFLRSxTQUFMLENBQWUsQ0FBZixDQUFoQixDQUFMLEVBQXlDOztBQUV6QyxZQUFJdEMsYUFBYW9DLElBQWIsRUFBbUI1QyxPQUFuQixDQUFKLEVBQWlDOztBQUVqQyxZQUFJUyx3QkFBd0JtQyxJQUF4QixFQUE4QjVDLE9BQTlCLEtBQTBDYSxjQUFjK0IsS0FBS3ZDLE1BQW5CLENBQTlDLEVBQTBFOztBQUUxRTtBQUNBNEIsZ0JBQVFJLE1BQVIsQ0FBZTtBQUNiakMsZ0JBQU13QyxLQUFLQyxNQURFO0FBRWJQLG1CQUFTeEMsY0FGSSxFQUFmOztBQUlELE9BdkNJLEVBQVA7OztBQTBDRCxHQXBFYyxFQUFqQiIsImZpbGUiOiJuby1jb21tb25qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHByZWZlciBFUzYgdG8gQ0pTXG4gKiBAYXV0aG9yIEphbXVuZCBGZXJndXNvblxuICovXG5cbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5jb25zdCBFWFBPUlRfTUVTU0FHRSA9ICdFeHBlY3RlZCBcImV4cG9ydFwiIG9yIFwiZXhwb3J0IGRlZmF1bHRcIic7XG5jb25zdCBJTVBPUlRfTUVTU0FHRSA9ICdFeHBlY3RlZCBcImltcG9ydFwiIGluc3RlYWQgb2YgXCJyZXF1aXJlKClcIic7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUxlZ2FjeU9wdGlvbnMob3B0aW9ucykge1xuICBpZiAob3B0aW9ucy5pbmRleE9mKCdhbGxvdy1wcmltaXRpdmUtbW9kdWxlcycpID49IDApIHtcbiAgICByZXR1cm4geyBhbGxvd1ByaW1pdGl2ZU1vZHVsZXM6IHRydWUgfTtcbiAgfVxuICByZXR1cm4gb3B0aW9uc1swXSB8fCB7fTtcbn1cblxuZnVuY3Rpb24gYWxsb3dQcmltaXRpdmUobm9kZSwgb3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMuYWxsb3dQcmltaXRpdmVNb2R1bGVzKSByZXR1cm4gZmFsc2U7XG4gIGlmIChub2RlLnBhcmVudC50eXBlICE9PSAnQXNzaWdubWVudEV4cHJlc3Npb24nKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiAobm9kZS5wYXJlbnQucmlnaHQudHlwZSAhPT0gJ09iamVjdEV4cHJlc3Npb24nKTtcbn1cblxuZnVuY3Rpb24gYWxsb3dSZXF1aXJlKG5vZGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIG9wdGlvbnMuYWxsb3dSZXF1aXJlO1xufVxuXG5mdW5jdGlvbiBhbGxvd0NvbmRpdGlvbmFsUmVxdWlyZShub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBvcHRpb25zLmFsbG93Q29uZGl0aW9uYWxSZXF1aXJlICE9PSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTY29wZShzY29wZSkge1xuICByZXR1cm4gc2NvcGUudmFyaWFibGVTY29wZS50eXBlID09PSAnbW9kdWxlJztcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2VzdHJlZS9lc3RyZWUvYmxvYi9tYXN0ZXIvZXM1Lm1kXG5mdW5jdGlvbiBpc0NvbmRpdGlvbmFsKG5vZGUpIHtcbiAgaWYgKFxuICAgIG5vZGUudHlwZSA9PT0gJ0lmU3RhdGVtZW50J1xuICAgIHx8IG5vZGUudHlwZSA9PT0gJ1RyeVN0YXRlbWVudCdcbiAgICB8fCBub2RlLnR5cGUgPT09ICdMb2dpY2FsRXhwcmVzc2lvbidcbiAgICB8fCBub2RlLnR5cGUgPT09ICdDb25kaXRpb25hbEV4cHJlc3Npb24nXG4gICkgcmV0dXJuIHRydWU7XG4gIGlmIChub2RlLnBhcmVudCkgcmV0dXJuIGlzQ29uZGl0aW9uYWwobm9kZS5wYXJlbnQpO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGlzTGl0ZXJhbFN0cmluZyhub2RlKSB7XG4gIHJldHVybiAobm9kZS50eXBlID09PSAnTGl0ZXJhbCcgJiYgdHlwZW9mIG5vZGUudmFsdWUgPT09ICdzdHJpbmcnKSB8fFxuICAgIChub2RlLnR5cGUgPT09ICdUZW1wbGF0ZUxpdGVyYWwnICYmIG5vZGUuZXhwcmVzc2lvbnMubGVuZ3RoID09PSAwKTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3Qgc2NoZW1hU3RyaW5nID0geyBlbnVtOiBbJ2FsbG93LXByaW1pdGl2ZS1tb2R1bGVzJ10gfTtcbmNvbnN0IHNjaGVtYU9iamVjdCA9IHtcbiAgdHlwZTogJ29iamVjdCcsXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhbGxvd1ByaW1pdGl2ZU1vZHVsZXM6IHsgJ3R5cGUnOiAnYm9vbGVhbicgfSxcbiAgICBhbGxvd1JlcXVpcmU6IHsgJ3R5cGUnOiAnYm9vbGVhbicgfSxcbiAgICBhbGxvd0NvbmRpdGlvbmFsUmVxdWlyZTogeyAndHlwZSc6ICdib29sZWFuJyB9LFxuICB9LFxuICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWNvbW1vbmpzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYToge1xuICAgICAgYW55T2Y6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgaXRlbXM6IFtzY2hlbWFTdHJpbmddLFxuICAgICAgICAgIGFkZGl0aW9uYWxJdGVtczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIGl0ZW1zOiBbc2NoZW1hT2JqZWN0XSxcbiAgICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gbm9ybWFsaXplTGVnYWN5T3B0aW9ucyhjb250ZXh0Lm9wdGlvbnMpO1xuXG4gICAgcmV0dXJuIHtcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAobm9kZSkge1xuXG4gICAgICAgIC8vIG1vZHVsZS5leHBvcnRzXG4gICAgICAgIGlmIChub2RlLm9iamVjdC5uYW1lID09PSAnbW9kdWxlJyAmJiBub2RlLnByb3BlcnR5Lm5hbWUgPT09ICdleHBvcnRzJykge1xuICAgICAgICAgIGlmIChhbGxvd1ByaW1pdGl2ZShub2RlLCBvcHRpb25zKSkgcmV0dXJuO1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogRVhQT1JUX01FU1NBR0UgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBleHBvcnRzLlxuICAgICAgICBpZiAobm9kZS5vYmplY3QubmFtZSA9PT0gJ2V4cG9ydHMnKSB7XG4gICAgICAgICAgY29uc3QgaXNJblNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG4gICAgICAgICAgICAudmFyaWFibGVzXG4gICAgICAgICAgICAuc29tZSh2YXJpYWJsZSA9PiB2YXJpYWJsZS5uYW1lID09PSAnZXhwb3J0cycpO1xuICAgICAgICAgIGlmICghIGlzSW5TY29wZSkge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBFWFBPUlRfTUVTU0FHRSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfSxcbiAgICAgICdDYWxsRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChjYWxsKSB7XG4gICAgICAgIGlmICghdmFsaWRhdGVTY29wZShjb250ZXh0LmdldFNjb3BlKCkpKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGNhbGwuY2FsbGVlLnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuO1xuICAgICAgICBpZiAoY2FsbC5jYWxsZWUubmFtZSAhPT0gJ3JlcXVpcmUnKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkgcmV0dXJuO1xuICAgICAgICBpZiAoIWlzTGl0ZXJhbFN0cmluZyhjYWxsLmFyZ3VtZW50c1swXSkpIHJldHVybjtcblxuICAgICAgICBpZiAoYWxsb3dSZXF1aXJlKGNhbGwsIG9wdGlvbnMpKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGFsbG93Q29uZGl0aW9uYWxSZXF1aXJlKGNhbGwsIG9wdGlvbnMpICYmIGlzQ29uZGl0aW9uYWwoY2FsbC5wYXJlbnQpKSByZXR1cm47XG5cbiAgICAgICAgLy8ga2VlcGluZyBpdCBzaW1wbGU6IGFsbCAxLXN0cmluZy1hcmcgYHJlcXVpcmVgIGNhbGxzIGFyZSByZXBvcnRlZFxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogY2FsbC5jYWxsZWUsXG4gICAgICAgICAgbWVzc2FnZTogSU1QT1JUX01FU1NBR0UsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuXG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-cycle.js b/node_modules/eslint-plugin-import/lib/rules/no-cycle.js index 84d052520a..98c7c232ca 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-cycle.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-cycle.js @@ -3,10 +3,11 @@ * @author Ben Mosher */ +var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); var _ExportMap = require('../ExportMap');var _ExportMap2 = _interopRequireDefault(_ExportMap); var _importType = require('../core/importType'); var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); -var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function _toConsumableArray(arr) {if (Array.isArray(arr)) {for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];return arr2;} else {return Array.from(arr);}} // todo: cache cycles / deep relationships for faster repeat evaluation module.exports = { @@ -41,19 +42,31 @@ module.exports = { const options = context.options[0] || {}; const maxDepth = typeof options.maxDepth === 'number' ? options.maxDepth : Infinity; - const ignoreModule = name => options.ignoreExternal ? (0, _importType.isExternalModule)(name) : false; + const ignoreModule = name => options.ignoreExternal && (0, _importType.isExternalModule)( + name, + context.settings, + (0, _resolve2.default)(name, context), + context); + function checkSourceValue(sourceNode, importer) { if (ignoreModule(sourceNode.value)) { return; // ignore external modules } - const imported = _ExportMap2.default.get(sourceNode.value, context); + if ( + importer.type === 'ImportDeclaration' && ( + // import type { Foo } (TS and Flow) + importer.importKind === 'type' || + // import { type Foo } (Flow) + importer.specifiers.every((_ref) => {let importKind = _ref.importKind;return importKind === 'type';}))) - if (importer.importKind === 'type') { - return; // no Flow import resolution + { + return; // ignore type imports } + const imported = _ExportMap2.default.get(sourceNode.value, context); + if (imported == null) { return; // no-unresolved territory } @@ -64,21 +77,34 @@ module.exports = { const untraversed = [{ mget: () => imported, route: [] }]; const traversed = new Set(); - function detectCycle(_ref) {let mget = _ref.mget,route = _ref.route; + function detectCycle(_ref2) {let mget = _ref2.mget,route = _ref2.route; const m = mget(); if (m == null) return; if (traversed.has(m.path)) return; traversed.add(m.path); - for (let _ref2 of m.imports) {var _ref3 = _slicedToArray(_ref2, 2);let path = _ref3[0];var _ref3$ = _ref3[1];let getter = _ref3$.getter;let source = _ref3$.source; - if (path === myPath) return true; + for (const _ref3 of m.imports) {var _ref4 = _slicedToArray(_ref3, 2);const path = _ref4[0];var _ref4$ = _ref4[1];const getter = _ref4$.getter;const declarations = _ref4$.declarations; if (traversed.has(path)) continue; - if (ignoreModule(source.value)) continue; + const toTraverse = [].concat(_toConsumableArray(declarations)).filter((_ref5) => {let source = _ref5.source,isOnlyImportingTypes = _ref5.isOnlyImportingTypes;return ( + !ignoreModule(source.value) && + // Ignore only type imports + !isOnlyImportingTypes);}); + + /* + Only report as a cycle if there are any import declarations that are considered by + the rule. For example: + a.ts: + import { foo } from './b' // should not be reported as a cycle + b.ts: + import type { Bar } from './a' + */ + + + if (path === myPath && toTraverse.length > 0) return true; if (route.length + 1 < maxDepth) { - untraversed.push({ - mget: getter, - route: route.concat(source) }); - + for (const _ref6 of toTraverse) {const source = _ref6.source; + untraversed.push({ mget: getter, route: route.concat(source) }); + } } } } @@ -102,4 +128,4 @@ module.exports = { function routeString(route) { return route.map(s => `${s.value}:${s.loc.start.line}`).join('=>'); } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jeWNsZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwibWF4RGVwdGgiLCJvbmVPZiIsImRlc2NyaXB0aW9uIiwibWluaW11bSIsImVudW0iLCJpZ25vcmVFeHRlcm5hbCIsImRlZmF1bHQiLCJjcmVhdGUiLCJjb250ZXh0IiwibXlQYXRoIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiSW5maW5pdHkiLCJpZ25vcmVNb2R1bGUiLCJuYW1lIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZU5vZGUiLCJpbXBvcnRlciIsInZhbHVlIiwiaW1wb3J0ZWQiLCJFeHBvcnRzIiwiZ2V0IiwiaW1wb3J0S2luZCIsInBhdGgiLCJ1bnRyYXZlcnNlZCIsIm1nZXQiLCJyb3V0ZSIsInRyYXZlcnNlZCIsIlNldCIsImRldGVjdEN5Y2xlIiwibSIsImhhcyIsImFkZCIsImltcG9ydHMiLCJnZXR0ZXIiLCJzb3VyY2UiLCJsZW5ndGgiLCJwdXNoIiwiY29uY2F0IiwibmV4dCIsInNoaWZ0IiwibWVzc2FnZSIsInJvdXRlU3RyaW5nIiwicmVwb3J0IiwibWFwIiwicyIsImxvYyIsInN0YXJ0IiwibGluZSIsImpvaW4iXSwibWFwcGluZ3MiOiJzb0JBQUE7Ozs7O0FBS0EseUM7QUFDQTtBQUNBLGtFO0FBQ0EscUM7O0FBRUE7QUFDQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNLEVBQUVDLEtBQUssdUJBQVEsVUFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUSxDQUFDLHNDQUFrQjtBQUN6QkMsZ0JBQVU7QUFDUkMsZUFBTztBQUNMO0FBQ0VDLHVCQUFhLHNDQURmO0FBRUVOLGdCQUFNLFNBRlI7QUFHRU8sbUJBQVMsQ0FIWCxFQURLOztBQU1MO0FBQ0VDLGdCQUFNLENBQUMsR0FBRCxDQURSO0FBRUVSLGdCQUFN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QkFBYzFCLGdCQUFkLEVBQWdDUCxRQUFRRyxPQUFSLENBQWdCLENBQWhCLENBQWhDLENBQVA7QUFDRCxHQXZGYyxFQUFqQjs7O0FBMEZBLFNBQVMrQixXQUFULENBQXFCaEIsS0FBckIsRUFBNEI7QUFDMUIsU0FBT0EsTUFBTWtCLEdBQU4sQ0FBVUMsS0FBTSxHQUFFQSxFQUFFM0IsS0FBTSxJQUFHMkIsRUFBRUMsR0FBRixDQUFNQyxLQUFOLENBQVlDLElBQUssRUFBOUMsRUFBaURDLElBQWpELENBQXNELElBQXRELENBQVA7QUFDRCIsImZpbGUiOiJuby1jeWNsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBFbnN1cmVzIHRoYXQgbm8gaW1wb3J0ZWQgbW9kdWxlIGltcG9ydHMgdGhlIGxpbnRlZCBtb2R1bGUuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgeyBpc0V4dGVybmFsTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vLyB0b2RvOiBjYWNoZSBjeWNsZXMgLyBkZWVwIHJlbGF0aW9uc2hpcHMgZm9yIGZhc3RlciByZXBlYXQgZXZhbHVhdGlvblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczogeyB1cmw6IGRvY3NVcmwoJ25vLWN5Y2xlJykgfSxcbiAgICBzY2hlbWE6IFttYWtlT3B0aW9uc1NjaGVtYSh7XG4gICAgICBtYXhEZXB0aDoge1xuICAgICAgICBvbmVPZjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnbWF4aW11bSBkZXBlbmRlbmN5IGRlcHRoIHRvIHRyYXZlcnNlJyxcbiAgICAgICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgICAgIG1pbmltdW06IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbnVtOiBbJ+KIniddLFxuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBpZ25vcmVFeHRlcm5hbDoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ2lnbm9yZSBleHRlcm5hbCBtb2R1bGVzJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSldLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBteVBhdGggPSBjb250ZXh0LmdldEZpbGVuYW1lKClcbiAgICBpZiAobXlQYXRoID09PSAnPHRleHQ+JykgcmV0dXJuIHt9IC8vIGNhbid0IGN5Y2xlLWNoZWNrIGEgbm9uLWZpbGVcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBtYXhEZXB0aCA9IHR5cGVvZiBvcHRpb25zLm1heERlcHRoID09PSAnbnVtYmVyJyA/IG9wdGlvbnMubWF4RGVwdGggOiBJbmZpbml0eVxuICAgIGNvbnN0IGlnbm9yZU1vZHVsZSA9IChuYW1lKSA9PiBvcHRpb25zLmlnbm9yZUV4dGVybmFsID8gaXNFeHRlcm5hbE1vZHVsZShuYW1lKSA6IGZhbHNlXG5cbiAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVZhbHVlKHNvdXJjZU5vZGUsIGltcG9ydGVyKSB7XG4gICAgICBpZiAoaWdub3JlTW9kdWxlKHNvdXJjZU5vZGUudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAvLyBpZ25vcmUgZXh0ZXJuYWwgbW9kdWxlc1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbXBvcnRlZCA9IEV4cG9ydHMuZ2V0KHNvdXJjZU5vZGUudmFsdWUsIGNvbnRleHQpXG5cbiAgICAgIGlmIChpbXBvcnRlci5pbXBvcnRLaW5kID09PSAndHlwZScpIHtcbiAgICAgICAgcmV0dXJuIC8vIG5vIEZsb3cgaW1wb3J0IHJlc29sdXRpb25cbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydGVkID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuICAvLyBuby11bnJlc29sdmVkIHRlcnJpdG9yeVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1wb3J0ZWQucGF0aCA9PT0gbXlQYXRoKSB7XG4gICAgICAgIHJldHVybiAgLy8gbm8tc2VsZi1pbXBvcnQgdGVycml0b3J5XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVudHJhdmVyc2VkID0gW3ttZ2V0OiAoKSA9PiBpbXBvcnRlZCwgcm91dGU6W119XVxuICAgICAgY29uc3QgdHJhdmVyc2VkID0gbmV3IFNldCgpXG4gICAgICBmdW5jdGlvbiBkZXRlY3RDeWNsZSh7bWdldCwgcm91dGV9KSB7XG4gICAgICAgIGNvbnN0IG0gPSBtZ2V0KClcbiAgICAgICAgaWYgKG0gPT0gbnVsbCkgcmV0dXJuXG4gICAgICAgIGlmICh0cmF2ZXJzZWQuaGFzKG0ucGF0aCkpIHJldHVyblxuICAgICAgICB0cmF2ZXJzZWQuYWRkKG0ucGF0aClcblxuICAgICAgICBmb3IgKGxldCBbcGF0aCwgeyBnZXR0ZXIsIHNvdXJjZSB9XSBvZiBtLmltcG9ydHMpIHtcbiAgICAgICAgICBpZiAocGF0aCA9PT0gbXlQYXRoKSByZXR1cm4gdHJ1ZVxuICAgICAgICAgIGlmICh0cmF2ZXJzZWQuaGFzKHBhdGgpKSBjb250aW51ZVxuICAgICAgICAgIGlmIChpZ25vcmVNb2R1bGUoc291cmNlLnZhbHVlKSkgY29udGludWVcbiAgICAgICAgICBpZiAocm91dGUubGVuZ3RoICsgMSA8IG1heERlcHRoKSB7XG4gICAgICAgICAgICB1bnRyYXZlcnNlZC5wdXNoKHtcbiAgICAgICAgICAgICAgbWdldDogZ2V0dGVyLFxuICAgICAgICAgICAgICByb3V0ZTogcm91dGUuY29uY2F0KHNvdXJjZSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB3aGlsZSAodW50cmF2ZXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBuZXh0ID0gdW50cmF2ZXJzZWQuc2hpZnQoKSAvLyBiZnMhXG4gICAgICAgIGlmIChkZXRlY3RDeWNsZShuZXh0KSkge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAobmV4dC5yb3V0ZS5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGBEZXBlbmRlbmN5IGN5Y2xlIHZpYSAke3JvdXRlU3RyaW5nKG5leHQucm91dGUpfWBcbiAgICAgICAgICAgIDogJ0RlcGVuZGVuY3kgY3ljbGUgZGV0ZWN0ZWQuJylcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbXBvcnRlciwgbWVzc2FnZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrU291cmNlVmFsdWUsIGNvbnRleHQub3B0aW9uc1swXSlcbiAgfSxcbn1cblxuZnVuY3Rpb24gcm91dGVTdHJpbmcocm91dGUpIHtcbiAgcmV0dXJuIHJvdXRlLm1hcChzID0+IGAke3MudmFsdWV9OiR7cy5sb2Muc3RhcnQubGluZX1gKS5qb2luKCc9PicpXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1jeWNsZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwibWF4RGVwdGgiLCJvbmVPZiIsImRlc2NyaXB0aW9uIiwibWluaW11bSIsImVudW0iLCJpZ25vcmVFeHRlcm5hbCIsImRlZmF1bHQiLCJjcmVhdGUiLCJjb250ZXh0IiwibXlQYXRoIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiSW5maW5pdHkiLCJpZ25vcmVNb2R1bGUiLCJuYW1lIiwic2V0dGluZ3MiLCJjaGVja1NvdXJjZVZhbHVlIiwic291cmNlTm9kZSIsImltcG9ydGVyIiwidmFsdWUiLCJpbXBvcnRLaW5kIiwic3BlY2lmaWVycyIsImV2ZXJ5IiwiaW1wb3J0ZWQiLCJFeHBvcnRzIiwiZ2V0IiwicGF0aCIsInVudHJhdmVyc2VkIiwibWdldCIsInJvdXRlIiwidHJhdmVyc2VkIiwiU2V0IiwiZGV0ZWN0Q3ljbGUiLCJtIiwiaGFzIiwiYWRkIiwiaW1wb3J0cyIsImdldHRlciIsImRlY2xhcmF0aW9ucyIsInRvVHJhdmVyc2UiLCJmaWx0ZXIiLCJzb3VyY2UiLCJpc09ubHlJbXBvcnRpbmdUeXBlcyIsImxlbmd0aCIsInB1c2giLCJjb25jYXQiLCJuZXh0Iiwic2hpZnQiLCJtZXNzYWdlIiwicm91dGVTdHJpbmciLCJyZXBvcnQiLCJtYXAiLCJzIiwibG9jIiwic3RhcnQiLCJsaW5lIiwiam9pbiJdLCJtYXBwaW5ncyI6InNvQkFBQTs7Ozs7QUFLQSxzRDtBQUNBLHlDO0FBQ0E7QUFDQSxrRTtBQUNBLHFDOztBQUVBO0FBQ0FBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTSxFQUFFQyxLQUFLLHVCQUFRLFVBQVIsQ0FBUCxFQUZGO0FBR0pDLFlBQVEsQ0FBQyxzQ0FBa0I7QUFDekJDLGdCQUFVO0FBQ1JDLGVBQU87QUFDTDtB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QyxjQUFJZCxNQUFNYyxNQUFOLEdBQWUsQ0FBZixHQUFtQjNDLFFBQXZCLEVBQWlDO0FBQy9CLGdDQUF5QnVDLFVBQXpCLEVBQXFDLE9BQXhCRSxNQUF3QixTQUF4QkEsTUFBd0I7QUFDbkNkLDBCQUFZaUIsSUFBWixDQUFpQixFQUFFaEIsTUFBTVMsTUFBUixFQUFnQlIsT0FBT0EsTUFBTWdCLE1BQU4sQ0FBYUosTUFBYixDQUF2QixFQUFqQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGOztBQUVELGFBQU9kLFlBQVlnQixNQUFaLEdBQXFCLENBQTVCLEVBQStCO0FBQzdCLGNBQU1HLE9BQU9uQixZQUFZb0IsS0FBWixFQUFiLENBRDZCLENBQ0s7QUFDbEMsWUFBSWYsWUFBWWMsSUFBWixDQUFKLEVBQXVCO0FBQ3JCLGdCQUFNRSxVQUFXRixLQUFLakIsS0FBTCxDQUFXYyxNQUFYLEdBQW9CLENBQXBCO0FBQ1osa0NBQXVCTSxZQUFZSCxLQUFLakIsS0FBakIsQ0FBd0IsRUFEbkM7QUFFYixzQ0FGSjtBQUdBckIsa0JBQVEwQyxNQUFSLENBQWVoQyxRQUFmLEVBQXlCOEIsT0FBekI7QUFDQTtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPLDZCQUFjaEMsZ0JBQWQsRUFBZ0NSLFFBQVFHLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBaEMsQ0FBUDtBQUNELEdBaEhjLEVBQWpCOzs7QUFtSEEsU0FBU3NDLFdBQVQsQ0FBcUJwQixLQUFyQixFQUE0QjtBQUMxQixTQUFPQSxNQUFNc0IsR0FBTixDQUFVQyxLQUFNLEdBQUVBLEVBQUVqQyxLQUFNLElBQUdpQyxFQUFFQyxHQUFGLENBQU1DLEtBQU4sQ0FBWUMsSUFBSyxFQUE5QyxFQUFpREMsSUFBakQsQ0FBc0QsSUFBdEQsQ0FBUDtBQUNEIiwiZmlsZSI6Im5vLWN5Y2xlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZU92ZXJ2aWV3IEVuc3VyZXMgdGhhdCBubyBpbXBvcnRlZCBtb2R1bGUgaW1wb3J0cyB0aGUgbGludGVkIG1vZHVsZS5cbiAqIEBhdXRob3IgQmVuIE1vc2hlclxuICovXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSc7XG5pbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnO1xuaW1wb3J0IHsgaXNFeHRlcm5hbE1vZHVsZSB9IGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSc7XG5pbXBvcnQgbW9kdWxlVmlzaXRvciwgeyBtYWtlT3B0aW9uc1NjaGVtYSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcic7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuLy8gdG9kbzogY2FjaGUgY3ljbGVzIC8gZGVlcCByZWxhdGlvbnNoaXBzIGZvciBmYXN0ZXIgcmVwZWF0IGV2YWx1YXRpb25cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHsgdXJsOiBkb2NzVXJsKCduby1jeWNsZScpIH0sXG4gICAgc2NoZW1hOiBbbWFrZU9wdGlvbnNTY2hlbWEoe1xuICAgICAgbWF4RGVwdGg6IHtcbiAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ21heGltdW0gZGVwZW5kZW5jeSBkZXB0aCB0byB0cmF2ZXJzZScsXG4gICAgICAgICAgICB0eXBlOiAnaW50ZWdlcicsXG4gICAgICAgICAgICBtaW5pbXVtOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW51bTogWyfiiJ4nXSxcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgaWdub3JlRXh0ZXJuYWw6IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdpZ25vcmUgZXh0ZXJuYWwgbW9kdWxlcycsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgY29uc3QgbXlQYXRoID0gY29udGV4dC5nZXRGaWxlbmFtZSgpO1xuICAgIGlmIChteVBhdGggPT09ICc8dGV4dD4nKSByZXR1cm4ge307IC8vIGNhbid0IGN5Y2xlLWNoZWNrIGEgbm9uLWZpbGVcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge307XG4gICAgY29uc3QgbWF4RGVwdGggPSB0eXBlb2Ygb3B0aW9ucy5tYXhEZXB0aCA9PT0gJ251bWJlcicgPyBvcHRpb25zLm1heERlcHRoIDogSW5maW5pdHk7XG4gICAgY29uc3QgaWdub3JlTW9kdWxlID0gKG5hbWUpID0+IG9wdGlvbnMuaWdub3JlRXh0ZXJuYWwgJiYgaXNFeHRlcm5hbE1vZHVsZShcbiAgICAgIG5hbWUsXG4gICAgICBjb250ZXh0LnNldHRpbmdzLFxuICAgICAgcmVzb2x2ZShuYW1lLCBjb250ZXh0KSxcbiAgICAgIGNvbnRleHRcbiAgICApO1xuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2VOb2RlLCBpbXBvcnRlcikge1xuICAgICAgaWYgKGlnbm9yZU1vZHVsZShzb3VyY2VOb2RlLnZhbHVlKSkge1xuICAgICAgICByZXR1cm47IC8vIGlnbm9yZSBleHRlcm5hbCBtb2R1bGVzXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgaW1wb3J0ZXIudHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJyAmJiAoXG4gICAgICAgICAgLy8gaW1wb3J0IHR5cGUgeyBGb28gfSAoVFMgYW5kIEZsb3cpXG4gICAgICAgICAgaW1wb3J0ZXIuaW1wb3J0S2luZCA9PT0gJ3R5cGUnIHx8XG4gICAgICAgICAgLy8gaW1wb3J0IHsgdHlwZSBGb28gfSAoRmxvdylcbiAgICAgICAgICBpbXBvcnRlci5zcGVjaWZpZXJzLmV2ZXJ5KCh7IGltcG9ydEtpbmQgfSkgPT4gaW1wb3J0S2luZCA9PT0gJ3R5cGUnKVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuOyAvLyBpZ25vcmUgdHlwZSBpbXBvcnRzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGltcG9ydGVkID0gRXhwb3J0cy5nZXQoc291cmNlTm9kZS52YWx1ZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChpbXBvcnRlZCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjsgIC8vIG5vLXVucmVzb2x2ZWQgdGVycml0b3J5XG4gICAgICB9XG5cbiAgICAgIGlmIChpbXBvcnRlZC5wYXRoID09PSBteVBhdGgpIHtcbiAgICAgICAgcmV0dXJuOyAgLy8gbm8tc2VsZi1pbXBvcnQgdGVycml0b3J5XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVudHJhdmVyc2VkID0gW3sgbWdldDogKCkgPT4gaW1wb3J0ZWQsIHJvdXRlOltdIH1dO1xuICAgICAgY29uc3QgdHJhdmVyc2VkID0gbmV3IFNldCgpO1xuICAgICAgZnVuY3Rpb24gZGV0ZWN0Q3ljbGUoeyBtZ2V0LCByb3V0ZSB9KSB7XG4gICAgICAgIGNvbnN0IG0gPSBtZ2V0KCk7XG4gICAgICAgIGlmIChtID09IG51bGwpIHJldHVybjtcbiAgICAgICAgaWYgKHRyYXZlcnNlZC5oYXMobS5wYXRoKSkgcmV0dXJuO1xuICAgICAgICB0cmF2ZXJzZWQuYWRkKG0ucGF0aCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBbcGF0aCwgeyBnZXR0ZXIsIGRlY2xhcmF0aW9ucyB9XSBvZiBtLmltcG9ydHMpIHtcbiAgICAgICAgICBpZiAodHJhdmVyc2VkLmhhcyhwYXRoKSkgY29udGludWU7XG4gICAgICAgICAgY29uc3QgdG9UcmF2ZXJzZSA9IFsuLi5kZWNsYXJhdGlvbnNdLmZpbHRlcigoeyBzb3VyY2UsIGlzT25seUltcG9ydGluZ1R5cGVzIH0pID0+XG4gICAgICAgICAgICAhaWdub3JlTW9kdWxlKHNvdXJjZS52YWx1ZSkgJiZcbiAgICAgICAgICAgIC8vIElnbm9yZSBvbmx5IHR5cGUgaW1wb3J0c1xuICAgICAgICAgICAgIWlzT25seUltcG9ydGluZ1R5cGVzXG4gICAgICAgICAgKTtcbiAgICAgICAgICAvKlxuICAgICAgICAgIE9ubHkgcmVwb3J0IGFzIGEgY3ljbGUgaWYgdGhlcmUgYXJlIGFueSBpbXBvcnQgZGVjbGFyYXRpb25zIHRoYXQgYXJlIGNvbnNpZGVyZWQgYnlcbiAgICAgICAgICB0aGUgcnVsZS4gRm9yIGV4YW1wbGU6XG5cbiAgICAgICAgICBhLnRzOlxuICAgICAgICAgIGltcG9ydCB7IGZvbyB9IGZyb20gJy4vYicgLy8gc2hvdWxkIG5vdCBiZSByZXBvcnRlZCBhcyBhIGN5Y2xlXG5cbiAgICAgICAgICBiLnRzOlxuICAgICAgICAgIGltcG9ydCB0eXBlIHsgQmFyIH0gZnJvbSAnLi9hJ1xuICAgICAgICAgICovXG4gICAgICAgICAgaWYgKHBhdGggPT09IG15UGF0aCAmJiB0b1RyYXZlcnNlLmxlbmd0aCA+IDApIHJldHVybiB0cnVlO1xuICAgICAgICAgIGlmIChyb3V0ZS5sZW5ndGggKyAxIDwgbWF4RGVwdGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgeyBzb3VyY2UgfSBvZiB0b1RyYXZlcnNlKSB7XG4gICAgICAgICAgICAgIHVudHJhdmVyc2VkLnB1c2goeyBtZ2V0OiBnZXR0ZXIsIHJvdXRlOiByb3V0ZS5jb25jYXQoc291cmNlKSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgd2hpbGUgKHVudHJhdmVyc2VkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgbmV4dCA9IHVudHJhdmVyc2VkLnNoaWZ0KCk7IC8vIGJmcyFcbiAgICAgICAgaWYgKGRldGVjdEN5Y2xlKG5leHQpKSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IChuZXh0LnJvdXRlLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gYERlcGVuZGVuY3kgY3ljbGUgdmlhICR7cm91dGVTdHJpbmcobmV4dC5yb3V0ZSl9YFxuICAgICAgICAgICAgOiAnRGVwZW5kZW5jeSBjeWNsZSBkZXRlY3RlZC4nKTtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChpbXBvcnRlciwgbWVzc2FnZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IoY2hlY2tTb3VyY2VWYWx1ZSwgY29udGV4dC5vcHRpb25zWzBdKTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIHJvdXRlU3RyaW5nKHJvdXRlKSB7XG4gIHJldHVybiByb3V0ZS5tYXAocyA9PiBgJHtzLnZhbHVlfToke3MubG9jLnN0YXJ0LmxpbmV9YCkuam9pbignPT4nKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-default-export.js b/node_modules/eslint-plugin-import/lib/rules/no-default-export.js index 9434bcd1c1..e721bdc2aa 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-default-export.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-default-export.js @@ -38,4 +38,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwicHJlZmVyTmFtZWQiLCJub0FsaWFzRGVmYXVsdCIsImxvY2FsIiwibmFtZSIsIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJtZXNzYWdlIiwiRXhwb3J0TmFtZWREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwic3BlY2lmaWVyIiwiZXhwb3J0ZWQiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxtQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsU0FBT0MsT0FBUCxFQUFnQjtBQUNkO0FBQ0EsUUFBSUEsUUFBUUMsYUFBUixDQUFzQkMsVUFBdEIsS0FBcUMsUUFBekMsRUFBbUQ7QUFDakQsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsVUFBTUMsY0FBYyx1QkFBcEI7QUFDQSxVQUFNQyxpQkFBaUIsZUFBRUMsS0FBRixRQUFFQSxLQUFGO0FBQ3BCLDBCQUFpQkEsTUFBTUMsSUFBSyxpQ0FBN0I7QUFDQyxhQUFJRCxNQUFNQyxJQUFLLG9CQUZLLEdBQXZCOztBQUlBLFdBQU87QUFDTEMsK0JBQXlCQyxJQUF6QixFQUErQjtBQUM3QlIsZ0JBQVFTLE1BQVIsQ0FBZSxFQUFDRCxJQUFELEVBQU9FLFNBQVNQLFdBQWhCLEVBQWY7QUFDRCxPQUhJOztBQUtMUSw2QkFBdUJILElBQXZCLEVBQTZCO0FBQzNCQSxhQUFLSSxVQUFMLENBQWdCQyxPQUFoQixDQUF3QkMsYUFBYTtBQUNuQyxjQUFJQSxVQUFVbkIsSUFBVixLQUFtQix3QkFBbkI7QUFDQW1CLG9CQUFVQyxRQUFWLENBQW1CVCxJQUFuQixLQUE0QixTQURoQyxFQUMyQztBQUN6Q04sb0JBQVFTLE1BQVIsQ0FBZSxFQUFDRCxJQUFELEVBQU9FLFNBQVNQLFdBQWhCLEVBQWY7QUFDRCxXQUhELE1BR08sSUFBSVcsVUFBVW5CLElBQVYsS0FBbUIsaUJBQW5CO0FBQ1BtQixvQkFBVUMsUUFBVixDQUFtQlQsSUFBbkIsS0FBNEIsU0FEekIsRUFDb0M7QUFDekNOLG9CQUFRUyxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRSxTQUFTTixlQUFlVSxTQUFmLENBQWhCLEVBQWY7QUFDRDtBQUNGLFNBUkQ7QUFTRCxPQWZJLEVBQVA7O0FBaUJELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1kZWZhdWx0LWV4cG9ydCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIC8vIGlnbm9yZSBub24tbW9kdWxlc1xuICAgIGlmIChjb250ZXh0LnBhcnNlck9wdGlvbnMuc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH1cblxuICAgIGNvbnN0IHByZWZlck5hbWVkID0gJ1ByZWZlciBuYW1lZCBleHBvcnRzLidcbiAgICBjb25zdCBub0FsaWFzRGVmYXVsdCA9ICh7bG9jYWx9KSA9PlxuICAgICAgYERvIG5vdCBhbGlhcyBcXGAke2xvY2FsLm5hbWV9XFxgIGFzIFxcYGRlZmF1bHRcXGAuIEp1c3QgZXhwb3J0IGAgK1xuICAgICAgYFxcYCR7bG9jYWwubmFtZX1cXGAgaXRzZWxmIGluc3RlYWQuYFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlOiBwcmVmZXJOYW1lZH0pXG4gICAgICB9LFxuXG4gICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goc3BlY2lmaWVyID0+IHtcbiAgICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJyAmJlxuICAgICAgICAgICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7bm9kZSwgbWVzc2FnZTogcHJlZmVyTmFtZWR9KVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdFeHBvcnRTcGVjaWZpZXInICYmXG4gICAgICAgICAgICAgIHNwZWNpZmllci5leHBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlOiBub0FsaWFzRGVmYXVsdChzcGVjaWZpZXIpfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZWZhdWx0LWV4cG9ydC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwicHJlZmVyTmFtZWQiLCJub0FsaWFzRGVmYXVsdCIsImxvY2FsIiwibmFtZSIsIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJtZXNzYWdlIiwiRXhwb3J0TmFtZWREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwic3BlY2lmaWVyIiwiZXhwb3J0ZWQiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxtQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsU0FBT0MsT0FBUCxFQUFnQjtBQUNkO0FBQ0EsUUFBSUEsUUFBUUMsYUFBUixDQUFzQkMsVUFBdEIsS0FBcUMsUUFBekMsRUFBbUQ7QUFDakQsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsVUFBTUMsY0FBYyx1QkFBcEI7QUFDQSxVQUFNQyxpQkFBaUIsZUFBR0MsS0FBSCxRQUFHQSxLQUFIO0FBQ3BCLDBCQUFpQkEsTUFBTUMsSUFBSyxpQ0FBN0I7QUFDQyxhQUFJRCxNQUFNQyxJQUFLLG9CQUZLLEdBQXZCOztBQUlBLFdBQU87QUFDTEMsK0JBQXlCQyxJQUF6QixFQUErQjtBQUM3QlIsZ0JBQVFTLE1BQVIsQ0FBZSxFQUFFRCxJQUFGLEVBQVFFLFNBQVNQLFdBQWpCLEVBQWY7QUFDRCxPQUhJOztBQUtMUSw2QkFBdUJILElBQXZCLEVBQTZCO0FBQzNCQSxhQUFLSSxVQUFMLENBQWdCQyxPQUFoQixDQUF3QkMsYUFBYTtBQUNuQyxjQUFJQSxVQUFVbkIsSUFBVixLQUFtQix3QkFBbkI7QUFDQW1CLG9CQUFVQyxRQUFWLENBQW1CVCxJQUFuQixLQUE0QixTQURoQyxFQUMyQztBQUN6Q04sb0JBQVFTLE1BQVIsQ0FBZSxFQUFFRCxJQUFGLEVBQVFFLFNBQVNQLFdBQWpCLEVBQWY7QUFDRCxXQUhELE1BR08sSUFBSVcsVUFBVW5CLElBQVYsS0FBbUIsaUJBQW5CO0FBQ1BtQixvQkFBVUMsUUFBVixDQUFtQlQsSUFBbkIsS0FBNEIsU0FEekIsRUFDb0M7QUFDekNOLG9CQUFRUyxNQUFSLENBQWUsRUFBRUQsSUFBRixFQUFRRSxTQUFTTixlQUFlVSxTQUFmLENBQWpCLEVBQWY7QUFDRDtBQUNGLFNBUkQ7QUFTRCxPQWZJLEVBQVA7O0FBaUJELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tZGVmYXVsdC1leHBvcnQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICAvLyBpZ25vcmUgbm9uLW1vZHVsZXNcbiAgICBpZiAoY29udGV4dC5wYXJzZXJPcHRpb25zLnNvdXJjZVR5cGUgIT09ICdtb2R1bGUnKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZmVyTmFtZWQgPSAnUHJlZmVyIG5hbWVkIGV4cG9ydHMuJztcbiAgICBjb25zdCBub0FsaWFzRGVmYXVsdCA9ICh7IGxvY2FsIH0pID0+XG4gICAgICBgRG8gbm90IGFsaWFzIFxcYCR7bG9jYWwubmFtZX1cXGAgYXMgXFxgZGVmYXVsdFxcYC4gSnVzdCBleHBvcnQgYCArXG4gICAgICBgXFxgJHtsb2NhbC5uYW1lfVxcYCBpdHNlbGYgaW5zdGVhZC5gO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogcHJlZmVyTmFtZWQgfSk7XG4gICAgICB9LFxuXG4gICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goc3BlY2lmaWVyID0+IHtcbiAgICAgICAgICBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJyAmJlxuICAgICAgICAgICAgICBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2U6IHByZWZlck5hbWVkIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3BlY2lmaWVyLnR5cGUgPT09ICdFeHBvcnRTcGVjaWZpZXInICYmXG4gICAgICAgICAgICAgIHNwZWNpZmllci5leHBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogbm9BbGlhc0RlZmF1bHQoc3BlY2lmaWVyKSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js b/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js index f641eadd8f..01ace78c82 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-deprecated.js @@ -9,10 +9,7 @@ function message(deprecation) { function getDeprecation(metadata) { if (!metadata || !metadata.doc) return; - let deprecation; - if (metadata.doc.tags.some(t => t.title === 'deprecated' && (deprecation = t))) { - return deprecation; - } + return metadata.doc.tags.find(t => t.title === 'deprecated'); } module.exports = { @@ -25,8 +22,8 @@ module.exports = { create: function (context) { - const deprecated = new Map(), - namespaces = new Map(); + const deprecated = new Map(); + const namespaces = new Map(); function checkSpecifiers(node) { if (node.type !== 'ImportDeclaration') return; @@ -35,9 +32,8 @@ module.exports = { const imports = _ExportMap2.default.get(node.source.value, context); if (imports == null) return; - let moduleDeprecation; - if (imports.doc && - imports.doc.tags.some(t => t.title === 'deprecated' && (moduleDeprecation = t))) { + const moduleDeprecation = imports.doc && imports.doc.tags.find(t => t.title === 'deprecated'); + if (moduleDeprecation) { context.report({ node, message: message(moduleDeprecation) }); } @@ -47,7 +43,7 @@ module.exports = { } node.specifiers.forEach(function (im) { - let imported, local; + let imported;let local; switch (im.type) { @@ -114,8 +110,8 @@ module.exports = { if ((0, _declaredScope2.default)(context, dereference.object.name) !== 'module') return; // go deep - var namespace = namespaces.get(dereference.object.name); - var namepath = [dereference.object.name]; + let namespace = namespaces.get(dereference.object.name); + const namepath = [dereference.object.name]; // while property is namespace and parent is member expression, keep validating while (namespace instanceof _ExportMap2.default && dereference.type === 'MemberExpression') { @@ -140,4 +136,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZXByZWNhdGVkLmpzIl0sIm5hbWVzIjpbIm1lc3NhZ2UiLCJkZXByZWNhdGlvbiIsImRlc2NyaXB0aW9uIiwiZ2V0RGVwcmVjYXRpb24iLCJtZXRhZGF0YSIsImRvYyIsInRhZ3MiLCJzb21lIiwidCIsInRpdGxlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJkZXByZWNhdGVkIiwiTWFwIiwibmFtZXNwYWNlcyIsImNoZWNrU3BlY2lmaWVycyIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInZhbHVlIiwibW9kdWxlRGVwcmVjYXRpb24iLCJyZXBvcnQiLCJlcnJvcnMiLCJsZW5ndGgiLCJyZXBvcnRFcnJvcnMiLCJzcGVjaWZpZXJzIiwiZm9yRWFjaCIsImltIiwiaW1wb3J0ZWQiLCJsb2NhbCIsInNpemUiLCJzZXQiLCJuYW1lIiwiZXhwb3J0ZWQiLCJuYW1lc3BhY2UiLCJib2R5IiwicGFyZW50IiwicHJvcGVydHkiLCJzbGljZSIsImhhcyIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwibmFtZXBhdGgiLCJjb21wdXRlZCIsInB1c2giXSwibWFwcGluZ3MiOiJhQUFBLGtFO0FBQ0EseUM7QUFDQSxxQzs7QUFFQSxTQUFTQSxPQUFULENBQWlCQyxXQUFqQixFQUE4QjtBQUM1QixTQUFPLGdCQUFnQkEsWUFBWUMsV0FBWixHQUEwQixPQUFPRCxZQUFZQyxXQUE3QyxHQUEyRCxHQUEzRSxDQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDQSxRQUFELElBQWEsQ0FBQ0EsU0FBU0MsR0FBM0IsRUFBZ0M7O0FBRWhDLE1BQUlKLFdBQUo7QUFDQSxNQUFJRyxTQUFTQyxHQUFULENBQWFDLElBQWIsQ0FBa0JDLElBQWxCLENBQXVCQyxLQUFLQSxF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QyxZQUFZRyxRQUFoQixFQUEwQjs7QUFFMUIsZ0JBQU1oRCxXQUFXdUMsVUFBVWhCLEdBQVYsQ0FBY3NCLFlBQVlILFFBQVosQ0FBcUJMLElBQW5DLENBQWpCOztBQUVBLGNBQUksQ0FBQ3JDLFFBQUwsRUFBZTtBQUNmLGdCQUFNSCxjQUFjRSxlQUFlQyxRQUFmLENBQXBCOztBQUVBLGNBQUlILFdBQUosRUFBaUI7QUFDZmlCLG9CQUFRWSxNQUFSLENBQWUsRUFBRVAsTUFBTTBCLFlBQVlILFFBQXBCLEVBQThCOUMsU0FBU0EsUUFBUUMsV0FBUixDQUF2QyxFQUFmO0FBQ0Q7O0FBRUQ7QUFDQWtELG1CQUFTRSxJQUFULENBQWNKLFlBQVlILFFBQVosQ0FBcUJMLElBQW5DO0FBQ0FFLHNCQUFZdkMsU0FBU3VDLFNBQXJCO0FBQ0FNLHdCQUFjQSxZQUFZSixNQUExQjtBQUNEO0FBQ0YsT0FsREksRUFBUDs7QUFvREQsR0E1SGMsRUFBakIiLCJmaWxlIjoibm8tZGVwcmVjYXRlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWNsYXJlZFNjb3BlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvZGVjbGFyZWRTY29wZSdcbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIG1lc3NhZ2UoZGVwcmVjYXRpb24pIHtcbiAgcmV0dXJuICdEZXByZWNhdGVkJyArIChkZXByZWNhdGlvbi5kZXNjcmlwdGlvbiA/ICc6ICcgKyBkZXByZWNhdGlvbi5kZXNjcmlwdGlvbiA6ICcuJylcbn1cblxuZnVuY3Rpb24gZ2V0RGVwcmVjYXRpb24obWV0YWRhdGEpIHtcbiAgaWYgKCFtZXRhZGF0YSB8fCAhbWV0YWRhdGEuZG9jKSByZXR1cm5cblxuICBsZXQgZGVwcmVjYXRpb25cbiAgaWYgKG1ldGFkYXRhLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKGRlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgcmV0dXJuIGRlcHJlY2F0aW9uXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1kZXByZWNhdGVkJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBkZXByZWNhdGVkID0gbmV3IE1hcCgpXG4gICAgICAgICwgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTcGVjaWZpZXJzKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnR5cGUgIT09ICdJbXBvcnREZWNsYXJhdGlvbicpIHJldHVyblxuICAgICAgaWYgKG5vZGUuc291cmNlID09IG51bGwpIHJldHVybiAvLyBsb2NhbCBleHBvcnQsIGlnbm9yZVxuXG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoaW1wb3J0cyA9PSBudWxsKSByZXR1cm5cblxuICAgICAgbGV0IG1vZHVsZURlcHJlY2F0aW9uXG4gICAgICBpZiAoaW1wb3J0cy5kb2MgJiZcbiAgICAgICAgICBpbXBvcnRzLmRvYy50YWdzLnNvbWUodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcgJiYgKG1vZHVsZURlcHJlY2F0aW9uID0gdCkpKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZTogbWVzc2FnZShtb2R1bGVEZXByZWNhdGlvbikgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbm9kZS5zcGVjaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKGltKSB7XG4gICAgICAgIGxldCBpbXBvcnRlZCwgbG9jYWxcbiAgICAgICAgc3dpdGNoIChpbS50eXBlKSB7XG5cblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6e1xuICAgICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHJldHVyblxuICAgICAgICAgICAgbmFtZXNwYWNlcy5zZXQoaW0ubG9jYWwubmFtZSwgaW1wb3J0cylcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOlxuICAgICAgICAgICAgaW1wb3J0ZWQgPSAnZGVmYXVsdCdcbiAgICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGNhc2UgJ0ltcG9ydFNwZWNpZmllcic6XG4gICAgICAgICAgICBpbXBvcnRlZCA9IGltLmltcG9ydGVkLm5hbWVcbiAgICAgICAgICAgIGxvY2FsID0gaW0ubG9jYWwubmFtZVxuICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAvLyBjYW4ndCBoYW5kbGUgdGhpcyBvbmVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHVua25vd24gdGhpbmcgY2FuJ3QgYmUgZGVwcmVjYXRlZFxuICAgICAgICBjb25zdCBleHBvcnRlZCA9IGltcG9ydHMuZ2V0KGltcG9ydGVkKVxuICAgICAgICBpZiAoZXhwb3J0ZWQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgLy8gY2FwdHVyZSBpbXBvcnQgb2YgZGVlcCBuYW1lc3BhY2VcbiAgICAgICAgaWYgKGV4cG9ydGVkLm5hbWVzcGFjZSkgbmFtZXNwYWNlcy5zZXQobG9jYWwsIGV4cG9ydGVkLm5hbWVzcGFjZSlcblxuICAgICAgICBjb25zdCBkZXByZWNhdGlvbiA9IGdldERlcHJlY2F0aW9uKGltcG9ydHMuZ2V0KGltcG9ydGVkKSlcbiAgICAgICAgaWYgKCFkZXByZWNhdGlvbikgcmV0dXJuXG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBpbSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcblxuICAgICAgICBkZXByZWNhdGVkLnNldChsb2NhbCwgZGVwcmVjYXRpb24pXG5cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdQcm9ncmFtJzogKHsgYm9keSB9KSA9PiBib2R5LmZvckVhY2goY2hlY2tTcGVjaWZpZXJzKSxcblxuICAgICAgJ0lkZW50aWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmIG5vZGUucGFyZW50LnByb3BlcnR5ID09PSBub2RlKSB7XG4gICAgICAgICAgcmV0dXJuIC8vIGhhbmRsZWQgYnkgTWVtYmVyRXhwcmVzc2lvblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWdub3JlIHNwZWNpZmllciBpZGVudGlmaWVyc1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZS5zbGljZSgwLCA2KSA9PT0gJ0ltcG9ydCcpIHJldHVyblxuXG4gICAgICAgIGlmICghZGVwcmVjYXRlZC5oYXMobm9kZS5uYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbm9kZS5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVyblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlKGRlcHJlY2F0ZWQuZ2V0KG5vZGUubmFtZSkpLFxuICAgICAgICB9KVxuICAgICAgfSxcblxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBmdW5jdGlvbiAoZGVyZWZlcmVuY2UpIHtcbiAgICAgICAgaWYgKGRlcmVmZXJlbmNlLm9iamVjdC50eXBlICE9PSAnSWRlbnRpZmllcicpIHJldHVyblxuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSkgcmV0dXJuXG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpICE9PSAnbW9kdWxlJykgcmV0dXJuXG5cbiAgICAgICAgLy8gZ28gZGVlcFxuICAgICAgICB2YXIgbmFtZXNwYWNlID0gbmFtZXNwYWNlcy5nZXQoZGVyZWZlcmVuY2Uub2JqZWN0Lm5hbWUpXG4gICAgICAgIHZhciBuYW1lcGF0aCA9IFtkZXJlZmVyZW5jZS5vYmplY3QubmFtZV1cbiAgICAgICAgLy8gd2hpbGUgcHJvcGVydHkgaXMgbmFtZXNwYWNlIGFuZCBwYXJlbnQgaXMgbWVtYmVyIGV4cHJlc3Npb24sIGtlZXAgdmFsaWRhdGluZ1xuICAgICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICAvLyBpZ25vcmUgY29tcHV0ZWQgcGFydHMgZm9yIG5vd1xuICAgICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkgcmV0dXJuXG5cbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IG5hbWVzcGFjZS5nZXQoZGVyZWZlcmVuY2UucHJvcGVydHkubmFtZSlcblxuICAgICAgICAgIGlmICghbWV0YWRhdGEpIGJyZWFrXG4gICAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihtZXRhZGF0YSlcblxuICAgICAgICAgIGlmIChkZXByZWNhdGlvbikge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBkZXJlZmVyZW5jZS5wcm9wZXJ0eSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBzdGFzaCBhbmQgcG9wXG4gICAgICAgICAgbmFtZXBhdGgucHVzaChkZXJlZmVyZW5jZS5wcm9wZXJ0eS5uYW1lKVxuICAgICAgICAgIG5hbWVzcGFjZSA9IG1ldGFkYXRhLm5hbWVzcGFjZVxuICAgICAgICAgIGRlcmVmZXJlbmNlID0gZGVyZWZlcmVuY2UucGFyZW50XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kZXByZWNhdGVkLmpzIl0sIm5hbWVzIjpbIm1lc3NhZ2UiLCJkZXByZWNhdGlvbiIsImRlc2NyaXB0aW9uIiwiZ2V0RGVwcmVjYXRpb24iLCJtZXRhZGF0YSIsImRvYyIsInRhZ3MiLCJmaW5kIiwidCIsInRpdGxlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJkZXByZWNhdGVkIiwiTWFwIiwibmFtZXNwYWNlcyIsImNoZWNrU3BlY2lmaWVycyIsIm5vZGUiLCJzb3VyY2UiLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInZhbHVlIiwibW9kdWxlRGVwcmVjYXRpb24iLCJyZXBvcnQiLCJlcnJvcnMiLCJsZW5ndGgiLCJyZXBvcnRFcnJvcnMiLCJzcGVjaWZpZXJzIiwiZm9yRWFjaCIsImltIiwiaW1wb3J0ZWQiLCJsb2NhbCIsInNpemUiLCJzZXQiLCJuYW1lIiwiZXhwb3J0ZWQiLCJuYW1lc3BhY2UiLCJib2R5IiwicGFyZW50IiwicHJvcGVydHkiLCJzbGljZSIsImhhcyIsImRlcmVmZXJlbmNlIiwib2JqZWN0IiwibmFtZXBhdGgiLCJjb21wdXRlZCIsInB1c2giXSwibWFwcGluZ3MiOiJhQUFBLGtFO0FBQ0EseUM7QUFDQSxxQzs7QUFFQSxTQUFTQSxPQUFULENBQWlCQyxXQUFqQixFQUE4QjtBQUM1QixTQUFPLGdCQUFnQkEsWUFBWUMsV0FBWixHQUEwQixPQUFPRCxZQUFZQyxXQUE3QyxHQUEyRCxHQUEzRSxDQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDaEMsTUFBSSxDQUFDQSxRQUFELElBQWEsQ0FBQ0EsU0FBU0MsR0FBM0IsRUFBZ0M7O0FBRWhDLFNBQU9ELFNBQVNDLEdBQVQsQ0FBYUMsSUFBYixDQUFrQkMsSUFBbEIsQ0FBdUJDLEtBQUtBLEVBQUVDLEtBQUYsS0FBWSxZ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QkwsSUFBbkMsQ0FBakI7O0FBRUEsY0FBSSxDQUFDckMsUUFBTCxFQUFlO0FBQ2YsZ0JBQU1ILGNBQWNFLGVBQWVDLFFBQWYsQ0FBcEI7O0FBRUEsY0FBSUgsV0FBSixFQUFpQjtBQUNmaUIsb0JBQVFZLE1BQVIsQ0FBZSxFQUFFUCxNQUFNMEIsWUFBWUgsUUFBcEIsRUFBOEI5QyxTQUFTQSxRQUFRQyxXQUFSLENBQXZDLEVBQWY7QUFDRDs7QUFFRDtBQUNBa0QsbUJBQVNFLElBQVQsQ0FBY0osWUFBWUgsUUFBWixDQUFxQkwsSUFBbkM7QUFDQUUsc0JBQVl2QyxTQUFTdUMsU0FBckI7QUFDQU0sd0JBQWNBLFlBQVlKLE1BQTFCO0FBQ0Q7QUFDRixPQWxESSxFQUFQOztBQW9ERCxHQTNIYyxFQUFqQiIsImZpbGUiOiJuby1kZXByZWNhdGVkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlY2xhcmVkU2NvcGUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9kZWNsYXJlZFNjb3BlJztcbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCc7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuZnVuY3Rpb24gbWVzc2FnZShkZXByZWNhdGlvbikge1xuICByZXR1cm4gJ0RlcHJlY2F0ZWQnICsgKGRlcHJlY2F0aW9uLmRlc2NyaXB0aW9uID8gJzogJyArIGRlcHJlY2F0aW9uLmRlc2NyaXB0aW9uIDogJy4nKTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVwcmVjYXRpb24obWV0YWRhdGEpIHtcbiAgaWYgKCFtZXRhZGF0YSB8fCAhbWV0YWRhdGEuZG9jKSByZXR1cm47XG5cbiAgcmV0dXJuIG1ldGFkYXRhLmRvYy50YWdzLmZpbmQodCA9PiB0LnRpdGxlID09PSAnZGVwcmVjYXRlZCcpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWRlcHJlY2F0ZWQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IGRlcHJlY2F0ZWQgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgbmFtZXNwYWNlcyA9IG5ldyBNYXAoKTtcblxuICAgIGZ1bmN0aW9uIGNoZWNrU3BlY2lmaWVycyhub2RlKSB7XG4gICAgICBpZiAobm9kZS50eXBlICE9PSAnSW1wb3J0RGVjbGFyYXRpb24nKSByZXR1cm47XG4gICAgICBpZiAobm9kZS5zb3VyY2UgPT0gbnVsbCkgcmV0dXJuOyAvLyBsb2NhbCBleHBvcnQsIGlnbm9yZVxuXG4gICAgICBjb25zdCBpbXBvcnRzID0gRXhwb3J0cy5nZXQobm9kZS5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBtb2R1bGVEZXByZWNhdGlvbiA9IGltcG9ydHMuZG9jICYmIGltcG9ydHMuZG9jLnRhZ3MuZmluZCh0ID0+IHQudGl0bGUgPT09ICdkZXByZWNhdGVkJyk7XG4gICAgICBpZiAobW9kdWxlRGVwcmVjYXRpb24pIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlLCBtZXNzYWdlOiBtZXNzYWdlKG1vZHVsZURlcHJlY2F0aW9uKSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydHMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBpbXBvcnRzLnJlcG9ydEVycm9ycyhjb250ZXh0LCBub2RlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaW0pIHtcbiAgICAgICAgbGV0IGltcG9ydGVkOyBsZXQgbG9jYWw7XG4gICAgICAgIHN3aXRjaCAoaW0udHlwZSkge1xuXG5cbiAgICAgICAgY2FzZSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzp7XG4gICAgICAgICAgaWYgKCFpbXBvcnRzLnNpemUpIHJldHVybjtcbiAgICAgICAgICBuYW1lc3BhY2VzLnNldChpbS5sb2NhbC5uYW1lLCBpbXBvcnRzKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzpcbiAgICAgICAgICBpbXBvcnRlZCA9ICdkZWZhdWx0JztcbiAgICAgICAgICBsb2NhbCA9IGltLmxvY2FsLm5hbWU7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnSW1wb3J0U3BlY2lmaWVyJzpcbiAgICAgICAgICBpbXBvcnRlZCA9IGltLmltcG9ydGVkLm5hbWU7XG4gICAgICAgICAgbG9jYWwgPSBpbS5sb2NhbC5uYW1lO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6IHJldHVybjsgLy8gY2FuJ3QgaGFuZGxlIHRoaXMgb25lXG4gICAgICAgIH1cblxuICAgICAgICAvLyB1bmtub3duIHRoaW5nIGNhbid0IGJlIGRlcHJlY2F0ZWRcbiAgICAgICAgY29uc3QgZXhwb3J0ZWQgPSBpbXBvcnRzLmdldChpbXBvcnRlZCk7XG4gICAgICAgIGlmIChleHBvcnRlZCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgLy8gY2FwdHVyZSBpbXBvcnQgb2YgZGVlcCBuYW1lc3BhY2VcbiAgICAgICAgaWYgKGV4cG9ydGVkLm5hbWVzcGFjZSkgbmFtZXNwYWNlcy5zZXQobG9jYWwsIGV4cG9ydGVkLm5hbWVzcGFjZSk7XG5cbiAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihpbXBvcnRzLmdldChpbXBvcnRlZCkpO1xuICAgICAgICBpZiAoIWRlcHJlY2F0aW9uKSByZXR1cm47XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoeyBub2RlOiBpbSwgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGlvbikgfSk7XG5cbiAgICAgICAgZGVwcmVjYXRlZC5zZXQobG9jYWwsIGRlcHJlY2F0aW9uKTtcblxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdQcm9ncmFtJzogKHsgYm9keSB9KSA9PiBib2R5LmZvckVhY2goY2hlY2tTcGVjaWZpZXJzKSxcblxuICAgICAgJ0lkZW50aWZpZXInOiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nICYmIG5vZGUucGFyZW50LnByb3BlcnR5ID09PSBub2RlKSB7XG4gICAgICAgICAgcmV0dXJuOyAvLyBoYW5kbGVkIGJ5IE1lbWJlckV4cHJlc3Npb25cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlnbm9yZSBzcGVjaWZpZXIgaWRlbnRpZmllcnNcbiAgICAgICAgaWYgKG5vZGUucGFyZW50LnR5cGUuc2xpY2UoMCwgNikgPT09ICdJbXBvcnQnKSByZXR1cm47XG5cbiAgICAgICAgaWYgKCFkZXByZWNhdGVkLmhhcyhub2RlLm5hbWUpKSByZXR1cm47XG5cbiAgICAgICAgaWYgKGRlY2xhcmVkU2NvcGUoY29udGV4dCwgbm9kZS5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVybjtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogbWVzc2FnZShkZXByZWNhdGVkLmdldChub2RlLm5hbWUpKSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuXG4gICAgICAnTWVtYmVyRXhwcmVzc2lvbic6IGZ1bmN0aW9uIChkZXJlZmVyZW5jZSkge1xuICAgICAgICBpZiAoZGVyZWZlcmVuY2Uub2JqZWN0LnR5cGUgIT09ICdJZGVudGlmaWVyJykgcmV0dXJuO1xuICAgICAgICBpZiAoIW5hbWVzcGFjZXMuaGFzKGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChkZWNsYXJlZFNjb3BlKGNvbnRleHQsIGRlcmVmZXJlbmNlLm9iamVjdC5uYW1lKSAhPT0gJ21vZHVsZScpIHJldHVybjtcblxuICAgICAgICAvLyBnbyBkZWVwXG4gICAgICAgIGxldCBuYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmdldChkZXJlZmVyZW5jZS5vYmplY3QubmFtZSk7XG4gICAgICAgIGNvbnN0IG5hbWVwYXRoID0gW2RlcmVmZXJlbmNlLm9iamVjdC5uYW1lXTtcbiAgICAgICAgLy8gd2hpbGUgcHJvcGVydHkgaXMgbmFtZXNwYWNlIGFuZCBwYXJlbnQgaXMgbWVtYmVyIGV4cHJlc3Npb24sIGtlZXAgdmFsaWRhdGluZ1xuICAgICAgICB3aGlsZSAobmFtZXNwYWNlIGluc3RhbmNlb2YgRXhwb3J0cyAmJlxuICAgICAgICAgICAgICAgZGVyZWZlcmVuY2UudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG5cbiAgICAgICAgICAvLyBpZ25vcmUgY29tcHV0ZWQgcGFydHMgZm9yIG5vd1xuICAgICAgICAgIGlmIChkZXJlZmVyZW5jZS5jb21wdXRlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBuYW1lc3BhY2UuZ2V0KGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpO1xuXG4gICAgICAgICAgaWYgKCFtZXRhZGF0YSkgYnJlYWs7XG4gICAgICAgICAgY29uc3QgZGVwcmVjYXRpb24gPSBnZXREZXByZWNhdGlvbihtZXRhZGF0YSk7XG5cbiAgICAgICAgICBpZiAoZGVwcmVjYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZTogZGVyZWZlcmVuY2UucHJvcGVydHksIG1lc3NhZ2U6IG1lc3NhZ2UoZGVwcmVjYXRpb24pIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHN0YXNoIGFuZCBwb3BcbiAgICAgICAgICBuYW1lcGF0aC5wdXNoKGRlcmVmZXJlbmNlLnByb3BlcnR5Lm5hbWUpO1xuICAgICAgICAgIG5hbWVzcGFjZSA9IG1ldGFkYXRhLm5hbWVzcGFjZTtcbiAgICAgICAgICBkZXJlZmVyZW5jZSA9IGRlcmVmZXJlbmNlLnBhcmVudDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js b/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js index 951f3b7fe0..a5fcb135fc 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-duplicates.js @@ -285,4 +285,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kdXBsaWNhdGVzLmpzIl0sIm5hbWVzIjpbImNoZWNrSW1wb3J0cyIsImltcG9ydGVkIiwiY29udGV4dCIsImVudHJpZXMiLCJtb2R1bGUiLCJub2RlcyIsImxlbmd0aCIsIm1lc3NhZ2UiLCJmaXJzdCIsInJlc3QiLCJzb3VyY2VDb2RlIiwiZ2V0U291cmNlQ29kZSIsImZpeCIsImdldEZpeCIsInJlcG9ydCIsIm5vZGUiLCJzb3VyY2UiLCJnZXRDb21tZW50c0JlZm9yZSIsInVuZGVmaW5lZCIsImhhc1Byb2JsZW1hdGljQ29tbWVudHMiLCJoYXNOYW1lc3BhY2UiLCJkZWZhdWx0SW1wb3J0TmFtZXMiLCJTZXQiLCJtYXAiLCJnZXREZWZhdWx0SW1wb3J0TmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJzaXplIiwicmVzdFdpdGhvdXRDb21tZW50cyIsInNwZWNpZmllcnMiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJvcGVuQnJhY2UiLCJmaW5kIiwidG9rZW4iLCJpc1B1bmN0dWF0b3IiLCJjbG9zZUJyYWNlIiwiaW1wb3J0Tm9kZSIsInRleHQiLCJzbGljZSIsInJhbmdlIiwiaGFzVHJhaWxpbmdDb21tYSIsImdldFRva2VuQmVmb3JlIiwiaXNFbXB0eSIsImhhc1NwZWNpZmllcnMiLCJ1bm5lY2Vzc2FyeUltcG9ydHMiLCJzb21lIiwic3BlY2lmaWVyIiwic2hvdWxkQWRkRGVmYXVsdCIsInNob3VsZEFkZFNwZWNpZmllcnMiLCJzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSIsImZpeGVyIiwiZmlyc3RUb2tlbiIsImdldEZpcnN0VG9rZW4iLCJkZWZhdWx0SW1wb3J0TmFtZSIsImZpcnN0SGFzVHJhaWxpbmdDb21tYSIsImZpcnN0SXNFbXB0eSIsInJlZHVjZSIsInJlc3VsdCIsIm5lZWRzQ29tbWEiLCJzcGVjaWZpZXJzVGV4dCIsImZpeGVzIiwicHVzaCIsImluc2VydFRleHRBZnRlciIsImluc2VydFRleHRCZWZvcmUiLCJyZW1vdmUiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwibG9jYWwiLCJuYW1lIiwiaGFzQ29tbWVudEJlZm9yZSIsImhhc0NvbW1lbnRBZnRlciIsImhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzIiwiY29tbWVudCIsImxvYyIsImVuZCIsImxpbmUiLCJzdGFydCIsImdldENvbW1lbnRzQWZ0ZXIiLCJvcGVuQnJhY2VJbmRleCIsImZpbmRJbmRleCIsImNsb3NlQnJhY2VJbmRleCIsInNvbWVUb2tlbnMiLCJjb25jYXQiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwicHJvcGVydGllcyIsImNvbnNpZGVyUXVlcnlTdHJpbmciLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImNyZWF0ZSIsImNvbnNpZGVyUXVlcnlTdHJpbmdPcHRpb24iLCJvcHRpb25zIiwiZGVmYXVsdFJlc29sdmVyIiwic291cmNlUGF0aCIsInJlc29sdmVyIiwicGFydHMiLCJtYXRjaCIsIk1hcCIsIm5zSW1wb3J0ZWQiLCJ0eXBlc0ltcG9ydGVkIiwibiIsInJlc29sdmVkUGF0aCIsImltcG9ydE1hcCIsImltcG9ydEtpbmQiLCJoYXMiLCJnZXQiLCJzZXQiXSwibWFwcGluZ3MiOiJxb0JBQUEsc0Q7QUFDQSxxQzs7QUFFQSxTQUFTQSxZQUFULENBQXNCQyxRQUF0QixFQUFnQ0MsT0FBaEMsRUFBeUM7QUFDdkMscUJBQThCRCxTQUFTRSxPQUFULEVBQTlCLEVBQWtELDJDQUF0Q0MsTUFBc0Msa0JBQTlCQyxLQUE4QjtBQUNoRCxRQUFJQSxNQUFNQyxNQUFOLEdBQWUsQ0FBbkIsRUFBc0I7QUFDcEIsWUFBTUMsVUFBVyxJQUFHSCxNQUFPLDRCQUEzQixDQURvQjtBQUVLQyxXQUZMLFFBRWJHLEtBRmEsYUFFSEMsSUFGRztBQUdwQixZQUFNQyxhQUFhUixRQUFRUyxhQUFSLEVBQW5CO0FBQ0EsWUFBTUMsTUFBTUMsT0FBT0wsS0FBUCxFQUFjQyxJQUFkLEVBQW9C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c29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuZnVuY3Rpb24gY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KSB7XG4gIGZvciAoY29uc3QgW21vZHVsZSwgbm9kZXNdIG9mIGltcG9ydGVkLmVudHJpZXMoKSkge1xuICAgIGlmIChub2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYCcke21vZHVsZX0nIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzLmBcbiAgICAgIGNvbnN0IFtmaXJzdCwgLi4ucmVzdF0gPSBub2Rlc1xuICAgICAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gICAgICBjb25zdCBmaXggPSBnZXRGaXgoZmlyc3QsIHJlc3QsIHNvdXJjZUNvZGUpXG5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZTogZmlyc3Quc291cmNlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBmaXgsIC8vIEF0dGFjaCB0aGUgYXV0b2ZpeCAoaWYgYW55KSB0byB0aGUgZmlyc3QgaW1wb3J0LlxuICAgICAgfSlcblxuICAgICAgZm9yIChjb25zdCBub2RlIG9mIHJlc3QpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IG5vZGUuc291cmNlLFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZpeChmaXJzdCwgcmVzdCwgc291cmNlQ29kZSkge1xuICAvLyBTb3JyeSBFU0xpbnQgPD0gMyB1c2Vycywgbm8gYXV0b2ZpeCBmb3IgeW91LiBBdXRvZml4aW5nIGR1cGxpY2F0ZSBpbXBvcnRzXG4gIC8vIHJlcXVpcmVzIG11bHRpcGxlIGBmaXhlci53aGF0ZXZlcigpYCBjYWxscyBpbiB0aGUgYGZpeGA6IFdlIGJvdGggbmVlZCB0b1xuICAvLyB1cGRhdGUgdGhlIGZpcnN0IG9uZSwgYW5kIHJlbW92ZSB0aGUgcmVzdC4gU3VwcG9ydCBmb3IgbXVsdGlwbGVcbiAgLy8gYGZpeGVyLndoYXRldmVyKClgIGluIGEgc2luZ2xlIGBmaXhgIHdhcyBhZGRlZCBpbiBFU0xpbnQgNC4xLlxuICAvLyBgc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZWAgd2FzIGFkZGVkIGluIDQuMCwgc28gdGhhdCdzIGFuIGVhc3kgdGhpbmcgdG9cbiAgLy8gY2hlY2sgZm9yLlxuICBpZiAodHlwZW9mIHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICAvLyBBZGp1c3RpbmcgdGhlIGZpcnN0IGltcG9ydCBtaWdodCBtYWtlIGl0IG11bHRpbGluZSwgd2hpY2ggY291bGQgYnJlYWtcbiAgLy8gYGVzbGludC1kaXNhYmxlLW5leHQtbGluZWAgY29tbWVudHMgYW5kIHNpbWlsYXIsIHNvIGJhaWwgaWYgdGhlIGZpcnN0XG4gIC8vIGltcG9ydCBoYXMgY29tbWVudHMuIEFsc28sIGlmIHRoZSBmaXJzdCBpbXBvcnQgaXMgYGltcG9ydCAqIGFzIG5zIGZyb21cbiAgLy8gJy4vZm9vJ2AgdGhlcmUncyBub3RoaW5nIHdlIGNhbiBkby5cbiAgaWYgKGhhc1Byb2JsZW1hdGljQ29tbWVudHMoZmlyc3QsIHNvdXJjZUNvZGUpIHx8IGhhc05hbWVzcGFjZShmaXJzdCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCBkZWZhdWx0SW1wb3J0TmFtZXMgPSBuZXcgU2V0KFxuICAgIFtmaXJzdCwgLi4ucmVzdF0ubWFwKGdldERlZmF1bHRJbXBvcnROYW1lKS5maWx0ZXIoQm9vbGVhbilcbiAgKVxuXG4gIC8vIEJhaWwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGRpZmZlcmVudCBkZWZhdWx0IGltcG9ydCBuYW1lcyDigJMgaXQncyB1cCB0byB0aGVcbiAgLy8gdXNlciB0byBjaG9vc2Ugd2hpY2ggb25lIHRvIGtlZXAuXG4gIGlmIChkZWZhdWx0SW1wb3J0TmFtZXMuc2l6ZSA+IDEpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICAvLyBMZWF2ZSBpdCB0byB0aGUgdXNlciB0byBoYW5kbGUgY29tbWVudHMuIEFsc28gc2tpcCBgaW1wb3J0ICogYXMgbnMgZnJvbVxuICAvLyAnLi9mb28nYCBpbXBvcnRzLCBzaW5jZSB0aGV5IGNhbm5vdCBiZSBtZXJnZWQgaW50byBhbm90aGVyIGltcG9ydC5cbiAgY29uc3QgcmVzdFdpdGhvdXRDb21tZW50cyA9IHJlc3QuZmlsdGVyKG5vZGUgPT4gIShcbiAgICBoYXNQcm9ibGVtYXRpY0NvbW1lbnRzKG5vZGUsIHNvdXJjZUNvZGUpIHx8XG4gICAgaGFzTmFtZXNwYWNlKG5vZGUpXG4gICkpXG5cbiAgY29uc3Qgc3BlY2lmaWVycyA9IHJlc3RXaXRob3V0Q29tbWVudHNcbiAgICAubWFwKG5vZGUgPT4ge1xuICAgICAgY29uc3QgdG9rZW5zID0gc291cmNlQ29kZS5nZXRUb2tlbnMobm9kZSlcbiAgICAgIGNvbnN0IG9wZW5CcmFjZSA9IHRva2Vucy5maW5kKHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ3snKSlcbiAgICAgIGNvbnN0IGNsb3NlQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd9JykpXG5cbiAgICAgIGlmIChvcGVuQnJhY2UgPT0gbnVsbCB8fCBjbG9zZUJyYWNlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnROb2RlOiBub2RlLFxuICAgICAgICB0ZXh0OiBzb3VyY2VDb2RlLnRleHQuc2xpY2Uob3BlbkJyYWNlLnJhbmdlWzFdLCBjbG9zZUJyYWNlLnJhbmdlWzBdKSxcbiAgICAgICAgaGFzVHJhaWxpbmdDb21tYTogaXNQdW5jdHVhdG9yKHNvdXJjZUNvZGUuZ2V0VG9rZW5CZWZvcmUoY2xvc2VCcmFjZSksICcsJyksXG4gICAgICAgIGlzRW1wdHk6ICFoYXNTcGVjaWZpZXJzKG5vZGUpLFxuICAgICAgfVxuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKVxuXG4gIGNvbnN0IHVubmVjZXNzYXJ5SW1wb3J0cyA9IHJlc3RXaXRob3V0Q29tbWVudHMuZmlsdGVyKG5vZGUgPT5cbiAgICAhaGFzU3BlY2lmaWVycyhub2RlKSAmJlxuICAgICFoYXNOYW1lc3BhY2Uobm9kZSkgJiZcbiAgICAhc3BlY2lmaWVycy5zb21lKHNwZWNpZmllciA9PiBzcGVjaWZpZXIuaW1wb3J0Tm9kZSA9PT0gbm9kZSlcbiAgKVxuXG4gIGNvbnN0IHNob3VsZEFkZERlZmF1bHQgPSBnZXREZWZhdWx0SW1wb3J0TmFtZShmaXJzdCkgPT0gbnVsbCAmJiBkZWZhdWx0SW1wb3J0TmFtZXMuc2l6ZSA9PT0gMVxuICBjb25zdCBzaG91bGRBZGRTcGVjaWZpZXJzID0gc3BlY2lmaWVycy5sZW5ndGggPiAwXG4gIGNvbnN0IHNob3VsZFJlbW92ZVVubmVjZXNzYXJ5ID0gdW5uZWNlc3NhcnlJbXBvcnRzLmxlbmd0aCA+IDBcblxuICBpZiAoIShzaG91bGRBZGREZWZhdWx0IHx8IHNob3VsZEFkZFNwZWNpZmllcnMgfHwgc2hvdWxkUmVtb3ZlVW5uZWNlc3NhcnkpKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgcmV0dXJuIGZpeGVyID0+IHtcbiAgICBjb25zdCB0b2tlbnMgPSBzb3VyY2VDb2RlLmdldFRva2VucyhmaXJzdClcbiAgICBjb25zdCBvcGVuQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd7JykpXG4gICAgY29uc3QgY2xvc2VCcmFjZSA9IHRva2Vucy5maW5kKHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ30nKSlcbiAgICBjb25zdCBmaXJzdFRva2VuID0gc291cmNlQ29kZS5nZXRGaXJzdFRva2VuKGZpcnN0KVxuICAgIGNvbnN0IFtkZWZhdWx0SW1wb3J0TmFtZV0gPSBkZWZhdWx0SW1wb3J0TmFtZXNcblxuICAgIGNvbnN0IGZpcnN0SGFzVHJhaWxpbmdDb21tYSA9XG4gICAgICBjbG9zZUJyYWNlICE9IG51bGwgJiZcbiAgICAgIGlzUHVuY3R1YXRvcihzb3VyY2VDb2RlLmdldFRva2VuQmVmb3JlKGNsb3NlQnJhY2UpLCAnLCcpXG4gICAgY29uc3QgZmlyc3RJc0VtcHR5ID0gIWhhc1NwZWNpZmllcnMoZmlyc3QpXG5cbiAgICBjb25zdCBbc3BlY2lmaWVyc1RleHRdID0gc3BlY2lmaWVycy5yZWR1Y2UoXG4gICAgICAoW3Jlc3VsdCwgbmVlZHNDb21tYV0sIHNwZWNpZmllcikgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIG5lZWRzQ29tbWEgJiYgIXNwZWNpZmllci5pc0VtcHR5XG4gICAgICAgICAgICA/IGAke3Jlc3VsdH0sJHtzcGVjaWZpZXIudGV4dH1gXG4gICAgICAgICAgICA6IGAke3Jlc3VsdH0ke3NwZWNpZmllci50ZXh0fWAsXG4gICAgICAgICAgc3BlY2lmaWVyLmlzRW1wdHkgPyBuZWVkc0NvbW1hIDogdHJ1ZSxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFsnJywgIWZpcnN0SGFzVHJhaWxpbmdDb21tYSAmJiAhZmlyc3RJc0VtcHR5XVxuICAgIClcblxuICAgIGNvbnN0IGZpeGVzID0gW11cblxuICAgIGlmIChzaG91bGRBZGREZWZhdWx0ICYmIG9wZW5CcmFjZSA9PSBudWxsICYmIHNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmLCB7Li4ufSBmcm9tICcuL2ZvbydgXG4gICAgICBmaXhlcy5wdXNoKFxuICAgICAgICBmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3RUb2tlbiwgYCAke2RlZmF1bHRJbXBvcnROYW1lfSwgeyR7c3BlY2lmaWVyc1RleHR9fSBmcm9tYClcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlID09IG51bGwgJiYgIXNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmIGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0gZnJvbWApKVxuICAgIH0gZWxzZSBpZiAoc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgIT0gbnVsbCAmJiBjbG9zZUJyYWNlICE9IG51bGwpIHtcbiAgICAgIC8vIGBpbXBvcnQgey4uLn0gZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0sYCkpXG4gICAgICBpZiAoc2hvdWxkQWRkU3BlY2lmaWVycykge1xuICAgICAgICAvLyBgaW1wb3J0IGRlZiwgey4uLn0gZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi4sIC4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLmluc2VydFRleHRCZWZvcmUoY2xvc2VCcmFjZSwgc3BlY2lmaWVyc1RleHQpKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlID09IG51bGwgJiYgc2hvdWxkQWRkU3BlY2lmaWVycykge1xuICAgICAgaWYgKGZpcnN0LnNwZWNpZmllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIGBpbXBvcnQgJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgey4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLmluc2VydFRleHRBZnRlcihmaXJzdFRva2VuLCBgIHske3NwZWNpZmllcnNUZXh0fX0gZnJvbWApKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYGltcG9ydCBkZWYgZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3Quc3BlY2lmaWVyc1swXSwgYCwgeyR7c3BlY2lmaWVyc1RleHR9fWApKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXNob3VsZEFkZERlZmF1bHQgJiYgb3BlbkJyYWNlICE9IG51bGwgJiYgY2xvc2VCcmFjZSAhPSBudWxsKSB7XG4gICAgICAvLyBgaW1wb3J0IHsuLi59ICcuL2ZvbydgIOKGkiBgaW1wb3J0IHsuLi4sIC4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QmVmb3JlKGNsb3NlQnJhY2UsIHNwZWNpZmllcnNUZXh0KSlcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgaW1wb3J0cyB3aG9zZSBzcGVjaWZpZXJzIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIHRoZSBmaXJzdCBpbXBvcnQuXG4gICAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2Ygc3BlY2lmaWVycykge1xuICAgICAgZml4ZXMucHVzaChmaXhlci5yZW1vdmUoc3BlY2lmaWVyLmltcG9ydE5vZGUpKVxuICAgIH1cblxuICAgIC8vIFJlbW92ZSBpbXBvcnRzIHdob3NlIGRlZmF1bHQgaW1wb3J0IGhhcyBiZWVuIG1vdmVkIHRvIHRoZSBmaXJzdCBpbXBvcnQsXG4gICAgLy8gYW5kIHNpZGUtZWZmZWN0LW9ubHkgaW1wb3J0cyB0aGF0IGFyZSB1bm5lY2Vzc2FyeSBkdWUgdG8gdGhlIGZpcnN0XG4gICAgLy8gaW1wb3J0LlxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB1bm5lY2Vzc2FyeUltcG9ydHMpIHtcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVtb3ZlKG5vZGUpKVxuICAgIH1cblxuICAgIHJldHVybiBmaXhlc1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzUHVuY3R1YXRvcihub2RlLCB2YWx1ZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnUHVuY3R1YXRvcicgJiYgbm9kZS52YWx1ZSA9PT0gdmFsdWVcbn1cblxuLy8gR2V0IHRoZSBuYW1lIG9mIHRoZSBkZWZhdWx0IGltcG9ydCBvZiBgbm9kZWAsIGlmIGFueS5cbmZ1bmN0aW9uIGdldERlZmF1bHRJbXBvcnROYW1lKG5vZGUpIHtcbiAgY29uc3QgZGVmYXVsdFNwZWNpZmllciA9IG5vZGUuc3BlY2lmaWVyc1xuICAgIC5maW5kKHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInKVxuICByZXR1cm4gZGVmYXVsdFNwZWNpZmllciAhPSBudWxsID8gZGVmYXVsdFNwZWNpZmllci5sb2NhbC5uYW1lIDogdW5kZWZpbmVkXG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYSBuYW1lc3BhY2UgaW1wb3J0LlxuZnVuY3Rpb24gaGFzTmFtZXNwYWNlKG5vZGUpIHtcbiAgY29uc3Qgc3BlY2lmaWVycyA9IG5vZGUuc3BlY2lmaWVyc1xuICAgIC5maWx0ZXIoc3BlY2lmaWVyID0+IHNwZWNpZmllci50eXBlID09PSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJylcbiAgcmV0dXJuIHNwZWNpZmllcnMubGVuZ3RoID4gMFxufVxuXG4vLyBDaGVja3Mgd2hldGhlciBgbm9kZWAgaGFzIGFueSBub24tZGVmYXVsdCBzcGVjaWZpZXJzLlxuZnVuY3Rpb24gaGFzU3BlY2lmaWVycyhub2RlKSB7XG4gIGNvbnN0IHNwZWNpZmllcnMgPSBub2RlLnNwZWNpZmllcnNcbiAgICAuZmlsdGVyKHNwZWNpZmllciA9PiBzcGVjaWZpZXIudHlwZSA9PT0gJ0ltcG9ydFNwZWNpZmllcicpXG4gIHJldHVybiBzcGVjaWZpZXJzLmxlbmd0aCA+IDBcbn1cblxuLy8gSXQncyBub3Qgb2J2aW91cyB3aGF0IHRoZSB1c2VyIHdhbnRzIHRvIGRvIHdpdGggY29tbWVudHMgYXNzb2NpYXRlZCB3aXRoXG4vLyBkdXBsaWNhdGUgaW1wb3J0cywgc28gc2tpcCBpbXBvcnRzIHdpdGggY29tbWVudHMgd2hlbiBhdXRvZml4aW5nLlxuZnVuY3Rpb24gaGFzUHJvYmxlbWF0aWNDb21tZW50cyhub2RlLCBzb3VyY2VDb2RlKSB7XG4gIHJldHVybiAoXG4gICAgaGFzQ29tbWVudEJlZm9yZShub2RlLCBzb3VyY2VDb2RlKSB8fFxuICAgIGhhc0NvbW1lbnRBZnRlcihub2RlLCBzb3VyY2VDb2RlKSB8fFxuICAgIGhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzKG5vZGUsIHNvdXJjZUNvZGUpXG4gIClcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYG5vZGVgIGhhcyBhIGNvbW1lbnQgKHRoYXQgZW5kcykgb24gdGhlIHByZXZpb3VzIGxpbmUgb3Igb25cbi8vIHRoZSBzYW1lIGxpbmUgYXMgYG5vZGVgIChzdGFydHMpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEJlZm9yZShub2RlLCBzb3VyY2VDb2RlKSB7XG4gIHJldHVybiBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlKG5vZGUpXG4gICAgLnNvbWUoY29tbWVudCA9PiBjb21tZW50LmxvYy5lbmQubGluZSA+PSBub2RlLmxvYy5zdGFydC5saW5lIC0gMSlcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYG5vZGVgIGhhcyBhIGNvbW1lbnQgKHRoYXQgc3RhcnRzKSBvbiB0aGUgc2FtZSBsaW5lIGFzIGBub2RlYFxuLy8gKGVuZHMpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEFmdGVyKG5vZGUsIHNvdXJjZUNvZGUpIHtcbiAgcmV0dXJuIHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNBZnRlcihub2RlKVxuICAgIC5zb21lKGNvbW1lbnQgPT4gY29tbWVudC5sb2Muc3RhcnQubGluZSA9PT0gbm9kZS5sb2MuZW5kLmxpbmUpXG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYW55IGNvbW1lbnRzIF9pbnNpZGUsXyBleGNlcHQgaW5zaWRlIHRoZSBgey4uLn1gXG4vLyBwYXJ0IChpZiBhbnkpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEluc2lkZU5vblNwZWNpZmllcnMobm9kZSwgc291cmNlQ29kZSkge1xuICBjb25zdCB0b2tlbnMgPSBzb3VyY2VDb2RlLmdldFRva2Vucyhub2RlKVxuICBjb25zdCBvcGVuQnJhY2VJbmRleCA9IHRva2Vucy5maW5kSW5kZXgodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAneycpKVxuICBjb25zdCBjbG9zZUJyYWNlSW5kZXggPSB0b2tlbnMuZmluZEluZGV4KHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ30nKSlcbiAgLy8gU2xpY2UgYXdheSB0aGUgZmlyc3QgdG9rZW4sIHNpbmNlIHdlJ3JlIG5vIGxvb2tpbmcgZm9yIGNvbW1lbnRzIF9iZWZvcmVfXG4gIC8vIGBub2RlYCAob25seSBpbnNpZGUpLiBJZiB0aGVyZSdzIGEgYHsuLi59YCBwYXJ0LCBsb29rIGZvciBjb21tZW50cyBiZWZvcmVcbiAgLy8gdGhlIGB7YCwgYnV0IG5vdCBiZWZvcmUgdGhlIGB9YCAoaGVuY2UgdGhlIGArMWBzKS5cbiAgY29uc3Qgc29tZVRva2VucyA9IG9wZW5CcmFjZUluZGV4ID49IDAgJiYgY2xvc2VCcmFjZUluZGV4ID49IDBcbiAgICA/IHRva2Vucy5zbGljZSgxLCBvcGVuQnJhY2VJbmRleCArIDEpLmNvbmNhdCh0b2tlbnMuc2xpY2UoY2xvc2VCcmFjZUluZGV4ICsgMSkpXG4gICAgOiB0b2tlbnMuc2xpY2UoMSlcbiAgcmV0dXJuIHNvbWVUb2tlbnMuc29tZSh0b2tlbiA9PiBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlKHRva2VuKS5sZW5ndGggPiAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWR1cGxpY2F0ZXMnKSxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjb25zaWRlclF1ZXJ5U3RyaW5nOiB7XG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAvLyBQcmVwYXJlIHRoZSByZXNvbHZlciBmcm9tIG9wdGlvbnMuXG4gICAgY29uc3QgY29uc2lkZXJRdWVyeVN0cmluZ09wdGlvbiA9IGNvbnRleHQub3B0aW9uc1swXSAmJlxuICAgICAgY29udGV4dC5vcHRpb25zWzBdWydjb25zaWRlclF1ZXJ5U3RyaW5nJ11cbiAgICBjb25zdCBkZWZhdWx0UmVzb2x2ZXIgPSBzb3VyY2VQYXRoID0+IHJlc29sdmUoc291cmNlUGF0aCwgY29udGV4dCkgfHwgc291cmNlUGF0aFxuICAgIGNvbnN0IHJlc29sdmVyID0gY29uc2lkZXJRdWVyeVN0cmluZ09wdGlvbiA/IChzb3VyY2VQYXRoID0+IHtcbiAgICAgIGNvbnN0IHBhcnRzID0gc291cmNlUGF0aC5tYXRjaCgvXihbXj9dKilcXD8oLiopJC8pXG4gICAgICBpZiAoIXBhcnRzKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0UmVzb2x2ZXIoc291cmNlUGF0aClcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWZhdWx0UmVzb2x2ZXIocGFydHNbMV0pICsgJz8nICsgcGFydHNbMl1cbiAgICB9KSA6IGRlZmF1bHRSZXNvbHZlclxuXG4gICAgY29uc3QgaW1wb3J0ZWQgPSBuZXcgTWFwKClcbiAgICBjb25zdCBuc0ltcG9ydGVkID0gbmV3IE1hcCgpXG4gICAgY29uc3QgdHlwZXNJbXBvcnRlZCA9IG5ldyBNYXAoKVxuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobikge1xuICAgICAgICAvLyByZXNvbHZlZCBwYXRoIHdpbGwgY292ZXIgYWxpYXNlZCBkdXBsaWNhdGVzXG4gICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmVyKG4uc291cmNlLnZhbHVlKVxuICAgICAgICBjb25zdCBpbXBvcnRNYXAgPSBuLmltcG9ydEtpbmQgPT09ICd0eXBlJyA/IHR5cGVzSW1wb3J0ZWQgOlxuICAgICAgICAgIChoYXNOYW1lc3BhY2UobikgPyBuc0ltcG9ydGVkIDogaW1wb3J0ZWQpXG5cbiAgICAgICAgaWYgKGltcG9ydE1hcC5oYXMocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICAgIGltcG9ydE1hcC5nZXQocmVzb2x2ZWRQYXRoKS5wdXNoKG4pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW1wb3J0TWFwLnNldChyZXNvbHZlZFBhdGgsIFtuXSlcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2hlY2tJbXBvcnRzKGltcG9ydGVkLCBjb250ZXh0KVxuICAgICAgICBjaGVja0ltcG9ydHMobnNJbXBvcnRlZCwgY29udGV4dClcbiAgICAgICAgY2hlY2tJbXBvcnRzKHR5cGVzSW1wb3J0ZWQsIGNvbnRleHQpXG4gICAgICB9LFxuICAgIH1cbiAgfSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1kdXBsaWNhdGVzLmpzIl0sIm5hbWVzIjpbImNoZWNrSW1wb3J0cyIsImltcG9ydGVkIiwiY29udGV4dCIsImVudHJpZXMiLCJtb2R1bGUiLCJub2RlcyIsImxlbmd0aCIsIm1lc3NhZ2UiLCJmaXJzdCIsInJlc3QiLCJzb3VyY2VDb2RlIiwiZ2V0U291cmNlQ29kZSIsImZpeCIsImdldEZpeCIsInJlcG9ydCIsIm5vZGUiLCJzb3VyY2UiLCJnZXRDb21tZW50c0JlZm9yZSIsInVuZGVmaW5lZCIsImhhc1Byb2JsZW1hdGljQ29tbWVudHMiLCJoYXNOYW1lc3BhY2UiLCJkZWZhdWx0SW1wb3J0TmFtZXMiLCJTZXQiLCJtYXAiLCJnZXREZWZhdWx0SW1wb3J0TmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJzaXplIiwicmVzdFdpdGhvdXRDb21tZW50cyIsInNwZWNpZmllcnMiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJvcGVuQnJhY2UiLCJmaW5kIiwidG9rZW4iLCJpc1B1bmN0dWF0b3IiLCJjbG9zZUJyYWNlIiwiaW1wb3J0Tm9kZSIsInRleHQiLCJzbGljZSIsInJhbmdlIiwiaGFzVHJhaWxpbmdDb21tYSIsImdldFRva2VuQmVmb3JlIiwiaXNFbXB0eSIsImhhc1NwZWNpZmllcnMiLCJ1bm5lY2Vzc2FyeUltcG9ydHMiLCJzb21lIiwic3BlY2lmaWVyIiwic2hvdWxkQWRkRGVmYXVsdCIsInNob3VsZEFkZFNwZWNpZmllcnMiLCJzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSIsImZpeGVyIiwiZmlyc3RUb2tlbiIsImdldEZpcnN0VG9rZW4iLCJkZWZhdWx0SW1wb3J0TmFtZSIsImZpcnN0SGFzVHJhaWxpbmdDb21tYSIsImZpcnN0SXNFbXB0eSIsInJlZHVjZSIsInJlc3VsdCIsIm5lZWRzQ29tbWEiLCJzcGVjaWZpZXJzVGV4dCIsImZpeGVzIiwicHVzaCIsImluc2VydFRleHRBZnRlciIsImluc2VydFRleHRCZWZvcmUiLCJyZW1vdmUiLCJ2YWx1ZSIsInR5cGUiLCJkZWZhdWx0U3BlY2lmaWVyIiwibG9jYWwiLCJuYW1lIiwiaGFzQ29tbWVudEJlZm9yZSIsImhhc0NvbW1lbnRBZnRlciIsImhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzIiwiY29tbWVudCIsImxvYyIsImVuZCIsImxpbmUiLCJzdGFydCIsImdldENvbW1lbnRzQWZ0ZXIiLCJvcGVuQnJhY2VJbmRleCIsImZpbmRJbmRleCIsImNsb3NlQnJhY2VJbmRleCIsInNvbWVUb2tlbnMiLCJjb25jYXQiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwicHJvcGVydGllcyIsImNvbnNpZGVyUXVlcnlTdHJpbmciLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImNyZWF0ZSIsImNvbnNpZGVyUXVlcnlTdHJpbmdPcHRpb24iLCJvcHRpb25zIiwiZGVmYXVsdFJlc29sdmVyIiwic291cmNlUGF0aCIsInJlc29sdmVyIiwicGFydHMiLCJtYXRjaCIsIk1hcCIsIm5zSW1wb3J0ZWQiLCJ0eXBlc0ltcG9ydGVkIiwibiIsInJlc29sdmVkUGF0aCIsImltcG9ydE1hcCIsImltcG9ydEtpbmQiLCJoYXMiLCJnZXQiLCJzZXQiXSwibWFwcGluZ3MiOiJxb0JBQUEsc0Q7QUFDQSxxQzs7QUFFQSxTQUFTQSxZQUFULENBQXNCQyxRQUF0QixFQUFnQ0MsT0FBaEMsRUFBeUM7QUFDdkMscUJBQThCRCxTQUFTRSxPQUFULEVBQTlCLEVBQWtELDJDQUF0Q0MsTUFBc0Msa0JBQTlCQyxLQUE4QjtBQUNoRCxRQUFJQSxNQUFNQyxNQUFOLEdBQWUsQ0FBbkIsRUFBc0I7QUFDcEIsWUFBTUMsVUFBVyxJQUFHSCxNQUFPLDRCQUEzQixDQURvQjtBQUVLQyxXQUZMLFFBRWJHLEtBRmEsYUFFSEMsSUFGRztBQUdwQixZQUFNQyxhQUFhUixRQUFRUyxhQUFSLEVBQW5CO0FBQ0EsWUFBTUMsTUFBTUMsT0FBT0wsS0FBUCxFQUFjQyxJQUFkLEVBQW9C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c29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5mdW5jdGlvbiBjaGVja0ltcG9ydHMoaW1wb3J0ZWQsIGNvbnRleHQpIHtcbiAgZm9yIChjb25zdCBbbW9kdWxlLCBub2Rlc10gb2YgaW1wb3J0ZWQuZW50cmllcygpKSB7XG4gICAgaWYgKG5vZGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgJyR7bW9kdWxlfScgaW1wb3J0ZWQgbXVsdGlwbGUgdGltZXMuYDtcbiAgICAgIGNvbnN0IFtmaXJzdCwgLi4ucmVzdF0gPSBub2RlcztcbiAgICAgIGNvbnN0IHNvdXJjZUNvZGUgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKTtcbiAgICAgIGNvbnN0IGZpeCA9IGdldEZpeChmaXJzdCwgcmVzdCwgc291cmNlQ29kZSk7XG5cbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZTogZmlyc3Quc291cmNlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBmaXgsIC8vIEF0dGFjaCB0aGUgYXV0b2ZpeCAoaWYgYW55KSB0byB0aGUgZmlyc3QgaW1wb3J0LlxuICAgICAgfSk7XG5cbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiByZXN0KSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBub2RlLnNvdXJjZSxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Rml4KGZpcnN0LCByZXN0LCBzb3VyY2VDb2RlKSB7XG4gIC8vIFNvcnJ5IEVTTGludCA8PSAzIHVzZXJzLCBubyBhdXRvZml4IGZvciB5b3UuIEF1dG9maXhpbmcgZHVwbGljYXRlIGltcG9ydHNcbiAgLy8gcmVxdWlyZXMgbXVsdGlwbGUgYGZpeGVyLndoYXRldmVyKClgIGNhbGxzIGluIHRoZSBgZml4YDogV2UgYm90aCBuZWVkIHRvXG4gIC8vIHVwZGF0ZSB0aGUgZmlyc3Qgb25lLCBhbmQgcmVtb3ZlIHRoZSByZXN0LiBTdXBwb3J0IGZvciBtdWx0aXBsZVxuICAvLyBgZml4ZXIud2hhdGV2ZXIoKWAgaW4gYSBzaW5nbGUgYGZpeGAgd2FzIGFkZGVkIGluIEVTTGludCA0LjEuXG4gIC8vIGBzb3VyY2VDb2RlLmdldENvbW1lbnRzQmVmb3JlYCB3YXMgYWRkZWQgaW4gNC4wLCBzbyB0aGF0J3MgYW4gZWFzeSB0aGluZyB0b1xuICAvLyBjaGVjayBmb3IuXG4gIGlmICh0eXBlb2Ygc291cmNlQ29kZS5nZXRDb21tZW50c0JlZm9yZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBBZGp1c3RpbmcgdGhlIGZpcnN0IGltcG9ydCBtaWdodCBtYWtlIGl0IG11bHRpbGluZSwgd2hpY2ggY291bGQgYnJlYWtcbiAgLy8gYGVzbGludC1kaXNhYmxlLW5leHQtbGluZWAgY29tbWVudHMgYW5kIHNpbWlsYXIsIHNvIGJhaWwgaWYgdGhlIGZpcnN0XG4gIC8vIGltcG9ydCBoYXMgY29tbWVudHMuIEFsc28sIGlmIHRoZSBmaXJzdCBpbXBvcnQgaXMgYGltcG9ydCAqIGFzIG5zIGZyb21cbiAgLy8gJy4vZm9vJ2AgdGhlcmUncyBub3RoaW5nIHdlIGNhbiBkby5cbiAgaWYgKGhhc1Byb2JsZW1hdGljQ29tbWVudHMoZmlyc3QsIHNvdXJjZUNvZGUpIHx8IGhhc05hbWVzcGFjZShmaXJzdCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdEltcG9ydE5hbWVzID0gbmV3IFNldChcbiAgICBbZmlyc3QsIC4uLnJlc3RdLm1hcChnZXREZWZhdWx0SW1wb3J0TmFtZSkuZmlsdGVyKEJvb2xlYW4pXG4gICk7XG5cbiAgLy8gQmFpbCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZGlmZmVyZW50IGRlZmF1bHQgaW1wb3J0IG5hbWVzIOKAkyBpdCdzIHVwIHRvIHRoZVxuICAvLyB1c2VyIHRvIGNob29zZSB3aGljaCBvbmUgdG8ga2VlcC5cbiAgaWYgKGRlZmF1bHRJbXBvcnROYW1lcy5zaXplID4gMSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBMZWF2ZSBpdCB0byB0aGUgdXNlciB0byBoYW5kbGUgY29tbWVudHMuIEFsc28gc2tpcCBgaW1wb3J0ICogYXMgbnMgZnJvbVxuICAvLyAnLi9mb28nYCBpbXBvcnRzLCBzaW5jZSB0aGV5IGNhbm5vdCBiZSBtZXJnZWQgaW50byBhbm90aGVyIGltcG9ydC5cbiAgY29uc3QgcmVzdFdpdGhvdXRDb21tZW50cyA9IHJlc3QuZmlsdGVyKG5vZGUgPT4gIShcbiAgICBoYXNQcm9ibGVtYXRpY0NvbW1lbnRzKG5vZGUsIHNvdXJjZUNvZGUpIHx8XG4gICAgaGFzTmFtZXNwYWNlKG5vZGUpXG4gICkpO1xuXG4gIGNvbnN0IHNwZWNpZmllcnMgPSByZXN0V2l0aG91dENvbW1lbnRzXG4gICAgLm1hcChub2RlID0+IHtcbiAgICAgIGNvbnN0IHRva2VucyA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5zKG5vZGUpO1xuICAgICAgY29uc3Qgb3BlbkJyYWNlID0gdG9rZW5zLmZpbmQodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAneycpKTtcbiAgICAgIGNvbnN0IGNsb3NlQnJhY2UgPSB0b2tlbnMuZmluZCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd9JykpO1xuXG4gICAgICBpZiAob3BlbkJyYWNlID09IG51bGwgfHwgY2xvc2VCcmFjZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGltcG9ydE5vZGU6IG5vZGUsXG4gICAgICAgIHRleHQ6IHNvdXJjZUNvZGUudGV4dC5zbGljZShvcGVuQnJhY2UucmFuZ2VbMV0sIGNsb3NlQnJhY2UucmFuZ2VbMF0pLFxuICAgICAgICBoYXNUcmFpbGluZ0NvbW1hOiBpc1B1bmN0dWF0b3Ioc291cmNlQ29kZS5nZXRUb2tlbkJlZm9yZShjbG9zZUJyYWNlKSwgJywnKSxcbiAgICAgICAgaXNFbXB0eTogIWhhc1NwZWNpZmllcnMobm9kZSksXG4gICAgICB9O1xuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKTtcblxuICBjb25zdCB1bm5lY2Vzc2FyeUltcG9ydHMgPSByZXN0V2l0aG91dENvbW1lbnRzLmZpbHRlcihub2RlID0+XG4gICAgIWhhc1NwZWNpZmllcnMobm9kZSkgJiZcbiAgICAhaGFzTmFtZXNwYWNlKG5vZGUpICYmXG4gICAgIXNwZWNpZmllcnMuc29tZShzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLmltcG9ydE5vZGUgPT09IG5vZGUpXG4gICk7XG5cbiAgY29uc3Qgc2hvdWxkQWRkRGVmYXVsdCA9IGdldERlZmF1bHRJbXBvcnROYW1lKGZpcnN0KSA9PSBudWxsICYmIGRlZmF1bHRJbXBvcnROYW1lcy5zaXplID09PSAxO1xuICBjb25zdCBzaG91bGRBZGRTcGVjaWZpZXJzID0gc3BlY2lmaWVycy5sZW5ndGggPiAwO1xuICBjb25zdCBzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSA9IHVubmVjZXNzYXJ5SW1wb3J0cy5sZW5ndGggPiAwO1xuXG4gIGlmICghKHNob3VsZEFkZERlZmF1bHQgfHwgc2hvdWxkQWRkU3BlY2lmaWVycyB8fCBzaG91bGRSZW1vdmVVbm5lY2Vzc2FyeSkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGZpeGVyID0+IHtcbiAgICBjb25zdCB0b2tlbnMgPSBzb3VyY2VDb2RlLmdldFRva2VucyhmaXJzdCk7XG4gICAgY29uc3Qgb3BlbkJyYWNlID0gdG9rZW5zLmZpbmQodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAneycpKTtcbiAgICBjb25zdCBjbG9zZUJyYWNlID0gdG9rZW5zLmZpbmQodG9rZW4gPT4gaXNQdW5jdHVhdG9yKHRva2VuLCAnfScpKTtcbiAgICBjb25zdCBmaXJzdFRva2VuID0gc291cmNlQ29kZS5nZXRGaXJzdFRva2VuKGZpcnN0KTtcbiAgICBjb25zdCBbZGVmYXVsdEltcG9ydE5hbWVdID0gZGVmYXVsdEltcG9ydE5hbWVzO1xuXG4gICAgY29uc3QgZmlyc3RIYXNUcmFpbGluZ0NvbW1hID1cbiAgICAgIGNsb3NlQnJhY2UgIT0gbnVsbCAmJlxuICAgICAgaXNQdW5jdHVhdG9yKHNvdXJjZUNvZGUuZ2V0VG9rZW5CZWZvcmUoY2xvc2VCcmFjZSksICcsJyk7XG4gICAgY29uc3QgZmlyc3RJc0VtcHR5ID0gIWhhc1NwZWNpZmllcnMoZmlyc3QpO1xuXG4gICAgY29uc3QgW3NwZWNpZmllcnNUZXh0XSA9IHNwZWNpZmllcnMucmVkdWNlKFxuICAgICAgKFtyZXN1bHQsIG5lZWRzQ29tbWFdLCBzcGVjaWZpZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBuZWVkc0NvbW1hICYmICFzcGVjaWZpZXIuaXNFbXB0eVxuICAgICAgICAgICAgPyBgJHtyZXN1bHR9LCR7c3BlY2lmaWVyLnRleHR9YFxuICAgICAgICAgICAgOiBgJHtyZXN1bHR9JHtzcGVjaWZpZXIudGV4dH1gLFxuICAgICAgICAgIHNwZWNpZmllci5pc0VtcHR5ID8gbmVlZHNDb21tYSA6IHRydWUsXG4gICAgICAgIF07XG4gICAgICB9LFxuICAgICAgWycnLCAhZmlyc3RIYXNUcmFpbGluZ0NvbW1hICYmICFmaXJzdElzRW1wdHldXG4gICAgKTtcblxuICAgIGNvbnN0IGZpeGVzID0gW107XG5cbiAgICBpZiAoc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgPT0gbnVsbCAmJiBzaG91bGRBZGRTcGVjaWZpZXJzKSB7XG4gICAgICAvLyBgaW1wb3J0ICcuL2ZvbydgIOKGkiBgaW1wb3J0IGRlZiwgey4uLn0gZnJvbSAnLi9mb28nYFxuICAgICAgZml4ZXMucHVzaChcbiAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0sIHske3NwZWNpZmllcnNUZXh0fX0gZnJvbWApXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgPT0gbnVsbCAmJiAhc2hvdWxkQWRkU3BlY2lmaWVycykge1xuICAgICAgLy8gYGltcG9ydCAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYgZnJvbSAnLi9mb28nYFxuICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3RUb2tlbiwgYCAke2RlZmF1bHRJbXBvcnROYW1lfSBmcm9tYCkpO1xuICAgIH0gZWxzZSBpZiAoc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgIT0gbnVsbCAmJiBjbG9zZUJyYWNlICE9IG51bGwpIHtcbiAgICAgIC8vIGBpbXBvcnQgey4uLn0gZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgJHtkZWZhdWx0SW1wb3J0TmFtZX0sYCkpO1xuICAgICAgaWYgKHNob3VsZEFkZFNwZWNpZmllcnMpIHtcbiAgICAgICAgLy8gYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2Ag4oaSIGBpbXBvcnQgZGVmLCB7Li4uLCAuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QmVmb3JlKGNsb3NlQnJhY2UsIHNwZWNpZmllcnNUZXh0KSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghc2hvdWxkQWRkRGVmYXVsdCAmJiBvcGVuQnJhY2UgPT0gbnVsbCAmJiBzaG91bGRBZGRTcGVjaWZpZXJzKSB7XG4gICAgICBpZiAoZmlyc3Quc3BlY2lmaWVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gYGltcG9ydCAnLi9mb28nYCDihpIgYGltcG9ydCB7Li4ufSBmcm9tICcuL2ZvbydgXG4gICAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyKGZpcnN0VG9rZW4sIGAgeyR7c3BlY2lmaWVyc1RleHR9fSBmcm9tYCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYGltcG9ydCBkZWYgZnJvbSAnLi9mb28nYCDihpIgYGltcG9ydCBkZWYsIHsuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgICAgZml4ZXMucHVzaChmaXhlci5pbnNlcnRUZXh0QWZ0ZXIoZmlyc3Quc3BlY2lmaWVyc1swXSwgYCwgeyR7c3BlY2lmaWVyc1RleHR9fWApKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFzaG91bGRBZGREZWZhdWx0ICYmIG9wZW5CcmFjZSAhPSBudWxsICYmIGNsb3NlQnJhY2UgIT0gbnVsbCkge1xuICAgICAgLy8gYGltcG9ydCB7Li4ufSAnLi9mb28nYCDihpIgYGltcG9ydCB7Li4uLCAuLi59IGZyb20gJy4vZm9vJ2BcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEJlZm9yZShjbG9zZUJyYWNlLCBzcGVjaWZpZXJzVGV4dCkpO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBpbXBvcnRzIHdob3NlIHNwZWNpZmllcnMgaGF2ZSBiZWVuIG1vdmVkIGludG8gdGhlIGZpcnN0IGltcG9ydC5cbiAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBzcGVjaWZpZXJzKSB7XG4gICAgICBmaXhlcy5wdXNoKGZpeGVyLnJlbW92ZShzcGVjaWZpZXIuaW1wb3J0Tm9kZSkpO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBpbXBvcnRzIHdob3NlIGRlZmF1bHQgaW1wb3J0IGhhcyBiZWVuIG1vdmVkIHRvIHRoZSBmaXJzdCBpbXBvcnQsXG4gICAgLy8gYW5kIHNpZGUtZWZmZWN0LW9ubHkgaW1wb3J0cyB0aGF0IGFyZSB1bm5lY2Vzc2FyeSBkdWUgdG8gdGhlIGZpcnN0XG4gICAgLy8gaW1wb3J0LlxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB1bm5lY2Vzc2FyeUltcG9ydHMpIHtcbiAgICAgIGZpeGVzLnB1c2goZml4ZXIucmVtb3ZlKG5vZGUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZml4ZXM7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzUHVuY3R1YXRvcihub2RlLCB2YWx1ZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnUHVuY3R1YXRvcicgJiYgbm9kZS52YWx1ZSA9PT0gdmFsdWU7XG59XG5cbi8vIEdldCB0aGUgbmFtZSBvZiB0aGUgZGVmYXVsdCBpbXBvcnQgb2YgYG5vZGVgLCBpZiBhbnkuXG5mdW5jdGlvbiBnZXREZWZhdWx0SW1wb3J0TmFtZShub2RlKSB7XG4gIGNvbnN0IGRlZmF1bHRTcGVjaWZpZXIgPSBub2RlLnNwZWNpZmllcnNcbiAgICAuZmluZChzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLnR5cGUgPT09ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJyk7XG4gIHJldHVybiBkZWZhdWx0U3BlY2lmaWVyICE9IG51bGwgPyBkZWZhdWx0U3BlY2lmaWVyLmxvY2FsLm5hbWUgOiB1bmRlZmluZWQ7XG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYSBuYW1lc3BhY2UgaW1wb3J0LlxuZnVuY3Rpb24gaGFzTmFtZXNwYWNlKG5vZGUpIHtcbiAgY29uc3Qgc3BlY2lmaWVycyA9IG5vZGUuc3BlY2lmaWVyc1xuICAgIC5maWx0ZXIoc3BlY2lmaWVyID0+IHNwZWNpZmllci50eXBlID09PSAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJyk7XG4gIHJldHVybiBzcGVjaWZpZXJzLmxlbmd0aCA+IDA7XG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIGBub2RlYCBoYXMgYW55IG5vbi1kZWZhdWx0IHNwZWNpZmllcnMuXG5mdW5jdGlvbiBoYXNTcGVjaWZpZXJzKG5vZGUpIHtcbiAgY29uc3Qgc3BlY2lmaWVycyA9IG5vZGUuc3BlY2lmaWVyc1xuICAgIC5maWx0ZXIoc3BlY2lmaWVyID0+IHNwZWNpZmllci50eXBlID09PSAnSW1wb3J0U3BlY2lmaWVyJyk7XG4gIHJldHVybiBzcGVjaWZpZXJzLmxlbmd0aCA+IDA7XG59XG5cbi8vIEl0J3Mgbm90IG9idmlvdXMgd2hhdCB0aGUgdXNlciB3YW50cyB0byBkbyB3aXRoIGNvbW1lbnRzIGFzc29jaWF0ZWQgd2l0aFxuLy8gZHVwbGljYXRlIGltcG9ydHMsIHNvIHNraXAgaW1wb3J0cyB3aXRoIGNvbW1lbnRzIHdoZW4gYXV0b2ZpeGluZy5cbmZ1bmN0aW9uIGhhc1Byb2JsZW1hdGljQ29tbWVudHMobm9kZSwgc291cmNlQ29kZSkge1xuICByZXR1cm4gKFxuICAgIGhhc0NvbW1lbnRCZWZvcmUobm9kZSwgc291cmNlQ29kZSkgfHxcbiAgICBoYXNDb21tZW50QWZ0ZXIobm9kZSwgc291cmNlQ29kZSkgfHxcbiAgICBoYXNDb21tZW50SW5zaWRlTm9uU3BlY2lmaWVycyhub2RlLCBzb3VyY2VDb2RlKVxuICApO1xufVxuXG4vLyBDaGVja3Mgd2hldGhlciBgbm9kZWAgaGFzIGEgY29tbWVudCAodGhhdCBlbmRzKSBvbiB0aGUgcHJldmlvdXMgbGluZSBvciBvblxuLy8gdGhlIHNhbWUgbGluZSBhcyBgbm9kZWAgKHN0YXJ0cykuXG5mdW5jdGlvbiBoYXNDb21tZW50QmVmb3JlKG5vZGUsIHNvdXJjZUNvZGUpIHtcbiAgcmV0dXJuIHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUobm9kZSlcbiAgICAuc29tZShjb21tZW50ID0+IGNvbW1lbnQubG9jLmVuZC5saW5lID49IG5vZGUubG9jLnN0YXJ0LmxpbmUgLSAxKTtcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYG5vZGVgIGhhcyBhIGNvbW1lbnQgKHRoYXQgc3RhcnRzKSBvbiB0aGUgc2FtZSBsaW5lIGFzIGBub2RlYFxuLy8gKGVuZHMpLlxuZnVuY3Rpb24gaGFzQ29tbWVudEFmdGVyKG5vZGUsIHNvdXJjZUNvZGUpIHtcbiAgcmV0dXJuIHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNBZnRlcihub2RlKVxuICAgIC5zb21lKGNvbW1lbnQgPT4gY29tbWVudC5sb2Muc3RhcnQubGluZSA9PT0gbm9kZS5sb2MuZW5kLmxpbmUpO1xufVxuXG4vLyBDaGVja3Mgd2hldGhlciBgbm9kZWAgaGFzIGFueSBjb21tZW50cyBfaW5zaWRlLF8gZXhjZXB0IGluc2lkZSB0aGUgYHsuLi59YFxuLy8gcGFydCAoaWYgYW55KS5cbmZ1bmN0aW9uIGhhc0NvbW1lbnRJbnNpZGVOb25TcGVjaWZpZXJzKG5vZGUsIHNvdXJjZUNvZGUpIHtcbiAgY29uc3QgdG9rZW5zID0gc291cmNlQ29kZS5nZXRUb2tlbnMobm9kZSk7XG4gIGNvbnN0IG9wZW5CcmFjZUluZGV4ID0gdG9rZW5zLmZpbmRJbmRleCh0b2tlbiA9PiBpc1B1bmN0dWF0b3IodG9rZW4sICd7JykpO1xuICBjb25zdCBjbG9zZUJyYWNlSW5kZXggPSB0b2tlbnMuZmluZEluZGV4KHRva2VuID0+IGlzUHVuY3R1YXRvcih0b2tlbiwgJ30nKSk7XG4gIC8vIFNsaWNlIGF3YXkgdGhlIGZpcnN0IHRva2VuLCBzaW5jZSB3ZSdyZSBubyBsb29raW5nIGZvciBjb21tZW50cyBfYmVmb3JlX1xuICAvLyBgbm9kZWAgKG9ubHkgaW5zaWRlKS4gSWYgdGhlcmUncyBhIGB7Li4ufWAgcGFydCwgbG9vayBmb3IgY29tbWVudHMgYmVmb3JlXG4gIC8vIHRoZSBge2AsIGJ1dCBub3QgYmVmb3JlIHRoZSBgfWAgKGhlbmNlIHRoZSBgKzFgcykuXG4gIGNvbnN0IHNvbWVUb2tlbnMgPSBvcGVuQnJhY2VJbmRleCA+PSAwICYmIGNsb3NlQnJhY2VJbmRleCA+PSAwXG4gICAgPyB0b2tlbnMuc2xpY2UoMSwgb3BlbkJyYWNlSW5kZXggKyAxKS5jb25jYXQodG9rZW5zLnNsaWNlKGNsb3NlQnJhY2VJbmRleCArIDEpKVxuICAgIDogdG9rZW5zLnNsaWNlKDEpO1xuICByZXR1cm4gc29tZVRva2Vucy5zb21lKHRva2VuID0+IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUodG9rZW4pLmxlbmd0aCA+IDApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWR1cGxpY2F0ZXMnKSxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjb25zaWRlclF1ZXJ5U3RyaW5nOiB7XG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAvLyBQcmVwYXJlIHRoZSByZXNvbHZlciBmcm9tIG9wdGlvbnMuXG4gICAgY29uc3QgY29uc2lkZXJRdWVyeVN0cmluZ09wdGlvbiA9IGNvbnRleHQub3B0aW9uc1swXSAmJlxuICAgICAgY29udGV4dC5vcHRpb25zWzBdWydjb25zaWRlclF1ZXJ5U3RyaW5nJ107XG4gICAgY29uc3QgZGVmYXVsdFJlc29sdmVyID0gc291cmNlUGF0aCA9PiByZXNvbHZlKHNvdXJjZVBhdGgsIGNvbnRleHQpIHx8IHNvdXJjZVBhdGg7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSBjb25zaWRlclF1ZXJ5U3RyaW5nT3B0aW9uID8gKHNvdXJjZVBhdGggPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBzb3VyY2VQYXRoLm1hdGNoKC9eKFteP10qKVxcPyguKikkLyk7XG4gICAgICBpZiAoIXBhcnRzKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0UmVzb2x2ZXIoc291cmNlUGF0aCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVmYXVsdFJlc29sdmVyKHBhcnRzWzFdKSArICc/JyArIHBhcnRzWzJdO1xuICAgIH0pIDogZGVmYXVsdFJlc29sdmVyO1xuXG4gICAgY29uc3QgaW1wb3J0ZWQgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgbnNJbXBvcnRlZCA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCB0eXBlc0ltcG9ydGVkID0gbmV3IE1hcCgpO1xuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0RGVjbGFyYXRpb24nOiBmdW5jdGlvbiAobikge1xuICAgICAgICAvLyByZXNvbHZlZCBwYXRoIHdpbGwgY292ZXIgYWxpYXNlZCBkdXBsaWNhdGVzXG4gICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aCA9IHJlc29sdmVyKG4uc291cmNlLnZhbHVlKTtcbiAgICAgICAgY29uc3QgaW1wb3J0TWFwID0gbi5pbXBvcnRLaW5kID09PSAndHlwZScgPyB0eXBlc0ltcG9ydGVkIDpcbiAgICAgICAgICAoaGFzTmFtZXNwYWNlKG4pID8gbnNJbXBvcnRlZCA6IGltcG9ydGVkKTtcblxuICAgICAgICBpZiAoaW1wb3J0TWFwLmhhcyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgICAgICAgaW1wb3J0TWFwLmdldChyZXNvbHZlZFBhdGgpLnB1c2gobik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaW1wb3J0TWFwLnNldChyZXNvbHZlZFBhdGgsIFtuXSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNoZWNrSW1wb3J0cyhpbXBvcnRlZCwgY29udGV4dCk7XG4gICAgICAgIGNoZWNrSW1wb3J0cyhuc0ltcG9ydGVkLCBjb250ZXh0KTtcbiAgICAgICAgY2hlY2tJbXBvcnRzKHR5cGVzSW1wb3J0ZWQsIGNvbnRleHQpO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js b/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js index e63b3db1a4..844477aa73 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-dynamic-require.js @@ -34,4 +34,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1keW5hbWljLXJlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiaXNTdGF0aWNWYWx1ZSIsImFyZyIsImV4cHJlc3Npb25zIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIkNhbGxFeHByZXNzaW9uIiwicmVwb3J0IiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6ImFBQUEscUM7O0FBRUEsU0FBU0EsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsU0FBT0E7QUFDTEEsT0FBS0MsTUFEQTtBQUVMRCxPQUFLQyxNQUFMLENBQVlDLElBQVosS0FBcUIsWUFGaEI7QUFHTEYsT0FBS0MsTUFBTCxDQUFZRSxJQUFaLEtBQXFCLFNBSGhCO0FBSUxILE9BQUtJLFNBQUwsQ0FBZUMsTUFBZixJQUF5QixDQUozQjtBQUtEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUJDLEdBQXZCLEVBQTRCO0FBQzFCLFNBQU9BLElBQUlMLElBQUosS0FBYSxTQUFiO0FBQ0pLLE1BQUlMLElBQUosS0FBYSxpQkFBYixJQUFrQ0ssSUFBSUMsV0FBSixDQUFnQkgsTUFBaEIsS0FBMkIsQ0FEaEU7QUFFRDs7QUFFREksT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pULFVBQU0sWUFERjtBQUVKVSxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0xDLHFCQUFlakIsSUFBZixFQUFxQjtBQUNuQixZQUFJRCxVQUFVQyxJQUFWLEtBQW1CLENBQUNNLGNBQWNOLEtBQUtJLFNBQUwsQ0FBZSxDQUFmLENBQWQsQ0FBeEIsRUFBMEQ7QUFDeERZLGtCQUFRRSxNQUFSLENBQWU7QUFDYmxCLGdCQURhO0FBRWJtQixxQkFBUywrQ0FGSSxFQUFmOztBQUlEO0FBQ0YsT0FSSSxFQUFQOztBQVVELEdBcEJjLEVBQWpCIiwiZmlsZSI6Im5vLWR5bmFtaWMtcmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGlzUmVxdWlyZShub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgbm9kZS5jYWxsZWUgJiZcbiAgICBub2RlLmNhbGxlZS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICBub2RlLmNhbGxlZS5uYW1lID09PSAncmVxdWlyZScgJiZcbiAgICBub2RlLmFyZ3VtZW50cy5sZW5ndGggPj0gMVxufVxuXG5mdW5jdGlvbiBpc1N0YXRpY1ZhbHVlKGFyZykge1xuICByZXR1cm4gYXJnLnR5cGUgPT09ICdMaXRlcmFsJyB8fFxuICAgIChhcmcudHlwZSA9PT0gJ1RlbXBsYXRlTGl0ZXJhbCcgJiYgYXJnLmV4cHJlc3Npb25zLmxlbmd0aCA9PT0gMClcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1keW5hbWljLXJlcXVpcmUnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1JlcXVpcmUobm9kZSkgJiYgIWlzU3RhdGljVmFsdWUobm9kZS5hcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdDYWxscyB0byByZXF1aXJlKCkgc2hvdWxkIHVzZSBzdHJpbmcgbGl0ZXJhbHMnLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1keW5hbWljLXJlcXVpcmUuanMiXSwibmFtZXMiOlsiaXNSZXF1aXJlIiwibm9kZSIsImNhbGxlZSIsInR5cGUiLCJuYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiaXNTdGF0aWNWYWx1ZSIsImFyZyIsImV4cHJlc3Npb25zIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsIkNhbGxFeHByZXNzaW9uIiwicmVwb3J0IiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6ImFBQUEscUM7O0FBRUEsU0FBU0EsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsU0FBT0E7QUFDTEEsT0FBS0MsTUFEQTtBQUVMRCxPQUFLQyxNQUFMLENBQVlDLElBQVosS0FBcUIsWUFGaEI7QUFHTEYsT0FBS0MsTUFBTCxDQUFZRSxJQUFaLEtBQXFCLFNBSGhCO0FBSUxILE9BQUtJLFNBQUwsQ0FBZUMsTUFBZixJQUF5QixDQUozQjtBQUtEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUJDLEdBQXZCLEVBQTRCO0FBQzFCLFNBQU9BLElBQUlMLElBQUosS0FBYSxTQUFiO0FBQ0pLLE1BQUlMLElBQUosS0FBYSxpQkFBYixJQUFrQ0ssSUFBSUMsV0FBSixDQUFnQkgsTUFBaEIsS0FBMkIsQ0FEaEU7QUFFRDs7QUFFREksT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pULFVBQU0sWUFERjtBQUVKVSxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0xDLHFCQUFlakIsSUFBZixFQUFxQjtBQUNuQixZQUFJRCxVQUFVQyxJQUFWLEtBQW1CLENBQUNNLGNBQWNOLEtBQUtJLFNBQUwsQ0FBZSxDQUFmLENBQWQsQ0FBeEIsRUFBMEQ7QUFDeERZLGtCQUFRRSxNQUFSLENBQWU7QUFDYmxCLGdCQURhO0FBRWJtQixxQkFBUywrQ0FGSSxFQUFmOztBQUlEO0FBQ0YsT0FSSSxFQUFQOztBQVVELEdBcEJjLEVBQWpCIiwiZmlsZSI6Im5vLWR5bmFtaWMtcmVxdWlyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5mdW5jdGlvbiBpc1JlcXVpcmUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJlxuICAgIG5vZGUuY2FsbGVlICYmXG4gICAgbm9kZS5jYWxsZWUudHlwZSA9PT0gJ0lkZW50aWZpZXInICYmXG4gICAgbm9kZS5jYWxsZWUubmFtZSA9PT0gJ3JlcXVpcmUnICYmXG4gICAgbm9kZS5hcmd1bWVudHMubGVuZ3RoID49IDE7XG59XG5cbmZ1bmN0aW9uIGlzU3RhdGljVmFsdWUoYXJnKSB7XG4gIHJldHVybiBhcmcudHlwZSA9PT0gJ0xpdGVyYWwnIHx8XG4gICAgKGFyZy50eXBlID09PSAnVGVtcGxhdGVMaXRlcmFsJyAmJiBhcmcuZXhwcmVzc2lvbnMubGVuZ3RoID09PSAwKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1keW5hbWljLXJlcXVpcmUnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1JlcXVpcmUobm9kZSkgJiYgIWlzU3RhdGljVmFsdWUobm9kZS5hcmd1bWVudHNbMF0pKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdDYWxscyB0byByZXF1aXJlKCkgc2hvdWxkIHVzZSBzdHJpbmcgbGl0ZXJhbHMnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js b/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js index b8d891840e..6b55f2cc31 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-extraneous-dependencies.js @@ -1,12 +1,15 @@ -'use strict';var _path = require('path');var _path2 = _interopRequireDefault(_path); +'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _path = require('path');var _path2 = _interopRequireDefault(_path); var _fs = require('fs');var _fs2 = _interopRequireDefault(_fs); var _readPkgUp = require('read-pkg-up');var _readPkgUp2 = _interopRequireDefault(_readPkgUp); var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch); var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType); +var _packagePath = require('../core/packagePath'); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +const depFieldCache = new Map(); + function hasKeys() {let obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return Object.keys(obj).length > 0; } @@ -49,9 +52,14 @@ function getDependencies(context, packageDir) { if (paths.length > 0) { // use rule config to find package.json paths.forEach(dir => { - const _packageContent = extractDepFields( - JSON.parse(_fs2.default.readFileSync(_path2.default.join(dir, 'package.json'), 'utf8'))); - + const packageJsonPath = _path2.default.join(dir, 'package.json'); + if (!depFieldCache.has(packageJsonPath)) { + const depFields = extractDepFields( + JSON.parse(_fs2.default.readFileSync(packageJsonPath, 'utf8'))); + + depFieldCache.set(packageJsonPath, depFields); + } + const _packageContent = depFieldCache.get(packageJsonPath); Object.keys(packageContent).forEach(depsKey => Object.assign(packageContent[depsKey], _packageContent[depsKey])); @@ -109,9 +117,48 @@ function optDepErrorMessage(packageName) { `not optionalDependencies.`; } +function getModuleOriginalName(name) {var _name$split = + name.split('/'),_name$split2 = _slicedToArray(_name$split, 2);const first = _name$split2[0],second = _name$split2[1]; + return first.startsWith('@') ? `${first}/${second}` : first; +} + +function getModuleRealName(resolved) { + return (0, _packagePath.getFilePackageName)(resolved); +} + +function checkDependencyDeclaration(deps, packageName) { + // in case of sub package.json inside a module + // check the dependencies on all hierarchy + const packageHierarchy = []; + const packageNameParts = packageName.split('/'); + packageNameParts.forEach((namePart, index) => { + if (!namePart.startsWith('@')) { + const ancestor = packageNameParts.slice(0, index + 1).join('/'); + packageHierarchy.push(ancestor); + } + }); + + return packageHierarchy.reduce((result, ancestorName) => { + return { + isInDeps: result.isInDeps || deps.dependencies[ancestorName] !== undefined, + isInDevDeps: result.isInDevDeps || deps.devDependencies[ancestorName] !== undefined, + isInOptDeps: result.isInOptDeps || deps.optionalDependencies[ancestorName] !== undefined, + isInPeerDeps: result.isInPeerDeps || deps.peerDependencies[ancestorName] !== undefined, + isInBundledDeps: + result.isInBundledDeps || deps.bundledDependencies.indexOf(ancestorName) !== -1 }; + + }, { + isInDeps: false, + isInDevDeps: false, + isInOptDeps: false, + isInPeerDeps: false, + isInBundledDeps: false }); + +} + function reportIfMissing(context, deps, depsOptions, node, name) { // Do not report when importing types - if (node.importKind === 'type' || node.parent && node.parent.importKind === 'type') { + if (node.importKind === 'type' || node.parent && node.parent.importKind === 'type' || node.importKind === 'typeof') { return; } @@ -122,36 +169,49 @@ function reportIfMissing(context, deps, depsOptions, node, name) { const resolved = (0, _resolve2.default)(name, context); if (!resolved) {return;} - const splitName = name.split('/'); - const packageName = splitName[0][0] === '@' ? - splitName.slice(0, 2).join('/') : - splitName[0]; - const isInDeps = deps.dependencies[packageName] !== undefined; - const isInDevDeps = deps.devDependencies[packageName] !== undefined; - const isInOptDeps = deps.optionalDependencies[packageName] !== undefined; - const isInPeerDeps = deps.peerDependencies[packageName] !== undefined; - const isInBundledDeps = deps.bundledDependencies.indexOf(packageName) !== -1; - - if (isInDeps || - depsOptions.allowDevDeps && isInDevDeps || - depsOptions.allowPeerDeps && isInPeerDeps || - depsOptions.allowOptDeps && isInOptDeps || - depsOptions.allowBundledDeps && isInBundledDeps) + const importPackageName = getModuleOriginalName(name); + const importPackageNameDeclaration = checkDependencyDeclaration(deps, importPackageName); + + if (importPackageNameDeclaration.isInDeps || + depsOptions.allowDevDeps && importPackageNameDeclaration.isInDevDeps || + depsOptions.allowPeerDeps && importPackageNameDeclaration.isInPeerDeps || + depsOptions.allowOptDeps && importPackageNameDeclaration.isInOptDeps || + depsOptions.allowBundledDeps && importPackageNameDeclaration.isInBundledDeps) + { + return; + } + + // test the real name from the resolved package.json + // if not aliased imports (alias/react for example), importPackageName can be misinterpreted + const realPackageName = getModuleRealName(resolved); + const realPackageNameDeclaration = checkDependencyDeclaration(deps, realPackageName); + + if (realPackageNameDeclaration.isInDeps || + depsOptions.allowDevDeps && realPackageNameDeclaration.isInDevDeps || + depsOptions.allowPeerDeps && realPackageNameDeclaration.isInPeerDeps || + depsOptions.allowOptDeps && realPackageNameDeclaration.isInOptDeps || + depsOptions.allowBundledDeps && realPackageNameDeclaration.isInBundledDeps) { return; } - if (isInDevDeps && !depsOptions.allowDevDeps) { - context.report(node, devDepErrorMessage(packageName)); + if (( + importPackageNameDeclaration.isInDevDeps || + realPackageNameDeclaration.isInDevDeps) && + !depsOptions.allowDevDeps) { + context.report(node, devDepErrorMessage(realPackageName)); return; } - if (isInOptDeps && !depsOptions.allowOptDeps) { - context.report(node, optDepErrorMessage(packageName)); + if (( + importPackageNameDeclaration.isInOptDeps || + realPackageNameDeclaration.isInOptDeps) && + !depsOptions.allowOptDeps) { + context.report(node, optDepErrorMessage(realPackageName)); return; } - context.report(node, missingErrorMessage(packageName)); + context.report(node, missingErrorMessage(realPackageName)); } function testConfig(config, filename) { @@ -200,8 +260,8 @@ module.exports = { allowBundledDeps: testConfig(options.bundledDependencies, filename) !== false }; - return (0, _moduleVisitor2.default)(node => { - reportIfMissing(context, deps, depsOptions, node, node.value); + return (0, _moduleVisitor2.default)((source, node) => { + reportIfMissing(context, deps, depsOptions, node, source.value); }, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyJdLCJuYW1lcyI6WyJoYXNLZXlzIiwib2JqIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImFycmF5T3JLZXlzIiwiYXJyYXlPck9iamVjdCIsIkFycmF5IiwiaXNBcnJheSIsImV4dHJhY3REZXBGaWVsZHMiLCJwa2ciLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJvcHRpb25hbERlcGVuZGVuY2llcyIsInBlZXJEZXBlbmRlbmNpZXMiLCJidW5kbGVkRGVwZW5kZW5jaWVzIiwiYnVuZGxlRGVwZW5kZW5jaWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwiY29udGV4dCIsInBhY2thZ2VEaXIiLCJwYXRocyIsInBhY2thZ2VDb250ZW50IiwicGF0aCIsInJlc29sdmUiLCJtYXAiLCJkaXIiLCJmb3JFYWNoIiwiX3BhY2thZ2VDb250ZW50IiwiSlNPTiIsInBhcnNlIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJqb2luIiwiZGVwc0tleSIsImFzc2lnbiIsInJlYWRQa2dVcCIsInN5bmMiLCJjd2QiLCJnZXRGaWxlbmFtZSIsIm5vcm1hbGl6ZSIsInNvbWUiLCJlIiwiY29kZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJsb2MiLCJsaW5lIiwiY29sdW1uIiwibmFtZSIsIlN5bnRheEVycm9yIiwibWlzc2luZ0Vycm9yTWVzc2FnZSIsInBhY2thZ2VOYW1lIiwiZGV2RGVwRXJyb3JNZXNzYWdlIiwib3B0RGVwRXJyb3JNZXNzYWdlIiwicmVwb3J0SWZNaXNzaW5nIiwiZGVwcyIsImRlcHNPcHRpb25zIiwibm9kZSIsImltcG9ydEtpbmQiLCJwYXJlbnQiLCJyZXNvbHZlZCIsInNwbGl0TmFtZSIsInNwbGl0Iiwic2xpY2UiLCJpc0luRGVwcyIsInVuZGVmaW5lZCIsImlzSW5EZXZEZXBzIiwiaXNJbk9wdERlcHMiLCJpc0luUGVlckRlcHMiLCJpc0luQnVuZGxlZERlcHMiLCJpbmRleE9mIiwiYWxsb3dEZXZEZXBzIiwiYWxsb3dQZWVyRGVwcyIsImFsbG93T3B0RGVwcyIsImFsbG93QnVuZGxlZERlcHMiLCJ0ZXN0Q29uZmlnIiwiY29uZmlnIiwiZmlsZW5hbWUiLCJjIiwicHJvY2VzcyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJvcHRpb25zIiwidmFsdWUiLCJjb21tb25qcyJdLCJtYXBwaW5ncyI6ImFBQUEsNEI7QUFDQSx3QjtBQUNBLHdDO0FBQ0Esc0M7QUFDQSxzRDtBQUNBLGtFO0FBQ0EsZ0Q7QUFDQSxxQzs7QUFFQSxTQUFTQSxPQUFULEdBQTJCLEtBQVZDLEdBQVUsdUVBQUosRUFBSTtBQUN6QixTQUFPQyxPQUFPQyxJQUFQLENBQVlGLEdBQVosRUFBaUJHLE1BQWpCLEdBQTBCLENBQWpDO0FBQ0Q7O0FBRUQsU0FBU0MsV0FBVCxDQUFxQkMsYUFBckIsRUFBb0M7QUFDbEMsU0FBT0MsTUFBTUMsT0FBTixDQUFjRixhQUFkLElBQStCQSxhQUEvQixHQUErQ0osT0FBT0MsSUFBUCxDQUFZRyxhQUFaLENBQXREO0FBQ0Q7O0FBRUQsU0FBU0csZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCO0FBQzdCLFNBQU87QUFDTEMsa0JBQWNELElBQUlDLFlBQUosSUFBb0IsRUFEN0I7QUFFTEMscUJBQWlCRixJQUFJRSxlQUFKLElBQXVCLEVBRm5DO0FBR0xDLDBCQUFzQkgsSUFBSUcsb0JBQUosSUFBNEIsRUFIN0M7QUFJTEMsc0JBQWtCSixJQUFJSSxnQkFBSixJQUF3QixFQUpyQztBQUtMO0FBQ0E7QUFDQUMseUJBQXFCVixZQUFZSyxJQUFJTSxrQkFBSixJQUEwQk4sSUFBSUssbUJBQTlCLElBQXFELEVBQWpFLENBUGhCLEVBQVA7O0FBU0Q7O0FBRUQsU0FBU0UsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFVBQWxDLEVBQThDO0FBQzVDLE1BQUlDLFFBQVEsRUFBWjtBQUNBLE1BQUk7QUFDRixVQUFN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USxDQUFDLFNBQUQsRUFBWSxPQUFaLENBQVYsRUFKWDtBQUtaLHNCQUFjLEVBQUUsUUFBUSxDQUFDLFFBQUQsRUFBVyxPQUFYLENBQVYsRUFMRixFQUZoQjs7QUFTRSw4QkFBd0IsS0FUMUIsRUFETSxDQU5KLEVBRFM7Ozs7O0FBc0JmQyxVQUFRLFVBQVVyRSxPQUFWLEVBQW1CO0FBQ3pCLFVBQU1zRSxVQUFVdEUsUUFBUXNFLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxVQUFNWCxXQUFXM0QsUUFBUW9CLFdBQVIsRUFBakI7QUFDQSxVQUFNaUIsT0FBT3RDLGdCQUFnQkMsT0FBaEIsRUFBeUJzRSxRQUFRckUsVUFBakMsS0FBZ0RWLGlCQUFpQixFQUFqQixDQUE3RDs7QUFFQSxVQUFNK0MsY0FBYztBQUNsQmUsb0JBQWNJLFdBQVdhLFFBQVE1RSxlQUFuQixFQUFvQ2lFLFFBQXBDLE1BQWtELEtBRDlDO0FBRWxCSixvQkFBY0UsV0FBV2EsUUFBUTNFLG9CQUFuQixFQUF5Q2dFLFFBQXpDLE1BQXVELEtBRm5EO0FBR2xCTCxxQkFBZUcsV0FBV2EsUUFBUTFFLGdCQUFuQixFQUFxQytELFFBQXJDLE1BQW1ELEtBSGhEO0FBSWxCSCx3QkFBa0JDLFdBQVdhLFFBQVF6RSxtQkFBbkIsRUFBd0M4RCxRQUF4QyxNQUFzRCxLQUp0RCxFQUFwQjs7O0FBT0EsV0FBTyw2QkFBY3BCLFFBQVE7QUFDM0JILHNCQUFnQnBDLE9BQWhCLEVBQXlCcUMsSUFBekIsRUFBK0JDLFdBQS9CLEVBQTRDQyxJQUE1QyxFQUFrREEsS0FBS2dDLEtBQXZEO0FBQ0QsS0FGTSxFQUVKLEVBQUNDLFVBQVUsSUFBWCxFQUZJLENBQVA7QUFHRCxHQXJDYyxFQUFqQiIsImZpbGUiOiJuby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcmVhZFBrZ1VwIGZyb20gJ3JlYWQtcGtnLXVwJ1xuaW1wb3J0IG1pbmltYXRjaCBmcm9tICdtaW5pbWF0Y2gnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiBoYXNLZXlzKG9iaiA9IHt9KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IDBcbn1cblxuZnVuY3Rpb24gYXJyYXlPcktleXMoYXJyYXlPck9iamVjdCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShhcnJheU9yT2JqZWN0KSA/IGFycmF5T3JPYmplY3QgOiBPYmplY3Qua2V5cyhhcnJheU9yT2JqZWN0KVxufVxuXG5mdW5jdGlvbiBleHRyYWN0RGVwRmllbGRzKHBrZykge1xuICByZXR1cm4ge1xuICAgIGRlcGVuZGVuY2llczogcGtnLmRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICBkZXZEZXBlbmRlbmNpZXM6IHBrZy5kZXZEZXBlbmRlbmNpZXMgfHwge30sXG4gICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHBrZy5vcHRpb25hbERlcGVuZGVuY2llcyB8fCB7fSxcbiAgICBwZWVyRGVwZW5kZW5jaWVzOiBwa2cucGVlckRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICAvLyBCdW5kbGVkRGVwcyBzaG91bGQgYmUgaW4gdGhlIGZvcm0gb2YgYW4gYXJyYXksIGJ1dCBvYmplY3Qgbm90YXRpb24gaXMgYWxzbyBzdXBwb3J0ZWQgYnlcbiAgICAvLyBgbnBtYCwgc28gd2UgY29udmVydCBpdCB0byBhbiBhcnJheSBpZiBpdCBpcyBhbiBvYmplY3RcbiAgICBidW5kbGVkRGVwZW5kZW5jaWVzOiBhcnJheU9yS2V5cyhwa2cuYnVuZGxlRGVwZW5kZW5jaWVzIHx8IHBrZy5idW5kbGVkRGVwZW5kZW5jaWVzIHx8IFtdKSxcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZXBlbmRlbmNpZXMoY29udGV4dCwgcGFja2FnZURpcikge1xuICBsZXQgcGF0aHMgPSBbXVxuICB0cnkge1xuICAgIGNvbnN0IHBhY2thZ2VDb250ZW50ID0ge1xuICAgICAgZGVwZW5kZW5jaWVzOiB7fSxcbiAgICAgIGRldkRlcGVuZGVuY2llczoge30sXG4gICAgICBvcHRpb25hbERlcGVuZGVuY2llczoge30sXG4gICAgICBwZWVyRGVwZW5kZW5jaWVzOiB7fSxcbiAgICAgIGJ1bmRsZWREZXBlbmRlbmNpZXM6IFtdLFxuICAgIH1cblxuICAgIGlmIChwYWNrYWdlRGlyICYmIHBhY2thZ2VEaXIubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhY2thZ2VEaXIpKSB7XG4gICAgICAgIHBhdGhzID0gW3BhdGgucmVzb2x2ZShwYWNrYWdlRGlyKV1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGhzID0gcGFja2FnZURpci5tYXAoZGlyID0+IHBhdGgucmVzb2x2ZShkaXIpKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXRocy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB1c2UgcnVsZSBjb25maWcgdG8gZmluZCBwYWNrYWdlLmpzb25cbiAgICAgIHBhdGhzLmZvckVhY2goZGlyID0+IHtcbiAgICAgICAgY29uc3QgX3BhY2thZ2VDb250ZW50ID0gZXh0cmFjdERlcEZpZWxkcyhcbiAgICAgICAgICBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oZGlyLCAncGFja2FnZS5qc29uJyksICd1dGY4JykpXG4gICAgICAgIClcbiAgICAgICAgT2JqZWN0LmtleXMocGFja2FnZUNvbnRlbnQpLmZvckVhY2goZGVwc0tleSA9PlxuICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFja2FnZUNvbnRlbnRbZGVwc0tleV0sIF9wYWNrYWdlQ29udGVudFtkZXBzS2V5XSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXNlIGNsb3Nlc3QgcGFja2FnZS5qc29uXG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICBwYWNrYWdlQ29udGVudCxcbiAgICAgICAgZXh0cmFjdERlcEZpZWxkcyhcbiAgICAgICAgICByZWFkUGtnVXAuc3luYyh7Y3dkOiBjb250ZXh0LmdldEZpbGVuYW1lKCksIG5vcm1hbGl6ZTogZmFsc2V9KS5wa2dcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICghW1xuICAgICAgcGFja2FnZUNvbnRlbnQuZGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQuZGV2RGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQub3B0aW9uYWxEZXBlbmRlbmNpZXMsXG4gICAgICBwYWNrYWdlQ29udGVudC5wZWVyRGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQuYnVuZGxlZERlcGVuZGVuY2llcyxcbiAgICBdLnNvbWUoaGFzS2V5cykpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhY2thZ2VDb250ZW50XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMCAmJiBlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG1lc3NhZ2U6ICdUaGUgcGFja2FnZS5qc29uIGZpbGUgY291bGQgbm90IGJlIGZvdW5kLicsXG4gICAgICAgIGxvYzogeyBsaW5lOiAwLCBjb2x1bW46IDAgfSxcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChlLm5hbWUgPT09ICdKU09ORXJyb3InIHx8IGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBtZXNzYWdlOiAnVGhlIHBhY2thZ2UuanNvbiBmaWxlIGNvdWxkIG5vdCBiZSBwYXJzZWQ6ICcgKyBlLm1lc3NhZ2UsXG4gICAgICAgIGxvYzogeyBsaW5lOiAwLCBjb2x1bW46IDAgfSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiBtaXNzaW5nRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLiBgICtcbiAgICBgUnVuICducG0gaSAtUyAke3BhY2thZ2VOYW1lfScgdG8gYWRkIGl0YFxufVxuXG5mdW5jdGlvbiBkZXZEZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpIHtcbiAgcmV0dXJuIGAnJHtwYWNrYWdlTmFtZX0nIHNob3VsZCBiZSBsaXN0ZWQgaW4gdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMsIG5vdCBkZXZEZXBlbmRlbmNpZXMuYFxufVxuXG5mdW5jdGlvbiBvcHREZXBFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpIHtcbiAgcmV0dXJuIGAnJHtwYWNrYWdlTmFtZX0nIHNob3VsZCBiZSBsaXN0ZWQgaW4gdGhlIHByb2plY3QncyBkZXBlbmRlbmNpZXMsIGAgK1xuICAgIGBub3Qgb3B0aW9uYWxEZXBlbmRlbmNpZXMuYFxufVxuXG5mdW5jdGlvbiByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5hbWUpIHtcbiAgLy8gRG8gbm90IHJlcG9ydCB3aGVuIGltcG9ydGluZyB0eXBlc1xuICBpZiAobm9kZS5pbXBvcnRLaW5kID09PSAndHlwZScgfHwgKG5vZGUucGFyZW50ICYmIG5vZGUucGFyZW50LmltcG9ydEtpbmQgPT09ICd0eXBlJykpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChpbXBvcnRUeXBlKG5hbWUsIGNvbnRleHQpICE9PSAnZXh0ZXJuYWwnKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmUobmFtZSwgY29udGV4dClcbiAgaWYgKCFyZXNvbHZlZCkgeyByZXR1cm4gfVxuXG4gIGNvbnN0IHNwbGl0TmFtZSA9IG5hbWUuc3BsaXQoJy8nKVxuICBjb25zdCBwYWNrYWdlTmFtZSA9IHNwbGl0TmFtZVswXVswXSA9PT0gJ0AnXG4gICAgPyBzcGxpdE5hbWUuc2xpY2UoMCwgMikuam9pbignLycpXG4gICAgOiBzcGxpdE5hbWVbMF1cbiAgY29uc3QgaXNJbkRlcHMgPSBkZXBzLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luRGV2RGVwcyA9IGRlcHMuZGV2RGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXSAhPT0gdW5kZWZpbmVkXG4gIGNvbnN0IGlzSW5PcHREZXBzID0gZGVwcy5vcHRpb25hbERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gIT09IHVuZGVmaW5lZFxuICBjb25zdCBpc0luUGVlckRlcHMgPSBkZXBzLnBlZXJEZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdICE9PSB1bmRlZmluZWRcbiAgY29uc3QgaXNJbkJ1bmRsZWREZXBzID0gZGVwcy5idW5kbGVkRGVwZW5kZW5jaWVzLmluZGV4T2YocGFja2FnZU5hbWUpICE9PSAtMVxuXG4gIGlmIChpc0luRGVwcyB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMgJiYgaXNJbkRldkRlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93UGVlckRlcHMgJiYgaXNJblBlZXJEZXBzKSB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd09wdERlcHMgJiYgaXNJbk9wdERlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93QnVuZGxlZERlcHMgJiYgaXNJbkJ1bmRsZWREZXBzKVxuICApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChpc0luRGV2RGVwcyAmJiAhZGVwc09wdGlvbnMuYWxsb3dEZXZEZXBzKSB7XG4gICAgY29udGV4dC5yZXBvcnQobm9kZSwgZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmIChpc0luT3B0RGVwcyAmJiAhZGVwc09wdGlvbnMuYWxsb3dPcHREZXBzKSB7XG4gICAgY29udGV4dC5yZXBvcnQobm9kZSwgb3B0RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnRleHQucmVwb3J0KG5vZGUsIG1pc3NpbmdFcnJvck1lc3NhZ2UocGFja2FnZU5hbWUpKVxufVxuXG5mdW5jdGlvbiB0ZXN0Q29uZmlnKGNvbmZpZywgZmlsZW5hbWUpIHtcbiAgLy8gU2ltcGxlc3QgY29uZmlndXJhdGlvbiBmaXJzdCwgZWl0aGVyIGEgYm9vbGVhbiBvciBub3RoaW5nLlxuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiBjb25maWcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG4gIC8vIEFycmF5IG9mIGdsb2JzLlxuICByZXR1cm4gY29uZmlnLnNvbWUoYyA9PiAoXG4gICAgbWluaW1hdGNoKGZpbGVuYW1lLCBjKSB8fFxuICAgIG1pbmltYXRjaChmaWxlbmFtZSwgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGMpKVxuICApKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ29wdGlvbmFsRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogWydib29sZWFuJywgJ2FycmF5J10gfSxcbiAgICAgICAgICAnYnVuZGxlZERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdwYWNrYWdlRGlyJzogeyAndHlwZSc6IFsnc3RyaW5nJywgJ2FycmF5J10gfSxcbiAgICAgICAgfSxcbiAgICAgICAgJ2FkZGl0aW9uYWxQcm9wZXJ0aWVzJzogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBmaWxlbmFtZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICAgIGNvbnN0IGRlcHMgPSBnZXREZXBlbmRlbmNpZXMoY29udGV4dCwgb3B0aW9ucy5wYWNrYWdlRGlyKSB8fCBleHRyYWN0RGVwRmllbGRzKHt9KVxuXG4gICAgY29uc3QgZGVwc09wdGlvbnMgPSB7XG4gICAgICBhbGxvd0RldkRlcHM6IHRlc3RDb25maWcob3B0aW9ucy5kZXZEZXBlbmRlbmNpZXMsIGZpbGVuYW1lKSAhPT0gZmFsc2UsXG4gICAgICBhbGxvd09wdERlcHM6IHRlc3RDb25maWcob3B0aW9ucy5vcHRpb25hbERlcGVuZGVuY2llcywgZmlsZW5hbWUpICE9PSBmYWxzZSxcbiAgICAgIGFsbG93UGVlckRlcHM6IHRlc3RDb25maWcob3B0aW9ucy5wZWVyRGVwZW5kZW5jaWVzLCBmaWxlbmFtZSkgIT09IGZhbHNlLFxuICAgICAgYWxsb3dCdW5kbGVkRGVwczogdGVzdENvbmZpZyhvcHRpb25zLmJ1bmRsZWREZXBlbmRlbmNpZXMsIGZpbGVuYW1lKSAhPT0gZmFsc2UsXG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3Iobm9kZSA9PiB7XG4gICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIG5vZGUudmFsdWUpXG4gICAgfSwge2NvbW1vbmpzOiB0cnVlfSlcbiAgfSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcy5qcyJdLCJuYW1lcyI6WyJkZXBGaWVsZENhY2hlIiwiTWFwIiwiaGFzS2V5cyIsIm9iaiIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJhcnJheU9yS2V5cyIsImFycmF5T3JPYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJleHRyYWN0RGVwRmllbGRzIiwicGtnIiwiZGVwZW5kZW5jaWVzIiwiZGV2RGVwZW5kZW5jaWVzIiwib3B0aW9uYWxEZXBlbmRlbmNpZXMiLCJwZWVyRGVwZW5kZW5jaWVzIiwiYnVuZGxlZERlcGVuZGVuY2llcyIsImJ1bmRsZURlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImNvbnRleHQiLCJwYWNrYWdlRGlyIiwicGF0aHMiLCJwYWNrYWdlQ29udGVudCIsInBhdGgiLCJyZXNvbHZlIiwibWFwIiwiZGlyIiwiZm9yRWFjaCIsInBhY2thZ2VKc29uUGF0aCIsImpvaW4iLCJoYXMiLCJkZXBGaWVsZHMiLCJKU09OIiwicGFyc2UiLCJmcyIsInJlYWRGaWxlU3luYyIsInNldCIsIl9wYWNrYWdlQ29udGVudCIsImdldCIsImRlcHNLZXkiLCJhc3NpZ24iLCJyZWFkUGtnVXAiLCJzeW5jIiwiY3dkIiwiZ2V0RmlsZW5hbWUiLCJub3JtYWxpemUiLCJzb21lIiwiZSIsImNvZGUiLCJyZXBvcnQiLCJtZXNzYWdlIiwibG9jIiwibGluZSIsImNvbHVtbiIsIm5hbWUiLCJTeW50YXhFcnJvciIsIm1pc3NpbmdFcnJvck1lc3NhZ2UiLCJwYWNrYWdlTmFtZSIsImRldkRlcEVycm9yTWVzc2FnZSIsIm9wdERlcEVycm9yTWVzc2FnZSIsImdldE1vZHVsZU9yaWdpbmFsTmFtZSIsInNwbGl0IiwiZmlyc3QiLCJzZWNvbmQiLCJzdGFydHNXaXRoIiwiZ2V0TW9kdWxlUmVhbE5hbWUiLCJyZXNvbHZlZCIsImNoZWNrRGVwZW5kZW5jeURlY2xhcmF0aW9uIiwiZGVwcyIsInBhY2thZ2VIaWVyYXJjaHkiLCJwYWNrYWdlTmFtZVBhcnRzIiwibmFtZVBhcnQiLCJpbmRleCIsImFuY2VzdG9yIiwic2xpY2UiLCJwdXNoIiwicmVkdWNlIiwicmVzdWx0IiwiYW5jZXN0b3JOYW1lIiwiaXNJbkRlcHMiLCJ1bmRlZmluZWQiLCJpc0luRGV2RGVwcyIsImlzSW5PcHREZXBzIiwiaXNJblBlZXJEZXBzIiwiaXNJbkJ1bmRsZWREZXBzIiwiaW5kZXhPZiIsInJlcG9ydElmTWlzc2luZyIsImRlcHNPcHRpb25zIiwibm9kZSIsImltcG9ydEtpbmQiLCJwYXJlbnQiLCJpbXBvcnRQYWNrYWdlTmFtZSIsImltcG9ydFBhY2thZ2VOYW1lRGVjbGFyYXRpb24iLCJhbGxvd0RldkRlcHMiLCJhbGxvd1BlZXJEZXBzIiwiYWxsb3dPcHREZXBzIiwiYWxsb3dCdW5kbGVkRGVwcyIsInJlYWxQYWNrYWdlTmFtZSIsInJlYWxQYWNrYWdlTmFtZURlY2xhcmF0aW9uIiwidGVzdENvbmZpZyIsImNvbmZpZyIsImZpbGVuYW1lIiwiYyIsInByb2Nlc3MiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwib3B0aW9ucyIsInNvdXJjZSIsInZhbHVlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiJxb0JBQUEsNEI7QUFDQSx3QjtBQUNBLHdDO0FBQ0Esc0M7QUFDQSxzRDtBQUNBLGtFO0FBQ0EsZ0Q7QUFDQTtBQUNBLHFDOztBQUVBLE1BQU1BLGdCQUFnQixJQUFJQyxHQUFKLEVBQXRCOztBQUVBLFNBQVNDLE9BQVQsR0FBMkIsS0FBVkMsR0FBVSx1RUFBSixFQUFJO0FBQ3pCLFNBQU9DLE9BQU9DLElBQVAsQ0FBWUYsR0FBWixFQUFpQkcsTUFBakIsR0FBMEIsQ0FBakM7QUFDRDs7QUFFRCxTQUFTQyxXQUFULENBQXFCQyxhQUFyQixFQUFvQztBQUNsQyxTQUFPQyxNQUFNQyxPQUFOLENBQWNGLGFBQWQsSUFBK0JBLGFBQS9C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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHJlYWRQa2dVcCBmcm9tICdyZWFkLXBrZy11cCc7XG5pbXBvcnQgbWluaW1hdGNoIGZyb20gJ21pbmltYXRjaCc7XG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJztcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSc7XG5pbXBvcnQgeyBnZXRGaWxlUGFja2FnZU5hbWUgfSBmcm9tICcuLi9jb3JlL3BhY2thZ2VQYXRoJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5jb25zdCBkZXBGaWVsZENhY2hlID0gbmV3IE1hcCgpO1xuXG5mdW5jdGlvbiBoYXNLZXlzKG9iaiA9IHt9KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IDA7XG59XG5cbmZ1bmN0aW9uIGFycmF5T3JLZXlzKGFycmF5T3JPYmplY3QpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXJyYXlPck9iamVjdCkgPyBhcnJheU9yT2JqZWN0IDogT2JqZWN0LmtleXMoYXJyYXlPck9iamVjdCk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3REZXBGaWVsZHMocGtnKSB7XG4gIHJldHVybiB7XG4gICAgZGVwZW5kZW5jaWVzOiBwa2cuZGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIGRldkRlcGVuZGVuY2llczogcGtnLmRldkRlcGVuZGVuY2llcyB8fCB7fSxcbiAgICBvcHRpb25hbERlcGVuZGVuY2llczogcGtnLm9wdGlvbmFsRGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIHBlZXJEZXBlbmRlbmNpZXM6IHBrZy5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIC8vIEJ1bmRsZWREZXBzIHNob3VsZCBiZSBpbiB0aGUgZm9ybSBvZiBhbiBhcnJheSwgYnV0IG9iamVjdCBub3RhdGlvbiBpcyBhbHNvIHN1cHBvcnRlZCBieVxuICAgIC8vIGBucG1gLCBzbyB3ZSBjb252ZXJ0IGl0IHRvIGFuIGFycmF5IGlmIGl0IGlzIGFuIG9iamVjdFxuICAgIGJ1bmRsZWREZXBlbmRlbmNpZXM6IGFycmF5T3JLZXlzKHBrZy5idW5kbGVEZXBlbmRlbmNpZXMgfHwgcGtnLmJ1bmRsZWREZXBlbmRlbmNpZXMgfHwgW10pLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZXBlbmRlbmNpZXMoY29udGV4dCwgcGFja2FnZURpcikge1xuICBsZXQgcGF0aHMgPSBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYWNrYWdlQ29udGVudCA9IHtcbiAgICAgIGRlcGVuZGVuY2llczoge30sXG4gICAgICBkZXZEZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6IHt9LFxuICAgICAgcGVlckRlcGVuZGVuY2llczoge30sXG4gICAgICBidW5kbGVkRGVwZW5kZW5jaWVzOiBbXSxcbiAgICB9O1xuXG4gICAgaWYgKHBhY2thZ2VEaXIgJiYgcGFja2FnZURpci5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFja2FnZURpcikpIHtcbiAgICAgICAgcGF0aHMgPSBbcGF0aC5yZXNvbHZlKHBhY2thZ2VEaXIpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGhzID0gcGFja2FnZURpci5tYXAoZGlyID0+IHBhdGgucmVzb2x2ZShkaXIpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdXNlIHJ1bGUgY29uZmlnIHRvIGZpbmQgcGFja2FnZS5qc29uXG4gICAgICBwYXRocy5mb3JFYWNoKGRpciA9PiB7XG4gICAgICAgIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IHBhdGguam9pbihkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICAgICAgaWYgKCFkZXBGaWVsZENhY2hlLmhhcyhwYWNrYWdlSnNvblBhdGgpKSB7XG4gICAgICAgICAgY29uc3QgZGVwRmllbGRzID0gZXh0cmFjdERlcEZpZWxkcyhcbiAgICAgICAgICAgIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhY2thZ2VKc29uUGF0aCwgJ3V0ZjgnKSlcbiAgICAgICAgICApO1xuICAgICAgICAgIGRlcEZpZWxkQ2FjaGUuc2V0KHBhY2thZ2VKc29uUGF0aCwgZGVwRmllbGRzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfcGFja2FnZUNvbnRlbnQgPSBkZXBGaWVsZENhY2hlLmdldChwYWNrYWdlSnNvblBhdGgpO1xuICAgICAgICBPYmplY3Qua2V5cyhwYWNrYWdlQ29udGVudCkuZm9yRWFjaChkZXBzS2V5ID0+XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihwYWNrYWdlQ29udGVudFtkZXBzS2V5XSwgX3BhY2thZ2VDb250ZW50W2RlcHNLZXldKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVzZSBjbG9zZXN0IHBhY2thZ2UuanNvblxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgcGFja2FnZUNvbnRlbnQsXG4gICAgICAgIGV4dHJhY3REZXBGaWVsZHMoXG4gICAgICAgICAgcmVhZFBrZ1VwLnN5bmMoeyBjd2Q6IGNvbnRleHQuZ2V0RmlsZW5hbWUoKSwgbm9ybWFsaXplOiBmYWxzZSB9KS5wa2dcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIVtcbiAgICAgIHBhY2thZ2VDb250ZW50LmRlcGVuZGVuY2llcyxcbiAgICAgIHBhY2thZ2VDb250ZW50LmRldkRlcGVuZGVuY2llcyxcbiAgICAgIHBhY2thZ2VDb250ZW50Lm9wdGlvbmFsRGVwZW5kZW5jaWVzLFxuICAgICAgcGFja2FnZUNvbnRlbnQucGVlckRlcGVuZGVuY2llcyxcbiAgICAgIHBhY2thZ2VDb250ZW50LmJ1bmRsZWREZXBlbmRlbmNpZXMsXG4gICAgXS5zb21lKGhhc0tleXMpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFja2FnZUNvbnRlbnQ7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAocGF0aHMubGVuZ3RoID4gMCAmJiBlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG1lc3NhZ2U6ICdUaGUgcGFja2FnZS5qc29uIGZpbGUgY291bGQgbm90IGJlIGZvdW5kLicsXG4gICAgICAgIGxvYzogeyBsaW5lOiAwLCBjb2x1bW46IDAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZS5uYW1lID09PSAnSlNPTkVycm9yJyB8fCBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbWVzc2FnZTogJ1RoZSBwYWNrYWdlLmpzb24gZmlsZSBjb3VsZCBub3QgYmUgcGFyc2VkOiAnICsgZS5tZXNzYWdlLFxuICAgICAgICBsb2M6IHsgbGluZTogMCwgY29sdW1uOiAwIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtaXNzaW5nRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLiBgICtcbiAgICBgUnVuICducG0gaSAtUyAke3BhY2thZ2VOYW1lfScgdG8gYWRkIGl0YDtcbn1cblxuZnVuY3Rpb24gZGV2RGVwRXJyb3JNZXNzYWdlKHBhY2thZ2VOYW1lKSB7XG4gIHJldHVybiBgJyR7cGFja2FnZU5hbWV9JyBzaG91bGQgYmUgbGlzdGVkIGluIHRoZSBwcm9qZWN0J3MgZGVwZW5kZW5jaWVzLCBub3QgZGV2RGVwZW5kZW5jaWVzLmA7XG59XG5cbmZ1bmN0aW9uIG9wdERlcEVycm9yTWVzc2FnZShwYWNrYWdlTmFtZSkge1xuICByZXR1cm4gYCcke3BhY2thZ2VOYW1lfScgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgcHJvamVjdCdzIGRlcGVuZGVuY2llcywgYCArXG4gICAgYG5vdCBvcHRpb25hbERlcGVuZGVuY2llcy5gO1xufVxuXG5mdW5jdGlvbiBnZXRNb2R1bGVPcmlnaW5hbE5hbWUobmFtZSkge1xuICBjb25zdCBbZmlyc3QsIHNlY29uZF0gPSBuYW1lLnNwbGl0KCcvJyk7XG4gIHJldHVybiBmaXJzdC5zdGFydHNXaXRoKCdAJykgPyBgJHtmaXJzdH0vJHtzZWNvbmR9YCA6IGZpcnN0O1xufVxuXG5mdW5jdGlvbiBnZXRNb2R1bGVSZWFsTmFtZShyZXNvbHZlZCkge1xuICByZXR1cm4gZ2V0RmlsZVBhY2thZ2VOYW1lKHJlc29sdmVkKTtcbn1cblxuZnVuY3Rpb24gY2hlY2tEZXBlbmRlbmN5RGVjbGFyYXRpb24oZGVwcywgcGFja2FnZU5hbWUpIHtcbiAgLy8gaW4gY2FzZSBvZiBzdWIgcGFja2FnZS5qc29uIGluc2lkZSBhIG1vZHVsZVxuICAvLyBjaGVjayB0aGUgZGVwZW5kZW5jaWVzIG9uIGFsbCBoaWVyYXJjaHlcbiAgY29uc3QgcGFja2FnZUhpZXJhcmNoeSA9IFtdO1xuICBjb25zdCBwYWNrYWdlTmFtZVBhcnRzID0gcGFja2FnZU5hbWUuc3BsaXQoJy8nKTtcbiAgcGFja2FnZU5hbWVQYXJ0cy5mb3JFYWNoKChuYW1lUGFydCwgaW5kZXgpID0+IHtcbiAgICBpZiAoIW5hbWVQYXJ0LnN0YXJ0c1dpdGgoJ0AnKSkge1xuICAgICAgY29uc3QgYW5jZXN0b3IgPSBwYWNrYWdlTmFtZVBhcnRzLnNsaWNlKDAsIGluZGV4ICsgMSkuam9pbignLycpO1xuICAgICAgcGFja2FnZUhpZXJhcmNoeS5wdXNoKGFuY2VzdG9yKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwYWNrYWdlSGllcmFyY2h5LnJlZHVjZSgocmVzdWx0LCBhbmNlc3Rvck5hbWUpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNJbkRlcHM6IHJlc3VsdC5pc0luRGVwcyB8fCBkZXBzLmRlcGVuZGVuY2llc1thbmNlc3Rvck5hbWVdICE9PSB1bmRlZmluZWQsXG4gICAgICBpc0luRGV2RGVwczogcmVzdWx0LmlzSW5EZXZEZXBzIHx8IGRlcHMuZGV2RGVwZW5kZW5jaWVzW2FuY2VzdG9yTmFtZV0gIT09IHVuZGVmaW5lZCxcbiAgICAgIGlzSW5PcHREZXBzOiByZXN1bHQuaXNJbk9wdERlcHMgfHwgZGVwcy5vcHRpb25hbERlcGVuZGVuY2llc1thbmNlc3Rvck5hbWVdICE9PSB1bmRlZmluZWQsXG4gICAgICBpc0luUGVlckRlcHM6IHJlc3VsdC5pc0luUGVlckRlcHMgfHwgZGVwcy5wZWVyRGVwZW5kZW5jaWVzW2FuY2VzdG9yTmFtZV0gIT09IHVuZGVmaW5lZCxcbiAgICAgIGlzSW5CdW5kbGVkRGVwczpcbiAgICAgICAgcmVzdWx0LmlzSW5CdW5kbGVkRGVwcyB8fCBkZXBzLmJ1bmRsZWREZXBlbmRlbmNpZXMuaW5kZXhPZihhbmNlc3Rvck5hbWUpICE9PSAtMSxcbiAgICB9O1xuICB9LCB7XG4gICAgaXNJbkRlcHM6IGZhbHNlLFxuICAgIGlzSW5EZXZEZXBzOiBmYWxzZSxcbiAgICBpc0luT3B0RGVwczogZmFsc2UsXG4gICAgaXNJblBlZXJEZXBzOiBmYWxzZSxcbiAgICBpc0luQnVuZGxlZERlcHM6IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIGRlcHMsIGRlcHNPcHRpb25zLCBub2RlLCBuYW1lKSB7XG4gIC8vIERvIG5vdCByZXBvcnQgd2hlbiBpbXBvcnRpbmcgdHlwZXNcbiAgaWYgKG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGUnIHx8IChub2RlLnBhcmVudCAmJiBub2RlLnBhcmVudC5pbXBvcnRLaW5kID09PSAndHlwZScpIHx8IG5vZGUuaW1wb3J0S2luZCA9PT0gJ3R5cGVvZicpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW1wb3J0VHlwZShuYW1lLCBjb250ZXh0KSAhPT0gJ2V4dGVybmFsJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShuYW1lLCBjb250ZXh0KTtcbiAgaWYgKCFyZXNvbHZlZCkgeyByZXR1cm47IH1cblxuICBjb25zdCBpbXBvcnRQYWNrYWdlTmFtZSA9IGdldE1vZHVsZU9yaWdpbmFsTmFtZShuYW1lKTtcbiAgY29uc3QgaW1wb3J0UGFja2FnZU5hbWVEZWNsYXJhdGlvbiA9IGNoZWNrRGVwZW5kZW5jeURlY2xhcmF0aW9uKGRlcHMsIGltcG9ydFBhY2thZ2VOYW1lKTtcblxuICBpZiAoaW1wb3J0UGFja2FnZU5hbWVEZWNsYXJhdGlvbi5pc0luRGVwcyB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMgJiYgaW1wb3J0UGFja2FnZU5hbWVEZWNsYXJhdGlvbi5pc0luRGV2RGVwcykgfHxcbiAgICAoZGVwc09wdGlvbnMuYWxsb3dQZWVyRGVwcyAmJiBpbXBvcnRQYWNrYWdlTmFtZURlY2xhcmF0aW9uLmlzSW5QZWVyRGVwcykgfHxcbiAgICAoZGVwc09wdGlvbnMuYWxsb3dPcHREZXBzICYmIGltcG9ydFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJbk9wdERlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93QnVuZGxlZERlcHMgJiYgaW1wb3J0UGFja2FnZU5hbWVEZWNsYXJhdGlvbi5pc0luQnVuZGxlZERlcHMpXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIHRlc3QgdGhlIHJlYWwgbmFtZSBmcm9tIHRoZSByZXNvbHZlZCBwYWNrYWdlLmpzb25cbiAgLy8gaWYgbm90IGFsaWFzZWQgaW1wb3J0cyAoYWxpYXMvcmVhY3QgZm9yIGV4YW1wbGUpLCBpbXBvcnRQYWNrYWdlTmFtZSBjYW4gYmUgIG1pc2ludGVycHJldGVkXG4gIGNvbnN0IHJlYWxQYWNrYWdlTmFtZSA9IGdldE1vZHVsZVJlYWxOYW1lKHJlc29sdmVkKTtcbiAgY29uc3QgcmVhbFBhY2thZ2VOYW1lRGVjbGFyYXRpb24gPSBjaGVja0RlcGVuZGVuY3lEZWNsYXJhdGlvbihkZXBzLCByZWFsUGFja2FnZU5hbWUpO1xuXG4gIGlmIChyZWFsUGFja2FnZU5hbWVEZWNsYXJhdGlvbi5pc0luRGVwcyB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMgJiYgcmVhbFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJbkRldkRlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93UGVlckRlcHMgJiYgcmVhbFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJblBlZXJEZXBzKSB8fFxuICAgIChkZXBzT3B0aW9ucy5hbGxvd09wdERlcHMgJiYgcmVhbFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJbk9wdERlcHMpIHx8XG4gICAgKGRlcHNPcHRpb25zLmFsbG93QnVuZGxlZERlcHMgJiYgcmVhbFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJbkJ1bmRsZWREZXBzKVxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoKFxuICAgIGltcG9ydFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJbkRldkRlcHMgfHxcbiAgICByZWFsUGFja2FnZU5hbWVEZWNsYXJhdGlvbi5pc0luRGV2RGVwc1xuICApICYmICFkZXBzT3B0aW9ucy5hbGxvd0RldkRlcHMpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBkZXZEZXBFcnJvck1lc3NhZ2UocmVhbFBhY2thZ2VOYW1lKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKChcbiAgICBpbXBvcnRQYWNrYWdlTmFtZURlY2xhcmF0aW9uLmlzSW5PcHREZXBzIHx8XG4gICAgcmVhbFBhY2thZ2VOYW1lRGVjbGFyYXRpb24uaXNJbk9wdERlcHNcbiAgKSAmJiAhZGVwc09wdGlvbnMuYWxsb3dPcHREZXBzKSB7XG4gICAgY29udGV4dC5yZXBvcnQobm9kZSwgb3B0RGVwRXJyb3JNZXNzYWdlKHJlYWxQYWNrYWdlTmFtZSkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnRleHQucmVwb3J0KG5vZGUsIG1pc3NpbmdFcnJvck1lc3NhZ2UocmVhbFBhY2thZ2VOYW1lKSk7XG59XG5cbmZ1bmN0aW9uIHRlc3RDb25maWcoY29uZmlnLCBmaWxlbmFtZSkge1xuICAvLyBTaW1wbGVzdCBjb25maWd1cmF0aW9uIGZpcnN0LCBlaXRoZXIgYSBib29sZWFuIG9yIG5vdGhpbmcuXG4gIGlmICh0eXBlb2YgY29uZmlnID09PSAnYm9vbGVhbicgfHwgdHlwZW9mIGNvbmZpZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG4gIC8vIEFycmF5IG9mIGdsb2JzLlxuICByZXR1cm4gY29uZmlnLnNvbWUoYyA9PiAoXG4gICAgbWluaW1hdGNoKGZpbGVuYW1lLCBjKSB8fFxuICAgIG1pbmltYXRjaChmaWxlbmFtZSwgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGMpKVxuICApKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICAgJ2RldkRlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdvcHRpb25hbERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdwZWVyRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ2J1bmRsZWREZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogWydib29sZWFuJywgJ2FycmF5J10gfSxcbiAgICAgICAgICAncGFja2FnZURpcic6IHsgJ3R5cGUnOiBbJ3N0cmluZycsICdhcnJheSddIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9O1xuICAgIGNvbnN0IGZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpO1xuICAgIGNvbnN0IGRlcHMgPSBnZXREZXBlbmRlbmNpZXMoY29udGV4dCwgb3B0aW9ucy5wYWNrYWdlRGlyKSB8fCBleHRyYWN0RGVwRmllbGRzKHt9KTtcblxuICAgIGNvbnN0IGRlcHNPcHRpb25zID0ge1xuICAgICAgYWxsb3dEZXZEZXBzOiB0ZXN0Q29uZmlnKG9wdGlvbnMuZGV2RGVwZW5kZW5jaWVzLCBmaWxlbmFtZSkgIT09IGZhbHNlLFxuICAgICAgYWxsb3dPcHREZXBzOiB0ZXN0Q29uZmlnKG9wdGlvbnMub3B0aW9uYWxEZXBlbmRlbmNpZXMsIGZpbGVuYW1lKSAhPT0gZmFsc2UsXG4gICAgICBhbGxvd1BlZXJEZXBzOiB0ZXN0Q29uZmlnKG9wdGlvbnMucGVlckRlcGVuZGVuY2llcywgZmlsZW5hbWUpICE9PSBmYWxzZSxcbiAgICAgIGFsbG93QnVuZGxlZERlcHM6IHRlc3RDb25maWcob3B0aW9ucy5idW5kbGVkRGVwZW5kZW5jaWVzLCBmaWxlbmFtZSkgIT09IGZhbHNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcigoc291cmNlLCBub2RlKSA9PiB7XG4gICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgZGVwcywgZGVwc09wdGlvbnMsIG5vZGUsIHNvdXJjZS52YWx1ZSk7XG4gICAgfSwgeyBjb21tb25qczogdHJ1ZSB9KTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-import-module-exports.js b/node_modules/eslint-plugin-import/lib/rules/no-import-module-exports.js new file mode 100644 index 0000000000..e24587fa31 --- /dev/null +++ b/node_modules/eslint-plugin-import/lib/rules/no-import-module-exports.js @@ -0,0 +1,72 @@ +'use strict';var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch); +var _path = require('path');var _path2 = _interopRequireDefault(_path); +var _pkgUp = require('pkg-up');var _pkgUp2 = _interopRequireDefault(_pkgUp);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} + +function getEntryPoint(context) { + const pkgPath = _pkgUp2.default.sync(context.getFilename()); + try { + return require.resolve(_path2.default.dirname(pkgPath)); + } catch (error) { + // Assume the package has no entrypoint (e.g. CLI packages) + // in which case require.resolve would throw. + return null; + } +} + +module.exports = { + meta: { + type: 'problem', + docs: { + description: 'Disallow import statements with module.exports', + category: 'Best Practices', + recommended: true }, + + fixable: 'code', + schema: [ + { + 'type': 'object', + 'properties': { + 'exceptions': { 'type': 'array' } }, + + 'additionalProperties': false }] }, + + + + create(context) { + const importDeclarations = []; + const entryPoint = getEntryPoint(context); + const options = context.options[0] || {}; + let alreadyReported = false; + + function report(node) { + const fileName = context.getFilename(); + const isEntryPoint = entryPoint === fileName; + const isIdentifier = node.object.type === 'Identifier'; + const hasKeywords = /^(module|exports)$/.test(node.object.name); + const isException = options.exceptions && + options.exceptions.some(glob => (0, _minimatch2.default)(fileName, glob)); + + if (isIdentifier && hasKeywords && !isEntryPoint && !isException) { + importDeclarations.forEach(importDeclaration => { + context.report({ + node: importDeclaration, + message: `Cannot use import declarations in modules that export using ` + + `CommonJS (module.exports = 'foo' or exports.bar = 'hi')` }); + + }); + alreadyReported = true; + } + } + + return { + ImportDeclaration(node) { + importDeclarations.push(node); + }, + MemberExpression(node) { + if (!alreadyReported) { + report(node); + } + } }; + + } }; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMuanMiXSwibmFtZXMiOlsiZ2V0RW50cnlQb2ludCIsImNvbnRleHQiLCJwa2dQYXRoIiwicGtnVXAiLCJzeW5jIiwiZ2V0RmlsZW5hbWUiLCJyZXF1aXJlIiwicmVzb2x2ZSIsInBhdGgiLCJkaXJuYW1lIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsInJlY29tbWVuZGVkIiwiZml4YWJsZSIsInNjaGVtYSIsImNyZWF0ZSIsImltcG9ydERlY2xhcmF0aW9ucyIsImVudHJ5UG9pbnQiLCJvcHRpb25zIiwiYWxyZWFkeVJlcG9ydGVkIiwicmVwb3J0Iiwibm9kZSIsImZpbGVOYW1lIiwiaXNFbnRyeVBvaW50IiwiaXNJZGVudGlmaWVyIiwib2JqZWN0IiwiaGFzS2V5d29yZHMiLCJ0ZXN0IiwibmFtZSIsImlzRXhjZXB0aW9uIiwiZXhjZXB0aW9ucyIsInNvbWUiLCJnbG9iIiwiZm9yRWFjaCIsImltcG9ydERlY2xhcmF0aW9uIiwibWVzc2FnZSIsIkltcG9ydERlY2xhcmF0aW9uIiwicHVzaCIsIk1lbWJlckV4cHJlc3Npb24iXSwibWFwcGluZ3MiOiJhQUFBLHNDO0FBQ0EsNEI7QUFDQSwrQjs7QUFFQSxTQUFTQSxhQUFULENBQXVCQyxPQUF2QixFQUFnQztBQUM5QixRQUFNQyxVQUFVQyxnQkFBTUMsSUFBTixDQUFXSCxRQUFRSSxXQUFSLEVBQVgsQ0FBaEI7QUFDQSxNQUFJO0FBQ0YsV0FBT0MsUUFBUUMsT0FBUixDQUFnQkMsZUFBS0MsT0FBTCxDQUFhUCxPQUFiLENBQWhCLENBQVA7QUFDRCxHQUZELENBRUUsT0FBT1EsS0FBUCxFQUFjO0FBQ2Q7QUFDQTtBQUNBLFdBQU8sSUFBUDtBQUNEO0FBQ0Y7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxtQkFBYSxnREFEVDtBQUVKQyxnQkFBVSxnQkFGTjtBQUdKQyxtQkFBYSxJQUhULEVBRkY7O0FBT0pDLGFBQVMsTUFQTDtBQVFKQyxZQUFRO0FBQ047QUFDRSxjQUFRLFFBRFY7QUFFRSxvQkFBYztBQUNaLHNCQUFjLEVBQUUsUUFBUSxPQUFWLEVBREYsRUFGaEI7O0FBS0UsOEJBQXdCLEtBTDFCLEVBRE0sQ0FSSixFQURTOzs7O0FBbUJmQyxTQUFPcEIsT0FBUCxFQUFnQjtBQUNkLFVBQU1xQixxQkFBcUIsRUFBM0I7QUFDQSxVQUFNQyxhQUFhdkIsY0FBY0MsT0FBZCxDQUFuQjtBQUNBLFVBQU11QixVQUFVdkIsUUFBUXVCLE9BQVIsQ0FBZ0IsQ0FBaEIsS0FBc0IsRUFBdEM7QUFDQSxRQUFJQyxrQkFBa0IsS0FBdEI7O0FBRUEsYUFBU0MsTUFBVCxDQUFnQkMsSUFBaEIsRUFBc0I7QUFDcEIsWUFBTUMsV0FBVzNCLFFBQVFJLFdBQVIsRUFBakI7QUFDQSxZQUFNd0IsZUFBZU4sZUFBZUssUUFBcEM7QUFDQSxZQUFNRSxlQUFlSCxLQUFLSSxNQUFMLENBQVlqQixJQUFaLEtBQXFCLFlBQTFDO0FBQ0EsWUFBTWtCLGNBQWUsb0JBQUQsQ0FBdUJDLElBQXZCLENBQTRCTixLQUFLSSxNQUFMLENBQVlHLElBQXhDLENBQXBCO0FBQ0EsWUFBTUMsY0FBY1gsUUFBUVksVUFBUjtBQUNsQlosY0FBUVksVUFBUixDQUFtQkMsSUFBbkIsQ0FBd0JDLFFBQVEseUJBQVVWLFFBQVYsRUFBb0JVLElBQXBCLENBQWhDLENBREY7O0FBR0EsVUFBSVIsZ0JBQWdCRSxXQUFoQixJQUErQixDQUFDSCxZQUFoQyxJQUFnRCxDQUFDTSxXQUFyRCxFQUFrRTtBQUNoRWIsMkJBQW1CaUIsT0FBbkIsQ0FBMkJDLHFCQUFxQjtBQUM5Q3ZDLGtCQUFReUIsTUFBUixDQUFlO0FBQ2JDLGtCQUFNYSxpQkFETztBQUViQyxxQkFBVSw4REFBRDtBQUNOLHFFQUhVLEVBQWY7O0FBS0QsU0FORDtBQU9BaEIsMEJBQWtCLElBQWxCO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPO0FBQ0xpQix3QkFBa0JmLElBQWxCLEVBQXdCO0FBQ3RCTCwyQkFBbUJxQixJQUFuQixDQUF3QmhCLElBQXhCO0FBQ0QsT0FISTtBQUlMaUIsdUJBQWlCakIsSUFBakIsRUFBdUI7QUFDckIsWUFBSSxDQUFDRixlQUFMLEVBQXNCO0FBQ3BCQyxpQkFBT0MsSUFBUDtBQUNEO0FBQ0YsT0FSSSxFQUFQOztBQVVELEdBdkRjLEVBQWpCIiwiZmlsZSI6Im5vLWltcG9ydC1tb2R1bGUtZXhwb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHBrZ1VwIGZyb20gJ3BrZy11cCc7XG5cbmZ1bmN0aW9uIGdldEVudHJ5UG9pbnQoY29udGV4dCkge1xuICBjb25zdCBwa2dQYXRoID0gcGtnVXAuc3luYyhjb250ZXh0LmdldEZpbGVuYW1lKCkpO1xuICB0cnkge1xuICAgIHJldHVybiByZXF1aXJlLnJlc29sdmUocGF0aC5kaXJuYW1lKHBrZ1BhdGgpKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBBc3N1bWUgdGhlIHBhY2thZ2UgaGFzIG5vIGVudHJ5cG9pbnQgKGUuZy4gQ0xJIHBhY2thZ2VzKVxuICAgIC8vIGluIHdoaWNoIGNhc2UgcmVxdWlyZS5yZXNvbHZlIHdvdWxkIHRocm93LlxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGlzYWxsb3cgaW1wb3J0IHN0YXRlbWVudHMgd2l0aCBtb2R1bGUuZXhwb3J0cycsXG4gICAgICBjYXRlZ29yeTogJ0Jlc3QgUHJhY3RpY2VzJyxcbiAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgIH0sXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnZXhjZXB0aW9ucyc6IHsgJ3R5cGUnOiAnYXJyYXknIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IGltcG9ydERlY2xhcmF0aW9ucyA9IFtdO1xuICAgIGNvbnN0IGVudHJ5UG9pbnQgPSBnZXRFbnRyeVBvaW50KGNvbnRleHQpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge307XG4gICAgbGV0IGFscmVhZHlSZXBvcnRlZCA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gcmVwb3J0KG5vZGUpIHtcbiAgICAgIGNvbnN0IGZpbGVOYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpO1xuICAgICAgY29uc3QgaXNFbnRyeVBvaW50ID0gZW50cnlQb2ludCA9PT0gZmlsZU5hbWU7XG4gICAgICBjb25zdCBpc0lkZW50aWZpZXIgPSBub2RlLm9iamVjdC50eXBlID09PSAnSWRlbnRpZmllcic7XG4gICAgICBjb25zdCBoYXNLZXl3b3JkcyA9ICgvXihtb2R1bGV8ZXhwb3J0cykkLykudGVzdChub2RlLm9iamVjdC5uYW1lKTtcbiAgICAgIGNvbnN0IGlzRXhjZXB0aW9uID0gb3B0aW9ucy5leGNlcHRpb25zICYmXG4gICAgICAgIG9wdGlvbnMuZXhjZXB0aW9ucy5zb21lKGdsb2IgPT4gbWluaW1hdGNoKGZpbGVOYW1lLCBnbG9iKSk7XG5cbiAgICAgIGlmIChpc0lkZW50aWZpZXIgJiYgaGFzS2V5d29yZHMgJiYgIWlzRW50cnlQb2ludCAmJiAhaXNFeGNlcHRpb24pIHtcbiAgICAgICAgaW1wb3J0RGVjbGFyYXRpb25zLmZvckVhY2goaW1wb3J0RGVjbGFyYXRpb24gPT4ge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGU6IGltcG9ydERlY2xhcmF0aW9uLFxuICAgICAgICAgICAgbWVzc2FnZTogYENhbm5vdCB1c2UgaW1wb3J0IGRlY2xhcmF0aW9ucyBpbiBtb2R1bGVzIHRoYXQgZXhwb3J0IHVzaW5nIGAgK1xuICAgICAgICAgICAgICBgQ29tbW9uSlMgKG1vZHVsZS5leHBvcnRzID0gJ2Zvbycgb3IgZXhwb3J0cy5iYXIgPSAnaGknKWAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBhbHJlYWR5UmVwb3J0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGltcG9ydERlY2xhcmF0aW9ucy5wdXNoKG5vZGUpO1xuICAgICAgfSxcbiAgICAgIE1lbWJlckV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAoIWFscmVhZHlSZXBvcnRlZCkge1xuICAgICAgICAgIHJlcG9ydChub2RlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js index 32d90d18ba..ad46f401f3 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-internal-modules.js @@ -1,8 +1,8 @@ -'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch); +'use strict';var _minimatch = require('minimatch');var _minimatch2 = _interopRequireDefault(_minimatch); var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType); -var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire); +var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} module.exports = { @@ -14,16 +14,32 @@ module.exports = { schema: [ { - type: 'object', - properties: { - allow: { - type: 'array', - items: { - type: 'string' } } }, + oneOf: [ + { + type: 'object', + properties: { + allow: { + type: 'array', + items: { + type: 'string' } } }, + + + + additionalProperties: false }, + + { + type: 'object', + properties: { + forbid: { + type: 'array', + items: { + type: 'string' } } }, + + + additionalProperties: false }] }] }, - additionalProperties: false }] }, @@ -31,11 +47,7 @@ module.exports = { create: function noReachingInside(context) { const options = context.options[0] || {}; const allowRegexps = (options.allow || []).map(p => _minimatch2.default.makeRe(p)); - - // test if reaching to this destination is allowed - function reachingAllowed(importPath) { - return allowRegexps.some(re => re.test(importPath)); - } + const forbidRegexps = (options.forbid || []).map(p => _minimatch2.default.makeRe(p)); // minimatch patterns are expected to use / path separators, like import // statements, so normalize paths to use the same @@ -43,9 +55,8 @@ module.exports = { return somePath.split('\\').join('/'); } - // find a directory that is being reached into, but which shouldn't be - function isReachViolation(importPath) { - const steps = normalizeSep(importPath). + function toSteps(somePath) { + return normalizeSep(somePath). split('/'). reduce((acc, step) => { if (!step || step === '.') { @@ -56,6 +67,20 @@ module.exports = { return acc.concat(step); } }, []); + } + + // test if reaching to this destination is allowed + function reachingAllowed(importPath) { + return allowRegexps.some(re => re.test(importPath)); + } + + // test if reaching to this destination is forbidden + function reachingForbidden(importPath) { + return forbidRegexps.some(re => re.test(importPath)); + } + + function isAllowViolation(importPath) { + const steps = toSteps(importPath); const nonScopeSteps = steps.filter(step => step.indexOf('@') !== 0); if (nonScopeSteps.length <= 1) return false; @@ -75,6 +100,27 @@ module.exports = { return true; } + function isForbidViolation(importPath) { + const steps = toSteps(importPath); + + // before trying to resolve, see if the raw import (with relative + // segments resolved) matches a forbidden pattern + const justSteps = steps.join('/'); + + if (reachingForbidden(justSteps) || reachingForbidden(`/${justSteps}`)) return true; + + // if the import statement doesn't match directly, try to match the + // resolved path if the import is resolvable + const resolved = (0, _resolve2.default)(importPath, context); + if (resolved && reachingForbidden(normalizeSep(resolved))) return true; + + // this import was not forbidden by the forbidden paths so it is not a violation + return false; + } + + // find a directory that is being reached into, but which shouldn't be + const isReachViolation = options.forbid ? isForbidViolation : isAllowViolation; + function checkImportForReaching(importPath, node) { const potentialViolationTypes = ['parent', 'index', 'sibling', 'external', 'internal']; if (potentialViolationTypes.indexOf((0, _importType2.default)(importPath, context)) !== -1 && @@ -87,24 +133,8 @@ module.exports = { } } - return { - ImportDeclaration(node) { - checkImportForReaching(node.source.value, node.source); - }, - ExportAllDeclaration(node) { - checkImportForReaching(node.source.value, node.source); - }, - ExportNamedDeclaration(node) { - if (node.source) { - checkImportForReaching(node.source.value, node.source); - } - }, - CallExpression(node) { - if ((0, _staticRequire2.default)(node)) {var _node$arguments = _slicedToArray( - node.arguments, 1);const firstArgument = _node$arguments[0]; - checkImportForReaching(firstArgument.value, firstArgument); - } - } }; - + return (0, _moduleVisitor2.default)(source => { + checkImportForReaching(source.value, source); + }, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJpdGVtcyIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwibm9SZWFjaGluZ0luc2lkZSIsImNvbnRleHQiLCJvcHRpb25zIiwiYWxsb3dSZWdleHBzIiwibWFwIiwicCIsIm1pbmltYXRjaCIsIm1ha2VSZSIsInJlYWNoaW5nQWxsb3dlZCIsImltcG9ydFBhdGgiLCJzb21lIiwicmUiLCJ0ZXN0Iiwibm9ybWFsaXplU2VwIiwic29tZVBhdGgiLCJzcGxpdCIsImpvaW4iLCJpc1JlYWNoVmlvbGF0aW9uIiwic3RlcHMiLCJyZWR1Y2UiLCJhY2MiLCJzdGVwIiwic2xpY2UiLCJjb25jYXQiLCJub25TY29wZVN0ZXBzIiwiZmlsdGVyIiwiaW5kZXhPZiIsImxlbmd0aCIsImp1c3RTdGVwcyIsInJlc29sdmVkIiwiY2hlY2tJbXBvcnRGb3JSZWFjaGluZyIsIm5vZGUiLCJwb3RlbnRpYWxWaW9sYXRpb25UeXBlcyIsInJlcG9ydCIsIm1lc3NhZ2UiLCJJbXBvcnREZWNsYXJhdGlvbiIsInNvdXJjZSIsInZhbHVlIiwiRXhwb3J0QWxsRGVjbGFyYXRpb24iLCJFeHBvcnROYW1lZERlY2xhcmF0aW9uIiwiQ2FsbEV4cHJlc3Npb24iLCJhcmd1bWVudHMiLCJmaXJzdEFyZ3VtZW50Il0sIm1hcHBpbmdzIjoicW9CQUFBLHNDOztBQUVBLHNEO0FBQ0EsZ0Q7QUFDQSxzRDtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxxQkFBUixDQURELEVBRkY7OztBQU1KQyxZQUFRO0FBQ047QUFDRUgsWUFBTSxRQURSO0FBRUVJLGtC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QkFBcUJQLElBQXJCLEVBQTJCO0FBQ3pCRCwrQkFBdUJDLEtBQUtLLE1BQUwsQ0FBWUMsS0FBbkMsRUFBMENOLEtBQUtLLE1BQS9DO0FBQ0QsT0FOSTtBQU9MRyw2QkFBdUJSLElBQXZCLEVBQTZCO0FBQzNCLFlBQUlBLEtBQUtLLE1BQVQsRUFBaUI7QUFDZk4saUNBQXVCQyxLQUFLSyxNQUFMLENBQVlDLEtBQW5DLEVBQTBDTixLQUFLSyxNQUEvQztBQUNEO0FBQ0YsT0FYSTtBQVlMSSxxQkFBZVQsSUFBZixFQUFxQjtBQUNuQixZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUNDQSxlQUFLVSxTQUROLFdBQ2pCQyxhQURpQjtBQUV6QlosaUNBQXVCWSxjQUFjTCxLQUFyQyxFQUE0Q0ssYUFBNUM7QUFDRDtBQUNGLE9BakJJLEVBQVA7O0FBbUJELEdBckdjLEVBQWpCIiwiZmlsZSI6Im5vLWludGVybmFsLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWluaW1hdGNoIGZyb20gJ21pbmltYXRjaCdcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLWludGVybmFsLW1vZHVsZXMnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWxsb3c6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gbm9SZWFjaGluZ0luc2lkZShjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fVxuICAgIGNvbnN0IGFsbG93UmVnZXhwcyA9IChvcHRpb25zLmFsbG93IHx8IFtdKS5tYXAocCA9PiBtaW5pbWF0Y2gubWFrZVJlKHApKVxuXG4gICAgLy8gdGVzdCBpZiByZWFjaGluZyB0byB0aGlzIGRlc3RpbmF0aW9uIGlzIGFsbG93ZWRcbiAgICBmdW5jdGlvbiByZWFjaGluZ0FsbG93ZWQoaW1wb3J0UGF0aCkge1xuICAgICAgcmV0dXJuIGFsbG93UmVnZXhwcy5zb21lKHJlID0+IHJlLnRlc3QoaW1wb3J0UGF0aCkpXG4gICAgfVxuXG4gICAgLy8gbWluaW1hdGNoIHBhdHRlcm5zIGFyZSBleHBlY3RlZCB0byB1c2UgLyBwYXRoIHNlcGFyYXRvcnMsIGxpa2UgaW1wb3J0XG4gICAgLy8gc3RhdGVtZW50cywgc28gbm9ybWFsaXplIHBhdGhzIHRvIHVzZSB0aGUgc2FtZVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVNlcChzb21lUGF0aCkge1xuICAgICAgcmV0dXJuIHNvbWVQYXRoLnNwbGl0KCdcXFxcJykuam9pbignLycpXG4gICAgfVxuXG4gICAgLy8gZmluZCBhIGRpcmVjdG9yeSB0aGF0IGlzIGJlaW5nIHJlYWNoZWQgaW50bywgYnV0IHdoaWNoIHNob3VsZG4ndCBiZVxuICAgIGZ1bmN0aW9uIGlzUmVhY2hWaW9sYXRpb24oaW1wb3J0UGF0aCkge1xuICAgICAgY29uc3Qgc3RlcHMgPSBub3JtYWxpemVTZXAoaW1wb3J0UGF0aClcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnJlZHVjZSgoYWNjLCBzdGVwKSA9PiB7XG4gICAgICAgICAgaWYgKCFzdGVwIHx8IHN0ZXAgPT09ICcuJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3RlcCA9PT0gJy4uJykge1xuICAgICAgICAgICAgcmV0dXJuIGFjYy5zbGljZSgwLCAtMSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoc3RlcClcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKVxuXG4gICAgICBjb25zdCBub25TY29wZVN0ZXBzID0gc3RlcHMuZmlsdGVyKHN0ZXAgPT4gc3RlcC5pbmRleE9mKCdAJykgIT09IDApXG4gICAgICBpZiAobm9uU2NvcGVTdGVwcy5sZW5ndGggPD0gMSkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIC8vIGJlZm9yZSB0cnlpbmcgdG8gcmVzb2x2ZSwgc2VlIGlmIHRoZSByYXcgaW1wb3J0ICh3aXRoIHJlbGF0aXZlXG4gICAgICAvLyBzZWdtZW50cyByZXNvbHZlZCkgbWF0Y2hlcyBhbiBhbGxvd2VkIHBhdHRlcm5cbiAgICAgIGNvbnN0IGp1c3RTdGVwcyA9IHN0ZXBzLmpvaW4oJy8nKVxuICAgICAgaWYgKHJlYWNoaW5nQWxsb3dlZChqdXN0U3RlcHMpIHx8IHJlYWNoaW5nQWxsb3dlZChgLyR7anVzdFN0ZXBzfWApKSByZXR1cm4gZmFsc2VcblxuICAgICAgLy8gaWYgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZG9lc24ndCBtYXRjaCBkaXJlY3RseSwgdHJ5IHRvIG1hdGNoIHRoZVxuICAgICAgLy8gcmVzb2x2ZWQgcGF0aCBpZiB0aGUgaW1wb3J0IGlzIHJlc29sdmFibGVcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KVxuICAgICAgaWYgKCFyZXNvbHZlZCB8fCByZWFjaGluZ0FsbG93ZWQobm9ybWFsaXplU2VwKHJlc29sdmVkKSkpIHJldHVybiBmYWxzZVxuXG4gICAgICAvLyB0aGlzIGltcG9ydCB3YXMgbm90IGFsbG93ZWQgYnkgdGhlIGFsbG93ZWQgcGF0aHMsIGFuZCByZWFjaGVzXG4gICAgICAvLyBzbyBpdCBpcyBhIHZpb2xhdGlvblxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0ltcG9ydEZvclJlYWNoaW5nKGltcG9ydFBhdGgsIG5vZGUpIHtcbiAgICAgIGNvbnN0IHBvdGVudGlhbFZpb2xhdGlvblR5cGVzID0gWydwYXJlbnQnLCAnaW5kZXgnLCAnc2libGluZycsICdleHRlcm5hbCcsICdpbnRlcm5hbCddXG4gICAgICBpZiAocG90ZW50aWFsVmlvbGF0aW9uVHlwZXMuaW5kZXhPZihpbXBvcnRUeXBlKGltcG9ydFBhdGgsIGNvbnRleHQpKSAhPT0gLTEgJiZcbiAgICAgICAgaXNSZWFjaFZpb2xhdGlvbihpbXBvcnRQYXRoKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6IGBSZWFjaGluZyB0byBcIiR7aW1wb3J0UGF0aH1cIiBpcyBub3QgYWxsb3dlZC5gLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcobm9kZS5zb3VyY2UudmFsdWUsIG5vZGUuc291cmNlKVxuICAgICAgfSxcbiAgICAgIEV4cG9ydEFsbERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgY2hlY2tJbXBvcnRGb3JSZWFjaGluZyhub2RlLnNvdXJjZS52YWx1ZSwgbm9kZS5zb3VyY2UpXG4gICAgICB9LFxuICAgICAgRXhwb3J0TmFtZWREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLnNvdXJjZSkge1xuICAgICAgICAgIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcobm9kZS5zb3VyY2UudmFsdWUsIG5vZGUuc291cmNlKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZSkge1xuICAgICAgICBpZiAoaXNTdGF0aWNSZXF1aXJlKG5vZGUpKSB7XG4gICAgICAgICAgY29uc3QgWyBmaXJzdEFyZ3VtZW50IF0gPSBub2RlLmFyZ3VtZW50c1xuICAgICAgICAgIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcoZmlyc3RBcmd1bWVudC52YWx1ZSwgZmlyc3RBcmd1bWVudClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1pbnRlcm5hbC1tb2R1bGVzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJvbmVPZiIsInByb3BlcnRpZXMiLCJhbGxvdyIsIml0ZW1zIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJmb3JiaWQiLCJjcmVhdGUiLCJub1JlYWNoaW5nSW5zaWRlIiwiY29udGV4dCIsIm9wdGlvbnMiLCJhbGxvd1JlZ2V4cHMiLCJtYXAiLCJwIiwibWluaW1hdGNoIiwibWFrZVJlIiwiZm9yYmlkUmVnZXhwcyIsIm5vcm1hbGl6ZVNlcCIsInNvbWVQYXRoIiwic3BsaXQiLCJqb2luIiwidG9TdGVwcyIsInJlZHVjZSIsImFjYyIsInN0ZXAiLCJzbGljZSIsImNvbmNhdCIsInJlYWNoaW5nQWxsb3dlZCIsImltcG9ydFBhdGgiLCJzb21lIiwicmUiLCJ0ZXN0IiwicmVhY2hpbmdGb3JiaWRkZW4iLCJpc0FsbG93VmlvbGF0aW9uIiwic3RlcHMiLCJub25TY29wZVN0ZXBzIiwiZmlsdGVyIiwiaW5kZXhPZiIsImxlbmd0aCIsImp1c3RTdGVwcyIsInJlc29sdmVkIiwiaXNGb3JiaWRWaW9sYXRpb24iLCJpc1JlYWNoVmlvbGF0aW9uIiwiY2hlY2tJbXBvcnRGb3JSZWFjaGluZyIsIm5vZGUiLCJwb3RlbnRpYWxWaW9sYXRpb25UeXBlcyIsInJlcG9ydCIsIm1lc3NhZ2UiLCJzb3VyY2UiLCJ2YWx1ZSIsImNvbW1vbmpzIl0sIm1hcHBpbmdzIjoiYUFBQSxzQzs7QUFFQSxzRDtBQUNBLGdEO0FBQ0Esa0U7QUFDQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEscUJBQVIsQ0FERCxFQUZGOzs7QUFNSkMsWUFBUTtBQUNOO0FBQ0VDLGFBQU87QUFDTDtBQUNFSixjQUFN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aW50ZXJuYWwtbW9kdWxlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJztcblxuaW1wb3J0IHJlc29sdmUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9yZXNvbHZlJztcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSc7XG5pbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8taW50ZXJuYWwtbW9kdWxlcycpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgYWxsb3c6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBmb3JiaWQ6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gbm9SZWFjaGluZ0luc2lkZShjb250ZXh0KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fTtcbiAgICBjb25zdCBhbGxvd1JlZ2V4cHMgPSAob3B0aW9ucy5hbGxvdyB8fCBbXSkubWFwKHAgPT4gbWluaW1hdGNoLm1ha2VSZShwKSk7XG4gICAgY29uc3QgZm9yYmlkUmVnZXhwcyA9IChvcHRpb25zLmZvcmJpZCB8fCBbXSkubWFwKHAgPT4gbWluaW1hdGNoLm1ha2VSZShwKSk7XG5cbiAgICAvLyBtaW5pbWF0Y2ggcGF0dGVybnMgYXJlIGV4cGVjdGVkIHRvIHVzZSAvIHBhdGggc2VwYXJhdG9ycywgbGlrZSBpbXBvcnRcbiAgICAvLyBzdGF0ZW1lbnRzLCBzbyBub3JtYWxpemUgcGF0aHMgdG8gdXNlIHRoZSBzYW1lXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplU2VwKHNvbWVQYXRoKSB7XG4gICAgICByZXR1cm4gc29tZVBhdGguc3BsaXQoJ1xcXFwnKS5qb2luKCcvJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9TdGVwcyhzb21lUGF0aCkge1xuICAgICAgcmV0dXJuICBub3JtYWxpemVTZXAoc29tZVBhdGgpXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5yZWR1Y2UoKGFjYywgc3RlcCkgPT4ge1xuICAgICAgICAgIGlmICghc3RlcCB8fCBzdGVwID09PSAnLicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSBlbHNlIGlmIChzdGVwID09PSAnLi4nKSB7XG4gICAgICAgICAgICByZXR1cm4gYWNjLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoc3RlcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG4gICAgfVxuXG4gICAgLy8gdGVzdCBpZiByZWFjaGluZyB0byB0aGlzIGRlc3RpbmF0aW9uIGlzIGFsbG93ZWRcbiAgICBmdW5jdGlvbiByZWFjaGluZ0FsbG93ZWQoaW1wb3J0UGF0aCkge1xuICAgICAgcmV0dXJuIGFsbG93UmVnZXhwcy5zb21lKHJlID0+IHJlLnRlc3QoaW1wb3J0UGF0aCkpO1xuICAgIH1cblxuICAgIC8vIHRlc3QgaWYgcmVhY2hpbmcgdG8gdGhpcyBkZXN0aW5hdGlvbiBpcyBmb3JiaWRkZW5cbiAgICBmdW5jdGlvbiByZWFjaGluZ0ZvcmJpZGRlbihpbXBvcnRQYXRoKSB7XG4gICAgICByZXR1cm4gZm9yYmlkUmVnZXhwcy5zb21lKHJlID0+IHJlLnRlc3QoaW1wb3J0UGF0aCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQWxsb3dWaW9sYXRpb24oaW1wb3J0UGF0aCkge1xuICAgICAgY29uc3Qgc3RlcHMgPSB0b1N0ZXBzKGltcG9ydFBhdGgpO1xuXG4gICAgICBjb25zdCBub25TY29wZVN0ZXBzID0gc3RlcHMuZmlsdGVyKHN0ZXAgPT4gc3RlcC5pbmRleE9mKCdAJykgIT09IDApO1xuICAgICAgaWYgKG5vblNjb3BlU3RlcHMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgLy8gYmVmb3JlIHRyeWluZyB0byByZXNvbHZlLCBzZWUgaWYgdGhlIHJhdyBpbXBvcnQgKHdpdGggcmVsYXRpdmVcbiAgICAgIC8vIHNlZ21lbnRzIHJlc29sdmVkKSBtYXRjaGVzIGFuIGFsbG93ZWQgcGF0dGVyblxuICAgICAgY29uc3QganVzdFN0ZXBzID0gc3RlcHMuam9pbignLycpO1xuICAgICAgaWYgKHJlYWNoaW5nQWxsb3dlZChqdXN0U3RlcHMpIHx8IHJlYWNoaW5nQWxsb3dlZChgLyR7anVzdFN0ZXBzfWApKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIC8vIGlmIHRoZSBpbXBvcnQgc3RhdGVtZW50IGRvZXNuJ3QgbWF0Y2ggZGlyZWN0bHksIHRyeSB0byBtYXRjaCB0aGVcbiAgICAgIC8vIHJlc29sdmVkIHBhdGggaWYgdGhlIGltcG9ydCBpcyByZXNvbHZhYmxlXG4gICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dCk7XG4gICAgICBpZiAoIXJlc29sdmVkIHx8IHJlYWNoaW5nQWxsb3dlZChub3JtYWxpemVTZXAocmVzb2x2ZWQpKSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAvLyB0aGlzIGltcG9ydCB3YXMgbm90IGFsbG93ZWQgYnkgdGhlIGFsbG93ZWQgcGF0aHMsIGFuZCByZWFjaGVzXG4gICAgICAvLyBzbyBpdCBpcyBhIHZpb2xhdGlvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNGb3JiaWRWaW9sYXRpb24oaW1wb3J0UGF0aCkge1xuICAgICAgY29uc3Qgc3RlcHMgPSB0b1N0ZXBzKGltcG9ydFBhdGgpO1xuXG4gICAgICAvLyBiZWZvcmUgdHJ5aW5nIHRvIHJlc29sdmUsIHNlZSBpZiB0aGUgcmF3IGltcG9ydCAod2l0aCByZWxhdGl2ZVxuICAgICAgLy8gc2VnbWVudHMgcmVzb2x2ZWQpIG1hdGNoZXMgYSBmb3JiaWRkZW4gcGF0dGVyblxuICAgICAgY29uc3QganVzdFN0ZXBzID0gc3RlcHMuam9pbignLycpO1xuXG4gICAgICBpZiAocmVhY2hpbmdGb3JiaWRkZW4oanVzdFN0ZXBzKSB8fCByZWFjaGluZ0ZvcmJpZGRlbihgLyR7anVzdFN0ZXBzfWApKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgLy8gaWYgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZG9lc24ndCBtYXRjaCBkaXJlY3RseSwgdHJ5IHRvIG1hdGNoIHRoZVxuICAgICAgLy8gcmVzb2x2ZWQgcGF0aCBpZiB0aGUgaW1wb3J0IGlzIHJlc29sdmFibGVcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KTtcbiAgICAgIGlmIChyZXNvbHZlZCAmJiByZWFjaGluZ0ZvcmJpZGRlbihub3JtYWxpemVTZXAocmVzb2x2ZWQpKSkgcmV0dXJuIHRydWU7XG5cbiAgICAgIC8vIHRoaXMgaW1wb3J0IHdhcyBub3QgZm9yYmlkZGVuIGJ5IHRoZSBmb3JiaWRkZW4gcGF0aHMgc28gaXQgaXMgbm90IGEgdmlvbGF0aW9uXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gZmluZCBhIGRpcmVjdG9yeSB0aGF0IGlzIGJlaW5nIHJlYWNoZWQgaW50bywgYnV0IHdoaWNoIHNob3VsZG4ndCBiZVxuICAgIGNvbnN0IGlzUmVhY2hWaW9sYXRpb24gPSBvcHRpb25zLmZvcmJpZCA/IGlzRm9yYmlkVmlvbGF0aW9uIDogaXNBbGxvd1Zpb2xhdGlvbjtcblxuICAgIGZ1bmN0aW9uIGNoZWNrSW1wb3J0Rm9yUmVhY2hpbmcoaW1wb3J0UGF0aCwgbm9kZSkge1xuICAgICAgY29uc3QgcG90ZW50aWFsVmlvbGF0aW9uVHlwZXMgPSBbJ3BhcmVudCcsICdpbmRleCcsICdzaWJsaW5nJywgJ2V4dGVybmFsJywgJ2ludGVybmFsJ107XG4gICAgICBpZiAocG90ZW50aWFsVmlvbGF0aW9uVHlwZXMuaW5kZXhPZihpbXBvcnRUeXBlKGltcG9ydFBhdGgsIGNvbnRleHQpKSAhPT0gLTEgJiZcbiAgICAgICAgaXNSZWFjaFZpb2xhdGlvbihpbXBvcnRQYXRoKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6IGBSZWFjaGluZyB0byBcIiR7aW1wb3J0UGF0aH1cIiBpcyBub3QgYWxsb3dlZC5gLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcigoc291cmNlKSA9PiB7XG4gICAgICBjaGVja0ltcG9ydEZvclJlYWNoaW5nKHNvdXJjZS52YWx1ZSwgc291cmNlKTtcbiAgICB9LCB7IGNvbW1vbmpzOiB0cnVlIH0pO1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js b/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js index 30a9effc2d..346adc8ceb 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-mutable-exports.js @@ -18,9 +18,9 @@ module.exports = { } function checkDeclarationsInScope(_ref, name) {let variables = _ref.variables; - for (let variable of variables) { + for (const variable of variables) { if (variable.name === name) { - for (let def of variable.defs) { + for (const def of variable.defs) { if (def.type === 'Variable' && def.parent) { checkDeclaration(def.parent); } @@ -43,7 +43,7 @@ module.exports = { if (node.declaration) { checkDeclaration(node.declaration); } else if (!node.source) { - for (let specifier of node.specifiers) { + for (const specifier of node.specifiers) { checkDeclarationsInScope(scope, specifier.local.name); } } @@ -54,4 +54,4 @@ module.exports = { 'ExportNamedDeclaration': handleExportNamed }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1tdXRhYmxlLWV4cG9ydHMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja0RlY2xhcmF0aW9uIiwibm9kZSIsImtpbmQiLCJyZXBvcnQiLCJjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUiLCJuYW1lIiwidmFyaWFibGVzIiwidmFyaWFibGUiLCJkZWYiLCJkZWZzIiwicGFyZW50IiwiaGFuZGxlRXhwb3J0RGVmYXVsdCIsInNjb3BlIiwiZ2V0U2NvcGUiLCJkZWNsYXJhdGlvbiIsImhhbmRsZUV4cG9ydE5hbWVkIiwic291cmNlIiwic3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImxvY2FsIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixhQUFTQyxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFDdkJDLFVBRHVCLEdBQ2ZELElBRGUsQ0FDdkJDLElBRHVCO0FBRTlCLFVBQUlBLFNBQVMsS0FBVCxJQUFrQkEsU0FBUyxLQUEvQixFQUFzQztBQUNwQ0gsZ0JBQVFJLE1BQVIsQ0FBZUYsSUFBZixFQUFzQixzQkFBcUJDLElBQUssaUNBQWhEO0FBQ0Q7QUFDRjs7QUFFRCxhQUFTRSx3QkFBVCxPQUErQ0MsSUFBL0MsRUFBcUQsS0FBbEJDLFNBQWtCLFFBQWxCQSxTQUFrQjtBQUNuRCxXQUFLLElBQUlDLFFBQVQsSUFBcUJELFNBQXJCLEVBQWdDO0FBQzlCLFlBQUlDLFNBQVNGLElBQVQsS0FBa0JBLElBQXRCLEVBQTRCO0FBQzFCLGVBQUssSUFBSUcsR0FBVCxJQUFnQkQsU0FBU0UsSUFBekIsRUFBK0I7QUFDN0IsZ0JBQUlELElBQUlkLElBQUosS0FBYSxVQUFiLElBQTJCYyxJQUFJRSxNQUFuQyxFQUEyQztBQUN6Q1YsK0JBQWlCUSxJQUFJRSxNQUFyQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Y7O0FBRUQsYUFBU0MsbUJBQVQsQ0FBNkJWLElBQTdCLEVBQW1DO0FBQ2pDLFlBQU1XLFFBQVFiLFFBQVFjLFFBQVIsRUFBZDs7QUFFQSxVQUFJWixLQUFLYSxXQUFMLENBQWlCVCxJQUFyQixFQUEyQjtBQUN6QkQsaUNBQXlCUSxLQUF6QixFQUFnQ1gsS0FBS2EsV0FBTCxDQUFpQlQsSUFBakQ7QUFDRDtBQUNGOztBQUVELGFBQVNVLGlCQUFULENBQTJCZCxJQUEzQixFQUFpQztBQUMvQixZQUFNVyxRQUFRYixRQUFRYyxRQUFSLEVBQWQ7O0FBRUEsVUFBSVosS0FBS2EsV0FBVCxFQUF1QjtBQUNyQmQseUJBQWlCQyxLQUFLYSxXQUF0QjtBQUNELE9BRkQsTUFFTyxJQUFJLENBQUNiLEtBQUtlLE1BQVYsRUFBa0I7QUFDdkIsYUFBSyxJQUFJQyxTQUFULElBQXNCaEIsS0FBS2lCLFVBQTNCLEVBQXVDO0FBQ3JDZCxtQ0FBeUJRLEtBQXpCLEVBQWdDSyxVQUFVRSxLQUFWLENBQWdCZCxJQUFoRDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPO0FBQ0wsa0NBQTRCTSxtQkFEdkI7QUFFTCxnQ0FBMEJJLGlCQUZyQixFQUFQOztBQUlELEdBckRjLEVBQWpCIiwiZmlsZSI6Im5vLW11dGFibGUtZXhwb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbXV0YWJsZS1leHBvcnRzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiBjaGVja0RlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGNvbnN0IHtraW5kfSA9IG5vZGVcbiAgICAgIGlmIChraW5kID09PSAndmFyJyB8fCBraW5kID09PSAnbGV0Jykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgRXhwb3J0aW5nIG11dGFibGUgJyR7a2luZH0nIGJpbmRpbmcsIHVzZSAnY29uc3QnIGluc3RlYWQuYClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUoe3ZhcmlhYmxlc30sIG5hbWUpIHtcbiAgICAgIGZvciAobGV0IHZhcmlhYmxlIG9mIHZhcmlhYmxlcykge1xuICAgICAgICBpZiAodmFyaWFibGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgIGZvciAobGV0IGRlZiBvZiB2YXJpYWJsZS5kZWZzKSB7XG4gICAgICAgICAgICBpZiAoZGVmLnR5cGUgPT09ICdWYXJpYWJsZScgJiYgZGVmLnBhcmVudCkge1xuICAgICAgICAgICAgICBjaGVja0RlY2xhcmF0aW9uKGRlZi5wYXJlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0RGVmYXVsdChub2RlKSB7XG4gICAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKVxuXG4gICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5uYW1lKSB7XG4gICAgICAgIGNoZWNrRGVjbGFyYXRpb25zSW5TY29wZShzY29wZSwgbm9kZS5kZWNsYXJhdGlvbi5uYW1lKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZUV4cG9ydE5hbWVkKG5vZGUpIHtcbiAgICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5nZXRTY29wZSgpXG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uKSAge1xuICAgICAgICBjaGVja0RlY2xhcmF0aW9uKG5vZGUuZGVjbGFyYXRpb24pXG4gICAgICB9IGVsc2UgaWYgKCFub2RlLnNvdXJjZSkge1xuICAgICAgICBmb3IgKGxldCBzcGVjaWZpZXIgb2Ygbm9kZS5zcGVjaWZpZXJzKSB7XG4gICAgICAgICAgY2hlY2tEZWNsYXJhdGlvbnNJblNjb3BlKHNjb3BlLCBzcGVjaWZpZXIubG9jYWwubmFtZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAnRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uJzogaGFuZGxlRXhwb3J0RGVmYXVsdCxcbiAgICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogaGFuZGxlRXhwb3J0TmFtZWQsXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1tdXRhYmxlLWV4cG9ydHMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja0RlY2xhcmF0aW9uIiwibm9kZSIsImtpbmQiLCJyZXBvcnQiLCJjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUiLCJuYW1lIiwidmFyaWFibGVzIiwidmFyaWFibGUiLCJkZWYiLCJkZWZzIiwicGFyZW50IiwiaGFuZGxlRXhwb3J0RGVmYXVsdCIsInNjb3BlIiwiZ2V0U2NvcGUiLCJkZWNsYXJhdGlvbiIsImhhbmRsZUV4cG9ydE5hbWVkIiwic291cmNlIiwic3BlY2lmaWVyIiwic3BlY2lmaWVycyIsImxvY2FsIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsb0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixhQUFTQyxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFDdEJDLFVBRHNCLEdBQ2JELElBRGEsQ0FDdEJDLElBRHNCO0FBRTlCLFVBQUlBLFNBQVMsS0FBVCxJQUFrQkEsU0FBUyxLQUEvQixFQUFzQztBQUNwQ0gsZ0JBQVFJLE1BQVIsQ0FBZUYsSUFBZixFQUFzQixzQkFBcUJDLElBQUssaUNBQWhEO0FBQ0Q7QUFDRjs7QUFFRCxhQUFTRSx3QkFBVCxPQUFpREMsSUFBakQsRUFBdUQsS0FBbkJDLFNBQW1CLFFBQW5CQSxTQUFtQjtBQUNyRCxXQUFLLE1BQU1DLFFBQVgsSUFBdUJELFNBQXZCLEVBQWtDO0FBQ2hDLFlBQUlDLFNBQVNGLElBQVQsS0FBa0JBLElBQXRCLEVBQTRCO0FBQzFCLGVBQUssTUFBTUcsR0FBWCxJQUFrQkQsU0FBU0UsSUFBM0IsRUFBaUM7QUFDL0IsZ0JBQUlELElBQUlkLElBQUosS0FBYSxVQUFiLElBQTJCYyxJQUFJRSxNQUFuQyxFQUEyQztBQUN6Q1YsK0JBQWlCUSxJQUFJRSxNQUFyQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Y7O0FBRUQsYUFBU0MsbUJBQVQsQ0FBNkJWLElBQTdCLEVBQW1DO0FBQ2pDLFlBQU1XLFFBQVFiLFFBQVFjLFFBQVIsRUFBZDs7QUFFQSxVQUFJWixLQUFLYSxXQUFMLENBQWlCVCxJQUFyQixFQUEyQjtBQUN6QkQsaUNBQXlCUSxLQUF6QixFQUFnQ1gsS0FBS2EsV0FBTCxDQUFpQlQsSUFBakQ7QUFDRDtBQUNGOztBQUVELGFBQVNVLGlCQUFULENBQTJCZCxJQUEzQixFQUFpQztBQUMvQixZQUFNVyxRQUFRYixRQUFRYyxRQUFSLEVBQWQ7O0FBRUEsVUFBSVosS0FBS2EsV0FBVCxFQUF1QjtBQUNyQmQseUJBQWlCQyxLQUFLYSxXQUF0QjtBQUNELE9BRkQsTUFFTyxJQUFJLENBQUNiLEtBQUtlLE1BQVYsRUFBa0I7QUFDdkIsYUFBSyxNQUFNQyxTQUFYLElBQXdCaEIsS0FBS2lCLFVBQTdCLEVBQXlDO0FBQ3ZDZCxtQ0FBeUJRLEtBQXpCLEVBQWdDSyxVQUFVRSxLQUFWLENBQWdCZCxJQUFoRDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxXQUFPO0FBQ0wsa0NBQTRCTSxtQkFEdkI7QUFFTCxnQ0FBMEJJLGlCQUZyQixFQUFQOztBQUlELEdBckRjLEVBQWpCIiwiZmlsZSI6Im5vLW11dGFibGUtZXhwb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLW11dGFibGUtZXhwb3J0cycpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgZnVuY3Rpb24gY2hlY2tEZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICBjb25zdCB7IGtpbmQgfSA9IG5vZGU7XG4gICAgICBpZiAoa2luZCA9PT0gJ3ZhcicgfHwga2luZCA9PT0gJ2xldCcpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZSwgYEV4cG9ydGluZyBtdXRhYmxlICcke2tpbmR9JyBiaW5kaW5nLCB1c2UgJ2NvbnN0JyBpbnN0ZWFkLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrRGVjbGFyYXRpb25zSW5TY29wZSh7IHZhcmlhYmxlcyB9LCBuYW1lKSB7XG4gICAgICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIHZhcmlhYmxlcykge1xuICAgICAgICBpZiAodmFyaWFibGUubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgIGZvciAoY29uc3QgZGVmIG9mIHZhcmlhYmxlLmRlZnMpIHtcbiAgICAgICAgICAgIGlmIChkZWYudHlwZSA9PT0gJ1ZhcmlhYmxlJyAmJiBkZWYucGFyZW50KSB7XG4gICAgICAgICAgICAgIGNoZWNrRGVjbGFyYXRpb24oZGVmLnBhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0RGVmYXVsdChub2RlKSB7XG4gICAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuZ2V0U2NvcGUoKTtcblxuICAgICAgaWYgKG5vZGUuZGVjbGFyYXRpb24ubmFtZSkge1xuICAgICAgICBjaGVja0RlY2xhcmF0aW9uc0luU2NvcGUoc2NvcGUsIG5vZGUuZGVjbGFyYXRpb24ubmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRXhwb3J0TmFtZWQobm9kZSkge1xuICAgICAgY29uc3Qgc2NvcGUgPSBjb250ZXh0LmdldFNjb3BlKCk7XG5cbiAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uKSAge1xuICAgICAgICBjaGVja0RlY2xhcmF0aW9uKG5vZGUuZGVjbGFyYXRpb24pO1xuICAgICAgfSBlbHNlIGlmICghbm9kZS5zb3VyY2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBzcGVjaWZpZXIgb2Ygbm9kZS5zcGVjaWZpZXJzKSB7XG4gICAgICAgICAgY2hlY2tEZWNsYXJhdGlvbnNJblNjb3BlKHNjb3BlLCBzcGVjaWZpZXIubG9jYWwubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IGhhbmRsZUV4cG9ydERlZmF1bHQsXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGhhbmRsZUV4cG9ydE5hbWVkLFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js index 4ef823f1cc..01298cb66a 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default-member.js @@ -104,4 +104,4 @@ module.exports = { * @copyright 2016 Desmond Brand. All rights reserved. * See LICENSE in root directory for full license. */ -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsImZpbGVJbXBvcnRzIiwiTWFwIiwiYWxsUHJvcGVydHlMb29rdXBzIiwiaGFuZGxlSW1wb3J0RGVmYXVsdCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImV4cG9ydE1hcCIsIkV4cG9ydHMiLCJnZXQiLCJzb3VyY2UiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsInNldCIsImxvY2FsIiwibmFtZSIsInNvdXJjZVBhdGgiLCJzdG9yZVByb3BlcnR5TG9va3VwIiwib2JqZWN0TmFtZSIsInByb3BOYW1lIiwibG9va3VwcyIsInB1c2giLCJoYW5kbGVQcm9wTG9va3VwIiwib2JqZWN0IiwicHJvcGVydHkiLCJoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCIsImlzRGVzdHJ1Y3R1cmUiLCJpZCIsImluaXQiLCJwcm9wZXJ0aWVzIiwia2V5IiwiaGFuZGxlUHJvZ3JhbUV4aXQiLCJmb3JFYWNoIiwiZmlsZUltcG9ydCIsIm5hbWVzcGFjZSIsImhhcyIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLHlDO0FBQ0EseUQ7QUFDQSxxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVNDLE9BQVQsRUFBa0I7O0FBRXhCLFVBQU1DLGNBQWMsSUFBSUMsR0FBSixFQUFwQjtBQUNBLFVBQU1DLHFCQUFxQixJQUFJRCxHQUFKLEVBQTNCOztBQUVBLGFBQVNF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c0JBQWdCTSxpQkFKWCxFQUFQOztBQU1ELEdBdEZjLEVBQWpCLEMsQ0FkQSIsImZpbGUiOiJuby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbidcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXInKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbihjb250ZXh0KSB7XG5cbiAgICBjb25zdCBmaWxlSW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgIGNvbnN0IGFsbFByb3BlcnR5TG9va3VwcyA9IG5ldyBNYXAoKVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlSW1wb3J0RGVmYXVsdChub2RlKSB7XG4gICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGltcG9ydERlY2xhcmF0aW9uKGNvbnRleHQpXG4gICAgICBjb25zdCBleHBvcnRNYXAgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpXG4gICAgICBpZiAoZXhwb3J0TWFwID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoZXhwb3J0TWFwLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgZXhwb3J0TWFwLnJlcG9ydEVycm9ycyhjb250ZXh0LCBkZWNsYXJhdGlvbilcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVJbXBvcnRzLnNldChub2RlLmxvY2FsLm5hbWUsIHtcbiAgICAgICAgZXhwb3J0TWFwLFxuICAgICAgICBzb3VyY2VQYXRoOiBkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwgcHJvcE5hbWUsIG5vZGUpIHtcbiAgICAgIGNvbnN0IGxvb2t1cHMgPSBhbGxQcm9wZXJ0eUxvb2t1cHMuZ2V0KG9iamVjdE5hbWUpIHx8IFtdXG4gICAgICBsb29rdXBzLnB1c2goe25vZGUsIHByb3BOYW1lfSlcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5zZXQob2JqZWN0TmFtZSwgbG9va3VwcylcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9wTG9va3VwKG5vZGUpIHtcbiAgICAgIGNvbnN0IG9iamVjdE5hbWUgPSBub2RlLm9iamVjdC5uYW1lXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5vZGUucHJvcGVydHkubmFtZVxuICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudChub2RlKSB7XG4gICAgICBjb25zdCBpc0Rlc3RydWN0dXJlID0gKFxuICAgICAgICBub2RlLmlkLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJyAmJlxuICAgICAgICBub2RlLmluaXQgIT0gbnVsbCAmJlxuICAgICAgICBub2RlLmluaXQudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgICApXG4gICAgICBpZiAoIWlzRGVzdHJ1Y3R1cmUpIHJldHVyblxuXG4gICAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5pbml0Lm5hbWVcbiAgICAgIGZvciAoY29uc3QgeyBrZXkgfSBvZiBub2RlLmlkLnByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKGtleSA9PSBudWxsKSBjb250aW51ZSAgLy8gdHJ1ZSBmb3IgcmVzdCBwcm9wZXJ0aWVzXG4gICAgICAgIHN0b3JlUHJvcGVydHlMb29rdXAob2JqZWN0TmFtZSwga2V5Lm5hbWUsIGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9ncmFtRXhpdCgpIHtcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5mb3JFYWNoKChsb29rdXBzLCBvYmplY3ROYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVJbXBvcnQgPSBmaWxlSW1wb3J0cy5nZXQob2JqZWN0TmFtZSlcbiAgICAgICAgaWYgKGZpbGVJbXBvcnQgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICAgICAgZm9yIChjb25zdCB7cHJvcE5hbWUsIG5vZGV9IG9mIGxvb2t1cHMpIHtcbiAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBpbXBvcnQgY2FuIGhhdmUgYSBcImRlZmF1bHRcIiBwcm9wZXJ0eVxuICAgICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ2RlZmF1bHQnKSBjb250aW51ZVxuICAgICAgICAgIGlmICghZmlsZUltcG9ydC5leHBvcnRNYXAubmFtZXNwYWNlLmhhcyhwcm9wTmFtZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYFxcYCR7cHJvcE5hbWV9XFxgLiBDaGVjayBpZiB5b3UgbWVhbnQgdG8gd3JpdGUgYCArXG4gICAgICAgICAgICAgIGBcXGBpbXBvcnQgeyR7cHJvcE5hbWV9fSBmcm9tICcke2ZpbGVJbXBvcnQuc291cmNlUGF0aH0nXFxgIGAgK1xuICAgICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogaGFuZGxlSW1wb3J0RGVmYXVsdCxcbiAgICAgICdNZW1iZXJFeHByZXNzaW9uJzogaGFuZGxlUHJvcExvb2t1cCxcbiAgICAgICdWYXJpYWJsZURlY2xhcmF0b3InOiBoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBoYW5kbGVQcm9ncmFtRXhpdCxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsImZpbGVJbXBvcnRzIiwiTWFwIiwiYWxsUHJvcGVydHlMb29rdXBzIiwiaGFuZGxlSW1wb3J0RGVmYXVsdCIsIm5vZGUiLCJkZWNsYXJhdGlvbiIsImV4cG9ydE1hcCIsIkV4cG9ydHMiLCJnZXQiLCJzb3VyY2UiLCJ2YWx1ZSIsImVycm9ycyIsImxlbmd0aCIsInJlcG9ydEVycm9ycyIsInNldCIsImxvY2FsIiwibmFtZSIsInNvdXJjZVBhdGgiLCJzdG9yZVByb3BlcnR5TG9va3VwIiwib2JqZWN0TmFtZSIsInByb3BOYW1lIiwibG9va3VwcyIsInB1c2giLCJoYW5kbGVQcm9wTG9va3VwIiwib2JqZWN0IiwicHJvcGVydHkiLCJoYW5kbGVEZXN0cnVjdHVyaW5nQXNzaWdubWVudCIsImlzRGVzdHJ1Y3R1cmUiLCJpZCIsImluaXQiLCJwcm9wZXJ0aWVzIiwia2V5IiwiaGFuZGxlUHJvZ3JhbUV4aXQiLCJmb3JFYWNoIiwiZmlsZUltcG9ydCIsIm5hbWVzcGFjZSIsImhhcyIsInJlcG9ydCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLHlDO0FBQ0EseUQ7QUFDQSxxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVNDLE9BQVQsRUFBa0I7O0FBRXhCLFVBQU1DLGNBQWMsSUFBSUMsR0FBSixFQUFwQjtBQUNBLFVBQU1DLHFCQUFxQixJQUFJRCxHQUFKLEVBQTNCOztBQUVBLGFBQVNF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c0JBQWdCTSxpQkFKWCxFQUFQOztBQU1ELEdBdEZjLEVBQWpCLEMsQ0FkQSIsImZpbGUiOiJuby1uYW1lZC1hcy1kZWZhdWx0LW1lbWJlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIHdhcm4gYWJvdXQgcG90ZW50aWFsbHkgY29uZnVzZWQgdXNlIG9mIG5hbWUgZXhwb3J0c1xuICogQGF1dGhvciBEZXNtb25kIEJyYW5kXG4gKiBAY29weXJpZ2h0IDIwMTYgRGVzbW9uZCBCcmFuZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFNlZSBMSUNFTlNFIGluIHJvb3QgZGlyZWN0b3J5IGZvciBmdWxsIGxpY2Vuc2UuXG4gKi9cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCc7XG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXInKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbihjb250ZXh0KSB7XG5cbiAgICBjb25zdCBmaWxlSW1wb3J0cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBhbGxQcm9wZXJ0eUxvb2t1cHMgPSBuZXcgTWFwKCk7XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVJbXBvcnREZWZhdWx0KG5vZGUpIHtcbiAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dCk7XG4gICAgICBjb25zdCBleHBvcnRNYXAgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgaWYgKGV4cG9ydE1hcCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgIGlmIChleHBvcnRNYXAuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBleHBvcnRNYXAucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBmaWxlSW1wb3J0cy5zZXQobm9kZS5sb2NhbC5uYW1lLCB7XG4gICAgICAgIGV4cG9ydE1hcCxcbiAgICAgICAgc291cmNlUGF0aDogZGVjbGFyYXRpb24uc291cmNlLnZhbHVlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSkge1xuICAgICAgY29uc3QgbG9va3VwcyA9IGFsbFByb3BlcnR5TG9va3Vwcy5nZXQob2JqZWN0TmFtZSkgfHwgW107XG4gICAgICBsb29rdXBzLnB1c2goeyBub2RlLCBwcm9wTmFtZSB9KTtcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5zZXQob2JqZWN0TmFtZSwgbG9va3Vwcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlUHJvcExvb2t1cChub2RlKSB7XG4gICAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5vYmplY3QubmFtZTtcbiAgICAgIGNvbnN0IHByb3BOYW1lID0gbm9kZS5wcm9wZXJ0eS5uYW1lO1xuICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBwcm9wTmFtZSwgbm9kZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnQobm9kZSkge1xuICAgICAgY29uc3QgaXNEZXN0cnVjdHVyZSA9IChcbiAgICAgICAgbm9kZS5pZC50eXBlID09PSAnT2JqZWN0UGF0dGVybicgJiZcbiAgICAgICAgbm9kZS5pbml0ICE9IG51bGwgJiZcbiAgICAgICAgbm9kZS5pbml0LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgICAgKTtcbiAgICAgIGlmICghaXNEZXN0cnVjdHVyZSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCBvYmplY3ROYW1lID0gbm9kZS5pbml0Lm5hbWU7XG4gICAgICBmb3IgKGNvbnN0IHsga2V5IH0gb2Ygbm9kZS5pZC5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChrZXkgPT0gbnVsbCkgY29udGludWU7ICAvLyB0cnVlIGZvciByZXN0IHByb3BlcnRpZXNcbiAgICAgICAgc3RvcmVQcm9wZXJ0eUxvb2t1cChvYmplY3ROYW1lLCBrZXkubmFtZSwga2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9ncmFtRXhpdCgpIHtcbiAgICAgIGFsbFByb3BlcnR5TG9va3Vwcy5mb3JFYWNoKChsb29rdXBzLCBvYmplY3ROYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVJbXBvcnQgPSBmaWxlSW1wb3J0cy5nZXQob2JqZWN0TmFtZSk7XG4gICAgICAgIGlmIChmaWxlSW1wb3J0ID09IG51bGwpIHJldHVybjtcblxuICAgICAgICBmb3IgKGNvbnN0IHsgcHJvcE5hbWUsIG5vZGUgfSBvZiBsb29rdXBzKSB7XG4gICAgICAgICAgLy8gdGhlIGRlZmF1bHQgaW1wb3J0IGNhbiBoYXZlIGEgXCJkZWZhdWx0XCIgcHJvcGVydHlcbiAgICAgICAgICBpZiAocHJvcE5hbWUgPT09ICdkZWZhdWx0JykgY29udGludWU7XG4gICAgICAgICAgaWYgKCFmaWxlSW1wb3J0LmV4cG9ydE1hcC5uYW1lc3BhY2UuaGFzKHByb3BOYW1lKSkgY29udGludWU7XG5cbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZTogKFxuICAgICAgICAgICAgICBgQ2F1dGlvbjogXFxgJHtvYmplY3ROYW1lfVxcYCBhbHNvIGhhcyBhIG5hbWVkIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYFxcYCR7cHJvcE5hbWV9XFxgLiBDaGVjayBpZiB5b3UgbWVhbnQgdG8gd3JpdGUgYCArXG4gICAgICAgICAgICAgIGBcXGBpbXBvcnQgeyR7cHJvcE5hbWV9fSBmcm9tICcke2ZpbGVJbXBvcnQuc291cmNlUGF0aH0nXFxgIGAgK1xuICAgICAgICAgICAgICAnaW5zdGVhZC4nXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInOiBoYW5kbGVJbXBvcnREZWZhdWx0LFxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nOiBoYW5kbGVQcm9wTG9va3VwLFxuICAgICAgJ1ZhcmlhYmxlRGVjbGFyYXRvcic6IGhhbmRsZURlc3RydWN0dXJpbmdBc3NpZ25tZW50LFxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGhhbmRsZVByb2dyYW1FeGl0LFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js index 0b8d213c24..290bb5f6b8 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-named-as-default.js @@ -16,9 +16,9 @@ module.exports = { // #566: default is a valid specifier if (defaultSpecifier[nameKey].name === 'default') return; - var declaration = (0, _importDeclaration2.default)(context); + const declaration = (0, _importDeclaration2.default)(context); - var imports = _ExportMap2.default.get(declaration.source.value, context); + const imports = _ExportMap2.default.get(declaration.source.value, context); if (imports == null) return; if (imports.errors.length) { @@ -40,4 +40,4 @@ module.exports = { 'ExportDefaultSpecifier': checkDefault.bind(null, 'exported') }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0IiwibmFtZUtleSIsImRlZmF1bHRTcGVjaWZpZXIiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwiaGFzIiwicmVwb3J0IiwiYmluZCJdLCJtYXBwaW5ncyI6ImFBQUEseUM7QUFDQSx5RDtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxxQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLGFBQVNDLFlBQVQsQ0FBc0JDLE9BQXRCLEVBQStCQyxnQkFBL0IsRUFBaUQ7QUFDL0M7QUFDQSxVQUFJQSxpQkFBaUJELE9BQWpCLEVBQTBCRSxJQUExQixLQUFtQyxTQUF2QyxFQUFrRDs7QUFFbEQsVUFBSUMsY0FBYyxpQ0FBa0JMLE9BQWxCLENBQWxCOztBQUVBLFVBQUlNLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlILFlBQVlJLE1BQVosQ0FBbUJDLEtBQS9CLEVBQXNDVixPQUF0QyxDQUFkO0FBQ0EsVUFBSU0sV0FBVyxJQUFmLEVBQXFCOztBQUVyQixVQUFJQSxRQUFRSyxNQUFSLENBQWVDLE1BQW5CLEVBQTJCO0FBQ3pCTixnQkFBUU8sWUFBUixDQUFxQmIsT0FBckIsRUFBOEJLLFdBQTlCO0FBQ0E7QUFDRDs7QUFFRCxVQUFJQyxRQUFRUSxHQUFSLENBQVksU0FBWjtBQUNBUixjQUFRUSxHQUFSLENBQVlYLGlCQUFpQkQsT0FBakIsRUFBMEJFLElBQXRDLENBREosRUFDaUQ7O0FBRS9DSixnQkFBUWUsTUFBUixDQUFlWixnQkFBZjtBQUNFLG1DQUEyQkEsaUJBQWlCRCxPQUFqQixFQUEwQkUsSUFBckQ7QUFDQSw4Q0FGRjs7QUFJRDtBQUNGO0FBQ0QsV0FBTztBQUNMLGdDQUEwQkgsYUFBYWUsSUFBYixDQUFrQixJQUFsQixFQUF3QixPQUF4QixDQURyQjtBQUVMLGdDQUEwQmYsYUFBYWUsSUFBYixDQUFrQixJQUFsQixFQUF3QixVQUF4QixDQUZyQixFQUFQOztBQUlELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLW5hbWVkLWFzLWRlZmF1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXhwb3J0cyBmcm9tICcuLi9FeHBvcnRNYXAnXG5pbXBvcnQgaW1wb3J0RGVjbGFyYXRpb24gZnJvbSAnLi4vaW1wb3J0RGVjbGFyYXRpb24nXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLW5hbWVkLWFzLWRlZmF1bHQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGZ1bmN0aW9uIGNoZWNrRGVmYXVsdChuYW1lS2V5LCBkZWZhdWx0U3BlY2lmaWVyKSB7XG4gICAgICAvLyAjNTY2OiBkZWZhdWx0IGlzIGEgdmFsaWQgc3BlY2lmaWVyXG4gICAgICBpZiAoZGVmYXVsdFNwZWNpZmllcltuYW1lS2V5XS5uYW1lID09PSAnZGVmYXVsdCcpIHJldHVyblxuXG4gICAgICB2YXIgZGVjbGFyYXRpb24gPSBpbXBvcnREZWNsYXJhdGlvbihjb250ZXh0KVxuXG4gICAgICB2YXIgaW1wb3J0cyA9IEV4cG9ydHMuZ2V0KGRlY2xhcmF0aW9uLnNvdXJjZS52YWx1ZSwgY29udGV4dClcbiAgICAgIGlmIChpbXBvcnRzID09IG51bGwpIHJldHVyblxuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGltcG9ydHMuaGFzKCdkZWZhdWx0JykgJiZcbiAgICAgICAgICBpbXBvcnRzLmhhcyhkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUpKSB7XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoZGVmYXVsdFNwZWNpZmllcixcbiAgICAgICAgICAnVXNpbmcgZXhwb3J0ZWQgbmFtZSBcXCcnICsgZGVmYXVsdFNwZWNpZmllcltuYW1lS2V5XS5uYW1lICtcbiAgICAgICAgICAnXFwnIGFzIGlkZW50aWZpZXIgZm9yIGRlZmF1bHQgZXhwb3J0LicpXG5cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ2xvY2FsJyksXG4gICAgICAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdleHBvcnRlZCcpLFxuICAgIH1cbiAgfSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1hcy1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0IiwiY2hlY2tEZWZhdWx0IiwibmFtZUtleSIsImRlZmF1bHRTcGVjaWZpZXIiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJpbXBvcnRzIiwiRXhwb3J0cyIsImdldCIsInNvdXJjZSIsInZhbHVlIiwiZXJyb3JzIiwibGVuZ3RoIiwicmVwb3J0RXJyb3JzIiwiaGFzIiwicmVwb3J0IiwiYmluZCJdLCJtYXBwaW5ncyI6ImFBQUEseUM7QUFDQSx5RDtBQUNBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxxQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLGFBQVNDLFlBQVQsQ0FBc0JDLE9BQXRCLEVBQStCQyxnQkFBL0IsRUFBaUQ7QUFDL0M7QUFDQSxVQUFJQSxpQkFBaUJELE9BQWpCLEVBQTBCRSxJQUExQixLQUFtQyxTQUF2QyxFQUFrRDs7QUFFbEQsWUFBTUMsY0FBYyxpQ0FBa0JMLE9BQWxCLENBQXBCOztBQUVBLFlBQU1NLFVBQVVDLG9CQUFRQyxHQUFSLENBQVlILFlBQVlJLE1BQVosQ0FBbUJDLEtBQS9CLEVBQXNDVixPQUF0QyxDQUFoQjtBQUNBLFVBQUlNLFdBQVcsSUFBZixFQUFxQjs7QUFFckIsVUFBSUEsUUFBUUssTUFBUixDQUFlQyxNQUFuQixFQUEyQjtBQUN6Qk4sZ0JBQVFPLFlBQVIsQ0FBcUJiLE9BQXJCLEVBQThCSyxXQUE5QjtBQUNBO0FBQ0Q7O0FBRUQsVUFBSUMsUUFBUVEsR0FBUixDQUFZLFNBQVo7QUFDQVIsY0FBUVEsR0FBUixDQUFZWCxpQkFBaUJELE9BQWpCLEVBQTBCRSxJQUF0QyxDQURKLEVBQ2lEOztBQUUvQ0osZ0JBQVFlLE1BQVIsQ0FBZVosZ0JBQWY7QUFDRSxtQ0FBMkJBLGlCQUFpQkQsT0FBakIsRUFBMEJFLElBQXJEO0FBQ0EsOENBRkY7O0FBSUQ7QUFDRjtBQUNELFdBQU87QUFDTCxnQ0FBMEJILGFBQWFlLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0IsT0FBeEIsQ0FEckI7QUFFTCxnQ0FBMEJmLGFBQWFlLElBQWIsQ0FBa0IsSUFBbEIsRUFBd0IsVUFBeEIsQ0FGckIsRUFBUDs7QUFJRCxHQXJDYyxFQUFqQiIsImZpbGUiOiJuby1uYW1lZC1hcy1kZWZhdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cG9ydHMgZnJvbSAnLi4vRXhwb3J0TWFwJztcbmltcG9ydCBpbXBvcnREZWNsYXJhdGlvbiBmcm9tICcuLi9pbXBvcnREZWNsYXJhdGlvbic7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1uYW1lZC1hcy1kZWZhdWx0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBmdW5jdGlvbiBjaGVja0RlZmF1bHQobmFtZUtleSwgZGVmYXVsdFNwZWNpZmllcikge1xuICAgICAgLy8gIzU2NjogZGVmYXVsdCBpcyBhIHZhbGlkIHNwZWNpZmllclxuICAgICAgaWYgKGRlZmF1bHRTcGVjaWZpZXJbbmFtZUtleV0ubmFtZSA9PT0gJ2RlZmF1bHQnKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gaW1wb3J0RGVjbGFyYXRpb24oY29udGV4dCk7XG5cbiAgICAgIGNvbnN0IGltcG9ydHMgPSBFeHBvcnRzLmdldChkZWNsYXJhdGlvbi5zb3VyY2UudmFsdWUsIGNvbnRleHQpO1xuICAgICAgaWYgKGltcG9ydHMgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICBpZiAoaW1wb3J0cy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGltcG9ydHMucmVwb3J0RXJyb3JzKGNvbnRleHQsIGRlY2xhcmF0aW9uKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW1wb3J0cy5oYXMoJ2RlZmF1bHQnKSAmJlxuICAgICAgICAgIGltcG9ydHMuaGFzKGRlZmF1bHRTcGVjaWZpZXJbbmFtZUtleV0ubmFtZSkpIHtcblxuICAgICAgICBjb250ZXh0LnJlcG9ydChkZWZhdWx0U3BlY2lmaWVyLFxuICAgICAgICAgICdVc2luZyBleHBvcnRlZCBuYW1lIFxcJycgKyBkZWZhdWx0U3BlY2lmaWVyW25hbWVLZXldLm5hbWUgK1xuICAgICAgICAgICdcXCcgYXMgaWRlbnRpZmllciBmb3IgZGVmYXVsdCBleHBvcnQuJyk7XG5cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJzogY2hlY2tEZWZhdWx0LmJpbmQobnVsbCwgJ2xvY2FsJyksXG4gICAgICAnRXhwb3J0RGVmYXVsdFNwZWNpZmllcic6IGNoZWNrRGVmYXVsdC5iaW5kKG51bGwsICdleHBvcnRlZCcpLFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-default.js b/node_modules/eslint-plugin-import/lib/rules/no-named-default.js index e877c7b37b..4f7c684780 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-named-default.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-named-default.js @@ -13,6 +13,10 @@ module.exports = { return { 'ImportDeclaration': function (node) { node.specifiers.forEach(function (im) { + if (im.importKind === 'type' || im.importKind === 'typeof') { + return; + } + if (im.type === 'ImportSpecifier' && im.imported.name === 'default') { context.report({ node: im.local, @@ -22,4 +26,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwiaW0iLCJpbXBvcnRlZCIsIm5hbWUiLCJyZXBvcnQiLCJsb2NhbCIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxrQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCLFdBQU87QUFDTCwyQkFBcUIsVUFBVUMsSUFBVixFQUFnQjtBQUNuQ0EsYUFBS0MsVUFBTCxDQUFnQkMsT0FBaEIsQ0FBd0IsVUFBVUMsRUFBVixFQUFjO0FBQ3BDLGNBQUlBLEdBQUdULElBQUgsS0FBWSxpQkFBWixJQUFpQ1MsR0FBR0MsUUFBSCxDQUFZQyxJQUFaLEtBQXFCLFNBQTFELEVBQXFFO0FBQ25FTixvQkFBUU8sTUFBUixDQUFlO0FBQ2JOLG9CQUFNRyxHQUFHSSxLQURJO0FBRWJDLHVCQUFVLHdDQUF1Q0wsR0FBR0ksS0FBSCxDQUFTRixJQUFLLElBRmxELEVBQWY7QUFHRDtBQUNGLFNBTkQ7QUFPRCxPQVRJLEVBQVA7O0FBV0QsR0FyQmMsRUFBakIiLCJmaWxlIjoibm8tbmFtZWQtZGVmYXVsdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICAgIGlmIChpbS50eXBlID09PSAnSW1wb3J0U3BlY2lmaWVyJyAmJiBpbS5pbXBvcnRlZC5uYW1lID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgbm9kZTogaW0ubG9jYWwsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBVc2UgZGVmYXVsdCBpbXBvcnQgc3ludGF4IHRvIGltcG9ydCAnJHtpbS5sb2NhbC5uYW1lfScuYCB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1kZWZhdWx0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNwZWNpZmllcnMiLCJmb3JFYWNoIiwiaW0iLCJpbXBvcnRLaW5kIiwiaW1wb3J0ZWQiLCJuYW1lIiwicmVwb3J0IiwibG9jYWwiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiYUFBQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsa0JBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVUMsT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0wsMkJBQXFCLFVBQVVDLElBQVYsRUFBZ0I7QUFDbkNBLGFBQUtDLFVBQUwsQ0FBZ0JDLE9BQWhCLENBQXdCLFVBQVVDLEVBQVYsRUFBYztBQUNwQyxjQUFJQSxHQUFHQyxVQUFILEtBQWtCLE1BQWxCLElBQTRCRCxHQUFHQyxVQUFILEtBQWtCLFFBQWxELEVBQTREO0FBQzFEO0FBQ0Q7O0FBRUQsY0FBSUQsR0FBR1QsSUFBSCxLQUFZLGlCQUFaLElBQWlDUyxHQUFHRSxRQUFILENBQVlDLElBQVosS0FBcUIsU0FBMUQsRUFBcUU7QUFDbkVQLG9CQUFRUSxNQUFSLENBQWU7QUFDYlAsb0JBQU1HLEdBQUdLLEtBREk7QUFFYkMsdUJBQVUsd0NBQXVDTixHQUFHSyxLQUFILENBQVNGLElBQUssSUFGbEQsRUFBZjtBQUdEO0FBQ0YsU0FWRDtBQVdELE9BYkksRUFBUDs7QUFlRCxHQXpCYyxFQUFqQiIsImZpbGUiOiJuby1uYW1lZC1kZWZhdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbmFtZWQtZGVmYXVsdCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdJbXBvcnREZWNsYXJhdGlvbic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbSkge1xuICAgICAgICAgIGlmIChpbS5pbXBvcnRLaW5kID09PSAndHlwZScgfHwgaW0uaW1wb3J0S2luZCA9PT0gJ3R5cGVvZicpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaW0udHlwZSA9PT0gJ0ltcG9ydFNwZWNpZmllcicgJiYgaW0uaW1wb3J0ZWQubmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGU6IGltLmxvY2FsLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgVXNlIGRlZmF1bHQgaW1wb3J0IHN5bnRheCB0byBpbXBvcnQgJyR7aW0ubG9jYWwubmFtZX0nLmAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-named-export.js b/node_modules/eslint-plugin-import/lib/rules/no-named-export.js index 8139a6b9b1..c78bed7ce3 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-named-export.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-named-export.js @@ -32,4 +32,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJwYXJzZXJPcHRpb25zIiwic291cmNlVHlwZSIsIm1lc3NhZ2UiLCJFeHBvcnRBbGxEZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJFeHBvcnROYW1lZERlY2xhcmF0aW9uIiwic3BlY2lmaWVycyIsImxlbmd0aCIsInNvbWVOYW1lZCIsInNvbWUiLCJzcGVjaWZpZXIiLCJleHBvcnRlZCIsIm5hbWUiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU0sRUFBRUMsS0FBSyx1QkFBUSxpQkFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUSxFQUhKLEVBRFM7OztBQU9mQyxTQUFPQyxPQUFQLEVBQWdCO0FBQ2Q7QUFDQSxRQUFJQSxRQUFRQyxhQUFSLENBQXNCQyxVQUF0QixLQUFxQyxRQUF6QyxFQUFtRDtBQUNqRCxhQUFPLEVBQVA7QUFDRDs7QUFFRCxVQUFNQyxVQUFVLGdDQUFoQjs7QUFFQSxXQUFPO0FBQ0xDLDJCQUFxQkMsSUFBckIsRUFBMkI7QUFDekJMLGdCQUFRTSxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRixPQUFQLEVBQWY7QUFDRCxPQUhJOztBQUtMSSw2QkFBdUJGLElBQXZCLEVBQTZCO0FBQzNCLFlBQUlBLEtBQUtHLFVBQUwsQ0FBZ0JDLE1BQWhCLEtBQTJCLENBQS9CLEVBQWtDO0FBQ2hDLGlCQUFPVCxRQUFRTSxNQUFSLENBQWUsRUFBQ0QsSUFBRCxFQUFPRixPQUFQLEVBQWYsQ0FBUDtBQUNEOztBQUVELGNBQU1PLFlBQVlMLEtBQUtHLFVBQUwsQ0FBZ0JHLElBQWhCLENBQXFCQyxhQUFhQSxVQUFVQyxRQUFWLENBQW1CQyxJQUFuQixLQUE0QixTQUE5RCxDQUFsQjtBQUNBLFlBQUlKLFNBQUosRUFBZTtBQUNiVixrQkFBUU0sTUFBUixDQUFlLEVBQUNELElBQUQsRUFBT0YsT0FBUCxFQUFmO0FBQ0Q7QUFDRixPQWRJLEVBQVA7O0FBZ0JELEdBL0JjLEVBQWpCIiwiZmlsZSI6Im5vLW5hbWVkLWV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHsgdXJsOiBkb2NzVXJsKCduby1uYW1lZC1leHBvcnQnKSB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICAvLyBpZ25vcmUgbm9uLW1vZHVsZXNcbiAgICBpZiAoY29udGV4dC5wYXJzZXJPcHRpb25zLnNvdXJjZVR5cGUgIT09ICdtb2R1bGUnKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICBjb25zdCBtZXNzYWdlID0gJ05hbWVkIGV4cG9ydHMgYXJlIG5vdCBhbGxvd2VkLidcblxuICAgIHJldHVybiB7XG4gICAgICBFeHBvcnRBbGxEZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlfSlcbiAgICAgIH0sXG5cbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LnJlcG9ydCh7bm9kZSwgbWVzc2FnZX0pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb21lTmFtZWQgPSBub2RlLnNwZWNpZmllcnMuc29tZShzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUgIT09ICdkZWZhdWx0JylcbiAgICAgICAgaWYgKHNvbWVOYW1lZCkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtub2RlLCBtZXNzYWdlfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lZC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJwYXJzZXJPcHRpb25zIiwic291cmNlVHlwZSIsIm1lc3NhZ2UiLCJFeHBvcnRBbGxEZWNsYXJhdGlvbiIsIm5vZGUiLCJyZXBvcnQiLCJFeHBvcnROYW1lZERlY2xhcmF0aW9uIiwic3BlY2lmaWVycyIsImxlbmd0aCIsInNvbWVOYW1lZCIsInNvbWUiLCJzcGVjaWZpZXIiLCJleHBvcnRlZCIsIm5hbWUiXSwibWFwcGluZ3MiOiJhQUFBLHFDOztBQUVBQSxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU0sRUFBRUMsS0FBSyx1QkFBUSxpQkFBUixDQUFQLEVBRkY7QUFHSkMsWUFBUSxFQUhKLEVBRFM7OztBQU9mQyxTQUFPQyxPQUFQLEVBQWdCO0FBQ2Q7QUFDQSxRQUFJQSxRQUFRQyxhQUFSLENBQXNCQyxVQUF0QixLQUFxQyxRQUF6QyxFQUFtRDtBQUNqRCxhQUFPLEVBQVA7QUFDRDs7QUFFRCxVQUFNQyxVQUFVLGdDQUFoQjs7QUFFQSxXQUFPO0FBQ0xDLDJCQUFxQkMsSUFBckIsRUFBMkI7QUFDekJMLGdCQUFRTSxNQUFSLENBQWUsRUFBRUQsSUFBRixFQUFRRixPQUFSLEVBQWY7QUFDRCxPQUhJOztBQUtMSSw2QkFBdUJGLElBQXZCLEVBQTZCO0FBQzNCLFlBQUlBLEtBQUtHLFVBQUwsQ0FBZ0JDLE1BQWhCLEtBQTJCLENBQS9CLEVBQWtDO0FBQ2hDLGlCQUFPVCxRQUFRTSxNQUFSLENBQWUsRUFBRUQsSUFBRixFQUFRRixPQUFSLEVBQWYsQ0FBUDtBQUNEOztBQUVELGNBQU1PLFlBQVlMLEtBQUtHLFVBQUwsQ0FBZ0JHLElBQWhCLENBQXFCQyxhQUFhQSxVQUFVQyxRQUFWLENBQW1CQyxJQUFuQixLQUE0QixTQUE5RCxDQUFsQjtBQUNBLFlBQUlKLFNBQUosRUFBZTtBQUNiVixrQkFBUU0sTUFBUixDQUFlLEVBQUVELElBQUYsRUFBUUYsT0FBUixFQUFmO0FBQ0Q7QUFDRixPQWRJLEVBQVA7O0FBZ0JELEdBL0JjLEVBQWpCIiwiZmlsZSI6Im5vLW5hbWVkLWV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7IHVybDogZG9jc1VybCgnbm8tbmFtZWQtZXhwb3J0JykgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgLy8gaWdub3JlIG5vbi1tb2R1bGVzXG4gICAgaWYgKGNvbnRleHQucGFyc2VyT3B0aW9ucy5zb3VyY2VUeXBlICE9PSAnbW9kdWxlJykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IG1lc3NhZ2UgPSAnTmFtZWQgZXhwb3J0cyBhcmUgbm90IGFsbG93ZWQuJztcblxuICAgIHJldHVybiB7XG4gICAgICBFeHBvcnRBbGxEZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZSB9KTtcbiAgICAgIH0sXG5cbiAgICAgIEV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2UgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb21lTmFtZWQgPSBub2RlLnNwZWNpZmllcnMuc29tZShzcGVjaWZpZXIgPT4gc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUgIT09ICdkZWZhdWx0Jyk7XG4gICAgICAgIGlmIChzb21lTmFtZWQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-namespace.js b/node_modules/eslint-plugin-import/lib/rules/no-namespace.js index 2a24bf8ca7..69454301dd 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-namespace.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-namespace.js @@ -84,13 +84,13 @@ module.exports = { } }; - } + } }; - /** - * @param {Identifier[]} namespaceIdentifiers - * @returns {boolean} `true` if the namespace variable is more than just a glorified constant - */ }; +/** + * @param {Identifier[]} namespaceIdentifiers + * @returns {boolean} `true` if the namespace variable is more than just a glorified constant + */ function usesNamespaceAsObject(namespaceIdentifiers) { return !namespaceIdentifiers.every(identifier => { const parent = identifier.parent; @@ -157,4 +157,4 @@ function generateLocalNames(names, nameConflicts, namespaceName) { }); return localNames; } -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNjb3BlVmFyaWFibGVzIiwiZ2V0U2NvcGUiLCJ2YXJpYWJsZXMiLCJuYW1lc3BhY2VWYXJpYWJsZSIsImZpbmQiLCJ2YXJpYWJsZSIsImRlZnMiLCJuYW1lc3BhY2VSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsIm5hbWVzcGFjZUlkZW50aWZpZXJzIiwibWFwIiwicmVmZXJlbmNlIiwiaWRlbnRpZmllciIsImNhbkZpeCIsImxlbmd0aCIsInVzZXNOYW1lc3BhY2VBc09iamVjdCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaXgiLCJmaXhlciIsInNjb3BlTWFuYWdlciIsImdldFNvdXJjZUNvZGUiLCJmaXhlcyIsImltcG9ydE5hbWVDb25mbGljdHMiLCJmb3JFYWNoIiwicGFyZW50IiwiaW1wb3J0TmFtZSIsImdldE1lbWJlclByb3BlcnR5TmFtZSIsImxvY2FsQ29uZmxpY3RzIiwiZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUiLCJjIiwiYWRkIiwiaW1wb3J0TmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiaW1wb3J0TG9jYWxOYW1lcyIsImdlbmVyYXRlTG9jYWxOYW1lcyIsIm5hbWUiLCJuYW1lZEltcG9ydFNwZWNpZmllcnMiLCJwdXNoIiwicmVwbGFjZVRleHQiLCJqb2luIiwiZXZlcnkiLCJwcm9wZXJ0eSIsIm1lbWJlckV4cHJlc3Npb24iLCJ2YWx1ZSIsImN1cnJlbnROb2RlIiwic2NvcGUiLCJhY3F1aXJlIiwiU2V0IiwidXBwZXIiLCJuYW1lcyIsIm5hbWVDb25mbGljdHMiLCJuYW1lc3BhY2VOYW1lIiwibG9jYWxOYW1lcyIsImxvY2FsTmFtZSIsImhhcyIsImkiLCJJbmZpbml0eSJdLCJtYXBwaW5ncyI6Ijs7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QVosQ0FBc0JRLEdBQXRCLENBQTBCTCxZQUFZQSxTQUFTZ0MsSUFBL0MsQ0FGRSxHQUFQOztBQUlEOztBQUVEOzs7Ozs7QUFNQSxTQUFTRCxrQkFBVCxDQUE0QmUsS0FBNUIsRUFBbUNDLGFBQW5DLEVBQWtEQyxhQUFsRCxFQUFpRTtBQUMvRCxRQUFNQyxhQUFhLEVBQW5CO0FBQ0FILFFBQU0zQixPQUFOLENBQWVhLElBQUQsSUFBVTtBQUN0QixRQUFJa0IsU0FBSjtBQUNBLFFBQUksQ0FBQ0gsY0FBY2YsSUFBZCxFQUFvQm1CLEdBQXBCLENBQXdCbkIsSUFBeEIsQ0FBTCxFQUFvQztBQUNsQ2tCLGtCQUFZbEIsSUFBWjtBQUNELEtBRkQsTUFFTyxJQUFJLENBQUNlLGNBQWNmLElBQWQsRUFBb0JtQixHQUFwQixDQUF5QixHQUFFSCxhQUFjLElBQUdoQixJQUFLLEVBQWpELENBQUwsRUFBMEQ7QUFDL0RrQixrQkFBYSxHQUFFRixhQUFjLElBQUdoQixJQUFLLEVBQXJDO0FBQ0QsS0FGTSxNQUVBO0FBQ0wsV0FBSyxJQUFJb0IsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxRQUFwQixFQUE4QkQsR0FBOUIsRUFBbUM7QUFDakMsWUFBSSxDQUFDTCxjQUFjZixJQUFkLEVBQW9CbUIsR0FBcEIsQ0FBeUIsR0FBRUgsYUFBYyxJQUFHaEIsSUFBSyxJQUFHb0IsQ0FBRSxFQUF0RCxDQUFMLEVBQStEO0FBQzdERixzQkFBYSxHQUFFRixhQUFjLElBQUdoQixJQUFLLElBQUdvQixDQUFFLEVBQTFDO0FBQ0E7QUFDRDtBQUNGO0FBQ0Y7QUFDREgsZUFBV2pCLElBQVgsSUFBbUJrQixTQUFuQjtBQUNELEdBZkQ7QUFnQkEsU0FBT0QsVUFBUDtBQUNEIiwiZmlsZSI6Im5vLW5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGRpc2FsbG93IG5hbWVzcGFjZSBpbXBvcnRcbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bGUgRGVmaW5pdGlvblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLW5hbWVzcGFjZScpLFxuICAgIH0sXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJzogZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgY29uc3Qgc2NvcGVWYXJpYWJsZXMgPSBjb250ZXh0LmdldFNjb3BlKCkudmFyaWFibGVzXG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZVZhcmlhYmxlID0gc2NvcGVWYXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+XG4gICAgICAgICAgdmFyaWFibGUuZGVmc1swXS5ub2RlID09PSBub2RlXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlUmVmZXJlbmNlcyA9IG5hbWVzcGFjZVZhcmlhYmxlLnJlZmVyZW5jZXNcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlSWRlbnRpZmllcnMgPSBuYW1lc3BhY2VSZWZlcmVuY2VzLm1hcChyZWZlcmVuY2UgPT4gcmVmZXJlbmNlLmlkZW50aWZpZXIpXG4gICAgICAgIGNvbnN0IGNhbkZpeCA9IG5hbWVzcGFjZUlkZW50aWZpZXJzLmxlbmd0aCA+IDAgJiYgIXVzZXNOYW1lc3BhY2VBc09iamVjdChuYW1lc3BhY2VJZGVudGlmaWVycylcblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCBuYW1lc3BhY2UgaW1wb3J0LmAsXG4gICAgICAgICAgZml4OiBjYW5GaXggJiYgKGZpeGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjb3BlTWFuYWdlciA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLnNjb3BlTWFuYWdlclxuICAgICAgICAgICAgY29uc3QgZml4ZXMgPSBbXVxuXG4gICAgICAgICAgICAvLyBQYXNzIDE6IENvbGxlY3QgdmFyaWFibGUgbmFtZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiBzY29wZSBmb3IgZWFjaCByZWZlcmVuY2Ugd2Ugd2FudFxuICAgICAgICAgICAgLy8gdG8gdHJhbnNmb3JtLCBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgd2UgY2hvb3NlIG5vbi1jb25mbGljdGluZyBpbXBvcnQgbmFtZXNcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydE5hbWVDb25mbGljdHMgPSB7fVxuICAgICAgICAgICAgbmFtZXNwYWNlSWRlbnRpZmllcnMuZm9yRWFjaCgoaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBpZGVudGlmaWVyLnBhcmVudFxuICAgICAgICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbXBvcnROYW1lID0gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKHBhcmVudClcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbENvbmZsaWN0cyA9IGdldFZhcmlhYmxlTmFtZXNJblNjb3BlKHNjb3BlTWFuYWdlciwgcGFyZW50KVxuICAgICAgICAgICAgICAgIGlmICghaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXSkge1xuICAgICAgICAgICAgICAgICAgaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXSA9IGxvY2FsQ29uZmxpY3RzXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGxvY2FsQ29uZmxpY3RzLmZvckVhY2goKGMpID0+IGltcG9ydE5hbWVDb25mbGljdHNbaW1wb3J0TmFtZV0uYWRkKGMpKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgLy8gQ2hvb3NlIG5ldyBuYW1lcyBmb3IgZWFjaCBpbXBvcnRcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydE5hbWVzID0gT2JqZWN0LmtleXMoaW1wb3J0TmFtZUNvbmZsaWN0cylcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydExvY2FsTmFtZXMgPSBnZW5lcmF0ZUxvY2FsTmFtZXMoXG4gICAgICAgICAgICAgIGltcG9ydE5hbWVzLFxuICAgICAgICAgICAgICBpbXBvcnROYW1lQ29uZmxpY3RzLFxuICAgICAgICAgICAgICBuYW1lc3BhY2VWYXJpYWJsZS5uYW1lXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIEltcG9ydE5hbWVzcGFjZVNwZWNpZmllciB3aXRoIGEgbGlzdCBvZiBJbXBvcnRTcGVjaWZpZXJzXG4gICAgICAgICAgICBjb25zdCBuYW1lZEltcG9ydFNwZWNpZmllcnMgPSBpbXBvcnROYW1lcy5tYXAoKGltcG9ydE5hbWUpID0+XG4gICAgICAgICAgICAgIGltcG9ydE5hbWUgPT09IGltcG9ydExvY2FsTmFtZXNbaW1wb3J0TmFtZV1cbiAgICAgICAgICAgICAgICA/IGltcG9ydE5hbWVcbiAgICAgICAgICAgICAgICA6IGAke2ltcG9ydE5hbWV9IGFzICR7aW1wb3J0TG9jYWxOYW1lc1tpbXBvcnROYW1lXX1gXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLnJlcGxhY2VUZXh0KG5vZGUsIGB7ICR7bmFtZWRJbXBvcnRTcGVjaWZpZXJzLmpvaW4oJywgJyl9IH1gKSlcblxuICAgICAgICAgICAgLy8gUGFzcyAyOiBSZXBsYWNlIHJlZmVyZW5jZXMgdG8gdGhlIG5hbWVzcGFjZSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5hbWVkIGltcG9ydHNcbiAgICAgICAgICAgIG5hbWVzcGFjZUlkZW50aWZpZXJzLmZvckVhY2goKGlkZW50aWZpZXIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gaWRlbnRpZmllci5wYXJlbnRcbiAgICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW1wb3J0TmFtZSA9IGdldE1lbWJlclByb3BlcnR5TmFtZShwYXJlbnQpXG4gICAgICAgICAgICAgICAgZml4ZXMucHVzaChmaXhlci5yZXBsYWNlVGV4dChwYXJlbnQsIGltcG9ydExvY2FsTmFtZXNbaW1wb3J0TmFtZV0pKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZXR1cm4gZml4ZXNcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuXG4vKipcbiAqIEBwYXJhbSB7SWRlbnRpZmllcltdfSBuYW1lc3BhY2VJZGVudGlmaWVyc1xuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgbmFtZXNwYWNlIHZhcmlhYmxlIGlzIG1vcmUgdGhhbiBqdXN0IGEgZ2xvcmlmaWVkIGNvbnN0YW50XG4gKi9cbmZ1bmN0aW9uIHVzZXNOYW1lc3BhY2VBc09iamVjdChuYW1lc3BhY2VJZGVudGlmaWVycykge1xuICByZXR1cm4gIW5hbWVzcGFjZUlkZW50aWZpZXJzLmV2ZXJ5KChpZGVudGlmaWVyKSA9PiB7XG4gICAgY29uc3QgcGFyZW50ID0gaWRlbnRpZmllci5wYXJlbnRcblxuICAgIC8vIGBuYW1lc3BhY2UueGAgb3IgYG5hbWVzcGFjZVsneCddYFxuICAgIHJldHVybiAoXG4gICAgICBwYXJlbnQgJiYgcGFyZW50LnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJyAmJlxuICAgICAgKHBhcmVudC5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcicgfHwgcGFyZW50LnByb3BlcnR5LnR5cGUgPT09ICdMaXRlcmFsJylcbiAgICApXG4gIH0pXG59XG5cbi8qKlxuICogQHBhcmFtIHtNZW1iZXJFeHByZXNzaW9ufSBtZW1iZXJFeHByZXNzaW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgbmFtZSBvZiB0aGUgbWVtYmVyIGluIHRoZSBvYmplY3QgZXhwcmVzc2lvbiwgZS5nLiB0aGUgYHhgIGluIGBuYW1lc3BhY2UueGBcbiAqL1xuZnVuY3Rpb24gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKG1lbWJlckV4cHJlc3Npb24pIHtcbiAgcmV0dXJuIG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgPyBtZW1iZXJFeHByZXNzaW9uLnByb3BlcnR5Lm5hbWVcbiAgICA6IG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkudmFsdWVcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1Njb3BlTWFuYWdlcn0gc2NvcGVNYW5hZ2VyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IG5vZGVcbiAqIEByZXR1cm4ge1NldDxzdHJpbmc+fVxuICovXG5mdW5jdGlvbiBnZXRWYXJpYWJsZU5hbWVzSW5TY29wZShzY29wZU1hbmFnZXIsIG5vZGUpIHtcbiAgbGV0IGN1cnJlbnROb2RlID0gbm9kZVxuICBsZXQgc2NvcGUgPSBzY29wZU1hbmFnZXIuYWNxdWlyZShjdXJyZW50Tm9kZSlcbiAgd2hpbGUgKHNjb3BlID09IG51bGwpIHtcbiAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudFxuICAgIHNjb3BlID0gc2NvcGVNYW5hZ2VyLmFjcXVpcmUoY3VycmVudE5vZGUsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG5ldyBTZXQoW1xuICAgIC4uLnNjb3BlLnZhcmlhYmxlcy5tYXAodmFyaWFibGUgPT4gdmFyaWFibGUubmFtZSksXG4gICAgLi4uc2NvcGUudXBwZXIudmFyaWFibGVzLm1hcCh2YXJpYWJsZSA9PiB2YXJpYWJsZS5uYW1lKSxcbiAgXSlcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBuYW1lc1xuICogQHBhcmFtIHsqfSBuYW1lQ29uZmxpY3RzXG4gKiBAcGFyYW0geyp9IG5hbWVzcGFjZU5hbWVcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVMb2NhbE5hbWVzKG5hbWVzLCBuYW1lQ29uZmxpY3RzLCBuYW1lc3BhY2VOYW1lKSB7XG4gIGNvbnN0IGxvY2FsTmFtZXMgPSB7fVxuICBuYW1lcy5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgbGV0IGxvY2FsTmFtZVxuICAgIGlmICghbmFtZUNvbmZsaWN0c1tuYW1lXS5oYXMobmFtZSkpIHtcbiAgICAgIGxvY2FsTmFtZSA9IG5hbWVcbiAgICB9IGVsc2UgaWYgKCFuYW1lQ29uZmxpY3RzW25hbWVdLmhhcyhgJHtuYW1lc3BhY2VOYW1lfV8ke25hbWV9YCkpIHtcbiAgICAgIGxvY2FsTmFtZSA9IGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1gXG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgSW5maW5pdHk7IGkrKykge1xuICAgICAgICBpZiAoIW5hbWVDb25mbGljdHNbbmFtZV0uaGFzKGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1fJHtpfWApKSB7XG4gICAgICAgICAgbG9jYWxOYW1lID0gYCR7bmFtZXNwYWNlTmFtZX1fJHtuYW1lfV8ke2l9YFxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgbG9jYWxOYW1lc1tuYW1lXSA9IGxvY2FsTmFtZVxuICB9KVxuICByZXR1cm4gbG9jYWxOYW1lc1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1uYW1lc3BhY2UuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJjcmVhdGUiLCJjb250ZXh0Iiwibm9kZSIsInNjb3BlVmFyaWFibGVzIiwiZ2V0U2NvcGUiLCJ2YXJpYWJsZXMiLCJuYW1lc3BhY2VWYXJpYWJsZSIsImZpbmQiLCJ2YXJpYWJsZSIsImRlZnMiLCJuYW1lc3BhY2VSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsIm5hbWVzcGFjZUlkZW50aWZpZXJzIiwibWFwIiwicmVmZXJlbmNlIiwiaWRlbnRpZmllciIsImNhbkZpeCIsImxlbmd0aCIsInVzZXNOYW1lc3BhY2VBc09iamVjdCIsInJlcG9ydCIsIm1lc3NhZ2UiLCJmaXgiLCJmaXhlciIsInNjb3BlTWFuYWdlciIsImdldFNvdXJjZUNvZGUiLCJmaXhlcyIsImltcG9ydE5hbWVDb25mbGljdHMiLCJmb3JFYWNoIiwicGFyZW50IiwiaW1wb3J0TmFtZSIsImdldE1lbWJlclByb3BlcnR5TmFtZSIsImxvY2FsQ29uZmxpY3RzIiwiZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUiLCJjIiwiYWRkIiwiaW1wb3J0TmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiaW1wb3J0TG9jYWxOYW1lcyIsImdlbmVyYXRlTG9jYWxOYW1lcyIsIm5hbWUiLCJuYW1lZEltcG9ydFNwZWNpZmllcnMiLCJwdXNoIiwicmVwbGFjZVRleHQiLCJqb2luIiwiZXZlcnkiLCJwcm9wZXJ0eSIsIm1lbWJlckV4cHJlc3Npb24iLCJ2YWx1ZSIsImN1cnJlbnROb2RlIiwic2NvcGUiLCJhY3F1aXJlIiwiU2V0IiwidXBwZXIiLCJuYW1lcyIsIm5hbWVDb25mbGljdHMiLCJuYW1lc3BhY2VOYW1lIiwibG9jYWxOYW1lcyIsImxvY2FsTmFtZSIsImhhcyIsImkiLCJJbmZpbml0eSJdLCJtYXBwaW5ncyI6Ijs7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QVosQ0FBc0JRLEdBQXRCLENBQTBCTCxZQUFZQSxTQUFTZ0MsSUFBL0MsQ0FGRSxHQUFQOztBQUlEOztBQUVEOzs7Ozs7QUFNQSxTQUFTRCxrQkFBVCxDQUE0QmUsS0FBNUIsRUFBbUNDLGFBQW5DLEVBQWtEQyxhQUFsRCxFQUFpRTtBQUMvRCxRQUFNQyxhQUFhLEVBQW5CO0FBQ0FILFFBQU0zQixPQUFOLENBQWVhLElBQUQsSUFBVTtBQUN0QixRQUFJa0IsU0FBSjtBQUNBLFFBQUksQ0FBQ0gsY0FBY2YsSUFBZCxFQUFvQm1CLEdBQXBCLENBQXdCbkIsSUFBeEIsQ0FBTCxFQUFvQztBQUNsQ2tCLGtCQUFZbEIsSUFBWjtBQUNELEtBRkQsTUFFTyxJQUFJLENBQUNlLGNBQWNmLElBQWQsRUFBb0JtQixHQUFwQixDQUF5QixHQUFFSCxhQUFjLElBQUdoQixJQUFLLEVBQWpELENBQUwsRUFBMEQ7QUFDL0RrQixrQkFBYSxHQUFFRixhQUFjLElBQUdoQixJQUFLLEVBQXJDO0FBQ0QsS0FGTSxNQUVBO0FBQ0wsV0FBSyxJQUFJb0IsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxRQUFwQixFQUE4QkQsR0FBOUIsRUFBbUM7QUFDakMsWUFBSSxDQUFDTCxjQUFjZixJQUFkLEVBQW9CbUIsR0FBcEIsQ0FBeUIsR0FBRUgsYUFBYyxJQUFHaEIsSUFBSyxJQUFHb0IsQ0FBRSxFQUF0RCxDQUFMLEVBQStEO0FBQzdERixzQkFBYSxHQUFFRixhQUFjLElBQUdoQixJQUFLLElBQUdvQixDQUFFLEVBQTFDO0FBQ0E7QUFDRDtBQUNGO0FBQ0Y7QUFDREgsZUFBV2pCLElBQVgsSUFBbUJrQixTQUFuQjtBQUNELEdBZkQ7QUFnQkEsU0FBT0QsVUFBUDtBQUNEIiwiZmlsZSI6Im5vLW5hbWVzcGFjZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVvdmVydmlldyBSdWxlIHRvIGRpc2FsbG93IG5hbWVzcGFjZSBpbXBvcnRcbiAqIEBhdXRob3IgUmFkZWsgQmVua2VsXG4gKi9cblxuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSdWxlIERlZmluaXRpb25cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1uYW1lc3BhY2UnKSxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcic6IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIGNvbnN0IHNjb3BlVmFyaWFibGVzID0gY29udGV4dC5nZXRTY29wZSgpLnZhcmlhYmxlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlVmFyaWFibGUgPSBzY29wZVZhcmlhYmxlcy5maW5kKCh2YXJpYWJsZSkgPT5cbiAgICAgICAgICB2YXJpYWJsZS5kZWZzWzBdLm5vZGUgPT09IG5vZGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlUmVmZXJlbmNlcyA9IG5hbWVzcGFjZVZhcmlhYmxlLnJlZmVyZW5jZXM7XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUlkZW50aWZpZXJzID0gbmFtZXNwYWNlUmVmZXJlbmNlcy5tYXAocmVmZXJlbmNlID0+IHJlZmVyZW5jZS5pZGVudGlmaWVyKTtcbiAgICAgICAgY29uc3QgY2FuRml4ID0gbmFtZXNwYWNlSWRlbnRpZmllcnMubGVuZ3RoID4gMCAmJiAhdXNlc05hbWVzcGFjZUFzT2JqZWN0KG5hbWVzcGFjZUlkZW50aWZpZXJzKTtcblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCBuYW1lc3BhY2UgaW1wb3J0LmAsXG4gICAgICAgICAgZml4OiBjYW5GaXggJiYgKGZpeGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjb3BlTWFuYWdlciA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLnNjb3BlTWFuYWdlcjtcbiAgICAgICAgICAgIGNvbnN0IGZpeGVzID0gW107XG5cbiAgICAgICAgICAgIC8vIFBhc3MgMTogQ29sbGVjdCB2YXJpYWJsZSBuYW1lcyB0aGF0IGFyZSBhbHJlYWR5IGluIHNjb3BlIGZvciBlYWNoIHJlZmVyZW5jZSB3ZSB3YW50XG4gICAgICAgICAgICAvLyB0byB0cmFuc2Zvcm0sIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCB3ZSBjaG9vc2Ugbm9uLWNvbmZsaWN0aW5nIGltcG9ydCBuYW1lc1xuICAgICAgICAgICAgY29uc3QgaW1wb3J0TmFtZUNvbmZsaWN0cyA9IHt9O1xuICAgICAgICAgICAgbmFtZXNwYWNlSWRlbnRpZmllcnMuZm9yRWFjaCgoaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBpZGVudGlmaWVyLnBhcmVudDtcbiAgICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQudHlwZSA9PT0gJ01lbWJlckV4cHJlc3Npb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW1wb3J0TmFtZSA9IGdldE1lbWJlclByb3BlcnR5TmFtZShwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsQ29uZmxpY3RzID0gZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUoc2NvcGVNYW5hZ2VyLCBwYXJlbnQpO1xuICAgICAgICAgICAgICAgIGlmICghaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXSkge1xuICAgICAgICAgICAgICAgICAgaW1wb3J0TmFtZUNvbmZsaWN0c1tpbXBvcnROYW1lXSA9IGxvY2FsQ29uZmxpY3RzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBsb2NhbENvbmZsaWN0cy5mb3JFYWNoKChjKSA9PiBpbXBvcnROYW1lQ29uZmxpY3RzW2ltcG9ydE5hbWVdLmFkZChjKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQ2hvb3NlIG5ldyBuYW1lcyBmb3IgZWFjaCBpbXBvcnRcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydE5hbWVzID0gT2JqZWN0LmtleXMoaW1wb3J0TmFtZUNvbmZsaWN0cyk7XG4gICAgICAgICAgICBjb25zdCBpbXBvcnRMb2NhbE5hbWVzID0gZ2VuZXJhdGVMb2NhbE5hbWVzKFxuICAgICAgICAgICAgICBpbXBvcnROYW1lcyxcbiAgICAgICAgICAgICAgaW1wb3J0TmFtZUNvbmZsaWN0cyxcbiAgICAgICAgICAgICAgbmFtZXNwYWNlVmFyaWFibGUubmFtZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyIHdpdGggYSBsaXN0IG9mIEltcG9ydFNwZWNpZmllcnNcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkSW1wb3J0U3BlY2lmaWVycyA9IGltcG9ydE5hbWVzLm1hcCgoaW1wb3J0TmFtZSkgPT5cbiAgICAgICAgICAgICAgaW1wb3J0TmFtZSA9PT0gaW1wb3J0TG9jYWxOYW1lc1tpbXBvcnROYW1lXVxuICAgICAgICAgICAgICAgID8gaW1wb3J0TmFtZVxuICAgICAgICAgICAgICAgIDogYCR7aW1wb3J0TmFtZX0gYXMgJHtpbXBvcnRMb2NhbE5hbWVzW2ltcG9ydE5hbWVdfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBmaXhlcy5wdXNoKGZpeGVyLnJlcGxhY2VUZXh0KG5vZGUsIGB7ICR7bmFtZWRJbXBvcnRTcGVjaWZpZXJzLmpvaW4oJywgJyl9IH1gKSk7XG5cbiAgICAgICAgICAgIC8vIFBhc3MgMjogUmVwbGFjZSByZWZlcmVuY2VzIHRvIHRoZSBuYW1lc3BhY2Ugd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuYW1lZCBpbXBvcnRzXG4gICAgICAgICAgICBuYW1lc3BhY2VJZGVudGlmaWVycy5mb3JFYWNoKChpZGVudGlmaWVyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGlkZW50aWZpZXIucGFyZW50O1xuICAgICAgICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbXBvcnROYW1lID0gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKHBhcmVudCk7XG4gICAgICAgICAgICAgICAgZml4ZXMucHVzaChmaXhlci5yZXBsYWNlVGV4dChwYXJlbnQsIGltcG9ydExvY2FsTmFtZXNbaW1wb3J0TmFtZV0pKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuXG4vKipcbiAqIEBwYXJhbSB7SWRlbnRpZmllcltdfSBuYW1lc3BhY2VJZGVudGlmaWVyc1xuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgbmFtZXNwYWNlIHZhcmlhYmxlIGlzIG1vcmUgdGhhbiBqdXN0IGEgZ2xvcmlmaWVkIGNvbnN0YW50XG4gKi9cbmZ1bmN0aW9uIHVzZXNOYW1lc3BhY2VBc09iamVjdChuYW1lc3BhY2VJZGVudGlmaWVycykge1xuICByZXR1cm4gIW5hbWVzcGFjZUlkZW50aWZpZXJzLmV2ZXJ5KChpZGVudGlmaWVyKSA9PiB7XG4gICAgY29uc3QgcGFyZW50ID0gaWRlbnRpZmllci5wYXJlbnQ7XG5cbiAgICAvLyBgbmFtZXNwYWNlLnhgIG9yIGBuYW1lc3BhY2VbJ3gnXWBcbiAgICByZXR1cm4gKFxuICAgICAgcGFyZW50ICYmIHBhcmVudC50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbicgJiZcbiAgICAgIChwYXJlbnQucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInIHx8IHBhcmVudC5wcm9wZXJ0eS50eXBlID09PSAnTGl0ZXJhbCcpXG4gICAgKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtNZW1iZXJFeHByZXNzaW9ufSBtZW1iZXJFeHByZXNzaW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgbmFtZSBvZiB0aGUgbWVtYmVyIGluIHRoZSBvYmplY3QgZXhwcmVzc2lvbiwgZS5nLiB0aGUgYHhgIGluIGBuYW1lc3BhY2UueGBcbiAqL1xuZnVuY3Rpb24gZ2V0TWVtYmVyUHJvcGVydHlOYW1lKG1lbWJlckV4cHJlc3Npb24pIHtcbiAgcmV0dXJuIG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgPyBtZW1iZXJFeHByZXNzaW9uLnByb3BlcnR5Lm5hbWVcbiAgICA6IG1lbWJlckV4cHJlc3Npb24ucHJvcGVydHkudmFsdWU7XG59XG5cbi8qKlxuICogQHBhcmFtIHtTY29wZU1hbmFnZXJ9IHNjb3BlTWFuYWdlclxuICogQHBhcmFtIHtBU1ROb2RlfSBub2RlXG4gKiBAcmV0dXJuIHtTZXQ8c3RyaW5nPn1cbiAqL1xuZnVuY3Rpb24gZ2V0VmFyaWFibGVOYW1lc0luU2NvcGUoc2NvcGVNYW5hZ2VyLCBub2RlKSB7XG4gIGxldCBjdXJyZW50Tm9kZSA9IG5vZGU7XG4gIGxldCBzY29wZSA9IHNjb3BlTWFuYWdlci5hY3F1aXJlKGN1cnJlbnROb2RlKTtcbiAgd2hpbGUgKHNjb3BlID09IG51bGwpIHtcbiAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudDtcbiAgICBzY29wZSA9IHNjb3BlTWFuYWdlci5hY3F1aXJlKGN1cnJlbnROb2RlLCB0cnVlKTtcbiAgfVxuICByZXR1cm4gbmV3IFNldChbXG4gICAgLi4uc2NvcGUudmFyaWFibGVzLm1hcCh2YXJpYWJsZSA9PiB2YXJpYWJsZS5uYW1lKSxcbiAgICAuLi5zY29wZS51cHBlci52YXJpYWJsZXMubWFwKHZhcmlhYmxlID0+IHZhcmlhYmxlLm5hbWUpLFxuICBdKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHsqfSBuYW1lc1xuICogQHBhcmFtIHsqfSBuYW1lQ29uZmxpY3RzXG4gKiBAcGFyYW0geyp9IG5hbWVzcGFjZU5hbWVcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVMb2NhbE5hbWVzKG5hbWVzLCBuYW1lQ29uZmxpY3RzLCBuYW1lc3BhY2VOYW1lKSB7XG4gIGNvbnN0IGxvY2FsTmFtZXMgPSB7fTtcbiAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIGxldCBsb2NhbE5hbWU7XG4gICAgaWYgKCFuYW1lQ29uZmxpY3RzW25hbWVdLmhhcyhuYW1lKSkge1xuICAgICAgbG9jYWxOYW1lID0gbmFtZTtcbiAgICB9IGVsc2UgaWYgKCFuYW1lQ29uZmxpY3RzW25hbWVdLmhhcyhgJHtuYW1lc3BhY2VOYW1lfV8ke25hbWV9YCkpIHtcbiAgICAgIGxvY2FsTmFtZSA9IGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IEluZmluaXR5OyBpKyspIHtcbiAgICAgICAgaWYgKCFuYW1lQ29uZmxpY3RzW25hbWVdLmhhcyhgJHtuYW1lc3BhY2VOYW1lfV8ke25hbWV9XyR7aX1gKSkge1xuICAgICAgICAgIGxvY2FsTmFtZSA9IGAke25hbWVzcGFjZU5hbWV9XyR7bmFtZX1fJHtpfWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgbG9jYWxOYW1lc1tuYW1lXSA9IGxvY2FsTmFtZTtcbiAgfSk7XG4gIHJldHVybiBsb2NhbE5hbWVzO1xufVxuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js index 811adece18..7e9b25f8ea 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-nodejs-modules.js @@ -1,5 +1,5 @@ 'use strict';var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType); -var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire); +var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} function reportIfMissing(context, node, allowed, name) { @@ -35,15 +35,8 @@ module.exports = { const options = context.options[0] || {}; const allowed = options.allow || []; - return { - ImportDeclaration: function handleImports(node) { - reportIfMissing(context, node, allowed, node.source.value); - }, - CallExpression: function handleRequires(node) { - if ((0, _staticRequire2.default)(node)) { - reportIfMissing(context, node, allowed, node.arguments[0].value); - } - } }; - + return (0, _moduleVisitor2.default)((source, node) => { + reportIfMissing(context, node, allowed, source.value); + }, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1ub2RlanMtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJyZXBvcnRJZk1pc3NpbmciLCJjb250ZXh0Iiwibm9kZSIsImFsbG93ZWQiLCJuYW1lIiwiaW5kZXhPZiIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJvcHRpb25zIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxnRDtBQUNBLHNEO0FBQ0EscUM7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLElBQWxDLEVBQXdDQyxPQUF4QyxFQUFpREMsSUFBakQsRUFBdUQ7QUFDckQsTUFBSUQsUUFBUUUsT0FBUixDQUFnQkQsSUFBaEIsTUFBMEIsQ0FBQyxDQUEzQixJQUFnQywwQkFBV0EsSUFBWCxFQUFpQkgsT0FBakIsTUFBOEIsU0FBbEUsRUFBNkU7QUFDM0VBLFlBQVFLLE1BQVIsQ0FBZUosSUFBZixFQUFxQiwyQ0FBMkNFLElBQTNDLEdBQWtELEdBQXZFO0FBQ0Q7QUFDRjs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsbUJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRO0FBQ047QUFDRUgsWUFBTSxRQURSO0FBRUVJLGtCQUFZO0FBQ1ZDLGVBQU87QUFDTEwsZ0JBQU0sT0FERDtBQUVMTSx1QkFBYSxJQUZSO0FBR0xDLGlCQUFPO0FBQ0xQLGtCQUFNLFFBREQsRUFIRixFQURHLEVBRmQ7Ozs7QUFXRVEsNEJBQXNCLEtBWHhCLEVBRE0sQ0FMSixFQURTOzs7OztBQXVCZkMsVUFBUSxVQUFVbEIsT0FBVixFQUFtQjtBQUN6QixVQUFNbUIsVUFBVW5CLFFBQVFtQixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsVUFBTWpCLFVBQVVpQixRQUFRTCxLQUFSLElBQWlCLEVBQWpDOztBQUVBLFdBQU87QUFDTE0seUJBQW1CLFNBQVNDLGFBQVQsQ0FBdUJwQixJQUF2QixFQUE2QjtBQUM5Q0Ysd0JBQWdCQyxPQUFoQixFQUF5QkMsSUFBekIsRUFBK0JDLE9BQS9CLEVBQXdDRCxLQUFLcUIsTUFBTCxDQUFZQyxLQUFwRDtBQUNELE9BSEk7QUFJTEMsc0JBQWdCLFNBQVNDLGNBQVQsQ0FBd0J4QixJQUF4QixFQUE4QjtBQUM1QyxZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QkYsMEJBQWdCQyxPQUFoQixFQUF5QkMsSUFBekIsRUFBK0JDLE9BQS9CLEVBQXdDRCxLQUFLeUIsU0FBTCxDQUFlLENBQWYsRUFBa0JILEtBQTFEO0FBQ0Q7QUFDRixPQVJJLEVBQVA7O0FBVUQsR0FyQ2MsRUFBakIiLCJmaWxlIjoibm8tbm9kZWpzLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBhbGxvd2VkLCBuYW1lKSB7XG4gIGlmIChhbGxvd2VkLmluZGV4T2YobmFtZSkgPT09IC0xICYmIGltcG9ydFR5cGUobmFtZSwgY29udGV4dCkgPT09ICdidWlsdGluJykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsICdEbyBub3QgaW1wb3J0IE5vZGUuanMgYnVpbHRpbiBtb2R1bGUgXCInICsgbmFtZSArICdcIicpXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1ub2RlanMtbW9kdWxlcycpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgYWxsb3c6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBhbGxvd2VkID0gb3B0aW9ucy5hbGxvdyB8fCBbXVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uOiBmdW5jdGlvbiBoYW5kbGVJbXBvcnRzKG5vZGUpIHtcbiAgICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIGFsbG93ZWQsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgICAgfSxcbiAgICAgIENhbGxFeHByZXNzaW9uOiBmdW5jdGlvbiBoYW5kbGVSZXF1aXJlcyhub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICByZXBvcnRJZk1pc3NpbmcoY29udGV4dCwgbm9kZSwgYWxsb3dlZCwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1ub2RlanMtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJyZXBvcnRJZk1pc3NpbmciLCJjb250ZXh0Iiwibm9kZSIsImFsbG93ZWQiLCJuYW1lIiwiaW5kZXhPZiIsInJlcG9ydCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiYWxsb3ciLCJ1bmlxdWVJdGVtcyIsIml0ZW1zIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJjcmVhdGUiLCJvcHRpb25zIiwic291cmNlIiwidmFsdWUiLCJjb21tb25qcyJdLCJtYXBwaW5ncyI6ImFBQUEsZ0Q7QUFDQSxrRTtBQUNBLHFDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDQyxJQUFsQyxFQUF3Q0MsT0FBeEMsRUFBaURDLElBQWpELEVBQXVEO0FBQ3JELE1BQUlELFFBQVFFLE9BQVIsQ0FBZ0JELElBQWhCLE1BQTBCLENBQUMsQ0FBM0IsSUFBZ0MsMEJBQVdBLElBQVgsRUFBaUJILE9BQWpCLE1BQThCLFNBQWxFLEVBQTZFO0FBQzNFQSxZQUFRSyxNQUFSLENBQWVKLElBQWYsRUFBcUIsMkNBQTJDRSxJQUEzQyxHQUFrRCxHQUF2RTtBQUNEO0FBQ0Y7O0FBRURHLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLG1CQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUTtBQUNOO0FBQ0VILFlBQU0sUUFEUjtBQUVFSSxrQkFBWTtBQUNWQyxlQUFPO0FBQ0xMLGdCQUFNLE9BREQ7QUFFTE0sdUJBQWEsSUFGUjtBQUdMQyxpQkFBTztBQUNMUCxrQkFBTSxRQURELEVBSEYsRUFERyxFQUZkOzs7O0FBV0VRLDRCQUFzQixLQVh4QixFQURNLENBTEosRUFEUzs7Ozs7QUF1QmZDLFVBQVEsVUFBVWxCLE9BQVYsRUFBbUI7QUFDekIsVUFBTW1CLFVBQVVuQixRQUFRbUIsT0FBUixDQUFnQixDQUFoQixLQUFzQixFQUF0QztBQUNBLFVBQU1qQixVQUFVaUIsUUFBUUwsS0FBUixJQUFpQixFQUFqQzs7QUFFQSxXQUFPLDZCQUFjLENBQUNNLE1BQUQsRUFBU25CLElBQVQsS0FBa0I7QUFDckNGLHNCQUFnQkMsT0FBaEIsRUFBeUJDLElBQXpCLEVBQStCQyxPQUEvQixFQUF3Q2tCLE9BQU9DLEtBQS9DO0FBQ0QsS0FGTSxFQUVKLEVBQUVDLFVBQVUsSUFBWixFQUZJLENBQVA7QUFHRCxHQTlCYyxFQUFqQiIsImZpbGUiOiJuby1ub2RlanMtbW9kdWxlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSc7XG5pbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbmZ1bmN0aW9uIHJlcG9ydElmTWlzc2luZyhjb250ZXh0LCBub2RlLCBhbGxvd2VkLCBuYW1lKSB7XG4gIGlmIChhbGxvd2VkLmluZGV4T2YobmFtZSkgPT09IC0xICYmIGltcG9ydFR5cGUobmFtZSwgY29udGV4dCkgPT09ICdidWlsdGluJykge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsICdEbyBub3QgaW1wb3J0IE5vZGUuanMgYnVpbHRpbiBtb2R1bGUgXCInICsgbmFtZSArICdcIicpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tbm9kZWpzLW1vZHVsZXMnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGFsbG93OiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9O1xuICAgIGNvbnN0IGFsbG93ZWQgPSBvcHRpb25zLmFsbG93IHx8IFtdO1xuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IoKHNvdXJjZSwgbm9kZSkgPT4ge1xuICAgICAgcmVwb3J0SWZNaXNzaW5nKGNvbnRleHQsIG5vZGUsIGFsbG93ZWQsIHNvdXJjZS52YWx1ZSk7XG4gICAgfSwgeyBjb21tb25qczogdHJ1ZSB9KTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-relative-packages.js b/node_modules/eslint-plugin-import/lib/rules/no-relative-packages.js new file mode 100644 index 0000000000..3e4d948906 --- /dev/null +++ b/node_modules/eslint-plugin-import/lib/rules/no-relative-packages.js @@ -0,0 +1,61 @@ +'use strict';var _path = require('path');var _path2 = _interopRequireDefault(_path); +var _readPkgUp = require('read-pkg-up');var _readPkgUp2 = _interopRequireDefault(_readPkgUp); + +var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); +var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); +var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType); +var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} + +function findNamedPackage(filePath) { + const found = _readPkgUp2.default.sync({ cwd: filePath, normalize: false }); + if (found.pkg && !found.pkg.name) { + return findNamedPackage(_path2.default.join(found.path, '../..')); + } + return found; +} + +function checkImportForRelativePackage(context, importPath, node) { + const potentialViolationTypes = ['parent', 'index', 'sibling']; + if (potentialViolationTypes.indexOf((0, _importType2.default)(importPath, context)) === -1) { + return; + } + + const resolvedImport = (0, _resolve2.default)(importPath, context); + const resolvedContext = context.getFilename(); + + if (!resolvedImport || !resolvedContext) { + return; + } + + const importPkg = findNamedPackage(resolvedImport); + const contextPkg = findNamedPackage(resolvedContext); + + if (importPkg.pkg && contextPkg.pkg && importPkg.pkg.name !== contextPkg.pkg.name) { + const importBaseName = _path2.default.basename(importPath); + const importRoot = _path2.default.dirname(importPkg.path); + const properPath = _path2.default.relative(importRoot, resolvedImport); + const properImport = _path2.default.join( + importPkg.pkg.name, + _path2.default.dirname(properPath), + importBaseName === _path2.default.basename(importRoot) ? '' : importBaseName); + + context.report({ + node, + message: `Relative import from another package is not allowed. Use \`${properImport}\` instead of \`${importPath}\`` }); + + } +} + +module.exports = { + meta: { + type: 'suggestion', + docs: { + url: (0, _docsUrl2.default)('no-relative-packages') }, + + schema: [(0, _moduleVisitor.makeOptionsSchema)()] }, + + + create(context) { + return (0, _moduleVisitor2.default)(source => checkImportForRelativePackage(context, source.value, source), context.options[0]); + } }; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWxhdGl2ZS1wYWNrYWdlcy5qcyJdLCJuYW1lcyI6WyJmaW5kTmFtZWRQYWNrYWdlIiwiZmlsZVBhdGgiLCJmb3VuZCIsInJlYWRQa2dVcCIsInN5bmMiLCJjd2QiLCJub3JtYWxpemUiLCJwa2ciLCJuYW1lIiwicGF0aCIsImpvaW4iLCJjaGVja0ltcG9ydEZvclJlbGF0aXZlUGFja2FnZSIsImNvbnRleHQiLCJpbXBvcnRQYXRoIiwibm9kZSIsInBvdGVudGlhbFZpb2xhdGlvblR5cGVzIiwiaW5kZXhPZiIsInJlc29sdmVkSW1wb3J0IiwicmVzb2x2ZWRDb250ZXh0IiwiZ2V0RmlsZW5hbWUiLCJpbXBvcnRQa2ciLCJjb250ZXh0UGtnIiwiaW1wb3J0QmFzZU5hbWUiLCJiYXNlbmFtZSIsImltcG9ydFJvb3QiLCJkaXJuYW1lIiwicHJvcGVyUGF0aCIsInJlbGF0aXZlIiwicHJvcGVySW1wb3J0IiwicmVwb3J0IiwibWVzc2FnZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjcmVhdGUiLCJzb3VyY2UiLCJ2YWx1ZSIsIm9wdGlvbnMiXSwibWFwcGluZ3MiOiJhQUFBLDRCO0FBQ0Esd0M7O0FBRUEsc0Q7QUFDQSxrRTtBQUNBLGdEO0FBQ0EscUM7O0FBRUEsU0FBU0EsZ0JBQVQsQ0FBMEJDLFFBQTFCLEVBQW9DO0FBQ2xDLFFBQU1DLFFBQVFDLG9CQUFVQyxJQUFWLENBQWUsRUFBRUMsS0FBS0osUUFBUCxFQUFpQkssV0FBVyxLQUE1QixFQUFmLENBQWQ7QUFDQSxNQUFJSixNQUFNSyxHQUFOLElBQWEsQ0FBQ0wsTUFBTUssR0FBTixDQUFVQyxJQUE1QixFQUFrQztBQUNoQyxXQUFPUixpQkFBaUJTLGVBQUtDLElBQUwsQ0FBVVIsTUFBTU8sSUFBaEIsRUFBc0IsT0FBdEIsQ0FBakIsQ0FBUDtBQUNEO0FBQ0QsU0FBT1AsS0FBUDtBQUNEOztBQUVELFNBQVNTLDZCQUFULENBQXVDQyxPQUF2QyxFQUFnREMsVUFBaEQsRUFBNERDLElBQTVELEVBQWtFO0FBQ2hFLFFBQU1DLDBCQUEwQixDQUFDLFFBQUQsRUFBVyxPQUFYLEVBQW9CLFNBQXBCLENBQWhDO0FBQ0EsTUFBSUEsd0JBQXdCQyxPQUF4QixDQUFnQywwQkFBV0gsVUFBWCxFQUF1QkQsT0FBdkIsQ0FBaEMsTUFBcUUsQ0FBQyxDQUExRSxFQUE2RTtBQUMzRTtBQUNEOztBQUVELFFBQU1LLGlCQUFpQix1QkFBUUosVUFBUixFQUFvQkQsT0FBcEIsQ0FBdkI7QUFDQSxRQUFNTSxrQkFBa0JOLFFBQVFPLFdBQVIsRUFBeEI7O0FBRUEsTUFBSSxDQUFDRixjQUFELElBQW1CLENBQUNDLGVBQXhCLEVBQXlDO0FBQ3ZDO0FBQ0Q7O0FBRUQsUUFBTUUsWUFBWXBCLGlCQUFpQmlCLGNBQWpCLENBQWxCO0FBQ0EsUUFBTUksYUFBYXJCLGlCQUFpQmtCLGVBQWpCLENBQW5COztBQUVBLE1BQUlFLFVBQVViLEdBQVYsSUFBaUJjLFdBQVdkLEdBQTVCLElBQW1DYSxVQUFVYixHQUFWLENBQWNDLElBQWQsS0FBdUJhLFdBQVdkLEdBQVgsQ0FBZUMsSUFBN0UsRUFBbUY7QUFDakYsVUFBTWMsaUJBQWlCYixlQUFLYyxRQUFMLENBQWNWLFVBQWQsQ0FBdkI7QUFDQSxVQUFNVyxhQUFhZixlQUFLZ0IsT0FBTCxDQUFhTCxVQUFVWCxJQUF2QixDQUFuQjtBQUNBLFVBQU1pQixhQUFhakIsZUFBS2tCLFFBQUwsQ0FBY0gsVUFBZCxFQUEwQlAsY0FBMUIsQ0FBbkI7QUFDQSxVQUFNVyxlQUFlbkIsZUFBS0MsSUFBTDtBQUNuQlUsY0FBVWIsR0FBVixDQUFjQyxJQURLO0FBRW5CQyxtQkFBS2dCLE9BQUwsQ0FBYUMsVUFBYixDQUZtQjtBQUduQkosdUJBQW1CYixlQUFLYyxRQUFMLENBQWNDLFVBQWQsQ0FBbkIsR0FBK0MsRUFBL0MsR0FBb0RGLGNBSGpDLENBQXJCOztBQUtBVixZQUFRaUIsTUFBUixDQUFlO0FBQ2JmLFVBRGE7QUFFYmdCLGVBQVUsOERBQTZERixZQUFhLG1CQUFrQmYsVUFBVyxJQUZwRyxFQUFmOztBQUlEO0FBQ0Y7O0FBRURrQixPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZDLFFBQU07QUFDSkMsVUFBTSxZQURGO0FBRUpDLFVBQU07QUFDSkMsV0FBSyx1QkFBUSxzQkFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsQ0FBQyx1Q0FBRCxDQUxKLEVBRFM7OztBQVNmQyxTQUFPMUIsT0FBUCxFQUFnQjtBQUNkLFdBQU8sNkJBQWUyQixNQUFELElBQVk1Qiw4QkFBOEJDLE9BQTlCLEVBQXVDMkIsT0FBT0MsS0FBOUMsRUFBcURELE1BQXJELENBQTFCLEVBQXdGM0IsUUFBUTZCLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBeEYsQ0FBUDtBQUNELEdBWGMsRUFBakIiLCJmaWxlIjoibm8tcmVsYXRpdmUtcGFja2FnZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCByZWFkUGtnVXAgZnJvbSAncmVhZC1wa2ctdXAnO1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5mdW5jdGlvbiBmaW5kTmFtZWRQYWNrYWdlKGZpbGVQYXRoKSB7XG4gIGNvbnN0IGZvdW5kID0gcmVhZFBrZ1VwLnN5bmMoeyBjd2Q6IGZpbGVQYXRoLCBub3JtYWxpemU6IGZhbHNlIH0pO1xuICBpZiAoZm91bmQucGtnICYmICFmb3VuZC5wa2cubmFtZSkge1xuICAgIHJldHVybiBmaW5kTmFtZWRQYWNrYWdlKHBhdGguam9pbihmb3VuZC5wYXRoLCAnLi4vLi4nKSk7XG4gIH1cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG5mdW5jdGlvbiBjaGVja0ltcG9ydEZvclJlbGF0aXZlUGFja2FnZShjb250ZXh0LCBpbXBvcnRQYXRoLCBub2RlKSB7XG4gIGNvbnN0IHBvdGVudGlhbFZpb2xhdGlvblR5cGVzID0gWydwYXJlbnQnLCAnaW5kZXgnLCAnc2libGluZyddO1xuICBpZiAocG90ZW50aWFsVmlvbGF0aW9uVHlwZXMuaW5kZXhPZihpbXBvcnRUeXBlKGltcG9ydFBhdGgsIGNvbnRleHQpKSA9PT0gLTEpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZXNvbHZlZEltcG9ydCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dCk7XG4gIGNvbnN0IHJlc29sdmVkQ29udGV4dCA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKTtcblxuICBpZiAoIXJlc29sdmVkSW1wb3J0IHx8ICFyZXNvbHZlZENvbnRleHQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBpbXBvcnRQa2cgPSBmaW5kTmFtZWRQYWNrYWdlKHJlc29sdmVkSW1wb3J0KTtcbiAgY29uc3QgY29udGV4dFBrZyA9IGZpbmROYW1lZFBhY2thZ2UocmVzb2x2ZWRDb250ZXh0KTtcblxuICBpZiAoaW1wb3J0UGtnLnBrZyAmJiBjb250ZXh0UGtnLnBrZyAmJiBpbXBvcnRQa2cucGtnLm5hbWUgIT09IGNvbnRleHRQa2cucGtnLm5hbWUpIHtcbiAgICBjb25zdCBpbXBvcnRCYXNlTmFtZSA9IHBhdGguYmFzZW5hbWUoaW1wb3J0UGF0aCk7XG4gICAgY29uc3QgaW1wb3J0Um9vdCA9IHBhdGguZGlybmFtZShpbXBvcnRQa2cucGF0aCk7XG4gICAgY29uc3QgcHJvcGVyUGF0aCA9IHBhdGgucmVsYXRpdmUoaW1wb3J0Um9vdCwgcmVzb2x2ZWRJbXBvcnQpO1xuICAgIGNvbnN0IHByb3BlckltcG9ydCA9IHBhdGguam9pbihcbiAgICAgIGltcG9ydFBrZy5wa2cubmFtZSxcbiAgICAgIHBhdGguZGlybmFtZShwcm9wZXJQYXRoKSxcbiAgICAgIGltcG9ydEJhc2VOYW1lID09PSBwYXRoLmJhc2VuYW1lKGltcG9ydFJvb3QpID8gJycgOiBpbXBvcnRCYXNlTmFtZVxuICAgICk7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZSxcbiAgICAgIG1lc3NhZ2U6IGBSZWxhdGl2ZSBpbXBvcnQgZnJvbSBhbm90aGVyIHBhY2thZ2UgaXMgbm90IGFsbG93ZWQuIFVzZSBcXGAke3Byb3BlckltcG9ydH1cXGAgaW5zdGVhZCBvZiBcXGAke2ltcG9ydFBhdGh9XFxgYCxcbiAgICB9KTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXJlbGF0aXZlLXBhY2thZ2VzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFttYWtlT3B0aW9uc1NjaGVtYSgpXSxcbiAgfSxcblxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKChzb3VyY2UpID0+IGNoZWNrSW1wb3J0Rm9yUmVsYXRpdmVQYWNrYWdlKGNvbnRleHQsIHNvdXJjZS52YWx1ZSwgc291cmNlKSwgY29udGV4dC5vcHRpb25zWzBdKTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js b/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js index 13695c1b08..87cbb2621b 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-relative-parent-imports.js @@ -46,4 +46,4 @@ module.exports = { return (0, _moduleVisitor2.default)(checkSourceValue, context.options[0]); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwibm9SZWxhdGl2ZVBhY2thZ2VzIiwiY29udGV4dCIsIm15UGF0aCIsImdldEZpbGVuYW1lIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZU5vZGUiLCJkZXBQYXRoIiwidmFsdWUiLCJhYnNEZXBQYXRoIiwicmVsRGVwUGF0aCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6ImFBQUEsa0U7QUFDQSxxQztBQUNBO0FBQ0Esc0Q7O0FBRUEsZ0Q7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxDQUFDLHVDQUFELENBTEosRUFEUzs7O0FBU2ZDLFVBQVEsU0FBU0Msa0JBQVQsQ0FBNEJDLE9BQTVCLEVBQXFDO0FBQzNDLFVBQU1DLFNBQVNELFFBQVFFLFdBQVIsRUFBZjtBQUNBLFFBQUlELFdBQVcsUUFBZixFQUF5QixPQUFPLEVBQVAsQ0FGa0IsQ0FFUjs7QUFFbkMsYUFBU0UsZ0JBQVQsQ0FBMEJDLFVBQTFCLEVBQXNDO0FBQ3BDLFlBQU1DLFVBQVVELFdBQVdFLEtBQTNCOztBQUVBLFVBQUksMEJBQVdELE9BQVgsRUFBb0JMLE9BQXBCLE1BQWlDLFVBQXJDLEVBQWlELENBQUU7QUFDakQ7QUFDRDs7QUFFRCxZQUFNTyxhQUFhLHVCQUFRRixPQUFSLEVBQWlCTCxPQUFqQixDQUFuQjs7QUFFQSxVQUFJLENBQUNPLFVBQUwsRUFBaUIsQ0FBRTtBQUNqQjtBQUNEOztBQUVELFlBQU1DLGFBQWEsb0JBQVMsbUJBQVFQLE1BQVIsQ0FBVCxFQUEwQk0sVUFBMUIsQ0FBbkI7O0FBRUEsVUFBSSwwQkFBV0MsVUFBWCxFQUF1QlIsT0FBdkIsTUFBb0MsUUFBeEMsRUFBa0Q7QUFDaERBLGdCQUFRUyxNQUFSLENBQWU7QUFDYkMsZ0JBQU1OLFVBRE87QUFFYk8sbUJBQVM7QUFDTix3RUFETTtBQUVOLDRDQUFpQyxvQkFBU1YsTUFBVCxDQUFpQixhQUY1QztBQUdOLDRCQUFpQkksT0FBUSwyQkFBMEJBLE9BQVEsZUFMakQsRUFBZjs7QUFPRDtBQUNGOztBQUVELFdBQU8sNkJBQWNGLGdCQUFkLEVBQWdDSCxRQUFRWSxPQUFSLENBQWdCLENBQWhCLENBQWhDLENBQVA7QUFDRCxHQXhDYyxFQUFqQiIsImZpbGUiOiJuby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVWaXNpdG9yLCB7IG1ha2VPcHRpb25zU2NoZW1hIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcbmltcG9ydCB7IGJhc2VuYW1lLCBkaXJuYW1lLCByZWxhdGl2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5cbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cycpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbbWFrZU9wdGlvbnNTY2hlbWEoKV0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiBub1JlbGF0aXZlUGFja2FnZXMoY29udGV4dCkge1xuICAgIGNvbnN0IG15UGF0aCA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuICAgIGlmIChteVBhdGggPT09ICc8dGV4dD4nKSByZXR1cm4ge30gLy8gY2FuJ3QgY2hlY2sgYSBub24tZmlsZVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2VOb2RlKSB7XG4gICAgICBjb25zdCBkZXBQYXRoID0gc291cmNlTm9kZS52YWx1ZVxuXG4gICAgICBpZiAoaW1wb3J0VHlwZShkZXBQYXRoLCBjb250ZXh0KSA9PT0gJ2V4dGVybmFsJykgeyAvLyBpZ25vcmUgcGFja2FnZXNcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFic0RlcFBhdGggPSByZXNvbHZlKGRlcFBhdGgsIGNvbnRleHQpXG5cbiAgICAgIGlmICghYWJzRGVwUGF0aCkgeyAvLyB1bmFibGUgdG8gcmVzb2x2ZSBwYXRoXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxEZXBQYXRoID0gcmVsYXRpdmUoZGlybmFtZShteVBhdGgpLCBhYnNEZXBQYXRoKVxuXG4gICAgICBpZiAoaW1wb3J0VHlwZShyZWxEZXBQYXRoLCBjb250ZXh0KSA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZU5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1JlbGF0aXZlIGltcG9ydHMgZnJvbSBwYXJlbnQgZGlyZWN0b3JpZXMgYXJlIG5vdCBhbGxvd2VkLiAnICtcbiAgICAgICAgICAgIGBQbGVhc2UgZWl0aGVyIHBhc3Mgd2hhdCB5b3UncmUgaW1wb3J0aW5nIHRocm91Z2ggYXQgcnVudGltZSBgICtcbiAgICAgICAgICAgIGAoZGVwZW5kZW5jeSBpbmplY3Rpb24pLCBtb3ZlIFxcYCR7YmFzZW5hbWUobXlQYXRoKX1cXGAgdG8gc2FtZSBgICtcbiAgICAgICAgICAgIGBkaXJlY3RvcnkgYXMgXFxgJHtkZXBQYXRofVxcYCBvciBjb25zaWRlciBtYWtpbmcgXFxgJHtkZXBQYXRofVxcYCBhIHBhY2thZ2UuYCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcihjaGVja1NvdXJjZVZhbHVlLCBjb250ZXh0Lm9wdGlvbnNbMF0pXG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwibm9SZWxhdGl2ZVBhY2thZ2VzIiwiY29udGV4dCIsIm15UGF0aCIsImdldEZpbGVuYW1lIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZU5vZGUiLCJkZXBQYXRoIiwidmFsdWUiLCJhYnNEZXBQYXRoIiwicmVsRGVwUGF0aCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6ImFBQUEsa0U7QUFDQSxxQztBQUNBO0FBQ0Esc0Q7O0FBRUEsZ0Q7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFlBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDRCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxDQUFDLHVDQUFELENBTEosRUFEUzs7O0FBU2ZDLFVBQVEsU0FBU0Msa0JBQVQsQ0FBNEJDLE9BQTVCLEVBQXFDO0FBQzNDLFVBQU1DLFNBQVNELFFBQVFFLFdBQVIsRUFBZjtBQUNBLFFBQUlELFdBQVcsUUFBZixFQUF5QixPQUFPLEVBQVAsQ0FGa0IsQ0FFUDs7QUFFcEMsYUFBU0UsZ0JBQVQsQ0FBMEJDLFVBQTFCLEVBQXNDO0FBQ3BDLFlBQU1DLFVBQVVELFdBQVdFLEtBQTNCOztBQUVBLFVBQUksMEJBQVdELE9BQVgsRUFBb0JMLE9BQXBCLE1BQWlDLFVBQXJDLEVBQWlELENBQUU7QUFDakQ7QUFDRDs7QUFFRCxZQUFNTyxhQUFhLHVCQUFRRixPQUFSLEVBQWlCTCxPQUFqQixDQUFuQjs7QUFFQSxVQUFJLENBQUNPLFVBQUwsRUFBaUIsQ0FBRTtBQUNqQjtBQUNEOztBQUVELFlBQU1DLGFBQWEsb0JBQVMsbUJBQVFQLE1BQVIsQ0FBVCxFQUEwQk0sVUFBMUIsQ0FBbkI7O0FBRUEsVUFBSSwwQkFBV0MsVUFBWCxFQUF1QlIsT0FBdkIsTUFBb0MsUUFBeEMsRUFBa0Q7QUFDaERBLGdCQUFRUyxNQUFSLENBQWU7QUFDYkMsZ0JBQU1OLFVBRE87QUFFYk8sbUJBQVM7QUFDTix3RUFETTtBQUVOLDRDQUFpQyxvQkFBU1YsTUFBVCxDQUFpQixhQUY1QztBQUdOLDRCQUFpQkksT0FBUSwyQkFBMEJBLE9BQVEsZUFMakQsRUFBZjs7QUFPRDtBQUNGOztBQUVELFdBQU8sNkJBQWNGLGdCQUFkLEVBQWdDSCxRQUFRWSxPQUFSLENBQWdCLENBQWhCLENBQWhDLENBQVA7QUFDRCxHQXhDYyxFQUFqQiIsImZpbGUiOiJuby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb2R1bGVWaXNpdG9yLCB7IG1ha2VPcHRpb25zU2NoZW1hIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIHJlbGF0aXZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuXG5pbXBvcnQgaW1wb3J0VHlwZSBmcm9tICcuLi9jb3JlL2ltcG9ydFR5cGUnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXJlbGF0aXZlLXBhcmVudC1pbXBvcnRzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFttYWtlT3B0aW9uc1NjaGVtYSgpXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5vUmVsYXRpdmVQYWNrYWdlcyhjb250ZXh0KSB7XG4gICAgY29uc3QgbXlQYXRoID0gY29udGV4dC5nZXRGaWxlbmFtZSgpO1xuICAgIGlmIChteVBhdGggPT09ICc8dGV4dD4nKSByZXR1cm4ge307IC8vIGNhbid0IGNoZWNrIGEgbm9uLWZpbGVcblxuICAgIGZ1bmN0aW9uIGNoZWNrU291cmNlVmFsdWUoc291cmNlTm9kZSkge1xuICAgICAgY29uc3QgZGVwUGF0aCA9IHNvdXJjZU5vZGUudmFsdWU7XG5cbiAgICAgIGlmIChpbXBvcnRUeXBlKGRlcFBhdGgsIGNvbnRleHQpID09PSAnZXh0ZXJuYWwnKSB7IC8vIGlnbm9yZSBwYWNrYWdlc1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFic0RlcFBhdGggPSByZXNvbHZlKGRlcFBhdGgsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoIWFic0RlcFBhdGgpIHsgLy8gdW5hYmxlIHRvIHJlc29sdmUgcGF0aFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbERlcFBhdGggPSByZWxhdGl2ZShkaXJuYW1lKG15UGF0aCksIGFic0RlcFBhdGgpO1xuXG4gICAgICBpZiAoaW1wb3J0VHlwZShyZWxEZXBQYXRoLCBjb250ZXh0KSA9PT0gJ3BhcmVudCcpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZU5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1JlbGF0aXZlIGltcG9ydHMgZnJvbSBwYXJlbnQgZGlyZWN0b3JpZXMgYXJlIG5vdCBhbGxvd2VkLiAnICtcbiAgICAgICAgICAgIGBQbGVhc2UgZWl0aGVyIHBhc3Mgd2hhdCB5b3UncmUgaW1wb3J0aW5nIHRocm91Z2ggYXQgcnVudGltZSBgICtcbiAgICAgICAgICAgIGAoZGVwZW5kZW5jeSBpbmplY3Rpb24pLCBtb3ZlIFxcYCR7YmFzZW5hbWUobXlQYXRoKX1cXGAgdG8gc2FtZSBgICtcbiAgICAgICAgICAgIGBkaXJlY3RvcnkgYXMgXFxgJHtkZXBQYXRofVxcYCBvciBjb25zaWRlciBtYWtpbmcgXFxgJHtkZXBQYXRofVxcYCBhIHBhY2thZ2UuYCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IoY2hlY2tTb3VyY2VWYWx1ZSwgY29udGV4dC5vcHRpb25zWzBdKTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js b/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js index d318e40850..c38b5bad0f 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-restricted-paths.js @@ -1,11 +1,15 @@ -'use strict';var _slicedToArray = function () {function sliceIterator(arr, i) {var _arr = [];var _n = true;var _d = false;var _e = undefined;try {for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {_arr.push(_s.value);if (i && _arr.length === i) break;}} catch (err) {_d = true;_e = err;} finally {try {if (!_n && _i["return"]) _i["return"]();} finally {if (_d) throw _e;}}return _arr;}return function (arr, i) {if (Array.isArray(arr)) {return arr;} else if (Symbol.iterator in Object(arr)) {return sliceIterator(arr, i);} else {throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _containsPath = require('contains-path');var _containsPath2 = _interopRequireDefault(_containsPath); -var _path = require('path');var _path2 = _interopRequireDefault(_path); +'use strict';var _path = require('path');var _path2 = _interopRequireDefault(_path); var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); -var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire); +var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl); var _importType = require('../core/importType');var _importType2 = _interopRequireDefault(_importType);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +const containsPath = (filepath, target) => { + const relative = _path2.default.relative(target, filepath); + return relative === '' || !relative.startsWith('..'); +}; + module.exports = { meta: { type: 'problem', @@ -52,7 +56,7 @@ module.exports = { const matchingZones = restrictedPaths.filter(zone => { const targetPath = _path2.default.resolve(basePath, zone.target); - return (0, _containsPath2.default)(currentFilename, targetPath); + return containsPath(currentFilename, targetPath); }); function isValidExceptionPath(absoluteFromPath, absoluteExceptionPath) { @@ -68,6 +72,19 @@ module.exports = { } + const zoneExceptions = matchingZones.map(zone => { + const exceptionPaths = zone.except || []; + const absoluteFrom = _path2.default.resolve(basePath, zone.from); + const absoluteExceptionPaths = exceptionPaths.map(exceptionPath => _path2.default.resolve(absoluteFrom, exceptionPath)); + const hasValidExceptionPaths = absoluteExceptionPaths. + every(absoluteExceptionPath => isValidExceptionPath(absoluteFrom, absoluteExceptionPath)); + + return { + absoluteExceptionPaths, + hasValidExceptionPaths }; + + }); + function checkForRestrictedImportPath(importPath, node) { const absoluteImportPath = (0, _resolve2.default)(importPath, context); @@ -75,19 +92,14 @@ module.exports = { return; } - matchingZones.forEach(zone => { - const exceptionPaths = zone.except || []; + matchingZones.forEach((zone, index) => { const absoluteFrom = _path2.default.resolve(basePath, zone.from); - if (!(0, _containsPath2.default)(absoluteImportPath, absoluteFrom)) { + if (!containsPath(absoluteImportPath, absoluteFrom)) { return; - } - - const absoluteExceptionPaths = exceptionPaths.map(exceptionPath => - _path2.default.resolve(absoluteFrom, exceptionPath)); + }var _zoneExceptions$index = - const hasValidExceptionPaths = absoluteExceptionPaths. - every(absoluteExceptionPath => isValidExceptionPath(absoluteFrom, absoluteExceptionPath)); + zoneExceptions[index];const hasValidExceptionPaths = _zoneExceptions$index.hasValidExceptionPaths,absoluteExceptionPaths = _zoneExceptions$index.absoluteExceptionPaths; if (!hasValidExceptionPaths) { reportInvalidExceptionPath(node); @@ -95,7 +107,7 @@ module.exports = { } const pathIsExcepted = absoluteExceptionPaths. - some(absoluteExceptionPath => (0, _containsPath2.default)(absoluteImportPath, absoluteExceptionPath)); + some(absoluteExceptionPath => containsPath(absoluteImportPath, absoluteExceptionPath)); if (pathIsExcepted) { return; @@ -109,17 +121,8 @@ module.exports = { }); } - return { - ImportDeclaration(node) { - checkForRestrictedImportPath(node.source.value, node.source); - }, - CallExpression(node) { - if ((0, _staticRequire2.default)(node)) {var _node$arguments = _slicedToArray( - node.arguments, 1);const firstArgument = _node$arguments[0]; - - checkForRestrictedImportPath(firstArgument.value, firstArgument); - } - } }; - + return (0, _moduleVisitor2.default)(source => { + checkForRestrictedImportPath(source.value, source); + }, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiem9uZXMiLCJtaW5JdGVtcyIsIml0ZW1zIiwidGFyZ2V0IiwiZnJvbSIsImV4Y2VwdCIsInVuaXF1ZUl0ZW1zIiwibWVzc2FnZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiYmFzZVBhdGgiLCJjcmVhdGUiLCJub1Jlc3RyaWN0ZWRQYXRocyIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzdHJpY3RlZFBhdGhzIiwicHJvY2VzcyIsImN3ZCIsImN1cnJlbnRGaWxlbmFtZSIsImdldEZpbGVuYW1lIiwibWF0Y2hpbmdab25lcyIsImZpbHRlciIsInpvbmUiLCJ0YXJnZXRQYXRoIiwicGF0aCIsInJlc29sdmUiLCJpc1ZhbGlkRXhjZXB0aW9uUGF0aCIsImFic29sdXRlRnJvbVBhdGgiLCJhYnNvbHV0ZUV4Y2VwdGlvblBhdGgiLCJyZWxhdGl2ZUV4Y2VwdGlvblBhdGgiLCJyZWxhdGl2ZSIsInJlcG9ydEludmFsaWRFeGNlcHRpb25QYXRoIiwibm9kZSIsInJlcG9ydCIsImNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgiLCJpbXBvcnRQYXRoIiwiYWJzb2x1dGVJbXBvcnRQYXRoIiwiZm9yRWFjaCIsImV4Y2VwdGlvblBhdGhzIiwiYWJzb2x1dGVGcm9tIiwiYWJzb2x1dGVFeGNlcHRpb25QYXRocyIsIm1hcCIsImV4Y2VwdGlvblBhdGgiLCJoYXNWYWxpZEV4Y2VwdGlvblBhdGhzIiwiZXZlcnkiLCJwYXRoSXNFeGNlcHRlZCIsInNvbWUiLCJkYXRhIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJzb3VyY2UiLCJ2YWx1ZSIsIkNhbGxFeHByZXNzaW9uIiwiYXJndW1lbnRzIiwiZmlyc3RBcmd1bWVudCJdLCJtYXBwaW5ncyI6InFvQkFBQSw2QztB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WUFBSSxDQUFDZSxzQkFBTCxFQUE2QjtBQUMzQloscUNBQTJCQyxJQUEzQjtBQUNBO0FBQ0Q7O0FBRUQsY0FBTWEsaUJBQWlCTDtBQUNwQk0sWUFEb0IsQ0FDZGxCLHFCQUFELElBQTJCLDRCQUFhUSxrQkFBYixFQUFpQ1IscUJBQWpDLENBRFosQ0FBdkI7O0FBR0EsWUFBSWlCLGNBQUosRUFBb0I7QUFDbEI7QUFDRDs7QUFFRGhDLGdCQUFRb0IsTUFBUixDQUFlO0FBQ2JELGNBRGE7QUFFYnhCLG1CQUFVLGdFQUErRGMsS0FBS2QsT0FBTCxHQUFnQixJQUFHYyxLQUFLZCxPQUFRLEVBQWhDLEdBQW9DLEVBQUcsRUFGbkc7QUFHYnVDLGdCQUFNLEVBQUVaLFVBQUYsRUFITyxFQUFmOztBQUtELE9BL0JEO0FBZ0NIOztBQUVELFdBQU87QUFDTGEsd0JBQWtCaEIsSUFBbEIsRUFBd0I7QUFDdEJFLHFDQUE2QkYsS0FBS2lCLE1BQUwsQ0FBWUMsS0FBekMsRUFBZ0RsQixLQUFLaUIsTUFBckQ7QUFDRCxPQUhJO0FBSUxFLHFCQUFlbkIsSUFBZixFQUFxQjtBQUNuQixZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUNDQSxlQUFLb0IsU0FETixXQUNqQkMsYUFEaUI7O0FBR3pCbkIsdUNBQTZCbUIsY0FBY0gsS0FBM0MsRUFBa0RHLGFBQWxEO0FBQ0Q7QUFDRixPQVZJLEVBQVA7O0FBWUQsR0FuSGMsRUFBakIiLCJmaWxlIjoibm8tcmVzdHJpY3RlZC1wYXRocy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb250YWluc1BhdGggZnJvbSAnY29udGFpbnMtcGF0aCdcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1yZXN0cmljdGVkLXBhdGhzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHpvbmVzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRhcmdldDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICAgIGZyb206IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgICBleGNlcHQ6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJhc2VQYXRoOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5vUmVzdHJpY3RlZFBhdGhzKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gICAgY29uc3QgcmVzdHJpY3RlZFBhdGhzID0gb3B0aW9ucy56b25lcyB8fCBbXVxuICAgIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aCB8fCBwcm9jZXNzLmN3ZCgpXG4gICAgY29uc3QgY3VycmVudEZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gICAgY29uc3QgbWF0Y2hpbmdab25lcyA9IHJlc3RyaWN0ZWRQYXRocy5maWx0ZXIoKHpvbmUpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldFBhdGggPSBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHpvbmUudGFyZ2V0KVxuXG4gICAgICByZXR1cm4gY29udGFpbnNQYXRoKGN1cnJlbnRGaWxlbmFtZSwgdGFyZ2V0UGF0aClcbiAgICB9KVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZEV4Y2VwdGlvblBhdGgoYWJzb2x1dGVGcm9tUGF0aCwgYWJzb2x1dGVFeGNlcHRpb25QYXRoKSB7XG4gICAgICBjb25zdCByZWxhdGl2ZUV4Y2VwdGlvblBhdGggPSBwYXRoLnJlbGF0aXZlKGFic29sdXRlRnJvbVBhdGgsIGFic29sdXRlRXhjZXB0aW9uUGF0aClcblxuICAgICAgcmV0dXJuIGltcG9ydFR5cGUocmVsYXRpdmVFeGNlcHRpb25QYXRoLCBjb250ZXh0KSAhPT0gJ3BhcmVudCdcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXBvcnRJbnZhbGlkRXhjZXB0aW9uUGF0aChub2RlKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG5vZGUsXG4gICAgICAgIG1lc3NhZ2U6ICdSZXN0cmljdGVkIHBhdGggZXhjZXB0aW9ucyBtdXN0IGJlIGRlc2NlbmRhbnRzIG9mIHRoZSBjb25maWd1cmVkIGBmcm9tYCBwYXRoIGZvciB0aGF0IHpvbmUuJyxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tGb3JSZXN0cmljdGVkSW1wb3J0UGF0aChpbXBvcnRQYXRoLCBub2RlKSB7XG4gICAgICAgIGNvbnN0IGFic29sdXRlSW1wb3J0UGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dClcblxuICAgICAgICBpZiAoIWFic29sdXRlSW1wb3J0UGF0aCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgbWF0Y2hpbmdab25lcy5mb3JFYWNoKCh6b25lKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhjZXB0aW9uUGF0aHMgPSB6b25lLmV4Y2VwdCB8fCBbXVxuICAgICAgICAgIGNvbnN0IGFic29sdXRlRnJvbSA9IHBhdGgucmVzb2x2ZShiYXNlUGF0aCwgem9uZS5mcm9tKVxuXG4gICAgICAgICAgaWYgKCFjb250YWluc1BhdGgoYWJzb2x1dGVJbXBvcnRQYXRoLCBhYnNvbHV0ZUZyb20pKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzID0gZXhjZXB0aW9uUGF0aHMubWFwKChleGNlcHRpb25QYXRoKSA9PlxuICAgICAgICAgICAgcGF0aC5yZXNvbHZlKGFic29sdXRlRnJvbSwgZXhjZXB0aW9uUGF0aClcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgaGFzVmFsaWRFeGNlcHRpb25QYXRocyA9IGFic29sdXRlRXhjZXB0aW9uUGF0aHNcbiAgICAgICAgICAgIC5ldmVyeSgoYWJzb2x1dGVFeGNlcHRpb25QYXRoKSA9PiBpc1ZhbGlkRXhjZXB0aW9uUGF0aChhYnNvbHV0ZUZyb20sIGFic29sdXRlRXhjZXB0aW9uUGF0aCkpXG5cbiAgICAgICAgICBpZiAoIWhhc1ZhbGlkRXhjZXB0aW9uUGF0aHMpIHtcbiAgICAgICAgICAgIHJlcG9ydEludmFsaWRFeGNlcHRpb25QYXRoKG5vZGUpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwYXRoSXNFeGNlcHRlZCA9IGFic29sdXRlRXhjZXB0aW9uUGF0aHNcbiAgICAgICAgICAgIC5zb21lKChhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpID0+IGNvbnRhaW5zUGF0aChhYnNvbHV0ZUltcG9ydFBhdGgsIGFic29sdXRlRXhjZXB0aW9uUGF0aCkpXG5cbiAgICAgICAgICBpZiAocGF0aElzRXhjZXB0ZWQpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCBwYXRoIFwie3tpbXBvcnRQYXRofX1cIiBpbXBvcnRlZCBpbiByZXN0cmljdGVkIHpvbmUuJHt6b25lLm1lc3NhZ2UgPyBgICR7em9uZS5tZXNzYWdlfWAgOiAnJ31gLFxuICAgICAgICAgICAgZGF0YTogeyBpbXBvcnRQYXRoIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKG5vZGUuc291cmNlLnZhbHVlLCBub2RlLnNvdXJjZSlcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgICAgIGlmIChpc1N0YXRpY1JlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICBjb25zdCBbIGZpcnN0QXJndW1lbnQgXSA9IG5vZGUuYXJndW1lbnRzXG5cbiAgICAgICAgICBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKGZpcnN0QXJndW1lbnQudmFsdWUsIGZpcnN0QXJndW1lbnQpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZXN0cmljdGVkLXBhdGhzLmpzIl0sIm5hbWVzIjpbImNvbnRhaW5zUGF0aCIsImZpbGVwYXRoIiwidGFyZ2V0IiwicmVsYXRpdmUiLCJwYXRoIiwic3RhcnRzV2l0aCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiem9uZXMiLCJtaW5JdGVtcyIsIml0ZW1zIiwiZnJvbSIsImV4Y2VwdCIsInVuaXF1ZUl0ZW1zIiwibWVzc2FnZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiYmFzZVBhdGgiLCJjcmVhdGUiLCJub1Jlc3RyaWN0ZWRQYXRocyIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzdHJpY3RlZFBhdGhzIiwicHJvY2VzcyIsImN3ZCIsImN1cnJlbnRGaWxlbmFtZSIsImdldEZpbGVuYW1lIiwibWF0Y2hpbmdab25lcyIsImZpbHRlciIsInpvbmUiLCJ0YXJnZXRQYXRoIiwicmVzb2x2ZSIsImlzVmFsaWRFeGNlcHRpb25QYXRoIiwiYWJzb2x1dGVGcm9tUGF0aCIsImFic29sdXRlRXhjZXB0aW9uUGF0aCIsInJlbGF0aXZlRXhjZXB0aW9uUGF0aCIsInJlcG9ydEludmFsaWRFeGNlcHRpb25QYXRoIiwibm9kZSIsInJlcG9ydCIsInpvbmVFeGNlcHRpb25zIiwibWFwIiwiZXhjZXB0aW9uUGF0aHMiLCJhYnNvbHV0ZUZyb20iLCJhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzIiwiZXhjZXB0aW9uUGF0aCIsImhhc1ZhbGlkRXhjZXB0aW9uUGF0aHMiLCJldmVyeSIsImNoZWNrRm9yUmVzdHJpY3RlZEltcG9ydFBhdGgiLCJpbXBvcnRQYXRoIiwiYWJzb2x1dGVJbXBvcnRQYXRoIiwiZm9yRWFjaCIsImluZGV4IiwicGF0aElzRXhjZXB0ZWQiLCJzb21lIiwiZGF0YSIsInNvdXJjZSIsInZhbHVlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiJh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LElBQVosRUFGSSxDQUFQO0FBR0QsR0FsSGMsRUFBakIiLCJmaWxlIjoibm8tcmVzdHJpY3RlZC1wYXRocy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJztcblxuY29uc3QgY29udGFpbnNQYXRoID0gKGZpbGVwYXRoLCB0YXJnZXQpID0+IHtcbiAgY29uc3QgcmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKHRhcmdldCwgZmlsZXBhdGgpO1xuICByZXR1cm4gcmVsYXRpdmUgPT09ICcnIHx8ICFyZWxhdGl2ZS5zdGFydHNXaXRoKCcuLicpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby1yZXN0cmljdGVkLXBhdGhzJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHpvbmVzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHRhcmdldDogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICAgIGZyb206IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgICBleGNlcHQ6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJhc2VQYXRoOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIG5vUmVzdHJpY3RlZFBhdGhzKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9O1xuICAgIGNvbnN0IHJlc3RyaWN0ZWRQYXRocyA9IG9wdGlvbnMuem9uZXMgfHwgW107XG4gICAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zLmJhc2VQYXRoIHx8IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgY3VycmVudEZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpO1xuICAgIGNvbnN0IG1hdGNoaW5nWm9uZXMgPSByZXN0cmljdGVkUGF0aHMuZmlsdGVyKCh6b25lKSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXRQYXRoID0gcGF0aC5yZXNvbHZlKGJhc2VQYXRoLCB6b25lLnRhcmdldCk7XG5cbiAgICAgIHJldHVybiBjb250YWluc1BhdGgoY3VycmVudEZpbGVuYW1lLCB0YXJnZXRQYXRoKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGlzVmFsaWRFeGNlcHRpb25QYXRoKGFic29sdXRlRnJvbVBhdGgsIGFic29sdXRlRXhjZXB0aW9uUGF0aCkge1xuICAgICAgY29uc3QgcmVsYXRpdmVFeGNlcHRpb25QYXRoID0gcGF0aC5yZWxhdGl2ZShhYnNvbHV0ZUZyb21QYXRoLCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpO1xuXG4gICAgICByZXR1cm4gaW1wb3J0VHlwZShyZWxhdGl2ZUV4Y2VwdGlvblBhdGgsIGNvbnRleHQpICE9PSAncGFyZW50JztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXBvcnRJbnZhbGlkRXhjZXB0aW9uUGF0aChub2RlKSB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgIG5vZGUsXG4gICAgICAgIG1lc3NhZ2U6ICdSZXN0cmljdGVkIHBhdGggZXhjZXB0aW9ucyBtdXN0IGJlIGRlc2NlbmRhbnRzIG9mIHRoZSBjb25maWd1cmVkIGBmcm9tYCBwYXRoIGZvciB0aGF0IHpvbmUuJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHpvbmVFeGNlcHRpb25zID0gbWF0Y2hpbmdab25lcy5tYXAoKHpvbmUpID0+IHtcbiAgICAgIGNvbnN0IGV4Y2VwdGlvblBhdGhzID0gem9uZS5leGNlcHQgfHwgW107XG4gICAgICBjb25zdCBhYnNvbHV0ZUZyb20gPSBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHpvbmUuZnJvbSk7XG4gICAgICBjb25zdCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzID0gZXhjZXB0aW9uUGF0aHMubWFwKChleGNlcHRpb25QYXRoKSA9PiBwYXRoLnJlc29sdmUoYWJzb2x1dGVGcm9tLCBleGNlcHRpb25QYXRoKSk7XG4gICAgICBjb25zdCBoYXNWYWxpZEV4Y2VwdGlvblBhdGhzID0gYWJzb2x1dGVFeGNlcHRpb25QYXRoc1xuICAgICAgICAuZXZlcnkoKGFic29sdXRlRXhjZXB0aW9uUGF0aCkgPT4gaXNWYWxpZEV4Y2VwdGlvblBhdGgoYWJzb2x1dGVGcm9tLCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGgpKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWJzb2x1dGVFeGNlcHRpb25QYXRocyxcbiAgICAgICAgaGFzVmFsaWRFeGNlcHRpb25QYXRocyxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKGltcG9ydFBhdGgsIG5vZGUpIHtcbiAgICAgIGNvbnN0IGFic29sdXRlSW1wb3J0UGF0aCA9IHJlc29sdmUoaW1wb3J0UGF0aCwgY29udGV4dCk7XG5cbiAgICAgIGlmICghYWJzb2x1dGVJbXBvcnRQYXRoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbWF0Y2hpbmdab25lcy5mb3JFYWNoKCh6b25lLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBhYnNvbHV0ZUZyb20gPSBwYXRoLnJlc29sdmUoYmFzZVBhdGgsIHpvbmUuZnJvbSk7XG5cbiAgICAgICAgaWYgKCFjb250YWluc1BhdGgoYWJzb2x1dGVJbXBvcnRQYXRoLCBhYnNvbHV0ZUZyb20pKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBoYXNWYWxpZEV4Y2VwdGlvblBhdGhzLCBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzIH0gPSB6b25lRXhjZXB0aW9uc1tpbmRleF07XG5cbiAgICAgICAgaWYgKCFoYXNWYWxpZEV4Y2VwdGlvblBhdGhzKSB7XG4gICAgICAgICAgcmVwb3J0SW52YWxpZEV4Y2VwdGlvblBhdGgobm9kZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGF0aElzRXhjZXB0ZWQgPSBhYnNvbHV0ZUV4Y2VwdGlvblBhdGhzXG4gICAgICAgICAgLnNvbWUoKGFic29sdXRlRXhjZXB0aW9uUGF0aCkgPT4gY29udGFpbnNQYXRoKGFic29sdXRlSW1wb3J0UGF0aCwgYWJzb2x1dGVFeGNlcHRpb25QYXRoKSk7XG5cbiAgICAgICAgaWYgKHBhdGhJc0V4Y2VwdGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgcGF0aCBcInt7aW1wb3J0UGF0aH19XCIgaW1wb3J0ZWQgaW4gcmVzdHJpY3RlZCB6b25lLiR7em9uZS5tZXNzYWdlID8gYCAke3pvbmUubWVzc2FnZX1gIDogJyd9YCxcbiAgICAgICAgICBkYXRhOiB7IGltcG9ydFBhdGggfSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcigoc291cmNlKSA9PiB7XG4gICAgICBjaGVja0ZvclJlc3RyaWN0ZWRJbXBvcnRQYXRoKHNvdXJjZS52YWx1ZSwgc291cmNlKTtcbiAgICB9LCB7IGNvbW1vbmpzOiB0cnVlIH0pO1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-self-import.js b/node_modules/eslint-plugin-import/lib/rules/no-self-import.js index 50951630cb..1b1905c8b5 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-self-import.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-self-import.js @@ -4,7 +4,7 @@ var _resolve = require('eslint-module-utils/resolve');var _resolve2 = _interopRequireDefault(_resolve); -var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire); +var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} function isImportingSelf(context, node, requireName) { @@ -31,15 +31,8 @@ function isImportingSelf(context, node, requireName) { schema: [] }, create: function (context) { - return { - ImportDeclaration(node) { - isImportingSelf(context, node, node.source.value); - }, - CallExpression(node) { - if ((0, _staticRequire2.default)(node)) { - isImportingSelf(context, node, node.arguments[0].value); - } - } }; - + return (0, _moduleVisitor2.default)((source, node) => { + isImportingSelf(context, node, source.value); + }, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1zZWxmLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJpc0ltcG9ydGluZ1NlbGYiLCJjb250ZXh0Iiwibm9kZSIsInJlcXVpcmVOYW1lIiwiZmlsZVBhdGgiLCJnZXRGaWxlbmFtZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwiZGVzY3JpcHRpb24iLCJyZWNvbW1lbmRlZCIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsIkltcG9ydERlY2xhcmF0aW9uIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImFyZ3VtZW50cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxzRDtBQUNBLHNEO0FBQ0EscUM7O0FBRUEsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLElBQWxDLEVBQXdDQyxXQUF4QyxFQUFxRDtBQUNuRCxRQUFNQyxXQUFXSCxRQUFRSSxXQUFSLEVBQWpCOztBQUVBO0FBQ0EsTUFBSUQsYUFBYSxRQUFiLElBQXlCQSxhQUFhLHVCQUFRRCxXQUFSLEVBQXFCRixPQUFyQixDQUExQyxFQUF5RTtBQUN2RUEsWUFBUUssTUFBUixDQUFlO0FBQ1hKLFVBRFc7QUFFWEssZUFBUyx3QkFGRSxFQUFmOztBQUlEO0FBQ0YsQyxDQW5CRDs7O0tBcUJBQyxPQUFPQyxPQUFQLEdBQWlCLEVBQ2ZDLE1BQU07QUFDSkMsVUFBTSxTQURGO0FBRUpDLFVBQU07QUFDSkMsbUJBQWEsdUNBRFQ7QUFFSkMsbUJBQWEsSUFGVDtBQUdKQyxXQUFLLHVCQUFRLGdCQUFSLENBSEQsRUFGRjs7O0FBUUpDLFlBQVEsRUFSSixFQURTOztBQVdmQyxVQUFRLFVBQVVoQixPQUFWLEVBQW1CO0FBQ3pCLFdBQU87QUFDTGlCLHdCQUFrQmhCLElBQWxCLEVBQXdCO0FBQ3RCRix3QkFBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQkEsS0FBS2lCLE1BQUwsQ0FBWUMsS0FBM0M7QUFDRCxPQUhJO0FBSUxDLHFCQUFlbkIsSUFBZixFQUFxQjtBQUNuQixZQUFJLDZCQUFnQkEsSUFBaEIsQ0FBSixFQUEyQjtBQUN6QkYsMEJBQWdCQyxPQUFoQixFQUF5QkMsSUFBekIsRUFBK0JBLEtBQUtvQixTQUFMLENBQWUsQ0FBZixFQUFrQkYsS0FBakQ7QUFDRDtBQUNGLE9BUkksRUFBUDs7QUFVRCxHQXRCYyxFQUFqQiIsImZpbGUiOiJuby1zZWxmLWltcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBGb3JiaWRzIGEgbW9kdWxlIGZyb20gaW1wb3J0aW5nIGl0c2VsZlxuICogQGF1dGhvciBHaW8gZCdBbWVsaW9cbiAqL1xuXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCByZXF1aXJlTmFtZSkge1xuICBjb25zdCBmaWxlUGF0aCA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuXG4gIC8vIElmIHRoZSBpbnB1dCBpcyBmcm9tIHN0ZGluLCB0aGlzIHRlc3QgY2FuJ3QgZmFpbFxuICBpZiAoZmlsZVBhdGggIT09ICc8dGV4dD4nICYmIGZpbGVQYXRoID09PSByZXNvbHZlKHJlcXVpcmVOYW1lLCBjb250ZXh0KSkge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgbWVzc2FnZTogJ01vZHVsZSBpbXBvcnRzIGl0c2VsZi4nLFxuICAgIH0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdGb3JiaWQgYSBtb2R1bGUgZnJvbSBpbXBvcnRpbmcgaXRzZWxmJyxcbiAgICAgIHJlY29tbWVuZGVkOiB0cnVlLFxuICAgICAgdXJsOiBkb2NzVXJsKCduby1zZWxmLWltcG9ydCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgICAgaXNJbXBvcnRpbmdTZWxmKGNvbnRleHQsIG5vZGUsIG5vZGUuc291cmNlLnZhbHVlKVxuICAgICAgfSxcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCBub2RlLmFyZ3VtZW50c1swXS52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1zZWxmLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJpc0ltcG9ydGluZ1NlbGYiLCJjb250ZXh0Iiwibm9kZSIsInJlcXVpcmVOYW1lIiwiZmlsZVBhdGgiLCJnZXRGaWxlbmFtZSIsInJlcG9ydCIsIm1lc3NhZ2UiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwiZGVzY3JpcHRpb24iLCJyZWNvbW1lbmRlZCIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsInNvdXJjZSIsInZhbHVlIiwiY29tbW9uanMiXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0Esc0Q7QUFDQSxrRTtBQUNBLHFDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDQyxJQUFsQyxFQUF3Q0MsV0FBeEMsRUFBcUQ7QUFDbkQsUUFBTUMsV0FBV0gsUUFBUUksV0FBUixFQUFqQjs7QUFFQTtBQUNBLE1BQUlELGFBQWEsUUFBYixJQUF5QkEsYUFBYSx1QkFBUUQsV0FBUixFQUFxQkYsT0FBckIsQ0FBMUMsRUFBeUU7QUFDdkVBLFlBQVFLLE1BQVIsQ0FBZTtBQUNiSixVQURhO0FBRWJLLGVBQVMsd0JBRkksRUFBZjs7QUFJRDtBQUNGLEMsQ0FuQkQ7OztLQXFCQUMsT0FBT0MsT0FBUCxHQUFpQixFQUNmQyxNQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pDLG1CQUFhLHVDQURUO0FBRUpDLG1CQUFhLElBRlQ7QUFHSkMsV0FBSyx1QkFBUSxnQkFBUixDQUhELEVBRkY7OztBQVFKQyxZQUFRLEVBUkosRUFEUzs7QUFXZkMsVUFBUSxVQUFVaEIsT0FBVixFQUFtQjtBQUN6QixXQUFPLDZCQUFjLENBQUNpQixNQUFELEVBQVNoQixJQUFULEtBQWtCO0FBQ3JDRixzQkFBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQmdCLE9BQU9DLEtBQXRDO0FBQ0QsS0FGTSxFQUVKLEVBQUVDLFVBQVUsSUFBWixFQUZJLENBQVA7QUFHRCxHQWZjLEVBQWpCIiwiZmlsZSI6Im5vLXNlbGYtaW1wb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZU92ZXJ2aWV3IEZvcmJpZHMgYSBtb2R1bGUgZnJvbSBpbXBvcnRpbmcgaXRzZWxmXG4gKiBAYXV0aG9yIEdpbyBkJ0FtZWxpb1xuICovXG5cbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSc7XG5pbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbmZ1bmN0aW9uIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCByZXF1aXJlTmFtZSkge1xuICBjb25zdCBmaWxlUGF0aCA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKTtcblxuICAvLyBJZiB0aGUgaW5wdXQgaXMgZnJvbSBzdGRpbiwgdGhpcyB0ZXN0IGNhbid0IGZhaWxcbiAgaWYgKGZpbGVQYXRoICE9PSAnPHRleHQ+JyAmJiBmaWxlUGF0aCA9PT0gcmVzb2x2ZShyZXF1aXJlTmFtZSwgY29udGV4dCkpIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBub2RlLFxuICAgICAgbWVzc2FnZTogJ01vZHVsZSBpbXBvcnRzIGl0c2VsZi4nLFxuICAgIH0pO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRm9yYmlkIGEgbW9kdWxlIGZyb20gaW1wb3J0aW5nIGl0c2VsZicsXG4gICAgICByZWNvbW1lbmRlZDogdHJ1ZSxcbiAgICAgIHVybDogZG9jc1VybCgnbm8tc2VsZi1pbXBvcnQnKSxcbiAgICB9LFxuXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKChzb3VyY2UsIG5vZGUpID0+IHtcbiAgICAgIGlzSW1wb3J0aW5nU2VsZihjb250ZXh0LCBub2RlLCBzb3VyY2UudmFsdWUpO1xuICAgIH0sIHsgY29tbW9uanM6IHRydWUgfSk7XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js b/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js index 1d6d3f3616..4b7bb5c082 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-unassigned-import.js @@ -73,4 +73,4 @@ module.exports = { 'additionalProperties': false }] } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bmFzc2lnbmVkLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJyZXBvcnQiLCJjb250ZXh0Iiwibm9kZSIsIm1lc3NhZ2UiLCJ0ZXN0SXNBbGxvdyIsImdsb2JzIiwiZmlsZW5hbWUiLCJzb3VyY2UiLCJBcnJheSIsImlzQXJyYXkiLCJmaWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiZGlybmFtZSIsImZpbmQiLCJnbG9iIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJ1bmRlZmluZWQiLCJjcmVhdGUiLCJvcHRpb25zIiwiZ2V0RmlsZW5hbWUiLCJpc0FsbG93IiwiYWxsb3ciLCJJbXBvcnREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJsZW5ndGgiLCJ2YWx1ZSIsIkV4cHJlc3Npb25TdGF0ZW1lbnQiLCJleHByZXNzaW9uIiwidHlwZSIsImFyZ3VtZW50cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwiZG9jcyIsInVybCIsInNjaGVtYSJdLCJtYXBwaW5ncyI6ImFBQUEsNEI7QUFDQSxzQzs7QUFFQSxzRDtBQUNBLHFDOztBQUVBLFNBQVNBLE1BQVQsQ0FBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQjtBQUM3QkQsVUFBUUQsTUFBUixDQUFlO0FBQ2JFLFFBRGE7QUFFYkMsYUFBUyxvQ0FGSSxFQUFmOztBQUlEOztBQUVELFNBQVNDLFdBQVQsQ0FBcUJDLEtBQXJCLEVBQTRCQyxRQUE1QixFQUFzQ0MsTUFBdEMsRUFBOEM7QUFDNUMsTUFBSSxDQUFDQyxNQUFNQyxPQUFOLENBQWNKLEtBQWQsQ0FBTCxFQUEyQjtBQUN6QixXQUFPLEtBQVAsQ0FEeUIsQ0FDWjtBQUNkOztBQUVELE1BQUlLLFFBQUo7O0FBRUEsTUFBSUgsT0FBTyxDQUFQLE1BQWMsR0FBZCxJQUFxQkEsT0FBTyxDQUFQLE1BQWMsR0FBdkMsRUFBNEMsQ0FBRTtBQUM1Q0csZUFBV0gsTUFBWDtBQUNELEdBRkQsTUFFTztBQUNMRyxlQUFXQyxlQUFLQyxPQUFMLENBQWFELGVBQUtFLE9BQUwsQ0FBYVAsUUFBYixDQUFiLEVBQXFDQyxNQUFyQyxDQUFYLENBREssQ0FDbUQ7QUFDekQ7O0FBRUQsU0FBT0YsTUFBTVMsSUFBTixDQUFXQztBQUNoQiwyQkFBVUwsUUFBVixFQUFvQkssSUFBcEI7QUFDQSwyQkFBVUwsUUFBVixFQUFvQkMsZUFBS0ssSUFBTCxDQUFVQyxRQUFRQyxHQUFSLEVBQVYsRUFBeUJILElBQXpCLENBQXBCLENBRks7QUFHQUksV0FIUDtBQUlEOztBQUVELFNBQVNDLE1BQVQsQ0FBZ0JuQixPQUFoQixFQUF5QjtBQUN2QixRQUFNb0IsVUFBVXBCLFFBQVFvQixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsUUFBTWYsV0FBV0wsUUFBUXFCLFdBQVIsRUFBakI7QUFDQSxRQUFNQyxVQUFVaEIsVUFBVUgsWUFBWWlCLFFBQVFHLEtBQXBCLEVBQTJCbEIsUUFBM0IsRUFBcUNDLE1BQXJDLENBQTFCOztBQUVBLFNBQU87QUFDTGtCLHNCQUFrQnZCLElBQWxCLEVBQXdCO0FBQ3RCLFVBQUlBLEtBQUt3QixVQUFMLENBQWdCQyxNQUFoQixLQUEyQixDQUEzQixJQUFnQyxDQUFDSixRQUFRckIsS0FBS0ssTUFBTCxDQUFZcUIsS0FBcEIsQ0FBckMsRUFBaUU7QUFDL0Q1QixlQUFPQyxPQUFQLEVBQWdCQyxJQUFoQjtBQUNEO0FBQ0YsS0FMSTtBQU1MMkIsd0JBQW9CM0IsSUFBcEIsRUFBMEI7QUFDeEIsVUFBSUEsS0FBSzRCLFVBQUwsQ0FBZ0JDLElBQWhCLEtBQXlCLGdCQUF6QjtBQUNGLG1DQUFnQjdCLEtBQUs0QixVQUFyQixDQURFO0FBRUYsT0FBQ1AsUUFBUXJCLEtBQUs0QixVQUFMLENBQWdCRSxTQUFoQixDQUEwQixDQUExQixFQUE2QkosS0FBckMsQ0FGSCxFQUVnRDtBQUM5QzVCLGVBQU9DLE9BQVAsRUFBZ0JDLEtBQUs0QixVQUFyQjtBQUNEO0FBQ0YsS0FaSSxFQUFQOztBQWNEOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZkLFFBRGU7QUFFZmUsUUFBTTtBQUNKSixVQUFNLFlBREY7QUFFSkssVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHNCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUTtBQUNOO0FBQ0UsY0FBUSxRQURWO0FBRUUsb0JBQWM7QUFDWiwyQkFBbUIsRUFBRSxRQUFRLENBQUMsU0FBRCxFQUFZLE9BQVosQ0FBVixFQURQO0FBRVosZ0NBQXdCLEVBQUUsUUFBUSxDQUFDLFNBQUQsRUFBWSxPQUFaLENBQVYsRUFGWjtBQUdaLDRCQUFvQixFQUFFLFFBQVEsQ0FBQyxTQUFELEVBQVksT0FBWixDQUFWLEVBSFI7QUFJWixpQkFBUztBQUNQLGtCQUFRLE9BREQ7QUFFUCxtQkFBUztBQUNQLG9CQUFRLFFBREQsRUFGRixFQUpHLEVBRmhCOzs7O0FBYUUsOEJBQXdCLEtBYjFCLEVBRE0sQ0FMSixFQUZTLEVBQWpCIiwiZmlsZSI6Im5vLXVuYXNzaWduZWQtaW1wb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJ1xuXG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSdcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbmZ1bmN0aW9uIHJlcG9ydChjb250ZXh0LCBub2RlKSB7XG4gIGNvbnRleHQucmVwb3J0KHtcbiAgICBub2RlLFxuICAgIG1lc3NhZ2U6ICdJbXBvcnRlZCBtb2R1bGUgc2hvdWxkIGJlIGFzc2lnbmVkJyxcbiAgfSlcbn1cblxuZnVuY3Rpb24gdGVzdElzQWxsb3coZ2xvYnMsIGZpbGVuYW1lLCBzb3VyY2UpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGdsb2JzKSkge1xuICAgIHJldHVybiBmYWxzZSAvLyBkZWZhdWx0IGRvZXNuJ3QgYWxsb3cgYW55IHBhdHRlcm5zXG4gIH1cblxuICBsZXQgZmlsZVBhdGhcblxuICBpZiAoc291cmNlWzBdICE9PSAnLicgJiYgc291cmNlWzBdICE9PSAnLycpIHsgLy8gYSBub2RlIG1vZHVsZVxuICAgIGZpbGVQYXRoID0gc291cmNlXG4gIH0gZWxzZSB7XG4gICAgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSwgc291cmNlKSAvLyBnZXQgc291cmNlIGFic29sdXRlIHBhdGhcbiAgfVxuXG4gIHJldHVybiBnbG9icy5maW5kKGdsb2IgPT4gKFxuICAgIG1pbmltYXRjaChmaWxlUGF0aCwgZ2xvYikgfHxcbiAgICBtaW5pbWF0Y2goZmlsZVBhdGgsIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBnbG9iKSlcbiAgKSkgIT09IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBjcmVhdGUoY29udGV4dCkge1xuICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG4gIGNvbnN0IGZpbGVuYW1lID0gY29udGV4dC5nZXRGaWxlbmFtZSgpXG4gIGNvbnN0IGlzQWxsb3cgPSBzb3VyY2UgPT4gdGVzdElzQWxsb3cob3B0aW9ucy5hbGxvdywgZmlsZW5hbWUsIHNvdXJjZSlcblxuICByZXR1cm4ge1xuICAgIEltcG9ydERlY2xhcmF0aW9uKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLnNwZWNpZmllcnMubGVuZ3RoID09PSAwICYmICFpc0FsbG93KG5vZGUuc291cmNlLnZhbHVlKSkge1xuICAgICAgICByZXBvcnQoY29udGV4dCwgbm9kZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQobm9kZSkge1xuICAgICAgaWYgKG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSAnQ2FsbEV4cHJlc3Npb24nICYmXG4gICAgICAgIGlzU3RhdGljUmVxdWlyZShub2RlLmV4cHJlc3Npb24pICYmXG4gICAgICAgICFpc0FsbG93KG5vZGUuZXhwcmVzc2lvbi5hcmd1bWVudHNbMF0udmFsdWUpKSB7XG4gICAgICAgIHJlcG9ydChjb250ZXh0LCBub2RlLmV4cHJlc3Npb24pXG4gICAgICB9XG4gICAgfSxcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgY3JlYXRlLFxuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tdW5hc3NpZ25lZC1pbXBvcnQnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICAndHlwZSc6ICdvYmplY3QnLFxuICAgICAgICAncHJvcGVydGllcyc6IHtcbiAgICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ29wdGlvbmFsRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnOiB7ICd0eXBlJzogWydib29sZWFuJywgJ2FycmF5J10gfSxcbiAgICAgICAgICAnYWxsb3cnOiB7XG4gICAgICAgICAgICAndHlwZSc6ICdhcnJheScsXG4gICAgICAgICAgICAnaXRlbXMnOiB7XG4gICAgICAgICAgICAgICd0eXBlJzogJ3N0cmluZycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgICdhZGRpdGlvbmFsUHJvcGVydGllcyc6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bmFzc2lnbmVkLWltcG9ydC5qcyJdLCJuYW1lcyI6WyJyZXBvcnQiLCJjb250ZXh0Iiwibm9kZSIsIm1lc3NhZ2UiLCJ0ZXN0SXNBbGxvdyIsImdsb2JzIiwiZmlsZW5hbWUiLCJzb3VyY2UiLCJBcnJheSIsImlzQXJyYXkiLCJmaWxlUGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiZGlybmFtZSIsImZpbmQiLCJnbG9iIiwiam9pbiIsInByb2Nlc3MiLCJjd2QiLCJ1bmRlZmluZWQiLCJjcmVhdGUiLCJvcHRpb25zIiwiZ2V0RmlsZW5hbWUiLCJpc0FsbG93IiwiYWxsb3ciLCJJbXBvcnREZWNsYXJhdGlvbiIsInNwZWNpZmllcnMiLCJsZW5ndGgiLCJ2YWx1ZSIsIkV4cHJlc3Npb25TdGF0ZW1lbnQiLCJleHByZXNzaW9uIiwidHlwZSIsImFyZ3VtZW50cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwiZG9jcyIsInVybCIsInNjaGVtYSJdLCJtYXBwaW5ncyI6ImFBQUEsNEI7QUFDQSxzQzs7QUFFQSxzRDtBQUNBLHFDOztBQUVBLFNBQVNBLE1BQVQsQ0FBZ0JDLE9BQWhCLEVBQXlCQyxJQUF6QixFQUErQjtBQUM3QkQsVUFBUUQsTUFBUixDQUFlO0FBQ2JFLFFBRGE7QUFFYkMsYUFBUyxvQ0FGSSxFQUFmOztBQUlEOztBQUVELFNBQVNDLFdBQVQsQ0FBcUJDLEtBQXJCLEVBQTRCQyxRQUE1QixFQUFzQ0MsTUFBdEMsRUFBOEM7QUFDNUMsTUFBSSxDQUFDQyxNQUFNQyxPQUFOLENBQWNKLEtBQWQsQ0FBTCxFQUEyQjtBQUN6QixXQUFPLEtBQVAsQ0FEeUIsQ0FDWDtBQUNmOztBQUVELE1BQUlLLFFBQUo7O0FBRUEsTUFBSUgsT0FBTyxDQUFQLE1BQWMsR0FBZCxJQUFxQkEsT0FBTyxDQUFQLE1BQWMsR0FBdkMsRUFBNEMsQ0FBRTtBQUM1Q0csZUFBV0gsTUFBWDtBQUNELEdBRkQsTUFFTztBQUNMRyxlQUFXQyxlQUFLQyxPQUFMLENBQWFELGVBQUtFLE9BQUwsQ0FBYVAsUUFBYixDQUFiLEVBQXFDQyxNQUFyQyxDQUFYLENBREssQ0FDb0Q7QUFDMUQ7O0FBRUQsU0FBT0YsTUFBTVMsSUFBTixDQUFXQztBQUNoQiwyQkFBVUwsUUFBVixFQUFvQkssSUFBcEI7QUFDQSwyQkFBVUwsUUFBVixFQUFvQkMsZUFBS0ssSUFBTCxDQUFVQyxRQUFRQyxHQUFSLEVBQVYsRUFBeUJILElBQXpCLENBQXBCLENBRks7QUFHQUksV0FIUDtBQUlEOztBQUVELFNBQVNDLE1BQVQsQ0FBZ0JuQixPQUFoQixFQUF5QjtBQUN2QixRQUFNb0IsVUFBVXBCLFFBQVFvQixPQUFSLENBQWdCLENBQWhCLEtBQXNCLEVBQXRDO0FBQ0EsUUFBTWYsV0FBV0wsUUFBUXFCLFdBQVIsRUFBakI7QUFDQSxRQUFNQyxVQUFVaEIsVUFBVUgsWUFBWWlCLFFBQVFHLEtBQXBCLEVBQTJCbEIsUUFBM0IsRUFBcUNDLE1BQXJDLENBQTFCOztBQUVBLFNBQU87QUFDTGtCLHNCQUFrQnZCLElBQWxCLEVBQXdCO0FBQ3RCLFVBQUlBLEtBQUt3QixVQUFMLENBQWdCQyxNQUFoQixLQUEyQixDQUEzQixJQUFnQyxDQUFDSixRQUFRckIsS0FBS0ssTUFBTCxDQUFZcUIsS0FBcEIsQ0FBckMsRUFBaUU7QUFDL0Q1QixlQUFPQyxPQUFQLEVBQWdCQyxJQUFoQjtBQUNEO0FBQ0YsS0FMSTtBQU1MMkIsd0JBQW9CM0IsSUFBcEIsRUFBMEI7QUFDeEIsVUFBSUEsS0FBSzRCLFVBQUwsQ0FBZ0JDLElBQWhCLEtBQXlCLGdCQUF6QjtBQUNGLG1DQUFnQjdCLEtBQUs0QixVQUFyQixDQURFO0FBRUYsT0FBQ1AsUUFBUXJCLEtBQUs0QixVQUFMLENBQWdCRSxTQUFoQixDQUEwQixDQUExQixFQUE2QkosS0FBckMsQ0FGSCxFQUVnRDtBQUM5QzVCLGVBQU9DLE9BQVAsRUFBZ0JDLEtBQUs0QixVQUFyQjtBQUNEO0FBQ0YsS0FaSSxFQUFQOztBQWNEOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZkLFFBRGU7QUFFZmUsUUFBTTtBQUNKSixVQUFNLFlBREY7QUFFSkssVUFBTTtBQUNKQyxXQUFLLHVCQUFRLHNCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUTtBQUNOO0FBQ0UsY0FBUSxRQURWO0FBRUUsb0JBQWM7QUFDWiwyQkFBbUIsRUFBRSxRQUFRLENBQUMsU0FBRCxFQUFZLE9BQVosQ0FBVixFQURQO0FBRVosZ0NBQXdCLEVBQUUsUUFBUSxDQUFDLFNBQUQsRUFBWSxPQUFaLENBQVYsRUFGWjtBQUdaLDRCQUFvQixFQUFFLFFBQVEsQ0FBQyxTQUFELEVBQVksT0FBWixDQUFWLEVBSFI7QUFJWixpQkFBUztBQUNQLGtCQUFRLE9BREQ7QUFFUCxtQkFBUztBQUNQLG9CQUFRLFFBREQsRUFGRixFQUpHLEVBRmhCOzs7O0FBYUUsOEJBQXdCLEtBYjFCLEVBRE0sQ0FMSixFQUZTLEVBQWpCIiwiZmlsZSI6Im5vLXVuYXNzaWduZWQtaW1wb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgbWluaW1hdGNoIGZyb20gJ21pbmltYXRjaCc7XG5cbmltcG9ydCBpc1N0YXRpY1JlcXVpcmUgZnJvbSAnLi4vY29yZS9zdGF0aWNSZXF1aXJlJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG5mdW5jdGlvbiByZXBvcnQoY29udGV4dCwgbm9kZSkge1xuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbm9kZSxcbiAgICBtZXNzYWdlOiAnSW1wb3J0ZWQgbW9kdWxlIHNob3VsZCBiZSBhc3NpZ25lZCcsXG4gIH0pO1xufVxuXG5mdW5jdGlvbiB0ZXN0SXNBbGxvdyhnbG9icywgZmlsZW5hbWUsIHNvdXJjZSkge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoZ2xvYnMpKSB7XG4gICAgcmV0dXJuIGZhbHNlOyAvLyBkZWZhdWx0IGRvZXNuJ3QgYWxsb3cgYW55IHBhdHRlcm5zXG4gIH1cblxuICBsZXQgZmlsZVBhdGg7XG5cbiAgaWYgKHNvdXJjZVswXSAhPT0gJy4nICYmIHNvdXJjZVswXSAhPT0gJy8nKSB7IC8vIGEgbm9kZSBtb2R1bGVcbiAgICBmaWxlUGF0aCA9IHNvdXJjZTtcbiAgfSBlbHNlIHtcbiAgICBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUoZmlsZW5hbWUpLCBzb3VyY2UpOyAvLyBnZXQgc291cmNlIGFic29sdXRlIHBhdGhcbiAgfVxuXG4gIHJldHVybiBnbG9icy5maW5kKGdsb2IgPT4gKFxuICAgIG1pbmltYXRjaChmaWxlUGF0aCwgZ2xvYikgfHxcbiAgICBtaW5pbWF0Y2goZmlsZVBhdGgsIHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBnbG9iKSlcbiAgKSkgIT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKGNvbnRleHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fTtcbiAgY29uc3QgZmlsZW5hbWUgPSBjb250ZXh0LmdldEZpbGVuYW1lKCk7XG4gIGNvbnN0IGlzQWxsb3cgPSBzb3VyY2UgPT4gdGVzdElzQWxsb3cob3B0aW9ucy5hbGxvdywgZmlsZW5hbWUsIHNvdXJjZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBJbXBvcnREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCA9PT0gMCAmJiAhaXNBbGxvdyhub2RlLnNvdXJjZS52YWx1ZSkpIHtcbiAgICAgICAgcmVwb3J0KGNvbnRleHQsIG5vZGUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgRXhwcmVzc2lvblN0YXRlbWVudChub2RlKSB7XG4gICAgICBpZiAobm9kZS5leHByZXNzaW9uLnR5cGUgPT09ICdDYWxsRXhwcmVzc2lvbicgJiZcbiAgICAgICAgaXNTdGF0aWNSZXF1aXJlKG5vZGUuZXhwcmVzc2lvbikgJiZcbiAgICAgICAgIWlzQWxsb3cobm9kZS5leHByZXNzaW9uLmFyZ3VtZW50c1swXS52YWx1ZSkpIHtcbiAgICAgICAgcmVwb3J0KGNvbnRleHQsIG5vZGUuZXhwcmVzc2lvbik7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNyZWF0ZSxcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXVuYXNzaWduZWQtaW1wb3J0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgJ3R5cGUnOiAnb2JqZWN0JyxcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XG4gICAgICAgICAgJ2RldkRlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdvcHRpb25hbERlcGVuZGVuY2llcyc6IHsgJ3R5cGUnOiBbJ2Jvb2xlYW4nLCAnYXJyYXknXSB9LFxuICAgICAgICAgICdwZWVyRGVwZW5kZW5jaWVzJzogeyAndHlwZSc6IFsnYm9vbGVhbicsICdhcnJheSddIH0sXG4gICAgICAgICAgJ2FsbG93Jzoge1xuICAgICAgICAgICAgJ3R5cGUnOiAnYXJyYXknLFxuICAgICAgICAgICAgJ2l0ZW1zJzoge1xuICAgICAgICAgICAgICAndHlwZSc6ICdzdHJpbmcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAnYWRkaXRpb25hbFByb3BlcnRpZXMnOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js b/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js index a3f65be4eb..60ad151253 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-unresolved.js @@ -46,4 +46,4 @@ var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_doc return (0, _moduleVisitor2.default)(checkSourceValue, context.options[0]); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnJlc29sdmVkLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjYXNlU2Vuc2l0aXZlIiwiZGVmYXVsdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NvdXJjZVZhbHVlIiwic291cmNlIiwic2hvdWxkQ2hlY2tDYXNlIiwiQ0FTRV9TRU5TSVRJVkVfRlMiLCJvcHRpb25zIiwicmVzb2x2ZWRQYXRoIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJyZXBvcnQiLCJjYWNoZVNldHRpbmdzIiwiTW9kdWxlQ2FjaGUiLCJnZXRTZXR0aW5ncyIsInNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBLHNEO0FBQ0EsOEQ7QUFDQSxrRTtBQUNBLHFDLCtJQVJBOzs7dUxBVUFBLE9BQU9DLE9BQVAsR0FBaUIsRUFDZkMsTUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLGVBQVIsQ0FERCxFQUZGOzs7QUFNSkMsWUFBUSxDQUFFLHNDQUFrQjtBQUMxQkMscUJBQWUsRUFBRUosTUFBTSxTQUFSLEVBQW1CSyxTQUFTLElBQTVCLEVBRFcsRUFBbEIsQ0FBRixDQU5KLEVBRFM7Ozs7QUFZZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1COztBQUV6QixhQUFTQyxnQkFBVCxDQUEwQkMsTUFBMUIsRUFBa0M7QUFDaEMsWUFBTUMsa0JBQWtCLENBQUNDLDBCQUFEO0FBQ3JCLE9BQUNKLFFBQVFLLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBRCxJQUF1QkwsUUFBUUssT0FBUixDQUFnQixDQUFoQixFQUFtQlIsYUFBbkIsS0FBcUMsS0FEdkMsQ0FBeEI7O0FBR0EsWUFBTVMsZUFBZSx1QkFBUUosT0FBT0ssS0FBZixFQUFzQlAsT0FBdEIsQ0FBckI7O0FBRUEsVUFBSU0saUJBQWlCRSxTQUFyQixFQUFnQztBQUM5QlIsZ0JBQVFTLE1BQVIsQ0FBZVAsTUFBZjtBQUNHLDZDQUFvQ0EsT0FBT0ssS0FBTSxJQURwRDtBQUVELE9BSEQ7O0FBS0ssVUFBSUosZUFBSixFQUFxQjtBQUN4QixjQUFNTyxnQkFBZ0JDLHNCQUFZQyxXQUFaLENBQXdCWixRQUFRYSxRQUFoQyxDQUF0QjtBQUNBLFlBQUksQ0FBQyxxQ0FBdUJQLFlBQXZCLEVBQXFDSSxhQUFyQyxDQUFMLEVBQTBEO0FBQ3hEVixrQkFBUVMsTUFBUixDQUFlUCxNQUFmO0FBQ0csdUJBQVlBLE9BQU9LLEtBQU0sNENBRDVCO0FBRUQ7O0FBRUY7QUFDRjs7QUFFRCxXQUFPLDZCQUFjTixnQkFBZCxFQUFnQ0QsUUFBUUssT0FBUixDQUFnQixDQUFoQixDQUFoQyxDQUFQOztBQUVELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLXVucmVzb2x2ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IGFuIGltcG9ydGVkIHBhdGggZXhpc3RzLCBnaXZlbiByZXNvbHV0aW9uIHJ1bGVzLlxuICogQGF1dGhvciBCZW4gTW9zaGVyXG4gKi9cblxuaW1wb3J0IHJlc29sdmUsIHsgQ0FTRV9TRU5TSVRJVkVfRlMsIGZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgTW9kdWxlQ2FjaGUgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9Nb2R1bGVDYWNoZSdcbmltcG9ydCBtb2R1bGVWaXNpdG9yLCB7IG1ha2VPcHRpb25zU2NoZW1hIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJ1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby11bnJlc29sdmVkJyksXG4gICAgfSxcblxuICAgIHNjaGVtYTogWyBtYWtlT3B0aW9uc1NjaGVtYSh7XG4gICAgICBjYXNlU2Vuc2l0aXZlOiB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogdHJ1ZSB9LFxuICAgIH0pXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG5cbiAgICBmdW5jdGlvbiBjaGVja1NvdXJjZVZhbHVlKHNvdXJjZSkge1xuICAgICAgY29uc3Qgc2hvdWxkQ2hlY2tDYXNlID0gIUNBU0VfU0VOU0lUSVZFX0ZTICYmXG4gICAgICAgICghY29udGV4dC5vcHRpb25zWzBdIHx8IGNvbnRleHQub3B0aW9uc1swXS5jYXNlU2Vuc2l0aXZlICE9PSBmYWxzZSlcblxuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShzb3VyY2UudmFsdWUsIGNvbnRleHQpXG5cbiAgICAgIGlmIChyZXNvbHZlZFBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsXG4gICAgICAgICAgYFVuYWJsZSB0byByZXNvbHZlIHBhdGggdG8gbW9kdWxlICcke3NvdXJjZS52YWx1ZX0nLmApXG4gICAgICB9XG5cbiAgICAgIGVsc2UgaWYgKHNob3VsZENoZWNrQ2FzZSkge1xuICAgICAgICBjb25zdCBjYWNoZVNldHRpbmdzID0gTW9kdWxlQ2FjaGUuZ2V0U2V0dGluZ3MoY29udGV4dC5zZXR0aW5ncylcbiAgICAgICAgaWYgKCFmaWxlRXhpc3RzV2l0aENhc2VTeW5jKHJlc29sdmVkUGF0aCwgY2FjaGVTZXR0aW5ncykpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsXG4gICAgICAgICAgICBgQ2FzaW5nIG9mICR7c291cmNlLnZhbHVlfSBkb2VzIG5vdCBtYXRjaCB0aGUgdW5kZXJseWluZyBmaWxlc3lzdGVtLmApXG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrU291cmNlVmFsdWUsIGNvbnRleHQub3B0aW9uc1swXSlcblxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnJlc29sdmVkLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXRhIiwidHlwZSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJjYXNlU2Vuc2l0aXZlIiwiZGVmYXVsdCIsImNyZWF0ZSIsImNvbnRleHQiLCJjaGVja1NvdXJjZVZhbHVlIiwic291cmNlIiwic2hvdWxkQ2hlY2tDYXNlIiwiQ0FTRV9TRU5TSVRJVkVfRlMiLCJvcHRpb25zIiwicmVzb2x2ZWRQYXRoIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJyZXBvcnQiLCJjYWNoZVNldHRpbmdzIiwiTW9kdWxlQ2FjaGUiLCJnZXRTZXR0aW5ncyIsInNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBLHNEO0FBQ0EsOEQ7QUFDQSxrRTtBQUNBLHFDLCtJQVJBOzs7dUxBVUFBLE9BQU9DLE9BQVAsR0FBaUIsRUFDZkMsTUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLGVBQVIsQ0FERCxFQUZGOzs7QUFNSkMsWUFBUSxDQUFFLHNDQUFrQjtBQUMxQkMscUJBQWUsRUFBRUosTUFBTSxTQUFSLEVBQW1CSyxTQUFTLElBQTVCLEVBRFcsRUFBbEIsQ0FBRixDQU5KLEVBRFM7Ozs7QUFZZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1COztBQUV6QixhQUFTQyxnQkFBVCxDQUEwQkMsTUFBMUIsRUFBa0M7QUFDaEMsWUFBTUMsa0JBQWtCLENBQUNDLDBCQUFEO0FBQ3JCLE9BQUNKLFFBQVFLLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBRCxJQUF1QkwsUUFBUUssT0FBUixDQUFnQixDQUFoQixFQUFtQlIsYUFBbkIsS0FBcUMsS0FEdkMsQ0FBeEI7O0FBR0EsWUFBTVMsZUFBZSx1QkFBUUosT0FBT0ssS0FBZixFQUFzQlAsT0FBdEIsQ0FBckI7O0FBRUEsVUFBSU0saUJBQWlCRSxTQUFyQixFQUFnQztBQUM5QlIsZ0JBQVFTLE1BQVIsQ0FBZVAsTUFBZjtBQUNHLDZDQUFvQ0EsT0FBT0ssS0FBTSxJQURwRDtBQUVELE9BSEQ7O0FBS0ssVUFBSUosZUFBSixFQUFxQjtBQUN4QixjQUFNTyxnQkFBZ0JDLHNCQUFZQyxXQUFaLENBQXdCWixRQUFRYSxRQUFoQyxDQUF0QjtBQUNBLFlBQUksQ0FBQyxxQ0FBdUJQLFlBQXZCLEVBQXFDSSxhQUFyQyxDQUFMLEVBQTBEO0FBQ3hEVixrQkFBUVMsTUFBUixDQUFlUCxNQUFmO0FBQ0csdUJBQVlBLE9BQU9LLEtBQU0sNENBRDVCO0FBRUQ7O0FBRUY7QUFDRjs7QUFFRCxXQUFPLDZCQUFjTixnQkFBZCxFQUFnQ0QsUUFBUUssT0FBUixDQUFnQixDQUFoQixDQUFoQyxDQUFQOztBQUVELEdBckNjLEVBQWpCIiwiZmlsZSI6Im5vLXVucmVzb2x2ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IGFuIGltcG9ydGVkIHBhdGggZXhpc3RzLCBnaXZlbiByZXNvbHV0aW9uIHJ1bGVzLlxuICogQGF1dGhvciBCZW4gTW9zaGVyXG4gKi9cblxuaW1wb3J0IHJlc29sdmUsIHsgQ0FTRV9TRU5TSVRJVkVfRlMsIGZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuaW1wb3J0IE1vZHVsZUNhY2hlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvTW9kdWxlQ2FjaGUnO1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IsIHsgbWFrZU9wdGlvbnNTY2hlbWEgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3Byb2JsZW0nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnbm8tdW5yZXNvbHZlZCcpLFxuICAgIH0sXG5cbiAgICBzY2hlbWE6IFsgbWFrZU9wdGlvbnNTY2hlbWEoe1xuICAgICAgY2FzZVNlbnNpdGl2ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IHRydWUgfSxcbiAgICB9KV0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHNob3VsZENoZWNrQ2FzZSA9ICFDQVNFX1NFTlNJVElWRV9GUyAmJlxuICAgICAgICAoIWNvbnRleHQub3B0aW9uc1swXSB8fCBjb250ZXh0Lm9wdGlvbnNbMF0uY2FzZVNlbnNpdGl2ZSAhPT0gZmFsc2UpO1xuXG4gICAgICBjb25zdCByZXNvbHZlZFBhdGggPSByZXNvbHZlKHNvdXJjZS52YWx1ZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZXNvbHZlZFBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChzb3VyY2UsXG4gICAgICAgICAgYFVuYWJsZSB0byByZXNvbHZlIHBhdGggdG8gbW9kdWxlICcke3NvdXJjZS52YWx1ZX0nLmApO1xuICAgICAgfVxuXG4gICAgICBlbHNlIGlmIChzaG91bGRDaGVja0Nhc2UpIHtcbiAgICAgICAgY29uc3QgY2FjaGVTZXR0aW5ncyA9IE1vZHVsZUNhY2hlLmdldFNldHRpbmdzKGNvbnRleHQuc2V0dGluZ3MpO1xuICAgICAgICBpZiAoIWZpbGVFeGlzdHNXaXRoQ2FzZVN5bmMocmVzb2x2ZWRQYXRoLCBjYWNoZVNldHRpbmdzKSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHNvdXJjZSxcbiAgICAgICAgICAgIGBDYXNpbmcgb2YgJHtzb3VyY2UudmFsdWV9IGRvZXMgbm90IG1hdGNoIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0uYCk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVWaXNpdG9yKGNoZWNrU291cmNlVmFsdWUsIGNvbnRleHQub3B0aW9uc1swXSk7XG5cbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js index d75c7ef1ee..df417818c5 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js @@ -63,8 +63,8 @@ const IMPORT_DEFAULT_SPECIFIER = 'ImportDefaultSpecifier'; const VARIABLE_DECLARATION = 'VariableDeclaration'; const FUNCTION_DECLARATION = 'FunctionDeclaration'; const CLASS_DECLARATION = 'ClassDeclaration'; -const INTERFACE_DECLARATION = 'InterfaceDeclaration'; -const TYPE_ALIAS = 'TypeAlias'; +const IDENTIFIER = 'Identifier'; +const OBJECT_PATTERN = 'ObjectPattern'; const TS_INTERFACE_DECLARATION = 'TSInterfaceDeclaration'; const TS_TYPE_ALIAS_DECLARATION = 'TSTypeAliasDeclaration'; const TS_ENUM_DECLARATION = 'TSEnumDeclaration'; @@ -75,8 +75,6 @@ function forEachDeclarationIdentifier(declaration, cb) { if ( declaration.type === FUNCTION_DECLARATION || declaration.type === CLASS_DECLARATION || - declaration.type === INTERFACE_DECLARATION || - declaration.type === TYPE_ALIAS || declaration.type === TS_INTERFACE_DECLARATION || declaration.type === TS_TYPE_ALIAS_DECLARATION || declaration.type === TS_ENUM_DECLARATION) @@ -84,7 +82,15 @@ function forEachDeclarationIdentifier(declaration, cb) { cb(declaration.id.name); } else if (declaration.type === VARIABLE_DECLARATION) { declaration.declarations.forEach((_ref2) => {let id = _ref2.id; - cb(id.name); + if (id.type === OBJECT_PATTERN) { + (0, _ExportMap.recursivePatternCapture)(id, pattern => { + if (pattern.type === IDENTIFIER) { + cb(pattern.name); + } + }); + } else { + cb(id.name); + } }); } } @@ -118,7 +124,7 @@ const importList = new Map(); * keys are the paths to the modules containing the exports, while the * lower-level Map keys are the specific identifiers or special AST node names * being exported. The leaf-level metadata object at the moment only contains a - * `whereUsed` propoerty, which contains a Set of paths to modules that import + * `whereUsed` property, which contains a Set of paths to modules that import * the name. * * For example, if we have a file named bar.js containing the following exports: @@ -220,12 +226,10 @@ const prepareImportsAndExports = (srcFiles, context) => { if (isNodeModule(key)) { return; } - let localImport = imports.get(key); - if (typeof localImport !== 'undefined') { - localImport = new Set([].concat(_toConsumableArray(localImport), _toConsumableArray(value.importedSpecifiers))); - } else { - localImport = value.importedSpecifiers; - } + const localImport = imports.get(key) || new Set(); + value.declarations.forEach((_ref6) => {let importedSpecifiers = _ref6.importedSpecifiers;return ( + importedSpecifiers.forEach(specifier => localImport.add(specifier)));}); + imports.set(key, localImport); }); importList.set(file, imports); @@ -322,10 +326,10 @@ const doPreparation = (src, ignoreExports, context) => { }; const newNamespaceImportExists = specifiers => -specifiers.some((_ref6) => {let type = _ref6.type;return type === IMPORT_NAMESPACE_SPECIFIER;}); +specifiers.some((_ref7) => {let type = _ref7.type;return type === IMPORT_NAMESPACE_SPECIFIER;}); const newDefaultImportExists = specifiers => -specifiers.some((_ref7) => {let type = _ref7.type;return type === IMPORT_DEFAULT_SPECIFIER;}); +specifiers.some((_ref8) => {let type = _ref8.type;return type === IMPORT_DEFAULT_SPECIFIER;}); const fileIsInPkg = file => {var _readPkgUp$sync = _readPkgUp2.default.sync({ cwd: file, normalize: false });const path = _readPkgUp$sync.path,pkg = _readPkgUp$sync.pkg; @@ -447,13 +451,13 @@ module.exports = { - create: context => {var _ref8 = + create: context => {var _ref9 = - context.options[0] || {};const src = _ref8.src;var _ref8$ignoreExports = _ref8.ignoreExports;const ignoreExports = _ref8$ignoreExports === undefined ? [] : _ref8$ignoreExports,missingExports = _ref8.missingExports,unusedExports = _ref8.unusedExports; + context.options[0] || {};const src = _ref9.src;var _ref9$ignoreExports = _ref9.ignoreExports;const ignoreExports = _ref9$ignoreExports === undefined ? [] : _ref9$ignoreExports,missingExports = _ref9.missingExports,unusedExports = _ref9.unusedExports; if (unusedExports) { doPreparation(src, ignoreExports, context); @@ -572,7 +576,7 @@ module.exports = { const newExports = new Map(); const newExportIdentifiers = new Set(); - node.body.forEach((_ref9) => {let type = _ref9.type,declaration = _ref9.declaration,specifiers = _ref9.specifiers; + node.body.forEach((_ref10) => {let type = _ref10.type,declaration = _ref10.declaration,specifiers = _ref10.specifiers; if (type === EXPORT_DEFAULT_DECLARATION) { newExportIdentifiers.add(IMPORT_DEFAULT_SPECIFIER); } @@ -605,7 +609,7 @@ module.exports = { }); // preserve information about namespace imports - let exportAll = exports.get(EXPORT_ALL_DECLARATION); + const exportAll = exports.get(EXPORT_ALL_DECLARATION); let namespaceImports = exports.get(IMPORT_NAMESPACE_SPECIFIER); if (typeof namespaceImports === 'undefined') { @@ -904,4 +908,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnVzZWQtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJsaXN0RmlsZXNUb1Byb2Nlc3MiLCJGaWxlRW51bWVyYXRvciIsInJlcXVpcmUiLCJzcmMiLCJleHRlbnNpb25zIiwiZSIsIkFycmF5IiwiZnJvbSIsIml0ZXJhdGVGaWxlcyIsImZpbGVQYXRoIiwiaWdub3JlZCIsImZpbGVuYW1lIiwiZTEiLCJvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyIsImUyIiwicGF0dGVybnMiLCJyZWR1Y2UiLCJjYXJyeSIsInBhdHRlcm4iLCJjb25jYXQiLCJtYXAiLCJleHRlbnNpb24iLCJ0ZXN0Iiwic2xpY2UiLCJFWFBPUlRfREVGQVVMVF9ERUNMQVJBVElPTiIsIkVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTiIsIkVYUE9SVF9BTExfREVDTEFSQVRJT04iLCJJTVBPUlRfREVDTEFSQVRJT04iLCJJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiIsIklNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OIiwiRlVOQ1RJT05fREVDTEFSQVRJT04iLCJDTEFTU19ERUNMQVJBVElPTiIsIklOVEVSRkFDRV9ERUNMQVJBVElPTiIsIlRZUEVfQUxJQVMiLCJUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04iLCJUU19UWVBFX0FMSUFTX0RFQ0xBUkFUSU9OIiwiVFNfRU5VTV9ERUNMQVJBVElPTiIsIkRFRkFVTFQiLCJmb3JFYWNoRGVjbGFyYXRpb25JZGVudGlmaWVyIiwiZGVjbGFyYXRpb24iLCJjYiIsInR5cGUiLCJpZCIsIm5hbWUiLCJkZWNsYXJhdGlvbnMiLCJmb3JFYWNoIiwiaW1wb3J0TGlzdCIsIk1hcCIsImV4cG9ydExpc3QiLCJpZ25vcmVkRmlsZXMiLCJTZXQiLCJmaWxlc091dHNpZGVTcmMiLCJpc05vZGVNb2R1bGUiLCJwYXRoIiwicmVzb2x2ZUZpbGVzIiwiaWdub3JlRXhwb3J0cyIsImNvbnRleHQiLCJzZXR0aW5ncyIsInNyY0ZpbGVzIiwic3JjRmlsZUxpc3QiLCJpZ25vcmVkRmlsZXNMaXN0IiwiYWRkIiwiZmlsdGVyIiwicHJlcGFyZUltcG9ydHNBbmRFeHBvcnRzIiwiZXhwb3J0QWxsIiwiZmlsZSIsImV4cG9ydHMiLCJpbXBvcnRzIiwiY3VycmVudEV4cG9ydHMiLCJFeHBvcnRzIiwiZ2V0IiwiZGVwZW5kZW5jaWVzIiwicmVleHBvcnRzIiwibG9jYWxJbXBvcnRMaXN0IiwibmFtZXNwYWNlIiwiY3VycmVudEV4cG9ydEFsbCIsImdldERlcGVuZGVuY3kiLCJkZXBlbmRlbmN5Iiwic2V0IiwidmFsdWUiLCJrZXkiLCJ3aGVyZVVzZWQiLCJyZWV4cG9ydCIsImdldEltcG9ydCIsImxvY2FsSW1wb3J0IiwiY3VycmVudFZhbHVlIiwibG9jYWwiLCJpbXBvcnRlZFNwZWNpZmllcnMiLCJoYXMiLCJ2YWwiLCJjdXJyZW50RXhwb3J0IiwiZGV0ZXJtaW5lVXNhZ2UiLCJsaXN0VmFsdWUiLCJsaXN0S2V5IiwiY3VycmVudEltcG9ydCIsInNwZWNpZmllciIsImV4cG9ydFN0YXRlbWVudCIsImdldFNyYyIsInByb2Nlc3MiLCJjd2QiLCJsYXN0UHJlcGFyZUtleSIsImRvUHJlcGFyYXRpb24iLCJwcmVwYXJlS2V5IiwiSlNPTiIsInN0cmluZ2lmeSIsInNvcnQiLCJjbGVhciIsIm5ld05hbWVzcGFjZUltcG9ydEV4aXN0cyIsInNwZWNpZmllcnMiLCJzb21lIiwibmV3RGVmYXVsdEltcG9ydEV4aXN0cyIsImZpbGVJc0luUGtnIiwicmVhZFBrZ1VwIiwic3luYyIsIm5vcm1hbGl6ZSIsInBrZyIsImJhc2VQYXRoIiwiY2hlY2tQa2dGaWVsZFN0cmluZyIsInBrZ0ZpZWxkIiwiY2hlY2tQa2dGaWVsZE9iamVjdCIsInBrZ0ZpZWxkRmlsZXMiLCJjaGVja1BrZ0ZpZWxkIiwicHJpdmF0ZSIsImJpbiIsImJyb3dzZXIiLCJtYWluIiwibW9kdWxlIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiZGVzY3JpcHRpb24iLCJtaW5JdGVtcyIsIml0ZW1zIiwibWluTGVuZ3RoIiwibWlzc2luZ0V4cG9ydHMiLCJ1bnVzZWRFeHBvcnRzIiwibm90IiwiZW51bSIsImFueU9mIiwicmVxdWlyZWQiLCJjcmVhdGUiLCJvcHRpb25zIiwiZ2V0RmlsZW5hbWUiLCJjaGVja0V4cG9ydFByZXNlbmNlIiwibm9kZSIsImV4cG9ydENvdW50IiwibmFtZXNwYWNlSW1wb3J0cyIsImRlbGV0ZSIsInNpemUiLCJyZXBvcnQiLCJib2R5IiwiY2hlY2tVc2FnZSIsImV4cG9ydGVkVmFsdWUiLCJleHBvcnRzS2V5IiwidXBkYXRlRXhwb3J0VXNhZ2UiLCJuZXdFeHBvcnRzIiwibmV3RXhwb3J0SWRlbnRpZmllcnMiLCJsZW5ndGgiLCJleHBvcnRlZCIsInVwZGF0ZUltcG9ydFVzYWdlIiwib2xkSW1wb3J0UGF0aHMiLCJvbGROYW1lc3BhY2VJbXBvcnRzIiwibmV3TmFtZXNwYWNlSW1wb3J0cyIsIm9sZEV4cG9ydEFsbCIsIm5ld0V4cG9ydEFsbCIsIm9sZERlZmF1bHRJbXBvcnRzIiwibmV3RGVmYXVsdEltcG9ydHMiLCJvbGRJbXBvcnRzIiwibmV3SW1wb3J0cyIsImFzdE5vZGUiLCJyZXNvbHZlZFBhdGgiLCJzb3VyY2UiLCJyYXciLCJyZXBsYWNlIiwiaW1wb3J0ZWQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLHlDO0FBQ0E7QUFDQSxzRDtBQUNBLHFDO0FBQ0E7QUFDQSx3QztBQUNBLHVDO0FBQ0EsK0MsbVZBYkE7Ozs7c1lBZUE7QUFDQTtBQUNBLElBQUlBLGtCQUFKLENBQ0EsSUFBSSxDQUNGLE1BQU1DLGlCQUFpQkMsUUFBUSx1Q0FBUixFQUFpREQsY0FBeEU7QUFDQUQsdUJBQXFCLFVBQVVHLEdBQVYsRUFBZUMsVUFBZixFQUEyQjtBQUM5QyxVQUFNQyxJQUFJLElBQUlKLGNBQUosQ0FBbUI7QUFDM0JHLGtCQUFZQSxVQURlLEVBQW5CLENBQVY7O0FBR0EsV0FBT0UsTUFBTUMsSUFBTixD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cEYsSUFBL0I7QUFDRDtBQUNGO0FBQ0Y7QUFDRixPQWJEO0FBY0QsS0FyUUQ7O0FBdVFBLFdBQU87QUFDTCxzQkFBZ0JpRixRQUFRO0FBQ3RCVSwwQkFBa0JWLElBQWxCO0FBQ0FlLDBCQUFrQmYsSUFBbEI7QUFDQUQsNEJBQW9CQyxJQUFwQjtBQUNELE9BTEk7QUFNTCxrQ0FBNEJBLFFBQVE7QUFDbENPLG1CQUFXUCxJQUFYLEVBQWlCdEgsd0JBQWpCO0FBQ0QsT0FSSTtBQVNMLGdDQUEwQnNILFFBQVE7QUFDaENBLGFBQUt0QyxVQUFMLENBQWdCL0QsT0FBaEIsQ0FBd0JrRCxhQUFhO0FBQ2pDMEQscUJBQVdQLElBQVgsRUFBaUJuRCxVQUFVaUUsUUFBVixDQUFtQnJILElBQXBDO0FBQ0gsU0FGRDtBQUdBTCxxQ0FBNkI0RyxLQUFLM0csV0FBbEMsRUFBZ0RJLElBQUQsSUFBVTtBQUN2RDhHLHFCQUFXUCxJQUFYLEVBQWlCdkcsSUFBakI7QUFDRCxTQUZEO0FBR0QsT0FoQkksRUFBUDs7QUFrQkQsR0E1Z0JjLEVBQWpCIiwiZmlsZSI6Im5vLXVudXNlZC1tb2R1bGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZU92ZXJ2aWV3IEVuc3VyZXMgdGhhdCBtb2R1bGVzIGNvbnRhaW4gZXhwb3J0cyBhbmQvb3IgYWxsXG4gKiBtb2R1bGVzIGFyZSBjb25zdW1lZCB3aXRoaW4gb3RoZXIgbW9kdWxlcy5cbiAqIEBhdXRob3IgUmVuw6kgRmVybWFublxuICovXG5cbmltcG9ydCBFeHBvcnRzIGZyb20gJy4uL0V4cG9ydE1hcCdcbmltcG9ydCB7IGdldEZpbGVFeHRlbnNpb25zIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9pZ25vcmUnXG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgcmVhZFBrZ1VwIGZyb20gJ3JlYWQtcGtnLXVwJ1xuaW1wb3J0IHZhbHVlcyBmcm9tICdvYmplY3QudmFsdWVzJ1xuaW1wb3J0IGluY2x1ZGVzIGZyb20gJ2FycmF5LWluY2x1ZGVzJ1xuXG4vLyBlc2xpbnQvbGliL3V0aWwvZ2xvYi11dGlsIGhhcyBiZWVuIG1vdmVkIHRvIGVzbGludC9saWIvdXRpbC9nbG9iLXV0aWxzIHdpdGggdmVyc2lvbiA1LjNcbi8vIGFuZCBoYXMgYmVlbiBtb3ZlZCB0byBlc2xpbnQvbGliL2NsaS1lbmdpbmUvZmlsZS1lbnVtZXJhdG9yIGluIHZlcnNpb24gNlxubGV0IGxpc3RGaWxlc1RvUHJvY2Vzc1xudHJ5IHtcbiAgY29uc3QgRmlsZUVudW1lcmF0b3IgPSByZXF1aXJlKCdlc2xpbnQvbGliL2NsaS1lbmdpbmUvZmlsZS1lbnVtZXJhdG9yJykuRmlsZUVudW1lcmF0b3JcbiAgbGlzdEZpbGVzVG9Qcm9jZXNzID0gZnVuY3Rpb24gKHNyYywgZXh0ZW5zaW9ucykge1xuICAgIGNvbnN0IGUgPSBuZXcgRmlsZUVudW1lcmF0b3Ioe1xuICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyxcbiAgICB9KVxuICAgIHJldHVybiBBcnJheS5mcm9tKGUuaXRlcmF0ZUZpbGVzKHNyYyksICh7IGZpbGVQYXRoLCBpZ25vcmVkIH0pID0+ICh7XG4gICAgICBpZ25vcmVkLFxuICAgICAgZmlsZW5hbWU6IGZpbGVQYXRoLFxuICAgIH0pKVxuICB9XG59IGNhdGNoIChlMSkge1xuICAvLyBQcmV2ZW50IHBhc3NpbmcgaW52YWxpZCBvcHRpb25zIChleHRlbnNpb25zIGFycmF5KSB0byBvbGQgdmVyc2lvbnMgb2YgdGhlIGZ1bmN0aW9uLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9ibG9iL3Y1LjE2LjAvbGliL3V0aWwvZ2xvYi11dGlscy5qcyNMMTc4LUwyODBcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2VzbGludC9lc2xpbnQvYmxvYi92NS4yLjAvbGliL3V0aWwvZ2xvYi11dGlsLmpzI0wxNzQtTDI2OVxuICBsZXQgb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3NcbiAgdHJ5IHtcbiAgICBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyA9IHJlcXVpcmUoJ2VzbGludC9saWIvdXRpbC9nbG9iLXV0aWxzJykubGlzdEZpbGVzVG9Qcm9jZXNzXG4gICAgbGlzdEZpbGVzVG9Qcm9jZXNzID0gZnVuY3Rpb24gKHNyYywgZXh0ZW5zaW9ucykge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsTGlzdEZpbGVzVG9Qcm9jZXNzKHNyYywge1xuICAgICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zLFxuICAgICAgfSlcbiAgICB9XG4gIH0gY2F0Y2ggKGUyKSB7XG4gICAgb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3MgPSByZXF1aXJlKCdlc2xpbnQvbGliL3V0aWwvZ2xvYi11dGlsJykubGlzdEZpbGVzVG9Qcm9jZXNzXG5cbiAgICBsaXN0RmlsZXNUb1Byb2Nlc3MgPSBmdW5jdGlvbiAoc3JjLCBleHRlbnNpb25zKSB7XG4gICAgICBjb25zdCBwYXR0ZXJucyA9IHNyYy5yZWR1Y2UoKGNhcnJ5LCBwYXR0ZXJuKSA9PiB7XG4gICAgICAgIHJldHVybiBjYXJyeS5jb25jYXQoZXh0ZW5zaW9ucy5tYXAoKGV4dGVuc2lvbikgPT4ge1xuICAgICAgICAgIHJldHVybiAvXFwqXFwqfFxcKlxcLi8udGVzdChwYXR0ZXJuKSA/IHBhdHRlcm4gOiBgJHtwYXR0ZXJufS8qKi8qJHtleHRlbnNpb259YFxuICAgICAgICB9KSlcbiAgICAgIH0sIHNyYy5zbGljZSgpKVxuXG4gICAgICByZXR1cm4gb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3MocGF0dGVybnMpXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IEVYUE9SVF9ERUZBVUxUX0RFQ0xBUkFUSU9OID0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbidcbmNvbnN0IEVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTiA9ICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJ1xuY29uc3QgRVhQT1JUX0FMTF9ERUNMQVJBVElPTiA9ICdFeHBvcnRBbGxEZWNsYXJhdGlvbidcbmNvbnN0IElNUE9SVF9ERUNMQVJBVElPTiA9ICdJbXBvcnREZWNsYXJhdGlvbidcbmNvbnN0IElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSID0gJ0ltcG9ydE5hbWVzcGFjZVNwZWNpZmllcidcbmNvbnN0IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiA9ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJ1xuY29uc3QgVkFSSUFCTEVfREVDTEFSQVRJT04gPSAnVmFyaWFibGVEZWNsYXJhdGlvbidcbmNvbnN0IEZVTkNUSU9OX0RFQ0xBUkFUSU9OID0gJ0Z1bmN0aW9uRGVjbGFyYXRpb24nXG5jb25zdCBDTEFTU19ERUNMQVJBVElPTiA9ICdDbGFzc0RlY2xhcmF0aW9uJ1xuY29uc3QgSU5URVJGQUNFX0RFQ0xBUkFUSU9OID0gJ0ludGVyZmFjZURlY2xhcmF0aW9uJ1xuY29uc3QgVFlQRV9BTElBUyA9ICdUeXBlQWxpYXMnXG5jb25zdCBUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04gPSAnVFNJbnRlcmZhY2VEZWNsYXJhdGlvbidcbmNvbnN0IFRTX1RZUEVfQUxJQVNfREVDTEFSQVRJT04gPSAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbidcbmNvbnN0IFRTX0VOVU1fREVDTEFSQVRJT04gPSAnVFNFbnVtRGVjbGFyYXRpb24nXG5jb25zdCBERUZBVUxUID0gJ2RlZmF1bHQnXG5cbmZ1bmN0aW9uIGZvckVhY2hEZWNsYXJhdGlvbklkZW50aWZpZXIoZGVjbGFyYXRpb24sIGNiKSB7XG4gIGlmIChkZWNsYXJhdGlvbikge1xuICAgIGlmIChcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IEZVTkNUSU9OX0RFQ0xBUkFUSU9OIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBDTEFTU19ERUNMQVJBVElPTiB8fFxuICAgICAgZGVjbGFyYXRpb24udHlwZSA9PT0gSU5URVJGQUNFX0RFQ0xBUkFUSU9OIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBUWVBFX0FMSUFTIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRTX1RZUEVfQUxJQVNfREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRTX0VOVU1fREVDTEFSQVRJT05cbiAgICApIHtcbiAgICAgIGNiKGRlY2xhcmF0aW9uLmlkLm5hbWUpXG4gICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi50eXBlID09PSBWQVJJQUJMRV9ERUNMQVJBVElPTikge1xuICAgICAgZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goKHsgaWQgfSkgPT4ge1xuICAgICAgICBjYihpZC5uYW1lKVxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBMaXN0IG9mIGltcG9ydHMgcGVyIGZpbGUuXG4gKlxuICogUmVwcmVzZW50ZWQgYnkgYSB0d28tbGV2ZWwgTWFwIHRvIGEgU2V0IG9mIGlkZW50aWZpZXJzLiBUaGUgdXBwZXItbGV2ZWwgTWFwXG4gKiBrZXlzIGFyZSB0aGUgcGF0aHMgdG8gdGhlIG1vZHVsZXMgY29udGFpbmluZyB0aGUgaW1wb3J0cywgd2hpbGUgdGhlXG4gKiBsb3dlci1sZXZlbCBNYXAga2V5cyBhcmUgdGhlIHBhdGhzIHRvIHRoZSBmaWxlcyB3aGljaCBhcmUgYmVpbmcgaW1wb3J0ZWRcbiAqIGZyb20uIExhc3RseSwgdGhlIFNldCBvZiBpZGVudGlmaWVycyBjb250YWlucyBlaXRoZXIgbmFtZXMgYmVpbmcgaW1wb3J0ZWRcbiAqIG9yIGEgc3BlY2lhbCBBU1Qgbm9kZSBuYW1lIGxpc3RlZCBhYm92ZSAoZS5nIEltcG9ydERlZmF1bHRTcGVjaWZpZXIpLlxuICpcbiAqIEZvciBleGFtcGxlLCBpZiB3ZSBoYXZlIGEgZmlsZSBuYW1lZCBmb28uanMgY29udGFpbmluZzpcbiAqXG4gKiAgIGltcG9ydCB7IG8yIH0gZnJvbSAnLi9iYXIuanMnO1xuICpcbiAqIFRoZW4gd2Ugd2lsbCBoYXZlIGEgc3RydWN0dXJlIHRoYXQgbG9va3MgbGlrZTpcbiAqXG4gKiAgIE1hcCB7ICdmb28uanMnID0+IE1hcCB7ICdiYXIuanMnID0+IFNldCB7ICdvMicgfSB9IH1cbiAqXG4gKiBAdHlwZSB7TWFwPHN0cmluZywgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+Pn1cbiAqL1xuY29uc3QgaW1wb3J0TGlzdCA9IG5ldyBNYXAoKVxuXG4vKipcbiAqIExpc3Qgb2YgZXhwb3J0cyBwZXIgZmlsZS5cbiAqXG4gKiBSZXByZXNlbnRlZCBieSBhIHR3by1sZXZlbCBNYXAgdG8gYW4gb2JqZWN0IG9mIG1ldGFkYXRhLiBUaGUgdXBwZXItbGV2ZWwgTWFwXG4gKiBrZXlzIGFyZSB0aGUgcGF0aHMgdG8gdGhlIG1vZHVsZXMgY29udGFpbmluZyB0aGUgZXhwb3J0cywgd2hpbGUgdGhlXG4gKiBsb3dlci1sZXZlbCBNYXAga2V5cyBhcmUgdGhlIHNwZWNpZmljIGlkZW50aWZpZXJzIG9yIHNwZWNpYWwgQVNUIG5vZGUgbmFtZXNcbiAqIGJlaW5nIGV4cG9ydGVkLiBUaGUgbGVhZi1sZXZlbCBtZXRhZGF0YSBvYmplY3QgYXQgdGhlIG1vbWVudCBvbmx5IGNvbnRhaW5zIGFcbiAqIGB3aGVyZVVzZWRgIHByb3BvZXJ0eSwgd2hpY2ggY29udGFpbnMgYSBTZXQgb2YgcGF0aHMgdG8gbW9kdWxlcyB0aGF0IGltcG9ydFxuICogdGhlIG5hbWUuXG4gKlxuICogRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmUgYSBmaWxlIG5hbWVkIGJhci5qcyBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgZXhwb3J0czpcbiAqXG4gKiAgIGNvbnN0IG8yID0gJ2Jhcic7XG4gKiAgIGV4cG9ydCB7IG8yIH07XG4gKlxuICogQW5kIGEgZmlsZSBuYW1lZCBmb28uanMgY29udGFpbmluZyB0aGUgZm9sbG93aW5nIGltcG9ydDpcbiAqXG4gKiAgIGltcG9ydCB7IG8yIH0gZnJvbSAnLi9iYXIuanMnO1xuICpcbiAqIFRoZW4gd2Ugd2lsbCBoYXZlIGEgc3RydWN0dXJlIHRoYXQgbG9va3MgbGlrZTpcbiAqXG4gKiAgIE1hcCB7ICdiYXIuanMnID0+IE1hcCB7ICdvMicgPT4geyB3aGVyZVVzZWQ6IFNldCB7ICdmb28uanMnIH0gfSB9IH1cbiAqXG4gKiBAdHlwZSB7TWFwPHN0cmluZywgTWFwPHN0cmluZywgb2JqZWN0Pj59XG4gKi9cbmNvbnN0IGV4cG9ydExpc3QgPSBuZXcgTWFwKClcblxuY29uc3QgaWdub3JlZEZpbGVzID0gbmV3IFNldCgpXG5jb25zdCBmaWxlc091dHNpZGVTcmMgPSBuZXcgU2V0KClcblxuY29uc3QgaXNOb2RlTW9kdWxlID0gcGF0aCA9PiB7XG4gIHJldHVybiAvXFwvKG5vZGVfbW9kdWxlcylcXC8vLnRlc3QocGF0aClcbn1cblxuLyoqXG4gKiByZWFkIGFsbCBmaWxlcyBtYXRjaGluZyB0aGUgcGF0dGVybnMgaW4gc3JjIGFuZCBpZ25vcmVFeHBvcnRzXG4gKlxuICogcmV0dXJuIGFsbCBmaWxlcyBtYXRjaGluZyBzcmMgcGF0dGVybiwgd2hpY2ggYXJlIG5vdCBtYXRjaGluZyB0aGUgaWdub3JlRXhwb3J0cyBwYXR0ZXJuXG4gKi9cbmNvbnN0IHJlc29sdmVGaWxlcyA9IChzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgZXh0ZW5zaW9ucyA9IEFycmF5LmZyb20oZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncykpXG5cbiAgY29uc3Qgc3JjRmlsZXMgPSBuZXcgU2V0KClcbiAgY29uc3Qgc3JjRmlsZUxpc3QgPSBsaXN0RmlsZXNUb1Byb2Nlc3Moc3JjLCBleHRlbnNpb25zKVxuXG4gIC8vIHByZXBhcmUgbGlzdCBvZiBpZ25vcmVkIGZpbGVzXG4gIGNvbnN0IGlnbm9yZWRGaWxlc0xpc3QgPSAgbGlzdEZpbGVzVG9Qcm9jZXNzKGlnbm9yZUV4cG9ydHMsIGV4dGVuc2lvbnMpXG4gIGlnbm9yZWRGaWxlc0xpc3QuZm9yRWFjaCgoeyBmaWxlbmFtZSB9KSA9PiBpZ25vcmVkRmlsZXMuYWRkKGZpbGVuYW1lKSlcblxuICAvLyBwcmVwYXJlIGxpc3Qgb2Ygc291cmNlIGZpbGVzLCBkb24ndCBjb25zaWRlciBmaWxlcyBmcm9tIG5vZGVfbW9kdWxlc1xuICBzcmNGaWxlTGlzdC5maWx0ZXIoKHsgZmlsZW5hbWUgfSkgPT4gIWlzTm9kZU1vZHVsZShmaWxlbmFtZSkpLmZvckVhY2goKHsgZmlsZW5hbWUgfSkgPT4ge1xuICAgIHNyY0ZpbGVzLmFkZChmaWxlbmFtZSlcbiAgfSlcbiAgcmV0dXJuIHNyY0ZpbGVzXG59XG5cbi8qKlxuICogcGFyc2UgYWxsIHNvdXJjZSBmaWxlcyBhbmQgYnVpbGQgdXAgMiBtYXBzIGNvbnRhaW5pbmcgdGhlIGV4aXN0aW5nIGltcG9ydHMgYW5kIGV4cG9ydHNcbiAqL1xuY29uc3QgcHJlcGFyZUltcG9ydHNBbmRFeHBvcnRzID0gKHNyY0ZpbGVzLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IGV4cG9ydEFsbCA9IG5ldyBNYXAoKVxuICBzcmNGaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgIGNvbnN0IGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICBjb25zdCBpbXBvcnRzID0gbmV3IE1hcCgpXG4gICAgY29uc3QgY3VycmVudEV4cG9ydHMgPSBFeHBvcnRzLmdldChmaWxlLCBjb250ZXh0KVxuICAgIGlmIChjdXJyZW50RXhwb3J0cykge1xuICAgICAgY29uc3QgeyBkZXBlbmRlbmNpZXMsIHJlZXhwb3J0cywgaW1wb3J0czogbG9jYWxJbXBvcnRMaXN0LCBuYW1lc3BhY2UgIH0gPSBjdXJyZW50RXhwb3J0c1xuXG4gICAgICAvLyBkZXBlbmRlbmNpZXMgPT09IGV4cG9ydCAqIGZyb21cbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRBbGwgPSBuZXcgU2V0KClcbiAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKGdldERlcGVuZGVuY3kgPT4ge1xuICAgICAgICBjb25zdCBkZXBlbmRlbmN5ID0gZ2V0RGVwZW5kZW5jeSgpXG4gICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RXhwb3J0QWxsLmFkZChkZXBlbmRlbmN5LnBhdGgpXG4gICAgICB9KVxuICAgICAgZXhwb3J0QWxsLnNldChmaWxlLCBjdXJyZW50RXhwb3J0QWxsKVxuXG4gICAgICByZWV4cG9ydHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVleHBvcnQgPSAgdmFsdWUuZ2V0SW1wb3J0KClcbiAgICAgICAgaWYgKCFyZWV4cG9ydCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGxldCBsb2NhbEltcG9ydCA9IGltcG9ydHMuZ2V0KHJlZXhwb3J0LnBhdGgpXG4gICAgICAgIGxldCBjdXJyZW50VmFsdWVcbiAgICAgICAgaWYgKHZhbHVlLmxvY2FsID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gdmFsdWUubG9jYWxcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGxvY2FsSW1wb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGxvY2FsSW1wb3J0ID0gbmV3IFNldChbLi4ubG9jYWxJbXBvcnQsIGN1cnJlbnRWYWx1ZV0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSBuZXcgU2V0KFtjdXJyZW50VmFsdWVdKVxuICAgICAgICB9XG4gICAgICAgIGltcG9ydHMuc2V0KHJlZXhwb3J0LnBhdGgsIGxvY2FsSW1wb3J0KVxuICAgICAgfSlcblxuICAgICAgbG9jYWxJbXBvcnRMaXN0LmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGlzTm9kZU1vZHVsZShrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGxvY2FsSW1wb3J0ID0gaW1wb3J0cy5nZXQoa2V5KVxuICAgICAgICBpZiAodHlwZW9mIGxvY2FsSW1wb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGxvY2FsSW1wb3J0ID0gbmV3IFNldChbLi4ubG9jYWxJbXBvcnQsIC4uLnZhbHVlLmltcG9ydGVkU3BlY2lmaWVyc10pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSB2YWx1ZS5pbXBvcnRlZFNwZWNpZmllcnNcbiAgICAgICAgfVxuICAgICAgICBpbXBvcnRzLnNldChrZXksIGxvY2FsSW1wb3J0KVxuICAgICAgfSlcbiAgICAgIGltcG9ydExpc3Quc2V0KGZpbGUsIGltcG9ydHMpXG5cbiAgICAgIC8vIGJ1aWxkIHVwIGV4cG9ydCBsaXN0IG9ubHksIGlmIGZpbGUgaXMgbm90IGlnbm9yZWRcbiAgICAgIGlmIChpZ25vcmVkRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbmFtZXNwYWNlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gREVGQVVMVCkge1xuICAgICAgICAgIGV4cG9ydHMuc2V0KElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV4cG9ydHMuc2V0KGtleSwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICBleHBvcnRzLnNldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgZXhwb3J0cy5zZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfSlcbiAgICBleHBvcnRMaXN0LnNldChmaWxlLCBleHBvcnRzKVxuICB9KVxuICBleHBvcnRBbGwuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIHZhbHVlLmZvckVhY2godmFsID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsKVxuICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGN1cnJlbnRFeHBvcnRzLmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGtleSlcbiAgICB9KVxuICB9KVxufVxuXG4vKipcbiAqIHRyYXZlcnNlIHRocm91Z2ggYWxsIGltcG9ydHMgYW5kIGFkZCB0aGUgcmVzcGVjdGl2ZSBwYXRoIHRvIHRoZSB3aGVyZVVzZWQtbGlzdFxuICogb2YgdGhlIGNvcnJlc3BvbmRpbmcgZXhwb3J0XG4gKi9cbmNvbnN0IGRldGVybWluZVVzYWdlID0gKCkgPT4ge1xuICBpbXBvcnRMaXN0LmZvckVhY2goKGxpc3RWYWx1ZSwgbGlzdEtleSkgPT4ge1xuICAgIGxpc3RWYWx1ZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoa2V5KVxuICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGN1cnJlbnRJbXBvcnQgPT4ge1xuICAgICAgICAgIGxldCBzcGVjaWZpZXJcbiAgICAgICAgICBpZiAoY3VycmVudEltcG9ydCA9PT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgIHNwZWNpZmllciA9IElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSXG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW1wb3J0ID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgIHNwZWNpZmllciA9IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzcGVjaWZpZXIgPSBjdXJyZW50SW1wb3J0XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eXBlb2Ygc3BlY2lmaWVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgZXhwb3J0U3RhdGVtZW50ID0gZXhwb3J0cy5nZXQoc3BlY2lmaWVyKVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRTdGF0ZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgd2hlcmVVc2VkIH0gPSBleHBvcnRTdGF0ZW1lbnRcbiAgICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChsaXN0S2V5KVxuICAgICAgICAgICAgICBleHBvcnRzLnNldChzcGVjaWZpZXIsIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG59XG5cbmNvbnN0IGdldFNyYyA9IHNyYyA9PiB7XG4gIGlmIChzcmMpIHtcbiAgICByZXR1cm4gc3JjXG4gIH1cbiAgcmV0dXJuIFtwcm9jZXNzLmN3ZCgpXVxufVxuXG4vKipcbiAqIHByZXBhcmUgdGhlIGxpc3RzIG9mIGV4aXN0aW5nIGltcG9ydHMgYW5kIGV4cG9ydHMgLSBzaG91bGQgb25seSBiZSBleGVjdXRlZCBvbmNlIGF0XG4gKiB0aGUgc3RhcnQgb2YgYSBuZXcgZXNsaW50IHJ1blxuICovXG5sZXQgc3JjRmlsZXNcbmxldCBsYXN0UHJlcGFyZUtleVxuY29uc3QgZG9QcmVwYXJhdGlvbiA9IChzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgcHJlcGFyZUtleSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBzcmM6IChzcmMgfHwgW10pLnNvcnQoKSxcbiAgICBpZ25vcmVFeHBvcnRzOiAoaWdub3JlRXhwb3J0cyB8fCBbXSkuc29ydCgpLFxuICAgIGV4dGVuc2lvbnM6IEFycmF5LmZyb20oZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncykpLnNvcnQoKSxcbiAgfSlcbiAgaWYgKHByZXBhcmVLZXkgPT09IGxhc3RQcmVwYXJlS2V5KSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpbXBvcnRMaXN0LmNsZWFyKClcbiAgZXhwb3J0TGlzdC5jbGVhcigpXG4gIGlnbm9yZWRGaWxlcy5jbGVhcigpXG4gIGZpbGVzT3V0c2lkZVNyYy5jbGVhcigpXG5cbiAgc3JjRmlsZXMgPSByZXNvbHZlRmlsZXMoZ2V0U3JjKHNyYyksIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpXG4gIHByZXBhcmVJbXBvcnRzQW5kRXhwb3J0cyhzcmNGaWxlcywgY29udGV4dClcbiAgZGV0ZXJtaW5lVXNhZ2UoKVxuICBsYXN0UHJlcGFyZUtleSA9IHByZXBhcmVLZXlcbn1cblxuY29uc3QgbmV3TmFtZXNwYWNlSW1wb3J0RXhpc3RzID0gc3BlY2lmaWVycyA9PlxuICBzcGVjaWZpZXJzLnNvbWUoKHsgdHlwZSB9KSA9PiB0eXBlID09PSBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcblxuY29uc3QgbmV3RGVmYXVsdEltcG9ydEV4aXN0cyA9IHNwZWNpZmllcnMgPT5cbiAgc3BlY2lmaWVycy5zb21lKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuXG5jb25zdCBmaWxlSXNJblBrZyA9IGZpbGUgPT4ge1xuICBjb25zdCB7IHBhdGgsIHBrZyB9ID0gcmVhZFBrZ1VwLnN5bmMoe2N3ZDogZmlsZSwgbm9ybWFsaXplOiBmYWxzZX0pXG4gIGNvbnN0IGJhc2VQYXRoID0gZGlybmFtZShwYXRoKVxuXG4gIGNvbnN0IGNoZWNrUGtnRmllbGRTdHJpbmcgPSBwa2dGaWVsZCA9PiB7XG4gICAgaWYgKGpvaW4oYmFzZVBhdGgsIHBrZ0ZpZWxkKSA9PT0gZmlsZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICB9XG5cbiAgY29uc3QgY2hlY2tQa2dGaWVsZE9iamVjdCA9IHBrZ0ZpZWxkID0+IHtcbiAgICAgIGNvbnN0IHBrZ0ZpZWxkRmlsZXMgPSB2YWx1ZXMocGtnRmllbGQpLm1hcCh2YWx1ZSA9PiBqb2luKGJhc2VQYXRoLCB2YWx1ZSkpXG4gICAgICBpZiAoaW5jbHVkZXMocGtnRmllbGRGaWxlcywgZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNoZWNrUGtnRmllbGQgPSBwa2dGaWVsZCA9PiB7XG4gICAgaWYgKHR5cGVvZiBwa2dGaWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBjaGVja1BrZ0ZpZWxkU3RyaW5nKHBrZ0ZpZWxkKVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcGtnRmllbGQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gY2hlY2tQa2dGaWVsZE9iamVjdChwa2dGaWVsZClcbiAgICB9XG4gIH1cblxuICBpZiAocGtnLnByaXZhdGUgPT09IHRydWUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChwa2cuYmluKSB7XG4gICAgaWYgKGNoZWNrUGtnRmllbGQocGtnLmJpbikpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKHBrZy5icm93c2VyKSB7XG4gICAgaWYgKGNoZWNrUGtnRmllbGQocGtnLmJyb3dzZXIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwa2cubWFpbikge1xuICAgIGlmIChjaGVja1BrZ0ZpZWxkU3RyaW5nKHBrZy5tYWluKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczogeyB1cmw6IGRvY3NVcmwoJ25vLXVudXNlZC1tb2R1bGVzJykgfSxcbiAgICBzY2hlbWE6IFt7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHNyYzoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnZmlsZXMvcGF0aHMgdG8gYmUgYW5hbHl6ZWQgKG9ubHkgZm9yIHVudXNlZCBleHBvcnRzKScsXG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBtaW5MZW5ndGg6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaWdub3JlRXhwb3J0czoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ2ZpbGVzL3BhdGhzIGZvciB3aGljaCB1bnVzZWQgZXhwb3J0cyB3aWxsIG5vdCBiZSByZXBvcnRlZCAoZS5nIG1vZHVsZSBlbnRyeSBwb2ludHMpJyxcbiAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIG1pbkxlbmd0aDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBtaXNzaW5nRXhwb3J0czoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAncmVwb3J0IG1vZHVsZXMgd2l0aG91dCBhbnkgZXhwb3J0cycsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgICB1bnVzZWRFeHBvcnRzOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdyZXBvcnQgZXhwb3J0cyB3aXRob3V0IGFueSB1c2FnZScsXG4gICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG5vdDoge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdW51c2VkRXhwb3J0czogeyBlbnVtOiBbZmFsc2VdIH0sXG4gICAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHsgZW51bTogW2ZhbHNlXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGFueU9mOlt7XG4gICAgICAgIG5vdDoge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVudXNlZEV4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsnbWlzc2luZ0V4cG9ydHMnXSxcbiAgICAgIH0sIHtcbiAgICAgICAgbm90OiB7XG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsndW51c2VkRXhwb3J0cyddLFxuICAgICAgfSwge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdW51c2VkRXhwb3J0czogeyBlbnVtOiBbdHJ1ZV0gfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWQ6IFsndW51c2VkRXhwb3J0cyddLFxuICAgICAgfSwge1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbJ21pc3NpbmdFeHBvcnRzJ10sXG4gICAgICB9XSxcbiAgICB9XSxcbiAgfSxcblxuICBjcmVhdGU6IGNvbnRleHQgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHNyYyxcbiAgICAgIGlnbm9yZUV4cG9ydHMgPSBbXSxcbiAgICAgIG1pc3NpbmdFeHBvcnRzLFxuICAgICAgdW51c2VkRXhwb3J0cyxcbiAgICB9ID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9XG5cbiAgICBpZiAodW51c2VkRXhwb3J0cykge1xuICAgICAgZG9QcmVwYXJhdGlvbihzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKVxuXG4gICAgY29uc3QgY2hlY2tFeHBvcnRQcmVzZW5jZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKCFtaXNzaW5nRXhwb3J0cykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4cG9ydENvdW50ID0gZXhwb3J0TGlzdC5nZXQoZmlsZSlcbiAgICAgIGNvbnN0IGV4cG9ydEFsbCA9IGV4cG9ydENvdW50LmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgY29uc3QgbmFtZXNwYWNlSW1wb3J0cyA9IGV4cG9ydENvdW50LmdldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcblxuICAgICAgZXhwb3J0Q291bnQuZGVsZXRlKEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICBleHBvcnRDb3VudC5kZWxldGUoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG4gICAgICBpZiAoZXhwb3J0Q291bnQuc2l6ZSA8IDEpIHtcbiAgICAgICAgLy8gbm9kZS5ib2R5WzBdID09PSAndW5kZWZpbmVkJyBvbmx5IGhhcHBlbnMsIGlmIGV2ZXJ5dGhpbmcgaXMgY29tbWVudGVkIG91dCBpbiB0aGUgZmlsZVxuICAgICAgICAvLyBiZWluZyBsaW50ZWRcbiAgICAgICAgY29udGV4dC5yZXBvcnQobm9kZS5ib2R5WzBdID8gbm9kZS5ib2R5WzBdIDogbm9kZSwgJ05vIGV4cG9ydHMgZm91bmQnKVxuICAgICAgfVxuICAgICAgZXhwb3J0Q291bnQuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIGV4cG9ydEFsbClcbiAgICAgIGV4cG9ydENvdW50LnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgbmFtZXNwYWNlSW1wb3J0cylcbiAgICB9XG5cbiAgICBjb25zdCBjaGVja1VzYWdlID0gKG5vZGUsIGV4cG9ydGVkVmFsdWUpID0+IHtcbiAgICAgIGlmICghdW51c2VkRXhwb3J0cykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlSXNJblBrZyhmaWxlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVzT3V0c2lkZVNyYy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIG1ha2Ugc3VyZSBmaWxlIHRvIGJlIGxpbnRlZCBpcyBpbmNsdWRlZCBpbiBzb3VyY2UgZmlsZXNcbiAgICAgIGlmICghc3JjRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgIHNyY0ZpbGVzID0gcmVzb2x2ZUZpbGVzKGdldFNyYyhzcmMpLCBpZ25vcmVFeHBvcnRzLCBjb250ZXh0KVxuICAgICAgICBpZiAoIXNyY0ZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICAgIGZpbGVzT3V0c2lkZVNyYy5hZGQoZmlsZSlcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoZmlsZSlcblxuICAgICAgLy8gc3BlY2lhbCBjYXNlOiBleHBvcnQgKiBmcm9tXG4gICAgICBjb25zdCBleHBvcnRBbGwgPSBleHBvcnRzLmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKVxuICAgICAgaWYgKHR5cGVvZiBleHBvcnRBbGwgIT09ICd1bmRlZmluZWQnICYmIGV4cG9ydGVkVmFsdWUgIT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUikge1xuICAgICAgICBpZiAoZXhwb3J0QWxsLndoZXJlVXNlZC5zaXplID4gMCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIHNwZWNpYWwgY2FzZTogbmFtZXNwYWNlIGltcG9ydFxuICAgICAgY29uc3QgbmFtZXNwYWNlSW1wb3J0cyA9IGV4cG9ydHMuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuICAgICAgaWYgKHR5cGVvZiBuYW1lc3BhY2VJbXBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAobmFtZXNwYWNlSW1wb3J0cy53aGVyZVVzZWQuc2l6ZSA+IDApIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBleHBvcnRzTGlzdCB3aWxsIGFsd2F5cyBtYXAgYW55IGltcG9ydGVkIHZhbHVlIG9mICdkZWZhdWx0JyB0byAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcidcbiAgICAgIGNvbnN0IGV4cG9ydHNLZXkgPSBleHBvcnRlZFZhbHVlID09PSBERUZBVUxUID8gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSIDogZXhwb3J0ZWRWYWx1ZVxuXG4gICAgICBjb25zdCBleHBvcnRTdGF0ZW1lbnQgPSBleHBvcnRzLmdldChleHBvcnRzS2V5KVxuXG4gICAgICBjb25zdCB2YWx1ZSA9IGV4cG9ydHNLZXkgPT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiA/IERFRkFVTFQgOiBleHBvcnRzS2V5XG5cbiAgICAgIGlmICh0eXBlb2YgZXhwb3J0U3RhdGVtZW50ICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICAgIGlmIChleHBvcnRTdGF0ZW1lbnQud2hlcmVVc2VkLnNpemUgPCAxKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgYGV4cG9ydGVkIGRlY2xhcmF0aW9uICcke3ZhbHVlfScgbm90IHVzZWQgd2l0aGluIG90aGVyIG1vZHVsZXNgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LnJlcG9ydChcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIGBleHBvcnRlZCBkZWNsYXJhdGlvbiAnJHt2YWx1ZX0nIG5vdCB1c2VkIHdpdGhpbiBvdGhlciBtb2R1bGVzYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGV4cG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVFeHBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoZmlsZSlcblxuICAgICAgLy8gbmV3IG1vZHVsZSBoYXMgYmVlbiBjcmVhdGVkIGR1cmluZyBydW50aW1lXG4gICAgICAvLyBpbmNsdWRlIGl0IGluIGZ1cnRoZXIgcHJvY2Vzc2luZ1xuICAgICAgaWYgKHR5cGVvZiBleHBvcnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0V4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAgIGNvbnN0IG5ld0V4cG9ydElkZW50aWZpZXJzID0gbmV3IFNldCgpXG5cbiAgICAgIG5vZGUuYm9keS5mb3JFYWNoKCh7IHR5cGUsIGRlY2xhcmF0aW9uLCBzcGVjaWZpZXJzIH0pID0+IHtcbiAgICAgICAgaWYgKHR5cGUgPT09IEVYUE9SVF9ERUZBVUxUX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgbmV3RXhwb3J0SWRlbnRpZmllcnMuYWRkKElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gRVhQT1JUX05BTUVEX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgaWYgKHNwZWNpZmllcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICAgIGlmIChzcGVjaWZpZXIuZXhwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQoc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGZvckVhY2hEZWNsYXJhdGlvbklkZW50aWZpZXIoZGVjbGFyYXRpb24sIChuYW1lKSA9PiB7XG4gICAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQobmFtZSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICAvLyBvbGQgZXhwb3J0cyBleGlzdCB3aXRoaW4gbGlzdCBvZiBuZXcgZXhwb3J0cyBpZGVudGlmaWVyczogYWRkIHRvIG1hcCBvZiBuZXcgZXhwb3J0c1xuICAgICAgZXhwb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmIChuZXdFeHBvcnRJZGVudGlmaWVycy5oYXMoa2V5KSkge1xuICAgICAgICAgIG5ld0V4cG9ydHMuc2V0KGtleSwgdmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIG5ldyBleHBvcnQgaWRlbnRpZmllcnMgYWRkZWQ6IGFkZCB0byBtYXAgb2YgbmV3IGV4cG9ydHNcbiAgICAgIG5ld0V4cG9ydElkZW50aWZpZXJzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKCFleHBvcnRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgbmV3RXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIHByZXNlcnZlIGluZm9ybWF0aW9uIGFib3V0IG5hbWVzcGFjZSBpbXBvcnRzXG4gICAgICBsZXQgZXhwb3J0QWxsID0gZXhwb3J0cy5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgIGxldCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0cy5nZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG5cbiAgICAgIGlmICh0eXBlb2YgbmFtZXNwYWNlSW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbmFtZXNwYWNlSW1wb3J0cyA9IHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfVxuICAgICAgfVxuXG4gICAgICBuZXdFeHBvcnRzLnNldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OLCBleHBvcnRBbGwpXG4gICAgICBuZXdFeHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgbmFtZXNwYWNlSW1wb3J0cylcbiAgICAgIGV4cG9ydExpc3Quc2V0KGZpbGUsIG5ld0V4cG9ydHMpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGltcG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVJbXBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKCF1bnVzZWRFeHBvcnRzKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsZXQgb2xkSW1wb3J0UGF0aHMgPSBpbXBvcnRMaXN0LmdldChmaWxlKVxuICAgICAgaWYgKHR5cGVvZiBvbGRJbXBvcnRQYXRocyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb2xkSW1wb3J0UGF0aHMgPSBuZXcgTWFwKClcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkTmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3QgbmV3TmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKVxuXG4gICAgICBjb25zdCBvbGRFeHBvcnRBbGwgPSBuZXcgU2V0KClcbiAgICAgIGNvbnN0IG5ld0V4cG9ydEFsbCA9IG5ldyBTZXQoKVxuXG4gICAgICBjb25zdCBvbGREZWZhdWx0SW1wb3J0cyA9IG5ldyBTZXQoKVxuICAgICAgY29uc3QgbmV3RGVmYXVsdEltcG9ydHMgPSBuZXcgU2V0KClcblxuICAgICAgY29uc3Qgb2xkSW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgY29uc3QgbmV3SW1wb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgb2xkSW1wb3J0UGF0aHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUuaGFzKEVYUE9SVF9BTExfREVDTEFSQVRJT04pKSB7XG4gICAgICAgICAgb2xkRXhwb3J0QWxsLmFkZChrZXkpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikpIHtcbiAgICAgICAgICBvbGROYW1lc3BhY2VJbXBvcnRzLmFkZChrZXkpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpKSB7XG4gICAgICAgICAgb2xkRGVmYXVsdEltcG9ydHMuYWRkKGtleSlcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgaWYgKHZhbCAhPT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIgJiZcbiAgICAgICAgICAgICAgdmFsICE9PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgICAgIG9sZEltcG9ydHMuc2V0KHZhbCwga2V5KVxuICAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG5cbiAgICAgIG5vZGUuYm9keS5mb3JFYWNoKGFzdE5vZGUgPT4ge1xuICAgICAgICBsZXQgcmVzb2x2ZWRQYXRoXG5cbiAgICAgICAgLy8gc3VwcG9ydCBmb3IgZXhwb3J0IHsgdmFsdWUgfSBmcm9tICdtb2R1bGUnXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IEVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTikge1xuICAgICAgICAgIGlmIChhc3ROb2RlLnNvdXJjZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dClcbiAgICAgICAgICAgIGFzdE5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBzcGVjaWZpZXIubG9jYWwubmFtZVxuICAgICAgICAgICAgICBpZiAoc3BlY2lmaWVyLmxvY2FsLm5hbWUgPT09IERFRkFVTFQpIHtcbiAgICAgICAgICAgICAgICBuZXdEZWZhdWx0SW1wb3J0cy5hZGQocmVzb2x2ZWRQYXRoKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0ltcG9ydHMuc2V0KG5hbWUsIHJlc29sdmVkUGF0aClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXN0Tm9kZS50eXBlID09PSBFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dClcbiAgICAgICAgICBuZXdFeHBvcnRBbGwuYWRkKHJlc29sdmVkUGF0aClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IElNUE9SVF9ERUNMQVJBVElPTikge1xuICAgICAgICAgIHJlc29sdmVkUGF0aCA9IHJlc29sdmUoYXN0Tm9kZS5zb3VyY2UucmF3LnJlcGxhY2UoLygnfFwiKS9nLCAnJyksIGNvbnRleHQpXG4gICAgICAgICAgaWYgKCFyZXNvbHZlZFBhdGgpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc05vZGVNb2R1bGUocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5ld05hbWVzcGFjZUltcG9ydEV4aXN0cyhhc3ROb2RlLnNwZWNpZmllcnMpKSB7XG4gICAgICAgICAgICBuZXdOYW1lc3BhY2VJbXBvcnRzLmFkZChyZXNvbHZlZFBhdGgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG5ld0RlZmF1bHRJbXBvcnRFeGlzdHMoYXN0Tm9kZS5zcGVjaWZpZXJzKSkge1xuICAgICAgICAgICAgbmV3RGVmYXVsdEltcG9ydHMuYWRkKHJlc29sdmVkUGF0aClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhc3ROb2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgICAgaWYgKHNwZWNpZmllci50eXBlID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIgfHxcbiAgICAgICAgICAgICAgICBzcGVjaWZpZXIudHlwZSA9PT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdJbXBvcnRzLnNldChzcGVjaWZpZXIuaW1wb3J0ZWQubmFtZSwgcmVzb2x2ZWRQYXRoKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG5ld0V4cG9ydEFsbC5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFvbGRFeHBvcnRBbGwuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTilcbiAgICAgICAgICBvbGRJbXBvcnRQYXRocy5zZXQodmFsdWUsIGltcG9ydHMpXG5cbiAgICAgICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cG9ydHMgPSBuZXcgTWFwKClcbiAgICAgICAgICAgIGV4cG9ydExpc3Quc2V0KHZhbHVlLCBleHBvcnRzKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB3aGVyZVVzZWQgPSBuZXcgU2V0KClcbiAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICAgIGV4cG9ydHMuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGRFeHBvcnRBbGwuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghbmV3RXhwb3J0QWxsLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGltcG9ydHMuZGVsZXRlKEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pXG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmRlbGV0ZShmaWxlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgbmV3RGVmYXVsdEltcG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghb2xkRGVmYXVsdEltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgICAgIG9sZEltcG9ydFBhdGhzLnNldCh2YWx1ZSwgaW1wb3J0cylcblxuICAgICAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgbGV0IGN1cnJlbnRFeHBvcnRcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpXG4gICAgICAgICAgICBleHBvcnRMaXN0LnNldCh2YWx1ZSwgZXhwb3J0cylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2hlcmVVc2VkID0gbmV3IFNldCgpXG4gICAgICAgICAgICB3aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgICBleHBvcnRzLnNldChJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGREZWZhdWx0SW1wb3J0cy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFuZXdEZWZhdWx0SW1wb3J0cy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSlcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuZGVsZXRlKGZpbGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBuZXdOYW1lc3BhY2VJbXBvcnRzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW9sZE5hbWVzcGFjZUltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KClcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG4gICAgICAgICAgb2xkSW1wb3J0UGF0aHMuc2V0KHZhbHVlLCBpbXBvcnRzKVxuXG4gICAgICAgICAgbGV0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSlcbiAgICAgICAgICBsZXQgY3VycmVudEV4cG9ydFxuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUilcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgICAgICAgZXhwb3J0TGlzdC5zZXQodmFsdWUsIGV4cG9ydHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKVxuICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBvbGROYW1lc3BhY2VJbXBvcnRzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW5ld05hbWVzcGFjZUltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaW1wb3J0cy5kZWxldGUoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpXG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpXG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5kZWxldGUoZmlsZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIG5ld0ltcG9ydHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoIW9sZEltcG9ydHMuaGFzKGtleSkpIHtcbiAgICAgICAgICBsZXQgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSlcbiAgICAgICAgICBpZiAodHlwZW9mIGltcG9ydHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpbXBvcnRzID0gbmV3IFNldCgpXG4gICAgICAgICAgfVxuICAgICAgICAgIGltcG9ydHMuYWRkKGtleSlcbiAgICAgICAgICBvbGRJbXBvcnRQYXRocy5zZXQodmFsdWUsIGltcG9ydHMpXG5cbiAgICAgICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KGtleSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKVxuICAgICAgICAgICAgZXhwb3J0TGlzdC5zZXQodmFsdWUsIGV4cG9ydHMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuYWRkKGZpbGUpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKVxuICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChmaWxlKVxuICAgICAgICAgICAgZXhwb3J0cy5zZXQoa2V5LCB7IHdoZXJlVXNlZCB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgb2xkSW1wb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICghbmV3SW1wb3J0cy5oYXMoa2V5KSkge1xuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpXG4gICAgICAgICAgaW1wb3J0cy5kZWxldGUoa2V5KVxuXG4gICAgICAgICAgY29uc3QgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKVxuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChrZXkpXG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmRlbGV0ZShmaWxlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ1Byb2dyYW06ZXhpdCc6IG5vZGUgPT4ge1xuICAgICAgICB1cGRhdGVFeHBvcnRVc2FnZShub2RlKVxuICAgICAgICB1cGRhdGVJbXBvcnRVc2FnZShub2RlKVxuICAgICAgICBjaGVja0V4cG9ydFByZXNlbmNlKG5vZGUpXG4gICAgICB9LFxuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IG5vZGUgPT4ge1xuICAgICAgICBjaGVja1VzYWdlKG5vZGUsIElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUilcbiAgICAgIH0sXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IG5vZGUgPT4ge1xuICAgICAgICBub2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgICAgY2hlY2tVc2FnZShub2RlLCBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSlcbiAgICAgICAgfSlcbiAgICAgICAgZm9yRWFjaERlY2xhcmF0aW9uSWRlbnRpZmllcihub2RlLmRlY2xhcmF0aW9uLCAobmFtZSkgPT4ge1xuICAgICAgICAgIGNoZWNrVXNhZ2Uobm9kZSwgbmFtZSlcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11bnVzZWQtbW9kdWxlcy5qcyJdLCJuYW1lcyI6WyJsaXN0RmlsZXNUb1Byb2Nlc3MiLCJGaWxlRW51bWVyYXRvciIsInJlcXVpcmUiLCJzcmMiLCJleHRlbnNpb25zIiwiZSIsIkFycmF5IiwiZnJvbSIsIml0ZXJhdGVGaWxlcyIsImZpbGVQYXRoIiwiaWdub3JlZCIsImZpbGVuYW1lIiwiZTEiLCJvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyIsImUyIiwicGF0dGVybnMiLCJyZWR1Y2UiLCJjYXJyeSIsInBhdHRlcm4iLCJjb25jYXQiLCJtYXAiLCJleHRlbnNpb24iLCJ0ZXN0Iiwic2xpY2UiLCJFWFBPUlRfREVGQVVMVF9ERUNMQVJBVElPTiIsIkVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTiIsIkVYUE9SVF9BTExfREVDTEFSQVRJT04iLCJJTVBPUlRfREVDTEFSQVRJT04iLCJJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiIsIklNUE9SVF9ERUZBVUxUX1NQRUNJRklFUiIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OIiwiRlVOQ1RJT05fREVDTEFSQVRJT04iLCJDTEFTU19ERUNMQVJBVElPTiIsIklERU5USUZJRVIiLCJPQkpFQ1RfUEFUVEVSTiIsIlRTX0lOVEVSRkFDRV9ERUNMQVJBVElPTiIsIlRTX1RZUEVfQUxJQVNfREVDTEFSQVRJT04iLCJUU19FTlVNX0RFQ0xBUkFUSU9OIiwiREVGQVVMVCIsImZvckVhY2hEZWNsYXJhdGlvbklkZW50aWZpZXIiLCJkZWNsYXJhdGlvbiIsImNiIiwidHlwZSIsImlkIiwibmFtZSIsImRlY2xhcmF0aW9ucyIsImZvckVhY2giLCJpbXBvcnRMaXN0IiwiTWFwIiwiZXhwb3J0TGlzdCIsImlnbm9yZWRGaWxlcyIsIlNldCIsImZpbGVzT3V0c2lkZVNyYyIsImlzTm9kZU1vZHVsZSIsInBhdGgiLCJyZXNvbHZlRmlsZXMiLCJpZ25vcmVFeHBvcnRzIiwiY29udGV4dCIsInNldHRpbmdzIiwic3JjRmlsZXMiLCJzcmNGaWxlTGlzdCIsImlnbm9yZWRGaWxlc0xpc3QiLCJhZGQiLCJmaWx0ZXIiLCJwcmVwYXJlSW1wb3J0c0FuZEV4cG9ydHMiLCJleHBvcnRBbGwiLCJmaWxlIiwiZXhwb3J0cyIsImltcG9ydHMiLCJjdXJyZW50RXhwb3J0cyIsIkV4cG9ydHMiLCJnZXQiLCJkZXBlbmRlbmNpZXMiLCJyZWV4cG9ydHMiLCJsb2NhbEltcG9ydExpc3QiLCJuYW1lc3BhY2UiLCJjdXJyZW50RXhwb3J0QWxsIiwiZ2V0RGVwZW5kZW5jeSIsImRlcGVuZGVuY3kiLCJzZXQiLCJ2YWx1ZSIsImtleSIsIndoZXJlVXNlZCIsInJlZXhwb3J0IiwiZ2V0SW1wb3J0IiwibG9jYWxJbXBvcnQiLCJjdXJyZW50VmFsdWUiLCJsb2NhbCIsImltcG9ydGVkU3BlY2lmaWVycyIsInNwZWNpZmllciIsImhhcyIsInZhbCIsImN1cnJlbnRFeHBvcnQiLCJkZXRlcm1pbmVVc2FnZSIsImxpc3RWYWx1ZSIsImxpc3RLZXkiLCJjdXJyZW50SW1wb3J0IiwiZXhwb3J0U3RhdGVtZW50IiwiZ2V0U3JjIiwicHJvY2VzcyIsImN3ZCIsImxhc3RQcmVwYXJlS2V5IiwiZG9QcmVwYXJhdGlvbiIsInByZXBhcmVLZXkiLCJKU09OIiwic3RyaW5naWZ5Iiwic29ydCIsImNsZWFyIiwibmV3TmFtZXNwYWNlSW1wb3J0RXhpc3RzIiwic3BlY2lmaWVycyIsInNvbWUiLCJuZXdEZWZhdWx0SW1wb3J0RXhpc3RzIiwiZmlsZUlzSW5Qa2ciLCJyZWFkUGtnVXAiLCJzeW5jIiwibm9ybWFsaXplIiwicGtnIiwiYmFzZVBhdGgiLCJjaGVja1BrZ0ZpZWxkU3RyaW5nIiwicGtnRmllbGQiLCJjaGVja1BrZ0ZpZWxkT2JqZWN0IiwicGtnRmllbGRGaWxlcyIsImNoZWNrUGtnRmllbGQiLCJwcml2YXRlIiwiYmluIiwiYnJvd3NlciIsIm1haW4iLCJtb2R1bGUiLCJtZXRhIiwiZG9jcyIsInVybCIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJkZXNjcmlwdGlvbiIsIm1pbkl0ZW1zIiwiaXRlbXMiLCJtaW5MZW5ndGgiLCJtaXNzaW5nRXhwb3J0cyIsInVudXNlZEV4cG9ydHMiLCJub3QiLCJlbnVtIiwiYW55T2YiLCJyZXF1aXJlZCIsImNyZWF0ZSIsIm9wdGlvbnMiLCJnZXRGaWxlbmFtZSIsImNoZWNrRXhwb3J0UHJlc2VuY2UiLCJub2RlIiwiZXhwb3J0Q291bnQiLCJuYW1lc3BhY2VJbXBvcnRzIiwiZGVsZXRlIiwic2l6ZSIsInJlcG9ydCIsImJvZHkiLCJjaGVja1VzYWdlIiwiZXhwb3J0ZWRWYWx1ZSIsImV4cG9ydHNLZXkiLCJ1cGRhdGVFeHBvcnRVc2FnZSIsIm5ld0V4cG9ydHMiLCJuZXdFeHBvcnRJZGVudGlmaWVycyIsImxlbmd0aCIsImV4cG9ydGVkIiwidXBkYXRlSW1wb3J0VXNhZ2UiLCJvbGRJbXBvcnRQYXRocyIsIm9sZE5hbWVzcGFjZUltcG9ydHMiLCJuZXdOYW1lc3BhY2VJbXBvcnRzIiwib2xkRXhwb3J0QWxsIiwibmV3RXhwb3J0QWxsIiwib2xkRGVmYXVsdEltcG9ydHMiLCJuZXdEZWZhdWx0SW1wb3J0cyIsIm9sZEltcG9ydHMiLCJuZXdJbXBvcnRzIiwiYXN0Tm9kZSIsInJlc29sdmVkUGF0aCIsInNvdXJjZSIsInJhdyIsInJlcGxhY2UiLCJpbXBvcnRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBTUEseUM7QUFDQTtBQUNBLHNEO0FBQ0EscUM7QUFDQTtBQUNBLHdDO0FBQ0EsdUM7QUFDQSwrQyxtVkFiQTs7OztzWUFlQTtBQUNBO0FBQ0EsSUFBSUEsa0JBQUosQ0FDQSxJQUFJLENBQ0YsTUFBTUMsaUJBQWlCQyxRQUFRLHVDQUFSLEVBQWlERCxjQUF4RTtBQUNBRCx1QkFBcUIsVUFBVUcsR0FBVixFQUFlQyxVQUFmLEVBQTJCO0FBQzlDLFVBQU1DLElBQUksSUFBSUosY0FBSixDQUFtQjtBQUMzQkcsa0JBQVlBLFVBRGUsRUFBbkIsQ0FBVjs7QUFHQSxXQUFPRSxNQUFNQyxJQUFOLENBQVdGLEVB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QyxrQkFBTXlCLGdCQUFnQnpCLFFBQVFJLEdBQVIsQ0FBWVUsR0FBWixDQUF0QjtBQUNBLGdCQUFJLE9BQU9XLGFBQVAsS0FBeUIsV0FBN0IsRUFBMEM7QUFDeENBLDRCQUFjVixTQUFkLENBQXdCb0UsTUFBeEIsQ0FBK0JwRixJQUEvQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGLE9BYkQ7QUFjRCxLQXJRRDs7QUF1UUEsV0FBTztBQUNMLHNCQUFnQmlGLFFBQVE7QUFDdEJVLDBCQUFrQlYsSUFBbEI7QUFDQWUsMEJBQWtCZixJQUFsQjtBQUNBRCw0QkFBb0JDLElBQXBCO0FBQ0QsT0FMSTtBQU1MLGtDQUE0QkEsUUFBUTtBQUNsQ08sbUJBQVdQLElBQVgsRUFBaUJ0SCx3QkFBakI7QUFDRCxPQVJJO0FBU0wsZ0NBQTBCc0gsUUFBUTtBQUNoQ0EsYUFBS3RDLFVBQUwsQ0FBZ0IvRCxPQUFoQixDQUF3QjJDLGFBQWE7QUFDbkNpRSxxQkFBV1AsSUFBWCxFQUFpQjFELFVBQVV3RSxRQUFWLENBQW1CckgsSUFBcEM7QUFDRCxTQUZEO0FBR0FMLHFDQUE2QjRHLEtBQUszRyxXQUFsQyxFQUFnREksSUFBRCxJQUFVO0FBQ3ZEOEcscUJBQVdQLElBQVgsRUFBaUJ2RyxJQUFqQjtBQUNELFNBRkQ7QUFHRCxPQWhCSSxFQUFQOztBQWtCRCxHQTVnQmMsRUFBakIiLCJmaWxlIjoibm8tdW51c2VkLW1vZHVsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IG1vZHVsZXMgY29udGFpbiBleHBvcnRzIGFuZC9vciBhbGxcbiAqIG1vZHVsZXMgYXJlIGNvbnN1bWVkIHdpdGhpbiBvdGhlciBtb2R1bGVzLlxuICogQGF1dGhvciBSZW7DqSBGZXJtYW5uXG4gKi9cblxuaW1wb3J0IEV4cG9ydHMsIHsgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUgfSBmcm9tICcuLi9FeHBvcnRNYXAnO1xuaW1wb3J0IHsgZ2V0RmlsZUV4dGVuc2lvbnMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2lnbm9yZSc7XG5pbXBvcnQgcmVzb2x2ZSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL3Jlc29sdmUnO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgcmVhZFBrZ1VwIGZyb20gJ3JlYWQtcGtnLXVwJztcbmltcG9ydCB2YWx1ZXMgZnJvbSAnb2JqZWN0LnZhbHVlcyc7XG5pbXBvcnQgaW5jbHVkZXMgZnJvbSAnYXJyYXktaW5jbHVkZXMnO1xuXG4vLyBlc2xpbnQvbGliL3V0aWwvZ2xvYi11dGlsIGhhcyBiZWVuIG1vdmVkIHRvIGVzbGludC9saWIvdXRpbC9nbG9iLXV0aWxzIHdpdGggdmVyc2lvbiA1LjNcbi8vIGFuZCBoYXMgYmVlbiBtb3ZlZCB0byBlc2xpbnQvbGliL2NsaS1lbmdpbmUvZmlsZS1lbnVtZXJhdG9yIGluIHZlcnNpb24gNlxubGV0IGxpc3RGaWxlc1RvUHJvY2VzcztcbnRyeSB7XG4gIGNvbnN0IEZpbGVFbnVtZXJhdG9yID0gcmVxdWlyZSgnZXNsaW50L2xpYi9jbGktZW5naW5lL2ZpbGUtZW51bWVyYXRvcicpLkZpbGVFbnVtZXJhdG9yO1xuICBsaXN0RmlsZXNUb1Byb2Nlc3MgPSBmdW5jdGlvbiAoc3JjLCBleHRlbnNpb25zKSB7XG4gICAgY29uc3QgZSA9IG5ldyBGaWxlRW51bWVyYXRvcih7XG4gICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zLFxuICAgIH0pO1xuICAgIHJldHVybiBBcnJheS5mcm9tKGUuaXRlcmF0ZUZpbGVzKHNyYyksICh7IGZpbGVQYXRoLCBpZ25vcmVkIH0pID0+ICh7XG4gICAgICBpZ25vcmVkLFxuICAgICAgZmlsZW5hbWU6IGZpbGVQYXRoLFxuICAgIH0pKTtcbiAgfTtcbn0gY2F0Y2ggKGUxKSB7XG4gIC8vIFByZXZlbnQgcGFzc2luZyBpbnZhbGlkIG9wdGlvbnMgKGV4dGVuc2lvbnMgYXJyYXkpIHRvIG9sZCB2ZXJzaW9ucyBvZiB0aGUgZnVuY3Rpb24uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lc2xpbnQvZXNsaW50L2Jsb2IvdjUuMTYuMC9saWIvdXRpbC9nbG9iLXV0aWxzLmpzI0wxNzgtTDI4MFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9ibG9iL3Y1LjIuMC9saWIvdXRpbC9nbG9iLXV0aWwuanMjTDE3NC1MMjY5XG4gIGxldCBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcztcbiAgdHJ5IHtcbiAgICBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyA9IHJlcXVpcmUoJ2VzbGludC9saWIvdXRpbC9nbG9iLXV0aWxzJykubGlzdEZpbGVzVG9Qcm9jZXNzO1xuICAgIGxpc3RGaWxlc1RvUHJvY2VzcyA9IGZ1bmN0aW9uIChzcmMsIGV4dGVuc2lvbnMpIHtcbiAgICAgIHJldHVybiBvcmlnaW5hbExpc3RGaWxlc1RvUHJvY2VzcyhzcmMsIHtcbiAgICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyxcbiAgICAgIH0pO1xuICAgIH07XG4gIH0gY2F0Y2ggKGUyKSB7XG4gICAgb3JpZ2luYWxMaXN0RmlsZXNUb1Byb2Nlc3MgPSByZXF1aXJlKCdlc2xpbnQvbGliL3V0aWwvZ2xvYi11dGlsJykubGlzdEZpbGVzVG9Qcm9jZXNzO1xuXG4gICAgbGlzdEZpbGVzVG9Qcm9jZXNzID0gZnVuY3Rpb24gKHNyYywgZXh0ZW5zaW9ucykge1xuICAgICAgY29uc3QgcGF0dGVybnMgPSBzcmMucmVkdWNlKChjYXJyeSwgcGF0dGVybikgPT4ge1xuICAgICAgICByZXR1cm4gY2FycnkuY29uY2F0KGV4dGVuc2lvbnMubWFwKChleHRlbnNpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gL1xcKlxcKnxcXCpcXC4vLnRlc3QocGF0dGVybikgPyBwYXR0ZXJuIDogYCR7cGF0dGVybn0vKiovKiR7ZXh0ZW5zaW9ufWA7XG4gICAgICAgIH0pKTtcbiAgICAgIH0sIHNyYy5zbGljZSgpKTtcblxuICAgICAgcmV0dXJuIG9yaWdpbmFsTGlzdEZpbGVzVG9Qcm9jZXNzKHBhdHRlcm5zKTtcbiAgICB9O1xuICB9XG59XG5cbmNvbnN0IEVYUE9SVF9ERUZBVUxUX0RFQ0xBUkFUSU9OID0gJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic7XG5jb25zdCBFWFBPUlRfTkFNRURfREVDTEFSQVRJT04gPSAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic7XG5jb25zdCBFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OID0gJ0V4cG9ydEFsbERlY2xhcmF0aW9uJztcbmNvbnN0IElNUE9SVF9ERUNMQVJBVElPTiA9ICdJbXBvcnREZWNsYXJhdGlvbic7XG5jb25zdCBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiA9ICdJbXBvcnROYW1lc3BhY2VTcGVjaWZpZXInO1xuY29uc3QgSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSID0gJ0ltcG9ydERlZmF1bHRTcGVjaWZpZXInO1xuY29uc3QgVkFSSUFCTEVfREVDTEFSQVRJT04gPSAnVmFyaWFibGVEZWNsYXJhdGlvbic7XG5jb25zdCBGVU5DVElPTl9ERUNMQVJBVElPTiA9ICdGdW5jdGlvbkRlY2xhcmF0aW9uJztcbmNvbnN0IENMQVNTX0RFQ0xBUkFUSU9OID0gJ0NsYXNzRGVjbGFyYXRpb24nO1xuY29uc3QgSURFTlRJRklFUiA9ICdJZGVudGlmaWVyJztcbmNvbnN0IE9CSkVDVF9QQVRURVJOID0gJ09iamVjdFBhdHRlcm4nO1xuY29uc3QgVFNfSU5URVJGQUNFX0RFQ0xBUkFUSU9OID0gJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nO1xuY29uc3QgVFNfVFlQRV9BTElBU19ERUNMQVJBVElPTiA9ICdUU1R5cGVBbGlhc0RlY2xhcmF0aW9uJztcbmNvbnN0IFRTX0VOVU1fREVDTEFSQVRJT04gPSAnVFNFbnVtRGVjbGFyYXRpb24nO1xuY29uc3QgREVGQVVMVCA9ICdkZWZhdWx0JztcblxuZnVuY3Rpb24gZm9yRWFjaERlY2xhcmF0aW9uSWRlbnRpZmllcihkZWNsYXJhdGlvbiwgY2IpIHtcbiAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgaWYgKFxuICAgICAgZGVjbGFyYXRpb24udHlwZSA9PT0gRlVOQ1RJT05fREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IENMQVNTX0RFQ0xBUkFUSU9OIHx8XG4gICAgICBkZWNsYXJhdGlvbi50eXBlID09PSBUU19JTlRFUkZBQ0VfREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRTX1RZUEVfQUxJQVNfREVDTEFSQVRJT04gfHxcbiAgICAgIGRlY2xhcmF0aW9uLnR5cGUgPT09IFRTX0VOVU1fREVDTEFSQVRJT05cbiAgICApIHtcbiAgICAgIGNiKGRlY2xhcmF0aW9uLmlkLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAoZGVjbGFyYXRpb24udHlwZSA9PT0gVkFSSUFCTEVfREVDTEFSQVRJT04pIHtcbiAgICAgIGRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucy5mb3JFYWNoKCh7IGlkIH0pID0+IHtcbiAgICAgICAgaWYgKGlkLnR5cGUgPT09IE9CSkVDVF9QQVRURVJOKSB7XG4gICAgICAgICAgcmVjdXJzaXZlUGF0dGVybkNhcHR1cmUoaWQsIChwYXR0ZXJuKSA9PiB7XG4gICAgICAgICAgICBpZiAocGF0dGVybi50eXBlID09PSBJREVOVElGSUVSKSB7XG4gICAgICAgICAgICAgIGNiKHBhdHRlcm4ubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2IoaWQubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIExpc3Qgb2YgaW1wb3J0cyBwZXIgZmlsZS5cbiAqXG4gKiBSZXByZXNlbnRlZCBieSBhIHR3by1sZXZlbCBNYXAgdG8gYSBTZXQgb2YgaWRlbnRpZmllcnMuIFRoZSB1cHBlci1sZXZlbCBNYXBcbiAqIGtleXMgYXJlIHRoZSBwYXRocyB0byB0aGUgbW9kdWxlcyBjb250YWluaW5nIHRoZSBpbXBvcnRzLCB3aGlsZSB0aGVcbiAqIGxvd2VyLWxldmVsIE1hcCBrZXlzIGFyZSB0aGUgcGF0aHMgdG8gdGhlIGZpbGVzIHdoaWNoIGFyZSBiZWluZyBpbXBvcnRlZFxuICogZnJvbS4gTGFzdGx5LCB0aGUgU2V0IG9mIGlkZW50aWZpZXJzIGNvbnRhaW5zIGVpdGhlciBuYW1lcyBiZWluZyBpbXBvcnRlZFxuICogb3IgYSBzcGVjaWFsIEFTVCBub2RlIG5hbWUgbGlzdGVkIGFib3ZlIChlLmcgSW1wb3J0RGVmYXVsdFNwZWNpZmllcikuXG4gKlxuICogRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmUgYSBmaWxlIG5hbWVkIGZvby5qcyBjb250YWluaW5nOlxuICpcbiAqICAgaW1wb3J0IHsgbzIgfSBmcm9tICcuL2Jhci5qcyc7XG4gKlxuICogVGhlbiB3ZSB3aWxsIGhhdmUgYSBzdHJ1Y3R1cmUgdGhhdCBsb29rcyBsaWtlOlxuICpcbiAqICAgTWFwIHsgJ2Zvby5qcycgPT4gTWFwIHsgJ2Jhci5qcycgPT4gU2V0IHsgJ28yJyB9IH0gfVxuICpcbiAqIEB0eXBlIHtNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4+fVxuICovXG5jb25zdCBpbXBvcnRMaXN0ID0gbmV3IE1hcCgpO1xuXG4vKipcbiAqIExpc3Qgb2YgZXhwb3J0cyBwZXIgZmlsZS5cbiAqXG4gKiBSZXByZXNlbnRlZCBieSBhIHR3by1sZXZlbCBNYXAgdG8gYW4gb2JqZWN0IG9mIG1ldGFkYXRhLiBUaGUgdXBwZXItbGV2ZWwgTWFwXG4gKiBrZXlzIGFyZSB0aGUgcGF0aHMgdG8gdGhlIG1vZHVsZXMgY29udGFpbmluZyB0aGUgZXhwb3J0cywgd2hpbGUgdGhlXG4gKiBsb3dlci1sZXZlbCBNYXAga2V5cyBhcmUgdGhlIHNwZWNpZmljIGlkZW50aWZpZXJzIG9yIHNwZWNpYWwgQVNUIG5vZGUgbmFtZXNcbiAqIGJlaW5nIGV4cG9ydGVkLiBUaGUgbGVhZi1sZXZlbCBtZXRhZGF0YSBvYmplY3QgYXQgdGhlIG1vbWVudCBvbmx5IGNvbnRhaW5zIGFcbiAqIGB3aGVyZVVzZWRgIHByb3BlcnR5LCB3aGljaCBjb250YWlucyBhIFNldCBvZiBwYXRocyB0byBtb2R1bGVzIHRoYXQgaW1wb3J0XG4gKiB0aGUgbmFtZS5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBhIGZpbGUgbmFtZWQgYmFyLmpzIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZyBleHBvcnRzOlxuICpcbiAqICAgY29uc3QgbzIgPSAnYmFyJztcbiAqICAgZXhwb3J0IHsgbzIgfTtcbiAqXG4gKiBBbmQgYSBmaWxlIG5hbWVkIGZvby5qcyBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgaW1wb3J0OlxuICpcbiAqICAgaW1wb3J0IHsgbzIgfSBmcm9tICcuL2Jhci5qcyc7XG4gKlxuICogVGhlbiB3ZSB3aWxsIGhhdmUgYSBzdHJ1Y3R1cmUgdGhhdCBsb29rcyBsaWtlOlxuICpcbiAqICAgTWFwIHsgJ2Jhci5qcycgPT4gTWFwIHsgJ28yJyA9PiB7IHdoZXJlVXNlZDogU2V0IHsgJ2Zvby5qcycgfSB9IH0gfVxuICpcbiAqIEB0eXBlIHtNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBvYmplY3Q+Pn1cbiAqL1xuY29uc3QgZXhwb3J0TGlzdCA9IG5ldyBNYXAoKTtcblxuY29uc3QgaWdub3JlZEZpbGVzID0gbmV3IFNldCgpO1xuY29uc3QgZmlsZXNPdXRzaWRlU3JjID0gbmV3IFNldCgpO1xuXG5jb25zdCBpc05vZGVNb2R1bGUgPSBwYXRoID0+IHtcbiAgcmV0dXJuIC9cXC8obm9kZV9tb2R1bGVzKVxcLy8udGVzdChwYXRoKTtcbn07XG5cbi8qKlxuICogcmVhZCBhbGwgZmlsZXMgbWF0Y2hpbmcgdGhlIHBhdHRlcm5zIGluIHNyYyBhbmQgaWdub3JlRXhwb3J0c1xuICpcbiAqIHJldHVybiBhbGwgZmlsZXMgbWF0Y2hpbmcgc3JjIHBhdHRlcm4sIHdoaWNoIGFyZSBub3QgbWF0Y2hpbmcgdGhlIGlnbm9yZUV4cG9ydHMgcGF0dGVyblxuICovXG5jb25zdCByZXNvbHZlRmlsZXMgPSAoc3JjLCBpZ25vcmVFeHBvcnRzLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBBcnJheS5mcm9tKGdldEZpbGVFeHRlbnNpb25zKGNvbnRleHQuc2V0dGluZ3MpKTtcblxuICBjb25zdCBzcmNGaWxlcyA9IG5ldyBTZXQoKTtcbiAgY29uc3Qgc3JjRmlsZUxpc3QgPSBsaXN0RmlsZXNUb1Byb2Nlc3Moc3JjLCBleHRlbnNpb25zKTtcblxuICAvLyBwcmVwYXJlIGxpc3Qgb2YgaWdub3JlZCBmaWxlc1xuICBjb25zdCBpZ25vcmVkRmlsZXNMaXN0ID0gIGxpc3RGaWxlc1RvUHJvY2VzcyhpZ25vcmVFeHBvcnRzLCBleHRlbnNpb25zKTtcbiAgaWdub3JlZEZpbGVzTGlzdC5mb3JFYWNoKCh7IGZpbGVuYW1lIH0pID0+IGlnbm9yZWRGaWxlcy5hZGQoZmlsZW5hbWUpKTtcblxuICAvLyBwcmVwYXJlIGxpc3Qgb2Ygc291cmNlIGZpbGVzLCBkb24ndCBjb25zaWRlciBmaWxlcyBmcm9tIG5vZGVfbW9kdWxlc1xuICBzcmNGaWxlTGlzdC5maWx0ZXIoKHsgZmlsZW5hbWUgfSkgPT4gIWlzTm9kZU1vZHVsZShmaWxlbmFtZSkpLmZvckVhY2goKHsgZmlsZW5hbWUgfSkgPT4ge1xuICAgIHNyY0ZpbGVzLmFkZChmaWxlbmFtZSk7XG4gIH0pO1xuICByZXR1cm4gc3JjRmlsZXM7XG59O1xuXG4vKipcbiAqIHBhcnNlIGFsbCBzb3VyY2UgZmlsZXMgYW5kIGJ1aWxkIHVwIDIgbWFwcyBjb250YWluaW5nIHRoZSBleGlzdGluZyBpbXBvcnRzIGFuZCBleHBvcnRzXG4gKi9cbmNvbnN0IHByZXBhcmVJbXBvcnRzQW5kRXhwb3J0cyA9IChzcmNGaWxlcywgY29udGV4dCkgPT4ge1xuICBjb25zdCBleHBvcnRBbGwgPSBuZXcgTWFwKCk7XG4gIHNyY0ZpbGVzLmZvckVhY2goZmlsZSA9PiB7XG4gICAgY29uc3QgZXhwb3J0cyA9IG5ldyBNYXAoKTtcbiAgICBjb25zdCBpbXBvcnRzID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRzID0gRXhwb3J0cy5nZXQoZmlsZSwgY29udGV4dCk7XG4gICAgaWYgKGN1cnJlbnRFeHBvcnRzKSB7XG4gICAgICBjb25zdCB7IGRlcGVuZGVuY2llcywgcmVleHBvcnRzLCBpbXBvcnRzOiBsb2NhbEltcG9ydExpc3QsIG5hbWVzcGFjZSAgfSA9IGN1cnJlbnRFeHBvcnRzO1xuXG4gICAgICAvLyBkZXBlbmRlbmNpZXMgPT09IGV4cG9ydCAqIGZyb21cbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRBbGwgPSBuZXcgU2V0KCk7XG4gICAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaChnZXREZXBlbmRlbmN5ID0+IHtcbiAgICAgICAgY29uc3QgZGVwZW5kZW5jeSA9IGdldERlcGVuZGVuY3koKTtcbiAgICAgICAgaWYgKGRlcGVuZGVuY3kgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RXhwb3J0QWxsLmFkZChkZXBlbmRlbmN5LnBhdGgpO1xuICAgICAgfSk7XG4gICAgICBleHBvcnRBbGwuc2V0KGZpbGUsIGN1cnJlbnRFeHBvcnRBbGwpO1xuXG4gICAgICByZWV4cG9ydHMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV4cG9ydHMuc2V0KGtleSwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWV4cG9ydCA9ICB2YWx1ZS5nZXRJbXBvcnQoKTtcbiAgICAgICAgaWYgKCFyZWV4cG9ydCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbG9jYWxJbXBvcnQgPSBpbXBvcnRzLmdldChyZWV4cG9ydC5wYXRoKTtcbiAgICAgICAgbGV0IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlLmxvY2FsID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgY3VycmVudFZhbHVlID0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRWYWx1ZSA9IHZhbHVlLmxvY2FsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYWxJbXBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSBuZXcgU2V0KFsuLi5sb2NhbEltcG9ydCwgY3VycmVudFZhbHVlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYWxJbXBvcnQgPSBuZXcgU2V0KFtjdXJyZW50VmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgICBpbXBvcnRzLnNldChyZWV4cG9ydC5wYXRoLCBsb2NhbEltcG9ydCk7XG4gICAgICB9KTtcblxuICAgICAgbG9jYWxJbXBvcnRMaXN0LmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKGlzTm9kZU1vZHVsZShrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxvY2FsSW1wb3J0ID0gaW1wb3J0cy5nZXQoa2V5KSB8fCBuZXcgU2V0KCk7XG4gICAgICAgIHZhbHVlLmRlY2xhcmF0aW9ucy5mb3JFYWNoKCh7IGltcG9ydGVkU3BlY2lmaWVycyB9KSA9PlxuICAgICAgICAgIGltcG9ydGVkU3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiBsb2NhbEltcG9ydC5hZGQoc3BlY2lmaWVyKSlcbiAgICAgICAgKTtcbiAgICAgICAgaW1wb3J0cy5zZXQoa2V5LCBsb2NhbEltcG9ydCk7XG4gICAgICB9KTtcbiAgICAgIGltcG9ydExpc3Quc2V0KGZpbGUsIGltcG9ydHMpO1xuXG4gICAgICAvLyBidWlsZCB1cCBleHBvcnQgbGlzdCBvbmx5LCBpZiBmaWxlIGlzIG5vdCBpZ25vcmVkXG4gICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBuYW1lc3BhY2UuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSBERUZBVUxUKSB7XG4gICAgICAgICAgZXhwb3J0cy5zZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSLCB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV4cG9ydHMuc2V0KGtleSwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGV4cG9ydHMuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfSk7XG4gICAgZXhwb3J0cy5zZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkOiBuZXcgU2V0KCkgfSk7XG4gICAgZXhwb3J0TGlzdC5zZXQoZmlsZSwgZXhwb3J0cyk7XG4gIH0pO1xuICBleHBvcnRBbGwuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIHZhbHVlLmZvckVhY2godmFsID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnQgPSBjdXJyZW50RXhwb3J0cy5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTik7XG4gICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoa2V5KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIHRyYXZlcnNlIHRocm91Z2ggYWxsIGltcG9ydHMgYW5kIGFkZCB0aGUgcmVzcGVjdGl2ZSBwYXRoIHRvIHRoZSB3aGVyZVVzZWQtbGlzdFxuICogb2YgdGhlIGNvcnJlc3BvbmRpbmcgZXhwb3J0XG4gKi9cbmNvbnN0IGRldGVybWluZVVzYWdlID0gKCkgPT4ge1xuICBpbXBvcnRMaXN0LmZvckVhY2goKGxpc3RWYWx1ZSwgbGlzdEtleSkgPT4ge1xuICAgIGxpc3RWYWx1ZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQoa2V5KTtcbiAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChjdXJyZW50SW1wb3J0ID0+IHtcbiAgICAgICAgICBsZXQgc3BlY2lmaWVyO1xuICAgICAgICAgIGlmIChjdXJyZW50SW1wb3J0ID09PSBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikge1xuICAgICAgICAgICAgc3BlY2lmaWVyID0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVI7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW1wb3J0ID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgIHNwZWNpZmllciA9IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3BlY2lmaWVyID0gY3VycmVudEltcG9ydDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBzcGVjaWZpZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBleHBvcnRTdGF0ZW1lbnQgPSBleHBvcnRzLmdldChzcGVjaWZpZXIpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRTdGF0ZW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgd2hlcmVVc2VkIH0gPSBleHBvcnRTdGF0ZW1lbnQ7XG4gICAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQobGlzdEtleSk7XG4gICAgICAgICAgICAgIGV4cG9ydHMuc2V0KHNwZWNpZmllciwgeyB3aGVyZVVzZWQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG5jb25zdCBnZXRTcmMgPSBzcmMgPT4ge1xuICBpZiAoc3JjKSB7XG4gICAgcmV0dXJuIHNyYztcbiAgfVxuICByZXR1cm4gW3Byb2Nlc3MuY3dkKCldO1xufTtcblxuLyoqXG4gKiBwcmVwYXJlIHRoZSBsaXN0cyBvZiBleGlzdGluZyBpbXBvcnRzIGFuZCBleHBvcnRzIC0gc2hvdWxkIG9ubHkgYmUgZXhlY3V0ZWQgb25jZSBhdFxuICogdGhlIHN0YXJ0IG9mIGEgbmV3IGVzbGludCBydW5cbiAqL1xubGV0IHNyY0ZpbGVzO1xubGV0IGxhc3RQcmVwYXJlS2V5O1xuY29uc3QgZG9QcmVwYXJhdGlvbiA9IChzcmMsIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgcHJlcGFyZUtleSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICBzcmM6IChzcmMgfHwgW10pLnNvcnQoKSxcbiAgICBpZ25vcmVFeHBvcnRzOiAoaWdub3JlRXhwb3J0cyB8fCBbXSkuc29ydCgpLFxuICAgIGV4dGVuc2lvbnM6IEFycmF5LmZyb20oZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncykpLnNvcnQoKSxcbiAgfSk7XG4gIGlmIChwcmVwYXJlS2V5ID09PSBsYXN0UHJlcGFyZUtleSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGltcG9ydExpc3QuY2xlYXIoKTtcbiAgZXhwb3J0TGlzdC5jbGVhcigpO1xuICBpZ25vcmVkRmlsZXMuY2xlYXIoKTtcbiAgZmlsZXNPdXRzaWRlU3JjLmNsZWFyKCk7XG5cbiAgc3JjRmlsZXMgPSByZXNvbHZlRmlsZXMoZ2V0U3JjKHNyYyksIGlnbm9yZUV4cG9ydHMsIGNvbnRleHQpO1xuICBwcmVwYXJlSW1wb3J0c0FuZEV4cG9ydHMoc3JjRmlsZXMsIGNvbnRleHQpO1xuICBkZXRlcm1pbmVVc2FnZSgpO1xuICBsYXN0UHJlcGFyZUtleSA9IHByZXBhcmVLZXk7XG59O1xuXG5jb25zdCBuZXdOYW1lc3BhY2VJbXBvcnRFeGlzdHMgPSBzcGVjaWZpZXJzID0+XG4gIHNwZWNpZmllcnMuc29tZSgoeyB0eXBlIH0pID0+IHR5cGUgPT09IElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKTtcblxuY29uc3QgbmV3RGVmYXVsdEltcG9ydEV4aXN0cyA9IHNwZWNpZmllcnMgPT5cbiAgc3BlY2lmaWVycy5zb21lKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKTtcblxuY29uc3QgZmlsZUlzSW5Qa2cgPSBmaWxlID0+IHtcbiAgY29uc3QgeyBwYXRoLCBwa2cgfSA9IHJlYWRQa2dVcC5zeW5jKHsgY3dkOiBmaWxlLCBub3JtYWxpemU6IGZhbHNlIH0pO1xuICBjb25zdCBiYXNlUGF0aCA9IGRpcm5hbWUocGF0aCk7XG5cbiAgY29uc3QgY2hlY2tQa2dGaWVsZFN0cmluZyA9IHBrZ0ZpZWxkID0+IHtcbiAgICBpZiAoam9pbihiYXNlUGF0aCwgcGtnRmllbGQpID09PSBmaWxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgY2hlY2tQa2dGaWVsZE9iamVjdCA9IHBrZ0ZpZWxkID0+IHtcbiAgICBjb25zdCBwa2dGaWVsZEZpbGVzID0gdmFsdWVzKHBrZ0ZpZWxkKS5tYXAodmFsdWUgPT4gam9pbihiYXNlUGF0aCwgdmFsdWUpKTtcbiAgICBpZiAoaW5jbHVkZXMocGtnRmllbGRGaWxlcywgZmlsZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjaGVja1BrZ0ZpZWxkID0gcGtnRmllbGQgPT4ge1xuICAgIGlmICh0eXBlb2YgcGtnRmllbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY2hlY2tQa2dGaWVsZFN0cmluZyhwa2dGaWVsZCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwa2dGaWVsZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiBjaGVja1BrZ0ZpZWxkT2JqZWN0KHBrZ0ZpZWxkKTtcbiAgICB9XG4gIH07XG5cbiAgaWYgKHBrZy5wcml2YXRlID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHBrZy5iaW4pIHtcbiAgICBpZiAoY2hlY2tQa2dGaWVsZChwa2cuYmluKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHBrZy5icm93c2VyKSB7XG4gICAgaWYgKGNoZWNrUGtnRmllbGQocGtnLmJyb3dzZXIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAocGtnLm1haW4pIHtcbiAgICBpZiAoY2hlY2tQa2dGaWVsZFN0cmluZyhwa2cubWFpbikpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHsgdXJsOiBkb2NzVXJsKCduby11bnVzZWQtbW9kdWxlcycpIH0sXG4gICAgc2NoZW1hOiBbe1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBzcmM6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ2ZpbGVzL3BhdGhzIHRvIGJlIGFuYWx5emVkIChvbmx5IGZvciB1bnVzZWQgZXhwb3J0cyknLFxuICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZUV4cG9ydHM6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdmaWxlcy9wYXRocyBmb3Igd2hpY2ggdW51c2VkIGV4cG9ydHMgd2lsbCBub3QgYmUgcmVwb3J0ZWQgKGUuZyBtb2R1bGUgZW50cnkgcG9pbnRzKScsXG4gICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICBtaW5JdGVtczogMSxcbiAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICBtaW5MZW5ndGg6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbWlzc2luZ0V4cG9ydHM6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ3JlcG9ydCBtb2R1bGVzIHdpdGhvdXQgYW55IGV4cG9ydHMnLFxuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAgdW51c2VkRXhwb3J0czoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAncmVwb3J0IGV4cG9ydHMgd2l0aG91dCBhbnkgdXNhZ2UnLFxuICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBub3Q6IHtcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHVudXNlZEV4cG9ydHM6IHsgZW51bTogW2ZhbHNlXSB9LFxuICAgICAgICAgIG1pc3NpbmdFeHBvcnRzOiB7IGVudW06IFtmYWxzZV0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBhbnlPZjpbe1xuICAgICAgICBub3Q6IHtcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1bnVzZWRFeHBvcnRzOiB7IGVudW06IFt0cnVlXSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbJ21pc3NpbmdFeHBvcnRzJ10sXG4gICAgICB9LCB7XG4gICAgICAgIG5vdDoge1xuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG1pc3NpbmdFeHBvcnRzOiB7IGVudW06IFt0cnVlXSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbJ3VudXNlZEV4cG9ydHMnXSxcbiAgICAgIH0sIHtcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHVudXNlZEV4cG9ydHM6IHsgZW51bTogW3RydWVdIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcXVpcmVkOiBbJ3VudXNlZEV4cG9ydHMnXSxcbiAgICAgIH0sIHtcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG1pc3NpbmdFeHBvcnRzOiB7IGVudW06IFt0cnVlXSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlZDogWydtaXNzaW5nRXhwb3J0cyddLFxuICAgICAgfV0sXG4gICAgfV0sXG4gIH0sXG5cbiAgY3JlYXRlOiBjb250ZXh0ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzcmMsXG4gICAgICBpZ25vcmVFeHBvcnRzID0gW10sXG4gICAgICBtaXNzaW5nRXhwb3J0cyxcbiAgICAgIHVudXNlZEV4cG9ydHMsXG4gICAgfSA9IGNvbnRleHQub3B0aW9uc1swXSB8fCB7fTtcblxuICAgIGlmICh1bnVzZWRFeHBvcnRzKSB7XG4gICAgICBkb1ByZXBhcmF0aW9uKHNyYywgaWdub3JlRXhwb3J0cywgY29udGV4dCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IGNvbnRleHQuZ2V0RmlsZW5hbWUoKTtcblxuICAgIGNvbnN0IGNoZWNrRXhwb3J0UHJlc2VuY2UgPSBub2RlID0+IHtcbiAgICAgIGlmICghbWlzc2luZ0V4cG9ydHMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoaWdub3JlZEZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4cG9ydENvdW50ID0gZXhwb3J0TGlzdC5nZXQoZmlsZSk7XG4gICAgICBjb25zdCBleHBvcnRBbGwgPSBleHBvcnRDb3VudC5nZXQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTik7XG4gICAgICBjb25zdCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0Q291bnQuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKTtcblxuICAgICAgZXhwb3J0Q291bnQuZGVsZXRlKEVYUE9SVF9BTExfREVDTEFSQVRJT04pO1xuICAgICAgZXhwb3J0Q291bnQuZGVsZXRlKElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKTtcbiAgICAgIGlmIChleHBvcnRDb3VudC5zaXplIDwgMSkge1xuICAgICAgICAvLyBub2RlLmJvZHlbMF0gPT09ICd1bmRlZmluZWQnIG9ubHkgaGFwcGVucywgaWYgZXZlcnl0aGluZyBpcyBjb21tZW50ZWQgb3V0IGluIHRoZSBmaWxlXG4gICAgICAgIC8vIGJlaW5nIGxpbnRlZFxuICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLmJvZHlbMF0gPyBub2RlLmJvZHlbMF0gOiBub2RlLCAnTm8gZXhwb3J0cyBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgZXhwb3J0Q291bnQuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIGV4cG9ydEFsbCk7XG4gICAgICBleHBvcnRDb3VudC5zZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIsIG5hbWVzcGFjZUltcG9ydHMpO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja1VzYWdlID0gKG5vZGUsIGV4cG9ydGVkVmFsdWUpID0+IHtcbiAgICAgIGlmICghdW51c2VkRXhwb3J0cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpZ25vcmVkRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVJc0luUGtnKGZpbGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVzT3V0c2lkZVNyYy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBtYWtlIHN1cmUgZmlsZSB0byBiZSBsaW50ZWQgaXMgaW5jbHVkZWQgaW4gc291cmNlIGZpbGVzXG4gICAgICBpZiAoIXNyY0ZpbGVzLmhhcyhmaWxlKSkge1xuICAgICAgICBzcmNGaWxlcyA9IHJlc29sdmVGaWxlcyhnZXRTcmMoc3JjKSwgaWdub3JlRXhwb3J0cywgY29udGV4dCk7XG4gICAgICAgIGlmICghc3JjRmlsZXMuaGFzKGZpbGUpKSB7XG4gICAgICAgICAgZmlsZXNPdXRzaWRlU3JjLmFkZChmaWxlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KGZpbGUpO1xuXG4gICAgICAvLyBzcGVjaWFsIGNhc2U6IGV4cG9ydCAqIGZyb21cbiAgICAgIGNvbnN0IGV4cG9ydEFsbCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pO1xuICAgICAgaWYgKHR5cGVvZiBleHBvcnRBbGwgIT09ICd1bmRlZmluZWQnICYmIGV4cG9ydGVkVmFsdWUgIT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUikge1xuICAgICAgICBpZiAoZXhwb3J0QWxsLndoZXJlVXNlZC5zaXplID4gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBzcGVjaWFsIGNhc2U6IG5hbWVzcGFjZSBpbXBvcnRcbiAgICAgIGNvbnN0IG5hbWVzcGFjZUltcG9ydHMgPSBleHBvcnRzLmdldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUik7XG4gICAgICBpZiAodHlwZW9mIG5hbWVzcGFjZUltcG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChuYW1lc3BhY2VJbXBvcnRzLndoZXJlVXNlZC5zaXplID4gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBleHBvcnRzTGlzdCB3aWxsIGFsd2F5cyBtYXAgYW55IGltcG9ydGVkIHZhbHVlIG9mICdkZWZhdWx0JyB0byAnSW1wb3J0RGVmYXVsdFNwZWNpZmllcidcbiAgICAgIGNvbnN0IGV4cG9ydHNLZXkgPSBleHBvcnRlZFZhbHVlID09PSBERUZBVUxUID8gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSIDogZXhwb3J0ZWRWYWx1ZTtcblxuICAgICAgY29uc3QgZXhwb3J0U3RhdGVtZW50ID0gZXhwb3J0cy5nZXQoZXhwb3J0c0tleSk7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gZXhwb3J0c0tleSA9PT0gSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSID8gREVGQVVMVCA6IGV4cG9ydHNLZXk7XG5cbiAgICAgIGlmICh0eXBlb2YgZXhwb3J0U3RhdGVtZW50ICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICAgIGlmIChleHBvcnRTdGF0ZW1lbnQud2hlcmVVc2VkLnNpemUgPCAxKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgYGV4cG9ydGVkIGRlY2xhcmF0aW9uICcke3ZhbHVlfScgbm90IHVzZWQgd2l0aGluIG90aGVyIG1vZHVsZXNgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoXG4gICAgICAgICAgbm9kZSxcbiAgICAgICAgICBgZXhwb3J0ZWQgZGVjbGFyYXRpb24gJyR7dmFsdWV9JyBub3QgdXNlZCB3aXRoaW4gb3RoZXIgbW9kdWxlc2BcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGV4cG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVFeHBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKGlnbm9yZWRGaWxlcy5oYXMoZmlsZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KGZpbGUpO1xuXG4gICAgICAvLyBuZXcgbW9kdWxlIGhhcyBiZWVuIGNyZWF0ZWQgZHVyaW5nIHJ1bnRpbWVcbiAgICAgIC8vIGluY2x1ZGUgaXQgaW4gZnVydGhlciBwcm9jZXNzaW5nXG4gICAgICBpZiAodHlwZW9mIGV4cG9ydHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGV4cG9ydHMgPSBuZXcgTWFwKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0V4cG9ydHMgPSBuZXcgTWFwKCk7XG4gICAgICBjb25zdCBuZXdFeHBvcnRJZGVudGlmaWVycyA9IG5ldyBTZXQoKTtcblxuICAgICAgbm9kZS5ib2R5LmZvckVhY2goKHsgdHlwZSwgZGVjbGFyYXRpb24sIHNwZWNpZmllcnMgfSkgPT4ge1xuICAgICAgICBpZiAodHlwZSA9PT0gRVhQT1JUX0RFRkFVTFRfREVDTEFSQVRJT04pIHtcbiAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gRVhQT1JUX05BTUVEX0RFQ0xBUkFUSU9OKSB7XG4gICAgICAgICAgaWYgKHNwZWNpZmllcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgICAgIGlmIChzcGVjaWZpZXIuZXhwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5hZGQoc3BlY2lmaWVyLmV4cG9ydGVkLm5hbWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yRWFjaERlY2xhcmF0aW9uSWRlbnRpZmllcihkZWNsYXJhdGlvbiwgKG5hbWUpID0+IHtcbiAgICAgICAgICAgIG5ld0V4cG9ydElkZW50aWZpZXJzLmFkZChuYW1lKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIG9sZCBleHBvcnRzIGV4aXN0IHdpdGhpbiBsaXN0IG9mIG5ldyBleHBvcnRzIGlkZW50aWZpZXJzOiBhZGQgdG8gbWFwIG9mIG5ldyBleHBvcnRzXG4gICAgICBleHBvcnRzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKG5ld0V4cG9ydElkZW50aWZpZXJzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgbmV3RXhwb3J0cy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBuZXcgZXhwb3J0IGlkZW50aWZpZXJzIGFkZGVkOiBhZGQgdG8gbWFwIG9mIG5ldyBleHBvcnRzXG4gICAgICBuZXdFeHBvcnRJZGVudGlmaWVycy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmICghZXhwb3J0cy5oYXMoa2V5KSkge1xuICAgICAgICAgIG5ld0V4cG9ydHMuc2V0KGtleSwgeyB3aGVyZVVzZWQ6IG5ldyBTZXQoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIHByZXNlcnZlIGluZm9ybWF0aW9uIGFib3V0IG5hbWVzcGFjZSBpbXBvcnRzXG4gICAgICBjb25zdCBleHBvcnRBbGwgPSBleHBvcnRzLmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKTtcbiAgICAgIGxldCBuYW1lc3BhY2VJbXBvcnRzID0gZXhwb3J0cy5nZXQoSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpO1xuXG4gICAgICBpZiAodHlwZW9mIG5hbWVzcGFjZUltcG9ydHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIG5hbWVzcGFjZUltcG9ydHMgPSB7IHdoZXJlVXNlZDogbmV3IFNldCgpIH07XG4gICAgICB9XG5cbiAgICAgIG5ld0V4cG9ydHMuc2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04sIGV4cG9ydEFsbCk7XG4gICAgICBuZXdFeHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgbmFtZXNwYWNlSW1wb3J0cyk7XG4gICAgICBleHBvcnRMaXN0LnNldChmaWxlLCBuZXdFeHBvcnRzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogb25seSB1c2VmdWwgZm9yIHRvb2xzIGxpa2UgdnNjb2RlLWVzbGludFxuICAgICAqXG4gICAgICogdXBkYXRlIGxpc3RzIG9mIGV4aXN0aW5nIGltcG9ydHMgZHVyaW5nIHJ1bnRpbWVcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVJbXBvcnRVc2FnZSA9IG5vZGUgPT4ge1xuICAgICAgaWYgKCF1bnVzZWRFeHBvcnRzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IG9sZEltcG9ydFBhdGhzID0gaW1wb3J0TGlzdC5nZXQoZmlsZSk7XG4gICAgICBpZiAodHlwZW9mIG9sZEltcG9ydFBhdGhzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBvbGRJbXBvcnRQYXRocyA9IG5ldyBNYXAoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkTmFtZXNwYWNlSW1wb3J0cyA9IG5ldyBTZXQoKTtcbiAgICAgIGNvbnN0IG5ld05hbWVzcGFjZUltcG9ydHMgPSBuZXcgU2V0KCk7XG5cbiAgICAgIGNvbnN0IG9sZEV4cG9ydEFsbCA9IG5ldyBTZXQoKTtcbiAgICAgIGNvbnN0IG5ld0V4cG9ydEFsbCA9IG5ldyBTZXQoKTtcblxuICAgICAgY29uc3Qgb2xkRGVmYXVsdEltcG9ydHMgPSBuZXcgU2V0KCk7XG4gICAgICBjb25zdCBuZXdEZWZhdWx0SW1wb3J0cyA9IG5ldyBTZXQoKTtcblxuICAgICAgY29uc3Qgb2xkSW1wb3J0cyA9IG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IG5ld0ltcG9ydHMgPSBuZXcgTWFwKCk7XG4gICAgICBvbGRJbXBvcnRQYXRocy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZS5oYXMoRVhQT1JUX0FMTF9ERUNMQVJBVElPTikpIHtcbiAgICAgICAgICBvbGRFeHBvcnRBbGwuYWRkKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmhhcyhJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUikpIHtcbiAgICAgICAgICBvbGROYW1lc3BhY2VJbXBvcnRzLmFkZChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5oYXMoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKSkge1xuICAgICAgICAgIG9sZERlZmF1bHRJbXBvcnRzLmFkZChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlLmZvckVhY2godmFsID0+IHtcbiAgICAgICAgICBpZiAodmFsICE9PSBJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiAmJlxuICAgICAgICAgICAgICB2YWwgIT09IElNUE9SVF9ERUZBVUxUX1NQRUNJRklFUikge1xuICAgICAgICAgICAgb2xkSW1wb3J0cy5zZXQodmFsLCBrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgbm9kZS5ib2R5LmZvckVhY2goYXN0Tm9kZSA9PiB7XG4gICAgICAgIGxldCByZXNvbHZlZFBhdGg7XG5cbiAgICAgICAgLy8gc3VwcG9ydCBmb3IgZXhwb3J0IHsgdmFsdWUgfSBmcm9tICdtb2R1bGUnXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IEVYUE9SVF9OQU1FRF9ERUNMQVJBVElPTikge1xuICAgICAgICAgIGlmIChhc3ROb2RlLnNvdXJjZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShhc3ROb2RlLnNvdXJjZS5yYXcucmVwbGFjZSgvKCd8XCIpL2csICcnKSwgY29udGV4dCk7XG4gICAgICAgICAgICBhc3ROb2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuYW1lID0gc3BlY2lmaWVyLmxvY2FsLm5hbWU7XG4gICAgICAgICAgICAgIGlmIChzcGVjaWZpZXIubG9jYWwubmFtZSA9PT0gREVGQVVMVCkge1xuICAgICAgICAgICAgICAgIG5ld0RlZmF1bHRJbXBvcnRzLmFkZChyZXNvbHZlZFBhdGgpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld0ltcG9ydHMuc2V0KG5hbWUsIHJlc29sdmVkUGF0aCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhc3ROb2RlLnR5cGUgPT09IEVYUE9SVF9BTExfREVDTEFSQVRJT04pIHtcbiAgICAgICAgICByZXNvbHZlZFBhdGggPSByZXNvbHZlKGFzdE5vZGUuc291cmNlLnJhdy5yZXBsYWNlKC8oJ3xcIikvZywgJycpLCBjb250ZXh0KTtcbiAgICAgICAgICBuZXdFeHBvcnRBbGwuYWRkKHJlc29sdmVkUGF0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXN0Tm9kZS50eXBlID09PSBJTVBPUlRfREVDTEFSQVRJT04pIHtcbiAgICAgICAgICByZXNvbHZlZFBhdGggPSByZXNvbHZlKGFzdE5vZGUuc291cmNlLnJhdy5yZXBsYWNlKC8oJ3xcIikvZywgJycpLCBjb250ZXh0KTtcbiAgICAgICAgICBpZiAoIXJlc29sdmVkUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc05vZGVNb2R1bGUocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChuZXdOYW1lc3BhY2VJbXBvcnRFeGlzdHMoYXN0Tm9kZS5zcGVjaWZpZXJzKSkge1xuICAgICAgICAgICAgbmV3TmFtZXNwYWNlSW1wb3J0cy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobmV3RGVmYXVsdEltcG9ydEV4aXN0cyhhc3ROb2RlLnNwZWNpZmllcnMpKSB7XG4gICAgICAgICAgICBuZXdEZWZhdWx0SW1wb3J0cy5hZGQocmVzb2x2ZWRQYXRoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhc3ROb2RlLnNwZWNpZmllcnMuZm9yRWFjaChzcGVjaWZpZXIgPT4ge1xuICAgICAgICAgICAgaWYgKHNwZWNpZmllci50eXBlID09PSBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIgfHxcbiAgICAgICAgICAgICAgICBzcGVjaWZpZXIudHlwZSA9PT0gSU1QT1JUX05BTUVTUEFDRV9TUEVDSUZJRVIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV3SW1wb3J0cy5zZXQoc3BlY2lmaWVyLmltcG9ydGVkLm5hbWUsIHJlc29sdmVkUGF0aCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBuZXdFeHBvcnRBbGwuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghb2xkRXhwb3J0QWxsLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBsZXQgaW1wb3J0cyA9IG9sZEltcG9ydFBhdGhzLmdldCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBpbXBvcnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaW1wb3J0cyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW1wb3J0cy5hZGQoRVhQT1JUX0FMTF9ERUNMQVJBVElPTik7XG4gICAgICAgICAgb2xkSW1wb3J0UGF0aHMuc2V0KHZhbHVlLCBpbXBvcnRzKTtcblxuICAgICAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpO1xuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0O1xuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIGV4cG9ydExpc3Quc2V0KHZhbHVlLCBleHBvcnRzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQoZmlsZSk7XG4gICAgICAgICAgICBleHBvcnRzLnNldChFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OLCB7IHdoZXJlVXNlZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBvbGRFeHBvcnRBbGwuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghbmV3RXhwb3J0QWxsLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShFWFBPUlRfQUxMX0RFQ0xBUkFUSU9OKTtcblxuICAgICAgICAgIGNvbnN0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KEVYUE9SVF9BTExfREVDTEFSQVRJT04pO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5kZWxldGUoZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbmV3RGVmYXVsdEltcG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghb2xkRGVmYXVsdEltcG9ydHMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgIGxldCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAodHlwZW9mIGltcG9ydHMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpbXBvcnRzID0gbmV3IFNldCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbXBvcnRzLmFkZChJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpO1xuICAgICAgICAgIG9sZEltcG9ydFBhdGhzLnNldCh2YWx1ZSwgaW1wb3J0cyk7XG5cbiAgICAgICAgICBsZXQgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBsZXQgY3VycmVudEV4cG9ydDtcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIGV4cG9ydExpc3Quc2V0KHZhbHVlLCBleHBvcnRzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQoZmlsZSk7XG4gICAgICAgICAgICBleHBvcnRzLnNldChJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIsIHsgd2hlcmVVc2VkIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIG9sZERlZmF1bHRJbXBvcnRzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAoIW5ld0RlZmF1bHRJbXBvcnRzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpO1xuXG4gICAgICAgICAgY29uc3QgZXhwb3J0cyA9IGV4cG9ydExpc3QuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RXhwb3J0ID0gZXhwb3J0cy5nZXQoSU1QT1JUX0RFRkFVTFRfU1BFQ0lGSUVSKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgY3VycmVudEV4cG9ydC53aGVyZVVzZWQuZGVsZXRlKGZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIG5ld05hbWVzcGFjZUltcG9ydHMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICghb2xkTmFtZXNwYWNlSW1wb3J0cy5oYXModmFsdWUpKSB7XG4gICAgICAgICAgbGV0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpO1xuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGltcG9ydHMuYWRkKElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKTtcbiAgICAgICAgICBvbGRJbXBvcnRQYXRocy5zZXQodmFsdWUsIGltcG9ydHMpO1xuXG4gICAgICAgICAgbGV0IGV4cG9ydHMgPSBleHBvcnRMaXN0LmdldCh2YWx1ZSk7XG4gICAgICAgICAgbGV0IGN1cnJlbnRFeHBvcnQ7XG4gICAgICAgICAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgY3VycmVudEV4cG9ydCA9IGV4cG9ydHMuZ2V0KElNUE9SVF9OQU1FU1BBQ0VfU1BFQ0lGSUVSKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwb3J0cyA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIGV4cG9ydExpc3Quc2V0KHZhbHVlLCBleHBvcnRzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5hZGQoZmlsZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZXJlVXNlZCA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHdoZXJlVXNlZC5hZGQoZmlsZSk7XG4gICAgICAgICAgICBleHBvcnRzLnNldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUiwgeyB3aGVyZVVzZWQgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgb2xkTmFtZXNwYWNlSW1wb3J0cy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKCFuZXdOYW1lc3BhY2VJbXBvcnRzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbXBvcnRzID0gb2xkSW1wb3J0UGF0aHMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpbXBvcnRzLmRlbGV0ZShJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUik7XG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpO1xuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChJTVBPUlRfTkFNRVNQQUNFX1NQRUNJRklFUik7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRFeHBvcnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmRlbGV0ZShmaWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBuZXdJbXBvcnRzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKCFvbGRJbXBvcnRzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgbGV0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpO1xuICAgICAgICAgIGlmICh0eXBlb2YgaW1wb3J0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGltcG9ydHMgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGltcG9ydHMuYWRkKGtleSk7XG4gICAgICAgICAgb2xkSW1wb3J0UGF0aHMuc2V0KHZhbHVlLCBpbXBvcnRzKTtcblxuICAgICAgICAgIGxldCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpO1xuICAgICAgICAgIGxldCBjdXJyZW50RXhwb3J0O1xuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChrZXkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBvcnRzID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgZXhwb3J0TGlzdC5zZXQodmFsdWUsIGV4cG9ydHMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudEV4cG9ydCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBvcnQud2hlcmVVc2VkLmFkZChmaWxlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2hlcmVVc2VkID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgd2hlcmVVc2VkLmFkZChmaWxlKTtcbiAgICAgICAgICAgIGV4cG9ydHMuc2V0KGtleSwgeyB3aGVyZVVzZWQgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgb2xkSW1wb3J0cy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIGlmICghbmV3SW1wb3J0cy5oYXMoa2V5KSkge1xuICAgICAgICAgIGNvbnN0IGltcG9ydHMgPSBvbGRJbXBvcnRQYXRocy5nZXQodmFsdWUpO1xuICAgICAgICAgIGltcG9ydHMuZGVsZXRlKGtleSk7XG5cbiAgICAgICAgICBjb25zdCBleHBvcnRzID0gZXhwb3J0TGlzdC5nZXQodmFsdWUpO1xuICAgICAgICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFeHBvcnQgPSBleHBvcnRzLmdldChrZXkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50RXhwb3J0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICBjdXJyZW50RXhwb3J0LndoZXJlVXNlZC5kZWxldGUoZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBub2RlID0+IHtcbiAgICAgICAgdXBkYXRlRXhwb3J0VXNhZ2Uobm9kZSk7XG4gICAgICAgIHVwZGF0ZUltcG9ydFVzYWdlKG5vZGUpO1xuICAgICAgICBjaGVja0V4cG9ydFByZXNlbmNlKG5vZGUpO1xuICAgICAgfSxcbiAgICAgICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nOiBub2RlID0+IHtcbiAgICAgICAgY2hlY2tVc2FnZShub2RlLCBJTVBPUlRfREVGQVVMVF9TUEVDSUZJRVIpO1xuICAgICAgfSxcbiAgICAgICdFeHBvcnROYW1lZERlY2xhcmF0aW9uJzogbm9kZSA9PiB7XG4gICAgICAgIG5vZGUuc3BlY2lmaWVycy5mb3JFYWNoKHNwZWNpZmllciA9PiB7XG4gICAgICAgICAgY2hlY2tVc2FnZShub2RlLCBzcGVjaWZpZXIuZXhwb3J0ZWQubmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBmb3JFYWNoRGVjbGFyYXRpb25JZGVudGlmaWVyKG5vZGUuZGVjbGFyYXRpb24sIChuYW1lKSA9PiB7XG4gICAgICAgICAgY2hlY2tVc2FnZShub2RlLCBuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js b/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js index 10b65740c1..dc38f31c84 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-useless-path-segments.js @@ -97,7 +97,7 @@ module.exports = { // Try to find ambiguous imports if (parentDirectory !== '.' && parentDirectory !== '..') { - for (let fileExtension of fileExtensions) { + for (const fileExtension of fileExtensions) { if ((0, _resolve2.default)(`${parentDirectory}${fileExtension}`, context)) { return reportWithProposedPath(`${parentDirectory}/`); } @@ -142,4 +142,4 @@ module.exports = { return (0, _moduleVisitor2.default)(checkSourceValue, options); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMuanMiXSwibmFtZXMiOlsidG9SZWxhdGl2ZVBhdGgiLCJyZWxhdGl2ZVBhdGgiLCJzdHJpcHBlZCIsInJlcGxhY2UiLCJ0ZXN0Iiwibm9ybWFsaXplIiwiZm4iLCJwYXRoIiwicG9zaXgiLCJjb3VudFJlbGF0aXZlUGFyZW50cyIsInBhdGhTZWdtZW50cyIsInJlZHVjZSIsInN1bSIsInBhdGhTZWdtZW50IiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY29tbW9uanMiLCJub1VzZWxlc3NJbmRleCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsImN1cnJlbnREaXIiLCJkaXJuYW1lIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZSIsImltcG9ydFBhdGgiLCJ2YWx1ZSIsInJlcG9ydFdpdGhQcm9wb3NlZFBhdGgiLCJwcm9wb3NlZFBhdGgiLCJyZXBvcnQiLCJub2RlIiwibWVzc2FnZSIsImZpeCIsImZpeGVyIiwicmVwbGFjZVRleHQiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhcnRzV2l0aCIsInJlc29sdmVkUGF0aCIsIm5vcm1lZFBhdGgiLCJyZXNvbHZlZE5vcm1lZFBhdGgiLCJmaWxlRXh0ZW5zaW9ucyIsInNldHRpbmdzIiwicmVnZXhVbm5lY2Vzc2FyeUluZGV4IiwiUmVnRXhwIiwiQXJyYXkiLCJmcm9tIiwiam9pbiIsInBhcmVudERpcmVjdG9yeSIsImZpbGVFeHRlbnNpb24iLCJ1bmRlZmluZWQiLCJleHBlY3RlZCIsInJlbGF0aXZlIiwiZXhwZWN0ZWRTcGxpdCIsInNwbGl0Iiwic2VwIiwiaW1wb3J0UGF0aFNwbGl0IiwiY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIiwiY291bnRFeHBl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O0FBRUdHLFlBRkgsQ0FFVUwsZ0JBQWdCSSxLQUFoQixDQUFzQkgsaUNBQWlDRSxJQUF2RCxDQUZWO0FBR0daLFVBSEgsQ0FHUSxHQUhSLENBREYsQ0FESyxDQUFQOzs7QUFRRDs7QUFFRCxXQUFPLDZCQUFjeEIsZ0JBQWQsRUFBZ0NELE9BQWhDLENBQVA7QUFDRCxHQXpHYyxFQUFqQiIsImZpbGUiOiJuby11c2VsZXNzLXBhdGgtc2VnbWVudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlT3ZlcnZpZXcgRW5zdXJlcyB0aGF0IHRoZXJlIGFyZSBubyB1c2VsZXNzIHBhdGggc2VnbWVudHNcbiAqIEBhdXRob3IgVGhvbWFzIEdyYWluZ2VyXG4gKi9cblxuaW1wb3J0IHsgZ2V0RmlsZUV4dGVuc2lvbnMgfSBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL2lnbm9yZSdcbmltcG9ydCBtb2R1bGVWaXNpdG9yIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvbW9kdWxlVmlzaXRvcidcbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSdcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG4vKipcbiAqIGNvbnZlcnQgYSBwb3RlbnRpYWxseSByZWxhdGl2ZSBwYXRoIGZyb20gbm9kZSB1dGlscyBpbnRvIGEgdHJ1ZVxuICogcmVsYXRpdmUgcGF0aC5cbiAqXG4gKiAuLi8gLT4gLi5cbiAqIC4vIC0+IC5cbiAqIC5mb28vYmFyIC0+IC4vLmZvby9iYXJcbiAqIC4uZm9vL2JhciAtPiAuLy4uZm9vL2JhclxuICogZm9vL2JhciAtPiAuL2Zvby9iYXJcbiAqXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIHtzdHJpbmd9IHJlbGF0aXZlIHBvc2l4IHBhdGggcG90ZW50aWFsbHkgbWlzc2luZyBsZWFkaW5nICcuLydcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJlbGF0aXZlIHBvc2l4IHBhdGggdGhhdCBhbHdheXMgc3RhcnRzIHdpdGggYSAuL1xuICoqL1xuZnVuY3Rpb24gdG9SZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoKSB7XG4gIGNvbnN0IHN0cmlwcGVkID0gcmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLyQvZywgJycpIC8vIFJlbW92ZSB0cmFpbGluZyAvXG5cbiAgcmV0dXJuIC9eKChcXC5cXC4pfChcXC4pKSgkfFxcLykvLnRlc3Qoc3RyaXBwZWQpID8gc3RyaXBwZWQgOiBgLi8ke3N0cmlwcGVkfWBcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplKGZuKSB7XG4gIHJldHVybiB0b1JlbGF0aXZlUGF0aChwYXRoLnBvc2l4Lm5vcm1hbGl6ZShmbikpXG59XG5cbmZ1bmN0aW9uIGNvdW50UmVsYXRpdmVQYXJlbnRzKHBhdGhTZWdtZW50cykge1xuICByZXR1cm4gcGF0aFNlZ21lbnRzLnJlZHVjZSgoc3VtLCBwYXRoU2VnbWVudCkgPT4gcGF0aFNlZ21lbnQgPT09ICcuLicgPyBzdW0gKyAxIDogc3VtLCAwKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cycpLFxuICAgIH0sXG5cbiAgICBmaXhhYmxlOiAnY29kZScsXG5cbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjb21tb25qczogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICAgICBub1VzZWxlc3NJbmRleDogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgY3VycmVudERpciA9IHBhdGguZGlybmFtZShjb250ZXh0LmdldEZpbGVuYW1lKCkpXG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQub3B0aW9uc1swXVxuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWU6IGltcG9ydFBhdGggfSA9IHNvdXJjZVxuXG4gICAgICBmdW5jdGlvbiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKHByb3Bvc2VkUGF0aCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogc291cmNlLFxuICAgICAgICAgIC8vIE5vdGU6IFVzaW5nIG1lc3NhZ2VJZHMgaXMgbm90IHBvc3NpYmxlIGR1ZSB0byB0aGUgc3VwcG9ydCBmb3IgRVNMaW50IDIgYW5kIDNcbiAgICAgICAgICBtZXNzYWdlOiBgVXNlbGVzcyBwYXRoIHNlZ21lbnRzIGZvciBcIiR7aW1wb3J0UGF0aH1cIiwgc2hvdWxkIGJlIFwiJHtwcm9wb3NlZFBhdGh9XCJgLFxuICAgICAgICAgIGZpeDogZml4ZXIgPT4gcHJvcG9zZWRQYXRoICYmIGZpeGVyLnJlcGxhY2VUZXh0KHNvdXJjZSwgSlNPTi5zdHJpbmdpZnkocHJvcG9zZWRQYXRoKSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIE9ubHkgcmVsYXRpdmUgaW1wb3J0cyBhcmUgcmVsZXZhbnQgZm9yIHRoaXMgcnVsZSAtLT4gU2tpcCBjaGVja2luZ1xuICAgICAgaWYgKCFpbXBvcnRQYXRoLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IHJ1bGUgdmlvbGF0aW9uIGlmIHBhdGggaXMgbm90IHRoZSBzaG9ydGVzdCBwb3NzaWJsZVxuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KVxuICAgICAgY29uc3Qgbm9ybWVkUGF0aCA9IG5vcm1hbGl6ZShpbXBvcnRQYXRoKVxuICAgICAgY29uc3QgcmVzb2x2ZWROb3JtZWRQYXRoID0gcmVzb2x2ZShub3JtZWRQYXRoLCBjb250ZXh0KVxuICAgICAgaWYgKG5vcm1lZFBhdGggIT09IGltcG9ydFBhdGggJiYgcmVzb2x2ZWRQYXRoID09PSByZXNvbHZlZE5vcm1lZFBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgobm9ybWVkUGF0aClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbnMgPSBnZXRGaWxlRXh0ZW5zaW9ucyhjb250ZXh0LnNldHRpbmdzKVxuICAgICAgY29uc3QgcmVnZXhVbm5lY2Vzc2FyeUluZGV4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgYC4qXFxcXC9pbmRleChcXFxcJHtBcnJheS5mcm9tKGZpbGVFeHRlbnNpb25zKS5qb2luKCd8XFxcXCcpfSk/JGBcbiAgICAgIClcblxuICAgICAgLy8gQ2hlY2sgaWYgcGF0aCBjb250YWlucyB1bm5lY2Vzc2FyeSBpbmRleCAoaW5jbHVkaW5nIGEgY29uZmlndXJlZCBleHRlbnNpb24pXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm5vVXNlbGVzc0luZGV4ICYmIHJlZ2V4VW5uZWNlc3NhcnlJbmRleC50ZXN0KGltcG9ydFBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudERpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRQYXRoKVxuXG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGFtYmlndW91cyBpbXBvcnRzXG4gICAgICAgIGlmIChwYXJlbnREaXJlY3RvcnkgIT09ICcuJyAmJiBwYXJlbnREaXJlY3RvcnkgIT09ICcuLicpIHtcbiAgICAgICAgICBmb3IgKGxldCBmaWxlRXh0ZW5zaW9uIG9mIGZpbGVFeHRlbnNpb25zKSB7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZShgJHtwYXJlbnREaXJlY3Rvcnl9JHtmaWxlRXh0ZW5zaW9ufWAsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKGAke3BhcmVudERpcmVjdG9yeX0vYClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVwb3J0V2l0aFByb3Bvc2VkUGF0aChwYXJlbnREaXJlY3RvcnkpXG4gICAgICB9XG5cbiAgICAgIC8vIFBhdGggaXMgc2hvcnRlc3QgcG9zc2libGUgKyBzdGFydHMgZnJvbSB0aGUgY3VycmVudCBkaXJlY3RvcnkgLS0+IFJldHVybiBkaXJlY3RseVxuICAgICAgaWYgKGltcG9ydFBhdGguc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUGF0aCBpcyBub3QgZXhpc3RpbmcgLS0+IFJldHVybiBkaXJlY3RseSAoZm9sbG93aW5nIGNvZGUgcmVxdWlyZXMgcGF0aCB0byBiZSBkZWZpbmVkKVxuICAgICAgaWYgKHJlc29sdmVkUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBleHBlY3RlZCA9IHBhdGgucmVsYXRpdmUoY3VycmVudERpciwgcmVzb2x2ZWRQYXRoKSAvLyBFeHBlY3RlZCBpbXBvcnQgcGF0aFxuICAgICAgY29uc3QgZXhwZWN0ZWRTcGxpdCA9IGV4cGVjdGVkLnNwbGl0KHBhdGguc2VwKSAvLyBTcGxpdCBieSAvIG9yIFxcIChkZXBlbmRpbmcgb24gT1MpXG4gICAgICBjb25zdCBpbXBvcnRQYXRoU3BsaXQgPSBpbXBvcnRQYXRoLnJlcGxhY2UoL15cXC5cXC8vLCAnJykuc3BsaXQoJy8nKVxuICAgICAgY29uc3QgY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzID0gY291bnRSZWxhdGl2ZVBhcmVudHMoaW1wb3J0UGF0aFNwbGl0KVxuICAgICAgY29uc3QgY291bnRFeHBlY3RlZFJlbGF0aXZlUGFyZW50cyA9IGNvdW50UmVsYXRpdmVQYXJlbnRzKGV4cGVjdGVkU3BsaXQpXG4gICAgICBjb25zdCBkaWZmID0gY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIC0gY291bnRFeHBlY3RlZFJlbGF0aXZlUGFyZW50c1xuXG4gICAgICAvLyBTYW1lIG51bWJlciBvZiByZWxhdGl2ZSBwYXJlbnRzIC0tPiBQYXRocyBhcmUgdGhlIHNhbWUgLS0+IFJldHVybiBkaXJlY3RseVxuICAgICAgaWYgKGRpZmYgPD0gMCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IGFuZCBwcm9wb3NlIG1pbmltYWwgbnVtYmVyIG9mIHJlcXVpcmVkIHJlbGF0aXZlIHBhcmVudHNcbiAgICAgIHJldHVybiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKFxuICAgICAgICB0b1JlbGF0aXZlUGF0aChcbiAgICAgICAgICBpbXBvcnRQYXRoU3BsaXRcbiAgICAgICAgICAgIC5zbGljZSgwLCBjb3VudEV4cGVjdGVkUmVsYXRpdmVQYXJlbnRzKVxuICAgICAgICAgICAgLmNvbmNhdChpbXBvcnRQYXRoU3BsaXQuc2xpY2UoY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzICsgZGlmZikpXG4gICAgICAgICAgICAuam9pbignLycpXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcihjaGVja1NvdXJjZVZhbHVlLCBvcHRpb25zKVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby11c2VsZXNzLXBhdGgtc2VnbWVudHMuanMiXSwibmFtZXMiOlsidG9SZWxhdGl2ZVBhdGgiLCJyZWxhdGl2ZVBhdGgiLCJzdHJpcHBlZCIsInJlcGxhY2UiLCJ0ZXN0Iiwibm9ybWFsaXplIiwiZm4iLCJwYXRoIiwicG9zaXgiLCJjb3VudFJlbGF0aXZlUGFyZW50cyIsInBhdGhTZWdtZW50cyIsInJlZHVjZSIsInN1bSIsInBhdGhTZWdtZW50IiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsImZpeGFibGUiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwiY29tbW9uanMiLCJub1VzZWxlc3NJbmRleCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwiY29udGV4dCIsImN1cnJlbnREaXIiLCJkaXJuYW1lIiwiZ2V0RmlsZW5hbWUiLCJvcHRpb25zIiwiY2hlY2tTb3VyY2VWYWx1ZSIsInNvdXJjZSIsImltcG9ydFBhdGgiLCJ2YWx1ZSIsInJlcG9ydFdpdGhQcm9wb3NlZFBhdGgiLCJwcm9wb3NlZFBhdGgiLCJyZXBvcnQiLCJub2RlIiwibWVzc2FnZSIsImZpeCIsImZpeGVyIiwicmVwbGFjZVRleHQiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhcnRzV2l0aCIsInJlc29sdmVkUGF0aCIsIm5vcm1lZFBhdGgiLCJyZXNvbHZlZE5vcm1lZFBhdGgiLCJmaWxlRXh0ZW5zaW9ucyIsInNldHRpbmdzIiwicmVnZXhVbm5lY2Vzc2FyeUluZGV4IiwiUmVnRXhwIiwiQXJyYXkiLCJmcm9tIiwiam9pbiIsInBhcmVudERpcmVjdG9yeSIsImZpbGVFeHRlbnNpb24iLCJ1bmRlZmluZWQiLCJleHBlY3RlZCIsInJlbGF0aXZlIiwiZXhwZWN0ZWRTcGxpdCIsInNwbGl0Iiwic2VwIiwiaW1wb3J0UGF0aFNwbGl0IiwiY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIiwiY291bnRFeHBlY3RlZFJlbGF0aXZlUGFyZW50cyIsImRpZmYiLCJzbGljZSIsImNvbmNhdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQTtBQUNBLGtFO0FBQ0Esc0Q7QUFDQSw0QjtBQUNBLHFDOztBQUVBOzs7Ozs7Ozs7Ozs7O0FBYUEsU0FBU0EsY0FBVCxDQUF3QkMsWUFBeEIsRUFBc0M7QUFDcEMsUUFBTUMsV0FBV0QsYUFBYUUsT0FBYixDQUFxQixNQUFyQixFQUE2QixFQUE3QixDQUFqQixDQURvQyxDQUNlOztBQUVuRCxTQUFPLHdCQUF1QkMsSUFBdkIsQ0FBNEJGLFFBQTVCLElBQXdDQSxRQUF4QyxHQUFvRCxLQUFJQSxRQUFTLEVBQXhFO0FBQ0QsQyxDQTVCRDs7O0tBOEJBLFNBQVNHLFNBQVQsQ0FBbUJDLEVBQW5CLEVBQXVCLENBQ3JCLE9BQU9OLGVBQWVPLGVBQUtDLEtBQUwsQ0FBV0gsU0FBWCxDQUFxQkMsRUFBckIsQ0FBZixDQUFQO0FBQ0Q7O0FBRUQsU0FBU0csb0JBQVQsQ0FBOEJDLFlBQTlCLEVBQTRDO0FBQzFDLFNBQU9BLGFBQWFDLE1BQWIsQ0FBb0IsQ0FBQ0MsR0FBRCxFQUFNQyxXQUFOLEtBQXNCQSxnQkFBZ0IsSUFBaEIsR0FBdUJELE1BQU0sQ0FBN0IsR0FBaUNBLEdBQTNFLEVBQWdGLENBQWhGLENBQVA7QUFDRDs7QUFFREUsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsMEJBQVIsQ0FERCxFQUZGOzs7QUFNSkMsYUFBUyxNQU5MOztBQVFKQyxZQUFRO0FBQ047QUFDRUosWUFBTSxRQURSO0FBRUVLLGtCQUFZO0FBQ1ZDLGtCQUFVLEVBQUVOLE1BQU0sU0FBUixFQURBO0FBRVZPLHdCQUFnQixFQUFFUCxNQUFNLFNBQVIsRUFGTixFQUZkOztBQU1FUSw0QkFBc0IsS0FOeEIsRUFETSxDQVJKLEVBRFM7Ozs7O0FBcUJmQyxTQUFPQyxPQUFQLEVBQWdCO0FBQ2QsVUFBTUMsYUFBYXJCLGVBQUtzQixPQUFMLENBQWFGLFFBQVFHLFdBQVIsRUFBYixDQUFuQjtBQUNBLFVBQU1DLFVBQVVKLFFBQVFJLE9BQVIsQ0FBZ0IsQ0FBaEIsQ0FBaEI7O0FBRUEsYUFBU0MsZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDO0FBQ2pCQyxnQkFEaUIsR0FDRkQsTUFERSxDQUN4QkUsS0FEd0I7O0FBR2hDLGVBQVNDLHNCQUFULENBQWdDQyxZQUFoQyxFQUE4QztBQUM1Q1YsZ0JBQVFXLE1BQVIsQ0FBZTtBQUNiQyxnQkFBTU4sTUFETztBQUViO0FBQ0FPLG1CQUFVLDhCQUE2Qk4sVUFBVyxpQkFBZ0JHLFlBQWEsR0FIbEU7QUFJYkksZUFBS0MsU0FBU0wsZ0JBQWdCSyxNQUFNQyxXQUFOLENBQWtCVixNQUFsQixFQUEwQlcsS0FBS0MsU0FBTCxDQUFlUixZQUFmLENBQTFCLENBSmpCLEVBQWY7O0FBTUQ7O0FBRUQ7QUFDQSxVQUFJLENBQUNILFdBQVdZLFVBQVgsQ0FBc0IsR0FBdEIsQ0FBTCxFQUFpQztBQUMvQjtBQUNEOztBQUVEO0FBQ0EsWUFBTUMsZUFBZSx1QkFBUWIsVUFBUixFQUFvQlAsT0FBcEIsQ0FBckI7QUFDQSxZQUFNcUIsYUFBYTNDLFVBQVU2QixVQUFWLENBQW5CO0FBQ0EsWUFBTWUscUJBQXFCLHVCQUFRRCxVQUFSLEVBQW9CckIsT0FBcEIsQ0FBM0I7QUFDQSxVQUFJcUIsZUFBZWQsVUFBZixJQUE2QmEsaUJBQWlCRSxrQkFBbEQsRUFBc0U7QUFDcEUsZUFBT2IsdUJBQXVCWSxVQUF2QixDQUFQO0FBQ0Q7O0FBRUQsWUFBTUUsaUJBQWlCLCtCQUFrQnZCLFFBQVF3QixRQUExQixDQUF2QjtBQUNBLFlBQU1DLHdCQUF3QixJQUFJQyxNQUFKO0FBQzNCLHNCQUFlQyxNQUFNQyxJQUFOLENBQVdMLGNBQVgsRUFBMkJNLElBQTNCLENBQWdDLEtBQWhDLENBQXVDLEtBRDNCLENBQTlCOzs7QUFJQTtBQUNBLFVBQUl6QixXQUFXQSxRQUFRUCxjQUFuQixJQUFxQzRCLHNCQUFzQmhELElBQXRCLENBQTJCOEIsVUFBM0IsQ0FBekMsRUFBaUY7QUFDL0UsY0FBTXVCLGtCQUFrQmxELGVBQUtzQixPQUFMLENBQWFLLFVBQWIsQ0FBeEI7O0FBRUE7QUFDQSxZQUFJdUIsb0JBQW9CLEdBQXBCLElBQTJCQSxvQkFBb0IsSUFBbkQsRUFBeUQ7QUFDdkQsZUFBSyxNQUFNQyxhQUFYLElBQTRCUixjQUE1QixFQUE0QztBQUMxQyxnQkFBSSx1QkFBUyxHQUFFTyxlQUFnQixHQUFFQyxhQUFjLEVBQTNDLEVBQThDL0IsT0FBOUMsQ0FBSixFQUE0RDtBQUMxRCxxQkFBT1MsdUJBQXdCLEdBQUVxQixlQUFnQixHQUExQyxDQUFQO0FBQ0Q7QUFDRjtBQUNGOztBQUVELGVBQU9yQix1QkFBdUJxQixlQUF2QixDQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxVQUFJdkIsV0FBV1ksVUFBWCxDQUFzQixJQUF0QixDQUFKLEVBQWlDO0FBQy9CO0FBQ0Q7O0FBRUQ7QUFDQSxVQUFJQyxpQkFBaUJZLFNBQXJCLEVBQWdDO0FBQzlCO0FBQ0Q7O0FBRUQsWUFBTUMsV0FBV3JELGVBQUtzRCxRQUFMLENBQWNqQyxVQUFkLEVBQTBCbUIsWUFBMUIsQ0FBakIsQ0F4RGdDLENBd0QwQjtBQUMxRCxZQUFNZSxnQkFBZ0JGLFNBQVNHLEtBQVQsQ0FBZXhELGVBQUt5RCxHQUFwQixDQUF0QixDQXpEZ0MsQ0F5RGdCO0FBQ2hELFlBQU1DLGtCQUFrQi9CLFdBQVcvQixPQUFYLENBQW1CLE9BQW5CLEVBQTRCLEVBQTVCLEVBQWdDNEQsS0FBaEMsQ0FBc0MsR0FBdEMsQ0FBeEI7QUFDQSxZQUFNRyxpQ0FBaUN6RCxxQkFBcUJ3RCxlQUFyQixDQUF2QztBQUNBLFlBQU1FLCtCQUErQjFELHFCQUFxQnFELGFBQXJCLENBQXJDO0FBQ0EsWUFBTU0sT0FBT0YsaUNBQWlDQyw0QkFBOUM7O0FBRUE7QUFDQSxVQUFJQyxRQUFRLENBQVosRUFBZTtBQUNiO0FBQ0Q7O0FBRUQ7QUFDQSxhQUFPaEM7QUFDTHBDO0FBQ0VpRTtBQUNHSSxXQURILENBQ1MsQ0FEVCxFQUNZRiw0QkFEWjtBQUVHRyxZQUZILENBRVVMLGdCQUFnQkksS0FBaEIsQ0FBc0JILGlDQUFpQ0UsSUFBdkQsQ0FGVjtBQUdHWixVQUhILENBR1EsR0FIUixDQURGLENBREssQ0FBUDs7O0FBUUQ7O0FBRUQsV0FBTyw2QkFBY3hCLGdCQUFkLEVBQWdDRCxPQUFoQyxDQUFQO0FBQ0QsR0F6R2MsRUFBakIiLCJmaWxlIjoibm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZU92ZXJ2aWV3IEVuc3VyZXMgdGhhdCB0aGVyZSBhcmUgbm8gdXNlbGVzcyBwYXRoIHNlZ21lbnRzXG4gKiBAYXV0aG9yIFRob21hcyBHcmFpbmdlclxuICovXG5cbmltcG9ydCB7IGdldEZpbGVFeHRlbnNpb25zIH0gZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9pZ25vcmUnO1xuaW1wb3J0IG1vZHVsZVZpc2l0b3IgZnJvbSAnZXNsaW50LW1vZHVsZS11dGlscy9tb2R1bGVWaXNpdG9yJztcbmltcG9ydCByZXNvbHZlIGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvcmVzb2x2ZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnO1xuXG4vKipcbiAqIGNvbnZlcnQgYSBwb3RlbnRpYWxseSByZWxhdGl2ZSBwYXRoIGZyb20gbm9kZSB1dGlscyBpbnRvIGEgdHJ1ZVxuICogcmVsYXRpdmUgcGF0aC5cbiAqXG4gKiAuLi8gLT4gLi5cbiAqIC4vIC0+IC5cbiAqIC5mb28vYmFyIC0+IC4vLmZvby9iYXJcbiAqIC4uZm9vL2JhciAtPiAuLy4uZm9vL2JhclxuICogZm9vL2JhciAtPiAuL2Zvby9iYXJcbiAqXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIHtzdHJpbmd9IHJlbGF0aXZlIHBvc2l4IHBhdGggcG90ZW50aWFsbHkgbWlzc2luZyBsZWFkaW5nICcuLydcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHJlbGF0aXZlIHBvc2l4IHBhdGggdGhhdCBhbHdheXMgc3RhcnRzIHdpdGggYSAuL1xuICoqL1xuZnVuY3Rpb24gdG9SZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoKSB7XG4gIGNvbnN0IHN0cmlwcGVkID0gcmVsYXRpdmVQYXRoLnJlcGxhY2UoL1xcLyQvZywgJycpOyAvLyBSZW1vdmUgdHJhaWxpbmcgL1xuXG4gIHJldHVybiAvXigoXFwuXFwuKXwoXFwuKSkoJHxcXC8pLy50ZXN0KHN0cmlwcGVkKSA/IHN0cmlwcGVkIDogYC4vJHtzdHJpcHBlZH1gO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemUoZm4pIHtcbiAgcmV0dXJuIHRvUmVsYXRpdmVQYXRoKHBhdGgucG9zaXgubm9ybWFsaXplKGZuKSk7XG59XG5cbmZ1bmN0aW9uIGNvdW50UmVsYXRpdmVQYXJlbnRzKHBhdGhTZWdtZW50cykge1xuICByZXR1cm4gcGF0aFNlZ21lbnRzLnJlZHVjZSgoc3VtLCBwYXRoU2VnbWVudCkgPT4gcGF0aFNlZ21lbnQgPT09ICcuLicgPyBzdW0gKyAxIDogc3VtLCAwKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby11c2VsZXNzLXBhdGgtc2VnbWVudHMnKSxcbiAgICB9LFxuXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuXG4gICAgc2NoZW1hOiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgY29tbW9uanM6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAgICAgbm9Vc2VsZXNzSW5kZXg6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IGN1cnJlbnREaXIgPSBwYXRoLmRpcm5hbWUoY29udGV4dC5nZXRGaWxlbmFtZSgpKTtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdO1xuXG4gICAgZnVuY3Rpb24gY2hlY2tTb3VyY2VWYWx1ZShzb3VyY2UpIHtcbiAgICAgIGNvbnN0IHsgdmFsdWU6IGltcG9ydFBhdGggfSA9IHNvdXJjZTtcblxuICAgICAgZnVuY3Rpb24gcmVwb3J0V2l0aFByb3Bvc2VkUGF0aChwcm9wb3NlZFBhdGgpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHNvdXJjZSxcbiAgICAgICAgICAvLyBOb3RlOiBVc2luZyBtZXNzYWdlSWRzIGlzIG5vdCBwb3NzaWJsZSBkdWUgdG8gdGhlIHN1cHBvcnQgZm9yIEVTTGludCAyIGFuZCAzXG4gICAgICAgICAgbWVzc2FnZTogYFVzZWxlc3MgcGF0aCBzZWdtZW50cyBmb3IgXCIke2ltcG9ydFBhdGh9XCIsIHNob3VsZCBiZSBcIiR7cHJvcG9zZWRQYXRofVwiYCxcbiAgICAgICAgICBmaXg6IGZpeGVyID0+IHByb3Bvc2VkUGF0aCAmJiBmaXhlci5yZXBsYWNlVGV4dChzb3VyY2UsIEpTT04uc3RyaW5naWZ5KHByb3Bvc2VkUGF0aCkpLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gT25seSByZWxhdGl2ZSBpbXBvcnRzIGFyZSByZWxldmFudCBmb3IgdGhpcyBydWxlIC0tPiBTa2lwIGNoZWNraW5nXG4gICAgICBpZiAoIWltcG9ydFBhdGguc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gUmVwb3J0IHJ1bGUgdmlvbGF0aW9uIGlmIHBhdGggaXMgbm90IHRoZSBzaG9ydGVzdCBwb3NzaWJsZVxuICAgICAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcmVzb2x2ZShpbXBvcnRQYXRoLCBjb250ZXh0KTtcbiAgICAgIGNvbnN0IG5vcm1lZFBhdGggPSBub3JtYWxpemUoaW1wb3J0UGF0aCk7XG4gICAgICBjb25zdCByZXNvbHZlZE5vcm1lZFBhdGggPSByZXNvbHZlKG5vcm1lZFBhdGgsIGNvbnRleHQpO1xuICAgICAgaWYgKG5vcm1lZFBhdGggIT09IGltcG9ydFBhdGggJiYgcmVzb2x2ZWRQYXRoID09PSByZXNvbHZlZE5vcm1lZFBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgobm9ybWVkUGF0aCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb25zID0gZ2V0RmlsZUV4dGVuc2lvbnMoY29udGV4dC5zZXR0aW5ncyk7XG4gICAgICBjb25zdCByZWdleFVubmVjZXNzYXJ5SW5kZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICBgLipcXFxcL2luZGV4KFxcXFwke0FycmF5LmZyb20oZmlsZUV4dGVuc2lvbnMpLmpvaW4oJ3xcXFxcJyl9KT8kYFxuICAgICAgKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgcGF0aCBjb250YWlucyB1bm5lY2Vzc2FyeSBpbmRleCAoaW5jbHVkaW5nIGEgY29uZmlndXJlZCBleHRlbnNpb24pXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm5vVXNlbGVzc0luZGV4ICYmIHJlZ2V4VW5uZWNlc3NhcnlJbmRleC50ZXN0KGltcG9ydFBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudERpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRQYXRoKTtcblxuICAgICAgICAvLyBUcnkgdG8gZmluZCBhbWJpZ3VvdXMgaW1wb3J0c1xuICAgICAgICBpZiAocGFyZW50RGlyZWN0b3J5ICE9PSAnLicgJiYgcGFyZW50RGlyZWN0b3J5ICE9PSAnLi4nKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBmaWxlRXh0ZW5zaW9uIG9mIGZpbGVFeHRlbnNpb25zKSB7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZShgJHtwYXJlbnREaXJlY3Rvcnl9JHtmaWxlRXh0ZW5zaW9ufWAsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXBvcnRXaXRoUHJvcG9zZWRQYXRoKGAke3BhcmVudERpcmVjdG9yeX0vYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgocGFyZW50RGlyZWN0b3J5KTtcbiAgICAgIH1cblxuICAgICAgLy8gUGF0aCBpcyBzaG9ydGVzdCBwb3NzaWJsZSArIHN0YXJ0cyBmcm9tIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAtLT4gUmV0dXJuIGRpcmVjdGx5XG4gICAgICBpZiAoaW1wb3J0UGF0aC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gUGF0aCBpcyBub3QgZXhpc3RpbmcgLS0+IFJldHVybiBkaXJlY3RseSAoZm9sbG93aW5nIGNvZGUgcmVxdWlyZXMgcGF0aCB0byBiZSBkZWZpbmVkKVxuICAgICAgaWYgKHJlc29sdmVkUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXhwZWN0ZWQgPSBwYXRoLnJlbGF0aXZlKGN1cnJlbnREaXIsIHJlc29sdmVkUGF0aCk7IC8vIEV4cGVjdGVkIGltcG9ydCBwYXRoXG4gICAgICBjb25zdCBleHBlY3RlZFNwbGl0ID0gZXhwZWN0ZWQuc3BsaXQocGF0aC5zZXApOyAvLyBTcGxpdCBieSAvIG9yIFxcIChkZXBlbmRpbmcgb24gT1MpXG4gICAgICBjb25zdCBpbXBvcnRQYXRoU3BsaXQgPSBpbXBvcnRQYXRoLnJlcGxhY2UoL15cXC5cXC8vLCAnJykuc3BsaXQoJy8nKTtcbiAgICAgIGNvbnN0IGNvdW50SW1wb3J0UGF0aFJlbGF0aXZlUGFyZW50cyA9IGNvdW50UmVsYXRpdmVQYXJlbnRzKGltcG9ydFBhdGhTcGxpdCk7XG4gICAgICBjb25zdCBjb3VudEV4cGVjdGVkUmVsYXRpdmVQYXJlbnRzID0gY291bnRSZWxhdGl2ZVBhcmVudHMoZXhwZWN0ZWRTcGxpdCk7XG4gICAgICBjb25zdCBkaWZmID0gY291bnRJbXBvcnRQYXRoUmVsYXRpdmVQYXJlbnRzIC0gY291bnRFeHBlY3RlZFJlbGF0aXZlUGFyZW50cztcblxuICAgICAgLy8gU2FtZSBudW1iZXIgb2YgcmVsYXRpdmUgcGFyZW50cyAtLT4gUGF0aHMgYXJlIHRoZSBzYW1lIC0tPiBSZXR1cm4gZGlyZWN0bHlcbiAgICAgIGlmIChkaWZmIDw9IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXBvcnQgYW5kIHByb3Bvc2UgbWluaW1hbCBudW1iZXIgb2YgcmVxdWlyZWQgcmVsYXRpdmUgcGFyZW50c1xuICAgICAgcmV0dXJuIHJlcG9ydFdpdGhQcm9wb3NlZFBhdGgoXG4gICAgICAgIHRvUmVsYXRpdmVQYXRoKFxuICAgICAgICAgIGltcG9ydFBhdGhTcGxpdFxuICAgICAgICAgICAgLnNsaWNlKDAsIGNvdW50RXhwZWN0ZWRSZWxhdGl2ZVBhcmVudHMpXG4gICAgICAgICAgICAuY29uY2F0KGltcG9ydFBhdGhTcGxpdC5zbGljZShjb3VudEltcG9ydFBhdGhSZWxhdGl2ZVBhcmVudHMgKyBkaWZmKSlcbiAgICAgICAgICAgIC5qb2luKCcvJylcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlVmlzaXRvcihjaGVja1NvdXJjZVZhbHVlLCBvcHRpb25zKTtcbiAgfSxcbn07XG4iXX0= \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js b/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js index df99f18a54..54ec37e517 100644 --- a/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js +++ b/node_modules/eslint-plugin-import/lib/rules/no-webpack-loader-syntax.js @@ -1,8 +1,8 @@ -'use strict';var _staticRequire = require('../core/staticRequire');var _staticRequire2 = _interopRequireDefault(_staticRequire); +'use strict';var _moduleVisitor = require('eslint-module-utils/moduleVisitor');var _moduleVisitor2 = _interopRequireDefault(_moduleVisitor); var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_docsUrl);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} function reportIfNonStandard(context, node, name) { - if (name.indexOf('!') !== -1) { + if (name && name.indexOf('!') !== -1) { context.report(node, `Unexpected '!' in '${name}'. ` + 'Do not use import syntax to configure webpack loaders.'); @@ -19,15 +19,8 @@ module.exports = { create: function (context) { - return { - ImportDeclaration: function handleImports(node) { - reportIfNonStandard(context, node, node.source.value); - }, - CallExpression: function handleRequires(node) { - if ((0, _staticRequire2.default)(node)) { - reportIfNonStandard(context, node, node.arguments[0].value); - } - } }; - + return (0, _moduleVisitor2.default)((source, node) => { + reportIfNonStandard(context, node, source.value); + }, { commonjs: true }); } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby13ZWJwYWNrLWxvYWRlci1zeW50YXguanMiXSwibmFtZXMiOlsicmVwb3J0SWZOb25TdGFuZGFyZCIsImNvbnRleHQiLCJub2RlIiwibmFtZSIsImluZGV4T2YiLCJyZXBvcnQiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwidmFsdWUiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwiYXJndW1lbnRzIl0sIm1hcHBpbmdzIjoiYUFBQSxzRDtBQUNBLHFDOztBQUVBLFNBQVNBLG1CQUFULENBQTZCQyxPQUE3QixFQUFzQ0MsSUFBdEMsRUFBNENDLElBQTVDLEVBQWtEO0FBQ2hELE1BQUlBLEtBQUtDLE9BQUwsQ0FBYSxHQUFiLE1BQXNCLENBQUMsQ0FBM0IsRUFBOEI7QUFDNUJILFlBQVFJLE1BQVIsQ0FBZUgsSUFBZixFQUFzQixzQkFBcUJDLElBQUssS0FBM0I7QUFDbkIsNERBREY7O0FBR0Q7QUFDRjs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sU0FERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsMEJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBVVosT0FBVixFQUFtQjtBQUN6QixXQUFPO0FBQ0xhLHlCQUFtQixTQUFTQyxhQUFULENBQXVCYixJQUF2QixFQUE2QjtBQUM5Q0YsNEJBQW9CQyxPQUFwQixFQUE2QkMsSUFBN0IsRUFBbUNBLEtBQUtjLE1BQUwsQ0FBWUMsS0FBL0M7QUFDRCxPQUhJO0FBSUxDLHNCQUFnQixTQUFTQyxjQUFULENBQXdCakIsSUFBeEIsRUFBOEI7QUFDNUMsWUFBSSw2QkFBZ0JBLElBQWhCLENBQUosRUFBMkI7QUFDekJGLDhCQUFvQkMsT0FBcEIsRUFBNkJDLElBQTdCLEVBQW1DQSxLQUFLa0IsU0FBTCxDQUFlLENBQWYsRUFBa0JILEtBQXJEO0FBQ0Q7QUFDRixPQVJJLEVBQVA7O0FBVUQsR0FwQmMsRUFBakIiLCJmaWxlIjoibm8td2VicGFjay1sb2FkZXItc3ludGF4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5mdW5jdGlvbiByZXBvcnRJZk5vblN0YW5kYXJkKGNvbnRleHQsIG5vZGUsIG5hbWUpIHtcbiAgaWYgKG5hbWUuaW5kZXhPZignIScpICE9PSAtMSkge1xuICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGBVbmV4cGVjdGVkICchJyBpbiAnJHtuYW1lfScuIGAgK1xuICAgICAgJ0RvIG5vdCB1c2UgaW1wb3J0IHN5bnRheCB0byBjb25maWd1cmUgd2VicGFjayBsb2FkZXJzLidcbiAgICApXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAncHJvYmxlbScsXG4gICAgZG9jczoge1xuICAgICAgdXJsOiBkb2NzVXJsKCduby13ZWJwYWNrLWxvYWRlci1zeW50YXgnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICBJbXBvcnREZWNsYXJhdGlvbjogZnVuY3Rpb24gaGFuZGxlSW1wb3J0cyhub2RlKSB7XG4gICAgICAgIHJlcG9ydElmTm9uU3RhbmRhcmQoY29udGV4dCwgbm9kZSwgbm9kZS5zb3VyY2UudmFsdWUpXG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljUmVxdWlyZShub2RlKSkge1xuICAgICAgICAgIHJlcG9ydElmTm9uU3RhbmRhcmQoY29udGV4dCwgbm9kZSwgbm9kZS5hcmd1bWVudHNbMF0udmFsdWUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICB9LFxufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby13ZWJwYWNrLWxvYWRlci1zeW50YXguanMiXSwibmFtZXMiOlsicmVwb3J0SWZOb25TdGFuZGFyZCIsImNvbnRleHQiLCJub2RlIiwibmFtZSIsImluZGV4T2YiLCJyZXBvcnQiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwic291cmNlIiwidmFsdWUiLCJjb21tb25qcyJdLCJtYXBwaW5ncyI6ImFBQUEsa0U7QUFDQSxxQzs7QUFFQSxTQUFTQSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0NDLElBQXRDLEVBQTRDQyxJQUE1QyxFQUFrRDtBQUNoRCxNQUFJQSxRQUFRQSxLQUFLQyxPQUFMLENBQWEsR0FBYixNQUFzQixDQUFDLENBQW5DLEVBQXNDO0FBQ3BDSCxZQUFRSSxNQUFSLENBQWVILElBQWYsRUFBc0Isc0JBQXFCQyxJQUFLLEtBQTNCO0FBQ25CLDREQURGOztBQUdEO0FBQ0Y7O0FBRURHLE9BQU9DLE9BQVAsR0FBaUI7QUFDZkMsUUFBTTtBQUNKQyxVQUFNLFNBREY7QUFFSkMsVUFBTTtBQUNKQyxXQUFLLHVCQUFRLDBCQUFSLENBREQsRUFGRjs7QUFLSkMsWUFBUSxFQUxKLEVBRFM7OztBQVNmQyxVQUFRLFVBQVVaLE9BQVYsRUFBbUI7QUFDekIsV0FBTyw2QkFBYyxDQUFDYSxNQUFELEVBQVNaLElBQVQsS0FBa0I7QUFDckNGLDBCQUFvQkMsT0FBcEIsRUFBNkJDLElBQTdCLEVBQW1DWSxPQUFPQyxLQUExQztBQUNELEtBRk0sRUFFSixFQUFFQyxVQUFVLElBQVosRUFGSSxDQUFQO0FBR0QsR0FiYyxFQUFqQiIsImZpbGUiOiJuby13ZWJwYWNrLWxvYWRlci1zeW50YXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9kdWxlVmlzaXRvciBmcm9tICdlc2xpbnQtbW9kdWxlLXV0aWxzL21vZHVsZVZpc2l0b3InO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbmZ1bmN0aW9uIHJlcG9ydElmTm9uU3RhbmRhcmQoY29udGV4dCwgbm9kZSwgbmFtZSkge1xuICBpZiAobmFtZSAmJiBuYW1lLmluZGV4T2YoJyEnKSAhPT0gLTEpIHtcbiAgICBjb250ZXh0LnJlcG9ydChub2RlLCBgVW5leHBlY3RlZCAnIScgaW4gJyR7bmFtZX0nLiBgICtcbiAgICAgICdEbyBub3QgdXNlIGltcG9ydCBzeW50YXggdG8gY29uZmlndXJlIHdlYnBhY2sgbG9hZGVycy4nXG4gICAgKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdwcm9ibGVtJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCcpLFxuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIG1vZHVsZVZpc2l0b3IoKHNvdXJjZSwgbm9kZSkgPT4ge1xuICAgICAgcmVwb3J0SWZOb25TdGFuZGFyZChjb250ZXh0LCBub2RlLCBzb3VyY2UudmFsdWUpO1xuICAgIH0sIHsgY29tbW9uanM6IHRydWUgfSk7XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/order.js b/node_modules/eslint-plugin-import/lib/rules/order.js index d3cd442171..c12206446d 100644 --- a/node_modules/eslint-plugin-import/lib/rules/order.js +++ b/node_modules/eslint-plugin-import/lib/rules/order.js @@ -93,7 +93,7 @@ function findRootNode(node) { function findEndOfLineWithComments(sourceCode, node) { const tokensToEndOfLine = takeTokensAfterWhile(sourceCode, node, commentOnSameLineAs(node)); - let endOfTokens = tokensToEndOfLine.length > 0 ? + const endOfTokens = tokensToEndOfLine.length > 0 ? tokensToEndOfLine[tokensToEndOfLine.length - 1].range[1] : node.range[1]; let result = endOfTokens; @@ -118,7 +118,7 @@ function commentOnSameLineAs(node) { function findStartOfLineWithComments(sourceCode, node) { const tokensToEndOfLine = takeTokensBeforeWhile(sourceCode, node, commentOnSameLineAs(node)); - let startOfTokens = tokensToEndOfLine.length > 0 ? tokensToEndOfLine[0].range[0] : node.range[0]; + const startOfTokens = tokensToEndOfLine.length > 0 ? tokensToEndOfLine[0].range[0] : node.range[0]; let result = startOfTokens; for (let i = startOfTokens - 1; i > 0; i--) { if (sourceCode.text[i] !== ' ' && sourceCode.text[i] !== '\t') { @@ -168,7 +168,7 @@ function canReorderItems(firstNode, secondNode) { parent.body.indexOf(secondNode)]. sort(),_sort2 = _slicedToArray(_sort, 2);const firstIndex = _sort2[0],secondIndex = _sort2[1]; const nodesBetween = parent.body.slice(firstIndex, secondIndex + 1); - for (var nodeBetween of nodesBetween) { + for (const nodeBetween of nodesBetween) { if (!canCrossNodeWhileReorder(nodeBetween)) { return false; } @@ -265,14 +265,17 @@ function mutateRanksToAlphabetize(imported, alphabetizeOptions) { if (!Array.isArray(acc[importedItem.rank])) { acc[importedItem.rank] = []; } - acc[importedItem.rank].push(importedItem.value); + acc[importedItem.rank].push(importedItem); return acc; }, {}); const groupRanks = Object.keys(groupedByRanks); const sorterFn = getSorter(alphabetizeOptions.order === 'asc'); - const comparator = alphabetizeOptions.caseInsensitive ? (a, b) => sorterFn(String(a).toLowerCase(), String(b).toLowerCase()) : (a, b) => sorterFn(a, b); + const comparator = alphabetizeOptions.caseInsensitive ? + (a, b) => sorterFn(String(a.value).toLowerCase(), String(b.value).toLowerCase()) : + (a, b) => sorterFn(a.value, b.value); + // sort imports locally within their group groupRanks.forEach(function (groupRank) { groupedByRanks[groupRank].sort(comparator); @@ -281,8 +284,8 @@ function mutateRanksToAlphabetize(imported, alphabetizeOptions) { // assign globally unique rank to each import let newRank = 0; const alphabetizedRanks = groupRanks.sort().reduce(function (acc, groupRank) { - groupedByRanks[groupRank].forEach(function (importedItemName) { - acc[importedItemName] = parseInt(groupRank, 10) + newRank; + groupedByRanks[groupRank].forEach(function (importedItem) { + acc[`${importedItem.value}|${importedItem.node.importKind}`] = parseInt(groupRank, 10) + newRank; newRank += 1; }); return acc; @@ -290,7 +293,7 @@ function mutateRanksToAlphabetize(imported, alphabetizeOptions) { // mutate the original group-rank with alphabetized-rank imported.forEach(function (importedItem) { - importedItem.rank = alphabetizedRanks[importedItem.value]; + importedItem.rank = alphabetizedRanks[`${importedItem.value}|${importedItem.node.importKind}`]; }); } @@ -310,6 +313,8 @@ function computeRank(context, ranks, importEntry, excludedImportTypes) { let rank; if (importEntry.type === 'import:object') { impType = 'object'; + } else if (importEntry.node.importKind === 'type' && ranks.omittedTypes.indexOf('type') === -1) { + impType = 'type'; } else { impType = (0, _importType2.default)(importEntry.value, context); } @@ -333,12 +338,24 @@ function registerNode(context, importEntry, ranks, imported, excludedImportTypes } } -function isInVariableDeclarator(node) { - return node && ( - node.type === 'VariableDeclarator' || isInVariableDeclarator(node.parent)); +function isModuleLevelRequire(node) { + let n = node; + // Handle cases like `const baz = require('foo').bar.baz` + // and `const foo = require('foo')()` + while ( + n.parent.type === 'MemberExpression' && n.parent.object === n || + n.parent.type === 'CallExpression' && n.parent.callee === n) + { + n = n.parent; + } + return ( + n.parent.type === 'VariableDeclarator' && + n.parent.parent.type === 'VariableDeclaration' && + n.parent.parent.parent.type === 'Program'); + } -const types = ['builtin', 'external', 'internal', 'unknown', 'parent', 'sibling', 'index', 'object']; +const types = ['builtin', 'external', 'internal', 'unknown', 'parent', 'sibling', 'index', 'object', 'type']; // Creates an object with type-rank pairs. // Example: { index: 0, sibling: 1, parent: 1, external: 1, builtin: 2, internal: 2 } @@ -365,10 +382,12 @@ function convertGroupsToRanks(groups) { return rankObject[type] === undefined; }); - return omittedTypes.reduce(function (res, type) { + const ranks = omittedTypes.reduce(function (res, type) { res[type] = groups.length; return res; }, rankObject); + + return { groups: ranks, omittedTypes }; } function convertPathGroupsForRanks(pathGroups) { @@ -552,7 +571,11 @@ module.exports = { default: 'ignore' } }, - additionalProperties: false } }, + additionalProperties: false }, + + warnOnUnassignedImports: { + type: 'boolean', + default: false } }, additionalProperties: false }] }, @@ -568,9 +591,11 @@ module.exports = { let ranks; try {var _convertPathGroupsFor = - convertPathGroupsForRanks(options.pathGroups || []);const pathGroups = _convertPathGroupsFor.pathGroups,maxPosition = _convertPathGroupsFor.maxPosition; + convertPathGroupsForRanks(options.pathGroups || []);const pathGroups = _convertPathGroupsFor.pathGroups,maxPosition = _convertPathGroupsFor.maxPosition;var _convertGroupsToRanks = + convertGroupsToRanks(options.groups || defaultGroups);const groups = _convertGroupsToRanks.groups,omittedTypes = _convertGroupsToRanks.omittedTypes; ranks = { - groups: convertGroupsToRanks(options.groups || defaultGroups), + groups, + omittedTypes, pathGroups, maxPosition }; @@ -583,18 +608,11 @@ module.exports = { } let imported = []; - let level = 0; - - function incrementLevel() { - level++; - } - function decrementLevel() { - level--; - } return { ImportDeclaration: function handleImports(node) { - if (node.specifiers.length) {// Ignoring unassigned imports + // Ignoring unassigned imports unless warnOnUnassignedImports is set + if (node.specifiers.length || options.warnOnUnassignedImports) { const name = node.source.value; registerNode( context, @@ -641,7 +659,7 @@ module.exports = { }, CallExpression: function handleRequires(node) { - if (level !== 0 || !(0, _staticRequire2.default)(node) || !isInVariableDeclarator(node.parent)) { + if (!(0, _staticRequire2.default)(node) || !isModuleLevelRequire(node)) { return; } const name = node.arguments[0].value; @@ -670,17 +688,7 @@ module.exports = { makeOutOfOrderReport(context, imported); imported = []; - }, - FunctionDeclaration: incrementLevel, - FunctionExpression: incrementLevel, - ArrowFunctionExpression: incrementLevel, - BlockStatement: incrementLevel, - ObjectExpression: incrementLevel, - 'FunctionDeclaration:exit': decrementLevel, - 'FunctionExpression:exit': decrementLevel, - 'ArrowFunctionExpression:exit': decrementLevel, - 'BlockStatement:exit': decrementLevel, - 'ObjectExpression:exit': decrementLevel }; + } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9vcmRlci5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0R3JvdXBzIiwicmV2ZXJzZSIsImFycmF5IiwibWFwIiwidiIsIk9iamVjdCIsImFzc2lnbiIsInJhbmsiLCJnZXRUb2tlbnNPckNvbW1lbnRzQWZ0ZXIiLCJzb3VyY2VDb2RlIiwibm9kZSIsImNvdW50IiwiY3VycmVudE5vZGVPclRva2VuIiwicmVzdWx0IiwiaSIsImdldFRva2VuT3JDb21tZW50QWZ0ZXIiLCJwdXNoIiwiZ2V0VG9rZW5zT3JDb21tZW50c0JlZm9yZSIsImdldFRva2VuT3JDb21tZW50QmVmb3JlIiwidGFrZVRva2Vuc0FmdGVyV2hpbGUiLCJjb25kaXRpb24iLCJ0b2tlbnMiLCJsZW5ndGgiLCJ0YWtlVG9rZW5zQmVmb3JlV2hpbGUiLCJmaW5kT3V0T2ZPcmRlciIsImltcG9ydGVkIiwibWF4U2VlblJhbmtOb2RlIiwiZmlsdGVyIiwiaW1wb3J0ZWRNb2R1bGUiLCJyZXMiLCJmaW5kUm9vdE5vZGUiLCJwYXJlbnQiLCJib2R5IiwiZmluZEVuZE9mTGluZVdpdGhDb21tZW50cyIsInRva2Vuc1RvRW5kT2ZMaW5lIiwiY29tbWVudE9uU2FtZUxpbmVBcyIsImVuZE9mVG9rZW5zIiwicmFuZ2UiLCJ0ZXh0IiwidG9rZW4iLCJ0eXBlIiwibG9jIiwic3RhcnQiLCJsaW5lIiwiZW5kIiwiZmluZFN0YXJ0T2ZMaW5lV2l0aENvbW1lbnRzIiwic3RhcnRPZlRva2VucyIsImlzUGxhaW5SZXF1aXJlTW9kdWxlIiwiZGVjbGFyYXRpb25zIiwiZGVjbCIsImlkIiwiaW5pdCIsImNhbGxlZSIsIm5hbWUiLCJhcmd1bWVudHMiLCJpc1BsYWluSW1wb3J0TW9kdWxlIiwic3BlY2lmaWVycyIsImlzUGxhaW5JbXBvcnRFcXVhbHMiLCJtb2R1bGVSZWZlcmVuY2UiLCJleHByZXNzaW9uIiwiY2FuQ3Jvc3NOb2RlV2hpbGVSZW9yZGVyIiwiY2FuUmVvcmRlckl0ZW1zIiwiZmlyc3ROb2RlIiwic2Vjb25kTm9kZSIsImluZGV4T2YiLCJzb3J0IiwiZmlyc3RJbmRleCIsInNlY29uZEluZGV4Iiwibm9kZXNCZXR3ZWVuIiwic2xpY2UiLCJub2RlQmV0d2VlbiIsImZpeE91dE9mT3JkZXIiLCJjb250ZXh0Iiwib3JkZXIiLCJnZXRTb3VyY2VDb2RlIiwiZmlyc3RSb290IiwiZmlyc3RSb290U3RhcnQiLCJmaXJzdFJvb3RFbmQiLCJzZWNvbmRSb290Iiwic2Vjb25kUm9vdFN0YXJ0Iiwic2Vjb25kUm9vdEVuZCIsImNhbkZpeCIsIm5ld0NvZGUiLCJzdWJzdHJpbmciLCJtZXNzYWdlIiwiZGlzcGxheU5hbWUiLCJyZXBvcnQiLCJmaXgiLCJmaXhlciIsInJlcGxhY2VUZXh0UmFuZ2UiLCJyZXBvcnRPdXRPZk9yZGVyIiwib3V0T2ZPcmRlciIsImZvckVhY2giLCJpbXAiLCJmb3VuZCIsImZpbmQiLCJoYXNIaWdoZXJSYW5rIiwiaW1wb3J0ZWRJdGVtIiwibWFrZU91dE9mT3JkZXJSZXBvcnQiLCJyZXZlcnNlZEltcG9ydGVkIiwicmV2ZXJzZWRPcmRlciIsImdldFNvcnRlciIsImFzY2VuZGluZyIsIm11bHRpcGxpZXIiLCJpbXBvcnRzU29ydGVyIiwiaW1wb3J0QSIsImltcG9ydEIiLCJtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUiLCJhbHBoYWJldGl6ZU9wdGlvbnMiLCJncm91cGVkQnlSYW5rcyIsInJlZHVjZSIsImFjYyIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlIiwiZ3JvdXBSYW5rcyIsImtleXMiLCJzb3J0ZXJGbiIsImNvbXBhcmF0b3IiLCJjYXNlSW5zZW5zaXRpdmUiLCJhIiwiYiIsIlN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3JvdXBSYW5rIiwibmV3UmFuayIsImFscGhhYmV0aXplZFJhbmtzIiwiaW1wb3J0ZWRJdGVtTmFtZSIsInBhcnNlSW50IiwiY29tcHV0ZVBhdGhSYW5rIiwicmFua3MiLCJwYXRoR3JvdXBzIiwicGF0aCIsIm1heFBvc2l0aW9uIiwibCIsInBhdHRlcm4iLCJwYXR0ZXJuT3B0aW9ucyIsImdyb3VwIiwicG9zaXRpb24iLCJub2NvbW1lbnQiLCJjb21wdXRlUmFuayIsImltcG9ydEVudHJ5IiwiZXhjbHVkZWRJbXBvcnRUeXBlcyIsImltcFR5cGUiLCJoYXMiLCJncm91cHMiLCJzdGFydHNXaXRoIiwicmVnaXN0ZXJOb2RlIiwiaXNJblZhcmlhYmxlRGVjbGFyYXRvciIsInR5cGVzIiwiY29udmVydEdyb3Vwc1RvUmFua3MiLCJyYW5rT2JqZWN0IiwiaW5kZXgiLCJncm91cEl0ZW0iLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJvbWl0dGVkVHlwZXMiLCJjb252ZXJ0UGF0aEdyb3Vwc0ZvclJhbmtzIiwiYWZ0ZXIiLCJiZWZvcmUiLCJ0cmFuc2Zvcm1lZCIsInBhdGhHcm91cCIsInBvc2l0aW9uU3RyaW5nIiwiZ3JvdXBMZW5ndGgiLCJncm91cEluZGV4IiwiTWF0aCIsIm1heCIsImtleSIsImdyb3VwTmV4dFBvc2l0aW9uIiwicG93IiwiY2VpbCIsImxvZzEwIiwiZml4TmV3TGluZUFmdGVySW1wb3J0IiwicHJldmlvdXNJbXBvcnQiLCJwcmV2Um9vdCIsImVuZE9mTGluZSIsImluc2VydFRleHRBZnRlclJhbmdlIiwicmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0IiwiY3VycmVudEltcG9ydCIsImN1cnJSb290IiwicmFuZ2VUb1JlbW92ZSIsInRlc3QiLCJyZW1vdmVSYW5nZSIsIm1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQiLCJuZXdsaW5lc0JldHdlZW5JbXBvcnRzIiwiZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbiIsImxpbmVzQmV0d2VlbkltcG9ydHMiLCJsaW5lcyIsInRyaW0iLCJlbXB0eUxpbmVzQmV0d2VlbiIsImdldEFscGhhYmV0aXplQ29uZmlnIiwib3B0aW9ucyIsImFscGhhYmV0aXplIiwibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJkb2NzIiwidXJsIiwiZml4YWJsZSIsInNjaGVtYSIsInByb3BlcnRpZXMiLCJwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlcyIsIml0ZW1zIiwiZW51bSIsInJlcXVpcmVkIiwiZGVmYXVsdCIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiY3JlYXRlIiwiaW1wb3J0T3JkZXJSdWxlIiwiU2V0IiwiZXJyb3IiLCJQcm9ncmFtIiwibGV2ZWwiLCJpbmNyZW1lbnRMZXZlbCIsImRlY3JlbWVudExldmVsIiwiSW1wb3J0RGVjbGFyYXRpb24iLCJoYW5kbGVJbXBvcnRzIiwic291cmNlIiwiVFNJbXBvcnRFcXVhbHNEZWNsYXJhdGlvbiIsImlzRXhwb3J0IiwiZ2V0VGV4dCIsIkNhbGxFeHByZXNzaW9uIiwiaGFuZGxlUmVxdWlyZXMiLCJyZXBvcnRBbmRSZXNldCIsIkZ1bmN0aW9uRGVjbGFyYXRpb24iLCJGdW5jdGlvbkV4cHJlc3Npb24iLCJBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbiIsIkJsb2NrU3RhdGVtZW50IiwiT2JqZWN0RXhwcmVzc2lvbiJdLCJtYXBwaW5ncyI6IkFBQUEsYTs7QUFFQSxzQztBQUNBLGdEO0FBQ0Esc0Q7QUFDQSxxQzs7QUFFQSxNQUFNQSxnQkFBZ0IsQ0FBQyxTQUFELEVBQVksVUFBWixFQUF3QixRQUF4QixFQUFrQyxTQUFsQyxFQUE2QyxPQUE3QyxDQUF0Qjs7QUFFQTs7QUFFQSxTQUFTQyxPQUFULENBQWlCQyxLQUFqQixFQUF3QjtBQUN0QixTQUFPQSxNQUFNQyxHQUFOLENBQVUsVUFBVUMsQ0FBVixFQUFhO0FBQzVCLFdBQU9DLE9BQU9DLE1BQVAsQ0FBYyxFQUFkLEVBQWtCRixDQUFsQixFQUFxQixFQUFFRyxNQUFNLENBQUNILEVBQUVHLElBQVgsRUFBckIsQ0FBUDtBQUNELEdBRk0sRUFFSk4sT0FGSSxFQUFQO0FBR0Q7O0FBRUQsU0FBU08sd0JBQVQsQ0FBa0NDLFVBQWxDLEVBQThDQyxJQUE5QyxFQUFvREMsS0FBcEQsRUFBMkQ7QUFDekQsTUFBSUMscUJBQXFCRixJQUF6QjtBQUNBLFFBQU1HLFNBQVMsRUFB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c0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJ1xuaW1wb3J0IGltcG9ydFR5cGUgZnJvbSAnLi4vY29yZS9pbXBvcnRUeXBlJ1xuaW1wb3J0IGlzU3RhdGljUmVxdWlyZSBmcm9tICcuLi9jb3JlL3N0YXRpY1JlcXVpcmUnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5jb25zdCBkZWZhdWx0R3JvdXBzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4J11cblxuLy8gUkVQT1JUSU5HIEFORCBGSVhJTkdcblxuZnVuY3Rpb24gcmV2ZXJzZShhcnJheSkge1xuICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHYsIHsgcmFuazogLXYucmFuayB9KVxuICB9KS5yZXZlcnNlKClcbn1cblxuZnVuY3Rpb24gZ2V0VG9rZW5zT3JDb21tZW50c0FmdGVyKHNvdXJjZUNvZGUsIG5vZGUsIGNvdW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZU9yVG9rZW4gPSBub2RlXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGN1cnJlbnROb2RlT3JUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5PckNvbW1lbnRBZnRlcihjdXJyZW50Tm9kZU9yVG9rZW4pXG4gICAgaWYgKGN1cnJlbnROb2RlT3JUb2tlbiA9PSBudWxsKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXN1bHQucHVzaChjdXJyZW50Tm9kZU9yVG9rZW4pXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBnZXRUb2tlbnNPckNvbW1lbnRzQmVmb3JlKHNvdXJjZUNvZGUsIG5vZGUsIGNvdW50KSB7XG4gIGxldCBjdXJyZW50Tm9kZU9yVG9rZW4gPSBub2RlXG4gIGNvbnN0IHJlc3VsdCA9IFtdXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGN1cnJlbnROb2RlT3JUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5PckNvbW1lbnRCZWZvcmUoY3VycmVudE5vZGVPclRva2VuKVxuICAgIGlmIChjdXJyZW50Tm9kZU9yVG9rZW4gPT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgcmVzdWx0LnB1c2goY3VycmVudE5vZGVPclRva2VuKVxuICB9XG4gIHJldHVybiByZXN1bHQucmV2ZXJzZSgpXG59XG5cbmZ1bmN0aW9uIHRha2VUb2tlbnNBZnRlcldoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbmRpdGlvbikge1xuICBjb25zdCB0b2tlbnMgPSBnZXRUb2tlbnNPckNvbW1lbnRzQWZ0ZXIoc291cmNlQ29kZSwgbm9kZSwgMTAwKVxuICBjb25zdCByZXN1bHQgPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChjb25kaXRpb24odG9rZW5zW2ldKSkge1xuICAgICAgcmVzdWx0LnB1c2godG9rZW5zW2ldKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gdGFrZVRva2Vuc0JlZm9yZVdoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbmRpdGlvbikge1xuICBjb25zdCB0b2tlbnMgPSBnZXRUb2tlbnNPckNvbW1lbnRzQmVmb3JlKHNvdXJjZUNvZGUsIG5vZGUsIDEwMClcbiAgY29uc3QgcmVzdWx0ID0gW11cbiAgZm9yIChsZXQgaSA9IHRva2Vucy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIGlmIChjb25kaXRpb24odG9rZW5zW2ldKSkge1xuICAgICAgcmVzdWx0LnB1c2godG9rZW5zW2ldKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQucmV2ZXJzZSgpXG59XG5cbmZ1bmN0aW9uIGZpbmRPdXRPZk9yZGVyKGltcG9ydGVkKSB7XG4gIGlmIChpbXBvcnRlZC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICBsZXQgbWF4U2VlblJhbmtOb2RlID0gaW1wb3J0ZWRbMF1cbiAgcmV0dXJuIGltcG9ydGVkLmZpbHRlcihmdW5jdGlvbiAoaW1wb3J0ZWRNb2R1bGUpIHtcbiAgICBjb25zdCByZXMgPSBpbXBvcnRlZE1vZHVsZS5yYW5rIDwgbWF4U2VlblJhbmtOb2RlLnJhbmtcbiAgICBpZiAobWF4U2VlblJhbmtOb2RlLnJhbmsgPCBpbXBvcnRlZE1vZHVsZS5yYW5rKSB7XG4gICAgICBtYXhTZWVuUmFua05vZGUgPSBpbXBvcnRlZE1vZHVsZVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGZpbmRSb290Tm9kZShub2RlKSB7XG4gIGxldCBwYXJlbnQgPSBub2RlXG4gIHdoaWxlIChwYXJlbnQucGFyZW50ICE9IG51bGwgJiYgcGFyZW50LnBhcmVudC5ib2R5ID09IG51bGwpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50XG4gIH1cbiAgcmV0dXJuIHBhcmVudFxufVxuXG5mdW5jdGlvbiBmaW5kRW5kT2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIG5vZGUpIHtcbiAgY29uc3QgdG9rZW5zVG9FbmRPZkxpbmUgPSB0YWtlVG9rZW5zQWZ0ZXJXaGlsZShzb3VyY2VDb2RlLCBub2RlLCBjb21tZW50T25TYW1lTGluZUFzKG5vZGUpKVxuICBsZXQgZW5kT2ZUb2tlbnMgPSB0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggPiAwXG4gICAgPyB0b2tlbnNUb0VuZE9mTGluZVt0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggLSAxXS5yYW5nZVsxXVxuICAgIDogbm9kZS5yYW5nZVsxXVxuICBsZXQgcmVzdWx0ID0gZW5kT2ZUb2tlbnNcbiAgZm9yIChsZXQgaSA9IGVuZE9mVG9rZW5zOyBpIDwgc291cmNlQ29kZS50ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHNvdXJjZUNvZGUudGV4dFtpXSA9PT0gJ1xcbicpIHtcbiAgICAgIHJlc3VsdCA9IGkgKyAxXG4gICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoc291cmNlQ29kZS50ZXh0W2ldICE9PSAnICcgJiYgc291cmNlQ29kZS50ZXh0W2ldICE9PSAnXFx0JyAmJiBzb3VyY2VDb2RlLnRleHRbaV0gIT09ICdcXHInKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXN1bHQgPSBpICsgMVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gY29tbWVudE9uU2FtZUxpbmVBcyhub2RlKSB7XG4gIHJldHVybiB0b2tlbiA9PiAodG9rZW4udHlwZSA9PT0gJ0Jsb2NrJyB8fCAgdG9rZW4udHlwZSA9PT0gJ0xpbmUnKSAmJlxuICAgICAgdG9rZW4ubG9jLnN0YXJ0LmxpbmUgPT09IHRva2VuLmxvYy5lbmQubGluZSAmJlxuICAgICAgdG9rZW4ubG9jLmVuZC5saW5lID09PSBub2RlLmxvYy5lbmQubGluZVxufVxuXG5mdW5jdGlvbiBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgbm9kZSkge1xuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNCZWZvcmVXaGlsZShzb3VyY2VDb2RlLCBub2RlLCBjb21tZW50T25TYW1lTGluZUFzKG5vZGUpKVxuICBsZXQgc3RhcnRPZlRva2VucyA9IHRva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCA+IDAgPyB0b2tlbnNUb0VuZE9mTGluZVswXS5yYW5nZVswXSA6IG5vZGUucmFuZ2VbMF1cbiAgbGV0IHJlc3VsdCA9IHN0YXJ0T2ZUb2tlbnNcbiAgZm9yIChsZXQgaSA9IHN0YXJ0T2ZUb2tlbnMgLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgaWYgKHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJyAnICYmIHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJ1xcdCcpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlc3VsdCA9IGlcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5SZXF1aXJlTW9kdWxlKG5vZGUpIHtcbiAgaWYgKG5vZGUudHlwZSAhPT0gJ1ZhcmlhYmxlRGVjbGFyYXRpb24nKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgaWYgKG5vZGUuZGVjbGFyYXRpb25zLmxlbmd0aCAhPT0gMSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGNvbnN0IGRlY2wgPSBub2RlLmRlY2xhcmF0aW9uc1swXVxuICBjb25zdCByZXN1bHQgPSBkZWNsLmlkICYmXG4gICAgKGRlY2wuaWQudHlwZSA9PT0gJ0lkZW50aWZpZXInIHx8IGRlY2wuaWQudHlwZSA9PT0gJ09iamVjdFBhdHRlcm4nKSAmJlxuICAgIGRlY2wuaW5pdCAhPSBudWxsICYmXG4gICAgZGVjbC5pbml0LnR5cGUgPT09ICdDYWxsRXhwcmVzc2lvbicgJiZcbiAgICBkZWNsLmluaXQuY2FsbGVlICE9IG51bGwgJiZcbiAgICBkZWNsLmluaXQuY2FsbGVlLm5hbWUgPT09ICdyZXF1aXJlJyAmJlxuICAgIGRlY2wuaW5pdC5hcmd1bWVudHMgIT0gbnVsbCAmJlxuICAgIGRlY2wuaW5pdC5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgZGVjbC5pbml0LmFyZ3VtZW50c1swXS50eXBlID09PSAnTGl0ZXJhbCdcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5mdW5jdGlvbiBpc1BsYWluSW1wb3J0TW9kdWxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ0ltcG9ydERlY2xhcmF0aW9uJyAmJiBub2RlLnNwZWNpZmllcnMgIT0gbnVsbCAmJiBub2RlLnNwZWNpZmllcnMubGVuZ3RoID4gMFxufVxuXG5mdW5jdGlvbiBpc1BsYWluSW1wb3J0RXF1YWxzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ1RTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24nICYmIG5vZGUubW9kdWxlUmVmZXJlbmNlLmV4cHJlc3Npb25cbn1cblxuZnVuY3Rpb24gY2FuQ3Jvc3NOb2RlV2hpbGVSZW9yZGVyKG5vZGUpIHtcbiAgcmV0dXJuIGlzUGxhaW5SZXF1aXJlTW9kdWxlKG5vZGUpIHx8IGlzUGxhaW5JbXBvcnRNb2R1bGUobm9kZSkgfHwgaXNQbGFpbkltcG9ydEVxdWFscyhub2RlKVxufVxuXG5mdW5jdGlvbiBjYW5SZW9yZGVySXRlbXMoZmlyc3ROb2RlLCBzZWNvbmROb2RlKSB7XG4gIGNvbnN0IHBhcmVudCA9IGZpcnN0Tm9kZS5wYXJlbnRcbiAgY29uc3QgW2ZpcnN0SW5kZXgsIHNlY29uZEluZGV4XSA9IFtcbiAgICBwYXJlbnQuYm9keS5pbmRleE9mKGZpcnN0Tm9kZSksXG4gICAgcGFyZW50LmJvZHkuaW5kZXhPZihzZWNvbmROb2RlKSxcbiAgXS5zb3J0KClcbiAgY29uc3Qgbm9kZXNCZXR3ZWVuID0gcGFyZW50LmJvZHkuc2xpY2UoZmlyc3RJbmRleCwgc2Vjb25kSW5kZXggKyAxKVxuICBmb3IgKHZhciBub2RlQmV0d2VlbiBvZiBub2Rlc0JldHdlZW4pIHtcbiAgICBpZiAoIWNhbkNyb3NzTm9kZVdoaWxlUmVvcmRlcihub2RlQmV0d2VlbikpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiBmaXhPdXRPZk9yZGVyKGNvbnRleHQsIGZpcnN0Tm9kZSwgc2Vjb25kTm9kZSwgb3JkZXIpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG5cbiAgY29uc3QgZmlyc3RSb290ID0gZmluZFJvb3ROb2RlKGZpcnN0Tm9kZS5ub2RlKVxuICBjb25zdCBmaXJzdFJvb3RTdGFydCA9IGZpbmRTdGFydE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBmaXJzdFJvb3QpXG4gIGNvbnN0IGZpcnN0Um9vdEVuZCA9IGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgZmlyc3RSb290KVxuXG4gIGNvbnN0IHNlY29uZFJvb3QgPSBmaW5kUm9vdE5vZGUoc2Vjb25kTm9kZS5ub2RlKVxuICBjb25zdCBzZWNvbmRSb290U3RhcnQgPSBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgc2Vjb25kUm9vdClcbiAgY29uc3Qgc2Vjb25kUm9vdEVuZCA9IGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgc2Vjb25kUm9vdClcbiAgY29uc3QgY2FuRml4ID0gY2FuUmVvcmRlckl0ZW1zKGZpcnN0Um9vdCwgc2Vjb25kUm9vdClcblxuICBsZXQgbmV3Q29kZSA9IHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcoc2Vjb25kUm9vdFN0YXJ0LCBzZWNvbmRSb290RW5kKVxuICBpZiAobmV3Q29kZVtuZXdDb2RlLmxlbmd0aCAtIDFdICE9PSAnXFxuJykge1xuICAgIG5ld0NvZGUgPSBuZXdDb2RlICsgJ1xcbidcbiAgfVxuXG4gIGNvbnN0IG1lc3NhZ2UgPSBgXFxgJHtzZWNvbmROb2RlLmRpc3BsYXlOYW1lfVxcYCBpbXBvcnQgc2hvdWxkIG9jY3VyICR7b3JkZXJ9IGltcG9ydCBvZiBcXGAke2ZpcnN0Tm9kZS5kaXNwbGF5TmFtZX1cXGBgXG5cbiAgaWYgKG9yZGVyID09PSAnYmVmb3JlJykge1xuICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgIG5vZGU6IHNlY29uZE5vZGUubm9kZSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICBmaXg6IGNhbkZpeCAmJiAoZml4ZXIgPT5cbiAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShcbiAgICAgICAgICBbZmlyc3RSb290U3RhcnQsIHNlY29uZFJvb3RFbmRdLFxuICAgICAgICAgIG5ld0NvZGUgKyBzb3VyY2VDb2RlLnRleHQuc3Vic3RyaW5nKGZpcnN0Um9vdFN0YXJ0LCBzZWNvbmRSb290U3RhcnQpXG4gICAgICAgICkpLFxuICAgIH0pXG4gIH0gZWxzZSBpZiAob3JkZXIgPT09ICdhZnRlcicpIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBub2RlOiBzZWNvbmROb2RlLm5vZGUsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgZml4OiBjYW5GaXggJiYgKGZpeGVyID0+XG4gICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoXG4gICAgICAgICAgW3NlY29uZFJvb3RTdGFydCwgZmlyc3RSb290RW5kXSxcbiAgICAgICAgICBzb3VyY2VDb2RlLnRleHQuc3Vic3RyaW5nKHNlY29uZFJvb3RFbmQsIGZpcnN0Um9vdEVuZCkgKyBuZXdDb2RlXG4gICAgICAgICkpLFxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgb3JkZXIpIHtcbiAgb3V0T2ZPcmRlci5mb3JFYWNoKGZ1bmN0aW9uIChpbXApIHtcbiAgICBjb25zdCBmb3VuZCA9IGltcG9ydGVkLmZpbmQoZnVuY3Rpb24gaGFzSGlnaGVyUmFuayhpbXBvcnRlZEl0ZW0pIHtcbiAgICAgIHJldHVybiBpbXBvcnRlZEl0ZW0ucmFuayA+IGltcC5yYW5rXG4gICAgfSlcbiAgICBmaXhPdXRPZk9yZGVyKGNvbnRleHQsIGZvdW5kLCBpbXAsIG9yZGVyKVxuICB9KVxufVxuXG5mdW5jdGlvbiBtYWtlT3V0T2ZPcmRlclJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCkge1xuICBjb25zdCBvdXRPZk9yZGVyID0gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpXG4gIGlmICghb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvLyBUaGVyZSBhcmUgdGhpbmdzIHRvIHJlcG9ydC4gVHJ5IHRvIG1pbmltaXplIHRoZSBudW1iZXIgb2YgcmVwb3J0ZWQgZXJyb3JzLlxuICBjb25zdCByZXZlcnNlZEltcG9ydGVkID0gcmV2ZXJzZShpbXBvcnRlZClcbiAgY29uc3QgcmV2ZXJzZWRPcmRlciA9IGZpbmRPdXRPZk9yZGVyKHJldmVyc2VkSW1wb3J0ZWQpXG4gIGlmIChyZXZlcnNlZE9yZGVyLmxlbmd0aCA8IG91dE9mT3JkZXIubGVuZ3RoKSB7XG4gICAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCByZXZlcnNlZEltcG9ydGVkLCByZXZlcnNlZE9yZGVyLCAnYWZ0ZXInKVxuICAgIHJldHVyblxuICB9XG4gIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgaW1wb3J0ZWQsIG91dE9mT3JkZXIsICdiZWZvcmUnKVxufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZXIoYXNjZW5kaW5nKSB7XG4gIGNvbnN0IG11bHRpcGxpZXIgPSBhc2NlbmRpbmcgPyAxIDogLTFcblxuICByZXR1cm4gZnVuY3Rpb24gaW1wb3J0c1NvcnRlcihpbXBvcnRBLCBpbXBvcnRCKSB7XG4gICAgbGV0IHJlc3VsdFxuXG4gICAgaWYgKGltcG9ydEEgPCBpbXBvcnRCKSB7XG4gICAgICByZXN1bHQgPSAtMVxuICAgIH0gZWxzZSBpZiAoaW1wb3J0QSA+IGltcG9ydEIpIHtcbiAgICAgIHJlc3VsdCA9IDFcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gMFxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQgKiBtdWx0aXBsaWVyXG4gIH1cbn1cblxuZnVuY3Rpb24gbXV0YXRlUmFua3NUb0FscGhhYmV0aXplKGltcG9ydGVkLCBhbHBoYWJldGl6ZU9wdGlvbnMpIHtcbiAgY29uc3QgZ3JvdXBlZEJ5UmFua3MgPSBpbXBvcnRlZC5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBpbXBvcnRlZEl0ZW0pIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWNjW2ltcG9ydGVkSXRlbS5yYW5rXSkpIHtcbiAgICAgIGFjY1tpbXBvcnRlZEl0ZW0ucmFua10gPSBbXVxuICAgIH1cbiAgICBhY2NbaW1wb3J0ZWRJdGVtLnJhbmtdLnB1c2goaW1wb3J0ZWRJdGVtLnZhbHVlKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgY29uc3QgZ3JvdXBSYW5rcyA9IE9iamVjdC5rZXlzKGdyb3VwZWRCeVJhbmtzKVxuXG4gIGNvbnN0IHNvcnRlckZuID0gZ2V0U29ydGVyKGFscGhhYmV0aXplT3B0aW9ucy5vcmRlciA9PT0gJ2FzYycpXG4gIGNvbnN0IGNvbXBhcmF0b3IgPSBhbHBoYWJldGl6ZU9wdGlvbnMuY2FzZUluc2Vuc2l0aXZlID8gKGEsIGIpID0+IHNvcnRlckZuKFN0cmluZyhhKS50b0xvd2VyQ2FzZSgpLCBTdHJpbmcoYikudG9Mb3dlckNhc2UoKSkgOiAoYSwgYikgPT4gc29ydGVyRm4oYSwgYilcbiAgLy8gc29ydCBpbXBvcnRzIGxvY2FsbHkgd2l0aGluIHRoZWlyIGdyb3VwXG4gIGdyb3VwUmFua3MuZm9yRWFjaChmdW5jdGlvbihncm91cFJhbmspIHtcbiAgICBncm91cGVkQnlSYW5rc1tncm91cFJhbmtdLnNvcnQoY29tcGFyYXRvcilcbiAgfSlcblxuICAvLyBhc3NpZ24gZ2xvYmFsbHkgdW5pcXVlIHJhbmsgdG8gZWFjaCBpbXBvcnRcbiAgbGV0IG5ld1JhbmsgPSAwXG4gIGNvbnN0IGFscGhhYmV0aXplZFJhbmtzID0gZ3JvdXBSYW5rcy5zb3J0KCkucmVkdWNlKGZ1bmN0aW9uKGFjYywgZ3JvdXBSYW5rKSB7XG4gICAgZ3JvdXBlZEJ5UmFua3NbZ3JvdXBSYW5rXS5mb3JFYWNoKGZ1bmN0aW9uKGltcG9ydGVkSXRlbU5hbWUpIHtcbiAgICAgIGFjY1tpbXBvcnRlZEl0ZW1OYW1lXSA9IHBhcnNlSW50KGdyb3VwUmFuaywgMTApICsgbmV3UmFua1xuICAgICAgbmV3UmFuayArPSAxXG4gICAgfSlcbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIC8vIG11dGF0ZSB0aGUgb3JpZ2luYWwgZ3JvdXAtcmFuayB3aXRoIGFscGhhYmV0aXplZC1yYW5rXG4gIGltcG9ydGVkLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZWRJdGVtKSB7XG4gICAgaW1wb3J0ZWRJdGVtLnJhbmsgPSBhbHBoYWJldGl6ZWRSYW5rc1tpbXBvcnRlZEl0ZW0udmFsdWVdXG4gIH0pXG59XG5cbi8vIERFVEVDVElOR1xuXG5mdW5jdGlvbiBjb21wdXRlUGF0aFJhbmsocmFua3MsIHBhdGhHcm91cHMsIHBhdGgsIG1heFBvc2l0aW9uKSB7XG4gIGZvciAobGV0IGkgPSAwLCBsID0gcGF0aEdyb3Vwcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCB7IHBhdHRlcm4sIHBhdHRlcm5PcHRpb25zLCBncm91cCwgcG9zaXRpb24gPSAxIH0gPSBwYXRoR3JvdXBzW2ldXG4gICAgaWYgKG1pbmltYXRjaChwYXRoLCBwYXR0ZXJuLCBwYXR0ZXJuT3B0aW9ucyB8fCB7IG5vY29tbWVudDogdHJ1ZSB9KSkge1xuICAgICAgcmV0dXJuIHJhbmtzW2dyb3VwXSArIChwb3NpdGlvbiAvIG1heFBvc2l0aW9uKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgaW1wb3J0RW50cnksIGV4Y2x1ZGVkSW1wb3J0VHlwZXMpIHtcbiAgbGV0IGltcFR5cGVcbiAgbGV0IHJhbmtcbiAgaWYgKGltcG9ydEVudHJ5LnR5cGUgPT09ICdpbXBvcnQ6b2JqZWN0Jykge1xuICAgIGltcFR5cGUgPSAnb2JqZWN0J1xuICB9IGVsc2Uge1xuICAgIGltcFR5cGUgPSBpbXBvcnRUeXBlKGltcG9ydEVudHJ5LnZhbHVlLCBjb250ZXh0KVxuICB9XG4gIGlmICghZXhjbHVkZWRJbXBvcnRUeXBlcy5oYXMoaW1wVHlwZSkpIHtcbiAgICByYW5rID0gY29tcHV0ZVBhdGhSYW5rKHJhbmtzLmdyb3VwcywgcmFua3MucGF0aEdyb3VwcywgaW1wb3J0RW50cnkudmFsdWUsIHJhbmtzLm1heFBvc2l0aW9uKVxuICB9XG4gIGlmICh0eXBlb2YgcmFuayA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByYW5rID0gcmFua3MuZ3JvdXBzW2ltcFR5cGVdXG4gIH1cbiAgaWYgKGltcG9ydEVudHJ5LnR5cGUgIT09ICdpbXBvcnQnICYmICFpbXBvcnRFbnRyeS50eXBlLnN0YXJ0c1dpdGgoJ2ltcG9ydDonKSkge1xuICAgIHJhbmsgKz0gMTAwXG4gIH1cblxuICByZXR1cm4gcmFua1xufVxuXG5mdW5jdGlvbiByZWdpc3Rlck5vZGUoY29udGV4dCwgaW1wb3J0RW50cnksIHJhbmtzLCBpbXBvcnRlZCwgZXhjbHVkZWRJbXBvcnRUeXBlcykge1xuICBjb25zdCByYW5rID0gY29tcHV0ZVJhbmsoY29udGV4dCwgcmFua3MsIGltcG9ydEVudHJ5LCBleGNsdWRlZEltcG9ydFR5cGVzKVxuICBpZiAocmFuayAhPT0gLTEpIHtcbiAgICBpbXBvcnRlZC5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGltcG9ydEVudHJ5LCB7IHJhbmsgfSkpXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlKSB7XG4gIHJldHVybiBub2RlICYmXG4gICAgKG5vZGUudHlwZSA9PT0gJ1ZhcmlhYmxlRGVjbGFyYXRvcicgfHwgaXNJblZhcmlhYmxlRGVjbGFyYXRvcihub2RlLnBhcmVudCkpXG59XG5cbmNvbnN0IHR5cGVzID0gWydidWlsdGluJywgJ2V4dGVybmFsJywgJ2ludGVybmFsJywgJ3Vua25vd24nLCAncGFyZW50JywgJ3NpYmxpbmcnLCAnaW5kZXgnLCAnb2JqZWN0J11cblxuLy8gQ3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0eXBlLXJhbmsgcGFpcnMuXG4vLyBFeGFtcGxlOiB7IGluZGV4OiAwLCBzaWJsaW5nOiAxLCBwYXJlbnQ6IDEsIGV4dGVybmFsOiAxLCBidWlsdGluOiAyLCBpbnRlcm5hbDogMiB9XG4vLyBXaWxsIHRocm93IGFuIGVycm9yIGlmIGl0IGNvbnRhaW5zIGEgdHlwZSB0aGF0IGRvZXMgbm90IGV4aXN0LCBvciBoYXMgYSBkdXBsaWNhdGVcbmZ1bmN0aW9uIGNvbnZlcnRHcm91cHNUb1JhbmtzKGdyb3Vwcykge1xuICBjb25zdCByYW5rT2JqZWN0ID0gZ3JvdXBzLnJlZHVjZShmdW5jdGlvbihyZXMsIGdyb3VwLCBpbmRleCkge1xuICAgIGlmICh0eXBlb2YgZ3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICBncm91cCA9IFtncm91cF1cbiAgICB9XG4gICAgZ3JvdXAuZm9yRWFjaChmdW5jdGlvbihncm91cEl0ZW0pIHtcbiAgICAgIGlmICh0eXBlcy5pbmRleE9mKGdyb3VwSXRlbSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IFVua25vd24gdHlwZSBgJyArXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZ3JvdXBJdGVtKSArICdgJylcbiAgICAgIH1cbiAgICAgIGlmIChyZXNbZ3JvdXBJdGVtXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IGAnICsgZ3JvdXBJdGVtICsgJ2AgaXMgZHVwbGljYXRlZCcpXG4gICAgICB9XG4gICAgICByZXNbZ3JvdXBJdGVtXSA9IGluZGV4XG4gICAgfSlcbiAgICByZXR1cm4gcmVzXG4gIH0sIHt9KVxuXG4gIGNvbnN0IG9taXR0ZWRUeXBlcyA9IHR5cGVzLmZpbHRlcihmdW5jdGlvbih0eXBlKSB7XG4gICAgcmV0dXJuIHJhbmtPYmplY3RbdHlwZV0gPT09IHVuZGVmaW5lZFxuICB9KVxuXG4gIHJldHVybiBvbWl0dGVkVHlwZXMucmVkdWNlKGZ1bmN0aW9uKHJlcywgdHlwZSkge1xuICAgIHJlc1t0eXBlXSA9IGdyb3Vwcy5sZW5ndGhcbiAgICByZXR1cm4gcmVzXG4gIH0sIHJhbmtPYmplY3QpXG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXRoR3JvdXBzRm9yUmFua3MocGF0aEdyb3Vwcykge1xuICBjb25zdCBhZnRlciA9IHt9XG4gIGNvbnN0IGJlZm9yZSA9IHt9XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSBwYXRoR3JvdXBzLm1hcCgocGF0aEdyb3VwLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHsgZ3JvdXAsIHBvc2l0aW9uOiBwb3NpdGlvblN0cmluZyB9ID0gcGF0aEdyb3VwXG4gICAgbGV0IHBvc2l0aW9uID0gMFxuICAgIGlmIChwb3NpdGlvblN0cmluZyA9PT0gJ2FmdGVyJykge1xuICAgICAgaWYgKCFhZnRlcltncm91cF0pIHtcbiAgICAgICAgYWZ0ZXJbZ3JvdXBdID0gMVxuICAgICAgfVxuICAgICAgcG9zaXRpb24gPSBhZnRlcltncm91cF0rK1xuICAgIH0gZWxzZSBpZiAocG9zaXRpb25TdHJpbmcgPT09ICdiZWZvcmUnKSB7XG4gICAgICBpZiAoIWJlZm9yZVtncm91cF0pIHtcbiAgICAgICAgYmVmb3JlW2dyb3VwXSA9IFtdXG4gICAgICB9XG4gICAgICBiZWZvcmVbZ3JvdXBdLnB1c2goaW5kZXgpXG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHBhdGhHcm91cCwgeyBwb3NpdGlvbiB9KVxuICB9KVxuXG4gIGxldCBtYXhQb3NpdGlvbiA9IDFcblxuICBPYmplY3Qua2V5cyhiZWZvcmUpLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBMZW5ndGggPSBiZWZvcmVbZ3JvdXBdLmxlbmd0aFxuICAgIGJlZm9yZVtncm91cF0uZm9yRWFjaCgoZ3JvdXBJbmRleCwgaW5kZXgpID0+IHtcbiAgICAgIHRyYW5zZm9ybWVkW2dyb3VwSW5kZXhdLnBvc2l0aW9uID0gLTEgKiAoZ3JvdXBMZW5ndGggLSBpbmRleClcbiAgICB9KVxuICAgIG1heFBvc2l0aW9uID0gTWF0aC5tYXgobWF4UG9zaXRpb24sIGdyb3VwTGVuZ3RoKVxuICB9KVxuXG4gIE9iamVjdC5rZXlzKGFmdGVyKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBncm91cE5leHRQb3NpdGlvbiA9IGFmdGVyW2tleV1cbiAgICBtYXhQb3NpdGlvbiA9IE1hdGgubWF4KG1heFBvc2l0aW9uLCBncm91cE5leHRQb3NpdGlvbiAtIDEpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoR3JvdXBzOiB0cmFuc2Zvcm1lZCxcbiAgICBtYXhQb3NpdGlvbjogbWF4UG9zaXRpb24gPiAxMCA/IE1hdGgucG93KDEwLCBNYXRoLmNlaWwoTWF0aC5sb2cxMChtYXhQb3NpdGlvbikpKSA6IDEwLFxuICB9XG59XG5cbmZ1bmN0aW9uIGZpeE5ld0xpbmVBZnRlckltcG9ydChjb250ZXh0LCBwcmV2aW91c0ltcG9ydCkge1xuICBjb25zdCBwcmV2Um9vdCA9IGZpbmRSb290Tm9kZShwcmV2aW91c0ltcG9ydC5ub2RlKVxuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNBZnRlcldoaWxlKFxuICAgIGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLCBwcmV2Um9vdCwgY29tbWVudE9uU2FtZUxpbmVBcyhwcmV2Um9vdCkpXG5cbiAgbGV0IGVuZE9mTGluZSA9IHByZXZSb290LnJhbmdlWzFdXG4gIGlmICh0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggPiAwKSB7XG4gICAgZW5kT2ZMaW5lID0gdG9rZW5zVG9FbmRPZkxpbmVbdG9rZW5zVG9FbmRPZkxpbmUubGVuZ3RoIC0gMV0ucmFuZ2VbMV1cbiAgfVxuICByZXR1cm4gKGZpeGVyKSA9PiBmaXhlci5pbnNlcnRUZXh0QWZ0ZXJSYW5nZShbcHJldlJvb3QucmFuZ2VbMF0sIGVuZE9mTGluZV0sICdcXG4nKVxufVxuXG5mdW5jdGlvbiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpXG4gIGNvbnN0IHByZXZSb290ID0gZmluZFJvb3ROb2RlKHByZXZpb3VzSW1wb3J0Lm5vZGUpXG4gIGNvbnN0IGN1cnJSb290ID0gZmluZFJvb3ROb2RlKGN1cnJlbnRJbXBvcnQubm9kZSlcbiAgY29uc3QgcmFuZ2VUb1JlbW92ZSA9IFtcbiAgICBmaW5kRW5kT2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIHByZXZSb290KSxcbiAgICBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgY3VyclJvb3QpLFxuICBdXG4gIGlmICgvXlxccyokLy50ZXN0KHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcocmFuZ2VUb1JlbW92ZVswXSwgcmFuZ2VUb1JlbW92ZVsxXSkpKSB7XG4gICAgcmV0dXJuIChmaXhlcikgPT4gZml4ZXIucmVtb3ZlUmFuZ2UocmFuZ2VUb1JlbW92ZSlcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQgKGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKSB7XG4gIGNvbnN0IGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4gPSAoY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID0+IHtcbiAgICBjb25zdCBsaW5lc0JldHdlZW5JbXBvcnRzID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkubGluZXMuc2xpY2UoXG4gICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLmxvYy5lbmQubGluZSxcbiAgICAgIGN1cnJlbnRJbXBvcnQubm9kZS5sb2Muc3RhcnQubGluZSAtIDFcbiAgICApXG5cbiAgICByZXR1cm4gbGluZXNCZXR3ZWVuSW1wb3J0cy5maWx0ZXIoKGxpbmUpID0+ICFsaW5lLnRyaW0oKS5sZW5ndGgpLmxlbmd0aFxuICB9XG4gIGxldCBwcmV2aW91c0ltcG9ydCA9IGltcG9ydGVkWzBdXG5cbiAgaW1wb3J0ZWQuc2xpY2UoMSkuZm9yRWFjaChmdW5jdGlvbihjdXJyZW50SW1wb3J0KSB7XG4gICAgY29uc3QgZW1wdHlMaW5lc0JldHdlZW4gPSBnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuKGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KVxuXG4gICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMnXG4gICAgICAgIHx8IG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPT09ICdhbHdheXMtYW5kLWluc2lkZS1ncm91cHMnKSB7XG4gICAgICBpZiAoY3VycmVudEltcG9ydC5yYW5rICE9PSBwcmV2aW91c0ltcG9ydC5yYW5rICYmIGVtcHR5TGluZXNCZXR3ZWVuID09PSAwKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBub2RlOiBwcmV2aW91c0ltcG9ydC5ub2RlLFxuICAgICAgICAgIG1lc3NhZ2U6ICdUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJyxcbiAgICAgICAgICBmaXg6IGZpeE5ld0xpbmVBZnRlckltcG9ydChjb250ZXh0LCBwcmV2aW91c0ltcG9ydCksXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbXBvcnQucmFuayA9PT0gcHJldmlvdXNJbXBvcnQucmFua1xuICAgICAgICAmJiBlbXB0eUxpbmVzQmV0d2VlbiA+IDBcbiAgICAgICAgJiYgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cyAhPT0gJ2Fsd2F5cy1hbmQtaW5zaWRlLWdyb3VwcycpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHByZXZpb3VzSW1wb3J0Lm5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIHdpdGhpbiBpbXBvcnQgZ3JvdXAnLFxuICAgICAgICAgIGZpeDogcmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0KGNvbnRleHQsIGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXNCZXR3ZWVuID4gMCkge1xuICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICBub2RlOiBwcmV2aW91c0ltcG9ydC5ub2RlLFxuICAgICAgICBtZXNzYWdlOiAnVGhlcmUgc2hvdWxkIGJlIG5vIGVtcHR5IGxpbmUgYmV0d2VlbiBpbXBvcnQgZ3JvdXBzJyxcbiAgICAgICAgZml4OiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0ltcG9ydCA9IGN1cnJlbnRJbXBvcnRcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0QWxwaGFiZXRpemVDb25maWcob3B0aW9ucykge1xuICBjb25zdCBhbHBoYWJldGl6ZSA9IG9wdGlvbnMuYWxwaGFiZXRpemUgfHwge31cbiAgY29uc3Qgb3JkZXIgPSBhbHBoYWJldGl6ZS5vcmRlciB8fCAnaWdub3JlJ1xuICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBhbHBoYWJldGl6ZS5jYXNlSW5zZW5zaXRpdmUgfHwgZmFsc2VcblxuICByZXR1cm4ge29yZGVyLCBjYXNlSW5zZW5zaXRpdmV9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgnb3JkZXInKSxcbiAgICB9LFxuXG4gICAgZml4YWJsZTogJ2NvZGUnLFxuICAgIHNjaGVtYTogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYXJyYXknLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGF0aEdyb3Vwczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXR0ZXJuT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBncm91cDoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICBlbnVtOiB0eXBlcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgIGVudW06IFsnYWZ0ZXInLCAnYmVmb3JlJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsncGF0dGVybicsICdncm91cCddLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgICduZXdsaW5lcy1iZXR3ZWVuJzoge1xuICAgICAgICAgICAgZW51bTogW1xuICAgICAgICAgICAgICAnaWdub3JlJyxcbiAgICAgICAgICAgICAgJ2Fsd2F5cycsXG4gICAgICAgICAgICAgICdhbHdheXMtYW5kLWluc2lkZS1ncm91cHMnLFxuICAgICAgICAgICAgICAnbmV2ZXInLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFscGhhYmV0aXplOiB7XG4gICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgY2FzZUluc2Vuc2l0aXZlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvcmRlcjoge1xuICAgICAgICAgICAgICAgIGVudW06IFsnaWdub3JlJywgJ2FzYycsICdkZXNjJ10sXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogJ2lnbm9yZScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcblxuICBjcmVhdGU6IGZ1bmN0aW9uIGltcG9ydE9yZGVyUnVsZSAoY29udGV4dCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBjb250ZXh0Lm9wdGlvbnNbMF0gfHwge31cbiAgICBjb25zdCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzID0gb3B0aW9uc1snbmV3bGluZXMtYmV0d2VlbiddIHx8ICdpZ25vcmUnXG4gICAgY29uc3QgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXMgPSBuZXcgU2V0KG9wdGlvbnNbJ3BhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzJ10gfHwgWydidWlsdGluJywgJ2V4dGVybmFsJywgJ29iamVjdCddKVxuICAgIGNvbnN0IGFscGhhYmV0aXplID0gZ2V0QWxwaGFiZXRpemVDb25maWcob3B0aW9ucylcbiAgICBsZXQgcmFua3NcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHBhdGhHcm91cHMsIG1heFBvc2l0aW9uIH0gPSBjb252ZXJ0UGF0aEdyb3Vwc0ZvclJhbmtzKG9wdGlvbnMucGF0aEdyb3VwcyB8fCBbXSlcbiAgICAgIHJhbmtzID0ge1xuICAgICAgICBncm91cHM6IGNvbnZlcnRHcm91cHNUb1JhbmtzKG9wdGlvbnMuZ3JvdXBzIHx8IGRlZmF1bHRHcm91cHMpLFxuICAgICAgICBwYXRoR3JvdXBzLFxuICAgICAgICBtYXhQb3NpdGlvbixcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gTWFsZm9ybWVkIGNvbmZpZ3VyYXRpb25cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFByb2dyYW06IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChub2RlLCBlcnJvci5tZXNzYWdlKVxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaW1wb3J0ZWQgPSBbXVxuICAgIGxldCBsZXZlbCA9IDBcblxuICAgIGZ1bmN0aW9uIGluY3JlbWVudExldmVsKCkge1xuICAgICAgbGV2ZWwrK1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWNyZW1lbnRMZXZlbCgpIHtcbiAgICAgIGxldmVsLS1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCkgeyAvLyBJZ25vcmluZyB1bmFzc2lnbmVkIGltcG9ydHNcbiAgICAgICAgICBjb25zdCBuYW1lID0gbm9kZS5zb3VyY2UudmFsdWVcbiAgICAgICAgICByZWdpc3Rlck5vZGUoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIHR5cGU6ICdpbXBvcnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJhbmtzLFxuICAgICAgICAgICAgaW1wb3J0ZWQsXG4gICAgICAgICAgICBwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlc1xuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgICBsZXQgZGlzcGxheU5hbWVcbiAgICAgICAgbGV0IHZhbHVlXG4gICAgICAgIGxldCB0eXBlXG4gICAgICAgIC8vIHNraXAgXCJleHBvcnQgaW1wb3J0XCJzXG4gICAgICAgIGlmIChub2RlLmlzRXhwb3J0KSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUubW9kdWxlUmVmZXJlbmNlLnR5cGUgPT09ICdUU0V4dGVybmFsTW9kdWxlUmVmZXJlbmNlJykge1xuICAgICAgICAgIHZhbHVlID0gbm9kZS5tb2R1bGVSZWZlcmVuY2UuZXhwcmVzc2lvbi52YWx1ZVxuICAgICAgICAgIGRpc3BsYXlOYW1lID0gdmFsdWVcbiAgICAgICAgICB0eXBlID0gJ2ltcG9ydCdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9ICcnXG4gICAgICAgICAgZGlzcGxheU5hbWUgPSBjb250ZXh0LmdldFNvdXJjZUNvZGUoKS5nZXRUZXh0KG5vZGUubW9kdWxlUmVmZXJlbmNlKVxuICAgICAgICAgIHR5cGUgPSAnaW1wb3J0Om9iamVjdCdcbiAgICAgICAgfVxuICAgICAgICByZWdpc3Rlck5vZGUoXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByYW5rcyxcbiAgICAgICAgICBpbXBvcnRlZCxcbiAgICAgICAgICBwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlc1xuICAgICAgICApXG4gICAgICB9LFxuICAgICAgQ2FsbEV4cHJlc3Npb246IGZ1bmN0aW9uIGhhbmRsZVJlcXVpcmVzKG5vZGUpIHtcbiAgICAgICAgaWYgKGxldmVsICE9PSAwIHx8ICFpc1N0YXRpY1JlcXVpcmUobm9kZSkgfHwgIWlzSW5WYXJpYWJsZURlY2xhcmF0b3Iobm9kZS5wYXJlbnQpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlXG4gICAgICAgIHJlZ2lzdGVyTm9kZShcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBuYW1lLFxuICAgICAgICAgICAgdHlwZTogJ3JlcXVpcmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmFua3MsXG4gICAgICAgICAgaW1wb3J0ZWQsXG4gICAgICAgICAgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXNcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbiByZXBvcnRBbmRSZXNldCgpIHtcbiAgICAgICAgaWYgKG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgIT09ICdpZ25vcmUnKSB7XG4gICAgICAgICAgbWFrZU5ld2xpbmVzQmV0d2VlblJlcG9ydChjb250ZXh0LCBpbXBvcnRlZCwgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbHBoYWJldGl6ZS5vcmRlciAhPT0gJ2lnbm9yZScpIHtcbiAgICAgICAgICBtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUoaW1wb3J0ZWQsIGFscGhhYmV0aXplKVxuICAgICAgICB9XG5cbiAgICAgICAgbWFrZU91dE9mT3JkZXJSZXBvcnQoY29udGV4dCwgaW1wb3J0ZWQpXG5cbiAgICAgICAgaW1wb3J0ZWQgPSBbXVxuICAgICAgfSxcbiAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246IGluY3JlbWVudExldmVsLFxuICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIEJsb2NrU3RhdGVtZW50OiBpbmNyZW1lbnRMZXZlbCxcbiAgICAgIE9iamVjdEV4cHJlc3Npb246IGluY3JlbWVudExldmVsLFxuICAgICAgJ0Z1bmN0aW9uRGVjbGFyYXRpb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbjpleGl0JzogZGVjcmVtZW50TGV2ZWwsXG4gICAgICAnQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246ZXhpdCc6IGRlY3JlbWVudExldmVsLFxuICAgICAgJ0Jsb2NrU3RhdGVtZW50OmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICAgICdPYmplY3RFeHByZXNzaW9uOmV4aXQnOiBkZWNyZW1lbnRMZXZlbCxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9vcmRlci5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0R3JvdXBzIiwicmV2ZXJzZSIsImFycmF5IiwibWFwIiwidiIsIk9iamVjdCIsImFzc2lnbiIsInJhbmsiLCJnZXRUb2tlbnNPckNvbW1lbnRzQWZ0ZXIiLCJzb3VyY2VDb2RlIiwibm9kZSIsImNvdW50IiwiY3VycmVudE5vZGVPclRva2VuIiwicmVzdWx0IiwiaSIsImdldFRva2VuT3JDb21tZW50QWZ0ZXIiLCJwdXNoIiwiZ2V0VG9rZW5zT3JDb21tZW50c0JlZm9yZSIsImdldFRva2VuT3JDb21tZW50QmVmb3JlIiwidGFrZVRva2Vuc0FmdGVyV2hpbGUiLCJjb25kaXRpb24iLCJ0b2tlbnMiLCJsZW5ndGgiLCJ0YWtlVG9rZW5zQmVmb3JlV2hpbGUiLCJmaW5kT3V0T2ZPcmRlciIsImltcG9ydGVkIiwibWF4U2VlblJhbmtOb2RlIiwiZmlsdGVyIiwiaW1wb3J0ZWRNb2R1bGUiLCJyZXMiLCJmaW5kUm9vdE5vZGUiLCJwYXJlbnQiLCJib2R5IiwiZmluZEVuZE9mTGluZVdpdGhDb21tZW50cyIsInRva2Vuc1RvRW5kT2ZMaW5lIiwiY29tbWVudE9uU2FtZUxpbmVBcyIsImVuZE9mVG9rZW5zIiwicmFuZ2UiLCJ0ZXh0IiwidG9rZW4iLCJ0eXBlIiwibG9jIiwic3RhcnQiLCJsaW5lIiwiZW5kIiwiZmluZFN0YXJ0T2ZMaW5lV2l0aENvbW1lbnRzIiwic3RhcnRPZlRva2VucyIsImlzUGxhaW5SZXF1aXJlTW9kdWxlIiwiZGVjbGFyYXRpb25zIiwiZGVjbCIsImlkIiwiaW5pdCIsImNhbGxlZSIsIm5hbWUiLCJhcmd1bWVudHMiLCJpc1BsYWluSW1wb3J0TW9kdWxlIiwic3BlY2lmaWVycyIsImlzUGxhaW5JbXBvcnRFcXVhbHMiLCJtb2R1bGVSZWZlcmVuY2UiLCJleHByZXNzaW9uIiwiY2FuQ3Jvc3NOb2RlV2hpbGVSZW9yZGVyIiwiY2FuUmVvcmRlckl0ZW1zIiwiZmlyc3ROb2RlIiwic2Vjb25kTm9kZSIsImluZGV4T2YiLCJzb3J0IiwiZmlyc3RJbmRleCIsInNlY29uZEluZGV4Iiwibm9kZXNCZXR3ZWVuIiwic2xpY2UiLCJub2RlQmV0d2VlbiIsImZpeE91dE9mT3JkZXIiLCJjb250ZXh0Iiwib3JkZXIiLCJnZXRTb3VyY2VDb2RlIiwiZmlyc3RSb290IiwiZmlyc3RSb290U3RhcnQiLCJmaXJzdFJvb3RFbmQiLCJzZWNvbmRSb290Iiwic2Vjb25kUm9vdFN0YXJ0Iiwic2Vjb25kUm9vdEVuZCIsImNhbkZpeCIsIm5ld0NvZGUiLCJzdWJzdHJpbmciLCJtZXNzYWdlIiwiZGlzcGxheU5hbWUiLCJyZXBvcnQiLCJmaXgiLCJmaXhlciIsInJlcGxhY2VUZXh0UmFuZ2UiLCJyZXBvcnRPdXRPZk9yZGVyIiwib3V0T2ZPcmRlciIsImZvckVhY2giLCJpbXAiLCJmb3VuZCIsImZpbmQiLCJoYXNIaWdoZXJSYW5rIiwiaW1wb3J0ZWRJdGVtIiwibWFrZU91dE9mT3JkZXJSZXBvcnQiLCJyZXZlcnNlZEltcG9ydGVkIiwicmV2ZXJzZWRPcmRlciIsImdldFNvcnRlciIsImFzY2VuZGluZyIsIm11bHRpcGxpZXIiLCJpbXBvcnRzU29ydGVyIiwiaW1wb3J0QSIsImltcG9ydEIiLCJtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUiLCJhbHBoYWJldGl6ZU9wdGlvbnMiLCJncm91cGVkQnlSYW5rcyIsInJlZHVjZSIsImFjYyIsIkFycmF5IiwiaXNBcnJheSIsImdyb3VwUmFua3MiLCJrZXlzIiwic29ydGVyRm4iLCJjb21wYXJhdG9yIiwiY2FzZUluc2Vuc2l0aXZlIiwiYSIsImIiLCJTdHJpbmciLCJ2YWx1ZSIsInRvTG93ZXJDYXNlIiwiZ3JvdXBSYW5rIiwibmV3UmFuayIsImFscGhhYmV0aXplZFJhbmtzIiwiaW1wb3J0S2luZCIsInBhcnNlSW50IiwiY29tcHV0ZVBhdGhSYW5rIiwicmFua3MiLCJwYXRoR3JvdXBzIiwicGF0aCIsIm1heFBvc2l0aW9uIiwibCIsInBhdHRlcm4iLCJwYXR0ZXJuT3B0aW9ucyIsImdyb3VwIiwicG9zaXRpb24iLCJub2NvbW1lbnQiLCJjb21wdXRlUmFuayIsImltcG9ydEVudHJ5IiwiZXhjbHVkZWRJbXBvcnRUeXBlcyIsImltcFR5cGUiLCJvbWl0dGVkVHlwZXMiLCJoYXMiLCJncm91cHMiLCJzdGFydHNXaXRoIiwicmVnaXN0ZXJOb2RlIiwiaXNNb2R1bGVMZXZlbFJlcXVpcmUiLCJuIiwib2JqZWN0IiwidHlwZXMiLCJjb252ZXJ0R3JvdXBzVG9SYW5rcyIsInJhbmtPYmplY3QiLCJpbmRleCIsImdyb3VwSXRlbSIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuZGVmaW5lZCIsImNvbnZlcnRQYXRoR3JvdXBzRm9yUmFua3MiLCJhZnRlciIsImJlZm9yZSIsInRyYW5zZm9ybWVkIiwicGF0aEdyb3VwIiwicG9zaXRpb25TdHJpbmciLCJncm91cExlbmd0aCIsImdyb3VwSW5kZXgiLCJNYXRoIiwibWF4Iiwia2V5IiwiZ3JvdXBOZXh0UG9zaXRpb24iLCJwb3ciLCJjZWlsIiwibG9nMTAiLCJmaXhOZXdMaW5lQWZ0ZXJJbXBvcnQiLCJwcmV2aW91c0ltcG9ydCIsInByZXZSb290IiwiZW5kT2ZMaW5lIiwiaW5zZXJ0VGV4dEFmdGVyUmFuZ2UiLCJyZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQiLCJjdXJyZW50SW1wb3J0IiwiY3VyclJvb3QiLCJyYW5nZVRvUmVtb3ZlIiwidGVzdCIsInJlbW92ZVJhbmdlIiwibWFrZU5ld2xpbmVzQmV0d2VlblJlcG9ydCIsIm5ld2xpbmVzQmV0d2VlbkltcG9ydHMiLCJnZXROdW1iZXJPZkVtcHR5TGluZXNCZXR3ZWVuIiwibGluZXNCZXR3ZWVuSW1wb3J0cyIsImxpbmVzIiwidHJpbSIsImVtcHR5TGluZXNCZXR3ZWVuIiwiZ2V0QWxwaGFiZXRpemVDb25maWciLCJvcHRpb25zIiwiYWxwaGFiZXRpemUiLCJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsImRvY3MiLCJ1cmwiLCJmaXhhYmxlIiwic2NoZW1hIiwicHJvcGVydGllcyIsInBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzIiwiaXRlbXMiLCJlbnVtIiwicmVxdWlyZWQiLCJkZWZhdWx0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJ3YXJuT25VbmFzc2lnbmVkSW1wb3J0cyIsImNyZWF0ZSIsImltcG9ydE9yZGVyUnVsZSIsIlNldCIsImVycm9yIiwiUHJvZ3JhbSIsIkltcG9ydERlY2xhcmF0aW9uIiwiaGFuZGxlSW1wb3J0cyIsInNvdXJjZSIsIlRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24iLCJpc0V4cG9ydCIsImdldFRleHQiLCJDYWxsRXhwcmVzc2lvbiIsImhhbmRsZVJlcXVpcmVzIiwicmVwb3J0QW5kUmVzZXQiXSwibWFwcGluZ3MiOiJBQUFBLGE7O0FBRUEsc0M7QUFDQSxnRDtBQUNBLHNEO0FBQ0EscUM7O0FBRUEsTUFBTUEsZ0JBQWdCLENBQUMsU0FBRCxFQUFZLFVBQVosRUFBd0IsUUFBeEIsRUFBa0MsU0FBbEMsRUFBNkMsT0FBN0MsQ0FBdEI7O0FBRUE7O0FBRUEsU0FBU0MsT0FBVCxDQUFpQkMsS0FBakIsRUFBd0I7QUFDdEIsU0FBT0EsTUFBTUMsR0FBTixDQUFVLFVBQVVDLENBQVYsRUFBYTtBQUM1QixXQUFPQyxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkYsQ0FBbEIsRUFBcUIsRUFBRUcsTUFBTSxDQUFDSCxFQUFFRyxJQUFYLEVBQXJCLENBQVA7QUFDRCxHQUZNLEVBRUpOLE9BRkksRUFBUDtBQUdEOztBQUVELFNBQVNPLHdCQUFULENBQWtDQyxVQUFsQyxFQUE4Q0MsSUFBOUMsRUFBb0RDLEtBQXBELEVBQTJEO0FBQ3pELE1BQUlDLHFCQUFxQkYsSUFBekI7QUFDQSxRQUFNRyxTQUFTLEVBQWY7QUFDQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUgsS0FBcEIsRUFBMkJHLEdBQTNCLEVBQWdDO0FBQzlCRix5QkFBcUJILFdBQVdNLHNCQUFYLENBQWtDSCxrQkFBbEMsQ0FBckI7QUFD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QVFFMEYsYUFSRjtBQVNFekcsZ0JBVEY7QUFVRW9MLHFDQVZGOztBQVlELE9BbEVJO0FBbUVMLHNCQUFnQixTQUFTb0IsY0FBVCxHQUEwQjtBQUN4QyxZQUFJckMsMkJBQTJCLFFBQS9CLEVBQXlDO0FBQ3ZDRCxvQ0FBMEJuSCxPQUExQixFQUFtQy9DLFFBQW5DLEVBQTZDbUssc0JBQTdDO0FBQ0Q7O0FBRUQsWUFBSVEsWUFBWTNILEtBQVosS0FBc0IsUUFBMUIsRUFBb0M7QUFDbENrQyxtQ0FBeUJsRixRQUF6QixFQUFtQzJLLFdBQW5DO0FBQ0Q7O0FBRURsRyw2QkFBcUIxQixPQUFyQixFQUE4Qi9DLFFBQTlCOztBQUVBQSxtQkFBVyxFQUFYO0FBQ0QsT0EvRUksRUFBUDs7QUFpRkQsR0FwTGMsRUFBakIiLCJmaWxlIjoib3JkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSAnbWluaW1hdGNoJztcbmltcG9ydCBpbXBvcnRUeXBlIGZyb20gJy4uL2NvcmUvaW1wb3J0VHlwZSc7XG5pbXBvcnQgaXNTdGF0aWNSZXF1aXJlIGZyb20gJy4uL2NvcmUvc3RhdGljUmVxdWlyZSc7XG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJztcblxuY29uc3QgZGVmYXVsdEdyb3VwcyA9IFsnYnVpbHRpbicsICdleHRlcm5hbCcsICdwYXJlbnQnLCAnc2libGluZycsICdpbmRleCddO1xuXG4vLyBSRVBPUlRJTkcgQU5EIEZJWElOR1xuXG5mdW5jdGlvbiByZXZlcnNlKGFycmF5KSB7XG4gIHJldHVybiBhcnJheS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdiwgeyByYW5rOiAtdi5yYW5rIH0pO1xuICB9KS5yZXZlcnNlKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRva2Vuc09yQ29tbWVudHNBZnRlcihzb3VyY2VDb2RlLCBub2RlLCBjb3VudCkge1xuICBsZXQgY3VycmVudE5vZGVPclRva2VuID0gbm9kZTtcbiAgY29uc3QgcmVzdWx0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGN1cnJlbnROb2RlT3JUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5PckNvbW1lbnRBZnRlcihjdXJyZW50Tm9kZU9yVG9rZW4pO1xuICAgIGlmIChjdXJyZW50Tm9kZU9yVG9rZW4gPT0gbnVsbCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKGN1cnJlbnROb2RlT3JUb2tlbik7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2V0VG9rZW5zT3JDb21tZW50c0JlZm9yZShzb3VyY2VDb2RlLCBub2RlLCBjb3VudCkge1xuICBsZXQgY3VycmVudE5vZGVPclRva2VuID0gbm9kZTtcbiAgY29uc3QgcmVzdWx0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgIGN1cnJlbnROb2RlT3JUb2tlbiA9IHNvdXJjZUNvZGUuZ2V0VG9rZW5PckNvbW1lbnRCZWZvcmUoY3VycmVudE5vZGVPclRva2VuKTtcbiAgICBpZiAoY3VycmVudE5vZGVPclRva2VuID09IG51bGwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChjdXJyZW50Tm9kZU9yVG9rZW4pO1xuICB9XG4gIHJldHVybiByZXN1bHQucmV2ZXJzZSgpO1xufVxuXG5mdW5jdGlvbiB0YWtlVG9rZW5zQWZ0ZXJXaGlsZShzb3VyY2VDb2RlLCBub2RlLCBjb25kaXRpb24pIHtcbiAgY29uc3QgdG9rZW5zID0gZ2V0VG9rZW5zT3JDb21tZW50c0FmdGVyKHNvdXJjZUNvZGUsIG5vZGUsIDEwMCk7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChjb25kaXRpb24odG9rZW5zW2ldKSkge1xuICAgICAgcmVzdWx0LnB1c2godG9rZW5zW2ldKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gdGFrZVRva2Vuc0JlZm9yZVdoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbmRpdGlvbikge1xuICBjb25zdCB0b2tlbnMgPSBnZXRUb2tlbnNPckNvbW1lbnRzQmVmb3JlKHNvdXJjZUNvZGUsIG5vZGUsIDEwMCk7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICBmb3IgKGxldCBpID0gdG9rZW5zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKGNvbmRpdGlvbih0b2tlbnNbaV0pKSB7XG4gICAgICByZXN1bHQucHVzaCh0b2tlbnNbaV0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0LnJldmVyc2UoKTtcbn1cblxuZnVuY3Rpb24gZmluZE91dE9mT3JkZXIoaW1wb3J0ZWQpIHtcbiAgaWYgKGltcG9ydGVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBsZXQgbWF4U2VlblJhbmtOb2RlID0gaW1wb3J0ZWRbMF07XG4gIHJldHVybiBpbXBvcnRlZC5maWx0ZXIoZnVuY3Rpb24gKGltcG9ydGVkTW9kdWxlKSB7XG4gICAgY29uc3QgcmVzID0gaW1wb3J0ZWRNb2R1bGUucmFuayA8IG1heFNlZW5SYW5rTm9kZS5yYW5rO1xuICAgIGlmIChtYXhTZWVuUmFua05vZGUucmFuayA8IGltcG9ydGVkTW9kdWxlLnJhbmspIHtcbiAgICAgIG1heFNlZW5SYW5rTm9kZSA9IGltcG9ydGVkTW9kdWxlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZmluZFJvb3ROb2RlKG5vZGUpIHtcbiAgbGV0IHBhcmVudCA9IG5vZGU7XG4gIHdoaWxlIChwYXJlbnQucGFyZW50ICE9IG51bGwgJiYgcGFyZW50LnBhcmVudC5ib2R5ID09IG51bGwpIHtcbiAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50O1xuICB9XG4gIHJldHVybiBwYXJlbnQ7XG59XG5cbmZ1bmN0aW9uIGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgbm9kZSkge1xuICBjb25zdCB0b2tlbnNUb0VuZE9mTGluZSA9IHRha2VUb2tlbnNBZnRlcldoaWxlKHNvdXJjZUNvZGUsIG5vZGUsIGNvbW1lbnRPblNhbWVMaW5lQXMobm9kZSkpO1xuICBjb25zdCBlbmRPZlRva2VucyA9IHRva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCA+IDBcbiAgICA/IHRva2Vuc1RvRW5kT2ZMaW5lW3Rva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCAtIDFdLnJhbmdlWzFdXG4gICAgOiBub2RlLnJhbmdlWzFdO1xuICBsZXQgcmVzdWx0ID0gZW5kT2ZUb2tlbnM7XG4gIGZvciAobGV0IGkgPSBlbmRPZlRva2VuczsgaSA8IHNvdXJjZUNvZGUudGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzb3VyY2VDb2RlLnRleHRbaV0gPT09ICdcXG4nKSB7XG4gICAgICByZXN1bHQgPSBpICsgMTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoc291cmNlQ29kZS50ZXh0W2ldICE9PSAnICcgJiYgc291cmNlQ29kZS50ZXh0W2ldICE9PSAnXFx0JyAmJiBzb3VyY2VDb2RlLnRleHRbaV0gIT09ICdcXHInKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgcmVzdWx0ID0gaSArIDE7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gY29tbWVudE9uU2FtZUxpbmVBcyhub2RlKSB7XG4gIHJldHVybiB0b2tlbiA9PiAodG9rZW4udHlwZSA9PT0gJ0Jsb2NrJyB8fCAgdG9rZW4udHlwZSA9PT0gJ0xpbmUnKSAmJlxuICAgICAgdG9rZW4ubG9jLnN0YXJ0LmxpbmUgPT09IHRva2VuLmxvYy5lbmQubGluZSAmJlxuICAgICAgdG9rZW4ubG9jLmVuZC5saW5lID09PSBub2RlLmxvYy5lbmQubGluZTtcbn1cblxuZnVuY3Rpb24gZmluZFN0YXJ0T2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIG5vZGUpIHtcbiAgY29uc3QgdG9rZW5zVG9FbmRPZkxpbmUgPSB0YWtlVG9rZW5zQmVmb3JlV2hpbGUoc291cmNlQ29kZSwgbm9kZSwgY29tbWVudE9uU2FtZUxpbmVBcyhub2RlKSk7XG4gIGNvbnN0IHN0YXJ0T2ZUb2tlbnMgPSB0b2tlbnNUb0VuZE9mTGluZS5sZW5ndGggPiAwID8gdG9rZW5zVG9FbmRPZkxpbmVbMF0ucmFuZ2VbMF0gOiBub2RlLnJhbmdlWzBdO1xuICBsZXQgcmVzdWx0ID0gc3RhcnRPZlRva2VucztcbiAgZm9yIChsZXQgaSA9IHN0YXJ0T2ZUb2tlbnMgLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgaWYgKHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJyAnICYmIHNvdXJjZUNvZGUudGV4dFtpXSAhPT0gJ1xcdCcpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXN1bHQgPSBpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5SZXF1aXJlTW9kdWxlKG5vZGUpIHtcbiAgaWYgKG5vZGUudHlwZSAhPT0gJ1ZhcmlhYmxlRGVjbGFyYXRpb24nKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChub2RlLmRlY2xhcmF0aW9ucy5sZW5ndGggIT09IDEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgZGVjbCA9IG5vZGUuZGVjbGFyYXRpb25zWzBdO1xuICBjb25zdCByZXN1bHQgPSBkZWNsLmlkICYmXG4gICAgKGRlY2wuaWQudHlwZSA9PT0gJ0lkZW50aWZpZXInIHx8IGRlY2wuaWQudHlwZSA9PT0gJ09iamVjdFBhdHRlcm4nKSAmJlxuICAgIGRlY2wuaW5pdCAhPSBudWxsICYmXG4gICAgZGVjbC5pbml0LnR5cGUgPT09ICdDYWxsRXhwcmVzc2lvbicgJiZcbiAgICBkZWNsLmluaXQuY2FsbGVlICE9IG51bGwgJiZcbiAgICBkZWNsLmluaXQuY2FsbGVlLm5hbWUgPT09ICdyZXF1aXJlJyAmJlxuICAgIGRlY2wuaW5pdC5hcmd1bWVudHMgIT0gbnVsbCAmJlxuICAgIGRlY2wuaW5pdC5hcmd1bWVudHMubGVuZ3RoID09PSAxICYmXG4gICAgZGVjbC5pbml0LmFyZ3VtZW50c1swXS50eXBlID09PSAnTGl0ZXJhbCc7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5JbXBvcnRNb2R1bGUobm9kZSkge1xuICByZXR1cm4gbm9kZS50eXBlID09PSAnSW1wb3J0RGVjbGFyYXRpb24nICYmIG5vZGUuc3BlY2lmaWVycyAhPSBudWxsICYmIG5vZGUuc3BlY2lmaWVycy5sZW5ndGggPiAwO1xufVxuXG5mdW5jdGlvbiBpc1BsYWluSW1wb3J0RXF1YWxzKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUudHlwZSA9PT0gJ1RTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb24nICYmIG5vZGUubW9kdWxlUmVmZXJlbmNlLmV4cHJlc3Npb247XG59XG5cbmZ1bmN0aW9uIGNhbkNyb3NzTm9kZVdoaWxlUmVvcmRlcihub2RlKSB7XG4gIHJldHVybiBpc1BsYWluUmVxdWlyZU1vZHVsZShub2RlKSB8fCBpc1BsYWluSW1wb3J0TW9kdWxlKG5vZGUpIHx8IGlzUGxhaW5JbXBvcnRFcXVhbHMobm9kZSk7XG59XG5cbmZ1bmN0aW9uIGNhblJlb3JkZXJJdGVtcyhmaXJzdE5vZGUsIHNlY29uZE5vZGUpIHtcbiAgY29uc3QgcGFyZW50ID0gZmlyc3ROb2RlLnBhcmVudDtcbiAgY29uc3QgW2ZpcnN0SW5kZXgsIHNlY29uZEluZGV4XSA9IFtcbiAgICBwYXJlbnQuYm9keS5pbmRleE9mKGZpcnN0Tm9kZSksXG4gICAgcGFyZW50LmJvZHkuaW5kZXhPZihzZWNvbmROb2RlKSxcbiAgXS5zb3J0KCk7XG4gIGNvbnN0IG5vZGVzQmV0d2VlbiA9IHBhcmVudC5ib2R5LnNsaWNlKGZpcnN0SW5kZXgsIHNlY29uZEluZGV4ICsgMSk7XG4gIGZvciAoY29uc3Qgbm9kZUJldHdlZW4gb2Ygbm9kZXNCZXR3ZWVuKSB7XG4gICAgaWYgKCFjYW5Dcm9zc05vZGVXaGlsZVJlb3JkZXIobm9kZUJldHdlZW4pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBmaXhPdXRPZk9yZGVyKGNvbnRleHQsIGZpcnN0Tm9kZSwgc2Vjb25kTm9kZSwgb3JkZXIpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpO1xuXG4gIGNvbnN0IGZpcnN0Um9vdCA9IGZpbmRSb290Tm9kZShmaXJzdE5vZGUubm9kZSk7XG4gIGNvbnN0IGZpcnN0Um9vdFN0YXJ0ID0gZmluZFN0YXJ0T2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIGZpcnN0Um9vdCk7XG4gIGNvbnN0IGZpcnN0Um9vdEVuZCA9IGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgZmlyc3RSb290KTtcblxuICBjb25zdCBzZWNvbmRSb290ID0gZmluZFJvb3ROb2RlKHNlY29uZE5vZGUubm9kZSk7XG4gIGNvbnN0IHNlY29uZFJvb3RTdGFydCA9IGZpbmRTdGFydE9mTGluZVdpdGhDb21tZW50cyhzb3VyY2VDb2RlLCBzZWNvbmRSb290KTtcbiAgY29uc3Qgc2Vjb25kUm9vdEVuZCA9IGZpbmRFbmRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgc2Vjb25kUm9vdCk7XG4gIGNvbnN0IGNhbkZpeCA9IGNhblJlb3JkZXJJdGVtcyhmaXJzdFJvb3QsIHNlY29uZFJvb3QpO1xuXG4gIGxldCBuZXdDb2RlID0gc291cmNlQ29kZS50ZXh0LnN1YnN0cmluZyhzZWNvbmRSb290U3RhcnQsIHNlY29uZFJvb3RFbmQpO1xuICBpZiAobmV3Q29kZVtuZXdDb2RlLmxlbmd0aCAtIDFdICE9PSAnXFxuJykge1xuICAgIG5ld0NvZGUgPSBuZXdDb2RlICsgJ1xcbic7XG4gIH1cblxuICBjb25zdCBtZXNzYWdlID0gYFxcYCR7c2Vjb25kTm9kZS5kaXNwbGF5TmFtZX1cXGAgaW1wb3J0IHNob3VsZCBvY2N1ciAke29yZGVyfSBpbXBvcnQgb2YgXFxgJHtmaXJzdE5vZGUuZGlzcGxheU5hbWV9XFxgYDtcblxuICBpZiAob3JkZXIgPT09ICdiZWZvcmUnKSB7XG4gICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgbm9kZTogc2Vjb25kTm9kZS5ub2RlLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIGZpeDogY2FuRml4ICYmIChmaXhlciA9PlxuICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgICAgIFtmaXJzdFJvb3RTdGFydCwgc2Vjb25kUm9vdEVuZF0sXG4gICAgICAgICAgbmV3Q29kZSArIHNvdXJjZUNvZGUudGV4dC5zdWJzdHJpbmcoZmlyc3RSb290U3RhcnQsIHNlY29uZFJvb3RTdGFydClcbiAgICAgICAgKSksXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAob3JkZXIgPT09ICdhZnRlcicpIHtcbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBub2RlOiBzZWNvbmROb2RlLm5vZGUsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgZml4OiBjYW5GaXggJiYgKGZpeGVyID0+XG4gICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoXG4gICAgICAgICAgW3NlY29uZFJvb3RTdGFydCwgZmlyc3RSb290RW5kXSxcbiAgICAgICAgICBzb3VyY2VDb2RlLnRleHQuc3Vic3RyaW5nKHNlY29uZFJvb3RFbmQsIGZpcnN0Um9vdEVuZCkgKyBuZXdDb2RlXG4gICAgICAgICkpLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlcG9ydE91dE9mT3JkZXIoY29udGV4dCwgaW1wb3J0ZWQsIG91dE9mT3JkZXIsIG9yZGVyKSB7XG4gIG91dE9mT3JkZXIuZm9yRWFjaChmdW5jdGlvbiAoaW1wKSB7XG4gICAgY29uc3QgZm91bmQgPSBpbXBvcnRlZC5maW5kKGZ1bmN0aW9uIGhhc0hpZ2hlclJhbmsoaW1wb3J0ZWRJdGVtKSB7XG4gICAgICByZXR1cm4gaW1wb3J0ZWRJdGVtLnJhbmsgPiBpbXAucmFuaztcbiAgICB9KTtcbiAgICBmaXhPdXRPZk9yZGVyKGNvbnRleHQsIGZvdW5kLCBpbXAsIG9yZGVyKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1ha2VPdXRPZk9yZGVyUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkKSB7XG4gIGNvbnN0IG91dE9mT3JkZXIgPSBmaW5kT3V0T2ZPcmRlcihpbXBvcnRlZCk7XG4gIGlmICghb3V0T2ZPcmRlci5sZW5ndGgpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gVGhlcmUgYXJlIHRoaW5ncyB0byByZXBvcnQuIFRyeSB0byBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIHJlcG9ydGVkIGVycm9ycy5cbiAgY29uc3QgcmV2ZXJzZWRJbXBvcnRlZCA9IHJldmVyc2UoaW1wb3J0ZWQpO1xuICBjb25zdCByZXZlcnNlZE9yZGVyID0gZmluZE91dE9mT3JkZXIocmV2ZXJzZWRJbXBvcnRlZCk7XG4gIGlmIChyZXZlcnNlZE9yZGVyLmxlbmd0aCA8IG91dE9mT3JkZXIubGVuZ3RoKSB7XG4gICAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCByZXZlcnNlZEltcG9ydGVkLCByZXZlcnNlZE9yZGVyLCAnYWZ0ZXInKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcmVwb3J0T3V0T2ZPcmRlcihjb250ZXh0LCBpbXBvcnRlZCwgb3V0T2ZPcmRlciwgJ2JlZm9yZScpO1xufVxuXG5mdW5jdGlvbiBnZXRTb3J0ZXIoYXNjZW5kaW5nKSB7XG4gIGNvbnN0IG11bHRpcGxpZXIgPSBhc2NlbmRpbmcgPyAxIDogLTE7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGltcG9ydHNTb3J0ZXIoaW1wb3J0QSwgaW1wb3J0Qikge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICBpZiAoaW1wb3J0QSA8IGltcG9ydEIpIHtcbiAgICAgIHJlc3VsdCA9IC0xO1xuICAgIH0gZWxzZSBpZiAoaW1wb3J0QSA+IGltcG9ydEIpIHtcbiAgICAgIHJlc3VsdCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdCAqIG11bHRpcGxpZXI7XG4gIH07XG59XG5cbmZ1bmN0aW9uIG11dGF0ZVJhbmtzVG9BbHBoYWJldGl6ZShpbXBvcnRlZCwgYWxwaGFiZXRpemVPcHRpb25zKSB7XG4gIGNvbnN0IGdyb3VwZWRCeVJhbmtzID0gaW1wb3J0ZWQucmVkdWNlKGZ1bmN0aW9uKGFjYywgaW1wb3J0ZWRJdGVtKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFjY1tpbXBvcnRlZEl0ZW0ucmFua10pKSB7XG4gICAgICBhY2NbaW1wb3J0ZWRJdGVtLnJhbmtdID0gW107XG4gICAgfVxuICAgIGFjY1tpbXBvcnRlZEl0ZW0ucmFua10ucHVzaChpbXBvcnRlZEl0ZW0pO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcblxuICBjb25zdCBncm91cFJhbmtzID0gT2JqZWN0LmtleXMoZ3JvdXBlZEJ5UmFua3MpO1xuXG4gIGNvbnN0IHNvcnRlckZuID0gZ2V0U29ydGVyKGFscGhhYmV0aXplT3B0aW9ucy5vcmRlciA9PT0gJ2FzYycpO1xuICBjb25zdCBjb21wYXJhdG9yID0gYWxwaGFiZXRpemVPcHRpb25zLmNhc2VJbnNlbnNpdGl2ZVxuICAgID8gKGEsIGIpID0+IHNvcnRlckZuKFN0cmluZyhhLnZhbHVlKS50b0xvd2VyQ2FzZSgpLCBTdHJpbmcoYi52YWx1ZSkudG9Mb3dlckNhc2UoKSlcbiAgICA6IChhLCBiKSA9PiBzb3J0ZXJGbihhLnZhbHVlLCBiLnZhbHVlKTtcblxuICAvLyBzb3J0IGltcG9ydHMgbG9jYWxseSB3aXRoaW4gdGhlaXIgZ3JvdXBcbiAgZ3JvdXBSYW5rcy5mb3JFYWNoKGZ1bmN0aW9uKGdyb3VwUmFuaykge1xuICAgIGdyb3VwZWRCeVJhbmtzW2dyb3VwUmFua10uc29ydChjb21wYXJhdG9yKTtcbiAgfSk7XG5cbiAgLy8gYXNzaWduIGdsb2JhbGx5IHVuaXF1ZSByYW5rIHRvIGVhY2ggaW1wb3J0XG4gIGxldCBuZXdSYW5rID0gMDtcbiAgY29uc3QgYWxwaGFiZXRpemVkUmFua3MgPSBncm91cFJhbmtzLnNvcnQoKS5yZWR1Y2UoZnVuY3Rpb24oYWNjLCBncm91cFJhbmspIHtcbiAgICBncm91cGVkQnlSYW5rc1tncm91cFJhbmtdLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZWRJdGVtKSB7XG4gICAgICBhY2NbYCR7aW1wb3J0ZWRJdGVtLnZhbHVlfXwke2ltcG9ydGVkSXRlbS5ub2RlLmltcG9ydEtpbmR9YF0gPSBwYXJzZUludChncm91cFJhbmssIDEwKSArIG5ld1Jhbms7XG4gICAgICBuZXdSYW5rICs9IDE7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuXG4gIC8vIG11dGF0ZSB0aGUgb3JpZ2luYWwgZ3JvdXAtcmFuayB3aXRoIGFscGhhYmV0aXplZC1yYW5rXG4gIGltcG9ydGVkLmZvckVhY2goZnVuY3Rpb24oaW1wb3J0ZWRJdGVtKSB7XG4gICAgaW1wb3J0ZWRJdGVtLnJhbmsgPSBhbHBoYWJldGl6ZWRSYW5rc1tgJHtpbXBvcnRlZEl0ZW0udmFsdWV9fCR7aW1wb3J0ZWRJdGVtLm5vZGUuaW1wb3J0S2luZH1gXTtcbiAgfSk7XG59XG5cbi8vIERFVEVDVElOR1xuXG5mdW5jdGlvbiBjb21wdXRlUGF0aFJhbmsocmFua3MsIHBhdGhHcm91cHMsIHBhdGgsIG1heFBvc2l0aW9uKSB7XG4gIGZvciAobGV0IGkgPSAwLCBsID0gcGF0aEdyb3Vwcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCB7IHBhdHRlcm4sIHBhdHRlcm5PcHRpb25zLCBncm91cCwgcG9zaXRpb24gPSAxIH0gPSBwYXRoR3JvdXBzW2ldO1xuICAgIGlmIChtaW5pbWF0Y2gocGF0aCwgcGF0dGVybiwgcGF0dGVybk9wdGlvbnMgfHwgeyBub2NvbW1lbnQ6IHRydWUgfSkpIHtcbiAgICAgIHJldHVybiByYW5rc1tncm91cF0gKyAocG9zaXRpb24gLyBtYXhQb3NpdGlvbik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVSYW5rKGNvbnRleHQsIHJhbmtzLCBpbXBvcnRFbnRyeSwgZXhjbHVkZWRJbXBvcnRUeXBlcykge1xuICBsZXQgaW1wVHlwZTtcbiAgbGV0IHJhbms7XG4gIGlmIChpbXBvcnRFbnRyeS50eXBlID09PSAnaW1wb3J0Om9iamVjdCcpIHtcbiAgICBpbXBUeXBlID0gJ29iamVjdCc7XG4gIH0gZWxzZSBpZiAoaW1wb3J0RW50cnkubm9kZS5pbXBvcnRLaW5kID09PSAndHlwZScgJiYgcmFua3Mub21pdHRlZFR5cGVzLmluZGV4T2YoJ3R5cGUnKSA9PT0gLTEpIHtcbiAgICBpbXBUeXBlID0gJ3R5cGUnO1xuICB9IGVsc2Uge1xuICAgIGltcFR5cGUgPSBpbXBvcnRUeXBlKGltcG9ydEVudHJ5LnZhbHVlLCBjb250ZXh0KTtcbiAgfVxuICBpZiAoIWV4Y2x1ZGVkSW1wb3J0VHlwZXMuaGFzKGltcFR5cGUpKSB7XG4gICAgcmFuayA9IGNvbXB1dGVQYXRoUmFuayhyYW5rcy5ncm91cHMsIHJhbmtzLnBhdGhHcm91cHMsIGltcG9ydEVudHJ5LnZhbHVlLCByYW5rcy5tYXhQb3NpdGlvbik7XG4gIH1cbiAgaWYgKHR5cGVvZiByYW5rID09PSAndW5kZWZpbmVkJykge1xuICAgIHJhbmsgPSByYW5rcy5ncm91cHNbaW1wVHlwZV07XG4gIH1cbiAgaWYgKGltcG9ydEVudHJ5LnR5cGUgIT09ICdpbXBvcnQnICYmICFpbXBvcnRFbnRyeS50eXBlLnN0YXJ0c1dpdGgoJ2ltcG9ydDonKSkge1xuICAgIHJhbmsgKz0gMTAwO1xuICB9XG5cbiAgcmV0dXJuIHJhbms7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyTm9kZShjb250ZXh0LCBpbXBvcnRFbnRyeSwgcmFua3MsIGltcG9ydGVkLCBleGNsdWRlZEltcG9ydFR5cGVzKSB7XG4gIGNvbnN0IHJhbmsgPSBjb21wdXRlUmFuayhjb250ZXh0LCByYW5rcywgaW1wb3J0RW50cnksIGV4Y2x1ZGVkSW1wb3J0VHlwZXMpO1xuICBpZiAocmFuayAhPT0gLTEpIHtcbiAgICBpbXBvcnRlZC5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGltcG9ydEVudHJ5LCB7IHJhbmsgfSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzTW9kdWxlTGV2ZWxSZXF1aXJlKG5vZGUpIHtcbiAgbGV0IG4gPSBub2RlO1xuICAvLyBIYW5kbGUgY2FzZXMgbGlrZSBgY29uc3QgYmF6ID0gcmVxdWlyZSgnZm9vJykuYmFyLmJhemBcbiAgLy8gYW5kIGBjb25zdCBmb28gPSByZXF1aXJlKCdmb28nKSgpYFxuICB3aGlsZSAoXG4gICAgKG4ucGFyZW50LnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJyAmJiBuLnBhcmVudC5vYmplY3QgPT09IG4pIHx8XG4gICAgKG4ucGFyZW50LnR5cGUgPT09ICdDYWxsRXhwcmVzc2lvbicgJiYgbi5wYXJlbnQuY2FsbGVlID09PSBuKVxuICApIHtcbiAgICBuID0gbi5wYXJlbnQ7XG4gIH1cbiAgcmV0dXJuIChcbiAgICBuLnBhcmVudC50eXBlID09PSAnVmFyaWFibGVEZWNsYXJhdG9yJyAmJlxuICAgIG4ucGFyZW50LnBhcmVudC50eXBlID09PSAnVmFyaWFibGVEZWNsYXJhdGlvbicgJiZcbiAgICBuLnBhcmVudC5wYXJlbnQucGFyZW50LnR5cGUgPT09ICdQcm9ncmFtJ1xuICApO1xufVxuXG5jb25zdCB0eXBlcyA9IFsnYnVpbHRpbicsICdleHRlcm5hbCcsICdpbnRlcm5hbCcsICd1bmtub3duJywgJ3BhcmVudCcsICdzaWJsaW5nJywgJ2luZGV4JywgJ29iamVjdCcsICd0eXBlJ107XG5cbi8vIENyZWF0ZXMgYW4gb2JqZWN0IHdpdGggdHlwZS1yYW5rIHBhaXJzLlxuLy8gRXhhbXBsZTogeyBpbmRleDogMCwgc2libGluZzogMSwgcGFyZW50OiAxLCBleHRlcm5hbDogMSwgYnVpbHRpbjogMiwgaW50ZXJuYWw6IDIgfVxuLy8gV2lsbCB0aHJvdyBhbiBlcnJvciBpZiBpdCBjb250YWlucyBhIHR5cGUgdGhhdCBkb2VzIG5vdCBleGlzdCwgb3IgaGFzIGEgZHVwbGljYXRlXG5mdW5jdGlvbiBjb252ZXJ0R3JvdXBzVG9SYW5rcyhncm91cHMpIHtcbiAgY29uc3QgcmFua09iamVjdCA9IGdyb3Vwcy5yZWR1Y2UoZnVuY3Rpb24ocmVzLCBncm91cCwgaW5kZXgpIHtcbiAgICBpZiAodHlwZW9mIGdyb3VwID09PSAnc3RyaW5nJykge1xuICAgICAgZ3JvdXAgPSBbZ3JvdXBdO1xuICAgIH1cbiAgICBncm91cC5mb3JFYWNoKGZ1bmN0aW9uKGdyb3VwSXRlbSkge1xuICAgICAgaWYgKHR5cGVzLmluZGV4T2YoZ3JvdXBJdGVtKSA9PT0gLTEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgY29uZmlndXJhdGlvbiBvZiB0aGUgcnVsZTogVW5rbm93biB0eXBlIGAnICtcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShncm91cEl0ZW0pICsgJ2AnKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXNbZ3JvdXBJdGVtXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHJ1bGU6IGAnICsgZ3JvdXBJdGVtICsgJ2AgaXMgZHVwbGljYXRlZCcpO1xuICAgICAgfVxuICAgICAgcmVzW2dyb3VwSXRlbV0gPSBpbmRleDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzO1xuICB9LCB7fSk7XG5cbiAgY29uc3Qgb21pdHRlZFR5cGVzID0gdHlwZXMuZmlsdGVyKGZ1bmN0aW9uKHR5cGUpIHtcbiAgICByZXR1cm4gcmFua09iamVjdFt0eXBlXSA9PT0gdW5kZWZpbmVkO1xuICB9KTtcblxuICBjb25zdCByYW5rcyA9IG9taXR0ZWRUeXBlcy5yZWR1Y2UoZnVuY3Rpb24ocmVzLCB0eXBlKSB7XG4gICAgcmVzW3R5cGVdID0gZ3JvdXBzLmxlbmd0aDtcbiAgICByZXR1cm4gcmVzO1xuICB9LCByYW5rT2JqZWN0KTtcblxuICByZXR1cm4geyBncm91cHM6IHJhbmtzLCBvbWl0dGVkVHlwZXMgfTtcbn1cblxuZnVuY3Rpb24gY29udmVydFBhdGhHcm91cHNGb3JSYW5rcyhwYXRoR3JvdXBzKSB7XG4gIGNvbnN0IGFmdGVyID0ge307XG4gIGNvbnN0IGJlZm9yZSA9IHt9O1xuXG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcGF0aEdyb3Vwcy5tYXAoKHBhdGhHcm91cCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB7IGdyb3VwLCBwb3NpdGlvbjogcG9zaXRpb25TdHJpbmcgfSA9IHBhdGhHcm91cDtcbiAgICBsZXQgcG9zaXRpb24gPSAwO1xuICAgIGlmIChwb3NpdGlvblN0cmluZyA9PT0gJ2FmdGVyJykge1xuICAgICAgaWYgKCFhZnRlcltncm91cF0pIHtcbiAgICAgICAgYWZ0ZXJbZ3JvdXBdID0gMTtcbiAgICAgIH1cbiAgICAgIHBvc2l0aW9uID0gYWZ0ZXJbZ3JvdXBdKys7XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvblN0cmluZyA9PT0gJ2JlZm9yZScpIHtcbiAgICAgIGlmICghYmVmb3JlW2dyb3VwXSkge1xuICAgICAgICBiZWZvcmVbZ3JvdXBdID0gW107XG4gICAgICB9XG4gICAgICBiZWZvcmVbZ3JvdXBdLnB1c2goaW5kZXgpO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBwYXRoR3JvdXAsIHsgcG9zaXRpb24gfSk7XG4gIH0pO1xuXG4gIGxldCBtYXhQb3NpdGlvbiA9IDE7XG5cbiAgT2JqZWN0LmtleXMoYmVmb3JlKS5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgIGNvbnN0IGdyb3VwTGVuZ3RoID0gYmVmb3JlW2dyb3VwXS5sZW5ndGg7XG4gICAgYmVmb3JlW2dyb3VwXS5mb3JFYWNoKChncm91cEluZGV4LCBpbmRleCkgPT4ge1xuICAgICAgdHJhbnNmb3JtZWRbZ3JvdXBJbmRleF0ucG9zaXRpb24gPSAtMSAqIChncm91cExlbmd0aCAtIGluZGV4KTtcbiAgICB9KTtcbiAgICBtYXhQb3NpdGlvbiA9IE1hdGgubWF4KG1heFBvc2l0aW9uLCBncm91cExlbmd0aCk7XG4gIH0pO1xuXG4gIE9iamVjdC5rZXlzKGFmdGVyKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCBncm91cE5leHRQb3NpdGlvbiA9IGFmdGVyW2tleV07XG4gICAgbWF4UG9zaXRpb24gPSBNYXRoLm1heChtYXhQb3NpdGlvbiwgZ3JvdXBOZXh0UG9zaXRpb24gLSAxKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBwYXRoR3JvdXBzOiB0cmFuc2Zvcm1lZCxcbiAgICBtYXhQb3NpdGlvbjogbWF4UG9zaXRpb24gPiAxMCA/IE1hdGgucG93KDEwLCBNYXRoLmNlaWwoTWF0aC5sb2cxMChtYXhQb3NpdGlvbikpKSA6IDEwLFxuICB9O1xufVxuXG5mdW5jdGlvbiBmaXhOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgcHJldmlvdXNJbXBvcnQpIHtcbiAgY29uc3QgcHJldlJvb3QgPSBmaW5kUm9vdE5vZGUocHJldmlvdXNJbXBvcnQubm9kZSk7XG4gIGNvbnN0IHRva2Vuc1RvRW5kT2ZMaW5lID0gdGFrZVRva2Vuc0FmdGVyV2hpbGUoXG4gICAgY29udGV4dC5nZXRTb3VyY2VDb2RlKCksIHByZXZSb290LCBjb21tZW50T25TYW1lTGluZUFzKHByZXZSb290KSk7XG5cbiAgbGV0IGVuZE9mTGluZSA9IHByZXZSb290LnJhbmdlWzFdO1xuICBpZiAodG9rZW5zVG9FbmRPZkxpbmUubGVuZ3RoID4gMCkge1xuICAgIGVuZE9mTGluZSA9IHRva2Vuc1RvRW5kT2ZMaW5lW3Rva2Vuc1RvRW5kT2ZMaW5lLmxlbmd0aCAtIDFdLnJhbmdlWzFdO1xuICB9XG4gIHJldHVybiAoZml4ZXIpID0+IGZpeGVyLmluc2VydFRleHRBZnRlclJhbmdlKFtwcmV2Um9vdC5yYW5nZVswXSwgZW5kT2ZMaW5lXSwgJ1xcbicpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVOZXdMaW5lQWZ0ZXJJbXBvcnQoY29udGV4dCwgY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpIHtcbiAgY29uc3Qgc291cmNlQ29kZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpO1xuICBjb25zdCBwcmV2Um9vdCA9IGZpbmRSb290Tm9kZShwcmV2aW91c0ltcG9ydC5ub2RlKTtcbiAgY29uc3QgY3VyclJvb3QgPSBmaW5kUm9vdE5vZGUoY3VycmVudEltcG9ydC5ub2RlKTtcbiAgY29uc3QgcmFuZ2VUb1JlbW92ZSA9IFtcbiAgICBmaW5kRW5kT2ZMaW5lV2l0aENvbW1lbnRzKHNvdXJjZUNvZGUsIHByZXZSb290KSxcbiAgICBmaW5kU3RhcnRPZkxpbmVXaXRoQ29tbWVudHMoc291cmNlQ29kZSwgY3VyclJvb3QpLFxuICBdO1xuICBpZiAoL15cXHMqJC8udGVzdChzb3VyY2VDb2RlLnRleHQuc3Vic3RyaW5nKHJhbmdlVG9SZW1vdmVbMF0sIHJhbmdlVG9SZW1vdmVbMV0pKSkge1xuICAgIHJldHVybiAoZml4ZXIpID0+IGZpeGVyLnJlbW92ZVJhbmdlKHJhbmdlVG9SZW1vdmUpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1ha2VOZXdsaW5lc0JldHdlZW5SZXBvcnQgKGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKSB7XG4gIGNvbnN0IGdldE51bWJlck9mRW1wdHlMaW5lc0JldHdlZW4gPSAoY3VycmVudEltcG9ydCwgcHJldmlvdXNJbXBvcnQpID0+IHtcbiAgICBjb25zdCBsaW5lc0JldHdlZW5JbXBvcnRzID0gY29udGV4dC5nZXRTb3VyY2VDb2RlKCkubGluZXMuc2xpY2UoXG4gICAgICBwcmV2aW91c0ltcG9ydC5ub2RlLmxvYy5lbmQubGluZSxcbiAgICAgIGN1cnJlbnRJbXBvcnQubm9kZS5sb2Muc3RhcnQubGluZSAtIDFcbiAgICApO1xuXG4gICAgcmV0dXJuIGxpbmVzQmV0d2VlbkltcG9ydHMuZmlsdGVyKChsaW5lKSA9PiAhbGluZS50cmltKCkubGVuZ3RoKS5sZW5ndGg7XG4gIH07XG4gIGxldCBwcmV2aW91c0ltcG9ydCA9IGltcG9ydGVkWzBdO1xuXG4gIGltcG9ydGVkLnNsaWNlKDEpLmZvckVhY2goZnVuY3Rpb24oY3VycmVudEltcG9ydCkge1xuICAgIGNvbnN0IGVtcHR5TGluZXNCZXR3ZWVuID0gZ2V0TnVtYmVyT2ZFbXB0eUxpbmVzQmV0d2VlbihjdXJyZW50SW1wb3J0LCBwcmV2aW91c0ltcG9ydCk7XG5cbiAgICBpZiAobmV3bGluZXNCZXR3ZWVuSW1wb3J0cyA9PT0gJ2Fsd2F5cydcbiAgICAgICAgfHwgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cyA9PT0gJ2Fsd2F5cy1hbmQtaW5zaWRlLWdyb3VwcycpIHtcbiAgICAgIGlmIChjdXJyZW50SW1wb3J0LnJhbmsgIT09IHByZXZpb3VzSW1wb3J0LnJhbmsgJiYgZW1wdHlMaW5lc0JldHdlZW4gPT09IDApIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHByZXZpb3VzSW1wb3J0Lm5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1RoZXJlIHNob3VsZCBiZSBhdCBsZWFzdCBvbmUgZW1wdHkgbGluZSBiZXR3ZWVuIGltcG9ydCBncm91cHMnLFxuICAgICAgICAgIGZpeDogZml4TmV3TGluZUFmdGVySW1wb3J0KGNvbnRleHQsIHByZXZpb3VzSW1wb3J0KSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbXBvcnQucmFuayA9PT0gcHJldmlvdXNJbXBvcnQucmFua1xuICAgICAgICAmJiBlbXB0eUxpbmVzQmV0d2VlbiA+IDBcbiAgICAgICAgJiYgbmV3bGluZXNCZXR3ZWVuSW1wb3J0cyAhPT0gJ2Fsd2F5cy1hbmQtaW5zaWRlLWdyb3VwcycpIHtcbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIG5vZGU6IHByZXZpb3VzSW1wb3J0Lm5vZGUsXG4gICAgICAgICAgbWVzc2FnZTogJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIHdpdGhpbiBpbXBvcnQgZ3JvdXAnLFxuICAgICAgICAgIGZpeDogcmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0KGNvbnRleHQsIGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbXB0eUxpbmVzQmV0d2VlbiA+IDApIHtcbiAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgbm9kZTogcHJldmlvdXNJbXBvcnQubm9kZSxcbiAgICAgICAgbWVzc2FnZTogJ1RoZXJlIHNob3VsZCBiZSBubyBlbXB0eSBsaW5lIGJldHdlZW4gaW1wb3J0IGdyb3VwcycsXG4gICAgICAgIGZpeDogcmVtb3ZlTmV3TGluZUFmdGVySW1wb3J0KGNvbnRleHQsIGN1cnJlbnRJbXBvcnQsIHByZXZpb3VzSW1wb3J0KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHByZXZpb3VzSW1wb3J0ID0gY3VycmVudEltcG9ydDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldEFscGhhYmV0aXplQ29uZmlnKG9wdGlvbnMpIHtcbiAgY29uc3QgYWxwaGFiZXRpemUgPSBvcHRpb25zLmFscGhhYmV0aXplIHx8IHt9O1xuICBjb25zdCBvcmRlciA9IGFscGhhYmV0aXplLm9yZGVyIHx8ICdpZ25vcmUnO1xuICBjb25zdCBjYXNlSW5zZW5zaXRpdmUgPSBhbHBoYWJldGl6ZS5jYXNlSW5zZW5zaXRpdmUgfHwgZmFsc2U7XG5cbiAgcmV0dXJuIHsgb3JkZXIsIGNhc2VJbnNlbnNpdGl2ZSB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ29yZGVyJyksXG4gICAgfSxcblxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBncm91cHM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXRoR3JvdXBzRXhjbHVkZWRJbXBvcnRUeXBlczoge1xuICAgICAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhdGhHcm91cHM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcGF0dGVybk9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ3JvdXA6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgZW51bTogdHlwZXMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICBlbnVtOiBbJ2FmdGVyJywgJ2JlZm9yZSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiBbJ3BhdHRlcm4nLCAnZ3JvdXAnXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnbmV3bGluZXMtYmV0d2Vlbic6IHtcbiAgICAgICAgICAgIGVudW06IFtcbiAgICAgICAgICAgICAgJ2lnbm9yZScsXG4gICAgICAgICAgICAgICdhbHdheXMnLFxuICAgICAgICAgICAgICAnYWx3YXlzLWFuZC1pbnNpZGUtZ3JvdXBzJyxcbiAgICAgICAgICAgICAgJ25ldmVyJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhbHBoYWJldGl6ZToge1xuICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGNhc2VJbnNlbnNpdGl2ZToge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgb3JkZXI6IHtcbiAgICAgICAgICAgICAgICBlbnVtOiBbJ2lnbm9yZScsICdhc2MnLCAnZGVzYyddLFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICdpZ25vcmUnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdhcm5PblVuYXNzaWduZWRJbXBvcnRzOiB7XG4gICAgICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiBpbXBvcnRPcmRlclJ1bGUgKGNvbnRleHQpIHtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5vcHRpb25zWzBdIHx8IHt9O1xuICAgIGNvbnN0IG5ld2xpbmVzQmV0d2VlbkltcG9ydHMgPSBvcHRpb25zWyduZXdsaW5lcy1iZXR3ZWVuJ10gfHwgJ2lnbm9yZSc7XG4gICAgY29uc3QgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXMgPSBuZXcgU2V0KG9wdGlvbnNbJ3BhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzJ10gfHwgWydidWlsdGluJywgJ2V4dGVybmFsJywgJ29iamVjdCddKTtcbiAgICBjb25zdCBhbHBoYWJldGl6ZSA9IGdldEFscGhhYmV0aXplQ29uZmlnKG9wdGlvbnMpO1xuICAgIGxldCByYW5rcztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHBhdGhHcm91cHMsIG1heFBvc2l0aW9uIH0gPSBjb252ZXJ0UGF0aEdyb3Vwc0ZvclJhbmtzKG9wdGlvbnMucGF0aEdyb3VwcyB8fCBbXSk7XG4gICAgICBjb25zdCB7IGdyb3Vwcywgb21pdHRlZFR5cGVzIH0gPSBjb252ZXJ0R3JvdXBzVG9SYW5rcyhvcHRpb25zLmdyb3VwcyB8fCBkZWZhdWx0R3JvdXBzKTtcbiAgICAgIHJhbmtzID0ge1xuICAgICAgICBncm91cHMsXG4gICAgICAgIG9taXR0ZWRUeXBlcyxcbiAgICAgICAgcGF0aEdyb3VwcyxcbiAgICAgICAgbWF4UG9zaXRpb24sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBNYWxmb3JtZWQgY29uZmlndXJhdGlvblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUHJvZ3JhbTogZnVuY3Rpb24obm9kZSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KG5vZGUsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGltcG9ydGVkID0gW107XG5cbiAgICByZXR1cm4ge1xuICAgICAgSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgICAvLyBJZ25vcmluZyB1bmFzc2lnbmVkIGltcG9ydHMgdW5sZXNzIHdhcm5PblVuYXNzaWduZWRJbXBvcnRzIGlzIHNldFxuICAgICAgICBpZiAobm9kZS5zcGVjaWZpZXJzLmxlbmd0aCB8fCBvcHRpb25zLndhcm5PblVuYXNzaWduZWRJbXBvcnRzKSB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuc291cmNlLnZhbHVlO1xuICAgICAgICAgIHJlZ2lzdGVyTm9kZShcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogJ2ltcG9ydCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmFua3MsXG4gICAgICAgICAgICBpbXBvcnRlZCxcbiAgICAgICAgICAgIHBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFRTSW1wb3J0RXF1YWxzRGVjbGFyYXRpb246IGZ1bmN0aW9uIGhhbmRsZUltcG9ydHMobm9kZSkge1xuICAgICAgICBsZXQgZGlzcGxheU5hbWU7XG4gICAgICAgIGxldCB2YWx1ZTtcbiAgICAgICAgbGV0IHR5cGU7XG4gICAgICAgIC8vIHNraXAgXCJleHBvcnQgaW1wb3J0XCJzXG4gICAgICAgIGlmIChub2RlLmlzRXhwb3J0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChub2RlLm1vZHVsZVJlZmVyZW5jZS50eXBlID09PSAnVFNFeHRlcm5hbE1vZHVsZVJlZmVyZW5jZScpIHtcbiAgICAgICAgICB2YWx1ZSA9IG5vZGUubW9kdWxlUmVmZXJlbmNlLmV4cHJlc3Npb24udmFsdWU7XG4gICAgICAgICAgZGlzcGxheU5hbWUgPSB2YWx1ZTtcbiAgICAgICAgICB0eXBlID0gJ2ltcG9ydCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgICBkaXNwbGF5TmFtZSA9IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLmdldFRleHQobm9kZS5tb2R1bGVSZWZlcmVuY2UpO1xuICAgICAgICAgIHR5cGUgPSAnaW1wb3J0Om9iamVjdCc7XG4gICAgICAgIH1cbiAgICAgICAgcmVnaXN0ZXJOb2RlKFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgZGlzcGxheU5hbWUsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmFua3MsXG4gICAgICAgICAgaW1wb3J0ZWQsXG4gICAgICAgICAgcGF0aEdyb3Vwc0V4Y2x1ZGVkSW1wb3J0VHlwZXNcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gaGFuZGxlUmVxdWlyZXMobm9kZSkge1xuICAgICAgICBpZiAoIWlzU3RhdGljUmVxdWlyZShub2RlKSB8fCAhaXNNb2R1bGVMZXZlbFJlcXVpcmUobm9kZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZSA9IG5vZGUuYXJndW1lbnRzWzBdLnZhbHVlO1xuICAgICAgICByZWdpc3Rlck5vZGUoXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogbmFtZSxcbiAgICAgICAgICAgIHR5cGU6ICdyZXF1aXJlJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJhbmtzLFxuICAgICAgICAgIGltcG9ydGVkLFxuICAgICAgICAgIHBhdGhHcm91cHNFeGNsdWRlZEltcG9ydFR5cGVzXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uIHJlcG9ydEFuZFJlc2V0KCkge1xuICAgICAgICBpZiAobmV3bGluZXNCZXR3ZWVuSW1wb3J0cyAhPT0gJ2lnbm9yZScpIHtcbiAgICAgICAgICBtYWtlTmV3bGluZXNCZXR3ZWVuUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkLCBuZXdsaW5lc0JldHdlZW5JbXBvcnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhbHBoYWJldGl6ZS5vcmRlciAhPT0gJ2lnbm9yZScpIHtcbiAgICAgICAgICBtdXRhdGVSYW5rc1RvQWxwaGFiZXRpemUoaW1wb3J0ZWQsIGFscGhhYmV0aXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ha2VPdXRPZk9yZGVyUmVwb3J0KGNvbnRleHQsIGltcG9ydGVkKTtcblxuICAgICAgICBpbXBvcnRlZCA9IFtdO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js b/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js index da0c31ee26..f6a1066d22 100644 --- a/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js +++ b/node_modules/eslint-plugin-import/lib/rules/prefer-default-export.js @@ -19,13 +19,13 @@ module.exports = { let namedExportNode = null; function captureDeclaration(identifierOrPattern) { - if (identifierOrPattern.type === 'ObjectPattern') { + if (identifierOrPattern && identifierOrPattern.type === 'ObjectPattern') { // recursively capture identifierOrPattern.properties. forEach(function (property) { captureDeclaration(property.value); }); - } else if (identifierOrPattern.type === 'ArrayPattern') { + } else if (identifierOrPattern && identifierOrPattern.type === 'ArrayPattern') { identifierOrPattern.elements. forEach(captureDeclaration); } else { @@ -93,4 +93,4 @@ module.exports = { } }; } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9wcmVmZXItZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJzcGVjaWZpZXJFeHBvcnRDb3VudCIsImhhc0RlZmF1bHRFeHBvcnQiLCJoYXNTdGFyRXhwb3J0IiwiaGFzVHlwZUV4cG9ydCIsIm5hbWVkRXhwb3J0Tm9kZSIsImNhcHR1cmVEZWNsYXJhdGlvbiIsImlkZW50aWZpZXJPclBhdHRlcm4iLCJwcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3BlcnR5IiwidmFsdWUiLCJlbGVtZW50cyIsIm5vZGUiLCJleHBvcnRlZCIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImRlY2xhcmF0aW9ucyIsImlkIiwicmVwb3J0Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsdUJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBU0MsT0FBVCxFQUFrQjtBQUN4QixRQUFJQyx1QkFBdUIsQ0FBM0I7QUFDQSxRQUFJQyxtQkFBbUIsS0FBdkI7QUFDQSxRQUFJQyxnQkFBZ0IsS0FBcEI7QUFDQSxRQUFJQyxnQkFBZ0IsS0FBcEI7QUFDQSxRQUFJQyxrQkFBa0IsSUFBdEI7O0FBRUEsYUFBU0Msa0JBQVQsQ0FBNEJDLG1CQUE1QixFQUFpRDtBQUMvQyxVQUFJQSxvQkFBb0JaLElBQXBCLEtBQTZCLGVBQWpDLEVBQWtEO0FBQ2hEO0FBQ0FZLDRCQUFvQkMsVUFBcEI7QUFDR0MsZUFESCxDQUNXLFVBQVNDLFFBQVQsRUFBbUI7QUFDMUJKLDZCQUFtQkksU0FBU0MsS0FBNUI7QUFDRCxTQUhIO0FBSUQsT0FORCxNQU1PLElBQUlKLG9CQUFvQlosSUFBcEIsS0FBNkIsY0FBakMsRUFBaUQ7QUFDdERZLDRCQUFvQkssUUFBcEI7QUFDR0gsZUFESCxDQUNXSCxrQkFEWDtBQUVELE9BSE0sTUFHQztBQUNSO0FBQ0VMO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPO0FBQ0wsZ0NBQTBCLFlBQVc7QUFDbkNDLDJCQUFtQixJQUFuQjtBQUNELE9BSEk7O0FBS0wseUJBQW1CLFVBQVNXLElBQVQsRUFBZTtBQUNoQyxZQUFJQSxLQUFLQyxRQUFMLENBQWNDLElBQWQsS0FBdUIsU0FBM0IsRUFBc0M7QUFDcENiLDZCQUFtQixJQUFuQjtBQUNELFNBRkQsTUFFTztBQUNMRDtBQUNBSSw0QkFBa0JRLElBQWxCO0FBQ0Q7QUFDRixPQVpJOztBQWNMLGdDQUEwQixVQUFTQSxJQUFULEVBQWU7QUFDdkM7QUFDQSxZQUFJLENBQUNBLEtBQUtHLFdBQVYsRUFBdUIsT0FGZ0I7O0FBSS9CckIsWUFKK0IsR0FJdEJrQixLQUFLRyxXQUppQixDQUkvQnJCLElBSitCOztBQU12QztBQUNFQSxpQkFBUyx3QkFBVDtBQUNBQSxpQkFBUyxXQURUO0FBRUFBLGlCQUFTLHdCQUZUO0FBR0FBLGlCQUFTLHNCQUpYO0FBS0U7QUFDQU07QUFDQUcsMEJBQWdCLElBQWhCO0FBQ0E7QUFDRDs7QUFFRCxZQUFJUyxLQUFLRyxXQUFMLENBQWlCQyxZQUFyQixFQUFtQztBQUNqQ0osZUFBS0csV0FBTCxDQUFpQkMsWUFBakIsQ0FBOEJSLE9BQTlCLENBQXNDLFVBQVNPLFdBQVQsRUFBc0I7QUFDMURWLCtCQUFtQlUsWUFBWUUsRUFBL0I7QUFDRCxXQUZEO0FBR0QsU0FKRDtBQUtLO0FBQ0g7QUFDQWpCO0FBQ0Q7O0FBRURJLDBCQUFrQlEsSUFBbEI7QUFDRCxPQTFDSTs7QUE0Q0wsa0NBQTRCLFlBQVc7QUFDckNYLDJCQUFtQixJQUFuQjtBQUNELE9BOUNJOztBQWdETCw4QkFBd0IsWUFBVztBQUNqQ0Msd0JBQWdCLElBQWhCO0FBQ0QsT0FsREk7O0FBb0RMLHNCQUFnQixZQUFXO0FBQ3pCLFlBQUlGLHlCQUF5QixDQUF6QixJQUE4QixDQUFDQyxnQkFBL0IsSUFBbUQsQ0FBQ0MsYUFBcEQsSUFBcUUsQ0FBQ0MsYUFBMUUsRUFBeUY7QUFDdkZKLGtCQUFRbUIsTUFBUixDQUFlZCxlQUFmLEVBQWdDLHdCQUFoQztBQUNEO0FBQ0YsT0F4REksRUFBUDs7QUEwREQsR0ExRmMsRUFBakIiLCJmaWxlIjoicHJlZmVyLWRlZmF1bHQtZXhwb3J0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBkb2NzVXJsIGZyb20gJy4uL2RvY3NVcmwnXG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgncHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24oY29udGV4dCkge1xuICAgIGxldCBzcGVjaWZpZXJFeHBvcnRDb3VudCA9IDBcbiAgICBsZXQgaGFzRGVmYXVsdEV4cG9ydCA9IGZhbHNlXG4gICAgbGV0IGhhc1N0YXJFeHBvcnQgPSBmYWxzZVxuICAgIGxldCBoYXNUeXBlRXhwb3J0ID0gZmFsc2VcbiAgICBsZXQgbmFtZWRFeHBvcnROb2RlID0gbnVsbFxuXG4gICAgZnVuY3Rpb24gY2FwdHVyZURlY2xhcmF0aW9uKGlkZW50aWZpZXJPclBhdHRlcm4pIHtcbiAgICAgIGlmIChpZGVudGlmaWVyT3JQYXR0ZXJuLnR5cGUgPT09ICdPYmplY3RQYXR0ZXJuJykge1xuICAgICAgICAvLyByZWN1cnNpdmVseSBjYXB0dXJlXG4gICAgICAgIGlkZW50aWZpZXJPclBhdHRlcm4ucHJvcGVydGllc1xuICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uKHByb3BlcnR5KSB7XG4gICAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24ocHJvcGVydHkudmFsdWUpXG4gICAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoaWRlbnRpZmllck9yUGF0dGVybi50eXBlID09PSAnQXJyYXlQYXR0ZXJuJykge1xuICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLmVsZW1lbnRzXG4gICAgICAgICAgLmZvckVhY2goY2FwdHVyZURlY2xhcmF0aW9uKVxuICAgICAgfSBlbHNlICB7XG4gICAgICAvLyBhc3N1bWUgaXQncyBhIHNpbmdsZSBzdGFuZGFyZCBpZGVudGlmaWVyXG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ0V4cG9ydERlZmF1bHRTcGVjaWZpZXInOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWVcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnRTcGVjaWZpZXInOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIGlmIChub2RlLmV4cG9ydGVkLm5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICAgIGhhc0RlZmF1bHRFeHBvcnQgPSB0cnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrK1xuICAgICAgICAgIG5hbWVkRXhwb3J0Tm9kZSA9IG5vZGVcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJ0V4cG9ydE5hbWVkRGVjbGFyYXRpb24nOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIC8vIGlmIHRoZXJlIGFyZSBzcGVjaWZpZXJzLCBub2RlLmRlY2xhcmF0aW9uIHNob3VsZCBiZSBudWxsXG4gICAgICAgIGlmICghbm9kZS5kZWNsYXJhdGlvbikgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgeyB0eXBlIH0gPSBub2RlLmRlY2xhcmF0aW9uXG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGUgPT09ICdUU1R5cGVBbGlhc0RlY2xhcmF0aW9uJyB8fFxuICAgICAgICAgIHR5cGUgPT09ICdUeXBlQWxpYXMnIHx8XG4gICAgICAgICAgdHlwZSA9PT0gJ1RTSW50ZXJmYWNlRGVjbGFyYXRpb24nIHx8XG4gICAgICAgICAgdHlwZSA9PT0gJ0ludGVyZmFjZURlY2xhcmF0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICBzcGVjaWZpZXJFeHBvcnRDb3VudCsrXG4gICAgICAgICAgaGFzVHlwZUV4cG9ydCA9IHRydWVcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgIG5vZGUuZGVjbGFyYXRpb24uZGVjbGFyYXRpb25zLmZvckVhY2goZnVuY3Rpb24oZGVjbGFyYXRpb24pIHtcbiAgICAgICAgICAgIGNhcHR1cmVEZWNsYXJhdGlvbihkZWNsYXJhdGlvbi5pZClcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIC8vIGNhcHR1cmVzICdleHBvcnQgZnVuY3Rpb24gZm9vKCkge30nIHN5bnRheFxuICAgICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50KytcbiAgICAgICAgfVxuXG4gICAgICAgIG5hbWVkRXhwb3J0Tm9kZSA9IG5vZGVcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWVcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnRBbGxEZWNsYXJhdGlvbic6IGZ1bmN0aW9uKCkge1xuICAgICAgICBoYXNTdGFyRXhwb3J0ID0gdHJ1ZVxuICAgICAgfSxcblxuICAgICAgJ1Byb2dyYW06ZXhpdCc6IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAoc3BlY2lmaWVyRXhwb3J0Q291bnQgPT09IDEgJiYgIWhhc0RlZmF1bHRFeHBvcnQgJiYgIWhhc1N0YXJFeHBvcnQgJiYgIWhhc1R5cGVFeHBvcnQpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydChuYW1lZEV4cG9ydE5vZGUsICdQcmVmZXIgZGVmYXVsdCBleHBvcnQuJylcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gIH0sXG59XG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9wcmVmZXItZGVmYXVsdC1leHBvcnQuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIm1ldGEiLCJ0eXBlIiwiZG9jcyIsInVybCIsInNjaGVtYSIsImNyZWF0ZSIsImNvbnRleHQiLCJzcGVjaWZpZXJFeHBvcnRDb3VudCIsImhhc0RlZmF1bHRFeHBvcnQiLCJoYXNTdGFyRXhwb3J0IiwiaGFzVHlwZUV4cG9ydCIsIm5hbWVkRXhwb3J0Tm9kZSIsImNhcHR1cmVEZWNsYXJhdGlvbiIsImlkZW50aWZpZXJPclBhdHRlcm4iLCJwcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3BlcnR5IiwidmFsdWUiLCJlbGVtZW50cyIsIm5vZGUiLCJleHBvcnRlZCIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImRlY2xhcmF0aW9ucyIsImlkIiwicmVwb3J0Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxxQzs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQjtBQUNmQyxRQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsdUJBQVIsQ0FERCxFQUZGOztBQUtKQyxZQUFRLEVBTEosRUFEUzs7O0FBU2ZDLFVBQVEsVUFBU0MsT0FBVCxFQUFrQjtBQUN4QixRQUFJQyx1QkFBdUIsQ0FBM0I7QUFDQSxRQUFJQyxtQkFBbUIsS0FBdkI7QUFDQSxRQUFJQyxnQkFBZ0IsS0FBcEI7QUFDQSxRQUFJQyxnQkFBZ0IsS0FBcEI7QUFDQSxRQUFJQyxrQkFBa0IsSUFBdEI7O0FBRUEsYUFBU0Msa0JBQVQsQ0FBNEJDLG1CQUE1QixFQUFpRDtBQUMvQyxVQUFJQSx1QkFBdUJBLG9CQUFvQlosSUFBcEIsS0FBNkIsZUFBeEQsRUFBeUU7QUFDdkU7QUFDQVksNEJBQW9CQyxVQUFwQjtBQUNHQyxlQURILENBQ1csVUFBU0MsUUFBVCxFQUFtQjtBQUMxQkosNkJBQW1CSSxTQUFTQyxLQUE1QjtBQUNELFNBSEg7QUFJRCxPQU5ELE1BTU8sSUFBSUosdUJBQXVCQSxvQkFBb0JaLElBQXBCLEtBQTZCLGNBQXhELEVBQXdFO0FBQzdFWSw0QkFBb0JLLFFBQXBCO0FBQ0dILGVBREgsQ0FDV0gsa0JBRFg7QUFFRCxPQUhNLE1BR0M7QUFDUjtBQUNFTDtBQUNEO0FBQ0Y7O0FBRUQsV0FBTztBQUNMLGdDQUEwQixZQUFXO0FBQ25DQywyQkFBbUIsSUFBbkI7QUFDRCxPQUhJOztBQUtMLHlCQUFtQixVQUFTVyxJQUFULEVBQWU7QUFDaEMsWUFBSUEsS0FBS0MsUUFBTCxDQUFjQyxJQUFkLEtBQXVCLFNBQTNCLEVBQXNDO0FBQ3BDYiw2QkFBbUIsSUFBbkI7QUFDRCxTQUZELE1BRU87QUFDTEQ7QUFDQUksNEJBQWtCUSxJQUFsQjtBQUNEO0FBQ0YsT0FaSTs7QUFjTCxnQ0FBMEIsVUFBU0EsSUFBVCxFQUFlO0FBQ3ZDO0FBQ0EsWUFBSSxDQUFDQSxLQUFLRyxXQUFWLEVBQXVCLE9BRmdCOztBQUkvQnJCLFlBSitCLEdBSXRCa0IsS0FBS0csV0FKaUIsQ0FJL0JyQixJQUorQjs7QUFNdkM7QUFDRUEsaUJBQVMsd0JBQVQ7QUFDQUEsaUJBQVMsV0FEVDtBQUVBQSxpQkFBUyx3QkFGVDtBQUdBQSxpQkFBUyxzQkFKWDtBQUtFO0FBQ0FNO0FBQ0FHLDBCQUFnQixJQUFoQjtBQUNBO0FBQ0Q7O0FBRUQsWUFBSVMsS0FBS0csV0FBTCxDQUFpQkMsWUFBckIsRUFBbUM7QUFDakNKLGVBQUtHLFdBQUwsQ0FBaUJDLFlBQWpCLENBQThCUixPQUE5QixDQUFzQyxVQUFTTyxXQUFULEVBQXNCO0FBQzFEViwrQkFBbUJVLFlBQVlFLEVBQS9CO0FBQ0QsV0FGRDtBQUdELFNBSkQ7QUFLSztBQUNIO0FBQ0FqQjtBQUNEOztBQUVESSwwQkFBa0JRLElBQWxCO0FBQ0QsT0ExQ0k7O0FBNENMLGtDQUE0QixZQUFXO0FBQ3JDWCwyQkFBbUIsSUFBbkI7QUFDRCxPQTlDSTs7QUFnREwsOEJBQXdCLFlBQVc7QUFDakNDLHdCQUFnQixJQUFoQjtBQUNELE9BbERJOztBQW9ETCxzQkFBZ0IsWUFBVztBQUN6QixZQUFJRix5QkFBeUIsQ0FBekIsSUFBOEIsQ0FBQ0MsZ0JBQS9CLElBQW1ELENBQUNDLGFBQXBELElBQXFFLENBQUNDLGFBQTFFLEVBQXlGO0FBQ3ZGSixrQkFBUW1CLE1BQVIsQ0FBZWQsZUFBZixFQUFnQyx3QkFBaEM7QUFDRDtBQUNGLE9BeERJLEVBQVA7O0FBMERELEdBMUZjLEVBQWpCIiwiZmlsZSI6InByZWZlci1kZWZhdWx0LWV4cG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgncHJlZmVyLWRlZmF1bHQtZXhwb3J0JyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24oY29udGV4dCkge1xuICAgIGxldCBzcGVjaWZpZXJFeHBvcnRDb3VudCA9IDA7XG4gICAgbGV0IGhhc0RlZmF1bHRFeHBvcnQgPSBmYWxzZTtcbiAgICBsZXQgaGFzU3RhckV4cG9ydCA9IGZhbHNlO1xuICAgIGxldCBoYXNUeXBlRXhwb3J0ID0gZmFsc2U7XG4gICAgbGV0IG5hbWVkRXhwb3J0Tm9kZSA9IG51bGw7XG5cbiAgICBmdW5jdGlvbiBjYXB0dXJlRGVjbGFyYXRpb24oaWRlbnRpZmllck9yUGF0dGVybikge1xuICAgICAgaWYgKGlkZW50aWZpZXJPclBhdHRlcm4gJiYgaWRlbnRpZmllck9yUGF0dGVybi50eXBlID09PSAnT2JqZWN0UGF0dGVybicpIHtcbiAgICAgICAgLy8gcmVjdXJzaXZlbHkgY2FwdHVyZVxuICAgICAgICBpZGVudGlmaWVyT3JQYXR0ZXJuLnByb3BlcnRpZXNcbiAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbihwcm9wZXJ0eSkge1xuICAgICAgICAgICAgY2FwdHVyZURlY2xhcmF0aW9uKHByb3BlcnR5LnZhbHVlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoaWRlbnRpZmllck9yUGF0dGVybiAmJiBpZGVudGlmaWVyT3JQYXR0ZXJuLnR5cGUgPT09ICdBcnJheVBhdHRlcm4nKSB7XG4gICAgICAgIGlkZW50aWZpZXJPclBhdHRlcm4uZWxlbWVudHNcbiAgICAgICAgICAuZm9yRWFjaChjYXB0dXJlRGVjbGFyYXRpb24pO1xuICAgICAgfSBlbHNlICB7XG4gICAgICAvLyBhc3N1bWUgaXQncyBhIHNpbmdsZSBzdGFuZGFyZCBpZGVudGlmaWVyXG4gICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50Kys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICdFeHBvcnREZWZhdWx0U3BlY2lmaWVyJzogZnVuY3Rpb24oKSB7XG4gICAgICAgIGhhc0RlZmF1bHRFeHBvcnQgPSB0cnVlO1xuICAgICAgfSxcblxuICAgICAgJ0V4cG9ydFNwZWNpZmllcic6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgaWYgKG5vZGUuZXhwb3J0ZWQubmFtZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgaGFzRGVmYXVsdEV4cG9ydCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrKztcbiAgICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlO1xuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbic6IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIHNwZWNpZmllcnMsIG5vZGUuZGVjbGFyYXRpb24gc2hvdWxkIGJlIG51bGxcbiAgICAgICAgaWYgKCFub2RlLmRlY2xhcmF0aW9uKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgeyB0eXBlIH0gPSBub2RlLmRlY2xhcmF0aW9uO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlID09PSAnVFNUeXBlQWxpYXNEZWNsYXJhdGlvbicgfHxcbiAgICAgICAgICB0eXBlID09PSAnVHlwZUFsaWFzJyB8fFxuICAgICAgICAgIHR5cGUgPT09ICdUU0ludGVyZmFjZURlY2xhcmF0aW9uJyB8fFxuICAgICAgICAgIHR5cGUgPT09ICdJbnRlcmZhY2VEZWNsYXJhdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3BlY2lmaWVyRXhwb3J0Q291bnQrKztcbiAgICAgICAgICBoYXNUeXBlRXhwb3J0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobm9kZS5kZWNsYXJhdGlvbi5kZWNsYXJhdGlvbnMpIHtcbiAgICAgICAgICBub2RlLmRlY2xhcmF0aW9uLmRlY2xhcmF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXB0dXJlRGVjbGFyYXRpb24oZGVjbGFyYXRpb24uaWQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIC8vIGNhcHR1cmVzICdleHBvcnQgZnVuY3Rpb24gZm9vKCkge30nIHN5bnRheFxuICAgICAgICAgIHNwZWNpZmllckV4cG9ydENvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICBuYW1lZEV4cG9ydE5vZGUgPSBub2RlO1xuICAgICAgfSxcblxuICAgICAgJ0V4cG9ydERlZmF1bHREZWNsYXJhdGlvbic6IGZ1bmN0aW9uKCkge1xuICAgICAgICBoYXNEZWZhdWx0RXhwb3J0ID0gdHJ1ZTtcbiAgICAgIH0sXG5cbiAgICAgICdFeHBvcnRBbGxEZWNsYXJhdGlvbic6IGZ1bmN0aW9uKCkge1xuICAgICAgICBoYXNTdGFyRXhwb3J0ID0gdHJ1ZTtcbiAgICAgIH0sXG5cbiAgICAgICdQcm9ncmFtOmV4aXQnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHNwZWNpZmllckV4cG9ydENvdW50ID09PSAxICYmICFoYXNEZWZhdWx0RXhwb3J0ICYmICFoYXNTdGFyRXhwb3J0ICYmICFoYXNUeXBlRXhwb3J0KSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQobmFtZWRFeHBvcnROb2RlLCAnUHJlZmVyIGRlZmF1bHQgZXhwb3J0LicpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuIl19 \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/lib/rules/unambiguous.js b/node_modules/eslint-plugin-import/lib/rules/unambiguous.js index 68a12f8451..3693bd2c47 100644 --- a/node_modules/eslint-plugin-import/lib/rules/unambiguous.js +++ b/node_modules/eslint-plugin-import/lib/rules/unambiguous.js @@ -33,4 +33,4 @@ var _docsUrl = require('../docsUrl');var _docsUrl2 = _interopRequireDefault(_doc } }; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy91bmFtYmlndW91cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwiUHJvZ3JhbSIsImFzdCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBO0FBQ0EscUMsK0lBTkE7Ozt1TEFRQUEsT0FBT0MsT0FBUCxHQUFpQixFQUNmQyxNQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsYUFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCO0FBQ0EsUUFBSUEsUUFBUUMsYUFBUixDQUFzQkMsVUFBdEIsS0FBcUMsUUFBekMsRUFBbUQ7QUFDakQsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsV0FBTztBQUNMQyxlQUFTLFVBQVVDLEdBQVYsRUFBZTtBQUN0QixZQUFJLENBQUMsMkJBQVNBLEdBQVQsQ0FBTCxFQUFvQjtBQUNsQkosa0JBQVFLLE1BQVIsQ0FBZTtBQUNiQyxrQkFBTUYsR0FETztBQUViRyxxQkFBUyxnREFGSSxFQUFmOztBQUlEO0FBQ0YsT0FSSSxFQUFQOzs7QUFXRCxHQTFCYyxFQUFqQiIsImZpbGUiOiJ1bmFtYmlndW91cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBSZXBvcnQgbW9kdWxlcyB0aGF0IGNvdWxkIHBhcnNlIGluY29ycmVjdGx5IGFzIHNjcmlwdHMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgeyBpc01vZHVsZSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvdW5hbWJpZ3VvdXMnXG5pbXBvcnQgZG9jc1VybCBmcm9tICcuLi9kb2NzVXJsJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGRvY3NVcmwoJ3VuYW1iaWd1b3VzJyksXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICB9LFxuXG4gIGNyZWF0ZTogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAvLyBpZ25vcmUgbm9uLW1vZHVsZXNcbiAgICBpZiAoY29udGV4dC5wYXJzZXJPcHRpb25zLnNvdXJjZVR5cGUgIT09ICdtb2R1bGUnKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24gKGFzdCkge1xuICAgICAgICBpZiAoIWlzTW9kdWxlKGFzdCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBhc3QsXG4gICAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBtb2R1bGUgY291bGQgYmUgcGFyc2VkIGFzIGEgdmFsaWQgc2NyaXB0LicsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG5cbiAgfSxcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy91bmFtYmlndW91cy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWV0YSIsInR5cGUiLCJkb2NzIiwidXJsIiwic2NoZW1hIiwiY3JlYXRlIiwiY29udGV4dCIsInBhcnNlck9wdGlvbnMiLCJzb3VyY2VUeXBlIiwiUHJvZ3JhbSIsImFzdCIsInJlcG9ydCIsIm5vZGUiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUtBO0FBQ0EscUMsK0lBTkE7Ozt1TEFRQUEsT0FBT0MsT0FBUCxHQUFpQixFQUNmQyxNQUFNO0FBQ0pDLFVBQU0sWUFERjtBQUVKQyxVQUFNO0FBQ0pDLFdBQUssdUJBQVEsYUFBUixDQURELEVBRkY7O0FBS0pDLFlBQVEsRUFMSixFQURTOzs7QUFTZkMsVUFBUSxVQUFVQyxPQUFWLEVBQW1CO0FBQ3pCO0FBQ0EsUUFBSUEsUUFBUUMsYUFBUixDQUFzQkMsVUFBdEIsS0FBcUMsUUFBekMsRUFBbUQ7QUFDakQsYUFBTyxFQUFQO0FBQ0Q7O0FBRUQsV0FBTztBQUNMQyxlQUFTLFVBQVVDLEdBQVYsRUFBZTtBQUN0QixZQUFJLENBQUMsMkJBQVNBLEdBQVQsQ0FBTCxFQUFvQjtBQUNsQkosa0JBQVFLLE1BQVIsQ0FBZTtBQUNiQyxrQkFBTUYsR0FETztBQUViRyxxQkFBUyxnREFGSSxFQUFmOztBQUlEO0FBQ0YsT0FSSSxFQUFQOzs7QUFXRCxHQTFCYyxFQUFqQiIsImZpbGUiOiJ1bmFtYmlndW91cy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVPdmVydmlldyBSZXBvcnQgbW9kdWxlcyB0aGF0IGNvdWxkIHBhcnNlIGluY29ycmVjdGx5IGFzIHNjcmlwdHMuXG4gKiBAYXV0aG9yIEJlbiBNb3NoZXJcbiAqL1xuXG5pbXBvcnQgeyBpc01vZHVsZSB9IGZyb20gJ2VzbGludC1tb2R1bGUtdXRpbHMvdW5hbWJpZ3VvdXMnO1xuaW1wb3J0IGRvY3NVcmwgZnJvbSAnLi4vZG9jc1VybCc7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtZXRhOiB7XG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nLFxuICAgIGRvY3M6IHtcbiAgICAgIHVybDogZG9jc1VybCgndW5hbWJpZ3VvdXMnKSxcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gIH0sXG5cbiAgY3JlYXRlOiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIC8vIGlnbm9yZSBub24tbW9kdWxlc1xuICAgIGlmIChjb250ZXh0LnBhcnNlck9wdGlvbnMuc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgUHJvZ3JhbTogZnVuY3Rpb24gKGFzdCkge1xuICAgICAgICBpZiAoIWlzTW9kdWxlKGFzdCkpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlOiBhc3QsXG4gICAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBtb2R1bGUgY291bGQgYmUgcGFyc2VkIGFzIGEgdmFsaWQgc2NyaXB0LicsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcblxuICB9LFxufTtcbiJdfQ== \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/memo-parser/index.js b/node_modules/eslint-plugin-import/memo-parser/index.js index b64f854219..de558ffa3e 100644 --- a/node_modules/eslint-plugin-import/memo-parser/index.js +++ b/node_modules/eslint-plugin-import/memo-parser/index.js @@ -1,10 +1,10 @@ -'use strict' +'use strict'; -const crypto = require('crypto') - , moduleRequire = require('eslint-module-utils/module-require').default - , hashObject = require('eslint-module-utils/hash').hashObject +const crypto = require('crypto'); +const moduleRequire = require('eslint-module-utils/module-require').default; +const hashObject = require('eslint-module-utils/hash').hashObject; -const cache = new Map() +const cache = new Map(); // must match ESLint default options or we'll miss the cache every time const parserOptions = { @@ -14,28 +14,28 @@ const parserOptions = { tokens: true, comment: true, attachComment: true, -} +}; exports.parse = function parse(content, options) { - options = Object.assign({}, options, parserOptions) + options = Object.assign({}, options, parserOptions); if (!options.filePath) { - throw new Error('no file path provided!') + throw new Error('no file path provided!'); } - const keyHash = crypto.createHash('sha256') - keyHash.update(content) - hashObject(options, keyHash) + const keyHash = crypto.createHash('sha256'); + keyHash.update(content); + hashObject(options, keyHash); - const key = keyHash.digest('hex') + const key = keyHash.digest('hex'); - let ast = cache.get(key) - if (ast != null) return ast + let ast = cache.get(key); + if (ast != null) return ast; - const realParser = moduleRequire(options.parser) + const realParser = moduleRequire(options.parser); - ast = realParser.parse(content, options) - cache.set(key, ast) + ast = realParser.parse(content, options); + cache.set(key, ast); - return ast -} + return ast; +}; diff --git a/node_modules/eslint-plugin-import/memo-parser/package.json b/node_modules/eslint-plugin-import/memo-parser/package.json deleted file mode 100644 index d101752ed8..0000000000 --- a/node_modules/eslint-plugin-import/memo-parser/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "memo-parser", - "version": "0.2.1", - "engines": { - "node": ">=4" - }, - "description": "Memoizing wrapper for any ESLint-compatible parser module.", - "main": "index.js", - "scripts": { - "prepublishOnly": "cp ../{LICENSE,.npmrc} ./", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/benmosher/eslint-plugin-import.git" - }, - "keywords": [ - "eslint", - "eslint-plugin-import", - "parser" - ], - "author": "Ben Mosher (me@benmosher.com)", - "license": "MIT", - "bugs": { - "url": "https://github.com/benmosher/eslint-plugin-import/issues" - }, - "homepage": "https://github.com/benmosher/eslint-plugin-import#readme", - "peerDependencies": { - "eslint": ">=3.5.0" - }, - "dependencies": { - "eslint-module-utils": "^2.5.0" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/doctrine/CHANGELOG.md b/node_modules/eslint-plugin-import/node_modules/doctrine/CHANGELOG.md deleted file mode 100644 index 63fa77cfed..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/doctrine/CHANGELOG.md +++ /dev/null @@ -1,70 +0,0 @@ -v1.5.0 - October 13, 2016 - -* e33c6bb Update: Add support for BooleanLiteralType (#173) (Erik Arvidsson) - -v1.4.0 - September 13, 2016 - -* d7426e5 Update: add ability to parse optional properties in typedefs (refs #5) (#174) (ikokostya) - -v1.3.0 - August 22, 2016 - -* 12c7ad9 Update: Add support for numeric and string literal types (fixes #156) (#172) (Andrew Walter) - -v1.2.3 - August 16, 2016 - -* b96a884 Build: Add CI release script (Nicholas C. Zakas) -* 8d9b3c7 Upgrade: Upgrade esutils to v2.0.2 (fixes #170) (#171) (Emeegeemee) - -v1.2.2 - May 19, 2016 - -* ebe0b08 Fix: Support case insensitive tags (fixes #163) (#164) (alberto) -* 8e6d81e Chore: Remove copyright and license from headers (Nicholas C. Zakas) -* 79035c6 Chore: Include jQuery Foundation copyright (Nicholas C. Zakas) -* 06910a7 Fix: Preserve whitespace in default param string values (fixes #157) (Kai Cataldo) - -v1.2.1 - March 29, 2016 - -* 1f54014 Fix: allow hyphens in names (fixes #116) (Kai Cataldo) -* bbee469 Docs: Add issue template (Nicholas C. Zakas) - -v1.2.0 - February 19, 2016 - -* 18136c5 Build: Cleanup build system (Nicholas C. Zakas) -* b082f85 Update: Add support for slash in namepaths (fixes #100) (Ryan Duffy) -* def53a2 Docs: Fix typo in option lineNumbers (Daniel Tschinder) -* e2cbbc5 Update: Bump isarray to v1.0.0 (Shinnosuke Watanabe) -* ae07aa8 Fix: Allow whitespace in optional param with default value (fixes #141) (chris) - -v1.1.0 - January 6, 2016 - -* Build: Switch to Makefile.js (Nicholas C. Zakas) -* New: support name expression for @this tag (fixes #143) (Tim Schaub) -* Build: Update ESLint settings (Nicholas C. Zakas) - -v1.0.0 - December 21, 2015 - -* New: parse caption tags in examples into separate property. (fixes #131) (Tom MacWright) - -v0.7.2 - November 27, 2015 - -* Fix: Line numbers for some tags (fixes #138) Fixing issue where input was not consumed via advance() but was skipped when parsing tags resulting in sometimes incorrect reported lineNumber. (TEHEK) -* Build: Add missing linefix package (Nicholas C. Zakas) - -v0.7.1 - November 13, 2015 - -* Update: Begin switch to Makefile.js (Nicholas C. Zakas) -* Fix: permit return tag without type (fixes #136) (Tom MacWright) -* Fix: package.json homepage field (Bogdan Chadkin) -* Fix: Parse array default syntax. Fixes #133 (Tom MacWright) -* Fix: Last tag always has \n in the description (fixes #87) (Burak Yigit Kaya) -* Docs: Add changelog (Nicholas C. Zakas) - -v0.7.0 - September 21, 2015 - -* Docs: Update README with new info (fixes #127) (Nicholas C. Zakas) -* Fix: Parsing fix for param with arrays and properties (fixes #111) (Gyandeep Singh) -* Build: Add travis build (fixes #123) (Gyandeep Singh) -* Fix: Parsing of parameter name without a type (fixes #120) (Gyandeep Singh) -* New: added preserveWhitespace option (Aleks Totic) -* New: Add "files" entry to only deploy select files (Rob Loach) -* New: Add support and tests for typedefs. Refs #5 (Tom MacWright) diff --git a/node_modules/eslint-plugin-import/node_modules/doctrine/LICENSE.BSD b/node_modules/eslint-plugin-import/node_modules/doctrine/LICENSE.BSD deleted file mode 100644 index 1e03b5df5f..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/doctrine/LICENSE.BSD +++ /dev/null @@ -1,22 +0,0 @@ -Doctrine -Copyright jQuery Foundation and other contributors, https://jquery.org/ - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/eslint-plugin-import/node_modules/doctrine/README.md b/node_modules/eslint-plugin-import/node_modules/doctrine/README.md deleted file mode 100644 index bc6dcf9190..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/doctrine/README.md +++ /dev/null @@ -1,174 +0,0 @@ -[![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![Downloads][downloads-image]][downloads-url] -[![Join the chat at https://gitter.im/eslint/doctrine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/doctrine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -# Doctrine - -Doctrine is a [JSDoc](http://usejsdoc.org) parser that parses documentation comments from JavaScript (you need to pass in the comment, not a whole JavaScript file). - -## Installation - -You can install Doctrine using [npm](https://npmjs.com): - -``` -$ npm install doctrine --save-dev -``` - -Doctrine can also be used in web browsers using [Browserify](http://browserify.org). - -## Usage - -Require doctrine inside of your JavaScript: - -```js -var doctrine = require("doctrine"); -``` - -### parse() - -The primary method is `parse()`, which accepts two arguments: the JSDoc comment to parse and an optional options object. The available options are: - -* `unwrap` - set to `true` to delete the leading `/**`, any `*` that begins a line, and the trailing `*/` from the source text. Default: `false`. -* `tags` - an array of tags to return. When specified, Doctrine returns only tags in this array. For example, if `tags` is `["param"]`, then only `@param` tags will be returned. Default: `null`. -* `recoverable` - set to `true` to keep parsing even when syntax errors occur. Default: `false`. -* `sloppy` - set to `true` to allow optional parameters to be specified in brackets (`@param {string} [foo]`). Default: `false`. -* `lineNumbers` - set to `true` to add `lineNumber` to each node, specifying the line on which the node is found in the source. Default: `false`. - -Here's a simple example: - -```js -var ast = doctrine.parse( - [ - "/**", - " * This function comment is parsed by doctrine", - " * @param {{ok:String}} userName", - "*/" - ].join('\n'), { unwrap: true }); -``` - -This example returns the following AST: - - { - "description": "This function comment is parsed by doctrine", - "tags": [ - { - "title": "param", - "description": null, - "type": { - "type": "RecordType", - "fields": [ - { - "type": "FieldType", - "key": "ok", - "value": { - "type": "NameExpression", - "name": "String" - } - } - ] - }, - "name": "userName" - } - ] - } - -See the [demo page](http://eslint.org/doctrine/demo/) more detail. - -## Team - -These folks keep the project moving and are resources for help: - -* Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) - project lead -* Yusuke Suzuki ([@constellation](https://github.com/constellation)) - reviewer - -## Contributing - -Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/doctrine/issues). - -## Frequently Asked Questions - -### Can I pass a whole JavaScript file to Doctrine? - -No. Doctrine can only parse JSDoc comments, so you'll need to pass just the JSDoc comment to Doctrine in order to work. - - -### License - -#### doctrine - -Copyright (C) 2012 [Yusuke Suzuki](http://github.com/Constellation) - (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#### esprima - -some of functions is derived from esprima - -Copyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about) - (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -#### closure-compiler - -some of extensions is derived from closure-compiler - -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - - -### Where to ask for help? - -Join our [Chatroom](https://gitter.im/eslint/doctrine) - -[npm-image]: https://img.shields.io/npm/v/doctrine.svg?style=flat-square -[npm-url]: https://www.npmjs.com/package/doctrine -[travis-image]: https://img.shields.io/travis/eslint/doctrine/master.svg?style=flat-square -[travis-url]: https://travis-ci.org/eslint/doctrine -[coveralls-image]: https://img.shields.io/coveralls/eslint/doctrine/master.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/eslint/doctrine?branch=master -[downloads-image]: http://img.shields.io/npm/dm/doctrine.svg?style=flat-square -[downloads-url]: https://www.npmjs.com/package/doctrine diff --git a/node_modules/eslint-plugin-import/node_modules/doctrine/package.json b/node_modules/eslint-plugin-import/node_modules/doctrine/package.json deleted file mode 100644 index 4454768df8..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/doctrine/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "name": "doctrine", - "description": "JSDoc parser", - "homepage": "https://github.com/eslint/doctrine", - "main": "lib/doctrine.js", - "version": "1.5.0", - "engines": { - "node": ">=0.10.0" - }, - "directories": { - "lib": "./lib" - }, - "files": [ - "lib", - "LICENSE.BSD", - "LICENSE.closure-compiler", - "LICENSE.esprima", - "README.md" - ], - "maintainers": [ - { - "name": "Nicholas C. Zakas", - "email": "nicholas+npm@nczconsulting.com", - "web": "https://www.nczonline.net" - }, - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "web": "https://github.com/Constellation" - } - ], - "repository": "eslint/doctrine", - "devDependencies": { - "coveralls": "^2.11.2", - "dateformat": "^1.0.11", - "eslint": "^1.10.3", - "eslint-release": "^0.10.0", - "istanbul": "^0.4.1", - "linefix": "^0.1.1", - "mocha": "^2.3.3", - "npm-license": "^0.3.1", - "semver": "^5.0.3", - "shelljs": "^0.5.3", - "shelljs-nodecli": "^0.1.1", - "should": "^5.0.1" - }, - "licenses": [ - { - "type": "BSD", - "url": "http://github.com/eslint/doctrine/raw/master/LICENSE.BSD" - } - ], - "scripts": { - "test": "npm run lint && node Makefile.js test", - "lint": "eslint lib/", - "release": "eslint-release", - "ci-release": "eslint-ci-release", - "alpharelease": "eslint-prerelease alpha", - "betarelease": "eslint-prerelease beta" - }, - "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/find-up/index.js b/node_modules/eslint-plugin-import/node_modules/find-up/index.js new file mode 100644 index 0000000000..939c9553dc --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/find-up/index.js @@ -0,0 +1,48 @@ +'use strict'; +const path = require('path'); +const locatePath = require('locate-path'); + +module.exports = (filename, opts) => { + opts = opts || {}; + + const startDir = path.resolve(opts.cwd || ''); + const root = path.parse(startDir).root; + + const filenames = [].concat(filename); + + return new Promise(resolve => { + (function find(dir) { + locatePath(filenames, {cwd: dir}).then(file => { + if (file) { + resolve(path.join(dir, file)); + } else if (dir === root) { + resolve(null); + } else { + find(path.dirname(dir)); + } + }); + })(startDir); + }); +}; + +module.exports.sync = (filename, opts) => { + opts = opts || {}; + + let dir = path.resolve(opts.cwd || ''); + const root = path.parse(dir).root; + + const filenames = [].concat(filename); + + // eslint-disable-next-line no-constant-condition + while (true) { + const file = locatePath.sync(filenames, {cwd: dir}); + + if (file) { + return path.join(dir, file); + } else if (dir === root) { + return null; + } + + dir = path.dirname(dir); + } +}; diff --git a/node_modules/table/node_modules/is-fullwidth-code-point/license b/node_modules/eslint-plugin-import/node_modules/find-up/license similarity index 100% rename from node_modules/table/node_modules/is-fullwidth-code-point/license rename to node_modules/eslint-plugin-import/node_modules/find-up/license diff --git a/node_modules/eslint-plugin-import/node_modules/find-up/package.json b/node_modules/eslint-plugin-import/node_modules/find-up/package.json new file mode 100644 index 0000000000..7ec1b7ef81 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/find-up/package.json @@ -0,0 +1,53 @@ +{ + "name": "find-up", + "version": "2.1.0", + "description": "Find a file by walking up parent directories", + "license": "MIT", + "repository": "sindresorhus/find-up", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "package", + "resolve", + "parent", + "parents", + "folder", + "directory", + "dir", + "walk", + "walking", + "path" + ], + "dependencies": { + "locate-path": "^2.0.0" + }, + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.1", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/find-up/readme.md b/node_modules/eslint-plugin-import/node_modules/find-up/readme.md new file mode 100644 index 0000000000..b5ad694552 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/find-up/readme.md @@ -0,0 +1,85 @@ +# find-up [![Build Status: Linux and macOS](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/l0cyjmvh5lq72vq2/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/find-up/branch/master) + +> Find a file by walking up parent directories + + +## Install + +``` +$ npm install --save find-up +``` + + +## Usage + +``` +/ +└── Users + └── sindresorhus + ├── unicorn.png + └── foo + └── bar + ├── baz + └── example.js +``` + +```js +// example.js +const findUp = require('find-up'); + +findUp('unicorn.png').then(filepath => { + console.log(filepath); + //=> '/Users/sindresorhus/unicorn.png' +}); + +findUp(['rainbow.png', 'unicorn.png']).then(filepath => { + console.log(filepath); + //=> '/Users/sindresorhus/unicorn.png' +}); +``` + + +## API + +### findUp(filename, [options]) + +Returns a `Promise` for the filepath or `null`. + +### findUp([filenameA, filenameB], [options]) + +Returns a `Promise` for the first filepath found (by respecting the order) or `null`. + +### findUp.sync(filename, [options]) + +Returns a filepath or `null`. + +### findUp.sync([filenameA, filenameB], [options]) + +Returns the first filepath found (by respecting the order) or `null`. + +#### filename + +Type: `string` + +Filename of the file to find. + +#### options + +##### cwd + +Type: `string`
+Default: `process.cwd()` + +Directory to start from. + + +## Related + +- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module +- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file +- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/.npmignore b/node_modules/eslint-plugin-import/node_modules/isarray/.npmignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/.travis.yml b/node_modules/eslint-plugin-import/node_modules/isarray/.travis.yml deleted file mode 100644 index cc4dba29d9..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/Makefile b/node_modules/eslint-plugin-import/node_modules/isarray/Makefile deleted file mode 100644 index 787d56e1e9..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -test: - @node_modules/.bin/tape test.js - -.PHONY: test - diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/README.md b/node_modules/eslint-plugin-import/node_modules/isarray/README.md deleted file mode 100644 index 16d2c59c61..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/README.md +++ /dev/null @@ -1,60 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray) -[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray) - -[![browser support](https://ci.testling.com/juliangruber/isarray.png) -](https://ci.testling.com/juliangruber/isarray) - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/component.json b/node_modules/eslint-plugin-import/node_modules/isarray/component.json deleted file mode 100644 index 9e31b68388..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/index.js b/node_modules/eslint-plugin-import/node_modules/isarray/index.js deleted file mode 100644 index a57f634959..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/package.json b/node_modules/eslint-plugin-import/node_modules/isarray/package.json deleted file mode 100644 index a732aec723..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "isarray", - "description": "Array#isArray for older browsers", - "version": "1.0.0", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "homepage": "https://github.com/juliangruber/isarray", - "main": "index.js", - "dependencies": {}, - "devDependencies": { - "tape": "~2.13.4" - }, - "keywords": [ - "browser", - "isarray", - "array" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test.js", - "browsers": [ - "ie/8..latest", - "firefox/17..latest", - "firefox/nightly", - "chrome/22..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "scripts": { - "test": "tape test.js" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/isarray/test.js b/node_modules/eslint-plugin-import/node_modules/isarray/test.js deleted file mode 100644 index e0c3444d85..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/isarray/test.js +++ /dev/null @@ -1,20 +0,0 @@ -var isArray = require('./'); -var test = require('tape'); - -test('is array', function(t){ - t.ok(isArray([])); - t.notOk(isArray({})); - t.notOk(isArray(null)); - t.notOk(isArray(false)); - - var obj = {}; - obj[0] = true; - t.notOk(isArray(obj)); - - var arr = []; - arr.foo = 'bar'; - t.ok(isArray(arr)); - - t.end(); -}); - diff --git a/node_modules/eslint-plugin-import/node_modules/locate-path/index.js b/node_modules/eslint-plugin-import/node_modules/locate-path/index.js new file mode 100644 index 0000000000..32b108d19b --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/locate-path/index.js @@ -0,0 +1,24 @@ +'use strict'; +const path = require('path'); +const pathExists = require('path-exists'); +const pLocate = require('p-locate'); + +module.exports = (iterable, opts) => { + opts = Object.assign({ + cwd: process.cwd() + }, opts); + + return pLocate(iterable, el => pathExists(path.resolve(opts.cwd, el)), opts); +}; + +module.exports.sync = (iterable, opts) => { + opts = Object.assign({ + cwd: process.cwd() + }, opts); + + for (const el of iterable) { + if (pathExists.sync(path.resolve(opts.cwd, el))) { + return el; + } + } +}; diff --git a/node_modules/eslint-plugin-import/node_modules/locate-path/license b/node_modules/eslint-plugin-import/node_modules/locate-path/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/locate-path/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/eslint-plugin-import/node_modules/locate-path/package.json b/node_modules/eslint-plugin-import/node_modules/locate-path/package.json new file mode 100644 index 0000000000..e05a6304bf --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/locate-path/package.json @@ -0,0 +1,47 @@ +{ + "name": "locate-path", + "version": "2.0.0", + "description": "Get the first path that exists on disk of multiple paths", + "license": "MIT", + "repository": "sindresorhus/locate-path", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "locate", + "path", + "paths", + "file", + "files", + "exists", + "find", + "finder", + "search", + "searcher", + "array", + "iterable", + "iterator" + ], + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/locate-path/readme.md b/node_modules/eslint-plugin-import/node_modules/locate-path/readme.md new file mode 100644 index 0000000000..f7b337bb2c --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/locate-path/readme.md @@ -0,0 +1,99 @@ +# locate-path [![Build Status](https://travis-ci.org/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.org/sindresorhus/locate-path) + +> Get the first path that exists on disk of multiple paths + + +## Install + +``` +$ npm install --save locate-path +``` + + +## Usage + +Here we find the first file that exists on disk, in array order. + +```js +const locatePath = require('locate-path'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // only this one actually exists on disk + 'pony.png' +]; + +locatePath(files).then(foundPath => { + console.log(foundPath); + //=> 'rainbow' +}); +``` + + +## API + +### locatePath(input, [options]) + +Returns a `Promise` for the first path that exists or `undefined` if none exists. + +#### input + +Type: `Iterable` + +Paths to check. + +#### options + +Type: `Object` + +##### concurrency + +Type: `number`
+Default: `Infinity`
+Minimum: `1` + +Number of concurrently pending promises. + +##### preserveOrder + +Type: `boolean`
+Default: `true` + +Preserve `input` order when searching. + +Disable this to improve performance if you don't care about the order. + +##### cwd + +Type: `string`
+Default: `process.cwd()` + +Current working directory. + +### locatePath.sync(input, [options]) + +Returns the first path that exists or `undefined` if none exists. + +#### input + +Type: `Iterable` + +Paths to check. + +#### options + +Type: `Object` + +##### cwd + +Same as above. + + +## Related + +- [path-exists](https://github.com/sindresorhus/path-exists) - Check if a path exists + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/eslint-plugin-import/node_modules/p-limit/index.js b/node_modules/eslint-plugin-import/node_modules/p-limit/index.js new file mode 100644 index 0000000000..873f0e70de --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-limit/index.js @@ -0,0 +1,42 @@ +'use strict'; +const pTry = require('p-try'); + +module.exports = concurrency => { + if (concurrency < 1) { + throw new TypeError('Expected `concurrency` to be a number from 1 and up'); + } + + const queue = []; + let activeCount = 0; + + const next = () => { + activeCount--; + + if (queue.length > 0) { + queue.shift()(); + } + }; + + return fn => new Promise((resolve, reject) => { + const run = () => { + activeCount++; + + pTry(fn).then( + val => { + resolve(val); + next(); + }, + err => { + reject(err); + next(); + } + ); + }; + + if (activeCount < concurrency) { + run(); + } else { + queue.push(run); + } + }); +}; diff --git a/node_modules/@typescript-eslint/typescript-estree/node_modules/globby/license b/node_modules/eslint-plugin-import/node_modules/p-limit/license similarity index 100% rename from node_modules/@typescript-eslint/typescript-estree/node_modules/globby/license rename to node_modules/eslint-plugin-import/node_modules/p-limit/license diff --git a/node_modules/eslint-plugin-import/node_modules/p-limit/package.json b/node_modules/eslint-plugin-import/node_modules/p-limit/package.json new file mode 100644 index 0000000000..275cb73ae4 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-limit/package.json @@ -0,0 +1,49 @@ +{ + "name": "p-limit", + "version": "1.3.0", + "description": "Run multiple promise-returning & async functions with limited concurrency", + "license": "MIT", + "repository": "sindresorhus/p-limit", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "dependencies": { + "p-try": "^1.0.0" + }, + "devDependencies": { + "ava": "*", + "delay": "^2.0.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + } +} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/p-limit/readme.md b/node_modules/eslint-plugin-import/node_modules/p-limit/readme.md new file mode 100644 index 0000000000..90129925c1 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-limit/readme.md @@ -0,0 +1,69 @@ +# p-limit [![Build Status](https://travis-ci.org/sindresorhus/p-limit.svg?branch=master)](https://travis-ci.org/sindresorhus/p-limit) + +> Run multiple promise-returning & async functions with limited concurrency + + +## Install + +``` +$ npm install p-limit +``` + + +## Usage + +```js +const pLimit = require('p-limit'); + +const limit = pLimit(1); + +const input = [ + limit(() => fetchSomething('foo')), + limit(() => fetchSomething('bar')), + limit(() => doSomething()) +]; + +(async () => { + // Only one promise is run at once + const result = await Promise.all(input); + console.log(result); +})(); +``` + + +## API + +### pLimit(concurrency) + +Returns a `limit` function. + +#### concurrency + +Type: `number`
+Minimum: `1` + +Concurrency limit. + +### limit(fn) + +Returns the promise returned by calling `fn`. + +#### fn + +Type: `Function` + +Promise-returning/async function. + + +## Related + +- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control +- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions +- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions +- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/eslint-plugin-import/node_modules/p-locate/index.js b/node_modules/eslint-plugin-import/node_modules/p-locate/index.js new file mode 100644 index 0000000000..7461d665b5 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-locate/index.js @@ -0,0 +1,31 @@ +'use strict'; +const pLimit = require('p-limit'); + +class EndError extends Error { + constructor(value) { + super(); + this.value = value; + } +} + +// the input can also be a promise, so we `Promise.all()` them both +const finder = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0]))); + +module.exports = (iterable, tester, opts) => { + opts = Object.assign({ + concurrency: Infinity, + preserveOrder: true + }, opts); + + const limit = pLimit(opts.concurrency); + + // start all the promises concurrently with optional limit + const items = Array.from(iterable).map(el => [el, limit(() => Promise.resolve(el).then(tester))]); + + // check the promises either serially or concurrently + const checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity); + + return Promise.all(items.map(el => checkLimit(() => finder(el)))) + .then(() => {}) + .catch(err => err instanceof EndError ? err.value : Promise.reject(err)); +}; diff --git a/node_modules/eslint-plugin-import/node_modules/p-locate/license b/node_modules/eslint-plugin-import/node_modules/p-locate/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-locate/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/eslint-plugin-import/node_modules/p-locate/package.json b/node_modules/eslint-plugin-import/node_modules/p-locate/package.json new file mode 100644 index 0000000000..b938aa4c59 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-locate/package.json @@ -0,0 +1,54 @@ +{ + "name": "p-locate", + "version": "2.0.0", + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "license": "MIT", + "repository": "sindresorhus/p-locate", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "locate", + "find", + "finder", + "search", + "searcher", + "test", + "array", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "fastest", + "async", + "await", + "promises", + "bluebird" + ], + "dependencies": { + "p-limit": "^1.1.0" + }, + "devDependencies": { + "ava": "*", + "delay": "^1.3.1", + "in-range": "^1.0.0", + "time-span": "^1.0.0", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/p-locate/readme.md b/node_modules/eslint-plugin-import/node_modules/p-locate/readme.md new file mode 100644 index 0000000000..68b96a47ef --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-locate/readme.md @@ -0,0 +1,86 @@ +# p-locate [![Build Status](https://travis-ci.org/sindresorhus/p-locate.svg?branch=master)](https://travis-ci.org/sindresorhus/p-locate) + +> Get the first fulfilled promise that satisfies the provided testing function + +Think of it like an async version of [`Array#find`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find). + + +## Install + +``` +$ npm install --save p-locate +``` + + +## Usage + +Here we find the first file that exists on disk, in array order. + +```js +const pathExists = require('path-exists'); +const pLocate = require('p-locate'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // only this one actually exists on disk + 'pony.png' +]; + +pLocate(files, file => pathExists(file)).then(foundPath => { + console.log(foundPath); + //=> 'rainbow' +}); +``` + +*The above is just an example. Use [`locate-path`](https://github.com/sindresorhus/locate-path) if you need this.* + + +## API + +### pLocate(input, tester, [options]) + +Returns a `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`. + +#### input + +Type: `Iterable` + +#### tester(element) + +Type: `Function` + +Expected to return a `Promise` or boolean. + +#### options + +Type: `Object` + +##### concurrency + +Type: `number`
+Default: `Infinity`
+Minimum: `1` + +Number of concurrently pending promises returned by `tester`. + +##### preserveOrder + +Type: `boolean`
+Default: `true` + +Preserve `input` order when searching. + +Disable this to improve performance if you don't care about the order. + + +## Related + +- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently +- [p-filter](https://github.com/sindresorhus/p-filter) - Filter promises concurrently +- [p-any](https://github.com/sindresorhus/p-any) - Wait for any promise to be fulfilled +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/eslint-plugin-import/node_modules/p-try/index.js b/node_modules/eslint-plugin-import/node_modules/p-try/index.js new file mode 100644 index 0000000000..efa2f74338 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-try/index.js @@ -0,0 +1,4 @@ +'use strict'; +module.exports = cb => new Promise(resolve => { + resolve(cb()); +}); diff --git a/node_modules/eslint-plugin-import/node_modules/p-try/license b/node_modules/eslint-plugin-import/node_modules/p-try/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-try/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/eslint-plugin-import/node_modules/p-try/package.json b/node_modules/eslint-plugin-import/node_modules/p-try/package.json new file mode 100644 index 0000000000..a4623262b2 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-try/package.json @@ -0,0 +1,43 @@ +{ + "name": "p-try", + "version": "1.0.0", + "description": "`Promise#try()` ponyfill - Starts a promise chain", + "license": "MIT", + "repository": "sindresorhus/p-try", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "try", + "resolve", + "function", + "catch", + "async", + "await", + "promises", + "settled", + "ponyfill", + "polyfill", + "shim", + "bluebird" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/p-try/readme.md b/node_modules/eslint-plugin-import/node_modules/p-try/readme.md new file mode 100644 index 0000000000..8e5fdddbe1 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/p-try/readme.md @@ -0,0 +1,38 @@ +# p-try [![Build Status](https://travis-ci.org/sindresorhus/p-try.svg?branch=master)](https://travis-ci.org/sindresorhus/p-try) + +> [`Promise#try()`](https://github.com/ljharb/proposal-promise-try) [ponyfill](https://ponyfill.com) - Starts a promise chain + +[How is it useful?](http://cryto.net/~joepie91/blog/2016/05/11/what-is-promise-try-and-why-does-it-matter/) + + +## Install + +``` +$ npm install --save p-try +``` + + +## Usage + +```js +const pTry = require('p-try'); + +pTry(() => { + return synchronousFunctionThatMightThrow(); +}).then(value => { + console.log(value); +}).catch(error => { + console.error(error); +}); +``` + + +## Related + +- [p-finally](https://github.com/sindresorhus/p-finally) - `Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/eslint-plugin-import/node_modules/path-exists/index.js b/node_modules/eslint-plugin-import/node_modules/path-exists/index.js new file mode 100644 index 0000000000..16ae60acb1 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/path-exists/index.js @@ -0,0 +1,17 @@ +'use strict'; +const fs = require('fs'); + +module.exports = fp => new Promise(resolve => { + fs.access(fp, err => { + resolve(!err); + }); +}); + +module.exports.sync = fp => { + try { + fs.accessSync(fp); + return true; + } catch (err) { + return false; + } +}; diff --git a/node_modules/eslint-plugin-import/node_modules/path-exists/license b/node_modules/eslint-plugin-import/node_modules/path-exists/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/path-exists/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/eslint-plugin-import/node_modules/path-exists/package.json b/node_modules/eslint-plugin-import/node_modules/path-exists/package.json new file mode 100644 index 0000000000..ed507545d7 --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/path-exists/package.json @@ -0,0 +1,40 @@ +{ + "name": "path-exists", + "version": "3.0.0", + "description": "Check if a path exists", + "license": "MIT", + "repository": "sindresorhus/path-exists", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "path", + "exists", + "exist", + "file", + "filepath", + "fs", + "filesystem", + "file-system", + "access", + "stat" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/path-exists/readme.md b/node_modules/eslint-plugin-import/node_modules/path-exists/readme.md new file mode 100644 index 0000000000..1b65fa705d --- /dev/null +++ b/node_modules/eslint-plugin-import/node_modules/path-exists/readme.md @@ -0,0 +1,50 @@ +# path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists) + +> Check if a path exists + +Because [`fs.exists()`](https://nodejs.org/api/fs.html#fs_fs_exists_path_callback) is being [deprecated](https://github.com/iojs/io.js/issues/103), but there's still a genuine use-case of being able to check if a path exists for other purposes than doing IO with it. + +Never use this before handling a file though: + +> In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions: another process may remove the file between the calls to `fs.exists()` and `fs.open()`. Just open the file and handle the error when it's not there. + + +## Install + +``` +$ npm install --save path-exists +``` + + +## Usage + +```js +// foo.js +const pathExists = require('path-exists'); + +pathExists('foo.js').then(exists => { + console.log(exists); + //=> true +}); +``` + + +## API + +### pathExists(path) + +Returns a promise for a boolean of whether the path exists. + +### pathExists.sync(path) + +Returns a boolean of whether the path exists. + + +## Related + +- [path-exists-cli](https://github.com/sindresorhus/path-exists-cli) - CLI for this module + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.eslintignore b/node_modules/eslint-plugin-import/node_modules/resolve/.eslintignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.eslintrc b/node_modules/eslint-plugin-import/node_modules/resolve/.eslintrc deleted file mode 100644 index a22863c8cb..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/.eslintrc +++ /dev/null @@ -1,39 +0,0 @@ -{ - "extends": "@ljharb", - "root": true, - "rules": { - "array-bracket-newline": 0, - "array-element-newline": 0, - "indent": [2, 4], - "strict": 0, - "complexity": 0, - "consistent-return": 0, - "curly": 0, - "dot-notation": [2, { "allowKeywords": true }], - "func-name-matching": 0, - "func-style": 0, - "global-require": 0, - "id-length": [2, { "min": 1, "max": 30 }], - "max-lines-per-function": 0, - "max-nested-callbacks": 0, - "max-params": 0, - "max-statements-per-line": [2, { "max": 2 }], - "max-statements": 0, - "no-magic-numbers": 0, - "no-console": 0, - "no-shadow": 0, - "no-unused-vars": [2, { "vars": "all", "args": "none" }], - "no-use-before-define": 0, - "object-curly-newline": 0, - "operator-linebreak": [2, "before"], - "sort-keys": 0, - }, - "overrides": [ - { - "files": "test/resolver/nested_symlinks/mylib/*.js", - "rules": { - "no-throw-literal": 0, - }, - }, - ], -} diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.travis.yml b/node_modules/eslint-plugin-import/node_modules/resolve/.travis.yml deleted file mode 100644 index 5ed0fa52f9..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/LICENSE b/node_modules/eslint-plugin-import/node_modules/resolve/LICENSE deleted file mode 100644 index ff4fce28af..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2012 James Halliday - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/appveyor.yml b/node_modules/eslint-plugin-import/node_modules/resolve/appveyor.yml deleted file mode 100644 index 9458fb82b1..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/appveyor.yml +++ /dev/null @@ -1,54 +0,0 @@ -version: 1.0.{build} -skip_branch_with_pr: true -build: off - -environment: - matrix: - - nodejs_version: "12" - - nodejs_version: "11" - - nodejs_version: "10" - - nodejs_version: "9" - - nodejs_version: "8" - - nodejs_version: "7" - - nodejs_version: "6" - - nodejs_version: "5" - - nodejs_version: "4" - - nodejs_version: "3" - - nodejs_version: "2" - - nodejs_version: "1" - - nodejs_version: "0.12" - - nodejs_version: "0.10" - - nodejs_version: "0.8" - - nodejs_version: "0.6" -matrix: - # fast_finish: true - allow_failures: - - nodejs_version: "5" # due to windows npm bug, registry-side - - nodejs_version: "0.8" - - nodejs_version: "0.6" - -platform: - - x86 - - x64 - -# Install scripts. (runs after repo cloning) -install: - # Fix symlinks in working copy (see https://github.com/appveyor/ci/issues/650#issuecomment-186592582) / https://github.com/charleskorn/batect/commit/d08986802ec43086902958c4ee7e57ff3e71dbef - - git config core.symlinks true - - git reset --hard - # Get the latest stable version of Node.js or io.js - - ps: Install-Product node $env:nodejs_version $env:platform - - IF %nodejs_version% EQU 0.6 npm config set strict-ssl false && npm -g install npm@1.3 - - IF %nodejs_version% EQU 0.8 npm config set strict-ssl false && npm -g install npm@1.4.28 && npm install -g npm@4.5 - - set PATH=%APPDATA%\npm;%PATH% - #- IF %nodejs_version% NEQ 0.6 AND %nodejs_version% NEQ 0.8 npm -g install npm - # install modules - - npm install - -# Post-install test scripts. -test_script: - # Output useful info for debugging. - - node --version - - npm --version - # run tests - - npm run tests-only diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/example/async.js b/node_modules/eslint-plugin-import/node_modules/resolve/example/async.js deleted file mode 100644 index 20e65dc281..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/example/async.js +++ /dev/null @@ -1,5 +0,0 @@ -var resolve = require('../'); -resolve('tap', { basedir: __dirname }, function (err, res) { - if (err) console.error(err); - else console.log(res); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/example/sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/example/sync.js deleted file mode 100644 index 54b2cc1004..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/example/sync.js +++ /dev/null @@ -1,3 +0,0 @@ -var resolve = require('../'); -var res = resolve.sync('tap', { basedir: __dirname }); -console.log(res); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/index.js deleted file mode 100644 index 125d814642..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/index.js +++ /dev/null @@ -1,6 +0,0 @@ -var async = require('./lib/async'); -async.core = require('./lib/core'); -async.isCore = require('./lib/is-core'); -async.sync = require('./lib/sync'); - -module.exports = async; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/async.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/async.js deleted file mode 100644 index 06aa458833..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/async.js +++ /dev/null @@ -1,298 +0,0 @@ -var fs = require('fs'); -var path = require('path'); -var caller = require('./caller.js'); -var nodeModulesPaths = require('./node-modules-paths.js'); -var normalizeOptions = require('./normalize-options.js'); -var isCore = require('./is-core'); - -var realpathFS = fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; - -var defaultIsFile = function isFile(file, cb) { - fs.stat(file, function (err, stat) { - if (!err) { - return cb(null, stat.isFile() || stat.isFIFO()); - } - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); - }); -}; - -var defaultIsDir = function isDirectory(dir, cb) { - fs.stat(dir, function (err, stat) { - if (!err) { - return cb(null, stat.isDirectory()); - } - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); - }); -}; - -var defaultRealpath = function realpath(x, cb) { - realpathFS(x, function (realpathErr, realPath) { - if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr); - else cb(null, realpathErr ? x : realPath); - }); -}; - -var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) { - if (opts && opts.preserveSymlinks === false) { - realpath(x, cb); - } else { - cb(null, x); - } -}; - -var getPackageCandidates = function getPackageCandidates(x, start, opts) { - var dirs = nodeModulesPaths(start, opts, x); - for (var i = 0; i < dirs.length; i++) { - dirs[i] = path.join(dirs[i], x); - } - return dirs; -}; - -module.exports = function resolve(x, options, callback) { - var cb = callback; - var opts = options; - if (typeof options === 'function') { - cb = opts; - opts = {}; - } - if (typeof x !== 'string') { - var err = new TypeError('Path must be a string.'); - return process.nextTick(function () { - cb(err); - }); - } - - opts = normalizeOptions(x, opts); - - var isFile = opts.isFile || defaultIsFile; - var isDirectory = opts.isDirectory || defaultIsDir; - var readFile = opts.readFile || fs.readFile; - var realpath = opts.realpath || defaultRealpath; - var packageIterator = opts.packageIterator; - - var extensions = opts.extensions || ['.js']; - var basedir = opts.basedir || path.dirname(caller()); - var parent = opts.filename || basedir; - - opts.paths = opts.paths || []; - - // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - var absoluteStart = path.resolve(basedir); - - maybeRealpath( - realpath, - absoluteStart, - opts, - function (err, realStart) { - if (err) cb(err); - else init(realStart); - } - ); - - var res; - function init(basedir) { - if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { - res = path.resolve(basedir, x); - if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; - if ((/\/$/).test(x) && res === basedir) { - loadAsDirectory(res, opts.package, onfile); - } else loadAsFile(res, opts.package, onfile); - } else if (isCore(x)) { - return cb(null, x); - } else loadNodeModules(x, basedir, function (err, n, pkg) { - if (err) cb(err); - else if (n) { - return maybeRealpath(realpath, n, opts, function (err, realN) { - if (err) { - cb(err); - } else { - cb(null, realN, pkg); - } - }); - } else { - var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - moduleError.code = 'MODULE_NOT_FOUND'; - cb(moduleError); - } - }); - } - - function onfile(err, m, pkg) { - if (err) cb(err); - else if (m) cb(null, m, pkg); - else loadAsDirectory(res, function (err, d, pkg) { - if (err) cb(err); - else if (d) { - maybeRealpath(realpath, d, opts, function (err, realD) { - if (err) { - cb(err); - } else { - cb(null, realD, pkg); - } - }); - } else { - var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - moduleError.code = 'MODULE_NOT_FOUND'; - cb(moduleError); - } - }); - } - - function loadAsFile(x, thePackage, callback) { - var loadAsFilePackage = thePackage; - var cb = callback; - if (typeof loadAsFilePackage === 'function') { - cb = loadAsFilePackage; - loadAsFilePackage = undefined; - } - - var exts = [''].concat(extensions); - load(exts, x, loadAsFilePackage); - - function load(exts, x, loadPackage) { - if (exts.length === 0) return cb(null, undefined, loadPackage); - var file = x + exts[0]; - - var pkg = loadPackage; - if (pkg) onpkg(null, pkg); - else loadpkg(path.dirname(file), onpkg); - - function onpkg(err, pkg_, dir) { - pkg = pkg_; - if (err) return cb(err); - if (dir && pkg && opts.pathFilter) { - var rfile = path.relative(dir, file); - var rel = rfile.slice(0, rfile.length - exts[0].length); - var r = opts.pathFilter(pkg, x, rel); - if (r) return load( - [''].concat(extensions.slice()), - path.resolve(dir, r), - pkg - ); - } - isFile(file, onex); - } - function onex(err, ex) { - if (err) return cb(err); - if (ex) return cb(null, file, pkg); - load(exts.slice(1), x, pkg); - } - } - } - - function loadpkg(dir, cb) { - if (dir === '' || dir === '/') return cb(null); - if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) { - return cb(null); - } - if ((/[/\\]node_modules[/\\]*$/).test(dir)) return cb(null); - - maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) { - if (unwrapErr) return loadpkg(path.dirname(dir), cb); - var pkgfile = path.join(pkgdir, 'package.json'); - isFile(pkgfile, function (err, ex) { - // on err, ex is false - if (!ex) return loadpkg(path.dirname(dir), cb); - - readFile(pkgfile, function (err, body) { - if (err) cb(err); - try { var pkg = JSON.parse(body); } catch (jsonErr) {} - - if (pkg && opts.packageFilter) { - pkg = opts.packageFilter(pkg, pkgfile); - } - cb(null, pkg, dir); - }); - }); - }); - } - - function loadAsDirectory(x, loadAsDirectoryPackage, callback) { - var cb = callback; - var fpkg = loadAsDirectoryPackage; - if (typeof fpkg === 'function') { - cb = fpkg; - fpkg = opts.package; - } - - maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) { - if (unwrapErr) return cb(unwrapErr); - var pkgfile = path.join(pkgdir, 'package.json'); - isFile(pkgfile, function (err, ex) { - if (err) return cb(err); - if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb); - - readFile(pkgfile, function (err, body) { - if (err) return cb(err); - try { - var pkg = JSON.parse(body); - } catch (jsonErr) {} - - if (pkg && opts.packageFilter) { - pkg = opts.packageFilter(pkg, pkgfile); - } - - if (pkg && pkg.main) { - if (typeof pkg.main !== 'string') { - var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); - mainError.code = 'INVALID_PACKAGE_MAIN'; - return cb(mainError); - } - if (pkg.main === '.' || pkg.main === './') { - pkg.main = 'index'; - } - loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) { - if (err) return cb(err); - if (m) return cb(null, m, pkg); - if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb); - - var dir = path.resolve(x, pkg.main); - loadAsDirectory(dir, pkg, function (err, n, pkg) { - if (err) return cb(err); - if (n) return cb(null, n, pkg); - loadAsFile(path.join(x, 'index'), pkg, cb); - }); - }); - return; - } - - loadAsFile(path.join(x, '/index'), pkg, cb); - }); - }); - }); - } - - function processDirs(cb, dirs) { - if (dirs.length === 0) return cb(null, undefined); - var dir = dirs[0]; - - isDirectory(path.dirname(dir), isdir); - - function isdir(err, isdir) { - if (err) return cb(err); - if (!isdir) return processDirs(cb, dirs.slice(1)); - loadAsFile(dir, opts.package, onfile); - } - - function onfile(err, m, pkg) { - if (err) return cb(err); - if (m) return cb(null, m, pkg); - loadAsDirectory(dir, opts.package, ondir); - } - - function ondir(err, n, pkg) { - if (err) return cb(err); - if (n) return cb(null, n, pkg); - processDirs(cb, dirs.slice(1)); - } - } - function loadNodeModules(x, start, cb) { - var thunk = function () { return getPackageCandidates(x, start, opts); }; - processDirs( - cb, - packageIterator ? packageIterator(x, start, thunk, opts) : thunk() - ); - } -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/caller.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/caller.js deleted file mode 100644 index b14a2804ae..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/caller.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = function () { - // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi - var origPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = function (_, stack) { return stack; }; - var stack = (new Error()).stack; - Error.prepareStackTrace = origPrepareStackTrace; - return stack[2].getFileName(); -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.js deleted file mode 100644 index 0877650cca..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.js +++ /dev/null @@ -1,53 +0,0 @@ -var current = (process.versions && process.versions.node && process.versions.node.split('.')) || []; - -function specifierIncluded(specifier) { - var parts = specifier.split(' '); - var op = parts.length > 1 ? parts[0] : '='; - var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); - - for (var i = 0; i < 3; ++i) { - var cur = Number(current[i] || 0); - var ver = Number(versionParts[i] || 0); - if (cur === ver) { - continue; // eslint-disable-line no-restricted-syntax, no-continue - } - if (op === '<') { - return cur < ver; - } else if (op === '>=') { - return cur >= ver; - } else { - return false; - } - } - return op === '>='; -} - -function matchesRange(range) { - var specifiers = range.split(/ ?&& ?/); - if (specifiers.length === 0) { return false; } - for (var i = 0; i < specifiers.length; ++i) { - if (!specifierIncluded(specifiers[i])) { return false; } - } - return true; -} - -function versionIncluded(specifierValue) { - if (typeof specifierValue === 'boolean') { return specifierValue; } - if (specifierValue && typeof specifierValue === 'object') { - for (var i = 0; i < specifierValue.length; ++i) { - if (matchesRange(specifierValue[i])) { return true; } - } - return false; - } - return matchesRange(specifierValue); -} - -var data = require('./core.json'); - -var core = {}; -for (var mod in data) { // eslint-disable-line no-restricted-syntax - if (Object.prototype.hasOwnProperty.call(data, mod)) { - core[mod] = versionIncluded(data[mod]); - } -} -module.exports = core; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.json b/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.json deleted file mode 100644 index d51b70b149..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/core.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "assert": true, - "async_hooks": ">= 8", - "buffer_ieee754": "< 0.9.7", - "buffer": true, - "child_process": true, - "cluster": true, - "console": true, - "constants": true, - "crypto": true, - "_debug_agent": ">= 1 && < 8", - "_debugger": "< 8", - "dgram": true, - "dns": true, - "domain": true, - "events": true, - "freelist": "< 6", - "fs": true, - "fs/promises": [">= 10 && < 10.1", ">= 14"], - "_http_agent": ">= 0.11.1", - "_http_client": ">= 0.11.1", - "_http_common": ">= 0.11.1", - "_http_incoming": ">= 0.11.1", - "_http_outgoing": ">= 0.11.1", - "_http_server": ">= 0.11.1", - "http": true, - "http2": ">= 8.8", - "https": true, - "inspector": ">= 8.0.0", - "_linklist": "< 8", - "module": true, - "net": true, - "node-inspect/lib/_inspect": ">= 7.6.0 && < 12", - "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12", - "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12", - "os": true, - "path": true, - "perf_hooks": ">= 8.5", - "process": ">= 1", - "punycode": true, - "querystring": true, - "readline": true, - "repl": true, - "smalloc": ">= 0.11.5 && < 3", - "_stream_duplex": ">= 0.9.4", - "_stream_transform": ">= 0.9.4", - "_stream_wrap": ">= 1.4.1", - "_stream_passthrough": ">= 0.9.4", - "_stream_readable": ">= 0.9.4", - "_stream_writable": ">= 0.9.4", - "stream": true, - "string_decoder": true, - "sys": true, - "timers": true, - "_tls_common": ">= 0.11.13", - "_tls_legacy": ">= 0.11.3 && < 10", - "_tls_wrap": ">= 0.11.3", - "tls": true, - "trace_events": ">= 10", - "tty": true, - "url": true, - "util": true, - "v8/tools/arguments": ">= 10 && < 12", - "v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8": ">= 1", - "vm": true, - "wasi": ">= 13.4 && < 13.5", - "worker_threads": ">= 11.7", - "zlib": true -} diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/is-core.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/is-core.js deleted file mode 100644 index 48bc96c47e..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/is-core.js +++ /dev/null @@ -1,5 +0,0 @@ -var core = require('./core'); - -module.exports = function isCore(x) { - return Object.prototype.hasOwnProperty.call(core, x); -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/node-modules-paths.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/node-modules-paths.js deleted file mode 100644 index 2b43813a7a..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/node-modules-paths.js +++ /dev/null @@ -1,42 +0,0 @@ -var path = require('path'); -var parse = path.parse || require('path-parse'); - -var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { - var prefix = '/'; - if ((/^([A-Za-z]:)/).test(absoluteStart)) { - prefix = ''; - } else if ((/^\\\\/).test(absoluteStart)) { - prefix = '\\\\'; - } - - var paths = [absoluteStart]; - var parsed = parse(absoluteStart); - while (parsed.dir !== paths[paths.length - 1]) { - paths.push(parsed.dir); - parsed = parse(parsed.dir); - } - - return paths.reduce(function (dirs, aPath) { - return dirs.concat(modules.map(function (moduleDir) { - return path.resolve(prefix, aPath, moduleDir); - })); - }, []); -}; - -module.exports = function nodeModulesPaths(start, opts, request) { - var modules = opts && opts.moduleDirectory - ? [].concat(opts.moduleDirectory) - : ['node_modules']; - - if (opts && typeof opts.paths === 'function') { - return opts.paths( - request, - start, - function () { return getNodeModulesDirs(start, modules); }, - opts - ); - } - - var dirs = getNodeModulesDirs(start, modules); - return opts && opts.paths ? dirs.concat(opts.paths) : dirs; -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/normalize-options.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/normalize-options.js deleted file mode 100644 index 4b56904eae..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/normalize-options.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = function (x, opts) { - /** - * This file is purposefully a passthrough. It's expected that third-party - * environments will override it at runtime in order to inject special logic - * into `resolve` (by manipulating the options). One such example is the PnP - * code path in Yarn. - */ - - return opts || {}; -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/lib/sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/lib/sync.js deleted file mode 100644 index da74e19d0c..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/lib/sync.js +++ /dev/null @@ -1,191 +0,0 @@ -var isCore = require('./is-core'); -var fs = require('fs'); -var path = require('path'); -var caller = require('./caller.js'); -var nodeModulesPaths = require('./node-modules-paths.js'); -var normalizeOptions = require('./normalize-options.js'); - -var realpathFS = fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; - -var defaultIsFile = function isFile(file) { - try { - var stat = fs.statSync(file); - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; - throw e; - } - return stat.isFile() || stat.isFIFO(); -}; - -var defaultIsDir = function isDirectory(dir) { - try { - var stat = fs.statSync(dir); - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; - throw e; - } - return stat.isDirectory(); -}; - -var defaultRealpathSync = function realpathSync(x) { - try { - return realpathFS(x); - } catch (realpathErr) { - if (realpathErr.code !== 'ENOENT') { - throw realpathErr; - } - } - return x; -}; - -var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) { - if (opts && opts.preserveSymlinks === false) { - return realpathSync(x); - } - return x; -}; - -var getPackageCandidates = function getPackageCandidates(x, start, opts) { - var dirs = nodeModulesPaths(start, opts, x); - for (var i = 0; i < dirs.length; i++) { - dirs[i] = path.join(dirs[i], x); - } - return dirs; -}; - -module.exports = function resolveSync(x, options) { - if (typeof x !== 'string') { - throw new TypeError('Path must be a string.'); - } - var opts = normalizeOptions(x, options); - - var isFile = opts.isFile || defaultIsFile; - var readFileSync = opts.readFileSync || fs.readFileSync; - var isDirectory = opts.isDirectory || defaultIsDir; - var realpathSync = opts.realpathSync || defaultRealpathSync; - var packageIterator = opts.packageIterator; - - var extensions = opts.extensions || ['.js']; - var basedir = opts.basedir || path.dirname(caller()); - var parent = opts.filename || basedir; - - opts.paths = opts.paths || []; - - // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts); - - if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { - var res = path.resolve(absoluteStart, x); - if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; - var m = loadAsFileSync(res) || loadAsDirectorySync(res); - if (m) return maybeRealpathSync(realpathSync, m, opts); - } else if (isCore(x)) { - return x; - } else { - var n = loadNodeModulesSync(x, absoluteStart); - if (n) return maybeRealpathSync(realpathSync, n, opts); - } - - var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - - function loadAsFileSync(x) { - var pkg = loadpkg(path.dirname(x)); - - if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { - var rfile = path.relative(pkg.dir, x); - var r = opts.pathFilter(pkg.pkg, x, rfile); - if (r) { - x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign - } - } - - if (isFile(x)) { - return x; - } - - for (var i = 0; i < extensions.length; i++) { - var file = x + extensions[i]; - if (isFile(file)) { - return file; - } - } - } - - function loadpkg(dir) { - if (dir === '' || dir === '/') return; - if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) { - return; - } - if ((/[/\\]node_modules[/\\]*$/).test(dir)) return; - - var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), 'package.json'); - - if (!isFile(pkgfile)) { - return loadpkg(path.dirname(dir)); - } - - var body = readFileSync(pkgfile); - - try { - var pkg = JSON.parse(body); - } catch (jsonErr) {} - - if (pkg && opts.packageFilter) { - // v2 will pass pkgfile - pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment - } - - return { pkg: pkg, dir: dir }; - } - - function loadAsDirectorySync(x) { - var pkgfile = path.join(maybeRealpathSync(realpathSync, x, opts), '/package.json'); - if (isFile(pkgfile)) { - try { - var body = readFileSync(pkgfile, 'UTF8'); - var pkg = JSON.parse(body); - } catch (e) {} - - if (pkg && opts.packageFilter) { - // v2 will pass pkgfile - pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment - } - - if (pkg && pkg.main) { - if (typeof pkg.main !== 'string') { - var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); - mainError.code = 'INVALID_PACKAGE_MAIN'; - throw mainError; - } - if (pkg.main === '.' || pkg.main === './') { - pkg.main = 'index'; - } - try { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - var n = loadAsDirectorySync(path.resolve(x, pkg.main)); - if (n) return n; - } catch (e) {} - } - } - - return loadAsFileSync(path.join(x, '/index')); - } - - function loadNodeModulesSync(x, start) { - var thunk = function () { return getPackageCandidates(x, start, opts); }; - var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk(); - - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - if (isDirectory(path.dirname(dir))) { - var m = loadAsFileSync(dir); - if (m) return m; - var n = loadAsDirectorySync(dir); - if (n) return n; - } - } - } -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/package.json deleted file mode 100644 index d895eda5cb..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "resolve", - "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", - "version": "1.17.0", - "repository": { - "type": "git", - "url": "git://github.com/browserify/resolve.git" - }, - "main": "index.js", - "keywords": [ - "resolve", - "require", - "node", - "module" - ], - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint .", - "pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async", - "tests-only": "tape test/*.js", - "pretest": "npm run lint", - "test": "npm run --silent tests-only", - "posttest": "npm run test:multirepo", - "test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test" - }, - "devDependencies": { - "@ljharb/eslint-config": "^16.0.0", - "array.prototype.map": "^1.0.2", - "eslint": "^6.8.0", - "object-keys": "^1.1.1", - "safe-publish-latest": "^1.1.4", - "tap": "0.4.13", - "tape": "^5.0.0-next.5" - }, - "license": "MIT", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "dependencies": { - "path-parse": "^1.0.6" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/readme.markdown b/node_modules/eslint-plugin-import/node_modules/resolve/readme.markdown deleted file mode 100644 index 5e1aea3317..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/readme.markdown +++ /dev/null @@ -1,242 +0,0 @@ -# resolve - -implements the [node `require.resolve()` -algorithm](https://nodejs.org/api/modules.html#modules_all_together) -such that you can `require.resolve()` on behalf of a file asynchronously and -synchronously - -[![build status](https://secure.travis-ci.org/browserify/resolve.png)](http://travis-ci.org/browserify/resolve) - -# example - -asynchronously resolve: - -```js -var resolve = require('resolve'); -resolve('tap', { basedir: __dirname }, function (err, res) { - if (err) console.error(err); - else console.log(res); -}); -``` - -``` -$ node example/async.js -/home/substack/projects/node-resolve/node_modules/tap/lib/main.js -``` - -synchronously resolve: - -```js -var resolve = require('resolve'); -var res = resolve.sync('tap', { basedir: __dirname }); -console.log(res); -``` - -``` -$ node example/sync.js -/home/substack/projects/node-resolve/node_modules/tap/lib/main.js -``` - -# methods - -```js -var resolve = require('resolve'); -``` - -## resolve(id, opts={}, cb) - -Asynchronously resolve the module path string `id` into `cb(err, res [, pkg])`, where `pkg` (if defined) is the data from `package.json`. - -options are: - -* opts.basedir - directory to begin resolving from - -* opts.package - `package.json` data applicable to the module being loaded - -* opts.extensions - array of file extensions to search in order - -* opts.readFile - how to read files asynchronously - -* opts.isFile - function to asynchronously test whether a file exists - -* opts.isDirectory - function to asynchronously test whether a directory exists - -* opts.realpath - function to asynchronously resolve a potential symlink to its real path - -* `opts.packageFilter(pkg, pkgfile, dir)` - transform the parsed package.json contents before looking at the "main" field - * pkg - package data - * pkgfile - path to package.json - * dir - directory for package.json - -* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package - * pkg - package data - * path - the path being resolved - * relativePath - the path relative from the package.json location - * returns - a relative path that will be joined from the package.json location - -* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this) - - For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function - * request - the import specifier being resolved - * start - lookup path - * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution - * opts - the resolution options - -* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this) - * request - the import specifier being resolved - * start - lookup path - * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution - * opts - the resolution options - -* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` - -* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. -This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag. -**Note:** this property is currently `true` by default but it will be changed to -`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*. - -default `opts` values: - -```js -{ - paths: [], - basedir: __dirname, - extensions: ['.js'], - readFile: fs.readFile, - isFile: function isFile(file, cb) { - fs.stat(file, function (err, stat) { - if (!err) { - return cb(null, stat.isFile() || stat.isFIFO()); - } - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); - }); - }, - isDirectory: function isDirectory(dir, cb) { - fs.stat(dir, function (err, stat) { - if (!err) { - return cb(null, stat.isDirectory()); - } - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); - }); - }, - realpath: function realpath(file, cb) { - var realpath = typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; - realpath(file, function (realPathErr, realPath) { - if (realPathErr && realPathErr.code !== 'ENOENT') cb(realPathErr); - else cb(null, realPathErr ? file : realPath); - }); - }, - moduleDirectory: 'node_modules', - preserveSymlinks: true -} -``` - -## resolve.sync(id, opts) - -Synchronously resolve the module path string `id`, returning the result and -throwing an error when `id` can't be resolved. - -options are: - -* opts.basedir - directory to begin resolving from - -* opts.extensions - array of file extensions to search in order - -* opts.readFile - how to read files synchronously - -* opts.isFile - function to synchronously test whether a file exists - -* opts.isDirectory - function to synchronously test whether a directory exists - -* opts.realpathSync - function to synchronously resolve a potential symlink to its real path - -* `opts.packageFilter(pkg, dir)` - transform the parsed package.json contents before looking at the "main" field - * pkg - package data - * dir - directory for package.json (Note: the second argument will change to "pkgfile" in v2) - -* `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package - * pkg - package data - * path - the path being resolved - * relativePath - the path relative from the package.json location - * returns - a relative path that will be joined from the package.json location - -* opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this) - - For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function - * request - the import specifier being resolved - * start - lookup path - * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution - * opts - the resolution options - -* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this) - * request - the import specifier being resolved - * start - lookup path - * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution - * opts - the resolution options - -* opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` - -* opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. -This is the way Node resolves dependencies when executed with the [--preserve-symlinks](https://nodejs.org/api/all.html#cli_preserve_symlinks) flag. -**Note:** this property is currently `true` by default but it will be changed to -`false` in the next major version because *Node's resolution algorithm does not preserve symlinks by default*. - -default `opts` values: - -```js -{ - paths: [], - basedir: __dirname, - extensions: ['.js'], - readFileSync: fs.readFileSync, - isFile: function isFile(file) { - try { - var stat = fs.statSync(file); - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; - throw e; - } - return stat.isFile() || stat.isFIFO(); - }, - isDirectory: function isDirectory(dir) { - try { - var stat = fs.statSync(dir); - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; - throw e; - } - return stat.isDirectory(); - }, - realpathSync: function realpathSync(file) { - try { - var realpath = typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; - return realpath(file); - } catch (realPathErr) { - if (realPathErr.code !== 'ENOENT') { - throw realPathErr; - } - } - return file; - }, - moduleDirectory: 'node_modules', - preserveSymlinks: true -} -``` - -## resolve.isCore(pkg) - -Return whether a package is in core. - -# install - -With [npm](https://npmjs.org) do: - -```sh -npm install resolve -``` - -# license - -MIT diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/.eslintrc b/node_modules/eslint-plugin-import/node_modules/resolve/test/.eslintrc deleted file mode 100644 index ddd262df50..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "max-lines": 0 - } -} diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/core.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/core.js deleted file mode 100644 index 4c111e1dde..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/core.js +++ /dev/null @@ -1,85 +0,0 @@ -var test = require('tape'); -var keys = require('object-keys'); -var resolve = require('../'); - -test('core modules', function (t) { - t.test('isCore()', function (st) { - st.ok(resolve.isCore('fs')); - st.ok(resolve.isCore('net')); - st.ok(resolve.isCore('http')); - - st.ok(!resolve.isCore('seq')); - st.ok(!resolve.isCore('../')); - - st.ok(!resolve.isCore('toString')); - - st.end(); - }); - - t.test('core list', function (st) { - var cores = keys(resolve.core); - st.plan(cores.length); - - for (var i = 0; i < cores.length; ++i) { - var mod = cores[i]; - if (resolve.core[mod]) { - st.doesNotThrow( - function () { require(mod); }, // eslint-disable-line no-loop-func - mod + ' supported; requiring does not throw' - ); - } else { - st.throws( - function () { require(mod); }, // eslint-disable-line no-loop-func - mod + ' not supported; requiring throws' - ); - } - } - - st.end(); - }); - - t.test('core via repl module', { skip: !resolve.core.repl }, function (st) { - var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle - if (!libs) { - st.skip('module.builtinModules does not exist'); - return st.end(); - } - for (var i = 0; i < libs.length; ++i) { - var mod = libs[i]; - st.ok(resolve.core[mod], mod + ' is a core module'); - st.doesNotThrow( - function () { require(mod); }, // eslint-disable-line no-loop-func - 'requiring ' + mod + ' does not throw' - ); - } - st.end(); - }); - - t.test('core via builtinModules list', { skip: !resolve.core.module }, function (st) { - var libs = require('module').builtinModules; - if (!libs) { - st.skip('module.builtinModules does not exist'); - return st.end(); - } - var blacklist = [ - '_debug_agent', - 'v8/tools/tickprocessor-driver', - 'v8/tools/SourceMap', - 'v8/tools/tickprocessor', - 'v8/tools/profile' - ]; - for (var i = 0; i < libs.length; ++i) { - var mod = libs[i]; - if (blacklist.indexOf(mod) === -1) { - st.ok(resolve.core[mod], mod + ' is a core module'); - st.doesNotThrow( - function () { require(mod); }, // eslint-disable-line no-loop-func - 'requiring ' + mod + ' does not throw' - ); - } - } - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot.js deleted file mode 100644 index 30806659be..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot.js +++ /dev/null @@ -1,29 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('dotdot', function (t) { - t.plan(4); - var dir = path.join(__dirname, '/dotdot/abc'); - - resolve('..', { basedir: dir }, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(__dirname, 'dotdot/index.js')); - }); - - resolve('.', { basedir: dir }, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, 'index.js')); - }); -}); - -test('dotdot sync', function (t) { - t.plan(2); - var dir = path.join(__dirname, '/dotdot/abc'); - - var a = resolve.sync('..', { basedir: dir }); - t.equal(a, path.join(__dirname, 'dotdot/index.js')); - - var b = resolve.sync('.', { basedir: dir }); - t.equal(b, path.join(dir, 'index.js')); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/abc/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/abc/index.js deleted file mode 100644 index 67f2534ebf..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/abc/index.js +++ /dev/null @@ -1,2 +0,0 @@ -var x = require('..'); -console.log(x); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/index.js deleted file mode 100644 index 643f9fcc6a..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/dotdot/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'whatever'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/faulty_basedir.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/faulty_basedir.js deleted file mode 100644 index 5f2141a672..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/faulty_basedir.js +++ /dev/null @@ -1,29 +0,0 @@ -var test = require('tape'); -var path = require('path'); -var resolve = require('../'); - -test('faulty basedir must produce error in windows', { skip: process.platform !== 'win32' }, function (t) { - t.plan(1); - - var resolverDir = 'C:\\a\\b\\c\\d'; - - resolve('tape/lib/test.js', { basedir: resolverDir }, function (err, res, pkg) { - t.equal(!!err, true); - }); -}); - -test('non-existent basedir should not throw when preserveSymlinks is false', function (t) { - t.plan(2); - - var opts = { - basedir: path.join(path.sep, 'unreal', 'path', 'that', 'does', 'not', 'exist'), - preserveSymlinks: false - }; - - var module = './dotdot/abc'; - - resolve(module, opts, function (err, res) { - t.equal(err.code, 'MODULE_NOT_FOUND'); - t.equal(res, undefined); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/filter.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/filter.js deleted file mode 100644 index 8f8cccdb2f..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/filter.js +++ /dev/null @@ -1,34 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('filter', function (t) { - t.plan(4); - var dir = path.join(__dirname, 'resolver'); - var packageFilterArgs; - resolve('./baz', { - basedir: dir, - packageFilter: function (pkg, pkgfile) { - pkg.main = 'doom'; // eslint-disable-line no-param-reassign - packageFilterArgs = [pkg, pkgfile]; - return pkg; - } - }, function (err, res, pkg) { - if (err) t.fail(err); - - t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works'); - - var packageData = packageFilterArgs[0]; - t.equal(pkg, packageData, 'first packageFilter argument is "pkg"'); - t.equal(packageData.main, 'doom', 'package "main" was altered'); - - var packageFile = packageFilterArgs[1]; - t.equal( - packageFile, - path.join(dir, 'baz/package.json'), - 'second packageFilter argument is "pkgfile"' - ); - - t.end(); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/filter_sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/filter_sync.js deleted file mode 100644 index 8a43b98189..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/filter_sync.js +++ /dev/null @@ -1,33 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('filter', function (t) { - var dir = path.join(__dirname, 'resolver'); - var packageFilterArgs; - var res = resolve.sync('./baz', { - basedir: dir, - // NOTE: in v2.x, this will be `pkg, pkgfile, dir`, but must remain "broken" here in v1.x for compatibility - packageFilter: function (pkg, /*pkgfile,*/ dir) { // eslint-disable-line spaced-comment - pkg.main = 'doom'; // eslint-disable-line no-param-reassign - packageFilterArgs = 'is 1.x' ? [pkg, dir] : [pkg, pkgfile, dir]; // eslint-disable-line no-constant-condition, no-undef - return pkg; - } - }); - - t.equal(res, path.join(dir, 'baz/doom.js'), 'changing the package "main" works'); - - var packageData = packageFilterArgs[0]; - t.equal(packageData.main, 'doom', 'package "main" was altered'); - - if (!'is 1.x') { // eslint-disable-line no-constant-condition - var packageFile = packageFilterArgs[1]; - t.equal(packageFile, path.join(dir, 'baz', 'package.json'), 'package.json path is correct'); - } - - var packageDir = packageFilterArgs['is 1.x' ? 1 : 2]; // eslint-disable-line no-constant-condition - // eslint-disable-next-line no-constant-condition - t.equal(packageDir, path.join(dir, 'baz'), ('is 1.x' ? 'second' : 'third') + ' packageFilter argument is "dir"'); - - t.end(); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/mock.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/mock.js deleted file mode 100644 index b9f17fe238..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/mock.js +++ /dev/null @@ -1,239 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('mock', function (t) { - t.plan(8); - - var files = {}; - files[path.resolve('/foo/bar/baz.js')] = 'beep'; - - var dirs = {}; - dirs[path.resolve('/foo/bar')] = true; - - function opts(basedir) { - return { - basedir: path.resolve(basedir), - isFile: function (file, cb) { - cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); - }, - isDirectory: function (dir, cb) { - cb(null, !!dirs[path.resolve(dir)]); - }, - readFile: function (file, cb) { - cb(null, files[path.resolve(file)]); - }, - realpath: function (file, cb) { - cb(null, file); - } - }; - } - - resolve('./baz', opts('/foo/bar'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/bar/baz.js')); - t.equal(pkg, undefined); - }); - - resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/bar/baz.js')); - t.equal(pkg, undefined); - }); - - resolve('baz', opts('/foo/bar'), function (err, res) { - t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); - - resolve('../baz', opts('/foo/bar'), function (err, res) { - t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); -}); - -test('mock from package', function (t) { - t.plan(8); - - var files = {}; - files[path.resolve('/foo/bar/baz.js')] = 'beep'; - - var dirs = {}; - dirs[path.resolve('/foo/bar')] = true; - - function opts(basedir) { - return { - basedir: path.resolve(basedir), - isFile: function (file, cb) { - cb(null, Object.prototype.hasOwnProperty.call(files, file)); - }, - isDirectory: function (dir, cb) { - cb(null, !!dirs[path.resolve(dir)]); - }, - 'package': { main: 'bar' }, - readFile: function (file, cb) { - cb(null, files[file]); - }, - realpath: function (file, cb) { - cb(null, file); - } - }; - } - - resolve('./baz', opts('/foo/bar'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/bar/baz.js')); - t.equal(pkg && pkg.main, 'bar'); - }); - - resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/bar/baz.js')); - t.equal(pkg && pkg.main, 'bar'); - }); - - resolve('baz', opts('/foo/bar'), function (err, res) { - t.equal(err.message, "Cannot find module 'baz' from '" + path.resolve('/foo/bar') + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); - - resolve('../baz', opts('/foo/bar'), function (err, res) { - t.equal(err.message, "Cannot find module '../baz' from '" + path.resolve('/foo/bar') + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); -}); - -test('mock package', function (t) { - t.plan(2); - - var files = {}; - files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep'; - files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({ - main: './baz.js' - }); - - var dirs = {}; - dirs[path.resolve('/foo')] = true; - dirs[path.resolve('/foo/node_modules')] = true; - - function opts(basedir) { - return { - basedir: path.resolve(basedir), - isFile: function (file, cb) { - cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); - }, - isDirectory: function (dir, cb) { - cb(null, !!dirs[path.resolve(dir)]); - }, - readFile: function (file, cb) { - cb(null, files[path.resolve(file)]); - }, - realpath: function (file, cb) { - cb(null, file); - } - }; - } - - resolve('bar', opts('/foo'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/node_modules/bar/baz.js')); - t.equal(pkg && pkg.main, './baz.js'); - }); -}); - -test('mock package from package', function (t) { - t.plan(2); - - var files = {}; - files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep'; - files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({ - main: './baz.js' - }); - - var dirs = {}; - dirs[path.resolve('/foo')] = true; - dirs[path.resolve('/foo/node_modules')] = true; - - function opts(basedir) { - return { - basedir: path.resolve(basedir), - isFile: function (file, cb) { - cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); - }, - isDirectory: function (dir, cb) { - cb(null, !!dirs[path.resolve(dir)]); - }, - 'package': { main: 'bar' }, - readFile: function (file, cb) { - cb(null, files[path.resolve(file)]); - }, - realpath: function (file, cb) { - cb(null, file); - } - }; - } - - resolve('bar', opts('/foo'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/node_modules/bar/baz.js')); - t.equal(pkg && pkg.main, './baz.js'); - }); -}); - -test('symlinked', function (t) { - t.plan(4); - - var files = {}; - files[path.resolve('/foo/bar/baz.js')] = 'beep'; - files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep'; - - var dirs = {}; - dirs[path.resolve('/foo/bar')] = true; - dirs[path.resolve('/foo/bar/symlinked')] = true; - - function opts(basedir) { - return { - preserveSymlinks: false, - basedir: path.resolve(basedir), - isFile: function (file, cb) { - cb(null, Object.prototype.hasOwnProperty.call(files, path.resolve(file))); - }, - isDirectory: function (dir, cb) { - cb(null, !!dirs[path.resolve(dir)]); - }, - readFile: function (file, cb) { - cb(null, files[path.resolve(file)]); - }, - realpath: function (file, cb) { - var resolved = path.resolve(file); - - if (resolved.indexOf('symlinked') >= 0) { - cb(null, resolved); - return; - } - - var ext = path.extname(resolved); - - if (ext) { - var dir = path.dirname(resolved); - var base = path.basename(resolved); - cb(null, path.join(dir, 'symlinked', base)); - } else { - cb(null, path.join(resolved, 'symlinked')); - } - } - }; - } - - resolve('./baz', opts('/foo/bar'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/bar/symlinked/baz.js')); - t.equal(pkg, undefined); - }); - - resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) { - if (err) return t.fail(err); - t.equal(res, path.resolve('/foo/bar/symlinked/baz.js')); - t.equal(pkg, undefined); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/mock_sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/mock_sync.js deleted file mode 100644 index fcf811444a..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/mock_sync.js +++ /dev/null @@ -1,141 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('mock', function (t) { - t.plan(4); - - var files = {}; - files[path.resolve('/foo/bar/baz.js')] = 'beep'; - - var dirs = {}; - dirs[path.resolve('/foo/bar')] = true; - - function opts(basedir) { - return { - basedir: path.resolve(basedir), - isFile: function (file) { - return Object.prototype.hasOwnProperty.call(files, path.resolve(file)); - }, - isDirectory: function (dir) { - return !!dirs[path.resolve(dir)]; - }, - readFileSync: function (file) { - return files[path.resolve(file)]; - }, - realpathSync: function (file) { - return file; - } - }; - } - - t.equal( - resolve.sync('./baz', opts('/foo/bar')), - path.resolve('/foo/bar/baz.js') - ); - - t.equal( - resolve.sync('./baz.js', opts('/foo/bar')), - path.resolve('/foo/bar/baz.js') - ); - - t.throws(function () { - resolve.sync('baz', opts('/foo/bar')); - }); - - t.throws(function () { - resolve.sync('../baz', opts('/foo/bar')); - }); -}); - -test('mock package', function (t) { - t.plan(1); - - var files = {}; - files[path.resolve('/foo/node_modules/bar/baz.js')] = 'beep'; - files[path.resolve('/foo/node_modules/bar/package.json')] = JSON.stringify({ - main: './baz.js' - }); - - var dirs = {}; - dirs[path.resolve('/foo')] = true; - dirs[path.resolve('/foo/node_modules')] = true; - - function opts(basedir) { - return { - basedir: path.resolve(basedir), - isFile: function (file) { - return Object.prototype.hasOwnProperty.call(files, path.resolve(file)); - }, - isDirectory: function (dir) { - return !!dirs[path.resolve(dir)]; - }, - readFileSync: function (file) { - return files[path.resolve(file)]; - }, - realpathSync: function (file) { - return file; - } - }; - } - - t.equal( - resolve.sync('bar', opts('/foo')), - path.resolve('/foo/node_modules/bar/baz.js') - ); -}); - -test('symlinked', function (t) { - t.plan(2); - - var files = {}; - files[path.resolve('/foo/bar/baz.js')] = 'beep'; - files[path.resolve('/foo/bar/symlinked/baz.js')] = 'beep'; - - var dirs = {}; - dirs[path.resolve('/foo/bar')] = true; - dirs[path.resolve('/foo/bar/symlinked')] = true; - - function opts(basedir) { - return { - preserveSymlinks: false, - basedir: path.resolve(basedir), - isFile: function (file) { - return Object.prototype.hasOwnProperty.call(files, path.resolve(file)); - }, - isDirectory: function (dir) { - return !!dirs[path.resolve(dir)]; - }, - readFileSync: function (file) { - return files[path.resolve(file)]; - }, - realpathSync: function (file) { - var resolved = path.resolve(file); - - if (resolved.indexOf('symlinked') >= 0) { - return resolved; - } - - var ext = path.extname(resolved); - - if (ext) { - var dir = path.dirname(resolved); - var base = path.basename(resolved); - return path.join(dir, 'symlinked', base); - } else { - return path.join(resolved, 'symlinked'); - } - } - }; - } - - t.equal( - resolve.sync('./baz', opts('/foo/bar')), - path.resolve('/foo/bar/symlinked/baz.js') - ); - - t.equal( - resolve.sync('./baz.js', opts('/foo/bar')), - path.resolve('/foo/bar/symlinked/baz.js') - ); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir.js deleted file mode 100644 index b50e5bb175..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir.js +++ /dev/null @@ -1,56 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('moduleDirectory strings', function (t) { - t.plan(4); - var dir = path.join(__dirname, 'module_dir'); - var xopts = { - basedir: dir, - moduleDirectory: 'xmodules' - }; - resolve('aaa', xopts, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, '/xmodules/aaa/index.js')); - }); - - var yopts = { - basedir: dir, - moduleDirectory: 'ymodules' - }; - resolve('aaa', yopts, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, '/ymodules/aaa/index.js')); - }); -}); - -test('moduleDirectory array', function (t) { - t.plan(6); - var dir = path.join(__dirname, 'module_dir'); - var aopts = { - basedir: dir, - moduleDirectory: ['xmodules', 'ymodules', 'zmodules'] - }; - resolve('aaa', aopts, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, '/xmodules/aaa/index.js')); - }); - - var bopts = { - basedir: dir, - moduleDirectory: ['zmodules', 'ymodules', 'xmodules'] - }; - resolve('aaa', bopts, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, '/ymodules/aaa/index.js')); - }); - - var copts = { - basedir: dir, - moduleDirectory: ['xmodules', 'ymodules', 'zmodules'] - }; - resolve('bbb', copts, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, '/zmodules/bbb/main.js')); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/xmodules/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/xmodules/aaa/index.js deleted file mode 100644 index dd7cf7b2d0..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/xmodules/aaa/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = function (x) { return x * 100; }; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/ymodules/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/ymodules/aaa/index.js deleted file mode 100644 index ef2d4d4bf7..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/ymodules/aaa/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = function (x) { return x + 100; }; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/main.js deleted file mode 100644 index e8ba629936..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/main.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = function (n) { return n * 111; }; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/package.json deleted file mode 100644 index a60376465b..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/module_dir/zmodules/bbb/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "main.js" -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node-modules-paths.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node-modules-paths.js deleted file mode 100644 index 675441db2c..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/node-modules-paths.js +++ /dev/null @@ -1,143 +0,0 @@ -var test = require('tape'); -var path = require('path'); -var parse = path.parse || require('path-parse'); -var keys = require('object-keys'); - -var nodeModulesPaths = require('../lib/node-modules-paths'); - -var verifyDirs = function verifyDirs(t, start, dirs, moduleDirectories, paths) { - var moduleDirs = [].concat(moduleDirectories || 'node_modules'); - if (paths) { - for (var k = 0; k < paths.length; ++k) { - moduleDirs.push(path.basename(paths[k])); - } - } - - var foundModuleDirs = {}; - var uniqueDirs = {}; - var parsedDirs = {}; - for (var i = 0; i < dirs.length; ++i) { - var parsed = parse(dirs[i]); - if (!foundModuleDirs[parsed.base]) { foundModuleDirs[parsed.base] = 0; } - foundModuleDirs[parsed.base] += 1; - parsedDirs[parsed.dir] = true; - uniqueDirs[dirs[i]] = true; - } - t.equal(keys(parsedDirs).length >= start.split(path.sep).length, true, 'there are >= dirs than "start" has'); - var foundModuleDirNames = keys(foundModuleDirs); - t.deepEqual(foundModuleDirNames, moduleDirs, 'all desired module dirs were found'); - t.equal(keys(uniqueDirs).length, dirs.length, 'all dirs provided were unique'); - - var counts = {}; - for (var j = 0; j < foundModuleDirNames.length; ++j) { - counts[foundModuleDirs[j]] = true; - } - t.equal(keys(counts).length, 1, 'all found module directories had the same count'); -}; - -test('node-modules-paths', function (t) { - t.test('no options', function (t) { - var start = path.join(__dirname, 'resolver'); - var dirs = nodeModulesPaths(start); - - verifyDirs(t, start, dirs); - - t.end(); - }); - - t.test('empty options', function (t) { - var start = path.join(__dirname, 'resolver'); - var dirs = nodeModulesPaths(start, {}); - - verifyDirs(t, start, dirs); - - t.end(); - }); - - t.test('with paths=array option', function (t) { - var start = path.join(__dirname, 'resolver'); - var paths = ['a', 'b']; - var dirs = nodeModulesPaths(start, { paths: paths }); - - verifyDirs(t, start, dirs, null, paths); - - t.end(); - }); - - t.test('with paths=function option', function (t) { - var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) { - return getNodeModulesDirs().concat(path.join(absoluteStart, 'not node modules', request)); - }; - - var start = path.join(__dirname, 'resolver'); - var dirs = nodeModulesPaths(start, { paths: paths }, 'pkg'); - - verifyDirs(t, start, dirs, null, [path.join(start, 'not node modules', 'pkg')]); - - t.end(); - }); - - t.test('with paths=function skipping node modules resolution', function (t) { - var paths = function paths(request, absoluteStart, getNodeModulesDirs, opts) { - return []; - }; - var start = path.join(__dirname, 'resolver'); - var dirs = nodeModulesPaths(start, { paths: paths }); - t.deepEqual(dirs, [], 'no node_modules was computed'); - t.end(); - }); - - t.test('with moduleDirectory option', function (t) { - var start = path.join(__dirname, 'resolver'); - var moduleDirectory = 'not node modules'; - var dirs = nodeModulesPaths(start, { moduleDirectory: moduleDirectory }); - - verifyDirs(t, start, dirs, moduleDirectory); - - t.end(); - }); - - t.test('with 1 moduleDirectory and paths options', function (t) { - var start = path.join(__dirname, 'resolver'); - var paths = ['a', 'b']; - var moduleDirectory = 'not node modules'; - var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectory }); - - verifyDirs(t, start, dirs, moduleDirectory, paths); - - t.end(); - }); - - t.test('with 1+ moduleDirectory and paths options', function (t) { - var start = path.join(__dirname, 'resolver'); - var paths = ['a', 'b']; - var moduleDirectories = ['not node modules', 'other modules']; - var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories }); - - verifyDirs(t, start, dirs, moduleDirectories, paths); - - t.end(); - }); - - t.test('combine paths correctly on Windows', function (t) { - var start = 'C:\\Users\\username\\myProject\\src'; - var paths = []; - var moduleDirectories = ['node_modules', start]; - var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories }); - - t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir'); - - t.end(); - }); - - t.test('combine paths correctly on non-Windows', { skip: process.platform === 'win32' }, function (t) { - var start = '/Users/username/git/myProject/src'; - var paths = []; - var moduleDirectories = ['node_modules', '/Users/username/git/myProject/src']; - var dirs = nodeModulesPaths(start, { paths: paths, moduleDirectory: moduleDirectories }); - - t.equal(dirs.indexOf(path.resolve(start)) > -1, true, 'should contain start dir'); - - t.end(); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path.js deleted file mode 100644 index d06aa4eafe..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path.js +++ /dev/null @@ -1,70 +0,0 @@ -var fs = require('fs'); -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('$NODE_PATH', function (t) { - t.plan(8); - - var isDir = function (dir, cb) { - if (dir === '/node_path' || dir === 'node_path/x') { - return cb(null, true); - } - fs.stat(dir, function (err, stat) { - if (!err) { - return cb(null, stat.isDirectory()); - } - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); - }); - }; - - resolve('aaa', { - paths: [ - path.join(__dirname, '/node_path/x'), - path.join(__dirname, '/node_path/y') - ], - basedir: __dirname, - isDirectory: isDir - }, function (err, res) { - t.error(err); - t.equal(res, path.join(__dirname, '/node_path/x/aaa/index.js'), 'aaa resolves'); - }); - - resolve('bbb', { - paths: [ - path.join(__dirname, '/node_path/x'), - path.join(__dirname, '/node_path/y') - ], - basedir: __dirname, - isDirectory: isDir - }, function (err, res) { - t.error(err); - t.equal(res, path.join(__dirname, '/node_path/y/bbb/index.js'), 'bbb resolves'); - }); - - resolve('ccc', { - paths: [ - path.join(__dirname, '/node_path/x'), - path.join(__dirname, '/node_path/y') - ], - basedir: __dirname, - isDirectory: isDir - }, function (err, res) { - t.error(err); - t.equal(res, path.join(__dirname, '/node_path/x/ccc/index.js'), 'ccc resolves'); - }); - - // ensure that relative paths still resolve against the regular `node_modules` correctly - resolve('tap', { - paths: [ - 'node_path' - ], - basedir: path.join(__dirname, 'node_path/x'), - isDirectory: isDir - }, function (err, res) { - var root = require('tap/package.json').main; - t.error(err); - t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves'); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/aaa/index.js deleted file mode 100644 index ad70d0bb03..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/aaa/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'A'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/ccc/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/ccc/index.js deleted file mode 100644 index a64132e4c7..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/x/ccc/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'C'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/bbb/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/bbb/index.js deleted file mode 100644 index 4d0f32e243..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/bbb/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'B'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/ccc/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/ccc/index.js deleted file mode 100644 index 793315e846..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/node_path/y/ccc/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'CY'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/nonstring.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/nonstring.js deleted file mode 100644 index ef63c40f93..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/nonstring.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = require('tape'); -var resolve = require('../'); - -test('nonstring', function (t) { - t.plan(1); - resolve(555, function (err, res, pkg) { - t.ok(err); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter.js deleted file mode 100644 index 16519aeae5..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter.js +++ /dev/null @@ -1,75 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -var resolverDir = path.join(__dirname, '/pathfilter/deep_ref'); - -var pathFilterFactory = function (t) { - return function (pkg, x, remainder) { - t.equal(pkg.version, '1.2.3'); - t.equal(x, path.join(resolverDir, 'node_modules/deep/ref')); - t.equal(remainder, 'ref'); - return 'alt'; - }; -}; - -test('#62: deep module references and the pathFilter', function (t) { - t.test('deep/ref.js', function (st) { - st.plan(3); - - resolve('deep/ref', { basedir: resolverDir }, function (err, res, pkg) { - if (err) st.fail(err); - - st.equal(pkg.version, '1.2.3'); - st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); - }); - - var res = resolve.sync('deep/ref', { basedir: resolverDir }); - st.equal(res, path.join(resolverDir, 'node_modules/deep/ref.js')); - }); - - t.test('deep/deeper/ref', function (st) { - st.plan(4); - - resolve( - 'deep/deeper/ref', - { basedir: resolverDir }, - function (err, res, pkg) { - if (err) t.fail(err); - st.notEqual(pkg, undefined); - st.equal(pkg.version, '1.2.3'); - st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); - } - ); - - var res = resolve.sync( - 'deep/deeper/ref', - { basedir: resolverDir } - ); - st.equal(res, path.join(resolverDir, 'node_modules/deep/deeper/ref.js')); - }); - - t.test('deep/ref alt', function (st) { - st.plan(8); - - var pathFilter = pathFilterFactory(st); - - var res = resolve.sync( - 'deep/ref', - { basedir: resolverDir, pathFilter: pathFilter } - ); - st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); - - resolve( - 'deep/ref', - { basedir: resolverDir, pathFilter: pathFilter }, - function (err, res, pkg) { - if (err) st.fail(err); - st.equal(res, path.join(resolverDir, 'node_modules/deep/alt.js')); - st.end(); - } - ); - }); - - t.end(); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter/deep_ref/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/pathfilter/deep_ref/main.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence.js deleted file mode 100644 index 2febb598fb..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence.js +++ /dev/null @@ -1,23 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('precedence', function (t) { - t.plan(3); - var dir = path.join(__dirname, 'precedence/aaa'); - - resolve('./', { basedir: dir }, function (err, res, pkg) { - t.ifError(err); - t.equal(res, path.join(dir, 'index.js')); - t.equal(pkg.name, 'resolve'); - }); -}); - -test('./ should not load ${dir}.js', function (t) { // eslint-disable-line no-template-curly-in-string - t.plan(1); - var dir = path.join(__dirname, 'precedence/bbb'); - - resolve('./', { basedir: dir }, function (err, res, pkg) { - t.ok(err); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa.js deleted file mode 100644 index b83a3e7ad9..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'wtf'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/index.js deleted file mode 100644 index e0f8f6abf7..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'okok'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/main.js deleted file mode 100644 index 93542a965e..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/aaa/main.js +++ /dev/null @@ -1 +0,0 @@ -console.log(require('./')); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb.js deleted file mode 100644 index 2298f47fdd..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = '>_<'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb/main.js deleted file mode 100644 index 716b81d4bd..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/precedence/bbb/main.js +++ /dev/null @@ -1 +0,0 @@ -console.log(require('./')); // should throw diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver.js deleted file mode 100644 index aa36ee1149..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver.js +++ /dev/null @@ -1,450 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('async foo', function (t) { - t.plan(12); - var dir = path.join(__dirname, 'resolver'); - - resolve('./foo', { basedir: dir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'foo.js')); - t.equal(pkg && pkg.name, 'resolve'); - }); - - resolve('./foo.js', { basedir: dir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'foo.js')); - t.equal(pkg && pkg.name, 'resolve'); - }); - - resolve('./foo', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'foo.js')); - t.equal(pkg && pkg.main, 'resolver'); - }); - - resolve('./foo.js', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'foo.js')); - t.equal(pkg.main, 'resolver'); - }); - - resolve('./foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'foo.js')); - }); - - resolve('foo', { basedir: dir }, function (err) { - t.equal(err.message, "Cannot find module 'foo' from '" + path.resolve(dir) + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); - - // Test that filename is reported as the "from" value when passed. - resolve('foo', { basedir: dir, filename: path.join(dir, 'baz.js') }, function (err) { - t.equal(err.message, "Cannot find module 'foo' from '" + path.join(dir, 'baz.js') + "'"); - }); -}); - -test('bar', function (t) { - t.plan(6); - var dir = path.join(__dirname, 'resolver'); - - resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); - t.equal(pkg, undefined); - }); - - resolve('foo', { basedir: dir + '/bar' }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); - t.equal(pkg, undefined); - }); - - resolve('foo', { basedir: dir + '/bar', 'package': { main: 'bar' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'bar/node_modules/foo/index.js')); - t.equal(pkg.main, 'bar'); - }); -}); - -test('baz', function (t) { - t.plan(4); - var dir = path.join(__dirname, 'resolver'); - - resolve('./baz', { basedir: dir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'baz/quux.js')); - t.equal(pkg.main, 'quux.js'); - }); - - resolve('./baz', { basedir: dir, 'package': { main: 'resolver' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'baz/quux.js')); - t.equal(pkg.main, 'quux.js'); - }); -}); - -test('biz', function (t) { - t.plan(24); - var dir = path.join(__dirname, 'resolver/biz/node_modules'); - - resolve('./grux', { basedir: dir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'grux/index.js')); - t.equal(pkg, undefined); - }); - - resolve('./grux', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'grux/index.js')); - t.equal(pkg.main, 'biz'); - }); - - resolve('./garply', { basedir: dir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'garply/lib/index.js')); - t.equal(pkg.main, './lib'); - }); - - resolve('./garply', { basedir: dir, 'package': { main: 'biz' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'garply/lib/index.js')); - t.equal(pkg.main, './lib'); - }); - - resolve('tiv', { basedir: dir + '/grux' }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'tiv/index.js')); - t.equal(pkg, undefined); - }); - - resolve('tiv', { basedir: dir + '/grux', 'package': { main: 'grux' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'tiv/index.js')); - t.equal(pkg.main, 'grux'); - }); - - resolve('tiv', { basedir: dir + '/garply' }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'tiv/index.js')); - t.equal(pkg, undefined); - }); - - resolve('tiv', { basedir: dir + '/garply', 'package': { main: './lib' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'tiv/index.js')); - t.equal(pkg.main, './lib'); - }); - - resolve('grux', { basedir: dir + '/tiv' }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'grux/index.js')); - t.equal(pkg, undefined); - }); - - resolve('grux', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'grux/index.js')); - t.equal(pkg.main, 'tiv'); - }); - - resolve('garply', { basedir: dir + '/tiv' }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'garply/lib/index.js')); - t.equal(pkg.main, './lib'); - }); - - resolve('garply', { basedir: dir + '/tiv', 'package': { main: 'tiv' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'garply/lib/index.js')); - t.equal(pkg.main, './lib'); - }); -}); - -test('quux', function (t) { - t.plan(2); - var dir = path.join(__dirname, 'resolver/quux'); - - resolve('./foo', { basedir: dir, 'package': { main: 'quux' } }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'foo/index.js')); - t.equal(pkg.main, 'quux'); - }); -}); - -test('normalize', function (t) { - t.plan(2); - var dir = path.join(__dirname, 'resolver/biz/node_modules/grux'); - - resolve('../grux', { basedir: dir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'index.js')); - t.equal(pkg, undefined); - }); -}); - -test('cup', function (t) { - t.plan(5); - var dir = path.join(__dirname, 'resolver'); - - resolve('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'cup.coffee')); - }); - - resolve('./cup.coffee', { basedir: dir }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'cup.coffee')); - }); - - resolve('./cup', { basedir: dir, extensions: ['.js'] }, function (err, res) { - t.equal(err.message, "Cannot find module './cup' from '" + path.resolve(dir) + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); - - // Test that filename is reported as the "from" value when passed. - resolve('./cup', { basedir: dir, extensions: ['.js'], filename: path.join(dir, 'cupboard.js') }, function (err, res) { - t.equal(err.message, "Cannot find module './cup' from '" + path.join(dir, 'cupboard.js') + "'"); - }); -}); - -test('mug', function (t) { - t.plan(3); - var dir = path.join(__dirname, 'resolver'); - - resolve('./mug', { basedir: dir }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'mug.js')); - }); - - resolve('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(dir, '/mug.coffee')); - }); - - resolve('./mug', { basedir: dir, extensions: ['.js', '.coffee'] }, function (err, res) { - t.equal(res, path.join(dir, '/mug.js')); - }); -}); - -test('other path', function (t) { - t.plan(6); - var resolverDir = path.join(__dirname, 'resolver'); - var dir = path.join(resolverDir, 'bar'); - var otherDir = path.join(resolverDir, 'other_path'); - - resolve('root', { basedir: dir, paths: [otherDir] }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(resolverDir, 'other_path/root.js')); - }); - - resolve('lib/other-lib', { basedir: dir, paths: [otherDir] }, function (err, res) { - if (err) t.fail(err); - t.equal(res, path.join(resolverDir, 'other_path/lib/other-lib.js')); - }); - - resolve('root', { basedir: dir }, function (err, res) { - t.equal(err.message, "Cannot find module 'root' from '" + path.resolve(dir) + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); - - resolve('zzz', { basedir: dir, paths: [otherDir] }, function (err, res) { - t.equal(err.message, "Cannot find module 'zzz' from '" + path.resolve(dir) + "'"); - t.equal(err.code, 'MODULE_NOT_FOUND'); - }); -}); - -test('path iterator', function (t) { - t.plan(2); - - var resolverDir = path.join(__dirname, 'resolver'); - - var exactIterator = function (x, start, getPackageCandidates, opts) { - return [path.join(resolverDir, x)]; - }; - - resolve('baz', { packageIterator: exactIterator }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(resolverDir, 'baz/quux.js')); - t.equal(pkg && pkg.name, 'baz'); - }); -}); - -test('incorrect main', function (t) { - t.plan(1); - - var resolverDir = path.join(__dirname, 'resolver'); - var dir = path.join(resolverDir, 'incorrect_main'); - - resolve('./incorrect_main', { basedir: resolverDir }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'index.js')); - }); -}); - -test('without basedir', function (t) { - t.plan(1); - - var dir = path.join(__dirname, 'resolver/without_basedir'); - var tester = require(path.join(dir, 'main.js')); - - tester(t, function (err, res, pkg) { - if (err) { - t.fail(err); - } else { - t.equal(res, path.join(dir, 'node_modules/mymodule.js')); - } - }); -}); - -test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) { - t.plan(2); - - var dir = path.join(__dirname, 'resolver'); - - resolve('./foo', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'same_names/foo.js')); - }); - - resolve('./foo/', { basedir: path.join(dir, 'same_names') }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'same_names/foo/index.js')); - }); -}); - -test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { - t.plan(2); - - var dir = path.join(__dirname, 'resolver'); - - resolve('./', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'same_names/foo/index.js')); - }); - - resolve('.', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'same_names/foo/index.js')); - }); -}); - -test('async: #121 - treating an existing file as a dir when no basedir', function (t) { - var testFile = path.basename(__filename); - - t.test('sanity check', function (st) { - st.plan(1); - resolve('./' + testFile, function (err, res, pkg) { - if (err) t.fail(err); - st.equal(res, __filename, 'sanity check'); - }); - }); - - t.test('with a fake directory', function (st) { - st.plan(4); - - resolve('./' + testFile + '/blah', function (err, res, pkg) { - st.ok(err, 'there is an error'); - st.notOk(res, 'no result'); - - st.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); - st.equal( - err && err.message, - 'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'', - 'can not find nonexistent module' - ); - st.end(); - }); - }); - - t.end(); -}); - -test('async dot main', function (t) { - var start = new Date(); - t.plan(3); - resolve('./resolver/dot_main', function (err, ret) { - t.notOk(err); - t.equal(ret, path.join(__dirname, 'resolver/dot_main/index.js')); - t.ok(new Date() - start < 50, 'resolve.sync timedout'); - t.end(); - }); -}); - -test('async dot slash main', function (t) { - var start = new Date(); - t.plan(3); - resolve('./resolver/dot_slash_main', function (err, ret) { - t.notOk(err); - t.equal(ret, path.join(__dirname, 'resolver/dot_slash_main/index.js')); - t.ok(new Date() - start < 50, 'resolve.sync timedout'); - t.end(); - }); -}); - -test('not a directory', function (t) { - t.plan(6); - var path = './foo'; - resolve(path, { basedir: __filename }, function (err, res, pkg) { - t.ok(err, 'a non-directory errors'); - t.equal(arguments.length, 1); - t.equal(res, undefined); - t.equal(pkg, undefined); - - t.equal(err && err.message, 'Cannot find module \'' + path + '\' from \'' + __filename + '\''); - t.equal(err && err.code, 'MODULE_NOT_FOUND'); - }); -}); - -test('non-string "main" field in package.json', function (t) { - t.plan(5); - - var dir = path.join(__dirname, 'resolver'); - resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) { - t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); - t.equal(err.code, 'INVALID_PACKAGE_MAIN'); - t.equal(res, undefined, 'res is undefined'); - t.equal(pkg, undefined, 'pkg is undefined'); - }); -}); - -test('non-string "main" field in package.json', function (t) { - t.plan(5); - - var dir = path.join(__dirname, 'resolver'); - resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) { - t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); - t.equal(err.code, 'INVALID_PACKAGE_MAIN'); - t.equal(res, undefined, 'res is undefined'); - t.equal(pkg, undefined, 'pkg is undefined'); - }); -}); - -test('browser field in package.json', function (t) { - t.plan(3); - - var dir = path.join(__dirname, 'resolver'); - resolve( - './browser_field', - { - basedir: dir, - packageFilter: function packageFilter(pkg) { - if (pkg.browser) { - pkg.main = pkg.browser; // eslint-disable-line no-param-reassign - delete pkg.browser; // eslint-disable-line no-param-reassign - } - return pkg; - } - }, - function (err, res, pkg) { - if (err) t.fail(err); - t.equal(res, path.join(dir, 'browser_field', 'b.js')); - t.equal(pkg && pkg.main, 'b'); - t.equal(pkg && pkg.browser, undefined); - } - ); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/doom.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/doom.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/package.json deleted file mode 100644 index 6ba9318a03..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "baz", - "main": "quux.js" -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/quux.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/quux.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/baz/quux.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/a.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/a.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/b.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/b.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/package.json deleted file mode 100644 index 291ab03bc5..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/browser_field/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "browser_field", - "main": "a", - "browser": "b" -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/cup.coffee b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/cup.coffee deleted file mode 100644 index 8b13789179..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/cup.coffee +++ /dev/null @@ -1 +0,0 @@ - diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/index.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/package.json deleted file mode 100644 index d08e00e9d8..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_main/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "." -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/index.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/package.json deleted file mode 100644 index a92bfd7b10..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/dot_slash_main/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "./" -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/foo.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/foo.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/foo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/index.js deleted file mode 100644 index bc1fb0a6f4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/index.js +++ /dev/null @@ -1,2 +0,0 @@ -// this is the actual main file 'index.js', not 'wrong.js' like the package.json would indicate -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/package.json deleted file mode 100644 index b3b73da086..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/incorrect_main/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "wrong.js" -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/invalid_main/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/invalid_main/package.json deleted file mode 100644 index 3158504f65..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/invalid_main/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "invalid main", - "main": [ - "why is this a thing", - "srsly omg wtf" - ] -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.coffee b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.coffee deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/mug.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/lerna.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/lerna.json deleted file mode 100644 index d6707ca0cd..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/lerna.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "packages": [ - "packages/*" - ], - "version": "0.0.0" -} diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/package.json deleted file mode 100644 index 9c6d56b61b..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "monorepo-symlink-test", - "private": true, - "version": "0.0.0", - "description": "", - "main": "index.js", - "scripts": { - "postinstall": "lerna bootstrap", - "test": "node packages/package-a" - }, - "author": "", - "license": "MIT", - "dependencies": { - "jquery": "^3.3.1", - "resolve": "../../../" - }, - "devDependencies": { - "lerna": "^3.4.3" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js deleted file mode 100644 index 8875a32df0..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var assert = require('assert'); -var path = require('path'); -var resolve = require('resolve'); - -var basedir = __dirname + '/node_modules/@my-scope/package-b'; - -var expected = path.join(__dirname, '../../node_modules/jquery/dist/jquery.js'); - -/* - * preserveSymlinks === false - * will search NPM package from - * - packages/package-b/node_modules - * - packages/node_modules - * - node_modules - */ -assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: false }), expected); -assert.equal(resolve.sync('../../node_modules/jquery', { basedir: basedir, preserveSymlinks: false }), expected); - -/* - * preserveSymlinks === true - * will search NPM package from - * - packages/package-a/node_modules/@my-scope/packages/package-b/node_modules - * - packages/package-a/node_modules/@my-scope/packages/node_modules - * - packages/package-a/node_modules/@my-scope/node_modules - * - packages/package-a/node_modules/node_modules - * - packages/package-a/node_modules - * - packages/node_modules - * - node_modules - */ -assert.equal(resolve.sync('jquery', { basedir: basedir, preserveSymlinks: true }), expected); -assert.equal(resolve.sync('../../../../../node_modules/jquery', { basedir: basedir, preserveSymlinks: true }), expected); - -console.log(' * all monorepo paths successfully resolved through symlinks'); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json deleted file mode 100644 index a2bbfff899..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@my-scope/package-a", - "version": "0.0.0", - "private": true, - "description": "", - "license": "MIT", - "main": "index.js", - "scripts": { - "test": "echo \"Error: run tests from root\" && exit 1" - }, - "dependencies": { - "@my-scope/package-b": "^0.0.0" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json deleted file mode 100644 index f7adacdebb..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "@my-scope/package-b", - "private": true, - "version": "0.0.0", - "description": "", - "license": "MIT", - "main": "index.js", - "scripts": { - "test": "echo \"Error: run tests from root\" && exit 1" - }, - "dependencies": { - "@my-scope/package-a": "^0.0.0" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js deleted file mode 100644 index 9b4846a82a..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js +++ /dev/null @@ -1,26 +0,0 @@ -var a = require.resolve('buffer/').replace(process.cwd(), '$CWD'); -var b; -var c; - -var test = function test() { - console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false')); - console.log(b, ': preserveSymlinks true'); - console.log(c, ': preserveSymlinks false'); - - if (a !== b && a !== c) { - throw 'async: no match'; - } - console.log('async: success! a matched either b or c\n'); -}; - -require('resolve')('buffer/', { preserveSymlinks: true }, function (err, result) { - if (err) { throw err; } - b = result.replace(process.cwd(), '$CWD'); - if (b && c) { test(); } -}); -require('resolve')('buffer/', { preserveSymlinks: false }, function (err, result) { - if (err) { throw err; } - c = result.replace(process.cwd(), '$CWD'); - if (b && c) { test(); } -}); - diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json deleted file mode 100644 index f3fffe71cb..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "mylib", - "version": "0.0.0", - "description": "", - "private": true, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "buffer": "*" - } -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js deleted file mode 100644 index 3283efc2ec..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js +++ /dev/null @@ -1,12 +0,0 @@ -var a = require.resolve('buffer/').replace(process.cwd(), '$CWD'); -var b = require('resolve').sync('buffer/', { preserveSymlinks: true }).replace(process.cwd(), '$CWD'); -var c = require('resolve').sync('buffer/', { preserveSymlinks: false }).replace(process.cwd(), '$CWD'); - -console.log(a, ': require.resolve, preserveSymlinks ' + (process.execArgv.indexOf('preserve-symlinks') > -1 ? 'true' : 'false')); -console.log(b, ': preserveSymlinks true'); -console.log(c, ': preserveSymlinks false'); - -if (a !== b && a !== c) { - throw 'sync: no match'; -} -console.log('sync: success! a matched either b or c\n'); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/lib/other-lib.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/lib/other-lib.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/root.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/other_path/root.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/quux/foo/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/quux/foo/index.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/quux/foo/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo.js deleted file mode 100644 index 888cae37af..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 42; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo/index.js deleted file mode 100644 index bd816eaba4..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/same_names/foo/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 1; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/bar.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/bar.js deleted file mode 100644 index cb1c2c01e7..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/bar.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'bar'; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/package.json b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/package.json deleted file mode 100644 index b6e6d85fd8..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/symlinked/package/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "bar.js" -} \ No newline at end of file diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/without_basedir/main.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/without_basedir/main.js deleted file mode 100644 index 5b31975be6..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver/without_basedir/main.js +++ /dev/null @@ -1,5 +0,0 @@ -var resolve = require('../../../'); - -module.exports = function (t, cb) { - resolve('mymodule', null, cb); -}; diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver_sync.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver_sync.js deleted file mode 100644 index 3082c96e58..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/resolver_sync.js +++ /dev/null @@ -1,358 +0,0 @@ -var path = require('path'); -var test = require('tape'); -var resolve = require('../'); - -test('foo', function (t) { - var dir = path.join(__dirname, 'resolver'); - - t.equal( - resolve.sync('./foo', { basedir: dir }), - path.join(dir, 'foo.js') - ); - - t.equal( - resolve.sync('./foo.js', { basedir: dir }), - path.join(dir, 'foo.js') - ); - - t.equal( - resolve.sync('./foo.js', { basedir: dir, filename: path.join(dir, 'bar.js') }), - path.join(dir, 'foo.js') - ); - - t.throws(function () { - resolve.sync('foo', { basedir: dir }); - }); - - // Test that filename is reported as the "from" value when passed. - t.throws( - function () { - resolve.sync('foo', { basedir: dir, filename: path.join(dir, 'bar.js') }); - }, - { - name: 'Error', - message: "Cannot find module 'foo' from '" + path.join(dir, 'bar.js') + "'" - } - ); - - t.end(); -}); - -test('bar', function (t) { - var dir = path.join(__dirname, 'resolver'); - - t.equal( - resolve.sync('foo', { basedir: path.join(dir, 'bar') }), - path.join(dir, 'bar/node_modules/foo/index.js') - ); - t.end(); -}); - -test('baz', function (t) { - var dir = path.join(__dirname, 'resolver'); - - t.equal( - resolve.sync('./baz', { basedir: dir }), - path.join(dir, 'baz/quux.js') - ); - t.end(); -}); - -test('biz', function (t) { - var dir = path.join(__dirname, 'resolver/biz/node_modules'); - t.equal( - resolve.sync('./grux', { basedir: dir }), - path.join(dir, 'grux/index.js') - ); - - t.equal( - resolve.sync('tiv', { basedir: path.join(dir, 'grux') }), - path.join(dir, 'tiv/index.js') - ); - - t.equal( - resolve.sync('grux', { basedir: path.join(dir, 'tiv') }), - path.join(dir, 'grux/index.js') - ); - t.end(); -}); - -test('normalize', function (t) { - var dir = path.join(__dirname, 'resolver/biz/node_modules/grux'); - t.equal( - resolve.sync('../grux', { basedir: dir }), - path.join(dir, 'index.js') - ); - t.end(); -}); - -test('cup', function (t) { - var dir = path.join(__dirname, 'resolver'); - t.equal( - resolve.sync('./cup', { - basedir: dir, - extensions: ['.js', '.coffee'] - }), - path.join(dir, 'cup.coffee') - ); - - t.equal( - resolve.sync('./cup.coffee', { basedir: dir }), - path.join(dir, 'cup.coffee') - ); - - t.throws(function () { - resolve.sync('./cup', { - basedir: dir, - extensions: ['.js'] - }); - }); - - t.end(); -}); - -test('mug', function (t) { - var dir = path.join(__dirname, 'resolver'); - t.equal( - resolve.sync('./mug', { basedir: dir }), - path.join(dir, 'mug.js') - ); - - t.equal( - resolve.sync('./mug', { - basedir: dir, - extensions: ['.coffee', '.js'] - }), - path.join(dir, 'mug.coffee') - ); - - t.equal( - resolve.sync('./mug', { - basedir: dir, - extensions: ['.js', '.coffee'] - }), - path.join(dir, 'mug.js') - ); - - t.end(); -}); - -test('other path', function (t) { - var resolverDir = path.join(__dirname, 'resolver'); - var dir = path.join(resolverDir, 'bar'); - var otherDir = path.join(resolverDir, 'other_path'); - - t.equal( - resolve.sync('root', { - basedir: dir, - paths: [otherDir] - }), - path.join(resolverDir, 'other_path/root.js') - ); - - t.equal( - resolve.sync('lib/other-lib', { - basedir: dir, - paths: [otherDir] - }), - path.join(resolverDir, 'other_path/lib/other-lib.js') - ); - - t.throws(function () { - resolve.sync('root', { basedir: dir }); - }); - - t.throws(function () { - resolve.sync('zzz', { - basedir: dir, - paths: [otherDir] - }); - }); - - t.end(); -}); - -test('path iterator', function (t) { - var resolverDir = path.join(__dirname, 'resolver'); - - var exactIterator = function (x, start, getPackageCandidates, opts) { - return [path.join(resolverDir, x)]; - }; - - t.equal( - resolve.sync('baz', { packageIterator: exactIterator }), - path.join(resolverDir, 'baz/quux.js') - ); - - t.end(); -}); - -test('incorrect main', function (t) { - var resolverDir = path.join(__dirname, 'resolver'); - var dir = path.join(resolverDir, 'incorrect_main'); - - t.equal( - resolve.sync('./incorrect_main', { basedir: resolverDir }), - path.join(dir, 'index.js') - ); - - t.end(); -}); - -var stubStatSync = function stubStatSync(fn) { - var fs = require('fs'); - var statSync = fs.statSync; - try { - fs.statSync = function () { - throw new EvalError('Unknown Error'); - }; - return fn(); - } finally { - fs.statSync = statSync; - } -}; - -test('#79 - re-throw non ENOENT errors from stat', function (t) { - var dir = path.join(__dirname, 'resolver'); - - stubStatSync(function () { - t.throws(function () { - resolve.sync('foo', { basedir: dir }); - }, /Unknown Error/); - }); - - t.end(); -}); - -test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) { - var dir = path.join(__dirname, 'resolver'); - - t.equal( - resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }), - path.join(dir, 'same_names/foo.js') - ); - t.equal( - resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }), - path.join(dir, 'same_names/foo/index.js') - ); - t.end(); -}); - -test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { - var dir = path.join(__dirname, 'resolver'); - - t.equal( - resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }), - path.join(dir, 'same_names/foo/index.js') - ); - t.equal( - resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }), - path.join(dir, 'same_names/foo/index.js') - ); - t.end(); -}); - -test('sync: #121 - treating an existing file as a dir when no basedir', function (t) { - var testFile = path.basename(__filename); - - t.test('sanity check', function (st) { - st.equal( - resolve.sync('./' + testFile), - __filename, - 'sanity check' - ); - st.end(); - }); - - t.test('with a fake directory', function (st) { - function run() { return resolve.sync('./' + testFile + '/blah'); } - - st.throws(run, 'throws an error'); - - try { - run(); - } catch (e) { - st.equal(e.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); - st.equal( - e.message, - 'Cannot find module \'./' + testFile + '/blah\' from \'' + __dirname + '\'', - 'can not find nonexistent module' - ); - } - - st.end(); - }); - - t.end(); -}); - -test('sync dot main', function (t) { - var start = new Date(); - t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js')); - t.ok(new Date() - start < 50, 'resolve.sync timedout'); - t.end(); -}); - -test('sync dot slash main', function (t) { - var start = new Date(); - t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js')); - t.ok(new Date() - start < 50, 'resolve.sync timedout'); - t.end(); -}); - -test('not a directory', function (t) { - var path = './foo'; - try { - resolve.sync(path, { basedir: __filename }); - t.fail(); - } catch (err) { - t.ok(err, 'a non-directory errors'); - t.equal(err && err.message, 'Cannot find module \'' + path + "' from '" + __filename + "'"); - t.equal(err && err.code, 'MODULE_NOT_FOUND'); - } - t.end(); -}); - -test('non-string "main" field in package.json', function (t) { - var dir = path.join(__dirname, 'resolver'); - try { - var result = resolve.sync('./invalid_main', { basedir: dir }); - t.equal(result, undefined, 'result should not exist'); - t.fail('should not get here'); - } catch (err) { - t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); - t.equal(err.code, 'INVALID_PACKAGE_MAIN'); - } - t.end(); -}); - -test('non-string "main" field in package.json', function (t) { - var dir = path.join(__dirname, 'resolver'); - try { - var result = resolve.sync('./invalid_main', { basedir: dir }); - t.equal(result, undefined, 'result should not exist'); - t.fail('should not get here'); - } catch (err) { - t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); - t.equal(err.code, 'INVALID_PACKAGE_MAIN'); - } - t.end(); -}); - -test('browser field in package.json', function (t) { - var dir = path.join(__dirname, 'resolver'); - var res = resolve.sync('./browser_field', { - basedir: dir, - packageFilter: function packageFilter(pkg) { - if (pkg.browser) { - pkg.main = pkg.browser; // eslint-disable-line no-param-reassign - delete pkg.browser; // eslint-disable-line no-param-reassign - } - return pkg; - } - }); - t.equal(res, path.join(dir, 'browser_field', 'b.js')); - t.end(); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core.js deleted file mode 100644 index 98c52a760b..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core.js +++ /dev/null @@ -1,38 +0,0 @@ -var test = require('tape'); -var resolve = require('../'); -var path = require('path'); - -test('shadowed core modules still return core module', function (t) { - t.plan(2); - - resolve('util', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) { - t.ifError(err); - t.equal(res, 'util'); - }); -}); - -test('shadowed core modules still return core module [sync]', function (t) { - t.plan(1); - - var res = resolve.sync('util', { basedir: path.join(__dirname, 'shadowed_core') }); - - t.equal(res, 'util'); -}); - -test('shadowed core modules return shadow when appending `/`', function (t) { - t.plan(2); - - resolve('util/', { basedir: path.join(__dirname, 'shadowed_core') }, function (err, res) { - t.ifError(err); - t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js')); - }); -}); - -test('shadowed core modules return shadow when appending `/` [sync]', function (t) { - t.plan(1); - - var res = resolve.sync('util/', { basedir: path.join(__dirname, 'shadowed_core') }); - - t.equal(res, path.join(__dirname, 'shadowed_core/node_modules/util/index.js')); -}); - diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core/node_modules/util/index.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/shadowed_core/node_modules/util/index.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/subdirs.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/subdirs.js deleted file mode 100644 index b7b8450a9e..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/subdirs.js +++ /dev/null @@ -1,13 +0,0 @@ -var test = require('tape'); -var resolve = require('../'); -var path = require('path'); - -test('subdirs', function (t) { - t.plan(2); - - var dir = path.join(__dirname, '/subdirs'); - resolve('a/b/c/x.json', { basedir: dir }, function (err, res) { - t.ifError(err); - t.equal(res, path.join(dir, 'node_modules/a/b/c/x.json')); - }); -}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/test/symlinks.js b/node_modules/eslint-plugin-import/node_modules/resolve/test/symlinks.js deleted file mode 100644 index 152d14ef2d..0000000000 --- a/node_modules/eslint-plugin-import/node_modules/resolve/test/symlinks.js +++ /dev/null @@ -1,173 +0,0 @@ -var path = require('path'); -var fs = require('fs'); -var test = require('tape'); -var map = require('array.prototype.map'); -var resolve = require('../'); - -var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink'); -var packageDir = path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'package'); -var modADir = path.join(__dirname, 'symlinks', 'source', 'node_modules', 'mod-a'); -var symlinkModADir = path.join(__dirname, 'symlinks', 'dest', 'node_modules', 'mod-a'); -try { - fs.unlinkSync(symlinkDir); -} catch (err) {} -try { - fs.unlinkSync(packageDir); -} catch (err) {} -try { - fs.unlinkSync(modADir); -} catch (err) {} -try { - fs.unlinkSync(symlinkModADir); -} catch (err) {} - -try { - fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir'); -} catch (err) { - // if fails then it is probably on Windows and lets try to create a junction - fs.symlinkSync(path.join(__dirname, 'resolver', 'symlinked', '_', 'symlink_target') + '\\', symlinkDir, 'junction'); -} -try { - fs.symlinkSync('../../package', packageDir, 'dir'); -} catch (err) { - // if fails then it is probably on Windows and lets try to create a junction - fs.symlinkSync(path.join(__dirname, '..', '..', 'package') + '\\', packageDir, 'junction'); -} -try { - fs.symlinkSync('../../source/node_modules/mod-a', symlinkModADir, 'dir'); -} catch (err) { - // if fails then it is probably on Windows and lets try to create a junction - fs.symlinkSync(path.join(__dirname, '..', '..', 'source', 'node_modules', 'mod-a') + '\\', symlinkModADir, 'junction'); -} - -test('symlink', function (t) { - t.plan(2); - - resolve('foo', { basedir: symlinkDir, preserveSymlinks: false }, function (err, res, pkg) { - t.error(err); - t.equal(res, path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); - }); -}); - -test('sync symlink when preserveSymlinks = true', function (t) { - t.plan(4); - - resolve('foo', { basedir: symlinkDir }, function (err, res, pkg) { - t.ok(err, 'there is an error'); - t.notOk(res, 'no result'); - - t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error code matches require.resolve'); - t.equal( - err && err.message, - 'Cannot find module \'foo\' from \'' + symlinkDir + '\'', - 'can not find nonexistent module' - ); - }); -}); - -test('sync symlink', function (t) { - var start = new Date(); - t.doesNotThrow(function () { - t.equal(resolve.sync('foo', { basedir: symlinkDir, preserveSymlinks: false }), path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'foo.js')); - }); - t.ok(new Date() - start < 50, 'resolve.sync timedout'); - t.end(); -}); - -test('sync symlink when preserveSymlinks = true', function (t) { - t.throws(function () { - resolve.sync('foo', { basedir: symlinkDir }); - }, /Cannot find module 'foo'/); - t.end(); -}); - -test('sync symlink from node_modules to other dir when preserveSymlinks = false', function (t) { - var basedir = path.join(__dirname, 'resolver', 'symlinked', '_'); - var fn = resolve.sync('package', { basedir: basedir, preserveSymlinks: false }); - - t.equal(fn, path.resolve(__dirname, 'resolver/symlinked/package/bar.js')); - t.end(); -}); - -test('async symlink from node_modules to other dir when preserveSymlinks = false', function (t) { - t.plan(2); - var basedir = path.join(__dirname, 'resolver', 'symlinked', '_'); - resolve('package', { basedir: basedir, preserveSymlinks: false }, function (err, result) { - t.notOk(err, 'no error'); - t.equal(result, path.resolve(__dirname, 'resolver/symlinked/package/bar.js')); - }); -}); - -test('packageFilter', function (t) { - function relative(x) { - return path.relative(__dirname, x); - } - - function testPackageFilter(preserveSymlinks) { - return function (st) { - st.plan('is 1.x' ? 3 : 5); // eslint-disable-line no-constant-condition - - var destMain = 'symlinks/dest/node_modules/mod-a/index.js'; - var destPkg = 'symlinks/dest/node_modules/mod-a/package.json'; - var sourceMain = 'symlinks/source/node_modules/mod-a/index.js'; - var sourcePkg = 'symlinks/source/node_modules/mod-a/package.json'; - var destDir = path.join(__dirname, 'symlinks', 'dest'); - - /* eslint multiline-comment-style: 0 */ - /* v2.x will restore these tests - var packageFilterPath = []; - var actualPath = resolve.sync('mod-a', { - basedir: destDir, - preserveSymlinks: preserveSymlinks, - packageFilter: function (pkg, pkgfile, dir) { - packageFilterPath.push(pkgfile); - } - }); - st.equal( - relative(actualPath), - path.normalize(preserveSymlinks ? destMain : sourceMain), - 'sync: actual path is correct' - ); - st.deepEqual( - map(packageFilterPath, relative), - map(preserveSymlinks ? [destPkg, destPkg] : [sourcePkg, sourcePkg], path.normalize), - 'sync: packageFilter pkgfile arg is correct' - ); - */ - - var asyncPackageFilterPath = []; - resolve( - 'mod-a', - { - basedir: destDir, - preserveSymlinks: preserveSymlinks, - packageFilter: function (pkg, pkgfile) { - asyncPackageFilterPath.push(pkgfile); - } - }, - function (err, actualPath) { - st.error(err, 'no error'); - st.equal( - relative(actualPath), - path.normalize(preserveSymlinks ? destMain : sourceMain), - 'async: actual path is correct' - ); - st.deepEqual( - map(asyncPackageFilterPath, relative), - map( - preserveSymlinks ? [destPkg, destPkg, destPkg] : [sourcePkg, sourcePkg, sourcePkg], - path.normalize - ), - 'async: packageFilter pkgfile arg is correct' - ); - } - ); - }; - } - - t.test('preserveSymlinks: false', testPackageFilter(false)); - - t.test('preserveSymlinks: true', testPackageFilter(true)); - - t.end(); -}); diff --git a/node_modules/eslint-plugin-import/package.json b/node_modules/eslint-plugin-import/package.json index 4010e37a35..00fc54695a 100644 --- a/node_modules/eslint-plugin-import/package.json +++ b/node_modules/eslint-plugin-import/package.json @@ -1,6 +1,6 @@ { "name": "eslint-plugin-import", - "version": "2.22.0", + "version": "2.23.4", "description": "Import with sanity.", "engines": { "node": ">=4" @@ -30,7 +30,8 @@ "test": "npm run tests-only", "test-compiled": "npm run prepublish && BABEL_ENV=testCompiled mocha --compilers js:babel-register tests/src", "test-all": "node --require babel-register ./scripts/testAll", - "prepublish": "not-in-publish || npm run build", + "prepublishOnly": "safe-publish-latest && npm run build", + "prepublish": "not-in-publish || npm run prepublishOnly", "coveralls": "nyc report --reporter lcovonly && coveralls < ./coverage/lcov.info" }, "repository": { @@ -56,30 +57,30 @@ "@eslint/import-test-order-redirect-scoped": "file:./tests/files/order-redirect-scoped", "@test-scope/some-module": "file:./tests/files/symlinked-module", "@typescript-eslint/parser": "^2.23.0 || ^3.3.0", - "array.prototype.flatmap": "^1.2.3", + "array.prototype.flatmap": "^1.2.4", "babel-cli": "^6.26.0", "babel-core": "^6.26.3", - "babel-eslint": "^8.2.6", + "babel-eslint": "=8.0.3 || ^8.2.6", "babel-plugin-istanbul": "^4.1.6", "babel-plugin-module-resolver": "^2.7.1", "babel-preset-es2015-argon": "latest", "babel-preset-flow": "^6.23.0", "babel-register": "^6.26.0", "babylon": "^6.18.0", - "chai": "^4.2.0", - "coveralls": "^3.0.6", + "chai": "^4.3.4", + "coveralls": "^3.1.0", "cross-env": "^4.0.0", "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0", "eslint-import-resolver-node": "file:./resolvers/node", - "eslint-import-resolver-typescript": "^1.0.2", + "eslint-import-resolver-typescript": "^1.0.2 || ^1.1.1", "eslint-import-resolver-webpack": "file:./resolvers/webpack", "eslint-import-test-order-redirect": "file:./tests/files/order-redirect", "eslint-module-utils": "file:./utils", - "eslint-plugin-eslint-plugin": "^2.2.1", + "eslint-plugin-eslint-plugin": "^2.3.0", "eslint-plugin-import": "2.x", - "eslint-plugin-json": "^2.1.1", + "eslint-plugin-json": "^2.1.2", "fs-copy-file-sync": "^1.1.1", - "glob": "^7.1.6", + "glob": "^7.1.7", "in-publish": "^2.0.1", "linklocal": "^2.8.2", "lodash.isarray": "^4.0.0", @@ -88,38 +89,30 @@ "nyc": "^11.9.0", "redux": "^3.7.2", "rimraf": "^2.7.1", + "safe-publish-latest": "^1.1.4", "semver": "^6.3.0", "sinon": "^2.4.1", - "typescript": "~3.9.5", - "typescript-eslint-parser": "^22.0.0" + "typescript": "^2.8.1 || ~3.9.5", + "typescript-eslint-parser": "^15 || ^22.0.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" }, "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.3", - "eslint-module-utils": "^2.6.0", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.4.0", "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", "tsconfig-paths": "^3.9.0" - }, - "nyc": { - "require": [ - "babel-register" - ], - "sourceMap": false, - "instrument": false, - "include": [ - "src/", - "resolvers/" - ] } } \ No newline at end of file diff --git a/node_modules/eslint-plugin-prettier/CHANGELOG.md b/node_modules/eslint-plugin-prettier/CHANGELOG.md index 3e32d3c074..d1f6652be5 100644 --- a/node_modules/eslint-plugin-prettier/CHANGELOG.md +++ b/node_modules/eslint-plugin-prettier/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## v3.4.0 (2021-04-15) + +* feat: support processor virtual filename ([#401](git@github.com:prettier/eslint-plugin-prettier/issues/401)) ([ee0ccc6](git@github.com:prettier/eslint-plugin-prettier/commit/ee0ccc6ac06d13cd546e78b444e53164f59eb27f)) +* Simplify report logic ([#380](git@github.com:prettier/eslint-plugin-prettier/issues/380)) ([d993f24](git@github.com:prettier/eslint-plugin-prettier/commit/d993f247b5661683af031ab3b93955a0dfe448fa)) +* Update: README.md ([#375](git@github.com:prettier/eslint-plugin-prettier/issues/375)) ([3ea4242](git@github.com:prettier/eslint-plugin-prettier/commit/3ea4242a8d4acdb76eb7e7dca9e44d3e87db70e3)) + +## v3.3.1 (2021-01-04) + +* fix: add eslint-config-prettier as an optional peer dependency ([#374](git@github.com:prettier/eslint-plugin-prettier/issues/374)) ([d59df27](git@github.com:prettier/eslint-plugin-prettier/commit/d59df27890aaffec9e528ceb3155831a0261848d)) +* build(deps-dev): bump eslint from 7.16.0 to 7.17.0 ([b87985d](git@github.com:prettier/eslint-plugin-prettier/commit/b87985d8b1986743374b56691bcc1633df8f4eae)) +* build(deps-dev): bump eslint from 7.15.0 to 7.16.0 ([11e427e](git@github.com:prettier/eslint-plugin-prettier/commit/11e427e5d6cedeb26e3e03c8143be3496a24955a)) + +## v3.3.0 (2020-12-13) + +* Minor: Perf improvement: Do not clear the config cache on each run ([#368](git@github.com:prettier/eslint-plugin-prettier/issues/368)) ([1b90ea7](git@github.com:prettier/eslint-plugin-prettier/commit/1b90ea752636959babb27ebca5d67093c346dab9)) +* Add peerDependenciesMeta block ([#367](git@github.com:prettier/eslint-plugin-prettier/issues/367)) ([86608d5](git@github.com:prettier/eslint-plugin-prettier/commit/86608d5084692ab0d1f2f49a3df4909d04c39ae7)) +* build(deps-dev): bump eslint from 7.14.0 to 7.15.0 ([885f484](git@github.com:prettier/eslint-plugin-prettier/commit/885f48405e0fc9f312acdd3e3487c824bd59c102)) +* build(deps-dev): bump eslint from 7.3.1 to 7.14.0 ([cebc80b](git@github.com:prettier/eslint-plugin-prettier/commit/cebc80b39d3d09f957a73536e54f6d8dd4567080)) + +## v3.2.0 (2020-12-03) + +* Skip CI for eslint 6 + node 8 ([#364](git@github.com:prettier/eslint-plugin-prettier/issues/364)) ([f8f08e4](git@github.com:prettier/eslint-plugin-prettier/commit/f8f08e483522d74bc4dd93d9813914aa7ba9314b)) +* Turn off problematic rules in recommended config (prepare for next eslint-config-prettier version) ([#360](git@github.com:prettier/eslint-plugin-prettier/issues/360)) ([a1e5591](git@github.com:prettier/eslint-plugin-prettier/commit/a1e559112073eedfb0dd2041b9c2f6ef775844ec)) +* Create dependabot.yml ([f58b6c7](git@github.com:prettier/eslint-plugin-prettier/commit/f58b6c7c356a37b437593cd6ff8d1dca1c437b13)) +* docs(README): fix prettier getFileInfo link ([#335](git@github.com:prettier/eslint-plugin-prettier/issues/335)) ([5a690f1](git@github.com:prettier/eslint-plugin-prettier/commit/5a690f14d793ba5a08c55287fa3d6338dcda21ba)) +* build(deps-dev): bump eslint-plugin-eslint-plugin from 2.2.2 to 2.3.0 ([8614c45](git@github.com:prettier/eslint-plugin-prettier/commit/8614c458ed284bc126034d432b49b07d7d67ef06)) +* build(deps-dev): bump eslint from 7.3.0 to 7.3.1 ([12d9ed8](git@github.com:prettier/eslint-plugin-prettier/commit/12d9ed877aacfad2c27f01161cc2eb28a445725f)) +* build(deps-dev): bump eslint from 7.2.0 to 7.3.0 ([5a6f42e](git@github.com:prettier/eslint-plugin-prettier/commit/5a6f42e4eda871a294da1eb55f214c475450faa6)) +* chore: update CI badge in readme ([5012b66](git@github.com:prettier/eslint-plugin-prettier/commit/5012b665f981edbc21feaaccb3cd297f49ca40d3)) +* Use Github Actions for CI ([#305](git@github.com:prettier/eslint-plugin-prettier/issues/305)) ([41eb64f](git@github.com:prettier/eslint-plugin-prettier/commit/41eb64fda33663ed1c43a85218f390c6cd4b6191)) + ## v3.1.4 (2020-06-14) * Avoid clearing Prettier cache when not using prettierrc ([#303](git@github.com:prettier/eslint-plugin-prettier/issues/303)) ([3c8e2d9](git@github.com:prettier/eslint-plugin-prettier/commit/3c8e2d9871d86a82b10fe3d54f32bb5a54f2913b)) diff --git a/node_modules/eslint-plugin-prettier/README.md b/node_modules/eslint-plugin-prettier/README.md index 2ebde9bdf1..d6f2e28c6f 100644 --- a/node_modules/eslint-plugin-prettier/README.md +++ b/node_modules/eslint-plugin-prettier/README.md @@ -1,7 +1,11 @@ -# eslint-plugin-prettier [![Build Status](https://travis-ci.org/prettier/eslint-plugin-prettier.svg?branch=master)](https://travis-ci.org/prettier/eslint-plugin-prettier) +# eslint-plugin-prettier [![Build Status](https://github.com/prettier/eslint-plugin-prettier/workflows/CI/badge.svg?branch=master)](https://github.com/prettier/eslint-plugin-prettier/actions?query=workflow%3ACI+branch%3Amaster) Runs [Prettier](https://github.com/prettier/prettier) as an [ESLint](http://eslint.org) rule and reports differences as individual ESLint issues. +If your desired formatting does not match Prettier’s output, you should use a different tool such as [prettier-eslint](https://github.com/prettier/prettier-eslint) instead. + +Please read [Integrating with linters](https://prettier.io/docs/en/integrating-with-linters.html) before installing. + ## Sample ```js @@ -52,11 +56,9 @@ Then, in your `.eslintrc.json`: ## Recommended Configuration -This plugin works best if you disable all other ESLint rules relating to code formatting, and only enable rules that detect patterns in the AST. (If another active ESLint rule disagrees with `prettier` about how code should be formatted, it will be impossible to avoid lint errors.) You can use [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) to disable all formatting-related ESLint rules. +This plugin works best if you disable all other ESLint rules relating to code formatting, and only enable rules that detect potential bugs. (If another active ESLint rule disagrees with `prettier` about how code should be formatted, it will be impossible to avoid lint errors.) You can use [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) to disable all formatting-related ESLint rules. -If your desired formatting does not match the `prettier` output, you should use a different tool such as [prettier-eslint](https://github.com/prettier/prettier-eslint) instead. - -To integrate this plugin with `eslint-config-prettier`, you can use the `"recommended"` configuration: +This plugin ships with a `plugin:prettier/recommended` config that sets up both the plugin and `eslint-config-prettier` in one go. 1. In addition to the above installation instructions, install `eslint-config-prettier`: @@ -64,7 +66,7 @@ To integrate this plugin with `eslint-config-prettier`, you can use the `"recomm npm install --save-dev eslint-config-prettier ``` -2. Then you need to add `plugin:prettier/recommended` as the last extension in your `.eslintrc.json`: +2. Then you need to add `plugin:prettier/recommended` as the _last_ extension in your `.eslintrc.json`: ```json { @@ -72,28 +74,36 @@ To integrate this plugin with `eslint-config-prettier`, you can use the `"recomm } ``` -This does three things: - -- Enables `eslint-plugin-prettier`. -- Sets the `prettier/prettier` rule to `"error"`. -- Extends the `eslint-config-prettier` configuration. + You can then set Prettier's own options inside a `.prettierrc` file. -You can then set Prettier's own options inside a `.prettierrc` file. - -3. In order to support special ESLint plugins (e.g. [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react)), add extra exclusions for the plugins you use like so: +Exactly what does `plugin:prettier/recommended` do? Well, this is what it expands to: ```json { - "extends": [ - "plugin:prettier/recommended", - "prettier/flowtype", - "prettier/react", - "prettier/standard" - ] + "extends": ["prettier"], + "plugins": ["prettier"], + "rules": { + "prettier/prettier": "error", + "arrow-body-style": "off", + "prefer-arrow-callback": "off" + } } ``` -For the list of every available exclusion rule set, please see the [readme of eslint-config-prettier](https://github.com/prettier/eslint-config-prettier/blob/master/README.md). +- `"extends": ["prettier"]` enables the config from `eslint-config-prettier`, which turns off some ESLint rules that conflict with Prettier. +- `"plugins": ["prettier"]` registers this plugin. +- `"prettier/prettier": "error"` turns on the rule provided by this plugin, which runs Prettier from within ESLint. +- `"arrow-body-style": "off"` and `"prefer-arrow-callback": "off"` turns off two ESLint core rules that unfortunately are problematic with this plugin – see the next section. + +## `arrow-body-style` and `prefer-arrow-callback` issue + +If you use [arrow-body-style](https://eslint.org/docs/rules/arrow-body-style) or [prefer-arrow-callback](https://eslint.org/docs/rules/prefer-arrow-callback) together with the `prettier/prettier` rule from this plugin, you can in some cases end up with invalid code due to a bug in ESLint’s autofix – see [issue #65](https://github.com/prettier/eslint-plugin-prettier/issues/65). + +For this reason, it’s recommended to turn off these rules. The `plugin:prettier/recommended` config does that for you. + +You _can_ still use these rules together with this plugin if you want, because the bug does not occur _all the time._ But if you do, you need to keep in mind that you might end up with invalid code, where you manually have to insert a missing closing parenthesis to get going again. + +If you’re fixing large of amounts of previously unformatted code, consider temporarily disabling the `prettier/prettier` rule and running `eslint --fix` and `prettier --write` separately. ## Options @@ -121,7 +131,7 @@ For the list of every available exclusion rule set, please see the [readme of es }] ``` - - `fileInfoOptions`: Options that are passed to [prettier.getFileInfo](https://prettier.io/docs/en/api.html#prettiergetfileinfofilepath-options) to decide whether a file needs to be formatted. Can be used for example to opt-out from ignoring files located in `node_modules` directories. + - `fileInfoOptions`: Options that are passed to [prettier.getFileInfo](https://prettier.io/docs/en/api.html#prettiergetfileinfofilepath--options) to decide whether a file needs to be formatted. Can be used for example to opt-out from ignoring files located in `node_modules` directories. ```json "prettier/prettier": ["error", {}, { diff --git a/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js b/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js index 4735e8fc7d..3f050f0783 100644 --- a/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js +++ b/node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js @@ -9,6 +9,9 @@ // Requirements // ------------------------------------------------------------------------------ +const fs = require('fs'); +const path = require('path'); + const { showInvisibles, generateDifferences @@ -25,6 +28,9 @@ const { INSERT, DELETE, REPLACE } = generateDifferences; // ------------------------------------------------------------------------------ // Lazily-loaded Prettier. +/** + * @type {import('prettier')} + */ let prettier; // ------------------------------------------------------------------------------ @@ -32,72 +38,49 @@ let prettier; // ------------------------------------------------------------------------------ /** - * Reports an "Insert ..." issue where text must be inserted. - * @param {RuleContext} context - The ESLint rule context. - * @param {number} offset - The source offset where to insert text. - * @param {string} text - The text to be inserted. + * Reports a difference. + * @param {import('eslint').Rule.RuleContext} context - The ESLint rule context. + * @param {import('prettier-linter-helpers').Difference} difference - The difference object. * @returns {void} */ -function reportInsert(context, offset, text) { - const pos = context.getSourceCode().getLocFromIndex(offset); - const range = [offset, offset]; - context.report({ - message: 'Insert `{{ code }}`', - data: { code: showInvisibles(text) }, - loc: { start: pos, end: pos }, - fix(fixer) { - return fixer.insertTextAfterRange(range, text); - } - }); -} +function reportDifference(context, difference) { + const { operation, offset, deleteText = '', insertText = '' } = difference; + const range = [offset, offset + deleteText.length]; + const [start, end] = range.map(index => + context.getSourceCode().getLocFromIndex(index) + ); -/** - * Reports a "Delete ..." issue where text must be deleted. - * @param {RuleContext} context - The ESLint rule context. - * @param {number} offset - The source offset where to delete text. - * @param {string} text - The text to be deleted. - * @returns {void} - */ -function reportDelete(context, offset, text) { - const start = context.getSourceCode().getLocFromIndex(offset); - const end = context.getSourceCode().getLocFromIndex(offset + text.length); - const range = [offset, offset + text.length]; context.report({ - message: 'Delete `{{ code }}`', - data: { code: showInvisibles(text) }, + messageId: operation, + data: { + deleteText: showInvisibles(deleteText), + insertText: showInvisibles(insertText) + }, loc: { start, end }, - fix(fixer) { - return fixer.removeRange(range); - } + fix: fixer => fixer.replaceTextRange(range, insertText) }); } /** - * Reports a "Replace ... with ..." issue where text must be replaced. - * @param {RuleContext} context - The ESLint rule context. - * @param {number} offset - The source offset where to replace deleted text - with inserted text. - * @param {string} deleteText - The text to be deleted. - * @param {string} insertText - The text to be inserted. - * @returns {void} + * Given a filepath, get the nearest path that is a regular file. + * The filepath provided by eslint may be a virtual filepath rather than a file + * on disk. This attempts to transform a virtual path into an on-disk path + * @param {string} filepath + * @returns {string} */ -function reportReplace(context, offset, deleteText, insertText) { - const start = context.getSourceCode().getLocFromIndex(offset); - const end = context - .getSourceCode() - .getLocFromIndex(offset + deleteText.length); - const range = [offset, offset + deleteText.length]; - context.report({ - message: 'Replace `{{ deleteCode }}` with `{{ insertCode }}`', - data: { - deleteCode: showInvisibles(deleteText), - insertCode: showInvisibles(insertText) - }, - loc: { start, end }, - fix(fixer) { - return fixer.replaceTextRange(range, insertText); +function getOnDiskFilepath(filepath) { + try { + if (fs.statSync(filepath).isFile()) { + return filepath; } - }); + } catch (err) { + // https://github.com/eslint/eslint/issues/11989 + if (err.code === 'ENOTDIR') { + return getOnDiskFilepath(path.dirname(filepath)); + } + } + + return filepath; } // ------------------------------------------------------------------------------ @@ -110,7 +93,9 @@ module.exports = { extends: ['prettier'], plugins: ['prettier'], rules: { - 'prettier/prettier': 'error' + 'prettier/prettier': 'error', + 'arrow-body-style': 'off', + 'prefer-arrow-callback': 'off' } } }, @@ -141,7 +126,12 @@ module.exports = { }, additionalProperties: true } - ] + ], + messages: { + [INSERT]: 'Insert `{{ insertText }}`', + [DELETE]: 'Delete `{{ deleteText }}`', + [REPLACE]: 'Replace `{{ deleteText }}` with `{{ insertText }}`' + } }, create(context) { const usePrettierrc = @@ -150,17 +140,16 @@ module.exports = { (context.options[1] && context.options[1].fileInfoOptions) || {}; const sourceCode = context.getSourceCode(); const filepath = context.getFilename(); + // Processors that extract content from a file, such as the markdown + // plugin extracting fenced code blocks may choose to specify virtual + // file paths. If this is the case then we need to resolve prettier + // config and file info using the on-disk path instead of the virtual + // path. + // See https://github.com/eslint/eslint/issues/11989 for ideas around + // being able to get this value directly from eslint in the future. + const onDiskFilepath = getOnDiskFilepath(filepath); const source = sourceCode.text; - // This allows long-running ESLint processes (e.g. vscode-eslint) to - // pick up changes to .prettierrc without restarting the editor. This - // will invalidate the prettier plugin cache on every file as well which - // will make ESLint very slow, so it would probably be a good idea to - // find a better way to do this. - if (usePrettierrc && prettier && prettier.clearConfigCache) { - prettier.clearConfigCache(); - } - return { Program() { if (!prettier) { @@ -171,13 +160,13 @@ module.exports = { const eslintPrettierOptions = context.options[0] || {}; const prettierRcOptions = usePrettierrc - ? prettier.resolveConfig.sync(filepath, { + ? prettier.resolveConfig.sync(onDiskFilepath, { editorconfig: true }) : null; const prettierFileInfo = prettier.getFileInfo.sync( - filepath, + onDiskFilepath, Object.assign( {}, { resolveConfig: true, ignorePath: '.prettierignore' }, @@ -192,7 +181,7 @@ module.exports = { const initialOptions = {}; - // ESLint suppports processors that let you extract and lint JS + // ESLint supports processors that let you extract and lint JS // fragments within a non-JS language. In the cases where prettier // supports the same language as a processor, we want to process // the provided source code as javascript (as ESLint provides the @@ -200,9 +189,14 @@ module.exports = { // based off the filename. Otherwise, for instance, on a .md file we // end up trying to run prettier over a fragment of JS using the // markdown parser, which throws an error. - // If we can't infer the parser from from the filename, either - // because no filename was provided or because there is no parser - // found for the filename, use javascript. + // Processors may set virtual filenames for these extracted blocks. + // If they do so then we want to trust the file extension they + // provide, and no override is needed. + // If the processor does not set any virtual filename (signified by + // `filepath` and `onDiskFilepath` being equal) AND we can't + // infer the parser from the filename, either because no filename + // was provided or because there is no parser found for the + // filename, use javascript. // This is added to the options first, so that // prettierRcOptions and eslintPrettierOptions can still override // the parser. @@ -214,6 +208,7 @@ module.exports = { // from the file type. const parserBlocklist = [null, 'graphql', 'markdown', 'html']; if ( + filepath === onDiskFilepath && parserBlocklist.indexOf(prettierFileInfo.inferredParser) !== -1 ) { // Prettier v1.16.0 renamed the `babylon` parser to `babel` @@ -234,7 +229,7 @@ module.exports = { ); // prettier.format() may throw a SyntaxError if it cannot parse the - // source code it is given. Ususally for JS files this isn't a + // source code it is given. Usually for JS files this isn't a // problem as ESLint will report invalid syntax before trying to // pass it to the prettier plugin. However this might be a problem // for non-JS languages that are handled by a plugin. Notably Vue @@ -252,7 +247,7 @@ module.exports = { let message = 'Parsing error: ' + err.message; // Prettier's message contains a codeframe style preview of the - // invalid code and the line/column at which the error occured. + // invalid code and the line/column at which the error occurred. // ESLint shows those pieces of information elsewhere already so // remove them from the message if (err.codeFrame) { @@ -270,32 +265,9 @@ module.exports = { if (source !== prettierSource) { const differences = generateDifferences(source, prettierSource); - differences.forEach(difference => { - switch (difference.operation) { - case INSERT: - reportInsert( - context, - difference.offset, - difference.insertText - ); - break; - case DELETE: - reportDelete( - context, - difference.offset, - difference.deleteText - ); - break; - case REPLACE: - reportReplace( - context, - difference.offset, - difference.deleteText, - difference.insertText - ); - break; - } - }); + for (const difference of differences) { + reportDifference(context, difference); + } } } }; diff --git a/node_modules/eslint-plugin-prettier/package.json b/node_modules/eslint-plugin-prettier/package.json index 5b42531a71..1f2c8546f8 100644 --- a/node_modules/eslint-plugin-prettier/package.json +++ b/node_modules/eslint-plugin-prettier/package.json @@ -1,6 +1,6 @@ { "name": "eslint-plugin-prettier", - "version": "3.1.4", + "version": "3.4.0", "description": "Runs prettier as an eslint rule", "keywords": [ "eslint", @@ -46,6 +46,11 @@ "prettier": "^1.15.3", "vue-eslint-parser": "^6.0.0" }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + }, "engines": { "node": ">=6.0.0" }, diff --git a/node_modules/eslint/CHANGELOG.md b/node_modules/eslint/CHANGELOG.md index 289852651b..bd7fb6b5e9 100644 --- a/node_modules/eslint/CHANGELOG.md +++ b/node_modules/eslint/CHANGELOG.md @@ -1,3 +1,339 @@ +v7.31.0 - July 17, 2021 + +* [`efdbb12`](https://github.com/eslint/eslint/commit/efdbb1227019427ec2d968a8d6e9151dd8a77c35) Upgrade: @eslint/eslintrc to v0.4.3 (#14808) (Brandon Mills) +* [`a96b05f`](https://github.com/eslint/eslint/commit/a96b05f6c5649cfee112d605c91d95aa191e2f78) Update: add end location to report in `consistent-return` (refs #12334) (#14798) (Nitin Kumar) +* [`e0e8e30`](https://github.com/eslint/eslint/commit/e0e8e308929c9c66612505f2da89043f8592eea7) Docs: update BUG_REPORT template (#14787) (Nitin Kumar) +* [`39115c8`](https://github.com/eslint/eslint/commit/39115c8b71d2629161359f6456f47fdbd552fddd) Docs: provide more context to no-eq-null (#14801) (gfyoung) +* [`9a3c73c`](https://github.com/eslint/eslint/commit/9a3c73c130d437a65f4edba0dcb63390e68cac41) Docs: fix a broken link (#14790) (Sam Chen) +* [`ddffa8a`](https://github.com/eslint/eslint/commit/ddffa8ad58b4b124b08061e9045fdb5370cbdbe3) Update: Indicating the operator in question (#14764) (Paul Smith) +* [`bba714c`](https://github.com/eslint/eslint/commit/bba714c2ed813821ed288fbc07722cdde6e534fe) Update: Clarifying what changes need to be made in no-mixed-operators (#14765) (Paul Smith) +* [`b0d22e3`](https://github.com/eslint/eslint/commit/b0d22e3eff18ea7f08189134c07cddceaec69a09) Docs: Mention benefit of providing `meta.docs.url` (#14774) (Bryan Mishkin) +* [`000cc79`](https://github.com/eslint/eslint/commit/000cc796fd487e7b9ba8bcc5857dd691044479cc) Sponsors: Sync README with website (ESLint Jenkins) +* [`a6a7438`](https://github.com/eslint/eslint/commit/a6a7438502abc6a1e29ec35cfbe2058ffc0803b1) Chore: pin fs-teardown@0.1.1 (#14771) (Milos Djermanovic) + +v7.30.0 - July 2, 2021 + +* [`5f74642`](https://github.com/eslint/eslint/commit/5f746420700d457b92dd86659de588d272937b79) Chore: don't check Program.start in SourceCode#getComments (refs #14744) (#14748) (Milos Djermanovic) +* [`19a871a`](https://github.com/eslint/eslint/commit/19a871a35ae9997ce352624b1081c96c54b73a9f) Docs: Suggest linting plugins for ESLint plugin developers (#14754) (Bryan Mishkin) +* [`aa87329`](https://github.com/eslint/eslint/commit/aa87329d919f569404ca573b439934552006572f) Docs: fix broken links (#14756) (Sam Chen) +* [`278813a`](https://github.com/eslint/eslint/commit/278813a6e759f6b5512ac64c7530c9c51732e692) Docs: fix and add more examples for new-cap rule (fixes #12874) (#14725) (Nitin Kumar) +* [`ed1da5d`](https://github.com/eslint/eslint/commit/ed1da5d96af2587b7211854e45cf8657ef808710) Update: ecmaVersion allows "latest" (#14720) (薛定谔的猫) +* [`104c0b5`](https://github.com/eslint/eslint/commit/104c0b592f203d315a108d311c58375357e40b24) Update: improve use-isnan rule to detect `Number.NaN` (fixes #14715) (#14718) (Nitin Kumar) +* [`b08170b`](https://github.com/eslint/eslint/commit/b08170b92beb22db6ec612ebdfff930f9e0582ab) Update: Implement FlatConfigArray (refs #13481) (#14321) (Nicholas C. Zakas) +* [`f113cdd`](https://github.com/eslint/eslint/commit/f113cdd872257d72bbd66d95e4eaf13623323b24) Chore: upgrade eslint-plugin-eslint-plugin (#14738) (薛定谔的猫) +* [`1b8997a`](https://github.com/eslint/eslint/commit/1b8997ab63781f4ebf87e3269400b2ef4c7d2973) Docs: Fix getRulesMetaForResults link syntax (#14723) (Brandon Mills) +* [`aada733`](https://github.com/eslint/eslint/commit/aada733d2aee830aa32cccb9828cd72db4ccd6bd) Docs: fix two broken links (#14726) (Sam Chen) +* [`8972529`](https://github.com/eslint/eslint/commit/8972529f82d13bd04059ee8852b4ebb9b5350962) Docs: Update README team and sponsors (ESLint Jenkins) + +v7.29.0 - June 18, 2021 + +* [`bfbfe5c`](https://github.com/eslint/eslint/commit/bfbfe5c1fd4c39a06d5e159dbe48479ca4305fc0) New: Add only to RuleTester (refs eslint/rfcs#73) (#14677) (Brandon Mills) +* [`c2cd7b4`](https://github.com/eslint/eslint/commit/c2cd7b4a18057ca6067bdfc16de771dc5d90c0ea) New: Add ESLint#getRulesMetaForResults() (refs #13654) (#14716) (Nicholas C. Zakas) +* [`eea7e0d`](https://github.com/eslint/eslint/commit/eea7e0d09d6ef43d6663cbe424e7974764a5f7fe) Chore: remove duplicate code (#14719) (Nitin Kumar) +* [`6a1c7a0`](https://github.com/eslint/eslint/commit/6a1c7a0dac050ea5876972c50563a7eb867b38d3) Fix: allow fallthrough comment inside block (fixes #14701) (#14702) (Kevin Gibbons) +* [`a47e5e3`](https://github.com/eslint/eslint/commit/a47e5e30b0da364593b6881f6826c595da8696f5) Docs: Add Mega-Linter to the list of integrations (#14707) (Nicolas Vuillamy) +* [`353ddf9`](https://github.com/eslint/eslint/commit/353ddf965078030794419b089994373e27ffc86e) Chore: enable reportUnusedDisableDirectives in eslint-config-eslint (#14699) (薛定谔的猫) +* [`757c495`](https://github.com/eslint/eslint/commit/757c49584a5852c468c1b4a0b74ad3aa39d954e5) Chore: add some rules to eslint-config-eslint (#14692) (薛定谔的猫) +* [`c93a222`](https://github.com/eslint/eslint/commit/c93a222563177a9b5bc7a59aa106bc0a6d31e063) Docs: fix a broken link (#14697) (Sam Chen) +* [`655c118`](https://github.com/eslint/eslint/commit/655c1187fc845bac61ae8d06c556f1a59ee2071b) Sponsors: Sync README with website (ESLint Jenkins) +* [`e2bed2e`](https://github.com/eslint/eslint/commit/e2bed2ead22b575d55ccaeed94eecd3a979dd871) Sponsors: Sync README with website (ESLint Jenkins) +* [`8490fb4`](https://github.com/eslint/eslint/commit/8490fb42e559ef0b3c34ac60be4e05e0d879a9cb) Sponsors: Sync README with website (ESLint Jenkins) +* [`ddbe877`](https://github.com/eslint/eslint/commit/ddbe877c95224e127215d35562a175c6f2b7ba22) Sponsors: Sync README with website (ESLint Jenkins) + +v7.28.0 - June 4, 2021 + +* [`1237705`](https://github.com/eslint/eslint/commit/1237705dd08c209c5e3136045ec51a4ba87a3abe) Upgrade: @eslint/eslintrc to 0.4.2 (#14672) (Milos Djermanovic) +* [`123fb86`](https://github.com/eslint/eslint/commit/123fb8648731c2c23313c544ffa1872d3024fe68) Docs: Add Feedback Needed triage description (#14670) (Nicholas C. Zakas) +* [`c545163`](https://github.com/eslint/eslint/commit/c5451635b4e89827cfc8d8d77083647c74506e42) Update: support multiline /*eslint-env*/ directives (fixes #14652) (#14660) (薛定谔的猫) +* [`8d1e75a`](https://github.com/eslint/eslint/commit/8d1e75a31b3e3d67130709a219bdd07ce6f3cf74) Upgrade: glob-parent version in package.json (#14658) (Hamza Najeeb) +* [`1f048cb`](https://github.com/eslint/eslint/commit/1f048cb0eec660d2052f1758f4b2ad7b1cb424e1) Fix: no-implicit-coercion false positive with `String()` (fixes #14623) (#14641) (Milos Djermanovic) +* [`d709abf`](https://github.com/eslint/eslint/commit/d709abfdde087325d4578b6709dc61040b8ca9d8) Chore: fix comment location in no-unused-vars (#14648) (Milos Djermanovic) +* [`e44ce0a`](https://github.com/eslint/eslint/commit/e44ce0a8acfaad513c385150c25e76e82a1b8f12) Fix: no-duplicate-imports allow unmergeable (fixes #12758, fixes #12760) (#14238) (Soufiane Boutahlil) +* [`bb66a3d`](https://github.com/eslint/eslint/commit/bb66a3d91af426dac9a7ffdbe47bdbbc0ffd4dd7) New: add `getPhysicalFilename()` method to rule context (fixes #11989) (#14616) (Nitin Kumar) +* [`2e43dac`](https://github.com/eslint/eslint/commit/2e43dacd24337a82d4184fac9b44d497675f46ef) Docs: fix `no-sequences` example (#14643) (Nitin Kumar) +* [`958ff4e`](https://github.com/eslint/eslint/commit/958ff4e8a5102f204f1484d09985e28a79790996) Docs: add note for arrow functions in no-seq rule (#14578) (Nitin Kumar) +* [`e4f111b`](https://github.com/eslint/eslint/commit/e4f111b67d114adbf76a9c9dbb18fa4f49bc91b6) Fix: arrow-body-style crash with object pattern (fixes #14633) (#14635) (Milos Djermanovic) +* [`ec28b5a`](https://github.com/eslint/eslint/commit/ec28b5a2bdc69f34ce29d670f5e84d2446774a00) Chore: upgrade eslint-plugin-eslint-plugin (#14590) (薛定谔的猫) +* [`85a2725`](https://github.com/eslint/eslint/commit/85a2725b1fade5538e727102d9701ccb503e54d4) Docs: Update README team and sponsors (ESLint Jenkins) + +v7.27.0 - May 21, 2021 + +* [`2c0868c`](https://github.com/eslint/eslint/commit/2c0868cbeadc9f42716fa1178ebdc6b4cee6d31e) Chore: merge all html formatter files into `html.js` (#14612) (Milos Djermanovic) +* [`9e9b5e0`](https://github.com/eslint/eslint/commit/9e9b5e07475564813b62cd1d7562a93c5fb4bc74) Update: no-unused-vars false negative with comma operator (fixes #14325) (#14354) (Nitin Kumar) +* [`afe9569`](https://github.com/eslint/eslint/commit/afe95693e1e4316a1c6f01d39345061d4c5921c7) Chore: use includes instead of indexOf (#14607) (Mikhail Bodrov) +* [`c0f418e`](https://github.com/eslint/eslint/commit/c0f418e2476df98519bc156b81d20431984e8704) Chore: Remove lodash (#14287) (Stephen Wade) +* [`52655dd`](https://github.com/eslint/eslint/commit/52655dd54925ee02af2ba3a0ebc09de959ae3101) Update: no-restricted-imports custom message for patterns (fixes #11843) (#14580) (Alex Holden) +* [`967b1c4`](https://github.com/eslint/eslint/commit/967b1c4ceca8f5248378477da94ff118dafaa647) Chore: Fix typo in large.js (#14589) (Ikko Ashimine) +* [`2466a05`](https://github.com/eslint/eslint/commit/2466a05160de60958457d984b79fd445c12ebc98) Sponsors: Sync README with website (ESLint Jenkins) +* [`fe29f18`](https://github.com/eslint/eslint/commit/fe29f18227fd02fd7c3da033417d621275b00d0a) Sponsors: Sync README with website (ESLint Jenkins) +* [`086c1d6`](https://github.com/eslint/eslint/commit/086c1d6e8593cf8e7851daa8f2a890c213cf6999) Chore: add more test cases for `no-sequences` (#14579) (Nitin Kumar) +* [`6a2ced8`](https://github.com/eslint/eslint/commit/6a2ced892c0dc43fa4942293b9f1c4b9151c3741) Docs: Update README team and sponsors (ESLint Jenkins) + +v7.26.0 - May 7, 2021 + +* [`aaf65e6`](https://github.com/eslint/eslint/commit/aaf65e629adb74401092c3ccc9cb4e4bd1c8609b) Upgrade: eslintrc for ModuleResolver fix (#14577) (Brandon Mills) +* [`ae6dbd1`](https://github.com/eslint/eslint/commit/ae6dbd148aaca83e4bd04b9351b54029c50fac8a) Fix: track variables, not names in require-atomic-updates (fixes #14208) (#14282) (Patrick Ahmetovic) +* [`6a86e50`](https://github.com/eslint/eslint/commit/6a86e5018a3733049c09261bcabae422fbea893d) Chore: remove loose-parser tests (fixes #14315) (#14569) (Milos Djermanovic) +* [`ee3a3ea`](https://github.com/eslint/eslint/commit/ee3a3ead893d185cc4b1ae9041940cb0968767e1) Fix: create `.eslintrc.cjs` for `module` type (#14304) (Nitin Kumar) +* [`6791dec`](https://github.com/eslint/eslint/commit/6791decfc58b7b09cfd0aabd15a3d14148aae073) Docs: fix example for require-atomic-updates (#14562) (Milos Djermanovic) +* [`388eb7e`](https://github.com/eslint/eslint/commit/388eb7e14039b8951462b311d6121002ca5232cb) Sponsors: Sync README with website (ESLint Jenkins) +* [`f071d1e`](https://github.com/eslint/eslint/commit/f071d1ef91286bf2e3fb63d9b679ff7702819a1e) Update: Add automated suggestion to `radix` rule for parsing decimals (#14291) (Bryan Mishkin) +* [`0b6a3f3`](https://github.com/eslint/eslint/commit/0b6a3f31e6e78825114f82d4e0aed9cd72f784ac) New: Include XO style guide in `eslint --init` (#14193) (Federico Brigante) + +v7.25.0 - April 23, 2021 + +* [`5df5e4a`](https://github.com/eslint/eslint/commit/5df5e4a9976964fcf4dc67e241d4e22ec1370fe0) Update: highlight last write reference for no-unused-vars (fixes #14324) (#14335) (Nitin Kumar) +* [`0023872`](https://github.com/eslint/eslint/commit/00238729329b86b4f8af89ebfe278da3095a6075) Docs: Add deprecated note to `working-with-rules-deprecated` page (#14344) (Michael Novotny) +* [`36fca70`](https://github.com/eslint/eslint/commit/36fca70fa29ab65080076810de98e09133254b8a) Chore: Upgrade eslump to 3.0.0 (#14350) (Stephen Wade) +* [`59b689a`](https://github.com/eslint/eslint/commit/59b689a0b3fa658b8380431007cc1facb4617a3b) Chore: add node v16 (#14355) (薛定谔的猫) +* [`35a1f5e`](https://github.com/eslint/eslint/commit/35a1f5e967e4e87360d3e70d3fca0f7adeeaa1d7) Sponsors: Sync README with website (ESLint Jenkins) +* [`fb0a92b`](https://github.com/eslint/eslint/commit/fb0a92b3d2fed4a17bc39b7f02c540cd1175ec7d) Chore: rename misspelled identifier in test (#14346) (Tobias Nießen) +* [`f2babb1`](https://github.com/eslint/eslint/commit/f2babb1069194166e0ac1afd1269bbd06ac299b6) Docs: update pull request template (#14336) (Nitin Kumar) +* [`02dde29`](https://github.com/eslint/eslint/commit/02dde29eeb523ca24bc4ae7797d38627c3ba9fe9) Docs: Fix anchor in 'docs/developer-guide/working-with-rules.md' (#14332) (Nate-Wilkins) +* [`07d14c3`](https://github.com/eslint/eslint/commit/07d14c304c358fbc9c3d318e1377d2b2bda9179f) Chore: remove extraneous command from lint-staged config (#14314) (James George) +* [`41b3570`](https://github.com/eslint/eslint/commit/41b3570b6c014c534bb3208ed00050fd99842101) Update: lint code block with same extension but different content (#14227) (JounQin) +* [`eb29996`](https://github.com/eslint/eslint/commit/eb299966bdc3920dd2c6f9774d95103d242fc409) Docs: add more examples with arrow functions for no-sequences rule (#14313) (Nitin Kumar) + +v7.24.0 - April 9, 2021 + +* [`0c346c8`](https://github.com/eslint/eslint/commit/0c346c87fa83c6d1184fdafb9c0748c2e15a423d) Chore: ignore `pnpm-lock.yaml` (#14303) (Nitin Kumar) +* [`f06ecdf`](https://github.com/eslint/eslint/commit/f06ecdf78b6d6f366434d73a6acfe7041d575223) Update: Add disallowTemplateShorthand option in no-implicit-coercion (#13579) (Remco Haszing) +* [`71a80e3`](https://github.com/eslint/eslint/commit/71a80e38aab2dada01b808ed43d9b0e806d863c4) Docs: fix broken links in Node.js API docs toc (#14296) (u-sho (Shouhei Uechi)) +* [`bd46dc4`](https://github.com/eslint/eslint/commit/bd46dc4647faa4c3bbb5f60d4c00616a64081398) Docs: Fix incorrect reference to "braces" in arrow-parens (#14300) (emclain) +* [`0d6235e`](https://github.com/eslint/eslint/commit/0d6235ea201b8b90761ee69bb4d46ae18899c28d) Docs: update header in max-lines (#14273) (Shinigami) +* [`70c9216`](https://github.com/eslint/eslint/commit/70c92164017238e329e3a2d1654a0227b8f953f7) Docs: Update issue triage to include blocked column (#14275) (Nicholas C. Zakas) +* [`abca186`](https://github.com/eslint/eslint/commit/abca186a845200fd7728c4e5f220973e640054f9) Docs: Fix typo in suggestions section (#14293) (Kevin Partington) +* [`c4d8b0d`](https://github.com/eslint/eslint/commit/c4d8b0db62b859e721105d4bc0f4044ce346995e) Fix: no-unused-vars ignoreRestSiblings check assignments (fixes #14163) (#14264) (YeonJuan) +* [`b51d077`](https://github.com/eslint/eslint/commit/b51d0778d76c2aa27578caca3ea82c867dced3e4) Update: add ignoreNonDeclaration to no-multi-assign rule (fixes #12545) (#14185) (t-mangoe) +* [`c981fb1`](https://github.com/eslint/eslint/commit/c981fb1994cd04914042ced1980aa86b68ba7be9) Chore: Upgrade mocha to 8.3.2 (#14278) (Stephen Wade) +* [`147fc04`](https://github.com/eslint/eslint/commit/147fc045e699811fab33dddf77498324ddf7e9d6) Docs: Fix `repro:needed` label in bug report template (#14285) (Milos Djermanovic) +* [`e1cfde9`](https://github.com/eslint/eslint/commit/e1cfde93eec71a15c2df1ad660a7a6171204ba80) Docs: Update bug report template (#14276) (Nicholas C. Zakas) +* [`c85c2f1`](https://github.com/eslint/eslint/commit/c85c2f1138a9e952655f19ee780ab0c8e35431a8) Docs: Add fatal to Node.js API LintMessage type (#14251) (Brandon Mills) + +v7.23.0 - March 26, 2021 + +* [`687ccae`](https://github.com/eslint/eslint/commit/687ccae517b8b815cf21e948f80d22e2bf118a99) Update: add option "allowInParentheses" to no-sequences (fixes #14197) (#14199) (Daniel Rentz) +* [`dbf2529`](https://github.com/eslint/eslint/commit/dbf252964d9a2b8957cfe0aed5c87a6d4a5cce24) Sponsors: Sync README with website (ESLint Jenkins) +* [`4bdf2c1`](https://github.com/eslint/eslint/commit/4bdf2c1dade27625b601080687ce95b8c229e491) Sponsors: Sync README with website (ESLint Jenkins) +* [`49d1697`](https://github.com/eslint/eslint/commit/49d16977d969070e5240074e76036f56631a90d3) Chore: Upgrade eslint-plugin-jsdoc to v25 and remove --legacy-peer-deps (#14244) (Brandon Mills) +* [`43f1685`](https://github.com/eslint/eslint/commit/43f1685356b9840e09631843ad9ccf0440a498b0) Update: `--quiet` should not supress `--max-warnings` (fixes #14202) (#14242) (Milos Djermanovic) +* [`909c727`](https://github.com/eslint/eslint/commit/909c7271b8d294bd884827ad5df02615b6ec5e82) Docs: Add valid example that shows vars in a block scope (#14230) (Ed S) +* [`28583eb`](https://github.com/eslint/eslint/commit/28583eb8ada20f32579841bec3fbd60a018d5931) Fix: no-mixed-operators false positives with `? :` (fixes #14223) (#14226) (Milos Djermanovic) +* [`a99eb2d`](https://github.com/eslint/eslint/commit/a99eb2dc2a297d16e40a9feef3956668716c4eb5) Fix: Clarify line breaks in object-curly-newline (fixes #14024) (#14063) (armin yahya) +* [`8984c91`](https://github.com/eslint/eslint/commit/8984c91372e64d1e8dd2ce21b87b80977d57bff9) Update: eslint --env-info output os info (#14059) (薛定谔的猫) +* [`2a79306`](https://github.com/eslint/eslint/commit/2a79306f71c4c80f1e3e73be2a140d07cf55c63d) Sponsors: Sync README with website (ESLint Jenkins) +* [`ebd7026`](https://github.com/eslint/eslint/commit/ebd70263f6e6fe597613d90f4b8de84710c2f3d6) Docs: Fix typo (#14225) (Greg Finley) +* [`a2013fc`](https://github.com/eslint/eslint/commit/a2013fcf996c8651bc760df21d900442828a6884) Sponsors: Sync README with website (ESLint Jenkins) + +v7.22.0 - March 12, 2021 + +* [`3a432d8`](https://github.com/eslint/eslint/commit/3a432d82b3a5710aff7da20302fe0b94fedc46c2) Docs: Improve documentation for indent rule (#14168) (Serkan Özel) +* [`f62ec8d`](https://github.com/eslint/eslint/commit/f62ec8d30d925e70e4d0d40640857c587ac2e116) Update: throw error when fix range is invalid (#14142) (Jacob Bandes-Storch) +* [`0eecad2`](https://github.com/eslint/eslint/commit/0eecad271358f753730741fcfcb2f7cc915c1fa7) Upgrade: Update lodash in package.json to V 4.17.21 (#14159) (Basem Al-Nabulsi) +* [`5ad91aa`](https://github.com/eslint/eslint/commit/5ad91aa7df3d6bc185786e6eccd9e055fd951055) Update: report es2021 globals in no-extend-native (refs #13602) (#14177) (Milos Djermanovic) +* [`c295581`](https://github.com/eslint/eslint/commit/c295581aca4e08ec4ae8e5ee5726a6f454a3ee26) Chore: remove leftover JSDoc from lint-result-cache (#14176) (Milos Djermanovic) +* [`0d541f9`](https://github.com/eslint/eslint/commit/0d541f9d9d58966372e2055a8f69fb9483d56a4b) Chore: Reduce lodash usage (#14178) (Stephen Wade) +* [`27a67d7`](https://github.com/eslint/eslint/commit/27a67d71ffa9bbd7af02ae448844e127bcf956dc) Sponsors: Sync README with website (ESLint Jenkins) +* [`459d821`](https://github.com/eslint/eslint/commit/459d821f4a599501ceb002f9d7a5034fc45ffbb0) Chore: upgrade dependencies of browser test (#14127) (Pig Fang) +* [`ebfb63a`](https://github.com/eslint/eslint/commit/ebfb63a682004a008f2707dbad616e5ae1630b2c) Sponsors: Sync README with website (ESLint Jenkins) +* [`3ba029f`](https://github.com/eslint/eslint/commit/3ba029fbffd44068be93254890fc2aec3e92c212) Docs: Remove Extraneous Dash (#14164) (Danny Hurlburt) +* [`6f4540e`](https://github.com/eslint/eslint/commit/6f4540ea7ea39775906526506fd7abd7ea97610c) Sponsors: Sync README with website (ESLint Jenkins) +* [`ddf361c`](https://github.com/eslint/eslint/commit/ddf361ca2a2a01a9974f421e5f62270df282d0e8) Docs: Fix Formatting (#14154) (Danny Hurlburt) +* [`c0d2ac1`](https://github.com/eslint/eslint/commit/c0d2ac16f8f9c75c62c78e9fe6a24a25ba0d7828) Sponsors: Sync README with website (ESLint Jenkins) +* [`a8df03e`](https://github.com/eslint/eslint/commit/a8df03efe3bc47665d2112c2cdd5bead337d475d) Docs: Clarify triage process (#14117) (Nicholas C. Zakas) + +v7.21.0 - February 27, 2021 + +* [`3cd5440`](https://github.com/eslint/eslint/commit/3cd5440b94d5fa4f11a09f50b685f6150f0c2d41) Upgrade: @eslint/eslintrc to 0.4.0 (#14147) (Brandon Mills) +* [`c0b8c71`](https://github.com/eslint/eslint/commit/c0b8c71df4d0b3f54b20587432d9133741985d5c) Upgrade: Puppeteer to 7.1.0 (#14122) (Tim van der Lippe) +* [`08ae31e`](https://github.com/eslint/eslint/commit/08ae31e539e381cd0eabf6393fa5c20f1d59125f) New: Implement cacheStrategy (refs eslint/rfcs#63) (#14119) (Manu Chambon) +* [`5e51fd2`](https://github.com/eslint/eslint/commit/5e51fd28dc773c11c924450d24088f97f2824f00) Update: do not ignore symbolic links (fixes #13551, fixes #13615) (#14126) (Pig Fang) +* [`87c43a5`](https://github.com/eslint/eslint/commit/87c43a5d7ea2018cffd6d9b5c431ecb60caaf0d6) Chore: improve a few comments and fix typos (#14125) (Tobias Nießen) +* [`e19c51e`](https://github.com/eslint/eslint/commit/e19c51ea2ef2cf666d94218c66f6b223bb2e9dae) Sponsors: Sync README with website (ESLint Jenkins) +* [`b8aea99`](https://github.com/eslint/eslint/commit/b8aea9988b6451b6a05af4f3ede8d6ed5c1d9926) Fix: pluralize 'line' to 'lines' in max-lines-per-function description (#14115) (Trevin Hofmann) +* [`f5b53e2`](https://github.com/eslint/eslint/commit/f5b53e285ab5286ea382d73b379b820f649c20d0) Sponsors: Sync README with website (ESLint Jenkins) +* [`eee1213`](https://github.com/eslint/eslint/commit/eee12134ce0956e9f825c1630776b1731551a948) Sponsors: Sync README with website (ESLint Jenkins) +* [`5c4d7ea`](https://github.com/eslint/eslint/commit/5c4d7ea8d2e8d137c42b918dc99a84b4a5fed9b3) Sponsors: Sync README with website (ESLint Jenkins) + +v7.20.0 - February 12, 2021 + +* [`f4ac3b0`](https://github.com/eslint/eslint/commit/f4ac3b0e7072fbd3c14e9c64ff0c2c255a4eb730) Docs: fix sibling selector descriptions (#14099) (Milos Djermanovic) +* [`9d6063a`](https://github.com/eslint/eslint/commit/9d6063add931f0803cae1676d5df307baf114360) Fix: Crash with esquery when using JSX (fixes #13639) (#14072) (Yosuke Ota) +* [`a0871f1`](https://github.com/eslint/eslint/commit/a0871f1840060bd23cfe0952a096b107142db2f0) Docs: Triage process (#14014) (Nicholas C. Zakas) +* [`ad90761`](https://github.com/eslint/eslint/commit/ad9076183bc2c2029525edfc4596e403999348d1) Update: add enforceForJSX option to no-unused-expressions rule (#14012) (Duncan Beevers) +* [`d6c84af`](https://github.com/eslint/eslint/commit/d6c84af67318537177ffac0120a81af08e3e9df4) Fix: `--init` autoconfig shouldn't add deprecated rules (fixes #14017) (#14060) (Milos Djermanovic) +* [`9b277a1`](https://github.com/eslint/eslint/commit/9b277a16a7261e51b7ba36d6de7f996e9203a6a4) Fix: Support ENOTDIR error code in the folder existence checking utility (#13973) (Constantine Genchevsky) +* [`7aeb127`](https://github.com/eslint/eslint/commit/7aeb12798f2b9da706f3593f26a02e717929c9af) Upgrade: pin @babel/code-frame@7.12.11 (#14067) (Milos Djermanovic) +* [`b4e2af5`](https://github.com/eslint/eslint/commit/b4e2af5db1c29343ffec2cd104b04bf39b77ee56) Docs: Add more fields to bug report template (#14039) (Nicholas C. Zakas) +* [`96f1d49`](https://github.com/eslint/eslint/commit/96f1d49a4647e59f2fb918be096654e290513adc) Sponsors: Sync README with website (ESLint Jenkins) +* [`cb27b0a`](https://github.com/eslint/eslint/commit/cb27b0abeda6dfee55dd43b9cbe12afad321f55d) Build: package.json update for eslint-config-eslint release (ESLint Jenkins) +* [`4cab165`](https://github.com/eslint/eslint/commit/4cab165bf4e6e5e9f42a59a37a8ff2548c0af87d) Sponsors: Sync README with website (ESLint Jenkins) + +v7.19.0 - January 30, 2021 + +* [`ce7f061`](https://github.com/eslint/eslint/commit/ce7f06121d9eb9cc2b3da24b4456b4d382e1413b) Update: add shadowed variable loc to message in no-shadow (fixes #13646) (#13841) (t-mangoe) +* [`c60e23f`](https://github.com/eslint/eslint/commit/c60e23ff306a14ca6eabcadb275ed27995fcc6e4) Update: fix `let` logic in for-in and for-of loops in no-extra-parens (#14011) (Milos Djermanovic) +* [`d76e8f6`](https://github.com/eslint/eslint/commit/d76e8f69bd791357c67ada7b5c55608acf29b622) Fix: no-useless-rename invalid autofix with parenthesized identifiers (#14032) (Milos Djermanovic) +* [`5800d92`](https://github.com/eslint/eslint/commit/5800d921144ec330b6ee7cd03364434007331354) Docs: Clarify stylistic rule update policy (#14052) (Brandon Mills) +* [`0ccf6d2`](https://github.com/eslint/eslint/commit/0ccf6d200147437b338cadb34546451972befd75) Docs: remove configuring.md (#14036) (Milos Djermanovic) +* [`65bb0ab`](https://github.com/eslint/eslint/commit/65bb0abde56f72586036fff151aa2d13f1b7be6c) Chore: Clean up new issue workflow (#14040) (Nicholas C. Zakas) +* [`e1da90f`](https://github.com/eslint/eslint/commit/e1da90fc414a3c9c16f52db4a5bd81bd4f9532a4) Fix: nested indenting for offsetTernaryExpressions: true (fixes #13971) (#13972) (Chris Brody) +* [`1a078b9`](https://github.com/eslint/eslint/commit/1a078b9166f29cb3760435ddbc1a0da4a0974d4a) Update: check ternary `:` even if `?` was reported in space-infix-ops (#13963) (Milos Djermanovic) +* [`fb27422`](https://github.com/eslint/eslint/commit/fb274226242eaebc1480fc9c901202986afc3c8a) Fix: extend prefer-const fixer range to whole declaration (fixes #13899) (#14033) (Nitin Kumar) +* [`e0b05c7`](https://github.com/eslint/eslint/commit/e0b05c704f3ce6f549d14718236d22fe49fcb611) Docs: add a correct example to no-unsafe-optional-chaining (refs #14029) (#14050) (armin yahya) +* [`46e836d`](https://github.com/eslint/eslint/commit/46e836d46442d2ec756038a2e12ba19b74394dbd) Sponsors: Sync README with website (ESLint Jenkins) +* [`3fc4fa4`](https://github.com/eslint/eslint/commit/3fc4fa485ca9ccd5e16dbc7e53ba31452d22dc4a) Docs: update configuring links (#14038) (Milos Djermanovic) +* [`8561c21`](https://github.com/eslint/eslint/commit/8561c2116ef89e53ebffb750066f1b00a4acdb76) Docs: fix broken links in configuring/README.md (#14046) (Milos Djermanovic) +* [`1c309eb`](https://github.com/eslint/eslint/commit/1c309ebca4a81a0faf397103dbc621019dea8c9c) Update: fix no-invalid-regexp false negatives with no flags specified (#14018) (Milos Djermanovic) +* [`f6602d5`](https://github.com/eslint/eslint/commit/f6602d569427e9e2a4f3b5ca3fc3a8bffb28d15e) Docs: Reorganize Configuration Documentation (#13837) (klkhan) +* [`c753b44`](https://github.com/eslint/eslint/commit/c753b442ef67867a178ffc2ad29b4e0534f72469) Sponsors: Sync README with website (ESLint Jenkins) +* [`a4fdb70`](https://github.com/eslint/eslint/commit/a4fdb7001aa41b9ad8bb92cc8a47b9135c94afc7) Docs: Fixed Typo (#14007) (Yash Singh) +* [`f7ca481`](https://github.com/eslint/eslint/commit/f7ca48165d025e01c38698352cff24d1de87cc8b) Docs: Explain why we disable lock files (refs eslint/tsc-meetings#234) (#14006) (Brandon Mills) + +v7.18.0 - January 15, 2021 + +* [`e3264b2`](https://github.com/eslint/eslint/commit/e3264b26a625d926a1ea96df1c4b643af5c3797c) Upgrade: @eslint/eslintrc to improve error message for invalid extends (#14009) (Milos Djermanovic) +* [`f17c3c3`](https://github.com/eslint/eslint/commit/f17c3c371789ffa84f0cda57101e8193899adbe6) Update: check logical assignment operators in the complexity rule (#13979) (Milos Djermanovic) +* [`672deb0`](https://github.com/eslint/eslint/commit/672deb057a14a7acad8c669189870009f1edb8a6) Docs: fix no-invalid-regexp docs regarding ecmaVersion (#13991) (Milos Djermanovic) +* [`179a910`](https://github.com/eslint/eslint/commit/179a910b32e853bc12a9dd71f7c10e762cbeac44) Fix: --init crash on question to upgrade/downgrade ESLint (fixes #13978) (#13995) (Milos Djermanovic) +* [`292b1c0`](https://github.com/eslint/eslint/commit/292b1c0017bc442d399f67e01d699c59e6b71453) Fix: no-extra-parens false positive with `let` identifier in for-loop (#13981) (Milos Djermanovic) +* [`de61f94`](https://github.com/eslint/eslint/commit/de61f9444cf58a4d70e126ab3d10bf20851de7c9) Sponsors: Sync README with website (ESLint Jenkins) +* [`9250d16`](https://github.com/eslint/eslint/commit/9250d167ceb5684669eabe93dae326e33f0684f2) Upgrade: Bump lodash to fix security issue (#13993) (Frederik Prijck) +* [`75fea9b`](https://github.com/eslint/eslint/commit/75fea9bcdd3dde5a07e0089d9011a4df518cdbe3) Sponsors: Sync README with website (ESLint Jenkins) +* [`f2687e7`](https://github.com/eslint/eslint/commit/f2687e71f9e2a2773f821c4dc1a02abe95b97df4) Docs: update space-in-parens related rules (#13985) (Chris Brody) +* [`4a38bbe`](https://github.com/eslint/eslint/commit/4a38bbe81b4b29ca1a4e62d0a0cc8d525455b063) Docs: space-in-parens examples with no arguments etc. (#13987) (Chris Brody) +* [`3e49169`](https://github.com/eslint/eslint/commit/3e491698687aa08b3b798cee0931f0872ca1bc55) Sponsors: Sync README with website (ESLint Jenkins) +* [`c5bf1f2`](https://github.com/eslint/eslint/commit/c5bf1f2150a9fbbb9e74c04808dc3bfeda1ed321) Sponsors: Sync README with website (ESLint Jenkins) +* [`98a729c`](https://github.com/eslint/eslint/commit/98a729c9def54cee9e5478e75e8bd6f28167d5e8) Sponsors: Sync README with website (ESLint Jenkins) +* [`e83a696`](https://github.com/eslint/eslint/commit/e83a6962b51b05c2ddfe42b0748b405d515eeb9d) Sponsors: Sync README with website (ESLint Jenkins) +* [`78cb483`](https://github.com/eslint/eslint/commit/78cb48345c725e9f90fd0e631c476802244df4a4) Chore: test `foo( )` with space-in-parens option "always" (#13986) (Chris Brody) +* [`f6948f6`](https://github.com/eslint/eslint/commit/f6948f6bdc763dca0787bb2786bc9f6f9ed88f43) Docs: Update semantic versioning policy (#13970) (Nicholas C. Zakas) +* [`0688212`](https://github.com/eslint/eslint/commit/068821248e2d2eff11152f270102d537d8fa8126) Sponsors: Sync README with website (ESLint Jenkins) +* [`aeba5e5`](https://github.com/eslint/eslint/commit/aeba5e5e6062095a06d9b867d7e7ee75422f25b9) Chore: fix typo (#13975) (Nitin Kumar) +* [`4ee1134`](https://github.com/eslint/eslint/commit/4ee113414bdcbea240a5d9db27da6a10df472005) Sponsors: Sync README with website (ESLint Jenkins) + +v7.17.0 - January 1, 2021 + +* [`e128e77`](https://github.com/eslint/eslint/commit/e128e775e9fa116a0ad68a071f1f0997589f8cd4) Update: check logical assignment in no-constant-condition (#13946) (Milos Djermanovic) +* [`cc48713`](https://github.com/eslint/eslint/commit/cc4871369645c3409dc56ded7a555af8a9f63d51) Chore: refactor calculating range and loc in no-useless-escape (#13964) (Milos Djermanovic) +* [`535fe47`](https://github.com/eslint/eslint/commit/535fe47fee6544b4957378f9408117c8318d4762) Update: use regexpp's default ecmaVersion in no-control-regex (#13969) (Milos Djermanovic) +* [`83e98cd`](https://github.com/eslint/eslint/commit/83e98cd48ce3d1acf729f4fb9be40cff332abd6e) Fix: use regexpp's default ecmaVersion in no-invalid-regexp (#13968) (Milos Djermanovic) +* [`7297363`](https://github.com/eslint/eslint/commit/7297363ea355d0e3b2a74aaec586126deb91fd93) Docs: fix examples for no-multi-str (#13966) (Milos Djermanovic) +* [`0649871`](https://github.com/eslint/eslint/commit/06498716bfba65ed8c7217917a29a07ad267193a) Update: add autofix to rule multiline-ternary (#13958) (薛定谔的猫) +* [`f6e7e32`](https://github.com/eslint/eslint/commit/f6e7e3231bc43c989f8c953de8e0d328bac5eea0) Fix: no-useless-escape wrong loc and fix with CRLF in template elements (#13953) (Milos Djermanovic) +* [`19c69c0`](https://github.com/eslint/eslint/commit/19c69c0293a98634ff0d4884a0cdabc1213ebcb4) Fix: one-var shouldn't split declaration if it isn't in a statement list (#13959) (Milos Djermanovic) +* [`e451b96`](https://github.com/eslint/eslint/commit/e451b9664aface32ad9321eaf5619c875dc76553) Docs: update build tool for webpack (#13962) (Sam Chen) +* [`c3e9acc`](https://github.com/eslint/eslint/commit/c3e9accce2f61b04ab699fd37c90703305281aa3) Chore: fix typos (#13960) (YeonJuan) +* [`7289ecf`](https://github.com/eslint/eslint/commit/7289ecf58ed0d2e7f0ad7f1e5004c8927a7bf805) Sponsors: Sync README with website (ESLint Jenkins) + +v7.16.0 - December 18, 2020 + +* [`a62ad6f`](https://github.com/eslint/eslint/commit/a62ad6f03151358b93b5fede022a30d67310705c) Update: fix false negative of no-extra-parens with NewExpression (#13930) (Milos Djermanovic) +* [`f85b4c7`](https://github.com/eslint/eslint/commit/f85b4c72668c95c79fdb342b74dbd53d21baa93f) Fix: require-atomic-updates false positive across await (fixes #11954) (#13915) (buhi) +* [`301d0c0`](https://github.com/eslint/eslint/commit/301d0c05229dbd6cfb1045d716524e8ec46fa2c1) Fix: no-constant-condition false positives with unary expressions (#13927) (Milos Djermanovic) +* [`555c128`](https://github.com/eslint/eslint/commit/555c128b49ae6d9c100a9f8429416417edb40d13) Fix: false positive with await and ** in no-extra-parens (fixes #12739) (#13923) (Milos Djermanovic) +* [`d93c935`](https://github.com/eslint/eslint/commit/d93c9350361d2aa1a1976c553e47ab399e51e8c9) Docs: update JSON Schema links (#13936) (Milos Djermanovic) +* [`8d0c93a`](https://github.com/eslint/eslint/commit/8d0c93a7ef9449c7b7d082bbb4b7d8465b0d6bac) Upgrade: table@6.0.4 (#13920) (Rouven Weßling) +* [`9247683`](https://github.com/eslint/eslint/commit/924768377a4935a95a6ff3866f9545a5a6178b53) Docs: Remove for deleted npm run profile script (#13931) (Brandon Mills) +* [`ab240d4`](https://github.com/eslint/eslint/commit/ab240d49833b4e6e594667c1abe5b0caa8a9cf70) Fix: prefer-exponentiation-operator invalid autofix with await (#13924) (Milos Djermanovic) +* [`dc76911`](https://github.com/eslint/eslint/commit/dc7691103554a99bdb2142561cb507f50f547e3b) Chore: Add .pre-commit-hooks.yaml file (#13628) (Álvaro Mondéjar) +* [`2124e1b`](https://github.com/eslint/eslint/commit/2124e1b5dad30a905dc26bde9da472bf622d3f50) Docs: Fix wrong rule name (#13913) (noisyboy25) +* [`06b5809`](https://github.com/eslint/eslint/commit/06b58096975935ec016d96dd5f333f059c270f26) Sponsors: Sync README with website (ESLint Jenkins) +* [`26fc12f`](https://github.com/eslint/eslint/commit/26fc12f88109af9d4081bf0e16364c411bce3009) Docs: Update README team and sponsors (ESLint Jenkins) + +v7.15.0 - December 5, 2020 + +* [`5c11aab`](https://github.com/eslint/eslint/commit/5c11aabbe8249aeb8cad29bc6a33fc20c8c683ef) Upgrade: @eslint/esintrc and espree for bug fixes (refs #13878) (#13908) (Brandon Mills) +* [`0eb7957`](https://github.com/eslint/eslint/commit/0eb7957e27fd521317bd5c8479ce7abc1399169c) Upgrade: file-entry-cache@6.0.0 (#13877) (Rouven Weßling) +* [`683ad00`](https://github.com/eslint/eslint/commit/683ad00c41e1ae4d889deff82b2a94318e8c2129) New: no-unsafe-optional-chaining rule (fixes #13431) (#13859) (YeonJuan) +* [`cbc57fb`](https://github.com/eslint/eslint/commit/cbc57fb7d07c00663ed5781f5e6bc8f534cc2d76) Fix: one-var autofixing for export (fixes #13834) (#13891) (Anix) +* [`110cf96`](https://github.com/eslint/eslint/commit/110cf962d05625a8a1bf7b5f4ec2194db150eb32) Docs: Fix a broken link in working-with-rules.md (#13875) (Anton Niklasson) + +v7.14.0 - November 20, 2020 + +* [`5f09073`](https://github.com/eslint/eslint/commit/5f0907399a9666dec78c74384c8969c01483c30e) Update: fix 'skip' options in no-irregular-whitespace (fixes #13852) (#13853) (Milos Djermanovic) +* [`1861b40`](https://github.com/eslint/eslint/commit/1861b4086f1018f43ab19744d866d5da986c500d) Docs: correct the function-call-argument-newline 'default' descriptions (#13866) (Trevin Hofmann) +* [`98c00c4`](https://github.com/eslint/eslint/commit/98c00c41d2aecb3a990393d430694f4ce6b47de5) New: Add no-nonoctal-decimal-escape rule (fixes #13765) (#13845) (Milos Djermanovic) +* [`95d2fe6`](https://github.com/eslint/eslint/commit/95d2fe6057498fc1cc2193d28c8c2d1593224b33) Chore: remove eslint comment from no-octal-escape tests (#13846) (Milos Djermanovic) +* [`2004b7e`](https://github.com/eslint/eslint/commit/2004b7ecd3db0d4e7376cc3344246f7b9ada5801) Fix: enable debug logs for @eslint/eslintrc (fixes #13850) (#13861) (Milos Djermanovic) +* [`d2239a1`](https://github.com/eslint/eslint/commit/d2239a1fdec452e24ede04e990d16d42516fa538) Fix: no-useless-constructor crash on bodyless constructor (fixes #13830) (#13842) (Ari Perkkiö) +* [`eda0aa1`](https://github.com/eslint/eslint/commit/eda0aa18498dd85eb618873e8e0f4ac97032cfca) Docs: no-restricted-imports is only for static imports (#13863) (Robat Williams) +* [`042ae44`](https://github.com/eslint/eslint/commit/042ae44682a8a6c5037d920689124e2304056dd8) Docs: Fix JS syntax and doc URL in working-with-custom-formatters.md (#13828) (Raphael LANG) +* [`038dc73`](https://github.com/eslint/eslint/commit/038dc73c99ae68eae2035ef303f3a947053c8f05) Chore: Test on Node.js 15 (#13844) (Brandon Mills) +* [`37a06d6`](https://github.com/eslint/eslint/commit/37a06d633d3669f0f43236141dc43465b8bc7ec5) Sponsors: Sync README with website (ESLint Jenkins) + +v7.13.0 - November 6, 2020 + +* [`254e00f`](https://github.com/eslint/eslint/commit/254e00fea8745ff5a8bcc8cb874fcfd02996d81b) New: Configurable List Size For Per-Rule Performance Metrics (#13812) (Bryan Mishkin) +* [`6c3c710`](https://github.com/eslint/eslint/commit/6c3c710ade7cd8654990f1adb55b58f038eab92d) Docs: fix broken url in docs (#13815) (SaintMalik) +* [`4a09149`](https://github.com/eslint/eslint/commit/4a091495a236d231a5065ece972719a0c4dd1b77) Sponsors: Sync README with website (ESLint Jenkins) +* [`fb6fcbf`](https://github.com/eslint/eslint/commit/fb6fcbfe0a8c41b92f0a33ab90f159037bd195e2) Docs: Fix reference to Code of Conduct (#13797) (Tobias Nießen) +* [`1b89ebe`](https://github.com/eslint/eslint/commit/1b89ebe1bdbef7de6001100945b8f71429df302c) Sponsors: Sync README with website (ESLint Jenkins) + +v7.12.1 - October 26, 2020 + +* [`08f33e8`](https://github.com/eslint/eslint/commit/08f33e8b9a353c3183be6f937785db7a30fb90eb) Upgrade: @eslint/eslintrc to fix rule schema validation (fixes #13793) (#13794) (Brandon Mills) +* [`aeef485`](https://github.com/eslint/eslint/commit/aeef485dc790571b1a82ac09904329e0226b66a9) Fix: Pass internal config paths in FileEnumerator default (fixes #13789) (#13792) (Brandon Mills) +* [`631ae8b`](https://github.com/eslint/eslint/commit/631ae8b50e5f7975f10860e9e763b70b4f25182e) Sponsors: Sync README with website (ESLint Jenkins) + +v7.12.0 - October 23, 2020 + +* [`cbf3585`](https://github.com/eslint/eslint/commit/cbf3585f1d6c60414c07380367a8b4505ee3538d) Update: skip keyword check for fns in space-before-blocks (fixes #13553) (#13712) (Milos Djermanovic) +* [`256f656`](https://github.com/eslint/eslint/commit/256f656455b47bcf9ed3fc30fbf72532678f97da) Fix: autofix shouldn't produce template literals with `\8` or `\9` (#13737) (Milos Djermanovic) +* [`b165aa5`](https://github.com/eslint/eslint/commit/b165aa5f4d4d19328f13ab80e5f058cbce94c3a6) Fix: yoda rule autofix produces syntax errors with adjacent tokens (#13760) (Milos Djermanovic) +* [`3175316`](https://github.com/eslint/eslint/commit/3175316db26aebef4b19e269aca90c8ce3955363) Fix: prefer-destructuring invalid autofix with comma operator (#13761) (Milos Djermanovic) +* [`1a9f171`](https://github.com/eslint/eslint/commit/1a9f17151a4e93eb17c8a2bf4f0a5320cce616de) Chore: Remove more ESLintRC-related files (refs #13481) (#13762) (Nicholas C. Zakas) +* [`bfddced`](https://github.com/eslint/eslint/commit/bfddcedace5587d662c840c2edf33062b54a178e) Update: remove suggestion if it didn't provide a fix (fixes #13723) (#13772) (Milos Djermanovic) +* [`5183b14`](https://github.com/eslint/eslint/commit/5183b14a2420b42b4089fb134a61ae57142f31fd) Update: check template literal in no-script-url (#13775) (YeonJuan) +* [`bfe97d2`](https://github.com/eslint/eslint/commit/bfe97d2332e711ca76b1fd2e7f8548b0cc84cb1c) Sponsors: Sync README with website (ESLint Jenkins) +* [`6c51ade`](https://github.com/eslint/eslint/commit/6c51adeb86f1de292cd02d2ee19f7b56182e358b) Sponsors: Sync README with website (ESLint Jenkins) +* [`603de04`](https://github.com/eslint/eslint/commit/603de04cab5e700df12999af2918decd4da9d11b) Update: treat all literals like boolean literal in no-constant-condition (#13245) (Zen) +* [`289aa6f`](https://github.com/eslint/eslint/commit/289aa6fcef3874ba5f86455f9302dc4209ea83e5) Sponsors: Sync README with website (ESLint Jenkins) +* [`9a1f669`](https://github.com/eslint/eslint/commit/9a1f6694e59eb3e584d4c5a98b98675c895a9783) Sponsors: Sync README with website (ESLint Jenkins) +* [`637f818`](https://github.com/eslint/eslint/commit/637f8187404ded600fb3d4013b3cd495d5ae675b) Docs: add more examples for no-func-assign (fixes #13705) (#13777) (Nitin Kumar) +* [`17cc0dd`](https://github.com/eslint/eslint/commit/17cc0dd9b5d2d500359c36881cd3e5637443c133) Chore: add test case for no-func-assign (refs #13705) (#13783) (Nitin Kumar) +* [`dee0f77`](https://github.com/eslint/eslint/commit/dee0f7764a1d5a323c89b22c4db94acee2b3c718) Docs: add TOC to user-guide/configuring.md (#13727) (metasean) +* [`0510621`](https://github.com/eslint/eslint/commit/05106212985cb1ffa1e6fa996a57f6fd2fc3c970) Update: Fix && vs || short-circuiting false negatives (fixes #13634) (#13769) (Brandon Mills) +* [`8b6ed69`](https://github.com/eslint/eslint/commit/8b6ed691c48189b7d096339441a78cb5874d4137) Sponsors: Sync README with website (ESLint Jenkins) +* [`1457509`](https://github.com/eslint/eslint/commit/145750991b04fd4cfb3fff3c5d4211a4428e011c) Docs: fix broken links in Node.js API docs (#13771) (Laura Barluzzi) +* [`7c813d4`](https://github.com/eslint/eslint/commit/7c813d458f9aedf7a94351d137728a4647542879) Docs: Fix typo in v7 migration page (#13778) (Yusuke Sasaki) +* [`b025795`](https://github.com/eslint/eslint/commit/b0257953be704d0bb387fc15afd7859fd6f19ba5) Docs: Fix the format option name in the document (#13770) (Hideki Igarashi) +* [`84fd591`](https://github.com/eslint/eslint/commit/84fd591c234accc41bb5af555f178825012fd35d) Chore: Increase Mocha timeout for copying fixtures (#13768) (Brandon Mills) +* [`1faeb84`](https://github.com/eslint/eslint/commit/1faeb84e663d88c5d85a3cb3f15cd224cc552c2d) Docs: clarify that space-unary-ops doesn't apply when space is required (#13767) (Taylor Morgan) +* [`67c0605`](https://github.com/eslint/eslint/commit/67c06059dd1ddcee6f369c650ce71220da1510c3) Update: check computed keys in no-prototype-builtins (fixes #13088) (#13755) (Milos Djermanovic) +* [`b5e011c`](https://github.com/eslint/eslint/commit/b5e011c865e95d700d29cb9a4ba71c671d99e423) Sponsors: Sync README with website (ESLint Jenkins) + +v7.11.0 - October 9, 2020 + +* [`23e966f`](https://github.com/eslint/eslint/commit/23e966f6cf2a6c6b699dff5d6950ece3cc396498) Chore: Refactor CLIEngine tests (refs #13481) (#13709) (Nicholas C. Zakas) +* [`fa9429a`](https://github.com/eslint/eslint/commit/fa9429aac0ffed505f3f02e8fc75f646c69f5c61) Fix: don't count line after EOF in max-lines (#13735) (Milos Djermanovic) +* [`d973675`](https://github.com/eslint/eslint/commit/d973675a5c06a2bd4f8ce640c78b67842cfebfd4) Docs: Update anchor links to use existing linkrefs (refs #13715) (#13741) (Brandon Mills) +* [`2c6d774`](https://github.com/eslint/eslint/commit/2c6d774c89dcd14f386bd9d73d451fa2a892c3ef) Docs: Fix typos (#13730) (Frieder Bluemle) +* [`cc468c0`](https://github.com/eslint/eslint/commit/cc468c01021385a028de727eefcd442e7f34875c) Upgrade: eslint-visitor-keys@2.0.0 (#13732) (Milos Djermanovic) +* [`ab0ac6c`](https://github.com/eslint/eslint/commit/ab0ac6c532fb7b7d49779c8913146244d680743b) Docs: Fix anchor links (#13715) (Gary Moore) +* [`27f0de6`](https://github.com/eslint/eslint/commit/27f0de62e6281c28043be38ef051818c9edc15cd) Fix: account for linebreaks before postfix `++`/`--` in no-extra-parens (#13731) (Milos Djermanovic) +* [`da78fa1`](https://github.com/eslint/eslint/commit/da78fa11632a2908db4ac494012a16f5d5a88a64) Update: support async arrow fn in function-paren-newline (fixes #13728) (#13729) (Michal Dziekonski) +* [`fe301b8`](https://github.com/eslint/eslint/commit/fe301b8cc0762d7f4edd59603ca51ed0ec0c2a43) Docs: Add configuration comments in examples (#13738) (YeonJuan) +* [`504408c`](https://github.com/eslint/eslint/commit/504408cd65e9d8827b2b8bbeb8f589df90eee523) Sponsors: Sync README with website (ESLint Jenkins) +* [`3900659`](https://github.com/eslint/eslint/commit/390065985b2289ad4412a83598e3e833c382d27e) Sponsors: Sync README with website (ESLint Jenkins) +* [`c1974b3`](https://github.com/eslint/eslint/commit/c1974b3f7169a8e5fab7007df92d02d8c1a8d5a3) Sponsors: Sync README with website (ESLint Jenkins) +* [`6f4abe5`](https://github.com/eslint/eslint/commit/6f4abe5d5ade2711cc4c21bc8485af952763c2d3) Sponsors: Sync README with website (ESLint Jenkins) + +v7.10.0 - September 26, 2020 + +* [`6919fbb`](https://github.com/eslint/eslint/commit/6919fbb83f86552b0f49ae749da866e4edc7c46a) Docs: Clarify that ignorePattern should be a string (refs #13029) (#13718) (Brandon Mills) +* [`07d9bea`](https://github.com/eslint/eslint/commit/07d9bea7c6f953e8f754afffc9752edcee799431) Update: Add ignorePattern to no-inline-comments (#13029) (Edie Lemoine) +* [`d79bbe9`](https://github.com/eslint/eslint/commit/d79bbe982930b53358d34ad91cc6e5eaac8ddede) Docs: fix typo (#13717) (Alexander Liu) +* [`9b8490e`](https://github.com/eslint/eslint/commit/9b8490ee6391c986b1314540a92b71d8c1e0efc4) Docs: grammatical error (#13687) (rajdeep) +* [`cb44e93`](https://github.com/eslint/eslint/commit/cb44e93f4780e925a75a68ce2f7f6d065b5f756c) Fix: prefer-destructuring invalid autofix with computed property access (#13704) (Milos Djermanovic) +* [`46c73b1`](https://github.com/eslint/eslint/commit/46c73b159a5ceed2f7f26f254fd97e459fb0e81a) Upgrade: eslint-scope@5.1.1 (#13716) (Milos Djermanovic) +* [`b7b12ba`](https://github.com/eslint/eslint/commit/b7b12ba0bd4e9c66883f11e97de8ed84b600cdaa) Chore: Move comment to make tests more organized (#13707) (Yusuke Tanaka) +* [`51674a4`](https://github.com/eslint/eslint/commit/51674a4113a1ca877094606bbf4938ab06cc1aad) Docs: Add missing quotes (#13714) (Lucio Paiva) +* [`7c34a98`](https://github.com/eslint/eslint/commit/7c34a982aaf93a02348f56c9ce887c7dcf51b5bd) Chore: remove mistakenly added file (#13710) (Milos Djermanovic) +* [`30b76c9`](https://github.com/eslint/eslint/commit/30b76c9a13fae3dff59f7db406d6c66f11152973) Docs: Clarify package.json requirement in Getting Started (refs #13549) (#13696) (Nicholas C. Zakas) +* [`044560d`](https://github.com/eslint/eslint/commit/044560dcc74db98b28e293da2e2f3b41ecbf5884) Sponsors: Sync README with website (ESLint Jenkins) +* [`54000d1`](https://github.com/eslint/eslint/commit/54000d13f27d5255851b5ac0606ad027e2b8d331) Sponsors: Sync README with website (ESLint Jenkins) + v7.9.0 - September 12, 2020 * [`3ca2700`](https://github.com/eslint/eslint/commit/3ca27004ece5016ba7aed775f01ad13bc9282296) Fix: Corrected notice for invalid (:) plugin names (#13473) (Josh Goldberg) diff --git a/node_modules/eslint/README.md b/node_modules/eslint/README.md index f5081d2f79..68982812e3 100644 --- a/node_modules/eslint/README.md +++ b/node_modules/eslint/README.md @@ -1,4 +1,4 @@ -[![NPM version](https://img.shields.io/npm/v/eslint.svg)](https://www.npmjs.com/package/eslint) +[![npm version](https://img.shields.io/npm/v/eslint.svg)](https://www.npmjs.com/package/eslint) [![Downloads](https://img.shields.io/npm/dm/eslint.svg)](https://www.npmjs.com/package/eslint) [![Build Status](https://github.com/eslint/eslint/workflows/CI/badge.svg)](https://github.com/eslint/eslint/actions) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint?ref=badge_shield) @@ -14,7 +14,7 @@ [Rules](https://eslint.org/docs/rules/) | [Contributing](https://eslint.org/docs/developer-guide/contributing) | [Reporting Bugs](https://eslint.org/docs/developer-guide/contributing/reporting-bugs) | -[Code of Conduct](https://js.foundation/community/code-of-conduct) | +[Code of Conduct](https://eslint.org/conduct) | [Twitter](https://twitter.com/geteslint) | [Mailing List](https://groups.google.com/group/eslint) | [Chat Room](https://eslint.org/chat) @@ -35,10 +35,11 @@ ESLint is a tool for identifying and reporting on patterns found in ECMAScript/J 6. [Releases](#releases) 7. [Security Policy](#security-policy) 8. [Semantic Versioning Policy](#semantic-versioning-policy) -9. [License](#license) -10. [Team](#team) -11. [Sponsors](#sponsors) -12. [Technology Sponsors](#technology-sponsors) +9. [Stylistic Rule Updates](#stylistic-rule-updates) +10. [License](#license) +11. [Team](#team) +12. [Sponsors](#sponsors) +13. [Technology Sponsors](#technology-sponsors) ## Installation and Usage @@ -85,7 +86,7 @@ The three error levels allow you fine-grained control over how ESLint applies ru ## Code of Conduct -ESLint adheres to the [JS Foundation Code of Conduct](https://js.foundation/community/code-of-conduct). +ESLint adheres to the [JS Foundation Code of Conduct](https://eslint.org/conduct). ## Filing Issues @@ -136,6 +137,16 @@ Once a language feature has been adopted into the ECMAScript standard (stage 4 a Join our [Mailing List](https://groups.google.com/group/eslint) or [Chatroom](https://eslint.org/chat). +### Why doesn't ESLint lock dependency versions? + +Lock files like `package-lock.json` are helpful for deployed applications. They ensure that dependencies are consistent between environments and across deployments. + +Packages like `eslint` that get published to the npm registry do not include lock files. `npm install eslint` as a user will respect version constraints in ESLint's `package.json`. ESLint and its dependencies will be included in the user's lock file if one exists, but ESLint's own lock file would not be used. + +We intentionally don't lock dependency versions so that we have the latest compatible dependency versions in development and CI that our users get when installing ESLint in a project. + +The Twilio blog has a [deeper dive](https://www.twilio.com/blog/lockfiles-nodejs) to learn more. + ## Releases We have scheduled releases every two weeks on Friday or Saturday. You can follow a [release issue](https://github.com/eslint/eslint/issues?q=is%3Aopen+is%3Aissue+label%3Arelease) for updates about the scheduling of any particular release. @@ -158,6 +169,7 @@ ESLint follows [semantic versioning](https://semver.org). However, due to the na * A bug fix in a rule that results in ESLint reporting more linting errors. * A new rule is created. * A new option to an existing rule that does not result in ESLint reporting more linting errors by default. + * A new addition to an existing rule to support a newly-added language feature (within the last 12 months) that will result in ESLint reporting more linting errors by default. * An existing rule is deprecated. * A new CLI capability is created. * New capabilities to the public API are added (new classes, new methods, new arguments to existing methods, etc.). @@ -176,6 +188,15 @@ ESLint follows [semantic versioning](https://semver.org). However, due to the na According to our policy, any minor update may report more linting errors than the previous release (ex: from a bug fix). As such, we recommend using the tilde (`~`) in `package.json` e.g. `"eslint": "~3.1.0"` to guarantee the results of your builds. +## Stylistic Rule Updates + +Stylistic rules are frozen according to [our policy](https://eslint.org/blog/2020/05/changes-to-rules-policies) on how we evaluate new rules and rule changes. +This means: + +* **Bug fixes**: We will still fix bugs in stylistic rules. +* **New ECMAScript features**: We will also make sure stylistic rules are compatible with new ECMAScript features. +* **New options**: We will **not** add any new options to stylistic rules unless an option is the only way to fix a bug or support a newly-added ECMAScript feature. + ## License [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Feslint%2Feslint?ref=badge_large) @@ -202,16 +223,6 @@ Nicholas C. Zakas Brandon Mills - -
-Toru Nagashima -
- - -
-Kai Cataldo -
-
Milos Djermanovic @@ -224,6 +235,11 @@ Milos Djermanovic The people who review and implement new features.
+ +
+Toru Nagashima +
+

薛定谔的猫 @@ -252,6 +268,11 @@ Anix
YeonJuan
+
+ +
+Nitin Kumar +
@@ -263,10 +284,11 @@ The following companies, organizations, and individuals support ESLint's ongoing -

Gold Sponsors

-

Salesforce Airbnb Microsoft FOSS Fund Sponsorships

Silver Sponsors

-

Liftoff AMP Project

Bronze Sponsors

-

Buy.Fineproxy.Org Veikkaajat.com Nettikasinot.media My True Media Norgekasino Japanesecasino CasinoTop.com Casino Topp Anagram Solver Kasinot.fi Pelisivut Nettikasinot.org BonusFinder Deutschland Bugsnag Stability Monitoring Mixpanel VPS Server Icons8: free icons, photos, illustrations, and music Discord ThemeIsle Marfeel Fire Stick Tricks

+

Platinum Sponsors

+

Automattic

Gold Sponsors

+

Nx (by Nrwl) Chrome's Web Framework & Tools Performance Fund Salesforce Airbnb Coinbase Substack

Silver Sponsors

+

Retool Liftoff

Bronze Sponsors

+

Anagram Solver Bugsnag Stability Monitoring Mixpanel VPS Server Icons8: free icons, photos, illustrations, and music Discord ThemeIsle Fire Stick Tricks Practice Ignition

## Technology Sponsors diff --git a/node_modules/eslint/bin/eslint.js b/node_modules/eslint/bin/eslint.js index 75b4131486..5fa5766828 100755 --- a/node_modules/eslint/bin/eslint.js +++ b/node_modules/eslint/bin/eslint.js @@ -14,7 +14,7 @@ require("v8-compile-cache"); // must do this initialization *before* other requires in order to work if (process.argv.includes("--debug")) { - require("debug").enable("eslint:*,-eslint:code-path"); + require("debug").enable("eslint:*,-eslint:code-path,eslintrc:*"); } //------------------------------------------------------------------------------ @@ -66,11 +66,8 @@ function readStdin() { */ function getErrorMessage(error) { - // Lazy loading because those are used only if error happened. - const fs = require("fs"); - const path = require("path"); + // Lazy loading because this is used only if an error happened. const util = require("util"); - const lodash = require("lodash"); // Foolproof -- thirdparty module might throw non-object. if (typeof error !== "object" || error === null) { @@ -80,14 +77,7 @@ function getErrorMessage(error) { // Use templates if `error.messageTemplate` is present. if (typeof error.messageTemplate === "string") { try { - const templateFilePath = path.resolve( - __dirname, - `../messages/${error.messageTemplate}.txt` - ); - - // Use sync API because Node.js should exit at this tick. - const templateText = fs.readFileSync(templateFilePath, "utf-8"); - const template = lodash.template(templateText); + const template = require(`../messages/${error.messageTemplate}.js`); return template(error.messageData || {}); } catch { diff --git a/node_modules/eslint/conf/default-cli-options.js b/node_modules/eslint/conf/default-cli-options.js index e09a829d17..dad03d89e9 100644 --- a/node_modules/eslint/conf/default-cli-options.js +++ b/node_modules/eslint/conf/default-cli-options.js @@ -24,6 +24,7 @@ module.exports = { */ cacheLocation: "", cacheFile: ".eslintcache", + cacheStrategy: "metadata", fix: false, allowInlineConfig: true, reportUnusedDisableDirectives: void 0, diff --git a/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js b/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js deleted file mode 100644 index df49c27772..0000000000 --- a/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js +++ /dev/null @@ -1,502 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `CascadingConfigArrayFactory` class. - * - * `CascadingConfigArrayFactory` class has a responsibility: - * - * 1. Handles cascading of config files. - * - * It provides two methods: - * - * - `getConfigArrayForFile(filePath)` - * Get the corresponded configuration of a given file. This method doesn't - * throw even if the given file didn't exist. - * - `clearCache()` - * Clear the internal cache. You have to call this method when - * `additionalPluginPool` was updated if `baseConfig` or `cliConfig` depends - * on the additional plugins. (`CLIEngine#addPlugin()` method calls this.) - * - * @author Toru Nagashima - */ -"use strict"; - -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const os = require("os"); -const path = require("path"); -const { validateConfigArray } = require("../shared/config-validator"); -const { emitDeprecationWarning } = require("../shared/deprecation-warnings"); -const { ConfigArrayFactory } = require("./config-array-factory"); -const { ConfigArray, ConfigDependency, IgnorePattern } = require("./config-array"); -const loadRules = require("./load-rules"); -const debug = require("debug")("eslint:cascading-config-array-factory"); - -//------------------------------------------------------------------------------ -// Helpers -//------------------------------------------------------------------------------ - -// Define types for VSCode IntelliSense. -/** @typedef {import("../shared/types").ConfigData} ConfigData */ -/** @typedef {import("../shared/types").Parser} Parser */ -/** @typedef {import("../shared/types").Plugin} Plugin */ -/** @typedef {ReturnType} ConfigArray */ - -/** - * @typedef {Object} CascadingConfigArrayFactoryOptions - * @property {Map} [additionalPluginPool] The map for additional plugins. - * @property {ConfigData} [baseConfig] The config by `baseConfig` option. - * @property {ConfigData} [cliConfig] The config by CLI options (`--env`, `--global`, `--ignore-pattern`, `--parser`, `--parser-options`, `--plugin`, and `--rule`). CLI options overwrite the setting in config files. - * @property {string} [cwd] The base directory to start lookup. - * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`. - * @property {string[]} [rulePaths] The value of `--rulesdir` option. - * @property {string} [specificConfigPath] The value of `--config` option. - * @property {boolean} [useEslintrc] if `false` then it doesn't load config files. - */ - -/** - * @typedef {Object} CascadingConfigArrayFactoryInternalSlots - * @property {ConfigArray} baseConfigArray The config array of `baseConfig` option. - * @property {ConfigData} baseConfigData The config data of `baseConfig` option. This is used to reset `baseConfigArray`. - * @property {ConfigArray} cliConfigArray The config array of CLI options. - * @property {ConfigData} cliConfigData The config data of CLI options. This is used to reset `cliConfigArray`. - * @property {ConfigArrayFactory} configArrayFactory The factory for config arrays. - * @property {Map} configCache The cache from directory paths to config arrays. - * @property {string} cwd The base directory to start lookup. - * @property {WeakMap} finalizeCache The cache from config arrays to finalized config arrays. - * @property {string} [ignorePath] The path to the alternative file of `.eslintignore`. - * @property {string[]|null} rulePaths The value of `--rulesdir` option. This is used to reset `baseConfigArray`. - * @property {string|null} specificConfigPath The value of `--config` option. This is used to reset `cliConfigArray`. - * @property {boolean} useEslintrc if `false` then it doesn't load config files. - */ - -/** @type {WeakMap} */ -const internalSlotsMap = new WeakMap(); - -/** - * Create the config array from `baseConfig` and `rulePaths`. - * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots. - * @returns {ConfigArray} The config array of the base configs. - */ -function createBaseConfigArray({ - configArrayFactory, - baseConfigData, - rulePaths, - cwd -}) { - const baseConfigArray = configArrayFactory.create( - baseConfigData, - { name: "BaseConfig" } - ); - - /* - * Create the config array element for the default ignore patterns. - * This element has `ignorePattern` property that ignores the default - * patterns in the current working directory. - */ - baseConfigArray.unshift(configArrayFactory.create( - { ignorePatterns: IgnorePattern.DefaultPatterns }, - { name: "DefaultIgnorePattern" } - )[0]); - - /* - * Load rules `--rulesdir` option as a pseudo plugin. - * Use a pseudo plugin to define rules of `--rulesdir`, so we can validate - * the rule's options with only information in the config array. - */ - if (rulePaths && rulePaths.length > 0) { - baseConfigArray.push({ - type: "config", - name: "--rulesdir", - filePath: "", - plugins: { - "": new ConfigDependency({ - definition: { - rules: rulePaths.reduce( - (map, rulesPath) => Object.assign( - map, - loadRules(rulesPath, cwd) - ), - {} - ) - }, - filePath: "", - id: "", - importerName: "--rulesdir", - importerPath: "" - }) - } - }); - } - - return baseConfigArray; -} - -/** - * Create the config array from CLI options. - * @param {CascadingConfigArrayFactoryInternalSlots} slots The slots. - * @returns {ConfigArray} The config array of the base configs. - */ -function createCLIConfigArray({ - cliConfigData, - configArrayFactory, - cwd, - ignorePath, - specificConfigPath -}) { - const cliConfigArray = configArrayFactory.create( - cliConfigData, - { name: "CLIOptions" } - ); - - cliConfigArray.unshift( - ...(ignorePath - ? configArrayFactory.loadESLintIgnore(ignorePath) - : configArrayFactory.loadDefaultESLintIgnore()) - ); - - if (specificConfigPath) { - cliConfigArray.unshift( - ...configArrayFactory.loadFile( - specificConfigPath, - { name: "--config", basePath: cwd } - ) - ); - } - - return cliConfigArray; -} - -/** - * The error type when there are files matched by a glob, but all of them have been ignored. - */ -class ConfigurationNotFoundError extends Error { - - // eslint-disable-next-line jsdoc/require-description - /** - * @param {string} directoryPath The directory path. - */ - constructor(directoryPath) { - super(`No ESLint configuration found in ${directoryPath}.`); - this.messageTemplate = "no-config-found"; - this.messageData = { directoryPath }; - } -} - -/** - * This class provides the functionality that enumerates every file which is - * matched by given glob patterns and that configuration. - */ -class CascadingConfigArrayFactory { - - /** - * Initialize this enumerator. - * @param {CascadingConfigArrayFactoryOptions} options The options. - */ - constructor({ - additionalPluginPool = new Map(), - baseConfig: baseConfigData = null, - cliConfig: cliConfigData = null, - cwd = process.cwd(), - ignorePath, - resolvePluginsRelativeTo, - rulePaths = [], - specificConfigPath = null, - useEslintrc = true - } = {}) { - const configArrayFactory = new ConfigArrayFactory({ - additionalPluginPool, - cwd, - resolvePluginsRelativeTo - }); - - internalSlotsMap.set(this, { - baseConfigArray: createBaseConfigArray({ - baseConfigData, - configArrayFactory, - cwd, - rulePaths - }), - baseConfigData, - cliConfigArray: createCLIConfigArray({ - cliConfigData, - configArrayFactory, - cwd, - ignorePath, - specificConfigPath - }), - cliConfigData, - configArrayFactory, - configCache: new Map(), - cwd, - finalizeCache: new WeakMap(), - ignorePath, - rulePaths, - specificConfigPath, - useEslintrc - }); - } - - /** - * The path to the current working directory. - * This is used by tests. - * @type {string} - */ - get cwd() { - const { cwd } = internalSlotsMap.get(this); - - return cwd; - } - - /** - * Get the config array of a given file. - * If `filePath` was not given, it returns the config which contains only - * `baseConfigData` and `cliConfigData`. - * @param {string} [filePath] The file path to a file. - * @param {Object} [options] The options. - * @param {boolean} [options.ignoreNotFoundError] If `true` then it doesn't throw `ConfigurationNotFoundError`. - * @returns {ConfigArray} The config array of the file. - */ - getConfigArrayForFile(filePath, { ignoreNotFoundError = false } = {}) { - const { - baseConfigArray, - cliConfigArray, - cwd - } = internalSlotsMap.get(this); - - if (!filePath) { - return new ConfigArray(...baseConfigArray, ...cliConfigArray); - } - - const directoryPath = path.dirname(path.resolve(cwd, filePath)); - - debug(`Load config files for ${directoryPath}.`); - - return this._finalizeConfigArray( - this._loadConfigInAncestors(directoryPath), - directoryPath, - ignoreNotFoundError - ); - } - - /** - * Set the config data to override all configs. - * Require to call `clearCache()` method after this method is called. - * @param {ConfigData} configData The config data to override all configs. - * @returns {void} - */ - setOverrideConfig(configData) { - const slots = internalSlotsMap.get(this); - - slots.cliConfigData = configData; - } - - /** - * Clear config cache. - * @returns {void} - */ - clearCache() { - const slots = internalSlotsMap.get(this); - - slots.baseConfigArray = createBaseConfigArray(slots); - slots.cliConfigArray = createCLIConfigArray(slots); - slots.configCache.clear(); - } - - /** - * Load and normalize config files from the ancestor directories. - * @param {string} directoryPath The path to a leaf directory. - * @param {boolean} configsExistInSubdirs `true` if configurations exist in subdirectories. - * @returns {ConfigArray} The loaded config. - * @private - */ - _loadConfigInAncestors(directoryPath, configsExistInSubdirs = false) { - const { - baseConfigArray, - configArrayFactory, - configCache, - cwd, - useEslintrc - } = internalSlotsMap.get(this); - - if (!useEslintrc) { - return baseConfigArray; - } - - let configArray = configCache.get(directoryPath); - - // Hit cache. - if (configArray) { - debug(`Cache hit: ${directoryPath}.`); - return configArray; - } - debug(`No cache found: ${directoryPath}.`); - - const homePath = os.homedir(); - - // Consider this is root. - if (directoryPath === homePath && cwd !== homePath) { - debug("Stop traversing because of considered root."); - if (configsExistInSubdirs) { - const filePath = ConfigArrayFactory.getPathToConfigFileInDirectory(directoryPath); - - if (filePath) { - emitDeprecationWarning( - filePath, - "ESLINT_PERSONAL_CONFIG_SUPPRESS" - ); - } - } - return this._cacheConfig(directoryPath, baseConfigArray); - } - - // Load the config on this directory. - try { - configArray = configArrayFactory.loadInDirectory(directoryPath); - } catch (error) { - /* istanbul ignore next */ - if (error.code === "EACCES") { - debug("Stop traversing because of 'EACCES' error."); - return this._cacheConfig(directoryPath, baseConfigArray); - } - throw error; - } - - if (configArray.length > 0 && configArray.isRoot()) { - debug("Stop traversing because of 'root:true'."); - configArray.unshift(...baseConfigArray); - return this._cacheConfig(directoryPath, configArray); - } - - // Load from the ancestors and merge it. - const parentPath = path.dirname(directoryPath); - const parentConfigArray = parentPath && parentPath !== directoryPath - ? this._loadConfigInAncestors( - parentPath, - configsExistInSubdirs || configArray.length > 0 - ) - : baseConfigArray; - - if (configArray.length > 0) { - configArray.unshift(...parentConfigArray); - } else { - configArray = parentConfigArray; - } - - // Cache and return. - return this._cacheConfig(directoryPath, configArray); - } - - /** - * Freeze and cache a given config. - * @param {string} directoryPath The path to a directory as a cache key. - * @param {ConfigArray} configArray The config array as a cache value. - * @returns {ConfigArray} The `configArray` (frozen). - */ - _cacheConfig(directoryPath, configArray) { - const { configCache } = internalSlotsMap.get(this); - - Object.freeze(configArray); - configCache.set(directoryPath, configArray); - - return configArray; - } - - /** - * Finalize a given config array. - * Concatenate `--config` and other CLI options. - * @param {ConfigArray} configArray The parent config array. - * @param {string} directoryPath The path to the leaf directory to find config files. - * @param {boolean} ignoreNotFoundError If `true` then it doesn't throw `ConfigurationNotFoundError`. - * @returns {ConfigArray} The loaded config. - * @private - */ - _finalizeConfigArray(configArray, directoryPath, ignoreNotFoundError) { - const { - cliConfigArray, - configArrayFactory, - finalizeCache, - useEslintrc - } = internalSlotsMap.get(this); - - let finalConfigArray = finalizeCache.get(configArray); - - if (!finalConfigArray) { - finalConfigArray = configArray; - - // Load the personal config if there are no regular config files. - if ( - useEslintrc && - configArray.every(c => !c.filePath) && - cliConfigArray.every(c => !c.filePath) // `--config` option can be a file. - ) { - const homePath = os.homedir(); - - debug("Loading the config file of the home directory:", homePath); - - const personalConfigArray = configArrayFactory.loadInDirectory( - homePath, - { name: "PersonalConfig" } - ); - - if ( - personalConfigArray.length > 0 && - !directoryPath.startsWith(homePath) - ) { - const lastElement = - personalConfigArray[personalConfigArray.length - 1]; - - emitDeprecationWarning( - lastElement.filePath, - "ESLINT_PERSONAL_CONFIG_LOAD" - ); - } - - finalConfigArray = finalConfigArray.concat(personalConfigArray); - } - - // Apply CLI options. - if (cliConfigArray.length > 0) { - finalConfigArray = finalConfigArray.concat(cliConfigArray); - } - - // Validate rule settings and environments. - validateConfigArray(finalConfigArray); - - // Cache it. - Object.freeze(finalConfigArray); - finalizeCache.set(configArray, finalConfigArray); - - debug( - "Configuration was determined: %o on %s", - finalConfigArray, - directoryPath - ); - } - - // At least one element (the default ignore patterns) exists. - if (!ignoreNotFoundError && useEslintrc && finalConfigArray.length <= 1) { - throw new ConfigurationNotFoundError(directoryPath); - } - - return finalConfigArray; - } -} - -//------------------------------------------------------------------------------ -// Public Interface -//------------------------------------------------------------------------------ - -module.exports = { CascadingConfigArrayFactory }; diff --git a/node_modules/eslint/lib/cli-engine/cli-engine.js b/node_modules/eslint/lib/cli-engine/cli-engine.js index 70c6f6f39f..ca298f9c35 100644 --- a/node_modules/eslint/lib/cli-engine/cli-engine.js +++ b/node_modules/eslint/lib/cli-engine/cli-engine.js @@ -19,14 +19,24 @@ const fs = require("fs"); const path = require("path"); const defaultOptions = require("../../conf/default-cli-options"); const pkg = require("../../package.json"); -const ConfigOps = require("@eslint/eslintrc/lib/shared/config-ops"); -const naming = require("@eslint/eslintrc/lib/shared/naming"); -const ModuleResolver = require("../shared/relative-module-resolver"); + + +const { + Legacy: { + ConfigOps, + naming, + CascadingConfigArrayFactory, + IgnorePattern, + getUsedExtractedConfigs, + ModuleResolver + } +} = require("@eslint/eslintrc"); + +const { FileEnumerator } = require("./file-enumerator"); + const { Linter } = require("../linter"); const builtInRules = require("../rules"); -const { CascadingConfigArrayFactory } = require("./cascading-config-array-factory"); -const { IgnorePattern, getUsedExtractedConfigs } = require("./config-array"); -const { FileEnumerator } = require("./file-enumerator"); +const loadRules = require("./load-rules"); const hash = require("./hash"); const LintResultCache = require("./lint-result-cache"); @@ -516,7 +526,7 @@ function directoryExists(resolvedPath) { try { return fs.statSync(resolvedPath).isDirectory(); } catch (error) { - if (error && error.code === "ENOENT") { + if (error && (error.code === "ENOENT" || error.code === "ENOTDIR")) { return false; } throw error; @@ -559,7 +569,11 @@ class CLIEngine { resolvePluginsRelativeTo: options.resolvePluginsRelativeTo, rulePaths: options.rulePaths, specificConfigPath: options.configFile, - useEslintrc: options.useEslintrc + useEslintrc: options.useEslintrc, + builtInRules, + loadRules, + eslintRecommendedPath: path.resolve(__dirname, "../../conf/eslint-recommended.js"), + eslintAllPath: path.resolve(__dirname, "../../conf/eslint-all.js") }); const fileEnumerator = new FileEnumerator({ configArrayFactory, @@ -570,7 +584,7 @@ class CLIEngine { ignore: options.ignore }); const lintResultCache = - options.cache ? new LintResultCache(cacheFilePath) : null; + options.cache ? new LintResultCache(cacheFilePath, options.cacheStrategy) : null; const linter = new Linter({ cwd: options.cwd }); /** @type {ConfigArray[]} */ diff --git a/node_modules/eslint/lib/cli-engine/config-array-factory.js b/node_modules/eslint/lib/cli-engine/config-array-factory.js deleted file mode 100644 index 2c7a79b491..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array-factory.js +++ /dev/null @@ -1,1092 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview The factory of `ConfigArray` objects. - * - * This class provides methods to create `ConfigArray` instance. - * - * - `create(configData, options)` - * Create a `ConfigArray` instance from a config data. This is to handle CLI - * options except `--config`. - * - `loadFile(filePath, options)` - * Create a `ConfigArray` instance from a config file. This is to handle - * `--config` option. If the file was not found, throws the following error: - * - If the filename was `*.js`, a `MODULE_NOT_FOUND` error. - * - If the filename was `package.json`, an IO error or an - * `ESLINT_CONFIG_FIELD_NOT_FOUND` error. - * - Otherwise, an IO error such as `ENOENT`. - * - `loadInDirectory(directoryPath, options)` - * Create a `ConfigArray` instance from a config file which is on a given - * directory. This tries to load `.eslintrc.*` or `package.json`. If not - * found, returns an empty `ConfigArray`. - * - `loadESLintIgnore(filePath)` - * Create a `ConfigArray` instance from a config file that is `.eslintignore` - * format. This is to handle `--ignore-path` option. - * - `loadDefaultESLintIgnore()` - * Create a `ConfigArray` instance from `.eslintignore` or `package.json` in - * the current working directory. - * - * `ConfigArrayFactory` class has the responsibility that loads configuration - * files, including loading `extends`, `parser`, and `plugins`. The created - * `ConfigArray` instance has the loaded `extends`, `parser`, and `plugins`. - * - * But this class doesn't handle cascading. `CascadingConfigArrayFactory` class - * handles cascading and hierarchy. - * - * @author Toru Nagashima - */ -"use strict"; - -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const fs = require("fs"); -const path = require("path"); -const importFresh = require("import-fresh"); -const stripComments = require("strip-json-comments"); -const { validateConfigSchema } = require("../shared/config-validator"); -const naming = require("@eslint/eslintrc/lib/shared/naming"); -const ModuleResolver = require("../shared/relative-module-resolver"); -const { - ConfigArray, - ConfigDependency, - IgnorePattern, - OverrideTester -} = require("./config-array"); -const debug = require("debug")("eslint:config-array-factory"); - -//------------------------------------------------------------------------------ -// Helpers -//------------------------------------------------------------------------------ - -const eslintRecommendedPath = path.resolve(__dirname, "../../conf/eslint-recommended.js"); -const eslintAllPath = path.resolve(__dirname, "../../conf/eslint-all.js"); -const configFilenames = [ - ".eslintrc.js", - ".eslintrc.cjs", - ".eslintrc.yaml", - ".eslintrc.yml", - ".eslintrc.json", - ".eslintrc", - "package.json" -]; - -// Define types for VSCode IntelliSense. -/** @typedef {import("../shared/types").ConfigData} ConfigData */ -/** @typedef {import("../shared/types").OverrideConfigData} OverrideConfigData */ -/** @typedef {import("../shared/types").Parser} Parser */ -/** @typedef {import("../shared/types").Plugin} Plugin */ -/** @typedef {import("./config-array/config-dependency").DependentParser} DependentParser */ -/** @typedef {import("./config-array/config-dependency").DependentPlugin} DependentPlugin */ -/** @typedef {ConfigArray[0]} ConfigArrayElement */ - -/** - * @typedef {Object} ConfigArrayFactoryOptions - * @property {Map} [additionalPluginPool] The map for additional plugins. - * @property {string} [cwd] The path to the current working directory. - * @property {string} [resolvePluginsRelativeTo] A path to the directory that plugins should be resolved from. Defaults to `cwd`. - */ - -/** - * @typedef {Object} ConfigArrayFactoryInternalSlots - * @property {Map} additionalPluginPool The map for additional plugins. - * @property {string} cwd The path to the current working directory. - * @property {string | undefined} resolvePluginsRelativeTo An absolute path the the directory that plugins should be resolved from. - */ - -/** - * @typedef {Object} ConfigArrayFactoryLoadingContext - * @property {string} filePath The path to the current configuration. - * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. - * @property {string} name The name of the current configuration. - * @property {string} pluginBasePath The base path to resolve plugins. - * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors. - */ - -/** - * @typedef {Object} ConfigArrayFactoryLoadingContext - * @property {string} filePath The path to the current configuration. - * @property {string} matchBasePath The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. - * @property {string} name The name of the current configuration. - * @property {"config" | "ignore" | "implicit-processor"} type The type of the current configuration. This is `"config"` in normal. This is `"ignore"` if it came from `.eslintignore`. This is `"implicit-processor"` if it came from legacy file-extension processors. - */ - -/** @type {WeakMap} */ -const internalSlotsMap = new WeakMap(); - -/** - * Check if a given string is a file path. - * @param {string} nameOrPath A module name or file path. - * @returns {boolean} `true` if the `nameOrPath` is a file path. - */ -function isFilePath(nameOrPath) { - return ( - /^\.{1,2}[/\\]/u.test(nameOrPath) || - path.isAbsolute(nameOrPath) - ); -} - -/** - * Convenience wrapper for synchronously reading file contents. - * @param {string} filePath The filename to read. - * @returns {string} The file contents, with the BOM removed. - * @private - */ -function readFile(filePath) { - return fs.readFileSync(filePath, "utf8").replace(/^\ufeff/u, ""); -} - -/** - * Loads a YAML configuration from a file. - * @param {string} filePath The filename to load. - * @returns {ConfigData} The configuration object from the file. - * @throws {Error} If the file cannot be read. - * @private - */ -function loadYAMLConfigFile(filePath) { - debug(`Loading YAML config file: ${filePath}`); - - // lazy load YAML to improve performance when not used - const yaml = require("js-yaml"); - - try { - - // empty YAML file can be null, so always use - return yaml.safeLoad(readFile(filePath)) || {}; - } catch (e) { - debug(`Error reading YAML file: ${filePath}`); - e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; - throw e; - } -} - -/** - * Loads a JSON configuration from a file. - * @param {string} filePath The filename to load. - * @returns {ConfigData} The configuration object from the file. - * @throws {Error} If the file cannot be read. - * @private - */ -function loadJSONConfigFile(filePath) { - debug(`Loading JSON config file: ${filePath}`); - - try { - return JSON.parse(stripComments(readFile(filePath))); - } catch (e) { - debug(`Error reading JSON file: ${filePath}`); - e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; - e.messageTemplate = "failed-to-read-json"; - e.messageData = { - path: filePath, - message: e.message - }; - throw e; - } -} - -/** - * Loads a legacy (.eslintrc) configuration from a file. - * @param {string} filePath The filename to load. - * @returns {ConfigData} The configuration object from the file. - * @throws {Error} If the file cannot be read. - * @private - */ -function loadLegacyConfigFile(filePath) { - debug(`Loading legacy config file: ${filePath}`); - - // lazy load YAML to improve performance when not used - const yaml = require("js-yaml"); - - try { - return yaml.safeLoad(stripComments(readFile(filePath))) || /* istanbul ignore next */ {}; - } catch (e) { - debug("Error reading YAML file: %s\n%o", filePath, e); - e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; - throw e; - } -} - -/** - * Loads a JavaScript configuration from a file. - * @param {string} filePath The filename to load. - * @returns {ConfigData} The configuration object from the file. - * @throws {Error} If the file cannot be read. - * @private - */ -function loadJSConfigFile(filePath) { - debug(`Loading JS config file: ${filePath}`); - try { - return importFresh(filePath); - } catch (e) { - debug(`Error reading JavaScript file: ${filePath}`); - e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; - throw e; - } -} - -/** - * Loads a configuration from a package.json file. - * @param {string} filePath The filename to load. - * @returns {ConfigData} The configuration object from the file. - * @throws {Error} If the file cannot be read. - * @private - */ -function loadPackageJSONConfigFile(filePath) { - debug(`Loading package.json config file: ${filePath}`); - try { - const packageData = loadJSONConfigFile(filePath); - - if (!Object.hasOwnProperty.call(packageData, "eslintConfig")) { - throw Object.assign( - new Error("package.json file doesn't have 'eslintConfig' field."), - { code: "ESLINT_CONFIG_FIELD_NOT_FOUND" } - ); - } - - return packageData.eslintConfig; - } catch (e) { - debug(`Error reading package.json file: ${filePath}`); - e.message = `Cannot read config file: ${filePath}\nError: ${e.message}`; - throw e; - } -} - -/** - * Loads a `.eslintignore` from a file. - * @param {string} filePath The filename to load. - * @returns {string[]} The ignore patterns from the file. - * @private - */ -function loadESLintIgnoreFile(filePath) { - debug(`Loading .eslintignore file: ${filePath}`); - - try { - return readFile(filePath) - .split(/\r?\n/gu) - .filter(line => line.trim() !== "" && !line.startsWith("#")); - } catch (e) { - debug(`Error reading .eslintignore file: ${filePath}`); - e.message = `Cannot read .eslintignore file: ${filePath}\nError: ${e.message}`; - throw e; - } -} - -/** - * Creates an error to notify about a missing config to extend from. - * @param {string} configName The name of the missing config. - * @param {string} importerName The name of the config that imported the missing config - * @param {string} messageTemplate The text template to source error strings from. - * @returns {Error} The error object to throw - * @private - */ -function configInvalidError(configName, importerName, messageTemplate) { - return Object.assign( - new Error(`Failed to load config "${configName}" to extend from.`), - { - messageTemplate, - messageData: { configName, importerName } - } - ); -} - -/** - * Loads a configuration file regardless of the source. Inspects the file path - * to determine the correctly way to load the config file. - * @param {string} filePath The path to the configuration. - * @returns {ConfigData|null} The configuration information. - * @private - */ -function loadConfigFile(filePath) { - switch (path.extname(filePath)) { - case ".js": - case ".cjs": - return loadJSConfigFile(filePath); - - case ".json": - if (path.basename(filePath) === "package.json") { - return loadPackageJSONConfigFile(filePath); - } - return loadJSONConfigFile(filePath); - - case ".yaml": - case ".yml": - return loadYAMLConfigFile(filePath); - - default: - return loadLegacyConfigFile(filePath); - } -} - -/** - * Write debug log. - * @param {string} request The requested module name. - * @param {string} relativeTo The file path to resolve the request relative to. - * @param {string} filePath The resolved file path. - * @returns {void} - */ -function writeDebugLogForLoading(request, relativeTo, filePath) { - /* istanbul ignore next */ - if (debug.enabled) { - let nameAndVersion = null; - - try { - const packageJsonPath = ModuleResolver.resolve( - `${request}/package.json`, - relativeTo - ); - const { version = "unknown" } = require(packageJsonPath); - - nameAndVersion = `${request}@${version}`; - } catch (error) { - debug("package.json was not found:", error.message); - nameAndVersion = request; - } - - debug("Loaded: %s (%s)", nameAndVersion, filePath); - } -} - -/** - * Create a new context with default values. - * @param {ConfigArrayFactoryInternalSlots} slots The internal slots. - * @param {"config" | "ignore" | "implicit-processor" | undefined} providedType The type of the current configuration. Default is `"config"`. - * @param {string | undefined} providedName The name of the current configuration. Default is the relative path from `cwd` to `filePath`. - * @param {string | undefined} providedFilePath The path to the current configuration. Default is empty string. - * @param {string | undefined} providedMatchBasePath The type of the current configuration. Default is the directory of `filePath` or `cwd`. - * @returns {ConfigArrayFactoryLoadingContext} The created context. - */ -function createContext( - { cwd, resolvePluginsRelativeTo }, - providedType, - providedName, - providedFilePath, - providedMatchBasePath -) { - const filePath = providedFilePath - ? path.resolve(cwd, providedFilePath) - : ""; - const matchBasePath = - (providedMatchBasePath && path.resolve(cwd, providedMatchBasePath)) || - (filePath && path.dirname(filePath)) || - cwd; - const name = - providedName || - (filePath && path.relative(cwd, filePath)) || - ""; - const pluginBasePath = - resolvePluginsRelativeTo || - (filePath && path.dirname(filePath)) || - cwd; - const type = providedType || "config"; - - return { filePath, matchBasePath, name, pluginBasePath, type }; -} - -/** - * Normalize a given plugin. - * - Ensure the object to have four properties: configs, environments, processors, and rules. - * - Ensure the object to not have other properties. - * @param {Plugin} plugin The plugin to normalize. - * @returns {Plugin} The normalized plugin. - */ -function normalizePlugin(plugin) { - return { - configs: plugin.configs || {}, - environments: plugin.environments || {}, - processors: plugin.processors || {}, - rules: plugin.rules || {} - }; -} - -//------------------------------------------------------------------------------ -// Public Interface -//------------------------------------------------------------------------------ - -/** - * The factory of `ConfigArray` objects. - */ -class ConfigArrayFactory { - - /** - * Initialize this instance. - * @param {ConfigArrayFactoryOptions} [options] The map for additional plugins. - */ - constructor({ - additionalPluginPool = new Map(), - cwd = process.cwd(), - resolvePluginsRelativeTo - } = {}) { - internalSlotsMap.set(this, { - additionalPluginPool, - cwd, - resolvePluginsRelativeTo: - resolvePluginsRelativeTo && - path.resolve(cwd, resolvePluginsRelativeTo) - }); - } - - /** - * Create `ConfigArray` instance from a config data. - * @param {ConfigData|null} configData The config data to create. - * @param {Object} [options] The options. - * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. - * @param {string} [options.filePath] The path to this config data. - * @param {string} [options.name] The config name. - * @returns {ConfigArray} Loaded config. - */ - create(configData, { basePath, filePath, name } = {}) { - if (!configData) { - return new ConfigArray(); - } - - const slots = internalSlotsMap.get(this); - const ctx = createContext(slots, "config", name, filePath, basePath); - const elements = this._normalizeConfigData(configData, ctx); - - return new ConfigArray(...elements); - } - - /** - * Load a config file. - * @param {string} filePath The path to a config file. - * @param {Object} [options] The options. - * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. - * @param {string} [options.name] The config name. - * @returns {ConfigArray} Loaded config. - */ - loadFile(filePath, { basePath, name } = {}) { - const slots = internalSlotsMap.get(this); - const ctx = createContext(slots, "config", name, filePath, basePath); - - return new ConfigArray(...this._loadConfigData(ctx)); - } - - /** - * Load the config file on a given directory if exists. - * @param {string} directoryPath The path to a directory. - * @param {Object} [options] The options. - * @param {string} [options.basePath] The base path to resolve relative paths in `overrides[].files`, `overrides[].excludedFiles`, and `ignorePatterns`. - * @param {string} [options.name] The config name. - * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. - */ - loadInDirectory(directoryPath, { basePath, name } = {}) { - const slots = internalSlotsMap.get(this); - - for (const filename of configFilenames) { - const ctx = createContext( - slots, - "config", - name, - path.join(directoryPath, filename), - basePath - ); - - if (fs.existsSync(ctx.filePath)) { - let configData; - - try { - configData = loadConfigFile(ctx.filePath); - } catch (error) { - if (!error || error.code !== "ESLINT_CONFIG_FIELD_NOT_FOUND") { - throw error; - } - } - - if (configData) { - debug(`Config file found: ${ctx.filePath}`); - return new ConfigArray( - ...this._normalizeConfigData(configData, ctx) - ); - } - } - } - - debug(`Config file not found on ${directoryPath}`); - return new ConfigArray(); - } - - /** - * Check if a config file on a given directory exists or not. - * @param {string} directoryPath The path to a directory. - * @returns {string | null} The path to the found config file. If not found then null. - */ - static getPathToConfigFileInDirectory(directoryPath) { - for (const filename of configFilenames) { - const filePath = path.join(directoryPath, filename); - - if (fs.existsSync(filePath)) { - if (filename === "package.json") { - try { - loadPackageJSONConfigFile(filePath); - return filePath; - } catch { /* ignore */ } - } else { - return filePath; - } - } - } - return null; - } - - /** - * Load `.eslintignore` file. - * @param {string} filePath The path to a `.eslintignore` file to load. - * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. - */ - loadESLintIgnore(filePath) { - const slots = internalSlotsMap.get(this); - const ctx = createContext( - slots, - "ignore", - void 0, - filePath, - slots.cwd - ); - const ignorePatterns = loadESLintIgnoreFile(ctx.filePath); - - return new ConfigArray( - ...this._normalizeESLintIgnoreData(ignorePatterns, ctx) - ); - } - - /** - * Load `.eslintignore` file in the current working directory. - * @returns {ConfigArray} Loaded config. An empty `ConfigArray` if any config doesn't exist. - */ - loadDefaultESLintIgnore() { - const slots = internalSlotsMap.get(this); - const eslintIgnorePath = path.resolve(slots.cwd, ".eslintignore"); - const packageJsonPath = path.resolve(slots.cwd, "package.json"); - - if (fs.existsSync(eslintIgnorePath)) { - return this.loadESLintIgnore(eslintIgnorePath); - } - if (fs.existsSync(packageJsonPath)) { - const data = loadJSONConfigFile(packageJsonPath); - - if (Object.hasOwnProperty.call(data, "eslintIgnore")) { - if (!Array.isArray(data.eslintIgnore)) { - throw new Error("Package.json eslintIgnore property requires an array of paths"); - } - const ctx = createContext( - slots, - "ignore", - "eslintIgnore in package.json", - packageJsonPath, - slots.cwd - ); - - return new ConfigArray( - ...this._normalizeESLintIgnoreData(data.eslintIgnore, ctx) - ); - } - } - - return new ConfigArray(); - } - - /** - * Load a given config file. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} Loaded config. - * @private - */ - _loadConfigData(ctx) { - return this._normalizeConfigData(loadConfigFile(ctx.filePath), ctx); - } - - /** - * Normalize a given `.eslintignore` data to config array elements. - * @param {string[]} ignorePatterns The patterns to ignore files. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - *_normalizeESLintIgnoreData(ignorePatterns, ctx) { - const elements = this._normalizeObjectConfigData( - { ignorePatterns }, - ctx - ); - - // Set `ignorePattern.loose` flag for backward compatibility. - for (const element of elements) { - if (element.ignorePattern) { - element.ignorePattern.loose = true; - } - yield element; - } - } - - /** - * Normalize a given config to an array. - * @param {ConfigData} configData The config data to normalize. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - _normalizeConfigData(configData, ctx) { - validateConfigSchema(configData, ctx.name || ctx.filePath); - return this._normalizeObjectConfigData(configData, ctx); - } - - /** - * Normalize a given config to an array. - * @param {ConfigData|OverrideConfigData} configData The config data to normalize. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - *_normalizeObjectConfigData(configData, ctx) { - const { files, excludedFiles, ...configBody } = configData; - const criteria = OverrideTester.create( - files, - excludedFiles, - ctx.matchBasePath - ); - const elements = this._normalizeObjectConfigDataBody(configBody, ctx); - - // Apply the criteria to every element. - for (const element of elements) { - - /* - * Merge the criteria. - * This is for the `overrides` entries that came from the - * configurations of `overrides[].extends`. - */ - element.criteria = OverrideTester.and(criteria, element.criteria); - - /* - * Remove `root` property to ignore `root` settings which came from - * `extends` in `overrides`. - */ - if (element.criteria) { - element.root = void 0; - } - - yield element; - } - } - - /** - * Normalize a given config to an array. - * @param {ConfigData} configData The config data to normalize. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - *_normalizeObjectConfigDataBody( - { - env, - extends: extend, - globals, - ignorePatterns, - noInlineConfig, - parser: parserName, - parserOptions, - plugins: pluginList, - processor, - reportUnusedDisableDirectives, - root, - rules, - settings, - overrides: overrideList = [] - }, - ctx - ) { - const extendList = Array.isArray(extend) ? extend : [extend]; - const ignorePattern = ignorePatterns && new IgnorePattern( - Array.isArray(ignorePatterns) ? ignorePatterns : [ignorePatterns], - ctx.matchBasePath - ); - - // Flatten `extends`. - for (const extendName of extendList.filter(Boolean)) { - yield* this._loadExtends(extendName, ctx); - } - - // Load parser & plugins. - const parser = parserName && this._loadParser(parserName, ctx); - const plugins = pluginList && this._loadPlugins(pluginList, ctx); - - // Yield pseudo config data for file extension processors. - if (plugins) { - yield* this._takeFileExtensionProcessors(plugins, ctx); - } - - // Yield the config data except `extends` and `overrides`. - yield { - - // Debug information. - type: ctx.type, - name: ctx.name, - filePath: ctx.filePath, - - // Config data. - criteria: null, - env, - globals, - ignorePattern, - noInlineConfig, - parser, - parserOptions, - plugins, - processor, - reportUnusedDisableDirectives, - root, - rules, - settings - }; - - // Flatten `overries`. - for (let i = 0; i < overrideList.length; ++i) { - yield* this._normalizeObjectConfigData( - overrideList[i], - { ...ctx, name: `${ctx.name}#overrides[${i}]` } - ); - } - } - - /** - * Load configs of an element in `extends`. - * @param {string} extendName The name of a base config. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - _loadExtends(extendName, ctx) { - debug("Loading {extends:%j} relative to %s", extendName, ctx.filePath); - try { - if (extendName.startsWith("eslint:")) { - return this._loadExtendedBuiltInConfig(extendName, ctx); - } - if (extendName.startsWith("plugin:")) { - return this._loadExtendedPluginConfig(extendName, ctx); - } - return this._loadExtendedShareableConfig(extendName, ctx); - } catch (error) { - error.message += `\nReferenced from: ${ctx.filePath || ctx.name}`; - throw error; - } - } - - /** - * Load configs of an element in `extends`. - * @param {string} extendName The name of a base config. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - _loadExtendedBuiltInConfig(extendName, ctx) { - if (extendName === "eslint:recommended") { - return this._loadConfigData({ - ...ctx, - filePath: eslintRecommendedPath, - name: `${ctx.name} » ${extendName}` - }); - } - if (extendName === "eslint:all") { - return this._loadConfigData({ - ...ctx, - filePath: eslintAllPath, - name: `${ctx.name} » ${extendName}` - }); - } - - throw configInvalidError(extendName, ctx.name, "extend-config-missing"); - } - - /** - * Load configs of an element in `extends`. - * @param {string} extendName The name of a base config. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - _loadExtendedPluginConfig(extendName, ctx) { - const slashIndex = extendName.lastIndexOf("/"); - - if (slashIndex === -1) { - throw configInvalidError(extendName, ctx.filePath, "plugin-invalid"); - } - - const pluginName = extendName.slice("plugin:".length, slashIndex); - const configName = extendName.slice(slashIndex + 1); - - if (isFilePath(pluginName)) { - throw new Error("'extends' cannot use a file path for plugins."); - } - - const plugin = this._loadPlugin(pluginName, ctx); - const configData = - plugin.definition && - plugin.definition.configs[configName]; - - if (configData) { - return this._normalizeConfigData(configData, { - ...ctx, - filePath: plugin.filePath || ctx.filePath, - name: `${ctx.name} » plugin:${plugin.id}/${configName}` - }); - } - - throw plugin.error || configInvalidError(extendName, ctx.filePath, "extend-config-missing"); - } - - /** - * Load configs of an element in `extends`. - * @param {string} extendName The name of a base config. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The normalized config. - * @private - */ - _loadExtendedShareableConfig(extendName, ctx) { - const { cwd } = internalSlotsMap.get(this); - const relativeTo = ctx.filePath || path.join(cwd, "__placeholder__.js"); - let request; - - if (isFilePath(extendName)) { - request = extendName; - } else if (extendName.startsWith(".")) { - request = `./${extendName}`; // For backward compatibility. A ton of tests depended on this behavior. - } else { - request = naming.normalizePackageName( - extendName, - "eslint-config" - ); - } - - let filePath; - - try { - filePath = ModuleResolver.resolve(request, relativeTo); - } catch (error) { - /* istanbul ignore else */ - if (error && error.code === "MODULE_NOT_FOUND") { - throw configInvalidError(extendName, ctx.filePath, "extend-config-missing"); - } - throw error; - } - - writeDebugLogForLoading(request, relativeTo, filePath); - return this._loadConfigData({ - ...ctx, - filePath, - name: `${ctx.name} » ${request}` - }); - } - - /** - * Load given plugins. - * @param {string[]} names The plugin names to load. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {Record} The loaded parser. - * @private - */ - _loadPlugins(names, ctx) { - return names.reduce((map, name) => { - if (isFilePath(name)) { - throw new Error("Plugins array cannot includes file paths."); - } - const plugin = this._loadPlugin(name, ctx); - - map[plugin.id] = plugin; - - return map; - }, {}); - } - - /** - * Load a given parser. - * @param {string} nameOrPath The package name or the path to a parser file. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {DependentParser} The loaded parser. - */ - _loadParser(nameOrPath, ctx) { - debug("Loading parser %j from %s", nameOrPath, ctx.filePath); - - const { cwd } = internalSlotsMap.get(this); - const relativeTo = ctx.filePath || path.join(cwd, "__placeholder__.js"); - - try { - const filePath = ModuleResolver.resolve(nameOrPath, relativeTo); - - writeDebugLogForLoading(nameOrPath, relativeTo, filePath); - - return new ConfigDependency({ - definition: require(filePath), - filePath, - id: nameOrPath, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } catch (error) { - - // If the parser name is "espree", load the espree of ESLint. - if (nameOrPath === "espree") { - debug("Fallback espree."); - return new ConfigDependency({ - definition: require("espree"), - filePath: require.resolve("espree"), - id: nameOrPath, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } - - debug("Failed to load parser '%s' declared in '%s'.", nameOrPath, ctx.name); - error.message = `Failed to load parser '${nameOrPath}' declared in '${ctx.name}': ${error.message}`; - - return new ConfigDependency({ - error, - id: nameOrPath, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } - } - - /** - * Load a given plugin. - * @param {string} name The plugin name to load. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {DependentPlugin} The loaded plugin. - * @private - */ - _loadPlugin(name, ctx) { - debug("Loading plugin %j from %s", name, ctx.filePath); - - const { additionalPluginPool } = internalSlotsMap.get(this); - const request = naming.normalizePackageName(name, "eslint-plugin"); - const id = naming.getShorthandName(request, "eslint-plugin"); - const relativeTo = path.join(ctx.pluginBasePath, "__placeholder__.js"); - - if (name.match(/\s+/u)) { - const error = Object.assign( - new Error(`Whitespace found in plugin name '${name}'`), - { - messageTemplate: "whitespace-found", - messageData: { pluginName: request } - } - ); - - return new ConfigDependency({ - error, - id, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } - - // Check for additional pool. - const plugin = - additionalPluginPool.get(request) || - additionalPluginPool.get(id); - - if (plugin) { - return new ConfigDependency({ - definition: normalizePlugin(plugin), - filePath: "", // It's unknown where the plugin came from. - id, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } - - let filePath; - let error; - - try { - filePath = ModuleResolver.resolve(request, relativeTo); - } catch (resolveError) { - error = resolveError; - /* istanbul ignore else */ - if (error && error.code === "MODULE_NOT_FOUND") { - error.messageTemplate = "plugin-missing"; - error.messageData = { - pluginName: request, - resolvePluginsRelativeTo: ctx.pluginBasePath, - importerName: ctx.name - }; - } - } - - if (filePath) { - try { - writeDebugLogForLoading(request, relativeTo, filePath); - - const startTime = Date.now(); - const pluginDefinition = require(filePath); - - debug(`Plugin ${filePath} loaded in: ${Date.now() - startTime}ms`); - - return new ConfigDependency({ - definition: normalizePlugin(pluginDefinition), - filePath, - id, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } catch (loadError) { - error = loadError; - } - } - - debug("Failed to load plugin '%s' declared in '%s'.", name, ctx.name); - error.message = `Failed to load plugin '${name}' declared in '${ctx.name}': ${error.message}`; - return new ConfigDependency({ - error, - id, - importerName: ctx.name, - importerPath: ctx.filePath - }); - } - - /** - * Take file expression processors as config array elements. - * @param {Record} plugins The plugin definitions. - * @param {ConfigArrayFactoryLoadingContext} ctx The loading context. - * @returns {IterableIterator} The config array elements of file expression processors. - * @private - */ - *_takeFileExtensionProcessors(plugins, ctx) { - for (const pluginId of Object.keys(plugins)) { - const processors = - plugins[pluginId] && - plugins[pluginId].definition && - plugins[pluginId].definition.processors; - - if (!processors) { - continue; - } - - for (const processorId of Object.keys(processors)) { - if (processorId.startsWith(".")) { - yield* this._normalizeObjectConfigData( - { - files: [`*${processorId}`], - processor: `${pluginId}/${processorId}` - }, - { - ...ctx, - type: "implicit-processor", - name: `${ctx.name}#processors["${pluginId}/${processorId}"]` - } - ); - } - } - } - } -} - -module.exports = { ConfigArrayFactory, createContext }; diff --git a/node_modules/eslint/lib/cli-engine/config-array/config-array.js b/node_modules/eslint/lib/cli-engine/config-array/config-array.js deleted file mode 100644 index c2ef6c94ab..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array/config-array.js +++ /dev/null @@ -1,536 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `ConfigArray` class. - * - * `ConfigArray` class expresses the full of a configuration. It has the entry - * config file, base config files that were extended, loaded parsers, and loaded - * plugins. - * - * `ConfigArray` class provides three properties and two methods. - * - * - `pluginEnvironments` - * - `pluginProcessors` - * - `pluginRules` - * The `Map` objects that contain the members of all plugins that this - * config array contains. Those map objects don't have mutation methods. - * Those keys are the member ID such as `pluginId/memberName`. - * - `isRoot()` - * If `true` then this configuration has `root:true` property. - * - `extractConfig(filePath)` - * Extract the final configuration for a given file. This means merging - * every config array element which that `criteria` property matched. The - * `filePath` argument must be an absolute path. - * - * `ConfigArrayFactory` provides the loading logic of config files. - * - * @author Toru Nagashima - */ -"use strict"; - -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const { ExtractedConfig } = require("./extracted-config"); -const { IgnorePattern } = require("./ignore-pattern"); - -//------------------------------------------------------------------------------ -// Helpers -//------------------------------------------------------------------------------ - -// Define types for VSCode IntelliSense. -/** @typedef {import("../../shared/types").Environment} Environment */ -/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */ -/** @typedef {import("../../shared/types").RuleConf} RuleConf */ -/** @typedef {import("../../shared/types").Rule} Rule */ -/** @typedef {import("../../shared/types").Plugin} Plugin */ -/** @typedef {import("../../shared/types").Processor} Processor */ -/** @typedef {import("./config-dependency").DependentParser} DependentParser */ -/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */ -/** @typedef {import("./override-tester")["OverrideTester"]} OverrideTester */ - -/** - * @typedef {Object} ConfigArrayElement - * @property {string} name The name of this config element. - * @property {string} filePath The path to the source file of this config element. - * @property {InstanceType|null} criteria The tester for the `files` and `excludedFiles` of this config element. - * @property {Record|undefined} env The environment settings. - * @property {Record|undefined} globals The global variable settings. - * @property {IgnorePattern|undefined} ignorePattern The ignore patterns. - * @property {boolean|undefined} noInlineConfig The flag that disables directive comments. - * @property {DependentParser|undefined} parser The parser loader. - * @property {Object|undefined} parserOptions The parser options. - * @property {Record|undefined} plugins The plugin loaders. - * @property {string|undefined} processor The processor name to refer plugin's processor. - * @property {boolean|undefined} reportUnusedDisableDirectives The flag to report unused `eslint-disable` comments. - * @property {boolean|undefined} root The flag to express root. - * @property {Record|undefined} rules The rule settings - * @property {Object|undefined} settings The shared settings. - * @property {"config" | "ignore" | "implicit-processor"} type The element type. - */ - -/** - * @typedef {Object} ConfigArrayInternalSlots - * @property {Map} cache The cache to extract configs. - * @property {ReadonlyMap|null} envMap The map from environment ID to environment definition. - * @property {ReadonlyMap|null} processorMap The map from processor ID to environment definition. - * @property {ReadonlyMap|null} ruleMap The map from rule ID to rule definition. - */ - -/** @type {WeakMap} */ -const internalSlotsMap = new class extends WeakMap { - get(key) { - let value = super.get(key); - - if (!value) { - value = { - cache: new Map(), - envMap: null, - processorMap: null, - ruleMap: null - }; - super.set(key, value); - } - - return value; - } -}(); - -/** - * Get the indices which are matched to a given file. - * @param {ConfigArrayElement[]} elements The elements. - * @param {string} filePath The path to a target file. - * @returns {number[]} The indices. - */ -function getMatchedIndices(elements, filePath) { - const indices = []; - - for (let i = elements.length - 1; i >= 0; --i) { - const element = elements[i]; - - if (!element.criteria || (filePath && element.criteria.test(filePath))) { - indices.push(i); - } - } - - return indices; -} - -/** - * Check if a value is a non-null object. - * @param {any} x The value to check. - * @returns {boolean} `true` if the value is a non-null object. - */ -function isNonNullObject(x) { - return typeof x === "object" && x !== null; -} - -/** - * Merge two objects. - * - * Assign every property values of `y` to `x` if `x` doesn't have the property. - * If `x`'s property value is an object, it does recursive. - * @param {Object} target The destination to merge - * @param {Object|undefined} source The source to merge. - * @returns {void} - */ -function mergeWithoutOverwrite(target, source) { - if (!isNonNullObject(source)) { - return; - } - - for (const key of Object.keys(source)) { - if (key === "__proto__") { - continue; - } - - if (isNonNullObject(target[key])) { - mergeWithoutOverwrite(target[key], source[key]); - } else if (target[key] === void 0) { - if (isNonNullObject(source[key])) { - target[key] = Array.isArray(source[key]) ? [] : {}; - mergeWithoutOverwrite(target[key], source[key]); - } else if (source[key] !== void 0) { - target[key] = source[key]; - } - } - } -} - -/** - * The error for plugin conflicts. - */ -class PluginConflictError extends Error { - - /** - * Initialize this error object. - * @param {string} pluginId The plugin ID. - * @param {{filePath:string, importerName:string}[]} plugins The resolved plugins. - */ - constructor(pluginId, plugins) { - super(`Plugin "${pluginId}" was conflicted between ${plugins.map(p => `"${p.importerName}"`).join(" and ")}.`); - this.messageTemplate = "plugin-conflict"; - this.messageData = { pluginId, plugins }; - } -} - -/** - * Merge plugins. - * `target`'s definition is prior to `source`'s. - * @param {Record} target The destination to merge - * @param {Record|undefined} source The source to merge. - * @returns {void} - */ -function mergePlugins(target, source) { - if (!isNonNullObject(source)) { - return; - } - - for (const key of Object.keys(source)) { - if (key === "__proto__") { - continue; - } - const targetValue = target[key]; - const sourceValue = source[key]; - - // Adopt the plugin which was found at first. - if (targetValue === void 0) { - if (sourceValue.error) { - throw sourceValue.error; - } - target[key] = sourceValue; - } else if (sourceValue.filePath !== targetValue.filePath) { - throw new PluginConflictError(key, [ - { - filePath: targetValue.filePath, - importerName: targetValue.importerName - }, - { - filePath: sourceValue.filePath, - importerName: sourceValue.importerName - } - ]); - } - } -} - -/** - * Merge rule configs. - * `target`'s definition is prior to `source`'s. - * @param {Record} target The destination to merge - * @param {Record|undefined} source The source to merge. - * @returns {void} - */ -function mergeRuleConfigs(target, source) { - if (!isNonNullObject(source)) { - return; - } - - for (const key of Object.keys(source)) { - if (key === "__proto__") { - continue; - } - const targetDef = target[key]; - const sourceDef = source[key]; - - // Adopt the rule config which was found at first. - if (targetDef === void 0) { - if (Array.isArray(sourceDef)) { - target[key] = [...sourceDef]; - } else { - target[key] = [sourceDef]; - } - - /* - * If the first found rule config is severity only and the current rule - * config has options, merge the severity and the options. - */ - } else if ( - targetDef.length === 1 && - Array.isArray(sourceDef) && - sourceDef.length >= 2 - ) { - targetDef.push(...sourceDef.slice(1)); - } - } -} - -/** - * Create the extracted config. - * @param {ConfigArray} instance The config elements. - * @param {number[]} indices The indices to use. - * @returns {ExtractedConfig} The extracted config. - */ -function createConfig(instance, indices) { - const config = new ExtractedConfig(); - const ignorePatterns = []; - - // Merge elements. - for (const index of indices) { - const element = instance[index]; - - // Adopt the parser which was found at first. - if (!config.parser && element.parser) { - if (element.parser.error) { - throw element.parser.error; - } - config.parser = element.parser; - } - - // Adopt the processor which was found at first. - if (!config.processor && element.processor) { - config.processor = element.processor; - } - - // Adopt the noInlineConfig which was found at first. - if (config.noInlineConfig === void 0 && element.noInlineConfig !== void 0) { - config.noInlineConfig = element.noInlineConfig; - config.configNameOfNoInlineConfig = element.name; - } - - // Adopt the reportUnusedDisableDirectives which was found at first. - if (config.reportUnusedDisableDirectives === void 0 && element.reportUnusedDisableDirectives !== void 0) { - config.reportUnusedDisableDirectives = element.reportUnusedDisableDirectives; - } - - // Collect ignorePatterns - if (element.ignorePattern) { - ignorePatterns.push(element.ignorePattern); - } - - // Merge others. - mergeWithoutOverwrite(config.env, element.env); - mergeWithoutOverwrite(config.globals, element.globals); - mergeWithoutOverwrite(config.parserOptions, element.parserOptions); - mergeWithoutOverwrite(config.settings, element.settings); - mergePlugins(config.plugins, element.plugins); - mergeRuleConfigs(config.rules, element.rules); - } - - // Create the predicate function for ignore patterns. - if (ignorePatterns.length > 0) { - config.ignores = IgnorePattern.createIgnore(ignorePatterns.reverse()); - } - - return config; -} - -/** - * Collect definitions. - * @template T, U - * @param {string} pluginId The plugin ID for prefix. - * @param {Record} defs The definitions to collect. - * @param {Map} map The map to output. - * @param {function(T): U} [normalize] The normalize function for each value. - * @returns {void} - */ -function collect(pluginId, defs, map, normalize) { - if (defs) { - const prefix = pluginId && `${pluginId}/`; - - for (const [key, value] of Object.entries(defs)) { - map.set( - `${prefix}${key}`, - normalize ? normalize(value) : value - ); - } - } -} - -/** - * Normalize a rule definition. - * @param {Function|Rule} rule The rule definition to normalize. - * @returns {Rule} The normalized rule definition. - */ -function normalizePluginRule(rule) { - return typeof rule === "function" ? { create: rule } : rule; -} - -/** - * Delete the mutation methods from a given map. - * @param {Map} map The map object to delete. - * @returns {void} - */ -function deleteMutationMethods(map) { - Object.defineProperties(map, { - clear: { configurable: true, value: void 0 }, - delete: { configurable: true, value: void 0 }, - set: { configurable: true, value: void 0 } - }); -} - -/** - * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array. - * @param {ConfigArrayElement[]} elements The config elements. - * @param {ConfigArrayInternalSlots} slots The internal slots. - * @returns {void} - */ -function initPluginMemberMaps(elements, slots) { - const processed = new Set(); - - slots.envMap = new Map(); - slots.processorMap = new Map(); - slots.ruleMap = new Map(); - - for (const element of elements) { - if (!element.plugins) { - continue; - } - - for (const [pluginId, value] of Object.entries(element.plugins)) { - const plugin = value.definition; - - if (!plugin || processed.has(pluginId)) { - continue; - } - processed.add(pluginId); - - collect(pluginId, plugin.environments, slots.envMap); - collect(pluginId, plugin.processors, slots.processorMap); - collect(pluginId, plugin.rules, slots.ruleMap, normalizePluginRule); - } - } - - deleteMutationMethods(slots.envMap); - deleteMutationMethods(slots.processorMap); - deleteMutationMethods(slots.ruleMap); -} - -/** - * Create `envMap`, `processorMap`, `ruleMap` with the plugins in the config array. - * @param {ConfigArray} instance The config elements. - * @returns {ConfigArrayInternalSlots} The extracted config. - */ -function ensurePluginMemberMaps(instance) { - const slots = internalSlotsMap.get(instance); - - if (!slots.ruleMap) { - initPluginMemberMaps(instance, slots); - } - - return slots; -} - -//------------------------------------------------------------------------------ -// Public Interface -//------------------------------------------------------------------------------ - -/** - * The Config Array. - * - * `ConfigArray` instance contains all settings, parsers, and plugins. - * You need to call `ConfigArray#extractConfig(filePath)` method in order to - * extract, merge and get only the config data which is related to an arbitrary - * file. - * @extends {Array} - */ -class ConfigArray extends Array { - - /** - * Get the plugin environments. - * The returned map cannot be mutated. - * @type {ReadonlyMap} The plugin environments. - */ - get pluginEnvironments() { - return ensurePluginMemberMaps(this).envMap; - } - - /** - * Get the plugin processors. - * The returned map cannot be mutated. - * @type {ReadonlyMap} The plugin processors. - */ - get pluginProcessors() { - return ensurePluginMemberMaps(this).processorMap; - } - - /** - * Get the plugin rules. - * The returned map cannot be mutated. - * @returns {ReadonlyMap} The plugin rules. - */ - get pluginRules() { - return ensurePluginMemberMaps(this).ruleMap; - } - - /** - * Check if this config has `root` flag. - * @returns {boolean} `true` if this config array is root. - */ - isRoot() { - for (let i = this.length - 1; i >= 0; --i) { - const root = this[i].root; - - if (typeof root === "boolean") { - return root; - } - } - return false; - } - - /** - * Extract the config data which is related to a given file. - * @param {string} filePath The absolute path to the target file. - * @returns {ExtractedConfig} The extracted config data. - */ - extractConfig(filePath) { - const { cache } = internalSlotsMap.get(this); - const indices = getMatchedIndices(this, filePath); - const cacheKey = indices.join(","); - - if (!cache.has(cacheKey)) { - cache.set(cacheKey, createConfig(this, indices)); - } - - return cache.get(cacheKey); - } - - /** - * Check if a given path is an additional lint target. - * @param {string} filePath The absolute path to the target file. - * @returns {boolean} `true` if the file is an additional lint target. - */ - isAdditionalTargetPath(filePath) { - for (const { criteria, type } of this) { - if ( - type === "config" && - criteria && - !criteria.endsWithWildcard && - criteria.test(filePath) - ) { - return true; - } - } - return false; - } -} - -const exportObject = { - ConfigArray, - - /** - * Get the used extracted configs. - * CLIEngine will use this method to collect used deprecated rules. - * @param {ConfigArray} instance The config array object to get. - * @returns {ExtractedConfig[]} The used extracted configs. - * @private - */ - getUsedExtractedConfigs(instance) { - const { cache } = internalSlotsMap.get(instance); - - return Array.from(cache.values()); - } -}; - -module.exports = exportObject; diff --git a/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js b/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js deleted file mode 100644 index 9fc67b0105..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array/config-dependency.js +++ /dev/null @@ -1,128 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `ConfigDependency` class. - * - * `ConfigDependency` class expresses a loaded parser or plugin. - * - * If the parser or plugin was loaded successfully, it has `definition` property - * and `filePath` property. Otherwise, it has `error` property. - * - * When `JSON.stringify()` converted a `ConfigDependency` object to a JSON, it - * omits `definition` property. - * - * `ConfigArrayFactory` creates `ConfigDependency` objects when it loads parsers - * or plugins. - * - * @author Toru Nagashima - */ -"use strict"; - -const util = require("util"); - -/** - * The class is to store parsers or plugins. - * This class hides the loaded object from `JSON.stringify()` and `console.log`. - * @template T - */ -class ConfigDependency { - - /** - * Initialize this instance. - * @param {Object} data The dependency data. - * @param {T} [data.definition] The dependency if the loading succeeded. - * @param {Error} [data.error] The error object if the loading failed. - * @param {string} [data.filePath] The actual path to the dependency if the loading succeeded. - * @param {string} data.id The ID of this dependency. - * @param {string} data.importerName The name of the config file which loads this dependency. - * @param {string} data.importerPath The path to the config file which loads this dependency. - */ - constructor({ - definition = null, - error = null, - filePath = null, - id, - importerName, - importerPath - }) { - - /** - * The loaded dependency if the loading succeeded. - * @type {T|null} - */ - this.definition = definition; - - /** - * The error object if the loading failed. - * @type {Error|null} - */ - this.error = error; - - /** - * The loaded dependency if the loading succeeded. - * @type {string|null} - */ - this.filePath = filePath; - - /** - * The ID of this dependency. - * @type {string} - */ - this.id = id; - - /** - * The name of the config file which loads this dependency. - * @type {string} - */ - this.importerName = importerName; - - /** - * The path to the config file which loads this dependency. - * @type {string} - */ - this.importerPath = importerPath; - } - - // eslint-disable-next-line jsdoc/require-description - /** - * @returns {Object} a JSON compatible object. - */ - toJSON() { - const obj = this[util.inspect.custom](); - - // Display `error.message` (`Error#message` is unenumerable). - if (obj.error instanceof Error) { - obj.error = { ...obj.error, message: obj.error.message }; - } - - return obj; - } - - // eslint-disable-next-line jsdoc/require-description - /** - * @returns {Object} an object to display by `console.log()`. - */ - [util.inspect.custom]() { - const { - definition: _ignore, // eslint-disable-line no-unused-vars - ...obj - } = this; - - return obj; - } -} - -/** @typedef {ConfigDependency} DependentParser */ -/** @typedef {ConfigDependency} DependentPlugin */ - -module.exports = { ConfigDependency }; diff --git a/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js b/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js deleted file mode 100644 index fd7cabab3e..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array/extracted-config.js +++ /dev/null @@ -1,158 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `ExtractedConfig` class. - * - * `ExtractedConfig` class expresses a final configuration for a specific file. - * - * It provides one method. - * - * - `toCompatibleObjectAsConfigFileContent()` - * Convert this configuration to the compatible object as the content of - * config files. It converts the loaded parser and plugins to strings. - * `CLIEngine#getConfigForFile(filePath)` method uses this method. - * - * `ConfigArray#extractConfig(filePath)` creates a `ExtractedConfig` instance. - * - * @author Toru Nagashima - */ -"use strict"; - -const { IgnorePattern } = require("./ignore-pattern"); - -// For VSCode intellisense -/** @typedef {import("../../shared/types").ConfigData} ConfigData */ -/** @typedef {import("../../shared/types").GlobalConf} GlobalConf */ -/** @typedef {import("../../shared/types").SeverityConf} SeverityConf */ -/** @typedef {import("./config-dependency").DependentParser} DependentParser */ -/** @typedef {import("./config-dependency").DependentPlugin} DependentPlugin */ - -/** - * Check if `xs` starts with `ys`. - * @template T - * @param {T[]} xs The array to check. - * @param {T[]} ys The array that may be the first part of `xs`. - * @returns {boolean} `true` if `xs` starts with `ys`. - */ -function startsWith(xs, ys) { - return xs.length >= ys.length && ys.every((y, i) => y === xs[i]); -} - -/** - * The class for extracted config data. - */ -class ExtractedConfig { - constructor() { - - /** - * The config name what `noInlineConfig` setting came from. - * @type {string} - */ - this.configNameOfNoInlineConfig = ""; - - /** - * Environments. - * @type {Record} - */ - this.env = {}; - - /** - * Global variables. - * @type {Record} - */ - this.globals = {}; - - /** - * The glob patterns that ignore to lint. - * @type {(((filePath:string, dot?:boolean) => boolean) & { basePath:string; patterns:string[] }) | undefined} - */ - this.ignores = void 0; - - /** - * The flag that disables directive comments. - * @type {boolean|undefined} - */ - this.noInlineConfig = void 0; - - /** - * Parser definition. - * @type {DependentParser|null} - */ - this.parser = null; - - /** - * Options for the parser. - * @type {Object} - */ - this.parserOptions = {}; - - /** - * Plugin definitions. - * @type {Record} - */ - this.plugins = {}; - - /** - * Processor ID. - * @type {string|null} - */ - this.processor = null; - - /** - * The flag that reports unused `eslint-disable` directive comments. - * @type {boolean|undefined} - */ - this.reportUnusedDisableDirectives = void 0; - - /** - * Rule settings. - * @type {Record} - */ - this.rules = {}; - - /** - * Shared settings. - * @type {Object} - */ - this.settings = {}; - } - - /** - * Convert this config to the compatible object as a config file content. - * @returns {ConfigData} The converted object. - */ - toCompatibleObjectAsConfigFileContent() { - const { - /* eslint-disable no-unused-vars */ - configNameOfNoInlineConfig: _ignore1, - processor: _ignore2, - /* eslint-enable no-unused-vars */ - ignores, - ...config - } = this; - - config.parser = config.parser && config.parser.filePath; - config.plugins = Object.keys(config.plugins).filter(Boolean).reverse(); - config.ignorePatterns = ignores ? ignores.patterns : []; - - // Strip the default patterns from `ignorePatterns`. - if (startsWith(config.ignorePatterns, IgnorePattern.DefaultPatterns)) { - config.ignorePatterns = - config.ignorePatterns.slice(IgnorePattern.DefaultPatterns.length); - } - - return config; - } -} - -module.exports = { ExtractedConfig }; diff --git a/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js b/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js deleted file mode 100644 index 37d686dd1b..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array/ignore-pattern.js +++ /dev/null @@ -1,249 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `IgnorePattern` class. - * - * `IgnorePattern` class has the set of glob patterns and the base path. - * - * It provides two static methods. - * - * - `IgnorePattern.createDefaultIgnore(cwd)` - * Create the default predicate function. - * - `IgnorePattern.createIgnore(ignorePatterns)` - * Create the predicate function from multiple `IgnorePattern` objects. - * - * It provides two properties and a method. - * - * - `patterns` - * The glob patterns that ignore to lint. - * - `basePath` - * The base path of the glob patterns. If absolute paths existed in the - * glob patterns, those are handled as relative paths to the base path. - * - `getPatternsRelativeTo(basePath)` - * Get `patterns` as modified for a given base path. It modifies the - * absolute paths in the patterns as prepending the difference of two base - * paths. - * - * `ConfigArrayFactory` creates `IgnorePattern` objects when it processes - * `ignorePatterns` properties. - * - * @author Toru Nagashima - */ -"use strict"; - -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const assert = require("assert"); -const path = require("path"); -const ignore = require("ignore"); -const debug = require("debug")("eslint:ignore-pattern"); - -/** @typedef {ReturnType} Ignore */ - -//------------------------------------------------------------------------------ -// Helpers -//------------------------------------------------------------------------------ - -/** - * Get the path to the common ancestor directory of given paths. - * @param {string[]} sourcePaths The paths to calculate the common ancestor. - * @returns {string} The path to the common ancestor directory. - */ -function getCommonAncestorPath(sourcePaths) { - let result = sourcePaths[0]; - - for (let i = 1; i < sourcePaths.length; ++i) { - const a = result; - const b = sourcePaths[i]; - - // Set the shorter one (it's the common ancestor if one includes the other). - result = a.length < b.length ? a : b; - - // Set the common ancestor. - for (let j = 0, lastSepPos = 0; j < a.length && j < b.length; ++j) { - if (a[j] !== b[j]) { - result = a.slice(0, lastSepPos); - break; - } - if (a[j] === path.sep) { - lastSepPos = j; - } - } - } - - let resolvedResult = result || path.sep; - - // if Windows common ancestor is root of drive must have trailing slash to be absolute. - if (resolvedResult && resolvedResult.endsWith(":") && process.platform === "win32") { - resolvedResult += path.sep; - } - return resolvedResult; -} - -/** - * Make relative path. - * @param {string} from The source path to get relative path. - * @param {string} to The destination path to get relative path. - * @returns {string} The relative path. - */ -function relative(from, to) { - const relPath = path.relative(from, to); - - if (path.sep === "/") { - return relPath; - } - return relPath.split(path.sep).join("/"); -} - -/** - * Get the trailing slash if existed. - * @param {string} filePath The path to check. - * @returns {string} The trailing slash if existed. - */ -function dirSuffix(filePath) { - const isDir = ( - filePath.endsWith(path.sep) || - (process.platform === "win32" && filePath.endsWith("/")) - ); - - return isDir ? "/" : ""; -} - -const DefaultPatterns = Object.freeze(["/**/node_modules/*"]); -const DotPatterns = Object.freeze([".*", "!.eslintrc.*", "!../"]); - -//------------------------------------------------------------------------------ -// Public -//------------------------------------------------------------------------------ - -class IgnorePattern { - - /** - * The default patterns. - * @type {string[]} - */ - static get DefaultPatterns() { - return DefaultPatterns; - } - - /** - * Create the default predicate function. - * @param {string} cwd The current working directory. - * @returns {((filePath:string, dot:boolean) => boolean) & {basePath:string; patterns:string[]}} - * The preficate function. - * The first argument is an absolute path that is checked. - * The second argument is the flag to not ignore dotfiles. - * If the predicate function returned `true`, it means the path should be ignored. - */ - static createDefaultIgnore(cwd) { - return this.createIgnore([new IgnorePattern(DefaultPatterns, cwd)]); - } - - /** - * Create the predicate function from multiple `IgnorePattern` objects. - * @param {IgnorePattern[]} ignorePatterns The list of ignore patterns. - * @returns {((filePath:string, dot?:boolean) => boolean) & {basePath:string; patterns:string[]}} - * The preficate function. - * The first argument is an absolute path that is checked. - * The second argument is the flag to not ignore dotfiles. - * If the predicate function returned `true`, it means the path should be ignored. - */ - static createIgnore(ignorePatterns) { - debug("Create with: %o", ignorePatterns); - - const basePath = getCommonAncestorPath(ignorePatterns.map(p => p.basePath)); - const patterns = [].concat( - ...ignorePatterns.map(p => p.getPatternsRelativeTo(basePath)) - ); - const ig = ignore().add([...DotPatterns, ...patterns]); - const dotIg = ignore().add(patterns); - - debug(" processed: %o", { basePath, patterns }); - - return Object.assign( - (filePath, dot = false) => { - assert(path.isAbsolute(filePath), "'filePath' should be an absolute path."); - const relPathRaw = relative(basePath, filePath); - const relPath = relPathRaw && (relPathRaw + dirSuffix(filePath)); - const adoptedIg = dot ? dotIg : ig; - const result = relPath !== "" && adoptedIg.ignores(relPath); - - debug("Check", { filePath, dot, relativePath: relPath, result }); - return result; - }, - { basePath, patterns } - ); - } - - /** - * Initialize a new `IgnorePattern` instance. - * @param {string[]} patterns The glob patterns that ignore to lint. - * @param {string} basePath The base path of `patterns`. - */ - constructor(patterns, basePath) { - assert(path.isAbsolute(basePath), "'basePath' should be an absolute path."); - - /** - * The glob patterns that ignore to lint. - * @type {string[]} - */ - this.patterns = patterns; - - /** - * The base path of `patterns`. - * @type {string} - */ - this.basePath = basePath; - - /** - * If `true` then patterns which don't start with `/` will match the paths to the outside of `basePath`. Defaults to `false`. - * - * It's set `true` for `.eslintignore`, `package.json`, and `--ignore-path` for backward compatibility. - * It's `false` as-is for `ignorePatterns` property in config files. - * @type {boolean} - */ - this.loose = false; - } - - /** - * Get `patterns` as modified for a given base path. It modifies the - * absolute paths in the patterns as prepending the difference of two base - * paths. - * @param {string} newBasePath The base path. - * @returns {string[]} Modifired patterns. - */ - getPatternsRelativeTo(newBasePath) { - assert(path.isAbsolute(newBasePath), "'newBasePath' should be an absolute path."); - const { basePath, loose, patterns } = this; - - if (newBasePath === basePath) { - return patterns; - } - const prefix = `/${relative(newBasePath, basePath)}`; - - return patterns.map(pattern => { - const negative = pattern.startsWith("!"); - const head = negative ? "!" : ""; - const body = negative ? pattern.slice(1) : pattern; - - if (body.startsWith("/") || body.startsWith("../")) { - return `${head}${prefix}${body}`; - } - return loose ? pattern : `${head}${prefix}/**/${body}`; - }); - } -} - -module.exports = { IgnorePattern }; diff --git a/node_modules/eslint/lib/cli-engine/config-array/index.js b/node_modules/eslint/lib/cli-engine/config-array/index.js deleted file mode 100644 index 146c6f8927..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array/index.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `ConfigArray` class. - * @author Toru Nagashima - */ -"use strict"; - -const { ConfigArray, getUsedExtractedConfigs } = require("./config-array"); -const { ConfigDependency } = require("./config-dependency"); -const { ExtractedConfig } = require("./extracted-config"); -const { IgnorePattern } = require("./ignore-pattern"); -const { OverrideTester } = require("./override-tester"); - -module.exports = { - ConfigArray, - ConfigDependency, - ExtractedConfig, - IgnorePattern, - OverrideTester, - getUsedExtractedConfigs -}; diff --git a/node_modules/eslint/lib/cli-engine/config-array/override-tester.js b/node_modules/eslint/lib/cli-engine/config-array/override-tester.js deleted file mode 100644 index 75dffe2352..0000000000 --- a/node_modules/eslint/lib/cli-engine/config-array/override-tester.js +++ /dev/null @@ -1,235 +0,0 @@ -/* - * STOP!!! DO NOT MODIFY. - * - * This file is part of the ongoing work to move the eslintrc-style config - * system into the @eslint/eslintrc package. This file needs to remain - * unchanged in order for this work to proceed. - * - * If you think you need to change this file, please contact @nzakas first. - * - * Thanks in advance for your cooperation. - */ - -/** - * @fileoverview `OverrideTester` class. - * - * `OverrideTester` class handles `files` property and `excludedFiles` property - * of `overrides` config. - * - * It provides one method. - * - * - `test(filePath)` - * Test if a file path matches the pair of `files` property and - * `excludedFiles` property. The `filePath` argument must be an absolute - * path. - * - * `ConfigArrayFactory` creates `OverrideTester` objects when it processes - * `overrides` properties. - * - * @author Toru Nagashima - */ -"use strict"; - -const assert = require("assert"); -const path = require("path"); -const util = require("util"); -const { Minimatch } = require("minimatch"); -const minimatchOpts = { dot: true, matchBase: true }; - -/** - * @typedef {Object} Pattern - * @property {InstanceType[] | null} includes The positive matchers. - * @property {InstanceType[] | null} excludes The negative matchers. - */ - -/** - * Normalize a given pattern to an array. - * @param {string|string[]|undefined} patterns A glob pattern or an array of glob patterns. - * @returns {string[]|null} Normalized patterns. - * @private - */ -function normalizePatterns(patterns) { - if (Array.isArray(patterns)) { - return patterns.filter(Boolean); - } - if (typeof patterns === "string" && patterns) { - return [patterns]; - } - return []; -} - -/** - * Create the matchers of given patterns. - * @param {string[]} patterns The patterns. - * @returns {InstanceType[] | null} The matchers. - */ -function toMatcher(patterns) { - if (patterns.length === 0) { - return null; - } - return patterns.map(pattern => { - if (/^\.[/\\]/u.test(pattern)) { - return new Minimatch( - pattern.slice(2), - - // `./*.js` should not match with `subdir/foo.js` - { ...minimatchOpts, matchBase: false } - ); - } - return new Minimatch(pattern, minimatchOpts); - }); -} - -/** - * Convert a given matcher to string. - * @param {Pattern} matchers The matchers. - * @returns {string} The string expression of the matcher. - */ -function patternToJson({ includes, excludes }) { - return { - includes: includes && includes.map(m => m.pattern), - excludes: excludes && excludes.map(m => m.pattern) - }; -} - -/** - * The class to test given paths are matched by the patterns. - */ -class OverrideTester { - - /** - * Create a tester with given criteria. - * If there are no criteria, returns `null`. - * @param {string|string[]} files The glob patterns for included files. - * @param {string|string[]} excludedFiles The glob patterns for excluded files. - * @param {string} basePath The path to the base directory to test paths. - * @returns {OverrideTester|null} The created instance or `null`. - */ - static create(files, excludedFiles, basePath) { - const includePatterns = normalizePatterns(files); - const excludePatterns = normalizePatterns(excludedFiles); - let endsWithWildcard = false; - - if (includePatterns.length === 0) { - return null; - } - - // Rejects absolute paths or relative paths to parents. - for (const pattern of includePatterns) { - if (path.isAbsolute(pattern) || pattern.includes("..")) { - throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`); - } - if (pattern.endsWith("*")) { - endsWithWildcard = true; - } - } - for (const pattern of excludePatterns) { - if (path.isAbsolute(pattern) || pattern.includes("..")) { - throw new Error(`Invalid override pattern (expected relative path not containing '..'): ${pattern}`); - } - } - - const includes = toMatcher(includePatterns); - const excludes = toMatcher(excludePatterns); - - return new OverrideTester( - [{ includes, excludes }], - basePath, - endsWithWildcard - ); - } - - /** - * Combine two testers by logical and. - * If either of the testers was `null`, returns the other tester. - * The `basePath` property of the two must be the same value. - * @param {OverrideTester|null} a A tester. - * @param {OverrideTester|null} b Another tester. - * @returns {OverrideTester|null} Combined tester. - */ - static and(a, b) { - if (!b) { - return a && new OverrideTester( - a.patterns, - a.basePath, - a.endsWithWildcard - ); - } - if (!a) { - return new OverrideTester( - b.patterns, - b.basePath, - b.endsWithWildcard - ); - } - - assert.strictEqual(a.basePath, b.basePath); - return new OverrideTester( - a.patterns.concat(b.patterns), - a.basePath, - a.endsWithWildcard || b.endsWithWildcard - ); - } - - /** - * Initialize this instance. - * @param {Pattern[]} patterns The matchers. - * @param {string} basePath The base path. - * @param {boolean} endsWithWildcard If `true` then a pattern ends with `*`. - */ - constructor(patterns, basePath, endsWithWildcard = false) { - - /** @type {Pattern[]} */ - this.patterns = patterns; - - /** @type {string} */ - this.basePath = basePath; - - /** @type {boolean} */ - this.endsWithWildcard = endsWithWildcard; - } - - /** - * Test if a given path is matched or not. - * @param {string} filePath The absolute path to the target file. - * @returns {boolean} `true` if the path was matched. - */ - test(filePath) { - if (typeof filePath !== "string" || !path.isAbsolute(filePath)) { - throw new Error(`'filePath' should be an absolute path, but got ${filePath}.`); - } - const relativePath = path.relative(this.basePath, filePath); - - return this.patterns.every(({ includes, excludes }) => ( - (!includes || includes.some(m => m.match(relativePath))) && - (!excludes || !excludes.some(m => m.match(relativePath))) - )); - } - - // eslint-disable-next-line jsdoc/require-description - /** - * @returns {Object} a JSON compatible object. - */ - toJSON() { - if (this.patterns.length === 1) { - return { - ...patternToJson(this.patterns[0]), - basePath: this.basePath - }; - } - return { - AND: this.patterns.map(patternToJson), - basePath: this.basePath - }; - } - - // eslint-disable-next-line jsdoc/require-description - /** - * @returns {Object} an object to display by `console.log()`. - */ - [util.inspect.custom]() { - return this.toJSON(); - } -} - -module.exports = { OverrideTester }; diff --git a/node_modules/eslint/lib/cli-engine/file-enumerator.js b/node_modules/eslint/lib/cli-engine/file-enumerator.js index 7c433d32f4..ade28517b4 100644 --- a/node_modules/eslint/lib/cli-engine/file-enumerator.js +++ b/node_modules/eslint/lib/cli-engine/file-enumerator.js @@ -38,10 +38,15 @@ const fs = require("fs"); const path = require("path"); const getGlobParent = require("glob-parent"); const isGlob = require("is-glob"); -const { escapeRegExp } = require("lodash"); +const escapeRegExp = require("escape-string-regexp"); const { Minimatch } = require("minimatch"); -const { IgnorePattern } = require("./config-array"); -const { CascadingConfigArrayFactory } = require("./cascading-config-array-factory"); + +const { + Legacy: { + IgnorePattern, + CascadingConfigArrayFactory + } +} = require("@eslint/eslintrc"); const debug = require("debug")("eslint:file-enumerator"); //------------------------------------------------------------------------------ @@ -208,7 +213,11 @@ class FileEnumerator { */ constructor({ cwd = process.cwd(), - configArrayFactory = new CascadingConfigArrayFactory({ cwd }), + configArrayFactory = new CascadingConfigArrayFactory({ + cwd, + eslintRecommendedPath: path.resolve(__dirname, "../../conf/eslint-recommended.js"), + eslintAllPath: path.resolve(__dirname, "../../conf/eslint-all.js") + }), extensions = null, globInputPaths = true, errorOnUnmatchedPattern = true, @@ -424,9 +433,14 @@ class FileEnumerator { // Enumerate the files of this directory. for (const entry of readdirSafeSync(directoryPath)) { const filePath = path.join(directoryPath, entry.name); + const fileInfo = entry.isSymbolicLink() ? statSafeSync(filePath) : entry; + + if (!fileInfo) { + continue; + } // Check if the file is matched. - if (entry.isFile()) { + if (fileInfo.isFile()) { if (!config) { config = configArrayFactory.getConfigArrayForFile( filePath, @@ -462,7 +476,7 @@ class FileEnumerator { } // Dive into the sub directory. - } else if (options.recursive && entry.isDirectory()) { + } else if (options.recursive && fileInfo.isDirectory()) { if (!config) { config = configArrayFactory.getConfigArrayForFile( filePath, diff --git a/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html b/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html deleted file mode 100644 index 93795a1bdc..0000000000 --- a/node_modules/eslint/lib/cli-engine/formatters/html-template-message.html +++ /dev/null @@ -1,8 +0,0 @@ - - <%= lineNumber %>:<%= columnNumber %> - <%= severityName %> - <%- message %> - - <%= ruleId %> - - diff --git a/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html b/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html deleted file mode 100644 index 4016576fa0..0000000000 --- a/node_modules/eslint/lib/cli-engine/formatters/html-template-page.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - ESLint Report - - - -
-

ESLint Report

-
- <%= reportSummary %> - Generated on <%= date %> -
-
- - - <%= results %> - -
- - - diff --git a/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html b/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html deleted file mode 100644 index f4a55933c2..0000000000 --- a/node_modules/eslint/lib/cli-engine/formatters/html-template-result.html +++ /dev/null @@ -1,6 +0,0 @@ - - - [+] <%- filePath %> - <%- summary %> - - diff --git a/node_modules/eslint/lib/cli-engine/formatters/html.js b/node_modules/eslint/lib/cli-engine/formatters/html.js index 69f7395550..baddb63079 100644 --- a/node_modules/eslint/lib/cli-engine/formatters/html.js +++ b/node_modules/eslint/lib/cli-engine/formatters/html.js @@ -4,17 +4,153 @@ */ "use strict"; -const lodash = require("lodash"); -const fs = require("fs"); -const path = require("path"); - //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ -const pageTemplate = lodash.template(fs.readFileSync(path.join(__dirname, "html-template-page.html"), "utf-8")); -const messageTemplate = lodash.template(fs.readFileSync(path.join(__dirname, "html-template-message.html"), "utf-8")); -const resultTemplate = lodash.template(fs.readFileSync(path.join(__dirname, "html-template-result.html"), "utf-8")); +const encodeHTML = (function() { + const encodeHTMLRules = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }; + const matchHTML = /[&<>"']/ug; + + return function(code) { + return code + ? code.toString().replace(matchHTML, m => encodeHTMLRules[m] || m) + : ""; + }; +}()); + +/** + * Get the final HTML document. + * @param {Object} it data for the document. + * @returns {string} HTML document. + */ +function pageTemplate(it) { + const { reportColor, reportSummary, date, results } = it; + + return ` + + + + + ESLint Report + + + +
+

ESLint Report

+
+ ${reportSummary} - Generated on ${date} +
+
+ + + ${results} + +
+ + + +`.trimLeft(); +} /** * Given a word and a count, append an s if count is not one. @@ -58,6 +194,35 @@ function renderColor(totalErrors, totalWarnings) { return 0; } +/** + * Get HTML (table row) describing a single message. + * @param {Object} it data for the message. + * @returns {string} HTML (table row) describing the message. + */ +function messageTemplate(it) { + const { + parentIndex, + lineNumber, + columnNumber, + severityNumber, + severityName, + message, + ruleUrl, + ruleId + } = it; + + return ` + + ${lineNumber}:${columnNumber} + ${severityName} + ${encodeHTML(message)} + + ${ruleId ? ruleId : ""} + + +`.trimLeft(); +} + /** * Get HTML (table rows) describing the messages. * @param {Array} messages Messages. @@ -72,7 +237,7 @@ function renderMessages(messages, parentIndex, rulesMeta) { * @param {Object} message Message. * @returns {string} HTML (table row) describing a message. */ - return lodash.map(messages, message => { + return messages.map(message => { const lineNumber = message.line || 0; const columnNumber = message.column || 0; let ruleUrl; @@ -80,7 +245,9 @@ function renderMessages(messages, parentIndex, rulesMeta) { if (rulesMeta) { const meta = rulesMeta[message.ruleId]; - ruleUrl = lodash.get(meta, "docs.url", null); + if (meta && meta.docs && meta.docs.url) { + ruleUrl = meta.docs.url; + } } return messageTemplate({ @@ -96,6 +263,24 @@ function renderMessages(messages, parentIndex, rulesMeta) { }).join("\n"); } +/** + * Get HTML (table row) describing the result for a single file. + * @param {Object} it data for the file. + * @returns {string} HTML (table row) describing the result for the file. + */ +function resultTemplate(it) { + const { color, index, filePath, summary } = it; + + return ` + + + [+] ${encodeHTML(filePath)} + ${encodeHTML(summary)} + + +`.trimLeft(); +} + // eslint-disable-next-line jsdoc/require-description /** * @param {Array} results Test results. @@ -103,12 +288,11 @@ function renderMessages(messages, parentIndex, rulesMeta) { * @returns {string} HTML string describing the results. */ function renderResults(results, rulesMeta) { - return lodash.map(results, (result, index) => resultTemplate({ + return results.map((result, index) => resultTemplate({ index, color: renderColor(result.errorCount, result.warningCount), filePath: result.filePath, summary: renderSummary(result.errorCount, result.warningCount) - }) + renderMessages(result.messages, index, rulesMeta)).join("\n"); } diff --git a/node_modules/eslint/lib/cli-engine/lint-result-cache.js b/node_modules/eslint/lib/cli-engine/lint-result-cache.js index 23a142097b..3304d429de 100644 --- a/node_modules/eslint/lib/cli-engine/lint-result-cache.js +++ b/node_modules/eslint/lib/cli-engine/lint-result-cache.js @@ -15,6 +15,8 @@ const stringify = require("json-stable-stringify-without-jsonify"); const pkg = require("../../package.json"); const hash = require("./hash"); +const debug = require("debug")("eslint:lint-result-cache"); + //----------------------------------------------------------------------------- // Helpers //----------------------------------------------------------------------------- @@ -22,6 +24,22 @@ const hash = require("./hash"); const configHashCache = new WeakMap(); const nodeVersion = process && process.version; +const validCacheStrategies = ["metadata", "content"]; +const invalidCacheStrategyErrorMessage = `Cache strategy must be one of: ${validCacheStrategies + .map(strategy => `"${strategy}"`) + .join(", ")}`; + +/** + * Tests whether a provided cacheStrategy is valid + * @param {string} cacheStrategy The cache strategy to use + * @returns {boolean} true if `cacheStrategy` is one of `validCacheStrategies`; false otherwise + */ +function isValidCacheStrategy(cacheStrategy) { + return ( + validCacheStrategies.indexOf(cacheStrategy) !== -1 + ); +} + /** * Calculates the hash of the config * @param {ConfigArray} config The config. @@ -49,12 +67,30 @@ class LintResultCache { /** * Creates a new LintResultCache instance. * @param {string} cacheFileLocation The cache file location. - * configuration lookup by file path). + * @param {"metadata" | "content"} cacheStrategy The cache strategy to use. */ - constructor(cacheFileLocation) { + constructor(cacheFileLocation, cacheStrategy) { assert(cacheFileLocation, "Cache file location is required"); - - this.fileEntryCache = fileEntryCache.create(cacheFileLocation); + assert(cacheStrategy, "Cache strategy is required"); + assert( + isValidCacheStrategy(cacheStrategy), + invalidCacheStrategyErrorMessage + ); + + debug(`Caching results to ${cacheFileLocation}`); + + const useChecksum = cacheStrategy === "content"; + + debug( + `Using "${cacheStrategy}" strategy to detect changes` + ); + + this.fileEntryCache = fileEntryCache.create( + cacheFileLocation, + void 0, + useChecksum + ); + this.cacheFileLocation = cacheFileLocation; } /** @@ -76,17 +112,28 @@ class LintResultCache { * was previously linted * If any of these are not true, we will not reuse the lint results. */ - const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath); const hashOfConfig = hashOfConfigFor(config); - const changed = fileDescriptor.changed || fileDescriptor.meta.hashOfConfig !== hashOfConfig; + const changed = + fileDescriptor.changed || + fileDescriptor.meta.hashOfConfig !== hashOfConfig; + + if (fileDescriptor.notFound) { + debug(`File not found on the file system: ${filePath}`); + return null; + } - if (fileDescriptor.notFound || changed) { + if (changed) { + debug(`Cache entry not found or no longer valid: ${filePath}`); return null; } // If source is present but null, need to reread the file from the filesystem. - if (fileDescriptor.meta.results && fileDescriptor.meta.results.source === null) { + if ( + fileDescriptor.meta.results && + fileDescriptor.meta.results.source === null + ) { + debug(`Rereading cached result source from filesystem: ${filePath}`); fileDescriptor.meta.results.source = fs.readFileSync(filePath, "utf-8"); } @@ -112,6 +159,7 @@ class LintResultCache { const fileDescriptor = this.fileEntryCache.getFileDescriptor(filePath); if (fileDescriptor && !fileDescriptor.notFound) { + debug(`Updating cached result: ${filePath}`); // Serialize the result, except that we want to remove the file source if present. const resultToSerialize = Object.assign({}, result); @@ -135,6 +183,7 @@ class LintResultCache { * @returns {void} */ reconcile() { + debug(`Persisting cached results: ${this.cacheFileLocation}`); this.fileEntryCache.reconcile(); } } diff --git a/node_modules/eslint/lib/cli.js b/node_modules/eslint/lib/cli.js index ce11878008..f766764546 100644 --- a/node_modules/eslint/lib/cli.js +++ b/node_modules/eslint/lib/cli.js @@ -32,6 +32,7 @@ const debug = require("debug")("eslint:cli"); /** @typedef {import("./eslint/eslint").ESLintOptions} ESLintOptions */ /** @typedef {import("./eslint/eslint").LintMessage} LintMessage */ /** @typedef {import("./eslint/eslint").LintResult} LintResult */ +/** @typedef {import("./options").ParsedCLIOptions} ParsedCLIOptions */ //------------------------------------------------------------------------------ // Helpers @@ -54,7 +55,7 @@ function quietFixPredicate(message) { /** * Translates the CLI options into the options expected by the CLIEngine. - * @param {Object} cliOptions The CLI options to translate. + * @param {ParsedCLIOptions} cliOptions The CLI options to translate. * @returns {ESLintOptions} The options object for the CLIEngine. * @private */ @@ -62,6 +63,7 @@ function translateOptions({ cache, cacheFile, cacheLocation, + cacheStrategy, config, env, errorOnUnmatchedPattern, @@ -88,6 +90,7 @@ function translateOptions({ allowInlineConfig: inlineConfig, cache, cacheLocation: cacheLocation || cacheFile, + cacheStrategy, errorOnUnmatchedPattern, extensions: ext, fix: (fix || fixDryRun) && (quiet ? quietFixPredicate : true), @@ -219,6 +222,8 @@ const cli = { if (Array.isArray(args)) { debug("CLI args: %o", args.slice(2)); } + + /** @type {ParsedCLIOptions} */ let options; try { @@ -299,12 +304,16 @@ const cli = { await ESLint.outputFixes(results); } + let resultsToPrint = results; + if (options.quiet) { debug("Quiet mode enabled - filtering out warnings"); - results = ESLint.getErrorResults(results); + resultsToPrint = ESLint.getErrorResults(resultsToPrint); } - if (await printResults(engine, results, options.format, options.outputFile)) { + if (await printResults(engine, resultsToPrint, options.format, options.outputFile)) { + + // Errors and warnings from the original unfiltered results should determine the exit code const { errorCount, warningCount } = countErrors(results); const tooManyWarnings = options.maxWarnings >= 0 && warningCount > options.maxWarnings; diff --git a/node_modules/eslint/lib/config/default-config.js b/node_modules/eslint/lib/config/default-config.js new file mode 100644 index 0000000000..cb6f403380 --- /dev/null +++ b/node_modules/eslint/lib/config/default-config.js @@ -0,0 +1,52 @@ +/** + * @fileoverview Default configuration + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const Rules = require("../rules"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + + +exports.defaultConfig = [ + { + plugins: { + "@": { + parsers: { + espree: require("espree") + }, + + /* + * Because we try to delay loading rules until absolutely + * necessary, a proxy allows us to hook into the lazy-loading + * aspect of the rules map while still keeping all of the + * relevant configuration inside of the config array. + */ + rules: new Proxy({}, { + get(target, property) { + return Rules.get(property); + }, + + has(target, property) { + return Rules.has(property); + } + }) + } + }, + ignores: [ + "**/node_modules/**", + ".git/**" + ], + languageOptions: { + parser: "@/espree" + } + } +]; diff --git a/node_modules/eslint/lib/config/flat-config-array.js b/node_modules/eslint/lib/config/flat-config-array.js new file mode 100644 index 0000000000..ecf396a331 --- /dev/null +++ b/node_modules/eslint/lib/config/flat-config-array.js @@ -0,0 +1,125 @@ +/** + * @fileoverview Flat Config Array + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const { ConfigArray, ConfigArraySymbol } = require("@humanwhocodes/config-array"); +const { flatConfigSchema } = require("./flat-config-schema"); +const { RuleValidator } = require("./rule-validator"); +const { defaultConfig } = require("./default-config"); +const recommendedConfig = require("../../conf/eslint-recommended"); +const allConfig = require("../../conf/eslint-all"); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const ruleValidator = new RuleValidator(); + +/** + * Splits a plugin identifier in the form a/b/c into two parts: a/b and c. + * @param {string} identifier The identifier to parse. + * @returns {{objectName: string, pluginName: string}} The parts of the plugin + * name. + */ +function splitPluginIdentifier(identifier) { + const parts = identifier.split("/"); + + return { + objectName: parts.pop(), + pluginName: parts.join("/") + }; +} + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * Represents an array containing configuration information for ESLint. + */ +class FlatConfigArray extends ConfigArray { + + /** + * Creates a new instance. + * @param {*[]} configs An array of configuration information. + * @param {{basePath: string, baseConfig: FlatConfig}} options The options + * to use for the config array instance. + */ + constructor(configs, { basePath, baseConfig = defaultConfig }) { + super(configs, { + basePath, + schema: flatConfigSchema + }); + + this.unshift(baseConfig); + } + + /* eslint-disable class-methods-use-this */ + /** + * Replaces a config with another config to allow us to put strings + * in the config array that will be replaced by objects before + * normalization. + * @param {Object} config The config to preprocess. + * @returns {Object} The preprocessed config. + */ + [ConfigArraySymbol.preprocessConfig](config) { + if (config === "eslint:recommended") { + return recommendedConfig; + } + + if (config === "eslint:all") { + return allConfig; + } + + return config; + } + + /** + * Finalizes the config by replacing plugin references with their objects + * and validating rule option schemas. + * @param {Object} config The config to finalize. + * @returns {Object} The finalized config. + * @throws {TypeError} If the config is invalid. + */ + [ConfigArraySymbol.finalizeConfig](config) { + + const { plugins, languageOptions, processor } = config; + + // Check parser value + if (languageOptions && languageOptions.parser && typeof languageOptions.parser === "string") { + const { pluginName, objectName: parserName } = splitPluginIdentifier(languageOptions.parser); + + if (!plugins || !plugins[pluginName] || !plugins[pluginName].parsers || !plugins[pluginName].parsers[parserName]) { + throw new TypeError(`Key "parser": Could not find "${parserName}" in plugin "${pluginName}".`); + } + + languageOptions.parser = plugins[pluginName].parsers[parserName]; + } + + // Check processor value + if (processor && typeof processor === "string") { + const { pluginName, objectName: processorName } = splitPluginIdentifier(processor); + + if (!plugins || !plugins[pluginName] || !plugins[pluginName].processors || !plugins[pluginName].processors[processorName]) { + throw new TypeError(`Key "processor": Could not find "${processorName}" in plugin "${pluginName}".`); + } + + config.processor = plugins[pluginName].processors[processorName]; + } + + ruleValidator.validate(config); + + return config; + } + /* eslint-enable class-methods-use-this */ + +} + +exports.FlatConfigArray = FlatConfigArray; diff --git a/node_modules/eslint/lib/config/flat-config-schema.js b/node_modules/eslint/lib/config/flat-config-schema.js new file mode 100644 index 0000000000..8078547613 --- /dev/null +++ b/node_modules/eslint/lib/config/flat-config-schema.js @@ -0,0 +1,452 @@ +/** + * @fileoverview Flat config schema + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Type Definitions +//----------------------------------------------------------------------------- + +/** + * @typedef ObjectPropertySchema + * @property {Function|string} merge The function or name of the function to call + * to merge multiple objects with this property. + * @property {Function|string} validate The function or name of the function to call + * to validate the value of this property. + */ + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +const ruleSeverities = new Map([ + [0, 0], ["off", 0], + [1, 1], ["warn", 1], + [2, 2], ["error", 2] +]); + +const globalVariablesValues = new Set([ + true, "true", "writable", "writeable", + false, "false", "readonly", "readable", null, + "off" +]); + +/** + * Check if a value is a non-null object. + * @param {any} value The value to check. + * @returns {boolean} `true` if the value is a non-null object. + */ +function isNonNullObject(value) { + return typeof value === "object" && value !== null; +} + +/** + * Check if a value is undefined. + * @param {any} value The value to check. + * @returns {boolean} `true` if the value is undefined. + */ +function isUndefined(value) { + return typeof value === "undefined"; +} + +/** + * Deeply merges two objects. + * @param {Object} first The base object. + * @param {Object} second The overrides object. + * @returns {Object} An object with properties from both first and second. + */ +function deepMerge(first = {}, second = {}) { + + /* + * If the second value is an array, just return it. We don't merge + * arrays because order matters and we can't know the correct order. + */ + if (Array.isArray(second)) { + return second; + } + + /* + * First create a result object where properties from the second object + * overwrite properties from the first. This sets up a baseline to use + * later rather than needing to inspect and change every property + * individually. + */ + const result = { + ...first, + ...second + }; + + for (const key of Object.keys(second)) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + const firstValue = first[key]; + const secondValue = second[key]; + + if (isNonNullObject(firstValue)) { + result[key] = deepMerge(firstValue, secondValue); + } else if (isUndefined(firstValue)) { + if (isNonNullObject(secondValue)) { + result[key] = deepMerge( + Array.isArray(secondValue) ? [] : {}, + secondValue + ); + } else if (!isUndefined(secondValue)) { + result[key] = secondValue; + } + } + } + + return result; + +} + +/** + * Normalizes the rule options config for a given rule by ensuring that + * it is an array and that the first item is 0, 1, or 2. + * @param {Array|string|number} ruleOptions The rule options config. + * @returns {Array} An array of rule options. + */ +function normalizeRuleOptions(ruleOptions) { + + const finalOptions = Array.isArray(ruleOptions) + ? ruleOptions.slice(0) + : [ruleOptions]; + + finalOptions[0] = ruleSeverities.get(finalOptions[0]); + return finalOptions; +} + +//----------------------------------------------------------------------------- +// Assertions +//----------------------------------------------------------------------------- + +/** + * Validates that a value is a valid rule options entry. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't a valid rule options. + */ +function assertIsRuleOptions(value) { + + if (typeof value !== "string" && typeof value !== "number" && !Array.isArray(value)) { + throw new TypeError("Expected a string, number, or array."); + } +} + +/** + * Validates that a value is valid rule severity. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't a valid rule severity. + */ +function assertIsRuleSeverity(value) { + const severity = typeof value === "string" + ? ruleSeverities.get(value.toLowerCase()) + : ruleSeverities.get(value); + + if (typeof severity === "undefined") { + throw new TypeError("Expected severity of \"off\", 0, \"warn\", 1, \"error\", or 2."); + } +} + +/** + * Validates that a given string is the form pluginName/objectName. + * @param {string} value The string to check. + * @returns {void} + * @throws {TypeError} If the string isn't in the correct format. + */ +function assertIsPluginMemberName(value) { + if (!/[@a-z0-9-_$]+(?:\/(?:[a-z0-9-_$]+))+$/iu.test(value)) { + throw new TypeError(`Expected string in the form "pluginName/objectName" but found "${value}".`); + } +} + +/** + * Validates that a value is an object. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't an object. + */ +function assertIsObject(value) { + if (!isNonNullObject(value)) { + throw new TypeError("Expected an object."); + } +} + +/** + * Validates that a value is an object or a string. + * @param {any} value The value to check. + * @returns {void} + * @throws {TypeError} If the value isn't an object or a string. + */ +function assertIsObjectOrString(value) { + if ((!value || typeof value !== "object") && typeof value !== "string") { + throw new TypeError("Expected an object or string."); + } +} + +//----------------------------------------------------------------------------- +// Low-Level Schemas +//----------------------------------------------------------------------------- + + +/** @type {ObjectPropertySchema} */ +const numberSchema = { + merge: "replace", + validate: "number" +}; + +/** @type {ObjectPropertySchema} */ +const booleanSchema = { + merge: "replace", + validate: "boolean" +}; + +/** @type {ObjectPropertySchema} */ +const deepObjectAssignSchema = { + merge(first = {}, second = {}) { + return deepMerge(first, second); + }, + validate: "object" +}; + +//----------------------------------------------------------------------------- +// High-Level Schemas +//----------------------------------------------------------------------------- + +/** @type {ObjectPropertySchema} */ +const globalsSchema = { + merge: "assign", + validate(value) { + + assertIsObject(value); + + for (const key of Object.keys(value)) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + if (key !== key.trim()) { + throw new TypeError(`Global "${key}" has leading or trailing whitespace.`); + } + + if (!globalVariablesValues.has(value[key])) { + throw new TypeError(`Key "${key}": Expected "readonly", "writable", or "off".`); + } + } + } +}; + +/** @type {ObjectPropertySchema} */ +const parserSchema = { + merge: "replace", + validate(value) { + assertIsObjectOrString(value); + + if (typeof value === "object" && typeof value.parse !== "function" && typeof value.parseForESLint !== "function") { + throw new TypeError("Expected object to have a parse() or parseForESLint() method."); + } + + if (typeof value === "string") { + assertIsPluginMemberName(value); + } + } +}; + +/** @type {ObjectPropertySchema} */ +const pluginsSchema = { + merge(first = {}, second = {}) { + const keys = new Set([...Object.keys(first), ...Object.keys(second)]); + const result = {}; + + // manually validate that plugins are not redefined + for (const key of keys) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + if (key in first && key in second && first[key] !== second[key]) { + throw new TypeError(`Cannot redefine plugin "${key}".`); + } + + result[key] = second[key] || first[key]; + } + + return result; + }, + validate(value) { + + // first check the value to be sure it's an object + if (value === null || typeof value !== "object") { + throw new TypeError("Expected an object."); + } + + // second check the keys to make sure they are objects + for (const key of Object.keys(value)) { + + // avoid hairy edge case + if (key === "__proto__") { + continue; + } + + if (value[key] === null || typeof value[key] !== "object") { + throw new TypeError(`Key "${key}": Expected an object.`); + } + } + } +}; + +/** @type {ObjectPropertySchema} */ +const processorSchema = { + merge: "replace", + validate(value) { + if (typeof value === "string") { + assertIsPluginMemberName(value); + } else if (value && typeof value === "object") { + if (typeof value.preprocess !== "function" || typeof value.postprocess !== "function") { + throw new TypeError("Object must have a preprocess() and a postprocess() method."); + } + } else { + throw new TypeError("Expected an object or a string."); + } + } +}; + +/** @type {ObjectPropertySchema} */ +const rulesSchema = { + merge(first = {}, second = {}) { + + const result = { + ...first, + ...second + }; + + for (const ruleId of Object.keys(result)) { + + // avoid hairy edge case + if (ruleId === "__proto__") { + + /* eslint-disable-next-line no-proto */ + delete result.__proto__; + continue; + } + + result[ruleId] = normalizeRuleOptions(result[ruleId]); + + /* + * If either rule config is missing, then the correct + * config is already present and we just need to normalize + * the severity. + */ + if (!(ruleId in first) || !(ruleId in second)) { + continue; + } + + const firstRuleOptions = normalizeRuleOptions(first[ruleId]); + const secondRuleOptions = normalizeRuleOptions(second[ruleId]); + + /* + * If the second rule config only has a severity (length of 1), + * then use that severity and keep the rest of the options from + * the first rule config. + */ + if (secondRuleOptions.length === 1) { + result[ruleId] = [secondRuleOptions[0], ...firstRuleOptions.slice(1)]; + continue; + } + + /* + * In any other situation, then the second rule config takes + * precedence. That means the value at `result[ruleId]` is + * already correct and no further work is necessary. + */ + } + + return result; + }, + + validate(value) { + assertIsObject(value); + + let lastRuleId; + + // Performance: One try-catch has less overhead than one per loop iteration + try { + + /* + * We are not checking the rule schema here because there is no + * guarantee that the rule definition is present at this point. Instead + * we wait and check the rule schema during the finalization step + * of calculating a config. + */ + for (const ruleId of Object.keys(value)) { + + // avoid hairy edge case + if (ruleId === "__proto__") { + continue; + } + + lastRuleId = ruleId; + + const ruleOptions = value[ruleId]; + + assertIsRuleOptions(ruleOptions); + + if (Array.isArray(ruleOptions)) { + assertIsRuleSeverity(ruleOptions[0]); + } else { + assertIsRuleSeverity(ruleOptions); + } + } + } catch (error) { + error.message = `Key "${lastRuleId}": ${error.message}`; + throw error; + } + } +}; + +/** @type {ObjectPropertySchema} */ +const sourceTypeSchema = { + merge: "replace", + validate(value) { + if (typeof value !== "string" || !/^(?:script|module|commonjs)$/u.test(value)) { + throw new TypeError("Expected \"script\", \"module\", or \"commonjs\"."); + } + } +}; + +//----------------------------------------------------------------------------- +// Full schema +//----------------------------------------------------------------------------- + +exports.flatConfigSchema = { + settings: deepObjectAssignSchema, + linterOptions: { + schema: { + noInlineConfig: booleanSchema, + reportUnusedDisableDirectives: booleanSchema + } + }, + languageOptions: { + schema: { + ecmaVersion: numberSchema, + sourceType: sourceTypeSchema, + globals: globalsSchema, + parser: parserSchema, + parserOptions: deepObjectAssignSchema + } + }, + processor: processorSchema, + plugins: pluginsSchema, + rules: rulesSchema +}; diff --git a/node_modules/eslint/lib/config/rule-validator.js b/node_modules/eslint/lib/config/rule-validator.js new file mode 100644 index 0000000000..f162dd81a0 --- /dev/null +++ b/node_modules/eslint/lib/config/rule-validator.js @@ -0,0 +1,169 @@ +/** + * @fileoverview Rule Validator + * @author Nicholas C. Zakas + */ + +"use strict"; + +//----------------------------------------------------------------------------- +// Requirements +//----------------------------------------------------------------------------- + +const ajv = require("../shared/ajv")(); + +//----------------------------------------------------------------------------- +// Helpers +//----------------------------------------------------------------------------- + +/** + * Finds a rule with the given ID in the given config. + * @param {string} ruleId The ID of the rule to find. + * @param {Object} config The config to search in. + * @returns {{create: Function, schema: (Array|null)}} THe rule object. + */ +function findRuleDefinition(ruleId, config) { + const ruleIdParts = ruleId.split("/"); + let pluginName, ruleName; + + // built-in rule + if (ruleIdParts.length === 1) { + pluginName = "@"; + ruleName = ruleIdParts[0]; + } else { + ruleName = ruleIdParts.pop(); + pluginName = ruleIdParts.join("/"); + } + + if (!config.plugins || !config.plugins[pluginName]) { + throw new TypeError(`Key "rules": Key "${ruleId}": Could not find plugin "${pluginName}".`); + } + + if (!config.plugins[pluginName].rules || !config.plugins[pluginName].rules[ruleName]) { + throw new TypeError(`Key "rules": Key "${ruleId}": Could not find "${ruleName}" in plugin "${pluginName}".`); + } + + return config.plugins[pluginName].rules[ruleName]; + +} + +/** + * Gets a complete options schema for a rule. + * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object + * @returns {Object} JSON Schema for the rule's options. + */ +function getRuleOptionsSchema(rule) { + + if (!rule) { + return null; + } + + const schema = rule.schema || rule.meta && rule.meta.schema; + + if (Array.isArray(schema)) { + if (schema.length) { + return { + type: "array", + items: schema, + minItems: 0, + maxItems: schema.length + }; + } + return { + type: "array", + minItems: 0, + maxItems: 0 + }; + + } + + // Given a full schema, leave it alone + return schema || null; +} + +//----------------------------------------------------------------------------- +// Exports +//----------------------------------------------------------------------------- + +/** + * Implements validation functionality for the rules portion of a config. + */ +class RuleValidator { + + /** + * Creates a new instance. + */ + constructor() { + + /** + * A collection of compiled validators for rules that have already + * been validated. + * @type {WeakMap} + * @property validators + */ + this.validators = new WeakMap(); + } + + /** + * Validates all of the rule configurations in a config against each + * rule's schema. + * @param {Object} config The full config to validate. This object must + * contain both the rules section and the plugins section. + * @returns {void} + * @throws {Error} If a rule's configuration does not match its schema. + */ + validate(config) { + + if (!config.rules) { + return; + } + + for (const [ruleId, ruleOptions] of Object.entries(config.rules)) { + + // check for edge case + if (ruleId === "__proto__") { + continue; + } + + /* + * If a rule is disabled, we don't do any validation. This allows + * users to safely set any value to 0 or "off" without worrying + * that it will cause a validation error. + * + * Note: ruleOptions is always an array at this point because + * this validation occurs after FlatConfigArray has merged and + * normalized values. + */ + if (ruleOptions[0] === 0) { + continue; + } + + const rule = findRuleDefinition(ruleId, config); + + // Precompile and cache validator the first time + if (!this.validators.has(rule)) { + const schema = getRuleOptionsSchema(rule); + + if (schema) { + this.validators.set(rule, ajv.compile(schema)); + } + } + + const validateRule = this.validators.get(rule); + + if (validateRule) { + + validateRule(ruleOptions.slice(1)); + + if (validateRule.errors) { + throw new Error(`Key "rules": Key "${ruleId}": ${ + validateRule.errors.map( + error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` + ).join("") + }`); + } + } + } + } +} + +exports.RuleValidator = RuleValidator; diff --git a/node_modules/eslint/lib/eslint/eslint.js b/node_modules/eslint/lib/eslint/eslint.js index a51ffbfe41..056e04b594 100644 --- a/node_modules/eslint/lib/eslint/eslint.js +++ b/node_modules/eslint/lib/eslint/eslint.js @@ -43,6 +43,7 @@ const { version } = require("../../package.json"); * @property {ConfigData} [baseConfig] Base config object, extended by all configs used with this instance * @property {boolean} [cache] Enable result caching. * @property {string} [cacheLocation] The cache file to use instead of .eslintcache. + * @property {"metadata" | "content"} [cacheStrategy] The strategy used to detect changed files. * @property {string} [cwd] The value to use for the current working directory. * @property {boolean} [errorOnUnmatchedPattern] If `false` then `ESLint#lintFiles()` doesn't throw even if no target files found. Defaults to `true`. * @property {string[]} [extensions] An array of file extensions to check. @@ -157,6 +158,7 @@ function processOptions({ baseConfig = null, cache = false, cacheLocation = ".eslintcache", + cacheStrategy = "metadata", cwd = process.cwd(), errorOnUnmatchedPattern = true, extensions = null, // ← should be null by default because if it's an array then it suppresses RFC20 feature. @@ -216,6 +218,12 @@ function processOptions({ if (!isNonEmptyString(cacheLocation)) { errors.push("'cacheLocation' must be a non-empty string."); } + if ( + cacheStrategy !== "metadata" && + cacheStrategy !== "content" + ) { + errors.push("'cacheStrategy' must be any of \"metadata\", \"content\"."); + } if (!isNonEmptyString(cwd) || !path.isAbsolute(cwd)) { errors.push("'cwd' must be an absolute path."); } @@ -272,7 +280,7 @@ function processOptions({ errors.push("'rulePaths' must be an array of non-empty strings."); } if (typeof useEslintrc !== "boolean") { - errors.push("'useElintrc' must be a boolean."); + errors.push("'useEslintrc' must be a boolean."); } if (errors.length > 0) { @@ -284,6 +292,7 @@ function processOptions({ baseConfig, cache, cacheLocation, + cacheStrategy, configFile: overrideConfigFile, cwd, errorOnUnmatchedPattern, @@ -505,6 +514,39 @@ class ESLint { return CLIEngine.getErrorResults(results); } + /** + * Returns meta objects for each rule represented in the lint results. + * @param {LintResult[]} results The results to fetch rules meta for. + * @returns {Object} A mapping of ruleIds to rule meta objects. + */ + getRulesMetaForResults(results) { + + const resultRuleIds = new Set(); + + // first gather all ruleIds from all results + + for (const result of results) { + for (const { ruleId } of result.messages) { + resultRuleIds.add(ruleId); + } + } + + // create a map of all rules in the results + + const { cliEngine } = privateMembersMap.get(this); + const rules = cliEngine.getRules(); + const resultRules = new Map(); + + for (const [ruleId, rule] of rules) { + if (resultRuleIds.has(ruleId)) { + resultRules.set(ruleId, rule); + } + } + + return createRulesMeta(resultRules); + + } + /** * Executes the current configuration on an array of file and directory names. * @param {string[]} patterns An array of file and directory names. @@ -543,9 +585,12 @@ class ESLint { ...unknownOptions } = options || {}; - for (const key of Object.keys(unknownOptions)) { - throw new Error(`'options' must not include the unknown option '${key}'`); + const unknownOptionKeys = Object.keys(unknownOptions); + + if (unknownOptionKeys.length > 0) { + throw new Error(`'options' must not include the unknown option(s): ${unknownOptionKeys.join(", ")}`); } + if (filePath !== void 0 && !isNonEmptyString(filePath)) { throw new Error("'options.filePath' must be a non-empty string or undefined"); } @@ -563,7 +608,7 @@ class ESLint { /** * Returns the formatter representing the given formatter name. - * @param {string} [name] The name of the formattter to load. + * @param {string} [name] The name of the formatter to load. * The following values are allowed: * - `undefined` ... Load `stylish` builtin formatter. * - A builtin formatter name ... Load the builtin formatter. diff --git a/node_modules/eslint/lib/init/autoconfig.js b/node_modules/eslint/lib/init/autoconfig.js index 0ace177aa1..054c538496 100644 --- a/node_modules/eslint/lib/init/autoconfig.js +++ b/node_modules/eslint/lib/init/autoconfig.js @@ -9,7 +9,7 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"), +const equal = require("fast-deep-equal"), recConfig = require("../../conf/eslint-recommended"), ConfigOps = require("@eslint/eslintrc/lib/shared/config-ops"), { Linter } = require("../linter"), @@ -85,7 +85,7 @@ class Registry { * @returns {void} */ populateFromCoreRules() { - const rulesConfig = configRule.createCoreRuleConfigs(); + const rulesConfig = configRule.createCoreRuleConfigs(/* noDeprecated = */ true); this.rules = makeRegistryItems(rulesConfig); } @@ -329,7 +329,7 @@ function extendFromRecommended(config) { const recRules = Object.keys(recConfig.rules).filter(ruleId => ConfigOps.isErrorSeverity(recConfig.rules[ruleId])); recRules.forEach(ruleId => { - if (lodash.isEqual(recConfig.rules[ruleId], newConfig.rules[ruleId])) { + if (equal(recConfig.rules[ruleId], newConfig.rules[ruleId])) { delete newConfig.rules[ruleId]; } }); diff --git a/node_modules/eslint/lib/init/config-file.js b/node_modules/eslint/lib/init/config-file.js index fc62b81525..4c648ac055 100644 --- a/node_modules/eslint/lib/init/config-file.js +++ b/node_modules/eslint/lib/init/config-file.js @@ -117,6 +117,7 @@ function writeJSConfigFile(config, filePath) { function write(config, filePath) { switch (path.extname(filePath)) { case ".js": + case ".cjs": writeJSConfigFile(config, filePath); break; diff --git a/node_modules/eslint/lib/init/config-initializer.js b/node_modules/eslint/lib/init/config-initializer.js index f7d4cc7a17..3c7f2ba094 100644 --- a/node_modules/eslint/lib/init/config-initializer.js +++ b/node_modules/eslint/lib/init/config-initializer.js @@ -12,6 +12,7 @@ const util = require("util"), path = require("path"), + fs = require("fs"), enquirer = require("enquirer"), ProgressBar = require("progress"), semver = require("semver"), @@ -48,6 +49,16 @@ function writeFile(config, format) { extname = ".yml"; } else if (format === "JSON") { extname = ".json"; + } else if (format === "JavaScript") { + const pkgJSONPath = npmUtils.findPackageJson(); + + if (pkgJSONPath) { + const pkgJSONContents = JSON.parse(fs.readFileSync(pkgJSONPath, "utf8")); + + if (pkgJSONContents.type === "module") { + extname = ".cjs"; + } + } } const installedESLint = config.installedESLint; @@ -531,7 +542,8 @@ function promptUser() { choices: [ { message: "Airbnb: https://github.com/airbnb/javascript", name: "airbnb" }, { message: "Standard: https://github.com/standard/standard", name: "standard" }, - { message: "Google: https://github.com/google/eslint-config-google", name: "google" } + { message: "Google: https://github.com/google/eslint-config-google", name: "google" }, + { message: "XO: https://github.com/xojs/eslint-config-xo", name: "xo" } ], skip() { this.state.answers.packageJsonExists = npmUtils.checkPackageJson(); @@ -565,7 +577,8 @@ function promptUser() { { type: "toggle", name: "installESLint", - message(answers) { + message() { + const { answers } = this.state; const verb = semver.ltr(answers.localESLintVersion, answers.requiredESLintVersionRange) ? "upgrade" : "downgrade"; @@ -682,6 +695,7 @@ const init = { hasESLintVersionConflict, installModules, processAnswers, + writeFile, /* istanbul ignore next */initializeConfig() { return promptUser(); } diff --git a/node_modules/eslint/lib/init/npm-utils.js b/node_modules/eslint/lib/init/npm-utils.js index 555ea2b2b2..b91a824b12 100644 --- a/node_modules/eslint/lib/init/npm-utils.js +++ b/node_modules/eslint/lib/init/npm-utils.js @@ -50,8 +50,7 @@ function findPackageJson(startDir) { */ function installSyncSaveDev(packages) { const packageList = Array.isArray(packages) ? packages : [packages]; - const npmProcess = spawn.sync("npm", ["i", "--save-dev"].concat(packageList), - { stdio: "inherit" }); + const npmProcess = spawn.sync("npm", ["i", "--save-dev"].concat(packageList), { stdio: "inherit" }); const error = npmProcess.error; if (error && error.code === "ENOENT") { @@ -172,6 +171,7 @@ function checkPackageJson(startDir) { module.exports = { installSyncSaveDev, fetchPeerDependencies, + findPackageJson, checkDeps, checkDevDeps, checkPackageJson diff --git a/node_modules/eslint/lib/linter/apply-disable-directives.js b/node_modules/eslint/lib/linter/apply-disable-directives.js index 41d6934abb..0ba69ca9cc 100644 --- a/node_modules/eslint/lib/linter/apply-disable-directives.js +++ b/node_modules/eslint/lib/linter/apply-disable-directives.js @@ -5,8 +5,6 @@ "use strict"; -const lodash = require("lodash"); - /** * Compares the locations of two objects in a source file * @param {{line: number, column: number}} itemA The first object @@ -124,7 +122,21 @@ module.exports = ({ directives, problems, reportUnusedDisableDirectives = "off" .map(directive => Object.assign({}, directive, { unprocessedDirective: directive })) .sort(compareLocations); - const lineDirectives = lodash.flatMap(directives, directive => { + /** + * Returns a new array formed by applying a given callback function to each element of the array, and then flattening the result by one level. + * TODO(stephenwade): Replace this with array.flatMap when we drop support for Node v10 + * @param {any[]} array The array to process + * @param {Function} fn The function to use + * @returns {any[]} The result array + */ + function flatMap(array, fn) { + const mapped = array.map(fn); + const flattened = [].concat(...mapped); + + return flattened; + } + + const lineDirectives = flatMap(directives, directive => { switch (directive.type) { case "disable": case "enable": diff --git a/node_modules/eslint/lib/linter/linter.js b/node_modules/eslint/lib/linter/linter.js index 5c1a8d78aa..4e80926a89 100644 --- a/node_modules/eslint/lib/linter/linter.js +++ b/node_modules/eslint/lib/linter/linter.js @@ -15,7 +15,7 @@ const eslintScope = require("eslint-scope"), evk = require("eslint-visitor-keys"), espree = require("espree"), - lodash = require("lodash"), + merge = require("lodash.merge"), BuiltInEnvironments = require("@eslint/eslintrc/conf/environments"), pkg = require("../../package.json"), astUtils = require("../shared/ast-utils"), @@ -37,8 +37,10 @@ const const debug = require("debug")("eslint:linter"); const MAX_AUTOFIX_PASSES = 10; const DEFAULT_PARSER_NAME = "espree"; +const DEFAULT_ECMA_VERSION = 5; const commentParser = new ConfigCommentParser(); const DEFAULT_ERROR_LOC = { start: { line: 1, column: 0 }, end: { line: 1, column: 1 } }; +const parserSymbol = Symbol.for("eslint.RuleTester.parser"); //------------------------------------------------------------------------------ // Typedefs @@ -432,10 +434,16 @@ function getDirectiveComments(filename, ast, ruleMapper, warnInlineConfig) { /** * Normalize ECMAScript version from the initial config - * @param {number} ecmaVersion ECMAScript version from the initial config + * @param {Parser} parser The parser which uses this options. + * @param {number} ecmaVersion ECMAScript version from the initial config * @returns {number} normalized ECMAScript version */ -function normalizeEcmaVersion(ecmaVersion) { +function normalizeEcmaVersion(parser, ecmaVersion) { + if ((parser[parserSymbol] || parser) === espree) { + if (ecmaVersion === "latest") { + return espree.latestEcmaVersion; + } + } /* * Calculate ECMAScript edition number from official year version starting with @@ -444,7 +452,7 @@ function normalizeEcmaVersion(ecmaVersion) { return ecmaVersion >= 2015 ? ecmaVersion - 2009 : ecmaVersion; } -const eslintEnvPattern = /\/\*\s*eslint-env\s(.+?)\*\//gu; +const eslintEnvPattern = /\/\*\s*eslint-env\s(.+?)\*\//gsu; /** * Checks whether or not there is a comment which has "eslint-env *" in a given text. @@ -521,16 +529,17 @@ function normalizeVerifyOptions(providedOptions, config) { /** * Combines the provided parserOptions with the options from environments - * @param {string} parserName The parser name which uses this options. + * @param {Parser} parser The parser which uses this options. * @param {ParserOptions} providedOptions The provided 'parserOptions' key in a config * @param {Environment[]} enabledEnvironments The environments enabled in configuration and with inline comments * @returns {ParserOptions} Resulting parser options after merge */ -function resolveParserOptions(parserName, providedOptions, enabledEnvironments) { +function resolveParserOptions(parser, providedOptions, enabledEnvironments) { + const parserOptionsFromEnv = enabledEnvironments .filter(env => env.parserOptions) - .reduce((parserOptions, env) => lodash.merge(parserOptions, env.parserOptions), {}); - const mergedParserOptions = lodash.merge(parserOptionsFromEnv, providedOptions || {}); + .reduce((parserOptions, env) => merge(parserOptions, env.parserOptions), {}); + const mergedParserOptions = merge(parserOptionsFromEnv, providedOptions || {}); const isModule = mergedParserOptions.sourceType === "module"; if (isModule) { @@ -542,12 +551,7 @@ function resolveParserOptions(parserName, providedOptions, enabledEnvironments) mergedParserOptions.ecmaFeatures = Object.assign({}, mergedParserOptions.ecmaFeatures, { globalReturn: false }); } - /* - * TODO: @aladdin-add - * 1. for a 3rd-party parser, do not normalize parserOptions - * 2. for espree, no need to do this (espree will do it) - */ - mergedParserOptions.ecmaVersion = normalizeEcmaVersion(mergedParserOptions.ecmaVersion); + mergedParserOptions.ecmaVersion = normalizeEcmaVersion(parser, mergedParserOptions.ecmaVersion); return mergedParserOptions; } @@ -606,7 +610,7 @@ function getRuleOptions(ruleConfig) { */ function analyzeScope(ast, parserOptions, visitorKeys) { const ecmaFeatures = parserOptions.ecmaFeatures || {}; - const ecmaVersion = parserOptions.ecmaVersion || 5; + const ecmaVersion = parserOptions.ecmaVersion || DEFAULT_ECMA_VERSION; return eslintScope.analyze(ast, { ignoreEval: true, @@ -828,9 +832,10 @@ const BASE_TRAVERSAL_CONTEXT = Object.freeze( * @param {string} filename The reported filename of the code * @param {boolean} disableFixes If true, it doesn't make `fix` properties. * @param {string | undefined} cwd cwd of the cli + * @param {string} physicalFilename The full path of the file on disk without any code block information * @returns {Problem[]} An array of reported problems */ -function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parserName, settings, filename, disableFixes, cwd) { +function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parserName, settings, filename, disableFixes, cwd, physicalFilename) { const emitter = createEmitter(); const nodeQueue = []; let currentNode = sourceCode.ast; @@ -859,6 +864,7 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser getDeclaredVariables: sourceCode.scopeManager.getDeclaredVariables.bind(sourceCode.scopeManager), getCwd: () => cwd, getFilename: () => filename, + getPhysicalFilename: () => physicalFilename || filename, getScope: () => getScope(sourceCode.scopeManager, currentNode), getSourceCode: () => sourceCode, markVariableAsUsed: name => markVariableAsUsed(sourceCode.scopeManager, currentNode, parserOptions, name), @@ -942,7 +948,9 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser }); // only run code path analyzer if the top level node is "Program", skip otherwise - const eventGenerator = nodeQueue[0].node.type === "Program" ? new CodePathAnalyzer(new NodeEventGenerator(emitter)) : new NodeEventGenerator(emitter); + const eventGenerator = nodeQueue[0].node.type === "Program" + ? new CodePathAnalyzer(new NodeEventGenerator(emitter, { visitorKeys: sourceCode.visitorKeys, fallback: Traverser.getKeys })) + : new NodeEventGenerator(emitter, { visitorKeys: sourceCode.visitorKeys, fallback: Traverser.getKeys }); nodeQueue.forEach(traversalInfo => { currentNode = traversalInfo.node; @@ -1119,7 +1127,7 @@ class Linter { .map(envName => getEnv(slots, envName)) .filter(env => env); - const parserOptions = resolveParserOptions(parserName, config.parserOptions || {}, enabledEnvs); + const parserOptions = resolveParserOptions(parser, config.parserOptions || {}, enabledEnvs); const configuredGlobals = resolveGlobals(config.globals || {}, enabledEnvs); const settings = config.settings || {}; @@ -1179,7 +1187,8 @@ class Linter { settings, options.filename, options.disableFixes, - slots.cwd + slots.cwd, + providedOptions.physicalFilename ); } catch (err) { err.message += `\nOccurred while linting ${options.filename}`; @@ -1282,9 +1291,12 @@ class Linter { _verifyWithProcessor(textOrSourceCode, config, options, configForRecursive) { const filename = options.filename || ""; const filenameToExpose = normalizeFilename(filename); + const physicalFilename = options.physicalFilename || filenameToExpose; const text = ensureText(textOrSourceCode); const preprocess = options.preprocess || (rawText => [rawText]); - const postprocess = options.postprocess || lodash.flatten; + + // TODO(stephenwade): Replace this with array.flat() when we drop support for Node v10 + const postprocess = options.postprocess || (array => [].concat(...array)); const filterCodeBlock = options.filterCodeBlock || (blockFilename => blockFilename.endsWith(".js")); @@ -1306,13 +1318,13 @@ class Linter { return []; } - // Resolve configuration again if the file extension was changed. - if (configForRecursive && path.extname(blockName) !== originalExtname) { - debug("Resolving configuration again because the file extension was changed."); + // Resolve configuration again if the file content or extension was changed. + if (configForRecursive && (text !== blockText || path.extname(blockName) !== originalExtname)) { + debug("Resolving configuration again because the file content or extension was changed."); return this._verifyWithConfigArray( blockText, configForRecursive, - { ...options, filename: blockName } + { ...options, filename: blockName, physicalFilename } ); } @@ -1320,7 +1332,7 @@ class Linter { return this._verifyWithoutProcessors( blockText, config, - { ...options, filename: blockName } + { ...options, filename: blockName, physicalFilename } ); }); diff --git a/node_modules/eslint/lib/linter/node-event-generator.js b/node_modules/eslint/lib/linter/node-event-generator.js index 6f3b251399..8b619fdff8 100644 --- a/node_modules/eslint/lib/linter/node-event-generator.js +++ b/node_modules/eslint/lib/linter/node-event-generator.js @@ -10,7 +10,6 @@ //------------------------------------------------------------------------------ const esquery = require("esquery"); -const lodash = require("lodash"); //------------------------------------------------------------------------------ // Typedefs @@ -32,6 +31,35 @@ const lodash = require("lodash"); // Helpers //------------------------------------------------------------------------------ +/** + * Computes the union of one or more arrays + * @param {...any[]} arrays One or more arrays to union + * @returns {any[]} The union of the input arrays + */ +function union(...arrays) { + + // TODO(stephenwade): Replace this with arrays.flat() when we drop support for Node v10 + return [...new Set([].concat(...arrays))]; +} + +/** + * Computes the intersection of one or more arrays + * @param {...any[]} arrays One or more arrays to intersect + * @returns {any[]} The intersection of the input arrays + */ +function intersection(...arrays) { + if (arrays.length === 0) { + return []; + } + + let result = [...new Set(arrays[0])]; + + for (const array of arrays.slice(1)) { + result = result.filter(x => array.includes(x)); + } + return result; +} + /** * Gets the possible types of a selector * @param {Object} parsedSelector An object (from esquery) describing the matching behavior of the selector @@ -46,7 +74,7 @@ function getPossibleTypes(parsedSelector) { const typesForComponents = parsedSelector.selectors.map(getPossibleTypes); if (typesForComponents.every(Boolean)) { - return lodash.union(...typesForComponents); + return union(...typesForComponents); } return null; } @@ -63,7 +91,7 @@ function getPossibleTypes(parsedSelector) { * If at least one of the components could only match a particular type, the compound could only match * the intersection of those types. */ - return lodash.intersection(...typesForComponents); + return intersection(...typesForComponents); } case "child": @@ -166,15 +194,21 @@ function tryParseSelector(rawSelector) { } } +const selectorCache = new Map(); + /** * Parses a raw selector string, and returns the parsed selector along with specificity and type information. * @param {string} rawSelector A raw AST selector * @returns {ASTSelector} A selector descriptor */ -const parseSelector = lodash.memoize(rawSelector => { +function parseSelector(rawSelector) { + if (selectorCache.has(rawSelector)) { + return selectorCache.get(rawSelector); + } + const parsedSelector = tryParseSelector(rawSelector); - return { + const result = { rawSelector, isExit: rawSelector.endsWith(":exit"), parsedSelector, @@ -182,7 +216,10 @@ const parseSelector = lodash.memoize(rawSelector => { attributeCount: countClassAttributes(parsedSelector), identifierCount: countIdentifiers(parsedSelector) }; -}); + + selectorCache.set(rawSelector, result); + return result; +} //------------------------------------------------------------------------------ // Public Interface @@ -208,10 +245,12 @@ class NodeEventGenerator { * An SafeEmitter which is the destination of events. This emitter must already * have registered listeners for all of the events that it needs to listen for. * (See lib/linter/safe-emitter.js for more details on `SafeEmitter`.) + * @param {ESQueryOptions} esqueryOptions `esquery` options for traversing custom nodes. * @returns {NodeEventGenerator} new instance */ - constructor(emitter) { + constructor(emitter, esqueryOptions) { this.emitter = emitter; + this.esqueryOptions = esqueryOptions; this.currentAncestry = []; this.enterSelectorsByNodeType = new Map(); this.exitSelectorsByNodeType = new Map(); @@ -250,7 +289,7 @@ class NodeEventGenerator { * @returns {void} */ applySelector(node, selector) { - if (esquery.matches(node, selector.parsedSelector, this.currentAncestry)) { + if (esquery.matches(node, selector.parsedSelector, this.currentAncestry, this.esqueryOptions)) { this.emitter.emit(selector.rawSelector, node); } } diff --git a/node_modules/eslint/lib/linter/report-translator.js b/node_modules/eslint/lib/linter/report-translator.js index eef5165585..75005c16e5 100644 --- a/node_modules/eslint/lib/linter/report-translator.js +++ b/node_modules/eslint/lib/linter/report-translator.js @@ -115,6 +115,17 @@ function normalizeReportLoc(descriptor) { return descriptor.node.loc; } +/** + * Check that a fix has a valid range. + * @param {Fix|null} fix The fix to validate. + * @returns {void} + */ +function assertValidFix(fix) { + if (fix) { + assert(fix.range && typeof fix.range[0] === "number" && typeof fix.range[1] === "number", `Fix has invalid range: ${JSON.stringify(fix, null, 2)}`); + } +} + /** * Compares items in a fixes array by range. * @param {Fix} a The first message. @@ -133,6 +144,10 @@ function compareFixesByRange(a, b) { * @returns {{text: string, range: number[]}} The merged fixes */ function mergeFixes(fixes, sourceCode) { + for (const fix of fixes) { + assertValidFix(fix); + } + if (fixes.length === 0) { return null; } @@ -181,6 +196,8 @@ function normalizeFixes(descriptor, sourceCode) { if (fix && Symbol.iterator in fix) { return mergeFixes(Array.from(fix), sourceCode); } + + assertValidFix(fix); return fix; } @@ -196,15 +213,19 @@ function mapSuggestions(descriptor, sourceCode, messages) { return []; } - return descriptor.suggest.map(suggestInfo => { - const computedDesc = suggestInfo.desc || messages[suggestInfo.messageId]; + return descriptor.suggest + .map(suggestInfo => { + const computedDesc = suggestInfo.desc || messages[suggestInfo.messageId]; - return { - ...suggestInfo, - desc: interpolate(computedDesc, suggestInfo.data), - fix: normalizeFixes(suggestInfo, sourceCode) - }; - }); + return { + ...suggestInfo, + desc: interpolate(computedDesc, suggestInfo.data), + fix: normalizeFixes(suggestInfo, sourceCode) + }; + }) + + // Remove suggestions that didn't provide a fix + .filter(({ fix }) => fix); } /** diff --git a/node_modules/eslint/lib/linter/timing.js b/node_modules/eslint/lib/linter/timing.js index 8396d9215b..5823030685 100644 --- a/node_modules/eslint/lib/linter/timing.js +++ b/node_modules/eslint/lib/linter/timing.js @@ -44,6 +44,26 @@ const enabled = !!process.env.TIMING; const HEADERS = ["Rule", "Time (ms)", "Relative"]; const ALIGN = [alignLeft, alignRight, alignRight]; +/** + * Decide how many rules to show in the output list. + * @returns {number} the number of rules to show + */ +function getListSize() { + const MINIMUM_SIZE = 10; + + if (typeof process.env.TIMING !== "string") { + return MINIMUM_SIZE; + } + + if (process.env.TIMING.toLowerCase() === "all") { + return Number.POSITIVE_INFINITY; + } + + const TIMING_ENV_VAR_AS_INTEGER = Number.parseInt(process.env.TIMING, 10); + + return TIMING_ENV_VAR_AS_INTEGER > 10 ? TIMING_ENV_VAR_AS_INTEGER : MINIMUM_SIZE; +} + /* istanbul ignore next */ /** * display the data @@ -61,7 +81,7 @@ function display(data) { return [key, time]; }) .sort((a, b) => b[1] - a[1]) - .slice(0, 10); + .slice(0, getListSize()); rows.forEach(row => { row.push(`${(row[1] * 100 / total).toFixed(1)}%`); @@ -133,7 +153,8 @@ module.exports = (function() { return { time, - enabled + enabled, + getListSize }; }()); diff --git a/node_modules/eslint/lib/options.js b/node_modules/eslint/lib/options.js index 1681f1dbd1..92c140bd3c 100644 --- a/node_modules/eslint/lib/options.js +++ b/node_modules/eslint/lib/options.js @@ -11,6 +11,53 @@ const optionator = require("optionator"); +//------------------------------------------------------------------------------ +// Typedefs +//------------------------------------------------------------------------------ + +/** + * The options object parsed by Optionator. + * @typedef {Object} ParsedCLIOptions + * @property {boolean} cache Only check changed files + * @property {string} cacheFile Path to the cache file. Deprecated: use --cache-location + * @property {string} [cacheLocation] Path to the cache file or directory + * @property {"metadata" | "content"} cacheStrategy Strategy to use for detecting changed files in the cache + * @property {boolean} [color] Force enabling/disabling of color + * @property {string} [config] Use this configuration, overriding .eslintrc.* config options if present + * @property {boolean} debug Output debugging information + * @property {string[]} [env] Specify environments + * @property {boolean} envInfo Output execution environment information + * @property {boolean} errorOnUnmatchedPattern Prevent errors when pattern is unmatched + * @property {boolean} eslintrc Disable use of configuration from .eslintrc.* + * @property {string[]} [ext] Specify JavaScript file extensions + * @property {boolean} fix Automatically fix problems + * @property {boolean} fixDryRun Automatically fix problems without saving the changes to the file system + * @property {("problem" | "suggestion" | "layout")[]} [fixType] Specify the types of fixes to apply (problem, suggestion, layout) + * @property {string} format Use a specific output format + * @property {string[]} [global] Define global variables + * @property {boolean} [help] Show help + * @property {boolean} ignore Disable use of ignore files and patterns + * @property {string} [ignorePath] Specify path of ignore file + * @property {string[]} [ignorePattern] Pattern of files to ignore (in addition to those in .eslintignore) + * @property {boolean} init Run config initialization wizard + * @property {boolean} inlineConfig Prevent comments from changing config or rules + * @property {number} maxWarnings Number of warnings to trigger nonzero exit code + * @property {string} [outputFile] Specify file to write report to + * @property {string} [parser] Specify the parser to be used + * @property {Object} [parserOptions] Specify parser options + * @property {string[]} [plugin] Specify plugins + * @property {string} [printConfig] Print the configuration for the given file + * @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable directives + * @property {string} [resolvePluginsRelativeTo] A folder where plugins should be resolved from, CWD by default + * @property {Object} [rule] Specify rules + * @property {string[]} [rulesdir] Use additional rules from this directory + * @property {boolean} stdin Lint code provided on + * @property {string} [stdinFilename] Specify filename to process STDIN as + * @property {boolean} quiet Report errors only + * @property {boolean} [version] Output the version number + * @property {string[]} _ Positional filenames or patterns + */ + //------------------------------------------------------------------------------ // Initialization and Public Interface //------------------------------------------------------------------------------ @@ -214,6 +261,14 @@ module.exports = optionator({ type: "path::String", description: "Path to the cache file or directory" }, + { + option: "cache-strategy", + dependsOn: ["cache"], + type: "String", + default: "metadata", + enum: ["metadata", "content"], + description: "Strategy to use for detecting changed files in the cache" + }, { heading: "Miscellaneous" }, diff --git a/node_modules/eslint/lib/rule-tester/rule-tester.js b/node_modules/eslint/lib/rule-tester/rule-tester.js index 905f341812..2b5524923b 100644 --- a/node_modules/eslint/lib/rule-tester/rule-tester.js +++ b/node_modules/eslint/lib/rule-tester/rule-tester.js @@ -44,7 +44,8 @@ const assert = require("assert"), path = require("path"), util = require("util"), - lodash = require("lodash"), + merge = require("lodash.merge"), + equal = require("fast-deep-equal"), Traverser = require("../../lib/shared/traverser"), { getRuleOptionsSchema, validate } = require("../shared/config-validator"), { Linter, SourceCodeFixer, interpolate } = require("../linter"); @@ -52,6 +53,7 @@ const const ajv = require("../shared/ajv")({ strictDefaults: true }); const espreePath = require.resolve("espree"); +const parserSymbol = Symbol.for("eslint.RuleTester.parser"); //------------------------------------------------------------------------------ // Typedefs @@ -70,6 +72,7 @@ const espreePath = require.resolve("espree"); * @property {{ [name: string]: any }} [parserOptions] Options for the parser. * @property {{ [name: string]: "readonly" | "writable" | "off" }} [globals] The additional global variables. * @property {{ [name: string]: boolean }} [env] Environments for the test case. + * @property {boolean} [only] Run only this test case or the subset of test cases with this property. */ /** @@ -85,6 +88,7 @@ const espreePath = require.resolve("espree"); * @property {{ [name: string]: any }} [parserOptions] Options for the parser. * @property {{ [name: string]: "readonly" | "writable" | "off" }} [globals] The additional global variables. * @property {{ [name: string]: boolean }} [env] Environments for the test case. + * @property {boolean} [only] Run only this test case or the subset of test cases with this property. */ /** @@ -120,7 +124,8 @@ const RuleTesterParameters = [ "filename", "options", "errors", - "output" + "output", + "only" ]; /* @@ -235,6 +240,7 @@ function defineStartEndAsError(objName, node) { }); } + /** * Define `start`/`end` properties of all nodes of the given AST as throwing error. * @param {ASTNode} ast The root node to errorize `start`/`end` properties. @@ -254,8 +260,10 @@ function defineStartEndAsErrorInTree(ast, visitorKeys) { * @returns {Parser} Wrapped parser object. */ function wrapParser(parser) { + if (typeof parser.parseForESLint === "function") { return { + [parserSymbol]: parser, parseForESLint(...args) { const ret = parser.parseForESLint(...args); @@ -264,7 +272,9 @@ function wrapParser(parser) { } }; } + return { + [parserSymbol]: parser, parse(...args) { const ast = parser.parse(...args); @@ -281,6 +291,7 @@ function wrapParser(parser) { // default separators for testing const DESCRIBE = Symbol("describe"); const IT = Symbol("it"); +const IT_ONLY = Symbol("itOnly"); /** * This is `it` default handler if `it` don't exist. @@ -324,10 +335,9 @@ class RuleTester { * configuration and the default configuration. * @type {Object} */ - this.testerConfig = lodash.merge( - - // we have to clone because merge uses the first argument for recipient - lodash.cloneDeep(defaultConfig), + this.testerConfig = merge( + {}, + defaultConfig, testerConfig, { rules: { "rule-tester/validate-ast": "error" } } ); @@ -369,7 +379,7 @@ class RuleTester { * @returns {void} */ static resetDefaultConfig() { - defaultConfig = lodash.cloneDeep(testerDefaultConfig); + defaultConfig = merge({}, testerDefaultConfig); } @@ -400,6 +410,46 @@ class RuleTester { this[IT] = value; } + /** + * Adds the `only` property to a test to run it in isolation. + * @param {string | ValidTestCase | InvalidTestCase} item A single test to run by itself. + * @returns {ValidTestCase | InvalidTestCase} The test with `only` set. + */ + static only(item) { + if (typeof item === "string") { + return { code: item, only: true }; + } + + return { ...item, only: true }; + } + + static get itOnly() { + if (typeof this[IT_ONLY] === "function") { + return this[IT_ONLY]; + } + if (typeof this[IT] === "function" && typeof this[IT].only === "function") { + return Function.bind.call(this[IT].only, this[IT]); + } + if (typeof it === "function" && typeof it.only === "function") { + return Function.bind.call(it.only, it); + } + + if (typeof this[DESCRIBE] === "function" || typeof this[IT] === "function") { + throw new Error( + "Set `RuleTester.itOnly` to use `only` with a custom test framework.\n" + + "See https://eslint.org/docs/developer-guide/nodejs-api#customizing-ruletester for more." + ); + } + if (typeof it === "function") { + throw new Error("The current test framework does not support exclusive tests with `only`."); + } + throw new Error("To use `only`, use RuleTester with a test framework that provides `it.only()` like Mocha."); + } + + static set itOnly(value) { + this[IT_ONLY] = value; + } + /** * Define a rule for one particular run of tests. * @param {string} name The name of the rule to define. @@ -427,12 +477,12 @@ class RuleTester { scenarioErrors = [], linter = this.linter; - if (lodash.isNil(test) || typeof test !== "object") { + if (!test || typeof test !== "object") { throw new TypeError(`Test Scenarios for rule ${ruleName} : Could not find test scenario object`); } requiredScenarios.forEach(scenarioType => { - if (lodash.isNil(test[scenarioType])) { + if (!test[scenarioType]) { scenarioErrors.push(`Could not find any ${scenarioType} test scenarios`); } }); @@ -465,7 +515,7 @@ class RuleTester { * @private */ function runRuleForItem(item) { - let config = lodash.cloneDeep(testerConfig), + let config = merge({}, testerConfig), code, filename, output, beforeAST, afterAST; if (typeof item === "string") { @@ -477,13 +527,17 @@ class RuleTester { * Assumes everything on the item is a config except for the * parameters used by this tester */ - const itemConfig = lodash.omit(item, RuleTesterParameters); + const itemConfig = { ...item }; + + for (const parameter of RuleTesterParameters) { + delete itemConfig[parameter]; + } /* * Create the config object from the tester config and this item * specific configurations. */ - config = lodash.merge( + config = merge( config, itemConfig ); @@ -589,7 +643,7 @@ class RuleTester { * @private */ function assertASTDidntChange(beforeAST, afterAST) { - if (!lodash.isEqual(beforeAST, afterAST)) { + if (!equal(beforeAST, afterAST)) { assert.fail("Rule should not modify AST."); } } @@ -606,7 +660,8 @@ class RuleTester { const messages = result.messages; assert.strictEqual(messages.length, 0, util.format("Should have no errors but had %d: %s", - messages.length, util.inspect(messages))); + messages.length, + util.inspect(messages))); assertASTDidntChange(result.beforeAST, result.afterAST); } @@ -661,13 +716,18 @@ class RuleTester { } assert.strictEqual(messages.length, item.errors, util.format("Should have %d error%s but had %d: %s", - item.errors, item.errors === 1 ? "" : "s", messages.length, util.inspect(messages))); + item.errors, + item.errors === 1 ? "" : "s", + messages.length, + util.inspect(messages))); } else { assert.strictEqual( - messages.length, item.errors.length, - util.format( + messages.length, item.errors.length, util.format( "Should have %d error%s but had %d: %s", - item.errors.length, item.errors.length === 1 ? "" : "s", messages.length, util.inspect(messages) + item.errors.length, + item.errors.length === 1 ? "" : "s", + messages.length, + util.inspect(messages) ) ); @@ -881,23 +941,29 @@ class RuleTester { RuleTester.describe(ruleName, () => { RuleTester.describe("valid", () => { test.valid.forEach(valid => { - RuleTester.it(sanitize(typeof valid === "object" ? valid.code : valid), () => { - testValidTemplate(valid); - }); + RuleTester[valid.only ? "itOnly" : "it"]( + sanitize(typeof valid === "object" ? valid.code : valid), + () => { + testValidTemplate(valid); + } + ); }); }); RuleTester.describe("invalid", () => { test.invalid.forEach(invalid => { - RuleTester.it(sanitize(invalid.code), () => { - testInvalidTemplate(invalid); - }); + RuleTester[invalid.only ? "itOnly" : "it"]( + sanitize(invalid.code), + () => { + testInvalidTemplate(invalid); + } + ); }); }); }); } } -RuleTester[DESCRIBE] = RuleTester[IT] = null; +RuleTester[DESCRIBE] = RuleTester[IT] = RuleTester[IT_ONLY] = null; module.exports = RuleTester; diff --git a/node_modules/eslint/lib/rules/arrow-body-style.js b/node_modules/eslint/lib/rules/arrow-body-style.js index 7b318ea8b3..5b8a5f0116 100644 --- a/node_modules/eslint/lib/rules/arrow-body-style.js +++ b/node_modules/eslint/lib/rules/arrow-body-style.js @@ -87,17 +87,17 @@ module.exports = { } /** - * Gets the closing parenthesis which is the pair of the given opening parenthesis. - * @param {Token} token The opening parenthesis token to get. + * Gets the closing parenthesis by the given node. + * @param {ASTNode} node first node after an opening parenthesis. * @returns {Token} The found closing parenthesis token. */ - function findClosingParen(token) { - let node = sourceCode.getNodeByRangeIndex(token.range[0]); + function findClosingParen(node) { + let nodeToCheck = node; - while (!astUtils.isParenthesised(sourceCode, node)) { - node = node.parent; + while (!astUtils.isParenthesised(sourceCode, nodeToCheck)) { + nodeToCheck = nodeToCheck.parent; } - return sourceCode.getTokenAfter(node); + return sourceCode.getTokenAfter(nodeToCheck); } /** @@ -191,7 +191,7 @@ module.exports = { } /* - * If the first token of the reutrn value is `{` or the return value is a sequence expression, + * If the first token of the return value is `{` or the return value is a sequence expression, * enclose the return value by parentheses to avoid syntax error. */ if (astUtils.isOpeningBraceToken(firstValueToken) || blockBody[0].argument.type === "SequenceExpression" || (funcInfo.hasInOperator && isInsideForLoopInitializer(node))) { @@ -226,12 +226,22 @@ module.exports = { const arrowToken = sourceCode.getTokenBefore(arrowBody, astUtils.isArrowToken); const [firstTokenAfterArrow, secondTokenAfterArrow] = sourceCode.getTokensAfter(arrowToken, { count: 2 }); const lastToken = sourceCode.getLastToken(node); - const isParenthesisedObjectLiteral = + + let parenthesisedObjectLiteral = null; + + if ( astUtils.isOpeningParenToken(firstTokenAfterArrow) && - astUtils.isOpeningBraceToken(secondTokenAfterArrow); + astUtils.isOpeningBraceToken(secondTokenAfterArrow) + ) { + const braceNode = sourceCode.getNodeByRangeIndex(secondTokenAfterArrow.range[0]); + + if (braceNode.type === "ObjectExpression") { + parenthesisedObjectLiteral = braceNode; + } + } // If the value is object literal, remove parentheses which were forced by syntax. - if (isParenthesisedObjectLiteral) { + if (parenthesisedObjectLiteral) { const openingParenToken = firstTokenAfterArrow; const openingBraceToken = secondTokenAfterArrow; @@ -247,7 +257,7 @@ module.exports = { } // Closing paren for the object doesn't have to be lastToken, e.g.: () => ({}).foo() - fixes.push(fixer.remove(findClosingParen(openingBraceToken))); + fixes.push(fixer.remove(findClosingParen(parenthesisedObjectLiteral))); fixes.push(fixer.insertTextAfter(lastToken, "}")); } else { diff --git a/node_modules/eslint/lib/rules/callback-return.js b/node_modules/eslint/lib/rules/callback-return.js index ba13c9a648..fa66e6383b 100644 --- a/node_modules/eslint/lib/rules/callback-return.js +++ b/node_modules/eslint/lib/rules/callback-return.js @@ -59,9 +59,9 @@ module.exports = { } /** - * Check to see if a node contains only identifers + * Check to see if a node contains only identifiers * @param {ASTNode} node The node to check - * @returns {boolean} Whether or not the node contains only identifers + * @returns {boolean} Whether or not the node contains only identifiers */ function containsOnlyIdentifiers(node) { if (node.type === "Identifier") { diff --git a/node_modules/eslint/lib/rules/comma-dangle.js b/node_modules/eslint/lib/rules/comma-dangle.js index e22b7f3551..798c111ec3 100644 --- a/node_modules/eslint/lib/rules/comma-dangle.js +++ b/node_modules/eslint/lib/rules/comma-dangle.js @@ -9,7 +9,6 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); const astUtils = require("./utils/ast-utils"); //------------------------------------------------------------------------------ @@ -144,23 +143,33 @@ module.exports = { * @returns {ASTNode|null} The last node or null. */ function getLastItem(node) { + + /** + * Returns the last element of an array + * @param {any[]} array The input array + * @returns {any} The last element + */ + function last(array) { + return array[array.length - 1]; + } + switch (node.type) { case "ObjectExpression": case "ObjectPattern": - return lodash.last(node.properties); + return last(node.properties); case "ArrayExpression": case "ArrayPattern": - return lodash.last(node.elements); + return last(node.elements); case "ImportDeclaration": case "ExportNamedDeclaration": - return lodash.last(node.specifiers); + return last(node.specifiers); case "FunctionDeclaration": case "FunctionExpression": case "ArrowFunctionExpression": - return lodash.last(node.params); + return last(node.params); case "CallExpression": case "NewExpression": - return lodash.last(node.arguments); + return last(node.arguments); default: return null; } @@ -316,7 +325,7 @@ module.exports = { "always-multiline": forceTrailingCommaIfMultiline, "only-multiline": allowTrailingCommaIfMultiline, never: forbidTrailingComma, - ignore: lodash.noop + ignore: () => {} }; return { diff --git a/node_modules/eslint/lib/rules/comma-spacing.js b/node_modules/eslint/lib/rules/comma-spacing.js index 73c10a7711..2bf41a00bb 100644 --- a/node_modules/eslint/lib/rules/comma-spacing.js +++ b/node_modules/eslint/lib/rules/comma-spacing.js @@ -181,7 +181,7 @@ module.exports = { validateCommaItemSpacing({ comma: token, - left: astUtils.isCommaToken(previousToken) || commaTokensToIgnore.indexOf(token) > -1 ? null : previousToken, + left: astUtils.isCommaToken(previousToken) || commaTokensToIgnore.includes(token) ? null : previousToken, right: astUtils.isCommaToken(nextToken) ? null : nextToken }, token); }); diff --git a/node_modules/eslint/lib/rules/comma-style.js b/node_modules/eslint/lib/rules/comma-style.js index f1a23d63b7..fbdecccaac 100644 --- a/node_modules/eslint/lib/rules/comma-style.js +++ b/node_modules/eslint/lib/rules/comma-style.js @@ -207,8 +207,7 @@ module.exports = { * they are always valid regardless of an undefined item. */ if (astUtils.isCommaToken(commaToken)) { - validateCommaItemSpacing(previousItemToken, commaToken, - currentItemToken, reportItem); + validateCommaItemSpacing(previousItemToken, commaToken, currentItemToken, reportItem); } if (item) { diff --git a/node_modules/eslint/lib/rules/complexity.js b/node_modules/eslint/lib/rules/complexity.js index 7fc8bf9bc2..116c8ad0a6 100644 --- a/node_modules/eslint/lib/rules/complexity.js +++ b/node_modules/eslint/lib/rules/complexity.js @@ -10,9 +10,8 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); - const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); //------------------------------------------------------------------------------ // Rule Definition @@ -95,7 +94,7 @@ module.exports = { * @private */ function endFunction(node) { - const name = lodash.upperFirst(astUtils.getFunctionNameWithKind(node)); + const name = upperCaseFirst(astUtils.getFunctionNameWithKind(node)); const complexity = fns.pop(); if (complexity > THRESHOLD) { @@ -153,7 +152,13 @@ module.exports = { IfStatement: increaseComplexity, SwitchCase: increaseSwitchComplexity, WhileStatement: increaseComplexity, - DoWhileStatement: increaseComplexity + DoWhileStatement: increaseComplexity, + + AssignmentExpression(node) { + if (astUtils.isLogicalAssignmentOperator(node.operator)) { + increaseComplexity(); + } + } }; } diff --git a/node_modules/eslint/lib/rules/consistent-return.js b/node_modules/eslint/lib/rules/consistent-return.js index 94db253d25..0e20209af5 100644 --- a/node_modules/eslint/lib/rules/consistent-return.js +++ b/node_modules/eslint/lib/rules/consistent-return.js @@ -8,8 +8,8 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); //------------------------------------------------------------------------------ // Helpers @@ -104,18 +104,18 @@ module.exports = { } else if (node.type === "ArrowFunctionExpression") { // `=>` token - loc = context.getSourceCode().getTokenBefore(node.body, astUtils.isArrowToken).loc.start; + loc = context.getSourceCode().getTokenBefore(node.body, astUtils.isArrowToken).loc; } else if ( node.parent.type === "MethodDefinition" || (node.parent.type === "Property" && node.parent.method) ) { // Method name. - loc = node.parent.key.loc.start; + loc = node.parent.key.loc; } else { // Function name or `function` keyword. - loc = (node.id || node).loc.start; + loc = (node.id || context.getSourceCode().getFirstToken(node)).loc; } if (!name) { @@ -164,7 +164,7 @@ module.exports = { funcInfo.data = { name: funcInfo.node.type === "Program" ? "Program" - : lodash.upperFirst(astUtils.getFunctionNameWithKind(funcInfo.node)) + : upperCaseFirst(astUtils.getFunctionNameWithKind(funcInfo.node)) }; } else if (funcInfo.hasReturnValue !== hasReturnValue) { context.report({ diff --git a/node_modules/eslint/lib/rules/constructor-super.js b/node_modules/eslint/lib/rules/constructor-super.js index 8787fc569a..dfec18fb65 100644 --- a/node_modules/eslint/lib/rules/constructor-super.js +++ b/node_modules/eslint/lib/rules/constructor-super.js @@ -79,6 +79,17 @@ function isPossibleConstructor(node) { return false; case "LogicalExpression": + + /* + * If the && operator short-circuits, the left side was falsy and therefore not a constructor, and if + * it doesn't short-circuit, it takes the value from the right side, so the right side must always be a + * possible constructor. A future improvement could verify that the left side could be truthy by + * excluding falsy literals. + */ + if (node.operator === "&&") { + return isPossibleConstructor(node.right); + } + return ( isPossibleConstructor(node.left) || isPossibleConstructor(node.right) diff --git a/node_modules/eslint/lib/rules/dot-location.js b/node_modules/eslint/lib/rules/dot-location.js index 0a739b1712..a8d5a76056 100644 --- a/node_modules/eslint/lib/rules/dot-location.js +++ b/node_modules/eslint/lib/rules/dot-location.js @@ -46,7 +46,7 @@ module.exports = { const sourceCode = context.getSourceCode(); /** - * Reports if the dot between object and property is on the correct loccation. + * Reports if the dot between object and property is on the correct location. * @param {ASTNode} node The `MemberExpression` node. * @returns {void} */ diff --git a/node_modules/eslint/lib/rules/dot-notation.js b/node_modules/eslint/lib/rules/dot-notation.js index 751b4628ed..3aa9f3110f 100644 --- a/node_modules/eslint/lib/rules/dot-notation.js +++ b/node_modules/eslint/lib/rules/dot-notation.js @@ -94,7 +94,7 @@ module.exports = { // Don't perform any fixes if there are comments inside the brackets. if (sourceCode.commentsExistBetween(leftBracket, rightBracket)) { - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } // Replace the brackets by an identifier. @@ -154,12 +154,12 @@ module.exports = { // A statement that starts with `let[` is parsed as a destructuring variable declaration, not a MemberExpression. if (node.object.type === "Identifier" && node.object.name === "let" && !node.optional) { - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } // Don't perform any fixes if there are comments between the dot and the property name. if (sourceCode.commentsExistBetween(dotToken, node.property)) { - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } // Replace the identifier to brackets. diff --git a/node_modules/eslint/lib/rules/eol-last.js b/node_modules/eslint/lib/rules/eol-last.js index fbba6c8f5e..24b0c9279c 100644 --- a/node_modules/eslint/lib/rules/eol-last.js +++ b/node_modules/eslint/lib/rules/eol-last.js @@ -4,12 +4,6 @@ */ "use strict"; -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const lodash = require("lodash"); - //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -48,13 +42,14 @@ module.exports = { Program: function checkBadEOF(node) { const sourceCode = context.getSourceCode(), src = sourceCode.getText(), + lastLine = sourceCode.lines[sourceCode.lines.length - 1], location = { - column: lodash.last(sourceCode.lines).length, + column: lastLine.length, line: sourceCode.lines.length }, LF = "\n", CRLF = `\r${LF}`, - endsWithNewline = lodash.endsWith(src, LF); + endsWithNewline = src.endsWith(LF); /* * Empty source is always valid: No content in file so we don't diff --git a/node_modules/eslint/lib/rules/func-call-spacing.js b/node_modules/eslint/lib/rules/func-call-spacing.js index 8fe690d4a6..132a583314 100644 --- a/node_modules/eslint/lib/rules/func-call-spacing.js +++ b/node_modules/eslint/lib/rules/func-call-spacing.js @@ -131,7 +131,7 @@ module.exports = { return null; } - // If `?.` exsits, it doesn't hide no-undexpected-multiline errors + // If `?.` exists, it doesn't hide no-unexpected-multiline errors if (node.optional) { return fixer.replaceTextRange([leftToken.range[1], rightToken.range[0]], "?."); } @@ -177,7 +177,7 @@ module.exports = { /* * Only autofix if there is no newline * https://github.com/eslint/eslint/issues/7787 - * But if `?.` exsits, it doesn't hide no-undexpected-multiline errors + * But if `?.` exists, it doesn't hide no-unexpected-multiline errors */ if (!node.optional) { return null; diff --git a/node_modules/eslint/lib/rules/function-paren-newline.js b/node_modules/eslint/lib/rules/function-paren-newline.js index 894c8e331a..9d8d67ba14 100644 --- a/node_modules/eslint/lib/rules/function-paren-newline.js +++ b/node_modules/eslint/lib/rules/function-paren-newline.js @@ -218,7 +218,7 @@ module.exports = { } case "ArrowFunctionExpression": { - const firstToken = sourceCode.getFirstToken(node); + const firstToken = sourceCode.getFirstToken(node, { skip: (node.async ? 1 : 0) }); if (!astUtils.isOpeningParenToken(firstToken)) { diff --git a/node_modules/eslint/lib/rules/indent-legacy.js b/node_modules/eslint/lib/rules/indent-legacy.js index 50010d3f7a..a26ee87b13 100644 --- a/node_modules/eslint/lib/rules/indent-legacy.js +++ b/node_modules/eslint/lib/rules/indent-legacy.js @@ -954,7 +954,7 @@ module.exports = { } /** - * Checks wether a return statement is wrapped in () + * Checks whether a return statement is wrapped in () * @param {ASTNode} node node to examine * @returns {boolean} the result */ diff --git a/node_modules/eslint/lib/rules/indent.js b/node_modules/eslint/lib/rules/indent.js index 1c0dccc5c9..04f41db9e2 100644 --- a/node_modules/eslint/lib/rules/indent.js +++ b/node_modules/eslint/lib/rules/indent.js @@ -12,10 +12,10 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); -const astUtils = require("./utils/ast-utils"); const createTree = require("functional-red-black-tree"); +const astUtils = require("./utils/ast-utils"); + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -1068,7 +1068,7 @@ module.exports = { const baseOffsetListeners = { "ArrayExpression, ArrayPattern"(node) { const openingBracket = sourceCode.getFirstToken(node); - const closingBracket = sourceCode.getTokenAfter(lodash.findLast(node.elements) || openingBracket, astUtils.isClosingBracketToken); + const closingBracket = sourceCode.getTokenAfter([...node.elements].reverse().find(_ => _) || openingBracket, astUtils.isClosingBracketToken); addElementListIndent(node.elements, openingBracket, closingBracket, options.ArrayExpression); }, @@ -1177,7 +1177,7 @@ module.exports = { offsets.setDesiredOffset(questionMarkToken, firstToken, 1); offsets.setDesiredOffset(colonToken, firstToken, 1); - offsets.setDesiredOffset(firstConsequentToken, firstToken, + offsets.setDesiredOffset(firstConsequentToken, firstToken, firstConsequentToken.type === "Punctuator" && options.offsetTernaryExpressions ? 2 : 1); /* @@ -1203,8 +1203,7 @@ module.exports = { * If `baz` were aligned with `bar` rather than being offset by 1 from `foo`, `baz` would end up * having no expected indentation. */ - offsets.setDesiredOffset(firstAlternateToken, firstToken, - firstAlternateToken.type === "Punctuator" && + offsets.setDesiredOffset(firstAlternateToken, firstToken, firstAlternateToken.type === "Punctuator" && options.offsetTernaryExpressions ? 2 : 1); } } @@ -1559,8 +1558,9 @@ module.exports = { * 2. Don't set any offsets against the first token of the node. * 3. Call `ignoreNode` on the node sometime after exiting it and before validating offsets. */ - const offsetListeners = lodash.mapValues( - baseOffsetListeners, + const offsetListeners = {}; + + for (const [selector, listener] of Object.entries(baseOffsetListeners)) { /* * Offset listener calls are deferred until traversal is finished, and are called as @@ -1578,10 +1578,8 @@ module.exports = { * To avoid this, the `Identifier` listener isn't called until traversal finishes and all * ignored nodes are known. */ - listener => - node => - listenerCallQueue.push({ listener, node }) - ); + offsetListeners[selector] = node => listenerCallQueue.push({ listener, node }); + } // For each ignored node selector, set up a listener to collect it into the `ignoredNodes` set. const ignoredNodes = new Set(); diff --git a/node_modules/eslint/lib/rules/index.js b/node_modules/eslint/lib/rules/index.js index 3cf26e51bc..35af38fd10 100644 --- a/node_modules/eslint/lib/rules/index.js +++ b/node_modules/eslint/lib/rules/index.js @@ -169,6 +169,7 @@ module.exports = new LazyLoadingRuleMap(Object.entries({ "no-new-require": () => require("./no-new-require"), "no-new-symbol": () => require("./no-new-symbol"), "no-new-wrappers": () => require("./no-new-wrappers"), + "no-nonoctal-decimal-escape": () => require("./no-nonoctal-decimal-escape"), "no-obj-calls": () => require("./no-obj-calls"), "no-octal": () => require("./no-octal"), "no-octal-escape": () => require("./no-octal-escape"), @@ -217,6 +218,7 @@ module.exports = new LazyLoadingRuleMap(Object.entries({ "no-unreachable-loop": () => require("./no-unreachable-loop"), "no-unsafe-finally": () => require("./no-unsafe-finally"), "no-unsafe-negation": () => require("./no-unsafe-negation"), + "no-unsafe-optional-chaining": () => require("./no-unsafe-optional-chaining"), "no-unused-expressions": () => require("./no-unused-expressions"), "no-unused-labels": () => require("./no-unused-labels"), "no-unused-vars": () => require("./no-unused-vars"), diff --git a/node_modules/eslint/lib/rules/lines-around-comment.js b/node_modules/eslint/lib/rules/lines-around-comment.js index 5e1b83cdd5..6806e793cd 100644 --- a/node_modules/eslint/lib/rules/lines-around-comment.js +++ b/node_modules/eslint/lib/rules/lines-around-comment.js @@ -8,8 +8,7 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"), - astUtils = require("./utils/ast-utils"); +const astUtils = require("./utils/ast-utils"); //------------------------------------------------------------------------------ // Helpers @@ -347,7 +346,7 @@ module.exports = { const nextTokenOrComment = sourceCode.getTokenAfter(token, { includeComments: true }); // check for newline before - if (!exceptionStartAllowed && before && !lodash.includes(commentAndEmptyLines, prevLineNum) && + if (!exceptionStartAllowed && before && !commentAndEmptyLines.includes(prevLineNum) && !(astUtils.isCommentToken(previousTokenOrComment) && astUtils.isTokenOnSameLine(previousTokenOrComment, token))) { const lineStart = token.range[0] - token.loc.start.column; const range = [lineStart, lineStart]; @@ -362,7 +361,7 @@ module.exports = { } // check for newline after - if (!exceptionEndAllowed && after && !lodash.includes(commentAndEmptyLines, nextLineNum) && + if (!exceptionEndAllowed && after && !commentAndEmptyLines.includes(nextLineNum) && !(astUtils.isCommentToken(nextTokenOrComment) && astUtils.isTokenOnSameLine(token, nextTokenOrComment))) { context.report({ node: token, diff --git a/node_modules/eslint/lib/rules/max-lines-per-function.js b/node_modules/eslint/lib/rules/max-lines-per-function.js index aa423a60a1..60e2e879f5 100644 --- a/node_modules/eslint/lib/rules/max-lines-per-function.js +++ b/node_modules/eslint/lib/rules/max-lines-per-function.js @@ -9,8 +9,7 @@ //------------------------------------------------------------------------------ const astUtils = require("./utils/ast-utils"); - -const lodash = require("lodash"); +const { upperCaseFirst } = require("../shared/string-utils"); //------------------------------------------------------------------------------ // Constants @@ -71,7 +70,7 @@ module.exports = { type: "suggestion", docs: { - description: "enforce a maximum number of line of code in a function", + description: "enforce a maximum number of lines of code in a function", category: "Stylistic Issues", recommended: false, url: "https://eslint.org/docs/rules/max-lines-per-function" @@ -191,7 +190,7 @@ module.exports = { } if (lineCount > maxLines) { - const name = lodash.upperFirst(astUtils.getFunctionNameWithKind(funcNode)); + const name = upperCaseFirst(astUtils.getFunctionNameWithKind(funcNode)); context.report({ node, diff --git a/node_modules/eslint/lib/rules/max-lines.js b/node_modules/eslint/lib/rules/max-lines.js index f33adbdb5b..8bd5a1c95f 100644 --- a/node_modules/eslint/lib/rules/max-lines.js +++ b/node_modules/eslint/lib/rules/max-lines.js @@ -8,9 +8,22 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); const astUtils = require("./utils/ast-utils"); +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Creates an array of numbers from `start` up to, but not including, `end` + * @param {number} start The start of the range + * @param {number} end The end of the range + * @returns {number[]} The range of numbers + */ +function range(start, end) { + return [...Array(end - start).keys()].map(x => x + start); +} + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -119,11 +132,25 @@ module.exports = { } if (start <= end) { - return lodash.range(start, end + 1); + return range(start, end + 1); } return []; } + /** + * Returns a new array formed by applying a given callback function to each element of the array, and then flattening the result by one level. + * TODO(stephenwade): Replace this with array.flatMap when we drop support for Node v10 + * @param {any[]} array The array to process + * @param {Function} fn The function to use + * @returns {any[]} The result array + */ + function flatMap(array, fn) { + const mapped = array.map(fn); + const flattened = [].concat(...mapped); + + return flattened; + } + return { "Program:exit"() { let lines = sourceCode.lines.map((text, i) => ({ @@ -131,6 +158,14 @@ module.exports = { text })); + /* + * If file ends with a linebreak, `sourceCode.lines` will have one extra empty line at the end. + * That isn't a real line, so we shouldn't count it. + */ + if (lines.length > 1 && lines[lines.length - 1].text === "") { + lines.pop(); + } + if (skipBlankLines) { lines = lines.filter(l => l.text.trim() !== ""); } @@ -138,12 +173,10 @@ module.exports = { if (skipComments) { const comments = sourceCode.getAllComments(); - const commentLines = lodash.flatten( - comments.map(comment => getLinesWithoutCode(comment)) - ); + const commentLines = flatMap(comments, comment => getLinesWithoutCode(comment)); lines = lines.filter( - l => !lodash.includes(commentLines, l.lineNumber) + l => !commentLines.includes(l.lineNumber) ); } @@ -155,7 +188,7 @@ module.exports = { }, end: { line: sourceCode.lines.length, - column: lodash.last(sourceCode.lines).length + column: sourceCode.lines[sourceCode.lines.length - 1].length } }; diff --git a/node_modules/eslint/lib/rules/max-params.js b/node_modules/eslint/lib/rules/max-params.js index 4eebe2d95a..8fb798401c 100644 --- a/node_modules/eslint/lib/rules/max-params.js +++ b/node_modules/eslint/lib/rules/max-params.js @@ -9,9 +9,8 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); - const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); //------------------------------------------------------------------------------ // Rule Definition @@ -85,7 +84,7 @@ module.exports = { node, messageId: "exceed", data: { - name: lodash.upperFirst(astUtils.getFunctionNameWithKind(node)), + name: upperCaseFirst(astUtils.getFunctionNameWithKind(node)), count: node.params.length, max: numParams } diff --git a/node_modules/eslint/lib/rules/max-statements.js b/node_modules/eslint/lib/rules/max-statements.js index 437b393a50..65d5539550 100644 --- a/node_modules/eslint/lib/rules/max-statements.js +++ b/node_modules/eslint/lib/rules/max-statements.js @@ -9,9 +9,8 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); - const astUtils = require("./utils/ast-utils"); +const { upperCaseFirst } = require("../shared/string-utils"); //------------------------------------------------------------------------------ // Rule Definition @@ -97,7 +96,7 @@ module.exports = { */ function reportIfTooManyStatements(node, count, max) { if (count > max) { - const name = lodash.upperFirst(astUtils.getFunctionNameWithKind(node)); + const name = upperCaseFirst(astUtils.getFunctionNameWithKind(node)); context.report({ node, diff --git a/node_modules/eslint/lib/rules/multiline-ternary.js b/node_modules/eslint/lib/rules/multiline-ternary.js index 6668bff482..98360b9cad 100644 --- a/node_modules/eslint/lib/rules/multiline-ternary.js +++ b/node_modules/eslint/lib/rules/multiline-ternary.js @@ -27,19 +27,22 @@ module.exports = { enum: ["always", "always-multiline", "never"] } ], + messages: { expectedTestCons: "Expected newline between test and consequent of ternary expression.", expectedConsAlt: "Expected newline between consequent and alternate of ternary expression.", unexpectedTestCons: "Unexpected newline between test and consequent of ternary expression.", unexpectedConsAlt: "Unexpected newline between consequent and alternate of ternary expression." - } + }, + + fixable: "whitespace" }, create(context) { + const sourceCode = context.getSourceCode(); const option = context.options[0]; const multiline = option !== "never"; const allowSingleLine = option === "always-multiline"; - const sourceCode = context.getSourceCode(); //-------------------------------------------------------------------------- // Public @@ -59,6 +62,8 @@ module.exports = { const areTestAndConsequentOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfTest, firstTokenOfConsequent); const areConsequentAndAlternateOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfConsequent, firstTokenOfAlternate); + const hasComments = !!sourceCode.getCommentsInside(node).length; + if (!multiline) { if (!areTestAndConsequentOnSameLine) { context.report({ @@ -67,7 +72,24 @@ module.exports = { start: firstTokenOfTest.loc.start, end: lastTokenOfTest.loc.end }, - messageId: "unexpectedTestCons" + messageId: "unexpectedTestCons", + fix: fixer => { + if (hasComments) { + return null; + } + const fixers = []; + const areTestAndQuestionOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfTest, questionToken); + const areQuestionAndConsOnSameLine = astUtils.isTokenOnSameLine(questionToken, firstTokenOfConsequent); + + if (!areTestAndQuestionOnSameLine) { + fixers.push(fixer.removeRange([lastTokenOfTest.range[1], questionToken.range[0]])); + } + if (!areQuestionAndConsOnSameLine) { + fixers.push(fixer.removeRange([questionToken.range[1], firstTokenOfConsequent.range[0]])); + } + + return fixers; + } }); } @@ -78,7 +100,24 @@ module.exports = { start: firstTokenOfConsequent.loc.start, end: lastTokenOfConsequent.loc.end }, - messageId: "unexpectedConsAlt" + messageId: "unexpectedConsAlt", + fix: fixer => { + if (hasComments) { + return null; + } + const fixers = []; + const areConsAndColonOnSameLine = astUtils.isTokenOnSameLine(lastTokenOfConsequent, colonToken); + const areColonAndAltOnSameLine = astUtils.isTokenOnSameLine(colonToken, firstTokenOfAlternate); + + if (!areConsAndColonOnSameLine) { + fixers.push(fixer.removeRange([lastTokenOfConsequent.range[1], colonToken.range[0]])); + } + if (!areColonAndAltOnSameLine) { + fixers.push(fixer.removeRange([colonToken.range[1], firstTokenOfAlternate.range[0]])); + } + + return fixers; + } }); } } else { @@ -93,7 +132,16 @@ module.exports = { start: firstTokenOfTest.loc.start, end: lastTokenOfTest.loc.end }, - messageId: "expectedTestCons" + messageId: "expectedTestCons", + fix: fixer => (hasComments ? null : ( + fixer.replaceTextRange( + [ + lastTokenOfTest.range[1], + questionToken.range[0] + ], + "\n" + ) + )) }); } @@ -104,7 +152,16 @@ module.exports = { start: firstTokenOfConsequent.loc.start, end: lastTokenOfConsequent.loc.end }, - messageId: "expectedConsAlt" + messageId: "expectedConsAlt", + fix: (fixer => (hasComments ? null : ( + fixer.replaceTextRange( + [ + lastTokenOfConsequent.range[1], + colonToken.range[0] + ], + "\n" + ) + ))) }); } } diff --git a/node_modules/eslint/lib/rules/no-constant-condition.js b/node_modules/eslint/lib/rules/no-constant-condition.js index 5e58386410..3c2d68cbf6 100644 --- a/node_modules/eslint/lib/rules/no-constant-condition.js +++ b/node_modules/eslint/lib/rules/no-constant-condition.js @@ -9,9 +9,6 @@ // Helpers //------------------------------------------------------------------------------ -const EQUALITY_OPERATORS = ["===", "!==", "==", "!="]; -const RELATIONAL_OPERATORS = [">", "<", ">=", "<=", "in", "instanceof"]; - //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -56,6 +53,35 @@ module.exports = { // Helpers //-------------------------------------------------------------------------- + /** + * Returns literal's value converted to the Boolean type + * @param {ASTNode} node any `Literal` node + * @returns {boolean | null} `true` when node is truthy, `false` when node is falsy, + * `null` when it cannot be determined. + */ + function getBooleanValue(node) { + if (node.value === null) { + + /* + * it might be a null literal or bigint/regex literal in unsupported environments . + * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es5.md#regexpliteral + * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es2020.md#bigintliteral + */ + + if (node.raw === "null") { + return false; + } + + // regex is always truthy + if (typeof node.regex === "object") { + return true; + } + + return null; + } + + return !!node.value; + } /** * Checks if a branch node of LogicalExpression short circuits the whole condition @@ -66,15 +92,28 @@ module.exports = { function isLogicalIdentity(node, operator) { switch (node.type) { case "Literal": - return (operator === "||" && node.value === true) || - (operator === "&&" && node.value === false); + return (operator === "||" && getBooleanValue(node) === true) || + (operator === "&&" && getBooleanValue(node) === false); case "UnaryExpression": return (operator === "&&" && node.operator === "void"); case "LogicalExpression": - return isLogicalIdentity(node.left, node.operator) || - isLogicalIdentity(node.right, node.operator); + + /* + * handles `a && false || b` + * `false` is an identity element of `&&` but not `||` + */ + return operator === node.operator && + ( + isLogicalIdentity(node.left, operator) || + isLogicalIdentity(node.right, operator) + ); + + case "AssignmentExpression": + return ["||=", "&&="].includes(node.operator) && + operator === node.operator.slice(0, -1) && + isLogicalIdentity(node.right, operator); // no default } @@ -113,12 +152,18 @@ module.exports = { } case "UnaryExpression": - if (node.operator === "void") { + if ( + node.operator === "void" || + node.operator === "typeof" && inBooleanPosition + ) { return true; } - return (node.operator === "typeof" && inBooleanPosition) || - isConstant(node.argument, true); + if (node.operator === "!") { + return isConstant(node.argument, true); + } + + return isConstant(node.argument, false); case "BinaryExpression": return isConstant(node.left, false) && @@ -129,27 +174,23 @@ module.exports = { const isLeftConstant = isConstant(node.left, inBooleanPosition); const isRightConstant = isConstant(node.right, inBooleanPosition); const isLeftShortCircuit = (isLeftConstant && isLogicalIdentity(node.left, node.operator)); - const isRightShortCircuit = (isRightConstant && isLogicalIdentity(node.right, node.operator)); + const isRightShortCircuit = (inBooleanPosition && isRightConstant && isLogicalIdentity(node.right, node.operator)); return (isLeftConstant && isRightConstant) || - ( - - // in the case of an "OR", we need to know if the right constant value is truthy - node.operator === "||" && - isRightConstant && - node.right.value && - ( - !node.parent || - node.parent.type !== "BinaryExpression" || - !(EQUALITY_OPERATORS.includes(node.parent.operator) || RELATIONAL_OPERATORS.includes(node.parent.operator)) - ) - ) || isLeftShortCircuit || isRightShortCircuit; } case "AssignmentExpression": - return (node.operator === "=") && isConstant(node.right, inBooleanPosition); + if (node.operator === "=") { + return isConstant(node.right, inBooleanPosition); + } + + if (["||=", "&&="].includes(node.operator) && inBooleanPosition) { + return isLogicalIdentity(node.right, node.operator.slice(0, -1)); + } + + return false; case "SequenceExpression": return isConstant(node.expressions[node.expressions.length - 1], inBooleanPosition); diff --git a/node_modules/eslint/lib/rules/no-control-regex.js b/node_modules/eslint/lib/rules/no-control-regex.js index 146c4f22d0..6feeb6419d 100644 --- a/node_modules/eslint/lib/rules/no-control-regex.js +++ b/node_modules/eslint/lib/rules/no-control-regex.js @@ -8,7 +8,6 @@ const RegExpValidator = require("regexpp").RegExpValidator; const collector = new (class { constructor() { - this.ecmaVersion = 2018; this._source = ""; this._controlChars = []; this._validator = new RegExpValidator(this); diff --git a/node_modules/eslint/lib/rules/no-duplicate-imports.js b/node_modules/eslint/lib/rules/no-duplicate-imports.js index 7218dc64ad..cc3da1d5a6 100644 --- a/node_modules/eslint/lib/rules/no-duplicate-imports.js +++ b/node_modules/eslint/lib/rules/no-duplicate-imports.js @@ -4,92 +4,225 @@ */ "use strict"; +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const NAMED_TYPES = ["ImportSpecifier", "ExportSpecifier"]; +const NAMESPACE_TYPES = [ + "ImportNamespaceSpecifier", + "ExportNamespaceSpecifier" +]; + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ /** - * Returns the name of the module imported or re-exported. + * Check if an import/export type belongs to (ImportSpecifier|ExportSpecifier) or (ImportNamespaceSpecifier|ExportNamespaceSpecifier). + * @param {string} importExportType An import/export type to check. + * @param {string} type Can be "named" or "namespace" + * @returns {boolean} True if import/export type belongs to (ImportSpecifier|ExportSpecifier) or (ImportNamespaceSpecifier|ExportNamespaceSpecifier) and false if it doesn't. + */ +function isImportExportSpecifier(importExportType, type) { + const arrayToCheck = type === "named" ? NAMED_TYPES : NAMESPACE_TYPES; + + return arrayToCheck.includes(importExportType); +} + +/** + * Return the type of (import|export). * @param {ASTNode} node A node to get. - * @returns {string} the name of the module, or empty string if no name. + * @returns {string} The type of the (import|export). */ -function getValue(node) { - if (node && node.source && node.source.value) { - return node.source.value.trim(); +function getImportExportType(node) { + if (node.specifiers && node.specifiers.length > 0) { + const nodeSpecifiers = node.specifiers; + const index = nodeSpecifiers.findIndex( + ({ type }) => + isImportExportSpecifier(type, "named") || + isImportExportSpecifier(type, "namespace") + ); + const i = index > -1 ? index : 0; + + return nodeSpecifiers[i].type; } + if (node.type === "ExportAllDeclaration") { + if (node.exported) { + return "ExportNamespaceSpecifier"; + } + return "ExportAll"; + } + return "SideEffectImport"; +} - return ""; +/** + * Returns a boolean indicates if two (import|export) can be merged + * @param {ASTNode} node1 A node to check. + * @param {ASTNode} node2 A node to check. + * @returns {boolean} True if two (import|export) can be merged, false if they can't. + */ +function isImportExportCanBeMerged(node1, node2) { + const importExportType1 = getImportExportType(node1); + const importExportType2 = getImportExportType(node2); + + if ( + (importExportType1 === "ExportAll" && + importExportType2 !== "ExportAll" && + importExportType2 !== "SideEffectImport") || + (importExportType1 !== "ExportAll" && + importExportType1 !== "SideEffectImport" && + importExportType2 === "ExportAll") + ) { + return false; + } + if ( + (isImportExportSpecifier(importExportType1, "namespace") && + isImportExportSpecifier(importExportType2, "named")) || + (isImportExportSpecifier(importExportType2, "namespace") && + isImportExportSpecifier(importExportType1, "named")) + ) { + return false; + } + return true; } /** - * Checks if the name of the import or export exists in the given array, and reports if so. - * @param {RuleContext} context The ESLint rule context object. - * @param {ASTNode} node A node to get. - * @param {string} value The name of the imported or exported module. - * @param {string[]} array The array containing other imports or exports in the file. - * @param {string} messageId A messageId to be reported after the name of the module - * - * @returns {void} No return value + * Returns a boolean if we should report (import|export). + * @param {ASTNode} node A node to be reported or not. + * @param {[ASTNode]} previousNodes An array contains previous nodes of the module imported or exported. + * @returns {boolean} True if the (import|export) should be reported. */ -function checkAndReport(context, node, value, array, messageId) { - if (array.indexOf(value) !== -1) { - context.report({ - node, - messageId, - data: { - module: value - } - }); +function shouldReportImportExport(node, previousNodes) { + let i = 0; + + while (i < previousNodes.length) { + if (isImportExportCanBeMerged(node, previousNodes[i])) { + return true; + } + i++; } + return false; } /** - * @callback nodeCallback - * @param {ASTNode} node A node to handle. + * Returns array contains only nodes with declarations types equal to type. + * @param {[{node: ASTNode, declarationType: string}]} nodes An array contains objects, each object contains a node and a declaration type. + * @param {string} type Declaration type. + * @returns {[ASTNode]} An array contains only nodes with declarations types equal to type. + */ +function getNodesByDeclarationType(nodes, type) { + return nodes + .filter(({ declarationType }) => declarationType === type) + .map(({ node }) => node); +} + +/** + * Returns the name of the module imported or re-exported. + * @param {ASTNode} node A node to get. + * @returns {string} The name of the module, or empty string if no name. */ +function getModule(node) { + if (node && node.source && node.source.value) { + return node.source.value.trim(); + } + return ""; +} /** - * Returns a function handling the imports of a given file + * Checks if the (import|export) can be merged with at least one import or one export, and reports if so. * @param {RuleContext} context The ESLint rule context object. + * @param {ASTNode} node A node to get. + * @param {Map} modules A Map object contains as a key a module name and as value an array contains objects, each object contains a node and a declaration type. + * @param {string} declarationType A declaration type can be an import or export. * @param {boolean} includeExports Whether or not to check for exports in addition to imports. - * @param {string[]} importsInFile The array containing other imports in the file. - * @param {string[]} exportsInFile The array containing other exports in the file. - * - * @returns {nodeCallback} A function passed to ESLint to handle the statement. + * @returns {void} No return value. */ -function handleImports(context, includeExports, importsInFile, exportsInFile) { - return function(node) { - const value = getValue(node); +function checkAndReport( + context, + node, + modules, + declarationType, + includeExports +) { + const module = getModule(node); - if (value) { - checkAndReport(context, node, value, importsInFile, "import"); + if (modules.has(module)) { + const previousNodes = modules.get(module); + const messagesIds = []; + const importNodes = getNodesByDeclarationType(previousNodes, "import"); + let exportNodes; + if (includeExports) { + exportNodes = getNodesByDeclarationType(previousNodes, "export"); + } + if (declarationType === "import") { + if (shouldReportImportExport(node, importNodes)) { + messagesIds.push("import"); + } if (includeExports) { - checkAndReport(context, node, value, exportsInFile, "importAs"); + if (shouldReportImportExport(node, exportNodes)) { + messagesIds.push("importAs"); + } + } + } else if (declarationType === "export") { + if (shouldReportImportExport(node, exportNodes)) { + messagesIds.push("export"); + } + if (shouldReportImportExport(node, importNodes)) { + messagesIds.push("exportAs"); } - - importsInFile.push(value); } - }; + messagesIds.forEach(messageId => + context.report({ + node, + messageId, + data: { + module + } + })); + } } /** - * Returns a function handling the exports of a given file + * @callback nodeCallback + * @param {ASTNode} node A node to handle. + */ + +/** + * Returns a function handling the (imports|exports) of a given file * @param {RuleContext} context The ESLint rule context object. - * @param {string[]} importsInFile The array containing other imports in the file. - * @param {string[]} exportsInFile The array containing other exports in the file. - * + * @param {Map} modules A Map object contains as a key a module name and as value an array contains objects, each object contains a node and a declaration type. + * @param {string} declarationType A declaration type can be an import or export. + * @param {boolean} includeExports Whether or not to check for exports in addition to imports. * @returns {nodeCallback} A function passed to ESLint to handle the statement. */ -function handleExports(context, importsInFile, exportsInFile) { +function handleImportsExports( + context, + modules, + declarationType, + includeExports +) { return function(node) { - const value = getValue(node); + const module = getModule(node); + + if (module) { + checkAndReport( + context, + node, + modules, + declarationType, + includeExports + ); + const currentNode = { node, declarationType }; + let nodes = [currentNode]; - if (value) { - checkAndReport(context, node, value, exportsInFile, "export"); - checkAndReport(context, node, value, importsInFile, "exportAs"); + if (modules.has(module)) { + const previousNodes = modules.get(module); - exportsInFile.push(value); + nodes = [...previousNodes, currentNode]; + } + modules.set(module, nodes); } }; } @@ -105,16 +238,19 @@ module.exports = { url: "https://eslint.org/docs/rules/no-duplicate-imports" }, - schema: [{ - type: "object", - properties: { - includeExports: { - type: "boolean", - default: false - } - }, - additionalProperties: false - }], + schema: [ + { + type: "object", + properties: { + includeExports: { + type: "boolean", + default: false + } + }, + additionalProperties: false + } + ], + messages: { import: "'{{module}}' import is duplicated.", importAs: "'{{module}}' import is duplicated as export.", @@ -125,18 +261,30 @@ module.exports = { create(context) { const includeExports = (context.options[0] || {}).includeExports, - importsInFile = [], - exportsInFile = []; - + modules = new Map(); const handlers = { - ImportDeclaration: handleImports(context, includeExports, importsInFile, exportsInFile) + ImportDeclaration: handleImportsExports( + context, + modules, + "import", + includeExports + ) }; if (includeExports) { - handlers.ExportNamedDeclaration = handleExports(context, importsInFile, exportsInFile); - handlers.ExportAllDeclaration = handleExports(context, importsInFile, exportsInFile); + handlers.ExportNamedDeclaration = handleImportsExports( + context, + modules, + "export", + includeExports + ); + handlers.ExportAllDeclaration = handleImportsExports( + context, + modules, + "export", + includeExports + ); } - return handlers; } }; diff --git a/node_modules/eslint/lib/rules/no-extend-native.js b/node_modules/eslint/lib/rules/no-extend-native.js index db365b5092..2a804b5639 100644 --- a/node_modules/eslint/lib/rules/no-extend-native.js +++ b/node_modules/eslint/lib/rules/no-extend-native.js @@ -138,7 +138,7 @@ module.exports = { } /* - * `identifierNode.parent` is a MamberExpression `*.prototype`. + * `identifierNode.parent` is a MemberExpression `*.prototype`. * If it's an optional member access, it may be wrapped by a `ChainExpression` node. */ const prototypeNode = diff --git a/node_modules/eslint/lib/rules/no-extra-parens.js b/node_modules/eslint/lib/rules/no-extra-parens.js index e9d394c616..307e340c95 100644 --- a/node_modules/eslint/lib/rules/no-extra-parens.js +++ b/node_modules/eslint/lib/rules/no-extra-parens.js @@ -472,20 +472,34 @@ module.exports = { const callee = node.callee; if (hasExcessParensWithPrecedence(callee, precedence(node))) { - const hasNewParensException = callee.type === "NewExpression" && !isNewExpressionWithParens(callee); - if ( hasDoubleExcessParens(callee) || - !isIIFE(node) && - !hasNewParensException && !( - - // Allow extra parens around a new expression if they are intervening parentheses. - node.type === "NewExpression" && - callee.type === "MemberExpression" && - doesMemberExpressionContainCallExpression(callee) - ) && - !(!node.optional && callee.type === "ChainExpression") + isIIFE(node) || + + // (new A)(); new (new A)(); + ( + callee.type === "NewExpression" && + !isNewExpressionWithParens(callee) && + !( + node.type === "NewExpression" && + !isNewExpressionWithParens(node) + ) + ) || + + // new (a().b)(); new (a.b().c); + ( + node.type === "NewExpression" && + callee.type === "MemberExpression" && + doesMemberExpressionContainCallExpression(callee) + ) || + + // (a?.b)(); (a?.())(); + ( + !node.optional && + callee.type === "ChainExpression" + ) + ) ) { report(node.callee); } @@ -511,7 +525,7 @@ module.exports = { if (!shouldSkipLeft && hasExcessParens(node.left)) { if ( - !(node.left.type === "UnaryExpression" && isExponentiation) && + !(["AwaitExpression", "UnaryExpression"].includes(node.left.type) && isExponentiation) && !astUtils.isMixedLogicalAndCoalesceExpressions(node.left, node) && (leftPrecedence > prec || (leftPrecedence === prec && !isExponentiation)) || isParenthesisedTwice(node.left) @@ -830,45 +844,49 @@ module.exports = { ExportDefaultDeclaration: node => checkExpressionOrExportStatement(node.declaration), ExpressionStatement: node => checkExpressionOrExportStatement(node.expression), - "ForInStatement, ForOfStatement"(node) { - if (node.left.type !== "VariableDeclarator") { + ForInStatement(node) { + if (node.left.type !== "VariableDeclaration") { const firstLeftToken = sourceCode.getFirstToken(node.left, astUtils.isNotOpeningParenToken); if ( - firstLeftToken.value === "let" && ( - - /* - * If `let` is the only thing on the left side of the loop, it's the loop variable: `for ((let) of foo);` - * Removing it will cause a syntax error, because it will be parsed as the start of a VariableDeclarator. - */ - (firstLeftToken.range[1] === node.left.range[1] || /* - * If `let` is followed by a `[` token, it's a property access on the `let` value: `for ((let[foo]) of bar);` - * Removing it will cause the property access to be parsed as a destructuring declaration of `foo` instead. - */ - astUtils.isOpeningBracketToken( - sourceCode.getTokenAfter(firstLeftToken, astUtils.isNotClosingParenToken) - )) + firstLeftToken.value === "let" && + astUtils.isOpeningBracketToken( + sourceCode.getTokenAfter(firstLeftToken, astUtils.isNotClosingParenToken) ) ) { + + // ForInStatement#left expression cannot start with `let[`. tokensToIgnore.add(firstLeftToken); } } - if (node.type === "ForOfStatement") { - const hasExtraParens = node.right.type === "SequenceExpression" - ? hasDoubleExcessParens(node.right) - : hasExcessParens(node.right); + if (hasExcessParens(node.left)) { + report(node.left); + } - if (hasExtraParens) { - report(node.right); - } - } else if (hasExcessParens(node.right)) { + if (hasExcessParens(node.right)) { report(node.right); } + }, + + ForOfStatement(node) { + if (node.left.type !== "VariableDeclaration") { + const firstLeftToken = sourceCode.getFirstToken(node.left, astUtils.isNotOpeningParenToken); + + if (firstLeftToken.value === "let") { + + // ForOfStatement#left expression cannot start with `let`. + tokensToIgnore.add(firstLeftToken); + } + } if (hasExcessParens(node.left)) { report(node.left); } + + if (hasExcessParensWithPrecedence(node.right, PRECEDENCE_OF_ASSIGNMENT_EXPR)) { + report(node.right); + } }, ForStatement(node) { @@ -881,6 +899,22 @@ module.exports = { } if (node.init) { + + if (node.init.type !== "VariableDeclaration") { + const firstToken = sourceCode.getFirstToken(node.init, astUtils.isNotOpeningParenToken); + + if ( + firstToken.value === "let" && + astUtils.isOpeningBracketToken( + sourceCode.getTokenAfter(firstToken, astUtils.isNotClosingParenToken) + ) + ) { + + // ForStatement#init expression cannot start with `let[`. + tokensToIgnore.add(firstToken); + } + } + startNewReportsBuffering(); if (hasExcessParens(node.init)) { @@ -1109,7 +1143,22 @@ module.exports = { }, UnaryExpression: checkArgumentWithPrecedence, - UpdateExpression: checkArgumentWithPrecedence, + UpdateExpression(node) { + if (node.prefix) { + checkArgumentWithPrecedence(node); + } else { + const { argument } = node; + const operatorToken = sourceCode.getLastToken(node); + + if (argument.loc.end.line === operatorToken.loc.start.line) { + checkArgumentWithPrecedence(node); + } else { + if (hasDoubleExcessParens(argument)) { + report(argument); + } + } + } + }, AwaitExpression: checkArgumentWithPrecedence, VariableDeclarator(node) { diff --git a/node_modules/eslint/lib/rules/no-fallthrough.js b/node_modules/eslint/lib/rules/no-fallthrough.js index dd1f3ed9d9..3b949acd1d 100644 --- a/node_modules/eslint/lib/rules/no-fallthrough.js +++ b/node_modules/eslint/lib/rules/no-fallthrough.js @@ -4,12 +4,6 @@ */ "use strict"; -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const lodash = require("lodash"); - //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ @@ -17,15 +11,26 @@ const lodash = require("lodash"); const DEFAULT_FALLTHROUGH_COMMENT = /falls?\s?through/iu; /** - * Checks whether or not a given node has a fallthrough comment. - * @param {ASTNode} node A SwitchCase node to get comments. + * Checks whether or not a given case has a fallthrough comment. + * @param {ASTNode} caseWhichFallsThrough SwitchCase node which falls through. + * @param {ASTNode} subsequentCase The case after caseWhichFallsThrough. * @param {RuleContext} context A rule context which stores comments. * @param {RegExp} fallthroughCommentPattern A pattern to match comment to. - * @returns {boolean} `true` if the node has a valid fallthrough comment. + * @returns {boolean} `true` if the case has a valid fallthrough comment. */ -function hasFallthroughComment(node, context, fallthroughCommentPattern) { +function hasFallthroughComment(caseWhichFallsThrough, subsequentCase, context, fallthroughCommentPattern) { const sourceCode = context.getSourceCode(); - const comment = lodash.last(sourceCode.getCommentsBefore(node)); + + if (caseWhichFallsThrough.consequent.length === 1 && caseWhichFallsThrough.consequent[0].type === "BlockStatement") { + const trailingCloseBrace = sourceCode.getLastToken(caseWhichFallsThrough.consequent[0]); + const commentInBlock = sourceCode.getCommentsBefore(trailingCloseBrace).pop(); + + if (commentInBlock && fallthroughCommentPattern.test(commentInBlock.value)) { + return true; + } + } + + const comment = sourceCode.getCommentsBefore(subsequentCase).pop(); return Boolean(comment && fallthroughCommentPattern.test(comment.value)); } @@ -114,7 +119,7 @@ module.exports = { * Checks whether or not there is a fallthrough comment. * And reports the previous fallthrough node if that does not exist. */ - if (fallthroughCase && !hasFallthroughComment(node, context, fallthroughCommentPattern)) { + if (fallthroughCase && !hasFallthroughComment(fallthroughCase, node, context, fallthroughCommentPattern)) { context.report({ messageId: node.test ? "case" : "default", node @@ -133,7 +138,7 @@ module.exports = { */ if (currentCodePath.currentSegments.some(isReachable) && (node.consequent.length > 0 || hasBlankLinesBetween(node, nextToken)) && - lodash.last(node.parent.cases) !== node) { + node.parent.cases[node.parent.cases.length - 1] !== node) { fallthroughCase = node; } } diff --git a/node_modules/eslint/lib/rules/no-implicit-coercion.js b/node_modules/eslint/lib/rules/no-implicit-coercion.js index a639711ece..993b8d1f1c 100644 --- a/node_modules/eslint/lib/rules/no-implicit-coercion.js +++ b/node_modules/eslint/lib/rules/no-implicit-coercion.js @@ -24,6 +24,7 @@ function parseOptions(options) { boolean: "boolean" in options ? options.boolean : true, number: "number" in options ? options.number : true, string: "string" in options ? options.string : true, + disallowTemplateShorthand: "disallowTemplateShorthand" in options ? options.disallowTemplateShorthand : false, allow: options.allow || [] }; } @@ -108,6 +109,20 @@ function getNonNumericOperand(node) { return null; } +/** + * Checks whether an expression evaluates to a string. + * @param {ASTNode} node node that represents the expression to check. + * @returns {boolean} Whether or not the expression evaluates to a string. + */ +function isStringType(node) { + return astUtils.isStringLiteral(node) || + ( + node.type === "CallExpression" && + node.callee.type === "Identifier" && + node.callee.name === "String" + ); +} + /** * Checks whether a node is an empty string literal or not. * @param {ASTNode} node The node to check. @@ -125,8 +140,8 @@ function isEmptyString(node) { */ function isConcatWithEmptyString(node) { return node.operator === "+" && ( - (isEmptyString(node.left) && !astUtils.isStringLiteral(node.right)) || - (isEmptyString(node.right) && !astUtils.isStringLiteral(node.left)) + (isEmptyString(node.left) && !isStringType(node.right)) || + (isEmptyString(node.right) && !isStringType(node.left)) ); } @@ -180,6 +195,10 @@ module.exports = { type: "boolean", default: true }, + disallowTemplateShorthand: { + type: "boolean", + default: false + }, allow: { type: "array", items: { @@ -299,6 +318,43 @@ module.exports = { report(node, recommendation, true); } + }, + + TemplateLiteral(node) { + if (!options.disallowTemplateShorthand) { + return; + } + + // tag`${foo}` + if (node.parent.type === "TaggedTemplateExpression") { + return; + } + + // `` or `${foo}${bar}` + if (node.expressions.length !== 1) { + return; + } + + + // `prefix${foo}` + if (node.quasis[0].value.cooked !== "") { + return; + } + + // `${foo}postfix` + if (node.quasis[1].value.cooked !== "") { + return; + } + + // if the expression is already a string, then this isn't a coercion + if (isStringType(node.expressions[0])) { + return; + } + + const code = sourceCode.getText(node.expressions[0]); + const recommendation = `String(${code})`; + + report(node, recommendation, true); } }; } diff --git a/node_modules/eslint/lib/rules/no-import-assign.js b/node_modules/eslint/lib/rules/no-import-assign.js index 7a349bb730..41060d8ac9 100644 --- a/node_modules/eslint/lib/rules/no-import-assign.js +++ b/node_modules/eslint/lib/rules/no-import-assign.js @@ -97,10 +97,10 @@ function isIterationVariable(node) { * - `Object.defineProperties` * - `Object.freeze` * - `Object.setPrototypeOf` - * - `Refrect.defineProperty` - * - `Refrect.deleteProperty` - * - `Refrect.set` - * - `Refrect.setPrototypeOf` + * - `Reflect.defineProperty` + * - `Reflect.deleteProperty` + * - `Reflect.set` + * - `Reflect.setPrototypeOf` * @param {ASTNode} node The node to check. * @param {Scope} scope A `escope.Scope` object to find variable (whichever). * @returns {boolean} `true` if the node is at the first argument of a well-known mutation function. diff --git a/node_modules/eslint/lib/rules/no-inline-comments.js b/node_modules/eslint/lib/rules/no-inline-comments.js index 41b0f1e664..dec278615e 100644 --- a/node_modules/eslint/lib/rules/no-inline-comments.js +++ b/node_modules/eslint/lib/rules/no-inline-comments.js @@ -21,7 +21,17 @@ module.exports = { url: "https://eslint.org/docs/rules/no-inline-comments" }, - schema: [], + schema: [ + { + type: "object", + properties: { + ignorePattern: { + type: "string" + } + }, + additionalProperties: false + } + ], messages: { unexpectedInlineComment: "Unexpected comment inline with code." @@ -30,6 +40,12 @@ module.exports = { create(context) { const sourceCode = context.getSourceCode(); + const options = context.options[0]; + let customIgnoreRegExp; + + if (options && options.ignorePattern) { + customIgnoreRegExp = new RegExp(options.ignorePattern, "u"); + } /** * Will check that comments are not on lines starting with or ending with code @@ -51,6 +67,11 @@ module.exports = { return; } + // Matches the ignore pattern + if (customIgnoreRegExp && customIgnoreRegExp.test(node.value)) { + return; + } + // JSX Exception if ( (isPreambleEmpty || preamble === "{") && @@ -80,9 +101,9 @@ module.exports = { return { Program() { - const comments = sourceCode.getAllComments(); - - comments.filter(token => token.type !== "Shebang").forEach(testCodeAroundComment); + sourceCode.getAllComments() + .filter(token => token.type !== "Shebang") + .forEach(testCodeAroundComment); } }; } diff --git a/node_modules/eslint/lib/rules/no-invalid-regexp.js b/node_modules/eslint/lib/rules/no-invalid-regexp.js index 48b7188d49..94ad5ba6d5 100644 --- a/node_modules/eslint/lib/rules/no-invalid-regexp.js +++ b/node_modules/eslint/lib/rules/no-invalid-regexp.js @@ -9,7 +9,7 @@ //------------------------------------------------------------------------------ const RegExpValidator = require("regexpp").RegExpValidator; -const validator = new RegExpValidator({ ecmaVersion: 2018 }); +const validator = new RegExpValidator(); const validFlags = /[gimuys]/gu; const undefined1 = void 0; @@ -69,6 +69,28 @@ module.exports = { return node && node.type === "Literal" && typeof node.value === "string"; } + /** + * Gets flags of a regular expression created by the given `RegExp()` or `new RegExp()` call + * Examples: + * new RegExp(".") // => "" + * new RegExp(".", "gu") // => "gu" + * new RegExp(".", flags) // => null + * @param {ASTNode} node `CallExpression` or `NewExpression` node + * @returns {string|null} flags if they can be determined, `null` otherwise + * @private + */ + function getFlags(node) { + if (node.arguments.length < 2) { + return ""; + } + + if (isString(node.arguments[1])) { + return node.arguments[1].value; + } + + return null; + } + /** * Check syntax error in a given pattern. * @param {string} pattern The RegExp pattern to validate. @@ -104,18 +126,23 @@ module.exports = { return; } const pattern = node.arguments[0].value; - let flags = isString(node.arguments[1]) ? node.arguments[1].value : ""; + let flags = getFlags(node); - if (allowedFlags) { + if (flags && allowedFlags) { flags = flags.replace(allowedFlags, ""); } - // If flags are unknown, check both are errored or not. - const message = validateRegExpFlags(flags) || ( - flags - ? validateRegExpPattern(pattern, flags.indexOf("u") !== -1) - : validateRegExpPattern(pattern, true) && validateRegExpPattern(pattern, false) - ); + const message = + ( + flags && validateRegExpFlags(flags) + ) || + ( + + // If flags are unknown, report the regex only if its pattern is invalid both with and without the "u" flag + flags === null + ? validateRegExpPattern(pattern, true) && validateRegExpPattern(pattern, false) + : validateRegExpPattern(pattern, flags.includes("u")) + ); if (message) { context.report({ diff --git a/node_modules/eslint/lib/rules/no-irregular-whitespace.js b/node_modules/eslint/lib/rules/no-irregular-whitespace.js index 0bf69b128e..15711c6157 100644 --- a/node_modules/eslint/lib/rules/no-irregular-whitespace.js +++ b/node_modules/eslint/lib/rules/no-irregular-whitespace.js @@ -82,7 +82,7 @@ module.exports = { const commentNodes = sourceCode.getAllComments(); /** - * Removes errors that occur inside a string node + * Removes errors that occur inside the given node * @param {ASTNode} node to check for matching errors. * @returns {void} * @private @@ -91,14 +91,12 @@ module.exports = { const locStart = node.loc.start; const locEnd = node.loc.end; - errors = errors.filter(({ loc: { start: errorLoc } }) => { - if (errorLoc.line >= locStart.line && errorLoc.line <= locEnd.line) { - if (errorLoc.column >= locStart.column && (errorLoc.column <= locEnd.column || errorLoc.line < locEnd.line)) { - return false; - } - } - return true; - }); + errors = errors.filter(({ loc: { start: errorLocStart } }) => ( + errorLocStart.line < locStart.line || + errorLocStart.line === locStart.line && errorLocStart.column < locStart.column || + errorLocStart.line === locEnd.line && errorLocStart.column >= locEnd.column || + errorLocStart.line > locEnd.line + )); } /** diff --git a/node_modules/eslint/lib/rules/no-loss-of-precision.js b/node_modules/eslint/lib/rules/no-loss-of-precision.js index 9e2811809f..2d0c618422 100644 --- a/node_modules/eslint/lib/rules/no-loss-of-precision.js +++ b/node_modules/eslint/lib/rules/no-loss-of-precision.js @@ -105,9 +105,9 @@ module.exports = { } /** - * Converts an integer to to an object containing the the integer's coefficient and order of magnitude + * Converts an integer to to an object containing the integer's coefficient and order of magnitude * @param {string} stringInteger the string representation of the integer being converted - * @returns {Object} the object containing the the integer's coefficient and order of magnitude + * @returns {Object} the object containing the integer's coefficient and order of magnitude */ function normalizeInteger(stringInteger) { const significantDigits = removeTrailingZeros(removeLeadingZeros(stringInteger)); @@ -120,9 +120,9 @@ module.exports = { /** * - * Converts a float to to an object containing the the floats's coefficient and order of magnitude + * Converts a float to to an object containing the floats's coefficient and order of magnitude * @param {string} stringFloat the string representation of the float being converted - * @returns {Object} the object containing the the integer's coefficient and order of magnitude + * @returns {Object} the object containing the integer's coefficient and order of magnitude */ function normalizeFloat(stringFloat) { const trimmedFloat = removeLeadingZeros(stringFloat); diff --git a/node_modules/eslint/lib/rules/no-mixed-operators.js b/node_modules/eslint/lib/rules/no-mixed-operators.js index f0290e93ec..5a2e139a62 100644 --- a/node_modules/eslint/lib/rules/no-mixed-operators.js +++ b/node_modules/eslint/lib/rules/no-mixed-operators.js @@ -117,7 +117,7 @@ module.exports = { ], messages: { - unexpectedMixedOperator: "Unexpected mix of '{{leftOperator}}' and '{{rightOperator}}'." + unexpectedMixedOperator: "Unexpected mix of '{{leftOperator}}' and '{{rightOperator}}'. Use parentheses to clarify the intended order of operations." } }, @@ -161,17 +161,6 @@ module.exports = { ); } - /** - * Checks whether the operator of a given node is mixed with a - * conditional expression. - * @param {ASTNode} node A node to check. This is a conditional - * expression node - * @returns {boolean} `true` if the node was mixed. - */ - function isMixedWithConditionalParent(node) { - return !astUtils.isParenthesised(sourceCode, node) && !astUtils.isParenthesised(sourceCode, node.test); - } - /** * Gets the operator token of a given node. * @param {ASTNode} node A node to check. This is a BinaryExpression @@ -220,19 +209,13 @@ module.exports = { * @returns {void} */ function check(node) { - if (TARGET_NODE_TYPE.test(node.parent.type)) { - if (node.parent.type === "ConditionalExpression" && !shouldIgnore(node) && isMixedWithConditionalParent(node.parent)) { - reportBothOperators(node); - } else { - if (TARGET_NODE_TYPE.test(node.parent.type) && - isMixedWithParent(node) && - !shouldIgnore(node) - ) { - reportBothOperators(node); - } - } + if ( + TARGET_NODE_TYPE.test(node.parent.type) && + isMixedWithParent(node) && + !shouldIgnore(node) + ) { + reportBothOperators(node); } - } return { diff --git a/node_modules/eslint/lib/rules/no-multi-assign.js b/node_modules/eslint/lib/rules/no-multi-assign.js index ab6430c19e..d2606a1502 100644 --- a/node_modules/eslint/lib/rules/no-multi-assign.js +++ b/node_modules/eslint/lib/rules/no-multi-assign.js @@ -21,7 +21,16 @@ module.exports = { url: "https://eslint.org/docs/rules/no-multi-assign" }, - schema: [], + schema: [{ + type: "object", + properties: { + ignoreNonDeclaration: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], messages: { unexpectedChain: "Unexpected chained assignment." @@ -33,10 +42,14 @@ module.exports = { //-------------------------------------------------------------------------- // Public //-------------------------------------------------------------------------- + const options = context.options[0] || { + ignoreNonDeclaration: false + }; + const targetParent = options.ignoreNonDeclaration ? ["VariableDeclarator"] : ["AssignmentExpression", "VariableDeclarator"]; return { AssignmentExpression(node) { - if (["AssignmentExpression", "VariableDeclarator"].indexOf(node.parent.type) !== -1) { + if (targetParent.indexOf(node.parent.type) !== -1) { context.report({ node, messageId: "unexpectedChain" diff --git a/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js b/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js new file mode 100644 index 0000000000..a4b46d9591 --- /dev/null +++ b/node_modules/eslint/lib/rules/no-nonoctal-decimal-escape.js @@ -0,0 +1,147 @@ +/** + * @fileoverview Rule to disallow `\8` and `\9` escape sequences in string literals. + * @author Milos Djermanovic + */ + +"use strict"; + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const QUICK_TEST_REGEX = /\\[89]/u; + +/** + * Returns unicode escape sequence that represents the given character. + * @param {string} character A single code unit. + * @returns {string} "\uXXXX" sequence. + */ +function getUnicodeEscape(character) { + return `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +module.exports = { + meta: { + type: "suggestion", + + docs: { + description: "disallow `\\8` and `\\9` escape sequences in string literals", + category: "Best Practices", + recommended: false, + url: "https://eslint.org/docs/rules/no-nonoctal-decimal-escape", + suggestion: true + }, + + schema: [], + + messages: { + decimalEscape: "Don't use '{{decimalEscape}}' escape sequence.", + + // suggestions + refactor: "Replace '{{original}}' with '{{replacement}}'. This maintains the current functionality.", + escapeBackslash: "Replace '{{original}}' with '{{replacement}}' to include the actual backslash character." + } + }, + + create(context) { + const sourceCode = context.getSourceCode(); + + /** + * Creates a new Suggestion object. + * @param {string} messageId "refactor" or "escapeBackslash". + * @param {int[]} range The range to replace. + * @param {string} replacement New text for the range. + * @returns {Object} Suggestion + */ + function createSuggestion(messageId, range, replacement) { + return { + messageId, + data: { + original: sourceCode.getText().slice(...range), + replacement + }, + fix(fixer) { + return fixer.replaceTextRange(range, replacement); + } + }; + } + + return { + Literal(node) { + if (typeof node.value !== "string") { + return; + } + + if (!QUICK_TEST_REGEX.test(node.raw)) { + return; + } + + const regex = /(?:[^\\]|(?\\.))*?(?\\[89])/suy; + let match; + + while ((match = regex.exec(node.raw))) { + const { previousEscape, decimalEscape } = match.groups; + const decimalEscapeRangeEnd = node.range[0] + match.index + match[0].length; + const decimalEscapeRangeStart = decimalEscapeRangeEnd - decimalEscape.length; + const decimalEscapeRange = [decimalEscapeRangeStart, decimalEscapeRangeEnd]; + const suggest = []; + + // When `regex` is matched, `previousEscape` can only capture characters adjacent to `decimalEscape` + if (previousEscape === "\\0") { + + /* + * Now we have a NULL escape "\0" immediately followed by a decimal escape, e.g.: "\0\8". + * Fixing this to "\08" would turn "\0" into a legacy octal escape. To avoid producing + * an octal escape while fixing a decimal escape, we provide different suggestions. + */ + suggest.push( + createSuggestion( // "\0\8" -> "\u00008" + "refactor", + [decimalEscapeRangeStart - previousEscape.length, decimalEscapeRangeEnd], + `${getUnicodeEscape("\0")}${decimalEscape[1]}` + ), + createSuggestion( // "\8" -> "\u0038" + "refactor", + decimalEscapeRange, + getUnicodeEscape(decimalEscape[1]) + ) + ); + } else { + suggest.push( + createSuggestion( // "\8" -> "8" + "refactor", + decimalEscapeRange, + decimalEscape[1] + ) + ); + } + + suggest.push( + createSuggestion( // "\8" -> "\\8" + "escapeBackslash", + decimalEscapeRange, + `\\${decimalEscape}` + ) + ); + + context.report({ + node, + loc: { + start: sourceCode.getLocFromIndex(decimalEscapeRangeStart), + end: sourceCode.getLocFromIndex(decimalEscapeRangeEnd) + }, + messageId: "decimalEscape", + data: { + decimalEscape + }, + suggest + }); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-prototype-builtins.js b/node_modules/eslint/lib/rules/no-prototype-builtins.js index ccec86c30d..c5e4d49259 100644 --- a/node_modules/eslint/lib/rules/no-prototype-builtins.js +++ b/node_modules/eslint/lib/rules/no-prototype-builtins.js @@ -46,15 +46,15 @@ module.exports = { */ function disallowBuiltIns(node) { - // TODO: just use `astUtils.getStaticPropertyName(node.callee)` const callee = astUtils.skipChainExpression(node.callee); - if (callee.type !== "MemberExpression" || callee.computed) { + if (callee.type !== "MemberExpression") { return; } - const propName = callee.property.name; - if (DISALLOWED_PROPS.indexOf(propName) > -1) { + const propName = astUtils.getStaticPropertyName(callee); + + if (propName !== null && DISALLOWED_PROPS.indexOf(propName) > -1) { context.report({ messageId: "prototypeBuildIn", loc: callee.property.loc, diff --git a/node_modules/eslint/lib/rules/no-restricted-exports.js b/node_modules/eslint/lib/rules/no-restricted-exports.js index 6031e26de2..f0df0ffaed 100644 --- a/node_modules/eslint/lib/rules/no-restricted-exports.js +++ b/node_modules/eslint/lib/rules/no-restricted-exports.js @@ -45,7 +45,7 @@ module.exports = { /** * Checks and reports given exported identifier. - * @param {ASTNode} node exported `Identifer` node to check. + * @param {ASTNode} node exported `Identifier` node to check. * @returns {void} */ function checkExportedName(node) { diff --git a/node_modules/eslint/lib/rules/no-restricted-imports.js b/node_modules/eslint/lib/rules/no-restricted-imports.js index c205dad8bd..414164d29f 100644 --- a/node_modules/eslint/lib/rules/no-restricted-imports.js +++ b/node_modules/eslint/lib/rules/no-restricted-imports.js @@ -10,12 +10,6 @@ const ignore = require("ignore"); -const arrayOfStrings = { - type: "array", - items: { type: "string" }, - uniqueItems: true -}; - const arrayOfStringsOrObjects = { type: "array", items: { @@ -44,6 +38,41 @@ const arrayOfStringsOrObjects = { uniqueItems: true }; +const arrayOfStringsOrObjectPatterns = { + anyOf: [ + { + type: "array", + items: { + type: "string" + }, + uniqueItems: true + }, + { + type: "array", + items: { + type: "object", + properties: { + group: { + type: "array", + items: { + type: "string" + }, + minItems: 1, + uniqueItems: true + }, + message: { + type: "string", + minLength: 1 + } + }, + additionalProperties: false, + required: ["group"] + }, + uniqueItems: true + } + ] +}; + module.exports = { meta: { type: "suggestion", @@ -61,6 +90,8 @@ module.exports = { pathWithCustomMessage: "'{{importSource}}' import is restricted from being used. {{customMessage}}", patterns: "'{{importSource}}' import is restricted from being used by a pattern.", + // eslint-disable-next-line eslint-plugin/report-message-format + patternWithCustomMessage: "'{{importSource}}' import is restricted from being used by a pattern. {{customMessage}}", everything: "* import is invalid because '{{importNames}}' from '{{importSource}}' is restricted.", // eslint-disable-next-line eslint-plugin/report-message-format @@ -80,7 +111,7 @@ module.exports = { type: "object", properties: { paths: arrayOfStringsOrObjects, - patterns: arrayOfStrings + patterns: arrayOfStringsOrObjectPatterns }, additionalProperties: false }], @@ -98,13 +129,6 @@ module.exports = { (Object.prototype.hasOwnProperty.call(options[0], "paths") || Object.prototype.hasOwnProperty.call(options[0], "patterns")); const restrictedPaths = (isPathAndPatternsObject ? options[0].paths : context.options) || []; - const restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || []; - - // if no imports are restricted we don"t need to check - if (Object.keys(restrictedPaths).length === 0 && restrictedPatterns.length === 0) { - return {}; - } - const restrictedPathMessages = restrictedPaths.reduce((memo, importSource) => { if (typeof importSource === "string") { memo[importSource] = { message: null }; @@ -117,7 +141,16 @@ module.exports = { return memo; }, {}); - const restrictedPatternsMatcher = ignore().add(restrictedPatterns); + // Handle patterns too, either as strings or groups + const restrictedPatterns = (isPathAndPatternsObject ? options[0].patterns : []) || []; + const restrictedPatternGroups = restrictedPatterns.length > 0 && typeof restrictedPatterns[0] === "string" + ? [{ matcher: ignore().add(restrictedPatterns) }] + : restrictedPatterns.map(({ group, message }) => ({ matcher: ignore().add(group), customMessage: message })); + + // if no imports are restricted we don"t need to check + if (Object.keys(restrictedPaths).length === 0 && restrictedPatternGroups.length === 0) { + return {}; + } /** * Report a restricted path. @@ -184,17 +217,19 @@ module.exports = { /** * Report a restricted path specifically for patterns. * @param {node} node representing the restricted path reference + * @param {Object} group contains a Ignore instance for paths, and the customMessage to show if it fails * @returns {void} * @private */ - function reportPathForPatterns(node) { + function reportPathForPatterns(node, group) { const importSource = node.source.value.trim(); context.report({ node, - messageId: "patterns", + messageId: group.customMessage ? "patternWithCustomMessage" : "patterns", data: { - importSource + importSource, + customMessage: group.customMessage } }); } @@ -202,11 +237,12 @@ module.exports = { /** * Check if the given importSource is restricted by a pattern. * @param {string} importSource path of the import + * @param {Object} group contains a Ignore instance for paths, and the customMessage to show if it fails * @returns {boolean} whether the variable is a restricted pattern or not * @private */ - function isRestrictedPattern(importSource) { - return restrictedPatterns.length > 0 && restrictedPatternsMatcher.ignores(importSource); + function isRestrictedPattern(importSource, group) { + return group.matcher.ignores(importSource); } /** @@ -249,10 +285,11 @@ module.exports = { } checkRestrictedPathAndReport(importSource, importNames, node); - - if (isRestrictedPattern(importSource)) { - reportPathForPatterns(node); - } + restrictedPatternGroups.forEach(group => { + if (isRestrictedPattern(importSource, group)) { + reportPathForPatterns(node, group); + } + }); } return { diff --git a/node_modules/eslint/lib/rules/no-script-url.js b/node_modules/eslint/lib/rules/no-script-url.js index 2078fc1dce..0c82052440 100644 --- a/node_modules/eslint/lib/rules/no-script-url.js +++ b/node_modules/eslint/lib/rules/no-script-url.js @@ -7,6 +7,8 @@ "use strict"; +const astUtils = require("./utils/ast-utils"); + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -31,18 +33,30 @@ module.exports = { create(context) { + /** + * Check whether a node's static value starts with "javascript:" or not. + * And report an error for unexpected script URL. + * @param {ASTNode} node node to check + * @returns {void} + */ + function check(node) { + const value = astUtils.getStaticStringValue(node); + + if (typeof value === "string" && value.toLowerCase().indexOf("javascript:") === 0) { + context.report({ node, messageId: "unexpectedScriptURL" }); + } + } return { - Literal(node) { if (node.value && typeof node.value === "string") { - const value = node.value.toLowerCase(); - - if (value.indexOf("javascript:") === 0) { - context.report({ node, messageId: "unexpectedScriptURL" }); - } + check(node); + } + }, + TemplateLiteral(node) { + if (!(node.parent && node.parent.type === "TaggedTemplateExpression")) { + check(node); } } }; - } }; diff --git a/node_modules/eslint/lib/rules/no-sequences.js b/node_modules/eslint/lib/rules/no-sequences.js index d67635d117..fe516975fb 100644 --- a/node_modules/eslint/lib/rules/no-sequences.js +++ b/node_modules/eslint/lib/rules/no-sequences.js @@ -11,6 +11,14 @@ const astUtils = require("./utils/ast-utils"); +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const DEFAULT_OPTIONS = { + allowInParentheses: true +}; + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -26,7 +34,15 @@ module.exports = { url: "https://eslint.org/docs/rules/no-sequences" }, - schema: [], + schema: [{ + properties: { + allowInParentheses: { + type: "boolean", + default: true + } + }, + additionalProperties: false + }], messages: { unexpectedCommaExpression: "Unexpected use of comma operator." @@ -34,6 +50,7 @@ module.exports = { }, create(context) { + const options = Object.assign({}, DEFAULT_OPTIONS, context.options[0]); const sourceCode = context.getSourceCode(); /** @@ -99,13 +116,15 @@ module.exports = { } // Wrapping a sequence in extra parens indicates intent - if (requiresExtraParens(node)) { - if (isParenthesisedTwice(node)) { - return; - } - } else { - if (isParenthesised(node)) { - return; + if (options.allowInParentheses) { + if (requiresExtraParens(node)) { + if (isParenthesisedTwice(node)) { + return; + } + } else { + if (isParenthesised(node)) { + return; + } } } diff --git a/node_modules/eslint/lib/rules/no-shadow.js b/node_modules/eslint/lib/rules/no-shadow.js index 1be8590e47..a0b1db50c0 100644 --- a/node_modules/eslint/lib/rules/no-shadow.js +++ b/node_modules/eslint/lib/rules/no-shadow.js @@ -44,7 +44,8 @@ module.exports = { ], messages: { - noShadow: "'{{name}}' is already declared in the upper scope." + noShadow: "'{{name}}' is already declared in the upper scope on line {{shadowedLine}} column {{shadowedColumn}}.", + noShadowGlobal: "'{{name}}' is already a global variable." } }, @@ -117,6 +118,29 @@ module.exports = { return def && def.name.range; } + /** + * Get declared line and column of a variable. + * @param {eslint-scope.Variable} variable The variable to get. + * @returns {Object} The declared line and column of the variable. + */ + function getDeclaredLocation(variable) { + const identifier = variable.identifiers[0]; + let obj; + + if (identifier) { + obj = { + global: false, + line: identifier.loc.start.line, + column: identifier.loc.start.column + 1 + }; + } else { + obj = { + global: true + }; + } + return obj; + } + /** * Checks if a variable is in TDZ of scopeVar. * @param {Object} variable The variable to check. @@ -165,10 +189,18 @@ module.exports = { !isOnInitializer(variable, shadowed) && !(options.hoist !== "all" && isInTdz(variable, shadowed)) ) { + const location = getDeclaredLocation(shadowed); + const messageId = location.global ? "noShadowGlobal" : "noShadow"; + const data = { name: variable.name }; + + if (!location.global) { + data.shadowedLine = location.line; + data.shadowedColumn = location.column; + } context.report({ node: variable.identifiers[0], - messageId: "noShadow", - data: variable + messageId, + data }); } } diff --git a/node_modules/eslint/lib/rules/no-this-before-super.js b/node_modules/eslint/lib/rules/no-this-before-super.js index 44288c0c97..5bfba66fc6 100644 --- a/node_modules/eslint/lib/rules/no-this-before-super.js +++ b/node_modules/eslint/lib/rules/no-this-before-super.js @@ -171,7 +171,7 @@ module.exports = { /** * Removes the top of stack item. * - * And this treverses all segments of this code path then reports every + * And this traverses all segments of this code path then reports every * invalid node. * @param {CodePath} codePath A code path which was ended. * @returns {void} diff --git a/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js b/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js new file mode 100644 index 0000000000..2eafc1ad8f --- /dev/null +++ b/node_modules/eslint/lib/rules/no-unsafe-optional-chaining.js @@ -0,0 +1,205 @@ +/** + * @fileoverview Rule to disallow unsafe optional chaining + * @author Yeon JuAn + */ + +"use strict"; + +const UNSAFE_ARITHMETIC_OPERATORS = new Set(["+", "-", "/", "*", "%", "**"]); +const UNSAFE_ASSIGNMENT_OPERATORS = new Set(["+=", "-=", "/=", "*=", "%=", "**="]); +const UNSAFE_RELATIONAL_OPERATORS = new Set(["in", "instanceof"]); + +/** + * Checks whether a node is a destructuring pattern or not + * @param {ASTNode} node node to check + * @returns {boolean} `true` if a node is a destructuring pattern, otherwise `false` + */ +function isDestructuringPattern(node) { + return node.type === "ObjectPattern" || node.type === "ArrayPattern"; +} + +module.exports = { + meta: { + type: "problem", + + docs: { + description: "disallow use of optional chaining in contexts where the `undefined` value is not allowed", + category: "Possible Errors", + recommended: false, + url: "https://eslint.org/docs/rules/no-unsafe-optional-chaining" + }, + schema: [{ + type: "object", + properties: { + disallowArithmeticOperators: { + type: "boolean", + default: false + } + }, + additionalProperties: false + }], + fixable: null, + messages: { + unsafeOptionalChain: "Unsafe usage of optional chaining. If it short-circuits with 'undefined' the evaluation will throw TypeError.", + unsafeArithmetic: "Unsafe arithmetic operation on optional chaining. It can result in NaN." + } + }, + + create(context) { + const options = context.options[0] || {}; + const disallowArithmeticOperators = (options.disallowArithmeticOperators) || false; + + /** + * Reports unsafe usage of optional chaining + * @param {ASTNode} node node to report + * @returns {void} + */ + function reportUnsafeUsage(node) { + context.report({ + messageId: "unsafeOptionalChain", + node + }); + } + + /** + * Reports unsafe arithmetic operation on optional chaining + * @param {ASTNode} node node to report + * @returns {void} + */ + function reportUnsafeArithmetic(node) { + context.report({ + messageId: "unsafeArithmetic", + node + }); + } + + /** + * Checks and reports if a node can short-circuit with `undefined` by optional chaining. + * @param {ASTNode} [node] node to check + * @param {Function} reportFunc report function + * @returns {void} + */ + function checkUndefinedShortCircuit(node, reportFunc) { + if (!node) { + return; + } + switch (node.type) { + case "LogicalExpression": + if (node.operator === "||" || node.operator === "??") { + checkUndefinedShortCircuit(node.right, reportFunc); + } else if (node.operator === "&&") { + checkUndefinedShortCircuit(node.left, reportFunc); + checkUndefinedShortCircuit(node.right, reportFunc); + } + break; + case "SequenceExpression": + checkUndefinedShortCircuit( + node.expressions[node.expressions.length - 1], + reportFunc + ); + break; + case "ConditionalExpression": + checkUndefinedShortCircuit(node.consequent, reportFunc); + checkUndefinedShortCircuit(node.alternate, reportFunc); + break; + case "AwaitExpression": + checkUndefinedShortCircuit(node.argument, reportFunc); + break; + case "ChainExpression": + reportFunc(node); + break; + default: + break; + } + } + + /** + * Checks unsafe usage of optional chaining + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkUnsafeUsage(node) { + checkUndefinedShortCircuit(node, reportUnsafeUsage); + } + + /** + * Checks unsafe arithmetic operations on optional chaining + * @param {ASTNode} node node to check + * @returns {void} + */ + function checkUnsafeArithmetic(node) { + checkUndefinedShortCircuit(node, reportUnsafeArithmetic); + } + + return { + "AssignmentExpression, AssignmentPattern"(node) { + if (isDestructuringPattern(node.left)) { + checkUnsafeUsage(node.right); + } + }, + "ClassDeclaration, ClassExpression"(node) { + checkUnsafeUsage(node.superClass); + }, + CallExpression(node) { + if (!node.optional) { + checkUnsafeUsage(node.callee); + } + }, + NewExpression(node) { + checkUnsafeUsage(node.callee); + }, + VariableDeclarator(node) { + if (isDestructuringPattern(node.id)) { + checkUnsafeUsage(node.init); + } + }, + MemberExpression(node) { + if (!node.optional) { + checkUnsafeUsage(node.object); + } + }, + TaggedTemplateExpression(node) { + checkUnsafeUsage(node.tag); + }, + ForOfStatement(node) { + checkUnsafeUsage(node.right); + }, + SpreadElement(node) { + if (node.parent && node.parent.type !== "ObjectExpression") { + checkUnsafeUsage(node.argument); + } + }, + BinaryExpression(node) { + if (UNSAFE_RELATIONAL_OPERATORS.has(node.operator)) { + checkUnsafeUsage(node.right); + } + if ( + disallowArithmeticOperators && + UNSAFE_ARITHMETIC_OPERATORS.has(node.operator) + ) { + checkUnsafeArithmetic(node.right); + checkUnsafeArithmetic(node.left); + } + }, + WithStatement(node) { + checkUnsafeUsage(node.object); + }, + UnaryExpression(node) { + if ( + disallowArithmeticOperators && + UNSAFE_ARITHMETIC_OPERATORS.has(node.operator) + ) { + checkUnsafeArithmetic(node.argument); + } + }, + AssignmentExpression(node) { + if ( + disallowArithmeticOperators && + UNSAFE_ASSIGNMENT_OPERATORS.has(node.operator) + ) { + checkUnsafeArithmetic(node.right); + } + } + }; + } +}; diff --git a/node_modules/eslint/lib/rules/no-unused-expressions.js b/node_modules/eslint/lib/rules/no-unused-expressions.js index 882a0fd1c1..58c9b33418 100644 --- a/node_modules/eslint/lib/rules/no-unused-expressions.js +++ b/node_modules/eslint/lib/rules/no-unused-expressions.js @@ -50,6 +50,10 @@ module.exports = { allowTaggedTemplates: { type: "boolean", default: false + }, + enforceForJSX: { + type: "boolean", + default: false } }, additionalProperties: false @@ -65,7 +69,8 @@ module.exports = { const config = context.options[0] || {}, allowShortCircuit = config.allowShortCircuit || false, allowTernary = config.allowTernary || false, - allowTaggedTemplates = config.allowTaggedTemplates || false; + allowTaggedTemplates = config.allowTaggedTemplates || false, + enforceForJSX = config.enforceForJSX || false; // eslint-disable-next-line jsdoc/require-description /** @@ -140,6 +145,12 @@ module.exports = { }, FunctionExpression: alwaysTrue, Identifier: alwaysTrue, + JSXElement() { + return enforceForJSX; + }, + JSXFragment() { + return enforceForJSX; + }, Literal: alwaysTrue, LogicalExpression(node) { if (allowShortCircuit) { diff --git a/node_modules/eslint/lib/rules/no-unused-vars.js b/node_modules/eslint/lib/rules/no-unused-vars.js index 4dc6dc2bab..f04818f8e9 100644 --- a/node_modules/eslint/lib/rules/no-unused-vars.js +++ b/node_modules/eslint/lib/rules/no-unused-vars.js @@ -196,6 +196,17 @@ module.exports = { } + /** + * Checks whether a node is a sibling of the rest property or not. + * @param {ASTNode} node a node to check + * @returns {boolean} True if the node is a sibling of the rest property, otherwise false. + */ + function hasRestSibling(node) { + return node.type === "Property" && + node.parent.type === "ObjectPattern" && + REST_PROPERTY_TYPE.test(node.parent.properties[node.parent.properties.length - 1].type); + } + /** * Determines if a variable has a sibling rest property * @param {Variable} variable eslint-scope variable object. @@ -204,16 +215,10 @@ module.exports = { */ function hasRestSpreadSibling(variable) { if (config.ignoreRestSiblings) { - return variable.defs.some(def => { - const propertyNode = def.name.parent; - const patternNode = propertyNode.parent; - - return ( - propertyNode.type === "Property" && - patternNode.type === "ObjectPattern" && - REST_PROPERTY_TYPE.test(patternNode.properties[patternNode.properties.length - 1].type) - ); - }); + const hasRestSiblingDefinition = variable.defs.some(def => hasRestSibling(def.name.parent)); + const hasRestSiblingReference = variable.references.some(ref => hasRestSibling(ref.identifier.parent)); + + return hasRestSiblingDefinition || hasRestSiblingReference; } return false; @@ -405,6 +410,31 @@ module.exports = { ); } + /** + * Checks whether a given node is unused expression or not. + * @param {ASTNode} node The node itself + * @returns {boolean} The node is an unused expression. + * @private + */ + function isUnusedExpression(node) { + const parent = node.parent; + + if (parent.type === "ExpressionStatement") { + return true; + } + + if (parent.type === "SequenceExpression") { + const isLastExpression = parent.expressions[parent.expressions.length - 1] === node; + + if (!isLastExpression) { + return true; + } + return isUnusedExpression(parent); + } + + return false; + } + /** * Checks whether a given reference is a read to update itself or not. * @param {eslint-scope.Reference} ref A reference to check. @@ -415,23 +445,28 @@ module.exports = { function isReadForItself(ref, rhsNode) { const id = ref.identifier; const parent = id.parent; - const grandparent = parent.parent; return ref.isRead() && ( // self update. e.g. `a += 1`, `a++` - (// in RHS of an assignment for itself. e.g. `a = a + 1` - (( + ( + ( parent.type === "AssignmentExpression" && - grandparent.type === "ExpressionStatement" && - parent.left === id + parent.left === id && + isUnusedExpression(parent) ) || + ( + parent.type === "UpdateExpression" && + isUnusedExpression(parent) + ) + ) || + + // in RHS of an assignment for itself. e.g. `a = a + 1` ( - parent.type === "UpdateExpression" && - grandparent.type === "ExpressionStatement" - ) || rhsNode && - isInside(id, rhsNode) && - !isInsideOfStorableFunction(id, rhsNode))) + rhsNode && + isInside(id, rhsNode) && + !isInsideOfStorableFunction(id, rhsNode) + ) ); } @@ -619,10 +654,18 @@ module.exports = { // Report the first declaration. if (unusedVar.defs.length > 0) { + + // report last write reference, https://github.com/eslint/eslint/issues/14324 + const writeReferences = unusedVar.references.filter(ref => ref.isWrite() && ref.from.variableScope === unusedVar.scope.variableScope); + + let referenceToReport; + + if (writeReferences.length > 0) { + referenceToReport = writeReferences[writeReferences.length - 1]; + } + context.report({ - node: unusedVar.references.length ? unusedVar.references[ - unusedVar.references.length - 1 - ].identifier : unusedVar.identifiers[0], + node: referenceToReport ? referenceToReport.identifier : unusedVar.identifiers[0], messageId: "unusedVar", data: unusedVar.references.some(ref => ref.isWrite()) ? getAssignedMessageData(unusedVar) diff --git a/node_modules/eslint/lib/rules/no-useless-backreference.js b/node_modules/eslint/lib/rules/no-useless-backreference.js index 958e3d5dd4..529c16439e 100644 --- a/node_modules/eslint/lib/rules/no-useless-backreference.js +++ b/node_modules/eslint/lib/rules/no-useless-backreference.js @@ -11,7 +11,6 @@ const { CALL, CONSTRUCT, ReferenceTracker, getStringIfConstant } = require("eslint-utils"); const { RegExpParser, visitRegExpAST } = require("regexpp"); -const lodash = require("lodash"); //------------------------------------------------------------------------------ // Helpers @@ -137,7 +136,7 @@ module.exports = { // the opposite of the previous when the regex is matching backward in a lookbehind context. messageId = "backward"; - } else if (lodash.last(groupCut).type === "Alternative") { + } else if (groupCut[groupCut.length - 1].type === "Alternative") { // group's and bref's ancestor nodes below the lowest common ancestor are sibling alternatives => they're disjunctive. messageId = "disjunctive"; diff --git a/node_modules/eslint/lib/rules/no-useless-computed-key.js b/node_modules/eslint/lib/rules/no-useless-computed-key.js index e0505a318e..a1cacc2961 100644 --- a/node_modules/eslint/lib/rules/no-useless-computed-key.js +++ b/node_modules/eslint/lib/rules/no-useless-computed-key.js @@ -8,7 +8,6 @@ // Requirements //------------------------------------------------------------------------------ -const lodash = require("lodash"); const astUtils = require("./utils/ast-utils"); //------------------------------------------------------------------------------ @@ -95,9 +94,16 @@ module.exports = { } } + /** + * A no-op function to act as placeholder for checking a node when the `enforceForClassMembers` option is `false`. + * @returns {void} + * @private + */ + function noop() {} + return { Property: check, - MethodDefinition: enforceForClassMembers ? check : lodash.noop + MethodDefinition: enforceForClassMembers ? check : noop }; } }; diff --git a/node_modules/eslint/lib/rules/no-useless-constructor.js b/node_modules/eslint/lib/rules/no-useless-constructor.js index 4c34aeda71..baabe7ec80 100644 --- a/node_modules/eslint/lib/rules/no-useless-constructor.js +++ b/node_modules/eslint/lib/rules/no-useless-constructor.js @@ -162,6 +162,14 @@ module.exports = { return; } + /* + * Prevent crashing on parsers which do not require class constructor + * to have a body, e.g. typescript and flow + */ + if (!node.value.body) { + return; + } + const body = node.value.body.body; const ctorParams = node.value.params; const superClass = node.parent.parent.superClass; diff --git a/node_modules/eslint/lib/rules/no-useless-escape.js b/node_modules/eslint/lib/rules/no-useless-escape.js index 8057e44dda..512c93a8bc 100644 --- a/node_modules/eslint/lib/rules/no-useless-escape.js +++ b/node_modules/eslint/lib/rules/no-useless-escape.js @@ -109,9 +109,9 @@ module.exports = { * @returns {void} */ function report(node, startOffset, character) { - const start = sourceCode.getLocFromIndex(sourceCode.getIndexFromLoc(node.loc.start) + startOffset); - const rangeStart = sourceCode.getIndexFromLoc(node.loc.start) + startOffset; + const rangeStart = node.range[0] + startOffset; const range = [rangeStart, rangeStart + 1]; + const start = sourceCode.getLocFromIndex(rangeStart); context.report({ node, @@ -172,7 +172,7 @@ module.exports = { } if (isUnnecessaryEscape && !isQuoteEscape) { - report(node, match.index + 1, match[0].slice(1)); + report(node, match.index, match[0].slice(1)); } } @@ -206,7 +206,7 @@ module.exports = { return; } - const value = isTemplateElement ? node.value.raw : node.raw.slice(1, -1); + const value = isTemplateElement ? sourceCode.getText(node) : node.raw; const pattern = /\\[^\d]/gu; let match; diff --git a/node_modules/eslint/lib/rules/no-useless-rename.js b/node_modules/eslint/lib/rules/no-useless-rename.js index fa88f37f50..a7cec025da 100644 --- a/node_modules/eslint/lib/rules/no-useless-rename.js +++ b/node_modules/eslint/lib/rules/no-useless-rename.js @@ -5,6 +5,12 @@ "use strict"; +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -54,11 +60,10 @@ module.exports = { * Reports error for unnecessarily renamed assignments * @param {ASTNode} node node to report * @param {ASTNode} initial node with initial name value - * @param {ASTNode} result node with new name value * @param {string} type the type of the offending node * @returns {void} */ - function reportError(node, initial, result, type) { + function reportError(node, initial, type) { const name = initial.type === "Identifier" ? initial.name : initial.value; return context.report({ @@ -69,18 +74,21 @@ module.exports = { type }, fix(fixer) { - if (sourceCode.commentsExistBetween(initial, result)) { + const replacementNode = node.type === "Property" ? node.value : node.local; + + if (sourceCode.getCommentsInside(node).length > sourceCode.getCommentsInside(replacementNode).length) { return null; } - const replacementText = result.type === "AssignmentPattern" - ? sourceCode.getText(result) - : name; + // Don't autofix code such as `({foo: (foo) = a} = obj);`, parens are not allowed in shorthand properties. + if ( + replacementNode.type === "AssignmentPattern" && + astUtils.isParenthesised(sourceCode, replacementNode.left) + ) { + return null; + } - return fixer.replaceTextRange([ - initial.range[0], - result.range[1] - ], replacementText); + return fixer.replaceText(node, sourceCode.getText(replacementNode)); } }); } @@ -97,19 +105,11 @@ module.exports = { for (const property of node.properties) { - /* - * TODO: Remove after babel-eslint removes ExperimentalRestProperty - * https://github.com/eslint/eslint/issues/12335 - */ - if (property.type === "ExperimentalRestProperty") { - continue; - } - /** * Properties using shorthand syntax and rest elements can not be renamed. * If the property is computed, we have no idea if a rename is useless or not. */ - if (property.shorthand || property.type === "RestElement" || property.computed) { + if (property.type !== "Property" || property.shorthand || property.computed) { continue; } @@ -117,7 +117,7 @@ module.exports = { const renamedKey = property.value.type === "AssignmentPattern" ? property.value.left.name : property.value.name; if (key === renamedKey) { - reportError(property, property.key, property.value, "Destructuring assignment"); + reportError(property, property.key, "Destructuring assignment"); } } } @@ -134,7 +134,7 @@ module.exports = { if (node.imported.name === node.local.name && node.imported.range[0] !== node.local.range[0]) { - reportError(node, node.imported, node.local, "Import"); + reportError(node, node.imported, "Import"); } } @@ -150,7 +150,7 @@ module.exports = { if (node.local.name === node.exported.name && node.local.range[0] !== node.exported.range[0]) { - reportError(node, node.local, node.exported, "Export"); + reportError(node, node.local, "Export"); } } diff --git a/node_modules/eslint/lib/rules/no-warning-comments.js b/node_modules/eslint/lib/rules/no-warning-comments.js index 0691a31f77..e5f702bc7d 100644 --- a/node_modules/eslint/lib/rules/no-warning-comments.js +++ b/node_modules/eslint/lib/rules/no-warning-comments.js @@ -5,7 +5,7 @@ "use strict"; -const { escapeRegExp } = require("lodash"); +const escapeRegExp = require("escape-string-regexp"); const astUtils = require("./utils/ast-utils"); const CHAR_LIMIT = 40; diff --git a/node_modules/eslint/lib/rules/object-curly-newline.js b/node_modules/eslint/lib/rules/object-curly-newline.js index 616d59851d..1fbea00c5d 100644 --- a/node_modules/eslint/lib/rules/object-curly-newline.js +++ b/node_modules/eslint/lib/rules/object-curly-newline.js @@ -10,7 +10,6 @@ //------------------------------------------------------------------------------ const astUtils = require("./utils/ast-utils"); -const lodash = require("lodash"); //------------------------------------------------------------------------------ // Helpers @@ -69,6 +68,24 @@ function normalizeOptionValue(value) { return { multiline, minProperties, consistent }; } +/** + * Checks if a value is an object. + * @param {any} value The value to check + * @returns {boolean} `true` if the value is an object, otherwise `false` + */ +function isObject(value) { + return typeof value === "object" && value !== null; +} + +/** + * Checks if an option is a node-specific option + * @param {any} option The option to check + * @returns {boolean} `true` if the option is node-specific, otherwise `false` + */ +function isNodeSpecificOption(option) { + return isObject(option) || typeof option === "string"; +} + /** * Normalizes a given option value. * @param {string|Object|undefined} options An option value to parse. @@ -80,9 +97,7 @@ function normalizeOptionValue(value) { * }} Normalized option object. */ function normalizeOptions(options) { - const isNodeSpecificOption = lodash.overSome([lodash.isPlainObject, lodash.isString]); - - if (lodash.isPlainObject(options) && lodash.some(options, isNodeSpecificOption)) { + if (isObject(options) && Object.values(options).some(isNodeSpecificOption)) { return { ObjectExpression: normalizeOptionValue(options.ObjectExpression), ObjectPattern: normalizeOptionValue(options.ObjectPattern), @@ -134,7 +149,7 @@ module.exports = { type: "layout", docs: { - description: "enforce consistent line breaks inside braces", + description: "enforce consistent line breaks after opening and before closing braces", category: "Stylistic Issues", recommended: false, url: "https://eslint.org/docs/rules/object-curly-newline" diff --git a/node_modules/eslint/lib/rules/one-var.js b/node_modules/eslint/lib/rules/one-var.js index c31a0d2b13..e3df8320f8 100644 --- a/node_modules/eslint/lib/rules/one-var.js +++ b/node_modules/eslint/lib/rules/one-var.js @@ -5,6 +5,25 @@ "use strict"; +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Determines whether the given node is in a statement list. + * @param {ASTNode} node node to check + * @returns {boolean} `true` if the given node is in a statement list + */ +function isInStatementList(node) { + return astUtils.STATEMENT_LIST_PARENTS.has(node.parent.type); +} + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -268,8 +287,8 @@ module.exports = { /** * Fixer to join VariableDeclaration's into a single declaration - * @param {VariableDeclarator[]} declarations The `VariableDeclaration` to join - * @returns {Function} The fixer function + * @param {VariableDeclarator[]} declarations The `VariableDeclaration` to join + * @returns {Function} The fixer function */ function joinDeclarations(declarations) { const declaration = declarations[0]; @@ -297,10 +316,17 @@ module.exports = { /** * Fixer to split a VariableDeclaration into individual declarations - * @param {VariableDeclaration} declaration The `VariableDeclaration` to split - * @returns {Function} The fixer function + * @param {VariableDeclaration} declaration The `VariableDeclaration` to split + * @returns {Function|null} The fixer function */ function splitDeclarations(declaration) { + const { parent } = declaration; + + // don't autofix code such as: if (foo) var x, y; + if (!isInStatementList(parent.type === "ExportNamedDeclaration" ? parent : declaration)) { + return null; + } + return fixer => declaration.declarations.map(declarator => { const tokenAfterDeclarator = sourceCode.getTokenAfter(declarator); @@ -314,12 +340,14 @@ module.exports = { return null; } + const exportPlacement = declaration.parent.type === "ExportNamedDeclaration" ? "export " : ""; + /* * `var x,y` * tokenAfterDeclarator ^^ afterComma */ if (afterComma.range[0] === tokenAfterDeclarator.range[1]) { - return fixer.replaceText(tokenAfterDeclarator, `; ${declaration.kind} `); + return fixer.replaceText(tokenAfterDeclarator, `; ${exportPlacement}${declaration.kind} `); } /* @@ -341,11 +369,11 @@ module.exports = { return fixer.replaceTextRange( [tokenAfterDeclarator.range[0], lastComment.range[0]], - `;${sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])}${declaration.kind} ` + `;${sourceCode.text.slice(tokenAfterDeclarator.range[1], lastComment.range[0])}${exportPlacement}${declaration.kind} ` ); } - return fixer.replaceText(tokenAfterDeclarator, `; ${declaration.kind}`); + return fixer.replaceText(tokenAfterDeclarator, `; ${exportPlacement}${declaration.kind}`); }).filter(x => x); } diff --git a/node_modules/eslint/lib/rules/operator-assignment.js b/node_modules/eslint/lib/rules/operator-assignment.js index fdb0884922..a48d272519 100644 --- a/node_modules/eslint/lib/rules/operator-assignment.js +++ b/node_modules/eslint/lib/rules/operator-assignment.js @@ -76,8 +76,8 @@ module.exports = { fixable: "code", messages: { - replaced: "Assignment can be replaced with operator assignment.", - unexpected: "Unexpected operator assignment shorthand." + replaced: "Assignment (=) can be replaced with operator assignment ({{operator}}=).", + unexpected: "Unexpected operator assignment ({{operator}}=) shorthand." } }, @@ -113,6 +113,7 @@ module.exports = { context.report({ node, messageId: "replaced", + data: { operator }, fix(fixer) { if (canBeFixed(left) && canBeFixed(expr.left)) { const equalsToken = getOperatorToken(node); @@ -139,7 +140,8 @@ module.exports = { */ context.report({ node, - messageId: "replaced" + messageId: "replaced", + data: { operator } }); } } @@ -155,6 +157,7 @@ module.exports = { context.report({ node, messageId: "unexpected", + data: { operator: node.operator }, fix(fixer) { if (canBeFixed(node.left)) { const firstToken = sourceCode.getFirstToken(node); diff --git a/node_modules/eslint/lib/rules/prefer-arrow-callback.js b/node_modules/eslint/lib/rules/prefer-arrow-callback.js index ee5cfe3c8c..a01c034082 100644 --- a/node_modules/eslint/lib/rules/prefer-arrow-callback.js +++ b/node_modules/eslint/lib/rules/prefer-arrow-callback.js @@ -295,7 +295,7 @@ module.exports = { * If the callback function has duplicates in its list of parameters (possible in sloppy mode), * don't replace it with an arrow function, because this is a SyntaxError with arrow functions. */ - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } // Remove `.bind(this)` if exists. @@ -307,7 +307,7 @@ module.exports = { * E.g. `(foo || function(){}).bind(this)` */ if (memberNode.type !== "MemberExpression") { - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } const callNode = memberNode.parent; @@ -320,12 +320,12 @@ module.exports = { * ^^^^^^^^^^^^ */ if (astUtils.isParenthesised(sourceCode, memberNode)) { - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } // If comments exist in the `.bind(this)`, don't remove those. if (sourceCode.commentsExistBetween(firstTokenToRemove, lastTokenToRemove)) { - return; // eslint-disable-line eslint-plugin/fixer-return -- false positive + return; } yield fixer.removeRange([firstTokenToRemove.range[0], lastTokenToRemove.range[1]]); diff --git a/node_modules/eslint/lib/rules/prefer-const.js b/node_modules/eslint/lib/rules/prefer-const.js index 439a4db3c9..f6e79e71c3 100644 --- a/node_modules/eslint/lib/rules/prefer-const.js +++ b/node_modules/eslint/lib/rules/prefer-const.js @@ -5,6 +5,11 @@ "use strict"; +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const FixTracker = require("./utils/fix-tracker"); const astUtils = require("./utils/ast-utils"); //------------------------------------------------------------------------------ @@ -451,10 +456,18 @@ module.exports = { messageId: "useConst", data: node, fix: shouldFix - ? fixer => fixer.replaceText( - sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind), - "const" - ) + ? fixer => { + const letKeywordToken = sourceCode.getFirstToken(varDeclParent, t => t.value === varDeclParent.kind); + + /** + * Extend the replacement range to the whole declaration, + * in order to prevent other fixes in the same pass + * https://github.com/eslint/eslint/issues/13899 + */ + return new FixTracker(fixer, sourceCode) + .retainRange(varDeclParent.range) + .replaceTextRange(letKeywordToken.range, "const"); + } : null }); }); diff --git a/node_modules/eslint/lib/rules/prefer-destructuring.js b/node_modules/eslint/lib/rules/prefer-destructuring.js index d3314dc7e0..f82bb75c12 100644 --- a/node_modules/eslint/lib/rules/prefer-destructuring.js +++ b/node_modules/eslint/lib/rules/prefer-destructuring.js @@ -4,6 +4,18 @@ */ "use strict"; +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + +const astUtils = require("./utils/ast-utils"); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +const PRECEDENCE_OF_ASSIGNMENT_EXPR = astUtils.getPrecedence({ type: "AssignmentExpression" }); + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -156,13 +168,15 @@ module.exports = { * Assignment expression is not fixed. * Array destructuring is not fixed. * Renamed property is not fixed. - * @param {ASTNode} node the the node to evaluate + * @param {ASTNode} node the node to evaluate * @returns {boolean} whether or not the node should be fixed */ function shouldFix(node) { return node.type === "VariableDeclarator" && node.id.type === "Identifier" && node.init.type === "MemberExpression" && + !node.init.computed && + node.init.property.type === "Identifier" && node.id.name === node.init.property.name; } @@ -183,9 +197,15 @@ module.exports = { return null; } + let objectText = sourceCode.getText(rightNode.object); + + if (astUtils.getPrecedence(rightNode.object) < PRECEDENCE_OF_ASSIGNMENT_EXPR) { + objectText = `(${objectText})`; + } + return fixer.replaceText( node, - `{${rightNode.property.name}} = ${sourceCode.getText(rightNode.object)}` + `{${rightNode.property.name}} = ${objectText}` ); } @@ -259,7 +279,7 @@ module.exports = { * @param {ASTNode} node the AssignmentExpression node * @returns {void} */ - function checkAssigmentExpression(node) { + function checkAssignmentExpression(node) { if (node.operator === "=") { performCheck(node.left, node.right, node); } @@ -271,7 +291,7 @@ module.exports = { return { VariableDeclarator: checkVariableDeclarator, - AssignmentExpression: checkAssigmentExpression + AssignmentExpression: checkAssignmentExpression }; } }; diff --git a/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js b/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js index d1a00d6209..6121af8897 100644 --- a/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js +++ b/node_modules/eslint/lib/rules/prefer-exponentiation-operator.js @@ -30,6 +30,7 @@ function doesBaseNeedParens(base) { astUtils.getPrecedence(base) <= PRECEDENCE_OF_EXPONENTIATION_EXPR || // An unary operator cannot be used immediately before an exponentiation expression + base.type === "AwaitExpression" || base.type === "UnaryExpression" ); } diff --git a/node_modules/eslint/lib/rules/prefer-reflect.js b/node_modules/eslint/lib/rules/prefer-reflect.js index fb2de923be..156d61251c 100644 --- a/node_modules/eslint/lib/rules/prefer-reflect.js +++ b/node_modules/eslint/lib/rules/prefer-reflect.js @@ -105,10 +105,10 @@ module.exports = { CallExpression(node) { const methodName = (node.callee.property || {}).name; const isReflectCall = (node.callee.object || {}).name === "Reflect"; - const hasReflectSubsitute = Object.prototype.hasOwnProperty.call(reflectSubstitutes, methodName); + const hasReflectSubstitute = Object.prototype.hasOwnProperty.call(reflectSubstitutes, methodName); const userConfiguredException = exceptions.indexOf(methodName) !== -1; - if (hasReflectSubsitute && !isReflectCall && !userConfiguredException) { + if (hasReflectSubstitute && !isReflectCall && !userConfiguredException) { report(node, existingNames[methodName], reflectSubstitutes[methodName]); } }, diff --git a/node_modules/eslint/lib/rules/prefer-template.js b/node_modules/eslint/lib/rules/prefer-template.js index e8f980ebd3..cb967660a6 100644 --- a/node_modules/eslint/lib/rules/prefer-template.js +++ b/node_modules/eslint/lib/rules/prefer-template.js @@ -39,33 +39,25 @@ function getTopConcatBinaryExpression(node) { } /** - * Determines whether a given node is a octal escape sequence + * Checks whether or not a node contains a string literal with an octal or non-octal decimal escape sequence * @param {ASTNode} node A node to check - * @returns {boolean} `true` if the node is an octal escape sequence + * @returns {boolean} `true` if at least one string literal within the node contains + * an octal or non-octal decimal escape sequence */ -function isOctalEscapeSequence(node) { - - // No need to check TemplateLiterals – would throw error with octal escape - const isStringLiteral = node.type === "Literal" && typeof node.value === "string"; - - if (!isStringLiteral) { - return false; +function hasOctalOrNonOctalDecimalEscapeSequence(node) { + if (isConcatenation(node)) { + return ( + hasOctalOrNonOctalDecimalEscapeSequence(node.left) || + hasOctalOrNonOctalDecimalEscapeSequence(node.right) + ); } - return astUtils.hasOctalEscapeSequence(node.raw); -} - -/** - * Checks whether or not a node contains a octal escape sequence - * @param {ASTNode} node A node to check - * @returns {boolean} `true` if the node contains an octal escape sequence - */ -function hasOctalEscapeSequence(node) { - if (isConcatenation(node)) { - return hasOctalEscapeSequence(node.left) || hasOctalEscapeSequence(node.right); + // No need to check TemplateLiterals – would throw parsing error + if (node.type === "Literal" && typeof node.value === "string") { + return astUtils.hasOctalOrNonOctalDecimalEscapeSequence(node.raw); } - return isOctalEscapeSequence(node); + return false; } /** @@ -237,7 +229,7 @@ module.exports = { function fixNonStringBinaryExpression(fixer, node) { const topBinaryExpr = getTopConcatBinaryExpression(node.parent); - if (hasOctalEscapeSequence(topBinaryExpr)) { + if (hasOctalOrNonOctalDecimalEscapeSequence(topBinaryExpr)) { return null; } diff --git a/node_modules/eslint/lib/rules/quotes.js b/node_modules/eslint/lib/rules/quotes.js index d1f4443b90..da7e127493 100644 --- a/node_modules/eslint/lib/rules/quotes.js +++ b/node_modules/eslint/lib/rules/quotes.js @@ -282,9 +282,12 @@ module.exports = { description: settings.description }, fix(fixer) { - if (quoteOption === "backtick" && astUtils.hasOctalEscapeSequence(rawVal)) { + if (quoteOption === "backtick" && astUtils.hasOctalOrNonOctalDecimalEscapeSequence(rawVal)) { - // An octal escape sequence in a template literal would produce syntax error, even in non-strict mode. + /* + * An octal or non-octal decimal escape sequence in a template literal would + * produce syntax error, even in non-strict mode. + */ return null; } diff --git a/node_modules/eslint/lib/rules/radix.js b/node_modules/eslint/lib/rules/radix.js index e322566238..d1b67e5e28 100644 --- a/node_modules/eslint/lib/rules/radix.js +++ b/node_modules/eslint/lib/rules/radix.js @@ -82,7 +82,8 @@ module.exports = { description: "enforce the consistent use of the radix argument when using `parseInt()`", category: "Best Practices", recommended: false, - url: "https://eslint.org/docs/rules/radix" + url: "https://eslint.org/docs/rules/radix", + suggestion: true }, schema: [ @@ -95,7 +96,8 @@ module.exports = { missingParameters: "Missing parameters.", redundantRadix: "Redundant radix parameter.", missingRadix: "Missing radix parameter.", - invalidRadix: "Invalid radix parameter, must be an integer between 2 and 36." + invalidRadix: "Invalid radix parameter, must be an integer between 2 and 36.", + addRadixParameter10: "Add radix parameter `10` for parsing decimal numbers." } }, @@ -123,7 +125,21 @@ module.exports = { if (mode === MODE_ALWAYS) { context.report({ node, - messageId: "missingRadix" + messageId: "missingRadix", + suggest: [ + { + messageId: "addRadixParameter10", + fix(fixer) { + const sourceCode = context.getSourceCode(); + const tokens = sourceCode.getTokens(node); + const lastToken = tokens[tokens.length - 1]; // Parenthesis. + const secondToLastToken = tokens[tokens.length - 2]; // May or may not be a comma. + const hasTrailingComma = secondToLastToken.type === "Punctuator" && secondToLastToken.value === ","; + + return fixer.insertTextBefore(lastToken, hasTrailingComma ? " 10," : ", 10"); + } + } + ] }); } break; diff --git a/node_modules/eslint/lib/rules/require-atomic-updates.js b/node_modules/eslint/lib/rules/require-atomic-updates.js index 4f6acceab8..b3df907420 100644 --- a/node_modules/eslint/lib/rules/require-atomic-updates.js +++ b/node_modules/eslint/lib/rules/require-atomic-updates.js @@ -13,6 +13,10 @@ */ function createReferenceMap(scope, outReferenceMap = new Map()) { for (const reference of scope.references) { + if (reference.resolved === null) { + continue; + } + outReferenceMap.set(reference.identifier, reference); } for (const childScope of scope.childScopes) { @@ -86,39 +90,42 @@ class SegmentInfo { * @returns {void} */ initialize(segment) { - const outdatedReadVariableNames = new Set(); - const freshReadVariableNames = new Set(); + const outdatedReadVariables = new Set(); + const freshReadVariables = new Set(); for (const prevSegment of segment.prevSegments) { const info = this.info.get(prevSegment); if (info) { - info.outdatedReadVariableNames.forEach(Set.prototype.add, outdatedReadVariableNames); - info.freshReadVariableNames.forEach(Set.prototype.add, freshReadVariableNames); + info.outdatedReadVariables.forEach(Set.prototype.add, outdatedReadVariables); + info.freshReadVariables.forEach(Set.prototype.add, freshReadVariables); } } - this.info.set(segment, { outdatedReadVariableNames, freshReadVariableNames }); + this.info.set(segment, { outdatedReadVariables, freshReadVariables }); } /** * Mark a given variable as read on given segments. * @param {PathSegment[]} segments The segments that it read the variable on. - * @param {string} variableName The variable name to be read. + * @param {Variable} variable The variable to be read. * @returns {void} */ - markAsRead(segments, variableName) { + markAsRead(segments, variable) { for (const segment of segments) { const info = this.info.get(segment); if (info) { - info.freshReadVariableNames.add(variableName); + info.freshReadVariables.add(variable); + + // If a variable is freshly read again, then it's no more out-dated. + info.outdatedReadVariables.delete(variable); } } } /** - * Move `freshReadVariableNames` to `outdatedReadVariableNames`. + * Move `freshReadVariables` to `outdatedReadVariables`. * @param {PathSegment[]} segments The segments to process. * @returns {void} */ @@ -127,8 +134,8 @@ class SegmentInfo { const info = this.info.get(segment); if (info) { - info.freshReadVariableNames.forEach(Set.prototype.add, info.outdatedReadVariableNames); - info.freshReadVariableNames.clear(); + info.freshReadVariables.forEach(Set.prototype.add, info.outdatedReadVariables); + info.freshReadVariables.clear(); } } } @@ -136,14 +143,14 @@ class SegmentInfo { /** * Check if a given variable is outdated on the current segments. * @param {PathSegment[]} segments The current segments. - * @param {string} variableName The variable name to check. + * @param {Variable} variable The variable to check. * @returns {boolean} `true` if the variable is outdated on the segments. */ - isOutdated(segments, variableName) { + isOutdated(segments, variable) { for (const segment of segments) { const info = this.info.get(segment); - if (info && info.outdatedReadVariableNames.has(variableName)) { + if (info && info.outdatedReadVariables.has(variable)) { return true; } } @@ -211,14 +218,13 @@ module.exports = { if (!reference) { return; } - const name = reference.identifier.name; const variable = reference.resolved; const writeExpr = getWriteExpr(reference); const isMemberAccess = reference.identifier.parent.type === "MemberExpression"; // Add a fresh read variable. if (reference.isRead() && !(writeExpr && writeExpr.parent.operator === "=")) { - segmentInfo.markAsRead(codePath.currentSegments, name); + segmentInfo.markAsRead(codePath.currentSegments, variable); } /* @@ -242,7 +248,7 @@ module.exports = { /* * Verify assignments. - * If the reference exists in `outdatedReadVariableNames` list, report it. + * If the reference exists in `outdatedReadVariables` list, report it. */ ":expression:exit"(node) { const { codePath, referenceMap } = stack; @@ -264,9 +270,9 @@ module.exports = { assignmentReferences.delete(node); for (const reference of references) { - const name = reference.identifier.name; + const variable = reference.resolved; - if (segmentInfo.isOutdated(codePath.currentSegments, name)) { + if (segmentInfo.isOutdated(codePath.currentSegments, variable)) { context.report({ node: node.parent, messageId: "nonAtomicUpdate", diff --git a/node_modules/eslint/lib/rules/space-before-blocks.js b/node_modules/eslint/lib/rules/space-before-blocks.js index 9b56481bf3..87ef9bfd88 100644 --- a/node_modules/eslint/lib/rules/space-before-blocks.js +++ b/node_modules/eslint/lib/rules/space-before-blocks.js @@ -5,8 +5,31 @@ "use strict"; +//------------------------------------------------------------------------------ +// Requirements +//------------------------------------------------------------------------------ + const astUtils = require("./utils/ast-utils"); +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Checks whether the given node represents the body of a function. + * @param {ASTNode} node the node to check. + * @returns {boolean} `true` if the node is function body. + */ +function isFunctionBody(node) { + const parent = node.parent; + + return ( + node.type === "BlockStatement" && + astUtils.isFunction(parent) && + parent.body === node + ); +} + //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ @@ -82,13 +105,16 @@ module.exports = { } /** - * Checks whether or not a given token is an arrow operator (=>) or a keyword - * in order to avoid to conflict with `arrow-spacing` and `keyword-spacing`. - * @param {Token} token A token to check. - * @returns {boolean} `true` if the token is an arrow operator. + * Checks whether the spacing before the given block is already controlled by another rule: + * - `arrow-spacing` checks spaces after `=>`. + * - `keyword-spacing` checks spaces after keywords in certain contexts. + * @param {Token} precedingToken first token before the block. + * @param {ASTNode|Token} node `BlockStatement` node or `{` token of a `SwitchStatement` node. + * @returns {boolean} `true` if requiring or disallowing spaces before the given block could produce conflicts with other rules. */ - function isConflicted(token) { - return (token.type === "Punctuator" && token.value === "=>") || token.type === "Keyword"; + function isConflicted(precedingToken, node) { + return astUtils.isArrowToken(precedingToken) || + astUtils.isKeywordToken(precedingToken) && !isFunctionBody(node); } /** @@ -99,13 +125,12 @@ module.exports = { function checkPrecedingSpace(node) { const precedingToken = sourceCode.getTokenBefore(node); - if (precedingToken && !isConflicted(precedingToken) && astUtils.isTokenOnSameLine(precedingToken, node)) { + if (precedingToken && !isConflicted(precedingToken, node) && astUtils.isTokenOnSameLine(precedingToken, node)) { const hasSpace = sourceCode.isSpaceBetweenTokens(precedingToken, node); - const parent = context.getAncestors().pop(); let requireSpace; let requireNoSpace; - if (parent.type === "FunctionExpression" || parent.type === "FunctionDeclaration") { + if (isFunctionBody(node)) { requireSpace = alwaysFunctions; requireNoSpace = neverFunctions; } else if (node.type === "ClassBody") { diff --git a/node_modules/eslint/lib/rules/space-infix-ops.js b/node_modules/eslint/lib/rules/space-infix-ops.js index 471c22210e..3c550984fc 100644 --- a/node_modules/eslint/lib/rules/space-infix-ops.js +++ b/node_modules/eslint/lib/rules/space-infix-ops.js @@ -132,7 +132,9 @@ module.exports = { if (nonSpacedConsequentNode) { report(node, nonSpacedConsequentNode); - } else if (nonSpacedAlternateNode) { + } + + if (nonSpacedAlternateNode) { report(node, nonSpacedAlternateNode); } } diff --git a/node_modules/eslint/lib/rules/space-unary-ops.js b/node_modules/eslint/lib/rules/space-unary-ops.js index f417eea58d..57f6e78450 100644 --- a/node_modules/eslint/lib/rules/space-unary-ops.js +++ b/node_modules/eslint/lib/rules/space-unary-ops.js @@ -1,5 +1,5 @@ /** - * @fileoverview This rule shoud require or disallow spaces before or after unary operations. + * @fileoverview This rule should require or disallow spaces before or after unary operations. * @author Marcin Kumorek */ "use strict"; diff --git a/node_modules/eslint/lib/rules/spaced-comment.js b/node_modules/eslint/lib/rules/spaced-comment.js index d3221f0ea7..226a2d4479 100644 --- a/node_modules/eslint/lib/rules/spaced-comment.js +++ b/node_modules/eslint/lib/rules/spaced-comment.js @@ -4,7 +4,7 @@ */ "use strict"; -const lodash = require("lodash"); +const escapeRegExp = require("escape-string-regexp"); const astUtils = require("./utils/ast-utils"); //------------------------------------------------------------------------------ @@ -17,7 +17,7 @@ const astUtils = require("./utils/ast-utils"); * @returns {string} An escaped string. */ function escape(s) { - return `(?:${lodash.escapeRegExp(s)})`; + return `(?:${escapeRegExp(s)})`; } /** diff --git a/node_modules/eslint/lib/rules/use-isnan.js b/node_modules/eslint/lib/rules/use-isnan.js index 53ffeb7e6d..ef95b21314 100644 --- a/node_modules/eslint/lib/rules/use-isnan.js +++ b/node_modules/eslint/lib/rules/use-isnan.js @@ -21,7 +21,10 @@ const astUtils = require("./utils/ast-utils"); * @returns {boolean} `true` if the node is 'NaN' identifier. */ function isNaNIdentifier(node) { - return Boolean(node) && node.type === "Identifier" && node.name === "NaN"; + return Boolean(node) && ( + astUtils.isSpecificId(node, "NaN") || + astUtils.isSpecificMemberAccess(node, "Number", "NaN") + ); } //------------------------------------------------------------------------------ @@ -101,7 +104,7 @@ module.exports = { } /** - * Checks the the given `CallExpression` node for `.indexOf(NaN)` and `.lastIndexOf(NaN)`. + * Checks the given `CallExpression` node for `.indexOf(NaN)` and `.lastIndexOf(NaN)`. * @param {ASTNode} node The node to check. * @returns {void} */ diff --git a/node_modules/eslint/lib/rules/utils/ast-utils.js b/node_modules/eslint/lib/rules/utils/ast-utils.js index fb8beb2521..6b85300113 100644 --- a/node_modules/eslint/lib/rules/utils/ast-utils.js +++ b/node_modules/eslint/lib/rules/utils/ast-utils.js @@ -11,7 +11,7 @@ const esutils = require("esutils"); const espree = require("espree"); -const lodash = require("lodash"); +const escapeRegExp = require("escape-string-regexp"); const { breakableTypePattern, createGlobalLinebreakMatcher, @@ -38,7 +38,9 @@ const LINEBREAKS = new Set(["\r\n", "\r", "\n", "\u2028", "\u2029"]); const STATEMENT_LIST_PARENTS = new Set(["Program", "BlockStatement", "SwitchCase"]); const DECIMAL_INTEGER_PATTERN = /^(?:0|0[0-7]*[89]\d*|[1-9](?:_?\d)*)$/u; -const OCTAL_ESCAPE_PATTERN = /^(?:[^\\]|\\[^0-7]|\\0(?![0-9]))*\\(?:[1-7]|0[0-9])/u; + +// Tests the presence of at least one LegacyOctalEscapeSequence or NonOctalDecimalEscapeSequence in a raw string +const OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN = /^(?:[^\\]|\\.)*\\(?:[1-9]|0[0-9])/su; const LOGICAL_ASSIGNMENT_OPERATORS = new Set(["&&=", "||=", "??="]); @@ -80,7 +82,7 @@ function startsWithUpperCase(s) { /** * Checks whether or not a node is a constructor. * @param {ASTNode} node A function node to check. - * @returns {boolean} Wehether or not a node is a constructor. + * @returns {boolean} Whether or not a node is a constructor. */ function isES5Constructor(node) { return (node.id && startsWithUpperCase(node.id.name)); @@ -1572,7 +1574,7 @@ module.exports = { }, /* - * Determine if a node has a possiblity to be an Error object + * Determine if a node has a possibility to be an Error object * @param {ASTNode} node ASTNode to check * @returns {boolean} True if there is a chance it contains an Error obj */ @@ -1611,6 +1613,17 @@ module.exports = { } case "LogicalExpression": + + /* + * If the && operator short-circuits, the left side was falsy and therefore not an error, and if it + * doesn't short-circuit, it takes the value from the right side, so the right side must always be + * a plausible error. A future improvement could verify that the left side could be truthy by + * excluding falsy literals. + */ + if (node.operator === "&&") { + return module.exports.couldBeError(node.right); + } + return module.exports.couldBeError(node.left) || module.exports.couldBeError(node.right); case "ConditionalExpression": @@ -1743,7 +1756,7 @@ module.exports = { * @returns {SourceLocation} The `loc` object. */ getNameLocationInGlobalDirectiveComment(sourceCode, comment, name) { - const namePattern = new RegExp(`[\\s,]${lodash.escapeRegExp(name)}(?:$|[\\s,:])`, "gu"); + const namePattern = new RegExp(`[\\s,]${escapeRegExp(name)}(?:$|[\\s,:])`, "gu"); // To ignore the first text "global". namePattern.lastIndex = comment.value.indexOf("global") + 6; @@ -1766,17 +1779,19 @@ module.exports = { }, /** - * Determines whether the given raw string contains an octal escape sequence. + * Determines whether the given raw string contains an octal escape sequence + * or a non-octal decimal escape sequence ("\8", "\9"). * - * "\1", "\2" ... "\7" - * "\00", "\01" ... "\09" + * "\1", "\2" ... "\7", "\8", "\9" + * "\00", "\01" ... "\07", "\08", "\09" * * "\0", when not followed by a digit, is not an octal escape sequence. * @param {string} rawString A string in its raw representation. - * @returns {boolean} `true` if the string contains at least one octal escape sequence. + * @returns {boolean} `true` if the string contains at least one octal escape sequence + * or at least one non-octal decimal escape sequence. */ - hasOctalEscapeSequence(rawString) { - return OCTAL_ESCAPE_PATTERN.test(rawString); + hasOctalOrNonOctalDecimalEscapeSequence(rawString) { + return OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN.test(rawString); }, isLogicalExpression, diff --git a/node_modules/eslint/lib/rules/yoda.js b/node_modules/eslint/lib/rules/yoda.js index 87dd5ed6c5..2fca757111 100644 --- a/node_modules/eslint/lib/rules/yoda.js +++ b/node_modules/eslint/lib/rules/yoda.js @@ -265,36 +265,37 @@ module.exports = { * @returns {string} A string representation of the node with the sides and operator flipped */ function getFlippedString(node) { - const tokenBefore = sourceCode.getTokenBefore(node); const operatorToken = sourceCode.getFirstTokenBetween( node.left, node.right, token => token.value === node.operator ); - const textBeforeOperator = sourceCode - .getText() - .slice( - sourceCode.getTokenBefore(operatorToken).range[1], - operatorToken.range[0] - ); - const textAfterOperator = sourceCode - .getText() - .slice( - operatorToken.range[1], - sourceCode.getTokenAfter(operatorToken).range[0] - ); - const leftText = sourceCode - .getText() - .slice( - node.range[0], - sourceCode.getTokenBefore(operatorToken).range[1] - ); + const lastLeftToken = sourceCode.getTokenBefore(operatorToken); const firstRightToken = sourceCode.getTokenAfter(operatorToken); - const rightText = sourceCode - .getText() - .slice(firstRightToken.range[0], node.range[1]); + const source = sourceCode.getText(); + + const leftText = source.slice( + node.range[0], + lastLeftToken.range[1] + ); + const textBeforeOperator = source.slice( + lastLeftToken.range[1], + operatorToken.range[0] + ); + const textAfterOperator = source.slice( + operatorToken.range[1], + firstRightToken.range[0] + ); + const rightText = source.slice( + firstRightToken.range[0], + node.range[1] + ); + + const tokenBefore = sourceCode.getTokenBefore(node); + const tokenAfter = sourceCode.getTokenAfter(node); let prefix = ""; + let suffix = ""; if ( tokenBefore && @@ -304,13 +305,22 @@ module.exports = { prefix = " "; } + if ( + tokenAfter && + node.range[1] === tokenAfter.range[0] && + !astUtils.canTokensBeAdjacent(lastLeftToken, tokenAfter) + ) { + suffix = " "; + } + return ( prefix + rightText + textBeforeOperator + OPERATOR_FLIP_MAP[operatorToken.value] + textAfterOperator + - leftText + leftText + + suffix ); } diff --git a/node_modules/eslint/lib/shared/deprecation-warnings.js b/node_modules/eslint/lib/shared/deprecation-warnings.js index e1481a2e9a..1a0501ab05 100644 --- a/node_modules/eslint/lib/shared/deprecation-warnings.js +++ b/node_modules/eslint/lib/shared/deprecation-warnings.js @@ -9,13 +9,12 @@ //------------------------------------------------------------------------------ const path = require("path"); -const lodash = require("lodash"); //------------------------------------------------------------------------------ // Private //------------------------------------------------------------------------------ -// Defitions for deprecation warnings. +// Definitions for deprecation warnings. const deprecationWarningMessages = { ESLINT_LEGACY_ECMAFEATURES: "The 'ecmaFeatures' config file property is deprecated and has no effect.", @@ -28,6 +27,8 @@ const deprecationWarningMessages = { "projects in order to avoid loading '~/.eslintrc.*' accidentally." }; +const sourceFileErrorCache = new Set(); + /** * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted * for each unique file path, but repeated invocations with the same file path have no effect. @@ -36,7 +37,15 @@ const deprecationWarningMessages = { * @param {string} errorCode The warning message to show. * @returns {void} */ -const emitDeprecationWarning = lodash.memoize((source, errorCode) => { +function emitDeprecationWarning(source, errorCode) { + const cacheKey = JSON.stringify({ source, errorCode }); + + if (sourceFileErrorCache.has(cacheKey)) { + return; + } + + sourceFileErrorCache.add(cacheKey); + const rel = path.relative(process.cwd(), source); const message = deprecationWarningMessages[errorCode]; @@ -45,7 +54,7 @@ const emitDeprecationWarning = lodash.memoize((source, errorCode) => { "DeprecationWarning", errorCode ); -}, (...args) => JSON.stringify(args)); +} //------------------------------------------------------------------------------ // Public Interface diff --git a/node_modules/eslint/lib/shared/runtime-info.js b/node_modules/eslint/lib/shared/runtime-info.js index feed005330..aa5eff756a 100644 --- a/node_modules/eslint/lib/shared/runtime-info.js +++ b/node_modules/eslint/lib/shared/runtime-info.js @@ -11,7 +11,7 @@ const path = require("path"); const spawn = require("cross-spawn"); -const { isEmpty } = require("lodash"); +const os = require("os"); const log = require("../shared/logging"); const packageJson = require("../../package.json"); @@ -107,7 +107,7 @@ function environment() { * Checking globally returns an empty JSON object, while local checks * include the name and version of the local project. */ - if (isEmpty(parsedStdout) || !(parsedStdout.dependencies && parsedStdout.dependencies.eslint)) { + if (Object.keys(parsedStdout).length === 0 || !(parsedStdout.dependencies && parsedStdout.dependencies.eslint)) { return "Not found"; } @@ -141,7 +141,8 @@ function environment() { `Node version: ${getBinVersion("node")}`, `npm version: ${getBinVersion("npm")}`, `Local ESLint version: ${getNpmPackageVersion("eslint", { global: false })}`, - `Global ESLint version: ${getNpmPackageVersion("eslint", { global: true })}` + `Global ESLint version: ${getNpmPackageVersion("eslint", { global: true })}`, + `Operating System: ${os.platform()} ${os.release()}` ].join("\n"); } diff --git a/node_modules/eslint/lib/shared/string-utils.js b/node_modules/eslint/lib/shared/string-utils.js new file mode 100644 index 0000000000..e4a55d7993 --- /dev/null +++ b/node_modules/eslint/lib/shared/string-utils.js @@ -0,0 +1,22 @@ +/** + * @fileoverview Utilities to operate on strings. + * @author Stephen Wade + */ + +"use strict"; + +/** + * Converts the first letter of a string to uppercase. + * @param {string} string The string to operate on + * @returns {string} The converted string + */ +function upperCaseFirst(string) { + if (string.length <= 1) { + return string.toUpperCase(); + } + return string[0].toUpperCase() + string.slice(1); +} + +module.exports = { + upperCaseFirst +}; diff --git a/node_modules/eslint/lib/shared/types.js b/node_modules/eslint/lib/shared/types.js index 8ad3b1b64c..c3b76e42d5 100644 --- a/node_modules/eslint/lib/shared/types.js +++ b/node_modules/eslint/lib/shared/types.js @@ -46,9 +46,9 @@ module.exports = {}; /** * @typedef {Object} OverrideConfigData * @property {Record} [env] The environment settings. - * @property {string | string[]} [excludedFiles] The glob pattarns for excluded files. + * @property {string | string[]} [excludedFiles] The glob patterns for excluded files. * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. - * @property {string | string[]} files The glob pattarns for target files. + * @property {string | string[]} files The glob patterns for target files. * @property {Record} [globals] The global variable settings. * @property {boolean} [noInlineConfig] The flag that disables directive comments. * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. diff --git a/node_modules/eslint/lib/source-code/source-code.js b/node_modules/eslint/lib/source-code/source-code.js index 6b20495b6f..cc4524fa74 100644 --- a/node_modules/eslint/lib/source-code/source-code.js +++ b/node_modules/eslint/lib/source-code/source-code.js @@ -12,8 +12,7 @@ const { isCommentToken } = require("eslint-utils"), TokenStore = require("./token-store"), astUtils = require("../shared/ast-utils"), - Traverser = require("../shared/traverser"), - lodash = require("lodash"); + Traverser = require("../shared/traverser"); //------------------------------------------------------------------------------ // Private @@ -350,7 +349,7 @@ class SourceCode extends TokenStore { let currentToken = this.getTokenBefore(node, { includeComments: true }); while (currentToken && isCommentToken(currentToken)) { - if (node.parent && (currentToken.start < node.parent.start)) { + if (node.parent && node.parent.type !== "Program" && (currentToken.start < node.parent.start)) { break; } comments.leading.push(currentToken); @@ -362,7 +361,7 @@ class SourceCode extends TokenStore { currentToken = this.getTokenAfter(node, { includeComments: true }); while (currentToken && isCommentToken(currentToken)) { - if (node.parent && (currentToken.end > node.parent.end)) { + if (node.parent && node.parent.type !== "Program" && (currentToken.end > node.parent.end)) { break; } comments.trailing.push(currentToken); @@ -531,10 +530,12 @@ class SourceCode extends TokenStore { } /* - * To figure out which line rangeIndex is on, determine the last index at which rangeIndex could - * be inserted into lineIndices to keep the list sorted. + * To figure out which line index is on, determine the last place at which index could + * be inserted into lineStartIndices to keep the list sorted. */ - const lineNumber = lodash.sortedLastIndex(this.lineStartIndices, index); + const lineNumber = index >= this.lineStartIndices[this.lineStartIndices.length - 1] + ? this.lineStartIndices.length + : this.lineStartIndices.findIndex(el => index < el); return { line: lineNumber, column: index - this.lineStartIndices[lineNumber - 1] }; } diff --git a/node_modules/eslint/lib/source-code/token-store/utils.js b/node_modules/eslint/lib/source-code/token-store/utils.js index 21e1d6ff7c..a2bd77de71 100644 --- a/node_modules/eslint/lib/source-code/token-store/utils.js +++ b/node_modules/eslint/lib/source-code/token-store/utils.js @@ -4,12 +4,6 @@ */ "use strict"; -//------------------------------------------------------------------------------ -// Requirements -//------------------------------------------------------------------------------ - -const lodash = require("lodash"); - //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ @@ -29,18 +23,16 @@ function getStartLocation(token) { //------------------------------------------------------------------------------ /** - * Binary-searches the index of the first token which is after the given location. + * Finds the index of the first token which is after the given location. * If it was not found, this returns `tokens.length`. * @param {(Token|Comment)[]} tokens It searches the token in this list. * @param {number} location The location to search. * @returns {number} The found index or `tokens.length`. */ exports.search = function search(tokens, location) { - return lodash.sortedIndexBy( - tokens, - { range: [location] }, - getStartLocation - ); + const index = tokens.findIndex(el => location <= getStartLocation(el)); + + return index === -1 ? tokens.length : index; }; /** diff --git a/node_modules/eslint/messages/all-files-ignored.js b/node_modules/eslint/messages/all-files-ignored.js new file mode 100644 index 0000000000..d85828d36e --- /dev/null +++ b/node_modules/eslint/messages/all-files-ignored.js @@ -0,0 +1,16 @@ +"use strict"; + +module.exports = function(it) { + const { pattern } = it; + + return ` +You are linting "${pattern}", but all of the files matching the glob pattern "${pattern}" are ignored. + +If you don't want to lint these files, remove the pattern "${pattern}" from the list of arguments passed to ESLint. + +If you do want to lint these files, try the following solutions: + +* Check your .eslintignore file, or the eslintIgnore property in package.json, to ensure that the files are not configured to be ignored. +* Explicitly list the files from this glob that you'd like to lint on the command-line, rather than providing a glob as an argument. +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/all-files-ignored.txt b/node_modules/eslint/messages/all-files-ignored.txt deleted file mode 100644 index 3f4c8ced4c..0000000000 --- a/node_modules/eslint/messages/all-files-ignored.txt +++ /dev/null @@ -1,8 +0,0 @@ -You are linting "<%= pattern %>", but all of the files matching the glob pattern "<%= pattern %>" are ignored. - -If you don't want to lint these files, remove the pattern "<%= pattern %>" from the list of arguments passed to ESLint. - -If you do want to lint these files, try the following solutions: - -* Check your .eslintignore file, or the eslintIgnore property in package.json, to ensure that the files are not configured to be ignored. -* Explicitly list the files from this glob that you'd like to lint on the command-line, rather than providing a glob as an argument. diff --git a/node_modules/eslint/messages/extend-config-missing.js b/node_modules/eslint/messages/extend-config-missing.js new file mode 100644 index 0000000000..db8a5c64b9 --- /dev/null +++ b/node_modules/eslint/messages/extend-config-missing.js @@ -0,0 +1,13 @@ +"use strict"; + +module.exports = function(it) { + const { configName, importerName } = it; + + return ` +ESLint couldn't find the config "${configName}" to extend from. Please check that the name of the config is correct. + +The config "${configName}" was referenced from the config file in "${importerName}". + +If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/extend-config-missing.txt b/node_modules/eslint/messages/extend-config-missing.txt deleted file mode 100644 index 4defd7ac4d..0000000000 --- a/node_modules/eslint/messages/extend-config-missing.txt +++ /dev/null @@ -1,5 +0,0 @@ -ESLint couldn't find the config "<%- configName %>" to extend from. Please check that the name of the config is correct. - -The config "<%- configName %>" was referenced from the config file in "<%- importerName %>". - -If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. diff --git a/node_modules/eslint/messages/failed-to-read-json.js b/node_modules/eslint/messages/failed-to-read-json.js new file mode 100644 index 0000000000..5114de3098 --- /dev/null +++ b/node_modules/eslint/messages/failed-to-read-json.js @@ -0,0 +1,11 @@ +"use strict"; + +module.exports = function(it) { + const { path, message } = it; + + return ` +Failed to read JSON file at ${path}: + +${message} +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/failed-to-read-json.txt b/node_modules/eslint/messages/failed-to-read-json.txt deleted file mode 100644 index b5e2b861cf..0000000000 --- a/node_modules/eslint/messages/failed-to-read-json.txt +++ /dev/null @@ -1,3 +0,0 @@ -Failed to read JSON file at <%= path %>: - -<%= message %> diff --git a/node_modules/eslint/messages/file-not-found.js b/node_modules/eslint/messages/file-not-found.js new file mode 100644 index 0000000000..26a5d57eff --- /dev/null +++ b/node_modules/eslint/messages/file-not-found.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = function(it) { + const { pattern, globDisabled } = it; + + return ` +No files matching the pattern "${pattern}"${globDisabled ? " (with disabling globs)" : ""} were found. +Please check for typing mistakes in the pattern. +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/file-not-found.txt b/node_modules/eslint/messages/file-not-found.txt deleted file mode 100644 index 639498eb5c..0000000000 --- a/node_modules/eslint/messages/file-not-found.txt +++ /dev/null @@ -1,2 +0,0 @@ -No files matching the pattern "<%= pattern %>"<% if (globDisabled) { %> (with disabling globs)<% } %> were found. -Please check for typing mistakes in the pattern. diff --git a/node_modules/eslint/messages/no-config-found.js b/node_modules/eslint/messages/no-config-found.js new file mode 100644 index 0000000000..1042143f9f --- /dev/null +++ b/node_modules/eslint/messages/no-config-found.js @@ -0,0 +1,15 @@ +"use strict"; + +module.exports = function(it) { + const { directoryPath } = it; + + return ` +ESLint couldn't find a configuration file. To set up a configuration file for this project, please run: + + eslint --init + +ESLint looked for configuration files in ${directoryPath} and its ancestors. If it found none, it then looked in your home directory. + +If you think you already have a configuration file or if you need more help, please stop by the ESLint chat room: https://eslint.org/chat/help +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/no-config-found.txt b/node_modules/eslint/messages/no-config-found.txt deleted file mode 100644 index b46a7e5a7a..0000000000 --- a/node_modules/eslint/messages/no-config-found.txt +++ /dev/null @@ -1,7 +0,0 @@ -ESLint couldn't find a configuration file. To set up a configuration file for this project, please run: - - eslint --init - -ESLint looked for configuration files in <%= directoryPath %> and its ancestors. If it found none, it then looked in your home directory. - -If you think you already have a configuration file or if you need more help, please stop by the ESLint chat room: https://eslint.org/chat/help diff --git a/node_modules/eslint/messages/plugin-conflict.js b/node_modules/eslint/messages/plugin-conflict.js new file mode 100644 index 0000000000..c8c060e2f0 --- /dev/null +++ b/node_modules/eslint/messages/plugin-conflict.js @@ -0,0 +1,22 @@ +"use strict"; + +module.exports = function(it) { + const { pluginId, plugins } = it; + + let result = `ESLint couldn't determine the plugin "${pluginId}" uniquely. +`; + + for (const { filePath, importerName } of plugins) { + result += ` +- ${filePath} (loaded in "${importerName}")`; + } + + result += ` + +Please remove the "plugins" setting from either config or remove either plugin installation. + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`; + + return result; +}; diff --git a/node_modules/eslint/messages/plugin-conflict.txt b/node_modules/eslint/messages/plugin-conflict.txt deleted file mode 100644 index 3ab4b340ef..0000000000 --- a/node_modules/eslint/messages/plugin-conflict.txt +++ /dev/null @@ -1,7 +0,0 @@ -ESLint couldn't determine the plugin "<%- pluginId %>" uniquely. -<% for (const { filePath, importerName } of plugins) { %> -- <%= filePath %> (loaded in "<%= importerName %>")<% } %> - -Please remove the "plugins" setting from either config or remove either plugin installation. - -If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. diff --git a/node_modules/eslint/messages/plugin-invalid.js b/node_modules/eslint/messages/plugin-invalid.js new file mode 100644 index 0000000000..7913576f00 --- /dev/null +++ b/node_modules/eslint/messages/plugin-invalid.js @@ -0,0 +1,16 @@ +"use strict"; + +module.exports = function(it) { + const { configName, importerName } = it; + + return ` +"${configName}" is invalid syntax for a config specifier. + +* If your intention is to extend from a configuration exported from the plugin, add the configuration name after a slash: e.g. "${configName}/myConfig". +* If this is the name of a shareable config instead of a plugin, remove the "plugin:" prefix: i.e. "${configName.slice("plugin:".length)}". + +"${configName}" was referenced from the config file in "${importerName}". + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/plugin-invalid.txt b/node_modules/eslint/messages/plugin-invalid.txt deleted file mode 100644 index 3ee251821b..0000000000 --- a/node_modules/eslint/messages/plugin-invalid.txt +++ /dev/null @@ -1,8 +0,0 @@ -"<%- configName %>" is invalid syntax for a config specifier. - -* If your intention is to extend from a configuration exported from the plugin, add the configuration name after a slash: e.g. "<%- configName %>/myConfig". -* If this is the name of a shareable config instead of a plugin, remove the "plugin:" prefix: i.e. "<%- configName.slice("plugin:".length) %>". - -"<%- configName %>" was referenced from the config file in "<%- importerName %>". - -If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. diff --git a/node_modules/eslint/messages/plugin-missing.js b/node_modules/eslint/messages/plugin-missing.js new file mode 100644 index 0000000000..f58c78ceb3 --- /dev/null +++ b/node_modules/eslint/messages/plugin-missing.js @@ -0,0 +1,19 @@ +"use strict"; + +module.exports = function(it) { + const { pluginName, resolvePluginsRelativeTo, importerName } = it; + + return ` +ESLint couldn't find the plugin "${pluginName}". + +(The package "${pluginName}" was not found when loaded as a Node module from the directory "${resolvePluginsRelativeTo}".) + +It's likely that the plugin isn't installed correctly. Try reinstalling by running the following: + + npm install ${pluginName}@latest --save-dev + +The plugin "${pluginName}" was referenced from the config file in "${importerName}". + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/plugin-missing.txt b/node_modules/eslint/messages/plugin-missing.txt deleted file mode 100644 index aa25f59ac4..0000000000 --- a/node_modules/eslint/messages/plugin-missing.txt +++ /dev/null @@ -1,11 +0,0 @@ -ESLint couldn't find the plugin "<%- pluginName %>". - -(The package "<%- pluginName %>" was not found when loaded as a Node module from the directory "<%- resolvePluginsRelativeTo %>".) - -It's likely that the plugin isn't installed correctly. Try reinstalling by running the following: - - npm install <%- pluginName %>@latest --save-dev - -The plugin "<%- pluginName %>" was referenced from the config file in "<%- importerName %>". - -If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. diff --git a/node_modules/eslint/messages/print-config-with-directory-path.js b/node_modules/eslint/messages/print-config-with-directory-path.js new file mode 100644 index 0000000000..6a5d571dd3 --- /dev/null +++ b/node_modules/eslint/messages/print-config-with-directory-path.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = function() { + return ` +The '--print-config' CLI option requires a path to a source code file rather than a directory. +See also: https://eslint.org/docs/user-guide/command-line-interface#--print-config +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/print-config-with-directory-path.txt b/node_modules/eslint/messages/print-config-with-directory-path.txt deleted file mode 100644 index 1afc9b1e88..0000000000 --- a/node_modules/eslint/messages/print-config-with-directory-path.txt +++ /dev/null @@ -1,2 +0,0 @@ -The '--print-config' CLI option requires a path to a source code file rather than a directory. -See also: https://eslint.org/docs/user-guide/command-line-interface#--print-config diff --git a/node_modules/eslint/messages/whitespace-found.js b/node_modules/eslint/messages/whitespace-found.js new file mode 100644 index 0000000000..4ce49ca3a4 --- /dev/null +++ b/node_modules/eslint/messages/whitespace-found.js @@ -0,0 +1,11 @@ +"use strict"; + +module.exports = function(it) { + const { pluginName } = it; + + return ` +ESLint couldn't find the plugin "${pluginName}". because there is whitespace in the name. Please check your configuration and remove all whitespace from the plugin name. + +If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. +`.trimLeft(); +}; diff --git a/node_modules/eslint/messages/whitespace-found.txt b/node_modules/eslint/messages/whitespace-found.txt deleted file mode 100644 index 3eed1af586..0000000000 --- a/node_modules/eslint/messages/whitespace-found.txt +++ /dev/null @@ -1,3 +0,0 @@ -ESLint couldn't find the plugin "<%- pluginName %>". because there is whitespace in the name. Please check your configuration and remove all whitespace from the plugin name. - -If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team. diff --git a/node_modules/eslint/node_modules/escape-string-regexp/index.d.ts b/node_modules/eslint/node_modules/escape-string-regexp/index.d.ts new file mode 100644 index 0000000000..7d34edc7c5 --- /dev/null +++ b/node_modules/eslint/node_modules/escape-string-regexp/index.d.ts @@ -0,0 +1,18 @@ +/** +Escape RegExp special characters. + +You can also use this to escape a string that is inserted into the middle of a regex, for example, into a character class. + +@example +``` +import escapeStringRegexp = require('escape-string-regexp'); + +const escapedString = escapeStringRegexp('How much $ for a 🦄?'); +//=> 'How much \\$ for a 🦄\\?' + +new RegExp(escapedString); +``` +*/ +declare const escapeStringRegexp: (string: string) => string; + +export = escapeStringRegexp; diff --git a/node_modules/eslint/node_modules/escape-string-regexp/index.js b/node_modules/eslint/node_modules/escape-string-regexp/index.js new file mode 100644 index 0000000000..387c5615a7 --- /dev/null +++ b/node_modules/eslint/node_modules/escape-string-regexp/index.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + // Escape characters with special meaning either inside or outside character sets. + // Use a simple backslash escape when it’s always valid, and a \unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. + return string + .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') + .replace(/-/g, '\\x2d'); +}; diff --git a/node_modules/eslint/node_modules/escape-string-regexp/license b/node_modules/eslint/node_modules/escape-string-regexp/license new file mode 100644 index 0000000000..fa7ceba3eb --- /dev/null +++ b/node_modules/eslint/node_modules/escape-string-regexp/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/eslint/node_modules/escape-string-regexp/package.json b/node_modules/eslint/node_modules/escape-string-regexp/package.json new file mode 100644 index 0000000000..053b31334f --- /dev/null +++ b/node_modules/eslint/node_modules/escape-string-regexp/package.json @@ -0,0 +1,38 @@ +{ + "name": "escape-string-regexp", + "version": "4.0.0", + "description": "Escape RegExp special characters", + "license": "MIT", + "repository": "sindresorhus/escape-string-regexp", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "escape", + "regex", + "regexp", + "regular", + "expression", + "string", + "special", + "characters" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.11.0", + "xo": "^0.28.3" + } +} \ No newline at end of file diff --git a/node_modules/eslint/node_modules/escape-string-regexp/readme.md b/node_modules/eslint/node_modules/escape-string-regexp/readme.md new file mode 100644 index 0000000000..2945dfcb23 --- /dev/null +++ b/node_modules/eslint/node_modules/escape-string-regexp/readme.md @@ -0,0 +1,34 @@ +# escape-string-regexp [![Build Status](https://travis-ci.org/sindresorhus/escape-string-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-string-regexp) + +> Escape RegExp special characters + +## Install + +``` +$ npm install escape-string-regexp +``` + +## Usage + +```js +const escapeStringRegexp = require('escape-string-regexp'); + +const escapedString = escapeStringRegexp('How much $ for a 🦄?'); +//=> 'How much \\$ for a 🦄\\?' + +new RegExp(escapedString); +``` + +You can also use this to escape a string that is inserted into the middle of a regex, for example, into a character class. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/CHANGELOG.md b/node_modules/eslint/node_modules/eslint-visitor-keys/CHANGELOG.md deleted file mode 100644 index dc1d4b5ec5..0000000000 --- a/node_modules/eslint/node_modules/eslint-visitor-keys/CHANGELOG.md +++ /dev/null @@ -1,25 +0,0 @@ -v1.3.0 - June 19, 2020 - -* [`c92dd7f`](https://github.com/eslint/eslint-visitor-keys/commit/c92dd7ff96f0044dba12d681406a025b92b4c437) Update: add `ChainExpression` node (#12) (Toru Nagashima) - -v1.2.0 - June 4, 2020 - -* [`21f28bf`](https://github.com/eslint/eslint-visitor-keys/commit/21f28bf11be5329d740a8bf6bdbcd0ef13bbf1a2) Update: added exported in exportAllDeclaration key (#10) (Anix) - -v1.1.0 - August 13, 2019 - -* [`9331cc0`](https://github.com/eslint/eslint-visitor-keys/commit/9331cc09e756e65b9044c9186445a474b037fac6) Update: add ImportExpression (#8) (Toru Nagashima) -* [`5967f58`](https://github.com/eslint/eslint-visitor-keys/commit/5967f583b04f17fba9226aaa394e45d476d2b8af) Chore: add supported Node.js versions to CI (#7) (Kai Cataldo) -* [`6f7c60f`](https://github.com/eslint/eslint-visitor-keys/commit/6f7c60fef2ceec9f6323202df718321cec45cab0) Upgrade: eslint-release@1.0.0 (#5) (Teddy Katz) - -v1.0.0 - December 18, 2017 - -* 1f6bd38 Breaking: update keys (#4) (Toru Nagashima) - -v0.1.0 - November 17, 2017 - -* 17b4a88 Chore: update `repository` field in package.json (#3) (Toru Nagashima) -* a5a026b New: eslint-visitor-keys (#1) (Toru Nagashima) -* a1a48b8 Update: Change license to Apache 2 (#2) (Ilya Volodin) -* 2204715 Initial commit (Toru Nagashima) - diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/LICENSE b/node_modules/eslint/node_modules/eslint-visitor-keys/LICENSE deleted file mode 100644 index 17a25538d9..0000000000 --- a/node_modules/eslint/node_modules/eslint-visitor-keys/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright contributors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/README.md b/node_modules/eslint/node_modules/eslint-visitor-keys/README.md deleted file mode 100644 index 250f5fa31a..0000000000 --- a/node_modules/eslint/node_modules/eslint-visitor-keys/README.md +++ /dev/null @@ -1,98 +0,0 @@ -# eslint-visitor-keys - -[![npm version](https://img.shields.io/npm/v/eslint-visitor-keys.svg)](https://www.npmjs.com/package/eslint-visitor-keys) -[![Downloads/month](https://img.shields.io/npm/dm/eslint-visitor-keys.svg)](http://www.npmtrends.com/eslint-visitor-keys) -[![Build Status](https://travis-ci.org/eslint/eslint-visitor-keys.svg?branch=master)](https://travis-ci.org/eslint/eslint-visitor-keys) -[![Dependency Status](https://david-dm.org/eslint/eslint-visitor-keys.svg)](https://david-dm.org/eslint/eslint-visitor-keys) - -Constants and utilities about visitor keys to traverse AST. - -## 💿 Installation - -Use [npm] to install. - -```bash -$ npm install eslint-visitor-keys -``` - -### Requirements - -- [Node.js] 4.0.0 or later. - -## 📖 Usage - -```js -const evk = require("eslint-visitor-keys") -``` - -### evk.KEYS - -> type: `{ [type: string]: string[] | undefined }` - -Visitor keys. This keys are frozen. - -This is an object. Keys are the type of [ESTree] nodes. Their values are an array of property names which have child nodes. - -For example: - -``` -console.log(evk.KEYS.AssignmentExpression) // → ["left", "right"] -``` - -### evk.getKeys(node) - -> type: `(node: object) => string[]` - -Get the visitor keys of a given AST node. - -This is similar to `Object.keys(node)` of ES Standard, but some keys are excluded: `parent`, `leadingComments`, `trailingComments`, and names which start with `_`. - -This will be used to traverse unknown nodes. - -For example: - -``` -const node = { - type: "AssignmentExpression", - left: { type: "Identifier", name: "foo" }, - right: { type: "Literal", value: 0 } -} -console.log(evk.getKeys(node)) // → ["type", "left", "right"] -``` - -### evk.unionWith(additionalKeys) - -> type: `(additionalKeys: object) => { [type: string]: string[] | undefined }` - -Make the union set with `evk.KEYS` and the given keys. - -- The order of keys is, `additionalKeys` is at first, then `evk.KEYS` is concatenated after that. -- It removes duplicated keys as keeping the first one. - -For example: - -``` -console.log(evk.unionWith({ - MethodDefinition: ["decorators"] -})) // → { ..., MethodDefinition: ["decorators", "key", "value"], ... } -``` - -## 📰 Change log - -See [GitHub releases](https://github.com/eslint/eslint-visitor-keys/releases). - -## 🍻 Contributing - -Welcome. See [ESLint contribution guidelines](https://eslint.org/docs/developer-guide/contributing/). - -### Development commands - -- `npm test` runs tests and measures code coverage. -- `npm run lint` checks source codes with ESLint. -- `npm run coverage` opens the code coverage report of the previous test with your default browser. -- `npm run release` publishes this package to [npm] registory. - - -[npm]: https://www.npmjs.com/ -[Node.js]: https://nodejs.org/en/ -[ESTree]: https://github.com/estree/estree diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/lib/index.js b/node_modules/eslint/node_modules/eslint-visitor-keys/lib/index.js deleted file mode 100644 index cd8a326083..0000000000 --- a/node_modules/eslint/node_modules/eslint-visitor-keys/lib/index.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * @author Toru Nagashima - * See LICENSE file in root directory for full license. - */ -"use strict"; - -const KEYS = require("./visitor-keys.json"); - -// Types. -const NODE_TYPES = Object.freeze(Object.keys(KEYS)); - -// Freeze the keys. -for (const type of NODE_TYPES) { - Object.freeze(KEYS[type]); -} -Object.freeze(KEYS); - -// List to ignore keys. -const KEY_BLACKLIST = new Set([ - "parent", - "leadingComments", - "trailingComments" -]); - -/** - * Check whether a given key should be used or not. - * @param {string} key The key to check. - * @returns {boolean} `true` if the key should be used. - */ -function filterKey(key) { - return !KEY_BLACKLIST.has(key) && key[0] !== "_"; -} - -//------------------------------------------------------------------------------ -// Public interfaces -//------------------------------------------------------------------------------ - -module.exports = Object.freeze({ - - /** - * Visitor keys. - * @type {{ [type: string]: string[] | undefined }} - */ - KEYS, - - /** - * Get visitor keys of a given node. - * @param {Object} node The AST node to get keys. - * @returns {string[]} Visitor keys of the node. - */ - getKeys(node) { - return Object.keys(node).filter(filterKey); - }, - - // Disable valid-jsdoc rule because it reports syntax error on the type of @returns. - // eslint-disable-next-line valid-jsdoc - /** - * Make the union set with `KEYS` and given keys. - * @param {Object} additionalKeys The additional keys. - * @returns {{ [type: string]: string[] | undefined }} The union set. - */ - unionWith(additionalKeys) { - const retv = Object.assign({}, KEYS); - - for (const type of Object.keys(additionalKeys)) { - if (retv.hasOwnProperty(type)) { - const keys = new Set(additionalKeys[type]); - - for (const key of retv[type]) { - keys.add(key); - } - - retv[type] = Object.freeze(Array.from(keys)); - } else { - retv[type] = Object.freeze(Array.from(additionalKeys[type])); - } - } - - return Object.freeze(retv); - } -}); diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.json b/node_modules/eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.json deleted file mode 100644 index a33bbc6600..0000000000 --- a/node_modules/eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.json +++ /dev/null @@ -1,284 +0,0 @@ -{ - "AssignmentExpression": [ - "left", - "right" - ], - "AssignmentPattern": [ - "left", - "right" - ], - "ArrayExpression": [ - "elements" - ], - "ArrayPattern": [ - "elements" - ], - "ArrowFunctionExpression": [ - "params", - "body" - ], - "AwaitExpression": [ - "argument" - ], - "BlockStatement": [ - "body" - ], - "BinaryExpression": [ - "left", - "right" - ], - "BreakStatement": [ - "label" - ], - "CallExpression": [ - "callee", - "arguments" - ], - "CatchClause": [ - "param", - "body" - ], - "ChainExpression": [ - "expression" - ], - "ClassBody": [ - "body" - ], - "ClassDeclaration": [ - "id", - "superClass", - "body" - ], - "ClassExpression": [ - "id", - "superClass", - "body" - ], - "ConditionalExpression": [ - "test", - "consequent", - "alternate" - ], - "ContinueStatement": [ - "label" - ], - "DebuggerStatement": [], - "DoWhileStatement": [ - "body", - "test" - ], - "EmptyStatement": [], - "ExportAllDeclaration": [ - "exported", - "source" - ], - "ExportDefaultDeclaration": [ - "declaration" - ], - "ExportNamedDeclaration": [ - "declaration", - "specifiers", - "source" - ], - "ExportSpecifier": [ - "exported", - "local" - ], - "ExpressionStatement": [ - "expression" - ], - "ExperimentalRestProperty": [ - "argument" - ], - "ExperimentalSpreadProperty": [ - "argument" - ], - "ForStatement": [ - "init", - "test", - "update", - "body" - ], - "ForInStatement": [ - "left", - "right", - "body" - ], - "ForOfStatement": [ - "left", - "right", - "body" - ], - "FunctionDeclaration": [ - "id", - "params", - "body" - ], - "FunctionExpression": [ - "id", - "params", - "body" - ], - "Identifier": [], - "IfStatement": [ - "test", - "consequent", - "alternate" - ], - "ImportDeclaration": [ - "specifiers", - "source" - ], - "ImportDefaultSpecifier": [ - "local" - ], - "ImportExpression": [ - "source" - ], - "ImportNamespaceSpecifier": [ - "local" - ], - "ImportSpecifier": [ - "imported", - "local" - ], - "JSXAttribute": [ - "name", - "value" - ], - "JSXClosingElement": [ - "name" - ], - "JSXElement": [ - "openingElement", - "children", - "closingElement" - ], - "JSXEmptyExpression": [], - "JSXExpressionContainer": [ - "expression" - ], - "JSXIdentifier": [], - "JSXMemberExpression": [ - "object", - "property" - ], - "JSXNamespacedName": [ - "namespace", - "name" - ], - "JSXOpeningElement": [ - "name", - "attributes" - ], - "JSXSpreadAttribute": [ - "argument" - ], - "JSXText": [], - "JSXFragment": [ - "openingFragment", - "children", - "closingFragment" - ], - "Literal": [], - "LabeledStatement": [ - "label", - "body" - ], - "LogicalExpression": [ - "left", - "right" - ], - "MemberExpression": [ - "object", - "property" - ], - "MetaProperty": [ - "meta", - "property" - ], - "MethodDefinition": [ - "key", - "value" - ], - "NewExpression": [ - "callee", - "arguments" - ], - "ObjectExpression": [ - "properties" - ], - "ObjectPattern": [ - "properties" - ], - "Program": [ - "body" - ], - "Property": [ - "key", - "value" - ], - "RestElement": [ - "argument" - ], - "ReturnStatement": [ - "argument" - ], - "SequenceExpression": [ - "expressions" - ], - "SpreadElement": [ - "argument" - ], - "Super": [], - "SwitchStatement": [ - "discriminant", - "cases" - ], - "SwitchCase": [ - "test", - "consequent" - ], - "TaggedTemplateExpression": [ - "tag", - "quasi" - ], - "TemplateElement": [], - "TemplateLiteral": [ - "quasis", - "expressions" - ], - "ThisExpression": [], - "ThrowStatement": [ - "argument" - ], - "TryStatement": [ - "block", - "handler", - "finalizer" - ], - "UnaryExpression": [ - "argument" - ], - "UpdateExpression": [ - "argument" - ], - "VariableDeclaration": [ - "declarations" - ], - "VariableDeclarator": [ - "id", - "init" - ], - "WhileStatement": [ - "test", - "body" - ], - "WithStatement": [ - "object", - "body" - ], - "YieldExpression": [ - "argument" - ] -} diff --git a/node_modules/eslint/node_modules/eslint-visitor-keys/package.json b/node_modules/eslint/node_modules/eslint-visitor-keys/package.json deleted file mode 100644 index 98262a15c1..0000000000 --- a/node_modules/eslint/node_modules/eslint-visitor-keys/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "eslint-visitor-keys", - "version": "1.3.0", - "description": "Constants and utilities about visitor keys to traverse AST.", - "main": "lib/index.js", - "files": [ - "lib" - ], - "engines": { - "node": ">=4" - }, - "dependencies": {}, - "devDependencies": { - "eslint": "^4.7.2", - "eslint-config-eslint": "^4.0.0", - "eslint-release": "^1.0.0", - "mocha": "^3.5.3", - "nyc": "^11.2.1", - "opener": "^1.4.3" - }, - "scripts": { - "lint": "eslint lib tests/lib", - "pretest": "npm run -s lint", - "test": "nyc mocha tests/lib", - "coverage": "nyc report --reporter lcov && opener coverage/lcov-report/index.html", - "generate-release": "eslint-generate-release", - "generate-alpharelease": "eslint-generate-prerelease alpha", - "generate-betarelease": "eslint-generate-prerelease beta", - "generate-rcrelease": "eslint-generate-prerelease rc", - "publish-release": "eslint-publish-release" - }, - "repository": "eslint/eslint-visitor-keys", - "keywords": [], - "author": "Toru Nagashima (https://github.com/mysticatea)", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/eslint/eslint-visitor-keys/issues" - }, - "homepage": "https://github.com/eslint/eslint-visitor-keys#readme" -} \ No newline at end of file diff --git a/node_modules/eslint/package.json b/node_modules/eslint/package.json index b85ca52cb3..cf15eddcaf 100644 --- a/node_modules/eslint/package.json +++ b/node_modules/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "7.9.0", + "version": "7.31.0", "author": "Nicholas C. Zakas ", "description": "An AST-based pattern checker for JavaScript.", "bin": { @@ -27,10 +27,7 @@ "pre-commit": "lint-staged" }, "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ], + "*.js": "eslint --fix", "*.md": "markdownlint" }, "files": [ @@ -46,24 +43,27 @@ "homepage": "https://eslint.org", "bugs": "https://github.com/eslint/eslint/issues/", "dependencies": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.1.3", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^7.3.0", - "esquery": "^1.2.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -71,7 +71,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -80,14 +80,13 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "devDependencies": { "@babel/core": "^7.4.3", "@babel/preset-env": "^7.4.3", - "acorn": "^7.2.0", "babel-loader": "^8.0.5", "chai": "^4.0.1", "cheerio": "^0.22.0", @@ -95,41 +94,42 @@ "core-js": "^3.1.3", "dateformat": "^3.0.3", "ejs": "^3.0.2", - "escape-string-regexp": "^3.0.0", "eslint": "file:.", "eslint-config-eslint": "file:packages/eslint-config-eslint", - "eslint-plugin-eslint-plugin": "^2.2.1", + "eslint-plugin-eslint-plugin": "^3.2.0", "eslint-plugin-internal-rules": "file:tools/internal-rules", - "eslint-plugin-jsdoc": "^22.1.0", + "eslint-plugin-jsdoc": "^25.4.3", "eslint-plugin-node": "^11.1.0", "eslint-release": "^2.0.0", - "eslump": "^2.0.0", + "eslump": "^3.0.0", "esprima": "^4.0.1", + "fs-teardown": "0.1.1", "glob": "^7.1.6", "jsdoc": "^3.5.5", - "karma": "^4.0.1", + "karma": "^6.1.1", "karma-chrome-launcher": "^3.1.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.3", - "karma-webpack": "^4.0.0-rc.6", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", + "karma-webpack": "^5.0.0", "lint-staged": "^10.1.2", "load-perf": "^0.2.0", "markdownlint": "^0.19.0", "markdownlint-cli": "^0.22.0", "memfs": "^3.0.1", - "mocha": "^7.1.1", - "mocha-junit-reporter": "^1.23.0", + "mocha": "^8.3.2", + "mocha-junit-reporter": "^2.0.0", + "node-polyfill-webpack-plugin": "^1.0.3", "npm-license": "^0.3.3", "nyc": "^15.0.1", "proxyquire": "^2.0.1", - "puppeteer": "^4.0.0", + "puppeteer": "^7.1.0", "recast": "^0.19.0", "regenerator-runtime": "^0.13.2", "shelljs": "^0.8.2", "sinon": "^9.0.1", "temp": "^0.9.0", - "webpack": "^4.35.0", - "webpack-cli": "^3.3.5", + "webpack": "^5.23.0", + "webpack-cli": "^4.5.0", "yorkie": "^2.0.0" }, "keywords": [ diff --git a/node_modules/espree/CHANGELOG.md b/node_modules/espree/CHANGELOG.md index 5bfd6148a4..85409ca471 100644 --- a/node_modules/espree/CHANGELOG.md +++ b/node_modules/espree/CHANGELOG.md @@ -1,3 +1,9 @@ +v7.3.1 - December 5, 2020 + +* [`fef6f4a`](https://github.com/eslint/espree/commit/fef6f4a2803d959304c6961527044bd9da39ac92) Upgrade: acorn-jsx@5.3.1 (#459) (Milos Djermanovic) +* [`0e09d9a`](https://github.com/eslint/espree/commit/0e09d9a4f213cb87073a6a87cb7d6317b77d1a23) Chore: Add tests for ecmaVersion default value (#460) (Milos Djermanovic) +* [`4c70052`](https://github.com/eslint/espree/commit/4c70052df0b0ba903602c1f838918cbc07ee5eca) Docs: Fix some minor typos in the READMEs (#455) (Noah Doersing) + v7.3.0 - August 22, 2020 * [`4ba3eef`](https://github.com/eslint/espree/commit/4ba3eefdc4b32784565822b34f11977e99ca1a19) Chore: move to GitHub Actions (#449) (Kai Cataldo) diff --git a/node_modules/espree/README.md b/node_modules/espree/README.md index e7b5064cb3..72d88f8331 100644 --- a/node_modules/espree/README.md +++ b/node_modules/espree/README.md @@ -27,10 +27,10 @@ const ast = espree.parse(code); ### `parse()` -`parse` parses the given code and returns a abstract syntax tree (AST). It takes two paramenter. +`parse` parses the given code and returns a abstract syntax tree (AST). It takes two parameters. - `code` [string]() - the code which needs to be parsed. -- `options (Optional)` [Object]() - read more about this [here](#options) +- `options (Optional)` [Object]() - read more about this [here](#options). ```javascript const espree = require("espree"); @@ -71,10 +71,10 @@ Node { ### `tokenize()` -`tokenize` returns the tokens of a give code. It takes two paramenter. +`tokenize` returns the tokens of a given code. It takes two parameters. - `code` [string]() - the code which needs to be parsed. -- `options (Optional)` [Object]() - read more about this [here](#options) +- `options (Optional)` [Object]() - read more about this [here](#options). Even if `options` is empty or undefined or `options.tokens` is `false`, it assigns it to `true` in order to get the `tokens` array @@ -112,7 +112,7 @@ Returns the latest ECMAScript supported by `espree` ### `supportedEcmaVersions` -Returns an array of all supported ECMAScript version +Returns an array of all supported ECMAScript versions ## Options diff --git a/node_modules/espree/node_modules/.bin/acorn b/node_modules/espree/node_modules/.bin/acorn deleted file mode 120000 index cf76760386..0000000000 --- a/node_modules/espree/node_modules/.bin/acorn +++ /dev/null @@ -1 +0,0 @@ -../acorn/bin/acorn \ No newline at end of file diff --git a/node_modules/espree/node_modules/acorn/CHANGELOG.md b/node_modules/espree/node_modules/acorn/CHANGELOG.md deleted file mode 100644 index 164fd27c6c..0000000000 --- a/node_modules/espree/node_modules/acorn/CHANGELOG.md +++ /dev/null @@ -1,620 +0,0 @@ -## 7.4.0 (2020-08-03) - -### New features - -Add support for logical assignment operators. - -Add support for numeric separators. - -## 7.3.1 (2020-06-11) - -### Bug fixes - -Make the string in the `version` export match the actual library version. - -## 7.3.0 (2020-06-11) - -### Bug fixes - -Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail. - -### New features - -Add support for optional chaining (`?.`). - -## 7.2.0 (2020-05-09) - -### Bug fixes - -Fix precedence issue in parsing of async arrow functions. - -### New features - -Add support for nullish coalescing. - -Add support for `import.meta`. - -Support `export * as ...` syntax. - -Upgrade to Unicode 13. - -## 6.4.1 (2020-03-09) - -### Bug fixes - -More carefully check for valid UTF16 surrogate pairs in regexp validator. - -## 7.1.1 (2020-03-01) - -### Bug fixes - -Treat `\8` and `\9` as invalid escapes in template strings. - -Allow unicode escapes in property names that are keywords. - -Don't error on an exponential operator expression as argument to `await`. - -More carefully check for valid UTF16 surrogate pairs in regexp validator. - -## 7.1.0 (2019-09-24) - -### Bug fixes - -Disallow trailing object literal commas when ecmaVersion is less than 5. - -### New features - -Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on. - -## 7.0.0 (2019-08-13) - -### Breaking changes - -Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression). - -Makes 10 (ES2019) the default value for the `ecmaVersion` option. - -## 6.3.0 (2019-08-12) - -### New features - -`sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard. - -## 6.2.1 (2019-07-21) - -### Bug fixes - -Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such. - -Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances. - -## 6.2.0 (2019-07-04) - -### Bug fixes - -Improve valid assignment checking in `for`/`in` and `for`/`of` loops. - -Disallow binding `let` in patterns. - -### New features - -Support bigint syntax with `ecmaVersion` >= 11. - -Support dynamic `import` syntax with `ecmaVersion` >= 11. - -Upgrade to Unicode version 12. - -## 6.1.1 (2019-02-27) - -### Bug fixes - -Fix bug that caused parsing default exports of with names to fail. - -## 6.1.0 (2019-02-08) - -### Bug fixes - -Fix scope checking when redefining a `var` as a lexical binding. - -### New features - -Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins. - -## 6.0.7 (2019-02-04) - -### Bug fixes - -Check that exported bindings are defined. - -Don't treat `\u180e` as a whitespace character. - -Check for duplicate parameter names in methods. - -Don't allow shorthand properties when they are generators or async methods. - -Forbid binding `await` in async arrow function's parameter list. - -## 6.0.6 (2019-01-30) - -### Bug fixes - -The content of class declarations and expressions is now always parsed in strict mode. - -Don't allow `let` or `const` to bind the variable name `let`. - -Treat class declarations as lexical. - -Don't allow a generator function declaration as the sole body of an `if` or `else`. - -Ignore `"use strict"` when after an empty statement. - -Allow string line continuations with special line terminator characters. - -Treat `for` bodies as part of the `for` scope when checking for conflicting bindings. - -Fix bug with parsing `yield` in a `for` loop initializer. - -Implement special cases around scope checking for functions. - -## 6.0.5 (2019-01-02) - -### Bug fixes - -Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type. - -Don't treat `let` as a keyword when the next token is `{` on the next line. - -Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on. - -## 6.0.4 (2018-11-05) - -### Bug fixes - -Further improvements to tokenizing regular expressions in corner cases. - -## 6.0.3 (2018-11-04) - -### Bug fixes - -Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression. - -Remove stray symlink in the package tarball. - -## 6.0.2 (2018-09-26) - -### Bug fixes - -Fix bug where default expressions could fail to parse inside an object destructuring assignment expression. - -## 6.0.1 (2018-09-14) - -### Bug fixes - -Fix wrong value in `version` export. - -## 6.0.0 (2018-09-14) - -### Bug fixes - -Better handle variable-redefinition checks for catch bindings and functions directly under if statements. - -Forbid `new.target` in top-level arrow functions. - -Fix issue with parsing a regexp after `yield` in some contexts. - -### New features - -The package now comes with TypeScript definitions. - -### Breaking changes - -The default value of the `ecmaVersion` option is now 9 (2018). - -Plugins work differently, and will have to be rewritten to work with this version. - -The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`). - -## 5.7.3 (2018-09-10) - -### Bug fixes - -Fix failure to tokenize regexps after expressions like `x.of`. - -Better error message for unterminated template literals. - -## 5.7.2 (2018-08-24) - -### Bug fixes - -Properly handle `allowAwaitOutsideFunction` in for statements. - -Treat function declarations at the top level of modules like let bindings. - -Don't allow async function declarations as the only statement under a label. - -## 5.7.0 (2018-06-15) - -### New features - -Upgraded to Unicode 11. - -## 5.6.0 (2018-05-31) - -### New features - -Allow U+2028 and U+2029 in string when ECMAVersion >= 10. - -Allow binding-less catch statements when ECMAVersion >= 10. - -Add `allowAwaitOutsideFunction` option for parsing top-level `await`. - -## 5.5.3 (2018-03-08) - -### Bug fixes - -A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps. - -## 5.5.2 (2018-03-08) - -### Bug fixes - -A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0. - -## 5.5.1 (2018-03-06) - -### Bug fixes - -Fix misleading error message for octal escapes in template strings. - -## 5.5.0 (2018-02-27) - -### New features - -The identifier character categorization is now based on Unicode version 10. - -Acorn will now validate the content of regular expressions, including new ES9 features. - -## 5.4.0 (2018-02-01) - -### Bug fixes - -Disallow duplicate or escaped flags on regular expressions. - -Disallow octal escapes in strings in strict mode. - -### New features - -Add support for async iteration. - -Add support for object spread and rest. - -## 5.3.0 (2017-12-28) - -### Bug fixes - -Fix parsing of floating point literals with leading zeroes in loose mode. - -Allow duplicate property names in object patterns. - -Don't allow static class methods named `prototype`. - -Disallow async functions directly under `if` or `else`. - -Parse right-hand-side of `for`/`of` as an assignment expression. - -Stricter parsing of `for`/`in`. - -Don't allow unicode escapes in contextual keywords. - -### New features - -Parsing class members was factored into smaller methods to allow plugins to hook into it. - -## 5.2.1 (2017-10-30) - -### Bug fixes - -Fix a token context corruption bug. - -## 5.2.0 (2017-10-30) - -### Bug fixes - -Fix token context tracking for `class` and `function` in property-name position. - -Make sure `%*` isn't parsed as a valid operator. - -Allow shorthand properties `get` and `set` to be followed by default values. - -Disallow `super` when not in callee or object position. - -### New features - -Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements. - -## 5.1.2 (2017-09-04) - -### Bug fixes - -Disable parsing of legacy HTML-style comments in modules. - -Fix parsing of async methods whose names are keywords. - -## 5.1.1 (2017-07-06) - -### Bug fixes - -Fix problem with disambiguating regexp and division after a class. - -## 5.1.0 (2017-07-05) - -### Bug fixes - -Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`. - -Parse zero-prefixed numbers with non-octal digits as decimal. - -Allow object/array patterns in rest parameters. - -Don't error when `yield` is used as a property name. - -Allow `async` as a shorthand object property. - -### New features - -Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9. - -## 5.0.3 (2017-04-01) - -### Bug fixes - -Fix spurious duplicate variable definition errors for named functions. - -## 5.0.2 (2017-03-30) - -### Bug fixes - -A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error. - -## 5.0.0 (2017-03-28) - -### Bug fixes - -Raise an error for duplicated lexical bindings. - -Fix spurious error when an assignement expression occurred after a spread expression. - -Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions. - -Allow labels in front or `var` declarations, even in strict mode. - -### Breaking changes - -Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`. - -## 4.0.11 (2017-02-07) - -### Bug fixes - -Allow all forms of member expressions to be parenthesized as lvalue. - -## 4.0.10 (2017-02-07) - -### Bug fixes - -Don't expect semicolons after default-exported functions or classes, even when they are expressions. - -Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode. - -## 4.0.9 (2017-02-06) - -### Bug fixes - -Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again. - -## 4.0.8 (2017-02-03) - -### Bug fixes - -Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet. - -## 4.0.7 (2017-02-02) - -### Bug fixes - -Accept invalidly rejected code like `(x).y = 2` again. - -Don't raise an error when a function _inside_ strict code has a non-simple parameter list. - -## 4.0.6 (2017-02-02) - -### Bug fixes - -Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check. - -## 4.0.5 (2017-02-02) - -### Bug fixes - -Disallow parenthesized pattern expressions. - -Allow keywords as export names. - -Don't allow the `async` keyword to be parenthesized. - -Properly raise an error when a keyword contains a character escape. - -Allow `"use strict"` to appear after other string literal expressions. - -Disallow labeled declarations. - -## 4.0.4 (2016-12-19) - -### Bug fixes - -Fix crash when `export` was followed by a keyword that can't be -exported. - -## 4.0.3 (2016-08-16) - -### Bug fixes - -Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode. - -Properly parse properties named `async` in ES2017 mode. - -Fix bug where reserved words were broken in ES2017 mode. - -## 4.0.2 (2016-08-11) - -### Bug fixes - -Don't ignore period or 'e' characters after octal numbers. - -Fix broken parsing for call expressions in default parameter values of arrow functions. - -## 4.0.1 (2016-08-08) - -### Bug fixes - -Fix false positives in duplicated export name errors. - -## 4.0.0 (2016-08-07) - -### Breaking changes - -The default `ecmaVersion` option value is now 7. - -A number of internal method signatures changed, so plugins might need to be updated. - -### Bug fixes - -The parser now raises errors on duplicated export names. - -`arguments` and `eval` can now be used in shorthand properties. - -Duplicate parameter names in non-simple argument lists now always produce an error. - -### New features - -The `ecmaVersion` option now also accepts year-style version numbers -(2015, etc). - -Support for `async`/`await` syntax when `ecmaVersion` is >= 8. - -Support for trailing commas in call expressions when `ecmaVersion` is >= 8. - -## 3.3.0 (2016-07-25) - -### Bug fixes - -Fix bug in tokenizing of regexp operator after a function declaration. - -Fix parser crash when parsing an array pattern with a hole. - -### New features - -Implement check against complex argument lists in functions that enable strict mode in ES7. - -## 3.2.0 (2016-06-07) - -### Bug fixes - -Improve handling of lack of unicode regexp support in host -environment. - -Properly reject shorthand properties whose name is a keyword. - -### New features - -Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object. - -## 3.1.0 (2016-04-18) - -### Bug fixes - -Properly tokenize the division operator directly after a function expression. - -Allow trailing comma in destructuring arrays. - -## 3.0.4 (2016-02-25) - -### Fixes - -Allow update expressions as left-hand-side of the ES7 exponential operator. - -## 3.0.2 (2016-02-10) - -### Fixes - -Fix bug that accidentally made `undefined` a reserved word when parsing ES7. - -## 3.0.0 (2016-02-10) - -### Breaking changes - -The default value of the `ecmaVersion` option is now 6 (used to be 5). - -Support for comprehension syntax (which was dropped from the draft spec) has been removed. - -### Fixes - -`let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code. - -A parenthesized class or function expression after `export default` is now parsed correctly. - -### New features - -When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`). - -The identifier character ranges are now based on Unicode 8.0.0. - -Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled. - -## 2.7.0 (2016-01-04) - -### Fixes - -Stop allowing rest parameters in setters. - -Disallow `y` rexexp flag in ES5. - -Disallow `\00` and `\000` escapes in strict mode. - -Raise an error when an import name is a reserved word. - -## 2.6.2 (2015-11-10) - -### Fixes - -Don't crash when no options object is passed. - -## 2.6.0 (2015-11-09) - -### Fixes - -Add `await` as a reserved word in module sources. - -Disallow `yield` in a parameter default value for a generator. - -Forbid using a comma after a rest pattern in an array destructuring. - -### New features - -Support parsing stdin in command-line tool. - -## 2.5.0 (2015-10-27) - -### Fixes - -Fix tokenizer support in the command-line tool. - -Stop allowing `new.target` outside of functions. - -Remove legacy `guard` and `guardedHandler` properties from try nodes. - -Stop allowing multiple `__proto__` properties on an object literal in strict mode. - -Don't allow rest parameters to be non-identifier patterns. - -Check for duplicate paramter names in arrow functions. diff --git a/node_modules/espree/node_modules/acorn/LICENSE b/node_modules/espree/node_modules/acorn/LICENSE deleted file mode 100644 index cc5272c966..0000000000 --- a/node_modules/espree/node_modules/acorn/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (C) 2012-2018 by various contributors (see AUTHORS) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/espree/node_modules/acorn/README.md b/node_modules/espree/node_modules/acorn/README.md deleted file mode 100644 index 52d2e9b71c..0000000000 --- a/node_modules/espree/node_modules/acorn/README.md +++ /dev/null @@ -1,269 +0,0 @@ -# Acorn - -A tiny, fast JavaScript parser written in JavaScript. - -## Community - -Acorn is open source software released under an -[MIT license](https://github.com/acornjs/acorn/blob/master/acorn/LICENSE). - -You are welcome to -[report bugs](https://github.com/acornjs/acorn/issues) or create pull -requests on [github](https://github.com/acornjs/acorn). For questions -and discussion, please use the -[Tern discussion forum](https://discuss.ternjs.net). - -## Installation - -The easiest way to install acorn is from [`npm`](https://www.npmjs.com/): - -```sh -npm install acorn -``` - -Alternately, you can download the source and build acorn yourself: - -```sh -git clone https://github.com/acornjs/acorn.git -cd acorn -npm install -``` - -## Interface - -**parse**`(input, options)` is the main interface to the library. The -`input` parameter is a string, `options` can be undefined or an object -setting some of the options listed below. The return value will be an -abstract syntax tree object as specified by the [ESTree -spec](https://github.com/estree/estree). - -```javascript -let acorn = require("acorn"); -console.log(acorn.parse("1 + 1")); -``` - -When encountering a syntax error, the parser will raise a -`SyntaxError` object with a meaningful message. The error object will -have a `pos` property that indicates the string offset at which the -error occurred, and a `loc` object that contains a `{line, column}` -object referring to that same position. - -Options can be provided by passing a second argument, which should be -an object containing any of these fields: - -- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be - either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), 10 (2019) or 11 - (2020, partial support). This influences support for strict mode, - the set of reserved words, and support for new syntax features. - Default is 10. - - **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being - implemented by Acorn. Other proposed new features can be implemented - through plugins. - -- **sourceType**: Indicate the mode the code should be parsed in. Can be - either `"script"` or `"module"`. This influences global strict mode - and parsing of `import` and `export` declarations. - - **NOTE**: If set to `"module"`, then static `import` / `export` syntax - will be valid, even if `ecmaVersion` is less than 6. - -- **onInsertedSemicolon**: If given a callback, that callback will be - called whenever a missing semicolon is inserted by the parser. The - callback will be given the character offset of the point where the - semicolon is inserted as argument, and if `locations` is on, also a - `{line, column}` object representing this position. - -- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing - commas. - -- **allowReserved**: If `false`, using a reserved word will generate - an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher - versions. When given the value `"never"`, reserved words and - keywords can also not be used as property names (as in Internet - Explorer's old parser). - -- **allowReturnOutsideFunction**: By default, a return statement at - the top level raises an error. Set this to `true` to accept such - code. - -- **allowImportExportEverywhere**: By default, `import` and `export` - declarations can only appear at a program's top level. Setting this - option to `true` allows them anywhere where a statement is allowed. - -- **allowAwaitOutsideFunction**: By default, `await` expressions can - only appear inside `async` functions. Setting this option to - `true` allows to have top-level `await` expressions. They are - still not allowed in non-`async` functions, though. - -- **allowHashBang**: When this is enabled (off by default), if the - code starts with the characters `#!` (as in a shellscript), the - first line will be treated as a comment. - -- **locations**: When `true`, each node has a `loc` object attached - with `start` and `end` subobjects, each of which contains the - one-based line and zero-based column numbers in `{line, column}` - form. Default is `false`. - -- **onToken**: If a function is passed for this option, each found - token will be passed in same format as tokens returned from - `tokenizer().getToken()`. - - If array is passed, each found token is pushed to it. - - Note that you are not allowed to call the parser from the - callback—that will corrupt its internal state. - -- **onComment**: If a function is passed for this option, whenever a - comment is encountered the function will be called with the - following parameters: - - - `block`: `true` if the comment is a block comment, false if it - is a line comment. - - `text`: The content of the comment. - - `start`: Character offset of the start of the comment. - - `end`: Character offset of the end of the comment. - - When the `locations` options is on, the `{line, column}` locations - of the comment’s start and end are passed as two additional - parameters. - - If array is passed for this option, each found comment is pushed - to it as object in Esprima format: - - ```javascript - { - "type": "Line" | "Block", - "value": "comment text", - "start": Number, - "end": Number, - // If `locations` option is on: - "loc": { - "start": {line: Number, column: Number} - "end": {line: Number, column: Number} - }, - // If `ranges` option is on: - "range": [Number, Number] - } - ``` - - Note that you are not allowed to call the parser from the - callback—that will corrupt its internal state. - -- **ranges**: Nodes have their start and end characters offsets - recorded in `start` and `end` properties (directly on the node, - rather than the `loc` object, which holds line/column data. To also - add a - [semi-standardized](https://bugzilla.mozilla.org/show_bug.cgi?id=745678) - `range` property holding a `[start, end]` array with the same - numbers, set the `ranges` option to `true`. - -- **program**: It is possible to parse multiple files into a single - AST by passing the tree produced by parsing the first file as the - `program` option in subsequent parses. This will add the toplevel - forms of the parsed file to the "Program" (top) node of an existing - parse tree. - -- **sourceFile**: When the `locations` option is `true`, you can pass - this option to add a `source` attribute in every node’s `loc` - object. Note that the contents of this option are not examined or - processed in any way; you are free to use whatever format you - choose. - -- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property - will be added (regardless of the `location` option) directly to the - nodes, rather than the `loc` object. - -- **preserveParens**: If this option is `true`, parenthesized expressions - are represented by (non-standard) `ParenthesizedExpression` nodes - that have a single `expression` property containing the expression - inside parentheses. - -**parseExpressionAt**`(input, offset, options)` will parse a single -expression in a string, and return its AST. It will not complain if -there is more of the string left after the expression. - -**tokenizer**`(input, options)` returns an object with a `getToken` -method that can be called repeatedly to get the next token, a `{start, -end, type, value}` object (with added `loc` property when the -`locations` option is enabled and `range` property when the `ranges` -option is enabled). When the token's type is `tokTypes.eof`, you -should stop calling the method, since it will keep returning that same -token forever. - -In ES6 environment, returned result can be used as any other -protocol-compliant iterable: - -```javascript -for (let token of acorn.tokenizer(str)) { - // iterate over the tokens -} - -// transform code to array of tokens: -var tokens = [...acorn.tokenizer(str)]; -``` - -**tokTypes** holds an object mapping names to the token type objects -that end up in the `type` properties of tokens. - -**getLineInfo**`(input, offset)` can be used to get a `{line, -column}` object for a given program string and offset. - -### The `Parser` class - -Instances of the **`Parser`** class contain all the state and logic -that drives a parse. It has static methods `parse`, -`parseExpressionAt`, and `tokenizer` that match the top-level -functions by the same name. - -When extending the parser with plugins, you need to call these methods -on the extended version of the class. To extend a parser with plugins, -you can use its static `extend` method. - -```javascript -var acorn = require("acorn"); -var jsx = require("acorn-jsx"); -var JSXParser = acorn.Parser.extend(jsx()); -JSXParser.parse("foo()"); -``` - -The `extend` method takes any number of plugin values, and returns a -new `Parser` class that includes the extra parser logic provided by -the plugins. - -## Command line interface - -The `bin/acorn` utility can be used to parse a file from the command -line. It accepts as arguments its input file and the following -options: - -- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version - to parse. Default is version 9. - -- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise. - -- `--locations`: Attaches a "loc" object to each node with "start" and - "end" subobjects, each of which contains the one-based line and - zero-based column numbers in `{line, column}` form. - -- `--allow-hash-bang`: If the code starts with the characters #! (as - in a shellscript), the first line will be treated as a comment. - -- `--compact`: No whitespace is used in the AST output. - -- `--silent`: Do not output the AST, just return the exit status. - -- `--help`: Print the usage information and quit. - -The utility spits out the syntax tree as JSON data. - -## Existing plugins - - - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx) - -Plugins for ECMAScript proposals: - - - [`acorn-stage3`](https://github.com/acornjs/acorn-stage3): Parse most stage 3 proposals, bundling: - - [`acorn-class-fields`](https://github.com/acornjs/acorn-class-fields): Parse [class fields proposal](https://github.com/tc39/proposal-class-fields) - - [`acorn-import-meta`](https://github.com/acornjs/acorn-import-meta): Parse [import.meta proposal](https://github.com/tc39/proposal-import-meta) - - [`acorn-private-methods`](https://github.com/acornjs/acorn-private-methods): parse [private methods, getters and setters proposal](https://github.com/tc39/proposal-private-methods)n diff --git a/node_modules/espree/node_modules/acorn/bin/acorn b/node_modules/espree/node_modules/acorn/bin/acorn deleted file mode 100755 index cf7df46890..0000000000 --- a/node_modules/espree/node_modules/acorn/bin/acorn +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -require('../dist/bin.js'); diff --git a/node_modules/espree/node_modules/acorn/dist/acorn.d.ts b/node_modules/espree/node_modules/acorn/dist/acorn.d.ts deleted file mode 100644 index bda5f803cb..0000000000 --- a/node_modules/espree/node_modules/acorn/dist/acorn.d.ts +++ /dev/null @@ -1,209 +0,0 @@ -export as namespace acorn -export = acorn - -declare namespace acorn { - function parse(input: string, options?: Options): Node - - function parseExpressionAt(input: string, pos?: number, options?: Options): Node - - function tokenizer(input: string, options?: Options): { - getToken(): Token - [Symbol.iterator](): Iterator - } - - interface Options { - ecmaVersion?: 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 - sourceType?: 'script' | 'module' - onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void - onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void - allowReserved?: boolean | 'never' - allowReturnOutsideFunction?: boolean - allowImportExportEverywhere?: boolean - allowAwaitOutsideFunction?: boolean - allowHashBang?: boolean - locations?: boolean - onToken?: ((token: Token) => any) | Token[] - onComment?: (( - isBlock: boolean, text: string, start: number, end: number, startLoc?: Position, - endLoc?: Position - ) => void) | Comment[] - ranges?: boolean - program?: Node - sourceFile?: string - directSourceFile?: string - preserveParens?: boolean - } - - class Parser { - constructor(options: Options, input: string, startPos?: number) - parse(this: Parser): Node - static parse(this: typeof Parser, input: string, options?: Options): Node - static parseExpressionAt(this: typeof Parser, input: string, pos: number, options?: Options): Node - static tokenizer(this: typeof Parser, input: string, options?: Options): { - getToken(): Token - [Symbol.iterator](): Iterator - } - static extend(this: typeof Parser, ...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser - } - - interface Position { line: number; column: number; offset: number } - - const defaultOptions: Options - - function getLineInfo(input: string, offset: number): Position - - class SourceLocation { - start: Position - end: Position - source?: string | null - constructor(p: Parser, start: Position, end: Position) - } - - class Node { - type: string - start: number - end: number - loc?: SourceLocation - sourceFile?: string - range?: [number, number] - constructor(parser: Parser, pos: number, loc?: SourceLocation) - } - - class TokenType { - label: string - keyword: string - beforeExpr: boolean - startsExpr: boolean - isLoop: boolean - isAssign: boolean - prefix: boolean - postfix: boolean - binop: number - updateContext?: (prevType: TokenType) => void - constructor(label: string, conf?: any) - } - - const tokTypes: { - num: TokenType - regexp: TokenType - string: TokenType - name: TokenType - eof: TokenType - bracketL: TokenType - bracketR: TokenType - braceL: TokenType - braceR: TokenType - parenL: TokenType - parenR: TokenType - comma: TokenType - semi: TokenType - colon: TokenType - dot: TokenType - question: TokenType - arrow: TokenType - template: TokenType - ellipsis: TokenType - backQuote: TokenType - dollarBraceL: TokenType - eq: TokenType - assign: TokenType - incDec: TokenType - prefix: TokenType - logicalOR: TokenType - logicalAND: TokenType - bitwiseOR: TokenType - bitwiseXOR: TokenType - bitwiseAND: TokenType - equality: TokenType - relational: TokenType - bitShift: TokenType - plusMin: TokenType - modulo: TokenType - star: TokenType - slash: TokenType - starstar: TokenType - _break: TokenType - _case: TokenType - _catch: TokenType - _continue: TokenType - _debugger: TokenType - _default: TokenType - _do: TokenType - _else: TokenType - _finally: TokenType - _for: TokenType - _function: TokenType - _if: TokenType - _return: TokenType - _switch: TokenType - _throw: TokenType - _try: TokenType - _var: TokenType - _const: TokenType - _while: TokenType - _with: TokenType - _new: TokenType - _this: TokenType - _super: TokenType - _class: TokenType - _extends: TokenType - _export: TokenType - _import: TokenType - _null: TokenType - _true: TokenType - _false: TokenType - _in: TokenType - _instanceof: TokenType - _typeof: TokenType - _void: TokenType - _delete: TokenType - } - - class TokContext { - constructor(token: string, isExpr: boolean, preserveSpace: boolean, override?: (p: Parser) => void) - } - - const tokContexts: { - b_stat: TokContext - b_expr: TokContext - b_tmpl: TokContext - p_stat: TokContext - p_expr: TokContext - q_tmpl: TokContext - f_expr: TokContext - } - - function isIdentifierStart(code: number, astral?: boolean): boolean - - function isIdentifierChar(code: number, astral?: boolean): boolean - - interface AbstractToken { - } - - interface Comment extends AbstractToken { - type: string - value: string - start: number - end: number - loc?: SourceLocation - range?: [number, number] - } - - class Token { - type: TokenType - value: any - start: number - end: number - loc?: SourceLocation - range?: [number, number] - constructor(p: Parser) - } - - function isNewLine(code: number): boolean - - const lineBreak: RegExp - - const lineBreakG: RegExp - - const version: string -} diff --git a/node_modules/espree/node_modules/acorn/dist/acorn.js b/node_modules/espree/node_modules/acorn/dist/acorn.js deleted file mode 100644 index 798c667953..0000000000 --- a/node_modules/espree/node_modules/acorn/dist/acorn.js +++ /dev/null @@ -1,5186 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.acorn = {})); -}(this, (function (exports) { 'use strict'; - - // Reserved word lists for various dialects of the language - - var reservedWords = { - 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", - 5: "class enum extends super const export import", - 6: "enum", - strict: "implements interface let package private protected public static yield", - strictBind: "eval arguments" - }; - - // And the keywords - - var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; - - var keywords = { - 5: ecma5AndLessKeywords, - "5module": ecma5AndLessKeywords + " export import", - 6: ecma5AndLessKeywords + " const class extends export import super" - }; - - var keywordRelationalOperator = /^in(stanceof)?$/; - - // ## Character categories - - // Big ugly regular expressions that match characters in the - // whitespace, identifier, and identifier-start categories. These - // are only applied when a character is found to actually have a - // code point above 128. - // Generated by `bin/generate-identifier-regex.js`. - var nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; - var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; - - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - - // These are a run-length and offset encoded representation of the - // >0xffff code points that are a valid part of identifiers. The - // offset starts at 0x10000, and each pair of numbers represents an - // offset to the next range, and then a size of the range. They were - // generated by bin/generate-identifier-regex.js - - // eslint-disable-next-line comma-spacing - var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938]; - - // eslint-disable-next-line comma-spacing - var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239]; - - // This has a complexity linear to the value of the code. The - // assumption is that looking up astral identifier characters is - // rare. - function isInAstralSet(code, set) { - var pos = 0x10000; - for (var i = 0; i < set.length; i += 2) { - pos += set[i]; - if (pos > code) { return false } - pos += set[i + 1]; - if (pos >= code) { return true } - } - } - - // Test whether a given character code starts an identifier. - - function isIdentifierStart(code, astral) { - if (code < 65) { return code === 36 } - if (code < 91) { return true } - if (code < 97) { return code === 95 } - if (code < 123) { return true } - if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) } - if (astral === false) { return false } - return isInAstralSet(code, astralIdentifierStartCodes) - } - - // Test whether a given character is part of an identifier. - - function isIdentifierChar(code, astral) { - if (code < 48) { return code === 36 } - if (code < 58) { return true } - if (code < 65) { return false } - if (code < 91) { return true } - if (code < 97) { return code === 95 } - if (code < 123) { return true } - if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) } - if (astral === false) { return false } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes) - } - - // ## Token types - - // The assignment of fine-grained, information-carrying type objects - // allows the tokenizer to store the information it has about a - // token in a way that is very cheap for the parser to look up. - - // All token type variables start with an underscore, to make them - // easy to recognize. - - // The `beforeExpr` property is used to disambiguate between regular - // expressions and divisions. It is set on all token types that can - // be followed by an expression (thus, a slash after them would be a - // regular expression). - // - // The `startsExpr` property is used to check if the token ends a - // `yield` expression. It is set on all token types that either can - // directly start an expression (like a quotation mark) or can - // continue an expression (like the body of a string). - // - // `isLoop` marks a keyword as starting a loop, which is important - // to know when parsing a label, in order to allow or disallow - // continue jumps to that label. - - var TokenType = function TokenType(label, conf) { - if ( conf === void 0 ) conf = {}; - - this.label = label; - this.keyword = conf.keyword; - this.beforeExpr = !!conf.beforeExpr; - this.startsExpr = !!conf.startsExpr; - this.isLoop = !!conf.isLoop; - this.isAssign = !!conf.isAssign; - this.prefix = !!conf.prefix; - this.postfix = !!conf.postfix; - this.binop = conf.binop || null; - this.updateContext = null; - }; - - function binop(name, prec) { - return new TokenType(name, {beforeExpr: true, binop: prec}) - } - var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}; - - // Map keyword names to token types. - - var keywords$1 = {}; - - // Succinct definitions of keyword token types - function kw(name, options) { - if ( options === void 0 ) options = {}; - - options.keyword = name; - return keywords$1[name] = new TokenType(name, options) - } - - var types = { - num: new TokenType("num", startsExpr), - regexp: new TokenType("regexp", startsExpr), - string: new TokenType("string", startsExpr), - name: new TokenType("name", startsExpr), - eof: new TokenType("eof"), - - // Punctuation token types. - bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}), - bracketR: new TokenType("]"), - braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}), - braceR: new TokenType("}"), - parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}), - parenR: new TokenType(")"), - comma: new TokenType(",", beforeExpr), - semi: new TokenType(";", beforeExpr), - colon: new TokenType(":", beforeExpr), - dot: new TokenType("."), - question: new TokenType("?", beforeExpr), - questionDot: new TokenType("?."), - arrow: new TokenType("=>", beforeExpr), - template: new TokenType("template"), - invalidTemplate: new TokenType("invalidTemplate"), - ellipsis: new TokenType("...", beforeExpr), - backQuote: new TokenType("`", startsExpr), - dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}), - - // Operators. These carry several kinds of properties to help the - // parser use them properly (the presence of these properties is - // what categorizes them as operators). - // - // `binop`, when present, specifies that this operator is a binary - // operator, and will refer to its precedence. - // - // `prefix` and `postfix` mark the operator as a prefix or postfix - // unary operator. - // - // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as - // binary operators with a very low precedence, that should result - // in AssignmentExpression nodes. - - eq: new TokenType("=", {beforeExpr: true, isAssign: true}), - assign: new TokenType("_=", {beforeExpr: true, isAssign: true}), - incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}), - prefix: new TokenType("!/~", {beforeExpr: true, prefix: true, startsExpr: true}), - logicalOR: binop("||", 1), - logicalAND: binop("&&", 2), - bitwiseOR: binop("|", 3), - bitwiseXOR: binop("^", 4), - bitwiseAND: binop("&", 5), - equality: binop("==/!=/===/!==", 6), - relational: binop("/<=/>=", 7), - bitShift: binop("<>/>>>", 8), - plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}), - modulo: binop("%", 10), - star: binop("*", 10), - slash: binop("/", 10), - starstar: new TokenType("**", {beforeExpr: true}), - coalesce: binop("??", 1), - - // Keyword token types. - _break: kw("break"), - _case: kw("case", beforeExpr), - _catch: kw("catch"), - _continue: kw("continue"), - _debugger: kw("debugger"), - _default: kw("default", beforeExpr), - _do: kw("do", {isLoop: true, beforeExpr: true}), - _else: kw("else", beforeExpr), - _finally: kw("finally"), - _for: kw("for", {isLoop: true}), - _function: kw("function", startsExpr), - _if: kw("if"), - _return: kw("return", beforeExpr), - _switch: kw("switch"), - _throw: kw("throw", beforeExpr), - _try: kw("try"), - _var: kw("var"), - _const: kw("const"), - _while: kw("while", {isLoop: true}), - _with: kw("with"), - _new: kw("new", {beforeExpr: true, startsExpr: true}), - _this: kw("this", startsExpr), - _super: kw("super", startsExpr), - _class: kw("class", startsExpr), - _extends: kw("extends", beforeExpr), - _export: kw("export"), - _import: kw("import", startsExpr), - _null: kw("null", startsExpr), - _true: kw("true", startsExpr), - _false: kw("false", startsExpr), - _in: kw("in", {beforeExpr: true, binop: 7}), - _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}), - _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}), - _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}), - _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true}) - }; - - // Matches a whole line break (where CRLF is considered a single - // line break). Used to count lines. - - var lineBreak = /\r\n?|\n|\u2028|\u2029/; - var lineBreakG = new RegExp(lineBreak.source, "g"); - - function isNewLine(code, ecma2019String) { - return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029)) - } - - var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; - - var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; - - var ref = Object.prototype; - var hasOwnProperty = ref.hasOwnProperty; - var toString = ref.toString; - - // Checks if an object has a property. - - function has(obj, propName) { - return hasOwnProperty.call(obj, propName) - } - - var isArray = Array.isArray || (function (obj) { return ( - toString.call(obj) === "[object Array]" - ); }); - - function wordsRegexp(words) { - return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") - } - - // These are used when `options.locations` is on, for the - // `startLoc` and `endLoc` properties. - - var Position = function Position(line, col) { - this.line = line; - this.column = col; - }; - - Position.prototype.offset = function offset (n) { - return new Position(this.line, this.column + n) - }; - - var SourceLocation = function SourceLocation(p, start, end) { - this.start = start; - this.end = end; - if (p.sourceFile !== null) { this.source = p.sourceFile; } - }; - - // The `getLineInfo` function is mostly useful when the - // `locations` option is off (for performance reasons) and you - // want to find the line/column position for a given character - // offset. `input` should be the code string that the offset refers - // into. - - function getLineInfo(input, offset) { - for (var line = 1, cur = 0;;) { - lineBreakG.lastIndex = cur; - var match = lineBreakG.exec(input); - if (match && match.index < offset) { - ++line; - cur = match.index + match[0].length; - } else { - return new Position(line, offset - cur) - } - } - } - - // A second optional argument can be given to further configure - // the parser process. These options are recognized: - - var defaultOptions = { - // `ecmaVersion` indicates the ECMAScript version to parse. Must be - // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10 - // (2019). This influences support for strict mode, the set of - // reserved words, and support for new syntax features. The default - // is 10. - ecmaVersion: 10, - // `sourceType` indicates the mode the code should be parsed in. - // Can be either `"script"` or `"module"`. This influences global - // strict mode and parsing of `import` and `export` declarations. - sourceType: "script", - // `onInsertedSemicolon` can be a callback that will be called - // when a semicolon is automatically inserted. It will be passed - // the position of the comma as an offset, and if `locations` is - // enabled, it is given the location as a `{line, column}` object - // as second argument. - onInsertedSemicolon: null, - // `onTrailingComma` is similar to `onInsertedSemicolon`, but for - // trailing commas. - onTrailingComma: null, - // By default, reserved words are only enforced if ecmaVersion >= 5. - // Set `allowReserved` to a boolean value to explicitly turn this on - // an off. When this option has the value "never", reserved words - // and keywords can also not be used as property names. - allowReserved: null, - // When enabled, a return at the top level is not considered an - // error. - allowReturnOutsideFunction: false, - // When enabled, import/export statements are not constrained to - // appearing at the top of the program. - allowImportExportEverywhere: false, - // When enabled, await identifiers are allowed to appear at the top-level scope, - // but they are still not allowed in non-async functions. - allowAwaitOutsideFunction: false, - // When enabled, hashbang directive in the beginning of file - // is allowed and treated as a line comment. - allowHashBang: false, - // When `locations` is on, `loc` properties holding objects with - // `start` and `end` properties in `{line, column}` form (with - // line being 1-based and column 0-based) will be attached to the - // nodes. - locations: false, - // A function can be passed as `onToken` option, which will - // cause Acorn to call that function with object in the same - // format as tokens returned from `tokenizer().getToken()`. Note - // that you are not allowed to call the parser from the - // callback—that will corrupt its internal state. - onToken: null, - // A function can be passed as `onComment` option, which will - // cause Acorn to call that function with `(block, text, start, - // end)` parameters whenever a comment is skipped. `block` is a - // boolean indicating whether this is a block (`/* */`) comment, - // `text` is the content of the comment, and `start` and `end` are - // character offsets that denote the start and end of the comment. - // When the `locations` option is on, two more parameters are - // passed, the full `{line, column}` locations of the start and - // end of the comments. Note that you are not allowed to call the - // parser from the callback—that will corrupt its internal state. - onComment: null, - // Nodes have their start and end characters offsets recorded in - // `start` and `end` properties (directly on the node, rather than - // the `loc` object, which holds line/column data. To also add a - // [semi-standardized][range] `range` property holding a `[start, - // end]` array with the same numbers, set the `ranges` option to - // `true`. - // - // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 - ranges: false, - // It is possible to parse multiple files into a single AST by - // passing the tree produced by parsing the first file as - // `program` option in subsequent parses. This will add the - // toplevel forms of the parsed file to the `Program` (top) node - // of an existing parse tree. - program: null, - // When `locations` is on, you can pass this to record the source - // file in every node's `loc` object. - sourceFile: null, - // This value, if given, is stored in every node, whether - // `locations` is on or off. - directSourceFile: null, - // When enabled, parenthesized expressions are represented by - // (non-standard) ParenthesizedExpression nodes - preserveParens: false - }; - - // Interpret and default an options object - - function getOptions(opts) { - var options = {}; - - for (var opt in defaultOptions) - { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; } - - if (options.ecmaVersion >= 2015) - { options.ecmaVersion -= 2009; } - - if (options.allowReserved == null) - { options.allowReserved = options.ecmaVersion < 5; } - - if (isArray(options.onToken)) { - var tokens = options.onToken; - options.onToken = function (token) { return tokens.push(token); }; - } - if (isArray(options.onComment)) - { options.onComment = pushComment(options, options.onComment); } - - return options - } - - function pushComment(options, array) { - return function(block, text, start, end, startLoc, endLoc) { - var comment = { - type: block ? "Block" : "Line", - value: text, - start: start, - end: end - }; - if (options.locations) - { comment.loc = new SourceLocation(this, startLoc, endLoc); } - if (options.ranges) - { comment.range = [start, end]; } - array.push(comment); - } - } - - // Each scope gets a bitset that may contain these flags - var - SCOPE_TOP = 1, - SCOPE_FUNCTION = 2, - SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION, - SCOPE_ASYNC = 4, - SCOPE_GENERATOR = 8, - SCOPE_ARROW = 16, - SCOPE_SIMPLE_CATCH = 32, - SCOPE_SUPER = 64, - SCOPE_DIRECT_SUPER = 128; - - function functionFlags(async, generator) { - return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0) - } - - // Used in checkLVal and declareName to determine the type of a binding - var - BIND_NONE = 0, // Not a binding - BIND_VAR = 1, // Var-style binding - BIND_LEXICAL = 2, // Let- or const-style binding - BIND_FUNCTION = 3, // Function declaration - BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding - BIND_OUTSIDE = 5; // Special case for function names as bound inside the function - - var Parser = function Parser(options, input, startPos) { - this.options = options = getOptions(options); - this.sourceFile = options.sourceFile; - this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); - var reserved = ""; - if (options.allowReserved !== true) { - for (var v = options.ecmaVersion;; v--) - { if (reserved = reservedWords[v]) { break } } - if (options.sourceType === "module") { reserved += " await"; } - } - this.reservedWords = wordsRegexp(reserved); - var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict; - this.reservedWordsStrict = wordsRegexp(reservedStrict); - this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind); - this.input = String(input); - - // Used to signal to callers of `readWord1` whether the word - // contained any escape sequences. This is needed because words with - // escape sequences must not be interpreted as keywords. - this.containsEsc = false; - - // Set up token state - - // The current position of the tokenizer in the input. - if (startPos) { - this.pos = startPos; - this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; - this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; - } else { - this.pos = this.lineStart = 0; - this.curLine = 1; - } - - // Properties of the current token: - // Its type - this.type = types.eof; - // For tokens that include more information than their type, the value - this.value = null; - // Its start and end offset - this.start = this.end = this.pos; - // And, if locations are used, the {line, column} object - // corresponding to those offsets - this.startLoc = this.endLoc = this.curPosition(); - - // Position information for the previous token - this.lastTokEndLoc = this.lastTokStartLoc = null; - this.lastTokStart = this.lastTokEnd = this.pos; - - // The context stack is used to superficially track syntactic - // context to predict whether a regular expression is allowed in a - // given position. - this.context = this.initialContext(); - this.exprAllowed = true; - - // Figure out if it's a module code. - this.inModule = options.sourceType === "module"; - this.strict = this.inModule || this.strictDirective(this.pos); - - // Used to signify the start of a potential arrow function - this.potentialArrowAt = -1; - - // Positions to delayed-check that yield/await does not exist in default parameters. - this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; - // Labels in scope. - this.labels = []; - // Thus-far undefined exports. - this.undefinedExports = {}; - - // If enabled, skip leading hashbang line. - if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") - { this.skipLineComment(2); } - - // Scope tracking for duplicate variable names (see scope.js) - this.scopeStack = []; - this.enterScope(SCOPE_TOP); - - // For RegExp validation - this.regexpState = null; - }; - - var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true } }; - - Parser.prototype.parse = function parse () { - var node = this.options.program || this.startNode(); - this.nextToken(); - return this.parseTopLevel(node) - }; - - prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; - prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }; - prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }; - prototypeAccessors.allowSuper.get = function () { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }; - prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; - prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; - - // Switch to a getter for 7.0.0. - Parser.prototype.inNonArrowFunction = function inNonArrowFunction () { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }; - - Parser.extend = function extend () { - var plugins = [], len = arguments.length; - while ( len-- ) plugins[ len ] = arguments[ len ]; - - var cls = this; - for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); } - return cls - }; - - Parser.parse = function parse (input, options) { - return new this(options, input).parse() - }; - - Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) { - var parser = new this(options, input, pos); - parser.nextToken(); - return parser.parseExpression() - }; - - Parser.tokenizer = function tokenizer (input, options) { - return new this(options, input) - }; - - Object.defineProperties( Parser.prototype, prototypeAccessors ); - - var pp = Parser.prototype; - - // ## Parser utilities - - var literal = /^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)")/; - pp.strictDirective = function(start) { - for (;;) { - // Try to find string literal. - skipWhiteSpace.lastIndex = start; - start += skipWhiteSpace.exec(this.input)[0].length; - var match = literal.exec(this.input.slice(start)); - if (!match) { return false } - if ((match[1] || match[2]) === "use strict") { - skipWhiteSpace.lastIndex = start + match[0].length; - var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; - var next = this.input.charAt(end); - return next === ";" || next === "}" || - (lineBreak.test(spaceAfter[0]) && - !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "=")) - } - start += match[0].length; - - // Skip semicolon, if any. - skipWhiteSpace.lastIndex = start; - start += skipWhiteSpace.exec(this.input)[0].length; - if (this.input[start] === ";") - { start++; } - } - }; - - // Predicate that tests whether the next token is of the given - // type, and if yes, consumes it as a side effect. - - pp.eat = function(type) { - if (this.type === type) { - this.next(); - return true - } else { - return false - } - }; - - // Tests whether parsed token is a contextual keyword. - - pp.isContextual = function(name) { - return this.type === types.name && this.value === name && !this.containsEsc - }; - - // Consumes contextual keyword if possible. - - pp.eatContextual = function(name) { - if (!this.isContextual(name)) { return false } - this.next(); - return true - }; - - // Asserts that following token is given contextual keyword. - - pp.expectContextual = function(name) { - if (!this.eatContextual(name)) { this.unexpected(); } - }; - - // Test whether a semicolon can be inserted at the current position. - - pp.canInsertSemicolon = function() { - return this.type === types.eof || - this.type === types.braceR || - lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) - }; - - pp.insertSemicolon = function() { - if (this.canInsertSemicolon()) { - if (this.options.onInsertedSemicolon) - { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } - return true - } - }; - - // Consume a semicolon, or, failing that, see if we are allowed to - // pretend that there is a semicolon at this position. - - pp.semicolon = function() { - if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); } - }; - - pp.afterTrailingComma = function(tokType, notNext) { - if (this.type === tokType) { - if (this.options.onTrailingComma) - { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } - if (!notNext) - { this.next(); } - return true - } - }; - - // Expect a token of a given type. If found, consume it, otherwise, - // raise an unexpected token error. - - pp.expect = function(type) { - this.eat(type) || this.unexpected(); - }; - - // Raise an unexpected token error. - - pp.unexpected = function(pos) { - this.raise(pos != null ? pos : this.start, "Unexpected token"); - }; - - function DestructuringErrors() { - this.shorthandAssign = - this.trailingComma = - this.parenthesizedAssign = - this.parenthesizedBind = - this.doubleProto = - -1; - } - - pp.checkPatternErrors = function(refDestructuringErrors, isAssign) { - if (!refDestructuringErrors) { return } - if (refDestructuringErrors.trailingComma > -1) - { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } - var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; - if (parens > -1) { this.raiseRecoverable(parens, "Parenthesized pattern"); } - }; - - pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { - if (!refDestructuringErrors) { return false } - var shorthandAssign = refDestructuringErrors.shorthandAssign; - var doubleProto = refDestructuringErrors.doubleProto; - if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 } - if (shorthandAssign >= 0) - { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); } - if (doubleProto >= 0) - { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } - }; - - pp.checkYieldAwaitInDefaultParams = function() { - if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) - { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } - if (this.awaitPos) - { this.raise(this.awaitPos, "Await expression cannot be a default value"); } - }; - - pp.isSimpleAssignTarget = function(expr) { - if (expr.type === "ParenthesizedExpression") - { return this.isSimpleAssignTarget(expr.expression) } - return expr.type === "Identifier" || expr.type === "MemberExpression" - }; - - var pp$1 = Parser.prototype; - - // ### Statement parsing - - // Parse a program. Initializes the parser, reads any number of - // statements, and wraps them in a Program node. Optionally takes a - // `program` argument. If present, the statements will be appended - // to its body instead of creating a new node. - - pp$1.parseTopLevel = function(node) { - var exports = {}; - if (!node.body) { node.body = []; } - while (this.type !== types.eof) { - var stmt = this.parseStatement(null, true, exports); - node.body.push(stmt); - } - if (this.inModule) - { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1) - { - var name = list[i]; - - this.raiseRecoverable(this.undefinedExports[name].start, ("Export '" + name + "' is not defined")); - } } - this.adaptDirectivePrologue(node.body); - this.next(); - node.sourceType = this.options.sourceType; - return this.finishNode(node, "Program") - }; - - var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; - - pp$1.isLet = function(context) { - if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false } - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - // For ambiguous cases, determine if a LexicalDeclaration (or only a - // Statement) is allowed here. If context is not empty then only a Statement - // is allowed. However, `let [` is an explicit negative lookahead for - // ExpressionStatement, so special-case it first. - if (nextCh === 91) { return true } // '[' - if (context) { return false } - - if (nextCh === 123) { return true } // '{' - if (isIdentifierStart(nextCh, true)) { - var pos = next + 1; - while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; } - var ident = this.input.slice(next, pos); - if (!keywordRelationalOperator.test(ident)) { return true } - } - return false - }; - - // check 'async [no LineTerminator here] function' - // - 'async /*foo*/ function' is OK. - // - 'async /*\n*/ function' is invalid. - pp$1.isAsyncFunction = function() { - if (this.options.ecmaVersion < 8 || !this.isContextual("async")) - { return false } - - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length; - return !lineBreak.test(this.input.slice(this.pos, next)) && - this.input.slice(next, next + 8) === "function" && - (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8))) - }; - - // Parse a single statement. - // - // If expecting a statement and finding a slash operator, parse a - // regular expression literal. This is to handle cases like - // `if (foo) /blah/.exec(foo)`, where looking at the previous token - // does not help. - - pp$1.parseStatement = function(context, topLevel, exports) { - var starttype = this.type, node = this.startNode(), kind; - - if (this.isLet(context)) { - starttype = types._var; - kind = "let"; - } - - // Most types of statements are recognized by the keyword they - // start with. Many are trivial to parse, some require a bit of - // complexity. - - switch (starttype) { - case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword) - case types._debugger: return this.parseDebuggerStatement(node) - case types._do: return this.parseDoStatement(node) - case types._for: return this.parseForStatement(node) - case types._function: - // Function as sole body of either an if statement or a labeled statement - // works, but not when it is part of a labeled statement that is the sole - // body of an if statement. - if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); } - return this.parseFunctionStatement(node, false, !context) - case types._class: - if (context) { this.unexpected(); } - return this.parseClass(node, true) - case types._if: return this.parseIfStatement(node) - case types._return: return this.parseReturnStatement(node) - case types._switch: return this.parseSwitchStatement(node) - case types._throw: return this.parseThrowStatement(node) - case types._try: return this.parseTryStatement(node) - case types._const: case types._var: - kind = kind || this.value; - if (context && kind !== "var") { this.unexpected(); } - return this.parseVarStatement(node, kind) - case types._while: return this.parseWhileStatement(node) - case types._with: return this.parseWithStatement(node) - case types.braceL: return this.parseBlock(true, node) - case types.semi: return this.parseEmptyStatement(node) - case types._export: - case types._import: - if (this.options.ecmaVersion > 10 && starttype === types._import) { - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - if (nextCh === 40 || nextCh === 46) // '(' or '.' - { return this.parseExpressionStatement(node, this.parseExpression()) } - } - - if (!this.options.allowImportExportEverywhere) { - if (!topLevel) - { this.raise(this.start, "'import' and 'export' may only appear at the top level"); } - if (!this.inModule) - { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } - } - return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports) - - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - default: - if (this.isAsyncFunction()) { - if (context) { this.unexpected(); } - this.next(); - return this.parseFunctionStatement(node, true, !context) - } - - var maybeName = this.value, expr = this.parseExpression(); - if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) - { return this.parseLabeledStatement(node, maybeName, expr, context) } - else { return this.parseExpressionStatement(node, expr) } - } - }; - - pp$1.parseBreakContinueStatement = function(node, keyword) { - var isBreak = keyword === "break"; - this.next(); - if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; } - else if (this.type !== types.name) { this.unexpected(); } - else { - node.label = this.parseIdent(); - this.semicolon(); - } - - // Verify that there is an actual destination to break or - // continue to. - var i = 0; - for (; i < this.labels.length; ++i) { - var lab = this.labels[i]; - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) { break } - if (node.label && isBreak) { break } - } - } - if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); } - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") - }; - - pp$1.parseDebuggerStatement = function(node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement") - }; - - pp$1.parseDoStatement = function(node) { - this.next(); - this.labels.push(loopLabel); - node.body = this.parseStatement("do"); - this.labels.pop(); - this.expect(types._while); - node.test = this.parseParenExpression(); - if (this.options.ecmaVersion >= 6) - { this.eat(types.semi); } - else - { this.semicolon(); } - return this.finishNode(node, "DoWhileStatement") - }; - - // Disambiguating between a `for` and a `for`/`in` or `for`/`of` - // loop is non-trivial. Basically, we have to parse the init `var` - // statement or expression, disallowing the `in` operator (see - // the second parameter to `parseExpression`), and then check - // whether the next token is `in` or `of`. When there is no init - // part (semicolon immediately after the opening parenthesis), it - // is a regular `for` loop. - - pp$1.parseForStatement = function(node) { - this.next(); - var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual("await")) ? this.lastTokStart : -1; - this.labels.push(loopLabel); - this.enterScope(0); - this.expect(types.parenL); - if (this.type === types.semi) { - if (awaitAt > -1) { this.unexpected(awaitAt); } - return this.parseFor(node, null) - } - var isLet = this.isLet(); - if (this.type === types._var || this.type === types._const || isLet) { - var init$1 = this.startNode(), kind = isLet ? "let" : this.value; - this.next(); - this.parseVar(init$1, true, kind); - this.finishNode(init$1, "VariableDeclaration"); - if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { - if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { - if (awaitAt > -1) { this.unexpected(awaitAt); } - } else { node.await = awaitAt > -1; } - } - return this.parseForIn(node, init$1) - } - if (awaitAt > -1) { this.unexpected(awaitAt); } - return this.parseFor(node, init$1) - } - var refDestructuringErrors = new DestructuringErrors; - var init = this.parseExpression(true, refDestructuringErrors); - if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { - if (awaitAt > -1) { this.unexpected(awaitAt); } - } else { node.await = awaitAt > -1; } - } - this.toAssignable(init, false, refDestructuringErrors); - this.checkLVal(init); - return this.parseForIn(node, init) - } else { - this.checkExpressionErrors(refDestructuringErrors, true); - } - if (awaitAt > -1) { this.unexpected(awaitAt); } - return this.parseFor(node, init) - }; - - pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) { - this.next(); - return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync) - }; - - pp$1.parseIfStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - // allow function declarations in branches, but only in non-strict mode - node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types._else) ? this.parseStatement("if") : null; - return this.finishNode(node, "IfStatement") - }; - - pp$1.parseReturnStatement = function(node) { - if (!this.inFunction && !this.options.allowReturnOutsideFunction) - { this.raise(this.start, "'return' outside of function"); } - this.next(); - - // In `return` (and `break`/`continue`), the keywords with - // optional arguments, we eagerly look for a semicolon or the - // possibility to insert one. - - if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; } - else { node.argument = this.parseExpression(); this.semicolon(); } - return this.finishNode(node, "ReturnStatement") - }; - - pp$1.parseSwitchStatement = function(node) { - this.next(); - node.discriminant = this.parseParenExpression(); - node.cases = []; - this.expect(types.braceL); - this.labels.push(switchLabel); - this.enterScope(0); - - // Statements under must be grouped (by label) in SwitchCase - // nodes. `cur` is used to keep the node that we are currently - // adding statements to. - - var cur; - for (var sawDefault = false; this.type !== types.braceR;) { - if (this.type === types._case || this.type === types._default) { - var isCase = this.type === types._case; - if (cur) { this.finishNode(cur, "SwitchCase"); } - node.cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) { this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); } - sawDefault = true; - cur.test = null; - } - this.expect(types.colon); - } else { - if (!cur) { this.unexpected(); } - cur.consequent.push(this.parseStatement(null)); - } - } - this.exitScope(); - if (cur) { this.finishNode(cur, "SwitchCase"); } - this.next(); // Closing brace - this.labels.pop(); - return this.finishNode(node, "SwitchStatement") - }; - - pp$1.parseThrowStatement = function(node) { - this.next(); - if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) - { this.raise(this.lastTokEnd, "Illegal newline after throw"); } - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement") - }; - - // Reused empty array added for node fields that are always empty. - - var empty = []; - - pp$1.parseTryStatement = function(node) { - this.next(); - node.block = this.parseBlock(); - node.handler = null; - if (this.type === types._catch) { - var clause = this.startNode(); - this.next(); - if (this.eat(types.parenL)) { - clause.param = this.parseBindingAtom(); - var simple = clause.param.type === "Identifier"; - this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); - this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); - this.expect(types.parenR); - } else { - if (this.options.ecmaVersion < 10) { this.unexpected(); } - clause.param = null; - this.enterScope(0); - } - clause.body = this.parseBlock(false); - this.exitScope(); - node.handler = this.finishNode(clause, "CatchClause"); - } - node.finalizer = this.eat(types._finally) ? this.parseBlock() : null; - if (!node.handler && !node.finalizer) - { this.raise(node.start, "Missing catch or finally clause"); } - return this.finishNode(node, "TryStatement") - }; - - pp$1.parseVarStatement = function(node, kind) { - this.next(); - this.parseVar(node, false, kind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration") - }; - - pp$1.parseWhileStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - this.labels.push(loopLabel); - node.body = this.parseStatement("while"); - this.labels.pop(); - return this.finishNode(node, "WhileStatement") - }; - - pp$1.parseWithStatement = function(node) { - if (this.strict) { this.raise(this.start, "'with' in strict mode"); } - this.next(); - node.object = this.parseParenExpression(); - node.body = this.parseStatement("with"); - return this.finishNode(node, "WithStatement") - }; - - pp$1.parseEmptyStatement = function(node) { - this.next(); - return this.finishNode(node, "EmptyStatement") - }; - - pp$1.parseLabeledStatement = function(node, maybeName, expr, context) { - for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) - { - var label = list[i$1]; - - if (label.name === maybeName) - { this.raise(expr.start, "Label '" + maybeName + "' is already declared"); - } } - var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null; - for (var i = this.labels.length - 1; i >= 0; i--) { - var label$1 = this.labels[i]; - if (label$1.statementStart === node.start) { - // Update information about previous labels on this node - label$1.statementStart = this.start; - label$1.kind = kind; - } else { break } - } - this.labels.push({name: maybeName, kind: kind, statementStart: this.start}); - node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); - this.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement") - }; - - pp$1.parseExpressionStatement = function(node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement") - }; - - // Parse a semicolon-enclosed block of statements, handling `"use - // strict"` declarations when `allowStrict` is true (used for - // function bodies). - - pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) { - if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; - if ( node === void 0 ) node = this.startNode(); - - node.body = []; - this.expect(types.braceL); - if (createNewLexicalScope) { this.enterScope(0); } - while (this.type !== types.braceR) { - var stmt = this.parseStatement(null); - node.body.push(stmt); - } - if (exitStrict) { this.strict = false; } - this.next(); - if (createNewLexicalScope) { this.exitScope(); } - return this.finishNode(node, "BlockStatement") - }; - - // Parse a regular `for` loop. The disambiguation code in - // `parseStatement` will already have parsed the init statement or - // expression. - - pp$1.parseFor = function(node, init) { - node.init = init; - this.expect(types.semi); - node.test = this.type === types.semi ? null : this.parseExpression(); - this.expect(types.semi); - node.update = this.type === types.parenR ? null : this.parseExpression(); - this.expect(types.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, "ForStatement") - }; - - // Parse a `for`/`in` and `for`/`of` loop, which are almost - // same from parser's perspective. - - pp$1.parseForIn = function(node, init) { - var isForIn = this.type === types._in; - this.next(); - - if ( - init.type === "VariableDeclaration" && - init.declarations[0].init != null && - ( - !isForIn || - this.options.ecmaVersion < 8 || - this.strict || - init.kind !== "var" || - init.declarations[0].id.type !== "Identifier" - ) - ) { - this.raise( - init.start, - ((isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer") - ); - } else if (init.type === "AssignmentPattern") { - this.raise(init.start, "Invalid left-hand side in for-loop"); - } - node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); - this.expect(types.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement") - }; - - // Parse a list of variable declarations. - - pp$1.parseVar = function(node, isFor, kind) { - node.declarations = []; - node.kind = kind; - for (;;) { - var decl = this.startNode(); - this.parseVarId(decl, kind); - if (this.eat(types.eq)) { - decl.init = this.parseMaybeAssign(isFor); - } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { - this.unexpected(); - } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) { - this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); - } else { - decl.init = null; - } - node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types.comma)) { break } - } - return node - }; - - pp$1.parseVarId = function(decl, kind) { - decl.id = this.parseBindingAtom(); - this.checkLVal(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); - }; - - var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4; - - // Parse a function declaration or literal (depending on the - // `statement & FUNC_STATEMENT`). - - // Remove `allowExpressionBody` for 7.0.0, as it is only called with false - pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) { - this.initFunction(node); - if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { - if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT)) - { this.unexpected(); } - node.generator = this.eat(types.star); - } - if (this.options.ecmaVersion >= 8) - { node.async = !!isAsync; } - - if (statement & FUNC_STATEMENT) { - node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent(); - if (node.id && !(statement & FUNC_HANGING_STATEMENT)) - // If it is a regular function declaration in sloppy mode, then it is - // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding - // mode depends on properties of the current scope (see - // treatFunctionsAsVar). - { this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); } - } - - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags(node.async, node.generator)); - - if (!(statement & FUNC_STATEMENT)) - { node.id = this.type === types.name ? this.parseIdent() : null; } - - this.parseFunctionParams(node); - this.parseFunctionBody(node, allowExpressionBody, false); - - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression") - }; - - pp$1.parseFunctionParams = function(node) { - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - }; - - // Parse a class declaration or literal (depending on the - // `isStatement` parameter). - - pp$1.parseClass = function(node, isStatement) { - this.next(); - - // ecma-262 14.6 Class Definitions - // A class definition is always strict mode code. - var oldStrict = this.strict; - this.strict = true; - - this.parseClassId(node, isStatement); - this.parseClassSuper(node); - var classBody = this.startNode(); - var hadConstructor = false; - classBody.body = []; - this.expect(types.braceL); - while (this.type !== types.braceR) { - var element = this.parseClassElement(node.superClass !== null); - if (element) { - classBody.body.push(element); - if (element.type === "MethodDefinition" && element.kind === "constructor") { - if (hadConstructor) { this.raise(element.start, "Duplicate constructor in the same class"); } - hadConstructor = true; - } - } - } - this.strict = oldStrict; - this.next(); - node.body = this.finishNode(classBody, "ClassBody"); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") - }; - - pp$1.parseClassElement = function(constructorAllowsSuper) { - var this$1 = this; - - if (this.eat(types.semi)) { return null } - - var method = this.startNode(); - var tryContextual = function (k, noLineBreak) { - if ( noLineBreak === void 0 ) noLineBreak = false; - - var start = this$1.start, startLoc = this$1.startLoc; - if (!this$1.eatContextual(k)) { return false } - if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true } - if (method.key) { this$1.unexpected(); } - method.computed = false; - method.key = this$1.startNodeAt(start, startLoc); - method.key.name = k; - this$1.finishNode(method.key, "Identifier"); - return false - }; - - method.kind = "method"; - method.static = tryContextual("static"); - var isGenerator = this.eat(types.star); - var isAsync = false; - if (!isGenerator) { - if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) { - isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); - } else if (tryContextual("get")) { - method.kind = "get"; - } else if (tryContextual("set")) { - method.kind = "set"; - } - } - if (!method.key) { this.parsePropertyName(method); } - var key = method.key; - var allowsDirectSuper = false; - if (!method.computed && !method.static && (key.type === "Identifier" && key.name === "constructor" || - key.type === "Literal" && key.value === "constructor")) { - if (method.kind !== "method") { this.raise(key.start, "Constructor can't have get/set modifier"); } - if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); } - if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); } - method.kind = "constructor"; - allowsDirectSuper = constructorAllowsSuper; - } else if (method.static && key.type === "Identifier" && key.name === "prototype") { - this.raise(key.start, "Classes may not have a static property named prototype"); - } - this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper); - if (method.kind === "get" && method.value.params.length !== 0) - { this.raiseRecoverable(method.value.start, "getter should have no params"); } - if (method.kind === "set" && method.value.params.length !== 1) - { this.raiseRecoverable(method.value.start, "setter should have exactly one param"); } - if (method.kind === "set" && method.value.params[0].type === "RestElement") - { this.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params"); } - return method - }; - - pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { - method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); - return this.finishNode(method, "MethodDefinition") - }; - - pp$1.parseClassId = function(node, isStatement) { - if (this.type === types.name) { - node.id = this.parseIdent(); - if (isStatement) - { this.checkLVal(node.id, BIND_LEXICAL, false); } - } else { - if (isStatement === true) - { this.unexpected(); } - node.id = null; - } - }; - - pp$1.parseClassSuper = function(node) { - node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null; - }; - - // Parses module export declaration. - - pp$1.parseExport = function(node, exports) { - this.next(); - // export * from '...' - if (this.eat(types.star)) { - if (this.options.ecmaVersion >= 11) { - if (this.eatContextual("as")) { - node.exported = this.parseIdent(true); - this.checkExport(exports, node.exported.name, this.lastTokStart); - } else { - node.exported = null; - } - } - this.expectContextual("from"); - if (this.type !== types.string) { this.unexpected(); } - node.source = this.parseExprAtom(); - this.semicolon(); - return this.finishNode(node, "ExportAllDeclaration") - } - if (this.eat(types._default)) { // export default ... - this.checkExport(exports, "default", this.lastTokStart); - var isAsync; - if (this.type === types._function || (isAsync = this.isAsyncFunction())) { - var fNode = this.startNode(); - this.next(); - if (isAsync) { this.next(); } - node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); - } else if (this.type === types._class) { - var cNode = this.startNode(); - node.declaration = this.parseClass(cNode, "nullableID"); - } else { - node.declaration = this.parseMaybeAssign(); - this.semicolon(); - } - return this.finishNode(node, "ExportDefaultDeclaration") - } - // export var|const|let|function|class ... - if (this.shouldParseExportStatement()) { - node.declaration = this.parseStatement(null); - if (node.declaration.type === "VariableDeclaration") - { this.checkVariableExport(exports, node.declaration.declarations); } - else - { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); } - node.specifiers = []; - node.source = null; - } else { // export { x, y as z } [from '...'] - node.declaration = null; - node.specifiers = this.parseExportSpecifiers(exports); - if (this.eatContextual("from")) { - if (this.type !== types.string) { this.unexpected(); } - node.source = this.parseExprAtom(); - } else { - for (var i = 0, list = node.specifiers; i < list.length; i += 1) { - // check for keywords used as local names - var spec = list[i]; - - this.checkUnreserved(spec.local); - // check if export is defined - this.checkLocalExport(spec.local); - } - - node.source = null; - } - this.semicolon(); - } - return this.finishNode(node, "ExportNamedDeclaration") - }; - - pp$1.checkExport = function(exports, name, pos) { - if (!exports) { return } - if (has(exports, name)) - { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } - exports[name] = true; - }; - - pp$1.checkPatternExport = function(exports, pat) { - var type = pat.type; - if (type === "Identifier") - { this.checkExport(exports, pat.name, pat.start); } - else if (type === "ObjectPattern") - { for (var i = 0, list = pat.properties; i < list.length; i += 1) - { - var prop = list[i]; - - this.checkPatternExport(exports, prop); - } } - else if (type === "ArrayPattern") - { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { - var elt = list$1[i$1]; - - if (elt) { this.checkPatternExport(exports, elt); } - } } - else if (type === "Property") - { this.checkPatternExport(exports, pat.value); } - else if (type === "AssignmentPattern") - { this.checkPatternExport(exports, pat.left); } - else if (type === "RestElement") - { this.checkPatternExport(exports, pat.argument); } - else if (type === "ParenthesizedExpression") - { this.checkPatternExport(exports, pat.expression); } - }; - - pp$1.checkVariableExport = function(exports, decls) { - if (!exports) { return } - for (var i = 0, list = decls; i < list.length; i += 1) - { - var decl = list[i]; - - this.checkPatternExport(exports, decl.id); - } - }; - - pp$1.shouldParseExportStatement = function() { - return this.type.keyword === "var" || - this.type.keyword === "const" || - this.type.keyword === "class" || - this.type.keyword === "function" || - this.isLet() || - this.isAsyncFunction() - }; - - // Parses a comma-separated list of module exports. - - pp$1.parseExportSpecifiers = function(exports) { - var nodes = [], first = true; - // export { x, y as z } [from '...'] - this.expect(types.braceL); - while (!this.eat(types.braceR)) { - if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } - } else { first = false; } - - var node = this.startNode(); - node.local = this.parseIdent(true); - node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local; - this.checkExport(exports, node.exported.name, node.exported.start); - nodes.push(this.finishNode(node, "ExportSpecifier")); - } - return nodes - }; - - // Parses import declaration. - - pp$1.parseImport = function(node) { - this.next(); - // import '...' - if (this.type === types.string) { - node.specifiers = empty; - node.source = this.parseExprAtom(); - } else { - node.specifiers = this.parseImportSpecifiers(); - this.expectContextual("from"); - node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected(); - } - this.semicolon(); - return this.finishNode(node, "ImportDeclaration") - }; - - // Parses a comma-separated list of module imports. - - pp$1.parseImportSpecifiers = function() { - var nodes = [], first = true; - if (this.type === types.name) { - // import defaultObj, { x, y as z } from '...' - var node = this.startNode(); - node.local = this.parseIdent(); - this.checkLVal(node.local, BIND_LEXICAL); - nodes.push(this.finishNode(node, "ImportDefaultSpecifier")); - if (!this.eat(types.comma)) { return nodes } - } - if (this.type === types.star) { - var node$1 = this.startNode(); - this.next(); - this.expectContextual("as"); - node$1.local = this.parseIdent(); - this.checkLVal(node$1.local, BIND_LEXICAL); - nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")); - return nodes - } - this.expect(types.braceL); - while (!this.eat(types.braceR)) { - if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } - } else { first = false; } - - var node$2 = this.startNode(); - node$2.imported = this.parseIdent(true); - if (this.eatContextual("as")) { - node$2.local = this.parseIdent(); - } else { - this.checkUnreserved(node$2.imported); - node$2.local = node$2.imported; - } - this.checkLVal(node$2.local, BIND_LEXICAL); - nodes.push(this.finishNode(node$2, "ImportSpecifier")); - } - return nodes - }; - - // Set `ExpressionStatement#directive` property for directive prologues. - pp$1.adaptDirectivePrologue = function(statements) { - for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { - statements[i].directive = statements[i].expression.raw.slice(1, -1); - } - }; - pp$1.isDirectiveCandidate = function(statement) { - return ( - statement.type === "ExpressionStatement" && - statement.expression.type === "Literal" && - typeof statement.expression.value === "string" && - // Reject parenthesized strings. - (this.input[statement.start] === "\"" || this.input[statement.start] === "'") - ) - }; - - var pp$2 = Parser.prototype; - - // Convert existing expression atom to assignable pattern - // if possible. - - pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) { - if (this.options.ecmaVersion >= 6 && node) { - switch (node.type) { - case "Identifier": - if (this.inAsync && node.name === "await") - { this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); } - break - - case "ObjectPattern": - case "ArrayPattern": - case "RestElement": - break - - case "ObjectExpression": - node.type = "ObjectPattern"; - if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } - for (var i = 0, list = node.properties; i < list.length; i += 1) { - var prop = list[i]; - - this.toAssignable(prop, isBinding); - // Early error: - // AssignmentRestProperty[Yield, Await] : - // `...` DestructuringAssignmentTarget[Yield, Await] - // - // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|. - if ( - prop.type === "RestElement" && - (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern") - ) { - this.raise(prop.argument.start, "Unexpected token"); - } - } - break - - case "Property": - // AssignmentProperty has type === "Property" - if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); } - this.toAssignable(node.value, isBinding); - break - - case "ArrayExpression": - node.type = "ArrayPattern"; - if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } - this.toAssignableList(node.elements, isBinding); - break - - case "SpreadElement": - node.type = "RestElement"; - this.toAssignable(node.argument, isBinding); - if (node.argument.type === "AssignmentPattern") - { this.raise(node.argument.start, "Rest elements cannot have a default value"); } - break - - case "AssignmentExpression": - if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); } - node.type = "AssignmentPattern"; - delete node.operator; - this.toAssignable(node.left, isBinding); - // falls through to AssignmentPattern - - case "AssignmentPattern": - break - - case "ParenthesizedExpression": - this.toAssignable(node.expression, isBinding, refDestructuringErrors); - break - - case "ChainExpression": - this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); - break - - case "MemberExpression": - if (!isBinding) { break } - - default: - this.raise(node.start, "Assigning to rvalue"); - } - } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } - return node - }; - - // Convert list of expression atoms to binding list. - - pp$2.toAssignableList = function(exprList, isBinding) { - var end = exprList.length; - for (var i = 0; i < end; i++) { - var elt = exprList[i]; - if (elt) { this.toAssignable(elt, isBinding); } - } - if (end) { - var last = exprList[end - 1]; - if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") - { this.unexpected(last.argument.start); } - } - return exprList - }; - - // Parses spread element. - - pp$2.parseSpread = function(refDestructuringErrors) { - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssign(false, refDestructuringErrors); - return this.finishNode(node, "SpreadElement") - }; - - pp$2.parseRestBinding = function() { - var node = this.startNode(); - this.next(); - - // RestElement inside of a function parameter must be an identifier - if (this.options.ecmaVersion === 6 && this.type !== types.name) - { this.unexpected(); } - - node.argument = this.parseBindingAtom(); - - return this.finishNode(node, "RestElement") - }; - - // Parses lvalue (assignable) atom. - - pp$2.parseBindingAtom = function() { - if (this.options.ecmaVersion >= 6) { - switch (this.type) { - case types.bracketL: - var node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(types.bracketR, true, true); - return this.finishNode(node, "ArrayPattern") - - case types.braceL: - return this.parseObj(true) - } - } - return this.parseIdent() - }; - - pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) { - var elts = [], first = true; - while (!this.eat(close)) { - if (first) { first = false; } - else { this.expect(types.comma); } - if (allowEmpty && this.type === types.comma) { - elts.push(null); - } else if (allowTrailingComma && this.afterTrailingComma(close)) { - break - } else if (this.type === types.ellipsis) { - var rest = this.parseRestBinding(); - this.parseBindingListItem(rest); - elts.push(rest); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } - this.expect(close); - break - } else { - var elem = this.parseMaybeDefault(this.start, this.startLoc); - this.parseBindingListItem(elem); - elts.push(elem); - } - } - return elts - }; - - pp$2.parseBindingListItem = function(param) { - return param - }; - - // Parses assignment pattern around given atom if possible. - - pp$2.parseMaybeDefault = function(startPos, startLoc, left) { - left = left || this.parseBindingAtom(); - if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left } - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentPattern") - }; - - // Verify that a node is an lval — something that can be assigned - // to. - // bindingType can be either: - // 'var' indicating that the lval creates a 'var' binding - // 'let' indicating that the lval creates a lexical ('let' or 'const') binding - // 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references - - pp$2.checkLVal = function(expr, bindingType, checkClashes) { - if ( bindingType === void 0 ) bindingType = BIND_NONE; - - switch (expr.type) { - case "Identifier": - if (bindingType === BIND_LEXICAL && expr.name === "let") - { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); } - if (this.strict && this.reservedWordsStrictBind.test(expr.name)) - { this.raiseRecoverable(expr.start, (bindingType ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); } - if (checkClashes) { - if (has(checkClashes, expr.name)) - { this.raiseRecoverable(expr.start, "Argument name clash"); } - checkClashes[expr.name] = true; - } - if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); } - break - - case "ChainExpression": - this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); - break - - case "MemberExpression": - if (bindingType) { this.raiseRecoverable(expr.start, "Binding member expression"); } - break - - case "ObjectPattern": - for (var i = 0, list = expr.properties; i < list.length; i += 1) - { - var prop = list[i]; - - this.checkLVal(prop, bindingType, checkClashes); - } - break - - case "Property": - // AssignmentProperty has type === "Property" - this.checkLVal(expr.value, bindingType, checkClashes); - break - - case "ArrayPattern": - for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { - var elem = list$1[i$1]; - - if (elem) { this.checkLVal(elem, bindingType, checkClashes); } - } - break - - case "AssignmentPattern": - this.checkLVal(expr.left, bindingType, checkClashes); - break - - case "RestElement": - this.checkLVal(expr.argument, bindingType, checkClashes); - break - - case "ParenthesizedExpression": - this.checkLVal(expr.expression, bindingType, checkClashes); - break - - default: - this.raise(expr.start, (bindingType ? "Binding" : "Assigning to") + " rvalue"); - } - }; - - // A recursive descent parser operates by defining functions for all - - var pp$3 = Parser.prototype; - - // Check if property name clashes with already added. - // Object/class getters and setters are not allowed to clash — - // either with each other or with an init property — and in - // strict mode, init properties are also not allowed to be repeated. - - pp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) { - if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") - { return } - if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) - { return } - var key = prop.key; - var name; - switch (key.type) { - case "Identifier": name = key.name; break - case "Literal": name = String(key.value); break - default: return - } - var kind = prop.kind; - if (this.options.ecmaVersion >= 6) { - if (name === "__proto__" && kind === "init") { - if (propHash.proto) { - if (refDestructuringErrors) { - if (refDestructuringErrors.doubleProto < 0) - { refDestructuringErrors.doubleProto = key.start; } - // Backwards-compat kludge. Can be removed in version 6.0 - } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); } - } - propHash.proto = true; - } - return - } - name = "$" + name; - var other = propHash[name]; - if (other) { - var redefinition; - if (kind === "init") { - redefinition = this.strict && other.init || other.get || other.set; - } else { - redefinition = other.init || other[kind]; - } - if (redefinition) - { this.raiseRecoverable(key.start, "Redefinition of property"); } - } else { - other = propHash[name] = { - init: false, - get: false, - set: false - }; - } - other[kind] = true; - }; - - // ### Expression parsing - - // These nest, from the most general expression type at the top to - // 'atomic', nondivisible expression types at the bottom. Most of - // the functions will simply let the function(s) below them parse, - // and, *if* the syntactic construct they handle is present, wrap - // the AST node that the inner parser gave them in another node. - - // Parse a full expression. The optional arguments are used to - // forbid the `in` operator (in for loops initalization expressions) - // and provide reference for storing '=' operator inside shorthand - // property assignment in contexts where both object expression - // and object pattern might appear (so it's possible to raise - // delayed syntax error at correct position). - - pp$3.parseExpression = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeAssign(noIn, refDestructuringErrors); - if (this.type === types.comma) { - var node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors)); } - return this.finishNode(node, "SequenceExpression") - } - return expr - }; - - // Parse an assignment expression. This includes applications of - // operators like `+=`. - - pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) { - if (this.isContextual("yield")) { - if (this.inGenerator) { return this.parseYield(noIn) } - // The tokenizer will assume an expression is allowed after - // `yield`, but this isn't that kind of yield - else { this.exprAllowed = false; } - } - - var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1; - if (refDestructuringErrors) { - oldParenAssign = refDestructuringErrors.parenthesizedAssign; - oldTrailingComma = refDestructuringErrors.trailingComma; - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; - } else { - refDestructuringErrors = new DestructuringErrors; - ownDestructuringErrors = true; - } - - var startPos = this.start, startLoc = this.startLoc; - if (this.type === types.parenL || this.type === types.name) - { this.potentialArrowAt = this.start; } - var left = this.parseMaybeConditional(noIn, refDestructuringErrors); - if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } - if (this.type.isAssign) { - var node = this.startNodeAt(startPos, startLoc); - node.operator = this.value; - node.left = this.type === types.eq ? this.toAssignable(left, false, refDestructuringErrors) : left; - if (!ownDestructuringErrors) { - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; - } - if (refDestructuringErrors.shorthandAssign >= node.left.start) - { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly - this.checkLVal(left); - this.next(); - node.right = this.parseMaybeAssign(noIn); - return this.finishNode(node, "AssignmentExpression") - } else { - if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } - } - if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; } - if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; } - return left - }; - - // Parse a ternary conditional (`?:`) operator. - - pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprOps(noIn, refDestructuringErrors); - if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - if (this.eat(types.question)) { - var node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssign(); - this.expect(types.colon); - node.alternate = this.parseMaybeAssign(noIn); - return this.finishNode(node, "ConditionalExpression") - } - return expr - }; - - // Start the precedence parser. - - pp$3.parseExprOps = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeUnary(refDestructuringErrors, false); - if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn) - }; - - // Parse binary operators with the operator precedence parsing - // algorithm. `left` is the left-hand side of the operator. - // `minPrec` provides context that allows the function to stop and - // defer further parser to one of its callers when it encounters an - // operator that has a lower precedence than the set it is parsing. - - pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) { - var prec = this.type.binop; - if (prec != null && (!noIn || this.type !== types._in)) { - if (prec > minPrec) { - var logical = this.type === types.logicalOR || this.type === types.logicalAND; - var coalesce = this.type === types.coalesce; - if (coalesce) { - // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. - // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. - prec = types.logicalAND.binop; - } - var op = this.value; - this.next(); - var startPos = this.start, startLoc = this.startLoc; - var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn); - var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); - if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) { - this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); - } - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn) - } - } - return left - }; - - pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) { - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.operator = op; - node.right = right; - return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression") - }; - - // Parse unary operators, both prefix and postfix. - - pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) { - var startPos = this.start, startLoc = this.startLoc, expr; - if (this.isContextual("await") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) { - expr = this.parseAwait(); - sawUnary = true; - } else if (this.type.prefix) { - var node = this.startNode(), update = this.type === types.incDec; - node.operator = this.value; - node.prefix = true; - this.next(); - node.argument = this.parseMaybeUnary(null, true); - this.checkExpressionErrors(refDestructuringErrors, true); - if (update) { this.checkLVal(node.argument); } - else if (this.strict && node.operator === "delete" && - node.argument.type === "Identifier") - { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); } - else { sawUnary = true; } - expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); - } else { - expr = this.parseExprSubscripts(refDestructuringErrors); - if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - while (this.type.postfix && !this.canInsertSemicolon()) { - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.operator = this.value; - node$1.prefix = false; - node$1.argument = expr; - this.checkLVal(expr); - this.next(); - expr = this.finishNode(node$1, "UpdateExpression"); - } - } - - if (!sawUnary && this.eat(types.starstar)) - { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) } - else - { return expr } - }; - - // Parse call, dot, and `[]`-subscript expressions. - - pp$3.parseExprSubscripts = function(refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprAtom(refDestructuringErrors); - if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") - { return expr } - var result = this.parseSubscripts(expr, startPos, startLoc); - if (refDestructuringErrors && result.type === "MemberExpression") { - if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; } - if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; } - } - return result - }; - - pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) { - var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && - this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && - this.potentialArrowAt === base.start; - var optionalChained = false; - - while (true) { - var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained); - - if (element.optional) { optionalChained = true; } - if (element === base || element.type === "ArrowFunctionExpression") { - if (optionalChained) { - var chainNode = this.startNodeAt(startPos, startLoc); - chainNode.expression = element; - element = this.finishNode(chainNode, "ChainExpression"); - } - return element - } - - base = element; - } - }; - - pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) { - var optionalSupported = this.options.ecmaVersion >= 11; - var optional = optionalSupported && this.eat(types.questionDot); - if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } - - var computed = this.eat(types.bracketL); - if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== "never"); - node.computed = !!computed; - if (computed) { this.expect(types.bracketR); } - if (optionalSupported) { - node.optional = optional; - } - base = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.eat(types.parenL)) { - var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - if (this.awaitIdentPos > 0) - { this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); } - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true) - } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos; - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.callee = base; - node$1.arguments = exprList; - if (optionalSupported) { - node$1.optional = optional; - } - base = this.finishNode(node$1, "CallExpression"); - } else if (this.type === types.backQuote) { - if (optional || optionalChained) { - this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); - } - var node$2 = this.startNodeAt(startPos, startLoc); - node$2.tag = base; - node$2.quasi = this.parseTemplate({isTagged: true}); - base = this.finishNode(node$2, "TaggedTemplateExpression"); - } - return base - }; - - // Parse an atomic expression — either a single token that is an - // expression, an expression started by a keyword like `function` or - // `new`, or an expression wrapped in punctuation like `()`, `[]`, - // or `{}`. - - pp$3.parseExprAtom = function(refDestructuringErrors) { - // If a division operator appears in an expression position, the - // tokenizer got confused, and we force it to read a regexp instead. - if (this.type === types.slash) { this.readRegexp(); } - - var node, canBeArrow = this.potentialArrowAt === this.start; - switch (this.type) { - case types._super: - if (!this.allowSuper) - { this.raise(this.start, "'super' keyword outside a method"); } - node = this.startNode(); - this.next(); - if (this.type === types.parenL && !this.allowDirectSuper) - { this.raise(node.start, "super() call outside constructor of a subclass"); } - // The `super` keyword can appear at below: - // SuperProperty: - // super [ Expression ] - // super . IdentifierName - // SuperCall: - // super ( Arguments ) - if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL) - { this.unexpected(); } - return this.finishNode(node, "Super") - - case types._this: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression") - - case types.name: - var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; - var id = this.parseIdent(false); - if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) - { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) } - if (canBeArrow && !this.canInsertSemicolon()) { - if (this.eat(types.arrow)) - { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc) { - id = this.parseIdent(false); - if (this.canInsertSemicolon() || !this.eat(types.arrow)) - { this.unexpected(); } - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true) - } - } - return id - - case types.regexp: - var value = this.value; - node = this.parseLiteral(value.value); - node.regex = {pattern: value.pattern, flags: value.flags}; - return node - - case types.num: case types.string: - return this.parseLiteral(this.value) - - case types._null: case types._true: case types._false: - node = this.startNode(); - node.value = this.type === types._null ? null : this.type === types._true; - node.raw = this.type.keyword; - this.next(); - return this.finishNode(node, "Literal") - - case types.parenL: - var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow); - if (refDestructuringErrors) { - if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) - { refDestructuringErrors.parenthesizedAssign = start; } - if (refDestructuringErrors.parenthesizedBind < 0) - { refDestructuringErrors.parenthesizedBind = start; } - } - return expr - - case types.bracketL: - node = this.startNode(); - this.next(); - node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors); - return this.finishNode(node, "ArrayExpression") - - case types.braceL: - return this.parseObj(false, refDestructuringErrors) - - case types._function: - node = this.startNode(); - this.next(); - return this.parseFunction(node, 0) - - case types._class: - return this.parseClass(this.startNode(), false) - - case types._new: - return this.parseNew() - - case types.backQuote: - return this.parseTemplate() - - case types._import: - if (this.options.ecmaVersion >= 11) { - return this.parseExprImport() - } else { - return this.unexpected() - } - - default: - this.unexpected(); - } - }; - - pp$3.parseExprImport = function() { - var node = this.startNode(); - - // Consume `import` as an identifier for `import.meta`. - // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`. - if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword import"); } - var meta = this.parseIdent(true); - - switch (this.type) { - case types.parenL: - return this.parseDynamicImport(node) - case types.dot: - node.meta = meta; - return this.parseImportMeta(node) - default: - this.unexpected(); - } - }; - - pp$3.parseDynamicImport = function(node) { - this.next(); // skip `(` - - // Parse node.source. - node.source = this.parseMaybeAssign(); - - // Verify ending. - if (!this.eat(types.parenR)) { - var errorPos = this.start; - if (this.eat(types.comma) && this.eat(types.parenR)) { - this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); - } else { - this.unexpected(errorPos); - } - } - - return this.finishNode(node, "ImportExpression") - }; - - pp$3.parseImportMeta = function(node) { - this.next(); // skip `.` - - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - - if (node.property.name !== "meta") - { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); } - if (containsEsc) - { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); } - if (this.options.sourceType !== "module") - { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); } - - return this.finishNode(node, "MetaProperty") - }; - - pp$3.parseLiteral = function(value) { - var node = this.startNode(); - node.value = value; - node.raw = this.input.slice(this.start, this.end); - if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, ""); } - this.next(); - return this.finishNode(node, "Literal") - }; - - pp$3.parseParenExpression = function() { - this.expect(types.parenL); - var val = this.parseExpression(); - this.expect(types.parenR); - return val - }; - - pp$3.parseParenAndDistinguishExpression = function(canBeArrow) { - var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; - if (this.options.ecmaVersion >= 6) { - this.next(); - - var innerStartPos = this.start, innerStartLoc = this.startLoc; - var exprList = [], first = true, lastIsComma = false; - var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; - this.yieldPos = 0; - this.awaitPos = 0; - // Do not save awaitIdentPos to allow checking awaits nested in parameters - while (this.type !== types.parenR) { - first ? first = false : this.expect(types.comma); - if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) { - lastIsComma = true; - break - } else if (this.type === types.ellipsis) { - spreadStart = this.start; - exprList.push(this.parseParenItem(this.parseRestBinding())); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } - break - } else { - exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); - } - } - var innerEndPos = this.start, innerEndLoc = this.startLoc; - this.expect(types.parenR); - - if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - return this.parseParenArrowList(startPos, startLoc, exprList) - } - - if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); } - if (spreadStart) { this.unexpected(spreadStart); } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - } else { - val = this.parseParenExpression(); - } - - if (this.options.preserveParens) { - var par = this.startNodeAt(startPos, startLoc); - par.expression = val; - return this.finishNode(par, "ParenthesizedExpression") - } else { - return val - } - }; - - pp$3.parseParenItem = function(item) { - return item - }; - - pp$3.parseParenArrowList = function(startPos, startLoc, exprList) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList) - }; - - // New's precedence is slightly tricky. It must allow its argument to - // be a `[]` or dot subscript expression, but not a call — at least, - // not without wrapping it in parentheses. Thus, it uses the noCalls - // argument to parseSubscripts to prevent it from consuming the - // argument list. - - var empty$1 = []; - - pp$3.parseNew = function() { - if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); } - var node = this.startNode(); - var meta = this.parseIdent(true); - if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) { - node.meta = meta; - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - if (node.property.name !== "target") - { this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); } - if (containsEsc) - { this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); } - if (!this.inNonArrowFunction()) - { this.raiseRecoverable(node.start, "'new.target' can only be used in functions"); } - return this.finishNode(node, "MetaProperty") - } - var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import; - node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true); - if (isImport && node.callee.type === "ImportExpression") { - this.raise(startPos, "Cannot use new with import()"); - } - if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); } - else { node.arguments = empty$1; } - return this.finishNode(node, "NewExpression") - }; - - // Parse template expression. - - pp$3.parseTemplateElement = function(ref) { - var isTagged = ref.isTagged; - - var elem = this.startNode(); - if (this.type === types.invalidTemplate) { - if (!isTagged) { - this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); - } - elem.value = { - raw: this.value, - cooked: null - }; - } else { - elem.value = { - raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), - cooked: this.value - }; - } - this.next(); - elem.tail = this.type === types.backQuote; - return this.finishNode(elem, "TemplateElement") - }; - - pp$3.parseTemplate = function(ref) { - if ( ref === void 0 ) ref = {}; - var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false; - - var node = this.startNode(); - this.next(); - node.expressions = []; - var curElt = this.parseTemplateElement({isTagged: isTagged}); - node.quasis = [curElt]; - while (!curElt.tail) { - if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); } - this.expect(types.dollarBraceL); - node.expressions.push(this.parseExpression()); - this.expect(types.braceR); - node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged})); - } - this.next(); - return this.finishNode(node, "TemplateLiteral") - }; - - pp$3.isAsyncProp = function(prop) { - return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && - (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) && - !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) - }; - - // Parse an object literal or binding pattern. - - pp$3.parseObj = function(isPattern, refDestructuringErrors) { - var node = this.startNode(), first = true, propHash = {}; - node.properties = []; - this.next(); - while (!this.eat(types.braceR)) { - if (!first) { - this.expect(types.comma); - if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break } - } else { first = false; } - - var prop = this.parseProperty(isPattern, refDestructuringErrors); - if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); } - node.properties.push(prop); - } - return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") - }; - - pp$3.parseProperty = function(isPattern, refDestructuringErrors) { - var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; - if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) { - if (isPattern) { - prop.argument = this.parseIdent(false); - if (this.type === types.comma) { - this.raise(this.start, "Comma is not permitted after the rest element"); - } - return this.finishNode(prop, "RestElement") - } - // To disallow parenthesized identifier via `this.toAssignable()`. - if (this.type === types.parenL && refDestructuringErrors) { - if (refDestructuringErrors.parenthesizedAssign < 0) { - refDestructuringErrors.parenthesizedAssign = this.start; - } - if (refDestructuringErrors.parenthesizedBind < 0) { - refDestructuringErrors.parenthesizedBind = this.start; - } - } - // Parse argument. - prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); - // To disallow trailing comma via `this.toAssignable()`. - if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { - refDestructuringErrors.trailingComma = this.start; - } - // Finish - return this.finishNode(prop, "SpreadElement") - } - if (this.options.ecmaVersion >= 6) { - prop.method = false; - prop.shorthand = false; - if (isPattern || refDestructuringErrors) { - startPos = this.start; - startLoc = this.startLoc; - } - if (!isPattern) - { isGenerator = this.eat(types.star); } - } - var containsEsc = this.containsEsc; - this.parsePropertyName(prop); - if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { - isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); - this.parsePropertyName(prop, refDestructuringErrors); - } else { - isAsync = false; - } - this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); - return this.finishNode(prop, "Property") - }; - - pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { - if ((isGenerator || isAsync) && this.type === types.colon) - { this.unexpected(); } - - if (this.eat(types.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); - prop.kind = "init"; - } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) { - if (isPattern) { this.unexpected(); } - prop.kind = "init"; - prop.method = true; - prop.value = this.parseMethod(isGenerator, isAsync); - } else if (!isPattern && !containsEsc && - this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && - (prop.key.name === "get" || prop.key.name === "set") && - (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) { - if (isGenerator || isAsync) { this.unexpected(); } - prop.kind = prop.key.name; - this.parsePropertyName(prop); - prop.value = this.parseMethod(false); - var paramCount = prop.kind === "get" ? 0 : 1; - if (prop.value.params.length !== paramCount) { - var start = prop.value.start; - if (prop.kind === "get") - { this.raiseRecoverable(start, "getter should have no params"); } - else - { this.raiseRecoverable(start, "setter should have exactly one param"); } - } else { - if (prop.kind === "set" && prop.value.params[0].type === "RestElement") - { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); } - } - } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { - if (isGenerator || isAsync) { this.unexpected(); } - this.checkUnreserved(prop.key); - if (prop.key.name === "await" && !this.awaitIdentPos) - { this.awaitIdentPos = startPos; } - prop.kind = "init"; - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key); - } else if (this.type === types.eq && refDestructuringErrors) { - if (refDestructuringErrors.shorthandAssign < 0) - { refDestructuringErrors.shorthandAssign = this.start; } - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key); - } else { - prop.value = prop.key; - } - prop.shorthand = true; - } else { this.unexpected(); } - }; - - pp$3.parsePropertyName = function(prop) { - if (this.options.ecmaVersion >= 6) { - if (this.eat(types.bracketL)) { - prop.computed = true; - prop.key = this.parseMaybeAssign(); - this.expect(types.bracketR); - return prop.key - } else { - prop.computed = false; - } - } - return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") - }; - - // Initialize empty function node. - - pp$3.initFunction = function(node) { - node.id = null; - if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; } - if (this.options.ecmaVersion >= 8) { node.async = false; } - }; - - // Parse object or class method. - - pp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { - var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - - this.initFunction(node); - if (this.options.ecmaVersion >= 6) - { node.generator = isGenerator; } - if (this.options.ecmaVersion >= 8) - { node.async = !!isAsync; } - - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - this.parseFunctionBody(node, false, true); - - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "FunctionExpression") - }; - - // Parse arrow function expression with given parameters. - - pp$3.parseArrowExpression = function(node, params, isAsync) { - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - - this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); - this.initFunction(node); - if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } - - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - - node.params = this.toAssignableList(params, true); - this.parseFunctionBody(node, true, false); - - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "ArrowFunctionExpression") - }; - - // Parse function body and check parameters. - - pp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) { - var isExpression = isArrowFunction && this.type !== types.braceL; - var oldStrict = this.strict, useStrict = false; - - if (isExpression) { - node.body = this.parseMaybeAssign(); - node.expression = true; - this.checkParams(node, false); - } else { - var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); - if (!oldStrict || nonSimple) { - useStrict = this.strictDirective(this.end); - // If this is a strict mode function, verify that argument names - // are not repeated, and it does not try to bind the words `eval` - // or `arguments`. - if (useStrict && nonSimple) - { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); } - } - // Start a new scope with regard to labels and the `inFunction` - // flag (restore them to their old value afterwards). - var oldLabels = this.labels; - this.labels = []; - if (useStrict) { this.strict = true; } - - // Add the params to varDeclaredNames to ensure that an error is thrown - // if a let/const declaration in the function clashes with one of the params. - this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); - // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' - if (this.strict && node.id) { this.checkLVal(node.id, BIND_OUTSIDE); } - node.body = this.parseBlock(false, undefined, useStrict && !oldStrict); - node.expression = false; - this.adaptDirectivePrologue(node.body.body); - this.labels = oldLabels; - } - this.exitScope(); - }; - - pp$3.isSimpleParamList = function(params) { - for (var i = 0, list = params; i < list.length; i += 1) - { - var param = list[i]; - - if (param.type !== "Identifier") { return false - } } - return true - }; - - // Checks function params for various disallowed patterns such as using "eval" - // or "arguments" and duplicate parameters. - - pp$3.checkParams = function(node, allowDuplicates) { - var nameHash = {}; - for (var i = 0, list = node.params; i < list.length; i += 1) - { - var param = list[i]; - - this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash); - } - }; - - // Parses a comma-separated list of expressions, and returns them as - // an array. `close` is the token type that ends the list, and - // `allowEmpty` can be turned on to allow subsequent commas with - // nothing in between them to be parsed as `null` (which is needed - // for array literals). - - pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { - var elts = [], first = true; - while (!this.eat(close)) { - if (!first) { - this.expect(types.comma); - if (allowTrailingComma && this.afterTrailingComma(close)) { break } - } else { first = false; } - - var elt = (void 0); - if (allowEmpty && this.type === types.comma) - { elt = null; } - else if (this.type === types.ellipsis) { - elt = this.parseSpread(refDestructuringErrors); - if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0) - { refDestructuringErrors.trailingComma = this.start; } - } else { - elt = this.parseMaybeAssign(false, refDestructuringErrors); - } - elts.push(elt); - } - return elts - }; - - pp$3.checkUnreserved = function(ref) { - var start = ref.start; - var end = ref.end; - var name = ref.name; - - if (this.inGenerator && name === "yield") - { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } - if (this.inAsync && name === "await") - { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } - if (this.keywords.test(name)) - { this.raise(start, ("Unexpected keyword '" + name + "'")); } - if (this.options.ecmaVersion < 6 && - this.input.slice(start, end).indexOf("\\") !== -1) { return } - var re = this.strict ? this.reservedWordsStrict : this.reservedWords; - if (re.test(name)) { - if (!this.inAsync && name === "await") - { this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); } - this.raiseRecoverable(start, ("The keyword '" + name + "' is reserved")); - } - }; - - // Parse the next token as an identifier. If `liberal` is true (used - // when parsing properties), it will also convert keywords into - // identifiers. - - pp$3.parseIdent = function(liberal, isBinding) { - var node = this.startNode(); - if (this.type === types.name) { - node.name = this.value; - } else if (this.type.keyword) { - node.name = this.type.keyword; - - // To fix https://github.com/acornjs/acorn/issues/575 - // `class` and `function` keywords push new context into this.context. - // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name. - // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword - if ((node.name === "class" || node.name === "function") && - (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { - this.context.pop(); - } - } else { - this.unexpected(); - } - this.next(!!liberal); - this.finishNode(node, "Identifier"); - if (!liberal) { - this.checkUnreserved(node); - if (node.name === "await" && !this.awaitIdentPos) - { this.awaitIdentPos = node.start; } - } - return node - }; - - // Parses yield expression inside generator. - - pp$3.parseYield = function(noIn) { - if (!this.yieldPos) { this.yieldPos = this.start; } - - var node = this.startNode(); - this.next(); - if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) { - node.delegate = false; - node.argument = null; - } else { - node.delegate = this.eat(types.star); - node.argument = this.parseMaybeAssign(noIn); - } - return this.finishNode(node, "YieldExpression") - }; - - pp$3.parseAwait = function() { - if (!this.awaitPos) { this.awaitPos = this.start; } - - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeUnary(null, false); - return this.finishNode(node, "AwaitExpression") - }; - - var pp$4 = Parser.prototype; - - // This function is used to raise exceptions on parse errors. It - // takes an offset integer (into the current `input`) to indicate - // the location of the error, attaches the position to the end - // of the error message, and then raises a `SyntaxError` with that - // message. - - pp$4.raise = function(pos, message) { - var loc = getLineInfo(this.input, pos); - message += " (" + loc.line + ":" + loc.column + ")"; - var err = new SyntaxError(message); - err.pos = pos; err.loc = loc; err.raisedAt = this.pos; - throw err - }; - - pp$4.raiseRecoverable = pp$4.raise; - - pp$4.curPosition = function() { - if (this.options.locations) { - return new Position(this.curLine, this.pos - this.lineStart) - } - }; - - var pp$5 = Parser.prototype; - - var Scope = function Scope(flags) { - this.flags = flags; - // A list of var-declared names in the current lexical scope - this.var = []; - // A list of lexically-declared names in the current lexical scope - this.lexical = []; - // A list of lexically-declared FunctionDeclaration names in the current lexical scope - this.functions = []; - }; - - // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. - - pp$5.enterScope = function(flags) { - this.scopeStack.push(new Scope(flags)); - }; - - pp$5.exitScope = function() { - this.scopeStack.pop(); - }; - - // The spec says: - // > At the top level of a function, or script, function declarations are - // > treated like var declarations rather than like lexical declarations. - pp$5.treatFunctionsAsVarInScope = function(scope) { - return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP) - }; - - pp$5.declareName = function(name, bindingType, pos) { - var redeclared = false; - if (bindingType === BIND_LEXICAL) { - var scope = this.currentScope(); - redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; - scope.lexical.push(name); - if (this.inModule && (scope.flags & SCOPE_TOP)) - { delete this.undefinedExports[name]; } - } else if (bindingType === BIND_SIMPLE_CATCH) { - var scope$1 = this.currentScope(); - scope$1.lexical.push(name); - } else if (bindingType === BIND_FUNCTION) { - var scope$2 = this.currentScope(); - if (this.treatFunctionsAsVar) - { redeclared = scope$2.lexical.indexOf(name) > -1; } - else - { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; } - scope$2.functions.push(name); - } else { - for (var i = this.scopeStack.length - 1; i >= 0; --i) { - var scope$3 = this.scopeStack[i]; - if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) || - !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) { - redeclared = true; - break - } - scope$3.var.push(name); - if (this.inModule && (scope$3.flags & SCOPE_TOP)) - { delete this.undefinedExports[name]; } - if (scope$3.flags & SCOPE_VAR) { break } - } - } - if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); } - }; - - pp$5.checkLocalExport = function(id) { - // scope.functions must be empty as Module code is always strict. - if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && - this.scopeStack[0].var.indexOf(id.name) === -1) { - this.undefinedExports[id.name] = id; - } - }; - - pp$5.currentScope = function() { - return this.scopeStack[this.scopeStack.length - 1] - }; - - pp$5.currentVarScope = function() { - for (var i = this.scopeStack.length - 1;; i--) { - var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR) { return scope } - } - }; - - // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`. - pp$5.currentThisScope = function() { - for (var i = this.scopeStack.length - 1;; i--) { - var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } - } - }; - - var Node = function Node(parser, pos, loc) { - this.type = ""; - this.start = pos; - this.end = 0; - if (parser.options.locations) - { this.loc = new SourceLocation(parser, loc); } - if (parser.options.directSourceFile) - { this.sourceFile = parser.options.directSourceFile; } - if (parser.options.ranges) - { this.range = [pos, 0]; } - }; - - // Start an AST node, attaching a start offset. - - var pp$6 = Parser.prototype; - - pp$6.startNode = function() { - return new Node(this, this.start, this.startLoc) - }; - - pp$6.startNodeAt = function(pos, loc) { - return new Node(this, pos, loc) - }; - - // Finish an AST node, adding `type` and `end` properties. - - function finishNodeAt(node, type, pos, loc) { - node.type = type; - node.end = pos; - if (this.options.locations) - { node.loc.end = loc; } - if (this.options.ranges) - { node.range[1] = pos; } - return node - } - - pp$6.finishNode = function(node, type) { - return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) - }; - - // Finish node at given position - - pp$6.finishNodeAt = function(node, type, pos, loc) { - return finishNodeAt.call(this, node, type, pos, loc) - }; - - // The algorithm used to determine whether a regexp can appear at a - - var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) { - this.token = token; - this.isExpr = !!isExpr; - this.preserveSpace = !!preserveSpace; - this.override = override; - this.generator = !!generator; - }; - - var types$1 = { - b_stat: new TokContext("{", false), - b_expr: new TokContext("{", true), - b_tmpl: new TokContext("${", false), - p_stat: new TokContext("(", false), - p_expr: new TokContext("(", true), - q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }), - f_stat: new TokContext("function", false), - f_expr: new TokContext("function", true), - f_expr_gen: new TokContext("function", true, false, null, true), - f_gen: new TokContext("function", false, false, null, true) - }; - - var pp$7 = Parser.prototype; - - pp$7.initialContext = function() { - return [types$1.b_stat] - }; - - pp$7.braceIsBlock = function(prevType) { - var parent = this.curContext(); - if (parent === types$1.f_expr || parent === types$1.f_stat) - { return true } - if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr)) - { return !parent.isExpr } - - // The check for `tt.name && exprAllowed` detects whether we are - // after a `yield` or `of` construct. See the `updateContext` for - // `tt.name`. - if (prevType === types._return || prevType === types.name && this.exprAllowed) - { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) } - if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) - { return true } - if (prevType === types.braceL) - { return parent === types$1.b_stat } - if (prevType === types._var || prevType === types._const || prevType === types.name) - { return false } - return !this.exprAllowed - }; - - pp$7.inGeneratorContext = function() { - for (var i = this.context.length - 1; i >= 1; i--) { - var context = this.context[i]; - if (context.token === "function") - { return context.generator } - } - return false - }; - - pp$7.updateContext = function(prevType) { - var update, type = this.type; - if (type.keyword && prevType === types.dot) - { this.exprAllowed = false; } - else if (update = type.updateContext) - { update.call(this, prevType); } - else - { this.exprAllowed = type.beforeExpr; } - }; - - // Token-specific context update code - - types.parenR.updateContext = types.braceR.updateContext = function() { - if (this.context.length === 1) { - this.exprAllowed = true; - return - } - var out = this.context.pop(); - if (out === types$1.b_stat && this.curContext().token === "function") { - out = this.context.pop(); - } - this.exprAllowed = !out.isExpr; - }; - - types.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr); - this.exprAllowed = true; - }; - - types.dollarBraceL.updateContext = function() { - this.context.push(types$1.b_tmpl); - this.exprAllowed = true; - }; - - types.parenL.updateContext = function(prevType) { - var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while; - this.context.push(statementParens ? types$1.p_stat : types$1.p_expr); - this.exprAllowed = true; - }; - - types.incDec.updateContext = function() { - // tokExprAllowed stays unchanged - }; - - types._function.updateContext = types._class.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else && - !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && - !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) - { this.context.push(types$1.f_expr); } - else - { this.context.push(types$1.f_stat); } - this.exprAllowed = false; - }; - - types.backQuote.updateContext = function() { - if (this.curContext() === types$1.q_tmpl) - { this.context.pop(); } - else - { this.context.push(types$1.q_tmpl); } - this.exprAllowed = false; - }; - - types.star.updateContext = function(prevType) { - if (prevType === types._function) { - var index = this.context.length - 1; - if (this.context[index] === types$1.f_expr) - { this.context[index] = types$1.f_expr_gen; } - else - { this.context[index] = types$1.f_gen; } - } - this.exprAllowed = true; - }; - - types.name.updateContext = function(prevType) { - var allowed = false; - if (this.options.ecmaVersion >= 6 && prevType !== types.dot) { - if (this.value === "of" && !this.exprAllowed || - this.value === "yield" && this.inGeneratorContext()) - { allowed = true; } - } - this.exprAllowed = allowed; - }; - - // This file contains Unicode properties extracted from the ECMAScript - // specification. The lists are extracted like so: - // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText) - - // #table-binary-unicode-properties - var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS"; - var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; - var ecma11BinaryProperties = ecma10BinaryProperties; - var unicodeBinaryProperties = { - 9: ecma9BinaryProperties, - 10: ecma10BinaryProperties, - 11: ecma11BinaryProperties - }; - - // #table-unicode-general-category-values - var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; - - // #table-unicode-script-values - var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; - var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; - var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; - var unicodeScriptValues = { - 9: ecma9ScriptValues, - 10: ecma10ScriptValues, - 11: ecma11ScriptValues - }; - - var data = {}; - function buildUnicodeData(ecmaVersion) { - var d = data[ecmaVersion] = { - binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues), - nonBinary: { - General_Category: wordsRegexp(unicodeGeneralCategoryValues), - Script: wordsRegexp(unicodeScriptValues[ecmaVersion]) - } - }; - d.nonBinary.Script_Extensions = d.nonBinary.Script; - - d.nonBinary.gc = d.nonBinary.General_Category; - d.nonBinary.sc = d.nonBinary.Script; - d.nonBinary.scx = d.nonBinary.Script_Extensions; - } - buildUnicodeData(9); - buildUnicodeData(10); - buildUnicodeData(11); - - var pp$8 = Parser.prototype; - - var RegExpValidationState = function RegExpValidationState(parser) { - this.parser = parser; - this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : ""); - this.unicodeProperties = data[parser.options.ecmaVersion >= 11 ? 11 : parser.options.ecmaVersion]; - this.source = ""; - this.flags = ""; - this.start = 0; - this.switchU = false; - this.switchN = false; - this.pos = 0; - this.lastIntValue = 0; - this.lastStringValue = ""; - this.lastAssertionIsQuantifiable = false; - this.numCapturingParens = 0; - this.maxBackReference = 0; - this.groupNames = []; - this.backReferenceNames = []; - }; - - RegExpValidationState.prototype.reset = function reset (start, pattern, flags) { - var unicode = flags.indexOf("u") !== -1; - this.start = start | 0; - this.source = pattern + ""; - this.flags = flags; - this.switchU = unicode && this.parser.options.ecmaVersion >= 6; - this.switchN = unicode && this.parser.options.ecmaVersion >= 9; - }; - - RegExpValidationState.prototype.raise = function raise (message) { - this.parser.raiseRecoverable(this.start, ("Invalid regular expression: /" + (this.source) + "/: " + message)); - }; - - // If u flag is given, this returns the code point at the index (it combines a surrogate pair). - // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair). - RegExpValidationState.prototype.at = function at (i, forceU) { - if ( forceU === void 0 ) forceU = false; - - var s = this.source; - var l = s.length; - if (i >= l) { - return -1 - } - var c = s.charCodeAt(i); - if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { - return c - } - var next = s.charCodeAt(i + 1); - return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c - }; - - RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) { - if ( forceU === void 0 ) forceU = false; - - var s = this.source; - var l = s.length; - if (i >= l) { - return l - } - var c = s.charCodeAt(i), next; - if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || - (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) { - return i + 1 - } - return i + 2 - }; - - RegExpValidationState.prototype.current = function current (forceU) { - if ( forceU === void 0 ) forceU = false; - - return this.at(this.pos, forceU) - }; - - RegExpValidationState.prototype.lookahead = function lookahead (forceU) { - if ( forceU === void 0 ) forceU = false; - - return this.at(this.nextIndex(this.pos, forceU), forceU) - }; - - RegExpValidationState.prototype.advance = function advance (forceU) { - if ( forceU === void 0 ) forceU = false; - - this.pos = this.nextIndex(this.pos, forceU); - }; - - RegExpValidationState.prototype.eat = function eat (ch, forceU) { - if ( forceU === void 0 ) forceU = false; - - if (this.current(forceU) === ch) { - this.advance(forceU); - return true - } - return false - }; - - function codePointToString(ch) { - if (ch <= 0xFFFF) { return String.fromCharCode(ch) } - ch -= 0x10000; - return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) - } - - /** - * Validate the flags part of a given RegExpLiteral. - * - * @param {RegExpValidationState} state The state to validate RegExp. - * @returns {void} - */ - pp$8.validateRegExpFlags = function(state) { - var validFlags = state.validFlags; - var flags = state.flags; - - for (var i = 0; i < flags.length; i++) { - var flag = flags.charAt(i); - if (validFlags.indexOf(flag) === -1) { - this.raise(state.start, "Invalid regular expression flag"); - } - if (flags.indexOf(flag, i + 1) > -1) { - this.raise(state.start, "Duplicate regular expression flag"); - } - } - }; - - /** - * Validate the pattern part of a given RegExpLiteral. - * - * @param {RegExpValidationState} state The state to validate RegExp. - * @returns {void} - */ - pp$8.validateRegExpPattern = function(state) { - this.regexp_pattern(state); - - // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of - // parsing contains a |GroupName|, reparse with the goal symbol - // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError* - // exception if _P_ did not conform to the grammar, if any elements of _P_ - // were not matched by the parse, or if any Early Error conditions exist. - if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) { - state.switchN = true; - this.regexp_pattern(state); - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern - pp$8.regexp_pattern = function(state) { - state.pos = 0; - state.lastIntValue = 0; - state.lastStringValue = ""; - state.lastAssertionIsQuantifiable = false; - state.numCapturingParens = 0; - state.maxBackReference = 0; - state.groupNames.length = 0; - state.backReferenceNames.length = 0; - - this.regexp_disjunction(state); - - if (state.pos !== state.source.length) { - // Make the same messages as V8. - if (state.eat(0x29 /* ) */)) { - state.raise("Unmatched ')'"); - } - if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) { - state.raise("Lone quantifier brackets"); - } - } - if (state.maxBackReference > state.numCapturingParens) { - state.raise("Invalid escape"); - } - for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) { - var name = list[i]; - - if (state.groupNames.indexOf(name) === -1) { - state.raise("Invalid named capture referenced"); - } - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction - pp$8.regexp_disjunction = function(state) { - this.regexp_alternative(state); - while (state.eat(0x7C /* | */)) { - this.regexp_alternative(state); - } - - // Make the same message as V8. - if (this.regexp_eatQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - if (state.eat(0x7B /* { */)) { - state.raise("Lone quantifier brackets"); - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative - pp$8.regexp_alternative = function(state) { - while (state.pos < state.source.length && this.regexp_eatTerm(state)) - { } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term - pp$8.regexp_eatTerm = function(state) { - if (this.regexp_eatAssertion(state)) { - // Handle `QuantifiableAssertion Quantifier` alternative. - // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion - // is a QuantifiableAssertion. - if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { - // Make the same message as V8. - if (state.switchU) { - state.raise("Invalid quantifier"); - } - } - return true - } - - if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { - this.regexp_eatQuantifier(state); - return true - } - - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion - pp$8.regexp_eatAssertion = function(state) { - var start = state.pos; - state.lastAssertionIsQuantifiable = false; - - // ^, $ - if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) { - return true - } - - // \b \B - if (state.eat(0x5C /* \ */)) { - if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) { - return true - } - state.pos = start; - } - - // Lookahead / Lookbehind - if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) { - var lookbehind = false; - if (this.options.ecmaVersion >= 9) { - lookbehind = state.eat(0x3C /* < */); - } - if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) { - this.regexp_disjunction(state); - if (!state.eat(0x29 /* ) */)) { - state.raise("Unterminated group"); - } - state.lastAssertionIsQuantifiable = !lookbehind; - return true - } - } - - state.pos = start; - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier - pp$8.regexp_eatQuantifier = function(state, noError) { - if ( noError === void 0 ) noError = false; - - if (this.regexp_eatQuantifierPrefix(state, noError)) { - state.eat(0x3F /* ? */); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix - pp$8.regexp_eatQuantifierPrefix = function(state, noError) { - return ( - state.eat(0x2A /* * */) || - state.eat(0x2B /* + */) || - state.eat(0x3F /* ? */) || - this.regexp_eatBracedQuantifier(state, noError) - ) - }; - pp$8.regexp_eatBracedQuantifier = function(state, noError) { - var start = state.pos; - if (state.eat(0x7B /* { */)) { - var min = 0, max = -1; - if (this.regexp_eatDecimalDigits(state)) { - min = state.lastIntValue; - if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) { - max = state.lastIntValue; - } - if (state.eat(0x7D /* } */)) { - // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term - if (max !== -1 && max < min && !noError) { - state.raise("numbers out of order in {} quantifier"); - } - return true - } - } - if (state.switchU && !noError) { - state.raise("Incomplete quantifier"); - } - state.pos = start; - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom - pp$8.regexp_eatAtom = function(state) { - return ( - this.regexp_eatPatternCharacters(state) || - state.eat(0x2E /* . */) || - this.regexp_eatReverseSolidusAtomEscape(state) || - this.regexp_eatCharacterClass(state) || - this.regexp_eatUncapturingGroup(state) || - this.regexp_eatCapturingGroup(state) - ) - }; - pp$8.regexp_eatReverseSolidusAtomEscape = function(state) { - var start = state.pos; - if (state.eat(0x5C /* \ */)) { - if (this.regexp_eatAtomEscape(state)) { - return true - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatUncapturingGroup = function(state) { - var start = state.pos; - if (state.eat(0x28 /* ( */)) { - if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { - this.regexp_disjunction(state); - if (state.eat(0x29 /* ) */)) { - return true - } - state.raise("Unterminated group"); - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatCapturingGroup = function(state) { - if (state.eat(0x28 /* ( */)) { - if (this.options.ecmaVersion >= 9) { - this.regexp_groupSpecifier(state); - } else if (state.current() === 0x3F /* ? */) { - state.raise("Invalid group"); - } - this.regexp_disjunction(state); - if (state.eat(0x29 /* ) */)) { - state.numCapturingParens += 1; - return true - } - state.raise("Unterminated group"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom - pp$8.regexp_eatExtendedAtom = function(state) { - return ( - state.eat(0x2E /* . */) || - this.regexp_eatReverseSolidusAtomEscape(state) || - this.regexp_eatCharacterClass(state) || - this.regexp_eatUncapturingGroup(state) || - this.regexp_eatCapturingGroup(state) || - this.regexp_eatInvalidBracedQuantifier(state) || - this.regexp_eatExtendedPatternCharacter(state) - ) - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier - pp$8.regexp_eatInvalidBracedQuantifier = function(state) { - if (this.regexp_eatBracedQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter - pp$8.regexp_eatSyntaxCharacter = function(state) { - var ch = state.current(); - if (isSyntaxCharacter(ch)) { - state.lastIntValue = ch; - state.advance(); - return true - } - return false - }; - function isSyntaxCharacter(ch) { - return ( - ch === 0x24 /* $ */ || - ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ || - ch === 0x2E /* . */ || - ch === 0x3F /* ? */ || - ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ || - ch >= 0x7B /* { */ && ch <= 0x7D /* } */ - ) - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter - // But eat eager. - pp$8.regexp_eatPatternCharacters = function(state) { - var start = state.pos; - var ch = 0; - while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { - state.advance(); - } - return state.pos !== start - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter - pp$8.regexp_eatExtendedPatternCharacter = function(state) { - var ch = state.current(); - if ( - ch !== -1 && - ch !== 0x24 /* $ */ && - !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) && - ch !== 0x2E /* . */ && - ch !== 0x3F /* ? */ && - ch !== 0x5B /* [ */ && - ch !== 0x5E /* ^ */ && - ch !== 0x7C /* | */ - ) { - state.advance(); - return true - } - return false - }; - - // GroupSpecifier :: - // [empty] - // `?` GroupName - pp$8.regexp_groupSpecifier = function(state) { - if (state.eat(0x3F /* ? */)) { - if (this.regexp_eatGroupName(state)) { - if (state.groupNames.indexOf(state.lastStringValue) !== -1) { - state.raise("Duplicate capture group name"); - } - state.groupNames.push(state.lastStringValue); - return - } - state.raise("Invalid group"); - } - }; - - // GroupName :: - // `<` RegExpIdentifierName `>` - // Note: this updates `state.lastStringValue` property with the eaten name. - pp$8.regexp_eatGroupName = function(state) { - state.lastStringValue = ""; - if (state.eat(0x3C /* < */)) { - if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { - return true - } - state.raise("Invalid capture group name"); - } - return false - }; - - // RegExpIdentifierName :: - // RegExpIdentifierStart - // RegExpIdentifierName RegExpIdentifierPart - // Note: this updates `state.lastStringValue` property with the eaten name. - pp$8.regexp_eatRegExpIdentifierName = function(state) { - state.lastStringValue = ""; - if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); - while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); - } - return true - } - return false - }; - - // RegExpIdentifierStart :: - // UnicodeIDStart - // `$` - // `_` - // `\` RegExpUnicodeEscapeSequence[+U] - pp$8.regexp_eatRegExpIdentifierStart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - - if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierStart(ch)) { - state.lastIntValue = ch; - return true - } - - state.pos = start; - return false - }; - function isRegExpIdentifierStart(ch) { - return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ - } - - // RegExpIdentifierPart :: - // UnicodeIDContinue - // `$` - // `_` - // `\` RegExpUnicodeEscapeSequence[+U] - // - // - pp$8.regexp_eatRegExpIdentifierPart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - - if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierPart(ch)) { - state.lastIntValue = ch; - return true - } - - state.pos = start; - return false - }; - function isRegExpIdentifierPart(ch) { - return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape - pp$8.regexp_eatAtomEscape = function(state) { - if ( - this.regexp_eatBackReference(state) || - this.regexp_eatCharacterClassEscape(state) || - this.regexp_eatCharacterEscape(state) || - (state.switchN && this.regexp_eatKGroupName(state)) - ) { - return true - } - if (state.switchU) { - // Make the same message as V8. - if (state.current() === 0x63 /* c */) { - state.raise("Invalid unicode escape"); - } - state.raise("Invalid escape"); - } - return false - }; - pp$8.regexp_eatBackReference = function(state) { - var start = state.pos; - if (this.regexp_eatDecimalEscape(state)) { - var n = state.lastIntValue; - if (state.switchU) { - // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape - if (n > state.maxBackReference) { - state.maxBackReference = n; - } - return true - } - if (n <= state.numCapturingParens) { - return true - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatKGroupName = function(state) { - if (state.eat(0x6B /* k */)) { - if (this.regexp_eatGroupName(state)) { - state.backReferenceNames.push(state.lastStringValue); - return true - } - state.raise("Invalid named reference"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape - pp$8.regexp_eatCharacterEscape = function(state) { - return ( - this.regexp_eatControlEscape(state) || - this.regexp_eatCControlLetter(state) || - this.regexp_eatZero(state) || - this.regexp_eatHexEscapeSequence(state) || - this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || - (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) || - this.regexp_eatIdentityEscape(state) - ) - }; - pp$8.regexp_eatCControlLetter = function(state) { - var start = state.pos; - if (state.eat(0x63 /* c */)) { - if (this.regexp_eatControlLetter(state)) { - return true - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatZero = function(state) { - if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { - state.lastIntValue = 0; - state.advance(); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape - pp$8.regexp_eatControlEscape = function(state) { - var ch = state.current(); - if (ch === 0x74 /* t */) { - state.lastIntValue = 0x09; /* \t */ - state.advance(); - return true - } - if (ch === 0x6E /* n */) { - state.lastIntValue = 0x0A; /* \n */ - state.advance(); - return true - } - if (ch === 0x76 /* v */) { - state.lastIntValue = 0x0B; /* \v */ - state.advance(); - return true - } - if (ch === 0x66 /* f */) { - state.lastIntValue = 0x0C; /* \f */ - state.advance(); - return true - } - if (ch === 0x72 /* r */) { - state.lastIntValue = 0x0D; /* \r */ - state.advance(); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter - pp$8.regexp_eatControlLetter = function(state) { - var ch = state.current(); - if (isControlLetter(ch)) { - state.lastIntValue = ch % 0x20; - state.advance(); - return true - } - return false - }; - function isControlLetter(ch) { - return ( - (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) || - (ch >= 0x61 /* a */ && ch <= 0x7A /* z */) - ) - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence - pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { - if ( forceU === void 0 ) forceU = false; - - var start = state.pos; - var switchU = forceU || state.switchU; - - if (state.eat(0x75 /* u */)) { - if (this.regexp_eatFixedHexDigits(state, 4)) { - var lead = state.lastIntValue; - if (switchU && lead >= 0xD800 && lead <= 0xDBFF) { - var leadSurrogateEnd = state.pos; - if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) { - var trail = state.lastIntValue; - if (trail >= 0xDC00 && trail <= 0xDFFF) { - state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return true - } - } - state.pos = leadSurrogateEnd; - state.lastIntValue = lead; - } - return true - } - if ( - switchU && - state.eat(0x7B /* { */) && - this.regexp_eatHexDigits(state) && - state.eat(0x7D /* } */) && - isValidUnicode(state.lastIntValue) - ) { - return true - } - if (switchU) { - state.raise("Invalid unicode escape"); - } - state.pos = start; - } - - return false - }; - function isValidUnicode(ch) { - return ch >= 0 && ch <= 0x10FFFF - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape - pp$8.regexp_eatIdentityEscape = function(state) { - if (state.switchU) { - if (this.regexp_eatSyntaxCharacter(state)) { - return true - } - if (state.eat(0x2F /* / */)) { - state.lastIntValue = 0x2F; /* / */ - return true - } - return false - } - - var ch = state.current(); - if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) { - state.lastIntValue = ch; - state.advance(); - return true - } - - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape - pp$8.regexp_eatDecimalEscape = function(state) { - state.lastIntValue = 0; - var ch = state.current(); - if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { - do { - state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); - state.advance(); - } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape - pp$8.regexp_eatCharacterClassEscape = function(state) { - var ch = state.current(); - - if (isCharacterClassEscape(ch)) { - state.lastIntValue = -1; - state.advance(); - return true - } - - if ( - state.switchU && - this.options.ecmaVersion >= 9 && - (ch === 0x50 /* P */ || ch === 0x70 /* p */) - ) { - state.lastIntValue = -1; - state.advance(); - if ( - state.eat(0x7B /* { */) && - this.regexp_eatUnicodePropertyValueExpression(state) && - state.eat(0x7D /* } */) - ) { - return true - } - state.raise("Invalid property name"); - } - - return false - }; - function isCharacterClassEscape(ch) { - return ( - ch === 0x64 /* d */ || - ch === 0x44 /* D */ || - ch === 0x73 /* s */ || - ch === 0x53 /* S */ || - ch === 0x77 /* w */ || - ch === 0x57 /* W */ - ) - } - - // UnicodePropertyValueExpression :: - // UnicodePropertyName `=` UnicodePropertyValue - // LoneUnicodePropertyNameOrValue - pp$8.regexp_eatUnicodePropertyValueExpression = function(state) { - var start = state.pos; - - // UnicodePropertyName `=` UnicodePropertyValue - if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) { - var name = state.lastStringValue; - if (this.regexp_eatUnicodePropertyValue(state)) { - var value = state.lastStringValue; - this.regexp_validateUnicodePropertyNameAndValue(state, name, value); - return true - } - } - state.pos = start; - - // LoneUnicodePropertyNameOrValue - if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { - var nameOrValue = state.lastStringValue; - this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); - return true - } - return false - }; - pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { - if (!has(state.unicodeProperties.nonBinary, name)) - { state.raise("Invalid property name"); } - if (!state.unicodeProperties.nonBinary[name].test(value)) - { state.raise("Invalid property value"); } - }; - pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { - if (!state.unicodeProperties.binary.test(nameOrValue)) - { state.raise("Invalid property name"); } - }; - - // UnicodePropertyName :: - // UnicodePropertyNameCharacters - pp$8.regexp_eatUnicodePropertyName = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); - state.advance(); - } - return state.lastStringValue !== "" - }; - function isUnicodePropertyNameCharacter(ch) { - return isControlLetter(ch) || ch === 0x5F /* _ */ - } - - // UnicodePropertyValue :: - // UnicodePropertyValueCharacters - pp$8.regexp_eatUnicodePropertyValue = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); - state.advance(); - } - return state.lastStringValue !== "" - }; - function isUnicodePropertyValueCharacter(ch) { - return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch) - } - - // LoneUnicodePropertyNameOrValue :: - // UnicodePropertyValueCharacters - pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { - return this.regexp_eatUnicodePropertyValue(state) - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass - pp$8.regexp_eatCharacterClass = function(state) { - if (state.eat(0x5B /* [ */)) { - state.eat(0x5E /* ^ */); - this.regexp_classRanges(state); - if (state.eat(0x5D /* ] */)) { - return true - } - // Unreachable since it threw "unterminated regular expression" error before. - state.raise("Unterminated character class"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges - // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges - // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash - pp$8.regexp_classRanges = function(state) { - while (this.regexp_eatClassAtom(state)) { - var left = state.lastIntValue; - if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) { - var right = state.lastIntValue; - if (state.switchU && (left === -1 || right === -1)) { - state.raise("Invalid character class"); - } - if (left !== -1 && right !== -1 && left > right) { - state.raise("Range out of order in character class"); - } - } - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom - // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash - pp$8.regexp_eatClassAtom = function(state) { - var start = state.pos; - - if (state.eat(0x5C /* \ */)) { - if (this.regexp_eatClassEscape(state)) { - return true - } - if (state.switchU) { - // Make the same message as V8. - var ch$1 = state.current(); - if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) { - state.raise("Invalid class escape"); - } - state.raise("Invalid escape"); - } - state.pos = start; - } - - var ch = state.current(); - if (ch !== 0x5D /* ] */) { - state.lastIntValue = ch; - state.advance(); - return true - } - - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape - pp$8.regexp_eatClassEscape = function(state) { - var start = state.pos; - - if (state.eat(0x62 /* b */)) { - state.lastIntValue = 0x08; /* */ - return true - } - - if (state.switchU && state.eat(0x2D /* - */)) { - state.lastIntValue = 0x2D; /* - */ - return true - } - - if (!state.switchU && state.eat(0x63 /* c */)) { - if (this.regexp_eatClassControlLetter(state)) { - return true - } - state.pos = start; - } - - return ( - this.regexp_eatCharacterClassEscape(state) || - this.regexp_eatCharacterEscape(state) - ) - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter - pp$8.regexp_eatClassControlLetter = function(state) { - var ch = state.current(); - if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { - state.lastIntValue = ch % 0x20; - state.advance(); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence - pp$8.regexp_eatHexEscapeSequence = function(state) { - var start = state.pos; - if (state.eat(0x78 /* x */)) { - if (this.regexp_eatFixedHexDigits(state, 2)) { - return true - } - if (state.switchU) { - state.raise("Invalid escape"); - } - state.pos = start; - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits - pp$8.regexp_eatDecimalDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isDecimalDigit(ch = state.current())) { - state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); - state.advance(); - } - return state.pos !== start - }; - function isDecimalDigit(ch) { - return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits - pp$8.regexp_eatHexDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isHexDigit(ch = state.current())) { - state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); - state.advance(); - } - return state.pos !== start - }; - function isHexDigit(ch) { - return ( - (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) || - (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) || - (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) - ) - } - function hexToInt(ch) { - if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) { - return 10 + (ch - 0x41 /* A */) - } - if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) { - return 10 + (ch - 0x61 /* a */) - } - return ch - 0x30 /* 0 */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence - // Allows only 0-377(octal) i.e. 0-255(decimal). - pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) { - if (this.regexp_eatOctalDigit(state)) { - var n1 = state.lastIntValue; - if (this.regexp_eatOctalDigit(state)) { - var n2 = state.lastIntValue; - if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { - state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; - } else { - state.lastIntValue = n1 * 8 + n2; - } - } else { - state.lastIntValue = n1; - } - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit - pp$8.regexp_eatOctalDigit = function(state) { - var ch = state.current(); - if (isOctalDigit(ch)) { - state.lastIntValue = ch - 0x30; /* 0 */ - state.advance(); - return true - } - state.lastIntValue = 0; - return false - }; - function isOctalDigit(ch) { - return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits - // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit - // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence - pp$8.regexp_eatFixedHexDigits = function(state, length) { - var start = state.pos; - state.lastIntValue = 0; - for (var i = 0; i < length; ++i) { - var ch = state.current(); - if (!isHexDigit(ch)) { - state.pos = start; - return false - } - state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); - state.advance(); - } - return true - }; - - // Object type used to represent tokens. Note that normally, tokens - // simply exist as properties on the parser object. This is only - // used for the onToken callback and the external tokenizer. - - var Token = function Token(p) { - this.type = p.type; - this.value = p.value; - this.start = p.start; - this.end = p.end; - if (p.options.locations) - { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); } - if (p.options.ranges) - { this.range = [p.start, p.end]; } - }; - - // ## Tokenizer - - var pp$9 = Parser.prototype; - - // Move to the next token - - pp$9.next = function(ignoreEscapeSequenceInKeyword) { - if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) - { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); } - if (this.options.onToken) - { this.options.onToken(new Token(this)); } - - this.lastTokEnd = this.end; - this.lastTokStart = this.start; - this.lastTokEndLoc = this.endLoc; - this.lastTokStartLoc = this.startLoc; - this.nextToken(); - }; - - pp$9.getToken = function() { - this.next(); - return new Token(this) - }; - - // If we're in an ES6 environment, make parsers iterable - if (typeof Symbol !== "undefined") - { pp$9[Symbol.iterator] = function() { - var this$1 = this; - - return { - next: function () { - var token = this$1.getToken(); - return { - done: token.type === types.eof, - value: token - } - } - } - }; } - - // Toggle strict mode. Re-reads the next number or string to please - // pedantic tests (`"use strict"; 010;` should fail). - - pp$9.curContext = function() { - return this.context[this.context.length - 1] - }; - - // Read a single token, updating the parser object's token-related - // properties. - - pp$9.nextToken = function() { - var curContext = this.curContext(); - if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } - - this.start = this.pos; - if (this.options.locations) { this.startLoc = this.curPosition(); } - if (this.pos >= this.input.length) { return this.finishToken(types.eof) } - - if (curContext.override) { return curContext.override(this) } - else { this.readToken(this.fullCharCodeAtPos()); } - }; - - pp$9.readToken = function(code) { - // Identifier or keyword. '\uXXXX' sequences are allowed in - // identifiers, so '\' also dispatches to that. - if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) - { return this.readWord() } - - return this.getTokenFromCode(code) - }; - - pp$9.fullCharCodeAtPos = function() { - var code = this.input.charCodeAt(this.pos); - if (code <= 0xd7ff || code >= 0xe000) { return code } - var next = this.input.charCodeAt(this.pos + 1); - return (code << 10) + next - 0x35fdc00 - }; - - pp$9.skipBlockComment = function() { - var startLoc = this.options.onComment && this.curPosition(); - var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); - if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } - this.pos = end + 2; - if (this.options.locations) { - lineBreakG.lastIndex = start; - var match; - while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) { - ++this.curLine; - this.lineStart = match.index + match[0].length; - } - } - if (this.options.onComment) - { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, - startLoc, this.curPosition()); } - }; - - pp$9.skipLineComment = function(startSkip) { - var start = this.pos; - var startLoc = this.options.onComment && this.curPosition(); - var ch = this.input.charCodeAt(this.pos += startSkip); - while (this.pos < this.input.length && !isNewLine(ch)) { - ch = this.input.charCodeAt(++this.pos); - } - if (this.options.onComment) - { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, - startLoc, this.curPosition()); } - }; - - // Called at the start of the parse and after every token. Skips - // whitespace and comments, and. - - pp$9.skipSpace = function() { - loop: while (this.pos < this.input.length) { - var ch = this.input.charCodeAt(this.pos); - switch (ch) { - case 32: case 160: // ' ' - ++this.pos; - break - case 13: - if (this.input.charCodeAt(this.pos + 1) === 10) { - ++this.pos; - } - case 10: case 8232: case 8233: - ++this.pos; - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - break - case 47: // '/' - switch (this.input.charCodeAt(this.pos + 1)) { - case 42: // '*' - this.skipBlockComment(); - break - case 47: - this.skipLineComment(2); - break - default: - break loop - } - break - default: - if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { - ++this.pos; - } else { - break loop - } - } - } - }; - - // Called at the end of every token. Sets `end`, `val`, and - // maintains `context` and `exprAllowed`, and skips the space after - // the token, so that the next one's `start` will point at the - // right position. - - pp$9.finishToken = function(type, val) { - this.end = this.pos; - if (this.options.locations) { this.endLoc = this.curPosition(); } - var prevType = this.type; - this.type = type; - this.value = val; - - this.updateContext(prevType); - }; - - // ### Token reading - - // This is the function that is called to fetch the next token. It - // is somewhat obscure, because it works in character codes rather - // than characters, and because operator parsing has been inlined - // into it. - // - // All in the name of speed. - // - pp$9.readToken_dot = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (next >= 48 && next <= 57) { return this.readNumber(true) } - var next2 = this.input.charCodeAt(this.pos + 2); - if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' - this.pos += 3; - return this.finishToken(types.ellipsis) - } else { - ++this.pos; - return this.finishToken(types.dot) - } - }; - - pp$9.readToken_slash = function() { // '/' - var next = this.input.charCodeAt(this.pos + 1); - if (this.exprAllowed) { ++this.pos; return this.readRegexp() } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.slash, 1) - }; - - pp$9.readToken_mult_modulo_exp = function(code) { // '%*' - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - var tokentype = code === 42 ? types.star : types.modulo; - - // exponentiation operator ** and **= - if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { - ++size; - tokentype = types.starstar; - next = this.input.charCodeAt(this.pos + 2); - } - - if (next === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(tokentype, size) - }; - - pp$9.readToken_pipe_amp = function(code) { // '|&' - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (this.options.ecmaVersion >= 12) { - var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 === 61) { return this.finishOp(types.assign, 3) } - } - return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) - } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1) - }; - - pp$9.readToken_caret = function() { // '^' - var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.bitwiseXOR, 1) - }; - - pp$9.readToken_plus_min = function(code) { // '+-' - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && - (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) { - // A `-->` line comment - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken() - } - return this.finishOp(types.incDec, 2) - } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.plusMin, 1) - }; - - pp$9.readToken_lt_gt = function(code) { // '<>' - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(types.bitShift, size) - } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && - this.input.charCodeAt(this.pos + 3) === 45) { - // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken() - } - return this.finishOp(types.incDec, 2) - } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.plusMin, 1) -}; - -pp$9.readToken_lt_gt = function(code) { // '<>' - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(types.bitShift, size) - } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && - this.input.charCodeAt(this.pos + 3) === 45) { - // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // ` -[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg?style=flat-square +[expand-braces]: https://github.com/jonschlinkert/expand-braces +[expand-brackets]: https://github.com/jonschlinkert/expand-brackets + +[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg [npm-url]: https://www.npmjs.com/package/glob-parent -[npm-image]: https://img.shields.io/npm/v/glob-parent.svg?style=flat-square +[npm-image]: https://img.shields.io/npm/v/glob-parent.svg -[ci-url]: https://github.com/gulpjs/glob-parent/actions?query=workflow:dev -[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/glob-parent/dev?style=flat-square +[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=2&branchName=master +[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/glob-parent?branchName=master + +[travis-url]: https://travis-ci.org/gulpjs/glob-parent +[travis-image]: https://img.shields.io/travis/gulpjs/glob-parent.svg?label=travis-ci + +[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-parent +[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-parent.svg?label=appveyor [coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent -[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg?style=flat-square - +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg - -[expand-braces]: https://github.com/jonschlinkert/expand-braces -[expand-brackets]: https://github.com/jonschlinkert/expand-brackets - +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js index 292d24f88d..09e257ea30 100644 --- a/node_modules/glob-parent/index.js +++ b/node_modules/glob-parent/index.js @@ -6,13 +6,15 @@ var isWin32 = require('os').platform() === 'win32'; var slash = '/'; var backslash = /\\/g; -var globby = /(^|[^\\])([{[]|\([^)]+$)/; -var escaped = /\\([!*?|[\](){}])/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; /** * @param {string} str * @param {Object} opts * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} */ module.exports = function globParent(str, opts) { var options = Object.assign({ flipBackslashes: true }, opts); @@ -23,7 +25,7 @@ module.exports = function globParent(str, opts) { } // special case for strings ending in enclosure containing path separator - if (isEnclosure(str)) { + if (enclosure.test(str)) { str += slash; } @@ -38,26 +40,3 @@ module.exports = function globParent(str, opts) { // remove escape chars and return result return str.replace(escaped, '$1'); }; - -function isEnclosure(str) { - var lastChar = str.slice(-1); - - var enclosureStart; - switch (lastChar) { - case '}': - enclosureStart = '{'; - break; - case ']': - enclosureStart = '['; - break; - default: - return false; - } - - var foundIndex = str.indexOf(enclosureStart); - if (foundIndex < 0) { - return false; - } - - return str.slice(foundIndex + 1, -1).includes(slash); -} diff --git a/node_modules/glob-parent/package.json b/node_modules/glob-parent/package.json index c191a73bc3..97b835035f 100644 --- a/node_modules/glob-parent/package.json +++ b/node_modules/glob-parent/package.json @@ -1,6 +1,6 @@ { "name": "glob-parent", - "version": "6.0.1", + "version": "5.1.2", "description": "Extract the non-magic parent path from a glob string.", "author": "Gulp Team (https://gulpjs.com/)", "contributors": [ @@ -10,7 +10,7 @@ "repository": "gulpjs/glob-parent", "license": "ISC", "engines": { - "node": ">=10.13.0" + "node": ">= 6" }, "main": "index.js", "files": [ @@ -20,26 +20,20 @@ "scripts": { "lint": "eslint .", "pretest": "npm run lint", - "test": "nyc mocha --async-only" + "test": "nyc mocha --async-only", + "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", + "coveralls": "nyc report --reporter=text-lcov | coveralls" }, "dependencies": { "is-glob": "^4.0.1" }, "devDependencies": { - "eslint": "^7.0.0", - "eslint-config-gulp": "^5.0.0", - "expect": "^26.0.1", - "mocha": "^7.1.2", - "nyc": "^15.0.1" - }, - "nyc": { - "reporter": [ - "lcov", - "text-summary" - ] - }, - "prettier": { - "singleQuote": true + "coveralls": "^3.0.11", + "eslint": "^2.13.1", + "eslint-config-gulp": "^3.0.1", + "expect": "^1.20.2", + "mocha": "^6.0.2", + "nyc": "^13.3.0" }, "keywords": [ "glob", diff --git a/node_modules/globals/globals.json b/node_modules/globals/globals.json index b85dc3f80d..334ff3e01e 100644 --- a/node_modules/globals/globals.json +++ b/node_modules/globals/globals.json @@ -1,5 +1,6 @@ { "builtin": { + "AggregateError": false, "Array": false, "ArrayBuffer": false, "Atomics": false, @@ -18,6 +19,7 @@ "escape": false, "eval": false, "EvalError": false, + "FinalizationRegistry": false, "Float32Array": false, "Float64Array": false, "Function": false, @@ -62,6 +64,7 @@ "URIError": false, "valueOf": false, "WeakMap": false, + "WeakRef": false, "WeakSet": false }, "es5": { @@ -224,6 +227,139 @@ "WeakMap": false, "WeakSet": false }, + "es2020": { + "Array": false, + "ArrayBuffer": false, + "Atomics": false, + "BigInt": false, + "BigInt64Array": false, + "BigUint64Array": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "globalThis": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "SharedArrayBuffer": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakSet": false + }, + "es2021": { + "AggregateError": false, + "Array": false, + "ArrayBuffer": false, + "Atomics": false, + "BigInt": false, + "BigInt64Array": false, + "BigUint64Array": false, + "Boolean": false, + "constructor": false, + "DataView": false, + "Date": false, + "decodeURI": false, + "decodeURIComponent": false, + "encodeURI": false, + "encodeURIComponent": false, + "Error": false, + "escape": false, + "eval": false, + "EvalError": false, + "FinalizationRegistry": false, + "Float32Array": false, + "Float64Array": false, + "Function": false, + "globalThis": false, + "hasOwnProperty": false, + "Infinity": false, + "Int16Array": false, + "Int32Array": false, + "Int8Array": false, + "isFinite": false, + "isNaN": false, + "isPrototypeOf": false, + "JSON": false, + "Map": false, + "Math": false, + "NaN": false, + "Number": false, + "Object": false, + "parseFloat": false, + "parseInt": false, + "Promise": false, + "propertyIsEnumerable": false, + "Proxy": false, + "RangeError": false, + "ReferenceError": false, + "Reflect": false, + "RegExp": false, + "Set": false, + "SharedArrayBuffer": false, + "String": false, + "Symbol": false, + "SyntaxError": false, + "toLocaleString": false, + "toString": false, + "TypeError": false, + "Uint16Array": false, + "Uint32Array": false, + "Uint8Array": false, + "Uint8ClampedArray": false, + "undefined": false, + "unescape": false, + "URIError": false, + "valueOf": false, + "WeakMap": false, + "WeakRef": false, + "WeakSet": false + }, "browser": { "AbortController": false, "AbortSignal": false, @@ -306,15 +442,24 @@ "CSSImportRule": false, "CSSKeyframeRule": false, "CSSKeyframesRule": false, + "CSSMatrixComponent": false, "CSSMediaRule": false, "CSSNamespaceRule": false, "CSSPageRule": false, + "CSSPerspective": false, + "CSSRotate": false, "CSSRule": false, "CSSRuleList": false, + "CSSScale": false, + "CSSSkew": false, + "CSSSkewX": false, + "CSSSkewY": false, "CSSStyleDeclaration": false, "CSSStyleRule": false, "CSSStyleSheet": false, "CSSSupportsRule": false, + "CSSTransformValue": false, + "CSSTranslate": false, "CustomElementRegistry": false, "customElements": false, "CustomEvent": false, @@ -342,6 +487,7 @@ "DOMPointReadOnly": false, "DOMQuad": false, "DOMRect": false, + "DOMRectList": false, "DOMRectReadOnly": false, "DOMStringList": false, "DOMStringMap": false, @@ -546,6 +692,7 @@ "OfflineAudioContext": false, "offscreenBuffering": false, "OffscreenCanvas": true, + "OffscreenCanvasRenderingContext2D": false, "onabort": true, "onafterprint": true, "onanimationend": true, @@ -650,6 +797,7 @@ "OscillatorNode": false, "outerHeight": false, "outerWidth": false, + "OverconstrainedError": false, "PageTransitionEvent": false, "pageXOffset": false, "pageYOffset": false, @@ -1007,6 +1155,7 @@ "node": { "__dirname": false, "__filename": false, + "AbortController": false, "Buffer": false, "clearImmediate": false, "clearInterval": false, @@ -1028,6 +1177,7 @@ "URLSearchParams": false }, "nodeBuiltin": { + "AbortController": false, "Buffer": false, "clearImmediate": false, "clearInterval": false, @@ -1203,20 +1353,19 @@ "quit": false }, "wsh": { - "ActiveXObject": true, - "CollectGarbage": true, - "Debug": true, - "Enumerator": true, - "GetObject": true, - "RuntimeObject": true, - "ScriptEngine": true, - "ScriptEngineBuildVersion": true, - "ScriptEngineMajorVersion": true, - "ScriptEngineMinorVersion": true, - "VBArray": true, - "WScript": true, - "WSH": true, - "XDomainRequest": true + "ActiveXObject": false, + "CollectGarbage": false, + "Debug": false, + "Enumerator": false, + "GetObject": false, + "RuntimeObject": false, + "ScriptEngine": false, + "ScriptEngineBuildVersion": false, + "ScriptEngineMajorVersion": false, + "ScriptEngineMinorVersion": false, + "VBArray": false, + "WScript": false, + "WSH": false }, "jquery": { "$": false, @@ -1299,7 +1448,6 @@ "Try": false }, "meteor": { - "_": false, "$": false, "Accounts": false, "AccountsClient": false, @@ -1485,6 +1633,7 @@ }, "atomtest": { "advanceClock": false, + "atom": false, "fakeClearInterval": false, "fakeClearTimeout": false, "fakeSetInterval": false, @@ -1539,17 +1688,25 @@ "exportFunction": false, "GM": false, "GM_addStyle": false, + "GM_addValueChangeListener": false, "GM_deleteValue": false, + "GM_download": false, "GM_getResourceText": false, "GM_getResourceURL": false, + "GM_getTab": false, + "GM_getTabs": false, "GM_getValue": false, "GM_info": false, "GM_listValues": false, "GM_log": false, + "GM_notification": false, "GM_openInTab": false, "GM_registerMenuCommand": false, + "GM_removeValueChangeListener": false, + "GM_saveTab": false, "GM_setClipboard": false, "GM_setValue": false, + "GM_unregisterMenuCommand": false, "GM_xmlhttpRequest": false, "unsafeWindow": false }, diff --git a/node_modules/globals/package.json b/node_modules/globals/package.json index eeeced7802..cacf57f38c 100644 --- a/node_modules/globals/package.json +++ b/node_modules/globals/package.json @@ -1,6 +1,6 @@ { "name": "globals", - "version": "12.4.0", + "version": "13.10.0", "description": "Global identifiers from different JavaScript environments", "license": "MIT", "repository": "sindresorhus/globals", @@ -32,17 +32,20 @@ "environments" ], "dependencies": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" }, "devDependencies": { - "ava": "^2.2.0", - "tsd": "^0.9.0", - "xo": "^0.25.3" + "ava": "^2.4.0", + "tsd": "^0.14.0", + "xo": "^0.36.1" }, "xo": { "ignores": [ "get-browser-globals.js" - ] + ], + "rules": { + "node/no-unsupported-features/es-syntax": "off" + } }, "tsd": { "compilerOptions": { diff --git a/node_modules/globals/readme.md b/node_modules/globals/readme.md index fdcfa087ab..0ef22c3045 100644 --- a/node_modules/globals/readme.md +++ b/node_modules/globals/readme.md @@ -1,12 +1,12 @@ -# globals [![Build Status](https://travis-ci.org/sindresorhus/globals.svg?branch=master)](https://travis-ci.org/sindresorhus/globals) +# globals > Global identifiers from different JavaScript environments -Extracted from [JSHint](https://github.com/jshint/jshint/blob/3a8efa979dbb157bfb5c10b5826603a55a33b9ad/src/vars.js) and [ESLint](https://github.com/eslint/eslint/blob/b648406218f8a2d7302b98f5565e23199f44eb31/conf/environments.json) and merged. +It's just a [JSON file](globals.json), so use it in any environment. -It's just a [JSON file](globals.json), so use it in whatever environment you like. +This package is used by ESLint. -**This module [no longer accepts](https://github.com/sindresorhus/globals/issues/82) new environments. If you need it for ESLint, just [create a plugin](http://eslint.org/docs/developer-guide/working-with-plugins#environments-in-plugins).** +**This package [no longer accepts](https://github.com/sindresorhus/globals/issues/82) new environments. If you need it for ESLint, just [create a plugin](http://eslint.org/docs/developer-guide/working-with-plugins#environments-in-plugins).** ## Install diff --git a/node_modules/globby/gitignore.js b/node_modules/globby/gitignore.js index 3feaad6227..2f77baaaaa 100644 --- a/node_modules/globby/gitignore.js +++ b/node_modules/globby/gitignore.js @@ -34,18 +34,21 @@ const parseGitIgnore = (content, options) => { }; const reduceIgnore = files => { - return files.reduce((ignores, file) => { + const ignores = gitIgnore(); + for (const file of files) { ignores.add(parseGitIgnore(file.content, { cwd: file.cwd, fileName: file.filePath })); - return ignores; - }, gitIgnore()); + } + + return ignores; }; const ensureAbsolutePathForCwd = (cwd, p) => { + cwd = slash(cwd); if (path.isAbsolute(p)) { - if (p.startsWith(cwd)) { + if (slash(p).startsWith(cwd)) { return p; } @@ -56,7 +59,7 @@ const ensureAbsolutePathForCwd = (cwd, p) => { }; const getIsIgnoredPredecate = (ignores, cwd) => { - return p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p)))); + return p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, p.path || p)))); }; const getFile = async (file, cwd) => { diff --git a/node_modules/globby/index.d.ts b/node_modules/globby/index.d.ts index c40e4fec48..2e563fc1db 100644 --- a/node_modules/globby/index.d.ts +++ b/node_modules/globby/index.d.ts @@ -1,4 +1,4 @@ -import {Options as FastGlobOptions} from 'fast-glob'; +import {Options as FastGlobOptions, Entry as FastGlobEntry} from 'fast-glob'; declare namespace globby { type ExpandDirectoriesOption = @@ -6,6 +6,8 @@ declare namespace globby { | readonly string[] | {files?: readonly string[]; extensions?: readonly string[]}; + type Entry = FastGlobEntry; + interface GlobbyOptions extends FastGlobOptions { /** If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. @@ -43,7 +45,7 @@ declare namespace globby { interface GlobTask { readonly pattern: string; - readonly options: globby.GlobbyOptions; + readonly options: GlobbyOptions; } interface GitignoreOptions { @@ -55,6 +57,11 @@ declare namespace globby { } interface Gitignore { + /** + @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. + */ + sync: (options?: globby.GitignoreOptions) => globby.FilterFunction; + /** `.gitignore` files matched by the ignore config are not used for the resulting filter function. @@ -71,11 +78,6 @@ interface Gitignore { ``` */ (options?: globby.GitignoreOptions): Promise; - - /** - @returns A filter function indicating whether a given path is ignored via a `.gitignore` file. - */ - sync(options?: globby.GitignoreOptions): globby.FilterFunction; } declare const globby: { @@ -87,37 +89,14 @@ declare const globby: { @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. @returns The matching paths. - - @example - ``` - import globby = require('globby'); - - (async () => { - const paths = await globby(['*', '!cake']); - - console.log(paths); - //=> ['unicorn', 'rainbow'] - })(); - ``` */ - ( + sync: (( patterns: string | readonly string[], - options?: globby.GlobbyOptions - ): Promise; - - /** - Find files and directories using glob patterns. - - Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. - - @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). - @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. - @returns The matching paths. - */ - sync( + options: globby.GlobbyOptions & {objectMode: true} + ) => globby.Entry[]) & (( patterns: string | readonly string[], options?: globby.GlobbyOptions - ): string[]; + ) => string[]); /** Find files and directories using glob patterns. @@ -139,10 +118,10 @@ declare const globby: { })(); ``` */ - stream( + stream: ( patterns: string | readonly string[], options?: globby.GlobbyOptions - ): NodeJS.ReadableStream; + ) => NodeJS.ReadableStream; /** Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. @@ -151,10 +130,10 @@ declare const globby: { @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. @returns An object in the format `{pattern: string, options: object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. */ - generateGlobTasks( + generateGlobTasks: ( patterns: string | readonly string[], options?: globby.GlobbyOptions - ): globby.GlobTask[]; + ) => globby.GlobTask[]; /** Note that the options affect the results. @@ -165,12 +144,43 @@ declare const globby: { @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3). @returns Whether there are any special glob characters in the `patterns`. */ - hasMagic( + hasMagic: ( patterns: string | readonly string[], options?: FastGlobOptions - ): boolean; + ) => boolean; readonly gitignore: Gitignore; + + ( + patterns: string | readonly string[], + options: globby.GlobbyOptions & {objectMode: true} + ): Promise; + + /** + Find files and directories using glob patterns. + + Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + + @param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). + @param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. + @returns The matching paths. + + @example + ``` + import globby = require('globby'); + + (async () => { + const paths = await globby(['*', '!cake']); + + console.log(paths); + //=> ['unicorn', 'rainbow'] + })(); + ``` + */ + ( + patterns: string | readonly string[], + options?: globby.GlobbyOptions + ): Promise; }; export = globby; diff --git a/node_modules/globby/index.js b/node_modules/globby/index.js index 3504057118..b2d503bb15 100644 --- a/node_modules/globby/index.js +++ b/node_modules/globby/index.js @@ -25,7 +25,7 @@ const checkCwdOption = (options = {}) => { let stat; try { stat = fs.statSync(options.cwd); - } catch (_) { + } catch { return; } @@ -56,7 +56,7 @@ const generateGlobTasks = (patterns, taskOptions) => { const ignore = patterns .slice(index) - .filter(isNegative) + .filter(pattern => isNegative(pattern)) .map(pattern => pattern.slice(1)); const options = { @@ -138,26 +138,30 @@ module.exports = async (patterns, options) => { module.exports.sync = (patterns, options) => { const globTasks = generateGlobTasks(patterns, options); - const tasks = globTasks.reduce((tasks, task) => { + const tasks = []; + for (const task of globTasks) { const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); + tasks.push(...newTask); + } const filter = getFilterSync(options); - return tasks.reduce( - (matches, task) => arrayUnion(matches, fastGlob.sync(task.pattern, task.options)), - [] - ).filter(path_ => !filter(path_)); + let matches = []; + for (const task of tasks) { + matches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options)); + } + + return matches.filter(path_ => !filter(path_)); }; module.exports.stream = (patterns, options) => { const globTasks = generateGlobTasks(patterns, options); - const tasks = globTasks.reduce((tasks, task) => { + const tasks = []; + for (const task of globTasks) { const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); + tasks.push(...newTask); + } const filter = getFilterSync(options); const filterStream = new FilterStream(p => !filter(p)); diff --git a/node_modules/globby/package.json b/node_modules/globby/package.json index 08a3b169de..69561d523b 100644 --- a/node_modules/globby/package.json +++ b/node_modules/globby/package.json @@ -1,6 +1,6 @@ { "name": "globby", - "version": "11.0.0", + "version": "11.0.4", "description": "User-friendly glob matching", "license": "MIT", "repository": "sindresorhus/globby", @@ -8,7 +8,7 @@ "author": { "email": "sindresorhus@gmail.com", "name": "Sindre Sorhus", - "url": "sindresorhus.com" + "url": "https://sindresorhus.com" }, "engines": { "node": ">=10" @@ -65,14 +65,14 @@ "slash": "^3.0.0" }, "devDependencies": { - "ava": "^2.1.0", - "get-stream": "^5.1.0", + "ava": "^3.13.0", + "get-stream": "^6.0.0", "glob-stream": "^6.1.0", - "globby": "sindresorhus/globby#master", + "globby": "sindresorhus/globby#main", "matcha": "^0.7.0", - "rimraf": "^3.0.0", - "tsd": "^0.11.0", - "xo": "^0.25.3" + "rimraf": "^3.0.2", + "tsd": "^0.13.1", + "xo": "^0.33.1" }, "xo": { "ignores": [ diff --git a/node_modules/globby/readme.md b/node_modules/globby/readme.md index 709e5aa8c8..b39ae43e3c 100644 --- a/node_modules/globby/readme.md +++ b/node_modules/globby/readme.md @@ -1,4 +1,4 @@ -# globby [![Build Status](https://travis-ci.org/sindresorhus/globby.svg?branch=master)](https://travis-ci.org/sindresorhus/globby) +# globby > User-friendly glob matching @@ -154,7 +154,7 @@ Just a quick overview. - `{}` allows for a comma-separated list of "or" expressions - `!` at the beginning of a pattern will negate the match -[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/master/test/test.js) +[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/main/test/test.js) ## globby for enterprise diff --git a/node_modules/has-bigints/.eslintignore b/node_modules/has-bigints/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/has-bigints/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/has-bigints/.eslintrc b/node_modules/has-bigints/.eslintrc new file mode 100644 index 0000000000..699b23b6d7 --- /dev/null +++ b/node_modules/has-bigints/.eslintrc @@ -0,0 +1,9 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "operator-linebreak": [2, "before"], + }, +} diff --git a/node_modules/has-bigints/.github/FUNDING.yml b/node_modules/has-bigints/.github/FUNDING.yml new file mode 100644 index 0000000000..5b597c8467 --- /dev/null +++ b/node_modules/has-bigints/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-bigints +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/has-bigints/.nycrc b/node_modules/has-bigints/.nycrc new file mode 100644 index 0000000000..1826526e09 --- /dev/null +++ b/node_modules/has-bigints/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/has-bigints/CHANGELOG.md b/node_modules/has-bigints/CHANGELOG.md new file mode 100644 index 0000000000..48f9dc2392 --- /dev/null +++ b/node_modules/has-bigints/CHANGELOG.md @@ -0,0 +1,43 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/inspect-js/has-bigints/compare/v1.0.0...v1.0.1) - 2020-12-13 + +### Commits + +- [Tests] use shared travis-ci configs [`46a0d6b`](https://github.com/inspect-js/has-bigints/commit/46a0d6be7ed83bd7f5ead11e4eab7fc91570a448) +- [Tests] migrate tests to Github Actions [`91a38fa`](https://github.com/inspect-js/has-bigints/commit/91a38fa4b85a420b8cf4926b3799e6ceb60d8690) +- [meta] do not publish github action workflow files [`69aacba`](https://github.com/inspect-js/has-bigints/commit/69aacba320c1221e7fee1c71bde600bce063f24b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`64e2c08`](https://github.com/inspect-js/has-bigints/commit/64e2c0895b21ac91a137452fd2455932f62a2fc1) +- [Tests] run `nyc` on all tests; use `tape` runner [`8009375`](https://github.com/inspect-js/has-bigints/commit/8009375e5ec9faca6bbc09441002af5c5e59ff20) +- [actions] add automatic rebasing / merge commit blocking [`e599917`](https://github.com/inspect-js/has-bigints/commit/e599917fd1f751c9a6c0daac70acb243f8c3a01d) +- [actions] add "Allow Edits" workflow [`bd0126e`](https://github.com/inspect-js/has-bigints/commit/bd0126eba2d67e9b9d588bced34413f507698154) +- [readme] remove travis badge [`8e02a73`](https://github.com/inspect-js/has-bigints/commit/8e02a73db34827d24d2945f2db822973a0b49925) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `safe-publish-latest` [`95859f2`](https://github.com/inspect-js/has-bigints/commit/95859f28f23f5733481c52a501063802cf64f75b) +- [Dev Deps] update `auto-changelog`, `in-publish`, `tape` [`0588f41`](https://github.com/inspect-js/has-bigints/commit/0588f415c6cc01d6b34668680044e03b2998e03f) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`5b024a6`](https://github.com/inspect-js/has-bigints/commit/5b024a664a8b7d2d2f750a4c11ce20c395b6f12a) +- [meta] add `version` scripts [`4788d61`](https://github.com/inspect-js/has-bigints/commit/4788d61101c009e4e2c1b4d944c263de06192c6a) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`be0e0de`](https://github.com/inspect-js/has-bigints/commit/be0e0de08298dfe483c5d7a2675e5133abeabc53) +- [Dev Deps] update `auto-changelog`; add `aud` [`13a8d1b`](https://github.com/inspect-js/has-bigints/commit/13a8d1bf1f661871d890bfa174de9514f016cdd9) +- [actions] fix action name [`f873d9a`](https://github.com/inspect-js/has-bigints/commit/f873d9a2f10718662528a755b12c61202f4e4afa) +- [meta] add `funding` field [`1b51f49`](https://github.com/inspect-js/has-bigints/commit/1b51f4921df1faf85d2679a0e4ba97ef015a73b7) +- [Dev Deps] update `auto-changelog` [`2322461`](https://github.com/inspect-js/has-bigints/commit/2322461789810434c447439f155eb3ca23eb29fb) +- [Tests] only audit prod deps [`aabdade`](https://github.com/inspect-js/has-bigints/commit/aabdadeaa1e126b91a2fbd82263cc49651ff5e7b) + +## v1.0.0 - 2019-08-10 + +### Commits + +- [Tests] add `.travis.yml` [`9730412`](https://github.com/inspect-js/has-bigints/commit/973041241dc172474bb9457aad41790fe54fec88) +- Initial commit [`65f7c38`](https://github.com/inspect-js/has-bigints/commit/65f7c3889d9a98e214e26d650723cbfc49338463) +- [Tests] add tests [`e374a78`](https://github.com/inspect-js/has-bigints/commit/e374a78033d457badcd47e06752fdec7f62e6c39) +- readme [`5d39092`](https://github.com/inspect-js/has-bigints/commit/5d3909249da442867180fb747eef27543627d250) +- npm init [`1be2e3d`](https://github.com/inspect-js/has-bigints/commit/1be2e3d69db6718901e6845cfc38a07cc46dfd96) +- implementation [`b7bc812`](https://github.com/inspect-js/has-bigints/commit/b7bc8121db1fb1a827625c4cb0608935e3dcbe31) +- [Tests] add linting [`04533be`](https://github.com/inspect-js/has-bigints/commit/04533bef57f60e322238f71f32ee3ae0c988bac4) +- [meta] create FUNDING.yml [`cf824a7`](https://github.com/inspect-js/has-bigints/commit/cf824a7d02e867957d8db17ee0a4c70c8ee5ff23) +- Only apps should have lockfiles [`64e8242`](https://github.com/inspect-js/has-bigints/commit/64e82429f1dca99f624dc971ff13516dee28d353) diff --git a/node_modules/has-bigints/LICENSE b/node_modules/has-bigints/LICENSE new file mode 100644 index 0000000000..3900dd7e2f --- /dev/null +++ b/node_modules/has-bigints/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/has-bigints/README.md b/node_modules/has-bigints/README.md new file mode 100644 index 0000000000..3847079857 --- /dev/null +++ b/node_modules/has-bigints/README.md @@ -0,0 +1,35 @@ +# has-bigints [![Version Badge][2]][1] + +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Determine if the JS environment has BigInt support. + +## Example + +```js +var hasBigInts = require('has-bigints'); + +hasBigInts() === true; // if the environment has native BigInt support. Not polyfillable, not forgeable. +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/has-bigints +[2]: https://versionbadg.es/ljharb/has-bigints.svg +[5]: https://david-dm.org/ljharb/has-bigints.svg +[6]: https://david-dm.org/ljharb/has-bigints +[7]: https://david-dm.org/ljharb/has-bigints/dev-status.svg +[8]: https://david-dm.org/ljharb/has-bigints#info=devDependencies +[9]: https://ci.testling.com/ljharb/has-bigints.png +[10]: https://ci.testling.com/ljharb/has-bigints +[11]: https://nodei.co/npm/has-bigints.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-bigints.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-bigints.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-bigints diff --git a/node_modules/has-bigints/index.js b/node_modules/has-bigints/index.js new file mode 100644 index 0000000000..dd9af1df51 --- /dev/null +++ b/node_modules/has-bigints/index.js @@ -0,0 +1,10 @@ +'use strict'; + +var $BigInt = global.BigInt; + +module.exports = function hasNativeBigInts() { + return typeof $BigInt === 'function' + && typeof BigInt === 'function' + && typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers + && typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers +}; diff --git a/node_modules/has-bigints/package.json b/node_modules/has-bigints/package.json new file mode 100644 index 0000000000..225e6d51e1 --- /dev/null +++ b/node_modules/has-bigints/package.json @@ -0,0 +1,53 @@ +{ + "name": "has-bigints", + "version": "1.0.1", + "description": "Determine if the JS environment has BigInt support.", + "main": "index.js", + "scripts": { + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"", + "prepublish": "not-in-publish || safe-publish-latest", + "lint": "eslint --ext=js,mjs .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/has-bigints.git" + }, + "keywords": [ + "BigInt", + "bigints", + "typeof", + "ES2020" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/has-bigints/issues" + }, + "homepage": "https://github.com/ljharb/has-bigints#readme", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.15.0", + "in-publish": "^2.0.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} \ No newline at end of file diff --git a/node_modules/has-bigints/test/index.js b/node_modules/has-bigints/test/index.js new file mode 100644 index 0000000000..efbc98b5ba --- /dev/null +++ b/node_modules/has-bigints/test/index.js @@ -0,0 +1,44 @@ +'use strict'; + +var test = require('tape'); +var hasBigInts = require('..'); + +test('interface', function (t) { + t.equal(typeof hasBigInts, 'function', 'is a function'); + t.equal(typeof hasBigInts(), 'boolean', 'returns a boolean'); + t.end(); +}); + +test('BigInts are supported', { skip: !hasBigInts() }, function (t) { + t.equal(typeof BigInt, 'function', 'global BigInt is a function'); + if (typeof BigInt !== 'function') { + return; + } + + t.equal(BigInt(42), BigInt(42), '42n === 42n'); + t['throws']( + function () { BigInt(NaN); }, + RangeError, + 'NaN is not an integer; BigInt(NaN) throws' + ); + + t['throws']( + function () { BigInt(Infinity); }, + RangeError, + 'Infinity is not an integer; BigInt(Infinity) throws' + ); + + t['throws']( + function () { BigInt(1.1); }, + RangeError, + '1.1 is not an integer; BigInt(1.1) throws' + ); + + t.end(); +}); + +test('BigInts are not supported', { skip: hasBigInts() }, function (t) { + t.equal(typeof BigInt, 'undefined', 'global BigInt is undefined'); + + t.end(); +}); diff --git a/node_modules/has-symbols/.eslintignore b/node_modules/has-symbols/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/has-symbols/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/has-symbols/.github/workflows/rebase.yml b/node_modules/has-symbols/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/has-symbols/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/has-symbols/.nycrc b/node_modules/has-symbols/.nycrc new file mode 100644 index 0000000000..1826526e09 --- /dev/null +++ b/node_modules/has-symbols/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/has-symbols/.travis.yml b/node_modules/has-symbols/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/has-symbols/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/has-symbols/CHANGELOG.md b/node_modules/has-symbols/CHANGELOG.md index 4dcac04acf..852ca04206 100644 --- a/node_modules/has-symbols/CHANGELOG.md +++ b/node_modules/has-symbols/CHANGELOG.md @@ -5,9 +5,33 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.0.2](https://github.com/inspect-js/has-symbols/compare/v1.0.1...v1.0.2) - 2021-02-27 -## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-17 +### Fixed + +- [Fix] use a universal way to get the original Symbol [`#11`](https://github.com/inspect-js/has-symbols/issues/11) + +### Commits + +- [Tests] migrate tests to Github Actions [`90ae798`](https://github.com/inspect-js/has-symbols/commit/90ae79820bdfe7bc703d67f5f3c5e205f98556d3) +- [meta] do not publish github action workflow files [`29e60a1`](https://github.com/inspect-js/has-symbols/commit/29e60a1b7c25c7f1acf7acff4a9320d0d10c49b4) +- [Tests] run `nyc` on all tests [`8476b91`](https://github.com/inspect-js/has-symbols/commit/8476b915650d360915abe2522505abf4b0e8f0ae) +- [readme] fix repo URLs, remove defunct badges [`126288e`](https://github.com/inspect-js/has-symbols/commit/126288ecc1797c0a40247a6b78bcb2e0bc5d7036) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `get-own-property-symbols` [`d84bdfa`](https://github.com/inspect-js/has-symbols/commit/d84bdfa48ac5188abbb4904b42614cd6c030940a) +- [Tests] fix linting errors [`0df3070`](https://github.com/inspect-js/has-symbols/commit/0df3070b981b6c9f2ee530c09189a7f5c6def839) +- [actions] add "Allow Edits" workflow [`1e6bc29`](https://github.com/inspect-js/has-symbols/commit/1e6bc29b188f32b9648657b07eda08504be5aa9c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`36cea2a`](https://github.com/inspect-js/has-symbols/commit/36cea2addd4e6ec435f35a2656b4e9ef82498e9b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1278338`](https://github.com/inspect-js/has-symbols/commit/127833801865fbc2cc8979beb9ca869c7bfe8222) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1493254`](https://github.com/inspect-js/has-symbols/commit/1493254eda13db5fb8fc5e4a3e8324b3d196029d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js` [`b090bf2`](https://github.com/inspect-js/has-symbols/commit/b090bf214d3679a30edc1e2d729d466ab5183e1d) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`4addb7a`](https://github.com/inspect-js/has-symbols/commit/4addb7ab4dc73f927ae99928d68817554fc21dc0) +- [Dev Deps] update `auto-changelog`, `tape` [`81d0baf`](https://github.com/inspect-js/has-symbols/commit/81d0baf3816096a89a8558e8043895f7a7d10d8b) +- [Dev Deps] update `auto-changelog`; add `aud` [`1a4e561`](https://github.com/inspect-js/has-symbols/commit/1a4e5612c25d91c3a03d509721d02630bc4fe3da) +- [readme] remove unused testling URLs [`3000941`](https://github.com/inspect-js/has-symbols/commit/3000941f958046e923ed8152edb1ef4a599e6fcc) +- [Tests] only audit prod deps [`692e974`](https://github.com/inspect-js/has-symbols/commit/692e9743c912410e9440207631a643a34b4741a1) +- [Dev Deps] update `@ljharb/eslint-config` [`51c946c`](https://github.com/inspect-js/has-symbols/commit/51c946c7f6baa793ec5390bb5a45cdce16b4ba76) + +## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-16 ### Commits diff --git a/node_modules/has-symbols/README.md b/node_modules/has-symbols/README.md index b27b31acbc..3875d7e58d 100644 --- a/node_modules/has-symbols/README.md +++ b/node_modules/has-symbols/README.md @@ -1,6 +1,5 @@ # has-symbols [![Version Badge][2]][1] -[![Build Status][3]][4] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -29,17 +28,13 @@ hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/has-symbols -[2]: http://versionbadg.es/ljharb/has-symbols.svg -[3]: https://travis-ci.org/ljharb/has-symbols.svg -[4]: https://travis-ci.org/ljharb/has-symbols -[5]: https://david-dm.org/ljharb/has-symbols.svg -[6]: https://david-dm.org/ljharb/has-symbols -[7]: https://david-dm.org/ljharb/has-symbols/dev-status.svg -[8]: https://david-dm.org/ljharb/has-symbols#info=devDependencies -[9]: https://ci.testling.com/ljharb/has-symbols.png -[10]: https://ci.testling.com/ljharb/has-symbols +[2]: https://versionbadg.es/inspect-js/has-symbols.svg +[5]: https://david-dm.org/inspect-js/has-symbols.svg +[6]: https://david-dm.org/inspect-js/has-symbols +[7]: https://david-dm.org/inspect-js/has-symbols/dev-status.svg +[8]: https://david-dm.org/inspect-js/has-symbols#info=devDependencies [11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/has-symbols.svg +[license-image]: https://img.shields.io/npm/l/has-symbols.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/has-symbols.svg -[downloads-url]: http://npm-stat.com/charts.html?package=has-symbols +[downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-symbols diff --git a/node_modules/has-symbols/index.js b/node_modules/has-symbols/index.js index f72159e0ac..17044fa21d 100644 --- a/node_modules/has-symbols/index.js +++ b/node_modules/has-symbols/index.js @@ -1,6 +1,6 @@ 'use strict'; -var origSymbol = global.Symbol; +var origSymbol = typeof Symbol !== 'undefined' && Symbol; var hasSymbolSham = require('./shams'); module.exports = function hasNativeSymbols() { diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json index 29a9176e5b..5424451c29 100644 --- a/node_modules/has-symbols/package.json +++ b/node_modules/has-symbols/package.json @@ -1,6 +1,6 @@ { "name": "has-symbols", - "version": "1.0.1", + "version": "1.0.2", "author": { "name": "Jordan Harband", "email": "ljharb@gmail.com", @@ -22,21 +22,21 @@ "scripts": { "prepublish": "safe-publish-latest", "pretest": "npm run --silent lint", - "test": "npm run --silent tests-only", - "posttest": "npx aud", - "tests-only": "npm run --silent test:stock && npm run --silent test:staging && npm run --silent test:shams", - "test:stock": "node test", - "test:staging": "node --harmony --es-staging test", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams", + "test:stock": "nyc node test", + "test:staging": "nyc node --harmony --es-staging test", "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", - "test:shams:corejs": "node test/shams/core-js.js", - "test:shams:getownpropertysymbols": "node test/shams/get-own-property-symbols.js", - "lint": "eslint *.js", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "lint": "eslint --ext=js,mjs .", "version": "auto-changelog && git add CHANGELOG.md", "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" }, "repository": { "type": "git", - "url": "git://github.com/ljharb/has-symbols.git" + "url": "git://github.com/inspect-js/has-symbols.git" }, "keywords": [ "Symbol", @@ -48,15 +48,16 @@ "core-js", "ES6" ], - "dependencies": {}, "devDependencies": { - "@ljharb/eslint-config": "^15.0.1", - "auto-changelog": "^1.16.2", - "core-js": "^2.6.10", - "eslint": "^6.6.0", - "get-own-property-symbols": "^0.9.4", + "@ljharb/eslint-config": "^17.5.1", + "aud": "^1.1.4", + "auto-changelog": "^2.2.1", + "core-js": "^2.6.12", + "eslint": "^7.20.0", + "get-own-property-symbols": "^0.9.5", + "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^4.11.0" + "tape": "^5.2.0" }, "testling": { "files": "test/index.js", @@ -84,6 +85,12 @@ "template": "keepachangelog", "unreleased": false, "commitLimit": false, - "backfillLimit": false + "backfillLimit": false, + "hideCredit": true + }, + "greenkeeper": { + "ignore": [ + "core-js" + ] } } \ No newline at end of file diff --git a/node_modules/has-symbols/shams.js b/node_modules/has-symbols/shams.js index 9f80f79e12..1285210ef7 100644 --- a/node_modules/has-symbols/shams.js +++ b/node_modules/has-symbols/shams.js @@ -23,7 +23,7 @@ module.exports = function hasSymbols() { var symVal = 42; obj[sym] = symVal; - for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax + for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } diff --git a/node_modules/has-symbols/test/index.js b/node_modules/has-symbols/test/index.js index fc32aff94c..352129ca35 100644 --- a/node_modules/has-symbols/test/index.js +++ b/node_modules/has-symbols/test/index.js @@ -5,7 +5,7 @@ var hasSymbols = require('../'); var runSymbolTests = require('./tests'); test('interface', function (t) { - t.equal(typeof hasSymbols, 'function', 'is a function'); + t.equal(typeof hasSymbols, 'function', 'is a function'); t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean'); t.end(); }); diff --git a/node_modules/has-symbols/test/tests.js b/node_modules/has-symbols/test/tests.js index 93ff0eae90..89edd1291c 100644 --- a/node_modules/has-symbols/test/tests.js +++ b/node_modules/has-symbols/test/tests.js @@ -1,9 +1,10 @@ 'use strict'; +// eslint-disable-next-line consistent-return module.exports = function runSymbolTests(t) { t.equal(typeof Symbol, 'function', 'global Symbol is a function'); - if (typeof Symbol !== 'function') { return false }; + if (typeof Symbol !== 'function') { return false; } t.notEqual(Symbol(), Symbol(), 'two symbols are not equal'); @@ -15,9 +16,9 @@ module.exports = function runSymbolTests(t) { ); */ + /* var foo = Symbol('foo'); - /* t.notEqual( String(foo), String(Symbol('bar')), @@ -39,6 +40,7 @@ module.exports = function runSymbolTests(t) { var symVal = 42; obj[sym] = symVal; + // eslint-disable-next-line no-restricted-syntax for (sym in obj) { t.fail('symbol property key was found in for..in of object'); } t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object'); diff --git a/node_modules/import-fresh/index.d.ts b/node_modules/import-fresh/index.d.ts index 708737b2f6..36d7e208bc 100644 --- a/node_modules/import-fresh/index.d.ts +++ b/node_modules/import-fresh/index.d.ts @@ -21,8 +21,10 @@ importFresh('./foo')(); importFresh('./foo')(); //=> 1 + +const foo = importFresh('./foo'); ``` */ -declare function importFresh(moduleId: string): unknown; +declare function importFresh(moduleId: string): T; export = importFresh; diff --git a/node_modules/import-fresh/index.js b/node_modules/import-fresh/index.js index 425ed98c42..0a4c5d52f6 100644 --- a/node_modules/import-fresh/index.js +++ b/node_modules/import-fresh/index.js @@ -10,7 +10,8 @@ module.exports = moduleId => { const parentPath = parentModule(__filename); - const filePath = resolveFrom(path.dirname(parentPath), moduleId); + const cwd = parentPath ? path.dirname(parentPath) : __dirname; + const filePath = resolveFrom(cwd, moduleId); const oldModule = require.cache[filePath]; // Delete itself from module parent diff --git a/node_modules/import-fresh/license b/node_modules/import-fresh/license index e7af2f7710..fa7ceba3eb 100644 --- a/node_modules/import-fresh/license +++ b/node_modules/import-fresh/license @@ -1,6 +1,6 @@ MIT License -Copyright (c) Sindre Sorhus (sindresorhus.com) +Copyright (c) Sindre Sorhus (https://sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/node_modules/import-fresh/package.json b/node_modules/import-fresh/package.json index d33a99e07b..3111f17fb0 100644 --- a/node_modules/import-fresh/package.json +++ b/node_modules/import-fresh/package.json @@ -1,13 +1,14 @@ { "name": "import-fresh", - "version": "3.2.1", + "version": "3.3.0", "description": "Import a module while bypassing the cache", "license": "MIT", "repository": "sindresorhus/import-fresh", + "funding": "https://github.com/sponsors/sindresorhus", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" + "url": "https://sindresorhus.com" }, "engines": { "node": ">=6" diff --git a/node_modules/import-fresh/readme.md b/node_modules/import-fresh/readme.md index 0bfa1c9044..bd14c79c63 100644 --- a/node_modules/import-fresh/readme.md +++ b/node_modules/import-fresh/readme.md @@ -1,17 +1,15 @@ -# import-fresh [![Build Status](https://travis-ci.org/sindresorhus/import-fresh.svg?branch=master)](https://travis-ci.org/sindresorhus/import-fresh) +# import-fresh > Import a module while bypassing the [cache](https://nodejs.org/api/modules.html#modules_caching) Useful for testing purposes when you need to freshly import a module. - ## Install ``` $ npm install import-fresh ``` - ## Usage ```js @@ -36,14 +34,12 @@ importFresh('./foo')(); //=> 1 ``` - ## import-fresh for enterprise Available as part of the Tidelift Subscription. The maintainers of import-fresh and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-import-fresh?utm_source=npm-import-fresh&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - ## Related - [clear-module](https://github.com/sindresorhus/clear-module) - Clear a module from the import cache diff --git a/node_modules/is-bigint/.eslintignore b/node_modules/is-bigint/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-bigint/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-bigint/.eslintrc b/node_modules/is-bigint/.eslintrc new file mode 100644 index 0000000000..c8872383ec --- /dev/null +++ b/node_modules/is-bigint/.eslintrc @@ -0,0 +1,14 @@ +{ + "root": true, + + "extends": "@ljharb", + + "globals": { + "BigInt": true, + }, + + "rules": { + "new-cap": [2, { "capIsNewExceptions": ["BigInt"] }], + "operator-linebreak": [2, "before"], + }, +} diff --git a/node_modules/is-bigint/.github/FUNDING.yml b/node_modules/is-bigint/.github/FUNDING.yml new file mode 100644 index 0000000000..59d03ba7df --- /dev/null +++ b/node_modules/is-bigint/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/is-bigint +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-bigint/.nycrc b/node_modules/is-bigint/.nycrc new file mode 100644 index 0000000000..bdd626ce91 --- /dev/null +++ b/node_modules/is-bigint/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-bigint/CHANGELOG.md b/node_modules/is-bigint/CHANGELOG.md new file mode 100644 index 0000000000..b62ddcf111 --- /dev/null +++ b/node_modules/is-bigint/CHANGELOG.md @@ -0,0 +1,54 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/inspect-js/is-bigint/compare/v1.0.1...v1.0.2) - 2021-05-04 + +### Commits + +- [meta] do not publish github action workflow files [`276d677`](https://github.com/inspect-js/is-bigint/commit/276d677d1eac61e990a2f2b523c7cdef70784865) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`cea7fb6`](https://github.com/inspect-js/is-bigint/commit/cea7fb6e882ad7e2f550de2bd9317a4409bcd735) +- [readme] fix repo URLs; remove travis badge [`c8e7c36`](https://github.com/inspect-js/is-bigint/commit/c8e7c3651f3303fddafa61cf29cfbb79ea2d5d4b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `object-inspect`, `tape` [`32f3d90`](https://github.com/inspect-js/is-bigint/commit/32f3d909363045fe5d40dde9e4db354344ab4d50) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `tape` [`c2f20f5`](https://github.com/inspect-js/is-bigint/commit/c2f20f577d84e68b4e3224abb51024fbc4b9b2ba) +- [meta] remove unneeded token; update checkout action [`94e46e9`](https://github.com/inspect-js/is-bigint/commit/94e46e92a1a85ec022c8febf8d5d3c2369b46e97) +- [meta] use `prepublishOnly` script for npm 7+ [`3e663ec`](https://github.com/inspect-js/is-bigint/commit/3e663ecb09bfdc5dbaaa37aaef4adf28b5e49035) + +## [v1.0.1](https://github.com/inspect-js/is-bigint/compare/v1.0.0...v1.0.1) - 2020-11-30 + +### Commits + +- [Tests] use shared travis-ci configs [`28f1211`](https://github.com/inspect-js/is-bigint/commit/28f1211132ad2a6495d816140680fa16c12eb6f3) +- [Tests] migrate tests to Github Actions [`0998c64`](https://github.com/inspect-js/is-bigint/commit/0998c6443d603028f8b988bcdd52d23dbf513031) +- [meta] add `auto-changelog` [`2352de6`](https://github.com/inspect-js/is-bigint/commit/2352de6df8385b256d75ce50c360947243a599f6) +- [Tests] run `nyc` on all tests [`9c16a9a`](https://github.com/inspect-js/is-bigint/commit/9c16a9a5ddaf7c2c578542ab8f00dd4e72eff541) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `object-inspect`, `tape` [`4cd0edd`](https://github.com/inspect-js/is-bigint/commit/4cd0edd1917f789501291315c9eac5f895fd719e) +- [actions] add automatic rebasing / merge commit blocking [`f0f4b91`](https://github.com/inspect-js/is-bigint/commit/f0f4b91dba029dbca5b3cd27ef91c4fb8e3ec51a) +- [actions] add "Allow Edits" workflow [`7f4f46e`](https://github.com/inspect-js/is-bigint/commit/7f4f46ec07679c00e22287ec55b39ff1e4f809cf) +- [meta] create FUNDING.yml [`2d0cb9a`](https://github.com/inspect-js/is-bigint/commit/2d0cb9ae8ddf635f2c472ce49f95f717f2c432bf) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud` [`0ee110e`](https://github.com/inspect-js/is-bigint/commit/0ee110effdcaa96d90f21a0ec6e625941f77c45a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols`, `object-inspect`, `tape` [`5bb7f3a`](https://github.com/inspect-js/is-bigint/commit/5bb7f3a8de6ec5ee2aa573c22e41884f3d2d1cc3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`d3d67d0`](https://github.com/inspect-js/is-bigint/commit/d3d67d05f8a3f4cb07085811629f56ef872949c3) +- [Dev Deps] update `auto-changelog`, `tape` [`54e270f`](https://github.com/inspect-js/is-bigint/commit/54e270fa29856dba90f86785fa61bffc79a2825d) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`d82bfe7`](https://github.com/inspect-js/is-bigint/commit/d82bfe75c63aeda40f7e473c57f26cea8790ba3a) +- [Dev Deps] update `auto-changelog`; add `aud` [`9c34bd1`](https://github.com/inspect-js/is-bigint/commit/9c34bd1873f08d77c82d8e54ad90c5a1a035e7ea) +- [Tests] add missing `posttest` script [`0690bd9`](https://github.com/inspect-js/is-bigint/commit/0690bd9868d4d8b43424b4224cdbb8659a1c6423) +- [meta] add `funding` field [`7ca36d0`](https://github.com/inspect-js/is-bigint/commit/7ca36d06ebcf6b01a592ecd6758bd2b39c0fb0db) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`5ffa8da`](https://github.com/inspect-js/is-bigint/commit/5ffa8dad9f634891cf739ee118f1b43142b0f01d) +- [Dev Deps] update `eslint` [`8512c2f`](https://github.com/inspect-js/is-bigint/commit/8512c2f29a9267fe8fe19209bcf77df94f127172) +- [Tests] only audit prod deps [`f2147dc`](https://github.com/inspect-js/is-bigint/commit/f2147dc54e72594985e8f6db3932a4f0819dc4db) +- [readme] fix header [`d6eff75`](https://github.com/inspect-js/is-bigint/commit/d6eff75d00471f465768deb92867e878c27733b3) + +## v1.0.0 - 2018-09-20 + +### Commits + +- [Tests] add tests [`847f12a`](https://github.com/inspect-js/is-bigint/commit/847f12af125fcefb75ed3517550feedf7dd73e88) +- Initial commit [`b53f3c6`](https://github.com/inspect-js/is-bigint/commit/b53f3c6754e7fd7a9982ff5b1466c4dc9799dad9) +- readme [`66c15fe`](https://github.com/inspect-js/is-bigint/commit/66c15fe1a0d965b8c78bf3a3bfc289dcfec53ee1) +- Implementation [`c2c0974`](https://github.com/inspect-js/is-bigint/commit/c2c0974397825a2a56e1ea8af0546171309d4805) +- package.json [`98b174c`](https://github.com/inspect-js/is-bigint/commit/98b174c24b070053f0548e58f9b87bc9dbdf922a) +- Only apps should have lockfiles [`a77c74b`](https://github.com/inspect-js/is-bigint/commit/a77c74bd8ca5f058f1e6165ae7b33bb84adef98c) diff --git a/node_modules/is-bigint/LICENSE b/node_modules/is-bigint/LICENSE new file mode 100644 index 0000000000..9dd868f0f9 --- /dev/null +++ b/node_modules/is-bigint/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/is-bigint/README.md b/node_modules/is-bigint/README.md new file mode 100644 index 0000000000..1bf8c5f939 --- /dev/null +++ b/node_modules/is-bigint/README.md @@ -0,0 +1,38 @@ +# is-bigint [![Version Badge][2]][1] + +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Is this an ES BigInt value? + +## Example + +```js +var isBigInt = require('is-bigint'); +assert(!isBigInt(function () {})); +assert(!isBigInt(null)); +assert(!isBigInt(function* () { yield 42; return Infinity; }); +assert(!isBigInt(Symbol('foo'))); + +assert(isBigInt(1n)); +assert(isBigInt(Object(1n))); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-bigint +[2]: https://versionbadg.es/inspect-js/is-bigint.svg +[5]: https://david-dm.org/inspect-js/is-bigint.svg +[6]: https://david-dm.org/inspect-js/is-bigint +[7]: https://david-dm.org/inspect-js/is-bigint/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-bigint#info=devDependencies +[11]: https://nodei.co/npm/is-bigint.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-bigint.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/is-bigint.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-bigint diff --git a/node_modules/is-bigint/index.js b/node_modules/is-bigint/index.js new file mode 100644 index 0000000000..6ce59c8acc --- /dev/null +++ b/node_modules/is-bigint/index.js @@ -0,0 +1,36 @@ +'use strict'; + +if (typeof BigInt === 'function') { + var bigIntValueOf = BigInt.prototype.valueOf; + var tryBigInt = function tryBigIntObject(value) { + try { + bigIntValueOf.call(value); + return true; + } catch (e) { + } + return false; + }; + + module.exports = function isBigInt(value) { + if ( + value === null + || typeof value === 'undefined' + || typeof value === 'boolean' + || typeof value === 'string' + || typeof value === 'number' + || typeof value === 'symbol' + || typeof value === 'function' + ) { + return false; + } + if (typeof value === 'bigint') { + return true; + } + + return tryBigInt(value); + }; +} else { + module.exports = function isBigInt(value) { + return false && value; + }; +} diff --git a/node_modules/is-bigint/package.json b/node_modules/is-bigint/package.json new file mode 100644 index 0000000000..f8200e692f --- /dev/null +++ b/node_modules/is-bigint/package.json @@ -0,0 +1,55 @@ +{ + "name": "is-bigint", + "version": "1.0.2", + "description": "Is this value an ES BigInt?", + "main": "index.js", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "lint": "eslint .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/is-bigint.git" + }, + "keywords": [ + "bigint", + "es", + "integer", + "is" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/is-bigint/issues" + }, + "homepage": "https://github.com/inspect-js/is-bigint#readme", + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "eslint": "^7.25.0", + "has-symbols": "^1.0.2", + "nyc": "^10.3.2", + "object-inspect": "^1.10.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} \ No newline at end of file diff --git a/node_modules/is-bigint/test/.eslintrc b/node_modules/is-bigint/test/.eslintrc new file mode 100644 index 0000000000..1ac0d47b38 --- /dev/null +++ b/node_modules/is-bigint/test/.eslintrc @@ -0,0 +1,7 @@ +{ + "rules": { + "max-statements-per-line": [2, { "max": 2 }], + "no-restricted-properties": 0, + "symbol-description": 0, + } +} diff --git a/node_modules/is-bigint/test/index.js b/node_modules/is-bigint/test/index.js new file mode 100644 index 0000000000..069f73d768 --- /dev/null +++ b/node_modules/is-bigint/test/index.js @@ -0,0 +1,80 @@ +'use strict'; + +var test = require('tape'); +var inspect = require('object-inspect'); +var isBigInt = require('..'); + +var debug = function (v, m) { return inspect(v) + ' ' + m; }; + +var forEach = function (arr, func) { + var i; + for (i = 0; i < arr.length; ++i) { + func(arr[i], i, arr); + } +}; + +var hasSymbols = require('has-symbols')(); +var hasBigInts = typeof BigInt === 'function'; + +test('non-BigInt values', function (t) { + var nonBigInts = [ + true, + false, + Object(true), + Object(false), + null, + undefined, + {}, + [], + /a/g, + 'string', + 42, + new Date(), + function () {}, + NaN + ]; + if (hasSymbols) { + nonBigInts.push(Symbol.iterator, Symbol('foo')); + } + t.plan(nonBigInts.length); + forEach(nonBigInts, function (nonBigInt) { + t.equal(false, isBigInt(nonBigInt), debug(nonBigInt, 'is not a BigInt')); + }); + t.end(); +}); + +test('faked BigInt values', function (t) { + t.test('real BigInt valueOf', { skip: !hasBigInts }, function (st) { + var fakeBigInt = { valueOf: function () { return BigInt(42); } }; + st.equal(false, isBigInt(fakeBigInt), 'object with valueOf returning a BigInt is not a BigInt'); + st.end(); + }); + + t.test('faked @@toStringTag', { skip: !hasBigInts || !hasSymbols || !Symbol.toStringTag }, function (st) { + var fakeBigInt = { valueOf: function () { return BigInt(42); } }; + fakeBigInt[Symbol.toStringTag] = 'BigInt'; + st.equal(false, isBigInt(fakeBigInt), 'object with fake BigInt @@toStringTag and valueOf returning a BigInt is not a BigInt'); + + var notSoFakeBigInt = { valueOf: function () { return 42; } }; + notSoFakeBigInt[Symbol.toStringTag] = 'BigInt'; + st.equal(false, isBigInt(notSoFakeBigInt), 'object with fake BigInt @@toStringTag and valueOf not returning a BigInt is not a BigInt'); + st.end(); + }); + + var fakeBigIntString = { toString: function () { return '42n'; } }; + t.equal(false, isBigInt(fakeBigIntString), 'object with toString returning 42n is not a BigInt'); + + t.end(); +}); + +test('BigInt support', { skip: !hasBigInts }, function (t) { + forEach([ + Function('return 42n')(), // eslint-disable-line no-new-func + BigInt(42), + Object(BigInt(42)) + ], function (bigInt) { + t.equal(true, isBigInt(bigInt), debug(bigInt, 'is a BigInt')); + }); + + t.end(); +}); diff --git a/node_modules/is-boolean-object/.editorconfig b/node_modules/is-boolean-object/.editorconfig new file mode 100644 index 0000000000..8d93cc1d1b --- /dev/null +++ b/node_modules/is-boolean-object/.editorconfig @@ -0,0 +1,22 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 150 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[.github/workflows/*.yml] +indent_style = off +indent_size = off +max_line_length = off + +[{CHANGELOG.md,*.json}] +max_line_length = off diff --git a/node_modules/is-boolean-object/.eslintignore b/node_modules/is-boolean-object/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-boolean-object/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-boolean-object/.eslintrc b/node_modules/is-boolean-object/.eslintrc new file mode 100644 index 0000000000..a0729161e1 --- /dev/null +++ b/node_modules/is-boolean-object/.eslintrc @@ -0,0 +1,22 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-nested-callbacks": [2, 3] + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "prefer-regex-literals": 0, + }, + }, + { + "files": "test-corejs.js", + "extends": "@ljharb/eslint-config/tests", + }, + ], +} diff --git a/node_modules/is-boolean-object/.github/FUNDING.yml b/node_modules/is-boolean-object/.github/FUNDING.yml new file mode 100644 index 0000000000..fd049965b0 --- /dev/null +++ b/node_modules/is-boolean-object/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/is-boolean-object +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-boolean-object/.nycrc b/node_modules/is-boolean-object/.nycrc new file mode 100644 index 0000000000..a69aa2d827 --- /dev/null +++ b/node_modules/is-boolean-object/.nycrc @@ -0,0 +1,10 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test", + "test-corejs.js" + ] +} diff --git a/node_modules/is-boolean-object/CHANGELOG.md b/node_modules/is-boolean-object/CHANGELOG.md new file mode 100644 index 0000000000..25a891ad00 --- /dev/null +++ b/node_modules/is-boolean-object/CHANGELOG.md @@ -0,0 +1,100 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.1](https://github.com/inspect-js/is-boolean-object/compare/v1.1.0...v1.1.1) - 2021-05-07 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7201c41`](https://github.com/inspect-js/is-boolean-object/commit/7201c41fc1fd9d64b51716b80fc63d95064a4a59) +- [Tests] run tests with core-js as well [`9590e61`](https://github.com/inspect-js/is-boolean-object/commit/9590e6135505e2e3f69c6d8785a539fca1b1e594) +- [meta] do not publish github action workflow files [`341472b`](https://github.com/inspect-js/is-boolean-object/commit/341472bbe9855030c7eda9340ee4284244f0a4ad) +- [readme] update repo URLs; remove travis badge [`9fdbbc6`](https://github.com/inspect-js/is-boolean-object/commit/9fdbbc64b2a70ee93fcfd95fc6c94c7ec2bbedd4) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1cd35c9`](https://github.com/inspect-js/is-boolean-object/commit/1cd35c9b9b0b4af203f20bda0d7fd60798e57f99) +- [readme] add actions and codecov badges [`03769fe`](https://github.com/inspect-js/is-boolean-object/commit/03769feb1466f03b1345882ca0e4f8cacbbce9ce) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`db6598c`](https://github.com/inspect-js/is-boolean-object/commit/db6598c4cabcd0ffd2ba9b4525b53907f8b2ff1f) +- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`e0b8a9f`](https://github.com/inspect-js/is-boolean-object/commit/e0b8a9f0fc1290a0a29c75967d56bc1c17eb8d2d) +- [readme] remove defunct testling badge [`986a621`](https://github.com/inspect-js/is-boolean-object/commit/986a6217da7385f7063e1d4e4bf5be2892d00c20) +- [meta] use `prepublishOnly` script for npm 7+ [`7bb3b29`](https://github.com/inspect-js/is-boolean-object/commit/7bb3b2902008ca07af4185ca98bc41b3222d579f) +- [Deps] update `call-bind` [`3af6a71`](https://github.com/inspect-js/is-boolean-object/commit/3af6a71e1004c79567630ac9944b9f2cc184ac77) +- [meta] do not publish corejs test file [`d911f03`](https://github.com/inspect-js/is-boolean-object/commit/d911f0368b6922645d15b9e28f3ed92e1badcef4) +- [actions] update workflows [`9bb3d90`](https://github.com/inspect-js/is-boolean-object/commit/9bb3d9015f377280324b162a3062d21936707216) + +## [v1.1.0](https://github.com/inspect-js/is-boolean-object/compare/v1.0.1...v1.1.0) - 2020-12-05 + +### Commits + +- [Tests] migrate tests to Github Actions [`6cdb652`](https://github.com/inspect-js/is-boolean-object/commit/6cdb652add3c6e44c2f7fe07c5ca4c0d14ddc2c1) +- [Tests] run `nyc` on all tests [`9a33076`](https://github.com/inspect-js/is-boolean-object/commit/9a33076d14869bf5120a6ca3903bcb9a008cf2e5) +- [Tests] add .editorconfig [`bb401c0`](https://github.com/inspect-js/is-boolean-object/commit/bb401c084416b010d64e0c5a74465b37addab31f) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`5cb2405`](https://github.com/inspect-js/is-boolean-object/commit/5cb24052ca84d840e929f05cd1fe6c03b85ec032) +- [Robustness] use `call-bind` to avoid a dependency on `.call` [`76d87ae`](https://github.com/inspect-js/is-boolean-object/commit/76d87ae74235a9995d39bcf5783c04c744c34520) +- [actions] add "Allow Edits" workflow [`337206a`](https://github.com/inspect-js/is-boolean-object/commit/337206af74bd7c340bc938ab6dc0535c08490b3d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`11f0481`](https://github.com/inspect-js/is-boolean-object/commit/11f0481efca28a241a35d384e2a302b1bcdc9a37) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`b9602c8`](https://github.com/inspect-js/is-boolean-object/commit/b9602c8ca11be138722187c1fb0a5b25a57a4edc) +- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`999e9e2`](https://github.com/inspect-js/is-boolean-object/commit/999e9e224d4eec8b20fc9c3431e9ba42caad79c9) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`bbb6728`](https://github.com/inspect-js/is-boolean-object/commit/bbb6728b9410f9d3e2d266523a477127e5e4c16f) + +## [v1.0.1](https://github.com/inspect-js/is-boolean-object/compare/v1.0.0...v1.0.1) - 2019-12-18 + +### Commits + +- [Tests] use shared travis-ci configs [`a1778b8`](https://github.com/inspect-js/is-boolean-object/commit/a1778b81ab4fe4479176de854e4e233cc441f183) +- Update `eslint`; use my personal shared `eslint` config. [`2c42c50`](https://github.com/inspect-js/is-boolean-object/commit/2c42c50a0654044b6c7e2a4ab18227e8c275464b) +- [Tests] remove `jscs` [`3807025`](https://github.com/inspect-js/is-boolean-object/commit/380702504fabc47fe22f61c4847379023d31a657) +- [Tests] up to `node` `v8.4`, `v7.10`, `v6.11`, `v5.12`, `v4.8`; improve matrix; newer npm breaks in older node; improve scripts. [`a02b986`](https://github.com/inspect-js/is-boolean-object/commit/a02b98682b285de09e2c5a895627771d6a7f552c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `jscs`, `nsp`, `semver`, `tape` [`d9030a9`](https://github.com/inspect-js/is-boolean-object/commit/d9030a99b8e274c76ae5f23f31d9d085a7e25272) +- Update `eslint`, `nsp` [`a1b6388`](https://github.com/inspect-js/is-boolean-object/commit/a1b6388fabd0de51a02c567953826344ef05890c) +- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9`; use `nvm install-latest-npm` [`17a0fd3`](https://github.com/inspect-js/is-boolean-object/commit/17a0fd391e32635ec3434baca0d062f8abeeb592) +- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`0b1818f`](https://github.com/inspect-js/is-boolean-object/commit/0b1818fdcaebc6133e515dfe3b5a8930b38999b5) +- [meta] remove unused Makefile and associated utilities [`33dc0ae`](https://github.com/inspect-js/is-boolean-object/commit/33dc0ae35a03e91f81b1bb3db5ba763dacadbfa2) +- Update `covert`, `jscs`, `eslint`, `semver` [`7e513c1`](https://github.com/inspect-js/is-boolean-object/commit/7e513c12998a651c14f62b3ecfb7215a5cc5ee8f) +- [Tests] up to `node` `v11.4`, `v10.14`, `v8.14`, `v6.15` [`992b849`](https://github.com/inspect-js/is-boolean-object/commit/992b84933760e0fe6ba2cee74ad7fff507f28128) +- [meta] add `auto-changelog` [`63d71b8`](https://github.com/inspect-js/is-boolean-object/commit/63d71b8beb9aeb77cab3d2db2cf643f1b8b1a55c) +- Update `tape`, `eslint`, `semver` [`76aea69`](https://github.com/inspect-js/is-boolean-object/commit/76aea699fb315ac460799182d707c388b4a4e017) +- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`a6cbec0`](https://github.com/inspect-js/is-boolean-object/commit/a6cbec09940b6f2c7cf366526a94c0c4756508f5) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace`, `semver`, `tape`; add `safe-publish-latest` [`7cf6bb0`](https://github.com/inspect-js/is-boolean-object/commit/7cf6bb05ba7bac504df680dd9ca625fba6dccb5a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`57d713c`](https://github.com/inspect-js/is-boolean-object/commit/57d713cca2ccbbbf1da1142ee5e8236d12551f76) +- [actions] add automatic rebasing / merge commit blocking [`f7a2bdb`](https://github.com/inspect-js/is-boolean-object/commit/f7a2bdb905e07d75c65593359f81bfeda9fe9826) +- [meta] create FUNDING.yml [`9765e73`](https://github.com/inspect-js/is-boolean-object/commit/9765e738cccdd5ff6c89b21324119a2bf4064fbd) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `replace`, `semver`, `tape` [`5c16b56`](https://github.com/inspect-js/is-boolean-object/commit/5c16b56a5a2d36c6a70c1bd396b3a6c931f655db) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`5717aad`](https://github.com/inspect-js/is-boolean-object/commit/5717aadd8b0e8c76ccb194d1845ad8cc120f29c6) +- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`80b924d`](https://github.com/inspect-js/is-boolean-object/commit/80b924dd270188e1e928f4141078bee14d810e9b) +- [Dev Deps] update `jscs` [`2e5479e`](https://github.com/inspect-js/is-boolean-object/commit/2e5479e56b6d33288582cfe8c254ca081e79500c) +- Test up to `io.js` `v2.2` [`93379a4`](https://github.com/inspect-js/is-boolean-object/commit/93379a4b48ba719113006ab08bbe6679c8a27293) +- [Tests] remove `nsp`; use `npm audit`; allow to fail for now [`36ae30a`](https://github.com/inspect-js/is-boolean-object/commit/36ae30acffe4a892ea0882a793b8a90f09d08fdf) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`ef76976`](https://github.com/inspect-js/is-boolean-object/commit/ef76976db22f2867fca2ee377fdbc9da81f0d142) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`a1182bd`](https://github.com/inspect-js/is-boolean-object/commit/a1182bd99e5d31e113107241f0d697e71b27bf7b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`4f79b47`](https://github.com/inspect-js/is-boolean-object/commit/4f79b474f0643fd2c9dbc863949a61cf01255b6f) +- [Tests] up to `node` `v10.3` [`5e96464`](https://github.com/inspect-js/is-boolean-object/commit/5e96464fc08eacc45f5f58fe7800ddbc45e40cea) +- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`e1eb3fa`](https://github.com/inspect-js/is-boolean-object/commit/e1eb3fad8bad65140db3bd2381bb3bea6a9c6242) +- Only apps should have lockfiles. [`c7f301f`](https://github.com/inspect-js/is-boolean-object/commit/c7f301ff368f9e04f7f64a2ce9b6ae1aec803e69) +- [meta] add `funding` field [`fad0366`](https://github.com/inspect-js/is-boolean-object/commit/fad03662becea5db7cef29d816d173ad771be86a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`80d39d9`](https://github.com/inspect-js/is-boolean-object/commit/80d39d90205d3bb564acb80b0625e90c267347fd) +- [Tests] use `eclint` instead of `editorconfig-tools` [`980e91b`](https://github.com/inspect-js/is-boolean-object/commit/980e91b186a728f77366ba16b7bebc813b9cc3b0) +- [Dev Deps] Update `tape`, `eslint` [`9960830`](https://github.com/inspect-js/is-boolean-object/commit/9960830876a3672686c569fde3d43bb7983955f1) +- Test up to `io.js` `v3.0` [`a3c3cd0`](https://github.com/inspect-js/is-boolean-object/commit/a3c3cd087d7fcefbf4f3525c05f4cee3b6e5b0ef) +- [Dev Deps] update `tape` [`217fbd6`](https://github.com/inspect-js/is-boolean-object/commit/217fbd6bb2989f9304ad95cd49697da7fe03b8d5) +- [Tests] only audit prod deps [`89284ee`](https://github.com/inspect-js/is-boolean-object/commit/89284ee17dce1d044df0ca9e006072f25742bbaf) +- [Performance] only use toStringTag code path when the value has that property [`2863bc5`](https://github.com/inspect-js/is-boolean-object/commit/2863bc5b72680f05ace8e66fddcf48966b942d55) +- [Dev Deps] update `replace` [`53e72a5`](https://github.com/inspect-js/is-boolean-object/commit/53e72a5ceca5b3a82e6407829f9227df9df6d329) +- [Enhancement] slight optimization for `null` [`a90a3c4`](https://github.com/inspect-js/is-boolean-object/commit/a90a3c4464d0300e23384d96fb4281b55b7fd723) +- [Dev Deps] update `tape` [`9377bd5`](https://github.com/inspect-js/is-boolean-object/commit/9377bd5110e99d8ec550f24ef3f6ead62a8f1f50) +- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`3085530`](https://github.com/inspect-js/is-boolean-object/commit/30855304841854f79e406372f524efe4bc7d8c04) +- Test on `io.js` `v2.4` [`8af335c`](https://github.com/inspect-js/is-boolean-object/commit/8af335ca82a0eeba4a0a593775e4caf744834ec4) +- Test on `io.js` `v2.3` [`1eb3424`](https://github.com/inspect-js/is-boolean-object/commit/1eb3424bef528551f5c99a754281a51d92e40ab1) + +## v1.0.0 - 2015-04-28 + +### Commits + +- Dotfiles [`6b9b998`](https://github.com/inspect-js/is-boolean-object/commit/6b9b998bb238a32d4829c9f9bf274e5ca15023ee) +- `make release` [`d5e50b3`](https://github.com/inspect-js/is-boolean-object/commit/d5e50b33a3cd8d8abe7de8ae36e2944c24ce76ba) +- package.json [`117676a`](https://github.com/inspect-js/is-boolean-object/commit/117676a48609e636d4257c1b35c695ff20939211) +- Read me [`ef327a7`](https://github.com/inspect-js/is-boolean-object/commit/ef327a74c7f73e64cfa3c20a9620ef7accf8b762) +- Initial commit [`2346886`](https://github.com/inspect-js/is-boolean-object/commit/2346886252b9637c1af6851a3fc2cbc98bc986aa) +- Tests [`67211f8`](https://github.com/inspect-js/is-boolean-object/commit/67211f8bff1a49e5df219935765b83573c097353) +- Implementation [`2d88bd6`](https://github.com/inspect-js/is-boolean-object/commit/2d88bd6e1ef0f07f5a639775eb89f3b78e12eb65) diff --git a/node_modules/is-boolean-object/LICENSE b/node_modules/is-boolean-object/LICENSE new file mode 100644 index 0000000000..b43df444e5 --- /dev/null +++ b/node_modules/is-boolean-object/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/is-boolean-object/README.md b/node_modules/is-boolean-object/README.md new file mode 100644 index 0000000000..a77f3e9dfc --- /dev/null +++ b/node_modules/is-boolean-object/README.md @@ -0,0 +1,57 @@ +# is-boolean-object [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Is this value a JS Boolean? This module works cross-realm/iframe, and despite ES6 @@toStringTag. + +## Example + +```js +var isBoolean = require('is-boolean-object'); +var assert = require('assert'); + +assert.notOk(isBoolean(undefined)); +assert.notOk(isBoolean(null)); +assert.notOk(isBoolean('foo')); +assert.notOk(isBoolean(function () {})); +assert.notOk(isBoolean([])); +assert.notOk(isBoolean({})); +assert.notOk(isBoolean(/a/g)); +assert.notOk(isBoolean(new RegExp('a', 'g'))); +assert.notOk(isBoolean(new Date())); +assert.notOk(isBoolean(42)); +assert.notOk(isBoolean(NaN)); +assert.notOk(isBoolean(Infinity)); + +assert.ok(isBoolean(new Boolean(42))); +assert.ok(isBoolean(false)); +assert.ok(isBoolean(Object(false))); +assert.ok(isBoolean(true)); +assert.ok(isBoolean(Object(true))); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-boolean-object +[2]: https://versionbadg.es/inspect-js/is-boolean-object.svg +[5]: https://david-dm.org/inspect-js/is-boolean-object.svg +[6]: https://david-dm.org/inspect-js/is-boolean-object +[7]: https://david-dm.org/inspect-js/is-boolean-object/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-boolean-object#info=devDependencies +[11]: https://nodei.co/npm/is-boolean-object.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-boolean-object.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/is-boolean-object.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-boolean-object +[codecov-image]: https://codecov.io/gh/inspect-js/is-boolean-object/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-boolean-object/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-boolean-object +[actions-url]: https://github.com/inspect-js/is-boolean-object/actions diff --git a/node_modules/is-boolean-object/index.js b/node_modules/is-boolean-object/index.js new file mode 100644 index 0000000000..0cd8e7777e --- /dev/null +++ b/node_modules/is-boolean-object/index.js @@ -0,0 +1,26 @@ +'use strict'; + +var callBound = require('call-bind/callBound'); +var $boolToStr = callBound('Boolean.prototype.toString'); +var $toString = callBound('Object.prototype.toString'); + +var tryBooleanObject = function booleanBrandCheck(value) { + try { + $boolToStr(value); + return true; + } catch (e) { + return false; + } +}; +var boolClass = '[object Boolean]'; +var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; + +module.exports = function isBoolean(value) { + if (typeof value === 'boolean') { + return true; + } + if (value === null || typeof value !== 'object') { + return false; + } + return hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass; +}; diff --git a/node_modules/is-boolean-object/package.json b/node_modules/is-boolean-object/package.json new file mode 100644 index 0000000000..19df27f172 --- /dev/null +++ b/node_modules/is-boolean-object/package.json @@ -0,0 +1,86 @@ +{ + "name": "is-boolean-object", + "version": "1.1.1", + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "description": "Is this value a JS Boolean? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "license": "MIT", + "main": "index.js", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only && npm run test:harmony && npm run test:corejs", + "tests-only": "nyc tape 'test/**/*.js'", + "test:harmony": "node --harmony --es-staging test", + "test:corejs": "nyc tape test-corejs.js", + "posttest": "aud --production", + "prelint": "npm run eccheck", + "lint": "eslint --ext=js,mjs .", + "eccheck": "eclint check $(git ls-files)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-boolean-object.git" + }, + "keywords": [ + "Boolean", + "ES6", + "toStringTag", + "@@toStringTag", + "Boolean object", + "true", + "false", + "is-boolean" + ], + "dependencies": { + "call-bind": "^1.0.2" + }, + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eclint": "^2.8.1", + "eslint": "^7.25.0", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} \ No newline at end of file diff --git a/node_modules/is-boolean-object/test/index.js b/node_modules/is-boolean-object/test/index.js new file mode 100644 index 0000000000..9ca4b34ecd --- /dev/null +++ b/node_modules/is-boolean-object/test/index.js @@ -0,0 +1,48 @@ +'use strict'; + +var test = require('tape'); +var isBoolean = require('../'); +var hasSymbols = require('has-symbols/shams')(); + +test('not Booleans', function (t) { + t.test('primitives', function (st) { + st.notOk(isBoolean(), 'undefined is not Boolean'); + st.notOk(isBoolean(null), 'null is not Boolean'); + st.notOk(isBoolean(0), '0 is not Boolean'); + st.notOk(isBoolean(NaN), 'NaN is not Boolean'); + st.notOk(isBoolean(Infinity), 'Infinity is not Boolean'); + st.notOk(isBoolean('foo'), 'string is not Boolean'); + st.end(); + }); + + t.test('objects', function (st) { + st.notOk(isBoolean(Object(42)), 'number object is not Boolean'); + st.notOk(isBoolean([]), 'array is not Boolean'); + st.notOk(isBoolean({}), 'object is not Boolean'); + st.notOk(isBoolean(function () {}), 'function is not Boolean'); + st.notOk(isBoolean(/a/g), 'regex literal is not Boolean'); + st.notOk(isBoolean(new RegExp('a', 'g')), 'regex object is not Boolean'); + st.notOk(isBoolean(new Date()), 'new Date() is not Boolean'); + st.end(); + }); + + t.end(); +}); + +test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { + var fakeBoolean = { + toString: function () { return 'true'; }, + valueOf: function () { return true; } + }; + fakeBoolean[Symbol.toStringTag] = 'Boolean'; + t.notOk(isBoolean(fakeBoolean), 'fake Boolean with @@toStringTag "Boolean" is not Boolean'); + t.end(); +}); + +test('Booleans', function (t) { + t.ok(isBoolean(true), 'true is Boolean'); + t.ok(isBoolean(false), 'false is Boolean'); + t.ok(isBoolean(Object(true)), 'Object(true) is Boolean'); + t.ok(isBoolean(Object(false)), 'Object(false) is Boolean'); + t.end(); +}); diff --git a/node_modules/is-callable/.eslintignore b/node_modules/is-callable/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-callable/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-callable/.eslintrc b/node_modules/is-callable/.eslintrc index bd4525cba8..631b8f369a 100644 --- a/node_modules/is-callable/.eslintrc +++ b/node_modules/is-callable/.eslintrc @@ -5,7 +5,7 @@ "rules": { "id-length": 0, - "max-statements": [2, 12], + "max-statements": [2, 14], "max-statements-per-line": [2, { "max": 2 }], "operator-linebreak": [2, "before"], }, diff --git a/node_modules/is-callable/.github/workflows/rebase.yml b/node_modules/is-callable/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/is-callable/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-callable/.nycrc b/node_modules/is-callable/.nycrc new file mode 100644 index 0000000000..1826526e09 --- /dev/null +++ b/node_modules/is-callable/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-callable/.travis.yml b/node_modules/is-callable/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/is-callable/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/is-callable/CHANGELOG.md b/node_modules/is-callable/CHANGELOG.md index 34d2a0074c..6b88f5b7f5 100644 --- a/node_modules/is-callable/CHANGELOG.md +++ b/node_modules/is-callable/CHANGELOG.md @@ -1,3 +1,16 @@ +1.2.3 / 2021-01-31 +================= + * [Fix] `document.all` is callable (do not use `document.all`!) + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` + * [Tests] migrate tests to Github Actions + * [actions] add "Allow Edits" workflow + * [actions] switch Automatic Rebase workflow to `pull_request_target` event + +1.2.2 / 2020-09-21 +================= + * [Fix] include actual fix from 579179e + * [Dev Deps] update `eslint` + 1.2.1 / 2020-09-09 ================= * [Fix] phantomjs‘ Reflect.apply does not throw properly on a bad array-like diff --git a/node_modules/is-callable/index.js b/node_modules/is-callable/index.js index a2d4adc106..f36d71db18 100644 --- a/node_modules/is-callable/index.js +++ b/node_modules/is-callable/index.js @@ -12,8 +12,12 @@ if (typeof reflectApply === 'function' && typeof Object.defineProperty === 'func } }); isCallableMarker = {}; + // eslint-disable-next-line no-throw-literal + reflectApply(function () { throw 42; }, null, badArrayLike); } catch (_) { - reflectApply = null; + if (_ !== isCallableMarker) { + reflectApply = null; + } } } else { reflectApply = null; @@ -42,9 +46,12 @@ var toStr = Object.prototype.toString; var fnClass = '[object Function]'; var genClass = '[object GeneratorFunction]'; var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +/* globals document: false */ +var documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {}; module.exports = reflectApply ? function isCallable(value) { + if (value === documentDotAll) { return true; } if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } if (typeof value === 'function' && !value.prototype) { return true; } @@ -56,6 +63,7 @@ module.exports = reflectApply return !isES6ClassFn(value); } : function isCallable(value) { + if (value === documentDotAll) { return true; } if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } if (typeof value === 'function' && !value.prototype) { return true; } diff --git a/node_modules/is-callable/package.json b/node_modules/is-callable/package.json index 937ad93524..b5f7655932 100644 --- a/node_modules/is-callable/package.json +++ b/node_modules/is-callable/package.json @@ -1,6 +1,6 @@ { "name": "is-callable", - "version": "1.2.1", + "version": "1.2.3", "author": { "name": "Jordan Harband", "email": "ljharb@gmail.com", @@ -56,11 +56,11 @@ ], "dependencies": {}, "devDependencies": { - "@ljharb/eslint-config": "^17.2.0", - "aud": "^1.1.2", + "@ljharb/eslint-config": "^17.5.0", + "aud": "^1.1.3", "covert": "^1.1.1", "eclint": "^2.8.1", - "eslint": "^7.8.1", + "eslint": "^7.19.0", "foreach": "^2.0.5", "istanbul": "1.1.0-alpha.1", "istanbul-merge": "^1.1.1", @@ -69,7 +69,7 @@ "make-generator-function": "^2.0.0", "rimraf": "^2.7.1", "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" + "tape": "^5.1.1" }, "testling": { "files": "test/index.js", diff --git a/node_modules/is-callable/test/index.js b/node_modules/is-callable/test/index.js index d56366d0f9..2eacb0ee59 100644 --- a/node_modules/is-callable/test/index.js +++ b/node_modules/is-callable/test/index.js @@ -188,3 +188,11 @@ test('throwing functions', function (t) { var thrower = function (a) { return a.b; }; t.ok(isCallable(thrower), 'a function that throws is callable'); }); + +/* globals document: false */ +test('document.all', { skip: typeof document !== 'object' }, function (t) { + t.notOk(isCallable(document), 'document is not callable'); + t.ok(isCallable(document.all), 'document.all is callable'); + + t.end(); +}); diff --git a/node_modules/is-core-module/.eslintignore b/node_modules/is-core-module/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-core-module/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-core-module/.eslintrc b/node_modules/is-core-module/.eslintrc new file mode 100644 index 0000000000..9c7d5168a6 --- /dev/null +++ b/node_modules/is-core-module/.eslintrc @@ -0,0 +1,18 @@ +{ + "extends": "@ljharb", + "root": true, + "rules": { + "func-style": 1, + "operator-linebreak": [2, "before"], + }, + "overrides": [ + { + "files": "test/**", + "rules": { + "global-require": 0, + "max-lines-per-function": 0, + "no-negated-condition": 0, + }, + }, + ], +} diff --git a/node_modules/is-core-module/.nycrc b/node_modules/is-core-module/.nycrc new file mode 100644 index 0000000000..bdd626ce91 --- /dev/null +++ b/node_modules/is-core-module/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-core-module/CHANGELOG.md b/node_modules/is-core-module/CHANGELOG.md new file mode 100644 index 0000000000..1445627fb2 --- /dev/null +++ b/node_modules/is-core-module/CHANGELOG.md @@ -0,0 +1,90 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v2.5.0](https://github.com/inspect-js/is-core-module/compare/v2.4.0...v2.5.0) - 2021-07-12 + +### Commits + +- [Dev Deps] update `auto-changelog`, `eslint` [`6334cc9`](https://github.com/inspect-js/is-core-module/commit/6334cc94f3af7469685bd8f236740991baaf2705) +- [New] add `stream/web` to node v16.5+ [`17ac59b`](https://github.com/inspect-js/is-core-module/commit/17ac59b662d63e220a2e5728625f005c24f177b2) + +## [v2.4.0](https://github.com/inspect-js/is-core-module/compare/v2.3.0...v2.4.0) - 2021-05-09 + +### Commits + +- [readme] add actions and codecov badges [`82b7faa`](https://github.com/inspect-js/is-core-module/commit/82b7faa12b56dbe47fbea67e1a5b9e447027ba40) +- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`8096868`](https://github.com/inspect-js/is-core-module/commit/8096868c024a161ccd4d44110b136763e92eace8) +- [Dev Deps] update `eslint` [`6726824`](https://github.com/inspect-js/is-core-module/commit/67268249b88230018c510f6532a8046d7326346f) +- [New] add `diagnostics_channel` to node `^14.17` [`86c6563`](https://github.com/inspect-js/is-core-module/commit/86c65634201b8ff9b3e48a9a782594579c7f5c3c) +- [meta] fix prepublish script [`697a01e`](https://github.com/inspect-js/is-core-module/commit/697a01e3c9c0be074066520954f30fb28532ec57) + +## [v2.3.0](https://github.com/inspect-js/is-core-module/compare/v2.2.0...v2.3.0) - 2021-04-24 + +### Commits + +- [meta] do not publish github action workflow files [`060d4bb`](https://github.com/inspect-js/is-core-module/commit/060d4bb971a29451c19ff336eb56bee27f9fa95a) +- [New] add support for `node:` prefix, in node 16+ [`7341223`](https://github.com/inspect-js/is-core-module/commit/73412230a769f6e81c05eea50b6520cebf54ed2f) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`016269a`](https://github.com/inspect-js/is-core-module/commit/016269abae9f6657a5254adfbb813f09a05067f9) +- [patch] remove unneeded `.0` in version ranges [`cb466a6`](https://github.com/inspect-js/is-core-module/commit/cb466a6d89e52b8389e5c12715efcd550c41cea3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`c9f9c39`](https://github.com/inspect-js/is-core-module/commit/c9f9c396ace60ef81906f98059c064e6452473ed) +- [actions] update workflows [`3ee4a89`](https://github.com/inspect-js/is-core-module/commit/3ee4a89fd5a02fccd43882d905448ea6a98e9a3c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`dee4fed`](https://github.com/inspect-js/is-core-module/commit/dee4fed79690c1d43a22f7fa9426abebdc6d727f) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`7d046ba`](https://github.com/inspect-js/is-core-module/commit/7d046ba07ae8c9292e43652694ca808d7b309de8) +- [meta] use `prepublishOnly` script for npm 7+ [`149e677`](https://github.com/inspect-js/is-core-module/commit/149e6771a5ede6d097e71785b467a9c4b4977cc7) +- [readme] remove travis badge [`903b51d`](https://github.com/inspect-js/is-core-module/commit/903b51d6b69b98abeabfbc3695c345b02646f19c) + +## [v2.2.0](https://github.com/inspect-js/is-core-module/compare/v2.1.0...v2.2.0) - 2020-11-26 + +### Commits + +- [Tests] migrate tests to Github Actions [`c919f57`](https://github.com/inspect-js/is-core-module/commit/c919f573c0a92d10a0acad0b650b5aecb033d426) +- [patch] `core.json`: %s/ /\t/g [`db3f685`](https://github.com/inspect-js/is-core-module/commit/db3f68581f53e73cc09cd675955eb1bdd6a5a39b) +- [Tests] run `nyc` on all tests [`b2f925f`](https://github.com/inspect-js/is-core-module/commit/b2f925f8866f210ef441f39fcc8cc42692ab89b1) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`; add `safe-publish-latest` [`89f02a2`](https://github.com/inspect-js/is-core-module/commit/89f02a2b4162246dea303a6ee31bb9a550b05c72) +- [New] add `path/posix`, `path/win32`, `util/types` [`77f94f1`](https://github.com/inspect-js/is-core-module/commit/77f94f1e90ffd7c0be2a3f1aa8574ebf7fd981b3) + +## [v2.1.0](https://github.com/inspect-js/is-core-module/compare/v2.0.0...v2.1.0) - 2020-11-04 + +### Commits + +- [Dev Deps] update `eslint` [`5e0034e`](https://github.com/inspect-js/is-core-module/commit/5e0034eae57c09c8f1bd769f502486a00f56c6e4) +- [New] Add `diagnostics_channel` [`c2d83d0`](https://github.com/inspect-js/is-core-module/commit/c2d83d0a0225a1a658945d9bab7036ea347d29ec) + +## [v2.0.0](https://github.com/inspect-js/is-core-module/compare/v1.0.2...v2.0.0) - 2020-09-29 + +### Commits + +- v2 implementation [`865aeb5`](https://github.com/inspect-js/is-core-module/commit/865aeb5ca0e90248a3dfff5d7622e4751fdeb9cd) +- Only apps should have lockfiles [`5a5e660`](https://github.com/inspect-js/is-core-module/commit/5a5e660d568e37eb44e17fb1ebb12a105205fc2b) +- Initial commit for v2 [`5a51524`](https://github.com/inspect-js/is-core-module/commit/5a51524e06f92adece5fbb138c69b7b9748a2348) +- Tests [`116eae4`](https://github.com/inspect-js/is-core-module/commit/116eae4fccd01bc72c1fd3cc4b7561c387afc496) +- [meta] add `auto-changelog` [`c24388b`](https://github.com/inspect-js/is-core-module/commit/c24388bee828d223040519d1f5b226ca35beee63) +- [actions] add "Automatic Rebase" and "require allow edits" actions [`34292db`](https://github.com/inspect-js/is-core-module/commit/34292dbcbadae0868aff03c22dbd8b7b8a11558a) +- [Tests] add `npm run lint` [`4f9eeee`](https://github.com/inspect-js/is-core-module/commit/4f9eeee7ddff10698bbf528620f4dc8d4fa3e697) +- [readme] fix travis badges, https all URLs [`e516a73`](https://github.com/inspect-js/is-core-module/commit/e516a73b0dccce20938c432b1ba512eae8eff9e9) +- [meta] create FUNDING.yml [`1aabebc`](https://github.com/inspect-js/is-core-module/commit/1aabebca98d01f8a04e46bc2e2520fa93cf21ac6) +- [Fix] `domain`: domain landed sometime > v0.7.7 and <= v0.7.12 [`2df7d37`](https://github.com/inspect-js/is-core-module/commit/2df7d37595d41b15eeada732b706b926c2771655) +- [Fix] `sys`: worked in 0.6, not 0.7, and 0.8+ [`a75c134`](https://github.com/inspect-js/is-core-module/commit/a75c134229e1e9441801f6b73f6a52489346eb65) + +## [v1.0.2](https://github.com/inspect-js/is-core-module/compare/v1.0.1...v1.0.2) - 2014-09-28 + +### Commits + +- simpler [`66fe90f`](https://github.com/inspect-js/is-core-module/commit/66fe90f9771581b9adc0c3900baa52c21b5baea2) + +## [v1.0.1](https://github.com/inspect-js/is-core-module/compare/v1.0.0...v1.0.1) - 2014-09-28 + +### Commits + +- remove stupid [`f21f906`](https://github.com/inspect-js/is-core-module/commit/f21f906f882c2bd656a5fc5ed6fbe48ddaffb2ac) +- update readme [`1eff0ec`](https://github.com/inspect-js/is-core-module/commit/1eff0ec69798d1ec65771552d1562911e90a8027) + +## v1.0.0 - 2014-09-28 + +### Commits + +- init [`48e5e76`](https://github.com/inspect-js/is-core-module/commit/48e5e76cac378fddb8c1f7d4055b8dfc943d6b96) diff --git a/node_modules/is-core-module/LICENSE b/node_modules/is-core-module/LICENSE new file mode 100644 index 0000000000..2e502872a7 --- /dev/null +++ b/node_modules/is-core-module/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Dave Justice + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/is-core-module/README.md b/node_modules/is-core-module/README.md new file mode 100644 index 0000000000..062d9068eb --- /dev/null +++ b/node_modules/is-core-module/README.md @@ -0,0 +1,40 @@ +# is-core-module [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Is this specifier a node.js core module? Optionally provide a node version to check; defaults to the current node version. + +## Example + +```js +var isCore = require('is-core-module'); +var assert = require('assert'); +assert(isCore('fs')); +assert(!isCore('butts')); +``` + +## Tests +Clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-core-module +[2]: https://versionbadg.es/inspect-js/is-core-module.svg +[5]: https://david-dm.org/inspect-js/is-core-module.svg +[6]: https://david-dm.org/inspect-js/is-core-module +[7]: https://david-dm.org/inspect-js/is-core-module/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-core-module#info=devDependencies +[11]: https://nodei.co/npm/is-core-module.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-core-module.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/is-core-module.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-core-module +[codecov-image]: https://codecov.io/gh/inspect-js/is-core-module/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-core-module/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-core-module +[actions-url]: https://github.com/inspect-js/is-core-module/actions diff --git a/node_modules/is-core-module/core.json b/node_modules/is-core-module/core.json new file mode 100644 index 0000000000..773222f6ba --- /dev/null +++ b/node_modules/is-core-module/core.json @@ -0,0 +1,148 @@ +{ + "assert": true, + "node:assert": ">= 16", + "assert/strict": ">= 15", + "node:assert/strict": ">= 16", + "async_hooks": ">= 8", + "node:async_hooks": ">= 16", + "buffer_ieee754": "< 0.9.7", + "buffer": true, + "node:buffer": ">= 16", + "child_process": true, + "node:child_process": ">= 16", + "cluster": true, + "node:cluster": ">= 16", + "console": true, + "node:console": ">= 16", + "constants": true, + "node:constants": ">= 16", + "crypto": true, + "node:crypto": ">= 16", + "_debug_agent": ">= 1 && < 8", + "_debugger": "< 8", + "dgram": true, + "node:dgram": ">= 16", + "diagnostics_channel": [">= 14.17 && < 15", ">= 15.1"], + "node:diagnostics_channel": ">= 16", + "dns": true, + "node:dns": ">= 16", + "dns/promises": ">= 15", + "node:dns/promises": ">= 16", + "domain": ">= 0.7.12", + "node:domain": ">= 16", + "events": true, + "node:events": ">= 16", + "freelist": "< 6", + "fs": true, + "node:fs": ">= 16", + "fs/promises": [">= 10 && < 10.1", ">= 14"], + "node:fs/promises": ">= 16", + "_http_agent": ">= 0.11.1", + "node:_http_agent": ">= 16", + "_http_client": ">= 0.11.1", + "node:_http_client": ">= 16", + "_http_common": ">= 0.11.1", + "node:_http_common": ">= 16", + "_http_incoming": ">= 0.11.1", + "node:_http_incoming": ">= 16", + "_http_outgoing": ">= 0.11.1", + "node:_http_outgoing": ">= 16", + "_http_server": ">= 0.11.1", + "node:_http_server": ">= 16", + "http": true, + "node:http": ">= 16", + "http2": ">= 8.8", + "node:http2": ">= 16", + "https": true, + "node:https": ">= 16", + "inspector": ">= 8", + "node:inspector": ">= 16", + "_linklist": "< 8", + "module": true, + "node:module": ">= 16", + "net": true, + "node:net": ">= 16", + "node-inspect/lib/_inspect": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", + "os": true, + "node:os": ">= 16", + "path": true, + "node:path": ">= 16", + "path/posix": ">= 15.3", + "node:path/posix": ">= 16", + "path/win32": ">= 15.3", + "node:path/win32": ">= 16", + "perf_hooks": ">= 8.5", + "node:perf_hooks": ">= 16", + "process": ">= 1", + "node:process": ">= 16", + "punycode": true, + "node:punycode": ">= 16", + "querystring": true, + "node:querystring": ">= 16", + "readline": true, + "node:readline": ">= 16", + "repl": true, + "node:repl": ">= 16", + "smalloc": ">= 0.11.5 && < 3", + "_stream_duplex": ">= 0.9.4", + "node:_stream_duplex": ">= 16", + "_stream_transform": ">= 0.9.4", + "node:_stream_transform": ">= 16", + "_stream_wrap": ">= 1.4.1", + "node:_stream_wrap": ">= 16", + "_stream_passthrough": ">= 0.9.4", + "node:_stream_passthrough": ">= 16", + "_stream_readable": ">= 0.9.4", + "node:_stream_readable": ">= 16", + "_stream_writable": ">= 0.9.4", + "node:_stream_writable": ">= 16", + "stream": true, + "node:stream": ">= 16", + "stream/promises": ">= 15", + "node:stream/promises": ">= 16", + "stream/web": ">= 16.5", + "node:stream/web": ">= 16.5", + "string_decoder": true, + "node:string_decoder": ">= 16", + "sys": [">= 0.6 && < 0.7", ">= 0.8"], + "node:sys": ">= 16", + "timers": true, + "node:timers": ">= 16", + "timers/promises": ">= 15", + "node:timers/promises": ">= 16", + "_tls_common": ">= 0.11.13", + "node:_tls_common": ">= 16", + "_tls_legacy": ">= 0.11.3 && < 10", + "_tls_wrap": ">= 0.11.3", + "node:_tls_wrap": ">= 16", + "tls": true, + "node:tls": ">= 16", + "trace_events": ">= 10", + "node:trace_events": ">= 16", + "tty": true, + "node:tty": ">= 16", + "url": true, + "node:url": ">= 16", + "util": true, + "node:util": ">= 16", + "util/types": ">= 15.3", + "node:util/types": ">= 16", + "v8/tools/arguments": ">= 10 && < 12", + "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8": ">= 1", + "node:v8": ">= 16", + "vm": true, + "node:vm": ">= 16", + "wasi": ">= 13.4 && < 13.5", + "worker_threads": ">= 11.7", + "node:worker_threads": ">= 16", + "zlib": true, + "node:zlib": ">= 16" +} diff --git a/node_modules/is-core-module/index.js b/node_modules/is-core-module/index.js new file mode 100644 index 0000000000..f5a69cf765 --- /dev/null +++ b/node_modules/is-core-module/index.js @@ -0,0 +1,69 @@ +'use strict'; + +var has = require('has'); + +function specifierIncluded(current, specifier) { + var nodeParts = current.split('.'); + var parts = specifier.split(' '); + var op = parts.length > 1 ? parts[0] : '='; + var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); + + for (var i = 0; i < 3; ++i) { + var cur = parseInt(nodeParts[i] || 0, 10); + var ver = parseInt(versionParts[i] || 0, 10); + if (cur === ver) { + continue; // eslint-disable-line no-restricted-syntax, no-continue + } + if (op === '<') { + return cur < ver; + } + if (op === '>=') { + return cur >= ver; + } + return false; + } + return op === '>='; +} + +function matchesRange(current, range) { + var specifiers = range.split(/ ?&& ?/); + if (specifiers.length === 0) { + return false; + } + for (var i = 0; i < specifiers.length; ++i) { + if (!specifierIncluded(current, specifiers[i])) { + return false; + } + } + return true; +} + +function versionIncluded(nodeVersion, specifierValue) { + if (typeof specifierValue === 'boolean') { + return specifierValue; + } + + var current = typeof nodeVersion === 'undefined' + ? process.versions && process.versions.node && process.versions.node + : nodeVersion; + + if (typeof current !== 'string') { + throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required'); + } + + if (specifierValue && typeof specifierValue === 'object') { + for (var i = 0; i < specifierValue.length; ++i) { + if (matchesRange(current, specifierValue[i])) { + return true; + } + } + return false; + } + return matchesRange(current, specifierValue); +} + +var data = require('./core.json'); + +module.exports = function isCore(x, nodeVersion) { + return has(data, x) && versionIncluded(nodeVersion, data[x]); +}; diff --git a/node_modules/is-core-module/package.json b/node_modules/is-core-module/package.json new file mode 100644 index 0000000000..0965e71145 --- /dev/null +++ b/node_modules/is-core-module/package.json @@ -0,0 +1,68 @@ +{ + "name": "is-core-module", + "version": "2.5.0", + "description": "Is this specifier a node.js core module?", + "main": "index.js", + "exports": { + ".": [ + { + "default": "./index.js" + }, + "./index.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "lint": "eslint .", + "pretest": "npm run lint", + "tests-only": "tape 'test/**/*.js'", + "test": "nyc npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/is-core-module.git" + }, + "keywords": [ + "core", + "modules", + "module", + "npm", + "node", + "dependencies" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/is-core-module/issues" + }, + "homepage": "https://github.com/inspect-js/is-core-module", + "dependencies": { + "has": "^1.0.3" + }, + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "eslint": "^7.30.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "semver": "^6.3.0", + "tape": "^5.2.2" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} \ No newline at end of file diff --git a/node_modules/is-core-module/test/index.js b/node_modules/is-core-module/test/index.js new file mode 100644 index 0000000000..281c7e9a4b --- /dev/null +++ b/node_modules/is-core-module/test/index.js @@ -0,0 +1,108 @@ +'use strict'; + +var test = require('tape'); +var keys = require('object-keys'); +var semver = require('semver'); +var isCore = require('../'); +var data = require('../core.json'); + +var supportsNodePrefix = semver.satisfies(process.versions.node, '>= 16'); + +test('core modules', function (t) { + t.test('isCore()', function (st) { + st.ok(isCore('fs')); + st.ok(isCore('net')); + st.ok(isCore('http')); + + st.ok(!isCore('seq')); + st.ok(!isCore('../')); + + st.ok(!isCore('toString')); + + st.end(); + }); + + t.test('core list', function (st) { + var cores = keys(data); + st.plan(cores.length); + + for (var i = 0; i < cores.length; ++i) { + var mod = cores[i]; + var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func + if (isCore(mod)) { + st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw'); + } else { + st['throws'](requireFunc, mod + ' not supported; requiring throws'); + } + } + + st.end(); + }); + + t.test('core via repl module', { skip: !data.repl }, function (st) { + var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle + if (!libs) { + st.skip('module.builtinModules does not exist'); + } else { + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + st.ok(data[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } + } + } + st.end(); + }); + + t.test('core via builtinModules list', { skip: !data.module }, function (st) { + var libs = require('module').builtinModules; + if (!libs) { + st.skip('module.builtinModules does not exist'); + } else { + var excludeList = [ + '_debug_agent', + 'v8/tools/tickprocessor-driver', + 'v8/tools/SourceMap', + 'v8/tools/tickprocessor', + 'v8/tools/profile' + ]; + for (var i = 0; i < libs.length; ++i) { + var mod = libs[i]; + if (excludeList.indexOf(mod) === -1) { + st.ok(data[mod], mod + ' is a core module'); + st.doesNotThrow( + function () { require(mod); }, // eslint-disable-line no-loop-func + 'requiring ' + mod + ' does not throw' + ); + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } + } + } + } + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/eslint-plugin-import/node_modules/resolve/.editorconfig b/node_modules/is-date-object/.editorconfig similarity index 100% rename from node_modules/eslint-plugin-import/node_modules/resolve/.editorconfig rename to node_modules/is-date-object/.editorconfig diff --git a/node_modules/is-date-object/.eslintignore b/node_modules/is-date-object/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-date-object/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-date-object/.github/workflows/rebase.yml b/node_modules/is-date-object/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/is-date-object/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-date-object/.nycrc b/node_modules/is-date-object/.nycrc new file mode 100644 index 0000000000..a69aa2d827 --- /dev/null +++ b/node_modules/is-date-object/.nycrc @@ -0,0 +1,10 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test", + "test-corejs.js" + ] +} diff --git a/node_modules/is-date-object/.travis.yml b/node_modules/is-date-object/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/is-date-object/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/is-date-object/CHANGELOG.md b/node_modules/is-date-object/CHANGELOG.md index ff802bb27e..0f4fbbd95f 100644 --- a/node_modules/is-date-object/CHANGELOG.md +++ b/node_modules/is-date-object/CHANGELOG.md @@ -5,9 +5,39 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.0.4](https://github.com/inspect-js/is-date-object/compare/v1.0.3...v1.0.4) - 2021-05-07 -## [v1.0.2](https://github.com/inspect-js/is-date-object/compare/v1.0.1...v1.0.2) - 2019-12-19 +### Commits + +- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`8943a4a`](https://github.com/inspect-js/is-date-object/commit/8943a4a5035b3f2c8cee9a5edabb55579c16983d) +- [readme] make all URLs https [`1d4d6cd`](https://github.com/inspect-js/is-date-object/commit/1d4d6cd37365c3a36f98e3f82cfe6262227437db) +- [Dev Deps] update `eslint` [`a7abeaa`](https://github.com/inspect-js/is-date-object/commit/a7abeaa2409d3a34fccebcb5b362e0b90d0a8883) + +## [v1.0.3](https://github.com/inspect-js/is-date-object/compare/v1.0.2...v1.0.3) - 2021-05-05 + +### Commits + +- [Tests] migrate tests to Github Actions [`023504f`](https://github.com/inspect-js/is-date-object/commit/023504f4d48fc8788ff52ee525a1d9ec74fa7df5) +- [readme] add actions and codecov badges [`e63305f`](https://github.com/inspect-js/is-date-object/commit/e63305f2fb9ff3eb0dab7e0716585507a4f95a75) +- [meta] do not publish github action workflow files [`017d906`](https://github.com/inspect-js/is-date-object/commit/017d90679b6b1c16b398c0157904f91f56160219) +- [Tests] run `nyc` on all tests [`0376b6f`](https://github.com/inspect-js/is-date-object/commit/0376b6fb7a0ffcc42107c3c579ba0b3ab635b9e4) +- [readme] fix repo URLs; remove defunct badges [`1c148c6`](https://github.com/inspect-js/is-date-object/commit/1c148c6cb6eb0892b3186e814df3367dabb9732d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`c7a3f54`](https://github.com/inspect-js/is-date-object/commit/c7a3f54a207a6056ffafaa58178889ea1b1b77f7) +- [actions] add "Allow Edits" workflow [`e79b5b2`](https://github.com/inspect-js/is-date-object/commit/e79b5b25c173c3201e8b42a614d5f12c48b74a86) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`da28980`](https://github.com/inspect-js/is-date-object/commit/da28980c5fe86528585b2a420319ca8fc35f763a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`5cabae9`](https://github.com/inspect-js/is-date-object/commit/5cabae9f00bf458a470bde68b734540b8ab78c3b) +- [readme] add actions and codecov badges [`33dfb88`](https://github.com/inspect-js/is-date-object/commit/33dfb881b7abf668cd3bf956e2947a1ece552f25) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`745eb04`](https://github.com/inspect-js/is-date-object/commit/745eb0462ef3838df65f41f4a95453cc4f0aa06e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`466c62b`](https://github.com/inspect-js/is-date-object/commit/466c62b45af5a5a83963f6ef8617da887b0ab272) +- [actions] use checkout v2; remove unneeded env [`ff87a16`](https://github.com/inspect-js/is-date-object/commit/ff87a161e36d76d081d70933bf801a357c3b25fe) +- [Dev Deps] update `auto-changelog`, `tape` [`93188f5`](https://github.com/inspect-js/is-date-object/commit/93188f58e4b2c2b5e978a61a45380101d01f9838) +- [meta] use `prepublishOnly` script for npm 7+ [`1d0e3ea`](https://github.com/inspect-js/is-date-object/commit/1d0e3ea672971f02bb48c88b49079789ab41f574) +- [actions] update workflows [`4d1a235`](https://github.com/inspect-js/is-date-object/commit/4d1a2358de35a9fbe23a1dee10735748ed276301) +- [Dev Deps] update `auto-changelog`; add `aud` [`67be59a`](https://github.com/inspect-js/is-date-object/commit/67be59aa3c0ba44b982aaefb7e42adfb14eb279b) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`a6661c2`](https://github.com/inspect-js/is-date-object/commit/a6661c26af701a7782f6e06ad1b34587ce2b09bc) +- [Tests] only audit prod deps [`dd4a47f`](https://github.com/inspect-js/is-date-object/commit/dd4a47f8bcf82c3090826d890a7766f50d6f7af9) + +## [v1.0.2](https://github.com/inspect-js/is-date-object/compare/v1.0.1...v1.0.2) - 2019-12-18 ### Commits diff --git a/node_modules/is-date-object/README.md b/node_modules/is-date-object/README.md index 55b0c59673..1c084add99 100644 --- a/node_modules/is-date-object/README.md +++ b/node_modules/is-date-object/README.md @@ -1,6 +1,7 @@ # is-date-object [![Version Badge][2]][1] -[![Build Status][3]][4] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -8,8 +9,6 @@ [![npm badge][11]][1] -[![browser support][9]][10] - Is this value a JS Date object? This module works cross-realm/iframe, and despite ES6 @@toStringTag. ## Example @@ -37,17 +36,17 @@ assert.ok(isDate(new Date())); Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-date-object -[2]: http://versionbadg.es/ljharb/is-date-object.svg -[3]: https://travis-ci.org/ljharb/is-date-object.svg -[4]: https://travis-ci.org/ljharb/is-date-object -[5]: https://david-dm.org/ljharb/is-date-object.svg -[6]: https://david-dm.org/ljharb/is-date-object -[7]: https://david-dm.org/ljharb/is-date-object/dev-status.svg -[8]: https://david-dm.org/ljharb/is-date-object#info=devDependencies -[9]: https://ci.testling.com/ljharb/is-date-object.png -[10]: https://ci.testling.com/ljharb/is-date-object +[2]: https://versionbadg.es/inspect-js/is-date-object.svg +[5]: https://david-dm.org/inspect-js/is-date-object.svg +[6]: https://david-dm.org/inspect-js/is-date-object +[7]: https://david-dm.org/inspect-js/is-date-object/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-date-object#info=devDependencies [11]: https://nodei.co/npm/is-date-object.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-date-object.svg +[license-image]: https://img.shields.io/npm/l/is-date-object.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-date-object.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-date-object +[downloads-image]: https://img.shields.io/npm/dm/is-date-object.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-date-object +[codecov-image]: https://codecov.io/gh/inspect-js/is-date-object/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-date-object/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-date-object +[actions-url]: https://github.com/inspect-js/is-date-object/actions diff --git a/node_modules/is-date-object/index.js b/node_modules/is-date-object/index.js index 285ec4c2e7..996c5bb16f 100644 --- a/node_modules/is-date-object/index.js +++ b/node_modules/is-date-object/index.js @@ -12,7 +12,7 @@ var tryDateObject = function tryDateGetDayCall(value) { var toStr = Object.prototype.toString; var dateClass = '[object Date]'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; module.exports = function isDateObject(value) { if (typeof value !== 'object' || value === null) { diff --git a/node_modules/is-date-object/package.json b/node_modules/is-date-object/package.json index 5226a735c0..43fba59ee8 100644 --- a/node_modules/is-date-object/package.json +++ b/node_modules/is-date-object/package.json @@ -1,6 +1,6 @@ { "name": "is-date-object", - "version": "1.0.2", + "version": "1.0.4", "author": "Jordan Harband", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9,19 +9,20 @@ "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run lint", - "test": "npm run tests-only", - "tests-only": "node --harmony --es-staging test", - "posttest": "npx aud", - "coverage": "covert test/index.js", + "test": "npm run tests-only && npm run test:corejs", + "tests-only": "nyc tape 'test/**/*.js'", + "test:corejs": "nyc tape test-corejs.js", + "posttest": "aud --production", "lint": "eslint .", "version": "auto-changelog && git add CHANGELOG.md", "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" }, "repository": { "type": "git", - "url": "git://github.com/ljharb/is-date-object.git" + "url": "git://github.com/inspect-js/is-date-object.git" }, "keywords": [ "Date", @@ -30,17 +31,18 @@ "@@toStringTag", "Date object" ], - "dependencies": {}, "devDependencies": { - "@ljharb/eslint-config": "^15.0.2", - "auto-changelog": "^1.16.2", - "covert": "^1.1.1", - "eslint": "^6.7.2", + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eslint": "^7.26.0", "foreach": "^2.0.5", "indexof": "^0.0.1", "is": "^3.3.0", + "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^4.12.0" + "tape": "^5.2.2" }, "testling": { "files": "test/index.js", @@ -68,6 +70,7 @@ "template": "keepachangelog", "unreleased": false, "commitLimit": false, - "backfillLimit": false + "backfillLimit": false, + "hideCredit": true } } \ No newline at end of file diff --git a/node_modules/is-date-object/test/index.js b/node_modules/is-date-object/test/index.js index b9d27c53ef..3b2d93f5e4 100644 --- a/node_modules/is-date-object/test/index.js +++ b/node_modules/is-date-object/test/index.js @@ -2,7 +2,7 @@ var test = require('tape'); var isDate = require('../'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('') === 'symbol'; +var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator !== 'undefined'; test('not Dates', function (t) { t.notOk(isDate(), 'undefined is not Date'); diff --git a/node_modules/is-negative-zero/.editorconfig b/node_modules/is-negative-zero/.editorconfig new file mode 100644 index 0000000000..aaac3258be --- /dev/null +++ b/node_modules/is-negative-zero/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_style = tab +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/node_modules/is-negative-zero/.eslintignore b/node_modules/is-negative-zero/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-negative-zero/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-negative-zero/.eslintrc b/node_modules/is-negative-zero/.eslintrc index 955c229032..9079df723b 100644 --- a/node_modules/is-negative-zero/.eslintrc +++ b/node_modules/is-negative-zero/.eslintrc @@ -5,6 +5,7 @@ "rules": { "max-statements": [2, 14], - "no-extra-parens": [1] + "no-extra-parens": [1], + "no-magic-numbers": 0 } } diff --git a/node_modules/is-negative-zero/.github/workflows/node-4+.yml b/node_modules/is-negative-zero/.github/workflows/node-4+.yml new file mode 100644 index 0000000000..ba174e1d6c --- /dev/null +++ b/node_modules/is-negative-zero/.github/workflows/node-4+.yml @@ -0,0 +1,54 @@ +name: 'Tests: node.js' + +on: [pull_request, push] + +jobs: + matrix: + runs-on: ubuntu-latest + outputs: + latest: ${{ steps.set-matrix.outputs.requireds }} + minors: ${{ steps.set-matrix.outputs.optionals }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + preset: '>=4' + + latest: + needs: [matrix] + name: 'latest minors' + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.latest) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + minors: + needs: [matrix, latest] + name: 'non-latest minors' + continue-on-error: true + if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.minors) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + + node: + name: 'node 4+' + needs: [latest, minors] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/node_modules/is-negative-zero/.github/workflows/node-iojs.yml b/node_modules/is-negative-zero/.github/workflows/node-iojs.yml new file mode 100644 index 0000000000..f707c3cfc3 --- /dev/null +++ b/node_modules/is-negative-zero/.github/workflows/node-iojs.yml @@ -0,0 +1,58 @@ +name: 'Tests: node.js (io.js)' + +on: [pull_request, push] + +jobs: + matrix: + runs-on: ubuntu-latest + outputs: + latest: ${{ steps.set-matrix.outputs.requireds }} + minors: ${{ steps.set-matrix.outputs.optionals }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + preset: 'iojs' + + latest: + needs: [matrix] + name: 'latest minors' + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.latest) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + skip-ls-check: true + + minors: + needs: [matrix, latest] + name: 'non-latest minors' + continue-on-error: true + if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.minors) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + skip-ls-check: true + + node: + name: 'io.js' + needs: [latest, minors] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/node_modules/is-negative-zero/.github/workflows/node-pretest.yml b/node_modules/is-negative-zero/.github/workflows/node-pretest.yml new file mode 100644 index 0000000000..3921e0ae6c --- /dev/null +++ b/node_modules/is-negative-zero/.github/workflows/node-pretest.yml @@ -0,0 +1,26 @@ +name: 'Tests: pretest/posttest' + +on: [pull_request, push] + +jobs: + pretest: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run pretest' + with: + node-version: 'lts/*' + command: 'pretest' + + posttest: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run posttest' + with: + node-version: 'lts/*' + command: 'posttest' diff --git a/node_modules/is-negative-zero/.github/workflows/node-zero.yml b/node_modules/is-negative-zero/.github/workflows/node-zero.yml new file mode 100644 index 0000000000..2435bf2cc6 --- /dev/null +++ b/node_modules/is-negative-zero/.github/workflows/node-zero.yml @@ -0,0 +1,60 @@ +name: 'Tests: node.js (0.x)' + +on: [pull_request, push] + +jobs: + matrix: + runs-on: ubuntu-latest + outputs: + stable: ${{ steps.set-matrix.outputs.requireds }} + unstable: ${{ steps.set-matrix.outputs.optionals }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + preset: '0.x' + + stable: + needs: [matrix] + name: 'stable minors' + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.stable) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} + skip-ls-check: true + + unstable: + needs: [matrix, stable] + name: 'unstable minors' + continue-on-error: true + if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.unstable) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} + skip-ls-check: true + + node: + name: 'node 0.x' + needs: [stable, unstable] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/node_modules/is-negative-zero/.github/workflows/rebase.yml b/node_modules/is-negative-zero/.github/workflows/rebase.yml new file mode 100644 index 0000000000..027aed0797 --- /dev/null +++ b/node_modules/is-negative-zero/.github/workflows/rebase.yml @@ -0,0 +1,15 @@ +name: Automatic Rebase + +on: [pull_request_target] + +jobs: + _: + name: "Automatic Rebase" + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/rebase@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-negative-zero/.github/workflows/require-allow-edits.yml b/node_modules/is-negative-zero/.github/workflows/require-allow-edits.yml new file mode 100644 index 0000000000..549d7b4823 --- /dev/null +++ b/node_modules/is-negative-zero/.github/workflows/require-allow-edits.yml @@ -0,0 +1,12 @@ +name: Require “Allow Edits” + +on: [pull_request_target] + +jobs: + _: + name: "Require “Allow Edits”" + + runs-on: ubuntu-latest + + steps: + - uses: ljharb/require-allow-edits@main diff --git a/node_modules/is-negative-zero/.jscs.json b/node_modules/is-negative-zero/.jscs.json deleted file mode 100644 index 7abfe0bf67..0000000000 --- a/node_modules/is-negative-zero/.jscs.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"], - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": "allButReserved", - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": true, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 1 - }, - - "requirePaddingNewLinesAfterUseStrict": true -} - diff --git a/node_modules/is-negative-zero/.npmignore b/node_modules/is-negative-zero/.npmignore deleted file mode 100644 index a72b52ebe8..0000000000 --- a/node_modules/is-negative-zero/.npmignore +++ /dev/null @@ -1,15 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz - -pids -logs -results - -npm-debug.log -node_modules diff --git a/node_modules/is-negative-zero/.nycrc b/node_modules/is-negative-zero/.nycrc new file mode 100644 index 0000000000..1826526e09 --- /dev/null +++ b/node_modules/is-negative-zero/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-negative-zero/.travis.yml b/node_modules/is-negative-zero/.travis.yml deleted file mode 100644 index a94508b032..0000000000 --- a/node_modules/is-negative-zero/.travis.yml +++ /dev/null @@ -1,46 +0,0 @@ -language: node_js -node_js: - - "iojs-v2.4" - - "iojs-v2.3" - - "iojs-v2.2" - - "iojs-v2.1" - - "iojs-v2.0" - - "iojs-v1.8" - - "iojs-v1.7" - - "iojs-v1.6" - - "iojs-v1.5" - - "iojs-v1.4" - - "iojs-v1.3" - - "iojs-v1.2" - - "iojs-v1.1" - - "iojs-v1.0" - - "0.12" - - "0.11" - - "0.10" - - "0.9" - - "0.8" - - "0.6" - - "0.4" -before_install: - - '[ "${TRAVIS_NODE_VERSION}" = "0.6" ] || npm install -g npm@1.4.28 && npm install -g npm' -sudo: false -matrix: - fast_finish: true - allow_failures: - - node_js: "iojs-v2.3" - - node_js: "iojs-v2.2" - - node_js: "iojs-v2.1" - - node_js: "iojs-v2.0" - - node_js: "iojs-v1.7" - - node_js: "iojs-v1.6" - - node_js: "iojs-v1.5" - - node_js: "iojs-v1.4" - - node_js: "iojs-v1.3" - - node_js: "iojs-v1.2" - - node_js: "iojs-v1.1" - - node_js: "iojs-v1.0" - - node_js: "0.11" - - node_js: "0.9" - - node_js: "0.8" - - node_js: "0.6" - - node_js: "0.4" diff --git a/node_modules/is-negative-zero/CHANGELOG.md b/node_modules/is-negative-zero/CHANGELOG.md new file mode 100644 index 0000000000..71d9b9a94d --- /dev/null +++ b/node_modules/is-negative-zero/CHANGELOG.md @@ -0,0 +1,117 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v2.0.1](https://github.com/inspect-js/is-negative-zero/compare/v2.0.0...v2.0.1) - 2020-12-04 + +### Commits + +- [Tests] use shared travis-ci configs [`5b92482`](https://github.com/inspect-js/is-negative-zero/commit/5b92482ed26e55e1aafcc6b6310d279958af8204) +- [Tests] up to `node` `v11.7`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.16`, `v5.12`, `v4.9`; use `nvm install-latest-npm`; fix test scripts [`0f5d2f8`](https://github.com/inspect-js/is-negative-zero/commit/0f5d2f85ea7fe83de47f39b6b35e489b866d88a7) +- [Tests] migrate tests to Github Actions [`b80f05a`](https://github.com/inspect-js/is-negative-zero/commit/b80f05adb11a6a3232860fb50272b101aacb504f) +- [Tests] remove `jscs` [`7ccaf41`](https://github.com/inspect-js/is-negative-zero/commit/7ccaf4100281b614d61d7c9122e6f87943a89295) +- [meta] add missing changelog [`992bdde`](https://github.com/inspect-js/is-negative-zero/commit/992bddee362cbae71f2cdfd8666f4774b252412e) +- [readme] fix repo URLs; remove defunct badges [`80fd18d`](https://github.com/inspect-js/is-negative-zero/commit/80fd18d2b0191321afe0e1b572200e4c025eb664) +- [Tests] run `nyc` on all tests [`df26f14`](https://github.com/inspect-js/is-negative-zero/commit/df26f14b0b854d82b0d3ca7b4949811c9f151357) +- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`d7723aa`](https://github.com/inspect-js/is-negative-zero/commit/d7723aa70e5b478adc36d98e1338abe741c1906a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`9fdaabe`](https://github.com/inspect-js/is-negative-zero/commit/9fdaabecfdb25e6e860e5007a91b60ee0f20734f) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`f07eeb2`](https://github.com/inspect-js/is-negative-zero/commit/f07eeb2740037c53f270e95d2f62edc051cafc56) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`bd5c751`](https://github.com/inspect-js/is-negative-zero/commit/bd5c751fa4850ba8726dc1c197ed6c843a227b05) +- [actions] add automatic rebasing / merge commit blocking [`5666a91`](https://github.com/inspect-js/is-negative-zero/commit/5666a917db6bdcee63c0a3e28e5e281359975abc) +- [meta] add `auto-changelog` [`f70fb2b`](https://github.com/inspect-js/is-negative-zero/commit/f70fb2b5b9ea53dc52729310717553648292189e) +- [actions] add "Allow Edits" workflow [`2b040a8`](https://github.com/inspect-js/is-negative-zero/commit/2b040a87d362f17d8cab2b0d48058b80e426ad4e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`09e2e53`](https://github.com/inspect-js/is-negative-zero/commit/09e2e537390225c1d1a6912be64267eaec6ea367) +- [Tests] use `npm audit` instead of `nsp` [`7df2669`](https://github.com/inspect-js/is-negative-zero/commit/7df2669013ac9328d424e9d8c82a53a0458f0888) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`4ff97c5`](https://github.com/inspect-js/is-negative-zero/commit/4ff97c5891c7a241a91c03fb54bd83e78570ef22) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`9e8cb7b`](https://github.com/inspect-js/is-negative-zero/commit/9e8cb7bca46d325ecf202187c0fde7da8722bcab) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `nsp` [`70b9888`](https://github.com/inspect-js/is-negative-zero/commit/70b988802a99c84ab7eb8da287bb8ff0efc5c055) +- [Dev Deps] update `jscs` [`59d0c42`](https://github.com/inspect-js/is-negative-zero/commit/59d0c42131020b74e68fd444798b9a3bf247fb2d) +- Add `npm run security` [`eb418ed`](https://github.com/inspect-js/is-negative-zero/commit/eb418ed7e79216808c206388fbd360cc7a75655f) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`86a758d`](https://github.com/inspect-js/is-negative-zero/commit/86a758d42eb7d17a18f7f584c337d8820b842758) +- Only apps should have lockfiles [`a0ab621`](https://github.com/inspect-js/is-negative-zero/commit/a0ab6215590bf6adb3eaf1ff9e7c036d72e807ec) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`5c51349`](https://github.com/inspect-js/is-negative-zero/commit/5c513498fc5a8b2fd06f5e0c1b38b8e93c3477ac) +- [meta] add `funding` field [`1d0b2f4`](https://github.com/inspect-js/is-negative-zero/commit/1d0b2f43bf5bf75176859a440346b3e338ee510e) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`9b12367`](https://github.com/inspect-js/is-negative-zero/commit/9b12367706f1c269a3df406c8e2c211558671a15) +- [Dev Deps] update `auto-changelog`, `tape` [`6d98b8d`](https://github.com/inspect-js/is-negative-zero/commit/6d98b8d1f512c3844d4062215c793070084d1164) +- [Dev Deps] Update `tape`, `eslint` [`a258cdb`](https://github.com/inspect-js/is-negative-zero/commit/a258cdb86691725482d1d43a1f9e7953c3c6733f) +- [Dev Deps] update `auto-changelog`; add `aud` [`2ca2afb`](https://github.com/inspect-js/is-negative-zero/commit/2ca2afb9efef4ebc8b3c19046ab1ab3ad516ea9a) +- Test up to `io.js` `v3.0` [`1254ae8`](https://github.com/inspect-js/is-negative-zero/commit/1254ae80b7706616331ac914654d7a17bff31039) +- [Dev Deps] update `auto-changelog` [`4b54722`](https://github.com/inspect-js/is-negative-zero/commit/4b547228fceaae8f9eccabc9ad8a49046492348d) +- [Tests] only audit prod deps [`86d298b`](https://github.com/inspect-js/is-negative-zero/commit/86d298b56db90f81617ee5d942476eda34afb374) +- [Dev Deps] update `tape` [`3a47e27`](https://github.com/inspect-js/is-negative-zero/commit/3a47e2730f889539f666ef0eb09a93fb9c80bfd1) +- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`128d9bd`](https://github.com/inspect-js/is-negative-zero/commit/128d9bd4c12385fb5e478ac3dd3138fa4360a777) + +## [v2.0.0](https://github.com/inspect-js/is-negative-zero/compare/v1.0.0...v2.0.0) - 2015-07-24 + +### Commits + +- Update `tape`, `eslint`; use my personal shared `eslint` config. [`648d002`](https://github.com/inspect-js/is-negative-zero/commit/648d0029b177886428a11b07307f233ae2d3175b) +- Add `npm run eslint` [`5a52d80`](https://github.com/inspect-js/is-negative-zero/commit/5a52d80ab052e377044b9b181991a32afaaa3090) +- Using my standard jscs.json file [`5a667d9`](https://github.com/inspect-js/is-negative-zero/commit/5a667d9f8b7402ca3bd134080cd4435b5c7f1462) +- Adding `npm run lint` [`9a85ed9`](https://github.com/inspect-js/is-negative-zero/commit/9a85ed934da65d8733a38bf6ad3c89fd62115194) +- Update `tape`, `covert`, `jscs` [`c6cd3a6`](https://github.com/inspect-js/is-negative-zero/commit/c6cd3a64ea5b98100e10537549f50a9eeadc30ec) +- Update `eslint` [`e9c9b6e`](https://github.com/inspect-js/is-negative-zero/commit/e9c9b6e9623f021b7f3ae4091bf9ea2571ab02b4) +- Test on latest `io.js` [`2f7c8a9`](https://github.com/inspect-js/is-negative-zero/commit/2f7c8a9d174066400c072841d7bcf02cf90f8ebf) +- Adding license and downloads badges [`717087a`](https://github.com/inspect-js/is-negative-zero/commit/717087a013b4cfc9dc7847d3d4a64faf19341be4) +- Remove Number type coercion. [`481295d`](https://github.com/inspect-js/is-negative-zero/commit/481295dbd09dbf81d196dc77382f1b92f534de3f) +- Test up to `io.js` `v2.1` [`139a84a`](https://github.com/inspect-js/is-negative-zero/commit/139a84a3dbdec29682044c6e7ac884a7382ae6e1) +- Update `eslint` [`2f5fbfb`](https://github.com/inspect-js/is-negative-zero/commit/2f5fbfbc436ccd8676fc36fcd9f0edcdda33a1e7) +- Update `eslint` [`53cb4c5`](https://github.com/inspect-js/is-negative-zero/commit/53cb4c5eccecdf2d874e78e5c38cca762ed76a9d) +- Test on `io.js` `v2.2` [`98a1824`](https://github.com/inspect-js/is-negative-zero/commit/98a1824c86366f8a03cf303f46acecd67409f94b) +- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`772d6cd`](https://github.com/inspect-js/is-negative-zero/commit/772d6cdf397e6fc1b26e5ed5f279d07a5ead6df8) +- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`3e6147e`](https://github.com/inspect-js/is-negative-zero/commit/3e6147ebb5ecdfda4a2bffa441572fe017c7bb73) +- Use SVG badges instead of PNG [`d986cb4`](https://github.com/inspect-js/is-negative-zero/commit/d986cb450e5bd4f373041255b69e18f47c252a1e) +- Update `tape`, `jscs` [`9f9d7e7`](https://github.com/inspect-js/is-negative-zero/commit/9f9d7e751bcf4ceeed8e36e75e31d29c76326b3f) +- Update `jscs` [`079eaf6`](https://github.com/inspect-js/is-negative-zero/commit/079eaf699d53e7e32c54e5233259a00f5f494d9a) +- Update `tape`, `jscs` [`cffe3fc`](https://github.com/inspect-js/is-negative-zero/commit/cffe3fc17c6bfaa6996bf7402446b160631a04b3) +- Update `tape`, `jscs` [`3a16616`](https://github.com/inspect-js/is-negative-zero/commit/3a166165ae8770d59c296794d28547379cebec58) +- Use consistent quotes [`9509a81`](https://github.com/inspect-js/is-negative-zero/commit/9509a8110027b12c5762ba48d03b649a921847d5) +- Test on `io.js` `v2.4` [`a9150a3`](https://github.com/inspect-js/is-negative-zero/commit/a9150a3397db339d992e9e4e6ddb52d1237fd617) +- Test on `io.js` `v2.3` [`36d7acf`](https://github.com/inspect-js/is-negative-zero/commit/36d7acf5bb9193a2b35585e2c49ae8be9f45a55e) +- Lock covert to v1.0.0. [`29d8917`](https://github.com/inspect-js/is-negative-zero/commit/29d89171c3aad69ace372edbf641ec3a5468c760) +- Updating jscs [`fe09c8a`](https://github.com/inspect-js/is-negative-zero/commit/fe09c8a6d16c637ecd83a9a8a7f6192faef0754a) +- Updating jscs [`5877bc7`](https://github.com/inspect-js/is-negative-zero/commit/5877bc7c2ed44c1ecc5d31e1c484c523450722d8) +- Running linter as part of tests [`9e77756`](https://github.com/inspect-js/is-negative-zero/commit/9e777563905f511d915ec7257e2637811b911bd6) +- Updating covert [`520a695`](https://github.com/inspect-js/is-negative-zero/commit/520a695164465b88c76860a638baafd4192bce5c) + +## [v1.0.0](https://github.com/inspect-js/is-negative-zero/compare/v0.1.1...v1.0.0) - 2014-08-08 + +### Commits + +- Updating tape [`31d1942`](https://github.com/inspect-js/is-negative-zero/commit/31d19422ecd9d453677851a9d5a8d9372a16fb39) +- Updating tape [`e7143bf`](https://github.com/inspect-js/is-negative-zero/commit/e7143bf3b67d8881b1b6ee0444637647d7bb1d2b) + +## [v0.1.1](https://github.com/inspect-js/is-negative-zero/compare/v0.1.0...v0.1.1) - 2014-05-13 + +### Merged + +- Simplify code [`#1`](https://github.com/inspect-js/is-negative-zero/pull/1) + +### Commits + +- Adding a trailing newline [`61fb37f`](https://github.com/inspect-js/is-negative-zero/commit/61fb37f677e871cca53d9309e765d808ddddfd5a) + +## [v0.1.0](https://github.com/inspect-js/is-negative-zero/compare/v0.0.0...v0.1.0) - 2014-05-13 + +### Commits + +- Make sure old and unstable nodes don't break Travis [`f627215`](https://github.com/inspect-js/is-negative-zero/commit/f627215527a95dc1ca014600650e00f15fe122c5) +- Updating deps [`b502f48`](https://github.com/inspect-js/is-negative-zero/commit/b502f48e807d7671cb07e2ca247ae2daa62e4165) +- Oops, negative numbers were negative zero! [`746cb97`](https://github.com/inspect-js/is-negative-zero/commit/746cb975d82c0fa0c5058e8e031807f9afcfd6db) +- Updating covert [`99ef4ed`](https://github.com/inspect-js/is-negative-zero/commit/99ef4ed97d2f76f2a5afbef029bf794f1b5bcffa) +- Updating tape [`ee9cfc2`](https://github.com/inspect-js/is-negative-zero/commit/ee9cfc2fd0039bdb65b6493ce0b8e47d18aa17cd) +- Testing on node 0.6 again [`6a9bf0a`](https://github.com/inspect-js/is-negative-zero/commit/6a9bf0a09e210cca09c7a8a225d08ef1e6789b5a) + +## v0.0.0 - 2014-01-19 + +### Commits + +- package.json [`8411d92`](https://github.com/inspect-js/is-negative-zero/commit/8411d92ec787fd522a1b5e65154ae88e9024a23f) +- read me [`5c8bf3c`](https://github.com/inspect-js/is-negative-zero/commit/5c8bf3ce4867dbf2997ef01ea6b712aa294ec959) +- Initial commit [`c06f7dc`](https://github.com/inspect-js/is-negative-zero/commit/c06f7dcf926f5b35ba678787a0f16cdd7b544054) +- Tests. [`5c554d4`](https://github.com/inspect-js/is-negative-zero/commit/5c554d405bfb323a7413fde395d8dc39c5316356) +- Travis CI [`334d000`](https://github.com/inspect-js/is-negative-zero/commit/334d000941fc926493cc7dbdb4e5f7ae481a311b) +- Implementation. [`4ef4491`](https://github.com/inspect-js/is-negative-zero/commit/4ef449189c36d471d283e40aa20a8ebfa4985882) diff --git a/node_modules/is-negative-zero/README.md b/node_modules/is-negative-zero/README.md index 18b06849dc..b60b4d36f9 100644 --- a/node_modules/is-negative-zero/README.md +++ b/node_modules/is-negative-zero/README.md @@ -1,6 +1,5 @@ -#is-negative-zero [![Version Badge][2]][1] +# is-negative-zero [![Version Badge][2]][1] -[![Build Status][3]][4] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -8,8 +7,6 @@ [![npm badge][11]][1] -[![browser support][9]][10] - Is this value negative zero? === will lie to you. ## Example @@ -39,15 +36,13 @@ assert.ok(isNegativeZero(-0)); Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-negative-zero -[2]: http://vb.teelaun.ch/ljharb/is-negative-zero.svg -[3]: https://travis-ci.org/ljharb/is-negative-zero.svg -[4]: https://travis-ci.org/ljharb/is-negative-zero -[5]: https://david-dm.org/ljharb/is-negative-zero.svg -[6]: https://david-dm.org/ljharb/is-negative-zero -[7]: https://david-dm.org/ljharb/is-negative-zero/dev-status.svg -[8]: https://david-dm.org/ljharb/is-negative-zero#info=devDependencies -[9]: https://ci.testling.com/ljharb/is-negative-zero.png -[10]: https://ci.testling.com/ljharb/is-negative-zero +[2]: http://versionbadg.es/inspect-js/is-negative-zero.svg +[3]: https://travis-ci.org/inspect-js/is-negative-zero.svg +[4]: https://travis-ci.org/inspect-js/is-negative-zero +[5]: https://david-dm.org/inspect-js/is-negative-zero.svg +[6]: https://david-dm.org/inspect-js/is-negative-zero +[7]: https://david-dm.org/inspect-js/is-negative-zero/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-negative-zero#info=devDependencies [11]: https://nodei.co/npm/is-negative-zero.png?downloads=true&stars=true [license-image]: http://img.shields.io/npm/l/is-negative-zero.svg [license-url]: LICENSE diff --git a/node_modules/is-negative-zero/package.json b/node_modules/is-negative-zero/package.json index addc9f8947..c9e1d2f692 100644 --- a/node_modules/is-negative-zero/package.json +++ b/node_modules/is-negative-zero/package.json @@ -1,26 +1,31 @@ { "name": "is-negative-zero", - "version": "2.0.0", + "version": "2.0.1", "description": "Is this value negative zero? === will lie to you", - "author": "Jordan Harband", + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, "license": "MIT", "main": "index.js", "scripts": { - "test": "npm run lint && node test.js && npm run coverage-quiet", - "coverage": "covert test.js", - "coverage-quiet": "covert test.js --quiet", - "lint": "npm run jscs && npm run eslint", - "jscs": "jscs *.js", - "eslint": "eslint *.js" + "prepublish": "safe-publish-latest", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx aud --production", + "lint": "eslint .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" }, "repository": { "type": "git", - "url": "git://github.com/ljharb/is-negative-zero.git" + "url": "git://github.com/inspect-js/is-negative-zero.git" }, "bugs": { - "url": "https://github.com/ljharb/is-negative-zero/issues" + "url": "https://github.com/inspect-js/is-negative-zero/issues" }, - "homepage": "https://github.com/ljharb/is-negative-zero", + "homepage": "https://github.com/inspect-js/is-negative-zero", "keywords": [ "is", "negative", @@ -33,14 +38,16 @@ ], "dependencies": {}, "devDependencies": { - "tape": "^4.0.1", - "covert": "^1.1.0", - "jscs": "^1.13.1", - "eslint": "^1.0.0-rc-3", - "@ljharb/eslint-config": "^1.0.3" + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.14.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" }, "testling": { - "files": "test.js", + "files": "test/index.js", "browsers": [ "iexplore/6.0..latest", "firefox/3.0..6.0", @@ -60,5 +67,13 @@ }, "engines": { "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true } } \ No newline at end of file diff --git a/node_modules/is-negative-zero/test.js b/node_modules/is-negative-zero/test.js deleted file mode 100644 index 18c3f7cdc4..0000000000 --- a/node_modules/is-negative-zero/test.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isNegativeZero = require('./'); - -test('not negative zero', function (t) { - t.notOk(isNegativeZero(), 'undefined is not negative zero'); - t.notOk(isNegativeZero(null), 'null is not negative zero'); - t.notOk(isNegativeZero(false), 'false is not negative zero'); - t.notOk(isNegativeZero(true), 'true is not negative zero'); - t.notOk(isNegativeZero(0), 'positive zero is not negative zero'); - t.notOk(isNegativeZero(Infinity), 'Infinity is not negative zero'); - t.notOk(isNegativeZero(-Infinity), '-Infinity is not negative zero'); - t.notOk(isNegativeZero(NaN), 'NaN is not negative zero'); - t.notOk(isNegativeZero('foo'), 'string is not negative zero'); - t.notOk(isNegativeZero([]), 'array is not negative zero'); - t.notOk(isNegativeZero({}), 'object is not negative zero'); - t.notOk(isNegativeZero(function () {}), 'function is not negative zero'); - t.notOk(isNegativeZero(-1), '-1 is not negative zero'); - - t.end(); -}); - -test('negative zero', function (t) { - t.ok(isNegativeZero(-0), 'negative zero is negative zero'); - t.end(); -}); - diff --git a/node_modules/is-negative-zero/test/index.js b/node_modules/is-negative-zero/test/index.js new file mode 100644 index 0000000000..8fd7d16bfa --- /dev/null +++ b/node_modules/is-negative-zero/test/index.js @@ -0,0 +1,28 @@ +'use strict'; + +var test = require('tape'); +var isNegativeZero = require('../'); + +test('not negative zero', function (t) { + t.notOk(isNegativeZero(), 'undefined is not negative zero'); + t.notOk(isNegativeZero(null), 'null is not negative zero'); + t.notOk(isNegativeZero(false), 'false is not negative zero'); + t.notOk(isNegativeZero(true), 'true is not negative zero'); + t.notOk(isNegativeZero(0), 'positive zero is not negative zero'); + t.notOk(isNegativeZero(Infinity), 'Infinity is not negative zero'); + t.notOk(isNegativeZero(-Infinity), '-Infinity is not negative zero'); + t.notOk(isNegativeZero(NaN), 'NaN is not negative zero'); + t.notOk(isNegativeZero('foo'), 'string is not negative zero'); + t.notOk(isNegativeZero([]), 'array is not negative zero'); + t.notOk(isNegativeZero({}), 'object is not negative zero'); + t.notOk(isNegativeZero(function () {}), 'function is not negative zero'); + t.notOk(isNegativeZero(-1), '-1 is not negative zero'); + + t.end(); +}); + +test('negative zero', function (t) { + t.ok(isNegativeZero(-0), 'negative zero is negative zero'); + t.end(); +}); + diff --git a/node_modules/is-number-object/.editorconfig b/node_modules/is-number-object/.editorconfig new file mode 100644 index 0000000000..bc228f8269 --- /dev/null +++ b/node_modules/is-number-object/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 150 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off diff --git a/node_modules/is-number-object/.eslintignore b/node_modules/is-number-object/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-number-object/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-number-object/.eslintrc b/node_modules/is-number-object/.eslintrc new file mode 100644 index 0000000000..a6dec9472b --- /dev/null +++ b/node_modules/is-number-object/.eslintrc @@ -0,0 +1,9 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + }, +} diff --git a/node_modules/is-number-object/.github/FUNDING.yml b/node_modules/is-number-object/.github/FUNDING.yml new file mode 100644 index 0000000000..17f4dc55da --- /dev/null +++ b/node_modules/is-number-object/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/is-number-object +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-number-object/.nycrc b/node_modules/is-number-object/.nycrc new file mode 100644 index 0000000000..bdd626ce91 --- /dev/null +++ b/node_modules/is-number-object/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-number-object/CHANGELOG.md b/node_modules/is-number-object/CHANGELOG.md new file mode 100644 index 0000000000..d6954eb12f --- /dev/null +++ b/node_modules/is-number-object/CHANGELOG.md @@ -0,0 +1,105 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.5](https://github.com/inspect-js/is-number-object/compare/v1.0.4...v1.0.5) - 2021-05-07 + +### Commits + +- [Tests] migrate tests to Github Actions [`9666737`](https://github.com/inspect-js/is-number-object/commit/96667372f8e36f70516218f86318f957f8c175ad) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7815ce2`](https://github.com/inspect-js/is-number-object/commit/7815ce21cb5662c2d1651b3ec302f186aa8a016b) +- [meta] do not publish github action workflow files [`80ccb75`](https://github.com/inspect-js/is-number-object/commit/80ccb7509f91732675b018cc1a636d649a92889e) +- [Tests] run `nyc` on all tests [`c9ffb74`](https://github.com/inspect-js/is-number-object/commit/c9ffb74443690ef22f9aa7dd35855fd1e3be5184) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`7e84161`](https://github.com/inspect-js/is-number-object/commit/7e84161d089c87ef42e3639ac1889642624ebd28) +- [readme] add actions and codecov badges [`0c5ec7a`](https://github.com/inspect-js/is-number-object/commit/0c5ec7aa87dac27bdcda2365124c3aa0ccf9c278) +- [actions] add Require Allow Edits workflow [`dd0fb74`](https://github.com/inspect-js/is-number-object/commit/dd0fb74b2ecb630ea7778a6f06dcc017323a3c1d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `tape` [`2d36f80`](https://github.com/inspect-js/is-number-object/commit/2d36f809a7b9896958b0b0f3b69be0067caedb45) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`77d3140`](https://github.com/inspect-js/is-number-object/commit/77d3140557d483e467ce070b21bf384e9a7562d5) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`75d4abf`](https://github.com/inspect-js/is-number-object/commit/75d4abf34168e69d73f621c696a16179ddc0873c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`0c2a917`](https://github.com/inspect-js/is-number-object/commit/0c2a917e4802b102888759fad912bd9faa5587f7) +- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`8b6ebc4`](https://github.com/inspect-js/is-number-object/commit/8b6ebc489db14a0c369214e081413f326fc0d598) +- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`62045fc`](https://github.com/inspect-js/is-number-object/commit/62045fcaddb9e4d3ef81068e99d07d21cd62023b) +- [actions] use checkout v2; remove unneeded env [`d48cd06`](https://github.com/inspect-js/is-number-object/commit/d48cd06720ea71f278a6d35c6f0a8ec04242a58f) +- [meta] use `prepublishOnly` script for npm 7+ [`827ab0d`](https://github.com/inspect-js/is-number-object/commit/827ab0d52d25f46d232ae7442ece270dec2de1df) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`bfed500`](https://github.com/inspect-js/is-number-object/commit/bfed500e6cc3cd3b9e7ffea78429c59857035791) +- [meta] remove explicit audit level config [`ce23e5e`](https://github.com/inspect-js/is-number-object/commit/ce23e5e49fbebe190267d8c99ddfd880a963b7ee) +- [meta] gitignore coverage output [`f1ad981`](https://github.com/inspect-js/is-number-object/commit/f1ad98106549c1c88322d8cb206068ea4c5bd424) + +## [v1.0.4](https://github.com/inspect-js/is-number-object/compare/v1.0.3...v1.0.4) - 2019-12-18 + +### Commits + +- [Tests] use shared travis-ci configs [`792b5aa`](https://github.com/inspect-js/is-number-object/commit/792b5aa5e7313ddf5507f7283bb7d5d5c646b11b) +- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v5.12`, `v4.9`; use `nvm install-latest-npm` [`dc66db7`](https://github.com/inspect-js/is-number-object/commit/dc66db7dd1eca0263f6602597eb40601519e912e) +- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`7660fed`](https://github.com/inspect-js/is-number-object/commit/7660fed03a7060eb5c91e74b9a17303d4fac1056) +- [Tests] remove `jscs` [`f1fee97`](https://github.com/inspect-js/is-number-object/commit/f1fee97423478bcc653c844fadda55138d9b9a54) +- [meta] add `auto-changelog` [`4b1c225`](https://github.com/inspect-js/is-number-object/commit/4b1c2253770eb18761a1e8b157772028d6f742c4) +- [meta] remove unused Makefile and associated utilities [`379b979`](https://github.com/inspect-js/is-number-object/commit/379b9793d9c61d7889e53bd9de9578dca9964ebc) +- Update `covert`, `jscs`, `eslint`, `semver` [`16d2af8`](https://github.com/inspect-js/is-number-object/commit/16d2af82a6c93aee614f7a4b2c468411c743e95f) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `is`, `replace`, `semver`, `tape` [`21c0f04`](https://github.com/inspect-js/is-number-object/commit/21c0f0431984b87443c6acb9f003368feb7b4368) +- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `nsp`, `eslint`, `semver`. Add `replace`. Use `^` instead of `~`. [`19d6ee3`](https://github.com/inspect-js/is-number-object/commit/19d6ee3a3d4a87764d57316804fd8b882ba5197c) +- Update `eslint` [`d32754b`](https://github.com/inspect-js/is-number-object/commit/d32754bcca0033e01eba531c4353d1239e992203) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace` [`1df8165`](https://github.com/inspect-js/is-number-object/commit/1df8165dd63d9f2f78ccb78e905d0a6b3e302884) +- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`675372b`](https://github.com/inspect-js/is-number-object/commit/675372b115fb20b5034f40bcbb5560c6c0512746) +- [readme] clean up readme; remove testling; fix repo URLs [`80e29c4`](https://github.com/inspect-js/is-number-object/commit/80e29c4d6d0811fc361e95ee83b81280bf3ae3f5) +- [Tests] up to `node` `v12.7`, `v10.16`, `v8.16` [`287a968`](https://github.com/inspect-js/is-number-object/commit/287a9687b1fc3d091ec231c06f19a19ff7b0e8f6) +- Test on latest `iojs` and `node` versions. [`11c98a2`](https://github.com/inspect-js/is-number-object/commit/11c98a23b232cb21c7daab797fd63875c2970681) +- [actions] add automatic rebasing / merge commit blocking [`022d026`](https://github.com/inspect-js/is-number-object/commit/022d026129df445f239ba2ecd8d47a2786242d75) +- [meta] create FUNDING.yml [`7f52710`](https://github.com/inspect-js/is-number-object/commit/7f527107168aad7108b7c262d295dcf44e03214d) +- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`bc8cd50`](https://github.com/inspect-js/is-number-object/commit/bc8cd508fe4440168f9b049be3ddf93c56c06c49) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`1f9200b`](https://github.com/inspect-js/is-number-object/commit/1f9200b7c56840dc23eeeca5d0ee4f64a0446e08) +- [Tests] up to `node` `v12.11` [`706d50a`](https://github.com/inspect-js/is-number-object/commit/706d50a779b90feb3f4d2ae88d8189d19b913073) +- [Dev Deps] update `jscs` [`e3591a4`](https://github.com/inspect-js/is-number-object/commit/e3591a445b1af25d46632eafea51efa07b4eb6dc) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`baf4ee7`](https://github.com/inspect-js/is-number-object/commit/baf4ee749fb65ec12e9cab102e77aa0e14312109) +- Update `nsp`, `eslint` [`61b18d5`](https://github.com/inspect-js/is-number-object/commit/61b18d5b44542fddf4950534d506b20d8c8b1f44) +- Update `eslint`, `semver` [`52e61bd`](https://github.com/inspect-js/is-number-object/commit/52e61bd4334c0a1afacd147fd0bc1e2c1be10df5) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols`; add `safe-publish-latest` [`79db7f6`](https://github.com/inspect-js/is-number-object/commit/79db7f610d2bcf5f0d6e8ca834f7402504101072) +- Only apps should have lockfiles [`677b9b4`](https://github.com/inspect-js/is-number-object/commit/677b9b4fb6ad9d7b984cb0f89c8b5a6df143b29a) +- Test on `io.js` `v2.2` [`e8a38b2`](https://github.com/inspect-js/is-number-object/commit/e8a38b2fe73b841b0ed55d9f60573d460a4f2a62) +- [meta] add `funding` field [`85315e7`](https://github.com/inspect-js/is-number-object/commit/85315e75c119a2aef70a766f2ddc1079b64d006b) +- [Dev Deps] update `eslint`, `tape` [`f3581aa`](https://github.com/inspect-js/is-number-object/commit/f3581aaea310546f6ee4612990468d39f058d320) +- [Tests] use `eclint` instead of `editorconfig-tools` [`7b53680`](https://github.com/inspect-js/is-number-object/commit/7b5368071000eb1c715aeeee5ff47ffdbee9fe5c) +- [Dev Deps] update `semver`, `tape` [`d6b524a`](https://github.com/inspect-js/is-number-object/commit/d6b524ac2e8c0240c436cbe8828671e383d51fd5) +- [Dev Deps] Update `tape`, `eslint` [`be19203`](https://github.com/inspect-js/is-number-object/commit/be19203dee0aa70ff8f09823bf880a38b824e1ed) +- Test up to `io.js` `v2.1` [`feb7ba6`](https://github.com/inspect-js/is-number-object/commit/feb7ba63a0816f1d36419ce240f96e9b4e4c90ba) +- Test up to `io.js` `v3.0` [`7be1f0a`](https://github.com/inspect-js/is-number-object/commit/7be1f0a25dc59b6606be9ee1ace38cb7039a59d2) +- [Dev Deps] update `tape` [`d9a2318`](https://github.com/inspect-js/is-number-object/commit/d9a2318bc82477e9321e961def11e28d364e5562) +- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`a6cd411`](https://github.com/inspect-js/is-number-object/commit/a6cd411c6bd92691a48b52683afce584c2c6b21b) +- Test on `io.js` `v2.4` [`46c2e7f`](https://github.com/inspect-js/is-number-object/commit/46c2e7f2ce8ad7f8ab3c1da827d93fc2780eff06) +- Test on `io.js` `v2.3` [`9c344b0`](https://github.com/inspect-js/is-number-object/commit/9c344b0df83628908a1f776a3f2e5fc4fae1d4d2) +- Fix tests for faked @@toStringTag [`f8c446e`](https://github.com/inspect-js/is-number-object/commit/f8c446e9fc320c23807717356e259529f494b9f3) + +## [v1.0.3](https://github.com/inspect-js/is-number-object/compare/v1.0.2...v1.0.3) - 2015-01-29 + +### Commits + +- If @@toStringTag is not present, use the old-school Object#toString test. [`9b2a4df`](https://github.com/inspect-js/is-number-object/commit/9b2a4df6ccf903e89198d4244eeb7f47a7056327) + +## [v1.0.2](https://github.com/inspect-js/is-number-object/compare/v1.0.1...v1.0.2) - 2015-01-29 + +### Commits + +- Improve optimizability of the non-try/catch part. [`7e6be2f`](https://github.com/inspect-js/is-number-object/commit/7e6be2fd2346557fc81bd544ac8745021c50e266) +- Fix package.json [`4f2ebea`](https://github.com/inspect-js/is-number-object/commit/4f2ebeae09c45e1eefeb2c10a011ff2ef0aca921) + +## [v1.0.1](https://github.com/inspect-js/is-number-object/compare/v1.0.0...v1.0.1) - 2015-01-29 + +### Commits + +- Use Object() instead of new Number() [`1aaa746`](https://github.com/inspect-js/is-number-object/commit/1aaa746c26878a0f698aabea4d88215311f2a38d) +- Add early exits for typeof number, or typeof not "object". [`eae4337`](https://github.com/inspect-js/is-number-object/commit/eae43375d3f88e04bb10eabd954e5a6b66ad5305) + +## v1.0.0 - 2015-01-28 + +### Commits + +- Dotfiles. [`9c74e3e`](https://github.com/inspect-js/is-number-object/commit/9c74e3eb2b10398d4022de7c4015531e874f06c8) +- `make release` [`a99e5ae`](https://github.com/inspect-js/is-number-object/commit/a99e5aeb3995a7d543fc5833722bc02011fabad6) +- package.json [`4fed9ef`](https://github.com/inspect-js/is-number-object/commit/4fed9ef7c35ccfc45ca8acd3c92c9cb91c7daa6d) +- Read me [`c91d6ba`](https://github.com/inspect-js/is-number-object/commit/c91d6ba00de79eaaac5fec7c9d8866d61d0abb62) +- Initial commit [`629fb96`](https://github.com/inspect-js/is-number-object/commit/629fb969f076e0802c799b368c7b02556bb0750e) +- Tests. [`a39de62`](https://github.com/inspect-js/is-number-object/commit/a39de624785cc204ed7c0ea5518f1c878870ceb1) +- Implementation. [`aedd91e`](https://github.com/inspect-js/is-number-object/commit/aedd91e6fc23f00852ad1266b6c19f32b7f93a22) diff --git a/node_modules/is-number-object/LICENSE b/node_modules/is-number-object/LICENSE new file mode 100644 index 0000000000..b43df444e5 --- /dev/null +++ b/node_modules/is-number-object/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/is-number-object/README.md b/node_modules/is-number-object/README.md new file mode 100644 index 0000000000..a5f1e5b1f0 --- /dev/null +++ b/node_modules/is-number-object/README.md @@ -0,0 +1,55 @@ +# is-number-object [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag. + +## Example + +```js +var isNumber = require('is-number-object'); +var assert = require('assert'); + +assert.notOk(isNumber(undefined)); +assert.notOk(isNumber(null)); +assert.notOk(isNumber(false)); +assert.notOk(isNumber(true)); +assert.notOk(isNumber('foo')); +assert.notOk(isNumber(function () {})); +assert.notOk(isNumber([])); +assert.notOk(isNumber({})); +assert.notOk(isNumber(/a/g)); +assert.notOk(isNumber(new RegExp('a', 'g'))); +assert.notOk(isNumber(new Date())); + +assert.ok(isNumber(42)); +assert.ok(isNumber(NaN)); +assert.ok(isNumber(Infinity)); +assert.ok(isNumber(new Number(42))); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-number-object +[2]: https://versionbadg.es/inspect-js/is-number-object.svg +[5]: https://david-dm.org/inspect-js/is-number-object.svg +[6]: https://david-dm.org/inspect-js/is-number-object +[7]: https://david-dm.org/inspect-js/is-number-object/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-number-object#info=devDependencies +[11]: https://nodei.co/npm/is-number-object.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-number-object.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/is-number-object.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-number-object +[codecov-image]: https://codecov.io/gh/inspect-js/is-number-object/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-number-object/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-number-object +[actions-url]: https://github.com/inspect-js/is-number-object/actions diff --git a/node_modules/is-number-object/index.js b/node_modules/is-number-object/index.js new file mode 100644 index 0000000000..637a4b98e5 --- /dev/null +++ b/node_modules/is-number-object/index.js @@ -0,0 +1,24 @@ +'use strict'; + +var numToStr = Number.prototype.toString; +var tryNumberObject = function tryNumberObject(value) { + try { + numToStr.call(value); + return true; + } catch (e) { + return false; + } +}; +var toStr = Object.prototype.toString; +var numClass = '[object Number]'; +var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; + +module.exports = function isNumberObject(value) { + if (typeof value === 'number') { + return true; + } + if (typeof value !== 'object') { + return false; + } + return hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass; +}; diff --git a/node_modules/is-number-object/package.json b/node_modules/is-number-object/package.json new file mode 100644 index 0000000000..6066d1d792 --- /dev/null +++ b/node_modules/is-number-object/package.json @@ -0,0 +1,78 @@ +{ + "name": "is-number-object", + "version": "1.0.5", + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "description": "Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "license": "MIT", + "main": "index.js", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx aud --production", + "lint": "eslint .", + "eccheck": "eclint check *.js **/*.js > /dev/null", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-number-object.git" + }, + "keywords": [ + "Number", + "ES6", + "toStringTag", + "@@toStringTag", + "Number object" + ], + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", + "eclint": "^2.8.1", + "eslint": "^7.25.0", + "foreach": "^2.0.5", + "has-symbols": "^1.0.2", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} \ No newline at end of file diff --git a/node_modules/is-number-object/test/corejs.js b/node_modules/is-number-object/test/corejs.js new file mode 100644 index 0000000000..73f0c89cb5 --- /dev/null +++ b/node_modules/is-number-object/test/corejs.js @@ -0,0 +1,5 @@ +'use strict'; + +require('core-js'); + +require('./'); diff --git a/node_modules/is-number-object/test/index.js b/node_modules/is-number-object/test/index.js new file mode 100644 index 0000000000..04ada7dd25 --- /dev/null +++ b/node_modules/is-number-object/test/index.js @@ -0,0 +1,38 @@ +'use strict'; + +var test = require('tape'); +var isNumber = require('../'); +var hasSymbols = require('has-symbols/shams')(); + +test('not Numbers', function (t) { + t.notOk(isNumber(), 'undefined is not Number'); + t.notOk(isNumber(null), 'null is not Number'); + t.notOk(isNumber(false), 'false is not Number'); + t.notOk(isNumber(true), 'true is not Number'); + t.notOk(isNumber('foo'), 'string is not Number'); + t.notOk(isNumber([]), 'array is not Number'); + t.notOk(isNumber({}), 'object is not Number'); + t.notOk(isNumber(function () {}), 'function is not Number'); + t.notOk(isNumber(/a/g), 'regex literal is not Number'); + t.notOk(isNumber(new RegExp('a', 'g')), 'regex object is not Number'); + t.notOk(isNumber(new Date()), 'new Date() is not Number'); + t.end(); +}); + +test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { + var fakeNumber = { + toString: function () { return '7'; }, + valueOf: function () { return 42; } + }; + fakeNumber[Symbol.toStringTag] = 'Number'; + t.notOk(isNumber(fakeNumber), 'fake Number with @@toStringTag "Number" is not Number'); + t.end(); +}); + +test('Numbers', function (t) { + t.ok(isNumber(42), 'number is Number'); + t.ok(isNumber(Object(42)), 'number object is Number'); + t.ok(isNumber(NaN), 'NaN is Number'); + t.ok(isNumber(Infinity), 'Infinity is Number'); + t.end(); +}); diff --git a/node_modules/is-regex/.eslintignore b/node_modules/is-regex/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-regex/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-regex/.github/workflows/rebase.yml b/node_modules/is-regex/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/is-regex/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-regex/.nycrc b/node_modules/is-regex/.nycrc new file mode 100644 index 0000000000..a69aa2d827 --- /dev/null +++ b/node_modules/is-regex/.nycrc @@ -0,0 +1,10 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test", + "test-corejs.js" + ] +} diff --git a/node_modules/is-regex/.travis.yml b/node_modules/is-regex/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/is-regex/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/is-regex/CHANGELOG.md b/node_modules/is-regex/CHANGELOG.md index 8e0f466d69..3b2a48c0dc 100644 --- a/node_modules/is-regex/CHANGELOG.md +++ b/node_modules/is-regex/CHANGELOG.md @@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.1.3](https://github.com/inspect-js/is-regex/compare/v1.1.2...v1.1.3) - 2021-05-07 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c681ab9`](https://github.com/inspect-js/is-regex/commit/c681ab99c07f8b3b7ae5f652b3105a30bce94f69) +- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`ca019fd`](https://github.com/inspect-js/is-regex/commit/ca019fdb828dc7d32e323213403ac9995d8604e3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`605a66f`](https://github.com/inspect-js/is-regex/commit/605a66f278900f1c8ae9d1dfcec31e5f61b10ad3) +- [readme] add actions and codecov badges [`8d7c6f0`](https://github.com/inspect-js/is-regex/commit/8d7c6f0e007bd982f21b958e0abc98b8a84e2a24) +- [meta] use `prepublishOnly` script for npm 7+ [`8e50e91`](https://github.com/inspect-js/is-regex/commit/8e50e91f51aa5038745526710ef2e030527982a7) +- [Deps] update `has-symbols` [`4742c81`](https://github.com/inspect-js/is-regex/commit/4742c81260c3db9a8c9ef57110981fb6175f58e0) + +## [v1.1.2](https://github.com/inspect-js/is-regex/compare/v1.1.1...v1.1.2) - 2021-02-01 + +### Commits + +- [Tests] migrate tests to Github Actions [`cc1686e`](https://github.com/inspect-js/is-regex/commit/cc1686e25f446ca6948f43b3f180d6e55e31fb4e) +- [readme] fix repo URLs; remove travis badge [`d1d1da6`](https://github.com/inspect-js/is-regex/commit/d1d1da647bb4e91589606f12470cd27a47b3bb81) +- [meta] do not publish github action workflow files [`9f84b99`](https://github.com/inspect-js/is-regex/commit/9f84b993a995f057b4d2d097ef47b1ff9c84115d) +- [Tests] run `nyc` on all tests [`c37aab9`](https://github.com/inspect-js/is-regex/commit/c37aab9d332c4834b08ada94736c45ab1d39cd2f) +- [Robustness] use `call-bind` [`fbb61bf`](https://github.com/inspect-js/is-regex/commit/fbb61bf3e19ccc178e6ed1e0d7ab9cc7c7167393) +- [actions] add "Allow Edits" workflow [`9022b53`](https://github.com/inspect-js/is-regex/commit/9022b53cb05b0f105cd179800cf96e055b249f08) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`d60f28f`](https://github.com/inspect-js/is-regex/commit/d60f28f7f2fb21dade7bce302b3e0246206423d3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`2c35c43`](https://github.com/inspect-js/is-regex/commit/2c35c437edf3eeb37129eea2404d8f465d27620f) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`1009e25`](https://github.com/inspect-js/is-regex/commit/1009e259d49a63753dc6e79e2b876a30c00c6de6) +- [meta] gitignore coverage output [`3b5fa9e`](https://github.com/inspect-js/is-regex/commit/3b5fa9ed2882c65ee81dff979f79f1a2751d3772) +- [actions] update workflows [`1843ef6`](https://github.com/inspect-js/is-regex/commit/1843ef65b8b8c24a44e91bc4ed5ee60dffc31c2d) + ## [v1.1.1](https://github.com/inspect-js/is-regex/compare/v1.1.0...v1.1.1) - 2020-08-03 ### Commits diff --git a/node_modules/is-regex/README.md b/node_modules/is-regex/README.md index 05baa0ebca..d61332bd29 100644 --- a/node_modules/is-regex/README.md +++ b/node_modules/is-regex/README.md @@ -1,6 +1,7 @@ -#is-regex [![Version Badge][2]][1] +# is-regex [![Version Badge][2]][1] -[![Build Status][3]][4] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -8,8 +9,6 @@ [![npm badge][11]][1] -[![browser support][9]][10] - Is this value a JS regex? This module works cross-realm/iframe, and despite ES6 @@toStringTag. @@ -37,18 +36,17 @@ assert.ok(isRegex(new RegExp('a', 'g'))); Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-regex -[2]: http://versionbadg.es/ljharb/is-regex.svg -[3]: https://travis-ci.org/ljharb/is-regex.svg -[4]: https://travis-ci.org/ljharb/is-regex -[5]: https://david-dm.org/ljharb/is-regex.svg -[6]: https://david-dm.org/ljharb/is-regex -[7]: https://david-dm.org/ljharb/is-regex/dev-status.svg -[8]: https://david-dm.org/ljharb/is-regex#info=devDependencies -[9]: https://ci.testling.com/ljharb/is-regex.png -[10]: https://ci.testling.com/ljharb/is-regex +[2]: https://versionbadg.es/inspect-js/is-regex.svg +[5]: https://david-dm.org/inspect-js/is-regex.svg +[6]: https://david-dm.org/inspect-js/is-regex +[7]: https://david-dm.org/inspect-js/is-regex/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-regex#info=devDependencies [11]: https://nodei.co/npm/is-regex.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-regex.svg +[license-image]: https://img.shields.io/npm/l/is-regex.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-regex.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-regex - +[downloads-image]: https://img.shields.io/npm/dm/is-regex.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-regex +[codecov-image]: https://codecov.io/gh/inspect-js/is-regex/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-regex/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-regex +[actions-url]: https://github.com/inspect-js/is-regex/actions diff --git a/node_modules/is-regex/index.js b/node_modules/is-regex/index.js index 3db4b92389..80a2d335f9 100644 --- a/node_modules/is-regex/index.js +++ b/node_modules/is-regex/index.js @@ -1,15 +1,16 @@ 'use strict'; -var hasSymbols = require('has-symbols')(); -var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol'; -var hasOwnProperty; -var regexExec; +var callBound = require('call-bind/callBound'); +var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = hasSymbols && !!Symbol.toStringTag; +var has; +var $exec; var isRegexMarker; var badStringifier; if (hasToStringTag) { - hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty); - regexExec = Function.call.bind(RegExp.prototype.exec); + has = callBound('Object.prototype.hasOwnProperty'); + $exec = callBound('RegExp.prototype.exec'); isRegexMarker = {}; var throwRegexMarker = function () { @@ -25,7 +26,7 @@ if (hasToStringTag) { } } -var toStr = Object.prototype.toString; +var $toString = callBound('Object.prototype.toString'); var gOPD = Object.getOwnPropertyDescriptor; var regexClass = '[object RegExp]'; @@ -37,13 +38,13 @@ module.exports = hasToStringTag } var descriptor = gOPD(value, 'lastIndex'); - var hasLastIndexDataProperty = descriptor && hasOwnProperty(descriptor, 'value'); + var hasLastIndexDataProperty = descriptor && has(descriptor, 'value'); if (!hasLastIndexDataProperty) { return false; } try { - regexExec(value, badStringifier); + $exec(value, badStringifier); } catch (e) { return e === isRegexMarker; } @@ -54,5 +55,5 @@ module.exports = hasToStringTag return false; } - return toStr.call(value) === regexClass; + return $toString(value) === regexClass; }; diff --git a/node_modules/is-regex/package.json b/node_modules/is-regex/package.json index f6c38a7c6d..b4e26fb676 100644 --- a/node_modules/is-regex/package.json +++ b/node_modules/is-regex/package.json @@ -1,6 +1,6 @@ { "name": "is-regex", - "version": "1.1.1", + "version": "1.1.3", "description": "Is this value a JS regex? Works cross-realm/iframe, and despite ES6 @@toStringTag", "author": "Jordan Harband ", "funding": { @@ -9,12 +9,14 @@ "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run lint", - "test": "npm run tests-only", - "tests-only": "node --harmony --es-staging test", + "test": "npm run tests-only && npm run test:harmony", + "tests-only": "nyc node test", + "test:harmony": "nyc node --harmony --es-staging test", + "test:corejs": "nyc tape test-corejs.js", "posttest": "npx aud --production", - "coverage": "covert test/index.js", "lint": "eslint .", "eccheck": "eclint check *.js **/*.js > /dev/null", "version": "auto-changelog && git add CHANGELOG.md", @@ -22,12 +24,12 @@ }, "repository": { "type": "git", - "url": "git://github.com/ljharb/is-regex.git" + "url": "git://github.com/inspect-js/is-regex.git" }, "bugs": { - "url": "https://github.com/ljharb/is-regex/issues" + "url": "https://github.com/inspect-js/is-regex/issues" }, - "homepage": "https://github.com/ljharb/is-regex", + "homepage": "https://github.com/inspect-js/is-regex", "keywords": [ "regex", "regexp", @@ -37,21 +39,23 @@ "expression" ], "dependencies": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" }, "devDependencies": { - "@ljharb/eslint-config": "^17.1.0", - "aud": "^1.1.2", - "auto-changelog": "^2.2.0", - "covert": "^1.1.1", + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", "eclint": "^2.8.1", - "eslint": "^7.6.0", + "eslint": "^7.26.0", "foreach": "^2.0.5", + "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" + "tape": "^5.2.2" }, "testling": { - "files": "test.js", + "files": "test/index.js", "browsers": [ "iexplore/6.0..latest", "firefox/3.0..6.0", @@ -60,8 +64,7 @@ "chrome/4.0..10.0", "chrome/20.0..latest", "chrome/canary", - "opera/10.0..12.0", - "opera/15.0..latest", + "opera/10.0..latest", "opera/next", "safari/4.0..latest", "ipad/6.0..latest", diff --git a/node_modules/is-regex/test/index.js b/node_modules/is-regex/test/index.js index 934c3d9ea0..93ea4e4ac1 100644 --- a/node_modules/is-regex/test/index.js +++ b/node_modules/is-regex/test/index.js @@ -1,7 +1,7 @@ 'use strict'; -var hasSymbols = require('has-symbols')(); -var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol'; +var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = hasSymbols && !!Symbol.toStringTag; var forEach = require('foreach'); var test = require('tape'); var isRegex = require('..'); diff --git a/node_modules/is-string/.eslintignore b/node_modules/is-string/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-string/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-string/.github/workflows/rebase.yml b/node_modules/is-string/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/is-string/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-string/.nycrc b/node_modules/is-string/.nycrc new file mode 100644 index 0000000000..a69aa2d827 --- /dev/null +++ b/node_modules/is-string/.nycrc @@ -0,0 +1,10 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test", + "test-corejs.js" + ] +} diff --git a/node_modules/is-string/.travis.yml b/node_modules/is-string/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/is-string/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/is-string/CHANGELOG.md b/node_modules/is-string/CHANGELOG.md index 217c2ad6e7..9334c53a07 100644 --- a/node_modules/is-string/CHANGELOG.md +++ b/node_modules/is-string/CHANGELOG.md @@ -7,7 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -## [v1.0.5](https://github.com/inspect-js/is-string/compare/v1.0.4...v1.0.5) - 2019-12-19 +## [v1.0.6](https://github.com/inspect-js/is-string/compare/v1.0.5...v1.0.6) - 2021-05-07 + +### Commits + +- [Tests] migrate tests to Github Actions [`c7790c8`](https://github.com/inspect-js/is-string/commit/c7790c89e5077251fe7ca32ac29eeee02f1b2751) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`1e52bbd`](https://github.com/inspect-js/is-string/commit/1e52bbd19b1608f6932c0335d9981824584c3186) +- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`83337eb`](https://github.com/inspect-js/is-string/commit/83337ebf55308b7bb9c1befae420760e0f8d8016) +- [meta] do not publish github action workflow files [`b25aea2`](https://github.com/inspect-js/is-string/commit/b25aea2e8a53ed9e9090cf96481590cdc00a0957) +- [readme] update badges [`759ccd9`](https://github.com/inspect-js/is-string/commit/759ccd94de4a2000231a179f91af6b5c12c11e00) +- [Tests] run `nyc` on all tests [`dc02f70`](https://github.com/inspect-js/is-string/commit/dc02f7080c355f0d24368c1622db09f7cc30cdbd) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `tape`; add `aud` [`a0f76fa`](https://github.com/inspect-js/is-string/commit/a0f76fa1990bb580948f9e2daa89bdcda3fae7f0) +- [actions] add "Allow Edits" workflow [`9ec3902`](https://github.com/inspect-js/is-string/commit/9ec390295b4faef7744d2b579c1050be66168cb7) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`57fbe21`](https://github.com/inspect-js/is-string/commit/57fbe215da83a3b601855a9c6543ad1a96de5702) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`191e55f`](https://github.com/inspect-js/is-string/commit/191e55ff1fa782654ffcce2df922e23345b56690) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`1ea2b81`](https://github.com/inspect-js/is-string/commit/1ea2b81e866775a7890e75c44c742204124aa354) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`105d1b9`](https://github.com/inspect-js/is-string/commit/105d1b9851e366ef23c2a27d4064e0d36da25939) +- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`114cfad`](https://github.com/inspect-js/is-string/commit/114cfad854d8860421f847cd99a3bdb8ef1353dc) +- [meta] use `prepublishOnly` script for npm 7+ [`fc38f26`](https://github.com/inspect-js/is-string/commit/fc38f26adb486f50880c5771d145ab2bffb6247a) +- [meta] gitignore coverage output [`3419127`](https://github.com/inspect-js/is-string/commit/34191278f1fa09ba4da801a6fd7a32e31050e759) +- [actions] update rebase action to use checkout v2 [`334eca0`](https://github.com/inspect-js/is-string/commit/334eca02d40f4cf7dc15a8e7d5ff06852028abb5) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`7a332e9`](https://github.com/inspect-js/is-string/commit/7a332e963f1ab717fafa671e0fa8a1b20c53d861) +- [meta] remove explicit audit level config [`04630b1`](https://github.com/inspect-js/is-string/commit/04630b1b535084322ddeae8efb79a8810d7cf325) + +## [v1.0.5](https://github.com/inspect-js/is-string/compare/v1.0.4...v1.0.5) - 2019-12-18 ### Commits @@ -46,7 +69,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Test on `io.js` `v2.3` [`ca6e796`](https://github.com/inspect-js/is-string/commit/ca6e796f16ec433b88962162fde8012f28e18f1e) - Fix tests for faked @@toStringTag [`3cce832`](https://github.com/inspect-js/is-string/commit/3cce8329133dfd233987359df151018b3b136be1) -## [v1.0.4](https://github.com/inspect-js/is-string/compare/v1.0.3...v1.0.4) - 2015-01-30 +## [v1.0.4](https://github.com/inspect-js/is-string/compare/v1.0.3...v1.0.4) - 2015-01-29 ### Commits @@ -71,7 +94,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Fix eslint config. [`c4e05bd`](https://github.com/inspect-js/is-string/commit/c4e05bd171da6002d432e451fd48912db8b048e0) - Add early exits for typeof "string", or typeof not "object". [`82f41d3`](https://github.com/inspect-js/is-string/commit/82f41d36a599bc6a06152792c84c7683e412c513) -## v1.0.0 - 2015-01-28 +## v1.0.0 - 2015-01-29 ### Commits diff --git a/node_modules/is-string/README.md b/node_modules/is-string/README.md index 13895e5f49..d9d7edf8a5 100644 --- a/node_modules/is-string/README.md +++ b/node_modules/is-string/README.md @@ -1,6 +1,7 @@ # is-string [![Version Badge][2]][1] -[![Build Status][3]][4] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -8,8 +9,6 @@ [![npm badge][11]][1] -[![browser support][9]][10] - Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag. ## Example @@ -41,17 +40,17 @@ assert.ok(isString(Object('foo'))); Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-string -[2]: http://versionbadg.es/ljharb/is-string.svg -[3]: https://travis-ci.org/ljharb/is-string.svg -[4]: https://travis-ci.org/ljharb/is-string -[5]: https://david-dm.org/ljharb/is-string.svg -[6]: https://david-dm.org/ljharb/is-string -[7]: https://david-dm.org/ljharb/is-string/dev-status.svg -[8]: https://david-dm.org/ljharb/is-string#info=devDependencies -[9]: https://ci.testling.com/ljharb/is-string.png -[10]: https://ci.testling.com/ljharb/is-string +[2]: https://versionbadg.es/inspect-js/is-string.svg +[5]: https://david-dm.org/inspect-js/is-string.svg +[6]: https://david-dm.org/inspect-js/is-string +[7]: https://david-dm.org/inspect-js/is-string/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-string#info=devDependencies [11]: https://nodei.co/npm/is-string.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-string.svg +[license-image]: https://img.shields.io/npm/l/is-string.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-string.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-string +[downloads-image]: https://img.shields.io/npm/dm/is-string.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-string +[codecov-image]: https://codecov.io/gh/inspect-js/is-string/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-string/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-string +[actions-url]: https://github.com/inspect-js/is-string/actions diff --git a/node_modules/is-string/index.js b/node_modules/is-string/index.js index 95b7050cc6..5f77f03d2d 100644 --- a/node_modules/is-string/index.js +++ b/node_modules/is-string/index.js @@ -11,7 +11,7 @@ var tryStringObject = function tryStringObject(value) { }; var toStr = Object.prototype.toString; var strClass = '[object String]'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; module.exports = function isString(value) { if (typeof value === 'string') { diff --git a/node_modules/is-string/package.json b/node_modules/is-string/package.json index 0ef60f2e9b..7ec9f5d1b5 100644 --- a/node_modules/is-string/package.json +++ b/node_modules/is-string/package.json @@ -1,6 +1,6 @@ { "name": "is-string", - "version": "1.0.5", + "version": "1.0.6", "author": "Jordan Harband ", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9,12 +9,13 @@ "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run lint", - "tests-only": "node --harmony --es-staging test", - "test": "npm run tests-only", - "posttest": "npx aud", - "coverage": "covert test/index.js", + "tests-only": "nyc tape 'test/**/*.js'", + "test:corejs": "nyc tape test-corejs.js", + "test": "npm run tests-only && npm run test:corejs", + "posttest": "npx aud --production", "lint": "eslint .", "eccheck": "eclint check *.js **/*.js > /dev/null", "version": "auto-changelog && git add CHANGELOG.md", @@ -32,18 +33,19 @@ "@@toStringTag", "String object" ], - "dependencies": {}, "devDependencies": { - "@ljharb/eslint-config": "^15.0.2", - "auto-changelog": "^1.16.2", - "covert": "^1.1.1", + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "core-js": "^3.12.0", "eclint": "^2.8.1", - "eslint": "^6.7.2", + "eslint": "^7.26.0", "foreach": "^2.0.5", "indexof": "^0.0.1", "is": "^3.3.0", + "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^4.12.0" + "tape": "^5.2.2" }, "testling": { "files": "test/index.js", diff --git a/node_modules/is-string/test/index.js b/node_modules/is-string/test/index.js index 03c08747f3..8fbba42a61 100644 --- a/node_modules/is-string/test/index.js +++ b/node_modules/is-string/test/index.js @@ -1,8 +1,8 @@ 'use strict'; var test = require('tape'); -var isString = require('..'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('') === 'symbol'; +var isString = require('../'); +var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator !== 'undefined'; test('not Strings', function (t) { t.notOk(isString(), 'undefined is not String'); diff --git a/node_modules/is-symbol/.eslintignore b/node_modules/is-symbol/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/is-symbol/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/is-symbol/.github/workflows/rebase.yml b/node_modules/is-symbol/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/is-symbol/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-symbol/.nvmrc b/node_modules/is-symbol/.nvmrc deleted file mode 100644 index 64f5a0a681..0000000000 --- a/node_modules/is-symbol/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -node diff --git a/node_modules/is-symbol/.nycrc b/node_modules/is-symbol/.nycrc new file mode 100644 index 0000000000..bdd626ce91 --- /dev/null +++ b/node_modules/is-symbol/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/is-symbol/.travis.yml b/node_modules/is-symbol/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/is-symbol/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/is-symbol/CHANGELOG.md b/node_modules/is-symbol/CHANGELOG.md index 6c68c5981f..ce8dd99125 100644 --- a/node_modules/is-symbol/CHANGELOG.md +++ b/node_modules/is-symbol/CHANGELOG.md @@ -5,9 +5,36 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.0.4](https://github.com/inspect-js/is-symbol/compare/v1.0.3...v1.0.4) - 2021-05-08 -## [v1.0.3](https://github.com/inspect-js/is-symbol/compare/v1.0.2...v1.0.3) - 2019-11-21 +### Commits + +- [Tests] migrate tests to Github Actions [`997d43c`](https://github.com/inspect-js/is-symbol/commit/997d43c091d1f8d3a2b3d7dfb17a73cdc5a75dde) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`fe0ccb7`](https://github.com/inspect-js/is-symbol/commit/fe0ccb7b7b64e74e095ef782dcc1d24d6c4b0be4) +- [meta] remove unused Makefile and associated utilities [`3ab2748`](https://github.com/inspect-js/is-symbol/commit/3ab2748ab6c2de21fc24f131bb880c68ba0b7b34) +- [meta] do not publish github action workflow files [`f20fafe`](https://github.com/inspect-js/is-symbol/commit/f20fafeb21585c7b4871ea19f104fd7696734fe8) +- [Tests] run `nyc` on all tests [`5c332fc`](https://github.com/inspect-js/is-symbol/commit/5c332fc92cecbed4a2041bc0c52b991b4a593f34) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c5a58a8`](https://github.com/inspect-js/is-symbol/commit/c5a58a8bea390a9b02e1c8c4aac30c223370297b) +- [readme] fix repo URLs; remove travis badge [`bcd9258`](https://github.com/inspect-js/is-symbol/commit/bcd9258d161fe709148fcc47962df3372c544727) +- [actions] add "Allow Edits" workflow [`33ae2d3`](https://github.com/inspect-js/is-symbol/commit/33ae2d3940e9daa6003a84c232874ee558b2fb44) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`e53def0`](https://github.com/inspect-js/is-symbol/commit/e53def0b77c38cbfae87fd8bbfd78953b845ea94) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect` [`ae36504`](https://github.com/inspect-js/is-symbol/commit/ae365048c0c1b13457faa78658b80561f5a0bcd0) +- [readme] add actions and codecov badges [`aae7f09`](https://github.com/inspect-js/is-symbol/commit/aae7f09bd59d36df69d3b66d9b351c39fe072330) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`d993fae`](https://github.com/inspect-js/is-symbol/commit/d993fae6d89856d4ab7818874be597249cb8a8cc) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`51808a5`](https://github.com/inspect-js/is-symbol/commit/51808a55f272023201f40a59b2459ec6305bf73a) +- [Dev Deps] update `auto-changelog`, `tape` [`c90040f`](https://github.com/inspect-js/is-symbol/commit/c90040f0aeded8d0071a78d5cd593b385f8828ee) +- [Dev Deps] update `eslint`, `tape` [`9fee159`](https://github.com/inspect-js/is-symbol/commit/9fee159403d499a5ed2f5cb5db03747d09ab1766) +- [meta] use `prepublishOnly` script for npm 7+ [`b166afc`](https://github.com/inspect-js/is-symbol/commit/b166afc3ae3c6d11721a9558ddb112a28261688d) +- [meta] gitignore coverage output [`4a0fe3a`](https://github.com/inspect-js/is-symbol/commit/4a0fe3aa074b933074fcc231ce739005e1fec195) +- [actions] update workflows [`fbcbc9e`](https://github.com/inspect-js/is-symbol/commit/fbcbc9eb5bfe2cf9a77d5bd86bb1dece8e5f81d0) +- [Dev Deps] update `auto-changelog`; add `aud` [`e66ab98`](https://github.com/inspect-js/is-symbol/commit/e66ab989e48b81b48bd443d35dba0071950c5d7a) +- [Deps] update `has-symbols` [`6ce7de5`](https://github.com/inspect-js/is-symbol/commit/6ce7de53c866c068de2c28d97b3a64cf6d5f6a76) +- [actions] update rebase action to use checkout v2 [`1173c79`](https://github.com/inspect-js/is-symbol/commit/1173c79914076d73aec9aebc22dce4122e7bd3ae) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`94a6348`](https://github.com/inspect-js/is-symbol/commit/94a6348f6274eac9bf4c5a6057b4f6120fc7d1d1) +- [Tests] only audit prod deps [`0692681`](https://github.com/inspect-js/is-symbol/commit/06926811fa029fe0fded5d0af4553a7808c143d1) +- [meta] do not publish .nvmrc file [`ed47833`](https://github.com/inspect-js/is-symbol/commit/ed478333c72384f8dbeb51e5fd501238f52a4972) + +## [v1.0.3](https://github.com/inspect-js/is-symbol/compare/v1.0.2...v1.0.3) - 2019-11-20 ### Commits diff --git a/node_modules/is-symbol/Makefile b/node_modules/is-symbol/Makefile deleted file mode 100644 index b9e4fe1aab..0000000000 --- a/node_modules/is-symbol/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. -$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) - - # The files that need updating when incrementing the version number. -VERSIONED_FILES := *.js *.json README* - - -# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. -# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment -# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. -export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") -UTILS := semver -# Make sure that all required utilities can be located. -UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) - -# Default target (by virtue of being the first non '.'-prefixed in the file). -.PHONY: _no-target-specified -_no-target-specified: - $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) - -# Lists all targets defined in this makefile. -.PHONY: list -list: - @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort - -# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). -.PHONY: test -test: - @npm test - -.PHONY: _ensure-tag -_ensure-tag: -ifndef TAG - $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) -endif - -CHANGELOG_ERROR = $(error No CHANGELOG specified) -.PHONY: _ensure-changelog -_ensure-changelog: - @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2) - -# Ensures that the git workspace is clean. -.PHONY: _ensure-clean -_ensure-clean: - @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } - -# Makes a release; invoke with `make TAG= release`. -.PHONY: release -release: _ensure-tag _ensure-changelog _ensure-clean - @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ - new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ - if printf "$$new_ver" | command grep -q '^[0-9]'; then \ - semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ - semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ - else \ - new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ - fi; \ - printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ - replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ - git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \ - git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/node_modules/is-symbol/README.md b/node_modules/is-symbol/README.md index e59d1cefb1..5432594c7b 100644 --- a/node_modules/is-symbol/README.md +++ b/node_modules/is-symbol/README.md @@ -1,6 +1,7 @@ -#is-symbol [![Version Badge][2]][1] +# is-symbol [![Version Badge][2]][1] -[![Build Status][3]][4] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -8,8 +9,6 @@ [![npm badge][11]][1] -[![browser support][9]][10] - Is this an ES6 Symbol value? ## Example @@ -30,15 +29,17 @@ assert(isSymbol(Object(Symbol('foo')))); Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-symbol -[2]: http://versionbadg.es/inspect-js/is-symbol.svg -[3]: https://travis-ci.org/inspect-js/is-symbol.svg -[4]: https://travis-ci.org/inspect-js/is-symbol +[2]: https://versionbadg.es/inspect-js/is-symbol.svg [5]: https://david-dm.org/inspect-js/is-symbol.svg [6]: https://david-dm.org/inspect-js/is-symbol [7]: https://david-dm.org/inspect-js/is-symbol/dev-status.svg [8]: https://david-dm.org/inspect-js/is-symbol#info=devDependencies [11]: https://nodei.co/npm/is-symbol.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-symbol.svg +[license-image]: https://img.shields.io/npm/l/is-symbol.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-symbol.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-symbol +[downloads-image]: https://img.shields.io/npm/dm/is-symbol.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-symbol +[codecov-image]: https://codecov.io/gh/inspect-js/is-symbol/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-symbol/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-symbol +[actions-url]: https://github.com/inspect-js/is-symbol/actions diff --git a/node_modules/is-symbol/package.json b/node_modules/is-symbol/package.json index f9e2cbd807..02aeab2374 100644 --- a/node_modules/is-symbol/package.json +++ b/node_modules/is-symbol/package.json @@ -1,15 +1,15 @@ { "name": "is-symbol", - "version": "1.0.3", + "version": "1.0.4", "description": "Determine if a value is an ES6 Symbol or not.", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run lint", - "tests-only": "node --es-staging --harmony test", + "tests-only": "nyc tape 'test/**/*.js'", "test": "npm run tests-only", - "posttest": "npx aud", - "coverage": "covert test", + "posttest": "npx aud --production", "lint": "eslint .", "version": "auto-changelog && git add CHANGELOG.md", "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" @@ -33,17 +33,17 @@ "url": "https://github.com/inspect-js/is-symbol/issues" }, "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "devDependencies": { - "@ljharb/eslint-config": "^15.0.2", - "auto-changelog": "^1.16.2", - "covert": "^1.1.1", - "eslint": "^6.6.0", - "object-inspect": "^1.7.0", + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.2.1", + "eslint": "^7.26.0", + "nyc": "^10.3.2", + "object-inspect": "^1.10.3", "safe-publish-latest": "^1.1.4", - "semver": "^6.3.0", - "tape": "^4.11.0" + "tape": "^5.2.2" }, "testling": { "files": "test/index.js", @@ -71,6 +71,7 @@ "template": "keepachangelog", "unreleased": false, "commitLimit": false, - "backfillLimit": false + "backfillLimit": false, + "hideCredit": true } } \ No newline at end of file diff --git a/node_modules/lodash.truncate/LICENSE b/node_modules/lodash.truncate/LICENSE new file mode 100644 index 0000000000..e0c69d5603 --- /dev/null +++ b/node_modules/lodash.truncate/LICENSE @@ -0,0 +1,47 @@ +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash.truncate/README.md b/node_modules/lodash.truncate/README.md new file mode 100644 index 0000000000..a2936e9afc --- /dev/null +++ b/node_modules/lodash.truncate/README.md @@ -0,0 +1,18 @@ +# lodash.truncate v4.4.2 + +The [lodash](https://lodash.com/) method `_.truncate` exported as a [Node.js](https://nodejs.org/) module. + +## Installation + +Using npm: +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.truncate +``` + +In Node.js: +```js +var truncate = require('lodash.truncate'); +``` + +See the [documentation](https://lodash.com/docs#truncate) or [package source](https://github.com/lodash/lodash/blob/4.4.2-npm-packages/lodash.truncate) for more details. diff --git a/node_modules/lodash.truncate/index.js b/node_modules/lodash.truncate/index.js new file mode 100644 index 0000000000..4f5449ecc7 --- /dev/null +++ b/node_modules/lodash.truncate/index.js @@ -0,0 +1,632 @@ +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as default options for `_.truncate`. */ +var DEFAULT_TRUNC_LENGTH = 30, + DEFAULT_TRUNC_OMISSION = '...'; + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0, + MAX_INTEGER = 1.7976931348623157e+308, + NAN = 0 / 0; + +/** `Object#toString` result references. */ +var regexpTag = '[object RegExp]', + symbolTag = '[object Symbol]'; + +/** Used to match leading and trailing whitespace. */ +var reTrim = /^\s+|\s+$/g; + +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23', + rsComboSymbolsRange = '\\u20d0-\\u20f0', + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsAstral = '[' + rsAstralRange + ']', + rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + +/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ +var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + +/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ +var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']'); + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/** 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')(); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + return freeProcess && freeProcess.binding('util'); + } catch (e) {} +}()); + +/* Node.js helper references. */ +var nodeIsRegExp = nodeUtil && nodeUtil.isRegExp; + +/** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +var asciiSize = baseProperty('length'); + +/** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function asciiToArray(string) { + return string.split(''); +} + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +/** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ +function hasUnicode(string) { + return reHasUnicode.test(string); +} + +/** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ +function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); +} + +/** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); +} + +/** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + result++; + } + return result; +} + +/** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function unicodeToArray(string) { + return string.match(reUnicode) || []; +} + +/** 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 objectToString = objectProto.toString; + +/** Built-in value references. */ +var Symbol = root.Symbol; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.isRegExp` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + */ +function baseIsRegExp(value) { + return isObject(value) && objectToString.call(value) == regexpTag; +} + +/** + * 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; +} + +/** + * 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 (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ +function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); +} + +/** + * 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 && (type == 'object' || type == 'function'); +} + +/** + * 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 && typeof value == 'object'; +} + +/** + * Checks if `value` is classified as a `RegExp` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ +var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + +/** + * 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) && objectToString.call(value) == symbolTag); +} + +/** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ +function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; +} + +/** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ +function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; +} + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +/** + * 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 process. + * @returns {string} Returns the string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +/** + * Truncates `string` if it's longer than the given maximum string length. + * The last characters of the truncated string are replaced with the omission + * string which defaults to "...". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to truncate. + * @param {Object} [options={}] The options object. + * @param {number} [options.length=30] The maximum string length. + * @param {string} [options.omission='...'] The string to indicate text is omitted. + * @param {RegExp|string} [options.separator] The separator pattern to truncate to. + * @returns {string} Returns the truncated string. + * @example + * + * _.truncate('hi-diddly-ho there, neighborino'); + * // => 'hi-diddly-ho there, neighbo...' + * + * _.truncate('hi-diddly-ho there, neighborino', { + * 'length': 24, + * 'separator': ' ' + * }); + * // => 'hi-diddly-ho there,...' + * + * _.truncate('hi-diddly-ho there, neighborino', { + * 'length': 24, + * 'separator': /,? +/ + * }); + * // => 'hi-diddly-ho there...' + * + * _.truncate('hi-diddly-ho there, neighborino', { + * 'omission': ' [...]' + * }); + * // => 'hi-diddly-ho there, neig [...]' + */ +function truncate(string, options) { + var length = DEFAULT_TRUNC_LENGTH, + omission = DEFAULT_TRUNC_OMISSION; + + if (isObject(options)) { + var separator = 'separator' in options ? options.separator : separator; + length = 'length' in options ? toInteger(options.length) : length; + omission = 'omission' in options ? baseToString(options.omission) : omission; + } + string = toString(string); + + var strLength = string.length; + if (hasUnicode(string)) { + var strSymbols = stringToArray(string); + strLength = strSymbols.length; + } + if (length >= strLength) { + return string; + } + var end = length - stringSize(omission); + if (end < 1) { + return omission; + } + var result = strSymbols + ? castSlice(strSymbols, 0, end).join('') + : string.slice(0, end); + + if (separator === undefined) { + return result + omission; + } + if (strSymbols) { + end += (result.length - end); + } + if (isRegExp(separator)) { + if (string.slice(end).search(separator)) { + var match, + substring = result; + + if (!separator.global) { + separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g'); + } + separator.lastIndex = 0; + while ((match = separator.exec(substring))) { + var newEnd = match.index; + } + result = result.slice(0, newEnd === undefined ? end : newEnd); + } + } else if (string.indexOf(baseToString(separator), end) != end) { + var index = result.lastIndexOf(separator); + if (index > -1) { + result = result.slice(0, index); + } + } + return result + omission; +} + +module.exports = truncate; diff --git a/node_modules/lodash.truncate/package.json b/node_modules/lodash.truncate/package.json new file mode 100644 index 0000000000..fc90c66c33 --- /dev/null +++ b/node_modules/lodash.truncate/package.json @@ -0,0 +1,19 @@ +{ + "name": "lodash.truncate", + "version": "4.4.2", + "description": "The lodash method `_.truncate` exported as a module.", + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "keywords": "lodash-modularized, truncate", + "author": "John-David Dalton (http://allyoucanleet.com/)", + "contributors": [ + "John-David Dalton (http://allyoucanleet.com/)", + "Blaine Bublitz (https://github.com/phated)", + "Mathias Bynens (https://mathiasbynens.be/)" + ], + "repository": "lodash/lodash", + "scripts": { + "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" + } +} \ No newline at end of file diff --git a/node_modules/flat-cache/node_modules/rimraf/LICENSE b/node_modules/lru-cache/LICENSE similarity index 100% rename from node_modules/flat-cache/node_modules/rimraf/LICENSE rename to node_modules/lru-cache/LICENSE diff --git a/node_modules/lru-cache/README.md b/node_modules/lru-cache/README.md new file mode 100644 index 0000000000..435dfebb7e --- /dev/null +++ b/node_modules/lru-cache/README.md @@ -0,0 +1,166 @@ +# lru cache + +A cache object that deletes the least-recently-used items. + +[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache) + +## Installation: + +```javascript +npm install lru-cache --save +``` + +## Usage: + +```javascript +var LRU = require("lru-cache") + , options = { max: 500 + , length: function (n, key) { return n * 2 + key.length } + , dispose: function (key, n) { n.close() } + , maxAge: 1000 * 60 * 60 } + , cache = new LRU(options) + , otherCache = new LRU(50) // sets just the max size + +cache.set("key", "value") +cache.get("key") // "value" + +// non-string keys ARE fully supported +// but note that it must be THE SAME object, not +// just a JSON-equivalent object. +var someObject = { a: 1 } +cache.set(someObject, 'a value') +// Object keys are not toString()-ed +cache.set('[object Object]', 'a different value') +assert.equal(cache.get(someObject), 'a value') +// A similar object with same keys/values won't work, +// because it's a different object identity +assert.equal(cache.get({ a: 1 }), undefined) + +cache.reset() // empty the cache +``` + +If you put more stuff in it, then items will fall out. + +If you try to put an oversized thing in it, then it'll fall out right +away. + +## Options + +* `max` The maximum size of the cache, checked by applying the length + function to all values in the cache. Not setting this is kind of + silly, since that's the whole purpose of this lib, but it defaults + to `Infinity`. Setting it to a non-number or negative number will + throw a `TypeError`. Setting it to 0 makes it be `Infinity`. +* `maxAge` Maximum age in ms. Items are not pro-actively pruned out + as they age, but if you try to get an item that is too old, it'll + drop it and return undefined instead of giving it to you. + Setting this to a negative value will make everything seem old! + Setting it to a non-number will throw a `TypeError`. +* `length` Function that is used to calculate the length of stored + items. If you're storing strings or buffers, then you probably want + to do something like `function(n, key){return n.length}`. The default is + `function(){return 1}`, which is fine if you want to store `max` + like-sized things. The item is passed as the first argument, and + the key is passed as the second argumnet. +* `dispose` Function that is called on items when they are dropped + from the cache. This can be handy if you want to close file + descriptors or do other cleanup tasks when items are no longer + accessible. Called with `key, value`. It's called *before* + actually removing the item from the internal cache, so if you want + to immediately put it back in, you'll have to do that in a + `nextTick` or `setTimeout` callback or it won't do anything. +* `stale` By default, if you set a `maxAge`, it'll only actually pull + stale items out of the cache when you `get(key)`. (That is, it's + not pre-emptively doing a `setTimeout` or anything.) If you set + `stale:true`, it'll return the stale value before deleting it. If + you don't set this, then it'll return `undefined` when you try to + get a stale entry, as if it had already been deleted. +* `noDisposeOnSet` By default, if you set a `dispose()` method, then + it'll be called whenever a `set()` operation overwrites an existing + key. If you set this option, `dispose()` will only be called when a + key falls out of the cache, not when it is overwritten. +* `updateAgeOnGet` When using time-expiring entries with `maxAge`, + setting this to `true` will make each item's effective time update + to the current time whenever it is retrieved from cache, causing it + to not expire. (It can still fall out of cache based on recency of + use, of course.) + +## API + +* `set(key, value, maxAge)` +* `get(key) => value` + + Both of these will update the "recently used"-ness of the key. + They do what you think. `maxAge` is optional and overrides the + cache `maxAge` option if provided. + + If the key is not found, `get()` will return `undefined`. + + The key and val can be any value. + +* `peek(key)` + + Returns the key value (or `undefined` if not found) without + updating the "recently used"-ness of the key. + + (If you find yourself using this a lot, you *might* be using the + wrong sort of data structure, but there are some use cases where + it's handy.) + +* `del(key)` + + Deletes a key out of the cache. + +* `reset()` + + Clear the cache entirely, throwing away all values. + +* `has(key)` + + Check if a key is in the cache, without updating the recent-ness + or deleting it for being stale. + +* `forEach(function(value,key,cache), [thisp])` + + Just like `Array.prototype.forEach`. Iterates over all the keys + in the cache, in order of recent-ness. (Ie, more recently used + items are iterated over first.) + +* `rforEach(function(value,key,cache), [thisp])` + + The same as `cache.forEach(...)` but items are iterated over in + reverse order. (ie, less recently used items are iterated over + first.) + +* `keys()` + + Return an array of the keys in the cache. + +* `values()` + + Return an array of the values in the cache. + +* `length` + + Return total length of objects in cache taking into account + `length` options function. + +* `itemCount` + + Return total quantity of objects currently in cache. Note, that + `stale` (see options) items are returned as part of this item + count. + +* `dump()` + + Return an array of the cache entries ready for serialization and usage + with 'destinationCache.load(arr)`. + +* `load(cacheEntriesArray)` + + Loads another cache entries array, obtained with `sourceCache.dump()`, + into the cache. The destination cache is reset before loading new entries + +* `prune()` + + Manually iterates over the entire cache proactively pruning old entries diff --git a/node_modules/lru-cache/index.js b/node_modules/lru-cache/index.js new file mode 100644 index 0000000000..573b6b85b9 --- /dev/null +++ b/node_modules/lru-cache/index.js @@ -0,0 +1,334 @@ +'use strict' + +// A linked list to keep track of recently-used-ness +const Yallist = require('yallist') + +const MAX = Symbol('max') +const LENGTH = Symbol('length') +const LENGTH_CALCULATOR = Symbol('lengthCalculator') +const ALLOW_STALE = Symbol('allowStale') +const MAX_AGE = Symbol('maxAge') +const DISPOSE = Symbol('dispose') +const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') +const LRU_LIST = Symbol('lruList') +const CACHE = Symbol('cache') +const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') + +const naiveLength = () => 1 + +// lruList is a yallist where the head is the youngest +// item, and the tail is the oldest. the list contains the Hit +// objects as the entries. +// Each Hit object has a reference to its Yallist.Node. This +// never changes. +// +// cache is a Map (or PseudoMap) that matches the keys to +// the Yallist.Node object. +class LRUCache { + constructor (options) { + if (typeof options === 'number') + options = { max: options } + + if (!options) + options = {} + + if (options.max && (typeof options.max !== 'number' || options.max < 0)) + throw new TypeError('max must be a non-negative number') + // Kind of weird to have a default max of Infinity, but oh well. + const max = this[MAX] = options.max || Infinity + + const lc = options.length || naiveLength + this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc + this[ALLOW_STALE] = options.stale || false + if (options.maxAge && typeof options.maxAge !== 'number') + throw new TypeError('maxAge must be a number') + this[MAX_AGE] = options.maxAge || 0 + this[DISPOSE] = options.dispose + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false + this.reset() + } + + // resize the cache when the max changes. + set max (mL) { + if (typeof mL !== 'number' || mL < 0) + throw new TypeError('max must be a non-negative number') + + this[MAX] = mL || Infinity + trim(this) + } + get max () { + return this[MAX] + } + + set allowStale (allowStale) { + this[ALLOW_STALE] = !!allowStale + } + get allowStale () { + return this[ALLOW_STALE] + } + + set maxAge (mA) { + if (typeof mA !== 'number') + throw new TypeError('maxAge must be a non-negative number') + + this[MAX_AGE] = mA + trim(this) + } + get maxAge () { + return this[MAX_AGE] + } + + // resize the cache when the lengthCalculator changes. + set lengthCalculator (lC) { + if (typeof lC !== 'function') + lC = naiveLength + + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC + this[LENGTH] = 0 + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) + this[LENGTH] += hit.length + }) + } + trim(this) + } + get lengthCalculator () { return this[LENGTH_CALCULATOR] } + + get length () { return this[LENGTH] } + get itemCount () { return this[LRU_LIST].length } + + rforEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev + forEachStep(this, fn, walker, thisp) + walker = prev + } + } + + forEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next + forEachStep(this, fn, walker, thisp) + walker = next + } + } + + keys () { + return this[LRU_LIST].toArray().map(k => k.key) + } + + values () { + return this[LRU_LIST].toArray().map(k => k.value) + } + + reset () { + if (this[DISPOSE] && + this[LRU_LIST] && + this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) + } + + this[CACHE] = new Map() // hash of items by key + this[LRU_LIST] = new Yallist() // list of items in order of use recency + this[LENGTH] = 0 // length of items in the list + } + + dump () { + return this[LRU_LIST].map(hit => + isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h) + } + + dumpLru () { + return this[LRU_LIST] + } + + set (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE] + + if (maxAge && typeof maxAge !== 'number') + throw new TypeError('maxAge must be a number') + + const now = maxAge ? Date.now() : 0 + const len = this[LENGTH_CALCULATOR](value, key) + + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)) + return false + } + + const node = this[CACHE].get(key) + const item = node.value + + // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) + this[DISPOSE](key, item.value) + } + + item.now = now + item.maxAge = maxAge + item.value = value + this[LENGTH] += len - item.length + item.length = len + this.get(key) + trim(this) + return true + } + + const hit = new Entry(key, value, len, now, maxAge) + + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) + this[DISPOSE](key, value) + + return false + } + + this[LENGTH] += hit.length + this[LRU_LIST].unshift(hit) + this[CACHE].set(key, this[LRU_LIST].head) + trim(this) + return true + } + + has (key) { + if (!this[CACHE].has(key)) return false + const hit = this[CACHE].get(key).value + return !isStale(this, hit) + } + + get (key) { + return get(this, key, true) + } + + peek (key) { + return get(this, key, false) + } + + pop () { + const node = this[LRU_LIST].tail + if (!node) + return null + + del(this, node) + return node.value + } + + del (key) { + del(this, this[CACHE].get(key)) + } + + load (arr) { + // reset the cache + this.reset() + + const now = Date.now() + // A previous serialized cache has the most recent items first + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l] + const expiresAt = hit.e || 0 + if (expiresAt === 0) + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v) + else { + const maxAge = expiresAt - now + // dont add already expired items + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge) + } + } + } + } + + prune () { + this[CACHE].forEach((value, key) => get(this, key, false)) + } +} + +const get = (self, key, doUse) => { + const node = self[CACHE].get(key) + if (node) { + const hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + return undefined + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) + node.value.now = Date.now() + self[LRU_LIST].unshiftNode(node) + } + } + return hit.value + } +} + +const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) + return false + + const diff = Date.now() - hit.now + return hit.maxAge ? diff > hit.maxAge + : self[MAX_AGE] && (diff > self[MAX_AGE]) +} + +const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; + self[LENGTH] > self[MAX] && walker !== null;) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + const prev = walker.prev + del(self, walker) + walker = prev + } + } +} + +const del = (self, node) => { + if (node) { + const hit = node.value + if (self[DISPOSE]) + self[DISPOSE](hit.key, hit.value) + + self[LENGTH] -= hit.length + self[CACHE].delete(hit.key) + self[LRU_LIST].removeNode(node) + } +} + +class Entry { + constructor (key, value, length, now, maxAge) { + this.key = key + this.value = value + this.length = length + this.now = now + this.maxAge = maxAge || 0 + } +} + +const forEachStep = (self, fn, node, thisp) => { + let hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + hit = undefined + } + if (hit) + fn.call(thisp, hit.value, hit.key, self) +} + +module.exports = LRUCache diff --git a/node_modules/lru-cache/package.json b/node_modules/lru-cache/package.json new file mode 100644 index 0000000000..717e19bf3e --- /dev/null +++ b/node_modules/lru-cache/package.json @@ -0,0 +1,34 @@ +{ + "name": "lru-cache", + "description": "A cache object that deletes the least-recently-used items.", + "version": "6.0.0", + "author": "Isaac Z. Schlueter ", + "keywords": [ + "mru", + "lru", + "cache" + ], + "scripts": { + "test": "tap", + "snap": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags" + }, + "main": "index.js", + "repository": "git://github.com/isaacs/node-lru-cache.git", + "devDependencies": { + "benchmark": "^2.1.4", + "tap": "^14.10.7" + }, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "files": [ + "index.js" + ], + "engines": { + "node": ">=10" + } +} \ No newline at end of file diff --git a/node_modules/mkdirp/LICENSE b/node_modules/mkdirp/LICENSE deleted file mode 100644 index 432d1aeb01..0000000000 --- a/node_modules/mkdirp/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2010 James Halliday (mail@substack.net) - -This project is free software released under the MIT/X11 license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/mkdirp/bin/cmd.js b/node_modules/mkdirp/bin/cmd.js deleted file mode 100755 index d95de15ae9..0000000000 --- a/node_modules/mkdirp/bin/cmd.js +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env node - -var mkdirp = require('../'); -var minimist = require('minimist'); -var fs = require('fs'); - -var argv = minimist(process.argv.slice(2), { - alias: { m: 'mode', h: 'help' }, - string: [ 'mode' ] -}); -if (argv.help) { - fs.createReadStream(__dirname + '/usage.txt').pipe(process.stdout); - return; -} - -var paths = argv._.slice(); -var mode = argv.mode ? parseInt(argv.mode, 8) : undefined; - -(function next () { - if (paths.length === 0) return; - var p = paths.shift(); - - if (mode === undefined) mkdirp(p, cb) - else mkdirp(p, mode, cb) - - function cb (err) { - if (err) { - console.error(err.message); - process.exit(1); - } - else next(); - } -})(); diff --git a/node_modules/mkdirp/bin/usage.txt b/node_modules/mkdirp/bin/usage.txt deleted file mode 100644 index f952aa2c7a..0000000000 --- a/node_modules/mkdirp/bin/usage.txt +++ /dev/null @@ -1,12 +0,0 @@ -usage: mkdirp [DIR1,DIR2..] {OPTIONS} - - Create each supplied directory including any necessary parent directories that - don't yet exist. - - If the directory already exists, do nothing. - -OPTIONS are: - - -m, --mode If a directory needs to be created, set the mode as an octal - permission string. - diff --git a/node_modules/mkdirp/index.js b/node_modules/mkdirp/index.js deleted file mode 100644 index 2f1287071f..0000000000 --- a/node_modules/mkdirp/index.js +++ /dev/null @@ -1,99 +0,0 @@ -var path = require('path'); -var fs = require('fs'); -var _0777 = parseInt('0777', 8); - -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - -function mkdirP (p, opts, f, made) { - if (typeof opts === 'function') { - f = opts; - opts = {}; - } - else if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - p = path.resolve(p); - - xfs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - if (path.dirname(p) === p) return cb(er); - mkdirP(path.dirname(p), opts, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, opts, cb, made); - }); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - xfs.stat(p, function (er2, stat) { - // if the stat fails, then that's super weird. - // let the original error be the failure reason. - if (er2 || !stat.isDirectory()) cb(er, made) - else cb(null, made); - }); - break; - } - }); -} - -mkdirP.sync = function sync (p, opts, made) { - if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - p = path.resolve(p); - - try { - xfs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), opts, made); - sync(p, opts, made); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - var stat; - try { - stat = xfs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - } - } - - return made; -}; diff --git a/node_modules/mkdirp/package.json b/node_modules/mkdirp/package.json deleted file mode 100644 index b335f1ae0e..0000000000 --- a/node_modules/mkdirp/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "mkdirp", - "description": "Recursively mkdir, like `mkdir -p`", - "version": "0.5.4", - "publishConfig": { - "tag": "legacy" - }, - "author": "James Halliday (http://substack.net)", - "main": "index.js", - "keywords": [ - "mkdir", - "directory" - ], - "repository": { - "type": "git", - "url": "https://github.com/substack/node-mkdirp.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "dependencies": { - "minimist": "^1.2.5" - }, - "devDependencies": { - "mock-fs": "^3.7.0", - "tap": "^5.4.2" - }, - "bin": "bin/cmd.js", - "license": "MIT", - "files": [ - "bin", - "index.js" - ] -} \ No newline at end of file diff --git a/node_modules/mkdirp/readme.markdown b/node_modules/mkdirp/readme.markdown deleted file mode 100644 index 3cc1315385..0000000000 --- a/node_modules/mkdirp/readme.markdown +++ /dev/null @@ -1,100 +0,0 @@ -# mkdirp - -Like `mkdir -p`, but in node.js! - -[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp) - -# example - -## pow.js - -```js -var mkdirp = require('mkdirp'); - -mkdirp('/tmp/foo/bar/baz', function (err) { - if (err) console.error(err) - else console.log('pow!') -}); -``` - -Output - -``` -pow! -``` - -And now /tmp/foo/bar/baz exists, huzzah! - -# methods - -```js -var mkdirp = require('mkdirp'); -``` - -## mkdirp(dir, opts, cb) - -Create a new directory and any necessary subdirectories at `dir` with octal -permission string `opts.mode`. If `opts` is a non-object, it will be treated as -the `opts.mode`. - -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -`cb(err, made)` fires with the error or the first directory `made` -that had to be created, if any. - -You can optionally pass in an alternate `fs` implementation by passing in -`opts.fs`. Your implementation should have `opts.fs.mkdir(path, mode, cb)` and -`opts.fs.stat(path, cb)`. - -## mkdirp.sync(dir, opts) - -Synchronously create a new directory and any necessary subdirectories at `dir` -with octal permission string `opts.mode`. If `opts` is a non-object, it will be -treated as the `opts.mode`. - -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -Returns the first directory that had to be created, if any. - -You can optionally pass in an alternate `fs` implementation by passing in -`opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` and -`opts.fs.statSync(path)`. - -# usage - -This package also ships with a `mkdirp` command. - -``` -usage: mkdirp [DIR1,DIR2..] {OPTIONS} - - Create each supplied directory including any necessary parent directories that - don't yet exist. - - If the directory already exists, do nothing. - -OPTIONS are: - - -m, --mode If a directory needs to be created, set the mode as an octal - permission string. - -``` - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install mkdirp -``` - -to get the library, or - -``` -npm install -g mkdirp -``` - -to get the command. - -# license - -MIT diff --git a/node_modules/object-inspect/.eslintrc b/node_modules/object-inspect/.eslintrc index 6ba656ac80..8a2d30ecf6 100644 --- a/node_modules/object-inspect/.eslintrc +++ b/node_modules/object-inspect/.eslintrc @@ -8,7 +8,7 @@ "max-lines": 1, "max-lines-per-function": 1, "max-params": [2, 4], - "max-statements": [2, 100], + "max-statements": 0, "max-statements-per-line": [2, { "max": 2 }], "no-magic-numbers": 0, "no-param-reassign": 1, diff --git a/node_modules/object-inspect/.github/FUNDING.yml b/node_modules/object-inspect/.github/FUNDING.yml new file mode 100644 index 0000000000..730276bd12 --- /dev/null +++ b/node_modules/object-inspect/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/object-inspect +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/object-inspect/.github/workflows/rebase.yml b/node_modules/object-inspect/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/object-inspect/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/object-inspect/.nycrc b/node_modules/object-inspect/.nycrc index 84c1894c68..58a5db7834 100644 --- a/node_modules/object-inspect/.nycrc +++ b/node_modules/object-inspect/.nycrc @@ -4,10 +4,6 @@ "instrumentation": false, "sourceMap": false, "reporter": ["text-summary", "text", "html", "json"], - "lines": 93, - "statements": 93, - "functions": 96, - "branches": 89, "exclude": [ "coverage", "example", diff --git a/node_modules/object-inspect/.travis.yml b/node_modules/object-inspect/.travis.yml deleted file mode 100644 index 79ccccc63b..0000000000 --- a/node_modules/object-inspect/.travis.yml +++ /dev/null @@ -1,53 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml -script: - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage && bash <(curl -s https://codecov.io/bash) -f coverage/*.json; fi' -matrix: - include: - - node_js: "13.7" - env: COVERAGE=true - - node_js: "12.14" - env: COVERAGE=true - - node_js: "10.18" - env: COVERAGE=true - - node_js: "8.17" - env: COVERAGE=true - - node_js: "6.17" - env: COVERAGE=true - - node_js: "4.9" - env: COVERAGE=true - - node_js: "iojs-v1.8" - env: COVERAGE=true - - node_js: "0.12" - env: COVERAGE=true - - node_js: "0.10" - env: COVERAGE=true - - node_js: "0.8" - env: COVERAGE=true - exclude: - - node_js: "13.7" - env: TEST=true - - node_js: "12.14" - env: TEST=true - - node_js: "10.18" - env: TEST=true - - node_js: "8.17" - env: TEST=true - - node_js: "6.17" - env: TEST=true - - node_js: "4.9" - env: TEST=true - - node_js: "iojs-v1.8" - env: TEST=true - - node_js: "0.12" - env: TEST=true - - node_js: "0.10" - env: TEST=true - - node_js: "0.8" - env: TEST=true diff --git a/node_modules/object-inspect/index.js b/node_modules/object-inspect/index.js index 61176bb7fc..3af7e562b1 100644 --- a/node_modules/object-inspect/index.js +++ b/node_modules/object-inspect/index.js @@ -10,14 +10,29 @@ var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype; var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype; var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; +var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype; +var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; var booleanValueOf = Boolean.prototype.valueOf; var objectToString = Object.prototype.toString; var functionToString = Function.prototype.toString; var match = String.prototype.match; var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null; +var gOPS = Object.getOwnPropertySymbols; +var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null; +var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object'; +var isEnumerable = Object.prototype.propertyIsEnumerable; + +var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ( + [].__proto__ === Array.prototype // eslint-disable-line no-proto + ? function (O) { + return O.__proto__; // eslint-disable-line no-proto + } + : null +); var inspectCustom = require('./util.inspect').custom; var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null; +var toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null; module.exports = function inspect_(obj, options, depth, seen) { var opts = options || {}; @@ -34,8 +49,8 @@ module.exports = function inspect_(obj, options, depth, seen) { throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); } var customInspect = has(opts, 'customInspect') ? opts.customInspect : true; - if (typeof customInspect !== 'boolean') { - throw new TypeError('option "customInspect", if provided, must be `true` or `false`'); + if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') { + throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`'); } if ( @@ -66,7 +81,7 @@ module.exports = function inspect_(obj, options, depth, seen) { } return String(obj); } - if (typeof obj === 'bigint') { // eslint-disable-line valid-typeof + if (typeof obj === 'bigint') { return String(obj) + 'n'; } @@ -103,11 +118,12 @@ module.exports = function inspect_(obj, options, depth, seen) { if (typeof obj === 'function') { var name = nameOf(obj); - return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']'; + var keys = arrObjKeys(obj, inspect); + return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : ''); } if (isSymbol(obj)) { - var symString = Symbol.prototype.toString.call(obj); - return typeof obj === 'object' ? markBoxed(symString) : symString; + var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); + return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString; } if (isElement(obj)) { var s = '<' + String(obj.nodeName).toLowerCase(); @@ -136,7 +152,7 @@ module.exports = function inspect_(obj, options, depth, seen) { if (typeof obj === 'object' && customInspect) { if (inspectSymbol && typeof obj[inspectSymbol] === 'function') { return obj[inspectSymbol](); - } else if (typeof obj.inspect === 'function') { + } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') { return obj.inspect(); } } @@ -160,6 +176,9 @@ module.exports = function inspect_(obj, options, depth, seen) { if (isWeakSet(obj)) { return weakCollectionOf('WeakSet'); } + if (isWeakRef(obj)) { + return weakCollectionOf('WeakRef'); + } if (isNumber(obj)) { return markBoxed(inspect(Number(obj))); } @@ -174,11 +193,16 @@ module.exports = function inspect_(obj, options, depth, seen) { } if (!isDate(obj) && !isRegExp(obj)) { var ys = arrObjKeys(obj, inspect); - if (ys.length === 0) { return '{}'; } + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? '' : 'null prototype'; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : ''; + var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : ''; + var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : ''); + if (ys.length === 0) { return tag + '{}'; } if (indent) { - return '{' + indentedJoin(ys, indent) + '}'; + return tag + '{' + indentedJoin(ys, indent) + '}'; } - return '{ ' + ys.join(', ') + ' }'; + return tag + '{ ' + ys.join(', ') + ' }'; } return String(obj); }; @@ -192,15 +216,42 @@ function quote(s) { return String(s).replace(/"/g, '"'); } -function isArray(obj) { return toStr(obj) === '[object Array]'; } -function isDate(obj) { return toStr(obj) === '[object Date]'; } -function isRegExp(obj) { return toStr(obj) === '[object RegExp]'; } -function isError(obj) { return toStr(obj) === '[object Error]'; } -function isSymbol(obj) { return toStr(obj) === '[object Symbol]'; } -function isString(obj) { return toStr(obj) === '[object String]'; } -function isNumber(obj) { return toStr(obj) === '[object Number]'; } -function isBigInt(obj) { return toStr(obj) === '[object BigInt]'; } -function isBoolean(obj) { return toStr(obj) === '[object Boolean]'; } +function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } + +// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives +function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === 'object' && obj instanceof Symbol; + } + if (typeof obj === 'symbol') { + return true; + } + if (!obj || typeof obj !== 'object' || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) {} + return false; +} + +function isBigInt(obj) { + if (!obj || typeof obj !== 'object' || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) {} + return false; +} var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; }; function has(obj, key) { @@ -258,6 +309,17 @@ function isWeakMap(x) { return false; } +function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== 'object') { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) {} + return false; +} + function isSet(x) { if (!setSize || !x || typeof x !== 'object') { return false; @@ -312,10 +374,14 @@ function inspectString(str, opts) { function lowbyte(c) { var n = c.charCodeAt(0); var x = { - 8: 'b', 9: 't', 10: 'n', 12: 'f', 13: 'r' + 8: 'b', + 9: 't', + 10: 'n', + 12: 'f', + 13: 'r' }[n]; if (x) { return '\\' + x; } - return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16); + return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase(); } function markBoxed(str) { @@ -370,14 +436,33 @@ function arrObjKeys(obj, inspect) { xs[i] = has(obj, i) ? inspect(obj[i], obj) : ''; } } + var syms = typeof gOPS === 'function' ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap['$' + syms[k]] = syms[k]; + } + } + for (var key in obj) { // eslint-disable-line no-restricted-syntax if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue - if ((/[^\w$]/).test(key)) { + if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) { + // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section + continue; // eslint-disable-line no-restricted-syntax, no-continue + } else if ((/[^\w$]/).test(key)) { xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj)); } else { xs.push(key + ': ' + inspect(obj[key], obj)); } } + if (typeof gOPS === 'function') { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj)); + } + } + } return xs; } diff --git a/node_modules/object-inspect/package.json b/node_modules/object-inspect/package.json index cabd07a0e5..e663f718e9 100644 --- a/node_modules/object-inspect/package.json +++ b/node_modules/object-inspect/package.json @@ -1,28 +1,30 @@ { "name": "object-inspect", - "version": "1.8.0", + "version": "1.11.0", "description": "string representations of objects in node and the browser", "main": "index.js", "devDependencies": { - "@ljharb/eslint-config": "^17.1.0", - "aud": "^1.1.2", - "core-js": "^2.6.11", - "eslint": "^7.1.0", + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "core-js": "^2.6.12", + "eslint": "^7.30.0", "for-each": "^0.3.3", + "functions-have-names": "^1.2.2", + "make-arrow-function": "^1.2.0", "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", "string.prototype.repeat": "^1.0.0", - "tape": "^5.0.1" + "tape": "^5.2.2" }, "scripts": { - "prepublish": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", "pretest": "npm run lint", "lint": "eslint .", - "test": "npm run tests-only", - "pretests-only": "node test-core-js", - "tests-only": "tape test/*.js", - "posttest": "npx aud --production", - "coverage": "nyc npm run tests-only" + "test": "npm run tests-only && npm run test:corejs", + "tests-only": "nyc tape 'test/*.js'", + "test:corejs": "nyc tape test-core-js.js 'test/*.js'", + "posttest": "npx aud --production" }, "testling": { "files": [ diff --git a/node_modules/object-inspect/readme.markdown b/node_modules/object-inspect/readme.markdown index 61ec8e05d0..4cbe08dffb 100644 --- a/node_modules/object-inspect/readme.markdown +++ b/node_modules/object-inspect/readme.markdown @@ -1,8 +1,15 @@ -# object-inspect +# object-inspect [![Version Badge][2]][1] string representations of objects in node and the browser -[![build status](https://secure.travis-ci.com/inspect-js/object-inspect.png)](https://travis-ci.com/inspect-js/object-inspect) +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] # example @@ -46,7 +53,7 @@ Return a string `s` with the string representation of `obj` up to a depth of `op Additional options: - `quoteStyle`: must be "single" or "double", if present. Default `'single'` for strings, `'double'` for HTML elements. - `maxStringLength`: must be `0`, a positive integer, `Infinity`, or `null`, if present. Default `Infinity`. - - `customInspect`: When `true`, a custom inspect method function will be invoked. Default `true`. + - `customInspect`: When `true`, a custom inspect method function will be invoked (either undere the `util.inspect.custom` symbol, or the `inspect` property). When the string `'symbol'`, only the symbol method will be invoked. Default `true`. - `indent`: must be "\t", `null`, or a positive integer. Default `null`. # install @@ -60,3 +67,19 @@ npm install object-inspect # license MIT + +[1]: https://npmjs.org/package/object-inspect +[2]: https://versionbadg.es/inspect-js/object-inspect.svg +[5]: https://david-dm.org/inspect-js/object-inspect.svg +[6]: https://david-dm.org/inspect-js/object-inspect +[7]: https://david-dm.org/inspect-js/object-inspect/dev-status.svg +[8]: https://david-dm.org/inspect-js/object-inspect#info=devDependencies +[11]: https://nodei.co/npm/object-inspect.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/object-inspect.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/object-inspect.svg +[downloads-url]: https://npm-stat.com/charts.html?package=object-inspect +[codecov-image]: https://codecov.io/gh/inspect-js/object-inspect/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/object-inspect/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/object-inspect +[actions-url]: https://github.com/inspect-js/object-inspect/actions diff --git a/node_modules/object-inspect/test/bigint.js b/node_modules/object-inspect/test/bigint.js index 325914345c..905643569b 100644 --- a/node_modules/object-inspect/test/bigint.js +++ b/node_modules/object-inspect/test/bigint.js @@ -1,5 +1,8 @@ +'use strict'; + var inspect = require('../'); var test = require('tape'); +var hasSymbols = require('has-symbols/shams')(); test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { t.test('primitives', function (st) { @@ -27,5 +30,17 @@ test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { st.equal(inspect(Function('return 256n')()), '256n'); }); + t.test('toStringTag', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (st) { + st.plan(1); + + var faker = {}; + faker[Symbol.toStringTag] = 'BigInt'; + st.equal( + inspect(faker), + '{ [Symbol(Symbol.toStringTag)]: \'BigInt\' }', + 'object lying about being a BigInt inspects as an object' + ); + }); + t.end(); }); diff --git a/node_modules/object-inspect/test/circular.js b/node_modules/object-inspect/test/circular.js index e864cfee9e..5df4233cb2 100644 --- a/node_modules/object-inspect/test/circular.js +++ b/node_modules/object-inspect/test/circular.js @@ -2,8 +2,15 @@ var inspect = require('../'); var test = require('tape'); test('circular', function (t) { - t.plan(1); + t.plan(2); var obj = { a: 1, b: [3, 4] }; obj.c = obj; t.equal(inspect(obj), '{ a: 1, b: [ 3, 4 ], c: [Circular] }'); + + var double = {}; + double.a = [double]; + double.b = {}; + double.b.inner = double.b; + double.b.obj = double; + t.equal(inspect(double), '{ a: [ [Circular] ], b: { inner: [Circular], obj: [Circular] } }'); }); diff --git a/node_modules/object-inspect/test/deep.js b/node_modules/object-inspect/test/deep.js index ff1c7eac02..99ce32a088 100644 --- a/node_modules/object-inspect/test/deep.js +++ b/node_modules/object-inspect/test/deep.js @@ -2,8 +2,11 @@ var inspect = require('../'); var test = require('tape'); test('deep', function (t) { - t.plan(2); + t.plan(4); var obj = [[[[[[500]]]]]]; t.equal(inspect(obj), '[ [ [ [ [ [Array] ] ] ] ] ]'); + t.equal(inspect(obj, { depth: 4 }), '[ [ [ [ [Array] ] ] ] ]'); t.equal(inspect(obj, { depth: 2 }), '[ [ [Array] ] ]'); + + t.equal(inspect([[[{ a: 1 }]]], { depth: 3 }), '[ [ [ [Object] ] ] ]'); }); diff --git a/node_modules/object-inspect/test/fakes.js b/node_modules/object-inspect/test/fakes.js new file mode 100644 index 0000000000..17225e2ebb --- /dev/null +++ b/node_modules/object-inspect/test/fakes.js @@ -0,0 +1,29 @@ +'use strict'; + +var inspect = require('../'); +var test = require('tape'); +var hasSymbols = require('has-symbols/shams')(); +var forEach = require('for-each'); + +test('fakes', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (t) { + forEach([ + 'Array', + 'Boolean', + 'Date', + 'Error', + 'Number', + 'RegExp', + 'String' + ], function (expected) { + var faker = {}; + faker[Symbol.toStringTag] = expected; + + t.equal( + inspect(faker), + '{ [Symbol(Symbol.toStringTag)]: \'' + expected + '\' }', + 'faker masquerading as ' + expected + ' is not shown as one' + ); + }); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/fn.js b/node_modules/object-inspect/test/fn.js index c69ef8e04c..de3ca625e7 100644 --- a/node_modules/object-inspect/test/fn.js +++ b/node_modules/object-inspect/test/fn.js @@ -1,5 +1,7 @@ var inspect = require('../'); var test = require('tape'); +var arrow = require('make-arrow-function')(); +var functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames(); test('function', function (t) { t.plan(1); @@ -12,9 +14,9 @@ test('function name', function (t) { var f = (function () { return function () {}; }()); - f.toString = function () { return 'function xxx () {}'; }; + f.toString = function toStr() { return 'function xxx () {}'; }; var obj = [1, 2, f, 4]; - t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)], 4 ]'); + t.equal(inspect(obj), '[ 1, 2, [Function (anonymous)] { toString: [Function: toStr] }, 4 ]'); }); test('anon function', function (t) { @@ -26,3 +28,49 @@ test('anon function', function (t) { t.end(); }); + +test('arrow function', { skip: !arrow }, function (t) { + t.equal(inspect(arrow), '[Function (anonymous)]'); + + t.end(); +}); + +test('truly nameless function', { skip: !arrow || !functionsHaveConfigurableNames }, function (t) { + function f() {} + Object.defineProperty(f, 'name', { value: false }); + t.equal(f.name, false); + t.equal( + inspect(f), + '[Function: f]', + 'named function with falsy `.name` does not hide its original name' + ); + + function g() {} + Object.defineProperty(g, 'name', { value: true }); + t.equal(g.name, true); + t.equal( + inspect(g), + '[Function: true]', + 'named function with truthy `.name` hides its original name' + ); + + var anon = function () {}; // eslint-disable-line func-style + Object.defineProperty(anon, 'name', { value: null }); + t.equal(anon.name, null); + t.equal( + inspect(anon), + '[Function (anonymous)]', + 'anon function with falsy `.name` does not hide its anonymity' + ); + + var anon2 = function () {}; // eslint-disable-line func-style + Object.defineProperty(anon2, 'name', { value: 1 }); + t.equal(anon2.name, 1); + t.equal( + inspect(anon2), + '[Function: 1]', + 'anon function with truthy `.name` hides its anonymity' + ); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/inspect.js b/node_modules/object-inspect/test/inspect.js index 2277e4c955..bcf264ec16 100644 --- a/node_modules/object-inspect/test/inspect.js +++ b/node_modules/object-inspect/test/inspect.js @@ -1,35 +1,102 @@ var test = require('tape'); -var hasSymbols = require('has-symbols')(); +var hasSymbols = require('has-symbols/shams')(); var utilInspect = require('../util.inspect'); var repeat = require('string.prototype.repeat'); var inspect = require('..'); test('inspect', function (t) { - t.plan(3); + t.plan(5); + var obj = [{ inspect: function xyzInspect() { return '!XYZ¡'; } }, []]; - t.equal(inspect(obj), '[ !XYZ¡, [] ]'); - t.equal(inspect(obj, { customInspect: true }), '[ !XYZ¡, [] ]'); - t.equal(inspect(obj, { customInspect: false }), '[ { inspect: [Function: xyzInspect] }, [] ]'); + var stringResult = '[ !XYZ¡, [] ]'; + var falseResult = '[ { inspect: [Function: xyzInspect] }, [] ]'; + + t.equal(inspect(obj), stringResult); + t.equal(inspect(obj, { customInspect: true }), stringResult); + t.equal(inspect(obj, { customInspect: 'symbol' }), falseResult); + t.equal(inspect(obj, { customInspect: false }), falseResult); + t['throws']( + function () { inspect(obj, { customInspect: 'not a boolean or "symbol"' }); }, + TypeError, + '`customInspect` must be a boolean or the string "symbol"' + ); }); test('inspect custom symbol', { skip: !hasSymbols || !utilInspect || !utilInspect.custom }, function (t) { - t.plan(3); + t.plan(4); var obj = { inspect: function stringInspect() { return 'string'; } }; obj[utilInspect.custom] = function custom() { return 'symbol'; }; - t.equal(inspect([obj, []]), '[ ' + (utilInspect.custom ? 'symbol' : 'string') + ', [] ]'); - t.equal(inspect([obj, []], { customInspect: true }), '[ ' + (utilInspect.custom ? 'symbol' : 'string') + ', [] ]'); - t.equal(inspect([obj, []], { customInspect: false }), '[ { inspect: [Function: stringInspect] }, [] ]'); + var symbolResult = '[ symbol, [] ]'; + var stringResult = '[ string, [] ]'; + var falseResult = '[ { inspect: [Function: stringInspect]' + (utilInspect.custom ? ', [' + inspect(utilInspect.custom) + ']: [Function: custom]' : '') + ' }, [] ]'; + + var symbolStringFallback = utilInspect.custom ? symbolResult : stringResult; + var symbolFalseFallback = utilInspect.custom ? symbolResult : falseResult; + + t.equal(inspect([obj, []]), symbolStringFallback); + t.equal(inspect([obj, []], { customInspect: true }), symbolStringFallback); + t.equal(inspect([obj, []], { customInspect: 'symbol' }), symbolFalseFallback); + t.equal(inspect([obj, []], { customInspect: false }), falseResult); +}); + +test('symbols', { skip: !hasSymbols }, function (t) { + t.plan(2); + + var obj = { a: 1 }; + obj[Symbol('test')] = 2; + obj[Symbol.iterator] = 3; + Object.defineProperty(obj, Symbol('non-enum'), { + enumerable: false, + value: 4 + }); + + if (typeof Symbol.iterator === 'symbol') { + t.equal(inspect(obj), '{ a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }', 'object with symbols'); + t.equal(inspect([obj, []]), '[ { a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }, [] ]', 'object with symbols in array'); + } else { + // symbol sham key ordering is unreliable + t.match( + inspect(obj), + /^(?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 })$/, + 'object with symbols (nondeterministic symbol sham key ordering)' + ); + t.match( + inspect([obj, []]), + /^\[ (?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 }), \[\] \]$/, + 'object with symbols in array (nondeterministic symbol sham key ordering)' + ); + } }); test('maxStringLength', function (t) { + t['throws']( + function () { inspect('', { maxStringLength: -1 }); }, + TypeError, + 'maxStringLength must be >= 0, or Infinity, not negative' + ); + + var str = repeat('a', 1e8); + t.equal( - inspect([repeat('a', 1e8)], { maxStringLength: 10 }), + inspect([str], { maxStringLength: 10 }), '[ \'aaaaaaaaaa\'... 99999990 more characters ]', 'maxStringLength option limits output' ); + t.equal( + inspect(['f'], { maxStringLength: null }), + '[ \'\'... 1 more character ]', + 'maxStringLength option accepts `null`' + ); + + t.equal( + inspect([str], { maxStringLength: Infinity }), + '[ \'' + str + '\' ]', + 'maxStringLength option accepts ∞' + ); + t.end(); }); diff --git a/node_modules/object-inspect/test/lowbyte.js b/node_modules/object-inspect/test/lowbyte.js index d23424252f..68a345d857 100644 --- a/node_modules/object-inspect/test/lowbyte.js +++ b/node_modules/object-inspect/test/lowbyte.js @@ -7,6 +7,6 @@ test('interpolate low bytes', function (t) { t.plan(1); t.equal( inspect(obj), - "{ x: 'a\\r\\nb', y: '\\x05! \\x1f \\x12' }" + "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }" ); }); diff --git a/node_modules/object-inspect/test/toStringTag.js b/node_modules/object-inspect/test/toStringTag.js new file mode 100644 index 0000000000..b7ddad3748 --- /dev/null +++ b/node_modules/object-inspect/test/toStringTag.js @@ -0,0 +1,40 @@ +'use strict'; + +var test = require('tape'); +var hasSymbols = require('has-symbols/shams')(); + +var inspect = require('../'); + +test('Symbol.toStringTag', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (t) { + t.plan(4); + + var obj = { a: 1 }; + t.equal(inspect(obj), '{ a: 1 }', 'object, no Symbol.toStringTag'); + + obj[Symbol.toStringTag] = 'foo'; + t.equal(inspect(obj), '{ a: 1, [Symbol(Symbol.toStringTag)]: \'foo\' }', 'object with Symbol.toStringTag'); + + t.test('null objects', { skip: 'toString' in { __proto__: null } }, function (st) { + st.plan(2); + + var dict = { __proto__: null, a: 1 }; + st.equal(inspect(dict), '[Object: null prototype] { a: 1 }', 'null object with Symbol.toStringTag'); + + dict[Symbol.toStringTag] = 'Dict'; + st.equal(inspect(dict), '[Dict: null prototype] { a: 1, [Symbol(Symbol.toStringTag)]: \'Dict\' }', 'null object with Symbol.toStringTag'); + }); + + t.test('instances', function (st) { + st.plan(4); + + function C() { + this.a = 1; + } + st.equal(Object.prototype.toString.call(new C()), '[object Object]', 'instance, no toStringTag, Object.prototype.toString'); + st.equal(inspect(new C()), 'C { a: 1 }', 'instance, no toStringTag'); + + C.prototype[Symbol.toStringTag] = 'Class!'; + st.equal(Object.prototype.toString.call(new C()), '[object Class!]', 'instance, with toStringTag, Object.prototype.toString'); + st.equal(inspect(new C()), 'C [Class!] { a: 1 }', 'instance, with toStringTag'); + }); +}); diff --git a/node_modules/object-inspect/test/values.js b/node_modules/object-inspect/test/values.js index 0d40a5f26b..ee64681b22 100644 --- a/node_modules/object-inspect/test/values.js +++ b/node_modules/object-inspect/test/values.js @@ -1,5 +1,8 @@ +'use strict'; + var inspect = require('../'); var test = require('tape'); +var hasSymbols = require('has-symbols/shams')(); test('values', function (t) { t.plan(1); @@ -65,10 +68,26 @@ test('seen seen seen', function (t) { ); }); -test('symbols', { skip: typeof Symbol !== 'function' }, function (t) { +test('symbols', { skip: !hasSymbols }, function (t) { var sym = Symbol('foo'); t.equal(inspect(sym), 'Symbol(foo)', 'Symbol("foo") should be "Symbol(foo)"'); - t.equal(inspect(Object(sym)), 'Object(Symbol(foo))', 'Object(Symbol("foo")) should be "Object(Symbol(foo))"'); + if (typeof sym === 'symbol') { + // Symbol shams are incapable of differentiating boxed from unboxed symbols + t.equal(inspect(Object(sym)), 'Object(Symbol(foo))', 'Object(Symbol("foo")) should be "Object(Symbol(foo))"'); + } + + t.test('toStringTag', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (st) { + st.plan(1); + + var faker = {}; + faker[Symbol.toStringTag] = 'Symbol'; + st.equal( + inspect(faker), + '{ [Symbol(Symbol.toStringTag)]: \'Symbol\' }', + 'object lying about being a Symbol inspects as an object' + ); + }); + t.end(); }); @@ -123,6 +142,22 @@ test('WeakSet', { skip: typeof WeakSet !== 'function' }, function (t) { t.end(); }); +test('WeakRef', { skip: typeof WeakRef !== 'function' }, function (t) { + var ref = new WeakRef({ a: 1 }); + var expectedString = 'WeakRef { ? }'; + t.equal(inspect(ref), expectedString, 'new WeakRef({ a: 1 }) should not show contents'); + + t.end(); +}); + +test('FinalizationRegistry', { skip: typeof FinalizationRegistry !== 'function' }, function (t) { + var registry = new FinalizationRegistry(function () {}); + var expectedString = 'FinalizationRegistry [FinalizationRegistry] {}'; + t.equal(inspect(registry), expectedString, 'new FinalizationRegistry(function () {}) should work normallys'); + + t.end(); +}); + test('Strings', function (t) { var str = 'abc'; @@ -167,5 +202,9 @@ test('RegExps', function (t) { t.equal(inspect(/a/g), '/a/g', 'regex shows properly'); t.equal(inspect(new RegExp('abc', 'i')), '/abc/i', 'new RegExp shows properly'); + var match = 'abc abc'.match(/[ab]+/); + delete match.groups; // for node < 10 + t.equal(inspect(match), '[ \'ab\', index: 0, input: \'abc abc\' ]', 'RegExp match object shows properly'); + t.end(); }); diff --git a/node_modules/object.assign/node_modules/es-abstract/.nycrc b/node_modules/object.assign/.nycrc similarity index 100% rename from node_modules/object.assign/node_modules/es-abstract/.nycrc rename to node_modules/object.assign/.nycrc diff --git a/node_modules/object.assign/CHANGELOG.md b/node_modules/object.assign/CHANGELOG.md index 87cc66b69a..ac543d52b3 100644 --- a/node_modules/object.assign/CHANGELOG.md +++ b/node_modules/object.assign/CHANGELOG.md @@ -1,3 +1,10 @@ +4.1.2 / 2020-10-30 +================== + * [Refactor] use extracted `call-bind` instead of full `es-abstract` + * [Dev Deps] update `eslint`, `ses`, `browserify` + * [Tests] run tests in SES + * [Tests] ses-compat: show error stacks + 4.1.1 / 2020-09-11 ================== * [Fix] avoid mutating `Object.assign` in modern engines diff --git a/node_modules/object.assign/dist/browser.js b/node_modules/object.assign/dist/browser.js index 4df0860af0..15f0e20a1a 100644 --- a/node_modules/object.assign/dist/browser.js +++ b/node_modules/object.assign/dist/browser.js @@ -10,7 +10,7 @@ module.exports = assign.shim(); delete assign.shim; -},{"./":3,"object-keys":16}],2:[function(require,module,exports){ +},{"./":3,"object-keys":14}],2:[function(require,module,exports){ 'use strict'; // modified from https://github.com/es-shims/es6-shim @@ -19,7 +19,7 @@ var canBeObject = function (obj) { return typeof obj !== 'undefined' && obj !== null; }; var hasSymbols = require('has-symbols/shams')(); -var callBound = require('es-abstract/helpers/callBound'); +var callBound = require('call-bind/callBound'); var toObject = Object; var $push = callBound('Array.prototype.push'); var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable'); @@ -54,11 +54,11 @@ module.exports = function assign(target, source1) { return objTarget; }; -},{"es-abstract/helpers/callBound":7,"has-symbols/shams":11,"object-keys":16}],3:[function(require,module,exports){ +},{"call-bind/callBound":4,"has-symbols/shams":11,"object-keys":14}],3:[function(require,module,exports){ 'use strict'; var defineProperties = require('define-properties'); -var callBind = require('es-abstract/helpers/callBind'); +var callBind = require('call-bind'); var implementation = require('./implementation'); var getPolyfill = require('./polyfill'); @@ -78,7 +78,59 @@ defineProperties(bound, { module.exports = bound; -},{"./implementation":2,"./polyfill":18,"./shim":19,"define-properties":4,"es-abstract/helpers/callBind":6}],4:[function(require,module,exports){ +},{"./implementation":2,"./polyfill":16,"./shim":17,"call-bind":5,"define-properties":6}],4:[function(require,module,exports){ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBind = require('./'); + +var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); + +module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBind(intrinsic); + } + return intrinsic; +}; + +},{"./":5,"get-intrinsic":9}],5:[function(require,module,exports){ +'use strict'; + +var bind = require('function-bind'); +var GetIntrinsic = require('get-intrinsic'); + +var $apply = GetIntrinsic('%Function.prototype.apply%'); +var $call = GetIntrinsic('%Function.prototype.call%'); +var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); + +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); + +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = null; + } +} + +module.exports = function callBind() { + return $reflectApply(bind, $call, arguments); +}; + +var applyBind = function applyBind() { + return $reflectApply(bind, $apply, arguments); +}; + +if ($defineProperty) { + $defineProperty(module.exports, 'apply', { value: applyBind }); +} else { + module.exports.apply = applyBind; +} + +},{"function-bind":8,"get-intrinsic":9}],6:[function(require,module,exports){ 'use strict'; var keys = require('object-keys'); @@ -138,7 +190,68 @@ defineProperties.supportsDescriptors = !!supportsDescriptors; module.exports = defineProperties; -},{"object-keys":16}],5:[function(require,module,exports){ +},{"object-keys":14}],7:[function(require,module,exports){ +'use strict'; + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + +},{}],8:[function(require,module,exports){ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = Function.prototype.bind || implementation; + +},{"./implementation":7}],9:[function(require,module,exports){ 'use strict'; /* globals @@ -172,7 +285,9 @@ if ($gOPD) { } } -var throwTypeError = function () { throw new $TypeError(); }; +var throwTypeError = function () { + throw new $TypeError(); +}; var ThrowTypeError = $gOPD ? (function () { try { @@ -404,7 +519,18 @@ module.exports = function GetIntrinsic(name, allowMissing) { if (!allowMissing && !(part in value)) { throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); } - value = isOwn ? desc.get || desc.value : value[part]; + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } } else { isOwn = hasOwn(value, part); value = value[part]; @@ -418,105 +544,8 @@ module.exports = function GetIntrinsic(name, allowMissing) { return value; }; -},{"function-bind":9,"has":14,"has-symbols":10}],6:[function(require,module,exports){ -'use strict'; - -var bind = require('function-bind'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -module.exports = function callBind() { - return $reflectApply(bind, $call, arguments); -}; - -module.exports.apply = function applyBind() { - return $reflectApply(bind, $apply, arguments); -}; - -},{"../GetIntrinsic":5,"function-bind":9}],7:[function(require,module,exports){ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBind = require('./callBind'); - -var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - -module.exports = function callBoundIntrinsic(name, allowMissing) { - var intrinsic = GetIntrinsic(name, !!allowMissing); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) { - return callBind(intrinsic); - } - return intrinsic; -}; - -},{"../GetIntrinsic":5,"./callBind":6}],8:[function(require,module,exports){ -'use strict'; - -/* eslint no-invalid-this: 1 */ - -var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; -var slice = Array.prototype.slice; -var toStr = Object.prototype.toString; -var funcType = '[object Function]'; - -module.exports = function bind(that) { - var target = this; - if (typeof target !== 'function' || toStr.call(target) !== funcType) { - throw new TypeError(ERROR_MESSAGE + target); - } - var args = slice.call(arguments, 1); - - var bound; - var binder = function () { - if (this instanceof bound) { - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - } - }; - - var boundLength = Math.max(0, target.length - args.length); - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - boundArgs.push('$' + i); - } - - bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); - - if (target.prototype) { - var Empty = function Empty() {}; - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - - return bound; -}; - -},{}],9:[function(require,module,exports){ -'use strict'; - -var implementation = require('./implementation'); - -module.exports = Function.prototype.bind || implementation; - -},{"./implementation":8}],10:[function(require,module,exports){ -(function (global){ +},{"function-bind":8,"has":12,"has-symbols":10}],10:[function(require,module,exports){ +(function (global){(function (){ 'use strict'; var origSymbol = global.Symbol; @@ -531,7 +560,7 @@ module.exports = function hasNativeSymbols() { return hasSymbolSham(); }; -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"./shams":11}],11:[function(require,module,exports){ 'use strict'; @@ -577,17 +606,13 @@ module.exports = function hasSymbols() { }; },{}],12:[function(require,module,exports){ -arguments[4][8][0].apply(exports,arguments) -},{"dup":8}],13:[function(require,module,exports){ -arguments[4][9][0].apply(exports,arguments) -},{"./implementation":12,"dup":9}],14:[function(require,module,exports){ 'use strict'; var bind = require('function-bind'); module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); -},{"function-bind":13}],15:[function(require,module,exports){ +},{"function-bind":8}],13:[function(require,module,exports){ 'use strict'; var keysShim; @@ -711,7 +736,7 @@ if (!Object.keys) { } module.exports = keysShim; -},{"./isArguments":17}],16:[function(require,module,exports){ +},{"./isArguments":15}],14:[function(require,module,exports){ 'use strict'; var slice = Array.prototype.slice; @@ -745,7 +770,7 @@ keysShim.shim = function shimObjectKeys() { module.exports = keysShim; -},{"./implementation":15,"./isArguments":17}],17:[function(require,module,exports){ +},{"./implementation":13,"./isArguments":15}],15:[function(require,module,exports){ 'use strict'; var toStr = Object.prototype.toString; @@ -764,7 +789,7 @@ module.exports = function isArguments(value) { return isArgs; }; -},{}],18:[function(require,module,exports){ +},{}],16:[function(require,module,exports){ 'use strict'; var implementation = require('./implementation'); @@ -821,7 +846,7 @@ module.exports = function getPolyfill() { return Object.assign; }; -},{"./implementation":2}],19:[function(require,module,exports){ +},{"./implementation":2}],17:[function(require,module,exports){ 'use strict'; var define = require('define-properties'); @@ -837,4 +862,4 @@ module.exports = function shimAssign() { return polyfill; }; -},{"./polyfill":18,"define-properties":4}]},{},[1]); +},{"./polyfill":16,"define-properties":6}]},{},[1]); diff --git a/node_modules/object.assign/implementation.js b/node_modules/object.assign/implementation.js index a1f46a66f4..567efe9055 100644 --- a/node_modules/object.assign/implementation.js +++ b/node_modules/object.assign/implementation.js @@ -6,7 +6,7 @@ var canBeObject = function (obj) { return typeof obj !== 'undefined' && obj !== null; }; var hasSymbols = require('has-symbols/shams')(); -var callBound = require('es-abstract/helpers/callBound'); +var callBound = require('call-bind/callBound'); var toObject = Object; var $push = callBound('Array.prototype.push'); var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable'); diff --git a/node_modules/object.assign/index.js b/node_modules/object.assign/index.js index 894f13845f..9b50603769 100644 --- a/node_modules/object.assign/index.js +++ b/node_modules/object.assign/index.js @@ -1,7 +1,7 @@ 'use strict'; var defineProperties = require('define-properties'); -var callBind = require('es-abstract/helpers/callBind'); +var callBind = require('call-bind'); var implementation = require('./implementation'); var getPolyfill = require('./polyfill'); diff --git a/node_modules/object.assign/node_modules/es-abstract/.editorconfig b/node_modules/object.assign/node_modules/es-abstract/.editorconfig deleted file mode 100644 index eaa214161f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -indent_style = tab; -insert_final_newline = true; -quote_type = auto; -space_after_anonymous_functions = true; -space_after_control_statements = true; -spaces_around_operators = true; -trim_trailing_whitespace = true; -spaces_in_brackets = false; -end_of_line = lf; - diff --git a/node_modules/object.assign/node_modules/es-abstract/.eslintignore b/node_modules/object.assign/node_modules/es-abstract/.eslintignore deleted file mode 100644 index 4ebc8aea50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage diff --git a/node_modules/object.assign/node_modules/es-abstract/.eslintrc b/node_modules/object.assign/node_modules/es-abstract/.eslintrc deleted file mode 100644 index 666eeae70f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.eslintrc +++ /dev/null @@ -1,72 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "env": { - "es6": true, - }, - - "rules": { - "array-bracket-newline": 0, - "array-element-newline": 0, - "complexity": 0, - "eqeqeq": [2, "allow-null"], - "func-name-matching": 0, - "id-length": [2, { "min": 1, "max": 40 }], - "max-params": [2, 4], - "max-statements-per-line": [2, { "max": 2 }], - "multiline-comment-style": 0, - "no-magic-numbers": 0, - "new-cap": 0, - "no-extra-parens": 1, - "operator-linebreak": [2, "before"], - "sort-keys": 0, - }, - - "overrides": [ - { - "files": "GetIntrinsic.js", - "rules": { - "max-statements": 0, - } - }, - { - "files": "operations/*", - "rules": { - "max-lines": 0, - }, - }, - { - "files": "operations/*.js", - "parserOptions": { - "ecmaVersion": 2020, - }, - "rules": { - "no-console": 0, - "no-multi-str": 0, - }, - }, - { - "files": "operations/getOps.js", - "rules": { - "no-console": 0, - "no-process-exit": 0, - }, - }, - { - "files": "test/**", - "rules": { - "id-length": 0, - "max-lines": 0, - "max-lines-per-function": 0, - "max-statements-per-line": [2, { "max": 3 }], - "max-statements": 0, - "no-implicit-coercion": 0, - "no-invalid-this": 1, - "object-curly-newline": 0, - "prefer-regex-literals": 0, - }, - }, - ], -} diff --git a/node_modules/object.assign/node_modules/es-abstract/.gitattributes b/node_modules/object.assign/node_modules/es-abstract/.gitattributes deleted file mode 100644 index 396a0ca333..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.gitattributes +++ /dev/null @@ -1,613 +0,0 @@ -2015/AbstractRelationalComparison.js spackled linguist-generated=true -2015/DateFromTime.js spackled linguist-generated=true -2015/Day.js spackled linguist-generated=true -2015/DayFromYear.js spackled linguist-generated=true -2015/DayWithinYear.js spackled linguist-generated=true -2015/DaysInYear.js spackled linguist-generated=true -2015/HourFromTime.js spackled linguist-generated=true -2015/InLeapYear.js spackled linguist-generated=true -2015/IsCallable.js spackled linguist-generated=true -2015/IsPropertyDescriptor.js spackled linguist-generated=true -2015/MakeDate.js spackled linguist-generated=true -2015/MakeDay.js spackled linguist-generated=true -2015/MakeTime.js spackled linguist-generated=true -2015/MinFromTime.js spackled linguist-generated=true -2015/MonthFromTime.js spackled linguist-generated=true -2015/SameValue.js spackled linguist-generated=true -2015/SecFromTime.js spackled linguist-generated=true -2015/StrictEqualityComparison.js spackled linguist-generated=true -2015/TimeClip.js spackled linguist-generated=true -2015/TimeFromYear.js spackled linguist-generated=true -2015/TimeWithinDay.js spackled linguist-generated=true -2015/ToBoolean.js spackled linguist-generated=true -2015/ToInt32.js spackled linguist-generated=true -2015/ToPropertyDescriptor.js spackled linguist-generated=true -2015/ToUint16.js spackled linguist-generated=true -2015/ToUint32.js spackled linguist-generated=true -2015/WeekDay.js spackled linguist-generated=true -2015/YearFromTime.js spackled linguist-generated=true -2015/abs.js spackled linguist-generated=true -2015/floor.js spackled linguist-generated=true -2015/modulo.js spackled linguist-generated=true -2015/msFromTime.js spackled linguist-generated=true -2016/AbstractEqualityComparison.js spackled linguist-generated=true -2016/AbstractRelationalComparison.js spackled linguist-generated=true -2016/AdvanceStringIndex.js spackled linguist-generated=true -2016/ArrayCreate.js spackled linguist-generated=true -2016/ArraySetLength.js spackled linguist-generated=true -2016/ArraySpeciesCreate.js spackled linguist-generated=true -2016/Call.js spackled linguist-generated=true -2016/CanonicalNumericIndexString.js spackled linguist-generated=true -2016/CompletePropertyDescriptor.js spackled linguist-generated=true -2016/CreateDataProperty.js spackled linguist-generated=true -2016/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2016/CreateHTML.js spackled linguist-generated=true -2016/CreateIterResultObject.js spackled linguist-generated=true -2016/CreateListFromArrayLike.js spackled linguist-generated=true -2016/CreateMethodProperty.js spackled linguist-generated=true -2016/DateFromTime.js spackled linguist-generated=true -2016/Day.js spackled linguist-generated=true -2016/DayFromYear.js spackled linguist-generated=true -2016/DayWithinYear.js spackled linguist-generated=true -2016/DaysInYear.js spackled linguist-generated=true -2016/DefinePropertyOrThrow.js spackled linguist-generated=true -2016/DeletePropertyOrThrow.js spackled linguist-generated=true -2016/EnumerableOwnNames.js spackled linguist-generated=true -2016/FromPropertyDescriptor.js spackled linguist-generated=true -2016/Get.js spackled linguist-generated=true -2016/GetIterator.js spackled linguist-generated=true -2016/GetMethod.js spackled linguist-generated=true -2016/GetOwnPropertyKeys.js spackled linguist-generated=true -2016/GetPrototypeFromConstructor.js spackled linguist-generated=true -2016/GetSubstitution.js spackled linguist-generated=true -2016/GetV.js spackled linguist-generated=true -2016/HasOwnProperty.js spackled linguist-generated=true -2016/HasProperty.js spackled linguist-generated=true -2016/HourFromTime.js spackled linguist-generated=true -2016/InLeapYear.js spackled linguist-generated=true -2016/InstanceofOperator.js spackled linguist-generated=true -2016/Invoke.js spackled linguist-generated=true -2016/IsAccessorDescriptor.js spackled linguist-generated=true -2016/IsArray.js spackled linguist-generated=true -2016/IsCallable.js spackled linguist-generated=true -2016/IsConcatSpreadable.js spackled linguist-generated=true -2016/IsConstructor.js spackled linguist-generated=true -2016/IsDataDescriptor.js spackled linguist-generated=true -2016/IsExtensible.js spackled linguist-generated=true -2016/IsGenericDescriptor.js spackled linguist-generated=true -2016/IsInteger.js spackled linguist-generated=true -2016/IsPromise.js spackled linguist-generated=true -2016/IsPropertyDescriptor.js spackled linguist-generated=true -2016/IsPropertyKey.js spackled linguist-generated=true -2016/IsRegExp.js spackled linguist-generated=true -2016/IteratorClose.js spackled linguist-generated=true -2016/IteratorComplete.js spackled linguist-generated=true -2016/IteratorNext.js spackled linguist-generated=true -2016/IteratorStep.js spackled linguist-generated=true -2016/IteratorValue.js spackled linguist-generated=true -2016/MakeDate.js spackled linguist-generated=true -2016/MakeDay.js spackled linguist-generated=true -2016/MakeTime.js spackled linguist-generated=true -2016/MinFromTime.js spackled linguist-generated=true -2016/MonthFromTime.js spackled linguist-generated=true -2016/ObjectCreate.js spackled linguist-generated=true -2016/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2016/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2016/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2016/OrdinaryHasInstance.js spackled linguist-generated=true -2016/OrdinaryHasProperty.js spackled linguist-generated=true -2016/QuoteJSONString.js spackled linguist-generated=true -2016/RegExpExec.js spackled linguist-generated=true -2016/RequireObjectCoercible.js spackled linguist-generated=true -2016/SameValue.js spackled linguist-generated=true -2016/SameValueZero.js spackled linguist-generated=true -2016/SecFromTime.js spackled linguist-generated=true -2016/Set.js spackled linguist-generated=true -2016/SetFunctionName.js spackled linguist-generated=true -2016/SetIntegrityLevel.js spackled linguist-generated=true -2016/SpeciesConstructor.js spackled linguist-generated=true -2016/StrictEqualityComparison.js spackled linguist-generated=true -2016/SymbolDescriptiveString.js spackled linguist-generated=true -2016/TestIntegrityLevel.js spackled linguist-generated=true -2016/TimeClip.js spackled linguist-generated=true -2016/TimeFromYear.js spackled linguist-generated=true -2016/TimeWithinDay.js spackled linguist-generated=true -2016/ToBoolean.js spackled linguist-generated=true -2016/ToDateString.js spackled linguist-generated=true -2016/ToInt16.js spackled linguist-generated=true -2016/ToInt32.js spackled linguist-generated=true -2016/ToInt8.js spackled linguist-generated=true -2016/ToInteger.js spackled linguist-generated=true -2016/ToLength.js spackled linguist-generated=true -2016/ToNumber.js spackled linguist-generated=true -2016/ToObject.js spackled linguist-generated=true -2016/ToPrimitive.js spackled linguist-generated=true -2016/ToPropertyDescriptor.js spackled linguist-generated=true -2016/ToPropertyKey.js spackled linguist-generated=true -2016/ToString.js spackled linguist-generated=true -2016/ToUint16.js spackled linguist-generated=true -2016/ToUint32.js spackled linguist-generated=true -2016/ToUint8.js spackled linguist-generated=true -2016/ToUint8Clamp.js spackled linguist-generated=true -2016/Type.js spackled linguist-generated=true -2016/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2016/WeekDay.js spackled linguist-generated=true -2016/YearFromTime.js spackled linguist-generated=true -2016/abs.js spackled linguist-generated=true -2016/floor.js spackled linguist-generated=true -2016/modulo.js spackled linguist-generated=true -2016/msFromTime.js spackled linguist-generated=true -2016/thisBooleanValue.js spackled linguist-generated=true -2016/thisNumberValue.js spackled linguist-generated=true -2016/thisStringValue.js spackled linguist-generated=true -2016/thisTimeValue.js spackled linguist-generated=true -2017/AbstractEqualityComparison.js spackled linguist-generated=true -2017/AbstractRelationalComparison.js spackled linguist-generated=true -2017/AdvanceStringIndex.js spackled linguist-generated=true -2017/ArrayCreate.js spackled linguist-generated=true -2017/ArraySetLength.js spackled linguist-generated=true -2017/ArraySpeciesCreate.js spackled linguist-generated=true -2017/Call.js spackled linguist-generated=true -2017/CanonicalNumericIndexString.js spackled linguist-generated=true -2017/CompletePropertyDescriptor.js spackled linguist-generated=true -2017/CreateDataProperty.js spackled linguist-generated=true -2017/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2017/CreateHTML.js spackled linguist-generated=true -2017/CreateIterResultObject.js spackled linguist-generated=true -2017/CreateListFromArrayLike.js spackled linguist-generated=true -2017/CreateMethodProperty.js spackled linguist-generated=true -2017/DateFromTime.js spackled linguist-generated=true -2017/Day.js spackled linguist-generated=true -2017/DayFromYear.js spackled linguist-generated=true -2017/DayWithinYear.js spackled linguist-generated=true -2017/DaysInYear.js spackled linguist-generated=true -2017/DefinePropertyOrThrow.js spackled linguist-generated=true -2017/DeletePropertyOrThrow.js spackled linguist-generated=true -2017/FromPropertyDescriptor.js spackled linguist-generated=true -2017/Get.js spackled linguist-generated=true -2017/GetIterator.js spackled linguist-generated=true -2017/GetMethod.js spackled linguist-generated=true -2017/GetOwnPropertyKeys.js spackled linguist-generated=true -2017/GetPrototypeFromConstructor.js spackled linguist-generated=true -2017/GetSubstitution.js spackled linguist-generated=true -2017/GetV.js spackled linguist-generated=true -2017/HasOwnProperty.js spackled linguist-generated=true -2017/HasProperty.js spackled linguist-generated=true -2017/HourFromTime.js spackled linguist-generated=true -2017/InLeapYear.js spackled linguist-generated=true -2017/InstanceofOperator.js spackled linguist-generated=true -2017/Invoke.js spackled linguist-generated=true -2017/IsAccessorDescriptor.js spackled linguist-generated=true -2017/IsArray.js spackled linguist-generated=true -2017/IsCallable.js spackled linguist-generated=true -2017/IsConcatSpreadable.js spackled linguist-generated=true -2017/IsConstructor.js spackled linguist-generated=true -2017/IsDataDescriptor.js spackled linguist-generated=true -2017/IsExtensible.js spackled linguist-generated=true -2017/IsGenericDescriptor.js spackled linguist-generated=true -2017/IsInteger.js spackled linguist-generated=true -2017/IsPromise.js spackled linguist-generated=true -2017/IsPropertyDescriptor.js spackled linguist-generated=true -2017/IsPropertyKey.js spackled linguist-generated=true -2017/IsRegExp.js spackled linguist-generated=true -2017/IteratorClose.js spackled linguist-generated=true -2017/IteratorComplete.js spackled linguist-generated=true -2017/IteratorNext.js spackled linguist-generated=true -2017/IteratorStep.js spackled linguist-generated=true -2017/IteratorValue.js spackled linguist-generated=true -2017/MakeDate.js spackled linguist-generated=true -2017/MakeDay.js spackled linguist-generated=true -2017/MakeTime.js spackled linguist-generated=true -2017/MinFromTime.js spackled linguist-generated=true -2017/MonthFromTime.js spackled linguist-generated=true -2017/ObjectCreate.js spackled linguist-generated=true -2017/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2017/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2017/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2017/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2017/OrdinaryHasInstance.js spackled linguist-generated=true -2017/OrdinaryHasProperty.js spackled linguist-generated=true -2017/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2017/QuoteJSONString.js spackled linguist-generated=true -2017/RegExpExec.js spackled linguist-generated=true -2017/RequireObjectCoercible.js spackled linguist-generated=true -2017/SameValue.js spackled linguist-generated=true -2017/SameValueNonNumber.js spackled linguist-generated=true -2017/SameValueZero.js spackled linguist-generated=true -2017/SecFromTime.js spackled linguist-generated=true -2017/Set.js spackled linguist-generated=true -2017/SetFunctionName.js spackled linguist-generated=true -2017/SetIntegrityLevel.js spackled linguist-generated=true -2017/SpeciesConstructor.js spackled linguist-generated=true -2017/StrictEqualityComparison.js spackled linguist-generated=true -2017/SymbolDescriptiveString.js spackled linguist-generated=true -2017/TestIntegrityLevel.js spackled linguist-generated=true -2017/TimeClip.js spackled linguist-generated=true -2017/TimeFromYear.js spackled linguist-generated=true -2017/TimeWithinDay.js spackled linguist-generated=true -2017/ToBoolean.js spackled linguist-generated=true -2017/ToDateString.js spackled linguist-generated=true -2017/ToInt16.js spackled linguist-generated=true -2017/ToInt32.js spackled linguist-generated=true -2017/ToInt8.js spackled linguist-generated=true -2017/ToInteger.js spackled linguist-generated=true -2017/ToLength.js spackled linguist-generated=true -2017/ToNumber.js spackled linguist-generated=true -2017/ToObject.js spackled linguist-generated=true -2017/ToPrimitive.js spackled linguist-generated=true -2017/ToPropertyDescriptor.js spackled linguist-generated=true -2017/ToPropertyKey.js spackled linguist-generated=true -2017/ToString.js spackled linguist-generated=true -2017/ToUint16.js spackled linguist-generated=true -2017/ToUint32.js spackled linguist-generated=true -2017/ToUint8.js spackled linguist-generated=true -2017/ToUint8Clamp.js spackled linguist-generated=true -2017/Type.js spackled linguist-generated=true -2017/UTF16Encoding.js spackled linguist-generated=true -2017/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2017/WeekDay.js spackled linguist-generated=true -2017/YearFromTime.js spackled linguist-generated=true -2017/abs.js spackled linguist-generated=true -2017/floor.js spackled linguist-generated=true -2017/modulo.js spackled linguist-generated=true -2017/msFromTime.js spackled linguist-generated=true -2017/thisBooleanValue.js spackled linguist-generated=true -2017/thisNumberValue.js spackled linguist-generated=true -2017/thisStringValue.js spackled linguist-generated=true -2017/thisTimeValue.js spackled linguist-generated=true -2018/AbstractEqualityComparison.js spackled linguist-generated=true -2018/AbstractRelationalComparison.js spackled linguist-generated=true -2018/AdvanceStringIndex.js spackled linguist-generated=true -2018/ArrayCreate.js spackled linguist-generated=true -2018/ArraySetLength.js spackled linguist-generated=true -2018/ArraySpeciesCreate.js spackled linguist-generated=true -2018/Call.js spackled linguist-generated=true -2018/CanonicalNumericIndexString.js spackled linguist-generated=true -2018/CompletePropertyDescriptor.js spackled linguist-generated=true -2018/CreateDataProperty.js spackled linguist-generated=true -2018/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2018/CreateHTML.js spackled linguist-generated=true -2018/CreateIterResultObject.js spackled linguist-generated=true -2018/CreateListFromArrayLike.js spackled linguist-generated=true -2018/CreateMethodProperty.js spackled linguist-generated=true -2018/DateFromTime.js spackled linguist-generated=true -2018/Day.js spackled linguist-generated=true -2018/DayFromYear.js spackled linguist-generated=true -2018/DayWithinYear.js spackled linguist-generated=true -2018/DaysInYear.js spackled linguist-generated=true -2018/DefinePropertyOrThrow.js spackled linguist-generated=true -2018/DeletePropertyOrThrow.js spackled linguist-generated=true -2018/FromPropertyDescriptor.js spackled linguist-generated=true -2018/Get.js spackled linguist-generated=true -2018/GetIterator.js spackled linguist-generated=true -2018/GetMethod.js spackled linguist-generated=true -2018/GetOwnPropertyKeys.js spackled linguist-generated=true -2018/GetPrototypeFromConstructor.js spackled linguist-generated=true -2018/GetV.js spackled linguist-generated=true -2018/HasOwnProperty.js spackled linguist-generated=true -2018/HasProperty.js spackled linguist-generated=true -2018/HourFromTime.js spackled linguist-generated=true -2018/InLeapYear.js spackled linguist-generated=true -2018/InstanceofOperator.js spackled linguist-generated=true -2018/Invoke.js spackled linguist-generated=true -2018/IsAccessorDescriptor.js spackled linguist-generated=true -2018/IsArray.js spackled linguist-generated=true -2018/IsCallable.js spackled linguist-generated=true -2018/IsConcatSpreadable.js spackled linguist-generated=true -2018/IsConstructor.js spackled linguist-generated=true -2018/IsDataDescriptor.js spackled linguist-generated=true -2018/IsExtensible.js spackled linguist-generated=true -2018/IsGenericDescriptor.js spackled linguist-generated=true -2018/IsInteger.js spackled linguist-generated=true -2018/IsPromise.js spackled linguist-generated=true -2018/IsPropertyKey.js spackled linguist-generated=true -2018/IsRegExp.js spackled linguist-generated=true -2018/IterableToList.js spackled linguist-generated=true -2018/IteratorClose.js spackled linguist-generated=true -2018/IteratorComplete.js spackled linguist-generated=true -2018/IteratorNext.js spackled linguist-generated=true -2018/IteratorStep.js spackled linguist-generated=true -2018/IteratorValue.js spackled linguist-generated=true -2018/MakeDate.js spackled linguist-generated=true -2018/MakeDay.js spackled linguist-generated=true -2018/MakeTime.js spackled linguist-generated=true -2018/MinFromTime.js spackled linguist-generated=true -2018/MonthFromTime.js spackled linguist-generated=true -2018/ObjectCreate.js spackled linguist-generated=true -2018/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2018/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2018/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2018/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2018/OrdinaryHasInstance.js spackled linguist-generated=true -2018/OrdinaryHasProperty.js spackled linguist-generated=true -2018/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2018/RegExpExec.js spackled linguist-generated=true -2018/RequireObjectCoercible.js spackled linguist-generated=true -2018/SameValue.js spackled linguist-generated=true -2018/SameValueNonNumber.js spackled linguist-generated=true -2018/SameValueZero.js spackled linguist-generated=true -2018/SecFromTime.js spackled linguist-generated=true -2018/Set.js spackled linguist-generated=true -2018/SetFunctionName.js spackled linguist-generated=true -2018/SetIntegrityLevel.js spackled linguist-generated=true -2018/SpeciesConstructor.js spackled linguist-generated=true -2018/StrictEqualityComparison.js spackled linguist-generated=true -2018/StringGetOwnProperty.js spackled linguist-generated=true -2018/SymbolDescriptiveString.js spackled linguist-generated=true -2018/TestIntegrityLevel.js spackled linguist-generated=true -2018/TimeClip.js spackled linguist-generated=true -2018/TimeFromYear.js spackled linguist-generated=true -2018/TimeWithinDay.js spackled linguist-generated=true -2018/ToBoolean.js spackled linguist-generated=true -2018/ToDateString.js spackled linguist-generated=true -2018/ToIndex.js spackled linguist-generated=true -2018/ToInt16.js spackled linguist-generated=true -2018/ToInt32.js spackled linguist-generated=true -2018/ToInt8.js spackled linguist-generated=true -2018/ToInteger.js spackled linguist-generated=true -2018/ToLength.js spackled linguist-generated=true -2018/ToNumber.js spackled linguist-generated=true -2018/ToObject.js spackled linguist-generated=true -2018/ToPrimitive.js spackled linguist-generated=true -2018/ToPropertyDescriptor.js spackled linguist-generated=true -2018/ToPropertyKey.js spackled linguist-generated=true -2018/ToString.js spackled linguist-generated=true -2018/ToUint16.js spackled linguist-generated=true -2018/ToUint32.js spackled linguist-generated=true -2018/ToUint8.js spackled linguist-generated=true -2018/ToUint8Clamp.js spackled linguist-generated=true -2018/Type.js spackled linguist-generated=true -2018/UTF16Encoding.js spackled linguist-generated=true -2018/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2018/WeekDay.js spackled linguist-generated=true -2018/YearFromTime.js spackled linguist-generated=true -2018/abs.js spackled linguist-generated=true -2018/floor.js spackled linguist-generated=true -2018/modulo.js spackled linguist-generated=true -2018/msFromTime.js spackled linguist-generated=true -2018/thisBooleanValue.js spackled linguist-generated=true -2018/thisNumberValue.js spackled linguist-generated=true -2018/thisStringValue.js spackled linguist-generated=true -2018/thisTimeValue.js spackled linguist-generated=true -2019/AbstractEqualityComparison.js spackled linguist-generated=true -2019/AbstractRelationalComparison.js spackled linguist-generated=true -2019/AdvanceStringIndex.js spackled linguist-generated=true -2019/ArrayCreate.js spackled linguist-generated=true -2019/ArraySetLength.js spackled linguist-generated=true -2019/ArraySpeciesCreate.js spackled linguist-generated=true -2019/Call.js spackled linguist-generated=true -2019/CanonicalNumericIndexString.js spackled linguist-generated=true -2019/CompletePropertyDescriptor.js spackled linguist-generated=true -2019/CopyDataProperties.js spackled linguist-generated=true -2019/CreateDataProperty.js spackled linguist-generated=true -2019/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2019/CreateHTML.js spackled linguist-generated=true -2019/CreateIterResultObject.js spackled linguist-generated=true -2019/CreateListFromArrayLike.js spackled linguist-generated=true -2019/CreateMethodProperty.js spackled linguist-generated=true -2019/DateFromTime.js spackled linguist-generated=true -2019/DateString.js spackled linguist-generated=true -2019/Day.js spackled linguist-generated=true -2019/DayFromYear.js spackled linguist-generated=true -2019/DayWithinYear.js spackled linguist-generated=true -2019/DaysInYear.js spackled linguist-generated=true -2019/DefinePropertyOrThrow.js spackled linguist-generated=true -2019/DeletePropertyOrThrow.js spackled linguist-generated=true -2019/EnumerableOwnPropertyNames.js spackled linguist-generated=true -2019/FromPropertyDescriptor.js spackled linguist-generated=true -2019/Get.js spackled linguist-generated=true -2019/GetIterator.js spackled linguist-generated=true -2019/GetMethod.js spackled linguist-generated=true -2019/GetOwnPropertyKeys.js spackled linguist-generated=true -2019/GetPrototypeFromConstructor.js spackled linguist-generated=true -2019/GetSubstitution.js spackled linguist-generated=true -2019/GetV.js spackled linguist-generated=true -2019/HasOwnProperty.js spackled linguist-generated=true -2019/HasProperty.js spackled linguist-generated=true -2019/HourFromTime.js spackled linguist-generated=true -2019/InLeapYear.js spackled linguist-generated=true -2019/InstanceofOperator.js spackled linguist-generated=true -2019/Invoke.js spackled linguist-generated=true -2019/IsAccessorDescriptor.js spackled linguist-generated=true -2019/IsArray.js spackled linguist-generated=true -2019/IsCallable.js spackled linguist-generated=true -2019/IsConcatSpreadable.js spackled linguist-generated=true -2019/IsConstructor.js spackled linguist-generated=true -2019/IsDataDescriptor.js spackled linguist-generated=true -2019/IsExtensible.js spackled linguist-generated=true -2019/IsGenericDescriptor.js spackled linguist-generated=true -2019/IsInteger.js spackled linguist-generated=true -2019/IsPromise.js spackled linguist-generated=true -2019/IsPropertyKey.js spackled linguist-generated=true -2019/IsRegExp.js spackled linguist-generated=true -2019/IsStringPrefix.js spackled linguist-generated=true -2019/IterableToList.js spackled linguist-generated=true -2019/IteratorClose.js spackled linguist-generated=true -2019/IteratorComplete.js spackled linguist-generated=true -2019/IteratorNext.js spackled linguist-generated=true -2019/IteratorStep.js spackled linguist-generated=true -2019/IteratorValue.js spackled linguist-generated=true -2019/MakeDate.js spackled linguist-generated=true -2019/MakeDay.js spackled linguist-generated=true -2019/MakeTime.js spackled linguist-generated=true -2019/MinFromTime.js spackled linguist-generated=true -2019/MonthFromTime.js spackled linguist-generated=true -2019/NumberToString.js spackled linguist-generated=true -2019/ObjectCreate.js spackled linguist-generated=true -2019/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2019/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2019/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2019/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2019/OrdinaryHasInstance.js spackled linguist-generated=true -2019/OrdinaryHasProperty.js spackled linguist-generated=true -2019/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2019/PromiseResolve.js spackled linguist-generated=true -2019/RegExpExec.js spackled linguist-generated=true -2019/RequireObjectCoercible.js spackled linguist-generated=true -2019/SameValue.js spackled linguist-generated=true -2019/SameValueNonNumber.js spackled linguist-generated=true -2019/SameValueZero.js spackled linguist-generated=true -2019/SecFromTime.js spackled linguist-generated=true -2019/Set.js spackled linguist-generated=true -2019/SetFunctionLength.js spackled linguist-generated=true -2019/SetFunctionName.js spackled linguist-generated=true -2019/SetIntegrityLevel.js spackled linguist-generated=true -2019/SpeciesConstructor.js spackled linguist-generated=true -2019/StrictEqualityComparison.js spackled linguist-generated=true -2019/StringGetOwnProperty.js spackled linguist-generated=true -2019/SymbolDescriptiveString.js spackled linguist-generated=true -2019/TestIntegrityLevel.js spackled linguist-generated=true -2019/TimeClip.js spackled linguist-generated=true -2019/TimeFromYear.js spackled linguist-generated=true -2019/TimeString.js spackled linguist-generated=true -2019/TimeWithinDay.js spackled linguist-generated=true -2019/ToBoolean.js spackled linguist-generated=true -2019/ToDateString.js spackled linguist-generated=true -2019/ToIndex.js spackled linguist-generated=true -2019/ToInt16.js spackled linguist-generated=true -2019/ToInt32.js spackled linguist-generated=true -2019/ToInt8.js spackled linguist-generated=true -2019/ToInteger.js spackled linguist-generated=true -2019/ToLength.js spackled linguist-generated=true -2019/ToNumber.js spackled linguist-generated=true -2019/ToObject.js spackled linguist-generated=true -2019/ToPrimitive.js spackled linguist-generated=true -2019/ToPropertyDescriptor.js spackled linguist-generated=true -2019/ToPropertyKey.js spackled linguist-generated=true -2019/ToString.js spackled linguist-generated=true -2019/ToUint16.js spackled linguist-generated=true -2019/ToUint32.js spackled linguist-generated=true -2019/ToUint8.js spackled linguist-generated=true -2019/ToUint8Clamp.js spackled linguist-generated=true -2019/Type.js spackled linguist-generated=true -2019/UTF16Encoding.js spackled linguist-generated=true -2019/UnicodeEscape.js spackled linguist-generated=true -2019/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2019/WeekDay.js spackled linguist-generated=true -2019/YearFromTime.js spackled linguist-generated=true -2019/abs.js spackled linguist-generated=true -2019/floor.js spackled linguist-generated=true -2019/modulo.js spackled linguist-generated=true -2019/msFromTime.js spackled linguist-generated=true -2019/thisBooleanValue.js spackled linguist-generated=true -2019/thisNumberValue.js spackled linguist-generated=true -2019/thisStringValue.js spackled linguist-generated=true -2019/thisSymbolValue.js spackled linguist-generated=true -2020/AbstractEqualityComparison.js spackled linguist-generated=true -2020/AbstractRelationalComparison.js spackled linguist-generated=true -2020/AddEntriesFromIterable.js spackled linguist-generated=true -2020/ArrayCreate.js spackled linguist-generated=true -2020/ArraySetLength.js spackled linguist-generated=true -2020/ArraySpeciesCreate.js spackled linguist-generated=true -2020/Call.js spackled linguist-generated=true -2020/CanonicalNumericIndexString.js spackled linguist-generated=true -2020/CompletePropertyDescriptor.js spackled linguist-generated=true -2020/CopyDataProperties.js spackled linguist-generated=true -2020/CreateDataProperty.js spackled linguist-generated=true -2020/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2020/CreateHTML.js spackled linguist-generated=true -2020/CreateIterResultObject.js spackled linguist-generated=true -2020/CreateMethodProperty.js spackled linguist-generated=true -2020/DateFromTime.js spackled linguist-generated=true -2020/DateString.js spackled linguist-generated=true -2020/Day.js spackled linguist-generated=true -2020/DayFromYear.js spackled linguist-generated=true -2020/DayWithinYear.js spackled linguist-generated=true -2020/DaysInYear.js spackled linguist-generated=true -2020/DefinePropertyOrThrow.js spackled linguist-generated=true -2020/DeletePropertyOrThrow.js spackled linguist-generated=true -2020/EnumerableOwnPropertyNames.js spackled linguist-generated=true -2020/FromPropertyDescriptor.js spackled linguist-generated=true -2020/Get.js spackled linguist-generated=true -2020/GetIterator.js spackled linguist-generated=true -2020/GetMethod.js spackled linguist-generated=true -2020/GetOwnPropertyKeys.js spackled linguist-generated=true -2020/GetPrototypeFromConstructor.js spackled linguist-generated=true -2020/GetSubstitution.js spackled linguist-generated=true -2020/GetV.js spackled linguist-generated=true -2020/HasOwnProperty.js spackled linguist-generated=true -2020/HasProperty.js spackled linguist-generated=true -2020/HourFromTime.js spackled linguist-generated=true -2020/InLeapYear.js spackled linguist-generated=true -2020/InstanceofOperator.js spackled linguist-generated=true -2020/Invoke.js spackled linguist-generated=true -2020/IsAccessorDescriptor.js spackled linguist-generated=true -2020/IsArray.js spackled linguist-generated=true -2020/IsCallable.js spackled linguist-generated=true -2020/IsConcatSpreadable.js spackled linguist-generated=true -2020/IsConstructor.js spackled linguist-generated=true -2020/IsDataDescriptor.js spackled linguist-generated=true -2020/IsExtensible.js spackled linguist-generated=true -2020/IsGenericDescriptor.js spackled linguist-generated=true -2020/IsInteger.js spackled linguist-generated=true -2020/IsPromise.js spackled linguist-generated=true -2020/IsPropertyKey.js spackled linguist-generated=true -2020/IsRegExp.js spackled linguist-generated=true -2020/IsStringPrefix.js spackled linguist-generated=true -2020/IterableToList.js spackled linguist-generated=true -2020/IteratorClose.js spackled linguist-generated=true -2020/IteratorComplete.js spackled linguist-generated=true -2020/IteratorNext.js spackled linguist-generated=true -2020/IteratorStep.js spackled linguist-generated=true -2020/IteratorValue.js spackled linguist-generated=true -2020/MakeDate.js spackled linguist-generated=true -2020/MakeDay.js spackled linguist-generated=true -2020/MakeTime.js spackled linguist-generated=true -2020/MinFromTime.js spackled linguist-generated=true -2020/MonthFromTime.js spackled linguist-generated=true -2020/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2020/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2020/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2020/OrdinaryHasInstance.js spackled linguist-generated=true -2020/OrdinaryHasProperty.js spackled linguist-generated=true -2020/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2020/PromiseResolve.js spackled linguist-generated=true -2020/RegExpExec.js spackled linguist-generated=true -2020/RequireObjectCoercible.js spackled linguist-generated=true -2020/SameValue.js spackled linguist-generated=true -2020/SameValueZero.js spackled linguist-generated=true -2020/SecFromTime.js spackled linguist-generated=true -2020/Set.js spackled linguist-generated=true -2020/SetFunctionName.js spackled linguist-generated=true -2020/SetIntegrityLevel.js spackled linguist-generated=true -2020/SpeciesConstructor.js spackled linguist-generated=true -2020/StrictEqualityComparison.js spackled linguist-generated=true -2020/StringGetOwnProperty.js spackled linguist-generated=true -2020/SymbolDescriptiveString.js spackled linguist-generated=true -2020/TestIntegrityLevel.js spackled linguist-generated=true -2020/TimeClip.js spackled linguist-generated=true -2020/TimeFromYear.js spackled linguist-generated=true -2020/TimeString.js spackled linguist-generated=true -2020/TimeWithinDay.js spackled linguist-generated=true -2020/ToBoolean.js spackled linguist-generated=true -2020/ToDateString.js spackled linguist-generated=true -2020/ToIndex.js spackled linguist-generated=true -2020/ToInt16.js spackled linguist-generated=true -2020/ToInt32.js spackled linguist-generated=true -2020/ToInt8.js spackled linguist-generated=true -2020/ToInteger.js spackled linguist-generated=true -2020/ToLength.js spackled linguist-generated=true -2020/ToNumber.js spackled linguist-generated=true -2020/ToObject.js spackled linguist-generated=true -2020/ToPrimitive.js spackled linguist-generated=true -2020/ToPropertyDescriptor.js spackled linguist-generated=true -2020/ToPropertyKey.js spackled linguist-generated=true -2020/ToString.js spackled linguist-generated=true -2020/ToUint16.js spackled linguist-generated=true -2020/ToUint32.js spackled linguist-generated=true -2020/ToUint8.js spackled linguist-generated=true -2020/ToUint8Clamp.js spackled linguist-generated=true -2020/TrimString.js spackled linguist-generated=true -2020/UTF16Encoding.js spackled linguist-generated=true -2020/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2020/WeekDay.js spackled linguist-generated=true -2020/YearFromTime.js spackled linguist-generated=true -2020/abs.js spackled linguist-generated=true -2020/floor.js spackled linguist-generated=true -2020/modulo.js spackled linguist-generated=true -2020/msFromTime.js spackled linguist-generated=true -2020/thisBooleanValue.js spackled linguist-generated=true -2020/thisNumberValue.js spackled linguist-generated=true -2020/thisStringValue.js spackled linguist-generated=true -2020/thisSymbolValue.js spackled linguist-generated=true -2020/thisTimeValue.js spackled linguist-generated=true \ No newline at end of file diff --git a/node_modules/object.assign/node_modules/es-abstract/.github/FUNDING.yml b/node_modules/object.assign/node_modules/es-abstract/.github/FUNDING.yml deleted file mode 100644 index beeb7a2880..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/es-abstract -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/object.assign/node_modules/es-abstract/.github/workflows/codeql-analysis.yml b/node_modules/object.assign/node_modules/es-abstract/.github/workflows/codeql-analysis.yml deleted file mode 100644 index e77ad6a7c6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: "Code scanning - action" - -on: - push: - pull_request: - schedule: - - cron: '0 17 * * 4' - -jobs: - CodeQL-Build: - - # CodeQL runs on ubuntu-latest and windows-latest - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - # We must fetch at least the immediate parents so that if this is - # a pull request then we can checkout the head. - fetch-depth: 2 - - # If this run was triggered by a pull request event, then checkout - # the head of the pull request instead of the merge commit. - - run: git checkout HEAD^2 - if: ${{ github.event_name == 'pull_request' }} - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - # Override language selection by uncommenting this and choosing your languages - # with: - # languages: go, javascript, csharp, python, cpp, java - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/node_modules/object.assign/node_modules/es-abstract/.github/workflows/rebase.yml b/node_modules/object.assign/node_modules/es-abstract/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/object.assign/node_modules/es-abstract/.travis.yml b/node_modules/object.assign/node_modules/es-abstract/.travis.yml deleted file mode 100644 index 5c340249c5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -cache: - directories: - - "$HOME/.npm" - - "$(nvm cache dir)" - - "$(nvm_version_path $(nvm_version_remote 0.4))" - - "$(nvm_version_path $(nvm_version_remote 0.6))" - - "$(nvm_version_path $(nvm_version_remote 0.10))" -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml -script: - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage && bash <(curl -s https://codecov.io/bash) -f coverage/*.json; fi' -matrix: - include: - - node_js: "8" - env: COVERAGE=true - - node_js: "4" - env: COVERAGE=true - - node_js: "0.12" - env: COVERAGE=true - - node_js: "0.8" - env: COVERAGE=true - exclude: - - node_js: "0.12" - env: TEST=true - - node_js: "0.8" - env: TEST=true diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2015/AbstractEqualityComparison.js deleted file mode 100644 index 40b3909868..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/2015/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/AdvanceStringIndex.js b/node_modules/object.assign/node_modules/es-abstract/2015/AdvanceStringIndex.js deleted file mode 100644 index 69dae1b7c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('../helpers/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ArrayCreate.js b/node_modules/object.assign/node_modules/es-abstract/2015/ArrayCreate.js deleted file mode 100644 index fc9a7cf82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ArraySetLength.js b/node_modules/object.assign/node_modules/es-abstract/2015/ArraySetLength.js deleted file mode 100644 index c9134c6e6a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ArraySpeciesCreate.js b/node_modules/object.assign/node_modules/es-abstract/2015/ArraySpeciesCreate.js deleted file mode 100644 index 98b9b561d0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/Call.js b/node_modules/object.assign/node_modules/es-abstract/2015/Call.js deleted file mode 100644 index f0f0451741..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/Call.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - return $apply(F, V, args); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CanonicalNumericIndexString.js b/node_modules/object.assign/node_modules/es-abstract/2015/CanonicalNumericIndexString.js deleted file mode 100644 index 625f8539ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CreateDataProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/CreateDataProperty.js deleted file mode 100644 index 32a86ef047..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js deleted file mode 100644 index 9feaec8d8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CreateHTML.js b/node_modules/object.assign/node_modules/es-abstract/2015/CreateHTML.js deleted file mode 100644 index 536c92db87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CreateIterResultObject.js b/node_modules/object.assign/node_modules/es-abstract/2015/CreateIterResultObject.js deleted file mode 100644 index aef1d2200e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CreateListFromArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2015/CreateListFromArrayLike.js deleted file mode 100644 index d6b44b5dcf..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/CreateMethodProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/CreateMethodProperty.js deleted file mode 100644 index 5b599aea1e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/Day.js b/node_modules/object.assign/node_modules/es-abstract/2015/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2015/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/2015/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/2015/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/DefinePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2015/DefinePropertyOrThrow.js deleted file mode 100644 index 7977f6e182..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/DeletePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2015/DeletePropertyOrThrow.js deleted file mode 100644 index b47681797b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/EnumerableOwnNames.js b/node_modules/object.assign/node_modules/es-abstract/2015/EnumerableOwnNames.js deleted file mode 100644 index d068584883..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/EnumerableOwnNames.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var keys = require('object-keys'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames - -module.exports = function EnumerableOwnNames(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - return keys(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/FromPropertyDescriptor.js deleted file mode 100644 index 5ec200edb2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/Get.js b/node_modules/object.assign/node_modules/es-abstract/2015/Get.js deleted file mode 100644 index 5b9ad78603..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/GetIterator.js b/node_modules/object.assign/node_modules/es-abstract/2015/GetIterator.js deleted file mode 100644 index 7beddacc0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/GetMethod.js b/node_modules/object.assign/node_modules/es-abstract/2015/GetMethod.js deleted file mode 100644 index aef8cbc4a7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/GetOwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/2015/GetOwnPropertyKeys.js deleted file mode 100644 index 8d7e5eee5a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js deleted file mode 100644 index 62da8fb5f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/GetSubstitution.js b/node_modules/object.assign/node_modules/es-abstract/2015/GetSubstitution.js deleted file mode 100644 index 6497aaed4d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/GetSubstitution.js +++ /dev/null @@ -1,104 +0,0 @@ - -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $parseInt = GetIntrinsic('%parseInt%'); - -var inspect = require('object-inspect'); - -var regexTester = require('../helpers/regexTester'); -var callBound = require('../helpers/callBound'); -var every = require('../helpers/every'); - -var isDigit = regexTester(/^[0-9]$/); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); - -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/GetV.js b/node_modules/object.assign/node_modules/es-abstract/2015/GetV.js deleted file mode 100644 index 7b5139aceb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/HasOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/HasOwnProperty.js deleted file mode 100644 index 679059f2e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/HasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/HasProperty.js deleted file mode 100644 index 5f2d2122ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/2015/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/InstanceofOperator.js b/node_modules/object.assign/node_modules/es-abstract/2015/InstanceofOperator.js deleted file mode 100644 index ebd308c4b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/Invoke.js b/node_modules/object.assign/node_modules/es-abstract/2015/Invoke.js deleted file mode 100644 index 769f0e3082..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/Invoke.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $arraySlice = require('../helpers/callBound')('Array.prototype.slice'); - -var Call = require('./Call'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = $arraySlice(arguments, 2); - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsAccessorDescriptor.js deleted file mode 100644 index 5139464626..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsArray.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsArray.js deleted file mode 100644 index 7b25f37b52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsConcatSpreadable.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsConcatSpreadable.js deleted file mode 100644 index dc8aae1e6f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsConstructor.js deleted file mode 100644 index 8ba9fe55bd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsDataDescriptor.js deleted file mode 100644 index 0ad3045854..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsExtensible.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsExtensible.js deleted file mode 100644 index 0c4c8a60c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsGenericDescriptor.js deleted file mode 100644 index 8618ce4143..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsInteger.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsInteger.js deleted file mode 100644 index e9bc8424e5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsPromise.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsPromise.js deleted file mode 100644 index e8e92a2b88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsPropertyDescriptor.js deleted file mode 100644 index 2a96c637b5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsPropertyDescriptor.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsPropertyKey.js deleted file mode 100644 index 74b8d95d43..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IsRegExp.js b/node_modules/object.assign/node_modules/es-abstract/2015/IsRegExp.js deleted file mode 100644 index fdf2323ff9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorClose.js b/node_modules/object.assign/node_modules/es-abstract/2015/IteratorClose.js deleted file mode 100644 index 35c8c2bea1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorComplete.js b/node_modules/object.assign/node_modules/es-abstract/2015/IteratorComplete.js deleted file mode 100644 index a62b9bfc1f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorNext.js b/node_modules/object.assign/node_modules/es-abstract/2015/IteratorNext.js deleted file mode 100644 index 7e59915614..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorValue.js b/node_modules/object.assign/node_modules/es-abstract/2015/IteratorValue.js deleted file mode 100644 index 5e71a44637..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/2015/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/2015/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ObjectCreate.js b/node_modules/object.assign/node_modules/es-abstract/2015/ObjectCreate.js deleted file mode 100644 index e2445b0229..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e390a600af..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 59780b3bb1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js deleted file mode 100644 index b9882e5dc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryHasInstance.js b/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryHasInstance.js deleted file mode 100644 index 51abe26d50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryHasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryHasProperty.js deleted file mode 100644 index 076c25ac5e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/QuoteJSONString.js b/node_modules/object.assign/node_modules/es-abstract/2015/QuoteJSONString.js deleted file mode 100644 index 5c2d6f05e4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/QuoteJSONString.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-quotejsonstring - -var escapes = { - '\u0008': 'b', - '\u000C': 'f', - '\u000A': 'n', - '\u000D': 'r', - '\u0009': 't' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (C === '"' || C === '\\') { - product += '\u005C' + C; - } else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') { - var abbrev = escapes[C]; - product += '\u005C' + abbrev; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20) { - product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4)); - } else { - product += C; - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/RegExpExec.js b/node_modules/object.assign/node_modules/es-abstract/2015/RegExpExec.js deleted file mode 100644 index 15c91867d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('../helpers/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/2015/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SameValueZero.js b/node_modules/object.assign/node_modules/es-abstract/2015/SameValueZero.js deleted file mode 100644 index 0dedcd2c3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/Set.js b/node_modules/object.assign/node_modules/es-abstract/2015/Set.js deleted file mode 100644 index 9545b1325a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SetFunctionName.js b/node_modules/object.assign/node_modules/es-abstract/2015/SetFunctionName.js deleted file mode 100644 index f93324a732..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SetIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2015/SetIntegrityLevel.js deleted file mode 100644 index 3d5c81d562..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SpeciesConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2015/SpeciesConstructor.js deleted file mode 100644 index 3cdcd747d6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2015/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/SymbolDescriptiveString.js b/node_modules/object.assign/node_modules/es-abstract/2015/SymbolDescriptiveString.js deleted file mode 100644 index 7bd8191ad7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/TestIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2015/TestIntegrityLevel.js deleted file mode 100644 index 7a57397d59..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/2015/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2015/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/2015/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToDateString.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToDateString.js deleted file mode 100644 index 7a6d4c4e9d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToInt16.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToInt16.js deleted file mode 100644 index 5a112c237a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToInt8.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToInt8.js deleted file mode 100644 index d103123a91..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToInteger.js deleted file mode 100644 index 16f7db9c36..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToNumber.js deleted file mode 100644 index 7a3cdc89eb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToObject.js deleted file mode 100644 index 50d5b94a45..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToPrimitive.js deleted file mode 100644 index 81c655d41a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToPropertyKey.js deleted file mode 100644 index 38f40dd80f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToString.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToString.js deleted file mode 100644 index a34543126b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ToUint8Clamp.js b/node_modules/object.assign/node_modules/es-abstract/2015/ToUint8Clamp.js deleted file mode 100644 index 95fcc39282..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/Type.js b/node_modules/object.assign/node_modules/es-abstract/2015/Type.js deleted file mode 100644 index 0bd11659c2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index d4b900700b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://www.ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/2015/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/abs.js b/node_modules/object.assign/node_modules/es-abstract/2015/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/floor.js b/node_modules/object.assign/node_modules/es-abstract/2015/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/modulo.js b/node_modules/object.assign/node_modules/es-abstract/2015/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2015/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/thisBooleanValue.js b/node_modules/object.assign/node_modules/es-abstract/2015/thisBooleanValue.js deleted file mode 100644 index 3ffac9cdf2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('../helpers/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/thisNumberValue.js b/node_modules/object.assign/node_modules/es-abstract/2015/thisNumberValue.js deleted file mode 100644 index 0345e523f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/thisStringValue.js b/node_modules/object.assign/node_modules/es-abstract/2015/thisStringValue.js deleted file mode 100644 index 3b99b6e3ca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('../helpers/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2015/thisTimeValue.js b/node_modules/object.assign/node_modules/es-abstract/2015/thisTimeValue.js deleted file mode 100644 index d7cda28c90..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2015/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('../helpers/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2016/AbstractEqualityComparison.js deleted file mode 100644 index 40b3909868..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/2016/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/AdvanceStringIndex.js b/node_modules/object.assign/node_modules/es-abstract/2016/AdvanceStringIndex.js deleted file mode 100644 index 69dae1b7c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('../helpers/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ArrayCreate.js b/node_modules/object.assign/node_modules/es-abstract/2016/ArrayCreate.js deleted file mode 100644 index fc9a7cf82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ArraySetLength.js b/node_modules/object.assign/node_modules/es-abstract/2016/ArraySetLength.js deleted file mode 100644 index c9134c6e6a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ArraySpeciesCreate.js b/node_modules/object.assign/node_modules/es-abstract/2016/ArraySpeciesCreate.js deleted file mode 100644 index 98b9b561d0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/Call.js b/node_modules/object.assign/node_modules/es-abstract/2016/Call.js deleted file mode 100644 index f0f0451741..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/Call.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - return $apply(F, V, args); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CanonicalNumericIndexString.js b/node_modules/object.assign/node_modules/es-abstract/2016/CanonicalNumericIndexString.js deleted file mode 100644 index 625f8539ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CompletePropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf415a3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CreateDataProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/CreateDataProperty.js deleted file mode 100644 index 32a86ef047..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js deleted file mode 100644 index 9feaec8d8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CreateHTML.js b/node_modules/object.assign/node_modules/es-abstract/2016/CreateHTML.js deleted file mode 100644 index 536c92db87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CreateIterResultObject.js b/node_modules/object.assign/node_modules/es-abstract/2016/CreateIterResultObject.js deleted file mode 100644 index aef1d2200e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CreateListFromArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2016/CreateListFromArrayLike.js deleted file mode 100644 index d6b44b5dcf..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/CreateMethodProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/CreateMethodProperty.js deleted file mode 100644 index 5b599aea1e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/Day.js b/node_modules/object.assign/node_modules/es-abstract/2016/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2016/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/2016/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/2016/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/DefinePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2016/DefinePropertyOrThrow.js deleted file mode 100644 index 7977f6e182..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/DeletePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2016/DeletePropertyOrThrow.js deleted file mode 100644 index b47681797b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/EnumerableOwnNames.js b/node_modules/object.assign/node_modules/es-abstract/2016/EnumerableOwnNames.js deleted file mode 100644 index d068584883..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/EnumerableOwnNames.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var keys = require('object-keys'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames - -module.exports = function EnumerableOwnNames(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - return keys(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/FromPropertyDescriptor.js deleted file mode 100644 index 5ec200edb2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/Get.js b/node_modules/object.assign/node_modules/es-abstract/2016/Get.js deleted file mode 100644 index 5b9ad78603..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/GetIterator.js b/node_modules/object.assign/node_modules/es-abstract/2016/GetIterator.js deleted file mode 100644 index 7beddacc0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/GetMethod.js b/node_modules/object.assign/node_modules/es-abstract/2016/GetMethod.js deleted file mode 100644 index aef8cbc4a7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/GetOwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/2016/GetOwnPropertyKeys.js deleted file mode 100644 index 8d7e5eee5a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js deleted file mode 100644 index 62da8fb5f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/GetSubstitution.js b/node_modules/object.assign/node_modules/es-abstract/2016/GetSubstitution.js deleted file mode 100644 index 6497aaed4d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/GetSubstitution.js +++ /dev/null @@ -1,104 +0,0 @@ - -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $parseInt = GetIntrinsic('%parseInt%'); - -var inspect = require('object-inspect'); - -var regexTester = require('../helpers/regexTester'); -var callBound = require('../helpers/callBound'); -var every = require('../helpers/every'); - -var isDigit = regexTester(/^[0-9]$/); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); - -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/GetV.js b/node_modules/object.assign/node_modules/es-abstract/2016/GetV.js deleted file mode 100644 index 7b5139aceb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/HasOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/HasOwnProperty.js deleted file mode 100644 index 679059f2e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/HasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/HasProperty.js deleted file mode 100644 index 5f2d2122ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/2016/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/InstanceofOperator.js b/node_modules/object.assign/node_modules/es-abstract/2016/InstanceofOperator.js deleted file mode 100644 index ebd308c4b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/Invoke.js b/node_modules/object.assign/node_modules/es-abstract/2016/Invoke.js deleted file mode 100644 index 769f0e3082..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/Invoke.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $arraySlice = require('../helpers/callBound')('Array.prototype.slice'); - -var Call = require('./Call'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = $arraySlice(arguments, 2); - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsAccessorDescriptor.js deleted file mode 100644 index 5139464626..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsArray.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsArray.js deleted file mode 100644 index 7b25f37b52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsConcatSpreadable.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsConcatSpreadable.js deleted file mode 100644 index dc8aae1e6f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsConstructor.js deleted file mode 100644 index 8ba9fe55bd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsDataDescriptor.js deleted file mode 100644 index 0ad3045854..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsExtensible.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsExtensible.js deleted file mode 100644 index 0c4c8a60c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsGenericDescriptor.js deleted file mode 100644 index 8618ce4143..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsInteger.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsInteger.js deleted file mode 100644 index e9bc8424e5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsPromise.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsPromise.js deleted file mode 100644 index e8e92a2b88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsPropertyDescriptor.js deleted file mode 100644 index 2a96c637b5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsPropertyDescriptor.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsPropertyKey.js deleted file mode 100644 index 74b8d95d43..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IsRegExp.js b/node_modules/object.assign/node_modules/es-abstract/2016/IsRegExp.js deleted file mode 100644 index fdf2323ff9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IterableToArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2016/IterableToArrayLike.js deleted file mode 100644 index 885cade8f4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IterableToArrayLike.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var GetIterator = require('./GetIterator'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); -var ES = { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type -}; - -// https://www.ecma-international.org/ecma-262/7.0/#sec-iterabletoarraylike -/** - * 1. Let usingIterator be ? GetMethod(items, @@iterator). - * 2. If usingIterator is not undefined, then - * 1. Let iterator be ? GetIterator(items, usingIterator). - * 2. Let values be a new empty List. - * 3. Let next be true. - * 4. Repeat, while next is not false - * 1. Let next be ? IteratorStep(iterator). - * 2. If next is not false, then - * 1. Let nextValue be ? IteratorValue(next). - * 2. Append nextValue to the end of the List values. - * 5. Return CreateArrayFromList(values). - * 3. NOTE: items is not an Iterable so assume it is already an array-like object. - * 4. Return ! ToObject(items). - */ - -module.exports = function IterableToArrayLike(items) { - var usingIterator = getIteratorMethod(ES, items); - if (typeof usingIterator !== 'undefined') { - var iterator = GetIterator(items, usingIterator); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; - } - - return ToObject(items); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorClose.js b/node_modules/object.assign/node_modules/es-abstract/2016/IteratorClose.js deleted file mode 100644 index 35c8c2bea1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorComplete.js b/node_modules/object.assign/node_modules/es-abstract/2016/IteratorComplete.js deleted file mode 100644 index a62b9bfc1f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorNext.js b/node_modules/object.assign/node_modules/es-abstract/2016/IteratorNext.js deleted file mode 100644 index 7e59915614..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorStep.js b/node_modules/object.assign/node_modules/es-abstract/2016/IteratorStep.js deleted file mode 100644 index 41b9d1b251..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorValue.js b/node_modules/object.assign/node_modules/es-abstract/2016/IteratorValue.js deleted file mode 100644 index 5e71a44637..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/2016/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/2016/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ObjectCreate.js b/node_modules/object.assign/node_modules/es-abstract/2016/ObjectCreate.js deleted file mode 100644 index e2445b0229..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e390a600af..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 59780b3bb1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js deleted file mode 100644 index b9882e5dc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js deleted file mode 100644 index 344077a400..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryHasInstance.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryHasInstance.js deleted file mode 100644 index 51abe26d50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryHasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryHasProperty.js deleted file mode 100644 index 076c25ac5e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js deleted file mode 100644 index 3541331cae..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/QuoteJSONString.js b/node_modules/object.assign/node_modules/es-abstract/2016/QuoteJSONString.js deleted file mode 100644 index 5c2d6f05e4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/QuoteJSONString.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-quotejsonstring - -var escapes = { - '\u0008': 'b', - '\u000C': 'f', - '\u000A': 'n', - '\u000D': 'r', - '\u0009': 't' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (C === '"' || C === '\\') { - product += '\u005C' + C; - } else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') { - var abbrev = escapes[C]; - product += '\u005C' + abbrev; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20) { - product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4)); - } else { - product += C; - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/RegExpExec.js b/node_modules/object.assign/node_modules/es-abstract/2016/RegExpExec.js deleted file mode 100644 index 15c91867d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('../helpers/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/RequireObjectCoercible.js b/node_modules/object.assign/node_modules/es-abstract/2016/RequireObjectCoercible.js deleted file mode 100644 index 9008359db8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/2016/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SameValueNonNumber.js b/node_modules/object.assign/node_modules/es-abstract/2016/SameValueNonNumber.js deleted file mode 100644 index 5668752e3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://www.ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SameValueZero.js b/node_modules/object.assign/node_modules/es-abstract/2016/SameValueZero.js deleted file mode 100644 index 0dedcd2c3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/Set.js b/node_modules/object.assign/node_modules/es-abstract/2016/Set.js deleted file mode 100644 index 9545b1325a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SetFunctionName.js b/node_modules/object.assign/node_modules/es-abstract/2016/SetFunctionName.js deleted file mode 100644 index f93324a732..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SetIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2016/SetIntegrityLevel.js deleted file mode 100644 index 3d5c81d562..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SpeciesConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2016/SpeciesConstructor.js deleted file mode 100644 index 3cdcd747d6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2016/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/SymbolDescriptiveString.js b/node_modules/object.assign/node_modules/es-abstract/2016/SymbolDescriptiveString.js deleted file mode 100644 index 7bd8191ad7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/TestIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2016/TestIntegrityLevel.js deleted file mode 100644 index 7a57397d59..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/2016/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2016/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/2016/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToDateString.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToDateString.js deleted file mode 100644 index 7a6d4c4e9d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToInt16.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToInt16.js deleted file mode 100644 index 5a112c237a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToInt8.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToInt8.js deleted file mode 100644 index d103123a91..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToInteger.js deleted file mode 100644 index 16f7db9c36..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToLength.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToLength.js deleted file mode 100644 index 1bef9bed7b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToNumber.js deleted file mode 100644 index 7a3cdc89eb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToObject.js deleted file mode 100644 index 50d5b94a45..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToPrimitive.js deleted file mode 100644 index 81c655d41a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToPropertyKey.js deleted file mode 100644 index 38f40dd80f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToString.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToString.js deleted file mode 100644 index a34543126b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint8.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToUint8.js deleted file mode 100644 index 2dfd97cb34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint8Clamp.js b/node_modules/object.assign/node_modules/es-abstract/2016/ToUint8Clamp.js deleted file mode 100644 index 95fcc39282..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/Type.js b/node_modules/object.assign/node_modules/es-abstract/2016/Type.js deleted file mode 100644 index 0bd11659c2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/UTF16Encoding.js b/node_modules/object.assign/node_modules/es-abstract/2016/UTF16Encoding.js deleted file mode 100644 index 7cedbb20f7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/UTF16Encoding.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (typeof cp !== 'number' || cp < 0 || cp > 0x10FFFF) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return cp; - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index d4b900700b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://www.ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/2016/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/abs.js b/node_modules/object.assign/node_modules/es-abstract/2016/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/floor.js b/node_modules/object.assign/node_modules/es-abstract/2016/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/modulo.js b/node_modules/object.assign/node_modules/es-abstract/2016/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2016/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/thisBooleanValue.js b/node_modules/object.assign/node_modules/es-abstract/2016/thisBooleanValue.js deleted file mode 100644 index 3ffac9cdf2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('../helpers/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/thisNumberValue.js b/node_modules/object.assign/node_modules/es-abstract/2016/thisNumberValue.js deleted file mode 100644 index 0345e523f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/thisStringValue.js b/node_modules/object.assign/node_modules/es-abstract/2016/thisStringValue.js deleted file mode 100644 index 3b99b6e3ca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('../helpers/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2016/thisTimeValue.js b/node_modules/object.assign/node_modules/es-abstract/2016/thisTimeValue.js deleted file mode 100644 index d7cda28c90..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2016/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('../helpers/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2017/AbstractEqualityComparison.js deleted file mode 100644 index 40b3909868..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/2017/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/AdvanceStringIndex.js b/node_modules/object.assign/node_modules/es-abstract/2017/AdvanceStringIndex.js deleted file mode 100644 index 69dae1b7c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('../helpers/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ArrayCreate.js b/node_modules/object.assign/node_modules/es-abstract/2017/ArrayCreate.js deleted file mode 100644 index fc9a7cf82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ArraySetLength.js b/node_modules/object.assign/node_modules/es-abstract/2017/ArraySetLength.js deleted file mode 100644 index c9134c6e6a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ArraySpeciesCreate.js b/node_modules/object.assign/node_modules/es-abstract/2017/ArraySpeciesCreate.js deleted file mode 100644 index 98b9b561d0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/Call.js b/node_modules/object.assign/node_modules/es-abstract/2017/Call.js deleted file mode 100644 index f0f0451741..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/Call.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - return $apply(F, V, args); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CanonicalNumericIndexString.js b/node_modules/object.assign/node_modules/es-abstract/2017/CanonicalNumericIndexString.js deleted file mode 100644 index 625f8539ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CompletePropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf415a3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CreateDataProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/CreateDataProperty.js deleted file mode 100644 index 32a86ef047..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js deleted file mode 100644 index 9feaec8d8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CreateHTML.js b/node_modules/object.assign/node_modules/es-abstract/2017/CreateHTML.js deleted file mode 100644 index 536c92db87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CreateIterResultObject.js b/node_modules/object.assign/node_modules/es-abstract/2017/CreateIterResultObject.js deleted file mode 100644 index aef1d2200e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CreateListFromArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2017/CreateListFromArrayLike.js deleted file mode 100644 index d6b44b5dcf..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/CreateMethodProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/CreateMethodProperty.js deleted file mode 100644 index 5b599aea1e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/Day.js b/node_modules/object.assign/node_modules/es-abstract/2017/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2017/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/2017/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/2017/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/DefinePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2017/DefinePropertyOrThrow.js deleted file mode 100644 index 7977f6e182..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/DeletePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2017/DeletePropertyOrThrow.js deleted file mode 100644 index b47681797b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/EnumerableOwnProperties.js b/node_modules/object.assign/node_modules/es-abstract/2017/EnumerableOwnProperties.js deleted file mode 100644 index e2ed7226cb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/EnumerableOwnProperties.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('../helpers/callBound'); - -var callBind = require('../helpers/callBind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/FromPropertyDescriptor.js deleted file mode 100644 index 5ec200edb2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/Get.js b/node_modules/object.assign/node_modules/es-abstract/2017/Get.js deleted file mode 100644 index 5b9ad78603..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/GetIterator.js b/node_modules/object.assign/node_modules/es-abstract/2017/GetIterator.js deleted file mode 100644 index 7beddacc0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/GetMethod.js b/node_modules/object.assign/node_modules/es-abstract/2017/GetMethod.js deleted file mode 100644 index aef8cbc4a7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/GetOwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/2017/GetOwnPropertyKeys.js deleted file mode 100644 index 8d7e5eee5a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js deleted file mode 100644 index 62da8fb5f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/GetSubstitution.js b/node_modules/object.assign/node_modules/es-abstract/2017/GetSubstitution.js deleted file mode 100644 index 6497aaed4d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/GetSubstitution.js +++ /dev/null @@ -1,104 +0,0 @@ - -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $parseInt = GetIntrinsic('%parseInt%'); - -var inspect = require('object-inspect'); - -var regexTester = require('../helpers/regexTester'); -var callBound = require('../helpers/callBound'); -var every = require('../helpers/every'); - -var isDigit = regexTester(/^[0-9]$/); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); - -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/GetV.js b/node_modules/object.assign/node_modules/es-abstract/2017/GetV.js deleted file mode 100644 index 7b5139aceb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/HasOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/HasOwnProperty.js deleted file mode 100644 index 679059f2e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/HasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/HasProperty.js deleted file mode 100644 index 5f2d2122ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/2017/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/InstanceofOperator.js b/node_modules/object.assign/node_modules/es-abstract/2017/InstanceofOperator.js deleted file mode 100644 index ebd308c4b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/Invoke.js b/node_modules/object.assign/node_modules/es-abstract/2017/Invoke.js deleted file mode 100644 index 769f0e3082..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/Invoke.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $arraySlice = require('../helpers/callBound')('Array.prototype.slice'); - -var Call = require('./Call'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = $arraySlice(arguments, 2); - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsAccessorDescriptor.js deleted file mode 100644 index 5139464626..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsArray.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsArray.js deleted file mode 100644 index 7b25f37b52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsConcatSpreadable.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsConcatSpreadable.js deleted file mode 100644 index dc8aae1e6f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsConstructor.js deleted file mode 100644 index 8ba9fe55bd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsDataDescriptor.js deleted file mode 100644 index 0ad3045854..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsExtensible.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsExtensible.js deleted file mode 100644 index 0c4c8a60c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsGenericDescriptor.js deleted file mode 100644 index 8618ce4143..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsInteger.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsInteger.js deleted file mode 100644 index e9bc8424e5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsPromise.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsPromise.js deleted file mode 100644 index e8e92a2b88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsPropertyDescriptor.js deleted file mode 100644 index 2a96c637b5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsPropertyDescriptor.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsPropertyKey.js deleted file mode 100644 index 74b8d95d43..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IsRegExp.js b/node_modules/object.assign/node_modules/es-abstract/2017/IsRegExp.js deleted file mode 100644 index fdf2323ff9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IterableToList.js b/node_modules/object.assign/node_modules/es-abstract/2017/IterableToList.js deleted file mode 100644 index 0b8cdcfe34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorClose.js b/node_modules/object.assign/node_modules/es-abstract/2017/IteratorClose.js deleted file mode 100644 index 35c8c2bea1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorComplete.js b/node_modules/object.assign/node_modules/es-abstract/2017/IteratorComplete.js deleted file mode 100644 index a62b9bfc1f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorNext.js b/node_modules/object.assign/node_modules/es-abstract/2017/IteratorNext.js deleted file mode 100644 index 7e59915614..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorStep.js b/node_modules/object.assign/node_modules/es-abstract/2017/IteratorStep.js deleted file mode 100644 index 41b9d1b251..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorValue.js b/node_modules/object.assign/node_modules/es-abstract/2017/IteratorValue.js deleted file mode 100644 index 5e71a44637..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/2017/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/2017/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ObjectCreate.js b/node_modules/object.assign/node_modules/es-abstract/2017/ObjectCreate.js deleted file mode 100644 index e2445b0229..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e390a600af..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 59780b3bb1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js deleted file mode 100644 index b9882e5dc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js deleted file mode 100644 index 344077a400..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryHasInstance.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryHasInstance.js deleted file mode 100644 index 51abe26d50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryHasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryHasProperty.js deleted file mode 100644 index 076c25ac5e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js deleted file mode 100644 index 3541331cae..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/QuoteJSONString.js b/node_modules/object.assign/node_modules/es-abstract/2017/QuoteJSONString.js deleted file mode 100644 index 5c2d6f05e4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/QuoteJSONString.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-quotejsonstring - -var escapes = { - '\u0008': 'b', - '\u000C': 'f', - '\u000A': 'n', - '\u000D': 'r', - '\u0009': 't' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (C === '"' || C === '\\') { - product += '\u005C' + C; - } else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') { - var abbrev = escapes[C]; - product += '\u005C' + abbrev; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20) { - product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4)); - } else { - product += C; - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/RegExpExec.js b/node_modules/object.assign/node_modules/es-abstract/2017/RegExpExec.js deleted file mode 100644 index 15c91867d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('../helpers/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/RequireObjectCoercible.js b/node_modules/object.assign/node_modules/es-abstract/2017/RequireObjectCoercible.js deleted file mode 100644 index 9008359db8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/2017/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SameValueNonNumber.js b/node_modules/object.assign/node_modules/es-abstract/2017/SameValueNonNumber.js deleted file mode 100644 index 5668752e3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://www.ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SameValueZero.js b/node_modules/object.assign/node_modules/es-abstract/2017/SameValueZero.js deleted file mode 100644 index 0dedcd2c3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/Set.js b/node_modules/object.assign/node_modules/es-abstract/2017/Set.js deleted file mode 100644 index 9545b1325a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SetFunctionName.js b/node_modules/object.assign/node_modules/es-abstract/2017/SetFunctionName.js deleted file mode 100644 index f93324a732..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SetIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2017/SetIntegrityLevel.js deleted file mode 100644 index 3d5c81d562..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SpeciesConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2017/SpeciesConstructor.js deleted file mode 100644 index 3cdcd747d6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2017/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/StringGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2017/StringGetOwnProperty.js deleted file mode 100644 index f8db320e20..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://ecma-international.org/ecma-262/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/SymbolDescriptiveString.js b/node_modules/object.assign/node_modules/es-abstract/2017/SymbolDescriptiveString.js deleted file mode 100644 index 7bd8191ad7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/TestIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2017/TestIntegrityLevel.js deleted file mode 100644 index 7a57397d59..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/2017/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2017/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/2017/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToDateString.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToDateString.js deleted file mode 100644 index 7a6d4c4e9d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToIndex.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToIndex.js deleted file mode 100644 index a55398d3e2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToInt16.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToInt16.js deleted file mode 100644 index 5a112c237a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToInt8.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToInt8.js deleted file mode 100644 index d103123a91..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToInteger.js deleted file mode 100644 index 16f7db9c36..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToLength.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToLength.js deleted file mode 100644 index 1bef9bed7b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToNumber.js deleted file mode 100644 index 7a3cdc89eb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToObject.js deleted file mode 100644 index 50d5b94a45..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToPrimitive.js deleted file mode 100644 index 81c655d41a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToPropertyKey.js deleted file mode 100644 index 38f40dd80f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToString.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToString.js deleted file mode 100644 index a34543126b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint8.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToUint8.js deleted file mode 100644 index 2dfd97cb34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint8Clamp.js b/node_modules/object.assign/node_modules/es-abstract/2017/ToUint8Clamp.js deleted file mode 100644 index 95fcc39282..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/Type.js b/node_modules/object.assign/node_modules/es-abstract/2017/Type.js deleted file mode 100644 index 0bd11659c2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/UTF16Encoding.js b/node_modules/object.assign/node_modules/es-abstract/2017/UTF16Encoding.js deleted file mode 100644 index 7cedbb20f7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/UTF16Encoding.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (typeof cp !== 'number' || cp < 0 || cp > 0x10FFFF) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return cp; - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index d4b900700b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://www.ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/2017/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/abs.js b/node_modules/object.assign/node_modules/es-abstract/2017/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/floor.js b/node_modules/object.assign/node_modules/es-abstract/2017/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/modulo.js b/node_modules/object.assign/node_modules/es-abstract/2017/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2017/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/thisBooleanValue.js b/node_modules/object.assign/node_modules/es-abstract/2017/thisBooleanValue.js deleted file mode 100644 index 3ffac9cdf2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('../helpers/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/thisNumberValue.js b/node_modules/object.assign/node_modules/es-abstract/2017/thisNumberValue.js deleted file mode 100644 index 0345e523f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/thisStringValue.js b/node_modules/object.assign/node_modules/es-abstract/2017/thisStringValue.js deleted file mode 100644 index 3b99b6e3ca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('../helpers/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2017/thisTimeValue.js b/node_modules/object.assign/node_modules/es-abstract/2017/thisTimeValue.js deleted file mode 100644 index d7cda28c90..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2017/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('../helpers/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2018/AbstractEqualityComparison.js deleted file mode 100644 index 40b3909868..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/2018/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/AdvanceStringIndex.js b/node_modules/object.assign/node_modules/es-abstract/2018/AdvanceStringIndex.js deleted file mode 100644 index 69dae1b7c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('../helpers/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ArrayCreate.js b/node_modules/object.assign/node_modules/es-abstract/2018/ArrayCreate.js deleted file mode 100644 index fc9a7cf82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ArraySetLength.js b/node_modules/object.assign/node_modules/es-abstract/2018/ArraySetLength.js deleted file mode 100644 index c9134c6e6a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ArraySpeciesCreate.js b/node_modules/object.assign/node_modules/es-abstract/2018/ArraySpeciesCreate.js deleted file mode 100644 index 98b9b561d0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/Call.js b/node_modules/object.assign/node_modules/es-abstract/2018/Call.js deleted file mode 100644 index f0f0451741..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/Call.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - return $apply(F, V, args); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CanonicalNumericIndexString.js b/node_modules/object.assign/node_modules/es-abstract/2018/CanonicalNumericIndexString.js deleted file mode 100644 index 625f8539ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CompletePropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf415a3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CopyDataProperties.js b/node_modules/object.assign/node_modules/es-abstract/2018/CopyDataProperties.js deleted file mode 100644 index 402de282d7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CopyDataProperties.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); -var OwnPropertyKeys = require('../helpers/OwnPropertyKeys'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var CreateDataProperty = require('./CreateDataProperty'); -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-copydataproperties - -module.exports = function CopyDataProperties(target, source, excludedItems) { - if (Type(target) !== 'Object') { - throw new $TypeError('Assertion failed: "target" must be an Object'); - } - - if (!IsArray(excludedItems)) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - for (var i = 0; i < excludedItems.length; i += 1) { - if (!IsPropertyKey(excludedItems[i])) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - } - - if (typeof source === 'undefined' || source === null) { - return target; - } - - var fromObj = ToObject(source); - - var sourceKeys = OwnPropertyKeys(fromObj); - forEach(sourceKeys, function (nextKey) { - var excluded = false; - - forEach(excludedItems, function (e) { - if (SameValue(e, nextKey) === true) { - excluded = true; - } - }); - - var enumerable = $isEnumerable(fromObj, nextKey) || ( - // this is to handle string keys being non-enumerable in older engines - typeof source === 'string' - && nextKey >= 0 - && IsInteger(ToNumber(nextKey)) - ); - if (excluded === false && enumerable) { - var propValue = Get(fromObj, nextKey); - CreateDataProperty(target, nextKey, propValue); - } - }); - - return target; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CreateDataProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/CreateDataProperty.js deleted file mode 100644 index 32a86ef047..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js deleted file mode 100644 index 9feaec8d8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CreateHTML.js b/node_modules/object.assign/node_modules/es-abstract/2018/CreateHTML.js deleted file mode 100644 index 536c92db87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CreateIterResultObject.js b/node_modules/object.assign/node_modules/es-abstract/2018/CreateIterResultObject.js deleted file mode 100644 index aef1d2200e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CreateListFromArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2018/CreateListFromArrayLike.js deleted file mode 100644 index d6b44b5dcf..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/CreateMethodProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/CreateMethodProperty.js deleted file mode 100644 index 5b599aea1e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DateString.js b/node_modules/object.assign/node_modules/es-abstract/2018/DateString.js deleted file mode 100644 index fc30329060..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DateString.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var Type = require('./Type'); -var WeekDay = require('./WeekDay'); -var MonthFromTime = require('./MonthFromTime'); -var YearFromTime = require('./YearFromTime'); -var DateFromTime = require('./DateFromTime'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-datestring - -module.exports = function DateString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var weekday = weekdays[WeekDay(tv)]; - var month = months[MonthFromTime(tv)]; - var day = padTimeComponent(DateFromTime(tv)); - var year = padTimeComponent(YearFromTime(tv), 4); - return weekday + '\x20' + month + '\x20' + day + '\x20' + year; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/Day.js b/node_modules/object.assign/node_modules/es-abstract/2018/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2018/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/2018/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/2018/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DefinePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2018/DefinePropertyOrThrow.js deleted file mode 100644 index 7977f6e182..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/DeletePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2018/DeletePropertyOrThrow.js deleted file mode 100644 index b47681797b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js b/node_modules/object.assign/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js deleted file mode 100644 index e2ed7226cb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('../helpers/callBound'); - -var callBind = require('../helpers/callBind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/FromPropertyDescriptor.js deleted file mode 100644 index 5ec200edb2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/Get.js b/node_modules/object.assign/node_modules/es-abstract/2018/Get.js deleted file mode 100644 index 5b9ad78603..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/GetIterator.js b/node_modules/object.assign/node_modules/es-abstract/2018/GetIterator.js deleted file mode 100644 index 7beddacc0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/GetMethod.js b/node_modules/object.assign/node_modules/es-abstract/2018/GetMethod.js deleted file mode 100644 index aef8cbc4a7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/GetOwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/2018/GetOwnPropertyKeys.js deleted file mode 100644 index 8d7e5eee5a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js deleted file mode 100644 index 62da8fb5f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/GetSubstitution.js b/node_modules/object.assign/node_modules/es-abstract/2018/GetSubstitution.js deleted file mode 100644 index cc72b39e68..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/GetSubstitution.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var every = require('../helpers/every'); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); -var $indexOf = callBound('String.prototype.indexOf'); -var $parseInt = parseInt; - -var isDigit = regexTester(/^[0-9]$/); - -var inspect = require('object-inspect'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var ToObject = require('./ToObject'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// http://www.ecma-international.org/ecma-262/9.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - if (Type(namedCaptures) !== 'Undefined') { - namedCaptures = ToObject(namedCaptures); // eslint-disable-line no-param-reassign - } - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else if (next === '<') { - // eslint-disable-next-line max-depth - if (Type(namedCaptures) === 'Undefined') { - result += '$<'; - i += 2; - } else { - var endIndex = $indexOf(replacement, '>', i); - // eslint-disable-next-line max-depth - if (endIndex > -1) { - var groupName = $strSlice(replacement, i, endIndex); - var capture = Get(namedCaptures, groupName); - // eslint-disable-next-line max-depth - if (Type(capture) !== 'Undefined') { - result += ToString(capture); - } - i += '$<' + groupName + '>'.length; - } - } - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/GetV.js b/node_modules/object.assign/node_modules/es-abstract/2018/GetV.js deleted file mode 100644 index 7b5139aceb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/HasOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/HasOwnProperty.js deleted file mode 100644 index 679059f2e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/HasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/HasProperty.js deleted file mode 100644 index 5f2d2122ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/2018/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/InstanceofOperator.js b/node_modules/object.assign/node_modules/es-abstract/2018/InstanceofOperator.js deleted file mode 100644 index ebd308c4b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/Invoke.js b/node_modules/object.assign/node_modules/es-abstract/2018/Invoke.js deleted file mode 100644 index 769f0e3082..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/Invoke.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $arraySlice = require('../helpers/callBound')('Array.prototype.slice'); - -var Call = require('./Call'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = $arraySlice(arguments, 2); - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsAccessorDescriptor.js deleted file mode 100644 index 5139464626..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsArray.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsArray.js deleted file mode 100644 index 7b25f37b52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsConcatSpreadable.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsConcatSpreadable.js deleted file mode 100644 index dc8aae1e6f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsConstructor.js deleted file mode 100644 index 8ba9fe55bd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsDataDescriptor.js deleted file mode 100644 index 0ad3045854..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsExtensible.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsExtensible.js deleted file mode 100644 index 0c4c8a60c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsGenericDescriptor.js deleted file mode 100644 index 8618ce4143..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsInteger.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsInteger.js deleted file mode 100644 index e9bc8424e5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsPromise.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsPromise.js deleted file mode 100644 index e8e92a2b88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsPropertyKey.js deleted file mode 100644 index 74b8d95d43..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsRegExp.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsRegExp.js deleted file mode 100644 index fdf2323ff9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IsStringPrefix.js b/node_modules/object.assign/node_modules/es-abstract/2018/IsStringPrefix.js deleted file mode 100644 index f5e2996237..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IsStringPrefix.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPrefixOf = require('../helpers/isPrefixOf'); - -// var callBound = require('../helpers/callBound'); - -// var $charAt = callBound('String.prototype.charAt'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-isstringprefix - -module.exports = function IsStringPrefix(p, q) { - if (Type(p) !== 'String') { - throw new $TypeError('Assertion failed: "p" must be a String'); - } - - if (Type(q) !== 'String') { - throw new $TypeError('Assertion failed: "q" must be a String'); - } - - return isPrefixOf(p, q); - /* - if (p === q || p === '') { - return true; - } - - var pLength = p.length; - var qLength = q.length; - if (pLength >= qLength) { - return false; - } - - // assert: pLength < qLength - - for (var i = 0; i < pLength; i += 1) { - if ($charAt(p, i) !== $charAt(q, i)) { - return false; - } - } - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IterableToList.js b/node_modules/object.assign/node_modules/es-abstract/2018/IterableToList.js deleted file mode 100644 index 0b8cdcfe34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorClose.js b/node_modules/object.assign/node_modules/es-abstract/2018/IteratorClose.js deleted file mode 100644 index 35c8c2bea1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorComplete.js b/node_modules/object.assign/node_modules/es-abstract/2018/IteratorComplete.js deleted file mode 100644 index a62b9bfc1f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorNext.js b/node_modules/object.assign/node_modules/es-abstract/2018/IteratorNext.js deleted file mode 100644 index 7e59915614..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorStep.js b/node_modules/object.assign/node_modules/es-abstract/2018/IteratorStep.js deleted file mode 100644 index 41b9d1b251..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/IteratorValue.js deleted file mode 100644 index 5e71a44637..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/2018/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/2018/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/NumberToString.js b/node_modules/object.assign/node_modules/es-abstract/2018/NumberToString.js deleted file mode 100644 index 741727c41b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/NumberToString.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-tostring-applied-to-the-number-type - -module.exports = function NumberToString(m) { - if (Type(m) !== 'Number') { - throw new $TypeError('Assertion failed: "m" must be a String'); - } - - return $String(m); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ObjectCreate.js b/node_modules/object.assign/node_modules/es-abstract/2018/ObjectCreate.js deleted file mode 100644 index e2445b0229..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e390a600af..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 59780b3bb1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js deleted file mode 100644 index b9882e5dc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js deleted file mode 100644 index 344077a400..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryHasInstance.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryHasInstance.js deleted file mode 100644 index 51abe26d50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryHasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryHasProperty.js deleted file mode 100644 index 076c25ac5e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js deleted file mode 100644 index 3541331cae..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/PromiseResolve.js b/node_modules/object.assign/node_modules/es-abstract/2018/PromiseResolve.js deleted file mode 100644 index f70745df7f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/PromiseResolve.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseResolve = callBound('Promise.resolve', true); - -// https://ecma-international.org/ecma-262/9.0/#sec-promise-resolve - -module.exports = function PromiseResolve(C, x) { - if (!$PromiseResolve) { - throw new SyntaxError('This environment does not support Promises.'); - } - return $PromiseResolve(C, x); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/QuoteJSONString.js b/node_modules/object.assign/node_modules/es-abstract/2018/QuoteJSONString.js deleted file mode 100644 index 26133dcc52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/QuoteJSONString.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); -var UnicodeEscape = require('./UnicodeEscape'); - -var has = require('has'); - -// https://ecma-international.org/ecma-262/9.0/#sec-quotejsonstring - -var escapes = { - '\u0008': '\\b', - '\u0009': '\\t', - '\u000A': '\\n', - '\u000C': '\\f', - '\u000D': '\\r', - '\u0022': '\\"', - '\u005c': '\\\\' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (has(escapes, C)) { - product += escapes[C]; - } else if ($charCodeAt(C, 0) < 0x20) { - product += UnicodeEscape(C); - } else { - product += C; - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/RegExpExec.js b/node_modules/object.assign/node_modules/es-abstract/2018/RegExpExec.js deleted file mode 100644 index 15c91867d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('../helpers/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/RequireObjectCoercible.js b/node_modules/object.assign/node_modules/es-abstract/2018/RequireObjectCoercible.js deleted file mode 100644 index 9008359db8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SameValueNonNumber.js b/node_modules/object.assign/node_modules/es-abstract/2018/SameValueNonNumber.js deleted file mode 100644 index 5668752e3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://www.ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SameValueZero.js b/node_modules/object.assign/node_modules/es-abstract/2018/SameValueZero.js deleted file mode 100644 index 0dedcd2c3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/Set.js b/node_modules/object.assign/node_modules/es-abstract/2018/Set.js deleted file mode 100644 index 9545b1325a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SetFunctionLength.js b/node_modules/object.assign/node_modules/es-abstract/2018/SetFunctionLength.js deleted file mode 100644 index cb24496557..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SetFunctionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var HasOwnProperty = require('./HasOwnProperty'); -var IsExtensible = require('./IsExtensible'); -var ToInteger = require('./ToInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/9.0/#sec-setfunctionlength - -module.exports = function SetFunctionLength(F, length) { - if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { - throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); - } - if (Type(length) !== 'Number') { - throw new $TypeError('Assertion failed: `length` must be a Number'); - } - if (length < 0 || ToInteger(length) !== length) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0'); - } - return DefinePropertyOrThrow(F, 'length', { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SetFunctionName.js b/node_modules/object.assign/node_modules/es-abstract/2018/SetFunctionName.js deleted file mode 100644 index f93324a732..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SetIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2018/SetIntegrityLevel.js deleted file mode 100644 index 3d5c81d562..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SpeciesConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2018/SpeciesConstructor.js deleted file mode 100644 index 3cdcd747d6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2018/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/StringGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2018/StringGetOwnProperty.js deleted file mode 100644 index f8db320e20..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://ecma-international.org/ecma-262/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/SymbolDescriptiveString.js b/node_modules/object.assign/node_modules/es-abstract/2018/SymbolDescriptiveString.js deleted file mode 100644 index 7bd8191ad7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/TestIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2018/TestIntegrityLevel.js deleted file mode 100644 index 7a57397d59..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/2018/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2018/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/TimeString.js b/node_modules/object.assign/node_modules/es-abstract/2018/TimeString.js deleted file mode 100644 index 87642eb549..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/TimeString.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var HourFromTime = require('./HourFromTime'); -var MinFromTime = require('./MinFromTime'); -var SecFromTime = require('./SecFromTime'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-timestring - -module.exports = function TimeString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var hour = HourFromTime(tv); - var minute = MinFromTime(tv); - var second = SecFromTime(tv); - return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/2018/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToDateString.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToDateString.js deleted file mode 100644 index 7a6d4c4e9d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToIndex.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToIndex.js deleted file mode 100644 index a55398d3e2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToInt16.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToInt16.js deleted file mode 100644 index 5a112c237a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToInt8.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToInt8.js deleted file mode 100644 index d103123a91..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToInteger.js deleted file mode 100644 index 16f7db9c36..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToLength.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToLength.js deleted file mode 100644 index 1bef9bed7b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToNumber.js deleted file mode 100644 index 7a3cdc89eb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToObject.js deleted file mode 100644 index 50d5b94a45..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToPrimitive.js deleted file mode 100644 index 81c655d41a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToPropertyKey.js deleted file mode 100644 index 38f40dd80f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToString.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToString.js deleted file mode 100644 index a34543126b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint8.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToUint8.js deleted file mode 100644 index 2dfd97cb34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint8Clamp.js b/node_modules/object.assign/node_modules/es-abstract/2018/ToUint8Clamp.js deleted file mode 100644 index 95fcc39282..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/Type.js b/node_modules/object.assign/node_modules/es-abstract/2018/Type.js deleted file mode 100644 index 0bd11659c2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/UTF16Encoding.js b/node_modules/object.assign/node_modules/es-abstract/2018/UTF16Encoding.js deleted file mode 100644 index 7cedbb20f7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/UTF16Encoding.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (typeof cp !== 'number' || cp < 0 || cp > 0x10FFFF) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return cp; - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/UnicodeEscape.js b/node_modules/object.assign/node_modules/es-abstract/2018/UnicodeEscape.js deleted file mode 100644 index aeca437ea0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/UnicodeEscape.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); - -// https://tc39.es/ecma262/2020/#sec-unicodeescape - -module.exports = function UnicodeEscape(C) { - if (typeof C !== 'string' || C.length !== 1) { - throw new $TypeError('Assertion failed: `C` must be a single code unit'); - } - var n = $charCodeAt(C, 0); - if (n > 0xFFFF) { - throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); - } - - return '\\u' + $strSlice('0000' + $toLowerCase($numberToString(n, 16)), -4); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index d4b900700b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://www.ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/2018/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/abs.js b/node_modules/object.assign/node_modules/es-abstract/2018/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/floor.js b/node_modules/object.assign/node_modules/es-abstract/2018/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/modulo.js b/node_modules/object.assign/node_modules/es-abstract/2018/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2018/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/thisBooleanValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/thisBooleanValue.js deleted file mode 100644 index 3ffac9cdf2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('../helpers/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/thisNumberValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/thisNumberValue.js deleted file mode 100644 index 0345e523f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/thisStringValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/thisStringValue.js deleted file mode 100644 index 3b99b6e3ca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('../helpers/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/thisSymbolValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/thisSymbolValue.js deleted file mode 100644 index 3c3b3475d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/thisSymbolValue.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue - -module.exports = function thisSymbolValue(value) { - if (!$SymbolValueOf) { - throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); - } - if (Type(value) === 'Symbol') { - return value; - } - return $SymbolValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2018/thisTimeValue.js b/node_modules/object.assign/node_modules/es-abstract/2018/thisTimeValue.js deleted file mode 100644 index d7cda28c90..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2018/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('../helpers/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2019/AbstractEqualityComparison.js deleted file mode 100644 index 40b3909868..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/2019/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/AddEntriesFromIterable.js b/node_modules/object.assign/node_modules/es-abstract/2019/AddEntriesFromIterable.js deleted file mode 100644 index 5aed44753e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/AddEntriesFromIterable.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var inspect = require('object-inspect'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var Get = require('./Get'); -var GetIterator = require('./GetIterator'); -var IsCallable = require('./IsCallable'); -var IteratorClose = require('./IteratorClose'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); -var Type = require('./Type'); - -// https://tc39.es/ecma262/#sec-add-entries-from-iterable - -module.exports = function AddEntriesFromIterable(target, iterable, adder) { - if (!IsCallable(adder)) { - throw new $TypeError('Assertion failed: `adder` is not callable'); - } - if (iterable == null) { - throw new $TypeError('Assertion failed: `iterable` is present, and not nullish'); - } - var iteratorRecord = GetIterator(iterable); - while (true) { // eslint-disable-line no-constant-condition - var next = IteratorStep(iteratorRecord); - if (!next) { - return target; - } - var nextItem = IteratorValue(next); - if (Type(nextItem) !== 'Object') { - var error = new $TypeError('iterator next must return an Object, got ' + inspect(nextItem)); - return IteratorClose( - iteratorRecord, - function () { throw error; } // eslint-disable-line no-loop-func - ); - } - try { - var k = Get(nextItem, '0'); - var v = Get(nextItem, '1'); - Call(adder, target, [k, v]); - } catch (e) { - return IteratorClose( - iteratorRecord, - function () { throw e; } - ); - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/AdvanceStringIndex.js b/node_modules/object.assign/node_modules/es-abstract/2019/AdvanceStringIndex.js deleted file mode 100644 index 69dae1b7c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('../helpers/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ArrayCreate.js b/node_modules/object.assign/node_modules/es-abstract/2019/ArrayCreate.js deleted file mode 100644 index fc9a7cf82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ArraySetLength.js b/node_modules/object.assign/node_modules/es-abstract/2019/ArraySetLength.js deleted file mode 100644 index c9134c6e6a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ArraySpeciesCreate.js b/node_modules/object.assign/node_modules/es-abstract/2019/ArraySpeciesCreate.js deleted file mode 100644 index 98b9b561d0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/Call.js b/node_modules/object.assign/node_modules/es-abstract/2019/Call.js deleted file mode 100644 index f0f0451741..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/Call.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - return $apply(F, V, args); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CanonicalNumericIndexString.js b/node_modules/object.assign/node_modules/es-abstract/2019/CanonicalNumericIndexString.js deleted file mode 100644 index 625f8539ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CompletePropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf415a3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CopyDataProperties.js b/node_modules/object.assign/node_modules/es-abstract/2019/CopyDataProperties.js deleted file mode 100644 index 402de282d7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CopyDataProperties.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); -var OwnPropertyKeys = require('../helpers/OwnPropertyKeys'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var CreateDataProperty = require('./CreateDataProperty'); -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-copydataproperties - -module.exports = function CopyDataProperties(target, source, excludedItems) { - if (Type(target) !== 'Object') { - throw new $TypeError('Assertion failed: "target" must be an Object'); - } - - if (!IsArray(excludedItems)) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - for (var i = 0; i < excludedItems.length; i += 1) { - if (!IsPropertyKey(excludedItems[i])) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - } - - if (typeof source === 'undefined' || source === null) { - return target; - } - - var fromObj = ToObject(source); - - var sourceKeys = OwnPropertyKeys(fromObj); - forEach(sourceKeys, function (nextKey) { - var excluded = false; - - forEach(excludedItems, function (e) { - if (SameValue(e, nextKey) === true) { - excluded = true; - } - }); - - var enumerable = $isEnumerable(fromObj, nextKey) || ( - // this is to handle string keys being non-enumerable in older engines - typeof source === 'string' - && nextKey >= 0 - && IsInteger(ToNumber(nextKey)) - ); - if (excluded === false && enumerable) { - var propValue = Get(fromObj, nextKey); - CreateDataProperty(target, nextKey, propValue); - } - }); - - return target; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CreateDataProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/CreateDataProperty.js deleted file mode 100644 index 32a86ef047..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js deleted file mode 100644 index 9feaec8d8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CreateHTML.js b/node_modules/object.assign/node_modules/es-abstract/2019/CreateHTML.js deleted file mode 100644 index 536c92db87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CreateIterResultObject.js b/node_modules/object.assign/node_modules/es-abstract/2019/CreateIterResultObject.js deleted file mode 100644 index aef1d2200e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CreateListFromArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2019/CreateListFromArrayLike.js deleted file mode 100644 index d6b44b5dcf..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/CreateMethodProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/CreateMethodProperty.js deleted file mode 100644 index 5b599aea1e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DateString.js b/node_modules/object.assign/node_modules/es-abstract/2019/DateString.js deleted file mode 100644 index fc30329060..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DateString.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var Type = require('./Type'); -var WeekDay = require('./WeekDay'); -var MonthFromTime = require('./MonthFromTime'); -var YearFromTime = require('./YearFromTime'); -var DateFromTime = require('./DateFromTime'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-datestring - -module.exports = function DateString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var weekday = weekdays[WeekDay(tv)]; - var month = months[MonthFromTime(tv)]; - var day = padTimeComponent(DateFromTime(tv)); - var year = padTimeComponent(YearFromTime(tv), 4); - return weekday + '\x20' + month + '\x20' + day + '\x20' + year; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/Day.js b/node_modules/object.assign/node_modules/es-abstract/2019/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2019/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/2019/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/2019/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DefinePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2019/DefinePropertyOrThrow.js deleted file mode 100644 index 7977f6e182..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/DeletePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2019/DeletePropertyOrThrow.js deleted file mode 100644 index b47681797b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js b/node_modules/object.assign/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js deleted file mode 100644 index e2ed7226cb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('../helpers/callBound'); - -var callBind = require('../helpers/callBind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/FlattenIntoArray.js b/node_modules/object.assign/node_modules/es-abstract/2019/FlattenIntoArray.js deleted file mode 100644 index 5d6254e796..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/FlattenIntoArray.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var Call = require('./Call'); -var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); -var Get = require('./Get'); -var HasProperty = require('./HasProperty'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/10.0/#sec-flattenintoarray - -// eslint-disable-next-line max-params -module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { - var mapperFunction; - if (arguments.length > 5) { - mapperFunction = arguments[5]; - } - - var targetIndex = start; - var sourceIndex = 0; - while (sourceIndex < sourceLen) { - var P = ToString(sourceIndex); - var exists = HasProperty(source, P); - if (exists === true) { - var element = Get(source, P); - if (typeof mapperFunction !== 'undefined') { - if (arguments.length <= 6) { - throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); - } - element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); - } - var shouldFlatten = false; - if (depth > 0) { - shouldFlatten = IsArray(element); - } - if (shouldFlatten) { - var elementLen = ToLength(Get(element, 'length')); - targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); - } else { - if (targetIndex >= MAX_SAFE_INTEGER) { - throw new $TypeError('index too large'); - } - CreateDataPropertyOrThrow(target, ToString(targetIndex), element); - targetIndex += 1; - } - } - sourceIndex += 1; - } - - return targetIndex; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/FromPropertyDescriptor.js deleted file mode 100644 index 5ec200edb2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/Get.js b/node_modules/object.assign/node_modules/es-abstract/2019/Get.js deleted file mode 100644 index 5b9ad78603..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/GetIterator.js b/node_modules/object.assign/node_modules/es-abstract/2019/GetIterator.js deleted file mode 100644 index 7beddacc0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/GetMethod.js b/node_modules/object.assign/node_modules/es-abstract/2019/GetMethod.js deleted file mode 100644 index aef8cbc4a7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/GetOwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/2019/GetOwnPropertyKeys.js deleted file mode 100644 index 8d7e5eee5a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js deleted file mode 100644 index 62da8fb5f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/GetSubstitution.js b/node_modules/object.assign/node_modules/es-abstract/2019/GetSubstitution.js deleted file mode 100644 index cc72b39e68..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/GetSubstitution.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var every = require('../helpers/every'); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); -var $indexOf = callBound('String.prototype.indexOf'); -var $parseInt = parseInt; - -var isDigit = regexTester(/^[0-9]$/); - -var inspect = require('object-inspect'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var ToObject = require('./ToObject'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// http://www.ecma-international.org/ecma-262/9.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - if (Type(namedCaptures) !== 'Undefined') { - namedCaptures = ToObject(namedCaptures); // eslint-disable-line no-param-reassign - } - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else if (next === '<') { - // eslint-disable-next-line max-depth - if (Type(namedCaptures) === 'Undefined') { - result += '$<'; - i += 2; - } else { - var endIndex = $indexOf(replacement, '>', i); - // eslint-disable-next-line max-depth - if (endIndex > -1) { - var groupName = $strSlice(replacement, i, endIndex); - var capture = Get(namedCaptures, groupName); - // eslint-disable-next-line max-depth - if (Type(capture) !== 'Undefined') { - result += ToString(capture); - } - i += '$<' + groupName + '>'.length; - } - } - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/GetV.js b/node_modules/object.assign/node_modules/es-abstract/2019/GetV.js deleted file mode 100644 index 7b5139aceb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/HasOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/HasOwnProperty.js deleted file mode 100644 index 679059f2e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/HasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/HasProperty.js deleted file mode 100644 index 5f2d2122ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/2019/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/InstanceofOperator.js b/node_modules/object.assign/node_modules/es-abstract/2019/InstanceofOperator.js deleted file mode 100644 index ebd308c4b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/Invoke.js b/node_modules/object.assign/node_modules/es-abstract/2019/Invoke.js deleted file mode 100644 index 769f0e3082..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/Invoke.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $arraySlice = require('../helpers/callBound')('Array.prototype.slice'); - -var Call = require('./Call'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = $arraySlice(arguments, 2); - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsAccessorDescriptor.js deleted file mode 100644 index 5139464626..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsArray.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsArray.js deleted file mode 100644 index 7b25f37b52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsConcatSpreadable.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsConcatSpreadable.js deleted file mode 100644 index dc8aae1e6f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsConstructor.js deleted file mode 100644 index 8ba9fe55bd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsDataDescriptor.js deleted file mode 100644 index 0ad3045854..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsExtensible.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsExtensible.js deleted file mode 100644 index 0c4c8a60c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsGenericDescriptor.js deleted file mode 100644 index 8618ce4143..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsInteger.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsInteger.js deleted file mode 100644 index e9bc8424e5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsPromise.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsPromise.js deleted file mode 100644 index e8e92a2b88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsPropertyKey.js deleted file mode 100644 index 74b8d95d43..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsRegExp.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsRegExp.js deleted file mode 100644 index fdf2323ff9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IsStringPrefix.js b/node_modules/object.assign/node_modules/es-abstract/2019/IsStringPrefix.js deleted file mode 100644 index f5e2996237..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IsStringPrefix.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPrefixOf = require('../helpers/isPrefixOf'); - -// var callBound = require('../helpers/callBound'); - -// var $charAt = callBound('String.prototype.charAt'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-isstringprefix - -module.exports = function IsStringPrefix(p, q) { - if (Type(p) !== 'String') { - throw new $TypeError('Assertion failed: "p" must be a String'); - } - - if (Type(q) !== 'String') { - throw new $TypeError('Assertion failed: "q" must be a String'); - } - - return isPrefixOf(p, q); - /* - if (p === q || p === '') { - return true; - } - - var pLength = p.length; - var qLength = q.length; - if (pLength >= qLength) { - return false; - } - - // assert: pLength < qLength - - for (var i = 0; i < pLength; i += 1) { - if ($charAt(p, i) !== $charAt(q, i)) { - return false; - } - } - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IterableToList.js b/node_modules/object.assign/node_modules/es-abstract/2019/IterableToList.js deleted file mode 100644 index 0b8cdcfe34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorClose.js b/node_modules/object.assign/node_modules/es-abstract/2019/IteratorClose.js deleted file mode 100644 index 35c8c2bea1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorComplete.js b/node_modules/object.assign/node_modules/es-abstract/2019/IteratorComplete.js deleted file mode 100644 index a62b9bfc1f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorNext.js b/node_modules/object.assign/node_modules/es-abstract/2019/IteratorNext.js deleted file mode 100644 index 7e59915614..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorStep.js b/node_modules/object.assign/node_modules/es-abstract/2019/IteratorStep.js deleted file mode 100644 index 41b9d1b251..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorValue.js b/node_modules/object.assign/node_modules/es-abstract/2019/IteratorValue.js deleted file mode 100644 index 5e71a44637..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/2019/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/2019/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/NumberToString.js b/node_modules/object.assign/node_modules/es-abstract/2019/NumberToString.js deleted file mode 100644 index 741727c41b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/NumberToString.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-tostring-applied-to-the-number-type - -module.exports = function NumberToString(m) { - if (Type(m) !== 'Number') { - throw new $TypeError('Assertion failed: "m" must be a String'); - } - - return $String(m); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ObjectCreate.js b/node_modules/object.assign/node_modules/es-abstract/2019/ObjectCreate.js deleted file mode 100644 index e2445b0229..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e390a600af..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 59780b3bb1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js deleted file mode 100644 index b9882e5dc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js deleted file mode 100644 index 344077a400..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryHasInstance.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryHasInstance.js deleted file mode 100644 index 51abe26d50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryHasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryHasProperty.js deleted file mode 100644 index 076c25ac5e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js deleted file mode 100644 index 3541331cae..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/PromiseResolve.js b/node_modules/object.assign/node_modules/es-abstract/2019/PromiseResolve.js deleted file mode 100644 index f70745df7f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/PromiseResolve.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseResolve = callBound('Promise.resolve', true); - -// https://ecma-international.org/ecma-262/9.0/#sec-promise-resolve - -module.exports = function PromiseResolve(C, x) { - if (!$PromiseResolve) { - throw new SyntaxError('This environment does not support Promises.'); - } - return $PromiseResolve(C, x); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/QuoteJSONString.js b/node_modules/object.assign/node_modules/es-abstract/2019/QuoteJSONString.js deleted file mode 100644 index 3ddb60fb98..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/QuoteJSONString.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); -var UnicodeEscape = require('./UnicodeEscape'); -var UTF16Encoding = require('./UTF16Encoding'); - -var has = require('has'); - -// https://ecma-international.org/ecma-262/10.0/#sec-quotejsonstring - -var escapes = { - '\u0008': '\\b', - '\u0009': '\\t', - '\u000A': '\\n', - '\u000C': '\\f', - '\u000D': '\\r', - '\u0022': '\\"', - '\u005c': '\\\\' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (has(escapes, C)) { - product += escapes[C]; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20 || isLeadingSurrogate(C) || isTrailingSurrogate(C)) { - product += UnicodeEscape(C); - } else { - product += $fromCharCode(UTF16Encoding(cCharCode)); - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/RegExpExec.js b/node_modules/object.assign/node_modules/es-abstract/2019/RegExpExec.js deleted file mode 100644 index 15c91867d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('../helpers/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/RequireObjectCoercible.js b/node_modules/object.assign/node_modules/es-abstract/2019/RequireObjectCoercible.js deleted file mode 100644 index 9008359db8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/2019/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SameValueNonNumber.js b/node_modules/object.assign/node_modules/es-abstract/2019/SameValueNonNumber.js deleted file mode 100644 index 5668752e3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://www.ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SameValueZero.js b/node_modules/object.assign/node_modules/es-abstract/2019/SameValueZero.js deleted file mode 100644 index 0dedcd2c3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/Set.js b/node_modules/object.assign/node_modules/es-abstract/2019/Set.js deleted file mode 100644 index 9545b1325a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SetFunctionLength.js b/node_modules/object.assign/node_modules/es-abstract/2019/SetFunctionLength.js deleted file mode 100644 index cb24496557..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SetFunctionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var HasOwnProperty = require('./HasOwnProperty'); -var IsExtensible = require('./IsExtensible'); -var ToInteger = require('./ToInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/9.0/#sec-setfunctionlength - -module.exports = function SetFunctionLength(F, length) { - if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { - throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); - } - if (Type(length) !== 'Number') { - throw new $TypeError('Assertion failed: `length` must be a Number'); - } - if (length < 0 || ToInteger(length) !== length) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0'); - } - return DefinePropertyOrThrow(F, 'length', { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SetFunctionName.js b/node_modules/object.assign/node_modules/es-abstract/2019/SetFunctionName.js deleted file mode 100644 index f93324a732..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SetIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2019/SetIntegrityLevel.js deleted file mode 100644 index 3d5c81d562..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SpeciesConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2019/SpeciesConstructor.js deleted file mode 100644 index 3cdcd747d6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2019/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/StringGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2019/StringGetOwnProperty.js deleted file mode 100644 index f8db320e20..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://ecma-international.org/ecma-262/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/SymbolDescriptiveString.js b/node_modules/object.assign/node_modules/es-abstract/2019/SymbolDescriptiveString.js deleted file mode 100644 index 7bd8191ad7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/TestIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2019/TestIntegrityLevel.js deleted file mode 100644 index 7a57397d59..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/2019/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2019/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/TimeString.js b/node_modules/object.assign/node_modules/es-abstract/2019/TimeString.js deleted file mode 100644 index 87642eb549..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/TimeString.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var HourFromTime = require('./HourFromTime'); -var MinFromTime = require('./MinFromTime'); -var SecFromTime = require('./SecFromTime'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-timestring - -module.exports = function TimeString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var hour = HourFromTime(tv); - var minute = MinFromTime(tv); - var second = SecFromTime(tv); - return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/2019/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToDateString.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToDateString.js deleted file mode 100644 index 7a6d4c4e9d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToIndex.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToIndex.js deleted file mode 100644 index a55398d3e2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToInt16.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToInt16.js deleted file mode 100644 index 5a112c237a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToInt8.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToInt8.js deleted file mode 100644 index d103123a91..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToInteger.js deleted file mode 100644 index 16f7db9c36..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToLength.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToLength.js deleted file mode 100644 index 1bef9bed7b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToNumber.js deleted file mode 100644 index 7a3cdc89eb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToObject.js deleted file mode 100644 index 50d5b94a45..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToPrimitive.js deleted file mode 100644 index 81c655d41a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToPropertyKey.js deleted file mode 100644 index 38f40dd80f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToString.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToString.js deleted file mode 100644 index a34543126b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint8.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToUint8.js deleted file mode 100644 index 2dfd97cb34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint8Clamp.js b/node_modules/object.assign/node_modules/es-abstract/2019/ToUint8Clamp.js deleted file mode 100644 index 95fcc39282..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/TrimString.js b/node_modules/object.assign/node_modules/es-abstract/2019/TrimString.js deleted file mode 100644 index b27112cd5b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/TrimString.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var trimStart = require('string.prototype.trimstart'); -var trimEnd = require('string.prototype.trimend'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/10.0/#sec-trimstring - -module.exports = function TrimString(string, where) { - var str = RequireObjectCoercible(string); - var S = ToString(str); - var T; - if (where === 'start') { - T = trimStart(S); - } else if (where === 'end') { - T = trimEnd(S); - } else if (where === 'start+end') { - T = trimStart(trimEnd(S)); - } else { - throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); - } - return T; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/Type.js b/node_modules/object.assign/node_modules/es-abstract/2019/Type.js deleted file mode 100644 index 0bd11659c2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/UTF16Encoding.js b/node_modules/object.assign/node_modules/es-abstract/2019/UTF16Encoding.js deleted file mode 100644 index 7cedbb20f7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/UTF16Encoding.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (typeof cp !== 'number' || cp < 0 || cp > 0x10FFFF) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return cp; - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/UnicodeEscape.js b/node_modules/object.assign/node_modules/es-abstract/2019/UnicodeEscape.js deleted file mode 100644 index aeca437ea0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/UnicodeEscape.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); - -// https://tc39.es/ecma262/2020/#sec-unicodeescape - -module.exports = function UnicodeEscape(C) { - if (typeof C !== 'string' || C.length !== 1) { - throw new $TypeError('Assertion failed: `C` must be a single code unit'); - } - var n = $charCodeAt(C, 0); - if (n > 0xFFFF) { - throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); - } - - return '\\u' + $strSlice('0000' + $toLowerCase($numberToString(n, 16)), -4); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index d4b900700b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://www.ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/2019/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/abs.js b/node_modules/object.assign/node_modules/es-abstract/2019/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/floor.js b/node_modules/object.assign/node_modules/es-abstract/2019/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/modulo.js b/node_modules/object.assign/node_modules/es-abstract/2019/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2019/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/thisBooleanValue.js b/node_modules/object.assign/node_modules/es-abstract/2019/thisBooleanValue.js deleted file mode 100644 index 3ffac9cdf2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('../helpers/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/thisNumberValue.js b/node_modules/object.assign/node_modules/es-abstract/2019/thisNumberValue.js deleted file mode 100644 index 0345e523f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/thisStringValue.js b/node_modules/object.assign/node_modules/es-abstract/2019/thisStringValue.js deleted file mode 100644 index 3b99b6e3ca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('../helpers/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2019/thisSymbolValue.js b/node_modules/object.assign/node_modules/es-abstract/2019/thisSymbolValue.js deleted file mode 100644 index 3c3b3475d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2019/thisSymbolValue.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue - -module.exports = function thisSymbolValue(value) { - if (!$SymbolValueOf) { - throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); - } - if (Type(value) === 'Symbol') { - return value; - } - return $SymbolValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2020/AbstractEqualityComparison.js deleted file mode 100644 index 40b3909868..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/2020/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/AddEntriesFromIterable.js b/node_modules/object.assign/node_modules/es-abstract/2020/AddEntriesFromIterable.js deleted file mode 100644 index 5aed44753e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/AddEntriesFromIterable.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var inspect = require('object-inspect'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var Get = require('./Get'); -var GetIterator = require('./GetIterator'); -var IsCallable = require('./IsCallable'); -var IteratorClose = require('./IteratorClose'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); -var Type = require('./Type'); - -// https://tc39.es/ecma262/#sec-add-entries-from-iterable - -module.exports = function AddEntriesFromIterable(target, iterable, adder) { - if (!IsCallable(adder)) { - throw new $TypeError('Assertion failed: `adder` is not callable'); - } - if (iterable == null) { - throw new $TypeError('Assertion failed: `iterable` is present, and not nullish'); - } - var iteratorRecord = GetIterator(iterable); - while (true) { // eslint-disable-line no-constant-condition - var next = IteratorStep(iteratorRecord); - if (!next) { - return target; - } - var nextItem = IteratorValue(next); - if (Type(nextItem) !== 'Object') { - var error = new $TypeError('iterator next must return an Object, got ' + inspect(nextItem)); - return IteratorClose( - iteratorRecord, - function () { throw error; } // eslint-disable-line no-loop-func - ); - } - try { - var k = Get(nextItem, '0'); - var v = Get(nextItem, '1'); - Call(adder, target, [k, v]); - } catch (e) { - return IteratorClose( - iteratorRecord, - function () { throw e; } - ); - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/AdvanceStringIndex.js b/node_modules/object.assign/node_modules/es-abstract/2020/AdvanceStringIndex.js deleted file mode 100644 index 79eb789067..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/AdvanceStringIndex.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var CodePointAt = require('./CodePointAt'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - var cp = CodePointAt(S, index); - return index + cp['[[CodeUnitCount]]']; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ArrayCreate.js b/node_modules/object.assign/node_modules/es-abstract/2020/ArrayCreate.js deleted file mode 100644 index fc9a7cf82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ArraySetLength.js b/node_modules/object.assign/node_modules/es-abstract/2020/ArraySetLength.js deleted file mode 100644 index c9134c6e6a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ArraySpeciesCreate.js b/node_modules/object.assign/node_modules/es-abstract/2020/ArraySpeciesCreate.js deleted file mode 100644 index 98b9b561d0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/BinaryAnd.js b/node_modules/object.assign/node_modules/es-abstract/2020/BinaryAnd.js deleted file mode 100644 index f06d41c34d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/BinaryAnd.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://tc39.es/ecma262/2020/#sec-binaryand - -module.exports = function BinaryAnd(x, y) { - if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { - throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); - } - return x & y; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/BinaryOr.js b/node_modules/object.assign/node_modules/es-abstract/2020/BinaryOr.js deleted file mode 100644 index 043cccbe0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/BinaryOr.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://tc39.es/ecma262/2020/#sec-binaryor - -module.exports = function BinaryOr(x, y) { - if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { - throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); - } - return x | y; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/BinaryXor.js b/node_modules/object.assign/node_modules/es-abstract/2020/BinaryXor.js deleted file mode 100644 index d86f1edf2d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/BinaryXor.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://tc39.es/ecma262/2020/#sec-binaryxor - -module.exports = function BinaryXor(x, y) { - if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { - throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); - } - return x ^ y; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/Call.js b/node_modules/object.assign/node_modules/es-abstract/2020/Call.js deleted file mode 100644 index f0f0451741..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/Call.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var args = arguments.length > 2 ? arguments[2] : []; - return $apply(F, V, args); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CanonicalNumericIndexString.js b/node_modules/object.assign/node_modules/es-abstract/2020/CanonicalNumericIndexString.js deleted file mode 100644 index 625f8539ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CompletePropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf415a3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CopyDataProperties.js b/node_modules/object.assign/node_modules/es-abstract/2020/CopyDataProperties.js deleted file mode 100644 index 402de282d7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CopyDataProperties.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); -var OwnPropertyKeys = require('../helpers/OwnPropertyKeys'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var CreateDataProperty = require('./CreateDataProperty'); -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-copydataproperties - -module.exports = function CopyDataProperties(target, source, excludedItems) { - if (Type(target) !== 'Object') { - throw new $TypeError('Assertion failed: "target" must be an Object'); - } - - if (!IsArray(excludedItems)) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - for (var i = 0; i < excludedItems.length; i += 1) { - if (!IsPropertyKey(excludedItems[i])) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - } - - if (typeof source === 'undefined' || source === null) { - return target; - } - - var fromObj = ToObject(source); - - var sourceKeys = OwnPropertyKeys(fromObj); - forEach(sourceKeys, function (nextKey) { - var excluded = false; - - forEach(excludedItems, function (e) { - if (SameValue(e, nextKey) === true) { - excluded = true; - } - }); - - var enumerable = $isEnumerable(fromObj, nextKey) || ( - // this is to handle string keys being non-enumerable in older engines - typeof source === 'string' - && nextKey >= 0 - && IsInteger(ToNumber(nextKey)) - ); - if (excluded === false && enumerable) { - var propValue = Get(fromObj, nextKey); - CreateDataProperty(target, nextKey, propValue); - } - }); - - return target; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CreateDataProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/CreateDataProperty.js deleted file mode 100644 index 32a86ef047..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js deleted file mode 100644 index 9feaec8d8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CreateHTML.js b/node_modules/object.assign/node_modules/es-abstract/2020/CreateHTML.js deleted file mode 100644 index 536c92db87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CreateIterResultObject.js b/node_modules/object.assign/node_modules/es-abstract/2020/CreateIterResultObject.js deleted file mode 100644 index aef1d2200e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CreateListFromArrayLike.js b/node_modules/object.assign/node_modules/es-abstract/2020/CreateListFromArrayLike.js deleted file mode 100644 index f26d8ad331..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CreateListFromArrayLike.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var LengthOfArrayLike = require('./LengthOfArrayLike'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://tc39.es/ecma262/2020/#sec-createlistfromarraylike - -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = LengthOfArrayLike(obj); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/CreateMethodProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/CreateMethodProperty.js deleted file mode 100644 index 5b599aea1e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DateString.js b/node_modules/object.assign/node_modules/es-abstract/2020/DateString.js deleted file mode 100644 index fc30329060..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DateString.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var Type = require('./Type'); -var WeekDay = require('./WeekDay'); -var MonthFromTime = require('./MonthFromTime'); -var YearFromTime = require('./YearFromTime'); -var DateFromTime = require('./DateFromTime'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-datestring - -module.exports = function DateString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var weekday = weekdays[WeekDay(tv)]; - var month = months[MonthFromTime(tv)]; - var day = padTimeComponent(DateFromTime(tv)); - var year = padTimeComponent(YearFromTime(tv), 4); - return weekday + '\x20' + month + '\x20' + day + '\x20' + year; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/Day.js b/node_modules/object.assign/node_modules/es-abstract/2020/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2020/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/2020/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/2020/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DefinePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2020/DefinePropertyOrThrow.js deleted file mode 100644 index 7977f6e182..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/DeletePropertyOrThrow.js b/node_modules/object.assign/node_modules/es-abstract/2020/DeletePropertyOrThrow.js deleted file mode 100644 index b47681797b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js b/node_modules/object.assign/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js deleted file mode 100644 index e2ed7226cb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('../helpers/callBound'); - -var callBind = require('../helpers/callBind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/FlattenIntoArray.js b/node_modules/object.assign/node_modules/es-abstract/2020/FlattenIntoArray.js deleted file mode 100644 index 6ff55657f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/FlattenIntoArray.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var Call = require('./Call'); -var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); -var Get = require('./Get'); -var HasProperty = require('./HasProperty'); -var IsArray = require('./IsArray'); -var LengthOfArrayLike = require('./LengthOfArrayLike'); -var ToString = require('./ToString'); - -// https://tc39.es/ecma262/2020/#sec-flattenintoarray - -// eslint-disable-next-line max-params, max-statements -module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { - var mapperFunction; - if (arguments.length > 5) { - mapperFunction = arguments[5]; - } - - var targetIndex = start; - var sourceIndex = 0; - while (sourceIndex < sourceLen) { - var P = ToString(sourceIndex); - var exists = HasProperty(source, P); - if (exists === true) { - var element = Get(source, P); - if (typeof mapperFunction !== 'undefined') { - if (arguments.length <= 6) { - throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); - } - element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); - } - var shouldFlatten = false; - if (depth > 0) { - shouldFlatten = IsArray(element); - } - if (shouldFlatten) { - var elementLen = LengthOfArrayLike(element); - targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); - } else { - if (targetIndex >= MAX_SAFE_INTEGER) { - throw new $TypeError('index too large'); - } - CreateDataPropertyOrThrow(target, ToString(targetIndex), element); - targetIndex += 1; - } - } - sourceIndex += 1; - } - - return targetIndex; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/FromPropertyDescriptor.js deleted file mode 100644 index 5ec200edb2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/Get.js b/node_modules/object.assign/node_modules/es-abstract/2020/Get.js deleted file mode 100644 index 5b9ad78603..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/GetIterator.js b/node_modules/object.assign/node_modules/es-abstract/2020/GetIterator.js deleted file mode 100644 index 7beddacc0c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/GetMethod.js b/node_modules/object.assign/node_modules/es-abstract/2020/GetMethod.js deleted file mode 100644 index aef8cbc4a7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/GetOwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/2020/GetOwnPropertyKeys.js deleted file mode 100644 index 8d7e5eee5a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js deleted file mode 100644 index 62da8fb5f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/GetSubstitution.js b/node_modules/object.assign/node_modules/es-abstract/2020/GetSubstitution.js deleted file mode 100644 index cc72b39e68..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/GetSubstitution.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var every = require('../helpers/every'); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); -var $indexOf = callBound('String.prototype.indexOf'); -var $parseInt = parseInt; - -var isDigit = regexTester(/^[0-9]$/); - -var inspect = require('object-inspect'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var ToObject = require('./ToObject'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// http://www.ecma-international.org/ecma-262/9.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - if (Type(namedCaptures) !== 'Undefined') { - namedCaptures = ToObject(namedCaptures); // eslint-disable-line no-param-reassign - } - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else if (next === '<') { - // eslint-disable-next-line max-depth - if (Type(namedCaptures) === 'Undefined') { - result += '$<'; - i += 2; - } else { - var endIndex = $indexOf(replacement, '>', i); - // eslint-disable-next-line max-depth - if (endIndex > -1) { - var groupName = $strSlice(replacement, i, endIndex); - var capture = Get(namedCaptures, groupName); - // eslint-disable-next-line max-depth - if (Type(capture) !== 'Undefined') { - result += ToString(capture); - } - i += '$<' + groupName + '>'.length; - } - } - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/GetV.js b/node_modules/object.assign/node_modules/es-abstract/2020/GetV.js deleted file mode 100644 index 7b5139aceb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/HasOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/HasOwnProperty.js deleted file mode 100644 index 679059f2e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/HasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/HasProperty.js deleted file mode 100644 index 5f2d2122ac..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/2020/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/InstanceofOperator.js b/node_modules/object.assign/node_modules/es-abstract/2020/InstanceofOperator.js deleted file mode 100644 index ebd308c4b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/Invoke.js b/node_modules/object.assign/node_modules/es-abstract/2020/Invoke.js deleted file mode 100644 index 769f0e3082..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/Invoke.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $arraySlice = require('../helpers/callBound')('Array.prototype.slice'); - -var Call = require('./Call'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('P must be a Property Key'); - } - var argumentsList = $arraySlice(arguments, 2); - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsAccessorDescriptor.js deleted file mode 100644 index 5139464626..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsArray.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsArray.js deleted file mode 100644 index 7b25f37b52..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('../helpers/callBound')('Object.prototype.toString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsBigIntElementType.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsBigIntElementType.js deleted file mode 100644 index ad35fba6a5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsBigIntElementType.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://tc39.es/ecma262/2020/#sec-isbigintelementtype - -module.exports = function IsBigIntElementType(type) { - return type === 'BigUint64' || type === 'BigInt64'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsConcatSpreadable.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsConcatSpreadable.js deleted file mode 100644 index dc8aae1e6f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsConstructor.js deleted file mode 100644 index 8ba9fe55bd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsDataDescriptor.js deleted file mode 100644 index 0ad3045854..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsExtensible.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsExtensible.js deleted file mode 100644 index 0c4c8a60c4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsGenericDescriptor.js deleted file mode 100644 index 8618ce4143..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsInteger.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsInteger.js deleted file mode 100644 index e9bc8424e5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsNonNegativeInteger.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsNonNegativeInteger.js deleted file mode 100644 index c042eb5ca3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsNonNegativeInteger.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var IsInteger = require('./IsInteger'); - -// https://tc39.es/ecma262/2020/#sec-isnonnegativeinteger - -module.exports = function IsNonNegativeInteger(argument) { - return !!IsInteger(argument) && argument >= 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsPromise.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsPromise.js deleted file mode 100644 index e8e92a2b88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsPropertyKey.js deleted file mode 100644 index 74b8d95d43..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsRegExp.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsRegExp.js deleted file mode 100644 index fdf2323ff9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IsStringPrefix.js b/node_modules/object.assign/node_modules/es-abstract/2020/IsStringPrefix.js deleted file mode 100644 index f5e2996237..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IsStringPrefix.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPrefixOf = require('../helpers/isPrefixOf'); - -// var callBound = require('../helpers/callBound'); - -// var $charAt = callBound('String.prototype.charAt'); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-isstringprefix - -module.exports = function IsStringPrefix(p, q) { - if (Type(p) !== 'String') { - throw new $TypeError('Assertion failed: "p" must be a String'); - } - - if (Type(q) !== 'String') { - throw new $TypeError('Assertion failed: "q" must be a String'); - } - - return isPrefixOf(p, q); - /* - if (p === q || p === '') { - return true; - } - - var pLength = p.length; - var qLength = q.length; - if (pLength >= qLength) { - return false; - } - - // assert: pLength < qLength - - for (var i = 0; i < pLength; i += 1) { - if ($charAt(p, i) !== $charAt(q, i)) { - return false; - } - } - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IterableToList.js b/node_modules/object.assign/node_modules/es-abstract/2020/IterableToList.js deleted file mode 100644 index 0b8cdcfe34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorClose.js b/node_modules/object.assign/node_modules/es-abstract/2020/IteratorClose.js deleted file mode 100644 index 35c8c2bea1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorComplete.js b/node_modules/object.assign/node_modules/es-abstract/2020/IteratorComplete.js deleted file mode 100644 index a62b9bfc1f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorNext.js b/node_modules/object.assign/node_modules/es-abstract/2020/IteratorNext.js deleted file mode 100644 index 7e59915614..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorStep.js b/node_modules/object.assign/node_modules/es-abstract/2020/IteratorStep.js deleted file mode 100644 index 41b9d1b251..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/IteratorValue.js deleted file mode 100644 index 5e71a44637..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/2020/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/2020/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/NumberBitwiseOp.js b/node_modules/object.assign/node_modules/es-abstract/2020/NumberBitwiseOp.js deleted file mode 100644 index 2b7d47186f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/NumberBitwiseOp.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var ToInt32 = require('./ToInt32'); -var ToUint32 = require('./ToUint32'); - -// https://tc39.es/ecma262/2020/#sec-numberbitwiseop - -module.exports = function NumberBitwiseOp(op, x, y) { - if (op !== '&' && op !== '|' && op !== '^') { - throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); - } - var lnum = ToInt32(x); - var rnum = ToUint32(y); - if (op === '&') { - return lnum & rnum; - } - if (op === '|') { - return lnum | rnum; - } - return lnum ^ rnum; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js deleted file mode 100644 index 979777abe3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return OrdinaryObjectCreate(proto, slots); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 59780b3bb1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js deleted file mode 100644 index b9882e5dc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js deleted file mode 100644 index 344077a400..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryHasInstance.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryHasInstance.js deleted file mode 100644 index 51abe26d50..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryHasProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryHasProperty.js deleted file mode 100644 index 076c25ac5e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js b/node_modules/object.assign/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js deleted file mode 100644 index 3541331cae..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/PromiseResolve.js b/node_modules/object.assign/node_modules/es-abstract/2020/PromiseResolve.js deleted file mode 100644 index f70745df7f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/PromiseResolve.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $PromiseResolve = callBound('Promise.resolve', true); - -// https://ecma-international.org/ecma-262/9.0/#sec-promise-resolve - -module.exports = function PromiseResolve(C, x) { - if (!$PromiseResolve) { - throw new SyntaxError('This environment does not support Promises.'); - } - return $PromiseResolve(C, x); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/QuoteJSONString.js b/node_modules/object.assign/node_modules/es-abstract/2020/QuoteJSONString.js deleted file mode 100644 index 8e8a2bef81..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/QuoteJSONString.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var forEach = require('../helpers/forEach'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); - -var Type = require('./Type'); -var UnicodeEscape = require('./UnicodeEscape'); -var UTF16Encoding = require('./UTF16Encoding'); -var UTF16DecodeString = require('./UTF16DecodeString'); - -var has = require('has'); - -// https://ecma-international.org/ecma-262/10.0/#sec-quotejsonstring - -var escapes = { - '\u0008': '\\b', - '\u0009': '\\t', - '\u000A': '\\n', - '\u000C': '\\f', - '\u000D': '\\r', - '\u0022': '\\"', - '\u005c': '\\\\' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach(UTF16DecodeString(value), function (C) { - if (has(escapes, C)) { - product += escapes[C]; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20 || isLeadingSurrogate(C) || isTrailingSurrogate(C)) { - product += UnicodeEscape(C); - } else { - product += $fromCharCode(UTF16Encoding(cCharCode)); - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/RegExpExec.js b/node_modules/object.assign/node_modules/es-abstract/2020/RegExpExec.js deleted file mode 100644 index 15c91867d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('../helpers/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/RequireObjectCoercible.js b/node_modules/object.assign/node_modules/es-abstract/2020/RequireObjectCoercible.js deleted file mode 100644 index 9008359db8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SameValueZero.js b/node_modules/object.assign/node_modules/es-abstract/2020/SameValueZero.js deleted file mode 100644 index 0dedcd2c3b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/Set.js b/node_modules/object.assign/node_modules/es-abstract/2020/Set.js deleted file mode 100644 index 9545b1325a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SetFunctionLength.js b/node_modules/object.assign/node_modules/es-abstract/2020/SetFunctionLength.js deleted file mode 100644 index ec3ee96bd5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SetFunctionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var HasOwnProperty = require('./HasOwnProperty'); -var IsExtensible = require('./IsExtensible'); -var IsNonNegativeInteger = require('./IsNonNegativeInteger'); -var Type = require('./Type'); - -// https://tc39.es/ecma262/2020/#sec-setfunctionlength - -module.exports = function SetFunctionLength(F, length) { - if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { - throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); - } - if (Type(length) !== 'Number') { - throw new $TypeError('Assertion failed: `length` must be a Number'); - } - if (!IsNonNegativeInteger(length)) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0'); - } - return DefinePropertyOrThrow(F, 'length', { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SetFunctionName.js b/node_modules/object.assign/node_modules/es-abstract/2020/SetFunctionName.js deleted file mode 100644 index f93324a732..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SetIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2020/SetIntegrityLevel.js deleted file mode 100644 index 3d5c81d562..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SpeciesConstructor.js b/node_modules/object.assign/node_modules/es-abstract/2020/SpeciesConstructor.js deleted file mode 100644 index 3cdcd747d6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/2020/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/StringGetOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/2020/StringGetOwnProperty.js deleted file mode 100644 index f8db320e20..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://ecma-international.org/ecma-262/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/SymbolDescriptiveString.js b/node_modules/object.assign/node_modules/es-abstract/2020/SymbolDescriptiveString.js deleted file mode 100644 index 7bd8191ad7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/TestIntegrityLevel.js b/node_modules/object.assign/node_modules/es-abstract/2020/TestIntegrityLevel.js deleted file mode 100644 index 7a57397d59..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/2020/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/2020/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/TimeString.js b/node_modules/object.assign/node_modules/es-abstract/2020/TimeString.js deleted file mode 100644 index 87642eb549..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/TimeString.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var HourFromTime = require('./HourFromTime'); -var MinFromTime = require('./MinFromTime'); -var SecFromTime = require('./SecFromTime'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/9.0/#sec-timestring - -module.exports = function TimeString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var hour = HourFromTime(tv); - var minute = MinFromTime(tv); - var second = SecFromTime(tv); - return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT'; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/2020/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToDateString.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToDateString.js deleted file mode 100644 index 7a6d4c4e9d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToIndex.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToIndex.js deleted file mode 100644 index a55398d3e2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://www.ecma-international.org/ecma-262/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToInt16.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToInt16.js deleted file mode 100644 index 5a112c237a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToInt8.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToInt8.js deleted file mode 100644 index d103123a91..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToInteger.js deleted file mode 100644 index 16f7db9c36..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToLength.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToLength.js deleted file mode 100644 index 1bef9bed7b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToNumber.js deleted file mode 100644 index 7a3cdc89eb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('../helpers/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToObject.js deleted file mode 100644 index 50d5b94a45..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToPrimitive.js deleted file mode 100644 index 81c655d41a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToPropertyKey.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToPropertyKey.js deleted file mode 100644 index 38f40dd80f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToString.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToString.js deleted file mode 100644 index a34543126b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint8.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToUint8.js deleted file mode 100644 index 2dfd97cb34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint8Clamp.js b/node_modules/object.assign/node_modules/es-abstract/2020/ToUint8Clamp.js deleted file mode 100644 index 95fcc39282..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/TrimString.js b/node_modules/object.assign/node_modules/es-abstract/2020/TrimString.js deleted file mode 100644 index b27112cd5b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/TrimString.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var trimStart = require('string.prototype.trimstart'); -var trimEnd = require('string.prototype.trimend'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/10.0/#sec-trimstring - -module.exports = function TrimString(string, where) { - var str = RequireObjectCoercible(string); - var S = ToString(str); - var T; - if (where === 'start') { - T = trimStart(S); - } else if (where === 'end') { - T = trimEnd(S); - } else if (where === 'start+end') { - T = trimStart(trimEnd(S)); - } else { - throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); - } - return T; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/Type.js b/node_modules/object.assign/node_modules/es-abstract/2020/Type.js deleted file mode 100644 index 93333cc66a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/Type.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://tc39.es/ecma262/2020/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - if (typeof x === 'bigint') { - return 'BigInt'; - } - return ES5Type(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/UTF16Encoding.js b/node_modules/object.assign/node_modules/es-abstract/2020/UTF16Encoding.js deleted file mode 100644 index 7cedbb20f7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/UTF16Encoding.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (typeof cp !== 'number' || cp < 0 || cp > 0x10FFFF) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return cp; - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/UnicodeEscape.js b/node_modules/object.assign/node_modules/es-abstract/2020/UnicodeEscape.js deleted file mode 100644 index 29cf923d81..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/UnicodeEscape.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('../helpers/callBound'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); - -var StringPad = require('./StringPad'); - -// https://tc39.es/ecma262/2020/#sec-unicodeescape - -module.exports = function UnicodeEscape(C) { - if (typeof C !== 'string' || C.length !== 1) { - throw new $TypeError('Assertion failed: `C` must be a single code unit'); - } - var n = $charCodeAt(C, 0); - if (n > 0xFFFF) { - throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); - } - - return '\\u' + StringPad($toLowerCase($numberToString(n, 16)), 4, '0', 'start'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index d4b900700b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://www.ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/2020/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/abs.js b/node_modules/object.assign/node_modules/es-abstract/2020/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/floor.js b/node_modules/object.assign/node_modules/es-abstract/2020/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/modulo.js b/node_modules/object.assign/node_modules/es-abstract/2020/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/2020/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/thisBigIntValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/thisBigIntValue.js deleted file mode 100644 index 1389247a3c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/thisBigIntValue.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('../helpers/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $bigIntValueOf = callBound('BigInt.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://tc39.es/ecma262/2020/#sec-thisbigintvalue - -module.exports = function thisBigIntValue(value) { - var type = Type(value); - if (type === 'BigInt') { - return value; - } - if (!$bigIntValueOf) { - throw new $TypeError('BigInt is not supported'); - } - return $bigIntValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/thisBooleanValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/thisBooleanValue.js deleted file mode 100644 index 3ffac9cdf2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('../helpers/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/thisNumberValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/thisNumberValue.js deleted file mode 100644 index 0345e523f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/thisStringValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/thisStringValue.js deleted file mode 100644 index 3b99b6e3ca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('../helpers/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/thisSymbolValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/thisSymbolValue.js deleted file mode 100644 index 3c3b3475d4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/thisSymbolValue.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue - -module.exports = function thisSymbolValue(value) { - if (!$SymbolValueOf) { - throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); - } - if (Type(value) === 'Symbol') { - return value; - } - return $SymbolValueOf(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/2020/thisTimeValue.js b/node_modules/object.assign/node_modules/es-abstract/2020/thisTimeValue.js deleted file mode 100644 index a9a47ace2b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/2020/thisTimeValue.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../2018/thisTimeValue'); diff --git a/node_modules/object.assign/node_modules/es-abstract/5/AbstractEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/5/AbstractEqualityComparison.js deleted file mode 100644 index e55c7647fd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3 - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/AbstractRelationalComparison.js b/node_modules/object.assign/node_modules/es-abstract/5/AbstractRelationalComparison.js deleted file mode 100644 index bc7ca83245..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/AbstractRelationalComparison.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === 0 && ny === 0) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/CheckObjectCoercible.js b/node_modules/object.assign/node_modules/es-abstract/5/CheckObjectCoercible.js deleted file mode 100644 index f02b289119..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/CheckObjectCoercible.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.10 - -module.exports = function CheckObjectCoercible(value, optMessage) { - if (value == null) { - throw new $TypeError(optMessage || ('Cannot call method on ' + value)); - } - return value; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/DateFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/DateFromTime.js deleted file mode 100644 index 962dba1680..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/Day.js b/node_modules/object.assign/node_modules/es-abstract/5/Day.js deleted file mode 100644 index 66c0f0637d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/DayFromYear.js b/node_modules/object.assign/node_modules/es-abstract/5/DayFromYear.js deleted file mode 100644 index 672aadcdc2..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/5/DayWithinYear.js b/node_modules/object.assign/node_modules/es-abstract/5/DayWithinYear.js deleted file mode 100644 index cfc4002887..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/DaysInYear.js b/node_modules/object.assign/node_modules/es-abstract/5/DaysInYear.js deleted file mode 100644 index 5f20f6d7e7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/FromPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/5/FromPropertyDescriptor.js deleted file mode 100644 index a3cefbe516..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/FromPropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4 - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsDataDescriptor(Desc)) { - return { - value: Desc['[[Value]]'], - writable: !!Desc['[[Writable]]'], - enumerable: !!Desc['[[Enumerable]]'], - configurable: !!Desc['[[Configurable]]'] - }; - } else if (IsAccessorDescriptor(Desc)) { - return { - get: Desc['[[Get]]'], - set: Desc['[[Set]]'], - enumerable: !!Desc['[[Enumerable]]'], - configurable: !!Desc['[[Configurable]]'] - }; - } else { - throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor'); - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/HourFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/HourFromTime.js deleted file mode 100644 index 15ad1a9bf1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/InLeapYear.js b/node_modules/object.assign/node_modules/es-abstract/5/InLeapYear.js deleted file mode 100644 index 38ba8fdc8c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/IsAccessorDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/5/IsAccessorDescriptor.js deleted file mode 100644 index 561382a10e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var Type = require('./Type'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.1 - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/IsCallable.js b/node_modules/object.assign/node_modules/es-abstract/5/IsCallable.js deleted file mode 100644 index e4bfa365cd..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/object.assign/node_modules/es-abstract/5/IsDataDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/5/IsDataDescriptor.js deleted file mode 100644 index 783e2dc6a4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var Type = require('./Type'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2 - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/IsGenericDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/5/IsGenericDescriptor.js deleted file mode 100644 index 93340e987c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3 - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/IsPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/5/IsPropertyDescriptor.js deleted file mode 100644 index 2a96c637b5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/IsPropertyDescriptor.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/MakeDate.js b/node_modules/object.assign/node_modules/es-abstract/5/MakeDate.js deleted file mode 100644 index 7b592d1369..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/MakeDay.js b/node_modules/object.assign/node_modules/es-abstract/5/MakeDay.js deleted file mode 100644 index 614c0fcb9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/MakeTime.js b/node_modules/object.assign/node_modules/es-abstract/5/MakeTime.js deleted file mode 100644 index e11850040e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/MinFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/MinFromTime.js deleted file mode 100644 index c2fdd3b62f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/MonthFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/MonthFromTime.js deleted file mode 100644 index 4f120f2c2c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/SameValue.js b/node_modules/object.assign/node_modules/es-abstract/5/SameValue.js deleted file mode 100644 index 47c936d762..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/SecFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/SecFromTime.js deleted file mode 100644 index 5e2038638c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/StrictEqualityComparison.js b/node_modules/object.assign/node_modules/es-abstract/5/StrictEqualityComparison.js deleted file mode 100644 index eea5df3889..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/TimeClip.js b/node_modules/object.assign/node_modules/es-abstract/5/TimeClip.js deleted file mode 100644 index 23726bb9a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/5/TimeFromYear.js b/node_modules/object.assign/node_modules/es-abstract/5/TimeFromYear.js deleted file mode 100644 index df646c36e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/TimeWithinDay.js b/node_modules/object.assign/node_modules/es-abstract/5/TimeWithinDay.js deleted file mode 100644 index f6a1290f5d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToBoolean.js b/node_modules/object.assign/node_modules/es-abstract/5/ToBoolean.js deleted file mode 100644 index 65d87376df..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToInt32.js b/node_modules/object.assign/node_modules/es-abstract/5/ToInt32.js deleted file mode 100644 index a8d268070b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToInteger.js b/node_modules/object.assign/node_modules/es-abstract/5/ToInteger.js deleted file mode 100644 index c29fff5999..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToInteger.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.4 - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - if ($isNaN(number)) { return 0; } - if (number === 0 || !$isFinite(number)) { return number; } - return $sign(number) * floor(abs(number)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToNumber.js b/node_modules/object.assign/node_modules/es-abstract/5/ToNumber.js deleted file mode 100644 index 4a7a3b8855..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToNumber.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.3 - -module.exports = function ToNumber(value) { - return +value; // eslint-disable-line no-implicit-coercion -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToObject.js b/node_modules/object.assign/node_modules/es-abstract/5/ToObject.js deleted file mode 100644 index 1d27a134bf..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var CheckObjectCoercible = require('./CheckObjectCoercible'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.9 - -module.exports = function ToObject(value) { - CheckObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/5/ToPrimitive.js deleted file mode 100644 index 071df70493..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToPrimitive.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.1 - -module.exports = require('es-to-primitive/es5'); diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/5/ToPropertyDescriptor.js deleted file mode 100644 index 7c401360f5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToString.js b/node_modules/object.assign/node_modules/es-abstract/5/ToString.js deleted file mode 100644 index 80ece429b7..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToString.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $String = GetIntrinsic('%String%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.8 - -module.exports = function ToString(value) { - return $String(value); -}; - diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToUint16.js b/node_modules/object.assign/node_modules/es-abstract/5/ToUint16.js deleted file mode 100644 index b10e3ed311..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/ToUint32.js b/node_modules/object.assign/node_modules/es-abstract/5/ToUint32.js deleted file mode 100644 index 3660f62099..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/Type.js b/node_modules/object.assign/node_modules/es-abstract/5/Type.js deleted file mode 100644 index 9cc750cd53..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/Type.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -// https://www.ecma-international.org/ecma-262/5.1/#sec-8 - -module.exports = function Type(x) { - if (x === null) { - return 'Null'; - } - if (typeof x === 'undefined') { - return 'Undefined'; - } - if (typeof x === 'function' || typeof x === 'object') { - return 'Object'; - } - if (typeof x === 'number') { - return 'Number'; - } - if (typeof x === 'boolean') { - return 'Boolean'; - } - if (typeof x === 'string') { - return 'String'; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/WeekDay.js b/node_modules/object.assign/node_modules/es-abstract/5/WeekDay.js deleted file mode 100644 index 51d0722014..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/YearFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/YearFromTime.js deleted file mode 100644 index ff5339f24c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('../helpers/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/abs.js b/node_modules/object.assign/node_modules/es-abstract/5/abs.js deleted file mode 100644 index b32d0c9ffe..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/floor.js b/node_modules/object.assign/node_modules/es-abstract/5/floor.js deleted file mode 100644 index 66d616d4de..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://www.ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/modulo.js b/node_modules/object.assign/node_modules/es-abstract/5/modulo.js deleted file mode 100644 index bc04c06284..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://ecma-international.org/ecma-262/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/5/msFromTime.js b/node_modules/object.assign/node_modules/es-abstract/5/msFromTime.js deleted file mode 100644 index ebe5f58553..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/5/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/CHANGELOG.md b/node_modules/object.assign/node_modules/es-abstract/CHANGELOG.md deleted file mode 100644 index c0c58abcc8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/CHANGELOG.md +++ /dev/null @@ -1,374 +0,0 @@ -1.18.0-next.0 / 2020-08-14 -================= - * [New] add `ES2020` - * [New] `GetIntrinsic`: add `%AggregateError%`, `%FinalizationRegistry%`, and `%WeakRef%` - * [New] `ES5`+: add `abs`, `floor`; use `modulo` consistently - * [New] `GetIntrinsic`: Cache accessed intrinsics (#98) - * [New] `GetIntrinsic`: Add ES201x function intrinsics (#97) - * [New] `ES2015`+: add `QuoteJSONString`, `OrdinaryCreateFromConstructor` - * [New] `ES2017`+: add `StringGetOwnProperty` - * [New] `ES2016`+: add `UTF16Encoding` - * [New] `ES2018`+: add `SetFunctionLength`, `UnicodeEscape` - * [New] add `isLeadingSurrogate`/`isTrailingSurrogate` helpers - * [Fix] `ES5`+: `ToPropertyDescriptor`: use intrinsic TypeError - * [Fix] `ES2018+`: `CopyDataProperties`/`NumberToString`: use intrinsic TypeError - * [Deps] update `is-regex`, `object-inspect` - * [Dev Deps] update `eslint` - -1.17.6 / 2020-06-13 -================= - * [Fix] `helpers/getSymbolDescription`: use the global Symbol registry when available (#92) - * [Fix] `ES2015+`: `IsConstructor`: when `Reflect.construct` is available, be spec-accurate (#93) - * [Fix] `ES2015+`: `Set`: Always return boolean value (#101) - * [Fix] `ES2015+`: `Set`: ensure exceptions are thrown in IE 9 when requested - * [Fix] Use `Reflect.apply(…)` if available (#99) - * [Fix] `helpers/floor`: module-cache `Math.floor` - * [Fix] `helpers/getSymbolDescription`: Prefer bound `description` getter when present - * [Fix] `2016`: Use `getIteratorMethod` in `IterableToArrayLike` (#94) - * [Fix] `helpers/OwnPropertyKeys`: Use `Reflect.ownKeys(…)` if available (#91) - * [Fix] `2018+`: Fix `CopyDataProperties` depending on `this` (#95) - * [meta] mark spackled files as autogenerated - * [meta] `Type`: fix spec URL - * [meta] `ES2015`: complete ops list - * [Deps] update `is‑callable`, `is‑regex` - * [Deps] switch from `string.prototype.trimleft`/`string.prototype.trimright` to `string.prototype.trimstart`/`string.prototype.trimend` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `in-publish`, `object-is`, `tape`; add `aud` - * [eslint] `helpers/isPropertyDescriptor`: fix indentation - * [Tests] `helpers/getSymbolDescription`: add test cases; some envs have `Symbol.for` but can not infer a name (#92) - * [Tests] try out CodeQL analysis - * [Tests] reformat expected missing ops - * [Tests] Run tests with `undefined` this (#96) - -1.17.5 / 2020-03-22 -================= - * [Fix] `CreateDataProperty`: update an existing property - * [Fix] run missing spackle from cd7504701879ddea0f5981e99cbcf93bfea9171d - * [Dev Deps] update `make-arrow-function`, `tape`, `@ljharb/eslint-config` - -1.17.4 / 2020-01-21 -================= - * [Fix] `2015+`: add code to handle IE 8’s problems - * [Tests] fix tests for IE 8 - -1.17.3 / 2020-01-19 -================= - * [Fix] `ObjectCreate` `2015+`: Fall back to `__proto__` and normal `new` in older browsers - * [Fix] `GetIntrinsic`: ensure the `allowMissing` property actually works on dotted intrinsics - -1.17.2 / 2020-01-14 -================= - * [Fix] `helpers/OwnPropertyKeys`: include non-enumerables too - -1.17.1 / 2020-01-14 -================= - * [Refactor] add `OwnPropertyKeys` helper, use it in `CopyDataProperties` - * [Refactor] `IteratorClose`: remove useless assignment - * [Dev Deps] update `eslint`, `tape`, `diff` - -1.17.0 / 2019-12-20 -================= - * [New] Split up each operation into its own file (prereleased) - * [Fix] `GetIntrinsic`: IE 8 has a broken `Object.getOwnPropertyDescriptor` - * [Fix] `object.assign` is a runtime dep (prereleased) - * [Refactor] `GetIntrinsic`: remove the internal property salts, since % already handles that - * [Refactor] `GetIntrinsic`: further simplification - * [Deps] update `is-callable`, `string.prototype.trimleft`, `string.prototype.trimright`, `is-regex` - * [Dev Deps] update `@ljharb/eslint-config`, `object-is`, `object.fromentries`, `tape` - * [Tests] add `.eslintignore` - * [meta] remove unused Makefile and associated utils - * [meta] only run spackle script in publish (#78) (prereleased) - -1.17.0-next.1 / 2019-12-11 -================= - * [Fix] `object.assign` is a runtime dep - * [meta] only run spackle script in publish (#78) - -1.17.0-next.0 / 2019-12-11 -================= - * [New] Split up each operation into its own file - -1.16.3 / 2019-12-04 -================= - * [Fix] `GetIntrinsic`: when given a path to a getter, return the actual getter - * [Dev Deps] update `eslint` - -1.16.2 / 2019-11-24 -================= - * [Fix] IE 6-7 lack JSON - * [Fix] IE 6-8 strings can’t use array slice, they need string slice - * [Dev Deps] update `eslint` - -1.16.1 / 2019-11-24 -================= - * [Fix] `GetIntrinsics`: turns out IE 8 throws when `Object.getOwnPropertyDescriptor(arguments);`, and does not throw on `callee` anyways - * [Deps] update `es-to-primitive`, `has-symbols`, `object-inspect` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` - * [meta] re-include year files inside `operations` - * [meta] add `funding` field - * [actions] add Automatic Rebase github action - * [Tests] use shared travis-ci config - * [Tests] disable `check-coverage`, and let codecov do it - -1.16.0 / 2019-10-18 -================= - * [New] `ES2015+`: add `SetFunctionName` - * [New] `ES2015+`: add `GetPrototypeFromConstructor`, with caveats - * [New] `ES2015+`: add `CreateListFromArrayLike` - * [New] `ES2016+`: add `OrdinarySetPrototypeOf` - * [New] `ES2016+`: add `OrdinaryGetPrototypeOf` - * [New] add `getSymbolDescription` and `getInferredName` helpers - * [Fix] `GetIterator`: add fallback for pre-Symbol environments, tests - * [Dev Deps] update `object.fromentries` - * [Tests] add `node` `v12.2` - -1.15.0 / 2019-10-02 -================= - * [New] `ES2018`+: add `DateString`, `TimeString` - * [New] `ES2015`+: add `ToDateString` - * [New] `ES5`+: add `msFromTime`, `SecFromTime`, `MinFromTime`, `HourFromTime`, `TimeWithinDay`, `Day`, `DayFromYear`, `TimeFromYear`, `YearFromTime`, `WeekDay`, `DaysInYear`, `InLeapYear`, `DayWithinYear`, `MonthFromTime`, `DateFromTime`, `MakeDay`, `MakeDate`, `MakeTime`, `TimeClip`, `modulo` - * [New] add `regexTester` helper - * [New] add `callBound` helper - * [New] add ES2020’s intrinsic dot notation - * [New] add `isPrefixOf` helper - * [New] add `maxSafeInteger` helper - * [Deps] update `string.prototype.trimleft`, `string.prototype.trimright` - * [Dev Deps] update `eslint` - * [Tests] on `node` `v12.11` - * [meta] npmignore operations scripts; add "deltas" - -1.14.2 / 2019-09-08 -================= - * [Fix] `ES2016`: `IterableToArrayLike`: add proper fallback for strings, pre-Symbols - * [Tests] on `node` `v12.10` - -1.14.1 / 2019-09-03 -================= - * [meta] republish with some extra files removed - -1.14.0 / 2019-09-02 -================= - * [New] add ES2019 - * [New] `ES2017+`: add `IterableToList` - * [New] `ES2016`: add `IterableToArrayLike` - * [New] `ES2015+`: add `ArrayCreate`, `ArraySetLength`, `OrdinaryDefineOwnProperty`, `OrdinaryGetOwnProperty`, `OrdinaryHasProperty`, `CreateHTML`, `GetOwnPropertyKeys`, `InstanceofOperator`, `SymbolDescriptiveString`, `GetSubstitution`, `ValidateAndApplyPropertyDescriptor`, `IsPromise`, `OrdinaryHasInstance`, `TestIntegrityLevel`, `SetIntegrityLevel` - * [New] add `callBind` helper, and use it - * [New] add helpers: `isPropertyDescriptor`, `every` - * [New] ES5+: add `Abstract Relational Comparison` - * [New] ES5+: add `Abstract Equality Comparison`, `Strict Equality Comparison` - * [Fix] `ES2015+`: `GetIterator`: only require native Symbols when `method` is omitted - * [Fix] `ES2015`: `Call`: error message now properly displays Symbols using `object-inspect` - * [Fix] `ES2015+`: `ValidateAndApplyPropertyDescriptor`: use ES2017 logic to bypass spec bugs - * [Fix] `ES2015+`: `CreateDataProperty`, `DefinePropertyOrThrow`, `ValidateAndApplyPropertyDescriptor`: add fallbacks for ES3 - * [Fix] `ES2015+`: `FromPropertyDescriptor`: no longer requires a fully complete Property Descriptor - * [Fix] `ES5`: `IsPropertyDescriptor`: call into `IsDataDescriptor` and `IsAccessorDescriptor` - * [Refactor] use `has-symbols` for Symbol detection - * [Fix] `helpers/assertRecord`: remove `console.log` - * [Deps] update `object-keys` - * [readme] add security note - * [meta] change http URLs to https - * [meta] linter cleanup - * [meta] fix getOps script - * [meta] add FUNDING.yml - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `replace`, `cheerio`, `tape` - * [Tests] up to `node` `v12.9`, `v11.15`, `v10.16`, `v8.16`, `v6.17` - * [Tests] temporarily allow node 0.6 to fail; segfaulting in travis - * [Tests] use the values helper more in es5 tests - * [Tests] fix linting to apply to all files - * [Tests] run `npx aud` only on prod deps - * [Tests] add v.descriptors helpers - * [Tests] use `npx aud` instead of `npm audit` with hoops - * [Tests] use `eclint` instead of `editorconfig-tools` - * [Tests] some intrinsic cleanup - * [Tests] migrate es5 tests to use values helper - * [Tests] add some missing ES2015 ops - -1.13.0 / 2019-01-02 -================= - * [New] add ES2018 - * [New] add ES2015/ES2016: EnumerableOwnNames; ES2017: EnumerableOwnProperties - * [New] `ES2015+`: add `thisBooleanValue`, `thisNumberValue`, `thisStringValue`, `thisTimeValue` - * [New] `ES2015+`: add `DefinePropertyOrThrow`, `DeletePropertyOrThrow`, `CreateMethodProperty` - * [New] add `assertRecord` helper - * [Deps] update `is-callable`, `has`, `object-keys`, `es-to-primitive` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `semver`, `safe-publish-latest`, `replace` - * [Tests] use `npm audit` instead of `nsp` - * [Tests] remove `jscs` - * [Tests] up to `node` `v11.6`, `v10.15`, `v8.15`, `v6.16` - * [Tests] move descriptor factories to `values` helper - * [Tests] add `getOps` to programmatically fetch abstract operation names - -1.12.0 / 2018-05-31 -================= - * [New] add `GetIntrinsic` entry point - * [New] `ES2015`+: add `ObjectCreate` - * [Robustness]: `ES2015+`: ensure `Math.{abs,floor}` and `Function.call` are cached - -1.11.0 / 2018-03-21 -================= - * [New] `ES2015+`: add iterator abstract ops - * [Dev Deps] update `eslint`, `nsp`, `object.assign`, `semver`, `tape` - * [Tests] up to `node` `v9.8`, `v8.10`, `v6.13` - -1.10.0 / 2017-11-24 -================= - * [New] ES2015+: `AdvanceStringIndex` - * [Dev Deps] update `eslint`, `nsp` - * [Tests] require node 0.6 to pass again - * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS - -1.9.0 / 2017-09-30 -================= - * [New] `es2015+`: add `ArraySpeciesCreate` - * [New] ES2015+: add `CreateDataProperty` and `CreateDataPropertyOrThrow` - * [Tests] consolidate duplicated tests - * [Tests] increase coverage - * [Dev Deps] update `nsp`, `eslint` - -1.8.2 / 2017-09-03 -================= - * [Fix] `es2015`+: `ToNumber`: provide the proper hint for Date objects (#27) - * [Dev Deps] update `eslint` - -1.8.1 / 2017-08-30 -================= - * [Fix] ES2015+: `ToPropertyKey`: should return a symbol for Symbols (#26) - * [Deps] update `function-bind` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config` - * [Docs] github broke markdown parsing - -1.8.0 / 2017-08-04 -================= - * [New] add ES2017 - * [New] move es6+ to es2015+; leave es6/es7 as aliases - * [New] ES5+: add `IsPropertyDescriptor`, `IsAccessorDescriptor`, `IsDataDescriptor`, `IsGenericDescriptor`, `FromPropertyDescriptor`, `ToPropertyDescriptor` - * [New] ES2015+: add `CompletePropertyDescriptor`, `Set`, `HasOwnProperty`, `HasProperty`, `IsConcatSpreadable`, `Invoke`, `CreateIterResultObject`, `RegExpExec` - * [Fix] es7/es2016: do not mutate ES6 - * [Fix] assign helper only supports one source - * [Deps] update `is-regex` - * [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `semver`, `tape` - * [Tests] add tests for missing and excess operations - * [Tests] add codecov for coverage - * [Tests] up to `node` `v8.2`, `v7.10`, `v6.11`, `v4.8`; newer npm breaks on older node - * [Tests] use same lists of value types across tests; ensure tests are the same when ops are the same - * [Tests] ES2015: add ToNumber symbol tests - * [Tests] switch to `nyc` for code coverage - * [Tests] make IsRegExp tests consistent across editions - -1.7.0 / 2017-01-22 -================= - * [New] ES6: Add `GetMethod` (#16) - * [New] ES6: Add `GetV` (#16) - * [New] ES6: Add `Get` (#17) - * [Tests] up to `node` `v7.4`, `v6.9`, `v4.6`; improve test matrix - * [Dev Deps] update `tape`, `nsp`, `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` - -1.6.1 / 2016-08-21 -================= - * [Fix] ES6: IsConstructor should return true for `class` constructors. - -1.6.0 / 2016-08-20 -================= - * [New] ES5 / ES6: add `Type` - * [New] ES6: `SpeciesConstructor` - * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`; add `safe-publish-latest` - * [Tests] up to `node` `v6.4`, `v5.12`, `v4.5` - -1.5.1 / 2016-05-30 -================= - * [Fix] `ES.IsRegExp`: actually look up `Symbol.match` on the argument - * [Refactor] create `isNaN` helper - * [Deps] update `is-callable`, `function-bind` - * [Deps] update `es-to-primitive`, fix ES5 tests - * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape`, `nsp` - * [Tests] up to `node` `v6.2`, `v5.11`, `v4.4` - * [Tests] use pretest/posttest for linting/security - -1.5.0 / 2015-12-27 -================= - * [New] adds `Symbol.toPrimitive` support via `es-to-primitive` - * [Deps] update `is-callable`, `es-to-primitive` - * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `tape` - * [Tests] up to `node` `v5.3` - -1.4.3 / 2015-11-04 -================= - * [Fix] `ES6.ToNumber`: should give `NaN` for explicitly signed hex strings (#4) - * [Refactor] `ES6.ToNumber`: No need to double-trim - * [Refactor] group tests better - * [Tests] should still pass on `node` `v0.8` - -1.4.2 / 2015-11-02 -================= - * [Fix] ensure `ES.ToNumber` trims whitespace, and does not trim non-whitespace (#3) - -1.4.1 / 2015-10-31 -================= - * [Fix] ensure only 0-1 are valid binary and 0-7 are valid octal digits (#2) - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` - * [Tests] on `node` `v5.0` - * [Tests] fix npm upgrades for older node versions - * package.json: use object form of "authors", add "contributors" - -1.4.0 / 2015-09-26 -================= - * [Deps] update `is-callable` - * [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` - * [Tests] on `node` `v4.2` - * [New] Add `SameValueNonNumber` to ES7 - -1.3.2 / 2015-09-26 -================= - * [Fix] Fix `ES6.IsRegExp` to properly handle `Symbol.match`, per spec. - * [Tests] up to `io.js` `v3.3`, `node` `v4.1` - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` - -1.3.1 / 2015-08-15 -================= - * [Fix] Ensure that objects that `toString` to a binary or octal literal also convert properly - -1.3.0 / 2015-08-15 -================= - * [New] ES6’s ToNumber now supports binary and octal literals. - * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape` - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - * [Tests] up to `io.js` `v3.0` - -1.2.2 / 2015-07-28 -================= - * [Fix] Both `ES5.CheckObjectCoercible` and `ES6.RequireObjectCoercible` return the value if they don't throw. - * [Tests] Test on latest `io.js` versions. - * [Dev Deps] Update `eslint`, `jscs`, `tape`, `semver`, `covert`, `nsp` - -1.2.1 / 2015-03-20 -================= - * Fix `isFinite` helper. - -1.2.0 / 2015-03-19 -================= - * Use `es-to-primitive` for ToPrimitive methods. - * Test on latest `io.js` versions; allow failures on all but 2 latest `node`/`io.js` versions. - -1.1.2 / 2015-03-20 -================= - * Fix isFinite helper. - -1.1.1 / 2015-03-19 -================= - * Fix isPrimitive check for functions - * Update `eslint`, `editorconfig-tools`, `semver`, `nsp` - -1.1.0 / 2015-02-17 -================= - * Add ES7 export (non-default). - * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. - * Test on `iojs-v1.2`. - -1.0.1 / 2015-01-30 -================= - * Use `is-callable` instead of an internal function. - * Update `tape`, `jscs`, `nsp`, `eslint` - -1.0.0 / 2015-01-10 -================= - * v1.0.0 diff --git a/node_modules/object.assign/node_modules/es-abstract/GetIntrinsic.js b/node_modules/object.assign/node_modules/es-abstract/GetIntrinsic.js deleted file mode 100644 index a21eea7f87..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/GetIntrinsic.js +++ /dev/null @@ -1,278 +0,0 @@ -'use strict'; - -/* globals - AggregateError, - Atomics, - FinalizationRegistry, - SharedArrayBuffer, - WeakRef, -*/ - -var undefined; - -var $SyntaxError = SyntaxError; -var $Function = Function; -var $TypeError = TypeError; - -// eslint-disable-next-line consistent-return -var getEvalledConstructor = function (expressionSyntax) { - try { - // eslint-disable-next-line no-new-func - return Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); - } catch (e) {} -}; - -var $gOPD = Object.getOwnPropertyDescriptor; -if ($gOPD) { - try { - $gOPD({}, ''); - } catch (e) { - $gOPD = null; // this is IE 8, which has a broken gOPD - } -} - -var throwTypeError = function () { throw new $TypeError(); }; -var ThrowTypeError = $gOPD - ? (function () { - try { - // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties - arguments.callee; // IE 8 does not throw here - return throwTypeError; - } catch (calleeThrows) { - try { - // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') - return $gOPD(arguments, 'callee').get; - } catch (gOPDthrows) { - return throwTypeError; - } - } - }()) - : throwTypeError; - -var hasSymbols = require('has-symbols')(); - -var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto - -var asyncGenFunction = getEvalledConstructor('async function* () {}'); -var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined; -var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined; - -var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, - '%Array%': Array, - '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, - '%AsyncFromSyncIteratorPrototype%': undefined, - '%AsyncFunction%': getEvalledConstructor('async function () {}'), - '%AsyncGenerator%': asyncGenFunctionPrototype, - '%AsyncGeneratorFunction%': asyncGenFunction, - '%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined, - '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, - '%Boolean%': Boolean, - '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '%Date%': Date, - '%decodeURI%': decodeURI, - '%decodeURIComponent%': decodeURIComponent, - '%encodeURI%': encodeURI, - '%encodeURIComponent%': encodeURIComponent, - '%Error%': Error, - '%eval%': eval, // eslint-disable-line no-eval - '%EvalError%': EvalError, - '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, - '%Function%': $Function, - '%GeneratorFunction%': getEvalledConstructor('function* () {}'), - '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '%isFinite%': isFinite, - '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, - '%JSON%': typeof JSON === 'object' ? JSON : undefined, - '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), - '%Math%': Math, - '%Number%': Number, - '%Object%': Object, - '%parseFloat%': parseFloat, - '%parseInt%': parseInt, - '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '%RangeError%': RangeError, - '%ReferenceError%': ReferenceError, - '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '%RegExp%': RegExp, - '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), - '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '%String%': String, - '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, - '%Symbol%': hasSymbols ? Symbol : undefined, - '%SyntaxError%': $SyntaxError, - '%ThrowTypeError%': ThrowTypeError, - '%TypedArray%': TypedArray, - '%TypeError%': $TypeError, - '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '%URIError%': URIError, - '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, - '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet -}; - -var LEGACY_ALIASES = { - '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], - '%ArrayPrototype%': ['Array', 'prototype'], - '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], - '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], - '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], - '%ArrayProto_values%': ['Array', 'prototype', 'values'], - '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], - '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], - '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], - '%BooleanPrototype%': ['Boolean', 'prototype'], - '%DataViewPrototype%': ['DataView', 'prototype'], - '%DatePrototype%': ['Date', 'prototype'], - '%ErrorPrototype%': ['Error', 'prototype'], - '%EvalErrorPrototype%': ['EvalError', 'prototype'], - '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], - '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], - '%FunctionPrototype%': ['Function', 'prototype'], - '%Generator%': ['GeneratorFunction', 'prototype'], - '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], - '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], - '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], - '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], - '%JSONParse%': ['JSON', 'parse'], - '%JSONStringify%': ['JSON', 'stringify'], - '%MapPrototype%': ['Map', 'prototype'], - '%NumberPrototype%': ['Number', 'prototype'], - '%ObjectPrototype%': ['Object', 'prototype'], - '%ObjProto_toString%': ['Object', 'prototype', 'toString'], - '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], - '%PromisePrototype%': ['Promise', 'prototype'], - '%PromiseProto_then%': ['Promise', 'prototype', 'then'], - '%Promise_all%': ['Promise', 'all'], - '%Promise_reject%': ['Promise', 'reject'], - '%Promise_resolve%': ['Promise', 'resolve'], - '%RangeErrorPrototype%': ['RangeError', 'prototype'], - '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], - '%RegExpPrototype%': ['RegExp', 'prototype'], - '%SetPrototype%': ['Set', 'prototype'], - '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], - '%StringPrototype%': ['String', 'prototype'], - '%SymbolPrototype%': ['Symbol', 'prototype'], - '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], - '%TypedArrayPrototype%': ['TypedArray', 'prototype'], - '%TypeErrorPrototype%': ['TypeError', 'prototype'], - '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], - '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], - '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], - '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], - '%URIErrorPrototype%': ['URIError', 'prototype'], - '%WeakMapPrototype%': ['WeakMap', 'prototype'], - '%WeakSetPrototype%': ['WeakSet', 'prototype'] -}; - -var bind = require('function-bind'); -var hasOwn = require('has'); -var $concat = bind.call(Function.call, Array.prototype.concat); -var $spliceApply = bind.call(Function.apply, Array.prototype.splice); -var $replace = bind.call(Function.call, String.prototype.replace); - -/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ -var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; -var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ -var stringToPath = function stringToPath(string) { - var result = []; - $replace(string, rePropName, function (match, number, quote, subString) { - result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; - }); - return result; -}; -/* end adaptation */ - -var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { - var intrinsicName = name; - var alias; - if (hasOwn(LEGACY_ALIASES, intrinsicName)) { - alias = LEGACY_ALIASES[intrinsicName]; - intrinsicName = '%' + alias[0] + '%'; - } - - if (hasOwn(INTRINSICS, intrinsicName)) { - var value = INTRINSICS[intrinsicName]; - if (typeof value === 'undefined' && !allowMissing) { - throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } - - return { - alias: alias, - name: intrinsicName, - value: value - }; - } - - throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); -}; - -module.exports = function GetIntrinsic(name, allowMissing) { - if (typeof name !== 'string' || name.length === 0) { - throw new $TypeError('intrinsic name must be a non-empty string'); - } - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new $TypeError('"allowMissing" argument must be a boolean'); - } - - var parts = stringToPath(name); - var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; - - var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); - var intrinsicRealName = intrinsic.name; - var value = intrinsic.value; - var skipFurtherCaching = false; - - var alias = intrinsic.alias; - if (alias) { - intrinsicBaseName = alias[0]; - $spliceApply(parts, $concat([0, 1], alias)); - } - - for (var i = 1, isOwn = true; i < parts.length; i += 1) { - var part = parts[i]; - if (part === 'constructor' || !isOwn) { - skipFurtherCaching = true; - } - - intrinsicBaseName += '.' + part; - intrinsicRealName = '%' + intrinsicBaseName + '%'; - - if (hasOwn(INTRINSICS, intrinsicRealName)) { - value = INTRINSICS[intrinsicRealName]; - } else if (value != null) { - if ($gOPD && (i + 1) >= parts.length) { - var desc = $gOPD(value, part); - isOwn = !!desc; - - if (!allowMissing && !(part in value)) { - throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); - } - value = isOwn ? desc.get || desc.value : value[part]; - } else { - isOwn = hasOwn(value, part); - value = value[part]; - } - - if (isOwn && !skipFurtherCaching) { - INTRINSICS[intrinsicRealName] = value; - } - } - } - return value; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/LICENSE b/node_modules/object.assign/node_modules/es-abstract/LICENSE deleted file mode 100644 index 8c271c14b6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (C) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/object.assign/node_modules/es-abstract/README.md b/node_modules/object.assign/node_modules/es-abstract/README.md deleted file mode 100644 index 20342d1183..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# es-abstract [![Version Badge][npm-version-svg]][package-url] - -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -[![browser support][testling-svg]][testling-url] - -ECMAScript spec abstract operations. -When different versions of the spec conflict, the default export will be the latest version of the abstract operation. -All abstract operations will also be available under an `es5`/`es2015`/`es2016`/`es2017`/`es2018`/`es2019` entry point, and exported property, if you require a specific version. - -## Example - -```js -var ES = require('es-abstract'); -var assert = require('assert'); - -assert(ES.isCallable(function () {})); -assert(!ES.isCallable(/a/g)); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -## Security - -Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. - -[package-url]: https://npmjs.org/package/es-abstract -[npm-version-svg]: http://versionbadg.es/ljharb/es-abstract.svg -[travis-svg]: https://travis-ci.org/ljharb/es-abstract.svg -[travis-url]: https://travis-ci.org/ljharb/es-abstract -[deps-svg]: https://david-dm.org/ljharb/es-abstract.svg -[deps-url]: https://david-dm.org/ljharb/es-abstract -[dev-deps-svg]: https://david-dm.org/ljharb/es-abstract/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/es-abstract#info=devDependencies -[testling-svg]: https://ci.testling.com/ljharb/es-abstract.png -[testling-url]: https://ci.testling.com/ljharb/es-abstract -[npm-badge-png]: https://nodei.co/npm/es-abstract.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/es-abstract.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/es-abstract.svg -[downloads-url]: https://npm-stat.com/charts.html?package=es-abstract diff --git a/node_modules/object.assign/node_modules/es-abstract/es2015.js b/node_modules/object.assign/node_modules/es-abstract/es2015.js deleted file mode 100644 index ffa85b70ad..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es2015.js +++ /dev/null @@ -1,119 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://www.ecma-international.org/ecma-262/6.0/#sec-abstract-operations -var ES6 = { - 'Abstract Equality Comparison': require('./2015/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2015/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2015/StrictEqualityComparison'), - abs: require('./2015/abs'), - AdvanceStringIndex: require('./2015/AdvanceStringIndex'), - ArrayCreate: require('./2015/ArrayCreate'), - ArraySetLength: require('./2015/ArraySetLength'), - ArraySpeciesCreate: require('./2015/ArraySpeciesCreate'), - Call: require('./2015/Call'), - CanonicalNumericIndexString: require('./2015/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2015/CompletePropertyDescriptor'), - CreateDataProperty: require('./2015/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2015/CreateDataPropertyOrThrow'), - CreateHTML: require('./2015/CreateHTML'), - CreateIterResultObject: require('./2015/CreateIterResultObject'), - CreateListFromArrayLike: require('./2015/CreateListFromArrayLike'), - CreateMethodProperty: require('./2015/CreateMethodProperty'), - DateFromTime: require('./2015/DateFromTime'), - Day: require('./2015/Day'), - DayFromYear: require('./2015/DayFromYear'), - DaysInYear: require('./2015/DaysInYear'), - DayWithinYear: require('./2015/DayWithinYear'), - DefinePropertyOrThrow: require('./2015/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2015/DeletePropertyOrThrow'), - EnumerableOwnNames: require('./2015/EnumerableOwnNames'), - floor: require('./2015/floor'), - FromPropertyDescriptor: require('./2015/FromPropertyDescriptor'), - Get: require('./2015/Get'), - GetIterator: require('./2015/GetIterator'), - GetMethod: require('./2015/GetMethod'), - GetOwnPropertyKeys: require('./2015/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2015/GetPrototypeFromConstructor'), - GetSubstitution: require('./2015/GetSubstitution'), - GetV: require('./2015/GetV'), - HasOwnProperty: require('./2015/HasOwnProperty'), - HasProperty: require('./2015/HasProperty'), - HourFromTime: require('./2015/HourFromTime'), - InLeapYear: require('./2015/InLeapYear'), - InstanceofOperator: require('./2015/InstanceofOperator'), - Invoke: require('./2015/Invoke'), - IsAccessorDescriptor: require('./2015/IsAccessorDescriptor'), - IsArray: require('./2015/IsArray'), - IsCallable: require('./2015/IsCallable'), - IsConcatSpreadable: require('./2015/IsConcatSpreadable'), - IsConstructor: require('./2015/IsConstructor'), - IsDataDescriptor: require('./2015/IsDataDescriptor'), - IsExtensible: require('./2015/IsExtensible'), - IsGenericDescriptor: require('./2015/IsGenericDescriptor'), - IsInteger: require('./2015/IsInteger'), - IsPromise: require('./2015/IsPromise'), - IsPropertyDescriptor: require('./2015/IsPropertyDescriptor'), - IsPropertyKey: require('./2015/IsPropertyKey'), - IsRegExp: require('./2015/IsRegExp'), - IteratorClose: require('./2015/IteratorClose'), - IteratorComplete: require('./2015/IteratorComplete'), - IteratorNext: require('./2015/IteratorNext'), - IteratorStep: require('./2015/IteratorStep'), - IteratorValue: require('./2015/IteratorValue'), - MakeDate: require('./2015/MakeDate'), - MakeDay: require('./2015/MakeDay'), - MakeTime: require('./2015/MakeTime'), - MinFromTime: require('./2015/MinFromTime'), - modulo: require('./2015/modulo'), - MonthFromTime: require('./2015/MonthFromTime'), - msFromTime: require('./2015/msFromTime'), - ObjectCreate: require('./2015/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2015/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2015/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2015/OrdinaryGetOwnProperty'), - OrdinaryHasInstance: require('./2015/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2015/OrdinaryHasProperty'), - QuoteJSONString: require('./2015/QuoteJSONString'), - RegExpExec: require('./2015/RegExpExec'), - RequireObjectCoercible: require('./2015/RequireObjectCoercible'), - SameValue: require('./2015/SameValue'), - SameValueZero: require('./2015/SameValueZero'), - SecFromTime: require('./2015/SecFromTime'), - Set: require('./2015/Set'), - SetFunctionName: require('./2015/SetFunctionName'), - SetIntegrityLevel: require('./2015/SetIntegrityLevel'), - SpeciesConstructor: require('./2015/SpeciesConstructor'), - SymbolDescriptiveString: require('./2015/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2015/TestIntegrityLevel'), - thisBooleanValue: require('./2015/thisBooleanValue'), - thisNumberValue: require('./2015/thisNumberValue'), - thisStringValue: require('./2015/thisStringValue'), - thisTimeValue: require('./2015/thisTimeValue'), - TimeClip: require('./2015/TimeClip'), - TimeFromYear: require('./2015/TimeFromYear'), - TimeWithinDay: require('./2015/TimeWithinDay'), - ToBoolean: require('./2015/ToBoolean'), - ToDateString: require('./2015/ToDateString'), - ToInt16: require('./2015/ToInt16'), - ToInt32: require('./2015/ToInt32'), - ToInt8: require('./2015/ToInt8'), - ToInteger: require('./2015/ToInteger'), - ToLength: require('./2015/ToLength'), - ToNumber: require('./2015/ToNumber'), - ToObject: require('./2015/ToObject'), - ToPrimitive: require('./2015/ToPrimitive'), - ToPropertyDescriptor: require('./2015/ToPropertyDescriptor'), - ToPropertyKey: require('./2015/ToPropertyKey'), - ToString: require('./2015/ToString'), - ToUint16: require('./2015/ToUint16'), - ToUint32: require('./2015/ToUint32'), - ToUint8: require('./2015/ToUint8'), - ToUint8Clamp: require('./2015/ToUint8Clamp'), - Type: require('./2015/Type'), - ValidateAndApplyPropertyDescriptor: require('./2015/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2015/WeekDay'), - YearFromTime: require('./2015/YearFromTime') -}; - -module.exports = ES6; diff --git a/node_modules/object.assign/node_modules/es-abstract/es2016.js b/node_modules/object.assign/node_modules/es-abstract/es2016.js deleted file mode 100644 index 75e68f16f8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es2016.js +++ /dev/null @@ -1,124 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://www.ecma-international.org/ecma-262/7.0/#sec-abstract-operations -var ES2016 = { - 'Abstract Equality Comparison': require('./2016/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2016/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2016/StrictEqualityComparison'), - abs: require('./2016/abs'), - AdvanceStringIndex: require('./2016/AdvanceStringIndex'), - ArrayCreate: require('./2016/ArrayCreate'), - ArraySetLength: require('./2016/ArraySetLength'), - ArraySpeciesCreate: require('./2016/ArraySpeciesCreate'), - Call: require('./2016/Call'), - CanonicalNumericIndexString: require('./2016/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2016/CompletePropertyDescriptor'), - CreateDataProperty: require('./2016/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2016/CreateDataPropertyOrThrow'), - CreateHTML: require('./2016/CreateHTML'), - CreateIterResultObject: require('./2016/CreateIterResultObject'), - CreateListFromArrayLike: require('./2016/CreateListFromArrayLike'), - CreateMethodProperty: require('./2016/CreateMethodProperty'), - DateFromTime: require('./2016/DateFromTime'), - Day: require('./2016/Day'), - DayFromYear: require('./2016/DayFromYear'), - DaysInYear: require('./2016/DaysInYear'), - DayWithinYear: require('./2016/DayWithinYear'), - DefinePropertyOrThrow: require('./2016/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2016/DeletePropertyOrThrow'), - EnumerableOwnNames: require('./2016/EnumerableOwnNames'), - floor: require('./2016/floor'), - FromPropertyDescriptor: require('./2016/FromPropertyDescriptor'), - Get: require('./2016/Get'), - GetIterator: require('./2016/GetIterator'), - GetMethod: require('./2016/GetMethod'), - GetOwnPropertyKeys: require('./2016/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2016/GetPrototypeFromConstructor'), - GetSubstitution: require('./2016/GetSubstitution'), - GetV: require('./2016/GetV'), - HasOwnProperty: require('./2016/HasOwnProperty'), - HasProperty: require('./2016/HasProperty'), - HourFromTime: require('./2016/HourFromTime'), - InLeapYear: require('./2016/InLeapYear'), - InstanceofOperator: require('./2016/InstanceofOperator'), - Invoke: require('./2016/Invoke'), - IsAccessorDescriptor: require('./2016/IsAccessorDescriptor'), - IsArray: require('./2016/IsArray'), - IsCallable: require('./2016/IsCallable'), - IsConcatSpreadable: require('./2016/IsConcatSpreadable'), - IsConstructor: require('./2016/IsConstructor'), - IsDataDescriptor: require('./2016/IsDataDescriptor'), - IsExtensible: require('./2016/IsExtensible'), - IsGenericDescriptor: require('./2016/IsGenericDescriptor'), - IsInteger: require('./2016/IsInteger'), - IsPromise: require('./2016/IsPromise'), - IsPropertyDescriptor: require('./2016/IsPropertyDescriptor'), - IsPropertyKey: require('./2016/IsPropertyKey'), - IsRegExp: require('./2016/IsRegExp'), - IterableToArrayLike: require('./2016/IterableToArrayLike'), - IteratorClose: require('./2016/IteratorClose'), - IteratorComplete: require('./2016/IteratorComplete'), - IteratorNext: require('./2016/IteratorNext'), - IteratorStep: require('./2016/IteratorStep'), - IteratorValue: require('./2016/IteratorValue'), - MakeDate: require('./2016/MakeDate'), - MakeDay: require('./2016/MakeDay'), - MakeTime: require('./2016/MakeTime'), - MinFromTime: require('./2016/MinFromTime'), - modulo: require('./2016/modulo'), - MonthFromTime: require('./2016/MonthFromTime'), - msFromTime: require('./2016/msFromTime'), - ObjectCreate: require('./2016/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2016/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2016/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2016/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2016/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2016/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2016/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2016/OrdinarySetPrototypeOf'), - QuoteJSONString: require('./2016/QuoteJSONString'), - RegExpExec: require('./2016/RegExpExec'), - RequireObjectCoercible: require('./2016/RequireObjectCoercible'), - SameValue: require('./2016/SameValue'), - SameValueNonNumber: require('./2016/SameValueNonNumber'), - SameValueZero: require('./2016/SameValueZero'), - SecFromTime: require('./2016/SecFromTime'), - Set: require('./2016/Set'), - SetFunctionName: require('./2016/SetFunctionName'), - SetIntegrityLevel: require('./2016/SetIntegrityLevel'), - SpeciesConstructor: require('./2016/SpeciesConstructor'), - SymbolDescriptiveString: require('./2016/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2016/TestIntegrityLevel'), - thisBooleanValue: require('./2016/thisBooleanValue'), - thisNumberValue: require('./2016/thisNumberValue'), - thisStringValue: require('./2016/thisStringValue'), - thisTimeValue: require('./2016/thisTimeValue'), - TimeClip: require('./2016/TimeClip'), - TimeFromYear: require('./2016/TimeFromYear'), - TimeWithinDay: require('./2016/TimeWithinDay'), - ToBoolean: require('./2016/ToBoolean'), - ToDateString: require('./2016/ToDateString'), - ToInt16: require('./2016/ToInt16'), - ToInt32: require('./2016/ToInt32'), - ToInt8: require('./2016/ToInt8'), - ToInteger: require('./2016/ToInteger'), - ToLength: require('./2016/ToLength'), - ToNumber: require('./2016/ToNumber'), - ToObject: require('./2016/ToObject'), - ToPrimitive: require('./2016/ToPrimitive'), - ToPropertyDescriptor: require('./2016/ToPropertyDescriptor'), - ToPropertyKey: require('./2016/ToPropertyKey'), - ToString: require('./2016/ToString'), - ToUint16: require('./2016/ToUint16'), - ToUint32: require('./2016/ToUint32'), - ToUint8: require('./2016/ToUint8'), - ToUint8Clamp: require('./2016/ToUint8Clamp'), - Type: require('./2016/Type'), - UTF16Encoding: require('./2016/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2016/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2016/WeekDay'), - YearFromTime: require('./2016/YearFromTime') -}; - -module.exports = ES2016; diff --git a/node_modules/object.assign/node_modules/es-abstract/es2017.js b/node_modules/object.assign/node_modules/es-abstract/es2017.js deleted file mode 100644 index ba01619d73..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es2017.js +++ /dev/null @@ -1,126 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://www.ecma-international.org/ecma-262/8.0/#sec-abstract-operations -var ES2017 = { - 'Abstract Equality Comparison': require('./2017/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2017/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2017/StrictEqualityComparison'), - abs: require('./2017/abs'), - AdvanceStringIndex: require('./2017/AdvanceStringIndex'), - ArrayCreate: require('./2017/ArrayCreate'), - ArraySetLength: require('./2017/ArraySetLength'), - ArraySpeciesCreate: require('./2017/ArraySpeciesCreate'), - Call: require('./2017/Call'), - CanonicalNumericIndexString: require('./2017/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2017/CompletePropertyDescriptor'), - CreateDataProperty: require('./2017/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2017/CreateDataPropertyOrThrow'), - CreateHTML: require('./2017/CreateHTML'), - CreateIterResultObject: require('./2017/CreateIterResultObject'), - CreateListFromArrayLike: require('./2017/CreateListFromArrayLike'), - CreateMethodProperty: require('./2017/CreateMethodProperty'), - DateFromTime: require('./2017/DateFromTime'), - Day: require('./2017/Day'), - DayFromYear: require('./2017/DayFromYear'), - DaysInYear: require('./2017/DaysInYear'), - DayWithinYear: require('./2017/DayWithinYear'), - DefinePropertyOrThrow: require('./2017/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2017/DeletePropertyOrThrow'), - EnumerableOwnProperties: require('./2017/EnumerableOwnProperties'), - floor: require('./2017/floor'), - FromPropertyDescriptor: require('./2017/FromPropertyDescriptor'), - Get: require('./2017/Get'), - GetIterator: require('./2017/GetIterator'), - GetMethod: require('./2017/GetMethod'), - GetOwnPropertyKeys: require('./2017/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2017/GetPrototypeFromConstructor'), - GetSubstitution: require('./2017/GetSubstitution'), - GetV: require('./2017/GetV'), - HasOwnProperty: require('./2017/HasOwnProperty'), - HasProperty: require('./2017/HasProperty'), - HourFromTime: require('./2017/HourFromTime'), - InLeapYear: require('./2017/InLeapYear'), - InstanceofOperator: require('./2017/InstanceofOperator'), - Invoke: require('./2017/Invoke'), - IsAccessorDescriptor: require('./2017/IsAccessorDescriptor'), - IsArray: require('./2017/IsArray'), - IsCallable: require('./2017/IsCallable'), - IsConcatSpreadable: require('./2017/IsConcatSpreadable'), - IsConstructor: require('./2017/IsConstructor'), - IsDataDescriptor: require('./2017/IsDataDescriptor'), - IsExtensible: require('./2017/IsExtensible'), - IsGenericDescriptor: require('./2017/IsGenericDescriptor'), - IsInteger: require('./2017/IsInteger'), - IsPromise: require('./2017/IsPromise'), - IsPropertyDescriptor: require('./2017/IsPropertyDescriptor'), - IsPropertyKey: require('./2017/IsPropertyKey'), - IsRegExp: require('./2017/IsRegExp'), - IterableToList: require('./2017/IterableToList'), - IteratorClose: require('./2017/IteratorClose'), - IteratorComplete: require('./2017/IteratorComplete'), - IteratorNext: require('./2017/IteratorNext'), - IteratorStep: require('./2017/IteratorStep'), - IteratorValue: require('./2017/IteratorValue'), - MakeDate: require('./2017/MakeDate'), - MakeDay: require('./2017/MakeDay'), - MakeTime: require('./2017/MakeTime'), - MinFromTime: require('./2017/MinFromTime'), - modulo: require('./2017/modulo'), - MonthFromTime: require('./2017/MonthFromTime'), - msFromTime: require('./2017/msFromTime'), - ObjectCreate: require('./2017/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2017/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2017/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2017/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2017/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2017/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2017/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2017/OrdinarySetPrototypeOf'), - QuoteJSONString: require('./2017/QuoteJSONString'), - RegExpExec: require('./2017/RegExpExec'), - RequireObjectCoercible: require('./2017/RequireObjectCoercible'), - SameValue: require('./2017/SameValue'), - SameValueNonNumber: require('./2017/SameValueNonNumber'), - SameValueZero: require('./2017/SameValueZero'), - SecFromTime: require('./2017/SecFromTime'), - Set: require('./2017/Set'), - SetFunctionName: require('./2017/SetFunctionName'), - SetIntegrityLevel: require('./2017/SetIntegrityLevel'), - SpeciesConstructor: require('./2017/SpeciesConstructor'), - StringGetOwnProperty: require('./2017/StringGetOwnProperty'), - SymbolDescriptiveString: require('./2017/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2017/TestIntegrityLevel'), - thisBooleanValue: require('./2017/thisBooleanValue'), - thisNumberValue: require('./2017/thisNumberValue'), - thisStringValue: require('./2017/thisStringValue'), - thisTimeValue: require('./2017/thisTimeValue'), - TimeClip: require('./2017/TimeClip'), - TimeFromYear: require('./2017/TimeFromYear'), - TimeWithinDay: require('./2017/TimeWithinDay'), - ToBoolean: require('./2017/ToBoolean'), - ToDateString: require('./2017/ToDateString'), - ToIndex: require('./2017/ToIndex'), - ToInt16: require('./2017/ToInt16'), - ToInt32: require('./2017/ToInt32'), - ToInt8: require('./2017/ToInt8'), - ToInteger: require('./2017/ToInteger'), - ToLength: require('./2017/ToLength'), - ToNumber: require('./2017/ToNumber'), - ToObject: require('./2017/ToObject'), - ToPrimitive: require('./2017/ToPrimitive'), - ToPropertyDescriptor: require('./2017/ToPropertyDescriptor'), - ToPropertyKey: require('./2017/ToPropertyKey'), - ToString: require('./2017/ToString'), - ToUint16: require('./2017/ToUint16'), - ToUint32: require('./2017/ToUint32'), - ToUint8: require('./2017/ToUint8'), - ToUint8Clamp: require('./2017/ToUint8Clamp'), - Type: require('./2017/Type'), - UTF16Encoding: require('./2017/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2017/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2017/WeekDay'), - YearFromTime: require('./2017/YearFromTime') -}; - -module.exports = ES2017; diff --git a/node_modules/object.assign/node_modules/es-abstract/es2018.js b/node_modules/object.assign/node_modules/es-abstract/es2018.js deleted file mode 100644 index 6d4fd082e6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es2018.js +++ /dev/null @@ -1,134 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://www.ecma-international.org/ecma-262/9.0/#sec-abstract-operations -var ES2018 = { - 'Abstract Equality Comparison': require('./2018/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2018/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2018/StrictEqualityComparison'), - abs: require('./2018/abs'), - AdvanceStringIndex: require('./2018/AdvanceStringIndex'), - ArrayCreate: require('./2018/ArrayCreate'), - ArraySetLength: require('./2018/ArraySetLength'), - ArraySpeciesCreate: require('./2018/ArraySpeciesCreate'), - Call: require('./2018/Call'), - CanonicalNumericIndexString: require('./2018/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2018/CompletePropertyDescriptor'), - CopyDataProperties: require('./2018/CopyDataProperties'), - CreateDataProperty: require('./2018/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2018/CreateDataPropertyOrThrow'), - CreateHTML: require('./2018/CreateHTML'), - CreateIterResultObject: require('./2018/CreateIterResultObject'), - CreateListFromArrayLike: require('./2018/CreateListFromArrayLike'), - CreateMethodProperty: require('./2018/CreateMethodProperty'), - DateFromTime: require('./2018/DateFromTime'), - DateString: require('./2018/DateString'), - Day: require('./2018/Day'), - DayFromYear: require('./2018/DayFromYear'), - DaysInYear: require('./2018/DaysInYear'), - DayWithinYear: require('./2018/DayWithinYear'), - DefinePropertyOrThrow: require('./2018/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2018/DeletePropertyOrThrow'), - EnumerableOwnPropertyNames: require('./2018/EnumerableOwnPropertyNames'), - floor: require('./2018/floor'), - FromPropertyDescriptor: require('./2018/FromPropertyDescriptor'), - Get: require('./2018/Get'), - GetIterator: require('./2018/GetIterator'), - GetMethod: require('./2018/GetMethod'), - GetOwnPropertyKeys: require('./2018/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2018/GetPrototypeFromConstructor'), - GetSubstitution: require('./2018/GetSubstitution'), - GetV: require('./2018/GetV'), - HasOwnProperty: require('./2018/HasOwnProperty'), - HasProperty: require('./2018/HasProperty'), - HourFromTime: require('./2018/HourFromTime'), - InLeapYear: require('./2018/InLeapYear'), - InstanceofOperator: require('./2018/InstanceofOperator'), - Invoke: require('./2018/Invoke'), - IsAccessorDescriptor: require('./2018/IsAccessorDescriptor'), - IsArray: require('./2018/IsArray'), - IsCallable: require('./2018/IsCallable'), - IsConcatSpreadable: require('./2018/IsConcatSpreadable'), - IsConstructor: require('./2018/IsConstructor'), - IsDataDescriptor: require('./2018/IsDataDescriptor'), - IsExtensible: require('./2018/IsExtensible'), - IsGenericDescriptor: require('./2018/IsGenericDescriptor'), - IsInteger: require('./2018/IsInteger'), - IsPromise: require('./2018/IsPromise'), - IsPropertyKey: require('./2018/IsPropertyKey'), - IsRegExp: require('./2018/IsRegExp'), - IsStringPrefix: require('./2018/IsStringPrefix'), - IterableToList: require('./2018/IterableToList'), - IteratorClose: require('./2018/IteratorClose'), - IteratorComplete: require('./2018/IteratorComplete'), - IteratorNext: require('./2018/IteratorNext'), - IteratorStep: require('./2018/IteratorStep'), - IteratorValue: require('./2018/IteratorValue'), - MakeDate: require('./2018/MakeDate'), - MakeDay: require('./2018/MakeDay'), - MakeTime: require('./2018/MakeTime'), - MinFromTime: require('./2018/MinFromTime'), - modulo: require('./2018/modulo'), - MonthFromTime: require('./2018/MonthFromTime'), - msFromTime: require('./2018/msFromTime'), - NumberToString: require('./2018/NumberToString'), - ObjectCreate: require('./2018/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2018/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2018/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2018/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2018/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2018/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2018/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2018/OrdinarySetPrototypeOf'), - PromiseResolve: require('./2018/PromiseResolve'), - QuoteJSONString: require('./2018/QuoteJSONString'), - RegExpExec: require('./2018/RegExpExec'), - RequireObjectCoercible: require('./2018/RequireObjectCoercible'), - SameValue: require('./2018/SameValue'), - SameValueNonNumber: require('./2018/SameValueNonNumber'), - SameValueZero: require('./2018/SameValueZero'), - SecFromTime: require('./2018/SecFromTime'), - Set: require('./2018/Set'), - SetFunctionLength: require('./2018/SetFunctionLength'), - SetFunctionName: require('./2018/SetFunctionName'), - SetIntegrityLevel: require('./2018/SetIntegrityLevel'), - SpeciesConstructor: require('./2018/SpeciesConstructor'), - StringGetOwnProperty: require('./2018/StringGetOwnProperty'), - SymbolDescriptiveString: require('./2018/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2018/TestIntegrityLevel'), - thisBooleanValue: require('./2018/thisBooleanValue'), - thisNumberValue: require('./2018/thisNumberValue'), - thisStringValue: require('./2018/thisStringValue'), - thisSymbolValue: require('./2018/thisSymbolValue'), - thisTimeValue: require('./2018/thisTimeValue'), - TimeClip: require('./2018/TimeClip'), - TimeFromYear: require('./2018/TimeFromYear'), - TimeString: require('./2018/TimeString'), - TimeWithinDay: require('./2018/TimeWithinDay'), - ToBoolean: require('./2018/ToBoolean'), - ToDateString: require('./2018/ToDateString'), - ToIndex: require('./2018/ToIndex'), - ToInt16: require('./2018/ToInt16'), - ToInt32: require('./2018/ToInt32'), - ToInt8: require('./2018/ToInt8'), - ToInteger: require('./2018/ToInteger'), - ToLength: require('./2018/ToLength'), - ToNumber: require('./2018/ToNumber'), - ToObject: require('./2018/ToObject'), - ToPrimitive: require('./2018/ToPrimitive'), - ToPropertyDescriptor: require('./2018/ToPropertyDescriptor'), - ToPropertyKey: require('./2018/ToPropertyKey'), - ToString: require('./2018/ToString'), - ToUint16: require('./2018/ToUint16'), - ToUint32: require('./2018/ToUint32'), - ToUint8: require('./2018/ToUint8'), - ToUint8Clamp: require('./2018/ToUint8Clamp'), - Type: require('./2018/Type'), - UnicodeEscape: require('./2018/UnicodeEscape'), - UTF16Encoding: require('./2018/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2018/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2018/WeekDay'), - YearFromTime: require('./2018/YearFromTime') -}; - -module.exports = ES2018; diff --git a/node_modules/object.assign/node_modules/es-abstract/es2019.js b/node_modules/object.assign/node_modules/es-abstract/es2019.js deleted file mode 100644 index 789aafaa5b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es2019.js +++ /dev/null @@ -1,137 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://www.ecma-international.org/ecma-262/10.0/#sec-abstract-operations -var ES2019 = { - 'Abstract Equality Comparison': require('./2019/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2019/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2019/StrictEqualityComparison'), - abs: require('./2019/abs'), - AddEntriesFromIterable: require('./2019/AddEntriesFromIterable'), - AdvanceStringIndex: require('./2019/AdvanceStringIndex'), - ArrayCreate: require('./2019/ArrayCreate'), - ArraySetLength: require('./2019/ArraySetLength'), - ArraySpeciesCreate: require('./2019/ArraySpeciesCreate'), - Call: require('./2019/Call'), - CanonicalNumericIndexString: require('./2019/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2019/CompletePropertyDescriptor'), - CopyDataProperties: require('./2019/CopyDataProperties'), - CreateDataProperty: require('./2019/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2019/CreateDataPropertyOrThrow'), - CreateHTML: require('./2019/CreateHTML'), - CreateIterResultObject: require('./2019/CreateIterResultObject'), - CreateListFromArrayLike: require('./2019/CreateListFromArrayLike'), - CreateMethodProperty: require('./2019/CreateMethodProperty'), - DateFromTime: require('./2019/DateFromTime'), - DateString: require('./2019/DateString'), - Day: require('./2019/Day'), - DayFromYear: require('./2019/DayFromYear'), - DaysInYear: require('./2019/DaysInYear'), - DayWithinYear: require('./2019/DayWithinYear'), - DefinePropertyOrThrow: require('./2019/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2019/DeletePropertyOrThrow'), - EnumerableOwnPropertyNames: require('./2019/EnumerableOwnPropertyNames'), - FlattenIntoArray: require('./2019/FlattenIntoArray'), - floor: require('./2019/floor'), - FromPropertyDescriptor: require('./2019/FromPropertyDescriptor'), - Get: require('./2019/Get'), - GetIterator: require('./2019/GetIterator'), - GetMethod: require('./2019/GetMethod'), - GetOwnPropertyKeys: require('./2019/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2019/GetPrototypeFromConstructor'), - GetSubstitution: require('./2019/GetSubstitution'), - GetV: require('./2019/GetV'), - HasOwnProperty: require('./2019/HasOwnProperty'), - HasProperty: require('./2019/HasProperty'), - HourFromTime: require('./2019/HourFromTime'), - InLeapYear: require('./2019/InLeapYear'), - InstanceofOperator: require('./2019/InstanceofOperator'), - Invoke: require('./2019/Invoke'), - IsAccessorDescriptor: require('./2019/IsAccessorDescriptor'), - IsArray: require('./2019/IsArray'), - IsCallable: require('./2019/IsCallable'), - IsConcatSpreadable: require('./2019/IsConcatSpreadable'), - IsConstructor: require('./2019/IsConstructor'), - IsDataDescriptor: require('./2019/IsDataDescriptor'), - IsExtensible: require('./2019/IsExtensible'), - IsGenericDescriptor: require('./2019/IsGenericDescriptor'), - IsInteger: require('./2019/IsInteger'), - IsPromise: require('./2019/IsPromise'), - IsPropertyKey: require('./2019/IsPropertyKey'), - IsRegExp: require('./2019/IsRegExp'), - IsStringPrefix: require('./2019/IsStringPrefix'), - IterableToList: require('./2019/IterableToList'), - IteratorClose: require('./2019/IteratorClose'), - IteratorComplete: require('./2019/IteratorComplete'), - IteratorNext: require('./2019/IteratorNext'), - IteratorStep: require('./2019/IteratorStep'), - IteratorValue: require('./2019/IteratorValue'), - MakeDate: require('./2019/MakeDate'), - MakeDay: require('./2019/MakeDay'), - MakeTime: require('./2019/MakeTime'), - MinFromTime: require('./2019/MinFromTime'), - modulo: require('./2019/modulo'), - MonthFromTime: require('./2019/MonthFromTime'), - msFromTime: require('./2019/msFromTime'), - NumberToString: require('./2019/NumberToString'), - ObjectCreate: require('./2019/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2019/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2019/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2019/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2019/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2019/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2019/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2019/OrdinarySetPrototypeOf'), - PromiseResolve: require('./2019/PromiseResolve'), - QuoteJSONString: require('./2019/QuoteJSONString'), - RegExpExec: require('./2019/RegExpExec'), - RequireObjectCoercible: require('./2019/RequireObjectCoercible'), - SameValue: require('./2019/SameValue'), - SameValueNonNumber: require('./2019/SameValueNonNumber'), - SameValueZero: require('./2019/SameValueZero'), - SecFromTime: require('./2019/SecFromTime'), - Set: require('./2019/Set'), - SetFunctionLength: require('./2019/SetFunctionLength'), - SetFunctionName: require('./2019/SetFunctionName'), - SetIntegrityLevel: require('./2019/SetIntegrityLevel'), - SpeciesConstructor: require('./2019/SpeciesConstructor'), - StringGetOwnProperty: require('./2019/StringGetOwnProperty'), - SymbolDescriptiveString: require('./2019/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2019/TestIntegrityLevel'), - thisBooleanValue: require('./2019/thisBooleanValue'), - thisNumberValue: require('./2019/thisNumberValue'), - thisStringValue: require('./2019/thisStringValue'), - thisSymbolValue: require('./2019/thisSymbolValue'), - thisTimeValue: require('./2019/thisTimeValue'), - TimeClip: require('./2019/TimeClip'), - TimeFromYear: require('./2019/TimeFromYear'), - TimeString: require('./2019/TimeString'), - TimeWithinDay: require('./2019/TimeWithinDay'), - ToBoolean: require('./2019/ToBoolean'), - ToDateString: require('./2019/ToDateString'), - ToIndex: require('./2019/ToIndex'), - ToInt16: require('./2019/ToInt16'), - ToInt32: require('./2019/ToInt32'), - ToInt8: require('./2019/ToInt8'), - ToInteger: require('./2019/ToInteger'), - ToLength: require('./2019/ToLength'), - ToNumber: require('./2019/ToNumber'), - ToObject: require('./2019/ToObject'), - ToPrimitive: require('./2019/ToPrimitive'), - ToPropertyDescriptor: require('./2019/ToPropertyDescriptor'), - ToPropertyKey: require('./2019/ToPropertyKey'), - ToString: require('./2019/ToString'), - ToUint16: require('./2019/ToUint16'), - ToUint32: require('./2019/ToUint32'), - ToUint8: require('./2019/ToUint8'), - ToUint8Clamp: require('./2019/ToUint8Clamp'), - TrimString: require('./2019/TrimString'), - Type: require('./2019/Type'), - UnicodeEscape: require('./2019/UnicodeEscape'), - UTF16Encoding: require('./2019/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2019/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2019/WeekDay'), - YearFromTime: require('./2019/YearFromTime') -}; - -module.exports = ES2019; diff --git a/node_modules/object.assign/node_modules/es-abstract/es2020.js b/node_modules/object.assign/node_modules/es-abstract/es2020.js deleted file mode 100644 index d1ed6c8237..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es2020.js +++ /dev/null @@ -1,153 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://www.ecma-international.org/ecma-262/10.0/#sec-abstract-operations -var ES2020 = { - 'Abstract Equality Comparison': require('./2020/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2020/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2020/StrictEqualityComparison'), - abs: require('./2020/abs'), - AddEntriesFromIterable: require('./2020/AddEntriesFromIterable'), - AdvanceStringIndex: require('./2020/AdvanceStringIndex'), - ArrayCreate: require('./2020/ArrayCreate'), - ArraySetLength: require('./2020/ArraySetLength'), - ArraySpeciesCreate: require('./2020/ArraySpeciesCreate'), - BigIntBitwiseOp: require('./2020/BigIntBitwiseOp'), - BinaryAnd: require('./2020/BinaryAnd'), - BinaryOr: require('./2020/BinaryOr'), - BinaryXor: require('./2020/BinaryXor'), - Call: require('./2020/Call'), - CanonicalNumericIndexString: require('./2020/CanonicalNumericIndexString'), - CodePointAt: require('./2020/CodePointAt'), - CompletePropertyDescriptor: require('./2020/CompletePropertyDescriptor'), - CopyDataProperties: require('./2020/CopyDataProperties'), - CreateDataProperty: require('./2020/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2020/CreateDataPropertyOrThrow'), - CreateHTML: require('./2020/CreateHTML'), - CreateIterResultObject: require('./2020/CreateIterResultObject'), - CreateListFromArrayLike: require('./2020/CreateListFromArrayLike'), - CreateMethodProperty: require('./2020/CreateMethodProperty'), - DateFromTime: require('./2020/DateFromTime'), - DateString: require('./2020/DateString'), - Day: require('./2020/Day'), - DayFromYear: require('./2020/DayFromYear'), - DaysInYear: require('./2020/DaysInYear'), - DayWithinYear: require('./2020/DayWithinYear'), - DefinePropertyOrThrow: require('./2020/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2020/DeletePropertyOrThrow'), - EnumerableOwnPropertyNames: require('./2020/EnumerableOwnPropertyNames'), - FlattenIntoArray: require('./2020/FlattenIntoArray'), - floor: require('./2020/floor'), - FromPropertyDescriptor: require('./2020/FromPropertyDescriptor'), - Get: require('./2020/Get'), - GetIterator: require('./2020/GetIterator'), - GetMethod: require('./2020/GetMethod'), - GetOwnPropertyKeys: require('./2020/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2020/GetPrototypeFromConstructor'), - GetSubstitution: require('./2020/GetSubstitution'), - GetV: require('./2020/GetV'), - HasOwnProperty: require('./2020/HasOwnProperty'), - HasProperty: require('./2020/HasProperty'), - HourFromTime: require('./2020/HourFromTime'), - InLeapYear: require('./2020/InLeapYear'), - InstanceofOperator: require('./2020/InstanceofOperator'), - Invoke: require('./2020/Invoke'), - IsAccessorDescriptor: require('./2020/IsAccessorDescriptor'), - IsArray: require('./2020/IsArray'), - IsBigIntElementType: require('./2020/IsBigIntElementType'), - IsCallable: require('./2020/IsCallable'), - IsConcatSpreadable: require('./2020/IsConcatSpreadable'), - IsConstructor: require('./2020/IsConstructor'), - IsDataDescriptor: require('./2020/IsDataDescriptor'), - IsExtensible: require('./2020/IsExtensible'), - IsGenericDescriptor: require('./2020/IsGenericDescriptor'), - IsInteger: require('./2020/IsInteger'), - IsNonNegativeInteger: require('./2020/IsNonNegativeInteger'), - IsNoTearConfiguration: require('./2020/IsNoTearConfiguration'), - IsPromise: require('./2020/IsPromise'), - IsPropertyKey: require('./2020/IsPropertyKey'), - IsRegExp: require('./2020/IsRegExp'), - IsStringPrefix: require('./2020/IsStringPrefix'), - IsUnclampedIntegerElementType: require('./2020/IsUnclampedIntegerElementType'), - IsUnsignedElementType: require('./2020/IsUnsignedElementType'), - IterableToList: require('./2020/IterableToList'), - IteratorClose: require('./2020/IteratorClose'), - IteratorComplete: require('./2020/IteratorComplete'), - IteratorNext: require('./2020/IteratorNext'), - IteratorStep: require('./2020/IteratorStep'), - IteratorValue: require('./2020/IteratorValue'), - LengthOfArrayLike: require('./2020/LengthOfArrayLike'), - MakeDate: require('./2020/MakeDate'), - MakeDay: require('./2020/MakeDay'), - MakeTime: require('./2020/MakeTime'), - MinFromTime: require('./2020/MinFromTime'), - modulo: require('./2020/modulo'), - MonthFromTime: require('./2020/MonthFromTime'), - msFromTime: require('./2020/msFromTime'), - NumberBitwiseOp: require('./2020/NumberBitwiseOp'), - OrdinaryCreateFromConstructor: require('./2020/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2020/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2020/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2020/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2020/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2020/OrdinaryHasProperty'), - OrdinaryObjectCreate: require('./2020/OrdinaryObjectCreate'), - OrdinarySetPrototypeOf: require('./2020/OrdinarySetPrototypeOf'), - PromiseResolve: require('./2020/PromiseResolve'), - QuoteJSONString: require('./2020/QuoteJSONString'), - RegExpExec: require('./2020/RegExpExec'), - RequireObjectCoercible: require('./2020/RequireObjectCoercible'), - SameValue: require('./2020/SameValue'), - SameValueNonNumeric: require('./2020/SameValueNonNumeric'), - SameValueZero: require('./2020/SameValueZero'), - SecFromTime: require('./2020/SecFromTime'), - Set: require('./2020/Set'), - SetFunctionLength: require('./2020/SetFunctionLength'), - SetFunctionName: require('./2020/SetFunctionName'), - SetIntegrityLevel: require('./2020/SetIntegrityLevel'), - SpeciesConstructor: require('./2020/SpeciesConstructor'), - StringGetOwnProperty: require('./2020/StringGetOwnProperty'), - StringPad: require('./2020/StringPad'), - SymbolDescriptiveString: require('./2020/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2020/TestIntegrityLevel'), - thisBigIntValue: require('./2020/thisBigIntValue'), - thisBooleanValue: require('./2020/thisBooleanValue'), - thisNumberValue: require('./2020/thisNumberValue'), - thisStringValue: require('./2020/thisStringValue'), - thisSymbolValue: require('./2020/thisSymbolValue'), - thisTimeValue: require('./2020/thisTimeValue'), - TimeClip: require('./2020/TimeClip'), - TimeFromYear: require('./2020/TimeFromYear'), - TimeString: require('./2020/TimeString'), - TimeWithinDay: require('./2020/TimeWithinDay'), - ToBoolean: require('./2020/ToBoolean'), - ToDateString: require('./2020/ToDateString'), - ToIndex: require('./2020/ToIndex'), - ToInt16: require('./2020/ToInt16'), - ToInt32: require('./2020/ToInt32'), - ToInt8: require('./2020/ToInt8'), - ToInteger: require('./2020/ToInteger'), - ToLength: require('./2020/ToLength'), - ToNumber: require('./2020/ToNumber'), - ToNumeric: require('./2020/ToNumeric'), - ToObject: require('./2020/ToObject'), - ToPrimitive: require('./2020/ToPrimitive'), - ToPropertyDescriptor: require('./2020/ToPropertyDescriptor'), - ToPropertyKey: require('./2020/ToPropertyKey'), - ToString: require('./2020/ToString'), - ToUint16: require('./2020/ToUint16'), - ToUint32: require('./2020/ToUint32'), - ToUint8: require('./2020/ToUint8'), - ToUint8Clamp: require('./2020/ToUint8Clamp'), - TrimString: require('./2020/TrimString'), - Type: require('./2020/Type'), - UnicodeEscape: require('./2020/UnicodeEscape'), - UTF16DecodeString: require('./2020/UTF16DecodeString'), - UTF16DecodeSurrogatePair: require('./2020/UTF16DecodeSurrogatePair'), - UTF16Encoding: require('./2020/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2020/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2020/WeekDay'), - YearFromTime: require('./2020/YearFromTime') -}; - -module.exports = ES2020; diff --git a/node_modules/object.assign/node_modules/es-abstract/es5.js b/node_modules/object.assign/node_modules/es-abstract/es5.js deleted file mode 100644 index 46eb6e17b9..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es5.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ - -// https://es5.github.io/#x9 -module.exports = { - 'Abstract Equality Comparison': require('./5/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./5/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./5/StrictEqualityComparison'), - abs: require('./5/abs'), - CheckObjectCoercible: require('./5/CheckObjectCoercible'), - DateFromTime: require('./5/DateFromTime'), - Day: require('./5/Day'), - DayFromYear: require('./5/DayFromYear'), - DaysInYear: require('./5/DaysInYear'), - DayWithinYear: require('./5/DayWithinYear'), - floor: require('./5/floor'), - FromPropertyDescriptor: require('./5/FromPropertyDescriptor'), - HourFromTime: require('./5/HourFromTime'), - InLeapYear: require('./5/InLeapYear'), - IsAccessorDescriptor: require('./5/IsAccessorDescriptor'), - IsCallable: require('./5/IsCallable'), - IsDataDescriptor: require('./5/IsDataDescriptor'), - IsGenericDescriptor: require('./5/IsGenericDescriptor'), - IsPropertyDescriptor: require('./5/IsPropertyDescriptor'), - MakeDate: require('./5/MakeDate'), - MakeDay: require('./5/MakeDay'), - MakeTime: require('./5/MakeTime'), - MinFromTime: require('./5/MinFromTime'), - modulo: require('./5/modulo'), - MonthFromTime: require('./5/MonthFromTime'), - msFromTime: require('./5/msFromTime'), - SameValue: require('./5/SameValue'), - SecFromTime: require('./5/SecFromTime'), - TimeClip: require('./5/TimeClip'), - TimeFromYear: require('./5/TimeFromYear'), - TimeWithinDay: require('./5/TimeWithinDay'), - ToBoolean: require('./5/ToBoolean'), - ToInt32: require('./5/ToInt32'), - ToInteger: require('./5/ToInteger'), - ToNumber: require('./5/ToNumber'), - ToObject: require('./5/ToObject'), - ToPrimitive: require('./5/ToPrimitive'), - ToPropertyDescriptor: require('./5/ToPropertyDescriptor'), - ToString: require('./5/ToString'), - ToUint16: require('./5/ToUint16'), - ToUint32: require('./5/ToUint32'), - Type: require('./5/Type'), - WeekDay: require('./5/WeekDay'), - YearFromTime: require('./5/YearFromTime') -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/es6.js b/node_modules/object.assign/node_modules/es-abstract/es6.js deleted file mode 100644 index 2d1f4dc927..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es6.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./es2015'); diff --git a/node_modules/object.assign/node_modules/es-abstract/es7.js b/node_modules/object.assign/node_modules/es-abstract/es7.js deleted file mode 100644 index f2f15c0a88..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/es7.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./es2016'); diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/DefineOwnProperty.js b/node_modules/object.assign/node_modules/es-abstract/helpers/DefineOwnProperty.js deleted file mode 100644 index 99ace10777..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/DefineOwnProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -var callBound = require('../helpers/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -// eslint-disable-next-line max-params -module.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) { - if (!$defineProperty) { - if (!IsDataDescriptor(desc)) { - // ES3 does not support getters/setters - return false; - } - if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) { - return false; - } - - // fallback for ES3 - if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) { - // a non-enumerable existing property - return false; - } - - // property does not exist at all, or exists but is enumerable - var V = desc['[[Value]]']; - // eslint-disable-next-line no-param-reassign - O[P] = V; // will use [[Define]] - return SameValue(O[P], V); - } - $defineProperty(O, P, FromPropertyDescriptor(desc)); - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/OwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/helpers/OwnPropertyKeys.js deleted file mode 100644 index 4a06ce3442..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/OwnPropertyKeys.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBind = require('./callBind'); -var callBound = require('./callBound'); - -var $ownKeys = GetIntrinsic('%Reflect.ownKeys%', true); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); -var $gOPS = $SymbolValueOf ? GetIntrinsic('%Object.getOwnPropertySymbols%') : null; - -var keys = require('object-keys'); - -module.exports = $ownKeys || function OwnPropertyKeys(source) { - var ownKeys = ($gOPN || keys)(source); - if ($gOPS) { - $pushApply(ownKeys, $gOPS(source)); - } - return ownKeys; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/assertRecord.js b/node_modules/object.assign/node_modules/es-abstract/helpers/assertRecord.js deleted file mode 100644 index 45e115a449..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/assertRecord.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var has = require('has'); - -var predicates = { - // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type - 'Property Descriptor': function isPropertyDescriptor(Type, Desc) { - if (Type(Desc) !== 'Object') { - return false; - } - var allowed = { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Get]]': true, - '[[Set]]': true, - '[[Value]]': true, - '[[Writable]]': true - }; - - for (var key in Desc) { // eslint-disable-line - if (has(Desc, key) && !allowed[key]) { - return false; - } - } - - var isData = has(Desc, '[[Value]]'); - var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]'); - if (isData && IsAccessor) { - throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); - } - return true; - } -}; - -module.exports = function assertRecord(Type, recordType, argumentName, value) { - var predicate = predicates[recordType]; - if (typeof predicate !== 'function') { - throw new $SyntaxError('unknown record type: ' + recordType); - } - if (!predicate(Type, value)) { - throw new $TypeError(argumentName + ' must be a ' + recordType); - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/assign.js b/node_modules/object.assign/node_modules/es-abstract/helpers/assign.js deleted file mode 100644 index 7e6666e7a8..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/assign.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); - -var $assign = GetIntrinsic('%Object%').assign; - -module.exports = function assign(target, source) { - if ($assign) { - return $assign(target, source); - } - - // eslint-disable-next-line no-restricted-syntax - for (var key in source) { - if (has(source, key)) { - // eslint-disable-next-line no-param-reassign - target[key] = source[key]; - } - } - return target; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/callBind.js b/node_modules/object.assign/node_modules/es-abstract/helpers/callBind.js deleted file mode 100644 index 81b02ec930..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/callBind.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); - -var GetIntrinsic = require('../GetIntrinsic'); - -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -module.exports = function callBind() { - return $reflectApply(bind, $call, arguments); -}; - -module.exports.apply = function applyBind() { - return $reflectApply(bind, $apply, arguments); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/callBound.js b/node_modules/object.assign/node_modules/es-abstract/helpers/callBound.js deleted file mode 100644 index 9dc8fc518a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/callBound.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBind = require('./callBind'); - -var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - -module.exports = function callBoundIntrinsic(name, allowMissing) { - var intrinsic = GetIntrinsic(name, !!allowMissing); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) { - return callBind(intrinsic); - } - return intrinsic; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/every.js b/node_modules/object.assign/node_modules/es-abstract/helpers/every.js deleted file mode 100644 index 42a458211e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/every.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function every(array, predicate) { - for (var i = 0; i < array.length; i += 1) { - if (!predicate(array[i], i, array)) { - return false; - } - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/forEach.js b/node_modules/object.assign/node_modules/es-abstract/helpers/forEach.js deleted file mode 100644 index 35915a656a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/forEach.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function forEach(array, callback) { - for (var i = 0; i < array.length; i += 1) { - callback(array[i], i, array); // eslint-disable-line callback-return - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/getInferredName.js b/node_modules/object.assign/node_modules/es-abstract/helpers/getInferredName.js deleted file mode 100644 index 2dab6e77bb..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/getInferredName.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var getInferredName; -try { - // eslint-disable-next-line no-new-func - getInferredName = Function('s', 'return { [s]() {} }[s].name;'); -} catch (e) {} - -var inferred = function () {}; -module.exports = getInferredName && inferred.name === 'inferred' ? getInferredName : null; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/getIteratorMethod.js b/node_modules/object.assign/node_modules/es-abstract/helpers/getIteratorMethod.js deleted file mode 100644 index 02f932c198..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/getIteratorMethod.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var hasSymbols = require('has-symbols')(); -var GetIntrinsic = require('../GetIntrinsic'); -var callBound = require('./callBound'); - -var $iterator = GetIntrinsic('%Symbol.iterator%', true); -var $stringSlice = callBound('String.prototype.slice'); - -module.exports = function getIteratorMethod(ES, iterable) { - var usingIterator; - if (hasSymbols) { - usingIterator = ES.GetMethod(iterable, $iterator); - } else if (ES.IsArray(iterable)) { - usingIterator = function () { - var i = -1; - var arr = this; // eslint-disable-line no-invalid-this - return { - next: function () { - i += 1; - return { - done: i >= arr.length, - value: arr[i] - }; - } - }; - }; - } else if (ES.Type(iterable) === 'String') { - usingIterator = function () { - var i = 0; - return { - next: function () { - var nextIndex = ES.AdvanceStringIndex(iterable, i, true); - var value = $stringSlice(iterable, i, nextIndex); - i = nextIndex; - return { - done: nextIndex > iterable.length, - value: value - }; - } - }; - }; - } - return usingIterator; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js deleted file mode 100644 index 71168e93ec..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%'); -if ($gOPD) { - try { - $gOPD([], 'length'); - } catch (e) { - // IE 8 has a broken gOPD - $gOPD = null; - } -} - -module.exports = $gOPD; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/getProto.js b/node_modules/object.assign/node_modules/es-abstract/helpers/getProto.js deleted file mode 100644 index af10fd8a18..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/getProto.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var originalGetProto = GetIntrinsic('%Object.getPrototypeOf%', true); -var $ArrayProto = GetIntrinsic('%Array.prototype%'); - -module.exports = originalGetProto || ( - // eslint-disable-next-line no-proto - [].__proto__ === $ArrayProto - ? function (O) { - return O.__proto__; // eslint-disable-line no-proto - } - : null -); diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/getSymbolDescription.js b/node_modules/object.assign/node_modules/es-abstract/helpers/getSymbolDescription.js deleted file mode 100644 index 45d80d2534..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/getSymbolDescription.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var callBound = require('./callBound'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var getGlobalSymbolDescription = GetIntrinsic('%Symbol.keyFor%', true); -var thisSymbolValue = callBound('%Symbol.prototype.valueOf%', true); -var symToStr = callBound('Symbol.prototype.toString', true); - -var getInferredName = require('./getInferredName'); - -/* eslint-disable consistent-return */ -module.exports = callBound('%Symbol.prototype.description%', true) || function getSymbolDescription(symbol) { - if (!thisSymbolValue) { - throw new $SyntaxError('Symbols are not supported in this environment'); - } - - // will throw if not a symbol primitive or wrapper object - var sym = thisSymbolValue(symbol); - - if (getInferredName) { - var name = getInferredName(sym); - if (name === '') { return; } - return name.slice(1, -1); // name.slice('['.length, -']'.length); - } - - var desc; - if (getGlobalSymbolDescription) { - desc = getGlobalSymbolDescription(sym); - if (typeof desc === 'string') { - return desc; - } - } - - desc = symToStr(sym).slice(7, -1); // str.slice('Symbol('.length, -')'.length); - if (desc) { - return desc; - } -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/isFinite.js b/node_modules/object.assign/node_modules/es-abstract/helpers/isFinite.js deleted file mode 100644 index 9e7cd4f82f..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/isFinite.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var $isNaN = Number.isNaN || function (a) { return a !== a; }; - -module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; }; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/isNaN.js b/node_modules/object.assign/node_modules/es-abstract/helpers/isNaN.js deleted file mode 100644 index cb8631dca6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/isNaN.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = Number.isNaN || function isNaN(a) { - return a !== a; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/isPrefixOf.js b/node_modules/object.assign/node_modules/es-abstract/helpers/isPrefixOf.js deleted file mode 100644 index b67d640567..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/isPrefixOf.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $strSlice = require('../helpers/callBound')('String.prototype.slice'); - -module.exports = function isPrefixOf(prefix, string) { - if (prefix === string) { - return true; - } - if (prefix.length > string.length) { - return false; - } - return $strSlice(string, 0, prefix.length) === prefix; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/isPrimitive.js b/node_modules/object.assign/node_modules/es-abstract/helpers/isPrimitive.js deleted file mode 100644 index 06f0bf0425..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/isPrimitive.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isPrimitive(value) { - return value === null || (typeof value !== 'function' && typeof value !== 'object'); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/isPropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/helpers/isPropertyDescriptor.js deleted file mode 100644 index 3eff7eb8ff..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/isPropertyDescriptor.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var has = require('has'); -var $TypeError = GetIntrinsic('%TypeError%'); - -module.exports = function IsPropertyDescriptor(ES, Desc) { - if (ES.Type(Desc) !== 'Object') { - return false; - } - var allowed = { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Get]]': true, - '[[Set]]': true, - '[[Value]]': true, - '[[Writable]]': true - }; - - for (var key in Desc) { // eslint-disable-line no-restricted-syntax - if (has(Desc, key) && !allowed[key]) { - return false; - } - } - - if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) { - throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); - } - return true; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js b/node_modules/object.assign/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js deleted file mode 100644 index a6162a1d3c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var every = require('./every'); - -module.exports = function isSamePropertyDescriptor(ES, D1, D2) { - var fields = [ - '[[Configurable]]', - '[[Enumerable]]', - '[[Get]]', - '[[Set]]', - '[[Value]]', - '[[Writable]]' - ]; - return every(fields, function (field) { - if ((field in D1) !== (field in D2)) { - return false; - } - return ES.SameValue(D1[field], D2[field]); - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/maxSafeInteger.js b/node_modules/object.assign/node_modules/es-abstract/helpers/maxSafeInteger.js deleted file mode 100644 index 2fe8f38e1b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/maxSafeInteger.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $Math = GetIntrinsic('%Math%'); -var $Number = GetIntrinsic('%Number%'); - -module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/mod.js b/node_modules/object.assign/node_modules/es-abstract/helpers/mod.js deleted file mode 100644 index 67c8b78a26..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/mod.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var $floor = Math.floor; - -module.exports = function mod(number, modulo) { - var remain = number % modulo; - return $floor(remain >= 0 ? remain : remain + modulo); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/padTimeComponent.js b/node_modules/object.assign/node_modules/es-abstract/helpers/padTimeComponent.js deleted file mode 100644 index cbd8d0612a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/padTimeComponent.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var callBound = require('../helpers/callBound'); - -var $strSlice = callBound('String.prototype.slice'); - -module.exports = function padTimeComponent(c, count) { - return $strSlice('00' + c, -(count || 2)); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/regexTester.js b/node_modules/object.assign/node_modules/es-abstract/helpers/regexTester.js deleted file mode 100644 index 982cc9f77d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/regexTester.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var $test = GetIntrinsic('RegExp.prototype.test'); - -var callBind = require('./callBind'); - -module.exports = function regexTester(regex) { - return callBind($test, regex); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/setProto.js b/node_modules/object.assign/node_modules/es-abstract/helpers/setProto.js deleted file mode 100644 index 29ec9914bc..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/setProto.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var originalSetProto = GetIntrinsic('%Object.setPrototypeOf%', true); -var $ArrayProto = GetIntrinsic('%Array.prototype%'); - -module.exports = originalSetProto || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayProto - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/sign.js b/node_modules/object.assign/node_modules/es-abstract/helpers/sign.js deleted file mode 100644 index 598ea7d8b4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/sign.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function sign(number) { - return number >= 0 ? 1 : -1; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/helpers/timeConstants.js b/node_modules/object.assign/node_modules/es-abstract/helpers/timeConstants.js deleted file mode 100644 index c275b40e70..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/helpers/timeConstants.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var HoursPerDay = 24; -var MinutesPerHour = 60; -var SecondsPerMinute = 60; -var msPerSecond = 1e3; -var msPerMinute = msPerSecond * SecondsPerMinute; -var msPerHour = msPerMinute * MinutesPerHour; -var msPerDay = 86400000; - -module.exports = { - HoursPerDay: HoursPerDay, - MinutesPerHour: MinutesPerHour, - SecondsPerMinute: SecondsPerMinute, - msPerSecond: msPerSecond, - msPerMinute: msPerMinute, - msPerHour: msPerHour, - msPerDay: msPerDay -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/index.js b/node_modules/object.assign/node_modules/es-abstract/index.js deleted file mode 100644 index 5cd529294d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/index.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var assign = require('./helpers/assign'); - -var ES5 = require('./es5'); -var ES2015 = require('./es2015'); -var ES2016 = require('./es2016'); -var ES2017 = require('./es2017'); -var ES2018 = require('./es2018'); -var ES2019 = require('./es2019'); -var ES2020 = require('./es2020'); - -var ES = { - ES5: ES5, - ES6: ES2015, - ES2015: ES2015, - ES7: ES2016, - ES2016: ES2016, - ES2017: ES2017, - ES2018: ES2018, - ES2019: ES2019, - ES2020: ES2020 -}; -assign(ES, ES5); -delete ES.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible -assign(ES, ES2015); - -module.exports = ES; diff --git a/node_modules/object.assign/node_modules/es-abstract/operations/.eslintrc b/node_modules/object.assign/node_modules/es-abstract/operations/.eslintrc deleted file mode 100644 index bcd76f7671..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/operations/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "id-length": 0, - }, -} diff --git a/node_modules/object.assign/node_modules/es-abstract/operations/2015.js b/node_modules/object.assign/node_modules/es-abstract/operations/2015.js deleted file mode 100644 index 6c508918e0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/operations/2015.js +++ /dev/null @@ -1,249 +0,0 @@ -'use strict'; - -module.exports = { - IsPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op - - abs: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions', - 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/6.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/6.0/#sec-addrestrictedfunctionproperties', - AdvanceStringIndex: 'https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex', - AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/6.0/#sec-allocatearraybuffer', - AllocateTypedArray: 'https://ecma-international.org/ecma-262/6.0/#sec-allocatetypedarray', - ArrayCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-arraycreate', - ArraySetLength: 'https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate', - BoundFunctionCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-boundfunctioncreate', - Call: 'https://ecma-international.org/ecma-262/6.0/#sec-call', - Canonicalize: 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring', - CharacterRange: 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterSetMatcher: 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://ecma-international.org/ecma-262/6.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor', - Completion: 'https://ecma-international.org/ecma-262/6.0/#sec-implicit-completion-values', - Construct: 'https://ecma-international.org/ecma-262/6.0/#sec-construct', - CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/6.0/#sec-copydatablockbytes', - CreateArrayFromList: 'https://ecma-international.org/ecma-262/6.0/#sec-createarrayfromlist', - CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/6.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://ecma-international.org/ecma-262/6.0/#sec-createbytedatablock', - CreateDataProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://ecma-international.org/ecma-262/6.0/#sec-createdynamicfunction', - CreateHTML: 'https://ecma-international.org/ecma-262/6.0/#sec-createhtml', - CreateIntrinsics: 'https://ecma-international.org/ecma-262/6.0/#sec-createintrinsics', - CreateIterResultObject: 'https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike', - CreateListIterator: 'https://ecma-international.org/ecma-262/6.0/#sec-createlistiterator', - CreateMapIterator: 'https://ecma-international.org/ecma-262/6.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/6.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-createperiterationenvironment', - CreateRealm: 'https://ecma-international.org/ecma-262/6.0/#sec-createrealm', - CreateSetIterator: 'https://ecma-international.org/ecma-262/6.0/#sec-createsetiterator', - CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/6.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-date-number', - Day: 'https://ecma-international.org/ecma-262/6.0/#sec-day-number-and-time-within-day', - DayFromYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number', - DaysInYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number', - DayWithinYear: 'https://ecma-international.org/ecma-262/6.0/#sec-month-number', - Decode: 'https://ecma-international.org/ecma-262/6.0/#sec-decode', - DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://ecma-international.org/ecma-262/6.0/#sec-detacharraybuffer', - Encode: 'https://ecma-international.org/ecma-262/6.0/#sec-encode', - EnqueueJob: 'https://ecma-international.org/ecma-262/6.0/#sec-enqueuejob', - EnumerableOwnNames: 'https://ecma-international.org/ecma-262/6.0/#sec-enumerableownnames', - EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/6.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/6.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://ecma-international.org/ecma-262/6.0/#sec-evaluatecall', - EvaluateDirectCall: 'https://ecma-international.org/ecma-262/6.0/#sec-evaluatedirectcall', - EvaluateNew: 'https://ecma-international.org/ecma-262/6.0/#sec-evaluatenew', - floor: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions', - ForBodyEvaluation: 'https://ecma-international.org/ecma-262/6.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://ecma-international.org/ecma-262/6.0/#sec-fulfillpromise', - FunctionAllocate: 'https://ecma-international.org/ecma-262/6.0/#sec-functionallocate', - FunctionCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-functioncreate', - FunctionInitialize: 'https://ecma-international.org/ecma-262/6.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://ecma-international.org/ecma-262/6.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/6.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://ecma-international.org/ecma-262/6.0/#sec-generatorstart', - GeneratorValidate: 'https://ecma-international.org/ecma-262/6.0/#sec-generatorvalidate', - GeneratorYield: 'https://ecma-international.org/ecma-262/6.0/#sec-generatoryield', - Get: 'https://ecma-international.org/ecma-262/6.0/#sec-get-o-p', - GetBase: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - GetFunctionRealm: 'https://ecma-international.org/ecma-262/6.0/#sec-getfunctionrealm', - GetGlobalObject: 'https://ecma-international.org/ecma-262/6.0/#sec-getglobalobject', - GetIdentifierReference: 'https://ecma-international.org/ecma-262/6.0/#sec-getidentifierreference', - GetIterator: 'https://ecma-international.org/ecma-262/6.0/#sec-getiterator', - GetMethod: 'https://ecma-international.org/ecma-262/6.0/#sec-getmethod', - GetModuleNamespace: 'https://ecma-international.org/ecma-262/6.0/#sec-getmodulenamespace', - GetNewTarget: 'https://ecma-international.org/ecma-262/6.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - GetSubstitution: 'https://ecma-international.org/ecma-262/6.0/#sec-getsubstitution', - GetSuperConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://ecma-international.org/ecma-262/6.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-getthisenvironment', - GetThisValue: 'https://ecma-international.org/ecma-262/6.0/#sec-getthisvalue', - GetV: 'https://ecma-international.org/ecma-262/6.0/#sec-getv', - GetValue: 'https://ecma-international.org/ecma-262/6.0/#sec-getvalue', - GetValueFromBuffer: 'https://ecma-international.org/ecma-262/6.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://ecma-international.org/ecma-262/6.0/#sec-getviewvalue', - HasOwnProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - HasProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-hasproperty', - HostResolveImportedModule: 'sec-hostresolveimportedmodule', - HourFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds', - ImportedLocalNames: 'https://ecma-international.org/ecma-262/6.0/#sec-importedlocalnames', - InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/6.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/6.0/#sec-initializereferencedbinding', - InLeapYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number', - InstanceofOperator: 'https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/6.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/6.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-internalizejsonproperty', - Invoke: 'https://ecma-international.org/ecma-262/6.0/#sec-invoke', - IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/6.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://ecma-international.org/ecma-262/6.0/#sec-isarray', - IsCallable: 'https://ecma-international.org/ecma-262/6.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable', - IsConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-isconstructor', - IsDataDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://ecma-international.org/ecma-262/6.0/#sec-isdetachedbuffer', - IsExtensible: 'https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://ecma-international.org/ecma-262/6.0/#sec-isintailposition', - IsInteger: 'https://ecma-international.org/ecma-262/6.0/#sec-isinteger', - IsLabelledFunction: 'https://ecma-international.org/ecma-262/6.0/#sec-islabelledfunction', - IsPromise: 'https://ecma-international.org/ecma-262/6.0/#sec-ispromise', - IsPropertyKey: 'https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey', - IsPropertyReference: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - IsRegExp: 'https://ecma-international.org/ecma-262/6.0/#sec-isregexp', - IsStrictReference: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - IsSuperReference: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - IsUnresolvableReference: 'https://ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues', - IsWordChar: 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IteratorClose: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose', - IteratorComplete: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete', - IteratorNext: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratornext', - IteratorStep: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep', - IteratorValue: 'https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue', - LocalTime: 'https://ecma-international.org/ecma-262/6.0/#sec-localtime', - LoopContinues: 'https://ecma-international.org/ecma-262/6.0/#sec-loopcontinues', - MakeArgGetter: 'https://ecma-international.org/ecma-262/6.0/#sec-makearggetter', - MakeArgSetter: 'https://ecma-international.org/ecma-262/6.0/#sec-makeargsetter', - MakeClassConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-makeclassconstructor', - MakeConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-makeconstructor', - MakeDate: 'https://ecma-international.org/ecma-262/6.0/#sec-makedate', - MakeDay: 'https://ecma-international.org/ecma-262/6.0/#sec-makeday', - MakeMethod: 'https://ecma-international.org/ecma-262/6.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/6.0/#sec-makesuperpropertyreference', - MakeTime: 'https://ecma-international.org/ecma-262/6.0/#sec-maketime', - max: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions', - min: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions', - MinFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds', - ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-modulenamespacecreate', - modulo: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions', - MonthFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-month-number', - msFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds', - msPerDay: 'https://ecma-international.org/ecma-262/6.0/#sec-day-number-and-time-within-day', - NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://ecma-international.org/ecma-262/6.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://ecma-international.org/ecma-262/6.0/#sec-newpromisecapability', - NormalCompletion: 'https://ecma-international.org/ecma-262/6.0/#sec-normalcompletion', - ObjectCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-objectcreate', - ObjectDefineProperties: 'https://ecma-international.org/ecma-262/6.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty', - OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty', - OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty', - ParseModule: 'https://ecma-international.org/ecma-262/6.0/#sec-parsemodule', - PerformEval: 'https://ecma-international.org/ecma-262/6.0/#sec-performeval', - PerformPromiseAll: 'https://ecma-international.org/ecma-262/6.0/#sec-performpromiseall', - PerformPromiseRace: 'https://ecma-international.org/ecma-262/6.0/#sec-performpromiserace', - PerformPromiseThen: 'https://ecma-international.org/ecma-262/6.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/6.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://ecma-international.org/ecma-262/6.0/#sec-preparefortailcall', - ProxyCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-proxycreate', - PutValue: 'https://ecma-international.org/ecma-262/6.0/#sec-putvalue', - QuoteJSONString: 'https://ecma-international.org/ecma-262/6.0/#sec-quotejsonstring', - RegExpAlloc: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpcreate', - RegExpExec: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpexec', - RegExpInitialize: 'https://ecma-international.org/ecma-262/6.0/#sec-regexpinitialize', - RejectPromise: 'https://ecma-international.org/ecma-262/6.0/#sec-rejectpromise', - RepeatMatcher: 'https://ecma-international.org/ecma-262/6.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://ecma-international.org/ecma-262/6.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://ecma-international.org/ecma-262/6.0/#sec-resolvebinding', - ResolveThisBinding: 'https://ecma-international.org/ecma-262/6.0/#sec-resolvethisbinding', - SameValue: 'https://ecma-international.org/ecma-262/6.0/#sec-samevalue', - SameValueZero: 'https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero', - SecFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-hours-minutes-second-and-milliseconds', - SerializeJSONArray: 'https://ecma-international.org/ecma-262/6.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://ecma-international.org/ecma-262/6.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-serializejsonproperty', - Set: 'https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/6.0/#sec-setdefaultglobalbindings', - SetFunctionName: 'https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname', - SetIntegrityLevel: 'https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/6.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://ecma-international.org/ecma-262/6.0/#sec-setvalueinbuffer', - SetViewValue: 'https://ecma-international.org/ecma-262/6.0/#sec-setviewvalue', - sign: 'https://ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions', - SortCompare: 'https://ecma-international.org/ecma-262/6.0/#sec-sortcompare', - SpeciesConstructor: 'https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor', - SplitMatch: 'https://ecma-international.org/ecma-262/6.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/6.0/#sec-strict-equality-comparison', - StringCreate: 'https://ecma-international.org/ecma-262/6.0/#sec-stringcreate', - StringGetIndexProperty: 'https://ecma-international.org/ecma-262/6.0/#sec-stringgetindexproperty', - SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring', - TestIntegrityLevel: 'https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel', - thisBooleanValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object', - thisNumberValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object', - thisStringValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object', - thisTimeValue: 'https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object', - TimeClip: 'https://ecma-international.org/ecma-262/6.0/#sec-timeclip', - TimeFromYear: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number', - TimeWithinDay: 'https://ecma-international.org/ecma-262/6.0/#sec-day-number-and-time-within-day', - ToBoolean: 'https://ecma-international.org/ecma-262/6.0/#sec-toboolean', - ToDateString: 'https://ecma-international.org/ecma-262/6.0/#sec-todatestring', - ToInt16: 'https://ecma-international.org/ecma-262/6.0/#sec-toint16', - ToInt32: 'https://ecma-international.org/ecma-262/6.0/#sec-toint32', - ToInt8: 'https://ecma-international.org/ecma-262/6.0/#sec-toint8', - ToInteger: 'https://ecma-international.org/ecma-262/6.0/#sec-tointeger', - ToLength: 'https://ecma-international.org/ecma-262/6.0/#sec-tolength', - ToNumber: 'https://ecma-international.org/ecma-262/6.0/#sec-tonumber', - ToObject: 'https://ecma-international.org/ecma-262/6.0/#sec-toobject', - ToPrimitive: 'https://ecma-international.org/ecma-262/6.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://ecma-international.org/ecma-262/6.0/#sec-topropertykey', - ToString: 'https://ecma-international.org/ecma-262/6.0/#sec-tostring', - ToUint16: 'https://ecma-international.org/ecma-262/6.0/#sec-touint16', - ToUint32: 'https://ecma-international.org/ecma-262/6.0/#sec-touint32', - ToUint8: 'https://ecma-international.org/ecma-262/6.0/#sec-touint8', - ToUint8Clamp: 'https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/6.0/#sec-triggerpromisereactions', - Type: 'https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values', - TypedArrayFrom: 'https://ecma-international.org/ecma-262/6.0/#sec-typedarrayfrom', - UpdateEmpty: 'https://ecma-international.org/ecma-262/6.0/#sec-updateempty', - UTC: 'https://ecma-international.org/ecma-262/6.0/#sec-utc-t', - ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor', - WeekDay: 'https://ecma-international.org/ecma-262/6.0/#sec-week-day', - YearFromTime: 'https://ecma-international.org/ecma-262/6.0/#sec-year-number' -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/operations/2016.js b/node_modules/object.assign/node_modules/es-abstract/operations/2016.js deleted file mode 100644 index 6a58b9cc19..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/operations/2016.js +++ /dev/null @@ -1,276 +0,0 @@ -'use strict'; - -module.exports = { - IsPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op - - abs: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions', - 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/7.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/7.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/7.0/#sec-addrestrictedfunctionproperties', - AdvanceStringIndex: 'https://ecma-international.org/ecma-262/7.0/#sec-advancestringindex', - AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-allocatearraybuffer', - AllocateTypedArray: 'https://ecma-international.org/ecma-262/7.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-arraycreate', - ArraySetLength: 'https://ecma-international.org/ecma-262/7.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-arrayspeciescreate', - BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-boundfunctioncreate', - Call: 'https://ecma-international.org/ecma-262/7.0/#sec-call', - Canonicalize: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/7.0/#sec-canonicalnumericindexstring', - CharacterRange: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-completepropertydescriptor', - Completion: 'https://ecma-international.org/ecma-262/7.0/#sec-completion-record-specification-type', - Construct: 'https://ecma-international.org/ecma-262/7.0/#sec-construct', - CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/7.0/#sec-copydatablockbytes', - CreateArrayFromList: 'https://ecma-international.org/ecma-262/7.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createarrayiterator', - CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/7.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://ecma-international.org/ecma-262/7.0/#sec-createbytedatablock', - CreateDataProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/7.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://ecma-international.org/ecma-262/7.0/#sec-createdynamicfunction', - CreateHTML: 'https://ecma-international.org/ecma-262/7.0/#sec-createhtml', - CreateIntrinsics: 'https://ecma-international.org/ecma-262/7.0/#sec-createintrinsics', - CreateIterResultObject: 'https://ecma-international.org/ecma-262/7.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/7.0/#sec-createlistfromarraylike', - CreateListIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createlistiterator', - CreateMapIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/7.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-createperiterationenvironment', - CreateRealm: 'https://ecma-international.org/ecma-262/7.0/#sec-createrealm', - CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/7.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createsetiterator', - CreateStringIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/7.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-date-number', - Day: 'https://ecma-international.org/ecma-262/7.0/#sec-day-number-and-time-within-day', - DayFromYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number', - DaysInYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number', - DayWithinYear: 'https://ecma-international.org/ecma-262/7.0/#sec-month-number', - Decode: 'https://ecma-international.org/ecma-262/7.0/#sec-decode', - DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/7.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/7.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-detacharraybuffer', - Encode: 'https://ecma-international.org/ecma-262/7.0/#sec-encode', - EnqueueJob: 'https://ecma-international.org/ecma-262/7.0/#sec-enqueuejob', - EnumerableOwnNames: 'https://ecma-international.org/ecma-262/7.0/#sec-enumerableownnames', - EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/7.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/7.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://ecma-international.org/ecma-262/7.0/#sec-evaluatecall', - EvaluateDirectCall: 'https://ecma-international.org/ecma-262/7.0/#sec-evaluatedirectcall', - EvaluateNew: 'https://ecma-international.org/ecma-262/7.0/#sec-evaluatenew', - floor: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions', - ForBodyEvaluation: 'https://ecma-international.org/ecma-262/7.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-fulfillpromise', - FunctionAllocate: 'https://ecma-international.org/ecma-262/7.0/#sec-functionallocate', - FunctionCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://ecma-international.org/ecma-262/7.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorstart', - GeneratorValidate: 'https://ecma-international.org/ecma-262/7.0/#sec-generatorvalidate', - GeneratorYield: 'https://ecma-international.org/ecma-262/7.0/#sec-generatoryield', - Get: 'https://ecma-international.org/ecma-262/7.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/7.0/#sec-getactivescriptormodule', - GetFunctionRealm: 'https://ecma-international.org/ecma-262/7.0/#sec-getfunctionrealm', - GetGlobalObject: 'https://ecma-international.org/ecma-262/7.0/#sec-getglobalobject', - GetIdentifierReference: 'https://ecma-international.org/ecma-262/7.0/#sec-getidentifierreference', - GetIterator: 'https://ecma-international.org/ecma-262/7.0/#sec-getiterator', - GetMethod: 'https://ecma-international.org/ecma-262/7.0/#sec-getmethod', - GetModuleNamespace: 'https://ecma-international.org/ecma-262/7.0/#sec-getmodulenamespace', - GetNewTarget: 'https://ecma-international.org/ecma-262/7.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/7.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-getprototypefromconstructor', - GetSubstitution: 'https://ecma-international.org/ecma-262/7.0/#sec-getsubstitution', - GetSuperConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://ecma-international.org/ecma-262/7.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-getthisenvironment', - GetThisValue: 'https://ecma-international.org/ecma-262/7.0/#sec-getthisvalue', - GetV: 'https://ecma-international.org/ecma-262/7.0/#sec-getv', - GetValue: 'https://ecma-international.org/ecma-262/7.0/#sec-getvalue', - GetValueFromBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://ecma-international.org/ecma-262/7.0/#sec-getviewvalue', - GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/7.0/#sec-globaldeclarationinstantiation', - HasOwnProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-hasownproperty', - HasProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-hasproperty', - HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/7.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://ecma-international.org/ecma-262/7.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://ecma-international.org/ecma-262/7.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds', - IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://ecma-international.org/ecma-262/7.0/#sec-importedlocalnames', - InitializeBoundName: 'https://ecma-international.org/ecma-262/7.0/#sec-initializeboundname', - InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/7.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/7.0/#sec-initializereferencedbinding', - InLeapYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number', - InstanceofOperator: 'https://ecma-international.org/ecma-262/7.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/7.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/7.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-internalizejsonproperty', - Invoke: 'https://ecma-international.org/ecma-262/7.0/#sec-invoke', - IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/7.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://ecma-international.org/ecma-262/7.0/#sec-isarray', - IsCallable: 'https://ecma-international.org/ecma-262/7.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://ecma-international.org/ecma-262/7.0/#sec-isconcatspreadable', - IsConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-isconstructor', - IsDataDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-isdetachedbuffer', - IsExtensible: 'https://ecma-international.org/ecma-262/7.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://ecma-international.org/ecma-262/7.0/#sec-isintailposition', - IsInteger: 'https://ecma-international.org/ecma-262/7.0/#sec-isinteger', - IsLabelledFunction: 'https://ecma-international.org/ecma-262/7.0/#sec-islabelledfunction', - IsPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-ispromise', - IsPropertyKey: 'https://ecma-international.org/ecma-262/7.0/#sec-ispropertykey', - IsRegExp: 'https://ecma-international.org/ecma-262/7.0/#sec-isregexp', - IsWordChar: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToArrayLike: 'https://ecma-international.org/ecma-262/7.0/#sec-iterabletoarraylike', - IteratorClose: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorclose', - IteratorComplete: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorcomplete', - IteratorNext: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratornext', - IteratorStep: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorstep', - IteratorValue: 'https://ecma-international.org/ecma-262/7.0/#sec-iteratorvalue', - LocalTime: 'https://ecma-international.org/ecma-262/7.0/#sec-localtime', - LoopContinues: 'https://ecma-international.org/ecma-262/7.0/#sec-loopcontinues', - MakeArgGetter: 'https://ecma-international.org/ecma-262/7.0/#sec-makearggetter', - MakeArgSetter: 'https://ecma-international.org/ecma-262/7.0/#sec-makeargsetter', - MakeClassConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-makeclassconstructor', - MakeConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-makeconstructor', - MakeDate: 'https://ecma-international.org/ecma-262/7.0/#sec-makedate', - MakeDay: 'https://ecma-international.org/ecma-262/7.0/#sec-makeday', - MakeMethod: 'https://ecma-international.org/ecma-262/7.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/7.0/#sec-makesuperpropertyreference', - MakeTime: 'https://ecma-international.org/ecma-262/7.0/#sec-maketime', - max: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions', - min: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions', - MinFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds', - ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-modulenamespacecreate', - modulo: 'https://ecma-international.org/ecma-262/7.0/#sec-algorithm-conventions', - MonthFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-month-number', - msFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds', - NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://ecma-international.org/ecma-262/7.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://ecma-international.org/ecma-262/7.0/#sec-newpromisecapability', - NextJob: 'https://ecma-international.org/ecma-262/7.0/#sec-nextjob-result', - NormalCompletion: 'https://ecma-international.org/ecma-262/7.0/#sec-normalcompletion', - ObjectCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-objectcreate', - ObjectDefineProperties: 'https://ecma-international.org/ecma-262/7.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarydelete', - OrdinaryGet: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/7.0/#sec-ordinarysetprototypeof', - ParseModule: 'https://ecma-international.org/ecma-262/7.0/#sec-parsemodule', - ParseScript: 'https://ecma-international.org/ecma-262/7.0/#sec-parse-script', - PerformEval: 'https://ecma-international.org/ecma-262/7.0/#sec-performeval', - PerformPromiseAll: 'https://ecma-international.org/ecma-262/7.0/#sec-performpromiseall', - PerformPromiseRace: 'https://ecma-international.org/ecma-262/7.0/#sec-performpromiserace', - PerformPromiseThen: 'https://ecma-international.org/ecma-262/7.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/7.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://ecma-international.org/ecma-262/7.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://ecma-international.org/ecma-262/7.0/#sec-promisereactionjob', - PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/7.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-proxycreate', - PutValue: 'https://ecma-international.org/ecma-262/7.0/#sec-putvalue', - QuoteJSONString: 'https://ecma-international.org/ecma-262/7.0/#sec-quotejsonstring', - RegExpAlloc: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpcreate', - RegExpExec: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpexec', - RegExpInitialize: 'https://ecma-international.org/ecma-262/7.0/#sec-regexpinitialize', - RejectPromise: 'https://ecma-international.org/ecma-262/7.0/#sec-rejectpromise', - RepeatMatcher: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://ecma-international.org/ecma-262/7.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://ecma-international.org/ecma-262/7.0/#sec-resolvebinding', - ResolveThisBinding: 'https://ecma-international.org/ecma-262/7.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/7.0/#sec-returnifabrupt', - SameValue: 'https://ecma-international.org/ecma-262/7.0/#sec-samevalue', - SameValueNonNumber: 'https://ecma-international.org/ecma-262/7.0/#sec-samevaluenonnumber', - SameValueZero: 'https://ecma-international.org/ecma-262/7.0/#sec-samevaluezero', - ScriptEvaluation: 'https://ecma-international.org/ecma-262/7.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/7.0/#sec-scriptevaluationjob', - SecFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-hours-minutes-second-and-milliseconds', - SerializeJSONArray: 'https://ecma-international.org/ecma-262/7.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://ecma-international.org/ecma-262/7.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://ecma-international.org/ecma-262/7.0/#sec-serializejsonproperty', - Set: 'https://ecma-international.org/ecma-262/7.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/7.0/#sec-setdefaultglobalbindings', - SetFunctionName: 'https://ecma-international.org/ecma-262/7.0/#sec-setfunctionname', - SetIntegrityLevel: 'https://ecma-international.org/ecma-262/7.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/7.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://ecma-international.org/ecma-262/7.0/#sec-setvalueinbuffer', - SetViewValue: 'https://ecma-international.org/ecma-262/7.0/#sec-setviewvalue', - SortCompare: 'https://ecma-international.org/ecma-262/7.0/#sec-sortcompare', - SpeciesConstructor: 'https://ecma-international.org/ecma-262/7.0/#sec-speciesconstructor', - SplitMatch: 'https://ecma-international.org/ecma-262/7.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/7.0/#sec-strict-equality-comparison', - StringCreate: 'https://ecma-international.org/ecma-262/7.0/#sec-stringcreate', - SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/7.0/#sec-symboldescriptivestring', - TestIntegrityLevel: 'https://ecma-international.org/ecma-262/7.0/#sec-testintegritylevel', - thisBooleanValue: 'https://ecma-international.org/ecma-262/7.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-number-prototype-object', - thisStringValue: 'https://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-string-prototype-object', - thisTimeValue: 'https://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-date-prototype-object', - TimeClip: 'https://ecma-international.org/ecma-262/7.0/#sec-timeclip', - TimeFromYear: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number', - TimeWithinDay: 'https://ecma-international.org/ecma-262/7.0/#sec-day-number-and-time-within-day', - ToBoolean: 'https://ecma-international.org/ecma-262/7.0/#sec-toboolean', - ToDateString: 'https://ecma-international.org/ecma-262/7.0/#sec-todatestring', - ToInt16: 'https://ecma-international.org/ecma-262/7.0/#sec-toint16', - ToInt32: 'https://ecma-international.org/ecma-262/7.0/#sec-toint32', - ToInt8: 'https://ecma-international.org/ecma-262/7.0/#sec-toint8', - ToInteger: 'https://ecma-international.org/ecma-262/7.0/#sec-tointeger', - ToLength: 'https://ecma-international.org/ecma-262/7.0/#sec-tolength', - ToNumber: 'https://ecma-international.org/ecma-262/7.0/#sec-tonumber', - ToObject: 'https://ecma-international.org/ecma-262/7.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/7.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://ecma-international.org/ecma-262/7.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://ecma-international.org/ecma-262/7.0/#sec-topropertykey', - ToString: 'https://ecma-international.org/ecma-262/7.0/#sec-tostring', - 'ToString Applied to the Number Type': 'https://ecma-international.org/ecma-262/7.0/#sec-tostring-applied-to-the-number-type', - ToUint16: 'https://ecma-international.org/ecma-262/7.0/#sec-touint16', - ToUint32: 'https://ecma-international.org/ecma-262/7.0/#sec-touint32', - ToUint8: 'https://ecma-international.org/ecma-262/7.0/#sec-touint8', - ToUint8Clamp: 'https://ecma-international.org/ecma-262/7.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/7.0/#sec-triggerpromisereactions', - Type: 'https://ecma-international.org/ecma-262/7.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://ecma-international.org/ecma-262/7.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/7.0/#typedarray-species-create', - UpdateEmpty: 'https://ecma-international.org/ecma-262/7.0/#sec-updateempty', - UTC: 'https://ecma-international.org/ecma-262/7.0/#sec-utc-t', - UTF16Decode: 'https://ecma-international.org/ecma-262/7.0/#sec-utf16decode', - UTF16Encoding: 'https://ecma-international.org/ecma-262/7.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/7.0/#sec-validateandapplypropertydescriptor', - ValidateTypedArray: 'https://ecma-international.org/ecma-262/7.0/#sec-validatetypedarray', - WeekDay: 'https://ecma-international.org/ecma-262/7.0/#sec-week-day', - YearFromTime: 'https://ecma-international.org/ecma-262/7.0/#sec-year-number' -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/operations/2017.js b/node_modules/object.assign/node_modules/es-abstract/operations/2017.js deleted file mode 100644 index 896fcee50e..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/operations/2017.js +++ /dev/null @@ -1,324 +0,0 @@ -'use strict'; - -module.exports = { - IsPropertyDescriptor: 'https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op - - abs: 'https://ecma-international.org/ecma-262/8.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/8.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/8.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://ecma-international.org/ecma-262/8.0/#sec-addwaiter', - AdvanceStringIndex: 'https://ecma-international.org/ecma-262/8.0/#sec-advancestringindex', - 'agent-order': 'https://ecma-international.org/ecma-262/8.0/#sec-agent-order', - AgentCanSuspend: 'https://ecma-international.org/ecma-262/8.0/#sec-agentcansuspend', - AgentSignifier: 'https://ecma-international.org/ecma-262/8.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-arraycreate', - ArraySetLength: 'https://ecma-international.org/ecma-262/8.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-arrayspeciescreate', - AsyncFunctionAwait: 'https://ecma-international.org/ecma-262/8.0/#sec-async-functions-abstract-operations-async-function-await', - AsyncFunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-async-functions-abstract-operations-async-function-create', - AsyncFunctionStart: 'https://ecma-international.org/ecma-262/8.0/#sec-async-functions-abstract-operations-async-function-start', - AtomicLoad: 'https://ecma-international.org/ecma-262/8.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://ecma-international.org/ecma-262/8.0/#sec-atomicreadmodifywrite', - BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-boundfunctioncreate', - Call: 'https://ecma-international.org/ecma-262/8.0/#sec-call', - Canonicalize: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/8.0/#sec-canonicalnumericindexstring', - CharacterRange: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-completepropertydescriptor', - Completion: 'https://ecma-international.org/ecma-262/8.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://ecma-international.org/ecma-262/8.0/#sec-composewriteeventbytes', - Construct: 'https://ecma-international.org/ecma-262/8.0/#sec-construct', - CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/8.0/#sec-copydatablockbytes', - CreateArrayFromList: 'https://ecma-international.org/ecma-262/8.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createarrayiterator', - CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/8.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://ecma-international.org/ecma-262/8.0/#sec-createbytedatablock', - CreateDataProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/8.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://ecma-international.org/ecma-262/8.0/#sec-createdynamicfunction', - CreateHTML: 'https://ecma-international.org/ecma-262/8.0/#sec-createhtml', - CreateIntrinsics: 'https://ecma-international.org/ecma-262/8.0/#sec-createintrinsics', - CreateIterResultObject: 'https://ecma-international.org/ecma-262/8.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/8.0/#sec-createlistfromarraylike', - CreateListIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createlistiterator', - CreateMapIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/8.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-createperiterationenvironment', - CreateRealm: 'https://ecma-international.org/ecma-262/8.0/#sec-createrealm', - CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/8.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://ecma-international.org/ecma-262/8.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/8.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://ecma-international.org/ecma-262/8.0/#sec-date-number', - Day: 'https://ecma-international.org/ecma-262/8.0/#eqn-Day', - DayFromYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-DaysFromYear', - DaysInYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-DaysInYear', - DayWithinYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-DayWithinYear', - Decode: 'https://ecma-international.org/ecma-262/8.0/#sec-decode', - DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/8.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/8.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-detacharraybuffer', - Encode: 'https://ecma-international.org/ecma-262/8.0/#sec-encode', - EnqueueJob: 'https://ecma-international.org/ecma-262/8.0/#sec-enqueuejob', - EnterCriticalSection: 'https://ecma-international.org/ecma-262/8.0/#sec-entercriticalsection', - EnumerableOwnProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-enumerableownproperties', - EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/8.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://ecma-international.org/ecma-262/8.0/#sec-evaluatecall', - EvaluateDirectCall: 'https://ecma-international.org/ecma-262/8.0/#sec-evaluatedirectcall', - EvaluateNew: 'https://ecma-international.org/ecma-262/8.0/#sec-evaluatenew', - EventSet: 'https://ecma-international.org/ecma-262/8.0/#sec-event-set', - floor: 'https://ecma-international.org/ecma-262/8.0/#eqn-floor', - ForBodyEvaluation: 'https://ecma-international.org/ecma-262/8.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-fulfillpromise', - FunctionAllocate: 'https://ecma-international.org/ecma-262/8.0/#sec-functionallocate', - FunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://ecma-international.org/ecma-262/8.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorstart', - GeneratorValidate: 'https://ecma-international.org/ecma-262/8.0/#sec-generatorvalidate', - GeneratorYield: 'https://ecma-international.org/ecma-262/8.0/#sec-generatoryield', - Get: 'https://ecma-international.org/ecma-262/8.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/8.0/#sec-getactivescriptormodule', - GetBase: 'https://ecma-international.org/ecma-262/8.0/#ao-getbase', - GetFunctionRealm: 'https://ecma-international.org/ecma-262/8.0/#sec-getfunctionrealm', - GetGlobalObject: 'https://ecma-international.org/ecma-262/8.0/#sec-getglobalobject', - GetIdentifierReference: 'https://ecma-international.org/ecma-262/8.0/#sec-getidentifierreference', - GetIterator: 'https://ecma-international.org/ecma-262/8.0/#sec-getiterator', - GetMethod: 'https://ecma-international.org/ecma-262/8.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://ecma-international.org/ecma-262/8.0/#sec-getmodulenamespace', - GetNewTarget: 'https://ecma-international.org/ecma-262/8.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/8.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://ecma-international.org/ecma-262/8.0/#ao-getreferencedname', - GetSubstitution: 'https://ecma-international.org/ecma-262/8.0/#sec-getsubstitution', - GetSuperConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://ecma-international.org/ecma-262/8.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-getthisenvironment', - GetThisValue: 'https://ecma-international.org/ecma-262/8.0/#sec-getthisvalue', - GetV: 'https://ecma-international.org/ecma-262/8.0/#sec-getv', - GetValue: 'https://ecma-international.org/ecma-262/8.0/#sec-getvalue', - GetValueFromBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://ecma-international.org/ecma-262/8.0/#sec-getviewvalue', - GetWaiterList: 'https://ecma-international.org/ecma-262/8.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/8.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://ecma-international.org/ecma-262/8.0/#sec-happens-before', - HasOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://ecma-international.org/ecma-262/8.0/#ao-hasprimitivebase', - HasProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://ecma-international.org/ecma-262/8.0/#sec-host-synchronizes-with', - HostEnsureCanCompileStrings: 'https://ecma-international.org/ecma-262/8.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://ecma-international.org/ecma-262/8.0/#sec-hosteventset', - HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/8.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://ecma-international.org/ecma-262/8.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://ecma-international.org/ecma-262/8.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://ecma-international.org/ecma-262/8.0/#sec-importedlocalnames', - InitializeBoundName: 'https://ecma-international.org/ecma-262/8.0/#sec-initializeboundname', - InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/8.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/8.0/#sec-initializereferencedbinding', - InLeapYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-InLeapYear', - InstanceofOperator: 'https://ecma-international.org/ecma-262/8.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/8.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/8.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-internalizejsonproperty', - Invoke: 'https://ecma-international.org/ecma-262/8.0/#sec-invoke', - IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/8.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://ecma-international.org/ecma-262/8.0/#sec-isarray', - IsCallable: 'https://ecma-international.org/ecma-262/8.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://ecma-international.org/ecma-262/8.0/#sec-isconcatspreadable', - IsConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-isconstructor', - IsDataDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-isdetachedbuffer', - IsExtensible: 'https://ecma-international.org/ecma-262/8.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://ecma-international.org/ecma-262/8.0/#sec-isintailposition', - IsInteger: 'https://ecma-international.org/ecma-262/8.0/#sec-isinteger', - IsLabelledFunction: 'https://ecma-international.org/ecma-262/8.0/#sec-islabelledfunction', - IsPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-ispromise', - IsPropertyKey: 'https://ecma-international.org/ecma-262/8.0/#sec-ispropertykey', - IsPropertyReference: 'https://ecma-international.org/ecma-262/8.0/#ao-ispropertyreference', - IsRegExp: 'https://ecma-international.org/ecma-262/8.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://ecma-international.org/ecma-262/8.0/#ao-isstrictreference', - IsSuperReference: 'https://ecma-international.org/ecma-262/8.0/#ao-issuperreference', - IsUnresolvableReference: 'https://ecma-international.org/ecma-262/8.0/#ao-isunresolvablereference', - IsWordChar: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://ecma-international.org/ecma-262/8.0/#sec-iterabletolist', - IteratorClose: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorclose', - IteratorComplete: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorcomplete', - IteratorNext: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratornext', - IteratorStep: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorstep', - IteratorValue: 'https://ecma-international.org/ecma-262/8.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://ecma-international.org/ecma-262/8.0/#sec-leavecriticalsection', - LocalTime: 'https://ecma-international.org/ecma-262/8.0/#sec-localtime', - LoopContinues: 'https://ecma-international.org/ecma-262/8.0/#sec-loopcontinues', - MakeArgGetter: 'https://ecma-international.org/ecma-262/8.0/#sec-makearggetter', - MakeArgSetter: 'https://ecma-international.org/ecma-262/8.0/#sec-makeargsetter', - MakeClassConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-makeclassconstructor', - MakeConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-makeconstructor', - MakeDate: 'https://ecma-international.org/ecma-262/8.0/#sec-makedate', - MakeDay: 'https://ecma-international.org/ecma-262/8.0/#sec-makeday', - MakeMethod: 'https://ecma-international.org/ecma-262/8.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/8.0/#sec-makesuperpropertyreference', - MakeTime: 'https://ecma-international.org/ecma-262/8.0/#sec-maketime', - max: 'https://ecma-international.org/ecma-262/8.0/#eqn-max', - 'memory-order': 'https://ecma-international.org/ecma-262/8.0/#sec-memory-order', - min: 'https://ecma-international.org/ecma-262/8.0/#eqn-min', - MinFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-MinFromTime', - ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-modulenamespacecreate', - modulo: 'https://ecma-international.org/ecma-262/8.0/#eqn-modulo', - MonthFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-MonthFromTime', - msFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://ecma-international.org/ecma-262/8.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://ecma-international.org/ecma-262/8.0/#sec-newpromisecapability', - NormalCompletion: 'https://ecma-international.org/ecma-262/8.0/#sec-normalcompletion', - NumberToRawBytes: 'https://ecma-international.org/ecma-262/8.0/#sec-numbertorawbytes', - ObjectCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-objectcreate', - ObjectDefineProperties: 'https://ecma-international.org/ecma-262/8.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarydelete', - OrdinaryGet: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarysetprototypeof', - OrdinaryToPrimitive: 'https://ecma-international.org/ecma-262/8.0/#sec-ordinarytoprimitive', - ParseModule: 'https://ecma-international.org/ecma-262/8.0/#sec-parsemodule', - ParseScript: 'https://ecma-international.org/ecma-262/8.0/#sec-parse-script', - PerformEval: 'https://ecma-international.org/ecma-262/8.0/#sec-performeval', - PerformPromiseAll: 'https://ecma-international.org/ecma-262/8.0/#sec-performpromiseall', - PerformPromiseRace: 'https://ecma-international.org/ecma-262/8.0/#sec-performpromiserace', - PerformPromiseThen: 'https://ecma-international.org/ecma-262/8.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/8.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://ecma-international.org/ecma-262/8.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://ecma-international.org/ecma-262/8.0/#sec-promisereactionjob', - PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/8.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-proxycreate', - PutValue: 'https://ecma-international.org/ecma-262/8.0/#sec-putvalue', - QuoteJSONString: 'https://ecma-international.org/ecma-262/8.0/#sec-quotejsonstring', - RawBytesToNumber: 'https://ecma-international.org/ecma-262/8.0/#sec-rawbytestonumber', - 'reads-bytes-from': 'https://ecma-international.org/ecma-262/8.0/#sec-reads-bytes-from', - 'reads-from': 'https://ecma-international.org/ecma-262/8.0/#sec-reads-from', - RegExpAlloc: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpcreate', - RegExpExec: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpexec', - RegExpInitialize: 'https://ecma-international.org/ecma-262/8.0/#sec-regexpinitialize', - RejectPromise: 'https://ecma-international.org/ecma-262/8.0/#sec-rejectpromise', - RemoveWaiter: 'https://ecma-international.org/ecma-262/8.0/#sec-removewaiter', - RemoveWaiters: 'https://ecma-international.org/ecma-262/8.0/#sec-removewaiters', - RepeatMatcher: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://ecma-international.org/ecma-262/8.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://ecma-international.org/ecma-262/8.0/#sec-resolvebinding', - ResolveThisBinding: 'https://ecma-international.org/ecma-262/8.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/8.0/#sec-returnifabrupt', - RunJobs: 'https://ecma-international.org/ecma-262/8.0/#sec-runjobs', - SameValue: 'https://ecma-international.org/ecma-262/8.0/#sec-samevalue', - SameValueNonNumber: 'https://ecma-international.org/ecma-262/8.0/#sec-samevaluenonnumber', - SameValueZero: 'https://ecma-international.org/ecma-262/8.0/#sec-samevaluezero', - ScriptEvaluation: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/8.0/#sec-scriptevaluationjob', - SecFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://ecma-international.org/ecma-262/8.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://ecma-international.org/ecma-262/8.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-serializejsonproperty', - Set: 'https://ecma-international.org/ecma-262/8.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/8.0/#sec-setdefaultglobalbindings', - SetFunctionName: 'https://ecma-international.org/ecma-262/8.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://ecma-international.org/ecma-262/8.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://ecma-international.org/ecma-262/8.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/8.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://ecma-international.org/ecma-262/8.0/#sec-setvalueinbuffer', - SetViewValue: 'https://ecma-international.org/ecma-262/8.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://ecma-international.org/ecma-262/8.0/#sec-sharedatablockeventset', - SortCompare: 'https://ecma-international.org/ecma-262/8.0/#sec-sortcompare', - SpeciesConstructor: 'https://ecma-international.org/ecma-262/8.0/#sec-speciesconstructor', - SplitMatch: 'https://ecma-international.org/ecma-262/8.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/8.0/#sec-strict-equality-comparison', - StringCreate: 'https://ecma-international.org/ecma-262/8.0/#sec-stringcreate', - StringGetOwnProperty: 'https://ecma-international.org/ecma-262/8.0/#sec-stringgetownproperty', - Suspend: 'https://ecma-international.org/ecma-262/8.0/#sec-suspend', - SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/8.0/#sec-symboldescriptivestring', - 'synchronizes-with': 'https://ecma-international.org/ecma-262/8.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://ecma-international.org/ecma-262/8.0/#sec-testintegritylevel', - thisBooleanValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thisnumbervalue', - thisStringValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thisstringvalue', - thisTimeValue: 'https://ecma-international.org/ecma-262/8.0/#sec-thistimevalue', - TimeClip: 'https://ecma-international.org/ecma-262/8.0/#sec-timeclip', - TimeFromYear: 'https://ecma-international.org/ecma-262/8.0/#eqn-TimeFromYear', - TimeWithinDay: 'https://ecma-international.org/ecma-262/8.0/#eqn-TimeWithinDay', - ToBoolean: 'https://ecma-international.org/ecma-262/8.0/#sec-toboolean', - ToDateString: 'https://ecma-international.org/ecma-262/8.0/#sec-todatestring', - ToIndex: 'https://ecma-international.org/ecma-262/8.0/#sec-toindex', - ToInt16: 'https://ecma-international.org/ecma-262/8.0/#sec-toint16', - ToInt32: 'https://ecma-international.org/ecma-262/8.0/#sec-toint32', - ToInt8: 'https://ecma-international.org/ecma-262/8.0/#sec-toint8', - ToInteger: 'https://ecma-international.org/ecma-262/8.0/#sec-tointeger', - ToLength: 'https://ecma-international.org/ecma-262/8.0/#sec-tolength', - ToNumber: 'https://ecma-international.org/ecma-262/8.0/#sec-tonumber', - ToObject: 'https://ecma-international.org/ecma-262/8.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/8.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://ecma-international.org/ecma-262/8.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://ecma-international.org/ecma-262/8.0/#sec-topropertykey', - ToString: 'https://ecma-international.org/ecma-262/8.0/#sec-tostring', - 'ToString Applied to the Number Type': 'https://ecma-international.org/ecma-262/8.0/#sec-tostring-applied-to-the-number-type', - ToUint16: 'https://ecma-international.org/ecma-262/8.0/#sec-touint16', - ToUint32: 'https://ecma-international.org/ecma-262/8.0/#sec-touint32', - ToUint8: 'https://ecma-international.org/ecma-262/8.0/#sec-touint8', - ToUint8Clamp: 'https://ecma-international.org/ecma-262/8.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/8.0/#sec-triggerpromisereactions', - Type: 'https://ecma-international.org/ecma-262/8.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://ecma-international.org/ecma-262/8.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/8.0/#typedarray-species-create', - UpdateEmpty: 'https://ecma-international.org/ecma-262/8.0/#sec-updateempty', - UTC: 'https://ecma-international.org/ecma-262/8.0/#sec-utc-t', - UTF16Decode: 'https://ecma-international.org/ecma-262/8.0/#sec-utf16decode', - UTF16Encoding: 'https://ecma-international.org/ecma-262/8.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://ecma-international.org/ecma-262/8.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://ecma-international.org/ecma-262/8.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://ecma-international.org/ecma-262/8.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://ecma-international.org/ecma-262/8.0/#sec-valueofreadevent', - WakeWaiter: 'https://ecma-international.org/ecma-262/8.0/#sec-wakewaiter', - WeekDay: 'https://ecma-international.org/ecma-262/8.0/#sec-week-day', - WordCharacters: 'https://ecma-international.org/ecma-262/8.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://ecma-international.org/ecma-262/8.0/#eqn-YearFromTime' -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/operations/2018.js b/node_modules/object.assign/node_modules/es-abstract/operations/2018.js deleted file mode 100644 index c93b561d6d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/operations/2018.js +++ /dev/null @@ -1,350 +0,0 @@ -'use strict'; - -module.exports = { - abs: 'https://ecma-international.org/ecma-262/9.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/9.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/9.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://ecma-international.org/ecma-262/9.0/#sec-addwaiter', - AdvanceStringIndex: 'https://ecma-international.org/ecma-262/9.0/#sec-advancestringindex', - 'agent-order': 'https://ecma-international.org/ecma-262/9.0/#sec-agent-order', - AgentCanSuspend: 'https://ecma-international.org/ecma-262/9.0/#sec-agentcansuspend', - AgentSignifier: 'https://ecma-international.org/ecma-262/9.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-arraycreate', - ArraySetLength: 'https://ecma-international.org/ecma-262/9.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-arrayspeciescreate', - AsyncFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-async-functions-abstract-operations-async-function-create', - AsyncFunctionStart: 'https://ecma-international.org/ecma-262/9.0/#sec-async-functions-abstract-operations-async-function-start', - AsyncGeneratorEnqueue: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorenqueue', - AsyncGeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorfunctioncreate', - AsyncGeneratorReject: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorreject', - AsyncGeneratorResolve: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorresolve', - AsyncGeneratorResumeNext: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorresumenext', - AsyncGeneratorStart: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratorstart', - AsyncGeneratorYield: 'https://ecma-international.org/ecma-262/9.0/#sec-asyncgeneratoryield', - AsyncIteratorClose: 'https://ecma-international.org/ecma-262/9.0/#sec-asynciteratorclose', - AtomicLoad: 'https://ecma-international.org/ecma-262/9.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://ecma-international.org/ecma-262/9.0/#sec-atomicreadmodifywrite', - Await: 'https://ecma-international.org/ecma-262/9.0/#await', - BackreferenceMatcher: 'https://ecma-international.org/ecma-262/9.0/#sec-backreference-matcher', - BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-boundfunctioncreate', - Call: 'https://ecma-international.org/ecma-262/9.0/#sec-call', - Canonicalize: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/9.0/#sec-canonicalnumericindexstring', - CaseClauseIsSelected: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-caseclauseisselected', - CharacterRange: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-completepropertydescriptor', - Completion: 'https://ecma-international.org/ecma-262/9.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://ecma-international.org/ecma-262/9.0/#sec-composewriteeventbytes', - Construct: 'https://ecma-international.org/ecma-262/9.0/#sec-construct', - CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/9.0/#sec-copydatablockbytes', - CopyDataProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-copydataproperties', - CreateArrayFromList: 'https://ecma-international.org/ecma-262/9.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createarrayiterator', - CreateAsyncFromSyncIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createasyncfromsynciterator', - CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/9.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://ecma-international.org/ecma-262/9.0/#sec-createbytedatablock', - CreateDataProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/9.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://ecma-international.org/ecma-262/9.0/#sec-createdynamicfunction', - CreateHTML: 'https://ecma-international.org/ecma-262/9.0/#sec-createhtml', - CreateIntrinsics: 'https://ecma-international.org/ecma-262/9.0/#sec-createintrinsics', - CreateIterResultObject: 'https://ecma-international.org/ecma-262/9.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/9.0/#sec-createlistfromarraylike', - CreateListIteratorRecord: 'https://ecma-international.org/ecma-262/9.0/#sec-createlistiteratorRecord', - CreateMapIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/9.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-createperiterationenvironment', - CreateRealm: 'https://ecma-international.org/ecma-262/9.0/#sec-createrealm', - CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/9.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://ecma-international.org/ecma-262/9.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/9.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://ecma-international.org/ecma-262/9.0/#sec-date-number', - DateString: 'https://ecma-international.org/ecma-262/9.0/#sec-datestring', - Day: 'https://ecma-international.org/ecma-262/9.0/#eqn-Day', - DayFromYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-DaysFromYear', - DaysInYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-DaysInYear', - DayWithinYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-DayWithinYear', - Decode: 'https://ecma-international.org/ecma-262/9.0/#sec-decode', - DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/9.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/9.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-detacharraybuffer', - Encode: 'https://ecma-international.org/ecma-262/9.0/#sec-encode', - EnqueueJob: 'https://ecma-international.org/ecma-262/9.0/#sec-enqueuejob', - EnterCriticalSection: 'https://ecma-international.org/ecma-262/9.0/#sec-entercriticalsection', - EnumerableOwnPropertyNames: 'https://ecma-international.org/ecma-262/9.0/#sec-enumerableownpropertynames', - EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/9.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://ecma-international.org/ecma-262/9.0/#sec-evaluatecall', - EvaluateNew: 'https://ecma-international.org/ecma-262/9.0/#sec-evaluatenew', - EventSet: 'https://ecma-international.org/ecma-262/9.0/#sec-event-set', - floor: 'https://ecma-international.org/ecma-262/9.0/#eqn-floor', - ForBodyEvaluation: 'https://ecma-international.org/ecma-262/9.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-fulfillpromise', - FunctionAllocate: 'https://ecma-international.org/ecma-262/9.0/#sec-functionallocate', - FunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://ecma-international.org/ecma-262/9.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorstart', - GeneratorValidate: 'https://ecma-international.org/ecma-262/9.0/#sec-generatorvalidate', - GeneratorYield: 'https://ecma-international.org/ecma-262/9.0/#sec-generatoryield', - Get: 'https://ecma-international.org/ecma-262/9.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/9.0/#sec-getactivescriptormodule', - GetBase: 'https://ecma-international.org/ecma-262/9.0/#sec-getbase', - GetFunctionRealm: 'https://ecma-international.org/ecma-262/9.0/#sec-getfunctionrealm', - GetGeneratorKind: 'https://ecma-international.org/ecma-262/9.0/#sec-getgeneratorkind', - GetGlobalObject: 'https://ecma-international.org/ecma-262/9.0/#sec-getglobalobject', - GetIdentifierReference: 'https://ecma-international.org/ecma-262/9.0/#sec-getidentifierreference', - GetIterator: 'https://ecma-international.org/ecma-262/9.0/#sec-getiterator', - GetMethod: 'https://ecma-international.org/ecma-262/9.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://ecma-international.org/ecma-262/9.0/#sec-getmodulenamespace', - GetNewTarget: 'https://ecma-international.org/ecma-262/9.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/9.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://ecma-international.org/ecma-262/9.0/#sec-getreferencedname', - GetSubstitution: 'https://ecma-international.org/ecma-262/9.0/#sec-getsubstitution', - GetSuperConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://ecma-international.org/ecma-262/9.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-getthisenvironment', - GetThisValue: 'https://ecma-international.org/ecma-262/9.0/#sec-getthisvalue', - GetV: 'https://ecma-international.org/ecma-262/9.0/#sec-getv', - GetValue: 'https://ecma-international.org/ecma-262/9.0/#sec-getvalue', - GetValueFromBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://ecma-international.org/ecma-262/9.0/#sec-getviewvalue', - GetWaiterList: 'https://ecma-international.org/ecma-262/9.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://ecma-international.org/ecma-262/9.0/#sec-happens-before', - HasOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://ecma-international.org/ecma-262/9.0/#sec-hasprimitivebase', - HasProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://ecma-international.org/ecma-262/9.0/#sec-host-synchronizes-with', - HostEnsureCanCompileStrings: 'https://ecma-international.org/ecma-262/9.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://ecma-international.org/ecma-262/9.0/#sec-hosteventset', - HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/9.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://ecma-international.org/ecma-262/9.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://ecma-international.org/ecma-262/9.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://ecma-international.org/ecma-262/9.0/#sec-importedlocalnames', - InitializeBoundName: 'https://ecma-international.org/ecma-262/9.0/#sec-initializeboundname', - InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/9.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/9.0/#sec-initializereferencedbinding', - InLeapYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-InLeapYear', - InnerModuleEvaluation: 'https://ecma-international.org/ecma-262/9.0/#sec-innermoduleevaluation', - InnerModuleInstantiation: 'https://ecma-international.org/ecma-262/9.0/#sec-innermoduleinstantiation', - InstanceofOperator: 'https://ecma-international.org/ecma-262/9.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/9.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/9.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-internalizejsonproperty', - Invoke: 'https://ecma-international.org/ecma-262/9.0/#sec-invoke', - IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/9.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://ecma-international.org/ecma-262/9.0/#sec-isarray', - IsCallable: 'https://ecma-international.org/ecma-262/9.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://ecma-international.org/ecma-262/9.0/#sec-isconcatspreadable', - IsConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-isconstructor', - IsDataDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-isdetachedbuffer', - IsExtensible: 'https://ecma-international.org/ecma-262/9.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://ecma-international.org/ecma-262/9.0/#sec-isintailposition', - IsInteger: 'https://ecma-international.org/ecma-262/9.0/#sec-isinteger', - IsLabelledFunction: 'https://ecma-international.org/ecma-262/9.0/#sec-islabelledfunction', - IsPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-ispromise', - IsPropertyKey: 'https://ecma-international.org/ecma-262/9.0/#sec-ispropertykey', - IsPropertyReference: 'https://ecma-international.org/ecma-262/9.0/#sec-ispropertyreference', - IsRegExp: 'https://ecma-international.org/ecma-262/9.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://ecma-international.org/ecma-262/9.0/#sec-isstrictreference', - IsStringPrefix: 'https://ecma-international.org/ecma-262/9.0/#sec-isstringprefix', - IsSuperReference: 'https://ecma-international.org/ecma-262/9.0/#sec-issuperreference', - IsUnresolvableReference: 'https://ecma-international.org/ecma-262/9.0/#sec-isunresolvablereference', - IsWordChar: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://ecma-international.org/ecma-262/9.0/#sec-iterabletolist', - IteratorClose: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorclose', - IteratorComplete: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorcomplete', - IteratorNext: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratornext', - IteratorStep: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorstep', - IteratorValue: 'https://ecma-international.org/ecma-262/9.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://ecma-international.org/ecma-262/9.0/#sec-leavecriticalsection', - LocalTime: 'https://ecma-international.org/ecma-262/9.0/#sec-localtime', - LoopContinues: 'https://ecma-international.org/ecma-262/9.0/#sec-loopcontinues', - MakeArgGetter: 'https://ecma-international.org/ecma-262/9.0/#sec-makearggetter', - MakeArgSetter: 'https://ecma-international.org/ecma-262/9.0/#sec-makeargsetter', - MakeClassConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-makeclassconstructor', - MakeConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-makeconstructor', - MakeDate: 'https://ecma-international.org/ecma-262/9.0/#sec-makedate', - MakeDay: 'https://ecma-international.org/ecma-262/9.0/#sec-makeday', - MakeMethod: 'https://ecma-international.org/ecma-262/9.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/9.0/#sec-makesuperpropertyreference', - MakeTime: 'https://ecma-international.org/ecma-262/9.0/#sec-maketime', - max: 'https://ecma-international.org/ecma-262/9.0/#eqn-max', - 'memory-order': 'https://ecma-international.org/ecma-262/9.0/#sec-memory-order', - min: 'https://ecma-international.org/ecma-262/9.0/#eqn-min', - MinFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-MinFromTime', - ModuleDeclarationEnvironmentSetup: 'https://ecma-international.org/ecma-262/9.0/#sec-moduledeclarationenvironmentsetup', - ModuleExecution: 'https://ecma-international.org/ecma-262/9.0/#sec-moduleexecution', - ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-modulenamespacecreate', - modulo: 'https://ecma-international.org/ecma-262/9.0/#eqn-modulo', - MonthFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-MonthFromTime', - msFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://ecma-international.org/ecma-262/9.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://ecma-international.org/ecma-262/9.0/#sec-newpromisecapability', - NormalCompletion: 'https://ecma-international.org/ecma-262/9.0/#sec-normalcompletion', - NumberToRawBytes: 'https://ecma-international.org/ecma-262/9.0/#sec-numbertorawbytes', - NumberToString: 'https://ecma-international.org/ecma-262/9.0/#sec-tostring-applied-to-the-number-type', - ObjectCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-objectcreate', - ObjectDefineProperties: 'https://ecma-international.org/ecma-262/9.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarydelete', - OrdinaryGet: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarysetprototypeof', - OrdinarySetWithOwnDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarysetwithowndescriptor', - OrdinaryToPrimitive: 'https://ecma-international.org/ecma-262/9.0/#sec-ordinarytoprimitive', - ParseModule: 'https://ecma-international.org/ecma-262/9.0/#sec-parsemodule', - ParseScript: 'https://ecma-international.org/ecma-262/9.0/#sec-parse-script', - PerformEval: 'https://ecma-international.org/ecma-262/9.0/#sec-performeval', - PerformPromiseAll: 'https://ecma-international.org/ecma-262/9.0/#sec-performpromiseall', - PerformPromiseRace: 'https://ecma-international.org/ecma-262/9.0/#sec-performpromiserace', - PerformPromiseThen: 'https://ecma-international.org/ecma-262/9.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/9.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://ecma-international.org/ecma-262/9.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://ecma-international.org/ecma-262/9.0/#sec-promisereactionjob', - PromiseResolve: 'https://ecma-international.org/ecma-262/9.0/#sec-promise-resolve', - PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/9.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-proxycreate', - PutValue: 'https://ecma-international.org/ecma-262/9.0/#sec-putvalue', - QuoteJSONString: 'https://ecma-international.org/ecma-262/9.0/#sec-quotejsonstring', - RawBytesToNumber: 'https://ecma-international.org/ecma-262/9.0/#sec-rawbytestonumber', - 'reads-bytes-from': 'https://ecma-international.org/ecma-262/9.0/#sec-reads-bytes-from', - 'reads-from': 'https://ecma-international.org/ecma-262/9.0/#sec-reads-from', - RegExpAlloc: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpcreate', - RegExpExec: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpexec', - RegExpInitialize: 'https://ecma-international.org/ecma-262/9.0/#sec-regexpinitialize', - RejectPromise: 'https://ecma-international.org/ecma-262/9.0/#sec-rejectpromise', - RemoveWaiter: 'https://ecma-international.org/ecma-262/9.0/#sec-removewaiter', - RemoveWaiters: 'https://ecma-international.org/ecma-262/9.0/#sec-removewaiters', - RepeatMatcher: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://ecma-international.org/ecma-262/9.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://ecma-international.org/ecma-262/9.0/#sec-resolvebinding', - ResolveThisBinding: 'https://ecma-international.org/ecma-262/9.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/9.0/#sec-returnifabrupt', - RunJobs: 'https://ecma-international.org/ecma-262/9.0/#sec-runjobs', - SameValue: 'https://ecma-international.org/ecma-262/9.0/#sec-samevalue', - SameValueNonNumber: 'https://ecma-international.org/ecma-262/9.0/#sec-samevaluenonnumber', - SameValueZero: 'https://ecma-international.org/ecma-262/9.0/#sec-samevaluezero', - ScriptEvaluation: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/9.0/#sec-scriptevaluationjob', - SecFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://ecma-international.org/ecma-262/9.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://ecma-international.org/ecma-262/9.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-serializejsonproperty', - Set: 'https://ecma-international.org/ecma-262/9.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/9.0/#sec-setdefaultglobalbindings', - SetFunctionLength: 'https://ecma-international.org/ecma-262/9.0/#sec-setfunctionlength', - SetFunctionName: 'https://ecma-international.org/ecma-262/9.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://ecma-international.org/ecma-262/9.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://ecma-international.org/ecma-262/9.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/9.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://ecma-international.org/ecma-262/9.0/#sec-setvalueinbuffer', - SetViewValue: 'https://ecma-international.org/ecma-262/9.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://ecma-international.org/ecma-262/9.0/#sec-sharedatablockeventset', - SortCompare: 'https://ecma-international.org/ecma-262/9.0/#sec-sortcompare', - SpeciesConstructor: 'https://ecma-international.org/ecma-262/9.0/#sec-speciesconstructor', - SplitMatch: 'https://ecma-international.org/ecma-262/9.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/9.0/#sec-strict-equality-comparison', - StringCreate: 'https://ecma-international.org/ecma-262/9.0/#sec-stringcreate', - StringGetOwnProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-stringgetownproperty', - Suspend: 'https://ecma-international.org/ecma-262/9.0/#sec-suspend', - SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/9.0/#sec-symboldescriptivestring', - 'synchronizes-with': 'https://ecma-international.org/ecma-262/9.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://ecma-international.org/ecma-262/9.0/#sec-testintegritylevel', - thisBooleanValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thisnumbervalue', - thisStringValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thisstringvalue', - thisSymbolValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thissymbolvalue', - thisTimeValue: 'https://ecma-international.org/ecma-262/9.0/#sec-thistimevalue', - ThrowCompletion: 'https://ecma-international.org/ecma-262/9.0/#sec-throwcompletion', - TimeClip: 'https://ecma-international.org/ecma-262/9.0/#sec-timeclip', - TimeFromYear: 'https://ecma-international.org/ecma-262/9.0/#eqn-TimeFromYear', - TimeString: 'https://ecma-international.org/ecma-262/9.0/#sec-timestring', - TimeWithinDay: 'https://ecma-international.org/ecma-262/9.0/#eqn-TimeWithinDay', - TimeZoneString: 'https://ecma-international.org/ecma-262/9.0/#sec-timezoneestring', - ToBoolean: 'https://ecma-international.org/ecma-262/9.0/#sec-toboolean', - ToDateString: 'https://ecma-international.org/ecma-262/9.0/#sec-todatestring', - ToIndex: 'https://ecma-international.org/ecma-262/9.0/#sec-toindex', - ToInt16: 'https://ecma-international.org/ecma-262/9.0/#sec-toint16', - ToInt32: 'https://ecma-international.org/ecma-262/9.0/#sec-toint32', - ToInt8: 'https://ecma-international.org/ecma-262/9.0/#sec-toint8', - ToInteger: 'https://ecma-international.org/ecma-262/9.0/#sec-tointeger', - ToLength: 'https://ecma-international.org/ecma-262/9.0/#sec-tolength', - ToNumber: 'https://ecma-international.org/ecma-262/9.0/#sec-tonumber', - ToObject: 'https://ecma-international.org/ecma-262/9.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/9.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://ecma-international.org/ecma-262/9.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://ecma-international.org/ecma-262/9.0/#sec-topropertykey', - ToString: 'https://ecma-international.org/ecma-262/9.0/#sec-tostring', - ToUint16: 'https://ecma-international.org/ecma-262/9.0/#sec-touint16', - ToUint32: 'https://ecma-international.org/ecma-262/9.0/#sec-touint32', - ToUint8: 'https://ecma-international.org/ecma-262/9.0/#sec-touint8', - ToUint8Clamp: 'https://ecma-international.org/ecma-262/9.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/9.0/#sec-triggerpromisereactions', - Type: 'https://ecma-international.org/ecma-262/9.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://ecma-international.org/ecma-262/9.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/9.0/#typedarray-species-create', - UnicodeEscape: 'https://ecma-international.org/ecma-262/9.0/#sec-unicodeescape', - UnicodeMatchProperty: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-unicodematchproperty-p', - UnicodeMatchPropertyValue: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v', - UpdateEmpty: 'https://ecma-international.org/ecma-262/9.0/#sec-updateempty', - UTC: 'https://ecma-international.org/ecma-262/9.0/#sec-utc-t', - UTF16Decode: 'https://ecma-international.org/ecma-262/9.0/#sec-utf16decode', - UTF16Encoding: 'https://ecma-international.org/ecma-262/9.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/9.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://ecma-international.org/ecma-262/9.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://ecma-international.org/ecma-262/9.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://ecma-international.org/ecma-262/9.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://ecma-international.org/ecma-262/9.0/#sec-valueofreadevent', - WakeWaiter: 'https://ecma-international.org/ecma-262/9.0/#sec-wakewaiter', - WeekDay: 'https://ecma-international.org/ecma-262/9.0/#sec-week-day', - WordCharacters: 'https://ecma-international.org/ecma-262/9.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://ecma-international.org/ecma-262/9.0/#eqn-YearFromTime' -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/operations/2019.js b/node_modules/object.assign/node_modules/es-abstract/operations/2019.js deleted file mode 100644 index 73f05e8db6..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/operations/2019.js +++ /dev/null @@ -1,355 +0,0 @@ -'use strict'; - -module.exports = { - abs: 'https://ecma-international.org/ecma-262/10.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://ecma-international.org/ecma-262/10.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://ecma-international.org/ecma-262/10.0/#sec-abstract-relational-comparison', - AddEntriesFromIterable: 'https://ecma-international.org/ecma-262/10.0/#sec-add-entries-from-iterable', - AddRestrictedFunctionProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://ecma-international.org/ecma-262/10.0/#sec-addwaiter', - AdvanceStringIndex: 'https://ecma-international.org/ecma-262/10.0/#sec-advancestringindex', - 'agent-order': 'https://ecma-international.org/ecma-262/10.0/#sec-agent-order', - AgentCanSuspend: 'https://ecma-international.org/ecma-262/10.0/#sec-agentcansuspend', - AgentSignifier: 'https://ecma-international.org/ecma-262/10.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-arraycreate', - ArraySetLength: 'https://ecma-international.org/ecma-262/10.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-arrayspeciescreate', - AsyncFromSyncIteratorContinuation: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncfromsynciteratorcontinuation', - AsyncFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-async-functions-abstract-operations-async-function-create', - AsyncFunctionStart: 'https://ecma-international.org/ecma-262/10.0/#sec-async-functions-abstract-operations-async-function-start', - AsyncGeneratorEnqueue: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorenqueue', - AsyncGeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorfunctioncreate', - AsyncGeneratorReject: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorreject', - AsyncGeneratorResolve: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorresolve', - AsyncGeneratorResumeNext: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorresumenext', - AsyncGeneratorStart: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratorstart', - AsyncGeneratorYield: 'https://ecma-international.org/ecma-262/10.0/#sec-asyncgeneratoryield', - AsyncIteratorClose: 'https://ecma-international.org/ecma-262/10.0/#sec-asynciteratorclose', - AtomicLoad: 'https://ecma-international.org/ecma-262/10.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://ecma-international.org/ecma-262/10.0/#sec-atomicreadmodifywrite', - Await: 'https://ecma-international.org/ecma-262/10.0/#await', - BackreferenceMatcher: 'https://ecma-international.org/ecma-262/10.0/#sec-backreference-matcher', - BlockDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-boundfunctioncreate', - Call: 'https://ecma-international.org/ecma-262/10.0/#sec-call', - Canonicalize: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://ecma-international.org/ecma-262/10.0/#sec-canonicalnumericindexstring', - CaseClauseIsSelected: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-caseclauseisselected', - CharacterRange: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-completepropertydescriptor', - Completion: 'https://ecma-international.org/ecma-262/10.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://ecma-international.org/ecma-262/10.0/#sec-composewriteeventbytes', - Construct: 'https://ecma-international.org/ecma-262/10.0/#sec-construct', - CopyDataBlockBytes: 'https://ecma-international.org/ecma-262/10.0/#sec-copydatablockbytes', - CopyDataProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-copydataproperties', - CreateArrayFromList: 'https://ecma-international.org/ecma-262/10.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createarrayiterator', - CreateAsyncFromSyncIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createasyncfromsynciterator', - CreateBuiltinFunction: 'https://ecma-international.org/ecma-262/10.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://ecma-international.org/ecma-262/10.0/#sec-createbytedatablock', - CreateDataProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://ecma-international.org/ecma-262/10.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://ecma-international.org/ecma-262/10.0/#sec-createdynamicfunction', - CreateHTML: 'https://ecma-international.org/ecma-262/10.0/#sec-createhtml', - CreateIntrinsics: 'https://ecma-international.org/ecma-262/10.0/#sec-createintrinsics', - CreateIterResultObject: 'https://ecma-international.org/ecma-262/10.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://ecma-international.org/ecma-262/10.0/#sec-createlistfromarraylike', - CreateListIteratorRecord: 'https://ecma-international.org/ecma-262/10.0/#sec-createlistiteratorRecord', - CreateMapIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://ecma-international.org/ecma-262/10.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-createperiterationenvironment', - CreateRealm: 'https://ecma-international.org/ecma-262/10.0/#sec-createrealm', - CreateResolvingFunctions: 'https://ecma-international.org/ecma-262/10.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://ecma-international.org/ecma-262/10.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://ecma-international.org/ecma-262/10.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://ecma-international.org/ecma-262/10.0/#sec-date-number', - DateString: 'https://ecma-international.org/ecma-262/10.0/#sec-datestring', - Day: 'https://ecma-international.org/ecma-262/10.0/#eqn-Day', - DayFromYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-DaysFromYear', - DaysInYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-DaysInYear', - DayWithinYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-DayWithinYear', - Decode: 'https://ecma-international.org/ecma-262/10.0/#sec-decode', - DefinePropertyOrThrow: 'https://ecma-international.org/ecma-262/10.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://ecma-international.org/ecma-262/10.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-detacharraybuffer', - Encode: 'https://ecma-international.org/ecma-262/10.0/#sec-encode', - EnqueueJob: 'https://ecma-international.org/ecma-262/10.0/#sec-enqueuejob', - EnterCriticalSection: 'https://ecma-international.org/ecma-262/10.0/#sec-entercriticalsection', - EnumerableOwnPropertyNames: 'https://ecma-international.org/ecma-262/10.0/#sec-enumerableownpropertynames', - EnumerateObjectProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://ecma-international.org/ecma-262/10.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://ecma-international.org/ecma-262/10.0/#sec-evaluatecall', - EvaluateNew: 'https://ecma-international.org/ecma-262/10.0/#sec-evaluatenew', - EventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-event-set', - ExecuteModule: 'https://ecma-international.org/ecma-262/10.0/#sec-source-text-module-record-execute-module', - FlattenIntoArray: 'https://ecma-international.org/ecma-262/10.0/#sec-flattenintoarray', - floor: 'https://ecma-international.org/ecma-262/10.0/#eqn-floor', - ForBodyEvaluation: 'https://ecma-international.org/ecma-262/10.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-fulfillpromise', - FunctionAllocate: 'https://ecma-international.org/ecma-262/10.0/#sec-functionallocate', - FunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://ecma-international.org/ecma-262/10.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorstart', - GeneratorValidate: 'https://ecma-international.org/ecma-262/10.0/#sec-generatorvalidate', - GeneratorYield: 'https://ecma-international.org/ecma-262/10.0/#sec-generatoryield', - Get: 'https://ecma-international.org/ecma-262/10.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://ecma-international.org/ecma-262/10.0/#sec-getactivescriptormodule', - GetBase: 'https://ecma-international.org/ecma-262/10.0/#sec-getbase', - GetFunctionRealm: 'https://ecma-international.org/ecma-262/10.0/#sec-getfunctionrealm', - GetGeneratorKind: 'https://ecma-international.org/ecma-262/10.0/#sec-getgeneratorkind', - GetGlobalObject: 'https://ecma-international.org/ecma-262/10.0/#sec-getglobalobject', - GetIdentifierReference: 'https://ecma-international.org/ecma-262/10.0/#sec-getidentifierreference', - GetIterator: 'https://ecma-international.org/ecma-262/10.0/#sec-getiterator', - GetMethod: 'https://ecma-international.org/ecma-262/10.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://ecma-international.org/ecma-262/10.0/#sec-getmodulenamespace', - GetNewTarget: 'https://ecma-international.org/ecma-262/10.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://ecma-international.org/ecma-262/10.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://ecma-international.org/ecma-262/10.0/#sec-getreferencedname', - GetSubstitution: 'https://ecma-international.org/ecma-262/10.0/#sec-getsubstitution', - GetSuperConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://ecma-international.org/ecma-262/10.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-getthisenvironment', - GetThisValue: 'https://ecma-international.org/ecma-262/10.0/#sec-getthisvalue', - GetV: 'https://ecma-international.org/ecma-262/10.0/#sec-getv', - GetValue: 'https://ecma-international.org/ecma-262/10.0/#sec-getvalue', - GetValueFromBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://ecma-international.org/ecma-262/10.0/#sec-getviewvalue', - GetWaiterList: 'https://ecma-international.org/ecma-262/10.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://ecma-international.org/ecma-262/10.0/#sec-happens-before', - HasOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://ecma-international.org/ecma-262/10.0/#sec-hasprimitivebase', - HasProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://ecma-international.org/ecma-262/10.0/#sec-host-synchronizes-with', - HostEnsureCanCompileStrings: 'https://ecma-international.org/ecma-262/10.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-hosteventset', - HostPromiseRejectionTracker: 'https://ecma-international.org/ecma-262/10.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://ecma-international.org/ecma-262/10.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://ecma-international.org/ecma-262/10.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://ecma-international.org/ecma-262/10.0/#sec-importedlocalnames', - InitializeBoundName: 'https://ecma-international.org/ecma-262/10.0/#sec-initializeboundname', - InitializeEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-source-text-module-record-initialize-environment', - InitializeHostDefinedRealm: 'https://ecma-international.org/ecma-262/10.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://ecma-international.org/ecma-262/10.0/#sec-initializereferencedbinding', - InLeapYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-InLeapYear', - InnerModuleEvaluation: 'https://ecma-international.org/ecma-262/10.0/#sec-innermoduleevaluation', - InnerModuleInstantiation: 'https://ecma-international.org/ecma-262/10.0/#sec-innermoduleinstantiation', - InstanceofOperator: 'https://ecma-international.org/ecma-262/10.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://ecma-international.org/ecma-262/10.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://ecma-international.org/ecma-262/10.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-internalizejsonproperty', - Invoke: 'https://ecma-international.org/ecma-262/10.0/#sec-invoke', - IsAccessorDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://ecma-international.org/ecma-262/10.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://ecma-international.org/ecma-262/10.0/#sec-isarray', - IsCallable: 'https://ecma-international.org/ecma-262/10.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://ecma-international.org/ecma-262/10.0/#sec-isconcatspreadable', - IsConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-isconstructor', - IsDataDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-isdetachedbuffer', - IsExtensible: 'https://ecma-international.org/ecma-262/10.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://ecma-international.org/ecma-262/10.0/#sec-isintailposition', - IsInteger: 'https://ecma-international.org/ecma-262/10.0/#sec-isinteger', - IsLabelledFunction: 'https://ecma-international.org/ecma-262/10.0/#sec-islabelledfunction', - IsPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-ispromise', - IsPropertyKey: 'https://ecma-international.org/ecma-262/10.0/#sec-ispropertykey', - IsPropertyReference: 'https://ecma-international.org/ecma-262/10.0/#sec-ispropertyreference', - IsRegExp: 'https://ecma-international.org/ecma-262/10.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://ecma-international.org/ecma-262/10.0/#sec-isstrictreference', - IsStringPrefix: 'https://ecma-international.org/ecma-262/10.0/#sec-isstringprefix', - IsSuperReference: 'https://ecma-international.org/ecma-262/10.0/#sec-issuperreference', - IsUnresolvableReference: 'https://ecma-international.org/ecma-262/10.0/#sec-isunresolvablereference', - IsWordChar: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://ecma-international.org/ecma-262/10.0/#sec-iterabletolist', - IteratorClose: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorclose', - IteratorComplete: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorcomplete', - IteratorNext: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratornext', - IteratorStep: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorstep', - IteratorValue: 'https://ecma-international.org/ecma-262/10.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://ecma-international.org/ecma-262/10.0/#sec-leavecriticalsection', - LocalTime: 'https://ecma-international.org/ecma-262/10.0/#sec-localtime', - LoopContinues: 'https://ecma-international.org/ecma-262/10.0/#sec-loopcontinues', - MakeArgGetter: 'https://ecma-international.org/ecma-262/10.0/#sec-makearggetter', - MakeArgSetter: 'https://ecma-international.org/ecma-262/10.0/#sec-makeargsetter', - MakeClassConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-makeclassconstructor', - MakeConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-makeconstructor', - MakeDate: 'https://ecma-international.org/ecma-262/10.0/#sec-makedate', - MakeDay: 'https://ecma-international.org/ecma-262/10.0/#sec-makeday', - MakeMethod: 'https://ecma-international.org/ecma-262/10.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://ecma-international.org/ecma-262/10.0/#sec-makesuperpropertyreference', - MakeTime: 'https://ecma-international.org/ecma-262/10.0/#sec-maketime', - max: 'https://ecma-international.org/ecma-262/10.0/#eqn-max', - 'memory-order': 'https://ecma-international.org/ecma-262/10.0/#sec-memory-order', - min: 'https://ecma-international.org/ecma-262/10.0/#eqn-min', - MinFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-MinFromTime', - ModuleNamespaceCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-modulenamespacecreate', - modulo: 'https://ecma-international.org/ecma-262/10.0/#eqn-modulo', - MonthFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-MonthFromTime', - msFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://ecma-international.org/ecma-262/10.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://ecma-international.org/ecma-262/10.0/#sec-newpromisecapability', - NormalCompletion: 'https://ecma-international.org/ecma-262/10.0/#sec-normalcompletion', - NotifyWaiter: 'https://ecma-international.org/ecma-262/10.0/#sec-notifywaiter', - NumberToRawBytes: 'https://ecma-international.org/ecma-262/10.0/#sec-numbertorawbytes', - NumberToString: 'https://ecma-international.org/ecma-262/10.0/#sec-tostring-applied-to-the-number-type', - ObjectCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-objectcreate', - ObjectDefineProperties: 'https://ecma-international.org/ecma-262/10.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarydelete', - OrdinaryGet: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarysetprototypeof', - OrdinarySetWithOwnDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarysetwithowndescriptor', - OrdinaryToPrimitive: 'https://ecma-international.org/ecma-262/10.0/#sec-ordinarytoprimitive', - ParseModule: 'https://ecma-international.org/ecma-262/10.0/#sec-parsemodule', - ParseScript: 'https://ecma-international.org/ecma-262/10.0/#sec-parse-script', - PerformEval: 'https://ecma-international.org/ecma-262/10.0/#sec-performeval', - PerformPromiseAll: 'https://ecma-international.org/ecma-262/10.0/#sec-performpromiseall', - PerformPromiseRace: 'https://ecma-international.org/ecma-262/10.0/#sec-performpromiserace', - PerformPromiseThen: 'https://ecma-international.org/ecma-262/10.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://ecma-international.org/ecma-262/10.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://ecma-international.org/ecma-262/10.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://ecma-international.org/ecma-262/10.0/#sec-promisereactionjob', - PromiseResolve: 'https://ecma-international.org/ecma-262/10.0/#sec-promise-resolve', - PromiseResolveThenableJob: 'https://ecma-international.org/ecma-262/10.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-proxycreate', - PutValue: 'https://ecma-international.org/ecma-262/10.0/#sec-putvalue', - QuoteJSONString: 'https://ecma-international.org/ecma-262/10.0/#sec-quotejsonstring', - RawBytesToNumber: 'https://ecma-international.org/ecma-262/10.0/#sec-rawbytestonumber', - 'reads-bytes-from': 'https://ecma-international.org/ecma-262/10.0/#sec-reads-bytes-from', - 'reads-from': 'https://ecma-international.org/ecma-262/10.0/#sec-reads-from', - RegExpAlloc: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpcreate', - RegExpExec: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpexec', - RegExpInitialize: 'https://ecma-international.org/ecma-262/10.0/#sec-regexpinitialize', - RejectPromise: 'https://ecma-international.org/ecma-262/10.0/#sec-rejectpromise', - RemoveWaiter: 'https://ecma-international.org/ecma-262/10.0/#sec-removewaiter', - RemoveWaiters: 'https://ecma-international.org/ecma-262/10.0/#sec-removewaiters', - RepeatMatcher: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://ecma-international.org/ecma-262/10.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://ecma-international.org/ecma-262/10.0/#sec-resolvebinding', - ResolveThisBinding: 'https://ecma-international.org/ecma-262/10.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://ecma-international.org/ecma-262/10.0/#sec-returnifabrupt', - RunJobs: 'https://ecma-international.org/ecma-262/10.0/#sec-runjobs', - SameValue: 'https://ecma-international.org/ecma-262/10.0/#sec-samevalue', - SameValueNonNumber: 'https://ecma-international.org/ecma-262/10.0/#sec-samevaluenonnumber', - SameValueZero: 'https://ecma-international.org/ecma-262/10.0/#sec-samevaluezero', - ScriptEvaluation: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://ecma-international.org/ecma-262/10.0/#sec-scriptevaluationjob', - SecFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://ecma-international.org/ecma-262/10.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://ecma-international.org/ecma-262/10.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-serializejsonproperty', - Set: 'https://ecma-international.org/ecma-262/10.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://ecma-international.org/ecma-262/10.0/#sec-setdefaultglobalbindings', - SetFunctionLength: 'https://ecma-international.org/ecma-262/10.0/#sec-setfunctionlength', - SetFunctionName: 'https://ecma-international.org/ecma-262/10.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://ecma-international.org/ecma-262/10.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://ecma-international.org/ecma-262/10.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://ecma-international.org/ecma-262/10.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://ecma-international.org/ecma-262/10.0/#sec-setvalueinbuffer', - SetViewValue: 'https://ecma-international.org/ecma-262/10.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-sharedatablockeventset', - SortCompare: 'https://ecma-international.org/ecma-262/10.0/#sec-sortcompare', - SpeciesConstructor: 'https://ecma-international.org/ecma-262/10.0/#sec-speciesconstructor', - SplitMatch: 'https://ecma-international.org/ecma-262/10.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://ecma-international.org/ecma-262/10.0/#sec-strict-equality-comparison', - StringCreate: 'https://ecma-international.org/ecma-262/10.0/#sec-stringcreate', - StringGetOwnProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-stringgetownproperty', - Suspend: 'https://ecma-international.org/ecma-262/10.0/#sec-suspend', - SymbolDescriptiveString: 'https://ecma-international.org/ecma-262/10.0/#sec-symboldescriptivestring', - SynchronizeEventSet: 'https://ecma-international.org/ecma-262/10.0/#sec-synchronizeeventset', - 'synchronizes-with': 'https://ecma-international.org/ecma-262/10.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://ecma-international.org/ecma-262/10.0/#sec-testintegritylevel', - thisBooleanValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thisnumbervalue', - thisStringValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thisstringvalue', - thisSymbolValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thissymbolvalue', - thisTimeValue: 'https://ecma-international.org/ecma-262/10.0/#sec-thistimevalue', - ThrowCompletion: 'https://ecma-international.org/ecma-262/10.0/#sec-throwcompletion', - TimeClip: 'https://ecma-international.org/ecma-262/10.0/#sec-timeclip', - TimeFromYear: 'https://ecma-international.org/ecma-262/10.0/#eqn-TimeFromYear', - TimeString: 'https://ecma-international.org/ecma-262/10.0/#sec-timestring', - TimeWithinDay: 'https://ecma-international.org/ecma-262/10.0/#eqn-TimeWithinDay', - TimeZoneString: 'https://ecma-international.org/ecma-262/10.0/#sec-timezoneestring', - ToBoolean: 'https://ecma-international.org/ecma-262/10.0/#sec-toboolean', - ToDateString: 'https://ecma-international.org/ecma-262/10.0/#sec-todatestring', - ToIndex: 'https://ecma-international.org/ecma-262/10.0/#sec-toindex', - ToInt16: 'https://ecma-international.org/ecma-262/10.0/#sec-toint16', - ToInt32: 'https://ecma-international.org/ecma-262/10.0/#sec-toint32', - ToInt8: 'https://ecma-international.org/ecma-262/10.0/#sec-toint8', - ToInteger: 'https://ecma-international.org/ecma-262/10.0/#sec-tointeger', - ToLength: 'https://ecma-international.org/ecma-262/10.0/#sec-tolength', - ToNumber: 'https://ecma-international.org/ecma-262/10.0/#sec-tonumber', - ToObject: 'https://ecma-international.org/ecma-262/10.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://ecma-international.org/ecma-262/10.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://ecma-international.org/ecma-262/10.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://ecma-international.org/ecma-262/10.0/#sec-topropertykey', - ToString: 'https://ecma-international.org/ecma-262/10.0/#sec-tostring', - ToUint16: 'https://ecma-international.org/ecma-262/10.0/#sec-touint16', - ToUint32: 'https://ecma-international.org/ecma-262/10.0/#sec-touint32', - ToUint8: 'https://ecma-international.org/ecma-262/10.0/#sec-touint8', - ToUint8Clamp: 'https://ecma-international.org/ecma-262/10.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://ecma-international.org/ecma-262/10.0/#sec-triggerpromisereactions', - TrimString: 'https://ecma-international.org/ecma-262/10.0/#sec-trimstring', - Type: 'https://ecma-international.org/ecma-262/10.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://ecma-international.org/ecma-262/10.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://ecma-international.org/ecma-262/10.0/#typedarray-species-create', - UnicodeEscape: 'https://ecma-international.org/ecma-262/10.0/#sec-unicodeescape', - UnicodeMatchProperty: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-unicodematchproperty-p', - UnicodeMatchPropertyValue: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v', - UpdateEmpty: 'https://ecma-international.org/ecma-262/10.0/#sec-updateempty', - UTC: 'https://ecma-international.org/ecma-262/10.0/#sec-utc-t', - UTF16Decode: 'https://ecma-international.org/ecma-262/10.0/#sec-utf16decode', - UTF16Encoding: 'https://ecma-international.org/ecma-262/10.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://ecma-international.org/ecma-262/10.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://ecma-international.org/ecma-262/10.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://ecma-international.org/ecma-262/10.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://ecma-international.org/ecma-262/10.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://ecma-international.org/ecma-262/10.0/#sec-valueofreadevent', - WeekDay: 'https://ecma-international.org/ecma-262/10.0/#sec-week-day', - WordCharacters: 'https://ecma-international.org/ecma-262/10.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://ecma-international.org/ecma-262/10.0/#eqn-YearFromTime' -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/package.json b/node_modules/object.assign/node_modules/es-abstract/package.json deleted file mode 100644 index df6c20ac04..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/package.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "name": "es-abstract", - "version": "1.18.0-next.0", - "author": { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "contributors": [ - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": "http://ljharb.codes" - } - ], - "description": "ECMAScript spec abstract operations.", - "license": "MIT", - "main": "index.js", - "scripts": { - "prespackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs rm || true", - "spackle": "node operations/spackle 1", - "postspackle": "git ls-files | xargs git check-attr spackled | grep -v 'unspecified$' | cut -d: -f1 | xargs git add", - "prepublish": "safe-publish-latest && (not-in-publish || npm run spackle)", - "pretest": "npm run lint", - "test": "npm run tests-only", - "posttest": "aud --production", - "tests-only": "node test", - "coverage": "nyc npm run tests-only >/dev/null", - "postcoverage": "nyc report", - "lint": "eslint .", - "eccheck": "eclint check *.js **/*.js > /dev/null" - }, - "repository": { - "type": "git", - "url": "git://github.com/ljharb/es-abstract.git" - }, - "keywords": [ - "ECMAScript", - "ES", - "abstract", - "operation", - "abstract operation", - "JavaScript", - "ES5", - "ES6", - "ES7" - ], - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "devDependencies": { - "@ljharb/eslint-config": "^17.1.0", - "array.prototype.indexof": "^1.0.0", - "aud": "^1.1.2", - "cheerio": "^1.0.0-rc.3", - "diff": "^4.0.2", - "eclint": "^2.8.1", - "eslint": "^7.7.0", - "foreach": "^2.0.5", - "functions-have-names": "^1.2.1", - "has-bigints": "^1.0.0", - "has-strict-mode": "^1.0.0", - "in-publish": "^2.0.1", - "make-arrow-function": "^1.2.0", - "make-async-function": "^1.0.0", - "make-async-generator-function": "^1.0.0", - "make-generator-function": "^2.0.0", - "nyc": "^10.3.2", - "object-is": "^1.1.2", - "object.fromentries": "^2.0.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" - }, - "testling": { - "files": "test/index.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0..6.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0..10.0", - "chrome/20.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/4.0..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - }, - "engines": { - "node": ">= 0.4" - }, - "greenkeeper": { - "//": "nyc is ignored because it requires node 4+, and we support older than that", - "ignore": [ - "nyc" - ] - } -} \ No newline at end of file diff --git a/node_modules/object.assign/node_modules/es-abstract/test/GetIntrinsic.js b/node_modules/object.assign/node_modules/es-abstract/test/GetIntrinsic.js deleted file mode 100644 index 4fda1231a0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/GetIntrinsic.js +++ /dev/null @@ -1,206 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic'); - -var test = require('tape'); -var forEach = require('foreach'); -var debug = require('object-inspect'); -var generatorFns = require('make-generator-function')(); -var asyncFns = require('make-async-function').list(); -var asyncGenFns = require('make-async-generator-function')(); - -var callBound = require('../helpers/callBound'); -var v = require('./helpers/values'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); - -var $isProto = callBound('%Object.prototype.isPrototypeOf%'); - -test('export', function (t) { - t.equal(typeof GetIntrinsic, 'function', 'it is a function'); - t.equal(GetIntrinsic.length, 2, 'function has length of 2'); - - t.end(); -}); - -test('throws', function (t) { - t['throws']( - function () { GetIntrinsic('not an intrinsic'); }, - SyntaxError, - 'nonexistent intrinsic throws a syntax error' - ); - - t['throws']( - function () { GetIntrinsic(''); }, - TypeError, - 'empty string intrinsic throws a type error' - ); - - t['throws']( - function () { GetIntrinsic('.'); }, - SyntaxError, - '"just a dot" intrinsic throws a syntax error' - ); - - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { GetIntrinsic(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { GetIntrinsic('%', nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach([ - 'toString', - 'propertyIsEnumerable', - 'hasOwnProperty' - ], function (objectProtoMember) { - t['throws']( - function () { GetIntrinsic(objectProtoMember); }, - SyntaxError, - debug(objectProtoMember) + ' is not an intrinsic' - ); - }); - - t.end(); -}); - -test('base intrinsics', function (t) { - t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object'); - t.equal(GetIntrinsic('Object'), Object, 'Object yields Object'); - t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array'); - t.equal(GetIntrinsic('Array'), Array, 'Array yields Array'); - - t.end(); -}); - -test('dotted paths', function (t) { - t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString'); - t.equal(GetIntrinsic('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString yields Object.prototype.toString'); - t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push'); - t.equal(GetIntrinsic('Array.prototype.push'), Array.prototype.push, 'Array.prototype.push yields Array.prototype.push'); - - test('underscore paths are aliases for dotted paths', function (st) { - var original = GetIntrinsic('%ObjProto_toString%'); - - forEach([ - '%Object.prototype.toString%', - 'Object.prototype.toString', - '%ObjectPrototype.toString%', - 'ObjectPrototype.toString', - '%ObjProto_toString%', - 'ObjProto_toString' - ], function (name) { - // eslint-disable-next-line no-extend-native - Object.prototype.toString = function toString() { - return original.apply(this, arguments); - }; - st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString'); - }); - - // eslint-disable-next-line no-extend-native - Object.prototype.toString = original; - st.end(); - }); - - test('dotted paths cache', function (st) { - var original = GetIntrinsic('%Object.prototype.propertyIsEnumerable%'); - - forEach([ - '%Object.prototype.propertyIsEnumerable%', - 'Object.prototype.propertyIsEnumerable', - '%ObjectPrototype.propertyIsEnumerable%', - 'ObjectPrototype.propertyIsEnumerable' - ], function (name) { - // eslint-disable-next-line no-extend-native - Object.prototype.propertyIsEnumerable = function propertyIsEnumerable() { - return original.apply(this, arguments); - }; - st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable'); - }); - - // eslint-disable-next-line no-extend-native - Object.prototype.propertyIsEnumerable = original; - st.end(); - }); - - test('dotted path reports correct error', function (st) { - st['throws'](function () { - GetIntrinsic('%NonExistentIntrinsic.prototype.property%'); - }, /%NonExistentIntrinsic%/, 'The base intrinsic of %NonExistentIntrinsic.prototype.property% is %NonExistentIntrinsic%'); - - st['throws'](function () { - GetIntrinsic('%NonExistentIntrinsicPrototype.property%'); - }, /%NonExistentIntrinsicPrototype%/, 'The base intrinsic of %NonExistentIntrinsicPrototype.property% is %NonExistentIntrinsicPrototype%'); - - st.end(); - }); - - t.end(); -}); - -test('accessors', { skip: !$gOPD || typeof Map !== 'function' }, function (t) { - var actual = $gOPD(Map.prototype, 'size'); - t.ok(actual, 'Map.prototype.size has a descriptor'); - t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function'); - t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it'); - t.equal(GetIntrinsic('Map.prototype.size'), actual.get, 'Map.prototype.size yields the getter for it'); - - t.end(); -}); - -test('generator functions', { skip: !generatorFns.length }, function (t) { - var $GeneratorFunction = GetIntrinsic('%GeneratorFunction%'); - var $GeneratorFunctionPrototype = GetIntrinsic('%Generator%'); - var $GeneratorPrototype = GetIntrinsic('%GeneratorPrototype%'); - - forEach(generatorFns, function (genFn) { - var fnName = genFn.name; - fnName = fnName ? "'" + fnName + "'" : 'genFn'; - - t.ok(genFn instanceof $GeneratorFunction, fnName + ' instanceof %GeneratorFunction%'); - t.ok($isProto($GeneratorFunctionPrototype, genFn), '%Generator% is prototype of ' + fnName); - t.ok($isProto($GeneratorPrototype, genFn.prototype), '%GeneratorPrototype% is prototype of ' + fnName + '.prototype'); - }); - - t.end(); -}); - -test('async functions', { skip: !asyncFns.length }, function (t) { - var $AsyncFunction = GetIntrinsic('%AsyncFunction%'); - var $AsyncFunctionPrototype = GetIntrinsic('%AsyncFunctionPrototype%'); - - forEach(asyncFns, function (asyncFn) { - var fnName = asyncFn.name; - fnName = fnName ? "'" + fnName + "'" : 'asyncFn'; - - t.ok(asyncFn instanceof $AsyncFunction, fnName + ' instanceof %AsyncFunction%'); - t.ok($isProto($AsyncFunctionPrototype, asyncFn), '%AsyncFunctionPrototype% is prototype of ' + fnName); - }); - - t.end(); -}); - -test('async generator functions', { skip: !asyncGenFns.length }, function (t) { - var $AsyncGeneratorFunction = GetIntrinsic('%AsyncGeneratorFunction%'); - var $AsyncGeneratorFunctionPrototype = GetIntrinsic('%AsyncGenerator%'); - var $AsyncGeneratorPrototype = GetIntrinsic('%AsyncGeneratorPrototype%'); - - forEach(asyncGenFns, function (asyncGenFn) { - var fnName = asyncGenFn.name; - fnName = fnName ? "'" + fnName + "'" : 'asyncGenFn'; - - t.ok(asyncGenFn instanceof $AsyncGeneratorFunction, fnName + ' instanceof %AsyncGeneratorFunction%'); - t.ok($isProto($AsyncGeneratorFunctionPrototype, asyncGenFn), '%AsyncGenerator% is prototype of ' + fnName); - t.ok($isProto($AsyncGeneratorPrototype, asyncGenFn.prototype), '%AsyncGeneratorPrototype% is prototype of ' + fnName + '.prototype'); - }); - - t.end(); -}); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/diffOps.js b/node_modules/object.assign/node_modules/es-abstract/test/diffOps.js deleted file mode 100644 index 602098dd34..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/diffOps.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var keys = require('object-keys'); -var forEach = require('foreach'); -var indexOf = require('array.prototype.indexof'); - -module.exports = function diffOperations(actual, expected, expectedMissing) { - var actualKeys = keys(actual); - var expectedKeys = keys(expected); - - var extra = []; - var missing = []; - forEach(actualKeys, function (op) { - if (!(op in expected)) { - extra.push(op); - } else if (indexOf(expectedMissing, op) !== -1) { - extra.push(op); - } - }); - forEach(expectedKeys, function (op) { - if (typeof actual[op] !== 'function' && indexOf(expectedMissing, op) === -1) { - missing.push(op); - } - }); - - return { missing: missing, extra: extra }; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es2015.js b/node_modules/object.assign/node_modules/es-abstract/test/es2015.js deleted file mode 100644 index d26738483a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es2015.js +++ /dev/null @@ -1,146 +0,0 @@ -'use strict'; - -var ES = require('../').ES2015; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2015'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AllocateArrayBuffer', - 'AllocateTypedArray', - 'BoundFunctionCreate', - 'Canonicalize', - 'CharacterRange', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIterator', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateSetIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateDirectCall', - 'EvaluateNew', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetBase', - 'GetFunctionRealm', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'HasPrimitiveBase', - 'HostResolveImportedModule', - 'ImportedLocalNames', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'min', - 'ModuleNamespaceCreate', - 'msPerDay', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'ParseModule', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'ProxyCreate', - 'PutValue', - 'RegExpAlloc', - 'RegExpBuiltinExec', - 'RegExpCreate', - 'RegExpInitialize', - 'RejectPromise', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'sign', - 'SortCompare', - 'SplitMatch', - 'StringCreate', - 'StringGetIndexProperty', - 'TriggerPromiseReactions', - 'TypedArrayFrom', - 'UpdateEmpty', - 'UTC' -]; - -require('./tests').es2015(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2015); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es2016.js b/node_modules/object.assign/node_modules/es-abstract/test/es2016.js deleted file mode 100644 index 8815db64a5..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es2016.js +++ /dev/null @@ -1,168 +0,0 @@ -'use strict'; - -var ES = require('../').ES2016; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2016'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AllocateArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIterator', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateDirectCall', - 'EvaluateNew', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetFunctionRealm', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GlobalDeclarationInstantiation', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsWordChar', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'min', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NextJob', - 'NormalCompletion', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', - 'RegExpAlloc', - 'RegExpBuiltinExec', - 'RegExpCreate', - 'RegExpInitialize', - 'RejectPromise', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SortCompare', - 'SplitMatch', - 'StringCreate', - 'TopLevelModuleEvaluationJob', - 'ToString Applied to the Number Type', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UpdateEmpty', - 'UTC', // depends on LocalTZA - 'UTF16Decode', - 'ValidateTypedArray' -]; - -require('./tests').es2016(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2016); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es2017.js b/node_modules/object.assign/node_modules/es-abstract/test/es2017.js deleted file mode 100644 index e11c5d40c0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es2017.js +++ /dev/null @@ -1,214 +0,0 @@ -'use strict'; - -var ES = require('../').ES2017; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2017'); - -var expectedMissing = [ - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFunctionAwait', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIterator', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateDirectCall', - 'EvaluateNew', - 'EventSet', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'NumberToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', - 'RawBytesToNumber', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', - 'RegExpBuiltinExec', - 'RegExpCreate', - 'RegExpInitialize', - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', - 'SplitMatch', - 'StringCreate', - 'Suspend', - 'TopLevelModuleEvaluationJob', - 'ToString Applied to the Number Type', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UpdateEmpty', - 'UTC', // depends on LocalTZA'UTC', - 'UTF16Decode', - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WakeWaiter', - 'WordCharacters', // depends on Canonicalize - 'AddRestrictedFunctionProperties', - 'synchronizes-with' -]; - -require('./tests').es2017(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2017); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es2018.js b/node_modules/object.assign/node_modules/es-abstract/test/es2018.js deleted file mode 100644 index 36a19226e3..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es2018.js +++ /dev/null @@ -1,233 +0,0 @@ -'use strict'; - -var ES = require('../').ES2018; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2018'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AsyncGeneratorEnqueue', - 'AsyncGeneratorFunctionCreate', - 'AsyncGeneratorReject', - 'AsyncGeneratorResolve', - 'AsyncGeneratorResumeNext', - 'AsyncGeneratorStart', - 'AsyncGeneratorYield', - 'AsyncIteratorClose', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'Await', - 'BackreferenceMatcher', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CaseClauseIsSelected', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateAsyncFromSyncIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIteratorRecord', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateNew', - 'EventSet', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGeneratorKind', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'InnerModuleEvaluation', - 'InnerModuleInstantiation', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleDeclarationEnvironmentSetup', - 'ModuleExecution', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'NumberToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinarySetWithOwnDescriptor', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', - 'RawBytesToNumber', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', - 'RegExpBuiltinExec', - 'RegExpCreate', - 'RegExpInitialize', - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', - 'SplitMatch', - 'StringCreate', - 'Suspend', - 'synchronizes-with', - 'ThrowCompletion', - 'TimeZoneString', - 'TopLevelModuleEvaluationJob', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UnicodeMatchProperty', - 'UnicodeMatchPropertyValue', - 'UpdateEmpty', - 'UTC', // depends on LocalTZA'UTC', - 'UTF16Decode', - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WakeWaiter', - 'WordCharacters' // depends on Canonicalize -]; - -require('./tests').es2018(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2018); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es2019.js b/node_modules/object.assign/node_modules/es-abstract/test/es2019.js deleted file mode 100644 index 1a738e4b5b..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es2019.js +++ /dev/null @@ -1,238 +0,0 @@ -'use strict'; - -var ES = require('../').ES2019; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2019'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFromSyncIteratorContinuation', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AsyncGeneratorEnqueue', - 'AsyncGeneratorFunctionCreate', - 'AsyncGeneratorReject', - 'AsyncGeneratorResolve', - 'AsyncGeneratorResumeNext', - 'AsyncGeneratorStart', - 'AsyncGeneratorYield', - 'AsyncIteratorClose', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'Await', - 'BackreferenceMatcher', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CaseClauseIsSelected', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateAsyncFromSyncIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIteratorRecord', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateNew', - 'EventSet', - 'ExecuteModule', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGeneratorKind', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeEnvironment', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'InnerModuleEvaluation', - 'InnerModuleInstantiation', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleDeclarationEnvironmentSetup', - 'ModuleExecution', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'NotifyWaiter', - 'NumberToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinarySetWithOwnDescriptor', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', - 'RawBytesToNumber', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', - 'RegExpBuiltinExec', - 'RegExpCreate', - 'RegExpInitialize', - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', - 'SplitMatch', - 'StringCreate', - 'Suspend', - 'SynchronizeEventSet', - 'synchronizes-with', - 'ThrowCompletion', - 'TimeZoneString', - 'TopLevelModuleEvaluationJob', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UnicodeMatchProperty', - 'UnicodeMatchPropertyValue', - 'UpdateEmpty', - 'UTC', // depends on LocalTZA'UTC', - 'UTF16Decode', - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WakeWaiter', - 'WordCharacters' // depends on Canonicalize -]; - -require('./tests').es2019(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2019); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es2020.js b/node_modules/object.assign/node_modules/es-abstract/test/es2020.js deleted file mode 100644 index 3b9cd5cda4..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es2020.js +++ /dev/null @@ -1,267 +0,0 @@ -'use strict'; - -var ES = require('../').ES2020; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2020'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFromSyncIteratorContinuation', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AsyncGeneratorEnqueue', - 'AsyncGeneratorFunctionCreate', - 'AsyncGeneratorReject', - 'AsyncGeneratorResolve', - 'AsyncGeneratorResumeNext', - 'AsyncGeneratorStart', - 'AsyncGeneratorYield', - 'AsyncIteratorClose', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'Await', - 'BackreferenceMatcher', - 'BigInt::toString', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CaseClauseIsSelected', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateAsyncFromSyncIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateForInIterator', - 'CreateIntrinsics', - 'CreateListIteratorRecord', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateRegExpStringIterator', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateNew', - 'EvaluatePropertyAccessWithExpressionKey', - 'EvaluatePropertyAccessWithIdentifierKey', - 'EventSet', - 'ExecuteModule', - 'FinishDynamicImport', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGeneratorKind', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnqueuePromiseJob', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostFinalizeImportMeta', - 'HostGetImportMetaProperties', - 'HostImportModuleDynamically', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeEnvironment', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'InnerModuleEvaluation', - 'InnerModuleInstantiation', - 'InnerModuleLinking', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsValidIntegerIndex', - 'IsValidRegularExpressionLiteral', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LocalTZA', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeBasicObject', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleDeclarationEnvironmentSetup', - 'ModuleExecution', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NewPromiseReactionJob', - 'NewPromiseResolveThenableJob', - 'NormalCompletion', - 'NotifyWaiter', - 'Number::toString', - 'NumberToBigInt', - 'NumberToRawBytes', - 'NumericToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryFunctionCreate', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinarySetWithOwnDescriptor', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseAllSettled', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', - 'RawBytesToNumber', - 'RawBytesToNumeric', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', - 'RegExpBuiltinExec', - 'RegExpCreate', - 'RegExpInitialize', - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'RequireInternalSlot', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', - 'SplitMatch', - 'StringCreate', - 'StringToBigInt', - 'Suspend', - 'SynchronizeEventSet', - 'synchronizes-with', - 'ThrowCompletion', - 'TimeZoneString', - 'ToBigInt', - 'ToBigInt64', - 'ToBigUint64', - 'TopLevelModuleEvaluationJob', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UnicodeMatchProperty', - 'UnicodeMatchPropertyValue', - 'UpdateEmpty', - 'UTC', // depends on LocalTZA - 'UTF16Decode', - 'UTF16Encode', - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WakeWaiter', - 'WordCharacters' // depends on Canonicalize -]; - -require('./tests').es2020(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2020); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es5.js b/node_modules/object.assign/node_modules/es-abstract/test/es5.js deleted file mode 100644 index 6647a1b2f1..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es5.js +++ /dev/null @@ -1,786 +0,0 @@ -'use strict'; - -var ES = require('../').ES5; -var test = require('tape'); - -var forEach = require('foreach'); -var is = require('object-is'); -var debug = require('object-inspect'); - -var v = require('./helpers/values'); - -require('./helpers/runManifestTest')(test, ES, 5); - -ES = require('./helpers/createBoundESNamespace')(ES); - -test('ToPrimitive', function (t) { - t.test('primitives', function (st) { - var testPrimitive = function (primitive) { - st.ok(is(ES.ToPrimitive(primitive), primitive), debug(primitive) + ' is returned correctly'); - }; - forEach(v.primitives, testPrimitive); - st.end(); - }); - - t.test('objects', function (st) { - st.equal(ES.ToPrimitive(v.coercibleObject), v.coercibleObject.valueOf(), 'coercibleObject coerces to valueOf'); - st.equal(ES.ToPrimitive(v.coercibleObject, Number), v.coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf'); - st.equal(ES.ToPrimitive(v.coercibleObject, String), v.coercibleObject.toString(), 'coercibleObject with hint String coerces to toString'); - st.equal(ES.ToPrimitive(v.coercibleFnObject), v.coercibleFnObject.toString(), 'coercibleFnObject coerces to toString'); - st.equal(ES.ToPrimitive(v.toStringOnlyObject), v.toStringOnlyObject.toString(), 'toStringOnlyObject returns toString'); - st.equal(ES.ToPrimitive(v.valueOfOnlyObject), v.valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf'); - st.equal(ES.ToPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString'); - st.equal(ES.ToPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString'); - st.equal(ES.ToPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to Object#toString'); - st['throws'](function () { return ES.ToPrimitive(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError'); - st['throws'](function () { return ES.ToPrimitive(v.uncoercibleFnObject); }, TypeError, 'uncoercibleFnObject throws a TypeError'); - st.end(); - }); - - t.end(); -}); - -test('ToBoolean', function (t) { - t.equal(false, ES.ToBoolean(undefined), 'undefined coerces to false'); - t.equal(false, ES.ToBoolean(null), 'null coerces to false'); - t.equal(false, ES.ToBoolean(false), 'false returns false'); - t.equal(true, ES.ToBoolean(true), 'true returns true'); - forEach([0, -0, NaN], function (falsyNumber) { - t.equal(false, ES.ToBoolean(falsyNumber), 'falsy number ' + falsyNumber + ' coerces to false'); - }); - forEach([Infinity, 42, 1, -Infinity], function (truthyNumber) { - t.equal(true, ES.ToBoolean(truthyNumber), 'truthy number ' + truthyNumber + ' coerces to true'); - }); - t.equal(false, ES.ToBoolean(''), 'empty string coerces to false'); - t.equal(true, ES.ToBoolean('foo'), 'nonempty string coerces to true'); - forEach(v.objects, function (obj) { - t.equal(true, ES.ToBoolean(obj), 'object coerces to true'); - }); - t.equal(true, ES.ToBoolean(v.uncoercibleObject), 'uncoercibleObject coerces to true'); - t.end(); -}); - -test('ToNumber', function (t) { - t.ok(is(NaN, ES.ToNumber(undefined)), 'undefined coerces to NaN'); - t.ok(is(ES.ToNumber(null), 0), 'null coerces to +0'); - t.ok(is(ES.ToNumber(false), 0), 'false coerces to +0'); - t.equal(1, ES.ToNumber(true), 'true coerces to 1'); - t.ok(is(NaN, ES.ToNumber(NaN)), 'NaN returns itself'); - forEach([0, -0, 42, Infinity, -Infinity], function (num) { - t.equal(num, ES.ToNumber(num), num + ' returns itself'); - }); - forEach(['foo', '0', '4a', '2.0', 'Infinity', '-Infinity'], function (numString) { - t.ok(is(+numString, ES.ToNumber(numString)), '"' + numString + '" coerces to ' + Number(numString)); - }); - forEach(v.objects, function (object) { - t.ok(is(ES.ToNumber(object), ES.ToNumber(ES.ToPrimitive(object))), 'object ' + object + ' coerces to same as ToPrimitive of object does'); - }); - t['throws'](function () { return ES.ToNumber(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.end(); -}); - -test('ToInteger', function (t) { - t.ok(is(0, ES.ToInteger(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity, 42], function (num) { - t.ok(is(num, ES.ToInteger(num)), num + ' returns itself'); - t.ok(is(-num, ES.ToInteger(-num)), '-' + num + ' returns itself'); - }); - t.equal(3, ES.ToInteger(Math.PI), 'pi returns 3'); - t['throws'](function () { return ES.ToInteger(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.end(); -}); - -test('ToInt32', function (t) { - t.ok(is(0, ES.ToInt32(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToInt32(num)), num + ' returns +0'); - t.ok(is(0, ES.ToInt32(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToInt32(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToInt32(0x100000000 - 1), -1), '2^32 - 1 returns -1'); - t.ok(is(ES.ToInt32(0x80000000), -0x80000000), '2^31 returns -2^31'); - t.ok(is(ES.ToInt32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1'); - forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) { - t.ok(is(ES.ToInt32(num), ES.ToInt32(ES.ToUint32(num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for 0x' + num.toString(16)); - t.ok(is(ES.ToInt32(-num), ES.ToInt32(ES.ToUint32(-num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for -0x' + num.toString(16)); - }); - t.end(); -}); - -test('ToUint32', function (t) { - t.ok(is(0, ES.ToUint32(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToUint32(num)), num + ' returns +0'); - t.ok(is(0, ES.ToUint32(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToUint32(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToUint32(0x100000000 - 1), 0x100000000 - 1), '2^32 - 1 returns 2^32 - 1'); - t.ok(is(ES.ToUint32(0x80000000), 0x80000000), '2^31 returns 2^31'); - t.ok(is(ES.ToUint32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1'); - forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) { - t.ok(is(ES.ToUint32(num), ES.ToUint32(ES.ToInt32(num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for 0x' + num.toString(16)); - t.ok(is(ES.ToUint32(-num), ES.ToUint32(ES.ToInt32(-num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for -0x' + num.toString(16)); - }); - t.end(); -}); - -test('ToUint16', function (t) { - t.ok(is(0, ES.ToUint16(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToUint16(num)), num + ' returns +0'); - t.ok(is(0, ES.ToUint16(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToUint16(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToUint16(0x100000000 - 1), 0x10000 - 1), '2^32 - 1 returns 2^16 - 1'); - t.ok(is(ES.ToUint16(0x80000000), 0), '2^31 returns +0'); - t.ok(is(ES.ToUint16(0x80000000 - 1), 0x10000 - 1), '2^31 - 1 returns 2^16 - 1'); - t.ok(is(ES.ToUint16(0x10000), 0), '2^16 returns +0'); - t.ok(is(ES.ToUint16(0x10000 - 1), 0x10000 - 1), '2^16 - 1 returns 2^16 - 1'); - t.end(); -}); - -test('ToString', function (t) { - t['throws'](function () { return ES.ToString(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.end(); -}); - -test('ToObject', function (t) { - t['throws'](function () { return ES.ToObject(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.ToObject(null); }, TypeError, 'null throws'); - forEach(v.numbers, function (number) { - var obj = ES.ToObject(number); - t.equal(typeof obj, 'object', 'number ' + number + ' coerces to object'); - t.equal(true, obj instanceof Number, 'object of ' + number + ' is Number object'); - t.ok(is(obj.valueOf(), number), 'object of ' + number + ' coerces to ' + number); - }); - t.end(); -}); - -test('CheckObjectCoercible', function (t) { - t['throws'](function () { return ES.CheckObjectCoercible(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.CheckObjectCoercible(null); }, TypeError, 'null throws'); - var checkCoercible = function (value) { - t.doesNotThrow(function () { return ES.CheckObjectCoercible(value); }, debug(value) + ' does not throw'); - }; - forEach(v.objects.concat(v.nonNullPrimitives), checkCoercible); - t.end(); -}); - -test('IsCallable', function (t) { - t.equal(true, ES.IsCallable(function () {}), 'function is callable'); - var nonCallables = [/a/g, {}, Object.prototype, NaN].concat(v.primitives); - forEach(nonCallables, function (nonCallable) { - t.equal(false, ES.IsCallable(nonCallable), debug(nonCallable) + ' is not callable'); - }); - t.end(); -}); - -test('SameValue', function (t) { - t.equal(true, ES.SameValue(NaN, NaN), 'NaN is SameValue as NaN'); - t.equal(false, ES.SameValue(0, -0), '+0 is not SameValue as -0'); - forEach(v.objects.concat(v.primitives), function (val) { - t.equal(val === val, ES.SameValue(val, val), debug(val) + ' is SameValue to itself'); - }); - t.end(); -}); - -test('Type', function (t) { - t.equal(ES.Type(), 'Undefined', 'Type() is Undefined'); - t.equal(ES.Type(undefined), 'Undefined', 'Type(undefined) is Undefined'); - t.equal(ES.Type(null), 'Null', 'Type(null) is Null'); - t.equal(ES.Type(true), 'Boolean', 'Type(true) is Boolean'); - t.equal(ES.Type(false), 'Boolean', 'Type(false) is Boolean'); - t.equal(ES.Type(0), 'Number', 'Type(0) is Number'); - t.equal(ES.Type(NaN), 'Number', 'Type(NaN) is Number'); - t.equal(ES.Type('abc'), 'String', 'Type("abc") is String'); - t.equal(ES.Type(function () {}), 'Object', 'Type(function () {}) is Object'); - t.equal(ES.Type({}), 'Object', 'Type({}) is Object'); - t.end(); -}); - -test('IsPropertyDescriptor', function (t) { - forEach(v.primitives, function (primitive) { - t.equal(ES.IsPropertyDescriptor(primitive), false, debug(primitive) + ' is not a Property Descriptor'); - }); - - t.equal(ES.IsPropertyDescriptor({ invalid: true }), false, 'invalid keys not allowed on a Property Descriptor'); - - t.equal(ES.IsPropertyDescriptor({}), true, 'empty object is an incomplete Property Descriptor'); - - t.equal(ES.IsPropertyDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.dataDescriptor()), true, 'data descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.genericDescriptor()), true, 'generic descriptor is a Property Descriptor'); - - t['throws']( - function () { ES.IsPropertyDescriptor(v.bothDescriptor()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t['throws']( - function () { ES.IsPropertyDescriptor(v.bothDescriptorWritable()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t.end(); -}); - -test('IsAccessorDescriptor', function (t) { - forEach(v.nonNullPrimitives.concat(null), function (primitive) { - t['throws'](function () { ES.IsAccessorDescriptor(primitive); }, TypeError, debug(primitive) + ' is not a Property Descriptor'); - }); - - t.equal(ES.IsAccessorDescriptor(), false, 'no value is not an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(undefined), false, 'undefined value is not an Accessor Descriptor'); - - t.equal(ES.IsAccessorDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.dataDescriptor()), false, 'data descriptor is not an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.genericDescriptor()), false, 'generic descriptor is not an Accessor Descriptor'); - - t.end(); -}); - -test('IsDataDescriptor', function (t) { - forEach(v.nonNullPrimitives.concat(null), function (primitive) { - t['throws'](function () { ES.IsDataDescriptor(primitive); }, TypeError, debug(primitive) + ' is not a Property Descriptor'); - }); - - t.equal(ES.IsDataDescriptor(), false, 'no value is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(undefined), false, 'undefined value is not a Data Descriptor'); - - t.equal(ES.IsDataDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.dataDescriptor()), true, 'data descriptor is a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.genericDescriptor()), false, 'generic descriptor is not a Data Descriptor'); - - t.end(); -}); - -test('IsGenericDescriptor', function (t) { - forEach(v.nonNullPrimitives.concat(null), function (primitive) { - t['throws']( - function () { ES.IsGenericDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsGenericDescriptor(), false, 'no value is not a Data Descriptor'); - t.equal(ES.IsGenericDescriptor(undefined), false, 'undefined value is not a Data Descriptor'); - - t.equal(ES.IsGenericDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a generic Descriptor'); - t.equal(ES.IsGenericDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a generic Descriptor'); - t.equal(ES.IsGenericDescriptor(v.dataDescriptor()), false, 'data descriptor is not a generic Descriptor'); - - t.equal(ES.IsGenericDescriptor(v.genericDescriptor()), true, 'generic descriptor is a generic Descriptor'); - - t.end(); -}); - -test('FromPropertyDescriptor', function (t) { - t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined'); - t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined'); - - forEach(v.nonNullPrimitives.concat(null), function (primitive) { - t['throws']( - function () { ES.FromPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(accessor), { - get: accessor['[[Get]]'], - set: accessor['[[Set]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(mutator), { - get: mutator['[[Get]]'], - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }); - var data = v.dataDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(data), { - value: data['[[Value]]'], - writable: data['[[Writable]]'], - enumerable: !!data['[[Enumerable]]'], - configurable: !!data['[[Configurable]]'] - }); - - t['throws']( - function () { ES.FromPropertyDescriptor(v.genericDescriptor()); }, - TypeError, - 'a complete Property Descriptor is required' - ); - - t.end(); -}); - -test('ToPropertyDescriptor', function (t) { - forEach(v.nonNullPrimitives.concat(null), function (primitive) { - t['throws']( - function () { ES.ToPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - get: accessor['[[Get]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }), accessor); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }), mutator); - - var data = v.descriptors.nonConfigurable(v.dataDescriptor()); - t.deepEqual(ES.ToPropertyDescriptor({ - value: data['[[Value]]'], - writable: data['[[Writable]]'], - configurable: !!data['[[Configurable]]'] - }), data); - - var both = v.bothDescriptor(); - t['throws']( - function () { - ES.ToPropertyDescriptor({ get: both['[[Get]]'], value: both['[[Value]]'] }); - }, - TypeError, - 'data and accessor descriptors are mutually exclusive' - ); - - t['throws']( - function () { ES.ToPropertyDescriptor({ get: 'not callable' }); }, - TypeError, - '"get" must be undefined or callable' - ); - - t['throws']( - function () { ES.ToPropertyDescriptor({ set: 'not callable' }); }, - TypeError, - '"set" must be undefined or callable' - ); - - t.end(); -}); - -test('Abstract Equality Comparison', function (t) { - t.test('same types use ===', function (st) { - forEach(v.primitives.concat(v.objects), function (value) { - st.equal(ES['Abstract Equality Comparison'](value, value), value === value, debug(value) + ' is abstractly equal to itself'); - }); - st.end(); - }); - - t.test('different types coerce', function (st) { - var pairs = [ - [null, undefined], - [3, '3'], - [true, '3'], - [true, 3], - [false, 0], - [false, '0'], - [3, [3]], - ['3', [3]], - [true, [1]], - [false, [0]], - [String(v.coercibleObject), v.coercibleObject], - [Number(String(v.coercibleObject)), v.coercibleObject], - [Number(v.coercibleObject), v.coercibleObject], - [String(Number(v.coercibleObject)), v.coercibleObject] - ]; - forEach(pairs, function (pair) { - var a = pair[0]; - var b = pair[1]; - // eslint-disable-next-line eqeqeq - st.equal(ES['Abstract Equality Comparison'](a, b), a == b, debug(a) + ' == ' + debug(b)); - // eslint-disable-next-line eqeqeq - st.equal(ES['Abstract Equality Comparison'](b, a), b == a, debug(b) + ' == ' + debug(a)); - }); - st.end(); - }); - - t.end(); -}); - -test('Strict Equality Comparison', function (t) { - t.test('same types use ===', function (st) { - forEach(v.primitives.concat(v.objects), function (value) { - st.equal(ES['Strict Equality Comparison'](value, value), value === value, debug(value) + ' is strictly equal to itself'); - }); - st.end(); - }); - - t.test('different types are not ===', function (st) { - var pairs = [ - [null, undefined], - [3, '3'], - [true, '3'], - [true, 3], - [false, 0], - [false, '0'], - [3, [3]], - ['3', [3]], - [true, [1]], - [false, [0]], - [String(v.coercibleObject), v.coercibleObject], - [Number(String(v.coercibleObject)), v.coercibleObject], - [Number(v.coercibleObject), v.coercibleObject], - [String(Number(v.coercibleObject)), v.coercibleObject] - ]; - forEach(pairs, function (pair) { - var a = pair[0]; - var b = pair[1]; - st.equal(ES['Strict Equality Comparison'](a, b), a === b, debug(a) + ' === ' + debug(b)); - st.equal(ES['Strict Equality Comparison'](b, a), b === a, debug(b) + ' === ' + debug(a)); - }); - st.end(); - }); - - t.end(); -}); - -test('Abstract Relational Comparison', function (t) { - t.test('at least one operand is NaN', function (st) { - st.equal(ES['Abstract Relational Comparison'](NaN, {}, true), undefined, 'LeftFirst: first is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison']({}, NaN, true), undefined, 'LeftFirst: second is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison'](NaN, {}, false), undefined, '!LeftFirst: first is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison']({}, NaN, false), undefined, '!LeftFirst: second is NaN, returns undefined'); - st.end(); - }); - - t.equal(ES['Abstract Relational Comparison'](3, 4, true), true, 'LeftFirst: 3 is less than 4'); - t.equal(ES['Abstract Relational Comparison'](4, 3, true), false, 'LeftFirst: 3 is not less than 4'); - t.equal(ES['Abstract Relational Comparison'](3, 4, false), true, '!LeftFirst: 3 is less than 4'); - t.equal(ES['Abstract Relational Comparison'](4, 3, false), false, '!LeftFirst: 3 is not less than 4'); - - t.equal(ES['Abstract Relational Comparison']('3', '4', true), true, 'LeftFirst: "3" is less than "4"'); - t.equal(ES['Abstract Relational Comparison']('4', '3', true), false, 'LeftFirst: "3" is not less than "4"'); - t.equal(ES['Abstract Relational Comparison']('3', '4', false), true, '!LeftFirst: "3" is less than "4"'); - t.equal(ES['Abstract Relational Comparison']('4', '3', false), false, '!LeftFirst: "3" is not less than "4"'); - - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, true), true, 'LeftFirst: coercible object is less than 42'); - t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, true), false, 'LeftFirst: 42 is not less than coercible object'); - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, false), true, '!LeftFirst: coercible object is less than 42'); - t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, false), false, '!LeftFirst: 42 is not less than coercible object'); - - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', true), false, 'LeftFirst: coercible object is not less than "3"'); - t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, true), false, 'LeftFirst: "3" is not less than coercible object'); - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', false), false, '!LeftFirst: coercible object is not less than "3"'); - t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, false), false, '!LeftFirst: "3" is not less than coercible object'); - - t.end(); -}); - -test('FromPropertyDescriptor', function (t) { - t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined'); - t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined'); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.FromPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(accessor), { - get: accessor['[[Get]]'], - set: accessor['[[Set]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(mutator), { - get: mutator['[[Get]]'], - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }); - var data = v.dataDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(data), { - value: data['[[Value]]'], - writable: data['[[Writable]]'], - enumerable: !!data['[[Enumerable]]'], - configurable: !!data['[[Configurable]]'] - }); - - t['throws']( - function () { ES.FromPropertyDescriptor(v.genericDescriptor()); }, - TypeError, - 'a complete Property Descriptor is required' - ); - - t.end(); -}); - -test('SecFromTime', function (t) { - var now = new Date(); - t.equal(ES.SecFromTime(now.getTime()), now.getUTCSeconds(), 'second from Date timestamp matches getUTCSeconds'); - t.end(); -}); - -test('MinFromTime', function (t) { - var now = new Date(); - t.equal(ES.MinFromTime(now.getTime()), now.getUTCMinutes(), 'minute from Date timestamp matches getUTCMinutes'); - t.end(); -}); - -test('HourFromTime', function (t) { - var now = new Date(); - t.equal(ES.HourFromTime(now.getTime()), now.getUTCHours(), 'hour from Date timestamp matches getUTCHours'); - t.end(); -}); - -test('msFromTime', function (t) { - var now = new Date(); - t.equal(ES.msFromTime(now.getTime()), now.getUTCMilliseconds(), 'ms from Date timestamp matches getUTCMilliseconds'); - t.end(); -}); - -var msPerSecond = 1e3; -var msPerMinute = 60 * msPerSecond; -var msPerHour = 60 * msPerMinute; -var msPerDay = 24 * msPerHour; - -test('Day', function (t) { - var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5); - var add = 2.5; - var later = new Date(time + (add * msPerDay)); - - t.equal(ES.Day(later.getTime()), ES.Day(time) + Math.floor(add), 'adding 2.5 days worth of ms, gives a Day delta of 2'); - t.end(); -}); - -test('TimeWithinDay', function (t) { - var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5); - var add = 2.5; - var later = new Date(time + (add * msPerDay)); - - t.equal(ES.TimeWithinDay(later.getTime()), ES.TimeWithinDay(time) + (0.5 * msPerDay), 'adding 2.5 days worth of ms, gives a TimeWithinDay delta of +0.5'); - t.end(); -}); - -test('DayFromYear', function (t) { - t.equal(ES.DayFromYear(2021) - ES.DayFromYear(2020), 366, '2021 is a leap year, has 366 days'); - t.equal(ES.DayFromYear(2020) - ES.DayFromYear(2019), 365, '2020 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2019) - ES.DayFromYear(2018), 365, '2019 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2018) - ES.DayFromYear(2017), 365, '2018 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2017) - ES.DayFromYear(2016), 366, '2017 is a leap year, has 366 days'); - - t.end(); -}); - -test('TimeFromYear', function (t) { - for (var i = 1900; i < 2100; i += 1) { - t.equal(ES.TimeFromYear(i), Date.UTC(i, 0, 1), 'TimeFromYear matches a Date object’s year: ' + i); - } - t.end(); -}); - -test('YearFromTime', function (t) { - for (var i = 1900; i < 2100; i += 1) { - t.equal(ES.YearFromTime(Date.UTC(i, 0, 1)), i, 'YearFromTime matches a Date object’s year on 1/1: ' + i); - t.equal(ES.YearFromTime(Date.UTC(i, 10, 1)), i, 'YearFromTime matches a Date object’s year on 10/1: ' + i); - } - t.end(); -}); - -test('WeekDay', function (t) { - var now = new Date(); - var today = now.getUTCDay(); - for (var i = 0; i < 7; i += 1) { - var weekDay = ES.WeekDay(now.getTime() + (i * msPerDay)); - t.equal(weekDay, (today + i) % 7, i + ' days after today (' + today + '), WeekDay is ' + weekDay); - } - t.end(); -}); - -test('DaysInYear', function (t) { - t.equal(ES.DaysInYear(2021), 365, '2021 is not a leap year'); - t.equal(ES.DaysInYear(2020), 366, '2020 is a leap year'); - t.equal(ES.DaysInYear(2019), 365, '2019 is not a leap year'); - t.equal(ES.DaysInYear(2018), 365, '2018 is not a leap year'); - t.equal(ES.DaysInYear(2017), 365, '2017 is not a leap year'); - t.equal(ES.DaysInYear(2016), 366, '2016 is a leap year'); - - t.end(); -}); - -test('InLeapYear', function (t) { - t.equal(ES.InLeapYear(Date.UTC(2021, 0, 1)), 0, '2021 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2020, 0, 1)), 1, '2020 is a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2019, 0, 1)), 0, '2019 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2018, 0, 1)), 0, '2018 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2017, 0, 1)), 0, '2017 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2016, 0, 1)), 1, '2016 is a leap year'); - - t.end(); -}); - -test('DayWithinYear', function (t) { - t.equal(ES.DayWithinYear(Date.UTC(2019, 0, 1)), 0, '1/1 is the 1st day'); - t.equal(ES.DayWithinYear(Date.UTC(2019, 11, 31)), 364, '12/31 is the 365th day in a non leap year'); - t.equal(ES.DayWithinYear(Date.UTC(2016, 11, 31)), 365, '12/31 is the 366th day in a leap year'); - - t.end(); -}); - -test('MonthFromTime', function (t) { - t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 1)), 0, 'non-leap: 1/1 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 31)), 0, 'non-leap: 1/31 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 1)), 1, 'non-leap: 2/1 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 28)), 1, 'non-leap: 2/28 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 29)), 2, 'non-leap: 2/29 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 1)), 2, 'non-leap: 3/1 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 31)), 2, 'non-leap: 3/31 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 1)), 3, 'non-leap: 4/1 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 30)), 3, 'non-leap: 4/30 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 1)), 4, 'non-leap: 5/1 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 31)), 4, 'non-leap: 5/31 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 1)), 5, 'non-leap: 6/1 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 30)), 5, 'non-leap: 6/30 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 1)), 6, 'non-leap: 7/1 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 31)), 6, 'non-leap: 7/31 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 1)), 7, 'non-leap: 8/1 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 30)), 7, 'non-leap: 8/30 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 1)), 8, 'non-leap: 9/1 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 30)), 8, 'non-leap: 9/30 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 1)), 9, 'non-leap: 10/1 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 31)), 9, 'non-leap: 10/31 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 1)), 10, 'non-leap: 11/1 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 30)), 10, 'non-leap: 11/30 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 1)), 11, 'non-leap: 12/1 gives December'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 31)), 11, 'non-leap: 12/31 gives December'); - - t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 1)), 0, 'leap: 1/1 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 31)), 0, 'leap: 1/31 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 1)), 1, 'leap: 2/1 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 28)), 1, 'leap: 2/28 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 29)), 1, 'leap: 2/29 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 1)), 2, 'leap: 3/1 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 31)), 2, 'leap: 3/31 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 1)), 3, 'leap: 4/1 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 30)), 3, 'leap: 4/30 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 1)), 4, 'leap: 5/1 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 31)), 4, 'leap: 5/31 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 1)), 5, 'leap: 6/1 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 30)), 5, 'leap: 6/30 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 1)), 6, 'leap: 7/1 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 31)), 6, 'leap: 7/31 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 1)), 7, 'leap: 8/1 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 30)), 7, 'leap: 8/30 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 1)), 8, 'leap: 9/1 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 30)), 8, 'leap: 9/30 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 1)), 9, 'leap: 10/1 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 31)), 9, 'leap: 10/31 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 1)), 10, 'leap: 11/1 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 30)), 10, 'leap: 11/30 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 1)), 11, 'leap: 12/1 gives December'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 31)), 11, 'leap: 12/31 gives December'); - t.end(); -}); - -test('DateFromTime', function (t) { - var i; - for (i = 1; i <= 28; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 1, i)), i, '2019.02.' + i + ' is date ' + i); - } - for (i = 1; i <= 29; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2016, 1, i)), i, '2016.02.' + i + ' is date ' + i); - } - for (i = 1; i <= 30; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 8, i)), i, '2019.09.' + i + ' is date ' + i); - } - for (i = 1; i <= 31; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 9, i)), i, '2019.10.' + i + ' is date ' + i); - } - t.end(); -}); - -test('MakeDay', function (t) { - var day2015 = 16687; - t.equal(ES.MakeDay(2015, 8, 9), day2015, '2015.09.09 is day 16687'); - var day2016 = day2015 + 366; // 2016 is a leap year - t.equal(ES.MakeDay(2016, 8, 9), day2016, '2015.09.09 is day 17053'); - var day2017 = day2016 + 365; - t.equal(ES.MakeDay(2017, 8, 9), day2017, '2017.09.09 is day 17418'); - var day2018 = day2017 + 365; - t.equal(ES.MakeDay(2018, 8, 9), day2018, '2018.09.09 is day 17783'); - var day2019 = day2018 + 365; - t.equal(ES.MakeDay(2019, 8, 9), day2019, '2019.09.09 is day 18148'); - t.end(); -}); - -test('MakeDate', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.ok(is(ES.MakeDate(nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `day`'); - t.ok(is(ES.MakeDate(0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`'); - }); - t.equal(ES.MakeDate(0, 0), 0, 'zero day and zero time is zero date'); - t.equal(ES.MakeDate(0, 123), 123, 'zero day and nonzero time is a date of the "time"'); - t.equal(ES.MakeDate(1, 0), msPerDay, 'day of 1 and zero time is a date of "ms per day"'); - t.equal(ES.MakeDate(3, 0), 3 * msPerDay, 'day of 3 and zero time is a date of thrice "ms per day"'); - t.equal(ES.MakeDate(1, 123), msPerDay + 123, 'day of 1 and nonzero time is a date of "ms per day" plus the "time"'); - t.equal(ES.MakeDate(3, 123), (3 * msPerDay) + 123, 'day of 3 and nonzero time is a date of thrice "ms per day" plus the "time"'); - - t.end(); -}); - -test('MakeTime', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.ok(is(ES.MakeTime(nonFiniteNumber, 0, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `hour`'); - t.ok(is(ES.MakeTime(0, nonFiniteNumber, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `min`'); - t.ok(is(ES.MakeTime(0, 0, nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `sec`'); - t.ok(is(ES.MakeTime(0, 0, 0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `ms`'); - }); - - t.equal( - ES.MakeTime(1.2, 2.3, 3.4, 4.5), - (1 * msPerHour) + (2 * msPerMinute) + (3 * msPerSecond) + 4, - 'all numbers are converted to integer, multiplied by the right number of ms, and summed' - ); - t.end(); -}); - -test('TimeClip', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.ok(is(ES.TimeClip(nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`'); - }); - t.ok(is(ES.TimeClip(8.64e15 + 1), NaN), '8.64e15 is the largest magnitude considered "finite"'); - t.ok(is(ES.TimeClip(-8.64e15 - 1), NaN), '-8.64e15 is the largest magnitude considered "finite"'); - - forEach(v.zeroes.concat([-10, 10, +new Date()]), function (time) { - t.looseEqual(ES.TimeClip(time), time, debug(time) + ' is a time of ' + debug(time)); - }); - - t.end(); -}); - -test('modulo', function (t) { - t.equal(3 % 2, 1, '+3 % 2 is +1'); - t.equal(ES.modulo(3, 2), 1, '+3 mod 2 is +1'); - - t.equal(-3 % 2, -1, '-3 % 2 is -1'); - t.equal(ES.modulo(-3, 2), 1, '-3 mod 2 is +1'); - t.end(); -}); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es6.js b/node_modules/object.assign/node_modules/es-abstract/test/es6.js deleted file mode 100644 index e7c9d98a24..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es6.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var ES = require('../'); -var ES6 = ES.ES6; -var ES2015 = ES.ES2015; -var ES6entry = require('../es6'); - -test('legacy es6 export', function (t) { - t.equal(ES6, ES2015, 'main ES6 === main ES2015'); - t.end(); -}); - -test('legacy es6 entry point', function (t) { - t.equal(ES6, ES6entry, 'main ES6 === ES6 entry point'); - t.end(); -}); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/es7.js b/node_modules/object.assign/node_modules/es-abstract/test/es7.js deleted file mode 100644 index ee57e153b0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/es7.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var ES = require('../'); -var ES7 = ES.ES7; -var ES2016 = ES.ES2016; -var ES7entry = require('../es7'); - -test('legacy es7 export', function (t) { - t.equal(ES7, ES2016, 'main ES7 === main ES2016'); - t.end(); -}); - -test('legacy es7 entry point', function (t) { - t.equal(ES7, ES7entry, 'main ES7 === ES7 entry point'); - t.end(); -}); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js deleted file mode 100644 index 9c2b4fc44d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var test = require('tape'); -var hasSymbols = require('has-symbols')(); - -var OwnPropertyKeys = require('../../helpers/OwnPropertyKeys'); -var defineProperty = require('./defineProperty'); - -test('OwnPropertyKeys', function (t) { - t.deepEqual(OwnPropertyKeys({ a: 1, b: 2 }).sort(), ['a', 'b'].sort(), 'returns own string keys'); - - t.test('Symbols', { skip: !hasSymbols }, function (st) { - var o = { a: 1 }; - var sym = Symbol(); - o[sym] = 2; - - st.deepEqual(OwnPropertyKeys(o), ['a', sym], 'returns own string and symbol keys'); - - st.end(); - }); - - t.test('non-enumerables', { skip: !defineProperty.oDP }, function (st) { - var o = { a: 1, b: 42, c: NaN }; - defineProperty(o, 'b', { enumerable: false, value: 42 }); - defineProperty(o, 'c', { enumerable: false, get: function () { return NaN; } }); - - if (hasSymbols) { - defineProperty(o, 'd', { enumerable: false, value: true }); - defineProperty(o, 'e', { enumerable: false, get: function () { return true; } }); - } - - st.deepEqual( - OwnPropertyKeys(o).sort(), - (hasSymbols ? ['a', 'b', 'c', 'd', 'e'] : ['a', 'b', 'c']).sort(), - 'returns non-enumerable own keys, including accessors and symbols if available' - ); - - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/assertRecord.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/assertRecord.js deleted file mode 100644 index d6a80c2bf0..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/assertRecord.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -var forEach = require('foreach'); -var debug = require('object-inspect'); - -var assertRecord = require('../../helpers/assertRecord'); -var v = require('./values'); - -module.exports = function assertRecordTests(ES, test) { - test('Property Descriptor', function (t) { - var record = 'Property Descriptor'; - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { assertRecord(ES.Type, record, 'arg', primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t['throws']( - function () { assertRecord(ES.Type, record, 'arg', { invalid: true }); }, - TypeError, - 'invalid keys not allowed on a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', {}); }, - 'empty object is an incomplete Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.accessorDescriptor()); }, - 'accessor descriptor is a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.mutatorDescriptor()); }, - 'mutator descriptor is a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.dataDescriptor()); }, - 'data descriptor is a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.genericDescriptor()); }, - 'generic descriptor is a Property Descriptor' - ); - - t['throws']( - function () { assertRecord(ES.Type, record, 'arg', v.bothDescriptor()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t.end(); - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/createBoundESNamespace.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/createBoundESNamespace.js deleted file mode 100644 index 880ba3d518..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/createBoundESNamespace.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); - -var OwnPropertyKeys = require('../../helpers/OwnPropertyKeys'); - -module.exports = function createBoundESNamespace(ES) { - var keys = OwnPropertyKeys(ES); - var result = {}; - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var prop = ES[key]; - if (typeof prop === 'function') { - prop = bind.call(prop, undefined); - } - result[key] = prop; - } - - return result; -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/defineProperty.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/defineProperty.js deleted file mode 100644 index 8f925bea83..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/defineProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var oDP = Object.defineProperty; -try { - oDP({}, 'a', { value: 1 }); -} catch (e) { - // IE 8 - oDP = null; -} - -module.exports = function defineProperty(O, P, Desc) { - if (oDP) { - return oDP(O, P, Desc); - } - if ((Desc.enumerable && Desc.configurable && Desc.writable) || !(P in O)) { - O[P] = Desc.value; // eslint-disable-line no-param-reassign - return O; - } - - throw new SyntaxError('helper does not yet support this configuration'); -}; -module.exports.oDP = oDP; diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/getSymbolDescription.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/getSymbolDescription.js deleted file mode 100644 index fbe7a7b29a..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/getSymbolDescription.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -var test = require('tape'); -var debug = require('object-inspect'); -var forEach = require('foreach'); -var has = require('has'); - -var v = require('./values'); -var getSymbolDescription = require('../../helpers/getSymbolDescription'); -var getInferredName = require('../../helpers/getInferredName'); - -test('getSymbolDescription', function (t) { - t.test('no symbols', { skip: v.hasSymbols }, function (st) { - st['throws']( - getSymbolDescription, - SyntaxError, - 'requires Symbol support' - ); - - st.end(); - }); - - forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) { - t['throws']( - function () { getSymbolDescription(nonSymbol); }, - v.hasSymbols ? TypeError : SyntaxError, - debug(nonSymbol) + ' is not a Symbol' - ); - }); - - t.test('with symbols', { skip: !v.hasSymbols }, function (st) { - forEach( - [ - [Symbol(), undefined], - [Symbol(undefined), undefined], - [Symbol(null), 'null'], - [Symbol.iterator, 'Symbol.iterator'], - [Symbol('foo'), 'foo'] - ], - function (pair) { - var sym = pair[0]; - var desc = pair[1]; - st.equal(getSymbolDescription(sym), desc, debug(sym) + ' description is ' + debug(desc)); - } - ); - - st.test('only possible when inference or native `Symbol.prototype.description` is supported', { - skip: !getInferredName && !has(Symbol.prototype, 'description') - }, function (s2t) { - s2t.equal(getSymbolDescription(Symbol('')), '', 'Symbol("") description is ""'); - - s2t.end(); - }); - - st.test('only possible when global symbols are supported', { - skip: !has(Symbol, 'for') || !has(Symbol, 'keyFor') - }, function (s2t) { - // eslint-disable-next-line no-restricted-properties - s2t.equal(getSymbolDescription(Symbol['for']('')), '', 'Symbol.for("") description is ""'); - s2t.end(); - }); - - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/runManifestTest.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/runManifestTest.js deleted file mode 100644 index 2fdb4f216d..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/runManifestTest.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var path = require('path'); -var fs = require('fs'); - -var forEach = require('foreach'); -var keys = require('object-keys'); - -module.exports = function runManifestTest(test, ES, edition) { - test('ES' + edition + ' manifest', { skip: !fs.readdirSync }, function (t) { - var files = fs.readdirSync(path.join(__dirname, '../../' + edition), 'utf-8'); - var map = { - AbstractEqualityComparison: 'Abstract Equality Comparison', - AbstractRelationalComparison: 'Abstract Relational Comparison', - StrictEqualityComparison: 'Strict Equality Comparison' - }; - forEach(files, function (file) { - var name = path.basename(file, path.extname(file)); - var actual = ES[map[name] || name]; - var expected = require(path.join(__dirname, '../../' + edition + '/', file)); // eslint-disable-line global-require - t.equal(actual, expected, 'ES["' + name + '"] === ' + file); - }); - var actualCount = keys(ES).length; - t.equal(actualCount, files.length, 'expected ' + files.length + ' files, got ' + actualCount); - t.end(); - }); -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/test/helpers/values.js b/node_modules/object.assign/node_modules/es-abstract/test/helpers/values.js deleted file mode 100644 index f955873e9c..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/helpers/values.js +++ /dev/null @@ -1,127 +0,0 @@ -'use strict'; - -var assign = require('../../helpers/assign'); - -var hasSymbols = require('has-symbols')(); -var hasBigInts = require('has-bigints')(); - -var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } }; -var coercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return 42; } -}; -var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } }; -var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } }; -var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } }; -var uncoercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return function toStrFn() {}; } -}; -var objects = [{}, coercibleObject, coercibleFnObject, toStringOnlyObject, valueOfOnlyObject]; -var nullPrimitives = [undefined, null]; -var nonIntegerNumbers = [-1.3, 0.2, 1.8, 1 / 3]; -var integerNumbers = [1, 7, 42, 1e17]; -var zeroes = [0, -0]; -var infinities = [Infinity, -Infinity]; -var numbers = zeroes.concat([42], infinities, nonIntegerNumbers); -var strings = ['', 'foo', 'a\uD83D\uDCA9c']; -var booleans = [true, false]; -var symbols = hasSymbols ? [Symbol.iterator, Symbol('foo')] : []; -var bigints = hasBigInts ? [BigInt(42), BigInt(0)] : []; -var nonSymbolPrimitives = [].concat(nullPrimitives, booleans, strings, numbers, bigints); -var nonNumberPrimitives = [].concat(nullPrimitives, booleans, strings, symbols); -var nonNullPrimitives = [].concat(booleans, strings, numbers, symbols, bigints); -var nonUndefinedPrimitives = [].concat(null, nonNullPrimitives); -var nonStrings = [].concat(nullPrimitives, booleans, numbers, symbols, objects, bigints); -var primitives = [].concat(nullPrimitives, nonNullPrimitives); -var nonPropertyKeys = [].concat(nullPrimitives, booleans, numbers, objects); -var propertyKeys = [].concat(strings, symbols); -var nonBooleans = [].concat(nullPrimitives, strings, symbols, numbers, objects); -var falsies = [].concat(nullPrimitives, false, '', 0, -0, NaN); -var truthies = [].concat(true, 'foo', 42, symbols, objects); -var timestamps = [].concat(0, 946713600000, 1546329600000); -var nonFunctions = [].concat(primitives, objects, [42]); -var nonArrays = [].concat(nonFunctions); -var nonBigInts = [].concat(nonNumberPrimitives, numbers); - -var descriptors = { - configurable: function (descriptor) { - return assign(assign({}, descriptor), { '[[Configurable]]': true }); - }, - nonConfigurable: function (descriptor) { - return assign(assign({}, descriptor), { '[[Configurable]]': false }); - }, - enumerable: function (descriptor) { - return assign(assign({}, descriptor), { '[[Enumerable]]': true }); - }, - nonEnumerable: function (descriptor) { - return assign(assign({}, descriptor), { '[[Enumerable]]': false }); - }, - writable: function (descriptor) { - return assign(assign({}, descriptor), { '[[Writable]]': true }); - }, - nonWritable: function (descriptor) { - return assign(assign({}, descriptor), { '[[Writable]]': false }); - } -}; - -module.exports = { - booleans: booleans, - coercibleFnObject: coercibleFnObject, - coercibleObject: coercibleObject, - falsies: falsies, - hasSymbols: hasSymbols, - infinities: infinities, - integerNumbers: integerNumbers, - nonArrays: nonArrays, - nonBigInts: nonBigInts, - nonBooleans: nonBooleans, - nonFunctions: nonFunctions, - nonIntegerNumbers: nonIntegerNumbers, - nonNullPrimitives: nonNullPrimitives, - nonNumberPrimitives: nonNumberPrimitives, - nonNumbers: nonNumberPrimitives.concat(objects), - nonPropertyKeys: nonPropertyKeys, - nonStrings: nonStrings, - nonSymbolPrimitives: nonSymbolPrimitives, - nonUndefinedPrimitives: nonUndefinedPrimitives, - nullPrimitives: nullPrimitives, - numbers: numbers, - objects: objects, - primitives: primitives, - propertyKeys: propertyKeys, - strings: strings, - symbols: symbols, - timestamps: timestamps, - toStringOnlyObject: toStringOnlyObject, - truthies: truthies, - uncoercibleFnObject: uncoercibleFnObject, - uncoercibleObject: uncoercibleObject, - valueOfOnlyObject: valueOfOnlyObject, - zeroes: zeroes, - bothDescriptor: function () { - return { '[[Get]]': function () {}, '[[Value]]': true }; - }, - bothDescriptorWritable: function () { - return descriptors.writable({ '[[Get]]': function () {} }); - }, - accessorDescriptor: function (value) { - return descriptors.enumerable(descriptors.configurable({ - '[[Get]]': function get() { return value; } - })); - }, - mutatorDescriptor: function () { - return descriptors.enumerable(descriptors.configurable({ - '[[Set]]': function () {} - })); - }, - dataDescriptor: function (value) { - return descriptors.nonWritable({ - '[[Value]]': arguments.length > 0 ? value : 42 - }); - }, - genericDescriptor: function () { - return descriptors.configurable(descriptors.nonEnumerable()); - }, - descriptors: descriptors -}; diff --git a/node_modules/object.assign/node_modules/es-abstract/test/index.js b/node_modules/object.assign/node_modules/es-abstract/test/index.js deleted file mode 100644 index 85a73f0dca..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/index.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var ES = require('../'); -var test = require('tape'); -var keys = require('object-keys'); -var forEach = require('foreach'); - -var ESkeys = keys(ES).sort(); -var ES6keys = keys(ES.ES6).sort(); - -test('exposed properties', function (t) { - t.deepEqual(ESkeys, ES6keys.concat(['ES2020', 'ES2019', 'ES2018', 'ES2017', 'ES7', 'ES2016', 'ES6', 'ES2015', 'ES5']).sort(), 'main ES object keys match ES6 keys'); - t.end(); -}); - -test('methods match', function (t) { - forEach(ES6keys, function (key) { - t.equal(ES.ES6[key], ES[key], 'method ' + key + ' on main ES object is ES6 method'); - }); - t.end(); -}); - -require('./GetIntrinsic'); - -require('./helpers/getSymbolDescription'); -require('./helpers/OwnPropertyKeys'); - -require('./es5'); -require('./es6'); -require('./es2015'); -require('./es7'); -require('./es2016'); -require('./es2017'); -require('./es2018'); -require('./es2019'); -require('./es2020'); diff --git a/node_modules/object.assign/node_modules/es-abstract/test/tests.js b/node_modules/object.assign/node_modules/es-abstract/test/tests.js deleted file mode 100644 index e6f2948978..0000000000 --- a/node_modules/object.assign/node_modules/es-abstract/test/tests.js +++ /dev/null @@ -1,4913 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var forEach = require('foreach'); -var is = require('object-is'); -var debug = require('object-inspect'); -var assign = require('object.assign'); -var keys = require('object-keys'); -var has = require('has'); -var arrowFns = require('make-arrow-function').list(); -var hasStrictMode = require('has-strict-mode')(); -var functionsHaveNames = require('functions-have-names')(); -var functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames(); -var hasBigInts = require('has-bigints')(); - -var $getProto = require('../helpers/getProto'); -var $setProto = require('../helpers/setProto'); -var defineProperty = require('./helpers/defineProperty'); -var getInferredName = require('../helpers/getInferredName'); -var getOwnPropertyDescriptor = require('../helpers/getOwnPropertyDescriptor'); -var assertRecordTests = require('./helpers/assertRecord'); -var v = require('./helpers/values'); -var diffOps = require('./diffOps'); - -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1; - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - } - return false; -}()); - -var leadingPoo = '\uD83D'; -var trailingPoo = '\uDCA9'; -var wholePoo = leadingPoo + trailingPoo; - -var getArraySubclassWithSpeciesConstructor = function getArraySubclass(speciesConstructor) { - var Bar = function Bar() { - var inst = []; - Object.setPrototypeOf(inst, Bar.prototype); - defineProperty(inst, 'constructor', { value: Bar }); - return inst; - }; - Bar.prototype = Object.create(Array.prototype); - Object.setPrototypeOf(Bar, Array); - defineProperty(Bar, Symbol.species, { value: speciesConstructor }); - - return Bar; -}; - -var testIterator = function (t, iterator, expected) { - var resultCount = 0; - var result; - while (result = iterator.next(), !result.done) { // eslint-disable-line no-sequences - t.deepEqual(result, { done: false, value: expected[resultCount] }, 'result ' + resultCount); - resultCount += 1; - } - t.equal(resultCount, expected.length, 'expected ' + expected.length + ', got ' + resultCount); -}; - -var hasSpecies = v.hasSymbols && Symbol.species; - -var hasLastIndex = 'lastIndex' in (/a/).exec('a'); // IE 8 -var hasGroups = 'groups' in (/a/).exec('a'); // modern engines -var kludgeMatch = function kludgeMatch(R, matchObject) { - if (hasGroups) { - assign(matchObject, { groups: matchObject.groups }); - } - if (hasLastIndex) { - assign(matchObject, { lastIndex: R.lastIndex }); - } - return matchObject; -}; - -var testEnumerableOwnNames = function (t, enumerableOwnNames) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { enumerableOwnNames(nonObject); }, - debug(nonObject) + ' is not an Object' - ); - }); - - var Child = function Child() { - this.own = {}; - }; - Child.prototype = { - inherited: {} - }; - - var obj = new Child(); - - t.equal('own' in obj, true, 'has "own"'); - t.equal(has(obj, 'own'), true, 'has own "own"'); - t.equal(Object.prototype.propertyIsEnumerable.call(obj, 'own'), true, 'has enumerable "own"'); - - t.equal('inherited' in obj, true, 'has "inherited"'); - t.equal(has(obj, 'inherited'), false, 'has non-own "inherited"'); - t.equal(has(Child.prototype, 'inherited'), true, 'Child.prototype has own "inherited"'); - t.equal(Child.prototype.inherited, obj.inherited, 'Child.prototype.inherited === obj.inherited'); - t.equal(Object.prototype.propertyIsEnumerable.call(Child.prototype, 'inherited'), true, 'has enumerable "inherited"'); - - t.equal('toString' in obj, true, 'has "toString"'); - t.equal(has(obj, 'toString'), false, 'has non-own "toString"'); - t.equal(has(Object.prototype, 'toString'), true, 'Object.prototype has own "toString"'); - t.equal(Object.prototype.toString, obj.toString, 'Object.prototype.toString === obj.toString'); - // eslint-disable-next-line no-useless-call - t.equal(Object.prototype.propertyIsEnumerable.call(Object.prototype, 'toString'), false, 'has non-enumerable "toString"'); - - return obj; -}; - -var testToNumber = function (t, ES, ToNumber) { - t.ok(is(NaN, ToNumber(undefined)), 'undefined coerces to NaN'); - t.ok(is(ToNumber(null), 0), 'null coerces to +0'); - t.ok(is(ToNumber(false), 0), 'false coerces to +0'); - t.equal(1, ToNumber(true), 'true coerces to 1'); - - t.test('numbers', function (st) { - st.ok(is(NaN, ToNumber(NaN)), 'NaN returns itself'); - forEach(v.zeroes.concat(v.infinities, 42), function (num) { - st.equal(num, ToNumber(num), num + ' returns itself'); - }); - forEach(['foo', '0', '4a', '2.0', 'Infinity', '-Infinity'], function (numString) { - st.ok(is(+numString, ToNumber(numString)), '"' + numString + '" coerces to ' + Number(numString)); - }); - st.end(); - }); - - t.test('objects', function (st) { - forEach(v.objects, function (object) { - st.ok(is(ToNumber(object), ToNumber(ES.ToPrimitive(object))), 'object ' + object + ' coerces to same as ToPrimitive of object does'); - }); - st['throws'](function () { return ToNumber(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - st.end(); - }); - - t.test('binary literals', function (st) { - st.equal(ToNumber('0b10'), 2, '0b10 is 2'); - st.equal(ToNumber({ toString: function () { return '0b11'; } }), 3, 'Object that toStrings to 0b11 is 3'); - - st.equal(true, is(ToNumber('0b12'), NaN), '0b12 is NaN'); - st.equal(true, is(ToNumber({ toString: function () { return '0b112'; } }), NaN), 'Object that toStrings to 0b112 is NaN'); - st.end(); - }); - - t.test('octal literals', function (st) { - st.equal(ToNumber('0o10'), 8, '0o10 is 8'); - st.equal(ToNumber({ toString: function () { return '0o11'; } }), 9, 'Object that toStrings to 0o11 is 9'); - - st.equal(true, is(ToNumber('0o18'), NaN), '0o18 is NaN'); - st.equal(true, is(ToNumber({ toString: function () { return '0o118'; } }), NaN), 'Object that toStrings to 0o118 is NaN'); - st.end(); - }); - - t.test('signed hex numbers', function (st) { - st.equal(true, is(ToNumber('-0xF'), NaN), '-0xF is NaN'); - st.equal(true, is(ToNumber(' -0xF '), NaN), 'space-padded -0xF is NaN'); - st.equal(true, is(ToNumber('+0xF'), NaN), '+0xF is NaN'); - st.equal(true, is(ToNumber(' +0xF '), NaN), 'space-padded +0xF is NaN'); - - st.end(); - }); - - t.test('trimming of whitespace and non-whitespace characters', function (st) { - var whitespace = ' \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000'; - st.equal(0, ToNumber(whitespace + 0 + whitespace), 'whitespace is trimmed'); - - // Zero-width space (zws), next line character (nel), and non-character (bom) are not whitespace. - var nonWhitespaces = { - '\\u0085': '\u0085', - '\\u200b': '\u200b', - '\\ufffe': '\ufffe' - }; - - forEach(nonWhitespaces, function (desc, nonWS) { - st.equal(true, is(ToNumber(nonWS + 0 + nonWS), NaN), 'non-whitespace ' + desc + ' not trimmed'); - }); - - st.end(); - }); - - forEach(v.symbols, function (symbol) { - t['throws']( - function () { ToNumber(symbol); }, - TypeError, - 'Symbols can’t be converted to a Number: ' + debug(symbol) - ); - }); - - t.test('dates', function (st) { - var invalid = new Date(NaN); - st.ok(is(ToNumber(invalid), NaN), 'invalid Date coerces to NaN'); - var now = +new Date(); - st.equal(ToNumber(new Date(now)), now, 'Date coerces to timestamp'); - st.end(); - }); -}; - -var es2015 = function ES2015(ES, ops, expectedMissing, skips) { - test('has expected operations', function (t) { - var diff = diffOps(ES, ops, expectedMissing); - - t.deepEqual(diff.extra, [], 'no extra ops'); - - t.deepEqual(diff.missing, [], 'no unexpected missing ops'); - - t.end(); - }); - - test('ToPrimitive', function (t) { - t.test('primitives', function (st) { - var testPrimitive = function (primitive) { - st.ok(is(ES.ToPrimitive(primitive), primitive), debug(primitive) + ' is returned correctly'); - }; - forEach(v.primitives, testPrimitive); - st.end(); - }); - - t.test('objects', function (st) { - st.equal(ES.ToPrimitive(v.coercibleObject), 3, 'coercibleObject with no hint coerces to valueOf'); - st.ok(is(ES.ToPrimitive({}), '[object Object]'), '{} with no hint coerces to Object#toString'); - st.equal(ES.ToPrimitive(v.coercibleObject, Number), 3, 'coercibleObject with hint Number coerces to valueOf'); - st.ok(is(ES.ToPrimitive({}, Number), '[object Object]'), '{} with hint Number coerces to NaN'); - st.equal(ES.ToPrimitive(v.coercibleObject, String), 42, 'coercibleObject with hint String coerces to nonstringified toString'); - st.equal(ES.ToPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString'); - st.equal(ES.ToPrimitive(v.toStringOnlyObject), 7, 'toStringOnlyObject returns non-stringified toString'); - st.equal(ES.ToPrimitive(v.valueOfOnlyObject), 4, 'valueOfOnlyObject returns valueOf'); - st['throws'](function () { return ES.ToPrimitive(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError'); - st.end(); - }); - - t.test('dates', function (st) { - var invalid = new Date(NaN); - st.equal(ES.ToPrimitive(invalid), Date.prototype.toString.call(invalid), 'invalid Date coerces to Date#toString'); - var now = new Date(); - st.equal(ES.ToPrimitive(now), Date.prototype.toString.call(now), 'Date coerces to Date#toString'); - st.end(); - }); - - t.end(); - }); - - test('ToBoolean', function (t) { - t.equal(false, ES.ToBoolean(undefined), 'undefined coerces to false'); - t.equal(false, ES.ToBoolean(null), 'null coerces to false'); - t.equal(false, ES.ToBoolean(false), 'false returns false'); - t.equal(true, ES.ToBoolean(true), 'true returns true'); - - t.test('numbers', function (st) { - forEach(v.zeroes.concat(NaN), function (falsyNumber) { - st.equal(false, ES.ToBoolean(falsyNumber), 'falsy number ' + falsyNumber + ' coerces to false'); - }); - forEach(v.infinities.concat([42, 1]), function (truthyNumber) { - st.equal(true, ES.ToBoolean(truthyNumber), 'truthy number ' + truthyNumber + ' coerces to true'); - }); - - st.end(); - }); - - t.equal(false, ES.ToBoolean(''), 'empty string coerces to false'); - t.equal(true, ES.ToBoolean('foo'), 'nonempty string coerces to true'); - - t.test('objects', function (st) { - forEach(v.objects, function (obj) { - st.equal(true, ES.ToBoolean(obj), 'object coerces to true'); - }); - st.equal(true, ES.ToBoolean(v.uncoercibleObject), 'uncoercibleObject coerces to true'); - - st.end(); - }); - - t.end(); - }); - - test('ToNumber', function (t) { - testToNumber(t, ES, ES.ToNumber); - - t.end(); - }); - - test('ToInteger', function (t) { - t.ok(is(0, ES.ToInteger(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity, 42], function (num) { - t.ok(is(num, ES.ToInteger(num)), num + ' returns itself'); - t.ok(is(-num, ES.ToInteger(-num)), '-' + num + ' returns itself'); - }); - t.equal(3, ES.ToInteger(Math.PI), 'pi returns 3'); - t['throws'](function () { return ES.ToInteger(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.end(); - }); - - test('ToInt32', function (t) { - t.ok(is(0, ES.ToInt32(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToInt32(num)), num + ' returns +0'); - t.ok(is(0, ES.ToInt32(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToInt32(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToInt32(0x100000000 - 1), -1), '2^32 - 1 returns -1'); - t.ok(is(ES.ToInt32(0x80000000), -0x80000000), '2^31 returns -2^31'); - t.ok(is(ES.ToInt32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1'); - forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) { - t.ok(is(ES.ToInt32(num), ES.ToInt32(ES.ToUint32(num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for 0x' + num.toString(16)); - t.ok(is(ES.ToInt32(-num), ES.ToInt32(ES.ToUint32(-num))), 'ToInt32(x) === ToInt32(ToUint32(x)) for -0x' + num.toString(16)); - }); - t.end(); - }); - - test('ToUint32', function (t) { - t.ok(is(0, ES.ToUint32(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToUint32(num)), num + ' returns +0'); - t.ok(is(0, ES.ToUint32(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToUint32(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToUint32(0x100000000 - 1), 0x100000000 - 1), '2^32 - 1 returns 2^32 - 1'); - t.ok(is(ES.ToUint32(0x80000000), 0x80000000), '2^31 returns 2^31'); - t.ok(is(ES.ToUint32(0x80000000 - 1), 0x80000000 - 1), '2^31 - 1 returns 2^31 - 1'); - forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) { - t.ok(is(ES.ToUint32(num), ES.ToUint32(ES.ToInt32(num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for 0x' + num.toString(16)); - t.ok(is(ES.ToUint32(-num), ES.ToUint32(ES.ToInt32(-num))), 'ToUint32(x) === ToUint32(ToInt32(x)) for -0x' + num.toString(16)); - }); - t.end(); - }); - - test('ToInt16', function (t) { - t.ok(is(0, ES.ToInt16(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToInt16(num)), num + ' returns +0'); - t.ok(is(0, ES.ToInt16(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToInt16(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToInt16(0x100000000 - 1), -1), '2^32 - 1 returns -1'); - t.ok(is(ES.ToInt16(0x80000000), 0), '2^31 returns +0'); - t.ok(is(ES.ToInt16(0x80000000 - 1), -1), '2^31 - 1 returns -1'); - t.ok(is(ES.ToInt16(0x10000), 0), '2^16 returns +0'); - t.ok(is(ES.ToInt16(0x10000 - 1), -1), '2^16 - 1 returns -1'); - t.end(); - }); - - test('ToUint16', function (t) { - t.ok(is(0, ES.ToUint16(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToUint16(num)), num + ' returns +0'); - t.ok(is(0, ES.ToUint16(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToUint16(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToUint16(0x100000000 - 1), 0x10000 - 1), '2^32 - 1 returns 2^16 - 1'); - t.ok(is(ES.ToUint16(0x80000000), 0), '2^31 returns +0'); - t.ok(is(ES.ToUint16(0x80000000 - 1), 0x10000 - 1), '2^31 - 1 returns 2^16 - 1'); - t.ok(is(ES.ToUint16(0x10000), 0), '2^16 returns +0'); - t.ok(is(ES.ToUint16(0x10000 - 1), 0x10000 - 1), '2^16 - 1 returns 2^16 - 1'); - t.end(); - }); - - test('ToInt8', function (t) { - t.ok(is(0, ES.ToInt8(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToInt8(num)), num + ' returns +0'); - t.ok(is(0, ES.ToInt8(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt8(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToInt8(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToInt8(0x100000000 - 1), -1), '2^32 - 1 returns -1'); - t.ok(is(ES.ToInt8(0x80000000), 0), '2^31 returns +0'); - t.ok(is(ES.ToInt8(0x80000000 - 1), -1), '2^31 - 1 returns -1'); - t.ok(is(ES.ToInt8(0x10000), 0), '2^16 returns +0'); - t.ok(is(ES.ToInt8(0x10000 - 1), -1), '2^16 - 1 returns -1'); - t.ok(is(ES.ToInt8(0x100), 0), '2^8 returns +0'); - t.ok(is(ES.ToInt8(0x100 - 1), -1), '2^8 - 1 returns -1'); - t.ok(is(ES.ToInt8(0x10), 0x10), '2^4 returns 2^4'); - t.end(); - }); - - test('ToUint8', function (t) { - t.ok(is(0, ES.ToUint8(NaN)), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.ok(is(0, ES.ToUint8(num)), num + ' returns +0'); - t.ok(is(0, ES.ToUint8(-num)), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint8(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.ok(is(ES.ToUint8(0x100000000), 0), '2^32 returns +0'); - t.ok(is(ES.ToUint8(0x100000000 - 1), 0x100 - 1), '2^32 - 1 returns 2^8 - 1'); - t.ok(is(ES.ToUint8(0x80000000), 0), '2^31 returns +0'); - t.ok(is(ES.ToUint8(0x80000000 - 1), 0x100 - 1), '2^31 - 1 returns 2^8 - 1'); - t.ok(is(ES.ToUint8(0x10000), 0), '2^16 returns +0'); - t.ok(is(ES.ToUint8(0x10000 - 1), 0x100 - 1), '2^16 - 1 returns 2^8 - 1'); - t.ok(is(ES.ToUint8(0x100), 0), '2^8 returns +0'); - t.ok(is(ES.ToUint8(0x100 - 1), 0x100 - 1), '2^8 - 1 returns 2^16 - 1'); - t.ok(is(ES.ToUint8(0x10), 0x10), '2^4 returns 2^4'); - t.ok(is(ES.ToUint8(0x10 - 1), 0x10 - 1), '2^4 - 1 returns 2^4 - 1'); - t.end(); - }); - - test('ToUint8Clamp', function (t) { - t.ok(is(0, ES.ToUint8Clamp(NaN)), 'NaN coerces to +0'); - t.ok(is(0, ES.ToUint8Clamp(0)), '+0 returns +0'); - t.ok(is(0, ES.ToUint8Clamp(-0)), '-0 returns +0'); - t.ok(is(0, ES.ToUint8Clamp(-Infinity)), '-Infinity returns +0'); - t['throws'](function () { return ES.ToUint8Clamp(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - forEach([255, 256, 0x100000, Infinity], function (number) { - t.ok(is(255, ES.ToUint8Clamp(number)), number + ' coerces to 255'); - }); - t.equal(1, ES.ToUint8Clamp(1.49), '1.49 coerces to 1'); - t.equal(2, ES.ToUint8Clamp(1.5), '1.5 coerces to 2, because 2 is even'); - t.equal(2, ES.ToUint8Clamp(1.51), '1.51 coerces to 2'); - - t.equal(2, ES.ToUint8Clamp(2.49), '2.49 coerces to 2'); - t.equal(2, ES.ToUint8Clamp(2.5), '2.5 coerces to 2, because 2 is even'); - t.equal(3, ES.ToUint8Clamp(2.51), '2.51 coerces to 3'); - t.end(); - }); - - test('ToString', function (t) { - forEach(v.objects.concat(v.nonSymbolPrimitives), function (item) { - t.equal(ES.ToString(item), String(item), 'ES.ToString(' + debug(item) + ') ToStrings to String(' + debug(item) + ')'); - }); - - t['throws'](function () { return ES.ToString(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - - forEach(v.symbols, function (symbol) { - t['throws'](function () { return ES.ToString(symbol); }, TypeError, debug(symbol) + ' throws'); - }); - t.end(); - }); - - test('ToObject', function (t) { - t['throws'](function () { return ES.ToObject(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.ToObject(null); }, TypeError, 'null throws'); - forEach(v.numbers, function (number) { - var obj = ES.ToObject(number); - t.equal(typeof obj, 'object', 'number ' + number + ' coerces to object'); - t.equal(true, obj instanceof Number, 'object of ' + number + ' is Number object'); - t.ok(is(obj.valueOf(), number), 'object of ' + number + ' coerces to ' + number); - }); - t.end(); - }); - - test('RequireObjectCoercible', function (t) { - t.equal(false, 'CheckObjectCoercible' in ES, 'CheckObjectCoercible -> RequireObjectCoercible in ES6'); - t['throws'](function () { return ES.RequireObjectCoercible(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.RequireObjectCoercible(null); }, TypeError, 'null throws'); - var isCoercible = function (value) { - t.doesNotThrow(function () { return ES.RequireObjectCoercible(value); }, debug(value) + ' does not throw'); - }; - forEach(v.objects.concat(v.nonNullPrimitives), isCoercible); - t.end(); - }); - - test('IsCallable', function (t) { - t.equal(true, ES.IsCallable(function () {}), 'function is callable'); - var nonCallables = [/a/g, {}, Object.prototype, NaN].concat(v.nonFunctions); - forEach(nonCallables, function (nonCallable) { - t.equal(false, ES.IsCallable(nonCallable), debug(nonCallable) + ' is not callable'); - }); - t.end(); - }); - - test('SameValue', function (t) { - t.equal(true, ES.SameValue(NaN, NaN), 'NaN is SameValue as NaN'); - t.equal(false, ES.SameValue(0, -0), '+0 is not SameValue as -0'); - forEach(v.objects.concat(v.primitives), function (val) { - t.equal(val === val, ES.SameValue(val, val), debug(val) + ' is SameValue to itself'); - }); - t.end(); - }); - - test('SameValueZero', function (t) { - t.equal(true, ES.SameValueZero(NaN, NaN), 'NaN is SameValueZero as NaN'); - t.equal(true, ES.SameValueZero(0, -0), '+0 is SameValueZero as -0'); - forEach(v.objects.concat(v.primitives), function (val) { - t.equal(val === val, ES.SameValueZero(val, val), debug(val) + ' is SameValueZero to itself'); - }); - t.end(); - }); - - test('ToPropertyKey', function (t) { - forEach(v.objects.concat(v.nonSymbolPrimitives), function (value) { - t.equal(ES.ToPropertyKey(value), String(value), 'ToPropertyKey(value) === String(value) for non-Symbols'); - }); - - forEach(v.symbols, function (symbol) { - t.equal( - ES.ToPropertyKey(symbol), - symbol, - 'ToPropertyKey(' + debug(symbol) + ') === ' + debug(symbol) - ); - t.equal( - ES.ToPropertyKey(Object(symbol)), - symbol, - 'ToPropertyKey(' + debug(Object(symbol)) + ') === ' + debug(symbol) - ); - }); - - t.end(); - }); - - test('ToLength', function (t) { - t['throws'](function () { return ES.ToLength(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError'); - t.equal(3, ES.ToLength(v.coercibleObject), 'coercibleObject coerces to 3'); - t.equal(42, ES.ToLength('42.5'), '"42.5" coerces to 42'); - t.equal(7, ES.ToLength(7.3), '7.3 coerces to 7'); - forEach([-0, -1, -42, -Infinity], function (negative) { - t.ok(is(0, ES.ToLength(negative)), negative + ' coerces to +0'); - }); - t.equal(MAX_SAFE_INTEGER, ES.ToLength(MAX_SAFE_INTEGER + 1), '2^53 coerces to 2^53 - 1'); - t.equal(MAX_SAFE_INTEGER, ES.ToLength(MAX_SAFE_INTEGER + 3), '2^53 + 2 coerces to 2^53 - 1'); - t.end(); - }); - - test('IsArray', function (t) { - t.equal(true, ES.IsArray([]), '[] is array'); - t.equal(false, ES.IsArray({}), '{} is not array'); - t.equal(false, ES.IsArray({ length: 1, 0: true }), 'arraylike object is not array'); - forEach(v.objects.concat(v.primitives), function (value) { - t.equal(false, ES.IsArray(value), debug(value) + ' is not array'); - }); - t.end(); - }); - - test('IsRegExp', function (t) { - forEach([/a/g, new RegExp('a', 'g')], function (regex) { - t.equal(true, ES.IsRegExp(regex), regex + ' is regex'); - }); - - forEach(v.objects.concat(v.primitives), function (nonRegex) { - t.equal(false, ES.IsRegExp(nonRegex), debug(nonRegex) + ' is not regex'); - }); - - t.test('Symbol.match', { skip: !v.hasSymbols || !Symbol.match }, function (st) { - var obj = {}; - obj[Symbol.match] = true; - st.equal(true, ES.IsRegExp(obj), 'object with truthy Symbol.match is regex'); - - var regex = /a/; - regex[Symbol.match] = false; - st.equal(false, ES.IsRegExp(regex), 'regex with falsy Symbol.match is not regex'); - - st.end(); - }); - - t.end(); - }); - - test('IsPropertyKey', function (t) { - forEach(v.numbers.concat(v.objects), function (notKey) { - t.equal(false, ES.IsPropertyKey(notKey), debug(notKey) + ' is not property key'); - }); - - t.equal(true, ES.IsPropertyKey('foo'), 'string is property key'); - - forEach(v.symbols, function (symbol) { - t.equal(true, ES.IsPropertyKey(symbol), debug(symbol) + ' is property key'); - }); - t.end(); - }); - - test('IsInteger', function (t) { - for (var i = -100; i < 100; i += 10) { - t.equal(true, ES.IsInteger(i), i + ' is integer'); - t.equal(false, ES.IsInteger(i + 0.2), (i + 0.2) + ' is not integer'); - } - t.equal(true, ES.IsInteger(-0), '-0 is integer'); - var notInts = v.nonNumbers.concat(v.nonIntegerNumbers, v.infinities, [NaN, [], new Date()]); - forEach(notInts, function (notInt) { - t.equal(false, ES.IsInteger(notInt), debug(notInt) + ' is not integer'); - }); - t.equal(false, ES.IsInteger(v.uncoercibleObject), 'uncoercibleObject is not integer'); - t.end(); - }); - - test('IsExtensible', function (t) { - forEach(v.objects, function (object) { - t.equal(true, ES.IsExtensible(object), debug(object) + ' object is extensible'); - }); - forEach(v.primitives, function (primitive) { - t.equal(false, ES.IsExtensible(primitive), debug(primitive) + ' is not extensible'); - }); - if (Object.preventExtensions) { - t.equal(false, ES.IsExtensible(Object.preventExtensions({})), 'object with extensions prevented is not extensible'); - } - t.end(); - }); - - test('CanonicalNumericIndexString', function (t) { - var throwsOnNonString = function (notString) { - t['throws']( - function () { return ES.CanonicalNumericIndexString(notString); }, - TypeError, - debug(notString) + ' is not a string' - ); - }; - forEach(v.objects.concat(v.numbers), throwsOnNonString); - t.ok(is(-0, ES.CanonicalNumericIndexString('-0')), '"-0" returns -0'); - for (var i = -50; i < 50; i += 10) { - t.equal(i, ES.CanonicalNumericIndexString(String(i)), '"' + i + '" returns ' + i); - t.equal(undefined, ES.CanonicalNumericIndexString(String(i) + 'a'), '"' + i + 'a" returns undefined'); - } - t.end(); - }); - - test('IsConstructor', function (t) { - t.equal(true, ES.IsConstructor(function () {}), 'function is constructor'); - t.equal(false, ES.IsConstructor(/a/g), 'regex is not constructor'); - forEach(v.objects, function (object) { - t.equal(false, ES.IsConstructor(object), object + ' object is not constructor'); - }); - - try { - var arrow = Function('return () => {}')(); // eslint-disable-line no-new-func - t.equal(ES.IsConstructor(arrow), false, 'arrow function is not constructor'); - } catch (e) { - t.comment('SKIP: arrow function syntax not supported.'); - } - - try { - var foo = Function('return class Foo {}')(); // eslint-disable-line no-new-func - t.equal(ES.IsConstructor(foo), true, 'class is constructor'); - } catch (e) { - t.comment('SKIP: class syntax not supported.'); - } - - if (typeof Reflect !== 'object' || typeof Proxy !== 'function' || has(Proxy, 'prototype')) { - t.comment('SKIP: Proxy is constructor'); - } else { - t.equal(ES.IsConstructor(Proxy), true, 'Proxy is constructor'); - } - - t.end(); - }); - - test('Call', function (t) { - var receiver = {}; - var notFuncs = v.nonFunctions.concat([/a/g, new RegExp('a', 'g')]); - t.plan(notFuncs.length + 5); - var throwsIfNotCallable = function (notFunc) { - t['throws']( - function () { return ES.Call(notFunc, receiver); }, - TypeError, - debug(notFunc) + ' (' + typeof notFunc + ') is not callable' - ); - }; - forEach(notFuncs, throwsIfNotCallable); - ES.Call( - function (a, b) { - t.equal(this, receiver, 'context matches expected'); - t.deepEqual([a, b], [1, 2], 'named args are correct'); - t.equal(arguments.length, 3, 'extra argument was passed'); - t.equal(arguments[2], 3, 'extra argument was correct'); - }, - receiver, - [1, 2, 3] - ); - - t.test('Call doesn’t use func.apply', function (st) { - st.plan(4); - - var bad = function (a, b) { - st.equal(this, receiver, 'context matches expected'); - st.deepEqual([a, b], [1, 2], 'named args are correct'); - st.equal(arguments.length, 3, 'extra argument was passed'); - st.equal(arguments[2], 3, 'extra argument was correct'); - }; - - bad.apply = function () { - st.fail('bad.apply shouldn’t get called'); - }; - - ES.Call(bad, receiver, [1, 2, 3]); - st.end(); - }); - - t.end(); - }); - - test('GetV', function (t) { - t['throws'](function () { return ES.GetV({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key'); - var obj = { a: function () {} }; - t.equal(ES.GetV(obj, 'a'), obj.a, 'returns property if it exists'); - t.equal(ES.GetV(obj, 'b'), undefined, 'returns undefiend if property does not exist'); - t.end(); - }); - - test('GetMethod', function (t) { - t['throws'](function () { return ES.GetMethod({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key'); - t.equal(ES.GetMethod({}, 'a'), undefined, 'returns undefined in property is undefined'); - t.equal(ES.GetMethod({ a: null }, 'a'), undefined, 'returns undefined if property is null'); - t.equal(ES.GetMethod({ a: undefined }, 'a'), undefined, 'returns undefined if property is undefined'); - var obj = { a: function () {} }; - t['throws'](function () { ES.GetMethod({ a: 'b' }, 'a'); }, TypeError, 'throws TypeError if property exists and is not callable'); - t.equal(ES.GetMethod(obj, 'a'), obj.a, 'returns property if it is callable'); - t.end(); - }); - - test('Get', function (t) { - t['throws'](function () { return ES.Get('a', 'a'); }, TypeError, 'Throws a TypeError if `O` is not an Object'); - t['throws'](function () { return ES.Get({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key'); - - var value = {}; - t.test('Symbols', { skip: !v.hasSymbols }, function (st) { - var sym = Symbol('sym'); - var obj = {}; - obj[sym] = value; - st.equal(ES.Get(obj, sym), value, 'returns property `P` if it exists on object `O`'); - st.end(); - }); - t.equal(ES.Get({ a: value }, 'a'), value, 'returns property `P` if it exists on object `O`'); - t.end(); - }); - - test('Type', { skip: !v.hasSymbols }, function (t) { - t.equal(ES.Type(Symbol.iterator), 'Symbol', 'Type(Symbol.iterator) is Symbol'); - t.end(); - }); - - test('SpeciesConstructor', function (t) { - t['throws'](function () { ES.SpeciesConstructor(null); }, TypeError); - t['throws'](function () { ES.SpeciesConstructor(undefined); }, TypeError); - - var defaultConstructor = function Foo() {}; - - t.equal( - ES.SpeciesConstructor({ constructor: undefined }, defaultConstructor), - defaultConstructor, - 'undefined constructor returns defaultConstructor' - ); - - t['throws']( - function () { return ES.SpeciesConstructor({ constructor: null }, defaultConstructor); }, - TypeError, - 'non-undefined non-object constructor throws' - ); - - t.test('with Symbol.species', { skip: !hasSpecies }, function (st) { - var Bar = function Bar() {}; - Bar[Symbol.species] = null; - - st.equal( - ES.SpeciesConstructor(new Bar(), defaultConstructor), - defaultConstructor, - 'undefined/null Symbol.species returns default constructor' - ); - - var Baz = function Baz() {}; - Baz[Symbol.species] = Bar; - st.equal( - ES.SpeciesConstructor(new Baz(), defaultConstructor), - Bar, - 'returns Symbol.species constructor value' - ); - - Baz[Symbol.species] = {}; - st['throws']( - function () { ES.SpeciesConstructor(new Baz(), defaultConstructor); }, - TypeError, - 'throws when non-constructor non-null non-undefined species value found' - ); - - st.end(); - }); - - t.end(); - }); - - test('IsPropertyDescriptor', { skip: skips && skips.IsPropertyDescriptor }, function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t.equal( - ES.IsPropertyDescriptor(primitive), - false, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsPropertyDescriptor({ invalid: true }), false, 'invalid keys not allowed on a Property Descriptor'); - - t.equal(ES.IsPropertyDescriptor({}), true, 'empty object is an incomplete Property Descriptor'); - - t.equal(ES.IsPropertyDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.dataDescriptor()), true, 'data descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.genericDescriptor()), true, 'generic descriptor is a Property Descriptor'); - - t['throws']( - function () { ES.IsPropertyDescriptor(v.bothDescriptor()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t.end(); - }); - - assertRecordTests(ES, test); - - test('IsAccessorDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.IsAccessorDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsAccessorDescriptor(), false, 'no value is not an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(undefined), false, 'undefined value is not an Accessor Descriptor'); - - t.equal(ES.IsAccessorDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.dataDescriptor()), false, 'data descriptor is not an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.genericDescriptor()), false, 'generic descriptor is not an Accessor Descriptor'); - - t.end(); - }); - - test('IsDataDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.IsDataDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsDataDescriptor(), false, 'no value is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(undefined), false, 'undefined value is not a Data Descriptor'); - - t.equal(ES.IsDataDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.dataDescriptor()), true, 'data descriptor is a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.genericDescriptor()), false, 'generic descriptor is not a Data Descriptor'); - - t.end(); - }); - - test('IsGenericDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.IsGenericDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsGenericDescriptor(), false, 'no value is not a Data Descriptor'); - t.equal(ES.IsGenericDescriptor(undefined), false, 'undefined value is not a Data Descriptor'); - - t.equal(ES.IsGenericDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a generic Descriptor'); - t.equal(ES.IsGenericDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a generic Descriptor'); - t.equal(ES.IsGenericDescriptor(v.dataDescriptor()), false, 'data descriptor is not a generic Descriptor'); - - t.equal(ES.IsGenericDescriptor(v.genericDescriptor()), true, 'generic descriptor is a generic Descriptor'); - - t.end(); - }); - - test('FromPropertyDescriptor', function (t) { - t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined'); - t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined'); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.FromPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(accessor), { - get: accessor['[[Get]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(mutator), { - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }); - var data = v.dataDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(data), { - value: data['[[Value]]'], - writable: data['[[Writable]]'] - }); - - t.deepEqual(ES.FromPropertyDescriptor(v.genericDescriptor()), { - enumerable: false, - configurable: true - }); - - t.end(); - }); - - test('ToPropertyDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.ToPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - get: accessor['[[Get]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }), accessor); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }), mutator); - - var data = v.dataDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - value: data['[[Value]]'], - writable: data['[[Writable]]'], - configurable: !!data['[[Configurable]]'] - }), assign(data, { '[[Configurable]]': false })); - - var both = v.bothDescriptor(); - t['throws']( - function () { - ES.FromPropertyDescriptor({ get: both['[[Get]]'], value: both['[[Value]]'] }); - }, - TypeError, - 'data and accessor descriptors are mutually exclusive' - ); - - t.end(); - }); - - test('CompletePropertyDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.CompletePropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var generic = v.genericDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(generic), - { - '[[Configurable]]': !!generic['[[Configurable]]'], - '[[Enumerable]]': !!generic['[[Enumerable]]'], - '[[Value]]': undefined, - '[[Writable]]': false - }, - 'completes a Generic Descriptor' - ); - - var data = v.dataDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(data), - { - '[[Configurable]]': !!data['[[Configurable]]'], - '[[Enumerable]]': false, - '[[Value]]': data['[[Value]]'], - '[[Writable]]': !!data['[[Writable]]'] - }, - 'completes a Data Descriptor' - ); - - var accessor = v.accessorDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(accessor), - { - '[[Get]]': accessor['[[Get]]'], - '[[Enumerable]]': !!accessor['[[Enumerable]]'], - '[[Configurable]]': !!accessor['[[Configurable]]'], - '[[Set]]': undefined - }, - 'completes an Accessor Descriptor' - ); - - var mutator = v.mutatorDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(mutator), - { - '[[Set]]': mutator['[[Set]]'], - '[[Enumerable]]': !!mutator['[[Enumerable]]'], - '[[Configurable]]': !!mutator['[[Configurable]]'], - '[[Get]]': undefined - }, - 'completes a mutator Descriptor' - ); - - t['throws']( - function () { ES.CompletePropertyDescriptor(v.bothDescriptor()); }, - TypeError, - 'data and accessor descriptors are mutually exclusive' - ); - - t.end(); - }); - - test('Set', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.Set(primitive, '', null, false); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.Set({}, nonKey, null, false); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.Set({}, '', null, nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - var o = {}; - var value = {}; - ES.Set(o, 'key', value, true); - t.deepEqual(o, { key: value }, 'key is set'); - - t.test('nonwritable', { skip: !defineProperty.oDP }, function (st) { - var obj = { a: value }; - defineProperty(obj, 'a', { writable: false }); - - st['throws']( - function () { ES.Set(obj, 'a', {}, true); }, - TypeError, - 'can not Set nonwritable property' - ); - - st.doesNotThrow( - function () { - st.equal(ES.Set(obj, 'a', {}, false), false, 'unsuccessful Set returns false'); - }, - 'setting Throw to false prevents an exception' - ); - - st.end(); - }); - - t.test('nonconfigurable', { skip: !defineProperty.oDP }, function (st) { - var obj = { a: value }; - defineProperty(obj, 'a', { configurable: false }); - - st.equal(ES.Set(obj, 'a', value, true), true, 'successful Set returns true'); - st.deepEqual(obj, { a: value }, 'key is set'); - - st.end(); - }); - - t.test('doesn’t call [[Get]] in conforming strict mode environments', { skip: noThrowOnStrictViolation }, function (st) { - var getterCalled = false; - var setterCalls = 0; - var obj = {}; - defineProperty(obj, 'a', { - get: function () { - getterCalled = true; - }, - set: function () { - setterCalls += 1; - } - }); - - st.equal(ES.Set(obj, 'a', value, false), true, 'successful Set returns true'); - st.equal(setterCalls, 1, 'setter was called once'); - st.equal(getterCalled, false, 'getter was not called'); - - st.end(); - }); - - t.end(); - }); - - test('HasOwnProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.HasOwnProperty(primitive, 'key'); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.HasOwnProperty({}, nonKey); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.HasOwnProperty({}, 'toString'), false, 'inherited properties are not own'); - t.equal( - ES.HasOwnProperty({ toString: 1 }, 'toString'), - true, - 'shadowed inherited own properties are own' - ); - t.equal(ES.HasOwnProperty({ a: 1 }, 'a'), true, 'own properties are own'); - - t.end(); - }); - - test('HasProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.HasProperty(primitive, 'key'); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.HasProperty({}, nonKey); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.HasProperty({}, 'nope'), false, 'object does not have nonexistent properties'); - t.equal(ES.HasProperty({}, 'toString'), true, 'object has inherited properties'); - t.equal( - ES.HasProperty({ toString: 1 }, 'toString'), - true, - 'object has shadowed inherited own properties' - ); - t.equal(ES.HasProperty({ a: 1 }, 'a'), true, 'object has own properties'); - - t.end(); - }); - - test('IsConcatSpreadable', function (t) { - forEach(v.primitives, function (primitive) { - t.equal(ES.IsConcatSpreadable(primitive), false, debug(primitive) + ' is not an Object'); - }); - - var hasSymbolConcatSpreadable = v.hasSymbols && Symbol.isConcatSpreadable; - t.test('Symbol.isConcatSpreadable', { skip: !hasSymbolConcatSpreadable }, function (st) { - forEach(v.falsies, function (falsy) { - var obj = {}; - obj[Symbol.isConcatSpreadable] = falsy; - st.equal( - ES.IsConcatSpreadable(obj), - false, - 'an object with ' + debug(falsy) + ' as Symbol.isConcatSpreadable is not concat spreadable' - ); - }); - - forEach(v.truthies, function (truthy) { - var obj = {}; - obj[Symbol.isConcatSpreadable] = truthy; - st.equal( - ES.IsConcatSpreadable(obj), - true, - 'an object with ' + debug(truthy) + ' as Symbol.isConcatSpreadable is concat spreadable' - ); - }); - - st.end(); - }); - - forEach(v.objects, function (object) { - t.equal( - ES.IsConcatSpreadable(object), - false, - 'non-array without Symbol.isConcatSpreadable is not concat spreadable' - ); - }); - - t.equal(ES.IsConcatSpreadable([]), true, 'arrays are concat spreadable'); - - t.end(); - }); - - test('Invoke', function (t) { - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.Invoke({}, nonKey); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - t['throws'](function () { ES.Invoke({ o: false }, 'o'); }, TypeError, 'fails on a non-function'); - - t.test('invoked callback', function (st) { - var aValue = {}; - var bValue = {}; - var obj = { - f: function (a) { - st.equal(arguments.length, 2, '2 args passed'); - st.equal(a, aValue, 'first arg is correct'); - st.equal(arguments[1], bValue, 'second arg is correct'); - } - }; - st.plan(3); - ES.Invoke(obj, 'f', aValue, bValue); - }); - - t.end(); - }); - - test('GetIterator', function (t) { - var arr = [1, 2]; - testIterator(t, ES.GetIterator(arr), arr); - - testIterator(t, ES.GetIterator('abc'), 'abc'.split('')); - - t.test('Symbol.iterator', { skip: !v.hasSymbols }, function (st) { - var m = new Map(); - m.set(1, 'a'); - m.set(2, 'b'); - - testIterator(st, ES.GetIterator(m), [[1, 'a'], [2, 'b']]); - - st.end(); - }); - - t.end(); - }); - - test('IteratorNext', { skip: true }); - - test('IteratorComplete', { skip: true }); - - test('IteratorValue', { skip: true }); - - test('IteratorStep', { skip: true }); - - test('IteratorClose', { skip: true }); - - test('CreateIterResultObject', function (t) { - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.CreateIterResultObject({}, nonBoolean); }, - TypeError, - '"done" argument must be a boolean; ' + debug(nonBoolean) + ' is not' - ); - }); - - var value = {}; - t.deepEqual( - ES.CreateIterResultObject(value, true), - { value: value, done: true }, - 'creates a "done" iteration result' - ); - t.deepEqual( - ES.CreateIterResultObject(value, false), - { value: value, done: false }, - 'creates a "not done" iteration result' - ); - - t.end(); - }); - - test('RegExpExec', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.RegExpExec(primitive); }, - TypeError, - '"R" argument must be an object; ' + debug(primitive) + ' is not' - ); - }); - - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.RegExpExec({}, nonString); }, - TypeError, - '"S" argument must be a String; ' + debug(nonString) + ' is not' - ); - }); - - t.test('gets and calls a callable "exec"', function (st) { - var str = '123'; - var o = { - exec: function (S) { - st.equal(this, o, '"exec" receiver is R'); - st.equal(S, str, '"exec" argument is S'); - - return null; - } - }; - st.plan(2); - ES.RegExpExec(o, str); - st.end(); - }); - - t.test('throws if a callable "exec" returns a non-null non-object', function (st) { - var str = '123'; - st.plan(v.nonNullPrimitives.length); - forEach(v.nonNullPrimitives, function (nonNullPrimitive) { - st['throws']( - function () { ES.RegExpExec({ exec: function () { return nonNullPrimitive; } }, str); }, - TypeError, - '"exec" method must return `null` or an Object; ' + debug(nonNullPrimitive) + ' is not' - ); - }); - st.end(); - }); - - t.test('actual regex that should match against a string', function (st) { - var S = 'aabc'; - var R = /a/g; - var match1 = ES.RegExpExec(R, S); - var expected1 = assign(['a'], kludgeMatch(R, { index: 0, input: S })); - var match2 = ES.RegExpExec(R, S); - var expected2 = assign(['a'], kludgeMatch(R, { index: 1, input: S })); - var match3 = ES.RegExpExec(R, S); - st.deepEqual(match1, expected1, 'match object 1 is as expected'); - st.deepEqual(match2, expected2, 'match object 2 is as expected'); - st.equal(match3, null, 'match 3 is null as expected'); - st.end(); - }); - - t.test('actual regex that should match against a string, with shadowed "exec"', function (st) { - var S = 'aabc'; - var R = /a/g; - R.exec = undefined; - var match1 = ES.RegExpExec(R, S); - var expected1 = assign(['a'], kludgeMatch(R, { index: 0, input: S })); - var match2 = ES.RegExpExec(R, S); - var expected2 = assign(['a'], kludgeMatch(R, { index: 1, input: S })); - var match3 = ES.RegExpExec(R, S); - st.deepEqual(match1, expected1, 'match object 1 is as expected'); - st.deepEqual(match2, expected2, 'match object 2 is as expected'); - st.equal(match3, null, 'match 3 is null as expected'); - st.end(); - }); - t.end(); - }); - - test('ArraySpeciesCreate', function (t) { - t.test('errors', function (st) { - var testNonNumber = function (nonNumber) { - st['throws']( - function () { ES.ArraySpeciesCreate([], nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a number' - ); - }; - forEach(v.nonNumbers, testNonNumber); - - st['throws']( - function () { ES.ArraySpeciesCreate([], -1); }, - TypeError, - '-1 is not >= 0' - ); - st['throws']( - function () { ES.ArraySpeciesCreate([], -Infinity); }, - TypeError, - '-Infinity is not >= 0' - ); - - var testNonIntegers = function (nonInteger) { - st['throws']( - function () { ES.ArraySpeciesCreate([], nonInteger); }, - TypeError, - debug(nonInteger) + ' is not an integer' - ); - }; - forEach(v.nonIntegerNumbers, testNonIntegers); - - st.end(); - }); - - t.test('works with a non-array', function (st) { - forEach(v.objects.concat(v.primitives), function (nonArray) { - var arr = ES.ArraySpeciesCreate(nonArray, 0); - st.ok(ES.IsArray(arr), 'is an array'); - st.equal(arr.length, 0, 'length is correct'); - st.equal(arr.constructor, Array, 'constructor is correct'); - }); - - st.end(); - }); - - t.test('works with a normal array', function (st) { - var len = 2; - var orig = [1, 2, 3]; - var arr = ES.ArraySpeciesCreate(orig, len); - - st.ok(ES.IsArray(arr), 'is an array'); - st.equal(arr.length, len, 'length is correct'); - st.equal(arr.constructor, orig.constructor, 'constructor is correct'); - - st.end(); - }); - - t.test('-0 length produces +0 length', function (st) { - var len = -0; - st.ok(is(len, -0), '-0 is negative zero'); - st.notOk(is(len, 0), '-0 is not positive zero'); - - var orig = [1, 2, 3]; - var arr = ES.ArraySpeciesCreate(orig, len); - - st.equal(ES.IsArray(arr), true); - st.ok(is(arr.length, 0)); - st.equal(arr.constructor, orig.constructor); - - st.end(); - }); - - t.test('works with species construtor', { skip: !hasSpecies }, function (st) { - var sentinel = {}; - var Foo = function Foo(len) { - this.length = len; - this.sentinel = sentinel; - }; - var Bar = getArraySubclassWithSpeciesConstructor(Foo); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - var arr = ES.ArraySpeciesCreate(bar, 3); - st.equal(arr.constructor, Foo, 'result used species constructor'); - st.equal(arr.length, 3, 'length property is correct'); - st.equal(arr.sentinel, sentinel, 'Foo constructor was exercised'); - - st.end(); - }); - - t.test('works with null species constructor', { skip: !hasSpecies }, function (st) { - var Bar = getArraySubclassWithSpeciesConstructor(null); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - var arr = ES.ArraySpeciesCreate(bar, 3); - st.equal(arr.constructor, Array, 'result used default constructor'); - st.equal(arr.length, 3, 'length property is correct'); - - st.end(); - }); - - t.test('works with undefined species constructor', { skip: !hasSpecies }, function (st) { - var Bar = getArraySubclassWithSpeciesConstructor(); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - var arr = ES.ArraySpeciesCreate(bar, 3); - st.equal(arr.constructor, Array, 'result used default constructor'); - st.equal(arr.length, 3, 'length property is correct'); - - st.end(); - }); - - t.test('throws with object non-construtor species constructor', { skip: !hasSpecies }, function (st) { - forEach(v.objects, function (obj) { - var Bar = getArraySubclassWithSpeciesConstructor(obj); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - st['throws']( - function () { ES.ArraySpeciesCreate(bar, 3); }, - TypeError, - debug(obj) + ' is not a constructor' - ); - }); - - st.end(); - }); - - t.end(); - }); - - test('CreateDataProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CreateDataProperty(primitive); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.CreateDataProperty({}, nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a property key' - ); - }); - - var sentinel = { id: 'sentinel' }; - var secondSentinel = { id: 'second sentinel' }; - forEach(v.propertyKeys, function (propertyKey) { - var obj = {}; - var status = ES.CreateDataProperty(obj, propertyKey, sentinel); - t.equal(status, true, 'status is true'); - t.equal( - obj[propertyKey], - sentinel, - debug(sentinel) + ' is installed on "' + debug(propertyKey) + '" on the object' - ); - var secondStatus = ES.CreateDataProperty(obj, propertyKey, secondSentinel); - t.equal(secondStatus, true, 'second status is true'); - t.equal( - obj[propertyKey], - secondSentinel, - debug(secondSentinel) + ' is installed on "' + debug(propertyKey) + '" on the object' - ); - - t.test('with defineProperty', { skip: !defineProperty.oDP }, function (st) { - var nonWritable = defineProperty({}, propertyKey, { configurable: true, writable: false }); - - var nonWritableStatus = ES.CreateDataProperty(nonWritable, propertyKey, sentinel); - st.equal(nonWritableStatus, false, 'create data property failed'); - st.notEqual( - nonWritable[propertyKey], - sentinel, - debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object when key is nonwritable' - ); - - var nonConfigurable = defineProperty({}, propertyKey, { configurable: false, writable: true }); - - var nonConfigurableStatus = ES.CreateDataProperty(nonConfigurable, propertyKey, sentinel); - st.equal(nonConfigurableStatus, false, 'create data property failed'); - st.notEqual( - nonConfigurable[propertyKey], - sentinel, - debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object when key is nonconfigurable' - ); - st.end(); - }); - }); - - t.end(); - }); - - test('CreateDataPropertyOrThrow', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CreateDataPropertyOrThrow(primitive); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.CreateDataPropertyOrThrow({}, nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a property key' - ); - }); - - var sentinel = {}; - forEach(v.propertyKeys, function (propertyKey) { - var obj = {}; - var status = ES.CreateDataPropertyOrThrow(obj, propertyKey, sentinel); - t.equal(status, true, 'status is true'); - t.equal( - obj[propertyKey], - sentinel, - debug(sentinel) + ' is installed on "' + debug(propertyKey) + '" on the object' - ); - - if (typeof Object.preventExtensions === 'function') { - var notExtensible = {}; - Object.preventExtensions(notExtensible); - - t['throws']( - function () { ES.CreateDataPropertyOrThrow(notExtensible, propertyKey, sentinel); }, - TypeError, - 'can not install ' + debug(propertyKey) + ' on non-extensible object' - ); - t.notEqual( - notExtensible[propertyKey], - sentinel, - debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object' - ); - } - }); - - t.end(); - }); - - test('ObjectCreate', { skip: skips && skips.ObjectCreate }, function (t) { - forEach(v.nonNullPrimitives, function (value) { - t['throws']( - function () { ES.ObjectCreate(value); }, - TypeError, - debug(value) + ' is not null, or an object' - ); - }); - - t.test('proto arg', function (st) { - var Parent = function Parent() {}; - Parent.prototype.foo = {}; - var child = ES.ObjectCreate(Parent.prototype); - st.equal(child instanceof Parent, true, 'child is instanceof Parent'); - st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype'); - - st.end(); - }); - - t.test('internal slots arg', function (st) { - st.doesNotThrow(function () { ES.ObjectCreate({}, []); }, 'an empty slot list is valid'); - - st['throws']( - function () { ES.ObjectCreate({}, ['a']); }, - SyntaxError, - 'internal slots are not supported' - ); - - st.end(); - }); - - t.test('null proto', { skip: !Object.create && !$setProto }, function (st) { - st.equal('toString' in {}, true, 'normal objects have toString'); - st.equal('toString' in ES.ObjectCreate(null), false, 'makes a null object'); - - st.end(); - }); - - t.test('null proto when no native Object.create', { skip: Object.create || $setProto }, function (st) { - st['throws']( - function () { ES.ObjectCreate(null); }, - SyntaxError, - 'without a native Object.create, can not create null objects' - ); - - st.end(); - }); - - t.end(); - }); - - test('AdvanceStringIndex', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.AdvanceStringIndex(nonString); }, - TypeError, - '"S" argument must be a String; ' + debug(nonString) + ' is not' - ); - }); - - var notInts = v.nonNumbers.concat( - v.nonIntegerNumbers, - v.infinities, - [NaN, [], new Date(), Math.pow(2, 53), -1] - ); - forEach(notInts, function (nonInt) { - t['throws']( - function () { ES.AdvanceStringIndex('abc', nonInt); }, - TypeError, - '"index" argument must be an integer, ' + debug(nonInt) + ' is not.' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.AdvanceStringIndex('abc', 0, nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - var str = 'a' + wholePoo + 'c'; - - t.test('non-unicode mode', function (st) { - for (var i = 0; i < str.length + 2; i += 1) { - st.equal(ES.AdvanceStringIndex(str, i, false), i + 1, i + ' advances to ' + (i + 1)); - } - - st.end(); - }); - - t.test('unicode mode', function (st) { - st.equal(ES.AdvanceStringIndex(str, 0, true), 1, '0 advances to 1'); - st.equal(ES.AdvanceStringIndex(str, 1, true), 3, '1 advances to 3'); - st.equal(ES.AdvanceStringIndex(str, 2, true), 3, '2 advances to 3'); - st.equal(ES.AdvanceStringIndex(str, 3, true), 4, '3 advances to 4'); - st.equal(ES.AdvanceStringIndex(str, 4, true), 5, '4 advances to 5'); - - st.end(); - }); - - t.test('lone surrogates', function (st) { - var halfPoo = 'a' + leadingPoo + 'c'; - - st.equal(ES.AdvanceStringIndex(halfPoo, 0, true), 1, '0 advances to 1'); - st.equal(ES.AdvanceStringIndex(halfPoo, 1, true), 2, '1 advances to 2'); - st.equal(ES.AdvanceStringIndex(halfPoo, 2, true), 3, '2 advances to 3'); - st.equal(ES.AdvanceStringIndex(halfPoo, 3, true), 4, '3 advances to 4'); - - st.end(); - }); - - t.test('surrogate pairs', function (st) { - var lowestPair = String.fromCharCode('0xD800') + String.fromCharCode('0xDC00'); - var highestPair = String.fromCharCode('0xDBFF') + String.fromCharCode('0xDFFF'); - - st.equal(ES.AdvanceStringIndex(lowestPair, 0, true), 2, 'lowest surrogate pair, 0 -> 2'); - st.equal(ES.AdvanceStringIndex(highestPair, 0, true), 2, 'highest surrogate pair, 0 -> 2'); - st.equal(ES.AdvanceStringIndex(wholePoo, 0, true), 2, 'poop, 0 -> 2'); - - st.end(); - }); - - t.end(); - }); - - test('CreateMethodProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CreateMethodProperty(primitive, 'key'); }, - TypeError, - 'O must be an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.CreateMethodProperty({}, nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('defines correctly', function (st) { - var obj = {}; - var key = 'the key'; - var value = { foo: 'bar' }; - - st.equal(ES.CreateMethodProperty(obj, key, value), true, 'defines property successfully'); - st.test('property descriptor', { skip: !getOwnPropertyDescriptor }, function (s2t) { - s2t.deepEqual( - getOwnPropertyDescriptor(obj, key), - { - configurable: true, - enumerable: false, - value: value, - writable: true - }, - 'sets the correct property descriptor' - ); - - s2t.end(); - }); - st.equal(obj[key], value, 'sets the correct value'); - - st.end(); - }); - - t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) { - var obj = Object.freeze({ foo: 'bar' }); - st['throws']( - function () { ES.CreateMethodProperty(obj, 'foo', { value: 'baz' }); }, - TypeError, - 'nonconfigurable key can not be defined' - ); - - st.end(); - }); - - t.test('fails as expected on a function with a nonconfigurable name', { skip: !functionsHaveNames || functionsHaveConfigurableNames }, function (st) { - st['throws']( - function () { ES.CreateMethodProperty(function () {}, 'name', { value: 'baz' }); }, - TypeError, - 'nonconfigurable function name can not be defined' - ); - st.end(); - }); - - t.end(); - }); - - test('DefinePropertyOrThrow', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.DefinePropertyOrThrow(primitive, 'key', {}); }, - TypeError, - 'O must be an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.DefinePropertyOrThrow({}, nonPropertyKey, {}); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('defines correctly', function (st) { - var obj = {}; - var key = 'the key'; - var descriptor = { - configurable: true, - enumerable: false, - value: { foo: 'bar' }, - writable: true - }; - - st.equal(ES.DefinePropertyOrThrow(obj, key, descriptor), true, 'defines property successfully'); - st.test('property descriptor', { skip: !getOwnPropertyDescriptor }, function (s2t) { - s2t.deepEqual( - getOwnPropertyDescriptor(obj, key), - descriptor, - 'sets the correct property descriptor' - ); - - s2t.end(); - }); - st.deepEqual(obj[key], descriptor.value, 'sets the correct value'); - - st.end(); - }); - - t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) { - var obj = Object.freeze({ foo: 'bar' }); - st['throws']( - function () { - ES.DefinePropertyOrThrow(obj, 'foo', { configurable: true, value: 'baz' }); - }, - TypeError, - 'nonconfigurable key can not be defined' - ); - - st.end(); - }); - - t.test('fails as expected on a function with a nonconfigurable name', { skip: !functionsHaveNames || functionsHaveConfigurableNames }, function (st) { - st['throws']( - function () { - ES.DefinePropertyOrThrow(function () {}, 'name', { configurable: true, value: 'baz' }); - }, - TypeError, - 'nonconfigurable function name can not be defined' - ); - st.end(); - }); - - t.end(); - }); - - test('DeletePropertyOrThrow', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.DeletePropertyOrThrow(primitive, 'key', {}); }, - TypeError, - 'O must be an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.DeletePropertyOrThrow({}, nonPropertyKey, {}); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('defines correctly', function (st) { - var obj = { 'the key': 42 }; - var key = 'the key'; - - st.equal(ES.DeletePropertyOrThrow(obj, key), true, 'deletes property successfully'); - st.equal(key in obj, false, 'key is no longer in the object'); - - st.end(); - }); - - t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) { - var obj = Object.freeze({ foo: 'bar' }); - st['throws']( - function () { ES.DeletePropertyOrThrow(obj, 'foo'); }, - TypeError, - 'nonconfigurable key can not be deleted' - ); - - st.end(); - }); - - t.test('fails as expected on a function with a nonconfigurable name', { skip: !functionsHaveNames || functionsHaveConfigurableNames }, function (st) { - st['throws']( - function () { ES.DeletePropertyOrThrow(function () {}, 'name'); }, - TypeError, - 'nonconfigurable function name can not be deleted' - ); - st.end(); - }); - - t.end(); - }); - - test('EnumerableOwnNames', { skip: skips && skips.EnumerableOwnNames }, function (t) { - var obj = testEnumerableOwnNames(t, function (O) { return ES.EnumerableOwnNames(O); }); - - t.deepEqual( - ES.EnumerableOwnNames(obj), - ['own'], - 'returns enumerable own names' - ); - - t.end(); - }); - - test('thisNumberValue', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.thisNumberValue(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach(v.numbers, function (number) { - t.equal(ES.thisNumberValue(number), number, debug(number) + ' is its own thisNumberValue'); - var obj = Object(number); - t.equal(ES.thisNumberValue(obj), number, debug(obj) + ' is the boxed thisNumberValue'); - }); - - t.end(); - }); - - test('thisBooleanValue', function (t) { - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.thisBooleanValue(nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach(v.booleans, function (boolean) { - t.equal(ES.thisBooleanValue(boolean), boolean, debug(boolean) + ' is its own thisBooleanValue'); - var obj = Object(boolean); - t.equal(ES.thisBooleanValue(obj), boolean, debug(obj) + ' is the boxed thisBooleanValue'); - }); - - t.end(); - }); - - test('thisStringValue', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.thisStringValue(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - forEach(v.strings, function (string) { - t.equal(ES.thisStringValue(string), string, debug(string) + ' is its own thisStringValue'); - var obj = Object(string); - t.equal(ES.thisStringValue(obj), string, debug(obj) + ' is the boxed thisStringValue'); - }); - - t.end(); - }); - - test('thisTimeValue', function (t) { - forEach(v.primitives.concat(v.objects), function (nonDate) { - t['throws']( - function () { ES.thisTimeValue(nonDate); }, - TypeError, - debug(nonDate) + ' is not a Date' - ); - }); - - forEach(v.timestamps, function (timestamp) { - var date = new Date(timestamp); - - t.equal(ES.thisTimeValue(date), timestamp, debug(date) + ' is its own thisTimeValue'); - }); - - t.end(); - }); - - test('SetIntegrityLevel', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.SetIntegrityLevel(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - t['throws']( - function () { ES.SetIntegrityLevel({}); }, - /^TypeError: Assertion failed: `level` must be `"sealed"` or `"frozen"`$/, - '`level` must be `"sealed"` or `"frozen"`' - ); - - var O = { a: 1 }; - t.test('sealed', { skip: !Object.preventExtensions || noThrowOnStrictViolation }, function (st) { - st.equal(ES.SetIntegrityLevel(O, 'sealed'), true); - st['throws']( - function () { O.b = 2; }, - /^TypeError: (Cannot|Can't) add property b, object is not extensible$/, - 'sealing prevent new properties from being added' - ); - O.a = 2; - st.equal(O.a, 2, 'pre-frozen, existing properties are mutable'); - st.end(); - }); - - t.test('frozen', { skip: !Object.freeze || noThrowOnStrictViolation }, function (st) { - st.equal(ES.SetIntegrityLevel(O, 'frozen'), true); - st['throws']( - function () { O.a = 3; }, - /^TypeError: Cannot assign to read only property 'a' of /, - 'freezing prevents existing properties from being mutated' - ); - st.end(); - }); - - t.end(); - }); - - test('TestIntegrityLevel', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.TestIntegrityLevel(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - t['throws']( - function () { ES.TestIntegrityLevel({ a: 1 }); }, - /^TypeError: Assertion failed: `level` must be `"sealed"` or `"frozen"`$/, - '`level` must be `"sealed"` or `"frozen"`' - ); - - t.equal(ES.TestIntegrityLevel({ a: 1 }, 'sealed'), false, 'basic object is not sealed'); - t.equal(ES.TestIntegrityLevel({ a: 1 }, 'frozen'), false, 'basic object is not frozen'); - - t.test('preventExtensions', { skip: !Object.preventExtensions }, function (st) { - var o = Object.preventExtensions({ a: 1 }); - st.equal(ES.TestIntegrityLevel(o, 'sealed'), false, 'nonextensible object is not sealed'); - st.equal(ES.TestIntegrityLevel(o, 'frozen'), false, 'nonextensible object is not frozen'); - - var empty = Object.preventExtensions({}); - st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty nonextensible object is sealed'); - st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty nonextensible object is frozen'); - st.end(); - }); - - t.test('seal', { skip: !Object.seal }, function (st) { - var o = Object.seal({ a: 1 }); - st.equal(ES.TestIntegrityLevel(o, 'sealed'), true, 'sealed object is sealed'); - st.equal(ES.TestIntegrityLevel(o, 'frozen'), false, 'sealed object is not frozen'); - - var empty = Object.seal({}); - st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty sealed object is sealed'); - st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty sealed object is frozen'); - - st.end(); - }); - - t.test('freeze', { skip: !Object.freeze }, function (st) { - var o = Object.freeze({ a: 1 }); - st.equal(ES.TestIntegrityLevel(o, 'sealed'), true, 'frozen object is sealed'); - st.equal(ES.TestIntegrityLevel(o, 'frozen'), true, 'frozen object is frozen'); - - var empty = Object.freeze({}); - st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty frozen object is sealed'); - st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty frozen object is frozen'); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryHasInstance', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t.equal(ES.OrdinaryHasInstance(nonFunction, {}), false, debug(nonFunction) + ' is not callable'); - }); - - forEach(v.primitives, function (primitive) { - t.equal(ES.OrdinaryHasInstance(function () {}, primitive), false, debug(primitive) + ' is not an object'); - }); - - var C = function C() {}; - var D = function D() {}; - t.equal(ES.OrdinaryHasInstance(C, new C()), true, 'constructor function has an instance of itself'); - t.equal(ES.OrdinaryHasInstance(C, new D()), false, 'constructor/instance mismatch is false'); - t.equal(ES.OrdinaryHasInstance(D, new C()), false, 'instance/constructor mismatch is false'); - t.equal(ES.OrdinaryHasInstance(C, {}), false, 'plain object is not an instance of a constructor'); - t.equal(ES.OrdinaryHasInstance(Object, {}), true, 'plain object is an instance of Object'); - - t.end(); - }); - - test('OrdinaryHasProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryHasProperty(primitive, ''); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.OrdinaryHasProperty({}, nonPropertyKey); }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.OrdinaryHasProperty({ a: 1 }, 'a'), true, 'own property is true'); - t.equal(ES.OrdinaryHasProperty({}, 'toString'), true, 'inherited property is true'); - t.equal(ES.OrdinaryHasProperty({}, 'nope'), false, 'absent property is false'); - - t.end(); - }); - - test('InstanceofOperator', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.InstanceofOperator(primitive, function () {}); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.InstanceofOperator({}, nonFunction); }, - TypeError, - debug(nonFunction) + ' is not callable' - ); - }); - - var C = function C() {}; - var D = function D() {}; - - t.equal(ES.InstanceofOperator(new C(), C), true, 'constructor function has an instance of itself'); - t.equal(ES.InstanceofOperator(new D(), C), false, 'constructor/instance mismatch is false'); - t.equal(ES.InstanceofOperator(new C(), D), false, 'instance/constructor mismatch is false'); - t.equal(ES.InstanceofOperator({}, C), false, 'plain object is not an instance of a constructor'); - t.equal(ES.InstanceofOperator({}, Object), true, 'plain object is an instance of Object'); - - t.test('Symbol.hasInstance', { skip: !v.hasSymbols || !Symbol.hasInstance }, function (st) { - st.plan(4); - - var O = {}; - var C2 = function () {}; - st.equal(ES.InstanceofOperator(O, C2), false, 'O is not an instance of C2'); - - defineProperty(C2, Symbol.hasInstance, { - value: function (obj) { - st.equal(this, C2, 'hasInstance receiver is C2'); - st.equal(obj, O, 'hasInstance argument is O'); - - return {}; // testing coercion to boolean - } - }); - - st.equal(ES.InstanceofOperator(O, C2), true, 'O is now an instance of C2'); - - st.end(); - }); - - t.end(); - }); - - test('Abstract Equality Comparison', function (t) { - t.test('same types use ===', function (st) { - forEach(v.primitives.concat(v.objects), function (value) { - st.equal(ES['Abstract Equality Comparison'](value, value), value === value, debug(value) + ' is abstractly equal to itself'); - }); - st.end(); - }); - - t.test('different types coerce', function (st) { - var pairs = [ - [null, undefined], - [3, '3'], - [true, '3'], - [true, 3], - [false, 0], - [false, '0'], - [3, [3]], - ['3', [3]], - [true, [1]], - [false, [0]], - [String(v.coercibleObject), v.coercibleObject], - [Number(String(v.coercibleObject)), v.coercibleObject], - [Number(v.coercibleObject), v.coercibleObject], - [String(Number(v.coercibleObject)), v.coercibleObject] - ]; - forEach(pairs, function (pair) { - var a = pair[0]; - var b = pair[1]; - // eslint-disable-next-line eqeqeq - st.equal(ES['Abstract Equality Comparison'](a, b), a == b, debug(a) + ' == ' + debug(b)); - // eslint-disable-next-line eqeqeq - st.equal(ES['Abstract Equality Comparison'](b, a), b == a, debug(b) + ' == ' + debug(a)); - }); - st.end(); - }); - - t.end(); - }); - - test('Strict Equality Comparison', function (t) { - t.test('same types use ===', function (st) { - forEach(v.primitives.concat(v.objects), function (value) { - st.equal(ES['Strict Equality Comparison'](value, value), value === value, debug(value) + ' is strictly equal to itself'); - }); - st.end(); - }); - - t.test('different types are not ===', function (st) { - var pairs = [ - [null, undefined], - [3, '3'], - [true, '3'], - [true, 3], - [false, 0], - [false, '0'], - [3, [3]], - ['3', [3]], - [true, [1]], - [false, [0]], - [String(v.coercibleObject), v.coercibleObject], - [Number(String(v.coercibleObject)), v.coercibleObject], - [Number(v.coercibleObject), v.coercibleObject], - [String(Number(v.coercibleObject)), v.coercibleObject] - ]; - forEach(pairs, function (pair) { - var a = pair[0]; - var b = pair[1]; - st.equal(ES['Strict Equality Comparison'](a, b), a === b, debug(a) + ' === ' + debug(b)); - st.equal(ES['Strict Equality Comparison'](b, a), b === a, debug(b) + ' === ' + debug(a)); - }); - st.end(); - }); - - t.end(); - }); - - test('Abstract Relational Comparison', function (t) { - t.test('at least one operand is NaN', function (st) { - st.equal(ES['Abstract Relational Comparison'](NaN, {}, true), undefined, 'LeftFirst: first is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison']({}, NaN, true), undefined, 'LeftFirst: second is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison'](NaN, {}, false), undefined, '!LeftFirst: first is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison']({}, NaN, false), undefined, '!LeftFirst: second is NaN, returns undefined'); - st.end(); - }); - - t.equal(ES['Abstract Relational Comparison'](3, 4, true), true, 'LeftFirst: 3 is less than 4'); - t.equal(ES['Abstract Relational Comparison'](4, 3, true), false, 'LeftFirst: 3 is not less than 4'); - t.equal(ES['Abstract Relational Comparison'](3, 4, false), true, '!LeftFirst: 3 is less than 4'); - t.equal(ES['Abstract Relational Comparison'](4, 3, false), false, '!LeftFirst: 3 is not less than 4'); - - t.equal(ES['Abstract Relational Comparison']('3', '4', true), true, 'LeftFirst: "3" is less than "4"'); - t.equal(ES['Abstract Relational Comparison']('4', '3', true), false, 'LeftFirst: "3" is not less than "4"'); - t.equal(ES['Abstract Relational Comparison']('3', '4', false), true, '!LeftFirst: "3" is less than "4"'); - t.equal(ES['Abstract Relational Comparison']('4', '3', false), false, '!LeftFirst: "3" is not less than "4"'); - - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, true), true, 'LeftFirst: coercible object is less than 42'); - t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, true), false, 'LeftFirst: 42 is not less than coercible object'); - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, false), true, '!LeftFirst: coercible object is less than 42'); - t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, false), false, '!LeftFirst: 42 is not less than coercible object'); - - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', true), false, 'LeftFirst: coercible object is not less than "3"'); - t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, true), false, 'LeftFirst: "3" is not less than coercible object'); - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', false), false, '!LeftFirst: coercible object is not less than "3"'); - t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, false), false, '!LeftFirst: "3" is not less than coercible object'); - - t.end(); - }); - - test('ValidateAndApplyPropertyDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (nonUndefinedPrimitive) { - t['throws']( - function () { ES.ValidateAndApplyPropertyDescriptor(nonUndefinedPrimitive, '', false, v.genericDescriptor(), v.genericDescriptor()); }, - TypeError, - 'O: ' + debug(nonUndefinedPrimitive) + ' is not undefined or an Object' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - undefined, - null, - nonBoolean, - v.genericDescriptor(), - v.genericDescriptor() - ); - }, - TypeError, - 'extensible: ' + debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach(v.primitives, function (primitive) { - // Desc must be a Property Descriptor - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - undefined, - null, - false, - primitive, - v.genericDescriptor() - ); - }, - TypeError, - 'Desc: ' + debug(primitive) + ' is not a Property Descriptor' - ); - }); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - // current must be undefined or a Property Descriptor - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - undefined, - null, - false, - v.genericDescriptor(), - primitive - ); - }, - TypeError, - 'current: ' + debug(primitive) + ' is not a Property Descriptor or undefined' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - // if O is an object, P must be a property key - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - {}, - nonPropertyKey, - false, - v.genericDescriptor(), - v.genericDescriptor() - ); - }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('current is undefined', function (st) { - var propertyKey = 'howdy'; - - st.test('generic descriptor', function (s2t) { - var generic = v.genericDescriptor(); - generic['[[Enumerable]]'] = true; - var O = {}; - ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, generic); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, generic), - false, - 'when extensible is false, nothing happens' - ); - s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false'); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, generic), - true, - 'operation is successful' - ); - var expected = {}; - expected[propertyKey] = undefined; - s2t.deepEqual(O, expected, 'generic descriptor has been defined as an own data property'); - s2t.end(); - }); - - st.test('data descriptor', function (s2t) { - var data = v.dataDescriptor(); - data['[[Enumerable]]'] = true; - - var O = {}; - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, data), - true, - 'noop when O is undefined' - ); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, data), - false, - 'when extensible is false, nothing happens' - ); - s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false'); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, data), - true, - 'operation is successful' - ); - var expected = {}; - expected[propertyKey] = data['[[Value]]']; - s2t.deepEqual(O, expected, 'data descriptor has been defined as an own data property'); - s2t.end(); - }); - - st.test('accessor descriptor', { skip: !defineProperty.oDP }, function (s2t) { - var count = 0; - var accessor = v.accessorDescriptor(); - accessor['[[Enumerable]]'] = true; - accessor['[[Get]]'] = function () { - count += 1; - return count; - }; - - var O = {}; - ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, accessor); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, accessor), - false, - 'when extensible is false, nothing happens' - ); - s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false'); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, accessor), - true, - 'operation is successful' - ); - var expected = {}; - expected[propertyKey] = accessor['[[Get]]']() + 1; - s2t.deepEqual(O, expected, 'accessor descriptor has been defined as an own accessor property'); - s2t.end(); - }); - - st.end(); - }); - - t.test('every field in Desc is absent', { skip: 'it is unclear if having no fields qualifies Desc to be a Property Descriptor' }); - - forEach([v.dataDescriptor, v.accessorDescriptor, v.mutatorDescriptor], function (getDescriptor) { - t.equal( - ES.ValidateAndApplyPropertyDescriptor(undefined, 'property key', true, getDescriptor(), getDescriptor()), - true, - 'when Desc and current are the same, early return true' - ); - }); - - t.test('current is nonconfigurable', function (st) { - // note: these must not be generic descriptors, or else the algorithm returns an early true - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable(v.dataDescriptor()), - v.descriptors.nonConfigurable(v.dataDescriptor()) - ), - false, - 'false if Desc is configurable' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.enumerable(v.dataDescriptor()), - v.descriptors.nonEnumerable(v.dataDescriptor()) - ), - false, - 'false if Desc is Enumerable and current is not' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.nonEnumerable(v.dataDescriptor()), - v.descriptors.enumerable(v.dataDescriptor()) - ), - false, - 'false if Desc is not Enumerable and current is' - ); - - var descLackingEnumerable = v.accessorDescriptor(); - delete descLackingEnumerable['[[Enumerable]]']; - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - descLackingEnumerable, - v.descriptors.enumerable(v.accessorDescriptor()) - ), - true, - 'not false if Desc lacks Enumerable' - ); - - st.end(); - }); - - t.test('Desc and current: one is a data descriptor, one is not', { skip: !defineProperty || !getOwnPropertyDescriptor }, function (st) { - // note: Desc must be configurable if current is nonconfigurable, to hit this branch - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable(v.accessorDescriptor()), - v.descriptors.nonConfigurable(v.dataDescriptor()) - ), - false, - 'false if current (data) is nonconfigurable' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable(v.dataDescriptor()), - v.descriptors.nonConfigurable(v.accessorDescriptor()) - ), - false, - 'false if current (not data) is nonconfigurable' - ); - - // one is data and one is not, - // // if current is data, convert to accessor - // // else convert to data - - var startsWithData = { - 'property key': 42 - }; - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - startsWithData, - 'property key', - true, - v.descriptors.enumerable(v.descriptors.configurable(v.accessorDescriptor())), - v.descriptors.enumerable(v.descriptors.configurable(v.dataDescriptor())) - ), - true, - 'operation is successful: current is data, Desc is accessor' - ); - var shouldBeAccessor = getOwnPropertyDescriptor(startsWithData, 'property key'); - st.equal(typeof shouldBeAccessor.get, 'function', 'has a getter'); - - var key = 'property key'; - var startsWithAccessor = {}; - defineProperty(startsWithAccessor, key, { - configurable: true, - enumerable: true, - get: function get() { return 42; } - }); - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - startsWithAccessor, - key, - true, - v.descriptors.enumerable(v.descriptors.configurable(v.dataDescriptor())), - v.descriptors.enumerable(v.descriptors.configurable(v.accessorDescriptor(42))) - ), - true, - 'operation is successful: current is accessor, Desc is data' - ); - var shouldBeData = getOwnPropertyDescriptor(startsWithAccessor, 'property key'); - st.deepEqual(shouldBeData, { configurable: true, enumerable: true, value: 42, writable: false }, 'is a data property'); - - st.end(); - }); - - t.test('Desc and current are both data descriptors', function (st) { - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.writable(v.dataDescriptor()), - v.descriptors.nonWritable(v.descriptors.nonConfigurable(v.dataDescriptor())) - ), - false, - 'false if frozen current and writable Desc' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable({ '[[Value]]': 42 }), - v.descriptors.nonWritable({ '[[Value]]': 7 }) - ), - false, - 'false if nonwritable current has a different value than Desc' - ); - - st.end(); - }); - - t.test('current is nonconfigurable; Desc and current are both accessor descriptors', function (st) { - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.mutatorDescriptor(), - v.descriptors.nonConfigurable(v.mutatorDescriptor()) - ), - false, - 'false if both Sets are not equal' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.accessorDescriptor(), - v.descriptors.nonConfigurable(v.accessorDescriptor()) - ), - false, - 'false if both Gets are not equal' - ); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryGetOwnProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryGetOwnProperty(primitive, ''); }, - TypeError, - 'O: ' + debug(primitive) + ' is not an Object' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.OrdinaryGetOwnProperty({}, nonPropertyKey); }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.OrdinaryGetOwnProperty({}, 'not in the object'), undefined, 'missing property yields undefined'); - t.equal(ES.OrdinaryGetOwnProperty({}, 'toString'), undefined, 'inherited non-own property yields undefined'); - - t.deepEqual( - ES.OrdinaryGetOwnProperty({ a: 1 }, 'a'), - ES.ToPropertyDescriptor({ - configurable: true, - enumerable: true, - value: 1, - writable: true - }), - 'own assigned data property yields expected descriptor' - ); - - t.deepEqual( - ES.OrdinaryGetOwnProperty(/a/, 'lastIndex'), - ES.ToPropertyDescriptor({ - configurable: false, - enumerable: false, - value: 0, - writable: true - }), - 'regex lastIndex yields expected descriptor' - ); - - t.deepEqual( - ES.OrdinaryGetOwnProperty([], 'length'), - ES.ToPropertyDescriptor({ - configurable: false, - enumerable: false, - value: 0, - writable: true - }), - 'array length yields expected descriptor' - ); - - t.deepEqual( - ES.OrdinaryGetOwnProperty(Object.prototype, 'toString'), - ES.ToPropertyDescriptor({ - configurable: true, - enumerable: false, - value: Object.prototype.toString, - writable: true - }), - 'own non-enumerable data property yields expected descriptor' - ); - - t.test('ES5+', { skip: !defineProperty.oDP }, function (st) { - var O = {}; - defineProperty(O, 'foo', { - configurable: false, - enumerable: false, - value: O, - writable: true - }); - - st.deepEqual( - ES.OrdinaryGetOwnProperty(O, 'foo'), - ES.ToPropertyDescriptor({ - configurable: false, - enumerable: false, - value: O, - writable: true - }), - 'defined own property yields expected descriptor' - ); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryDefineOwnProperty', { skip: !getOwnPropertyDescriptor }, function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CopyDataProperties(primitive, {}, []); }, - TypeError, - 'O: ' + debug(primitive) + ' is not an Object' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.OrdinaryDefineOwnProperty({}, nonPropertyKey, v.genericDescriptor()); }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryDefineOwnProperty(primitive, '', v.genericDescriptor()); }, - TypeError, - 'Desc: ' + debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var O = {}; - var P = 'property key'; - var Desc = v.accessorDescriptor(); - t.equal( - ES.OrdinaryDefineOwnProperty(O, P, Desc), - true, - 'operation is successful' - ); - t.deepEqual( - getOwnPropertyDescriptor(O, P), - ES.FromPropertyDescriptor(ES.CompletePropertyDescriptor(Desc)), - 'expected property descriptor is defined' - ); - - t.end(); - }); - - test('ArrayCreate', function (t) { - forEach(v.nonIntegerNumbers.concat([-1]), function (nonIntegerNumber) { - t['throws']( - function () { ES.ArrayCreate(nonIntegerNumber); }, - TypeError, - 'length must be an integer number >= 0' - ); - }); - - t['throws']( - function () { ES.ArrayCreate(Math.pow(2, 32)); }, - RangeError, - 'length must be < 2**32' - ); - - t.deepEqual(ES.ArrayCreate(-0), [], 'length of -0 creates an empty array'); - t.deepEqual(ES.ArrayCreate(0), [], 'length of +0 creates an empty array'); - // eslint-disable-next-line no-sparse-arrays, comma-spacing - t.deepEqual(ES.ArrayCreate(1), [,], 'length of 1 creates a sparse array of length 1'); - // eslint-disable-next-line no-sparse-arrays, comma-spacing - t.deepEqual(ES.ArrayCreate(2), [,,], 'length of 2 creates a sparse array of length 2'); - - t.test('proto argument', { skip: !$setProto }, function (st) { - var fakeProto = { - push: { toString: function () { return 'not array push'; } } - }; - st.equal(ES.ArrayCreate(0, fakeProto).push, fakeProto.push, 'passing the proto argument works'); - st.end(); - }); - - t.end(); - }); - - test('ArraySetLength', function (t) { - forEach(v.primitives.concat(v.objects), function (nonArray) { - t['throws']( - function () { ES.ArraySetLength(nonArray, 0); }, - TypeError, - 'A: ' + debug(nonArray) + ' is not an Array' - ); - }); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.ArraySetLength([], primitive); }, - TypeError, - 'Desc: ' + debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.test('making length nonwritable', { skip: !getOwnPropertyDescriptor }, function (st) { - var a = []; - ES.ArraySetLength(a, { '[[Writable]]': false }); - st.deepEqual( - getOwnPropertyDescriptor(a, 'length'), - { - configurable: false, - enumerable: false, - value: 0, - writable: false - }, - 'without a value, length becomes nonwritable' - ); - st.end(); - }); - - var arr = []; - ES.ArraySetLength(arr, { '[[Value]]': 7 }); - t.equal(arr.length, 7, 'array now has a length of 7'); - - t.end(); - }); - - test('CreateHTML', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.CreateHTML('', nonString, '', ''); }, - TypeError, - 'tag: ' + debug(nonString) + ' is not a String' - ); - t['throws']( - function () { ES.CreateHTML('', '', nonString, ''); }, - TypeError, - 'attribute: ' + debug(nonString) + ' is not a String' - ); - }); - - t.equal( - ES.CreateHTML( - { toString: function () { return 'the string'; } }, - 'some HTML tag!', - '' - ), - 'the string', - 'works with an empty string attribute value' - ); - - t.equal( - ES.CreateHTML( - { toString: function () { return 'the string'; } }, - 'some HTML tag!', - 'attr', - 'value "with quotes"' - ), - 'the string', - 'works with an attribute, and a value with quotes' - ); - - t.end(); - }); - - test('GetOwnPropertyKeys', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.GetOwnPropertyKeys(primitive, 'String'); }, - TypeError, - 'O: ' + debug(primitive) + ' is not an Object' - ); - }); - - t['throws']( - function () { ES.GetOwnPropertyKeys({}, 'not string or symbol'); }, - TypeError, - 'Type: must be "String" or "Symbol"' - ); - - t.test('Symbols', { skip: !v.hasSymbols }, function (st) { - var O = { a: 1 }; - O[Symbol.iterator] = true; - var s = Symbol('test'); - defineProperty(O, s, { enumerable: false, value: true }); - - st.deepEqual( - ES.GetOwnPropertyKeys(O, 'Symbol'), - [Symbol.iterator, s], - 'works with Symbols, enumerable or not' - ); - - st.end(); - }); - - t.test('non-enumerable names', { skip: !defineProperty.oDP }, function (st) { - var O = { a: 1 }; - defineProperty(O, 'b', { enumerable: false, value: 2 }); - if (v.hasSymbols) { - O[Symbol.iterator] = true; - } - - st.deepEqual( - ES.GetOwnPropertyKeys(O, 'String').sort(), - ['a', 'b'].sort(), - 'works with Strings, enumerable or not' - ); - - st.end(); - }); - - t.deepEqual( - ES.GetOwnPropertyKeys({ a: 1, b: 2 }, 'String').sort(), - ['a', 'b'].sort(), - 'works with enumerable keys' - ); - - t.end(); - }); - - test('SymbolDescriptiveString', function (t) { - forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) { - t['throws']( - function () { ES.SymbolDescriptiveString(nonSymbol); }, - TypeError, - debug(nonSymbol) + ' is not a Symbol' - ); - }); - - t.test('Symbols', { skip: !v.hasSymbols }, function (st) { - st.equal(ES.SymbolDescriptiveString(Symbol()), 'Symbol()', 'undefined description'); - st.equal(ES.SymbolDescriptiveString(Symbol('')), 'Symbol()', 'empty string description'); - st.equal(ES.SymbolDescriptiveString(Symbol.iterator), 'Symbol(Symbol.iterator)', 'well-known symbol'); - st.equal(ES.SymbolDescriptiveString(Symbol('foo')), 'Symbol(foo)', 'string description'); - - st.end(); - }); - - t.end(); - }); - - test('GetSubstitution', { skip: skips && skips.GetSubstitution }, function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.GetSubstitution(nonString, '', 0, [], ''); }, - TypeError, - '`matched`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', nonString, 0, [], ''); }, - TypeError, - '`str`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', '', 0, [], nonString); }, - TypeError, - '`replacement`: ' + debug(nonString) + ' is not a String' - ); - - if (canDistinguishSparseFromUndefined || typeof nonString !== 'undefined') { - t['throws']( - function () { ES.GetSubstitution('', '', 0, [nonString], ''); }, - TypeError, - '`captures`: ' + debug([nonString]) + ' is not an Array of strings' - ); - } - }); - - forEach(v.nonIntegerNumbers.concat([-1, -42, -Infinity]), function (nonNonNegativeInteger) { - t['throws']( - function () { ES.GetSubstitution('', '', nonNonNegativeInteger, [], ''); }, - TypeError, - '`position`: ' + debug(nonNonNegativeInteger) + ' is not a non-negative integer' - ); - }); - - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.GetSubstitution('', '', 0, nonArray, ''); }, - TypeError, - '`captures`: ' + debug(nonArray) + ' is not an Array' - ); - }); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], '123'), - '123', - 'returns the substitution' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '$$2$'), - '$2$', - 'supports $$, and trailing $' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$&<'), - '>abcdef<', - 'supports $&' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$`<'), - '><', - 'supports $` at position 0' - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], '>$`<'), - '>ab<', - 'supports $` at position > 0' - ); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 7, [], ">$'<"), - '><', - "supports $' at a position where there's less than `matched.length` chars left" - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], ">$'<"), - '>ghi<', - "supports $' at a position where there's more than `matched.length` chars left" - ); - - for (var i = 0; i < 100; i += 1) { - var captures = []; - captures[i] = 'test'; - if (i > 0) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$' + i + '<'), - '>undefined<', - 'supports $' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$' + i), - '>undefined', - 'supports $' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$' + i + '<'), - '><', - 'supports $' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$' + i), - '>', - 'supports $' + i + ' at the end of the replacement, with a capture at that index' - ); - } - if (i < 10) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$0' + i + '<'), - i === 0 ? '><' : '>undefined<', - 'supports $0' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$0' + i), - i === 0 ? '>' : '>undefined', - 'supports $0' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$0' + i + '<'), - '><', - 'supports $0' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$0' + i), - '>', - 'supports $0' + i + ' at the end of the replacement, with a capture at that index' - ); - } - } - - t.end(); - }); - - test('SecFromTime', function (t) { - var now = new Date(); - t.equal(ES.SecFromTime(now.getTime()), now.getUTCSeconds(), 'second from Date timestamp matches getUTCSeconds'); - t.end(); - }); - - test('MinFromTime', function (t) { - var now = new Date(); - t.equal(ES.MinFromTime(now.getTime()), now.getUTCMinutes(), 'minute from Date timestamp matches getUTCMinutes'); - t.end(); - }); - - test('HourFromTime', function (t) { - var now = new Date(); - t.equal(ES.HourFromTime(now.getTime()), now.getUTCHours(), 'hour from Date timestamp matches getUTCHours'); - t.end(); - }); - - test('msFromTime', function (t) { - var now = new Date(); - t.equal(ES.msFromTime(now.getTime()), now.getUTCMilliseconds(), 'ms from Date timestamp matches getUTCMilliseconds'); - t.end(); - }); - - var msPerSecond = 1e3; - var msPerMinute = 60 * msPerSecond; - var msPerHour = 60 * msPerMinute; - var msPerDay = 24 * msPerHour; - - test('Day', function (t) { - var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5); - var add = 2.5; - var later = new Date(time + (add * msPerDay)); - - t.equal(ES.Day(later.getTime()), ES.Day(time) + Math.floor(add), 'adding 2.5 days worth of ms, gives a Day delta of 2'); - t.end(); - }); - - test('TimeWithinDay', function (t) { - var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5); - var add = 2.5; - var later = new Date(time + (add * msPerDay)); - - t.equal(ES.TimeWithinDay(later.getTime()), ES.TimeWithinDay(time) + (0.5 * msPerDay), 'adding 2.5 days worth of ms, gives a TimeWithinDay delta of +0.5'); - t.end(); - }); - - test('DayFromYear', function (t) { - t.equal(ES.DayFromYear(2021) - ES.DayFromYear(2020), 366, '2021 is a leap year, has 366 days'); - t.equal(ES.DayFromYear(2020) - ES.DayFromYear(2019), 365, '2020 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2019) - ES.DayFromYear(2018), 365, '2019 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2018) - ES.DayFromYear(2017), 365, '2018 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2017) - ES.DayFromYear(2016), 366, '2017 is a leap year, has 366 days'); - - t.end(); - }); - - test('TimeFromYear', function (t) { - for (var i = 1900; i < 2100; i += 1) { - t.equal(ES.TimeFromYear(i), Date.UTC(i, 0, 1), 'TimeFromYear matches a Date object’s year: ' + i); - } - t.end(); - }); - - test('YearFromTime', function (t) { - for (var i = 1900; i < 2100; i += 1) { - t.equal(ES.YearFromTime(Date.UTC(i, 0, 1)), i, 'YearFromTime matches a Date object’s year on 1/1: ' + i); - t.equal(ES.YearFromTime(Date.UTC(i, 10, 1)), i, 'YearFromTime matches a Date object’s year on 10/1: ' + i); - } - t.end(); - }); - - test('WeekDay', function (t) { - var now = new Date(); - var today = now.getUTCDay(); - for (var i = 0; i < 7; i += 1) { - var weekDay = ES.WeekDay(now.getTime() + (i * msPerDay)); - t.equal(weekDay, (today + i) % 7, i + ' days after today (' + today + '), WeekDay is ' + weekDay); - } - t.end(); - }); - - test('DaysInYear', function (t) { - t.equal(ES.DaysInYear(2021), 365, '2021 is not a leap year'); - t.equal(ES.DaysInYear(2020), 366, '2020 is a leap year'); - t.equal(ES.DaysInYear(2019), 365, '2019 is not a leap year'); - t.equal(ES.DaysInYear(2018), 365, '2018 is not a leap year'); - t.equal(ES.DaysInYear(2017), 365, '2017 is not a leap year'); - t.equal(ES.DaysInYear(2016), 366, '2016 is a leap year'); - - t.end(); - }); - - test('InLeapYear', function (t) { - t.equal(ES.InLeapYear(Date.UTC(2021, 0, 1)), 0, '2021 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2020, 0, 1)), 1, '2020 is a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2019, 0, 1)), 0, '2019 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2018, 0, 1)), 0, '2018 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2017, 0, 1)), 0, '2017 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2016, 0, 1)), 1, '2016 is a leap year'); - - t.end(); - }); - - test('DayWithinYear', function (t) { - t.equal(ES.DayWithinYear(Date.UTC(2019, 0, 1)), 0, '1/1 is the 1st day'); - t.equal(ES.DayWithinYear(Date.UTC(2019, 11, 31)), 364, '12/31 is the 365th day in a non leap year'); - t.equal(ES.DayWithinYear(Date.UTC(2016, 11, 31)), 365, '12/31 is the 366th day in a leap year'); - - t.end(); - }); - - test('MonthFromTime', function (t) { - t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 1)), 0, 'non-leap: 1/1 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 31)), 0, 'non-leap: 1/31 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 1)), 1, 'non-leap: 2/1 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 28)), 1, 'non-leap: 2/28 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 29)), 2, 'non-leap: 2/29 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 1)), 2, 'non-leap: 3/1 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 31)), 2, 'non-leap: 3/31 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 1)), 3, 'non-leap: 4/1 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 30)), 3, 'non-leap: 4/30 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 1)), 4, 'non-leap: 5/1 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 31)), 4, 'non-leap: 5/31 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 1)), 5, 'non-leap: 6/1 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 30)), 5, 'non-leap: 6/30 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 1)), 6, 'non-leap: 7/1 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 31)), 6, 'non-leap: 7/31 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 1)), 7, 'non-leap: 8/1 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 30)), 7, 'non-leap: 8/30 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 1)), 8, 'non-leap: 9/1 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 30)), 8, 'non-leap: 9/30 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 1)), 9, 'non-leap: 10/1 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 31)), 9, 'non-leap: 10/31 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 1)), 10, 'non-leap: 11/1 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 30)), 10, 'non-leap: 11/30 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 1)), 11, 'non-leap: 12/1 gives December'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 31)), 11, 'non-leap: 12/31 gives December'); - - t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 1)), 0, 'leap: 1/1 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 31)), 0, 'leap: 1/31 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 1)), 1, 'leap: 2/1 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 28)), 1, 'leap: 2/28 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 29)), 1, 'leap: 2/29 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 1)), 2, 'leap: 3/1 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 31)), 2, 'leap: 3/31 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 1)), 3, 'leap: 4/1 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 30)), 3, 'leap: 4/30 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 1)), 4, 'leap: 5/1 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 31)), 4, 'leap: 5/31 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 1)), 5, 'leap: 6/1 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 30)), 5, 'leap: 6/30 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 1)), 6, 'leap: 7/1 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 31)), 6, 'leap: 7/31 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 1)), 7, 'leap: 8/1 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 30)), 7, 'leap: 8/30 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 1)), 8, 'leap: 9/1 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 30)), 8, 'leap: 9/30 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 1)), 9, 'leap: 10/1 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 31)), 9, 'leap: 10/31 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 1)), 10, 'leap: 11/1 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 30)), 10, 'leap: 11/30 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 1)), 11, 'leap: 12/1 gives December'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 31)), 11, 'leap: 12/31 gives December'); - t.end(); - }); - - test('DateFromTime', function (t) { - var i; - for (i = 1; i <= 28; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 1, i)), i, '2019.02.' + i + ' is date ' + i); - } - for (i = 1; i <= 29; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2016, 1, i)), i, '2016.02.' + i + ' is date ' + i); - } - for (i = 1; i <= 30; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 8, i)), i, '2019.09.' + i + ' is date ' + i); - } - for (i = 1; i <= 31; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 9, i)), i, '2019.10.' + i + ' is date ' + i); - } - t.end(); - }); - - test('MakeDay', function (t) { - var day2015 = 16687; - t.equal(ES.MakeDay(2015, 8, 9), day2015, '2015.09.09 is day 16687'); - var day2016 = day2015 + 366; // 2016 is a leap year - t.equal(ES.MakeDay(2016, 8, 9), day2016, '2015.09.09 is day 17053'); - var day2017 = day2016 + 365; - t.equal(ES.MakeDay(2017, 8, 9), day2017, '2017.09.09 is day 17418'); - var day2018 = day2017 + 365; - t.equal(ES.MakeDay(2018, 8, 9), day2018, '2018.09.09 is day 17783'); - var day2019 = day2018 + 365; - t.equal(ES.MakeDay(2019, 8, 9), day2019, '2019.09.09 is day 18148'); - t.end(); - }); - - test('MakeDate', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.ok(is(ES.MakeDate(nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `day`'); - t.ok(is(ES.MakeDate(0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`'); - }); - t.equal(ES.MakeDate(0, 0), 0, 'zero day and zero time is zero date'); - t.equal(ES.MakeDate(0, 123), 123, 'zero day and nonzero time is a date of the "time"'); - t.equal(ES.MakeDate(1, 0), msPerDay, 'day of 1 and zero time is a date of "ms per day"'); - t.equal(ES.MakeDate(3, 0), 3 * msPerDay, 'day of 3 and zero time is a date of thrice "ms per day"'); - t.equal(ES.MakeDate(1, 123), msPerDay + 123, 'day of 1 and nonzero time is a date of "ms per day" plus the "time"'); - t.equal(ES.MakeDate(3, 123), (3 * msPerDay) + 123, 'day of 3 and nonzero time is a date of thrice "ms per day" plus the "time"'); - - t.end(); - }); - - test('MakeTime', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.ok(is(ES.MakeTime(nonFiniteNumber, 0, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `hour`'); - t.ok(is(ES.MakeTime(0, nonFiniteNumber, 0, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `min`'); - t.ok(is(ES.MakeTime(0, 0, nonFiniteNumber, 0), NaN), debug(nonFiniteNumber) + ' is not a finite `sec`'); - t.ok(is(ES.MakeTime(0, 0, 0, nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `ms`'); - }); - - t.equal( - ES.MakeTime(1.2, 2.3, 3.4, 4.5), - (1 * msPerHour) + (2 * msPerMinute) + (3 * msPerSecond) + 4, - 'all numbers are converted to integer, multiplied by the right number of ms, and summed' - ); - - t.end(); - }); - - test('TimeClip', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.ok(is(ES.TimeClip(nonFiniteNumber), NaN), debug(nonFiniteNumber) + ' is not a finite `time`'); - }); - t.ok(is(ES.TimeClip(8.64e15 + 1), NaN), '8.64e15 is the largest magnitude considered "finite"'); - t.ok(is(ES.TimeClip(-8.64e15 - 1), NaN), '-8.64e15 is the largest magnitude considered "finite"'); - - forEach(v.zeroes.concat([-10, 10, +new Date()]), function (time) { - t.looseEqual(ES.TimeClip(time), time, debug(time) + ' is a time of ' + debug(time)); - }); - - t.end(); - }); - - test('modulo', function (t) { - t.equal(3 % 2, 1, '+3 % 2 is +1'); - t.equal(ES.modulo(3, 2), 1, '+3 mod 2 is +1'); - - t.equal(-3 % 2, -1, '-3 % 2 is -1'); - t.equal(ES.modulo(-3, 2), 1, '-3 mod 2 is +1'); - t.end(); - }); - - test('ToDateString', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.ToDateString(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.ToDateString(NaN), 'Invalid Date', 'NaN becomes "Invalid Date"'); - var now = +new Date(); - t.equal(ES.ToDateString(now), Date(now), 'any timestamp becomes `Date(timestamp)`'); - t.end(); - }); - - test('CreateListFromArrayLike', function (t) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { ES.CreateListFromArrayLike(nonObject); }, - TypeError, - debug(nonObject) + ' is not an Object' - ); - }); - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.CreateListFromArrayLike({}, nonArray); }, - TypeError, - debug(nonArray) + ' is not an Array' - ); - }); - - t.deepEqual( - ES.CreateListFromArrayLike({ length: 2, 0: 'a', 1: 'b', 2: 'c' }), - ['a', 'b'], - 'arraylike stops at the length' - ); - - t.end(); - }); - - test('GetPrototypeFromConstructor', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.GetPrototypeFromConstructor(nonFunction, '%Array%'); }, - TypeError, - debug(nonFunction) + ' is not a constructor' - ); - }); - - forEach(arrowFns, function (arrowFn) { - t['throws']( - function () { ES.GetPrototypeFromConstructor(arrowFn, '%Array%'); }, - TypeError, - debug(arrowFn) + ' is not a constructor' - ); - }); - - var f = function () {}; - t.equal( - ES.GetPrototypeFromConstructor(f, '%Array.prototype%'), - f.prototype, - 'function with normal `prototype` property returns it' - ); - forEach([true, 'foo', 42], function (truthyPrimitive) { - f.prototype = truthyPrimitive; - t.equal( - ES.GetPrototypeFromConstructor(f, '%Array.prototype%'), - Array.prototype, - 'function with non-object `prototype` property (' + debug(truthyPrimitive) + ') returns default intrinsic' - ); - }); - - t.end(); - }); - - var getNamelessFunction = function () { - var f = Object(function () {}); - try { - delete f.name; - } catch (e) { /**/ } - return f; - }; - - test('SetFunctionName', function (t) { - t.test('non-extensible function', { skip: !Object.preventExtensions }, function (st) { - var f = getNamelessFunction(); - Object.preventExtensions(f); - st['throws']( - function () { ES.SetFunctionName(f, ''); }, - TypeError, - 'throws on a non-extensible function' - ); - st.end(); - }); - - t.test('has an own name property', { skip: !functionsHaveNames }, function (st) { - st['throws']( - function () { ES.SetFunctionName(function g() {}, ''); }, - TypeError, - 'throws if function has an own `name` property' - ); - st.end(); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.SetFunctionName(getNamelessFunction(), nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Symbol or String' - ); - }); - - t.test('symbols', { skip: !v.hasSymbols || has(getNamelessFunction(), 'name') }, function (st) { - var pairs = [ - [Symbol(), ''], - [Symbol(undefined), ''], - [Symbol(null), '[null]'], - [Symbol(''), getInferredName ? '[]' : ''], - [Symbol.iterator, '[Symbol.iterator]'], - [Symbol('foo'), '[foo]'] - ]; - forEach(pairs, function (pair) { - var sym = pair[0]; - var desc = pair[1]; - var f = getNamelessFunction(); - ES.SetFunctionName(f, sym); - st.equal(f.name, desc, debug(sym) + ' yields a name of ' + debug(desc)); - }); - - st.end(); - }); - - var f = getNamelessFunction(); - t.test('when names are configurable', { skip: !functionsHaveConfigurableNames || has(f, 'name') }, function (st) { - // without prefix - st.notEqual(f.name, 'foo', 'precondition'); - ES.SetFunctionName(f, 'foo'); - st.equal(f.name, 'foo', 'function name is set without a prefix'); - - // with prefix - var g = getNamelessFunction(); - st.notEqual(g.name, 'pre- foo', 'precondition'); - ES.SetFunctionName(g, 'foo', 'pre-'); - st.equal(g.name, 'pre- foo', 'function name is set with a prefix'); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryCreateFromConstructor', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.OrdinaryCreateFromConstructor(nonFunction, '%Array.prototype%'); }, - TypeError, - debug(nonFunction) + ' is not a constructor' - ); - }); - - forEach(arrowFns, function (arrowFn) { - t['throws']( - function () { ES.OrdinaryCreateFromConstructor(arrowFn, '%Array.prototype%'); }, - TypeError, - debug(arrowFn) + ' is not a constructor' - ); - }); - - t.test('proto arg', function (st) { - var Parent = function Parent() {}; - Parent.prototype.foo = {}; - var child = ES.OrdinaryCreateFromConstructor(Parent, '%Array.prototype%'); - st.equal(child instanceof Parent, true, 'child is instanceof Parent'); - st.equal(child instanceof Array, false, 'child is not instanceof Array'); - st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype'); - - st.end(); - }); - - t.test('internal slots arg', function (st) { - st.doesNotThrow( - function () { ES.OrdinaryCreateFromConstructor(function () {}, '%Array.prototype%', []); }, - 'an empty slot list is valid' - ); - - st['throws']( - function () { ES.OrdinaryCreateFromConstructor(function () {}, '%Array.prototype%', ['a']); }, - SyntaxError, - 'internal slots are not supported' - ); - - st.end(); - }); - - t.end(); - }); -}; - -var es2016 = function ES2016(ES, ops, expectedMissing, skips) { - es2015(ES, ops, expectedMissing, skips); - - test('SameValueNonNumber', { skip: skips && skips.SameValueNonNumber }, function (t) { - var willThrow = [ - [3, 4], - [NaN, 4], - [4, ''], - ['abc', true], - [{}, false] - ]; - forEach(willThrow, function (nums) { - t['throws'](function () { return ES.SameValueNonNumber.apply(ES, nums); }, TypeError, 'value must be same type and non-number'); - }); - - forEach(v.objects.concat(v.nonNumberPrimitives), function (val) { - t.equal(val === val, ES.SameValueNonNumber(val, val), debug(val) + ' is SameValueNonNumber to itself'); - }); - - t.end(); - }); - - test('IterableToArrayLike', { skip: skips && skips.IterableToArrayLike }, function (t) { - t.test('custom iterables', { skip: !v.hasSymbols }, function (st) { - var O = {}; - O[Symbol.iterator] = function () { - var i = -1; - return { - next: function () { - i += 1; - return { - done: i >= 5, - value: i - }; - } - }; - }; - st.deepEqual( - ES.IterableToArrayLike(O), - [0, 1, 2, 3, 4], - 'Symbol.iterator method is called and values collected' - ); - - st.end(); - }); - - t.deepEqual(ES.IterableToArrayLike('abc'), ['a', 'b', 'c'], 'a string of code units spreads'); - t.deepEqual(ES.IterableToArrayLike('💩'), ['💩'], 'a string of code points spreads'); - t.deepEqual(ES.IterableToArrayLike('a💩c'), ['a', '💩', 'c'], 'a string of code points and units spreads'); - - var arr = [1, 2, 3]; - t.deepEqual(ES.IterableToArrayLike(arr), arr, 'an array becomes a similar array'); - t.notEqual(ES.IterableToArrayLike(arr), arr, 'an array becomes a different, but similar, array'); - - var O = {}; - t.equal(ES.IterableToArrayLike(O), O, 'a non-iterable non-array non-string object is returned directly'); - - t.end(); - }); - - test('OrdinaryGetPrototypeOf', function (t) { - t.test('values', { skip: !$getProto }, function (st) { - st.equal(ES.OrdinaryGetPrototypeOf([]), Array.prototype, 'array [[Prototype]] is Array.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf({}), Object.prototype, 'object [[Prototype]] is Object.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(/a/g), RegExp.prototype, 'regex [[Prototype]] is RegExp.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(Object('')), String.prototype, 'boxed string [[Prototype]] is String.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(Object(42)), Number.prototype, 'boxed number [[Prototype]] is Number.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(Object(true)), Boolean.prototype, 'boxed boolean [[Prototype]] is Boolean.prototype'); - if (v.hasSymbols) { - st.equal(ES.OrdinaryGetPrototypeOf(Object(Symbol.iterator)), Symbol.prototype, 'boxed symbol [[Prototype]] is Symbol.prototype'); - } - st.end(); - }); - - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryGetPrototypeOf(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - t.end(); - }); - - test('OrdinarySetPrototypeOf', { skip: !$getProto || !$setProto }, function (t) { - var a = []; - var proto = {}; - - t.equal(ES.OrdinaryGetPrototypeOf(a), Array.prototype, 'precondition'); - t.equal(ES.OrdinarySetPrototypeOf(a, proto), true, 'setting prototype is successful'); - t.equal(ES.OrdinaryGetPrototypeOf(a), proto, 'postcondition'); - - t.end(); - }); - - test('UTF16Encoding', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.UTF16Encoding(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - t['throws']( - function () { ES.UTF16Encoding(-1); }, - TypeError, - '-1 is < 0' - ); - - t['throws']( - function () { ES.UTF16Encoding(0x10FFFF + 1); }, - TypeError, - '0x10FFFF + 1 is > 0x10FFFF' - ); - - t.equal(ES.UTF16Encoding(0xd83d), leadingPoo.charCodeAt(0), '0xD83D is the first half of ' + wholePoo); - t.equal(ES.UTF16Encoding(0xdca9), trailingPoo.charCodeAt(0), '0xD83D is the last half of ' + wholePoo); - - t.end(); - }); - - test('QuoteJSONString', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.QuoteJSONString(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - t.equal(ES.QuoteJSONString(''), '""', '"" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('a'), '"a"', '"a" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('"'), '"\\""', '"\\"" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\b'), '"\\b"', '"\\b" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\t'), '"\\t"', '"\\t" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\n'), '"\\n"', '"\\n" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\f'), '"\\f"', '"\\f" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\r'), '"\\r"', '"\\r" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\\'), '"\\\\"', '"\\\\" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\\'), '"\\\\"', '"\\\\" gets properly JSON-quoted'); - - t.end(); - }); -}; - -var es2017 = function ES2017(ES, ops, expectedMissing, skips) { - es2016(ES, ops, expectedMissing, assign({}, skips, { - EnumerableOwnNames: true, - IterableToArrayLike: true - })); - - test('ToIndex', function (t) { - t.ok(is(ES.ToIndex(), 0), 'no value gives 0'); - t.ok(is(ES.ToIndex(undefined), 0), 'undefined value gives 0'); - - t['throws'](function () { ES.ToIndex(-1); }, RangeError, 'negative numbers throw'); - - t['throws'](function () { ES.ToIndex(MAX_SAFE_INTEGER + 1); }, RangeError, 'too large numbers throw'); - - t.equal(ES.ToIndex(3), 3, 'numbers work'); - t.equal(ES.ToIndex(v.valueOfOnlyObject), 4, 'coercible objects are coerced'); - - t.end(); - }); - - test('EnumerableOwnProperties', { skip: skips && skips.EnumerableOwnProperties }, function (t) { - var obj = testEnumerableOwnNames(t, function (O) { - return ES.EnumerableOwnProperties(O, 'key'); - }); - - t.deepEqual( - ES.EnumerableOwnProperties(obj, 'value'), - [obj.own], - 'returns enumerable own values' - ); - - t.deepEqual( - ES.EnumerableOwnProperties(obj, 'key+value'), - [['own', obj.own]], - 'returns enumerable own entries' - ); - - t.end(); - }); - - test('IterableToList', function (t) { - var customIterator = function () { - var i = -1; - return { - next: function () { - i += 1; - return { - done: i >= 5, - value: i - }; - } - }; - }; - - t.deepEqual( - ES.IterableToList({}, customIterator), - [0, 1, 2, 3, 4], - 'iterator method is called and values collected' - ); - - t.test('Symbol support', { skip: !v.hasSymbols }, function (st) { - st.deepEqual(ES.IterableToList('abc', String.prototype[Symbol.iterator]), ['a', 'b', 'c'], 'a string of code units spreads'); - st.deepEqual(ES.IterableToList('☃', String.prototype[Symbol.iterator]), ['☃'], 'a string of code points spreads'); - - var arr = [1, 2, 3]; - st.deepEqual(ES.IterableToList(arr, arr[Symbol.iterator]), arr, 'an array becomes a similar array'); - st.notEqual(ES.IterableToList(arr, arr[Symbol.iterator]), arr, 'an array becomes a different, but similar, array'); - - st.end(); - }); - - t['throws']( - function () { ES.IterableToList({}, void 0); }, - TypeError, - 'non-function iterator method' - ); - - t.end(); - }); - - test('StringGetOwnProperty', function (t) { - forEach(v.nonStrings.concat(v.strings), function (nonBoxedString) { - t['throws']( - function () { ES.StringGetOwnProperty(nonBoxedString, '0'); }, - TypeError, - debug(nonBoxedString) + ' is not a boxed String' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.StringGetOwnProperty(Object(''), nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.StringGetOwnProperty(Object(''), '0'), undefined, 'empty boxed string yields undefined'); - - forEach(v.strings, function (string) { - if (string) { - var S = Object(string); - for (var i = 0; i < string.length; i += 1) { - var descriptor = ES.StringGetOwnProperty(S, String(i)); - t.deepEqual( - descriptor, - { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': string.charAt(i), - '[[Writable]]': false - }, - debug(string) + ': property ' + debug(String(i)) + ': returns expected descriptor' - ); - } - } - }); - - t.end(); - }); -}; - -var es2018 = function ES2018(ES, ops, expectedMissing, skips) { - es2017(ES, ops, expectedMissing, assign({}, skips, { - EnumerableOwnProperties: true, - GetSubstitution: true, - IsPropertyDescriptor: true - })); - - test('thisSymbolValue', function (t) { - forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) { - t['throws']( - function () { ES.thisSymbolValue(nonSymbol); }, - v.hasSymbols ? TypeError : SyntaxError, - debug(nonSymbol) + ' is not a Symbol' - ); - }); - - t.test('no native Symbols', { skip: v.hasSymbols }, function (st) { - forEach(v.objects.concat(v.primitives), function (value) { - st['throws']( - function () { ES.thisSymbolValue(value); }, - SyntaxError, - 'Symbols are not supported' - ); - }); - st.end(); - }); - - t.test('symbol values', { skip: !v.hasSymbols }, function (st) { - forEach(v.symbols, function (symbol) { - st.equal(ES.thisSymbolValue(symbol), symbol, 'Symbol value of ' + debug(symbol) + ' is same symbol'); - - st.equal( - ES.thisSymbolValue(Object(symbol)), - symbol, - 'Symbol value of ' + debug(Object(symbol)) + ' is ' + debug(symbol) - ); - }); - - st.end(); - }); - - t.end(); - }); - - test('IsStringPrefix', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.IsStringPrefix(nonString, 'a'); }, - TypeError, - 'first arg: ' + debug(nonString) + ' is not a string' - ); - t['throws']( - function () { ES.IsStringPrefix('a', nonString); }, - TypeError, - 'second arg: ' + debug(nonString) + ' is not a string' - ); - }); - - forEach(v.strings, function (string) { - t.equal(ES.IsStringPrefix(string, string), true, debug(string) + ' is a prefix of itself'); - - t.equal(ES.IsStringPrefix('', string), true, 'the empty string is a prefix of everything'); - }); - - t.equal(ES.IsStringPrefix('abc', 'abcd'), true, '"abc" is a prefix of "abcd"'); - t.equal(ES.IsStringPrefix('abcd', 'abc'), false, '"abcd" is not a prefix of "abc"'); - - t.equal(ES.IsStringPrefix('a', 'bc'), false, '"a" is not a prefix of "bc"'); - - t.end(); - }); - - test('NumberToString', { skip: skips && skips.NumberToString }, function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.NumberToString(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach(v.numbers, function (number) { - t.equal(ES.NumberToString(number), String(number), debug(number) + ' stringifies to ' + number); - }); - - t.end(); - }); - - test('CopyDataProperties', function (t) { - t.test('first argument: target', function (st) { - forEach(v.primitives, function (primitive) { - st['throws']( - function () { ES.CopyDataProperties(primitive, {}, []); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - st.end(); - }); - - t.test('second argument: source', function (st) { - var frozenTarget = Object.freeze ? Object.freeze({}) : {}; - forEach(v.nullPrimitives, function (nullish) { - st.equal( - ES.CopyDataProperties(frozenTarget, nullish, []), - frozenTarget, - debug(nullish) + ' "source" yields identical, unmodified target' - ); - }); - - forEach(v.nonNullPrimitives, function (objectCoercible) { - var target = {}; - var result = ES.CopyDataProperties(target, objectCoercible, []); - st.equal(result, target, 'result === target'); - st.deepEqual(keys(result), keys(Object(objectCoercible)), 'target ends up with keys of ' + debug(objectCoercible)); - }); - - st.test('enumerable accessor property', { skip: !defineProperty.oDP }, function (s2t) { - var target = {}; - var source = {}; - defineProperty(source, 'a', { - enumerable: true, - get: function () { return 42; } - }); - var result = ES.CopyDataProperties(target, source, []); - s2t.equal(result, target, 'result === target'); - s2t.deepEqual(result, { a: 42 }, 'target ends up with enumerable accessor of source'); - s2t.end(); - }); - - st.end(); - }); - - t.test('third argument: excludedItems', function (st) { - forEach(v.objects.concat(v.primitives), function (nonArray) { - st['throws']( - function () { ES.CopyDataProperties({}, {}, nonArray); }, - TypeError, - debug(nonArray) + ' is not an Array' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - st['throws']( - function () { ES.CopyDataProperties({}, {}, [nonPropertyKey]); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - var result = ES.CopyDataProperties({}, { a: 1, b: 2, c: 3 }, ['b']); - st.deepEqual(keys(result).sort(), ['a', 'c'].sort(), 'excluded string keys are excluded'); - - st.test('excluding symbols', { skip: !v.hasSymbols }, function (s2t) { - var source = {}; - forEach(v.symbols, function (symbol) { - source[symbol] = true; - }); - - var includedSymbols = v.symbols.slice(1); - var excludedSymbols = v.symbols.slice(0, 1); - var target = ES.CopyDataProperties({}, source, excludedSymbols); - - forEach(includedSymbols, function (symbol) { - s2t.equal(has(target, symbol), true, debug(symbol) + ' is included'); - }); - - forEach(excludedSymbols, function (symbol) { - s2t.equal(has(target, symbol), false, debug(symbol) + ' is excluded'); - }); - - s2t.end(); - }); - - st.end(); - }); - - t.end(); - }); - - test('PromiseResolve', function (t) { - t.test('Promises unsupported', { skip: typeof Promise === 'function' }, function (st) { - st['throws']( - function () { ES.PromiseResolve(); }, - SyntaxError, - 'Promises are not supported' - ); - st.end(); - }); - - t.test('Promises supported', { skip: typeof Promise !== 'function' }, function (st) { - st.plan(2); - - var a = {}; - var b = {}; - var fulfilled = Promise.resolve(a); - var rejected = Promise.reject(b); - - ES.PromiseResolve(Promise, fulfilled).then(function (x) { - st.equal(x, a, 'fulfilled promise resolves to fulfilled'); - }); - - ES.PromiseResolve(Promise, rejected)['catch'](function (e) { - st.equal(e, b, 'rejected promise resolves to rejected'); - }); - }); - - t.end(); - }); - - test('EnumerableOwnPropertyNames', { skip: skips && skips.EnumerableOwnPropertyNames }, function (t) { - var obj = testEnumerableOwnNames(t, function (O) { - return ES.EnumerableOwnPropertyNames(O, 'key'); - }); - - t.deepEqual( - ES.EnumerableOwnPropertyNames(obj, 'value'), - [obj.own], - 'returns enumerable own values' - ); - - t.deepEqual( - ES.EnumerableOwnPropertyNames(obj, 'key+value'), - [['own', obj.own]], - 'returns enumerable own entries' - ); - - t.end(); - }); - - test('IsPromise', { skip: typeof Promise !== 'function' }, function (t) { - forEach(v.objects.concat(v.primitives), function (nonPromise) { - t.equal(ES.IsPromise(nonPromise), false, debug(nonPromise) + ' is not a Promise'); - }); - - var thenable = { then: Promise.prototype.then }; - t.equal(ES.IsPromise(thenable), false, 'generic thenable is not a Promise'); - - t.equal(ES.IsPromise(Promise.resolve()), true, 'Promise is a Promise'); - - t.end(); - }); - - test('GetSubstitution (ES2018+)', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.GetSubstitution(nonString, '', 0, [], undefined, ''); }, - TypeError, - '`matched`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', nonString, 0, [], undefined, ''); }, - TypeError, - '`str`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', '', 0, [], undefined, nonString); }, - TypeError, - '`replacement`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', '', 0, [nonString], undefined, ''); }, - TypeError, - '`captures`: ' + debug([nonString]) + ' is not an Array of strings' - ); - }); - - forEach(v.nonIntegerNumbers.concat([-1, -42, -Infinity]), function (nonNonNegativeInteger) { - t['throws']( - function () { ES.GetSubstitution('', '', nonNonNegativeInteger, [], undefined, ''); }, - TypeError, - '`position`: ' + debug(nonNonNegativeInteger) + ' is not a non-negative integer' - ); - }); - - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.GetSubstitution('', '', 0, nonArray, undefined, ''); }, - TypeError, - '`captures`: ' + debug(nonArray) + ' is not an Array' - ); - }); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, '123'), - '123', - 'returns the substitution' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '$$2$'), - '$2$', - 'supports $$, and trailing $' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$&<'), - '>abcdef<', - 'supports $&' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$`<'), - '><', - 'supports $` at position 0' - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, '>$`<'), - '>ab<', - 'supports $` at position > 0' - ); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 7, [], undefined, ">$'<"), - '><', - "supports $' at a position where there's less than `matched.length` chars left" - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, ">$'<"), - '>ghi<', - "supports $' at a position where there's more than `matched.length` chars left" - ); - - for (var i = 0; i < 100; i += 1) { - var captures = []; - captures[i] = 'test'; - if (i > 0) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$' + i + '<'), - '>undefined<', - 'supports $' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$' + i), - '>undefined', - 'supports $' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$' + i + '<'), - '><', - 'supports $' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$' + i), - '>', - 'supports $' + i + ' at the end of the replacement, with a capture at that index' - ); - } - if (i < 10) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$0' + i + '<'), - i === 0 ? '><' : '>undefined<', - 'supports $0' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$0' + i), - i === 0 ? '>' : '>undefined', - 'supports $0' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$0' + i + '<'), - '><', - 'supports $0' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$0' + i), - '>', - 'supports $0' + i + ' at the end of the replacement, with a capture at that index' - ); - } - } - - t.end(); - }); - - test('DateString', function (t) { - forEach(v.nonNumbers.concat(NaN), function (nonNumberOrNaN) { - t['throws']( - function () { ES.DateString(nonNumberOrNaN); }, - TypeError, - debug(nonNumberOrNaN) + ' is not a non-NaN Number' - ); - }); - - t.equal(ES.DateString(Date.UTC(2019, 8, 10, 7, 8, 9)), 'Tue Sep 10 2019'); - t.equal(ES.DateString(Date.UTC(2016, 1, 29, 7, 8, 9)), 'Mon Feb 29 2016'); // leap day - t.end(); - }); - - test('TimeString', function (t) { - forEach(v.nonNumbers.concat(NaN), function (nonNumberOrNaN) { - t['throws']( - function () { ES.TimeString(nonNumberOrNaN); }, - TypeError, - debug(nonNumberOrNaN) + ' is not a non-NaN Number' - ); - }); - - var tv = Date.UTC(2019, 8, 10, 7, 8, 9); - t.equal(ES.TimeString(tv), '07:08:09 GMT'); - t.end(); - }); - - test('SetFunctionLength', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.SetFunctionLength(nonFunction, 0); }, - TypeError, - debug(nonFunction) + ' is not a Function' - ); - }); - - t.test('non-extensible function', { skip: !Object.preventExtensions }, function (st) { - var F = function F() {}; - Object.preventExtensions(F); - - st['throws']( - function () { ES.SetFunctionLength(F, 0); }, - TypeError, - 'non-extensible function throws' - ); - st.end(); - }); - - var HasLength = function HasLength(_) { return _; }; - t.equal(has(HasLength, 'length'), true, 'precondition: `HasLength` has own length'); - t['throws']( - function () { ES.SetFunctionLength(HasLength, 0); }, - TypeError, - 'function with own length throws' - ); - - t.test('no length', { skip: !functionsHaveConfigurableNames }, function (st) { - var HasNoLength = function HasNoLength() {}; - delete HasNoLength.length; - - st.equal(has(HasNoLength, 'length'), false, 'precondition: `HasNoLength` has no own length'); - - forEach(v.nonNumbers, function (nonNumber) { - st['throws']( - function () { ES.SetFunctionLength(HasNoLength, nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach([-1, -42].concat(v.nonIntegerNumbers), function (nonPositiveInteger) { - st['throws']( - function () { ES.SetFunctionLength(HasNoLength, nonPositiveInteger); }, - TypeError, - debug(nonPositiveInteger) + ' is not a positive integer Number' - ); - }); - - st.end(); - }); - - // defines an own configurable non-enum non-write length property - - t.end(); - }); - - test('UnicodeEscape', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.UnicodeEscape(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - t['throws']( - function () { ES.UnicodeEscape(''); }, - TypeError, - 'empty string does not have length 1' - ); - t['throws']( - function () { ES.UnicodeEscape('ab'); }, - TypeError, - '2-char string does not have length 1' - ); - - t.equal(ES.UnicodeEscape(' '), '\\u0020'); - t.equal(ES.UnicodeEscape('a'), '\\u0061'); - t.equal(ES.UnicodeEscape(leadingPoo), '\\ud83d'); - t.equal(ES.UnicodeEscape(trailingPoo), '\\udca9'); - - t.end(); - }); -}; - -var es2019 = function ES2018(ES, ops, expectedMissing, skips) { - es2018(ES, ops, expectedMissing, assign({}, skips, { - })); - - test('AddEntriesFromIterable', function (t) { - t['throws']( - function () { ES.AddEntriesFromIterable({}, undefined, function () {}); }, - TypeError, - 'iterable must not be undefined' - ); - t['throws']( - function () { ES.AddEntriesFromIterable({}, null, function () {}); }, - TypeError, - 'iterable must not be null' - ); - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.AddEntriesFromIterable({}, {}, nonFunction); }, - TypeError, - debug(nonFunction) + ' is not a function' - ); - }); - - t.test('Symbol support', { skip: !v.hasSymbols }, function (st) { - st.plan(4); - - var O = {}; - st.equal(ES.AddEntriesFromIterable(O, [], function () {}), O, 'returns the target'); - - var adder = function (key, value) { - st.equal(this, O, 'adder gets proper receiver'); - st.equal(key, 0, 'k is key'); - st.equal(value, 'a', 'v is value'); - }; - ES.AddEntriesFromIterable(O, ['a'].entries(), adder); - - st.end(); - }); - - t.end(); - }); - - test('FlattenIntoArray', function (t) { - t.test('no mapper function', function (st) { - var testDepth = function testDepth(tt, depth, expected) { - var a = []; - var o = [[1], 2, , [[3]], [], 4, [[[[5]]]]]; // eslint-disable-line no-sparse-arrays - ES.FlattenIntoArray(a, o, o.length, 0, depth); - tt.deepEqual(a, expected, 'depth: ' + depth); - }; - - testDepth(st, 1, [1, 2, [3], 4, [[[5]]]]); - testDepth(st, 2, [1, 2, 3, 4, [[5]]]); - testDepth(st, 3, [1, 2, 3, 4, [5]]); - testDepth(st, 4, [1, 2, 3, 4, 5]); - testDepth(st, Infinity, [1, 2, 3, 4, 5]); - st.end(); - }); - - t.test('mapper function', function (st) { - var testMapper = function testMapper(tt, mapper, expected, thisArg) { - var a = []; - var o = [[1], 2, , [[3]], [], 4, [[[[5]]]]]; // eslint-disable-line no-sparse-arrays - ES.FlattenIntoArray(a, o, o.length, 0, 1, mapper, thisArg); - tt.deepEqual(a, expected); - }; - - var double = function double(x) { - return typeof x === 'number' ? 2 * x : x; - }; - testMapper( - st, - double, - [1, 4, [3], 8, [[[5]]]] - ); - var receiver = hasStrictMode ? 42 : Object(42); - testMapper( - st, - function (x) { return [this, double(x)]; }, - [receiver, [1], receiver, 4, receiver, [[3]], receiver, [], receiver, 8, receiver, [[[[5]]]]], - 42 - ); - st.end(); - }); - - t.end(); - }); - - test('TrimString', function (t) { - t.test('non-object string', function (st) { - forEach(v.nullPrimitives, function (nullish) { - st['throws']( - function () { ES.TrimString(nullish); }, - debug(nullish) + ' is not an Object' - ); - }); - st.end(); - }); - - var string = ' \n abc \n '; - t.equal(ES.TrimString(string, 'start'), string.slice(string.indexOf('a'))); - t.equal(ES.TrimString(string, 'end'), string.slice(0, string.lastIndexOf('c') + 1)); - t.equal(ES.TrimString(string, 'start+end'), string.slice(string.indexOf('a'), string.lastIndexOf('c') + 1)); - - t.end(); - }); -}; - -var es2020 = function ES2019(ES, ops, expectedMissing, skips) { - es2019(ES, ops, expectedMissing, assign({}, skips, { - NumberToString: true, - ObjectCreate: true, - SameValueNonNumber: true - })); - - test('BinaryAnd', function (t) { - t.equal(ES.BinaryAnd(0, 0), 0); - t.equal(ES.BinaryAnd(0, 1), 0); - t.equal(ES.BinaryAnd(1, 0), 0); - t.equal(ES.BinaryAnd(1, 1), 1); - - forEach(v.nonIntegerNumbers.concat(v.nonNumberPrimitives, v.objects), function (nonBit) { - t['throws']( - function () { ES.BinaryAnd(0, nonBit); }, - TypeError - ); - t['throws']( - function () { ES.BinaryAnd(nonBit, 1); }, - TypeError - ); - }); - t.end(); - }); - - test('BinaryOr', function (t) { - t.equal(ES.BinaryOr(0, 0), 0); - t.equal(ES.BinaryOr(0, 1), 1); - t.equal(ES.BinaryOr(1, 0), 1); - t.equal(ES.BinaryOr(1, 1), 1); - - forEach(v.nonIntegerNumbers.concat(v.nonNumberPrimitives, v.objects), function (nonBit) { - t['throws']( - function () { ES.BinaryOr(0, nonBit); }, - TypeError - ); - t['throws']( - function () { ES.BinaryOr(nonBit, 1); }, - TypeError - ); - }); - t.end(); - }); - - test('BinaryXor', function (t) { - t.equal(ES.BinaryXor(0, 0), 0); - t.equal(ES.BinaryXor(0, 1), 1); - t.equal(ES.BinaryXor(1, 0), 1); - t.equal(ES.BinaryXor(1, 1), 0); - - forEach(v.nonIntegerNumbers.concat(v.nonNumberPrimitives, v.objects), function (nonBit) { - t['throws']( - function () { ES.BinaryXor(0, nonBit); }, - TypeError - ); - t['throws']( - function () { ES.BinaryXor(nonBit, 1); }, - TypeError - ); - }); - t.end(); - }); - - test('OrdinaryObjectCreate', function (t) { - forEach(v.nonNullPrimitives, function (value) { - t['throws']( - function () { ES.OrdinaryObjectCreate(value); }, - TypeError, - debug(value) + ' is not null, or an object' - ); - }); - - t.test('proto arg', function (st) { - var Parent = function Parent() {}; - Parent.prototype.foo = {}; - var child = ES.OrdinaryObjectCreate(Parent.prototype); - st.equal(child instanceof Parent, true, 'child is instanceof Parent'); - st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype'); - - st.end(); - }); - - t.test('internal slots arg', function (st) { - st.doesNotThrow(function () { ES.OrdinaryObjectCreate({}, []); }, 'an empty slot list is valid'); - - st['throws']( - function () { ES.OrdinaryObjectCreate({}, ['a']); }, - SyntaxError, - 'internal slots are not supported' - ); - - st.end(); - }); - - t.test('null proto', { skip: !$setProto }, function (st) { - st.equal('toString' in {}, true, 'normal objects have toString'); - st.equal('toString' in ES.OrdinaryObjectCreate(null), false, 'makes a null object'); - - st.end(); - }); - - t.test('null proto when no native Object.create', { skip: $setProto }, function (st) { - st['throws']( - function () { ES.OrdinaryObjectCreate(null); }, - SyntaxError, - 'without a native Object.create, can not create null objects' - ); - - st.end(); - }); - - t.end(); - }); - - test('SameValueNonNumeric', function (t) { - var willThrow = [ - [3, 4], - [NaN, 4], - [4, ''], - ['abc', true], - [{}, false] - ]; - forEach(willThrow, function (nums) { - t['throws'](function () { return ES.SameValueNonNumeric.apply(ES, nums); }, TypeError, 'value must be same type and non-number'); - }); - - forEach(v.objects.concat(v.nonNumberPrimitives), function (val) { - t.equal(val === val, ES.SameValueNonNumeric(val, val), debug(val) + ' is SameValueNonNumeric to itself'); - }); - - t.end(); - }); - - test('StringPad', function (t) { - t.equal(ES.StringPad('a', 3, undefined, 'start'), ' a'); - t.equal(ES.StringPad('a', 3, undefined, 'end'), 'a '); - t.equal(ES.StringPad('a', 3, '0', 'start'), '00a'); - t.equal(ES.StringPad('a', 3, '0', 'end'), 'a00'); - t.equal(ES.StringPad('a', 3, '012', 'start'), '01a'); - t.equal(ES.StringPad('a', 3, '012', 'end'), 'a01'); - t.equal(ES.StringPad('a', 7, '012', 'start'), '012012a'); - t.equal(ES.StringPad('a', 7, '012', 'end'), 'a012012'); - - t.end(); - }); - - test('thisBigIntValue', { skip: !hasBigInts }, function (t) { - t.equal(ES.thisBigIntValue(BigInt(42)), BigInt(42)); - t.equal(ES.thisBigIntValue(Object(BigInt(42))), BigInt(42)); - - forEach(v.nonBigInts, function (nonBigInt) { - t['throws']( - function () { ES.thisBigIntValue(nonBigInt); }, - TypeError, - debug(nonBigInt) + ' is not a BigInt' - ); - }); - - t.end(); - }); - - test('CodePointAt', function (t) { - t['throws']( - function () { ES.CodePointAt('abc', -1); }, - TypeError, - 'requires an index >= 0' - ); - t['throws']( - function () { ES.CodePointAt('abc', 3); }, - TypeError, - 'requires an index < string length' - ); - - t.deepEqual(ES.CodePointAt('abc', 0), { - '[[CodePoint]]': 'a', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt('abc', 1), { - '[[CodePoint]]': 'b', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt('abc', 2), { - '[[CodePoint]]': 'c', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - - var strWithHalfPoo = 'a' + leadingPoo + 'c'; - var strWithWholePoo = 'a' + wholePoo + 'd'; - - t.deepEqual(ES.CodePointAt(strWithHalfPoo, 0), { - '[[CodePoint]]': 'a', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt(strWithHalfPoo, 1), { - '[[CodePoint]]': leadingPoo, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': true - }); - t.deepEqual(ES.CodePointAt(strWithHalfPoo, 2), { - '[[CodePoint]]': 'c', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - - t.deepEqual(ES.CodePointAt(strWithWholePoo, 0), { - '[[CodePoint]]': 'a', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt(strWithWholePoo, 1), { - '[[CodePoint]]': wholePoo, - '[[CodeUnitCount]]': 2, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt(strWithWholePoo, 2), { - '[[CodePoint]]': trailingPoo, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': true - }); - t.deepEqual(ES.CodePointAt(strWithWholePoo, 3), { - '[[CodePoint]]': 'd', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - - t.end(); - }); - - test('UTF16DecodeSurrogatePair', function (t) { - t['throws']( - function () { ES.UTF16DecodeSurrogatePair('a'.charCodeAt(0), trailingPoo.charCodeAt(0)); }, - TypeError, - '"a" is not a leading surrogate' - ); - t['throws']( - function () { ES.UTF16DecodeSurrogatePair(leadingPoo.charCodeAt(0), 'b'.charCodeAt(0)); }, - TypeError, - '"b" is not a trailing surrogate' - ); - - t.equal(ES.UTF16DecodeSurrogatePair(leadingPoo.charCodeAt(0), trailingPoo.charCodeAt(0)), wholePoo); - - t.end(); - }); - - test('LengthOfArrayLike', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.LengthOfArrayLike(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - t.equal(ES.LengthOfArrayLike([]), 0); - t.equal(ES.LengthOfArrayLike([1]), 1); - t.equal(ES.LengthOfArrayLike({ length: 42 }), 42); - - t.end(); - }); - - test('IsNonNegativeInteger', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t.equal( - ES.IsNonNegativeInteger(nonNumber), - false, - debug(nonNumber) + ' is not a non-negative integer' - ); - }); - - forEach(v.nonIntegerNumbers, function (nonIntegerNumber) { - t.equal( - ES.IsNonNegativeInteger(nonIntegerNumber), - false, - debug(nonIntegerNumber) + ' is not a non-negative integer' - ); - }); - - forEach(v.zeroes.concat(v.integerNumbers), function (nonNegativeInteger) { - t.equal( - ES.IsNonNegativeInteger(nonNegativeInteger), - true, - debug(nonNegativeInteger) + ' is a non-negative integer' - ); - }); - - t.end(); - }); - - var unclampedUnsignedIntegerTypes = [ - 'Int8', - 'Int16', - 'Int32' - ]; - var clampedTypes = [ - 'Uint8C' - ]; - var unclampedSignedIntegerTypes = [ - 'Uint8', - 'Uint16', - 'Uint32' - ]; - var unclampedIntegerTypes = unclampedUnsignedIntegerTypes.concat(unclampedSignedIntegerTypes); - var floatTypes = [ - 'Float32', - 'Float64' - ]; - var integerTypes = unclampedIntegerTypes.concat(clampedTypes, floatTypes); - var bigIntTypes = [ - 'BigInt64', - 'BigUint64' - ]; - var numberTypes = floatTypes.concat(integerTypes); - var nonIntegerTypes = floatTypes.concat(bigIntTypes); - var unsignedElementTypes = unclampedSignedIntegerTypes.concat([ - 'BigUint64' - ]); - var signedElementTypes = unclampedUnsignedIntegerTypes; - - test('IsBigIntElementType', function (t) { - forEach(bigIntTypes, function (type) { - t.equal( - ES.IsBigIntElementType(type), - true, - debug(type) + ' is a BigInt element type' - ); - }); - - forEach(numberTypes, function (type) { - t.equal( - ES.IsBigIntElementType(type), - false, - debug(type) + ' is not a BigInt element type' - ); - }); - - t.end(); - }); - - test('IsUnsignedElementType', function (t) { - forEach(unsignedElementTypes, function (type) { - t.equal( - ES.IsUnsignedElementType(type), - true, - debug(type) + ' is an unsigned element type' - ); - }); - - forEach(signedElementTypes, function (type) { - t.equal( - ES.IsUnsignedElementType(type), - false, - debug(type) + ' is not an unsigned element type' - ); - }); - - t.end(); - }); - - test('IsUnclampedIntegerElementType', function (t) { - forEach(unclampedIntegerTypes, function (type) { - t.equal( - ES.IsUnclampedIntegerElementType(type), - true, - debug(type) + ' is an unclamped integer element type' - ); - }); - - forEach(clampedTypes.concat(nonIntegerTypes), function (type) { - t.equal( - ES.IsUnclampedIntegerElementType(type), - false, - debug(type) + ' is not an unclamped integer element type' - ); - }); - - t.end(); - }); - - test('IsNoTearConfiguration', function (t) { - forEach(unclampedIntegerTypes, function (type) { - t.equal( - ES.IsNoTearConfiguration(type), - true, - debug(type) + ' with any order is a no-tear configuration' - ); - }); - - forEach(bigIntTypes, function (type) { - t.equal( - ES.IsNoTearConfiguration(type, 'Init'), - false, - debug(type) + ' with ' + debug('Init') + ' is not a no-tear configuration' - ); - - t.equal( - ES.IsNoTearConfiguration(type, 'Unordered'), - false, - debug(type) + ' with ' + debug('Unordered') + ' is not a no-tear configuration' - ); - - t.equal( - ES.IsNoTearConfiguration(type), - true, - debug(type) + ' with any other order is a no-tear configuration' - ); - }); - - forEach(clampedTypes, function (type) { - t.equal( - ES.IsNoTearConfiguration(type), - false, - debug(type) + ' with any order is not a no-tear configuration' - ); - }); - - t.end(); - }); - - test('NumberBitwiseOp', function (t) { - t['throws']( - function () { ES.NumberBitwiseOp('invalid', 0, 0); }, - TypeError, - 'throws with an invalid op' - ); - - t.equal(ES.NumberBitwiseOp('&', 1, 2), 1 & 2); - t.equal(ES.NumberBitwiseOp('|', 1, 2), 1 | 2); - t.equal(ES.NumberBitwiseOp('^', 1, 2), 1 ^ 2); - - t.end(); - }); - - test('ToNumeric', function (t) { - testToNumber(t, ES, ES.ToNumeric); - - t.test('BigInts', { skip: !hasBigInts }, function (st) { - st.equal(ES.ToNumeric(BigInt(42)), BigInt(42), debug(BigInt(42)) + ' is ' + debug(BigInt(42))); - st.equal(ES.ToNumeric(Object(BigInt(42))), BigInt(42), debug(Object(BigInt(42))) + ' is ' + debug(BigInt(42))); - - var valueOf = { valueOf: function () { return BigInt(7); } }; - st.equal(ES.ToNumeric(valueOf), valueOf.valueOf(), debug(valueOf) + ' is ' + debug(valueOf.valueOf())); - - var toPrimitive = {}; - var value = BigInt(-2); - toPrimitive[Symbol.toPrimitive] = function () { return value; }; - st.equal(ES.ToNumeric(toPrimitive), value, debug(toPrimitive) + ' is ' + debug(value)); - - st.end(); - }); - - t.end(); - }); - - test('UTF16DecodeString', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.UTF16DecodeString(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - t.deepEqual(ES.UTF16DecodeString('abc'), ['a', 'b', 'c'], 'code units get split'); - t.deepEqual(ES.UTF16DecodeString('a' + wholePoo + 'c'), ['a', wholePoo, 'c'], 'code points get split too'); - - t.end(); - }); - - test('BigIntBitwiseOp', { skip: !hasBigInts }, function (t) { - t['throws']( - function () { ES.BigIntBitwiseOp('invalid', BigInt(0), BigInt(0)); }, - TypeError, - 'throws with an invalid op' - ); - - t.equal(ES.BigIntBitwiseOp('&', BigInt(1), BigInt(2)), BigInt(1) & BigInt(2)); - t.equal(ES.BigIntBitwiseOp('|', BigInt(1), BigInt(2)), BigInt(1) | BigInt(2)); - t.equal(ES.BigIntBitwiseOp('^', BigInt(1), BigInt(2)), BigInt(1) ^ BigInt(2)); - - t.end(); - }); -}; - -module.exports = { - es2015: es2015, - es2016: es2016, - es2017: es2017, - es2018: es2018, - es2019: es2019, - es2020: es2020 -}; diff --git a/node_modules/object.assign/package.json b/node_modules/object.assign/package.json index 8f5fa39688..a294eeee8e 100644 --- a/node_modules/object.assign/package.json +++ b/node_modules/object.assign/package.json @@ -1,6 +1,6 @@ { "name": "object.assign", - "version": "4.1.1", + "version": "4.1.2", "author": "Jordan Harband", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9,15 +9,14 @@ "license": "MIT", "main": "index.js", "scripts": { - "pretest": "npm run --silent lint && es-shim-api --bound", - "test": "npm run --silent tests-only && npm run test:ses", + "pretest": "npm run lint && es-shim-api --bound", + "test": "npm run tests-only && npm run test:ses", "posttest": "aud --production", - "tests-only": "npm run --silent test:implementation && npm run --silent test:shim", - "test:native": "node test/native", - "test:shim": "node test/shimmed", - "test:implementation": "node test", + "tests-only": "npm run test:implementation && npm run test:shim", + "test:native": "nyc node test/native", + "test:shim": "nyc node test/shimmed", + "test:implementation": "nyc node test", "test:ses": "node test/ses-compat", - "coverage": "covert test/*.js", "lint": "eslint .", "build": "mkdir -p dist && browserify browserShim.js > dist/browser.js", "prepublish": "safe-publish-latest && npm run build" @@ -40,8 +39,8 @@ "shim" ], "dependencies": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" }, @@ -49,15 +48,15 @@ "@es-shims/api": "^2.1.2", "@ljharb/eslint-config": "^17.2.0", "aud": "^1.1.2", - "browserify": "^16.5.0", - "covert": "^1.1.1", - "eslint": "^7.8.1", + "browserify": "^16.5.2", + "eslint": "^7.12.1", "for-each": "^0.3.3", "functions-have-names": "^1.2.1", "has": "^1.0.3", "is": "^3.3.0", + "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "ses": "^0.10.3", + "ses": "^0.10.4", "tape": "^5.0.1" }, "testling": { diff --git a/node_modules/object.assign/test/ses-compat.js b/node_modules/object.assign/test/ses-compat.js index 5b14cba5b0..9669eb9a98 100644 --- a/node_modules/object.assign/test/ses-compat.js +++ b/node_modules/object.assign/test/ses-compat.js @@ -1,15 +1,12 @@ 'use strict'; +/* globals lockdown */ + // requiring ses exposes "lockdown" on the global require('ses'); -/* - * lockdown freezes the primordials - * disabling the error taming makes debugging much easier - * lockdown({ errorTaming: 'unsafe' }); - */ -// eslint-disable-next-line no-undef -lockdown(); +// lockdown freezes the primordials +lockdown({ errorTaming: 'unsafe' }); // initialize the module -require('..'); +require('./'); diff --git a/node_modules/object.assign/test/tests.js b/node_modules/object.assign/test/tests.js index 994a8de858..81b1326340 100644 --- a/node_modules/object.assign/test/tests.js +++ b/node_modules/object.assign/test/tests.js @@ -159,7 +159,7 @@ module.exports = function (assign, t) { st.end(); }); - t.test('does not fail when symbols are not present', function (st) { + t.test('does not fail when symbols are not present', { skip: !Object.isFrozen || Object.isFrozen(Object) }, function (st) { var getSyms; if (hasSymbols) { getSyms = Object.getOwnPropertySymbols; diff --git a/node_modules/object.values/.editorconfig b/node_modules/object.values/.editorconfig new file mode 100644 index 0000000000..bc228f8269 --- /dev/null +++ b/node_modules/object.values/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 150 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off diff --git a/node_modules/object.values/.eslintignore b/node_modules/object.values/.eslintignore new file mode 100644 index 0000000000..404abb2212 --- /dev/null +++ b/node_modules/object.values/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/object.values/.github/workflows/rebase.yml b/node_modules/object.values/.github/workflows/rebase.yml deleted file mode 100644 index 436cb79dca..0000000000 --- a/node_modules/object.values/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/object.values/.nycrc b/node_modules/object.values/.nycrc new file mode 100644 index 0000000000..bdd626ce91 --- /dev/null +++ b/node_modules/object.values/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/object.values/.travis.yml b/node_modules/object.values/.travis.yml deleted file mode 100644 index 2d1c1d25f4..0000000000 --- a/node_modules/object.values/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/object.values/CHANGELOG.md b/node_modules/object.values/CHANGELOG.md index 475358f850..b6c68412bf 100644 --- a/node_modules/object.values/CHANGELOG.md +++ b/node_modules/object.values/CHANGELOG.md @@ -1,44 +1,151 @@ -1.1.1 / 2019-12-12 -================= - * [Refactor] use split-up `es-abstract` (85% bundle size decrease) - * [Deps] update `es-abstract` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `tape`, `object-keys` - * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops - * [Tests] use shared travis-ci configs - * [Tests] use `functions-have-names` - * [meta] add `funding` field - * [actions] add automatic rebasing / merge commit blocking - -1.1.0 / 2019-01-01 -================= - * [New] add `auto` entry point` - * [Deps] update `define-properties`, `es-abstract`, `function-bind`, `has` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` - * [Tests] up to `node` `v11.6`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.16`, `v4.9`; use `nvm install-latest-npm` - * [Tests] use `npm audit` instead of `nsp` - * [Tests] remove `jscs` - -1.0.4 / 2016-12-04 -================= - * [Docs] update to reflect ES2017 inclusion - * [Deps] update `es-abstract`, `function-bind`, `define-properties` - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` - * [Tests] up to `node` `v7.2`, `v6.9`, `v4.6`; improve test matrix. - -1.0.3 / 2015-10-06 -================= - * [Fix] Not-yet-visited keys made non-enumerable on a `[[Get]]` must not show up in the output (https://github.com/ljharb/proposal-object-values-entries/issues/5) - -1.0.2 / 2015-09-25 -================= - * [Fix] Not-yet-visited keys deleted on a `[[Get]]` must not show up in the output (#1) - -1.0.1 / 2015-09-21 -================= - * [Docs] update version badge URL - * [Tests] on `io.js` `v3.3`, up to `node` `v4.1` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config` - -1.0.0 / 2015-09-02 -================= - * v1.0.0 +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.4](https://github.com/ljharb/Object.values/compare/v1.1.3...v1.1.4) - 2021-05-26 + +### Commits + +- [meta] add `auto-changelog` [`01ee3ac`](https://github.com/ljharb/Object.values/commit/01ee3acb5c767559ce37a3b24bbd30253eae280c) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`f403cba`](https://github.com/ljharb/Object.values/commit/f403cba8852664d82bbf744cd36ad019742a14b5) +- [readme] add actions and codecov badges [`bee5cd2`](https://github.com/ljharb/Object.values/commit/bee5cd21770c9dffa874a2d18d728cf8478e3e7d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`; switch `array-map` for `array.prototype.map` [`8c49dbe`](https://github.com/ljharb/Object.values/commit/8c49dbeed8e3312081d88848abe6bb04383d46ae) +- [Refactor] `propertyIsEnumerable` checks own-ness; remove `has` [`3cb48cf`](https://github.com/ljharb/Object.values/commit/3cb48cf8655504fee0d226036e9582be0fd3fbb0) +- [actions] update workflows [`eb1d757`](https://github.com/ljharb/Object.values/commit/eb1d7574489b86d5d276cf58e3faf77271d0a6f7) +- [Dev Deps] update `eslint`, `tape` [`0abdb2d`](https://github.com/ljharb/Object.values/commit/0abdb2d576aba1074075c1fb25de01ef943aaa77) +- [Tests] increase coverage [`8ca19a3`](https://github.com/ljharb/Object.values/commit/8ca19a3472a9e7883de91d4623fbbce978a0c535) +- [meta] use `prepublishOnly` script for npm 7+ [`88998c8`](https://github.com/ljharb/Object.values/commit/88998c80f21c0aaf7a640ad14caa7b9c08aa1e7c) +- [Deps] update `es-abstract` [`12515ab`](https://github.com/ljharb/Object.values/commit/12515ab54f055c42904caaadecce8d13edd673d8) +- [Deps] update `es-abstract` [`3083ce7`](https://github.com/ljharb/Object.values/commit/3083ce7cd7263cb2570d894947c5d6a4f64feffa) +- [meta] gitignore coverage output [`7aef22b`](https://github.com/ljharb/Object.values/commit/7aef22b2c623b756a3302c6df2265b69b1bb3e10) + +## [v1.1.3](https://github.com/ljharb/Object.values/compare/v1.1.2...v1.1.3) - 2021-02-22 + +### Commits + +- [meta] do not publish github action workflow files [`208c71c`](https://github.com/ljharb/Object.values/commit/208c71c6b34125317ea7784cd05f72c2c511fdfb) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `functions-have-names`, `has-strict-mode`, `tape` [`88849ab`](https://github.com/ljharb/Object.values/commit/88849abd1607d5e80cd4252246ad3d9d0876c431) +- [readme] remove travis badge [`0a9a67f`](https://github.com/ljharb/Object.values/commit/0a9a67f3f33fd82a8c45db6ec0059996c19b54cd) +- [actions] update workflows [`4ecb890`](https://github.com/ljharb/Object.values/commit/4ecb8909b6b5dead0a5ce65489f71c626a569826) +- [Deps] update `call-bind`, `es-abstract` [`28845c7`](https://github.com/ljharb/Object.values/commit/28845c737b5aa665344c39bcf87799484891fe47) + +## [v1.1.2](https://github.com/ljharb/Object.values/compare/v1.1.1...v1.1.2) - 2020-11-26 + +### Commits + +- [Tests] migrate tests to Github Actions [`6ab9d79`](https://github.com/ljharb/Object.values/commit/6ab9d798482ad84fbcb874b085820b6830d0d4e3) +- [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner [`65667b7`](https://github.com/ljharb/Object.values/commit/65667b7b346a13f91ce6e541871a7687ff4673a4) +- [Tests] run `nyc` on all tests [`b83f36c`](https://github.com/ljharb/Object.values/commit/b83f36ce151a31a78f7e0b763a0b3a118be76256) +- [actions] add "Allow Edits" workflow [`44c7de1`](https://github.com/ljharb/Object.values/commit/44c7de155a409bda38215c32ce616eb33b0cf1cf) +- [Deps] update `es-abstract`; use `call-bind` where applicable [`35f88b0`](https://github.com/ljharb/Object.values/commit/35f88b0f8c7243238058640518446d09f3abe319) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `functions-have-names`; add `safe-publish-latest` [`2495030`](https://github.com/ljharb/Object.values/commit/2495030adccb3f3af615395f364950d76390517d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1cc1742`](https://github.com/ljharb/Object.values/commit/1cc17421906a8afa3d2ece4ebb745c6b501cba0e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `aud` [`f42bc75`](https://github.com/ljharb/Object.values/commit/f42bc75fc7c3a61a09eb0a2e5b4ae003f92d0023) +- [Fix] do not mutate the native function when present [`ea2a273`](https://github.com/ljharb/Object.values/commit/ea2a273cbd8f60f91cf9bb6528b8d5d1cae25f47) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`5040d09`](https://github.com/ljharb/Object.values/commit/5040d09bee5c3ea77694f76ff95c6d4b09bf4a0c) +- [Tests] only audit prod deps [`2803c92`](https://github.com/ljharb/Object.values/commit/2803c924114308f261e4c38dfc81706458046e7b) +- [Deps] update `es-abstract` [`d15d0e5`](https://github.com/ljharb/Object.values/commit/d15d0e5e0ac5342588aa558477e56a075b4b130f) +- [Dev Deps] update `tape` [`e83fe3a`](https://github.com/ljharb/Object.values/commit/e83fe3a4c38dc678866cd0905445d59ea7c58b5b) +- [Deps] update `es-abstract` [`cfab489`](https://github.com/ljharb/Object.values/commit/cfab48956d88dbf4a2659672c648465ca0cc3fc8) + +## [v1.1.1](https://github.com/ljharb/Object.values/compare/v1.1.0...v1.1.1) - 2019-12-12 + +### Commits + +- [Tests] use shared travis-ci configs [`2a82dea`](https://github.com/ljharb/Object.values/commit/2a82dea7bbde9773c0fbae64f7a70f9236effd86) +- [Tests] up to `node` `v12.7`, `v11.15`, `v10.16`, `v8.16`, `v6.17`; use `nvm install-latest-npm` [`58a4209`](https://github.com/ljharb/Object.values/commit/58a420950f906d62b9b62b6ad5881216f7585be2) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`80080cd`](https://github.com/ljharb/Object.values/commit/80080cdd93f8dbceb3383864e4d18f8cbb4947c0) +- [actions] add automatic rebasing / merge commit blocking [`e8a9297`](https://github.com/ljharb/Object.values/commit/e8a92975258fd674a2c00380f7ee7c2adb6ee009) +- [Refactor] use split-up `es-abstract` (85% bundle size decrease) [`a8ac36f`](https://github.com/ljharb/Object.values/commit/a8ac36fcad70e86a42d08cf0163f7b23945a3f45) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names` [`c74ad8a`](https://github.com/ljharb/Object.values/commit/c74ad8adcb78173f8e9cec541366c21307587de4) +- [Dev Deps] update `object-keys`, `tape`, `eslint` [`10adf18`](https://github.com/ljharb/Object.values/commit/10adf18de8784be02de042b7c8eec5dd911f4f1a) +- [meta] add `funding` field [`110dbca`](https://github.com/ljharb/Object.values/commit/110dbca51bc0413bab11fe56dabc5d0a373415a7) +- [Tests] use `functions-have-names` [`40746e5`](https://github.com/ljharb/Object.values/commit/40746e5311298d61385e3e316e3f0bc2956d9053) +- [Deps] update `es-abstract` [`9b7c99b`](https://github.com/ljharb/Object.values/commit/9b7c99b9881a3af022ec002cedd72a9aa64f34d2) + +## [v1.1.0](https://github.com/ljharb/Object.values/compare/v1.0.4...v1.1.0) - 2019-01-01 + +### Commits + +- [Tests] remove `jscs` [`a9d5f94`](https://github.com/ljharb/Object.values/commit/a9d5f94000ae6efb44cd964dcdfa5b986596392f) +- [Tests] up to `node` `v11.1`, `v10.13`, `v9.11`, `v8.12`, `v7.10`, `v6.14`, `v4.9`; use `nvm install-latest-npm` [`103a907`](https://github.com/ljharb/Object.values/commit/103a907829c29fabf16e880b178341d3b6832e32) +- [Tests] up to `node` `v7.4`, `v4.7`; improve test matrix [`66caa4a`](https://github.com/ljharb/Object.values/commit/66caa4a74e08de777c1b00185f796e609704bb83) +- [Tests] up to `node` `v11.6`, `v10.15`, `v8.15`, `v6.16` [`81de647`](https://github.com/ljharb/Object.values/commit/81de647b1eede60d69f49cf4ccbf970e3224528e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `tape` [`13c5dd1`](https://github.com/ljharb/Object.values/commit/13c5dd1fa7762cf509deafde12b14fe65e6c0c17) +- [Dev Deps] add missing `object-keys` dev dep [`7cbc7f3`](https://github.com/ljharb/Object.values/commit/7cbc7f38ac6b13738af8b42b62d0c89c5dce6bc6) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`1bf1dbe`](https://github.com/ljharb/Object.values/commit/1bf1dbe0b1fa1c646ef2c6c1bc3a14f5d4045f92) +- [Deps] update `define-properties`, `es-abstract`, `function-bind`, `has` [`faa4051`](https://github.com/ljharb/Object.values/commit/faa40515ff43662e3f381147a902e978cf250bdc) +- [Tests] use `npm audit` instead of `nsp` [`428fb50`](https://github.com/ljharb/Object.values/commit/428fb50c79cc0ef1e62fc053dc959a8848b0d190) +- Only apps should have lockfiles [`f35eb85`](https://github.com/ljharb/Object.values/commit/f35eb8520052bb4dd27ccfd4a399c6011c2ec157) +- [New] add `auto` entry point [`ed730e3`](https://github.com/ljharb/Object.values/commit/ed730e3b2508e4d89691b57d00fc63eebce7130e) + +## [v1.0.4](https://github.com/ljharb/Object.values/compare/v1.0.3...v1.0.4) - 2016-12-04 + +### Commits + +- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `@es-shims/api` [`b0db351`](https://github.com/ljharb/Object.values/commit/b0db351280cfebad008eedff99556cead33a2f37) +- [Tests] up to `node` `v7.2`, `v6.9`, `v4.6`; improve test matrix. [`89362d3`](https://github.com/ljharb/Object.values/commit/89362d30ccee1a27f8d85c114adb14937b4ca7d0) +- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` [`883dce4`](https://github.com/ljharb/Object.values/commit/883dce455bcab08a045561554055003c3f06a917) +- [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` [`67e83b8`](https://github.com/ljharb/Object.values/commit/67e83b8a84ff77f29c99b924760256e05e358dd8) +- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` [`2c1c6c7`](https://github.com/ljharb/Object.values/commit/2c1c6c759725418806d079abf828fd16b3df0aba) +- [Dev Deps] update `jscs`, `nsp`, `eslint`, `@es-shims/api` [`d878ea6`](https://github.com/ljharb/Object.values/commit/d878ea62dc98952e62136de5a42a8caab2a66e84) +- [Tests] up to `node` `v5.6`, `v4.3` [`f37757e`](https://github.com/ljharb/Object.values/commit/f37757e78526e060d7fe2a7ba11414690bbbaa98) +- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` [`348a2a3`](https://github.com/ljharb/Object.values/commit/348a2a386b791fe090a08b7f33111d531277a3ab) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`b1e915e`](https://github.com/ljharb/Object.values/commit/b1e915ed9b35bdb9bb2b7ea35cdd5c78e62636d9) +- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` [`015b78d`](https://github.com/ljharb/Object.values/commit/015b78db57c4cc46d06b1b4f04f4ea2fdb35fc0c) +- [Tests] up to `node` `v5.9`, `v4.4` [`b33686e`](https://github.com/ljharb/Object.values/commit/b33686ea45a842c84e5186416fb52be31a60cc7e) +- [Dev Deps] update `jscs` [`0a44aa3`](https://github.com/ljharb/Object.values/commit/0a44aa30ab2fd5fe4a15070237c700172e517b3f) +- [Docs] update to reflect ES2017 inclusion. [`c01085b`](https://github.com/ljharb/Object.values/commit/c01085b134408bffadafa060bd1585a61674dd57) +- [Tests] use pretest/posttest for linting/security. [`8f9c6c7`](https://github.com/ljharb/Object.values/commit/8f9c6c7104d5694aaf266a6e6d12a92b9731a709) +- [Tests] fix npm upgrades on older nodes [`68c195f`](https://github.com/ljharb/Object.values/commit/68c195fe88677667002e5102c4efcfcc7bef059b) +- [Tests] up to `node` `v6.2` [`48fac8d`](https://github.com/ljharb/Object.values/commit/48fac8de7265142acb1554b28a29322baf53be20) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`471a794`](https://github.com/ljharb/Object.values/commit/471a7940a7dff28a6544c6c253b90daa60ff3c65) +- [Deps] update `es-abstract` [`7e644f1`](https://github.com/ljharb/Object.values/commit/7e644f1bb7c6db533ed137d88de7856e7b9c55b1) +- [Deps] update `es-abstract` [`1856267`](https://github.com/ljharb/Object.values/commit/18562676e8aa606a47116753c323dd28619dea50) +- [Tests] on `node` `v5.12` [`8a4e0c0`](https://github.com/ljharb/Object.values/commit/8a4e0c03415fb67fc2ac420eba6ece5b660cbfe7) +- [Tests] on `node` `v5.10` [`aaeb1a7`](https://github.com/ljharb/Object.values/commit/aaeb1a7a176eca1e69f4df7a8979f0ba40b12c29) +- [Deps] update `function-bind` [`14d2e88`](https://github.com/ljharb/Object.values/commit/14d2e88045d8f92877e9a31f31a2b624267de54f) +- [Deps] update `es-abstract` [`63e46a9`](https://github.com/ljharb/Object.values/commit/63e46a9efd3081872e92ec94a2ed6dbaae3c615a) +- [Deps] update `es-abstract` [`7c40db6`](https://github.com/ljharb/Object.values/commit/7c40db6381bad3232be3e1c24ef79839b6edaba7) +- [Deps] update `define-properties` [`0a86270`](https://github.com/ljharb/Object.values/commit/0a86270bda6478c4e08045b1fb3f2eb72b2207cd) +- [Tests] on `node` `v4.2` [`8ee831d`](https://github.com/ljharb/Object.values/commit/8ee831dae76ef522d6acaae9869a1a7b465361a4) +- [Tests] on `node` `v5.0` [`b9c88c7`](https://github.com/ljharb/Object.values/commit/b9c88c74f2cbb280cfc1c88064c9cd514b4876ae) + +## [v1.0.3](https://github.com/ljharb/Object.values/compare/v1.0.2...v1.0.3) - 2015-10-06 + +### Commits + +- Add test case to cover non-enumerable keys made enumerable by a previous getter. [`9d61739`](https://github.com/ljharb/Object.values/commit/9d617395f0ec81cbdcbc50a46e4489c95253f80b) +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config` [`cf6dff8`](https://github.com/ljharb/Object.values/commit/cf6dff84131cef953498988249c5306c71c1fe9f) +- [Dev Deps] update `jscs`, `eslint` [`f439029`](https://github.com/ljharb/Object.values/commit/f439029b228e0dab0542caa63e1d032889d53705) +- [Deps] update `es-abstract` [`6879994`](https://github.com/ljharb/Object.values/commit/6879994fec305490b5550d25ce390e4b64c74fe0) + +## [v1.0.2](https://github.com/ljharb/Object.values/compare/v1.0.1...v1.0.2) - 2015-09-25 + +### Fixed + +- Not-yet-visited keys deleted on a [[Get]] must not show up in the output [`#1`](https://github.com/ljharb/Object.values/issues/1) + +## [v1.0.1](https://github.com/ljharb/Object.values/compare/v1.0.0...v1.0.1) - 2015-09-21 + +### Commits + +- [Tests] on `io.js` `v3.3`, up to `node` `v4.1` [`27aac5f`](https://github.com/ljharb/Object.values/commit/27aac5f80c05f66d584056931b63eed637059621) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`83cde5c`](https://github.com/ljharb/Object.values/commit/83cde5c685db366f769d738bc30f7a6d273bcc3a) +- Add es-shim API keyword [`2c6b885`](https://github.com/ljharb/Object.values/commit/2c6b88550c155b4f9a7c6ece609b8d97d77b2942) +- [Docs] update version badge URL [`626bf99`](https://github.com/ljharb/Object.values/commit/626bf991d9b0f5720819537698918b295c6ea0d0) + +## v1.0.0 - 2015-09-02 + +### Commits + +- Dotfiles [`5251629`](https://github.com/ljharb/Object.values/commit/5251629c47404fa0dec7b6d230eda10da0f47eea) +- Tests [`b02e54e`](https://github.com/ljharb/Object.values/commit/b02e54ef157c56117b390cb1db95f7d48163a838) +- package.json [`7b84f4e`](https://github.com/ljharb/Object.values/commit/7b84f4e839f75b227a5233325f064900a6032f9a) +- Read me [`31e115b`](https://github.com/ljharb/Object.values/commit/31e115b31af2eabf4db518343310f2bb42e7fa04) +- Initial commit [`01271a5`](https://github.com/ljharb/Object.values/commit/01271a51976524c62bac00d8af9af3ede72831dd) +- Implementation. [`9a0c315`](https://github.com/ljharb/Object.values/commit/9a0c31554899f411d31d3b8343c754eb2c19842e) +- Clarifying tests that only Symbol *properties* are omitted. [`16b3abb`](https://github.com/ljharb/Object.values/commit/16b3abb7c15790cb63e9b2b842b75fdc4210ad69) diff --git a/node_modules/object.values/README.md b/node_modules/object.values/README.md index 17fcf07a5a..153b53427b 100644 --- a/node_modules/object.values/README.md +++ b/node_modules/object.values/README.md @@ -1,6 +1,7 @@ # object.values [![Version Badge][npm-version-svg]][package-url] -[![Build Status][travis-svg]][travis-url] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][deps-svg]][deps-url] [![dev dependency status][dev-deps-svg]][dev-deps-url] [![License][license-image]][license-url] @@ -8,8 +9,6 @@ [![npm badge][npm-badge-png]][package-url] -[![browser support][testling-svg]][testling-url] - An ES2017 spec-compliant `Object.values` shim. Invoke its "shim" method to shim `Object.values` if it is unavailable or noncompliant. This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://tc39.github.io/ecma262/#sec-object.values). @@ -43,17 +42,17 @@ assert.deepEqual(Object.values(obj), expected); Simply clone the repo, `npm install`, and run `npm test` [package-url]: https://npmjs.com/package/object.values -[npm-version-svg]: http://versionbadg.es/es-shims/Object.values.svg -[travis-svg]: https://travis-ci.org/es-shims/Object.values.svg -[travis-url]: https://travis-ci.org/es-shims/Object.values +[npm-version-svg]: https://versionbadg.es/es-shims/Object.values.svg [deps-svg]: https://david-dm.org/es-shims/Object.values.svg [deps-url]: https://david-dm.org/es-shims/Object.values [dev-deps-svg]: https://david-dm.org/es-shims/Object.values/dev-status.svg [dev-deps-url]: https://david-dm.org/es-shims/Object.values#info=devDependencies -[testling-svg]: https://ci.testling.com/es-shims/Object.values.png -[testling-url]: https://ci.testling.com/es-shims/Object.values [npm-badge-png]: https://nodei.co/npm/object.values.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/object.values.svg +[license-image]: https://img.shields.io/npm/l/object.values.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/object.values.svg -[downloads-url]: http://npm-stat.com/charts.html?package=object.values +[downloads-image]: https://img.shields.io/npm/dm/object.values.svg +[downloads-url]: https://npm-stat.com/charts.html?package=object.values +[codecov-image]: https://codecov.io/gh/es-shims/Object.values/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/es-shims/Object.values/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/es-shims/Object.values +[actions-url]: https://github.com/es-shims/Object.values/actions diff --git a/node_modules/object.values/implementation.js b/node_modules/object.values/implementation.js index dd3bc07201..edac901a01 100644 --- a/node_modules/object.values/implementation.js +++ b/node_modules/object.values/implementation.js @@ -1,8 +1,7 @@ 'use strict'; -var has = require('has'); -var RequireObjectCoercible = require('es-abstract/2019/RequireObjectCoercible'); -var callBound = require('es-abstract/helpers/callBound'); +var RequireObjectCoercible = require('es-abstract/2020/RequireObjectCoercible'); +var callBound = require('call-bind/callBound'); var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); @@ -10,7 +9,7 @@ module.exports = function values(O) { var obj = RequireObjectCoercible(O); var vals = []; for (var key in obj) { - if (has(obj, key) && $isEnumerable(obj, key)) { + if ($isEnumerable(obj, key)) { // checks own-ness as well vals.push(obj[key]); } } diff --git a/node_modules/object.values/index.js b/node_modules/object.values/index.js index b8ba091018..abf0449c95 100644 --- a/node_modules/object.values/index.js +++ b/node_modules/object.values/index.js @@ -1,12 +1,13 @@ 'use strict'; var define = require('define-properties'); +var callBind = require('call-bind'); var implementation = require('./implementation'); var getPolyfill = require('./polyfill'); var shim = require('./shim'); -var polyfill = getPolyfill(); +var polyfill = callBind(getPolyfill(), Object); define(polyfill, { getPolyfill: getPolyfill, diff --git a/node_modules/object.values/package.json b/node_modules/object.values/package.json index 6ecd95947e..2529393e09 100644 --- a/node_modules/object.values/package.json +++ b/node_modules/object.values/package.json @@ -1,6 +1,6 @@ { "name": "object.values", - "version": "1.1.1", + "version": "1.1.4", "author": "Jordan Harband ", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9,14 +9,16 @@ "license": "MIT", "main": "index.js", "scripts": { + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", "pretest": "npm run lint", "test": "npm run tests-only", - "posttest": "npx aud", - "tests-only": "es-shim-api && npm run test:shimmed && npm run test:module", - "test:shimmed": "node test/shimmed", - "test:module": "node test/index", - "coverage": "covert test/*.js", - "lint": "eslint ." + "posttest": "npx aud --production", + "tests-only": "nyc tape 'test/**/*.js'", + "lint": "eslint .", + "postlint": "es-shim-api --bound", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" }, "repository": { "type": "git", @@ -38,20 +40,23 @@ "es-shim API" ], "dependencies": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "es-abstract": "^1.18.2" }, "devDependencies": { "@es-shims/api": "^2.1.2", - "@ljharb/eslint-config": "^15.0.2", - "array-map": "^0.0.0", - "covert": "^1.1.1", - "eslint": "^6.7.2", - "functions-have-names": "^1.2.0", + "@ljharb/eslint-config": "^17.6.0", + "array.prototype.map": "^1.0.3", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "eslint": "^7.27.0", + "functions-have-names": "^1.2.2", + "has-strict-mode": "^1.0.1", + "nyc": "^10.3.2", "object-keys": "^1.1.1", - "tape": "^4.11.0" + "safe-publish-latest": "^1.1.4", + "tape": "^5.2.2" }, "testling": { "files": "test/index.js", @@ -73,5 +78,13 @@ }, "engines": { "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true } } \ No newline at end of file diff --git a/node_modules/object.values/test/implementation.js b/node_modules/object.values/test/implementation.js new file mode 100644 index 0000000000..e3a1e46550 --- /dev/null +++ b/node_modules/object.values/test/implementation.js @@ -0,0 +1,20 @@ +'use strict'; + +var implementation = require('../implementation'); +var callBind = require('call-bind'); +var test = require('tape'); +var hasStrictMode = require('has-strict-mode')(); +var runTests = require('./tests'); + +test('as a function', function (t) { + t.test('bad array/this value', { skip: !hasStrictMode }, function (st) { + /* eslint no-useless-call: 0 */ + st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object'); + st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object'); + st.end(); + }); + + runTests(callBind(implementation, Object), t); + + t.end(); +}); diff --git a/node_modules/object.values/test/shimmed.js b/node_modules/object.values/test/shimmed.js index c5db49b54a..2fc74cd271 100644 --- a/node_modules/object.values/test/shimmed.js +++ b/node_modules/object.values/test/shimmed.js @@ -1,7 +1,6 @@ 'use strict'; -var values = require('../'); -values.shim(); +require('../auto'); var test = require('tape'); var defineProperties = require('define-properties'); diff --git a/node_modules/object.values/test/tests.js b/node_modules/object.values/test/tests.js index 6055983745..2dacfd0aa8 100644 --- a/node_modules/object.values/test/tests.js +++ b/node_modules/object.values/test/tests.js @@ -1,7 +1,7 @@ 'use strict'; var keys = require('object-keys'); -var map = require('array-map'); +var map = require('array.prototype.map'); var define = require('define-properties'); var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; diff --git a/node_modules/pkg-up/index.js b/node_modules/pkg-up/index.js new file mode 100644 index 0000000000..19aeaea381 --- /dev/null +++ b/node_modules/pkg-up/index.js @@ -0,0 +1,5 @@ +'use strict'; +const findUp = require('find-up'); + +module.exports = cwd => findUp('package.json', {cwd}); +module.exports.sync = cwd => findUp.sync('package.json', {cwd}); diff --git a/node_modules/pkg-up/license b/node_modules/pkg-up/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/pkg-up/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pkg-up/node_modules/find-up/index.js b/node_modules/pkg-up/node_modules/find-up/index.js new file mode 100644 index 0000000000..939c9553dc --- /dev/null +++ b/node_modules/pkg-up/node_modules/find-up/index.js @@ -0,0 +1,48 @@ +'use strict'; +const path = require('path'); +const locatePath = require('locate-path'); + +module.exports = (filename, opts) => { + opts = opts || {}; + + const startDir = path.resolve(opts.cwd || ''); + const root = path.parse(startDir).root; + + const filenames = [].concat(filename); + + return new Promise(resolve => { + (function find(dir) { + locatePath(filenames, {cwd: dir}).then(file => { + if (file) { + resolve(path.join(dir, file)); + } else if (dir === root) { + resolve(null); + } else { + find(path.dirname(dir)); + } + }); + })(startDir); + }); +}; + +module.exports.sync = (filename, opts) => { + opts = opts || {}; + + let dir = path.resolve(opts.cwd || ''); + const root = path.parse(dir).root; + + const filenames = [].concat(filename); + + // eslint-disable-next-line no-constant-condition + while (true) { + const file = locatePath.sync(filenames, {cwd: dir}); + + if (file) { + return path.join(dir, file); + } else if (dir === root) { + return null; + } + + dir = path.dirname(dir); + } +}; diff --git a/node_modules/pkg-up/node_modules/find-up/license b/node_modules/pkg-up/node_modules/find-up/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/pkg-up/node_modules/find-up/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pkg-up/node_modules/find-up/package.json b/node_modules/pkg-up/node_modules/find-up/package.json new file mode 100644 index 0000000000..7ec1b7ef81 --- /dev/null +++ b/node_modules/pkg-up/node_modules/find-up/package.json @@ -0,0 +1,53 @@ +{ + "name": "find-up", + "version": "2.1.0", + "description": "Find a file by walking up parent directories", + "license": "MIT", + "repository": "sindresorhus/find-up", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "file", + "search", + "match", + "package", + "resolve", + "parent", + "parents", + "folder", + "directory", + "dir", + "walk", + "walking", + "path" + ], + "dependencies": { + "locate-path": "^2.0.0" + }, + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.1", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/node_modules/find-up/readme.md b/node_modules/pkg-up/node_modules/find-up/readme.md new file mode 100644 index 0000000000..b5ad694552 --- /dev/null +++ b/node_modules/pkg-up/node_modules/find-up/readme.md @@ -0,0 +1,85 @@ +# find-up [![Build Status: Linux and macOS](https://travis-ci.org/sindresorhus/find-up.svg?branch=master)](https://travis-ci.org/sindresorhus/find-up) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/l0cyjmvh5lq72vq2/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/find-up/branch/master) + +> Find a file by walking up parent directories + + +## Install + +``` +$ npm install --save find-up +``` + + +## Usage + +``` +/ +└── Users + └── sindresorhus + ├── unicorn.png + └── foo + └── bar + ├── baz + └── example.js +``` + +```js +// example.js +const findUp = require('find-up'); + +findUp('unicorn.png').then(filepath => { + console.log(filepath); + //=> '/Users/sindresorhus/unicorn.png' +}); + +findUp(['rainbow.png', 'unicorn.png']).then(filepath => { + console.log(filepath); + //=> '/Users/sindresorhus/unicorn.png' +}); +``` + + +## API + +### findUp(filename, [options]) + +Returns a `Promise` for the filepath or `null`. + +### findUp([filenameA, filenameB], [options]) + +Returns a `Promise` for the first filepath found (by respecting the order) or `null`. + +### findUp.sync(filename, [options]) + +Returns a filepath or `null`. + +### findUp.sync([filenameA, filenameB], [options]) + +Returns the first filepath found (by respecting the order) or `null`. + +#### filename + +Type: `string` + +Filename of the file to find. + +#### options + +##### cwd + +Type: `string`
+Default: `process.cwd()` + +Directory to start from. + + +## Related + +- [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module +- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file +- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/pkg-up/node_modules/locate-path/index.js b/node_modules/pkg-up/node_modules/locate-path/index.js new file mode 100644 index 0000000000..32b108d19b --- /dev/null +++ b/node_modules/pkg-up/node_modules/locate-path/index.js @@ -0,0 +1,24 @@ +'use strict'; +const path = require('path'); +const pathExists = require('path-exists'); +const pLocate = require('p-locate'); + +module.exports = (iterable, opts) => { + opts = Object.assign({ + cwd: process.cwd() + }, opts); + + return pLocate(iterable, el => pathExists(path.resolve(opts.cwd, el)), opts); +}; + +module.exports.sync = (iterable, opts) => { + opts = Object.assign({ + cwd: process.cwd() + }, opts); + + for (const el of iterable) { + if (pathExists.sync(path.resolve(opts.cwd, el))) { + return el; + } + } +}; diff --git a/node_modules/pkg-up/node_modules/locate-path/license b/node_modules/pkg-up/node_modules/locate-path/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/pkg-up/node_modules/locate-path/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pkg-up/node_modules/locate-path/package.json b/node_modules/pkg-up/node_modules/locate-path/package.json new file mode 100644 index 0000000000..e05a6304bf --- /dev/null +++ b/node_modules/pkg-up/node_modules/locate-path/package.json @@ -0,0 +1,47 @@ +{ + "name": "locate-path", + "version": "2.0.0", + "description": "Get the first path that exists on disk of multiple paths", + "license": "MIT", + "repository": "sindresorhus/locate-path", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "locate", + "path", + "paths", + "file", + "files", + "exists", + "find", + "finder", + "search", + "searcher", + "array", + "iterable", + "iterator" + ], + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/node_modules/locate-path/readme.md b/node_modules/pkg-up/node_modules/locate-path/readme.md new file mode 100644 index 0000000000..f7b337bb2c --- /dev/null +++ b/node_modules/pkg-up/node_modules/locate-path/readme.md @@ -0,0 +1,99 @@ +# locate-path [![Build Status](https://travis-ci.org/sindresorhus/locate-path.svg?branch=master)](https://travis-ci.org/sindresorhus/locate-path) + +> Get the first path that exists on disk of multiple paths + + +## Install + +``` +$ npm install --save locate-path +``` + + +## Usage + +Here we find the first file that exists on disk, in array order. + +```js +const locatePath = require('locate-path'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // only this one actually exists on disk + 'pony.png' +]; + +locatePath(files).then(foundPath => { + console.log(foundPath); + //=> 'rainbow' +}); +``` + + +## API + +### locatePath(input, [options]) + +Returns a `Promise` for the first path that exists or `undefined` if none exists. + +#### input + +Type: `Iterable` + +Paths to check. + +#### options + +Type: `Object` + +##### concurrency + +Type: `number`
+Default: `Infinity`
+Minimum: `1` + +Number of concurrently pending promises. + +##### preserveOrder + +Type: `boolean`
+Default: `true` + +Preserve `input` order when searching. + +Disable this to improve performance if you don't care about the order. + +##### cwd + +Type: `string`
+Default: `process.cwd()` + +Current working directory. + +### locatePath.sync(input, [options]) + +Returns the first path that exists or `undefined` if none exists. + +#### input + +Type: `Iterable` + +Paths to check. + +#### options + +Type: `Object` + +##### cwd + +Same as above. + + +## Related + +- [path-exists](https://github.com/sindresorhus/path-exists) - Check if a path exists + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/pkg-up/node_modules/p-limit/index.js b/node_modules/pkg-up/node_modules/p-limit/index.js new file mode 100644 index 0000000000..873f0e70de --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-limit/index.js @@ -0,0 +1,42 @@ +'use strict'; +const pTry = require('p-try'); + +module.exports = concurrency => { + if (concurrency < 1) { + throw new TypeError('Expected `concurrency` to be a number from 1 and up'); + } + + const queue = []; + let activeCount = 0; + + const next = () => { + activeCount--; + + if (queue.length > 0) { + queue.shift()(); + } + }; + + return fn => new Promise((resolve, reject) => { + const run = () => { + activeCount++; + + pTry(fn).then( + val => { + resolve(val); + next(); + }, + err => { + reject(err); + next(); + } + ); + }; + + if (activeCount < concurrency) { + run(); + } else { + queue.push(run); + } + }); +}; diff --git a/node_modules/get-stdin/license b/node_modules/pkg-up/node_modules/p-limit/license similarity index 100% rename from node_modules/get-stdin/license rename to node_modules/pkg-up/node_modules/p-limit/license diff --git a/node_modules/pkg-up/node_modules/p-limit/package.json b/node_modules/pkg-up/node_modules/p-limit/package.json new file mode 100644 index 0000000000..275cb73ae4 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-limit/package.json @@ -0,0 +1,49 @@ +{ + "name": "p-limit", + "version": "1.3.0", + "description": "Run multiple promise-returning & async functions with limited concurrency", + "license": "MIT", + "repository": "sindresorhus/p-limit", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "limit", + "limited", + "concurrency", + "throttle", + "throat", + "rate", + "batch", + "ratelimit", + "task", + "queue", + "async", + "await", + "promises", + "bluebird" + ], + "dependencies": { + "p-try": "^1.0.0" + }, + "devDependencies": { + "ava": "*", + "delay": "^2.0.0", + "in-range": "^1.0.0", + "random-int": "^1.0.0", + "time-span": "^2.0.0", + "xo": "*" + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/node_modules/p-limit/readme.md b/node_modules/pkg-up/node_modules/p-limit/readme.md new file mode 100644 index 0000000000..90129925c1 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-limit/readme.md @@ -0,0 +1,69 @@ +# p-limit [![Build Status](https://travis-ci.org/sindresorhus/p-limit.svg?branch=master)](https://travis-ci.org/sindresorhus/p-limit) + +> Run multiple promise-returning & async functions with limited concurrency + + +## Install + +``` +$ npm install p-limit +``` + + +## Usage + +```js +const pLimit = require('p-limit'); + +const limit = pLimit(1); + +const input = [ + limit(() => fetchSomething('foo')), + limit(() => fetchSomething('bar')), + limit(() => doSomething()) +]; + +(async () => { + // Only one promise is run at once + const result = await Promise.all(input); + console.log(result); +})(); +``` + + +## API + +### pLimit(concurrency) + +Returns a `limit` function. + +#### concurrency + +Type: `number`
+Minimum: `1` + +Concurrency limit. + +### limit(fn) + +Returns the promise returned by calling `fn`. + +#### fn + +Type: `Function` + +Promise-returning/async function. + + +## Related + +- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control +- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions +- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions +- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/pkg-up/node_modules/p-locate/index.js b/node_modules/pkg-up/node_modules/p-locate/index.js new file mode 100644 index 0000000000..7461d665b5 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-locate/index.js @@ -0,0 +1,31 @@ +'use strict'; +const pLimit = require('p-limit'); + +class EndError extends Error { + constructor(value) { + super(); + this.value = value; + } +} + +// the input can also be a promise, so we `Promise.all()` them both +const finder = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0]))); + +module.exports = (iterable, tester, opts) => { + opts = Object.assign({ + concurrency: Infinity, + preserveOrder: true + }, opts); + + const limit = pLimit(opts.concurrency); + + // start all the promises concurrently with optional limit + const items = Array.from(iterable).map(el => [el, limit(() => Promise.resolve(el).then(tester))]); + + // check the promises either serially or concurrently + const checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity); + + return Promise.all(items.map(el => checkLimit(() => finder(el)))) + .then(() => {}) + .catch(err => err instanceof EndError ? err.value : Promise.reject(err)); +}; diff --git a/node_modules/pkg-up/node_modules/p-locate/license b/node_modules/pkg-up/node_modules/p-locate/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-locate/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pkg-up/node_modules/p-locate/package.json b/node_modules/pkg-up/node_modules/p-locate/package.json new file mode 100644 index 0000000000..b938aa4c59 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-locate/package.json @@ -0,0 +1,54 @@ +{ + "name": "p-locate", + "version": "2.0.0", + "description": "Get the first fulfilled promise that satisfies the provided testing function", + "license": "MIT", + "repository": "sindresorhus/p-locate", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "locate", + "find", + "finder", + "search", + "searcher", + "test", + "array", + "collection", + "iterable", + "iterator", + "race", + "fulfilled", + "fastest", + "async", + "await", + "promises", + "bluebird" + ], + "dependencies": { + "p-limit": "^1.1.0" + }, + "devDependencies": { + "ava": "*", + "delay": "^1.3.1", + "in-range": "^1.0.0", + "time-span": "^1.0.0", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/node_modules/p-locate/readme.md b/node_modules/pkg-up/node_modules/p-locate/readme.md new file mode 100644 index 0000000000..68b96a47ef --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-locate/readme.md @@ -0,0 +1,86 @@ +# p-locate [![Build Status](https://travis-ci.org/sindresorhus/p-locate.svg?branch=master)](https://travis-ci.org/sindresorhus/p-locate) + +> Get the first fulfilled promise that satisfies the provided testing function + +Think of it like an async version of [`Array#find`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find). + + +## Install + +``` +$ npm install --save p-locate +``` + + +## Usage + +Here we find the first file that exists on disk, in array order. + +```js +const pathExists = require('path-exists'); +const pLocate = require('p-locate'); + +const files = [ + 'unicorn.png', + 'rainbow.png', // only this one actually exists on disk + 'pony.png' +]; + +pLocate(files, file => pathExists(file)).then(foundPath => { + console.log(foundPath); + //=> 'rainbow' +}); +``` + +*The above is just an example. Use [`locate-path`](https://github.com/sindresorhus/locate-path) if you need this.* + + +## API + +### pLocate(input, tester, [options]) + +Returns a `Promise` that is fulfilled when `tester` resolves to `true` or the iterable is done, or rejects if any of the promises reject. The fulfilled value is the current iterable value or `undefined` if `tester` never resolved to `true`. + +#### input + +Type: `Iterable` + +#### tester(element) + +Type: `Function` + +Expected to return a `Promise` or boolean. + +#### options + +Type: `Object` + +##### concurrency + +Type: `number`
+Default: `Infinity`
+Minimum: `1` + +Number of concurrently pending promises returned by `tester`. + +##### preserveOrder + +Type: `boolean`
+Default: `true` + +Preserve `input` order when searching. + +Disable this to improve performance if you don't care about the order. + + +## Related + +- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently +- [p-filter](https://github.com/sindresorhus/p-filter) - Filter promises concurrently +- [p-any](https://github.com/sindresorhus/p-any) - Wait for any promise to be fulfilled +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/pkg-up/node_modules/p-try/index.js b/node_modules/pkg-up/node_modules/p-try/index.js new file mode 100644 index 0000000000..efa2f74338 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-try/index.js @@ -0,0 +1,4 @@ +'use strict'; +module.exports = cb => new Promise(resolve => { + resolve(cb()); +}); diff --git a/node_modules/pkg-up/node_modules/p-try/license b/node_modules/pkg-up/node_modules/p-try/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-try/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pkg-up/node_modules/p-try/package.json b/node_modules/pkg-up/node_modules/p-try/package.json new file mode 100644 index 0000000000..a4623262b2 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-try/package.json @@ -0,0 +1,43 @@ +{ + "name": "p-try", + "version": "1.0.0", + "description": "`Promise#try()` ponyfill - Starts a promise chain", + "license": "MIT", + "repository": "sindresorhus/p-try", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "try", + "resolve", + "function", + "catch", + "async", + "await", + "promises", + "settled", + "ponyfill", + "polyfill", + "shim", + "bluebird" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/node_modules/p-try/readme.md b/node_modules/pkg-up/node_modules/p-try/readme.md new file mode 100644 index 0000000000..8e5fdddbe1 --- /dev/null +++ b/node_modules/pkg-up/node_modules/p-try/readme.md @@ -0,0 +1,38 @@ +# p-try [![Build Status](https://travis-ci.org/sindresorhus/p-try.svg?branch=master)](https://travis-ci.org/sindresorhus/p-try) + +> [`Promise#try()`](https://github.com/ljharb/proposal-promise-try) [ponyfill](https://ponyfill.com) - Starts a promise chain + +[How is it useful?](http://cryto.net/~joepie91/blog/2016/05/11/what-is-promise-try-and-why-does-it-matter/) + + +## Install + +``` +$ npm install --save p-try +``` + + +## Usage + +```js +const pTry = require('p-try'); + +pTry(() => { + return synchronousFunctionThatMightThrow(); +}).then(value => { + console.log(value); +}).catch(error => { + console.error(error); +}); +``` + + +## Related + +- [p-finally](https://github.com/sindresorhus/p-finally) - `Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome +- [More…](https://github.com/sindresorhus/promise-fun) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/pkg-up/node_modules/path-exists/index.js b/node_modules/pkg-up/node_modules/path-exists/index.js new file mode 100644 index 0000000000..16ae60acb1 --- /dev/null +++ b/node_modules/pkg-up/node_modules/path-exists/index.js @@ -0,0 +1,17 @@ +'use strict'; +const fs = require('fs'); + +module.exports = fp => new Promise(resolve => { + fs.access(fp, err => { + resolve(!err); + }); +}); + +module.exports.sync = fp => { + try { + fs.accessSync(fp); + return true; + } catch (err) { + return false; + } +}; diff --git a/node_modules/pkg-up/node_modules/path-exists/license b/node_modules/pkg-up/node_modules/path-exists/license new file mode 100644 index 0000000000..654d0bfe94 --- /dev/null +++ b/node_modules/pkg-up/node_modules/path-exists/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pkg-up/node_modules/path-exists/package.json b/node_modules/pkg-up/node_modules/path-exists/package.json new file mode 100644 index 0000000000..ed507545d7 --- /dev/null +++ b/node_modules/pkg-up/node_modules/path-exists/package.json @@ -0,0 +1,40 @@ +{ + "name": "path-exists", + "version": "3.0.0", + "description": "Check if a path exists", + "license": "MIT", + "repository": "sindresorhus/path-exists", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "path", + "exists", + "exist", + "file", + "filepath", + "fs", + "filesystem", + "file-system", + "access", + "stat" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "xo": { + "esnext": true + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/node_modules/path-exists/readme.md b/node_modules/pkg-up/node_modules/path-exists/readme.md new file mode 100644 index 0000000000..1b65fa705d --- /dev/null +++ b/node_modules/pkg-up/node_modules/path-exists/readme.md @@ -0,0 +1,50 @@ +# path-exists [![Build Status](https://travis-ci.org/sindresorhus/path-exists.svg?branch=master)](https://travis-ci.org/sindresorhus/path-exists) + +> Check if a path exists + +Because [`fs.exists()`](https://nodejs.org/api/fs.html#fs_fs_exists_path_callback) is being [deprecated](https://github.com/iojs/io.js/issues/103), but there's still a genuine use-case of being able to check if a path exists for other purposes than doing IO with it. + +Never use this before handling a file though: + +> In particular, checking if a file exists before opening it is an anti-pattern that leaves you vulnerable to race conditions: another process may remove the file between the calls to `fs.exists()` and `fs.open()`. Just open the file and handle the error when it's not there. + + +## Install + +``` +$ npm install --save path-exists +``` + + +## Usage + +```js +// foo.js +const pathExists = require('path-exists'); + +pathExists('foo.js').then(exists => { + console.log(exists); + //=> true +}); +``` + + +## API + +### pathExists(path) + +Returns a promise for a boolean of whether the path exists. + +### pathExists.sync(path) + +Returns a boolean of whether the path exists. + + +## Related + +- [path-exists-cli](https://github.com/sindresorhus/path-exists-cli) - CLI for this module + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/pkg-up/package.json b/node_modules/pkg-up/package.json new file mode 100644 index 0000000000..5a9647218a --- /dev/null +++ b/node_modules/pkg-up/package.json @@ -0,0 +1,50 @@ +{ + "name": "pkg-up", + "version": "2.0.0", + "description": "Find the closest package.json file", + "license": "MIT", + "repository": "sindresorhus/pkg-up", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "pkg", + "package", + "file", + "find", + "up", + "find-up", + "findup", + "look-up", + "look", + "search", + "match", + "resolve", + "parent", + "parents", + "folder", + "directory", + "dir", + "walk", + "walking", + "path" + ], + "dependencies": { + "find-up": "^2.1.0" + }, + "devDependencies": { + "ava": "*", + "xo": "*" + } +} \ No newline at end of file diff --git a/node_modules/pkg-up/readme.md b/node_modules/pkg-up/readme.md new file mode 100644 index 0000000000..e61d70b1c5 --- /dev/null +++ b/node_modules/pkg-up/readme.md @@ -0,0 +1,64 @@ +# pkg-up [![Build Status](https://travis-ci.org/sindresorhus/pkg-up.svg?branch=master)](https://travis-ci.org/sindresorhus/pkg-up) + +> Find the closest package.json file + + +## Install + +``` +$ npm install --save pkg-up +``` + + +## Usage + +``` +/ +└── Users + └── sindresorhus + └── foo + ├── package.json + └── bar + ├── baz + └── example.js +``` + +```js +// example.js +const pkgUp = require('pkg-up'); + +pkgUp().then(filepath => { + console.log(filepath); + //=> '/Users/sindresorhus/foo/package.json' +}); +``` + + +## API + +### pkgUp([cwd]) + +Returns a `Promise` for either the filepath or `null` if it could be found. + +### pkgUp.sync([cwd]) + +Returns the filepath or `null`. + +#### cwd + +Type: `string` +Default: `process.cwd()` + +Directory to start from. + + +## Related + +- [read-pkg-up](https://github.com/sindresorhus/read-pkg-up) - Read the closest package.json file +- [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package +- [find-up](https://github.com/sindresorhus/find-up) - Find a file by walking up parent directories + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/prettier/README.md b/node_modules/prettier/README.md index 76f2e04068..189df95a69 100644 --- a/node_modules/prettier/README.md +++ b/node_modules/prettier/README.md @@ -37,11 +37,11 @@

- + Github Actions Build Status - + Github Actions Build Status - + Github Actions Build Status Codecov Coverage Status diff --git a/node_modules/prettier/bin-prettier.js b/node_modules/prettier/bin-prettier.js index 4095065477..89abafd61e 100755 --- a/node_modules/prettier/bin-prettier.js +++ b/node_modules/prettier/bin-prettier.js @@ -1,25 +1,27 @@ #!/usr/bin/env node 'use strict'; -var path = require('path'); -var fs$2 = require('fs'); -var readline = require('readline'); +var path$1 = require('path'); +var fs$4 = require('fs'); var os = require('os'); var tty = require('tty'); -var util$2 = require('util'); -var stream$4 = require('stream'); -var events = require('events'); +var util$1 = require('util'); +var stream_1 = require('stream'); +var events_1 = require('events'); +var readline = require('readline'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } -var path__default = /*#__PURE__*/_interopDefaultLegacy(path); -var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$2); -var readline__default = /*#__PURE__*/_interopDefaultLegacy(readline); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path$1); +var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$4); var os__default = /*#__PURE__*/_interopDefaultLegacy(os); var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty); -var util__default = /*#__PURE__*/_interopDefaultLegacy(util$2); -var stream__default = /*#__PURE__*/_interopDefaultLegacy(stream$4); -var events__default = /*#__PURE__*/_interopDefaultLegacy(events); +var util__default = /*#__PURE__*/_interopDefaultLegacy(util$1); +var stream_1__default = /*#__PURE__*/_interopDefaultLegacy(stream_1); +var events_1__default = /*#__PURE__*/_interopDefaultLegacy(events_1); +var readline__default = /*#__PURE__*/_interopDefaultLegacy(readline); + +var packageJson = require("./package.json"); var semverCompare = function cmp(a, b) { var pa = a.split('.'); @@ -57,198 +59,727 @@ var pleaseUpgradeNode = function pleaseUpgradeNode(pkg, opts) { } }; -var name = "prettier"; -var version = "2.1.1"; -var description = "Prettier is an opinionated code formatter"; -var bin = "./bin/prettier.js"; -var repository = "prettier/prettier"; -var homepage = "https://prettier.io"; -var author = "James Long"; -var license = "MIT"; -var main = "./index.js"; -var browser = "./standalone.js"; -var unpkg = "./standalone.js"; -var engines = { - node: ">=10.13.0" +var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$1 = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global$1 == 'object' && global$1) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + +var fails = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +// Detect IE8's incomplete defineProperty implementation +var descriptors = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +var f$4 = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +var objectPropertyIsEnumerable = { + f: f$4 +}; + +var createPropertyDescriptor = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var toString$1 = {}.toString; + +var classofRaw = function (it) { + return toString$1.call(it).slice(8, -1); +}; + +var split = ''.split; + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); +} : Object; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + +// toObject with fallback for non-array-like ES3 strings + + + +var toIndexedObject = function (it) { + return indexedObject(requireObjectCoercible(it)); +}; + +var isObject$3 = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +var toPrimitive = function (input, PREFERRED_STRING) { + if (!isObject$3(input)) return input; + var fn, val; + if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$3(val = fn.call(input))) return val; + if (typeof (fn = input.valueOf) == 'function' && !isObject$3(val = fn.call(input))) return val; + if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$3(val = fn.call(input))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + +var hasOwnProperty$b = {}.hasOwnProperty; + +var has$1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty$b.call(toObject(it), key); +}; + +var document = global$1.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject$3(document) && isObject$3(document.createElement); + +var documentCreateElement = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + +// Thank's IE8 for his funny defineProperty +var ie8DomDefine = !descriptors && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- requied for testing + return Object.defineProperty(documentCreateElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +var f$3 = descriptors ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (ie8DomDefine) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has$1(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); +}; + +var objectGetOwnPropertyDescriptor = { + f: f$3 +}; + +var anObject = function (it) { + if (!isObject$3(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; +}; + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +var f$2 = descriptors ? $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (ie8DomDefine) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var objectDefineProperty = { + f: f$2 +}; + +var createNonEnumerableProperty = descriptors ? function (object, key, value) { + return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +function createCommonjsModule(fn) { + var module = { exports: {} }; + return fn(module, module.exports), module.exports; +} + +var setGlobal = function (key, value) { + try { + createNonEnumerableProperty(global$1, key, value); + } catch (error) { + global$1[key] = value; + } return value; +}; + +var SHARED = '__core-js_shared__'; +var store$1 = global$1[SHARED] || setGlobal(SHARED, {}); + +var sharedStore = store$1; + +var functionToString = Function.toString; + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (typeof sharedStore.inspectSource != 'function') { + sharedStore.inspectSource = function (it) { + return functionToString.call(it); + }; +} + +var inspectSource = sharedStore.inspectSource; + +var WeakMap$3 = global$1.WeakMap; + +var nativeWeakMap = typeof WeakMap$3 === 'function' && /native code/.test(inspectSource(WeakMap$3)); + +var shared = createCommonjsModule(function (module) { +(module.exports = function (key, value) { + return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.14.0', + mode: 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); +}); + +var id = 0; +var postfix = Math.random(); + +var uid = function (key) { + return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); +}; + +var keys$1 = shared('keys'); + +var sharedKey = function (key) { + return keys$1[key] || (keys$1[key] = uid(key)); +}; + +var hiddenKeys$1 = {}; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var WeakMap$2 = global$1.WeakMap; +var set, get$1, has; + +var enforce = function (it) { + return has(it) ? get$1(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get$1(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (nativeWeakMap || sharedStore.state) { + var store = sharedStore.state || (sharedStore.state = new WeakMap$2()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; + }; + get$1 = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys$1[STATE] = true; + set = function (it, metadata) { + if (has$1(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get$1 = function (it) { + return has$1(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return has$1(it, STATE); + }; +} + +var internalState = { + set: set, + get: get$1, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +var redefine = createCommonjsModule(function (module) { +var getInternalState = internalState.get; +var enforceInternalState = internalState.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var state; + if (typeof value == 'function') { + if (typeof key == 'string' && !has$1(value, 'name')) { + createNonEnumerableProperty(value, 'name', key); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + } + if (O === global$1) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +}); +}); + +var path = global$1; + +var aFunction$1 = function (variable) { + return typeof variable == 'function' ? variable : undefined; +}; + +var getBuiltIn = function (namespace, method) { + return arguments.length < 2 ? aFunction$1(path[namespace]) || aFunction$1(global$1[namespace]) + : path[namespace] && path[namespace][method] || global$1[namespace] && global$1[namespace][method]; +}; + +var ceil = Math.ceil; +var floor$1 = Math.floor; + +// `ToInteger` abstract operation +// https://tc39.es/ecma262/#sec-tointeger +var toInteger = function (argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$1 : ceil)(argument); +}; + +var min$1 = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength = function (argument) { + return argument > 0 ? min$1(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) }; -var files = [ - "index.js", - "standalone.js", - "src", - "bin" + +var indexOf = arrayIncludes.indexOf; + + +var objectKeysInternal = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has$1(O, key = names[i++])) { + ~indexOf(result, key) || result.push(key); + } + return result; +}; + +// IE8- don't enum bug keys +var enumBugKeys = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' ]; -var dependencies = { - "@angular/compiler": "10.0.12", - "@babel/code-frame": "7.10.4", - "@babel/parser": "7.11.2", - "@glimmer/syntax": "0.59.0", - "@iarna/toml": "2.2.5", - "@typescript-eslint/typescript-estree": "3.10.0", - "angular-estree-parser": "2.2.0", - "angular-html-parser": "1.7.1", - camelcase: "6.0.0", - chalk: "4.1.0", - "ci-info": "watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540", - "cjk-regex": "2.0.0", - cosmiconfig: "7.0.0", - dashify: "2.0.0", - diff: "4.0.2", - editorconfig: "0.15.3", - "editorconfig-to-prettier": "0.1.1", - "escape-string-regexp": "4.0.0", - esutils: "2.0.3", - "fast-glob": "3.2.4", - "fast-json-stable-stringify": "2.1.0", - "find-parent-dir": "0.3.0", - "flow-parser": "0.132.0", - "get-stream": "6.0.0", - globby: "11.0.1", - graphql: "15.3.0", - "html-element-attributes": "2.2.1", - "html-styles": "1.0.0", - "html-tag-names": "1.1.5", - "html-void-elements": "1.0.5", - ignore: "4.0.6", - "jest-docblock": "26.0.0", - json5: "2.1.3", - leven: "3.1.0", - "lines-and-columns": "1.1.6", - "linguist-languages": "7.10.0", - lodash: "4.17.20", - mem: "6.1.0", - minimatch: "3.0.4", - minimist: "1.2.5", - "n-readlines": "1.0.0", - outdent: "0.7.1", - "parse-srcset": "ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee", - "please-upgrade-node": "3.2.0", - "postcss-less": "3.1.4", - "postcss-media-query-parser": "0.2.3", - "postcss-scss": "2.1.1", - "postcss-selector-parser": "2.2.3", - "postcss-values-parser": "2.0.1", - "regexp-util": "1.2.2", - "remark-footnotes": "2.0.0", - "remark-math": "1.0.6", - "remark-parse": "8.0.3", - resolve: "1.17.0", - semver: "7.3.2", - "string-width": "4.2.0", - typescript: "4.0.2", - "unicode-regex": "3.0.0", - unified: "9.2.0", - vnopts: "1.0.2", - "yaml-unist-parser": "1.3.0" + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return objectKeysInternal(O, hiddenKeys); +}; + +var objectGetOwnPropertyNames = { + f: f$1 +}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +var f = Object.getOwnPropertySymbols; + +var objectGetOwnPropertySymbols = { + f: f +}; + +// all object keys, includes non-enumerable and symbols +var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = objectGetOwnPropertyNames.f(anObject(it)); + var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; +}; + +var copyConstructorProperties = function (target, source) { + var keys = ownKeys(source); + var defineProperty = objectDefineProperty.f; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } +}; + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : typeof detection == 'function' ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +var isForced_1 = isForced; + +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + + + + + + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$1; + } else if (STATIC) { + target = global$1[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global$1[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } +}; + +var aFunction = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; +}; + +// TODO: use something more complex like timsort? +var floor = Math.floor; + +var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge$1( + mergeSort(array.slice(0, middle), comparefn), + mergeSort(array.slice(middle), comparefn), + comparefn + ); +}; + +var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; }; -var devDependencies = { - "@babel/core": "7.11.4", - "@babel/preset-env": "7.11.0", - "@babel/types": "7.11.0", - "@glimmer/reference": "0.59.0", - "@rollup/plugin-alias": "3.1.1", - "@rollup/plugin-babel": "5.2.0", - "@rollup/plugin-commonjs": "14.0.0", - "@rollup/plugin-json": "4.1.0", - "@rollup/plugin-node-resolve": "9.0.0", - "@rollup/plugin-replace": "2.3.3", - "@types/estree": "0.0.45", - "@types/node": "14.6.0", - "@typescript-eslint/types": "3.10.0", - "babel-loader": "8.1.0", - benchmark: "2.1.4", - "builtin-modules": "3.1.0", - "cross-env": "7.0.2", - cspell: "4.1.0", - eslint: "7.7.0", - "eslint-config-prettier": "6.11.0", - "eslint-formatter-friendly": "7.0.0", - "eslint-plugin-import": "2.22.0", - "eslint-plugin-jest": "23.20.0", - "eslint-plugin-prettier-internal-rules": "file:scripts/tools/eslint-plugin-prettier-internal-rules", - "eslint-plugin-react": "7.20.6", - "eslint-plugin-unicorn": "21.0.0", - execa: "4.0.3", - jest: "26.4.2", - "jest-snapshot-serializer-ansi": "1.0.0", - "jest-snapshot-serializer-raw": "1.1.0", - "jest-watch-typeahead": "0.6.0", - "npm-run-all": "4.1.5", - prettier: "2.1.0", - rimraf: "3.0.2", - rollup: "2.26.5", - "rollup-plugin-node-globals": "1.4.0", - "rollup-plugin-terser": "7.0.0", - shelljs: "0.8.4", - "snapshot-diff": "0.8.1", - "strip-ansi": "6.0.0", - "synchronous-promise": "2.0.13", - tempy: "0.6.0", - "terser-webpack-plugin": "4.1.0", - webpack: "4.44.1" + +var merge$1 = function (left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + var result = []; + + while (lindex < llength || rindex < rlength) { + if (lindex < llength && rindex < rlength) { + result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]); + } else { + result.push(lindex < llength ? left[lindex++] : right[rindex++]); + } + } return result; }; -var scripts = { - prepublishOnly: "echo \"Error: must publish from dist/\" && exit 1", - "prepare-release": "yarn && yarn build && yarn test:dist", - test: "jest", - "test:dev-package": "cross-env INSTALL_PACKAGE=1 jest", - "test:dist": "cross-env NODE_ENV=production jest", - "test:dist-standalone": "cross-env NODE_ENV=production TEST_STANDALONE=1 jest", - "test:integration": "jest tests_integration", - "perf:repeat": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - "perf:repeat-inspect": "yarn && yarn build && cross-env NODE_ENV=production node --inspect-brk ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - "perf:benchmark": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-benchmark --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - lint: "run-p lint:*", - "lint:typecheck": "tsc", - "lint:eslint": "cross-env EFF_NO_LINK_RULES=true eslint . --format friendly", - "lint:changelog": "node ./scripts/lint-changelog.js", - "lint:prettier": "prettier . \"!test*\" --check", - "lint:dist": "eslint --no-eslintrc --no-ignore --env=es6,browser --parser-options=ecmaVersion:2016 \"dist/!(bin-prettier|index|third-party).js\"", - "lint:spellcheck": "cspell \"**/*\" \".github/**/*\"", - "lint:deps": "node ./scripts/check-deps.js", - fix: "run-s fix:eslint fix:prettier", - "fix:eslint": "yarn lint:eslint --fix", - "fix:prettier": "yarn lint:prettier --write", - build: "node ./scripts/build/build.js", - "build-docs": "node ./scripts/build-docs.js" + +var arraySort = mergeSort; + +var arrayMethodIsStrict = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing + method.call(null, argument || function () { throw 1; }, 1); + }); }; -var _package = { - name: name, - version: version, - description: description, - bin: bin, - repository: repository, - homepage: homepage, - author: author, - license: license, - main: main, - browser: browser, - unpkg: unpkg, - engines: engines, - files: files, - dependencies: dependencies, - devDependencies: devDependencies, - scripts: scripts + +var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; + +var firefox = engineUserAgent.match(/firefox\/(\d+)/i); + +var engineFfVersion = !!firefox && +firefox[1]; + +var engineIsIeOrEdge = /MSIE|Trident/.test(engineUserAgent); + +var process$1 = global$1.process; +var versions = process$1 && process$1.versions; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + version = match[0] < 4 ? 1 : match[0] + match[1]; +} else if (engineUserAgent) { + match = engineUserAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = engineUserAgent.match(/Chrome\/(\d+)/); + if (match) version = match[1]; + } +} + +var engineV8Version = version && +version; + +var webkit = engineUserAgent.match(/AppleWebKit\/(\d+)\./); + +var engineWebkitVersion = !!webkit && +webkit[1]; + +var test$1 = []; +var nativeSort = test$1.sort; + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test$1.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test$1.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (engineV8Version) return engineV8Version < 70; + if (engineFfVersion && engineFfVersion > 3) return; + if (engineIsIeOrEdge) return true; + if (engineWebkitVersion) return engineWebkitVersion < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; + } + + for (index = 0; index < 47; index++) { + test$1.push({ k: chr + index, v: value }); + } + } + + test$1.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test$1.length; index++) { + chr = test$1[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; + } + + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return String(x) > String(y) ? 1 : -1; + }; }; -var _package$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name, - version: version, - description: description, - bin: bin, - repository: repository, - homepage: homepage, - author: author, - license: license, - main: main, - browser: browser, - unpkg: unpkg, - engines: engines, - files: files, - dependencies: dependencies, - devDependencies: devDependencies, - scripts: scripts, - 'default': _package +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +_export({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aFunction(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn); + + var items = []; + var arrayLength = toLength(array.length); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) items.push(array[index]); + } + + items = arraySort(items, getSortCompare(comparefn)); + itemsLength = items.length; + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) delete array[index++]; + + return array; + } }); var fastJsonStableStringify = function (data, opts) { @@ -320,106 +851,7 @@ var fastJsonStableStringify = function (data, opts) { }(data); }; -var src = require("./index"); - -const preserveCamelCase = string => { - let isLastCharLower = false; - let isLastCharUpper = false; - let isLastLastCharUpper = false; - - for (let i = 0; i < string.length; i++) { - const character = string[i]; - - if (isLastCharLower && /[\p{Lu}]/u.test(character)) { - string = string.slice(0, i) + '-' + string.slice(i); - isLastCharLower = false; - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = true; - i++; - } else if (isLastCharUpper && isLastLastCharUpper && /[\p{Ll}]/u.test(character)) { - string = string.slice(0, i - 1) + '-' + string.slice(i - 1); - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = false; - isLastCharLower = true; - } else { - isLastCharLower = character.toLocaleLowerCase() === character && character.toLocaleUpperCase() !== character; - isLastLastCharUpper = isLastCharUpper; - isLastCharUpper = character.toLocaleUpperCase() === character && character.toLocaleLowerCase() !== character; - } - } - - return string; -}; - -const camelCase = (input, options) => { - if (!(typeof input === 'string' || Array.isArray(input))) { - throw new TypeError('Expected the input to be `string | string[]`'); - } - - options = Object.assign({}, { - pascalCase: false - }, options); - - const postProcess = x => options.pascalCase ? x.charAt(0).toLocaleUpperCase() + x.slice(1) : x; - - if (Array.isArray(input)) { - input = input.map(x => x.trim()).filter(x => x.length).join('-'); - } else { - input = input.trim(); - } - - if (input.length === 0) { - return ''; - } - - if (input.length === 1) { - return options.pascalCase ? input.toLocaleUpperCase() : input.toLocaleLowerCase(); - } - - const hasUpperCase = input !== input.toLocaleLowerCase(); - - if (hasUpperCase) { - input = preserveCamelCase(input); - } - - input = input.replace(/^[_.\- ]+/, '').toLocaleLowerCase().replace(/[_.\- ]+([\p{Alpha}\p{N}_]|$)/gu, (_, p1) => p1.toLocaleUpperCase()).replace(/\d+([\p{Alpha}\p{N}_]|$)/gu, m => m.toLocaleUpperCase()); - return postProcess(input); -}; - -var camelcase = camelCase; // TODO: Remove this for the next major release - -var _default = camelCase; -camelcase.default = _default; - -/*! - * dashify - * - * Copyright (c) 2015-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -var dashify = (str, options) => { - if (typeof str !== 'string') throw new TypeError('expected a string'); - return str.trim().replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\W/g, m => /[À-ž]/.test(m) ? m : '-').replace(/^-+|-+$/g, '').replace(/-{2,}/g, m => options && options.condense ? '-' : m).toLowerCase(); -}; - -function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function (path, base) { - return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); - } - }, fn(module, module.exports), module.exports; -} - -function getCjsExportFromNamespace (n) { - return n && n['default'] || n; -} - -function commonjsRequire () { - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); -} +var prettier$1 = require("./index.js"); var colorName = { "aliceblue": [240, 248, 255], @@ -573,7 +1005,6 @@ var colorName = { }; /* MIT license */ - /* eslint-disable no-mixed-operators */ // NOTE: conversions should only return primitive values (i.e. arrays, or // values that give correct `typeof` results). @@ -585,7 +1016,7 @@ for (const key of Object.keys(colorName)) { reverseKeywords[colorName[key]] = key; } -const convert = { +const convert$1 = { rgb: { channels: 3, labels: 'rgb' @@ -647,36 +1078,36 @@ const convert = { labels: ['gray'] } }; -var conversions = convert; // Hide .channels and .labels properties +var conversions = convert$1; // Hide .channels and .labels properties -for (const model of Object.keys(convert)) { - if (!('channels' in convert[model])) { +for (const model of Object.keys(convert$1)) { + if (!('channels' in convert$1[model])) { throw new Error('missing channels property: ' + model); } - if (!('labels' in convert[model])) { + if (!('labels' in convert$1[model])) { throw new Error('missing channel labels property: ' + model); } - if (convert[model].labels.length !== convert[model].channels) { + if (convert$1[model].labels.length !== convert$1[model].channels) { throw new Error('channel and label counts mismatch: ' + model); } const { channels, labels - } = convert[model]; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', { + } = convert$1[model]; + delete convert$1[model].channels; + delete convert$1[model].labels; + Object.defineProperty(convert$1[model], 'channels', { value: channels }); - Object.defineProperty(convert[model], 'labels', { + Object.defineProperty(convert$1[model], 'labels', { value: labels }); } -convert.rgb.hsl = function (rgb) { +convert$1.rgb.hsl = function (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; @@ -715,7 +1146,7 @@ convert.rgb.hsl = function (rgb) { return [h, s * 100, l * 100]; }; -convert.rgb.hsv = function (rgb) { +convert$1.rgb.hsv = function (rgb) { let rdif; let gdif; let bdif; @@ -758,17 +1189,17 @@ convert.rgb.hsv = function (rgb) { return [h * 360, s * 100, v * 100]; }; -convert.rgb.hwb = function (rgb) { +convert$1.rgb.hwb = function (rgb) { const r = rgb[0]; const g = rgb[1]; let b = rgb[2]; - const h = convert.rgb.hsl(rgb)[0]; + const h = convert$1.rgb.hsl(rgb)[0]; const w = 1 / 255 * Math.min(r, Math.min(g, b)); b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); return [h, w * 100, b * 100]; }; -convert.rgb.cmyk = function (rgb) { +convert$1.rgb.cmyk = function (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; @@ -786,7 +1217,7 @@ function comparativeDistance(x, y) { return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; } -convert.rgb.keyword = function (rgb) { +convert$1.rgb.keyword = function (rgb) { const reversed = reverseKeywords[rgb]; if (reversed) { @@ -810,11 +1241,11 @@ convert.rgb.keyword = function (rgb) { return currentClosestKeyword; }; -convert.keyword.rgb = function (keyword) { +convert$1.keyword.rgb = function (keyword) { return colorName[keyword]; }; -convert.rgb.xyz = function (rgb) { +convert$1.rgb.xyz = function (rgb) { let r = rgb[0] / 255; let g = rgb[1] / 255; let b = rgb[2] / 255; // Assume sRGB @@ -828,8 +1259,8 @@ convert.rgb.xyz = function (rgb) { return [x * 100, y * 100, z * 100]; }; -convert.rgb.lab = function (rgb) { - const xyz = convert.rgb.xyz(rgb); +convert$1.rgb.lab = function (rgb) { + const xyz = convert$1.rgb.xyz(rgb); let x = xyz[0]; let y = xyz[1]; let z = xyz[2]; @@ -845,7 +1276,7 @@ convert.rgb.lab = function (rgb) { return [l, a, b]; }; -convert.hsl.rgb = function (hsl) { +convert$1.hsl.rgb = function (hsl) { const h = hsl[0] / 360; const s = hsl[1] / 100; const l = hsl[2] / 100; @@ -894,7 +1325,7 @@ convert.hsl.rgb = function (hsl) { return rgb; }; -convert.hsl.hsv = function (hsl) { +convert$1.hsl.hsv = function (hsl) { const h = hsl[0]; let s = hsl[1] / 100; let l = hsl[2] / 100; @@ -908,7 +1339,7 @@ convert.hsl.hsv = function (hsl) { return [h, sv * 100, v * 100]; }; -convert.hsv.rgb = function (hsv) { +convert$1.hsv.rgb = function (hsv) { const h = hsv[0] / 60; const s = hsv[1] / 100; let v = hsv[2] / 100; @@ -940,7 +1371,7 @@ convert.hsv.rgb = function (hsv) { } }; -convert.hsv.hsl = function (hsv) { +convert$1.hsv.hsl = function (hsv) { const h = hsv[0]; const s = hsv[1] / 100; const v = hsv[2] / 100; @@ -957,7 +1388,7 @@ convert.hsv.hsl = function (hsv) { }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { +convert$1.hwb.rgb = function (hwb) { const h = hwb[0] / 360; let wh = hwb[1] / 100; let bl = hwb[2] / 100; @@ -1029,7 +1460,7 @@ convert.hwb.rgb = function (hwb) { return [r * 255, g * 255, b * 255]; }; -convert.cmyk.rgb = function (cmyk) { +convert$1.cmyk.rgb = function (cmyk) { const c = cmyk[0] / 100; const m = cmyk[1] / 100; const y = cmyk[2] / 100; @@ -1040,7 +1471,7 @@ convert.cmyk.rgb = function (cmyk) { return [r * 255, g * 255, b * 255]; }; -convert.xyz.rgb = function (xyz) { +convert$1.xyz.rgb = function (xyz) { const x = xyz[0] / 100; const y = xyz[1] / 100; const z = xyz[2] / 100; @@ -1060,7 +1491,7 @@ convert.xyz.rgb = function (xyz) { return [r * 255, g * 255, b * 255]; }; -convert.xyz.lab = function (xyz) { +convert$1.xyz.lab = function (xyz) { let x = xyz[0]; let y = xyz[1]; let z = xyz[2]; @@ -1076,7 +1507,7 @@ convert.xyz.lab = function (xyz) { return [l, a, b]; }; -convert.lab.xyz = function (lab) { +convert$1.lab.xyz = function (lab) { const l = lab[0]; const a = lab[1]; const b = lab[2]; @@ -1098,7 +1529,7 @@ convert.lab.xyz = function (lab) { return [x, y, z]; }; -convert.lab.lch = function (lab) { +convert$1.lab.lch = function (lab) { const l = lab[0]; const a = lab[1]; const b = lab[2]; @@ -1114,7 +1545,7 @@ convert.lab.lch = function (lab) { return [l, c, h]; }; -convert.lch.lab = function (lch) { +convert$1.lch.lab = function (lch) { const l = lch[0]; const c = lch[1]; const h = lch[2]; @@ -1124,9 +1555,9 @@ convert.lch.lab = function (lch) { return [l, a, b]; }; -convert.rgb.ansi16 = function (args, saturation = null) { +convert$1.rgb.ansi16 = function (args, saturation = null) { const [r, g, b] = args; - let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization + let value = saturation === null ? convert$1.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization value = Math.round(value / 50); @@ -1143,13 +1574,13 @@ convert.rgb.ansi16 = function (args, saturation = null) { return ansi; }; -convert.hsv.ansi16 = function (args) { +convert$1.hsv.ansi16 = function (args) { // Optimization here; we already know the value and don't need to get // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]); }; -convert.rgb.ansi256 = function (args) { +convert$1.rgb.ansi256 = function (args) { const r = args[0]; const g = args[1]; const b = args[2]; // We use the extended greyscale palette here, with the exception of @@ -1171,7 +1602,7 @@ convert.rgb.ansi256 = function (args) { return ansi; }; -convert.ansi16.rgb = function (args) { +convert$1.ansi16.rgb = function (args) { let color = args % 10; // Handle greyscale if (color === 0 || color === 7) { @@ -1190,7 +1621,7 @@ convert.ansi16.rgb = function (args) { return [r, g, b]; }; -convert.ansi256.rgb = function (args) { +convert$1.ansi256.rgb = function (args) { // Handle greyscale if (args >= 232) { const c = (args - 232) * 10 + 8; @@ -1205,13 +1636,13 @@ convert.ansi256.rgb = function (args) { return [r, g, b]; }; -convert.rgb.hex = function (args) { +convert$1.rgb.hex = function (args) { const integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); const string = integer.toString(16).toUpperCase(); return '000000'.substring(string.length) + string; }; -convert.hex.rgb = function (args) { +convert$1.hex.rgb = function (args) { const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); if (!match) { @@ -1233,7 +1664,7 @@ convert.hex.rgb = function (args) { return [r, g, b]; }; -convert.rgb.hcg = function (rgb) { +convert$1.rgb.hcg = function (rgb) { const r = rgb[0] / 255; const g = rgb[1] / 255; const b = rgb[2] / 255; @@ -1264,7 +1695,7 @@ convert.rgb.hcg = function (rgb) { return [hue * 360, chroma * 100, grayscale * 100]; }; -convert.hsl.hcg = function (hsl) { +convert$1.hsl.hcg = function (hsl) { const s = hsl[1] / 100; const l = hsl[2] / 100; const c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l); @@ -1277,7 +1708,7 @@ convert.hsl.hcg = function (hsl) { return [hsl[0], c * 100, f * 100]; }; -convert.hsv.hcg = function (hsv) { +convert$1.hsv.hcg = function (hsv) { const s = hsv[1] / 100; const v = hsv[2] / 100; const c = s * v; @@ -1290,7 +1721,7 @@ convert.hsv.hcg = function (hsv) { return [hsv[0], c * 100, f * 100]; }; -convert.hcg.rgb = function (hcg) { +convert$1.hcg.rgb = function (hcg) { const h = hcg[0] / 360; const c = hcg[1] / 100; const g = hcg[2] / 100; @@ -1349,7 +1780,7 @@ convert.hcg.rgb = function (hcg) { return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; }; -convert.hcg.hsv = function (hcg) { +convert$1.hcg.hsv = function (hcg) { const c = hcg[1] / 100; const g = hcg[2] / 100; const v = c + g * (1.0 - c); @@ -1362,7 +1793,7 @@ convert.hcg.hsv = function (hcg) { return [hcg[0], f * 100, v * 100]; }; -convert.hcg.hsl = function (hcg) { +convert$1.hcg.hsl = function (hcg) { const c = hcg[1] / 100; const g = hcg[2] / 100; const l = g * (1.0 - c) + 0.5 * c; @@ -1377,14 +1808,14 @@ convert.hcg.hsl = function (hcg) { return [hcg[0], s * 100, l * 100]; }; -convert.hcg.hwb = function (hcg) { +convert$1.hcg.hwb = function (hcg) { const c = hcg[1] / 100; const g = hcg[2] / 100; const v = c + g * (1.0 - c); return [hcg[0], (v - c) * 100, (1 - v) * 100]; }; -convert.hwb.hcg = function (hwb) { +convert$1.hwb.hcg = function (hwb) { const w = hwb[1] / 100; const b = hwb[2] / 100; const v = 1 - b; @@ -1398,44 +1829,44 @@ convert.hwb.hcg = function (hwb) { return [hwb[0], c * 100, g * 100]; }; -convert.apple.rgb = function (apple) { +convert$1.apple.rgb = function (apple) { return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; }; -convert.rgb.apple = function (rgb) { +convert$1.rgb.apple = function (rgb) { return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; }; -convert.gray.rgb = function (args) { +convert$1.gray.rgb = function (args) { return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; }; -convert.gray.hsl = function (args) { +convert$1.gray.hsl = function (args) { return [0, 0, args[0]]; }; -convert.gray.hsv = convert.gray.hsl; +convert$1.gray.hsv = convert$1.gray.hsl; -convert.gray.hwb = function (gray) { +convert$1.gray.hwb = function (gray) { return [0, 100, gray[0]]; }; -convert.gray.cmyk = function (gray) { +convert$1.gray.cmyk = function (gray) { return [0, 0, 0, gray[0]]; }; -convert.gray.lab = function (gray) { +convert$1.gray.lab = function (gray) { return [gray[0], 0, 0]; }; -convert.gray.hex = function (gray) { +convert$1.gray.hex = function (gray) { const val = Math.round(gray[0] / 100 * 255) & 0xFF; const integer = (val << 16) + (val << 8) + val; const string = integer.toString(16).toUpperCase(); return '000000'.substring(string.length) + string; }; -convert.rgb.gray = function (rgb) { +convert$1.rgb.gray = function (rgb) { const val = (rgb[0] + rgb[1] + rgb[2]) / 3; return [val / 255 * 100]; }; @@ -1535,7 +1966,7 @@ var route = function (fromModel) { return conversion; }; -const convert$1 = {}; +const convert = {}; const models = Object.keys(conversions); function wrapRaw(fn) { @@ -1595,22 +2026,22 @@ function wrapRounded(fn) { } models.forEach(fromModel => { - convert$1[fromModel] = {}; - Object.defineProperty(convert$1[fromModel], 'channels', { + convert[fromModel] = {}; + Object.defineProperty(convert[fromModel], 'channels', { value: conversions[fromModel].channels }); - Object.defineProperty(convert$1[fromModel], 'labels', { + Object.defineProperty(convert[fromModel], 'labels', { value: conversions[fromModel].labels }); const routes = route(fromModel); const routeModels = Object.keys(routes); routeModels.forEach(toModel => { const fn = routes[toModel]; - convert$1[fromModel][toModel] = wrapRounded(fn); - convert$1[fromModel][toModel].raw = wrapRaw(fn); + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); }); }); -var colorConvert = convert$1; +var colorConvert = convert; var ansiStyles = createCommonjsModule(function (module) { @@ -1848,7 +2279,7 @@ function supportsColor(haveStream, streamIsTTY) { } if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { return 1; } @@ -1859,10 +2290,6 @@ function supportsColor(haveStream, streamIsTTY) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } - if ('GITHUB_ACTIONS' in env) { - return 1; - } - if (env.COLORTERM === 'truecolor') { return 3; } @@ -1906,7 +2333,7 @@ var supportsColor_1 = { stderr: translateLevel(supportsColor(true, tty__default['default'].isatty(2))) }; -const stringReplaceAll = (string, substring, replacer) => { +const stringReplaceAll$1 = (string, substring, replacer) => { let index = string.indexOf(substring); if (index === -1) { @@ -1927,7 +2354,7 @@ const stringReplaceAll = (string, substring, replacer) => { return returnValue; }; -const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { +const stringEncaseCRLFWithFirstIndex$1 = (string, prefix, postfix, index) => { let endIndex = 0; let returnValue = ''; @@ -1943,8 +2370,8 @@ const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { }; var util = { - stringReplaceAll, - stringEncaseCRLFWithFirstIndex + stringReplaceAll: stringReplaceAll$1, + stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 }; const TEMPLATE_REGEX = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; @@ -2076,11 +2503,11 @@ const { stderr: stderrColor } = supportsColor_1; const { - stringReplaceAll: stringReplaceAll$1, - stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 + stringReplaceAll, + stringEncaseCRLFWithFirstIndex } = util; const { - isArray + isArray: isArray$2 } = Array; // `supportsColor.level` → `ansiStyles.color[name]` mapping const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; @@ -2181,7 +2608,7 @@ for (const model of usedModels) { }; } -const proto = Object.defineProperties(() => {}, Object.assign({}, styles, { +const proto = Object.defineProperties(() => {}, Object.assign(Object.assign({}, styles), {}, { level: { enumerable: true, @@ -2219,7 +2646,7 @@ const createStyler = (open, close, parent) => { const createBuilder = (self, _styler, _isEmpty) => { const builder = (...arguments_) => { - if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) { + if (isArray$2(arguments_[0]) && isArray$2(arguments_[0].raw)) { // Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}` return applyStyle(builder, chalkTag(builder, ...arguments_)); } // Single argument is hot path, implicit coercion is faster than anything @@ -2259,7 +2686,7 @@ const applyStyle = (self, string) => { // Replace any instances already present with a re-opening code // otherwise only the part of the string until said closing code // will be colored, and the rest will simply be 'plain'. - string = stringReplaceAll$1(string, styler.close, styler.open); + string = stringReplaceAll(string, styler.close, styler.open); styler = styler.parent; } } // We can move both next actions out of loop, because remaining actions in loop won't have @@ -2270,7 +2697,7 @@ const applyStyle = (self, string) => { const lfIndex = string.indexOf('\n'); if (lfIndex !== -1) { - string = stringEncaseCRLFWithFirstIndex$1(string, closeAll, openAll, lfIndex); + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); } return openAll + string + closeAll; @@ -2281,7 +2708,7 @@ let template; const chalkTag = (chalk, ...strings) => { const [firstString] = strings; - if (!isArray(firstString) || !isArray(firstString.raw)) { + if (!isArray$2(firstString) || !isArray$2(firstString.raw)) { // If chalk() was called by itself or with a string, // return the string itself as a string. return strings.join(' '); @@ -2312,12343 +2739,12310 @@ chalk.stderr = Chalk({ chalk.stderr.supportsColor = stderrColor; var source = chalk; -/** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ -function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; +var require$$1 = require("./third-party.js"); - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; +var prettierInternal = prettier$1.__internal; + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray$1 = Array.isArray || function isArray(arg) { + return classofRaw(arg) == 'Array'; +}; + +// optional / simple context binding +var functionBindContext = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; - return result; -} +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? functionBindContext(mapper, thisArg, 3) : false; + var element; -var fromPairs_1 = fromPairs; + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; -/** - * 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$1 = Array.isArray; -var isArray_1 = isArray$1; + if (depth > 0 && isArray$1(element)) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length'); + target[targetIndex] = element; + } -/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; -var _freeGlobal = freeGlobal; + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; -/** Detect free variable `self`. */ +var flattenIntoArray_1 = flattenIntoArray; -var freeSelf = typeof self == 'object' && self && self.Object === Object && self; -/** Used as a reference to the global object. */ +/* eslint-disable es/no-symbol -- required for testing */ -var root = _freeGlobal || freeSelf || Function('return this')(); -var _root = root; +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && engineV8Version && engineV8Version < 41; +}); -/** Built-in value references. */ +/* eslint-disable es/no-symbol -- required for testing */ -var Symbol$1 = _root.Symbol; -var _Symbol = Symbol$1; +var useSymbolAsUid = nativeSymbol + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; -/** Used for built-in method references. */ +var WellKnownSymbolsStore = shared('wks'); +var Symbol$2 = global$1.Symbol; +var createWellKnownSymbol = useSymbolAsUid ? Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid; -var objectProto = Object.prototype; -/** Used to check objects for own properties. */ +var wellKnownSymbol = function (name) { + if (!has$1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) { + if (nativeSymbol && has$1(Symbol$2, name)) { + WellKnownSymbolsStore[name] = Symbol$2[name]; + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } + } return WellKnownSymbolsStore[name]; +}; -var hasOwnProperty = objectProto.hasOwnProperty; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ +var SPECIES = wellKnownSymbol('species'); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesCreate = function (originalArray, length) { + var C; + if (isArray$1(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray$1(C.prototype))) C = undefined; + else if (isObject$3(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); +}; -var nativeObjectToString = objectProto.toString; -/** Built-in value references. */ +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +_export({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = toLength(O.length); + var A; + aFunction(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); -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`. - */ +var array$2 = createCommonjsModule(function (module, exports) { -function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.splitWhen = exports.flatten = void 0; - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} + function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); + } + + exports.flatten = flatten; - var result = nativeObjectToString.call(value); + function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } else { + result[groupIndex].push(item); + } } + + return result; } - return result; -} + exports.splitWhen = splitWhen; +}); -var _getRawTag = getRawTag; +var errno = createCommonjsModule(function (module, exports) { -/** Used for built-in method references. */ -var objectProto$1 = Object.prototype; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.isEnoentCodeError = void 0; -var nativeObjectToString$1 = objectProto$1.toString; -/** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ + function isEnoentCodeError(error) { + return error.code === 'ENOENT'; + } -function objectToString(value) { - return nativeObjectToString$1.call(value); -} + exports.isEnoentCodeError = isEnoentCodeError; +}); -var _objectToString = objectToString; +var fs$3 = createCommonjsModule(function (module, exports) { -/** `Object#toString` result references. */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createDirentFromStats = void 0; -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; -/** Built-in value references. */ + class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } -var symToStringTag$1 = _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; + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); } - return symToStringTag$1 && symToStringTag$1 in Object(value) ? _getRawTag(value) : _objectToString(value); -} + exports.createDirentFromStats = createDirentFromStats; +}); -var _baseGetTag = baseGetTag; +var path_1 = createCommonjsModule(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'; -} + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; + const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ -var isObjectLike_1 = isObjectLike; + const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; + /** + * Designed to work only with simple paths: `dir\\file`. + */ -/** `Object#toString` result references. */ + function unixify(filepath) { + return filepath.replace(/\\/g, '/'); + } -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 - */ + exports.unixify = unixify; -function isSymbol(value) { - return typeof value == 'symbol' || isObjectLike_1(value) && _baseGetTag(value) == symbolTag; -} + function makeAbsolute(cwd, filepath) { + return path__default['default'].resolve(cwd, filepath); + } -var isSymbol_1 = isSymbol; + exports.makeAbsolute = makeAbsolute; -/** Used to match property names within property paths. */ + function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); + } -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`. - */ + exports.escape = escape; -function isKey(value, object) { - if (isArray_1(value)) { - return false; - } + function removeLeadingDotSegment(entry) { + // We do not use `startsWith` because this is 10x slower than current implementation for some cases. + // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with + if (entry.charAt(0) === '.') { + const secondCharactery = entry.charAt(1); - var type = typeof value; + if (secondCharactery === '/' || secondCharactery === '\\') { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } - if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol_1(value)) { - return true; + return entry; } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); -} - -var _isKey = isKey; + exports.removeLeadingDotSegment = removeLeadingDotSegment; +}); -/** - * 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 +/*! + * is-extglob * - * _.isObject(null); - * // => false + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} +var isExtglob = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } -var isObject_1 = isObject; + var match; -/** `Object#toString` result references. */ + while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } -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 + return false; +}; + +/*! + * is-glob * - * _.isFunction(/abc/); - * // => false + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. */ +var chars = { + '{': '}', + '(': ')', + '[': ']' +}; +var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; +var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; -function isFunction(value) { - if (!isObject_1(value)) { +var isGlob = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { 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. + } + if (isExtglob(str)) { + return true; + } - var tag = _baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; -} + var regex = strictRegex; + var match; // optionally relax regex -var isFunction_1 = isFunction; + if (options && options.strict === false) { + regex = relaxedRegex; + } -/** Used to detect overreaching core-js shims. */ + while (match = regex.exec(str)) { + if (match[2]) return true; + var idx = match.index + match[0].length; // if an open bracket/brace/paren is escaped, + // set the index to the next closing character -var coreJsData = _root['__core-js_shared__']; -var _coreJsData = coreJsData; + var open = match[1]; + var close = open ? chars[open] : null; -/** Used to detect methods masquerading as native. */ + if (open && close) { + var n = str.indexOf(close, idx); -var maskSrcKey = function () { - var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ''); - return uid ? 'Symbol(src)_1.' + uid : ''; -}(); + if (n !== -1) { + idx = n + 1; + } + } + + str = str.slice(idx); + } + + return false; +}; + +var pathPosixDirname = path__default['default'].posix.dirname; +var isWin32 = os__default['default'].platform() === 'win32'; +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; /** - * 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`. + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} */ +var globParent = function globParent(str, opts) { + var options = Object.assign({ + flipBackslashes: true + }, opts); // flip windows path separators -function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; -} + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } // special case for strings ending in enclosure containing path separator -var _isMasked = isMasked; -/** Used for built-in method references. */ -var funcProto = Function.prototype; -/** Used to resolve the decompiled source of functions. */ + if (enclosure.test(str)) { + str += slash; + } // preserves full path in case of trailing path separator -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) {} + str += 'a'; // remove path parts that are globby - try { - return func + ''; - } catch (e) {} - } + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); // remove escape chars and return result - return ''; -} -var _toSource = toSource; + return str.replace(escaped, '$1'); +}; -/** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ +var utils$3 = createCommonjsModule(function (module, exports) { -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; -/** Used to detect host constructors (Safari). */ + exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } -var reIsHostCtor = /^\[object .+?Constructor\]$/; -/** Used for built-in method references. */ + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } -var funcProto$1 = Function.prototype, - objectProto$2 = Object.prototype; -/** Used to resolve the decompiled source of functions. */ + return false; + }; + /** + * Find a node of the given type + */ -var funcToString$1 = funcProto$1.toString; -/** Used to check objects for own properties. */ -var hasOwnProperty$1 = objectProto$2.hasOwnProperty; -/** Used to detect if a method is native. */ + exports.find = (node, type) => node.nodes.find(node => node.type === type); + /** + * Find a node of the given type + */ -var reIsNative = RegExp('^' + funcToString$1.call(hasOwnProperty$1).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_1(value) || _isMasked(value)) { - return false; - } + exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return (Number(max) - Number(min)) / Number(step) >= limit; + }; + /** + * Escape the given node with '\\' before node.value + */ - var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; - return pattern.test(_toSource(value)); -} -var _baseIsNative = baseIsNative; + exports.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) return; -/** - * 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]; -} + if (type && node.type === type || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } + }; + /** + * Returns true if the given brace node should be enclosed in literal braces + */ -var _getValue = getValue; -/** - * 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`. - */ + exports.encloseBrace = node => { + if (node.type !== 'brace') return false; -function getNative(object, key) { - var value = _getValue(object, key); - return _baseIsNative(value) ? value : undefined; -} + if (node.commas >> 0 + node.ranges >> 0 === 0) { + node.invalid = true; + return true; + } -var _getNative = getNative; + return false; + }; + /** + * Returns true if a brace node is invalid. + */ -/* Built-in method references that are verified to be native. */ -var nativeCreate = _getNative(Object, 'create'); -var _nativeCreate = nativeCreate; + exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ + if (block.commas >> 0 + block.ranges >> 0 === 0) { + block.invalid = true; + return true; + } -function hashClear() { - this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; - this.size = 0; -} + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } -var _hashClear = hashClear; + return false; + }; + /** + * Returns true if a node is an open or close node + */ -/** - * 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; -} -var _hashDelete = hashDelete; + exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } -/** Used to stand-in for `undefined` hash values. */ + return node.open === true || node.close === true; + }; + /** + * Reduce an array of text nodes. + */ -var HASH_UNDEFINED = '__lodash_hash_undefined__'; -/** Used for built-in method references. */ -var objectProto$3 = Object.prototype; -/** Used to check objects for own properties. */ + exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; + }, []); + /** + * Flatten an array + */ -var hasOwnProperty$2 = objectProto$3.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__; + exports.flatten = (...args) => { + const result = []; - if (_nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); + } - return hasOwnProperty$2.call(data, key) ? data[key] : undefined; -} + return result; + }; -var _hashGet = hashGet; + flat(args); + return result; + }; +}); -/** Used for built-in method references. */ +var stringify$1 = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils$3.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; -var objectProto$4 = Object.prototype; -/** Used to check objects for own properties. */ + if (node.value) { + if ((invalidBlock || invalidNode) && utils$3.isOpenOrClose(node)) { + return '\\' + node.value; + } -var hasOwnProperty$3 = objectProto$4.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`. - */ + return node.value; + } -function hashHas(key) { - var data = this.__data__; - return _nativeCreate ? data[key] !== undefined : hasOwnProperty$3.call(data, key); -} + if (node.value) { + return node.value; + } -var _hashHas = hashHas; + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } + } -/** Used to stand-in for `undefined` hash values. */ + return output; + }; -var HASH_UNDEFINED$1 = '__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$1 : value; - return this; -} - -var _hashSet = hashSet; + return stringify(ast); +}; -/** - * Creates a hash object. +/*! + * is-number * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. */ -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]); +var isNumber$2 = function (num) { + if (typeof num === 'number') { + return num - num === 0; } -} // Add methods to `Hash`. + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } -Hash.prototype.clear = _hashClear; -Hash.prototype['delete'] = _hashDelete; -Hash.prototype.get = _hashGet; -Hash.prototype.has = _hashHas; -Hash.prototype.set = _hashSet; -var _Hash = Hash; + return false; +}; -/** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; - this.size = 0; -} +const toRegexRange = (min, max, options) => { + if (isNumber$2(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } -var _listCacheClear = listCacheClear; + if (max === void 0 || min === max) { + return String(min); + } -/** - * 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; -} + if (isNumber$2(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } -var eq_1 = eq; + let opts = Object.assign({ + relaxZeros: true + }, options); -/** - * 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`. - */ + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } -function assocIndexOf(array, key) { - var length = array.length; + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; - while (length--) { - if (eq_1(array[length][0], key)) { - return length; - } + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; } - return -1; -} + let a = Math.min(min, max); + let b = Math.max(min, max); -var _assocIndexOf = assocIndexOf; + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; -/** Used for built-in method references. */ + if (opts.capture) { + return `(${result})`; + } -var arrayProto = Array.prototype; -/** Built-in value references. */ + if (opts.wrap === false) { + return result; + } -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`. - */ + return `(?:${result})`; + } -function listCacheDelete(key) { - var data = this.__data__, - index = _assocIndexOf(data, key); + let isPadded = hasPadding(min) || hasPadding(max); + let state = { + min, + max, + a, + b + }; + let positives = []; + let negatives = []; - if (index < 0) { - return false; + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; } - var lastIndex = data.length - 1; + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); } - --this.size; - return true; -} + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives); -var _listCacheDelete = listCacheDelete; + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && positives.length + negatives.length > 1) { + state.result = `(?:${state.result})`; + } -/** - * 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. - */ + toRegexRange.cache[cacheKey] = state; + return state.result; +}; -function listCacheGet(key) { - var data = this.__data__, - index = _assocIndexOf(data, key); - return index < 0 ? undefined : data[index][1]; +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false) || []; + let onlyPositive = filterPatterns(pos, neg, '', false) || []; + let intersected = filterPatterns(neg, pos, '-?', true) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); } -var _listCacheGet = listCacheGet; +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + let stop = countNines(min, nines); + let stops = new Set([max]); -/** - * 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`. - */ + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } -function listCacheHas(key) { - return _assocIndexOf(this.__data__, key) > -1; -} + stop = countZeros(max + 1, zeros) - 1; -var _listCacheHas = listCacheHas; + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + stops = [...stops]; + stops.sort(compare); + return stops; +} /** - * 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. + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} */ -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; +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { + pattern: start, + count: [], + digits: 0 + }; } - return this; -} - -var _listCacheSet = listCacheSet; + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; -/** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; -function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); + if (startDigit === stopDigit) { + pattern += startDigit; + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit); + } else { + count++; + } + } - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; } -} // Add methods to `ListCache`. + return { + pattern, + count: [count], + digits + }; +} -ListCache.prototype.clear = _listCacheClear; -ListCache.prototype['delete'] = _listCacheDelete; -ListCache.prototype.get = _listCacheGet; -ListCache.prototype.has = _listCacheHas; -ListCache.prototype.set = _listCacheSet; -var _ListCache = ListCache; +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; -/* Built-in method references that are verified to be native. */ + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; -var Map$1 = _getNative(_root, 'Map'); -var _Map = Map$1; + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } -function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new _Hash(), - 'map': new (_Map || _ListCache)(), - 'string': new _Hash() - }; -} + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } -var _mapCacheClear = mapCacheClear; + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } -/** - * 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; + return tokens; } -var _isKeyable = isKeyable; +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; -/** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ + for (let ele of arr) { + let { + string + } = ele; // only push if _both_ are negative... -function getMapData(map, key) { - var data = map.__data__; - return _isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; -} + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } // or _both_ are positive -var _getMapData = getMapData; -/** - * 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`. - */ + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } -function mapCacheDelete(key) { - var result = _getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; return result; } - -var _mapCacheDelete = mapCacheDelete; - /** - * 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. + * Zip strings */ -function mapCacheGet(key) { - return _getMapData(this, key).get(key); -} -var _mapCacheGet = mapCacheGet; +function zip(a, b) { + let arr = []; -/** - * 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`. - */ + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); -function mapCacheHas(key) { - return _getMapData(this, key).has(key); + return arr; } -var _mapCacheHas = mapCacheHas; - -/** - * 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 compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} -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; +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); } -var _mapCacheSet = mapCacheSet; +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ +function countZeros(integer, zeros) { + return integer - integer % Math.pow(10, zeros); +} -function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; } -} // Add methods to `MapCache`. + return ''; +} -MapCache.prototype.clear = _mapCacheClear; -MapCache.prototype['delete'] = _mapCacheDelete; -MapCache.prototype.get = _mapCacheGet; -MapCache.prototype.has = _mapCacheHas; -MapCache.prototype.set = _mapCacheSet; -var _MapCache = MapCache; - -/** Error message constants. */ +function toCharacterClass(a, b, options) { + return `[${a}${b - a === 1 ? '' : '-'}${b}]`; +} -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 hasPadding(str) { + return /^-?(0+)\d/.test(str); +} -function memoize(func, resolver) { - if (typeof func != 'function' || resolver != null && typeof resolver != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; } - var memoized = function () { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; - if (cache.has(key)) { - return cache.get(key); - } + switch (diff) { + case 0: + return ''; - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; + case 1: + return relax ? '0?' : '0'; - memoized.cache = new (memoize.Cache || _MapCache)(); - return memoized; -} // Expose `MapCache`. + case 2: + return relax ? '0{0,2}' : '00'; + default: + { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} +/** + * Cache + */ -memoize.Cache = _MapCache; -var memoize_1 = memoize; -/** Used as the maximum memoize cache size. */ +toRegexRange.cache = {}; -var MAX_MEMOIZE_SIZE = 500; +toRegexRange.clearCache = () => toRegexRange.cache = {}; /** - * 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. + * Expose `toRegexRange` */ -function memoizeCapped(func) { - var result = memoize_1(func, function (key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - var cache = result.cache; - return result; -} +var toRegexRange_1 = toRegexRange; -var _memoizeCapped = memoizeCapped; +const isObject$2 = val => val !== null && typeof val === 'object' && !Array.isArray(val); -/** Used to match property names within property paths. */ +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; -var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; -/** Used to match backslashes in property paths. */ +const isValidValue = value => { + return typeof value === 'number' || typeof value === 'string' && value !== ''; +}; -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. - */ +const isNumber$1 = num => Number.isInteger(+num); -var stringToPath = _memoizeCapped(function (string) { - var result = []; +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; - if (string.charCodeAt(0) === 46 - /* . */ - ) { - result.push(''); - } + while (value[++index] === '0'); - string.replace(rePropName, function (match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match); - }); - return result; -}); -var _stringToPath = stringToPath; + return index > 0; +}; -/** - * 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); +const stringify = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } - while (++index < length) { - result[index] = iteratee(array[index], index, array); + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'); } - return result; -} + if (toNumber === false) { + return String(input); + } -var _arrayMap = arrayMap; + return input; +}; -/** Used as references for various `Number` constants. */ +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; -var INFINITY = 1 / 0; -/** Used to convert symbols to primitives and strings. */ + if (negative) { + input = input.slice(1); + maxLength--; + } -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. - */ + while (input.length < maxLength) input = '0' + input; -function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; + return negative ? '-' + input : input; +}; + +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.join('|'); } - if (isArray_1(value)) { - // Recursively convert values (susceptible to call stack limits). - return _arrayMap(value, baseToString) + ''; + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; } - if (isSymbol_1(value)) { - return symbolToString ? symbolToString.call(value) : ''; + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; } - var result = value + ''; - return result == '0' && 1 / value == -INFINITY ? '-0' : result; -} + if (options.wrap) { + return `(${prefix}${result})`; + } -var _baseToString = baseToString; + return result; +}; -/** - * 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' - */ +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange_1(a, b, Object.assign({ + wrap: false + }, options)); + } -function toString(value) { - return value == null ? '' : _baseToString(value); -} + let start = String.fromCharCode(a); + if (a === b) return start; + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; -var toString_1 = toString; +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } -/** - * 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. - */ + return toRegexRange_1(start, end, options); +}; -function castPath(value, object) { - if (isArray_1(value)) { - return value; +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util__default['default'].inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); } - return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); -} + return []; +}; -var _castPath = castPath; +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); -/** Used as references for various `Number` constants. */ + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } // fix negative zero -var INFINITY$1 = 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_1(value)) { - return value; + if (a === 0) a = 0; + if (b === 0) b = 0; + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); } - var result = value + ''; - return result == '0' && 1 / value == -INFINITY$1 ? '-0' : result; -} + let parts = { + negatives: [], + positives: [] + }; -var _toKey = toKey; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); -/** - * 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. - */ + let range = []; + let index = 0; -function baseGet(object, path) { - path = _castPath(path, object); - var index = 0, - length = path.length; + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } - while (object != null && index < length) { - object = object[_toKey(path[index++])]; + a = descending ? a - step : a + step; + index++; } - return index && index == length ? object : undefined; -} + if (options.toRegex === true) { + return step > 1 ? toSequence(parts, options) : toRegex(range, null, Object.assign({ + wrap: false + }, options)); + } -var _baseGet = baseGet; + return range; +}; -var defineProperty = function () { - try { - var func = _getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} -}(); +const fillLetters = (start, end, step = 1, options = {}) => { + if (!isNumber$1(start) && start.length > 1 || !isNumber$1(end) && end.length > 1) { + return invalidRange(start, end, options); + } -var _defineProperty = defineProperty; + let format = options.transform || (val => String.fromCharCode(val)); -/** - * 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. - */ + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); -function baseAssignValue(object, key, value) { - if (key == '__proto__' && _defineProperty) { - _defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); } -} -var _baseAssignValue = baseAssignValue; + let range = []; + let index = 0; -/** Used for built-in method references. */ + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } -var objectProto$5 = Object.prototype; -/** Used to check objects for own properties. */ + if (options.toRegex === true) { + return toRegex(range, null, { + wrap: false, + options + }); + } -var hasOwnProperty$4 = objectProto$5.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. - */ + return range; +}; -function assignValue(object, key, value) { - var objValue = object[key]; +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } - if (!(hasOwnProperty$4.call(object, key) && eq_1(objValue, value)) || value === undefined && !(key in object)) { - _baseAssignValue(object, key, value); + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); } -} -var _assignValue = assignValue; + if (typeof step === 'function') { + return fill(start, end, 1, { + transform: step + }); + } -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER = 9007199254740991; -/** Used to detect unsigned integer values. */ + if (isObject$2(step)) { + return fill(start, end, 0, step); + } -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`. - */ + let opts = Object.assign({}, options); + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; -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; -} + if (!isNumber$1(step)) { + if (step != null && !isObject$2(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } -var _isIndex = isIndex; + if (isNumber$1(start) && isNumber$1(end)) { + return fillNumbers(start, end, step, opts); + } -/** - * 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_1(object)) { - return object; - } + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; - path = _castPath(path, object); - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; +var fillRange = fill; - while (nested != null && ++index < length) { - var key = _toKey(path[index]), - newValue = value; +const compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils$3.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return object; + if (node.isOpen === true) { + return prefix + node.value; } - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined; - - if (newValue === undefined) { - newValue = isObject_1(objValue) ? objValue : _isIndex(path[index + 1]) ? [] : {}; - } + if (node.isClose === true) { + return prefix + node.value; } - _assignValue(nested, key, newValue); - nested = nested[key]; - } - - return object; -} + if (node.type === 'open') { + return invalid ? prefix + node.value : '('; + } -var _baseSet = baseSet; + if (node.type === 'close') { + return invalid ? prefix + node.value : ')'; + } -/** - * The base implementation of `_.pickBy` without support for iteratee shorthands. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @param {Function} predicate The function invoked per property. - * @returns {Object} Returns the new object. - */ + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; + } -function basePickBy(object, paths, predicate) { - var index = -1, - length = paths.length, - result = {}; + if (node.value) { + return node.value; + } - while (++index < length) { - var path = paths[index], - value = _baseGet(object, path); + if (node.nodes && node.ranges > 0) { + let args = utils$3.reduce(node.nodes); + let range = fillRange(...args, Object.assign(Object.assign({}, options), {}, { + wrap: false, + toRegex: true + })); - if (predicate(value, path)) { - _baseSet(result, _castPath(path, object), value); + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } } - } - return result; -} + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } -var _basePickBy = basePickBy; + return output; + }; -/** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ -function baseHasIn(object, key) { - return object != null && key in Object(object); -} + return walk(ast); +}; -var _baseHasIn = baseHasIn; +var compile_1 = compile; -/** `Object#toString` result references. */ +const append = (queue = '', stash = '', enclose = false) => { + let result = []; + queue = [].concat(queue); + stash = [].concat(stash); + if (!stash.length) return queue; -var argsTag = '[object Arguments]'; -/** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ + if (!queue.length) { + return enclose ? utils$3.flatten(stash).map(ele => `{${ele}}`) : stash; + } -function baseIsArguments(value) { - return isObjectLike_1(value) && _baseGetTag(value) == argsTag; -} + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + } + } + } -var _baseIsArguments = baseIsArguments; + return utils$3.flatten(result); +}; -/** Used for built-in method references. */ +const expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; -var objectProto$6 = Object.prototype; -/** Used to check objects for own properties. */ + let walk = (node, parent = {}) => { + node.queue = []; + let p = parent; + let q = parent.queue; -var hasOwnProperty$5 = objectProto$6.hasOwnProperty; -/** Built-in value references. */ + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } -var propertyIsEnumerable = objectProto$6.propertyIsEnumerable; -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify$1(node, options))); + return; + } -var isArguments = _baseIsArguments(function () { - return arguments; -}()) ? _baseIsArguments : function (value) { - return isObjectLike_1(value) && hasOwnProperty$5.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); -}; -var isArguments_1 = isArguments; + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER$1 = 9007199254740991; -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ + if (node.nodes && node.ranges > 0) { + let args = utils$3.reduce(node.nodes); -function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1; -} + if (utils$3.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } -var isLength_1 = isLength; + let range = fillRange(...args, options); -/** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ + if (range.length === 0) { + range = stringify$1(node, options); + } -function hasPath(object, path, hasFunc) { - path = _castPath(path, object); - var index = -1, - length = path.length, - result = false; + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } - while (++index < length) { - var key = _toKey(path[index]); + let enclose = utils$3.encloseBrace(node); + let queue = node.queue; + let block = node; - if (!(result = object != null && hasFunc(object, key))) { - break; + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; } - object = object[key]; - } - - if (result || ++index != length) { - return result; - } + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; - length = object == null ? 0 : object.length; - return !!length && isLength_1(length) && _isIndex(key, length) && (isArray_1(object) || isArguments_1(object)); -} + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } -var _hasPath = hasPath; + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } -/** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } -function hasIn(object, path) { - return object != null && _hasPath(object, path, _baseHasIn); -} + if (child.nodes) { + walk(child, node); + } + } -var hasIn_1 = hasIn; + return queue; + }; -/** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ + return utils$3.flatten(walk(ast)); +}; -function basePick(object, paths) { - return _basePickBy(object, paths, function (value, path) { - return hasIn_1(object, path); - }); -} +var expand_1 = expand; -var _basePick = basePick; +var constants$2 = { + MAX_LENGTH: 1024 * 64, + // Digits + CHAR_0: '0', -/** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ -function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; + /* 0 */ + CHAR_9: '9', - while (++index < length) { - array[offset + index] = values[index]; - } + /* 9 */ + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', - return array; -} + /* A */ + CHAR_LOWERCASE_A: 'a', -var _arrayPush = arrayPush; + /* a */ + CHAR_UPPERCASE_Z: 'Z', -/** Built-in value references. */ + /* Z */ + CHAR_LOWERCASE_Z: 'z', -var spreadableSymbol = _Symbol ? _Symbol.isConcatSpreadable : undefined; -/** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ + /* z */ + CHAR_LEFT_PARENTHESES: '(', -function isFlattenable(value) { - return isArray_1(value) || isArguments_1(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); -} + /* ( */ + CHAR_RIGHT_PARENTHESES: ')', -var _isFlattenable = isFlattenable; + /* ) */ + CHAR_ASTERISK: '*', -/** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ + /* * */ + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', -function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - predicate || (predicate = _isFlattenable); - result || (result = []); + /* & */ + CHAR_AT: '@', - while (++index < length) { - var value = array[index]; + /* @ */ + CHAR_BACKSLASH: '\\', - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - _arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } + /* \ */ + CHAR_BACKTICK: '`', - return result; -} + /* ` */ + CHAR_CARRIAGE_RETURN: '\r', -var _baseFlatten = baseFlatten; + /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', -/** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ + /* ^ */ + CHAR_COLON: ':', -function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? _baseFlatten(array, 1) : []; -} + /* : */ + CHAR_COMMA: ',', -var flatten_1 = flatten; + /* , */ + CHAR_DOLLAR: '$', -/** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ -function apply(func, thisArg, args) { - switch (args.length) { - case 0: - return func.call(thisArg); + /* . */ + CHAR_DOT: '.', - case 1: - return func.call(thisArg, args[0]); + /* . */ + CHAR_DOUBLE_QUOTE: '"', - case 2: - return func.call(thisArg, args[0], args[1]); + /* " */ + CHAR_EQUAL: '=', - case 3: - return func.call(thisArg, args[0], args[1], args[2]); - } + /* = */ + CHAR_EXCLAMATION_MARK: '!', - return func.apply(thisArg, args); -} + /* ! */ + CHAR_FORM_FEED: '\f', -var _apply = apply; + /* \f */ + CHAR_FORWARD_SLASH: '/', -/* Built-in method references for those with the same name as other `lodash` methods. */ + /* / */ + CHAR_HASH: '#', -var nativeMax = Math.max; -/** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ + /* # */ + CHAR_HYPHEN_MINUS: '-', -function overRest(func, start, transform) { - start = nativeMax(start === undefined ? func.length - 1 : start, 0); - return function () { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); + /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', - while (++index < length) { - array[index] = args[start + index]; - } + /* < */ + CHAR_LEFT_CURLY_BRACE: '{', - index = -1; - var otherArgs = Array(start + 1); - - while (++index < start) { - otherArgs[index] = args[index]; - } + /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', - otherArgs[start] = transform(array); - return _apply(func, this, otherArgs); - }; -} + /* [ */ + CHAR_LINE_FEED: '\n', -var _overRest = overRest; + /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', -/** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new constant function. - * @example - * - * var objects = _.times(2, _.constant({ 'a': 1 })); - * - * console.log(objects); - * // => [{ 'a': 1 }, { 'a': 1 }] - * - * console.log(objects[0] === objects[1]); - * // => true - */ -function constant(value) { - return function () { - return value; - }; -} + /* \u00A0 */ + CHAR_PERCENT: '%', -var constant_1 = constant; + /* % */ + CHAR_PLUS: '+', -/** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ -function identity(value) { - return value; -} + /* + */ + CHAR_QUESTION_MARK: '?', -var identity_1 = identity; + /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', -/** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ + /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', -var baseSetToString = !_defineProperty ? identity_1 : function (func, string) { - return _defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant_1(string), - 'writable': true - }); -}; -var _baseSetToString = baseSetToString; + /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', -/** Used to detect hot functions by number of calls within a span of milliseconds. */ -var HOT_COUNT = 800, - HOT_SPAN = 16; -/* Built-in method references for those with the same name as other `lodash` methods. */ + /* ] */ + CHAR_SEMICOLON: ';', -var nativeNow = Date.now; -/** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ + /* ; */ + CHAR_SINGLE_QUOTE: '\'', -function shortOut(func) { - var count = 0, - lastCalled = 0; - return function () { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - lastCalled = stamp; + /* ' */ + CHAR_SPACE: ' ', - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } + /* */ + CHAR_TAB: '\t', - return func.apply(undefined, arguments); - }; -} + /* \t */ + CHAR_UNDERSCORE: '_', -var _shortOut = shortOut; + /* _ */ + CHAR_VERTICAL_LINE: '|', -/** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ + /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' + /* \uFEFF */ -var setToString = _shortOut(_baseSetToString); -var _setToString = setToString; +}; /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. + * Constants */ -function flatRest(func) { - return _setToString(_overRest(func, undefined, flatten_1), func + ''); -} -var _flatRest = flatRest; +const { + MAX_LENGTH: MAX_LENGTH$1, + CHAR_BACKSLASH, -/** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } - */ + /* \ */ + CHAR_BACKTICK, -var pick = _flatRest(function (object, paths) { - return object == null ? {} : _basePick(object, paths); -}); -var pick_1 = pick; + /* ` */ + CHAR_COMMA: CHAR_COMMA$1, -/** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ -function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; + /* , */ + CHAR_DOT: CHAR_DOT$1, - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } + /* . */ + CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, - return accumulator; -} + /* ( */ + CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, -var _arrayAggregator = arrayAggregator; + /* ) */ + CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, -/** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ -function createBaseFor(fromRight) { - return function (object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; + /* { */ + CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, - while (length--) { - var key = props[fromRight ? length : ++index]; + /* } */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } + /* [ */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1, - return object; - }; -} + /* ] */ + CHAR_DOUBLE_QUOTE, -var _createBaseFor = createBaseFor; + /* " */ + CHAR_SINGLE_QUOTE, + /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = constants$2; /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. + * parse */ -var baseFor = _createBaseFor(); -var _baseFor = baseFor; - -/** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ -function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); +const parse$2 = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); } - return result; -} - -var _baseTimes = baseTimes; - -/** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ -function stubFalse() { - return false; -} + let opts = options || {}; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; -var stubFalse_1 = stubFalse; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } -var isBuffer_1 = createCommonjsModule(function (module, exports) { - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; - /** Detect free variable `module`. */ + let ast = { + type: 'root', + input, + nodes: [] + }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + /** + * Helpers + */ - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - /** Detect the popular CommonJS extension `module.exports`. */ + const advance = () => input[index++]; - var moduleExports = freeModule && freeModule.exports === freeExports; - /** Built-in value references. */ + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } - var Buffer = moduleExports ? _root.Buffer : undefined; - /* Built-in method references for those with the same name as other `lodash` methods. */ + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } - var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; - var isBuffer = nativeIsBuffer || stubFalse_1; - module.exports = isBuffer; -}); + push({ + type: 'bos' + }); -/** `Object#toString` result references. */ + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + /** + * Invalid chars + */ -var argsTag$1 = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag$1 = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; -var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; -/** Used to identify `toStringTag` values of typed arrays. */ + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + /** + * Escaped chars + */ -var typedArrayTags = {}; -typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; -typedArrayTags[argsTag$1] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; -/** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ -function baseIsTypedArray(value) { - return isObjectLike_1(value) && isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)]; -} + if (value === CHAR_BACKSLASH) { + push({ + type: 'text', + value: (options.keepEscaping ? value : '') + advance() + }); + continue; + } + /** + * Right square bracket (literal): ']' + */ -var _baseIsTypedArray = baseIsTypedArray; -/** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ -function baseUnary(func) { - return function (value) { - return func(value); - }; -} + if (value === CHAR_RIGHT_SQUARE_BRACKET$1) { + push({ + type: 'text', + value: '\\' + value + }); + continue; + } + /** + * Left square bracket: '[' + */ -var _baseUnary = baseUnary; -var _nodeUtil = createCommonjsModule(function (module, exports) { - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; - /** Detect free variable `module`. */ + if (value === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + let next; - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - /** Detect the popular CommonJS extension `module.exports`. */ + while (index < length && (next = advance())) { + value += next; - var moduleExports = freeModule && freeModule.exports === freeExports; - /** Detect free variable `process` from Node.js. */ + if (next === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + continue; + } - var freeProcess = moduleExports && _freeGlobal.process; - /** Used to access faster Node.js helpers. */ + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } - var nodeUtil = function () { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; + if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { + brackets--; - if (types) { - return types; - } // Legacy `process.binding('util')` for Node.js < 10. + if (brackets === 0) { + break; + } + } + } + push({ + type: 'text', + value + }); + continue; + } + /** + * Parentheses + */ - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }(); - module.exports = nodeUtil; -}); + if (value === CHAR_LEFT_PARENTHESES$1) { + block = push({ + type: 'paren', + nodes: [] + }); + stack.push(block); + push({ + type: 'text', + value + }); + continue; + } -/* Node.js helper references. */ + if (value === CHAR_RIGHT_PARENTHESES$1) { + if (block.type !== 'paren') { + push({ + type: 'text', + value + }); + continue; + } -var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray; -/** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ + block = stack.pop(); + push({ + type: 'text', + value + }); + block = stack[stack.length - 1]; + continue; + } + /** + * Quotes: '|"|` + */ -var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray; -var isTypedArray_1 = isTypedArray; -/** Used for built-in method references. */ + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; -var objectProto$7 = Object.prototype; -/** Used to check objects for own properties. */ + if (options.keepQuotes !== true) { + value = ''; + } -var hasOwnProperty$6 = objectProto$7.hasOwnProperty; -/** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } -function arrayLikeKeys(value, inherited) { - var isArr = isArray_1(value), - isArg = !isArr && isArguments_1(value), - isBuff = !isArr && !isArg && isBuffer_1(value), - isType = !isArr && !isArg && !isBuff && isTypedArray_1(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? _baseTimes(value.length, String) : [], - length = result.length; + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } - for (var key in value) { - if ((inherited || hasOwnProperty$6.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. - isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays. - isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties. - _isIndex(key, length)))) { - result.push(key); + value += next; + } + + push({ + type: 'text', + value + }); + continue; } - } + /** + * Left curly brace: '{' + */ - return result; -} -var _arrayLikeKeys = arrayLikeKeys; + if (value === CHAR_LEFT_CURLY_BRACE$1) { + depth++; + let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + let brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + block = push(brace); + stack.push(block); + push({ + type: 'open', + value + }); + continue; + } + /** + * Right curly brace: '}' + */ -/** Used for built-in method references. */ -var objectProto$8 = Object.prototype; -/** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ -function isPrototype(value) { - var Ctor = value && value.constructor, - proto = typeof Ctor == 'function' && Ctor.prototype || objectProto$8; - return value === proto; -} + if (value === CHAR_RIGHT_CURLY_BRACE$1) { + if (block.type !== 'brace') { + push({ + type: 'text', + value + }); + continue; + } -var _isPrototype = isPrototype; + let type = 'close'; + block = stack.pop(); + block.close = true; + push({ + type, + value + }); + depth--; + block = stack[stack.length - 1]; + continue; + } + /** + * Comma: ',' + */ -/** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ -function overArg(func, transform) { - return function (arg) { - return func(transform(arg)); - }; -} -var _overArg = overArg; + if (value === CHAR_COMMA$1 && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { + type: 'text', + value: stringify$1(block) + }]; + } -/* Built-in method references for those with the same name as other `lodash` methods. */ + push({ + type: 'comma', + value + }); + block.commas++; + continue; + } + /** + * Dot: '.' + */ -var nativeKeys = _overArg(Object.keys, Object); -var _nativeKeys = nativeKeys; -/** Used for built-in method references. */ + if (value === CHAR_DOT$1 && depth > 0 && block.commas === 0) { + let siblings = block.nodes; -var objectProto$9 = Object.prototype; -/** Used to check objects for own properties. */ + if (depth === 0 || siblings.length === 0) { + push({ + type: 'text', + value + }); + continue; + } -var hasOwnProperty$7 = objectProto$9.hasOwnProperty; -/** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; -function baseKeys(object) { - if (!_isPrototype(object)) { - return _nativeKeys(object); - } + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } - var result = []; + block.ranges++; + block.args = []; + continue; + } - for (var key in Object(object)) { - if (hasOwnProperty$7.call(object, key) && key != 'constructor') { - result.push(key); + if (prev.type === 'range') { + siblings.pop(); + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + + push({ + type: 'dot', + value + }); + continue; } - } + /** + * Text + */ - return result; -} -var _baseKeys = baseKeys; + push({ + type: 'text', + value + }); + } // Mark imbalanced braces and brackets as invalid -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - -function isArrayLike(value) { - return value != null && isLength_1(value.length) && !isFunction_1(value); -} - -var isArrayLike_1 = isArrayLike; -/** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ + do { + block = stack.pop(); -function keys(object) { - return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object); -} + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); // get the location of the block on parent.nodes (block's siblings) -var keys_1 = keys; + let parent = stack[stack.length - 1]; + let index = parent.nodes.indexOf(block); // replace the (invalid) block with it's nodes -/** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); -function baseForOwn(object, iteratee) { - return object && _baseFor(object, iteratee, keys_1); -} + push({ + type: 'eos' + }); + return ast; +}; -var _baseForOwn = baseForOwn; +var parse_1$1 = parse$2; /** - * Creates a `baseEach` or `baseEachRight` function. + * Expand the given pattern or create a regex-compatible string. * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public */ -function createBaseEach(eachFunc, fromRight) { - return function (collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike_1(collection)) { - return eachFunc(collection, iteratee); - } +const braces = (input, options = {}) => { + let output = []; - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); - while (fromRight ? index-- : ++index < length) { - if (iteratee(iterable[index], index, iterable) === false) { - break; + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); } } + } else { + output = [].concat(braces.create(input, options)); + } - return collection; - }; -} - -var _createBaseEach = createBaseEach; + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; /** - * The base implementation of `_.forEach` without support for iteratee shorthands. + * Parse the given `str` with the given `options`. * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public */ -var baseEach = _createBaseEach(_baseForOwn); -var _baseEach = baseEach; +braces.parse = (input, options = {}) => parse_1$1(input, options); /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. + * Creates a braces string from an AST, or an AST node. * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function baseAggregator(collection, setter, iteratee, accumulator) { - _baseEach(collection, function (value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; -} -var _baseAggregator = baseAggregator; +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify$1(braces.parse(input, options), options); + } + return stringify$1(input, options); +}; /** - * Removes all key-value entries from the stack. + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. * - * @private - * @name clear - * @memberOf Stack + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function stackClear() { - this.__data__ = new _ListCache(); - this.size = 0; -} -var _stackClear = stackClear; +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + return compile_1(input, options); +}; /** - * Removes `key` and its value from the stack. + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - this.size = data.size; - return result; -} -var _stackDelete = stackDelete; -/** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ -function stackGet(key) { - return this.__data__.get(key); -} +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } -var _stackGet = stackGet; + let result = expand_1(input, options); // filter out empty strings if specified -/** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function stackHas(key) { - return this.__data__.has(key); -} + if (options.noempty === true) { + result = result.filter(Boolean); + } // filter out duplicates if specified -var _stackHas = stackHas; -/** Used as the size to enable large array optimizations. */ + if (options.nodupes === true) { + result = [...new Set(result)]; + } -var LARGE_ARRAY_SIZE = 200; + return result; +}; /** - * Sets the stack `key` to `value`. + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function stackSet(key, value) { - var data = this.__data__; - - if (data instanceof _ListCache) { - var pairs = data.__data__; - - if (!_Map || pairs.length < LARGE_ARRAY_SIZE - 1) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new _MapCache(pairs); +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; } - data.set(key, value); - this.size = data.size; - return this; -} - -var _stackSet = stackSet; - + return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); +}; /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * Expose "braces" */ -function Stack(entries) { - var data = this.__data__ = new _ListCache(entries); - this.size = data.size; -} // Add methods to `Stack`. - -Stack.prototype.clear = _stackClear; -Stack.prototype['delete'] = _stackDelete; -Stack.prototype.get = _stackGet; -Stack.prototype.has = _stackHas; -Stack.prototype.set = _stackSet; -var _Stack = Stack; +var braces_1 = braces; -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. + * Posix glob regex */ -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED$2); - - return this; -} - -var _setCacheAdd = setCacheAdd; - +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. + * Windows glob regex */ -function setCacheHas(value) { - return this.__data__.has(value); -} - -var _setCacheHas = setCacheHas; +const WINDOWS_CHARS = Object.assign(Object.assign({}, POSIX_CHARS), {}, { + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}); /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. + * POSIX Bracket Regex */ -function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - this.__data__ = new _MapCache(); +const POSIX_REGEX_SOURCE$1 = { + 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' +}; +var constants$1 = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, + // regular expressions + 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, + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + // Digits + CHAR_0: 48, - while (++index < length) { - this.add(values[index]); - } -} // Add methods to `SetCache`. + /* 0 */ + CHAR_9: 57, + /* 9 */ + // Alphabet chars. + CHAR_UPPERCASE_A: 65, -SetCache.prototype.add = SetCache.prototype.push = _setCacheAdd; -SetCache.prototype.has = _setCacheHas; -var _SetCache = SetCache; + /* A */ + CHAR_LOWERCASE_A: 97, -/** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ -function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; + /* a */ + CHAR_UPPERCASE_Z: 90, - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } + /* Z */ + CHAR_LOWERCASE_Z: 122, - return false; -} + /* z */ + CHAR_LEFT_PARENTHESES: 40, -var _arraySome = arraySome; + /* ( */ + CHAR_RIGHT_PARENTHESES: 41, -/** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ -function cacheHas(cache, key) { - return cache.has(key); -} + /* ) */ + CHAR_ASTERISK: 42, -var _cacheHas = cacheHas; - -/** Used to compose bitmasks for value comparisons. */ - -var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; -/** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - -function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } // Check that cyclic values are equal. - - - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - - var index = -1, - result = true, - seen = bitmask & COMPARE_UNORDERED_FLAG ? new _SetCache() : undefined; - stack.set(array, other); - stack.set(other, array); // Ignore non-index properties. - - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); - } + /* * */ + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, - if (compared !== undefined) { - if (compared) { - continue; - } + /* & */ + CHAR_AT: 64, - result = false; - break; - } // Recursively compare arrays (susceptible to call stack limits). + /* @ */ + CHAR_BACKWARD_SLASH: 92, + /* \ */ + CHAR_CARRIAGE_RETURN: 13, - if (seen) { - if (!_arraySome(other, function (othValue, othIndex) { - if (!_cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result = false; - break; - } - } + /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, - stack['delete'](array); - stack['delete'](other); - return result; -} + /* ^ */ + CHAR_COLON: 58, -var _equalArrays = equalArrays; + /* : */ + CHAR_COMMA: 44, -/** Built-in value references. */ + /* , */ + CHAR_DOT: 46, -var Uint8Array = _root.Uint8Array; -var _Uint8Array = Uint8Array; + /* . */ + CHAR_DOUBLE_QUOTE: 34, -/** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ -function mapToArray(map) { - var index = -1, - result = Array(map.size); - map.forEach(function (value, key) { - result[++index] = [key, value]; - }); - return result; -} + /* " */ + CHAR_EQUAL: 61, -var _mapToArray = mapToArray; + /* = */ + CHAR_EXCLAMATION_MARK: 33, -/** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - set.forEach(function (value) { - result[++index] = value; - }); - return result; -} + /* ! */ + CHAR_FORM_FEED: 12, -var _setToArray = setToArray; + /* \f */ + CHAR_FORWARD_SLASH: 47, -/** Used to compose bitmasks for value comparisons. */ + /* / */ + CHAR_GRAVE_ACCENT: 96, -var COMPARE_PARTIAL_FLAG$1 = 1, - COMPARE_UNORDERED_FLAG$1 = 2; -/** `Object#toString` result references. */ + /* ` */ + CHAR_HASH: 35, -var boolTag$1 = '[object Boolean]', - dateTag$1 = '[object Date]', - errorTag$1 = '[object Error]', - mapTag$1 = '[object Map]', - numberTag$1 = '[object Number]', - regexpTag$1 = '[object RegExp]', - setTag$1 = '[object Set]', - stringTag$1 = '[object String]', - symbolTag$1 = '[object Symbol]'; -var arrayBufferTag$1 = '[object ArrayBuffer]', - dataViewTag$1 = '[object DataView]'; -/** Used to convert symbols to primitives and strings. */ + /* # */ + CHAR_HYPHEN_MINUS: 45, -var symbolProto$1 = _Symbol ? _Symbol.prototype : undefined, - symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; -/** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ + /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, -function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag$1: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; - } + /* < */ + CHAR_LEFT_CURLY_BRACE: 123, - object = object.buffer; - other = other.buffer; + /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, - case arrayBufferTag$1: - if (object.byteLength != other.byteLength || !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) { - return false; - } + /* [ */ + CHAR_LINE_FEED: 10, - return true; + /* \n */ + CHAR_NO_BREAK_SPACE: 160, - case boolTag$1: - case dateTag$1: - case numberTag$1: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq_1(+object, +other); + /* \u00A0 */ + CHAR_PERCENT: 37, - case errorTag$1: - return object.name == other.name && object.message == other.message; + /* % */ + CHAR_PLUS: 43, - case regexpTag$1: - case stringTag$1: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == other + ''; + /* + */ + CHAR_QUESTION_MARK: 63, - case mapTag$1: - var convert = _mapToArray; + /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, - case setTag$1: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1; - convert || (convert = _setToArray); + /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, - if (object.size != other.size && !isPartial) { - return false; - } // Assume cyclic values are equal. + /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, + /* ] */ + CHAR_SEMICOLON: 59, - var stacked = stack.get(object); + /* ; */ + CHAR_SINGLE_QUOTE: 39, - if (stacked) { - return stacked == other; - } + /* ' */ + CHAR_SPACE: 32, - bitmask |= COMPARE_UNORDERED_FLAG$1; // Recursively compare objects (susceptible to call stack limits). + /* */ + CHAR_TAB: 9, - stack.set(object, other); - var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; + /* \t */ + CHAR_UNDERSCORE: 95, - case symbolTag$1: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } + /* _ */ + CHAR_VERTICAL_LINE: 124, - } + /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, - return false; -} + /* \uFEFF */ + SEP: path__default['default'].sep, -var _equalByTag = equalByTag; + /** + * Create EXTGLOB_CHARS + */ + extglobChars(chars) { + return { + '!': { + type: 'negate', + open: '(?:(?!(?:', + close: `))${chars.STAR})` + }, + '?': { + type: 'qmark', + open: '(?:', + close: ')?' + }, + '+': { + type: 'plus', + open: '(?:', + close: ')+' + }, + '*': { + type: 'star', + open: '(?:', + close: ')*' + }, + '@': { + type: 'at', + open: '(?:', + close: ')' + } + }; + }, -/** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ + /** + * Create GLOB_CHARS + */ + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object)); -} +}; -var _baseGetAllKeys = baseGetAllKeys; +var utils$2 = createCommonjsModule(function (module, exports) { -/** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ -function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; + const win32 = process.platform === 'win32'; + const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL + } = constants$1; - while (++index < length) { - var value = array[index]; + exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } + exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); - return result; -} + exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); -var _arrayFilter = arrayFilter; + exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); -/** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] - * - * console.log(arrays[0] === arrays[1]); - * // => false - */ -function stubArray() { - return []; -} + exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); -var stubArray_1 = stubArray; + exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); + }; -/** Used for built-in method references. */ + exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); -var objectProto$a = Object.prototype; -/** Built-in value references. */ + if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { + return true; + } -var propertyIsEnumerable$1 = objectProto$a.propertyIsEnumerable; -/* Built-in method references for those with the same name as other `lodash` methods. */ + return false; + }; -var nativeGetSymbols = Object.getOwnPropertySymbols; -/** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ + exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; + } -var getSymbols = !nativeGetSymbols ? stubArray_1 : function (object) { - if (object == null) { - return []; - } + return win32 === true || path__default['default'].sep === '\\'; + }; - object = Object(object); - return _arrayFilter(nativeGetSymbols(object), function (symbol) { - return propertyIsEnumerable$1.call(object, symbol); - }); -}; -var _getSymbols = getSymbols; + exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; + }; -/** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ + exports.removePrefix = (input, state = {}) => { + let output = input; -function getAllKeys(object) { - return _baseGetAllKeys(object, keys_1, _getSymbols); -} + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } -var _getAllKeys = getAllKeys; + return output; + }; -/** Used to compose bitmasks for value comparisons. */ + exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; + let output = `${prepend}(?:${input})${append}`; -var COMPARE_PARTIAL_FLAG$2 = 1; -/** Used for built-in method references. */ + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } -var objectProto$b = Object.prototype; -/** Used to check objects for own properties. */ + return output; + }; +}); -var hasOwnProperty$8 = objectProto$b.hasOwnProperty; -/** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ +const { + CHAR_ASTERISK, -function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2, - objProps = _getAllKeys(object), - objLength = objProps.length, - othProps = _getAllKeys(other), - othLength = othProps.length; + /* * */ + CHAR_AT, - if (objLength != othLength && !isPartial) { - return false; - } + /* @ */ + CHAR_BACKWARD_SLASH, - var index = objLength; + /* \ */ + CHAR_COMMA, - while (index--) { - var key = objProps[index]; + /* , */ + CHAR_DOT, - if (!(isPartial ? key in other : hasOwnProperty$8.call(other, key))) { - return false; - } - } // Check that cyclic values are equal. + /* . */ + CHAR_EXCLAMATION_MARK, + /* ! */ + CHAR_FORWARD_SLASH, - var objStacked = stack.get(object); - var othStacked = stack.get(other); + /* / */ + CHAR_LEFT_CURLY_BRACE, - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } + /* { */ + CHAR_LEFT_PARENTHESES, - var result = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; + /* ( */ + CHAR_LEFT_SQUARE_BRACKET, - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; + /* [ */ + CHAR_PLUS, - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } // Recursively compare objects (susceptible to call stack limits). + /* + */ + CHAR_QUESTION_MARK, + /* ? */ + CHAR_RIGHT_CURLY_BRACE, - if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result = false; - break; - } + /* } */ + CHAR_RIGHT_PARENTHESES, - skipCtor || (skipCtor = key == 'constructor'); - } + /* ) */ + CHAR_RIGHT_SQUARE_BRACKET + /* ] */ - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. +} = constants$1; - if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; + +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; } +}; +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not + * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ - stack['delete'](object); - stack['delete'](other); - return result; -} -var _equalObjects = equalObjects; +const scan = (input, options) => { + const opts = options || {}; + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { + value: '', + depth: 0, + isGlob: false + }; -/* Built-in method references that are verified to be native. */ + const eos = () => index >= length; -var DataView = _getNative(_root, 'DataView'); -var _DataView = DataView; + const peek = () => str.charCodeAt(index + 1); -/* Built-in method references that are verified to be native. */ + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; -var Promise$1 = _getNative(_root, 'Promise'); -var _Promise = Promise$1; + while (index < length) { + code = advance(); + let next; -/* Built-in method references that are verified to be native. */ + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); -var Set$1 = _getNative(_root, 'Set'); -var _Set = Set$1; + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } -/* Built-in method references that are verified to be native. */ + continue; + } -var WeakMap$1 = _getNative(_root, 'WeakMap'); -var _WeakMap = WeakMap$1; + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; -/** `Object#toString` result references. */ + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } -var mapTag$2 = '[object Map]', - objectTag$1 = '[object Object]', - promiseTag = '[object Promise]', - setTag$2 = '[object Set]', - weakMapTag$1 = '[object WeakMap]'; -var dataViewTag$2 = '[object DataView]'; -/** Used to detect maps, sets, and weakmaps. */ + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } -var dataViewCtorString = _toSource(_DataView), - mapCtorString = _toSource(_Map), - promiseCtorString = _toSource(_Promise), - setCtorString = _toSource(_Set), - weakMapCtorString = _toSource(_WeakMap); -/** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; -var getTag = _baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if (scanToEnd === true) { + continue; + } -if (_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2 || _Map && getTag(new _Map()) != mapTag$2 || _Promise && getTag(_Promise.resolve()) != promiseTag || _Set && getTag(new _Set()) != setTag$2 || _WeakMap && getTag(new _WeakMap()) != weakMapTag$1) { - getTag = function (value) { - var result = _baseGetTag(value), - Ctor = result == objectTag$1 ? value.constructor : undefined, - ctorString = Ctor ? _toSource(Ctor) : ''; + break; + } - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag$2; + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; - case mapCtorString: - return mapTag$2; + if (scanToEnd === true) { + continue; + } - case promiseCtorString: - return promiseTag; + break; + } - case setCtorString: - return setTag$2; + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; - case weakMapCtorString: - return weakMapTag$1; + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } } - } - return result; - }; -} + if (scanToEnd === true) { + continue; + } -var _getTag = getTag; + break; + } -/** Used to compose bitmasks for value comparisons. */ + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { + value: '', + depth: 0, + isGlob: false + }; + if (finished === true) continue; -var COMPARE_PARTIAL_FLAG$3 = 1; -/** `Object#toString` result references. */ + if (prev === CHAR_DOT && index === start + 1) { + start += 2; + continue; + } -var argsTag$2 = '[object Arguments]', - arrayTag$1 = '[object Array]', - objectTag$2 = '[object Object]'; -/** Used for built-in method references. */ + lastIndex = index + 1; + continue; + } -var objectProto$c = Object.prototype; -/** Used to check objects for own properties. */ + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; -var hasOwnProperty$9 = objectProto$c.hasOwnProperty; -/** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; -function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray_1(object), - othIsArr = isArray_1(other), - objTag = objIsArr ? arrayTag$1 : _getTag(object), - othTag = othIsArr ? arrayTag$1 : _getTag(other); - objTag = objTag == argsTag$2 ? objectTag$2 : objTag; - othTag = othTag == argsTag$2 ? objectTag$2 : othTag; - var objIsObj = objTag == objectTag$2, - othIsObj = othTag == objectTag$2, - isSameTag = objTag == othTag; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } - if (isSameTag && isBuffer_1(object)) { - if (!isBuffer_1(other)) { - return false; - } + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } - objIsArr = true; - objIsObj = false; - } + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } - if (isSameTag && !objIsObj) { - stack || (stack = new _Stack()); - return objIsArr || isTypedArray_1(object) ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack) : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } + continue; + } - if (!(bitmask & COMPARE_PARTIAL_FLAG$3)) { - var objIsWrapped = objIsObj && hasOwnProperty$9.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty$9.call(other, '__wrapped__'); + break; + } + } - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new _Stack()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; } - } - if (!isSameTag) { - return false; - } + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; - stack || (stack = new _Stack()); - return _equalObjects(object, other, bitmask, customizer, equalFunc, stack); -} + if (scanToEnd === true) { + continue; + } -var _baseIsEqualDeep = baseIsEqualDeep; + break; + } -/** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } -function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + + continue; + } + + break; + } + + if (isGlob === true) { + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } } - if (value == null || other == null || !isObjectLike_1(value) && !isObjectLike_1(other)) { - return value !== value && other !== other; + if (opts.noext === true) { + isExtglob = false; + isGlob = false; } - return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); -} + let base = str; + let prefix = ''; + let glob = ''; -var _baseIsEqual = baseIsEqual; + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } -/** Used to compose bitmasks for value comparisons. */ + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } -var COMPARE_PARTIAL_FLAG$4 = 1, - COMPARE_UNORDERED_FLAG$2 = 2; -/** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } -function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; + if (opts.unescape === true) { + if (glob) glob = utils$2.removeBackslashes(glob); - if (object == null) { - return !length; + if (base && backslashes === true) { + base = utils$2.removeBackslashes(base); + } } - object = Object(object); + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; - while (index--) { - var data = matchData[index]; + if (opts.tokens === true) { + state.maxDepth = 0; - if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; + if (!isPathSeparator(code)) { + tokens.push(token); } + + state.tokens = tokens; } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; + if (opts.parts === true || opts.tokens === true) { + let prevIndex; - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; } - } else { - var stack = new _Stack(); - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); + if (idx !== 0 || value !== '') { + parts.push(value); } - if (!(result === undefined ? _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$4 | COMPARE_UNORDERED_FLAG$2, customizer, stack) : result)) { - return false; + prevIndex = i; + } + + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; } } + + state.slashes = slashes; + state.parts = parts; } - return true; -} + return state; +}; -var _baseIsMatch = baseIsMatch; +var scan_1 = scan; /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. + * Constants */ -function isStrictComparable(value) { - return value === value && !isObject_1(value); -} - -var _isStrictComparable = isStrictComparable; +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants$1; /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. + * Helpers */ -function getMatchData(object) { - var result = keys_1(object), - length = result.length; - - while (length--) { - var key = result[length], - value = object[key]; - result[length] = [key, value, _isStrictComparable(value)]; +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); } - return result; -} + args.sort(); + const value = `[${args.join('-')}]`; -var _getMatchData = getMatchData; + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils$2.escapeRegex(v)).join('..'); + } + return value; +}; /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. + * Create the message for a syntax error */ -function matchesStrictComparable(key, srcValue) { - return function (object) { - if (object == null) { - return false; - } - - return object[key] === srcValue && (srcValue !== undefined || key in Object(object)); - }; -} -var _matchesStrictComparable = matchesStrictComparable; +const syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} */ -function baseMatches(source) { - var matchData = _getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return _matchesStrictComparable(matchData[0][0], matchData[0][1]); +const parse$1 = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); } - return function (object) { - return object === source || _baseIsMatch(object, source, matchData); - }; -} + input = REPLACEMENTS[input] || input; + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + let len = input.length; -var _baseMatches = baseMatches; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } -/** - * 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' - */ + const bos = { + type: 'bos', + value: '', + output: opts.prepend || '' + }; + const tokens = [bos]; + const capture = opts.capture ? '' : '?:'; + const win32 = utils$2.isWindows(options); // create constants based on platform, for windows or posix -function get(object, path, defaultValue) { - var result = object == null ? undefined : _baseGet(object, path); - return result === undefined ? defaultValue : result; -} + const PLATFORM_CHARS = constants$1.globChars(win32); + const EXTGLOB_CHARS = constants$1.extglobChars(PLATFORM_CHARS); + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; -var get_1 = get; + const globstar = opts => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; -/** Used to compose bitmasks for value comparisons. */ + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; -var COMPARE_PARTIAL_FLAG$5 = 1, - COMPARE_UNORDERED_FLAG$3 = 2; -/** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ + if (opts.capture) { + star = `(${star})`; + } // minimatch options support -function baseMatchesProperty(path, srcValue) { - if (_isKey(path) && _isStrictComparable(srcValue)) { - return _matchesStrictComparable(_toKey(path), srcValue); + + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; } - return function (object) { - var objValue = get_1(object, path); - return objValue === undefined && objValue === srcValue ? hasIn_1(object, path) : _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$5 | COMPARE_UNORDERED_FLAG$3); + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens }; -} + input = utils$2.removePrefix(input, state); + len = input.length; + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + /** + * Tokenizing helpers + */ -var _baseMatchesProperty = baseMatchesProperty; + const eos = () => state.index === len - 1; -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ -function baseProperty(key) { - return function (object) { - return object == null ? undefined : object[key]; - }; -} + const peek = state.peek = (n = 1) => input[state.index + n]; -var _baseProperty = baseProperty; + const advance = state.advance = () => input[++state.index] || ''; -/** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ + const remaining = () => input.slice(state.index + 1); -function basePropertyDeep(path) { - return function (object) { - return _baseGet(object, path); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; }; -} -var _basePropertyDeep = basePropertyDeep; + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; -/** - * Creates a function that returns the value at `path` of a given object. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - * @example - * - * var objects = [ - * { 'a': { 'b': 2 } }, - * { 'a': { 'b': 1 } } - * ]; - * - * _.map(objects, _.property('a.b')); - * // => [2, 1] - * - * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); - * // => [1, 2] - */ + const negate = () => { + let count = 1; -function property(path) { - return _isKey(path) ? _baseProperty(_toKey(path)) : _basePropertyDeep(path); -} + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } -var property_1 = property; + if (count % 2 === 0) { + return false; + } -/** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ + state.negated = true; + state.start++; + return true; + }; -function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } + const increment = type => { + state[type]++; + stack.push(type); + }; - if (value == null) { - return identity_1; - } + const decrement = type => { + state[type]--; + stack.pop(); + }; + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ - if (typeof value == 'object') { - return isArray_1(value) ? _baseMatchesProperty(value[0], value[1]) : _baseMatches(value); - } - return property_1(value); -} + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'); -var _baseIteratee = baseIteratee; + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } + } -/** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ + if (extglobs.length && tok.type !== 'paren') { + extglobs[extglobs.length - 1].inner += tok.value; + } -function createAggregator(setter, initializer) { - return function (collection, iteratee) { - var func = isArray_1(collection) ? _arrayAggregator : _baseAggregator, - accumulator = initializer ? initializer() : {}; - return func(collection, setter, _baseIteratee(iteratee), accumulator); - }; -} + if (tok.value || tok.output) append(tok); -var _createAggregator = createAggregator; + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; + } -/** Used for built-in method references. */ + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; -var objectProto$d = Object.prototype; -/** Used to check objects for own properties. */ + const extglobOpen = (type, value) => { + const token = Object.assign(Object.assign({}, EXTGLOB_CHARS[value]), {}, { + conditions: 1, + inner: '' + }); + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; + increment('parens'); + push({ + type, + value, + output: state.output ? '' : ONE_CHAR + }); + push({ + type: 'paren', + extglob: true, + value: advance(), + output + }); + extglobs.push(token); + }; -var hasOwnProperty$a = objectProto$d.hasOwnProperty; -/** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + let rest; -var groupBy = _createAggregator(function (result, value, key) { - if (hasOwnProperty$a.call(result, key)) { - result[key].push(value); - } else { - _baseAssignValue(result, key, [value]); - } -}); -var groupBy_1 = groupBy; + if (token.type === 'negate') { + let extglobStar = star; -/** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); + } -var partition = _createAggregator(function (result, value, key) { - result[key ? 0 : 1].push(value); -}, function () { - return [[], []]; -}); -var partition_1 = partition; + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } -var thirdParty = require("./third-party"); + if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + output = token.close = `)${rest})${extglobStar})`; + } -var prettierInternal = src.__internal; + if (token.prev.type === 'bos') { + state.negatedExtglob = true; + } + } -var minimist = function (args, opts) { - if (!opts) opts = {}; - var flags = { - bools: {}, - strings: {}, - unknownFn: null + push({ + type: 'paren', + extglob: true, + value, + output + }); + decrement('parens'); }; + /** + * Fast paths + */ - if (typeof opts['unknown'] === 'function') { - flags.unknownFn = opts['unknown']; - } - if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { - flags.allBools = true; - } else { - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); - } + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } - if (aliases[key]) { - flags.strings[aliases[key]] = true; - } - }); - var defaults = opts['default'] || {}; - var argv = { - _: [] - }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - var notFlags = []; + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--') + 1); - args = args.slice(0, args.indexOf('--')); - } + return QMARK.repeat(chars.length); + } - function argDefined(key, arg) { - return flags.allBools && /^--[^=]+$/.test(arg) || flags.strings[key] || flags.bools[key] || aliases[key]; - } + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } - function setArg(key, val, arg) { - if (arg && flags.unknownFn && !argDefined(key, arg)) { - if (flags.unknownFn(arg) === false) return; - } + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } - var value = !flags.strings[key] && isNumber(val) ? Number(val) : val; - setKey(argv, key.split('.'), value); - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); + return star; + } + + return esc ? m : `\\${m}`; }); - } - function setKey(obj, keys, value) { - var o = obj; + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : m ? '\\' : ''; + }); + } + } - for (var i = 0; i < keys.length - 1; i++) { - var key = keys[i]; - if (key === '__proto__') return; - if (o[key] === undefined) o[key] = {}; - if (o[key] === Object.prototype || o[key] === Number.prototype || o[key] === String.prototype) o[key] = {}; - if (o[key] === Array.prototype) o[key] = []; - o = o[key]; + if (output === input && opts.contains === true) { + state.output = input; + return state; } - var key = keys[keys.length - 1]; - if (key === '__proto__') return; - if (o === Object.prototype || o === Number.prototype || o === String.prototype) o = {}; - if (o === Array.prototype) o = []; + state.output = utils$2.wrapOutput(output, state, options); + return state; + } + /** + * Tokenize input until we reach end-of-string + */ - if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { - o[key] = value; - } else if (Array.isArray(o[key])) { - o[key].push(value); - } else { - o[key] = [o[key], value]; + + while (!eos()) { + value = advance(); + + if (value === '\u0000') { + continue; } - } + /** + * Escaped characters + */ - function aliasIsBoolean(key) { - return aliases[key].some(function (x) { - return flags.bools[x]; - }); - } - for (var i = 0; i < args.length; i++) { - var arg = args[i]; + if (value === '\\') { + const next = peek(); - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - var key = m[1]; - var value = m[2]; + if (next === '/' && opts.bash !== true) { + continue; + } - if (flags.bools[key]) { - value = value !== 'false'; + if (next === '.' || next === ';') { + continue; } - setArg(key, value, arg); - } else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false, arg); - } else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; + if (!next) { + value += '\\'; + push({ + type: 'text', + value + }); + continue; + } // collapse slashes to reduce potential for exploits - if (next !== undefined && !/^-/.test(next) && !flags.bools[key] && !flags.allBools && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, next, arg); - i++; - } else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true', arg); - i++; - } else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1, -1).split(''); - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j + 2); + const match = /^\\+/.exec(remaining()); + let slashes = 0; - if (next === '-') { - setArg(letters[j], next, arg); - continue; - } + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; - if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { - setArg(letters[j], next.split('=')[1], arg); - broken = true; - break; + if (slashes % 2 !== 0) { + value += '\\'; } + } - if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next, arg); - broken = true; - break; - } + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } - if (letters[j + 1] && letters[j + 1].match(/\W/)) { - setArg(letters[j], arg.slice(j + 2), arg); - broken = true; - break; - } else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); - } + if (state.brackets === 0) { + push({ + type: 'text', + value + }); + continue; } + } + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i + 1] && !/^(-|--)[^-]/.test(args[i + 1]) && !flags.bools[key] && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, args[i + 1], arg); - i++; - } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) { - setArg(key, args[i + 1] === 'true', arg); - i++; - } else { - setArg(key, flags.strings[key] ? '' : true, arg); + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + + if (inner.includes('[')) { + prev.posix = true; + + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; + + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + + continue; + } + } } } - } else { - if (!flags.unknownFn || flags.unknownFn(arg) !== false) { - argv._.push(flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)); + + if (value === '[' && peek() !== ':' || value === '-' && peek() === ']') { + value = `\\${value}`; } - if (opts.stopEarly) { - argv._.push.apply(argv._, args.slice(i + 1)); + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } - break; + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; } - } - } - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); + prev.value += value; + append({ + value }); + continue; } - }); + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ - if (opts['--']) { - argv['--'] = new Array(); - notFlags.forEach(function (key) { - argv['--'].push(key); - }); - } else { - notFlags.forEach(function (key) { - argv._.push(key); - }); - } - return argv; -}; + if (state.quotes === 1 && value !== '"') { + value = utils$2.escapeRegex(value); + prev.value += value; + append({ + value + }); + continue; + } + /** + * Double quotes + */ -function hasKey(obj, keys) { - var o = obj; - keys.slice(0, -1).forEach(function (key) { - o = o[key] || {}; - }); - var key = keys[keys.length - 1]; - return key in o; -} -function isNumber(x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); -} - -const PLACEHOLDER = null; -/** - * unspecified boolean flag without default value is parsed as `undefined` instead of `false` - */ + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; -var minimist_1 = function (args, options) { - const boolean = options.boolean || []; - const defaults = options.default || {}; - const booleanWithoutDefault = boolean.filter(key => !(key in defaults)); - const newDefaults = Object.assign({}, defaults, fromPairs_1(booleanWithoutDefault.map(key => [key, PLACEHOLDER]))); - const parsed = minimist(args, Object.assign({}, options, { - default: newDefaults - })); - return fromPairs_1(Object.entries(parsed).filter(([, value]) => value !== PLACEHOLDER)); -}; + if (opts.keepQuotes === true) { + push({ + type: 'text', + value + }); + } -var array = createCommonjsModule(function (module, exports) { + continue; + } + /** + * Parentheses + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.splitWhen = exports.flatten = void 0; - function flatten(items) { - return items.reduce((collection, item) => [].concat(collection, item), []); - } + if (value === '(') { + increment('parens'); + push({ + type: 'paren', + value + }); + continue; + } - exports.flatten = flatten; + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '(')); + } - function splitWhen(items, predicate) { - const result = [[]]; - let groupIndex = 0; + const extglob = extglobs[extglobs.length - 1]; - for (const item of items) { - if (predicate(item)) { - groupIndex++; - result[groupIndex] = []; - } else { - result[groupIndex].push(item); + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; } + + push({ + type: 'paren', + value, + output: state.parens ? ')' : '\\)' + }); + decrement('parens'); + continue; } + /** + * Square brackets + */ - return result; - } - exports.splitWhen = splitWhen; -}); + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('closing', ']')); + } -var errno = createCommonjsModule(function (module, exports) { + value = `\\${value}`; + } else { + increment('brackets'); + } - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isEnoentCodeError = void 0; + push({ + type: 'bracket', + value + }); + continue; + } - function isEnoentCodeError(error) { - return error.code === 'ENOENT'; - } + if (value === ']') { + if (opts.nobracket === true || prev && prev.type === 'bracket' && prev.value.length === 1) { + push({ + type: 'text', + value, + output: `\\${value}` + }); + continue; + } - exports.isEnoentCodeError = isEnoentCodeError; -}); + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '[')); + } -var fs = createCommonjsModule(function (module, exports) { + push({ + type: 'text', + value, + output: `\\${value}` + }); + continue; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createDirentFromStats = void 0; + decrement('brackets'); + const prevValue = prev.value.slice(1); - class DirentFromStats { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); - } + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } - } + prev.value += value; + append({ + value + }); // when literal brackets are explicitly disabled + // assume we should match with a regex character class - function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); - } + if (opts.literalBrackets === false || utils$2.hasRegexChars(prevValue)) { + continue; + } - exports.createDirentFromStats = createDirentFromStats; -}); + const escaped = utils$2.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters -var path_1 = createCommonjsModule(function (module, exports) { + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } // when the user specifies nothing, try to match both - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; - const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ - const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; - /** - * Designed to work only with simple paths: `dir\\file`. - */ + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + /** + * Braces + */ - function unixify(filepath) { - return filepath.replace(/\\/g, '/'); - } - exports.unixify = unixify; + if (value === '{' && opts.nobrace !== true) { + increment('braces'); + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + braces.push(open); + push(open); + continue; + } - function makeAbsolute(cwd, filepath) { - return path__default['default'].resolve(cwd, filepath); - } + if (value === '}') { + const brace = braces[braces.length - 1]; - exports.makeAbsolute = makeAbsolute; + if (opts.nobrace === true || !brace) { + push({ + type: 'text', + value, + output: value + }); + continue; + } - function escape(pattern) { - return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); - } + let output = ')'; - exports.escape = escape; + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; - function removeLeadingDotSegment(entry) { - // We do not use `startsWith` because this is 10x slower than current implementation for some cases. - // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with - if (entry.charAt(0) === '.') { - const secondCharactery = entry.charAt(1); + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); - if (secondCharactery === '/' || secondCharactery === '\\') { - return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + if (arr[i].type === 'brace') { + break; + } + + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } + + output = expandRange(range, opts); + state.backtrack = true; } - } - return entry; - } + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; - exports.removeLeadingDotSegment = removeLeadingDotSegment; -}); + for (const t of toks) { + state.output += t.output || t.value; + } + } -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -var isExtglob = function isExtglob(str) { - if (typeof str !== 'string' || str === '') { - return false; - } + push({ + type: 'brace', + value, + output + }); + decrement('braces'); + braces.pop(); + continue; + } + /** + * Pipes + */ - var match; - while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) { - if (match[2]) return true; - str = str.slice(match.index + match[0].length); - } + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } - return false; -}; + push({ + type: 'text', + value + }); + continue; + } + /** + * Commas + */ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -var chars = { - '{': '}', - '(': ')', - '[': ']' -}; -var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; -var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; + if (value === ',') { + let output = value; + const brace = braces[braces.length - 1]; -var isGlob = function isGlob(str, options) { - if (typeof str !== 'string' || str === '') { - return false; - } + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } - if (isExtglob(str)) { - return true; - } + push({ + type: 'comma', + value, + output + }); + continue; + } + /** + * Slashes + */ - var regex = strictRegex; - var match; // optionally relax regex - if (options && options.strict === false) { - regex = relaxedRegex; - } + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token - while (match = regex.exec(str)) { - if (match[2]) return true; - var idx = match.index + match[0].length; // if an open bracket/brace/paren is escaped, - // set the index to the next closing character + continue; + } - var open = match[1]; - var close = open ? chars[open] : null; + push({ + type: 'slash', + value, + output: SLASH_LITERAL + }); + continue; + } + /** + * Dots + */ - if (open && close) { - var n = str.indexOf(close, idx); - if (n !== -1) { - idx = n + 1; + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; } - } - str = str.slice(idx); - } + if (state.braces + state.parens === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ + type: 'text', + value, + output: DOT_LITERAL + }); + continue; + } - return false; -}; + push({ + type: 'dot', + value, + output: DOT_LITERAL + }); + continue; + } + /** + * Question marks + */ -var pathPosixDirname = path__default['default'].posix.dirname; -var isWin32 = os__default['default'].platform() === 'win32'; -var slash = '/'; -var backslash = /\\/g; -var enclosure = /[\{\[].*[\/]*.*[\}\]]$/; -var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; -var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; -/** - * @param {string} str - * @param {Object} opts - * @param {boolean} [opts.flipBackslashes=true] - */ -var globParent = function globParent(str, opts) { - var options = Object.assign({ - flipBackslashes: true - }, opts); // flip windows path separators + if (value === '?') { + const isGroup = prev && prev.value === '('; - if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { - str = str.replace(backslash, slash); - } // special case for strings ending in enclosure containing path separator + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; - if (enclosure.test(str)) { - str += slash; - } // preserves full path in case of trailing path separator + if (next === '<' && !utils$2.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } + if (prev.value === '(' && !/[!=<:]/.test(next) || next === '<' && !/<([!=]|\w+>)/.test(remaining())) { + output = `\\${value}`; + } - str += 'a'; // remove path parts that are globby + push({ + type: 'text', + value, + output + }); + continue; + } - do { - str = pathPosixDirname(str); - } while (isGlob(str) || globby.test(str)); // remove escape chars and return result + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ + type: 'qmark', + value, + output: QMARK_NO_DOT + }); + continue; + } + push({ + type: 'qmark', + value, + output: QMARK + }); + continue; + } + /** + * Exclamation + */ - return str.replace(escaped, '$1'); -}; -var utils = createCommonjsModule(function (module, exports) { + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } - exports.isInteger = num => { - if (typeof num === 'number') { - return Number.isInteger(num); + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } } + /** + * Plus + */ - if (typeof num === 'string' && num.trim() !== '') { - return Number.isInteger(Number(num)); - } - return false; - }; - /** - * Find a node of the given type - */ + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } + if (prev && prev.value === '(' || opts.regex === false) { + push({ + type: 'plus', + value, + output: PLUS_LITERAL + }); + continue; + } - exports.find = (node, type) => node.nodes.find(node => node.type === type); - /** - * Find a node of the given type - */ + if (prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace') || state.parens > 0) { + push({ + type: 'plus', + value + }); + continue; + } + + push({ + type: 'plus', + value: PLUS_LITERAL + }); + continue; + } + /** + * Plain text + */ - exports.exceedsLimit = (min, max, step = 1, limit) => { - if (limit === false) return false; - if (!exports.isInteger(min) || !exports.isInteger(max)) return false; - return (Number(max) - Number(min)) / Number(step) >= limit; - }; - /** - * Escape the given node with '\\' before node.value - */ + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ + type: 'at', + extglob: true, + value, + output: '' + }); + continue; + } + push({ + type: 'text', + value + }); + continue; + } + /** + * Plain text + */ - exports.escapeNode = (block, n = 0, type) => { - let node = block.nodes[n]; - if (!node) return; - if (type && node.type === type || node.type === 'open' || node.type === 'close') { - if (node.escaped !== true) { - node.value = '\\' + node.value; - node.escaped = true; + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; } - } - }; - /** - * Returns true if the given brace node should be enclosed in literal braces - */ + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - exports.encloseBrace = node => { - if (node.type !== 'brace') return false; + if (match) { + value += match[0]; + state.index += match[0].length; + } - if (node.commas >> 0 + node.ranges >> 0 === 0) { - node.invalid = true; - return true; + push({ + type: 'text', + value + }); + continue; } + /** + * Stars + */ - return false; - }; - /** - * Returns true if a brace node is invalid. - */ + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } - exports.isInvalidBrace = block => { - if (block.type !== 'brace') return false; - if (block.invalid === true || block.dollar) return true; + let rest = remaining(); - if (block.commas >> 0 + block.ranges >> 0 === 0) { - block.invalid = true; - return true; + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; - } + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; + } - return false; - }; - /** - * Returns true if a node is an open or close node - */ + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + if (opts.bash === true && (!isStart || rest[0] && rest[0] !== '/')) { + push({ + type: 'star', + value, + output: '' + }); + continue; + } - exports.isOpenOrClose = node => { - if (node.type === 'open' || node.type === 'close') { - return true; - } + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); - return node.open === true || node.close === true; - }; - /** - * Reduce an array of text nodes. - */ + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ + type: 'star', + value, + output: '' + }); + continue; + } // strip consecutive `/**/` - exports.reduce = nodes => nodes.reduce((acc, node) => { - if (node.type === 'text') acc.push(node.value); - if (node.type === 'range') node.type = 'text'; - return acc; - }, []); - /** - * Flatten an array - */ + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { + break; + } - exports.flatten = (...args) => { - const result = []; + rest = rest.slice(3); + consume('/**', 3); + } - const flat = arr => { - for (let i = 0; i < arr.length; i++) { - let ele = arr[i]; - Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; } - return result; - }; + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } - flat(args); - return result; - }; -}); + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + state.output += prior.output + prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: 'slash', + value: '/', + output: '' + }); + continue; + } -var stringify = (ast, options = {}) => { - let stringify = (node, parent = {}) => { - let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let output = ''; + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: 'slash', + value: '/', + output: '' + }); + continue; + } // remove single star from output - if (node.value) { - if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { - return '\\' + node.value; - } - return node.value; - } + state.output = state.output.slice(0, -prev.output.length); // reset previous token to globstar - if (node.value) { - return node.value; - } + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; // reset output with globstar - if (node.nodes) { - for (let child of node.nodes) { - output += stringify(child); - } + state.output += prev.output; + state.globstar = true; + consume(value); + continue; } - return output; - }; + const token = { + type: 'star', + value, + output: star + }; - return stringify(ast); -}; + if (opts.bash === true) { + token.output = '.*?'; -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } -var isNumber$1 = function (num) { - if (typeof num === 'number') { - return num - num === 0; - } + push(token); + continue; + } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); - } + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } - return false; -}; + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + } else { + state.output += nodot; + prev.output += nodot; + } -const toRegexRange = (min, max, options) => { - if (isNumber$1(min) === false) { - throw new TypeError('toRegexRange: expected the first argument to be a number'); - } + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } - if (max === void 0 || min === max) { - return String(min); + push(token); } - if (isNumber$1(max) === false) { - throw new TypeError('toRegexRange: expected the second argument to be a number.'); + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); + state.output = utils$2.escapeLast(state.output, '['); + decrement('brackets'); } - let opts = Object.assign({ - relaxZeros: true - }, options); - - if (typeof opts.strictZeros === 'boolean') { - opts.relaxZeros = opts.strictZeros === false; + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); + state.output = utils$2.escapeLast(state.output, '('); + decrement('parens'); } - let relax = String(opts.relaxZeros); - let shorthand = String(opts.shorthand); - let capture = String(opts.capture); - let wrap = String(opts.wrap); - let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; - - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); + state.output = utils$2.escapeLast(state.output, '{'); + decrement('braces'); } - let a = Math.min(min, max); - let b = Math.max(min, max); + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ + type: 'maybe_slash', + value: '', + output: `${SLASH_LITERAL}?` + }); + } // rebuild the output if we had to backtrack at any point - if (Math.abs(a - b) === 1) { - let result = min + '|' + max; - if (opts.capture) { - return `(${result})`; - } + if (state.backtrack === true) { + state.output = ''; - if (opts.wrap === false) { - return result; - } + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; - return `(?:${result})`; + if (token.suffix) { + state.output += token.suffix; + } + } } - let isPadded = hasPadding(min) || hasPadding(max); - let state = { - min, - max, - a, - b - }; - let positives = []; - let negatives = []; + return state; +}; +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ - if (isPadded) { - state.isPadded = isPadded; - state.maxLen = String(state.max).length; - } - if (a < 0) { - let newMin = b < 0 ? Math.abs(b) : 1; - negatives = splitToPatterns(newMin, Math.abs(a), state, opts); - a = state.a = 0; - } +parse$1.fastpaths = (input, options) => { + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; - if (b >= 0) { - positives = splitToPatterns(a, b, state, opts); + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } - state.negatives = negatives; - state.positives = positives; - state.result = collatePatterns(negatives, positives); + input = REPLACEMENTS[input] || input; + const win32 = utils$2.isWindows(options); // create constants based on platform, for windows or posix - if (opts.capture === true) { - state.result = `(${state.result})`; - } else if (opts.wrap !== false && positives.length + negatives.length > 1) { - state.result = `(?:${state.result})`; + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants$1.globChars(win32); + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { + negated: false, + prefix: '' + }; + let star = opts.bash === true ? '.*?' : STAR; + + if (opts.capture) { + star = `(${star})`; } - toRegexRange.cache[cacheKey] = state; - return state.result; -}; + const globstar = opts => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; -function collatePatterns(neg, pos, options) { - let onlyNegative = filterPatterns(neg, pos, '-', false) || []; - let onlyPositive = filterPatterns(pos, neg, '', false) || []; - let intersected = filterPatterns(neg, pos, '-?', true) || []; - let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join('|'); -} + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; -function splitToRanges(min, max) { - let nines = 1; - let zeros = 1; - let stop = countNines(min, nines); - let stops = new Set([max]); + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; - while (min <= stop && stop <= max) { - stops.add(stop); - nines += 1; - stop = countNines(min, nines); - } + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - stop = countZeros(max + 1, zeros) - 1; + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; - while (min < stop && stop <= max) { - stops.add(stop); - zeros += 1; - stop = countZeros(max + 1, zeros) - 1; - } + case '**': + return nodot + globstar(opts); - stops = [...stops]; - stops.sort(compare); - return stops; -} -/** - * Convert a range to a regex pattern - * @param {Number} `start` - * @param {Number} `stop` - * @return {String} - */ + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; -function rangeToPattern(start, stop, options) { - if (start === stop) { - return { - pattern: start, - count: [], - digits: 0 - }; - } + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; - let zipped = zip(start, stop); - let digits = zipped.length; - let pattern = ''; - let count = 0; + default: + { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + const source = create(match[1]); + if (!source) return; + return source + DOT_LITERAL + match[2]; + } + } + }; - for (let i = 0; i < digits; i++) { - let [startDigit, stopDigit] = zipped[i]; + const output = utils$2.removePrefix(input, state); + let source = create(output); - if (startDigit === stopDigit) { - pattern += startDigit; - } else if (startDigit !== '0' || stopDigit !== '9') { - pattern += toCharacterClass(startDigit, stopDigit); - } else { - count++; - } + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; } - if (count) { - pattern += options.shorthand === true ? '\\d' : '[0-9]'; - } + return source; +}; - return { - pattern, - count: [count], - digits - }; -} +var parse_1 = parse$1; -function splitToPatterns(min, max, tok, options) { - let ranges = splitToRanges(min, max); - let tokens = []; - let start = min; - let prev; +const isObject$1 = val => val && typeof val === 'object' && !Array.isArray(val); +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ - for (let i = 0; i < ranges.length; i++) { - let max = ranges[i]; - let obj = rangeToPattern(String(start), String(max), options); - let zeros = ''; - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.count.length > 1) { - prev.count.pop(); - } +const picomatch$1 = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch$1(input, options, returnState)); - prev.count.push(obj.count[0]); - prev.string = prev.pattern + toQuantifier(prev.count); - start = max + 1; - continue; - } + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } - if (tok.isPadded) { - zeros = padZeros(max, tok, options); - } + return false; + }; - obj.string = zeros + obj.pattern + toQuantifier(obj.count); - tokens.push(obj); - start = max + 1; - prev = obj; + return arrayMatcher; } - return tokens; -} - -function filterPatterns(arr, comparison, prefix, intersection, options) { - let result = []; - - for (let ele of arr) { - let { - string - } = ele; // only push if _both_ are negative... - - if (!intersection && !contains(comparison, 'string', string)) { - result.push(prefix + string); - } // or _both_ are positive + const isState = isObject$1(glob) && glob.tokens && glob.input; - - if (intersection && contains(comparison, 'string', string)) { - result.push(prefix + string); - } + if (glob === '' || typeof glob !== 'string' && !isState) { + throw new TypeError('Expected pattern to be a non-empty string'); } - return result; -} -/** - * Zip strings - */ + const opts = options || {}; + const posix = utils$2.isWindows(options); + const regex = isState ? picomatch$1.compileRe(glob, options) : picomatch$1.makeRe(glob, options, false, true); + const state = regex.state; + delete regex.state; + let isIgnored = () => false; -function zip(a, b) { - let arr = []; + if (opts.ignore) { + const ignoreOpts = Object.assign(Object.assign({}, options), {}, { + ignore: null, + onMatch: null, + onResult: null + }); + isIgnored = picomatch$1(opts.ignore, ignoreOpts, returnState); + } - for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + const matcher = (input, returnObject = false) => { + const { + isMatch, + match, + output + } = picomatch$1.test(input, regex, options, { + glob, + posix + }); + const result = { + glob, + state, + regex, + posix, + input, + output, + match, + isMatch + }; - return arr; -} + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } -function compare(a, b) { - return a > b ? 1 : b > a ? -1 : 0; -} + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } -function contains(arr, key, val) { - return arr.some(ele => ele[key] === val); -} + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } -function countNines(min, len) { - return Number(String(min).slice(0, -len) + '9'.repeat(len)); -} + result.isMatch = false; + return returnObject ? result : false; + } -function countZeros(integer, zeros) { - return integer - integer % Math.pow(10, zeros); -} + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } -function toQuantifier(digits) { - let [start = 0, stop = ''] = digits; + return returnObject ? result : true; + }; - if (stop || start > 1) { - return `{${start + (stop ? ',' + stop : '')}}`; + if (returnState) { + matcher.state = state; } - return ''; -} - -function toCharacterClass(a, b, options) { - return `[${a}${b - a === 1 ? '' : '-'}${b}]`; -} + return matcher; +}; +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ -function hasPadding(str) { - return /^-?(0+)\d/.test(str); -} -function padZeros(value, tok, options) { - if (!tok.isPadded) { - return value; +picomatch$1.test = (input, regex, options, { + glob, + posix +} = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); } - let diff = Math.abs(tok.maxLen - String(value).length); - let relax = options.relaxZeros !== false; - - switch (diff) { - case 0: - return ''; - - case 1: - return relax ? '0?' : '0'; + if (input === '') { + return { + isMatch: false, + output: '' + }; + } - case 2: - return relax ? '0{0,2}' : '00'; + const opts = options || {}; + const format = opts.format || (posix ? utils$2.toPosixSlashes : null); + let match = input === glob; + let output = match && format ? format(input) : input; - default: - { - return relax ? `0{0,${diff}}` : `0{${diff}}`; - } + if (match === false) { + output = format ? format(input) : input; + match = output === glob; } -} -/** - * Cache - */ - -toRegexRange.cache = {}; + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch$1.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } -toRegexRange.clearCache = () => toRegexRange.cache = {}; + return { + isMatch: Boolean(match), + match, + output + }; +}; /** - * Expose `toRegexRange` + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public */ -var toRegexRange_1 = toRegexRange; - -const isObject$1 = val => val !== null && typeof val === 'object' && !Array.isArray(val); - -const transform = toNumber => { - return value => toNumber === true ? Number(value) : String(value); -}; - -const isValidValue = value => { - return typeof value === 'number' || typeof value === 'string' && value !== ''; +picomatch$1.matchBase = (input, glob, options, posix = utils$2.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch$1.makeRe(glob, options); + return regex.test(path__default['default'].basename(input)); }; +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ -const isNumber$2 = num => Number.isInteger(+num); -const zeros = input => { - let value = `${input}`; - let index = -1; - if (value[0] === '-') value = value.slice(1); - if (value === '0') return false; +picomatch$1.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str); +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ - while (value[++index] === '0'); - return index > 0; +picomatch$1.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch$1.parse(p, options)); + return parse_1(pattern, Object.assign(Object.assign({}, options), {}, { + fastpaths: false + })); }; +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ -const stringify$1 = (start, end, options) => { - if (typeof start === 'string' || typeof end === 'string') { - return true; - } - return options.stringify === true; -}; +picomatch$1.scan = (input, options) => scan_1(input, options); +/** + * Compile a regular expression from the `state` object returned by the + * [parse()](#parse) method. + * + * @param {Object} `state` + * @param {Object} `options` + * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. + * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. + * @return {RegExp} + * @api public + */ -const pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === '-' ? '-' : ''; - if (dash) input = input.slice(1); - input = dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'); - } - if (toNumber === false) { - return String(input); +picomatch$1.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; } - return input; -}; - -const toMaxLen = (input, maxLength) => { - let negative = input[0] === '-' ? '-' : ''; + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; + let source = `${prepend}(?:${state.output})${append}`; - if (negative) { - input = input.slice(1); - maxLength--; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; } - while (input.length < maxLength) input = '0' + input; + const regex = picomatch$1.toRegex(source, options); - return negative ? '-' + input : input; + if (returnState === true) { + regex.state = state; + } + + return regex; }; +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. + * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ -const toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - let prefix = options.capture ? '' : '?:'; - let positives = ''; - let negatives = ''; - let result; - if (parts.positives.length) { - positives = parts.positives.join('|'); +picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); } - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join('|')})`; - } + let parsed = { + negated: false, + fastpaths: true + }; - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; + if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + parsed.output = parse_1.fastpaths(input, options); } - if (options.wrap) { - return `(${prefix}${result})`; + if (!parsed.output) { + parsed = parse_1(input, options); } - return result; + return picomatch$1.compileRe(parsed, options, returnOutput, returnState); }; +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ -const toRange = (a, b, isNumbers, options) => { - if (isNumbers) { - return toRegexRange_1(a, b, Object.assign({ - wrap: false - }, options)); - } - - let start = String.fromCharCode(a); - if (a === b) return start; - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; -}; -const toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? '' : '?:'; - return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); +picomatch$1.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; } - - return toRegexRange_1(start, end, options); -}; - -const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util__default['default'].inspect(...args)); }; +/** + * Picomatch constants. + * @return {Object} + */ -const invalidRange = (start, end, options) => { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; -}; -const invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } +picomatch$1.constants = constants$1; +/** + * Expose "picomatch" + */ - return []; -}; +var picomatch_1 = picomatch$1; -const fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); +var picomatch = picomatch_1; - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; - } // fix negative zero +const isEmptyString = val => val === '' || val === './'; +/** + * Returns an array of strings that match one or more glob patterns. + * + * ```js + * const mm = require('micromatch'); + * // mm(list, patterns[, options]); + * + * console.log(mm(['a.js', 'a.txt'], ['*.js'])); + * //=> [ 'a.js' ] + * ``` + * @param {String|Array} `list` List of strings to match. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) + * @return {Array} Returns an array of matches + * @summary false + * @api public + */ - if (a === 0) a = 0; - if (b === 0) b = 0; - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify$1(start, end, options) === false; - let format = options.transform || transform(toNumber); +const micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + let omit = new Set(); + let keep = new Set(); + let items = new Set(); + let negatives = 0; - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } + let onResult = state => { + items.add(state.output); - let parts = { - negatives: [], - positives: [] + if (options && options.onResult) { + options.onResult(state); + } }; - let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), Object.assign(Object.assign({}, options), {}, { + onResult + }), true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) negatives++; - let range = []; - let index = 0; + for (let item of list) { + let matched = isMatch(item, true); + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) continue; - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format(a, index), maxLen, toNumber)); + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } } - - a = descending ? a - step : a + step; - index++; } - if (options.toRegex === true) { - return step > 1 ? toSequence(parts, options) : toRegex(range, null, Object.assign({ - wrap: false - }, options)); + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter(item => !omit.has(item)); + + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(', ')}"`); + } + + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; + } } - return range; + return matches; }; +/** + * Backwards compatibility + */ -const fillLetters = (start, end, step = 1, options = {}) => { - if (!isNumber$2(start) && start.length > 1 || !isNumber$2(end) && end.length > 1) { - return invalidRange(start, end, options); - } - let format = options.transform || (val => String.fromCharCode(val)); +micromatch.match = micromatch; +/** + * Returns a matcher function from the given glob `pattern` and `options`. + * The returned function takes a string to match as its only argument and returns + * true if the string is a match. + * + * ```js + * const mm = require('micromatch'); + * // mm.matcher(pattern[, options]); + * + * const isMatch = mm.matcher('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @param {String} `pattern` Glob pattern + * @param {Object} `options` + * @return {Function} Returns a matcher function. + * @api public + */ - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); - let descending = a > b; - let min = Math.min(a, b); - let max = Math.max(a, b); +micromatch.matcher = (pattern, options) => picomatch(pattern, options); +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const mm = require('micromatch'); + * // mm.isMatch(string, patterns[, options]); + * + * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(mm.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `[options]` See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ - if (options.toRegex && step === 1) { - return toRange(min, max, false, options); - } - let range = []; - let index = 0; +micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); +/** + * Backwards compatibility + */ - while (descending ? a >= b : a <= b) { - range.push(format(a, index)); - a = descending ? a - step : a + step; - index++; - } - if (options.toRegex === true) { - return toRegex(range, null, { - wrap: false, - options - }); - } +micromatch.any = micromatch.isMatch; +/** + * Returns a list of strings that _**do not match any**_ of the given `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.not(list, patterns[, options]); + * + * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); + * //=> ['b.b', 'c.c'] + * ``` + * @param {Array} `list` Array of strings to match. + * @param {String|Array} `patterns` One or more glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of strings that **do not match** the given patterns. + * @api public + */ - return range; -}; +micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = new Set(); + let items = []; -const fill = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } + let onResult = state => { + if (options.onResult) options.onResult(state); + items.push(state.output); + }; - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } + let matches = micromatch(list, patterns, Object.assign(Object.assign({}, options), {}, { + onResult + })); - if (typeof step === 'function') { - return fill(start, end, 1, { - transform: step - }); + for (let item of items) { + if (!matches.includes(item)) { + result.add(item); + } } - if (isObject$1(step)) { - return fill(start, end, 0, step); - } + return [...result]; +}; +/** + * Returns true if the given `string` contains the given pattern. Similar + * to [.isMatch](#isMatch) but the pattern can match any part of the string. + * + * ```js + * var mm = require('micromatch'); + * // mm.contains(string, pattern[, options]); + * + * console.log(mm.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(mm.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String|Array} `patterns` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any of the patterns matches any part of `str`. + * @api public + */ - let opts = Object.assign({}, options); - if (opts.capture === true) opts.wrap = true; - step = step || opts.step || 1; - if (!isNumber$2(step)) { - if (step != null && !isObject$1(step)) return invalidStep(step, opts); - return fill(start, end, 1, step); +micromatch.contains = (str, pattern, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); } - if (isNumber$2(start) && isNumber$2(end)) { - return fillNumbers(start, end, step, opts); + if (Array.isArray(pattern)) { + return pattern.some(p => micromatch.contains(str, p, options)); } - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); -}; - -var fillRange = fill; - -const compile = (ast, options = {}) => { - let walk = (node, parent = {}) => { - let invalidBlock = utils.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let invalid = invalidBlock === true || invalidNode === true; - let prefix = options.escapeInvalid === true ? '\\' : ''; - let output = ''; - - if (node.isOpen === true) { - return prefix + node.value; + if (typeof pattern === 'string') { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; } - if (node.isClose === true) { - return prefix + node.value; + if (str.includes(pattern) || str.startsWith('./') && str.slice(2).includes(pattern)) { + return true; } + } - if (node.type === 'open') { - return invalid ? prefix + node.value : '('; - } + return micromatch.isMatch(str, pattern, Object.assign(Object.assign({}, options), {}, { + contains: true + })); +}; +/** + * Filter the keys of the given object with the given `glob` pattern + * and `options`. Does not attempt to match nested keys. If you need this feature, + * use [glob-object][] instead. + * + * ```js + * const mm = require('micromatch'); + * // mm.matchKeys(object, patterns[, options]); + * + * const obj = { aa: 'a', ab: 'b', ac: 'c' }; + * console.log(mm.matchKeys(obj, '*b')); + * //=> { ab: 'b' } + * ``` + * @param {Object} `object` The object with keys to filter. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Object} Returns an object with only keys that match the given patterns. + * @api public + */ - if (node.type === 'close') { - return invalid ? prefix + node.value : ')'; - } - if (node.type === 'comma') { - return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; - } +micromatch.matchKeys = (obj, patterns, options) => { + if (!utils$2.isObject(obj)) { + throw new TypeError('Expected the first argument to be an object'); + } - if (node.value) { - return node.value; - } + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; - if (node.nodes && node.ranges > 0) { - let args = utils.reduce(node.nodes); - let range = fillRange(...args, Object.assign({}, options, { - wrap: false, - toRegex: true - })); + for (let key of keys) res[key] = obj[key]; - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; - } - } - - if (node.nodes) { - for (let child of node.nodes) { - output += walk(child, node); - } - } - - return output; - }; - - return walk(ast); + return res; }; +/** + * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.some(list, patterns[, options]); + * + * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // true + * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list` + * @api public + */ -var compile_1 = compile; -const append = (queue = '', stash = '', enclose = false) => { - let result = []; - queue = [].concat(queue); - stash = [].concat(stash); - if (!stash.length) return queue; +micromatch.some = (list, patterns, options) => { + let items = [].concat(list); - if (!queue.length) { - return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; - } + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); - for (let item of queue) { - if (Array.isArray(item)) { - for (let value of item) { - result.push(append(value, stash, enclose)); - } - } else { - for (let ele of stash) { - if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); - } + if (items.some(item => isMatch(item))) { + return true; } } - return utils.flatten(result); + return false; }; +/** + * Returns true if every string in the given `list` matches + * any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.every(list, patterns[, options]); + * + * console.log(mm.every('foo.js', ['foo.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // false + * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list` + * @api public + */ -const expand = (ast, options = {}) => { - let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; - let walk = (node, parent = {}) => { - node.queue = []; - let p = parent; - let q = parent.queue; +micromatch.every = (list, patterns, options) => { + let items = [].concat(list); - while (p.type !== 'brace' && p.type !== 'root' && p.parent) { - p = p.parent; - q = p.queue; - } + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); - if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify(node, options))); - return; + if (!items.every(item => isMatch(item))) { + return false; } + } - if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { - q.push(append(q.pop(), ['{}'])); - return; - } + return true; +}; +/** + * Returns true if **all** of the given `patterns` match + * the specified string. + * + * ```js + * const mm = require('micromatch'); + * // mm.all(string, patterns[, options]); + * + * console.log(mm.all('foo.js', ['foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); + * // false + * + * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); + * // true + * ``` + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ - if (node.nodes && node.ranges > 0) { - let args = utils.reduce(node.nodes); - if (utils.exceedsLimit(...args, options.step, rangeLimit)) { - throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); - } +micromatch.all = (str, patterns, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); + } - let range = fillRange(...args, options); + return [].concat(patterns).every(p => picomatch(p, options)(str)); +}; +/** + * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. + * + * ```js + * const mm = require('micromatch'); + * // mm.capture(pattern, string[, options]); + * + * console.log(mm.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(mm.capture('test/*.js', 'foo/bar.css')); + * //=> null + * ``` + * @param {String} `glob` Glob pattern to use for matching. + * @param {String} `input` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`. + * @api public + */ - if (range.length === 0) { - range = stringify(node, options); - } - q.push(append(q.pop(), range)); - node.nodes = []; - return; - } +micromatch.capture = (glob, input, options) => { + let posix = utils$2.isWindows(options); + let regex = picomatch.makeRe(String(glob), Object.assign(Object.assign({}, options), {}, { + capture: true + })); + let match = regex.exec(posix ? utils$2.toPosixSlashes(input) : input); - let enclose = utils.encloseBrace(node); - let queue = node.queue; - let block = node; + if (match) { + return match.slice(1).map(v => v === void 0 ? '' : v); + } +}; +/** + * Create a regular expression from the given glob `pattern`. + * + * ```js + * const mm = require('micromatch'); + * // mm.makeRe(pattern[, options]); + * + * console.log(mm.makeRe('*.js')); + * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ + * ``` + * @param {String} `pattern` A glob pattern to convert to regex. + * @param {Object} `options` + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ - while (block.type !== 'brace' && block.type !== 'root' && block.parent) { - block = block.parent; - queue = block.queue; - } - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; +micromatch.makeRe = (...args) => picomatch.makeRe(...args); +/** + * Scan a glob pattern to separate the pattern into segments. Used + * by the [split](#split) method. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.scan(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ - if (child.type === 'comma' && node.type === 'brace') { - if (i === 1) queue.push(''); - queue.push(''); - continue; - } - if (child.type === 'close') { - q.push(append(q.pop(), queue, enclose)); - continue; - } +micromatch.scan = (...args) => picomatch.scan(...args); +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const mm = require('micromatch'); + * const state = mm(pattern[, options]); + * ``` + * @param {String} `glob` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as regex source string. + * @api public + */ - if (child.value && child.type !== 'open') { - queue.push(append(queue.pop(), child.value)); - continue; - } - if (child.nodes) { - walk(child, node); - } - } +micromatch.parse = (patterns, options) => { + let res = []; - return queue; - }; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces_1(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } - return utils.flatten(walk(ast)); + return res; }; +/** + * Process the given brace `pattern`. + * + * ```js + * const { braces } = require('micromatch'); + * console.log(braces('foo/{a,b,c}/bar')); + * //=> [ 'foo/(a|b|c)/bar' ] + * + * console.log(braces('foo/{a,b,c}/bar', { expand: true })); + * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] + * ``` + * @param {String} `pattern` String with brace pattern to process. + * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. + * @return {Array} + * @api public + */ -var expand_1 = expand; - -var constants = { - MAX_LENGTH: 1024 * 64, - // Digits - CHAR_0: '0', - /* 0 */ - CHAR_9: '9', +micromatch.braces = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 'A', + if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { + return [pattern]; + } - /* A */ - CHAR_LOWERCASE_A: 'a', + return braces_1(pattern, options); +}; +/** + * Expand braces + */ - /* a */ - CHAR_UPPERCASE_Z: 'Z', - /* Z */ - CHAR_LOWERCASE_Z: 'z', +micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + return micromatch.braces(pattern, Object.assign(Object.assign({}, options), {}, { + expand: true + })); +}; +/** + * Expose micromatch + */ - /* z */ - CHAR_LEFT_PARENTHESES: '(', - /* ( */ - CHAR_RIGHT_PARENTHESES: ')', +var micromatch_1 = micromatch; - /* ) */ - CHAR_ASTERISK: '*', +var pattern = createCommonjsModule(function (module, exports) { - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: '&', + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; + const GLOBSTAR = '**'; + const ESCAPE_SYMBOL = '\\'; + const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; + const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[.*]/; + const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\(.*\|.*\)/; + const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\(.*\)/; + const BRACE_EXPANSIONS_SYMBOLS_RE = /{.*(?:,|\.\.).*}/; - /* & */ - CHAR_AT: '@', + function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); + } - /* @ */ - CHAR_BACKSLASH: '\\', + exports.isStaticPattern = isStaticPattern; - /* \ */ - CHAR_BACKTICK: '`', + function isDynamicPattern(pattern, options = {}) { + /** + * A special case with an empty string is necessary for matching patterns that start with a forward slash. + * An empty string cannot be a dynamic pattern. + * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. + */ + if (pattern === '') { + return false; + } + /** + * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check + * filepath directly (without read directory). + */ - /* ` */ - CHAR_CARRIAGE_RETURN: '\r', - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: '^', + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } - /* ^ */ - CHAR_COLON: ':', + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } - /* : */ - CHAR_COMMA: ',', + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } - /* , */ - CHAR_DOLLAR: '$', + if (options.braceExpansion !== false && BRACE_EXPANSIONS_SYMBOLS_RE.test(pattern)) { + return true; + } - /* . */ - CHAR_DOT: '.', + return false; + } - /* . */ - CHAR_DOUBLE_QUOTE: '"', + exports.isDynamicPattern = isDynamicPattern; - /* " */ - CHAR_EQUAL: '=', + function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; + } - /* = */ - CHAR_EXCLAMATION_MARK: '!', + exports.convertToPositivePattern = convertToPositivePattern; - /* ! */ - CHAR_FORM_FEED: '\f', + function convertToNegativePattern(pattern) { + return '!' + pattern; + } - /* \f */ - CHAR_FORWARD_SLASH: '/', + exports.convertToNegativePattern = convertToNegativePattern; - /* / */ - CHAR_HASH: '#', + function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; + } - /* # */ - CHAR_HYPHEN_MINUS: '-', + exports.isNegativePattern = isNegativePattern; - /* - */ - CHAR_LEFT_ANGLE_BRACKET: '<', + function isPositivePattern(pattern) { + return !isNegativePattern(pattern); + } - /* < */ - CHAR_LEFT_CURLY_BRACE: '{', + exports.isPositivePattern = isPositivePattern; - /* { */ - CHAR_LEFT_SQUARE_BRACKET: '[', + function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); + } - /* [ */ - CHAR_LINE_FEED: '\n', + exports.getNegativePatterns = getNegativePatterns; - /* \n */ - CHAR_NO_BREAK_SPACE: '\u00A0', + function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); + } - /* \u00A0 */ - CHAR_PERCENT: '%', + exports.getPositivePatterns = getPositivePatterns; - /* % */ - CHAR_PLUS: '+', + function getBaseDirectory(pattern) { + return globParent(pattern, { + flipBackslashes: false + }); + } - /* + */ - CHAR_QUESTION_MARK: '?', + exports.getBaseDirectory = getBaseDirectory; - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: '>', + function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); + } - /* > */ - CHAR_RIGHT_CURLY_BRACE: '}', + exports.hasGlobStar = hasGlobStar; - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: ']', + function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); + } - /* ] */ - CHAR_SEMICOLON: ';', + exports.endsWithSlashGlobStar = endsWithSlashGlobStar; - /* ; */ - CHAR_SINGLE_QUOTE: '\'', + function isAffectDepthOfReadingPattern(pattern) { + const basename = path__default['default'].basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); + } - /* ' */ - CHAR_SPACE: ' ', + exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; - /* */ - CHAR_TAB: '\t', + function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); + } - /* \t */ - CHAR_UNDERSCORE: '_', + exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; - /* _ */ - CHAR_VERTICAL_LINE: '|', + function expandBraceExpansion(pattern) { + return micromatch_1.braces(pattern, { + expand: true, + nodupes: true + }); + } - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' - /* \uFEFF */ + exports.expandBraceExpansion = expandBraceExpansion; -}; + function getPatternParts(pattern, options) { + let { + parts + } = picomatch.scan(pattern, Object.assign(Object.assign({}, options), { + parts: true + })); + /** + * The scan method returns an empty array in some cases. + * See micromatch/picomatch#58 for more details. + */ -/** - * Constants - */ + if (parts.length === 0) { + parts = [pattern]; + } + /** + * The scan method does not return an empty part for the pattern with a forward slash. + * This is another part of micromatch/picomatch#58. + */ -const { - MAX_LENGTH, - CHAR_BACKSLASH, + if (parts[0].startsWith('/')) { + parts[0] = parts[0].slice(1); + parts.unshift(''); + } - /* \ */ - CHAR_BACKTICK, + return parts; + } - /* ` */ - CHAR_COMMA, + exports.getPatternParts = getPatternParts; - /* , */ - CHAR_DOT, + function makeRe(pattern, options) { + return micromatch_1.makeRe(pattern, options); + } - /* . */ - CHAR_LEFT_PARENTHESES, + exports.makeRe = makeRe; - /* ( */ - CHAR_RIGHT_PARENTHESES, + function convertPatternsToRe(patterns, options) { + return patterns.map(pattern => makeRe(pattern, options)); + } - /* ) */ - CHAR_LEFT_CURLY_BRACE, + exports.convertPatternsToRe = convertPatternsToRe; - /* { */ - CHAR_RIGHT_CURLY_BRACE, + function matchAny(entry, patternsRe) { + return patternsRe.some(patternRe => patternRe.test(entry)); + } - /* } */ - CHAR_LEFT_SQUARE_BRACKET, + exports.matchAny = matchAny; +}); - /* [ */ - CHAR_RIGHT_SQUARE_BRACKET, +/* + * merge2 + * https://github.com/teambition/merge2 + * + * Copyright (c) 2014-2020 Teambition + * Licensed under the MIT license. + */ - /* ] */ - CHAR_DOUBLE_QUOTE, - /* " */ - CHAR_SINGLE_QUOTE, +const PassThrough = stream_1__default['default'].PassThrough; +const slice = Array.prototype.slice; +var merge2_1 = merge2; - /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = constants; -/** - * parse - */ +function merge2() { + const streamsQueue = []; + const args = slice.call(arguments); + let merging = false; + let options = args[args.length - 1]; -const parse = (input, options = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop(); + } else { + options = {}; } - let opts = options || {}; - let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const doEnd = options.end !== false; + const doPipeError = options.pipeError === true; - if (input.length > max) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + if (options.objectMode == null) { + options.objectMode = true; } - let ast = { - type: 'root', - input, - nodes: [] - }; - let stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - let length = input.length; - let index = 0; - let depth = 0; - let value; - /** - * Helpers - */ + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024; + } - const advance = () => input[index++]; + const mergedStream = PassThrough(options); - const push = node => { - if (node.type === 'text' && prev.type === 'dot') { - prev.type = 'text'; + function addStream() { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)); } - if (prev && prev.type === 'text' && node.type === 'text') { - prev.value += node.value; + mergeStream(); + return this; + } + + function mergeStream() { + if (merging) { return; } - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; - - push({ - type: 'bos' - }); - - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); - /** - * Invalid chars - */ + merging = true; + let streams = streamsQueue.shift(); - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; + if (!streams) { + process.nextTick(endStream); + return; } - /** - * Escaped chars - */ - - if (value === CHAR_BACKSLASH) { - push({ - type: 'text', - value: (options.keepEscaping ? value : '') + advance() - }); - continue; + if (!Array.isArray(streams)) { + streams = [streams]; } - /** - * Right square bracket (literal): ']' - */ + let pipesCount = streams.length + 1; - if (value === CHAR_RIGHT_SQUARE_BRACKET) { - push({ - type: 'text', - value: '\\' + value - }); - continue; + function next() { + if (--pipesCount > 0) { + return; + } + + merging = false; + mergeStream(); } - /** - * Left square bracket: '[' - */ + function pipe(stream) { + function onend() { + stream.removeListener('merge2UnpipeEnd', onend); + stream.removeListener('end', onend); - if (value === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - let next; + if (doPipeError) { + stream.removeListener('error', onerror); + } - while (index < length && (next = advance())) { - value += next; + next(); + } - if (next === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - continue; - } + function onerror(err) { + mergedStream.emit('error', err); + } // skip ended stream - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - brackets--; + if (stream._readableState.endEmitted) { + return next(); + } - if (brackets === 0) { - break; - } - } + stream.on('merge2UnpipeEnd', onend); + stream.on('end', onend); + + if (doPipeError) { + stream.on('error', onerror); } - push({ - type: 'text', - value - }); - continue; - } - /** - * Parentheses - */ + stream.pipe(mergedStream, { + end: false + }); // compatible for old stream + stream.resume(); + } - if (value === CHAR_LEFT_PARENTHESES) { - block = push({ - type: 'paren', - nodes: [] - }); - stack.push(block); - push({ - type: 'text', - value - }); - continue; + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]); } - if (value === CHAR_RIGHT_PARENTHESES) { - if (block.type !== 'paren') { - push({ - type: 'text', - value - }); - continue; - } + next(); + } - block = stack.pop(); - push({ - type: 'text', - value - }); - block = stack[stack.length - 1]; - continue; + function endStream() { + merging = false; // emit 'queueDrain' when all streams merged. + + mergedStream.emit('queueDrain'); + + if (doEnd) { + mergedStream.end(); } - /** - * Quotes: '|"|` - */ + } + mergedStream.setMaxListeners(0); + mergedStream.add = addStream; + mergedStream.on('unpipe', function (stream) { + stream.emit('merge2UnpipeEnd'); + }); - if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { - let open = value; - let next; + if (args.length) { + addStream.apply(null, args); + } - if (options.keepQuotes !== true) { - value = ''; - } + return mergedStream; +} // check and pause streams for pipe. - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; - } - if (next === open) { - if (options.keepQuotes === true) value += next; - break; - } - - value += next; - } - - push({ - type: 'text', - value - }); - continue; +function pauseStreams(streams, options) { + if (!Array.isArray(streams)) { + // Backwards-compat with old-style streams + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)); } - /** - * Left curly brace: '{' - */ - - if (value === CHAR_LEFT_CURLY_BRACE) { - depth++; - let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; - let brace = { - type: 'brace', - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; - block = push(brace); - stack.push(block); - push({ - type: 'open', - value - }); - continue; + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error('Only readable stream can be merged.'); } - /** - * Right curly brace: '}' - */ + streams.pause(); + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options); + } + } - if (value === CHAR_RIGHT_CURLY_BRACE) { - if (block.type !== 'brace') { - push({ - type: 'text', - value - }); - continue; - } + return streams; +} - let type = 'close'; - block = stack.pop(); - block.close = true; - push({ - type, - value - }); - depth--; - block = stack[stack.length - 1]; - continue; - } - /** - * Comma: ',' - */ +var stream$3 = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.merge = void 0; - if (value === CHAR_COMMA && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - let open = block.nodes.shift(); - block.nodes = [open, { - type: 'text', - value: stringify(block) - }]; - } + function merge(streams) { + const mergedStream = merge2_1(streams); + streams.forEach(stream => { + stream.once('error', error => mergedStream.emit('error', error)); + }); + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; + } - push({ - type: 'comma', - value - }); - block.commas++; - continue; - } - /** - * Dot: '.' - */ + exports.merge = merge; + function propagateCloseEventToSources(streams) { + streams.forEach(stream => stream.emit('close')); + } +}); - if (value === CHAR_DOT && depth > 0 && block.commas === 0) { - let siblings = block.nodes; +var string = createCommonjsModule(function (module, exports) { - if (depth === 0 || siblings.length === 0) { - push({ - type: 'text', - value - }); - continue; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.isEmpty = exports.isString = void 0; - if (prev.type === 'dot') { - block.range = []; - prev.value += value; - prev.type = 'range'; + function isString(input) { + return typeof input === 'string'; + } - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = 'text'; - continue; - } + exports.isString = isString; - block.ranges++; - block.args = []; - continue; - } + function isEmpty(input) { + return input === ''; + } - if (prev.type === 'range') { - siblings.pop(); - let before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; - continue; - } + exports.isEmpty = isEmpty; +}); - push({ - type: 'dot', - value - }); - continue; - } - /** - * Text - */ +var utils$1 = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; + exports.array = array$2; + exports.errno = errno; + exports.fs = fs$3; + exports.path = path_1; + exports.pattern = pattern; + exports.stream = stream$3; + exports.string = string; +}); - push({ - type: 'text', - value - }); - } // Mark imbalanced braces and brackets as invalid +var tasks = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; - do { - block = stack.pop(); + function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter(pattern => utils$1.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter(pattern => utils$1.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, + /* dynamic */ + false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, + /* dynamic */ + true); + return staticTasks.concat(dynamicTasks); + } - if (block.type !== 'root') { - block.nodes.forEach(node => { - if (!node.nodes) { - if (node.type === 'open') node.isOpen = true; - if (node.type === 'close') node.isClose = true; - if (!node.nodes) node.type = 'text'; - node.invalid = true; - } - }); // get the location of the block on parent.nodes (block's siblings) + exports.generate = generate; - let parent = stack[stack.length - 1]; - let index = parent.nodes.indexOf(block); // replace the (invalid) block with it's nodes + function convertPatternsToTasks(positive, negative, dynamic) { + const positivePatternsGroup = groupPatternsByBaseDirectory(positive); // When we have a global group – there is no reason to divide the patterns into independent tasks. + // In this case, the global task covers the rest. - parent.nodes.splice(index, 1, ...block.nodes); + if ('.' in positivePatternsGroup) { + const task = convertPatternGroupToTask('.', positive, negative, dynamic); + return [task]; } - } while (stack.length > 0); - push({ - type: 'eos' - }); - return ast; -}; + return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic); + } -var parse_1 = parse; + exports.convertPatternsToTasks = convertPatternsToTasks; -/** - * Expand the given pattern or create a regex-compatible string. - * - * ```js - * const braces = require('braces'); - * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] - * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} - * @api public - */ + function getPositivePatterns(patterns) { + return utils$1.pattern.getPositivePatterns(patterns); + } + exports.getPositivePatterns = getPositivePatterns; -const braces = (input, options = {}) => { - let output = []; + function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils$1.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils$1.pattern.convertToPositivePattern); + return positive; + } - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options); + exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); - } - } - } else { - output = [].concat(braces.create(input, options)); + function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils$1.pattern.getBaseDirectory(pattern); + + if (base in collection) { + collection[base].push(pattern); + } else { + collection[base] = [pattern]; + } + + return collection; + }, group); } - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; + exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; + + function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map(base => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); } - return output; -}; -/** - * Parse the given `str` with the given `options`. - * - * ```js - * // braces.parse(pattern, [, options]); - * const ast = braces.parse('a/{b,c}/d'); - * console.log(ast); - * ``` - * @param {String} pattern Brace pattern to parse - * @param {Object} options - * @return {Object} Returns an AST - * @api public - */ + exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; + function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils$1.pattern.convertToNegativePattern)) + }; + } -braces.parse = (input, options = {}) => parse_1(input, options); -/** - * Creates a braces string from an AST, or an AST node. - * - * ```js - * const braces = require('braces'); - * let ast = braces.parse('foo/{a,b}/bar'); - * console.log(stringify(ast.nodes[2])); //=> '{a,b}' - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ + exports.convertPatternGroupToTask = convertPatternGroupToTask; +}); +var async$4 = createCommonjsModule(function (module, exports) { -braces.stringify = (input, options = {}) => { - if (typeof input === 'string') { - return stringify(braces.parse(input, options), options); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.read = void 0; + + function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + + callSuccessCallback(callback, lstat); + return; + } + + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + + callSuccessCallback(callback, stat); + }); + }); } - return stringify(input, options); -}; -/** - * Compiles a brace pattern into a regex-compatible, optimized string. - * This method is called by the main [braces](#braces) function by default. - * - * ```js - * const braces = require('braces'); - * console.log(braces.compile('a/{b,c}/d')); - * //=> ['a/(b|c)/d'] - * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ + exports.read = read; + function callFailureCallback(callback, error) { + callback(error); + } -braces.compile = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); + function callSuccessCallback(callback, result) { + callback(null, result); } +}); - return compile_1(input, options); -}; -/** - * Expands a brace pattern into an array. This method is called by the - * main [braces](#braces) function when `options.expand` is true. Before - * using this method it's recommended that you read the [performance notes](#performance)) - * and advantages of using [.compile](#compile) instead. - * - * ```js - * const braces = require('braces'); - * console.log(braces.expand('a/{b,c}/d')); - * //=> ['a/b/d', 'a/c/d']; - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ +var sync$5 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.read = void 0; + function read(path, settings) { + const lstat = settings.fs.lstatSync(path); -braces.expand = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + + try { + const stat = settings.fs.statSync(path); + + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + + return stat; + } catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + + throw error; + } } - let result = expand_1(input, options); // filter out empty strings if specified + exports.read = read; +}); - if (options.noempty === true) { - result = result.filter(Boolean); - } // filter out duplicates if specified +var fs_1$1 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; + exports.FILE_SYSTEM_ADAPTER = { + lstat: fs__default['default'].lstat, + stat: fs__default['default'].stat, + lstatSync: fs__default['default'].lstatSync, + statSync: fs__default['default'].statSync + }; + function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } - if (options.nodupes === true) { - result = [...new Set(result)]; + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); } - return result; -}; -/** - * Processes a brace pattern and returns either an expanded array - * (if `options.expand` is true), a highly optimized regex-compatible string. - * This method is called by the main [braces](#braces) function. - * - * ```js - * const braces = require('braces'); - * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) - * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' - * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. - * @api public - */ + exports.createFileSystemAdapter = createFileSystemAdapter; +}); +class Settings$2 { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs_1$1.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } -braces.create = (input, options = {}) => { - if (input === '' || input.length < 3) { - return [input]; + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; } - return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); -}; -/** - * Expose "braces" - */ +} +var _default$m = Settings$2; +var settings$3 = /*#__PURE__*/Object.defineProperty({ + default: _default$m +}, '__esModule', { + value: true +}); -var braces_1 = braces; +var out$3 = createCommonjsModule(function (module, exports) { -const WIN_SLASH = '\\\\/'; -const WIN_NO_SLASH = `[^${WIN_SLASH}]`; -/** - * Posix glob regex - */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.statSync = exports.stat = exports.Settings = void 0; + exports.Settings = settings$3.default; -const DOT_LITERAL = '\\.'; -const PLUS_LITERAL = '\\+'; -const QMARK_LITERAL = '\\?'; -const SLASH_LITERAL = '\\/'; -const ONE_CHAR = '(?=.)'; -const QMARK = '[^/]'; -const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; -const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; -const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; -const NO_DOT = `(?!${DOT_LITERAL})`; -const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; -const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; -const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; -const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -const STAR = `${QMARK}*?`; -const POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR -}; -/** - * Windows glob regex - */ + function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async$4.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } -const WINDOWS_CHARS = Object.assign({}, POSIX_CHARS, { - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` -}); -/** - * POSIX Bracket Regex - */ + async$4.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } -const 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' -}; -var constants$1 = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, - // regular expressions - 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, - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - '***': '*', - '**/**': '**', - '**/**/**': '**' - }, - // Digits - CHAR_0: 48, + exports.stat = stat; - /* 0 */ - CHAR_9: 57, + function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync$5.read(path, settings); + } - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 65, + exports.statSync = statSync; - /* A */ - CHAR_LOWERCASE_A: 97, + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings$3.default) { + return settingsOrOptions; + } - /* a */ - CHAR_UPPERCASE_Z: 90, + return new settings$3.default(settingsOrOptions); + } +}); - /* Z */ - CHAR_LOWERCASE_Z: 122, +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let promise$1; +var queueMicrotask_1 = typeof queueMicrotask === 'function' ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) // reuse resolved promise, and allocate it lazily +: cb => (promise$1 || (promise$1 = Promise.resolve())).then(cb).catch(err => setTimeout(() => { + throw err; +}, 0)); - /* z */ - CHAR_LEFT_PARENTHESES: 40, +/*! run-parallel. MIT License. Feross Aboukhadijeh */ +var runParallel_1 = runParallel; - /* ( */ - CHAR_RIGHT_PARENTHESES: 41, +function runParallel(tasks, cb) { + let results, pending, keys; + let isSync = true; - /* ) */ - CHAR_ASTERISK: 42, + if (Array.isArray(tasks)) { + results = []; + pending = tasks.length; + } else { + keys = Object.keys(tasks); + results = {}; + pending = keys.length; + } - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, + function done(err) { + function end() { + if (cb) cb(err, results); + cb = null; + } - /* & */ - CHAR_AT: 64, + if (isSync) queueMicrotask_1(end);else end(); + } - /* @ */ - CHAR_BACKWARD_SLASH: 92, + function each(i, err, result) { + results[i] = result; - /* \ */ - CHAR_CARRIAGE_RETURN: 13, + if (--pending === 0 || err) { + done(err); + } + } - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, + if (!pending) { + // empty + done(null); + } else if (keys) { + // object + keys.forEach(function (key) { + tasks[key](function (err, result) { + each(key, err, result); + }); + }); + } else { + // array + tasks.forEach(function (task, i) { + task(function (err, result) { + each(i, err, result); + }); + }); + } - /* ^ */ - CHAR_COLON: 58, + isSync = false; +} - /* : */ - CHAR_COMMA: 44, +var constants = createCommonjsModule(function (module, exports) { - /* , */ - CHAR_DOT: 46, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; + const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); - /* . */ - CHAR_DOUBLE_QUOTE: 34, + if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); + } - /* " */ - CHAR_EQUAL: 61, + const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); + const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); + const SUPPORTED_MAJOR_VERSION = 10; + const SUPPORTED_MINOR_VERSION = 10; + const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; + const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; + /** + * IS `true` for Node.js 10.10 and greater. + */ - /* = */ - CHAR_EXCLAMATION_MARK: 33, + exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; +}); - /* ! */ - CHAR_FORM_FEED: 12, +var fs$2 = createCommonjsModule(function (module, exports) { - /* \f */ - CHAR_FORWARD_SLASH: 47, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createDirentFromStats = void 0; - /* / */ - CHAR_GRAVE_ACCENT: 96, + class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } - /* ` */ - CHAR_HASH: 35, + } - /* # */ - CHAR_HYPHEN_MINUS: 45, + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } - /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, + exports.createDirentFromStats = createDirentFromStats; +}); - /* < */ - CHAR_LEFT_CURLY_BRACE: 123, +var utils = createCommonjsModule(function (module, exports) { - /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.fs = void 0; + exports.fs = fs$2; +}); - /* [ */ - CHAR_LINE_FEED: 10, +var common$1 = createCommonjsModule(function (module, exports) { - /* \n */ - CHAR_NO_BREAK_SPACE: 160, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.joinPathSegments = void 0; - /* \u00A0 */ - CHAR_PERCENT: 37, + function joinPathSegments(a, b, separator) { + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } - /* % */ - CHAR_PLUS: 43, + return a + separator + b; + } - /* + */ - CHAR_QUESTION_MARK: 63, + exports.joinPathSegments = joinPathSegments; +}); - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, +var async$3 = createCommonjsModule(function (module, exports) { - /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, + function read(directory, settings, callback) { + if (!settings.stats && constants.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } - /* ] */ - CHAR_SEMICOLON: 59, + readdir(directory, settings, callback); + } - /* ; */ - CHAR_SINGLE_QUOTE: 39, + exports.read = read; - /* ' */ - CHAR_SPACE: 32, + function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { + withFileTypes: true + }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } - /* */ - CHAR_TAB: 9, + const entries = dirents.map(dirent => ({ + dirent, + name: dirent.name, + path: common$1.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); - /* \t */ - CHAR_UNDERSCORE: 95, + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } - /* _ */ - CHAR_VERTICAL_LINE: 124, + const tasks = entries.map(entry => makeRplTaskEntry(entry, settings)); + runParallel_1(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, + callSuccessCallback(callback, rplEntries); + }); + }); + } - /* \uFEFF */ - SEP: path__default['default'].sep, + exports.readdirWithFileTypes = readdirWithFileTypes; - /** - * Create EXTGLOB_CHARS - */ - extglobChars(chars) { - return { - '!': { - type: 'negate', - open: '(?:(?!(?:', - close: `))${chars.STAR})` - }, - '?': { - type: 'qmark', - open: '(?:', - close: ')?' - }, - '+': { - type: 'plus', - open: '(?:', - close: ')+' - }, - '*': { - type: 'star', - open: '(?:', - close: ')*' - }, - '@': { - type: 'at', - open: '(?:', - close: ')' + function makeRplTaskEntry(entry, settings) { + return done => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; } - }; - }, - - /** - * Create GLOB_CHARS - */ - globChars(win32) { - return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; - } -}; + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } -var utils$1 = createCommonjsModule(function (module, exports) { + done(null, entry); + return; + } - const win32 = process.platform === 'win32'; - const { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL - } = constants$1; + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; + } - exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } - exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); + const tasks = names.map(name => { + const path = common$1.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return done => { + out$3.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } - exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; - exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); + if (settings.stats) { + entry.stats = stats; + } - exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + done(null, entry); + }); + }; + }); + runParallel_1(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } - exports.removeBackslashes = str => { - return str.replace(REGEX_REMOVE_BACKSLASH, match => { - return match === '\\' ? '' : match; + callSuccessCallback(callback, entries); + }); }); - }; - - exports.supportsLookbehinds = () => { - const segs = process.version.slice(1).split('.').map(Number); - - if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { - return true; - } + } - return false; - }; + exports.readdir = readdir; - exports.isWindows = options => { - if (options && typeof options.windows === 'boolean') { - return options.windows; - } + function callFailureCallback(callback, error) { + callback(error); + } - return win32 === true || path__default['default'].sep === '\\'; - }; + function callSuccessCallback(callback, result) { + callback(null, result); + } +}); - exports.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) return input; - if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; - }; +var sync$4 = createCommonjsModule(function (module, exports) { - exports.removePrefix = (input, state = {}) => { - let output = input; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; - if (output.startsWith('./')) { - output = output.slice(2); - state.prefix = './'; + function read(directory, settings) { + if (!settings.stats && constants.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); } - return output; - }; + return readdir(directory, settings); + } - exports.wrapOutput = (input, state = {}, options = {}) => { - const prepend = options.contains ? '' : '^'; - const append = options.contains ? '' : '$'; - let output = `${prepend}(?:${input})${append}`; + exports.read = read; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } + function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { + withFileTypes: true + }); + return dirents.map(dirent => { + const entry = { + dirent, + name: dirent.name, + path: common$1.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; - return output; - }; -}); + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } -const { - CHAR_ASTERISK, + return entry; + }); + } - /* * */ - CHAR_AT, + exports.readdirWithFileTypes = readdirWithFileTypes; - /* @ */ - CHAR_BACKWARD_SLASH, + function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map(name => { + const entryPath = common$1.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = out$3.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; - /* \ */ - CHAR_COMMA: CHAR_COMMA$1, + if (settings.stats) { + entry.stats = stats; + } - /* , */ - CHAR_DOT: CHAR_DOT$1, + return entry; + }); + } - /* . */ - CHAR_EXCLAMATION_MARK, + exports.readdir = readdir; +}); - /* ! */ - CHAR_FORWARD_SLASH, +var fs_1 = createCommonjsModule(function (module, exports) { - /* / */ - CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; + exports.FILE_SYSTEM_ADAPTER = { + lstat: fs__default['default'].lstat, + stat: fs__default['default'].stat, + lstatSync: fs__default['default'].lstatSync, + statSync: fs__default['default'].statSync, + readdir: fs__default['default'].readdir, + readdirSync: fs__default['default'].readdirSync + }; - /* { */ - CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, + function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } - /* ( */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); + } - /* [ */ - CHAR_PLUS, + exports.createFileSystemAdapter = createFileSystemAdapter; +}); - /* + */ - CHAR_QUESTION_MARK, +class Settings$1 { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs_1.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new out$3.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } - /* ? */ - CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } - /* } */ - CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, +} - /* ) */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1 - /* ] */ +var _default$l = Settings$1; +var settings$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$l +}, '__esModule', { + value: true +}); -} = constants$1; +var out$2 = createCommonjsModule(function (module, exports) { -const isPathSeparator = code => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; -}; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Settings = exports.scandirSync = exports.scandir = void 0; + exports.Settings = settings$2.default; -const depth = token => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; - } -}; -/** - * Quickly scans a glob pattern and returns an object with a handful of - * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), - * `glob` (the actual pattern), and `negated` (true if the path starts with `!`). - * - * ```js - * const pm = require('picomatch'); - * console.log(pm.scan('foo/bar/*.js')); - * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {Object} Returns an object with tokens and regex source string. - * @api public - */ + function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async$3.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async$3.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } -const scan = (input, options) => { - const opts = options || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { - value: '', - depth: 0, - isGlob: false - }; + exports.scandir = scandir; - const eos = () => index >= length; + function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync$4.read(path, settings); + } - const peek = () => str.charCodeAt(index + 1); + exports.scandirSync = scandirSync; - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings$2.default) { + return settingsOrOptions; + } - while (index < length) { - code = advance(); - let next; + return new settings$2.default(settingsOrOptions); + } +}); - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); +function reusify(Constructor) { + var head = new Constructor(); + var tail = head; - if (code === CHAR_LEFT_CURLY_BRACE$1) { - braceEscaped = true; - } + function get() { + var current = head; - continue; + if (current.next) { + head = current.next; + } else { + head = new Constructor(); + tail = head; } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE$1) { - braces++; - - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - - if (code === CHAR_LEFT_CURLY_BRACE$1) { - braces++; - continue; - } + current.next = null; + return current; + } - if (braceEscaped !== true && code === CHAR_DOT$1 && (code = advance()) === CHAR_DOT$1) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; + function release(obj) { + tail.next = obj; + tail = obj; + } - if (scanToEnd === true) { - continue; - } + return { + get: get, + release: release + }; +} - break; - } +var reusify_1 = reusify; - if (braceEscaped !== true && code === CHAR_COMMA$1) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; +function fastqueue(context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker; + worker = context; + context = null; + } - if (scanToEnd === true) { - continue; - } + if (concurrency < 1) { + throw new Error('fastqueue concurrency must be greater than 1'); + } - break; - } + var cache = reusify_1(Task); + var queueHead = null; + var queueTail = null; + var _running = 0; + var errorHandler = null; + var self = { + push: push, + drain: noop, + saturated: noop, + pause: pause, + paused: false, + concurrency: concurrency, + running: running, + resume: resume, + idle: idle, + length: length, + getQueue: getQueue, + unshift: unshift, + empty: noop, + kill: kill, + killAndDrain: killAndDrain, + error: error + }; + return self; - if (code === CHAR_RIGHT_CURLY_BRACE$1) { - braces--; + function running() { + return _running; + } - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } + function pause() { + self.paused = true; + } - if (scanToEnd === true) { - continue; - } + function length() { + var current = queueHead; + var counter = 0; - break; + while (current) { + current = current.next; + counter++; } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { - value: '', - depth: 0, - isGlob: false - }; - if (finished === true) continue; + return counter; + } - if (prev === CHAR_DOT$1 && index === start + 1) { - start += 2; - continue; - } + function getQueue() { + var current = queueHead; + var tasks = []; - lastIndex = index + 1; - continue; + while (current) { + tasks.push(current.value); + current = current.next; } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; - - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES$1) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; - - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - - if (code === CHAR_RIGHT_PARENTHESES$1) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } + return tasks; + } - continue; - } + function resume() { + if (!self.paused) return; + self.paused = false; - break; - } + for (var i = 0; i < self.concurrency; i++) { + _running++; + release(); } + } - if (code === CHAR_ASTERISK) { - if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; - - if (scanToEnd === true) { - continue; - } + function idle() { + return _running === 0 && self.length() === 0; + } - break; + function push(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + current.errorHandler = errorHandler; + + if (_running === self.concurrency || self.paused) { + if (queueTail) { + queueTail.next = current; + queueTail = current; + } else { + queueHead = current; + queueTail = current; + self.saturated(); + } + } else { + _running++; + worker.call(context, current.value, current.worked); } + } - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; + function unshift(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; - if (scanToEnd === true) { - continue; + if (_running === self.concurrency || self.paused) { + if (queueHead) { + current.next = queueHead; + queueHead = current; + } else { + queueHead = current; + queueTail = current; + self.saturated(); } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } - break; + function release(holder) { + if (holder) { + cache.release(holder); } - if (code === CHAR_LEFT_SQUARE_BRACKET$1) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } + var next = queueHead; - if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; + if (next) { + if (!self.paused) { + if (queueTail === queueHead) { + queueTail = null; + } - if (scanToEnd === true) { - continue; - } + queueHead = next.next; + next.next = null; + worker.call(context, next.value, next.worked); - break; + if (queueTail === null) { + self.empty(); } + } else { + _running--; } + } else if (--_running === 0) { + self.drain(); } + } - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; - } + function kill() { + queueHead = null; + queueTail = null; + self.drain = noop; + } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES$1) { - isGlob = token.isGlob = true; + function killAndDrain() { + queueHead = null; + queueTail = null; + self.drain(); + self.drain = noop; + } - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES$1) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } + function error(handler) { + errorHandler = handler; + } +} - if (code === CHAR_RIGHT_PARENTHESES$1) { - finished = true; - break; - } - } +function noop() {} - continue; - } +function Task() { + this.value = null; + this.callback = noop; + this.next = null; + this.release = noop; + this.context = null; + this.errorHandler = null; + var self = this; - break; - } + this.worked = function worked(err, result) { + var callback = self.callback; + var errorHandler = self.errorHandler; + var val = self.value; + self.value = null; + self.callback = noop; - if (isGlob === true) { - finished = true; + if (self.errorHandler) { + errorHandler(err, val); + } - if (scanToEnd === true) { - continue; - } + callback.call(self.context, err, result); + self.release(self); + }; +} - break; - } +function queueAsPromised(context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker; + worker = context; + context = null; } - if (opts.noext === true) { - isExtglob = false; - isGlob = false; + function asyncWrapper(arg, cb) { + worker.call(this, arg).then(function (res) { + cb(null, res); + }, cb); } - let base = str; - let prefix = ''; - let glob = ''; - - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; - } + var queue = fastqueue(context, asyncWrapper, concurrency); + var pushCb = queue.push; + var unshiftCb = queue.unshift; + queue.push = push; + queue.unshift = unshift; + return queue; - if (base && isGlob === true && lastIndex > 0) { - base = str.slice(0, lastIndex); - glob = str.slice(lastIndex); - } else if (isGlob === true) { - base = ''; - glob = str; - } else { - base = str; - } + function push(value) { + return new Promise(function (resolve, reject) { + pushCb(value, function (err, result) { + if (err) { + reject(err); + return; + } - if (base && base !== '' && base !== '/' && base !== str) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); - } + resolve(result); + }); + }); } - if (opts.unescape === true) { - if (glob) glob = utils$1.removeBackslashes(glob); + function unshift(value) { + return new Promise(function (resolve, reject) { + unshiftCb(value, function (err, result) { + if (err) { + reject(err); + return; + } - if (base && backslashes === true) { - base = utils$1.removeBackslashes(base); - } + resolve(result); + }); + }); } +} - const state = { - prefix, - input, - start, - base, - glob, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated - }; +var queue = fastqueue; +var promise = queueAsPromised; +queue.promise = promise; - if (opts.tokens === true) { - state.maxDepth = 0; +var common = createCommonjsModule(function (module, exports) { - if (!isPathSeparator(code)) { - tokens.push(token); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; + + function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; } - state.tokens = tokens; + return !settings.errorFilter(error); } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; + exports.isFatalError = isFatalError; - for (let idx = 0; idx < slashes.length; idx++) { - const n = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value = input.slice(n, i); + function isAppliedFilter(filter, value) { + return filter === null || filter(value); + } - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value; - } + exports.isAppliedFilter = isAppliedFilter; - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; - } + function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); + } - if (idx !== 0 || value !== '') { - parts.push(value); - } + exports.replacePathSegmentSeparator = replacePathSegmentSeparator; - prevIndex = i; + function joinPathSegments(a, b, separator) { + if (a === '') { + return b; } + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } + if (a.endsWith(separator)) { + return a + b; } - state.slashes = slashes; - state.parts = parts; + return a + separator + b; } - return state; -}; + exports.joinPathSegments = joinPathSegments; +}); -var scan_1 = scan; - -/** - * Constants - */ +class Reader$1 { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } +} -const { - MAX_LENGTH: MAX_LENGTH$1, - POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS -} = constants$1; -/** - * Helpers - */ +var _default$k = Reader$1; +var reader$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$k +}, '__esModule', { + value: true +}); -const expandRange = (args, options) => { - if (typeof options.expandRange === 'function') { - return options.expandRange(...args, options); +class AsyncReader extends reader$1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = out$2.scandir; + this._emitter = new events_1__default['default'].EventEmitter(); + this._queue = queue(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit('end'); + } + }; } - args.sort(); - const value = `[${args.join('-')}]`; - - try { - /* eslint-disable-next-line no-new */ - new RegExp(value); - } catch (ex) { - return args.map(v => utils$1.escapeRegex(v)).join('..'); + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; } - return value; -}; -/** - * Create the message for a syntax error - */ + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error('The reader is already destroyed'); + } -const syntaxError = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; -}; -/** - * Parse the given input string. - * @param {String} input - * @param {Object} options - * @return {Object} - */ + this._isDestroyed = true; + this._queue.killAndDrain(); + } -const parse$1 = (input, options) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); + onEntry(callback) { + this._emitter.on('entry', callback); } - input = REPLACEMENTS[input] || input; - const opts = Object.assign({}, options); - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; - let len = input.length; + onError(callback) { + this._emitter.once('error', callback); + } - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + onEnd(callback) { + this._emitter.once('end', callback); } - const bos = { - type: 'bos', - value: '', - output: opts.prepend || '' - }; - const tokens = [bos]; - const capture = opts.capture ? '' : '?:'; - const win32 = utils$1.isWindows(options); // create constants based on platform, for windows or posix + _pushToQueue(directory, base) { + const queueItem = { + directory, + base + }; - const PLATFORM_CHARS = constants$1.globChars(win32); - const EXTGLOB_CHARS = constants$1.extglobChars(PLATFORM_CHARS); - const { - DOT_LITERAL, - PLUS_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK, - QMARK_NO_DOT, - STAR, - START_ANCHOR - } = PLATFORM_CHARS; + this._queue.push(queueItem, error => { + if (error !== null) { + this._handleError(error); + } + }); + } - const globstar = opts => { - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, undefined); + return; + } - const nodot = opts.dot ? '' : NO_DOT; - const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; - let star = opts.bash === true ? globstar(opts) : STAR; + for (const entry of entries) { + this._handleEntry(entry, item.base); + } - if (opts.capture) { - star = `(${star})`; - } // minimatch options support + done(null, undefined); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } - if (typeof opts.noext === 'boolean') { - opts.noextglob = opts.noext; - } + this._isFatalError = true; + this._isDestroyed = true; - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: '', - output: '', - prefix: '', - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - input = utils$1.removePrefix(input, state); - len = input.length; - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; - /** - * Tokenizing helpers - */ + this._emitter.emit('error', error); + } - const eos = () => state.index === len - 1; + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } - const peek = state.peek = (n = 1) => input[state.index + n]; + const fullpath = entry.path; - const advance = state.advance = () => input[++state.index]; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } - const remaining = () => input.slice(state.index + 1); + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } - const consume = (value = '', num = 0) => { - state.consumed += value; - state.index += num; - }; + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, entry.path); + } + } - const append = token => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; + _emitEntry(entry) { + this._emitter.emit('entry', entry); + } - const negate = () => { - let count = 1; +} - while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { - advance(); - state.start++; - count++; - } +var _default$j = AsyncReader; +var async$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$j +}, '__esModule', { + value: true +}); - if (count % 2 === 0) { - return false; - } +class AsyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async$2.default(this._root, this._settings); + this._storage = new Set(); + } - state.negated = true; - state.start++; - return true; - }; + read(callback) { + this._reader.onError(error => { + callFailureCallback(callback, error); + }); - const increment = type => { - state[type]++; - stack.push(type); - }; + this._reader.onEntry(entry => { + this._storage.add(entry); + }); - const decrement = type => { - state[type]--; - stack.pop(); - }; - /** - * Push tokens onto the tokens array. This helper speeds up - * tokenizing by 1) helping us avoid backtracking as much as possible, - * and 2) helping us avoid creating extra tokens when consecutive - * characters are plain text. This improves performance and simplifies - * lookbehinds. - */ + this._reader.onEnd(() => { + callSuccessCallback(callback, [...this._storage]); + }); + this._reader.read(); + } - const push = tok => { - if (prev.type === 'globstar') { - const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); - const isExtglob = tok.extglob === true || extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'); +} - if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = 'star'; - prev.value = '*'; - prev.output = star; - state.output += prev.output; - } - } +var _default$i = AsyncProvider; - if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) { - extglobs[extglobs.length - 1].inner += tok.value; - } +function callFailureCallback(callback, error) { + callback(error); +} - if (tok.value || tok.output) append(tok); +function callSuccessCallback(callback, entries) { + callback(null, entries); +} - if (prev && prev.type === 'text' && tok.type === 'text') { - prev.value += tok.value; - prev.output = (prev.output || '') + tok.value; - return; - } +var async$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$i +}, '__esModule', { + value: true +}); - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; +class StreamProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async$2.default(this._root, this._settings); + this._stream = new stream_1__default['default'].Readable({ + objectMode: true, + read: () => {}, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } - const extglobOpen = (type, value) => { - const token = Object.assign({}, EXTGLOB_CHARS[value], { - conditions: 1, - inner: '' + read() { + this._reader.onError(error => { + this._stream.emit('error', error); }); - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? '(' : '') + token.open; - increment('parens'); - push({ - type, - value, - output: state.output ? '' : ONE_CHAR + + this._reader.onEntry(entry => { + this._stream.push(entry); }); - push({ - type: 'paren', - extglob: true, - value: advance(), - output + + this._reader.onEnd(() => { + this._stream.push(null); }); - extglobs.push(token); - }; - const extglobClose = token => { - let output = token.close + (opts.capture ? ')' : ''); + this._reader.read(); - if (token.type === 'negate') { - let extglobStar = star; + return this._stream; + } - if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { - extglobStar = globstar(opts); - } +} - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } +var _default$h = StreamProvider; +var stream$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$h +}, '__esModule', { + value: true +}); - if (token.prev.type === 'bos' && eos()) { - state.negatedExtglob = true; - } - } +class SyncReader extends reader$1.default { + constructor() { + super(...arguments); + this._scandir = out$2.scandirSync; + this._storage = new Set(); + this._queue = new Set(); + } - push({ - type: 'paren', - extglob: true, - value, - output - }); - decrement('parens'); - }; - /** - * Fast paths - */ + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { - if (first === '\\') { - backslashes = true; - return m; - } + return [...this._storage]; + } - if (first === '?') { - if (esc) { - return esc + first + (rest ? QMARK.repeat(rest.length) : ''); - } + _pushToQueue(directory, base) { + this._queue.add({ + directory, + base + }); + } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); - } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } - return QMARK.repeat(chars.length); - } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); - if (first === '.') { - return DOT_LITERAL.repeat(chars.length); + for (const entry of entries) { + this._handleEntry(entry, base); } + } catch (error) { + this._handleError(error); + } + } - if (first === '*') { - if (esc) { - return esc + first + (rest ? star : ''); - } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } - return star; - } + throw error; + } - return esc ? m : `\\${m}`; - }); + _handleEntry(entry, base) { + const fullpath = entry.path; - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ''); - } else { - output = output.replace(/\\+/g, m => { - return m.length % 2 === 0 ? '\\\\' : m ? '\\' : ''; - }); - } + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); } - if (output === input && opts.contains === true) { - state.output = input; - return state; + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); } - state.output = utils$1.wrapOutput(output, state, options); - return state; + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, entry.path); + } } - /** - * Tokenize input until we reach end-of-string - */ + _pushToStorage(entry) { + this._storage.add(entry); + } - while (!eos()) { - value = advance(); +} - if (value === '\u0000') { - continue; - } - /** - * Escaped characters - */ +var _default$g = SyncReader; +var sync$3 = /*#__PURE__*/Object.defineProperty({ + default: _default$g +}, '__esModule', { + value: true +}); +class SyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync$3.default(this._root, this._settings); + } - if (value === '\\') { - const next = peek(); + read() { + return this._reader.read(); + } - if (next === '/' && opts.bash !== true) { - continue; - } +} - if (next === '.' || next === ';') { - continue; - } +var _default$f = SyncProvider; +var sync$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$f +}, '__esModule', { + value: true +}); - if (!next) { - value += '\\'; - push({ - type: 'text', - value - }); - continue; - } // collapse slashes to reduce potential for exploits +class Settings { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, undefined); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); + this.fsScandirSettings = new out$2.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } - const match = /^\\+/.exec(remaining()); - let slashes = 0; +} - if (match && match[0].length > 2) { - slashes = match[0].length; - state.index += slashes; +var _default$e = Settings; +var settings$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$e +}, '__esModule', { + value: true +}); - if (slashes % 2 !== 0) { - value += '\\'; - } - } +var out$1 = createCommonjsModule(function (module, exports) { - if (opts.unescape === true) { - value = advance() || ''; - } else { - value += advance() || ''; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; + exports.Settings = settings$1.default; - if (state.brackets === 0) { - push({ - type: 'text', - value - }); - continue; - } + function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + new async$1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; } - /** - * If we're inside a regex character class, continue - * until we reach the closing bracket. - */ - - if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { - if (opts.posix !== false && value === ':') { - const inner = prev.value.slice(1); + new async$1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); + } - if (inner.includes('[')) { - prev.posix = true; + exports.walk = walk; - if (inner.includes(':')) { - const idx = prev.value.lastIndexOf('['); - const pre = prev.value.slice(0, idx); - const rest = prev.value.slice(idx + 2); - const posix = POSIX_REGEX_SOURCE$1[rest]; + function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync$2.default(directory, settings); + return provider.read(); + } - if (posix) { - prev.value = pre + posix; - state.backtrack = true; - advance(); + exports.walkSync = walkSync; - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR; - } + function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream$2.default(directory, settings); + return provider.read(); + } - continue; - } - } - } - } + exports.walkStream = walkStream; - if (value === '[' && peek() !== ':' || value === '-' && peek() === ']') { - value = `\\${value}`; - } + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings$1.default) { + return settingsOrOptions; + } - if (value === ']' && (prev.value === '[' || prev.value === '[^')) { - value = `\\${value}`; - } + return new settings$1.default(settingsOrOptions); + } +}); - if (opts.posix === true && value === '!' && prev.value === '[') { - value = '^'; - } +class Reader { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new out$3.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } - prev.value += value; - append({ - value - }); - continue; - } - /** - * If we're inside a quoted string, continue - * until we reach the closing double quote. - */ + _getFullEntryPath(filepath) { + return path__default['default'].resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils$1.fs.createDirentFromStats(pattern, stats) + }; - if (state.quotes === 1 && value !== '"') { - value = utils$1.escapeRegex(value); - prev.value += value; - append({ - value - }); - continue; + if (this._settings.stats) { + entry.stats = stats; } - /** - * Double quotes - */ + return entry; + } - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; + _isFatalError(error) { + return !utils$1.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } - if (opts.keepQuotes === true) { - push({ - type: 'text', - value - }); - } +} - continue; - } - /** - * Parentheses - */ +var _default$d = Reader; +var reader = /*#__PURE__*/Object.defineProperty({ + default: _default$d +}, '__esModule', { + value: true +}); +class ReaderStream extends reader.default { + constructor() { + super(...arguments); + this._walkStream = out$1.walkStream; + this._stat = out$3.stat; + } - if (value === '(') { - increment('parens'); - push({ - type: 'paren', - value - }); - continue; - } + dynamic(root, options) { + return this._walkStream(root, options); + } - if (value === ')') { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '(')); - } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1__default['default'].PassThrough({ + objectMode: true + }); - const extglob = extglobs[extglobs.length - 1]; + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options).then(entry => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } + if (index === filepaths.length - 1) { + stream.end(); + } - push({ - type: 'paren', - value, - output: state.parens ? ')' : '\\)' - }); - decrement('parens'); - continue; + done(); + }).catch(done); + }; + + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); } - /** - * Square brackets - */ + return stream; + } - if (value === '[') { - if (opts.nobracket === true || !remaining().includes(']')) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('closing', ']')); - } - - value = `\\${value}`; - } else { - increment('brackets'); + _getEntry(filepath, pattern, options) { + return this._getStat(filepath).then(stats => this._makeEntry(stats, pattern)).catch(error => { + if (options.errorFilter(error)) { + return null; } - push({ - type: 'bracket', - value + throw error; + }); + } + + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); }); - continue; - } + }); + } - if (value === ']') { - if (opts.nobracket === true || prev && prev.type === 'bracket' && prev.value.length === 1) { - push({ - type: 'text', - value, - output: `\\${value}` - }); - continue; - } +} - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError('opening', '[')); - } +var _default$c = ReaderStream; +var stream$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$c +}, '__esModule', { + value: true +}); - push({ - type: 'text', - value, - output: `\\${value}` - }); - continue; - } +class Matcher { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; - decrement('brackets'); - const prevValue = prev.value.slice(1); + this._fillStorage(); + } - if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { - value = `/${value}`; - } + _fillStorage() { + /** + * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). + * So, before expand patterns with brace expansion into separated patterns. + */ + const patterns = utils$1.pattern.expandPatternsWithBraceExpansion(this._patterns); - prev.value += value; - append({ - value - }); // when literal brackets are explicitly disabled - // assume we should match with a regex character class + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); - if (opts.literalBrackets === false || utils$1.hasRegexChars(prevValue)) { - continue; - } + const sections = this._splitSegmentsIntoSections(segments); - const escaped = utils$1.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); // when literal brackets are explicitly enabled - // assume we should escape the brackets to match literal characters + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } + } - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } // when the user specifies nothing, try to match both + _getPatternSegments(pattern) { + const parts = utils$1.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map(part => { + const dynamic = utils$1.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } - /** - * Braces - */ + return { + dynamic: true, + pattern: part, + patternRe: utils$1.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } + _splitSegmentsIntoSections(segments) { + return utils$1.array.splitWhen(segments, segment => segment.dynamic && utils$1.pattern.hasGlobStar(segment.pattern)); + } - if (value === '{' && opts.nobrace !== true) { - increment('braces'); - const open = { - type: 'brace', - value, - output: '(', - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; - braces.push(open); - push(open); - continue; - } +} - if (value === '}') { - const brace = braces[braces.length - 1]; +var _default$b = Matcher; +var matcher = /*#__PURE__*/Object.defineProperty({ + default: _default$b +}, '__esModule', { + value: true +}); - if (opts.nobrace === true || !brace) { - push({ - type: 'text', - value, - output: value - }); - continue; - } +class PartialMatcher extends matcher.default { + match(filepath) { + const parts = filepath.split('/'); + const levels = parts.length; - let output = ')'; + const patterns = this._storage.filter(info => !info.complete || info.segments.length > levels); - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; + for (const pattern of patterns) { + const section = pattern.sections[0]; + /** + * In this case, the pattern has a globstar and we must read all directories unconditionally, + * but only if the level has reached the end of the first group. + * + * fixtures/{a,b}/** + * ^ true/false ^ always true + */ + + if (!pattern.complete && levels > section.length) { + return true; + } - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; - if (arr[i].type === 'brace') { - break; - } + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } - if (arr[i].type !== 'dots') { - range.unshift(arr[i].value); - } + if (!segment.dynamic && segment.pattern === part) { + return true; } - output = expandRange(range, opts); - state.backtrack = true; + return false; + }); + + if (match) { + return true; } + } - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = '\\{'; - value = output = '\\}'; - state.output = out; + return false; + } - for (const t of toks) { - state.output += t.output || t.value; - } - } +} - push({ - type: 'brace', - value, - output - }); - decrement('braces'); - braces.pop(); - continue; - } - /** - * Pipes - */ +var _default$a = PartialMatcher; +var partial = /*#__PURE__*/Object.defineProperty({ + default: _default$a +}, '__esModule', { + value: true +}); +class DeepFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } - if (value === '|') { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); - push({ - type: 'text', - value - }); - continue; - } - /** - * Commas - */ + const negativeRe = this._getNegativePatternsRe(negative); + return entry => this._filter(basePath, entry, matcher, negativeRe); + } - if (value === ',') { - let output = value; - const brace = braces[braces.length - 1]; + _getMatcher(patterns) { + return new partial.default(patterns, this._settings, this._micromatchOptions); + } - if (brace && stack[stack.length - 1] === 'braces') { - brace.comma = true; - output = '|'; - } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils$1.pattern.isAffectDepthOfReadingPattern); + return utils$1.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } - push({ - type: 'comma', - value, - output - }); - continue; + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; } - /** - * Slashes - */ + if (this._isSkippedSymbolicLink(entry)) { + return false; + } - if (value === '/') { - // if the beginning of the glob is "./", advance the start - // to the current index, and don't add the "./" characters - // to the state. This greatly simplifies lookbehinds when - // checking for BOS characters like "!" and "." (not "./") - if (prev.type === 'dot' && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ''; - state.output = ''; - tokens.pop(); - prev = bos; // reset "prev" to the first token - - continue; - } + const filepath = utils$1.path.removeLeadingDotSegment(entry.path); - push({ - type: 'slash', - value, - output: SLASH_LITERAL - }); - continue; + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; } - /** - * Dots - */ + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } - if (value === '.') { - if (state.braces > 0 && prev.type === 'dot') { - if (prev.value === '.') prev.output = DOT_LITERAL; - const brace = braces[braces.length - 1]; - prev.type = 'dots'; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } + _isSkippedByDeep(basePath, entryPath) { + /** + * Avoid unnecessary depth calculations when it doesn't matter. + */ + if (this._settings.deep === Infinity) { + return false; + } - if (state.braces + state.parens === 0 && prev.type !== 'bos' && prev.type !== 'slash') { - push({ - type: 'text', - value, - output: DOT_LITERAL - }); - continue; - } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } - push({ - type: 'dot', - value, - output: DOT_LITERAL - }); - continue; + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split('/').length; + + if (basePath === '') { + return entryPathDepth; } - /** - * Question marks - */ + const basePathDepth = basePath.split('/').length; + return entryPathDepth - basePathDepth; + } - if (value === '?') { - const isGroup = prev && prev.value === '('; + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } - if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('qmark', value); - continue; - } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } - if (prev && prev.type === 'paren') { - const next = peek(); - let output = value; + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils$1.pattern.matchAny(entryPath, patternsRe); + } - if (next === '<' && !utils$1.supportsLookbehinds()) { - throw new Error('Node.js v10 or higher is required for regex lookbehinds'); - } +} - if (prev.value === '(' && !/[!=<:]/.test(next) || next === '<' && !/<([!=]|\w+>)/.test(remaining())) { - output = `\\${value}`; - } +var _default$9 = DeepFilter; +var deep = /*#__PURE__*/Object.defineProperty({ + default: _default$9 +}, '__esModule', { + value: true +}); - push({ - type: 'text', - value, - output - }); - continue; - } +class EntryFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = new Map(); + } - if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { - push({ - type: 'qmark', - value, - output: QMARK_NO_DOT - }); - continue; - } + getFilter(positive, negative) { + const positiveRe = utils$1.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils$1.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return entry => this._filter(entry, positiveRe, negativeRe); + } - push({ - type: 'qmark', - value, - output: QMARK - }); - continue; + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; } - /** - * Exclamation - */ + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } - if (value === '!') { - if (opts.noextglob !== true && peek() === '(') { - if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { - extglobOpen('negate', value); - continue; - } - } + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); + + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); } - /** - * Plus - */ + return isMatched; + } - if (value === '+') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('plus', value); - continue; - } + _isDuplicateEntry(entry) { + return this.index.has(entry.path); + } - if (prev && prev.value === '(' || opts.regex === false) { - push({ - type: 'plus', - value, - output: PLUS_LITERAL - }); - continue; - } + _createIndexRecord(entry) { + this.index.set(entry.path, undefined); + } - if (prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace') || state.parens > 0) { - push({ - type: 'plus', - value - }); - continue; - } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } - push({ - type: 'plus', - value: PLUS_LITERAL - }); - continue; + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; } - /** - * Plain text - */ + const fullpath = utils$1.path.makeAbsolute(this._settings.cwd, entryPath); + return utils$1.pattern.matchAny(fullpath, patternsRe); + } - if (value === '@') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - push({ - type: 'at', - extglob: true, - value, - output: '' - }); - continue; - } + _isMatchToPatterns(entryPath, patternsRe) { + const filepath = utils$1.path.removeLeadingDotSegment(entryPath); + return utils$1.pattern.matchAny(filepath, patternsRe); + } - push({ - type: 'text', - value - }); - continue; - } - /** - * Plain text - */ +} +var _default$8 = EntryFilter; +var entry$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$8 +}, '__esModule', { + value: true +}); - if (value !== '*') { - if (value === '$' || value === '^') { - value = `\\${value}`; - } +class ErrorFilter { + constructor(_settings) { + this._settings = _settings; + } - const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + getFilter() { + return error => this._isNonFatalError(error); + } - if (match) { - value += match[0]; - state.index += match[0].length; - } + _isNonFatalError(error) { + return utils$1.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } - push({ - type: 'text', - value - }); - continue; +} + +var _default$7 = ErrorFilter; +var error = /*#__PURE__*/Object.defineProperty({ + default: _default$7 +}, '__esModule', { + value: true +}); + +class EntryTransformer { + constructor(_settings) { + this._settings = _settings; + } + + getTransformer() { + return entry => this._transform(entry); + } + + _transform(entry) { + let filepath = entry.path; + + if (this._settings.absolute) { + filepath = utils$1.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils$1.path.unixify(filepath); } - /** - * Stars - */ + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += '/'; + } - if (prev && (prev.type === 'globstar' || prev.star === true)) { - prev.type = 'star'; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; + if (!this._settings.objectMode) { + return filepath; } - let rest = remaining(); + return Object.assign(Object.assign({}, entry), { + path: filepath + }); + } - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen('star', value); - continue; +} + +var _default$6 = EntryTransformer; +var entry = /*#__PURE__*/Object.defineProperty({ + default: _default$6 +}, '__esModule', { + value: true +}); + +class Provider { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error.default(this._settings); + this.entryFilter = new entry$1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry.default(this._settings); + } + + _getRootDirectory(task) { + return path__default['default'].resolve(this._settings.cwd, task.base); + } + + _getReaderOptions(task) { + const basePath = task.base === '.' ? '' : task.base; + return { + basePath, + pathSegmentSeparator: '/', + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.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: true, + strictSlashes: false + }; + } + +} + +var _default$5 = Provider; +var provider = /*#__PURE__*/Object.defineProperty({ + default: _default$5 +}, '__esModule', { + value: true +}); + +class ProviderAsync extends provider.default { + constructor() { + super(...arguments); + this._reader = new stream$1.default(this._settings); + } + + read(task) { + const root = this._getRootDirectory(task); + + const options = this._getReaderOptions(task); + + const entries = []; + return new Promise((resolve, reject) => { + const stream = this.api(root, task, options); + stream.once('error', reject); + stream.on('data', entry => entries.push(options.transform(entry))); + stream.once('end', () => resolve(entries)); + }); + } + + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); } - if (prev.type === 'star') { - if (opts.noglobstar === true) { - consume(value); - continue; - } + return this._reader.static(task.patterns, options); + } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === 'slash' || prior.type === 'bos'; - const afterStar = before && (before.type === 'star' || before.type === 'globstar'); +} - if (opts.bash === true && (!isStart || rest[0] && rest[0] !== '/')) { - push({ - type: 'star', - value, - output: '' - }); - continue; - } +var _default$4 = ProviderAsync; +var async = /*#__PURE__*/Object.defineProperty({ + default: _default$4 +}, '__esModule', { + value: true +}); - const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); - const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); +class ProviderStream extends provider.default { + constructor() { + super(...arguments); + this._reader = new stream$1.default(this._settings); + } - if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { - push({ - type: 'star', - value, - output: '' - }); - continue; - } // strip consecutive `/**/` + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); - while (rest.slice(0, 3) === '/**') { - const after = input[state.index + 4]; + const source = this.api(root, task, options); + const destination = new stream_1__default['default'].Readable({ + objectMode: true, + read: () => {} + }); + source.once('error', error => destination.emit('error', error)).on('data', entry => destination.emit('data', options.transform(entry))).once('end', () => destination.emit('end')); + destination.once('close', () => source.destroy()); + return destination; + } - if (after && after !== '/') { - break; - } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } - rest = rest.slice(3); - consume('/**', 3); - } + return this._reader.static(task.patterns, options); + } - if (prior.type === 'bos' && eos()) { - prev.type = 'globstar'; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); +} + +var _default$3 = ProviderStream; +var stream = /*#__PURE__*/Object.defineProperty({ + default: _default$3 +}, '__esModule', { + value: true +}); + +class ReaderSync extends reader.default { + constructor() { + super(...arguments); + this._walkSync = out$1.walkSync; + this._statSync = out$3.statSync; + } + + dynamic(root, options) { + return this._walkSync(root, options); + } + + static(patterns, options) { + const entries = []; + + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + + const entry = this._getEntry(filepath, pattern, options); + + if (entry === null || !options.entryFilter(entry)) { continue; } - if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = 'globstar'; - prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } - - if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { - const end = rest[1] !== void 0 ? '|$' : ''; - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = 'globstar'; - prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; - prev.value += value; - state.output += prior.output + prev.output; - state.globstar = true; - consume(value + advance()); - push({ - type: 'slash', - value: '/', - output: '' - }); - continue; - } - - if (prior.type === 'bos' && rest[0] === '/') { - prev.type = 'globstar'; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ - type: 'slash', - value: '/', - output: '' - }); - continue; - } // remove single star from output + entries.push(entry); + } + return entries; + } - state.output = state.output.slice(0, -prev.output.length); // reset previous token to globstar + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); - prev.type = 'globstar'; - prev.output = globstar(opts); - prev.value += value; // reset output with globstar + return this._makeEntry(stats, pattern); + } catch (error) { + if (options.errorFilter(error)) { + return null; + } - state.output += prev.output; - state.globstar = true; - consume(value); - continue; + throw error; } + } - const token = { - type: 'star', - value, - output: star - }; + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } - if (opts.bash === true) { - token.output = '.*?'; +} - if (prev.type === 'bos' || prev.type === 'slash') { - token.output = nodot + token.output; - } +var _default$2 = ReaderSync; +var sync$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$2 +}, '__esModule', { + value: true +}); - push(token); - continue; - } +class ProviderSync extends provider.default { + constructor() { + super(...arguments); + this._reader = new sync$1.default(this._settings); + } - if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { - token.output = value; - push(token); - continue; - } + read(task) { + const root = this._getRootDirectory(task); - if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { - if (prev.type === 'dot') { - state.output += NO_DOT_SLASH; - prev.output += NO_DOT_SLASH; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH; - prev.output += NO_DOTS_SLASH; - } else { - state.output += nodot; - prev.output += nodot; - } + const options = this._getReaderOptions(task); - if (peek() !== '*') { - state.output += ONE_CHAR; - prev.output += ONE_CHAR; - } + const entries = this.api(root, task, options); + return entries.map(options.transform); + } + + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); } - push(token); + return this._reader.static(task.patterns, options); } - while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); - state.output = utils$1.escapeLast(state.output, '['); - decrement('brackets'); - } +} - while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); - state.output = utils$1.escapeLast(state.output, '('); - decrement('parens'); - } +var _default$1 = ProviderSync; +var sync = /*#__PURE__*/Object.defineProperty({ + default: _default$1 +}, '__esModule', { + value: true +}); - while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); - state.output = utils$1.escapeLast(state.output, '{'); - decrement('braces'); - } +var settings = createCommonjsModule(function (module, exports) { - if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { - push({ - type: 'maybe_slash', - value: '', - output: `${SLASH_LITERAL}?` - }); - } // rebuild the output if we had to backtrack at any point + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; + /** + * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. + * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 + */ + const CPU_COUNT = Math.max(os__default['default'].cpus().length, 1); + exports.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs__default['default'].lstat, + lstatSync: fs__default['default'].lstatSync, + stat: fs__default['default'].stat, + statSync: fs__default['default'].statSync, + readdir: fs__default['default'].readdir, + readdirSync: fs__default['default'].readdirSync + }; - if (state.backtrack === true) { - state.output = ''; + class Settings { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; + if (this.onlyDirectories) { + this.onlyFiles = false; + } - if (token.suffix) { - state.output += token.suffix; + if (this.stats) { + this.objectMode = true; } } - } - - return state; -}; -/** - * Fast paths for creating regular expressions for common glob patterns. - * This can significantly speed up processing and has very little downside - * impact when none of the fast paths match. - */ + _getValue(option, value) { + return option === undefined ? value : option; + } -parse$1.fastpaths = (input, options) => { - const opts = Object.assign({}, options); - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; - const len = input.length; + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } - input = REPLACEMENTS[input] || input; - const win32 = utils$1.isWindows(options); // create constants based on platform, for windows or posix + exports.default = Settings; +}); - const { - DOT_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOTS_SLASH, - STAR, - START_ANCHOR - } = constants$1.globChars(win32); - const nodot = opts.dot ? NO_DOTS : NO_DOT; - const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; - const capture = opts.capture ? '' : '?:'; - const state = { - negated: false, - prefix: '' - }; - let star = opts.bash === true ? '.*?' : STAR; +async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async.default, options); + const result = await Promise.all(works); + return utils$1.array.flatten(result); +} // https://github.com/typescript-eslint/typescript-eslint/issues/60 +// eslint-disable-next-line no-redeclare - if (opts.capture) { - star = `(${star})`; + +(function (FastGlob) { + function sync$1(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync.default, options); + return utils$1.array.flatten(works); } - const globstar = opts => { - if (opts.noglobstar === true) return star; - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; + FastGlob.sync = sync$1; - const create = str => { - switch (str) { - case '*': - return `${nodot}${ONE_CHAR}${star}`; + function stream$1(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream.default, options); + /** + * The stream returned by the provider cannot work with an asynchronous iterator. + * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. + * This affects performance (+25%). I don't see best solution right now. + */ - case '.*': - return `${DOT_LITERAL}${ONE_CHAR}${star}`; + return utils$1.stream.merge(works); + } - case '*.*': - return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + FastGlob.stream = stream$1; - case '*/*': - return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = [].concat(source); + const settings$1 = new settings.default(options); + return tasks.generate(patterns, settings$1); + } - case '**': - return nodot + globstar(opts); + FastGlob.generateTasks = generateTasks; - case '**/*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings$1 = new settings.default(options); + return utils$1.pattern.isDynamicPattern(source, settings$1); + } - case '**/*.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + FastGlob.isDynamicPattern = isDynamicPattern; - case '**/.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + function escapePath(source) { + assertPatternsInput(source); + return utils$1.path.escape(source); + } - default: - { - const match = /^(.*?)\.(\w+)$/.exec(str); - if (!match) return; - const source = create(match[1]); - if (!source) return; - return source + DOT_LITERAL + match[2]; - } - } - }; + FastGlob.escapePath = escapePath; +})(FastGlob || (FastGlob = {})); - const output = utils$1.removePrefix(input, state); - let source = create(output); +function getWorks(source, _Provider, options) { + const patterns = [].concat(source); + const settings$1 = new settings.default(options); + const tasks$1 = tasks.generate(patterns, settings$1); + const provider = new _Provider(settings$1); + return tasks$1.map(provider.read, provider); +} - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL}?`; +function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every(item => utils$1.string.isString(item) && !utils$1.string.isEmpty(item)); + + if (!isValidSource) { + throw new TypeError('Patterns must be a string (non empty) or an array of strings'); } +} - return source; -}; +var out = FastGlob; -var parse_1$1 = parse$1; +const { + promises: fs$1 +} = fs__default['default']; +/** @typedef {import('./context').Context} Context */ -const isObject$2 = val => val && typeof val === 'object' && !Array.isArray(val); /** - * Creates a matcher function from one or more glob patterns. The - * returned function takes a string to match as its first argument, - * and returns true if the string is a match. The returned matcher - * function also takes a boolean as the second argument that, when true, - * returns an object with additional information. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch(glob[, options]); - * - * const isMatch = picomatch('*.!(*a)'); - * console.log(isMatch('a.a')); //=> false - * console.log(isMatch('a.b')); //=> true - * ``` - * @name picomatch - * @param {String|Array} `globs` One or more glob patterns. - * @param {Object=} `options` - * @return {Function=} Returns a matcher function. - * @api public + * @param {Context} context */ +async function* expandPatterns$1(context) { + const cwd = process.cwd(); + const seen = new Set(); + let noResults = true; -const picomatch = (glob, options, returnState = false) => { - if (Array.isArray(glob)) { - const fns = glob.map(input => picomatch(input, options, returnState)); + for await (const pathOrError of expandPatternsInternal(context)) { + noResults = false; - const arrayMatcher = str => { - for (const isMatch of fns) { - const state = isMatch(str); - if (state) return state; - } + if (typeof pathOrError !== "string") { + yield pathOrError; + continue; + } - return false; - }; + const relativePath = path__default['default'].relative(cwd, pathOrError); // filter out duplicates - return arrayMatcher; - } + if (seen.has(relativePath)) { + continue; + } - const isState = isObject$2(glob) && glob.tokens && glob.input; + seen.add(relativePath); + yield relativePath; + } - if (glob === '' || typeof glob !== 'string' && !isState) { - throw new TypeError('Expected pattern to be a non-empty string'); + if (noResults && context.argv["error-on-unmatched-pattern"] !== false) { + // If there was no files and no other errors, let's yield a general error. + yield { + error: `No matching files. Patterns: ${context.filePatterns.join(" ")}` + }; } +} +/** + * @param {Context} context + */ - const opts = options || {}; - const posix = utils$1.isWindows(options); - const regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true); - const state = regex.state; - delete regex.state; - let isIgnored = () => false; +async function* expandPatternsInternal(context) { + // Ignores files in version control systems directories and `node_modules` + const silentlyIgnoredDirs = [".git", ".svn", ".hg"]; - if (opts.ignore) { - const ignoreOpts = Object.assign({}, options, { - ignore: null, - onMatch: null, - onResult: null - }); - isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + if (context.argv["with-node-modules"] !== true) { + silentlyIgnoredDirs.push("node_modules"); } - const matcher = (input, returnObject = false) => { - const { - isMatch, - match, - output - } = picomatch.test(input, regex, options, { - glob, - posix - }); - const result = { - glob, - state, - regex, - posix, - input, - output, - match, - isMatch - }; + const globOptions = { + dot: true, + ignore: silentlyIgnoredDirs.map(dir => "**/" + dir) + }; + let supportedFilesGlob; + const cwd = process.cwd(); + /** @type {Array<{ type: 'file' | 'dir' | 'glob'; glob: string; input: string; }>} */ - if (typeof opts.onResult === 'function') { - opts.onResult(result); - } + const entries = []; - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; + for (const pattern of context.filePatterns) { + const absolutePath = path__default['default'].resolve(cwd, pattern); + + if (containsIgnoredPathSegment(absolutePath, cwd, silentlyIgnoredDirs)) { + continue; } - if (isIgnored(input)) { - if (typeof opts.onIgnore === 'function') { - opts.onIgnore(result); + const stat = await statSafe(absolutePath); + + if (stat) { + if (stat.isFile()) { + entries.push({ + type: "file", + glob: escapePathForGlob(fixWindowsSlashes$1(pattern)), + input: pattern + }); + } else if (stat.isDirectory()) { + /* + 1. Remove trailing `/`, `fast-glob` can't find files for `src//*.js` pattern + 2. Cleanup dirname, when glob `src/../*.js` pattern with `fast-glob`, + it returns files like 'src/../index.js' + */ + const relativePath = path__default['default'].relative(cwd, absolutePath) || "."; + entries.push({ + type: "dir", + glob: escapePathForGlob(fixWindowsSlashes$1(relativePath)) + "/" + getSupportedFilesGlob(), + input: pattern + }); } + } else if (pattern[0] === "!") { + // convert negative patterns to `ignore` entries + globOptions.ignore.push(fixWindowsSlashes$1(pattern.slice(1))); + } else { + entries.push({ + type: "glob", + glob: fixWindowsSlashes$1(pattern), + input: pattern + }); + } + } - result.isMatch = false; - return returnObject ? result : false; + for (const { + type, + glob, + input + } of entries) { + let result; + + try { + result = await out(glob, globOptions); + } catch ({ + message + }) { + /* istanbul ignore next */ + yield { + error: `${errorMessages.globError[type]}: ${input}\n${message}` + }; + /* istanbul ignore next */ + + continue; } - if (typeof opts.onMatch === 'function') { - opts.onMatch(result); + if (result.length === 0) { + if (context.argv["error-on-unmatched-pattern"] !== false) { + yield { + error: `${errorMessages.emptyResults[type]}: "${input}".` + }; + } + } else { + yield* sortPaths(result); } + } - return returnObject ? result : true; - }; + function getSupportedFilesGlob() { + if (!supportedFilesGlob) { + const extensions = context.languages.flatMap(lang => lang.extensions || []); + const filenames = context.languages.flatMap(lang => lang.filenames || []); + supportedFilesGlob = `**/{${[...extensions.map(ext => "*" + (ext[0] === "." ? ext : "." + ext)), ...filenames]}}`; + } - if (returnState) { - matcher.state = state; + return supportedFilesGlob; } +} - return matcher; +const errorMessages = { + globError: { + file: "Unable to resolve file", + dir: "Unable to expand directory", + glob: "Unable to expand glob pattern" + }, + emptyResults: { + file: "Explicitly specified file was ignored due to negative glob patterns", + dir: "No supported files were found in the directory", + glob: "No files matching the pattern were found" + } }; /** - * Test `input` with the given `regex`. This is used by the main - * `picomatch()` function to test the input string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.test(input, regex[, options]); - * - * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); - * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } - * ``` - * @param {String} `input` String to test. - * @param {RegExp} `regex` - * @return {Object} Returns an object with matching info. - * @api public + * @param {string} absolutePath + * @param {string} cwd + * @param {string[]} ignoredDirectories */ +function containsIgnoredPathSegment(absolutePath, cwd, ignoredDirectories) { + return path__default['default'].relative(cwd, absolutePath).split(path__default['default'].sep).some(dir => ignoredDirectories.includes(dir)); +} +/** + * @param {string[]} paths + */ -picomatch.test = (input, regex, options, { - glob, - posix -} = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected input to be a string'); - } - - if (input === '') { - return { - isMatch: false, - output: '' - }; - } - const opts = options || {}; - const format = opts.format || (posix ? utils$1.toPosixSlashes : null); - let match = input === glob; - let output = match && format ? format(input) : input; +function sortPaths(paths) { + return paths.sort((a, b) => a.localeCompare(b)); +} +/** + * Get stats of a given path. + * @param {string} filePath The path to target file. + * @returns {Promise} The stats. + */ - if (match === false) { - output = format ? format(input) : input; - match = output === glob; - } - if (match === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match = picomatch.matchBase(input, regex, options, posix); - } else { - match = regex.exec(output); +async function statSafe(filePath) { + try { + return await fs$1.stat(filePath); + } catch (error) { + /* istanbul ignore next */ + if (error.code !== "ENOENT") { + throw error; } } - - return { - isMatch: Boolean(match), - match, - output - }; -}; +} /** - * Match the basename of a filepath. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.matchBase(input, glob[, options]); - * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true - * ``` - * @param {String} `input` String to test. - * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). - * @return {Boolean} - * @api public + * This function should be replaced with `fastGlob.escapePath` when these issues are fixed: + * - https://github.com/mrmlnc/fast-glob/issues/261 + * - https://github.com/mrmlnc/fast-glob/issues/262 + * @param {string} path */ -picomatch.matchBase = (input, glob, options, posix = utils$1.isWindows(options)) => { - const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); - return regex.test(path__default['default'].basename(input)); -}; -/** - * Returns true if **any** of the given glob `patterns` match the specified `string`. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.isMatch(string, patterns[, options]); - * - * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true - * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false - * ``` - * @param {String|Array} str The string to test. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} [options] See available [options](#options). - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - +function escapePathForGlob(path) { + return out.escapePath(path.replace(/\\/g, "\0") // Workaround for fast-glob#262 (part 1) + ).replace(/\\!/g, "@(!)") // Workaround for fast-glob#261 + .replace(/\0/g, "@(\\\\)"); // Workaround for fast-glob#262 (part 2) +} -picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); +const isWindows = path__default['default'].sep === "\\"; /** - * Parse a glob pattern to create the source string for a regular - * expression. - * - * ```js - * const picomatch = require('picomatch'); - * const result = picomatch.parse(pattern[, options]); - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} Returns an object with useful properties and output to be used as a regex source string. - * @api public + * Using backslashes in globs is probably not okay, but not accepting + * backslashes as path separators on Windows is even more not okay. + * https://github.com/prettier/prettier/pull/6776#discussion_r380723717 + * https://github.com/mrmlnc/fast-glob#how-to-write-patterns-on-windows + * @param {string} pattern */ +function fixWindowsSlashes$1(pattern) { + return isWindows ? pattern.replace(/\\/g, "/") : pattern; +} -picomatch.parse = (pattern, options) => { - if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); - return parse_1$1(pattern, Object.assign({}, options, { - fastpaths: false - })); +var expandPatterns_1 = { + expandPatterns: expandPatterns$1, + fixWindowsSlashes: fixWindowsSlashes$1 }; -/** - * Scan a glob pattern to separate the pattern into segments. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.scan(input[, options]); - * - * const result = picomatch.scan('!./foo/*.js'); - * console.log(result); - * { prefix: '!./', - * input: '!./foo/*.js', - * start: 3, - * base: 'foo', - * glob: '*.js', - * isBrace: false, - * isBracket: false, - * isGlob: true, - * isExtglob: false, - * isGlobstar: false, - * negated: true } - * ``` - * @param {String} `input` Glob pattern to scan. - * @param {Object} `options` - * @return {Object} Returns an object with - * @api public - */ +var iterators = {}; -picomatch.scan = (input, options) => scan_1(input, options); -/** - * Create a regular expression from a parsed glob pattern. - * - * ```js - * const picomatch = require('picomatch'); - * const state = picomatch.parse('*.js'); - * // picomatch.compileRe(state[, options]); - * - * console.log(picomatch.compileRe(state)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `state` The object returned from the `.parse` method. - * @param {Object} `options` - * @return {RegExp} Returns a regex created from the given pattern. - * @api public - */ +var ITERATOR$1 = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; +// check on default Array iterator +var isArrayIteratorMethod = function (it) { + return it !== undefined && (iterators.Array === it || ArrayPrototype[ITERATOR$1] === it); +}; -picomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return parsed.output; - } +var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); +var test = {}; - const opts = options || {}; - const prepend = opts.contains ? '' : '^'; - const append = opts.contains ? '' : '$'; - let source = `${prepend}(?:${parsed.output})${append}`; +test[TO_STRING_TAG$1] = 'z'; - if (parsed && parsed.negated === true) { - source = `^(?!${source}).*$`; - } +var toStringTagSupport = String(test) === '[object z]'; - const regex = picomatch.toRegex(source, options); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - if (returnState === true) { - regex.state = parsed; - } +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; - return regex; +// getting tag from ES6+ `Object.prototype.toString` +var classof = toStringTagSupport ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; }; -picomatch.makeRe = (input, options, returnOutput = false, returnState = false) => { - if (!input || typeof input !== 'string') { - throw new TypeError('Expected a non-empty string'); - } +var ITERATOR = wellKnownSymbol('iterator'); - const opts = options || {}; - let parsed = { - negated: false, - fastpaths: true - }; - let prefix = ''; - let output; +var getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || iterators[classof(it)]; +}; - if (input.startsWith('./')) { - input = input.slice(2); - prefix = parsed.prefix = './'; +var iteratorClose = function (iterator) { + var returnMethod = iterator['return']; + if (returnMethod !== undefined) { + return anObject(returnMethod.call(iterator)).value; } +}; - if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { - output = parse_1$1.fastpaths(input, options); - } +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var iterate = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = functionBindContext(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator); + return new Result(true, condition); + }; - if (output === undefined) { - parsed = parse_1$1(input, options); - parsed.prefix = prefix + (parsed.prefix || ''); + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_ITERATOR) { + iterator = iterable; } else { - parsed.output = output; + iterFn = getIteratorMethod(iterable); + if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = toLength(iterable.length); length > index; index++) { + result = callFn(iterable[index]); + if (result && result instanceof Result) return result; + } return new Result(false); + } + iterator = iterFn.call(iterable); } - return picomatch.compileRe(parsed, options, returnOutput, returnState); + next = iterator.next; + while (!(step = next.call(iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator); + throw error; + } + if (typeof result == 'object' && result && result instanceof Result) return result; + } return new Result(false); }; -/** - * Create a regular expression from the given regex source string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.toRegex(source[, options]); - * - * const { output } = picomatch.parse('*.js'); - * console.log(picomatch.toRegex(output)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `source` Regular expression source string. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ - -picomatch.toRegex = (source, options) => { - try { - const opts = options || {}; - return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); - } catch (err) { - if (options && options.debug === true) throw err; - return /$^/; - } +var createProperty = function (object, key, value) { + var propertyKey = toPrimitive(key); + if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; }; -/** - * Picomatch constants. - * @return {Object} - */ +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +_export({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); -picomatch.constants = constants$1; -/** - * Expose "picomatch" +/*! + * dashify + * + * Copyright (c) 2015-2017, Jon Schlinkert. + * Released under the MIT License. */ -var picomatch_1 = picomatch; - -var picomatch$1 = picomatch_1; +var dashify = (str, options) => { + if (typeof str !== 'string') throw new TypeError('expected a string'); + return str.trim().replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\W/g, m => /[À-ž]/.test(m) ? m : '-').replace(/^-+|-+$/g, '').replace(/-{2,}/g, m => options && options.condense ? '-' : m).toLowerCase(); +}; -const isEmptyString = val => typeof val === 'string' && (val === '' || val === './'); -/** - * Returns an array of strings that match one or more glob patterns. - * - * ```js - * const mm = require('micromatch'); - * // mm(list, patterns[, options]); - * - * console.log(mm(['a.js', 'a.txt'], ['*.js'])); - * //=> [ 'a.js' ] - * ``` - * @param {String|Array} list List of strings to match. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} options See available [options](#options) - * @return {Array} Returns an array of matches - * @summary false - * @api public - */ +var minimist = function (args, opts) { + if (!opts) opts = {}; + var flags = { + bools: {}, + strings: {}, + unknownFn: null + }; + if (typeof opts['unknown'] === 'function') { + flags.unknownFn = opts['unknown']; + } -const micromatch = (list, patterns, options) => { - patterns = [].concat(patterns); - list = [].concat(list); - let omit = new Set(); - let keep = new Set(); - let items = new Set(); - let negatives = 0; + if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { + flags.allBools = true; + } else { + [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + }); + } - let onResult = state => { - items.add(state.output); + var aliases = {}; + Object.keys(opts.alias || {}).forEach(function (key) { + aliases[key] = [].concat(opts.alias[key]); + aliases[key].forEach(function (x) { + aliases[x] = [key].concat(aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + [].concat(opts.string).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; - if (options && options.onResult) { - options.onResult(state); + if (aliases[key]) { + flags.strings[aliases[key]] = true; } + }); + var defaults = opts['default'] || {}; + var argv = { + _: [] }; + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] === undefined ? false : defaults[key]); + }); + var notFlags = []; - for (let i = 0; i < patterns.length; i++) { - let isMatch = picomatch$1(String(patterns[i]), Object.assign({}, options, { - onResult - }), true); - let negated = isMatch.state.negated || isMatch.state.negatedExtglob; - if (negated) negatives++; + if (args.indexOf('--') !== -1) { + notFlags = args.slice(args.indexOf('--') + 1); + args = args.slice(0, args.indexOf('--')); + } - for (let item of list) { - let matched = isMatch(item, true); - let match = negated ? !matched.isMatch : matched.isMatch; - if (!match) continue; + function argDefined(key, arg) { + return flags.allBools && /^--[^=]+$/.test(arg) || flags.strings[key] || flags.bools[key] || aliases[key]; + } - if (negated) { - omit.add(matched.output); - } else { - omit.delete(matched.output); - keep.add(matched.output); - } + function setArg(key, val, arg) { + if (arg && flags.unknownFn && !argDefined(key, arg)) { + if (flags.unknownFn(arg) === false) return; } + + var value = !flags.strings[key] && isNumber(val) ? Number(val) : val; + setKey(argv, key.split('.'), value); + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), value); + }); } - let result = negatives === patterns.length ? [...items] : [...keep]; - let matches = result.filter(item => !omit.has(item)); + function setKey(obj, keys, value) { + var o = obj; - if (options && matches.length === 0) { - if (options.failglob === true) { - throw new Error(`No matches found for "${patterns.join(', ')}"`); + for (var i = 0; i < keys.length - 1; i++) { + var key = keys[i]; + if (key === '__proto__') return; + if (o[key] === undefined) o[key] = {}; + if (o[key] === Object.prototype || o[key] === Number.prototype || o[key] === String.prototype) o[key] = {}; + if (o[key] === Array.prototype) o[key] = []; + o = o[key]; } - if (options.nonull === true || options.nullglob === true) { - return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; + var key = keys[keys.length - 1]; + if (key === '__proto__') return; + if (o === Object.prototype || o === Number.prototype || o === String.prototype) o = {}; + if (o === Array.prototype) o = []; + + if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { + o[key] = value; + } else if (Array.isArray(o[key])) { + o[key].push(value); + } else { + o[key] = [o[key], value]; } } - return matches; -}; -/** - * Backwards compatibility - */ - + function aliasIsBoolean(key) { + return aliases[key].some(function (x) { + return flags.bools[x]; + }); + } -micromatch.match = micromatch; -/** - * Returns a matcher function from the given glob `pattern` and `options`. - * The returned function takes a string to match as its only argument and returns - * true if the string is a match. - * - * ```js - * const mm = require('micromatch'); - * // mm.matcher(pattern[, options]); - * - * const isMatch = mm.matcher('*.!(*a)'); - * console.log(isMatch('a.a')); //=> false - * console.log(isMatch('a.b')); //=> true - * ``` - * @param {String} `pattern` Glob pattern - * @param {Object} `options` - * @return {Function} Returns a matcher function. - * @api public - */ + for (var i = 0; i < args.length; i++) { + var arg = args[i]; -micromatch.matcher = (pattern, options) => picomatch$1(pattern, options); -/** - * Returns true if **any** of the given glob `patterns` match the specified `string`. - * - * ```js - * const mm = require('micromatch'); - * // mm.isMatch(string, patterns[, options]); - * - * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true - * console.log(mm.isMatch('a.a', 'b.*')); //=> false - * ``` - * @param {String} str The string to test. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} [options] See available [options](#options). - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ + if (/^--.+=/.test(arg)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + var key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== 'false'; + } -micromatch.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str); -/** - * Backwards compatibility - */ + setArg(key, value, arg); + } else if (/^--no-.+/.test(arg)) { + var key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false, arg); + } else if (/^--.+/.test(arg)) { + var key = arg.match(/^--(.+)/)[1]; + var next = args[i + 1]; + if (next !== undefined && !/^-/.test(next) && !flags.bools[key] && !flags.allBools && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, next, arg); + i++; + } else if (/^(true|false)$/.test(next)) { + setArg(key, next === 'true', arg); + i++; + } else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } else if (/^-[^-]+/.test(arg)) { + var letters = arg.slice(1, -1).split(''); + var broken = false; -micromatch.any = micromatch.isMatch; -/** - * Returns a list of strings that _**do not match any**_ of the given `patterns`. - * - * ```js - * const mm = require('micromatch'); - * // mm.not(list, patterns[, options]); - * - * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); - * //=> ['b.b', 'c.c'] - * ``` - * @param {Array} `list` Array of strings to match. - * @param {String|Array} `patterns` One or more glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Array} Returns an array of strings that **do not match** the given patterns. - * @api public - */ + for (var j = 0; j < letters.length; j++) { + var next = arg.slice(j + 2); -micromatch.not = (list, patterns, options = {}) => { - patterns = [].concat(patterns).map(String); - let result = new Set(); - let items = []; + if (next === '-') { + setArg(letters[j], next, arg); + continue; + } - let onResult = state => { - if (options.onResult) options.onResult(state); - items.push(state.output); - }; + if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { + setArg(letters[j], next.split('=')[1], arg); + broken = true; + break; + } - let matches = micromatch(list, patterns, Object.assign({}, options, { - onResult - })); + if (/[A-Za-z]/.test(letters[j]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { + setArg(letters[j], next, arg); + broken = true; + break; + } - for (let item of items) { - if (!matches.includes(item)) { - result.add(item); - } - } + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], arg.slice(j + 2), arg); + broken = true; + break; + } else { + setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); + } + } - return [...result]; -}; -/** - * Returns true if the given `string` contains the given pattern. Similar - * to [.isMatch](#isMatch) but the pattern can match any part of the string. - * - * ```js - * var mm = require('micromatch'); - * // mm.contains(string, pattern[, options]); - * - * console.log(mm.contains('aa/bb/cc', '*b')); - * //=> true - * console.log(mm.contains('aa/bb/cc', '*d')); - * //=> false - * ``` - * @param {String} `str` The string to match. - * @param {String|Array} `patterns` Glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if the patter matches any part of `str`. - * @api public - */ + var key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (args[i + 1] && !/^(-|--)[^-]/.test(args[i + 1]) && !flags.bools[key] && (aliases[key] ? !aliasIsBoolean(key) : true)) { + setArg(key, args[i + 1], arg); + i++; + } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) { + setArg(key, args[i + 1] === 'true', arg); + i++; + } else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } + } else { + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push(flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)); + } -micromatch.contains = (str, pattern, options) => { - if (typeof str !== 'string') { - throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); - } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); - if (Array.isArray(pattern)) { - return pattern.some(p => micromatch.contains(str, p, options)); + break; + } + } } - if (typeof pattern === 'string') { - if (isEmptyString(str) || isEmptyString(pattern)) { - return false; + Object.keys(defaults).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) { + setKey(argv, key.split('.'), defaults[key]); + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), defaults[key]); + }); } + }); - if (str.includes(pattern) || str.startsWith('./') && str.slice(2).includes(pattern)) { - return true; - } + if (opts['--']) { + argv['--'] = new Array(); + notFlags.forEach(function (key) { + argv['--'].push(key); + }); + } else { + notFlags.forEach(function (key) { + argv._.push(key); + }); } - return micromatch.isMatch(str, pattern, Object.assign({}, options, { - contains: true + return argv; +}; + +function hasKey(obj, keys) { + var o = obj; + keys.slice(0, -1).forEach(function (key) { + o = o[key] || {}; + }); + var key = keys[keys.length - 1]; + return key in o; +} + +function isNumber(x) { + if (typeof x === 'number') return true; + if (/^0x[0-9a-f]+$/i.test(x)) return true; + return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} + +const PLACEHOLDER = null; +/** + * unspecified boolean flag without default value is parsed as `undefined` instead of `false` + */ + +var minimist_1 = function (args, options) { + const boolean = options.boolean || []; + const defaults = options.default || {}; + const booleanWithoutDefault = boolean.filter(key => !(key in defaults)); + const newDefaults = Object.assign(Object.assign({}, defaults), Object.fromEntries(booleanWithoutDefault.map(key => [key, PLACEHOLDER]))); + const parsed = minimist(args, Object.assign(Object.assign({}, options), {}, { + default: newDefaults })); + return Object.fromEntries(Object.entries(parsed).filter(([, value]) => value !== PLACEHOLDER)); }; + /** - * Filter the keys of the given object with the given `glob` pattern - * and `options`. Does not attempt to match nested keys. If you need this feature, - * use [glob-object][] instead. - * - * ```js - * const mm = require('micromatch'); - * // mm.matchKeys(object, patterns[, options]); + * A specialized version of `baseAggregator` for arrays. * - * const obj = { aa: 'a', ab: 'b', ac: 'c' }; - * console.log(mm.matchKeys(obj, '*b')); - * //=> { ab: 'b' } - * ``` - * @param {Object} `object` The object with keys to filter. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Object} Returns an object with only keys that match the given patterns. - * @api public + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. */ +function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; - -micromatch.matchKeys = (obj, patterns, options) => { - if (!utils$1.isObject(obj)) { - throw new TypeError('Expected the first argument to be an object'); + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); } - let keys = micromatch(Object.keys(obj), patterns, options); - let res = {}; + return accumulator; +} - for (let key of keys) res[key] = obj[key]; +var _arrayAggregator = arrayAggregator; - return res; -}; /** - * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. - * - * ```js - * const mm = require('micromatch'); - * // mm.some(list, patterns[, options]); + * Creates a base function for methods like `_.forIn` and `_.forOwn`. * - * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); - * // true - * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); - * // false - * ``` - * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. */ +function createBaseFor(fromRight) { + return function (object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; -micromatch.some = (list, patterns, options) => { - let items = [].concat(list); + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch$1(String(pattern), options); + return object; + }; +} - if (items.some(item => isMatch(item))) { - return true; - } - } +var _createBaseFor = createBaseFor; - return false; -}; /** - * Returns true if every string in the given `list` matches - * any of the given glob `patterns`. + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. * - * ```js - * const mm = require('micromatch'); - * // mm.every(list, patterns[, options]); + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + +var baseFor = _createBaseFor(); +var _baseFor = baseFor; + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. * - * console.log(mm.every('foo.js', ['foo.js'])); - * // true - * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); - * // true - * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); - * // false - * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); - * // false - * ``` - * @param {String|Array} `list` The string or array of strings to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } -micromatch.every = (list, patterns, options) => { - let items = [].concat(list); + return result; +} - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch$1(String(pattern), options); +var _baseTimes = baseTimes; - if (!items.every(item => isMatch(item))) { - return false; - } - } +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +var _freeGlobal = freeGlobal; - return true; -}; +/** 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')(); +var _root = root; + +/** Built-in value references. */ + +var Symbol$1 = _root.Symbol; +var _Symbol = Symbol$1; + +/** Used for built-in method references. */ + +var objectProto$d = Object.prototype; +/** Used to check objects for own properties. */ + +var hasOwnProperty$a = objectProto$d.hasOwnProperty; /** - * Returns true if **all** of the given `patterns` match - * the specified string. - * - * ```js - * const mm = require('micromatch'); - * // mm.all(string, patterns[, options]); - * - * console.log(mm.all('foo.js', ['foo.js'])); - * // true - * - * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); - * // false - * - * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); - * // true - * - * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); - * // true - * ``` - * @param {String|Array} `str` The string to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. */ +var nativeObjectToString$1 = objectProto$d.toString; +/** Built-in value references. */ -micromatch.all = (str, patterns, options) => { - if (typeof str !== 'string') { - throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); - } - - return [].concat(patterns).every(p => picomatch$1(p, options)(str)); -}; +var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined; /** - * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. - * - * ```js - * const mm = require('micromatch'); - * // mm.capture(pattern, string[, options]); + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * - * console.log(mm.capture('test/*.js', 'test/foo.js')); - * //=> ['foo'] - * console.log(mm.capture('test/*.js', 'foo/bar.css')); - * //=> null - * ``` - * @param {String} `glob` Glob pattern to use for matching. - * @param {String} `input` String to match - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns an array of captures if the input matches the glob pattern, otherwise `null`. - * @api public + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. */ +function getRawTag(value) { + var isOwn = hasOwnProperty$a.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; -micromatch.capture = (glob, input, options) => { - let posix = utils$1.isWindows(options); - let regex = picomatch$1.makeRe(String(glob), Object.assign({}, options, { - capture: true - })); - let match = regex.exec(posix ? utils$1.toPosixSlashes(input) : input); + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} - if (match) { - return match.slice(1).map(v => v === void 0 ? '' : v); + var result = nativeObjectToString$1.call(value); + + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } } -}; + + return result; +} + +var _getRawTag = getRawTag; + +/** Used for built-in method references. */ +var objectProto$c = Object.prototype; /** - * Create a regular expression from the given glob `pattern`. - * - * ```js - * const mm = require('micromatch'); - * // mm.makeRe(pattern[, options]); - * - * console.log(mm.makeRe('*.js')); - * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ - * ``` - * @param {String} `pattern` A glob pattern to convert to regex. - * @param {Object} `options` - * @return {RegExp} Returns a regex created from the given pattern. - * @api public + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. */ - -micromatch.makeRe = (...args) => picomatch$1.makeRe(...args); +var nativeObjectToString = objectProto$c.toString; /** - * Scan a glob pattern to separate the pattern into segments. Used - * by the [split](#split) method. + * Converts `value` to a string using `Object.prototype.toString`. * - * ```js - * const mm = require('micromatch'); - * const state = mm.scan(pattern[, options]); - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} Returns an object with - * @api public + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +var _objectToString = objectToString; + +/** `Object#toString` result references. */ + +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; +/** Built-in value references. */ -micromatch.scan = (...args) => picomatch$1.scan(...args); +var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; /** - * Parse a glob pattern to create the source string for a regular - * expression. + * The base implementation of `getTag` without fallbacks for buggy environments. * - * ```js - * const mm = require('micromatch'); - * const state = mm(pattern[, options]); - * ``` - * @param {String} `glob` - * @param {Object} `options` - * @return {Object} Returns an object with useful properties and output to be used as regex source string. - * @api public + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } -micromatch.parse = (patterns, options) => { - let res = []; + return symToStringTag && symToStringTag in Object(value) ? _getRawTag(value) : _objectToString(value); +} - for (let pattern of [].concat(patterns || [])) { - for (let str of braces_1(String(pattern), options)) { - res.push(picomatch$1.parse(str, options)); - } - } +var _baseGetTag = baseGetTag; - return res; -}; /** - * Process the given brace `pattern`. + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". * - * ```js - * const { braces } = require('micromatch'); - * console.log(braces('foo/{a,b,c}/bar')); - * //=> [ 'foo/(a|b|c)/bar' ] + * @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 * - * console.log(braces('foo/{a,b,c}/bar', { expand: true })); - * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] - * ``` - * @param {String} `pattern` String with brace pattern to process. - * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. - * @return {Array} - * @api public + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} +var isObjectLike_1 = isObjectLike; -micromatch.braces = (pattern, options) => { - if (typeof pattern !== 'string') throw new TypeError('Expected a string'); - - if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { - return [pattern]; - } +/** `Object#toString` result references. */ - return braces_1(pattern, options); -}; +var argsTag$2 = '[object Arguments]'; /** - * Expand braces + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, */ +function baseIsArguments(value) { + return isObjectLike_1(value) && _baseGetTag(value) == argsTag$2; +} -micromatch.braceExpand = (pattern, options) => { - if (typeof pattern !== 'string') throw new TypeError('Expected a string'); - return micromatch.braces(pattern, Object.assign({}, options, { - expand: true - })); +var _baseIsArguments = baseIsArguments; + +/** Used for built-in method references. */ + +var objectProto$b = Object.prototype; +/** Used to check objects for own properties. */ + +var hasOwnProperty$9 = objectProto$b.hasOwnProperty; +/** Built-in value references. */ + +var propertyIsEnumerable$1 = objectProto$b.propertyIsEnumerable; +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + +var isArguments = _baseIsArguments(function () { + return arguments; +}()) ? _baseIsArguments : function (value) { + return isObjectLike_1(value) && hasOwnProperty$9.call(value, 'callee') && !propertyIsEnumerable$1.call(value, 'callee'); }; +var isArguments_1 = isArguments; + /** - * Expose micromatch + * 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; +var isArray_1 = isArray; +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} -var micromatch_1 = micromatch; +var stubFalse_1 = stubFalse; -var pattern = createCommonjsModule(function (module, exports) { +var isBuffer_1 = createCommonjsModule(function (module, exports) { + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; - const GLOBSTAR = '**'; - const ESCAPE_SYMBOL = '\\'; - const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; - const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[.*]/; - const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\(.*\|.*\)/; - const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\(.*\)/; - const BRACE_EXPANSIONS_SYMBOLS_RE = /{.*(?:,|\.\.).*}/; + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + /** Detect the popular CommonJS extension `module.exports`. */ - function isStaticPattern(pattern, options = {}) { - return !isDynamicPattern(pattern, options); - } + var moduleExports = freeModule && freeModule.exports === freeExports; + /** Built-in value references. */ - exports.isStaticPattern = isStaticPattern; + var Buffer = moduleExports ? _root.Buffer : undefined; + /* Built-in method references for those with the same name as other `lodash` methods. */ - function isDynamicPattern(pattern, options = {}) { - /** - * A special case with an empty string is necessary for matching patterns that start with a forward slash. - * An empty string cannot be a dynamic pattern. - * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. - */ - if (pattern === '') { - return false; - } - /** - * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check - * filepath directly (without read directory). - */ + var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse_1; + module.exports = isBuffer; +}); - if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { - return true; - } +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER$1 = 9007199254740991; +/** Used to detect unsigned integer values. */ - if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { - return true; - } +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`. + */ - if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { - return true; - } +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length; +} - if (options.braceExpansion !== false && BRACE_EXPANSIONS_SYMBOLS_RE.test(pattern)) { - return true; - } +var _isIndex = isIndex; - return false; - } +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ - exports.isDynamicPattern = isDynamicPattern; +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} - function convertToPositivePattern(pattern) { - return isNegativePattern(pattern) ? pattern.slice(1) : pattern; - } +var isLength_1 = isLength; - exports.convertToPositivePattern = convertToPositivePattern; +/** `Object#toString` result references. */ - function convertToNegativePattern(pattern) { - return '!' + pattern; - } +var argsTag$1 = '[object Arguments]', + arrayTag$1 = '[object Array]', + boolTag$1 = '[object Boolean]', + dateTag$1 = '[object Date]', + errorTag$1 = '[object Error]', + funcTag$1 = '[object Function]', + mapTag$2 = '[object Map]', + numberTag$1 = '[object Number]', + objectTag$2 = '[object Object]', + regexpTag$1 = '[object RegExp]', + setTag$2 = '[object Set]', + stringTag$1 = '[object String]', + weakMapTag$1 = '[object WeakMap]'; +var arrayBufferTag$1 = '[object ArrayBuffer]', + dataViewTag$2 = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; +/** Used to identify `toStringTag` values of typed arrays. */ - exports.convertToNegativePattern = convertToNegativePattern; +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false; +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ - function isNegativePattern(pattern) { - return pattern.startsWith('!') && pattern[1] !== '('; - } +function baseIsTypedArray(value) { + return isObjectLike_1(value) && isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)]; +} - exports.isNegativePattern = isNegativePattern; +var _baseIsTypedArray = baseIsTypedArray; - function isPositivePattern(pattern) { - return !isNegativePattern(pattern); - } +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function (value) { + return func(value); + }; +} - exports.isPositivePattern = isPositivePattern; +var _baseUnary = baseUnary; - function getNegativePatterns(patterns) { - return patterns.filter(isNegativePattern); - } +var _nodeUtil = createCommonjsModule(function (module, exports) { + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ - exports.getNegativePatterns = getNegativePatterns; + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + /** Detect the popular CommonJS extension `module.exports`. */ - function getPositivePatterns(patterns) { - return patterns.filter(isPositivePattern); - } + var moduleExports = freeModule && freeModule.exports === freeExports; + /** Detect free variable `process` from Node.js. */ - exports.getPositivePatterns = getPositivePatterns; + var freeProcess = moduleExports && _freeGlobal.process; + /** Used to access faster Node.js helpers. */ - function getBaseDirectory(pattern) { - return globParent(pattern, { - flipBackslashes: false - }); - } + var nodeUtil = function () { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; - exports.getBaseDirectory = getBaseDirectory; + if (types) { + return types; + } // Legacy `process.binding('util')` for Node.js < 10. - function hasGlobStar(pattern) { - return pattern.includes(GLOBSTAR); - } - exports.hasGlobStar = hasGlobStar; + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }(); - function endsWithSlashGlobStar(pattern) { - return pattern.endsWith('/' + GLOBSTAR); - } + module.exports = nodeUtil; +}); - exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +/* Node.js helper references. */ - function isAffectDepthOfReadingPattern(pattern) { - const basename = path__default['default'].basename(pattern); - return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); - } +var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray; +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ - exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray; +var isTypedArray_1 = isTypedArray; - function expandPatternsWithBraceExpansion(patterns) { - return patterns.reduce((collection, pattern) => { - return collection.concat(expandBraceExpansion(pattern)); - }, []); - } +/** Used for built-in method references. */ - exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; +var objectProto$a = Object.prototype; +/** Used to check objects for own properties. */ - function expandBraceExpansion(pattern) { - return micromatch_1.braces(pattern, { - expand: true, - nodupes: true - }); - } +var hasOwnProperty$8 = objectProto$a.hasOwnProperty; +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ - exports.expandBraceExpansion = expandBraceExpansion; +function arrayLikeKeys(value, inherited) { + var isArr = isArray_1(value), + isArg = !isArr && isArguments_1(value), + isBuff = !isArr && !isArg && isBuffer_1(value), + isType = !isArr && !isArg && !isBuff && isTypedArray_1(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? _baseTimes(value.length, String) : [], + length = result.length; - function getPatternParts(pattern, options) { - let { - parts - } = picomatch$1.scan(pattern, Object.assign(Object.assign({}, options), { - parts: true - })); - /** - * The scan method returns an empty array in some cases. - * See micromatch/picomatch#58 for more details. - */ - - if (parts.length === 0) { - parts = [pattern]; - } - /** - * The scan method does not return an empty part for the pattern with a forward slash. - * This is another part of micromatch/picomatch#58. - */ - - - if (parts[0].startsWith('/')) { - parts[0] = parts[0].slice(1); - parts.unshift(''); + for (var key in value) { + if ((inherited || hasOwnProperty$8.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties. + _isIndex(key, length)))) { + result.push(key); } - - return parts; - } - - exports.getPatternParts = getPatternParts; - - function makeRe(pattern, options) { - return micromatch_1.makeRe(pattern, options); } - exports.makeRe = makeRe; + return result; +} - function convertPatternsToRe(patterns, options) { - return patterns.map(pattern => makeRe(pattern, options)); - } +var _arrayLikeKeys = arrayLikeKeys; - exports.convertPatternsToRe = convertPatternsToRe; +/** Used for built-in method references. */ +var objectProto$9 = Object.prototype; +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ - function matchAny(entry, patternsRe) { - return patternsRe.some(patternRe => patternRe.test(entry)); - } +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = typeof Ctor == 'function' && Ctor.prototype || objectProto$9; + return value === proto; +} - exports.matchAny = matchAny; -}); +var _isPrototype = isPrototype; -/* - * merge2 - * https://github.com/teambition/merge2 +/** + * Creates a unary function that invokes `func` with its argument transformed. * - * Copyright (c) 2014-2020 Teambition - * Licensed under the MIT license. + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. */ +function overArg(func, transform) { + return function (arg) { + return func(transform(arg)); + }; +} +var _overArg = overArg; -const PassThrough = stream__default['default'].PassThrough; -const slice = Array.prototype.slice; -var merge2_1 = merge2; +/* Built-in method references for those with the same name as other `lodash` methods. */ -function merge2() { - const streamsQueue = []; - const args = slice.call(arguments); - let merging = false; - let options = args[args.length - 1]; +var nativeKeys = _overArg(Object.keys, Object); +var _nativeKeys = nativeKeys; - if (options && !Array.isArray(options) && options.pipe == null) { - args.pop(); - } else { - options = {}; - } +/** Used for built-in method references. */ - const doEnd = options.end !== false; - const doPipeError = options.pipeError === true; +var objectProto$8 = Object.prototype; +/** Used to check objects for own properties. */ - if (options.objectMode == null) { - options.objectMode = true; - } +var hasOwnProperty$7 = objectProto$8.hasOwnProperty; +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ - if (options.highWaterMark == null) { - options.highWaterMark = 64 * 1024; +function baseKeys(object) { + if (!_isPrototype(object)) { + return _nativeKeys(object); } - const mergedStream = PassThrough(options); + var result = []; - function addStream() { - for (let i = 0, len = arguments.length; i < len; i++) { - streamsQueue.push(pauseStreams(arguments[i], options)); + for (var key in Object(object)) { + if (hasOwnProperty$7.call(object, key) && key != 'constructor') { + result.push(key); } - - mergeStream(); - return this; } - function mergeStream() { - if (merging) { - return; - } - - merging = true; - let streams = streamsQueue.shift(); + return result; +} - if (!streams) { - process.nextTick(endStream); - return; - } +var _baseKeys = baseKeys; - if (!Array.isArray(streams)) { - streams = [streams]; - } +/** + * 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'); +} - let pipesCount = streams.length + 1; +var isObject_1 = isObject; - function next() { - if (--pipesCount > 0) { - return; - } +/** `Object#toString` result references. */ - merging = false; - mergeStream(); - } +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 pipe(stream) { - function onend() { - stream.removeListener('merge2UnpipeEnd', onend); - stream.removeListener('end', onend); +function isFunction(value) { + if (!isObject_1(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. - if (doPipeError) { - stream.removeListener('error', onerror); - } - next(); - } + var tag = _baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} - function onerror(err) { - mergedStream.emit('error', err); - } // skip ended stream +var isFunction_1 = isFunction; +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ - if (stream._readableState.endEmitted) { - return next(); - } +function isArrayLike(value) { + return value != null && isLength_1(value.length) && !isFunction_1(value); +} - stream.on('merge2UnpipeEnd', onend); - stream.on('end', onend); +var isArrayLike_1 = isArrayLike; - if (doPipeError) { - stream.on('error', onerror); - } +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ - stream.pipe(mergedStream, { - end: false - }); // compatible for old stream +function keys(object) { + return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object); +} - stream.resume(); - } +var keys_1 = keys; - for (let i = 0; i < streams.length; i++) { - pipe(streams[i]); - } +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ - next(); - } +function baseForOwn(object, iteratee) { + return object && _baseFor(object, iteratee, keys_1); +} - function endStream() { - merging = false; // emit 'queueDrain' when all streams merged. +var _baseForOwn = baseForOwn; - mergedStream.emit('queueDrain'); +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ - if (doEnd) { - mergedStream.end(); +function createBaseEach(eachFunc, fromRight) { + return function (collection, iteratee) { + if (collection == null) { + return collection; } - } - - mergedStream.setMaxListeners(0); - mergedStream.add = addStream; - mergedStream.on('unpipe', function (stream) { - stream.emit('merge2UnpipeEnd'); - }); - - if (args.length) { - addStream.apply(null, args); - } - - return mergedStream; -} // check and pause streams for pipe. - -function pauseStreams(streams, options) { - if (!Array.isArray(streams)) { - // Backwards-compat with old-style streams - if (!streams._readableState && streams.pipe) { - streams = streams.pipe(PassThrough(options)); + if (!isArrayLike_1(collection)) { + return eachFunc(collection, iteratee); } - if (!streams._readableState || !streams.pause || !streams.pipe) { - throw new Error('Only readable stream can be merged.'); - } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); - streams.pause(); - } else { - for (let i = 0, len = streams.length; i < len; i++) { - streams[i] = pauseStreams(streams[i], options); + while (fromRight ? index-- : ++index < length) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } } - } - return streams; + return collection; + }; } -var stream = createCommonjsModule(function (module, exports) { +var _createBaseEach = createBaseEach; - Object.defineProperty(exports, "__esModule", { - value: true +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + +var baseEach = _createBaseEach(_baseForOwn); +var _baseEach = baseEach; + +/** + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ + +function baseAggregator(collection, setter, iteratee, accumulator) { + _baseEach(collection, function (value, key, collection) { + setter(accumulator, value, iteratee(value), collection); }); - exports.merge = void 0; + return accumulator; +} - function merge(streams) { - const mergedStream = merge2_1(streams); - streams.forEach(stream => { - stream.once('error', error => mergedStream.emit('error', error)); - }); - mergedStream.once('close', () => propagateCloseEventToSources(streams)); - mergedStream.once('end', () => propagateCloseEventToSources(streams)); - return mergedStream; - } +var _baseAggregator = baseAggregator; - exports.merge = merge; +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} - function propagateCloseEventToSources(streams) { - streams.forEach(stream => stream.emit('close')); - } -}); +var _listCacheClear = listCacheClear; -var string = createCommonjsModule(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; +} - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isEmpty = exports.isString = void 0; +var eq_1 = eq; - function isString(input) { - return typeof input === 'string'; - } +/** + * 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`. + */ - exports.isString = isString; +function assocIndexOf(array, key) { + var length = array.length; - function isEmpty(input) { - return input === ''; + while (length--) { + if (eq_1(array[length][0], key)) { + return length; + } } - exports.isEmpty = isEmpty; -}); + return -1; +} -var utils$2 = createCommonjsModule(function (module, exports) { +var _assocIndexOf = assocIndexOf; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; - exports.array = array; - exports.errno = errno; - exports.fs = fs; - exports.path = path_1; - exports.pattern = pattern; - exports.stream = stream; - exports.string = string; -}); +/** Used for built-in method references. */ -var tasks = createCommonjsModule(function (module, exports) { +var arrayProto = Array.prototype; +/** Built-in value references. */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; - - function generate(patterns, settings) { - const positivePatterns = getPositivePatterns(patterns); - const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); - const staticPatterns = positivePatterns.filter(pattern => utils$2.pattern.isStaticPattern(pattern, settings)); - const dynamicPatterns = positivePatterns.filter(pattern => utils$2.pattern.isDynamicPattern(pattern, settings)); - const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, - /* dynamic */ - false); - const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, - /* dynamic */ - true); - return staticTasks.concat(dynamicTasks); - } - - exports.generate = generate; - - function convertPatternsToTasks(positive, negative, dynamic) { - const positivePatternsGroup = groupPatternsByBaseDirectory(positive); // When we have a global group – there is no reason to divide the patterns into independent tasks. - // In this case, the global task covers the rest. +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`. + */ - if ('.' in positivePatternsGroup) { - const task = convertPatternGroupToTask('.', positive, negative, dynamic); - return [task]; - } +function listCacheDelete(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); - return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic); + if (index < 0) { + return false; } - exports.convertPatternsToTasks = convertPatternsToTasks; + var lastIndex = data.length - 1; - function getPositivePatterns(patterns) { - return utils$2.pattern.getPositivePatterns(patterns); + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); } - exports.getPositivePatterns = getPositivePatterns; + --this.size; + return true; +} - function getNegativePatternsAsPositive(patterns, ignore) { - const negative = utils$2.pattern.getNegativePatterns(patterns).concat(ignore); - const positive = negative.map(utils$2.pattern.convertToPositivePattern); - return positive; - } +var _listCacheDelete = listCacheDelete; - exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; +/** + * 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 groupPatternsByBaseDirectory(patterns) { - const group = {}; - return patterns.reduce((collection, pattern) => { - const base = utils$2.pattern.getBaseDirectory(pattern); +function listCacheGet(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); + return index < 0 ? undefined : data[index][1]; +} - if (base in collection) { - collection[base].push(pattern); - } else { - collection[base] = [pattern]; - } +var _listCacheGet = listCacheGet; - return collection; - }, group); - } +/** + * 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`. + */ - exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +function listCacheHas(key) { + return _assocIndexOf(this.__data__, key) > -1; +} - function convertPatternGroupsToTasks(positive, negative, dynamic) { - return Object.keys(positive).map(base => { - return convertPatternGroupToTask(base, positive[base], negative, dynamic); - }); - } +var _listCacheHas = listCacheHas; - exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +/** + * 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 convertPatternGroupToTask(base, positive, negative, dynamic) { - return { - dynamic, - positive, - negative, - base, - patterns: [].concat(positive, negative.map(utils$2.pattern.convertToNegativePattern)) - }; +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; } - exports.convertPatternGroupToTask = convertPatternGroupToTask; -}); + return this; +} -var async = createCommonjsModule(function (module, exports) { +var _listCacheSet = listCacheSet; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - function read(path, settings, callback) { - settings.fs.lstat(path, (lstatError, lstat) => { - if (lstatError !== null) { - return callFailureCallback(callback, lstatError); - } +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); - if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { - return callSuccessCallback(callback, lstat); - } + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} // Add methods to `ListCache`. - settings.fs.stat(path, (statError, stat) => { - if (statError !== null) { - if (settings.throwErrorOnBrokenSymbolicLink) { - return callFailureCallback(callback, statError); - } - return callSuccessCallback(callback, lstat); - } +ListCache.prototype.clear = _listCacheClear; +ListCache.prototype['delete'] = _listCacheDelete; +ListCache.prototype.get = _listCacheGet; +ListCache.prototype.has = _listCacheHas; +ListCache.prototype.set = _listCacheSet; +var _ListCache = ListCache; - if (settings.markSymbolicLink) { - stat.isSymbolicLink = () => true; - } +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ - callSuccessCallback(callback, stat); - }); - }); - } +function stackClear() { + this.__data__ = new _ListCache(); + this.size = 0; +} - exports.read = read; +var _stackClear = stackClear; - function callFailureCallback(callback, error) { - callback(error); - } +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + this.size = data.size; + return result; +} - function callSuccessCallback(callback, result) { - callback(null, result); - } -}); +var _stackDelete = stackDelete; -var sync = createCommonjsModule(function (module, exports) { +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +var _stackGet = stackGet; - function read(path, settings) { - const lstat = settings.fs.lstatSync(path); +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} - if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { - return lstat; - } +var _stackHas = stackHas; - try { - const stat = settings.fs.statSync(path); +/** Used to detect overreaching core-js shims. */ - if (settings.markSymbolicLink) { - stat.isSymbolicLink = () => true; - } +var coreJsData = _root['__core-js_shared__']; +var _coreJsData = coreJsData; - return stat; - } catch (error) { - if (!settings.throwErrorOnBrokenSymbolicLink) { - return lstat; - } - - throw error; - } - } +/** Used to detect methods masquerading as native. */ - exports.read = read; -}); +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`. + */ -var fs_1 = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.FILE_SYSTEM_ADAPTER = { - lstat: fs__default['default'].lstat, - stat: fs__default['default'].stat, - lstatSync: fs__default['default'].lstatSync, - statSync: fs__default['default'].statSync - }; +function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; +} - function createFileSystemAdapter(fsMethods) { - if (fsMethods === undefined) { - return exports.FILE_SYSTEM_ADAPTER; - } +var _isMasked = isMasked; - return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); - } +/** Used for built-in method references. */ +var funcProto$1 = Function.prototype; +/** Used to resolve the decompiled source of functions. */ - exports.createFileSystemAdapter = createFileSystemAdapter; -}); +var funcToString$1 = funcProto$1.toString; +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ -var settings = createCommonjsModule(function (module, exports) { +function toSource(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) {} - Object.defineProperty(exports, "__esModule", { - value: true - }); + try { + return func + ''; + } catch (e) {} + } - class Settings { - constructor(_options = {}) { - this._options = _options; - this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); - this.fs = fs_1.createFileSystemAdapter(this._options.fs); - this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); - } + return ''; +} - _getValue(option, value) { - return option === undefined ? value : option; - } +var _toSource = toSource; - } +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ - exports.default = Settings; -}); +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +/** Used to detect host constructors (Safari). */ -var out = createCommonjsModule(function (module, exports) { +var reIsHostCtor = /^\[object .+?Constructor\]$/; +/** Used for built-in method references. */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.Settings = settings.default; +var funcProto = Function.prototype, + objectProto$7 = Object.prototype; +/** Used to resolve the decompiled source of functions. */ - function stat(path, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === 'function') { - return async.read(path, getSettings(), optionsOrSettingsOrCallback); - } +var funcToString = funcProto.toString; +/** Used to check objects for own properties. */ - async.read(path, getSettings(optionsOrSettingsOrCallback), callback); - } +var hasOwnProperty$6 = objectProto$7.hasOwnProperty; +/** Used to detect if a method is native. */ - exports.stat = stat; +var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty$6).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 statSync(path, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - return sync.read(path, settings); +function baseIsNative(value) { + if (!isObject_1(value) || _isMasked(value)) { + return false; } - exports.statSync = statSync; + var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; + return pattern.test(_toSource(value)); +} - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings.default) { - return settingsOrOptions; - } +var _baseIsNative = baseIsNative; - return new settings.default(settingsOrOptions); - } -}); +/** + * 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]; +} -var runParallel_1 = runParallel; +var _getValue = getValue; -function runParallel(tasks, cb) { - var results, pending, keys; - var isSync = true; +/** + * 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`. + */ - if (Array.isArray(tasks)) { - results = []; - pending = tasks.length; - } else { - keys = Object.keys(tasks); - results = {}; - pending = keys.length; - } +function getNative(object, key) { + var value = _getValue(object, key); + return _baseIsNative(value) ? value : undefined; +} - function done(err) { - function end() { - if (cb) cb(err, results); - cb = null; - } +var _getNative = getNative; - if (isSync) process.nextTick(end);else end(); - } +/* Built-in method references that are verified to be native. */ - function each(i, err, result) { - results[i] = result; +var Map$1 = _getNative(_root, 'Map'); +var _Map = Map$1; - if (--pending === 0 || err) { - done(err); - } - } +/* Built-in method references that are verified to be native. */ - if (!pending) { - // empty - done(null); - } else if (keys) { - // object - keys.forEach(function (key) { - tasks[key](function (err, result) { - each(key, err, result); - }); - }); - } else { - // array - tasks.forEach(function (task, i) { - task(function (err, result) { - each(i, err, result); - }); - }); - } +var nativeCreate = _getNative(Object, 'create'); +var _nativeCreate = nativeCreate; - isSync = false; -} +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ -var constants$2 = createCommonjsModule(function (module, exports) { +function hashClear() { + this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; + this.size = 0; +} - Object.defineProperty(exports, "__esModule", { - value: true - }); - const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); - const MAJOR_VERSION = parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); - const MINOR_VERSION = parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); - const SUPPORTED_MAJOR_VERSION = 10; - const SUPPORTED_MINOR_VERSION = 10; - const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; - const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; - /** - * IS `true` for Node.js 10.10 and greater. - */ +var _hashClear = hashClear; - exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; -}); +/** + * 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; +} -var fs$1 = createCommonjsModule(function (module, exports) { +var _hashDelete = hashDelete; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** Used to stand-in for `undefined` hash values. */ - class DirentFromStats { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); - } +var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; +/** Used for built-in method references. */ - } +var objectProto$6 = Object.prototype; +/** Used to check objects for own properties. */ - function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); - } - - exports.createDirentFromStats = createDirentFromStats; -}); - -var utils$3 = createCommonjsModule(function (module, exports) { +var hasOwnProperty$5 = objectProto$6.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. + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.fs = fs$1; -}); +function hashGet(key) { + var data = this.__data__; -var async$1 = createCommonjsModule(function (module, exports) { + if (_nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? undefined : result; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + return hasOwnProperty$5.call(data, key) ? data[key] : undefined; +} - function read(directory, settings, callback) { - if (!settings.stats && constants$2.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { - return readdirWithFileTypes(directory, settings, callback); - } +var _hashGet = hashGet; - return readdir(directory, settings, callback); - } +/** Used for built-in method references. */ - exports.read = read; +var objectProto$5 = Object.prototype; +/** Used to check objects for own properties. */ - function readdirWithFileTypes(directory, settings, callback) { - settings.fs.readdir(directory, { - withFileTypes: true - }, (readdirError, dirents) => { - if (readdirError !== null) { - return callFailureCallback(callback, readdirError); - } +var hasOwnProperty$4 = objectProto$5.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`. + */ - const entries = dirents.map(dirent => ({ - dirent, - name: dirent.name, - path: `${directory}${settings.pathSegmentSeparator}${dirent.name}` - })); +function hashHas(key) { + var data = this.__data__; + return _nativeCreate ? data[key] !== undefined : hasOwnProperty$4.call(data, key); +} - if (!settings.followSymbolicLinks) { - return callSuccessCallback(callback, entries); - } +var _hashHas = hashHas; - const tasks = entries.map(entry => makeRplTaskEntry(entry, settings)); - runParallel_1(tasks, (rplError, rplEntries) => { - if (rplError !== null) { - return callFailureCallback(callback, rplError); - } +/** Used to stand-in for `undefined` hash values. */ - callSuccessCallback(callback, rplEntries); - }); - }); - } +var HASH_UNDEFINED$1 = '__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. + */ - exports.readdirWithFileTypes = readdirWithFileTypes; +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = _nativeCreate && value === undefined ? HASH_UNDEFINED$1 : value; + return this; +} - function makeRplTaskEntry(entry, settings) { - return done => { - if (!entry.dirent.isSymbolicLink()) { - return done(null, entry); - } +var _hashSet = hashSet; - settings.fs.stat(entry.path, (statError, stats) => { - if (statError !== null) { - if (settings.throwErrorOnBrokenSymbolicLink) { - return done(statError); - } +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - return done(null, entry); - } +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); - entry.dirent = utils$3.fs.createDirentFromStats(entry.name, stats); - return done(null, entry); - }); - }; + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); } +} // Add methods to `Hash`. - function readdir(directory, settings, callback) { - settings.fs.readdir(directory, (readdirError, names) => { - if (readdirError !== null) { - return callFailureCallback(callback, readdirError); - } - const filepaths = names.map(name => `${directory}${settings.pathSegmentSeparator}${name}`); - const tasks = filepaths.map(filepath => { - return done => out.stat(filepath, settings.fsStatSettings, done); - }); - runParallel_1(tasks, (rplError, results) => { - if (rplError !== null) { - return callFailureCallback(callback, rplError); - } +Hash.prototype.clear = _hashClear; +Hash.prototype['delete'] = _hashDelete; +Hash.prototype.get = _hashGet; +Hash.prototype.has = _hashHas; +Hash.prototype.set = _hashSet; +var _Hash = Hash; - const entries = []; - names.forEach((name, index) => { - const stats = results[index]; - const entry = { - name, - path: filepaths[index], - dirent: utils$3.fs.createDirentFromStats(name, stats) - }; +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ - if (settings.stats) { - entry.stats = stats; - } +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new _Hash(), + 'map': new (_Map || _ListCache)(), + 'string': new _Hash() + }; +} - entries.push(entry); - }); - callSuccessCallback(callback, entries); - }); - }); - } +var _mapCacheClear = mapCacheClear; - exports.readdir = readdir; +/** + * 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; +} - function callFailureCallback(callback, error) { - callback(error); - } +var _isKeyable = isKeyable; - function callSuccessCallback(callback, result) { - callback(null, result); - } -}); +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ -var sync$1 = createCommonjsModule(function (module, exports) { +function getMapData(map, key) { + var data = map.__data__; + return _isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +var _getMapData = getMapData; - function read(directory, settings) { - if (!settings.stats && constants$2.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { - return readdirWithFileTypes(directory, settings); - } +/** + * 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`. + */ - return readdir(directory, settings); - } +function mapCacheDelete(key) { + var result = _getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} - exports.read = read; +var _mapCacheDelete = mapCacheDelete; - function readdirWithFileTypes(directory, settings) { - const dirents = settings.fs.readdirSync(directory, { - withFileTypes: true - }); - return dirents.map(dirent => { - const entry = { - dirent, - name: dirent.name, - path: `${directory}${settings.pathSegmentSeparator}${dirent.name}` - }; +/** + * 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. + */ - if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { - try { - const stats = settings.fs.statSync(entry.path); - entry.dirent = utils$3.fs.createDirentFromStats(entry.name, stats); - } catch (error) { - if (settings.throwErrorOnBrokenSymbolicLink) { - throw error; - } - } - } +function mapCacheGet(key) { + return _getMapData(this, key).get(key); +} - return entry; - }); - } +var _mapCacheGet = mapCacheGet; - exports.readdirWithFileTypes = readdirWithFileTypes; +/** + * 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 readdir(directory, settings) { - const names = settings.fs.readdirSync(directory); - return names.map(name => { - const entryPath = `${directory}${settings.pathSegmentSeparator}${name}`; - const stats = out.statSync(entryPath, settings.fsStatSettings); - const entry = { - name, - path: entryPath, - dirent: utils$3.fs.createDirentFromStats(name, stats) - }; +function mapCacheHas(key) { + return _getMapData(this, key).has(key); +} - if (settings.stats) { - entry.stats = stats; - } +var _mapCacheHas = mapCacheHas; - return entry; - }); - } +/** + * 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. + */ - exports.readdir = readdir; -}); +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; +} -var fs_1$1 = createCommonjsModule(function (module, exports) { +var _mapCacheSet = mapCacheSet; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.FILE_SYSTEM_ADAPTER = { - lstat: fs__default['default'].lstat, - stat: fs__default['default'].stat, - lstatSync: fs__default['default'].lstatSync, - statSync: fs__default['default'].statSync, - readdir: fs__default['default'].readdir, - readdirSync: fs__default['default'].readdirSync - }; +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - function createFileSystemAdapter(fsMethods) { - if (fsMethods === undefined) { - return exports.FILE_SYSTEM_ADAPTER; - } +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); - return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); } +} // Add methods to `MapCache`. - exports.createFileSystemAdapter = createFileSystemAdapter; -}); - -var settings$1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - class Settings { - constructor(_options = {}) { - this._options = _options; - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); - this.fs = fs_1$1.createFileSystemAdapter(this._options.fs); - this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); - this.stats = this._getValue(this._options.stats, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); - this.fsStatSettings = new out.Settings({ - followSymbolicLink: this.followSymbolicLinks, - fs: this.fs, - throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink - }); - } - _getValue(option, value) { - return option === undefined ? value : option; - } +MapCache.prototype.clear = _mapCacheClear; +MapCache.prototype['delete'] = _mapCacheDelete; +MapCache.prototype.get = _mapCacheGet; +MapCache.prototype.has = _mapCacheHas; +MapCache.prototype.set = _mapCacheSet; +var _MapCache = MapCache; - } +/** Used as the size to enable large array optimizations. */ - exports.default = Settings; -}); +var LARGE_ARRAY_SIZE = 200; +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ -var out$1 = createCommonjsModule(function (module, exports) { +function stackSet(key, value) { + var data = this.__data__; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.Settings = settings$1.default; + if (data instanceof _ListCache) { + var pairs = data.__data__; - function scandir(path, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === 'function') { - return async$1.read(path, getSettings(), optionsOrSettingsOrCallback); + if (!_Map || pairs.length < LARGE_ARRAY_SIZE - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; } - async$1.read(path, getSettings(optionsOrSettingsOrCallback), callback); + data = this.__data__ = new _MapCache(pairs); } - exports.scandir = scandir; + data.set(key, value); + this.size = data.size; + return this; +} - function scandirSync(path, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - return sync$1.read(path, settings); - } +var _stackSet = stackSet; - exports.scandirSync = scandirSync; +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings$1.default) { - return settingsOrOptions; - } +function Stack(entries) { + var data = this.__data__ = new _ListCache(entries); + this.size = data.size; +} // Add methods to `Stack`. - return new settings$1.default(settingsOrOptions); - } -}); -function reusify(Constructor) { - var head = new Constructor(); - var tail = head; +Stack.prototype.clear = _stackClear; +Stack.prototype['delete'] = _stackDelete; +Stack.prototype.get = _stackGet; +Stack.prototype.has = _stackHas; +Stack.prototype.set = _stackSet; +var _Stack = Stack; - function get() { - var current = head; +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ - if (current.next) { - head = current.next; - } else { - head = new Constructor(); - tail = head; - } +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); - current.next = null; - return current; - } + return this; +} - function release(obj) { - tail.next = obj; - tail = obj; - } +var _setCacheAdd = setCacheAdd; - return { - get: get, - release: release - }; +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); } -var reusify_1 = reusify; +var _setCacheHas = setCacheHas; -function fastqueue(context, worker, concurrency) { - if (typeof context === 'function') { - concurrency = worker; - worker = context; - context = null; - } +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ - var cache = reusify_1(Task); - var queueHead = null; - var queueTail = null; - var _running = 0; - var self = { - push: push, - drain: noop, - saturated: noop, - pause: pause, - paused: false, - concurrency: concurrency, - running: running, - resume: resume, - idle: idle, - length: length, - getQueue: getQueue, - unshift: unshift, - empty: noop, - kill: kill, - killAndDrain: killAndDrain - }; - return self; +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + this.__data__ = new _MapCache(); - function running() { - return _running; + while (++index < length) { + this.add(values[index]); } +} // Add methods to `SetCache`. - function pause() { - self.paused = true; - } - function length() { - var current = queueHead; - var counter = 0; +SetCache.prototype.add = SetCache.prototype.push = _setCacheAdd; +SetCache.prototype.has = _setCacheHas; +var _SetCache = SetCache; - while (current) { - current = current.next; - counter++; - } +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; - return counter; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } } - function getQueue() { - var current = queueHead; - var tasks = []; + return false; +} - while (current) { - tasks.push(current.value); - current = current.next; - } +var _arraySome = arraySome; - return tasks; - } +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} - function resume() { - if (!self.paused) return; - self.paused = false; +var _cacheHas = cacheHas; - for (var i = 0; i < self.concurrency; i++) { - _running++; - release(); - } - } +/** Used to compose bitmasks for value comparisons. */ - function idle() { - return _running === 0 && self.length() === 0; - } +var COMPARE_PARTIAL_FLAG$5 = 1, + COMPARE_UNORDERED_FLAG$3 = 2; +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ - function push(value, done) { - var current = cache.get(); - current.context = context; - current.release = release; - current.value = value; - current.callback = done || noop; +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, + arrLength = array.length, + othLength = other.length; - if (_running === self.concurrency || self.paused) { - if (queueTail) { - queueTail.next = current; - queueTail = current; - } else { - queueHead = current; - queueTail = current; - self.saturated(); - } - } else { - _running++; - worker.call(context, current.value, current.worked); - } - } + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } // Check that cyclic values are equal. - function unshift(value, done) { - var current = cache.get(); - current.context = context; - current.release = release; - current.value = value; - current.callback = done || noop; - if (_running === self.concurrency || self.paused) { - if (queueHead) { - current.next = queueHead; - queueHead = current; - } else { - queueHead = current; - queueTail = current; - self.saturated(); - } - } else { - _running++; - worker.call(context, current.value, current.worked); - } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; } - function release(holder) { - if (holder) { - cache.release(holder); + var index = -1, + result = true, + seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new _SetCache() : undefined; + stack.set(array, other); + stack.set(other, array); // Ignore non-index properties. + + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); } - var next = queueHead; + if (compared !== undefined) { + if (compared) { + continue; + } - if (next) { - if (!self.paused) { - if (queueTail === queueHead) { - queueTail = null; - } + result = false; + break; + } // Recursively compare arrays (susceptible to call stack limits). - queueHead = next.next; - next.next = null; - worker.call(context, next.value, next.worked); - if (queueTail === null) { - self.empty(); + if (seen) { + if (!_arraySome(other, function (othValue, othIndex) { + if (!_cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); } - } else { - _running--; + })) { + result = false; + break; } - } else if (--_running === 0) { - self.drain(); + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result = false; + break; } } - function kill() { - queueHead = null; - queueTail = null; - self.drain = noop; - } - - function killAndDrain() { - queueHead = null; - queueTail = null; - self.drain(); - self.drain = noop; - } + stack['delete'](array); + stack['delete'](other); + return result; } -function noop() {} +var _equalArrays = equalArrays; -function Task() { - this.value = null; - this.callback = noop; - this.next = null; - this.release = noop; - this.context = null; - var self = this; +/** Built-in value references. */ - this.worked = function worked(err, result) { - var callback = self.callback; - self.value = null; - self.callback = noop; - callback.call(self.context, err, result); - self.release(self); - }; -} +var Uint8Array = _root.Uint8Array; +var _Uint8Array = Uint8Array; -var queue = fastqueue; +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + map.forEach(function (value, key) { + result[++index] = [key, value]; + }); + return result; +} -var common = createCommonjsModule(function (module, exports) { +var _mapToArray = mapToArray; - Object.defineProperty(exports, "__esModule", { - value: true +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + set.forEach(function (value) { + result[++index] = value; }); + return result; +} - function isFatalError(settings, error) { - if (settings.errorFilter === null) { - return true; - } +var _setToArray = setToArray; - return !settings.errorFilter(error); - } +/** Used to compose bitmasks for value comparisons. */ - exports.isFatalError = isFatalError; +var COMPARE_PARTIAL_FLAG$4 = 1, + COMPARE_UNORDERED_FLAG$2 = 2; +/** `Object#toString` result references. */ - function isAppliedFilter(filter, value) { - return filter === null || filter(value); - } - - exports.isAppliedFilter = isAppliedFilter; - - function replacePathSegmentSeparator(filepath, separator) { - return filepath.split(/[\\/]/).join(separator); - } +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag$1 = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag$1 = '[object Set]', + stringTag = '[object String]', + symbolTag$1 = '[object Symbol]'; +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag$1 = '[object DataView]'; +/** Used to convert symbols to primitives and strings. */ - exports.replacePathSegmentSeparator = replacePathSegmentSeparator; +var symbolProto$1 = _Symbol ? _Symbol.prototype : undefined, + symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ - function joinPathSegments(a, b, separator) { - if (a === '') { - return b; - } +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag$1: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } - return a + separator + b; - } + object = object.buffer; + other = other.buffer; - exports.joinPathSegments = joinPathSegments; -}); + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) { + return false; + } -var reader = createCommonjsModule(function (module, exports) { + return true; - Object.defineProperty(exports, "__esModule", { - value: true - }); + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq_1(+object, +other); - class Reader { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); - } + case errorTag: + return object.name == other.name && object.message == other.message; - } + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == other + ''; - exports.default = Reader; -}); + case mapTag$1: + var convert = _mapToArray; -var async$2 = createCommonjsModule(function (module, exports) { + case setTag$1: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; + convert || (convert = _setToArray); - Object.defineProperty(exports, "__esModule", { - value: true - }); + if (object.size != other.size && !isPartial) { + return false; + } // Assume cyclic values are equal. - class AsyncReader extends reader.default { - constructor(_root, _settings) { - super(_root, _settings); - this._settings = _settings; - this._scandir = out$1.scandir; - this._emitter = new events__default['default'].EventEmitter(); - this._queue = queue(this._worker.bind(this), this._settings.concurrency); - this._isFatalError = false; - this._isDestroyed = false; - - this._queue.drain = () => { - if (!this._isFatalError) { - this._emitter.emit('end'); - } - }; - } - read() { - this._isFatalError = false; - this._isDestroyed = false; - setImmediate(() => { - this._pushToQueue(this._root, this._settings.basePath); - }); - return this._emitter; - } + var stacked = stack.get(object); - destroy() { - if (this._isDestroyed) { - throw new Error('The reader is already destroyed'); + if (stacked) { + return stacked == other; } - this._isDestroyed = true; - - this._queue.killAndDrain(); - } - - onEntry(callback) { - this._emitter.on('entry', callback); - } - - onError(callback) { - this._emitter.once('error', callback); - } + bitmask |= COMPARE_UNORDERED_FLAG$2; // Recursively compare objects (susceptible to call stack limits). - onEnd(callback) { - this._emitter.once('end', callback); - } + stack.set(object, other); + var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; - _pushToQueue(directory, base) { - const queueItem = { - directory, - base - }; + case symbolTag$1: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } - this._queue.push(queueItem, error => { - if (error !== null) { - this._handleError(error); - } - }); - } + } - _worker(item, done) { - this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { - if (error !== null) { - return done(error, undefined); - } + return false; +} - for (const entry of entries) { - this._handleEntry(entry, item.base); - } +var _equalByTag = equalByTag; - done(null, undefined); - }); - } +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; - _handleError(error) { - if (!common.isFatalError(this._settings, error)) { - return; - } + while (++index < length) { + array[offset + index] = values[index]; + } - this._isFatalError = true; - this._isDestroyed = true; + return array; +} - this._emitter.emit('error', error); - } +var _arrayPush = arrayPush; - _handleEntry(entry, base) { - if (this._isDestroyed || this._isFatalError) { - return; - } +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ - const fullpath = entry.path; +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object)); +} - if (base !== undefined) { - entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); - } +var _baseGetAllKeys = baseGetAllKeys; - if (common.isAppliedFilter(this._settings.entryFilter, entry)) { - this._emitEntry(entry); - } +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; - if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { - this._pushToQueue(fullpath, entry.path); - } - } + while (++index < length) { + var value = array[index]; - _emitEntry(entry) { - this._emitter.emit('entry', entry); + if (predicate(value, index, array)) { + result[resIndex++] = value; } - } - exports.default = AsyncReader; -}); + return result; +} -var async$3 = createCommonjsModule(function (module, exports) { +var _arrayFilter = arrayFilter; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} - class AsyncProvider { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new async$2.default(this._root, this._settings); - this._storage = new Set(); - } +var stubArray_1 = stubArray; - read(callback) { - this._reader.onError(error => { - callFailureCallback(callback, error); - }); +/** Used for built-in method references. */ - this._reader.onEntry(entry => { - this._storage.add(entry); - }); +var objectProto$4 = Object.prototype; +/** Built-in value references. */ - this._reader.onEnd(() => { - callSuccessCallback(callback, [...this._storage]); - }); +var propertyIsEnumerable = objectProto$4.propertyIsEnumerable; +/* Built-in method references for those with the same name as other `lodash` methods. */ - this._reader.read(); - } +var nativeGetSymbols = Object.getOwnPropertySymbols; +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray_1 : function (object) { + if (object == null) { + return []; } - exports.default = AsyncProvider; - - function callFailureCallback(callback, error) { - callback(error); - } + object = Object(object); + return _arrayFilter(nativeGetSymbols(object), function (symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; +var _getSymbols = getSymbols; - function callSuccessCallback(callback, entries) { - callback(null, entries); - } -}); +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ -var stream$1 = createCommonjsModule(function (module, exports) { +function getAllKeys(object) { + return _baseGetAllKeys(object, keys_1, _getSymbols); +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +var _getAllKeys = getAllKeys; - class StreamProvider { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new async$2.default(this._root, this._settings); - this._stream = new stream__default['default'].Readable({ - objectMode: true, - read: () => {}, - destroy: this._reader.destroy.bind(this._reader) - }); - } +/** Used to compose bitmasks for value comparisons. */ - read() { - this._reader.onError(error => { - this._stream.emit('error', error); - }); - - this._reader.onEntry(entry => { - this._stream.push(entry); - }); +var COMPARE_PARTIAL_FLAG$3 = 1; +/** Used for built-in method references. */ - this._reader.onEnd(() => { - this._stream.push(null); - }); +var objectProto$3 = Object.prototype; +/** Used to check objects for own properties. */ - this._reader.read(); +var hasOwnProperty$3 = objectProto$3.hasOwnProperty; +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ - return this._stream; - } +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, + objProps = _getAllKeys(object), + objLength = objProps.length, + othProps = _getAllKeys(other), + othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; } - exports.default = StreamProvider; -}); - -var sync$2 = createCommonjsModule(function (module, exports) { + var index = objLength; - Object.defineProperty(exports, "__esModule", { - value: true - }); + while (index--) { + var key = objProps[index]; - class SyncReader extends reader.default { - constructor() { - super(...arguments); - this._scandir = out$1.scandirSync; - this._storage = new Set(); - this._queue = new Set(); + if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) { + return false; } + } // Check that cyclic values are equal. - read() { - this._pushToQueue(this._root, this._settings.basePath); - - this._handleQueue(); - return [...this._storage]; - } + var objStacked = stack.get(object); + var othStacked = stack.get(other); - _pushToQueue(directory, base) { - this._queue.add({ - directory, - base - }); - } + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } - _handleQueue() { - for (const item of this._queue.values()) { - this._handleDirectory(item.directory, item.base); - } - } + var result = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; - _handleDirectory(directory, base) { - try { - const entries = this._scandir(directory, this._settings.fsScandirSettings); + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; - for (const entry of entries) { - this._handleEntry(entry, base); - } - } catch (error) { - this._handleError(error); - } - } + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } // Recursively compare objects (susceptible to call stack limits). - _handleError(error) { - if (!common.isFatalError(this._settings, error)) { - return; - } - throw error; + if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result = false; + break; } - _handleEntry(entry, base) { - const fullpath = entry.path; - - if (base !== undefined) { - entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); - } - - if (common.isAppliedFilter(this._settings.entryFilter, entry)) { - this._pushToStorage(entry); - } + skipCtor || (skipCtor = key == 'constructor'); + } - if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { - this._pushToQueue(fullpath, entry.path); - } - } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. - _pushToStorage(entry) { - this._storage.add(entry); + if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; } - } - exports.default = SyncReader; -}); - -var sync$3 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - class SyncProvider { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new sync$2.default(this._root, this._settings); - } + stack['delete'](object); + stack['delete'](other); + return result; +} - read() { - return this._reader.read(); - } +var _equalObjects = equalObjects; - } +/* Built-in method references that are verified to be native. */ - exports.default = SyncProvider; -}); +var DataView = _getNative(_root, 'DataView'); +var _DataView = DataView; -var settings$2 = createCommonjsModule(function (module, exports) { +/* Built-in method references that are verified to be native. */ - Object.defineProperty(exports, "__esModule", { - value: true - }); +var Promise$1 = _getNative(_root, 'Promise'); +var _Promise = Promise$1; - class Settings { - constructor(_options = {}) { - this._options = _options; - this.basePath = this._getValue(this._options.basePath, undefined); - this.concurrency = this._getValue(this._options.concurrency, Infinity); - this.deepFilter = this._getValue(this._options.deepFilter, null); - this.entryFilter = this._getValue(this._options.entryFilter, null); - this.errorFilter = this._getValue(this._options.errorFilter, null); - this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); - this.fsScandirSettings = new out$1.Settings({ - followSymbolicLinks: this._options.followSymbolicLinks, - fs: this._options.fs, - pathSegmentSeparator: this._options.pathSegmentSeparator, - stats: this._options.stats, - throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink - }); - } +/* Built-in method references that are verified to be native. */ - _getValue(option, value) { - return option === undefined ? value : option; - } +var Set$1 = _getNative(_root, 'Set'); +var _Set = Set$1; - } +/* Built-in method references that are verified to be native. */ - exports.default = Settings; -}); +var WeakMap$1 = _getNative(_root, 'WeakMap'); +var _WeakMap = WeakMap$1; -var out$2 = createCommonjsModule(function (module, exports) { +/** `Object#toString` result references. */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.Settings = settings$2.default; +var mapTag = '[object Map]', + objectTag$1 = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; +var dataViewTag = '[object DataView]'; +/** Used to detect maps, sets, and weakmaps. */ - function walk(directory, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === 'function') { - return new async$3.default(directory, getSettings()).read(optionsOrSettingsOrCallback); - } +var dataViewCtorString = _toSource(_DataView), + mapCtorString = _toSource(_Map), + promiseCtorString = _toSource(_Promise), + setCtorString = _toSource(_Set), + weakMapCtorString = _toSource(_WeakMap); +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ - new async$3.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); - } +var getTag = _baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - exports.walk = walk; +if (_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag || _Map && getTag(new _Map()) != mapTag || _Promise && getTag(_Promise.resolve()) != promiseTag || _Set && getTag(new _Set()) != setTag || _WeakMap && getTag(new _WeakMap()) != weakMapTag) { + getTag = function (value) { + var result = _baseGetTag(value), + Ctor = result == objectTag$1 ? value.constructor : undefined, + ctorString = Ctor ? _toSource(Ctor) : ''; - function walkSync(directory, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - const provider = new sync$3.default(directory, settings); - return provider.read(); - } + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; - exports.walkSync = walkSync; + case mapCtorString: + return mapTag; - function walkStream(directory, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - const provider = new stream$1.default(directory, settings); - return provider.read(); - } + case promiseCtorString: + return promiseTag; - exports.walkStream = walkStream; + case setCtorString: + return setTag; - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings$2.default) { - return settingsOrOptions; + case weakMapCtorString: + return weakMapTag; + } } - return new settings$2.default(settingsOrOptions); - } -}); + return result; + }; +} -var reader$1 = createCommonjsModule(function (module, exports) { +var _getTag = getTag; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** Used to compose bitmasks for value comparisons. */ - class Reader { - constructor(_settings) { - this._settings = _settings; - this._fsStatSettings = new out.Settings({ - followSymbolicLink: this._settings.followSymbolicLinks, - fs: this._settings.fs, - throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks - }); - } +var COMPARE_PARTIAL_FLAG$2 = 1; +/** `Object#toString` result references. */ - _getFullEntryPath(filepath) { - return path__default['default'].resolve(this._settings.cwd, filepath); - } +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; +/** Used for built-in method references. */ - _makeEntry(stats, pattern) { - const entry = { - name: pattern, - path: pattern, - dirent: utils$2.fs.createDirentFromStats(pattern, stats) - }; +var objectProto$2 = Object.prototype; +/** Used to check objects for own properties. */ - if (this._settings.stats) { - entry.stats = stats; - } +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ - return entry; - } +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray_1(object), + othIsArr = isArray_1(other), + objTag = objIsArr ? arrayTag : _getTag(object), + othTag = othIsArr ? arrayTag : _getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; - _isFatalError(error) { - return !utils$2.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + if (isSameTag && isBuffer_1(object)) { + if (!isBuffer_1(other)) { + return false; } + objIsArr = true; + objIsObj = false; } - exports.default = Reader; -}); - -var stream$2 = createCommonjsModule(function (module, exports) { + if (isSameTag && !objIsObj) { + stack || (stack = new _Stack()); + return objIsArr || isTypedArray_1(object) ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack) : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { + var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__'); - class ReaderStream extends reader$1.default { - constructor() { - super(...arguments); - this._walkStream = out$2.walkStream; - this._stat = out.stat; + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new _Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); } + } - dynamic(root, options) { - return this._walkStream(root, options); - } + if (!isSameTag) { + return false; + } - static(patterns, options) { - const filepaths = patterns.map(this._getFullEntryPath, this); - const stream = new stream__default['default'].PassThrough({ - objectMode: true - }); + stack || (stack = new _Stack()); + return _equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} - stream._write = (index, _enc, done) => { - return this._getEntry(filepaths[index], patterns[index], options).then(entry => { - if (entry !== null && options.entryFilter(entry)) { - stream.push(entry); - } - - if (index === filepaths.length - 1) { - stream.end(); - } - - done(); - }).catch(done); - }; - - for (let i = 0; i < filepaths.length; i++) { - stream.write(i); - } - - return stream; - } - - _getEntry(filepath, pattern, options) { - return this._getStat(filepath).then(stats => this._makeEntry(stats, pattern)).catch(error => { - if (options.errorFilter(error)) { - return null; - } +var _baseIsEqualDeep = baseIsEqualDeep; - throw error; - }); - } +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ - _getStat(filepath) { - return new Promise((resolve, reject) => { - this._stat(filepath, this._fsStatSettings, (error, stats) => { - return error === null ? resolve(stats) : reject(error); - }); - }); - } +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike_1(value) && !isObjectLike_1(other)) { + return value !== value && other !== other; } - exports.default = ReaderStream; -}); + return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} -var matcher = createCommonjsModule(function (module, exports) { +var _baseIsEqual = baseIsEqual; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** Used to compose bitmasks for value comparisons. */ - class Matcher { - constructor(_patterns, _settings, _micromatchOptions) { - this._patterns = _patterns; - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this._storage = []; +var COMPARE_PARTIAL_FLAG$1 = 1, + COMPARE_UNORDERED_FLAG$1 = 2; +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ - this._fillStorage(); - } +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; - _fillStorage() { - /** - * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). - * So, before expand patterns with brace expansion into separated patterns. - */ - const patterns = utils$2.pattern.expandPatternsWithBraceExpansion(this._patterns); + if (object == null) { + return !length; + } - for (const pattern of patterns) { - const segments = this._getPatternSegments(pattern); + object = Object(object); - const sections = this._splitSegmentsIntoSections(segments); + while (index--) { + var data = matchData[index]; - this._storage.push({ - complete: sections.length <= 1, - pattern, - segments, - sections - }); - } + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; } + } - _getPatternSegments(pattern) { - const parts = utils$2.pattern.getPatternParts(pattern, this._micromatchOptions); - return parts.map(part => { - const dynamic = utils$2.pattern.isDynamicPattern(part, this._settings); + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; - if (!dynamic) { - return { - dynamic: false, - pattern: part - }; - } + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new _Stack(); - return { - dynamic: true, - pattern: part, - patternRe: utils$2.pattern.makeRe(part, this._micromatchOptions) - }; - }); - } + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } - _splitSegmentsIntoSections(segments) { - return utils$2.array.splitWhen(segments, segment => segment.dynamic && utils$2.pattern.hasGlobStar(segment.pattern)); + if (!(result === undefined ? _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) { + return false; + } } - } - exports.default = Matcher; -}); - -var partial = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - class PartialMatcher extends matcher.default { - match(filepath) { - const parts = filepath.split('/'); - const levels = parts.length; - - const patterns = this._storage.filter(info => !info.complete || info.segments.length > levels); - - for (const pattern of patterns) { - const section = pattern.sections[0]; - /** - * In this case, the pattern has a globstar and we must read all directories unconditionally, - * but only if the level has reached the end of the first group. - * - * fixtures/{a,b}/** - * ^ true/false ^ always true - */ - - if (!pattern.complete && levels > section.length) { - return true; - } + return true; +} - const match = parts.every((part, index) => { - const segment = pattern.segments[index]; +var _baseIsMatch = baseIsMatch; - if (segment.dynamic && segment.patternRe.test(part)) { - return true; - } +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ - if (!segment.dynamic && segment.pattern === part) { - return true; - } +function isStrictComparable(value) { + return value === value && !isObject_1(value); +} - return false; - }); +var _isStrictComparable = isStrictComparable; - if (match) { - return true; - } - } +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ - return false; - } +function getMatchData(object) { + var result = keys_1(object), + length = result.length; + while (length--) { + var key = result[length], + value = object[key]; + result[length] = [key, value, _isStrictComparable(value)]; } - exports.default = PartialMatcher; -}); - -var deep = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - class DeepFilter { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - } - - getFilter(basePath, positive, negative) { - const matcher = this._getMatcher(positive); + return result; +} - const negativeRe = this._getNegativePatternsRe(negative); +var _getMatchData = getMatchData; - return entry => this._filter(basePath, entry, matcher, negativeRe); +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function (object) { + if (object == null) { + return false; } - _getMatcher(patterns) { - return new partial.default(patterns, this._settings, this._micromatchOptions); - } + return object[key] === srcValue && (srcValue !== undefined || key in Object(object)); + }; +} - _getNegativePatternsRe(patterns) { - const affectDepthOfReadingPatterns = patterns.filter(utils$2.pattern.isAffectDepthOfReadingPattern); - return utils$2.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); - } +var _matchesStrictComparable = matchesStrictComparable; - _filter(basePath, entry, matcher, negativeRe) { - if (this._isSkippedByDeep(basePath, entry.path)) { - return false; - } +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ - if (this._isSkippedSymbolicLink(entry)) { - return false; - } +function baseMatches(source) { + var matchData = _getMatchData(source); - const filepath = utils$2.path.removeLeadingDotSegment(entry.path); + if (matchData.length == 1 && matchData[0][2]) { + return _matchesStrictComparable(matchData[0][0], matchData[0][1]); + } - if (this._isSkippedByPositivePatterns(filepath, matcher)) { - return false; - } + return function (object) { + return object === source || _baseIsMatch(object, source, matchData); + }; +} - return this._isSkippedByNegativePatterns(filepath, negativeRe); - } +var _baseMatches = baseMatches; - _isSkippedByDeep(basePath, entryPath) { - /** - * Avoid unnecessary depth calculations when it doesn't matter. - */ - if (this._settings.deep === Infinity) { - return false; - } +/** `Object#toString` result references. */ - return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; - } +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 + */ - _getEntryLevel(basePath, entryPath) { - const entryPathDepth = entryPath.split('/').length; +function isSymbol(value) { + return typeof value == 'symbol' || isObjectLike_1(value) && _baseGetTag(value) == symbolTag; +} - if (basePath === '') { - return entryPathDepth; - } +var isSymbol_1 = isSymbol; - const basePathDepth = basePath.split('/').length; - return entryPathDepth - basePathDepth; - } +/** Used to match property names within property paths. */ - _isSkippedSymbolicLink(entry) { - return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); - } +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`. + */ - _isSkippedByPositivePatterns(entryPath, matcher) { - return !this._settings.baseNameMatch && !matcher.match(entryPath); - } +function isKey(value, object) { + if (isArray_1(value)) { + return false; + } - _isSkippedByNegativePatterns(entryPath, patternsRe) { - return !utils$2.pattern.matchAny(entryPath, patternsRe); - } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol_1(value)) { + return true; } - exports.default = DeepFilter; -}); + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); +} -var entry = createCommonjsModule(function (module, exports) { +var _isKey = isKey; - Object.defineProperty(exports, "__esModule", { - value: true - }); - - class EntryFilter { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this.index = new Map(); - } - - getFilter(positive, negative) { - const positiveRe = utils$2.pattern.convertPatternsToRe(positive, this._micromatchOptions); - const negativeRe = utils$2.pattern.convertPatternsToRe(negative, this._micromatchOptions); - return entry => this._filter(entry, positiveRe, negativeRe); - } - - _filter(entry, positiveRe, negativeRe) { - if (this._settings.unique && this._isDuplicateEntry(entry)) { - return false; - } - - if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { - return false; - } +/** Error message constants. */ - if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { - return false; - } +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; + */ - const filepath = this._settings.baseNameMatch ? entry.name : entry.path; - const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); +function memoize(func, resolver) { + if (typeof func != 'function' || resolver != null && typeof resolver != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } - if (this._settings.unique && isMatched) { - this._createIndexRecord(entry); - } + var memoized = function () { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; - return isMatched; + if (cache.has(key)) { + return cache.get(key); } - _isDuplicateEntry(entry) { - return this.index.has(entry.path); - } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; - _createIndexRecord(entry) { - this.index.set(entry.path, undefined); - } + memoized.cache = new (memoize.Cache || _MapCache)(); + return memoized; +} // Expose `MapCache`. - _onlyFileFilter(entry) { - return this._settings.onlyFiles && !entry.dirent.isFile(); - } - _onlyDirectoryFilter(entry) { - return this._settings.onlyDirectories && !entry.dirent.isDirectory(); - } +memoize.Cache = _MapCache; +var memoize_1 = memoize; - _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { - if (!this._settings.absolute) { - return false; - } +/** Used as the maximum memoize cache size. */ - const fullpath = utils$2.path.makeAbsolute(this._settings.cwd, entryPath); - return utils$2.pattern.matchAny(fullpath, patternsRe); - } +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. + */ - _isMatchToPatterns(entryPath, patternsRe) { - const filepath = utils$2.path.removeLeadingDotSegment(entryPath); - return utils$2.pattern.matchAny(filepath, patternsRe); +function memoizeCapped(func) { + var result = memoize_1(func, function (key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); } - } + return key; + }); + var cache = result.cache; + return result; +} - exports.default = EntryFilter; -}); +var _memoizeCapped = memoizeCapped; -var error = createCommonjsModule(function (module, exports) { +/** Used to match property names within property paths. */ - Object.defineProperty(exports, "__esModule", { - value: true - }); +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; +/** Used to match backslashes in property paths. */ - class ErrorFilter { - constructor(_settings) { - this._settings = _settings; - } +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. + */ - getFilter() { - return error => this._isNonFatalError(error); - } +var stringToPath = _memoizeCapped(function (string) { + var result = []; - _isNonFatalError(error) { - return utils$2.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + if (string.charCodeAt(0) === 46 + /* . */ + ) { + result.push(''); } - } - - exports.default = ErrorFilter; + string.replace(rePropName, function (match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match); + }); + return result; }); +var _stringToPath = stringToPath; -var entry$1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** + * 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); - class EntryTransformer { - constructor(_settings) { - this._settings = _settings; - } + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } - getTransformer() { - return entry => this._transform(entry); - } + return result; +} - _transform(entry) { - let filepath = entry.path; +var _arrayMap = arrayMap; - if (this._settings.absolute) { - filepath = utils$2.path.makeAbsolute(this._settings.cwd, filepath); - filepath = utils$2.path.unixify(filepath); - } +/** Used as references for various `Number` constants. */ - if (this._settings.markDirectories && entry.dirent.isDirectory()) { - filepath += '/'; - } +var INFINITY$1 = 1 / 0; +/** Used to convert symbols to primitives and strings. */ - if (!this._settings.objectMode) { - return filepath; - } +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. + */ - return Object.assign(Object.assign({}, entry), { - path: filepath - }); - } +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray_1(value)) { + // Recursively convert values (susceptible to call stack limits). + return _arrayMap(value, baseToString) + ''; } - exports.default = EntryTransformer; -}); + if (isSymbol_1(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } -var provider = createCommonjsModule(function (module, exports) { + var result = value + ''; + return result == '0' && 1 / value == -INFINITY$1 ? '-0' : result; +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +var _baseToString = baseToString; - class Provider { - constructor(_settings) { - this._settings = _settings; - this.errorFilter = new error.default(this._settings); - this.entryFilter = new entry.default(this._settings, this._getMicromatchOptions()); - this.deepFilter = new deep.default(this._settings, this._getMicromatchOptions()); - this.entryTransformer = new entry$1.default(this._settings); - } +/** + * 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' + */ - _getRootDirectory(task) { - return path__default['default'].resolve(this._settings.cwd, task.base); - } +function toString(value) { + return value == null ? '' : _baseToString(value); +} - _getReaderOptions(task) { - const basePath = task.base === '.' ? '' : task.base; - return { - basePath, - pathSegmentSeparator: '/', - concurrency: this._settings.concurrency, - deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), - entryFilter: this.entryFilter.getFilter(task.positive, task.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() - }; - } +var toString_1 = toString; - _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: true, - strictSlashes: false - }; - } +/** + * 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_1(value)) { + return value; } - exports.default = Provider; -}); - -var async$4 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); + return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); +} - class ProviderAsync extends provider.default { - constructor() { - super(...arguments); - this._reader = new stream$2.default(this._settings); - } +var _castPath = castPath; - read(task) { - const root = this._getRootDirectory(task); +/** Used as references for various `Number` constants. */ - const options = this._getReaderOptions(task); - - const entries = []; - return new Promise((resolve, reject) => { - const stream = this.api(root, task, options); - stream.once('error', reject); - stream.on('data', entry => entries.push(options.transform(entry))); - stream.once('end', () => resolve(entries)); - }); - } - - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } - - return this._reader.static(task.patterns, options); - } +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_1(value)) { + return value; } - exports.default = ProviderAsync; -}); - -var stream$3 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - class ProviderStream extends provider.default { - constructor() { - super(...arguments); - this._reader = new stream$2.default(this._settings); - } - - read(task) { - const root = this._getRootDirectory(task); - - const options = this._getReaderOptions(task); + var result = value + ''; + return result == '0' && 1 / value == -INFINITY ? '-0' : result; +} - const source = this.api(root, task, options); - const destination = new stream__default['default'].Readable({ - objectMode: true, - read: () => {} - }); - source.once('error', error => destination.emit('error', error)).on('data', entry => destination.emit('data', options.transform(entry))).once('end', () => destination.emit('end')); - destination.once('close', () => source.destroy()); - return destination; - } +var _toKey = toKey; - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } +/** + * 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. + */ - return this._reader.static(task.patterns, options); - } +function baseGet(object, path) { + path = _castPath(path, object); + var index = 0, + length = path.length; + while (object != null && index < length) { + object = object[_toKey(path[index++])]; } - exports.default = ProviderStream; -}); + return index && index == length ? object : undefined; +} -var sync$4 = createCommonjsModule(function (module, exports) { +var _baseGet = baseGet; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** + * 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' + */ - class ReaderSync extends reader$1.default { - constructor() { - super(...arguments); - this._walkSync = out$2.walkSync; - this._statSync = out.statSync; - } +function get(object, path, defaultValue) { + var result = object == null ? undefined : _baseGet(object, path); + return result === undefined ? defaultValue : result; +} - dynamic(root, options) { - return this._walkSync(root, options); - } +var get_1 = get; - static(patterns, options) { - const entries = []; +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} - for (const pattern of patterns) { - const filepath = this._getFullEntryPath(pattern); +var _baseHasIn = baseHasIn; - const entry = this._getEntry(filepath, pattern, options); +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ - if (entry === null || !options.entryFilter(entry)) { - continue; - } +function hasPath(object, path, hasFunc) { + path = _castPath(path, object); + var index = -1, + length = path.length, + result = false; - entries.push(entry); - } + while (++index < length) { + var key = _toKey(path[index]); - return entries; + if (!(result = object != null && hasFunc(object, key))) { + break; } - _getEntry(filepath, pattern, options) { - try { - const stats = this._getStat(filepath); + object = object[key]; + } - return this._makeEntry(stats, pattern); - } catch (error) { - if (options.errorFilter(error)) { - return null; - } + if (result || ++index != length) { + return result; + } - throw error; - } - } + length = object == null ? 0 : object.length; + return !!length && isLength_1(length) && _isIndex(key, length) && (isArray_1(object) || isArguments_1(object)); +} - _getStat(filepath) { - return this._statSync(filepath, this._fsStatSettings); - } +var _hasPath = hasPath; - } +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ - exports.default = ReaderSync; -}); +function hasIn(object, path) { + return object != null && _hasPath(object, path, _baseHasIn); +} -var sync$5 = createCommonjsModule(function (module, exports) { +var hasIn_1 = hasIn; - Object.defineProperty(exports, "__esModule", { - value: true - }); +/** Used to compose bitmasks for value comparisons. */ - class ProviderSync extends provider.default { - constructor() { - super(...arguments); - this._reader = new sync$4.default(this._settings); - } +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ - read(task) { - const root = this._getRootDirectory(task); +function baseMatchesProperty(path, srcValue) { + if (_isKey(path) && _isStrictComparable(srcValue)) { + return _matchesStrictComparable(_toKey(path), srcValue); + } - const options = this._getReaderOptions(task); + return function (object) { + var objValue = get_1(object, path); + return objValue === undefined && objValue === srcValue ? hasIn_1(object, path) : _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} - const entries = this.api(root, task, options); - return entries.map(options.transform); - } +var _baseMatchesProperty = baseMatchesProperty; - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} - return this._reader.static(task.patterns, options); - } +var identity_1 = identity; - } +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function (object) { + return object == null ? undefined : object[key]; + }; +} - exports.default = ProviderSync; -}); +var _baseProperty = baseProperty; -var settings$3 = createCommonjsModule(function (module, exports) { +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; - const CPU_COUNT = os__default['default'].cpus().length; - exports.DEFAULT_FILE_SYSTEM_ADAPTER = { - lstat: fs__default['default'].lstat, - lstatSync: fs__default['default'].lstatSync, - stat: fs__default['default'].stat, - statSync: fs__default['default'].statSync, - readdir: fs__default['default'].readdir, - readdirSync: fs__default['default'].readdirSync +function basePropertyDeep(path) { + return function (object) { + return _baseGet(object, path); }; +} - class Settings { - constructor(_options = {}) { - this._options = _options; - this.absolute = this._getValue(this._options.absolute, false); - this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); - this.braceExpansion = this._getValue(this._options.braceExpansion, true); - this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); - this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); - this.cwd = this._getValue(this._options.cwd, process.cwd()); - this.deep = this._getValue(this._options.deep, Infinity); - this.dot = this._getValue(this._options.dot, false); - this.extglob = this._getValue(this._options.extglob, true); - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); - this.fs = this._getFileSystemMethods(this._options.fs); - this.globstar = this._getValue(this._options.globstar, true); - this.ignore = this._getValue(this._options.ignore, []); - this.markDirectories = this._getValue(this._options.markDirectories, false); - this.objectMode = this._getValue(this._options.objectMode, false); - this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); - this.onlyFiles = this._getValue(this._options.onlyFiles, true); - this.stats = this._getValue(this._options.stats, false); - this.suppressErrors = this._getValue(this._options.suppressErrors, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); - this.unique = this._getValue(this._options.unique, true); +var _basePropertyDeep = basePropertyDeep; - if (this.onlyDirectories) { - this.onlyFiles = false; - } +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ - if (this.stats) { - this.objectMode = true; - } - } +function property(path) { + return _isKey(path) ? _baseProperty(_toKey(path)) : _basePropertyDeep(path); +} - _getValue(option, value) { - return option === undefined ? value : option; - } +var property_1 = property; - _getFileSystemMethods(methods = {}) { - return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); - } +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; } - exports.default = Settings; -}); + if (value == null) { + return identity_1; + } -async function FastGlob(source, options) { - assertPatternsInput(source); - const works = getWorks(source, async$4.default, options); - const result = await Promise.all(works); - return utils$2.array.flatten(result); -} // https://github.com/typescript-eslint/typescript-eslint/issues/60 -// eslint-disable-next-line no-redeclare + if (typeof value == 'object') { + return isArray_1(value) ? _baseMatchesProperty(value[0], value[1]) : _baseMatches(value); + } + return property_1(value); +} -(function (FastGlob) { - function sync(source, options) { - assertPatternsInput(source); - const works = getWorks(source, sync$5.default, options); - return utils$2.array.flatten(works); - } +var _baseIteratee = baseIteratee; - FastGlob.sync = sync; +/** + * Creates a function like `_.groupBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. + */ - function stream(source, options) { - assertPatternsInput(source); - const works = getWorks(source, stream$3.default, options); - /** - * The stream returned by the provider cannot work with an asynchronous iterator. - * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. - * This affects performance (+25%). I don't see best solution right now. - */ +function createAggregator(setter, initializer) { + return function (collection, iteratee) { + var func = isArray_1(collection) ? _arrayAggregator : _baseAggregator, + accumulator = initializer ? initializer() : {}; + return func(collection, setter, _baseIteratee(iteratee), accumulator); + }; +} - return utils$2.stream.merge(works); - } +var _createAggregator = createAggregator; - FastGlob.stream = stream; +/** + * Creates an array of elements split into two groups, the first of which + * contains elements `predicate` returns truthy for, the second of which + * contains elements `predicate` returns falsey for. The predicate is + * invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the array of grouped elements. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true }, + * { 'user': 'pebbles', 'age': 1, 'active': false } + * ]; + * + * _.partition(users, function(o) { return o.active; }); + * // => objects for [['fred'], ['barney', 'pebbles']] + * + * // The `_.matches` iteratee shorthand. + * _.partition(users, { 'age': 1, 'active': false }); + * // => objects for [['pebbles'], ['barney', 'fred']] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.partition(users, ['active', false]); + * // => objects for [['barney', 'pebbles'], ['fred']] + * + * // The `_.property` iteratee shorthand. + * _.partition(users, 'active'); + * // => objects for [['fred'], ['barney', 'pebbles']] + */ - function generateTasks(source, options) { - assertPatternsInput(source); - const patterns = [].concat(source); - const settings = new settings$3.default(options); - return tasks.generate(patterns, settings); - } +var partition = _createAggregator(function (result, value, key) { + result[key ? 0 : 1].push(value); +}, function () { + return [[], []]; +}); +var partition_1 = partition; - FastGlob.generateTasks = generateTasks; +var createMinimistOptions = function createMinimistOptions(detailedOptions) { + const [boolean, string] = partition_1(detailedOptions, ({ + type + }) => type === "boolean").map(detailedOptions => detailedOptions.flatMap(({ + name, + alias + }) => alias ? [name, alias] : [name])); + const defaults = Object.fromEntries(detailedOptions.filter(option => !option.deprecated && (!option.forwardToApi || option.name === "plugin" || option.name === "plugin-search-dir") && option.default !== undefined).map(option => [option.name, option.default])); + return { + // we use vnopts' AliasSchema to handle aliases for better error messages + alias: {}, + boolean, + string, + default: defaults + }; +}; - function isDynamicPattern(source, options) { - assertPatternsInput(source); - const settings = new settings$3.default(options); - return utils$2.pattern.isDynamicPattern(source, settings); - } +const { + optionsNormalizer +} = prettierInternal; - FastGlob.isDynamicPattern = isDynamicPattern; +function getOptions(argv, detailedOptions) { + return Object.fromEntries(detailedOptions.filter(({ + forwardToApi + }) => forwardToApi).map(({ + forwardToApi, + name + }) => [forwardToApi, argv[name]])); +} - function escapePath(source) { - assertPatternsInput(source); - return utils$2.path.escape(source); - } +function cliifyOptions(object, apiDetailedOptionMap) { + return Object.fromEntries(Object.entries(object || {}).map(([key, value]) => { + const apiOption = apiDetailedOptionMap[key]; + const cliKey = apiOption ? apiOption.name : key; + return [dashify(cliKey), value]; + })); +} - FastGlob.escapePath = escapePath; -})(FastGlob || (FastGlob = {})); +function createApiDetailedOptionMap(detailedOptions) { + return Object.fromEntries(detailedOptions.filter(option => option.forwardToApi && option.forwardToApi !== option.name).map(option => [option.forwardToApi, option])); +} -function getWorks(source, _Provider, options) { - const patterns = [].concat(source); - const settings = new settings$3.default(options); - const tasks$1 = tasks.generate(patterns, settings); - const provider = new _Provider(settings); - return tasks$1.map(provider.read, provider); +function parseArgsToOptions(context, overrideDefaults) { + const minimistOptions = createMinimistOptions(context.detailedOptions); + const apiDetailedOptionMap = createApiDetailedOptionMap(context.detailedOptions); + return getOptions(optionsNormalizer.normalizeCliOptions(minimist_1(context.rawArguments, { + string: minimistOptions.string, + boolean: minimistOptions.boolean, + default: cliifyOptions(overrideDefaults, apiDetailedOptionMap) + }), context.detailedOptions, { + logger: false + }), context.detailedOptions); } -function assertPatternsInput(input) { - const source = [].concat(input); - const isValidSource = source.every(item => utils$2.string.isString(item) && !utils$2.string.isEmpty(item)); +async function getOptionsOrDie(context, filePath) { + try { + if (context.argv.config === false) { + context.logger.debug("'--no-config' option found, skip loading config file."); + return null; + } - if (!isValidSource) { - throw new TypeError('Patterns must be a string (non empty) or an array of strings'); + context.logger.debug(context.argv.config ? `load config file from '${context.argv.config}'` : `resolve config from '${filePath}'`); + const options = await prettier$1.resolveConfig(filePath, { + editorconfig: context.argv.editorconfig, + config: context.argv.config + }); + context.logger.debug("loaded options `" + JSON.stringify(options) + "`"); + return options; + } catch (error) { + context.logger.error(`Invalid configuration file \`${filePath}\`: ` + error.message); + process.exit(2); } } -var out$3 = FastGlob; +function applyConfigPrecedence(context, options) { + try { + switch (context.argv["config-precedence"]) { + case "cli-override": + return parseArgsToOptions(context, options); -/** @typedef {import('./util').Context} Context */ + case "file-override": + return Object.assign(Object.assign({}, parseArgsToOptions(context)), options); -/** - * @param {Context} context - */ + case "prefer-file": + return options || parseArgsToOptions(context); + } + } catch (error) { + /* istanbul ignore next */ + context.logger.error(error.toString()); + /* istanbul ignore next */ + process.exit(2); + } +} -function* expandPatterns(context) { - const cwd = process.cwd(); - const seen = new Set(); - let noResults = true; +async function getOptionsForFile$1(context, filepath) { + const options = await getOptionsOrDie(context, filepath); + const hasPlugins = options && options.plugins; - for (const pathOrError of expandPatternsInternal(context)) { - noResults = false; + if (hasPlugins) { + context.pushContextPlugins(options.plugins); + } - if (typeof pathOrError !== "string") { - yield pathOrError; - continue; - } - - const relativePath = path__default['default'].relative(cwd, pathOrError); // filter out duplicates - - if (seen.has(relativePath)) { - continue; - } + const appliedOptions = Object.assign({ + filepath + }, applyConfigPrecedence(context, options && optionsNormalizer.normalizeApiOptions(options, context.supportOptions, { + logger: context.logger + }))); + context.logger.debug(`applied config-precedence (${context.argv["config-precedence"]}): ` + `${JSON.stringify(appliedOptions)}`); - seen.add(relativePath); - yield relativePath; + if (hasPlugins) { + context.popContextPlugins(); } - if (noResults) { - // If there was no files and no other errors, let's yield a general error. - yield { - error: `No matching files. Patterns: ${context.filePatterns.join(" ")}` - }; - } + return appliedOptions; } -/** - * @param {Context} context - */ +var option = { + getOptionsForFile: getOptionsForFile$1, + createMinimistOptions +}; -function* expandPatternsInternal(context) { - // Ignores files in version control systems directories and `node_modules` - const silentlyIgnoredDirs = { - ".git": true, - ".svn": true, - ".hg": true, - node_modules: context.argv["with-node-modules"] !== true - }; - const globOptions = { - dot: true, - ignore: Object.keys(silentlyIgnoredDirs).filter(dir => silentlyIgnoredDirs[dir]).map(dir => "**/" + dir) - }; - let supportedFilesGlob; - const cwd = process.cwd(); - /** @type {Array<{ type: 'file' | 'dir' | 'glob'; glob: string; input: string; }>} */ +const { + isCI +} = require$$1; // Some CI pipelines incorrectly report process.stdout.isTTY status, +// which causes unwanted lines in the output. An additional check for isCI() helps. +// See https://github.com/prettier/prettier/issues/5801 - const entries = []; +var isTty = function isTTY() { + return process.stdout.isTTY && !isCI(); +}; - for (const pattern of context.filePatterns) { - const absolutePath = path__default['default'].resolve(cwd, pattern); +/*istanbul ignore start*/ +var base = createCommonjsModule(function (module, exports) { - if (containsIgnoredPathSegment(absolutePath, cwd, silentlyIgnoredDirs)) { - continue; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = Diff; + /*istanbul ignore end*/ - const stat = statSafeSync(absolutePath); + function Diff() {} - if (stat) { - if (stat.isFile()) { - entries.push({ - type: "file", - glob: escapePathForGlob(fixWindowsSlashes(pattern)), - input: pattern - }); - } else if (stat.isDirectory()) { - entries.push({ - type: "dir", - glob: escapePathForGlob(fixWindowsSlashes(pattern)) + "/" + getSupportedFilesGlob(), - input: pattern - }); - } - } else if (pattern[0] === "!") { - // convert negative patterns to `ignore` entries - globOptions.ignore.push(fixWindowsSlashes(pattern.slice(1))); - } else { - entries.push({ - type: "glob", - glob: fixWindowsSlashes(pattern), - input: pattern - }); - } - } + Diff.prototype = { + /*istanbul ignore start*/ - for (const { - type, - glob, - input - } of entries) { - let result; + /*istanbul ignore end*/ + diff: function diff(oldString, newString) { + /*istanbul ignore start*/ + var + /*istanbul ignore end*/ + options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var callback = options.callback; - try { - result = out$3.sync(glob, globOptions); - } catch ({ - message - }) { - /* istanbul ignore next */ - yield { - error: `${errorMessages.globError[type]}: ${input}\n${message}` - }; - /* istanbul ignore next */ + if (typeof options === 'function') { + callback = options; + options = {}; + } - continue; - } + this.options = options; + var self = this; - if (result.length === 0) { - yield { - error: `${errorMessages.emptyResults[type]}: "${input}".` - }; - } else { - yield* sortPaths(result); - } - } + function done(value) { + if (callback) { + setTimeout(function () { + callback(undefined, value); + }, 0); + return true; + } else { + return value; + } + } // Allow subclasses to massage the input prior to running + + + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, + oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ + newPos: -1, + components: [] + }]; // Seed editLength = 0, i.e. the content starts with the same values + + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + // Identity per the equality and tokenizer + return done([{ + value: this.join(newString), + count: newString.length + }]); + } // Main worker method. checks all permutations of a given edit length for acceptance. + + + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = + /*istanbul ignore start*/ + void 0 + /*istanbul ignore end*/ + ; + + var addPath = bestPath[diagonalPath - 1], + removePath = bestPath[diagonalPath + 1], + _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + + if (addPath) { + // No one else is going to attempt to use this value, clear it + bestPath[diagonalPath - 1] = undefined; + } - function getSupportedFilesGlob() { - if (!supportedFilesGlob) { - const extensions = flatten_1(context.languages.map(lang => lang.extensions || [])); - const filenames = flatten_1(context.languages.map(lang => lang.filenames || [])); - supportedFilesGlob = `**/{${extensions.map(ext => "*" + (ext[0] === "." ? ext : "." + ext)).concat(filenames)}}`; - } + var canAdd = addPath && addPath.newPos + 1 < newLen, + canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - return supportedFilesGlob; - } -} + if (!canAdd && !canRemove) { + // If this path is a terminal then prune + bestPath[diagonalPath] = undefined; + continue; + } // Select the diagonal that we want to branch from. We select the prior + // path whose position in the new string is the farthest from the origin + // and does not pass the bounds of the diff graph -const errorMessages = { - globError: { - file: "Unable to resolve file", - dir: "Unable to expand directory", - glob: "Unable to expand glob pattern" - }, - emptyResults: { - file: "Explicitly specified file was ignored due to negative glob patterns", - dir: "No supported files were found in the directory", - glob: "No files matching the pattern were found" - } -}; -/** - * @param {string} absolutePath - * @param {string} cwd - * @param {Record} ignoredDirectories - */ -function containsIgnoredPathSegment(absolutePath, cwd, ignoredDirectories) { - return path__default['default'].relative(cwd, absolutePath).split(path__default['default'].sep).some(dir => ignoredDirectories[dir]); -} -/** - * @param {string[]} paths - */ + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self.pushComponent(basePath.components, undefined, true); + } else { + basePath = addPath; // No need to clone, we've pulled it from the list + basePath.newPos++; + self.pushComponent(basePath.components, true, undefined); + } -function sortPaths(paths) { - return paths.sort((a, b) => a.localeCompare(b)); -} -/** - * Get stats of a given path. - * @param {string} filePath The path to target file. - * @returns {fs.Stats | undefined} The stats. - */ + _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); + } else { + // Otherwise track this path as a potential candidate and continue. + bestPath[diagonalPath] = basePath; + } + } -function statSafeSync(filePath) { - try { - return fs__default['default'].statSync(filePath); - } catch (error) { - /* istanbul ignore next */ - if (error.code !== "ENOENT") { - throw error; - } - } -} -/** - * This function should be replaced with `fastGlob.escapePath` when these issues are fixed: - * - https://github.com/mrmlnc/fast-glob/issues/261 - * - https://github.com/mrmlnc/fast-glob/issues/262 - * @param {string} path - */ + editLength++; + } // Performs the length of edit iteration. Is a bit fugly as this has to support the + // sync and async mode which is never fun. Loops over execEditLength until a value + // is produced. -function escapePathForGlob(path) { - return out$3.escapePath(path.replace(/\\/g, "\0") // Workaround for fast-glob#262 (part 1) - ).replace(/\\!/g, "@(!)") // Workaround for fast-glob#261 - .replace(/\0/g, "@(\\\\)"); // Workaround for fast-glob#262 (part 2) -} + if (callback) { + (function exec() { + setTimeout(function () { + // This should not happen, but we want to be safe. -const isWindows = path__default['default'].sep === "\\"; -/** - * Using backslashes in globs is probably not okay, but not accepting - * backslashes as path separators on Windows is even more not okay. - * https://github.com/prettier/prettier/pull/6776#discussion_r380723717 - * https://github.com/mrmlnc/fast-glob#how-to-write-patterns-on-windows - * @param {string} pattern - */ + /* istanbul ignore next */ + if (editLength > maxEditLength) { + return callback(); + } -function fixWindowsSlashes(pattern) { - return isWindows ? pattern.replace(/\\/g, "/") : pattern; -} + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); -var expandPatterns_1 = { - expandPatterns, - fixWindowsSlashes -}; + if (ret) { + return ret; + } + } + } + }, -var lib = createCommonjsModule(function (module, exports) { + /*istanbul ignore start*/ - Object.defineProperty(exports, "__esModule", { - value: true - }); // In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either. + /*istanbul ignore end*/ + pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; - function noop() { - var args = []; + if (last && last.added === added && last.removed === removed) { + // We need to clone here as the component clone operation is just + // as shallow array clone + components[components.length - 1] = { + count: last.count + 1, + added: added, + removed: removed + }; + } else { + components.push({ + count: 1, + added: added, + removed: removed + }); + } + }, - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - } + /*istanbul ignore start*/ - function createWeakMap() { - if (typeof WeakMap !== 'undefined') { - return new WeakMap(); - } else { - return fakeSetOrMap(); - } - } - /** - * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything. - */ + /*istanbul ignore end*/ + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, + oldLen = oldString.length, + newPos = basePath.newPos, + oldPos = newPos - diagonalPath, + commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } - function fakeSetOrMap() { - return { - add: noop, - delete: noop, - get: noop, - set: noop, - has: function (k) { - return false; + if (commonCount) { + basePath.components.push({ + count: commonCount + }); } - }; - } // Safe hasOwnProperty + basePath.newPos = newPos; + return oldPos; + }, - var hop = Object.prototype.hasOwnProperty; + /*istanbul ignore start*/ - var has = function (obj, prop) { - return hop.call(obj, prop); - }; // Copy all own enumerable properties from source to target + /*istanbul ignore end*/ + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + /*istanbul ignore start*/ - function extend(target, source) { - for (var prop in source) { - if (has(source, prop)) { - target[prop] = source[prop]; + /*istanbul ignore end*/ + removeEmpty: function removeEmpty(array) { + var ret = []; + + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } } - } - return target; - } + return ret; + }, - var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/; - var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/; - var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/; - var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/; - var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/; + /*istanbul ignore start*/ - function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) { - // If first interpolated value is a reference to outdent, - // determine indentation level from the indentation of the interpolated value. - var indentationLevel = 0; - var match = strings[0].match(reDetectIndentation); + /*istanbul ignore end*/ + castInput: function castInput(value) { + return value; + }, - if (match) { - indentationLevel = match[1].length; - } + /*istanbul ignore start*/ - var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; - var reMatchIndent = new RegExp(reSource, 'g'); + /*istanbul ignore end*/ + tokenize: function tokenize(value) { + return value.split(''); + }, - if (firstInterpolatedValueSetsIndentationLevel) { - strings = strings.slice(1); + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + join: function join(chars) { + return chars.join(''); } + }; - var newline = options.newline, - trimLeadingNewline = options.trimLeadingNewline, - trimTrailingNewline = options.trimTrailingNewline; - var normalizeNewlines = typeof newline === 'string'; - var l = strings.length; - var outdentedStrings = strings.map(function (v, i) { - // Remove leading indentation from all lines - v = v.replace(reMatchIndent, '$1'); // Trim a leading newline from the first string + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, + componentLen = components.length, + newPos = 0, + oldPos = 0; + + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function (value, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } - if (i === 0 && trimLeadingNewline) { - v = v.replace(reLeadingNewline, ''); - } // Trim a trailing newline from the last string + newPos += component.count; // Common case + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; // Reverse add and remove so removes are output first to match common convention + // The diffing algorithm is tied to add then remove output and this is the simplest + // route to get the desired output with minimal overhead. + + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } // Special case handle for when one terminal is ignored (i.e. whitespace). + // For this case we merge the terminal into the prior string and drop the change. + // This is only available for string mode. - if (i === l - 1 && trimTrailingNewline) { - v = v.replace(reTrailingNewline, ''); - } // Normalize newlines + var lastComponent = components[componentLen - 1]; - if (normalizeNewlines) { - v = v.replace(/\r\n|\n|\r/g, function (_) { - return newline; - }); + if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + + return components; + } + + function clonePath(path) { + return { + newPos: path.newPos, + components: path.components.slice(0) + }; + } +}); + +/*istanbul ignore start*/ +var character = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffChars = diffChars; + exports.characterDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var characterDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.characterDiff = characterDiff; + /*istanbul ignore end*/ + + function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); + } +}); + +/*istanbul ignore start*/ + +var generateOptions_1 = generateOptions; +/*istanbul ignore end*/ + +function generateOptions(options, defaults) { + if (typeof options === 'function') { + defaults.callback = options; + } else if (options) { + for (var name in options) { + /* istanbul ignore else */ + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; } + } + } - return v; + return defaults; +} + +var params = /*#__PURE__*/Object.defineProperty({ + generateOptions: generateOptions_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ +var word = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffWords = diffWords; + exports.diffWordsWithSpace = diffWordsWithSpace; + exports.wordDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode + // + // Ranges and exceptions: + // Latin-1 Supplement, 0080–00FF + // - U+00D7 × Multiplication sign + // - U+00F7 ÷ Division sign + // Latin Extended-A, 0100–017F + // Latin Extended-B, 0180–024F + // IPA Extensions, 0250–02AF + // Spacing Modifier Letters, 02B0–02FF + // - U+02C7 ˇ ˇ Caron + // - U+02D8 ˘ ˘ Breve + // - U+02D9 ˙ ˙ Dot Above + // - U+02DA ˚ ˚ Ring Above + // - U+02DB ˛ ˛ Ogonek + // - U+02DC ˜ ˜ Small Tilde + // - U+02DD ˝ ˝ Double Acute Accent + // Latin Extended Additional, 1E00–1EFF + + + var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + var reWhitespace = /\S/; + var wordDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.wordDiff = wordDiff; + /*istanbul ignore end*/ + + wordDiff.equals = function (left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); + }; + + wordDiff.tokenize = function (value) { + // All whitespace symbols except newline group into one token, each newline - in separate token + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + + for (var i = 0; i < tokens.length - 1; i++) { + // If we have an empty string in the next field and we have only word chars before and after, merge + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + + return tokens; + }; + + function diffWords(oldStr, newStr, options) { + options = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, params + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + generateOptions + /*istanbul ignore end*/ + )(options, { + ignoreWhitespace: true }); - return outdentedStrings; + return wordDiff.diff(oldStr, newStr, options); } - function concatStringsAndValues(strings, values) { - var ret = ''; + function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); + } +}); - for (var i = 0, l = strings.length; i < l; i++) { - ret += strings[i]; +/*istanbul ignore start*/ +var line = createCommonjsModule(function (module, exports) { - if (i < l - 1) { - ret += values[i]; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffLines = diffLines; + exports.diffTrimmedLines = diffTrimmedLines; + exports.lineDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var lineDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.lineDiff = lineDiff; + /*istanbul ignore end*/ + + lineDiff.tokenize = function (value) { + var retLines = [], + linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line + + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } // Merge the content and line separators into single tokens + + + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + + retLines.push(line); } } - return ret; + return retLines; + }; + + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); } - function isTemplateStringsArray(v) { - return has(v, 'raw') && has(v, 'length'); + function diffTrimmedLines(oldStr, newStr, callback) { + var options = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, params + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + generateOptions + /*istanbul ignore end*/ + )(callback, { + ignoreWhitespace: true + }); + return lineDiff.diff(oldStr, newStr, options); } - /** - * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to - * makeInstance - * @param options - * @return {outdent} - */ +}); +/*istanbul ignore start*/ +var sentence = createCommonjsModule(function (module, exports) { - function createInstance(options) { - /** Cache of pre-processed template literal arrays */ - var arrayAutoIndentCache = createWeakMap(); - /** - * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent, - * before interpolated values are injected. - */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffSentences = diffSentences; + exports.sentenceDiff = void 0; + /*istanbul ignore end*/ - var arrayFirstInterpSetsIndentCache = createWeakMap(); + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ - function outdent(stringsOrOptions) { - var values = []; - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var sentenceDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.sentenceDiff = sentenceDiff; + /*istanbul ignore end*/ + + sentenceDiff.tokenize = function (value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); + }; + + function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); + } +}); + +/*istanbul ignore start*/ +var css = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffCss = diffCss; + exports.cssDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var cssDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.cssDiff = cssDiff; + /*istanbul ignore end*/ + + cssDiff.tokenize = function (value) { + return value.split(/([{}:;,]|\s+)/); + }; + + function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); + } +}); + +var json = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffJson = diffJson; + exports.canonicalize = canonicalize; + exports.jsonDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + /*istanbul ignore end*/ + + + var objectPrototypeToString = Object.prototype.toString; + var jsonDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a + // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: + + /*istanbul ignore start*/ + + exports.jsonDiff = jsonDiff; + /*istanbul ignore end*/ + + jsonDiff.useLongestToken = true; + jsonDiff.tokenize = + /*istanbul ignore start*/ + line + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + lineDiff + /*istanbul ignore end*/ + .tokenize; + + jsonDiff.castInput = function (value) { + /*istanbul ignore start*/ + var _this$options = + /*istanbul ignore end*/ + this.options, + undefinedReplacement = _this$options.undefinedReplacement, + _this$options$stringi = _this$options.stringifyReplacer, + stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) + /*istanbul ignore start*/ + { + return ( + /*istanbul ignore end*/ + typeof v === 'undefined' ? undefinedReplacement : v + ); + } : _this$options$stringi; + return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); + }; + + jsonDiff.equals = function (left, right) { + return ( + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) + ); + }; + + function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); + } // This function handles the presence of circular references by bailing out when encountering an + // object that is already on the "stack" of items being processed. Accepts an optional replacer + + + function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + + if (replacer) { + obj = replacer(key, obj); + } + + var i; + + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; } - /* tslint:enable:no-shadowed-variable */ + } + var canonicalizedObj; - if (isTemplateStringsArray(stringsOrOptions)) { - var strings = stringsOrOptions; // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace? + if ('[object Array]' === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); - var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); // Perform outdentation + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); + } - var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache; - var renderedArray = cache.get(strings); + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } - if (!renderedArray) { - renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options); - cache.set(strings, renderedArray); - } - /** If no interpolated values, skip concatenation step */ + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if ( + /*istanbul ignore start*/ + _typeof( + /*istanbul ignore end*/ + obj) === 'object' && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); - if (values.length === 0) { - return renderedArray[0]; + var sortedKeys = [], + _key; + + for (_key in obj) { + /* istanbul ignore else */ + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); } - /** Concatenate string literals with interpolated values */ + } + sortedKeys.sort(); - var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values); - return rendered; - } else { - // Create and return a new instance of outdent with the given options - return createInstance(extend(extend({}, options), stringsOrOptions || {})); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); } + + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; } - var fullOutdent = extend(outdent, { - string: function (str) { - return _outdentArray([str], false, options)[0]; - } - }); - return fullOutdent; + return canonicalizedObj; } +}); - var defaultOutdent = createInstance({ - trimLeadingNewline: true, - trimTrailingNewline: true +/*istanbul ignore start*/ +var array$1 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true }); - exports.outdent = defaultOutdent; // Named exports. Simple and preferred. - // import outdent from 'outdent'; + exports.diffArrays = diffArrays; + exports.arrayDiff = void 0; + /*istanbul ignore end*/ - exports.default = defaultOutdent; + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ - { - // In webpack harmony-modules environments, module.exports is read-only, - // so we fail gracefully. - try { - module.exports = defaultOutdent; - Object.defineProperty(defaultOutdent, '__esModule', { - value: true - }); - defaultOutdent.default = defaultOutdent; - defaultOutdent.outdent = defaultOutdent; - } catch (e) {} + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var arrayDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.arrayDiff = arrayDiff; + /*istanbul ignore end*/ + + arrayDiff.tokenize = function (value) { + return value.slice(); + }; + + arrayDiff.join = arrayDiff.removeEmpty = function (value) { + return value; + }; + + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); } }); -const { - outdent -} = lib; -const { - coreOptions -} = prettierInternal; -const categoryOrder = [coreOptions.CATEGORY_OUTPUT, coreOptions.CATEGORY_FORMAT, coreOptions.CATEGORY_CONFIG, coreOptions.CATEGORY_EDITOR, coreOptions.CATEGORY_OTHER]; -/** - * { - * [optionName]: { - * // The type of the option. For 'choice', see also `choices` below. - * // When passing a type other than the ones listed below, the option is - * // treated as taking any string as argument, and `--option <${type}>` will - * // be displayed in --help. - * type: "boolean" | "choice" | "int" | string; - * - * // Default value to be passed to the minimist option `default`. - * default?: any; - * - * // Alias name to be passed to the minimist option `alias`. - * alias?: string; - * - * // For grouping options by category in --help. - * category?: string; - * - * // Description to be displayed in --help. If omitted, the option won't be - * // shown at all in --help (but see also `oppositeDescription` below). - * description?: string; - * - * // Description for `--no-${name}` to be displayed in --help. If omitted, - * // `--no-${name}` won't be shown. - * oppositeDescription?: string; - * - * // Indicate if this option is simply passed to the API. - * // true: use camelified name as the API option name. - * // string: use this value as the API option name. - * forwardToApi?: boolean | string; - * - * // Indicate that a CLI flag should be an array when forwarded to the API. - * array?: boolean; - * - * // Specify available choices for validation. They will also be displayed - * // in --help as . - * // Use an object instead of a string if a choice is deprecated and should - * // be treated as `redirect` instead, or if you'd like to add description for - * // the choice. - * choices?: Array< - * | string - * | { value: string, description?: string, deprecated?: boolean, redirect?: string } - * >; - * - * // If the option has a value that is an exception to the regular value - * // constraints, indicate that value here (or use a function for more - * // flexibility). - * exception?: ((value: any) => boolean); - * - * // Indicate that the option is deprecated. Use a string to add an extra - * // message to --help for the option, for example to suggest a replacement - * // option. - * deprecated?: true | string; - * } - * } - * - * Note: The options below are sorted alphabetically. - */ - -const options = { - check: { - type: "boolean", - category: coreOptions.CATEGORY_OUTPUT, - alias: "c", - description: outdent` - Check if the given files are formatted, print a human-friendly summary - message and paths to unformatted files (see also --list-different). - ` - }, - color: { - // The supports-color package (a sub sub dependency) looks directly at - // `process.argv` for `--no-color` and such-like options. The reason it is - // listed here is to avoid "Ignored unknown option: --no-color" warnings. - // See https://github.com/chalk/supports-color/#info for more information. - type: "boolean", - default: true, - description: "Colorize error messages.", - oppositeDescription: "Do not colorize error messages." - }, - config: { - type: "path", - category: coreOptions.CATEGORY_CONFIG, - description: "Path to a Prettier configuration file (.prettierrc, package.json, prettier.config.js).", - oppositeDescription: "Do not look for a configuration file.", - exception: value => value === false - }, - "config-precedence": { - type: "choice", - category: coreOptions.CATEGORY_CONFIG, - default: "cli-override", - choices: [{ - value: "cli-override", - description: "CLI options take precedence over config file" - }, { - value: "file-override", - description: "Config file take precedence over CLI options" - }, { - value: "prefer-file", - description: outdent` - If a config file is found will evaluate it and ignore other CLI options. - If no config file is found CLI options will evaluate as normal. - ` - }], - description: "Define in which order config files and CLI options should be evaluated." - }, - "debug-benchmark": { - // Run the formatting benchmarks. Requires 'benchmark' module to be installed. - type: "boolean" - }, - "debug-check": { - // Run the formatting once again on the formatted output, throw if different. - type: "boolean" - }, - "debug-print-doc": { - type: "boolean" - }, - "debug-repeat": { - // Repeat the formatting a few times and measure the average duration. - type: "int", - default: 0 - }, - editorconfig: { - type: "boolean", - category: coreOptions.CATEGORY_CONFIG, - description: "Take .editorconfig into account when parsing configuration.", - oppositeDescription: "Don't take .editorconfig into account when parsing configuration.", - default: true - }, - "find-config-path": { - type: "path", - category: coreOptions.CATEGORY_CONFIG, - description: "Find and print the path to a configuration file for the given input file." - }, - "file-info": { - type: "path", - description: outdent` - Extract the following info (as JSON) for a given file path. Reported fields: - * ignored (boolean) - true if file path is filtered by --ignore-path - * inferredParser (string | null) - name of parser inferred from file path - ` - }, - help: { - type: "flag", - alias: "h", - description: outdent` - Show CLI usage, or details about the given flag. - Example: --help write - `, - exception: value => value === "" - }, - "ignore-path": { - type: "path", - category: coreOptions.CATEGORY_CONFIG, - default: ".prettierignore", - description: "Path to a file with patterns describing files to ignore." - }, - "ignore-unknown": { - type: "boolean", - alias: "u", - description: "Ignore unknown files." - }, - "list-different": { - type: "boolean", - category: coreOptions.CATEGORY_OUTPUT, - alias: "l", - description: "Print the names of files that are different from Prettier's formatting (see also --check)." - }, - loglevel: { - type: "choice", - description: "What level of logs to report.", - default: "log", - choices: ["silent", "error", "warn", "log", "debug"] - }, - "support-info": { - type: "boolean", - description: "Print support information as JSON." - }, - version: { - type: "boolean", - alias: "v", - description: "Print Prettier version." - }, - "with-node-modules": { - type: "boolean", - category: coreOptions.CATEGORY_CONFIG, - description: "Process files inside 'node_modules' directory." - }, - write: { - type: "boolean", - alias: "w", - category: coreOptions.CATEGORY_OUTPUT, - description: "Edit files in-place. (Beware!)" - } -}; -const usageSummary = outdent` - Usage: prettier [options] [file/dir/glob ...] +/*istanbul ignore start*/ - By default, output is written to stdout. - Stdin is read if it is piped to Prettier and no files are given. -`; -var constant$1 = { - categoryOrder, - options, - usageSummary -}; +var parsePatch_1 = parsePatch; +/*istanbul ignore end*/ -const { - isCI -} = thirdParty; // Some CI pipelines incorrectly report process.stdout.isTTY status, -// which causes unwanted lines in the output. An additional check for isCI() helps. -// See https://github.com/prettier/prettier/issues/5801 +function parsePatch(uniDiff) { + /*istanbul ignore start*/ + var + /*istanbul ignore end*/ + options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], + list = [], + i = 0; -var isTty = function isTTY() { - return process.stdout.isTTY && !isCI(); -}; + function parseIndex() { + var index = {}; + list.push(index); // Parse diff metadata -function Diff() {} + while (i < diffstr.length) { + var line = diffstr[i]; // File header found, end parsing diff metadata -Diff.prototype = { - diff: function diff(oldString, newString) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var callback = options.callback; + if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { + break; + } // Diff index - if (typeof options === 'function') { - callback = options; - options = {}; - } - this.options = options; - var self = this; + var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); - function done(value) { - if (callback) { - setTimeout(function () { - callback(undefined, value); - }, 0); - return true; - } else { - return value; + if (header) { + index.index = header[1]; } - } // Allow subclasses to massage the input prior to running - - - oldString = this.castInput(oldString); - newString = this.castInput(newString); - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - var newLen = newString.length, - oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ - newPos: -1, - components: [] - }]; // Seed editLength = 0, i.e. the content starts with the same values - - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - // Identity per the equality and tokenizer - return done([{ - value: this.join(newString), - count: newString.length - }]); - } // Main worker method. checks all permutations of a given edit length for acceptance. - - - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = void 0; - - var addPath = bestPath[diagonalPath - 1], - removePath = bestPath[diagonalPath + 1], - _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - - if (addPath) { - // No one else is going to attempt to use this value, clear it - bestPath[diagonalPath - 1] = undefined; - } - - var canAdd = addPath && addPath.newPos + 1 < newLen, - canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - if (!canAdd && !canRemove) { - // If this path is a terminal then prune - bestPath[diagonalPath] = undefined; - continue; - } // Select the diagonal that we want to branch from. We select the prior - // path whose position in the new string is the farthest from the origin - // and does not pass the bounds of the diff graph + i++; + } // Parse file headers if they are defined. Unified diff requires them, but + // there's no technical issues to have an isolated hunk without file header - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self.pushComponent(basePath.components, undefined, true); - } else { - basePath = addPath; // No need to clone, we've pulled it from the list + parseFileHeader(index); + parseFileHeader(index); // Parse hunks - basePath.newPos++; - self.pushComponent(basePath.components, true, undefined); - } + index.hunks = []; - _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done + while (i < diffstr.length) { + var _line = diffstr[i]; - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); - } else { - // Otherwise track this path as a potential candidate and continue. - bestPath[diagonalPath] = basePath; - } + if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { + break; + } else if (/^@@/.test(_line)) { + index.hunks.push(parseHunk()); + } else if (_line && options.strict) { + // Ignore unexpected content unless in strict mode + throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); + } else { + i++; } + } + } // Parses the --- and +++ headers, if none are found, no lines + // are consumed. - editLength++; - } // Performs the length of edit iteration. Is a bit fugly as this has to support the - // sync and async mode which is never fun. Loops over execEditLength until a value - // is produced. + function parseFileHeader(index) { + var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); - if (callback) { - (function exec() { - setTimeout(function () { - // This should not happen, but we want to be safe. + if (fileHeader) { + var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; + var data = fileHeader[2].split('\t', 2); + var fileName = data[0].replace(/\\\\/g, '\\'); - /* istanbul ignore next */ - if (editLength > maxEditLength) { - return callback(); - } - - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - - if (ret) { - return ret; - } - } - } - }, - pushComponent: function pushComponent(components, added, removed) { - var last = components[components.length - 1]; - - if (last && last.added === added && last.removed === removed) { - // We need to clone here as the component clone operation is just - // as shallow array clone - components[components.length - 1] = { - count: last.count + 1, - added: added, - removed: removed - }; - } else { - components.push({ - count: 1, - added: added, - removed: removed - }); - } - }, - extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, - oldLen = oldString.length, - newPos = basePath.newPos, - oldPos = newPos - diagonalPath, - commonCount = 0; - - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - - if (commonCount) { - basePath.components.push({ - count: commonCount - }); - } - - basePath.newPos = newPos; - return oldPos; - }, - equals: function equals(left, right) { - if (this.options.comparator) { - return this.options.comparator(left, right); - } else { - return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); - } - }, - removeEmpty: function removeEmpty(array) { - var ret = []; - - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); - } - } - - return ret; - }, - castInput: function castInput(value) { - return value; - }, - tokenize: function tokenize(value) { - return value.split(''); - }, - join: function join(chars) { - return chars.join(''); - } -}; - -function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, - componentLen = components.length, - newPos = 0, - oldPos = 0; - - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function (value, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value.length ? oldValue : value; - }); - component.value = diff.join(value); - } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); - } - - newPos += component.count; // Common case - - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; // Reverse add and remove so removes are output first to match common convention - // The diffing algorithm is tied to add then remove output and this is the simplest - // route to get the desired output with minimal overhead. - - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } // Special case handle for when one terminal is ignored (i.e. whitespace). - // For this case we merge the terminal into the prior string and drop the change. - // This is only available for string mode. - - - var lastComponent = components[componentLen - 1]; - - if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); - } - - return components; -} - -function clonePath(path) { - return { - newPos: path.newPos, - components: path.components.slice(0) - }; -} - -var characterDiff = new Diff(); - -function diffChars(oldStr, newStr, options) { - return characterDiff.diff(oldStr, newStr, options); -} - -function generateOptions(options, defaults) { - if (typeof options === 'function') { - defaults.callback = options; - } else if (options) { - for (var name in options) { - /* istanbul ignore else */ - if (options.hasOwnProperty(name)) { - defaults[name] = options[name]; - } - } - } - - return defaults; -} // -// Ranges and exceptions: -// Latin-1 Supplement, 0080–00FF -// - U+00D7 × Multiplication sign -// - U+00F7 ÷ Division sign -// Latin Extended-A, 0100–017F -// Latin Extended-B, 0180–024F -// IPA Extensions, 0250–02AF -// Spacing Modifier Letters, 02B0–02FF -// - U+02C7 ˇ ˇ Caron -// - U+02D8 ˘ ˘ Breve -// - U+02D9 ˙ ˙ Dot Above -// - U+02DA ˚ ˚ Ring Above -// - U+02DB ˛ ˛ Ogonek -// - U+02DC ˜ ˜ Small Tilde -// - U+02DD ˝ ˝ Double Acute Accent -// Latin Extended Additional, 1E00–1EFF - - -var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; -var reWhitespace = /\S/; -var wordDiff = new Diff(); - -wordDiff.equals = function (left, right) { - if (this.options.ignoreCase) { - left = left.toLowerCase(); - right = right.toLowerCase(); - } - - return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); -}; - -wordDiff.tokenize = function (value) { - var tokens = value.split(/(\s+|[()[\]{}'"]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. - - for (var i = 0; i < tokens.length - 1; i++) { - // If we have an empty string in the next field and we have only word chars before and after, merge - if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { - tokens[i] += tokens[i + 2]; - tokens.splice(i + 1, 2); - i--; - } - } - - return tokens; -}; - -function diffWords(oldStr, newStr, options) { - options = generateOptions(options, { - ignoreWhitespace: true - }); - return wordDiff.diff(oldStr, newStr, options); -} - -function diffWordsWithSpace(oldStr, newStr, options) { - return wordDiff.diff(oldStr, newStr, options); -} - -var lineDiff = new Diff(); - -lineDiff.tokenize = function (value) { - var retLines = [], - linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line - - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } // Merge the content and line separators into single tokens - - - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; - - if (i % 2 && !this.options.newlineIsToken) { - retLines[retLines.length - 1] += line; - } else { - if (this.options.ignoreWhitespace) { - line = line.trim(); - } - - retLines.push(line); - } - } - - return retLines; -}; - -function diffLines(oldStr, newStr, callback) { - return lineDiff.diff(oldStr, newStr, callback); -} - -function diffTrimmedLines(oldStr, newStr, callback) { - var options = generateOptions(callback, { - ignoreWhitespace: true - }); - return lineDiff.diff(oldStr, newStr, options); -} - -var sentenceDiff = new Diff(); - -sentenceDiff.tokenize = function (value) { - return value.split(/(\S.+?[.!?])(?=\s+|$)/); -}; - -function diffSentences(oldStr, newStr, callback) { - return sentenceDiff.diff(oldStr, newStr, callback); -} - -var cssDiff = new Diff(); - -cssDiff.tokenize = function (value) { - return value.split(/([{}:;,]|\s+)/); -}; - -function diffCss(oldStr, newStr, callback) { - return cssDiff.diff(oldStr, newStr, callback); -} - -function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} - -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); -} - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } -} - -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} - -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} - -var objectPrototypeToString = Object.prototype.toString; -var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a -// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: - -jsonDiff.useLongestToken = true; -jsonDiff.tokenize = lineDiff.tokenize; - -jsonDiff.castInput = function (value) { - var _this$options = this.options, - undefinedReplacement = _this$options.undefinedReplacement, - _this$options$stringi = _this$options.stringifyReplacer, - stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) { - return typeof v === 'undefined' ? undefinedReplacement : v; - } : _this$options$stringi; - return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); -}; - -jsonDiff.equals = function (left, right) { - return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')); -}; - -function diffJson(oldObj, newObj, options) { - return jsonDiff.diff(oldObj, newObj, options); -} // This function handles the presence of circular references by bailing out when encountering an -// object that is already on the "stack" of items being processed. Accepts an optional replacer - - -function canonicalize(obj, stack, replacementStack, replacer, key) { - stack = stack || []; - replacementStack = replacementStack || []; - - if (replacer) { - obj = replacer(key, obj); - } - - var i; - - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; - } - } - - var canonicalizedObj; - - if ('[object Array]' === objectPrototypeToString.call(obj)) { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); - - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); - } - - stack.pop(); - replacementStack.pop(); - return canonicalizedObj; - } - - if (obj && obj.toJSON) { - obj = obj.toJSON(); - } - - if (_typeof(obj) === 'object' && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); - - var sortedKeys = [], - _key; - - for (_key in obj) { - /* istanbul ignore else */ - if (obj.hasOwnProperty(_key)) { - sortedKeys.push(_key); - } - } - - sortedKeys.sort(); - - for (i = 0; i < sortedKeys.length; i += 1) { - _key = sortedKeys[i]; - canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); - } - - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; - } - - return canonicalizedObj; -} - -var arrayDiff = new Diff(); - -arrayDiff.tokenize = function (value) { - return value.slice(); -}; - -arrayDiff.join = arrayDiff.removeEmpty = function (value) { - return value; -}; - -function diffArrays(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); -} - -function parsePatch(uniDiff) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], - list = [], - i = 0; - - function parseIndex() { - var index = {}; - list.push(index); // Parse diff metadata - - while (i < diffstr.length) { - var line = diffstr[i]; // File header found, end parsing diff metadata - - if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { - break; - } // Diff index - - - var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); - - if (header) { - index.index = header[1]; - } - - i++; - } // Parse file headers if they are defined. Unified diff requires them, but - // there's no technical issues to have an isolated hunk without file header - - - parseFileHeader(index); - parseFileHeader(index); // Parse hunks - - index.hunks = []; - - while (i < diffstr.length) { - var _line = diffstr[i]; - - if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { - break; - } else if (/^@@/.test(_line)) { - index.hunks.push(parseHunk()); - } else if (_line && options.strict) { - // Ignore unexpected content unless in strict mode - throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); - } else { - i++; - } - } - } // Parses the --- and +++ headers, if none are found, no lines - // are consumed. - - - function parseFileHeader(index) { - var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); - - if (fileHeader) { - var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; - var data = fileHeader[2].split('\t', 2); - var fileName = data[0].replace(/\\\\/g, '\\'); - - if (/^".*"$/.test(fileName)) { - fileName = fileName.substr(1, fileName.length - 2); - } + if (/^".*"$/.test(fileName)) { + fileName = fileName.substr(1, fileName.length - 2); + } index[keyPrefix + 'FileName'] = fileName; index[keyPrefix + 'Header'] = (data[1] || '').trim(); @@ -14664,12 +15058,23 @@ function parsePatch(uniDiff) { chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); var hunk = { oldStart: +chunkHeader[1], - oldLines: +chunkHeader[2] || 1, + oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2], newStart: +chunkHeader[3], - newLines: +chunkHeader[4] || 1, + newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4], lines: [], linedelimiters: [] - }; + }; // Unified Diff Format quirk: If the chunk size is 0, + // the first number is one lower than one would expect. + // https://www.artima.com/weblogs/viewpost.jsp?thread=164293 + + if (hunk.oldLines === 0) { + hunk.oldStart += 1; + } + + if (hunk.newLines === 0) { + hunk.newStart += 1; + } + var addCount = 0, removeCount = 0; @@ -14727,57 +15132,113 @@ function parsePatch(uniDiff) { } return list; -} // Iterator that traverses in the range of [min, max], stepping -// by distance from a given start position. I.e. for [0, 4], with -// start of 2, this will iterate 2, 3, 1, 4, 0. - - -function distanceIterator(start, minLine, maxLine) { - var wantForward = true, - backwardExhausted = false, - forwardExhausted = false, - localOffset = 1; - return function iterator() { - if (wantForward && !forwardExhausted) { - if (backwardExhausted) { - localOffset++; - } else { - wantForward = false; - } // Check if trying to fit beyond text length, and if not, check it fits - // after offset location (or desired location on first iteration) +} +var parse = /*#__PURE__*/Object.defineProperty({ + parsePatch: parsePatch_1 +}, '__esModule', { + value: true +}); - if (start + localOffset <= maxLine) { - return localOffset; - } +/*istanbul ignore start*/ +var distanceIterator = createCommonjsModule(function (module, exports) { - forwardExhausted = true; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = _default; + /*istanbul ignore end*/ + // Iterator that traverses in the range of [min, max], stepping + // by distance from a given start position. I.e. for [0, 4], with + // start of 2, this will iterate 2, 3, 1, 4, 0. + + function + /*istanbul ignore start*/ + _default + /*istanbul ignore end*/ + (start, minLine, maxLine) { + var wantForward = true, + backwardExhausted = false, + forwardExhausted = false, + localOffset = 1; + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } // Check if trying to fit beyond text length, and if not, check it fits + // after offset location (or desired location on first iteration) - if (!backwardExhausted) { - if (!forwardExhausted) { - wantForward = true; - } // Check if trying to fit before text beginning, and if not, check it fits - // before offset location + if (start + localOffset <= maxLine) { + return localOffset; + } - if (minLine <= start - localOffset) { - return -localOffset++; + forwardExhausted = true; } - backwardExhausted = true; - return iterator(); - } // We tried to fit hunk before text beginning and beyond text length, then - // hunk can't fit on the text. Return undefined + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } // Check if trying to fit before text beginning, and if not, check it fits + // before offset location + + if (minLine <= start - localOffset) { + return -localOffset++; + } + + backwardExhausted = true; + return iterator(); + } // We tried to fit hunk before text beginning and beyond text length, then + // hunk can't fit on the text. Return undefined + + }; + } +}); + +/*istanbul ignore start*/ + +var applyPatch_1 = applyPatch; +var applyPatches_1 = applyPatches; +/*istanbul ignore end*/ + +var +/*istanbul ignore start*/ +_distanceIterator = _interopRequireDefault(distanceIterator) +/*istanbul ignore end*/ +; +/*istanbul ignore start*/ + + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj }; } +/*istanbul ignore end*/ + function applyPatch(source, uniDiff) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + /*istanbul ignore start*/ + var + /*istanbul ignore end*/ + options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (typeof uniDiff === 'string') { - uniDiff = parsePatch(uniDiff); + uniDiff = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, parse + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + parsePatch + /*istanbul ignore end*/ + )(uniDiff); } if (Array.isArray(uniDiff)) { @@ -14792,8 +15253,13 @@ function applyPatch(source, uniDiff) { var lines = source.split(/\r\n|[\n\v\f\r\x85]/), delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], hunks = uniDiff.hunks, - compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) { - return line === patchContent; + compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) + /*istanbul ignore start*/ + { + return ( + /*istanbul ignore end*/ + line === patchContent + ); }, errorCount = 0, fuzzFactor = options.fuzzFactor || 0, @@ -14835,7 +15301,18 @@ function applyPatch(source, uniDiff) { maxLine = lines.length - hunk.oldLines, localOffset = 0, toPos = offset + hunk.oldStart - 1; - var iterator = distanceIterator(toPos, minLine, maxLine); + var iterator = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, _distanceIterator + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ])(toPos, minLine, maxLine); for (; localOffset !== undefined; localOffset = iterator()) { if (hunkFits(hunk, toPos + localOffset)) { @@ -14862,11 +15339,6 @@ function applyPatch(source, uniDiff) { diffOffset += _hunk.newLines - _hunk.oldLines; - if (_toPos < 0) { - // Creating a new file - _toPos = 0; - } - for (var j = 0; j < _hunk.lines.length; j++) { var line = _hunk.lines[j], operation = line.length > 0 ? line[0] : ' ', @@ -14916,7 +15388,18 @@ function applyPatch(source, uniDiff) { function applyPatches(uniDiff, options) { if (typeof uniDiff === 'string') { - uniDiff = parsePatch(uniDiff); + uniDiff = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, parse + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + parsePatch + /*istanbul ignore end*/ + )(uniDiff); } var currentIndex = 0; @@ -14947,6 +15430,60 @@ function applyPatches(uniDiff, options) { processIndex(); } +var apply$1 = /*#__PURE__*/Object.defineProperty({ + applyPatch: applyPatch_1, + applyPatches: applyPatches_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var structuredPatch_1 = structuredPatch; +var formatPatch_1 = formatPatch; +var createTwoFilesPatch_1 = createTwoFilesPatch; +var createPatch_1 = createPatch; +/*istanbul ignore end*/ + +/*istanbul ignore start*/ + +function _toConsumableArray$1(arr) { + return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); +} + +function _nonIterableSpread$1() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _unsupportedIterableToArray$1(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); +} + +function _iterableToArray$1(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _arrayWithoutHoles$1(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); +} + +function _arrayLikeToArray$1(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} +/*istanbul ignore end*/ + + function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { if (!options) { options = {}; @@ -14956,7 +15493,18 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne options.context = 4; } - var diff = diffLines(oldStr, newStr, options); + var diff = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, line + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + diffLines + /*istanbul ignore end*/ + )(oldStr, newStr, options); diff.push({ value: '', lines: [] @@ -14974,14 +15522,20 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne curRange = [], oldLine = 1, newLine = 1; + /*istanbul ignore start*/ - var _loop = function _loop(i) { + var _loop = function _loop( + /*istanbul ignore end*/ + i) { var current = diff[i], lines = current.lines || current.value.replace(/\n$/, '').split('\n'); current.lines = lines; if (current.added || current.removed) { - var _curRange; // If we have previous context, start with that + /*istanbul ignore start*/ + var _curRange; + /*istanbul ignore end*/ + // If we have previous context, start with that if (!oldRangeStart) { @@ -14996,8 +15550,24 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne } } // Output our changes + /*istanbul ignore start*/ - (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) { + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + + (_curRange = + /*istanbul ignore end*/ + curRange).push.apply( + /*istanbul ignore start*/ + _curRange + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray$1( + /*istanbul ignore end*/ + lines.map(function (entry) { return (current.added ? '+' : '-') + entry; }))); // Track the updated file position @@ -15012,17 +15582,54 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne if (oldRangeStart) { // Close out any changes that have been output (or join overlapping) if (lines.length <= options.context * 2 && i < diff.length - 2) { - var _curRange2; // Overlapping + /*istanbul ignore start*/ + var _curRange2; + /*istanbul ignore end*/ + // Overlapping + + /*istanbul ignore start*/ + /*istanbul ignore end*/ - (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + /*istanbul ignore start*/ + + + (_curRange2 = + /*istanbul ignore end*/ + curRange).push.apply( + /*istanbul ignore start*/ + _curRange2 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray$1( + /*istanbul ignore end*/ + contextLines(lines))); } else { - var _curRange3; // end the range and output + /*istanbul ignore start*/ + var _curRange3; + /*istanbul ignore end*/ + // end the range and output var contextSize = Math.min(lines.length, options.context); + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + + /*istanbul ignore start*/ - (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + (_curRange3 = + /*istanbul ignore end*/ + curRange).push.apply( + /*istanbul ignore start*/ + _curRange3 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray$1( + /*istanbul ignore end*/ + contextLines(lines.slice(0, contextSize)))); var hunk = { oldStart: oldRangeStart, @@ -15038,8 +15645,9 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne var newEOFNewline = /\n$/.test(newStr); var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; - if (!oldEOFNewline && noNlBeforeAdds) { + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { // special case: old has no eol and no trailing context; no-nl can end up before adds + // however, if the old file is empty, do not output the no-nl line curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); } @@ -15061,7 +15669,10 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne }; for (var i = 0; i < diff.length; i++) { - _loop(i); + /*istanbul ignore start*/ + _loop( + /*istanbul ignore end*/ + i); } return { @@ -15073,12 +15684,11 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne }; } -function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); +function formatPatch(diff) { var ret = []; - if (oldFileName == newFileName) { - ret.push('Index: ' + oldFileName); + if (diff.oldFileName == diff.newFileName) { + ret.push('Index: ' + diff.oldFileName); } ret.push('==================================================================='); @@ -15086,7 +15696,18 @@ function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); for (var i = 0; i < diff.hunks.length; i++) { - var hunk = diff.hunks[i]; + var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0, + // the first number is one lower than one would expect. + // https://www.artima.com/weblogs/viewpost.jsp?thread=164293 + + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); ret.push.apply(ret, hunk.lines); } @@ -15094,10 +15715,29 @@ function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader return ret.join('\n') + '\n'; } +function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); +} + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); } +var create = /*#__PURE__*/Object.defineProperty({ + structuredPatch: structuredPatch_1, + formatPatch: formatPatch_1, + createTwoFilesPatch: createTwoFilesPatch_1, + createPatch: createPatch_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var arrayEqual_1 = arrayEqual; +var arrayStartsWith_1 = arrayStartsWith; +/*istanbul ignore end*/ + function arrayEqual(a, b) { if (a.length !== b.length) { return false; @@ -15120,8 +15760,63 @@ function arrayStartsWith(array, start) { return true; } +var array = /*#__PURE__*/Object.defineProperty({ + arrayEqual: arrayEqual_1, + arrayStartsWith: arrayStartsWith_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var calcLineCount_1 = calcLineCount; +var merge_2 = merge; +/*istanbul ignore end*/ + +/*istanbul ignore start*/ + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} +/*istanbul ignore end*/ + + function calcLineCount(hunk) { - var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines), + /*istanbul ignore start*/ + var _calcOldNewLineCount = + /*istanbul ignore end*/ + calcOldNewLineCount(hunk.lines), oldLines = _calcOldNewLineCount.oldLines, newLines = _calcOldNewLineCount.newLines; @@ -15217,14 +15912,38 @@ function merge(mine, theirs, base) { function loadPatch(param, base) { if (typeof param === 'string') { if (/^@@/m.test(param) || /^Index:/m.test(param)) { - return parsePatch(param)[0]; + return ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, parse + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + parsePatch + /*istanbul ignore end*/ + )(param)[0] + ); } if (!base) { throw new Error('Must provide a base reference or pass in a patch'); } - return structuredPatch(undefined, undefined, base, param); + return ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, create + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + structuredPatch + /*istanbul ignore end*/ + )(undefined, undefined, base, param) + ); } return param; @@ -15285,15 +16004,53 @@ function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { // Both modified ... mutualChange(hunk, mine, their); } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { - var _hunk$lines; // Mine inserted + /*istanbul ignore start*/ + var _hunk$lines; + /*istanbul ignore end*/ + // Mine inserted + /*istanbul ignore start*/ - (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine))); + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + + (_hunk$lines = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + collectChange(mine))); } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { - var _hunk$lines2; // Theirs inserted + /*istanbul ignore start*/ + var _hunk$lines2; + /*istanbul ignore end*/ + // Theirs inserted + + /*istanbul ignore start*/ + /*istanbul ignore end*/ - (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their))); + /*istanbul ignore start*/ + + + (_hunk$lines2 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines2 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + collectChange(their))); } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { // Mine removed or edited removal(hunk, mine, their); @@ -15323,23 +16080,113 @@ function mutualChange(hunk, mine, their) { if (allRemoves(myChanges) && allRemoves(theirChanges)) { // Special case for remove changes that are supersets of one another - if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + if ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, array + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + arrayStartsWith + /*istanbul ignore end*/ + )(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + /*istanbul ignore start*/ var _hunk$lines3; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ - (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges)); + /*istanbul ignore start*/ + + + (_hunk$lines3 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines3 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + myChanges)); return; - } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + } else if ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, array + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + arrayStartsWith + /*istanbul ignore end*/ + )(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + /*istanbul ignore start*/ var _hunk$lines4; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ - (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges)); + /*istanbul ignore start*/ + + + (_hunk$lines4 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines4 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + theirChanges)); return; } - } else if (arrayEqual(myChanges, theirChanges)) { + } else if ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, array + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + arrayEqual + /*istanbul ignore end*/ + )(myChanges, theirChanges)) { + /*istanbul ignore start*/ var _hunk$lines5; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ - (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges)); + /*istanbul ignore start*/ + + + (_hunk$lines5 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines5 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + myChanges)); return; } @@ -15352,9 +16199,28 @@ function removal(hunk, mine, their, swap) { theirChanges = collectContext(their, myChanges); if (theirChanges.merged) { + /*istanbul ignore start*/ var _hunk$lines6; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ - (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged)); + /*istanbul ignore start*/ + + + (_hunk$lines6 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines6 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + theirChanges.merged)); } else { conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); } @@ -15517,8 +16383,20 @@ function calcOldNewLineCount(lines) { oldLines: oldLines, newLines: newLines }; -} // See: http://code.google.com/p/google-diff-match-patch/wiki/API +} + +var merge_1 = /*#__PURE__*/Object.defineProperty({ + calcLineCount: calcLineCount_1, + merge: merge_2 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ +var convertChangesToDMP_1 = convertChangesToDMP; +/*istanbul ignore end*/ +// See: http://code.google.com/p/google-diff-match-patch/wiki/API function convertChangesToDMP(changes) { var ret = [], @@ -15542,6 +16420,17 @@ function convertChangesToDMP(changes) { return ret; } +var dmp = /*#__PURE__*/Object.defineProperty({ + convertChangesToDMP: convertChangesToDMP_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var convertChangesToXML_1 = convertChangesToXML; +/*istanbul ignore end*/ + function convertChangesToXML(changes) { var ret = []; @@ -15575,88 +16464,190 @@ function escapeHTML(s) { return n; } -var index_es6 = /*#__PURE__*/Object.freeze({ - __proto__: null, - Diff: Diff, - diffChars: diffChars, - diffWords: diffWords, - diffWordsWithSpace: diffWordsWithSpace, - diffLines: diffLines, - diffTrimmedLines: diffTrimmedLines, - diffSentences: diffSentences, - diffCss: diffCss, - diffJson: diffJson, - diffArrays: diffArrays, - structuredPatch: structuredPatch, - createTwoFilesPatch: createTwoFilesPatch, - createPatch: createPatch, - applyPatch: applyPatch, - applyPatches: applyPatches, - parsePatch: parsePatch, - merge: merge, - convertChangesToDMP: convertChangesToDMP, - convertChangesToXML: convertChangesToXML, - canonicalize: canonicalize +var xml = /*#__PURE__*/Object.defineProperty({ + convertChangesToXML: convertChangesToXML_1 +}, '__esModule', { + value: true }); -var require$$3 = getCjsExportFromNamespace(index_es6); +/*istanbul ignore start*/ +var lib$1 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "Diff", { + enumerable: true, + get: function get() { + return _base["default"]; + } + }); + Object.defineProperty(exports, "diffChars", { + enumerable: true, + get: function get() { + return character.diffChars; + } + }); + Object.defineProperty(exports, "diffWords", { + enumerable: true, + get: function get() { + return word.diffWords; + } + }); + Object.defineProperty(exports, "diffWordsWithSpace", { + enumerable: true, + get: function get() { + return word.diffWordsWithSpace; + } + }); + Object.defineProperty(exports, "diffLines", { + enumerable: true, + get: function get() { + return line.diffLines; + } + }); + Object.defineProperty(exports, "diffTrimmedLines", { + enumerable: true, + get: function get() { + return line.diffTrimmedLines; + } + }); + Object.defineProperty(exports, "diffSentences", { + enumerable: true, + get: function get() { + return sentence.diffSentences; + } + }); + Object.defineProperty(exports, "diffCss", { + enumerable: true, + get: function get() { + return css.diffCss; + } + }); + Object.defineProperty(exports, "diffJson", { + enumerable: true, + get: function get() { + return json.diffJson; + } + }); + Object.defineProperty(exports, "canonicalize", { + enumerable: true, + get: function get() { + return json.canonicalize; + } + }); + Object.defineProperty(exports, "diffArrays", { + enumerable: true, + get: function get() { + return array$1.diffArrays; + } + }); + Object.defineProperty(exports, "applyPatch", { + enumerable: true, + get: function get() { + return apply$1.applyPatch; + } + }); + Object.defineProperty(exports, "applyPatches", { + enumerable: true, + get: function get() { + return apply$1.applyPatches; + } + }); + Object.defineProperty(exports, "parsePatch", { + enumerable: true, + get: function get() { + return parse.parsePatch; + } + }); + Object.defineProperty(exports, "merge", { + enumerable: true, + get: function get() { + return merge_1.merge; + } + }); + Object.defineProperty(exports, "structuredPatch", { + enumerable: true, + get: function get() { + return create.structuredPatch; + } + }); + Object.defineProperty(exports, "createTwoFilesPatch", { + enumerable: true, + get: function get() { + return create.createTwoFilesPatch; + } + }); + Object.defineProperty(exports, "createPatch", { + enumerable: true, + get: function get() { + return create.createPatch; + } + }); + Object.defineProperty(exports, "convertChangesToDMP", { + enumerable: true, + get: function get() { + return dmp.convertChangesToDMP; + } + }); + Object.defineProperty(exports, "convertChangesToXML", { + enumerable: true, + get: function get() { + return xml.convertChangesToXML; + } + }); + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ -// eslint-disable-next-line no-restricted-modules + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + +}); const { - getStream -} = thirdParty; + promises: fs +} = fs__default['default']; // eslint-disable-next-line no-restricted-modules +// eslint-disable-next-line no-restricted-modules + +const { + getStdin +} = require$$1; const { createIgnorer, - errors, - coreOptions: coreOptions$1, - optionsModule, - optionsNormalizer, - utils: { - arrayify - } + errors } = prettierInternal; const { - expandPatterns: expandPatterns$1, - fixWindowsSlashes: fixWindowsSlashes$1 + expandPatterns, + fixWindowsSlashes } = expandPatterns_1; -const OPTION_USAGE_THRESHOLD = 25; -const CHOICE_USAGE_MARGIN = 3; -const CHOICE_USAGE_INDENTATION = 2; - -function getOptions(argv, detailedOptions) { - return fromPairs_1(detailedOptions.filter(({ - forwardToApi - }) => forwardToApi).map(({ - forwardToApi, - name - }) => [forwardToApi, argv[name]])); -} - -function cliifyOptions(object, apiDetailedOptionMap) { - return Object.keys(object || {}).reduce((output, key) => { - const apiOption = apiDetailedOptionMap[key]; - const cliKey = apiOption ? apiOption.name : key; - output[dashify(cliKey)] = object[key]; - return output; - }, {}); -} +const { + getOptionsForFile +} = option; function diff(a, b) { - return require$$3.createTwoFilesPatch("", "", a, b, "", "", { + return lib$1.createTwoFilesPatch("", "", a, b, "", "", { context: 2 }); } -function handleError(context, filename, error) { +function handleError(context, filename, error, printedFilename) { if (error instanceof errors.UndefinedParserError) { // Can't test on CI, `isTTY()` is always false, see ./is-tty.js /* istanbul ignore next */ - if ((context.argv.write || context.argv["ignore-unknown"]) && isTty()) { - readline__default['default'].clearLine(process.stdout, 0); - readline__default['default'].cursorTo(process.stdout, 0, null); + if ((context.argv.write || context.argv["ignore-unknown"]) && printedFilename) { + printedFilename.clear(); } if (context.argv["ignore-unknown"]) { @@ -15694,520 +16685,1924 @@ function handleError(context, filename, error) { // `invalid.js: Error: Some unexpected error\n[stack trace]` /* istanbul ignore next */ - context.logger.error(filename + ": " + (error.stack || error)); - } // Don't exit the process if one file failed + context.logger.error(filename + ": " + (error.stack || error)); + } // Don't exit the process if one file failed + + + process.exitCode = 2; +} + +function writeOutput(context, result, options) { + // Don't use `console.log` here since it adds an extra newline at the end. + process.stdout.write(context.argv["debug-check"] ? result.filepath : result.formatted); + + if (options && options.cursorOffset >= 0) { + process.stderr.write(result.cursorOffset + "\n"); + } +} + +function listDifferent(context, input, options, filename) { + if (!context.argv.check && !context.argv["list-different"]) { + return; + } + + try { + if (!options.filepath && !options.parser) { + throw new errors.UndefinedParserError("No parser and no file path given, couldn't infer a parser."); + } + + if (!prettier$1.check(input, options)) { + if (!context.argv.write) { + context.logger.log(filename); + process.exitCode = 1; + } + } + } catch (error) { + context.logger.error(error.message); + } + + return true; +} + +function format$1(context, input, opt) { + if (!opt.parser && !opt.filepath) { + throw new errors.UndefinedParserError("No parser and no file path given, couldn't infer a parser."); + } + + if (context.argv["debug-print-doc"]) { + const doc = prettier$1.__debug.printToDoc(input, opt); + + return { + formatted: prettier$1.__debug.formatDoc(doc) + "\n" + }; + } + + if (context.argv["debug-print-comments"]) { + return { + formatted: prettier$1.format(JSON.stringify(prettier$1.formatWithCursor(input, opt).comments || []), { + parser: "json" + }) + }; + } + + if (context.argv["debug-check"]) { + const pp = prettier$1.format(input, opt); + const pppp = prettier$1.format(pp, opt); + + if (pp !== pppp) { + throw new errors.DebugError("prettier(input) !== prettier(prettier(input))\n" + diff(pp, pppp)); + } else { + const stringify = obj => JSON.stringify(obj, null, 2); + + const ast = stringify(prettier$1.__debug.parse(input, opt, + /* massage */ + true).ast); + const past = stringify(prettier$1.__debug.parse(pp, opt, + /* massage */ + true).ast); + /* istanbul ignore next */ + + if (ast !== past) { + const MAX_AST_SIZE = 2097152; // 2MB + + const astDiff = ast.length > MAX_AST_SIZE || past.length > MAX_AST_SIZE ? "AST diff too large to render" : diff(ast, past); + throw new errors.DebugError("ast(input) !== ast(prettier(input))\n" + astDiff + "\n" + diff(input, pp)); + } + } + + return { + formatted: pp, + filepath: opt.filepath || "(stdin)\n" + }; + } + /* istanbul ignore next */ + + + if (context.argv["debug-benchmark"]) { + let benchmark; + + try { + // eslint-disable-next-line import/no-extraneous-dependencies + benchmark = require("benchmark"); + } catch { + context.logger.debug("'--debug-benchmark' requires the 'benchmark' package to be installed."); + process.exit(2); + } + + context.logger.debug("'--debug-benchmark' option found, measuring formatWithCursor with 'benchmark' module."); + const suite = new benchmark.Suite(); + suite.add("format", () => { + prettier$1.formatWithCursor(input, opt); + }).on("cycle", event => { + const results = { + benchmark: String(event.target), + hz: event.target.hz, + ms: event.target.times.cycle * 1000 + }; + context.logger.debug("'--debug-benchmark' measurements for formatWithCursor: " + JSON.stringify(results, null, 2)); + }).run({ + async: false + }); + } else if (context.argv["debug-repeat"] > 0) { + const repeat = context.argv["debug-repeat"]; + context.logger.debug("'--debug-repeat' option found, running formatWithCursor " + repeat + " times."); + let totalMs = 0; + + for (let i = 0; i < repeat; ++i) { + // should be using `performance.now()`, but only `Date` is cross-platform enough + const startMs = Date.now(); + prettier$1.formatWithCursor(input, opt); + totalMs += Date.now() - startMs; + } + + const averageMs = totalMs / repeat; + const results = { + repeat, + hz: 1000 / averageMs, + ms: averageMs + }; + context.logger.debug("'--debug-repeat' measurements for formatWithCursor: " + JSON.stringify(results, null, 2)); + } + + return prettier$1.formatWithCursor(input, opt); +} + +async function createIgnorerFromContextOrDie(context) { + try { + return await createIgnorer(context.argv["ignore-path"], context.argv["with-node-modules"]); + } catch (e) { + context.logger.error(e.message); + process.exit(2); + } +} + +async function formatStdin$1(context) { + const filepath = context.argv["stdin-filepath"] ? path__default['default'].resolve(process.cwd(), context.argv["stdin-filepath"]) : process.cwd(); + const ignorer = await createIgnorerFromContextOrDie(context); // If there's an ignore-path set, the filename must be relative to the + // ignore path, not the current working directory. + + const relativeFilepath = context.argv["ignore-path"] ? path__default['default'].relative(path__default['default'].dirname(context.argv["ignore-path"]), filepath) : path__default['default'].relative(process.cwd(), filepath); + + try { + const input = await getStdin(); + + if (relativeFilepath && ignorer.ignores(fixWindowsSlashes(relativeFilepath))) { + writeOutput(context, { + formatted: input + }); + return; + } + + const options = await getOptionsForFile(context, filepath); + + if (listDifferent(context, input, options, "(stdin)")) { + return; + } + + writeOutput(context, format$1(context, input, options), options); + } catch (error) { + handleError(context, relativeFilepath || "stdin", error); + } +} + +async function formatFiles$1(context) { + // The ignorer will be used to filter file paths after the glob is checked, + // before any files are actually written + const ignorer = await createIgnorerFromContextOrDie(context); + let numberOfUnformattedFilesFound = 0; + + if (context.argv.check) { + context.logger.log("Checking formatting..."); + } + + for await (const pathOrError of expandPatterns(context)) { + if (typeof pathOrError === "object") { + context.logger.error(pathOrError.error); // Don't exit, but set the exit code to 2 + + process.exitCode = 2; + continue; + } + + const filename = pathOrError; // If there's an ignore-path set, the filename must be relative to the + // ignore path, not the current working directory. + + const ignoreFilename = context.argv["ignore-path"] ? path__default['default'].relative(path__default['default'].dirname(context.argv["ignore-path"]), filename) : filename; + const fileIgnored = ignorer.ignores(fixWindowsSlashes(ignoreFilename)); + + if (fileIgnored && (context.argv["debug-check"] || context.argv.write || context.argv.check || context.argv["list-different"])) { + continue; + } + + const options = Object.assign(Object.assign({}, await getOptionsForFile(context, filename)), {}, { + filepath: filename + }); + let printedFilename; + + if (isTty()) { + printedFilename = context.logger.log(filename, { + newline: false, + clearable: true + }); + } + + let input; + + try { + input = await fs.readFile(filename, "utf8"); + } catch (error) { + // Add newline to split errors from filename line. + + /* istanbul ignore next */ + context.logger.log(""); + /* istanbul ignore next */ + + context.logger.error(`Unable to read file: ${filename}\n${error.message}`); // Don't exit the process if one file failed + + /* istanbul ignore next */ + + process.exitCode = 2; + /* istanbul ignore next */ + + continue; + } + + if (fileIgnored) { + writeOutput(context, { + formatted: input + }, options); + continue; + } + + const start = Date.now(); + let result; + let output; + + try { + result = format$1(context, input, options); + output = result.formatted; + } catch (error) { + handleError(context, filename, error, printedFilename); + continue; + } + + const isDifferent = output !== input; + + if (printedFilename) { + // Remove previously printed filename to log it with duration. + printedFilename.clear(); + } + + if (context.argv.write) { + // Don't write the file if it won't change in order not to invalidate + // mtime based caches. + if (isDifferent) { + if (!context.argv.check && !context.argv["list-different"]) { + context.logger.log(`${filename} ${Date.now() - start}ms`); + } + + try { + await fs.writeFile(filename, output, "utf8"); + } catch (error) { + /* istanbul ignore next */ + context.logger.error(`Unable to write file: ${filename}\n${error.message}`); // Don't exit the process if one file failed + + /* istanbul ignore next */ + + process.exitCode = 2; + } + } else if (!context.argv.check && !context.argv["list-different"]) { + context.logger.log(`${source.grey(filename)} ${Date.now() - start}ms`); + } + } else if (context.argv["debug-check"]) { + /* istanbul ignore else */ + if (result.filepath) { + context.logger.log(result.filepath); + } else { + process.exitCode = 2; + } + } else if (!context.argv.check && !context.argv["list-different"]) { + writeOutput(context, result, options); + } + + if (isDifferent) { + if (context.argv.check) { + context.logger.warn(filename); + } else if (context.argv["list-different"]) { + context.logger.log(filename); + } + + numberOfUnformattedFilesFound += 1; + } + } // Print check summary based on expected exit code + + + if (context.argv.check) { + if (numberOfUnformattedFilesFound === 0) { + context.logger.log("All matched files use Prettier code style!"); + } else { + context.logger.warn(context.argv.write ? "Code style issues fixed in the above file(s)." : "Code style issues found in the above file(s). Forgot to run Prettier?"); + } + } // Ensure non-zero exitCode when using --check/list-different is not combined with --write + + + if ((context.argv.check || context.argv["list-different"]) && numberOfUnformattedFilesFound > 0 && !process.exitCode && !context.argv.write) { + process.exitCode = 1; + } +} + +var format_1 = { + format: format$1, + formatStdin: formatStdin$1, + formatFiles: formatFiles$1 +}; + +var defineProperty = function () { + try { + var func = _getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}(); + +var _defineProperty = defineProperty; + +/** + * 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; + } +} + +var _baseAssignValue = baseAssignValue; + +/** Used for built-in method references. */ + +var objectProto$1 = Object.prototype; +/** Used to check objects for own properties. */ + +var hasOwnProperty$1 = objectProto$1.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$1.call(object, key) && eq_1(objValue, value)) || value === undefined && !(key in object)) { + _baseAssignValue(object, key, value); + } +} + +var _assignValue = assignValue; + +/** + * 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_1(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 (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + + if (newValue === undefined) { + newValue = isObject_1(objValue) ? objValue : _isIndex(path[index + 1]) ? [] : {}; + } + } + + _assignValue(nested, key, newValue); + nested = nested[key]; + } + + return object; +} + +var _baseSet = baseSet; + +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ + +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = _baseGet(object, path); + + if (predicate(value, path)) { + _baseSet(result, _castPath(path, object), value); + } + } + + return result; +} + +var _basePickBy = basePickBy; + +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + +function basePick(object, paths) { + return _basePickBy(object, paths, function (value, path) { + return hasIn_1(object, path); + }); +} + +var _basePick = basePick; + +/** Built-in value references. */ + +var spreadableSymbol = _Symbol ? _Symbol.isConcatSpreadable : undefined; +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + +function isFlattenable(value) { + return isArray_1(value) || isArguments_1(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); +} + +var _isFlattenable = isFlattenable; + +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + predicate || (predicate = _isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + _arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + + return result; +} + +var _baseFlatten = baseFlatten; + +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? _baseFlatten(array, 1) : []; +} + +var flatten_1 = flatten; + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + + case 1: + return func.call(thisArg, args[0]); + + case 2: + return func.call(thisArg, args[0], args[1]); + + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + + return func.apply(thisArg, args); +} + +var _apply = apply; + +/* Built-in method references for those with the same name as other `lodash` methods. */ + +var nativeMax = Math.max; +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? func.length - 1 : start, 0); + return function () { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + + index = -1; + var otherArgs = Array(start + 1); + + while (++index < start) { + otherArgs[index] = args[index]; + } + + otherArgs[start] = transform(array); + return _apply(func, this, otherArgs); + }; +} + +var _overRest = overRest; + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant$1(value) { + return function () { + return value; + }; +} + +var constant_1 = constant$1; + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + +var baseSetToString = !_defineProperty ? identity_1 : function (func, string) { + return _defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant_1(string), + 'writable': true + }); +}; +var _baseSetToString = baseSetToString; + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; +/* Built-in method references for those with the same name as other `lodash` methods. */ + +var nativeNow = Date.now; +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + +function shortOut(func) { + var count = 0, + lastCalled = 0; + return function () { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + + return func.apply(undefined, arguments); + }; +} + +var _shortOut = shortOut; + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + +var setToString = _shortOut(_baseSetToString); +var _setToString = setToString; + +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + +function flatRest(func) { + return _setToString(_overRest(func, undefined, flatten_1), func + ''); +} + +var _flatRest = flatRest; + +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + +var pick = _flatRest(function (object, paths) { + return object == null ? {} : _basePick(object, paths); +}); +var pick_1 = pick; + +var lib = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.outdent = void 0; // In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either. + + function noop() { + var args = []; + + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + } + + function createWeakMap() { + if (typeof WeakMap !== "undefined") { + return new WeakMap(); + } else { + return fakeSetOrMap(); + } + } + /** + * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything. + */ + + + function fakeSetOrMap() { + return { + add: noop, + delete: noop, + get: noop, + set: noop, + has: function (k) { + return false; + } + }; + } // Safe hasOwnProperty + + + var hop = Object.prototype.hasOwnProperty; + + var has = function (obj, prop) { + return hop.call(obj, prop); + }; // Copy all own enumerable properties from source to target + + + function extend(target, source) { + for (var prop in source) { + if (has(source, prop)) { + target[prop] = source[prop]; + } + } + + return target; + } + + var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/; + var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/; + var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/; + var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/; + var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/; + + function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) { + // If first interpolated value is a reference to outdent, + // determine indentation level from the indentation of the interpolated value. + var indentationLevel = 0; + var match = strings[0].match(reDetectIndentation); + + if (match) { + indentationLevel = match[1].length; + } + + var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; + var reMatchIndent = new RegExp(reSource, "g"); + + if (firstInterpolatedValueSetsIndentationLevel) { + strings = strings.slice(1); + } + + var newline = options.newline, + trimLeadingNewline = options.trimLeadingNewline, + trimTrailingNewline = options.trimTrailingNewline; + var normalizeNewlines = typeof newline === "string"; + var l = strings.length; + var outdentedStrings = strings.map(function (v, i) { + // Remove leading indentation from all lines + v = v.replace(reMatchIndent, "$1"); // Trim a leading newline from the first string + + if (i === 0 && trimLeadingNewline) { + v = v.replace(reLeadingNewline, ""); + } // Trim a trailing newline from the last string + + + if (i === l - 1 && trimTrailingNewline) { + v = v.replace(reTrailingNewline, ""); + } // Normalize newlines + + + if (normalizeNewlines) { + v = v.replace(/\r\n|\n|\r/g, function (_) { + return newline; + }); + } + + return v; + }); + return outdentedStrings; + } + + function concatStringsAndValues(strings, values) { + var ret = ""; + + for (var i = 0, l = strings.length; i < l; i++) { + ret += strings[i]; + + if (i < l - 1) { + ret += values[i]; + } + } + + return ret; + } + + function isTemplateStringsArray(v) { + return has(v, "raw") && has(v, "length"); + } + /** + * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to + * makeInstance + * @param options + * @return {outdent} + */ + + + function createInstance(options) { + /** Cache of pre-processed template literal arrays */ + var arrayAutoIndentCache = createWeakMap(); + /** + * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent, + * before interpolated values are injected. + */ + + var arrayFirstInterpSetsIndentCache = createWeakMap(); + + function outdent(stringsOrOptions) { + var values = []; + + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + /* tslint:enable:no-shadowed-variable */ + + + if (isTemplateStringsArray(stringsOrOptions)) { + var strings = stringsOrOptions; // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace? + + var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); // Perform outdentation + + var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache; + var renderedArray = cache.get(strings); + + if (!renderedArray) { + renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options); + cache.set(strings, renderedArray); + } + /** If no interpolated values, skip concatenation step */ + + + if (values.length === 0) { + return renderedArray[0]; + } + /** Concatenate string literals with interpolated values */ + + + var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values); + return rendered; + } else { + // Create and return a new instance of outdent with the given options + return createInstance(extend(extend({}, options), stringsOrOptions || {})); + } + } + + var fullOutdent = extend(outdent, { + string: function (str) { + return _outdentArray([str], false, options)[0]; + } + }); + return fullOutdent; + } + + var defaultOutdent = createInstance({ + trimLeadingNewline: true, + trimTrailingNewline: true + }); + exports.outdent = defaultOutdent; // Named exports. Simple and preferred. + // import outdent from 'outdent'; + + exports.default = defaultOutdent; + + { + // In webpack harmony-modules environments, module.exports is read-only, + // so we fail gracefully. + try { + module.exports = defaultOutdent; + Object.defineProperty(defaultOutdent, "__esModule", { + value: true + }); + defaultOutdent.default = defaultOutdent; + defaultOutdent.outdent = defaultOutdent; + } catch (e) {} + } +}); + +const { + outdent +} = lib; +const { + coreOptions: coreOptions$1 +} = prettierInternal; +const categoryOrder = [coreOptions$1.CATEGORY_OUTPUT, coreOptions$1.CATEGORY_FORMAT, coreOptions$1.CATEGORY_CONFIG, coreOptions$1.CATEGORY_EDITOR, coreOptions$1.CATEGORY_OTHER]; +/** + * { + * [optionName]: { + * // The type of the option. For 'choice', see also `choices` below. + * // When passing a type other than the ones listed below, the option is + * // treated as taking any string as argument, and `--option <${type}>` will + * // be displayed in --help. + * type: "boolean" | "choice" | "int" | string; + * + * // Default value to be passed to the minimist option `default`. + * default?: any; + * + * // Alias name to be passed to the minimist option `alias`. + * alias?: string; + * + * // For grouping options by category in --help. + * category?: string; + * + * // Description to be displayed in --help. If omitted, the option won't be + * // shown at all in --help (but see also `oppositeDescription` below). + * description?: string; + * + * // Description for `--no-${name}` to be displayed in --help. If omitted, + * // `--no-${name}` won't be shown. + * oppositeDescription?: string; + * + * // Indicate if this option is simply passed to the API. + * // true: use camelified name as the API option name. + * // string: use this value as the API option name. + * forwardToApi?: boolean | string; + * + * // Indicate that a CLI flag should be an array when forwarded to the API. + * array?: boolean; + * + * // Specify available choices for validation. They will also be displayed + * // in --help as . + * // Use an object instead of a string if a choice is deprecated and should + * // be treated as `redirect` instead, or if you'd like to add description for + * // the choice. + * choices?: Array< + * | string + * | { value: string, description?: string, deprecated?: boolean, redirect?: string } + * >; + * + * // If the option has a value that is an exception to the regular value + * // constraints, indicate that value here (or use a function for more + * // flexibility). + * exception?: ((value: any) => boolean); + * + * // Indicate that the option is deprecated. Use a string to add an extra + * // message to --help for the option, for example to suggest a replacement + * // option. + * deprecated?: true | string; + * } + * } + * + * Note: The options below are sorted alphabetically. + */ + +const options = { + check: { + type: "boolean", + category: coreOptions$1.CATEGORY_OUTPUT, + alias: "c", + description: outdent` + Check if the given files are formatted, print a human-friendly summary + message and paths to unformatted files (see also --list-different). + ` + }, + color: { + // The supports-color package (a sub sub dependency) looks directly at + // `process.argv` for `--no-color` and such-like options. The reason it is + // listed here is to avoid "Ignored unknown option: --no-color" warnings. + // See https://github.com/chalk/supports-color/#info for more information. + type: "boolean", + default: true, + description: "Colorize error messages.", + oppositeDescription: "Do not colorize error messages." + }, + config: { + type: "path", + category: coreOptions$1.CATEGORY_CONFIG, + description: "Path to a Prettier configuration file (.prettierrc, package.json, prettier.config.js).", + oppositeDescription: "Do not look for a configuration file.", + exception: value => value === false + }, + "config-precedence": { + type: "choice", + category: coreOptions$1.CATEGORY_CONFIG, + default: "cli-override", + choices: [{ + value: "cli-override", + description: "CLI options take precedence over config file" + }, { + value: "file-override", + description: "Config file take precedence over CLI options" + }, { + value: "prefer-file", + description: outdent` + If a config file is found will evaluate it and ignore other CLI options. + If no config file is found CLI options will evaluate as normal. + ` + }], + description: "Define in which order config files and CLI options should be evaluated." + }, + "debug-benchmark": { + // Run the formatting benchmarks. Requires 'benchmark' module to be installed. + type: "boolean" + }, + "debug-check": { + // Run the formatting once again on the formatted output, throw if different. + type: "boolean" + }, + "debug-print-doc": { + type: "boolean" + }, + "debug-print-comments": { + type: "boolean" + }, + "debug-repeat": { + // Repeat the formatting a few times and measure the average duration. + type: "int", + default: 0 + }, + editorconfig: { + type: "boolean", + category: coreOptions$1.CATEGORY_CONFIG, + description: "Take .editorconfig into account when parsing configuration.", + oppositeDescription: "Don't take .editorconfig into account when parsing configuration.", + default: true + }, + "error-on-unmatched-pattern": { + type: "boolean", + oppositeDescription: "Prevent errors when pattern is unmatched." + }, + "find-config-path": { + type: "path", + category: coreOptions$1.CATEGORY_CONFIG, + description: "Find and print the path to a configuration file for the given input file." + }, + "file-info": { + type: "path", + description: outdent` + Extract the following info (as JSON) for a given file path. Reported fields: + * ignored (boolean) - true if file path is filtered by --ignore-path + * inferredParser (string | null) - name of parser inferred from file path + ` + }, + help: { + type: "flag", + alias: "h", + description: outdent` + Show CLI usage, or details about the given flag. + Example: --help write + `, + exception: value => value === "" + }, + "ignore-path": { + type: "path", + category: coreOptions$1.CATEGORY_CONFIG, + default: ".prettierignore", + description: "Path to a file with patterns describing files to ignore." + }, + "ignore-unknown": { + type: "boolean", + alias: "u", + description: "Ignore unknown files." + }, + "list-different": { + type: "boolean", + category: coreOptions$1.CATEGORY_OUTPUT, + alias: "l", + description: "Print the names of files that are different from Prettier's formatting (see also --check)." + }, + loglevel: { + type: "choice", + description: "What level of logs to report.", + default: "log", + choices: ["silent", "error", "warn", "log", "debug"] + }, + "support-info": { + type: "boolean", + description: "Print support information as JSON." + }, + version: { + type: "boolean", + alias: "v", + description: "Print Prettier version." + }, + "with-node-modules": { + type: "boolean", + category: coreOptions$1.CATEGORY_CONFIG, + description: "Process files inside 'node_modules' directory." + }, + write: { + type: "boolean", + alias: "w", + category: coreOptions$1.CATEGORY_OUTPUT, + description: "Edit files in-place. (Beware!)" + } +}; +const usageSummary = outdent` + Usage: prettier [options] [file/dir/glob ...] + + By default, output is written to stdout. + Stdin is read if it is piped to Prettier and no files are given. +`; +var constant = { + categoryOrder, + options, + usageSummary +}; + +const { + coreOptions +} = prettierInternal; + +function normalizeDetailedOption(name, option) { + return Object.assign(Object.assign({ + category: coreOptions.CATEGORY_OTHER + }, option), {}, { + choices: option.choices && option.choices.map(choice => { + const newChoice = Object.assign({ + description: "", + deprecated: false + }, typeof choice === "object" ? choice : { + value: choice + }); + /* istanbul ignore next */ + + if (newChoice.value === true) { + newChoice.value = ""; // backward compatibility for original boolean option + } + + return newChoice; + }) + }); +} + +function normalizeDetailedOptionMap$2(detailedOptionMap) { + return Object.fromEntries(Object.entries(detailedOptionMap).sort(([leftName], [rightName]) => leftName.localeCompare(rightName)).map(([name, option]) => [name, normalizeDetailedOption(name, option)])); +} + +function createDetailedOptionMap$2(supportOptions) { + return Object.fromEntries(supportOptions.map(option => { + const newOption = Object.assign(Object.assign({}, option), {}, { + name: option.cliName || dashify(option.name), + description: option.cliDescription || option.description, + category: option.cliCategory || coreOptions.CATEGORY_FORMAT, + forwardToApi: option.name + }); + /* istanbul ignore next */ + if (option.deprecated) { + delete newOption.forwardToApi; + delete newOption.description; + delete newOption.oppositeDescription; + newOption.deprecated = true; + } - process.exitCode = 2; + return [newOption.name, newOption]; + })); } -function logResolvedConfigPathOrDie(context) { - const configFile = src.resolveConfigFile.sync(context.argv["find-config-path"]); +var optionMap = { + normalizeDetailedOptionMap: normalizeDetailedOptionMap$2, + createDetailedOptionMap: createDetailedOptionMap$2 +}; - if (configFile) { - context.logger.log(path__default['default'].relative(process.cwd(), configFile)); - } else { - process.exit(1); +const { + optionsModule, + optionsNormalizer: { + normalizeCliOptions + }, + utils: { + arrayify + } +} = prettierInternal; +const { + createDetailedOptionMap: createDetailedOptionMap$1, + normalizeDetailedOptionMap: normalizeDetailedOptionMap$1 +} = optionMap; +/** + * @typedef {Object} Context + * @property logger + * @property {string[]} rawArguments + * @property argv + * @property {string[]} filePatterns + * @property {any[]} supportOptions + * @property detailedOptions + * @property detailedOptionMap + * @property apiDefaultOptions + * @property languages + * @property {Partial[]} stack + * @property pushContextPlugins + * @property popContextPlugins + */ + +class Context$1 { + constructor({ + rawArguments, + logger + }) { + this.rawArguments = rawArguments; + this.logger = logger; + this.stack = []; + const { + plugin: plugins, + "plugin-search-dir": pluginSearchDirs + } = parseArgvWithoutPlugins$1(rawArguments, logger, ["plugin", "plugin-search-dir"]); + this.pushContextPlugins(plugins, pluginSearchDirs); + const argv = parseArgv(rawArguments, this.detailedOptions, logger); + this.argv = argv; + this.filePatterns = argv._.map(file => String(file)); + } + /** + * @param {string[]} plugins + * @param {string[]=} pluginSearchDirs + */ + + + pushContextPlugins(plugins, pluginSearchDirs) { + this.stack.push(pick_1(this, ["supportOptions", "detailedOptions", "detailedOptionMap", "apiDefaultOptions", "languages"])); + Object.assign(this, getContextOptions(plugins, pluginSearchDirs)); + } + + popContextPlugins() { + Object.assign(this, this.stack.pop()); } + } -function logFileInfoOrDie(context) { - const options = { - ignorePath: context.argv["ignore-path"], - withNodeModules: context.argv["with-node-modules"], - plugins: context.argv.plugin, - pluginSearchDirs: context.argv["plugin-search-dir"], - resolveConfig: context.argv.config !== false +function getContextOptions(plugins, pluginSearchDirs) { + const { + options: supportOptions, + languages + } = prettier$1.getSupportInfo({ + showDeprecated: true, + showUnreleased: true, + showInternal: true, + plugins, + pluginSearchDirs + }); + const detailedOptionMap = normalizeDetailedOptionMap$1(Object.assign(Object.assign({}, createDetailedOptionMap$1(supportOptions)), constant.options)); + const detailedOptions = arrayify(detailedOptionMap, "name"); + const apiDefaultOptions = Object.assign(Object.assign({}, optionsModule.hiddenDefaults), Object.fromEntries(supportOptions.filter(({ + deprecated + }) => !deprecated).map(option => [option.name, option.default]))); + return { + supportOptions, + detailedOptions, + detailedOptionMap, + apiDefaultOptions, + languages }; - context.logger.log(src.format(fastJsonStableStringify(src.getFileInfo.sync(context.argv["file-info"], options)), { - parser: "json" - })); } -function writeOutput(context, result, options) { - // Don't use `console.log` here since it adds an extra newline at the end. - process.stdout.write(context.argv["debug-check"] ? result.filepath : result.formatted); +function parseArgv(rawArguments, detailedOptions, logger, keys) { + const minimistOptions = createMinimistOptions(detailedOptions); + let argv = minimist_1(rawArguments, minimistOptions); - if (options && options.cursorOffset >= 0) { - process.stderr.write(result.cursorOffset + "\n"); + if (keys) { + detailedOptions = detailedOptions.filter(option => keys.includes(option.name)); + argv = pick_1(argv, keys); } + + return normalizeCliOptions(argv, detailedOptions, { + logger + }); } -function listDifferent(context, input, options, filename) { - if (!context.argv.check && !context.argv["list-different"]) { - return; - } +const detailedOptionsWithoutPlugins = getContextOptions().detailedOptions; - try { - if (!options.filepath && !options.parser) { - throw new errors.UndefinedParserError("No parser and no file path given, couldn't infer a parser."); - } +function parseArgvWithoutPlugins$1(rawArguments, logger, keys) { + return parseArgv(rawArguments, detailedOptionsWithoutPlugins, logger, typeof keys === "string" ? [keys] : keys); +} - if (!src.check(input, options)) { - if (!context.argv.write) { - context.logger.log(filename); - process.exitCode = 1; - } - } - } catch (error) { - context.logger.error(error.message); +var context = { + Context: Context$1, + parseArgvWithoutPlugins: parseArgvWithoutPlugins$1 +}; + +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +_export({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; } +}); - return true; -} +/** Used for built-in method references. */ -function format(context, input, opt) { - if (!opt.parser && !opt.filepath) { - throw new errors.UndefinedParserError("No parser and no file path given, couldn't infer a parser."); - } +var objectProto = Object.prototype; +/** Used to check objects for own properties. */ - if (context.argv["debug-print-doc"]) { - const doc = src.__debug.printToDoc(input, opt); +var hasOwnProperty = objectProto.hasOwnProperty; +/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ - return { - formatted: src.__debug.formatDoc(doc) - }; +var groupBy = _createAggregator(function (result, value, key) { + if (hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + _baseAssignValue(result, key, [value]); } +}); +var groupBy_1 = groupBy; - if (context.argv["debug-check"]) { - const pp = src.format(input, opt); - const pppp = src.format(pp, opt); +const preserveCamelCase = (string, locale) => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; - if (pp !== pppp) { - throw new errors.DebugError("prettier(input) !== prettier(prettier(input))\n" + diff(pp, pppp)); + for (let i = 0; i < string.length; i++) { + const character = string[i]; + + if (isLastCharLower && /[\p{Lu}]/u.test(character)) { + string = string.slice(0, i) + '-' + string.slice(i); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + i++; + } else if (isLastCharUpper && isLastLastCharUpper && /[\p{Ll}]/u.test(character)) { + string = string.slice(0, i - 1) + '-' + string.slice(i - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; } else { - const stringify = obj => JSON.stringify(obj, null, 2); + isLastCharLower = character.toLocaleLowerCase(locale) === character && character.toLocaleUpperCase(locale) !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = character.toLocaleUpperCase(locale) === character && character.toLocaleLowerCase(locale) !== character; + } + } - const ast = stringify(src.__debug.parse(input, opt, - /* massage */ - true).ast); - const past = stringify(src.__debug.parse(pp, opt, - /* massage */ - true).ast); - /* istanbul ignore next */ + return string; +}; - if (ast !== past) { - const MAX_AST_SIZE = 2097152; // 2MB +const preserveConsecutiveUppercase = input => { + return input.replace(/^[\p{Lu}](?![\p{Lu}])/gu, m1 => m1.toLowerCase()); +}; - const astDiff = ast.length > MAX_AST_SIZE || past.length > MAX_AST_SIZE ? "AST diff too large to render" : diff(ast, past); - throw new errors.DebugError("ast(input) !== ast(prettier(input))\n" + astDiff + "\n" + diff(input, pp)); - } - } +const postProcess = (input, options) => { + return input.replace(/[_.\- ]+([\p{Alpha}\p{N}_]|$)/gu, (_, p1) => p1.toLocaleUpperCase(options.locale)).replace(/\d+([\p{Alpha}\p{N}_]|$)/gu, m => m.toLocaleUpperCase(options.locale)); +}; - return { - formatted: pp, - filepath: opt.filepath || "(stdin)\n" - }; +const camelCase = (input, options) => { + if (!(typeof input === 'string' || Array.isArray(input))) { + throw new TypeError('Expected the input to be `string | string[]`'); } - /* istanbul ignore next */ - - if (context.argv["debug-benchmark"]) { - let benchmark; + options = Object.assign({ + pascalCase: false, + preserveConsecutiveUppercase: false + }, options); - try { - benchmark = require("benchmark"); - } catch (err) { - context.logger.debug("'--debug-benchmark' requires the 'benchmark' package to be installed."); - process.exit(2); - } + if (Array.isArray(input)) { + input = input.map(x => x.trim()).filter(x => x.length).join('-'); + } else { + input = input.trim(); + } - context.logger.debug("'--debug-benchmark' option found, measuring formatWithCursor with 'benchmark' module."); - const suite = new benchmark.Suite(); - suite.add("format", () => { - src.formatWithCursor(input, opt); - }).on("cycle", event => { - const results = { - benchmark: String(event.target), - hz: event.target.hz, - ms: event.target.times.cycle * 1000 - }; - context.logger.debug("'--debug-benchmark' measurements for formatWithCursor: " + JSON.stringify(results, null, 2)); - }).run({ - async: false - }); - } else if (context.argv["debug-repeat"] > 0) { - const repeat = context.argv["debug-repeat"]; - context.logger.debug("'--debug-repeat' option found, running formatWithCursor " + repeat + " times."); // should be using `performance.now()`, but only `Date` is cross-platform enough + if (input.length === 0) { + return ''; + } - const now = Date.now ? () => Date.now() : () => +new Date(); - let totalMs = 0; + if (input.length === 1) { + return options.pascalCase ? input.toLocaleUpperCase(options.locale) : input.toLocaleLowerCase(options.locale); + } - for (let i = 0; i < repeat; ++i) { - const startMs = now(); - src.formatWithCursor(input, opt); - totalMs += now() - startMs; - } + const hasUpperCase = input !== input.toLocaleLowerCase(options.locale); - const averageMs = totalMs / repeat; - const results = { - repeat, - hz: 1000 / averageMs, - ms: averageMs - }; - context.logger.debug("'--debug-repeat' measurements for formatWithCursor: " + JSON.stringify(results, null, 2)); + if (hasUpperCase) { + input = preserveCamelCase(input, options.locale); } - return src.formatWithCursor(input, opt); -} - -function getOptionsOrDie(context, filePath) { - try { - if (context.argv.config === false) { - context.logger.debug("'--no-config' option found, skip loading config file."); - return null; - } + input = input.replace(/^[_.\- ]+/, ''); - context.logger.debug(context.argv.config ? `load config file from '${context.argv.config}'` : `resolve config from '${filePath}'`); - const options = src.resolveConfig.sync(filePath, { - editorconfig: context.argv.editorconfig, - config: context.argv.config - }); - context.logger.debug("loaded options `" + JSON.stringify(options) + "`"); - return options; - } catch (error) { - context.logger.error(`Invalid configuration file \`${filePath}\`: ` + error.message); - process.exit(2); + if (options.preserveConsecutiveUppercase) { + input = preserveConsecutiveUppercase(input); + } else { + input = input.toLocaleLowerCase(); + } + + if (options.pascalCase) { + input = input.charAt(0).toLocaleUpperCase(options.locale) + input.slice(1); } -} -function getOptionsForFile(context, filepath) { - const options = getOptionsOrDie(context, filepath); - const hasPlugins = options && options.plugins; + return postProcess(input, options); +}; - if (hasPlugins) { - pushContextPlugins(context, options.plugins); - } +var camelcase = camelCase; // TODO: Remove this for the next major release - const appliedOptions = Object.assign({ - filepath - }, applyConfigPrecedence(context, options && optionsNormalizer.normalizeApiOptions(options, context.supportOptions, { - logger: context.logger - }))); - context.logger.debug(`applied config-precedence (${context.argv["config-precedence"]}): ` + `${JSON.stringify(appliedOptions)}`); +var _default = camelCase; +camelcase.default = _default; - if (hasPlugins) { - popContextPlugins(context); - } +const OPTION_USAGE_THRESHOLD = 25; +const CHOICE_USAGE_MARGIN = 3; +const CHOICE_USAGE_INDENTATION = 2; - return appliedOptions; +function indent(str, spaces) { + return str.replace(/^/gm, " ".repeat(spaces)); } -function parseArgsToOptions(context, overrideDefaults) { - const minimistOptions = createMinimistOptions(context.detailedOptions); - const apiDetailedOptionMap = createApiDetailedOptionMap(context.detailedOptions); - return getOptions(optionsNormalizer.normalizeCliOptions(minimist_1(context.args, { - string: minimistOptions.string, - boolean: minimistOptions.boolean, - default: cliifyOptions(overrideDefaults, apiDetailedOptionMap) - }), context.detailedOptions, { - logger: false - }), context.detailedOptions); +function createDefaultValueDisplay(value) { + return Array.isArray(value) ? `[${value.map(createDefaultValueDisplay).join(", ")}]` : value; } -function applyConfigPrecedence(context, options) { - try { - switch (context.argv["config-precedence"]) { - case "cli-override": - return parseArgsToOptions(context, options); +function getOptionDefaultValue(context, optionName) { + // --no-option + if (!(optionName in context.detailedOptionMap)) { + return; + } - case "file-override": - return Object.assign({}, parseArgsToOptions(context), options); + const option = context.detailedOptionMap[optionName]; - case "prefer-file": - return options || parseArgsToOptions(context); - } - } catch (error) { - /* istanbul ignore next */ - context.logger.error(error.toString()); - /* istanbul ignore next */ + if (option.default !== undefined) { + return option.default; + } - process.exit(2); + const optionCamelName = camelcase(optionName); + + if (optionCamelName in context.apiDefaultOptions) { + return context.apiDefaultOptions[optionCamelName]; } } -function formatStdin(context) { - const filepath = context.argv["stdin-filepath"] ? path__default['default'].resolve(process.cwd(), context.argv["stdin-filepath"]) : process.cwd(); - const ignorer = createIgnorerFromContextOrDie(context); // If there's an ignore-path set, the filename must be relative to the - // ignore path, not the current working directory. +function createOptionUsageHeader(option) { + const name = `--${option.name}`; + const alias = option.alias ? `-${option.alias},` : null; + const type = createOptionUsageType(option); + return [alias, name, type].filter(Boolean).join(" "); +} - const relativeFilepath = context.argv["ignore-path"] ? path__default['default'].relative(path__default['default'].dirname(context.argv["ignore-path"]), filepath) : path__default['default'].relative(process.cwd(), filepath); - getStream(process.stdin).then(input => { - if (relativeFilepath && ignorer.ignores(fixWindowsSlashes$1(relativeFilepath))) { - writeOutput(context, { - formatted: input - }); - return; - } +function createOptionUsageRow(header, content, threshold) { + const separator = header.length >= threshold ? `\n${" ".repeat(threshold)}` : " ".repeat(threshold - header.length); + const description = content.replace(/\n/g, `\n${" ".repeat(threshold)}`); + return `${header}${separator}${description}`; +} - const options = getOptionsForFile(context, filepath); +function createOptionUsageType(option) { + switch (option.type) { + case "boolean": + return null; - if (listDifferent(context, input, options, "(stdin)")) { - return; - } + case "choice": + return `<${option.choices.filter(choice => !choice.deprecated && choice.since !== null).map(choice => choice.value).join("|")}>`; - writeOutput(context, format(context, input, options), options); - }).catch(error => { - handleError(context, relativeFilepath || "stdin", error); - }); + default: + return `<${option.type}>`; + } } -function createIgnorerFromContextOrDie(context) { - try { - return createIgnorer.sync(context.argv["ignore-path"], context.argv["with-node-modules"]); - } catch (e) { - context.logger.error(e.message); - process.exit(2); - } +function createChoiceUsages(choices, margin, indentation) { + const activeChoices = choices.filter(choice => !choice.deprecated && choice.since !== null); + const threshold = Math.max(0, ...activeChoices.map(choice => choice.value.length)) + margin; + return activeChoices.map(choice => indent(createOptionUsageRow(choice.value, choice.description, threshold), indentation)); } -function formatFiles(context) { - // The ignorer will be used to filter file paths after the glob is checked, - // before any files are actually written - const ignorer = createIgnorerFromContextOrDie(context); - let numberOfUnformattedFilesFound = 0; +function createOptionUsage(context, option, threshold) { + const header = createOptionUsageHeader(option); + const optionDefaultValue = getOptionDefaultValue(context, option.name); + return createOptionUsageRow(header, `${option.description}${optionDefaultValue === undefined ? "" : `\nDefaults to ${createDefaultValueDisplay(optionDefaultValue)}.`}`, threshold); +} - if (context.argv.check) { - context.logger.log("Checking formatting..."); - } +function getOptionsWithOpposites(options) { + // Add --no-foo after --foo. + const optionsWithOpposites = options.map(option => [option.description ? option : null, option.oppositeDescription ? Object.assign(Object.assign({}, option), {}, { + name: `no-${option.name}`, + type: "boolean", + description: option.oppositeDescription + }) : null]); + return optionsWithOpposites.flat().filter(Boolean); +} - for (const pathOrError of expandPatterns$1(context)) { - if (typeof pathOrError === "object") { - context.logger.error(pathOrError.error); // Don't exit, but set the exit code to 2 +function createUsage$1(context) { + const options = getOptionsWithOpposites(context.detailedOptions).filter( // remove unnecessary option (e.g. `semi`, `color`, etc.), which is only used for --help + option => !(option.type === "boolean" && option.oppositeDescription && !option.name.startsWith("no-"))); + const groupedOptions = groupBy_1(options, option => option.category); + const firstCategories = constant.categoryOrder.slice(0, -1); + const lastCategories = constant.categoryOrder.slice(-1); + const restCategories = Object.keys(groupedOptions).filter(category => !constant.categoryOrder.includes(category)); + const allCategories = [...firstCategories, ...restCategories, ...lastCategories]; + const optionsUsage = allCategories.map(category => { + const categoryOptions = groupedOptions[category].map(option => createOptionUsage(context, option, OPTION_USAGE_THRESHOLD)).join("\n"); + return `${category} options:\n\n${indent(categoryOptions, 2)}`; + }); + return [constant.usageSummary, ...optionsUsage, ""].join("\n\n"); +} - process.exitCode = 2; - continue; - } +function createDetailedUsage$1(context, flag) { + const option = getOptionsWithOpposites(context.detailedOptions).find(option => option.name === flag || option.alias === flag); + const header = createOptionUsageHeader(option); + const description = `\n\n${indent(option.description, 2)}`; + const choices = option.type !== "choice" ? "" : `\n\nValid options:\n\n${createChoiceUsages(option.choices, CHOICE_USAGE_MARGIN, CHOICE_USAGE_INDENTATION).join("\n")}`; + const optionDefaultValue = getOptionDefaultValue(context, option.name); + const defaults = optionDefaultValue !== undefined ? `\n\nDefault: ${createDefaultValueDisplay(optionDefaultValue)}` : ""; + const pluginDefaults = option.pluginDefaults && Object.keys(option.pluginDefaults).length > 0 ? `\nPlugin defaults:${Object.entries(option.pluginDefaults).map(([key, value]) => `\n* ${key}: ${createDefaultValueDisplay(value)}`)}` : ""; + return `${header}${description}${choices}${defaults}${pluginDefaults}`; +} - const filename = pathOrError; // If there's an ignore-path set, the filename must be relative to the - // ignore path, not the current working directory. +var usage = { + createUsage: createUsage$1, + createDetailedUsage: createDetailedUsage$1 +}; - const ignoreFilename = context.argv["ignore-path"] ? path__default['default'].relative(path__default['default'].dirname(context.argv["ignore-path"]), filename) : filename; - const fileIgnored = ignorer.ignores(fixWindowsSlashes$1(ignoreFilename)); +var ansiRegex = ({ + onlyFirst = false +} = {}) => { + const pattern = ['[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'].join('|'); + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +}; - if (fileIgnored && (context.argv["debug-check"] || context.argv.write || context.argv.check || context.argv["list-different"])) { - continue; - } +var stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; - const options = Object.assign({}, getOptionsForFile(context, filename), { - filepath: filename - }); +var clone_1 = createCommonjsModule(function (module) { + var clone = function () { + /** + * Clones (copies) an Object using deep copying. + * + * This function supports circular references by default, but if you are certain + * there are no circular references in your object, you can save some CPU time + * by calling clone(obj, false). + * + * Caution: if `circular` is false and `parent` contains circular references, + * your program may enter an infinite loop and crash. + * + * @param `parent` - the object to be cloned + * @param `circular` - set to true if the object to be cloned may contain + * circular references. (optional - true by default) + * @param `depth` - set to a number if the object is only to be cloned to + * a particular depth. (optional - defaults to Infinity) + * @param `prototype` - sets the prototype to be used when cloning an object. + * (optional - defaults to parent prototype). + */ + + function clone(parent, circular, depth, prototype) { + + if (typeof circular === 'object') { + depth = circular.depth; + prototype = circular.prototype; + circular = circular.circular; + } // maintain two arrays for circular references, where corresponding parents + // and children have the same index + + + var allParents = []; + var allChildren = []; + var useBuffer = typeof Buffer != 'undefined'; + if (typeof circular == 'undefined') circular = true; + if (typeof depth == 'undefined') depth = Infinity; // recurse this function so we don't reset allParents and allChildren + + function _clone(parent, depth) { + // cloning null always returns null + if (parent === null) return null; + if (depth == 0) return parent; + var child; + var proto; + + if (typeof parent != 'object') { + return parent; + } - if (isTty()) { - context.logger.log(filename, { - newline: false - }); - } + if (clone.__isArray(parent)) { + child = []; + } else if (clone.__isRegExp(parent)) { + child = new RegExp(parent.source, __getRegExpFlags(parent)); + if (parent.lastIndex) child.lastIndex = parent.lastIndex; + } else if (clone.__isDate(parent)) { + child = new Date(parent.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent)) { + if (Buffer.allocUnsafe) { + // Node.js >= 4.5.0 + child = Buffer.allocUnsafe(parent.length); + } else { + // Older Node.js versions + child = new Buffer(parent.length); + } - let input; + parent.copy(child); + return child; + } else { + if (typeof prototype == 'undefined') { + proto = Object.getPrototypeOf(parent); + child = Object.create(proto); + } else { + child = Object.create(prototype); + proto = prototype; + } + } - try { - input = fs__default['default'].readFileSync(filename, "utf8"); - } catch (error) { - // Add newline to split errors from filename line. + if (circular) { + var index = allParents.indexOf(parent); - /* istanbul ignore next */ - context.logger.log(""); - /* istanbul ignore next */ + if (index != -1) { + return allChildren[index]; + } - context.logger.error(`Unable to read file: ${filename}\n${error.message}`); // Don't exit the process if one file failed + allParents.push(parent); + allChildren.push(child); + } - /* istanbul ignore next */ + for (var i in parent) { + var attrs; - process.exitCode = 2; - /* istanbul ignore next */ + if (proto) { + attrs = Object.getOwnPropertyDescriptor(proto, i); + } - continue; - } + if (attrs && attrs.set == null) { + continue; + } - if (fileIgnored) { - writeOutput(context, { - formatted: input - }, options); - continue; - } + child[i] = _clone(parent[i], depth - 1); + } - const start = Date.now(); - let result; - let output; + return child; + } - try { - result = format(context, input, options); - output = result.formatted; - } catch (error) { - handleError(context, filename, error); - continue; + return _clone(parent, depth); } + /** + * Simple flat clone using prototype, accepts only objects, usefull for property + * override on FLAT configuration object (no nested props). + * + * USE WITH CAUTION! This may not behave as you wish if you do not know how this + * works. + */ - const isDifferent = output !== input; - if (isTty()) { - // Remove previously printed filename to log it with duration. - readline__default['default'].clearLine(process.stdout, 0); - readline__default['default'].cursorTo(process.stdout, 0, null); - } + clone.clonePrototype = function clonePrototype(parent) { + if (parent === null) return null; - if (context.argv.write) { - // Don't write the file if it won't change in order not to invalidate - // mtime based caches. - if (isDifferent) { - if (!context.argv.check && !context.argv["list-different"]) { - context.logger.log(`${filename} ${Date.now() - start}ms`); - } + var c = function () {}; - try { - fs__default['default'].writeFileSync(filename, output, "utf8"); - } catch (error) { - /* istanbul ignore next */ - context.logger.error(`Unable to write file: ${filename}\n${error.message}`); // Don't exit the process if one file failed + c.prototype = parent; + return new c(); + }; // private utility functions - /* istanbul ignore next */ - process.exitCode = 2; - } - } else if (!context.argv.check && !context.argv["list-different"]) { - context.logger.log(`${source.grey(filename)} ${Date.now() - start}ms`); - } - } else if (context.argv["debug-check"]) { - /* istanbul ignore else */ - if (result.filepath) { - context.logger.log(result.filepath); - } else { - process.exitCode = 2; - } - } else if (!context.argv.check && !context.argv["list-different"]) { - writeOutput(context, result, options); + function __objToStr(o) { + return Object.prototype.toString.call(o); } + clone.__objToStr = __objToStr; - if (isDifferent) { - if (context.argv.check) { - context.logger.warn(filename); - } else if (context.argv["list-different"]) { - context.logger.log(filename); - } - - numberOfUnformattedFilesFound += 1; + function __isDate(o) { + return typeof o === 'object' && __objToStr(o) === '[object Date]'; } - } // Print check summary based on expected exit code + clone.__isDate = __isDate; + function __isArray(o) { + return typeof o === 'object' && __objToStr(o) === '[object Array]'; + } + clone.__isArray = __isArray; - if (context.argv.check) { - if (numberOfUnformattedFilesFound === 0) { - context.logger.log("All matched files use Prettier code style!"); - } else { - context.logger.warn(context.argv.write ? "Code style issues fixed in the above file(s)." : "Code style issues found in the above file(s). Forgot to run Prettier?"); + function __isRegExp(o) { + return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; } - } // Ensure non-zero exitCode when using --check/list-different is not combined with --write + clone.__isRegExp = __isRegExp; + function __getRegExpFlags(re) { + var flags = ''; + if (re.global) flags += 'g'; + if (re.ignoreCase) flags += 'i'; + if (re.multiline) flags += 'm'; + return flags; + } + clone.__getRegExpFlags = __getRegExpFlags; + return clone; + }(); - if ((context.argv.check || context.argv["list-different"]) && numberOfUnformattedFilesFound > 0 && !process.exitCode && !context.argv.write) { - process.exitCode = 1; + if (module.exports) { + module.exports = clone; } -} - -function getOptionsWithOpposites(options) { - // Add --no-foo after --foo. - const optionsWithOpposites = options.map(option => [option.description ? option : null, option.oppositeDescription ? Object.assign({}, option, { - name: `no-${option.name}`, - type: "boolean", - description: option.oppositeDescription - }) : null]); - return flatten_1(optionsWithOpposites).filter(Boolean); -} +}); -function createUsage(context) { - const options = getOptionsWithOpposites(context.detailedOptions).filter( // remove unnecessary option (e.g. `semi`, `color`, etc.), which is only used for --help - option => !(option.type === "boolean" && option.oppositeDescription && !option.name.startsWith("no-"))); - const groupedOptions = groupBy_1(options, option => option.category); - const firstCategories = constant$1.categoryOrder.slice(0, -1); - const lastCategories = constant$1.categoryOrder.slice(-1); - const restCategories = Object.keys(groupedOptions).filter(category => !constant$1.categoryOrder.includes(category)); - const allCategories = [...firstCategories, ...restCategories, ...lastCategories]; - const optionsUsage = allCategories.map(category => { - const categoryOptions = groupedOptions[category].map(option => createOptionUsage(context, option, OPTION_USAGE_THRESHOLD)).join("\n"); - return `${category} options:\n\n${indent(categoryOptions, 2)}`; +var defaults = function (options, defaults) { + options = options || {}; + Object.keys(defaults).forEach(function (key) { + if (typeof options[key] === 'undefined') { + options[key] = clone_1(defaults[key]); + } }); - return [constant$1.usageSummary].concat(optionsUsage, [""]).join("\n\n"); -} + return options; +}; -function createOptionUsage(context, option, threshold) { - const header = createOptionUsageHeader(option); - const optionDefaultValue = getOptionDefaultValue(context, option.name); - return createOptionUsageRow(header, `${option.description}${optionDefaultValue === undefined ? "" : `\nDefaults to ${createDefaultValueDisplay(optionDefaultValue)}.`}`, threshold); -} +var combining = [[0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489], [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603], [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670], [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED], [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A], [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902], [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C], [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D], [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C], [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D], [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48], [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC], [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D], [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6], [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97], [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030], [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039], [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F], [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753], [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD], [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD], [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922], [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B], [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34], [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42], [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF], [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063], [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F], [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B], [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F], [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB], [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F], [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169], [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD], [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F], [0xE0100, 0xE01EF]]; -function createDefaultValueDisplay(value) { - return Array.isArray(value) ? `[${value.map(createDefaultValueDisplay).join(", ")}]` : value; -} +var DEFAULTS = { + nul: 0, + control: 0 +}; -function createOptionUsageHeader(option) { - const name = `--${option.name}`; - const alias = option.alias ? `-${option.alias},` : null; - const type = createOptionUsageType(option); - return [alias, name, type].filter(Boolean).join(" "); -} +var wcwidth_1 = function wcwidth(str) { + return wcswidth(str, DEFAULTS); +}; -function createOptionUsageRow(header, content, threshold) { - const separator = header.length >= threshold ? `\n${" ".repeat(threshold)}` : " ".repeat(threshold - header.length); - const description = content.replace(/\n/g, `\n${" ".repeat(threshold)}`); - return `${header}${separator}${description}`; -} +var config = function (opts) { + opts = defaults(opts || {}, DEFAULTS); + return function wcwidth(str) { + return wcswidth(str, opts); + }; +}; +/* + * The following functions define the column width of an ISO 10646 + * character as follows: + * - The null character (U+0000) has a column width of 0. + * - Other C0/C1 control characters and DEL will lead to a return value + * of -1. + * - Non-spacing and enclosing combining characters (general category + * code Mn or Me in the + * Unicode database) have a column width of 0. + * - SOFT HYPHEN (U+00AD) has a column width of 1. + * - Other format characters (general category code Cf in the Unicode + * database) and ZERO WIDTH + * SPACE (U+200B) have a column width of 0. + * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) + * have a column width of 0. + * - Spacing characters in the East Asian Wide (W) or East Asian + * Full-width (F) category as + * defined in Unicode Technical Report #11 have a column width of 2. + * - All remaining characters (including all printable ISO 8859-1 and + * WGL4 characters, Unicode control characters, etc.) have a column + * width of 1. + * This implementation assumes that characters are encoded in ISO 10646. +*/ -function createOptionUsageType(option) { - switch (option.type) { - case "boolean": - return null; - case "choice": - return `<${option.choices.filter(choice => !choice.deprecated && choice.since !== null).map(choice => choice.value).join("|")}>`; +function wcswidth(str, opts) { + if (typeof str !== 'string') return wcwidth(str, opts); + var s = 0; - default: - return `<${option.type}>`; + for (var i = 0; i < str.length; i++) { + var n = wcwidth(str.charCodeAt(i), opts); + if (n < 0) return -1; + s += n; } -} -function createChoiceUsages(choices, margin, indentation) { - const activeChoices = choices.filter(choice => !choice.deprecated && choice.since !== null); - const threshold = activeChoices.map(choice => choice.value.length).reduce((current, length) => Math.max(current, length), 0) + margin; - return activeChoices.map(choice => indent(createOptionUsageRow(choice.value, choice.description, threshold), indentation)); + return s; } -function createDetailedUsage(context, flag) { - const option = getOptionsWithOpposites(context.detailedOptions).find(option => option.name === flag || option.alias === flag); - const header = createOptionUsageHeader(option); - const description = `\n\n${indent(option.description, 2)}`; - const choices = option.type !== "choice" ? "" : `\n\nValid options:\n\n${createChoiceUsages(option.choices, CHOICE_USAGE_MARGIN, CHOICE_USAGE_INDENTATION).join("\n")}`; - const optionDefaultValue = getOptionDefaultValue(context, option.name); - const defaults = optionDefaultValue !== undefined ? `\n\nDefault: ${createDefaultValueDisplay(optionDefaultValue)}` : ""; - const pluginDefaults = option.pluginDefaults && Object.keys(option.pluginDefaults).length ? `\nPlugin defaults:${Object.keys(option.pluginDefaults).map(key => `\n* ${key}: ${createDefaultValueDisplay(option.pluginDefaults[key])}`)}` : ""; - return `${header}${description}${choices}${defaults}${pluginDefaults}`; +function wcwidth(ucs, opts) { + // test for 8-bit control characters + if (ucs === 0) return opts.nul; + if (ucs < 32 || ucs >= 0x7f && ucs < 0xa0) return opts.control; // binary search in table of non-spacing characters + + if (bisearch(ucs)) return 0; // if we arrive here, ucs is not a combining or C0/C1 control character + + return 1 + (ucs >= 0x1100 && (ucs <= 0x115f || // Hangul Jamo init. consonants + ucs == 0x2329 || ucs == 0x232a || ucs >= 0x2e80 && ucs <= 0xa4cf && ucs != 0x303f || // CJK ... Yi + ucs >= 0xac00 && ucs <= 0xd7a3 || // Hangul Syllables + ucs >= 0xf900 && ucs <= 0xfaff || // CJK Compatibility Ideographs + ucs >= 0xfe10 && ucs <= 0xfe19 || // Vertical forms + ucs >= 0xfe30 && ucs <= 0xfe6f || // CJK Compatibility Forms + ucs >= 0xff00 && ucs <= 0xff60 || // Fullwidth Forms + ucs >= 0xffe0 && ucs <= 0xffe6 || ucs >= 0x20000 && ucs <= 0x2fffd || ucs >= 0x30000 && ucs <= 0x3fffd)); } -function getOptionDefaultValue(context, optionName) { - // --no-option - if (!(optionName in context.detailedOptionMap)) { - return; +function bisearch(ucs) { + var min = 0; + var max = combining.length - 1; + var mid; + if (ucs < combining[0][0] || ucs > combining[max][1]) return false; + + while (max >= min) { + mid = Math.floor((min + max) / 2); + if (ucs > combining[mid][1]) min = mid + 1;else if (ucs < combining[mid][0]) max = mid - 1;else return true; } - const option = context.detailedOptionMap[optionName]; + return false; +} +wcwidth_1.config = config; - if (option.default !== undefined) { - return option.default; +const countLines = (stream, text) => { + const columns = stream.columns || 80; + let lineCount = 0; + + for (const line of stripAnsi(text).split("\n")) { + lineCount += Math.max(1, Math.ceil(wcwidth_1(line) / columns)); } - const optionCamelName = camelcase(optionName); + return lineCount; +}; - if (optionCamelName in context.apiDefaultOptions) { - return context.apiDefaultOptions[optionCamelName]; +const clear = (stream, text) => () => { + const lineCount = countLines(stream, text); + + for (let line = 0; line < lineCount; line++) { + if (line > 0) { + readline__default['default'].moveCursor(stream, 0, -1); + } + + readline__default['default'].clearLine(stream, 0); + readline__default['default'].cursorTo(stream, 0); } -} +}; -function indent(str, spaces) { - return str.replace(/^/gm, " ".repeat(spaces)); -} +const emptyLogResult = { + clear() {} + +}; -function createLogger(logLevel) { +function createLogger$1(logLevel = "log") { return { + logLevel, warn: createLogFunc("warn", "yellow"), error: createLogFunc("error", "red"), debug: createLogFunc("debug", "blue"), @@ -16216,16 +18611,24 @@ function createLogger(logLevel) { function createLogFunc(loggerName, color) { if (!shouldLog(loggerName)) { - return () => {}; + return () => emptyLogResult; } const prefix = color ? `[${source[color](loggerName)}] ` : ""; - return function (message, opts) { - opts = Object.assign({ - newline: true - }, opts); - const stream = process[loggerName === "log" ? "stdout" : "stderr"]; - stream.write(message.replace(/^/gm, prefix) + (opts.newline ? "\n" : "")); + const stream = process[loggerName === "log" ? "stdout" : "stderr"]; + return (message, options) => { + options = Object.assign({ + newline: true, + clearable: false + }, options); + message = message.replace(/^/gm, prefix) + (options.newline ? "\n" : ""); + stream.write(message); + + if (options.clearable) { + return { + clear: clear(stream, message) + }; + } }; } @@ -16261,258 +18664,145 @@ function createLogger(logLevel) { } } -function normalizeDetailedOption(name, option) { - return Object.assign({ - category: coreOptions$1.CATEGORY_OTHER - }, option, { - choices: option.choices && option.choices.map(choice => { - const newChoice = Object.assign({ - description: "", - deprecated: false - }, typeof choice === "object" ? choice : { - value: choice - }); - /* istanbul ignore next */ +var logger = { + createLogger: createLogger$1 +}; - if (newChoice.value === true) { - newChoice.value = ""; // backward compatibility for original boolean option - } +const { + format, + formatStdin, + formatFiles +} = format_1; +const { + Context, + parseArgvWithoutPlugins +} = context; +const { + normalizeDetailedOptionMap, + createDetailedOptionMap +} = optionMap; +const { + createDetailedUsage, + createUsage +} = usage; +const { + createLogger +} = logger; - return newChoice; - }) - }); -} +async function logResolvedConfigPathOrDie(context) { + const file = context.argv["find-config-path"]; + const configFile = await prettier$1.resolveConfigFile(file); -function normalizeDetailedOptionMap(detailedOptionMap) { - return fromPairs_1(Object.entries(detailedOptionMap).sort(([leftName], [rightName]) => leftName.localeCompare(rightName)).map(([name, option]) => [name, normalizeDetailedOption(name, option)])); + if (configFile) { + context.logger.log(path__default['default'].relative(process.cwd(), configFile)); + } else { + throw new Error(`Can not find configure file for "${file}"`); + } } -function createMinimistOptions(detailedOptions) { - const [boolean, string] = partition_1(detailedOptions, ({ - type - }) => type === "boolean").map(detailedOptions => flatten_1(detailedOptions.map(({ - name, - alias - }) => alias ? [name, alias] : [name]))); - const defaults = fromPairs_1(detailedOptions.filter(option => !option.deprecated && (!option.forwardToApi || option.name === "plugin" || option.name === "plugin-search-dir") && option.default !== undefined).map(option => [option.name, option.default])); - return { - // we use vnopts' AliasSchema to handle aliases for better error messages - alias: {}, - boolean, - string, - default: defaults +async function logFileInfoOrDie(context) { + const options = { + ignorePath: context.argv["ignore-path"], + withNodeModules: context.argv["with-node-modules"], + plugins: context.argv.plugin, + pluginSearchDirs: context.argv["plugin-search-dir"], + resolveConfig: context.argv.config !== false }; -} - -function createApiDetailedOptionMap(detailedOptions) { - return fromPairs_1(detailedOptions.filter(option => option.forwardToApi && option.forwardToApi !== option.name).map(option => [option.forwardToApi, option])); -} - -function createDetailedOptionMap(supportOptions) { - return fromPairs_1(supportOptions.map(option => { - const newOption = Object.assign({}, option, { - name: option.cliName || dashify(option.name), - description: option.cliDescription || option.description, - category: option.cliCategory || coreOptions$1.CATEGORY_FORMAT, - forwardToApi: option.name - }); - /* istanbul ignore next */ - - if (option.deprecated) { - delete newOption.forwardToApi; - delete newOption.description; - delete newOption.oppositeDescription; - newOption.deprecated = true; - } - - return [newOption.name, newOption]; + context.logger.log(prettier$1.format(fastJsonStableStringify(await prettier$1.getFileInfo(context.argv["file-info"], options)), { + parser: "json" })); -} //-----------------------------context-util-start------------------------------- - -/** - * @typedef {Object} Context - * @property logger - * @property {string[]} args - * @property argv - * @property {string[]} filePatterns - * @property {any[]} supportOptions - * @property detailedOptions - * @property detailedOptionMap - * @property apiDefaultOptions - * @property languages - * @property {Partial[]} stack - */ - -/** @returns {Context} */ - - -function createContext(args) { - const context = { - args, - stack: [] - }; - updateContextArgv(context); - normalizeContextArgv(context, ["loglevel", "plugin", "plugin-search-dir"]); - context.logger = createLogger(context.argv.loglevel); - updateContextArgv(context, context.argv.plugin, context.argv["plugin-search-dir"]); - return ( - /** @type {Context} */ - context - ); -} - -function initContext(context) { - // split into 2 step so that we could wrap this in a `try..catch` in cli/index.js - normalizeContextArgv(context); -} -/** - * @param {Context} context - * @param {string[]} plugins - * @param {string[]=} pluginSearchDirs - */ - - -function updateContextOptions(context, plugins, pluginSearchDirs) { - const { - options: supportOptions, - languages - } = src.getSupportInfo({ - showDeprecated: true, - showUnreleased: true, - showInternal: true, - plugins, - pluginSearchDirs - }); - const detailedOptionMap = normalizeDetailedOptionMap(Object.assign({}, createDetailedOptionMap(supportOptions), constant$1.options)); - const detailedOptions = arrayify(detailedOptionMap, "name"); - const apiDefaultOptions = Object.assign({}, optionsModule.hiddenDefaults, fromPairs_1(supportOptions.filter(({ - deprecated - }) => !deprecated).map(option => [option.name, option.default]))); - Object.assign(context, { - supportOptions, - detailedOptions, - detailedOptionMap, - apiDefaultOptions, - languages - }); -} -/** - * @param {Context} context - * @param {string[]} plugins - * @param {string[]=} pluginSearchDirs - */ - - -function pushContextPlugins(context, plugins, pluginSearchDirs) { - context.stack.push(pick_1(context, ["supportOptions", "detailedOptions", "detailedOptionMap", "apiDefaultOptions", "languages"])); - updateContextOptions(context, plugins, pluginSearchDirs); -} -/** - * @param {Context} context - */ - - -function popContextPlugins(context) { - Object.assign(context, context.stack.pop()); -} - -function updateContextArgv(context, plugins, pluginSearchDirs) { - pushContextPlugins(context, plugins, pluginSearchDirs); - const minimistOptions = createMinimistOptions(context.detailedOptions); - const argv = minimist_1(context.args, minimistOptions); - context.argv = argv; - context.filePatterns = argv._; } -function normalizeContextArgv(context, keys) { - const detailedOptions = !keys ? context.detailedOptions : context.detailedOptions.filter(option => keys.includes(option.name)); - const argv = !keys ? context.argv : pick_1(context.argv, keys); - context.argv = optionsNormalizer.normalizeCliOptions(argv, detailedOptions, { - logger: context.logger - }); -} //------------------------------context-util-end-------------------------------- - - -var util$1 = { - createContext, +var core = { + Context, createDetailedOptionMap, createDetailedUsage, createUsage, format, formatFiles, formatStdin, - initContext, logResolvedConfigPathOrDie, logFileInfoOrDie, - normalizeDetailedOptionMap + normalizeDetailedOptionMap, + parseArgvWithoutPlugins, + createLogger }; -var require$$1 = getCjsExportFromNamespace(_package$1); - -pleaseUpgradeNode(require$$1); // eslint-disable-next-line no-restricted-modules +pleaseUpgradeNode(packageJson); // eslint-disable-next-line import/order +// eslint-disable-next-line no-restricted-modules -function run(args) { - const context = util$1.createContext(args); +async function run(rawArguments) { + // Create a default level logger, so we can log errors during `logLevel` parsing + let logger = core.createLogger(); try { - util$1.initContext(context); - context.logger.debug(`normalized argv: ${JSON.stringify(context.argv)}`); + const logLevel = core.parseArgvWithoutPlugins(rawArguments, logger, "loglevel").loglevel; - if (context.argv.check && context.argv["list-different"]) { - context.logger.error("Cannot use --check and --list-different together."); - process.exit(1); + if (logLevel !== logger.logLevel) { + logger = core.createLogger(logLevel); } - if (context.argv.write && context.argv["debug-check"]) { - context.logger.error("Cannot use --write and --debug-check together."); - process.exit(1); - } + await main(rawArguments, logger); + } catch (error) { + logger.error(error.message); + process.exitCode = 1; + } +} - if (context.argv["find-config-path"] && context.filePatterns.length) { - context.logger.error("Cannot use --find-config-path with multiple files"); - process.exit(1); - } +async function main(rawArguments, logger) { + const context = new core.Context({ + rawArguments, + logger + }); + logger.debug(`normalized argv: ${JSON.stringify(context.argv)}`); - if (context.argv["file-info"] && context.filePatterns.length) { - context.logger.error("Cannot use --file-info with multiple files"); - process.exit(1); - } + if (context.argv.check && context.argv["list-different"]) { + throw new Error("Cannot use --check and --list-different together."); + } - if (context.argv.version) { - context.logger.log(src.version); - process.exit(0); - } + if (context.argv.write && context.argv["debug-check"]) { + throw new Error("Cannot use --write and --debug-check together."); + } - if (context.argv.help !== undefined) { - context.logger.log(typeof context.argv.help === "string" && context.argv.help !== "" ? util$1.createDetailedUsage(context, context.argv.help) : util$1.createUsage(context)); - process.exit(0); - } + if (context.argv["find-config-path"] && context.filePatterns.length > 0) { + throw new Error("Cannot use --find-config-path with multiple files"); + } - if (context.argv["support-info"]) { - context.logger.log(src.format(fastJsonStableStringify(src.getSupportInfo()), { - parser: "json" - })); - process.exit(0); - } + if (context.argv["file-info"] && context.filePatterns.length > 0) { + throw new Error("Cannot use --file-info with multiple files"); + } - const hasFilePatterns = context.filePatterns.length !== 0; - const useStdin = !hasFilePatterns && (!process.stdin.isTTY || context.args["stdin-filepath"]); + if (context.argv.version) { + logger.log(prettier$1.version); + return; + } - if (context.argv["find-config-path"]) { - util$1.logResolvedConfigPathOrDie(context); - } else if (context.argv["file-info"]) { - util$1.logFileInfoOrDie(context); - } else if (useStdin) { - util$1.formatStdin(context); - } else if (hasFilePatterns) { - util$1.formatFiles(context); - } else { - context.logger.log(util$1.createUsage(context)); - process.exit(1); - } - } catch (error) { - context.logger.error(error.message); - process.exit(1); + if (context.argv.help !== undefined) { + logger.log(typeof context.argv.help === "string" && context.argv.help !== "" ? core.createDetailedUsage(context, context.argv.help) : core.createUsage(context)); + return; + } + + if (context.argv["support-info"]) { + logger.log(prettier$1.format(fastJsonStableStringify(prettier$1.getSupportInfo()), { + parser: "json" + })); + return; + } + + const hasFilePatterns = context.filePatterns.length > 0; + const useStdin = !hasFilePatterns && (!process.stdin.isTTY || context.argv["stdin-filepath"]); + + if (context.argv["find-config-path"]) { + await core.logResolvedConfigPathOrDie(context); + } else if (context.argv["file-info"]) { + await core.logFileInfoOrDie(context); + } else if (useStdin) { + await core.formatStdin(context); + } else if (hasFilePatterns) { + await core.formatFiles(context); + } else { + logger.log(core.createUsage(context)); + process.exitCode = 1; } } @@ -16520,4 +18810,6 @@ var cli = { run }; -cli.run(process.argv.slice(2)); +var prettier = cli.run(process.argv.slice(2)); + +module.exports = prettier; diff --git a/node_modules/prettier/doc.js b/node_modules/prettier/doc.js index bab01056ef..ce91300fef 100644 --- a/node_modules/prettier/doc.js +++ b/node_modules/prettier/doc.js @@ -29,7 +29,7 @@ */ - function indent(contents) { + function indent$1(contents) { return { type: "indent", @@ -37,18 +37,18 @@ }; } /** - * @param {number | string} n + * @param {number | string} widthOrString * @param {Doc} contents * @returns Doc */ - function align(n, contents) { + function align(widthOrString, contents) { return { type: "align", contents, - n + n: widthOrString }; } /** @@ -58,14 +58,13 @@ */ - function group(contents, opts) { - opts = opts || {}; + function group(contents, opts = {}) { return { type: "group", id: opts.id, contents, - break: !!opts.shouldBreak, + break: Boolean(opts.shouldBreak), expandedStates: opts.expandedStates }; } @@ -76,7 +75,7 @@ function dedentToRoot(contents) { - return align(-Infinity, contents); + return align(Number.NEGATIVE_INFINITY, contents); } /** * @param {Doc} contents @@ -107,7 +106,7 @@ function conditionalGroup(states, opts) { - return group(states[0], Object.assign({}, opts, { + return group(states[0], Object.assign(Object.assign({}, opts), {}, { expandedStates: states })); } @@ -117,7 +116,7 @@ */ - function fill(parts) { + function fill$1(parts) { return { type: "fill", @@ -132,8 +131,7 @@ */ - function ifBreak(breakContents, flatContents, opts) { - opts = opts || {}; + function ifBreak(breakContents, flatContents, opts = {}) { return { type: "if-break", @@ -142,6 +140,22 @@ groupId: opts.groupId }; } + /** + * Optimized version of `ifBreak(indent(doc), doc, { groupId: ... })` + * @param {Doc} contents + * @param {{ groupId: symbol, negate?: boolean }} opts + * @returns Doc + */ + + + function indentIfBreak(contents, opts) { + return { + type: "indent-if-break", + contents, + groupId: opts.groupId, + negate: opts.negate + }; + } /** * @param {Doc} contents * @returns Doc @@ -162,26 +176,30 @@ const breakParent = { type: "break-parent" }; - const trim = { + const trim$1 = { type: "trim" }; + const hardlineWithoutBreakParent = { + type: "line", + hard: true + }; + const literallineWithoutBreakParent = { + type: "line", + hard: true, + literal: true + }; const line = { type: "line" }; const softline = { type: "line", soft: true - }; - const hardline = concat([{ - type: "line", - hard: true - }, breakParent]); - const literalline = concat([{ - type: "line", - hard: true, - literal: true - }, breakParent]); - const cursor = { + }; // eslint-disable-next-line prettier-internal-rules/no-doc-builder-concat + + const hardline = concat([hardlineWithoutBreakParent, breakParent]); // eslint-disable-next-line prettier-internal-rules/no-doc-builder-concat + + const literalline$1 = concat([literallineWithoutBreakParent, breakParent]); + const cursor$1 = { type: "cursor", placeholder: Symbol("cursor") }; @@ -191,7 +209,7 @@ * @returns Doc */ - function join(sep, arr) { + function join$1(sep, arr) { const res = []; for (let i = 0; i < arr.length; i++) { @@ -200,7 +218,8 @@ } res.push(arr[i]); - } + } // eslint-disable-next-line prettier-internal-rules/no-doc-builder-concat + return concat(res); } @@ -217,41 +236,53 @@ if (size > 0) { // Use indent to add tabs for all the levels of tabs we need for (let i = 0; i < Math.floor(size / tabWidth); ++i) { - aligned = indent(aligned); + aligned = indent$1(aligned); } // Use align for all the spaces that are needed aligned = align(size % tabWidth, aligned); // size is absolute from 0 and not relative to the current // indentation, so we use -Infinity to reset the indentation to 0 - aligned = align(-Infinity, aligned); + aligned = align(Number.NEGATIVE_INFINITY, aligned); } return aligned; } + function label(label, contents) { + return { + type: "label", + label, + contents + }; + } + var docBuilders = { concat, - join, + join: join$1, line, softline, hardline, - literalline, + literalline: literalline$1, group, conditionalGroup, - fill, + fill: fill$1, lineSuffix, lineSuffixBoundary, - cursor, + cursor: cursor$1, breakParent, ifBreak, - trim, - indent, + trim: trim$1, + indent: indent$1, + indentIfBreak, align, addAlignmentToDoc, markAsRoot, dedentToRoot, - dedent + dedent, + hardlineWithoutBreakParent, + literallineWithoutBreakParent, + label }; var ansiRegex = ({ @@ -295,22 +326,26 @@ }; var isFullwidthCodePoint_1 = isFullwidthCodePoint; - var _default = isFullwidthCodePoint; - isFullwidthCodePoint_1.default = _default; + var _default$1 = isFullwidthCodePoint; + isFullwidthCodePoint_1.default = _default$1; - var emojiRegex = function emojiRegex() { + var emojiRegex = function () { // https://mths.be/emoji return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; }; const stringWidth = string => { - string = string.replace(emojiRegex(), ' '); - if (typeof string !== 'string' || string.length === 0) { return 0; } string = stripAnsi(string); + + if (string.length === 0) { + return 0; + } + + string = string.replace(emojiRegex(), ' '); let width = 0; for (let i = 0; i < string.length; i++) { @@ -338,8 +373,8 @@ var stringWidth_1 = stringWidth; // TODO: remove this in the next major version - var _default$1 = stringWidth; - stringWidth_1.default = _default$1; + var _default = stringWidth; + stringWidth_1.default = _default; var escapeStringRegexp = string => { if (typeof string !== 'string') { @@ -351,7 +386,9 @@ return string.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d'); }; - var getLast = arr => arr[arr.length - 1]; + const getLast$1 = arr => arr[arr.length - 1]; + + var getLast_1 = getLast$1; function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; @@ -368,1223 +405,2103 @@ return target; } - function _taggedTemplateLiteral(strings, raw) { - if (!raw) { - raw = strings.slice(0); - } + function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; - return Object.freeze(Object.defineProperties(strings, { - raw: { - value: Object.freeze(raw) - } - })); - } + var target = _objectWithoutPropertiesLoose(source, excluded); - var global$1 = typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}; + var key, i; - // based off https://github.com/defunctzombie/node-process/blob/master/browser.js + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } - function defaultClearTimeout() { - throw new Error('clearTimeout has not been defined'); + return target; } - var cachedSetTimeout = defaultSetTimout; - var cachedClearTimeout = defaultClearTimeout; + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - if (typeof global$1.setTimeout === 'function') { - cachedSetTimeout = setTimeout; + function createCommonjsModule(fn) { + var module = { exports: {} }; + return fn(module, module.exports), module.exports; } - if (typeof global$1.clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } + var check = function (it) { + return it && it.Math == Math && it; + }; - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } // if setTimeout wasn't available but was latter defined + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$2 = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof commonjsGlobal == 'object' && commonjsGlobal) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var fails = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; + }); - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } + var $propertyIsEnumerable = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch (e) { - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch (e) { - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - } + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } // if clearTimeout wasn't available but was latter defined + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + var f$4 = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable; + var objectPropertyIsEnumerable = { + f: f$4 + }; - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } + var createPropertyDescriptor = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e) { - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e) { - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - } + var toString = {}.toString; - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; + var classofRaw = function (it) { + return toString.call(it).slice(8, -1); + }; - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } + var split = ''.split; + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); + }) ? function (it) { + return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); + } : Object; + + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; + }; - draining = false; + // toObject with fallback for non-array-like ES3 strings - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } - } - function drainQueue() { - if (draining) { - return; - } + var toIndexedObject = function (it) { + return indexedObject(requireObjectCoercible(it)); + }; - var timeout = runTimeout(cleanUpNextTick); - draining = true; - var len = queue.length; + var isObject = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; + }; - while (len) { - currentQueue = queue; - queue = []; + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + // instead of the ES6 spec version, we didn't implement @@toPrimitive case + // and the second argument - flag - preferred type is a string + var toPrimitive = function (input, PREFERRED_STRING) { + if (!isObject(input)) return input; + var fn, val; + if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; + if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + throw TypeError("Can't convert object to primitive value"); + }; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject = function (argument) { + return Object(requireObjectCoercible(argument)); + }; - queueIndex = -1; - len = queue.length; - } + var hasOwnProperty = {}.hasOwnProperty; - currentQueue = null; - draining = false; - runClearTimeout(timeout); - } + var has$1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty.call(toObject(it), key); + }; - function nextTick(fun) { - var args = new Array(arguments.length - 1); + var document$1 = global$2.document; + // typeof document.createElement is 'object' in old IE + var EXISTS = isObject(document$1) && isObject(document$1.createElement); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } + var documentCreateElement = function (it) { + return EXISTS ? document$1.createElement(it) : {}; + }; - queue.push(new Item(fun, args)); + // Thank's IE8 for his funny defineProperty + var ie8DomDefine = !descriptors && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- requied for testing + return Object.defineProperty(documentCreateElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; + }); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - } // v8 likes predictible objects + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + var f$3 = descriptors ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (ie8DomDefine) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has$1(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); + }; - function Item(fun, array) { - this.fun = fun; - this.array = array; - } + var objectGetOwnPropertyDescriptor = { + f: f$3 + }; - Item.prototype.run = function () { - this.fun.apply(null, this.array); + var anObject = function (it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; }; - var title = 'browser'; - var platform = 'browser'; - var browser = true; - var env = {}; - var argv = []; - var version = ''; // empty string to avoid regexp issues + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty = Object.defineProperty; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + var f$2 = descriptors ? $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (ie8DomDefine) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; - var versions = {}; - var release = {}; - var config = {}; + var objectDefineProperty = { + f: f$2 + }; - function noop() {} + var createNonEnumerableProperty = descriptors ? function (object, key, value) { + return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; - var on = noop; - var addListener = noop; - var once = noop; - var off = noop; - var removeListener = noop; - var removeAllListeners = noop; - var emit = noop; - function binding(name) { - throw new Error('process.binding is not supported'); - } - function cwd() { - return '/'; - } - function chdir(dir) { - throw new Error('process.chdir is not supported'); + var setGlobal = function (key, value) { + try { + createNonEnumerableProperty(global$2, key, value); + } catch (error) { + global$2[key] = value; + } return value; + }; + + var SHARED = '__core-js_shared__'; + var store$1 = global$2[SHARED] || setGlobal(SHARED, {}); + + var sharedStore = store$1; + + var functionToString = Function.toString; + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (typeof sharedStore.inspectSource != 'function') { + sharedStore.inspectSource = function (it) { + return functionToString.call(it); + }; } - function umask() { - return 0; - } // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js - var performance = global$1.performance || {}; + var inspectSource = sharedStore.inspectSource; - var performanceNow = performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function () { - return new Date().getTime(); - }; // generate timestamp or delta - // see http://nodejs.org/api/process.html#process_process_hrtime + var WeakMap$2 = global$2.WeakMap; + var nativeWeakMap = typeof WeakMap$2 === 'function' && /native code/.test(inspectSource(WeakMap$2)); - function hrtime(previousTimestamp) { - var clocktime = performanceNow.call(performance) * 1e-3; - var seconds = Math.floor(clocktime); - var nanoseconds = Math.floor(clocktime % 1 * 1e9); + var shared = createCommonjsModule(function (module) { + (module.exports = function (key, value) { + return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.14.0', + mode: 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' + }); + }); - if (previousTimestamp) { - seconds = seconds - previousTimestamp[0]; - nanoseconds = nanoseconds - previousTimestamp[1]; + var id = 0; + var postfix = Math.random(); - if (nanoseconds < 0) { - seconds--; - nanoseconds += 1e9; - } - } + var uid = function (key) { + return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); + }; - return [seconds, nanoseconds]; - } - var startTime = new Date(); - function uptime() { - var currentTime = new Date(); - var dif = currentTime - startTime; - return dif / 1000; - } - var process = { - nextTick: nextTick, - title: title, - browser: browser, - env: env, - argv: argv, - version: version, - versions: versions, - on: on, - addListener: addListener, - once: once, - off: off, - removeListener: removeListener, - removeAllListeners: removeAllListeners, - emit: emit, - binding: binding, - cwd: cwd, - chdir: chdir, - umask: umask, - hrtime: hrtime, - platform: platform, - release: release, - config: config, - uptime: uptime + var keys = shared('keys'); + + var sharedKey = function (key) { + return keys[key] || (keys[key] = uid(key)); }; - const debug = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; - var debug_1 = debug; + var hiddenKeys$1 = {}; - // Note: this is the semver.org version of the spec that it implements - // Not necessarily the package version of this code. - const SEMVER_SPEC_VERSION = '2.0.0'; - const MAX_LENGTH = 256; - const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ - 9007199254740991; // Max safe segment length for coercion. + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var WeakMap$1 = global$2.WeakMap; + var set, get, has; - const MAX_SAFE_COMPONENT_LENGTH = 16; - var constants = { - SEMVER_SPEC_VERSION, - MAX_LENGTH, - MAX_SAFE_INTEGER, - MAX_SAFE_COMPONENT_LENGTH + var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); }; - function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function (path, base) { - return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); - } - }, fn(module, module.exports), module.exports; - } + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; - function getCjsExportFromNamespace (n) { - return n && n['default'] || n; + if (nativeWeakMap || sharedStore.state) { + var store = sharedStore.state || (sharedStore.state = new WeakMap$1()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; + }; + get = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; + } else { + var STATE = sharedKey('state'); + hiddenKeys$1[STATE] = true; + set = function (it, metadata) { + if (has$1(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return has$1(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return has$1(it, STATE); + }; } - function commonjsRequire () { - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); - } + var internalState = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor + }; - var re_1 = createCommonjsModule(function (module, exports) { - const { - MAX_SAFE_COMPONENT_LENGTH - } = constants; - exports = module.exports = {}; // The actual regexps go on exports.re + var redefine = createCommonjsModule(function (module) { + var getInternalState = internalState.get; + var enforceInternalState = internalState.enforce; + var TEMPLATE = String(String).split('String'); + + (module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var state; + if (typeof value == 'function') { + if (typeof key == 'string' && !has$1(value, 'name')) { + createNonEnumerableProperty(value, 'name', key); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + } + if (O === global$2) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + })(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); + }); + }); - const re = exports.re = []; - const src = exports.src = []; - const t = exports.t = {}; - let R = 0; + var path = global$2; - const createToken = (name, value, isGlobal) => { - const index = R++; - debug_1(index, value); - t[name] = index; - src[index] = value; - re[index] = new RegExp(value, isGlobal ? 'g' : undefined); - }; // The following Regular Expressions can be used for tokenizing, - // validating, and parsing SemVer version strings. - // ## Numeric Identifier - // A single `0`, or a non-zero digit followed by zero or more digits. + var aFunction$1 = function (variable) { + return typeof variable == 'function' ? variable : undefined; + }; + var getBuiltIn = function (namespace, method) { + return arguments.length < 2 ? aFunction$1(path[namespace]) || aFunction$1(global$2[namespace]) + : path[namespace] && path[namespace][method] || global$2[namespace] && global$2[namespace][method]; + }; - createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); - createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); // ## Non-numeric Identifier - // Zero or more digits, followed by a letter or hyphen, and then zero or - // more letters, digits, or hyphens. + var ceil = Math.ceil; + var floor$1 = Math.floor; - createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); // ## Main Version - // Three dot-separated numeric identifiers. + // `ToInteger` abstract operation + // https://tc39.es/ecma262/#sec-tointeger + var toInteger = function (argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$1 : ceil)(argument); + }; - createToken('MAINVERSION', "(".concat(src[t.NUMERICIDENTIFIER], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIER], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIER], ")")); - createToken('MAINVERSIONLOOSE', "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")")); // ## Pre-release Version Identifier - // A numeric identifier, or a non-numeric identifier. + var min$1 = Math.min; - createToken('PRERELEASEIDENTIFIER', "(?:".concat(src[t.NUMERICIDENTIFIER], "|").concat(src[t.NONNUMERICIDENTIFIER], ")")); - createToken('PRERELEASEIDENTIFIERLOOSE', "(?:".concat(src[t.NUMERICIDENTIFIERLOOSE], "|").concat(src[t.NONNUMERICIDENTIFIER], ")")); // ## Pre-release Version - // Hyphen, followed by one or more dot-separated pre-release version - // identifiers. + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength = function (argument) { + return argument > 0 ? min$1(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; - createToken('PRERELEASE', "(?:-(".concat(src[t.PRERELEASEIDENTIFIER], "(?:\\.").concat(src[t.PRERELEASEIDENTIFIER], ")*))")); - createToken('PRERELEASELOOSE', "(?:-?(".concat(src[t.PRERELEASEIDENTIFIERLOOSE], "(?:\\.").concat(src[t.PRERELEASEIDENTIFIERLOOSE], ")*))")); // ## Build Metadata Identifier - // Any combination of digits, letters, or hyphens. + var max = Math.max; + var min = Math.min; - createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); // ## Build Metadata - // Plus sign, followed by one or more period-separated build metadata - // identifiers. + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; - createToken('BUILD', "(?:\\+(".concat(src[t.BUILDIDENTIFIER], "(?:\\.").concat(src[t.BUILDIDENTIFIER], ")*))")); // ## Full Version String - // A main version, followed optionally by a pre-release version and - // build metadata. - // Note that the only major, minor, patch, and pre-release sections of - // the version string are capturing groups. The build metadata is not a - // capturing group, because it should not ever be used in version - // comparison. + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; - createToken('FULLPLAIN', "v?".concat(src[t.MAINVERSION]).concat(src[t.PRERELEASE], "?").concat(src[t.BUILD], "?")); - createToken('FULL', "^".concat(src[t.FULLPLAIN], "$")); // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. - // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty - // common in the npm registry. + var arrayIncludes = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) + }; - createToken('LOOSEPLAIN', "[v=\\s]*".concat(src[t.MAINVERSIONLOOSE]).concat(src[t.PRERELEASELOOSE], "?").concat(src[t.BUILD], "?")); - createToken('LOOSE', "^".concat(src[t.LOOSEPLAIN], "$")); - createToken('GTLT', '((?:<|>)?=?)'); // Something like "2.*" or "1.2.x". - // Note that "x.x" is a valid xRange identifer, meaning "any version" - // Only the first item is strictly required. + var indexOf = arrayIncludes.indexOf; - createToken('XRANGEIDENTIFIERLOOSE', "".concat(src[t.NUMERICIDENTIFIERLOOSE], "|x|X|\\*")); - createToken('XRANGEIDENTIFIER', "".concat(src[t.NUMERICIDENTIFIER], "|x|X|\\*")); - createToken('XRANGEPLAIN', "[v=\\s]*(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:".concat(src[t.PRERELEASE], ")?").concat(src[t.BUILD], "?") + ")?)?"); - createToken('XRANGEPLAINLOOSE', "[v=\\s]*(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:".concat(src[t.PRERELEASELOOSE], ")?").concat(src[t.BUILD], "?") + ")?)?"); - createToken('XRANGE', "^".concat(src[t.GTLT], "\\s*").concat(src[t.XRANGEPLAIN], "$")); - createToken('XRANGELOOSE', "^".concat(src[t.GTLT], "\\s*").concat(src[t.XRANGEPLAINLOOSE], "$")); // Coercion. - // Extract anything that could conceivably be a part of a valid semver - createToken('COERCE', "".concat('(^|[^\\d])' + '(\\d{1,').concat(MAX_SAFE_COMPONENT_LENGTH, "})") + "(?:\\.(\\d{1,".concat(MAX_SAFE_COMPONENT_LENGTH, "}))?") + "(?:\\.(\\d{1,".concat(MAX_SAFE_COMPONENT_LENGTH, "}))?") + "(?:$|[^\\d])"); - createToken('COERCERTL', src[t.COERCE], true); // Tilde ranges. - // Meaning is "reasonably at or greater than" + var objectKeysInternal = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has$1(O, key = names[i++])) { + ~indexOf(result, key) || result.push(key); + } + return result; + }; - createToken('LONETILDE', '(?:~>?)'); - createToken('TILDETRIM', "(\\s*)".concat(src[t.LONETILDE], "\\s+"), true); - exports.tildeTrimReplace = '$1~'; - createToken('TILDE', "^".concat(src[t.LONETILDE]).concat(src[t.XRANGEPLAIN], "$")); - createToken('TILDELOOSE', "^".concat(src[t.LONETILDE]).concat(src[t.XRANGEPLAINLOOSE], "$")); // Caret ranges. - // Meaning is "at least and backwards compatible with" + // IE8- don't enum bug keys + var enumBugKeys = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; - createToken('LONECARET', '(?:\\^)'); - createToken('CARETTRIM', "(\\s*)".concat(src[t.LONECARET], "\\s+"), true); - exports.caretTrimReplace = '$1^'; - createToken('CARET', "^".concat(src[t.LONECARET]).concat(src[t.XRANGEPLAIN], "$")); - createToken('CARETLOOSE', "^".concat(src[t.LONECARET]).concat(src[t.XRANGEPLAINLOOSE], "$")); // A simple gt/lt/eq thing, or just "" to indicate "any version" + var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - createToken('COMPARATORLOOSE', "^".concat(src[t.GTLT], "\\s*(").concat(src[t.LOOSEPLAIN], ")$|^$")); - createToken('COMPARATOR', "^".concat(src[t.GTLT], "\\s*(").concat(src[t.FULLPLAIN], ")$|^$")); // An expression to strip any whitespace between the gtlt and the thing - // it modifies, so that `> 1.2.3` ==> `>1.2.3` + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return objectKeysInternal(O, hiddenKeys); + }; - createToken('COMPARATORTRIM', "(\\s*)".concat(src[t.GTLT], "\\s*(").concat(src[t.LOOSEPLAIN], "|").concat(src[t.XRANGEPLAIN], ")"), true); - exports.comparatorTrimReplace = '$1$2$3'; // Something like `1.2.3 - 1.2.4` - // Note that these all use the loose form, because they'll be - // checked against either the strict or loose comparator form - // later. + var objectGetOwnPropertyNames = { + f: f$1 + }; - createToken('HYPHENRANGE', "^\\s*(".concat(src[t.XRANGEPLAIN], ")") + "\\s+-\\s+" + "(".concat(src[t.XRANGEPLAIN], ")") + "\\s*$"); - createToken('HYPHENRANGELOOSE', "^\\s*(".concat(src[t.XRANGEPLAINLOOSE], ")") + "\\s+-\\s+" + "(".concat(src[t.XRANGEPLAINLOOSE], ")") + "\\s*$"); // Star ranges basically just allow anything at all. + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + var f = Object.getOwnPropertySymbols; - createToken('STAR', '(<|>)?=?\\s*\\*'); // >=0.0.0 is like a star + var objectGetOwnPropertySymbols = { + f: f + }; - createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); - createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); - }); + // all object keys, includes non-enumerable and symbols + var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = objectGetOwnPropertyNames.f(anObject(it)); + var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + }; - const numeric = /^[0-9]+$/; + var copyConstructorProperties = function (target, source) { + var keys = ownKeys(source); + var defineProperty = objectDefineProperty.f; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + }; - const compareIdentifiers = (a, b) => { - const anum = numeric.test(a); - const bnum = numeric.test(b); + var replacement = /#|\.prototype\./; - if (anum && bnum) { - a = +a; - b = +b; + var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : typeof detection == 'function' ? fails(detection) + : !!detection; + }; + + var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; + + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = 'N'; + var POLYFILL = isForced.POLYFILL = 'P'; + + var isForced_1 = isForced; + + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + + + + + + + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$2; + } else if (STATIC) { + target = global$2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global$2[TARGET] || {}).prototype; } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } + }; - return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray = Array.isArray || function isArray(arg) { + return classofRaw(arg) == 'Array'; }; - const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); + var aFunction = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; + }; - var identifiers = { - compareIdentifiers, - rcompareIdentifiers + // optional / simple context binding + var functionBindContext = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; }; - const { - MAX_LENGTH: MAX_LENGTH$1, - MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1 - } = constants; - const { - re, - t - } = re_1; - const { - compareIdentifiers: compareIdentifiers$1 - } = identifiers; + // `FlattenIntoArray` abstract operation + // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray + var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? functionBindContext(mapper, thisArg, 3) : false; + var element; - class SemVer { - constructor(version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; - if (version instanceof SemVer) { - if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { - return version; + if (depth > 0 && isArray(element)) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; } else { - version = version.version; + if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length'); + target[targetIndex] = element; } - } else if (typeof version !== 'string') { - throw new TypeError("Invalid Version: ".concat(version)); - } - if (version.length > MAX_LENGTH$1) { - throw new TypeError("version is longer than ".concat(MAX_LENGTH$1, " characters")); + targetIndex++; } + sourceIndex++; + } + return targetIndex; + }; - debug_1('SemVer', version, options); - this.options = options; - this.loose = !!options.loose; // this isn't actually relevant for versions, but keep it so that we - // don't run into trouble passing this.options around. + var flattenIntoArray_1 = flattenIntoArray; - this.includePrerelease = !!options.includePrerelease; - const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; - if (!m) { - throw new TypeError("Invalid Version: ".concat(version)); - } + var process = global$2.process; + var versions$1 = process && process.versions; + var v8 = versions$1 && versions$1.v8; + var match, version$2; - this.raw = version; // these are actually numbers + if (v8) { + match = v8.split('.'); + version$2 = match[0] < 4 ? 1 : match[0] + match[1]; + } else if (engineUserAgent) { + match = engineUserAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = engineUserAgent.match(/Chrome\/(\d+)/); + if (match) version$2 = match[1]; + } + } - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; + var engineV8Version = version$2 && +version$2; - if (this.major > MAX_SAFE_INTEGER$1 || this.major < 0) { - throw new TypeError('Invalid major version'); - } + /* eslint-disable es/no-symbol -- required for testing */ - if (this.minor > MAX_SAFE_INTEGER$1 || this.minor < 0) { - throw new TypeError('Invalid minor version'); - } + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && engineV8Version && engineV8Version < 41; + }); - if (this.patch > MAX_SAFE_INTEGER$1 || this.patch < 0) { - throw new TypeError('Invalid patch version'); - } // numberify any prerelease numeric ids + /* eslint-disable es/no-symbol -- required for testing */ + var useSymbolAsUid = nativeSymbol + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; - if (!m[4]) { - this.prerelease = []; - } else { - this.prerelease = m[4].split('.').map(id => { - if (/^[0-9]+$/.test(id)) { - const num = +id; + var WellKnownSymbolsStore = shared('wks'); + var Symbol$1 = global$2.Symbol; + var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid; - if (num >= 0 && num < MAX_SAFE_INTEGER$1) { - return num; - } - } + var wellKnownSymbol = function (name) { + if (!has$1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) { + if (nativeSymbol && has$1(Symbol$1, name)) { + WellKnownSymbolsStore[name] = Symbol$1[name]; + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } + } return WellKnownSymbolsStore[name]; + }; - return id; - }); + var SPECIES = wellKnownSymbol('species'); + + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate = function (originalArray, length) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); + }; - this.build = m[5] ? m[5].split('.') : []; - this.format(); + // `Array.prototype.flatMap` method + // https://tc39.es/ecma262/#sec-array.prototype.flatmap + _export({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = toLength(O.length); + var A; + aFunction(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; } + }); - format() { - this.version = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch); + // TODO: use something more complex like timsort? + var floor = Math.floor; + + var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge( + mergeSort(array.slice(0, middle), comparefn), + mergeSort(array.slice(middle), comparefn), + comparefn + ); + }; - if (this.prerelease.length) { - this.version += "-".concat(this.prerelease.join('.')); + var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; } + if (j !== i++) array[j] = element; + } return array; + }; - return this.version; - } + var merge = function (left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + var result = []; - toString() { - return this.version; - } + while (lindex < llength || rindex < rlength) { + if (lindex < llength && rindex < rlength) { + result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]); + } else { + result.push(lindex < llength ? left[lindex++] : right[rindex++]); + } + } return result; + }; - compare(other) { - debug_1('SemVer.compare', this.version, this.options, other); + var arraySort = mergeSort; - if (!(other instanceof SemVer)) { - if (typeof other === 'string' && other === this.version) { - return 0; - } + var arrayMethodIsStrict = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing + method.call(null, argument || function () { throw 1; }, 1); + }); + }; - other = new SemVer(other, this.options); - } + var firefox = engineUserAgent.match(/firefox\/(\d+)/i); - if (other.version === this.version) { - return 0; + var engineFfVersion = !!firefox && +firefox[1]; + + var engineIsIeOrEdge = /MSIE|Trident/.test(engineUserAgent); + + var webkit = engineUserAgent.match(/AppleWebKit\/(\d+)\./); + + var engineWebkitVersion = !!webkit && +webkit[1]; + + var test$1 = []; + var nativeSort = test$1.sort; + + // IE8- + var FAILS_ON_UNDEFINED = fails(function () { + test$1.sort(undefined); + }); + // V8 bug + var FAILS_ON_NULL = fails(function () { + test$1.sort(null); + }); + // Old WebKit + var STRICT_METHOD = arrayMethodIsStrict('sort'); + + var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (engineV8Version) return engineV8Version < 70; + if (engineFfVersion && engineFfVersion > 3) return; + if (engineIsIeOrEdge) return true; + if (engineWebkitVersion) return engineWebkitVersion < 603; + + var result = ''; + var code, chr, value, index; + + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); + + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; } - return this.compareMain(other) || this.comparePre(other); + for (index = 0; index < 47; index++) { + test$1.push({ k: chr + index, v: value }); + } } - compareMain(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); - } + test$1.sort(function (a, b) { return b.v - a.v; }); - return compareIdentifiers$1(this.major, other.major) || compareIdentifiers$1(this.minor, other.minor) || compareIdentifiers$1(this.patch, other.patch); + for (index = 0; index < test$1.length; index++) { + chr = test$1[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; } - comparePre(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); - } // NOT having a prerelease is > having one + return result !== 'DGBEFHACIJK'; + }); + var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; - if (this.prerelease.length && !other.prerelease.length) { - return -1; - } else if (!this.prerelease.length && other.prerelease.length) { - return 1; - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0; - } + var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return String(x) > String(y) ? 1 : -1; + }; + }; - let i = 0; + // `Array.prototype.sort` method + // https://tc39.es/ecma262/#sec-array.prototype.sort + _export({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aFunction(comparefn); - do { - const a = this.prerelease[i]; - const b = other.prerelease[i]; - debug_1('prerelease compare', i, a, b); + var array = toObject(this); - if (a === undefined && b === undefined) { - return 0; - } else if (b === undefined) { - return 1; - } else if (a === undefined) { - return -1; - } else if (a === b) { - continue; - } else { - return compareIdentifiers$1(a, b); - } - } while (++i); - } + if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn); - compareBuild(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + var items = []; + var arrayLength = toLength(array.length); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) items.push(array[index]); } - let i = 0; + items = arraySort(items, getSortCompare(comparefn)); + itemsLength = items.length; + index = 0; - do { - const a = this.build[i]; - const b = other.build[i]; - debug_1('prerelease compare', i, a, b); + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) delete array[index++]; - if (a === undefined && b === undefined) { - return 0; - } else if (b === undefined) { - return 1; - } else if (a === undefined) { - return -1; - } else if (a === b) { - continue; - } else { - return compareIdentifiers$1(a, b); - } - } while (++i); - } // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. + return array; + } + }); + var iterators = {}; - inc(release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; + var ITERATOR$1 = wellKnownSymbol('iterator'); + var ArrayPrototype = Array.prototype; - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; + // check on default Array iterator + var isArrayIteratorMethod = function (it) { + return it !== undefined && (iterators.Array === it || ArrayPrototype[ITERATOR$1] === it); + }; - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. + var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); + var test = {}; - case 'prerelease': - if (this.prerelease.length === 0) { - this.inc('patch', identifier); - } - - this.inc('pre', identifier); - break; - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { - this.major++; - } + test[TO_STRING_TAG$1] = 'z'; - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; + var toStringTagSupport = String(test) === '[object z]'; - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++; - } + var TO_STRING_TAG = wellKnownSymbol('toStringTag'); + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - this.patch = 0; - this.prerelease = []; - break; + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) { - this.patch++; - } + // getting tag from ES6+ `Object.prototype.toString` + var classof = toStringTagSupport ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; + }; - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + var ITERATOR = wellKnownSymbol('iterator'); - case 'pre': - if (this.prerelease.length === 0) { - this.prerelease = [0]; - } else { - let i = this.prerelease.length; + var getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || iterators[classof(it)]; + }; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } - } + var iteratorClose = function (iterator) { + var returnMethod = iterator['return']; + if (returnMethod !== undefined) { + return anObject(returnMethod.call(iterator)).value; + } + }; - if (i === -1) { - // didn't increment anything - this.prerelease.push(0); - } - } + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0]; - } - } else { - this.prerelease = [identifier, 0]; - } - } + var iterate = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = functionBindContext(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator); + return new Result(true, condition); + }; - break; + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; - default: - throw new Error("invalid increment argument: ".concat(release)); + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = toLength(iterable.length); length > index; index++) { + result = callFn(iterable[index]); + if (result && result instanceof Result) return result; + } return new Result(false); } - - this.format(); - this.raw = this.version; - return this; + iterator = iterFn.call(iterable); } - } - - var semver = SemVer; - - const compare = (a, b, loose) => new semver(a, loose).compare(new semver(b, loose)); - - var compare_1 = compare; - - const lt = (a, b, loose) => compare_1(a, b, loose) < 0; - - var lt_1 = lt; - - const gte = (a, b, loose) => compare_1(a, b, loose) >= 0; - - var gte_1 = gte; - - var arrayify = (object, keyName) => Object.entries(object).map(([key, value]) => Object.assign({ - [keyName]: key - }, value)); - - var name = "prettier"; - var version$1 = "2.1.1"; - var description = "Prettier is an opinionated code formatter"; - var bin = "./bin/prettier.js"; - var repository = "prettier/prettier"; - var homepage = "https://prettier.io"; - var author = "James Long"; - var license = "MIT"; - var main = "./index.js"; - var browser$1 = "./standalone.js"; - var unpkg = "./standalone.js"; - var engines = { - node: ">=10.13.0" - }; - var files = [ - "index.js", - "standalone.js", - "src", - "bin" - ]; - var dependencies = { - "@angular/compiler": "10.0.12", - "@babel/code-frame": "7.10.4", - "@babel/parser": "7.11.2", - "@glimmer/syntax": "0.59.0", - "@iarna/toml": "2.2.5", - "@typescript-eslint/typescript-estree": "3.10.0", - "angular-estree-parser": "2.2.0", - "angular-html-parser": "1.7.1", - camelcase: "6.0.0", - chalk: "4.1.0", - "ci-info": "watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540", - "cjk-regex": "2.0.0", - cosmiconfig: "7.0.0", - dashify: "2.0.0", - diff: "4.0.2", - editorconfig: "0.15.3", - "editorconfig-to-prettier": "0.1.1", - "escape-string-regexp": "4.0.0", - esutils: "2.0.3", - "fast-glob": "3.2.4", - "fast-json-stable-stringify": "2.1.0", - "find-parent-dir": "0.3.0", - "flow-parser": "0.132.0", - "get-stream": "6.0.0", - globby: "11.0.1", - graphql: "15.3.0", - "html-element-attributes": "2.2.1", - "html-styles": "1.0.0", - "html-tag-names": "1.1.5", - "html-void-elements": "1.0.5", - ignore: "4.0.6", - "jest-docblock": "26.0.0", - json5: "2.1.3", - leven: "3.1.0", - "lines-and-columns": "1.1.6", - "linguist-languages": "7.10.0", - lodash: "4.17.20", - mem: "6.1.0", - minimatch: "3.0.4", - minimist: "1.2.5", - "n-readlines": "1.0.0", - outdent: "0.7.1", - "parse-srcset": "ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee", - "please-upgrade-node": "3.2.0", - "postcss-less": "3.1.4", - "postcss-media-query-parser": "0.2.3", - "postcss-scss": "2.1.1", - "postcss-selector-parser": "2.2.3", - "postcss-values-parser": "2.0.1", - "regexp-util": "1.2.2", - "remark-footnotes": "2.0.0", - "remark-math": "1.0.6", - "remark-parse": "8.0.3", - resolve: "1.17.0", - semver: "7.3.2", - "string-width": "4.2.0", - typescript: "4.0.2", - "unicode-regex": "3.0.0", - unified: "9.2.0", - vnopts: "1.0.2", - "yaml-unist-parser": "1.3.0" - }; - var devDependencies = { - "@babel/core": "7.11.4", - "@babel/preset-env": "7.11.0", - "@babel/types": "7.11.0", - "@glimmer/reference": "0.59.0", - "@rollup/plugin-alias": "3.1.1", - "@rollup/plugin-babel": "5.2.0", - "@rollup/plugin-commonjs": "14.0.0", - "@rollup/plugin-json": "4.1.0", - "@rollup/plugin-node-resolve": "9.0.0", - "@rollup/plugin-replace": "2.3.3", - "@types/estree": "0.0.45", - "@types/node": "14.6.0", - "@typescript-eslint/types": "3.10.0", - "babel-loader": "8.1.0", - benchmark: "2.1.4", - "builtin-modules": "3.1.0", - "cross-env": "7.0.2", - cspell: "4.1.0", - eslint: "7.7.0", - "eslint-config-prettier": "6.11.0", - "eslint-formatter-friendly": "7.0.0", - "eslint-plugin-import": "2.22.0", - "eslint-plugin-jest": "23.20.0", - "eslint-plugin-prettier-internal-rules": "file:scripts/tools/eslint-plugin-prettier-internal-rules", - "eslint-plugin-react": "7.20.6", - "eslint-plugin-unicorn": "21.0.0", - execa: "4.0.3", - jest: "26.4.2", - "jest-snapshot-serializer-ansi": "1.0.0", - "jest-snapshot-serializer-raw": "1.1.0", - "jest-watch-typeahead": "0.6.0", - "npm-run-all": "4.1.5", - prettier: "2.1.0", - rimraf: "3.0.2", - rollup: "2.26.5", - "rollup-plugin-node-globals": "1.4.0", - "rollup-plugin-terser": "7.0.0", - shelljs: "0.8.4", - "snapshot-diff": "0.8.1", - "strip-ansi": "6.0.0", - "synchronous-promise": "2.0.13", - tempy: "0.6.0", - "terser-webpack-plugin": "4.1.0", - webpack: "4.44.1" - }; - var scripts = { - prepublishOnly: "echo \"Error: must publish from dist/\" && exit 1", - "prepare-release": "yarn && yarn build && yarn test:dist", - test: "jest", - "test:dev-package": "cross-env INSTALL_PACKAGE=1 jest", - "test:dist": "cross-env NODE_ENV=production jest", - "test:dist-standalone": "cross-env NODE_ENV=production TEST_STANDALONE=1 jest", - "test:integration": "jest tests_integration", - "perf:repeat": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - "perf:repeat-inspect": "yarn && yarn build && cross-env NODE_ENV=production node --inspect-brk ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - "perf:benchmark": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-benchmark --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - lint: "run-p lint:*", - "lint:typecheck": "tsc", - "lint:eslint": "cross-env EFF_NO_LINK_RULES=true eslint . --format friendly", - "lint:changelog": "node ./scripts/lint-changelog.js", - "lint:prettier": "prettier . \"!test*\" --check", - "lint:dist": "eslint --no-eslintrc --no-ignore --env=es6,browser --parser-options=ecmaVersion:2016 \"dist/!(bin-prettier|index|third-party).js\"", - "lint:spellcheck": "cspell \"**/*\" \".github/**/*\"", - "lint:deps": "node ./scripts/check-deps.js", - fix: "run-s fix:eslint fix:prettier", - "fix:eslint": "yarn lint:eslint --fix", - "fix:prettier": "yarn lint:prettier --write", - build: "node ./scripts/build/build.js", - "build-docs": "node ./scripts/build-docs.js" + next = iterator.next; + while (!(step = next.call(iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator); + throw error; + } + if (typeof result == 'object' && result && result instanceof Result) return result; + } return new Result(false); }; - var _package = { - name: name, - version: version$1, - description: description, - bin: bin, - repository: repository, - homepage: homepage, - author: author, - license: license, - main: main, - browser: browser$1, - unpkg: unpkg, - engines: engines, - files: files, - dependencies: dependencies, - devDependencies: devDependencies, - scripts: scripts + + var createProperty = function (object, key, value) { + var propertyKey = toPrimitive(key); + if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; }; - var _package$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name, - version: version$1, - description: description, - bin: bin, - repository: repository, - homepage: homepage, - author: author, - license: license, - main: main, - browser: browser$1, - unpkg: unpkg, - engines: engines, - files: files, - dependencies: dependencies, - devDependencies: devDependencies, - scripts: scripts, - 'default': _package + // `Object.fromEntries` method + // https://github.com/tc39/proposal-object-from-entries + _export({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } }); - var lib = createCommonjsModule(function (module, exports) { + var global$1 = (typeof global$1 !== "undefined" ? global$1 : + typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : {}); - Object.defineProperty(exports, "__esModule", { - value: true - }); // In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either. + // shim for using process in browser + // based off https://github.com/defunctzombie/node-process/blob/master/browser.js - function noop() { - var args = []; + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + var cachedSetTimeout = defaultSetTimout; + var cachedClearTimeout = defaultClearTimeout; + if (typeof global$1.setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } + if (typeof global$1.clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); } - } - - function createWeakMap() { - if (typeof WeakMap !== 'undefined') { - return new WeakMap(); - } else { - return fakeSetOrMap(); + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } } - } - /** - * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything. - */ - function fakeSetOrMap() { - return { - add: noop, - delete: noop, - get: noop, - set: noop, - has: function has(k) { - return false; - } - }; - } // Safe hasOwnProperty + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } - var hop = Object.prototype.hasOwnProperty; - var has = function has(obj, prop) { - return hop.call(obj, prop); - }; // Copy all own enumerable properties from source to target + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } - function extend(target, source) { - for (var prop in source) { - if (has(source, prop)) { - target[prop] = source[prop]; - } + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + function nextTick(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); } + } + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + var title = 'browser'; + var platform = 'browser'; + var browser$1 = true; + var env = {}; + var argv = []; + var version$1 = ''; // empty string to avoid regexp issues + var versions = {}; + var release = {}; + var config = {}; - return target; - } + function noop() {} - var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/; - var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/; - var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/; - var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/; - var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/; + var on = noop; + var addListener = noop; + var once = noop; + var off = noop; + var removeListener = noop; + var removeAllListeners = noop; + var emit = noop; - function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) { - // If first interpolated value is a reference to outdent, - // determine indentation level from the indentation of the interpolated value. - var indentationLevel = 0; - var match = strings[0].match(reDetectIndentation); + function binding(name) { + throw new Error('process.binding is not supported'); + } - if (match) { - indentationLevel = match[1].length; + function cwd () { return '/' } + function chdir (dir) { + throw new Error('process.chdir is not supported'); + }function umask() { return 0; } + + // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js + var performance = global$1.performance || {}; + var performanceNow = + performance.now || + performance.mozNow || + performance.msNow || + performance.oNow || + performance.webkitNow || + function(){ return (new Date()).getTime() }; + + // generate timestamp or delta + // see http://nodejs.org/api/process.html#process_process_hrtime + function hrtime(previousTimestamp){ + var clocktime = performanceNow.call(performance)*1e-3; + var seconds = Math.floor(clocktime); + var nanoseconds = Math.floor((clocktime%1)*1e9); + if (previousTimestamp) { + seconds = seconds - previousTimestamp[0]; + nanoseconds = nanoseconds - previousTimestamp[1]; + if (nanoseconds<0) { + seconds--; + nanoseconds += 1e9; } + } + return [seconds,nanoseconds] + } - var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; - var reMatchIndent = new RegExp(reSource, 'g'); + var startTime = new Date(); + function uptime() { + var currentTime = new Date(); + var dif = currentTime - startTime; + return dif / 1000; + } - if (firstInterpolatedValueSetsIndentationLevel) { - strings = strings.slice(1); - } + var browser$1$1 = { + nextTick: nextTick, + title: title, + browser: browser$1, + env: env, + argv: argv, + version: version$1, + versions: versions, + on: on, + addListener: addListener, + once: once, + off: off, + removeListener: removeListener, + removeAllListeners: removeAllListeners, + emit: emit, + binding: binding, + cwd: cwd, + chdir: chdir, + umask: umask, + hrtime: hrtime, + platform: platform, + release: release, + config: config, + uptime: uptime + }; - var newline = options.newline, - trimLeadingNewline = options.trimLeadingNewline, - trimTrailingNewline = options.trimTrailingNewline; - var normalizeNewlines = typeof newline === 'string'; - var l = strings.length; - var outdentedStrings = strings.map(function (v, i) { - // Remove leading indentation from all lines - v = v.replace(reMatchIndent, '$1'); // Trim a leading newline from the first string + const debug = typeof browser$1$1 === 'object' && browser$1$1.env && browser$1$1.env.NODE_DEBUG && /\bsemver\b/i.test(browser$1$1.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; + var debug_1 = debug; - if (i === 0 && trimLeadingNewline) { - v = v.replace(reLeadingNewline, ''); - } // Trim a trailing newline from the last string + // Note: this is the semver.org version of the spec that it implements + // Not necessarily the package version of this code. + const SEMVER_SPEC_VERSION = '2.0.0'; + const MAX_LENGTH$1 = 256; + const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ + 9007199254740991; // Max safe segment length for coercion. + const MAX_SAFE_COMPONENT_LENGTH = 16; + var constants = { + SEMVER_SPEC_VERSION, + MAX_LENGTH: MAX_LENGTH$1, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, + MAX_SAFE_COMPONENT_LENGTH + }; - if (i === l - 1 && trimTrailingNewline) { - v = v.replace(reTrailingNewline, ''); - } // Normalize newlines + var re_1 = createCommonjsModule(function (module, exports) { + const { + MAX_SAFE_COMPONENT_LENGTH + } = constants; + exports = module.exports = {}; // The actual regexps go on exports.re + const re = exports.re = []; + const src = exports.src = []; + const t = exports.t = {}; + let R = 0; - if (normalizeNewlines) { - v = v.replace(/\r\n|\n|\r/g, function (_) { - return newline; - }); - } + const createToken = (name, value, isGlobal) => { + const index = R++; + debug_1(index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + }; // The following Regular Expressions can be used for tokenizing, + // validating, and parsing SemVer version strings. + // ## Numeric Identifier + // A single `0`, or a non-zero digit followed by zero or more digits. - return v; - }); - return outdentedStrings; - } - function concatStringsAndValues(strings, values) { - var ret = ''; + createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); + createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); // ## Non-numeric Identifier + // Zero or more digits, followed by a letter or hyphen, and then zero or + // more letters, digits, or hyphens. - for (var i = 0, l = strings.length; i < l; i++) { - ret += strings[i]; + createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); // ## Main Version + // Three dot-separated numeric identifiers. - if (i < l - 1) { - ret += values[i]; - } - } + createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})`); + createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); // ## Pre-release Version Identifier + // A numeric identifier, or a non-numeric identifier. - return ret; - } + createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); + createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); // ## Pre-release Version + // Hyphen, followed by one or more dot-separated pre-release version + // identifiers. - function isTemplateStringsArray(v) { - return has(v, 'raw') && has(v, 'length'); - } - /** - * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to - * makeInstance - * @param options - * @return {outdent} - */ + createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); // ## Build Metadata Identifier + // Any combination of digits, letters, or hyphens. + createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); // ## Build Metadata + // Plus sign, followed by one or more period-separated build metadata + // identifiers. - function createInstance(options) { - /** Cache of pre-processed template literal arrays */ - var arrayAutoIndentCache = createWeakMap(); - /** - * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent, - * before interpolated values are injected. - */ + createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); // ## Full Version String + // A main version, followed optionally by a pre-release version and + // build metadata. + // Note that the only major, minor, patch, and pre-release sections of + // the version string are capturing groups. The build metadata is not a + // capturing group, because it should not ever be used in version + // comparison. - var arrayFirstInterpSetsIndentCache = createWeakMap(); + createToken('FULLPLAIN', `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken('FULL', `^${src[t.FULLPLAIN]}$`); // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. + // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty + // common in the npm registry. - function outdent(stringsOrOptions) { - var values = []; + createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + createToken('GTLT', '((?:<|>)?=?)'); // Something like "2.*" or "1.2.x". + // Note that "x.x" is a valid xRange identifer, meaning "any version" + // Only the first item is strictly required. - for (var _i = 1; _i < arguments.length; _i++) { - values[_i - 1] = arguments[_i]; - } - /* tslint:enable:no-shadowed-variable */ + createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`); + createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`); + createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); // Coercion. + // Extract anything that could conceivably be a part of a valid semver + createToken('COERCE', `${'(^|[^\\d])' + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\d])`); + createToken('COERCERTL', src[t.COERCE], true); // Tilde ranges. + // Meaning is "reasonably at or greater than" - if (isTemplateStringsArray(stringsOrOptions)) { - var strings = stringsOrOptions; // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace? + createToken('LONETILDE', '(?:~>?)'); + createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = '$1~'; + createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); // Caret ranges. + // Meaning is "at least and backwards compatible with" - var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); // Perform outdentation + createToken('LONECARET', '(?:\\^)'); + createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = '$1^'; + createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); // A simple gt/lt/eq thing, or just "" to indicate "any version" - var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache; - var renderedArray = cache.get(strings); + createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); // An expression to strip any whitespace between the gtlt and the thing + // it modifies, so that `> 1.2.3` ==> `>1.2.3` - if (!renderedArray) { - renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options); - cache.set(strings, renderedArray); - } - /** If no interpolated values, skip concatenation step */ + createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = '$1$2$3'; // Something like `1.2.3 - 1.2.4` + // Note that these all use the loose form, because they'll be + // checked against either the strict or loose comparator form + // later. + createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\s*$`); + createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\s*$`); // Star ranges basically just allow anything at all. - if (values.length === 0) { - return renderedArray[0]; - } - /** Concatenate string literals with interpolated values */ + createToken('STAR', '(<|>)?=?\\s*\\*'); // >=0.0.0 is like a star + createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); + createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); + }); - var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values); - return rendered; - } else { - // Create and return a new instance of outdent with the given options - return createInstance(extend(extend({}, options), stringsOrOptions || {})); - } - } + // parse out just the options we care about so we always get a consistent + // obj with keys in a consistent order. + const opts = ['includePrerelease', 'loose', 'rtl']; - var fullOutdent = extend(outdent, { - string: function string(str) { - return _outdentArray([str], false, options)[0]; - } - }); - return fullOutdent; - } + const parseOptions = options => !options ? {} : typeof options !== 'object' ? { + loose: true + } : opts.filter(k => options[k]).reduce((options, k) => { + options[k] = true; + return options; + }, {}); - var defaultOutdent = createInstance({ - trimLeadingNewline: true, - trimTrailingNewline: true - }); - exports.outdent = defaultOutdent; // Named exports. Simple and preferred. - // import outdent from 'outdent'; + var parseOptions_1 = parseOptions; - exports.default = defaultOutdent; + const numeric = /^[0-9]+$/; - { - // In webpack harmony-modules environments, module.exports is read-only, - // so we fail gracefully. - try { - module.exports = defaultOutdent; - Object.defineProperty(defaultOutdent, '__esModule', { - value: true + const compareIdentifiers$1 = (a, b) => { + const anum = numeric.test(a); + const bnum = numeric.test(b); + + if (anum && bnum) { + a = +a; + b = +b; + } + + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; + }; + + const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); + + var identifiers = { + compareIdentifiers: compareIdentifiers$1, + rcompareIdentifiers + }; + + const { + MAX_LENGTH, + MAX_SAFE_INTEGER + } = constants; + const { + re, + t + } = re_1; + const { + compareIdentifiers + } = identifiers; + + class SemVer { + constructor(version, options) { + options = parseOptions_1(options); + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { + return version; + } else { + version = version.version; + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid Version: ${version}`); + } + + if (version.length > MAX_LENGTH) { + throw new TypeError(`version is longer than ${MAX_LENGTH} characters`); + } + + debug_1('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + + this.includePrerelease = !!options.includePrerelease; + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`); + } + + this.raw = version; // these are actually numbers + + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version'); + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version'); + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version'); + } // numberify any prerelease numeric ids + + + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map(id => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + + return id; }); - defaultOutdent.default = defaultOutdent; - defaultOutdent.outdent = defaultOutdent; - } catch (e) {} + } + + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } + + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}`; + } + + return this.version; + } + + toString() { + return this.version; + } + + compare(other) { + debug_1('SemVer.compare', this.version, this.options, other); + + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0; + } + + other = new SemVer(other, this.options); + } + + if (other.version === this.version) { + return 0; + } + + return this.compareMain(other) || this.comparePre(other); + } + + compareMain(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + } + + comparePre(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } // NOT having a prerelease is > having one + + + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + + let i = 0; + + do { + const a = this.prerelease[i]; + const b = other.prerelease[i]; + debug_1('prerelease compare', i, a, b); + + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } + + compareBuild(other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } + + let i = 0; + + do { + const a = this.build[i]; + const b = other.build[i]; + debug_1('prerelease compare', i, a, b); + + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; + } else { + return compareIdentifiers(a, b); + } + } while (++i); + } // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + + + inc(release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break; + + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break; + + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier); + } + + this.inc('pre', identifier); + break; + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + + this.patch = 0; + this.prerelease = []; + break; + + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++; + } + + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + let i = this.prerelease.length; + + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + + if (i === -1) { + // didn't increment anything + this.prerelease.push(0); + } + } + + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } + } + + break; + + default: + throw new Error(`invalid increment argument: ${release}`); + } + + this.format(); + this.raw = this.version; + return this; + } + + } + + var semver$1 = SemVer; + + const compare = (a, b, loose) => new semver$1(a, loose).compare(new semver$1(b, loose)); + + var compare_1 = compare; + + const lt = (a, b, loose) => compare_1(a, b, loose) < 0; + + var lt_1 = lt; + + const gte = (a, b, loose) => compare_1(a, b, loose) >= 0; + + var gte_1 = gte; + + var arrayify = (object, keyName) => Object.entries(object).map(([key, value]) => Object.assign({ + [keyName]: key + }, value)); + + var name = "prettier"; + var version = "2.3.2"; + var description = "Prettier is an opinionated code formatter"; + var bin = "./bin/prettier.js"; + var repository = "prettier/prettier"; + var homepage = "https://prettier.io"; + var author = "James Long"; + var license = "MIT"; + var main = "./index.js"; + var browser = "./standalone.js"; + var unpkg = "./standalone.js"; + var engines = { + node: ">=12.17.0" + }; + var files = [ + "index.js", + "standalone.js", + "src", + "bin" + ]; + var dependencies = { + "@angular/compiler": "12.0.5", + "@babel/code-frame": "7.14.5", + "@babel/parser": "7.14.6", + "@glimmer/syntax": "0.79.3", + "@iarna/toml": "2.2.5", + "@typescript-eslint/typescript-estree": "4.27.0", + "angular-estree-parser": "2.4.0", + "angular-html-parser": "1.8.0", + camelcase: "6.2.0", + chalk: "4.1.1", + "ci-info": "3.2.0", + "cjk-regex": "2.0.1", + cosmiconfig: "7.0.0", + dashify: "2.0.0", + diff: "5.0.0", + editorconfig: "0.15.3", + "editorconfig-to-prettier": "0.2.0", + "escape-string-regexp": "4.0.0", + espree: "7.3.1", + esutils: "2.0.3", + "fast-glob": "3.2.5", + "fast-json-stable-stringify": "2.1.0", + "find-parent-dir": "0.3.1", + "flow-parser": "0.153.0", + "get-stdin": "8.0.0", + globby: "11.0.4", + graphql: "15.5.0", + "html-element-attributes": "2.3.0", + "html-styles": "1.0.0", + "html-tag-names": "1.1.5", + "html-void-elements": "1.0.5", + ignore: "4.0.6", + "jest-docblock": "27.0.1", + json5: "2.2.0", + leven: "3.1.0", + "lines-and-columns": "1.1.6", + "linguist-languages": "7.15.0", + lodash: "4.17.21", + mem: "8.1.1", + meriyah: "4.1.5", + minimatch: "3.0.4", + minimist: "1.2.5", + "n-readlines": "1.0.1", + outdent: "0.8.0", + "parse-srcset": "ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee", + "please-upgrade-node": "3.2.0", + "postcss-less": "3.1.4", + "postcss-media-query-parser": "0.2.3", + "postcss-scss": "2.1.1", + "postcss-selector-parser": "2.2.3", + "postcss-values-parser": "2.0.1", + "regexp-util": "1.2.2", + "remark-footnotes": "2.0.0", + "remark-math": "3.0.1", + "remark-parse": "8.0.3", + resolve: "1.20.0", + semver: "7.3.5", + "string-width": "4.2.2", + "strip-ansi": "6.0.0", + typescript: "4.3.4", + "unicode-regex": "3.0.0", + unified: "9.2.1", + vnopts: "1.0.2", + wcwidth: "1.0.1", + "yaml-unist-parser": "1.3.1" + }; + var devDependencies = { + "@babel/core": "7.14.6", + "@babel/preset-env": "7.14.5", + "@babel/types": "7.14.5", + "@glimmer/reference": "0.79.3", + "@rollup/plugin-alias": "3.1.2", + "@rollup/plugin-babel": "5.3.0", + "@rollup/plugin-commonjs": "18.1.0", + "@rollup/plugin-json": "4.1.0", + "@rollup/plugin-node-resolve": "13.0.0", + "@rollup/plugin-replace": "2.4.2", + "@types/estree": "0.0.48", + "babel-jest": "27.0.2", + "babel-loader": "8.2.2", + benchmark: "2.1.4", + "builtin-modules": "3.2.0", + "core-js": "3.14.0", + "cross-env": "7.0.3", + cspell: "4.2.8", + eslint: "7.29.0", + "eslint-config-prettier": "8.3.0", + "eslint-formatter-friendly": "7.0.0", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-jest": "24.3.6", + "eslint-plugin-prettier-internal-rules": "link:scripts/tools/eslint-plugin-prettier-internal-rules", + "eslint-plugin-react": "7.24.0", + "eslint-plugin-regexp": "0.12.1", + "eslint-plugin-unicorn": "33.0.1", + "esm-utils": "1.1.0", + execa: "5.1.1", + jest: "27.0.4", + "jest-snapshot-serializer-ansi": "1.0.0", + "jest-snapshot-serializer-raw": "1.2.0", + "jest-watch-typeahead": "0.6.4", + "npm-run-all": "4.1.5", + "path-browserify": "1.0.1", + prettier: "2.3.1", + "pretty-bytes": "5.6.0", + rimraf: "3.0.2", + rollup: "2.52.1", + "rollup-plugin-polyfill-node": "0.6.2", + "rollup-plugin-terser": "7.0.2", + shelljs: "0.8.4", + "snapshot-diff": "0.9.0", + tempy: "1.0.1", + "terser-webpack-plugin": "5.1.3", + webpack: "5.39.1" + }; + var scripts = { + prepublishOnly: "echo \"Error: must publish from dist/\" && exit 1", + "prepare-release": "yarn && yarn build && yarn test:dist", + test: "jest", + "test:dev-package": "cross-env INSTALL_PACKAGE=1 jest", + "test:dist": "cross-env NODE_ENV=production jest", + "test:dist-standalone": "cross-env NODE_ENV=production TEST_STANDALONE=1 jest", + "test:integration": "jest tests/integration", + "perf:repeat": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", + "perf:repeat-inspect": "yarn && yarn build && cross-env NODE_ENV=production node --inspect-brk ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", + "perf:benchmark": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-benchmark --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", + lint: "run-p lint:*", + "lint:typecheck": "tsc", + "lint:eslint": "cross-env EFF_NO_LINK_RULES=true eslint . --format friendly", + "lint:changelog": "node ./scripts/lint-changelog.mjs", + "lint:prettier": "prettier . \"!test*\" --check", + "lint:dist": "eslint --no-eslintrc --no-ignore --no-inline-config --env=es6,browser --parser-options=ecmaVersion:2019 \"dist/!(bin-prettier|index|third-party).js\"", + "lint:spellcheck": "cspell \"**/*\" \".github/**/*\"", + "lint:deps": "node ./scripts/check-deps.mjs", + fix: "run-s fix:eslint fix:prettier", + "fix:eslint": "yarn lint:eslint --fix", + "fix:prettier": "yarn lint:prettier --write", + build: "node --max-old-space-size=3072 ./scripts/build/build.mjs", + "build-docs": "node ./scripts/build-docs.mjs" + }; + var require$$3 = { + name: name, + version: version, + description: description, + bin: bin, + repository: repository, + homepage: homepage, + author: author, + license: license, + main: main, + browser: browser, + unpkg: unpkg, + engines: engines, + files: files, + dependencies: dependencies, + devDependencies: devDependencies, + scripts: scripts + }; + + var lib = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.outdent = void 0; // In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either. + + function noop() { + var args = []; + + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + } + + function createWeakMap() { + if (typeof WeakMap !== "undefined") { + return new WeakMap(); + } else { + return fakeSetOrMap(); + } + } + /** + * Creates and returns a no-op implementation of a WeakMap / WeakSet that never stores anything. + */ + + + function fakeSetOrMap() { + return { + add: noop, + delete: noop, + get: noop, + set: noop, + has: function (k) { + return false; + } + }; + } // Safe hasOwnProperty + + + var hop = Object.prototype.hasOwnProperty; + + var has = function (obj, prop) { + return hop.call(obj, prop); + }; // Copy all own enumerable properties from source to target + + + function extend(target, source) { + for (var prop in source) { + if (has(source, prop)) { + target[prop] = source[prop]; + } + } + + return target; + } + + var reLeadingNewline = /^[ \t]*(?:\r\n|\r|\n)/; + var reTrailingNewline = /(?:\r\n|\r|\n)[ \t]*$/; + var reStartsWithNewlineOrIsEmpty = /^(?:[\r\n]|$)/; + var reDetectIndentation = /(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/; + var reOnlyWhitespaceWithAtLeastOneNewline = /^[ \t]*[\r\n][ \t\r\n]*$/; + + function _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options) { + // If first interpolated value is a reference to outdent, + // determine indentation level from the indentation of the interpolated value. + var indentationLevel = 0; + var match = strings[0].match(reDetectIndentation); + + if (match) { + indentationLevel = match[1].length; + } + + var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; + var reMatchIndent = new RegExp(reSource, "g"); + + if (firstInterpolatedValueSetsIndentationLevel) { + strings = strings.slice(1); + } + + var newline = options.newline, + trimLeadingNewline = options.trimLeadingNewline, + trimTrailingNewline = options.trimTrailingNewline; + var normalizeNewlines = typeof newline === "string"; + var l = strings.length; + var outdentedStrings = strings.map(function (v, i) { + // Remove leading indentation from all lines + v = v.replace(reMatchIndent, "$1"); // Trim a leading newline from the first string + + if (i === 0 && trimLeadingNewline) { + v = v.replace(reLeadingNewline, ""); + } // Trim a trailing newline from the last string + + + if (i === l - 1 && trimTrailingNewline) { + v = v.replace(reTrailingNewline, ""); + } // Normalize newlines + + + if (normalizeNewlines) { + v = v.replace(/\r\n|\n|\r/g, function (_) { + return newline; + }); + } + + return v; + }); + return outdentedStrings; } - }); - function _templateObject6() { - const data = _taggedTemplateLiteral(["\n Require either '@prettier' or '@format' to be present in the file's first docblock comment\n in order for it to be formatted.\n "]); + function concatStringsAndValues(strings, values) { + var ret = ""; - _templateObject6 = function _templateObject6() { - return data; - }; + for (var i = 0, l = strings.length; i < l; i++) { + ret += strings[i]; - return data; - } + if (i < l - 1) { + ret += values[i]; + } + } - function _templateObject5() { - const data = _taggedTemplateLiteral(["\n Format code starting at a given character offset.\n The range will extend backwards to the start of the first line containing the selected statement.\n This option cannot be used with --cursor-offset.\n "]); + return ret; + } - _templateObject5 = function _templateObject5() { - return data; - }; + function isTemplateStringsArray(v) { + return has(v, "raw") && has(v, "length"); + } + /** + * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to + * makeInstance + * @param options + * @return {outdent} + */ - return data; - } - function _templateObject4() { - const data = _taggedTemplateLiteral(["\n Format code ending at a given character offset (exclusive).\n The range will extend forwards to the end of the selected statement.\n This option cannot be used with --cursor-offset.\n "]); + function createInstance(options) { + /** Cache of pre-processed template literal arrays */ + var arrayAutoIndentCache = createWeakMap(); + /** + * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent, + * before interpolated values are injected. + */ - _templateObject4 = function _templateObject4() { - return data; - }; + var arrayFirstInterpSetsIndentCache = createWeakMap(); - return data; - } + function outdent(stringsOrOptions) { + var values = []; - function _templateObject3() { - const data = _taggedTemplateLiteral(["\n Custom directory that contains prettier plugins in node_modules subdirectory.\n Overrides default behavior when plugins are searched relatively to the location of Prettier.\n Multiple values are accepted.\n "]); + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + /* tslint:enable:no-shadowed-variable */ - _templateObject3 = function _templateObject3() { - return data; - }; - return data; - } + if (isTemplateStringsArray(stringsOrOptions)) { + var strings = stringsOrOptions; // Is first interpolated value a reference to outdent, alone on its own line, without any preceding non-whitespace? - function _templateObject2() { - const data = _taggedTemplateLiteral(["\n Maintain existing\n (mixed values within one file are normalised by looking at what's used after the first line)\n "]); + var firstInterpolatedValueSetsIndentationLevel = (values[0] === outdent || values[0] === defaultOutdent) && reOnlyWhitespaceWithAtLeastOneNewline.test(strings[0]) && reStartsWithNewlineOrIsEmpty.test(strings[1]); // Perform outdentation - _templateObject2 = function _templateObject2() { - return data; - }; + var cache = firstInterpolatedValueSetsIndentationLevel ? arrayFirstInterpSetsIndentCache : arrayAutoIndentCache; + var renderedArray = cache.get(strings); - return data; - } + if (!renderedArray) { + renderedArray = _outdentArray(strings, firstInterpolatedValueSetsIndentationLevel, options); + cache.set(strings, renderedArray); + } + /** If no interpolated values, skip concatenation step */ - function _templateObject() { - const data = _taggedTemplateLiteral(["\n Print (to stderr) where a cursor at the given position would move to after formatting.\n This option cannot be used with --range-start and --range-end.\n "]); - _templateObject = function _templateObject() { - return data; - }; + if (values.length === 0) { + return renderedArray[0]; + } + /** Concatenate string literals with interpolated values */ - return data; - } + + var rendered = concatStringsAndValues(renderedArray, firstInterpolatedValueSetsIndentationLevel ? values.slice(1) : values); + return rendered; + } else { + // Create and return a new instance of outdent with the given options + return createInstance(extend(extend({}, options), stringsOrOptions || {})); + } + } + + var fullOutdent = extend(outdent, { + string: function (str) { + return _outdentArray([str], false, options)[0]; + } + }); + return fullOutdent; + } + + var defaultOutdent = createInstance({ + trimLeadingNewline: true, + trimTrailingNewline: true + }); + exports.outdent = defaultOutdent; // Named exports. Simple and preferred. + // import outdent from 'outdent'; + + exports.default = defaultOutdent; + + { + // In webpack harmony-modules environments, module.exports is read-only, + // so we fail gracefully. + try { + module.exports = defaultOutdent; + Object.defineProperty(defaultOutdent, "__esModule", { + value: true + }); + defaultOutdent.default = defaultOutdent; + defaultOutdent.outdent = defaultOutdent; + } catch (e) {} + } + }); const { outdent @@ -1643,10 +2560,13 @@ default: -1, range: { start: -1, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 }, - description: outdent(_templateObject()), + description: outdent` + Print (to stderr) where a cursor at the given position would move to after formatting. + This option cannot be used with --range-start and --range-end. + `, cliCategory: CATEGORY_EDITOR }, endOfLine: { @@ -1672,7 +2592,10 @@ description: "Carriage Return character only (\\r), used very rarely" }, { value: "auto", - description: outdent(_templateObject2()) + description: outdent` + Maintain existing + (mixed values within one file are normalised by looking at what's used after the first line) + ` }] }, filepath: { @@ -1724,6 +2647,14 @@ value: "typescript", since: "1.4.0", description: "TypeScript" + }, { + value: "espree", + since: "2.2.0", + description: "JavaScript" + }, { + value: "meriyah", + since: "2.2.0", + description: "JavaScript" }, { value: "css", since: "1.7.1", @@ -1770,8 +2701,8 @@ description: "YAML" }, { value: "glimmer", - since: null, - description: "Handlebars" + since: "2.3.0", + description: "Ember / Handlebars" }, { value: "html", since: "1.15.0", @@ -1807,7 +2738,11 @@ value: [] }], category: CATEGORY_GLOBAL, - description: outdent(_templateObject3()), + description: outdent` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `, exception: value => typeof value === "string" || typeof value === "object", cliName: "plugin-search-dir", cliCategory: CATEGORY_CONFIG @@ -1820,7 +2755,7 @@ description: "The line length where Prettier will try wrap.", range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 } }, @@ -1828,13 +2763,17 @@ since: "1.4.0", category: CATEGORY_SPECIAL, type: "int", - default: Infinity, + default: Number.POSITIVE_INFINITY, range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 }, - description: outdent(_templateObject4()), + description: outdent` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `, cliCategory: CATEGORY_EDITOR }, rangeStart: { @@ -1844,10 +2783,14 @@ default: 0, range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 }, - description: outdent(_templateObject5()), + description: outdent` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `, cliCategory: CATEGORY_EDITOR }, requirePragma: { @@ -1855,7 +2798,10 @@ category: CATEGORY_SPECIAL, type: "boolean", default: false, - description: outdent(_templateObject6()), + description: outdent` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `, cliCategory: CATEGORY_OTHER }, tabWidth: { @@ -1865,7 +2811,7 @@ description: "Number of spaces per indentation level.", range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 } }, @@ -1894,7 +2840,7 @@ }] } }; - var coreOptions = { + var coreOptions$1 = { CATEGORY_CONFIG, CATEGORY_EDITOR, CATEGORY_FORMAT, @@ -1905,880 +2851,1302 @@ options }; - var require$$3 = getCjsExportFromNamespace(_package$1); + const _excluded = ["cliName", "cliCategory", "cliDescription"]; + + const semver = { + compare: compare_1, + lt: lt_1, + gte: gte_1 + }; + const currentVersion = require$$3.version; + const coreOptions = coreOptions$1.options; + /** + * Strings in `plugins` and `pluginSearchDirs` are handled by a wrapped version + * of this function created by `withPlugins`. Don't pass them here directly. + * @param {object} param0 + * @param {(string | object)[]=} param0.plugins Strings are resolved by `withPlugins`. + * @param {string[]=} param0.pluginSearchDirs Added by `withPlugins`. + * @param {boolean=} param0.showUnreleased + * @param {boolean=} param0.showDeprecated + * @param {boolean=} param0.showInternal + */ + + function getSupportInfo$1({ + plugins = [], + showUnreleased = false, + showDeprecated = false, + showInternal = false + } = {}) { + // pre-release version is smaller than the normal version in semver, + // we need to treat it as the normal one so as to test new features. + const version = currentVersion.split("-", 1)[0]; + const languages = plugins.flatMap(plugin => plugin.languages || []).filter(filterSince); + const options = arrayify(Object.assign({}, ...plugins.map(({ + options + }) => options), coreOptions), "name").filter(option => filterSince(option) && filterDeprecated(option)).sort((a, b) => a.name === b.name ? 0 : a.name < b.name ? -1 : 1).map(mapInternal).map(option => { + option = Object.assign({}, option); + + if (Array.isArray(option.default)) { + option.default = option.default.length === 1 ? option.default[0].value : option.default.filter(filterSince).sort((info1, info2) => semver.compare(info2.since, info1.since))[0].value; + } + + if (Array.isArray(option.choices)) { + option.choices = option.choices.filter(option => filterSince(option) && filterDeprecated(option)); + + if (option.name === "parser") { + collectParsersFromLanguages(option, languages, plugins); + } + } + + const pluginDefaults = Object.fromEntries(plugins.filter(plugin => plugin.defaultOptions && plugin.defaultOptions[option.name] !== undefined).map(plugin => [plugin.name, plugin.defaultOptions[option.name]])); + return Object.assign(Object.assign({}, option), {}, { + pluginDefaults + }); + }); + return { + languages, + options + }; + + function filterSince(object) { + return showUnreleased || !("since" in object) || object.since && semver.gte(version, object.since); + } + + function filterDeprecated(object) { + return showDeprecated || !("deprecated" in object) || object.deprecated && semver.lt(version, object.deprecated); + } + + function mapInternal(object) { + if (showInternal) { + return object; + } + + const newObject = _objectWithoutProperties(object, _excluded); + + return newObject; + } + } + + function collectParsersFromLanguages(option, languages, plugins) { + const existingValues = new Set(option.choices.map(choice => choice.value)); + + for (const language of languages) { + if (language.parsers) { + for (const value of language.parsers) { + if (!existingValues.has(value)) { + existingValues.add(value); + const plugin = plugins.find(plugin => plugin.parsers && plugin.parsers[value]); + let description = language.name; + + if (plugin && plugin.name) { + description += ` (plugin: ${plugin.name})`; + } + + option.choices.push({ + value, + description + }); + } + } + } + } + } + + var support = { + getSupportInfo: getSupportInfo$1 + }; + + const { + getSupportInfo + } = support; + const notAsciiRegex = /[^\x20-\x7F]/; + + const getPenultimate = arr => arr[arr.length - 2]; + /** + * @typedef {{backwards?: boolean}} SkipOptions + */ + + /** + * @param {string | RegExp} chars + * @returns {(text: string, index: number | false, opts?: SkipOptions) => number | false} + */ + + + function skip(chars) { + return (text, index, opts) => { + const backwards = opts && opts.backwards; // Allow `skip` functions to be threaded together without having + // to check for failures (did someone say monads?). + + /* istanbul ignore next */ + + if (index === false) { + return false; + } + + const { + length + } = text; + let cursor = index; + + while (cursor >= 0 && cursor < length) { + const c = text.charAt(cursor); + + if (chars instanceof RegExp) { + if (!chars.test(c)) { + return cursor; + } + } else if (!chars.includes(c)) { + return cursor; + } + + backwards ? cursor-- : cursor++; + } - const semver$1 = { - compare: compare_1, - lt: lt_1, - gte: gte_1 - }; - const currentVersion = require$$3.version; - const coreOptions$1 = coreOptions.options; + if (cursor === -1 || cursor === length) { + // If we reached the beginning or end of the file, return the + // out-of-bounds cursor. It's up to the caller to handle this + // correctly. We don't want to indicate `false` though if it + // actually skipped valid characters. + return cursor; + } + + return false; + }; + } /** - * Strings in `plugins` and `pluginSearchDirs` are handled by a wrapped version - * of this function created by `withPlugins`. Don't pass them here directly. - * @param {object} param0 - * @param {(string | object)[]=} param0.plugins Strings are resolved by `withPlugins`. - * @param {string[]=} param0.pluginSearchDirs Added by `withPlugins`. - * @param {boolean=} param0.showUnreleased - * @param {boolean=} param0.showDeprecated - * @param {boolean=} param0.showInternal + * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} */ - function getSupportInfo({ - plugins = [], - showUnreleased = false, - showDeprecated = false, - showInternal = false - } = {}) { - // pre-release version is smaller than the normal version in semver, - // we need to treat it as the normal one so as to test new features. - const version = currentVersion.split("-", 1)[0]; - const languages = plugins.reduce((all, plugin) => all.concat(plugin.languages || []), []).filter(filterSince); - const options = arrayify(Object.assign({}, ...plugins.map(({ - options - }) => options), coreOptions$1), "name").filter(option => filterSince(option) && filterDeprecated(option)).sort((a, b) => a.name === b.name ? 0 : a.name < b.name ? -1 : 1).map(mapInternal).map(option => { - option = Object.assign({}, option); - if (Array.isArray(option.default)) { - option.default = option.default.length === 1 ? option.default[0].value : option.default.filter(filterSince).sort((info1, info2) => semver$1.compare(info2.since, info1.since))[0].value; - } + const skipWhitespace = skip(/\s/); + /** + * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} + */ - if (Array.isArray(option.choices)) { - option.choices = option.choices.filter(option => filterSince(option) && filterDeprecated(option)); + const skipSpaces = skip(" \t"); + /** + * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} + */ - if (option.name === "parser") { - collectParsersFromLanguages(option, languages, plugins); + const skipToLineEnd = skip(",; \t"); + /** + * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} + */ + + const skipEverythingButNewLine = skip(/[^\n\r]/); + /** + * @param {string} text + * @param {number | false} index + * @returns {number | false} + */ + + function skipInlineComment(text, index) { + /* istanbul ignore next */ + if (index === false) { + return false; + } + + if (text.charAt(index) === "/" && text.charAt(index + 1) === "*") { + for (let i = index + 2; i < text.length; ++i) { + if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") { + return i + 2; } } + } - const pluginDefaults = plugins.filter(plugin => plugin.defaultOptions && plugin.defaultOptions[option.name] !== undefined).reduce((reduced, plugin) => { - reduced[plugin.name] = plugin.defaultOptions[option.name]; - return reduced; - }, {}); - return Object.assign({}, option, { - pluginDefaults - }); - }); - return { - languages, - options - }; + return index; + } + /** + * @param {string} text + * @param {number | false} index + * @returns {number | false} + */ - function filterSince(object) { - return showUnreleased || !("since" in object) || object.since && semver$1.gte(version, object.since); + + function skipTrailingComment(text, index) { + /* istanbul ignore next */ + if (index === false) { + return false; } - function filterDeprecated(object) { - return showDeprecated || !("deprecated" in object) || object.deprecated && semver$1.lt(version, object.deprecated); + if (text.charAt(index) === "/" && text.charAt(index + 1) === "/") { + return skipEverythingButNewLine(text, index); } - function mapInternal(object) { - if (showInternal) { - return object; + return index; + } // This one doesn't use the above helper function because it wants to + // test \r\n in order and `skip` doesn't support ordering and we only + // want to skip one newline. It's simple to implement. + + /** + * @param {string} text + * @param {number | false} index + * @param {SkipOptions=} opts + * @returns {number | false} + */ + + + function skipNewline(text, index, opts) { + const backwards = opts && opts.backwards; + + if (index === false) { + return false; + } + + const atIndex = text.charAt(index); + + if (backwards) { + // We already replace `\r\n` with `\n` before parsing + + /* istanbul ignore next */ + if (text.charAt(index - 1) === "\r" && atIndex === "\n") { + return index - 2; } - const newObject = _objectWithoutPropertiesLoose(object, ["cliName", "cliCategory", "cliDescription"]); + if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") { + return index - 1; + } + } else { + // We already replace `\r\n` with `\n` before parsing - return newObject; + /* istanbul ignore next */ + if (atIndex === "\r" && text.charAt(index + 1) === "\n") { + return index + 2; + } + + if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") { + return index + 1; + } } + + return index; } + /** + * @param {string} text + * @param {number} index + * @param {SkipOptions=} opts + * @returns {boolean} + */ - function collectParsersFromLanguages(option, languages, plugins) { - const existingValues = new Set(option.choices.map(choice => choice.value)); - for (const language of languages) { - if (language.parsers) { - for (const value of language.parsers) { - if (!existingValues.has(value)) { - existingValues.add(value); - const plugin = plugins.find(plugin => plugin.parsers && plugin.parsers[value]); - let description = language.name; + function hasNewline(text, index, opts = {}) { + const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); + const idx2 = skipNewline(text, idx, opts); + return idx !== idx2; + } + /** + * @param {string} text + * @param {number} start + * @param {number} end + * @returns {boolean} + */ - if (plugin && plugin.name) { - description += " (plugin: ".concat(plugin.name, ")"); - } - option.choices.push({ - value, - description - }); - } - } + function hasNewlineInRange(text, start, end) { + for (let i = start; i < end; ++i) { + if (text.charAt(i) === "\n") { + return true; } } + + return false; + } // Note: this function doesn't ignore leading comments unlike isNextLineEmpty + + /** + * @template N + * @param {string} text + * @param {N} node + * @param {(node: N) => number} locStart + */ + + + function isPreviousLineEmpty(text, node, locStart) { + /** @type {number | false} */ + let idx = locStart(node) - 1; + idx = skipSpaces(text, idx, { + backwards: true + }); + idx = skipNewline(text, idx, { + backwards: true + }); + idx = skipSpaces(text, idx, { + backwards: true + }); + const idx2 = skipNewline(text, idx, { + backwards: true + }); + return idx !== idx2; + } + /** + * @param {string} text + * @param {number} index + * @returns {boolean} + */ + + + function isNextLineEmptyAfterIndex(text, index) { + /** @type {number | false} */ + let oldIdx = null; + /** @type {number | false} */ + + let idx = index; + + while (idx !== oldIdx) { + // We need to skip all the potential trailing inline comments + oldIdx = idx; + idx = skipToLineEnd(text, idx); + idx = skipInlineComment(text, idx); + idx = skipSpaces(text, idx); + } + + idx = skipTrailingComment(text, idx); + idx = skipNewline(text, idx); + return idx !== false && hasNewline(text, idx); + } + /** + * @template N + * @param {string} text + * @param {N} node + * @param {(node: N) => number} locEnd + * @returns {boolean} + */ + + + function isNextLineEmpty(text, node, locEnd) { + return isNextLineEmptyAfterIndex(text, locEnd(node)); } + /** + * @param {string} text + * @param {number} idx + * @returns {number | false} + */ + + + function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) { + /** @type {number | false} */ + let oldIdx = null; + /** @type {number | false} */ - var support = { - getSupportInfo - }; + let nextIdx = idx; - const notAsciiRegex = /[^\x20-\x7F]/; + while (nextIdx !== oldIdx) { + oldIdx = nextIdx; + nextIdx = skipSpaces(text, nextIdx); + nextIdx = skipInlineComment(text, nextIdx); + nextIdx = skipTrailingComment(text, nextIdx); + nextIdx = skipNewline(text, nextIdx); + } - const getPenultimate = arr => arr[arr.length - 2]; + return nextIdx; + } /** - * @typedef {{backwards?: boolean}} SkipOptions + * @template N + * @param {string} text + * @param {N} node + * @param {(node: N) => number} locEnd + * @returns {number | false} */ + + function getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { + return getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd(node)); + } /** - * @param {string | RegExp} chars - * @returns {(text: string, index: number | false, opts?: SkipOptions) => number | false} + * @template N + * @param {string} text + * @param {N} node + * @param {(node: N) => number} locEnd + * @returns {string} */ - function skip(chars) { - return (text, index, opts) => { - const backwards = opts && opts.backwards; // Allow `skip` functions to be threaded together without having - // to check for failures (did someone say monads?). + function getNextNonSpaceNonCommentCharacter(text, node, locEnd) { + return text.charAt( // @ts-ignore => TBD: can return false, should we define a fallback? + getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd)); + } // Not using, but it's public utils - /* istanbul ignore next */ + /* istanbul ignore next */ - if (index === false) { - return false; - } + /** + * @param {string} text + * @param {number} index + * @param {SkipOptions=} opts + * @returns {boolean} + */ - const { - length - } = text; - let cursor = index; - while (cursor >= 0 && cursor < length) { - const c = text.charAt(cursor); + function hasSpaces(text, index, opts = {}) { + const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); + return idx !== index; + } + /** + * @param {string} value + * @param {number} tabWidth + * @param {number=} startIndex + * @returns {number} + */ - if (chars instanceof RegExp) { - if (!chars.test(c)) { - return cursor; - } - } else if (!chars.includes(c)) { - return cursor; - } - backwards ? cursor-- : cursor++; - } + function getAlignmentSize(value, tabWidth, startIndex = 0) { + let size = 0; - if (cursor === -1 || cursor === length) { - // If we reached the beginning or end of the file, return the - // out-of-bounds cursor. It's up to the caller to handle this - // correctly. We don't want to indicate `false` though if it - // actually skipped valid characters. - return cursor; + for (let i = startIndex; i < value.length; ++i) { + if (value[i] === "\t") { + // Tabs behave in a way that they are aligned to the nearest + // multiple of tabWidth: + // 0 -> 4, 1 -> 4, 2 -> 4, 3 -> 4 + // 4 -> 8, 5 -> 8, 6 -> 8, 7 -> 8 ... + size = size + tabWidth - size % tabWidth; + } else { + size++; } + } - return false; - }; + return size; } /** - * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} + * @param {string} value + * @param {number} tabWidth + * @returns {number} */ - const skipWhitespace = skip(/\s/); - /** - * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} - */ + function getIndentSize(value, tabWidth) { + const lastNewlineIndex = value.lastIndexOf("\n"); - const skipSpaces = skip(" \t"); - /** - * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} - */ + if (lastNewlineIndex === -1) { + return 0; + } - const skipToLineEnd = skip(",; \t"); + return getAlignmentSize( // All the leading whitespaces + value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0], tabWidth); + } /** - * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} + * @typedef {'"' | "'"} Quote */ - const skipEverythingButNewLine = skip(/[^\n\r]/); /** - * @param {string} text - * @param {number | false} index - * @returns {number | false} + * + * @param {string} raw + * @param {Quote} preferredQuote + * @returns {Quote} */ - function skipInlineComment(text, index) { - /* istanbul ignore next */ - if (index === false) { - return false; - } - if (text.charAt(index) === "/" && text.charAt(index + 1) === "*") { - for (let i = index + 2; i < text.length; ++i) { - if (text.charAt(i) === "*" && text.charAt(i + 1) === "/") { - return i + 2; - } - } + function getPreferredQuote(raw, preferredQuote) { + // `rawContent` is the string exactly like it appeared in the input source + // code, without its enclosing quotes. + const rawContent = raw.slice(1, -1); + /** @type {{ quote: '"', regex: RegExp }} */ + + const double = { + quote: '"', + regex: /"/g + }; + /** @type {{ quote: "'", regex: RegExp }} */ + + const single = { + quote: "'", + regex: /'/g + }; + const preferred = preferredQuote === "'" ? single : double; + const alternate = preferred === single ? double : single; + let result = preferred.quote; // If `rawContent` contains at least one of the quote preferred for enclosing + // the string, we might want to enclose with the alternate quote instead, to + // minimize the number of escaped quotes. + + if (rawContent.includes(preferred.quote) || rawContent.includes(alternate.quote)) { + const numPreferredQuotes = (rawContent.match(preferred.regex) || []).length; + const numAlternateQuotes = (rawContent.match(alternate.regex) || []).length; + result = numPreferredQuotes > numAlternateQuotes ? alternate.quote : preferred.quote; } - return index; + return result; + } + + function printString(raw, options) { + // `rawContent` is the string exactly like it appeared in the input source + // code, without its enclosing quotes. + const rawContent = raw.slice(1, -1); + /** @type {Quote} */ + + const enclosingQuote = options.parser === "json" || options.parser === "json5" && options.quoteProps === "preserve" && !options.singleQuote ? '"' : options.__isInHtmlAttribute ? "'" : getPreferredQuote(raw, options.singleQuote ? "'" : '"'); // It might sound unnecessary to use `makeString` even if the string already + // is enclosed with `enclosingQuote`, but it isn't. The string could contain + // unnecessary escapes (such as in `"\'"`). Always using `makeString` makes + // sure that we consistently output the minimum amount of escaped quotes. + + return makeString(rawContent, enclosingQuote, !(options.parser === "css" || options.parser === "less" || options.parser === "scss" || options.__embeddedInHtml)); } /** - * @param {string} text - * @param {number | false} index - * @returns {number | false} + * @param {string} rawContent + * @param {Quote} enclosingQuote + * @param {boolean=} unescapeUnnecessaryEscapes + * @returns {string} */ - function skipTrailingComment(text, index) { - /* istanbul ignore next */ - if (index === false) { - return false; - } + function makeString(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) { + const otherQuote = enclosingQuote === '"' ? "'" : '"'; // Matches _any_ escape and unescaped quotes (both single and double). - if (text.charAt(index) === "/" && text.charAt(index + 1) === "/") { - return skipEverythingButNewLine(text, index); - } + const regex = /\\(.)|(["'])/gs; // Escape and unescape single and double quotes as needed to be able to + // enclose `rawContent` with `enclosingQuote`. - return index; - } // This one doesn't use the above helper function because it wants to - // test \r\n in order and `skip` doesn't support ordering and we only - // want to skip one newline. It's simple to implement. + const newContent = rawContent.replace(regex, (match, escaped, quote) => { + // If we matched an escape, and the escaped character is a quote of the + // other type than we intend to enclose the string with, there's no need for + // it to be escaped, so return it _without_ the backslash. + if (escaped === otherQuote) { + return escaped; + } // If we matched an unescaped quote and it is of the _same_ type as we + // intend to enclose the string with, it must be escaped, so return it with + // a backslash. + + + if (quote === enclosingQuote) { + return "\\" + quote; + } + + if (quote) { + return quote; + } // Unescape any unnecessarily escaped character. + // Adapted from https://github.com/eslint/eslint/blob/de0b4ad7bd820ade41b1f606008bea68683dc11a/lib/rules/no-useless-escape.js#L27 + + + return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(escaped) ? escaped : "\\" + escaped; + }); + return enclosingQuote + newContent + enclosingQuote; + } + function printNumber(rawNumber) { + return rawNumber.toLowerCase() // Remove unnecessary plus and zeroes from scientific notation. + .replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/, "$1$2$3") // Remove unnecessary scientific notation (1e0). + .replace(/^([+-]?[\d.]+)e[+-]?0+$/, "$1") // Make sure numbers always start with a digit. + .replace(/^([+-])?\./, "$10.") // Remove extraneous trailing decimal zeroes. + .replace(/(\.\d+?)0+(?=e|$)/, "$1") // Remove trailing dot. + .replace(/\.(?=e|$)/, ""); + } /** - * @param {string} text - * @param {number | false} index - * @param {SkipOptions=} opts - * @returns {number | false} + * @param {string} str + * @param {string} target + * @returns {number} */ - function skipNewline(text, index, opts) { - const backwards = opts && opts.backwards; + function getMaxContinuousCount(str, target) { + const results = str.match(new RegExp(`(${escapeStringRegexp(target)})+`, "g")); - if (index === false) { - return false; + if (results === null) { + return 0; } - const atIndex = text.charAt(index); + return results.reduce((maxCount, result) => Math.max(maxCount, result.length / target.length), 0); + } - if (backwards) { - // We already replace `\r\n` with `\n` before parsing + function getMinNotPresentContinuousCount(str, target) { + const matches = str.match(new RegExp(`(${escapeStringRegexp(target)})+`, "g")); + + if (matches === null) { + return 0; + } - /* istanbul ignore next */ - if (text.charAt(index - 1) === "\r" && atIndex === "\n") { - return index - 2; - } + const countPresent = new Map(); + let max = 0; - if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") { - return index - 1; - } - } else { - // We already replace `\r\n` with `\n` before parsing + for (const match of matches) { + const count = match.length / target.length; + countPresent.set(count, true); - /* istanbul ignore next */ - if (atIndex === "\r" && text.charAt(index + 1) === "\n") { - return index + 2; + if (count > max) { + max = count; } + } - if (atIndex === "\n" || atIndex === "\r" || atIndex === "\u2028" || atIndex === "\u2029") { - return index + 1; + for (let i = 1; i < max; i++) { + if (!countPresent.get(i)) { + return i; } } - return index; + return max + 1; } /** * @param {string} text - * @param {number} index - * @param {SkipOptions=} opts - * @returns {boolean} + * @returns {number} */ - function hasNewline(text, index, opts) { - opts = opts || {}; - const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); - const idx2 = skipNewline(text, idx, opts); - return idx !== idx2; - } - /** - * @param {string} text - * @param {number} start - * @param {number} end - * @returns {boolean} - */ + function getStringWidth$1(text) { + if (!text) { + return 0; + } // shortcut to avoid needless string `RegExp`s, replacements, and allocations within `string-width` - function hasNewlineInRange(text, start, end) { - for (let i = start; i < end; ++i) { - if (text.charAt(i) === "\n") { - return true; - } + if (!notAsciiRegex.test(text)) { + return text.length; } - return false; - } // Note: this function doesn't ignore leading comments unlike isNextLineEmpty - - /** - * @template N - * @param {string} text - * @param {N} node - * @param {(node: N) => number} locStart - */ - - - function isPreviousLineEmpty(text, node, locStart) { - /** @type {number | false} */ - let idx = locStart(node) - 1; - idx = skipSpaces(text, idx, { - backwards: true - }); - idx = skipNewline(text, idx, { - backwards: true - }); - idx = skipSpaces(text, idx, { - backwards: true - }); - const idx2 = skipNewline(text, idx, { - backwards: true - }); - return idx !== idx2; + return stringWidth_1(text); } - /** - * @param {string} text - * @param {number} index - * @returns {boolean} - */ + function addCommentHelper(node, comment) { + const comments = node.comments || (node.comments = []); + comments.push(comment); + comment.printed = false; + comment.nodeDescription = describeNodeForDebugging(node); + } - function isNextLineEmptyAfterIndex(text, index) { - /** @type {number | false} */ - let oldIdx = null; - /** @type {number | false} */ + function addLeadingComment(node, comment) { + comment.leading = true; + comment.trailing = false; + addCommentHelper(node, comment); + } - let idx = index; + function addDanglingComment(node, comment, marker) { + comment.leading = false; + comment.trailing = false; - while (idx !== oldIdx) { - // We need to skip all the potential trailing inline comments - oldIdx = idx; - idx = skipToLineEnd(text, idx); - idx = skipInlineComment(text, idx); - idx = skipSpaces(text, idx); + if (marker) { + comment.marker = marker; } - idx = skipTrailingComment(text, idx); - idx = skipNewline(text, idx); - return idx !== false && hasNewline(text, idx); + addCommentHelper(node, comment); } - /** - * @template N - * @param {string} text - * @param {N} node - * @param {(node: N) => number} locEnd - * @returns {boolean} - */ + function addTrailingComment(node, comment) { + comment.leading = false; + comment.trailing = true; + addCommentHelper(node, comment); + } - function isNextLineEmpty(text, node, locEnd) { - return isNextLineEmptyAfterIndex(text, locEnd(node)); + function inferParserByLanguage(language, options) { + const { + languages + } = getSupportInfo({ + plugins: options.plugins + }); + const matched = languages.find(({ + name + }) => name.toLowerCase() === language) || languages.find(({ + aliases + }) => Array.isArray(aliases) && aliases.includes(language)) || languages.find(({ + extensions + }) => Array.isArray(extensions) && extensions.includes(`.${language}`)); + return matched && matched.parsers[0]; } - /** - * @param {string} text - * @param {number} idx - * @returns {number | false} - */ + function isFrontMatterNode(node) { + return node && node.type === "front-matter"; + } - function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) { - /** @type {number | false} */ - let oldIdx = null; - /** @type {number | false} */ + function getShebang(text) { + if (!text.startsWith("#!")) { + return ""; + } - let nextIdx = idx; + const index = text.indexOf("\n"); - while (nextIdx !== oldIdx) { - oldIdx = nextIdx; - nextIdx = skipSpaces(text, nextIdx); - nextIdx = skipInlineComment(text, nextIdx); - nextIdx = skipTrailingComment(text, nextIdx); - nextIdx = skipNewline(text, nextIdx); + if (index === -1) { + return text; } - return nextIdx; + return text.slice(0, index); } /** - * @template N - * @param {string} text - * @param {N} node - * @param {(node: N) => number} locEnd - * @returns {number | false} + * @param {any} object + * @returns {object is Array} */ - function getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { - return getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd(node)); + function isNonEmptyArray(object) { + return Array.isArray(object) && object.length > 0; } /** - * @template N - * @param {string} text - * @param {N} node - * @param {(node: N) => number} locEnd - * @returns {string} + * @param {string} description + * @returns {(node: any) => symbol} */ - function getNextNonSpaceNonCommentCharacter(text, node, locEnd) { - return text.charAt( // @ts-ignore => TBD: can return false, should we define a fallback? - getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd)); - } // Not using, but it's public utils + function createGroupIdMapper(description) { + const groupIds = new WeakMap(); + return function (node) { + if (!groupIds.has(node)) { + groupIds.set(node, Symbol(description)); + } - /* istanbul ignore next */ + return groupIds.get(node); + }; + } - /** - * @param {string} text - * @param {number} index - * @param {SkipOptions=} opts - * @returns {boolean} - */ + function describeNodeForDebugging(node) { + const nodeType = node.type || node.kind || "(unknown type)"; + let nodeName = String(node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || ""); + if (nodeName.length > 20) { + nodeName = nodeName.slice(0, 19) + "…"; + } - function hasSpaces(text, index, opts) { - opts = opts || {}; - const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); - return idx !== index; + return nodeType + (nodeName ? " " + nodeName : ""); } - /** - * @param {string} value - * @param {number} tabWidth - * @param {number=} startIndex - * @returns {number} - */ + var util = { + inferParserByLanguage, + getStringWidth: getStringWidth$1, + getMaxContinuousCount, + getMinNotPresentContinuousCount, + getPenultimate, + getLast: getLast_1, + getNextNonSpaceNonCommentCharacterIndexWithStartIndex, + getNextNonSpaceNonCommentCharacterIndex, + getNextNonSpaceNonCommentCharacter, + skip, + skipWhitespace, + skipSpaces, + skipToLineEnd, + skipEverythingButNewLine, + skipInlineComment, + skipTrailingComment, + skipNewline, + isNextLineEmptyAfterIndex, + isNextLineEmpty, + isPreviousLineEmpty, + hasNewline, + hasNewlineInRange, + hasSpaces, + getAlignmentSize, + getIndentSize, + getPreferredQuote, + printString, + printNumber, + makeString, + addLeadingComment, + addDanglingComment, + addTrailingComment, + isFrontMatterNode, + getShebang, + isNonEmptyArray, + createGroupIdMapper + }; + + function guessEndOfLine(text) { + const index = text.indexOf("\r"); - function getAlignmentSize(value, tabWidth, startIndex) { - startIndex = startIndex || 0; - let size = 0; + if (index >= 0) { + return text.charAt(index + 1) === "\n" ? "crlf" : "cr"; + } - for (let i = startIndex; i < value.length; ++i) { - if (value[i] === "\t") { - // Tabs behave in a way that they are aligned to the nearest - // multiple of tabWidth: - // 0 -> 4, 1 -> 4, 2 -> 4, 3 -> 4 - // 4 -> 8, 5 -> 8, 6 -> 8, 7 -> 8 ... - size = size + tabWidth - size % tabWidth; - } else { - size++; - } + return "lf"; + } + + function convertEndOfLineToChars$1(value) { + switch (value) { + case "cr": + return "\r"; + + case "crlf": + return "\r\n"; + + default: + return "\n"; } - - return size; } - /** - * @param {string} value - * @param {number} tabWidth - * @returns {number} - */ + function countEndOfLineChars(text, eol) { + let regex; + /* istanbul ignore else */ - function getIndentSize(value, tabWidth) { - const lastNewlineIndex = value.lastIndexOf("\n"); - - if (lastNewlineIndex === -1) { - return 0; + if (eol === "\n") { + regex = /\n/g; + } else if (eol === "\r") { + regex = /\r/g; + } else if (eol === "\r\n") { + regex = /\r\n/g; + } else { + throw new Error(`Unexpected "eol" ${JSON.stringify(eol)}.`); } - return getAlignmentSize( // All the leading whitespaces - value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0], tabWidth); + const endOfLines = text.match(regex); + return endOfLines ? endOfLines.length : 0; } - /** - * @typedef {'"' | "'"} Quote - */ - /** - * - * @param {string} raw - * @param {Quote} preferredQuote - * @returns {Quote} - */ + function normalizeEndOfLine(text) { + return text.replace(/\r\n?/g, "\n"); + } + var endOfLine = { + guessEndOfLine, + convertEndOfLineToChars: convertEndOfLineToChars$1, + countEndOfLineChars, + normalizeEndOfLine + }; - function getPreferredQuote(raw, preferredQuote) { - // `rawContent` is the string exactly like it appeared in the input source - // code, without its enclosing quotes. - const rawContent = raw.slice(1, -1); - /** @type {{ quote: '"', regex: RegExp }} */ + const { + literalline, + join + } = docBuilders; - const double = { - quote: '"', - regex: /"/g - }; - /** @type {{ quote: "'", regex: RegExp }} */ + const isConcat$2 = doc => Array.isArray(doc) || doc && doc.type === "concat"; - const single = { - quote: "'", - regex: /'/g - }; - const preferred = preferredQuote === "'" ? single : double; - const alternate = preferred === single ? double : single; - let result = preferred.quote; // If `rawContent` contains at least one of the quote preferred for enclosing - // the string, we might want to enclose with the alternate quote instead, to - // minimize the number of escaped quotes. + const getDocParts$2 = doc => { + if (Array.isArray(doc)) { + return doc; + } + /* istanbul ignore next */ - if (rawContent.includes(preferred.quote) || rawContent.includes(alternate.quote)) { - const numPreferredQuotes = (rawContent.match(preferred.regex) || []).length; - const numAlternateQuotes = (rawContent.match(alternate.regex) || []).length; - result = numPreferredQuotes > numAlternateQuotes ? alternate.quote : preferred.quote; + + if (doc.type !== "concat" && doc.type !== "fill") { + throw new Error("Expect doc type to be `concat` or `fill`."); } - return result; - } + return doc.parts; + }; // Using a unique object to compare by reference. - function printString(raw, options, isDirectiveLiteral) { - // `rawContent` is the string exactly like it appeared in the input source - // code, without its enclosing quotes. - const rawContent = raw.slice(1, -1); // Check for the alternate quote, to determine if we're allowed to swap - // the quotes on a DirectiveLiteral. - const canChangeDirectiveQuotes = !rawContent.includes('"') && !rawContent.includes("'"); - /** @type {Quote} */ + const traverseDocOnExitStackMarker = {}; + + function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { + const docsStack = [doc]; - const enclosingQuote = options.parser === "json" ? '"' : options.__isInHtmlAttribute ? "'" : getPreferredQuote(raw, options.singleQuote ? "'" : '"'); // Directives are exact code unit sequences, which means that you can't - // change the escape sequences they use. - // See https://github.com/prettier/prettier/issues/1555 - // and https://tc39.github.io/ecma262/#directive-prologue + while (docsStack.length > 0) { + const doc = docsStack.pop(); - if (isDirectiveLiteral) { - if (canChangeDirectiveQuotes) { - return enclosingQuote + rawContent + enclosingQuote; + if (doc === traverseDocOnExitStackMarker) { + onExit(docsStack.pop()); + continue; } - return raw; - } // It might sound unnecessary to use `makeString` even if the string already - // is enclosed with `enclosingQuote`, but it isn't. The string could contain - // unnecessary escapes (such as in `"\'"`). Always using `makeString` makes - // sure that we consistently output the minimum amount of escaped quotes. + if (onExit) { + docsStack.push(doc, traverseDocOnExitStackMarker); + } + + if ( // Should Recurse + !onEnter || onEnter(doc) !== false) { + // When there are multiple parts to process, + // the parts need to be pushed onto the stack in reverse order, + // so that they are processed in the original order + // when the stack is popped. + if (isConcat$2(doc) || doc.type === "fill") { + const parts = getDocParts$2(doc); + for (let ic = parts.length, i = ic - 1; i >= 0; --i) { + docsStack.push(parts[i]); + } + } else if (doc.type === "if-break") { + if (doc.flatContents) { + docsStack.push(doc.flatContents); + } - return makeString(rawContent, enclosingQuote, !(options.parser === "css" || options.parser === "less" || options.parser === "scss" || options.embeddedInHtml)); + if (doc.breakContents) { + docsStack.push(doc.breakContents); + } + } else if (doc.type === "group" && doc.expandedStates) { + if (shouldTraverseConditionalGroups) { + for (let ic = doc.expandedStates.length, i = ic - 1; i >= 0; --i) { + docsStack.push(doc.expandedStates[i]); + } + } else { + docsStack.push(doc.contents); + } + } else if (doc.contents) { + docsStack.push(doc.contents); + } + } + } } - /** - * @param {string} rawContent - * @param {Quote} enclosingQuote - * @param {boolean=} unescapeUnnecessaryEscapes - * @returns {string} - */ + function mapDoc(doc, cb) { + // Within a doc tree, the same subtrees can be found multiple times. + // E.g., often this happens in conditional groups. + // As an optimization (those subtrees can be huge) and to maintain the + // reference structure of the tree, the mapping results are cached in + // a map and reused. + const mapped = new Map(); + return rec(doc); + + function rec(doc) { + if (mapped.has(doc)) { + return mapped.get(doc); + } - function makeString(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) { - const otherQuote = enclosingQuote === '"' ? "'" : '"'; // Matches _any_ escape and unescaped quotes (both single and double). - - const regex = /\\([\S\s])|(["'])/g; // Escape and unescape single and double quotes as needed to be able to - // enclose `rawContent` with `enclosingQuote`. + const result = process(doc); + mapped.set(doc, result); + return result; + } - const newContent = rawContent.replace(regex, (match, escaped, quote) => { - // If we matched an escape, and the escaped character is a quote of the - // other type than we intend to enclose the string with, there's no need for - // it to be escaped, so return it _without_ the backslash. - if (escaped === otherQuote) { - return escaped; - } // If we matched an unescaped quote and it is of the _same_ type as we - // intend to enclose the string with, it must be escaped, so return it with - // a backslash. + function process(doc) { + if (Array.isArray(doc)) { + return cb(doc.map(rec)); + } + if (doc.type === "concat" || doc.type === "fill") { + const parts = doc.parts.map(rec); + return cb(Object.assign(Object.assign({}, doc), {}, { + parts + })); + } - if (quote === enclosingQuote) { - return "\\" + quote; + if (doc.type === "if-break") { + const breakContents = doc.breakContents && rec(doc.breakContents); + const flatContents = doc.flatContents && rec(doc.flatContents); + return cb(Object.assign(Object.assign({}, doc), {}, { + breakContents, + flatContents + })); } - if (quote) { - return quote; - } // Unescape any unnecessarily escaped character. - // Adapted from https://github.com/eslint/eslint/blob/de0b4ad7bd820ade41b1f606008bea68683dc11a/lib/rules/no-useless-escape.js#L27 + if (doc.type === "group" && doc.expandedStates) { + const expandedStates = doc.expandedStates.map(rec); + const contents = expandedStates[0]; + return cb(Object.assign(Object.assign({}, doc), {}, { + contents, + expandedStates + })); + } + if (doc.contents) { + const contents = rec(doc.contents); + return cb(Object.assign(Object.assign({}, doc), {}, { + contents + })); + } - return unescapeUnnecessaryEscapes && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(escaped) ? escaped : "\\" + escaped; - }); - return enclosingQuote + newContent + enclosingQuote; + return cb(doc); + } } - function printNumber(rawNumber) { - return rawNumber.toLowerCase() // Remove unnecessary plus and zeroes from scientific notation. - .replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/, "$1$2$3") // Remove unnecessary scientific notation (1e0). - .replace(/^([+-]?[\d.]+)e[+-]?0+$/, "$1") // Make sure numbers always start with a digit. - .replace(/^([+-])?\./, "$10.") // Remove extraneous trailing decimal zeroes. - .replace(/(\.\d+?)0+(?=e|$)/, "$1") // Remove trailing dot. - .replace(/\.(?=e|$)/, ""); + function findInDoc(doc, fn, defaultValue) { + let result = defaultValue; + let hasStopped = false; + + function findInDocOnEnterFn(doc) { + const maybeResult = fn(doc); + + if (maybeResult !== undefined) { + hasStopped = true; + result = maybeResult; + } + + if (hasStopped) { + return false; + } + } + + traverseDoc(doc, findInDocOnEnterFn); + return result; } - /** - * @param {string} str - * @param {string} target - * @returns {number} - */ + function willBreakFn(doc) { + if (doc.type === "group" && doc.break) { + return true; + } - function getMaxContinuousCount(str, target) { - const results = str.match(new RegExp("(".concat(escapeStringRegexp(target), ")+"), "g")); + if (doc.type === "line" && doc.hard) { + return true; + } - if (results === null) { - return 0; + if (doc.type === "break-parent") { + return true; } + } - return results.reduce((maxCount, result) => Math.max(maxCount, result.length / target.length), 0); + function willBreak(doc) { + return findInDoc(doc, willBreakFn, false); } - function getMinNotPresentContinuousCount(str, target) { - const matches = str.match(new RegExp("(".concat(escapeStringRegexp(target), ")+"), "g")); + function breakParentGroup(groupStack) { + if (groupStack.length > 0) { + const parentGroup = getLast_1(groupStack); // Breaks are not propagated through conditional groups because + // the user is expected to manually handle what breaks. - if (matches === null) { - return 0; + if (!parentGroup.expandedStates && !parentGroup.break) { + // An alternative truthy value allows to distinguish propagated group breaks + // and not to print them as `group(..., { break: true })` in `--debug-print-doc`. + parentGroup.break = "propagated"; + } } - const countPresent = new Map(); - let max = 0; + return null; + } - for (const match of matches) { - const count = match.length / target.length; - countPresent.set(count, true); + function propagateBreaks(doc) { + const alreadyVisitedSet = new Set(); + const groupStack = []; - if (count > max) { - max = count; + function propagateBreaksOnEnterFn(doc) { + if (doc.type === "break-parent") { + breakParentGroup(groupStack); + } + + if (doc.type === "group") { + groupStack.push(doc); + + if (alreadyVisitedSet.has(doc)) { + return false; + } + + alreadyVisitedSet.add(doc); + } + } + + function propagateBreaksOnExitFn(doc) { + if (doc.type === "group") { + const group = groupStack.pop(); + + if (group.break) { + breakParentGroup(groupStack); + } } } - for (let i = 1; i < max; i++) { - if (!countPresent.get(i)) { - return i; - } + traverseDoc(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, + /* shouldTraverseConditionalGroups */ + true); + } + + function removeLinesFn(doc) { + // Force this doc into flat mode by statically converting all + // lines into spaces (or soft lines into nothing). Hard lines + // should still output because there's too great of a chance + // of breaking existing assumptions otherwise. + if (doc.type === "line" && !doc.hard) { + return doc.soft ? "" : " "; + } + + if (doc.type === "if-break") { + return doc.flatContents || ""; } - return max + 1; + return doc; } - /** - * @param {string} text - * @returns {number} - */ - - function getStringWidth(text) { - if (!text) { - return 0; - } // shortcut to avoid needless string `RegExp`s, replacements, and allocations within `string-width` + function removeLines(doc) { + return mapDoc(doc, removeLinesFn); + } + const isHardline = (doc, nextDoc) => doc && doc.type === "line" && doc.hard && nextDoc && nextDoc.type === "break-parent"; - if (!notAsciiRegex.test(text)) { - return text.length; + function stripDocTrailingHardlineFromDoc(doc) { + if (!doc) { + return doc; } - return stringWidth_1(text); - } - - function hasIgnoreComment(path) { - const node = path.getValue(); - return hasNodeIgnoreComment(node); - } + if (isConcat$2(doc) || doc.type === "fill") { + const parts = getDocParts$2(doc); - function hasNodeIgnoreComment(node) { - return node && (node.comments && node.comments.length > 0 && node.comments.some(comment => isNodeIgnoreComment(comment) && !comment.unignore) || node.prettierIgnore); - } + while (parts.length > 1 && isHardline(...parts.slice(-2))) { + parts.length -= 2; + } - function isNodeIgnoreComment(comment) { - return comment.value.trim() === "prettier-ignore"; - } + if (parts.length > 0) { + const lastPart = stripDocTrailingHardlineFromDoc(getLast_1(parts)); + parts[parts.length - 1] = lastPart; + } - function addCommentHelper(node, comment) { - const comments = node.comments || (node.comments = []); - comments.push(comment); - comment.printed = false; // For some reason, TypeScript parses `// x` inside of JSXText as a comment - // We already "print" it via the raw text, we don't need to re-print it as a - // comment + return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, { + parts + }); + } - /* istanbul ignore next */ + switch (doc.type) { + case "align": + case "indent": + case "indent-if-break": + case "group": + case "line-suffix": + case "label": + { + const contents = stripDocTrailingHardlineFromDoc(doc.contents); + return Object.assign(Object.assign({}, doc), {}, { + contents + }); + } - if (node.type === "JSXText") { - comment.printed = true; + case "if-break": + { + const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents); + const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents); + return Object.assign(Object.assign({}, doc), {}, { + breakContents, + flatContents + }); + } } + + return doc; } - function addLeadingComment(node, comment) { - comment.leading = true; - comment.trailing = false; - addCommentHelper(node, comment); + function stripTrailingHardline(doc) { + // HACK remove ending hardline, original PR: #1984 + return stripDocTrailingHardlineFromDoc(cleanDoc(doc)); } - function addDanglingComment(node, comment, marker) { - comment.leading = false; - comment.trailing = false; + function cleanDocFn(doc) { + switch (doc.type) { + case "fill": + if (doc.parts.length === 0 || doc.parts.every(part => part === "")) { + return ""; + } - if (marker) { - comment.marker = marker; - } + break; - addCommentHelper(node, comment); - } + case "group": + if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) { + return ""; + } // Remove nested only group - function addTrailingComment(node, comment) { - comment.leading = false; - comment.trailing = true; - addCommentHelper(node, comment); - } // Not using - /* istanbul ignore next */ + if (doc.contents.type === "group" && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) { + return doc.contents; + } + break; - function isWithinParentArrayProperty(path, propertyName) { - const node = path.getValue(); - const parent = path.getParentNode(); + case "align": + case "indent": + case "indent-if-break": + case "line-suffix": + if (!doc.contents) { + return ""; + } - if (parent == null) { - return false; - } + break; - if (!Array.isArray(parent[propertyName])) { - return false; + case "if-break": + if (!doc.flatContents && !doc.breakContents) { + return ""; + } + + break; } - const key = path.getName(); - return parent[propertyName][key] === node; - } + if (!isConcat$2(doc)) { + return doc; + } - function replaceEndOfLineWith(text, replacement) { const parts = []; - for (const part of text.split("\n")) { - if (parts.length !== 0) { - parts.push(replacement); + for (const part of getDocParts$2(doc)) { + if (!part) { + continue; } - parts.push(part); - } - - return parts; - } + const [currentPart, ...restParts] = isConcat$2(part) ? getDocParts$2(part) : [part]; - function getParserName(lang, options) { - const supportInfo = support.getSupportInfo({ - plugins: options.plugins - }); - const language = supportInfo.languages.find(language => language.name.toLowerCase() === lang || language.aliases && language.aliases.includes(lang) || language.extensions && language.extensions.some(ext => ext === ".".concat(lang))); + if (typeof currentPart === "string" && typeof getLast_1(parts) === "string") { + parts[parts.length - 1] += currentPart; + } else { + parts.push(currentPart); + } - if (language) { - return language.parsers[0]; + parts.push(...restParts); } - return null; - } - - function isFrontMatterNode(node) { - return node && node.type === "front-matter"; - } - - function getShebang(text) { - if (!text.startsWith("#!")) { + if (parts.length === 0) { return ""; } - const index = text.indexOf("\n"); - - if (index === -1) { - return text; + if (parts.length === 1) { + return parts[0]; } - return text.slice(0, index); - } + return Array.isArray(doc) ? parts : Object.assign(Object.assign({}, doc), {}, { + parts + }); + } // A safer version of `normalizeDoc` + // - `normalizeDoc` concat strings and flat "concat" in `fill`, while `cleanDoc` don't + // - On `concat` object, `normalizeDoc` always return object with `parts`, `cleanDoc` may return strings + // - `cleanDoc` also remove nested `group`s and empty `fill`/`align`/`indent`/`line-suffix`/`if-break` if possible - var util = { - replaceEndOfLineWith, - getStringWidth, - getMaxContinuousCount, - getMinNotPresentContinuousCount, - getParserName, - getPenultimate, - getLast, - getNextNonSpaceNonCommentCharacterIndexWithStartIndex, - getNextNonSpaceNonCommentCharacterIndex, - getNextNonSpaceNonCommentCharacter, - skip, - skipWhitespace, - skipSpaces, - skipToLineEnd, - skipEverythingButNewLine, - skipInlineComment, - skipTrailingComment, - skipNewline, - isNextLineEmptyAfterIndex, - isNextLineEmpty, - isPreviousLineEmpty, - hasNewline, - hasNewlineInRange, - hasSpaces, - getAlignmentSize, - getIndentSize, - getPreferredQuote, - printString, - printNumber, - hasIgnoreComment, - hasNodeIgnoreComment, - isNodeIgnoreComment, - makeString, - addLeadingComment, - addDanglingComment, - addTrailingComment, - isWithinParentArrayProperty, - isFrontMatterNode, - getShebang - }; - function guessEndOfLine(text) { - const index = text.indexOf("\r"); + function cleanDoc(doc) { + return mapDoc(doc, currentDoc => cleanDocFn(currentDoc)); + } - if (index >= 0) { - return text.charAt(index + 1) === "\n" ? "crlf" : "cr"; - } + function normalizeParts(parts) { + const newParts = []; + const restParts = parts.filter(Boolean); - return "lf"; - } + while (restParts.length > 0) { + const part = restParts.shift(); - function convertEndOfLineToChars(value) { - switch (value) { - case "cr": - return "\r"; + if (!part) { + continue; + } - case "crlf": - return "\r\n"; + if (isConcat$2(part)) { + restParts.unshift(...getDocParts$2(part)); + continue; + } - default: - return "\n"; + if (newParts.length > 0 && typeof getLast_1(newParts) === "string" && typeof part === "string") { + newParts[newParts.length - 1] += part; + continue; + } + + newParts.push(part); } + + return newParts; } - function countEndOfLineChars(text, eol) { - let regex; - /* istanbul ignore else */ + function normalizeDoc(doc) { + return mapDoc(doc, currentDoc => { + if (Array.isArray(currentDoc)) { + return normalizeParts(currentDoc); + } - if (eol === "\n") { - regex = /\n/g; - } else if (eol === "\r") { - regex = /\r/g; - } else if (eol === "\r\n") { - regex = /\r\n/g; - } else { - throw new Error("Unexpected \"eol\" ".concat(JSON.stringify(eol), ".")); - } + if (!currentDoc.parts) { + return currentDoc; + } - const endOfLines = text.match(regex); - return endOfLines ? endOfLines.length : 0; + return Object.assign(Object.assign({}, currentDoc), {}, { + parts: normalizeParts(currentDoc.parts) + }); + }); } - function normalizeEndOfLine(text) { - return text.replace(/\r\n?/g, "\n"); + function replaceNewlinesWithLiterallines(doc) { + return mapDoc(doc, currentDoc => typeof currentDoc === "string" && currentDoc.includes("\n") ? join(literalline, currentDoc.split("\n")) : currentDoc); + } // This function need return array + // TODO: remove `.parts` when we remove `docBuilders.concat()` + + + function replaceEndOfLineWith(text, replacement) { + return join(replacement, text.split("\n")).parts; } - var endOfLine = { - guessEndOfLine, - convertEndOfLineToChars, - countEndOfLineChars, - normalizeEndOfLine + var docUtils = { + isConcat: isConcat$2, + getDocParts: getDocParts$2, + willBreak, + traverseDoc, + findInDoc, + mapDoc, + propagateBreaks, + removeLines, + stripTrailingHardline, + normalizeParts, + normalizeDoc, + cleanDoc, + replaceEndOfLineWith, + replaceNewlinesWithLiterallines }; const { - getStringWidth: getStringWidth$1 + getStringWidth, + getLast } = util; const { - convertEndOfLineToChars: convertEndOfLineToChars$1 + convertEndOfLineToChars } = endOfLine; const { - concat: concat$1, - fill: fill$1, - cursor: cursor$1 + fill, + cursor, + indent } = docBuilders; + const { + isConcat: isConcat$1, + getDocParts: getDocParts$1 + } = docUtils; /** @type {Record} */ let groupModeMap; @@ -2799,36 +4167,36 @@ }, options); } - function makeAlign(indent, n, options) { - if (n === -Infinity) { + function makeAlign(indent, widthOrDoc, options) { + if (widthOrDoc === Number.NEGATIVE_INFINITY) { return indent.root || rootIndent(); } - if (n < 0) { + if (widthOrDoc < 0) { return generateInd(indent, { type: "dedent" }, options); } - if (!n) { + if (!widthOrDoc) { return indent; } - if (n.type === "root") { - return Object.assign({}, indent, { + if (widthOrDoc.type === "root") { + return Object.assign(Object.assign({}, indent), {}, { root: indent }); } - const alignType = typeof n === "string" ? "stringAlign" : "numberAlign"; + const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign"; return generateInd(indent, { type: alignType, - n + n: widthOrDoc }, options); } function generateInd(ind, newPart, options) { - const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : ind.queue.concat(newPart); + const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart]; let value = ""; let length = 0; let lastTabs = 0; @@ -2861,12 +4229,12 @@ /* istanbul ignore next */ default: - throw new Error("Unexpected type '".concat(part.type, "'")); + throw new Error(`Unexpected type '${part.type}'`); } } flushSpaces(); - return Object.assign({}, ind, { + return Object.assign(Object.assign({}, ind), {}, { value, length, queue @@ -2912,27 +4280,27 @@ } } - function trim$1(out) { + function trim(out) { if (out.length === 0) { return 0; } let trimCount = 0; // Trim whitespace at the end of line - while (out.length > 0 && typeof out[out.length - 1] === "string" && out[out.length - 1].match(/^[\t ]*$/)) { + while (out.length > 0 && typeof getLast(out) === "string" && /^[\t ]*$/.test(getLast(out))) { trimCount += out.pop().length; } - if (out.length && typeof out[out.length - 1] === "string") { - const trimmed = out[out.length - 1].replace(/[\t ]*$/, ""); - trimCount += out[out.length - 1].length - trimmed.length; + if (out.length > 0 && typeof getLast(out) === "string") { + const trimmed = getLast(out).replace(/[\t ]*$/, ""); + trimCount += getLast(out).length - trimmed.length; out[out.length - 1] = trimmed; } return trimCount; } - function fits(next, restCommands, width, options, mustBeFlat) { + function fits(next, restCommands, width, options, hasLineSuffix, mustBeFlat) { let restIdx = restCommands.length; const cmds = [next]; // `out` is only used for width counting because `trim` requires to look // backwards for space characters. @@ -2954,16 +4322,15 @@ if (typeof doc === "string") { out.push(doc); - width -= getStringWidth$1(doc); + width -= getStringWidth(doc); + } else if (isConcat$1(doc)) { + const parts = getDocParts$1(doc); + + for (let i = parts.length - 1; i >= 0; i--) { + cmds.push([ind, mode, parts[i]]); + } } else { switch (doc.type) { - case "concat": - for (let i = doc.parts.length - 1; i >= 0; i--) { - cmds.push([ind, mode, doc.parts[i]]); - } - - break; - case "indent": cmds.push([makeIndent(ind, options), mode, doc.contents]); break; @@ -2973,21 +4340,25 @@ break; case "trim": - width += trim$1(out); + width += trim(out); break; case "group": - if (mustBeFlat && doc.break) { - return false; - } + { + if (mustBeFlat && doc.break) { + return false; + } - cmds.push([ind, doc.break ? MODE_BREAK : mode, doc.contents]); + const groupMode = doc.break ? MODE_BREAK : mode; + cmds.push([ind, groupMode, // The most expanded state takes up the least space on the current line. + doc.expandedStates && groupMode === MODE_BREAK ? getLast(doc.expandedStates) : doc.contents]); - if (doc.id) { - groupModeMap[doc.id] = cmds[cmds.length - 1][1]; - } + if (doc.id) { + groupModeMap[doc.id] = groupMode; + } - break; + break; + } case "fill": for (let i = doc.parts.length - 1; i >= 0; i--) { @@ -2997,18 +4368,23 @@ break; case "if-break": + case "indent-if-break": { const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode; if (groupMode === MODE_BREAK) { - if (doc.breakContents) { - cmds.push([ind, mode, doc.breakContents]); + const breakContents = doc.type === "if-break" ? doc.breakContents : doc.negate ? doc.contents : indent(doc.contents); + + if (breakContents) { + cmds.push([ind, mode, breakContents]); } } if (groupMode === MODE_FLAT) { - if (doc.flatContents) { - cmds.push([ind, mode, doc.flatContents]); + const flatContents = doc.type === "if-break" ? doc.flatContents : doc.negate ? indent(doc.contents) : doc.contents; + + if (flatContents) { + cmds.push([ind, mode, flatContents]); } } @@ -3035,6 +4411,21 @@ } break; + + case "line-suffix": + hasLineSuffix = true; + break; + + case "line-suffix-boundary": + if (hasLineSuffix) { + return false; + } + + break; + + case "label": + cmds.push([ind, mode, doc.contents]); + break; } } } @@ -3045,7 +4436,7 @@ function printDocToString(doc, options) { groupModeMap = {}; const width = options.printWidth; - const newLine = convertEndOfLineToChars$1(options.endOfLine); + const newLine = convertEndOfLineToChars(options.endOfLine); let pos = 0; // cmds is basically a stack. We've turned a recursive call into a // while loop which is much faster. The while loop below adds new // cmds to the array instead of recursively calling `print`. @@ -3055,24 +4446,23 @@ let shouldRemeasure = false; let lineSuffix = []; - while (cmds.length !== 0) { + while (cmds.length > 0) { const [ind, mode, doc] = cmds.pop(); if (typeof doc === "string") { - const formatted = newLine !== "\n" && doc.includes("\n") ? doc.replace(/\n/g, newLine) : doc; + const formatted = newLine !== "\n" ? doc.replace(/\n/g, newLine) : doc; out.push(formatted); - pos += getStringWidth$1(formatted); + pos += getStringWidth(formatted); + } else if (isConcat$1(doc)) { + const parts = getDocParts$1(doc); + + for (let i = parts.length - 1; i >= 0; i--) { + cmds.push([ind, mode, parts[i]]); + } } else { switch (doc.type) { case "cursor": - out.push(cursor$1.placeholder); - break; - - case "concat": - for (let i = doc.parts.length - 1; i >= 0; i--) { - cmds.push([ind, mode, doc.parts[i]]); - } - + out.push(cursor.placeholder); break; case "indent": @@ -3084,7 +4474,7 @@ break; case "trim": - pos -= trim$1(out); + pos -= trim(out); break; case "group": @@ -3102,8 +4492,9 @@ shouldRemeasure = false; const next = [ind, MODE_FLAT, doc.contents]; const rem = width - pos; + const hasLineSuffix = lineSuffix.length > 0; - if (!doc.break && fits(next, cmds, rem, options)) { + if (!doc.break && fits(next, cmds, rem, options, hasLineSuffix)) { cmds.push(next); } else { // Expanded states are a rare case where a document @@ -3114,7 +4505,7 @@ // group has these, we need to manually go through // these states and find the first one that fits. if (doc.expandedStates) { - const mostExpanded = doc.expandedStates[doc.expandedStates.length - 1]; + const mostExpanded = getLast(doc.expandedStates); if (doc.break) { cmds.push([ind, MODE_BREAK, mostExpanded]); @@ -3128,7 +4519,7 @@ const state = doc.expandedStates[i]; const cmd = [ind, MODE_FLAT, state]; - if (fits(cmd, cmds, rem, options)) { + if (fits(cmd, cmds, rem, options, hasLineSuffix)) { cmds.push(cmd); break; } @@ -3145,7 +4536,7 @@ } if (doc.id) { - groupModeMap[doc.id] = cmds[cmds.length - 1][1]; + groupModeMap[doc.id] = getLast(cmds)[1]; } break; @@ -3184,7 +4575,7 @@ const [content, whitespace] = parts; const contentFlatCmd = [ind, MODE_FLAT, content]; const contentBreakCmd = [ind, MODE_BREAK, content]; - const contentFits = fits(contentFlatCmd, [], rem, options, true); + const contentFits = fits(contentFlatCmd, [], rem, options, lineSuffix.length > 0, true); if (parts.length === 1) { if (contentFits) { @@ -3201,11 +4592,9 @@ if (parts.length === 2) { if (contentFits) { - cmds.push(whitespaceFlatCmd); - cmds.push(contentFlatCmd); + cmds.push(whitespaceFlatCmd, contentFlatCmd); } else { - cmds.push(whitespaceBreakCmd); - cmds.push(contentBreakCmd); + cmds.push(whitespaceBreakCmd, contentBreakCmd); } break; @@ -3217,41 +4606,40 @@ parts.splice(0, 2); - const remainingCmd = [ind, mode, fill$1(parts)]; + const remainingCmd = [ind, mode, fill(parts)]; const secondContent = parts[0]; - const firstAndSecondContentFlatCmd = [ind, MODE_FLAT, concat$1([content, whitespace, secondContent])]; - const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, options, true); + const firstAndSecondContentFlatCmd = [ind, MODE_FLAT, [content, whitespace, secondContent]]; + const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, options, lineSuffix.length > 0, true); if (firstAndSecondContentFits) { - cmds.push(remainingCmd); - cmds.push(whitespaceFlatCmd); - cmds.push(contentFlatCmd); + cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd); } else if (contentFits) { - cmds.push(remainingCmd); - cmds.push(whitespaceBreakCmd); - cmds.push(contentFlatCmd); + cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd); } else { - cmds.push(remainingCmd); - cmds.push(whitespaceBreakCmd); - cmds.push(contentBreakCmd); + cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd); } break; } case "if-break": + case "indent-if-break": { const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode; if (groupMode === MODE_BREAK) { - if (doc.breakContents) { - cmds.push([ind, mode, doc.breakContents]); + const breakContents = doc.type === "if-break" ? doc.breakContents : doc.negate ? doc.contents : indent(doc.contents); + + if (breakContents) { + cmds.push([ind, mode, breakContents]); } } if (groupMode === MODE_FLAT) { - if (doc.flatContents) { - cmds.push([ind, mode, doc.flatContents]); + const flatContents = doc.type === "if-break" ? doc.flatContents : doc.negate ? indent(doc.contents) : doc.contents; + + if (flatContents) { + cmds.push([ind, mode, flatContents]); } } @@ -3295,9 +4683,8 @@ // fallthrough case MODE_BREAK: - if (lineSuffix.length) { - cmds.push([ind, mode, doc]); - cmds.push(...lineSuffix.reverse()); + if (lineSuffix.length > 0) { + cmds.push([ind, mode, doc], ...lineSuffix.reverse()); lineSuffix = []; break; } @@ -3311,7 +4698,7 @@ pos = 0; } } else { - pos -= trim$1(out); + pos -= trim(out); out.push(newLine + ind.value); pos = ind.length; } @@ -3320,14 +4707,25 @@ } break; + + case "label": + cmds.push([ind, mode, doc.contents]); + break; } + } // Flush remaining line-suffix contents at the end of the document, in case + // there is no new line after the line-suffix. + + + if (cmds.length === 0 && lineSuffix.length > 0) { + cmds.push(...lineSuffix.reverse()); + lineSuffix = []; } } - const cursorPlaceholderIndex = out.indexOf(cursor$1.placeholder); + const cursorPlaceholderIndex = out.indexOf(cursor.placeholder); if (cursorPlaceholderIndex !== -1) { - const otherCursorPlaceholderIndex = out.indexOf(cursor$1.placeholder, cursorPlaceholderIndex + 1); + const otherCursorPlaceholderIndex = out.indexOf(cursor.placeholder, cursorPlaceholderIndex + 1); const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); @@ -3347,409 +4745,203 @@ printDocToString }; - const traverseDocOnExitStackMarker = {}; - - function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { - const docsStack = [doc]; - - while (docsStack.length !== 0) { - const doc = docsStack.pop(); + const { + isConcat, + getDocParts + } = docUtils; - if (doc === traverseDocOnExitStackMarker) { - onExit(docsStack.pop()); - continue; - } + function flattenDoc(doc) { + if (!doc) { + return ""; + } - if (onExit) { - docsStack.push(doc, traverseDocOnExitStackMarker); - } + if (isConcat(doc)) { + const res = []; - if ( // Should Recurse - !onEnter || onEnter(doc) !== false) { - // When there are multiple parts to process, - // the parts need to be pushed onto the stack in reverse order, - // so that they are processed in the original order - // when the stack is popped. - if (doc.type === "concat" || doc.type === "fill") { - for (let ic = doc.parts.length, i = ic - 1; i >= 0; --i) { - docsStack.push(doc.parts[i]); - } - } else if (doc.type === "if-break") { - if (doc.flatContents) { - docsStack.push(doc.flatContents); - } + for (const part of getDocParts(doc)) { + if (isConcat(part)) { + res.push(...flattenDoc(part).parts); + } else { + const flattened = flattenDoc(part); - if (doc.breakContents) { - docsStack.push(doc.breakContents); - } - } else if (doc.type === "group" && doc.expandedStates) { - if (shouldTraverseConditionalGroups) { - for (let ic = doc.expandedStates.length, i = ic - 1; i >= 0; --i) { - docsStack.push(doc.expandedStates[i]); - } - } else { - docsStack.push(doc.contents); + if (flattened !== "") { + res.push(flattened); } - } else if (doc.contents) { - docsStack.push(doc.contents); } } - } - } - - function mapDoc(doc, cb) { - if (doc.type === "concat" || doc.type === "fill") { - const parts = doc.parts.map(part => mapDoc(part, cb)); - return cb(Object.assign({}, doc, { - parts - })); - } else if (doc.type === "if-break") { - const breakContents = doc.breakContents && mapDoc(doc.breakContents, cb); - const flatContents = doc.flatContents && mapDoc(doc.flatContents, cb); - return cb(Object.assign({}, doc, { - breakContents, - flatContents - })); - } else if (doc.contents) { - const contents = mapDoc(doc.contents, cb); - return cb(Object.assign({}, doc, { - contents - })); - } - - return cb(doc); - } - - function findInDoc(doc, fn, defaultValue) { - let result = defaultValue; - let hasStopped = false; - - function findInDocOnEnterFn(doc) { - const maybeResult = fn(doc); - - if (maybeResult !== undefined) { - hasStopped = true; - result = maybeResult; - } - if (hasStopped) { - return false; - } + return { + type: "concat", + parts: res + }; } - traverseDoc(doc, findInDocOnEnterFn); - return result; - } - - function isEmpty(n) { - return typeof n === "string" && n.length === 0; - } - - function isLineNextFn(doc) { - if (typeof doc === "string") { - return false; + if (doc.type === "if-break") { + return Object.assign(Object.assign({}, doc), {}, { + breakContents: flattenDoc(doc.breakContents), + flatContents: flattenDoc(doc.flatContents) + }); } - if (doc.type === "line") { - return true; + if (doc.type === "group") { + return Object.assign(Object.assign({}, doc), {}, { + contents: flattenDoc(doc.contents), + expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc) + }); } - } - - function isLineNext(doc) { - return findInDoc(doc, isLineNextFn, false); - } - function willBreakFn(doc) { - if (doc.type === "group" && doc.break) { - return true; + if (doc.type === "fill") { + return { + type: "fill", + parts: doc.parts.map(flattenDoc) + }; } - if (doc.type === "line" && doc.hard) { - return true; + if (doc.contents) { + return Object.assign(Object.assign({}, doc), {}, { + contents: flattenDoc(doc.contents) + }); } - if (doc.type === "break-parent") { - return true; - } + return doc; } - function willBreak(doc) { - return findInDoc(doc, willBreakFn, false); - } + function printDocToDebug(doc) { + /** @type Record */ + const printedSymbols = Object.create(null); + /** @type Set */ - function breakParentGroup(groupStack) { - if (groupStack.length > 0) { - const parentGroup = groupStack[groupStack.length - 1]; // Breaks are not propagated through conditional groups because - // the user is expected to manually handle what breaks. + const usedKeysForSymbols = new Set(); + return printDoc(flattenDoc(doc)); - if (!parentGroup.expandedStates) { - parentGroup.break = true; + function printDoc(doc, index, parentParts) { + if (typeof doc === "string") { + return JSON.stringify(doc); } - } - - return null; - } - - function propagateBreaks(doc) { - const alreadyVisitedSet = new Set(); - const groupStack = []; - function propagateBreaksOnEnterFn(doc) { - if (doc.type === "break-parent") { - breakParentGroup(groupStack); + if (isConcat(doc)) { + const printed = getDocParts(doc).map(printDoc).filter(Boolean); + return printed.length === 1 ? printed[0] : `[${printed.join(", ")}]`; } - if (doc.type === "group") { - groupStack.push(doc); + if (doc.type === "line") { + const withBreakParent = Array.isArray(parentParts) && parentParts[index + 1] && parentParts[index + 1].type === "break-parent"; - if (alreadyVisitedSet.has(doc)) { - return false; + if (doc.literal) { + return withBreakParent ? "literalline" : "literallineWithoutBreakParent"; } - alreadyVisitedSet.add(doc); - } - } - - function propagateBreaksOnExitFn(doc) { - if (doc.type === "group") { - const group = groupStack.pop(); - - if (group.break) { - breakParentGroup(groupStack); + if (doc.hard) { + return withBreakParent ? "hardline" : "hardlineWithoutBreakParent"; } - } - } - - traverseDoc(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, - /* shouldTraverseConditionalGroups */ - true); - } - - function removeLinesFn(doc) { - // Force this doc into flat mode by statically converting all - // lines into spaces (or soft lines into nothing). Hard lines - // should still output because there's too great of a chance - // of breaking existing assumptions otherwise. - if (doc.type === "line" && !doc.hard) { - return doc.soft ? "" : " "; - } else if (doc.type === "if-break") { - return doc.flatContents || ""; - } - - return doc; - } - - function removeLines(doc) { - return mapDoc(doc, removeLinesFn); - } - - function getInnerParts(doc) { - let { - parts - } = doc; - let lastPart; // Avoid a falsy element like "" - for (let i = doc.parts.length; i > 0 && !lastPart; i--) { - lastPart = parts[i - 1]; - } - - if (lastPart.type === "group") { - parts = lastPart.contents.parts; - } - - return parts; - } - - function stripTrailingHardline(doc, withInnerParts = false) { - // HACK remove ending hardline, original PR: #1984 - if (doc.type === "concat" && doc.parts.length !== 0) { - const parts = withInnerParts ? getInnerParts(doc) : doc.parts; - const lastPart = parts[parts.length - 1]; - - if (lastPart.type === "concat") { - if (lastPart.parts.length === 2 && lastPart.parts[0].hard && lastPart.parts[1].type === "break-parent") { - return { - type: "concat", - parts: parts.slice(0, -1) - }; + if (doc.soft) { + return "softline"; } - return { - type: "concat", - parts: doc.parts.slice(0, -1).concat(stripTrailingHardline(lastPart)) - }; + return "line"; } - } - - return doc; - } - - function normalizeParts(parts) { - const newParts = []; - const restParts = parts.filter(Boolean); - - while (restParts.length !== 0) { - const part = restParts.shift(); - if (!part) { - continue; + if (doc.type === "break-parent") { + const afterHardline = Array.isArray(parentParts) && parentParts[index - 1] && parentParts[index - 1].type === "line" && parentParts[index - 1].hard; + return afterHardline ? undefined : "breakParent"; } - if (part.type === "concat") { - restParts.unshift(...part.parts); - continue; + if (doc.type === "trim") { + return "trim"; } - if (newParts.length !== 0 && typeof newParts[newParts.length - 1] === "string" && typeof part === "string") { - newParts[newParts.length - 1] += part; - continue; + if (doc.type === "indent") { + return "indent(" + printDoc(doc.contents) + ")"; } - newParts.push(part); - } - - return newParts; - } + if (doc.type === "align") { + return doc.n === Number.NEGATIVE_INFINITY ? "dedentToRoot(" + printDoc(doc.contents) + ")" : doc.n < 0 ? "dedent(" + printDoc(doc.contents) + ")" : doc.n.type === "root" ? "markAsRoot(" + printDoc(doc.contents) + ")" : "align(" + JSON.stringify(doc.n) + ", " + printDoc(doc.contents) + ")"; + } - function normalizeDoc(doc) { - return mapDoc(doc, currentDoc => { - if (!currentDoc.parts) { - return currentDoc; + if (doc.type === "if-break") { + return "ifBreak(" + printDoc(doc.breakContents) + (doc.flatContents ? ", " + printDoc(doc.flatContents) : "") + (doc.groupId ? (!doc.flatContents ? ', ""' : "") + `, { groupId: ${printGroupId(doc.groupId)} }` : "") + ")"; } - return Object.assign({}, currentDoc, { - parts: normalizeParts(currentDoc.parts) - }); - }); - } + if (doc.type === "indent-if-break") { + const optionsParts = []; - var docUtils = { - isEmpty, - willBreak, - isLineNext, - traverseDoc, - findInDoc, - mapDoc, - propagateBreaks, - removeLines, - stripTrailingHardline, - normalizeParts, - normalizeDoc - }; + if (doc.negate) { + optionsParts.push("negate: true"); + } - function flattenDoc(doc) { - if (doc.type === "concat") { - const res = []; + if (doc.groupId) { + optionsParts.push(`groupId: ${printGroupId(doc.groupId)}`); + } - for (let i = 0; i < doc.parts.length; ++i) { - const doc2 = doc.parts[i]; + const options = optionsParts.length > 0 ? `, { ${optionsParts.join(", ")} }` : ""; + return `indentIfBreak(${printDoc(doc.contents)}${options})`; + } - if (typeof doc2 !== "string" && doc2.type === "concat") { - res.push(...flattenDoc(doc2).parts); - } else { - const flattened = flattenDoc(doc2); + if (doc.type === "group") { + const optionsParts = []; - if (flattened !== "") { - res.push(flattened); - } + if (doc.break && doc.break !== "propagated") { + optionsParts.push("shouldBreak: true"); } - } - return Object.assign({}, doc, { - parts: res - }); - } else if (doc.type === "if-break") { - return Object.assign({}, doc, { - breakContents: doc.breakContents != null ? flattenDoc(doc.breakContents) : null, - flatContents: doc.flatContents != null ? flattenDoc(doc.flatContents) : null - }); - } else if (doc.type === "group") { - return Object.assign({}, doc, { - contents: flattenDoc(doc.contents), - expandedStates: doc.expandedStates ? doc.expandedStates.map(flattenDoc) : doc.expandedStates - }); - } else if (doc.contents) { - return Object.assign({}, doc, { - contents: flattenDoc(doc.contents) - }); - } + if (doc.id) { + optionsParts.push(`id: ${printGroupId(doc.id)}`); + } - return doc; - } + const options = optionsParts.length > 0 ? `, { ${optionsParts.join(", ")} }` : ""; - function printDoc(doc) { - if (typeof doc === "string") { - return JSON.stringify(doc); - } + if (doc.expandedStates) { + return `conditionalGroup([${doc.expandedStates.map(part => printDoc(part)).join(",")}]${options})`; + } - if (doc.type === "line") { - if (doc.literal) { - return "literalline"; + return `group(${printDoc(doc.contents)}${options})`; } - if (doc.hard) { - return "hardline"; + if (doc.type === "fill") { + return `fill([${doc.parts.map(part => printDoc(part)).join(", ")}])`; } - if (doc.soft) { - return "softline"; + if (doc.type === "line-suffix") { + return "lineSuffix(" + printDoc(doc.contents) + ")"; } - return "line"; - } - - if (doc.type === "break-parent") { - return "breakParent"; - } - - if (doc.type === "trim") { - return "trim"; - } - - if (doc.type === "concat") { - return "[" + doc.parts.map(printDoc).join(", ") + "]"; - } - - if (doc.type === "indent") { - return "indent(" + printDoc(doc.contents) + ")"; - } + if (doc.type === "line-suffix-boundary") { + return "lineSuffixBoundary"; + } - if (doc.type === "align") { - return doc.n === -Infinity ? "dedentToRoot(" + printDoc(doc.contents) + ")" : doc.n < 0 ? "dedent(" + printDoc(doc.contents) + ")" : doc.n.type === "root" ? "markAsRoot(" + printDoc(doc.contents) + ")" : "align(" + JSON.stringify(doc.n) + ", " + printDoc(doc.contents) + ")"; - } + if (doc.type === "label") { + return `label(${JSON.stringify(doc.label)}, ${printDoc(doc.contents)})`; + } - if (doc.type === "if-break") { - return "ifBreak(" + printDoc(doc.breakContents) + (doc.flatContents ? ", " + printDoc(doc.flatContents) : "") + ")"; + throw new Error("Unknown doc type " + doc.type); } - if (doc.type === "group") { - if (doc.expandedStates) { - return "conditionalGroup(" + "[" + doc.expandedStates.map(printDoc).join(",") + "])"; + function printGroupId(id) { + if (typeof id !== "symbol") { + return JSON.stringify(String(id)); } - return (doc.break ? "wrappedGroup" : "group") + "(" + printDoc(doc.contents) + ")"; - } + if (id in printedSymbols) { + return printedSymbols[id]; + } // TODO: use Symbol.prototype.description instead of slice once Node 10 is dropped - if (doc.type === "fill") { - return "fill" + "(" + doc.parts.map(printDoc).join(", ") + ")"; - } - if (doc.type === "line-suffix") { - return "lineSuffix(" + printDoc(doc.contents) + ")"; - } + const prefix = String(id).slice(7, -1) || "symbol"; - if (doc.type === "line-suffix-boundary") { - return "lineSuffixBoundary"; - } + for (let counter = 0;; counter++) { + const key = prefix + (counter > 0 ? ` #${counter}` : ""); - throw new Error("Unknown doc type " + doc.type); + if (!usedKeysForSymbols.has(key)) { + usedKeysForSymbols.add(key); + return printedSymbols[id] = `Symbol.for(${JSON.stringify(key)})`; + } + } + } } var docDebug = { - printDocToDebug(doc) { - return printDoc(flattenDoc(doc)); - } - + printDocToDebug }; /** diff --git a/node_modules/prettier/esm/parser-angular.mjs b/node_modules/prettier/esm/parser-angular.mjs new file mode 100644 index 0000000000..521db5de3d --- /dev/null +++ b/node_modules/prettier/esm/parser-angular.mjs @@ -0,0 +1,67 @@ +var e=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const t=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var r=t,n=t;r.default=n;const i=t=>{if("string"!=typeof t||0===t.length)return 0;if(0===(t=e(t)).length)return 0;t=t.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let n=0;for(let e=0;e=127&&i<=159||(i>=768&&i<=879||(i>65535&&e++,n+=r(i)?2:1))}return n};var s=i,u=i;s.default=u;var a=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var o=e=>e[e.length-1];function D(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function l(e){var t={exports:{}};return e(t,t.exports),t.exports}var p=function(e){return e&&e.Math==Math&&e},h=p("object"==typeof globalThis&&globalThis)||p("object"==typeof window&&window)||p("object"==typeof self&&self)||p("object"==typeof c&&c)||function(){return this}()||Function("return this")(),d=function(e){try{return!!e()}catch(e){return!0}},f=!d((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),E={}.propertyIsEnumerable,C=Object.getOwnPropertyDescriptor,v={f:C&&!E.call({1:2},1)?function(e){var t=C(this,e);return!!t&&t.enumerable}:E},F=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},g={}.toString,m=function(e){return g.call(e).slice(8,-1)},y="".split,x=d((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==m(e)?y.call(e,""):Object(e)}:Object,A=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},S=function(e){return x(A(e))},w=function(e){return"object"==typeof e?null!==e:"function"==typeof e},I=function(e,t){if(!w(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!w(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!w(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!w(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")},O=function(e){return Object(A(e))},N={}.hasOwnProperty,b=Object.hasOwn||function(e,t){return N.call(O(e),t)},B=h.document,P=w(B)&&w(B.createElement),T=!f&&!d((function(){return 7!=Object.defineProperty((e="div",P?B.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),L=Object.getOwnPropertyDescriptor,R={f:f?L:function(e,t){if(e=S(e),t=I(t,!0),T)try{return L(e,t)}catch(e){}if(b(e,t))return F(!v.f.call(e,t),e[t])}},k=function(e){if(!w(e))throw TypeError(String(e)+" is not an object");return e},$=Object.defineProperty,_={f:f?$:function(e,t,r){if(k(e),t=I(t,!0),k(r),T)try{return $(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},M=f?function(e,t,r){return _.f(e,t,F(1,r))}:function(e,t,r){return e[t]=r,e},j=function(e,t){try{M(h,e,t)}catch(r){h[e]=t}return t},G=h["__core-js_shared__"]||j("__core-js_shared__",{}),K=Function.toString;"function"!=typeof G.inspectSource&&(G.inspectSource=function(e){return K.call(e)});var U,W,V,X,z=G.inspectSource,q=h.WeakMap,Q="function"==typeof q&&/native code/.test(z(q)),Y=l((function(e){(e.exports=function(e,t){return G[e]||(G[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),H=0,J=Math.random(),Z=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++H+J).toString(36)},ee=Y("keys"),te={},re=h.WeakMap;if(Q||G.state){var ne=G.state||(G.state=new re),ie=ne.get,se=ne.has,ue=ne.set;U=function(e,t){if(se.call(ne,e))throw new TypeError("Object already initialized");return t.facade=e,ue.call(ne,e,t),t},W=function(e){return ie.call(ne,e)||{}},V=function(e){return se.call(ne,e)}}else{var ae=ee[X="state"]||(ee[X]=Z(X));te[ae]=!0,U=function(e,t){if(b(e,ae))throw new TypeError("Object already initialized");return t.facade=e,M(e,ae,t),t},W=function(e){return b(e,ae)?e[ae]:{}},V=function(e){return b(e,ae)}}var oe,De,ce={set:U,get:W,has:V,enforce:function(e){return V(e)?W(e):U(e,{})},getterFor:function(e){return function(t){var r;if(!w(t)||(r=W(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}},le=l((function(e){var t=ce.get,r=ce.enforce,n=String(String).split("String");(e.exports=function(e,t,i,s){var u,a=!!s&&!!s.unsafe,o=!!s&&!!s.enumerable,D=!!s&&!!s.noTargetGet;"function"==typeof i&&("string"!=typeof t||b(i,"name")||M(i,"name",t),(u=r(i)).source||(u.source=n.join("string"==typeof t?t:""))),e!==h?(a?!D&&e[t]&&(o=!0):delete e[t],o?e[t]=i:M(e,t,i)):o?e[t]=i:j(t,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||z(this)}))})),pe=h,he=function(e){return"function"==typeof e?e:void 0},de=function(e,t){return arguments.length<2?he(pe[e])||he(h[e]):pe[e]&&pe[e][t]||h[e]&&h[e][t]},fe=Math.ceil,Ee=Math.floor,Ce=function(e){return isNaN(e=+e)?0:(e>0?Ee:fe)(e)},ve=Math.min,Fe=function(e){return e>0?ve(Ce(e),9007199254740991):0},ge=Math.max,me=Math.min,ye=function(e){return function(t,r,n){var i,s=S(t),u=Fe(s.length),a=function(e,t){var r=Ce(e);return r<0?ge(r+t,0):me(r,t)}(n,u);if(e&&r!=r){for(;u>a;)if((i=s[a++])!=i)return!0}else for(;u>a;a++)if((e||a in s)&&s[a]===r)return e||a||0;return!e&&-1}},xe={includes:ye(!0),indexOf:ye(!1)}.indexOf,Ae=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),Se={f:Object.getOwnPropertyNames||function(e){return function(e,t){var r,n=S(e),i=0,s=[];for(r in n)!b(te,r)&&b(n,r)&&s.push(r);for(;t.length>i;)b(n,r=t[i++])&&(~xe(s,r)||s.push(r));return s}(e,Ae)}},we={f:Object.getOwnPropertySymbols},Ie=de("Reflect","ownKeys")||function(e){var t=Se.f(k(e)),r=we.f;return r?t.concat(r(e)):t},Oe=function(e,t){for(var r=Ie(t),n=_.f,i=R.f,s=0;s0&&_e(o))D=Ge(e,t,o,Fe(o.length),D,s-1)-1;else{if(D>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[D]=o}D++}c++}return D},Ke=Ge,Ue=de("navigator","userAgent")||"",We=h.process,Ve=We&&We.versions,Xe=Ve&&Ve.v8;Xe?De=(oe=Xe.split("."))[0]<4?1:oe[0]+oe[1]:Ue&&(!(oe=Ue.match(/Edge\/(\d+)/))||oe[1]>=74)&&(oe=Ue.match(/Chrome\/(\d+)/))&&(De=oe[1]);var ze=De&&+De,qe=!!Object.getOwnPropertySymbols&&!d((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ze&&ze<41})),Qe=qe&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ye=Y("wks"),He=h.Symbol,Je=Qe?He:He&&He.withoutSetter||Z,Ze=function(e){return b(Ye,e)&&(qe||"string"==typeof Ye[e])||(qe&&b(He,e)?Ye[e]=He[e]:Ye[e]=Je("Symbol."+e)),Ye[e]},et=Ze("species"),tt=function(e,t){var r;return _e(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!_e(r.prototype)?w(r)&&null===(r=r[et])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)};$e({target:"Array",proto:!0},{flatMap:function(e){var t,r=O(this),n=Fe(r.length);return Me(e),(t=tt(r,0)).length=Ke(t,r,r,n,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var rt,nt,it=Math.floor,st=function(e,t){var r=e.length,n=it(r/2);return r<8?ut(e,t):at(st(e.slice(0,n),t),st(e.slice(n),t),t)},ut=function(e,t){for(var r,n,i=e.length,s=1;s0;)e[n]=e[--n];n!==s++&&(e[n]=r)}return e},at=function(e,t,r){for(var n=e.length,i=t.length,s=0,u=0,a=[];s3)){if(lt)return!0;if(ht)return ht<603;var e,t,r,n,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)dt.push({k:t+n,v:r})}for(dt.sort((function(e,t){return t.v-e.v})),n=0;nString(r)?1:-1}}(e))).length,n=0;ns;s++)if((a=C(e[s]))&&a instanceof bt)return a;return new bt(!1)}n=i.call(e)}for(o=n.next;!(D=o.call(n)).done;){try{a=C(D.value)}catch(e){throw Nt(n),e}if("object"==typeof a&&a&&a instanceof bt)return a}return new bt(!1)};$e({target:"Object",stat:!0},{fromEntries:function(e){var t={};return Bt(e,(function(e,r){!function(e,t,r){var n=I(t);n in e?_.f(e,n,F(0,r)):e[n]=r}(t,e,r)}),{AS_ENTRIES:!0}),t}});var Pt=void 0!==Pt?Pt:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Tt(){throw new Error("setTimeout has not been defined")}function Lt(){throw new Error("clearTimeout has not been defined")}var Rt=Tt,kt=Lt;function $t(e){if(Rt===setTimeout)return setTimeout(e,0);if((Rt===Tt||!Rt)&&setTimeout)return Rt=setTimeout,setTimeout(e,0);try{return Rt(e,0)}catch(t){try{return Rt.call(null,e,0)}catch(t){return Rt.call(this,e,0)}}}"function"==typeof Pt.setTimeout&&(Rt=setTimeout),"function"==typeof Pt.clearTimeout&&(kt=clearTimeout);var _t,Mt=[],jt=!1,Gt=-1;function Kt(){jt&&_t&&(jt=!1,_t.length?Mt=_t.concat(Mt):Gt=-1,Mt.length&&Ut())}function Ut(){if(!jt){var e=$t(Kt);jt=!0;for(var t=Mt.length;t;){for(_t=Mt,Mt=[];++Gt1)for(var r=1;rconsole.error("SEMVER",...e):()=>{};var ir={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},sr=l((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:r}=ir,n=(t=e.exports={}).re=[],i=t.src=[],s=t.t={};let u=0;const a=(e,t,r)=>{const a=u++;nr(a,t),s[e]=a,i[a]=t,n[a]=new RegExp(t,r?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","[0-9]+"),a("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),a("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),a("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER","[0-9A-Za-z-]+"),a("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),a("FULL",`^${i[s.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),a("LOOSE",`^${i[s.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",`${i[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),a("XRANGEIDENTIFIER",`${i[s.NUMERICIDENTIFIER]}|x|X|\\*`),a("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),a("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),a("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),a("COERCERTL",i[s.COERCE],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",a("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",a("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0.0.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const ur=["includePrerelease","loose","rtl"];var ar=e=>e?"object"!=typeof e?{loose:!0}:ur.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const or=/^[0-9]+$/,Dr=(e,t)=>{const r=or.test(e),n=or.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eDr(t,e)};const{MAX_LENGTH:lr,MAX_SAFE_INTEGER:pr}=ir,{re:hr,t:dr}=sr,{compareIdentifiers:fr}=cr;class Er{constructor(e,t){if(t=ar(t),e instanceof Er){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>lr)throw new TypeError(`version is longer than ${lr} characters`);nr("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?hr[dr.LOOSE]:hr[dr.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>pr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>pr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>pr||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}}var Cr=Er;var vr=(e,t,r)=>new Cr(e,r).compare(new Cr(t,r));var Fr=(e,t,r)=>vr(e,t,r)<0;var gr=(e,t,r)=>vr(e,t,r)>=0,mr="2.3.2",yr=l((function(e,t){function r(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:xr` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:xr` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:xr` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:xr` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const Sr=["cliName","cliCategory","cliDescription"],wr={compare:vr,lt:Fr,gte:gr},Ir=mr,Or={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:Ar}.options;var Nr={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:r=!1,showInternal:n=!1}={}){const i=Ir.split("-",1)[0],s=e.flatMap((e=>e.languages||[])).filter(c),u=(a=Object.assign({},...e.map((({options:e})=>e)),Or),o="name",Object.entries(a).map((([e,t])=>Object.assign({[o]:e},t)))).filter((e=>c(e)&&l(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(c).sort(((e,t)=>wr.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>c(e)&&l(e))),"parser"===t.name&&function(e,t,r){const n=new Set(e.choices.map((e=>e.value)));for(const i of t)if(i.parsers)for(const t of i.parsers)if(!n.has(t)){n.add(t);const s=r.find((e=>e.parsers&&e.parsers[t]));let u=i.name;s&&s.name&&(u+=` (plugin: ${s.name})`),e.choices.push({value:t,description:u})}}(t,s,e));const r=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:r})}));var a,o;return{languages:s,options:u};function c(e){return t||!("since"in e)||e.since&&wr.gte(i,e.since)}function l(e){return r||!("deprecated"in e)||e.deprecated&&wr.lt(i,e.deprecated)}}};const{getSupportInfo:br}=Nr,Br=/[^\x20-\x7F]/;function Pr(e){return(t,r,n)=>{const i=n&&n.backwards;if(!1===r)return!1;const{length:s}=t;let u=r;for(;u>=0&&u(r.match(u.regex)||[]).length?u.quote:s.quote}return a}function Xr(e,t,r){const n='"'===t?"'":'"',i=e.replace(/\\(.)|(["'])/gs,((e,i,s)=>i===n?i:s===t?"\\"+s:s||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(i)?i:"\\"+i)));return t+i+t}function zr(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let r=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");r.length>20&&(r=r.slice(0,19)+"\u2026");return t+(r?" "+r:"")}(e)}var qr={inferParserByLanguage:function(e,t){const{languages:r}=br({plugins:t.plugins}),n=r.find((({name:t})=>t.toLowerCase()===e))||r.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||r.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return n&&n.parsers[0]},getStringWidth:function(e){return e?Br.test(e)?s(e):e.length:0},getMaxContinuousCount:function(e,t){const r=e.match(new RegExp(`(${a(t)})+`,"g"));return null===r?0:r.reduce(((e,r)=>Math.max(e,r.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const r=e.match(new RegExp(`(${a(t)})+`,"g"));if(null===r)return 0;const n=new Map;let i=0;for(const e of r){const r=e.length/t.length;n.set(r,!0),r>i&&(i=r)}for(let e=1;ee[e.length-2],getLast:o,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:Kr,getNextNonSpaceNonCommentCharacterIndex:Ur,getNextNonSpaceNonCommentCharacter:function(e,t,r){return e.charAt(Ur(e,t,r))},skip:Pr,skipWhitespace:Tr,skipSpaces:Lr,skipToLineEnd:Rr,skipEverythingButNewLine:kr,skipInlineComment:$r,skipTrailingComment:_r,skipNewline:Mr,isNextLineEmptyAfterIndex:Gr,isNextLineEmpty:function(e,t,r){return Gr(e,r(t))},isPreviousLineEmpty:function(e,t,r){let n=r(t)-1;return n=Lr(e,n,{backwards:!0}),n=Mr(e,n,{backwards:!0}),n=Lr(e,n,{backwards:!0}),n!==Mr(e,n,{backwards:!0})},hasNewline:jr,hasNewlineInRange:function(e,t,r){for(let n=t;n0},createGroupIdMapper:function(e){const t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}};const{isNonEmptyArray:Qr}=qr;function Yr(e,t){const{ignoreDecorators:r}=t||{};if(!r){const t=e.declaration&&e.declaration.decorators||e.decorators;if(Qr(t))return Yr(t[0])}return e.range?e.range[0]:e.start}function Hr(e){return e.range?e.range[1]:e.end}function Jr(e,t){return Yr(e)===Yr(t)}var Zr,en={locStart:Yr,locEnd:Hr,hasSameLocStart:Jr,hasSameLoc:function(e,t){return Jr(e,t)&&function(e,t){return Hr(e)===Hr(t)}(e,t)}},tn=l((function(e,t){var r="\n",n=function(){function e(e){this.string=e;for(var t=[0],n=0;nthis.string.length)return null;for(var t=0,r=this.offsets;r[t+1]<=e;)t++;return{line:t,column:e-r[t]}},e.prototype.indexForLocation=function(e){var t=e.line,r=e.column;return t<0||t>=this.offsets.length||r<0||r>this.lengthOfLine(t)?null:this.offsets[t]+r},e.prototype.lengthOfLine=function(e){var t=this.offsets[e];return(e===this.offsets.length-1?this.string.length:this.offsets[e+1])-t},e}();t.__esModule=!0,t.default=n})),rn=l((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;t.Context=class{constructor(e){this.text=e,this.locator=new r(this.text)}};class r{constructor(e){this._lineAndColumn=new tn.default(e)}locationForIndex(e){const{line:t,column:r}=this._lineAndColumn.locationForIndex(e);return{line:t+1,column:r}}}})); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class nn{constructor(e,t,r,n){this.input=t,this.errLocation=r,this.ctxLocation=n,this.message=`Parser Error: ${e} ${r} [${t}] in ${n}`}}class sn{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new Bn(e+this.start,e+this.end)}}class un{constructor(e,t){this.span=e,this.sourceSpan=t}visit(e,t=null){return null}toString(){return"AST"}}class an extends un{constructor(e,t,r){super(e,t),this.nameSpan=r}}class on extends un{constructor(e,t,r,n,i){super(e,t),this.prefix=r,this.uninterpretedExpression=n,this.location=i}visit(e,t=null){return e.visitQuote(this,t)}toString(){return"Quote"}}class Dn extends un{visit(e,t=null){}}class cn extends un{visit(e,t=null){return e.visitImplicitReceiver(this,t)}}class ln extends cn{visit(e,t=null){var r;return null===(r=e.visitThisReceiver)||void 0===r?void 0:r.call(e,this,t)}}class pn extends un{constructor(e,t,r){super(e,t),this.expressions=r}visit(e,t=null){return e.visitChain(this,t)}}class hn extends un{constructor(e,t,r,n,i){super(e,t),this.condition=r,this.trueExp=n,this.falseExp=i}visit(e,t=null){return e.visitConditional(this,t)}}class dn extends an{constructor(e,t,r,n,i){super(e,t,r),this.receiver=n,this.name=i}visit(e,t=null){return e.visitPropertyRead(this,t)}}class fn extends an{constructor(e,t,r,n,i,s){super(e,t,r),this.receiver=n,this.name=i,this.value=s}visit(e,t=null){return e.visitPropertyWrite(this,t)}}class En extends an{constructor(e,t,r,n,i){super(e,t,r),this.receiver=n,this.name=i}visit(e,t=null){return e.visitSafePropertyRead(this,t)}}class Cn extends un{constructor(e,t,r,n){super(e,t),this.obj=r,this.key=n}visit(e,t=null){return e.visitKeyedRead(this,t)}}class vn extends un{constructor(e,t,r,n,i){super(e,t),this.obj=r,this.key=n,this.value=i}visit(e,t=null){return e.visitKeyedWrite(this,t)}}class Fn extends an{constructor(e,t,r,n,i,s){super(e,t,s),this.exp=r,this.name=n,this.args=i}visit(e,t=null){return e.visitPipe(this,t)}}class gn extends un{constructor(e,t,r){super(e,t),this.value=r}visit(e,t=null){return e.visitLiteralPrimitive(this,t)}}class mn extends un{constructor(e,t,r){super(e,t),this.expressions=r}visit(e,t=null){return e.visitLiteralArray(this,t)}}class yn extends un{constructor(e,t,r,n){super(e,t),this.keys=r,this.values=n}visit(e,t=null){return e.visitLiteralMap(this,t)}}class xn extends un{constructor(e,t,r,n){super(e,t),this.strings=r,this.expressions=n}visit(e,t=null){return e.visitInterpolation(this,t)}}class An extends un{constructor(e,t,r,n,i){super(e,t),this.operation=r,this.left=n,this.right=i}visit(e,t=null){return e.visitBinary(this,t)}}class Sn extends An{constructor(e,t,r,n,i,s,u){super(e,t,i,s,u),this.operator=r,this.expr=n}static createMinus(e,t,r){return new Sn(e,t,"-",r,"-",new gn(e,t,0),r)}static createPlus(e,t,r){return new Sn(e,t,"+",r,"-",r,new gn(e,t,0))}visit(e,t=null){return void 0!==e.visitUnary?e.visitUnary(this,t):e.visitBinary(this,t)}}class wn extends un{constructor(e,t,r){super(e,t),this.expression=r}visit(e,t=null){return e.visitPrefixNot(this,t)}}class In extends un{constructor(e,t,r){super(e,t),this.expression=r}visit(e,t=null){return e.visitNonNullAssert(this,t)}}class On extends an{constructor(e,t,r,n,i,s,u){super(e,t,r),this.receiver=n,this.name=i,this.args=s,this.argumentSpan=u}visit(e,t=null){return e.visitMethodCall(this,t)}}class Nn extends an{constructor(e,t,r,n,i,s,u){super(e,t,r),this.receiver=n,this.name=i,this.args=s,this.argumentSpan=u}visit(e,t=null){return e.visitSafeMethodCall(this,t)}}class bn extends un{constructor(e,t,r,n){super(e,t),this.target=r,this.args=n}visit(e,t=null){return e.visitFunctionCall(this,t)}}class Bn{constructor(e,t){this.start=e,this.end=t}}class Pn extends un{constructor(e,t,r,n,i){super(new sn(0,null===t?0:t.length),new Bn(n,null===t?n:n+t.length)),this.ast=e,this.source=t,this.location=r,this.errors=i}visit(e,t=null){return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return`${this.source} in ${this.location}`}}class Tn{constructor(e,t,r){this.sourceSpan=e,this.key=t,this.value=r}}class Ln{constructor(e,t,r){this.sourceSpan=e,this.key=t,this.value=r}}class Rn{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitFunctionCall(e,t){e.target&&this.visit(e.target,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.obj,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.obj,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeMethodCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitQuote(e,t){}visitAll(e,t){for(const r of e)this.visit(r,t)}}!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.LITERAL_ATTR=1]="LITERAL_ATTR",e[e.ANIMATION=2]="ANIMATION"}(Zr||(Zr={}));var kn=Object.freeze({__proto__:null,ParserError:nn,ParseSpan:sn,AST:un,ASTWithName:an,Quote:on,EmptyExpr:Dn,ImplicitReceiver:cn,ThisReceiver:ln,Chain:pn,Conditional:hn,PropertyRead:dn,PropertyWrite:fn,SafePropertyRead:En,KeyedRead:Cn,KeyedWrite:vn,BindingPipe:Fn,LiteralPrimitive:gn,LiteralArray:mn,LiteralMap:yn,Interpolation:xn,Binary:An,Unary:Sn,PrefixNot:wn,NonNullAssert:In,MethodCall:On,SafeMethodCall:Nn,FunctionCall:bn,AbsoluteSourceSpan:Bn,ASTWithSource:Pn,VariableBinding:Tn,ExpressionBinding:Ln,RecursiveAstVisitor:Rn,AstTransformer:class{visitImplicitReceiver(e,t){return e}visitThisReceiver(e,t){return e}visitInterpolation(e,t){return new xn(e.span,e.sourceSpan,e.strings,this.visitAll(e.expressions))}visitLiteralPrimitive(e,t){return new gn(e.span,e.sourceSpan,e.value)}visitPropertyRead(e,t){return new dn(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitPropertyWrite(e,t){return new fn(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,e.value.visit(this))}visitSafePropertyRead(e,t){return new En(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name)}visitMethodCall(e,t){return new On(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitSafeMethodCall(e,t){return new Nn(e.span,e.sourceSpan,e.nameSpan,e.receiver.visit(this),e.name,this.visitAll(e.args),e.argumentSpan)}visitFunctionCall(e,t){return new bn(e.span,e.sourceSpan,e.target.visit(this),this.visitAll(e.args))}visitLiteralArray(e,t){return new mn(e.span,e.sourceSpan,this.visitAll(e.expressions))}visitLiteralMap(e,t){return new yn(e.span,e.sourceSpan,e.keys,this.visitAll(e.values))}visitUnary(e,t){switch(e.operator){case"+":return Sn.createPlus(e.span,e.sourceSpan,e.expr.visit(this));case"-":return Sn.createMinus(e.span,e.sourceSpan,e.expr.visit(this));default:throw new Error(`Unknown unary operator ${e.operator}`)}}visitBinary(e,t){return new An(e.span,e.sourceSpan,e.operation,e.left.visit(this),e.right.visit(this))}visitPrefixNot(e,t){return new wn(e.span,e.sourceSpan,e.expression.visit(this))}visitNonNullAssert(e,t){return new In(e.span,e.sourceSpan,e.expression.visit(this))}visitConditional(e,t){return new hn(e.span,e.sourceSpan,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))}visitPipe(e,t){return new Fn(e.span,e.sourceSpan,e.exp.visit(this),e.name,this.visitAll(e.args),e.nameSpan)}visitKeyedRead(e,t){return new Cn(e.span,e.sourceSpan,e.obj.visit(this),e.key.visit(this))}visitKeyedWrite(e,t){return new vn(e.span,e.sourceSpan,e.obj.visit(this),e.key.visit(this),e.value.visit(this))}visitAll(e){const t=[];for(let r=0;r=this.length?0:this.input.charCodeAt(this.index)}scanToken(){const e=this.input,t=this.length;let r=this.peek,n=this.index;for(;r<=32;){if(++n>=t){r=0;break}r=e.charCodeAt(n)}if(this.peek=r,this.index=n,n>=t)return null;if(Vn(r))return this.scanIdentifier();if($n(r))return this.scanNumber(n);const i=n;switch(r){case 46:return this.advance(),$n(this.peek)?this.scanNumber(i):Gn(i,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(i,r);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(i,String.fromCharCode(r));case 63:return this.scanQuestion(i);case 60:case 62:return this.scanComplexOperator(i,String.fromCharCode(r),61,"=");case 33:case 61:return this.scanComplexOperator(i,String.fromCharCode(r),61,"=",61,"=");case 38:return this.scanComplexOperator(i,"&",38,"&");case 124:return this.scanComplexOperator(i,"|",124,"|");case 160:for(;(s=this.peek)>=9&&s<=32||160==s;)this.advance();return this.scanToken()}var s;return this.advance(),this.error(`Unexpected character [${String.fromCharCode(r)}]`,0)}scanCharacter(e,t){return this.advance(),Gn(e,this.index,t)}scanOperator(e,t){return this.advance(),Kn(e,this.index,t)}scanComplexOperator(e,t,r,n,i,s){this.advance();let u=t;return this.peek==r&&(this.advance(),u+=n),null!=i&&this.peek==i&&(this.advance(),u+=s),Kn(e,this.index,u)}scanIdentifier(){const e=this.index;for(this.advance();zn(this.peek);)this.advance();const t=this.input.substring(e,this.index);return Mn.indexOf(t)>-1?(r=e,n=this.index,i=t,new jn(r,n,_n.Keyword,0,i)):function(e,t,r){return new jn(e,t,_n.Identifier,0,r)}(e,this.index,t);var r,n,i}scanPrivateIdentifier(){const e=this.index;if(this.advance(),!Vn(this.peek))return this.error("Invalid character [#]",-1);for(;zn(this.peek);)this.advance();const t=this.input.substring(e,this.index);return r=e,n=this.index,i=t,new jn(r,n,_n.PrivateIdentifier,0,i);var r,n,i}scanNumber(e){let t=this.index===e;for(this.advance();;){if($n(this.peek));else if(46==this.peek)t=!1;else{if(101!=(r=this.peek)&&69!=r)break;if(this.advance(),qn(this.peek)&&this.advance(),!$n(this.peek))return this.error("Invalid exponent",-1);t=!1}this.advance()}var r;const n=this.input.substring(e,this.index),i=t?function(e){const t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t}(n):parseFloat(n);return s=e,u=this.index,a=i,new jn(s,u,_n.Number,a,"");var s,u,a}scanString(){const e=this.index,t=this.peek;this.advance();let r="",n=this.index;const i=this.input;for(;this.peek!=t;)if(92==this.peek){let e;if(r+=i.substring(n,this.index),this.advance(),this.peek=this.peek,117==this.peek){const t=i.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(t))return this.error(`Invalid unicode escape [\\u${t}]`,0);e=parseInt(t,16);for(let e=0;e<5;e++)this.advance()}else e=Yn(this.peek),this.advance();r+=String.fromCharCode(e),n=this.index}else{if(0==this.peek)return this.error("Unterminated quote",0);this.advance()}const s=i.substring(n,this.index);return this.advance(),u=e,a=this.index,o=r+s,new jn(u,a,_n.String,0,o);var u,a,o}scanQuestion(e){this.advance();let t="?";return 63!==this.peek&&46!==this.peek||(t+=46===this.peek?".":"?",this.advance()),Kn(e,this.index,t)}error(e,t){const r=this.index+t;return function(e,t,r){return new jn(e,t,_n.Error,0,r)}(r,this.index,`Lexer Error: ${e} at column ${r} in expression [${this.input}]`)}}function Vn(e){return 97<=e&&e<=122||65<=e&&e<=90||95==e||36==e}function Xn(e){if(0==e.length)return!1;const t=new Wn(e);if(!Vn(t.peek))return!1;for(t.advance();0!==t.peek;){if(!zn(t.peek))return!1;t.advance()}return!0}function zn(e){return function(e){return e>=97&&e<=122||e>=65&&e<=90}(e)||$n(e)||95==e||36==e}function qn(e){return 45==e||43==e}function Qn(e){return 39===e||34===e||96===e}function Yn(e){switch(e){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return e}}var Hn=Object.freeze({__proto__:null,get TokenType(){return _n},Lexer:class{tokenize(e){const t=new Wn(e),r=[];let n=t.scanToken();for(;null!=n;)r.push(n),n=t.scanToken();return r}},Token:jn,EOF:Un,isIdentifier:Xn,isQuote:Qn}); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */const Jn=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//]; +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class Zn{constructor(e,t){this.start=e,this.end=t}static fromArray(e){return e?(function(e,t){if(!(null==t||Array.isArray(t)&&2==t.length))throw new Error(`Expected '${e}' to be an array, [start, end].`);if(null!=t){const e=t[0],r=t[1];Jn.forEach((t=>{if(t.test(e)||t.test(r))throw new Error(`['${e}', '${r}'] contains unusable interpolation symbol.`)}))}}("interpolation",e),new Zn(e[0],e[1])):ei}}const ei=new Zn("{{","}}"); +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */class ti{constructor(e,t,r){this.strings=e,this.expressions=t,this.offsets=r}}class ri{constructor(e,t,r){this.templateBindings=e,this.warnings=t,this.errors=r}}class ni{constructor(e){this._lexer=e,this.errors=[],this.simpleExpressionChecker=ui}parseAction(e,t,r,n=ei){this._checkNoInterpolation(e,t,n);const i=this._stripComments(e),s=this._lexer.tokenize(this._stripComments(e)),u=new si(e,t,r,s,i.length,!0,this.errors,e.length-i.length).parseChain();return new Pn(u,e,t,r,this.errors)}parseBinding(e,t,r,n=ei){const i=this._parseBindingAst(e,t,r,n);return new Pn(i,e,t,r,this.errors)}checkSimpleExpression(e){const t=new this.simpleExpressionChecker;return e.visit(t),t.errors}parseSimpleBinding(e,t,r,n=ei){const i=this._parseBindingAst(e,t,r,n),s=this.checkSimpleExpression(i);return s.length>0&&this._reportError(`Host binding expression cannot contain ${s.join(" ")}`,e,t),new Pn(i,e,t,r,this.errors)}_reportError(e,t,r,n){this.errors.push(new nn(e,t,r,n))}_parseBindingAst(e,t,r,n){const i=this._parseQuote(e,t,r);if(null!=i)return i;this._checkNoInterpolation(e,t,n);const s=this._stripComments(e),u=this._lexer.tokenize(s);return new si(e,t,r,u,s.length,!1,this.errors,e.length-s.length).parseChain()}_parseQuote(e,t,r){if(null==e)return null;const n=e.indexOf(":");if(-1==n)return null;const i=e.substring(0,n).trim();if(!Xn(i))return null;const s=e.substring(n+1),u=new sn(0,e.length);return new on(u,u.toAbsolute(r),i,s,t)}parseTemplateBindings(e,t,r,n,i){const s=this._lexer.tokenize(t);return new si(t,r,i,s,t.length,!1,this.errors,0).parseTemplateBindings({source:e,span:new Bn(n,n+e.length)})}parseInterpolation(e,t,r,n=ei){const{strings:i,expressions:s,offsets:u}=this.splitInterpolation(e,t,n);if(0===s.length)return null;const a=[];for(let n=0;ne.text)),a,e,t,r)}parseInterpolationExpression(e,t,r){const n=this._stripComments(e),i=this._lexer.tokenize(n),s=new si(e,t,r,i,n.length,!1,this.errors,0).parseChain();return this.createInterpolationAst(["",""],[s],e,t,r)}createInterpolationAst(e,t,r,n,i){const s=new sn(0,r.length),u=new xn(s,s.toAbsolute(i),e,t);return new Pn(u,r,n,i,this.errors)}splitInterpolation(e,t,r=ei){const n=[],i=[],s=[];let u=0,a=!1,o=!1,{start:D,end:c}=r;for(;u-1)break;i>-1&&s>-1&&this._reportError(`Got interpolation (${r}${n}) where expression was expected`,e,`at column ${i} in`,t)}_getInterpolationEndIndex(e,t,r){for(const n of this._forEachUnquotedChar(e,r)){if(e.startsWith(t,n))return n;if(e.startsWith("//",n))return e.indexOf(t,n)}return-1}*_forEachUnquotedChar(e,t){let r=null,n=0;for(let i=t;i=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){if(this.index>0){return this.peek(-1).end+this.offset}return 0===this.tokens.length?this.inputLength+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let r=this.currentEndIndex;if(void 0!==t&&t>this.currentEndIndex&&(r=t),e>r){const t=r;r=e,e=t}return new sn(e,r)}sourceSpan(e,t){const r=`${e}@${this.inputIndex}:${t}`;return this.sourceSpanCache.has(r)||this.sourceSpanCache.set(r,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(r)}advance(){this.index++}withContext(e,t){this.context|=e;const r=t();return this.context^=e,r}consumeOptionalCharacter(e){return!!this.next.isCharacter(e)&&(this.advance(),!0)}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(`Missing expected ${String.fromCharCode(e)}`)}consumeOptionalOperator(e){return!!this.next.isOperator(e)&&(this.advance(),!0)}expectOperator(e){this.consumeOptionalOperator(e)||this.error(`Missing expected operator ${e}`)}prettyPrintToken(e){return e===Un?"end of input":`token ${e}`}expectIdentifierOrKeyword(){const e=this.next;return e.isIdentifier()||e.isKeyword()?(this.advance(),e.toString()):(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`),null)}expectIdentifierOrKeywordOrString(){const e=this.next;return e.isIdentifier()||e.isKeyword()||e.isString()?(this.advance(),e.toString()):(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`),"")}parseChain(){const e=[],t=this.inputIndex;for(;this.index":case"<=":case">=":this.advance();const n=this.parseAdditive();t=new An(this.span(e),this.sourceSpan(e),r,t,n);continue}break}return t}parseAdditive(){const e=this.inputIndex;let t=this.parseMultiplicative();for(;this.next.type==_n.Operator;){const r=this.next.strValue;switch(r){case"+":case"-":this.advance();let n=this.parseMultiplicative();t=new An(this.span(e),this.sourceSpan(e),r,t,n);continue}break}return t}parseMultiplicative(){const e=this.inputIndex;let t=this.parsePrefix();for(;this.next.type==_n.Operator;){const r=this.next.strValue;switch(r){case"*":case"%":case"/":this.advance();let n=this.parsePrefix();t=new An(this.span(e),this.sourceSpan(e),r,t,n);continue}break}return t}parsePrefix(){if(this.next.type==_n.Operator){const e=this.inputIndex;let t;switch(this.next.strValue){case"+":return this.advance(),t=this.parsePrefix(),Sn.createPlus(this.span(e),this.sourceSpan(e),t);case"-":return this.advance(),t=this.parsePrefix(),Sn.createMinus(this.span(e),this.sourceSpan(e),t);case"!":return this.advance(),t=this.parsePrefix(),new wn(this.span(e),this.sourceSpan(e),t)}}return this.parseCallChain()}parseCallChain(){const e=this.inputIndex;let t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))t=this.parseAccessMemberOrMethodCall(t,e,!1);else if(this.consumeOptionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,e,!0);else if(this.consumeOptionalCharacter(91))this.withContext(ii.Writable,(()=>{this.rbracketsExpected++;const r=this.parsePipe();if(r instanceof Dn&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),this.consumeOptionalOperator("=")){const n=this.parseConditional();t=new vn(this.span(e),this.sourceSpan(e),t,r,n)}else t=new Cn(this.span(e),this.sourceSpan(e),t,r)}));else if(this.consumeOptionalCharacter(40)){this.rparensExpected++;const r=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(41),t=new bn(this.span(e),this.sourceSpan(e),t,r)}else{if(!this.consumeOptionalOperator("!"))return t;t=new In(this.span(e),this.sourceSpan(e),t)}}parsePrimary(){const e=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;const e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),e}if(this.next.isKeywordNull())return this.advance(),new gn(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new gn(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new gn(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new gn(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new ln(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;const t=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new mn(this.span(e),this.sourceSpan(e),t)}if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new cn(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){const t=this.next.toNumber();return this.advance(),new gn(this.span(e),this.sourceSpan(e),t)}if(this.next.isString()){const t=this.next.toString();return this.advance(),new gn(this.span(e),this.sourceSpan(e),t)}return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new Dn(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new Dn(this.span(e),this.sourceSpan(e))):(this.error(`Unexpected token ${this.next}`),new Dn(this.span(e),this.sourceSpan(e)))}parseExpressionList(e){const t=[];do{if(this.next.isCharacter(e))break;t.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return t}parseLiteralMap(){const e=[],t=[],r=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{const r=this.next.isString(),n=this.expectIdentifierOrKeywordOrString();e.push({key:n,quoted:r}),this.expectCharacter(58),t.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));this.rbracesExpected--,this.expectCharacter(125)}return new yn(this.span(r),this.sourceSpan(r),e,t)}parseAccessMemberOrMethodCall(e,t,r=!1){const n=this.inputIndex,i=this.withContext(ii.Writable,(()=>{var t;const r=null!==(t=this.expectIdentifierOrKeyword())&&void 0!==t?t:"";return 0===r.length&&this.error("Expected identifier for property access",e.span.end),r})),s=this.sourceSpan(n);if(this.consumeOptionalCharacter(40)){const n=this.inputIndex;this.rparensExpected++;const u=this.parseCallArguments(),a=this.span(n,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;const o=this.span(t),D=this.sourceSpan(t);return r?new Nn(o,D,s,e,i,u,a):new On(o,D,s,e,i,u,a)}if(r)return this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new Dn(this.span(t),this.sourceSpan(t))):new En(this.span(t),this.sourceSpan(t),s,e,i);if(this.consumeOptionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new Dn(this.span(t),this.sourceSpan(t));const r=this.parseConditional();return new fn(this.span(t),this.sourceSpan(t),s,e,i,r)}return new dn(this.span(t),this.sourceSpan(t),s,e,i)}parseCallArguments(){if(this.next.isCharacter(41))return[];const e=[];do{e.push(this.parsePipe())}while(this.consumeOptionalCharacter(44));return e}expectTemplateBindingKey(){let e="",t=!1;const r=this.currentAbsoluteOffset;do{e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator("-"),t&&(e+="-")}while(t);return{source:e,span:new Bn(r,r+e.length)}}parseTemplateBindings(e){const t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.indexe.visit(this,t)))}visitChain(e,t){}visitQuote(e,t){}}class ai extends Rn{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}}var oi=Object.freeze({__proto__:null,SplitInterpolation:ti,TemplateBindingParseResult:ri,Parser:ni,IvyParser:class extends ni{constructor(){super(...arguments),this.simpleExpressionChecker=ai}},_ParseAST:si}),Di=l((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.getLast=t.toLowerCamelCase=t.findBackChar=t.findFrontChar=t.fitSpans=t.getNgType=t.parseNgInterpolation=t.parseNgTemplateBindings=t.parseNgAction=t.parseNgSimpleBinding=t.parseNgBinding=t.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX=void 0;const r="angular-estree-parser";t.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX="NgEstreeParser";const n=[r,0];function i(){return new oi.Parser(new Hn.Lexer)}function s(e,t){const r=i(),{astInput:n,comments:s}=o(e,r),{ast:u,errors:D}=t(n,r);return a(D),{ast:u,comments:s}}function u(e,t){if(e&&"object"==typeof e){if(Array.isArray(e))return e.forEach((e=>u(e,t)));for(const r of Object.keys(e)){const n=e[r];"span"===r?t(n):u(n,t)}}}function a(e){if(0!==e.length){const[{message:t}]=e;throw new SyntaxError(t.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}}function o(e,t){const r=t._commentStart(e);return null===r?{astInput:e,comments:[]}:{astInput:e.slice(0,r),comments:[{type:"Comment",value:e.slice(r+"//".length),span:{start:r,end:e.length}}]}}function D({start:e,end:t},r){let n=e,i=t;for(;i!==n&&/\s/.test(r[i-1]);)i--;for(;n!==i&&/\s/.test(r[n]);)n++;return{start:n,end:i}}function c({start:e,end:t},r){let n=e,i=t;for(;i!==r.length&&/\s/.test(r[i]);)i++;for(;0!==n&&/\s/.test(r[n-1]);)n--;return{start:n,end:i}}function l(e,t){return"("===t[e.start-1]&&")"===t[e.end]?{start:e.start-1,end:e.end+1}:e}t.parseNgBinding=function(e){return s(e,((e,t)=>t.parseBinding(e,...n)))},t.parseNgSimpleBinding=function(e){return s(e,((e,t)=>t.parseSimpleBinding(e,...n)))},t.parseNgAction=function(e){return s(e,((e,t)=>t.parseAction(e,...n)))},t.parseNgTemplateBindings=function(e){const n=i(),{templateBindings:s,errors:u}=n.parseTemplateBindings(t.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX,e,r,0,0);return a(u),s},t.parseNgInterpolation=function(e){const t=i(),{astInput:r,comments:s}=o(e,t),D="{{",{ast:c,errors:l}=t.parseInterpolation(D+r+"}}",...n);a(l);const p=c.expressions[0],h=new Set;return u(p,(e=>{h.has(e)||(e.start-=D.length,e.end-=D.length,h.add(e))})),{ast:p,comments:s}},t.getNgType=function(e){return kn.Unary&&e instanceof kn.Unary?"Unary":e instanceof kn.Binary?"Binary":e instanceof kn.BindingPipe?"BindingPipe":e instanceof kn.Chain?"Chain":e instanceof kn.Conditional?"Conditional":e instanceof kn.EmptyExpr?"EmptyExpr":e instanceof kn.FunctionCall?"FunctionCall":e instanceof kn.ImplicitReceiver?"ImplicitReceiver":e instanceof kn.KeyedRead?"KeyedRead":e instanceof kn.KeyedWrite?"KeyedWrite":e instanceof kn.LiteralArray?"LiteralArray":e instanceof kn.LiteralMap?"LiteralMap":e instanceof kn.LiteralPrimitive?"LiteralPrimitive":e instanceof kn.MethodCall?"MethodCall":e instanceof kn.NonNullAssert?"NonNullAssert":e instanceof kn.PrefixNot?"PrefixNot":e instanceof kn.PropertyRead?"PropertyRead":e instanceof kn.PropertyWrite?"PropertyWrite":e instanceof kn.Quote?"Quote":e instanceof kn.SafeMethodCall?"SafeMethodCall":e instanceof kn.SafePropertyRead?"SafePropertyRead":e.type},t.fitSpans=function(e,t,r){let n=0;const i={start:e.start,end:e.end};for(;;){const e=c(i,t),r=l(e,t);if(e.start===r.start&&e.end===r.end)break;i.start=r.start,i.end=r.end,n++}return{hasParens:0!==(r?n-1:n),outerSpan:D(r?{start:i.start+1,end:i.end-1}:i,t),innerSpan:D(e,t)}},t.findFrontChar=function(e,t,r){let n=t;for(;!e.test(r[n]);)if(--n<0)throw new Error(`Cannot find front char ${e} from index ${t} in ${JSON.stringify(r)}`);return n},t.findBackChar=function(e,t,r){let n=t;for(;!e.test(r[n]);)if(++n>=r.length)throw new Error(`Cannot find back char ${e} from index ${t} in ${JSON.stringify(r)}`);return n},t.toLowerCamelCase=function(e){return e.slice(0,1).toLowerCase()+e.slice(1)},t.getLast=function(e){return 0===e.length?void 0:e[e.length-1]}})),ci=l((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.transformSpan=t.transform=void 0;function r(e,t,r=!1,n=!1){if(!r){const{start:r,end:n}=e;return{start:r,end:n,loc:{start:t.locator.locationForIndex(r),end:t.locator.locationForIndex(n)}}}const{outerSpan:i,innerSpan:s,hasParens:u}=Di.fitSpans(e,t.text,n);return Object.assign({start:s.start,end:s.end,loc:{start:t.locator.locationForIndex(s.start),end:t.locator.locationForIndex(s.end)}},u&&{extra:{parenthesized:!0,parenStart:i.start,parenEnd:i.end}})}t.transform=(e,n,i=!1)=>{const s=Di.getNgType(e);switch(s){case"Unary":{const{operator:t,expr:r}=e;return o("UnaryExpression",{prefix:!0,argument:u(r),operator:t},e.span,{hasParentParens:i})}case"Binary":{const{left:t,operation:r,right:n}=e,s=n.span.start===n.span.end,a=t.span.start===t.span.end;if(s||a){const r=t.span.start===t.span.end?u(n):u(t);return o("UnaryExpression",{prefix:!0,argument:r,operator:s?"+":"-"},{start:e.span.start,end:E(r)},{hasParentParens:i})}const D=u(t),c=u(n);return o("&&"===r||"||"===r?"LogicalExpression":"BinaryExpression",{left:D,right:c,operator:r},{start:f(D),end:E(c)},{hasParentParens:i})}case"BindingPipe":{const{exp:t,name:r,args:n}=e,s=u(t),a=l(/\S/,l(/\|/,E(s))+1),D=o("Identifier",{name:r},{start:a,end:a+r.length}),c=n.map(u);return o("NGPipeExpression",{left:s,right:D,arguments:c},{start:f(s),end:E(0===c.length?D:Di.getLast(c))},{hasParentParens:i})}case"Chain":{const{expressions:t}=e;return o("NGChainedExpression",{expressions:t.map(u)},e.span,{hasParentParens:i})}case"Comment":{const{value:t}=e;return o("CommentLine",{value:t},e.span,{processSpan:!1})}case"Conditional":{const{condition:t,trueExp:r,falseExp:n}=e,s=u(t),a=u(r),D=u(n);return o("ConditionalExpression",{test:s,consequent:a,alternate:D},{start:f(s),end:E(D)},{hasParentParens:i})}case"EmptyExpr":return o("NGEmptyExpression",{},e.span,{hasParentParens:i});case"FunctionCall":{const{target:t,args:r}=e,n=1===r.length?[a(r[0])]:r.map(u),s=u(t);return o("CallExpression",{callee:s,arguments:n},{start:f(s),end:e.span.end},{hasParentParens:i})}case"ImplicitReceiver":return o("ThisExpression",{},e.span,{hasParentParens:i});case"KeyedRead":{const{obj:t,key:r}=e;return D(t,u(r),{computed:!0,optional:!1},{end:e.span.end,hasParentParens:i})}case"LiteralArray":{const{expressions:t}=e;return o("ArrayExpression",{elements:t.map(u)},e.span,{hasParentParens:i})}case"LiteralMap":{const{keys:t,values:r}=e,n=r.map((e=>u(e))),s=t.map((({key:t,quoted:r},i)=>{const s=n[i],u={start:l(/\S/,0===i?e.span.start+1:l(/,/,E(n[i-1]))+1),end:c(/\S/,c(/:/,f(s)-1)-1)+1},a=r?o("StringLiteral",{value:t},u):o("Identifier",{name:t},u);return o("ObjectProperty",{key:a,value:s,method:!1,shorthand:!1,computed:!1},{start:f(a),end:E(s)})}));return o("ObjectExpression",{properties:s},e.span,{hasParentParens:i})}case"LiteralPrimitive":{const{value:t}=e;switch(typeof t){case"boolean":return o("BooleanLiteral",{value:t},e.span,{hasParentParens:i});case"number":return o("NumericLiteral",{value:t},e.span,{hasParentParens:i});case"object":return o("NullLiteral",{},e.span,{hasParentParens:i});case"string":return o("StringLiteral",{value:t},e.span,{hasParentParens:i});case"undefined":return o("Identifier",{name:"undefined"},e.span,{hasParentParens:i});default:throw new Error("Unexpected LiteralPrimitive value type "+typeof t)}}case"MethodCall":case"SafeMethodCall":{const t="SafeMethodCall"===s,{receiver:r,name:n,args:l}=e,p=1===l.length?[a(l[0])]:l.map(u),d=c(/\S/,c(/\(/,(0===p.length?c(/\)/,e.span.end-1):f(p[0]))-1)-1)+1,E=D(r,o("Identifier",{name:n},{start:d-n.length,end:d}),{computed:!1,optional:t}),C=h(E);return o(t||C?"OptionalCallExpression":"CallExpression",{callee:E,arguments:p},{start:f(E),end:e.span.end},{hasParentParens:i})}case"NonNullAssert":{const{expression:t}=e,r=u(t);return o("TSNonNullExpression",{expression:r},{start:f(r),end:e.span.end},{hasParentParens:i})}case"PrefixNot":{const{expression:t}=e,r=u(t);return o("UnaryExpression",{prefix:!0,operator:"!",argument:r},{start:e.span.start,end:E(r)},{hasParentParens:i})}case"PropertyRead":case"SafePropertyRead":{const t="SafePropertyRead"===s,{receiver:r,name:n}=e,u=c(/\S/,e.span.end-1)+1;return D(r,o("Identifier",{name:n},{start:u-n.length,end:u},p(r)?{hasParentParens:i}:{}),{computed:!1,optional:t},{hasParentParens:i})}case"KeyedWrite":{const{obj:t,key:r,value:n}=e,s=u(r),a=u(n),c=D(t,s,{computed:!0,optional:!1},{end:l(/\]/,E(s))+1});return o("AssignmentExpression",{left:c,operator:"=",right:a},{start:f(c),end:E(a)},{hasParentParens:i})}case"PropertyWrite":{const{receiver:t,name:r,value:n}=e,s=u(n),a=c(/\S/,c(/=/,f(s)-1)-1)+1,l=D(t,o("Identifier",{name:r},{start:a-r.length,end:a}),{computed:!1,optional:!1});return o("AssignmentExpression",{left:l,operator:"=",right:s},{start:f(l),end:E(s)},{hasParentParens:i})}case"Quote":{const{prefix:t,uninterpretedExpression:r}=e;return o("NGQuotedExpression",{prefix:t,value:r},e.span,{hasParentParens:i})}default:throw new Error(`Unexpected node ${s}`)}function u(e){return t.transform(e,n)}function a(e){return t.transform(e,n,!0)}function o(e,t,i,{processSpan:s=!0,hasParentParens:u=!1}={}){const a=Object.assign(Object.assign({type:e},r(i,n,s,u)),t);switch(e){case"Identifier":{const e=a;e.loc.identifierName=e.name;break}case"NumericLiteral":{const e=a;e.extra=Object.assign(Object.assign({},e.extra),{raw:n.text.slice(e.start,e.end),rawValue:e.value});break}case"StringLiteral":{const e=a;e.extra=Object.assign(Object.assign({},e.extra),{raw:n.text.slice(e.start,e.end),rawValue:e.value});break}}return a}function D(e,t,r,{end:n=E(t),hasParentParens:i=!1}={}){if(p(e))return t;const s=u(e),a=h(s);return o(r.optional||a?"OptionalMemberExpression":"MemberExpression",Object.assign({object:s,property:t,computed:r.computed},r.optional?{optional:!0}:a?{optional:!1}:null),{start:f(s),end:n},{hasParentParens:i})}function c(e,t){return Di.findFrontChar(e,t,n.text)}function l(e,t){return Di.findBackChar(e,t,n.text)}function p(e){return e.span.start>=e.span.end||/^\s+$/.test(n.text.slice(e.span.start,e.span.end))}function h(e){return("OptionalCallExpression"===e.type||"OptionalMemberExpression"===e.type)&&!d(e)}function d(e){return e.extra&&e.extra.parenthesized}function f(e){return d(e)?e.extra.parenStart:e.start}function E(e){return d(e)?e.extra.parenEnd:e.end}},t.transformSpan=r})),li=l((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.transformTemplateBindings=void 0,t.transformTemplateBindings=function(e,t){e.forEach((function(e){h(e.key.span),p(e)&&e.value&&h(e.value.span)}));const[r]=e,{key:n}=r,i=0===t.text.slice(r.sourceSpan.start,r.sourceSpan.end).trim().length?e.slice(1):e,s=[];let u=null;for(let e=0;eObject.assign(Object.assign({},e),ci.transformSpan({start:e.start,end:r},t)),i=t=>Object.assign(Object.assign({},n(t,e.end)),{alias:e}),u=s.pop();if("NGMicrosyntaxExpression"===u.type)s.push(i(u));else{if("NGMicrosyntaxKeyedExpression"!==u.type)throw new Error(`Unexpected type ${u.type}`);{const e=i(u.expression);s.push(n(Object.assign(Object.assign({},u),{expression:e}),e.end))}}}else s.push(a(r,e));u=r}return D("NGMicrosyntax",{body:s},0===s.length?e[0].sourceSpan:{start:s[0].start,end:s[s.length-1].end});function a(e,r){if(l(e)){const{key:t,value:n}=e;return n?0===r?D("NGMicrosyntaxExpression",{expression:o(n.ast),alias:null},n.sourceSpan):D("NGMicrosyntaxKeyedExpression",{key:D("NGMicrosyntaxKey",{name:c(t.source)},t.span),expression:D("NGMicrosyntaxExpression",{expression:o(n.ast),alias:null},n.sourceSpan)},{start:t.span.start,end:n.sourceSpan.end}):D("NGMicrosyntaxKey",{name:c(t.source)},t.span)}{const{key:r,sourceSpan:n}=e;if(/^let\s$/.test(t.text.slice(n.start,n.start+4))){const{value:t}=e;return D("NGMicrosyntaxLet",{key:D("NGMicrosyntaxKey",{name:r.source},r.span),value:t?D("NGMicrosyntaxKey",{name:t.source},t.span):null},{start:n.start,end:t?t.span.end:r.span.end})}{const n=function(e){if(!e.value||e.value.source!==Di.NG_PARSE_TEMPLATE_BINDINGS_FAKE_PREFIX)return e.value;const r=Di.findBackChar(/\S/,e.sourceSpan.start,t.text);return{source:"$implicit",span:{start:r,end:r}}}(e);return D("NGMicrosyntaxAs",{key:D("NGMicrosyntaxKey",{name:n.source},n.span),alias:D("NGMicrosyntaxKey",{name:r.source},r.span)},{start:n.span.start,end:r.span.end})}}}function o(e){return ci.transform(e,t)}function D(e,r,n,i=!0){return Object.assign(Object.assign({type:e},ci.transformSpan(n,t,i)),r)}function c(e){return Di.toLowerCamelCase(e.slice(n.source.length))}function l(e){return e instanceof kn.ExpressionBinding}function p(e){return e instanceof kn.VariableBinding}function h(e){if('"'!==t.text[e.start]&&"'"!==t.text[e.start])return;const r=t.text[e.start];let n=!1;for(let i=e.start+1;ici.transform(e,i),u=s(r);return u.comments=n.map(s),u}Object.defineProperty(t,"__esModule",{value:!0}),t.parseTemplateBindings=t.parseAction=t.parseInterpolation=t.parseSimpleBinding=t.parseBinding=void 0,t.parseBinding=function(e){return r(e,Di.parseNgBinding)},t.parseSimpleBinding=function(e){return r(e,Di.parseNgSimpleBinding)},t.parseInterpolation=function(e){return r(e,Di.parseNgInterpolation)},t.parseAction=function(e){return r(e,Di.parseNgAction)},t.parseTemplateBindings=function(e){return li.transformTemplateBindings(Di.parseNgTemplateBindings(e),new rn.Context(e))}}));const{locStart:hi,locEnd:di}=en;function fi(e){return{astFormat:"estree",parse:(t,r,n)=>{const i=e(t,pi);return{type:"NGRoot",node:"__ng_action"===n.parser&&"NGChainedExpression"!==i.type?Object.assign(Object.assign({},i),{},{type:"NGChainedExpression",expressions:[i]}):i}},locStart:hi,locEnd:di}}var Ei={parsers:{__ng_action:fi(((e,t)=>t.parseAction(e))),__ng_binding:fi(((e,t)=>t.parseBinding(e))),__ng_interpolation:fi(((e,t)=>t.parseInterpolation(e))),__ng_directive:fi(((e,t)=>t.parseTemplateBindings(e)))}};export default Ei; diff --git a/node_modules/prettier/esm/parser-babel.mjs b/node_modules/prettier/esm/parser-babel.mjs new file mode 100644 index 0000000000..d74d040d83 --- /dev/null +++ b/node_modules/prettier/esm/parser-babel.mjs @@ -0,0 +1,22 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function s(e){var t={exports:{}};return e(t,t.exports),t.exports}var r=function(e){return e&&e.Math==Math&&e},i=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof e&&e)||function(){return this}()||Function("return this")(),a=function(e){try{return!!e()}catch(e){return!0}},n=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,h={f:u&&!o.call({1:2},1)?function(e){var t=u(this,e);return!!t&&t.enumerable}:o},c=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},p={}.toString,l=function(e){return p.call(e).slice(8,-1)},d="".split,D=a((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==l(e)?d.call(e,""):Object(e)}:Object,m=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},f=function(e){return D(m(e))},y=function(e){return"object"==typeof e?null!==e:"function"==typeof e},A=function(e,t){if(!y(e))return e;var s,r;if(t&&"function"==typeof(s=e.toString)&&!y(r=s.call(e)))return r;if("function"==typeof(s=e.valueOf)&&!y(r=s.call(e)))return r;if(!t&&"function"==typeof(s=e.toString)&&!y(r=s.call(e)))return r;throw TypeError("Can't convert object to primitive value")},E=function(e){return Object(m(e))},C={}.hasOwnProperty,x=Object.hasOwn||function(e,t){return C.call(E(e),t)},F=i.document,g=y(F)&&y(F.createElement),b=!n&&!a((function(){return 7!=Object.defineProperty((e="div",g?F.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),P=Object.getOwnPropertyDescriptor,T={f:n?P:function(e,t){if(e=f(e),t=A(t,!0),b)try{return P(e,t)}catch(e){}if(x(e,t))return c(!h.f.call(e,t),e[t])}},w=function(e){if(!y(e))throw TypeError(String(e)+" is not an object");return e},S=Object.defineProperty,B={f:n?S:function(e,t,s){if(w(e),t=A(t,!0),w(s),b)try{return S(e,t,s)}catch(e){}if("get"in s||"set"in s)throw TypeError("Accessors not supported");return"value"in s&&(e[t]=s.value),e}},N=n?function(e,t,s){return B.f(e,t,c(1,s))}:function(e,t,s){return e[t]=s,e},I=function(e,t){try{N(i,e,t)}catch(s){i[e]=t}return t},v=i["__core-js_shared__"]||I("__core-js_shared__",{}),k=Function.toString;"function"!=typeof v.inspectSource&&(v.inspectSource=function(e){return k.call(e)});var L,O,M,R,j=v.inspectSource,_=i.WeakMap,U="function"==typeof _&&/native code/.test(j(_)),q=s((function(e){(e.exports=function(e,t){return v[e]||(v[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),$=0,V=Math.random(),H=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++$+V).toString(36)},z=q("keys"),W={},G=i.WeakMap;if(U||v.state){var K=v.state||(v.state=new G),X=K.get,J=K.has,Y=K.set;L=function(e,t){if(J.call(K,e))throw new TypeError("Object already initialized");return t.facade=e,Y.call(K,e,t),t},O=function(e){return X.call(K,e)||{}},M=function(e){return J.call(K,e)}}else{var Q=z[R="state"]||(z[R]=H(R));W[Q]=!0,L=function(e,t){if(x(e,Q))throw new TypeError("Object already initialized");return t.facade=e,N(e,Q,t),t},O=function(e){return x(e,Q)?e[Q]:{}},M=function(e){return x(e,Q)}}var Z,ee,te={set:L,get:O,has:M,enforce:function(e){return M(e)?O(e):L(e,{})},getterFor:function(e){return function(t){var s;if(!y(t)||(s=O(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return s}}},se=s((function(e){var t=te.get,s=te.enforce,r=String(String).split("String");(e.exports=function(e,t,a,n){var o,u=!!n&&!!n.unsafe,h=!!n&&!!n.enumerable,c=!!n&&!!n.noTargetGet;"function"==typeof a&&("string"!=typeof t||x(a,"name")||N(a,"name",t),(o=s(a)).source||(o.source=r.join("string"==typeof t?t:""))),e!==i?(u?!c&&e[t]&&(h=!0):delete e[t],h?e[t]=a:N(e,t,a)):h?e[t]=a:I(t,a)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||j(this)}))})),re=i,ie=function(e){return"function"==typeof e?e:void 0},ae=function(e,t){return arguments.length<2?ie(re[e])||ie(i[e]):re[e]&&re[e][t]||i[e]&&i[e][t]},ne=Math.ceil,oe=Math.floor,ue=function(e){return isNaN(e=+e)?0:(e>0?oe:ne)(e)},he=Math.min,ce=function(e){return e>0?he(ue(e),9007199254740991):0},pe=Math.max,le=Math.min,de=function(e){return function(t,s,r){var i,a=f(t),n=ce(a.length),o=function(e,t){var s=ue(e);return s<0?pe(s+t,0):le(s,t)}(r,n);if(e&&s!=s){for(;n>o;)if((i=a[o++])!=i)return!0}else for(;n>o;o++)if((e||o in a)&&a[o]===s)return e||o||0;return!e&&-1}},De={includes:de(!0),indexOf:de(!1)}.indexOf,me=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),fe={f:Object.getOwnPropertyNames||function(e){return function(e,t){var s,r=f(e),i=0,a=[];for(s in r)!x(W,s)&&x(r,s)&&a.push(s);for(;t.length>i;)x(r,s=t[i++])&&(~De(a,s)||a.push(s));return a}(e,me)}},ye={f:Object.getOwnPropertySymbols},Ae=ae("Reflect","ownKeys")||function(e){var t=fe.f(w(e)),s=ye.f;return s?t.concat(s(e)):t},Ee=function(e,t){for(var s=Ae(t),r=B.f,i=T.f,a=0;a0&&Be(u))h=ve(e,t,u,ce(u.length),h,a-1)-1;else{if(h>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[h]=u}h++}c++}return h},ke=ve,Le=ae("navigator","userAgent")||"",Oe=i.process,Me=Oe&&Oe.versions,Re=Me&&Me.v8;Re?ee=(Z=Re.split("."))[0]<4?1:Z[0]+Z[1]:Le&&(!(Z=Le.match(/Edge\/(\d+)/))||Z[1]>=74)&&(Z=Le.match(/Chrome\/(\d+)/))&&(ee=Z[1]);var je=ee&&+ee,_e=!!Object.getOwnPropertySymbols&&!a((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&je&&je<41})),Ue=_e&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,qe=q("wks"),$e=i.Symbol,Ve=Ue?$e:$e&&$e.withoutSetter||H,He=function(e){return x(qe,e)&&(_e||"string"==typeof qe[e])||(_e&&x($e,e)?qe[e]=$e[e]:qe[e]=Ve("Symbol."+e)),qe[e]},ze=He("species"),We=function(e,t){var s;return Be(e)&&("function"!=typeof(s=e.constructor)||s!==Array&&!Be(s.prototype)?y(s)&&null===(s=s[ze])&&(s=void 0):s=void 0),new(void 0===s?Array:s)(0===t?0:t)};Se({target:"Array",proto:!0},{flatMap:function(e){var t,s=E(this),r=ce(s.length);return Ne(e),(t=We(s,0)).length=ke(t,s,s,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var Ge=function(...e){let t;for(const[s,r]of e.entries())try{return{result:r()}}catch(e){0===s&&(t=e)}return{error:t}},Ke=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const Xe=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var Je=Xe,Ye=Xe;Je.default=Ye;const Qe=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=Ke(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let t=0;for(let s=0;s=127&&r<=159||(r>=768&&r<=879||(r>65535&&s++,t+=Je(r)?2:1))}return t};var Ze=Qe,et=Qe;Ze.default=et;var tt=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var st=e=>e[e.length-1];function rt(e,t){if(null==e)return{};var s,r,i=function(e,t){if(null==e)return{};var s,r,i={},a=Object.keys(e);for(r=0;r=0||(i[s]=e[s]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,s)&&(i[s]=e[s])}return i}var it,at,nt=Math.floor,ot=function(e,t){var s=e.length,r=nt(s/2);return s<8?ut(e,t):ht(ot(e.slice(0,r),t),ot(e.slice(r),t),t)},ut=function(e,t){for(var s,r,i=e.length,a=1;a0;)e[r]=e[--r];r!==a++&&(e[r]=s)}return e},ht=function(e,t,s){for(var r=e.length,i=t.length,a=0,n=0,o=[];a3)){if(dt)return!0;if(mt)return mt<603;var e,t,s,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:s=3;break;case 68:case 71:s=4;break;default:s=2}for(r=0;r<47;r++)ft.push({k:t+r,v:s})}for(ft.sort((function(e,t){return t.v-e.v})),r=0;rString(s)?1:-1}}(e))).length,r=0;ra;a++)if((o=y(e[a]))&&o instanceof vt)return o;return new vt(!1)}r=i.call(e)}for(u=r.next;!(h=u.call(r)).done;){try{o=y(h.value)}catch(e){throw It(r),e}if("object"==typeof o&&o&&o instanceof vt)return o}return new vt(!1)};Se({target:"Object",stat:!0},{fromEntries:function(e){var t={};return kt(e,(function(e,s){!function(e,t,s){var r=A(t);r in e?B.f(e,r,c(0,s)):e[r]=s}(t,e,s)}),{AS_ENTRIES:!0}),t}});var Lt=void 0!==Lt?Lt:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Ot(){throw new Error("setTimeout has not been defined")}function Mt(){throw new Error("clearTimeout has not been defined")}var Rt=Ot,jt=Mt;function _t(e){if(Rt===setTimeout)return setTimeout(e,0);if((Rt===Ot||!Rt)&&setTimeout)return Rt=setTimeout,setTimeout(e,0);try{return Rt(e,0)}catch(t){try{return Rt.call(null,e,0)}catch(t){return Rt.call(this,e,0)}}}"function"==typeof Lt.setTimeout&&(Rt=setTimeout),"function"==typeof Lt.clearTimeout&&(jt=clearTimeout);var Ut,qt=[],$t=!1,Vt=-1;function Ht(){$t&&Ut&&($t=!1,Ut.length?qt=Ut.concat(qt):Vt=-1,qt.length&&zt())}function zt(){if(!$t){var e=_t(Ht);$t=!0;for(var t=qt.length;t;){for(Ut=qt,qt=[];++Vt1)for(var s=1;sconsole.error("SEMVER",...e):()=>{};var ns={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},os=s((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:s}=ns,r=(t=e.exports={}).re=[],i=t.src=[],a=t.t={};let n=0;const o=(e,t,s)=>{const o=n++;as(o,t),a[e]=o,i[o]=t,r[o]=new RegExp(t,s?"g":void 0)};o("NUMERICIDENTIFIER","0|[1-9]\\d*"),o("NUMERICIDENTIFIERLOOSE","[0-9]+"),o("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),o("MAINVERSION",`(${i[a.NUMERICIDENTIFIER]})\\.(${i[a.NUMERICIDENTIFIER]})\\.(${i[a.NUMERICIDENTIFIER]})`),o("MAINVERSIONLOOSE",`(${i[a.NUMERICIDENTIFIERLOOSE]})\\.(${i[a.NUMERICIDENTIFIERLOOSE]})\\.(${i[a.NUMERICIDENTIFIERLOOSE]})`),o("PRERELEASEIDENTIFIER",`(?:${i[a.NUMERICIDENTIFIER]}|${i[a.NONNUMERICIDENTIFIER]})`),o("PRERELEASEIDENTIFIERLOOSE",`(?:${i[a.NUMERICIDENTIFIERLOOSE]}|${i[a.NONNUMERICIDENTIFIER]})`),o("PRERELEASE",`(?:-(${i[a.PRERELEASEIDENTIFIER]}(?:\\.${i[a.PRERELEASEIDENTIFIER]})*))`),o("PRERELEASELOOSE",`(?:-?(${i[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[a.PRERELEASEIDENTIFIERLOOSE]})*))`),o("BUILDIDENTIFIER","[0-9A-Za-z-]+"),o("BUILD",`(?:\\+(${i[a.BUILDIDENTIFIER]}(?:\\.${i[a.BUILDIDENTIFIER]})*))`),o("FULLPLAIN",`v?${i[a.MAINVERSION]}${i[a.PRERELEASE]}?${i[a.BUILD]}?`),o("FULL",`^${i[a.FULLPLAIN]}$`),o("LOOSEPLAIN",`[v=\\s]*${i[a.MAINVERSIONLOOSE]}${i[a.PRERELEASELOOSE]}?${i[a.BUILD]}?`),o("LOOSE",`^${i[a.LOOSEPLAIN]}$`),o("GTLT","((?:<|>)?=?)"),o("XRANGEIDENTIFIERLOOSE",`${i[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),o("XRANGEIDENTIFIER",`${i[a.NUMERICIDENTIFIER]}|x|X|\\*`),o("XRANGEPLAIN",`[v=\\s]*(${i[a.XRANGEIDENTIFIER]})(?:\\.(${i[a.XRANGEIDENTIFIER]})(?:\\.(${i[a.XRANGEIDENTIFIER]})(?:${i[a.PRERELEASE]})?${i[a.BUILD]}?)?)?`),o("XRANGEPLAINLOOSE",`[v=\\s]*(${i[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[a.XRANGEIDENTIFIERLOOSE]})(?:${i[a.PRERELEASELOOSE]})?${i[a.BUILD]}?)?)?`),o("XRANGE",`^${i[a.GTLT]}\\s*${i[a.XRANGEPLAIN]}$`),o("XRANGELOOSE",`^${i[a.GTLT]}\\s*${i[a.XRANGEPLAINLOOSE]}$`),o("COERCE",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?(?:$|[^\\d])`),o("COERCERTL",i[a.COERCE],!0),o("LONETILDE","(?:~>?)"),o("TILDETRIM",`(\\s*)${i[a.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",o("TILDE",`^${i[a.LONETILDE]}${i[a.XRANGEPLAIN]}$`),o("TILDELOOSE",`^${i[a.LONETILDE]}${i[a.XRANGEPLAINLOOSE]}$`),o("LONECARET","(?:\\^)"),o("CARETTRIM",`(\\s*)${i[a.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",o("CARET",`^${i[a.LONECARET]}${i[a.XRANGEPLAIN]}$`),o("CARETLOOSE",`^${i[a.LONECARET]}${i[a.XRANGEPLAINLOOSE]}$`),o("COMPARATORLOOSE",`^${i[a.GTLT]}\\s*(${i[a.LOOSEPLAIN]})$|^$`),o("COMPARATOR",`^${i[a.GTLT]}\\s*(${i[a.FULLPLAIN]})$|^$`),o("COMPARATORTRIM",`(\\s*)${i[a.GTLT]}\\s*(${i[a.LOOSEPLAIN]}|${i[a.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",o("HYPHENRANGE",`^\\s*(${i[a.XRANGEPLAIN]})\\s+-\\s+(${i[a.XRANGEPLAIN]})\\s*$`),o("HYPHENRANGELOOSE",`^\\s*(${i[a.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[a.XRANGEPLAINLOOSE]})\\s*$`),o("STAR","(<|>)?=?\\s*\\*"),o("GTE0","^\\s*>=\\s*0.0.0\\s*$"),o("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const us=["includePrerelease","loose","rtl"];var hs=e=>e?"object"!=typeof e?{loose:!0}:us.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const cs=/^[0-9]+$/,ps=(e,t)=>{const s=cs.test(e),r=cs.test(t);return s&&r&&(e=+e,t=+t),e===t?0:s&&!r?-1:r&&!s?1:eps(t,e)};const{MAX_LENGTH:ds,MAX_SAFE_INTEGER:Ds}=ns,{re:ms,t:fs}=os,{compareIdentifiers:ys}=ls;class As{constructor(e,t){if(t=hs(t),e instanceof As){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>ds)throw new TypeError(`version is longer than ${ds} characters`);as("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const s=e.trim().match(t.loose?ms[fs.LOOSE]:ms[fs.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>Ds||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Ds||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Ds||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[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}}var Es=As;var Cs=(e,t,s)=>new Es(e,s).compare(new Es(t,s));var xs=(e,t,s)=>Cs(e,t,s)<0;var Fs=(e,t,s)=>Cs(e,t,s)>=0,gs="2.3.2",bs=s((function(e,t){function s(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Ps` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Ps` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Ps` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Ps` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const ws=["cliName","cliCategory","cliDescription"],Ss={compare:Cs,lt:xs,gte:Fs},Bs=gs,Ns={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:Ts}.options;var Is={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:s=!1,showInternal:r=!1}={}){const i=Bs.split("-",1)[0],a=e.flatMap((e=>e.languages||[])).filter(h),n=(o=Object.assign({},...e.map((({options:e})=>e)),Ns),u="name",Object.entries(o).map((([e,t])=>Object.assign({[u]:e},t)))).filter((e=>h(e)&&c(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(h).sort(((e,t)=>Ss.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>h(e)&&c(e))),"parser"===t.name&&function(e,t,s){const r=new Set(e.choices.map((e=>e.value)));for(const i of t)if(i.parsers)for(const t of i.parsers)if(!r.has(t)){r.add(t);const a=s.find((e=>e.parsers&&e.parsers[t]));let n=i.name;a&&a.name&&(n+=` (plugin: ${a.name})`),e.choices.push({value:t,description:n})}}(t,a,e));const s=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:s})}));var o,u;return{languages:a,options:n};function h(e){return t||!("since"in e)||e.since&&Ss.gte(i,e.since)}function c(e){return s||!("deprecated"in e)||e.deprecated&&Ss.lt(i,e.deprecated)}}};const{getSupportInfo:vs}=Is,ks=/[^\x20-\x7F]/;function Ls(e){return(t,s,r)=>{const i=r&&r.backwards;if(!1===s)return!1;const{length:a}=t;let n=s;for(;n>=0&&n(s.match(n.regex)||[]).length?n.quote:a.quote}return o}function Ks(e,t,s){const r='"'===t?"'":'"',i=e.replace(/\\(.)|(["'])/gs,((e,i,a)=>i===r?i:a===t?"\\"+a:a||(s&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(i)?i:"\\"+i)));return t+i+t}function Xs(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let s=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");s.length>20&&(s=s.slice(0,19)+"\u2026");return t+(s?" "+s:"")}(e)}var Js={inferParserByLanguage:function(e,t){const{languages:s}=vs({plugins:t.plugins}),r=s.find((({name:t})=>t.toLowerCase()===e))||s.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||s.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return r&&r.parsers[0]},getStringWidth:function(e){return e?ks.test(e)?Ze(e):e.length:0},getMaxContinuousCount:function(e,t){const s=e.match(new RegExp(`(${tt(t)})+`,"g"));return null===s?0:s.reduce(((e,s)=>Math.max(e,s.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const s=e.match(new RegExp(`(${tt(t)})+`,"g"));if(null===s)return 0;const r=new Map;let i=0;for(const e of s){const s=e.length/t.length;r.set(s,!0),s>i&&(i=s)}for(let e=1;ee[e.length-2],getLast:st,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:Hs,getNextNonSpaceNonCommentCharacterIndex:zs,getNextNonSpaceNonCommentCharacter:function(e,t,s){return e.charAt(zs(e,t,s))},skip:Ls,skipWhitespace:Os,skipSpaces:Ms,skipToLineEnd:Rs,skipEverythingButNewLine:js,skipInlineComment:_s,skipTrailingComment:Us,skipNewline:qs,isNextLineEmptyAfterIndex:Vs,isNextLineEmpty:function(e,t,s){return Vs(e,s(t))},isPreviousLineEmpty:function(e,t,s){let r=s(t)-1;return r=Ms(e,r,{backwards:!0}),r=qs(e,r,{backwards:!0}),r=Ms(e,r,{backwards:!0}),r!==qs(e,r,{backwards:!0})},hasNewline:$s,hasNewlineInRange:function(e,t,s){for(let r=t;r0},createGroupIdMapper:function(e){const t=new WeakMap;return function(s){return t.has(s)||t.set(s,Symbol(e)),t.get(s)}}};var Ys=function(e,t){const s=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return s.loc=t,s};const{isNonEmptyArray:Qs}=Js;function Zs(e,t){const{ignoreDecorators:s}=t||{};if(!s){const t=e.declaration&&e.declaration.decorators||e.decorators;if(Qs(t))return Zs(t[0])}return e.range?e.range[0]:e.start}function er(e){return e.range?e.range[1]:e.end}function tr(e,t){return Zs(e)===Zs(t)}var sr={locStart:Zs,locEnd:er,hasSameLocStart:tr,hasSameLoc:function(e,t){return tr(e,t)&&function(e,t){return er(e)===er(t)}(e,t)}},rr=s((function(e){!function(){function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function s(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=s(t)}while(t);return!1},trailingStatement:s}}()})),ir=s((function(e){!function(){var t,s,r,i,a,n;function o(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(s={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},t={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/},r=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),n=0;n<128;++n)i[n]=n>=97&&n<=122||n>=65&&n<=90||36===n||95===n;for(a=new Array(128),n=0;n<128;++n)a[n]=n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57||36===n||95===n;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&r.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:s.NonAsciiIdentifierStart.test(o(e))},isIdentifierPartES5:function(e){return e<128?a[e]:s.NonAsciiIdentifierPart.test(o(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(o(e))},isIdentifierPartES6:function(e){return e<128?a[e]:t.NonAsciiIdentifierPart.test(o(e))}}}()})),ar=s((function(e){!function(){var t=ir;function s(e,t){return!(!t&&"yield"===e)&&r(e,t)}function r(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===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}}function i(e,t){return"null"===e||"true"===e||"false"===e||s(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function n(e){var s,r,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStartES5(i))return!1;for(s=1,r=e.length;s=r)return!1;if(!(56320<=(a=e.charCodeAt(s))&&a<=57343))return!1;i=1024*(i-55296)+(a-56320)+65536}if(!n(i))return!1;n=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:s,isKeywordES6:r,isReservedWordES5:i,isReservedWordES6:a,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:n,isIdentifierNameES6:o,isIdentifierES5:function(e,t){return n(e)&&!i(e,t)},isIdentifierES6:function(e,t){return o(e)&&!a(e,t)}}}()}));const nr=s((function(e,t){t.ast=rr,t.code=ir,t.keyword=ar})).keyword.isIdentifierNameES5,{getLast:or,hasNewline:ur,skipWhitespace:hr,isNonEmptyArray:cr,isNextLineEmptyAfterIndex:pr}=Js,{locStart:lr,locEnd:dr,hasSameLocStart:Dr}=sr,mr=new RegExp("^(?:(?=.)\\s)*:"),fr=new RegExp("^(?:(?=.)\\s)*::");function yr(e){return"Block"===e.type||"CommentBlock"===e.type||"MultiLine"===e.type}function Ar(e){return"Line"===e.type||"CommentLine"===e.type||"SingleLine"===e.type||"HashbangComment"===e.type||"HTMLOpen"===e.type||"HTMLClose"===e.type}const Er=new Set(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function Cr(e){return e&&Er.has(e.type)}function xr(e){return"NumericLiteral"===e.type||"Literal"===e.type&&"number"==typeof e.value}function Fr(e){return"StringLiteral"===e.type||"Literal"===e.type&&"string"==typeof e.value}function gr(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}function br(e){return Ir(e)&&"Identifier"===e.callee.type&&("async"===e.callee.name||"inject"===e.callee.name||"fakeAsync"===e.callee.name)}function Pr(e){return"JSXElement"===e.type||"JSXFragment"===e.type}function Tr(e){return"get"===e.kind||"set"===e.kind}function wr(e){return Tr(e)||Dr(e,e.value)}const Sr=new Set(["BinaryExpression","LogicalExpression","NGPipeExpression"]);const Br=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);const Nr=/^(skip|[fx]?(it|describe|test))$/;function Ir(e){return e&&("CallExpression"===e.type||"OptionalCallExpression"===e.type)}function vr(e){return e&&("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)}function kr(e){return/^(\d+|\d+\.\d+)$/.test(e)}function Lr(e){return e.quasis.some((e=>e.value.raw.includes("\n")))}function Or(e){return e.extra?e.extra.raw:e.raw}const Mr={"==":!0,"!=":!0,"===":!0,"!==":!0},Rr={"*":!0,"/":!0,"%":!0},jr={">>":!0,">>>":!0,"<<":!0};const _r={};for(const[e,t]of[["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].entries())for(const s of t)_r[s]=e;function Ur(e){return _r[e]}const qr=new WeakMap;function $r(e){if(qr.has(e))return qr.get(e);const t=[];return e.this&&t.push(e.this),Array.isArray(e.parameters)?t.push(...e.parameters):Array.isArray(e.params)&&t.push(...e.params),e.rest&&t.push(e.rest),qr.set(e,t),t}const Vr=new WeakMap;function Hr(e){if(Vr.has(e))return Vr.get(e);let t=e.arguments;return"ImportExpression"===e.type&&(t=[e.source],e.attributes&&t.push(e.attributes)),Vr.set(e,t),t}function zr(e){return"prettier-ignore"===e.value.trim()&&!e.unignore}function Wr(e){return e&&(e.prettierIgnore||Xr(e,Gr.PrettierIgnore))}const Gr={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},Kr=(e,t)=>{if("function"==typeof e&&(t=e,e=0),e||t)return(s,r,i)=>!(e&Gr.Leading&&!s.leading||e&Gr.Trailing&&!s.trailing||e&Gr.Dangling&&(s.leading||s.trailing)||e&Gr.Block&&!yr(s)||e&Gr.Line&&!Ar(s)||e&Gr.First&&0!==r||e&Gr.Last&&r!==i.length-1||e&Gr.PrettierIgnore&&!zr(s)||t&&!t(s))};function Xr(e,t,s){if(!e||!cr(e.comments))return!1;const r=Kr(t,s);return!r||e.comments.some(r)}function Jr(e,t,s){if(!e||!Array.isArray(e.comments))return[];const r=Kr(t,s);return r?e.comments.filter(r):e.comments}function Yr(e){return Ir(e)||"NewExpression"===e.type||"ImportExpression"===e.type}var Qr={getFunctionParameters:$r,iterateFunctionParametersPath:function(e,t){const s=e.getValue();let r=0;const i=e=>t(e,r++);s.this&&e.call(i,"this"),Array.isArray(s.parameters)?e.each(i,"parameters"):Array.isArray(s.params)&&e.each(i,"params"),s.rest&&e.call(i,"rest")},getCallArguments:Hr,iterateCallArgumentsPath:function(e,t){const s=e.getValue();"ImportExpression"===s.type?(e.call((e=>t(e,0)),"source"),s.attributes&&e.call((e=>t(e,1)),"attributes")):e.each(t,"arguments")},hasRestParameter:function(e){if(e.rest)return!0;const t=$r(e);return t.length>0&&"RestElement"===or(t).type},getLeftSide:function(e){return e.expressions?e.expressions[0]:e.left||e.test||e.callee||e.object||e.tag||e.argument||e.expression},getLeftSidePathName:function(e,t){if(t.expressions)return["expressions",0];if(t.left)return["left"];if(t.test)return["test"];if(t.object)return["object"];if(t.callee)return["callee"];if(t.tag)return["tag"];if(t.argument)return["argument"];if(t.expression)return["expression"];throw new Error("Unexpected node has no left side.")},getParentExportDeclaration:function(e){const t=e.getParentNode();return"declaration"===e.getName()&&Cr(t)?t:null},getTypeScriptMappedTypeModifier:function(e,t){return"+"===e?"+"+t:"-"===e?"-"+t:t},hasFlowAnnotationComment:function(e){return e&&yr(e[0])&&fr.test(e[0].value)},hasFlowShorthandAnnotationComment:function(e){return e.extra&&e.extra.parenthesized&&cr(e.trailingComments)&&yr(e.trailingComments[0])&&mr.test(e.trailingComments[0].value)},hasLeadingOwnLineComment:function(e,t){return Pr(t)?Wr(t):Xr(t,Gr.Leading,(t=>ur(e,dr(t))))},hasNakedLeftSide:function(e){return"AssignmentExpression"===e.type||"BinaryExpression"===e.type||"LogicalExpression"===e.type||"NGPipeExpression"===e.type||"ConditionalExpression"===e.type||Ir(e)||vr(e)||"SequenceExpression"===e.type||"TaggedTemplateExpression"===e.type||"BindExpression"===e.type||"UpdateExpression"===e.type&&!e.prefix||"TSAsExpression"===e.type||"TSNonNullExpression"===e.type},hasNode:function e(t,s){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return t.some((t=>e(t,s)));const r=s(t);return"boolean"==typeof r?r:Object.values(t).some((t=>e(t,s)))},hasIgnoreComment:function(e){return Wr(e.getValue())},hasNodeIgnoreComment:Wr,identity:function(e){return e},isBinaryish:function(e){return Sr.has(e.type)},isBlockComment:yr,isCallLikeExpression:Yr,isLineComment:Ar,isPrettierIgnoreComment:zr,isCallExpression:Ir,isMemberExpression:vr,isExportDeclaration:Cr,isFlowAnnotationComment:function(e,t){const s=lr(t),r=hr(e,dr(t));return!1!==r&&"/*"===e.slice(s,s+2)&&"*/"===e.slice(r,r+2)},isFunctionCompositionArgs:function(e){if(e.length<=1)return!1;let t=0;for(const s of e)if(gr(s)){if(t+=1,t>1)return!0}else if(Ir(s))for(const e of s.arguments)if(gr(e))return!0;return!1},isFunctionNotation:wr,isFunctionOrArrowExpression:gr,isGetterOrSetter:Tr,isJestEachTemplateLiteral:function(e,t){const s=/^[fx]?(describe|it|test)$/;return"TaggedTemplateExpression"===t.type&&t.quasi===e&&"MemberExpression"===t.tag.type&&"Identifier"===t.tag.property.type&&"each"===t.tag.property.name&&("Identifier"===t.tag.object.type&&s.test(t.tag.object.name)||"MemberExpression"===t.tag.object.type&&"Identifier"===t.tag.object.property.type&&("only"===t.tag.object.property.name||"skip"===t.tag.object.property.name)&&"Identifier"===t.tag.object.object.type&&s.test(t.tag.object.object.name))},isJsxNode:Pr,isLiteral:function(e){return"BooleanLiteral"===e.type||"DirectiveLiteral"===e.type||"Literal"===e.type||"NullLiteral"===e.type||"NumericLiteral"===e.type||"BigIntLiteral"===e.type||"DecimalLiteral"===e.type||"RegExpLiteral"===e.type||"StringLiteral"===e.type||"TemplateLiteral"===e.type||"TSTypeLiteral"===e.type||"JSXText"===e.type},isLongCurriedCallExpression:function(e){const t=e.getValue(),s=e.getParentNode();return Ir(t)&&Ir(s)&&s.callee===t&&t.arguments.length>s.arguments.length&&s.arguments.length>0},isSimpleCallArgument:function e(t,s){if(s>=2)return!1;const r=t=>e(t,s+1),i="Literal"===t.type&&"regex"in t&&t.regex.pattern||"RegExpLiteral"===t.type&&t.pattern;return!(i&&i.length>5)&&("Literal"===t.type||"BigIntLiteral"===t.type||"DecimalLiteral"===t.type||"BooleanLiteral"===t.type||"NullLiteral"===t.type||"NumericLiteral"===t.type||"RegExpLiteral"===t.type||"StringLiteral"===t.type||"Identifier"===t.type||"ThisExpression"===t.type||"Super"===t.type||"PrivateName"===t.type||"PrivateIdentifier"===t.type||"ArgumentPlaceholder"===t.type||"Import"===t.type||("TemplateLiteral"===t.type?t.quasis.every((e=>!e.value.raw.includes("\n")))&&t.expressions.every(r):"ObjectExpression"===t.type?t.properties.every((e=>!e.computed&&(e.shorthand||e.value&&r(e.value)))):"ArrayExpression"===t.type?t.elements.every((e=>null===e||r(e))):Yr(t)?("ImportExpression"===t.type||e(t.callee,s))&&Hr(t).every(r):vr(t)?e(t.object,s)&&e(t.property,s):"UnaryExpression"!==t.type||"!"!==t.operator&&"-"!==t.operator?"TSNonNullExpression"===t.type&&e(t.expression,s):e(t.argument,s)))},isMemberish:function(e){return vr(e)||"BindExpression"===e.type&&Boolean(e.object)},isNumericLiteral:xr,isSignedNumericLiteral:function(e){return"UnaryExpression"===e.type&&("+"===e.operator||"-"===e.operator)&&xr(e.argument)},isObjectProperty:function(e){return e&&("ObjectProperty"===e.type||"Property"===e.type&&!e.method&&"init"===e.kind)},isObjectType:function(e){return"ObjectTypeAnnotation"===e.type||"TSTypeLiteral"===e.type},isObjectTypePropertyAFunction:function(e){return!("ObjectTypeProperty"!==e.type&&"ObjectTypeInternalSlot"!==e.type||"FunctionTypeAnnotation"!==e.value.type||e.static||wr(e))},isSimpleType:function(e){return!!e&&(!("GenericTypeAnnotation"!==e.type&&"TSTypeReference"!==e.type||e.typeParameters)||!!Br.has(e.type))},isSimpleNumber:kr,isSimpleTemplateLiteral:function(e){let t="expressions";"TSTemplateLiteralType"===e.type&&(t="types");const s=e[t];return 0!==s.length&&s.every((e=>{if(Xr(e))return!1;if("Identifier"===e.type||"ThisExpression"===e.type)return!0;if(vr(e)){let t=e;for(;vr(t);){if("Identifier"!==t.property.type&&"Literal"!==t.property.type&&"StringLiteral"!==t.property.type&&"NumericLiteral"!==t.property.type)return!1;if(t=t.object,Xr(t))return!1}return"Identifier"===t.type||"ThisExpression"===t.type}return!1}))},isStringLiteral:Fr,isStringPropSafeToUnquote:function(e,t){return"json"!==t.parser&&Fr(e.key)&&Or(e.key).slice(1,-1)===e.key.value&&(nr(e.key.value)&&!(("typescript"===t.parser||"babel-ts"===t.parser)&&"ClassProperty"===e.type)||kr(e.key.value)&&String(Number(e.key.value))===e.key.value&&("babel"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser))},isTemplateOnItsOwnLine:function(e,t){return("TemplateLiteral"===e.type&&Lr(e)||"TaggedTemplateExpression"===e.type&&Lr(e.quasi))&&!ur(t,lr(e),{backwards:!0})},isTestCall:function e(t,s){if("CallExpression"!==t.type)return!1;if(1===t.arguments.length){if(br(t)&&s&&e(s))return gr(t.arguments[0]);if(function(e){return"Identifier"===e.callee.type&&/^(before|after)(Each|All)$/.test(e.callee.name)&&1===e.arguments.length}(t))return br(t.arguments[0])}else if((2===t.arguments.length||3===t.arguments.length)&&("Identifier"===t.callee.type&&Nr.test(t.callee.name)||function(e){return vr(e.callee)&&"Identifier"===e.callee.object.type&&"Identifier"===e.callee.property.type&&Nr.test(e.callee.object.name)&&("only"===e.callee.property.name||"skip"===e.callee.property.name)}(t))&&(function(e){return"TemplateLiteral"===e.type}(t.arguments[0])||Fr(t.arguments[0])))return!(t.arguments[2]&&!xr(t.arguments[2]))&&((2===t.arguments.length?gr(t.arguments[1]):function(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type}(t.arguments[1])&&$r(t.arguments[1]).length<=1)||br(t.arguments[1]));return!1},isTheOnlyJsxElementInMarkdown:function(e,t){if("markdown"!==e.parentParser&&"mdx"!==e.parentParser)return!1;const s=t.getNode();if(!s.expression||!Pr(s.expression))return!1;const r=t.getParentNode();return"Program"===r.type&&1===r.body.length},isTSXFile:function(e){return e.filepath&&/\.tsx$/i.test(e.filepath)},isTypeAnnotationAFunction:function(e){return!("TypeAnnotation"!==e.type&&"TSTypeAnnotation"!==e.type||"FunctionTypeAnnotation"!==e.typeAnnotation.type||e.static||Dr(e,e.typeAnnotation))},isNextLineEmpty:(e,{originalText:t})=>pr(t,dr(e)),needsHardlineAfterDanglingComment:function(e){if(!Xr(e))return!1;const t=or(Jr(e,Gr.Dangling));return t&&!yr(t)},rawText:Or,shouldPrintComma:function(e,t="es5"){return"es5"===e.trailingComma&&"es5"===t||"all"===e.trailingComma&&("all"===t||"es5"===t)},isBitwiseOperator:function(e){return Boolean(jr[e])||"|"===e||"^"===e||"&"===e},shouldFlatten:function(e,t){return Ur(t)===Ur(e)&&("**"!==e&&((!Mr[e]||!Mr[t])&&(!("%"===t&&Rr[e]||"%"===e&&Rr[t])&&((t===e||!Rr[t]||!Rr[e])&&(!jr[e]||!jr[t])))))},startsWithNoLookaheadToken:function e(t,s){switch((t=function(e){for(;e.left;)e=e.left;return e}(t)).type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return s;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return e(t.object,s);case"TaggedTemplateExpression":return"FunctionExpression"!==t.tag.type&&e(t.tag,s);case"CallExpression":case"OptionalCallExpression":return"FunctionExpression"!==t.callee.type&&e(t.callee,s);case"ConditionalExpression":return e(t.test,s);case"UpdateExpression":return!t.prefix&&e(t.argument,s);case"BindExpression":return t.object&&e(t.object,s);case"SequenceExpression":return e(t.expressions[0],s);case"TSAsExpression":case"TSNonNullExpression":return e(t.expression,s);default:return!1}},getPrecedence:Ur,hasComment:Xr,getComments:Jr,CommentCheckFlags:Gr};const{getLast:Zr,hasNewline:ei,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:ti,getNextNonSpaceNonCommentCharacter:si,hasNewlineInRange:ri,addLeadingComment:ii,addTrailingComment:ai,addDanglingComment:ni,getNextNonSpaceNonCommentCharacterIndex:oi,isNonEmptyArray:ui}=Js,{isBlockComment:hi,getFunctionParameters:ci,isPrettierIgnoreComment:pi,isJsxNode:li,hasFlowShorthandAnnotationComment:di,hasFlowAnnotationComment:Di,hasIgnoreComment:mi,isCallLikeExpression:fi,getCallArguments:yi,isCallExpression:Ai,isMemberExpression:Ei,isObjectProperty:Ci}=Qr,{locStart:xi,locEnd:Fi}=sr;function gi(e,t){const s=(e.body||e.properties).find((({type:e})=>"EmptyStatement"!==e));s?ii(s,t):ni(e,t)}function bi(e,t){"BlockStatement"===e.type?gi(e,t):ii(e,t)}function Pi({comment:e,followingNode:t}){return!(!t||!ea(e))&&(ii(t,e),!0)}function Ti({comment:e,precedingNode:t,enclosingNode:s,followingNode:r,text:i}){if(!s||"IfStatement"!==s.type||!r)return!1;return")"===si(i,e,Fi)?(ai(t,e),!0):t===s.consequent&&r===s.alternate?("BlockStatement"===t.type?ai(t,e):ni(s,e),!0):"BlockStatement"===r.type?(gi(r,e),!0):"IfStatement"===r.type?(bi(r.consequent,e),!0):s.consequent===r&&(ii(r,e),!0)}function wi({comment:e,precedingNode:t,enclosingNode:s,followingNode:r,text:i}){if(!s||"WhileStatement"!==s.type||!r)return!1;return")"===si(i,e,Fi)?(ai(t,e),!0):"BlockStatement"===r.type?(gi(r,e),!0):s.body===r&&(ii(r,e),!0)}function Si({comment:e,precedingNode:t,enclosingNode:s,followingNode:r}){return!(!s||"TryStatement"!==s.type&&"CatchClause"!==s.type||!r)&&("CatchClause"===s.type&&t?(ai(t,e),!0):"BlockStatement"===r.type?(gi(r,e),!0):"TryStatement"===r.type?(bi(r.finalizer,e),!0):"CatchClause"===r.type&&(bi(r.body,e),!0))}function Bi({comment:e,enclosingNode:t,followingNode:s}){return!(!Ei(t)||!s||"Identifier"!==s.type)&&(ii(t,e),!0)}function Ni({comment:e,precedingNode:t,enclosingNode:s,followingNode:r,text:i}){const a=t&&!ri(i,Fi(t),xi(e));return!(t&&a||!s||"ConditionalExpression"!==s.type&&"TSConditionalType"!==s.type||!r)&&(ii(r,e),!0)}function Ii({comment:e,precedingNode:t,enclosingNode:s}){return!(!Ci(s)||!s.shorthand||s.key!==t||"AssignmentPattern"!==s.value.type)&&(ai(s.value.left,e),!0)}function vi({comment:e,precedingNode:t,enclosingNode:s,followingNode:r}){if(s&&("ClassDeclaration"===s.type||"ClassExpression"===s.type||"DeclareClass"===s.type||"DeclareInterface"===s.type||"InterfaceDeclaration"===s.type||"TSInterfaceDeclaration"===s.type)){if(ui(s.decorators)&&(!r||"Decorator"!==r.type))return ai(Zr(s.decorators),e),!0;if(s.body&&r===s.body)return gi(s.body,e),!0;if(r)for(const i of["implements","extends","mixins"])if(s[i]&&r===s[i][0])return!t||t!==s.id&&t!==s.typeParameters&&t!==s.superClass?ni(s,e,i):ai(t,e),!0}return!1}function ki({comment:e,precedingNode:t,enclosingNode:s,text:r}){return(s&&t&&("Property"===s.type||"TSDeclareMethod"===s.type||"TSAbstractMethodDefinition"===s.type)&&"Identifier"===t.type&&s.key===t&&":"!==si(r,t,Fi)||!(!t||!s||"Decorator"!==t.type||"ClassMethod"!==s.type&&"ClassProperty"!==s.type&&"PropertyDefinition"!==s.type&&"TSAbstractClassProperty"!==s.type&&"TSAbstractMethodDefinition"!==s.type&&"TSDeclareMethod"!==s.type&&"MethodDefinition"!==s.type))&&(ai(t,e),!0)}function Li({comment:e,precedingNode:t,enclosingNode:s,text:r}){return"("===si(r,e,Fi)&&(!(!t||!s||"FunctionDeclaration"!==s.type&&"FunctionExpression"!==s.type&&"ClassMethod"!==s.type&&"MethodDefinition"!==s.type&&"ObjectMethod"!==s.type)&&(ai(t,e),!0))}function Oi({comment:e,enclosingNode:t,text:s}){if(!t||"ArrowFunctionExpression"!==t.type)return!1;const r=oi(s,e,Fi);return!1!==r&&"=>"===s.slice(r,r+2)&&(ni(t,e),!0)}function Mi({comment:e,enclosingNode:t,text:s}){return")"===si(s,e,Fi)&&(t&&(Zi(t)&&0===ci(t).length||fi(t)&&0===yi(t).length)?(ni(t,e),!0):!(!t||"MethodDefinition"!==t.type&&"TSAbstractMethodDefinition"!==t.type||0!==ci(t.value).length)&&(ni(t.value,e),!0))}function Ri({comment:e,precedingNode:t,enclosingNode:s,followingNode:r,text:i}){if(t&&"FunctionTypeParam"===t.type&&s&&"FunctionTypeAnnotation"===s.type&&r&&"FunctionTypeParam"!==r.type)return ai(t,e),!0;if(t&&("Identifier"===t.type||"AssignmentPattern"===t.type)&&s&&Zi(s)&&")"===si(i,e,Fi))return ai(t,e),!0;if(s&&"FunctionDeclaration"===s.type&&r&&"BlockStatement"===r.type){const t=(()=>{const e=ci(s);if(e.length>0)return ti(i,Fi(Zr(e)));const t=ti(i,Fi(s.id));return!1!==t&&ti(i,t+1)})();if(xi(e)>t)return gi(r,e),!0}return!1}function ji({comment:e,enclosingNode:t}){return!(!t||"ImportSpecifier"!==t.type)&&(ii(t,e),!0)}function _i({comment:e,enclosingNode:t}){return!(!t||"LabeledStatement"!==t.type)&&(ii(t,e),!0)}function Ui({comment:e,enclosingNode:t}){return!(!t||"ContinueStatement"!==t.type&&"BreakStatement"!==t.type||t.label)&&(ai(t,e),!0)}function qi({comment:e,precedingNode:t,enclosingNode:s}){return!!(Ai(s)&&t&&s.callee===t&&s.arguments.length>0)&&(ii(s.arguments[0],e),!0)}function $i({comment:e,precedingNode:t,enclosingNode:s,followingNode:r}){return!s||"UnionTypeAnnotation"!==s.type&&"TSUnionType"!==s.type?(r&&("UnionTypeAnnotation"===r.type||"TSUnionType"===r.type)&&pi(e)&&(r.types[0].prettierIgnore=!0,e.unignore=!0),!1):(pi(e)&&(r.prettierIgnore=!0,e.unignore=!0),!!t&&(ai(t,e),!0))}function Vi({comment:e,enclosingNode:t}){return!!Ci(t)&&(ii(t,e),!0)}function Hi({comment:e,enclosingNode:t,followingNode:s,ast:r,isLastComment:i}){return r&&r.body&&0===r.body.length?(i?ni(r,e):ii(r,e),!0):t&&"Program"===t.type&&0===t.body.length&&!ui(t.directives)?(i?ni(t,e):ii(t,e),!0):!(!s||"Program"!==s.type||0!==s.body.length||!t||"ModuleExpression"!==t.type)&&(ni(s,e),!0)}function zi({comment:e,enclosingNode:t}){return!(!t||"ForInStatement"!==t.type&&"ForOfStatement"!==t.type)&&(ii(t,e),!0)}function Wi({comment:e,precedingNode:t,enclosingNode:s,text:r}){return!!(t&&"ImportSpecifier"===t.type&&s&&"ImportDeclaration"===s.type&&ei(r,Fi(e)))&&(ai(t,e),!0)}function Gi({comment:e,enclosingNode:t}){return!(!t||"AssignmentPattern"!==t.type)&&(ii(t,e),!0)}function Ki({comment:e,enclosingNode:t}){return!(!t||"TypeAlias"!==t.type)&&(ii(t,e),!0)}function Xi({comment:e,enclosingNode:t,followingNode:s}){return!(!t||"VariableDeclarator"!==t.type&&"AssignmentExpression"!==t.type||!s||"ObjectExpression"!==s.type&&"ArrayExpression"!==s.type&&"TemplateLiteral"!==s.type&&"TaggedTemplateExpression"!==s.type&&!hi(e))&&(ii(s,e),!0)}function Ji({comment:e,enclosingNode:t,followingNode:s,text:r}){return!(s||!t||"TSMethodSignature"!==t.type&&"TSDeclareFunction"!==t.type&&"TSAbstractMethodDefinition"!==t.type||";"!==si(r,e,Fi))&&(ai(t,e),!0)}function Yi({comment:e,enclosingNode:t,followingNode:s}){if(pi(e)&&t&&"TSMappedType"===t.type&&s&&"TSTypeParameter"===s.type&&s.constraint)return t.prettierIgnore=!0,e.unignore=!0,!0}function Qi({comment:e,precedingNode:t,enclosingNode:s,followingNode:r}){return!(!s||"TSMappedType"!==s.type)&&(r&&"TSTypeParameter"===r.type&&r.name?(ii(r.name,e),!0):!(!t||"TSTypeParameter"!==t.type||!t.constraint)&&(ai(t.constraint,e),!0))}function Zi(e){return"ArrowFunctionExpression"===e.type||"FunctionExpression"===e.type||"FunctionDeclaration"===e.type||"ObjectMethod"===e.type||"ClassMethod"===e.type||"TSDeclareFunction"===e.type||"TSCallSignatureDeclaration"===e.type||"TSConstructSignatureDeclaration"===e.type||"TSMethodSignature"===e.type||"TSConstructorType"===e.type||"TSFunctionType"===e.type||"TSDeclareMethod"===e.type}function ea(e){return hi(e)&&"*"===e.value[0]&&/@type\b/.test(e.value)}var ta={handleOwnLineComment:function(e){return[Yi,Ri,Bi,Ti,wi,Si,vi,ji,zi,$i,Hi,Wi,Gi,ki,_i].some((t=>t(e)))},handleEndOfLineComment:function(e){return[Pi,Ri,Ni,ji,Ti,wi,Si,vi,_i,qi,Vi,Hi,Ki,Xi].some((t=>t(e)))},handleRemainingComment:function(e){return[Yi,Ti,wi,Ii,Mi,ki,Hi,Oi,Li,Qi,Ui,Ji].some((t=>t(e)))},isTypeCastComment:ea,getCommentChildNodes:function(e,t){if(("typescript"===t.parser||"flow"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser)&&"MethodDefinition"===e.type&&e.value&&"FunctionExpression"===e.value.type&&0===ci(e.value).length&&!e.value.returnType&&!ui(e.value.typeParameters)&&e.value.body)return[...e.decorators||[],e.key,e.value.body]},willPrintOwnComments:function(e){const t=e.getValue(),s=e.getParentNode();return(t&&(li(t)||di(t)||Ai(s)&&(Di(t.leadingComments)||Di(t.trailingComments)))||s&&("JSXSpreadAttribute"===s.type||"JSXSpreadChild"===s.type||"UnionTypeAnnotation"===s.type||"TSUnionType"===s.type||("ClassDeclaration"===s.type||"ClassExpression"===s.type)&&s.superClass===t))&&(!mi(e)||"UnionTypeAnnotation"===s.type||"TSUnionType"===s.type)}};const{getLast:sa,getNextNonSpaceNonCommentCharacter:ra}=Js,{locStart:ia,locEnd:aa}=sr,{isTypeCastComment:na}=ta;function oa(e){return"CallExpression"===e.type?(e.type="OptionalCallExpression",e.callee=oa(e.callee)):"MemberExpression"===e.type?(e.type="OptionalMemberExpression",e.object=oa(e.object)):"TSNonNullExpression"===e.type&&(e.expression=oa(e.expression)),e}function ua(e,t){let s;if(Array.isArray(e))s=e.entries();else{if(!e||"object"!=typeof e||"string"!=typeof e.type)return e;s=Object.entries(e)}for(const[r,i]of s)e[r]=ua(i,t);return Array.isArray(e)?e:t(e)||e}function ha(e){return"LogicalExpression"===e.type&&"LogicalExpression"===e.right.type&&e.operator===e.right.operator}function ca(e){return ha(e)?ca({type:"LogicalExpression",operator:e.operator,left:ca({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[ia(e.left),aa(e.right.left)]}),right:e.right.right,range:[ia(e),aa(e)]}):e}var pa,la=function(e,t){if("typescript"===t.parser&&t.originalText.includes("@")){const{esTreeNodeToTSNodeMap:s,tsNodeToESTreeNodeMap:r}=t.tsParseResult;e=ua(e,(e=>{const t=s.get(e);if(!t)return;const i=t.decorators;if(!Array.isArray(i))return;const a=r.get(t);if(a!==e)return;const n=a.decorators;if(!Array.isArray(n)||n.length!==i.length||i.some((e=>{const t=r.get(e);return!t||!n.includes(t)}))){const{start:e,end:t}=a.loc;throw Ys("Leading decorators must be attached to a class declaration",{start:{line:e.line,column:e.column+1},end:{line:t.line,column:t.column+1}})}}))}if("typescript"!==t.parser&&"flow"!==t.parser&&"espree"!==t.parser&&"meriyah"!==t.parser){const t=new Set;e=ua(e,(e=>{e.leadingComments&&e.leadingComments.some(na)&&t.add(ia(e))})),e=ua(e,(e=>{if("ParenthesizedExpression"===e.type){const{expression:s}=e;if("TypeCastExpression"===s.type)return s.range=e.range,s;const r=ia(e);if(!t.has(r))return s.extra=Object.assign(Object.assign({},s.extra),{},{parenthesized:!0}),s}}))}return e=ua(e,(e=>{switch(e.type){case"ChainExpression":return oa(e.expression);case"LogicalExpression":if(ha(e))return ca(e);break;case"VariableDeclaration":{const s=sa(e.declarations);s&&s.init&&function(e,s){if(";"===t.originalText[aa(s)])return;e.range=[ia(e),aa(s)]}(e,s);break}case"TSParenthesizedType":return e.typeAnnotation.range=[ia(e),aa(e)],e.typeAnnotation;case"TSTypeParameter":if("string"==typeof e.name){const t=ia(e);e.name={type:"Identifier",name:e.name,range:[t,t+e.name.length]}}break;case"SequenceExpression":{const t=sa(e.expressions);e.range=[ia(e),Math.min(aa(t),aa(e))];break}case"ClassProperty":e.key&&"TSPrivateIdentifier"===e.key.type&&"?"===ra(t.originalText,e.key,aa)&&(e.optional=!0)}}))};function da(){if(void 0===pa){var e=new ArrayBuffer(2),t=new Uint8Array(e),s=new Uint16Array(e);if(t[0]=1,t[1]=2,258===s[0])pa="BE";else{if(513!==s[0])throw new Error("unable to figure out endianess");pa="LE"}}return pa}function Da(){return void 0!==Lt.location?Lt.location.hostname:""}function ma(){return[]}function fa(){return 0}function ya(){return Number.MAX_VALUE}function Aa(){return Number.MAX_VALUE}function Ea(){return[]}function Ca(){return"Browser"}function xa(){return void 0!==Lt.navigator?Lt.navigator.appVersion:""}function Fa(){}function ga(){}function ba(){return"javascript"}function Pa(){return"browser"}function Ta(){return"/tmp"}var wa=Ta,Sa={EOL:"\n",arch:ba,platform:Pa,tmpdir:wa,tmpDir:Ta,networkInterfaces:Fa,getNetworkInterfaces:ga,release:xa,type:Ca,cpus:Ea,totalmem:Aa,freemem:ya,uptime:fa,loadavg:ma,hostname:Da,endianness:da},Ba=Object.freeze({__proto__:null,endianness:da,hostname:Da,loadavg:ma,uptime:fa,freemem:ya,totalmem:Aa,cpus:Ea,type:Ca,release:xa,networkInterfaces:Fa,getNetworkInterfaces:ga,arch:ba,platform:Pa,tmpDir:Ta,tmpdir:wa,EOL:"\n",default:Sa});const Na=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");const t=e.match(/(?:\r?\n)/g)||[];if(0===t.length)return;const s=t.filter((e=>"\r\n"===e)).length;return s>t.length-s?"\r\n":"\n"};var Ia=Na;Ia.graceful=e=>"string"==typeof e&&Na(e)||"\n";var va=t(Ba),ka=function(e){const t=e.match($a);return t?t[0].trimLeft():""},La=function(e){const t=e.match($a);return t&&t[0]?e.substring(t[0].length):e},Oa=function(e){return Xa(e).pragmas},Ma=Xa,Ra=function({comments:e="",pragmas:t={}}){const s=(0,_a().default)(e)||ja().EOL,r=" *",i=Object.keys(t),a=i.map((e=>Ja(e,t[e]))).reduce(((e,t)=>e.concat(t)),[]).map((e=>" * "+e+s)).join("");if(!e){if(0===i.length)return"";if(1===i.length&&!Array.isArray(t[i[0]])){const e=t[i[0]];return`/** ${Ja(i[0],e)[0]} */`}}const n=e.split(s).map((e=>` * ${e}`)).join(s)+s;return"/**"+s+(e?n:"")+(e&&i.length?r+s:"")+a+" */"};function ja(){const e=va;return ja=function(){return e},e}function _a(){const e=(t=Ia)&&t.__esModule?t:{default:t};var t;return _a=function(){return e},e}const Ua=/\*\/$/,qa=/^\/\*\*/,$a=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Va=/(^|\s+)\/\/([^\r\n]*)/g,Ha=/^(\r?\n)+/,za=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Wa=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,Ga=/(\r?\n|^) *\* ?/g,Ka=[];function Xa(e){const t=(0,_a().default)(e)||ja().EOL;e=e.replace(qa,"").replace(Ua,"").replace(Ga,"$1");let s="";for(;s!==e;)s=e,e=e.replace(za,`${t}$1 $2${t}`);e=e.replace(Ha,"").trimRight();const r=Object.create(null),i=e.replace(Wa,"").replace(Ha,"").trimRight();let a;for(;a=Wa.exec(e);){const e=a[2].replace(Va,"");"string"==typeof r[a[1]]||Array.isArray(r[a[1]])?r[a[1]]=Ka.concat(r[a[1]],e):r[a[1]]=e}return{comments:i,pragmas:r}}function Ja(e,t){return Ka.concat(t).map((t=>`@${e} ${t}`.trim()))}var Ya=Object.defineProperty({extract:ka,strip:La,parse:Oa,parseWithComments:Ma,print:Ra},"__esModule",{value:!0});var Qa={guessEndOfLine:function(e){const t=e.indexOf("\r");return t>=0?"\n"===e.charAt(t+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(e,t){let s;if("\n"===t)s=/\n/g;else if("\r"===t)s=/\r/g;else{if("\r\n"!==t)throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);s=/\r\n/g}const r=e.match(s);return r?r.length:0},normalizeEndOfLine:function(e){return e.replace(/\r\n?/g,"\n")}};const{parseWithComments:Za,strip:en,extract:tn,print:sn}=Ya,{getShebang:rn}=Js,{normalizeEndOfLine:an}=Qa;function nn(e){const t=rn(e);t&&(e=e.slice(t.length+1));const s=tn(e),{pragmas:r,comments:i}=Za(s);return{shebang:t,text:e,pragmas:r,comments:i}}var on={hasPragma:function(e){const t=Object.keys(nn(e).pragmas);return t.includes("prettier")||t.includes("format")},insertPragma:function(e){const{shebang:t,text:s,pragmas:r,comments:i}=nn(e),a=en(s),n=sn({pragmas:Object.assign({format:""},r),comments:i.trimStart()});return(t?`${t}\n`:"")+an(n)+(a.startsWith("\n")?"\n":"\n\n")+a}};const{hasPragma:un}=on,{locStart:hn,locEnd:cn}=sr;var pn=function(e){return e="function"==typeof e?{parse:e}:e,Object.assign({astFormat:"estree",hasPragma:un,locStart:hn,locEnd:cn},e)};var ln=function(e){const{message:t,loc:s}=e;return Ys(t.replace(/ \(.*\)/,""),{start:{line:s?s.line:0,column:s?s.column+1:0}})};class dn{constructor(e,t={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.updateContext=void 0,this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.rightAssociative=!!t.rightAssociative,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=null!=t.binop?t.binop:null,this.updateContext=null}}const Dn=new Map;function mn(e,t={}){t.keyword=e;const s=new dn(e,t);return Dn.set(e,s),s}function fn(e,t){return new dn(e,{beforeExpr:true,binop:t})}const yn={num:new dn("num",{startsExpr:true}),bigint:new dn("bigint",{startsExpr:true}),decimal:new dn("decimal",{startsExpr:true}),regexp:new dn("regexp",{startsExpr:true}),string:new dn("string",{startsExpr:true}),name:new dn("name",{startsExpr:true}),privateName:new dn("#name",{startsExpr:true}),eof:new dn("eof"),bracketL:new dn("[",{beforeExpr:true,startsExpr:true}),bracketHashL:new dn("#[",{beforeExpr:true,startsExpr:true}),bracketBarL:new dn("[|",{beforeExpr:true,startsExpr:true}),bracketR:new dn("]"),bracketBarR:new dn("|]"),braceL:new dn("{",{beforeExpr:true,startsExpr:true}),braceBarL:new dn("{|",{beforeExpr:true,startsExpr:true}),braceHashL:new dn("#{",{beforeExpr:true,startsExpr:true}),braceR:new dn("}",{beforeExpr:true}),braceBarR:new dn("|}"),parenL:new dn("(",{beforeExpr:true,startsExpr:true}),parenR:new dn(")"),comma:new dn(",",{beforeExpr:true}),semi:new dn(";",{beforeExpr:true}),colon:new dn(":",{beforeExpr:true}),doubleColon:new dn("::",{beforeExpr:true}),dot:new dn("."),question:new dn("?",{beforeExpr:true}),questionDot:new dn("?."),arrow:new dn("=>",{beforeExpr:true}),template:new dn("template"),ellipsis:new dn("...",{beforeExpr:true}),backQuote:new dn("`",{startsExpr:true}),dollarBraceL:new dn("${",{beforeExpr:true,startsExpr:true}),at:new dn("@"),hash:new dn("#",{startsExpr:true}),interpreterDirective:new dn("#!..."),eq:new dn("=",{beforeExpr:true,isAssign:true}),assign:new dn("_=",{beforeExpr:true,isAssign:true}),slashAssign:new dn("_=",{beforeExpr:true,isAssign:true}),incDec:new dn("++/--",{prefix:true,postfix:!0,startsExpr:true}),bang:new dn("!",{beforeExpr:true,prefix:true,startsExpr:true}),tilde:new dn("~",{beforeExpr:true,prefix:true,startsExpr:true}),pipeline:fn("|>",0),nullishCoalescing:fn("??",1),logicalOR:fn("||",1),logicalAND:fn("&&",2),bitwiseOR:fn("|",3),bitwiseXOR:fn("^",4),bitwiseAND:fn("&",5),equality:fn("==/!=/===/!==",6),relational:fn("/<=/>=",7),bitShift:fn("<>/>>>",8),plusMin:new dn("+/-",{beforeExpr:true,binop:9,prefix:true,startsExpr:true}),modulo:new dn("%",{beforeExpr:true,binop:10,startsExpr:true}),star:new dn("*",{binop:10}),slash:fn("/",10),exponent:new dn("**",{beforeExpr:true,binop:11,rightAssociative:!0}),_break:mn("break"),_case:mn("case",{beforeExpr:true}),_catch:mn("catch"),_continue:mn("continue"),_debugger:mn("debugger"),_default:mn("default",{beforeExpr:true}),_do:mn("do",{isLoop:true,beforeExpr:true}),_else:mn("else",{beforeExpr:true}),_finally:mn("finally"),_for:mn("for",{isLoop:true}),_function:mn("function",{startsExpr:true}),_if:mn("if"),_return:mn("return",{beforeExpr:true}),_switch:mn("switch"),_throw:mn("throw",{beforeExpr:true,prefix:true,startsExpr:true}),_try:mn("try"),_var:mn("var"),_const:mn("const"),_while:mn("while",{isLoop:true}),_with:mn("with"),_new:mn("new",{beforeExpr:true,startsExpr:true}),_this:mn("this",{startsExpr:true}),_super:mn("super",{startsExpr:true}),_class:mn("class",{startsExpr:true}),_extends:mn("extends",{beforeExpr:true}),_export:mn("export"),_import:mn("import",{startsExpr:true}),_null:mn("null",{startsExpr:true}),_true:mn("true",{startsExpr:true}),_false:mn("false",{startsExpr:true}),_in:mn("in",{beforeExpr:true,binop:7}),_instanceof:mn("instanceof",{beforeExpr:true,binop:7}),_typeof:mn("typeof",{beforeExpr:true,prefix:true,startsExpr:true}),_void:mn("void",{beforeExpr:true,prefix:true,startsExpr:true}),_delete:mn("delete",{beforeExpr:true,prefix:true,startsExpr:true})},An=/\r\n?|[\n\u2028\u2029]/,En=new RegExp(An.source,"g");function Cn(e){switch(e){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}const xn=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;function Fn(e){switch(e){case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}class gn{constructor(e,t){this.line=void 0,this.column=void 0,this.line=e,this.column=t}}class bn{constructor(e,t){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=e,this.end=t}}function Pn(e){return e[e.length-1]}const Tn=Object.freeze({SyntaxError:"BABEL_PARSER_SYNTAX_ERROR",SourceTypeModuleError:"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"}),wn=Bn({AccessorIsGenerator:"A %0ter cannot be a generator.",ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accesor must not have any formal parameters.",BadSetterArity:"A 'set' accesor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accesor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:"'%0' require an initialization value.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:"`%0` has already been exported. Exported identifiers must be unique.",DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:"A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '%0' as '%1' } from 'some-module'`?",ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:"'%0' loop variable declaration may not have an initializer.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:"Unsyntactic %0.",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportBindingIsString:'A string literal cannot be used as an imported binding.\n- Did you mean `import { "%0" as foo }`?',ImportCallArgumentTrailingComma:"Trailing comma is disallowed inside import(...) arguments.",ImportCallArity:"`import()` requires exactly %0.",ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidDecimal:"Invalid decimal.",InvalidDigit:"Expected number in radix %0.",InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:"Escape sequence in keyword %0.",InvalidIdentifier:"Invalid identifier %0.",InvalidLhs:"Invalid left-hand side in %0.",InvalidLhsBinding:"Binding invalid left-hand side in %0.",InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:"Unexpected character '%0'.",InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:"Private name #%0 is not defined.",InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:"Label '%0' is already declared.",LetInLexicalBinding:"'let' is not allowed to be used as a name in 'let' or 'const' declarations.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:'Duplicate key "%0" is not allowed in module attributes.',ModuleExportNameHasLoneSurrogate:"An export name cannot include a lone surrogate, found '\\u%0'.",ModuleExportUndefined:"Export '%0' is not defined.",MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.",PrivateInExpectedIn:"Private names are only allowed in property accesses (`obj.#%0`) or in `in` expressions (`#%0 in obj`).",PrivateNameRedeclaration:"Duplicate private name #%0.",RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",StaticPrototype:"Classes may not have static property named prototype.",StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:"Assigning to '%0' in strict mode.",StrictEvalArgumentsBinding:"Binding '%0' in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:"Unexpected keyword '%0'.",UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\n or a property of member expression (i.e. this.#p).",UnexpectedReservedWord:"Unexpected reserved word '%0'.",UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:"Unexpected token '%0'.",UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:"The only valid meta property for %0 is %0.%1.",UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",VarRedeclaration:"Identifier '%0' has already been declared.",YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},Tn.SyntaxError),Sn=Bn({ImportMetaOutsideModule:"import.meta may appear only with 'sourceType: \"module\"'",ImportOutsideModule:"'import' and 'export' may appear only with 'sourceType: \"module\"'"},Tn.SourceTypeModuleError);function Bn(e,t){const s={};return Object.keys(e).forEach((r=>{s[r]=Object.freeze({code:t,reasonCode:r,template:e[r]})})),Object.freeze(s)}class Nn{constructor(e,t){this.token=void 0,this.preserveSpace=void 0,this.token=e,this.preserveSpace=!!t}}const In={brace:new Nn("{"),templateQuasi:new Nn("${"),template:new Nn("`",!0)};yn.braceR.updateContext=e=>{e.length>1&&e.pop()},yn.braceL.updateContext=yn.braceHashL.updateContext=e=>{e.push(In.brace)},yn.dollarBraceL.updateContext=e=>{e.push(In.templateQuasi)},yn.backQuote.updateContext=e=>{e[e.length-1]===In.template?e.pop():e.push(In.template)};let vn="\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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",kn="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";const Ln=new RegExp("["+vn+"]"),On=new RegExp("["+vn+kn+"]");vn=kn=null;const Mn=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],Rn=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function jn(e,t){let s=65536;for(let r=0,i=t.length;re)return!1;if(s+=t[r+1],s>=e)return!0}return!1}function _n(e){return e<65?36===e:e<=90||(e<97?95===e:e<=122||(e<=65535?e>=170&&Ln.test(String.fromCharCode(e)):jn(e,Mn)))}function Un(e){return e<48?36===e:e<58||!(e<65)&&(e<=90||(e<97?95===e:e<=122||(e<=65535?e>=170&&On.test(String.fromCharCode(e)):jn(e,Mn)||jn(e,Rn))))}const qn=["implements","interface","let","package","private","protected","public","static","yield"],$n=["eval","arguments"],Vn=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"]),Hn=new Set(qn),zn=new Set($n);function Wn(e,t){return t&&"await"===e||"enum"===e}function Gn(e,t){return Wn(e,t)||Hn.has(e)}function Kn(e){return zn.has(e)}function Xn(e,t){return Gn(e,t)||Kn(e)}function Jn(e){return Vn.has(e)}const Yn=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);class Qn{constructor(e){this.var=new Set,this.lexical=new Set,this.functions=new Set,this.flags=e}}class Zn{constructor(e,t){this.scopeStack=[],this.undefinedExports=new Map,this.undefinedPrivateNames=new Map,this.raise=e,this.inModule=t}get inFunction(){return(2&this.currentVarScopeFlags())>0}get allowSuper(){return(16&this.currentThisScopeFlags())>0}get allowDirectSuper(){return(32&this.currentThisScopeFlags())>0}get inClass(){return(64&this.currentThisScopeFlags())>0}get inClassAndNotInNonArrowFunction(){const e=this.currentThisScopeFlags();return(64&e)>0&&0==(2&e)}get inStaticBlock(){return(128&this.currentThisScopeFlags())>0}get inNonArrowFunction(){return(2&this.currentThisScopeFlags())>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(e){return new Qn(e)}enter(e){this.scopeStack.push(this.createScope(e))}exit(){this.scopeStack.pop()}treatFunctionsAsVarInScope(e){return!!(2&e.flags||!this.inModule&&1&e.flags)}declareName(e,t,s){let r=this.currentScope();if(8&t||16&t)this.checkRedeclarationInScope(r,e,t,s),16&t?r.functions.add(e):r.lexical.add(e),8&t&&this.maybeExportDefined(r,e);else if(4&t)for(let i=this.scopeStack.length-1;i>=0&&(r=this.scopeStack[i],this.checkRedeclarationInScope(r,e,t,s),r.var.add(e),this.maybeExportDefined(r,e),!(259&r.flags));--i);this.inModule&&1&r.flags&&this.undefinedExports.delete(e)}maybeExportDefined(e,t){this.inModule&&1&e.flags&&this.undefinedExports.delete(t)}checkRedeclarationInScope(e,t,s,r){this.isRedeclaredInScope(e,t,s)&&this.raise(r,wn.VarRedeclaration,t)}isRedeclaredInScope(e,t,s){return!!(1&s)&&(8&s?e.lexical.has(t)||e.functions.has(t)||e.var.has(t):16&s?e.lexical.has(t)||!this.treatFunctionsAsVarInScope(e)&&e.var.has(t):e.lexical.has(t)&&!(8&e.flags&&e.lexical.values().next().value===t)||!this.treatFunctionsAsVarInScope(e)&&e.functions.has(t))}checkLocalExport(e){const{name:t}=e,s=this.scopeStack[0];s.lexical.has(t)||s.var.has(t)||s.functions.has(t)||this.undefinedExports.set(t,e.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let e=this.scopeStack.length-1;;e--){const{flags:t}=this.scopeStack[e];if(259&t)return t}}currentThisScopeFlags(){for(let e=this.scopeStack.length-1;;e--){const{flags:t}=this.scopeStack[e];if(323&t&&!(4&t))return t}}}class eo extends Qn{constructor(...e){super(...e),this.declareFunctions=new Set}}class to extends Zn{createScope(e){return new eo(e)}declareName(e,t,s){const r=this.currentScope();if(2048&t)return this.checkRedeclarationInScope(r,e,t,s),this.maybeExportDefined(r,e),void r.declareFunctions.add(e);super.declareName(...arguments)}isRedeclaredInScope(e,t,s){return!!super.isRedeclaredInScope(...arguments)||!!(2048&s)&&(!e.declareFunctions.has(t)&&(e.lexical.has(t)||e.functions.has(t)))}checkLocalExport(e){this.scopeStack[0].declareFunctions.has(e.name)||super.checkLocalExport(e)}}const so=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),ro=Bn({AmbiguousConditionalArrow:"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",AmbiguousDeclareModuleKind:"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",AssignReservedType:"Cannot overwrite reserved type %0.",DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.",EnumDuplicateMemberName:"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.",EnumInconsistentMemberValues:"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.",EnumInvalidExplicitType:"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.",EnumInvalidExplicitTypeUnknownSupplied:"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.",EnumInvalidMemberInitializerPrimaryType:"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.",EnumInvalidMemberInitializerSymbolType:"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.",EnumInvalidMemberInitializerUnknownType:"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.",EnumInvalidMemberName:"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.",EnumNumberMemberNotInitialized:"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.",EnumStringMemberInconsistentlyInitailized:"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.",GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",OptionalBindingPattern:"A binding pattern parameter cannot be optional in an implementation signature.",SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:"Unexpected reserved type %0.",UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.",UnsupportedDeclareExportKind:"`declare export %0` is not supported. Use `%1` instead.",UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."},Tn.SyntaxError);function io(e){return"type"===e.importKind||"typeof"===e.importKind}function ao(e){return(e.type===yn.name||!!e.type.keyword)&&"from"!==e.value}const no={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};const oo=/\*?\s*@((?:no)?flow)\b/;const uo={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"};class ho{constructor(){this.strict=void 0,this.curLine=void 0,this.startLoc=void 0,this.endLoc=void 0,this.errors=[],this.potentialArrowAt=-1,this.noArrowAt=[],this.noArrowParamsConversionAt=[],this.maybeInArrowParameters=!1,this.inPipeline=!1,this.inType=!1,this.noAnonFunctionType=!1,this.inPropertyName=!1,this.hasFlowComment=!1,this.isAmbientContext=!1,this.inAbstractClass=!1,this.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null},this.soloAwait=!1,this.inFSharpPipelineDirectBody=!1,this.labels=[],this.decoratorStack=[[]],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.commentPreviousNode=null,this.pos=0,this.lineStart=0,this.type=yn.eof,this.value=null,this.start=0,this.end=0,this.lastTokEndLoc=null,this.lastTokStartLoc=null,this.lastTokStart=0,this.lastTokEnd=0,this.context=[In.brace],this.exprAllowed=!0,this.containsEsc=!1,this.strictErrors=new Map,this.tokensLength=0}init(e){this.strict=!1!==e.strictMode&&"module"===e.sourceType,this.curLine=e.startLine,this.startLoc=this.endLoc=this.curPosition()}curPosition(){return new gn(this.curLine,this.pos-this.lineStart)}clone(e){const t=new ho,s=Object.keys(this);for(let r=0,i=s.length;r.",MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?"},Tn.SyntaxError);function Do(e){return!!e&&("JSXOpeningFragment"===e.type||"JSXClosingFragment"===e.type)}function mo(e){if("JSXIdentifier"===e.type)return e.name;if("JSXNamespacedName"===e.type)return e.namespace.name+":"+e.name.name;if("JSXMemberExpression"===e.type)return mo(e.object)+"."+mo(e.property);throw new Error("Node had unexpected type: "+e.type)}In.j_oTag=new Nn("...",!0),yn.jsxName=new dn("jsxName"),yn.jsxText=new dn("jsxText",{beforeExpr:!0}),yn.jsxTagStart=new dn("jsxTagStart",{startsExpr:!0}),yn.jsxTagEnd=new dn("jsxTagEnd"),yn.jsxTagStart.updateContext=e=>{e.push(In.j_expr),e.push(In.j_oTag)};class fo extends Qn{constructor(...e){super(...e),this.types=new Set,this.enums=new Set,this.constEnums=new Set,this.classes=new Set,this.exportOnlyBindings=new Set}}class yo extends Zn{createScope(e){return new fo(e)}declareName(e,t,s){const r=this.currentScope();if(1024&t)return this.maybeExportDefined(r,e),void r.exportOnlyBindings.add(e);super.declareName(...arguments),2&t&&(1&t||(this.checkRedeclarationInScope(r,e,t,s),this.maybeExportDefined(r,e)),r.types.add(e)),256&t&&r.enums.add(e),512&t&&r.constEnums.add(e),128&t&&r.classes.add(e)}isRedeclaredInScope(e,t,s){if(e.enums.has(t)){if(256&s){return!!(512&s)!==e.constEnums.has(t)}return!0}return 128&s&&e.classes.has(t)?!!e.lexical.has(t)&&!!(1&s):!!(2&s&&e.types.has(t))||super.isRedeclaredInScope(...arguments)}checkLocalExport(e){const t=this.scopeStack[0],{name:s}=e;t.types.has(s)||t.exportOnlyBindings.has(s)||super.checkLocalExport(e)}}class Ao{constructor(){this.stacks=[]}enter(e){this.stacks.push(e)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(2&this.currentFlags())>0}get hasYield(){return(1&this.currentFlags())>0}get hasReturn(){return(4&this.currentFlags())>0}get hasIn(){return(8&this.currentFlags())>0}}function Eo(e,t){return(e?2:0)|(t?1:0)}function Co(e){if(null==e)throw new Error(`Unexpected ${e} value.`);return e}function xo(e){if(!e)throw new Error("Assert fail")}const Fo=Bn({AbstractMethodHasImplementation:"Method '%0' cannot have an implementation because it is marked abstract.",AccesorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccesorCannotHaveTypeParameters:"An accessor cannot have type parameters.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:"'declare' is not allowed in %0ters.",DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:"Accessibility modifier already seen.",DuplicateModifier:"Duplicate modifier: '%0'.",EmptyHeritageClauseType:"'%0' list cannot be empty.",EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",IncompatibleModifiers:"'%0' modifier cannot be used with '%1' modifier.",IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:"Index signatures cannot have an accessibility modifier ('%0').",IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InvalidModifierOnTypeMember:"'%0' modifier cannot appear on a type member.",InvalidModifiersOrder:"'%0' modifier must precede '%1' modifier.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MixedLabeledAndUnlabeledElements:"Tuple members must all have names or all not have names.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:"Private elements cannot have an accessibility modifier ('%0').",ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",SetAccesorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccesorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccesorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0."},Tn.SyntaxError);function go(e){return"private"===e||"public"===e||"protected"===e}yn.placeholder=new dn("%%",{startsExpr:!0});const bo=Bn({ClassNameIsRequired:"A class name is required."},Tn.SyntaxError);function Po(e,t){return e.some((e=>Array.isArray(e)?e[0]===t:e===t))}function To(e,t,s){const r=e.find((e=>Array.isArray(e)?e[0]===t:e===t));return r&&Array.isArray(r)?r[1][s]:null}const wo=["minimal","smart","fsharp"],So=["hash","bar"];const Bo={estree:e=>class extends e{parseRegExpLiteral({pattern:e,flags:t}){let s=null;try{s=new RegExp(e,t)}catch(e){}const r=this.estreeParseLiteral(s);return r.regex={pattern:e,flags:t},r}parseBigIntLiteral(e){let t;try{t=BigInt(e)}catch(e){t=null}const s=this.estreeParseLiteral(t);return s.bigint=String(s.value||e),s}parseDecimalLiteral(e){const t=this.estreeParseLiteral(null);return t.decimal=String(t.value||e),t}estreeParseLiteral(e){return this.parseLiteral(e,"Literal")}parseStringLiteral(e){return this.estreeParseLiteral(e)}parseNumericLiteral(e){return this.estreeParseLiteral(e)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(e){return this.estreeParseLiteral(e)}directiveToStmt(e){const t=e.value,s=this.startNodeAt(e.start,e.loc.start),r=this.startNodeAt(t.start,t.loc.start);return r.value=t.extra.expressionValue,r.raw=t.extra.raw,s.expression=this.finishNodeAt(r,"Literal",t.end,t.loc.end),s.directive=t.extra.raw.slice(1,-1),this.finishNodeAt(s,"ExpressionStatement",e.end,e.loc.end)}initFunction(e,t){super.initFunction(e,t),e.expression=!1}checkDeclaration(e){null!=e&&this.isObjectProperty(e)?this.checkDeclaration(e.value):super.checkDeclaration(e)}getObjectOrClassMethodParams(e){return e.value.params}isValidDirective(e){var t;return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&!(null!=(t=e.expression.extra)&&t.parenthesized)}stmtToDirective(e){const t=super.stmtToDirective(e),s=e.expression.value;return this.addExtra(t.value,"expressionValue",s),t}parseBlockBody(e,...t){super.parseBlockBody(e,...t);const s=e.directives.map((e=>this.directiveToStmt(e)));e.body=s.concat(e.body),delete e.directives}pushClassMethod(e,t,s,r,i,a){this.parseMethod(t,s,r,i,a,"ClassMethod",!0),t.typeParameters&&(t.value.typeParameters=t.typeParameters,delete t.typeParameters),e.body.push(t)}parseMaybePrivateName(...e){const t=super.parseMaybePrivateName(...e);return"PrivateName"===t.type&&this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(t):t}convertPrivateNameToPrivateIdentifier(e){const t=super.getPrivateNameSV(e);return delete(e=e).id,e.name=t,e.type="PrivateIdentifier",e}isPrivateName(e){return this.getPluginOption("estree","classFeatures")?"PrivateIdentifier"===e.type:super.isPrivateName(e)}getPrivateNameSV(e){return this.getPluginOption("estree","classFeatures")?e.name:super.getPrivateNameSV(e)}parseLiteral(e,t){const s=super.parseLiteral(e,t);return s.raw=s.extra.raw,delete s.extra,s}parseFunctionBody(e,t,s=!1){super.parseFunctionBody(e,t,s),e.expression="BlockStatement"!==e.body.type}parseMethod(e,t,s,r,i,a,n=!1){let o=this.startNode();return o.kind=e.kind,o=super.parseMethod(o,t,s,r,i,a,n),o.type="FunctionExpression",delete o.kind,e.value=o,"ClassPrivateMethod"===a&&(e.computed=!1),a="MethodDefinition",this.finishNode(e,a)}parseClassProperty(...e){const t=super.parseClassProperty(...e);return this.getPluginOption("estree","classFeatures")&&(t.type="PropertyDefinition"),t}parseClassPrivateProperty(...e){const t=super.parseClassPrivateProperty(...e);return this.getPluginOption("estree","classFeatures")&&(t.type="PropertyDefinition",t.computed=!1),t}parseObjectMethod(e,t,s,r,i){const a=super.parseObjectMethod(e,t,s,r,i);return a&&(a.type="Property","method"===a.kind&&(a.kind="init"),a.shorthand=!1),a}parseObjectProperty(e,t,s,r,i){const a=super.parseObjectProperty(e,t,s,r,i);return a&&(a.kind="init",a.type="Property"),a}toAssignable(e,t=!1){return null!=e&&this.isObjectProperty(e)?(this.toAssignable(e.value,t),e):super.toAssignable(e,t)}toAssignableObjectExpressionProp(e,...t){"get"===e.kind||"set"===e.kind?this.raise(e.key.start,wn.PatternHasAccessor):e.method?this.raise(e.key.start,wn.PatternHasMethod):super.toAssignableObjectExpressionProp(e,...t)}finishCallExpression(e,t){if(super.finishCallExpression(e,t),"Import"===e.callee.type){var s;if(e.type="ImportExpression",e.source=e.arguments[0],this.hasPlugin("importAssertions"))e.attributes=null!=(s=e.arguments[1])?s:null;delete e.arguments,delete e.callee}return e}toReferencedArguments(e){"ImportExpression"!==e.type&&super.toReferencedArguments(e)}parseExport(e){switch(super.parseExport(e),e.type){case"ExportAllDeclaration":e.exported=null;break;case"ExportNamedDeclaration":1===e.specifiers.length&&"ExportNamespaceSpecifier"===e.specifiers[0].type&&(e.type="ExportAllDeclaration",e.exported=e.specifiers[0].exported,delete e.specifiers)}return e}parseSubscript(e,t,s,r,i){const a=super.parseSubscript(e,t,s,r,i);if(i.optionalChainMember){if("OptionalMemberExpression"!==a.type&&"OptionalCallExpression"!==a.type||(a.type=a.type.substring(8)),i.stop){const e=this.startNodeAtNode(a);return e.expression=a,this.finishNode(e,"ChainExpression")}}else"MemberExpression"!==a.type&&"CallExpression"!==a.type||(a.optional=!1);return a}hasPropertyAsPrivateName(e){return"ChainExpression"===e.type&&(e=e.expression),super.hasPropertyAsPrivateName(e)}isOptionalChain(e){return"ChainExpression"===e.type}isObjectProperty(e){return"Property"===e.type&&"init"===e.kind&&!e.method}isObjectMethod(e){return e.method||"get"===e.kind||"set"===e.kind}},jsx:e=>class extends e{jsxReadToken(){let e="",t=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(this.state.start,lo.UnterminatedJsxContent);const s=this.input.charCodeAt(this.state.pos);switch(s){case 60:case 123:return this.state.pos===this.state.start?60===s&&this.state.exprAllowed?(++this.state.pos,this.finishToken(yn.jsxTagStart)):super.getTokenFromCode(s):(e+=this.input.slice(t,this.state.pos),this.finishToken(yn.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;case 62:case 125:default:Cn(s)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}}jsxReadNewLine(e){const t=this.input.charCodeAt(this.state.pos);let s;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,s=e?"\n":"\r\n"):s=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,s}jsxReadString(e){let t="",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(this.state.start,wn.UnterminatedString);const r=this.input.charCodeAt(this.state.pos);if(r===e)break;38===r?(t+=this.input.slice(s,this.state.pos),t+=this.jsxReadEntity(),s=this.state.pos):Cn(r)?(t+=this.input.slice(s,this.state.pos),t+=this.jsxReadNewLine(!1),s=this.state.pos):++this.state.pos}return t+=this.input.slice(s,this.state.pos++),this.finishToken(yn.string,t)}jsxReadEntity(){let e,t="",s=0,r=this.input[this.state.pos];const i=++this.state.pos;for(;this.state.posclass extends e{constructor(...e){super(...e),this.flowPragma=void 0}getScopeHandler(){return to}shouldParseTypes(){return this.getPluginOption("flow","all")||"flow"===this.flowPragma}shouldParseEnums(){return!!this.getPluginOption("flow","enums")}finishToken(e,t){return e!==yn.string&&e!==yn.semi&&e!==yn.interpreterDirective&&void 0===this.flowPragma&&(this.flowPragma=null),super.finishToken(e,t)}addComment(e){if(void 0===this.flowPragma){const t=oo.exec(e.value);if(t)if("flow"===t[1])this.flowPragma="flow";else{if("noflow"!==t[1])throw new Error("Unexpected flow pragma");this.flowPragma="noflow"}else;}return super.addComment(e)}flowParseTypeInitialiser(e){const t=this.state.inType;this.state.inType=!0,this.expect(e||yn.colon);const s=this.flowParseType();return this.state.inType=t,s}flowParsePredicate(){const e=this.startNode(),t=this.state.start;return this.next(),this.expectContextual("checks"),this.state.lastTokStart>t+1&&this.raise(t,ro.UnexpectedSpaceBetweenModuloChecks),this.eat(yn.parenL)?(e.value=this.parseExpression(),this.expect(yn.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){const e=this.state.inType;this.state.inType=!0,this.expect(yn.colon);let t=null,s=null;return this.match(yn.modulo)?(this.state.inType=e,s=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(yn.modulo)&&(s=this.flowParsePredicate())),[t,s]}flowParseDeclareClass(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")}flowParseDeclareFunction(e){this.next();const t=e.id=this.parseIdentifier(),s=this.startNode(),r=this.startNode();this.isRelational("<")?s.typeParameters=this.flowParseTypeParameterDeclaration():s.typeParameters=null,this.expect(yn.parenL);const i=this.flowParseFunctionTypeParams();return s.params=i.params,s.rest=i.rest,s.this=i._this,this.expect(yn.parenR),[s.returnType,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),r.typeAnnotation=this.finishNode(s,"FunctionTypeAnnotation"),t.typeAnnotation=this.finishNode(r,"TypeAnnotation"),this.resetEndLocation(t),this.semicolon(),this.scope.declareName(e.id.name,2048,e.id.start),this.finishNode(e,"DeclareFunction")}flowParseDeclare(e,t){if(this.match(yn._class))return this.flowParseDeclareClass(e);if(this.match(yn._function))return this.flowParseDeclareFunction(e);if(this.match(yn._var))return this.flowParseDeclareVariable(e);if(this.eatContextual("module"))return this.match(yn.dot)?this.flowParseDeclareModuleExports(e):(t&&this.raise(this.state.lastTokStart,ro.NestedDeclareModule),this.flowParseDeclareModule(e));if(this.isContextual("type"))return this.flowParseDeclareTypeAlias(e);if(this.isContextual("opaque"))return this.flowParseDeclareOpaqueType(e);if(this.isContextual("interface"))return this.flowParseDeclareInterface(e);if(this.match(yn._export))return this.flowParseDeclareExportDeclaration(e,t);throw this.unexpected()}flowParseDeclareVariable(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,5,e.id.start),this.semicolon(),this.finishNode(e,"DeclareVariable")}flowParseDeclareModule(e){this.scope.enter(0),this.match(yn.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();const t=e.body=this.startNode(),s=t.body=[];for(this.expect(yn.braceL);!this.match(yn.braceR);){let e=this.startNode();this.match(yn._import)?(this.next(),this.isContextual("type")||this.match(yn._typeof)||this.raise(this.state.lastTokStart,ro.InvalidNonTypeImportInDeclareModule),this.parseImport(e)):(this.expectContextual("declare",ro.UnsupportedStatementInDeclareModule),e=this.flowParseDeclare(e,!0)),s.push(e)}this.scope.exit(),this.expect(yn.braceR),this.finishNode(t,"BlockStatement");let r=null,i=!1;return s.forEach((e=>{!function(e){return"DeclareExportAllDeclaration"===e.type||"DeclareExportDeclaration"===e.type&&(!e.declaration||"TypeAlias"!==e.declaration.type&&"InterfaceDeclaration"!==e.declaration.type)}(e)?"DeclareModuleExports"===e.type&&(i&&this.raise(e.start,ro.DuplicateDeclareModuleExports),"ES"===r&&this.raise(e.start,ro.AmbiguousDeclareModuleKind),r="CommonJS",i=!0):("CommonJS"===r&&this.raise(e.start,ro.AmbiguousDeclareModuleKind),r="ES")})),e.kind=r||"CommonJS",this.finishNode(e,"DeclareModule")}flowParseDeclareExportDeclaration(e,t){if(this.expect(yn._export),this.eat(yn._default))return this.match(yn._function)||this.match(yn._class)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,"DeclareExportDeclaration");if(this.match(yn._const)||this.isLet()||(this.isContextual("type")||this.isContextual("interface"))&&!t){const e=this.state.value,t=no[e];throw this.raise(this.state.start,ro.UnsupportedDeclareExportKind,e,t)}if(this.match(yn._var)||this.match(yn._function)||this.match(yn._class)||this.isContextual("opaque"))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");if(this.match(yn.star)||this.match(yn.braceL)||this.isContextual("interface")||this.isContextual("type")||this.isContextual("opaque"))return"ExportNamedDeclaration"===(e=this.parseExport(e)).type&&(e.type="ExportDeclaration",e.default=!1,delete e.exportKind),e.type="Declare"+e.type,e;throw this.unexpected()}flowParseDeclareModuleExports(e){return this.next(),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")}flowParseDeclareTypeAlias(e){return this.next(),this.flowParseTypeAlias(e),e.type="DeclareTypeAlias",e}flowParseDeclareOpaqueType(e){return this.next(),this.flowParseOpaqueType(e,!0),e.type="DeclareOpaqueType",e}flowParseDeclareInterface(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")}flowParseInterfaceish(e,t=!1){if(e.id=this.flowParseRestrictedIdentifier(!t,!0),this.scope.declareName(e.id.name,t?17:9,e.id.start),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.implements=[],e.mixins=[],this.eat(yn._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(!t&&this.eat(yn.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(yn.comma))}if(this.isContextual("implements")){this.next();do{e.implements.push(this.flowParseInterfaceExtends())}while(this.eat(yn.comma))}e.body=this.flowParseObjectType({allowStatic:t,allowExact:!1,allowSpread:!1,allowProto:t,allowInexact:!1})}flowParseInterfaceExtends(){const e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")}flowParseInterface(e){return this.flowParseInterfaceish(e),this.finishNode(e,"InterfaceDeclaration")}checkNotUnderscore(e){"_"===e&&this.raise(this.state.start,ro.UnexpectedReservedUnderscore)}checkReservedType(e,t,s){so.has(e)&&this.raise(t,s?ro.AssignReservedType:ro.UnexpectedReservedType,e)}flowParseRestrictedIdentifier(e,t){return this.checkReservedType(this.state.value,this.state.start,t),this.parseIdentifier(e)}flowParseTypeAlias(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,9,e.id.start),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(yn.eq),this.semicolon(),this.finishNode(e,"TypeAlias")}flowParseOpaqueType(e,t){return this.expectContextual("type"),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,9,e.id.start),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(yn.colon)&&(e.supertype=this.flowParseTypeInitialiser(yn.colon)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(yn.eq)),this.semicolon(),this.finishNode(e,"OpaqueType")}flowParseTypeParameter(e=!1){const t=this.state.start,s=this.startNode(),r=this.flowParseVariance(),i=this.flowParseTypeAnnotatableIdentifier();return s.name=i.name,s.variance=r,s.bound=i.typeAnnotation,this.match(yn.eq)?(this.eat(yn.eq),s.default=this.flowParseType()):e&&this.raise(t,ro.MissingTypeParamDefault),this.finishNode(s,"TypeParameter")}flowParseTypeParameterDeclaration(){const e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(yn.jsxTagStart)?this.next():this.unexpected();let s=!1;do{const e=this.flowParseTypeParameter(s);t.params.push(e),e.default&&(s=!0),this.isRelational(">")||this.expect(yn.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")}flowParseTypeParameterInstantiation(){const e=this.startNode(),t=this.state.inType;e.params=[],this.state.inType=!0,this.expectRelational("<");const s=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(yn.comma);return this.state.noAnonFunctionType=s,this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){const e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.isRelational(">")||this.expect(yn.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")}flowParseInterfaceType(){const e=this.startNode();if(this.expectContextual("interface"),e.extends=[],this.eat(yn._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(yn.comma));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(yn.num)||this.match(yn.string)?this.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(e,t,s){return e.static=t,this.lookahead().type===yn.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(yn.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=s,this.finishNode(e,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(e,t){return e.static=t,e.id=this.flowParseObjectPropertyKey(),this.expect(yn.bracketR),this.expect(yn.bracketR),this.isRelational("<")||this.match(yn.parenL)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start))):(e.method=!1,this.eat(yn.question)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(yn.parenL),this.match(yn._this)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(yn.parenR)||this.expect(yn.comma));!this.match(yn.parenR)&&!this.match(yn.ellipsis);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(yn.parenR)||this.expect(yn.comma);return this.eat(yn.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(yn.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(e,t){const s=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(s),this.finishNode(e,"ObjectTypeCallProperty")}flowParseObjectType({allowStatic:e,allowExact:t,allowSpread:s,allowProto:r,allowInexact:i}){const a=this.state.inType;this.state.inType=!0;const n=this.startNode();let o,u;n.callProperties=[],n.properties=[],n.indexers=[],n.internalSlots=[];let h=!1;for(t&&this.match(yn.braceBarL)?(this.expect(yn.braceBarL),o=yn.braceBarR,u=!0):(this.expect(yn.braceL),o=yn.braceR,u=!1),n.exact=u;!this.match(o);){let t=!1,a=null,o=null;const c=this.startNode();if(r&&this.isContextual("proto")){const t=this.lookahead();t.type!==yn.colon&&t.type!==yn.question&&(this.next(),a=this.state.start,e=!1)}if(e&&this.isContextual("static")){const e=this.lookahead();e.type!==yn.colon&&e.type!==yn.question&&(this.next(),t=!0)}const p=this.flowParseVariance();if(this.eat(yn.bracketL))null!=a&&this.unexpected(a),this.eat(yn.bracketL)?(p&&this.unexpected(p.start),n.internalSlots.push(this.flowParseObjectTypeInternalSlot(c,t))):n.indexers.push(this.flowParseObjectTypeIndexer(c,t,p));else if(this.match(yn.parenL)||this.isRelational("<"))null!=a&&this.unexpected(a),p&&this.unexpected(p.start),n.callProperties.push(this.flowParseObjectTypeCallProperty(c,t));else{let e="init";if(this.isContextual("get")||this.isContextual("set")){const t=this.lookahead();t.type!==yn.name&&t.type!==yn.string&&t.type!==yn.num||(e=this.state.value,this.next())}const r=this.flowParseObjectTypeProperty(c,t,a,p,e,s,null!=i?i:!u);null===r?(h=!0,o=this.state.lastTokStart):n.properties.push(r)}this.flowObjectTypeSemicolon(),!o||this.match(yn.braceR)||this.match(yn.braceBarR)||this.raise(o,ro.UnexpectedExplicitInexactInObject)}this.expect(o),s&&(n.inexact=h);const c=this.finishNode(n,"ObjectTypeAnnotation");return this.state.inType=a,c}flowParseObjectTypeProperty(e,t,s,r,i,a,n){if(this.eat(yn.ellipsis)){return this.match(yn.comma)||this.match(yn.semi)||this.match(yn.braceR)||this.match(yn.braceBarR)?(a?n||this.raise(this.state.lastTokStart,ro.InexactInsideExact):this.raise(this.state.lastTokStart,ro.InexactInsideNonObject),r&&this.raise(r.start,ro.InexactVariance),null):(a||this.raise(this.state.lastTokStart,ro.UnexpectedSpreadType),null!=s&&this.unexpected(s),r&&this.raise(r.start,ro.SpreadVariance),e.argument=this.flowParseType(),this.finishNode(e,"ObjectTypeSpreadProperty"))}{e.key=this.flowParseObjectPropertyKey(),e.static=t,e.proto=null!=s,e.kind=i;let n=!1;return this.isRelational("<")||this.match(yn.parenL)?(e.method=!0,null!=s&&this.unexpected(s),r&&this.unexpected(r.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.start,e.loc.start)),"get"!==i&&"set"!==i||this.flowCheckGetterSetterParams(e),!a&&"constructor"===e.key.name&&e.value.this&&this.raise(e.value.this.start,ro.ThisParamBannedInConstructor)):("init"!==i&&this.unexpected(),e.method=!1,this.eat(yn.question)&&(n=!0),e.value=this.flowParseTypeInitialiser(),e.variance=r),e.optional=n,this.finishNode(e,"ObjectTypeProperty")}}flowCheckGetterSetterParams(e){const t="get"===e.kind?0:1,s=e.start,r=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise(e.value.this.start,"get"===e.kind?ro.GetterMayNotHaveThisParam:ro.SetterMayNotHaveThisParam),r!==t&&("get"===e.kind?this.raise(s,wn.BadGetterArity):this.raise(s,wn.BadSetterArity)),"set"===e.kind&&e.value.rest&&this.raise(s,wn.BadSetterRestParameter)}flowObjectTypeSemicolon(){this.eat(yn.semi)||this.eat(yn.comma)||this.match(yn.braceR)||this.match(yn.braceBarR)||this.unexpected()}flowParseQualifiedTypeIdentifier(e,t,s){e=e||this.state.start,t=t||this.state.startLoc;let r=s||this.flowParseRestrictedIdentifier(!0);for(;this.eat(yn.dot);){const s=this.startNodeAt(e,t);s.qualification=r,s.id=this.flowParseRestrictedIdentifier(!0),r=this.finishNode(s,"QualifiedTypeIdentifier")}return r}flowParseGenericType(e,t,s){const r=this.startNodeAt(e,t);return r.typeParameters=null,r.id=this.flowParseQualifiedTypeIdentifier(e,t,s),this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(r,"GenericTypeAnnotation")}flowParseTypeofType(){const e=this.startNode();return this.expect(yn._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")}flowParseTupleType(){const e=this.startNode();for(e.types=[],this.expect(yn.bracketL);this.state.possuper.parseFunctionBody(e,!0,s))):super.parseFunctionBody(e,!1,s)}parseFunctionBodyAndFinish(e,t,s=!1){if(this.match(yn.colon)){const t=this.startNode();[t.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),e.returnType=t.typeAnnotation?this.finishNode(t,"TypeAnnotation"):null}super.parseFunctionBodyAndFinish(e,t,s)}parseStatement(e,t){if(this.state.strict&&this.match(yn.name)&&"interface"===this.state.value){const e=this.lookahead();if(e.type===yn.name||Jn(e.value)){const e=this.startNode();return this.next(),this.flowParseInterface(e)}}else if(this.shouldParseEnums()&&this.isContextual("enum")){const e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}const s=super.parseStatement(e,t);return void 0!==this.flowPragma||this.isValidDirective(s)||(this.flowPragma=null),s}parseExpressionStatement(e,t){if("Identifier"===t.type)if("declare"===t.name){if(this.match(yn._class)||this.match(yn.name)||this.match(yn._function)||this.match(yn._var)||this.match(yn._export))return this.flowParseDeclare(e)}else if(this.match(yn.name)){if("interface"===t.name)return this.flowParseInterface(e);if("type"===t.name)return this.flowParseTypeAlias(e);if("opaque"===t.name)return this.flowParseOpaqueType(e,!1)}return super.parseExpressionStatement(e,t)}shouldParseExportDeclaration(){return this.isContextual("type")||this.isContextual("interface")||this.isContextual("opaque")||this.shouldParseEnums()&&this.isContextual("enum")||super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){return(!this.match(yn.name)||!("type"===this.state.value||"interface"===this.state.value||"opaque"===this.state.value||this.shouldParseEnums()&&"enum"===this.state.value))&&super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.shouldParseEnums()&&this.isContextual("enum")){const e=this.startNode();return this.next(),this.flowParseEnumDeclaration(e)}return super.parseExportDefaultExpression()}parseConditional(e,t,s,r){if(!this.match(yn.question))return e;if(r){const i=this.tryParse((()=>super.parseConditional(e,t,s)));return i.node?(i.error&&(this.state=i.failState),i.node):(r.start=i.error.pos||this.state.start,e)}this.expect(yn.question);const i=this.state.clone(),a=this.state.noArrowAt,n=this.startNodeAt(t,s);let{consequent:o,failed:u}=this.tryParseConditionalConsequent(),[h,c]=this.getArrowLikeExpressions(o);if(u||c.length>0){const e=[...a];if(c.length>0){this.state=i,this.state.noArrowAt=e;for(let t=0;t1&&this.raise(i.start,ro.AmbiguousConditionalArrow),u&&1===h.length&&(this.state=i,this.state.noArrowAt=e.concat(h[0].start),({consequent:o,failed:u}=this.tryParseConditionalConsequent()))}return this.getArrowLikeExpressions(o,!0),this.state.noArrowAt=a,this.expect(yn.colon),n.test=e,n.consequent=o,n.alternate=this.forwardNoArrowParamsConversionAt(n,(()=>this.parseMaybeAssign(void 0,void 0,void 0))),this.finishNode(n,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);const e=this.parseMaybeAssignAllowIn(),t=!this.match(yn.colon);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:t}}getArrowLikeExpressions(e,t){const s=[e],r=[];for(;0!==s.length;){const e=s.pop();"ArrowFunctionExpression"===e.type?(e.typeParameters||!e.returnType?this.finishArrowValidation(e):r.push(e),s.push(e.body)):"ConditionalExpression"===e.type&&(s.push(e.consequent),s.push(e.alternate))}return t?(r.forEach((e=>this.finishArrowValidation(e))),[r,[]]):function(e,t){const s=[],r=[];for(let i=0;ie.params.every((e=>this.isAssignable(e,!0)))))}finishArrowValidation(e){var t;this.toAssignableList(e.params,null==(t=e.extra)?void 0:t.trailingComma,!1),this.scope.enter(6),super.checkParams(e,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(e,t){let s;return-1!==this.state.noArrowParamsConversionAt.indexOf(e.start)?(this.state.noArrowParamsConversionAt.push(this.state.start),s=t(),this.state.noArrowParamsConversionAt.pop()):s=t(),s}parseParenItem(e,t,s){if(e=super.parseParenItem(e,t,s),this.eat(yn.question)&&(e.optional=!0,this.resetEndLocation(e)),this.match(yn.colon)){const r=this.startNodeAt(t,s);return r.expression=e,r.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(r,"TypeCastExpression")}return e}assertModuleNodeAllowed(e){"ImportDeclaration"===e.type&&("type"===e.importKind||"typeof"===e.importKind)||"ExportNamedDeclaration"===e.type&&"type"===e.exportKind||"ExportAllDeclaration"===e.type&&"type"===e.exportKind||super.assertModuleNodeAllowed(e)}parseExport(e){const t=super.parseExport(e);return"ExportNamedDeclaration"!==t.type&&"ExportAllDeclaration"!==t.type||(t.exportKind=t.exportKind||"value"),t}parseExportDeclaration(e){if(this.isContextual("type")){e.exportKind="type";const t=this.startNode();return this.next(),this.match(yn.braceL)?(e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e),null):this.flowParseTypeAlias(t)}if(this.isContextual("opaque")){e.exportKind="type";const t=this.startNode();return this.next(),this.flowParseOpaqueType(t,!1)}if(this.isContextual("interface")){e.exportKind="type";const t=this.startNode();return this.next(),this.flowParseInterface(t)}if(this.shouldParseEnums()&&this.isContextual("enum")){e.exportKind="value";const t=this.startNode();return this.next(),this.flowParseEnumDeclaration(t)}return super.parseExportDeclaration(e)}eatExportStar(e){return!!super.eatExportStar(...arguments)||!(!this.isContextual("type")||this.lookahead().type!==yn.star)&&(e.exportKind="type",this.next(),this.next(),!0)}maybeParseExportNamespaceSpecifier(e){const t=this.state.start,s=super.maybeParseExportNamespaceSpecifier(e);return s&&"type"===e.exportKind&&this.unexpected(t),s}parseClassId(e,t,s){super.parseClassId(e,t,s),this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(e,t,s){const r=this.state.start;if(this.isContextual("declare")){if(this.parseClassMemberFromModifier(e,t))return;t.declare=!0}super.parseClassMember(e,t,s),t.declare&&("ClassProperty"!==t.type&&"ClassPrivateProperty"!==t.type&&"PropertyDefinition"!==t.type?this.raise(r,ro.DeclareClassElement):t.value&&this.raise(t.value.start,ro.DeclareClassFieldInitializer))}isIterator(e){return"iterator"===e||"asyncIterator"===e}readIterator(){const e=super.readWord1(),t="@@"+e;this.isIterator(e)&&this.state.inType||this.raise(this.state.pos,wn.InvalidIdentifier,t),this.finishToken(yn.name,t)}getTokenFromCode(e){const t=this.input.charCodeAt(this.state.pos+1);return 123===e&&124===t?this.finishOp(yn.braceBarL,2):!this.state.inType||62!==e&&60!==e?this.state.inType&&63===e?46===t?this.finishOp(yn.questionDot,2):this.finishOp(yn.question,1):function(e,t){return 64===e&&64===t}(e,t)?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(e):this.finishOp(yn.relational,1)}isAssignable(e,t){switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":return!0;case"ObjectExpression":{const t=e.properties.length-1;return e.properties.every(((e,s)=>"ObjectMethod"!==e.type&&(s===t||"SpreadElement"===e.type)&&this.isAssignable(e)))}case"ObjectProperty":return this.isAssignable(e.value);case"SpreadElement":return this.isAssignable(e.argument);case"ArrayExpression":return e.elements.every((e=>this.isAssignable(e)));case"AssignmentExpression":return"="===e.operator;case"ParenthesizedExpression":case"TypeCastExpression":return this.isAssignable(e.expression);case"MemberExpression":case"OptionalMemberExpression":return!t;default:return!1}}toAssignable(e,t=!1){return"TypeCastExpression"===e.type?super.toAssignable(this.typeCastToParameter(e),t):super.toAssignable(e,t)}toAssignableList(e,t,s){for(let t=0;t1)&&t||this.raise(i.typeAnnotation.start,ro.TypeCastInPattern)}return e}parseArrayLike(e,t,s,r){const i=super.parseArrayLike(e,t,s,r);return t&&!this.state.maybeInArrowParameters&&this.toReferencedList(i.elements),i}checkLVal(e,...t){if("TypeCastExpression"!==e.type)return super.checkLVal(e,...t)}parseClassProperty(e){return this.match(yn.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(e)}parseClassPrivateProperty(e){return this.match(yn.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(e)}isClassMethod(){return this.isRelational("<")||super.isClassMethod()}isClassProperty(){return this.match(yn.colon)||super.isClassProperty()}isNonstaticConstructor(e){return!this.match(yn.colon)&&super.isNonstaticConstructor(e)}pushClassMethod(e,t,s,r,i,a){if(t.variance&&this.unexpected(t.variance.start),delete t.variance,this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(e,t,s,r,i,a),t.params&&i){const e=t.params;e.length>0&&this.isThisParam(e[0])&&this.raise(t.start,ro.ThisParamBannedInConstructor)}else if("MethodDefinition"===t.type&&i&&t.value.params){const e=t.value.params;e.length>0&&this.isThisParam(e[0])&&this.raise(t.start,ro.ThisParamBannedInConstructor)}}pushClassPrivateMethod(e,t,s,r){t.variance&&this.unexpected(t.variance.start),delete t.variance,this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(e,t,s,r)}parseClassSuper(e){if(super.parseClassSuper(e),e.superClass&&this.isRelational("<")&&(e.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();const t=e.implements=[];do{const e=this.startNode();e.id=this.flowParseRestrictedIdentifier(!0),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,t.push(this.finishNode(e,"ClassImplements"))}while(this.eat(yn.comma))}}checkGetterSetterParams(e){super.checkGetterSetterParams(e);const t=this.getObjectOrClassMethodParams(e);if(t.length>0){const s=t[0];this.isThisParam(s)&&"get"===e.kind?this.raise(s.start,ro.GetterMayNotHaveThisParam):this.isThisParam(s)&&this.raise(s.start,ro.SetterMayNotHaveThisParam)}}parsePropertyName(e,t){const s=this.flowParseVariance(),r=super.parsePropertyName(e,t);return e.variance=s,r}parseObjPropValue(e,t,s,r,i,a,n,o){let u;e.variance&&this.unexpected(e.variance.start),delete e.variance,this.isRelational("<")&&!n&&(u=this.flowParseTypeParameterDeclaration(),this.match(yn.parenL)||this.unexpected()),super.parseObjPropValue(e,t,s,r,i,a,n,o),u&&((e.value||e).typeParameters=u)}parseAssignableListItemTypes(e){return this.eat(yn.question)&&("Identifier"!==e.type&&this.raise(e.start,ro.OptionalBindingPattern),this.isThisParam(e)&&this.raise(e.start,ro.ThisParamMayNotBeOptional),e.optional=!0),this.match(yn.colon)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(e.start,ro.ThisParamAnnotationRequired),this.match(yn.eq)&&this.isThisParam(e)&&this.raise(e.start,ro.ThisParamNoDefault),this.resetEndLocation(e),e}parseMaybeDefault(e,t,s){const r=super.parseMaybeDefault(e,t,s);return"AssignmentPattern"===r.type&&r.typeAnnotation&&r.right.startsuper.parseMaybeAssign(e,t,s)),a),!i.error)return i.node;const{context:r}=this.state;r[r.length-1]===In.j_oTag?r.length-=2:r[r.length-1]===In.j_expr&&(r.length-=1)}if(null!=(r=i)&&r.error||this.isRelational("<")){var n,o;let r;a=a||this.state.clone();const u=this.tryParse((i=>{var a;r=this.flowParseTypeParameterDeclaration();const n=this.forwardNoArrowParamsConversionAt(r,(()=>{const i=super.parseMaybeAssign(e,t,s);return this.resetStartLocationFromNode(i,r),i}));"ArrowFunctionExpression"!==n.type&&null!=(a=n.extra)&&a.parenthesized&&i();const o=this.maybeUnwrapTypeCastExpression(n);return o.typeParameters=r,this.resetStartLocationFromNode(o,r),n}),a);let h=null;if(u.node&&"ArrowFunctionExpression"===this.maybeUnwrapTypeCastExpression(u.node).type){if(!u.error&&!u.aborted)return u.node.async&&this.raise(r.start,ro.UnexpectedTypeParameterBeforeAsyncArrowFunction),u.node;h=u.node}if(null!=(n=i)&&n.node)return this.state=i.failState,i.node;if(h)return this.state=u.failState,h;if(null!=(o=i)&&o.thrown)throw i.error;if(u.thrown)throw u.error;throw this.raise(r.start,ro.UnexpectedTokenAfterTypeParameter)}return super.parseMaybeAssign(e,t,s)}parseArrow(e){if(this.match(yn.colon)){const t=this.tryParse((()=>{const t=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;const s=this.startNode();return[s.typeAnnotation,e.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=t,this.canInsertSemicolon()&&this.unexpected(),this.match(yn.arrow)||this.unexpected(),s}));if(t.thrown)return null;t.error&&(this.state=t.failState),e.returnType=t.node.typeAnnotation?this.finishNode(t.node,"TypeAnnotation"):null}return super.parseArrow(e)}shouldParseArrow(){return this.match(yn.colon)||super.shouldParseArrow()}setArrowFunctionParameters(e,t){-1!==this.state.noArrowParamsConversionAt.indexOf(e.start)?e.params=t:super.setArrowFunctionParameters(e,t)}checkParams(e,t,s){if(!s||-1===this.state.noArrowParamsConversionAt.indexOf(e.start)){for(let t=0;t0&&this.raise(e.params[t].start,ro.ThisParamMustBeFirst);return super.checkParams(...arguments)}}parseParenAndDistinguishExpression(e){return super.parseParenAndDistinguishExpression(e&&-1===this.state.noArrowAt.indexOf(this.state.start))}parseSubscripts(e,t,s,r){if("Identifier"===e.type&&"async"===e.name&&-1!==this.state.noArrowAt.indexOf(t)){this.next();const r=this.startNodeAt(t,s);r.callee=e,r.arguments=this.parseCallExpressionArguments(yn.parenR,!1),e=this.finishNode(r,"CallExpression")}else if("Identifier"===e.type&&"async"===e.name&&this.isRelational("<")){const i=this.state.clone(),a=this.tryParse((e=>this.parseAsyncArrowWithTypeParameters(t,s)||e()),i);if(!a.error&&!a.aborted)return a.node;const n=this.tryParse((()=>super.parseSubscripts(e,t,s,r)),i);if(n.node&&!n.error)return n.node;if(a.node)return this.state=a.failState,a.node;if(n.node)return this.state=n.failState,n.node;throw a.error||n.error}return super.parseSubscripts(e,t,s,r)}parseSubscript(e,t,s,r,i){if(this.match(yn.questionDot)&&this.isLookaheadToken_lt()){if(i.optionalChainMember=!0,r)return i.stop=!0,e;this.next();const a=this.startNodeAt(t,s);return a.callee=e,a.typeArguments=this.flowParseTypeParameterInstantiation(),this.expect(yn.parenL),a.arguments=this.parseCallExpressionArguments(yn.parenR,!1),a.optional=!0,this.finishCallExpression(a,!0)}if(!r&&this.shouldParseTypes()&&this.isRelational("<")){const r=this.startNodeAt(t,s);r.callee=e;const a=this.tryParse((()=>(r.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(yn.parenL),r.arguments=this.parseCallExpressionArguments(yn.parenR,!1),i.optionalChainMember&&(r.optional=!1),this.finishCallExpression(r,i.optionalChainMember))));if(a.node)return a.error&&(this.state=a.failState),a.node}return super.parseSubscript(e,t,s,r,i)}parseNewArguments(e){let t=null;this.shouldParseTypes()&&this.isRelational("<")&&(t=this.tryParse((()=>this.flowParseTypeParameterInstantiationCallOrNew())).node),e.typeArguments=t,super.parseNewArguments(e)}parseAsyncArrowWithTypeParameters(e,t){const s=this.startNodeAt(e,t);if(this.parseFunctionParams(s),this.parseArrow(s))return this.parseArrowExpression(s,void 0,!0)}readToken_mult_modulo(e){const t=this.input.charCodeAt(this.state.pos+1);if(42===e&&47===t&&this.state.hasFlowComment)return this.state.hasFlowComment=!1,this.state.pos+=2,void this.nextToken();super.readToken_mult_modulo(e)}readToken_pipe_amp(e){const t=this.input.charCodeAt(this.state.pos+1);124!==e||125!==t?super.readToken_pipe_amp(e):this.finishOp(yn.braceBarR,2)}parseTopLevel(e,t){const s=super.parseTopLevel(e,t);return this.state.hasFlowComment&&this.raise(this.state.pos,ro.UnterminatedFlowComment),s}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment())return this.state.hasFlowComment&&this.unexpected(null,ro.NestedFlowComment),this.hasFlowCommentCompletion(),this.state.pos+=this.skipFlowComment(),void(this.state.hasFlowComment=!0);if(this.state.hasFlowComment){const e=this.input.indexOf("*-/",this.state.pos+=2);if(-1===e)throw this.raise(this.state.pos-2,wn.UnterminatedComment);this.state.pos=e+3}else super.skipBlockComment()}skipFlowComment(){const{pos:e}=this.state;let t=2;for(;[32,9].includes(this.input.charCodeAt(e+t));)t++;const s=this.input.charCodeAt(t+e),r=this.input.charCodeAt(t+e+1);return 58===s&&58===r?t+2:"flow-include"===this.input.slice(t+e,t+e+12)?t+12:58===s&&58!==r&&t}hasFlowCommentCompletion(){if(-1===this.input.indexOf("*/",this.state.pos))throw this.raise(this.state.pos,wn.UnterminatedComment)}flowEnumErrorBooleanMemberNotInitialized(e,{enumName:t,memberName:s}){this.raise(e,ro.EnumBooleanMemberNotInitialized,s,t)}flowEnumErrorInvalidMemberName(e,{enumName:t,memberName:s}){const r=s[0].toUpperCase()+s.slice(1);this.raise(e,ro.EnumInvalidMemberName,s,r,t)}flowEnumErrorDuplicateMemberName(e,{enumName:t,memberName:s}){this.raise(e,ro.EnumDuplicateMemberName,s,t)}flowEnumErrorInconsistentMemberValues(e,{enumName:t}){this.raise(e,ro.EnumInconsistentMemberValues,t)}flowEnumErrorInvalidExplicitType(e,{enumName:t,suppliedType:s}){return this.raise(e,null===s?ro.EnumInvalidExplicitTypeUnknownSupplied:ro.EnumInvalidExplicitType,t,s)}flowEnumErrorInvalidMemberInitializer(e,{enumName:t,explicitType:s,memberName:r}){let i=null;switch(s){case"boolean":case"number":case"string":i=ro.EnumInvalidMemberInitializerPrimaryType;break;case"symbol":i=ro.EnumInvalidMemberInitializerSymbolType;break;default:i=ro.EnumInvalidMemberInitializerUnknownType}return this.raise(e,i,t,r,s)}flowEnumErrorNumberMemberNotInitialized(e,{enumName:t,memberName:s}){this.raise(e,ro.EnumNumberMemberNotInitialized,t,s)}flowEnumErrorStringMemberInconsistentlyInitailized(e,{enumName:t}){this.raise(e,ro.EnumStringMemberInconsistentlyInitailized,t)}flowEnumMemberInit(){const e=this.state.start,t=()=>this.match(yn.comma)||this.match(yn.braceR);switch(this.state.type){case yn.num:{const s=this.parseNumericLiteral(this.state.value);return t()?{type:"number",pos:s.start,value:s}:{type:"invalid",pos:e}}case yn.string:{const s=this.parseStringLiteral(this.state.value);return t()?{type:"string",pos:s.start,value:s}:{type:"invalid",pos:e}}case yn._true:case yn._false:{const s=this.parseBooleanLiteral(this.match(yn._true));return t()?{type:"boolean",pos:s.start,value:s}:{type:"invalid",pos:e}}default:return{type:"invalid",pos:e}}}flowEnumMemberRaw(){const e=this.state.start;return{id:this.parseIdentifier(!0),init:this.eat(yn.eq)?this.flowEnumMemberInit():{type:"none",pos:e}}}flowEnumCheckExplicitTypeMismatch(e,t,s){const{explicitType:r}=t;null!==r&&r!==s&&this.flowEnumErrorInvalidMemberInitializer(e,t)}flowEnumMembers({enumName:e,explicitType:t}){const s=new Set,r={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]};let i=!1;for(;!this.match(yn.braceR);){if(this.eat(yn.ellipsis)){i=!0;break}const a=this.startNode(),{id:n,init:o}=this.flowEnumMemberRaw(),u=n.name;if(""===u)continue;/^[a-z]/.test(u)&&this.flowEnumErrorInvalidMemberName(n.start,{enumName:e,memberName:u}),s.has(u)&&this.flowEnumErrorDuplicateMemberName(n.start,{enumName:e,memberName:u}),s.add(u);const h={enumName:e,explicitType:t,memberName:u};switch(a.id=n,o.type){case"boolean":this.flowEnumCheckExplicitTypeMismatch(o.pos,h,"boolean"),a.init=o.value,r.booleanMembers.push(this.finishNode(a,"EnumBooleanMember"));break;case"number":this.flowEnumCheckExplicitTypeMismatch(o.pos,h,"number"),a.init=o.value,r.numberMembers.push(this.finishNode(a,"EnumNumberMember"));break;case"string":this.flowEnumCheckExplicitTypeMismatch(o.pos,h,"string"),a.init=o.value,r.stringMembers.push(this.finishNode(a,"EnumStringMember"));break;case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(o.pos,h);case"none":switch(t){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(o.pos,h);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(o.pos,h);break;default:r.defaultedMembers.push(this.finishNode(a,"EnumDefaultedMember"))}}this.match(yn.braceR)||this.expect(yn.comma)}return{members:r,hasUnknownMembers:i}}flowEnumStringMembers(e,t,{enumName:s}){if(0===e.length)return t;if(0===t.length)return e;if(t.length>e.length){for(const t of e)this.flowEnumErrorStringMemberInconsistentlyInitailized(t.start,{enumName:s});return t}for(const e of t)this.flowEnumErrorStringMemberInconsistentlyInitailized(e.start,{enumName:s});return e}flowEnumParseExplicitType({enumName:e}){if(this.eatContextual("of")){if(!this.match(yn.name))throw this.flowEnumErrorInvalidExplicitType(this.state.start,{enumName:e,suppliedType:null});const{value:t}=this.state;return this.next(),"boolean"!==t&&"number"!==t&&"string"!==t&&"symbol"!==t&&this.flowEnumErrorInvalidExplicitType(this.state.start,{enumName:e,suppliedType:t}),t}return null}flowEnumBody(e,{enumName:t,nameLoc:s}){const r=this.flowEnumParseExplicitType({enumName:t});this.expect(yn.braceL);const{members:i,hasUnknownMembers:a}=this.flowEnumMembers({enumName:t,explicitType:r});switch(e.hasUnknownMembers=a,r){case"boolean":return e.explicitType=!0,e.members=i.booleanMembers,this.expect(yn.braceR),this.finishNode(e,"EnumBooleanBody");case"number":return e.explicitType=!0,e.members=i.numberMembers,this.expect(yn.braceR),this.finishNode(e,"EnumNumberBody");case"string":return e.explicitType=!0,e.members=this.flowEnumStringMembers(i.stringMembers,i.defaultedMembers,{enumName:t}),this.expect(yn.braceR),this.finishNode(e,"EnumStringBody");case"symbol":return e.members=i.defaultedMembers,this.expect(yn.braceR),this.finishNode(e,"EnumSymbolBody");default:{const r=()=>(e.members=[],this.expect(yn.braceR),this.finishNode(e,"EnumStringBody"));e.explicitType=!1;const a=i.booleanMembers.length,n=i.numberMembers.length,o=i.stringMembers.length,u=i.defaultedMembers.length;if(a||n||o||u){if(a||n){if(!n&&!o&&a>=u){for(const e of i.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(e.start,{enumName:t,memberName:e.id.name});return e.members=i.booleanMembers,this.expect(yn.braceR),this.finishNode(e,"EnumBooleanBody")}if(!a&&!o&&n>=u){for(const e of i.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(e.start,{enumName:t,memberName:e.id.name});return e.members=i.numberMembers,this.expect(yn.braceR),this.finishNode(e,"EnumNumberBody")}return this.flowEnumErrorInconsistentMemberValues(s,{enumName:t}),r()}return e.members=this.flowEnumStringMembers(i.stringMembers,i.defaultedMembers,{enumName:t}),this.expect(yn.braceR),this.finishNode(e,"EnumStringBody")}return r()}}}flowParseEnumDeclaration(e){const t=this.parseIdentifier();return e.id=t,e.body=this.flowEnumBody(this.startNode(),{enumName:t.name,nameLoc:t.start}),this.finishNode(e,"EnumDeclaration")}isLookaheadToken_lt(){const e=this.nextTokenStart();if(60===this.input.charCodeAt(e)){const t=this.input.charCodeAt(e+1);return 60!==t&&61!==t}return!1}maybeUnwrapTypeCastExpression(e){return"TypeCastExpression"===e.type?e.expression:e}},typescript:e=>class extends e{getScopeHandler(){return yo}tsIsIdentifier(){return this.match(yn.name)}tsTokenCanFollowModifier(){return(this.match(yn.bracketL)||this.match(yn.braceL)||this.match(yn.star)||this.match(yn.ellipsis)||this.match(yn.privateName)||this.isLiteralPropertyName())&&!this.hasPrecedingLineBreak()}tsNextTokenCanFollowModifier(){return this.next(),this.tsTokenCanFollowModifier()}tsParseModifier(e){if(!this.match(yn.name))return;const t=this.state.value;return-1!==e.indexOf(t)&&this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))?t:void 0}tsParseModifiers(e,t,s,r){const i=(t,s,r,i)=>{s===r&&e[i]&&this.raise(t,Fo.InvalidModifiersOrder,r,i)},a=(t,s,r,i)=>{(e[r]&&s===i||e[i]&&s===r)&&this.raise(t,Fo.IncompatibleModifiers,r,i)};for(;;){const n=this.state.start,o=this.tsParseModifier(t.concat(null!=s?s:[]));if(!o)break;go(o)?e.accessibility?this.raise(n,Fo.DuplicateAccessibilityModifier):(i(n,o,o,"override"),i(n,o,o,"static"),i(n,o,o,"readonly"),e.accessibility=o):(Object.hasOwnProperty.call(e,o)?this.raise(n,Fo.DuplicateModifier,o):(i(n,o,"static","readonly"),i(n,o,"static","override"),i(n,o,"override","readonly"),i(n,o,"abstract","override"),a(n,o,"declare","override"),a(n,o,"static","abstract")),e[o]=!0),null!=s&&s.includes(o)&&this.raise(n,r,o)}}tsIsListTerminator(e){switch(e){case"EnumMembers":case"TypeMembers":return this.match(yn.braceR);case"HeritageClauseElement":return this.match(yn.braceL);case"TupleElementTypes":return this.match(yn.bracketR);case"TypeParametersOrArguments":return this.isRelational(">")}throw new Error("Unreachable")}tsParseList(e,t){const s=[];for(;!this.tsIsListTerminator(e);)s.push(t());return s}tsParseDelimitedList(e,t){return Co(this.tsParseDelimitedListWorker(e,t,!0))}tsParseDelimitedListWorker(e,t,s){const r=[];for(;!this.tsIsListTerminator(e);){const i=t();if(null==i)return;if(r.push(i),!this.eat(yn.comma)){if(this.tsIsListTerminator(e))break;return void(s&&this.expect(yn.comma))}}return r}tsParseBracketedList(e,t,s,r){r||(s?this.expect(yn.bracketL):this.expectRelational("<"));const i=this.tsParseDelimitedList(e,t);return s?this.expect(yn.bracketR):this.expectRelational(">"),i}tsParseImportType(){const e=this.startNode();return this.expect(yn._import),this.expect(yn.parenL),this.match(yn.string)||this.raise(this.state.start,Fo.UnsupportedImportTypeArgument),e.argument=this.parseExprAtom(),this.expect(yn.parenR),this.eat(yn.dot)&&(e.qualifier=this.tsParseEntityName(!0)),this.isRelational("<")&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSImportType")}tsParseEntityName(e){let t=this.parseIdentifier();for(;this.eat(yn.dot);){const s=this.startNodeAtNode(t);s.left=t,s.right=this.parseIdentifier(e),t=this.finishNode(s,"TSQualifiedName")}return t}tsParseTypeReference(){const e=this.startNode();return e.typeName=this.tsParseEntityName(!1),!this.hasPrecedingLineBreak()&&this.isRelational("<")&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeReference")}tsParseThisTypePredicate(e){this.next();const t=this.startNodeAtNode(e);return t.parameterName=e,t.typeAnnotation=this.tsParseTypeAnnotation(!1),t.asserts=!1,this.finishNode(t,"TSTypePredicate")}tsParseThisTypeNode(){const e=this.startNode();return this.next(),this.finishNode(e,"TSThisType")}tsParseTypeQuery(){const e=this.startNode();return this.expect(yn._typeof),this.match(yn._import)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(!0),this.finishNode(e,"TSTypeQuery")}tsParseTypeParameter(){const e=this.startNode();return e.name=this.parseIdentifierName(e.start),e.constraint=this.tsEatThenParseType(yn._extends),e.default=this.tsEatThenParseType(yn.eq),this.finishNode(e,"TSTypeParameter")}tsTryParseTypeParameters(){if(this.isRelational("<"))return this.tsParseTypeParameters()}tsParseTypeParameters(){const e=this.startNode();return this.isRelational("<")||this.match(yn.jsxTagStart)?this.next():this.unexpected(),e.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this),!1,!0),0===e.params.length&&this.raise(e.start,Fo.EmptyTypeParameters),this.finishNode(e,"TSTypeParameterDeclaration")}tsTryNextParseConstantContext(){return this.lookahead().type===yn._const?(this.next(),this.tsParseTypeReference()):null}tsFillSignature(e,t){const s=e===yn.arrow;t.typeParameters=this.tsTryParseTypeParameters(),this.expect(yn.parenL),t.parameters=this.tsParseBindingListForSignature(),(s||this.match(e))&&(t.typeAnnotation=this.tsParseTypeOrTypePredicateAnnotation(e))}tsParseBindingListForSignature(){return this.parseBindingList(yn.parenR,41).map((e=>("Identifier"!==e.type&&"RestElement"!==e.type&&"ObjectPattern"!==e.type&&"ArrayPattern"!==e.type&&this.raise(e.start,Fo.UnsupportedSignatureParameterKind,e.type),e)))}tsParseTypeMemberSemicolon(){this.eat(yn.comma)||this.isLineTerminator()||this.expect(yn.semi)}tsParseSignatureMember(e,t){return this.tsFillSignature(yn.colon,t),this.tsParseTypeMemberSemicolon(),this.finishNode(t,e)}tsIsUnambiguouslyIndexSignature(){return this.next(),this.eat(yn.name)&&this.match(yn.colon)}tsTryParseIndexSignature(e){if(!this.match(yn.bracketL)||!this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))return;this.expect(yn.bracketL);const t=this.parseIdentifier();t.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(t),this.expect(yn.bracketR),e.parameters=[t];const s=this.tsTryParseTypeAnnotation();return s&&(e.typeAnnotation=s),this.tsParseTypeMemberSemicolon(),this.finishNode(e,"TSIndexSignature")}tsParsePropertyOrMethodSignature(e,t){this.eat(yn.question)&&(e.optional=!0);const s=e;if(this.match(yn.parenL)||this.isRelational("<")){t&&this.raise(e.start,Fo.ReadonlyForMethodSignature);const r=s;if(r.kind&&this.isRelational("<")&&this.raise(this.state.pos,Fo.AccesorCannotHaveTypeParameters),this.tsFillSignature(yn.colon,r),this.tsParseTypeMemberSemicolon(),"get"===r.kind)r.parameters.length>0&&(this.raise(this.state.pos,wn.BadGetterArity),this.isThisParam(r.parameters[0])&&this.raise(this.state.pos,Fo.AccesorCannotDeclareThisParameter));else if("set"===r.kind){if(1!==r.parameters.length)this.raise(this.state.pos,wn.BadSetterArity);else{const e=r.parameters[0];this.isThisParam(e)&&this.raise(this.state.pos,Fo.AccesorCannotDeclareThisParameter),"Identifier"===e.type&&e.optional&&this.raise(this.state.pos,Fo.SetAccesorCannotHaveOptionalParameter),"RestElement"===e.type&&this.raise(this.state.pos,Fo.SetAccesorCannotHaveRestParameter)}r.typeAnnotation&&this.raise(r.typeAnnotation.start,Fo.SetAccesorCannotHaveReturnType)}else r.kind="method";return this.finishNode(r,"TSMethodSignature")}{const e=s;t&&(e.readonly=!0);const r=this.tsTryParseTypeAnnotation();return r&&(e.typeAnnotation=r),this.tsParseTypeMemberSemicolon(),this.finishNode(e,"TSPropertySignature")}}tsParseTypeMember(){const e=this.startNode();if(this.match(yn.parenL)||this.isRelational("<"))return this.tsParseSignatureMember("TSCallSignatureDeclaration",e);if(this.match(yn._new)){const t=this.startNode();return this.next(),this.match(yn.parenL)||this.isRelational("<")?this.tsParseSignatureMember("TSConstructSignatureDeclaration",e):(e.key=this.createIdentifier(t,"new"),this.tsParsePropertyOrMethodSignature(e,!1))}this.tsParseModifiers(e,["readonly"],["declare","abstract","private","protected","public","static","override"],Fo.InvalidModifierOnTypeMember);const t=this.tsTryParseIndexSignature(e);return t||(this.parsePropertyName(e,!1),e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||!this.tsTokenCanFollowModifier()||(e.kind=e.key.name,this.parsePropertyName(e,!1)),this.tsParsePropertyOrMethodSignature(e,!!e.readonly))}tsParseTypeLiteral(){const e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(yn.braceL);const e=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(yn.braceR),e}tsIsStartOfMappedType(){return this.next(),this.eat(yn.plusMin)?this.isContextual("readonly"):(this.isContextual("readonly")&&this.next(),!!this.match(yn.bracketL)&&(this.next(),!!this.tsIsIdentifier()&&(this.next(),this.match(yn._in))))}tsParseMappedTypeParameter(){const e=this.startNode();return e.name=this.parseIdentifierName(e.start),e.constraint=this.tsExpectThenParseType(yn._in),this.finishNode(e,"TSTypeParameter")}tsParseMappedType(){const e=this.startNode();return this.expect(yn.braceL),this.match(yn.plusMin)?(e.readonly=this.state.value,this.next(),this.expectContextual("readonly")):this.eatContextual("readonly")&&(e.readonly=!0),this.expect(yn.bracketL),e.typeParameter=this.tsParseMappedTypeParameter(),e.nameType=this.eatContextual("as")?this.tsParseType():null,this.expect(yn.bracketR),this.match(yn.plusMin)?(e.optional=this.state.value,this.next(),this.expect(yn.question)):this.eat(yn.question)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(yn.braceR),this.finishNode(e,"TSMappedType")}tsParseTupleType(){const e=this.startNode();e.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let t=!1,s=null;return e.elementTypes.forEach((e=>{var r;let{type:i}=e;!t||"TSRestType"===i||"TSOptionalType"===i||"TSNamedTupleMember"===i&&e.optional||this.raise(e.start,Fo.OptionalTypeBeforeRequired),t=t||"TSNamedTupleMember"===i&&e.optional||"TSOptionalType"===i,"TSRestType"===i&&(i=(e=e.typeAnnotation).type);const a="TSNamedTupleMember"===i;s=null!=(r=s)?r:a,s!==a&&this.raise(e.start,Fo.MixedLabeledAndUnlabeledElements)})),this.finishNode(e,"TSTupleType")}tsParseTupleElementType(){const{start:e,startLoc:t}=this.state,s=this.eat(yn.ellipsis);let r=this.tsParseType();const i=this.eat(yn.question);if(this.eat(yn.colon)){const e=this.startNodeAtNode(r);e.optional=i,"TSTypeReference"!==r.type||r.typeParameters||"Identifier"!==r.typeName.type?(this.raise(r.start,Fo.InvalidTupleMemberLabel),e.label=r):e.label=r.typeName,e.elementType=this.tsParseType(),r=this.finishNode(e,"TSNamedTupleMember")}else if(i){const e=this.startNodeAtNode(r);e.typeAnnotation=r,r=this.finishNode(e,"TSOptionalType")}if(s){const s=this.startNodeAt(e,t);s.typeAnnotation=r,r=this.finishNode(s,"TSRestType")}return r}tsParseParenthesizedType(){const e=this.startNode();return this.expect(yn.parenL),e.typeAnnotation=this.tsParseType(),this.expect(yn.parenR),this.finishNode(e,"TSParenthesizedType")}tsParseFunctionOrConstructorType(e,t){const s=this.startNode();return"TSConstructorType"===e&&(s.abstract=!!t,t&&this.next(),this.next()),this.tsFillSignature(yn.arrow,s),this.finishNode(s,e)}tsParseLiteralTypeNode(){const e=this.startNode();return e.literal=(()=>{switch(this.state.type){case yn.num:case yn.bigint:case yn.string:case yn._true:case yn._false:return this.parseExprAtom();default:throw this.unexpected()}})(),this.finishNode(e,"TSLiteralType")}tsParseTemplateLiteralType(){const e=this.startNode();return e.literal=this.parseTemplate(!1),this.finishNode(e,"TSLiteralType")}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){const e=this.tsParseThisTypeNode();return this.isContextual("is")&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e}tsParseNonArrayType(){switch(this.state.type){case yn.name:case yn._void:case yn._null:{const e=this.match(yn._void)?"TSVoidKeyword":this.match(yn._null)?"TSNullKeyword":function(e){switch(e){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}(this.state.value);if(void 0!==e&&46!==this.lookaheadCharCode()){const t=this.startNode();return this.next(),this.finishNode(t,e)}return this.tsParseTypeReference()}case yn.string:case yn.num:case yn.bigint:case yn._true:case yn._false:return this.tsParseLiteralTypeNode();case yn.plusMin:if("-"===this.state.value){const e=this.startNode(),t=this.lookahead();if(t.type!==yn.num&&t.type!==yn.bigint)throw this.unexpected();return e.literal=this.parseMaybeUnary(),this.finishNode(e,"TSLiteralType")}break;case yn._this:return this.tsParseThisTypeOrThisTypePredicate();case yn._typeof:return this.tsParseTypeQuery();case yn._import:return this.tsParseImportType();case yn.braceL:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case yn.bracketL:return this.tsParseTupleType();case yn.parenL:return this.tsParseParenthesizedType();case yn.backQuote:return this.tsParseTemplateLiteralType()}throw this.unexpected()}tsParseArrayTypeOrHigher(){let e=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(yn.bracketL);)if(this.match(yn.bracketR)){const t=this.startNodeAtNode(e);t.elementType=e,this.expect(yn.bracketR),e=this.finishNode(t,"TSArrayType")}else{const t=this.startNodeAtNode(e);t.objectType=e,t.indexType=this.tsParseType(),this.expect(yn.bracketR),e=this.finishNode(t,"TSIndexedAccessType")}return e}tsParseTypeOperator(e){const t=this.startNode();return this.expectContextual(e),t.operator=e,t.typeAnnotation=this.tsParseTypeOperatorOrHigher(),"readonly"===e&&this.tsCheckTypeAnnotationForReadOnly(t),this.finishNode(t,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(e){switch(e.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(e.start,Fo.UnexpectedReadonly)}}tsParseInferType(){const e=this.startNode();this.expectContextual("infer");const t=this.startNode();return t.name=this.parseIdentifierName(t.start),e.typeParameter=this.finishNode(t,"TSTypeParameter"),this.finishNode(e,"TSInferType")}tsParseTypeOperatorOrHigher(){const e=["keyof","unique","readonly"].find((e=>this.isContextual(e)));return e?this.tsParseTypeOperator(e):this.isContextual("infer")?this.tsParseInferType():this.tsParseArrayTypeOrHigher()}tsParseUnionOrIntersectionType(e,t,s){const r=this.startNode(),i=this.eat(s),a=[];do{a.push(t())}while(this.eat(s));return 1!==a.length||i?(r.types=a,this.finishNode(r,e)):a[0]}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),yn.bitwiseAND)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),yn.bitwiseOR)}tsIsStartOfFunctionType(){return!!this.isRelational("<")||this.match(yn.parenL)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(this.match(yn.name)||this.match(yn._this))return this.next(),!0;if(this.match(yn.braceL)){let e=1;for(this.next();e>0;)this.match(yn.braceL)?++e:this.match(yn.braceR)&&--e,this.next();return!0}if(this.match(yn.bracketL)){let e=1;for(this.next();e>0;)this.match(yn.bracketL)?++e:this.match(yn.bracketR)&&--e,this.next();return!0}return!1}tsIsUnambiguouslyStartOfFunctionType(){if(this.next(),this.match(yn.parenR)||this.match(yn.ellipsis))return!0;if(this.tsSkipParameterStart()){if(this.match(yn.colon)||this.match(yn.comma)||this.match(yn.question)||this.match(yn.eq))return!0;if(this.match(yn.parenR)&&(this.next(),this.match(yn.arrow)))return!0}return!1}tsParseTypeOrTypePredicateAnnotation(e){return this.tsInType((()=>{const t=this.startNode();this.expect(e);const s=this.startNode(),r=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(r&&this.match(yn._this)){let e=this.tsParseThisTypeOrThisTypePredicate();return"TSThisType"===e.type?(s.parameterName=e,s.asserts=!0,s.typeAnnotation=null,e=this.finishNode(s,"TSTypePredicate")):(this.resetStartLocationFromNode(e,s),e.asserts=!0),t.typeAnnotation=e,this.finishNode(t,"TSTypeAnnotation")}const i=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!i)return r?(s.parameterName=this.parseIdentifier(),s.asserts=r,s.typeAnnotation=null,t.typeAnnotation=this.finishNode(s,"TSTypePredicate"),this.finishNode(t,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,t);const a=this.tsParseTypeAnnotation(!1);return s.parameterName=i,s.typeAnnotation=a,s.asserts=r,t.typeAnnotation=this.finishNode(s,"TSTypePredicate"),this.finishNode(t,"TSTypeAnnotation")}))}tsTryParseTypeOrTypePredicateAnnotation(){return this.match(yn.colon)?this.tsParseTypeOrTypePredicateAnnotation(yn.colon):void 0}tsTryParseTypeAnnotation(){return this.match(yn.colon)?this.tsParseTypeAnnotation():void 0}tsTryParseType(){return this.tsEatThenParseType(yn.colon)}tsParseTypePredicatePrefix(){const e=this.parseIdentifier();if(this.isContextual("is")&&!this.hasPrecedingLineBreak())return this.next(),e}tsParseTypePredicateAsserts(){if(!this.match(yn.name)||"asserts"!==this.state.value||this.hasPrecedingLineBreak())return!1;const e=this.state.containsEsc;return this.next(),!(!this.match(yn.name)&&!this.match(yn._this))&&(e&&this.raise(this.state.lastTokStart,wn.InvalidEscapedReservedWord,"asserts"),!0)}tsParseTypeAnnotation(e=!0,t=this.startNode()){return this.tsInType((()=>{e&&this.expect(yn.colon),t.typeAnnotation=this.tsParseType()})),this.finishNode(t,"TSTypeAnnotation")}tsParseType(){xo(this.state.inType);const e=this.tsParseNonConditionalType();if(this.hasPrecedingLineBreak()||!this.eat(yn._extends))return e;const t=this.startNodeAtNode(e);return t.checkType=e,t.extendsType=this.tsParseNonConditionalType(),this.expect(yn.question),t.trueType=this.tsParseType(),this.expect(yn.colon),t.falseType=this.tsParseType(),this.finishNode(t,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual("abstract")&&this.lookahead().type===yn._new}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(yn._new)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){const e=this.startNode(),t=this.tsTryNextParseConstantContext();return e.typeAnnotation=t||this.tsNextThenParseType(),this.expectRelational(">"),e.expression=this.parseMaybeUnary(),this.finishNode(e,"TSTypeAssertion")}tsParseHeritageClause(e){const t=this.state.start,s=this.tsParseDelimitedList("HeritageClauseElement",this.tsParseExpressionWithTypeArguments.bind(this));return s.length||this.raise(t,Fo.EmptyHeritageClauseType,e),s}tsParseExpressionWithTypeArguments(){const e=this.startNode();return e.expression=this.tsParseEntityName(!1),this.isRelational("<")&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSExpressionWithTypeArguments")}tsParseInterfaceDeclaration(e){e.id=this.parseIdentifier(),this.checkLVal(e.id,"typescript interface declaration",130),e.typeParameters=this.tsTryParseTypeParameters(),this.eat(yn._extends)&&(e.extends=this.tsParseHeritageClause("extends"));const t=this.startNode();return t.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(t,"TSInterfaceBody"),this.finishNode(e,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(e){return e.id=this.parseIdentifier(),this.checkLVal(e.id,"typescript type alias",2),e.typeParameters=this.tsTryParseTypeParameters(),e.typeAnnotation=this.tsInType((()=>{if(this.expect(yn.eq),this.isContextual("intrinsic")&&this.lookahead().type!==yn.dot){const e=this.startNode();return this.next(),this.finishNode(e,"TSIntrinsicKeyword")}return this.tsParseType()})),this.semicolon(),this.finishNode(e,"TSTypeAliasDeclaration")}tsInNoContext(e){const t=this.state.context;this.state.context=[t[0]];try{return e()}finally{this.state.context=t}}tsInType(e){const t=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=t}}tsEatThenParseType(e){return this.match(e)?this.tsNextThenParseType():void 0}tsExpectThenParseType(e){return this.tsDoThenParseType((()=>this.expect(e)))}tsNextThenParseType(){return this.tsDoThenParseType((()=>this.next()))}tsDoThenParseType(e){return this.tsInType((()=>(e(),this.tsParseType())))}tsParseEnumMember(){const e=this.startNode();return e.id=this.match(yn.string)?this.parseExprAtom():this.parseIdentifier(!0),this.eat(yn.eq)&&(e.initializer=this.parseMaybeAssignAllowIn()),this.finishNode(e,"TSEnumMember")}tsParseEnumDeclaration(e,t){return t&&(e.const=!0),e.id=this.parseIdentifier(),this.checkLVal(e.id,"typescript enum declaration",t?779:267),this.expect(yn.braceL),e.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(yn.braceR),this.finishNode(e,"TSEnumDeclaration")}tsParseModuleBlock(){const e=this.startNode();return this.scope.enter(0),this.expect(yn.braceL),this.parseBlockOrModuleBlockBody(e.body=[],void 0,!0,yn.braceR),this.scope.exit(),this.finishNode(e,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(e,t=!1){if(e.id=this.parseIdentifier(),t||this.checkLVal(e.id,"module or namespace declaration",1024),this.eat(yn.dot)){const t=this.startNode();this.tsParseModuleOrNamespaceDeclaration(t,!0),e.body=t}else this.scope.enter(256),this.prodParam.enter(0),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(e){return this.isContextual("global")?(e.global=!0,e.id=this.parseIdentifier()):this.match(yn.string)?e.id=this.parseExprAtom():this.unexpected(),this.match(yn.braceL)?(this.scope.enter(256),this.prodParam.enter(0),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(e,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(e,t){e.isExport=t||!1,e.id=this.parseIdentifier(),this.checkLVal(e.id,"import equals declaration",9),this.expect(yn.eq);const s=this.tsParseModuleReference();return"type"===e.importKind&&"TSExternalModuleReference"!==s.type&&this.raise(s.start,Fo.ImportAliasHasImportType),e.moduleReference=s,this.semicolon(),this.finishNode(e,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual("require")&&40===this.lookaheadCharCode()}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(!1)}tsParseExternalModuleReference(){const e=this.startNode();if(this.expectContextual("require"),this.expect(yn.parenL),!this.match(yn.string))throw this.unexpected();return e.expression=this.parseExprAtom(),this.expect(yn.parenR),this.finishNode(e,"TSExternalModuleReference")}tsLookAhead(e){const t=this.state.clone(),s=e();return this.state=t,s}tsTryParseAndCatch(e){const t=this.tryParse((t=>e()||t()));if(!t.aborted&&t.node)return t.error&&(this.state=t.failState),t.node}tsTryParse(e){const t=this.state.clone(),s=e();return void 0!==s&&!1!==s?s:void(this.state=t)}tsTryParseDeclare(e){if(this.isLineTerminator())return;let t,s=this.state.type;return this.isContextual("let")&&(s=yn._var,t="let"),this.tsInAmbientContext((()=>{switch(s){case yn._function:return e.declare=!0,this.parseFunctionStatement(e,!1,!0);case yn._class:return e.declare=!0,this.parseClass(e,!0,!1);case yn._const:if(this.match(yn._const)&&this.isLookaheadContextual("enum"))return this.expect(yn._const),this.expectContextual("enum"),this.tsParseEnumDeclaration(e,!0);case yn._var:return t=t||this.state.value,this.parseVarStatement(e,t);case yn.name:{const t=this.state.value;return"global"===t?this.tsParseAmbientExternalModuleDeclaration(e):this.tsParseDeclaration(e,t,!0)}}}))}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0)}tsParseExpressionStatement(e,t){switch(t.name){case"declare":{const t=this.tsTryParseDeclare(e);if(t)return t.declare=!0,t;break}case"global":if(this.match(yn.braceL)){this.scope.enter(256),this.prodParam.enter(0);const s=e;return s.global=!0,s.id=t,s.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(s,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(e,t.name,!1)}}tsParseDeclaration(e,t,s){switch(t){case"abstract":if(this.tsCheckLineTerminator(s)&&(this.match(yn._class)||this.match(yn.name)))return this.tsParseAbstractDeclaration(e);break;case"enum":if(s||this.match(yn.name))return s&&this.next(),this.tsParseEnumDeclaration(e,!1);break;case"interface":if(this.tsCheckLineTerminator(s)&&this.match(yn.name))return this.tsParseInterfaceDeclaration(e);break;case"module":if(this.tsCheckLineTerminator(s)){if(this.match(yn.string))return this.tsParseAmbientExternalModuleDeclaration(e);if(this.match(yn.name))return this.tsParseModuleOrNamespaceDeclaration(e)}break;case"namespace":if(this.tsCheckLineTerminator(s)&&this.match(yn.name))return this.tsParseModuleOrNamespaceDeclaration(e);break;case"type":if(this.tsCheckLineTerminator(s)&&this.match(yn.name))return this.tsParseTypeAliasDeclaration(e)}}tsCheckLineTerminator(e){return e?!this.hasFollowingLineBreak()&&(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(e,t){if(!this.isRelational("<"))return;const s=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;const r=this.tsTryParseAndCatch((()=>{const s=this.startNodeAt(e,t);return s.typeParameters=this.tsParseTypeParameters(),super.parseFunctionParams(s),s.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(yn.arrow),s}));return this.state.maybeInArrowParameters=s,r?this.parseArrowExpression(r,null,!0):void 0}tsParseTypeArguments(){const e=this.startNode();return e.params=this.tsInType((()=>this.tsInNoContext((()=>(this.expectRelational("<"),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))))),0===e.params.length&&this.raise(e.start,Fo.EmptyTypeArguments),this.expectRelational(">"),this.finishNode(e,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){if(this.match(yn.name))switch(this.state.value){case"abstract":case"declare":case"enum":case"interface":case"module":case"namespace":case"type":return!0}return!1}isExportDefaultSpecifier(){return!this.tsIsDeclarationStart()&&super.isExportDefaultSpecifier()}parseAssignableListItem(e,t){const s=this.state.start,r=this.state.startLoc;let i,a=!1,n=!1;if(void 0!==e){const t={};this.tsParseModifiers(t,["public","private","protected","override","readonly"]),i=t.accessibility,n=t.override,a=t.readonly,!1===e&&(i||a||n)&&this.raise(s,Fo.UnexpectedParameterModifier)}const o=this.parseMaybeDefault();this.parseAssignableListItemTypes(o);const u=this.parseMaybeDefault(o.start,o.loc.start,o);if(i||a||n){const e=this.startNodeAt(s,r);return t.length&&(e.decorators=t),i&&(e.accessibility=i),a&&(e.readonly=a),n&&(e.override=n),"Identifier"!==u.type&&"AssignmentPattern"!==u.type&&this.raise(e.start,Fo.UnsupportedParameterPropertyKind),e.parameter=u,this.finishNode(e,"TSParameterProperty")}return t.length&&(o.decorators=t),u}parseFunctionBodyAndFinish(e,t,s=!1){this.match(yn.colon)&&(e.returnType=this.tsParseTypeOrTypePredicateAnnotation(yn.colon));const r="FunctionDeclaration"===t?"TSDeclareFunction":"ClassMethod"===t?"TSDeclareMethod":void 0;r&&!this.match(yn.braceL)&&this.isLineTerminator()?this.finishNode(e,r):"TSDeclareFunction"===r&&this.state.isAmbientContext&&(this.raise(e.start,Fo.DeclareFunctionHasImplementation),e.declare)?super.parseFunctionBodyAndFinish(e,r,s):super.parseFunctionBodyAndFinish(e,t,s)}registerFunctionStatementId(e){!e.body&&e.id?this.checkLVal(e.id,"function name",1024):super.registerFunctionStatementId(...arguments)}tsCheckForInvalidTypeCasts(e){e.forEach((e=>{"TSTypeCastExpression"===(null==e?void 0:e.type)&&this.raise(e.typeAnnotation.start,Fo.UnexpectedTypeAnnotation)}))}toReferencedList(e,t){return this.tsCheckForInvalidTypeCasts(e),e}parseArrayLike(...e){const t=super.parseArrayLike(...e);return"ArrayExpression"===t.type&&this.tsCheckForInvalidTypeCasts(t.elements),t}parseSubscript(e,t,s,r,i){if(!this.hasPrecedingLineBreak()&&this.match(yn.bang)){this.state.exprAllowed=!1,this.next();const r=this.startNodeAt(t,s);return r.expression=e,this.finishNode(r,"TSNonNullExpression")}if(this.isRelational("<")){const a=this.tsTryParseAndCatch((()=>{if(!r&&this.atPossibleAsyncArrow(e)){const e=this.tsTryParseGenericAsyncArrowFunction(t,s);if(e)return e}const a=this.startNodeAt(t,s);a.callee=e;const n=this.tsParseTypeArguments();if(n){if(!r&&this.eat(yn.parenL))return a.arguments=this.parseCallExpressionArguments(yn.parenR,!1),this.tsCheckForInvalidTypeCasts(a.arguments),a.typeParameters=n,i.optionalChainMember&&(a.optional=!1),this.finishCallExpression(a,i.optionalChainMember);if(this.match(yn.backQuote)){const r=this.parseTaggedTemplateExpression(e,t,s,i);return r.typeParameters=n,r}}this.unexpected()}));if(a)return a}return super.parseSubscript(e,t,s,r,i)}parseNewArguments(e){if(this.isRelational("<")){const t=this.tsTryParseAndCatch((()=>{const e=this.tsParseTypeArguments();return this.match(yn.parenL)||this.unexpected(),e}));t&&(e.typeParameters=t)}super.parseNewArguments(e)}parseExprOp(e,t,s,r){if(Co(yn._in.binop)>r&&!this.hasPrecedingLineBreak()&&this.isContextual("as")){const i=this.startNodeAt(t,s);i.expression=e;const a=this.tsTryNextParseConstantContext();return i.typeAnnotation=a||this.tsNextThenParseType(),this.finishNode(i,"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(i,t,s,r)}return super.parseExprOp(e,t,s,r)}checkReservedWord(e,t,s,r){}checkDuplicateExports(){}parseImport(e){if(e.importKind="value",this.match(yn.name)||this.match(yn.star)||this.match(yn.braceL)){let t=this.lookahead();if(!this.isContextual("type")||t.type===yn.comma||t.type===yn.name&&"from"===t.value||t.type===yn.eq||(e.importKind="type",this.next(),t=this.lookahead()),this.match(yn.name)&&t.type===yn.eq)return this.tsParseImportEqualsDeclaration(e)}const t=super.parseImport(e);return"type"===t.importKind&&t.specifiers.length>1&&"ImportDefaultSpecifier"===t.specifiers[0].type&&this.raise(t.start,Fo.TypeImportCannotSpecifyDefaultAndNamed),t}parseExport(e){if(this.match(yn._import))return this.next(),this.isContextual("type")&&61!==this.lookaheadCharCode()?(e.importKind="type",this.next()):e.importKind="value",this.tsParseImportEqualsDeclaration(e,!0);if(this.eat(yn.eq)){const t=e;return t.expression=this.parseExpression(),this.semicolon(),this.finishNode(t,"TSExportAssignment")}if(this.eatContextual("as")){const t=e;return this.expectContextual("namespace"),t.id=this.parseIdentifier(),this.semicolon(),this.finishNode(t,"TSNamespaceExportDeclaration")}return this.isContextual("type")&&this.lookahead().type===yn.braceL?(this.next(),e.exportKind="type"):e.exportKind="value",super.parseExport(e)}isAbstractClass(){return this.isContextual("abstract")&&this.lookahead().type===yn._class}parseExportDefaultExpression(){if(this.isAbstractClass()){const e=this.startNode();return this.next(),e.abstract=!0,this.parseClass(e,!0,!0),e}if("interface"===this.state.value){const e=this.tsParseDeclaration(this.startNode(),this.state.value,!0);if(e)return e}return super.parseExportDefaultExpression()}parseStatementContent(e,t){if(this.state.type===yn._const){const e=this.lookahead();if(e.type===yn.name&&"enum"===e.value){const e=this.startNode();return this.expect(yn._const),this.expectContextual("enum"),this.tsParseEnumDeclaration(e,!0)}}return super.parseStatementContent(e,t)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(e,t){return t.some((t=>go(t)?e.accessibility===t:!!e[t]))}parseClassMember(e,t,s){const r=["declare","private","public","protected","override","abstract","readonly"];this.tsParseModifiers(t,r.concat(["static"]));const i=()=>{const i=!!t.static;i&&this.eat(yn.braceL)?(this.tsHasSomeModifiers(t,r)&&this.raise(this.state.pos,Fo.StaticBlockCannotHaveModifier),this.parseClassStaticBlock(e,t)):this.parseClassMemberWithIsStatic(e,t,s,i)};t.declare?this.tsInAmbientContext(i):i()}parseClassMemberWithIsStatic(e,t,s,r){const i=this.tsTryParseIndexSignature(t);if(i)return e.body.push(i),t.abstract&&this.raise(t.start,Fo.IndexSignatureHasAbstract),t.accessibility&&this.raise(t.start,Fo.IndexSignatureHasAccessibility,t.accessibility),t.declare&&this.raise(t.start,Fo.IndexSignatureHasDeclare),void(t.override&&this.raise(t.start,Fo.IndexSignatureHasOverride));!this.state.inAbstractClass&&t.abstract&&this.raise(t.start,Fo.NonAbstractClassHasAbstractMethod),t.override&&(s.hadSuperClass||this.raise(t.start,Fo.OverrideNotInSubClass)),super.parseClassMemberWithIsStatic(e,t,s,r)}parsePostMemberNameModifiers(e){this.eat(yn.question)&&(e.optional=!0),e.readonly&&this.match(yn.parenL)&&this.raise(e.start,Fo.ClassMethodHasReadonly),e.declare&&this.match(yn.parenL)&&this.raise(e.start,Fo.ClassMethodHasDeclare)}parseExpressionStatement(e,t){return("Identifier"===t.type?this.tsParseExpressionStatement(e,t):void 0)||super.parseExpressionStatement(e,t)}shouldParseExportDeclaration(){return!!this.tsIsDeclarationStart()||super.shouldParseExportDeclaration()}parseConditional(e,t,s,r){if(!r||!this.match(yn.question))return super.parseConditional(e,t,s,r);const i=this.tryParse((()=>super.parseConditional(e,t,s)));return i.node?(i.error&&(this.state=i.failState),i.node):(r.start=i.error.pos||this.state.start,e)}parseParenItem(e,t,s){if(e=super.parseParenItem(e,t,s),this.eat(yn.question)&&(e.optional=!0,this.resetEndLocation(e)),this.match(yn.colon)){const r=this.startNodeAt(t,s);return r.expression=e,r.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(r,"TSTypeCastExpression")}return e}parseExportDeclaration(e){const t=this.state.start,s=this.state.startLoc,r=this.eatContextual("declare");if(r&&(this.isContextual("declare")||!this.shouldParseExportDeclaration()))throw this.raise(this.state.start,Fo.ExpectedAmbientAfterExportDeclare);let i;return this.match(yn.name)&&(i=this.tsTryParseExportDeclaration()),i||(i=super.parseExportDeclaration(e)),i&&("TSInterfaceDeclaration"===i.type||"TSTypeAliasDeclaration"===i.type||r)&&(e.exportKind="type"),i&&r&&(this.resetStartLocation(i,t,s),i.declare=!0),i}parseClassId(e,t,s){if((!t||s)&&this.isContextual("implements"))return;super.parseClassId(e,t,s,e.declare?1024:139);const r=this.tsTryParseTypeParameters();r&&(e.typeParameters=r)}parseClassPropertyAnnotation(e){!e.optional&&this.eat(yn.bang)&&(e.definite=!0);const t=this.tsTryParseTypeAnnotation();t&&(e.typeAnnotation=t)}parseClassProperty(e){return this.parseClassPropertyAnnotation(e),this.state.isAmbientContext&&this.match(yn.eq)&&this.raise(this.state.start,Fo.DeclareClassFieldHasInitializer),super.parseClassProperty(e)}parseClassPrivateProperty(e){return e.abstract&&this.raise(e.start,Fo.PrivateElementHasAbstract),e.accessibility&&this.raise(e.start,Fo.PrivateElementHasAccessibility,e.accessibility),this.parseClassPropertyAnnotation(e),super.parseClassPrivateProperty(e)}pushClassMethod(e,t,s,r,i,a){const n=this.tsTryParseTypeParameters();n&&i&&this.raise(n.start,Fo.ConstructorHasTypeParameters),!t.declare||"get"!==t.kind&&"set"!==t.kind||this.raise(t.start,Fo.DeclareAccessor,t.kind),n&&(t.typeParameters=n),super.pushClassMethod(e,t,s,r,i,a)}pushClassPrivateMethod(e,t,s,r){const i=this.tsTryParseTypeParameters();i&&(t.typeParameters=i),super.pushClassPrivateMethod(e,t,s,r)}parseClassSuper(e){super.parseClassSuper(e),e.superClass&&this.isRelational("<")&&(e.superTypeParameters=this.tsParseTypeArguments()),this.eatContextual("implements")&&(e.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(e,...t){const s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s),super.parseObjPropValue(e,...t)}parseFunctionParams(e,t){const s=this.tsTryParseTypeParameters();s&&(e.typeParameters=s),super.parseFunctionParams(e,t)}parseVarId(e,t){super.parseVarId(e,t),"Identifier"===e.id.type&&this.eat(yn.bang)&&(e.definite=!0);const s=this.tsTryParseTypeAnnotation();s&&(e.id.typeAnnotation=s,this.resetEndLocation(e.id))}parseAsyncArrowFromCallExpression(e,t){return this.match(yn.colon)&&(e.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(e,t)}parseMaybeAssign(...e){var t,s,r,i,a,n,o;let u,h,c,p;if(this.hasPlugin("jsx")&&(this.match(yn.jsxTagStart)||this.isRelational("<"))){if(u=this.state.clone(),h=this.tryParse((()=>super.parseMaybeAssign(...e)),u),!h.error)return h.node;const{context:t}=this.state;t[t.length-1]===In.j_oTag?t.length-=2:t[t.length-1]===In.j_expr&&(t.length-=1)}if(!(null!=(t=h)&&t.error||this.isRelational("<")))return super.parseMaybeAssign(...e);u=u||this.state.clone();const l=this.tryParse((t=>{var s,r;p=this.tsParseTypeParameters();const i=super.parseMaybeAssign(...e);return("ArrowFunctionExpression"!==i.type||null!=(s=i.extra)&&s.parenthesized)&&t(),0!==(null==(r=p)?void 0:r.params.length)&&this.resetStartLocationFromNode(i,p),i.typeParameters=p,i}),u);if(!l.error&&!l.aborted)return l.node;if(!h&&(xo(!this.hasPlugin("jsx")),c=this.tryParse((()=>super.parseMaybeAssign(...e)),u),!c.error))return c.node;if(null!=(s=h)&&s.node)return this.state=h.failState,h.node;if(l.node)return this.state=l.failState,l.node;if(null!=(r=c)&&r.node)return this.state=c.failState,c.node;if(null!=(i=h)&&i.thrown)throw h.error;if(l.thrown)throw l.error;if(null!=(a=c)&&a.thrown)throw c.error;throw(null==(n=h)?void 0:n.error)||l.error||(null==(o=c)?void 0:o.error)}parseMaybeUnary(e){return!this.hasPlugin("jsx")&&this.isRelational("<")?this.tsParseTypeAssertion():super.parseMaybeUnary(e)}parseArrow(e){if(this.match(yn.colon)){const t=this.tryParse((e=>{const t=this.tsParseTypeOrTypePredicateAnnotation(yn.colon);return!this.canInsertSemicolon()&&this.match(yn.arrow)||e(),t}));if(t.aborted)return;t.thrown||(t.error&&(this.state=t.failState),e.returnType=t.node)}return super.parseArrow(e)}parseAssignableListItemTypes(e){this.eat(yn.question)&&("Identifier"===e.type||this.state.isAmbientContext||this.state.inType||this.raise(e.start,Fo.PatternIsOptional),e.optional=!0);const t=this.tsTryParseTypeAnnotation();return t&&(e.typeAnnotation=t),this.resetEndLocation(e),e}toAssignable(e,t=!1){switch(e.type){case"TSTypeCastExpression":return super.toAssignable(this.typeCastToParameter(e),t);case"TSParameterProperty":return super.toAssignable(e,t);case"ParenthesizedExpression":return this.toAssignableParenthesizedExpression(e,t);case"TSAsExpression":case"TSNonNullExpression":case"TSTypeAssertion":return e.expression=this.toAssignable(e.expression,t),e;default:return super.toAssignable(e,t)}}toAssignableParenthesizedExpression(e,t){switch(e.expression.type){case"TSAsExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":return e.expression=this.toAssignable(e.expression,t),e;default:return super.toAssignable(e,t)}}checkLVal(e,t,...s){var r;switch(e.type){case"TSTypeCastExpression":return;case"TSParameterProperty":return void this.checkLVal(e.parameter,"parameter property",...s);case"TSAsExpression":case"TSTypeAssertion":if(!(s[0]||"parenthesized expression"===t||null!=(r=e.extra)&&r.parenthesized)){this.raise(e.start,wn.InvalidLhs,t);break}return void this.checkLVal(e.expression,"parenthesized expression",...s);case"TSNonNullExpression":return void this.checkLVal(e.expression,t,...s);default:return void super.checkLVal(e,t,...s)}}parseBindingAtom(){switch(this.state.type){case yn._this:return this.parseIdentifier(!0);default:return super.parseBindingAtom()}}parseMaybeDecoratorArguments(e){if(this.isRelational("<")){const t=this.tsParseTypeArguments();if(this.match(yn.parenL)){const s=super.parseMaybeDecoratorArguments(e);return s.typeParameters=t,s}this.unexpected(this.state.start,yn.parenL)}return super.parseMaybeDecoratorArguments(e)}checkCommaAfterRest(e){this.state.isAmbientContext&&this.match(yn.comma)&&this.lookaheadCharCode()===e?this.next():super.checkCommaAfterRest(e)}isClassMethod(){return this.isRelational("<")||super.isClassMethod()}isClassProperty(){return this.match(yn.bang)||this.match(yn.colon)||super.isClassProperty()}parseMaybeDefault(...e){const t=super.parseMaybeDefault(...e);return"AssignmentPattern"===t.type&&t.typeAnnotation&&t.right.startthis.tsParseTypeArguments()));t&&(e.typeParameters=t)}return super.jsxParseOpeningElementAfterName(e)}getGetterSetterExpectedParamCount(e){const t=super.getGetterSetterExpectedParamCount(e),s=this.getObjectOrClassMethodParams(e)[0];return s&&this.isThisParam(s)?t+1:t}parseCatchClauseParam(){const e=super.parseCatchClauseParam(),t=this.tsTryParseTypeAnnotation();return t&&(e.typeAnnotation=t,this.resetEndLocation(e)),e}tsInAmbientContext(e){const t=this.state.isAmbientContext;this.state.isAmbientContext=!0;try{return e()}finally{this.state.isAmbientContext=t}}parseClass(e,...t){const s=this.state.inAbstractClass;this.state.inAbstractClass=!!e.abstract;try{return super.parseClass(e,...t)}finally{this.state.inAbstractClass=s}}tsParseAbstractDeclaration(e){if(this.match(yn._class))return e.abstract=!0,this.parseClass(e,!0,!1);if(this.isContextual("interface")){if(!this.hasFollowingLineBreak())return e.abstract=!0,this.raise(e.start,Fo.NonClassMethodPropertyHasAbstractModifer),this.next(),this.tsParseInterfaceDeclaration(e)}else this.unexpected(null,yn._class)}parseMethod(...e){const t=super.parseMethod(...e);if(t.abstract){if(this.hasPlugin("estree")?!!t.value.body:!!t.body){const{key:e}=t;this.raise(t.start,Fo.AbstractMethodHasImplementation,"Identifier"===e.type?e.name:`[${this.input.slice(e.start,e.end)}]`)}}return t}shouldParseAsAmbientContext(){return!!this.getPluginOption("typescript","dts")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}},v8intrinsic:e=>class extends e{parseV8Intrinsic(){if(this.match(yn.modulo)){const e=this.state.start,t=this.startNode();if(this.eat(yn.modulo),this.match(yn.name)){const e=this.parseIdentifierName(this.state.start),s=this.createIdentifier(t,e);if(s.type="V8IntrinsicIdentifier",this.match(yn.parenL))return s}this.unexpected(e)}}parseExprAtom(){return this.parseV8Intrinsic()||super.parseExprAtom(...arguments)}},placeholders:e=>class extends e{parsePlaceholder(e){if(this.match(yn.placeholder)){const t=this.startNode();return this.next(),this.assertNoSpace("Unexpected space in placeholder."),t.name=super.parseIdentifier(!0),this.assertNoSpace("Unexpected space in placeholder."),this.expect(yn.placeholder),this.finishPlaceholder(t,e)}}finishPlaceholder(e,t){const s=!(!e.expectedNode||"Placeholder"!==e.type);return e.expectedNode=t,s?e:this.finishNode(e,"Placeholder")}getTokenFromCode(e){return 37===e&&37===this.input.charCodeAt(this.state.pos+1)?this.finishOp(yn.placeholder,2):super.getTokenFromCode(...arguments)}parseExprAtom(){return this.parsePlaceholder("Expression")||super.parseExprAtom(...arguments)}parseIdentifier(){return this.parsePlaceholder("Identifier")||super.parseIdentifier(...arguments)}checkReservedWord(e){void 0!==e&&super.checkReservedWord(...arguments)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom(...arguments)}checkLVal(e){"Placeholder"!==e.type&&super.checkLVal(...arguments)}toAssignable(e){return e&&"Placeholder"===e.type&&"Expression"===e.expectedNode?(e.expectedNode="Pattern",e):super.toAssignable(...arguments)}isLet(e){if(super.isLet(e))return!0;if(!this.isContextual("let"))return!1;if(e)return!1;return this.lookahead().type===yn.placeholder}verifyBreakContinue(e){e.label&&"Placeholder"===e.label.type||super.verifyBreakContinue(...arguments)}parseExpressionStatement(e,t){if("Placeholder"!==t.type||t.extra&&t.extra.parenthesized)return super.parseExpressionStatement(...arguments);if(this.match(yn.colon)){const s=e;return s.label=this.finishPlaceholder(t,"Identifier"),this.next(),s.body=this.parseStatement("label"),this.finishNode(s,"LabeledStatement")}return this.semicolon(),e.name=t.name,this.finishPlaceholder(e,"Statement")}parseBlock(){return this.parsePlaceholder("BlockStatement")||super.parseBlock(...arguments)}parseFunctionId(){return this.parsePlaceholder("Identifier")||super.parseFunctionId(...arguments)}parseClass(e,t,s){const r=t?"ClassDeclaration":"ClassExpression";this.next(),this.takeDecorators(e);const i=this.state.strict,a=this.parsePlaceholder("Identifier");if(a)if(this.match(yn._extends)||this.match(yn.placeholder)||this.match(yn.braceL))e.id=a;else{if(s||!t)return e.id=null,e.body=this.finishPlaceholder(a,"ClassBody"),this.finishNode(e,r);this.unexpected(null,bo.ClassNameIsRequired)}else this.parseClassId(e,t,s);return this.parseClassSuper(e),e.body=this.parsePlaceholder("ClassBody")||this.parseClassBody(!!e.superClass,i),this.finishNode(e,r)}parseExport(e){const t=this.parsePlaceholder("Identifier");if(!t)return super.parseExport(...arguments);if(!this.isContextual("from")&&!this.match(yn.comma))return e.specifiers=[],e.source=null,e.declaration=this.finishPlaceholder(t,"Declaration"),this.finishNode(e,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");const s=this.startNode();return s.exported=t,e.specifiers=[this.finishNode(s,"ExportDefaultSpecifier")],super.parseExport(e)}isExportDefaultSpecifier(){if(this.match(yn._default)){const e=this.nextTokenStart();if(this.isUnparsedContextual(e,"from")&&this.input.startsWith(yn.placeholder.label,this.nextTokenStartSince(e+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(e){return!!(e.specifiers&&e.specifiers.length>0)||super.maybeParseExportDefaultSpecifier(...arguments)}checkExport(e){const{specifiers:t}=e;null!=t&&t.length&&(e.specifiers=t.filter((e=>"Placeholder"===e.exported.type))),super.checkExport(e),e.specifiers=t}parseImport(e){const t=this.parsePlaceholder("Identifier");if(!t)return super.parseImport(...arguments);if(e.specifiers=[],!this.isContextual("from")&&!this.match(yn.comma))return e.source=this.finishPlaceholder(t,"StringLiteral"),this.semicolon(),this.finishNode(e,"ImportDeclaration");const s=this.startNodeAtNode(t);if(s.local=t,this.finishNode(s,"ImportDefaultSpecifier"),e.specifiers.push(s),this.eat(yn.comma)){this.maybeParseStarImportSpecifier(e)||this.parseNamedImportSpecifiers(e)}return this.expectContextual("from"),e.source=this.parseImportSource(),this.semicolon(),this.finishNode(e,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource(...arguments)}}},No=Object.keys(Bo),Io={sourceType:"script",sourceFilename:void 0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createParenthesizedExpressions:!1,errorRecovery:!1};var vo=function(e){return e>=48&&e<=57};const ko=new Set([103,109,115,105,121,117,100]),Lo={decBinOct:[46,66,69,79,95,98,101,111],hex:[46,88,95,120]},Oo={bin:[48,49]};Oo.oct=[...Oo.bin,50,51,52,53,54,55],Oo.dec=[...Oo.oct,56,57],Oo.hex=[...Oo.dec,65,66,67,68,69,70,97,98,99,100,101,102];class Mo{constructor(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,this.loc=new bn(e.startLoc,e.endLoc)}}class Ro{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}}class jo{constructor(e){this.stack=[],this.undefinedPrivateNames=new Map,this.raise=e}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new Ro)}exit(){const e=this.stack.pop(),t=this.current();for(const[s,r]of Array.from(e.undefinedPrivateNames))t?t.undefinedPrivateNames.has(s)||t.undefinedPrivateNames.set(s,r):this.raise(r,wn.InvalidPrivateFieldResolution,s)}declarePrivateName(e,t,s){const r=this.current();let i=r.privateNames.has(e);if(3&t){const s=i&&r.loneAccessors.get(e);if(s){const a=4&s,n=4&t;i=(3&s)===(3&t)||a!==n,i||r.loneAccessors.delete(e)}else i||r.loneAccessors.set(e,t)}i&&this.raise(s,wn.PrivateNameRedeclaration,e),r.privateNames.add(e),r.undefinedPrivateNames.delete(e)}usePrivateName(e,t){let s;for(s of this.stack)if(s.privateNames.has(e))return;s?s.undefinedPrivateNames.set(e,t):this.raise(t,wn.InvalidPrivateFieldResolution,e)}}class _o{constructor(e=0){this.type=void 0,this.type=e}canBeArrowParameterDeclaration(){return 2===this.type||1===this.type}isCertainlyParameterDeclaration(){return 3===this.type}}class Uo extends _o{constructor(e){super(e),this.errors=new Map}recordDeclarationError(e,t){this.errors.set(e,t)}clearDeclarationError(e){this.errors.delete(e)}iterateErrors(e){this.errors.forEach(e)}}class qo{constructor(e){this.stack=[new _o],this.raise=e}enter(e){this.stack.push(e)}exit(){this.stack.pop()}recordParameterInitializerError(e,t){const{stack:s}=this;let r=s.length-1,i=s[r];for(;!i.isCertainlyParameterDeclaration();){if(!i.canBeArrowParameterDeclaration())return;i.recordDeclarationError(e,t),i=s[--r]}this.raise(e,t)}recordParenthesizedIdentifierError(e,t){const{stack:s}=this,r=s[s.length-1];if(r.isCertainlyParameterDeclaration())this.raise(e,t);else{if(!r.canBeArrowParameterDeclaration())return;r.recordDeclarationError(e,t)}}recordAsyncArrowParametersError(e,t){const{stack:s}=this;let r=s.length-1,i=s[r];for(;i.canBeArrowParameterDeclaration();)2===i.type&&i.recordDeclarationError(e,t),i=s[--r]}validateAsPattern(){const{stack:e}=this,t=e[e.length-1];t.canBeArrowParameterDeclaration()&&t.iterateErrors(((t,s)=>{this.raise(s,t);let r=e.length-2,i=e[r];for(;i.canBeArrowParameterDeclaration();)i.clearDeclarationError(s),i=e[--r]}))}}function $o(){return new _o}class Vo{constructor(){this.shorthandAssign=-1,this.doubleProto=-1}}class Ho{constructor(e,t,s){this.type=void 0,this.start=void 0,this.end=void 0,this.loc=void 0,this.range=void 0,this.leadingComments=void 0,this.trailingComments=void 0,this.innerComments=void 0,this.extra=void 0,this.type="",this.start=t,this.end=0,this.loc=new bn(s),null!=e&&e.options.ranges&&(this.range=[t,0]),null!=e&&e.filename&&(this.loc.filename=e.filename)}__clone(){const e=new Ho,t=Object.keys(this);for(let s=0,r=t.length;s"ParenthesizedExpression"===e.type?zo(e.expression):e;const Wo={kind:"loop"},Go={kind:"switch"},Ko=/[\uD800-\uDFFF]/u,Xo=/in(?:stanceof)?/y;class Jo extends class extends class extends class extends class extends class extends class extends class extends class extends class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}hasPlugin(e){return this.plugins.has(e)}getPluginOption(e,t){if(this.hasPlugin(e))return this.plugins.get(e)[t]}}{addComment(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)}adjustCommentsAfterTrailingComma(e,t,s){if(0===this.state.leadingComments.length)return;let r=null,i=t.length;for(;null===r&&i>0;)r=t[--i];if(null===r)return;for(let e=0;e0?r.trailingComments=a:void 0!==r.trailingComments&&(r.trailingComments=[])}processComment(e){if("Program"===e.type&&e.body.length>0)return;const t=this.state.commentStack;let s,r,i,a,n;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(i=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else if(t.length>0){const s=Pn(t);s.trailingComments&&s.trailingComments[0].start>=e.end&&(i=s.trailingComments,delete s.trailingComments)}for(t.length>0&&Pn(t).start>=e.start&&(s=t.pop());t.length>0&&Pn(t).start>=e.start;)r=t.pop();if(!r&&s&&(r=s),s)switch(e.type){case"ObjectExpression":this.adjustCommentsAfterTrailingComma(e,e.properties);break;case"ObjectPattern":this.adjustCommentsAfterTrailingComma(e,e.properties,!0);break;case"CallExpression":this.adjustCommentsAfterTrailingComma(e,e.arguments);break;case"ArrayExpression":this.adjustCommentsAfterTrailingComma(e,e.elements);break;case"ArrayPattern":this.adjustCommentsAfterTrailingComma(e,e.elements,!0)}else this.state.commentPreviousNode&&("ImportSpecifier"===this.state.commentPreviousNode.type&&"ImportSpecifier"!==e.type||"ExportSpecifier"===this.state.commentPreviousNode.type&&"ExportSpecifier"!==e.type)&&this.adjustCommentsAfterTrailingComma(e,[this.state.commentPreviousNode]);if(r){if(r.leadingComments)if(r!==e&&r.leadingComments.length>0&&Pn(r.leadingComments).end<=e.start)e.leadingComments=r.leadingComments,delete r.leadingComments;else for(a=r.leadingComments.length-2;a>=0;--a)if(r.leadingComments[a].end<=e.start){e.leadingComments=r.leadingComments.splice(0,a+1);break}}else if(this.state.leadingComments.length>0)if(Pn(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(n=0;n0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(a=0;ae.start);a++);const t=this.state.leadingComments.slice(0,a);t.length&&(e.leadingComments=t),i=this.state.leadingComments.slice(a),0===i.length&&(i=null)}if(this.state.commentPreviousNode=e,i)if(i.length&&i[0].start>=e.start&&Pn(i).end<=e.end)e.innerComments=i;else{const t=i.findIndex((t=>t.end>=e.end));t>0?(e.innerComments=i.slice(0,t),e.trailingComments=i.slice(t)):e.trailingComments=i}t.push(e)}}{getLocationForPosition(e){let t;return t=e===this.state.start?this.state.startLoc:e===this.state.lastTokStart?this.state.lastTokStartLoc:e===this.state.end?this.state.endLoc:e===this.state.lastTokEnd?this.state.lastTokEndLoc:function(e,t){let s,r=1,i=0;for(En.lastIndex=0;(s=En.exec(e))&&s.indexr[t]))+` (${i.line}:${i.column})`;if(this.options.errorRecovery){const t=this.state.errors;for(let s=t.length-1;s>=0;s--){const r=t[s];if(r.pos===e)return Object.assign(r,{message:a});if(r.posr[t]))+` (${i.line}:${i.column})`;return this._raise(Object.assign({loc:i,pos:e},t),a)}_raise(e,t){const s=new SyntaxError(t);if(Object.assign(s,e),this.options.errorRecovery)return this.isLookahead||this.state.errors.push(s),s;throw s}}{constructor(e,t){super(),this.isLookahead=void 0,this.tokens=[],this.state=new ho,this.state.init(e),this.input=t,this.length=t.length,this.isLookahead=!1}pushToken(e){this.tokens.length=this.state.tokensLength,this.tokens.push(e),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.options.tokens&&this.pushToken(new Mo(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(e){return!!this.match(e)&&(this.next(),!0)}match(e){return this.state.type===e}createLookaheadState(e){return{pos:e.pos,value:null,type:e.type,start:e.start,end:e.end,lastTokEnd:e.end,context:[this.curContext()],inType:e.inType}}lookahead(){const e=this.state;this.state=this.createLookaheadState(e),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;const t=this.state;return this.state=e,t}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(e){xn.lastIndex=e;return e+xn.exec(this.input)[0].length}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}codePointAtPos(e){let t=this.input.charCodeAt(e);if(55296==(64512&t)&&++ethis.raise(t,e))),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){const e=this.curContext();e.preserveSpace||this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length?this.finishToken(yn.eof):e===In.template?this.readTmplToken():this.getTokenFromCode(this.codePointAtPos(this.state.pos))}pushComment(e,t,s,r,i,a){const n={type:e?"CommentBlock":"CommentLine",value:t,start:s,end:r,loc:new bn(i,a)};this.options.tokens&&this.pushToken(n),this.state.comments.push(n),this.addComment(n)}skipBlockComment(){let e;this.isLookahead||(e=this.state.curPosition());const t=this.state.pos,s=this.input.indexOf("*/",this.state.pos+2);if(-1===s)throw this.raise(t,wn.UnterminatedComment);let r;for(this.state.pos=s+2,En.lastIndex=t;(r=En.exec(this.input))&&r.index=48&&t<=57)throw this.raise(this.state.pos,wn.UnexpectedDigitAfterHash);if(123===t||91===t&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),"hash"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(this.state.pos,123===t?wn.RecordExpressionHashIncorrectStartSyntaxType:wn.TupleExpressionHashIncorrectStartSyntaxType);this.state.pos+=2,123===t?this.finishToken(yn.braceHashL):this.finishToken(yn.bracketHashL)}else _n(t)?(++this.state.pos,this.finishToken(yn.privateName,this.readWord1(t))):92===t?(++this.state.pos,this.finishToken(yn.privateName,this.readWord1())):this.finishOp(yn.hash,1)}readToken_dot(){const e=this.input.charCodeAt(this.state.pos+1);e>=48&&e<=57?this.readNumber(!0):46===e&&46===this.input.charCodeAt(this.state.pos+2)?(this.state.pos+=3,this.finishToken(yn.ellipsis)):(++this.state.pos,this.finishToken(yn.dot))}readToken_slash(){61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(yn.slashAssign,2):this.finishOp(yn.slash,1)}readToken_interpreter(){if(0!==this.state.pos||this.length<2)return!1;let e=this.input.charCodeAt(this.state.pos+1);if(33!==e)return!1;const t=this.state.pos;for(this.state.pos+=1;!Cn(e)&&++this.state.pos=48&&t<=57?(++this.state.pos,this.finishToken(yn.question)):(this.state.pos+=2,this.finishToken(yn.questionDot))}getTokenFromCode(e){switch(e){case 46:return void this.readToken_dot();case 40:return++this.state.pos,void this.finishToken(yn.parenL);case 41:return++this.state.pos,void this.finishToken(yn.parenR);case 59:return++this.state.pos,void this.finishToken(yn.semi);case 44:return++this.state.pos,void this.finishToken(yn.comma);case 91:if(this.hasPlugin("recordAndTuple")&&124===this.input.charCodeAt(this.state.pos+1)){if("bar"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(this.state.pos,wn.TupleExpressionBarIncorrectStartSyntaxType);this.state.pos+=2,this.finishToken(yn.bracketBarL)}else++this.state.pos,this.finishToken(yn.bracketL);return;case 93:return++this.state.pos,void this.finishToken(yn.bracketR);case 123:if(this.hasPlugin("recordAndTuple")&&124===this.input.charCodeAt(this.state.pos+1)){if("bar"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(this.state.pos,wn.RecordExpressionBarIncorrectStartSyntaxType);this.state.pos+=2,this.finishToken(yn.braceBarL)}else++this.state.pos,this.finishToken(yn.braceL);return;case 125:return++this.state.pos,void this.finishToken(yn.braceR);case 58:return void(this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(yn.doubleColon,2):(++this.state.pos,this.finishToken(yn.colon)));case 63:return void this.readToken_question();case 96:return++this.state.pos,void this.finishToken(yn.backQuote);case 48:{const e=this.input.charCodeAt(this.state.pos+1);if(120===e||88===e)return void this.readRadixNumber(16);if(111===e||79===e)return void this.readRadixNumber(8);if(98===e||66===e)return void this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return void this.readNumber(!1);case 34:case 39:return void this.readString(e);case 47:return void this.readToken_slash();case 37:case 42:return void this.readToken_mult_modulo(e);case 124:case 38:return void this.readToken_pipe_amp(e);case 94:return void this.readToken_caret();case 43:case 45:return void this.readToken_plus_min(e);case 60:case 62:return void this.readToken_lt_gt(e);case 61:case 33:return void this.readToken_eq_excl(e);case 126:return void this.finishOp(yn.tilde,1);case 64:return++this.state.pos,void this.finishToken(yn.at);case 35:return void this.readToken_numberSign();case 92:return void this.readWord();default:if(_n(e))return void this.readWord(e)}throw this.raise(this.state.pos,wn.InvalidOrUnexpectedToken,String.fromCodePoint(e))}finishOp(e,t){const s=this.input.slice(this.state.pos,this.state.pos+t);this.state.pos+=t,this.finishToken(e,s)}readRegexp(){const e=this.state.start+1;let t,s,{pos:r}=this.state;for(;;++r){if(r>=this.length)throw this.raise(e,wn.UnterminatedRegExp);const i=this.input.charCodeAt(r);if(Cn(i))throw this.raise(e,wn.UnterminatedRegExp);if(t)t=!1;else{if(91===i)s=!0;else if(93===i&&s)s=!1;else if(47===i&&!s)break;t=92===i}}const i=this.input.slice(e,r);++r;let a="";for(;r=97?t-97+10:t>=65?t-65+10:vo(t)?t-48:1/0,h>=e)if(this.options.errorRecovery&&h<=9)h=0,this.raise(this.state.start+i+2,wn.InvalidDigit,e);else{if(!s)break;h=0,o=!0}++this.state.pos,u=u*e+h}else{const e=this.input.charCodeAt(this.state.pos-1),t=this.input.charCodeAt(this.state.pos+1);(-1===n.indexOf(t)||a.indexOf(e)>-1||a.indexOf(t)>-1||Number.isNaN(t))&&this.raise(this.state.pos,wn.UnexpectedNumericSeparator),r||this.raise(this.state.pos,wn.NumericSeparatorInEscapeSequence),++this.state.pos}}return this.state.pos===i||null!=t&&this.state.pos-i!==t||o?null:u}readRadixNumber(e){const t=this.state.pos;let s=!1;this.state.pos+=2;const r=this.readInt(e);null==r&&this.raise(this.state.start+2,wn.InvalidDigit,e);const i=this.input.charCodeAt(this.state.pos);if(110===i)++this.state.pos,s=!0;else if(109===i)throw this.raise(t,wn.InvalidDecimal);if(_n(this.codePointAtPos(this.state.pos)))throw this.raise(this.state.pos,wn.NumberIdentifier);if(s){const e=this.input.slice(t,this.state.pos).replace(/[_n]/g,"");this.finishToken(yn.bigint,e)}else this.finishToken(yn.num,r)}readNumber(e){const t=this.state.pos;let s=!1,r=!1,i=!1,a=!1,n=!1;e||null!==this.readInt(10)||this.raise(t,wn.InvalidNumber);const o=this.state.pos-t>=2&&48===this.input.charCodeAt(t);if(o){const e=this.input.slice(t,this.state.pos);if(this.recordStrictModeErrors(t,wn.StrictOctalLiteral),!this.state.strict){const s=e.indexOf("_");s>0&&this.raise(s+t,wn.ZeroDigitNumericSeparator)}n=o&&!/[89]/.test(e)}let u=this.input.charCodeAt(this.state.pos);if(46!==u||n||(++this.state.pos,this.readInt(10),s=!0,u=this.input.charCodeAt(this.state.pos)),69!==u&&101!==u||n||(u=this.input.charCodeAt(++this.state.pos),43!==u&&45!==u||++this.state.pos,null===this.readInt(10)&&this.raise(t,wn.InvalidOrMissingExponent),s=!0,a=!0,u=this.input.charCodeAt(this.state.pos)),110===u&&((s||o)&&this.raise(t,wn.InvalidBigIntLiteral),++this.state.pos,r=!0),109===u&&(this.expectPlugin("decimal",this.state.pos),(a||o)&&this.raise(t,wn.InvalidDecimal),++this.state.pos,i=!0),_n(this.codePointAtPos(this.state.pos)))throw this.raise(this.state.pos,wn.NumberIdentifier);const h=this.input.slice(t,this.state.pos).replace(/[_mn]/g,"");if(r)return void this.finishToken(yn.bigint,h);if(i)return void this.finishToken(yn.decimal,h);const c=n?parseInt(h,8):parseFloat(h);this.finishToken(yn.num,c)}readCodePoint(e){let t;if(123===this.input.charCodeAt(this.state.pos)){const s=++this.state.pos;if(t=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,!0,e),++this.state.pos,null!==t&&t>1114111){if(!e)return null;this.raise(s,wn.InvalidCodePoint)}}else t=this.readHexChar(4,!1,e);return t}readString(e){let t="",s=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(this.state.start,wn.UnterminatedString);const r=this.input.charCodeAt(this.state.pos);if(r===e)break;if(92===r)t+=this.input.slice(s,this.state.pos),t+=this.readEscapedChar(!1),s=this.state.pos;else if(8232===r||8233===r)++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;else{if(Cn(r))throw this.raise(this.state.start,wn.UnterminatedString);++this.state.pos}}t+=this.input.slice(s,this.state.pos++),this.finishToken(yn.string,t)}readTmplToken(){let e="",t=this.state.pos,s=!1;for(;;){if(this.state.pos>=this.length)throw this.raise(this.state.start,wn.UnterminatedTemplate);const r=this.input.charCodeAt(this.state.pos);if(96===r||36===r&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(yn.template)?36===r?(this.state.pos+=2,void this.finishToken(yn.dollarBraceL)):(++this.state.pos,void this.finishToken(yn.backQuote)):(e+=this.input.slice(t,this.state.pos),void this.finishToken(yn.template,s?null:e));if(92===r){e+=this.input.slice(t,this.state.pos);const r=this.readEscapedChar(!0);null===r?s=!0:e+=r,t=this.state.pos}else if(Cn(r)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,r){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(r)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}}recordStrictModeErrors(e,t){this.state.strict&&!this.state.strictErrors.has(e)?this.raise(e,t):this.state.strictErrors.set(e,t)}readEscapedChar(e){const t=!e,s=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,s){case 110:return"\n";case 114:return"\r";case 120:{const e=this.readHexChar(2,!1,t);return null===e?null:String.fromCharCode(e)}case 117:{const e=this.readCodePoint(t);return null===e?null:String.fromCodePoint(e)}case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:this.state.lineStart=this.state.pos,++this.state.curLine;case 8232:case 8233:return"";case 56:case 57:if(e)return null;this.recordStrictModeErrors(this.state.pos-1,wn.StrictNumericEscape);default:if(s>=48&&s<=55){const t=this.state.pos-1;let s=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(s,8);r>255&&(s=s.slice(0,-1),r=parseInt(s,8)),this.state.pos+=s.length-1;const i=this.input.charCodeAt(this.state.pos);if("0"!==s||56===i||57===i){if(e)return null;this.recordStrictModeErrors(t,wn.StrictNumericEscape)}return String.fromCharCode(r)}return String.fromCharCode(s)}}readHexChar(e,t,s){const r=this.state.pos,i=this.readInt(16,e,t,!1);return null===i&&(s?this.raise(r,wn.InvalidEscapeSequence):this.state.pos=r-1),i}readWord1(e){this.state.containsEsc=!1;let t="";const s=this.state.pos;let r=this.state.pos;for(void 0!==e&&(this.state.pos+=e<=65535?1:2);this.state.posthis.state.lastTokEnd&&this.raise(this.state.lastTokEnd,{code:Tn.SyntaxError,reasonCode:"UnexpectedSpace",template:e})}unexpected(e,t={code:Tn.SyntaxError,reasonCode:"UnexpectedToken",template:"Unexpected token"}){throw t instanceof dn&&(t={code:Tn.SyntaxError,reasonCode:"UnexpectedToken",template:`Unexpected token, expected "${t.label}"`}),this.raise(null!=e?e:this.state.start,t)}expectPlugin(e,t){if(!this.hasPlugin(e))throw this.raiseWithData(null!=t?t:this.state.start,{missingPlugin:[e]},`This experimental syntax requires enabling the parser plugin: '${e}'`);return!0}expectOnePlugin(e,t){if(!e.some((e=>this.hasPlugin(e))))throw this.raiseWithData(null!=t?t:this.state.start,{missingPlugin:e},`This experimental syntax requires enabling one of the following parser plugin(s): '${e.join(", ")}'`)}tryParse(e,t=this.state.clone()){const s={node:null};try{const r=e(((e=null)=>{throw s.node=e,s}));if(this.state.errors.length>t.errors.length){const e=this.state;return this.state=t,this.state.tokensLength=e.tokensLength,{node:r,error:e.errors[t.errors.length],thrown:!1,aborted:!1,failState:e}}return{node:r,error:null,thrown:!1,aborted:!1,failState:null}}catch(e){const r=this.state;if(this.state=t,e instanceof SyntaxError)return{node:null,error:e,thrown:!0,aborted:!1,failState:r};if(e===s)return{node:s.node,error:null,thrown:!1,aborted:!0,failState:r};throw e}}checkExpressionErrors(e,t){if(!e)return!1;const{shorthandAssign:s,doubleProto:r}=e;if(!t)return s>=0||r>=0;s>=0&&this.unexpected(s),r>=0&&this.raise(r,wn.DuplicateProto)}isLiteralPropertyName(){return this.match(yn.name)||!!this.state.type.keyword||this.match(yn.string)||this.match(yn.num)||this.match(yn.bigint)||this.match(yn.decimal)}isPrivateName(e){return"PrivateName"===e.type}getPrivateNameSV(e){return e.id.name}hasPropertyAsPrivateName(e){return("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)&&this.isPrivateName(e.property)}isOptionalChain(e){return"OptionalMemberExpression"===e.type||"OptionalCallExpression"===e.type}isObjectProperty(e){return"ObjectProperty"===e.type}isObjectMethod(e){return"ObjectMethod"===e.type}initializeScopes(e="module"===this.options.sourceType){const t=this.state.labels;this.state.labels=[];const s=this.exportedIdentifiers;this.exportedIdentifiers=new Set;const r=this.inModule;this.inModule=e;const i=this.scope,a=this.getScopeHandler();this.scope=new a(this.raise.bind(this),this.inModule);const n=this.prodParam;this.prodParam=new Ao;const o=this.classScope;this.classScope=new jo(this.raise.bind(this));const u=this.expressionScope;return this.expressionScope=new qo(this.raise.bind(this)),()=>{this.state.labels=t,this.exportedIdentifiers=s,this.inModule=r,this.scope=i,this.prodParam=n,this.classScope=o,this.expressionScope=u}}enterInitialScopes(){let e=0;this.hasPlugin("topLevelAwait")&&this.inModule&&(e|=2),this.scope.enter(1),this.prodParam.enter(e)}}{startNode(){return new Ho(this,this.state.start,this.state.startLoc)}startNodeAt(e,t){return new Ho(this,e,t)}startNodeAtNode(e){return this.startNodeAt(e.start,e.loc.start)}finishNode(e,t){return this.finishNodeAt(e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)}finishNodeAt(e,t,s,r){return e.type=t,e.end=s,e.loc.end=r,this.options.ranges&&(e.range[1]=s),this.processComment(e),e}resetStartLocation(e,t,s){e.start=t,e.loc.start=s,this.options.ranges&&(e.range[0]=t)}resetEndLocation(e,t=this.state.lastTokEnd,s=this.state.lastTokEndLoc){e.end=t,e.loc.end=s,this.options.ranges&&(e.range[1]=t)}resetStartLocationFromNode(e,t){this.resetStartLocation(e,t.start,t.loc.start)}}{toAssignable(e,t=!1){var s,r;let i;switch(("ParenthesizedExpression"===e.type||null!=(s=e.extra)&&s.parenthesized)&&(i=zo(e),t?"Identifier"===i.type?this.expressionScope.recordParenthesizedIdentifierError(e.start,wn.InvalidParenthesizedAssignment):"MemberExpression"!==i.type&&this.raise(e.start,wn.InvalidParenthesizedAssignment):this.raise(e.start,wn.InvalidParenthesizedAssignment)),e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(let s=0,r=e.properties.length,i=r-1;sthis.parseExpressionBase(t))):this.allowInAnd((()=>this.parseExpressionBase(t)))}parseExpressionBase(e){const t=this.state.start,s=this.state.startLoc,r=this.parseMaybeAssign(e);if(this.match(yn.comma)){const i=this.startNodeAt(t,s);for(i.expressions=[r];this.eat(yn.comma);)i.expressions.push(this.parseMaybeAssign(e));return this.toReferencedList(i.expressions),this.finishNode(i,"SequenceExpression")}return r}parseMaybeAssignDisallowIn(e,t,s){return this.disallowInAnd((()=>this.parseMaybeAssign(e,t,s)))}parseMaybeAssignAllowIn(e,t,s){return this.allowInAnd((()=>this.parseMaybeAssign(e,t,s)))}parseMaybeAssign(e,t,s){const r=this.state.start,i=this.state.startLoc;if(this.isContextual("yield")&&this.prodParam.hasYield){let e=this.parseYield();return t&&(e=t.call(this,e,r,i)),e}let a;e?a=!1:(e=new Vo,a=!0),(this.match(yn.parenL)||this.match(yn.name))&&(this.state.potentialArrowAt=this.state.start);let n=this.parseMaybeConditional(e,s);if(t&&(n=t.call(this,n,r,i)),this.state.type.isAssign){const t=this.startNodeAt(r,i),s=this.state.value;return t.operator=s,this.match(yn.eq)?(t.left=this.toAssignable(n,!0),e.doubleProto=-1):t.left=n,e.shorthandAssign>=t.left.start&&(e.shorthandAssign=-1),this.checkLVal(n,"assignment expression"),this.next(),t.right=this.parseMaybeAssign(),this.finishNode(t,"AssignmentExpression")}return a&&this.checkExpressionErrors(e,!0),n}parseMaybeConditional(e,t){const s=this.state.start,r=this.state.startLoc,i=this.state.potentialArrowAt,a=this.parseExprOps(e);return this.shouldExitDescending(a,i)?a:this.parseConditional(a,s,r,t)}parseConditional(e,t,s,r){if(this.eat(yn.question)){const r=this.startNodeAt(t,s);return r.test=e,r.consequent=this.parseMaybeAssignAllowIn(),this.expect(yn.colon),r.alternate=this.parseMaybeAssign(),this.finishNode(r,"ConditionalExpression")}return e}parseExprOps(e){const t=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseMaybeUnary(e);return this.shouldExitDescending(i,r)?i:this.parseExprOp(i,t,s,-1)}parseExprOp(e,t,s,r){let i=this.state.type.binop;if(null!=i&&(this.prodParam.hasIn||!this.match(yn._in))&&i>r){const a=this.state.type;if(a===yn.pipeline){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return e;this.state.inPipeline=!0,this.checkPipelineAtInfixOperator(e,t)}const n=this.startNodeAt(t,s);n.left=e,n.operator=this.state.value;const o=a===yn.logicalOR||a===yn.logicalAND,u=a===yn.nullishCoalescing;if(u&&(i=yn.logicalAND.binop),this.next(),a===yn.pipeline&&"minimal"===this.getPluginOption("pipelineOperator","proposal")&&this.match(yn.name)&&"await"===this.state.value&&this.prodParam.hasAwait)throw this.raise(this.state.start,wn.UnexpectedAwaitAfterPipelineBody);n.right=this.parseExprOpRightExpr(a,i),this.finishNode(n,o||u?"LogicalExpression":"BinaryExpression");const h=this.state.type;if(u&&(h===yn.logicalOR||h===yn.logicalAND)||o&&h===yn.nullishCoalescing)throw this.raise(this.state.start,wn.MixingCoalesceWithLogical);return this.parseExprOp(n,t,s,r)}return e}parseExprOpRightExpr(e,t){const s=this.state.start,r=this.state.startLoc;switch(e){case yn.pipeline:switch(this.getPluginOption("pipelineOperator","proposal")){case"smart":return this.withTopicPermittingContext((()=>this.parseSmartPipelineBody(this.parseExprOpBaseRightExpr(e,t),s,r)));case"fsharp":return this.withSoloAwaitPermittingContext((()=>this.parseFSharpPipelineBody(t)))}default:return this.parseExprOpBaseRightExpr(e,t)}}parseExprOpBaseRightExpr(e,t){const s=this.state.start,r=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnary(),s,r,e.rightAssociative?t-1:t)}checkExponentialAfterUnary(e){this.match(yn.exponent)&&this.raise(e.argument.start,wn.UnexpectedTokenUnaryExponentiation)}parseMaybeUnary(e,t){const s=this.state.start,r=this.state.startLoc,i=this.isContextual("await");if(i&&this.isAwaitAllowed()){this.next();const e=this.parseAwait(s,r);return t||this.checkExponentialAfterUnary(e),e}if(this.isContextual("module")&&123===this.lookaheadCharCode()&&!this.hasFollowingLineBreak())return this.parseModuleExpression();const a=this.match(yn.incDec),n=this.startNode();if(this.state.type.prefix){n.operator=this.state.value,n.prefix=!0,this.match(yn._throw)&&this.expectPlugin("throwExpressions");const s=this.match(yn._delete);if(this.next(),n.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),this.state.strict&&s){const e=n.argument;"Identifier"===e.type?this.raise(n.start,wn.StrictDelete):this.hasPropertyAsPrivateName(e)&&this.raise(n.start,wn.DeletePrivateField)}if(!a)return t||this.checkExponentialAfterUnary(n),this.finishNode(n,"UnaryExpression")}const o=this.parseUpdate(n,a,e);if(i){if((this.hasPlugin("v8intrinsic")?this.state.type.startsExpr:this.state.type.startsExpr&&!this.match(yn.modulo))&&!this.isAmbiguousAwait())return this.raiseOverwrite(s,this.hasPlugin("topLevelAwait")?wn.AwaitNotInAsyncContext:wn.AwaitNotInAsyncFunction),this.parseAwait(s,r)}return o}parseUpdate(e,t,s){if(t)return this.checkLVal(e.argument,"prefix operation"),this.finishNode(e,"UpdateExpression");const r=this.state.start,i=this.state.startLoc;let a=this.parseExprSubscripts(s);if(this.checkExpressionErrors(s,!1))return a;for(;this.state.type.postfix&&!this.canInsertSemicolon();){const e=this.startNodeAt(r,i);e.operator=this.state.value,e.prefix=!1,e.argument=a,this.checkLVal(a,"postfix operation"),this.next(),a=this.finishNode(e,"UpdateExpression")}return a}parseExprSubscripts(e){const t=this.state.start,s=this.state.startLoc,r=this.state.potentialArrowAt,i=this.parseExprAtom(e);return this.shouldExitDescending(i,r)?i:this.parseSubscripts(i,t,s)}parseSubscripts(e,t,s,r){const i={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(e),stop:!1};do{e=this.parseSubscript(e,t,s,r,i),i.maybeAsyncArrow=!1}while(!i.stop);return e}parseSubscript(e,t,s,r,i){if(!r&&this.eat(yn.doubleColon))return this.parseBind(e,t,s,r,i);if(this.match(yn.backQuote))return this.parseTaggedTemplateExpression(e,t,s,i);let a=!1;if(this.match(yn.questionDot)){if(r&&40===this.lookaheadCharCode())return i.stop=!0,e;i.optionalChainMember=a=!0,this.next()}return!r&&this.match(yn.parenL)?this.parseCoverCallAndAsyncArrowHead(e,t,s,i,a):a||this.match(yn.bracketL)||this.eat(yn.dot)?this.parseMember(e,t,s,i,a):(i.stop=!0,e)}parseMember(e,t,s,r,i){const a=this.startNodeAt(t,s),n=this.eat(yn.bracketL);a.object=e,a.computed=n;const o=!n&&this.match(yn.privateName)&&this.state.value,u=n?this.parseExpression():o?this.parsePrivateName():this.parseIdentifier(!0);return!1!==o&&("Super"===a.object.type&&this.raise(t,wn.SuperPrivateField),this.classScope.usePrivateName(o,u.start)),a.property=u,n&&this.expect(yn.bracketR),r.optionalChainMember?(a.optional=i,this.finishNode(a,"OptionalMemberExpression")):this.finishNode(a,"MemberExpression")}parseBind(e,t,s,r,i){const a=this.startNodeAt(t,s);return a.object=e,a.callee=this.parseNoCallExpr(),i.stop=!0,this.parseSubscripts(this.finishNode(a,"BindExpression"),t,s,r)}parseCoverCallAndAsyncArrowHead(e,t,s,r,i){const a=this.state.maybeInArrowParameters;let n=null;this.state.maybeInArrowParameters=!0,this.next();let o=this.startNodeAt(t,s);return o.callee=e,r.maybeAsyncArrow&&(this.expressionScope.enter(new Uo(2)),n=new Vo),r.optionalChainMember&&(o.optional=i),o.arguments=i?this.parseCallExpressionArguments(yn.parenR):this.parseCallExpressionArguments(yn.parenR,"Import"===e.type,"Super"!==e.type,o,n),this.finishCallExpression(o,r.optionalChainMember),r.maybeAsyncArrow&&this.shouldParseAsyncArrow()&&!i?(r.stop=!0,this.expressionScope.validateAsPattern(),this.expressionScope.exit(),o=this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,s),o)):(r.maybeAsyncArrow&&(this.checkExpressionErrors(n,!0),this.expressionScope.exit()),this.toReferencedArguments(o)),this.state.maybeInArrowParameters=a,o}toReferencedArguments(e,t){this.toReferencedListDeep(e.arguments,t)}parseTaggedTemplateExpression(e,t,s,r){const i=this.startNodeAt(t,s);return i.tag=e,i.quasi=this.parseTemplate(!0),r.optionalChainMember&&this.raise(t,wn.OptionalChainingNoTemplate),this.finishNode(i,"TaggedTemplateExpression")}atPossibleAsyncArrow(e){return"Identifier"===e.type&&"async"===e.name&&this.state.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start==5&&e.start===this.state.potentialArrowAt}finishCallExpression(e,t){if("Import"===e.callee.type)if(2===e.arguments.length&&(this.hasPlugin("moduleAttributes")||this.expectPlugin("importAssertions")),0===e.arguments.length||e.arguments.length>2)this.raise(e.start,wn.ImportCallArity,this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")?"one or two arguments":"one argument");else for(const t of e.arguments)"SpreadElement"===t.type&&this.raise(t.start,wn.ImportCallSpreadArgument);return this.finishNode(e,t?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(e,t,s,r,i){const a=[];let n=!0;const o=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(e);){if(n)n=!1;else if(this.expect(yn.comma),this.match(e)){!t||this.hasPlugin("importAssertions")||this.hasPlugin("moduleAttributes")||this.raise(this.state.lastTokStart,wn.ImportCallArgumentTrailingComma),r&&this.addExtra(r,"trailingComma",this.state.lastTokStart),this.next();break}a.push(this.parseExprListItem(!1,i,{start:0},s))}return this.state.inFSharpPipelineDirectBody=o,a}shouldParseAsyncArrow(){return this.match(yn.arrow)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(e,t){var s;return this.expect(yn.arrow),this.parseArrowExpression(e,t.arguments,!0,null==(s=t.extra)?void 0:s.trailingComma),e}parseNoCallExpr(){const e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)}parseExprAtom(e){let t;switch(this.state.type){case yn._super:return this.parseSuper();case yn._import:return t=this.startNode(),this.next(),this.match(yn.dot)?this.parseImportMetaProperty(t):(this.match(yn.parenL)||this.raise(this.state.lastTokStart,wn.UnsupportedImport),this.finishNode(t,"Import"));case yn._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case yn.name:{const e=this.state.potentialArrowAt===this.state.start,t=this.state.containsEsc,s=this.parseIdentifier();if(!t&&"async"===s.name&&!this.canInsertSemicolon()){if(this.match(yn._function))return this.next(),this.parseFunction(this.startNodeAtNode(s),void 0,!0);if(this.match(yn.name))return 61===this.lookaheadCharCode()?this.parseAsyncArrowUnaryFunction(s):s;if(this.match(yn._do))return this.parseDo(!0)}return e&&this.match(yn.arrow)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(s),[s],!1)):s}case yn._do:return this.parseDo(!1);case yn.slash:case yn.slashAssign:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case yn.num:return this.parseNumericLiteral(this.state.value);case yn.bigint:return this.parseBigIntLiteral(this.state.value);case yn.decimal:return this.parseDecimalLiteral(this.state.value);case yn.string:return this.parseStringLiteral(this.state.value);case yn._null:return this.parseNullLiteral();case yn._true:return this.parseBooleanLiteral(!0);case yn._false:return this.parseBooleanLiteral(!1);case yn.parenL:{const e=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(e)}case yn.bracketBarL:case yn.bracketHashL:return this.parseArrayLike(this.state.type===yn.bracketBarL?yn.bracketBarR:yn.bracketR,!1,!0,e);case yn.bracketL:return this.parseArrayLike(yn.bracketR,!0,!1,e);case yn.braceBarL:case yn.braceHashL:return this.parseObjectLike(this.state.type===yn.braceBarL?yn.braceBarR:yn.braceR,!1,!0,e);case yn.braceL:return this.parseObjectLike(yn.braceR,!1,!1,e);case yn._function:return this.parseFunctionOrFunctionSent();case yn.at:this.parseDecorators();case yn._class:return t=this.startNode(),this.takeDecorators(t),this.parseClass(t,!1);case yn._new:return this.parseNewOrNewTarget();case yn.backQuote:return this.parseTemplate(!1);case yn.doubleColon:{t=this.startNode(),this.next(),t.object=null;const e=t.callee=this.parseNoCallExpr();if("MemberExpression"===e.type)return this.finishNode(t,"BindExpression");throw this.raise(e.start,wn.UnsupportedBind)}case yn.privateName:{const e=this.state.start,s=this.state.value;if(t=this.parsePrivateName(),this.match(yn._in))this.expectPlugin("privateIn"),this.classScope.usePrivateName(s,t.start);else{if(!this.hasPlugin("privateIn"))throw this.unexpected(e);this.raise(this.state.start,wn.PrivateInExpectedIn,s)}return t}case yn.hash:if(this.state.inPipeline)return t=this.startNode(),"smart"!==this.getPluginOption("pipelineOperator","proposal")&&this.raise(t.start,wn.PrimaryTopicRequiresSmartPipeline),this.next(),this.primaryTopicReferenceIsAllowedInCurrentTopicContext()||this.raise(t.start,wn.PrimaryTopicNotAllowed),this.registerTopicReference(),this.finishNode(t,"PipelinePrimaryTopicReference");case yn.relational:if("<"===this.state.value){const e=this.input.codePointAt(this.nextTokenStart());(_n(e)||62===e)&&this.expectOnePlugin(["jsx","flow","typescript"])}default:throw this.unexpected()}}parseAsyncArrowUnaryFunction(e){const t=this.startNodeAtNode(e);this.prodParam.enter(Eo(!0,this.prodParam.hasYield));const s=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(this.state.pos,wn.LineTerminatorBeforeArrow),this.expect(yn.arrow),this.parseArrowExpression(t,s,!0),t}parseDo(e){this.expectPlugin("doExpressions"),e&&this.expectPlugin("asyncDoExpressions");const t=this.startNode();t.async=e,this.next();const s=this.state.labels;return this.state.labels=[],e?(this.prodParam.enter(2),t.body=this.parseBlock(),this.prodParam.exit()):t.body=this.parseBlock(),this.state.labels=s,this.finishNode(t,"DoExpression")}parseSuper(){const e=this.startNode();return this.next(),!this.match(yn.parenL)||this.scope.allowDirectSuper||this.options.allowSuperOutsideMethod?this.scope.allowSuper||this.options.allowSuperOutsideMethod||this.raise(e.start,wn.UnexpectedSuper):this.raise(e.start,wn.SuperNotAllowed),this.match(yn.parenL)||this.match(yn.bracketL)||this.match(yn.dot)||this.raise(e.start,wn.UnsupportedSuper),this.finishNode(e,"Super")}parseMaybePrivateName(e){return this.match(yn.privateName)?(e||this.raise(this.state.start+1,wn.UnexpectedPrivateField),this.parsePrivateName()):this.parseIdentifier(!0)}parsePrivateName(){const e=this.startNode(),t=this.startNodeAt(this.state.start+1,new gn(this.state.curLine,this.state.start+1-this.state.lineStart)),s=this.state.value;return this.next(),e.id=this.createIdentifier(t,s),this.finishNode(e,"PrivateName")}parseFunctionOrFunctionSent(){const e=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(yn.dot)){const t=this.createIdentifier(this.startNodeAtNode(e),"function");return this.next(),this.parseMetaProperty(e,t,"sent")}return this.parseFunction(e)}parseMetaProperty(e,t,s){e.meta=t,"function"===t.name&&"sent"===s&&(this.isContextual(s)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected());const r=this.state.containsEsc;return e.property=this.parseIdentifier(!0),(e.property.name!==s||r)&&this.raise(e.property.start,wn.UnsupportedMetaProperty,t.name,s),this.finishNode(e,"MetaProperty")}parseImportMetaProperty(e){const t=this.createIdentifier(this.startNodeAtNode(e),"import");return this.next(),this.isContextual("meta")&&(this.inModule||this.raise(t.start,Sn.ImportMetaOutsideModule),this.sawUnambiguousESM=!0),this.parseMetaProperty(e,t,"meta")}parseLiteralAtNode(e,t,s){return this.addExtra(s,"rawValue",e),this.addExtra(s,"raw",this.input.slice(s.start,this.state.end)),s.value=e,this.next(),this.finishNode(s,t)}parseLiteral(e,t){const s=this.startNode();return this.parseLiteralAtNode(e,t,s)}parseStringLiteral(e){return this.parseLiteral(e,"StringLiteral")}parseNumericLiteral(e){return this.parseLiteral(e,"NumericLiteral")}parseBigIntLiteral(e){return this.parseLiteral(e,"BigIntLiteral")}parseDecimalLiteral(e){return this.parseLiteral(e,"DecimalLiteral")}parseRegExpLiteral(e){const t=this.parseLiteral(e.value,"RegExpLiteral");return t.pattern=e.pattern,t.flags=e.flags,t}parseBooleanLiteral(e){const t=this.startNode();return t.value=e,this.next(),this.finishNode(t,"BooleanLiteral")}parseNullLiteral(){const e=this.startNode();return this.next(),this.finishNode(e,"NullLiteral")}parseParenAndDistinguishExpression(e){const t=this.state.start,s=this.state.startLoc;let r;this.next(),this.expressionScope.enter(new Uo(1));const i=this.state.maybeInArrowParameters,a=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;const n=this.state.start,o=this.state.startLoc,u=[],h=new Vo,c={start:0};let p,l,d=!0;for(;!this.match(yn.parenR);){if(d)d=!1;else if(this.expect(yn.comma,c.start||null),this.match(yn.parenR)){l=this.state.start;break}if(this.match(yn.ellipsis)){const e=this.state.start,t=this.state.startLoc;p=this.state.start,u.push(this.parseParenItem(this.parseRestBinding(),e,t)),this.checkCommaAfterRest(41);break}u.push(this.parseMaybeAssignAllowIn(h,this.parseParenItem,c))}const D=this.state.lastTokEnd,m=this.state.lastTokEndLoc;this.expect(yn.parenR),this.state.maybeInArrowParameters=i,this.state.inFSharpPipelineDirectBody=a;let f=this.startNodeAt(t,s);if(e&&this.shouldParseArrow()&&(f=this.parseArrow(f)))return this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(f,u,!1),f;if(this.expressionScope.exit(),u.length||this.unexpected(this.state.lastTokStart),l&&this.unexpected(l),p&&this.unexpected(p),this.checkExpressionErrors(h,!0),c.start&&this.unexpected(c.start),this.toReferencedListDeep(u,!0),u.length>1?(r=this.startNodeAt(n,o),r.expressions=u,this.finishNodeAt(r,"SequenceExpression",D,m)):r=u[0],!this.options.createParenthesizedExpressions)return this.addExtra(r,"parenthesized",!0),this.addExtra(r,"parenStart",t),r;const y=this.startNodeAt(t,s);return y.expression=r,this.finishNode(y,"ParenthesizedExpression"),y}shouldParseArrow(){return!this.canInsertSemicolon()}parseArrow(e){if(this.eat(yn.arrow))return e}parseParenItem(e,t,s){return e}parseNewOrNewTarget(){const e=this.startNode();if(this.next(),this.match(yn.dot)){const t=this.createIdentifier(this.startNodeAtNode(e),"new");this.next();const s=this.parseMetaProperty(e,t,"target");return this.scope.inNonArrowFunction||this.scope.inClass||this.raise(s.start,wn.UnexpectedNewTarget),s}return this.parseNew(e)}parseNew(e){return e.callee=this.parseNoCallExpr(),"Import"===e.callee.type?this.raise(e.callee.start,wn.ImportCallNotNewExpression):this.isOptionalChain(e.callee)?this.raise(this.state.lastTokEnd,wn.OptionalChainingNoNew):this.eat(yn.questionDot)&&this.raise(this.state.start,wn.OptionalChainingNoNew),this.parseNewArguments(e),this.finishNode(e,"NewExpression")}parseNewArguments(e){if(this.eat(yn.parenL)){const t=this.parseExprList(yn.parenR);this.toReferencedList(t),e.arguments=t}else e.arguments=[]}parseTemplateElement(e){const t=this.startNode();return null===this.state.value&&(e||this.raise(this.state.start+1,wn.InvalidEscapeSequenceTemplate)),t.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),t.tail=this.match(yn.backQuote),this.finishNode(t,"TemplateElement")}parseTemplate(e){const t=this.startNode();this.next(),t.expressions=[];let s=this.parseTemplateElement(e);for(t.quasis=[s];!s.tail;)this.expect(yn.dollarBraceL),t.expressions.push(this.parseTemplateSubstitution()),this.expect(yn.braceR),t.quasis.push(s=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(e,t,s,r){s&&this.expectPlugin("recordAndTuple");const i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const a=Object.create(null);let n=!0;const o=this.startNode();for(o.properties=[],this.next();!this.match(e);){if(n)n=!1;else if(this.expect(yn.comma),this.match(e)){this.addExtra(o,"trailingComma",this.state.lastTokStart);break}const i=this.parsePropertyDefinition(t,r);t||this.checkProto(i,s,a,r),s&&!this.isObjectProperty(i)&&"SpreadElement"!==i.type&&this.raise(i.start,wn.InvalidRecordProperty),i.shorthand&&this.addExtra(i,"shorthand",!0),o.properties.push(i)}this.next(),this.state.inFSharpPipelineDirectBody=i;let u="ObjectExpression";return t?u="ObjectPattern":s&&(u="RecordExpression"),this.finishNode(o,u)}maybeAsyncOrAccessorProp(e){return!e.computed&&"Identifier"===e.key.type&&(this.isLiteralPropertyName()||this.match(yn.bracketL)||this.match(yn.star))}parsePropertyDefinition(e,t){let s=[];if(this.match(yn.at))for(this.hasPlugin("decorators")&&this.raise(this.state.start,wn.UnsupportedPropertyDecorator);this.match(yn.at);)s.push(this.parseDecorator());const r=this.startNode();let i,a,n=!1,o=!1,u=!1;if(this.match(yn.ellipsis))return s.length&&this.unexpected(),e?(this.next(),r.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(r,"RestElement")):this.parseSpread();s.length&&(r.decorators=s,s=[]),r.method=!1,(e||t)&&(i=this.state.start,a=this.state.startLoc),e||(n=this.eat(yn.star));const h=this.state.containsEsc,c=this.parsePropertyName(r,!1);if(!e&&!n&&!h&&this.maybeAsyncOrAccessorProp(r)){const e=c.name;"async"!==e||this.hasPrecedingLineBreak()||(o=!0,n=this.eat(yn.star),this.parsePropertyName(r,!1)),"get"!==e&&"set"!==e||(u=!0,r.kind=e,this.match(yn.star)&&(n=!0,this.raise(this.state.pos,wn.AccessorIsGenerator,e),this.next()),this.parsePropertyName(r,!1))}return this.parseObjPropValue(r,i,a,n,o,e,u,t),r}getGetterSetterExpectedParamCount(e){return"get"===e.kind?0:1}getObjectOrClassMethodParams(e){return e.params}checkGetterSetterParams(e){var t;const s=this.getGetterSetterExpectedParamCount(e),r=this.getObjectOrClassMethodParams(e),i=e.start;r.length!==s&&("get"===e.kind?this.raise(i,wn.BadGetterArity):this.raise(i,wn.BadSetterArity)),"set"===e.kind&&"RestElement"===(null==(t=r[r.length-1])?void 0:t.type)&&this.raise(i,wn.BadSetterRestParameter)}parseObjectMethod(e,t,s,r,i){return i?(this.parseMethod(e,t,!1,!1,!1,"ObjectMethod"),this.checkGetterSetterParams(e),e):s||t||this.match(yn.parenL)?(r&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,s,!1,!1,"ObjectMethod")):void 0}parseObjectProperty(e,t,s,r,i){return e.shorthand=!1,this.eat(yn.colon)?(e.value=r?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssignAllowIn(i),this.finishNode(e,"ObjectProperty")):e.computed||"Identifier"!==e.key.type?void 0:(this.checkReservedWord(e.key.name,e.key.start,!0,!1),r?e.value=this.parseMaybeDefault(t,s,e.key.__clone()):this.match(yn.eq)&&i?(-1===i.shorthandAssign&&(i.shorthandAssign=this.state.start),e.value=this.parseMaybeDefault(t,s,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))}parseObjPropValue(e,t,s,r,i,a,n,o){const u=this.parseObjectMethod(e,r,i,a,n)||this.parseObjectProperty(e,t,s,a,o);return u||this.unexpected(),u}parsePropertyName(e,t){if(this.eat(yn.bracketL))e.computed=!0,e.key=this.parseMaybeAssignAllowIn(),this.expect(yn.bracketR);else{const s=this.state.inPropertyName;this.state.inPropertyName=!0;const r=this.state.type;e.key=r===yn.num||r===yn.string||r===yn.bigint||r===yn.decimal?this.parseExprAtom():this.parseMaybePrivateName(t),r!==yn.privateName&&(e.computed=!1),this.state.inPropertyName=s}return e.key}initFunction(e,t){e.id=null,e.generator=!1,e.async=!!t}parseMethod(e,t,s,r,i,a,n=!1){this.initFunction(e,s),e.generator=!!t;const o=r;return this.scope.enter(18|(n?64:0)|(i?32:0)),this.prodParam.enter(Eo(s,e.generator)),this.parseFunctionParams(e,o),this.parseFunctionBodyAndFinish(e,a,!0),this.prodParam.exit(),this.scope.exit(),e}parseArrayLike(e,t,s,r){s&&this.expectPlugin("recordAndTuple");const i=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;const a=this.startNode();return this.next(),a.elements=this.parseExprList(e,!s,r,a),this.state.inFSharpPipelineDirectBody=i,this.finishNode(a,s?"TupleExpression":"ArrayExpression")}parseArrowExpression(e,t,s,r){this.scope.enter(6);let i=Eo(s,!1);!this.match(yn.bracketL)&&this.prodParam.hasIn&&(i|=8),this.prodParam.enter(i),this.initFunction(e,s);const a=this.state.maybeInArrowParameters;return t&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(e,t,r)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(e,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=a,this.finishNode(e,"ArrowFunctionExpression")}setArrowFunctionParameters(e,t,s){e.params=this.toAssignableList(t,s,!1)}parseFunctionBodyAndFinish(e,t,s=!1){this.parseFunctionBody(e,!1,s),this.finishNode(e,t)}parseFunctionBody(e,t,s=!1){const r=t&&!this.match(yn.braceL);if(this.expressionScope.enter($o()),r)e.body=this.parseMaybeAssign(),this.checkParams(e,!1,t,!1);else{const r=this.state.strict,i=this.state.labels;this.state.labels=[],this.prodParam.enter(4|this.prodParam.currentFlags()),e.body=this.parseBlock(!0,!1,(i=>{const a=!this.isSimpleParamList(e.params);if(i&&a){const t="method"!==e.kind&&"constructor"!==e.kind||!e.key?e.start:e.key.end;this.raise(t,wn.IllegalLanguageModeDirective)}const n=!r&&this.state.strict;this.checkParams(e,!(this.state.strict||t||s||a),t,n),this.state.strict&&e.id&&this.checkLVal(e.id,"function name",65,void 0,void 0,n)})),this.prodParam.exit(),this.expressionScope.exit(),this.state.labels=i}}isSimpleParamList(e){for(let t=0,s=e.length;t10)return;if(!function(e){return Yn.has(e)}(e))return;if("yield"===e){if(this.prodParam.hasYield)return void this.raise(t,wn.YieldBindingIdentifier)}else if("await"===e){if(this.prodParam.hasAwait)return void this.raise(t,wn.AwaitBindingIdentifier);if(this.scope.inStaticBlock&&!this.scope.inNonArrowFunction)return void this.raise(t,wn.AwaitBindingIdentifierInStaticBlock);this.expressionScope.recordAsyncArrowParametersError(t,wn.AwaitBindingIdentifier)}else if("arguments"===e&&this.scope.inClassAndNotInNonArrowFunction)return void this.raise(t,wn.ArgumentsInClass);if(s&&Jn(e))return void this.raise(t,wn.UnexpectedKeyword,e);(this.state.strict?r?Xn:Gn:Wn)(e,this.inModule)&&this.raise(t,wn.UnexpectedReservedWord,e)}isAwaitAllowed(){return!!this.prodParam.hasAwait||!(!this.options.allowAwaitOutsideFunction||this.scope.inFunction)}parseAwait(e,t){const s=this.startNodeAt(e,t);return this.expressionScope.recordParameterInitializerError(s.start,wn.AwaitExpressionFormalParameter),this.eat(yn.star)&&this.raise(s.start,wn.ObsoleteAwaitStar),this.scope.inFunction||this.options.allowAwaitOutsideFunction||(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(s.argument=this.parseMaybeUnary(null,!0)),this.finishNode(s,"AwaitExpression")}isAmbiguousAwait(){return this.hasPrecedingLineBreak()||this.match(yn.plusMin)||this.match(yn.parenL)||this.match(yn.bracketL)||this.match(yn.backQuote)||this.match(yn.regexp)||this.match(yn.slash)||this.hasPlugin("v8intrinsic")&&this.match(yn.modulo)}parseYield(){const e=this.startNode();this.expressionScope.recordParameterInitializerError(e.start,wn.YieldInParameter),this.next();let t=!1,s=null;if(!this.hasPrecedingLineBreak())switch(t=this.eat(yn.star),this.state.type){case yn.semi:case yn.eof:case yn.braceR:case yn.parenR:case yn.bracketR:case yn.braceBarR:case yn.colon:case yn.comma:if(!t)break;default:s=this.parseMaybeAssign()}return e.delegate=t,e.argument=s,this.finishNode(e,"YieldExpression")}checkPipelineAtInfixOperator(e,t){"smart"===this.getPluginOption("pipelineOperator","proposal")&&"SequenceExpression"===e.type&&this.raise(t,wn.PipelineHeadSequenceExpression)}parseSmartPipelineBody(e,t,s){return this.checkSmartPipelineBodyEarlyErrors(e,t),this.parseSmartPipelineBodyInStyle(e,t,s)}checkSmartPipelineBodyEarlyErrors(e,t){if(this.match(yn.arrow))throw this.raise(this.state.start,wn.PipelineBodyNoArrow);"SequenceExpression"===e.type&&this.raise(t,wn.PipelineBodySequenceExpression)}parseSmartPipelineBodyInStyle(e,t,s){const r=this.startNodeAt(t,s),i=this.isSimpleReference(e);return i?r.callee=e:(this.topicReferenceWasUsedInCurrentTopicContext()||this.raise(t,wn.PipelineTopicUnused),r.expression=e),this.finishNode(r,i?"PipelineBareFunction":"PipelineTopicExpression")}isSimpleReference(e){switch(e.type){case"MemberExpression":return!e.computed&&this.isSimpleReference(e.object);case"Identifier":return!0;default:return!1}}withTopicPermittingContext(e){const t=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return e()}finally{this.state.topicContext=t}}withTopicForbiddingContext(e){const t=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return e()}finally{this.state.topicContext=t}}withSoloAwaitPermittingContext(e){const t=this.state.soloAwait;this.state.soloAwait=!0;try{return e()}finally{this.state.soloAwait=t}}allowInAnd(e){const t=this.prodParam.currentFlags();if(8&~t){this.prodParam.enter(8|t);try{return e()}finally{this.prodParam.exit()}}return e()}disallowInAnd(e){const t=this.prodParam.currentFlags();if(8&t){this.prodParam.enter(-9&t);try{return e()}finally{this.prodParam.exit()}}return e()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}primaryTopicReferenceIsAllowedInCurrentTopicContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentTopicContext(){return null!=this.state.topicContext.maxTopicIndex&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(e){const t=this.state.start,s=this.state.startLoc;this.state.potentialArrowAt=this.state.start;const r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;const i=this.parseExprOp(this.parseMaybeUnary(),t,s,e);return this.state.inFSharpPipelineDirectBody=r,i}parseModuleExpression(){this.expectPlugin("moduleBlocks");const e=this.startNode();this.next(),this.eat(yn.braceL);const t=this.initializeScopes(!0);this.enterInitialScopes();const s=this.startNode();try{e.body=this.parseProgram(s,yn.braceR,"module")}finally{t()}return this.eat(yn.braceR),this.finishNode(e,"ModuleExpression")}}{parseTopLevel(e,t){return e.program=this.parseProgram(t),e.comments=this.state.comments,this.options.tokens&&(e.tokens=function(e){for(let t=0;t0)for(const[e]of Array.from(this.scope.undefinedExports)){const t=this.scope.undefinedExports.get(e);this.raise(t,wn.ModuleExportUndefined,e)}return this.finishNode(e,"Program")}stmtToDirective(e){const t=e.expression,s=this.startNodeAt(t.start,t.loc.start),r=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),a=s.value=i.slice(1,-1);return this.addExtra(s,"raw",i),this.addExtra(s,"rawValue",a),r.value=this.finishNodeAt(s,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(r,"Directive",e.end,e.loc.end)}parseInterpreterDirective(){if(!this.match(yn.interpreterDirective))return null;const e=this.startNode();return e.value=this.state.value,this.next(),this.finishNode(e,"InterpreterDirective")}isLet(e){return!!this.isContextual("let")&&this.isLetKeyword(e)}isLetKeyword(e){const t=this.nextTokenStart(),s=this.codePointAtPos(t);if(92===s||91===s)return!0;if(e)return!1;if(123===s)return!0;if(_n(s)){Xo.lastIndex=t;const e=Xo.exec(this.input);if(null!==e){const s=this.codePointAtPos(t+e[0].length);if(!Un(s)&&92!==s)return!1}return!0}return!1}parseStatement(e,t){return this.match(yn.at)&&this.parseDecorators(!0),this.parseStatementContent(e,t)}parseStatementContent(e,t){let s=this.state.type;const r=this.startNode();let i;switch(this.isLet(e)&&(s=yn._var,i="let"),s){case yn._break:case yn._continue:return this.parseBreakContinueStatement(r,s.keyword);case yn._debugger:return this.parseDebuggerStatement(r);case yn._do:return this.parseDoStatement(r);case yn._for:return this.parseForStatement(r);case yn._function:if(46===this.lookaheadCharCode())break;return e&&(this.state.strict?this.raise(this.state.start,wn.StrictFunction):"if"!==e&&"label"!==e&&this.raise(this.state.start,wn.SloppyFunction)),this.parseFunctionStatement(r,!1,!e);case yn._class:return e&&this.unexpected(),this.parseClass(r,!0);case yn._if:return this.parseIfStatement(r);case yn._return:return this.parseReturnStatement(r);case yn._switch:return this.parseSwitchStatement(r);case yn._throw:return this.parseThrowStatement(r);case yn._try:return this.parseTryStatement(r);case yn._const:case yn._var:return i=i||this.state.value,e&&"var"!==i&&this.raise(this.state.start,wn.UnexpectedLexicalDeclaration),this.parseVarStatement(r,i);case yn._while:return this.parseWhileStatement(r);case yn._with:return this.parseWithStatement(r);case yn.braceL:return this.parseBlock();case yn.semi:return this.parseEmptyStatement(r);case yn._import:{const e=this.lookaheadCharCode();if(40===e||46===e)break}case yn._export:{let e;return this.options.allowImportExportEverywhere||t||this.raise(this.state.start,wn.UnexpectedImportExport),this.next(),s===yn._import?(e=this.parseImport(r),"ImportDeclaration"!==e.type||e.importKind&&"value"!==e.importKind||(this.sawUnambiguousESM=!0)):(e=this.parseExport(r),("ExportNamedDeclaration"!==e.type||e.exportKind&&"value"!==e.exportKind)&&("ExportAllDeclaration"!==e.type||e.exportKind&&"value"!==e.exportKind)&&"ExportDefaultDeclaration"!==e.type||(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed(r),e}default:if(this.isAsyncFunction())return e&&this.raise(this.state.start,wn.AsyncFunctionInSingleStatementContext),this.next(),this.parseFunctionStatement(r,!0,!e)}const a=this.state.value,n=this.parseExpression();return s===yn.name&&"Identifier"===n.type&&this.eat(yn.colon)?this.parseLabeledStatement(r,a,n,e):this.parseExpressionStatement(r,n)}assertModuleNodeAllowed(e){this.options.allowImportExportEverywhere||this.inModule||this.raise(e.start,Sn.ImportOutsideModule)}takeDecorators(e){const t=this.state.decoratorStack[this.state.decoratorStack.length-1];t.length&&(e.decorators=t,this.resetStartLocationFromNode(e,t[0]),this.state.decoratorStack[this.state.decoratorStack.length-1]=[])}canHaveLeadingDecorator(){return this.match(yn._class)}parseDecorators(e){const t=this.state.decoratorStack[this.state.decoratorStack.length-1];for(;this.match(yn.at);){const e=this.parseDecorator();t.push(e)}if(this.match(yn._export))e||this.unexpected(),this.hasPlugin("decorators")&&!this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(this.state.start,wn.DecoratorExportClass);else if(!this.canHaveLeadingDecorator())throw this.raise(this.state.start,wn.UnexpectedLeadingDecorator)}parseDecorator(){this.expectOnePlugin(["decorators-legacy","decorators"]);const e=this.startNode();if(this.next(),this.hasPlugin("decorators")){this.state.decoratorStack.push([]);const t=this.state.start,s=this.state.startLoc;let r;if(this.eat(yn.parenL))r=this.parseExpression(),this.expect(yn.parenR);else for(r=this.parseIdentifier(!1);this.eat(yn.dot);){const e=this.startNodeAt(t,s);e.object=r,e.property=this.parseIdentifier(!0),e.computed=!1,r=this.finishNode(e,"MemberExpression")}e.expression=this.parseMaybeDecoratorArguments(r),this.state.decoratorStack.pop()}else e.expression=this.parseExprSubscripts();return this.finishNode(e,"Decorator")}parseMaybeDecoratorArguments(e){if(this.eat(yn.parenL)){const t=this.startNodeAtNode(e);return t.callee=e,t.arguments=this.parseCallExpressionArguments(yn.parenR,!1),this.toReferencedList(t.arguments),this.finishNode(t,"CallExpression")}return e}parseBreakContinueStatement(e,t){const s="break"===t;return this.next(),this.isLineTerminator()?e.label=null:(e.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(e,t),this.finishNode(e,s?"BreakStatement":"ContinueStatement")}verifyBreakContinue(e,t){const s="break"===t;let r;for(r=0;rthis.parseStatement("do"))),this.state.labels.pop(),this.expect(yn._while),e.test=this.parseHeaderExpression(),this.eat(yn.semi),this.finishNode(e,"DoWhileStatement")}parseForStatement(e){this.next(),this.state.labels.push(Wo);let t=-1;if(this.isAwaitAllowed()&&this.eatContextual("await")&&(t=this.state.lastTokStart),this.scope.enter(0),this.expect(yn.parenL),this.match(yn.semi))return t>-1&&this.unexpected(t),this.parseFor(e,null);const s=this.isContextual("let"),r=s&&this.isLetKeyword();if(this.match(yn._var)||this.match(yn._const)||r){const s=this.startNode(),i=r?"let":this.state.value;return this.next(),this.parseVar(s,!0,i),this.finishNode(s,"VariableDeclaration"),(this.match(yn._in)||this.isContextual("of"))&&1===s.declarations.length?this.parseForIn(e,s,t):(t>-1&&this.unexpected(t),this.parseFor(e,s))}const i=this.match(yn.name)&&!this.state.containsEsc,a=new Vo,n=this.parseExpression(!0,a),o=this.isContextual("of");if(o&&(s?this.raise(n.start,wn.ForOfLet):-1===t&&i&&"Identifier"===n.type&&"async"===n.name&&this.raise(n.start,wn.ForOfAsync)),o||this.match(yn._in)){this.toAssignable(n,!0);const s=o?"for-of statement":"for-in statement";return this.checkLVal(n,s),this.parseForIn(e,n,t)}return this.checkExpressionErrors(a,!0),t>-1&&this.unexpected(t),this.parseFor(e,n)}parseFunctionStatement(e,t,s){return this.next(),this.parseFunction(e,1|(s?0:2),t)}parseIfStatement(e){return this.next(),e.test=this.parseHeaderExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(yn._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")}parseReturnStatement(e){return this.prodParam.hasReturn||this.options.allowReturnOutsideFunction||this.raise(this.state.start,wn.IllegalReturn),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")}parseSwitchStatement(e){this.next(),e.discriminant=this.parseHeaderExpression();const t=e.cases=[];let s,r;for(this.expect(yn.braceL),this.state.labels.push(Go),this.scope.enter(0);!this.match(yn.braceR);)if(this.match(yn._case)||this.match(yn._default)){const e=this.match(yn._case);s&&this.finishNode(s,"SwitchCase"),t.push(s=this.startNode()),s.consequent=[],this.next(),e?s.test=this.parseExpression():(r&&this.raise(this.state.lastTokStart,wn.MultipleDefaultsInSwitch),r=!0,s.test=null),this.expect(yn.colon)}else s?s.consequent.push(this.parseStatement(null)):this.unexpected();return this.scope.exit(),s&&this.finishNode(s,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")}parseThrowStatement(e){return this.next(),this.hasPrecedingLineBreak()&&this.raise(this.state.lastTokEnd,wn.NewlineAfterThrow),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")}parseCatchClauseParam(){const e=this.parseBindingAtom(),t="Identifier"===e.type;return this.scope.enter(t?8:0),this.checkLVal(e,"catch clause",9),e}parseTryStatement(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(yn._catch)){const t=this.startNode();this.next(),this.match(yn.parenL)?(this.expect(yn.parenL),t.param=this.parseCatchClauseParam(),this.expect(yn.parenR)):(t.param=null,this.scope.enter(0)),t.body=this.withTopicForbiddingContext((()=>this.parseBlock(!1,!1))),this.scope.exit(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(yn._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,wn.NoCatchOrFinally),this.finishNode(e,"TryStatement")}parseVarStatement(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")}parseWhileStatement(e){return this.next(),e.test=this.parseHeaderExpression(),this.state.labels.push(Wo),e.body=this.withTopicForbiddingContext((()=>this.parseStatement("while"))),this.state.labels.pop(),this.finishNode(e,"WhileStatement")}parseWithStatement(e){return this.state.strict&&this.raise(this.state.start,wn.StrictWith),this.next(),e.object=this.parseHeaderExpression(),e.body=this.withTopicForbiddingContext((()=>this.parseStatement("with"))),this.finishNode(e,"WithStatement")}parseEmptyStatement(e){return this.next(),this.finishNode(e,"EmptyStatement")}parseLabeledStatement(e,t,s,r){for(const e of this.state.labels)e.name===t&&this.raise(s.start,wn.LabelRedeclaration,t);const i=this.state.type.isLoop?"loop":this.match(yn._switch)?"switch":null;for(let t=this.state.labels.length-1;t>=0;t--){const s=this.state.labels[t];if(s.statementStart!==e.start)break;s.statementStart=this.state.start,s.kind=i}return this.state.labels.push({name:t,kind:i,statementStart:this.state.start}),e.body=this.parseStatement(r?-1===r.indexOf("label")?r+"label":r:"label"),this.state.labels.pop(),e.label=s,this.finishNode(e,"LabeledStatement")}parseExpressionStatement(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")}parseBlock(e=!1,t=!0,s){const r=this.startNode();return e&&this.state.strictErrors.clear(),this.expect(yn.braceL),t&&this.scope.enter(0),this.parseBlockBody(r,e,!1,yn.braceR,s),t&&this.scope.exit(),this.finishNode(r,"BlockStatement")}isValidDirective(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized}parseBlockBody(e,t,s,r,i){const a=e.body=[],n=e.directives=[];this.parseBlockOrModuleBlockBody(a,t?n:void 0,s,r,i)}parseBlockOrModuleBlockBody(e,t,s,r,i){const a=this.state.strict;let n=!1,o=!1;for(;!this.match(r);){const r=this.parseStatement(null,s);if(t&&!o){if(this.isValidDirective(r)){const e=this.stmtToDirective(r);t.push(e),n||"use strict"!==e.value.value||(n=!0,this.setStrict(!0));continue}o=!0,this.state.strictErrors.clear()}e.push(r)}i&&i.call(this,n),a||this.setStrict(!1),this.next()}parseFor(e,t){return e.init=t,this.semicolon(!1),e.test=this.match(yn.semi)?null:this.parseExpression(),this.semicolon(!1),e.update=this.match(yn.parenR)?null:this.parseExpression(),this.expect(yn.parenR),e.body=this.withTopicForbiddingContext((()=>this.parseStatement("for"))),this.scope.exit(),this.state.labels.pop(),this.finishNode(e,"ForStatement")}parseForIn(e,t,s){const r=this.match(yn._in);return this.next(),r?s>-1&&this.unexpected(s):e.await=s>-1,"VariableDeclaration"!==t.type||null==t.declarations[0].init||r&&!this.state.strict&&"var"===t.kind&&"Identifier"===t.declarations[0].id.type?"AssignmentPattern"===t.type&&this.raise(t.start,wn.InvalidLhs,"for-loop"):this.raise(t.start,wn.ForInOfLoopInitializer,r?"for-in":"for-of"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(yn.parenR),e.body=this.withTopicForbiddingContext((()=>this.parseStatement("for"))),this.scope.exit(),this.state.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")}parseVar(e,t,s){const r=e.declarations=[],i=this.hasPlugin("typescript");for(e.kind=s;;){const e=this.startNode();if(this.parseVarId(e,s),this.eat(yn.eq)?e.init=t?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():("const"!==s||this.match(yn._in)||this.isContextual("of")?"Identifier"===e.id.type||t&&(this.match(yn._in)||this.isContextual("of"))||this.raise(this.state.lastTokEnd,wn.DeclarationMissingInitializer,"Complex binding patterns"):i||this.raise(this.state.lastTokEnd,wn.DeclarationMissingInitializer,"Const declarations"),e.init=null),r.push(this.finishNode(e,"VariableDeclarator")),!this.eat(yn.comma))break}return e}parseVarId(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,"variable declaration","var"===t?5:9,void 0,"var"!==t)}parseFunction(e,t=0,s=!1){const r=1&t,i=2&t,a=!(!r||4&t);this.initFunction(e,s),this.match(yn.star)&&i&&this.raise(this.state.start,wn.GeneratorInSingleStatementContext),e.generator=this.eat(yn.star),r&&(e.id=this.parseFunctionId(a));const n=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(Eo(s,e.generator)),r||(e.id=this.parseFunctionId()),this.parseFunctionParams(e,!1),this.withTopicForbiddingContext((()=>{this.parseFunctionBodyAndFinish(e,r?"FunctionDeclaration":"FunctionExpression")})),this.prodParam.exit(),this.scope.exit(),r&&!i&&this.registerFunctionStatementId(e),this.state.maybeInArrowParameters=n,e}parseFunctionId(e){return e||this.match(yn.name)?this.parseIdentifier():null}parseFunctionParams(e,t){this.expect(yn.parenL),this.expressionScope.enter(new _o(3)),e.params=this.parseBindingList(yn.parenR,41,!1,t),this.expressionScope.exit()}registerFunctionStatementId(e){e.id&&this.scope.declareName(e.id.name,this.state.strict||e.generator||e.async?this.scope.treatFunctionsAsVar?5:9:17,e.id.start)}parseClass(e,t,s){this.next(),this.takeDecorators(e);const r=this.state.strict;return this.state.strict=!0,this.parseClassId(e,t,s),this.parseClassSuper(e),e.body=this.parseClassBody(!!e.superClass,r),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(yn.eq)||this.match(yn.semi)||this.match(yn.braceR)}isClassMethod(){return this.match(yn.parenL)}isNonstaticConstructor(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)}parseClassBody(e,t){this.classScope.enter();const s={hadConstructor:!1,hadSuperClass:e};let r=[];const i=this.startNode();if(i.body=[],this.expect(yn.braceL),this.withTopicForbiddingContext((()=>{for(;!this.match(yn.braceR);){if(this.eat(yn.semi)){if(r.length>0)throw this.raise(this.state.lastTokEnd,wn.DecoratorSemicolon);continue}if(this.match(yn.at)){r.push(this.parseDecorator());continue}const e=this.startNode();r.length&&(e.decorators=r,this.resetStartLocationFromNode(e,r[0]),r=[]),this.parseClassMember(i,e,s),"constructor"===e.kind&&e.decorators&&e.decorators.length>0&&this.raise(e.start,wn.DecoratorConstructor)}})),this.state.strict=t,this.next(),r.length)throw this.raise(this.state.start,wn.TrailingDecorator);return this.classScope.exit(),this.finishNode(i,"ClassBody")}parseClassMemberFromModifier(e,t){const s=this.parseIdentifier(!0);if(this.isClassMethod()){const r=t;return r.kind="method",r.computed=!1,r.key=s,r.static=!1,this.pushClassMethod(e,r,!1,!1,!1,!1),!0}if(this.isClassProperty()){const r=t;return r.computed=!1,r.key=s,r.static=!1,e.body.push(this.parseClassProperty(r)),!0}return!1}parseClassMember(e,t,s){const r=this.isContextual("static");if(r){if(this.parseClassMemberFromModifier(e,t))return;if(this.eat(yn.braceL))return void this.parseClassStaticBlock(e,t)}this.parseClassMemberWithIsStatic(e,t,s,r)}parseClassMemberWithIsStatic(e,t,s,r){const i=t,a=t,n=t,o=t,u=i,h=i;if(t.static=r,this.eat(yn.star)){u.kind="method";const t=this.match(yn.privateName);return this.parseClassElementName(u),t?void this.pushClassPrivateMethod(e,a,!0,!1):(this.isNonstaticConstructor(i)&&this.raise(i.key.start,wn.ConstructorIsGenerator),void this.pushClassMethod(e,i,!0,!1,!1,!1))}const c=this.state.containsEsc,p=this.match(yn.privateName),l=this.parseClassElementName(t),d="Identifier"===l.type,D=this.state.start;if(this.parsePostMemberNameModifiers(h),this.isClassMethod()){if(u.kind="method",p)return void this.pushClassPrivateMethod(e,a,!1,!1);const r=this.isNonstaticConstructor(i);let n=!1;r&&(i.kind="constructor",s.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(l.start,wn.DuplicateConstructor),r&&this.hasPlugin("typescript")&&t.override&&this.raise(l.start,wn.OverrideOnConstructor),s.hadConstructor=!0,n=s.hadSuperClass),this.pushClassMethod(e,i,!1,!1,r,n)}else if(this.isClassProperty())p?this.pushClassPrivateProperty(e,o):this.pushClassProperty(e,n);else if(!d||"async"!==l.name||c||this.isLineTerminator())if(!d||"get"!==l.name&&"set"!==l.name||c||this.match(yn.star)&&this.isLineTerminator())this.isLineTerminator()?p?this.pushClassPrivateProperty(e,o):this.pushClassProperty(e,n):this.unexpected();else{u.kind=l.name;const t=this.match(yn.privateName);this.parseClassElementName(i),t?this.pushClassPrivateMethod(e,a,!1,!1):(this.isNonstaticConstructor(i)&&this.raise(i.key.start,wn.ConstructorIsAccessor),this.pushClassMethod(e,i,!1,!1,!1,!1)),this.checkGetterSetterParams(i)}else{const t=this.eat(yn.star);h.optional&&this.unexpected(D),u.kind="method";const s=this.match(yn.privateName);this.parseClassElementName(u),this.parsePostMemberNameModifiers(h),s?this.pushClassPrivateMethod(e,a,t,!0):(this.isNonstaticConstructor(i)&&this.raise(i.key.start,wn.ConstructorIsAsync),this.pushClassMethod(e,i,t,!0,!1,!1))}}parseClassElementName(e){const{type:t,value:s,start:r}=this.state;return t!==yn.name&&t!==yn.string||!e.static||"prototype"!==s||this.raise(r,wn.StaticPrototype),t===yn.privateName&&"constructor"===s&&this.raise(r,wn.ConstructorClassPrivateField),this.parsePropertyName(e,!0)}parseClassStaticBlock(e,t){var s;this.expectPlugin("classStaticBlock",t.start),this.scope.enter(208);const r=this.state.labels;this.state.labels=[],this.prodParam.enter(0);const i=t.body=[];this.parseBlockOrModuleBlockBody(i,void 0,!1,yn.braceR),this.prodParam.exit(),this.scope.exit(),this.state.labels=r,e.body.push(this.finishNode(t,"StaticBlock")),null!=(s=t.decorators)&&s.length&&this.raise(t.start,wn.DecoratorStaticBlock)}pushClassProperty(e,t){t.computed||"constructor"!==t.key.name&&"constructor"!==t.key.value||this.raise(t.key.start,wn.ConstructorClassField),e.body.push(this.parseClassProperty(t))}pushClassPrivateProperty(e,t){const s=this.parseClassPrivateProperty(t);e.body.push(s),this.classScope.declarePrivateName(this.getPrivateNameSV(s.key),0,s.key.start)}pushClassMethod(e,t,s,r,i,a){e.body.push(this.parseMethod(t,s,r,i,a,"ClassMethod",!0))}pushClassPrivateMethod(e,t,s,r){const i=this.parseMethod(t,s,r,!1,!1,"ClassPrivateMethod",!0);e.body.push(i);const a="get"===i.kind?i.static?6:2:"set"===i.kind?i.static?5:1:0;this.classScope.declarePrivateName(this.getPrivateNameSV(i.key),a,i.key.start)}parsePostMemberNameModifiers(e){}parseClassPrivateProperty(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassPrivateProperty")}parseClassProperty(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassProperty")}parseInitializer(e){this.scope.enter(80),this.expressionScope.enter($o()),this.prodParam.enter(0),e.value=this.eat(yn.eq)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(e,t,s,r=139){this.match(yn.name)?(e.id=this.parseIdentifier(),t&&this.checkLVal(e.id,"class name",r)):s||!t?e.id=null:this.unexpected(null,wn.MissingClassName)}parseClassSuper(e){e.superClass=this.eat(yn._extends)?this.parseExprSubscripts():null}parseExport(e){const t=this.maybeParseExportDefaultSpecifier(e),s=!t||this.eat(yn.comma),r=s&&this.eatExportStar(e),i=r&&this.maybeParseExportNamespaceSpecifier(e),a=s&&(!i||this.eat(yn.comma)),n=t||r;if(r&&!i)return t&&this.unexpected(),this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");const o=this.maybeParseExportNamedSpecifiers(e);if(t&&s&&!r&&!o||i&&a&&!o)throw this.unexpected(null,yn.braceL);let u;if(n||o?(u=!1,this.parseExportFrom(e,n)):u=this.maybeParseExportDeclaration(e),n||o||u)return this.checkExport(e,!0,!1,!!e.source),this.finishNode(e,"ExportNamedDeclaration");if(this.eat(yn._default))return e.declaration=this.parseExportDefaultExpression(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration");throw this.unexpected(null,yn.braceL)}eatExportStar(e){return this.eat(yn.star)}maybeParseExportDefaultSpecifier(e){if(this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom");const t=this.startNode();return t.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(t,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(e){if(this.isContextual("as")){e.specifiers||(e.specifiers=[]);const t=this.startNodeAt(this.state.lastTokStart,this.state.lastTokStartLoc);return this.next(),t.exported=this.parseModuleExportName(),e.specifiers.push(this.finishNode(t,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(e){return!!this.match(yn.braceL)&&(e.specifiers||(e.specifiers=[]),e.specifiers.push(...this.parseExportSpecifiers()),e.source=null,e.declaration=null,!0)}maybeParseExportDeclaration(e){return!!this.shouldParseExportDeclaration()&&(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e),!0)}isAsyncFunction(){if(!this.isContextual("async"))return!1;const e=this.nextTokenStart();return!An.test(this.input.slice(this.state.pos,e))&&this.isUnparsedContextual(e,"function")}parseExportDefaultExpression(){const e=this.startNode(),t=this.isAsyncFunction();if(this.match(yn._function)||t)return this.next(),t&&this.next(),this.parseFunction(e,5,t);if(this.match(yn._class))return this.parseClass(e,!0,!0);if(this.match(yn.at))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(this.state.start,wn.DecoratorBeforeExport),this.parseDecorators(!1),this.parseClass(e,!0,!0);if(this.match(yn._const)||this.match(yn._var)||this.isLet())throw this.raise(this.state.start,wn.UnsupportedDefaultExport);{const e=this.parseMaybeAssignAllowIn();return this.semicolon(),e}}parseExportDeclaration(e){return this.parseStatement(null)}isExportDefaultSpecifier(){if(this.match(yn.name)){const e=this.state.value;if("async"===e&&!this.state.containsEsc||"let"===e)return!1;if(("type"===e||"interface"===e)&&!this.state.containsEsc){const e=this.lookahead();if(e.type===yn.name&&"from"!==e.value||e.type===yn.braceL)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(yn._default))return!1;const e=this.nextTokenStart(),t=this.isUnparsedContextual(e,"from");if(44===this.input.charCodeAt(e)||this.match(yn.name)&&t)return!0;if(this.match(yn._default)&&t){const t=this.input.charCodeAt(this.nextTokenStartSince(e+4));return 34===t||39===t}return!1}parseExportFrom(e,t){if(this.eatContextual("from")){e.source=this.parseImportSource(),this.checkExport(e);const t=this.maybeParseImportAssertions();t&&(e.assertions=t)}else t?this.unexpected():e.source=null;this.semicolon()}shouldParseExportDeclaration(){if(this.match(yn.at)&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))){if(!this.getPluginOption("decorators","decoratorsBeforeExport"))return!0;this.unexpected(this.state.start,wn.DecoratorBeforeExport)}return"var"===this.state.type.keyword||"const"===this.state.type.keyword||"function"===this.state.type.keyword||"class"===this.state.type.keyword||this.isLet()||this.isAsyncFunction()}checkExport(e,t,s,r){if(t)if(s){if(this.checkDuplicateExports(e,"default"),this.hasPlugin("exportDefaultFrom")){var i;const t=e.declaration;"Identifier"!==t.type||"from"!==t.name||t.end-t.start!=4||null!=(i=t.extra)&&i.parenthesized||this.raise(t.start,wn.ExportDefaultFromAsIdentifier)}}else if(e.specifiers&&e.specifiers.length)for(const t of e.specifiers){const{exported:e}=t,s="Identifier"===e.type?e.name:e.value;if(this.checkDuplicateExports(t,s),!r&&t.local){const{local:e}=t;"Identifier"!==e.type?this.raise(t.start,wn.ExportBindingIsString,e.value,s):(this.checkReservedWord(e.name,e.start,!0,!1),this.scope.checkLocalExport(e))}}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type){const t=e.declaration.id;if(!t)throw new Error("Assertion failure");this.checkDuplicateExports(e,t.name)}else if("VariableDeclaration"===e.declaration.type)for(const t of e.declaration.declarations)this.checkDeclaration(t.id);if(this.state.decoratorStack[this.state.decoratorStack.length-1].length)throw this.raise(e.start,wn.UnsupportedDecoratorExport)}checkDeclaration(e){if("Identifier"===e.type)this.checkDuplicateExports(e,e.name);else if("ObjectPattern"===e.type)for(const t of e.properties)this.checkDeclaration(t);else if("ArrayPattern"===e.type)for(const t of e.elements)t&&this.checkDeclaration(t);else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type?this.checkDeclaration(e.argument):"AssignmentPattern"===e.type&&this.checkDeclaration(e.left)}checkDuplicateExports(e,t){this.exportedIdentifiers.has(t)&&this.raise(e.start,"default"===t?wn.DuplicateDefaultExport:wn.DuplicateExport,t),this.exportedIdentifiers.add(t)}parseExportSpecifiers(){const e=[];let t=!0;for(this.expect(yn.braceL);!this.eat(yn.braceR);){if(t)t=!1;else if(this.expect(yn.comma),this.eat(yn.braceR))break;const s=this.startNode();s.local=this.parseModuleExportName(),s.exported=this.eatContextual("as")?this.parseModuleExportName():s.local.__clone(),e.push(this.finishNode(s,"ExportSpecifier"))}return e}parseModuleExportName(){if(this.match(yn.string)){const e=this.parseStringLiteral(this.state.value),t=e.value.match(Ko);return t&&this.raise(e.start,wn.ModuleExportNameHasLoneSurrogate,t[0].charCodeAt(0).toString(16)),e}return this.parseIdentifier(!0)}parseImport(e){if(e.specifiers=[],!this.match(yn.string)){const t=!this.maybeParseDefaultImportSpecifier(e)||this.eat(yn.comma),s=t&&this.maybeParseStarImportSpecifier(e);t&&!s&&this.parseNamedImportSpecifiers(e),this.expectContextual("from")}e.source=this.parseImportSource();const t=this.maybeParseImportAssertions();if(t)e.assertions=t;else{const t=this.maybeParseModuleAttributes();t&&(e.attributes=t)}return this.semicolon(),this.finishNode(e,"ImportDeclaration")}parseImportSource(){return this.match(yn.string)||this.unexpected(),this.parseExprAtom()}shouldParseDefaultImport(e){return this.match(yn.name)}parseImportSpecifierLocal(e,t,s,r){t.local=this.parseIdentifier(),this.checkLVal(t.local,r,9),e.specifiers.push(this.finishNode(t,s))}parseAssertEntries(){const e=[],t=new Set;do{if(this.match(yn.braceR))break;const s=this.startNode(),r=this.state.value;if(t.has(r)&&this.raise(this.state.start,wn.ModuleAttributesWithDuplicateKeys,r),t.add(r),this.match(yn.string)?s.key=this.parseStringLiteral(r):s.key=this.parseIdentifier(!0),this.expect(yn.colon),!this.match(yn.string))throw this.unexpected(this.state.start,wn.ModuleAttributeInvalidValue);s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,"ImportAttribute"),e.push(s)}while(this.eat(yn.comma));return e}maybeParseModuleAttributes(){if(!this.match(yn._with)||this.hasPrecedingLineBreak())return this.hasPlugin("moduleAttributes")?[]:null;this.expectPlugin("moduleAttributes"),this.next();const e=[],t=new Set;do{const s=this.startNode();if(s.key=this.parseIdentifier(!0),"type"!==s.key.name&&this.raise(s.key.start,wn.ModuleAttributeDifferentFromType,s.key.name),t.has(s.key.name)&&this.raise(s.key.start,wn.ModuleAttributesWithDuplicateKeys,s.key.name),t.add(s.key.name),this.expect(yn.colon),!this.match(yn.string))throw this.unexpected(this.state.start,wn.ModuleAttributeInvalidValue);s.value=this.parseStringLiteral(this.state.value),this.finishNode(s,"ImportAttribute"),e.push(s)}while(this.eat(yn.comma));return e}maybeParseImportAssertions(){if(!this.isContextual("assert")||this.hasPrecedingLineBreak())return this.hasPlugin("importAssertions")?[]:null;this.expectPlugin("importAssertions"),this.next(),this.eat(yn.braceL);const e=this.parseAssertEntries();return this.eat(yn.braceR),e}maybeParseDefaultImportSpecifier(e){return!!this.shouldParseDefaultImport(e)&&(this.parseImportSpecifierLocal(e,this.startNode(),"ImportDefaultSpecifier","default import specifier"),!0)}maybeParseStarImportSpecifier(e){if(this.match(yn.star)){const t=this.startNode();return this.next(),this.expectContextual("as"),this.parseImportSpecifierLocal(e,t,"ImportNamespaceSpecifier","import namespace specifier"),!0}return!1}parseNamedImportSpecifiers(e){let t=!0;for(this.expect(yn.braceL);!this.eat(yn.braceR);){if(t)t=!1;else{if(this.eat(yn.colon))throw this.raise(this.state.start,wn.DestructureNamedImport);if(this.expect(yn.comma),this.eat(yn.braceR))break}this.parseImportSpecifier(e)}}parseImportSpecifier(e){const t=this.startNode(),s=this.match(yn.string);if(t.imported=this.parseModuleExportName(),this.eatContextual("as"))t.local=this.parseIdentifier();else{const{imported:e}=t;if(s)throw this.raise(t.start,wn.ImportBindingIsString,e.value);this.checkReservedWord(e.name,t.start,!0,!0),t.local=e.__clone()}this.checkLVal(t.local,"import specifier",9),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))}isThisParam(e){return"Identifier"===e.type&&"this"===e.name}}{constructor(e,t){super(e=function(e){const t={};for(const s of Object.keys(Io))t[s]=e&&null!=e[s]?e[s]:Io[s];return t}(e),t),this.options=e,this.initializeScopes(),this.plugins=function(e){const t=new Map;for(const s of e){const[e,r]=Array.isArray(s)?s:[s,{}];t.has(e)||t.set(e,r||{})}return t}(this.options.plugins),this.filename=e.sourceFilename}getScopeHandler(){return Zn}parse(){this.enterInitialScopes();const e=this.startNode(),t=this.startNode();return this.nextToken(),e.errors=null,this.parseTopLevel(e,t),e.errors=this.state.errors,e}}function Yo(e,t){let s=Jo;return null!=e&&e.plugins&&(!function(e){if(Po(e,"decorators")){if(Po(e,"decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");const t=To(e,"decorators","decoratorsBeforeExport");if(null==t)throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option, whose value must be a boolean. If you are migrating from Babylon/Babel 6 or want to use the old decorators proposal, you should use the 'decorators-legacy' plugin instead of 'decorators'.");if("boolean"!=typeof t)throw new Error("'decoratorsBeforeExport' must be a boolean.")}if(Po(e,"flow")&&Po(e,"typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(Po(e,"placeholders")&&Po(e,"v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(Po(e,"pipelineOperator")&&!wo.includes(To(e,"pipelineOperator","proposal")))throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: "+wo.map((e=>`'${e}'`)).join(", "));if(Po(e,"moduleAttributes")){if(Po(e,"importAssertions"))throw new Error("Cannot combine importAssertions and moduleAttributes plugins.");if("may-2020"!==To(e,"moduleAttributes","version"))throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(Po(e,"recordAndTuple")&&!So.includes(To(e,"recordAndTuple","syntaxType")))throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: "+So.map((e=>`'${e}'`)).join(", "));if(Po(e,"asyncDoExpressions")&&!Po(e,"doExpressions")){const e=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw e.missingPlugins="doExpressions",e}}(e.plugins),s=function(e){const t=No.filter((t=>Po(e,t))),s=t.join("/");let r=Qo[s];if(!r){r=Jo;for(const e of t)r=Bo[e](r);Qo[s]=r}return r}(e.plugins)),new s(e,t)}const Qo={};var Zo=function(e,t){var s;if("unambiguous"!==(null==(s=t)?void 0:s.sourceType))return Yo(t,e).parse();t=Object.assign({},t);try{t.sourceType="module";const s=Yo(t,e),r=s.parse();if(s.sawUnambiguousESM)return r;if(s.ambiguousScriptDifferentAst)try{return t.sourceType="script",Yo(t,e).parse()}catch(e){}else r.program.sourceType="script";return r}catch(s){try{return t.sourceType="script",Yo(t,e).parse()}catch(e){}throw s}},eu=function(e,t){const s=Yo(t,e);return s.options.strictMode&&(s.state.strict=!0),s.getExpression()},tu=yn,su=Object.defineProperty({parse:Zo,parseExpression:eu,tokTypes:tu},"__esModule",{value:!0});const{isNonEmptyArray:ru}=Js;function iu(e={}){const{allowComments:t=!0}=e;return function(e){const{parseExpression:s}=su;let r;try{r=s(e,{tokens:!0,ranges:!0})}catch(e){throw ln(e)}if(!t&&ru(r.comments))throw au(r.comments[0],"Comment");return nu(r),r}}function au(e,t){const[s,r]=[e.loc.start,e.loc.end].map((({line:e,column:t})=>({line:e,column:t+1})));return Ys(`${t} is not allowed in JSON.`,{start:s,end:r})}function nu(e){switch(e.type){case"ArrayExpression":for(const t of e.elements)null!==t&&nu(t);return;case"ObjectExpression":for(const t of e.properties)nu(t);return;case"ObjectProperty":if(e.computed)throw au(e.key,"Computed key");if(e.shorthand)throw au(e.key,"Shorthand property");return"Identifier"!==e.key.type&&nu(e.key),void nu(e.value);case"UnaryExpression":{const{operator:t,argument:s}=e;if("+"!==t&&"-"!==t)throw au(e,`Operator '${e.operator}'`);if("NumericLiteral"===s.type||"Identifier"===s.type&&("Infinity"===s.name||"NaN"===s.name))return;throw au(s,`Operator '${t}' before '${s.type}'`)}case"Identifier":if("Infinity"!==e.name&&"NaN"!==e.name&&"undefined"!==e.name)throw au(e,`Identifier '${e.name}'`);return;case"TemplateLiteral":if(ru(e.expressions))throw au(e.expressions[0],"'TemplateLiteral' with expression");for(const t of e.quasis)nu(t);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw au(e,`'${e.type}'`)}}const ou=iu();var uu={json:pn({parse:ou,hasPragma:()=>!0}),json5:pn(ou),"json-stringify":pn({parse:iu({allowComments:!1}),astFormat:"estree-json"})};const{getNextNonSpaceNonCommentCharacterIndexWithStartIndex:hu,getShebang:cu}=Js,pu={sourceType:"module",allowAwaitOutsideFunction:!0,allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","v8intrinsic","partialApplication",["decorators",{decoratorsBeforeExport:!1}],"privateIn","importAssertions",["recordAndTuple",{syntaxType:"hash"}],"decimal","classStaticBlock","moduleBlocks","asyncDoExpressions"],tokens:!0,ranges:!0},lu=[["pipelineOperator",{proposal:"smart"}],["pipelineOperator",{proposal:"minimal"}],["pipelineOperator",{proposal:"fsharp"}]],du=e=>Object.assign(Object.assign({},pu),{},{plugins:[...pu.plugins,...e]}),Du=/@(?:no)?flow\b/;function mu(e,...t){return(s,r,i={})=>{if(("babel"===i.parser||"__babel_estree"===i.parser)&&function(e,t){if(t.filepath&&t.filepath.endsWith(".js.flow"))return!0;const s=cu(e);s&&(e=e.slice(s.length));const r=hu(e,0);return!1!==r&&(e=e.slice(0,r)),Du.test(e)}(s,i))return i.parser="babel-flow",yu(s,r,i);let a=t;"script"===i.__babelSourceType&&(a=a.map((e=>Object.assign(Object.assign({},e),{},{sourceType:"script"})))),s.includes("|>")&&(a=lu.flatMap((e=>a.map((t=>Object.assign(Object.assign({},t),{},{plugins:[...t.plugins,e]}))))));const{result:n,error:o}=Ge(...a.map((t=>()=>function(e,t,s){const r=(0,su[e])(t,s),i=r.errors.find((e=>!xu.has(e.reasonCode)));if(i)throw i;return r}(e,s,t))));if(!n)throw ln(o);return la(n,Object.assign(Object.assign({},i),{},{originalText:s}))}}const fu=mu("parse",du(["jsx","flow"])),yu=mu("parse",du(["jsx",["flow",{all:!0,enums:!0}]])),Au=mu("parse",du(["jsx","typescript"]),du(["typescript"])),Eu=mu("parse",du(["jsx","flow","estree"])),Cu=mu("parseExpression",du(["jsx"])),xu=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","UnexpectedParameterModifier","MixedLabeledAndUnlabeledElements","InvalidTupleMemberLabel","NonClassMethodPropertyHasAbstractModifer","ReadonlyForMethodSignature","ClassMethodHasDeclare","ClassMethodHasReadonly","InvalidModifierOnTypeMember","DuplicateAccessibilityModifier","IndexSignatureHasDeclare","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","UnsupportedPropertyDecorator","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","DeclareFunctionHasImplementation","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport"]),Fu=pn(fu),gu=pn(Cu);var bu={parsers:Object.assign(Object.assign({babel:Fu,"babel-flow":pn(yu),"babel-ts":pn(Au)},uu),{},{__js_expression:gu,__vue_expression:gu,__vue_event_binding:Fu,__babel_estree:pn(Eu)})};export default bu; diff --git a/node_modules/prettier/esm/parser-espree.mjs b/node_modules/prettier/esm/parser-espree.mjs new file mode 100644 index 0000000000..10389f19f2 --- /dev/null +++ b/node_modules/prettier/esm/parser-espree.mjs @@ -0,0 +1,22 @@ +var e=function(e,t){const u=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return u.loc=t,u};var t=function(...e){let t;for(const[u,i]of e.entries())try{return{result:i()}}catch(e){0===u&&(t=e)}return{error:t}},u=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const i=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var r=i,n=i;r.default=n;const s=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=u(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let t=0;for(let u=0;u=127&&i<=159||(i>=768&&i<=879||(i>65535&&u++,t+=r(i)?2:1))}return t};var a=s,o=s;a.default=o;var c=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var p=e=>e[e.length-1];function D(e,t){if(null==e)return{};var u,i,r=function(e,t){if(null==e)return{};var u,i,r={},n=Object.keys(e);for(i=0;i=0||(r[u]=e[u]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,u)&&(r[u]=e[u])}return r}var h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function l(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function d(e){var t={exports:{}};return e(t,t.exports),t.exports}var f=function(e){return e&&e.Math==Math&&e},E=f("object"==typeof globalThis&&globalThis)||f("object"==typeof window&&window)||f("object"==typeof self&&self)||f("object"==typeof h&&h)||function(){return this}()||Function("return this")(),C=function(e){try{return!!e()}catch(e){return!0}},m=!C((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),A={}.propertyIsEnumerable,F=Object.getOwnPropertyDescriptor,g={f:F&&!A.call({1:2},1)?function(e){var t=F(this,e);return!!t&&t.enumerable}:A},y=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},x={}.toString,B=function(e){return x.call(e).slice(8,-1)},v="".split,S=C((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==B(e)?v.call(e,""):Object(e)}:Object,b=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},T=function(e){return S(b(e))},w=function(e){return"object"==typeof e?null!==e:"function"==typeof e},_=function(e,t){if(!w(e))return e;var u,i;if(t&&"function"==typeof(u=e.toString)&&!w(i=u.call(e)))return i;if("function"==typeof(u=e.valueOf)&&!w(i=u.call(e)))return i;if(!t&&"function"==typeof(u=e.toString)&&!w(i=u.call(e)))return i;throw TypeError("Can't convert object to primitive value")},I=function(e){return Object(b(e))},k={}.hasOwnProperty,N=Object.hasOwn||function(e,t){return k.call(I(e),t)},L=E.document,P=w(L)&&w(L.createElement),O=!m&&!C((function(){return 7!=Object.defineProperty((e="div",P?L.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),R=Object.getOwnPropertyDescriptor,j={f:m?R:function(e,t){if(e=T(e),t=_(t,!0),O)try{return R(e,t)}catch(e){}if(N(e,t))return y(!g.f.call(e,t),e[t])}},M=function(e){if(!w(e))throw TypeError(String(e)+" is not an object");return e},V=Object.defineProperty,U={f:m?V:function(e,t,u){if(M(e),t=_(t,!0),M(u),O)try{return V(e,t,u)}catch(e){}if("get"in u||"set"in u)throw TypeError("Accessors not supported");return"value"in u&&(e[t]=u.value),e}},$=m?function(e,t,u){return U.f(e,t,y(1,u))}:function(e,t,u){return e[t]=u,e},G=function(e,t){try{$(E,e,t)}catch(u){E[e]=t}return t},X=E["__core-js_shared__"]||G("__core-js_shared__",{}),q=Function.toString;"function"!=typeof X.inspectSource&&(X.inspectSource=function(e){return q.call(e)});var W,H,J,z,K=X.inspectSource,Q=E.WeakMap,Y="function"==typeof Q&&/native code/.test(K(Q)),Z=d((function(e){(e.exports=function(e,t){return X[e]||(X[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),ee=0,te=Math.random(),ue=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++ee+te).toString(36)},ie=Z("keys"),re={},ne=E.WeakMap;if(Y||X.state){var se=X.state||(X.state=new ne),ae=se.get,oe=se.has,ce=se.set;W=function(e,t){if(oe.call(se,e))throw new TypeError("Object already initialized");return t.facade=e,ce.call(se,e,t),t},H=function(e){return ae.call(se,e)||{}},J=function(e){return oe.call(se,e)}}else{var pe=ie[z="state"]||(ie[z]=ue(z));re[pe]=!0,W=function(e,t){if(N(e,pe))throw new TypeError("Object already initialized");return t.facade=e,$(e,pe,t),t},H=function(e){return N(e,pe)?e[pe]:{}},J=function(e){return N(e,pe)}}var De,he,le={set:W,get:H,has:J,enforce:function(e){return J(e)?H(e):W(e,{})},getterFor:function(e){return function(t){var u;if(!w(t)||(u=H(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return u}}},de=d((function(e){var t=le.get,u=le.enforce,i=String(String).split("String");(e.exports=function(e,t,r,n){var s,a=!!n&&!!n.unsafe,o=!!n&&!!n.enumerable,c=!!n&&!!n.noTargetGet;"function"==typeof r&&("string"!=typeof t||N(r,"name")||$(r,"name",t),(s=u(r)).source||(s.source=i.join("string"==typeof t?t:""))),e!==E?(a?!c&&e[t]&&(o=!0):delete e[t],o?e[t]=r:$(e,t,r)):o?e[t]=r:G(t,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||K(this)}))})),fe=E,Ee=function(e){return"function"==typeof e?e:void 0},Ce=function(e,t){return arguments.length<2?Ee(fe[e])||Ee(E[e]):fe[e]&&fe[e][t]||E[e]&&E[e][t]},me=Math.ceil,Ae=Math.floor,Fe=function(e){return isNaN(e=+e)?0:(e>0?Ae:me)(e)},ge=Math.min,ye=function(e){return e>0?ge(Fe(e),9007199254740991):0},xe=Math.max,Be=Math.min,ve=function(e){return function(t,u,i){var r,n=T(t),s=ye(n.length),a=function(e,t){var u=Fe(e);return u<0?xe(u+t,0):Be(u,t)}(i,s);if(e&&u!=u){for(;s>a;)if((r=n[a++])!=r)return!0}else for(;s>a;a++)if((e||a in n)&&n[a]===u)return e||a||0;return!e&&-1}},Se={includes:ve(!0),indexOf:ve(!1)}.indexOf,be=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),Te={f:Object.getOwnPropertyNames||function(e){return function(e,t){var u,i=T(e),r=0,n=[];for(u in i)!N(re,u)&&N(i,u)&&n.push(u);for(;t.length>r;)N(i,u=t[r++])&&(~Se(n,u)||n.push(u));return n}(e,be)}},we={f:Object.getOwnPropertySymbols},_e=Ce("Reflect","ownKeys")||function(e){var t=Te.f(M(e)),u=we.f;return u?t.concat(u(e)):t},Ie=function(e,t){for(var u=_e(t),i=U.f,r=j.f,n=0;n0&&Ue(o))c=Xe(e,t,o,ye(o.length),c,n-1)-1;else{if(c>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[c]=o}c++}p++}return c},qe=Xe,We=Ce("navigator","userAgent")||"",He=E.process,Je=He&&He.versions,ze=Je&&Je.v8;ze?he=(De=ze.split("."))[0]<4?1:De[0]+De[1]:We&&(!(De=We.match(/Edge\/(\d+)/))||De[1]>=74)&&(De=We.match(/Chrome\/(\d+)/))&&(he=De[1]);var Ke=he&&+he,Qe=!!Object.getOwnPropertySymbols&&!C((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Ke&&Ke<41})),Ye=Qe&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ze=Z("wks"),et=E.Symbol,tt=Ye?et:et&&et.withoutSetter||ue,ut=function(e){return N(Ze,e)&&(Qe||"string"==typeof Ze[e])||(Qe&&N(et,e)?Ze[e]=et[e]:Ze[e]=tt("Symbol."+e)),Ze[e]},it=ut("species"),rt=function(e,t){var u;return Ue(e)&&("function"!=typeof(u=e.constructor)||u!==Array&&!Ue(u.prototype)?w(u)&&null===(u=u[it])&&(u=void 0):u=void 0),new(void 0===u?Array:u)(0===t?0:t)};Ve({target:"Array",proto:!0},{flatMap:function(e){var t,u=I(this),i=ye(u.length);return $e(e),(t=rt(u,0)).length=qe(t,u,u,i,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var nt,st,at=Math.floor,ot=function(e,t){var u=e.length,i=at(u/2);return u<8?ct(e,t):pt(ot(e.slice(0,i),t),ot(e.slice(i),t),t)},ct=function(e,t){for(var u,i,r=e.length,n=1;n0;)e[i]=e[--i];i!==n++&&(e[i]=u)}return e},pt=function(e,t,u){for(var i=e.length,r=t.length,n=0,s=0,a=[];n3)){if(dt)return!0;if(Et)return Et<603;var e,t,u,i,r="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:u=3;break;case 68:case 71:u=4;break;default:u=2}for(i=0;i<47;i++)Ct.push({k:t+i,v:u})}for(Ct.sort((function(e,t){return t.v-e.v})),i=0;iString(u)?1:-1}}(e))).length,i=0;in;n++)if((a=C(e[n]))&&a instanceof Nt)return a;return new Nt(!1)}i=r.call(e)}for(o=i.next;!(c=o.call(i)).done;){try{a=C(c.value)}catch(e){throw kt(i),e}if("object"==typeof a&&a&&a instanceof Nt)return a}return new Nt(!1)};Ve({target:"Object",stat:!0},{fromEntries:function(e){var t={};return Lt(e,(function(e,u){!function(e,t,u){var i=_(t);i in e?U.f(e,i,y(0,u)):e[i]=u}(t,e,u)}),{AS_ENTRIES:!0}),t}});var Pt=void 0!==Pt?Pt:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Ot(){throw new Error("setTimeout has not been defined")}function Rt(){throw new Error("clearTimeout has not been defined")}var jt=Ot,Mt=Rt;function Vt(e){if(jt===setTimeout)return setTimeout(e,0);if((jt===Ot||!jt)&&setTimeout)return jt=setTimeout,setTimeout(e,0);try{return jt(e,0)}catch(t){try{return jt.call(null,e,0)}catch(t){return jt.call(this,e,0)}}}"function"==typeof Pt.setTimeout&&(jt=setTimeout),"function"==typeof Pt.clearTimeout&&(Mt=clearTimeout);var Ut,$t=[],Gt=!1,Xt=-1;function qt(){Gt&&Ut&&(Gt=!1,Ut.length?$t=Ut.concat($t):Xt=-1,$t.length&&Wt())}function Wt(){if(!Gt){var e=Vt(qt);Gt=!0;for(var t=$t.length;t;){for(Ut=$t,$t=[];++Xt1)for(var u=1;uconsole.error("SEMVER",...e):()=>{};var au={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},ou=d((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:u}=au,i=(t=e.exports={}).re=[],r=t.src=[],n=t.t={};let s=0;const a=(e,t,u)=>{const a=s++;su(a,t),n[e]=a,r[a]=t,i[a]=new RegExp(t,u?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","[0-9]+"),a("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),a("MAINVERSION",`(${r[n.NUMERICIDENTIFIER]})\\.(${r[n.NUMERICIDENTIFIER]})\\.(${r[n.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${r[n.NUMERICIDENTIFIERLOOSE]})\\.(${r[n.NUMERICIDENTIFIERLOOSE]})\\.(${r[n.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${r[n.NUMERICIDENTIFIER]}|${r[n.NONNUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${r[n.NUMERICIDENTIFIERLOOSE]}|${r[n.NONNUMERICIDENTIFIER]})`),a("PRERELEASE",`(?:-(${r[n.PRERELEASEIDENTIFIER]}(?:\\.${r[n.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${r[n.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${r[n.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER","[0-9A-Za-z-]+"),a("BUILD",`(?:\\+(${r[n.BUILDIDENTIFIER]}(?:\\.${r[n.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${r[n.MAINVERSION]}${r[n.PRERELEASE]}?${r[n.BUILD]}?`),a("FULL",`^${r[n.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${r[n.MAINVERSIONLOOSE]}${r[n.PRERELEASELOOSE]}?${r[n.BUILD]}?`),a("LOOSE",`^${r[n.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",`${r[n.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),a("XRANGEIDENTIFIER",`${r[n.NUMERICIDENTIFIER]}|x|X|\\*`),a("XRANGEPLAIN",`[v=\\s]*(${r[n.XRANGEIDENTIFIER]})(?:\\.(${r[n.XRANGEIDENTIFIER]})(?:\\.(${r[n.XRANGEIDENTIFIER]})(?:${r[n.PRERELEASE]})?${r[n.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${r[n.XRANGEIDENTIFIERLOOSE]})(?:\\.(${r[n.XRANGEIDENTIFIERLOOSE]})(?:\\.(${r[n.XRANGEIDENTIFIERLOOSE]})(?:${r[n.PRERELEASELOOSE]})?${r[n.BUILD]}?)?)?`),a("XRANGE",`^${r[n.GTLT]}\\s*${r[n.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${r[n.GTLT]}\\s*${r[n.XRANGEPLAINLOOSE]}$`),a("COERCE",`(^|[^\\d])(\\d{1,${u}})(?:\\.(\\d{1,${u}}))?(?:\\.(\\d{1,${u}}))?(?:$|[^\\d])`),a("COERCERTL",r[n.COERCE],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${r[n.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",a("TILDE",`^${r[n.LONETILDE]}${r[n.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${r[n.LONETILDE]}${r[n.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${r[n.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",a("CARET",`^${r[n.LONECARET]}${r[n.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${r[n.LONECARET]}${r[n.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${r[n.GTLT]}\\s*(${r[n.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${r[n.GTLT]}\\s*(${r[n.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${r[n.GTLT]}\\s*(${r[n.LOOSEPLAIN]}|${r[n.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${r[n.XRANGEPLAIN]})\\s+-\\s+(${r[n.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${r[n.XRANGEPLAINLOOSE]})\\s+-\\s+(${r[n.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0.0.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const cu=["includePrerelease","loose","rtl"];var pu=e=>e?"object"!=typeof e?{loose:!0}:cu.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const Du=/^[0-9]+$/,hu=(e,t)=>{const u=Du.test(e),i=Du.test(t);return u&&i&&(e=+e,t=+t),e===t?0:u&&!i?-1:i&&!u?1:ehu(t,e)};const{MAX_LENGTH:du,MAX_SAFE_INTEGER:fu}=au,{re:Eu,t:Cu}=ou,{compareIdentifiers:mu}=lu;class Au{constructor(e,t){if(t=pu(t),e instanceof Au){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>du)throw new TypeError(`version is longer than ${du} characters`);su("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const u=e.trim().match(t.loose?Eu[Cu.LOOSE]:Eu[Cu.FULL]);if(!u)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+u[1],this.minor=+u[2],this.patch=+u[3],this.major>fu||this.major<0)throw new TypeError("Invalid major version");if(this.minor>fu||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>fu||this.patch<0)throw new TypeError("Invalid patch version");u[4]?this.prerelease=u[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}}var Fu=Au;var gu=(e,t,u)=>new Fu(e,u).compare(new Fu(t,u));var yu=(e,t,u)=>gu(e,t,u)<0;var xu=(e,t,u)=>gu(e,t,u)>=0,Bu="2.3.2",vu=d((function(e,t){function u(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Su` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Su` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Su` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Su` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const Tu=["cliName","cliCategory","cliDescription"],wu={compare:gu,lt:yu,gte:xu},_u=Bu,Iu={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:bu}.options;var ku={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:u=!1,showInternal:i=!1}={}){const r=_u.split("-",1)[0],n=e.flatMap((e=>e.languages||[])).filter(c),s=(a=Object.assign({},...e.map((({options:e})=>e)),Iu),o="name",Object.entries(a).map((([e,t])=>Object.assign({[o]:e},t)))).filter((e=>c(e)&&p(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(c).sort(((e,t)=>wu.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>c(e)&&p(e))),"parser"===t.name&&function(e,t,u){const i=new Set(e.choices.map((e=>e.value)));for(const r of t)if(r.parsers)for(const t of r.parsers)if(!i.has(t)){i.add(t);const n=u.find((e=>e.parsers&&e.parsers[t]));let s=r.name;n&&n.name&&(s+=` (plugin: ${n.name})`),e.choices.push({value:t,description:s})}}(t,n,e));const u=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:u})}));var a,o;return{languages:n,options:s};function c(e){return t||!("since"in e)||e.since&&wu.gte(r,e.since)}function p(e){return u||!("deprecated"in e)||e.deprecated&&wu.lt(r,e.deprecated)}}};const{getSupportInfo:Nu}=ku,Lu=/[^\x20-\x7F]/;function Pu(e){return(t,u,i)=>{const r=i&&i.backwards;if(!1===u)return!1;const{length:n}=t;let s=u;for(;s>=0&&s(u.match(s.regex)||[]).length?s.quote:n.quote}return a}function zu(e,t,u){const i='"'===t?"'":'"',r=e.replace(/\\(.)|(["'])/gs,((e,r,n)=>r===i?r:n===t?"\\"+n:n||(u&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(r)?r:"\\"+r)));return t+r+t}function Ku(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let u=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");u.length>20&&(u=u.slice(0,19)+"\u2026");return t+(u?" "+u:"")}(e)}var Qu={inferParserByLanguage:function(e,t){const{languages:u}=Nu({plugins:t.plugins}),i=u.find((({name:t})=>t.toLowerCase()===e))||u.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||u.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return i&&i.parsers[0]},getStringWidth:function(e){return e?Lu.test(e)?a(e):e.length:0},getMaxContinuousCount:function(e,t){const u=e.match(new RegExp(`(${c(t)})+`,"g"));return null===u?0:u.reduce(((e,u)=>Math.max(e,u.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const u=e.match(new RegExp(`(${c(t)})+`,"g"));if(null===u)return 0;const i=new Map;let r=0;for(const e of u){const u=e.length/t.length;i.set(u,!0),u>r&&(r=u)}for(let e=1;ee[e.length-2],getLast:p,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:qu,getNextNonSpaceNonCommentCharacterIndex:Wu,getNextNonSpaceNonCommentCharacter:function(e,t,u){return e.charAt(Wu(e,t,u))},skip:Pu,skipWhitespace:Ou,skipSpaces:Ru,skipToLineEnd:ju,skipEverythingButNewLine:Mu,skipInlineComment:Vu,skipTrailingComment:Uu,skipNewline:$u,isNextLineEmptyAfterIndex:Xu,isNextLineEmpty:function(e,t,u){return Xu(e,u(t))},isPreviousLineEmpty:function(e,t,u){let i=u(t)-1;return i=Ru(e,i,{backwards:!0}),i=$u(e,i,{backwards:!0}),i=Ru(e,i,{backwards:!0}),i!==$u(e,i,{backwards:!0})},hasNewline:Gu,hasNewlineInRange:function(e,t,u){for(let i=t;i0},createGroupIdMapper:function(e){const t=new WeakMap;return function(u){return t.has(u)||t.set(u,Symbol(e)),t.get(u)}}};const{isNonEmptyArray:Yu}=Qu;function Zu(e,t){const{ignoreDecorators:u}=t||{};if(!u){const t=e.declaration&&e.declaration.decorators||e.decorators;if(Yu(t))return Zu(t[0])}return e.range?e.range[0]:e.start}function ei(e){return e.range?e.range[1]:e.end}function ti(e,t){return Zu(e)===Zu(t)}var ui={locStart:Zu,locEnd:ei,hasSameLocStart:ti,hasSameLoc:function(e,t){return ti(e,t)&&function(e,t){return ei(e)===ei(t)}(e,t)}},ii=d((function(e){!function(){function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function u(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=u(t)}while(t);return!1},trailingStatement:u}}()})),ri=d((function(e){!function(){var t,u,i,r,n,s;function a(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(u={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},t={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/},i=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],r=new Array(128),s=0;s<128;++s)r[s]=s>=97&&s<=122||s>=65&&s<=90||36===s||95===s;for(n=new Array(128),s=0;s<128;++s)n[s]=s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||36===s||95===s;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&i.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?r[e]:u.NonAsciiIdentifierStart.test(a(e))},isIdentifierPartES5:function(e){return e<128?n[e]:u.NonAsciiIdentifierPart.test(a(e))},isIdentifierStartES6:function(e){return e<128?r[e]:t.NonAsciiIdentifierStart.test(a(e))},isIdentifierPartES6:function(e){return e<128?n[e]:t.NonAsciiIdentifierPart.test(a(e))}}}()})),ni=d((function(e){!function(){var t=ri;function u(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===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}}function r(e,t){return"null"===e||"true"===e||"false"===e||u(e,t)}function n(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function s(e){var u,i,r;if(0===e.length)return!1;if(r=e.charCodeAt(0),!t.isIdentifierStartES5(r))return!1;for(u=1,i=e.length;u=i)return!1;if(!(56320<=(n=e.charCodeAt(u))&&n<=57343))return!1;r=1024*(r-55296)+(n-56320)+65536}if(!s(r))return!1;s=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:u,isKeywordES6:i,isReservedWordES5:r,isReservedWordES6:n,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:s,isIdentifierNameES6:a,isIdentifierES5:function(e,t){return s(e)&&!r(e,t)},isIdentifierES6:function(e,t){return a(e)&&!n(e,t)}}}()}));const si=d((function(e,t){t.ast=ii,t.code=ri,t.keyword=ni})).keyword.isIdentifierNameES5,{getLast:ai,hasNewline:oi,skipWhitespace:ci,isNonEmptyArray:pi,isNextLineEmptyAfterIndex:Di}=Qu,{locStart:hi,locEnd:li,hasSameLocStart:di}=ui,fi=new RegExp("^(?:(?=.)\\s)*:"),Ei=new RegExp("^(?:(?=.)\\s)*::");function Ci(e){return"Block"===e.type||"CommentBlock"===e.type||"MultiLine"===e.type}function mi(e){return"Line"===e.type||"CommentLine"===e.type||"SingleLine"===e.type||"HashbangComment"===e.type||"HTMLOpen"===e.type||"HTMLClose"===e.type}const Ai=new Set(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function Fi(e){return e&&Ai.has(e.type)}function gi(e){return"NumericLiteral"===e.type||"Literal"===e.type&&"number"==typeof e.value}function yi(e){return"StringLiteral"===e.type||"Literal"===e.type&&"string"==typeof e.value}function xi(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}function Bi(e){return Ii(e)&&"Identifier"===e.callee.type&&("async"===e.callee.name||"inject"===e.callee.name||"fakeAsync"===e.callee.name)}function vi(e){return"JSXElement"===e.type||"JSXFragment"===e.type}function Si(e){return"get"===e.kind||"set"===e.kind}function bi(e){return Si(e)||di(e,e.value)}const Ti=new Set(["BinaryExpression","LogicalExpression","NGPipeExpression"]);const wi=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);const _i=/^(skip|[fx]?(it|describe|test))$/;function Ii(e){return e&&("CallExpression"===e.type||"OptionalCallExpression"===e.type)}function ki(e){return e&&("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)}function Ni(e){return/^(\d+|\d+\.\d+)$/.test(e)}function Li(e){return e.quasis.some((e=>e.value.raw.includes("\n")))}function Pi(e){return e.extra?e.extra.raw:e.raw}const Oi={"==":!0,"!=":!0,"===":!0,"!==":!0},Ri={"*":!0,"/":!0,"%":!0},ji={">>":!0,">>>":!0,"<<":!0};const Mi={};for(const[e,t]of[["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].entries())for(const u of t)Mi[u]=e;function Vi(e){return Mi[e]}const Ui=new WeakMap;function $i(e){if(Ui.has(e))return Ui.get(e);const t=[];return e.this&&t.push(e.this),Array.isArray(e.parameters)?t.push(...e.parameters):Array.isArray(e.params)&&t.push(...e.params),e.rest&&t.push(e.rest),Ui.set(e,t),t}const Gi=new WeakMap;function Xi(e){if(Gi.has(e))return Gi.get(e);let t=e.arguments;return"ImportExpression"===e.type&&(t=[e.source],e.attributes&&t.push(e.attributes)),Gi.set(e,t),t}function qi(e){return"prettier-ignore"===e.value.trim()&&!e.unignore}function Wi(e){return e&&(e.prettierIgnore||zi(e,Hi.PrettierIgnore))}const Hi={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},Ji=(e,t)=>{if("function"==typeof e&&(t=e,e=0),e||t)return(u,i,r)=>!(e&Hi.Leading&&!u.leading||e&Hi.Trailing&&!u.trailing||e&Hi.Dangling&&(u.leading||u.trailing)||e&Hi.Block&&!Ci(u)||e&Hi.Line&&!mi(u)||e&Hi.First&&0!==i||e&Hi.Last&&i!==r.length-1||e&Hi.PrettierIgnore&&!qi(u)||t&&!t(u))};function zi(e,t,u){if(!e||!pi(e.comments))return!1;const i=Ji(t,u);return!i||e.comments.some(i)}function Ki(e,t,u){if(!e||!Array.isArray(e.comments))return[];const i=Ji(t,u);return i?e.comments.filter(i):e.comments}function Qi(e){return Ii(e)||"NewExpression"===e.type||"ImportExpression"===e.type}var Yi={getFunctionParameters:$i,iterateFunctionParametersPath:function(e,t){const u=e.getValue();let i=0;const r=e=>t(e,i++);u.this&&e.call(r,"this"),Array.isArray(u.parameters)?e.each(r,"parameters"):Array.isArray(u.params)&&e.each(r,"params"),u.rest&&e.call(r,"rest")},getCallArguments:Xi,iterateCallArgumentsPath:function(e,t){const u=e.getValue();"ImportExpression"===u.type?(e.call((e=>t(e,0)),"source"),u.attributes&&e.call((e=>t(e,1)),"attributes")):e.each(t,"arguments")},hasRestParameter:function(e){if(e.rest)return!0;const t=$i(e);return t.length>0&&"RestElement"===ai(t).type},getLeftSide:function(e){return e.expressions?e.expressions[0]:e.left||e.test||e.callee||e.object||e.tag||e.argument||e.expression},getLeftSidePathName:function(e,t){if(t.expressions)return["expressions",0];if(t.left)return["left"];if(t.test)return["test"];if(t.object)return["object"];if(t.callee)return["callee"];if(t.tag)return["tag"];if(t.argument)return["argument"];if(t.expression)return["expression"];throw new Error("Unexpected node has no left side.")},getParentExportDeclaration:function(e){const t=e.getParentNode();return"declaration"===e.getName()&&Fi(t)?t:null},getTypeScriptMappedTypeModifier:function(e,t){return"+"===e?"+"+t:"-"===e?"-"+t:t},hasFlowAnnotationComment:function(e){return e&&Ci(e[0])&&Ei.test(e[0].value)},hasFlowShorthandAnnotationComment:function(e){return e.extra&&e.extra.parenthesized&&pi(e.trailingComments)&&Ci(e.trailingComments[0])&&fi.test(e.trailingComments[0].value)},hasLeadingOwnLineComment:function(e,t){return vi(t)?Wi(t):zi(t,Hi.Leading,(t=>oi(e,li(t))))},hasNakedLeftSide:function(e){return"AssignmentExpression"===e.type||"BinaryExpression"===e.type||"LogicalExpression"===e.type||"NGPipeExpression"===e.type||"ConditionalExpression"===e.type||Ii(e)||ki(e)||"SequenceExpression"===e.type||"TaggedTemplateExpression"===e.type||"BindExpression"===e.type||"UpdateExpression"===e.type&&!e.prefix||"TSAsExpression"===e.type||"TSNonNullExpression"===e.type},hasNode:function e(t,u){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return t.some((t=>e(t,u)));const i=u(t);return"boolean"==typeof i?i:Object.values(t).some((t=>e(t,u)))},hasIgnoreComment:function(e){return Wi(e.getValue())},hasNodeIgnoreComment:Wi,identity:function(e){return e},isBinaryish:function(e){return Ti.has(e.type)},isBlockComment:Ci,isCallLikeExpression:Qi,isLineComment:mi,isPrettierIgnoreComment:qi,isCallExpression:Ii,isMemberExpression:ki,isExportDeclaration:Fi,isFlowAnnotationComment:function(e,t){const u=hi(t),i=ci(e,li(t));return!1!==i&&"/*"===e.slice(u,u+2)&&"*/"===e.slice(i,i+2)},isFunctionCompositionArgs:function(e){if(e.length<=1)return!1;let t=0;for(const u of e)if(xi(u)){if(t+=1,t>1)return!0}else if(Ii(u))for(const e of u.arguments)if(xi(e))return!0;return!1},isFunctionNotation:bi,isFunctionOrArrowExpression:xi,isGetterOrSetter:Si,isJestEachTemplateLiteral:function(e,t){const u=/^[fx]?(describe|it|test)$/;return"TaggedTemplateExpression"===t.type&&t.quasi===e&&"MemberExpression"===t.tag.type&&"Identifier"===t.tag.property.type&&"each"===t.tag.property.name&&("Identifier"===t.tag.object.type&&u.test(t.tag.object.name)||"MemberExpression"===t.tag.object.type&&"Identifier"===t.tag.object.property.type&&("only"===t.tag.object.property.name||"skip"===t.tag.object.property.name)&&"Identifier"===t.tag.object.object.type&&u.test(t.tag.object.object.name))},isJsxNode:vi,isLiteral:function(e){return"BooleanLiteral"===e.type||"DirectiveLiteral"===e.type||"Literal"===e.type||"NullLiteral"===e.type||"NumericLiteral"===e.type||"BigIntLiteral"===e.type||"DecimalLiteral"===e.type||"RegExpLiteral"===e.type||"StringLiteral"===e.type||"TemplateLiteral"===e.type||"TSTypeLiteral"===e.type||"JSXText"===e.type},isLongCurriedCallExpression:function(e){const t=e.getValue(),u=e.getParentNode();return Ii(t)&&Ii(u)&&u.callee===t&&t.arguments.length>u.arguments.length&&u.arguments.length>0},isSimpleCallArgument:function e(t,u){if(u>=2)return!1;const i=t=>e(t,u+1),r="Literal"===t.type&&"regex"in t&&t.regex.pattern||"RegExpLiteral"===t.type&&t.pattern;return!(r&&r.length>5)&&("Literal"===t.type||"BigIntLiteral"===t.type||"DecimalLiteral"===t.type||"BooleanLiteral"===t.type||"NullLiteral"===t.type||"NumericLiteral"===t.type||"RegExpLiteral"===t.type||"StringLiteral"===t.type||"Identifier"===t.type||"ThisExpression"===t.type||"Super"===t.type||"PrivateName"===t.type||"PrivateIdentifier"===t.type||"ArgumentPlaceholder"===t.type||"Import"===t.type||("TemplateLiteral"===t.type?t.quasis.every((e=>!e.value.raw.includes("\n")))&&t.expressions.every(i):"ObjectExpression"===t.type?t.properties.every((e=>!e.computed&&(e.shorthand||e.value&&i(e.value)))):"ArrayExpression"===t.type?t.elements.every((e=>null===e||i(e))):Qi(t)?("ImportExpression"===t.type||e(t.callee,u))&&Xi(t).every(i):ki(t)?e(t.object,u)&&e(t.property,u):"UnaryExpression"!==t.type||"!"!==t.operator&&"-"!==t.operator?"TSNonNullExpression"===t.type&&e(t.expression,u):e(t.argument,u)))},isMemberish:function(e){return ki(e)||"BindExpression"===e.type&&Boolean(e.object)},isNumericLiteral:gi,isSignedNumericLiteral:function(e){return"UnaryExpression"===e.type&&("+"===e.operator||"-"===e.operator)&&gi(e.argument)},isObjectProperty:function(e){return e&&("ObjectProperty"===e.type||"Property"===e.type&&!e.method&&"init"===e.kind)},isObjectType:function(e){return"ObjectTypeAnnotation"===e.type||"TSTypeLiteral"===e.type},isObjectTypePropertyAFunction:function(e){return!("ObjectTypeProperty"!==e.type&&"ObjectTypeInternalSlot"!==e.type||"FunctionTypeAnnotation"!==e.value.type||e.static||bi(e))},isSimpleType:function(e){return!!e&&(!("GenericTypeAnnotation"!==e.type&&"TSTypeReference"!==e.type||e.typeParameters)||!!wi.has(e.type))},isSimpleNumber:Ni,isSimpleTemplateLiteral:function(e){let t="expressions";"TSTemplateLiteralType"===e.type&&(t="types");const u=e[t];return 0!==u.length&&u.every((e=>{if(zi(e))return!1;if("Identifier"===e.type||"ThisExpression"===e.type)return!0;if(ki(e)){let t=e;for(;ki(t);){if("Identifier"!==t.property.type&&"Literal"!==t.property.type&&"StringLiteral"!==t.property.type&&"NumericLiteral"!==t.property.type)return!1;if(t=t.object,zi(t))return!1}return"Identifier"===t.type||"ThisExpression"===t.type}return!1}))},isStringLiteral:yi,isStringPropSafeToUnquote:function(e,t){return"json"!==t.parser&&yi(e.key)&&Pi(e.key).slice(1,-1)===e.key.value&&(si(e.key.value)&&!(("typescript"===t.parser||"babel-ts"===t.parser)&&"ClassProperty"===e.type)||Ni(e.key.value)&&String(Number(e.key.value))===e.key.value&&("babel"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser))},isTemplateOnItsOwnLine:function(e,t){return("TemplateLiteral"===e.type&&Li(e)||"TaggedTemplateExpression"===e.type&&Li(e.quasi))&&!oi(t,hi(e),{backwards:!0})},isTestCall:function e(t,u){if("CallExpression"!==t.type)return!1;if(1===t.arguments.length){if(Bi(t)&&u&&e(u))return xi(t.arguments[0]);if(function(e){return"Identifier"===e.callee.type&&/^(before|after)(Each|All)$/.test(e.callee.name)&&1===e.arguments.length}(t))return Bi(t.arguments[0])}else if((2===t.arguments.length||3===t.arguments.length)&&("Identifier"===t.callee.type&&_i.test(t.callee.name)||function(e){return ki(e.callee)&&"Identifier"===e.callee.object.type&&"Identifier"===e.callee.property.type&&_i.test(e.callee.object.name)&&("only"===e.callee.property.name||"skip"===e.callee.property.name)}(t))&&(function(e){return"TemplateLiteral"===e.type}(t.arguments[0])||yi(t.arguments[0])))return!(t.arguments[2]&&!gi(t.arguments[2]))&&((2===t.arguments.length?xi(t.arguments[1]):function(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type}(t.arguments[1])&&$i(t.arguments[1]).length<=1)||Bi(t.arguments[1]));return!1},isTheOnlyJsxElementInMarkdown:function(e,t){if("markdown"!==e.parentParser&&"mdx"!==e.parentParser)return!1;const u=t.getNode();if(!u.expression||!vi(u.expression))return!1;const i=t.getParentNode();return"Program"===i.type&&1===i.body.length},isTSXFile:function(e){return e.filepath&&/\.tsx$/i.test(e.filepath)},isTypeAnnotationAFunction:function(e){return!("TypeAnnotation"!==e.type&&"TSTypeAnnotation"!==e.type||"FunctionTypeAnnotation"!==e.typeAnnotation.type||e.static||di(e,e.typeAnnotation))},isNextLineEmpty:(e,{originalText:t})=>Di(t,li(e)),needsHardlineAfterDanglingComment:function(e){if(!zi(e))return!1;const t=ai(Ki(e,Hi.Dangling));return t&&!Ci(t)},rawText:Pi,shouldPrintComma:function(e,t="es5"){return"es5"===e.trailingComma&&"es5"===t||"all"===e.trailingComma&&("all"===t||"es5"===t)},isBitwiseOperator:function(e){return Boolean(ji[e])||"|"===e||"^"===e||"&"===e},shouldFlatten:function(e,t){return Vi(t)===Vi(e)&&("**"!==e&&((!Oi[e]||!Oi[t])&&(!("%"===t&&Ri[e]||"%"===e&&Ri[t])&&((t===e||!Ri[t]||!Ri[e])&&(!ji[e]||!ji[t])))))},startsWithNoLookaheadToken:function e(t,u){switch((t=function(e){for(;e.left;)e=e.left;return e}(t)).type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return u;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return e(t.object,u);case"TaggedTemplateExpression":return"FunctionExpression"!==t.tag.type&&e(t.tag,u);case"CallExpression":case"OptionalCallExpression":return"FunctionExpression"!==t.callee.type&&e(t.callee,u);case"ConditionalExpression":return e(t.test,u);case"UpdateExpression":return!t.prefix&&e(t.argument,u);case"BindExpression":return t.object&&e(t.object,u);case"SequenceExpression":return e(t.expressions[0],u);case"TSAsExpression":case"TSNonNullExpression":return e(t.expression,u);default:return!1}},getPrecedence:Vi,hasComment:zi,getComments:Ki,CommentCheckFlags:Hi};const{getLast:Zi,hasNewline:er,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:tr,getNextNonSpaceNonCommentCharacter:ur,hasNewlineInRange:ir,addLeadingComment:rr,addTrailingComment:nr,addDanglingComment:sr,getNextNonSpaceNonCommentCharacterIndex:ar,isNonEmptyArray:or}=Qu,{isBlockComment:cr,getFunctionParameters:pr,isPrettierIgnoreComment:Dr,isJsxNode:hr,hasFlowShorthandAnnotationComment:lr,hasFlowAnnotationComment:dr,hasIgnoreComment:fr,isCallLikeExpression:Er,getCallArguments:Cr,isCallExpression:mr,isMemberExpression:Ar,isObjectProperty:Fr}=Yi,{locStart:gr,locEnd:yr}=ui;function xr(e,t){const u=(e.body||e.properties).find((({type:e})=>"EmptyStatement"!==e));u?rr(u,t):sr(e,t)}function Br(e,t){"BlockStatement"===e.type?xr(e,t):rr(e,t)}function vr({comment:e,followingNode:t}){return!(!t||!en(e))&&(rr(t,e),!0)}function Sr({comment:e,precedingNode:t,enclosingNode:u,followingNode:i,text:r}){if(!u||"IfStatement"!==u.type||!i)return!1;return")"===ur(r,e,yr)?(nr(t,e),!0):t===u.consequent&&i===u.alternate?("BlockStatement"===t.type?nr(t,e):sr(u,e),!0):"BlockStatement"===i.type?(xr(i,e),!0):"IfStatement"===i.type?(Br(i.consequent,e),!0):u.consequent===i&&(rr(i,e),!0)}function br({comment:e,precedingNode:t,enclosingNode:u,followingNode:i,text:r}){if(!u||"WhileStatement"!==u.type||!i)return!1;return")"===ur(r,e,yr)?(nr(t,e),!0):"BlockStatement"===i.type?(xr(i,e),!0):u.body===i&&(rr(i,e),!0)}function Tr({comment:e,precedingNode:t,enclosingNode:u,followingNode:i}){return!(!u||"TryStatement"!==u.type&&"CatchClause"!==u.type||!i)&&("CatchClause"===u.type&&t?(nr(t,e),!0):"BlockStatement"===i.type?(xr(i,e),!0):"TryStatement"===i.type?(Br(i.finalizer,e),!0):"CatchClause"===i.type&&(Br(i.body,e),!0))}function wr({comment:e,enclosingNode:t,followingNode:u}){return!(!Ar(t)||!u||"Identifier"!==u.type)&&(rr(t,e),!0)}function _r({comment:e,precedingNode:t,enclosingNode:u,followingNode:i,text:r}){const n=t&&!ir(r,yr(t),gr(e));return!(t&&n||!u||"ConditionalExpression"!==u.type&&"TSConditionalType"!==u.type||!i)&&(rr(i,e),!0)}function Ir({comment:e,precedingNode:t,enclosingNode:u}){return!(!Fr(u)||!u.shorthand||u.key!==t||"AssignmentPattern"!==u.value.type)&&(nr(u.value.left,e),!0)}function kr({comment:e,precedingNode:t,enclosingNode:u,followingNode:i}){if(u&&("ClassDeclaration"===u.type||"ClassExpression"===u.type||"DeclareClass"===u.type||"DeclareInterface"===u.type||"InterfaceDeclaration"===u.type||"TSInterfaceDeclaration"===u.type)){if(or(u.decorators)&&(!i||"Decorator"!==i.type))return nr(Zi(u.decorators),e),!0;if(u.body&&i===u.body)return xr(u.body,e),!0;if(i)for(const r of["implements","extends","mixins"])if(u[r]&&i===u[r][0])return!t||t!==u.id&&t!==u.typeParameters&&t!==u.superClass?sr(u,e,r):nr(t,e),!0}return!1}function Nr({comment:e,precedingNode:t,enclosingNode:u,text:i}){return(u&&t&&("Property"===u.type||"TSDeclareMethod"===u.type||"TSAbstractMethodDefinition"===u.type)&&"Identifier"===t.type&&u.key===t&&":"!==ur(i,t,yr)||!(!t||!u||"Decorator"!==t.type||"ClassMethod"!==u.type&&"ClassProperty"!==u.type&&"PropertyDefinition"!==u.type&&"TSAbstractClassProperty"!==u.type&&"TSAbstractMethodDefinition"!==u.type&&"TSDeclareMethod"!==u.type&&"MethodDefinition"!==u.type))&&(nr(t,e),!0)}function Lr({comment:e,precedingNode:t,enclosingNode:u,text:i}){return"("===ur(i,e,yr)&&(!(!t||!u||"FunctionDeclaration"!==u.type&&"FunctionExpression"!==u.type&&"ClassMethod"!==u.type&&"MethodDefinition"!==u.type&&"ObjectMethod"!==u.type)&&(nr(t,e),!0))}function Pr({comment:e,enclosingNode:t,text:u}){if(!t||"ArrowFunctionExpression"!==t.type)return!1;const i=ar(u,e,yr);return!1!==i&&"=>"===u.slice(i,i+2)&&(sr(t,e),!0)}function Or({comment:e,enclosingNode:t,text:u}){return")"===ur(u,e,yr)&&(t&&(Zr(t)&&0===pr(t).length||Er(t)&&0===Cr(t).length)?(sr(t,e),!0):!(!t||"MethodDefinition"!==t.type&&"TSAbstractMethodDefinition"!==t.type||0!==pr(t.value).length)&&(sr(t.value,e),!0))}function Rr({comment:e,precedingNode:t,enclosingNode:u,followingNode:i,text:r}){if(t&&"FunctionTypeParam"===t.type&&u&&"FunctionTypeAnnotation"===u.type&&i&&"FunctionTypeParam"!==i.type)return nr(t,e),!0;if(t&&("Identifier"===t.type||"AssignmentPattern"===t.type)&&u&&Zr(u)&&")"===ur(r,e,yr))return nr(t,e),!0;if(u&&"FunctionDeclaration"===u.type&&i&&"BlockStatement"===i.type){const t=(()=>{const e=pr(u);if(e.length>0)return tr(r,yr(Zi(e)));const t=tr(r,yr(u.id));return!1!==t&&tr(r,t+1)})();if(gr(e)>t)return xr(i,e),!0}return!1}function jr({comment:e,enclosingNode:t}){return!(!t||"ImportSpecifier"!==t.type)&&(rr(t,e),!0)}function Mr({comment:e,enclosingNode:t}){return!(!t||"LabeledStatement"!==t.type)&&(rr(t,e),!0)}function Vr({comment:e,enclosingNode:t}){return!(!t||"ContinueStatement"!==t.type&&"BreakStatement"!==t.type||t.label)&&(nr(t,e),!0)}function Ur({comment:e,precedingNode:t,enclosingNode:u}){return!!(mr(u)&&t&&u.callee===t&&u.arguments.length>0)&&(rr(u.arguments[0],e),!0)}function $r({comment:e,precedingNode:t,enclosingNode:u,followingNode:i}){return!u||"UnionTypeAnnotation"!==u.type&&"TSUnionType"!==u.type?(i&&("UnionTypeAnnotation"===i.type||"TSUnionType"===i.type)&&Dr(e)&&(i.types[0].prettierIgnore=!0,e.unignore=!0),!1):(Dr(e)&&(i.prettierIgnore=!0,e.unignore=!0),!!t&&(nr(t,e),!0))}function Gr({comment:e,enclosingNode:t}){return!!Fr(t)&&(rr(t,e),!0)}function Xr({comment:e,enclosingNode:t,followingNode:u,ast:i,isLastComment:r}){return i&&i.body&&0===i.body.length?(r?sr(i,e):rr(i,e),!0):t&&"Program"===t.type&&0===t.body.length&&!or(t.directives)?(r?sr(t,e):rr(t,e),!0):!(!u||"Program"!==u.type||0!==u.body.length||!t||"ModuleExpression"!==t.type)&&(sr(u,e),!0)}function qr({comment:e,enclosingNode:t}){return!(!t||"ForInStatement"!==t.type&&"ForOfStatement"!==t.type)&&(rr(t,e),!0)}function Wr({comment:e,precedingNode:t,enclosingNode:u,text:i}){return!!(t&&"ImportSpecifier"===t.type&&u&&"ImportDeclaration"===u.type&&er(i,yr(e)))&&(nr(t,e),!0)}function Hr({comment:e,enclosingNode:t}){return!(!t||"AssignmentPattern"!==t.type)&&(rr(t,e),!0)}function Jr({comment:e,enclosingNode:t}){return!(!t||"TypeAlias"!==t.type)&&(rr(t,e),!0)}function zr({comment:e,enclosingNode:t,followingNode:u}){return!(!t||"VariableDeclarator"!==t.type&&"AssignmentExpression"!==t.type||!u||"ObjectExpression"!==u.type&&"ArrayExpression"!==u.type&&"TemplateLiteral"!==u.type&&"TaggedTemplateExpression"!==u.type&&!cr(e))&&(rr(u,e),!0)}function Kr({comment:e,enclosingNode:t,followingNode:u,text:i}){return!(u||!t||"TSMethodSignature"!==t.type&&"TSDeclareFunction"!==t.type&&"TSAbstractMethodDefinition"!==t.type||";"!==ur(i,e,yr))&&(nr(t,e),!0)}function Qr({comment:e,enclosingNode:t,followingNode:u}){if(Dr(e)&&t&&"TSMappedType"===t.type&&u&&"TSTypeParameter"===u.type&&u.constraint)return t.prettierIgnore=!0,e.unignore=!0,!0}function Yr({comment:e,precedingNode:t,enclosingNode:u,followingNode:i}){return!(!u||"TSMappedType"!==u.type)&&(i&&"TSTypeParameter"===i.type&&i.name?(rr(i.name,e),!0):!(!t||"TSTypeParameter"!==t.type||!t.constraint)&&(nr(t.constraint,e),!0))}function Zr(e){return"ArrowFunctionExpression"===e.type||"FunctionExpression"===e.type||"FunctionDeclaration"===e.type||"ObjectMethod"===e.type||"ClassMethod"===e.type||"TSDeclareFunction"===e.type||"TSCallSignatureDeclaration"===e.type||"TSConstructSignatureDeclaration"===e.type||"TSMethodSignature"===e.type||"TSConstructorType"===e.type||"TSFunctionType"===e.type||"TSDeclareMethod"===e.type}function en(e){return cr(e)&&"*"===e.value[0]&&/@type\b/.test(e.value)}var tn={handleOwnLineComment:function(e){return[Qr,Rr,wr,Sr,br,Tr,kr,jr,qr,$r,Xr,Wr,Hr,Nr,Mr].some((t=>t(e)))},handleEndOfLineComment:function(e){return[vr,Rr,_r,jr,Sr,br,Tr,kr,Mr,Ur,Gr,Xr,Jr,zr].some((t=>t(e)))},handleRemainingComment:function(e){return[Qr,Sr,br,Ir,Or,Nr,Xr,Pr,Lr,Yr,Vr,Kr].some((t=>t(e)))},isTypeCastComment:en,getCommentChildNodes:function(e,t){if(("typescript"===t.parser||"flow"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser)&&"MethodDefinition"===e.type&&e.value&&"FunctionExpression"===e.value.type&&0===pr(e.value).length&&!e.value.returnType&&!or(e.value.typeParameters)&&e.value.body)return[...e.decorators||[],e.key,e.value.body]},willPrintOwnComments:function(e){const t=e.getValue(),u=e.getParentNode();return(t&&(hr(t)||lr(t)||mr(u)&&(dr(t.leadingComments)||dr(t.trailingComments)))||u&&("JSXSpreadAttribute"===u.type||"JSXSpreadChild"===u.type||"UnionTypeAnnotation"===u.type||"TSUnionType"===u.type||("ClassDeclaration"===u.type||"ClassExpression"===u.type)&&u.superClass===t))&&(!fr(e)||"UnionTypeAnnotation"===u.type||"TSUnionType"===u.type)}};const{getLast:un,getNextNonSpaceNonCommentCharacter:rn}=Qu,{locStart:nn,locEnd:sn}=ui,{isTypeCastComment:an}=tn;function on(e){return"CallExpression"===e.type?(e.type="OptionalCallExpression",e.callee=on(e.callee)):"MemberExpression"===e.type?(e.type="OptionalMemberExpression",e.object=on(e.object)):"TSNonNullExpression"===e.type&&(e.expression=on(e.expression)),e}function cn(e,t){let u;if(Array.isArray(e))u=e.entries();else{if(!e||"object"!=typeof e||"string"!=typeof e.type)return e;u=Object.entries(e)}for(const[i,r]of u)e[i]=cn(r,t);return Array.isArray(e)?e:t(e)||e}function pn(e){return"LogicalExpression"===e.type&&"LogicalExpression"===e.right.type&&e.operator===e.right.operator}function Dn(e){return pn(e)?Dn({type:"LogicalExpression",operator:e.operator,left:Dn({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[nn(e.left),sn(e.right.left)]}),right:e.right.right,range:[nn(e),sn(e)]}):e}var hn,ln=function(t,u){if("typescript"===u.parser&&u.originalText.includes("@")){const{esTreeNodeToTSNodeMap:i,tsNodeToESTreeNodeMap:r}=u.tsParseResult;t=cn(t,(t=>{const u=i.get(t);if(!u)return;const n=u.decorators;if(!Array.isArray(n))return;const s=r.get(u);if(s!==t)return;const a=s.decorators;if(!Array.isArray(a)||a.length!==n.length||n.some((e=>{const t=r.get(e);return!t||!a.includes(t)}))){const{start:t,end:u}=s.loc;throw e("Leading decorators must be attached to a class declaration",{start:{line:t.line,column:t.column+1},end:{line:u.line,column:u.column+1}})}}))}if("typescript"!==u.parser&&"flow"!==u.parser&&"espree"!==u.parser&&"meriyah"!==u.parser){const e=new Set;t=cn(t,(t=>{t.leadingComments&&t.leadingComments.some(an)&&e.add(nn(t))})),t=cn(t,(t=>{if("ParenthesizedExpression"===t.type){const{expression:u}=t;if("TypeCastExpression"===u.type)return u.range=t.range,u;const i=nn(t);if(!e.has(i))return u.extra=Object.assign(Object.assign({},u.extra),{},{parenthesized:!0}),u}}))}return t=cn(t,(e=>{switch(e.type){case"ChainExpression":return on(e.expression);case"LogicalExpression":if(pn(e))return Dn(e);break;case"VariableDeclaration":{const t=un(e.declarations);t&&t.init&&function(e,t){if(";"===u.originalText[sn(t)])return;e.range=[nn(e),sn(t)]}(e,t);break}case"TSParenthesizedType":return e.typeAnnotation.range=[nn(e),sn(e)],e.typeAnnotation;case"TSTypeParameter":if("string"==typeof e.name){const t=nn(e);e.name={type:"Identifier",name:e.name,range:[t,t+e.name.length]}}break;case"SequenceExpression":{const t=un(e.expressions);e.range=[nn(e),Math.min(sn(t),sn(e))];break}case"ClassProperty":e.key&&"TSPrivateIdentifier"===e.key.type&&"?"===rn(u.originalText,e.key,sn)&&(e.optional=!0)}}))};function dn(){if(void 0===hn){var e=new ArrayBuffer(2),t=new Uint8Array(e),u=new Uint16Array(e);if(t[0]=1,t[1]=2,258===u[0])hn="BE";else{if(513!==u[0])throw new Error("unable to figure out endianess");hn="LE"}}return hn}function fn(){return void 0!==Pt.location?Pt.location.hostname:""}function En(){return[]}function Cn(){return 0}function mn(){return Number.MAX_VALUE}function An(){return Number.MAX_VALUE}function Fn(){return[]}function gn(){return"Browser"}function yn(){return void 0!==Pt.navigator?Pt.navigator.appVersion:""}function xn(){}function Bn(){}function vn(){return"javascript"}function Sn(){return"browser"}function bn(){return"/tmp"}var Tn=bn,wn={EOL:"\n",arch:vn,platform:Sn,tmpdir:Tn,tmpDir:bn,networkInterfaces:xn,getNetworkInterfaces:Bn,release:yn,type:gn,cpus:Fn,totalmem:An,freemem:mn,uptime:Cn,loadavg:En,hostname:fn,endianness:dn},_n=Object.freeze({__proto__:null,endianness:dn,hostname:fn,loadavg:En,uptime:Cn,freemem:mn,totalmem:An,cpus:Fn,type:gn,release:yn,networkInterfaces:xn,getNetworkInterfaces:Bn,arch:vn,platform:Sn,tmpDir:bn,tmpdir:Tn,EOL:"\n",default:wn});const In=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");const t=e.match(/(?:\r?\n)/g)||[];if(0===t.length)return;const u=t.filter((e=>"\r\n"===e)).length;return u>t.length-u?"\r\n":"\n"};var kn=In;kn.graceful=e=>"string"==typeof e&&In(e)||"\n";var Nn=l(_n),Ln=function(e){const t=e.match(Gn);return t?t[0].trimLeft():""},Pn=function(e){const t=e.match(Gn);return t&&t[0]?e.substring(t[0].length):e},On=function(e){return Kn(e).pragmas},Rn=Kn,jn=function({comments:e="",pragmas:t={}}){const u=(0,Vn().default)(e)||Mn().EOL,i=" *",r=Object.keys(t),n=r.map((e=>Qn(e,t[e]))).reduce(((e,t)=>e.concat(t)),[]).map((e=>" * "+e+u)).join("");if(!e){if(0===r.length)return"";if(1===r.length&&!Array.isArray(t[r[0]])){const e=t[r[0]];return`/** ${Qn(r[0],e)[0]} */`}}const s=e.split(u).map((e=>` * ${e}`)).join(u)+u;return"/**"+u+(e?s:"")+(e&&r.length?i+u:"")+n+" */"};function Mn(){const e=Nn;return Mn=function(){return e},e}function Vn(){const e=(t=kn)&&t.__esModule?t:{default:t};var t;return Vn=function(){return e},e}const Un=/\*\/$/,$n=/^\/\*\*/,Gn=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Xn=/(^|\s+)\/\/([^\r\n]*)/g,qn=/^(\r?\n)+/,Wn=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Hn=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,Jn=/(\r?\n|^) *\* ?/g,zn=[];function Kn(e){const t=(0,Vn().default)(e)||Mn().EOL;e=e.replace($n,"").replace(Un,"").replace(Jn,"$1");let u="";for(;u!==e;)u=e,e=e.replace(Wn,`${t}$1 $2${t}`);e=e.replace(qn,"").trimRight();const i=Object.create(null),r=e.replace(Hn,"").replace(qn,"").trimRight();let n;for(;n=Hn.exec(e);){const e=n[2].replace(Xn,"");"string"==typeof i[n[1]]||Array.isArray(i[n[1]])?i[n[1]]=zn.concat(i[n[1]],e):i[n[1]]=e}return{comments:r,pragmas:i}}function Qn(e,t){return zn.concat(t).map((t=>`@${e} ${t}`.trim()))}var Yn=Object.defineProperty({extract:Ln,strip:Pn,parse:On,parseWithComments:Rn,print:jn},"__esModule",{value:!0});var Zn={guessEndOfLine:function(e){const t=e.indexOf("\r");return t>=0?"\n"===e.charAt(t+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(e,t){let u;if("\n"===t)u=/\n/g;else if("\r"===t)u=/\r/g;else{if("\r\n"!==t)throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);u=/\r\n/g}const i=e.match(u);return i?i.length:0},normalizeEndOfLine:function(e){return e.replace(/\r\n?/g,"\n")}};const{parseWithComments:es,strip:ts,extract:us,print:is}=Yn,{getShebang:rs}=Qu,{normalizeEndOfLine:ns}=Zn;function ss(e){const t=rs(e);t&&(e=e.slice(t.length+1));const u=us(e),{pragmas:i,comments:r}=es(u);return{shebang:t,text:e,pragmas:i,comments:r}}var as={hasPragma:function(e){const t=Object.keys(ss(e).pragmas);return t.includes("prettier")||t.includes("format")},insertPragma:function(e){const{shebang:t,text:u,pragmas:i,comments:r}=ss(e),n=ts(u),s=is({pragmas:Object.assign({format:""},i),comments:r.trimStart()});return(t?`${t}\n`:"")+ns(s)+(n.startsWith("\n")?"\n":"\n\n")+n}};const{hasPragma:os}=as,{locStart:cs,locEnd:ps}=ui;var Ds=function(e){return e="function"==typeof e?{parse:e}:e,Object.assign({astFormat:"estree",hasPragma:os,locStart:cs,locEnd:ps},e)};var hs=function(e){return"#"===e.charAt(0)&&"!"===e.charAt(1)?"//"+e.slice(2):e},ls={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},ds="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",fs={5:ds,"5module":ds+" export import",6:ds+" const class extends export import super"},Es=/^in(stanceof)?$/,Cs="\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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",ms="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",As=new RegExp("["+Cs+"]"),Fs=new RegExp("["+Cs+ms+"]");Cs=ms=null;var gs=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938],ys=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];function xs(e,t){for(var u=65536,i=0;ie)return!1;if((u+=t[i+1])>=e)return!0}}function Bs(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&As.test(String.fromCharCode(e)):!1!==t&&xs(e,gs)))}function vs(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&Fs.test(String.fromCharCode(e)):!1!==t&&(xs(e,gs)||xs(e,ys)))))}var Ss=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function bs(e,t){return new Ss(e,{beforeExpr:!0,binop:t})}var Ts={beforeExpr:!0},ws={startsExpr:!0},_s={};function Is(e,t){return void 0===t&&(t={}),t.keyword=e,_s[e]=new Ss(e,t)}var ks={num:new Ss("num",ws),regexp:new Ss("regexp",ws),string:new Ss("string",ws),name:new Ss("name",ws),eof:new Ss("eof"),bracketL:new Ss("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new Ss("]"),braceL:new Ss("{",{beforeExpr:!0,startsExpr:!0}),braceR:new Ss("}"),parenL:new Ss("(",{beforeExpr:!0,startsExpr:!0}),parenR:new Ss(")"),comma:new Ss(",",Ts),semi:new Ss(";",Ts),colon:new Ss(":",Ts),dot:new Ss("."),question:new Ss("?",Ts),questionDot:new Ss("?."),arrow:new Ss("=>",Ts),template:new Ss("template"),invalidTemplate:new Ss("invalidTemplate"),ellipsis:new Ss("...",Ts),backQuote:new Ss("`",ws),dollarBraceL:new Ss("${",{beforeExpr:!0,startsExpr:!0}),eq:new Ss("=",{beforeExpr:!0,isAssign:!0}),assign:new Ss("_=",{beforeExpr:!0,isAssign:!0}),incDec:new Ss("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new Ss("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:bs("||",1),logicalAND:bs("&&",2),bitwiseOR:bs("|",3),bitwiseXOR:bs("^",4),bitwiseAND:bs("&",5),equality:bs("==/!=/===/!==",6),relational:bs("/<=/>=",7),bitShift:bs("<>/>>>",8),plusMin:new Ss("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:bs("%",10),star:bs("*",10),slash:bs("/",10),starstar:new Ss("**",{beforeExpr:!0}),coalesce:bs("??",1),_break:Is("break"),_case:Is("case",Ts),_catch:Is("catch"),_continue:Is("continue"),_debugger:Is("debugger"),_default:Is("default",Ts),_do:Is("do",{isLoop:!0,beforeExpr:!0}),_else:Is("else",Ts),_finally:Is("finally"),_for:Is("for",{isLoop:!0}),_function:Is("function",ws),_if:Is("if"),_return:Is("return",Ts),_switch:Is("switch"),_throw:Is("throw",Ts),_try:Is("try"),_var:Is("var"),_const:Is("const"),_while:Is("while",{isLoop:!0}),_with:Is("with"),_new:Is("new",{beforeExpr:!0,startsExpr:!0}),_this:Is("this",ws),_super:Is("super",ws),_class:Is("class",ws),_extends:Is("extends",Ts),_export:Is("export"),_import:Is("import",ws),_null:Is("null",ws),_true:Is("true",ws),_false:Is("false",ws),_in:Is("in",{beforeExpr:!0,binop:7}),_instanceof:Is("instanceof",{beforeExpr:!0,binop:7}),_typeof:Is("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Is("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Is("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Ns=/\r\n?|\n|\u2028|\u2029/,Ls=new RegExp(Ns.source,"g");function Ps(e,t){return 10===e||13===e||!t&&(8232===e||8233===e)}var Os=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Rs=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,js=Object.prototype,Ms=js.hasOwnProperty,Vs=js.toString;function Us(e,t){return Ms.call(e,t)}var $s=Array.isArray||function(e){return"[object Array]"===Vs.call(e)};function Gs(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}var Xs=function(e,t){this.line=e,this.column=t};Xs.prototype.offset=function(e){return new Xs(this.line,this.column+e)};var qs=function(e,t,u){this.start=t,this.end=u,null!==e.sourceFile&&(this.source=e.sourceFile)};function Ws(e,t){for(var u=1,i=0;;){Ls.lastIndex=i;var r=Ls.exec(e);if(!(r&&r.index=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),$s(t.onToken)){var i=t.onToken;t.onToken=function(e){return i.push(e)}}return $s(t.onComment)&&(t.onComment=function(e,t){return function(u,i,r,n,s,a){var o={type:u?"Block":"Line",value:i,start:r,end:n};e.locations&&(o.loc=new qs(this,s,a)),e.ranges&&(o.range=[r,n]),t.push(o)}}(t,t.onComment)),t}function zs(e,t){return 2|(e?4:0)|(t?8:0)}var Ks=function(e,t,u){this.options=e=Js(e),this.sourceFile=e.sourceFile,this.keywords=Gs(fs[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var i="";if(!0!==e.allowReserved){for(var r=e.ecmaVersion;!(i=ls[r]);r--);"module"===e.sourceType&&(i+=" await")}this.reservedWords=Gs(i);var n=(i?i+" ":"")+ls.strict;this.reservedWordsStrict=Gs(n),this.reservedWordsStrictBind=Gs(n+" "+ls.strictBind),this.input=String(t),this.containsEsc=!1,u?(this.pos=u,this.lineStart=this.input.lastIndexOf("\n",u-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Ns).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=ks.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},Qs={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0}};Ks.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},Qs.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},Qs.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},Qs.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},Qs.allowSuper.get=function(){return(64&this.currentThisScope().flags)>0},Qs.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},Qs.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},Ks.prototype.inNonArrowFunction=function(){return(2&this.currentThisScope().flags)>0},Ks.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var u=this,i=0;i=,?^&]/.test(r)||"!"===r&&"="===this.input.charAt(i+1))}e+=t[0].length,Rs.lastIndex=e,e+=Rs.exec(this.input)[0].length,";"===this.input[e]&&e++}},Ys.eat=function(e){return this.type===e&&(this.next(),!0)},Ys.isContextual=function(e){return this.type===ks.name&&this.value===e&&!this.containsEsc},Ys.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},Ys.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},Ys.canInsertSemicolon=function(){return this.type===ks.eof||this.type===ks.braceR||Ns.test(this.input.slice(this.lastTokEnd,this.start))},Ys.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},Ys.semicolon=function(){this.eat(ks.semi)||this.insertSemicolon()||this.unexpected()},Ys.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},Ys.expect=function(e){this.eat(e)||this.unexpected()},Ys.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},Ys.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var u=t?e.parenthesizedAssign:e.parenthesizedBind;u>-1&&this.raiseRecoverable(u,"Parenthesized pattern")}},Ys.checkExpressionErrors=function(e,t){if(!e)return!1;var u=e.shorthandAssign,i=e.doubleProto;if(!t)return u>=0||i>=0;u>=0&&this.raise(u,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},Ys.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&this.unexpected(),this.parseFunctionStatement(n,!1,!e);case ks._class:return e&&this.unexpected(),this.parseClass(n,!0);case ks._if:return this.parseIfStatement(n);case ks._return:return this.parseReturnStatement(n);case ks._switch:return this.parseSwitchStatement(n);case ks._throw:return this.parseThrowStatement(n);case ks._try:return this.parseTryStatement(n);case ks._const:case ks._var:return i=i||this.value,e&&"var"!==i&&this.unexpected(),this.parseVarStatement(n,i);case ks._while:return this.parseWhileStatement(n);case ks._with:return this.parseWithStatement(n);case ks.braceL:return this.parseBlock(!0,n);case ks.semi:return this.parseEmptyStatement(n);case ks._export:case ks._import:if(this.options.ecmaVersion>10&&r===ks._import){Rs.lastIndex=this.pos;var s=Rs.exec(this.input),a=this.pos+s[0].length,o=this.input.charCodeAt(a);if(40===o||46===o)return this.parseExpressionStatement(n,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===ks._import?this.parseImport(n):this.parseExport(n,u);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(n,!0,!e);var c=this.value,p=this.parseExpression();return r===ks.name&&"Identifier"===p.type&&this.eat(ks.colon)?this.parseLabeledStatement(n,c,p,e):this.parseExpressionStatement(n,p)}},ta.parseBreakContinueStatement=function(e,t){var u="break"===t;this.next(),this.eat(ks.semi)||this.insertSemicolon()?e.label=null:this.type!==ks.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i=6?this.eat(ks.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},ta.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(ua),this.enterScope(0),this.expect(ks.parenL),this.type===ks.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var u=this.isLet();if(this.type===ks._var||this.type===ks._const||u){var i=this.startNode(),r=u?"let":this.value;return this.next(),this.parseVar(i,!0,r),this.finishNode(i,"VariableDeclaration"),(this.type===ks._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===ks._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,i)):(t>-1&&this.unexpected(t),this.parseFor(e,i))}var n=new ea,s=this.parseExpression(!0,n);return this.type===ks._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===ks._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(s,!1,n),this.checkLVal(s),this.parseForIn(e,s)):(this.checkExpressionErrors(n,!0),t>-1&&this.unexpected(t),this.parseFor(e,s))},ta.parseFunctionStatement=function(e,t,u){return this.next(),this.parseFunction(e,na|(u?0:sa),!1,t)},ta.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(ks._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},ta.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(ks.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},ta.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(ks.braceL),this.labels.push(ia),this.enterScope(0);for(var u=!1;this.type!==ks.braceR;)if(this.type===ks._case||this.type===ks._default){var i=this.type===ks._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(u&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),u=!0,t.test=null),this.expect(ks.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},ta.parseThrowStatement=function(e){return this.next(),Ns.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var ra=[];ta.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===ks._catch){var t=this.startNode();if(this.next(),this.eat(ks.parenL)){t.param=this.parseBindingAtom();var u="Identifier"===t.param.type;this.enterScope(u?32:0),this.checkLVal(t.param,u?4:2),this.expect(ks.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(ks._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},ta.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},ta.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(ua),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},ta.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},ta.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},ta.parseLabeledStatement=function(e,t,u,i){for(var r=0,n=this.labels;r=0;a--){var o=this.labels[a];if(o.statementStart!==e.start)break;o.statementStart=this.start,o.kind=s}return this.labels.push({name:t,kind:s,statementStart:this.start}),e.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),e.label=u,this.finishNode(e,"LabeledStatement")},ta.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},ta.parseBlock=function(e,t,u){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(ks.braceL),e&&this.enterScope(0);this.type!==ks.braceR;){var i=this.parseStatement(null);t.body.push(i)}return u&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},ta.parseFor=function(e,t){return e.init=t,this.expect(ks.semi),e.test=this.type===ks.semi?null:this.parseExpression(),this.expect(ks.semi),e.update=this.type===ks.parenR?null:this.parseExpression(),this.expect(ks.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},ta.parseForIn=function(e,t){var u=this.type===ks._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!u||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)?this.raise(t.start,(u?"for-in":"for-of")+" loop variable declaration may not have an initializer"):"AssignmentPattern"===t.type&&this.raise(t.start,"Invalid left-hand side in for-loop"),e.left=t,e.right=u?this.parseExpression():this.parseMaybeAssign(),this.expect(ks.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,u?"ForInStatement":"ForOfStatement")},ta.parseVar=function(e,t,u){for(e.declarations=[],e.kind=u;;){var i=this.startNode();if(this.parseVarId(i,u),this.eat(ks.eq)?i.init=this.parseMaybeAssign(t):"const"!==u||this.type===ks._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"===i.id.type||t&&(this.type===ks._in||this.isContextual("of"))?i.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(i,"VariableDeclarator")),!this.eat(ks.comma))break}return e},ta.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,"var"===t?1:2,!1)};var na=1,sa=2;ta.parseFunction=function(e,t,u,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===ks.star&&t&sa&&this.unexpected(),e.generator=this.eat(ks.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&na&&(e.id=4&t&&this.type!==ks.name?null:this.parseIdent(),!e.id||t&sa||this.checkLVal(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?1:2:3));var r=this.yieldPos,n=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(zs(e.async,e.generator)),t&na||(e.id=this.type===ks.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,u,!1),this.yieldPos=r,this.awaitPos=n,this.awaitIdentPos=s,this.finishNode(e,t&na?"FunctionDeclaration":"FunctionExpression")},ta.parseFunctionParams=function(e){this.expect(ks.parenL),e.params=this.parseBindingList(ks.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},ta.parseClass=function(e,t){this.next();var u=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.startNode(),r=!1;for(i.body=[],this.expect(ks.braceL);this.type!==ks.braceR;){var n=this.parseClassElement(null!==e.superClass);n&&(i.body.push(n),"MethodDefinition"===n.type&&"constructor"===n.kind&&(r&&this.raise(n.start,"Duplicate constructor in the same class"),r=!0))}return this.strict=u,this.next(),e.body=this.finishNode(i,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},ta.parseClassElement=function(e){var t=this;if(this.eat(ks.semi))return null;var u=this.startNode(),i=function(e,i){void 0===i&&(i=!1);var r=t.start,n=t.startLoc;return!!t.eatContextual(e)&&(!(t.type===ks.parenL||i&&t.canInsertSemicolon())||(u.key&&t.unexpected(),u.computed=!1,u.key=t.startNodeAt(r,n),u.key.name=e,t.finishNode(u.key,"Identifier"),!1))};u.kind="method",u.static=i("static");var r=this.eat(ks.star),n=!1;r||(this.options.ecmaVersion>=8&&i("async",!0)?(n=!0,r=this.options.ecmaVersion>=9&&this.eat(ks.star)):i("get")?u.kind="get":i("set")&&(u.kind="set")),u.key||this.parsePropertyName(u);var s=u.key,a=!1;return u.computed||u.static||!("Identifier"===s.type&&"constructor"===s.name||"Literal"===s.type&&"constructor"===s.value)?u.static&&"Identifier"===s.type&&"prototype"===s.name&&this.raise(s.start,"Classes may not have a static property named prototype"):("method"!==u.kind&&this.raise(s.start,"Constructor can't have get/set modifier"),r&&this.raise(s.start,"Constructor can't be a generator"),n&&this.raise(s.start,"Constructor can't be an async method"),u.kind="constructor",a=e),this.parseClassMethod(u,r,n,a),"get"===u.kind&&0!==u.value.params.length&&this.raiseRecoverable(u.value.start,"getter should have no params"),"set"===u.kind&&1!==u.value.params.length&&this.raiseRecoverable(u.value.start,"setter should have exactly one param"),"set"===u.kind&&"RestElement"===u.value.params[0].type&&this.raiseRecoverable(u.value.params[0].start,"Setter cannot use rest params"),u},ta.parseClassMethod=function(e,t,u,i){return e.value=this.parseMethod(t,u,i),this.finishNode(e,"MethodDefinition")},ta.parseClassId=function(e,t){this.type===ks.name?(e.id=this.parseIdent(),t&&this.checkLVal(e.id,2,!1)):(!0===t&&this.unexpected(),e.id=null)},ta.parseClassSuper=function(e){e.superClass=this.eat(ks._extends)?this.parseExprSubscripts():null},ta.parseExport=function(e,t){if(this.next(),this.eat(ks.star))return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(e.exported=this.parseIdent(!0),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==ks.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(ks._default)){var u;if(this.checkExport(t,"default",this.lastTokStart),this.type===ks._function||(u=this.isAsyncFunction())){var i=this.startNode();this.next(),u&&this.next(),e.declaration=this.parseFunction(i,4|na,!1,u)}else if(this.type===ks._class){var r=this.startNode();e.declaration=this.parseClass(r,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==ks.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var n=0,s=e.specifiers;n=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",u&&this.checkPatternErrors(u,!0);for(var i=0,r=e.properties;i=8&&!n&&"async"===s.name&&!this.canInsertSemicolon()&&this.eat(ks._function))return this.parseFunction(this.startNodeAt(i,r),0,!1,!0);if(u&&!this.canInsertSemicolon()){if(this.eat(ks.arrow))return this.parseArrowExpression(this.startNodeAt(i,r),[s],!1);if(this.options.ecmaVersion>=8&&"async"===s.name&&this.type===ks.name&&!n)return s=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(ks.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,r),[s],!0)}return s;case ks.regexp:var a=this.value;return(t=this.parseLiteral(a.value)).regex={pattern:a.pattern,flags:a.flags},t;case ks.num:case ks.string:return this.parseLiteral(this.value);case ks._null:case ks._true:case ks._false:return(t=this.startNode()).value=this.type===ks._null?null:this.type===ks._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case ks.parenL:var o=this.start,c=this.parseParenAndDistinguishExpression(u);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(c)&&(e.parenthesizedAssign=o),e.parenthesizedBind<0&&(e.parenthesizedBind=o)),c;case ks.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(ks.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case ks.braceL:return this.parseObj(!1,e);case ks._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case ks._class:return this.parseClass(this.startNode(),!1);case ks._new:return this.parseNew();case ks.backQuote:return this.parseTemplate();case ks._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},oa.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var t=this.parseIdent(!0);switch(this.type){case ks.parenL:return this.parseDynamicImport(e);case ks.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},oa.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(ks.parenR)){var t=this.start;this.eat(ks.comma)&&this.eat(ks.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},oa.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"!==this.options.sourceType&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},oa.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},oa.parseParenExpression=function(){this.expect(ks.parenL);var e=this.parseExpression();return this.expect(ks.parenR),e},oa.parseParenAndDistinguishExpression=function(e){var t,u=this.start,i=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var n,s=this.start,a=this.startLoc,o=[],c=!0,p=!1,D=new ea,h=this.yieldPos,l=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==ks.parenR;){if(c?c=!1:this.expect(ks.comma),r&&this.afterTrailingComma(ks.parenR,!0)){p=!0;break}if(this.type===ks.ellipsis){n=this.start,o.push(this.parseParenItem(this.parseRestBinding())),this.type===ks.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}o.push(this.parseMaybeAssign(!1,D,this.parseParenItem))}var d=this.start,f=this.startLoc;if(this.expect(ks.parenR),e&&!this.canInsertSemicolon()&&this.eat(ks.arrow))return this.checkPatternErrors(D,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=h,this.awaitPos=l,this.parseParenArrowList(u,i,o);o.length&&!p||this.unexpected(this.lastTokStart),n&&this.unexpected(n),this.checkExpressionErrors(D,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=l||this.awaitPos,o.length>1?((t=this.startNodeAt(s,a)).expressions=o,this.finishNodeAt(t,"SequenceExpression",d,f)):t=o[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var E=this.startNodeAt(u,i);return E.expression=t,this.finishNode(E,"ParenthesizedExpression")}return t},oa.parseParenItem=function(e){return e},oa.parseParenArrowList=function(e,t,u){return this.parseArrowExpression(this.startNodeAt(e,t),u)};var ca=[];oa.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(ks.dot)){e.meta=t;var u=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),u&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.inNonArrowFunction()||this.raiseRecoverable(e.start,"'new.target' can only be used in functions"),this.finishNode(e,"MetaProperty")}var i=this.start,r=this.startLoc,n=this.type===ks._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),i,r,!0),n&&"ImportExpression"===e.callee.type&&this.raise(i,"Cannot use new with import()"),this.eat(ks.parenL)?e.arguments=this.parseExprList(ks.parenR,this.options.ecmaVersion>=8,!1):e.arguments=ca,this.finishNode(e,"NewExpression")},oa.parseTemplateElement=function(e){var t=e.isTagged,u=this.startNode();return this.type===ks.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),u.value={raw:this.value,cooked:null}):u.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),u.tail=this.type===ks.backQuote,this.finishNode(u,"TemplateElement")},oa.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var u=this.startNode();this.next(),u.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(u.quasis=[i];!i.tail;)this.type===ks.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(ks.dollarBraceL),u.expressions.push(this.parseExpression()),this.expect(ks.braceR),u.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(u,"TemplateLiteral")},oa.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===ks.name||this.type===ks.num||this.type===ks.string||this.type===ks.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===ks.star)&&!Ns.test(this.input.slice(this.lastTokEnd,this.start))},oa.parseObj=function(e,t){var u=this.startNode(),i=!0,r={};for(u.properties=[],this.next();!this.eat(ks.braceR);){if(i)i=!1;else if(this.expect(ks.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(ks.braceR))break;var n=this.parseProperty(e,t);e||this.checkPropClash(n,r,t),u.properties.push(n)}return this.finishNode(u,e?"ObjectPattern":"ObjectExpression")},oa.parseProperty=function(e,t){var u,i,r,n,s=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(ks.ellipsis))return e?(s.argument=this.parseIdent(!1),this.type===ks.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(s,"RestElement")):(this.type===ks.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),s.argument=this.parseMaybeAssign(!1,t),this.type===ks.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(s,"SpreadElement"));this.options.ecmaVersion>=6&&(s.method=!1,s.shorthand=!1,(e||t)&&(r=this.start,n=this.startLoc),e||(u=this.eat(ks.star)));var a=this.containsEsc;return this.parsePropertyName(s),!e&&!a&&this.options.ecmaVersion>=8&&!u&&this.isAsyncProp(s)?(i=!0,u=this.options.ecmaVersion>=9&&this.eat(ks.star),this.parsePropertyName(s,t)):i=!1,this.parsePropertyValue(s,e,u,i,r,n,t,a),this.finishNode(s,"Property")},oa.parsePropertyValue=function(e,t,u,i,r,n,s,a){if((u||i)&&this.type===ks.colon&&this.unexpected(),this.eat(ks.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,s),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===ks.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(u,i);else if(t||a||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===ks.comma||this.type===ks.braceR||this.type===ks.eq)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((u||i)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=r),e.kind="init",t?e.value=this.parseMaybeDefault(r,n,e.key):this.type===ks.eq&&s?(s.shorthandAssign<0&&(s.shorthandAssign=this.start),e.value=this.parseMaybeDefault(r,n,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(u||i)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var o="get"===e.kind?0:1;if(e.value.params.length!==o){var c=e.value.start;"get"===e.kind?this.raiseRecoverable(c,"getter should have no params"):this.raiseRecoverable(c,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},oa.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(ks.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(ks.bracketR),e.key;e.computed=!1}return e.key=this.type===ks.num||this.type===ks.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},oa.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},oa.parseMethod=function(e,t,u){var i=this.startNode(),r=this.yieldPos,n=this.awaitPos,s=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|zs(t,i.generator)|(u?128:0)),this.expect(ks.parenL),i.params=this.parseBindingList(ks.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0),this.yieldPos=r,this.awaitPos=n,this.awaitIdentPos=s,this.finishNode(i,"FunctionExpression")},oa.parseArrowExpression=function(e,t,u){var i=this.yieldPos,r=this.awaitPos,n=this.awaitIdentPos;return this.enterScope(16|zs(u,!1)),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!u),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=i,this.awaitPos=r,this.awaitIdentPos=n,this.finishNode(e,"ArrowFunctionExpression")},oa.parseFunctionBody=function(e,t,u){var i=t&&this.type!==ks.braceL,r=this.strict,n=!1;if(i)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);r&&!s||(n=this.strictDirective(this.end))&&s&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var a=this.labels;this.labels=[],n&&(this.strict=!0),this.checkParams(e,!r&&!n&&!t&&!u&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLVal(e.id,5),e.body=this.parseBlock(!1,void 0,n&&!r),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=a}this.exitScope()},oa.isSimpleParamList=function(e){for(var t=0,u=e;t-1||r.functions.indexOf(e)>-1||r.var.indexOf(e)>-1,r.lexical.push(e),this.inModule&&1&r.flags&&delete this.undefinedExports[e]}else if(4===t){this.currentScope().lexical.push(e)}else if(3===t){var n=this.currentScope();i=this.treatFunctionsAsVar?n.lexical.indexOf(e)>-1:n.lexical.indexOf(e)>-1||n.var.indexOf(e)>-1,n.functions.push(e)}else for(var s=this.scopeStack.length-1;s>=0;--s){var a=this.scopeStack[s];if(a.lexical.indexOf(e)>-1&&!(32&a.flags&&a.lexical[0]===e)||!this.treatFunctionsAsVarInScope(a)&&a.functions.indexOf(e)>-1){i=!0;break}if(a.var.push(e),this.inModule&&1&a.flags&&delete this.undefinedExports[e],3&a.flags)break}i&&this.raiseRecoverable(u,"Identifier '"+e+"' has already been declared")},Da.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},Da.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Da.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags)return t}},Da.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(3&t.flags&&!(16&t.flags))return t}};var la=function(e,t,u){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new qs(e,u)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},da=Ks.prototype;function fa(e,t,u,i){return e.type=t,e.end=u,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=u),e}da.startNode=function(){return new la(this,this.start,this.startLoc)},da.startNodeAt=function(e,t){return new la(this,e,t)},da.finishNode=function(e,t){return fa.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},da.finishNodeAt=function(e,t,u,i){return fa.call(this,e,t,u,i)};var Ea=function(e,t,u,i,r){this.token=e,this.isExpr=!!t,this.preserveSpace=!!u,this.override=i,this.generator=!!r},Ca={b_stat:new Ea("{",!1),b_expr:new Ea("{",!0),b_tmpl:new Ea("${",!1),p_stat:new Ea("(",!1),p_expr:new Ea("(",!0),q_tmpl:new Ea("`",!0,!0,(function(e){return e.tryReadTemplateToken()})),f_stat:new Ea("function",!1),f_expr:new Ea("function",!0),f_expr_gen:new Ea("function",!0,!1,null,!0),f_gen:new Ea("function",!1,!1,null,!0)},ma=Ks.prototype;ma.initialContext=function(){return[Ca.b_stat]},ma.braceIsBlock=function(e){var t=this.curContext();return t===Ca.f_expr||t===Ca.f_stat||(e!==ks.colon||t!==Ca.b_stat&&t!==Ca.b_expr?e===ks._return||e===ks.name&&this.exprAllowed?Ns.test(this.input.slice(this.lastTokEnd,this.start)):e===ks._else||e===ks.semi||e===ks.eof||e===ks.parenR||e===ks.arrow||(e===ks.braceL?t===Ca.b_stat:e!==ks._var&&e!==ks._const&&e!==ks.name&&!this.exprAllowed):!t.isExpr)},ma.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ma.updateContext=function(e){var t,u=this.type;u.keyword&&e===ks.dot?this.exprAllowed=!1:(t=u.updateContext)?t.call(this,e):this.exprAllowed=u.beforeExpr},ks.parenR.updateContext=ks.braceR.updateContext=function(){if(1!==this.context.length){var e=this.context.pop();e===Ca.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},ks.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?Ca.b_stat:Ca.b_expr),this.exprAllowed=!0},ks.dollarBraceL.updateContext=function(){this.context.push(Ca.b_tmpl),this.exprAllowed=!0},ks.parenL.updateContext=function(e){var t=e===ks._if||e===ks._for||e===ks._with||e===ks._while;this.context.push(t?Ca.p_stat:Ca.p_expr),this.exprAllowed=!0},ks.incDec.updateContext=function(){},ks._function.updateContext=ks._class.updateContext=function(e){!e.beforeExpr||e===ks.semi||e===ks._else||e===ks._return&&Ns.test(this.input.slice(this.lastTokEnd,this.start))||(e===ks.colon||e===ks.braceL)&&this.curContext()===Ca.b_stat?this.context.push(Ca.f_stat):this.context.push(Ca.f_expr),this.exprAllowed=!1},ks.backQuote.updateContext=function(){this.curContext()===Ca.q_tmpl?this.context.pop():this.context.push(Ca.q_tmpl),this.exprAllowed=!1},ks.star.updateContext=function(e){if(e===ks._function){var t=this.context.length-1;this.context[t]===Ca.f_expr?this.context[t]=Ca.f_expr_gen:this.context[t]=Ca.f_gen}this.exprAllowed=!0},ks.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==ks.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var Aa="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Fa=Aa+" Extended_Pictographic",ga={9:Aa,10:Fa,11:"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS Extended_Pictographic"},ya="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",xa="Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",Ba=xa+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",va={9:xa,10:Ba,11:"Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"},Sa={};function ba(e){var t=Sa[e]={binary:Gs(ga[e]+" "+ya),nonBinary:{General_Category:Gs(ya),Script:Gs(va[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}ba(9),ba(10),ba(11);var Ta=Ks.prototype,wa=function(e){this.parser=e,this.validFlags="gim"+(e.options.ecmaVersion>=6?"uy":"")+(e.options.ecmaVersion>=9?"s":""),this.unicodeProperties=Sa[e.options.ecmaVersion>=11?11:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function _a(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function Ia(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function ka(e){return e>=65&&e<=90||e>=97&&e<=122}function Na(e){return ka(e)||95===e}function La(e){return Na(e)||Pa(e)}function Pa(e){return e>=48&&e<=57}function Oa(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ra(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function ja(e){return e>=48&&e<=55}wa.prototype.reset=function(e,t,u){var i=-1!==u.indexOf("u");this.start=0|e,this.source=t+"",this.flags=u,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},wa.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},wa.prototype.at=function(e,t){void 0===t&&(t=!1);var u=this.source,i=u.length;if(e>=i)return-1;var r=u.charCodeAt(e);if(!t&&!this.switchU||r<=55295||r>=57344||e+1>=i)return r;var n=u.charCodeAt(e+1);return n>=56320&&n<=57343?(r<<10)+n-56613888:r},wa.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var u=this.source,i=u.length;if(e>=i)return i;var r,n=u.charCodeAt(e);return!t&&!this.switchU||n<=55295||n>=57344||e+1>=i||(r=u.charCodeAt(e+1))<56320||r>57343?e+1:e+2},wa.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},wa.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},wa.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},wa.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},Ta.validateRegExpFlags=function(e){for(var t=e.validFlags,u=e.flags,i=0;i-1&&this.raise(e.start,"Duplicate regular expression flag")}},Ta.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},Ta.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,u=e.backReferenceNames;t=9&&(u=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!u,!0}return e.pos=t,!1},Ta.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},Ta.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},Ta.regexp_eatBracedQuantifier=function(e,t){var u=e.pos;if(e.eat(123)){var i=0,r=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue),e.eat(125)))return-1!==r&&r=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},Ta.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},Ta.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},Ta.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!Ia(t)&&(e.lastIntValue=t,e.advance(),!0)},Ta.regexp_eatPatternCharacters=function(e){for(var t=e.pos,u=0;-1!==(u=e.current())&&!Ia(u);)e.advance();return e.pos!==t},Ta.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},Ta.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},Ta.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},Ta.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=_a(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=_a(e.lastIntValue);return!0}return!1},Ta.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,u=this.options.ecmaVersion>=11,i=e.current(u);return e.advance(u),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(e,u)&&(i=e.lastIntValue),function(e){return Bs(e,!0)||36===e||95===e}(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)},Ta.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,u=this.options.ecmaVersion>=11,i=e.current(u);return e.advance(u),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(e,u)&&(i=e.lastIntValue),function(e){return vs(e,!0)||36===e||95===e||8204===e||8205===e}(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)},Ta.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},Ta.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var u=e.lastIntValue;if(e.switchU)return u>e.maxBackReference&&(e.maxBackReference=u),!0;if(u<=e.numCapturingParens)return!0;e.pos=t}return!1},Ta.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},Ta.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},Ta.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},Ta.regexp_eatZero=function(e){return 48===e.current()&&!Pa(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},Ta.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},Ta.regexp_eatControlLetter=function(e){var t=e.current();return!!ka(t)&&(e.lastIntValue=t%32,e.advance(),!0)},Ta.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var u,i=e.pos,r=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var n=e.lastIntValue;if(r&&n>=55296&&n<=56319){var s=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(a>=56320&&a<=57343)return e.lastIntValue=1024*(n-55296)+(a-56320)+65536,!0}e.pos=s,e.lastIntValue=n}return!0}if(r&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&((u=e.lastIntValue)>=0&&u<=1114111))return!0;r&&e.raise("Invalid unicode escape"),e.pos=i}return!1},Ta.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},Ta.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1},Ta.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(function(e){return 100===e||68===e||115===e||83===e||119===e||87===e}(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(80===t||112===t)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise("Invalid property name")}return!1},Ta.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var u=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,u,i),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,r),!0}return!1},Ta.regexp_validateUnicodePropertyNameAndValue=function(e,t,u){Us(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(u)||e.raise("Invalid property value")},Ta.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise("Invalid property name")},Ta.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Na(t=e.current());)e.lastStringValue+=_a(t),e.advance();return""!==e.lastStringValue},Ta.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";La(t=e.current());)e.lastStringValue+=_a(t),e.advance();return""!==e.lastStringValue},Ta.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},Ta.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise("Unterminated character class")}return!1},Ta.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var u=e.lastIntValue;!e.switchU||-1!==t&&-1!==u||e.raise("Invalid character class"),-1!==t&&-1!==u&&t>u&&e.raise("Range out of order in character class")}}},Ta.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var u=e.current();(99===u||ja(u))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return 93!==i&&(e.lastIntValue=i,e.advance(),!0)},Ta.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},Ta.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!Pa(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},Ta.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},Ta.regexp_eatDecimalDigits=function(e){var t=e.pos,u=0;for(e.lastIntValue=0;Pa(u=e.current());)e.lastIntValue=10*e.lastIntValue+(u-48),e.advance();return e.pos!==t},Ta.regexp_eatHexDigits=function(e){var t=e.pos,u=0;for(e.lastIntValue=0;Oa(u=e.current());)e.lastIntValue=16*e.lastIntValue+Ra(u),e.advance();return e.pos!==t},Ta.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var u=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*u+e.lastIntValue:e.lastIntValue=8*t+u}else e.lastIntValue=t;return!0}return!1},Ta.regexp_eatOctalDigit=function(e){var t=e.current();return ja(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},Ta.regexp_eatFixedHexDigits=function(e,t){var u=e.pos;e.lastIntValue=0;for(var i=0;i>10),56320+(1023&e)))}Va.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new Ma(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Va.getToken=function(){return this.next(),new Ma(this)},"undefined"!=typeof Symbol&&(Va[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===ks.eof,value:t}}}}),Va.curContext=function(){return this.context[this.context.length-1]},Va.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(ks.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},Va.readToken=function(e){return Bs(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},Va.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},Va.skipBlockComment=function(){var e,t=this.options.onComment&&this.curPosition(),u=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(Ls.lastIndex=u;(e=Ls.exec(this.input))&&e.index8&&e<14||e>=5760&&Os.test(String.fromCharCode(e))))break e;++this.pos}}},Va.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var u=this.type;this.type=e,this.value=t,this.updateContext(u)},Va.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(ks.ellipsis)):(++this.pos,this.finishToken(ks.dot))},Va.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(ks.assign,2):this.finishOp(ks.slash,1)},Va.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),u=1,i=42===e?ks.star:ks.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++u,i=ks.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(ks.assign,u+1):this.finishOp(i,u)},Va.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(ks.assign,3);return this.finishOp(124===e?ks.logicalOR:ks.logicalAND,2)}return 61===t?this.finishOp(ks.assign,2):this.finishOp(124===e?ks.bitwiseOR:ks.bitwiseAND,1)},Va.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(ks.assign,2):this.finishOp(ks.bitwiseXOR,1)},Va.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!Ns.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(ks.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(ks.assign,2):this.finishOp(ks.plusMin,1)},Va.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),u=1;return t===e?(u=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+u)?this.finishOp(ks.assign,u+1):this.finishOp(ks.bitShift,u)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(u=2),this.finishOp(ks.relational,u)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Va.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(ks.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(ks.arrow)):this.finishOp(61===e?ks.eq:ks.prefix,1)},Va.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var u=this.input.charCodeAt(this.pos+2);if(u<48||u>57)return this.finishOp(ks.questionDot,2)}if(63===t){if(e>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(ks.assign,3);return this.finishOp(ks.coalesce,2)}}return this.finishOp(ks.question,1)},Va.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(ks.parenL);case 41:return++this.pos,this.finishToken(ks.parenR);case 59:return++this.pos,this.finishToken(ks.semi);case 44:return++this.pos,this.finishToken(ks.comma);case 91:return++this.pos,this.finishToken(ks.bracketL);case 93:return++this.pos,this.finishToken(ks.bracketR);case 123:return++this.pos,this.finishToken(ks.braceL);case 125:return++this.pos,this.finishToken(ks.braceR);case 58:return++this.pos,this.finishToken(ks.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(ks.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(ks.prefix,1)}this.raise(this.pos,"Unexpected character '"+$a(e)+"'")},Va.finishOp=function(e,t){var u=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,u)},Va.readRegexp=function(){for(var e,t,u=this.pos;;){this.pos>=this.input.length&&this.raise(u,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(Ns.test(i)&&this.raise(u,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++this.pos}var r=this.input.slice(u,this.pos);++this.pos;var n=this.pos,s=this.readWord1();this.containsEsc&&this.unexpected(n);var a=this.regexpState||(this.regexpState=new wa(this));a.reset(u,r,s),this.validateRegExpFlags(a),this.validateRegExpPattern(a);var o=null;try{o=new RegExp(r,s)}catch(e){}return this.finishToken(ks.regexp,{pattern:r,flags:s,value:o})},Va.readInt=function(e,t,u){for(var i=this.options.ecmaVersion>=12&&void 0===t,r=u&&48===this.input.charCodeAt(this.pos),n=this.pos,s=0,a=0,o=0,c=null==t?1/0:t;o=97?p-97+10:p>=65?p-65+10:p>=48&&p<=57?p-48:1/0)>=e)break;a=p,s=s*e+D}}return i&&95===a&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===n||null!=t&&this.pos-n!==t?null:s},Va.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var u=this.readInt(e);return null==u&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(u=Ua(this.input.slice(t,this.pos)),++this.pos):Bs(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(ks.num,u)},Va.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,"Invalid number");var u=this.pos-t>=2&&48===this.input.charCodeAt(t);u&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!u&&!e&&this.options.ecmaVersion>=11&&110===i){var r=Ua(this.input.slice(t,this.pos));return++this.pos,Bs(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(ks.num,r)}u&&/[89]/.test(this.input.slice(t,this.pos))&&(u=!1),46!==i||u||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||u||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),Bs(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var n,s=(n=this.input.slice(t,this.pos),u?parseInt(n,8):parseFloat(n.replace(/_/g,"")));return this.finishToken(ks.num,s)},Va.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},Va.readString=function(e){for(var t="",u=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;92===i?(t+=this.input.slice(u,this.pos),t+=this.readEscapedChar(!1),u=this.pos):(Ps(i,this.options.ecmaVersion>=10)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(u,this.pos++),this.finishToken(ks.string,t)};var Ga={};Va.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Ga)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Va.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Ga;this.raise(e,t)},Va.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var u=this.input.charCodeAt(this.pos);if(96===u||36===u&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==ks.template&&this.type!==ks.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(ks.template,e)):36===u?(this.pos+=2,this.finishToken(ks.dollarBraceL)):(++this.pos,this.finishToken(ks.backQuote));if(92===u)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Ps(u)){switch(e+=this.input.slice(t,this.pos),++this.pos,u){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(u)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},Va.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(i,8);return r>255&&(i=i.slice(0,-1),r=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),"0"===i&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(r)}return Ps(t)?"":String.fromCharCode(t)}},Va.readHexChar=function(e){var t=this.pos,u=this.readInt(16,e);return null===u&&this.invalidStringToken(t,"Bad character escape sequence"),u},Va.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,u=this.pos,i=this.options.ecmaVersion>=6;this.pos",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"},qa=l(Object.freeze({__proto__:null,Node:la,Parser:Ks,Position:Xs,SourceLocation:qs,TokContext:Ea,Token:Ma,TokenType:Ss,defaultOptions:Hs,getLineInfo:Ws,isIdentifierChar:vs,isIdentifierStart:Bs,isNewLine:Ps,keywordTypes:_s,lineBreak:Ns,lineBreakG:Ls,nonASCIIwhitespace:Os,parse:function(e,t){return Ks.parse(e,t)},parseExpressionAt:function(e,t,u){return Ks.parseExpressionAt(e,t,u)},tokContexts:Ca,tokTypes:ks,tokenizer:function(e,t){return Ks.tokenizer(e,t)},version:"7.4.1"})),Wa=d((function(e){const t=/^[\da-fA-F]+$/,u=/^\d+$/,i=new WeakMap;function r(e){e=e.Parser.acorn||e;let t=i.get(e);if(!t){const u=e.tokTypes,r=e.TokContext,n=e.TokenType,s=new r("...",!0,!0),c={tc_oTag:s,tc_cTag:a,tc_expr:o},p={jsxName:new n("jsxName"),jsxText:new n("jsxText",{beforeExpr:!0}),jsxTagStart:new n("jsxTagStart",{startsExpr:!0}),jsxTagEnd:new n("jsxTagEnd")};p.jsxTagStart.updateContext=function(){this.context.push(o),this.context.push(s),this.exprAllowed=!1},p.jsxTagEnd.updateContext=function(e){let t=this.context.pop();t===s&&e===u.slash||t===a?(this.context.pop(),this.exprAllowed=this.curContext()===o):this.exprAllowed=!0},t={tokContexts:c,tokTypes:p},i.set(e,t)}return t}function n(e){return e?"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?n(e.object)+"."+n(e.property):void 0:e}e.exports=function(e){return e=e||{},function(i){return function(e,i){const s=i.acorn||qa,a=r(s),o=s.tokTypes,c=a.tokTypes,p=s.tokContexts,D=a.tokContexts.tc_oTag,h=a.tokContexts.tc_cTag,l=a.tokContexts.tc_expr,d=s.isNewLine,f=s.isIdentifierStart,E=s.isIdentifierChar;return class extends i{static get acornJsx(){return a}jsx_readToken(){let e="",t=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated JSX contents");let u=this.input.charCodeAt(this.pos);switch(u){case 60:case 123:return this.pos===this.start?60===u&&this.exprAllowed?(++this.pos,this.finishToken(c.jsxTagStart)):this.getTokenFromCode(u):(e+=this.input.slice(t,this.pos),this.finishToken(c.jsxText,e));case 38:e+=this.input.slice(t,this.pos),e+=this.jsx_readEntity(),t=this.pos;break;case 62:case 125:this.raise(this.pos,"Unexpected token `"+this.input[this.pos]+"`. Did you mean `"+(62===u?">":"}")+'` or `{"'+this.input[this.pos]+'"}`?');default:d(u)?(e+=this.input.slice(t,this.pos),e+=this.jsx_readNewLine(!0),t=this.pos):++this.pos}}}jsx_readNewLine(e){let t,u=this.input.charCodeAt(this.pos);return++this.pos,13===u&&10===this.input.charCodeAt(this.pos)?(++this.pos,t=e?"\n":"\r\n"):t=String.fromCharCode(u),this.options.locations&&(++this.curLine,this.lineStart=this.pos),t}jsx_readString(e){let t="",u=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");let i=this.input.charCodeAt(this.pos);if(i===e)break;38===i?(t+=this.input.slice(u,this.pos),t+=this.jsx_readEntity(),u=this.pos):d(i)?(t+=this.input.slice(u,this.pos),t+=this.jsx_readNewLine(!1),u=this.pos):++this.pos}return t+=this.input.slice(u,this.pos++),this.finishToken(o.string,t)}jsx_readEntity(){let e,i="",r=0,n=this.input[this.pos];"&"!==n&&this.raise(this.pos,"Entity must start with an ampersand");let s=++this.pos;for(;this.pos")}let a=r.name?"Element":"Fragment";return u["opening"+a]=r,u["closing"+a]=s,u.children=i,this.type===o.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(u,"JSX"+a)}jsx_parseText(){let e=this.parseLiteral(this.value);return e.type="JSXText",e}jsx_parseElement(){let e=this.start,t=this.startLoc;return this.next(),this.jsx_parseElementAt(e,t)}parseExprAtom(e){return this.type===c.jsxText?this.jsx_parseText():this.type===c.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(e)}readToken(e){let t=this.curContext();if(t===l)return this.jsx_readToken();if(t===D||t===h){if(f(e))return this.jsx_readWord();if(62==e)return++this.pos,this.finishToken(c.jsxTagEnd);if((34===e||39===e)&&t==D)return this.jsx_readString(e)}return 60===e&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(c.jsxTagStart)):super.readToken(e)}updateContext(e){if(this.type==o.braceL){var t=this.curContext();t==D?this.context.push(p.b_expr):t==l?this.context.push(p.b_tmpl):super.updateContext(e),this.exprAllowed=!0}else{if(this.type!==o.slash||e!==c.jsxTagStart)return super.updateContext(e);this.context.length-=2,this.context.push(h),this.exprAllowed=!1}}}}({allowNamespaces:!1!==e.allowNamespaces,allowNamespacedObjects:!!e.allowNamespacedObjects},i)}},Object.defineProperty(e.exports,"tokTypes",{get:function(){return r(qa).tokTypes},configurable:!0,enumerable:!0})})),Ha={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",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",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",JSXIdentifier:"JSXIdentifier",JSXNamespacedName:"JSXNamespacedName",JSXMemberExpression:"JSXMemberExpression",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXElement:"JSXElement",JSXClosingElement:"JSXClosingElement",JSXOpeningElement:"JSXOpeningElement",JSXAttribute:"JSXAttribute",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportAllDeclaration:"ExportAllDeclaration",ExportSpecifier:"ExportSpecifier",ImportDeclaration:"ImportDeclaration",ImportSpecifier:"ImportSpecifier",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier"};const Ja="Boolean",za="Identifier",Ka="Keyword",Qa="Null",Ya="Numeric",Za="Punctuator",eo="String",to="RegularExpression",uo="Template",io="JSXIdentifier",ro="JSXText";function no(e,t){this._acornTokTypes=e,this._tokens=[],this._curlyBrace=null,this._code=t}no.prototype={constructor:no,translate(e,t){const u=e.type,i=this._acornTokTypes;if(u===i.name)e.type=za,"static"===e.value&&(e.type=Ka),t.ecmaVersion>5&&("yield"===e.value||"let"===e.value)&&(e.type=Ka);else if(u===i.semi||u===i.comma||u===i.parenL||u===i.parenR||u===i.braceL||u===i.braceR||u===i.dot||u===i.bracketL||u===i.colon||u===i.question||u===i.bracketR||u===i.ellipsis||u===i.arrow||u===i.jsxTagStart||u===i.incDec||u===i.starstar||u===i.jsxTagEnd||u===i.prefix||u===i.questionDot||u.binop&&!u.keyword||u.isAssign)e.type=Za,e.value=this._code.slice(e.start,e.end);else if(u===i.jsxName)e.type=io;else if("jsxText"===u.label||u===i.jsxAttrValueToken)e.type=ro;else if(u.keyword)"true"===u.keyword||"false"===u.keyword?e.type=Ja:"null"===u.keyword?e.type=Qa:e.type=Ka;else if(u===i.num)e.type=Ya,e.value=this._code.slice(e.start,e.end);else if(u===i.string)t.jsxAttrValueToken?(t.jsxAttrValueToken=!1,e.type=ro):e.type=eo,e.value=this._code.slice(e.start,e.end);else if(u===i.regexp){e.type=to;const t=e.value;e.regex={flags:t.flags,pattern:t.pattern},e.value=`/${t.pattern}/${t.flags}`}return e},onToken(e,t){const u=this,i=this._acornTokTypes,r=t.tokens,n=this._tokens;function s(){r.push(function(e,t){const u=e[0],i=e[e.length-1],r={type:uo,value:t.slice(u.start,i.end)};return u.loc&&(r.loc={start:u.loc.start,end:i.loc.end}),u.range&&(r.start=u.range[0],r.end=i.range[1],r.range=[r.start,r.end]),r}(u._tokens,u._code)),u._tokens=[]}if(e.type!==i.eof){if(e.type===i.backQuote)return this._curlyBrace&&(r.push(this.translate(this._curlyBrace,t)),this._curlyBrace=null),n.push(e),void(n.length>1&&s());if(e.type===i.dollarBraceL)return n.push(e),void s();if(e.type===i.braceR)return this._curlyBrace&&r.push(this.translate(this._curlyBrace,t)),void(this._curlyBrace=e);if(e.type===i.template||e.type===i.invalidTemplate)return this._curlyBrace&&(n.push(this._curlyBrace),this._curlyBrace=null),void n.push(e);this._curlyBrace&&(r.push(this.translate(this._curlyBrace,t)),this._curlyBrace=null),r.push(this.translate(e,t))}else this._curlyBrace&&r.push(this.translate(this._curlyBrace,t))}};var so=no;const ao=[3,5,6,7,8,9,10,11,12];var oo={normalizeOptions:function(e){const t=function(e=5){if("number"!=typeof e)throw new Error(`ecmaVersion must be a number. Received value of type ${typeof e} instead.`);let t=e;if(t>=2015&&(t-=2009),!ao.includes(t))throw new Error("Invalid ecmaVersion.");return t}(e.ecmaVersion),u=function(e="script"){if("script"===e||"module"===e)return e;throw new Error("Invalid sourceType.")}(e.sourceType),i=!0===e.range,r=!0===e.loc;if("module"===u&&t<6)throw new Error("sourceType 'module' is not supported when ecmaVersion < 2015. Consider adding `{ ecmaVersion: 2015 }` to the parser options.");return Object.assign({},e,{ecmaVersion:t,sourceType:u,ranges:i,locations:r})},getLatestEcmaVersion:function(){return ao[ao.length-1]},getSupportedEcmaVersions:function(){return[...ao]}};const{normalizeOptions:co}=oo,po=Symbol("espree's internal state"),Do=Symbol("espree's esprimaFinishNode");var ho=()=>e=>{const t=Object.assign({},e.acorn.tokTypes);return e.acornJsx&&Object.assign(t,e.acornJsx.tokTypes),class extends e{constructor(e,u){"object"==typeof e&&null!==e||(e={}),"string"==typeof u||u instanceof String||(u=String(u));const i=co(e),r=i.ecmaFeatures||{},n=!0===i.tokens?new so(t,u):null;super({ecmaVersion:i.ecmaVersion,sourceType:i.sourceType,ranges:i.ranges,locations:i.locations,allowReturnOutsideFunction:Boolean(r.globalReturn),onToken:e=>{n&&n.onToken(e,this[po]),e.type!==t.eof&&(this[po].lastToken=e)},onComment:(e,t,u,i,r,n)=>{if(this[po].comments){const s=function(e,t,u,i,r,n){const s={type:e?"Block":"Line",value:t};return"number"==typeof u&&(s.start=u,s.end=i,s.range=[u,i]),"object"==typeof r&&(s.loc={start:r,end:n}),s}(e,t,u,i,r,n);this[po].comments.push(s)}}},u),this[po]={tokens:n?[]:null,comments:!0===i.comment?[]:null,impliedStrict:!0===r.impliedStrict&&this.options.ecmaVersion>=5,ecmaVersion:this.options.ecmaVersion,jsxAttrValueToken:!1,lastToken:null}}tokenize(){do{this.next()}while(this.type!==t.eof);this.next();const e=this[po],u=e.tokens;return e.comments&&(u.comments=e.comments),u}finishNode(...e){const t=super.finishNode(...e);return this[Do](t)}finishNodeAt(...e){const t=super.finishNodeAt(...e);return this[Do](t)}parse(){const e=this[po],t=super.parse();return t.sourceType=this.options.sourceType,e.comments&&(t.comments=e.comments),e.tokens&&(t.tokens=e.tokens),t.range&&(t.range[0]=t.body.length?t.body[0].range[0]:t.range[0],t.range[1]=e.lastToken?e.lastToken.range[1]:t.range[1]),t.loc&&(t.loc.start=t.body.length?t.body[0].loc.start:t.loc.start,t.loc.end=e.lastToken?e.lastToken.loc.end:t.loc.end),t}parseTopLevel(e){return this[po].impliedStrict&&(this.strict=!0),super.parseTopLevel(e)}raise(t,u){const i=e.acorn.getLineInfo(this.input,t),r=new SyntaxError(u);throw r.index=t,r.lineNumber=i.line,r.column=i.column+1,r}raiseRecoverable(e,t){this.raise(e,t)}unexpected(e){let t="Unexpected token";if(null!=e){if(this.pos=e,this.options.locations)for(;this.posthis.start&&(t+=` ${this.input.slice(this.start,this.end)}`),this.raise(this.start,t)}jsx_readString(e){const u=super.jsx_readString(e);return this.type===t.string&&(this[po].jsxAttrValueToken=!0),u}[Do](e){if("TemplateElement"===e.type){const t="${"===this.input.slice(e.end,e.end+2);e.range&&(e.range[0]--,e.range[1]+=t?2:1),e.loc&&(e.loc.start.column--,e.loc.end.column+=t?2:1)}return e.type.indexOf("Function")>-1&&!e.generator&&(e.generator=!1),e}}},lo="7.3.1",fo={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["exported","source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportExpression:["source"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]};const Eo=Object.freeze(Object.keys(fo));for(const e of Eo)Object.freeze(fo[e]);Object.freeze(fo);const Co=new Set(["parent","leadingComments","trailingComments"]);function mo(e){return!Co.has(e)&&"_"!==e[0]}var Ao=Object.freeze({KEYS:fo,getKeys:e=>Object.keys(e).filter(mo),unionWith(e){const t=Object.assign({},fo);for(const u of Object.keys(e))if(t.hasOwnProperty(u)){const i=new Set(e[u]);for(const e of t[u])i.add(e);t[u]=Object.freeze(Array.from(i))}else t[u]=Object.freeze(Array.from(e[u]));return Object.freeze(t)}});const{getLatestEcmaVersion:Fo,getSupportedEcmaVersions:go}=oo,yo={_regular:null,_jsx:null,get regular(){return null===this._regular&&(this._regular=qa.Parser.extend(ho())),this._regular},get jsx(){return null===this._jsx&&(this._jsx=qa.Parser.extend(Wa(),ho())),this._jsx},get(e){return Boolean(e&&e.ecmaFeatures&&e.ecmaFeatures.jsx)?this.jsx:this.regular}};var xo={version:lo,tokenize:function(e,t){const u=yo.get(t);return t&&!0===t.tokens||(t=Object.assign({},t,{tokens:!0})),new u(t,e).tokenize()},parse:function(e,t){return new(yo.get(t))(t,e).parse()},Syntax:function(){let e,t={};for(e in"function"==typeof Object.create&&(t=Object.create(null)),Ha)Object.hasOwnProperty.call(Ha,e)&&(t[e]=Ha[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}(),VisitorKeys:Ao.KEYS,latestEcmaVersion:Fo(),supportedEcmaVersions:go()};const Bo={range:!0,loc:!0,comment:!0,tokens:!0,sourceType:"module",ecmaFeatures:{jsx:!0,globalReturn:!0,impliedStrict:!1}};var vo={parsers:{espree:Ds((function(u,i,r){const{parse:n,latestEcmaVersion:s}=xo;Bo.ecmaVersion=s;const a=hs(u),{result:o,error:c}=t((()=>n(a,Object.assign(Object.assign({},Bo),{},{sourceType:"module"}))),(()=>n(a,Object.assign(Object.assign({},Bo),{},{sourceType:"script"}))));if(!o)throw function(t){const{message:u,lineNumber:i,column:r}=t;return"number"!=typeof i?t:e(u,{start:{line:i,column:r}})}(c);return ln(o,Object.assign(Object.assign({},r),{},{originalText:u}))}))}};export default vo; diff --git a/node_modules/prettier/esm/parser-flow.mjs b/node_modules/prettier/esm/parser-flow.mjs new file mode 100644 index 0000000000..56407641ba --- /dev/null +++ b/node_modules/prettier/esm/parser-flow.mjs @@ -0,0 +1,22 @@ +var r=function(r,t){const e=new SyntaxError(r+" ("+t.start.line+":"+t.start.column+")");return e.loc=t,e},t=r=>"string"==typeof r?r.replace((({onlyFirst:r=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,r?void 0:"g")})(),""):r;const e=r=>!Number.isNaN(r)&&(r>=4352&&(r<=4447||9001===r||9002===r||11904<=r&&r<=12871&&12351!==r||12880<=r&&r<=19903||19968<=r&&r<=42182||43360<=r&&r<=43388||44032<=r&&r<=55203||63744<=r&&r<=64255||65040<=r&&r<=65049||65072<=r&&r<=65131||65281<=r&&r<=65376||65504<=r&&r<=65510||110592<=r&&r<=110593||127488<=r&&r<=127569||131072<=r&&r<=262141));var n=e,u=e;n.default=u;const a=r=>{if("string"!=typeof r||0===r.length)return 0;if(0===(r=t(r)).length)return 0;r=r.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let e=0;for(let t=0;t=127&&u<=159||(u>=768&&u<=879||(u>65535&&t++,e+=n(u)?2:1))}return e};var i=a,c=a;i.default=c;var f=r=>{if("string"!=typeof r)throw new TypeError("Expected a string");return r.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var o=r=>r[r.length-1];function s(r,t){if(null==r)return{};var e,n,u=function(r,t){if(null==r)return{};var e,n,u={},a=Object.keys(r);for(n=0;n=0||(u[e]=r[e]);return u}(r,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(r);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(r,e)&&(u[e]=r[e])}return u}var v="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function l(r){return r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function D(r){var t={exports:{}};return r(t,t.exports),t.exports}var p=function(r){return r&&r.Math==Math&&r},b=p("object"==typeof globalThis&&globalThis)||p("object"==typeof window&&window)||p("object"==typeof self&&self)||p("object"==typeof v&&v)||function(){return this}()||Function("return this")(),E=function(r){try{return!!r()}catch(r){return!0}},F=!E((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),d={}.propertyIsEnumerable,m=Object.getOwnPropertyDescriptor,h={f:m&&!d.call({1:2},1)?function(r){var t=m(this,r);return!!t&&t.enumerable}:d},k=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}},y={}.toString,A=function(r){return y.call(r).slice(8,-1)},_="".split,C=E((function(){return!Object("z").propertyIsEnumerable(0)}))?function(r){return"String"==A(r)?_.call(r,""):Object(r)}:Object,w=function(r){if(null==r)throw TypeError("Can't call method on "+r);return r},S=function(r){return C(w(r))},g=function(r){return"object"==typeof r?null!==r:"function"==typeof r},B=function(r,t){if(!g(r))return r;var e,n;if(t&&"function"==typeof(e=r.toString)&&!g(n=e.call(r)))return n;if("function"==typeof(e=r.valueOf)&&!g(n=e.call(r)))return n;if(!t&&"function"==typeof(e=r.toString)&&!g(n=e.call(r)))return n;throw TypeError("Can't convert object to primitive value")},T=function(r){return Object(w(r))},I={}.hasOwnProperty,O=Object.hasOwn||function(r,t){return I.call(T(r),t)},N=b.document,x=g(N)&&g(N.createElement),L=!F&&!E((function(){return 7!=Object.defineProperty((r="div",x?N.createElement(r):{}),"a",{get:function(){return 7}}).a;var r})),P=Object.getOwnPropertyDescriptor,R={f:F?P:function(r,t){if(r=S(r),t=B(t,!0),L)try{return P(r,t)}catch(r){}if(O(r,t))return k(!h.f.call(r,t),r[t])}},M=function(r){if(!g(r))throw TypeError(String(r)+" is not an object");return r},G=Object.defineProperty,U={f:F?G:function(r,t,e){if(M(r),t=B(t,!0),M(e),L)try{return G(r,t,e)}catch(r){}if("get"in e||"set"in e)throw TypeError("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},j=F?function(r,t,e){return U.f(r,t,k(1,e))}:function(r,t,e){return r[t]=e,r},X=function(r,t){try{j(b,r,t)}catch(e){b[r]=t}return t},H=b["__core-js_shared__"]||X("__core-js_shared__",{}),$=Function.toString;"function"!=typeof H.inspectSource&&(H.inspectSource=function(r){return $.call(r)});var Y,V,K,J,W=H.inspectSource,q=b.WeakMap,z="function"==typeof q&&/native code/.test(W(q)),Q=D((function(r){(r.exports=function(r,t){return H[r]||(H[r]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),Z=0,rr=Math.random(),tr=function(r){return"Symbol("+String(void 0===r?"":r)+")_"+(++Z+rr).toString(36)},er=Q("keys"),nr={},ur=b.WeakMap;if(z||H.state){var ar=H.state||(H.state=new ur),ir=ar.get,cr=ar.has,fr=ar.set;Y=function(r,t){if(cr.call(ar,r))throw new TypeError("Object already initialized");return t.facade=r,fr.call(ar,r,t),t},V=function(r){return ir.call(ar,r)||{}},K=function(r){return cr.call(ar,r)}}else{var or=er[J="state"]||(er[J]=tr(J));nr[or]=!0,Y=function(r,t){if(O(r,or))throw new TypeError("Object already initialized");return t.facade=r,j(r,or,t),t},V=function(r){return O(r,or)?r[or]:{}},K=function(r){return O(r,or)}}var sr,vr,lr={set:Y,get:V,has:K,enforce:function(r){return K(r)?V(r):Y(r,{})},getterFor:function(r){return function(t){var e;if(!g(t)||(e=V(t)).type!==r)throw TypeError("Incompatible receiver, "+r+" required");return e}}},Dr=D((function(r){var t=lr.get,e=lr.enforce,n=String(String).split("String");(r.exports=function(r,t,u,a){var i,c=!!a&&!!a.unsafe,f=!!a&&!!a.enumerable,o=!!a&&!!a.noTargetGet;"function"==typeof u&&("string"!=typeof t||O(u,"name")||j(u,"name",t),(i=e(u)).source||(i.source=n.join("string"==typeof t?t:""))),r!==b?(c?!o&&r[t]&&(f=!0):delete r[t],f?r[t]=u:j(r,t,u)):f?r[t]=u:X(t,u)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||W(this)}))})),pr=b,br=function(r){return"function"==typeof r?r:void 0},Er=function(r,t){return arguments.length<2?br(pr[r])||br(b[r]):pr[r]&&pr[r][t]||b[r]&&b[r][t]},Fr=Math.ceil,dr=Math.floor,mr=function(r){return isNaN(r=+r)?0:(r>0?dr:Fr)(r)},hr=Math.min,kr=function(r){return r>0?hr(mr(r),9007199254740991):0},yr=Math.max,Ar=Math.min,_r=function(r){return function(t,e,n){var u,a=S(t),i=kr(a.length),c=function(r,t){var e=mr(r);return e<0?yr(e+t,0):Ar(e,t)}(n,i);if(r&&e!=e){for(;i>c;)if((u=a[c++])!=u)return!0}else for(;i>c;c++)if((r||c in a)&&a[c]===e)return r||c||0;return!r&&-1}},Cr={includes:_r(!0),indexOf:_r(!1)}.indexOf,wr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),Sr={f:Object.getOwnPropertyNames||function(r){return function(r,t){var e,n=S(r),u=0,a=[];for(e in n)!O(nr,e)&&O(n,e)&&a.push(e);for(;t.length>u;)O(n,e=t[u++])&&(~Cr(a,e)||a.push(e));return a}(r,wr)}},gr={f:Object.getOwnPropertySymbols},Br=Er("Reflect","ownKeys")||function(r){var t=Sr.f(M(r)),e=gr.f;return e?t.concat(e(r)):t},Tr=function(r,t){for(var e=Br(t),n=U.f,u=R.f,a=0;a0&&Ur(f))o=Hr(r,t,f,kr(f.length),o,a-1)-1;else{if(o>=9007199254740991)throw TypeError("Exceed the acceptable array length");r[o]=f}o++}s++}return o},$r=Hr,Yr=Er("navigator","userAgent")||"",Vr=b.process,Kr=Vr&&Vr.versions,Jr=Kr&&Kr.v8;Jr?vr=(sr=Jr.split("."))[0]<4?1:sr[0]+sr[1]:Yr&&(!(sr=Yr.match(/Edge\/(\d+)/))||sr[1]>=74)&&(sr=Yr.match(/Chrome\/(\d+)/))&&(vr=sr[1]);var Wr=vr&&+vr,qr=!!Object.getOwnPropertySymbols&&!E((function(){var r=Symbol();return!String(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Wr&&Wr<41})),zr=qr&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Qr=Q("wks"),Zr=b.Symbol,rt=zr?Zr:Zr&&Zr.withoutSetter||tr,tt=function(r){return O(Qr,r)&&(qr||"string"==typeof Qr[r])||(qr&&O(Zr,r)?Qr[r]=Zr[r]:Qr[r]=rt("Symbol."+r)),Qr[r]},et=tt("species"),nt=function(r,t){var e;return Ur(r)&&("function"!=typeof(e=r.constructor)||e!==Array&&!Ur(e.prototype)?g(e)&&null===(e=e[et])&&(e=void 0):e=void 0),new(void 0===e?Array:e)(0===t?0:t)};Gr({target:"Array",proto:!0},{flatMap:function(r){var t,e=T(this),n=kr(e.length);return jr(r),(t=nt(e,0)).length=$r(t,e,e,n,0,1,r,arguments.length>1?arguments[1]:void 0),t}});var ut,at,it=Math.floor,ct=function(r,t){var e=r.length,n=it(e/2);return e<8?ft(r,t):ot(ct(r.slice(0,n),t),ct(r.slice(n),t),t)},ft=function(r,t){for(var e,n,u=r.length,a=1;a0;)r[n]=r[--n];n!==a++&&(r[n]=e)}return r},ot=function(r,t,e){for(var n=r.length,u=t.length,a=0,i=0,c=[];a3)){if(Dt)return!0;if(bt)return bt<603;var r,t,e,n,u="";for(r=65;r<76;r++){switch(t=String.fromCharCode(r),r){case 66:case 69:case 70:case 72:e=3;break;case 68:case 71:e=4;break;default:e=2}for(n=0;n<47;n++)Et.push({k:t+n,v:e})}for(Et.sort((function(r,t){return t.v-r.v})),n=0;nString(e)?1:-1}}(r))).length,n=0;na;a++)if((c=F(r[a]))&&c instanceof Ot)return c;return new Ot(!1)}n=u.call(r)}for(f=n.next;!(o=f.call(n)).done;){try{c=F(o.value)}catch(r){throw It(n),r}if("object"==typeof c&&c&&c instanceof Ot)return c}return new Ot(!1)};Gr({target:"Object",stat:!0},{fromEntries:function(r){var t={};return Nt(r,(function(r,e){!function(r,t,e){var n=B(t);n in r?U.f(r,n,k(0,e)):r[n]=e}(t,r,e)}),{AS_ENTRIES:!0}),t}});var xt=void 0!==xt?xt:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Lt(){throw new Error("setTimeout has not been defined")}function Pt(){throw new Error("clearTimeout has not been defined")}var Rt=Lt,Mt=Pt;function Gt(r){if(Rt===setTimeout)return setTimeout(r,0);if((Rt===Lt||!Rt)&&setTimeout)return Rt=setTimeout,setTimeout(r,0);try{return Rt(r,0)}catch(t){try{return Rt.call(null,r,0)}catch(t){return Rt.call(this,r,0)}}}"function"==typeof xt.setTimeout&&(Rt=setTimeout),"function"==typeof xt.clearTimeout&&(Mt=clearTimeout);var Ut,jt=[],Xt=!1,Ht=-1;function $t(){Xt&&Ut&&(Xt=!1,Ut.length?jt=Ut.concat(jt):Ht=-1,jt.length&&Yt())}function Yt(){if(!Xt){var r=Gt($t);Xt=!0;for(var t=jt.length;t;){for(Ut=jt,jt=[];++Ht1)for(var e=1;econsole.error("SEMVER",...r):()=>{};var ie={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},ce=D((function(r,t){const{MAX_SAFE_COMPONENT_LENGTH:e}=ie,n=(t=r.exports={}).re=[],u=t.src=[],a=t.t={};let i=0;const c=(r,t,e)=>{const c=i++;ae(c,t),a[r]=c,u[c]=t,n[c]=new RegExp(t,e?"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",`(${u[a.NUMERICIDENTIFIER]})\\.(${u[a.NUMERICIDENTIFIER]})\\.(${u[a.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${u[a.NUMERICIDENTIFIERLOOSE]})\\.(${u[a.NUMERICIDENTIFIERLOOSE]})\\.(${u[a.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${u[a.NUMERICIDENTIFIER]}|${u[a.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${u[a.NUMERICIDENTIFIERLOOSE]}|${u[a.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${u[a.PRERELEASEIDENTIFIER]}(?:\\.${u[a.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${u[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[a.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${u[a.BUILDIDENTIFIER]}(?:\\.${u[a.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${u[a.MAINVERSION]}${u[a.PRERELEASE]}?${u[a.BUILD]}?`),c("FULL",`^${u[a.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${u[a.MAINVERSIONLOOSE]}${u[a.PRERELEASELOOSE]}?${u[a.BUILD]}?`),c("LOOSE",`^${u[a.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${u[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${u[a.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${u[a.XRANGEIDENTIFIER]})(?:\\.(${u[a.XRANGEIDENTIFIER]})(?:\\.(${u[a.XRANGEIDENTIFIER]})(?:${u[a.PRERELEASE]})?${u[a.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${u[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[a.XRANGEIDENTIFIERLOOSE]})(?:${u[a.PRERELEASELOOSE]})?${u[a.BUILD]}?)?)?`),c("XRANGE",`^${u[a.GTLT]}\\s*${u[a.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${u[a.GTLT]}\\s*${u[a.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${e}})(?:\\.(\\d{1,${e}}))?(?:\\.(\\d{1,${e}}))?(?:$|[^\\d])`),c("COERCERTL",u[a.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${u[a.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${u[a.LONETILDE]}${u[a.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${u[a.LONETILDE]}${u[a.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${u[a.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${u[a.LONECARET]}${u[a.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${u[a.LONECARET]}${u[a.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${u[a.GTLT]}\\s*(${u[a.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${u[a.GTLT]}\\s*(${u[a.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${u[a.GTLT]}\\s*(${u[a.LOOSEPLAIN]}|${u[a.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${u[a.XRANGEPLAIN]})\\s+-\\s+(${u[a.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${u[a.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[a.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const fe=["includePrerelease","loose","rtl"];var oe=r=>r?"object"!=typeof r?{loose:!0}:fe.filter((t=>r[t])).reduce(((r,t)=>(r[t]=!0,r)),{}):{};const se=/^[0-9]+$/,ve=(r,t)=>{const e=se.test(r),n=se.test(t);return e&&n&&(r=+r,t=+t),r===t?0:e&&!n?-1:n&&!e?1:rve(t,r)};const{MAX_LENGTH:De,MAX_SAFE_INTEGER:pe}=ie,{re:be,t:Ee}=ce,{compareIdentifiers:Fe}=le;class de{constructor(r,t){if(t=oe(t),r instanceof de){if(r.loose===!!t.loose&&r.includePrerelease===!!t.includePrerelease)return r;r=r.version}else if("string"!=typeof r)throw new TypeError(`Invalid Version: ${r}`);if(r.length>De)throw new TypeError(`version is longer than ${De} characters`);ae("SemVer",r,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const e=r.trim().match(t.loose?be[Ee.LOOSE]:be[Ee.FULL]);if(!e)throw new TypeError(`Invalid Version: ${r}`);if(this.raw=r,this.major=+e[1],this.minor=+e[2],this.patch=+e[3],this.major>pe||this.major<0)throw new TypeError("Invalid major version");if(this.minor>pe||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>pe||this.patch<0)throw new TypeError("Invalid patch version");e[4]?this.prerelease=e[4].split(".").map((r=>{if(/^[0-9]+$/.test(r)){const t=+r;if(t>=0&&t=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${r}`)}return this.format(),this.raw=this.version,this}}var me=de;var he=(r,t,e)=>new me(r,e).compare(new me(t,e));var ke=(r,t,e)=>he(r,t,e)<0;var ye=(r,t,e)=>he(r,t,e)>=0,Ae="2.3.2",_e=D((function(r,t){function e(){for(var r=[],t=0;t"string"==typeof r||"function"==typeof r,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:r=>"string"==typeof r||"object"==typeof r,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Ce` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:r=>"string"==typeof r||"object"==typeof r,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Ce` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Ce` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Ce` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const Se=["cliName","cliCategory","cliDescription"],ge={compare:he,lt:ke,gte:ye},Be=Ae,Te={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:we}.options;var Ie={getSupportInfo:function({plugins:r=[],showUnreleased:t=!1,showDeprecated:e=!1,showInternal:n=!1}={}){const u=Be.split("-",1)[0],a=r.flatMap((r=>r.languages||[])).filter(o),i=(c=Object.assign({},...r.map((({options:r})=>r)),Te),f="name",Object.entries(c).map((([r,t])=>Object.assign({[f]:r},t)))).filter((r=>o(r)&&v(r))).sort(((r,t)=>r.name===t.name?0:r.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(o).sort(((r,t)=>ge.compare(t.since,r.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((r=>o(r)&&v(r))),"parser"===t.name&&function(r,t,e){const n=new Set(r.choices.map((r=>r.value)));for(const u of t)if(u.parsers)for(const t of u.parsers)if(!n.has(t)){n.add(t);const a=e.find((r=>r.parsers&&r.parsers[t]));let i=u.name;a&&a.name&&(i+=` (plugin: ${a.name})`),r.choices.push({value:t,description:i})}}(t,a,r));const e=Object.fromEntries(r.filter((r=>r.defaultOptions&&void 0!==r.defaultOptions[t.name])).map((r=>[r.name,r.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:e})}));var c,f;return{languages:a,options:i};function o(r){return t||!("since"in r)||r.since&&ge.gte(u,r.since)}function v(r){return e||!("deprecated"in r)||r.deprecated&&ge.lt(u,r.deprecated)}}};const{getSupportInfo:Oe}=Ie,Ne=/[^\x20-\x7F]/;function xe(r){return(t,e,n)=>{const u=n&&n.backwards;if(!1===e)return!1;const{length:a}=t;let i=e;for(;i>=0&&i(e.match(i.regex)||[]).length?i.quote:a.quote}return c}function Je(r,t,e){const n='"'===t?"'":'"',u=r.replace(/\\(.)|(["'])/gs,((r,u,a)=>u===n?u:a===t?"\\"+a:a||(e&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(u)?u:"\\"+u)));return t+u+t}function We(r,t){(r.comments||(r.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(r){const t=r.type||r.kind||"(unknown type)";let e=String(r.name||r.id&&("object"==typeof r.id?r.id.name:r.id)||r.key&&("object"==typeof r.key?r.key.name:r.key)||r.value&&("object"==typeof r.value?"":String(r.value))||r.operator||"");e.length>20&&(e=e.slice(0,19)+"\u2026");return t+(e?" "+e:"")}(r)}var qe={inferParserByLanguage:function(r,t){const{languages:e}=Oe({plugins:t.plugins}),n=e.find((({name:t})=>t.toLowerCase()===r))||e.find((({aliases:t})=>Array.isArray(t)&&t.includes(r)))||e.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${r}`)));return n&&n.parsers[0]},getStringWidth:function(r){return r?Ne.test(r)?i(r):r.length:0},getMaxContinuousCount:function(r,t){const e=r.match(new RegExp(`(${f(t)})+`,"g"));return null===e?0:e.reduce(((r,e)=>Math.max(r,e.length/t.length)),0)},getMinNotPresentContinuousCount:function(r,t){const e=r.match(new RegExp(`(${f(t)})+`,"g"));if(null===e)return 0;const n=new Map;let u=0;for(const r of e){const e=r.length/t.length;n.set(e,!0),e>u&&(u=e)}for(let r=1;rr[r.length-2],getLast:o,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:$e,getNextNonSpaceNonCommentCharacterIndex:Ye,getNextNonSpaceNonCommentCharacter:function(r,t,e){return r.charAt(Ye(r,t,e))},skip:xe,skipWhitespace:Le,skipSpaces:Pe,skipToLineEnd:Re,skipEverythingButNewLine:Me,skipInlineComment:Ge,skipTrailingComment:Ue,skipNewline:je,isNextLineEmptyAfterIndex:He,isNextLineEmpty:function(r,t,e){return He(r,e(t))},isPreviousLineEmpty:function(r,t,e){let n=e(t)-1;return n=Pe(r,n,{backwards:!0}),n=je(r,n,{backwards:!0}),n=Pe(r,n,{backwards:!0}),n!==je(r,n,{backwards:!0})},hasNewline:Xe,hasNewlineInRange:function(r,t,e){for(let n=t;n0},createGroupIdMapper:function(r){const t=new WeakMap;return function(e){return t.has(e)||t.set(e,Symbol(r)),t.get(e)}}};const{isNonEmptyArray:ze}=qe;function Qe(r,t){const{ignoreDecorators:e}=t||{};if(!e){const t=r.declaration&&r.declaration.decorators||r.decorators;if(ze(t))return Qe(t[0])}return r.range?r.range[0]:r.start}function Ze(r){return r.range?r.range[1]:r.end}function rn(r,t){return Qe(r)===Qe(t)}var tn={locStart:Qe,locEnd:Ze,hasSameLocStart:rn,hasSameLoc:function(r,t){return rn(r,t)&&function(r,t){return Ze(r)===Ze(t)}(r,t)}},en=D((function(r){!function(){function t(r){if(null==r)return!1;switch(r.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function e(r){switch(r.type){case"IfStatement":return null!=r.alternate?r.alternate:r.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return r.body}return null}r.exports={isExpression:function(r){if(null==r)return!1;switch(r.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(r){if(null==r)return!1;switch(r.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(r){return t(r)||null!=r&&"FunctionDeclaration"===r.type},isProblematicIfStatement:function(r){var t;if("IfStatement"!==r.type)return!1;if(null==r.alternate)return!1;t=r.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=e(t)}while(t);return!1},trailingStatement:e}}()})),nn=D((function(r){!function(){var t,e,n,u,a,i;function c(r){return r<=65535?String.fromCharCode(r):String.fromCharCode(Math.floor((r-65536)/1024)+55296)+String.fromCharCode((r-65536)%1024+56320)}for(e={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},t={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/},n=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],u=new Array(128),i=0;i<128;++i)u[i]=i>=97&&i<=122||i>=65&&i<=90||36===i||95===i;for(a=new Array(128),i=0;i<128;++i)a[i]=i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||36===i||95===i;r.exports={isDecimalDigit:function(r){return 48<=r&&r<=57},isHexDigit:function(r){return 48<=r&&r<=57||97<=r&&r<=102||65<=r&&r<=70},isOctalDigit:function(r){return r>=48&&r<=55},isWhiteSpace:function(r){return 32===r||9===r||11===r||12===r||160===r||r>=5760&&n.indexOf(r)>=0},isLineTerminator:function(r){return 10===r||13===r||8232===r||8233===r},isIdentifierStartES5:function(r){return r<128?u[r]:e.NonAsciiIdentifierStart.test(c(r))},isIdentifierPartES5:function(r){return r<128?a[r]:e.NonAsciiIdentifierPart.test(c(r))},isIdentifierStartES6:function(r){return r<128?u[r]:t.NonAsciiIdentifierStart.test(c(r))},isIdentifierPartES6:function(r){return r<128?a[r]:t.NonAsciiIdentifierPart.test(c(r))}}}()})),un=D((function(r){!function(){var t=nn;function e(r,t){return!(!t&&"yield"===r)&&n(r,t)}function n(r,t){if(t&&function(r){switch(r){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(r))return!0;switch(r.length){case 2:return"if"===r||"in"===r||"do"===r;case 3:return"var"===r||"for"===r||"new"===r||"try"===r;case 4:return"this"===r||"else"===r||"case"===r||"void"===r||"with"===r||"enum"===r;case 5:return"while"===r||"break"===r||"catch"===r||"throw"===r||"const"===r||"yield"===r||"class"===r||"super"===r;case 6:return"return"===r||"typeof"===r||"delete"===r||"switch"===r||"export"===r||"import"===r;case 7:return"default"===r||"finally"===r||"extends"===r;case 8:return"function"===r||"continue"===r||"debugger"===r;case 10:return"instanceof"===r;default:return!1}}function u(r,t){return"null"===r||"true"===r||"false"===r||e(r,t)}function a(r,t){return"null"===r||"true"===r||"false"===r||n(r,t)}function i(r){var e,n,u;if(0===r.length)return!1;if(u=r.charCodeAt(0),!t.isIdentifierStartES5(u))return!1;for(e=1,n=r.length;e=n)return!1;if(!(56320<=(a=r.charCodeAt(e))&&a<=57343))return!1;u=1024*(u-55296)+(a-56320)+65536}if(!i(u))return!1;i=t.isIdentifierPartES6}return!0}r.exports={isKeywordES5:e,isKeywordES6:n,isReservedWordES5:u,isReservedWordES6:a,isRestrictedWord:function(r){return"eval"===r||"arguments"===r},isIdentifierNameES5:i,isIdentifierNameES6:c,isIdentifierES5:function(r,t){return i(r)&&!u(r,t)},isIdentifierES6:function(r,t){return c(r)&&!a(r,t)}}}()}));const an=D((function(r,t){t.ast=en,t.code=nn,t.keyword=un})).keyword.isIdentifierNameES5,{getLast:cn,hasNewline:fn,skipWhitespace:on,isNonEmptyArray:sn,isNextLineEmptyAfterIndex:vn}=qe,{locStart:ln,locEnd:Dn,hasSameLocStart:pn}=tn,bn=new RegExp("^(?:(?=.)\\s)*:"),En=new RegExp("^(?:(?=.)\\s)*::");function Fn(r){return"Block"===r.type||"CommentBlock"===r.type||"MultiLine"===r.type}function dn(r){return"Line"===r.type||"CommentLine"===r.type||"SingleLine"===r.type||"HashbangComment"===r.type||"HTMLOpen"===r.type||"HTMLClose"===r.type}const mn=new Set(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function hn(r){return r&&mn.has(r.type)}function kn(r){return"NumericLiteral"===r.type||"Literal"===r.type&&"number"==typeof r.value}function yn(r){return"StringLiteral"===r.type||"Literal"===r.type&&"string"==typeof r.value}function An(r){return"FunctionExpression"===r.type||"ArrowFunctionExpression"===r.type}function _n(r){return In(r)&&"Identifier"===r.callee.type&&("async"===r.callee.name||"inject"===r.callee.name||"fakeAsync"===r.callee.name)}function Cn(r){return"JSXElement"===r.type||"JSXFragment"===r.type}function wn(r){return"get"===r.kind||"set"===r.kind}function Sn(r){return wn(r)||pn(r,r.value)}const gn=new Set(["BinaryExpression","LogicalExpression","NGPipeExpression"]);const Bn=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);const Tn=/^(skip|[fx]?(it|describe|test))$/;function In(r){return r&&("CallExpression"===r.type||"OptionalCallExpression"===r.type)}function On(r){return r&&("MemberExpression"===r.type||"OptionalMemberExpression"===r.type)}function Nn(r){return/^(\d+|\d+\.\d+)$/.test(r)}function xn(r){return r.quasis.some((r=>r.value.raw.includes("\n")))}function Ln(r){return r.extra?r.extra.raw:r.raw}const Pn={"==":!0,"!=":!0,"===":!0,"!==":!0},Rn={"*":!0,"/":!0,"%":!0},Mn={">>":!0,">>>":!0,"<<":!0};const Gn={};for(const[r,t]of[["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].entries())for(const e of t)Gn[e]=r;function Un(r){return Gn[r]}const jn=new WeakMap;function Xn(r){if(jn.has(r))return jn.get(r);const t=[];return r.this&&t.push(r.this),Array.isArray(r.parameters)?t.push(...r.parameters):Array.isArray(r.params)&&t.push(...r.params),r.rest&&t.push(r.rest),jn.set(r,t),t}const Hn=new WeakMap;function $n(r){if(Hn.has(r))return Hn.get(r);let t=r.arguments;return"ImportExpression"===r.type&&(t=[r.source],r.attributes&&t.push(r.attributes)),Hn.set(r,t),t}function Yn(r){return"prettier-ignore"===r.value.trim()&&!r.unignore}function Vn(r){return r&&(r.prettierIgnore||Wn(r,Kn.PrettierIgnore))}const Kn={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},Jn=(r,t)=>{if("function"==typeof r&&(t=r,r=0),r||t)return(e,n,u)=>!(r&Kn.Leading&&!e.leading||r&Kn.Trailing&&!e.trailing||r&Kn.Dangling&&(e.leading||e.trailing)||r&Kn.Block&&!Fn(e)||r&Kn.Line&&!dn(e)||r&Kn.First&&0!==n||r&Kn.Last&&n!==u.length-1||r&Kn.PrettierIgnore&&!Yn(e)||t&&!t(e))};function Wn(r,t,e){if(!r||!sn(r.comments))return!1;const n=Jn(t,e);return!n||r.comments.some(n)}function qn(r,t,e){if(!r||!Array.isArray(r.comments))return[];const n=Jn(t,e);return n?r.comments.filter(n):r.comments}function zn(r){return In(r)||"NewExpression"===r.type||"ImportExpression"===r.type}var Qn={getFunctionParameters:Xn,iterateFunctionParametersPath:function(r,t){const e=r.getValue();let n=0;const u=r=>t(r,n++);e.this&&r.call(u,"this"),Array.isArray(e.parameters)?r.each(u,"parameters"):Array.isArray(e.params)&&r.each(u,"params"),e.rest&&r.call(u,"rest")},getCallArguments:$n,iterateCallArgumentsPath:function(r,t){const e=r.getValue();"ImportExpression"===e.type?(r.call((r=>t(r,0)),"source"),e.attributes&&r.call((r=>t(r,1)),"attributes")):r.each(t,"arguments")},hasRestParameter:function(r){if(r.rest)return!0;const t=Xn(r);return t.length>0&&"RestElement"===cn(t).type},getLeftSide:function(r){return r.expressions?r.expressions[0]:r.left||r.test||r.callee||r.object||r.tag||r.argument||r.expression},getLeftSidePathName:function(r,t){if(t.expressions)return["expressions",0];if(t.left)return["left"];if(t.test)return["test"];if(t.object)return["object"];if(t.callee)return["callee"];if(t.tag)return["tag"];if(t.argument)return["argument"];if(t.expression)return["expression"];throw new Error("Unexpected node has no left side.")},getParentExportDeclaration:function(r){const t=r.getParentNode();return"declaration"===r.getName()&&hn(t)?t:null},getTypeScriptMappedTypeModifier:function(r,t){return"+"===r?"+"+t:"-"===r?"-"+t:t},hasFlowAnnotationComment:function(r){return r&&Fn(r[0])&&En.test(r[0].value)},hasFlowShorthandAnnotationComment:function(r){return r.extra&&r.extra.parenthesized&&sn(r.trailingComments)&&Fn(r.trailingComments[0])&&bn.test(r.trailingComments[0].value)},hasLeadingOwnLineComment:function(r,t){return Cn(t)?Vn(t):Wn(t,Kn.Leading,(t=>fn(r,Dn(t))))},hasNakedLeftSide:function(r){return"AssignmentExpression"===r.type||"BinaryExpression"===r.type||"LogicalExpression"===r.type||"NGPipeExpression"===r.type||"ConditionalExpression"===r.type||In(r)||On(r)||"SequenceExpression"===r.type||"TaggedTemplateExpression"===r.type||"BindExpression"===r.type||"UpdateExpression"===r.type&&!r.prefix||"TSAsExpression"===r.type||"TSNonNullExpression"===r.type},hasNode:function r(t,e){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return t.some((t=>r(t,e)));const n=e(t);return"boolean"==typeof n?n:Object.values(t).some((t=>r(t,e)))},hasIgnoreComment:function(r){return Vn(r.getValue())},hasNodeIgnoreComment:Vn,identity:function(r){return r},isBinaryish:function(r){return gn.has(r.type)},isBlockComment:Fn,isCallLikeExpression:zn,isLineComment:dn,isPrettierIgnoreComment:Yn,isCallExpression:In,isMemberExpression:On,isExportDeclaration:hn,isFlowAnnotationComment:function(r,t){const e=ln(t),n=on(r,Dn(t));return!1!==n&&"/*"===r.slice(e,e+2)&&"*/"===r.slice(n,n+2)},isFunctionCompositionArgs:function(r){if(r.length<=1)return!1;let t=0;for(const e of r)if(An(e)){if(t+=1,t>1)return!0}else if(In(e))for(const r of e.arguments)if(An(r))return!0;return!1},isFunctionNotation:Sn,isFunctionOrArrowExpression:An,isGetterOrSetter:wn,isJestEachTemplateLiteral:function(r,t){const e=/^[fx]?(describe|it|test)$/;return"TaggedTemplateExpression"===t.type&&t.quasi===r&&"MemberExpression"===t.tag.type&&"Identifier"===t.tag.property.type&&"each"===t.tag.property.name&&("Identifier"===t.tag.object.type&&e.test(t.tag.object.name)||"MemberExpression"===t.tag.object.type&&"Identifier"===t.tag.object.property.type&&("only"===t.tag.object.property.name||"skip"===t.tag.object.property.name)&&"Identifier"===t.tag.object.object.type&&e.test(t.tag.object.object.name))},isJsxNode:Cn,isLiteral:function(r){return"BooleanLiteral"===r.type||"DirectiveLiteral"===r.type||"Literal"===r.type||"NullLiteral"===r.type||"NumericLiteral"===r.type||"BigIntLiteral"===r.type||"DecimalLiteral"===r.type||"RegExpLiteral"===r.type||"StringLiteral"===r.type||"TemplateLiteral"===r.type||"TSTypeLiteral"===r.type||"JSXText"===r.type},isLongCurriedCallExpression:function(r){const t=r.getValue(),e=r.getParentNode();return In(t)&&In(e)&&e.callee===t&&t.arguments.length>e.arguments.length&&e.arguments.length>0},isSimpleCallArgument:function r(t,e){if(e>=2)return!1;const n=t=>r(t,e+1),u="Literal"===t.type&&"regex"in t&&t.regex.pattern||"RegExpLiteral"===t.type&&t.pattern;return!(u&&u.length>5)&&("Literal"===t.type||"BigIntLiteral"===t.type||"DecimalLiteral"===t.type||"BooleanLiteral"===t.type||"NullLiteral"===t.type||"NumericLiteral"===t.type||"RegExpLiteral"===t.type||"StringLiteral"===t.type||"Identifier"===t.type||"ThisExpression"===t.type||"Super"===t.type||"PrivateName"===t.type||"PrivateIdentifier"===t.type||"ArgumentPlaceholder"===t.type||"Import"===t.type||("TemplateLiteral"===t.type?t.quasis.every((r=>!r.value.raw.includes("\n")))&&t.expressions.every(n):"ObjectExpression"===t.type?t.properties.every((r=>!r.computed&&(r.shorthand||r.value&&n(r.value)))):"ArrayExpression"===t.type?t.elements.every((r=>null===r||n(r))):zn(t)?("ImportExpression"===t.type||r(t.callee,e))&&$n(t).every(n):On(t)?r(t.object,e)&&r(t.property,e):"UnaryExpression"!==t.type||"!"!==t.operator&&"-"!==t.operator?"TSNonNullExpression"===t.type&&r(t.expression,e):r(t.argument,e)))},isMemberish:function(r){return On(r)||"BindExpression"===r.type&&Boolean(r.object)},isNumericLiteral:kn,isSignedNumericLiteral:function(r){return"UnaryExpression"===r.type&&("+"===r.operator||"-"===r.operator)&&kn(r.argument)},isObjectProperty:function(r){return r&&("ObjectProperty"===r.type||"Property"===r.type&&!r.method&&"init"===r.kind)},isObjectType:function(r){return"ObjectTypeAnnotation"===r.type||"TSTypeLiteral"===r.type},isObjectTypePropertyAFunction:function(r){return!("ObjectTypeProperty"!==r.type&&"ObjectTypeInternalSlot"!==r.type||"FunctionTypeAnnotation"!==r.value.type||r.static||Sn(r))},isSimpleType:function(r){return!!r&&(!("GenericTypeAnnotation"!==r.type&&"TSTypeReference"!==r.type||r.typeParameters)||!!Bn.has(r.type))},isSimpleNumber:Nn,isSimpleTemplateLiteral:function(r){let t="expressions";"TSTemplateLiteralType"===r.type&&(t="types");const e=r[t];return 0!==e.length&&e.every((r=>{if(Wn(r))return!1;if("Identifier"===r.type||"ThisExpression"===r.type)return!0;if(On(r)){let t=r;for(;On(t);){if("Identifier"!==t.property.type&&"Literal"!==t.property.type&&"StringLiteral"!==t.property.type&&"NumericLiteral"!==t.property.type)return!1;if(t=t.object,Wn(t))return!1}return"Identifier"===t.type||"ThisExpression"===t.type}return!1}))},isStringLiteral:yn,isStringPropSafeToUnquote:function(r,t){return"json"!==t.parser&&yn(r.key)&&Ln(r.key).slice(1,-1)===r.key.value&&(an(r.key.value)&&!(("typescript"===t.parser||"babel-ts"===t.parser)&&"ClassProperty"===r.type)||Nn(r.key.value)&&String(Number(r.key.value))===r.key.value&&("babel"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser))},isTemplateOnItsOwnLine:function(r,t){return("TemplateLiteral"===r.type&&xn(r)||"TaggedTemplateExpression"===r.type&&xn(r.quasi))&&!fn(t,ln(r),{backwards:!0})},isTestCall:function r(t,e){if("CallExpression"!==t.type)return!1;if(1===t.arguments.length){if(_n(t)&&e&&r(e))return An(t.arguments[0]);if(function(r){return"Identifier"===r.callee.type&&/^(before|after)(Each|All)$/.test(r.callee.name)&&1===r.arguments.length}(t))return _n(t.arguments[0])}else if((2===t.arguments.length||3===t.arguments.length)&&("Identifier"===t.callee.type&&Tn.test(t.callee.name)||function(r){return On(r.callee)&&"Identifier"===r.callee.object.type&&"Identifier"===r.callee.property.type&&Tn.test(r.callee.object.name)&&("only"===r.callee.property.name||"skip"===r.callee.property.name)}(t))&&(function(r){return"TemplateLiteral"===r.type}(t.arguments[0])||yn(t.arguments[0])))return!(t.arguments[2]&&!kn(t.arguments[2]))&&((2===t.arguments.length?An(t.arguments[1]):function(r){return"FunctionExpression"===r.type||"ArrowFunctionExpression"===r.type&&"BlockStatement"===r.body.type}(t.arguments[1])&&Xn(t.arguments[1]).length<=1)||_n(t.arguments[1]));return!1},isTheOnlyJsxElementInMarkdown:function(r,t){if("markdown"!==r.parentParser&&"mdx"!==r.parentParser)return!1;const e=t.getNode();if(!e.expression||!Cn(e.expression))return!1;const n=t.getParentNode();return"Program"===n.type&&1===n.body.length},isTSXFile:function(r){return r.filepath&&/\.tsx$/i.test(r.filepath)},isTypeAnnotationAFunction:function(r){return!("TypeAnnotation"!==r.type&&"TSTypeAnnotation"!==r.type||"FunctionTypeAnnotation"!==r.typeAnnotation.type||r.static||pn(r,r.typeAnnotation))},isNextLineEmpty:(r,{originalText:t})=>vn(t,Dn(r)),needsHardlineAfterDanglingComment:function(r){if(!Wn(r))return!1;const t=cn(qn(r,Kn.Dangling));return t&&!Fn(t)},rawText:Ln,shouldPrintComma:function(r,t="es5"){return"es5"===r.trailingComma&&"es5"===t||"all"===r.trailingComma&&("all"===t||"es5"===t)},isBitwiseOperator:function(r){return Boolean(Mn[r])||"|"===r||"^"===r||"&"===r},shouldFlatten:function(r,t){return Un(t)===Un(r)&&("**"!==r&&((!Pn[r]||!Pn[t])&&(!("%"===t&&Rn[r]||"%"===r&&Rn[t])&&((t===r||!Rn[t]||!Rn[r])&&(!Mn[r]||!Mn[t])))))},startsWithNoLookaheadToken:function r(t,e){switch((t=function(r){for(;r.left;)r=r.left;return r}(t)).type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return e;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return r(t.object,e);case"TaggedTemplateExpression":return"FunctionExpression"!==t.tag.type&&r(t.tag,e);case"CallExpression":case"OptionalCallExpression":return"FunctionExpression"!==t.callee.type&&r(t.callee,e);case"ConditionalExpression":return r(t.test,e);case"UpdateExpression":return!t.prefix&&r(t.argument,e);case"BindExpression":return t.object&&r(t.object,e);case"SequenceExpression":return r(t.expressions[0],e);case"TSAsExpression":case"TSNonNullExpression":return r(t.expression,e);default:return!1}},getPrecedence:Un,hasComment:Wn,getComments:qn,CommentCheckFlags:Kn};const{getLast:Zn,hasNewline:ru,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:tu,getNextNonSpaceNonCommentCharacter:eu,hasNewlineInRange:nu,addLeadingComment:uu,addTrailingComment:au,addDanglingComment:iu,getNextNonSpaceNonCommentCharacterIndex:cu,isNonEmptyArray:fu}=qe,{isBlockComment:ou,getFunctionParameters:su,isPrettierIgnoreComment:vu,isJsxNode:lu,hasFlowShorthandAnnotationComment:Du,hasFlowAnnotationComment:pu,hasIgnoreComment:bu,isCallLikeExpression:Eu,getCallArguments:Fu,isCallExpression:du,isMemberExpression:mu,isObjectProperty:hu}=Qn,{locStart:ku,locEnd:yu}=tn;function Au(r,t){const e=(r.body||r.properties).find((({type:r})=>"EmptyStatement"!==r));e?uu(e,t):iu(r,t)}function _u(r,t){"BlockStatement"===r.type?Au(r,t):uu(r,t)}function Cu({comment:r,followingNode:t}){return!(!t||!ra(r))&&(uu(t,r),!0)}function wu({comment:r,precedingNode:t,enclosingNode:e,followingNode:n,text:u}){if(!e||"IfStatement"!==e.type||!n)return!1;return")"===eu(u,r,yu)?(au(t,r),!0):t===e.consequent&&n===e.alternate?("BlockStatement"===t.type?au(t,r):iu(e,r),!0):"BlockStatement"===n.type?(Au(n,r),!0):"IfStatement"===n.type?(_u(n.consequent,r),!0):e.consequent===n&&(uu(n,r),!0)}function Su({comment:r,precedingNode:t,enclosingNode:e,followingNode:n,text:u}){if(!e||"WhileStatement"!==e.type||!n)return!1;return")"===eu(u,r,yu)?(au(t,r),!0):"BlockStatement"===n.type?(Au(n,r),!0):e.body===n&&(uu(n,r),!0)}function gu({comment:r,precedingNode:t,enclosingNode:e,followingNode:n}){return!(!e||"TryStatement"!==e.type&&"CatchClause"!==e.type||!n)&&("CatchClause"===e.type&&t?(au(t,r),!0):"BlockStatement"===n.type?(Au(n,r),!0):"TryStatement"===n.type?(_u(n.finalizer,r),!0):"CatchClause"===n.type&&(_u(n.body,r),!0))}function Bu({comment:r,enclosingNode:t,followingNode:e}){return!(!mu(t)||!e||"Identifier"!==e.type)&&(uu(t,r),!0)}function Tu({comment:r,precedingNode:t,enclosingNode:e,followingNode:n,text:u}){const a=t&&!nu(u,yu(t),ku(r));return!(t&&a||!e||"ConditionalExpression"!==e.type&&"TSConditionalType"!==e.type||!n)&&(uu(n,r),!0)}function Iu({comment:r,precedingNode:t,enclosingNode:e}){return!(!hu(e)||!e.shorthand||e.key!==t||"AssignmentPattern"!==e.value.type)&&(au(e.value.left,r),!0)}function Ou({comment:r,precedingNode:t,enclosingNode:e,followingNode:n}){if(e&&("ClassDeclaration"===e.type||"ClassExpression"===e.type||"DeclareClass"===e.type||"DeclareInterface"===e.type||"InterfaceDeclaration"===e.type||"TSInterfaceDeclaration"===e.type)){if(fu(e.decorators)&&(!n||"Decorator"!==n.type))return au(Zn(e.decorators),r),!0;if(e.body&&n===e.body)return Au(e.body,r),!0;if(n)for(const u of["implements","extends","mixins"])if(e[u]&&n===e[u][0])return!t||t!==e.id&&t!==e.typeParameters&&t!==e.superClass?iu(e,r,u):au(t,r),!0}return!1}function Nu({comment:r,precedingNode:t,enclosingNode:e,text:n}){return(e&&t&&("Property"===e.type||"TSDeclareMethod"===e.type||"TSAbstractMethodDefinition"===e.type)&&"Identifier"===t.type&&e.key===t&&":"!==eu(n,t,yu)||!(!t||!e||"Decorator"!==t.type||"ClassMethod"!==e.type&&"ClassProperty"!==e.type&&"PropertyDefinition"!==e.type&&"TSAbstractClassProperty"!==e.type&&"TSAbstractMethodDefinition"!==e.type&&"TSDeclareMethod"!==e.type&&"MethodDefinition"!==e.type))&&(au(t,r),!0)}function xu({comment:r,precedingNode:t,enclosingNode:e,text:n}){return"("===eu(n,r,yu)&&(!(!t||!e||"FunctionDeclaration"!==e.type&&"FunctionExpression"!==e.type&&"ClassMethod"!==e.type&&"MethodDefinition"!==e.type&&"ObjectMethod"!==e.type)&&(au(t,r),!0))}function Lu({comment:r,enclosingNode:t,text:e}){if(!t||"ArrowFunctionExpression"!==t.type)return!1;const n=cu(e,r,yu);return!1!==n&&"=>"===e.slice(n,n+2)&&(iu(t,r),!0)}function Pu({comment:r,enclosingNode:t,text:e}){return")"===eu(e,r,yu)&&(t&&(Zu(t)&&0===su(t).length||Eu(t)&&0===Fu(t).length)?(iu(t,r),!0):!(!t||"MethodDefinition"!==t.type&&"TSAbstractMethodDefinition"!==t.type||0!==su(t.value).length)&&(iu(t.value,r),!0))}function Ru({comment:r,precedingNode:t,enclosingNode:e,followingNode:n,text:u}){if(t&&"FunctionTypeParam"===t.type&&e&&"FunctionTypeAnnotation"===e.type&&n&&"FunctionTypeParam"!==n.type)return au(t,r),!0;if(t&&("Identifier"===t.type||"AssignmentPattern"===t.type)&&e&&Zu(e)&&")"===eu(u,r,yu))return au(t,r),!0;if(e&&"FunctionDeclaration"===e.type&&n&&"BlockStatement"===n.type){const t=(()=>{const r=su(e);if(r.length>0)return tu(u,yu(Zn(r)));const t=tu(u,yu(e.id));return!1!==t&&tu(u,t+1)})();if(ku(r)>t)return Au(n,r),!0}return!1}function Mu({comment:r,enclosingNode:t}){return!(!t||"ImportSpecifier"!==t.type)&&(uu(t,r),!0)}function Gu({comment:r,enclosingNode:t}){return!(!t||"LabeledStatement"!==t.type)&&(uu(t,r),!0)}function Uu({comment:r,enclosingNode:t}){return!(!t||"ContinueStatement"!==t.type&&"BreakStatement"!==t.type||t.label)&&(au(t,r),!0)}function ju({comment:r,precedingNode:t,enclosingNode:e}){return!!(du(e)&&t&&e.callee===t&&e.arguments.length>0)&&(uu(e.arguments[0],r),!0)}function Xu({comment:r,precedingNode:t,enclosingNode:e,followingNode:n}){return!e||"UnionTypeAnnotation"!==e.type&&"TSUnionType"!==e.type?(n&&("UnionTypeAnnotation"===n.type||"TSUnionType"===n.type)&&vu(r)&&(n.types[0].prettierIgnore=!0,r.unignore=!0),!1):(vu(r)&&(n.prettierIgnore=!0,r.unignore=!0),!!t&&(au(t,r),!0))}function Hu({comment:r,enclosingNode:t}){return!!hu(t)&&(uu(t,r),!0)}function $u({comment:r,enclosingNode:t,followingNode:e,ast:n,isLastComment:u}){return n&&n.body&&0===n.body.length?(u?iu(n,r):uu(n,r),!0):t&&"Program"===t.type&&0===t.body.length&&!fu(t.directives)?(u?iu(t,r):uu(t,r),!0):!(!e||"Program"!==e.type||0!==e.body.length||!t||"ModuleExpression"!==t.type)&&(iu(e,r),!0)}function Yu({comment:r,enclosingNode:t}){return!(!t||"ForInStatement"!==t.type&&"ForOfStatement"!==t.type)&&(uu(t,r),!0)}function Vu({comment:r,precedingNode:t,enclosingNode:e,text:n}){return!!(t&&"ImportSpecifier"===t.type&&e&&"ImportDeclaration"===e.type&&ru(n,yu(r)))&&(au(t,r),!0)}function Ku({comment:r,enclosingNode:t}){return!(!t||"AssignmentPattern"!==t.type)&&(uu(t,r),!0)}function Ju({comment:r,enclosingNode:t}){return!(!t||"TypeAlias"!==t.type)&&(uu(t,r),!0)}function Wu({comment:r,enclosingNode:t,followingNode:e}){return!(!t||"VariableDeclarator"!==t.type&&"AssignmentExpression"!==t.type||!e||"ObjectExpression"!==e.type&&"ArrayExpression"!==e.type&&"TemplateLiteral"!==e.type&&"TaggedTemplateExpression"!==e.type&&!ou(r))&&(uu(e,r),!0)}function qu({comment:r,enclosingNode:t,followingNode:e,text:n}){return!(e||!t||"TSMethodSignature"!==t.type&&"TSDeclareFunction"!==t.type&&"TSAbstractMethodDefinition"!==t.type||";"!==eu(n,r,yu))&&(au(t,r),!0)}function zu({comment:r,enclosingNode:t,followingNode:e}){if(vu(r)&&t&&"TSMappedType"===t.type&&e&&"TSTypeParameter"===e.type&&e.constraint)return t.prettierIgnore=!0,r.unignore=!0,!0}function Qu({comment:r,precedingNode:t,enclosingNode:e,followingNode:n}){return!(!e||"TSMappedType"!==e.type)&&(n&&"TSTypeParameter"===n.type&&n.name?(uu(n.name,r),!0):!(!t||"TSTypeParameter"!==t.type||!t.constraint)&&(au(t.constraint,r),!0))}function Zu(r){return"ArrowFunctionExpression"===r.type||"FunctionExpression"===r.type||"FunctionDeclaration"===r.type||"ObjectMethod"===r.type||"ClassMethod"===r.type||"TSDeclareFunction"===r.type||"TSCallSignatureDeclaration"===r.type||"TSConstructSignatureDeclaration"===r.type||"TSMethodSignature"===r.type||"TSConstructorType"===r.type||"TSFunctionType"===r.type||"TSDeclareMethod"===r.type}function ra(r){return ou(r)&&"*"===r.value[0]&&/@type\b/.test(r.value)}var ta={handleOwnLineComment:function(r){return[zu,Ru,Bu,wu,Su,gu,Ou,Mu,Yu,Xu,$u,Vu,Ku,Nu,Gu].some((t=>t(r)))},handleEndOfLineComment:function(r){return[Cu,Ru,Tu,Mu,wu,Su,gu,Ou,Gu,ju,Hu,$u,Ju,Wu].some((t=>t(r)))},handleRemainingComment:function(r){return[zu,wu,Su,Iu,Pu,Nu,$u,Lu,xu,Qu,Uu,qu].some((t=>t(r)))},isTypeCastComment:ra,getCommentChildNodes:function(r,t){if(("typescript"===t.parser||"flow"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser)&&"MethodDefinition"===r.type&&r.value&&"FunctionExpression"===r.value.type&&0===su(r.value).length&&!r.value.returnType&&!fu(r.value.typeParameters)&&r.value.body)return[...r.decorators||[],r.key,r.value.body]},willPrintOwnComments:function(r){const t=r.getValue(),e=r.getParentNode();return(t&&(lu(t)||Du(t)||du(e)&&(pu(t.leadingComments)||pu(t.trailingComments)))||e&&("JSXSpreadAttribute"===e.type||"JSXSpreadChild"===e.type||"UnionTypeAnnotation"===e.type||"TSUnionType"===e.type||("ClassDeclaration"===e.type||"ClassExpression"===e.type)&&e.superClass===t))&&(!bu(r)||"UnionTypeAnnotation"===e.type||"TSUnionType"===e.type)}};const{getLast:ea,getNextNonSpaceNonCommentCharacter:na}=qe,{locStart:ua,locEnd:aa}=tn,{isTypeCastComment:ia}=ta;function ca(r){return"CallExpression"===r.type?(r.type="OptionalCallExpression",r.callee=ca(r.callee)):"MemberExpression"===r.type?(r.type="OptionalMemberExpression",r.object=ca(r.object)):"TSNonNullExpression"===r.type&&(r.expression=ca(r.expression)),r}function fa(r,t){let e;if(Array.isArray(r))e=r.entries();else{if(!r||"object"!=typeof r||"string"!=typeof r.type)return r;e=Object.entries(r)}for(const[n,u]of e)r[n]=fa(u,t);return Array.isArray(r)?r:t(r)||r}function oa(r){return"LogicalExpression"===r.type&&"LogicalExpression"===r.right.type&&r.operator===r.right.operator}function sa(r){return oa(r)?sa({type:"LogicalExpression",operator:r.operator,left:sa({type:"LogicalExpression",operator:r.operator,left:r.left,right:r.right.left,range:[ua(r.left),aa(r.right.left)]}),right:r.right.right,range:[ua(r),aa(r)]}):r}var va,la=function(t,e){if("typescript"===e.parser&&e.originalText.includes("@")){const{esTreeNodeToTSNodeMap:n,tsNodeToESTreeNodeMap:u}=e.tsParseResult;t=fa(t,(t=>{const e=n.get(t);if(!e)return;const a=e.decorators;if(!Array.isArray(a))return;const i=u.get(e);if(i!==t)return;const c=i.decorators;if(!Array.isArray(c)||c.length!==a.length||a.some((r=>{const t=u.get(r);return!t||!c.includes(t)}))){const{start:t,end:e}=i.loc;throw r("Leading decorators must be attached to a class declaration",{start:{line:t.line,column:t.column+1},end:{line:e.line,column:e.column+1}})}}))}if("typescript"!==e.parser&&"flow"!==e.parser&&"espree"!==e.parser&&"meriyah"!==e.parser){const r=new Set;t=fa(t,(t=>{t.leadingComments&&t.leadingComments.some(ia)&&r.add(ua(t))})),t=fa(t,(t=>{if("ParenthesizedExpression"===t.type){const{expression:e}=t;if("TypeCastExpression"===e.type)return e.range=t.range,e;const n=ua(t);if(!r.has(n))return e.extra=Object.assign(Object.assign({},e.extra),{},{parenthesized:!0}),e}}))}return t=fa(t,(r=>{switch(r.type){case"ChainExpression":return ca(r.expression);case"LogicalExpression":if(oa(r))return sa(r);break;case"VariableDeclaration":{const t=ea(r.declarations);t&&t.init&&function(r,t){if(";"===e.originalText[aa(t)])return;r.range=[ua(r),aa(t)]}(r,t);break}case"TSParenthesizedType":return r.typeAnnotation.range=[ua(r),aa(r)],r.typeAnnotation;case"TSTypeParameter":if("string"==typeof r.name){const t=ua(r);r.name={type:"Identifier",name:r.name,range:[t,t+r.name.length]}}break;case"SequenceExpression":{const t=ea(r.expressions);r.range=[ua(r),Math.min(aa(t),aa(r))];break}case"ClassProperty":r.key&&"TSPrivateIdentifier"===r.key.type&&"?"===na(e.originalText,r.key,aa)&&(r.optional=!0)}}))};function Da(){if(void 0===va){var r=new ArrayBuffer(2),t=new Uint8Array(r),e=new Uint16Array(r);if(t[0]=1,t[1]=2,258===e[0])va="BE";else{if(513!==e[0])throw new Error("unable to figure out endianess");va="LE"}}return va}function pa(){return void 0!==xt.location?xt.location.hostname:""}function ba(){return[]}function Ea(){return 0}function Fa(){return Number.MAX_VALUE}function da(){return Number.MAX_VALUE}function ma(){return[]}function ha(){return"Browser"}function ka(){return void 0!==xt.navigator?xt.navigator.appVersion:""}function ya(){}function Aa(){}function _a(){return"javascript"}function Ca(){return"browser"}function wa(){return"/tmp"}var Sa=wa,ga={EOL:"\n",arch:_a,platform:Ca,tmpdir:Sa,tmpDir:wa,networkInterfaces:ya,getNetworkInterfaces:Aa,release:ka,type:ha,cpus:ma,totalmem:da,freemem:Fa,uptime:Ea,loadavg:ba,hostname:pa,endianness:Da},Ba=Object.freeze({__proto__:null,endianness:Da,hostname:pa,loadavg:ba,uptime:Ea,freemem:Fa,totalmem:da,cpus:ma,type:ha,release:ka,networkInterfaces:ya,getNetworkInterfaces:Aa,arch:_a,platform:Ca,tmpDir:wa,tmpdir:Sa,EOL:"\n",default:ga});const Ta=r=>{if("string"!=typeof r)throw new TypeError("Expected a string");const t=r.match(/(?:\r?\n)/g)||[];if(0===t.length)return;const e=t.filter((r=>"\r\n"===r)).length;return e>t.length-e?"\r\n":"\n"};var Ia=Ta;Ia.graceful=r=>"string"==typeof r&&Ta(r)||"\n";var Oa=l(Ba),Na=function(r){const t=r.match(Xa);return t?t[0].trimLeft():""},xa=function(r){const t=r.match(Xa);return t&&t[0]?r.substring(t[0].length):r},La=function(r){return Wa(r).pragmas},Pa=Wa,Ra=function({comments:r="",pragmas:t={}}){const e=(0,Ga().default)(r)||Ma().EOL,n=" *",u=Object.keys(t),a=u.map((r=>qa(r,t[r]))).reduce(((r,t)=>r.concat(t)),[]).map((r=>" * "+r+e)).join("");if(!r){if(0===u.length)return"";if(1===u.length&&!Array.isArray(t[u[0]])){const r=t[u[0]];return`/** ${qa(u[0],r)[0]} */`}}const i=r.split(e).map((r=>` * ${r}`)).join(e)+e;return"/**"+e+(r?i:"")+(r&&u.length?n+e:"")+a+" */"};function Ma(){const r=Oa;return Ma=function(){return r},r}function Ga(){const r=(t=Ia)&&t.__esModule?t:{default:t};var t;return Ga=function(){return r},r}const Ua=/\*\/$/,ja=/^\/\*\*/,Xa=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Ha=/(^|\s+)\/\/([^\r\n]*)/g,$a=/^(\r?\n)+/,Ya=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Va=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,Ka=/(\r?\n|^) *\* ?/g,Ja=[];function Wa(r){const t=(0,Ga().default)(r)||Ma().EOL;r=r.replace(ja,"").replace(Ua,"").replace(Ka,"$1");let e="";for(;e!==r;)e=r,r=r.replace(Ya,`${t}$1 $2${t}`);r=r.replace($a,"").trimRight();const n=Object.create(null),u=r.replace(Va,"").replace($a,"").trimRight();let a;for(;a=Va.exec(r);){const r=a[2].replace(Ha,"");"string"==typeof n[a[1]]||Array.isArray(n[a[1]])?n[a[1]]=Ja.concat(n[a[1]],r):n[a[1]]=r}return{comments:u,pragmas:n}}function qa(r,t){return Ja.concat(t).map((t=>`@${r} ${t}`.trim()))}var za=Object.defineProperty({extract:Na,strip:xa,parse:La,parseWithComments:Pa,print:Ra},"__esModule",{value:!0});var Qa={guessEndOfLine:function(r){const t=r.indexOf("\r");return t>=0?"\n"===r.charAt(t+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(r){switch(r){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(r,t){let e;if("\n"===t)e=/\n/g;else if("\r"===t)e=/\r/g;else{if("\r\n"!==t)throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);e=/\r\n/g}const n=r.match(e);return n?n.length:0},normalizeEndOfLine:function(r){return r.replace(/\r\n?/g,"\n")}};const{parseWithComments:Za,strip:ri,extract:ti,print:ei}=za,{getShebang:ni}=qe,{normalizeEndOfLine:ui}=Qa;function ai(r){const t=ni(r);t&&(r=r.slice(t.length+1));const e=ti(r),{pragmas:n,comments:u}=Za(e);return{shebang:t,text:r,pragmas:n,comments:u}}var ii={hasPragma:function(r){const t=Object.keys(ai(r).pragmas);return t.includes("prettier")||t.includes("format")},insertPragma:function(r){const{shebang:t,text:e,pragmas:n,comments:u}=ai(r),a=ri(e),i=ei({pragmas:Object.assign({format:""},n),comments:u.trimStart()});return(t?`${t}\n`:"")+ui(i)+(a.startsWith("\n")?"\n":"\n\n")+a}};const{hasPragma:ci}=ii,{locStart:fi,locEnd:oi}=tn;var si=function(r){return r="function"==typeof r?{parse:r}:r,Object.assign({astFormat:"estree",hasPragma:ci,locStart:fi,locEnd:oi},r)};var vi=function(r){return"#"===r.charAt(0)&&"!"===r.charAt(1)?"//"+r.slice(2):r},li=Object.freeze({__proto__:null,default:{}}),Di="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA",pi={RTLD_LAZY:1,RTLD_NOW:2,RTLD_GLOBAL:8,RTLD_LOCAL:4,E2BIG:7,EACCES:13,EADDRINUSE:48,EADDRNOTAVAIL:49,EAFNOSUPPORT:47,EAGAIN:35,EALREADY:37,EBADF:9,EBADMSG:94,EBUSY:16,ECANCELED:89,ECHILD:10,ECONNABORTED:53,ECONNREFUSED:61,ECONNRESET:54,EDEADLK:11,EDESTADDRREQ:39,EDOM:33,EDQUOT:69,EEXIST:17,EFAULT:14,EFBIG:27,EHOSTUNREACH:65,EIDRM:90,EILSEQ:92,EINPROGRESS:36,EINTR:4,EINVAL:22,EIO:5,EISCONN:56,EISDIR:21,ELOOP:62,EMFILE:24,EMLINK:31,EMSGSIZE:40,EMULTIHOP:95,ENAMETOOLONG:63,ENETDOWN:50,ENETRESET:52,ENETUNREACH:51,ENFILE:23,ENOBUFS:55,ENODATA:96,ENODEV:19,ENOENT:2,ENOEXEC:8,ENOLCK:77,ENOLINK:97,ENOMEM:12,ENOMSG:91,ENOPROTOOPT:42,ENOSPC:28,ENOSR:98,ENOSTR:99,ENOSYS:78,ENOTCONN:57,ENOTDIR:20,ENOTEMPTY:66,ENOTSOCK:38,ENOTSUP:45,ENOTTY:25,ENXIO:6,EOPNOTSUPP:102,EOVERFLOW:84,EPERM:1,EPIPE:32,EPROTO:100,EPROTONOSUPPORT:43,EPROTOTYPE:41,ERANGE:34,EROFS:30,ESPIPE:29,ESRCH:3,ESTALE:70,ETIME:101,ETIMEDOUT:60,ETXTBSY:26,EWOULDBLOCK:35,EXDEV:18,PRIORITY_LOW:19,PRIORITY_BELOW_NORMAL:10,PRIORITY_NORMAL:0,PRIORITY_ABOVE_NORMAL:-7,PRIORITY_HIGH:-14,PRIORITY_HIGHEST:-20,SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGIOT:6,SIGBUS:10,SIGFPE:8,SIGKILL:9,SIGUSR1:30,SIGSEGV:11,SIGUSR2:31,SIGPIPE:13,SIGALRM:14,SIGTERM:15,SIGCHLD:20,SIGCONT:19,SIGSTOP:17,SIGTSTP:18,SIGTTIN:21,SIGTTOU:22,SIGURG:16,SIGXCPU:24,SIGXFSZ:25,SIGVTALRM:26,SIGPROF:27,SIGWINCH:28,SIGIO:23,SIGINFO:29,SIGSYS:12,UV_FS_SYMLINK_DIR:1,UV_FS_SYMLINK_JUNCTION:2,O_RDONLY:0,O_WRONLY:1,O_RDWR:2,UV_DIRENT_UNKNOWN:0,UV_DIRENT_FILE:1,UV_DIRENT_DIR:2,UV_DIRENT_LINK:3,UV_DIRENT_FIFO:4,UV_DIRENT_SOCKET:5,UV_DIRENT_CHAR:6,UV_DIRENT_BLOCK:7,S_IFMT:61440,S_IFREG:32768,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960,S_IFSOCK:49152,O_CREAT:512,O_EXCL:2048,UV_FS_O_FILEMAP:0,O_NOCTTY:131072,O_TRUNC:1024,O_APPEND:8,O_DIRECTORY:1048576,O_NOFOLLOW:256,O_SYNC:128,O_DSYNC:4194304,O_SYMLINK:2097152,O_NONBLOCK:4,S_IRWXU:448,S_IRUSR:256,S_IWUSR:128,S_IXUSR:64,S_IRWXG:56,S_IRGRP:32,S_IWGRP:16,S_IXGRP:8,S_IRWXO:7,S_IROTH:4,S_IWOTH:2,S_IXOTH:1,F_OK:0,R_OK:4,W_OK:2,X_OK:1,UV_FS_COPYFILE_EXCL:1,COPYFILE_EXCL:1,UV_FS_COPYFILE_FICLONE:2,COPYFILE_FICLONE:2,UV_FS_COPYFILE_FICLONE_FORCE:4,COPYFILE_FICLONE_FORCE:4,OPENSSL_VERSION_NUMBER:269488255,SSL_OP_ALL:2147485780,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:262144,SSL_OP_CIPHER_SERVER_PREFERENCE:4194304,SSL_OP_CISCO_ANYCONNECT:32768,SSL_OP_COOKIE_EXCHANGE:8192,SSL_OP_CRYPTOPRO_TLSEXT_BUG:2147483648,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:2048,SSL_OP_EPHEMERAL_RSA:0,SSL_OP_LEGACY_SERVER_CONNECT:4,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:0,SSL_OP_MICROSOFT_SESS_ID_BUG:0,SSL_OP_MSIE_SSLV2_RSA_PADDING:0,SSL_OP_NETSCAPE_CA_DN_BUG:0,SSL_OP_NETSCAPE_CHALLENGE_BUG:0,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:0,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:0,SSL_OP_NO_COMPRESSION:131072,SSL_OP_NO_QUERY_MTU:4096,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:65536,SSL_OP_NO_SSLv2:0,SSL_OP_NO_SSLv3:33554432,SSL_OP_NO_TICKET:16384,SSL_OP_NO_TLSv1:67108864,SSL_OP_NO_TLSv1_1:268435456,SSL_OP_NO_TLSv1_2:134217728,SSL_OP_PKCS1_CHECK_1:0,SSL_OP_PKCS1_CHECK_2:0,SSL_OP_SINGLE_DH_USE:0,SSL_OP_SINGLE_ECDH_USE:0,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:0,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:0,SSL_OP_TLS_BLOCK_PADDING_BUG:0,SSL_OP_TLS_D5_BUG:0,SSL_OP_TLS_ROLLBACK_BUG:8388608,ENGINE_METHOD_RSA:1,ENGINE_METHOD_DSA:2,ENGINE_METHOD_DH:4,ENGINE_METHOD_RAND:8,ENGINE_METHOD_EC:2048,ENGINE_METHOD_CIPHERS:64,ENGINE_METHOD_DIGESTS:128,ENGINE_METHOD_PKEY_METHS:512,ENGINE_METHOD_PKEY_ASN1_METHS:1024,ENGINE_METHOD_ALL:65535,ENGINE_METHOD_NONE:0,DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,RSA_PSS_SALTLEN_DIGEST:-1,RSA_PSS_SALTLEN_MAX_SIGN:-2,RSA_PSS_SALTLEN_AUTO:-2,defaultCoreCipherList:Di,TLS1_VERSION:769,TLS1_1_VERSION:770,TLS1_2_VERSION:771,TLS1_3_VERSION:772,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6},bi=Object.freeze({__proto__:null,RTLD_LAZY:1,RTLD_NOW:2,RTLD_GLOBAL:8,RTLD_LOCAL:4,E2BIG:7,EACCES:13,EADDRINUSE:48,EADDRNOTAVAIL:49,EAFNOSUPPORT:47,EAGAIN:35,EALREADY:37,EBADF:9,EBADMSG:94,EBUSY:16,ECANCELED:89,ECHILD:10,ECONNABORTED:53,ECONNREFUSED:61,ECONNRESET:54,EDEADLK:11,EDESTADDRREQ:39,EDOM:33,EDQUOT:69,EEXIST:17,EFAULT:14,EFBIG:27,EHOSTUNREACH:65,EIDRM:90,EILSEQ:92,EINPROGRESS:36,EINTR:4,EINVAL:22,EIO:5,EISCONN:56,EISDIR:21,ELOOP:62,EMFILE:24,EMLINK:31,EMSGSIZE:40,EMULTIHOP:95,ENAMETOOLONG:63,ENETDOWN:50,ENETRESET:52,ENETUNREACH:51,ENFILE:23,ENOBUFS:55,ENODATA:96,ENODEV:19,ENOENT:2,ENOEXEC:8,ENOLCK:77,ENOLINK:97,ENOMEM:12,ENOMSG:91,ENOPROTOOPT:42,ENOSPC:28,ENOSR:98,ENOSTR:99,ENOSYS:78,ENOTCONN:57,ENOTDIR:20,ENOTEMPTY:66,ENOTSOCK:38,ENOTSUP:45,ENOTTY:25,ENXIO:6,EOPNOTSUPP:102,EOVERFLOW:84,EPERM:1,EPIPE:32,EPROTO:100,EPROTONOSUPPORT:43,EPROTOTYPE:41,ERANGE:34,EROFS:30,ESPIPE:29,ESRCH:3,ESTALE:70,ETIME:101,ETIMEDOUT:60,ETXTBSY:26,EWOULDBLOCK:35,EXDEV:18,PRIORITY_LOW:19,PRIORITY_BELOW_NORMAL:10,PRIORITY_NORMAL:0,PRIORITY_ABOVE_NORMAL:-7,PRIORITY_HIGH:-14,PRIORITY_HIGHEST:-20,SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGIOT:6,SIGBUS:10,SIGFPE:8,SIGKILL:9,SIGUSR1:30,SIGSEGV:11,SIGUSR2:31,SIGPIPE:13,SIGALRM:14,SIGTERM:15,SIGCHLD:20,SIGCONT:19,SIGSTOP:17,SIGTSTP:18,SIGTTIN:21,SIGTTOU:22,SIGURG:16,SIGXCPU:24,SIGXFSZ:25,SIGVTALRM:26,SIGPROF:27,SIGWINCH:28,SIGIO:23,SIGINFO:29,SIGSYS:12,UV_FS_SYMLINK_DIR:1,UV_FS_SYMLINK_JUNCTION:2,O_RDONLY:0,O_WRONLY:1,O_RDWR:2,UV_DIRENT_UNKNOWN:0,UV_DIRENT_FILE:1,UV_DIRENT_DIR:2,UV_DIRENT_LINK:3,UV_DIRENT_FIFO:4,UV_DIRENT_SOCKET:5,UV_DIRENT_CHAR:6,UV_DIRENT_BLOCK:7,S_IFMT:61440,S_IFREG:32768,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960,S_IFSOCK:49152,O_CREAT:512,O_EXCL:2048,UV_FS_O_FILEMAP:0,O_NOCTTY:131072,O_TRUNC:1024,O_APPEND:8,O_DIRECTORY:1048576,O_NOFOLLOW:256,O_SYNC:128,O_DSYNC:4194304,O_SYMLINK:2097152,O_NONBLOCK:4,S_IRWXU:448,S_IRUSR:256,S_IWUSR:128,S_IXUSR:64,S_IRWXG:56,S_IRGRP:32,S_IWGRP:16,S_IXGRP:8,S_IRWXO:7,S_IROTH:4,S_IWOTH:2,S_IXOTH:1,F_OK:0,R_OK:4,W_OK:2,X_OK:1,UV_FS_COPYFILE_EXCL:1,COPYFILE_EXCL:1,UV_FS_COPYFILE_FICLONE:2,COPYFILE_FICLONE:2,UV_FS_COPYFILE_FICLONE_FORCE:4,COPYFILE_FICLONE_FORCE:4,OPENSSL_VERSION_NUMBER:269488255,SSL_OP_ALL:2147485780,SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION:262144,SSL_OP_CIPHER_SERVER_PREFERENCE:4194304,SSL_OP_CISCO_ANYCONNECT:32768,SSL_OP_COOKIE_EXCHANGE:8192,SSL_OP_CRYPTOPRO_TLSEXT_BUG:2147483648,SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS:2048,SSL_OP_EPHEMERAL_RSA:0,SSL_OP_LEGACY_SERVER_CONNECT:4,SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER:0,SSL_OP_MICROSOFT_SESS_ID_BUG:0,SSL_OP_MSIE_SSLV2_RSA_PADDING:0,SSL_OP_NETSCAPE_CA_DN_BUG:0,SSL_OP_NETSCAPE_CHALLENGE_BUG:0,SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG:0,SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG:0,SSL_OP_NO_COMPRESSION:131072,SSL_OP_NO_QUERY_MTU:4096,SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION:65536,SSL_OP_NO_SSLv2:0,SSL_OP_NO_SSLv3:33554432,SSL_OP_NO_TICKET:16384,SSL_OP_NO_TLSv1:67108864,SSL_OP_NO_TLSv1_1:268435456,SSL_OP_NO_TLSv1_2:134217728,SSL_OP_PKCS1_CHECK_1:0,SSL_OP_PKCS1_CHECK_2:0,SSL_OP_SINGLE_DH_USE:0,SSL_OP_SINGLE_ECDH_USE:0,SSL_OP_SSLEAY_080_CLIENT_DH_BUG:0,SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG:0,SSL_OP_TLS_BLOCK_PADDING_BUG:0,SSL_OP_TLS_D5_BUG:0,SSL_OP_TLS_ROLLBACK_BUG:8388608,ENGINE_METHOD_RSA:1,ENGINE_METHOD_DSA:2,ENGINE_METHOD_DH:4,ENGINE_METHOD_RAND:8,ENGINE_METHOD_EC:2048,ENGINE_METHOD_CIPHERS:64,ENGINE_METHOD_DIGESTS:128,ENGINE_METHOD_PKEY_METHS:512,ENGINE_METHOD_PKEY_ASN1_METHS:1024,ENGINE_METHOD_ALL:65535,ENGINE_METHOD_NONE:0,DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,RSA_PSS_SALTLEN_DIGEST:-1,RSA_PSS_SALTLEN_MAX_SIGN:-2,RSA_PSS_SALTLEN_AUTO:-2,defaultCoreCipherList:Di,TLS1_VERSION:769,TLS1_1_VERSION:770,TLS1_2_VERSION:771,TLS1_3_VERSION:772,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6,default:pi}),Ei=l(li),Fi=l(bi),di=D((function(r,t){!function(r){var e="member_property_expression",n=8483,u=12538,a="??",i="children",c="predicate_expression",f="Identifier",o=68107,s=64311,v=192,l=71369,D=11710,p=43597,b=110947,E=67591,F="directive",d=121504,m=69871,h=12347,k=126553,y="block",A=68096,_="params",C=93071,w=72767,S=122,g="for_statement",B=128,T=70873,I="start",O=43867,N="_method",x=70414,L=">",P="catch_body",R=120121,M="the end of an expression statement (`;`)",G=126558,U="jsx_fragment",j=69733,X=42527,H="decorators",$=82943,Y=71039,V=8472,K="update",J=43205,W=12783,q=12438,z=12352,Q=8511,Z=120713,rr="method",tr=8191,er="function_param",nr=67871,ur="throw",ar="class_extends",ir=43470,cr=11507,fr="object_key_literal",or=71903,sr="_bigarray",vr=65437,lr=70840,Dr=119995,pr=43311,br="jsx_child",Er=67637,Fr=68116,dr=66204,mr=65470,hr=67391,kr=11631,yr=66729,Ar=69956,_r="tparams",Cr=66735,wr=42623,Sr=43697,gr=64217,Br="Invalid binary/octal ",Tr=70399,Ir=42864,Or=120487,Nr=73110,xr=43255,Lr="do",Pr=43301,Rr="jsx_attribute_value_literal",Mr="binding_pattern",Gr=72759,Ur=110878,jr="package",Xr=72750,Hr="interface_declaration",$r=119892,Yr="tail",Vr=111,Kr=8417,Jr=119807,Wr=65613,qr="type",zr=68159,Qr=55215,Zr="export_default_declaration_decl",rt=72970,tt=70416,et=72881,nt=43451,ut="function_this_param",at="module",it="try",ct=70143,ft=125183,ot=70412,st="@])",vt="binary",lt="infinity",Dt="private",pt=65500,bt="has_unknown_members",Et="pattern_array_rest_element",Ft="Property",dt=65343,mt="implements",ht=12548,kt="if_alternate_statement",yt=43395,At="src/parser/type_parser.ml",_t=126552,Ct=66915,wt=120712,St=126555,gt=68326,Bt=120596,Tt="raw",It=112,Ot=126624,Nt="statement",xt="meta_property",Lt=71235,Pt=44002,Rt=8467,Mt=8318,Gt="class_property_value",Ut=8203,jt=69816,Xt="optional_call",Ht=43761,$t="kind",Yt=71230,Vt="class_identifier",Kt=69955,Jt=68220,Wt=66378,qt=110,zt=123583,Qt=120512,Zt=119154,re="declare",te=71228,ee=11742,ne=70831,ue="catch_clause",ae=8468,ie=72886,ce=121343,fe="for_in_assignment_pattern",oe="object_",se=70499,ve=43262,le="mixins",De="visit_trailing_comment",pe="type_param",be=72147,Ee=69758,Fe=71839,de="expected *",me="boolean",he="call",ke=43010,ye="expression",Ae="column",_e=43258,Ce=43595,we=191456,Se=117,ge=43754,Be=126544,Te=8416,Ie="Assert_failure",Oe=66517,Ne=42863,xe="enum_number_member",Le="a string",Pe=119993,Re=43394,Me=65855,Ge="opaque",Ue=870530776,je=72880,Xe=67711,He="enum_symbol_body",$e="filter",Ye=126560,Ve=43615,Ke="get",Je=64316,We=122917,qe="exported",ze=71099,Qe="return",Ze=70516,rn="members",tn=256,en=64279,nn=67829,un="src/parser/expression_parser.ml",an="(global)",cn="Enum `",fn="object_property",on=67589,sn="pattern_object_property",vn=127343600,ln="template_literal_element",Dn=70452,pn="class_element",bn=71131,En=120137,Fn=94098,dn=72349,mn="function_identifier",hn=126543,kn=43487,yn="@[<2>{ ",An="jsx_attribute_name",_n=72849,Cn=70393,wn=72191,Sn=65908,gn=120513,Bn=92909,Tn=70195,In="bound",On=8399,Nn=43566,xn=120070,Ln="update_expression",Pn="enum_number_body",Rn=69941,Mn=123631,Gn="spread_element",Un="for_in_left_declaration",jn=70401,Xn=64319,Hn=12703,$n=11687,Yn="@,))@]",Vn="%d",Kn=42239,Jn="type_cast",Wn=42508,qn=71735,zn=43643,Qn="class_implements_interface",Zn=67640,ru="buffer.ml",tu=605857695,eu="handler",nu=66207,uu=11558,au=113775,iu=113,cu=126540,fu="collect_comments",ou="set",su="assignment_pattern",vu="right",lu=94087,Du=72751,pu="object_key_identifier",bu=120133,Eu="Invalid number ",Fu=8580,du=68023,mu=43798,hu=12539,ku=100,yu="pattern_literal",Au="generic_type",_u="Lookahead.peek failed",Cu=93017,wu=42890,Su=43766,gu=42783,Bu="else",Tu=70851,Iu="the start of a statement",Ou=113820,Nu="properties",xu=94094,Lu=71481,Pu=43696,Ru=70474,Mu="declare_function",Gu=120597,Uu=110959,ju="object_indexer_property_type",Xu=70492,Hu=173782,$u=43042,Yu=107,Vu="arguments",Ku="comments",Ju=67431,Wu="line",qu="pattern_identifier",zu="declaration",Qu="static",Zu=72883,ra=69958,ta=68100,ea=72783,na=11310,ua=43814,aa="annot",ia=119179,ca=65786,fa=66303,oa=64967,sa=64255,va=8584,la=71350,Da=120655,pa="Stack_overflow",ba=43700,Ea="syntax_opt",Fa=68921,da="comprehension",ma=65295,ha="Not_found",ka=68680,ya=64324,Aa=72966,_a=-1053382366,Ca="rest",wa="pattern_array_element",Sa="jsx_attribute_value_expression",ga=65595,Ba="pattern_array_e",Ta=122916,Ia=43711,Oa=69926,Na="symbol",xa=42725,La=70092,Pa=43741,Ra="typeParameters",Ma="const",Ga=72847,Ua=12341,ja=66271,Xa="false",Ha=71104,$a=106,Ya=120076,Va=128,Ka=125124,Ja=73460,Wa=11743,qa=67593,za=44031,Qa=43449,Za=92927,ri=68095,ti=42945,ei=8231,ni=121519,ui=43453,ai="object_key_computed",ii="labeled_statement",ci="function_param_pattern",fi=65481,oi=43442,si="collect_comments_opt",vi=126590,li="_",Di="variable_declarator",pi="compare: functional value",bi=67967,di="computed",mi="object_property_type",hi=126562,ki=114,yi="comment_bounds",Ai="id",_i=70853,Ci=42237,wi="class_private_field",Si=72329,gi=43001,Bi=8412,Ti="Invalid_argument",Ii=113770,Oi=120092,Ni="declare_class",xi=94031,Li=67839,Pi=43570,Ri=72250,Mi=92879,Gi="prototype",Ui=8287,ji=70370,Xi="`.",Hi=65344,$i=12542,Yi=123641,Vi=42950,Ki="Internal Error: Found private field in object props",Ji="sequence",Wi="debugger",qi="call_type_args",zi=12348,Qi=68863,Zi=70084,rc="label",tc=70193,ec=-45,nc="jsx_opening_attribute",uc=119364,ac=43583,ic="%F",cc=43784,fc="call_arguments",oc=113791,sc=126503,vc=43743,lc=917999,Dc="0",pc=93007,bc=119967,Ec=44012,Fc=42621,dc=126538,mc="new_",hc=449540197,kc=68466,yc=64109,Ac=177983,_c=248,Cc="@,]@]",wc="program",Sc=68031,gc="type_",Bc="function_type",Tc=67382,Ic=8484,Oc=8205,Nc=42537,xc=73022,Lc=66559,Pc=65074,Rc=11775,Mc=71236,Gc=64274,Uc=120069,jc=72105,Xc=126570,Hc="object",$c="for_of_statement",Yc="break",Vc=43047,Kc=43695,Jc=70501,Wc=126551,qc=126520,zc=70477,Qc=66045,Zc=66499,rf=1024,tf=43018,ef=73103,nf=71471,uf=126522,af=119140,cf="function_declaration",ff=73064,of=92728,sf=73105,vf=70418,lf="await",Df=68119,pf="function_rest_param",bf=73119,Ef=42653,Ff=11703,df="left",mf=70449,hf="declare_type_alias",kf=16777215,yf=121475,Af=70302,_f=119142,Cf=55242,wf=70470,Sf=126583,gf=124927,Bf=72959,Tf=65497,If="Invalid legacy octal ",Of="typeof",Nf="explicit_type",xf="statement_list",Lf=65495,Pf="class_method",Rf=119994,Mf=71935,Gf=67861,Uf=8526,jf=69762,Xf="enum",Hf=2147483647,$f=119170,Yf=11702,Vf="in",Kf=67638,Jf="super",Wf=126504,qf=8304,zf="import_specifier",Qf=177972,Zf=68324,ro=67646,to="expression_or_spread",eo=43792,no=74879,uo=-82,ao=43260,io="internal",co=93052,fo=125258,oo=65574,so=224,vo="instanceof",lo="jsx_element_name_member_expression",Do=69599,po=44007,bo=43560,Eo="function_expression",Fo=223,mo=121476,ho=72242,ko=11498,yo=126467,Ao=73112,_o=44008,Co=70107,wo=13311,So="jsx_children",go=126548,Bo=63743,To=43471,Io=113822,Oo=122887,No="jsx_expression",xo=69864,Lo=126591,Po=126578,Ro=12592,Mo="type_params",Go=119148,Uo=8420,jo=126537,Xo=123627,Ho="{ ",$o="jsx_spread_attribute",Yo=70161,Vo=70468,Ko="@,",Jo=42606,Wo=126500,qo="number_literal_type",zo="label_identifier",Qo=72884,Zo=42999,rs=64310,ts=-594953737,es="hasUnknownMembers",ns=92982,us="array",as=65615,is="enum_string_member",cs="void",fs=65135,os=")",ss="let",vs=70002,ls=70735,Ds=70271,ps="nan",bs="@[%s =@ ",Es=194559,Fs=42735,ds="/",ms="for_in_statement_lhs",hs=68154,ks=43503,ys=8516,As=65381,_s="TypeParameterInstantiation",Cs=83526,ws=71339,Ss="number",gs=70286,Bs=12447,Ts=72160,Is=43493,Os=70487,Ns=70280,xs="function",Ls=70162,Ps=255,Rs=67702,Ms=66771,Gs=42895,Us=121452,js=8432,Xs=40959,Hs="unreachable",$s=70312,Ys="End_of_file",Vs=93759,Ks=8494,Js=43709,Ws="new",qs="Failure",zs="local",Qs="with",Zs=8489,rv="enum_declaration",tv=121460,ev="member",nv=70457,uv=64325,av=8488,iv=70448,cv=69967,fv=126535,ov=71934,sv=65312,vv=43135,lv=12446,Dv="import_named_specifier",pv=126619,bv=44025,Ev=70196,Fv="type_annotation",dv=8188,mv=65071,hv=131071,kv=120770,yv=12440,Av="with_",_v="statement_fork_point",Cv="finalizer",wv=71133,Sv=12320,gv="elements",Bv="literal",Tv=68607,Iv=8507,Ov=122913,Nv="each",xv="Sys_error",Lv="bigint_literal_type",Pv=69818,Rv=11727,Mv=64829,Gv=120538,Uv="type_alias",jv="member_private_name",Xv=126556,Hv="tagged_template",$v="pattern_object_property_literal_key",Yv=72192,Vv=67826,Kv=44013,Jv=70745,Wv=72153,qv=66511,zv=43249,Qv=11646,Zv="None",rl="int_of_string",tl="FunctionTypeParam",el="name",nl=70285,ul=103,al=12288,il=120744,cl="intersection_type",fl=11679,ol=11559,sl=71295,vl=70205,ll="callee",Dl=70018,pl=11567,bl="predicate",El="expression_statement",Fl="regexp",dl=44011,ml=123209,hl=65479,kl=11389,yl=43568,Al="optional",_l=-602162310,Cl="@]",wl=92777,Sl=120003,gl=72249,Bl="Unexpected ",Tl=73008,Il="finally",Ol="toplevel_statement_list",Nl=178207,xl=65055,Ll=70301,Pl=72161,Rl=70460,Ml=12799,Gl="loc",Ul=65535,jl=69375,Xl=43518,Hl=65487,$l="while_",Yl=44004,Vl=183983,Kl=-673950933,Jl=42559,Wl=121398,ql=55291,zl="jsx_element_name_identifier",Ql=71452,Zl=70078,rD=8239,tD=-253313196,eD="mixed",nD=70403,uD=67827,aD=11734,iD=101106,cD=68287,fD=119976,oD=72151,sD=73129,vD=73102,lD=73017,DD=" =",pD=888960333,bD="tuple_type",ED=126602,FD=73111,dD=70726,mD=126529,hD="object_property_value_type",kD="%a",yD=69423,AD="static/",_D=120831,CD=120781,wD=11695,SD=11711,gD=12294,BD=67583,TD=122879,ID=126584,OD=72703,ND=68295,xD="prefix",LD=43871,PD=69415,RD=11492,MD="class",GD=12333,UD=65575,jD=42894,XD="continue",HD=119145,$D=65663,YD=68120,VD=782176664,KD=120779,JD=71247,WD=71086,qD=19967,zD=70849,QD=8486,ZD=" ",rp=66863,tp="RestElement",ep="Undefined_recursive_module",np=126634,up=74751,ap=66377,ip="jsx_element_name_namespaced",cp=43334,fp=43481,op=66815,sp=11311,vp="typeAnnotation",lp=120126,Dp=69743,pp="array_element",bp=64285,Ep="Set.bal",Fp=8578,dp=8543,mp="()",hp="declare_module",kp=122886,yp="export_batch_specifier",Ap=">>>=",_p=68029,Cp="importKind",wp="extends",Sp=72345,gp=64296,Bp=43259,Tp=71679,Ip=64913,Op=119969,Np=94175,xp=72440,Lp=65141,Pp=43071,Rp="function_",Mp=65391,Gp=44010,Up=42888,jp=69807,Xp="variance",Hp=123,$p=12730,Yp="import_default_specifier",Vp=43764,Kp="pattern",Jp=70655,Wp=70464,qp="consequent",zp=68447,Qp=65473,Zp="call_type_arg",rb=255,tb=8238,eb=73019,nb=121498,ub=68899,ab=93026,ib=44015,cb="@[<2>[",fb="comment",ob=65439,sb="switch_case",vb="do_while",lb=43215,Db="constructor",pb=43586,bb=43587,Eb="yield",Fb="target",db=72272,mb="var",hb=70108,kb="impltype",yb="0o",Ab=119972,_b=92991,Cb=43391,wb=70441,Sb=8450,gb=72278,Bb=120074,Tb=43044,Ib=66717,Ob="interface_type",Nb="%B",xb=70472,Lb=122914,Pb=111355,Rb=5760,Mb=11630,Gb=126499,Ub=40943,jb=108,Xb=120629,Hb="Popping lex mode from empty stack",$b=65103,Yb=42611,Vb=195101,Kb=42607,Jb=126539,Wb="([^/]*)",qb=126502,zb=125135,Qb="template_literal",Zb=68903,rE="src/parser/statement_parser.ml",tE=72758,eE=11519,nE=11387,uE="Out_of_memory",aE=12287,iE=120570,cE=72164,fE=126534,oE=65076,sE=44005,vE="index out of bounds",lE=73029,DE=72873,pE="_bigarr02",bE="for_statement_init",EE=126571,FE="supertype",dE="class_property",mE=92916,hE="this",kE="}",yE=71095,AE="declare_module_exports",_E="union_type",CE=65535,wE="variance_opt",SE=94032,gE=42124,BE="this_expression",TE="jsx_element",IE=65019,OE=125251,NE=64111,xE="typeArguments",LE=8254,PE=8471,RE=70497,ME=71359,GE=8202,UE="EnumDefaultedMember",jE="switch",XE=69634,HE="unary_expression",$E=71215,YE=126,VE=65597,KE=67679,JE=120686,WE=72163,qE=-983660142,zE=70197,QE=64262,ZE=124,rF=65279,tF=126495,eF=69456,nF=65342,uF="alternate",aF=92975,iF=65489,cF=252,fF=125142,oF=67807,sF=43187,vF="export",lF=68850,DF=66383,pF=".",bF="type_args",EF=72155,FF=70508,dF=92159,mF="jsx_element_name",hF=72283,kF=43644,yF=42737,AF=116,_F=75075,CF=70279,wF=65338,SF="function_params",gF=126627,BF=73065,TF=72872,IF=43762,OF=119970,NF=71352,xF=68158,LF=12295,PF=70005,RF=120771,MF=11557,GF=42191,UF="flags",jF=70088,XF=68437,HF=66368,$F="pattern_object_p",YF=70730,VF="optional_indexed_access",KF=42785,JF="nullable_type",WF="value",qF=12343,zF=71089,QF=68415,ZF=11694,rd=69887,td=917759,ed=11726,nd="syntax",ud=119964,ad=68497,id=73097,cd=126523,fd="null",od=120084,sd=126601,vd=8454,ld="expressions",Dd=72144,pd="(@[",bd=12448,Ed=121503,Fd=68786,dd="<",md=43443,hd="an identifier",kd=43309,yd=68799,Ad="leadingComments",_d=72969,Cd=100351,wd=42231,Sd="enum_defaulted_member",gd=69839,Bd=94026,Td=70724,Id=12336,Od=73018,Nd=42605,xd="empty",Ld=331416730,Pd=123199,Rd=70479,Md=43123,Gd=43494,Ud=8319,jd="object_type_property_setter",Xd=12591,Hd=12335,$d=125,Yd=92735,Vd="cases",Kd=70199,Jd=183969,Wd=71455,qd="bigint",zd="Division_by_zero",Qd=67071,Zd=12329,rm=43609,tm=120004,em=69414,nm="if",um=126519,am="immediately within another function.",im=55238,cm=12346,fm=126498,om=73031,sm=8504,vm=69940,lm=66256,Dm="@ }@]",pm=73106,bm=72765,Em=118,Fm=11565,dm=120122,mm=74862,hm=68099,km="'",ym="pattern_object_rest_property",Am=-26065557,_m=119,Cm="assignment",wm=42943,Sm=104,gm=8457,Bm="from",Tm=64321,Im=113817,Om=65629,Nm=43765,xm=70378,Lm=42655,Pm=102,Rm=43137,Mm=11502,Gm=";@ ",Um=101,jm="pattern_array_element_pattern",Xm="body",Hm="jsx_member_expression",$m=65547,Ym="jsx_attribute_value",Vm=72967,Km=126550,Jm="jsx_namespaced_name",Wm=254,qm=43807,zm=43738,Qm=126589,Zm=8455,rh=126628,th=11670,eh=120134,nh="conditional",uh=119965,ah=43599,ih=69890,ch=72817,fh=43822,oh=43638,sh=93047,vh=64322,lh="AssignmentPattern",Dh=123190,ph=72383,bh="object_spread_property_type",Eh=113663,Fh=70783,dh=42622,mh=43823,hh=70367,kh="init",yh=71461,Ah=109,_h=66503,Ch="proto",wh=74649,Sh="optional_member",gh=40981,Bh=120654,Th="@ ",Ih="enum_boolean_body",Oh=119361,Nh=73108,xh="export_named_specifier",Lh=123183,Ph="declare_interface",Rh=120539,Mh=70451,Gh=64317,Uh="pattern_object_property_computed_key",jh=12543,Xh="export_named_declaration_specifier",Hh=43359,$h=43967,Yh=113800,Vh=126530,Kh=72713,Jh=72103,Wh=70278,qh="if_consequent_statement",zh=8275,Qh=126496,Zh="try_catch",rk="computed_key",tk="class_",ek=173823,nk="pattern_object_property_identifier_key",uk=71913,ak=8485,ik="arrow_function",ck=68151,fk=126546,ok="enum_boolean_member",sk=94177,vk="delete",lk="blocks",Dk="pattern_array_rest_element_pattern",pk=78894,bk=69881,Ek=66512,Fk=94111,dk="test",mk="string",hk=71467,kk=66463,yk=66335,Ak=43263,_k=73061,Ck=72348,wk=":",Sk="enum_body",gk="function_this_param_type",Bk=77823,Tk="minus",Ik=119980,Ok="private_name",Nk=72263,xk="object_key",Lk="function_param_type",Pk=11718,Rk="as",Mk="delegate",Gk="true",Uk=119213,jk=71232,Xk=67413,Hk=73439,$k=70854,Yk=120628,Vk=43776,Kk=43513,Jk="jsx_attribute_name_namespaced",Wk=71723,qk=11505,zk=120127,Qk=73039,Zk="Map.bal",ry="any",ty=126559,ey=43596,ny="import",uy=70404,ay="jsx_spread_child",iy=67897,cy=8233,fy=119974,oy=68405,sy=66639,vy="attributes",ly="object_internal_slot_property_type",Dy=43225,py=71351,by=71349,Ey=70383,Fy=67643,dy="shorthand",my="for_in_statement",hy=126463,ky=71338,yy=69702,Ay=92767,_y=69445,Cy=65370,wy=73055,Sy=73021,gy=64911,By="pattern_object_property_pattern",Ty=70206,Iy=126579,Oy=72343,Ny=64286,xy=94030,Ly="explicitType",Py=67669,Ry=43866,My="Sys_blocked_io",Gy=71093,Uy=123197,jy="catch",Xy=64466,Hy=70463,$y=65140,Yy=73030,Vy=69404,Ky=66272,Jy="protected",Wy=43631,qy=120571,zy="array_type",Qy=43713,Zy="export_default_declaration",rA="quasi",tA="%S",eA=126515,nA=120485,uA=8525,aA=43519,iA=125263,cA=120745,fA=94178,oA=71229,sA=126588,vA=127,lA=19893,DA=66855,pA="visit_leading_comment",bA=67742,EA=120144,FA=43632,dA="returnType",mA=240,hA=-744106340,kA="-",yA=68911,AA=8469,_A="async",CA=126521,wA=72095,SA=" : file already exists",gA=70725,BA=65039,TA=178205,IA=8449,OA=94179,NA=42774,xA="case",LA=66431,PA="targs",RA="declare_export_declaration",MA="type_identifier",GA=43013,UA=64284,jA=43815,XA="function_body_any",HA=120687,$A="public",YA=70003,VA=68115,KA=125273,JA=65598,WA=72262,qA=43712,zA=126547,QA=70095,ZA=110591,r_="indexed_access",t_="interface",e_=-46,n_="string_literal_type",u_="import_namespace_specifier",a_=120132,i_=68102,c_=11735,f_=70751,o_=119893,s_="bool",v_=1e3,l_="default",D_="",p_="exportKind",b_="trailingComments",E_="^",F_=8348,d_=65594,m_="logical",h_="jsx_member_expression_identifier",k_="cooked",y_="for_of_left_declaration",A_="argument",__=63,C_=72202,w_=12442,S_=120085,g_=43645,B_=70749,T_=42539,I_=126468,O_="Match_failure",N_=68191,x_="src/parser/flow_ast.ml",L_=72280,P_=43572,R_=71102,M_=11647,G_="declare_variable",U_="+",j_=71127,X_=43740,H_=120145,$_=64318,Y_="declare_export_declaration_decl",V_=43755,K_="class_implements",J_="inexact",W_=119172,q_="a",z_=73062,Q_=8493,Z_=65100,rC=70863,tC=65278,eC="function_rest_param_type",nC=-696510241,uC=70066,aC=43714,iC=70480,cC=113788,fC=94207,oC="class_body",sC=126651,vC=119996,lC=70719,DC=68735,pC=43456,bC=43273,EC=119209,FC=67644,dC="boolean_literal_type",mC="catch_clause_pattern",hC=126554,kC=126536,yC=113807,AC=126557,_C=43046,CC="property",wC=123213,SC="for_of_assignment_pattern",gC="if_statement",BC=66421,TC=8505,IC="Literal",OC=100343,NC=71257,xC=42887,LC=115,PC=1255,RC=43574,MC=126566,GC=93823,UC=66719,jC="opaque_type",XC="jsx_attribute",HC="type_annotation_hint",$C=92911,YC=73727,VC=72871,KC="range",JC="jsError",WC=32768,qC=70458,zC=70006,QC=71726,ZC=43492,rw="@]}",tw="(Some ",ew=43345,nw=43231,uw=8477,aw=11359,iw=121461,cw=126564,fw=126514,ow=70080,sw="generic_identifier_type",vw=71738,lw=66811,Dw=8256,pw=43759,bw=65007,Ew="pattern_object_rest_property_pattern",Fw=70319,dw=66461,mw=11719,hw=72271,kw=70461,yw=-48,Aw="export_named_declaration",_w="enum_string_body",Cw=110930,ww=73014,Sw=70440,gw="while",Bw="camlinternalFormat.ml",Tw=43782,Iw=11263,Ow=11358,Nw=1114111,xw=73462,Lw=70750,Pw=70105,Rw="jsx_identifier",Mw=71101,Gw=43014,Uw=11564,jw="typeof_type",Xw=64847,Hw=92995,$w=71226,Yw=71167,Vw=42511,Kw=72712,Jw=121,Ww=43704,qw=12293,zw="object_call_property_type",Qw=64433,Zw="operator",rS=68296,tS="class_decorator",eS=120,nS="for_of_statement_lhs",uS=11623,aS=110927,iS=70708,cS=512,fS=71423,oS=93951,sS=12292,vS="object_type",lS="types",DS=69951,pS=8286,bS=126633,ES=12686,FS=73049,dS=72793,mS="0x",hS=70855,kS=70511,yS=70366,AS=65276,_S="variable_declaration",CS=43203,wS=119981,SS=69814,gS=43887,BS=105,TS=122922,IS=8335,OS=70187,NS=70190,xS=69631,LS="jsx_attribute_name_identifier",PS="source",RS="pattern_object_property_key",MS=70842,GS=65548,US=66175,jS=92766,XS="pattern_assignment_pattern",HS=42998,$S="object_type_property_getter",YS=8305,VS="generator",KS="for",JS=121402,WS=-36,qS=68223,zS=66044,QS=43757,ZS="generic_qualified_identifier_type",rg=122906,tg=43790,eg=11686,ng="jsx_closing_element",ug=69687,ag=72162,ig=66348,cg=43388,fg=72768,og=68351,sg="<2>",vg=70015,lg=64297,Dg=125259,pg=",@ ",bg=42651,Eg=70486,Fg=70281,dg=66426,mg=43347,hg=68149,kg=68111,yg="member_property_identifier",Ag=71450,_g=72254,Cg=43009,wg="member_property",Sg=73458,gg="identifier",Bg=67423,Tg=40980,Ig=66775,Og=110951,Ng="Internal Error: Found object private prop",xg=8276,Lg="super_expression",Pg="jsx_opening_element",Rg="variable_declarator_pattern",Mg="pattern_expression",Gg="jsx_member_expression_object",Ug=68252,jg=-835925911,Xg="import_declaration",Hg=55203,$g="key",Yg=126563,Vg=43702,Kg="spread_property",Jg=863850040,Wg=70106,qg=67592,zg="for_init_declaration",Qg=123214,Zg=68479,rB=43879,tB=65305,eB=43019,nB=123180,uB=69622,aB=8487,iB="specifiers",cB="function_body",fB=43641,oB="Unexpected token `",sB=122904,vB=123135,lB=120093,DB=119162,pB=65023,bB=8521,EB=43642;function FB(r,t){throw[0,r,t]}var dB=[0];function mB(r,t){if("function"==typeof t)return r.fun=t,0;if(t.fun)return r.fun=t.fun,0;for(var e=t.length;e--;)r[e]=t[e];return 0}function hB(r,t,e){var n=String.fromCharCode;if(0==t&&e<=4096&&e==r.length)return n.apply(null,r);for(var u=D_;0=e.l||2==e.t&&u>=e.c.length))e.c=4==r.t?hB(r.c,t,u):0==t&&r.c.length==u?r.c:r.c.substr(t,u),e.t=e.c.length==e.l?0:2;else if(2==e.t&&n==e.c.length)e.c+=4==r.t?hB(r.c,t,u):0==t&&r.c.length==u?r.c:r.c.substr(t,u),e.t=e.c.length==e.l?0:2;else{4!=e.t&&kB(e);var a=r.c,i=e.c;if(4==r.t)if(n<=t)for(var c=0;c=0;c--)i[n+c]=a[t+c];else{var f=Math.min(u,a.length-t);for(c=0;c>=1))return e;t+=t,9==++n&&t.slice(0,1)}}function CB(r){2==r.t?r.c+=_B(r.l-r.c.length,"\0"):r.c=hB(r.c,0,r.c.length),r.t=0}function wB(r){if(r.length<24){for(var t=0;tvA)return!1;return!0}return!/[^\x00-\x7f]/.test(r)}function SB(r){for(var t,e,n,u,a=D_,i=D_,c=0,f=r.length;ccS?(i.substr(0,1),a+=i,i=D_,a+=r.slice(c,o)):i+=r.slice(c,o),o==f)break;c=o}u=1,++c=55295&&u<57344)&&(u=2):(u=3,++c1114111)&&(u=3))))),u<4?(c-=u,i+="\ufffd"):i+=u>CE?String.fromCharCode(55232+(u>>10),56320+(1023&u)):String.fromCharCode(u),i.length>rf&&(i.substr(0,1),a+=i,i=D_)}return a+i}function gB(r,t,e){this.t=r,this.c=t,this.l=e}function BB(r){return new gB(0,r,r.length)}function TB(r){return BB(r)}function IB(r,t){FB(r,TB(t))}function OB(r){IB(dB.Invalid_argument,r)}function NB(){OB(vE)}function xB(r,t,e){if(e&=rb,4!=r.t){if(t==r.c.length)return r.c+=String.fromCharCode(e),t+1==r.l&&(r.t=0),0;kB(r)}return r.c[t]=e,0}function LB(r,t,e){return t>>>0>=r.l&&NB(),xB(r,t,e)}function PB(r,t){switch(6&r.t){default:if(t>=r.c.length)return 0;case 0:return r.c.charCodeAt(t);case 4:return r.c[t]}}function RB(r,t){if(r.fun)return RB(r.fun,t);if("function"!=typeof r)return r;var e=0|r.length;if(0===e)return r.apply(null,t);var n=e-(0|t.length)|0;return 0==n?r.apply(null,t):n<0?RB(r.apply(null,t.slice(0,e)),t.slice(e)):function(){for(var e=0==arguments.length?1:arguments.length,n=new Array(t.length+e),u=0;u>>0>=r.length-1&&MB(),r}function UB(r){return 0!=(6&r.t)&&CB(r),r.c}gB.prototype.toString=function(){switch(this.t){case 9:return this.c;default:CB(this);case 0:if(wB(this.c))return this.t=9,this.c;this.t=8;case 8:return this.c}},gB.prototype.toUtf16=function(){var r=this.toString();return 9==this.t?r:SB(r)},gB.prototype.slice=function(){var r=4==this.t?this.c.slice():this.c;return new gB(this.t,r,this.l)};var jB=Math.log2&&1020==Math.log2(11235582092889474e291);function XB(t){var e=new r.Float32Array(1);return e[0]=t,0|new r.Int32Array(e.buffer)[0]}var HB=Math.pow(2,-24);function $B(r){throw r}function YB(){$B(dB.Division_by_zero)}function VB(r,t,e){this.lo=r&kf,this.mi=t&kf,this.hi=e&CE}function KB(r,t,e){return new VB(r,t,e)}function JB(r){if(!isFinite(r))return isNaN(r)?KB(1,0,32752):KB(0,0,r>0?32752:65520);var t=0==r&&1/r==-1/0?WC:r>=0?0:WC;t&&(r=-r);var e=function(r){if(jB)return Math.floor(Math.log2(r));var t=0;if(0==r)return-1/0;if(r>=1)for(;r>=2;)r/=2,t++;else for(;r<1;)r*=2,t--;return t}(r)+1023;e<=0?(e=0,r/=Math.pow(2,-1026)):((r/=Math.pow(2,e-1027))<16&&(r*=2,e-=1),0==e&&(r/=2));var n=Math.pow(2,24),u=0|r,a=0|(r=(r-u)*n);return KB(0|(r=(r-a)*n),a,u=15&u|t|e<<4)}function WB(r){return r.toArray()}function qB(r,t,e){if(r.write(32,t.dims.length),r.write(32,t.kind|t.layout<<8),t.caml_custom==pE)for(var n=0;n>4;if(2047==u)return 0==(t|e|15&n)?n&WC?-1/0:1/0:NaN;var a=Math.pow(2,-24),i=(t*a+e)*a+(15&n);return u>0?(i+=16,i*=Math.pow(2,u-1027)):i*=Math.pow(2,-1026),n&WC&&(i=-i),i}function tT(r){for(var t=r.length,e=1,n=0;nr.hi?1:this.hir.mi?1:this.mir.lo?1:this.loe?1:tr.mi?1:this.mir.lo?1:this.lo>24);return new VB(r,t,-this.hi+(t>>24))},VB.prototype.add=function(r){var t=this.lo+r.lo,e=this.mi+r.mi+(t>>24);return new VB(t,e,this.hi+r.hi+(e>>24))},VB.prototype.sub=function(r){var t=this.lo-r.lo,e=this.mi-r.mi+(t>>24);return new VB(t,e,this.hi-r.hi+(e>>24))},VB.prototype.mul=function(r){var t=this.lo*r.lo,e=(t*HB|0)+this.mi*r.lo+this.lo*r.mi;return new VB(t,e,(e*HB|0)+this.hi*r.lo+this.mi*r.mi+this.lo*r.hi)},VB.prototype.isZero=function(){return 0==(this.lo|this.mi|this.hi)},VB.prototype.isNeg=function(){return this.hi<<16<0},VB.prototype.and=function(r){return new VB(this.lo&r.lo,this.mi&r.mi,this.hi&r.hi)},VB.prototype.or=function(r){return new VB(this.lo|r.lo,this.mi|r.mi,this.hi|r.hi)},VB.prototype.xor=function(r){return new VB(this.lo^r.lo,this.mi^r.mi,this.hi^r.hi)},VB.prototype.shift_left=function(r){return 0==(r&=63)?this:r<24?new VB(this.lo<>24-r,this.hi<>24-r):r<48?new VB(0,this.lo<>48-r):new VB(0,0,this.lo<>r|this.mi<<24-r,this.mi>>r|this.hi<<24-r,this.hi>>r):r<48?new VB(this.mi>>r-24|this.hi<<48-r,this.hi>>r-24,0):new VB(this.hi>>r-48,0,0)},VB.prototype.shift_right=function(r){if(0==(r&=63))return this;var t=this.hi<<16>>16;if(r<24)return new VB(this.lo>>r|this.mi<<24-r,this.mi>>r|t<<24-r,this.hi<<16>>r>>>16);var e=this.hi<<16>>31;return r<48?new VB(this.mi>>r-24|this.hi<<48-r,this.hi<<16>>r-24>>16,e&CE):new VB(this.hi<<16>>r-32,e,e)},VB.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23,this.mi=(this.mi<<1|this.lo>>23)&kf,this.lo=this.lo<<1&kf},VB.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&kf,this.mi=(this.mi>>>1|this.hi<<23)&kf,this.hi=this.hi>>>1},VB.prototype.udivmod=function(r){for(var t=0,e=this.copy(),n=r.copy(),u=new VB(0,0,0);e.ucompare(n)>0;)t++,n.lsl1();for(;t>=0;)t--,u.lsl1(),e.ucompare(n)>=0&&(u.lo++,e=e.sub(n)),n.lsr1();return{quotient:u,modulus:e}},VB.prototype.div=function(r){var t=this;r.isZero()&&YB();var e=t.hi^r.hi;t.hi&WC&&(t=t.neg()),r.hi&WC&&(r=r.neg());var n=t.udivmod(r).quotient;return e&WC&&(n=n.neg()),n},VB.prototype.mod=function(r){var t=this;r.isZero()&&YB();var e=t.hi;t.hi&WC&&(t=t.neg()),r.hi&WC&&(r=r.neg());var n=t.udivmod(r).modulus;return e&WC&&(n=n.neg()),n},VB.prototype.toInt=function(){return this.lo|this.mi<<24},VB.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo},VB.prototype.toArray=function(){return[this.hi>>8,this.hi&rb,this.mi>>16,this.mi>>8&rb,this.mi&rb,this.lo>>16,this.lo>>8&rb,this.lo&rb]},VB.prototype.lo32=function(){return this.lo|(this.mi&rb)<<24},VB.prototype.hi32=function(){return this.mi>>>8&CE|this.hi<<16};function uT(r,t,e,n){this.kind=r,this.layout=t,this.dims=e,this.data=n}function aT(r,t,e,n){this.kind=r,this.layout=t,this.dims=e,this.data=n}function iT(r,t,e,n){var u=zB(r);return tT(e)*u!=n.length&&OB("length doesn't match dims"),0==t&&1==e.length&&1==u?new aT(r,t,e,n):new uT(r,t,e,n)}function cT(r){IB(dB.Failure,r)}function fT(t,e,n){var u=t.read32s();(u<0||u>16)&&cT("input_value: wrong number of bigarray dimensions");var a=t.read32s(),i=a&rb,c=a>>8&1,f=[];if(n==pE)for(var o=0;o>>17,461845907))<<13|r>>>19)+(r<<2)|0)-430675100|0}function lT(r,t){return function(r,t){return r=vT(r,nT(t)),vT(r,eT(t))}(r,JB(t))}function DT(r){var t=tT(r.dims),e=0;switch(r.kind){case 2:case 3:case 12:t>tn&&(t=tn);var n=0,u=0;for(u=0;u+4<=r.data.length;u+=4)e=vT(e,n=r.data[u+0]|r.data[u+1]<<8|r.data[u+2]<<16|r.data[u+3]<<24);switch(n=0,3&t){case 3:n=r.data[u+2]<<16;case 2:n|=r.data[u+1]<<8;case 1:e=vT(e,n|=r.data[u+0])}break;case 4:case 5:t>B&&(t=B);n=0,u=0;for(u=0;u+2<=r.data.length;u+=2)e=vT(e,n=r.data[u+0]|r.data[u+1]<<16);0!=(1&t)&&(e=vT(e,r.data[u]));break;case 6:t>64&&(t=64);for(u=0;u64&&(t=64);for(u=0;u32&&(t=32),t*=2;for(u=0;u64&&(t=64);for(u=0;u32&&(t=32);for(u=0;u=this.dims[e])&&MB(),t=t*this.dims[e]+r[e];else for(e=this.dims.length-1;e>=0;e--)(r[e]<1||r[e]>this.dims[e])&&MB(),t=t*this.dims[e]+(r[e]-1);return t},uT.prototype.get=function(r){switch(this.kind){case 7:return function(r,t){return new VB(r&kf,r>>>24&rb|(t&CE)<<8,t>>>16&CE)}(this.data[2*r+0],this.data[2*r+1]);case 10:case 11:var t=this.data[2*r+0],e=this.data[2*r+1];return[Wm,t,e];default:return this.data[r]}},uT.prototype.set=function(r,t){switch(this.kind){case 7:this.data[2*r+0]=nT(t),this.data[2*r+1]=eT(t);break;case 10:case 11:this.data[2*r+0]=t[1],this.data[2*r+1]=t[2];break;default:this.data[r]=t}return 0},uT.prototype.fill=function(r){switch(this.kind){case 7:var t=nT(r),e=eT(r);if(t==e)this.data.fill(t);else for(var n=0;na)return 1;if(u!=a){if(!t)return NaN;if(u==u)return 1;if(a==a)return-1}}break;case 7:for(n=0;nr.data[n+1])return 1;if(this.data[n]>>>0>>0)return-1;if(this.data[n]>>>0>r.data[n]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(n=0;nr.data[n])return 1}}return 0},aT.prototype=new uT,aT.prototype.offset=function(r){return"number"!=typeof r&&(r instanceof Array&&1==r.length?r=r[0]:OB("Ml_Bigarray_c_1_1.offset")),(r<0||r>=this.dims[0])&&MB(),r},aT.prototype.get=function(r){return this.data[r]},aT.prototype.set=function(r,t){return this.data[r]=t,0},aT.prototype.fill=function(r){return this.data.fill(r),0};var pT={_j:{deserialize:function(r,t){for(var e=new Array(8),n=0;n<8;n++)e[n]=r.read8u();return t[0]=8,ZB(e)},serialize:function(r,t,e){for(var n=WB(t),u=0;u<8;u++)r.write(8,n[u]);e[0]=8,e[1]=8},fixed_length:8,compare:function(r,t,e){return r.compare(t)},hash:function(r){return r.lo32()^r.hi32()}},_i:{deserialize:function(r,t){return t[0]=4,r.read32s()},fixed_length:4},_n:{deserialize:function(r,t){switch(r.read8u()){case 1:return t[0]=4,r.read32s();case 2:cT("input_value: native integer value too large");default:cT("input_value: ill-formed native integer")}},fixed_length:4},_bigarray:{deserialize:function(r,t){return fT(r,t,sr)},serialize:qB,compare:oT,hash:DT},_bigarr02:{deserialize:function(r,t){return fT(r,t,pE)},serialize:qB,compare:oT,hash:DT}};function bT(r){return pT[r.caml_custom]&&pT[r.caml_custom].compare}function ET(r,t,e,n){var u=bT(t);if(u){var a=e>0?u(t,r,n):u(r,t,n);if(n&&a!=a)return e;if(+a!=+a)return+a;if(0!=(0|a))return 0|a}return e}function FT(r){return r instanceof gB}function dT(r){return FT(r)}function mT(r){if("number"==typeof r)return v_;if(FT(r))return cF;if(dT(r))return 1252;if(r instanceof Array&&r[0]===r[0]>>>0&&r[0]<=Ps){var t=0|r[0];return t==Wm?0:t}return r instanceof String||"string"==typeof r?12520:r instanceof Number?v_:r&&r.caml_custom?PC:r&&r.compare?1256:"function"==typeof r?1247:"symbol"==typeof r?1251:1001}function hT(r,t){return rt.c?1:0}function yT(r,t){return kT(r,t)}function AT(r,t,e){for(var n=[];;){if(!e||r!==t){var u=mT(r);if(250==u){r=r[1];continue}var a=mT(t);if(250==a){t=t[1];continue}if(u!==a)return u==v_?a==PC?ET(r,t,-1,e):-1:a==v_?u==PC?ET(t,r,1,e):1:ut)return 1;if(r!=t){if(!e)return NaN;if(r==r)return 1;if(t==t)return-1}break;case 1001:if(rt)return 1;if(r!=t){if(!e)return NaN;if(r==r)return 1;if(t==t)return-1}break;case 1251:if(r!==t)return e?1:NaN;break;case 1252:if((r=UB(r))!==(t=UB(t))){if(rt)return 1}break;case 12520:if((r=r.toString())!==(t=t.toString())){if(rt)return 1}break;case 246:case 254:default:if(r.length!=t.length)return r.length1&&n.push(r,t,1)}}if(0==n.length)return 0;var f=n.pop();t=n.pop(),f+1<(r=n.pop()).length&&n.push(r,t,f+1),r=r[f],t=t[f]}}function _T(r,t){return AT(r,t,!0)}function CT(r){return r<0&&OB("Bytes.create"),new gB(r?2:9,D_,r)}function wT(r,t){return+(0==AT(r,t,!1))}function ST(r){var t;if(t=+(r=UB(r)),r.length>0&&t==t)return t;if(t=+(r=r.replace(/_/g,D_)),r.length>0&&t==t||/^[+-]?nan$/i.test(r))return t;var e=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)p([+-]?[0-9]+)/i.exec(r);if(e){var n=e[3].replace(/0+$/,D_),u=parseInt(e[1]+e[2]+n,16),a=(0|e[4])-4*n.length;return t=u*Math.pow(2,a)}return/^\+?inf(inity)?$/i.test(r)?1/0:/^-inf(inity)?$/i.test(r)?-1/0:void cT("float_of_string")}function gT(r){var t=(r=UB(r)).length;t>31&&OB("format_int: format too long");for(var e={justify:U_,signstyle:kA,filler:ZD,alternate:!1,base:0,signedconv:!1,width:0,uppercase:!1,sign:1,prec:-1,conv:"f"},n=0;n=0&&u<=9;)e.width=10*e.width+u,n++;n--;break;case".":for(e.prec=0,n++;(u=r.charCodeAt(n)-48)>=0&&u<=9;)e.prec=10*e.prec+u,n++;n--;case"d":case"i":e.signedconv=!0;case"u":e.base=10;break;case"x":e.base=16;break;case"X":e.base=16,e.uppercase=!0;break;case"o":e.base=8;break;case"e":case"f":case"g":e.signedconv=!0,e.conv=u;break;case"E":case"F":case"G":e.signedconv=!0,e.uppercase=!0,e.conv=u.toLowerCase()}}return e}function BT(r,t){r.uppercase&&(t=t.toUpperCase());var e=t.length;r.signedconv&&(r.sign<0||r.signstyle!=kA)&&e++,r.alternate&&(8==r.base&&(e+=1),16==r.base&&(e+=2));var n=D_;if(r.justify==U_&&r.filler==ZD)for(var u=e;u20?(e-=20,r/=Math.pow(10,e),r+=new Array(e+1).join(Dc),t>0&&(r=r+pF+new Array(t+1).join(Dc)),r):r.toFixed(t)}(t,n);break;case"g":n=n||1;var i=(u=t.toExponential(n-1)).indexOf("e"),c=+u.slice(i+1);if(c<-4||t>=1e21||t.toFixed(0).length>n){for(a=i-1;u.charAt(a)==Dc;)a--;u.charAt(a)==pF&&a--,a=(u=u.slice(0,a+1)+u.slice(i)).length,"e"==u.charAt(a-3)&&(u=u.slice(0,a-1)+Dc+u.slice(a-1));break}var f=n;if(c<0)f-=c+1,u=t.toFixed(f);else for(;(u=t.toFixed(f)).length>n+1;)f--;if(f){for(a=u.length-1;u.charAt(a)==Dc;)a--;u.charAt(a)==pF&&a--,u=u.slice(0,a+1)}}else u="inf",e.filler=ZD;return BT(e,u)}function IT(r,t){if(UB(r)==Vn)return TB(D_+t);var e=gT(r);t<0&&(e.signedconv?(e.sign=-1,t=-t):t>>>=0);var n=t.toString(e.base);if(e.prec>=0){e.filler=ZD;var u=e.prec-n.length;u>0&&(n=_B(u,Dc)+n)}return BT(e,n)}var OT=0;function NT(){return OT++}var xT=[];function LT(r,t,e){var n=r[1],u=xT[e];if(null===u)for(var a=xT.length;a>1|1)+1]?f=i-2:c=i;return xT[e]=c+1,t==n[c+1]?n[c]:0}function PT(r){var t=9;return wB(r)||(t=8,r=function(r){for(var t,e,n=D_,u=n,a=0,i=r.length;acS?(u.substr(0,1),n+=u,u=D_,n+=r.slice(a,c)):u+=r.slice(a,c),c==i)break;a=c}t<2048?(u+=String.fromCharCode(192|t>>6),u+=String.fromCharCode(Va|t&__)):t<55296||t>=57343?u+=String.fromCharCode(224|t>>12,Va|t>>6&__,Va|t&__):t>=56319||a+1==i||(e=r.charCodeAt(a+1))<56320||e>57343?u+="\xef\xbf\xbd":(a++,t=(t<<10)+e-56613888,u+=String.fromCharCode(240|t>>18,Va|t>>12&__,Va|t>>6&__,Va|t&__)),u.length>rf&&(u.substr(0,1),n+=u,u=D_)}return n+u}(r)),new gB(t,r,r.length)}function RT(r){return PT(r)}function MT(r){return+r.isZero()}function GT(r){return new VB(r&kf,r>>24&kf,r>>31&CE)}function UT(r){return r.toInt()}function jT(r){return r.neg()}function XT(r){return r.l}function HT(r){return XT(r)}function $T(r,t){return PB(r,t)}function YT(r,t){return r.add(t)}function VT(r,t){return r.mul(t)}function KT(r,t){return r.ucompare(t)<0}function JT(r){var t=0,e=HT(r),n=10,u=1;if(e>0)switch($T(r,t)){case 45:t++,u=-1;break;case 43:t++,u=1}if(t+1=48&&r<=57?r-48:r>=65&&r<=90?r-55:r>=97&&r<=S?r-87:-1}function qT(r){var t=JT(r),e=t[0],n=t[1],u=t[2],a=GT(u),i=new VB(kf,268435455,CE).udivmod(a).quotient,c=$T(r,e),f=WT(c);(f<0||f>=u)&&cT(rl);for(var o=GT(f);;)if(95!=(c=$T(r,++e))){if((f=WT(c))<0||f>=u)break;KT(i,o)&&cT(rl),f=GT(f),KT(o=YT(VT(a,o),f),f)&&cT(rl)}return e!=HT(r)&&cT(rl),10==u&&KT(new VB(0,0,WC),o)&&cT(rl),n<0&&(o=jT(o)),o}function zT(r){return r.toFloat()}function QT(r){var t=JT(r),e=t[0],n=t[1],u=t[2],a=HT(r),i=e=u)&&cT(rl);var f=c;for(e++;e=u)break;(f=u*f+c)>4294967295&&cT(rl)}return e!=a&&cT(rl),f*=n,10==u&&(0|f)!=f&&cT(rl),0|f}function ZT(r){return r.slice(1)}function rI(r){return!!r}function tI(r){return r.toUtf16()}function eI(r){for(var t={},e=1;e=u){var a=CT(r+n),i=this.data;this.data=a,yB(i,0,this.data,0,u)}return AB(t,e,this.data,r,n),0},sI.prototype.read=function(r,t,e,n){return this.length(),yB(this.data,r,t,e,n),0},sI.prototype.read_one=function(r){return function(r,t){return t>>>0>=r.l&&NB(),PB(r,t)}(this.data,r)},sI.prototype.close=function(){},sI.prototype.constructor=sI,vI.prototype.nm=function(r){return this.root+r},vI.prototype.lookup=function(r){if(!this.content[r]&&this.lookupFun){var t=this.lookupFun(TB(this.root),TB(r));0!==t&&(this.content[r]=new sI(t[1]))}},vI.prototype.exists=function(r){if(r==D_)return 1;var t=new RegExp(E_+(r+ds));for(var e in this.content)if(e.match(t))return 1;return this.lookup(r),this.content[r]?1:0},vI.prototype.readdir=function(r){var t=new RegExp(E_+(r==D_?D_:r+ds)+Wb),e={},n=[];for(var u in this.content){var a=u.match(t);a&&!e[a[1]]&&(e[a[1]]=!0,n.push(a[1]))}return n},vI.prototype.is_dir=function(r){var t=new RegExp(E_+(r==D_?D_:r+ds)+Wb);for(var e in this.content){if(e.match(t))return 1}return 0},vI.prototype.unlink=function(r){var t=!!this.content[r];return delete this.content[r],t},vI.prototype.open=function(r,t){if(t.rdonly&&t.wronly&&aI(this.nm(r)+" : flags Open_rdonly and Open_wronly are not compatible"),t.text&&t.binary&&aI(this.nm(r)+" : flags Open_text and Open_binary are not compatible"),this.lookup(r),this.content[r]){this.is_dir(r)&&aI(this.nm(r)+" : is a directory"),t.create&&t.excl&&aI(this.nm(r)+SA);var e=this.content[r];return t.truncate&&e.truncate(),e}if(t.create)return this.content[r]=new sI(CT(0)),this.content[r];!function(r){aI((r=UB(r))+": No such file or directory")}(this.nm(r))},vI.prototype.register=function(r,t){if(this.content[r]&&aI(this.nm(r)+SA),FT(t)&&(this.content[r]=new sI(t)),dT(t))this.content[r]=new sI(t);else if(t instanceof Array)this.content[r]=new sI(function(r){return new gB(4,r,r.length)}(t));else if("string"==typeof t)this.content[r]=new sI(BB(t));else if(t.toString){var e=RT(t.toString());this.content[r]=new sI(e)}else aI(this.nm(r)+" : registering file with invalid content type")},vI.prototype.constructor=vI,lI.prototype=new oI,lI.prototype.truncate=function(r){try{this.fs.ftruncateSync(this.fd,0|r)}catch(r){aI(r.toString())}},lI.prototype.length=function(){try{return this.fs.fstatSync(this.fd).size}catch(r){aI(r.toString())}},lI.prototype.write=function(t,e,n,u){var a=function(r){for(var t=HT(r),e=new Array(t),n=0;ndB.fd_last_idx)&&(dB.fd_last_idx=r),r}function FI(r){var t=dB.fds[r];t.flags.rdonly&&aI("fd "+r+" is readonly");var e={file:t.file,offset:t.offset,fd:r,opened:!0,out:!0,buffer:D_};return iI[e.fd]=e,e.fd}function dI(r,t,e,n){return function(r,t,e,n){var u,a=iI[r];a.opened||aI("Cannot output to a closed channel"),0==e&&XT(t)==n?u=t:yB(t,e,u=CT(n),0,n);var i=UB(u),c=i.lastIndexOf("\n");return c<0?a.buffer+=i:(a.buffer+=i.substr(0,c+1),cI(r),a.buffer+=i.substr(c+1)),0}(r,t,e,n)}function mI(r,t){return+(0!=AT(r,t,!1))}function hI(r,t){var e=new Array(t+1);e[0]=r;for(var n=1;n<=t;n++)e[n]=0;return e}function kI(r){return r instanceof Array&&r[0]==r[0]>>>0?r[0]:FT(r)||dT(r)?cF:r instanceof Function||"function"==typeof r?247:r&&r.caml_custom?Ps:v_}function yI(t,e,n){n&&r.toplevelReloc&&(t=r.toplevelReloc(n)),dB[t+1]=e,n&&(dB[n]=e)}void 0!==r.process&&void 0!==r.process.versions&&void 0!==r.process.versions.node&&"browser"!==r.process.platform?bI.push({path:pI,device:new DI(pI)}):bI.push({path:pI,device:new vI(pI)}),bI.push({path:pI+AD,device:new vI(pI+AD)}),EI(0,(function(r,t){var e=iI[r],n=TB(t),u=HT(n);return e.file.write(e.offset,n,0,u),e.offset+=u,0}),new sI(CT(0))),EI(1,(function(t){t=SB(t);var e=r;if(e.process&&e.process.stdout&&e.process.stdout.write)e.process.stdout.write(t);else{10==t.charCodeAt(t.length-1)&&(t=t.substr(0,t.length-1));var n=e.console;n&&n.log&&n.log(t)}}),new sI(CT(0))),EI(2,(function(t){t=SB(t);var e=r;if(e.process&&e.process.stdout&&e.process.stdout.write)e.process.stderr.write(t);else{10==t.charCodeAt(t.length-1)&&(t=t.substr(0,t.length-1));var n=e.console;n&&n.error&&n.error(t)}}),new sI(CT(0)));var AI={};function _I(r,t){return function(r,t){return r===t?1:(6&r.t&&CB(r),6&t.t&&CB(t),r.c==t.c?1:0)}(r,t)}function CI(r,t){return t>>>0>=HT(r)&&OB(vE),$T(r,t)}function wI(r,t){return 1-_I(r,t)}function SI(t){var e=r,n=tI(t);return e.process&&e.process.env&&null!=e.process.env[n]?RT(e.process.env[n]):r.jsoo_static_env&&r.jsoo_static_env[n]?RT(r.jsoo_static_env[n]):void $B(dB.Not_found)}function gI(r){for(;r&&r.joo_tramp;)r=r.joo_tramp.apply(null,r.joo_args);return r}function BI(r,t){return{joo_tramp:r,joo_args:t}}function TI(r){return AI[r]}function II(t){return t instanceof Array?t:r.RangeError&&t instanceof r.RangeError&&t.message&&t.message.match(/maximum call stack/i)||r.InternalError&&t instanceof r.InternalError&&t.message&&t.message.match(/too much recursion/i)?dB.Stack_overflow:t instanceof r.Error&&TI(JC)?[0,TI(JC),t]:[0,dB.Failure,RT(String(t))]}function OI(r,t){return 1==r.length?r(t):RB(r,[t])}function NI(r,t,e){return 2==r.length?r(t,e):RB(r,[t,e])}function xI(r,t,e,n){return 3==r.length?r(t,e,n):RB(r,[t,e,n])}function LI(r,t,e,n,u){return 4==r.length?r(t,e,n,u):RB(r,[t,e,n,u])}function PI(r,t,e,n,u,a){return 5==r.length?r(t,e,n,u,a):RB(r,[t,e,n,u,a])}var RI=[_c,TB(uE),-1],MI=[_c,TB(xv),-2],GI=[_c,TB(qs),-3],UI=[_c,TB(Ti),-4],jI=[_c,TB(ha),-7],XI=[_c,TB(O_),-8],HI=[_c,TB(pa),-9],$I=[_c,TB(Ie),-11],YI=[_c,TB(ep),-12],VI=[0,ul],KI=[0,[11,TB('File "'),[2,0,[11,TB('", line '),[4,0,0,0,[11,TB(", characters "),[4,0,0,0,[12,45,[4,0,0,0,[11,TB(": "),[2,0,0]]]]]]]]]],TB('File "%s", line %d, characters %d-%d: %s')],JI=[0,0,[0,0,0],[0,0,0]],WI=[0,0],qI=TB("\x01\x02"),zI=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01"),QI=[0,0,0,0,0,0,0,0,1,0],ZI=[0,TB(us),TB(pp),TB(zy),TB(ik),TB(Cm),TB(su),TB(Lv),TB(vt),TB(Mr),TB(y),TB(dC),TB(Yc),TB(he),TB(fc),TB(Zp),TB(qi),TB(P),TB(ue),TB(mC),TB(tk),TB(oC),TB(tS),TB(pn),TB(ar),TB(Vt),TB(K_),TB(Qn),TB(Pf),TB(wi),TB(dE),TB(Gt),TB(fb),TB(da),TB(rk),TB(nh),TB(XD),TB(Wi),TB(Ni),TB(RA),TB(Y_),TB(Mu),TB(Ph),TB(hp),TB(AE),TB(hf),TB(G_),TB(vb),TB(xd),TB(Sk),TB(Ih),TB(ok),TB(rv),TB(Sd),TB(Pn),TB(xe),TB(_w),TB(is),TB(He),TB(yp),TB(Zy),TB(Zr),TB(Aw),TB(Xh),TB(xh),TB(ye),TB(to),TB(El),TB(fe),TB(Un),TB(my),TB(ms),TB(zg),TB(SC),TB(y_),TB($c),TB(nS),TB(g),TB(bE),TB(Rp),TB(cB),TB(XA),TB(cf),TB(Eo),TB(mn),TB(er),TB(ci),TB(Lk),TB(SF),TB(pf),TB(eC),TB(ut),TB(gk),TB(Bc),TB(VS),TB(sw),TB(ZS),TB(Au),TB(gg),TB(kt),TB(qh),TB(gC),TB(ny),TB(Xg),TB(Yp),TB(Dv),TB(u_),TB(zf),TB(r_),TB(t_),TB(Hr),TB(Ob),TB(cl),TB(XC),TB(An),TB(LS),TB(Jk),TB(Ym),TB(Sa),TB(Rr),TB(br),TB(So),TB(ng),TB(TE),TB(mF),TB(zl),TB(lo),TB(ip),TB(No),TB(U),TB(Rw),TB(Hm),TB(h_),TB(Gg),TB(Jm),TB(nc),TB(Pg),TB($o),TB(ay),TB(zo),TB(ii),TB(Bv),TB(m_),TB(ev),TB(jv),TB(wg),TB(e),TB(yg),TB(xt),TB(mc),TB(JF),TB(qo),TB(oe),TB(zw),TB(ju),TB(ly),TB(xk),TB(ai),TB(pu),TB(fr),TB(fn),TB(mi),TB(hD),TB(bh),TB(vS),TB($S),TB(jd),TB(jC),TB(Xt),TB(VF),TB(Sh),TB(Kp),TB(Ba),TB(wa),TB(jm),TB(Et),TB(Dk),TB(XS),TB(Mg),TB(qu),TB(yu),TB($F),TB(sn),TB(Uh),TB(nk),TB(RS),TB($v),TB(By),TB(ym),TB(Ew),TB(bl),TB(c),TB(Ok),TB(wc),TB(Qe),TB(Ji),TB(Gn),TB(Kg),TB(Nt),TB(_v),TB(xf),TB(n_),TB(Lg),TB(jE),TB(sb),TB(nd),TB(Ea),TB(Hv),TB(Qb),TB(ln),TB(BE),TB(ur),TB(Ol),TB(Zh),TB(bD),TB(gc),TB(Uv),TB(Fv),TB(HC),TB(bF),TB(Jn),TB(MA),TB(pe),TB(Mo),TB(jw),TB(HE),TB(_E),TB(Ln),TB(_S),TB(Di),TB(Rg),TB(Xp),TB(wE),TB($l),TB(Av),TB(Eb)],rO=[0,TB("first_leading"),TB("last_trailing")],tO=[0,0,0],eO=[0,0];yI(11,YI,ep),yI(10,$I,Ie),yI(9,[_c,TB(My),-10],My),yI(8,HI,pa),yI(7,XI,O_),yI(6,jI,ha),yI(5,[_c,TB(zd),-6],zd),yI(4,[_c,TB(Ys),-5],Ys),yI(3,UI,Ti),yI(2,GI,qs),yI(1,MI,xv),yI(0,RI,uE);var nO=TB("output_substring"),uO=TB("%.12g"),aO=TB(pF),iO=TB(Gk),cO=TB(Xa),fO=TB("\\\\"),oO=TB("\\'"),sO=TB("\\b"),vO=TB("\\t"),lO=TB("\\n"),DO=TB("\\r"),pO=TB("Char.chr"),bO=TB(" is not an Unicode scalar value"),EO=TB("%X"),FO=TB("List.iter2"),dO=[0,TB("list.ml"),282,11],mO=TB("tl"),hO=TB("hd"),kO=TB("String.blit / Bytes.blit_string"),yO=TB("Bytes.blit"),AO=TB("String.sub / Bytes.sub"),_O=TB("Array.blit"),CO=TB("Array.sub"),wO=TB("Array.init"),SO=TB("Set.remove_min_elt"),gO=[0,0,0,0],BO=[0,0,0],TO=[0,TB("set.ml"),547,18],IO=TB(Ep),OO=TB(Ep),NO=TB(Ep),xO=TB(Ep),LO=TB("Map.remove_min_elt"),PO=[0,0,0,0],RO=[0,TB("map.ml"),398,10],MO=[0,0,0],GO=TB(Zk),UO=TB(Zk),jO=TB(Zk),XO=TB(Zk),HO=TB("Stdlib.Queue.Empty"),$O=TB("Buffer.add_substring/add_subbytes"),YO=TB("Buffer.add: cannot grow buffer"),VO=[0,TB(ru),93,2],KO=[0,TB(ru),94,2],JO=TB("Buffer.sub"),WO=TB("%c"),qO=TB("%s"),zO=TB("%i"),QO=TB("%li"),ZO=TB("%ni"),rN=TB("%Li"),tN=TB("%f"),eN=TB(Nb),nN=TB("%{"),uN=TB("%}"),aN=TB("%("),iN=TB("%)"),cN=TB(kD),fN=TB("%t"),oN=TB("%?"),sN=TB("%r"),vN=TB("%_r"),lN=[0,TB(Bw),847,23],DN=[0,TB(Bw),811,21],pN=[0,TB(Bw),812,21],bN=[0,TB(Bw),815,21],EN=[0,TB(Bw),816,21],FN=[0,TB(Bw),819,19],dN=[0,TB(Bw),820,19],mN=[0,TB(Bw),823,22],hN=[0,TB(Bw),824,22],kN=[0,TB(Bw),828,30],yN=[0,TB(Bw),829,30],AN=[0,TB(Bw),833,26],_N=[0,TB(Bw),834,26],CN=[0,TB(Bw),843,28],wN=[0,TB(Bw),844,28],SN=[0,TB(Bw),848,23],gN=TB("%u"),BN=[0,TB(Bw),1555,4],TN=TB("Printf: bad conversion %["),IN=[0,TB(Bw),1623,39],ON=[0,TB(Bw),1646,31],NN=[0,TB(Bw),1647,31],xN=TB("Printf: bad conversion %_"),LN=TB("@{"),PN=TB("@["),RN=[0,[11,TB("invalid box description "),[3,0,0]],TB("invalid box description %S")],MN=TB(D_),GN=[0,0,4],UN=TB(D_),jN=TB("b"),XN=TB("h"),HN=TB("hov"),$N=TB("hv"),YN=TB("v"),VN=TB(ps),KN=TB(pF),JN=TB("neg_infinity"),WN=TB(lt),qN=TB("%+nd"),zN=TB("% nd"),QN=TB("%+ni"),ZN=TB("% ni"),rx=TB("%nx"),tx=TB("%#nx"),ex=TB("%nX"),nx=TB("%#nX"),ux=TB("%no"),ax=TB("%#no"),ix=TB("%nd"),cx=TB("%ni"),fx=TB("%nu"),ox=TB("%+ld"),sx=TB("% ld"),vx=TB("%+li"),lx=TB("% li"),Dx=TB("%lx"),px=TB("%#lx"),bx=TB("%lX"),Ex=TB("%#lX"),Fx=TB("%lo"),dx=TB("%#lo"),mx=TB("%ld"),hx=TB("%li"),kx=TB("%lu"),yx=TB("%+Ld"),Ax=TB("% Ld"),_x=TB("%+Li"),Cx=TB("% Li"),wx=TB("%Lx"),Sx=TB("%#Lx"),gx=TB("%LX"),Bx=TB("%#LX"),Tx=TB("%Lo"),Ix=TB("%#Lo"),Ox=TB("%Ld"),Nx=TB("%Li"),xx=TB("%Lu"),Lx=TB("%+d"),Px=TB("% d"),Rx=TB("%+i"),Mx=TB("% i"),Gx=TB("%x"),Ux=TB("%#x"),jx=TB("%X"),Xx=TB("%#X"),Hx=TB("%o"),$x=TB("%#o"),Yx=TB(Vn),Vx=TB("%i"),Kx=TB("%u"),Jx=TB(Cl),Wx=TB("@}"),qx=TB("@?"),zx=TB("@\n"),Qx=TB("@."),Zx=TB("@@"),rL=TB("@%"),tL=TB("@"),eL=TB("CamlinternalFormat.Type_mismatch"),nL=TB(D_),uL=[0,[11,TB(", "),[2,0,[2,0,0]]],TB(", %s%s")],aL=TB("Out of memory"),iL=TB("Stack overflow"),cL=TB("Pattern matching failed"),fL=TB("Assertion failed"),oL=TB("Undefined recursive module"),sL=[0,[12,40,[2,0,[2,0,[12,41,0]]]],TB("(%s%s)")],vL=TB(D_),lL=TB(D_),DL=[0,[12,40,[2,0,[12,41,0]]],TB("(%s)")],pL=[0,[4,0,0,0,0],TB(Vn)],bL=[0,[3,0,0],TB(tA)],EL=TB(li),FL=[3,0,3],dL=TB(pF),mL=TB(L),hL=TB("Flow_ast.Function.BodyBlock@ ")],wP=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],SP=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],gP=[0,[17,0,[12,41,0]],TB(st)],BP=[0,[17,0,[12,41,0]],TB(st)],TP=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Function.BodyExpression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Function.BodyExpression@ ")],IP=[0,[17,0,[12,41,0]],TB(st)],OP=[0,[15,0],TB(kD)],NP=TB(mp),xP=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],LP=TB("Flow_ast.Function.id"),PP=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],RP=TB(tw),MP=TB(os),GP=TB(Zv),UP=[0,[17,0,0],TB(Cl)],jP=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],XP=TB(_),HP=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$P=[0,[17,0,0],TB(Cl)],YP=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],VP=TB(Xm),KP=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],JP=[0,[17,0,0],TB(Cl)],WP=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],qP=TB(_A),zP=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],QP=[0,[9,0,0],TB(Nb)],ZP=[0,[17,0,0],TB(Cl)],rR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tR=TB(VS),eR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nR=[0,[9,0,0],TB(Nb)],uR=[0,[17,0,0],TB(Cl)],aR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],iR=TB(bl),cR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],fR=TB(tw),oR=TB(os),sR=TB(Zv),vR=[0,[17,0,0],TB(Cl)],lR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],DR=TB(Qe),pR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],bR=[0,[17,0,0],TB(Cl)],ER=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],FR=TB(_r),dR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],mR=TB(tw),hR=TB(os),kR=TB(Zv),yR=[0,[17,0,0],TB(Cl)],AR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_R=TB(Ku),CR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wR=TB(tw),SR=TB(os),gR=TB(Zv),BR=[0,[17,0,0],TB(Cl)],TR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],IR=TB("sig_loc"),OR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],NR=[0,[17,0,0],TB(Cl)],xR=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],LR=[0,[15,0],TB(kD)],PR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],RR=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],MR=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],GR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],UR=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],jR=TB("Flow_ast.Function.Params.this_"),XR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HR=TB(tw),$R=TB(os),YR=TB(Zv),VR=[0,[17,0,0],TB(Cl)],KR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],JR=TB(_),WR=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qR=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],zR=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],QR=[0,[17,0,0],TB(Cl)],ZR=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],rM=TB(Ca),tM=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],eM=TB(tw),nM=TB(os),uM=TB(Zv),aM=[0,[17,0,0],TB(Cl)],iM=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],cM=TB(Ku),fM=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],oM=TB(tw),sM=TB(os),vM=TB(Zv),lM=[0,[17,0,0],TB(Cl)],DM=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],pM=[0,[15,0],TB(kD)],bM=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],EM=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],FM=[0,[17,0,[12,41,0]],TB(st)],dM=[0,[15,0],TB(kD)],mM=TB(mp),hM=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],kM=TB("Flow_ast.Function.ThisParam.annot"),yM=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],AM=[0,[17,0,0],TB(Cl)],_M=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],CM=TB(Ku),wM=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],SM=TB(tw),gM=TB(os),BM=TB(Zv),TM=[0,[17,0,0],TB(Cl)],IM=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],OM=[0,[15,0],TB(kD)],NM=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],xM=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],LM=[0,[17,0,[12,41,0]],TB(st)],PM=[0,[15,0],TB(kD)],RM=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],MM=TB("Flow_ast.Function.Param.argument"),GM=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],UM=[0,[17,0,0],TB(Cl)],jM=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],XM=TB(l_),HM=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$M=TB(tw),YM=TB(os),VM=TB(Zv),KM=[0,[17,0,0],TB(Cl)],JM=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],WM=[0,[15,0],TB(kD)],qM=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],zM=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],QM=[0,[17,0,[12,41,0]],TB(st)],ZM=[0,[15,0],TB(kD)],rG=TB(mp),tG=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],eG=TB("Flow_ast.Function.RestParam.argument"),nG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uG=[0,[17,0,0],TB(Cl)],aG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],iG=TB(Ku),cG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],fG=TB(tw),oG=TB(os),sG=TB(Zv),vG=[0,[17,0,0],TB(Cl)],lG=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],DG=[0,[15,0],TB(kD)],pG=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],bG=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],EG=[0,[17,0,[12,41,0]],TB(st)],FG=[0,[15,0],TB(kD)],dG=TB(mp),mG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],hG=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],kG=TB("Flow_ast.Class.id"),yG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],AG=TB(tw),_G=TB(os),CG=TB(Zv),wG=[0,[17,0,0],TB(Cl)],SG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gG=TB(Xm),BG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],TG=[0,[17,0,0],TB(Cl)],IG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],OG=TB(_r),NG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xG=TB(tw),LG=TB(os),PG=TB(Zv),RG=[0,[17,0,0],TB(Cl)],MG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],GG=TB(wp),UG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jG=TB(tw),XG=TB(os),HG=TB(Zv),$G=[0,[17,0,0],TB(Cl)],YG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],VG=TB(mt),KG=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],JG=TB(tw),WG=TB(os),qG=TB(Zv),zG=[0,[17,0,0],TB(Cl)],QG=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ZG=TB("class_decorators"),rU=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],tU=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],eU=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],nU=[0,[17,0,0],TB(Cl)],uU=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],aU=TB(Ku),iU=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cU=TB(tw),fU=TB(os),oU=TB(Zv),sU=[0,[17,0,0],TB(Cl)],vU=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],lU=[0,[15,0],TB(kD)],DU=TB(mp),pU=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],bU=TB("Flow_ast.Class.Decorator.expression"),EU=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],FU=[0,[17,0,0],TB(Cl)],dU=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],mU=TB(Ku),hU=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],kU=TB(tw),yU=TB(os),AU=TB(Zv),_U=[0,[17,0,0],TB(Cl)],CU=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],wU=[0,[15,0],TB(kD)],SU=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],gU=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],BU=[0,[17,0,[12,41,0]],TB(st)],TU=[0,[15,0],TB(kD)],IU=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Class.Body.Method"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Class.Body.Method@ ")],OU=[0,[17,0,[12,41,0]],TB(st)],NU=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Class.Body.Property"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Class.Body.Property@ ")],xU=[0,[17,0,[12,41,0]],TB(st)],LU=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Class.Body.PrivateField"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Class.Body.PrivateField@ ")],PU=[0,[17,0,[12,41,0]],TB(st)],RU=[0,[15,0],TB(kD)],MU=TB(mp),GU=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],UU=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],jU=TB("Flow_ast.Class.Body.body"),XU=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HU=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],$U=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],YU=[0,[17,0,0],TB(Cl)],VU=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],KU=TB(Ku),JU=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],WU=TB(tw),qU=TB(os),zU=TB(Zv),QU=[0,[17,0,0],TB(Cl)],ZU=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],rj=[0,[15,0],TB(kD)],tj=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],ej=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],nj=[0,[17,0,[12,41,0]],TB(st)],uj=[0,[15,0],TB(kD)],aj=TB(mp),ij=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],cj=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],fj=TB("Flow_ast.Class.Implements.interfaces"),oj=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],sj=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],vj=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],lj=[0,[17,0,0],TB(Cl)],Dj=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],pj=TB(Ku),bj=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ej=TB(tw),Fj=TB(os),dj=TB(Zv),mj=[0,[17,0,0],TB(Cl)],hj=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],kj=[0,[15,0],TB(kD)],yj=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Aj=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],_j=[0,[17,0,[12,41,0]],TB(st)],Cj=[0,[15,0],TB(kD)],wj=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Sj=TB("Flow_ast.Class.Implements.Interface.id"),gj=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Bj=[0,[17,0,0],TB(Cl)],Tj=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Ij=TB(PA),Oj=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Nj=TB(tw),xj=TB(os),Lj=TB(Zv),Pj=[0,[17,0,0],TB(Cl)],Rj=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Mj=[0,[15,0],TB(kD)],Gj=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Uj=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],jj=[0,[17,0,[12,41,0]],TB(st)],Xj=[0,[15,0],TB(kD)],Hj=TB(mp),$j=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Yj=TB("Flow_ast.Class.Extends.expr"),Vj=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Kj=[0,[17,0,0],TB(Cl)],Jj=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Wj=TB(PA),qj=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],zj=TB(tw),Qj=TB(os),Zj=TB(Zv),rX=[0,[17,0,0],TB(Cl)],tX=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],eX=TB(Ku),nX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uX=TB(tw),aX=TB(os),iX=TB(Zv),cX=[0,[17,0,0],TB(Cl)],fX=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],oX=[0,[15,0],TB(kD)],sX=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],vX=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],lX=[0,[17,0,[12,41,0]],TB(st)],DX=[0,[15,0],TB(kD)],pX=TB(mp),bX=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],EX=TB("Flow_ast.Class.PrivateField.key"),FX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],dX=[0,[17,0,0],TB(Cl)],mX=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],hX=TB(WF),kX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],yX=[0,[17,0,0],TB(Cl)],AX=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_X=TB(aa),CX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wX=[0,[17,0,0],TB(Cl)],SX=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gX=TB(Qu),BX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],TX=[0,[9,0,0],TB(Nb)],IX=[0,[17,0,0],TB(Cl)],OX=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],NX=TB(Xp),xX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],LX=TB(tw),PX=TB(os),RX=TB(Zv),MX=[0,[17,0,0],TB(Cl)],GX=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],UX=TB(Ku),jX=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],XX=TB(tw),HX=TB(os),$X=TB(Zv),YX=[0,[17,0,0],TB(Cl)],VX=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],KX=[0,[15,0],TB(kD)],JX=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],WX=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],qX=[0,[17,0,[12,41,0]],TB(st)],zX=[0,[15,0],TB(kD)],QX=TB("Flow_ast.Class.Property.Uninitialized"),ZX=TB("Flow_ast.Class.Property.Declared"),rH=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Class.Property.Initialized"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Class.Property.Initialized@ ")],tH=[0,[17,0,[12,41,0]],TB(st)],eH=[0,[15,0],TB(kD)],nH=TB(mp),uH=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],aH=TB("Flow_ast.Class.Property.key"),iH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cH=[0,[17,0,0],TB(Cl)],fH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],oH=TB(WF),sH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],vH=[0,[17,0,0],TB(Cl)],lH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],DH=TB(aa),pH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],bH=[0,[17,0,0],TB(Cl)],EH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],FH=TB(Qu),dH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],mH=[0,[9,0,0],TB(Nb)],hH=[0,[17,0,0],TB(Cl)],kH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],yH=TB(Xp),AH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_H=TB(tw),CH=TB(os),wH=TB(Zv),SH=[0,[17,0,0],TB(Cl)],gH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],BH=TB(Ku),TH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],IH=TB(tw),OH=TB(os),NH=TB(Zv),xH=[0,[17,0,0],TB(Cl)],LH=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],PH=[0,[15,0],TB(kD)],RH=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],MH=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],GH=[0,[17,0,[12,41,0]],TB(st)],UH=[0,[15,0],TB(kD)],jH=TB(mp),XH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],HH=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],$H=TB("Flow_ast.Class.Method.kind"),YH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],VH=[0,[17,0,0],TB(Cl)],KH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],JH=TB($g),WH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qH=[0,[17,0,0],TB(Cl)],zH=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],QH=TB(WF),ZH=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],r$=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],t$=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],e$=[0,[17,0,[12,41,0]],TB(st)],n$=[0,[17,0,0],TB(Cl)],u$=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],a$=TB(Qu),i$=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],c$=[0,[9,0,0],TB(Nb)],f$=[0,[17,0,0],TB(Cl)],o$=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],s$=TB(H),v$=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],l$=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],D$=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],p$=[0,[17,0,0],TB(Cl)],b$=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],E$=TB(Ku),F$=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],d$=TB(tw),m$=TB(os),h$=TB(Zv),k$=[0,[17,0,0],TB(Cl)],y$=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],A$=[0,[15,0],TB(kD)],_$=TB("Flow_ast.Class.Method.Constructor"),C$=TB("Flow_ast.Class.Method.Method"),w$=TB("Flow_ast.Class.Method.Get"),S$=TB("Flow_ast.Class.Method.Set"),g$=[0,[15,0],TB(kD)],B$=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],T$=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],I$=[0,[17,0,[12,41,0]],TB(st)],O$=[0,[15,0],TB(kD)],N$=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],x$=TB("Flow_ast.Comment.kind"),L$=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],P$=[0,[17,0,0],TB(Cl)],R$=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],M$=TB("text"),G$=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],U$=[0,[3,0,0],TB(tA)],j$=[0,[17,0,0],TB(Cl)],X$=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],H$=TB("on_newline"),$$=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Y$=[0,[9,0,0],TB(Nb)],V$=[0,[17,0,0],TB(Cl)],K$=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],J$=[0,[15,0],TB(kD)],W$=TB("Flow_ast.Comment.Line"),q$=TB("Flow_ast.Comment.Block"),z$=[0,[15,0],TB(kD)],Q$=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Z$=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],rY=[0,[17,0,[12,41,0]],TB(st)],tY=[0,[15,0],TB(kD)],eY=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Object"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Object@ ")],nY=[0,[17,0,[12,41,0]],TB(st)],uY=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Array"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Array@ ")],aY=[0,[17,0,[12,41,0]],TB(st)],iY=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Identifier@ ")],cY=[0,[17,0,[12,41,0]],TB(st)],fY=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Expression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Expression@ ")],oY=[0,[17,0,[12,41,0]],TB(st)],sY=[0,[15,0],TB(kD)],vY=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],lY=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],DY=[0,[17,0,[12,41,0]],TB(st)],pY=[0,[15,0],TB(kD)],bY=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],EY=TB("Flow_ast.Pattern.Identifier.name"),FY=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],dY=[0,[17,0,0],TB(Cl)],mY=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],hY=TB(aa),kY=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],yY=[0,[17,0,0],TB(Cl)],AY=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_Y=TB(Al),CY=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wY=[0,[9,0,0],TB(Nb)],SY=[0,[17,0,0],TB(Cl)],gY=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],BY=[0,[15,0],TB(kD)],TY=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],IY=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],OY=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],NY=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],xY=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],LY=TB("Flow_ast.Pattern.Array.elements"),PY=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],RY=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],MY=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],GY=[0,[17,0,0],TB(Cl)],UY=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],jY=TB(aa),XY=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HY=[0,[17,0,0],TB(Cl)],$Y=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],YY=TB(Ku),VY=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],KY=TB(tw),JY=TB(os),WY=TB(Zv),qY=[0,[17,0,0],TB(Cl)],zY=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],QY=[0,[15,0],TB(kD)],ZY=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Array.Element"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Array.Element@ ")],rV=[0,[17,0,[12,41,0]],TB(st)],tV=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Array.RestElement"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Array.RestElement@ ")],eV=[0,[17,0,[12,41,0]],TB(st)],nV=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Array.Hole"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Array.Hole@ ")],uV=[0,[17,0,[12,41,0]],TB(st)],aV=[0,[15,0],TB(kD)],iV=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],cV=TB("Flow_ast.Pattern.Array.Element.argument"),fV=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],oV=[0,[17,0,0],TB(Cl)],sV=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],vV=TB(l_),lV=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],DV=TB(tw),pV=TB(os),bV=TB(Zv),EV=[0,[17,0,0],TB(Cl)],FV=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],dV=[0,[15,0],TB(kD)],mV=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],hV=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],kV=[0,[17,0,[12,41,0]],TB(st)],yV=[0,[15,0],TB(kD)],AV=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_V=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],CV=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],wV=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],SV=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],gV=TB("Flow_ast.Pattern.Object.properties"),BV=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],TV=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],IV=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],OV=[0,[17,0,0],TB(Cl)],NV=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],xV=TB(aa),LV=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],PV=[0,[17,0,0],TB(Cl)],RV=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],MV=TB(Ku),GV=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],UV=TB(tw),jV=TB(os),XV=TB(Zv),HV=[0,[17,0,0],TB(Cl)],$V=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],YV=[0,[15,0],TB(kD)],VV=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Object.Property"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Object.Property@ ")],KV=[0,[17,0,[12,41,0]],TB(st)],JV=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Object.RestElement"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Object.RestElement@ ")],WV=[0,[17,0,[12,41,0]],TB(st)],qV=[0,[15,0],TB(kD)],zV=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],QV=TB("Flow_ast.Pattern.Object.Property.key"),ZV=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rK=[0,[17,0,0],TB(Cl)],tK=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],eK=TB(Kp),nK=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uK=[0,[17,0,0],TB(Cl)],aK=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],iK=TB(l_),cK=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],fK=TB(tw),oK=TB(os),sK=TB(Zv),vK=[0,[17,0,0],TB(Cl)],lK=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],DK=TB(dy),pK=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],bK=[0,[9,0,0],TB(Nb)],EK=[0,[17,0,0],TB(Cl)],FK=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],dK=[0,[15,0],TB(kD)],mK=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],hK=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],kK=[0,[17,0,[12,41,0]],TB(st)],yK=[0,[15,0],TB(kD)],AK=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Object.Property.Literal"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Object.Property.Literal@ ")],_K=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],CK=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],wK=[0,[17,0,[12,41,0]],TB(st)],SK=[0,[17,0,[12,41,0]],TB(st)],gK=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Object.Property.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Object.Property.Identifier@ ")],BK=[0,[17,0,[12,41,0]],TB(st)],TK=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Pattern.Object.Property.Computed"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Pattern.Object.Property.Computed@ ")],IK=[0,[17,0,[12,41,0]],TB(st)],OK=[0,[15,0],TB(kD)],NK=TB(mp),xK=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],LK=TB("Flow_ast.Pattern.RestElement.argument"),PK=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],RK=[0,[17,0,0],TB(Cl)],MK=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],GK=TB(Ku),UK=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jK=TB(tw),XK=TB(os),HK=TB(Zv),$K=[0,[17,0,0],TB(Cl)],YK=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],VK=[0,[15,0],TB(kD)],KK=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],JK=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],WK=[0,[17,0,[12,41,0]],TB(st)],qK=[0,[15,0],TB(kD)],zK=TB(mp),QK=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ZK=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],rJ=TB("Flow_ast.JSX.frag_opening_element"),tJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],eJ=[0,[17,0,0],TB(Cl)],nJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],uJ=TB("frag_closing_element"),aJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],iJ=[0,[17,0,0],TB(Cl)],cJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],fJ=TB("frag_children"),oJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],sJ=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],vJ=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],lJ=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],DJ=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],pJ=[0,[17,0,[12,41,0]],TB(st)],bJ=[0,[17,0,0],TB(Cl)],EJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],FJ=TB("frag_comments"),dJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],mJ=TB(tw),hJ=TB(os),kJ=TB(Zv),yJ=[0,[17,0,0],TB(Cl)],AJ=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],_J=[0,[15,0],TB(kD)],CJ=TB(mp),wJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],SJ=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],gJ=TB("Flow_ast.JSX.opening_element"),BJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],TJ=[0,[17,0,0],TB(Cl)],IJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],OJ=TB("closing_element"),NJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xJ=TB(tw),LJ=TB(os),PJ=TB(Zv),RJ=[0,[17,0,0],TB(Cl)],MJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],GJ=TB(i),UJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jJ=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],XJ=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],HJ=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],$J=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],YJ=[0,[17,0,[12,41,0]],TB(st)],VJ=[0,[17,0,0],TB(Cl)],KJ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],JJ=TB(Ku),WJ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qJ=TB(tw),zJ=TB(os),QJ=TB(Zv),ZJ=[0,[17,0,0],TB(Cl)],rW=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],tW=[0,[15,0],TB(kD)],eW=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Element"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Element@ ")],nW=[0,[17,0,[12,41,0]],TB(st)],uW=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Fragment"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Fragment@ ")],aW=[0,[17,0,[12,41,0]],TB(st)],iW=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.ExpressionContainer"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.ExpressionContainer@ ")],cW=[0,[17,0,[12,41,0]],TB(st)],fW=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.SpreadChild"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.SpreadChild@ ")],oW=[0,[17,0,[12,41,0]],TB(st)],sW=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Text"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Text@ ")],vW=[0,[17,0,[12,41,0]],TB(st)],lW=[0,[15,0],TB(kD)],DW=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],pW=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],bW=[0,[17,0,[12,41,0]],TB(st)],EW=[0,[15,0],TB(kD)],FW=TB(mp),dW=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],mW=TB("Flow_ast.JSX.SpreadChild.expression"),hW=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],kW=[0,[17,0,0],TB(Cl)],yW=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],AW=TB(Ku),_W=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],CW=TB(tw),wW=TB(os),SW=TB(Zv),gW=[0,[17,0,0],TB(Cl)],BW=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],TW=[0,[15,0],TB(kD)],IW=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],OW=TB("Flow_ast.JSX.Closing.name"),NW=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xW=[0,[17,0,0],TB(Cl)],LW=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],PW=[0,[15,0],TB(kD)],RW=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],MW=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],GW=[0,[17,0,[12,41,0]],TB(st)],UW=[0,[15,0],TB(kD)],jW=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],XW=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],HW=TB("Flow_ast.JSX.Opening.name"),$W=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],YW=[0,[17,0,0],TB(Cl)],VW=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],KW=TB("self_closing"),JW=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],WW=[0,[9,0,0],TB(Nb)],qW=[0,[17,0,0],TB(Cl)],zW=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],QW=TB(vy),ZW=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rq=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],tq=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],eq=[0,[17,0,0],TB(Cl)],nq=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],uq=[0,[15,0],TB(kD)],aq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Opening.Attribute"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Opening.Attribute@ ")],iq=[0,[17,0,[12,41,0]],TB(st)],cq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Opening.SpreadAttribute"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Opening.SpreadAttribute@ ")],fq=[0,[17,0,[12,41,0]],TB(st)],oq=[0,[15,0],TB(kD)],sq=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],vq=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],lq=[0,[17,0,[12,41,0]],TB(st)],Dq=[0,[15,0],TB(kD)],pq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Identifier@ ")],bq=[0,[17,0,[12,41,0]],TB(st)],Eq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.NamespacedName"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.NamespacedName@ ")],Fq=[0,[17,0,[12,41,0]],TB(st)],dq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.MemberExpression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.MemberExpression@ ")],mq=[0,[17,0,[12,41,0]],TB(st)],hq=[0,[15,0],TB(kD)],kq=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],yq=TB("Flow_ast.JSX.MemberExpression._object"),Aq=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_q=[0,[17,0,0],TB(Cl)],Cq=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],wq=TB(CC),Sq=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],gq=[0,[17,0,0],TB(Cl)],Bq=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Tq=[0,[15,0],TB(kD)],Iq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.MemberExpression.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.MemberExpression.Identifier@ ")],Oq=[0,[17,0,[12,41,0]],TB(st)],Nq=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.MemberExpression.MemberExpression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.MemberExpression.MemberExpression@ ")],xq=[0,[17,0,[12,41,0]],TB(st)],Lq=[0,[15,0],TB(kD)],Pq=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Rq=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Mq=[0,[17,0,[12,41,0]],TB(st)],Gq=[0,[15,0],TB(kD)],Uq=TB(mp),jq=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Xq=TB("Flow_ast.JSX.SpreadAttribute.argument"),Hq=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$q=[0,[17,0,0],TB(Cl)],Yq=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Vq=TB(Ku),Kq=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Jq=TB(tw),Wq=TB(os),qq=TB(Zv),zq=[0,[17,0,0],TB(Cl)],Qq=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Zq=[0,[15,0],TB(kD)],rz=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],tz=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ez=[0,[17,0,[12,41,0]],TB(st)],nz=[0,[15,0],TB(kD)],uz=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],az=TB("Flow_ast.JSX.Attribute.name"),iz=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cz=[0,[17,0,0],TB(Cl)],fz=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],oz=TB(WF),sz=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],vz=TB(tw),lz=TB(os),Dz=TB(Zv),pz=[0,[17,0,0],TB(Cl)],bz=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Ez=[0,[15,0],TB(kD)],Fz=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Attribute.Literal ("),[17,[0,TB(Ko),0,0],0]]]],TB("(@[<2>Flow_ast.JSX.Attribute.Literal (@,")],dz=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],mz=[0,[17,[0,TB(Ko),0,0],[11,TB("))"),[17,0,0]]],TB(Yn)],hz=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Attribute.ExpressionContainer ("),[17,[0,TB(Ko),0,0],0]]]],TB("(@[<2>Flow_ast.JSX.Attribute.ExpressionContainer (@,")],kz=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],yz=[0,[17,[0,TB(Ko),0,0],[11,TB("))"),[17,0,0]]],TB(Yn)],Az=[0,[15,0],TB(kD)],_z=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Attribute.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Attribute.Identifier@ ")],Cz=[0,[17,0,[12,41,0]],TB(st)],wz=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.Attribute.NamespacedName"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.Attribute.NamespacedName@ ")],Sz=[0,[17,0,[12,41,0]],TB(st)],gz=[0,[15,0],TB(kD)],Bz=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Tz=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Iz=[0,[17,0,[12,41,0]],TB(st)],Oz=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Nz=TB("Flow_ast.JSX.Text.value"),xz=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Lz=[0,[3,0,0],TB(tA)],Pz=[0,[17,0,0],TB(Cl)],Rz=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Mz=TB(Tt),Gz=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Uz=[0,[3,0,0],TB(tA)],jz=[0,[17,0,0],TB(Cl)],Xz=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Hz=[0,[15,0],TB(kD)],$z=[0,[15,0],TB(kD)],Yz=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.JSX.ExpressionContainer.Expression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.JSX.ExpressionContainer.Expression@ ")],Vz=[0,[17,0,[12,41,0]],TB(st)],Kz=TB("Flow_ast.JSX.ExpressionContainer.EmptyExpression"),Jz=[0,[15,0],TB(kD)],Wz=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],qz=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],zz=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Qz=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Zz=TB("Flow_ast.JSX.ExpressionContainer.expression"),rQ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],tQ=[0,[17,0,0],TB(Cl)],eQ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],nQ=TB(Ku),uQ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],aQ=TB(tw),iQ=TB(os),cQ=TB(Zv),fQ=[0,[17,0,0],TB(Cl)],oQ=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],sQ=[0,[15,0],TB(kD)],vQ=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],lQ=TB("Flow_ast.JSX.NamespacedName.namespace"),DQ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],pQ=[0,[17,0,0],TB(Cl)],bQ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],EQ=TB(el),FQ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],dQ=[0,[17,0,0],TB(Cl)],mQ=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],hQ=[0,[15,0],TB(kD)],kQ=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],yQ=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],AQ=[0,[17,0,[12,41,0]],TB(st)],_Q=[0,[15,0],TB(kD)],CQ=TB(mp),wQ=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],SQ=TB("Flow_ast.JSX.Identifier.name"),gQ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],BQ=[0,[3,0,0],TB(tA)],TQ=[0,[17,0,0],TB(Cl)],IQ=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],OQ=TB(Ku),NQ=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xQ=TB(tw),LQ=TB(os),PQ=TB(Zv),RQ=[0,[17,0,0],TB(Cl)],MQ=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],GQ=[0,[15,0],TB(kD)],UQ=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],jQ=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],XQ=[0,[17,0,[12,41,0]],TB(st)],HQ=[0,[15,0],TB(kD)],$Q=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Array"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Array@ ")],YQ=[0,[17,0,[12,41,0]],TB(st)],VQ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.ArrowFunction"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.ArrowFunction@ ")],KQ=[0,[17,0,[12,41,0]],TB(st)],JQ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Assignment"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Assignment@ ")],WQ=[0,[17,0,[12,41,0]],TB(st)],qQ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Binary"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Binary@ ")],zQ=[0,[17,0,[12,41,0]],TB(st)],QQ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Call"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Call@ ")],ZQ=[0,[17,0,[12,41,0]],TB(st)],rZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Class"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Class@ ")],tZ=[0,[17,0,[12,41,0]],TB(st)],eZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Comprehension"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Comprehension@ ")],nZ=[0,[17,0,[12,41,0]],TB(st)],uZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Conditional"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Conditional@ ")],aZ=[0,[17,0,[12,41,0]],TB(st)],iZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Function"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Function@ ")],cZ=[0,[17,0,[12,41,0]],TB(st)],fZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Generator"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Generator@ ")],oZ=[0,[17,0,[12,41,0]],TB(st)],sZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Identifier@ ")],vZ=[0,[17,0,[12,41,0]],TB(st)],lZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Import"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Import@ ")],DZ=[0,[17,0,[12,41,0]],TB(st)],pZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.JSXElement"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.JSXElement@ ")],bZ=[0,[17,0,[12,41,0]],TB(st)],EZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.JSXFragment"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.JSXFragment@ ")],FZ=[0,[17,0,[12,41,0]],TB(st)],dZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Literal"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Literal@ ")],mZ=[0,[17,0,[12,41,0]],TB(st)],hZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Logical"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Logical@ ")],kZ=[0,[17,0,[12,41,0]],TB(st)],yZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Member"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Member@ ")],AZ=[0,[17,0,[12,41,0]],TB(st)],_Z=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.MetaProperty"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.MetaProperty@ ")],CZ=[0,[17,0,[12,41,0]],TB(st)],wZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.New"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.New@ ")],SZ=[0,[17,0,[12,41,0]],TB(st)],gZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object@ ")],BZ=[0,[17,0,[12,41,0]],TB(st)],TZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.OptionalCall"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.OptionalCall@ ")],IZ=[0,[17,0,[12,41,0]],TB(st)],OZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.OptionalMember"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.OptionalMember@ ")],NZ=[0,[17,0,[12,41,0]],TB(st)],xZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Sequence"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Sequence@ ")],LZ=[0,[17,0,[12,41,0]],TB(st)],PZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Super"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Super@ ")],RZ=[0,[17,0,[12,41,0]],TB(st)],MZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.TaggedTemplate"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.TaggedTemplate@ ")],GZ=[0,[17,0,[12,41,0]],TB(st)],UZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.TemplateLiteral"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.TemplateLiteral@ ")],jZ=[0,[17,0,[12,41,0]],TB(st)],XZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.This"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.This@ ")],HZ=[0,[17,0,[12,41,0]],TB(st)],$Z=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.TypeCast"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.TypeCast@ ")],YZ=[0,[17,0,[12,41,0]],TB(st)],VZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Unary"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Unary@ ")],KZ=[0,[17,0,[12,41,0]],TB(st)],JZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Update"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Update@ ")],WZ=[0,[17,0,[12,41,0]],TB(st)],qZ=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Yield"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Yield@ ")],zZ=[0,[17,0,[12,41,0]],TB(st)],QZ=[0,[15,0],TB(kD)],ZZ=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],r0=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],t0=[0,[17,0,[12,41,0]],TB(st)],e0=[0,[15,0],TB(kD)],n0=TB(mp),u0=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],a0=TB("Flow_ast.Expression.Import.argument"),i0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],c0=[0,[17,0,0],TB(Cl)],f0=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],o0=TB(Ku),s0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],v0=TB(tw),l0=TB(os),D0=TB(Zv),p0=[0,[17,0,0],TB(Cl)],b0=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],E0=[0,[15,0],TB(kD)],F0=TB(mp),d0=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],m0=TB("Flow_ast.Expression.Super.comments"),h0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],k0=TB(tw),y0=TB(os),A0=TB(Zv),_0=[0,[17,0,0],TB(Cl)],C0=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],w0=[0,[15,0],TB(kD)],S0=TB(mp),g0=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],B0=TB("Flow_ast.Expression.This.comments"),T0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],I0=TB(tw),O0=TB(os),N0=TB(Zv),x0=[0,[17,0,0],TB(Cl)],L0=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],P0=[0,[15,0],TB(kD)],R0=TB(mp),M0=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],G0=TB("Flow_ast.Expression.MetaProperty.meta"),U0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],j0=[0,[17,0,0],TB(Cl)],X0=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],H0=TB(CC),$0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Y0=[0,[17,0,0],TB(Cl)],V0=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],K0=TB(Ku),J0=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],W0=TB(tw),q0=TB(os),z0=TB(Zv),Q0=[0,[17,0,0],TB(Cl)],Z0=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],r1=[0,[15,0],TB(kD)],t1=TB(mp),e1=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],n1=TB("Flow_ast.Expression.TypeCast.expression"),u1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],a1=[0,[17,0,0],TB(Cl)],i1=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],c1=TB(aa),f1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],o1=[0,[17,0,0],TB(Cl)],s1=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],v1=TB(Ku),l1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],D1=TB(tw),p1=TB(os),b1=TB(Zv),E1=[0,[17,0,0],TB(Cl)],F1=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],d1=[0,[15,0],TB(kD)],m1=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],h1=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],k1=TB("Flow_ast.Expression.Generator.blocks"),y1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],A1=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],_1=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],C1=[0,[17,0,0],TB(Cl)],w1=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],S1=TB($e),g1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],B1=TB(tw),T1=TB(os),I1=TB(Zv),O1=[0,[17,0,0],TB(Cl)],N1=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],x1=[0,[15,0],TB(kD)],L1=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],P1=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],R1=TB("Flow_ast.Expression.Comprehension.blocks"),M1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],G1=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],U1=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],j1=[0,[17,0,0],TB(Cl)],X1=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],H1=TB($e),$1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Y1=TB(tw),V1=TB(os),K1=TB(Zv),J1=[0,[17,0,0],TB(Cl)],W1=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],q1=[0,[15,0],TB(kD)],z1=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Q1=TB("Flow_ast.Expression.Comprehension.Block.left"),Z1=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],r2=[0,[17,0,0],TB(Cl)],t2=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],e2=TB(vu),n2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],u2=[0,[17,0,0],TB(Cl)],a2=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],i2=TB(Nv),c2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],f2=[0,[9,0,0],TB(Nb)],o2=[0,[17,0,0],TB(Cl)],s2=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],v2=[0,[15,0],TB(kD)],l2=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],D2=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],p2=[0,[17,0,[12,41,0]],TB(st)],b2=[0,[15,0],TB(kD)],E2=TB(mp),F2=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],d2=TB("Flow_ast.Expression.Yield.argument"),m2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],h2=TB(tw),k2=TB(os),y2=TB(Zv),A2=[0,[17,0,0],TB(Cl)],_2=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],C2=TB(Ku),w2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],S2=TB(tw),g2=TB(os),B2=TB(Zv),T2=[0,[17,0,0],TB(Cl)],I2=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],O2=TB(Mk),N2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],x2=[0,[9,0,0],TB(Nb)],L2=[0,[17,0,0],TB(Cl)],P2=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],R2=[0,[15,0],TB(kD)],M2=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],G2=TB("Flow_ast.Expression.OptionalMember.member"),U2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],j2=[0,[17,0,0],TB(Cl)],X2=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],H2=TB(Al),$2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Y2=[0,[9,0,0],TB(Nb)],V2=[0,[17,0,0],TB(Cl)],K2=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],J2=[0,[15,0],TB(kD)],W2=TB(mp),q2=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],z2=TB("Flow_ast.Expression.Member._object"),Q2=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Z2=[0,[17,0,0],TB(Cl)],r7=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],t7=TB(CC),e7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],n7=[0,[17,0,0],TB(Cl)],u7=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],a7=TB(Ku),i7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],c7=TB(tw),f7=TB(os),o7=TB(Zv),s7=[0,[17,0,0],TB(Cl)],v7=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],l7=[0,[15,0],TB(kD)],D7=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Member.PropertyIdentifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Member.PropertyIdentifier@ ")],p7=[0,[17,0,[12,41,0]],TB(st)],b7=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Member.PropertyPrivateName"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Member.PropertyPrivateName@ ")],E7=[0,[17,0,[12,41,0]],TB(st)],F7=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Member.PropertyExpression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Member.PropertyExpression@ ")],d7=[0,[17,0,[12,41,0]],TB(st)],m7=[0,[15,0],TB(kD)],h7=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],k7=TB("Flow_ast.Expression.OptionalCall.call"),y7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],A7=[0,[17,0,0],TB(Cl)],_7=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],C7=TB(Al),w7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],S7=[0,[9,0,0],TB(Nb)],g7=[0,[17,0,0],TB(Cl)],B7=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],T7=[0,[15,0],TB(kD)],I7=TB(mp),O7=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],N7=TB("Flow_ast.Expression.Call.callee"),x7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],L7=[0,[17,0,0],TB(Cl)],P7=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],R7=TB(PA),M7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],G7=TB(tw),U7=TB(os),j7=TB(Zv),X7=[0,[17,0,0],TB(Cl)],H7=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],$7=TB(Vu),Y7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],V7=[0,[17,0,0],TB(Cl)],K7=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],J7=TB(Ku),W7=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],q7=TB(tw),z7=TB(os),Q7=TB(Zv),Z7=[0,[17,0,0],TB(Cl)],r8=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],t8=[0,[15,0],TB(kD)],e8=TB(mp),n8=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],u8=TB("Flow_ast.Expression.New.callee"),a8=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],i8=[0,[17,0,0],TB(Cl)],c8=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],f8=TB(PA),o8=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],s8=TB(tw),v8=TB(os),l8=TB(Zv),D8=[0,[17,0,0],TB(Cl)],p8=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],b8=TB(Vu),E8=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],F8=TB(tw),d8=TB(os),m8=TB(Zv),h8=[0,[17,0,0],TB(Cl)],k8=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],y8=TB(Ku),A8=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_8=TB(tw),C8=TB(os),w8=TB(Zv),S8=[0,[17,0,0],TB(Cl)],g8=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],B8=[0,[15,0],TB(kD)],T8=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],I8=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],O8=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],N8=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],x8=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],L8=TB("Flow_ast.Expression.ArgList.arguments"),P8=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],R8=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],M8=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],G8=[0,[17,0,0],TB(Cl)],U8=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],j8=TB(Ku),X8=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],H8=TB(tw),$8=TB(os),Y8=TB(Zv),V8=[0,[17,0,0],TB(Cl)],K8=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],J8=[0,[15,0],TB(kD)],W8=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],q8=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],z8=[0,[17,0,[12,41,0]],TB(st)],Q8=[0,[15,0],TB(kD)],Z8=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Expression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Expression@ ")],r3=[0,[17,0,[12,41,0]],TB(st)],t3=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Spread"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Spread@ ")],e3=[0,[17,0,[12,41,0]],TB(st)],n3=[0,[15,0],TB(kD)],u3=TB(mp),a3=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],i3=TB("Flow_ast.Expression.Conditional.test"),c3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],f3=[0,[17,0,0],TB(Cl)],o3=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],s3=TB(qp),v3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],l3=[0,[17,0,0],TB(Cl)],D3=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],p3=TB(uF),b3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],E3=[0,[17,0,0],TB(Cl)],F3=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],d3=TB(Ku),m3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],h3=TB(tw),k3=TB(os),y3=TB(Zv),A3=[0,[17,0,0],TB(Cl)],_3=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],C3=[0,[15,0],TB(kD)],w3=TB(mp),S3=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],g3=TB("Flow_ast.Expression.Logical.operator"),B3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],T3=[0,[17,0,0],TB(Cl)],I3=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],O3=TB(df),N3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],x3=[0,[17,0,0],TB(Cl)],L3=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],P3=TB(vu),R3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],M3=[0,[17,0,0],TB(Cl)],G3=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],U3=TB(Ku),j3=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],X3=TB(tw),H3=TB(os),$3=TB(Zv),Y3=[0,[17,0,0],TB(Cl)],V3=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],K3=[0,[15,0],TB(kD)],J3=TB("Flow_ast.Expression.Logical.Or"),W3=TB("Flow_ast.Expression.Logical.And"),q3=TB("Flow_ast.Expression.Logical.NullishCoalesce"),z3=[0,[15,0],TB(kD)],Q3=TB(mp),Z3=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],r4=TB("Flow_ast.Expression.Update.operator"),t4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],e4=[0,[17,0,0],TB(Cl)],n4=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],u4=TB(A_),a4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],i4=[0,[17,0,0],TB(Cl)],c4=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],f4=TB(xD),o4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],s4=[0,[9,0,0],TB(Nb)],v4=[0,[17,0,0],TB(Cl)],l4=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],D4=TB(Ku),p4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],b4=TB(tw),E4=TB(os),F4=TB(Zv),d4=[0,[17,0,0],TB(Cl)],m4=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],h4=[0,[15,0],TB(kD)],k4=TB("Flow_ast.Expression.Update.Decrement"),y4=TB("Flow_ast.Expression.Update.Increment"),A4=[0,[15,0],TB(kD)],_4=TB(mp),C4=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],w4=TB("Flow_ast.Expression.Assignment.operator"),S4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],g4=TB(tw),B4=TB(os),T4=TB(Zv),I4=[0,[17,0,0],TB(Cl)],O4=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],N4=TB(df),x4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],L4=[0,[17,0,0],TB(Cl)],P4=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],R4=TB(vu),M4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],G4=[0,[17,0,0],TB(Cl)],U4=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],j4=TB(Ku),X4=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],H4=TB(tw),$4=TB(os),Y4=TB(Zv),V4=[0,[17,0,0],TB(Cl)],K4=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],J4=[0,[15,0],TB(kD)],W4=TB("Flow_ast.Expression.Assignment.PlusAssign"),q4=TB("Flow_ast.Expression.Assignment.MinusAssign"),z4=TB("Flow_ast.Expression.Assignment.MultAssign"),Q4=TB("Flow_ast.Expression.Assignment.ExpAssign"),Z4=TB("Flow_ast.Expression.Assignment.DivAssign"),r6=TB("Flow_ast.Expression.Assignment.ModAssign"),t6=TB("Flow_ast.Expression.Assignment.LShiftAssign"),e6=TB("Flow_ast.Expression.Assignment.RShiftAssign"),n6=TB("Flow_ast.Expression.Assignment.RShift3Assign"),u6=TB("Flow_ast.Expression.Assignment.BitOrAssign"),a6=TB("Flow_ast.Expression.Assignment.BitXorAssign"),i6=TB("Flow_ast.Expression.Assignment.BitAndAssign"),c6=[0,[15,0],TB(kD)],f6=TB(mp),o6=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],s6=TB("Flow_ast.Expression.Binary.operator"),v6=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],l6=[0,[17,0,0],TB(Cl)],D6=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],p6=TB(df),b6=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],E6=[0,[17,0,0],TB(Cl)],F6=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],d6=TB(vu),m6=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],h6=[0,[17,0,0],TB(Cl)],k6=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],y6=TB(Ku),A6=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_6=TB(tw),C6=TB(os),w6=TB(Zv),S6=[0,[17,0,0],TB(Cl)],g6=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],B6=[0,[15,0],TB(kD)],T6=TB("Flow_ast.Expression.Binary.Equal"),I6=TB("Flow_ast.Expression.Binary.NotEqual"),O6=TB("Flow_ast.Expression.Binary.StrictEqual"),N6=TB("Flow_ast.Expression.Binary.StrictNotEqual"),x6=TB("Flow_ast.Expression.Binary.LessThan"),L6=TB("Flow_ast.Expression.Binary.LessThanEqual"),P6=TB("Flow_ast.Expression.Binary.GreaterThan"),R6=TB("Flow_ast.Expression.Binary.GreaterThanEqual"),M6=TB("Flow_ast.Expression.Binary.LShift"),G6=TB("Flow_ast.Expression.Binary.RShift"),U6=TB("Flow_ast.Expression.Binary.RShift3"),j6=TB("Flow_ast.Expression.Binary.Plus"),X6=TB("Flow_ast.Expression.Binary.Minus"),H6=TB("Flow_ast.Expression.Binary.Mult"),$6=TB("Flow_ast.Expression.Binary.Exp"),Y6=TB("Flow_ast.Expression.Binary.Div"),V6=TB("Flow_ast.Expression.Binary.Mod"),K6=TB("Flow_ast.Expression.Binary.BitOr"),J6=TB("Flow_ast.Expression.Binary.Xor"),W6=TB("Flow_ast.Expression.Binary.BitAnd"),q6=TB("Flow_ast.Expression.Binary.In"),z6=TB("Flow_ast.Expression.Binary.Instanceof"),Q6=[0,[15,0],TB(kD)],Z6=TB(mp),r5=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],t5=TB("Flow_ast.Expression.Unary.operator"),e5=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],n5=[0,[17,0,0],TB(Cl)],u5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],a5=TB(A_),i5=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],c5=[0,[17,0,0],TB(Cl)],f5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],o5=TB(Ku),s5=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],v5=TB(tw),l5=TB(os),D5=TB(Zv),p5=[0,[17,0,0],TB(Cl)],b5=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],E5=[0,[15,0],TB(kD)],F5=TB("Flow_ast.Expression.Unary.Minus"),d5=TB("Flow_ast.Expression.Unary.Plus"),m5=TB("Flow_ast.Expression.Unary.Not"),h5=TB("Flow_ast.Expression.Unary.BitNot"),k5=TB("Flow_ast.Expression.Unary.Typeof"),y5=TB("Flow_ast.Expression.Unary.Void"),A5=TB("Flow_ast.Expression.Unary.Delete"),_5=TB("Flow_ast.Expression.Unary.Await"),C5=[0,[15,0],TB(kD)],w5=TB(mp),S5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],g5=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],B5=TB("Flow_ast.Expression.Sequence.expressions"),T5=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],I5=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],O5=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],N5=[0,[17,0,0],TB(Cl)],x5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],L5=TB(Ku),P5=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],R5=TB(tw),M5=TB(os),G5=TB(Zv),U5=[0,[17,0,0],TB(Cl)],j5=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],X5=[0,[15,0],TB(kD)],H5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],$5=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Y5=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],V5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],K5=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],J5=TB("Flow_ast.Expression.Object.properties"),W5=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],q5=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],z5=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Q5=[0,[17,0,0],TB(Cl)],Z5=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],r9=TB(Ku),t9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],e9=TB(tw),n9=TB(os),u9=TB(Zv),a9=[0,[17,0,0],TB(Cl)],i9=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],c9=[0,[15,0],TB(kD)],f9=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object.Property@ ")],o9=[0,[17,0,[12,41,0]],TB(st)],s9=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.SpreadProperty"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object.SpreadProperty@ ")],v9=[0,[17,0,[12,41,0]],TB(st)],l9=[0,[15,0],TB(kD)],D9=TB(mp),p9=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],b9=TB("Flow_ast.Expression.Object.SpreadProperty.argument"),E9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],F9=[0,[17,0,0],TB(Cl)],d9=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],m9=TB(Ku),h9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],k9=TB(tw),y9=TB(os),A9=TB(Zv),_9=[0,[17,0,0],TB(Cl)],C9=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],w9=[0,[15,0],TB(kD)],S9=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],g9=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],B9=[0,[17,0,[12,41,0]],TB(st)],T9=[0,[15,0],TB(kD)],I9=TB(mp),O9=TB(mp),N9=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Init {"),[17,[0,TB(Ko),0,0],0]]],TB("@[<2>Flow_ast.Expression.Object.Property.Init {@,")],x9=TB($g),L9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],P9=[0,[17,0,0],TB(Cl)],R9=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],M9=TB(WF),G9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],U9=[0,[17,0,0],TB(Cl)],j9=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],X9=TB(dy),H9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$9=[0,[9,0,0],TB(Nb)],Y9=[0,[17,0,0],TB(Cl)],V9=[0,[17,0,[12,$d,0]],TB(rw)],K9=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Method {"),[17,[0,TB(Ko),0,0],0]]],TB("@[<2>Flow_ast.Expression.Object.Property.Method {@,")],J9=TB($g),W9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],q9=[0,[17,0,0],TB(Cl)],z9=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Q9=TB(WF),Z9=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rrr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],trr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],err=[0,[17,0,[12,41,0]],TB(st)],nrr=[0,[17,0,0],TB(Cl)],urr=[0,[17,0,[12,$d,0]],TB(rw)],arr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Get {"),[17,[0,TB(Ko),0,0],0]]],TB("@[<2>Flow_ast.Expression.Object.Property.Get {@,")],irr=TB($g),crr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],frr=[0,[17,0,0],TB(Cl)],orr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],srr=TB(WF),vrr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],lrr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Drr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],prr=[0,[17,0,[12,41,0]],TB(st)],brr=[0,[17,0,0],TB(Cl)],Err=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Frr=TB(Ku),drr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],mrr=TB(tw),hrr=TB(os),krr=TB(Zv),yrr=[0,[17,0,0],TB(Cl)],Arr=[0,[17,0,[12,$d,0]],TB(rw)],_rr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Set {"),[17,[0,TB(Ko),0,0],0]]],TB("@[<2>Flow_ast.Expression.Object.Property.Set {@,")],Crr=TB($g),wrr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Srr=[0,[17,0,0],TB(Cl)],grr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Brr=TB(WF),Trr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Irr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Orr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Nrr=[0,[17,0,[12,41,0]],TB(st)],xrr=[0,[17,0,0],TB(Cl)],Lrr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Prr=TB(Ku),Rrr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Mrr=TB(tw),Grr=TB(os),Urr=TB(Zv),jrr=[0,[17,0,0],TB(Cl)],Xrr=[0,[17,0,[12,$d,0]],TB(rw)],Hrr=[0,[15,0],TB(kD)],$rr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Yrr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Vrr=[0,[17,0,[12,41,0]],TB(st)],Krr=[0,[15,0],TB(kD)],Jrr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Literal"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object.Property.Literal@ ")],Wrr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],qrr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],zrr=[0,[17,0,[12,41,0]],TB(st)],Qrr=[0,[17,0,[12,41,0]],TB(st)],Zrr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object.Property.Identifier@ ")],rtr=[0,[17,0,[12,41,0]],TB(st)],ttr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.PrivateName"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object.Property.PrivateName@ ")],etr=[0,[17,0,[12,41,0]],TB(st)],ntr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Object.Property.Computed"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Object.Property.Computed@ ")],utr=[0,[17,0,[12,41,0]],TB(st)],atr=[0,[15,0],TB(kD)],itr=TB(mp),ctr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],ftr=TB("Flow_ast.Expression.TaggedTemplate.tag"),otr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],str=[0,[17,0,0],TB(Cl)],vtr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ltr=TB(rA),Dtr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ptr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],btr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Etr=[0,[17,0,[12,41,0]],TB(st)],Ftr=[0,[17,0,0],TB(Cl)],dtr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],mtr=TB(Ku),htr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ktr=TB(tw),ytr=TB(os),Atr=TB(Zv),_tr=[0,[17,0,0],TB(Cl)],Ctr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],wtr=[0,[15,0],TB(kD)],Str=TB(mp),gtr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Btr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Ttr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Itr=TB("Flow_ast.Expression.TemplateLiteral.quasis"),Otr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ntr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],xtr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Ltr=[0,[17,0,0],TB(Cl)],Ptr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Rtr=TB(ld),Mtr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Gtr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Utr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],jtr=[0,[17,0,0],TB(Cl)],Xtr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Htr=TB(Ku),$tr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ytr=TB(tw),Vtr=TB(os),Ktr=TB(Zv),Jtr=[0,[17,0,0],TB(Cl)],Wtr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],qtr=[0,[15,0],TB(kD)],ztr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Qtr=TB("Flow_ast.Expression.TemplateLiteral.Element.value"),Ztr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rer=[0,[17,0,0],TB(Cl)],ter=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],eer=TB(Yr),ner=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uer=[0,[9,0,0],TB(Nb)],aer=[0,[17,0,0],TB(Cl)],ier=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],cer=[0,[15,0],TB(kD)],fer=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],oer=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ser=[0,[17,0,[12,41,0]],TB(st)],ver=[0,[15,0],TB(kD)],ler=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Der=TB("Flow_ast.Expression.TemplateLiteral.Element.raw"),per=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ber=[0,[3,0,0],TB(tA)],Eer=[0,[17,0,0],TB(Cl)],Fer=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],der=TB(k_),mer=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],her=[0,[3,0,0],TB(tA)],ker=[0,[17,0,0],TB(Cl)],yer=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Aer=[0,[15,0],TB(kD)],_er=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Cer=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],wer=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Ser=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ger=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ber=TB("Flow_ast.Expression.Array.elements"),Ter=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ier=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Oer=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Ner=[0,[17,0,0],TB(Cl)],xer=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Ler=TB(Ku),Per=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Rer=TB(tw),Mer=TB(os),Ger=TB(Zv),Uer=[0,[17,0,0],TB(Cl)],jer=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Xer=[0,[15,0],TB(kD)],Her=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Array.Expression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Array.Expression@ ")],$er=[0,[17,0,[12,41,0]],TB(st)],Yer=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Array.Spread"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Array.Spread@ ")],Ver=[0,[17,0,[12,41,0]],TB(st)],Ker=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.Array.Hole"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.Array.Hole@ ")],Jer=[0,[17,0,[12,41,0]],TB(st)],Wer=[0,[15,0],TB(kD)],qer=TB(mp),zer=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Qer=TB("Flow_ast.Expression.SpreadElement.argument"),Zer=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rnr=[0,[17,0,0],TB(Cl)],tnr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],enr=TB(Ku),nnr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],unr=TB(tw),anr=TB(os),inr=TB(Zv),cnr=[0,[17,0,0],TB(Cl)],fnr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],onr=[0,[15,0],TB(kD)],snr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],vnr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],lnr=[0,[17,0,[12,41,0]],TB(st)],Dnr=[0,[15,0],TB(kD)],pnr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],bnr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Enr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Fnr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],dnr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],mnr=TB("Flow_ast.Expression.CallTypeArgs.arguments"),hnr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],knr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],ynr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Anr=[0,[17,0,0],TB(Cl)],_nr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Cnr=TB(Ku),wnr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Snr=TB(tw),gnr=TB(os),Bnr=TB(Zv),Tnr=[0,[17,0,0],TB(Cl)],Inr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Onr=[0,[15,0],TB(kD)],Nnr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],xnr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Lnr=[0,[17,0,[12,41,0]],TB(st)],Pnr=[0,[15,0],TB(kD)],Rnr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.CallTypeArg.Explicit"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.CallTypeArg.Explicit@ ")],Mnr=[0,[17,0,[12,41,0]],TB(st)],Gnr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Expression.CallTypeArg.Implicit"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Expression.CallTypeArg.Implicit@ ")],Unr=[0,[17,0,[12,41,0]],TB(st)],jnr=[0,[15,0],TB(kD)],Xnr=TB(mp),Hnr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],$nr=TB("Flow_ast.Expression.CallTypeArg.Implicit.comments"),Ynr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Vnr=TB(tw),Knr=TB(os),Jnr=TB(Zv),Wnr=[0,[17,0,0],TB(Cl)],qnr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],znr=[0,[15,0],TB(kD)],Qnr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Znr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],rur=[0,[17,0,[12,41,0]],TB(st)],tur=[0,[15,0],TB(kD)],eur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Block"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Block@ ")],nur=[0,[17,0,[12,41,0]],TB(st)],uur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Break"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Break@ ")],aur=[0,[17,0,[12,41,0]],TB(st)],iur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ClassDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ClassDeclaration@ ")],cur=[0,[17,0,[12,41,0]],TB(st)],fur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Continue"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Continue@ ")],our=[0,[17,0,[12,41,0]],TB(st)],sur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Debugger"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Debugger@ ")],vur=[0,[17,0,[12,41,0]],TB(st)],lur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareClass"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareClass@ ")],Dur=[0,[17,0,[12,41,0]],TB(st)],pur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration@ ")],bur=[0,[17,0,[12,41,0]],TB(st)],Eur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareFunction"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareFunction@ ")],Fur=[0,[17,0,[12,41,0]],TB(st)],dur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareInterface"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareInterface@ ")],mur=[0,[17,0,[12,41,0]],TB(st)],hur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareModule"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareModule@ ")],kur=[0,[17,0,[12,41,0]],TB(st)],yur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareModuleExports"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareModuleExports@ ")],Aur=[0,[17,0,[12,41,0]],TB(st)],_ur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareTypeAlias"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareTypeAlias@ ")],Cur=[0,[17,0,[12,41,0]],TB(st)],wur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareOpaqueType"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareOpaqueType@ ")],Sur=[0,[17,0,[12,41,0]],TB(st)],gur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareVariable"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareVariable@ ")],Bur=[0,[17,0,[12,41,0]],TB(st)],Tur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DoWhile"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DoWhile@ ")],Iur=[0,[17,0,[12,41,0]],TB(st)],Our=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Empty"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Empty@ ")],Nur=[0,[17,0,[12,41,0]],TB(st)],xur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration@ ")],Lur=[0,[17,0,[12,41,0]],TB(st)],Pur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ExportDefaultDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration@ ")],Rur=[0,[17,0,[12,41,0]],TB(st)],Mur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ExportNamedDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ExportNamedDeclaration@ ")],Gur=[0,[17,0,[12,41,0]],TB(st)],Uur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Expression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Expression@ ")],jur=[0,[17,0,[12,41,0]],TB(st)],Xur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.For"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.For@ ")],Hur=[0,[17,0,[12,41,0]],TB(st)],$ur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ForIn"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ForIn@ ")],Yur=[0,[17,0,[12,41,0]],TB(st)],Vur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ForOf"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ForOf@ ")],Kur=[0,[17,0,[12,41,0]],TB(st)],Jur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.FunctionDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.FunctionDeclaration@ ")],Wur=[0,[17,0,[12,41,0]],TB(st)],qur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.If"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.If@ ")],zur=[0,[17,0,[12,41,0]],TB(st)],Qur=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ImportDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ImportDeclaration@ ")],Zur=[0,[17,0,[12,41,0]],TB(st)],rar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.InterfaceDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.InterfaceDeclaration@ ")],tar=[0,[17,0,[12,41,0]],TB(st)],ear=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Labeled"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Labeled@ ")],nar=[0,[17,0,[12,41,0]],TB(st)],uar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Return"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Return@ ")],aar=[0,[17,0,[12,41,0]],TB(st)],iar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Switch"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Switch@ ")],car=[0,[17,0,[12,41,0]],TB(st)],far=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Throw"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Throw@ ")],oar=[0,[17,0,[12,41,0]],TB(st)],sar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.Try"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.Try@ ")],lar=[0,[17,0,[12,41,0]],TB(st)],Dar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.TypeAlias"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.TypeAlias@ ")],par=[0,[17,0,[12,41,0]],TB(st)],bar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.OpaqueType"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.OpaqueType@ ")],Ear=[0,[17,0,[12,41,0]],TB(st)],Far=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.VariableDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.VariableDeclaration@ ")],dar=[0,[17,0,[12,41,0]],TB(st)],mar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.While"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.While@ ")],har=[0,[17,0,[12,41,0]],TB(st)],kar=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.With"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.With@ ")],yar=[0,[17,0,[12,41,0]],TB(st)],Aar=[0,[15,0],TB(kD)],_ar=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Car=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],war=[0,[17,0,[12,41,0]],TB(st)],Sar=[0,[15,0],TB(kD)],gar=TB("Flow_ast.Statement.ExportValue"),Bar=TB("Flow_ast.Statement.ExportType"),Tar=[0,[15,0],TB(kD)],Iar=TB(mp),Oar=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Nar=TB("Flow_ast.Statement.Empty.comments"),xar=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Lar=TB(tw),Par=TB(os),Rar=TB(Zv),Mar=[0,[17,0,0],TB(Cl)],Gar=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Uar=[0,[15,0],TB(kD)],jar=TB(mp),Xar=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Har=TB("Flow_ast.Statement.Expression.expression"),$ar=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Yar=[0,[17,0,0],TB(Cl)],Var=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Kar=TB(F),Jar=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],War=TB(tw),qar=[0,[3,0,0],TB(tA)],zar=TB(os),Qar=TB(Zv),Zar=[0,[17,0,0],TB(Cl)],rir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tir=TB(Ku),eir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nir=TB(tw),uir=TB(os),air=TB(Zv),iir=[0,[17,0,0],TB(Cl)],cir=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],fir=[0,[15,0],TB(kD)],oir=TB(mp),sir=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],vir=TB("Flow_ast.Statement.ImportDeclaration.import_kind"),lir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Dir=[0,[17,0,0],TB(Cl)],pir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],bir=TB(PS),Eir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Fir=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],dir=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],mir=[0,[17,0,[12,41,0]],TB(st)],hir=[0,[17,0,0],TB(Cl)],kir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],yir=TB(l_),Air=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_ir=TB(tw),Cir=TB(os),wir=TB(Zv),Sir=[0,[17,0,0],TB(Cl)],gir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Bir=TB(iB),Tir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Iir=TB(tw),Oir=TB(os),Nir=TB(Zv),xir=[0,[17,0,0],TB(Cl)],Lir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Pir=TB(Ku),Rir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Mir=TB(tw),Gir=TB(os),Uir=TB(Zv),jir=[0,[17,0,0],TB(Cl)],Xir=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Hir=[0,[15,0],TB(kD)],$ir=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Yir=TB("Flow_ast.Statement.ImportDeclaration.kind"),Vir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Kir=TB(tw),Jir=TB(os),Wir=TB(Zv),qir=[0,[17,0,0],TB(Cl)],zir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Qir=TB(zs),Zir=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rcr=TB(tw),tcr=TB(os),ecr=TB(Zv),ncr=[0,[17,0,0],TB(Cl)],ucr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],acr=TB("remote"),icr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ccr=[0,[17,0,0],TB(Cl)],fcr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],ocr=[0,[15,0],TB(kD)],scr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],vcr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers@ ")],lcr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Dcr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],pcr=[0,[17,0,[12,41,0]],TB(st)],bcr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier@ ")],Ecr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Fcr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],dcr=[0,[17,0,[12,41,0]],TB(st)],mcr=[0,[17,0,[12,41,0]],TB(st)],hcr=[0,[15,0],TB(kD)],kcr=TB("Flow_ast.Statement.ImportDeclaration.ImportType"),ycr=TB("Flow_ast.Statement.ImportDeclaration.ImportTypeof"),Acr=TB("Flow_ast.Statement.ImportDeclaration.ImportValue"),_cr=[0,[15,0],TB(kD)],Ccr=TB(mp),wcr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Scr=TB("Flow_ast.Statement.DeclareExportDeclaration.default"),gcr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Bcr=TB(tw),Tcr=TB(os),Icr=TB(Zv),Ocr=[0,[17,0,0],TB(Cl)],Ncr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],xcr=TB(zu),Lcr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Pcr=TB(tw),Rcr=TB(os),Mcr=TB(Zv),Gcr=[0,[17,0,0],TB(Cl)],Ucr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],jcr=TB(iB),Xcr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Hcr=TB(tw),$cr=TB(os),Ycr=TB(Zv),Vcr=[0,[17,0,0],TB(Cl)],Kcr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Jcr=TB(PS),Wcr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qcr=TB(tw),zcr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Qcr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Zcr=[0,[17,0,[12,41,0]],TB(st)],rfr=TB(os),tfr=TB(Zv),efr=[0,[17,0,0],TB(Cl)],nfr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ufr=TB(Ku),afr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ifr=TB(tw),cfr=TB(os),ffr=TB(Zv),ofr=[0,[17,0,0],TB(Cl)],sfr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],vfr=[0,[15,0],TB(kD)],lfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.Variable"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Variable@ ")],Dfr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],pfr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],bfr=[0,[17,0,[12,41,0]],TB(st)],Efr=[0,[17,0,[12,41,0]],TB(st)],Ffr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.Function"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Function@ ")],dfr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],mfr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],hfr=[0,[17,0,[12,41,0]],TB(st)],kfr=[0,[17,0,[12,41,0]],TB(st)],yfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.Class"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Class@ ")],Afr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],_fr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Cfr=[0,[17,0,[12,41,0]],TB(st)],wfr=[0,[17,0,[12,41,0]],TB(st)],Sfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.DefaultType"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.DefaultType@ ")],gfr=[0,[17,0,[12,41,0]],TB(st)],Bfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.NamedType"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedType@ ")],Tfr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Ifr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Ofr=[0,[17,0,[12,41,0]],TB(st)],Nfr=[0,[17,0,[12,41,0]],TB(st)],xfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType@ ")],Lfr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Pfr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Rfr=[0,[17,0,[12,41,0]],TB(st)],Mfr=[0,[17,0,[12,41,0]],TB(st)],Gfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareExportDeclaration.Interface"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Interface@ ")],Ufr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],jfr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Xfr=[0,[17,0,[12,41,0]],TB(st)],Hfr=[0,[17,0,[12,41,0]],TB(st)],$fr=[0,[15,0],TB(kD)],Yfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ExportDefaultDeclaration.Declaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Declaration@ ")],Vfr=[0,[17,0,[12,41,0]],TB(st)],Kfr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ExportDefaultDeclaration.Expression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Expression@ ")],Jfr=[0,[17,0,[12,41,0]],TB(st)],Wfr=[0,[15,0],TB(kD)],qfr=TB(mp),zfr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Qfr=TB("Flow_ast.Statement.ExportDefaultDeclaration.default"),Zfr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ror=[0,[17,0,0],TB(Cl)],tor=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],eor=TB(zu),nor=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uor=[0,[17,0,0],TB(Cl)],aor=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ior=TB(Ku),cor=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],oor=TB(tw),sor=TB(os),vor=TB(Zv),lor=[0,[17,0,0],TB(Cl)],Dor=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],por=[0,[15,0],TB(kD)],bor=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Eor=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers@ ")],For=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],dor=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],mor=[0,[17,0,[12,41,0]],TB(st)],hor=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier@ ")],kor=[0,[17,0,[12,41,0]],TB(st)],yor=[0,[15,0],TB(kD)],Aor=TB(mp),_or=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Cor=TB("Flow_ast.Statement.ExportNamedDeclaration.declaration"),wor=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Sor=TB(tw),gor=TB(os),Bor=TB(Zv),Tor=[0,[17,0,0],TB(Cl)],Ior=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Oor=TB(iB),Nor=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xor=TB(tw),Lor=TB(os),Por=TB(Zv),Ror=[0,[17,0,0],TB(Cl)],Mor=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Gor=TB(PS),Uor=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jor=TB(tw),Xor=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Hor=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],$or=[0,[17,0,[12,41,0]],TB(st)],Yor=TB(os),Vor=TB(Zv),Kor=[0,[17,0,0],TB(Cl)],Jor=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Wor=TB("export_kind"),qor=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],zor=[0,[17,0,0],TB(Cl)],Qor=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Zor=TB(Ku),rsr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],tsr=TB(tw),esr=TB(os),nsr=TB(Zv),usr=[0,[17,0,0],TB(Cl)],asr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],isr=[0,[15,0],TB(kD)],csr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],fsr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],osr=TB(tw),ssr=TB(os),vsr=TB(Zv),lsr=[0,[17,0,[12,41,0]],TB(st)],Dsr=[0,[15,0],TB(kD)],psr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],bsr=TB("Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifier.local"),Esr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Fsr=[0,[17,0,0],TB(Cl)],dsr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],msr=TB(qe),hsr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ksr=TB(tw),ysr=TB(os),Asr=TB(Zv),_sr=[0,[17,0,0],TB(Cl)],Csr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],wsr=[0,[15,0],TB(kD)],Ssr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],gsr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Bsr=[0,[17,0,[12,41,0]],TB(st)],Tsr=[0,[15,0],TB(kD)],Isr=TB(mp),Osr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Nsr=TB("Flow_ast.Statement.DeclareModuleExports.annot"),xsr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Lsr=[0,[17,0,0],TB(Cl)],Psr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Rsr=TB(Ku),Msr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Gsr=TB(tw),Usr=TB(os),jsr=TB(Zv),Xsr=[0,[17,0,0],TB(Cl)],Hsr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],$sr=[0,[15,0],TB(kD)],Ysr=TB(mp),Vsr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ksr=TB("Flow_ast.Statement.DeclareModule.id"),Jsr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Wsr=[0,[17,0,0],TB(Cl)],qsr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],zsr=TB(Xm),Qsr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Zsr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],rvr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],tvr=[0,[17,0,[12,41,0]],TB(st)],evr=[0,[17,0,0],TB(Cl)],nvr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],uvr=TB($t),avr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ivr=[0,[17,0,0],TB(Cl)],cvr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],fvr=TB(Ku),ovr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],svr=TB(tw),vvr=TB(os),lvr=TB(Zv),Dvr=[0,[17,0,0],TB(Cl)],pvr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],bvr=[0,[15,0],TB(kD)],Evr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareModule.CommonJS"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareModule.CommonJS@ ")],Fvr=[0,[17,0,[12,41,0]],TB(st)],dvr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareModule.ES"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareModule.ES@ ")],mvr=[0,[17,0,[12,41,0]],TB(st)],hvr=[0,[15,0],TB(kD)],kvr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareModule.Identifier"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareModule.Identifier@ ")],yvr=[0,[17,0,[12,41,0]],TB(st)],Avr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.DeclareModule.Literal"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.DeclareModule.Literal@ ")],_vr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Cvr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],wvr=[0,[17,0,[12,41,0]],TB(st)],Svr=[0,[17,0,[12,41,0]],TB(st)],gvr=[0,[15,0],TB(kD)],Bvr=TB(mp),Tvr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ivr=TB("Flow_ast.Statement.DeclareFunction.id"),Ovr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Nvr=[0,[17,0,0],TB(Cl)],xvr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Lvr=TB(aa),Pvr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Rvr=[0,[17,0,0],TB(Cl)],Mvr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Gvr=TB(bl),Uvr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jvr=TB(tw),Xvr=TB(os),Hvr=TB(Zv),$vr=[0,[17,0,0],TB(Cl)],Yvr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Vvr=TB(Ku),Kvr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Jvr=TB(tw),Wvr=TB(os),qvr=TB(Zv),zvr=[0,[17,0,0],TB(Cl)],Qvr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Zvr=[0,[15,0],TB(kD)],rlr=TB(mp),tlr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],elr=TB("Flow_ast.Statement.DeclareVariable.id"),nlr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ulr=[0,[17,0,0],TB(Cl)],alr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ilr=TB(aa),clr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],flr=[0,[17,0,0],TB(Cl)],olr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],slr=TB(Ku),vlr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],llr=TB(tw),Dlr=TB(os),plr=TB(Zv),blr=[0,[17,0,0],TB(Cl)],Elr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Flr=[0,[15,0],TB(kD)],dlr=TB(mp),mlr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],hlr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],klr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ylr=[0,[17,0,[12,41,0]],TB(st)],Alr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],_lr=TB("Flow_ast.Statement.DeclareClass.id"),Clr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wlr=[0,[17,0,0],TB(Cl)],Slr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],glr=TB(_r),Blr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Tlr=TB(tw),Ilr=TB(os),Olr=TB(Zv),Nlr=[0,[17,0,0],TB(Cl)],xlr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Llr=TB(Xm),Plr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Rlr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Mlr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Glr=[0,[17,0,[12,41,0]],TB(st)],Ulr=[0,[17,0,0],TB(Cl)],jlr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Xlr=TB(wp),Hlr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$lr=TB(tw),Ylr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Vlr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Klr=[0,[17,0,[12,41,0]],TB(st)],Jlr=TB(os),Wlr=TB(Zv),qlr=[0,[17,0,0],TB(Cl)],zlr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Qlr=TB(le),Zlr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],rDr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],tDr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],eDr=[0,[17,0,0],TB(Cl)],nDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],uDr=TB(mt),aDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],iDr=TB(tw),cDr=TB(os),fDr=TB(Zv),oDr=[0,[17,0,0],TB(Cl)],sDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],vDr=TB(Ku),lDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],DDr=TB(tw),pDr=TB(os),bDr=TB(Zv),EDr=[0,[17,0,0],TB(Cl)],FDr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],dDr=[0,[15,0],TB(kD)],mDr=TB(mp),hDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],kDr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],yDr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ADr=[0,[17,0,[12,41,0]],TB(st)],_Dr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],CDr=TB("Flow_ast.Statement.Interface.id"),wDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],SDr=[0,[17,0,0],TB(Cl)],gDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],BDr=TB(_r),TDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],IDr=TB(tw),ODr=TB(os),NDr=TB(Zv),xDr=[0,[17,0,0],TB(Cl)],LDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],PDr=TB(wp),RDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],MDr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],GDr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],UDr=[0,[17,0,0],TB(Cl)],jDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],XDr=TB(Xm),HDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$Dr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],YDr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],VDr=[0,[17,0,[12,41,0]],TB(st)],KDr=[0,[17,0,0],TB(Cl)],JDr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],WDr=TB(Ku),qDr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],zDr=TB(tw),QDr=TB(os),ZDr=TB(Zv),rpr=[0,[17,0,0],TB(Cl)],tpr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],epr=[0,[15,0],TB(kD)],npr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration.BooleanBody"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration.BooleanBody@ ")],upr=[0,[17,0,[12,41,0]],TB(st)],apr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration.NumberBody"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration.NumberBody@ ")],ipr=[0,[17,0,[12,41,0]],TB(st)],cpr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration.StringBody"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody@ ")],fpr=[0,[17,0,[12,41,0]],TB(st)],opr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration.SymbolBody"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration.SymbolBody@ ")],spr=[0,[17,0,[12,41,0]],TB(st)],vpr=[0,[15,0],TB(kD)],lpr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Dpr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ppr=[0,[17,0,[12,41,0]],TB(st)],bpr=[0,[15,0],TB(kD)],Epr=TB(mp),Fpr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],dpr=TB("Flow_ast.Statement.EnumDeclaration.id"),mpr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hpr=[0,[17,0,0],TB(Cl)],kpr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ypr=TB(Xm),Apr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_pr=[0,[17,0,0],TB(Cl)],Cpr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],wpr=TB(Ku),Spr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],gpr=TB(tw),Bpr=TB(os),Tpr=TB(Zv),Ipr=[0,[17,0,0],TB(Cl)],Opr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Npr=[0,[15,0],TB(kD)],xpr=TB(mp),Lpr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Ppr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Rpr=TB("Flow_ast.Statement.EnumDeclaration.SymbolBody.members"),Mpr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Gpr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Upr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],jpr=[0,[17,0,0],TB(Cl)],Xpr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Hpr=TB(bt),$pr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ypr=[0,[9,0,0],TB(Nb)],Vpr=[0,[17,0,0],TB(Cl)],Kpr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Jpr=TB(Ku),Wpr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qpr=TB(tw),zpr=TB(os),Qpr=TB(Zv),Zpr=[0,[17,0,0],TB(Cl)],rbr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],tbr=[0,[15,0],TB(kD)],ebr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],nbr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ubr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted@ ")],abr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],ibr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],cbr=[0,[17,0,[12,41,0]],TB(st)],fbr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.EnumDeclaration.StringBody.Initialized"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Initialized@ ")],obr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],sbr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],vbr=[0,[17,0,[12,41,0]],TB(st)],lbr=[0,[15,0],TB(kD)],Dbr=TB(mp),pbr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],bbr=TB("Flow_ast.Statement.EnumDeclaration.StringBody.members"),Ebr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Fbr=[0,[17,0,0],TB(Cl)],dbr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],mbr=TB(Nf),hbr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],kbr=[0,[9,0,0],TB(Nb)],ybr=[0,[17,0,0],TB(Cl)],Abr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_br=TB(bt),Cbr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wbr=[0,[9,0,0],TB(Nb)],Sbr=[0,[17,0,0],TB(Cl)],gbr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Bbr=TB(Ku),Tbr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ibr=TB(tw),Obr=TB(os),Nbr=TB(Zv),xbr=[0,[17,0,0],TB(Cl)],Lbr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Pbr=[0,[15,0],TB(kD)],Rbr=TB(mp),Mbr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Gbr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ubr=TB("Flow_ast.Statement.EnumDeclaration.NumberBody.members"),jbr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Xbr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Hbr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],$br=[0,[17,0,0],TB(Cl)],Ybr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Vbr=TB(Nf),Kbr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Jbr=[0,[9,0,0],TB(Nb)],Wbr=[0,[17,0,0],TB(Cl)],qbr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],zbr=TB(bt),Qbr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Zbr=[0,[9,0,0],TB(Nb)],rEr=[0,[17,0,0],TB(Cl)],tEr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],eEr=TB(Ku),nEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uEr=TB(tw),aEr=TB(os),iEr=TB(Zv),cEr=[0,[17,0,0],TB(Cl)],fEr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],oEr=[0,[15,0],TB(kD)],sEr=TB(mp),vEr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],lEr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],DEr=TB("Flow_ast.Statement.EnumDeclaration.BooleanBody.members"),pEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],bEr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],EEr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],FEr=[0,[17,0,0],TB(Cl)],dEr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],mEr=TB(Nf),hEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],kEr=[0,[9,0,0],TB(Nb)],yEr=[0,[17,0,0],TB(Cl)],AEr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_Er=TB(bt),CEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wEr=[0,[9,0,0],TB(Nb)],SEr=[0,[17,0,0],TB(Cl)],gEr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],BEr=TB(Ku),TEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],IEr=TB(tw),OEr=TB(os),NEr=TB(Zv),xEr=[0,[17,0,0],TB(Cl)],LEr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],PEr=[0,[15,0],TB(kD)],REr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],MEr=TB("Flow_ast.Statement.EnumDeclaration.InitializedMember.id"),GEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],UEr=[0,[17,0,0],TB(Cl)],jEr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],XEr=TB(kh),HEr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$Er=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],YEr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],VEr=[0,[17,0,[12,41,0]],TB(st)],KEr=[0,[17,0,0],TB(Cl)],JEr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],WEr=[0,[15,0],TB(kD)],qEr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],zEr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],QEr=[0,[17,0,[12,41,0]],TB(st)],ZEr=[0,[15,0],TB(kD)],rFr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],tFr=TB("Flow_ast.Statement.EnumDeclaration.DefaultedMember.id"),eFr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nFr=[0,[17,0,0],TB(Cl)],uFr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],aFr=[0,[15,0],TB(kD)],iFr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],cFr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],fFr=[0,[17,0,[12,41,0]],TB(st)],oFr=[0,[15,0],TB(kD)],sFr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ForOf.LeftDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ForOf.LeftDeclaration@ ")],vFr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],lFr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],DFr=[0,[17,0,[12,41,0]],TB(st)],pFr=[0,[17,0,[12,41,0]],TB(st)],bFr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ForOf.LeftPattern"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ForOf.LeftPattern@ ")],EFr=[0,[17,0,[12,41,0]],TB(st)],FFr=[0,[15,0],TB(kD)],dFr=TB(mp),mFr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],hFr=TB("Flow_ast.Statement.ForOf.left"),kFr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],yFr=[0,[17,0,0],TB(Cl)],AFr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_Fr=TB(vu),CFr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wFr=[0,[17,0,0],TB(Cl)],SFr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gFr=TB(Xm),BFr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],TFr=[0,[17,0,0],TB(Cl)],IFr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],OFr=TB(lf),NFr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xFr=[0,[9,0,0],TB(Nb)],LFr=[0,[17,0,0],TB(Cl)],PFr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],RFr=TB(Ku),MFr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],GFr=TB(tw),UFr=TB(os),jFr=TB(Zv),XFr=[0,[17,0,0],TB(Cl)],HFr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],$Fr=[0,[15,0],TB(kD)],YFr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ForIn.LeftDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ForIn.LeftDeclaration@ ")],VFr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],KFr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],JFr=[0,[17,0,[12,41,0]],TB(st)],WFr=[0,[17,0,[12,41,0]],TB(st)],qFr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.ForIn.LeftPattern"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.ForIn.LeftPattern@ ")],zFr=[0,[17,0,[12,41,0]],TB(st)],QFr=[0,[15,0],TB(kD)],ZFr=TB(mp),rdr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],tdr=TB("Flow_ast.Statement.ForIn.left"),edr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ndr=[0,[17,0,0],TB(Cl)],udr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],adr=TB(vu),idr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cdr=[0,[17,0,0],TB(Cl)],fdr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],odr=TB(Xm),sdr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],vdr=[0,[17,0,0],TB(Cl)],ldr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Ddr=TB(Nv),pdr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],bdr=[0,[9,0,0],TB(Nb)],Edr=[0,[17,0,0],TB(Cl)],Fdr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ddr=TB(Ku),mdr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hdr=TB(tw),kdr=TB(os),ydr=TB(Zv),Adr=[0,[17,0,0],TB(Cl)],_dr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Cdr=[0,[15,0],TB(kD)],wdr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.For.InitDeclaration"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.For.InitDeclaration@ ")],Sdr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],gdr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Bdr=[0,[17,0,[12,41,0]],TB(st)],Tdr=[0,[17,0,[12,41,0]],TB(st)],Idr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Statement.For.InitExpression"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Statement.For.InitExpression@ ")],Odr=[0,[17,0,[12,41,0]],TB(st)],Ndr=[0,[15,0],TB(kD)],xdr=TB(mp),Ldr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Pdr=TB("Flow_ast.Statement.For.init"),Rdr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Mdr=TB(tw),Gdr=TB(os),Udr=TB(Zv),jdr=[0,[17,0,0],TB(Cl)],Xdr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Hdr=TB(dk),$dr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ydr=TB(tw),Vdr=TB(os),Kdr=TB(Zv),Jdr=[0,[17,0,0],TB(Cl)],Wdr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],qdr=TB(K),zdr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Qdr=TB(tw),Zdr=TB(os),rmr=TB(Zv),tmr=[0,[17,0,0],TB(Cl)],emr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],nmr=TB(Xm),umr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],amr=[0,[17,0,0],TB(Cl)],imr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],cmr=TB(Ku),fmr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],omr=TB(tw),smr=TB(os),vmr=TB(Zv),lmr=[0,[17,0,0],TB(Cl)],Dmr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],pmr=[0,[15,0],TB(kD)],bmr=TB(mp),Emr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Fmr=TB("Flow_ast.Statement.DoWhile.body"),dmr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],mmr=[0,[17,0,0],TB(Cl)],hmr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],kmr=TB(dk),ymr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Amr=[0,[17,0,0],TB(Cl)],_mr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Cmr=TB(Ku),wmr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Smr=TB(tw),gmr=TB(os),Bmr=TB(Zv),Tmr=[0,[17,0,0],TB(Cl)],Imr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Omr=[0,[15,0],TB(kD)],Nmr=TB(mp),xmr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Lmr=TB("Flow_ast.Statement.While.test"),Pmr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Rmr=[0,[17,0,0],TB(Cl)],Mmr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Gmr=TB(Xm),Umr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jmr=[0,[17,0,0],TB(Cl)],Xmr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Hmr=TB(Ku),$mr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ymr=TB(tw),Vmr=TB(os),Kmr=TB(Zv),Jmr=[0,[17,0,0],TB(Cl)],Wmr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],qmr=[0,[15,0],TB(kD)],zmr=TB("Flow_ast.Statement.VariableDeclaration.Var"),Qmr=TB("Flow_ast.Statement.VariableDeclaration.Let"),Zmr=TB("Flow_ast.Statement.VariableDeclaration.Const"),rhr=[0,[15,0],TB(kD)],thr=TB(mp),ehr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],nhr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],uhr=TB("Flow_ast.Statement.VariableDeclaration.declarations"),ahr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ihr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],chr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],fhr=[0,[17,0,0],TB(Cl)],ohr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],shr=TB($t),vhr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],lhr=[0,[17,0,0],TB(Cl)],Dhr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],phr=TB(Ku),bhr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ehr=TB(tw),Fhr=TB(os),dhr=TB(Zv),mhr=[0,[17,0,0],TB(Cl)],hhr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],khr=[0,[15,0],TB(kD)],yhr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ahr=TB("Flow_ast.Statement.VariableDeclaration.Declarator.id"),_hr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Chr=[0,[17,0,0],TB(Cl)],whr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Shr=TB(kh),ghr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Bhr=TB(tw),Thr=TB(os),Ihr=TB(Zv),Ohr=[0,[17,0,0],TB(Cl)],Nhr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],xhr=[0,[15,0],TB(kD)],Lhr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Phr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Rhr=[0,[17,0,[12,41,0]],TB(st)],Mhr=[0,[15,0],TB(kD)],Ghr=TB(mp),Uhr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],jhr=TB("Flow_ast.Statement.Try.block"),Xhr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Hhr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],$hr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Yhr=[0,[17,0,[12,41,0]],TB(st)],Vhr=[0,[17,0,0],TB(Cl)],Khr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Jhr=TB(eu),Whr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qhr=TB(tw),zhr=TB(os),Qhr=TB(Zv),Zhr=[0,[17,0,0],TB(Cl)],rkr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tkr=TB(Cv),ekr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nkr=TB(tw),ukr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],akr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ikr=[0,[17,0,[12,41,0]],TB(st)],ckr=TB(os),fkr=TB(Zv),okr=[0,[17,0,0],TB(Cl)],skr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],vkr=TB(Ku),lkr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Dkr=TB(tw),pkr=TB(os),bkr=TB(Zv),Ekr=[0,[17,0,0],TB(Cl)],Fkr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],dkr=[0,[15,0],TB(kD)],mkr=TB(mp),hkr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],kkr=TB("Flow_ast.Statement.Try.CatchClause.param"),ykr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Akr=TB(tw),_kr=TB(os),Ckr=TB(Zv),wkr=[0,[17,0,0],TB(Cl)],Skr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gkr=TB(Xm),Bkr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Tkr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Ikr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Okr=[0,[17,0,[12,41,0]],TB(st)],Nkr=[0,[17,0,0],TB(Cl)],xkr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Lkr=TB(Ku),Pkr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Rkr=TB(tw),Mkr=TB(os),Gkr=TB(Zv),Ukr=[0,[17,0,0],TB(Cl)],jkr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Xkr=[0,[15,0],TB(kD)],Hkr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],$kr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Ykr=[0,[17,0,[12,41,0]],TB(st)],Vkr=[0,[15,0],TB(kD)],Kkr=TB(mp),Jkr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Wkr=TB("Flow_ast.Statement.Throw.argument"),qkr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],zkr=[0,[17,0,0],TB(Cl)],Qkr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Zkr=TB(Ku),ryr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],tyr=TB(tw),eyr=TB(os),nyr=TB(Zv),uyr=[0,[17,0,0],TB(Cl)],ayr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],iyr=[0,[15,0],TB(kD)],cyr=TB(mp),fyr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],oyr=TB("Flow_ast.Statement.Return.argument"),syr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],vyr=TB(tw),lyr=TB(os),Dyr=TB(Zv),pyr=[0,[17,0,0],TB(Cl)],byr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Eyr=TB(Ku),Fyr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],dyr=TB(tw),myr=TB(os),hyr=TB(Zv),kyr=[0,[17,0,0],TB(Cl)],yyr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Ayr=[0,[15,0],TB(kD)],_yr=TB(mp),Cyr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],wyr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Syr=TB("Flow_ast.Statement.Switch.discriminant"),gyr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Byr=[0,[17,0,0],TB(Cl)],Tyr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Iyr=TB(Vd),Oyr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Nyr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],xyr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Lyr=[0,[17,0,0],TB(Cl)],Pyr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Ryr=TB(Ku),Myr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Gyr=TB(tw),Uyr=TB(os),jyr=TB(Zv),Xyr=[0,[17,0,0],TB(Cl)],Hyr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],$yr=[0,[15,0],TB(kD)],Yyr=TB(mp),Vyr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Kyr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Jyr=TB("Flow_ast.Statement.Switch.Case.test"),Wyr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qyr=TB(tw),zyr=TB(os),Qyr=TB(Zv),Zyr=[0,[17,0,0],TB(Cl)],rAr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tAr=TB(qp),eAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nAr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],uAr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],aAr=[0,[17,0,0],TB(Cl)],iAr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],cAr=TB(Ku),fAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],oAr=TB(tw),sAr=TB(os),vAr=TB(Zv),lAr=[0,[17,0,0],TB(Cl)],DAr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],pAr=[0,[15,0],TB(kD)],bAr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],EAr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],FAr=[0,[17,0,[12,41,0]],TB(st)],dAr=[0,[15,0],TB(kD)],mAr=TB(mp),hAr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],kAr=TB("Flow_ast.Statement.OpaqueType.id"),yAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],AAr=[0,[17,0,0],TB(Cl)],_Ar=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],CAr=TB(_r),wAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],SAr=TB(tw),gAr=TB(os),BAr=TB(Zv),TAr=[0,[17,0,0],TB(Cl)],IAr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],OAr=TB(kb),NAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xAr=TB(tw),LAr=TB(os),PAr=TB(Zv),RAr=[0,[17,0,0],TB(Cl)],MAr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],GAr=TB(FE),UAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jAr=TB(tw),XAr=TB(os),HAr=TB(Zv),$Ar=[0,[17,0,0],TB(Cl)],YAr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],VAr=TB(Ku),KAr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],JAr=TB(tw),WAr=TB(os),qAr=TB(Zv),zAr=[0,[17,0,0],TB(Cl)],QAr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],ZAr=[0,[15,0],TB(kD)],r_r=TB(mp),t_r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],e_r=TB("Flow_ast.Statement.TypeAlias.id"),n_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],u_r=[0,[17,0,0],TB(Cl)],a_r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],i_r=TB(_r),c_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],f_r=TB(tw),o_r=TB(os),s_r=TB(Zv),v_r=[0,[17,0,0],TB(Cl)],l_r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],D_r=TB(vu),p_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],b_r=[0,[17,0,0],TB(Cl)],E_r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],F_r=TB(Ku),d_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],m_r=TB(tw),h_r=TB(os),k_r=TB(Zv),y_r=[0,[17,0,0],TB(Cl)],A_r=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],__r=[0,[15,0],TB(kD)],C_r=TB(mp),w_r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],S_r=TB("Flow_ast.Statement.With._object"),g_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],B_r=[0,[17,0,0],TB(Cl)],T_r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],I_r=TB(Xm),O_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],N_r=[0,[17,0,0],TB(Cl)],x_r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],L_r=TB(Ku),P_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],R_r=TB(tw),M_r=TB(os),G_r=TB(Zv),U_r=[0,[17,0,0],TB(Cl)],j_r=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],X_r=[0,[15,0],TB(kD)],H_r=TB(mp),$_r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Y_r=TB("Flow_ast.Statement.Debugger.comments"),V_r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],K_r=TB(tw),J_r=TB(os),W_r=TB(Zv),q_r=[0,[17,0,0],TB(Cl)],z_r=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Q_r=[0,[15,0],TB(kD)],Z_r=TB(mp),rCr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],tCr=TB("Flow_ast.Statement.Continue.label"),eCr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nCr=TB(tw),uCr=TB(os),aCr=TB(Zv),iCr=[0,[17,0,0],TB(Cl)],cCr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],fCr=TB(Ku),oCr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],sCr=TB(tw),vCr=TB(os),lCr=TB(Zv),DCr=[0,[17,0,0],TB(Cl)],pCr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],bCr=[0,[15,0],TB(kD)],ECr=TB(mp),FCr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],dCr=TB("Flow_ast.Statement.Break.label"),mCr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hCr=TB(tw),kCr=TB(os),yCr=TB(Zv),ACr=[0,[17,0,0],TB(Cl)],_Cr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],CCr=TB(Ku),wCr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],SCr=TB(tw),gCr=TB(os),BCr=TB(Zv),TCr=[0,[17,0,0],TB(Cl)],ICr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],OCr=[0,[15,0],TB(kD)],NCr=TB(mp),xCr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],LCr=TB("Flow_ast.Statement.Labeled.label"),PCr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],RCr=[0,[17,0,0],TB(Cl)],MCr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],GCr=TB(Xm),UCr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jCr=[0,[17,0,0],TB(Cl)],XCr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],HCr=TB(Ku),$Cr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],YCr=TB(tw),VCr=TB(os),KCr=TB(Zv),JCr=[0,[17,0,0],TB(Cl)],WCr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],qCr=[0,[15,0],TB(kD)],zCr=TB(mp),QCr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],ZCr=TB("Flow_ast.Statement.If.test"),rwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],twr=[0,[17,0,0],TB(Cl)],ewr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],nwr=TB(qp),uwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],awr=[0,[17,0,0],TB(Cl)],iwr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],cwr=TB(uF),fwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],owr=TB(tw),swr=TB(os),vwr=TB(Zv),lwr=[0,[17,0,0],TB(Cl)],Dwr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],pwr=TB(Ku),bwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Ewr=TB(tw),Fwr=TB(os),dwr=TB(Zv),mwr=[0,[17,0,0],TB(Cl)],hwr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],kwr=[0,[15,0],TB(kD)],ywr=TB(mp),Awr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],_wr=TB("Flow_ast.Statement.If.Alternate.body"),Cwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wwr=[0,[17,0,0],TB(Cl)],Swr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gwr=TB(Ku),Bwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Twr=TB(tw),Iwr=TB(os),Owr=TB(Zv),Nwr=[0,[17,0,0],TB(Cl)],xwr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Lwr=[0,[15,0],TB(kD)],Pwr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Rwr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Mwr=[0,[17,0,[12,41,0]],TB(st)],Gwr=[0,[15,0],TB(kD)],Uwr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],jwr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Xwr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Hwr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],$wr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ywr=TB("Flow_ast.Statement.Block.body"),Vwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Kwr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Jwr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Wwr=[0,[17,0,0],TB(Cl)],qwr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],zwr=TB(Ku),Qwr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Zwr=TB(tw),rSr=TB(os),tSr=TB(Zv),eSr=[0,[17,0,0],TB(Cl)],nSr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],uSr=[0,[15,0],TB(kD)],aSr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Predicate.Declared"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Predicate.Declared@ ")],iSr=[0,[17,0,[12,41,0]],TB(st)],cSr=TB("Flow_ast.Type.Predicate.Inferred"),fSr=[0,[15,0],TB(kD)],oSr=TB(mp),sSr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],vSr=TB("Flow_ast.Type.Predicate.kind"),lSr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],DSr=[0,[17,0,0],TB(Cl)],pSr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],bSr=TB(Ku),ESr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],FSr=TB(tw),dSr=TB(os),mSr=TB(Zv),hSr=[0,[17,0,0],TB(Cl)],kSr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],ySr=[0,[15,0],TB(kD)],ASr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],_Sr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],CSr=[0,[17,0,[12,41,0]],TB(st)],wSr=[0,[15,0],TB(kD)],SSr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gSr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],BSr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],TSr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ISr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],OSr=TB("Flow_ast.Type.TypeArgs.arguments"),NSr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],xSr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],LSr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],PSr=[0,[17,0,0],TB(Cl)],RSr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],MSr=TB(Ku),GSr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],USr=TB(tw),jSr=TB(os),XSr=TB(Zv),HSr=[0,[17,0,0],TB(Cl)],$Sr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],YSr=[0,[15,0],TB(kD)],VSr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],KSr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],JSr=[0,[17,0,[12,41,0]],TB(st)],WSr=[0,[15,0],TB(kD)],qSr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],zSr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],QSr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],ZSr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],rgr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],tgr=TB("Flow_ast.Type.TypeParams.params"),egr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ngr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],ugr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],agr=[0,[17,0,0],TB(Cl)],igr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],cgr=TB(Ku),fgr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ogr=TB(tw),sgr=TB(os),vgr=TB(Zv),lgr=[0,[17,0,0],TB(Cl)],Dgr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],pgr=[0,[15,0],TB(kD)],bgr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Egr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Fgr=[0,[17,0,[12,41,0]],TB(st)],dgr=[0,[15,0],TB(kD)],mgr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],hgr=TB("Flow_ast.Type.TypeParam.name"),kgr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ygr=[0,[17,0,0],TB(Cl)],Agr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],_gr=TB(In),Cgr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],wgr=[0,[17,0,0],TB(Cl)],Sgr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ggr=TB(Xp),Bgr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Tgr=TB(tw),Igr=TB(os),Ogr=TB(Zv),Ngr=[0,[17,0,0],TB(Cl)],xgr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Lgr=TB(l_),Pgr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Rgr=TB(tw),Mgr=TB(os),Ggr=TB(Zv),Ugr=[0,[17,0,0],TB(Cl)],jgr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Xgr=[0,[15,0],TB(kD)],Hgr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],$gr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Ygr=[0,[17,0,[12,41,0]],TB(st)],Vgr=[0,[15,0],TB(kD)],Kgr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Missing"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Missing@ ")],Jgr=[0,[17,0,[12,41,0]],TB(st)],Wgr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Available"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Available@ ")],qgr=[0,[17,0,[12,41,0]],TB(st)],zgr=[0,[15,0],TB(kD)],Qgr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Zgr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],rBr=[0,[17,0,[12,41,0]],TB(st)],tBr=[0,[15,0],TB(kD)],eBr=TB(mp),nBr=TB(mp),uBr=TB(mp),aBr=TB(mp),iBr=TB(mp),cBr=TB(mp),fBr=TB(mp),oBr=TB(mp),sBr=TB(mp),vBr=TB(mp),lBr=TB(mp),DBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Any"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Any@ ")],pBr=TB(tw),bBr=TB(os),EBr=TB(Zv),FBr=[0,[17,0,[12,41,0]],TB(st)],dBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Mixed"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Mixed@ ")],mBr=TB(tw),hBr=TB(os),kBr=TB(Zv),yBr=[0,[17,0,[12,41,0]],TB(st)],ABr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Empty"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Empty@ ")],_Br=TB(tw),CBr=TB(os),wBr=TB(Zv),SBr=[0,[17,0,[12,41,0]],TB(st)],gBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Void"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Void@ ")],BBr=TB(tw),TBr=TB(os),IBr=TB(Zv),OBr=[0,[17,0,[12,41,0]],TB(st)],NBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Null"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Null@ ")],xBr=TB(tw),LBr=TB(os),PBr=TB(Zv),RBr=[0,[17,0,[12,41,0]],TB(st)],MBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Number"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Number@ ")],GBr=TB(tw),UBr=TB(os),jBr=TB(Zv),XBr=[0,[17,0,[12,41,0]],TB(st)],HBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.BigInt"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.BigInt@ ")],$Br=TB(tw),YBr=TB(os),VBr=TB(Zv),KBr=[0,[17,0,[12,41,0]],TB(st)],JBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.String"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.String@ ")],WBr=TB(tw),qBr=TB(os),zBr=TB(Zv),QBr=[0,[17,0,[12,41,0]],TB(st)],ZBr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Boolean"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Boolean@ ")],rTr=TB(tw),tTr=TB(os),eTr=TB(Zv),nTr=[0,[17,0,[12,41,0]],TB(st)],uTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Symbol"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Symbol@ ")],aTr=TB(tw),iTr=TB(os),cTr=TB(Zv),fTr=[0,[17,0,[12,41,0]],TB(st)],oTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Exists"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Exists@ ")],sTr=TB(tw),vTr=TB(os),lTr=TB(Zv),DTr=[0,[17,0,[12,41,0]],TB(st)],pTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Nullable"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Nullable@ ")],bTr=[0,[17,0,[12,41,0]],TB(st)],ETr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Function"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Function@ ")],FTr=[0,[17,0,[12,41,0]],TB(st)],dTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object@ ")],mTr=[0,[17,0,[12,41,0]],TB(st)],hTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Interface"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Interface@ ")],kTr=[0,[17,0,[12,41,0]],TB(st)],yTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Array"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Array@ ")],ATr=[0,[17,0,[12,41,0]],TB(st)],_Tr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Generic"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Generic@ ")],CTr=[0,[17,0,[12,41,0]],TB(st)],wTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.IndexedAccess"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.IndexedAccess@ ")],STr=[0,[17,0,[12,41,0]],TB(st)],gTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.OptionalIndexedAccess"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.OptionalIndexedAccess@ ")],BTr=[0,[17,0,[12,41,0]],TB(st)],TTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Union"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Union@ ")],ITr=[0,[17,0,[12,41,0]],TB(st)],OTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Intersection"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Intersection@ ")],NTr=[0,[17,0,[12,41,0]],TB(st)],xTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Typeof"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Typeof@ ")],LTr=[0,[17,0,[12,41,0]],TB(st)],PTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Tuple"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Tuple@ ")],RTr=[0,[17,0,[12,41,0]],TB(st)],MTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.StringLiteral"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.StringLiteral@ ")],GTr=[0,[17,0,[12,41,0]],TB(st)],UTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.NumberLiteral"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.NumberLiteral@ ")],jTr=[0,[17,0,[12,41,0]],TB(st)],XTr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.BigIntLiteral"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.BigIntLiteral@ ")],HTr=[0,[17,0,[12,41,0]],TB(st)],$Tr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.BooleanLiteral"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.BooleanLiteral@ ")],YTr=[0,[17,0,[12,41,0]],TB(st)],VTr=[0,[15,0],TB(kD)],KTr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],JTr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],WTr=[0,[17,0,[12,41,0]],TB(st)],qTr=[0,[15,0],TB(kD)],zTr=TB(mp),QTr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ZTr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],rIr=TB("Flow_ast.Type.Intersection.types"),tIr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],eIr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],nIr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],uIr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],aIr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],iIr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],cIr=[0,[17,0,[12,41,0]],TB(st)],fIr=[0,[17,0,0],TB(Cl)],oIr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],sIr=TB(Ku),vIr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],lIr=TB(tw),DIr=TB(os),pIr=TB(Zv),bIr=[0,[17,0,0],TB(Cl)],EIr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],FIr=[0,[15,0],TB(kD)],dIr=TB(mp),mIr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],hIr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],kIr=TB("Flow_ast.Type.Union.types"),yIr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],AIr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],_Ir=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],CIr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],wIr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],SIr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],gIr=[0,[17,0,[12,41,0]],TB(st)],BIr=[0,[17,0,0],TB(Cl)],TIr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],IIr=TB(Ku),OIr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],NIr=TB(tw),xIr=TB(os),LIr=TB(Zv),PIr=[0,[17,0,0],TB(Cl)],RIr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],MIr=[0,[15,0],TB(kD)],GIr=TB(mp),UIr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],jIr=TB("Flow_ast.Type.Array.argument"),XIr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HIr=[0,[17,0,0],TB(Cl)],$Ir=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],YIr=TB(Ku),VIr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],KIr=TB(tw),JIr=TB(os),WIr=TB(Zv),qIr=[0,[17,0,0],TB(Cl)],zIr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],QIr=[0,[15,0],TB(kD)],ZIr=TB(mp),rOr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tOr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],eOr=TB("Flow_ast.Type.Tuple.types"),nOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],uOr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],aOr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],iOr=[0,[17,0,0],TB(Cl)],cOr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],fOr=TB(Ku),oOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],sOr=TB(tw),vOr=TB(os),lOr=TB(Zv),DOr=[0,[17,0,0],TB(Cl)],pOr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],bOr=[0,[15,0],TB(kD)],EOr=TB(mp),FOr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],dOr=TB("Flow_ast.Type.Typeof.argument"),mOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hOr=[0,[17,0,0],TB(Cl)],kOr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],yOr=TB(io),AOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_Or=[0,[9,0,0],TB(Nb)],COr=[0,[17,0,0],TB(Cl)],wOr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],SOr=TB(Ku),gOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],BOr=TB(tw),TOr=TB(os),IOr=TB(Zv),OOr=[0,[17,0,0],TB(Cl)],NOr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],xOr=[0,[15,0],TB(kD)],LOr=TB(mp),POr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],ROr=TB("Flow_ast.Type.Nullable.argument"),MOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],GOr=[0,[17,0,0],TB(Cl)],UOr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],jOr=TB(Ku),XOr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HOr=TB(tw),$Or=TB(os),YOr=TB(Zv),VOr=[0,[17,0,0],TB(Cl)],KOr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],JOr=[0,[15,0],TB(kD)],WOr=TB(mp),qOr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],zOr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],QOr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],ZOr=[0,[17,0,[12,41,0]],TB(st)],rNr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],tNr=TB("Flow_ast.Type.Interface.body"),eNr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nNr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],uNr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],aNr=[0,[17,0,[12,41,0]],TB(st)],iNr=[0,[17,0,0],TB(Cl)],cNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],fNr=TB(wp),oNr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],sNr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],vNr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],lNr=[0,[17,0,0],TB(Cl)],DNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],pNr=TB(Ku),bNr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ENr=TB(tw),FNr=TB(os),dNr=TB(Zv),mNr=[0,[17,0,0],TB(Cl)],hNr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],kNr=[0,[15,0],TB(kD)],yNr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.Property"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.Property@ ")],ANr=[0,[17,0,[12,41,0]],TB(st)],_Nr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.SpreadProperty"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.SpreadProperty@ ")],CNr=[0,[17,0,[12,41,0]],TB(st)],wNr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.Indexer"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.Indexer@ ")],SNr=[0,[17,0,[12,41,0]],TB(st)],gNr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.CallProperty"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.CallProperty@ ")],BNr=[0,[17,0,[12,41,0]],TB(st)],TNr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.InternalSlot"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.InternalSlot@ ")],INr=[0,[17,0,[12,41,0]],TB(st)],ONr=[0,[15,0],TB(kD)],NNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],xNr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],LNr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],PNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],RNr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],MNr=TB("Flow_ast.Type.Object.exact"),GNr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],UNr=[0,[9,0,0],TB(Nb)],jNr=[0,[17,0,0],TB(Cl)],XNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],HNr=TB(J_),$Nr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],YNr=[0,[9,0,0],TB(Nb)],VNr=[0,[17,0,0],TB(Cl)],KNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],JNr=TB(Nu),WNr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],qNr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],zNr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],QNr=[0,[17,0,0],TB(Cl)],ZNr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],rxr=TB(Ku),txr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],exr=TB(tw),nxr=TB(os),uxr=TB(Zv),axr=[0,[17,0,0],TB(Cl)],ixr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],cxr=[0,[15,0],TB(kD)],fxr=TB(mp),oxr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],sxr=TB("Flow_ast.Type.Object.InternalSlot.id"),vxr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],lxr=[0,[17,0,0],TB(Cl)],Dxr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],pxr=TB(WF),bxr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Exr=[0,[17,0,0],TB(Cl)],Fxr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],dxr=TB(Al),mxr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hxr=[0,[9,0,0],TB(Nb)],kxr=[0,[17,0,0],TB(Cl)],yxr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Axr=TB(Qu),_xr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Cxr=[0,[9,0,0],TB(Nb)],wxr=[0,[17,0,0],TB(Cl)],Sxr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gxr=TB(N),Bxr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Txr=[0,[9,0,0],TB(Nb)],Ixr=[0,[17,0,0],TB(Cl)],Oxr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Nxr=TB(Ku),xxr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Lxr=TB(tw),Pxr=TB(os),Rxr=TB(Zv),Mxr=[0,[17,0,0],TB(Cl)],Gxr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Uxr=[0,[15,0],TB(kD)],jxr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Xxr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Hxr=[0,[17,0,[12,41,0]],TB(st)],$xr=[0,[15,0],TB(kD)],Yxr=TB(mp),Vxr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Kxr=TB("Flow_ast.Type.Object.CallProperty.value"),Jxr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Wxr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],qxr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],zxr=[0,[17,0,[12,41,0]],TB(st)],Qxr=[0,[17,0,0],TB(Cl)],Zxr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],rLr=TB(Qu),tLr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],eLr=[0,[9,0,0],TB(Nb)],nLr=[0,[17,0,0],TB(Cl)],uLr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],aLr=TB(Ku),iLr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cLr=TB(tw),fLr=TB(os),oLr=TB(Zv),sLr=[0,[17,0,0],TB(Cl)],vLr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],lLr=[0,[15,0],TB(kD)],DLr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],pLr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],bLr=[0,[17,0,[12,41,0]],TB(st)],ELr=[0,[15,0],TB(kD)],FLr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],dLr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],mLr=[0,[17,0,[12,41,0]],TB(st)],hLr=[0,[15,0],TB(kD)],kLr=TB(mp),yLr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],ALr=TB("Flow_ast.Type.Object.Indexer.id"),_Lr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],CLr=TB(tw),wLr=TB(os),SLr=TB(Zv),gLr=[0,[17,0,0],TB(Cl)],BLr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],TLr=TB($g),ILr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],OLr=[0,[17,0,0],TB(Cl)],NLr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],xLr=TB(WF),LLr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],PLr=[0,[17,0,0],TB(Cl)],RLr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],MLr=TB(Qu),GLr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ULr=[0,[9,0,0],TB(Nb)],jLr=[0,[17,0,0],TB(Cl)],XLr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],HLr=TB(Xp),$Lr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],YLr=TB(tw),VLr=TB(os),KLr=TB(Zv),JLr=[0,[17,0,0],TB(Cl)],WLr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],qLr=TB(Ku),zLr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],QLr=TB(tw),ZLr=TB(os),rPr=TB(Zv),tPr=[0,[17,0,0],TB(Cl)],ePr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],nPr=[0,[15,0],TB(kD)],uPr=TB(mp),aPr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],iPr=TB("Flow_ast.Type.Object.SpreadProperty.argument"),cPr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],fPr=[0,[17,0,0],TB(Cl)],oPr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],sPr=TB(Ku),vPr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],lPr=TB(tw),DPr=TB(os),pPr=TB(Zv),bPr=[0,[17,0,0],TB(Cl)],EPr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],FPr=[0,[15,0],TB(kD)],dPr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],mPr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],hPr=[0,[17,0,[12,41,0]],TB(st)],kPr=[0,[15,0],TB(kD)],yPr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.Property.Init"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.Property.Init@ ")],APr=[0,[17,0,[12,41,0]],TB(st)],_Pr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.Property.Get"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.Property.Get@ ")],CPr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],wPr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],SPr=[0,[17,0,[12,41,0]],TB(st)],gPr=[0,[17,0,[12,41,0]],TB(st)],BPr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Object.Property.Set"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Object.Property.Set@ ")],TPr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],IPr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],OPr=[0,[17,0,[12,41,0]],TB(st)],NPr=[0,[17,0,[12,41,0]],TB(st)],xPr=[0,[15,0],TB(kD)],LPr=TB(mp),PPr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],RPr=TB("Flow_ast.Type.Object.Property.key"),MPr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],GPr=[0,[17,0,0],TB(Cl)],UPr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],jPr=TB(WF),XPr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HPr=[0,[17,0,0],TB(Cl)],$Pr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],YPr=TB(Al),VPr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],KPr=[0,[9,0,0],TB(Nb)],JPr=[0,[17,0,0],TB(Cl)],WPr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],qPr=TB(Qu),zPr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],QPr=[0,[9,0,0],TB(Nb)],ZPr=[0,[17,0,0],TB(Cl)],rRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tRr=TB(Ch),eRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nRr=[0,[9,0,0],TB(Nb)],uRr=[0,[17,0,0],TB(Cl)],aRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],iRr=TB(N),cRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],fRr=[0,[9,0,0],TB(Nb)],oRr=[0,[17,0,0],TB(Cl)],sRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],vRr=TB(Xp),lRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],DRr=TB(tw),pRr=TB(os),bRr=TB(Zv),ERr=[0,[17,0,0],TB(Cl)],FRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],dRr=TB(Ku),mRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hRr=TB(tw),kRr=TB(os),yRr=TB(Zv),ARr=[0,[17,0,0],TB(Cl)],_Rr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],CRr=[0,[15,0],TB(kD)],wRr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],SRr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],gRr=[0,[17,0,[12,41,0]],TB(st)],BRr=[0,[15,0],TB(kD)],TRr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],IRr=TB("Flow_ast.Type.OptionalIndexedAccess.indexed_access"),ORr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],NRr=[0,[17,0,0],TB(Cl)],xRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],LRr=TB(Al),PRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],RRr=[0,[9,0,0],TB(Nb)],MRr=[0,[17,0,0],TB(Cl)],GRr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],URr=[0,[15,0],TB(kD)],jRr=TB(mp),XRr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],HRr=TB("Flow_ast.Type.IndexedAccess._object"),$Rr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],YRr=[0,[17,0,0],TB(Cl)],VRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],KRr=TB("index"),JRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],WRr=[0,[17,0,0],TB(Cl)],qRr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],zRr=TB(Ku),QRr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],ZRr=TB(tw),rMr=TB(os),tMr=TB(Zv),eMr=[0,[17,0,0],TB(Cl)],nMr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],uMr=[0,[15,0],TB(kD)],aMr=TB(mp),iMr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],cMr=TB("Flow_ast.Type.Generic.id"),fMr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],oMr=[0,[17,0,0],TB(Cl)],sMr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],vMr=TB(PA),lMr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],DMr=TB(tw),pMr=TB(os),bMr=TB(Zv),EMr=[0,[17,0,0],TB(Cl)],FMr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],dMr=TB(Ku),mMr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],hMr=TB(tw),kMr=TB(os),yMr=TB(Zv),AMr=[0,[17,0,0],TB(Cl)],_Mr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],CMr=[0,[15,0],TB(kD)],wMr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],SMr=TB("Flow_ast.Type.Generic.Identifier.qualification"),gMr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],BMr=[0,[17,0,0],TB(Cl)],TMr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],IMr=TB(Ai),OMr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],NMr=[0,[17,0,0],TB(Cl)],xMr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],LMr=[0,[15,0],TB(kD)],PMr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],RMr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],MMr=[0,[17,0,[12,41,0]],TB(st)],GMr=[0,[15,0],TB(kD)],UMr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Generic.Identifier.Unqualified"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Generic.Identifier.Unqualified@ ")],jMr=[0,[17,0,[12,41,0]],TB(st)],XMr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Type.Generic.Identifier.Qualified"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Type.Generic.Identifier.Qualified@ ")],HMr=[0,[17,0,[12,41,0]],TB(st)],$Mr=[0,[15,0],TB(kD)],YMr=TB(mp),VMr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],KMr=TB("Flow_ast.Type.Function.tparams"),JMr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],WMr=TB(tw),qMr=TB(os),zMr=TB(Zv),QMr=[0,[17,0,0],TB(Cl)],ZMr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],rGr=TB(_),tGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],eGr=[0,[17,0,0],TB(Cl)],nGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],uGr=TB(Qe),aGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],iGr=[0,[17,0,0],TB(Cl)],cGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],fGr=TB(Ku),oGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],sGr=TB(tw),vGr=TB(os),lGr=TB(Zv),DGr=[0,[17,0,0],TB(Cl)],pGr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],bGr=[0,[15,0],TB(kD)],EGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],FGr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],dGr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],mGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],hGr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],kGr=TB("Flow_ast.Type.Function.Params.this_"),yGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],AGr=TB(tw),_Gr=TB(os),CGr=TB(Zv),wGr=[0,[17,0,0],TB(Cl)],SGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],gGr=TB(_),BGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],TGr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],IGr=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],OGr=[0,[17,0,0],TB(Cl)],NGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],xGr=TB(Ca),LGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],PGr=TB(tw),RGr=TB(os),MGr=TB(Zv),GGr=[0,[17,0,0],TB(Cl)],UGr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],jGr=TB(Ku),XGr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],HGr=TB(tw),$Gr=TB(os),YGr=TB(Zv),VGr=[0,[17,0,0],TB(Cl)],KGr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],JGr=[0,[15,0],TB(kD)],WGr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],qGr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],zGr=[0,[17,0,[12,41,0]],TB(st)],QGr=[0,[15,0],TB(kD)],ZGr=TB(mp),rUr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],tUr=TB("Flow_ast.Type.Function.ThisParam.annot"),eUr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nUr=[0,[17,0,0],TB(Cl)],uUr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],aUr=TB(Ku),iUr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cUr=TB(tw),fUr=TB(os),oUr=TB(Zv),sUr=[0,[17,0,0],TB(Cl)],vUr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],lUr=[0,[15,0],TB(kD)],DUr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],pUr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],bUr=[0,[17,0,[12,41,0]],TB(st)],EUr=[0,[15,0],TB(kD)],FUr=TB(mp),dUr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],mUr=TB("Flow_ast.Type.Function.RestParam.argument"),hUr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],kUr=[0,[17,0,0],TB(Cl)],yUr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],AUr=TB(Ku),_Ur=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],CUr=TB(tw),wUr=TB(os),SUr=TB(Zv),gUr=[0,[17,0,0],TB(Cl)],BUr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],TUr=[0,[15,0],TB(kD)],IUr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],OUr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],NUr=[0,[17,0,[12,41,0]],TB(st)],xUr=[0,[15,0],TB(kD)],LUr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],PUr=TB("Flow_ast.Type.Function.Param.name"),RUr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],MUr=TB(tw),GUr=TB(os),UUr=TB(Zv),jUr=[0,[17,0,0],TB(Cl)],XUr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],HUr=TB(aa),$Ur=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],YUr=[0,[17,0,0],TB(Cl)],VUr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],KUr=TB(Al),JUr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],WUr=[0,[9,0,0],TB(Nb)],qUr=[0,[17,0,0],TB(Cl)],zUr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],QUr=[0,[15,0],TB(kD)],ZUr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],rjr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],tjr=[0,[17,0,[12,41,0]],TB(st)],ejr=[0,[15,0],TB(kD)],njr=TB(mp),ujr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],ajr=TB("Flow_ast.ComputedKey.expression"),ijr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cjr=[0,[17,0,0],TB(Cl)],fjr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ojr=TB(Ku),sjr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],vjr=TB(tw),ljr=TB(os),Djr=TB(Zv),pjr=[0,[17,0,0],TB(Cl)],bjr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],Ejr=[0,[15,0],TB(kD)],Fjr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],djr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],mjr=[0,[17,0,[12,41,0]],TB(st)],hjr=[0,[15,0],TB(kD)],kjr=TB(mp),yjr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],Ajr=TB("Flow_ast.Variance.kind"),_jr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Cjr=[0,[17,0,0],TB(Cl)],wjr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Sjr=TB(Ku),gjr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Bjr=TB(tw),Tjr=TB(os),Ijr=TB(Zv),Ojr=[0,[17,0,0],TB(Cl)],Njr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],xjr=[0,[15,0],TB(kD)],Ljr=TB("Flow_ast.Variance.Minus"),Pjr=TB("Flow_ast.Variance.Plus"),Rjr=[0,[15,0],TB(kD)],Mjr=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],Gjr=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],Ujr=[0,[17,0,[12,41,0]],TB(st)],jjr=[0,[15,0],TB(kD)],Xjr=TB(mp),Hjr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],$jr=TB("Flow_ast.BooleanLiteral.value"),Yjr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],Vjr=[0,[9,0,0],TB(Nb)],Kjr=[0,[17,0,0],TB(Cl)],Jjr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],Wjr=TB(Ku),qjr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],zjr=TB(tw),Qjr=TB(os),Zjr=TB(Zv),rXr=[0,[17,0,0],TB(Cl)],tXr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],eXr=[0,[15,0],TB(kD)],nXr=TB(mp),uXr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],aXr=TB("Flow_ast.BigIntLiteral.approx_value"),iXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],cXr=[0,[8,[0,0,5],0,0,0],TB(ic)],fXr=[0,[17,0,0],TB(Cl)],oXr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],sXr=TB(qd),vXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],lXr=[0,[3,0,0],TB(tA)],DXr=[0,[17,0,0],TB(Cl)],pXr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],bXr=TB(Ku),EXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],FXr=TB(tw),dXr=TB(os),mXr=TB(Zv),hXr=[0,[17,0,0],TB(Cl)],kXr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],yXr=[0,[15,0],TB(kD)],AXr=TB(mp),_Xr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],CXr=TB("Flow_ast.NumberLiteral.value"),wXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],SXr=[0,[8,[0,0,5],0,0,0],TB(ic)],gXr=[0,[17,0,0],TB(Cl)],BXr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],TXr=TB(Tt),IXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],OXr=[0,[3,0,0],TB(tA)],NXr=[0,[17,0,0],TB(Cl)],xXr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],LXr=TB(Ku),PXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],RXr=TB(tw),MXr=TB(os),GXr=TB(Zv),UXr=[0,[17,0,0],TB(Cl)],jXr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],XXr=[0,[15,0],TB(kD)],HXr=TB(mp),$Xr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],YXr=TB("Flow_ast.StringLiteral.value"),VXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],KXr=[0,[3,0,0],TB(tA)],JXr=[0,[17,0,0],TB(Cl)],WXr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],qXr=TB(Tt),zXr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],QXr=[0,[3,0,0],TB(tA)],ZXr=[0,[17,0,0],TB(Cl)],rHr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],tHr=TB(Ku),eHr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],nHr=TB(tw),uHr=TB(os),aHr=TB(Zv),iHr=[0,[17,0,0],TB(Cl)],cHr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],fHr=[0,[15,0],TB(kD)],oHr=TB("Flow_ast.Literal.Null"),sHr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Literal.String"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Literal.String@ ")],vHr=[0,[3,0,0],TB(tA)],lHr=[0,[17,0,[12,41,0]],TB(st)],DHr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Literal.Boolean"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Literal.Boolean@ ")],pHr=[0,[9,0,0],TB(Nb)],bHr=[0,[17,0,[12,41,0]],TB(st)],EHr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Literal.Number"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Literal.Number@ ")],FHr=[0,[8,[0,0,5],0,0,0],TB(ic)],dHr=[0,[17,0,[12,41,0]],TB(st)],mHr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Literal.BigInt"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Literal.BigInt@ ")],hHr=[0,[8,[0,0,5],0,0,0],TB(ic)],kHr=[0,[17,0,[12,41,0]],TB(st)],yHr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("Flow_ast.Literal.RegExp"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>Flow_ast.Literal.RegExp@ ")],AHr=[0,[17,0,[12,41,0]],TB(st)],_Hr=[0,[15,0],TB(kD)],CHr=TB(mp),wHr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],SHr=TB("Flow_ast.Literal.value"),gHr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],BHr=[0,[17,0,0],TB(Cl)],THr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],IHr=TB(Tt),OHr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],NHr=[0,[3,0,0],TB(tA)],xHr=[0,[17,0,0],TB(Cl)],LHr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],PHr=TB(Ku),RHr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],MHr=TB(tw),GHr=TB(os),UHr=TB(Zv),jHr=[0,[17,0,0],TB(Cl)],XHr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],HHr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],$Hr=TB("Flow_ast.Literal.RegExp.pattern"),YHr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],VHr=[0,[3,0,0],TB(tA)],KHr=[0,[17,0,0],TB(Cl)],JHr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],WHr=TB(UF),qHr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],zHr=[0,[3,0,0],TB(tA)],QHr=[0,[17,0,0],TB(Cl)],ZHr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],r$r=[0,[15,0],TB(kD)],t$r=[0,[15,0],TB(kD)],e$r=TB(mp),n$r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],u$r=TB("Flow_ast.PrivateName.id"),a$r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],i$r=[0,[17,0,0],TB(Cl)],c$r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],f$r=TB(Ku),o$r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],s$r=TB(tw),v$r=TB(os),l$r=TB(Zv),D$r=[0,[17,0,0],TB(Cl)],p$r=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],b$r=[0,[15,0],TB(kD)],E$r=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],F$r=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],d$r=[0,[17,0,[12,41,0]],TB(st)],m$r=[0,[15,0],TB(kD)],h$r=TB(mp),k$r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],y$r=TB("Flow_ast.Identifier.name"),A$r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],_$r=[0,[3,0,0],TB(tA)],C$r=[0,[17,0,0],TB(Cl)],w$r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],S$r=TB(Ku),g$r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],B$r=TB(tw),T$r=TB(os),I$r=TB(Zv),O$r=[0,[17,0,0],TB(Cl)],N$r=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],x$r=[0,[15,0],TB(kD)],L$r=[0,[12,40,[18,[1,[0,0,TB(D_)]],0]],TB(pd)],P$r=[0,[12,44,[17,[0,TB(Th),1,0],0]],TB(pg)],R$r=[0,[17,0,[12,41,0]],TB(st)],M$r=[0,[15,0],TB(kD)],G$r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],U$r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],j$r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],X$r=TB("Flow_ast.Syntax.leading"),H$r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],$$r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],Y$r=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],V$r=[0,[17,0,0],TB(Cl)],K$r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],J$r=TB("trailing"),W$r=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],q$r=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[12,91,0]],TB(cb)],z$r=[0,[17,[0,TB(Ko),0,0],[12,93,[17,0,0]]],TB(Cc)],Q$r=[0,[17,0,0],TB(Cl)],Z$r=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],rYr=TB(io),tYr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],eYr=[0,[17,0,0],TB(Cl)],nYr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],uYr=[0,[0,0,0]],aYr=[0,TB(x_),22,2],iYr=[0,[0,0,0,0,0]],cYr=[0,TB(x_),33,2],fYr=[0,[0,0,0,0,0]],oYr=[0,TB(x_),44,2],sYr=[0,[0,[0,[0,0,0]],0,0,0,0]],vYr=[0,TB(x_),71,2],lYr=[0,[0,0,0]],DYr=[0,TB(x_),81,2],pYr=[0,[0,0,0]],bYr=[0,TB(x_),91,2],EYr=[0,[0,0,0]],FYr=[0,TB(x_),Pm,2],dYr=[0,[0,0,0]],mYr=[0,TB(x_),Vr,2],hYr=[0,[0,0,0,0,0,0,0]],kYr=[0,TB(x_),YE,2],yYr=[0,[0,0,0,0,0]],AYr=[0,TB(x_),137,2],_Yr=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],CYr=[0,TB(x_),475,2],wYr=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],SYr=[0,TB(x_),1010,2],gYr=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],BYr=[0,TB(x_),1442,2],TYr=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],IYr=[0,TB(x_),1586,2],OYr=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],NYr=[0,TB(x_),1671,2],xYr=[0,[0,0,0,0,0,0,0]],LYr=[0,TB(x_),1687,2],PYr=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],RYr=[0,TB(x_),1810,2],MYr=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],GYr=[0,TB(x_),1877,2],UYr=[0,[0,0,0,0,0]],jYr=[0,TB(x_),1889,2],XYr=[0,[0,0,0]],HYr=[0,[0,0,0,0,0]],$Yr=[0,[0,0,0,0,0]],YYr=[0,[0,[0,[0,0,0]],0,0,0,0]],VYr=[0,[0,0,0]],KYr=[0,[0,0,0]],JYr=[0,[0,0,0]],WYr=[0,[0,0,0]],qYr=[0,[0,0,0,0,0,0,0]],zYr=[0,[0,0,0,0,0]],QYr=[0,[0,[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]]]],ZYr=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],rVr=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],tVr=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],eVr=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],nVr=[0,[0,0,0,0,0,0,0]],uVr=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],aVr=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],iVr=[0,[0,0,0,0,0]],cVr=[0,1],fVr=[0,0],oVr=[0,2],sVr=[0,0],vVr=[0,1],lVr=[0,1],DVr=[0,1],pVr=[0,1],bVr=[0,0,0],EVr=[0,0,0],FVr=[0,TB(Eb),TB(Av),TB($l),TB(wE),TB(Xp),TB(Rg),TB(Di),TB(_S),TB(Ln),TB(_E),TB(HE),TB(jw),TB(Mo),TB(pe),TB(MA),TB(Jn),TB(bF),TB(HC),TB(Fv),TB(Uv),TB(gc),TB(bD),TB(Zh),TB(Ol),TB(ur),TB(BE),TB(ln),TB(Qb),TB(Hv),TB(Ea),TB(nd),TB(sb),TB(jE),TB(Lg),TB(n_),TB(xf),TB(_v),TB(Nt),TB(Kg),TB(Gn),TB(Ji),TB(Qe),TB(wc),TB(Ok),TB(c),TB(bl),TB(Ew),TB(ym),TB(By),TB($v),TB(RS),TB(nk),TB(Uh),TB(sn),TB($F),TB(yu),TB(qu),TB(Mg),TB(XS),TB(Dk),TB(Et),TB(jm),TB(wa),TB(Ba),TB(Kp),TB(Sh),TB(VF),TB(Xt),TB(jC),TB(jd),TB($S),TB(vS),TB(bh),TB(hD),TB(mi),TB(fn),TB(fr),TB(pu),TB(ai),TB(xk),TB(ly),TB(ju),TB(zw),TB(oe),TB(qo),TB(JF),TB(mc),TB(xt),TB(yg),TB(e),TB(wg),TB(jv),TB(ev),TB(m_),TB(Bv),TB(ii),TB(zo),TB(ay),TB($o),TB(Pg),TB(nc),TB(Jm),TB(Gg),TB(h_),TB(Hm),TB(Rw),TB(U),TB(No),TB(ip),TB(lo),TB(zl),TB(mF),TB(TE),TB(ng),TB(So),TB(br),TB(Rr),TB(Sa),TB(Ym),TB(Jk),TB(LS),TB(An),TB(XC),TB(cl),TB(Ob),TB(Hr),TB(t_),TB(r_),TB(zf),TB(u_),TB(Dv),TB(Yp),TB(Xg),TB(ny),TB(gC),TB(qh),TB(kt),TB(gg),TB(Au),TB(ZS),TB(sw),TB(VS),TB(Bc),TB(gk),TB(ut),TB(eC),TB(pf),TB(SF),TB(Lk),TB(ci),TB(er),TB(mn),TB(Eo),TB(cf),TB(XA),TB(cB),TB(Rp),TB(bE),TB(g),TB(nS),TB($c),TB(y_),TB(SC),TB(zg),TB(ms),TB(my),TB(Un),TB(fe),TB(El),TB(to),TB(ye),TB(xh),TB(Xh),TB(Aw),TB(Zr),TB(Zy),TB(yp),TB(He),TB(is),TB(_w),TB(xe),TB(Pn),TB(Sd),TB(rv),TB(ok),TB(Ih),TB(Sk),TB(xd),TB(vb),TB(G_),TB(hf),TB(AE),TB(hp),TB(Ph),TB(Mu),TB(Y_),TB(RA),TB(Ni),TB(Wi),TB(XD),TB(nh),TB(rk),TB(da),TB(fb),TB(Gt),TB(dE),TB(wi),TB(Pf),TB(Qn),TB(K_),TB(Vt),TB(ar),TB(pn),TB(tS),TB(oC),TB(tk),TB(mC),TB(ue),TB(P),TB(qi),TB(Zp),TB(fc),TB(he),TB(Yc),TB(dC),TB(y),TB(Mr),TB(vt),TB(Lv),TB(su),TB(Cm),TB(ik),TB(zy),TB(pp),TB(us)],dVr=[0,TB(Nt),TB(Sa),TB(Lk),TB(Au),TB(he),TB(yu),TB(JF),TB(ai),TB(No),TB(Ob),TB(HC),TB(jE),TB(jd),TB(xh),TB(tS),TB(ng),TB(mc),TB(br),TB(Ih),TB(Av),TB(g),TB(Pg),TB(qo),TB(sw),TB(ok),TB(gg),TB(wE),TB(ms),TB(Uh),TB(Mu),TB(qi),TB(ci),TB(P),TB(mF),TB(He),TB(gk),TB(XS),TB(nS),TB(sb),TB(Lv),TB(xk),TB(qh),TB(xf),TB(Sk),TB($o),TB(xt),TB(ar),TB(dE),TB(Sh),TB(By),TB(pu),TB(ym),TB(Hm),TB(Qn),TB(vS),TB(bl),TB(fn),TB(eC),TB(yg),TB(ip),TB(TE),TB(ZS),TB(ii),TB(nh),TB(Uv),TB(xe),TB(fr),TB(Rw),TB(da),TB(zo),TB(SF),TB(nk),TB(zy),TB(hp),TB(Zy),TB(jv),TB(Ba),TB(pp),TB(Zp),TB(Ji),TB(Xp),TB(Ew),TB(gC),TB(vt),TB(bE),TB(Ol),TB(LS),TB(pn),TB(zw),TB(nd),TB(xd),TB(SC),TB(Fv),TB(Eb),TB(Zh),TB(RA),TB(jw),TB(jm),TB(wc),TB(HE),TB(Gt),TB(Y_),TB(_S),TB(So),TB($v),TB(cl),TB(Sd),TB(fe),TB($S),TB(Xh),TB(ay),TB(Et),TB(my),TB(pe),TB(bD),TB(Rg),TB(Kg),TB(Mo),TB(_E),TB(K_),TB($c),TB(wi),TB(m_),TB(pf),TB(Ln),TB(fb),TB(oe),TB(Jm),TB(su),TB(ev),TB(tk),TB(r_),TB(Dk),TB(VF),TB(Gg),TB(wg),TB(ny),TB(Qe),TB(dC),TB(Lg),TB(Mg),TB(ur),TB(Wi),TB(kt),TB(jC),TB(to),TB(Rr),TB(Kp),TB(Eo),TB(rv),TB(zf),TB(Pf),TB(er),TB(Bv),TB(Ym),TB(VS),TB(ut),TB(Pn),TB(c),TB(cB),TB(Yp),TB(_w),TB(Zr),TB(ju),TB(Gn),TB(u_),TB(hD),TB(sn),TB(gc),TB(mi),TB(MA),TB(fc),TB(AE),TB(mC),TB(Ph),TB(An),TB(Ea),TB(Bc),TB(Ok),TB(Xg),TB(oC),TB(ly),TB(zl),TB(Vt),TB(Hr),TB(vb),TB(bF),TB(us),TB(Di),TB(ue),TB(Jn),TB(G_),TB(lo),TB(Jk),TB(rk),TB(nc),TB($F),TB(XC),TB(Un),TB(h_),TB(Qb),TB(Cm),TB(qu),TB(Mr),TB(ye),TB(wa),TB(El),TB(cf),TB(XA),TB(_v),TB(XD),TB(mn),TB(RS),TB(yp),TB(hf),TB(ln),TB(Hv),TB(n_),TB(Rp),TB(Aw),TB(y_),TB(Xt),TB(y),TB(Dv),TB(U),TB(bh),TB(Ni),TB(is),TB(Yc),TB(ik),TB(t_),TB($l),TB(zg),TB(BE),TB(e)],mVr=TB("File_key.Builtins"),hVr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("File_key.LibFile"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>File_key.LibFile@ ")],kVr=[0,[3,0,0],TB(tA)],yVr=[0,[17,0,[12,41,0]],TB(st)],AVr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("File_key.SourceFile"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>File_key.SourceFile@ ")],_Vr=[0,[3,0,0],TB(tA)],CVr=[0,[17,0,[12,41,0]],TB(st)],wVr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("File_key.JsonFile"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>File_key.JsonFile@ ")],SVr=[0,[3,0,0],TB(tA)],gVr=[0,[17,0,[12,41,0]],TB(st)],BVr=[0,[12,40,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB("File_key.ResourceFile"),[17,[0,TB(Th),1,0],0]]]],TB("(@[<2>File_key.ResourceFile@ ")],TVr=[0,[3,0,0],TB(tA)],IVr=[0,[17,0,[12,41,0]],TB(st)],OVr=TB(an),NVr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],xVr=TB("Loc.line"),LVr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],PVr=[0,[4,0,0,0,0],TB(Vn)],RVr=[0,[17,0,0],TB(Cl)],MVr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],GVr=TB(Ae),UVr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],jVr=[0,[4,0,0,0,0],TB(Vn)],XVr=[0,[17,0,0],TB(Cl)],HVr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],$Vr=[0,[15,0],TB(kD)],YVr=[0,[18,[1,[0,[11,TB(sg),0],TB(sg)]],[11,TB(Ho),0]],TB(yn)],VVr=TB("Loc.source"),KVr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],JVr=TB(tw),WVr=TB(os),qVr=TB(Zv),zVr=[0,[17,0,0],TB(Cl)],QVr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],ZVr=TB(I),rKr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],tKr=[0,[17,0,0],TB(Cl)],eKr=[0,[12,59,[17,[0,TB(Th),1,0],0]],TB(Gm)],nKr=TB("_end"),uKr=[0,[18,[1,[0,0,TB(D_)]],[2,0,[11,TB(DD),[17,[0,TB(Th),1,0],0]]]],TB(bs)],aKr=[0,[17,0,0],TB(Cl)],iKr=[0,[17,[0,TB(Th),1,0],[12,$d,[17,0,0]]],TB(Dm)],cKr=TB("=="),fKr=TB("!="),oKr=TB("==="),sKr=TB("!=="),vKr=TB(dd),lKr=TB("<="),DKr=TB(L),pKr=TB(">="),bKr=TB("<<"),EKr=TB(">>"),FKr=TB(">>>"),dKr=TB(U_),mKr=TB(kA),hKr=TB("*"),kKr=TB("**"),yKr=TB(ds),AKr=TB("%"),_Kr=TB("|"),CKr=TB(E_),wKr=TB("&"),SKr=TB(Vf),gKr=TB(vo),BKr=TB("+="),TKr=TB("-="),IKr=TB("*="),OKr=TB("**="),NKr=TB("/="),xKr=TB("%="),LKr=TB("<<="),PKr=TB(">>="),RKr=TB(Ap),MKr=TB("|="),GKr=TB("^="),UKr=TB("&="),jKr=TB(me),XKr=TB(Ss),HKr=TB(mk),$Kr=TB(Na),YKr=TB("Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead."),VKr=TB("Enum members are separated with `,`. Replace `;` with `,`."),KKr=TB("Unexpected reserved word"),JKr=TB("Unexpected reserved type"),WKr=TB("Unexpected `super` outside of a class method"),qKr=TB("`super()` is only valid in a class constructor"),zKr=TB("Unexpected end of input"),QKr=TB("Unexpected variance sigil"),ZKr=TB("Unexpected static modifier"),rJr=TB("Unexpected proto modifier"),tJr=TB("Type aliases are not allowed in untyped mode"),eJr=TB("Opaque type aliases are not allowed in untyped mode"),nJr=TB("Type annotations are not allowed in untyped mode"),uJr=TB("Type declarations are not allowed in untyped mode"),aJr=TB("Type imports are not allowed in untyped mode"),iJr=TB("Type exports are not allowed in untyped mode"),cJr=TB("Interfaces are not allowed in untyped mode"),fJr=TB("Spreading a type is only allowed inside an object type"),oJr=TB("Explicit inexact syntax must come at the end of an object type"),sJr=TB("Explicit inexact syntax cannot appear inside an explicit exact object type"),vJr=TB("Explicit inexact syntax can only appear inside an object type"),lJr=TB("Illegal newline after throw"),DJr=TB("A bigint literal must be an integer"),pJr=TB("A bigint literal cannot use exponential notation"),bJr=TB("Invalid regular expression"),EJr=TB("Invalid regular expression: missing /"),FJr=TB("Invalid left-hand side in assignment"),dJr=TB("Invalid left-hand side in exponentiation expression"),mJr=TB("Invalid left-hand side in for-in"),hJr=TB("Invalid left-hand side in for-of"),kJr=TB("Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`."),yJr=TB("found an expression instead"),AJr=TB("Expected an object pattern, array pattern, or an identifier but "),_Jr=TB("More than one default clause in switch statement"),CJr=TB("Missing catch or finally after try"),wJr=TB("Illegal continue statement"),SJr=TB("Illegal break statement"),gJr=TB("Illegal return statement"),BJr=TB("Illegal Unicode escape"),TJr=TB("Strict mode code may not include a with statement"),IJr=TB("Catch variable may not be eval or arguments in strict mode"),OJr=TB("Variable name may not be eval or arguments in strict mode"),NJr=TB("Parameter name eval or arguments is not allowed in strict mode"),xJr=TB("Strict mode function may not have duplicate parameter names"),LJr=TB("Function name may not be eval or arguments in strict mode"),PJr=TB("Octal literals are not allowed in strict mode."),RJr=TB("Number literals with leading zeros are not allowed in strict mode."),MJr=TB("Delete of an unqualified identifier in strict mode."),GJr=TB("Duplicate data property in object literal not allowed in strict mode"),UJr=TB("Object literal may not have data and accessor property with the same name"),jJr=TB("Object literal may not have multiple get/set accessors with the same name"),XJr=TB("Assignment to eval or arguments is not allowed in strict mode"),HJr=TB("Postfix increment/decrement may not have eval or arguments operand in strict mode"),$Jr=TB("Prefix increment/decrement may not have eval or arguments operand in strict mode"),YJr=TB("Use of future reserved word in strict mode"),VJr=TB("JSX attributes must only be assigned a non-empty expression"),KJr=TB("JSX value should be either an expression or a quoted JSX text"),JJr=TB("Const must be initialized"),WJr=TB("Destructuring assignment must be initialized"),qJr=TB("Illegal newline before arrow"),zJr=TB(am),QJr=TB("Async functions can only be declared at top level or "),ZJr=TB(am),rWr=TB("Generators can only be declared at top level or "),tWr=TB("elements must be wrapped in an enclosing parent tag"),eWr=TB("Unexpected token <. Remember, adjacent JSX "),nWr=TB("Rest parameter must be final parameter of an argument list"),uWr=TB("Rest element must be final element of an array pattern"),aWr=TB("Rest property must be final property of an object pattern"),iWr=TB("async is an implementation detail and isn't necessary for your declare function statement. It is sufficient for your declare function to just have a Promise return type."),cWr=TB("`declare` modifier can only appear on class fields."),fWr=TB("Unexpected token `=`. Initializers are not allowed in a `declare`."),oWr=TB("Unexpected token `=`. Initializers are not allowed in a `declare opaque type`."),sWr=TB("`declare export let` is not supported. Use `declare export var` instead."),vWr=TB("`declare export const` is not supported. Use `declare export var` instead."),lWr=TB("`declare export type` is not supported. Use `export type` instead."),DWr=TB("`declare export interface` is not supported. Use `export interface` instead."),pWr=TB("`export * as` is an early-stage proposal and is not enabled by default. To enable support in the parser, use the `esproposal_export_star_as` option"),bWr=TB("When exporting a class as a named export, you must specify a class name. Did you mean `export default class ...`?"),EWr=TB("When exporting a function as a named export, you must specify a function name. Did you mean `export default function ...`?"),FWr=TB("Found a decorator in an unsupported position."),dWr=TB("Type parameter declaration needs a default, since a preceding type parameter declaration has a default."),mWr=TB("Duplicate `declare module.exports` statement!"),hWr=TB("Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module xor they are a CommonJS module."),kWr=TB("Getter should have zero parameters"),yWr=TB("Setter should have exactly one parameter"),AWr=TB("`import type` or `import typeof`!"),_Wr=TB("Imports within a `declare module` body must always be "),CWr=TB("The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements"),wWr=TB("Missing comma between import specifiers"),SWr=TB("Missing comma between export specifiers"),gWr=TB("Malformed unicode"),BWr=TB("Classes may only have one constructor"),TWr=TB("Classes may not have private methods."),IWr=TB("Private fields may not be deleted."),OWr=TB("Private fields can only be referenced from within a class."),NWr=TB("You may not access a private field through the `super` keyword."),xWr=TB("Yield expression not allowed in formal parameter"),LWr=TB("`await` is an invalid identifier in async functions"),PWr=TB("`yield` is an invalid identifier in generators"),RWr=TB("either a `let` binding pattern, or a member expression."),MWr=TB("`let [` is ambiguous in this position because it is "),GWr=TB("Literals cannot be used as shorthand properties."),UWr=TB("Computed properties must have a value."),jWr=TB("Object pattern can't contain methods"),XWr=TB("A trailing comma is not permitted after the rest element"),HWr=TB("The optional chaining plugin must be enabled in order to use the optional chaining operator (`?.`). Optional chaining is an active early-stage feature proposal which may change and is not enabled by default. To enable support in the parser, use the `esproposal_optional_chaining` option."),$Wr=TB("An optional chain may not be used in a `new` expression."),YWr=TB("Template literals may not be used in an optional chain."),VWr=TB("The nullish coalescing plugin must be enabled in order to use the nullish coalescing operator (`??`). Nullish coalescing is an active early-stage feature proposal which may change and is not enabled by default. To enable support in the parser, use the `esproposal_nullish_coalescing` option."),KWr=TB("Unexpected whitespace between `#` and identifier"),JWr=TB("A type annotation is required for the `this` parameter."),WWr=TB("The `this` parameter must be the first function parameter."),qWr=TB("The `this` parameter cannot be optional."),zWr=TB("A getter cannot have a `this` parameter."),QWr=TB("A setter cannot have a `this` parameter."),ZWr=TB("Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared."),rqr=TB("Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions."),tqr=TB("Unexpected parser state: "),eqr=[0,[11,TB("Boolean enum members need to be initialized. Use either `"),[2,0,[11,TB(" = true,` or `"),[2,0,[11,TB(" = false,` in enum `"),[2,0,[11,TB(Xi),0]]]]]]],TB("Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`.")],nqr=[0,[11,TB("Enum member names need to be unique, but the name `"),[2,0,[11,TB("` has already been used before in enum `"),[2,0,[11,TB(Xi),0]]]]],TB("Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`.")],uqr=[0,[11,TB(cn),[2,0,[11,TB("` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."),0]]],TB("Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.")],aqr=[0,[11,TB("Use one of `boolean`, `number`, `string`, or `symbol` in enum `"),[2,0,[11,TB(Xi),0]]],TB("Use one of `boolean`, `number`, `string`, or `symbol` in enum `%s`.")],iqr=[0,[11,TB("Enum type `"),[2,0,[11,TB("` is not valid. "),[2,0,0]]]],TB("Enum type `%s` is not valid. %s")],cqr=[0,[11,TB("Supplied enum type is not valid. "),[2,0,0]],TB("Supplied enum type is not valid. %s")],fqr=[0,[11,TB("Enum member names and initializers are separated with `=`. Replace `"),[2,0,[11,TB(":` with `"),[2,0,[11,TB(" =`."),0]]]]],TB("Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`.")],oqr=[0,[11,TB("Symbol enum members cannot be initialized. Use `"),[2,0,[11,TB(",` in enum `"),[2,0,[11,TB(Xi),0]]]]],TB("Symbol enum members cannot be initialized. Use `%s,` in enum `%s`.")],sqr=[0,[11,TB(cn),[2,0,[11,TB("` has type `"),[2,0,[11,TB("`, so the initializer of `"),[2,0,[11,TB("` needs to be a "),[2,0,[11,TB(" literal."),0]]]]]]]]],TB("Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal.")],vqr=[0,[11,TB("The enum member initializer for `"),[2,0,[11,TB("` needs to be a literal (either a boolean, number, or string) in enum `"),[2,0,[11,TB(Xi),0]]]]],TB("The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`.")],lqr=[0,[11,TB("Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `"),[2,0,[11,TB("`, consider using `"),[2,0,[11,TB("`, in enum `"),[2,0,[11,TB(Xi),0]]]]]]],TB("Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`.")],Dqr=TB("The `...` must come at the end of the enum body. Remove the trailing comma."),pqr=TB("The `...` must come after all enum members. Move it to the end of the enum body."),bqr=[0,[11,TB("Number enum members need to be initialized, e.g. `"),[2,0,[11,TB(" = 1,` in enum `"),[2,0,[11,TB(Xi),0]]]]],TB("Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`.")],Eqr=[0,[11,TB("String enum members need to consistently either all use initializers, or use no initializers, in enum "),[2,0,[12,46,0]]],TB("String enum members need to consistently either all use initializers, or use no initializers, in enum %s.")],Fqr=[0,[11,TB(Bl),[2,0,0]],TB("Unexpected %s")],dqr=[0,[11,TB(Bl),[2,0,[11,TB(", expected "),[2,0,0]]]],TB("Unexpected %s, expected %s")],mqr=[0,[11,TB(oB),[2,0,[11,TB("`. Did you mean `"),[2,0,[11,TB("`?"),0]]]]],TB("Unexpected token `%s`. Did you mean `%s`?")],hqr=TB(km),kqr=TB("Invalid flags supplied to RegExp constructor '"),yqr=TB("Remove the period."),Aqr=TB("Indexed access uses bracket notation."),_qr=[0,[11,TB("Invalid indexed access. "),[2,0,[11,TB(" Use the format `T[K]`."),0]]],TB("Invalid indexed access. %s Use the format `T[K]`.")],Cqr=TB(km),wqr=TB("Undefined label '"),Sqr=TB("' has already been declared"),gqr=TB(" '"),Bqr=TB("Expected corresponding JSX closing tag for "),Tqr=TB(am),Iqr=TB("In strict mode code, functions can only be declared at top level or "),Oqr=TB("inside a block, or as the body of an if statement."),Nqr=TB("In non-strict mode code, functions can only be declared at top level, "),xqr=[0,[11,TB("Duplicate export for `"),[2,0,[12,96,0]]],TB("Duplicate export for `%s`")],Lqr=TB("` is declared more than once."),Pqr=TB("Private fields may only be declared once. `#"),Rqr=TB("static "),Mqr=TB(D_),Gqr=TB("#"),Uqr=TB(Xi),jqr=TB("fields named `"),Xqr=TB("Classes may not have "),Hqr=TB("` has not been declared."),$qr=TB("Private fields must be declared before they can be referenced. `#"),Yqr=[0,[11,TB(oB),[2,0,[11,TB("`. Parentheses are required to combine `??` with `&&` or `||` expressions."),0]]],TB("Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions.")],Vqr=TB("Parse_error.Error"),Kqr=[0,1,0],Jqr=[0,0,[0,1,0],[0,1,0]],Wqr=[0,TB("end of input"),TB("the")],qqr=[0,TB("template literal part"),TB(q_)],zqr=[0,TB(Fl),TB(q_)],Qqr=TB("the"),Zqr=TB(q_),rzr=TB(Ss),tzr=TB(q_),ezr=TB(qd),nzr=TB(q_),uzr=TB(mk),azr=TB("an"),izr=TB(gg),czr=TB(ZD),fzr=[0,[11,TB("token `"),[2,0,[12,96,0]]],TB("token `%s`")],ozr=TB("{"),szr=TB(kE),vzr=TB("{|"),lzr=TB("|}"),Dzr=TB("("),pzr=TB(os),bzr=TB("["),Ezr=TB("]"),Fzr=TB(";"),dzr=TB(","),mzr=TB(pF),hzr=TB("=>"),kzr=TB("..."),yzr=TB("@"),Azr=TB("#"),_zr=TB(xs),Czr=TB(nm),wzr=TB(Vf),Szr=TB(vo),gzr=TB(Qe),Bzr=TB(jE),Tzr=TB(hE),Izr=TB(ur),Ozr=TB(it),Nzr=TB(mb),xzr=TB(gw),Lzr=TB(Qs),Pzr=TB(Ma),Rzr=TB(ss),Mzr=TB(fd),Gzr=TB(Xa),Uzr=TB(Gk),jzr=TB(Yc),Xzr=TB(xA),Hzr=TB(jy),$zr=TB(XD),Yzr=TB(l_),Vzr=TB(Lr),Kzr=TB(Il),Jzr=TB(KS),Wzr=TB(MD),qzr=TB(wp),zzr=TB(Qu),Qzr=TB(Bu),Zzr=TB(Ws),rQr=TB(vk),tQr=TB(Of),eQr=TB(cs),nQr=TB(Xf),uQr=TB(vF),aQr=TB(ny),iQr=TB(Jf),cQr=TB(mt),fQr=TB(t_),oQr=TB(jr),sQr=TB(Dt),vQr=TB(Jy),lQr=TB($A),DQr=TB(Eb),pQr=TB(Wi),bQr=TB(re),EQr=TB(qr),FQr=TB(Ge),dQr=TB("of"),mQr=TB(_A),hQr=TB(lf),kQr=TB("%checks"),yQr=TB(Ap),AQr=TB(">>="),_Qr=TB("<<="),CQr=TB("^="),wQr=TB("|="),SQr=TB("&="),gQr=TB("%="),BQr=TB("/="),TQr=TB("*="),IQr=TB("**="),OQr=TB("-="),NQr=TB("+="),xQr=TB("="),LQr=TB("?."),PQr=TB(a),RQr=TB("?"),MQr=TB(wk),GQr=TB("||"),UQr=TB("&&"),jQr=TB("|"),XQr=TB(E_),HQr=TB("&"),$Qr=TB("=="),YQr=TB("!="),VQr=TB("==="),KQr=TB("!=="),JQr=TB("<="),WQr=TB(">="),qQr=TB(dd),zQr=TB(L),QQr=TB("<<"),ZQr=TB(">>"),rZr=TB(">>>"),tZr=TB(U_),eZr=TB(kA),nZr=TB(ds),uZr=TB("*"),aZr=TB("**"),iZr=TB("%"),cZr=TB("!"),fZr=TB("~"),oZr=TB("++"),sZr=TB("--"),vZr=TB(D_),lZr=TB(ry),DZr=TB(eD),pZr=TB(xd),bZr=TB(Ss),EZr=TB(qd),FZr=TB(mk),dZr=TB(cs),mZr=TB(Na),hZr=TB(ds),kZr=TB(ds),yZr=TB(me),AZr=TB(s_),_Zr=TB("T_LCURLY"),CZr=TB("T_RCURLY"),wZr=TB("T_LCURLYBAR"),SZr=TB("T_RCURLYBAR"),gZr=TB("T_LPAREN"),BZr=TB("T_RPAREN"),TZr=TB("T_LBRACKET"),IZr=TB("T_RBRACKET"),OZr=TB("T_SEMICOLON"),NZr=TB("T_COMMA"),xZr=TB("T_PERIOD"),LZr=TB("T_ARROW"),PZr=TB("T_ELLIPSIS"),RZr=TB("T_AT"),MZr=TB("T_POUND"),GZr=TB("T_FUNCTION"),UZr=TB("T_IF"),jZr=TB("T_IN"),XZr=TB("T_INSTANCEOF"),HZr=TB("T_RETURN"),$Zr=TB("T_SWITCH"),YZr=TB("T_THIS"),VZr=TB("T_THROW"),KZr=TB("T_TRY"),JZr=TB("T_VAR"),WZr=TB("T_WHILE"),qZr=TB("T_WITH"),zZr=TB("T_CONST"),QZr=TB("T_LET"),ZZr=TB("T_NULL"),r0r=TB("T_FALSE"),t0r=TB("T_TRUE"),e0r=TB("T_BREAK"),n0r=TB("T_CASE"),u0r=TB("T_CATCH"),a0r=TB("T_CONTINUE"),i0r=TB("T_DEFAULT"),c0r=TB("T_DO"),f0r=TB("T_FINALLY"),o0r=TB("T_FOR"),s0r=TB("T_CLASS"),v0r=TB("T_EXTENDS"),l0r=TB("T_STATIC"),D0r=TB("T_ELSE"),p0r=TB("T_NEW"),b0r=TB("T_DELETE"),E0r=TB("T_TYPEOF"),F0r=TB("T_VOID"),d0r=TB("T_ENUM"),m0r=TB("T_EXPORT"),h0r=TB("T_IMPORT"),k0r=TB("T_SUPER"),y0r=TB("T_IMPLEMENTS"),A0r=TB("T_INTERFACE"),_0r=TB("T_PACKAGE"),C0r=TB("T_PRIVATE"),w0r=TB("T_PROTECTED"),S0r=TB("T_PUBLIC"),g0r=TB("T_YIELD"),B0r=TB("T_DEBUGGER"),T0r=TB("T_DECLARE"),I0r=TB("T_TYPE"),O0r=TB("T_OPAQUE"),N0r=TB("T_OF"),x0r=TB("T_ASYNC"),L0r=TB("T_AWAIT"),P0r=TB("T_CHECKS"),R0r=TB("T_RSHIFT3_ASSIGN"),M0r=TB("T_RSHIFT_ASSIGN"),G0r=TB("T_LSHIFT_ASSIGN"),U0r=TB("T_BIT_XOR_ASSIGN"),j0r=TB("T_BIT_OR_ASSIGN"),X0r=TB("T_BIT_AND_ASSIGN"),H0r=TB("T_MOD_ASSIGN"),$0r=TB("T_DIV_ASSIGN"),Y0r=TB("T_MULT_ASSIGN"),V0r=TB("T_EXP_ASSIGN"),K0r=TB("T_MINUS_ASSIGN"),J0r=TB("T_PLUS_ASSIGN"),W0r=TB("T_ASSIGN"),q0r=TB("T_PLING_PERIOD"),z0r=TB("T_PLING_PLING"),Q0r=TB("T_PLING"),Z0r=TB("T_COLON"),r1r=TB("T_OR"),t1r=TB("T_AND"),e1r=TB("T_BIT_OR"),n1r=TB("T_BIT_XOR"),u1r=TB("T_BIT_AND"),a1r=TB("T_EQUAL"),i1r=TB("T_NOT_EQUAL"),c1r=TB("T_STRICT_EQUAL"),f1r=TB("T_STRICT_NOT_EQUAL"),o1r=TB("T_LESS_THAN_EQUAL"),s1r=TB("T_GREATER_THAN_EQUAL"),v1r=TB("T_LESS_THAN"),l1r=TB("T_GREATER_THAN"),D1r=TB("T_LSHIFT"),p1r=TB("T_RSHIFT"),b1r=TB("T_RSHIFT3"),E1r=TB("T_PLUS"),F1r=TB("T_MINUS"),d1r=TB("T_DIV"),m1r=TB("T_MULT"),h1r=TB("T_EXP"),k1r=TB("T_MOD"),y1r=TB("T_NOT"),A1r=TB("T_BIT_NOT"),_1r=TB("T_INCR"),C1r=TB("T_DECR"),w1r=TB("T_EOF"),S1r=TB("T_ANY_TYPE"),g1r=TB("T_MIXED_TYPE"),B1r=TB("T_EMPTY_TYPE"),T1r=TB("T_NUMBER_TYPE"),I1r=TB("T_BIGINT_TYPE"),O1r=TB("T_STRING_TYPE"),N1r=TB("T_VOID_TYPE"),x1r=TB("T_SYMBOL_TYPE"),L1r=TB("T_NUMBER"),P1r=TB("T_BIGINT"),R1r=TB("T_STRING"),M1r=TB("T_TEMPLATE_PART"),G1r=TB("T_IDENTIFIER"),U1r=TB("T_REGEXP"),j1r=TB("T_ERROR"),X1r=TB("T_JSX_IDENTIFIER"),H1r=TB("T_JSX_TEXT"),$1r=TB("T_BOOLEAN_TYPE"),Y1r=TB("T_NUMBER_SINGLETON_TYPE"),V1r=TB("T_BIGINT_SINGLETON_TYPE"),K1r=TB("*-/"),J1r=TB("*/"),W1r=TB("*-/"),q1r=TB(Hs),z1r=TB(Hs),Q1r=TB("\\"),Z1r=TB(Hs),r2r=TB("${"),t2r=TB("\r\n"),e2r=TB("\r\n"),n2r=TB("\n"),u2r=TB(Hs),a2r=TB("\\\\"),i2r=TB(Hs),c2r=TB(D_),f2r=TB(D_),o2r=TB(D_),s2r=TB(D_),v2r=TB(Hs),l2r=TB(km),D2r=TB('"'),p2r=TB(dd),b2r=TB(L),E2r=TB("{"),F2r=TB(kE),d2r=TB("{'}'}"),m2r=TB(kE),h2r=TB("{'>'}"),k2r=TB(L),y2r=TB(mS),A2r=TB("iexcl"),_2r=TB("aelig"),C2r=TB("Nu"),w2r=TB("Eacute"),S2r=TB("Atilde"),g2r=TB("'int'"),B2r=TB("AElig"),T2r=TB("Aacute"),I2r=TB("Acirc"),O2r=TB("Agrave"),N2r=TB("Alpha"),x2r=TB("Aring"),L2r=[0,197],P2r=[0,913],R2r=[0,v],M2r=[0,194],G2r=[0,193],U2r=[0,198],j2r=[0,8747],X2r=TB("Auml"),H2r=TB("Beta"),$2r=TB("Ccedil"),Y2r=TB("Chi"),V2r=TB("Dagger"),K2r=TB("Delta"),J2r=TB("ETH"),W2r=[0,208],q2r=[0,916],z2r=[0,8225],Q2r=[0,935],Z2r=[0,199],r7r=[0,914],t7r=[0,196],e7r=[0,195],n7r=TB("Icirc"),u7r=TB("Ecirc"),a7r=TB("Egrave"),i7r=TB("Epsilon"),c7r=TB("Eta"),f7r=TB("Euml"),o7r=TB("Gamma"),s7r=TB("Iacute"),v7r=[0,205],l7r=[0,915],D7r=[0,203],p7r=[0,919],b7r=[0,917],E7r=[0,200],F7r=[0,202],d7r=TB("Igrave"),m7r=TB("Iota"),h7r=TB("Iuml"),k7r=TB("Kappa"),y7r=TB("Lambda"),A7r=TB("Mu"),_7r=TB("Ntilde"),C7r=[0,209],w7r=[0,924],S7r=[0,923],g7r=[0,922],B7r=[0,207],T7r=[0,921],I7r=[0,204],O7r=[0,206],N7r=[0,201],x7r=TB("Sigma"),L7r=TB("Otilde"),P7r=TB("OElig"),R7r=TB("Oacute"),M7r=TB("Ocirc"),G7r=TB("Ograve"),U7r=TB("Omega"),j7r=TB("Omicron"),X7r=TB("Oslash"),H7r=[0,216],$7r=[0,927],Y7r=[0,937],V7r=[0,210],K7r=[0,212],J7r=[0,211],W7r=[0,338],q7r=TB("Ouml"),z7r=TB("Phi"),Q7r=TB("Pi"),Z7r=TB("Prime"),r8r=TB("Psi"),t8r=TB("Rho"),e8r=TB("Scaron"),n8r=[0,352],u8r=[0,929],a8r=[0,936],i8r=[0,8243],c8r=[0,928],f8r=[0,934],o8r=[0,214],s8r=[0,213],v8r=TB("Uuml"),l8r=TB("THORN"),D8r=TB("Tau"),p8r=TB("Theta"),b8r=TB("Uacute"),E8r=TB("Ucirc"),F8r=TB("Ugrave"),d8r=TB("Upsilon"),m8r=[0,933],h8r=[0,217],k8r=[0,219],y8r=[0,218],A8r=[0,920],_8r=[0,932],C8r=[0,222],w8r=TB("Xi"),S8r=TB("Yacute"),g8r=TB("Yuml"),B8r=TB("Zeta"),T8r=TB("aacute"),I8r=TB("acirc"),O8r=TB("acute"),N8r=[0,180],x8r=[0,226],L8r=[0,225],P8r=[0,918],R8r=[0,376],M8r=[0,221],G8r=[0,926],U8r=[0,220],j8r=[0,931],X8r=[0,925],H8r=TB("delta"),$8r=TB("cap"),Y8r=TB("aring"),V8r=TB("agrave"),K8r=TB("alefsym"),J8r=TB("alpha"),W8r=TB("amp"),q8r=TB("and"),z8r=TB("ang"),Q8r=TB("apos"),Z8r=[0,39],r3r=[0,8736],t3r=[0,8743],e3r=[0,38],n3r=[0,945],u3r=[0,8501],a3r=[0,so],i3r=TB("asymp"),c3r=TB("atilde"),f3r=TB("auml"),o3r=TB("bdquo"),s3r=TB("beta"),v3r=TB("brvbar"),l3r=TB("bull"),D3r=[0,8226],p3r=[0,166],b3r=[0,946],E3r=[0,8222],F3r=[0,228],d3r=[0,227],m3r=[0,8776],h3r=[0,229],k3r=TB("copy"),y3r=TB("ccedil"),A3r=TB("cedil"),_3r=TB("cent"),C3r=TB("chi"),w3r=TB("circ"),S3r=TB("clubs"),g3r=TB("cong"),B3r=[0,8773],T3r=[0,9827],I3r=[0,710],O3r=[0,967],N3r=[0,162],x3r=[0,184],L3r=[0,231],P3r=TB("crarr"),R3r=TB("cup"),M3r=TB("curren"),G3r=TB("dArr"),U3r=TB("dagger"),j3r=TB("darr"),X3r=TB("deg"),H3r=[0,176],$3r=[0,8595],Y3r=[0,8224],V3r=[0,8659],K3r=[0,164],J3r=[0,8746],W3r=[0,8629],q3r=[0,169],z3r=[0,8745],Q3r=TB("fnof"),Z3r=TB("ensp"),r4r=TB("diams"),t4r=TB("divide"),e4r=TB("eacute"),n4r=TB("ecirc"),u4r=TB("egrave"),a4r=TB(xd),i4r=TB("emsp"),c4r=[0,8195],f4r=[0,8709],o4r=[0,232],s4r=[0,234],v4r=[0,233],l4r=[0,247],D4r=[0,9830],p4r=TB("epsilon"),b4r=TB("equiv"),E4r=TB("eta"),F4r=TB("eth"),d4r=TB("euml"),m4r=TB("euro"),h4r=TB("exist"),k4r=[0,8707],y4r=[0,8364],A4r=[0,235],_4r=[0,mA],C4r=[0,951],w4r=[0,8801],S4r=[0,949],g4r=[0,8194],B4r=TB("gt"),T4r=TB("forall"),I4r=TB("frac12"),O4r=TB("frac14"),N4r=TB("frac34"),x4r=TB("frasl"),L4r=TB("gamma"),P4r=TB("ge"),R4r=[0,8805],M4r=[0,947],G4r=[0,8260],U4r=[0,190],j4r=[0,188],X4r=[0,189],H4r=[0,8704],$4r=TB("hArr"),Y4r=TB("harr"),V4r=TB("hearts"),K4r=TB("hellip"),J4r=TB("iacute"),W4r=TB("icirc"),q4r=[0,238],z4r=[0,237],Q4r=[0,8230],Z4r=[0,9829],r6r=[0,8596],t6r=[0,8660],e6r=[0,62],n6r=[0,402],u6r=[0,948],a6r=[0,230],i6r=TB("prime"),c6r=TB("ndash"),f6r=TB("le"),o6r=TB("kappa"),s6r=TB("igrave"),v6r=TB("image"),l6r=TB("infin"),D6r=TB("iota"),p6r=TB("iquest"),b6r=TB("isin"),E6r=TB("iuml"),F6r=[0,239],d6r=[0,8712],m6r=[0,191],h6r=[0,953],k6r=[0,8734],y6r=[0,8465],A6r=[0,236],_6r=TB("lArr"),C6r=TB("lambda"),w6r=TB("lang"),S6r=TB("laquo"),g6r=TB("larr"),B6r=TB("lceil"),T6r=TB("ldquo"),I6r=[0,8220],O6r=[0,8968],N6r=[0,8592],x6r=[0,171],L6r=[0,10216],P6r=[0,955],R6r=[0,8656],M6r=[0,954],G6r=TB("macr"),U6r=TB("lfloor"),j6r=TB("lowast"),X6r=TB("loz"),H6r=TB("lrm"),$6r=TB("lsaquo"),Y6r=TB("lsquo"),V6r=TB("lt"),K6r=[0,60],J6r=[0,8216],W6r=[0,8249],q6r=[0,8206],z6r=[0,9674],Q6r=[0,8727],Z6r=[0,8970],r5r=TB("mdash"),t5r=TB("micro"),e5r=TB("middot"),n5r=TB(Tk),u5r=TB("mu"),a5r=TB("nabla"),i5r=TB("nbsp"),c5r=[0,160],f5r=[0,8711],o5r=[0,956],s5r=[0,8722],v5r=[0,183],l5r=[0,181],D5r=[0,8212],p5r=[0,175],b5r=[0,8804],E5r=TB("or"),F5r=TB("oacute"),d5r=TB("ne"),m5r=TB("ni"),h5r=TB("not"),k5r=TB("notin"),y5r=TB("nsub"),A5r=TB("ntilde"),_5r=TB("nu"),C5r=[0,957],w5r=[0,241],S5r=[0,8836],g5r=[0,8713],B5r=[0,172],T5r=[0,8715],I5r=[0,8800],O5r=TB("ocirc"),N5r=TB("oelig"),x5r=TB("ograve"),L5r=TB("oline"),P5r=TB("omega"),R5r=TB("omicron"),M5r=TB("oplus"),G5r=[0,8853],U5r=[0,959],j5r=[0,969],X5r=[0,LE],H5r=[0,242],$5r=[0,339],Y5r=[0,244],V5r=[0,243],K5r=TB("part"),J5r=TB("ordf"),W5r=TB("ordm"),q5r=TB("oslash"),z5r=TB("otilde"),Q5r=TB("otimes"),Z5r=TB("ouml"),r9r=TB("para"),t9r=[0,182],e9r=[0,246],n9r=[0,8855],u9r=[0,245],a9r=[0,_c],i9r=[0,186],c9r=[0,170],f9r=TB("permil"),o9r=TB("perp"),s9r=TB("phi"),v9r=TB("pi"),l9r=TB("piv"),D9r=TB("plusmn"),p9r=TB("pound"),b9r=[0,163],E9r=[0,177],F9r=[0,982],d9r=[0,960],m9r=[0,966],h9r=[0,8869],k9r=[0,8240],y9r=[0,8706],A9r=[0,8744],_9r=[0,8211],C9r=TB("sup1"),w9r=TB("rlm"),S9r=TB("raquo"),g9r=TB("prod"),B9r=TB("prop"),T9r=TB("psi"),I9r=TB("quot"),O9r=TB("rArr"),N9r=TB("radic"),x9r=TB("rang"),L9r=[0,10217],P9r=[0,8730],R9r=[0,8658],M9r=[0,34],G9r=[0,968],U9r=[0,8733],j9r=[0,8719],X9r=TB("rarr"),H9r=TB("rceil"),$9r=TB("rdquo"),Y9r=TB("real"),V9r=TB("reg"),K9r=TB("rfloor"),J9r=TB("rho"),W9r=[0,961],q9r=[0,8971],z9r=[0,174],Q9r=[0,8476],Z9r=[0,8221],rrt=[0,8969],trt=[0,8594],ert=[0,187],nrt=TB("sigma"),urt=TB("rsaquo"),art=TB("rsquo"),irt=TB("sbquo"),crt=TB("scaron"),frt=TB("sdot"),ort=TB("sect"),srt=TB("shy"),vrt=[0,173],lrt=[0,167],Drt=[0,8901],prt=[0,353],brt=[0,8218],Ert=[0,8217],Frt=[0,8250],drt=TB("sigmaf"),mrt=TB("sim"),hrt=TB("spades"),krt=TB("sub"),yrt=TB("sube"),Art=TB("sum"),_rt=TB("sup"),Crt=[0,8835],wrt=[0,8721],Srt=[0,8838],grt=[0,8834],Brt=[0,9824],Trt=[0,8764],Irt=[0,962],Ort=[0,963],Nrt=[0,8207],xrt=TB("uarr"),Lrt=TB("thetasym"),Prt=TB("sup2"),Rrt=TB("sup3"),Mrt=TB("supe"),Grt=TB("szlig"),Urt=TB("tau"),jrt=TB("there4"),Xrt=TB("theta"),Hrt=[0,952],$rt=[0,8756],Yrt=[0,964],Vrt=[0,Fo],Krt=[0,8839],Jrt=[0,179],Wrt=[0,178],qrt=TB("thinsp"),zrt=TB("thorn"),Qrt=TB("tilde"),Zrt=TB("times"),rtt=TB("trade"),ttt=TB("uArr"),ett=TB("uacute"),ntt=[0,250],utt=[0,8657],att=[0,8482],itt=[0,215],ctt=[0,732],ftt=[0,Wm],ott=[0,8201],stt=[0,977],vtt=TB("xi"),ltt=TB("ucirc"),Dtt=TB("ugrave"),ptt=TB("uml"),btt=TB("upsih"),Ett=TB("upsilon"),Ftt=TB("uuml"),dtt=TB("weierp"),mtt=[0,V],htt=[0,cF],ktt=[0,965],ytt=[0,978],Att=[0,168],_tt=[0,249],Ctt=[0,251],wtt=TB("yacute"),Stt=TB("yen"),gtt=TB("yuml"),Btt=TB("zeta"),Ttt=TB("zwj"),Itt=TB("zwnj"),Ott=[0,8204],Ntt=[0,Oc],xtt=[0,950],Ltt=[0,Ps],Ptt=[0,165],Rtt=[0,253],Mtt=[0,958],Gtt=[0,8593],Utt=[0,185],jtt=[0,8242],Xtt=[0,161],Htt=TB(";"),$tt=TB("&"),Ytt=TB(Hs),Vtt=TB(Hs),Ktt=TB(Hs),Jtt=TB(Hs),Wtt=TB(Hs),qtt=TB(Hs),ztt=TB(Hs),Qtt=TB(Hs),Ztt=TB(Hs),ret=TB(Hs),tet=TB(Hs),eet=TB(Hs),net=TB(Hs),uet=TB(Hs),aet=TB(wk),iet=TB(wk),cet=TB(de),fet=[9,0],oet=[9,1],set=TB(Hs),vet=TB(kE),Det=[0,TB(D_),TB(D_),TB(D_)],pet=TB(Hs),bet=TB(km),Eet=TB(Hs),Fet=TB(Hs),det=TB(Hs),met=TB(Hs),het=TB(Hs),ket=TB(Hs),yet=TB(Hs),Aet=TB(Hs),_et=TB(Hs),Cet=TB(Hs),wet=TB(Hs),Set=TB(Hs),get=TB(Hs),Bet=TB(Hs),Tet=TB(Hs),Iet=TB(wk),Oet=TB(wk),Net=TB(de),xet=[6,TB("#!")],Let=TB("expected ?"),Pet=TB(Hs),Ret=TB(Dc),Met=TB(yb),Get=TB(yb),Uet=TB(Dc),jet=TB("b"),Xet=TB("f"),Het=TB("n"),$et=TB("r"),Yet=TB("t"),Vet=TB("v"),Ket=TB(yb),Jet=TB(mS),Wet=TB(mS),qet=TB(Hs),zet=TB(mS),Qet=TB(mS),Zet=TB(Hs),rnt=TB("Invalid (lexer) bigint "),tnt=TB("Invalid (lexer) bigint binary/octal "),ent=TB(yb),nnt=TB(If),unt=TB(Br),ant=TB(Eu),int=[11,TB("token ILLEGAL")],cnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01"),fnt=TB("\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01"),ont=TB("\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01"),snt=TB("\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01"),vnt=TB("\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\x03\x04\x04\x04\x04\x04\x04\x04\x04\x04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01"),lnt=TB("\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01"),Dnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01"),pnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),bnt=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x04\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x02\x02\x02\x06\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x02\x07"),Ent=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Fnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),dnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x03\x02\x02\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),mnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02"),hnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),knt=TB("\x01\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03"),ynt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Ant=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),_nt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Cnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),wnt=TB("\x01\0\0\0\0\0\0\0\0\0\x02\0\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Snt=TB("\x01\0\0\0\0\0\0\0\0\0\x02\0\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\0\0\0\0\0\0\0\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x05\0\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),gnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Bnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Tnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x04\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Int=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Ont=TB("\x01\0\0\0\0\0\0\0\0\0\x02\0\x03\x03\x03\x03\x03\x03\x03\x03\x04\x04\0\0\0\0\0\0\0\x01\x05\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01\x01\x01\x07\x01\x01\x01\x01\x01\x01\x01\x01\b\x01\x01\0\0\0\0\0\0\x01\x05\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01\x01\t\x07\x01\x01\x01\x01\x01\x01\x01\x01\b\x01\x01"),Nnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),xnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x03\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Lnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x03\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Pnt=TB("\x01\0\0\0\0\0\0\0\0\0\x02\0\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x04\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Rnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x03\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Mnt=TB("\x01\0\0\0\0\0\0\0\0\0\x02\0\x03\x03\x03\x03\x03\x03\x03\x03\x04\x04\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Gnt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x03\0\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Unt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),jnt=TB("\x01\0\0\x02"),Xnt=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x04\x02\x02\x02\x02\x04\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05"),Hnt=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03"),$nt=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x04\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x06\x07"),Ynt=TB("\x01\x02\0\0\0\0\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02"),Vnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03"),Knt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01"),Jnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\x01\x01\x01\x01\x01\x01"),Wnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01"),qnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),znt=TB("\x01\0\0\0\0\0\0\x02\0\x02\0\0\x03\x04\x04\x04\x04\x04\x04\x04\x04\x04\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),Qnt=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Znt=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),rut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x04\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),tut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),eut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),nut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),uut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x04\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),aut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),iut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),cut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),fut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),out=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),sut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),vut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),lut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Dut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),put=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x05\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),but=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x04\x01\x05\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Eut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Fut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),dut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),mut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),hut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),kut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),yut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x04\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Aut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),_ut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x04\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Cut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x03\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x05\x01\x01\x01\x01\x01\x06\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),wut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Sut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),gut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),But=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x03\x04\x01\x01\x05\x01\x01\x01\x01\x01\x06\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Tut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x03\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Iut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Out=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Nut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x04\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),xut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Lut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Put=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Rut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Mut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Gut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Uut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x05\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),jut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Xut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04\x01\x01\x05\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Hut=TB("\x01\0\x02"),$ut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Yut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Vut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x04\x01\x01\x01\x01\x01\x01\x01\x01\x01\x05\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Kut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Jut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Wut=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x04\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),qut=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"),zut=TB("\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Qut=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02"),Zut=TB("\x01\0\0\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03"),rat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x04"),tat=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),eat=TB("\x01\x02\0\x03\x04\x04\x04\x04\x04\x04\x04\x04\x04"),nat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),uat=TB("\x01\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03"),aat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x04\x01\x01\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x03\x01\x01\x02\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x02\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x01\x02\x02\x01\x01\x02\x02\x02\x02\x01\x02\x01\x01\x01\x01\x01\x01\x02\x03\x02\x02\x02\x01\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x03\x03\x03\x03\x03\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x01\x03\x03\x01\x03\x03\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x03\x03\x03\x03\x03\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x02\x02\x03\x03\x01\x03\x03\x03\x03\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x01\x01\x01\x01\x02\x01\x01\x03\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x03\x03\x03\x02\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x01\x01\x02\x02\x02\x02\x01\x01\x03\x02\x03\x03\x03\x03\x03\x03\x03\x01\x01\x03\x03\x01\x01\x03\x03\x03\x02\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x02\x02\x01\x02\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x03\x01\x01\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x01\x02\x02\x01\x02\x02\x01\x01\x03\x01\x03\x03\x03\x03\x03\x01\x01\x01\x01\x03\x03\x01\x01\x03\x03\x03\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x01\x02\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x01\x02\x02\x02\x02\x02\x01\x01\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x01\x03\x03\x03\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x01\x02\x02\x02\x02\x02\x01\x01\x03\x02\x03\x03\x03\x03\x03\x03\x03\x01\x01\x03\x03\x01\x01\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x01\x01\x01\x01\x02\x02\x01\x02\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x02\x01\x02\x02\x02\x02\x02\x02\x01\x01\x01\x02\x02\x02\x01\x02\x02\x02\x02\x01\x01\x01\x02\x02\x01\x02\x01\x02\x02\x01\x01\x01\x02\x02\x01\x01\x01\x02\x02\x02\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x03\x03\x03\x03\x03\x01\x01\x01\x03\x03\x03\x01\x03\x03\x03\x03\x01\x01\x02\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x02\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x01\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x03\x03\x01\x02\x02\x02\x01\x01\x01\x01\x01\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x01\x01\x03\x02\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x01\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x03\x03\x01\x01\x01\x01\x01\x01\x01\x02\x01\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x02\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x01\x03\x03\x03\x03\x02\x01\x01\x01\x01\x01\x02\x02\x02\x03\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x01\x01\x03\x03\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x03\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x01\x03\x01\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x01\x02\x01\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x01\x01\x02\x02\x02\x02\x02\x01\x02\x01\x03\x03\x03\x03\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x03\x01\x03\x01\x01\x01\x01\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x02\x02\x02\x02\x03\x03\x03\x02\x03\x03\x03\x02\x02\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x01\x01\x01\x01\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x01\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x02\x01\x01\x01\x01\x02\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x01\x01\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x03\x03\x03\x01\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x03\x02\x02\x03\x03\x03\x02\x01\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x01\x03\x03\x03\x03\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x02\x01\x02\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x01\x02\x01\x01\x01\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x02\x02\x02\x02\x01\x01\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x01\x01\x01\x01\x01\x02\x02\x02\x01\x02\x02\x02\x02\x02\x02\x02"),iat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x04\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x06\x06\x06\x06\x06\x06\x06\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\b\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\n\x02\x02\x02\v\x02\f\r\x0e\x02\x0f"),cat=TB("\x01\0\x01\0\0\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03"),fat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x02\x01\x01\x03"),oat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x04"),sat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x04\x03\x03\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x06\x02\x07\b\t\x06\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x13\x13\x13\x13\x13\x13\x13\x13\x14\x15\x16\x17\x18\x19\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x1a\x1b\x1c\x02\x07\x02\x1d\x1e\x07\x07\x1f \x07\x07!\x07\x07\x07\"#\x07\x07\x07\x07$%\x07&\x07\x07\x07\x07'()\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x07\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x02\x07\x07\x02\x07\x02\x07\x07\x02\x02\x02\x07\x07\x02\x02\x02\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x02\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x03\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02"),vat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x04\x03\x03\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x06\x07\b\t\n\v\x07\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x15\x15\x15\x15\x15\x15\x15\x15\x16\x17\x18\x19\x1a\x1b\x1c\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x1d\x1e\x1f \t!\"#$%&'\t\t(\t\t)\t*+,\t-./\t01\t2\t3456\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\t\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\x02\t\t\x02\x02\t\t\t\t\x02\t\x02\x02\x02\x02\x02\x02\t\x02\t\t\t\x02\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\t\t\t\t\t\t\t\t\x02\x02\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\x02\t\x02\x02\x02\t\t\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\x02\x02\x02\x02\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\x02\t\t\x02\t\t\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\x02\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\x02\t\t\x02\t\t\t\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\x02\x02\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\x02\t\t\x02\t\t\t\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\t\t\t\t\t\t\x02\x02\x02\t\t\t\x02\t\t\t\t\x02\x02\x02\t\t\x02\t\x02\t\t\x02\x02\x02\t\t\x02\x02\x02\t\t\t\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\x02\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\t\t\t\t\t\t\t\t\x02\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\x02\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\x02\t\x02\x02\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\t\x02\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\x02\t\t\t\t\t\t\t\t\t\t\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\t\t\t\t\t\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\x02\x02\x02\x02\t\t\t\t\x02\x02\x02\t\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\t\t\t\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\x02\x02\x02\x02\x02\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\t\x02\t\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\t\x02\t\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x03\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\x02\t\t\t\t\t\t\x02\t\t\x02\x02\x02\t\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\x02\t\x02\t\x02\t\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\t\t\t\t\t\t\t\x02\t\x02\x02\x02\t\t\t\x02\t\t\t\t\t\t\t\x02\x02\x02\t\t\t\t\x02\x02\t\t\t\t\t\t\x02\x02\x02\x02\t\t\t\t\t\t\t\t\t\t\t\t\t\x02\x02\x02\x02\x02\t\t\t\x02\t\t\t\t\t\t\t\x02\x02\x02"),lat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x04\x03\x03\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x06\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02"),Dat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x04"),pat=TB("\x01\0\0\0\0\x02"),bat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x04\x03\x03\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x06\x02\x07\x02\x02\x06\x02\x02\x02\x02\x02\x02\b\t\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\n\x02\v\f\r\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x0e\x02\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x0f\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x07\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x02\x07\x07\x02\x07\x02\x07\x07\x02\x02\x02\x07\x07\x02\x02\x02\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x07\x02\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x02\x02\x02\x07\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x03\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x02\x07\x07\x02\x02\x02\x07\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x07\x02\x07\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x07\x02\x02\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x07\x07\x07\x07\x02\x02\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02\x02\x02\x07\x07\x07\x02\x07\x07\x07\x07\x07\x07\x07\x02\x02\x02"),Eat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Fat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),dat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\0\0\0\0\x02"),mat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03"),hat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x03"),kat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),yat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Aat=TB("\x01\0\0\0\0\0\0\0\x02"),_at=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x04\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x06\x02\x02\x02\x07"),Cat=TB("\x01\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\x03"),wat=TB("\x01\0\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03"),Sat=TB("\x01\0\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02"),gat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x02\x02"),Bat=TB("\x01\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x03\x02\x02\x04\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x05\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x06"),Tat=TB("\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03"),Iat=TB("\x01\0\0\0\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x02\0\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\0\x01\x01\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\0\x01\x01\0\0\x01\0\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\x01\x01\0\x01\0\x01\x01\0\0\0\x01\x01\0\0\0\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\x01\0\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\0\x01\0\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\0\0\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\0\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\0\0\0\0\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\0\x01\0\x01\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\x01\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01\0\0\0\x01\x01\x01\x01\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\x01\x01\x01\0\x01\x01\x01\x01\x01\x01\x01"),Oat=TB("\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01\x01\x01\x01\x01\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Nat=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),xat=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Lat=TB("\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x02"),Pat=[0,[11,TB("the identifier `"),[2,0,[12,96,0]]],TB("the identifier `%s`")],Rat=[0,1],Mat=TB("@flow"),Gat=TB(Hb),Uat=TB(Hb),jat=TB("Peeking current location when not available"),Xat=TB(t_),Hat=TB(li),$at=TB(ry),Yat=TB(qd),Vat=TB(s_),Kat=TB(me),Jat=TB(xd),Wat=TB(wp),qat=TB(Xa),zat=TB(eD),Qat=TB(fd),Zat=TB(Ss),rit=TB(Qu),tit=TB(mk),eit=TB(Gk),nit=TB(Of),uit=TB(cs),ait=TB(Xa),iit=TB(fd),cit=TB(Gk),fit=TB(Xa),oit=TB(fd),sit=TB(Gk),vit=TB(Vu),lit=TB("eval"),Dit=TB(mt),pit=TB(t_),bit=TB(jr),Eit=TB(Dt),Fit=TB(Jy),dit=TB($A),mit=TB(Qu),hit=TB(Eb),kit=TB(Xf),yit=TB(nm),Ait=TB(l_),_it=TB(lf),Cit=TB(Yc),wit=TB(xA),Sit=TB(jy),git=TB(MD),Bit=TB(Ma),Tit=TB(XD),Iit=TB(Wi),Oit=TB(vk),Nit=TB(Lr),xit=TB(Bu),Lit=TB(vF),Pit=TB(wp),Rit=TB(Il),Mit=TB(KS),Git=TB(xs),Uit=TB(ur),jit=TB(ny),Xit=TB(Vf),Hit=TB(vo),$it=TB(Ws),Yit=TB(Qe),Vit=TB(Jf),Kit=TB(jE),Jit=TB(hE),Wit=TB(it),qit=TB(Of),zit=TB(mb),Qit=TB(cs),Zit=TB(gw),rct=TB(Qs),tct=TB(Eb),ect=[0,TB("src/parser/parser_env.ml"),361,2],nct=TB("Internal Error: Tried to add_declared_private with outside of class scope."),uct=TB("Internal Error: `exit_class` called before a matching `enter_class`"),act=TB(D_),ict=TB(D_),cct=[0,0,0],fct=[0,0,0],oct=TB(_u),sct=TB(_u),vct=TB("Parser_env.Try.Rollback"),lct=TB(D_),Dct=TB(D_),pct=[0,TB(De),TB(pA),TB(nd),TB(yi),TB(si),TB(fu),TB(y)],bct=[0,TB(Rg),TB(Di),TB(_E),TB(Mo),TB(Jn),TB(bF),TB(gc),TB(bD),TB(Qb),TB(Ea),TB(nd),TB(Ji),TB(bl),TB(vS),TB(oe),TB(mc),TB(wg),TB(ev),TB(m_),TB(U),TB(TE),TB(cl),TB(Ob),TB(ny),TB(gg),TB(sw),TB(Bc),TB(SF),TB(XA),TB(Rp),TB(ye),TB(nh),TB(rk),TB(Qn),TB(K_),TB(ar),TB(oC),TB(tk),TB(qi),TB(fc),TB(he),TB(y),TB(vt),TB(Cm),TB(zy),TB(us)],Ect=[0,TB(Nt),TB(Sa),TB(Lk),TB(Au),TB(he),TB(yu),TB(JF),TB(ai),TB(No),TB(Ob),TB(HC),TB(jE),TB(jd),TB(xh),TB(tS),TB(ng),TB(mc),TB(br),TB(Ih),TB(Av),TB(g),TB(Pg),TB(qo),TB(sw),TB(ok),TB(gg),TB(wE),TB(ms),TB(Uh),TB(Mu),TB(qi),TB(ci),TB(P),TB(mF),TB(He),TB(gk),TB(XS),TB(nS),TB(sb),TB(Lv),TB(xk),TB(qh),TB(xf),TB(Sk),TB($o),TB(xt),TB(ar),TB(dE),TB(Sh),TB(By),TB(pu),TB(ym),TB(Hm),TB(Qn),TB(vS),TB(bl),TB(fn),TB(eC),TB(yg),TB(ip),TB(TE),TB(ZS),TB(ii),TB(nh),TB(Uv),TB(xe),TB(fr),TB(Rw),TB(da),TB(zo),TB(SF),TB(nk),TB(zy),TB(hp),TB(Zy),TB(jv),TB(Ba),TB(pp),TB(Zp),TB(Ji),TB(Xp),TB(Ew),TB(gC),TB(vt),TB(bE),TB(Ol),TB(LS),TB(pn),TB(zw),TB(nd),TB(xd),TB(SC),TB(Fv),TB(Eb),TB(Zh),TB(RA),TB(jw),TB(jm),TB(wc),TB(HE),TB(Gt),TB(Y_),TB(_S),TB(So),TB($v),TB(cl),TB(Sd),TB(fe),TB($S),TB(Xh),TB(ay),TB(Et),TB(my),TB(pe),TB(bD),TB(Rg),TB(Kg),TB(Mo),TB(_E),TB(K_),TB($c),TB(wi),TB(m_),TB(pf),TB(Ln),TB(fb),TB(oe),TB(Jm),TB(su),TB(ev),TB(tk),TB(r_),TB(Dk),TB(VF),TB(Gg),TB(wg),TB(ny),TB(Qe),TB(dC),TB(Lg),TB(Mg),TB(ur),TB(Wi),TB(kt),TB(jC),TB(to),TB(Rr),TB(Kp),TB(Eo),TB(rv),TB(zf),TB(Pf),TB(er),TB(Bv),TB(Ym),TB(VS),TB(ut),TB(Pn),TB(c),TB(cB),TB(Yp),TB(_w),TB(Zr),TB(ju),TB(Gn),TB(u_),TB(hD),TB(sn),TB(gc),TB(mi),TB(MA),TB(fc),TB(AE),TB(mC),TB(Ph),TB(An),TB(Ea),TB(Bc),TB(Ok),TB(Xg),TB(oC),TB(ly),TB(zl),TB(Vt),TB(Hr),TB(vb),TB(bF),TB(us),TB(Di),TB(ue),TB(Jn),TB(G_),TB(lo),TB(Jk),TB(rk),TB(nc),TB($F),TB(XC),TB(Un),TB(h_),TB(Qb),TB(Cm),TB(qu),TB(Mr),TB(ye),TB(wa),TB(El),TB(cf),TB(XA),TB(_v),TB(XD),TB(mn),TB(RS),TB(yp),TB(hf),TB(ln),TB(Hv),TB(n_),TB(Rp),TB(Aw),TB(y_),TB(Xt),TB(y),TB(Dv),TB(U),TB(bh),TB(Ni),TB(is),TB(Yc),TB(ik),TB(t_),TB($l),TB(zg),TB(BE),TB(e)],Fct=[0,TB(Nt),TB(Sa),TB(Lk),TB(Au),TB(he),TB(yu),TB(JF),TB(ai),TB(No),TB(Ob),TB(HC),TB(jE),TB(jd),TB(xh),TB(tS),TB(ng),TB(mc),TB(br),TB(Ih),TB(Av),TB(g),TB(Pg),TB(qo),TB(sw),TB(ok),TB(gg),TB(wE),TB(pA),TB(ms),TB(Uh),TB(Mu),TB(qi),TB(ci),TB(P),TB(mF),TB(He),TB(gk),TB(XS),TB(nS),TB(sb),TB(Lv),TB(xk),TB(qh),TB(xf),TB(Sk),TB($o),TB(xt),TB(ar),TB(dE),TB(Sh),TB(By),TB(si),TB(pu),TB(ym),TB(Hm),TB(Qn),TB(vS),TB(bl),TB(fn),TB(eC),TB(yg),TB(ip),TB(TE),TB(ZS),TB(ii),TB(nh),TB(Uv),TB(xe),TB(fr),TB(Rw),TB(da),TB(zo),TB(SF),TB(nk),TB(zy),TB(hp),TB(Zy),TB(jv),TB(Ba),TB(pp),TB(Zp),TB(Ji),TB(Xp),TB(Ew),TB(gC),TB(vt),TB(bE),TB(Ol),TB(LS),TB(pn),TB(zw),TB(nd),TB(xd),TB(SC),TB(Fv),TB(Eb),TB(Zh),TB(RA),TB(jw),TB(jm),TB(wc),TB(HE),TB(Gt),TB(Y_),TB(_S),TB(So),TB($v),TB(cl),TB(Sd),TB(fe),TB($S),TB(Xh),TB(ay),TB(Et),TB(my),TB(pe),TB(bD),TB(Rg),TB(Kg),TB(Mo),TB(_E),TB(K_),TB($c),TB(wi),TB(m_),TB(pf),TB(Ln),TB(fb),TB(oe),TB(Jm),TB(su),TB(ev),TB(tk),TB(r_),TB(Dk),TB(VF),TB(Gg),TB(wg),TB(ny),TB(Qe),TB(dC),TB(Lg),TB(Mg),TB(ur),TB(Wi),TB(kt),TB(jC),TB(to),TB(Rr),TB(Kp),TB(Eo),TB(rv),TB(zf),TB(Pf),TB(er),TB(Bv),TB(Ym),TB(VS),TB(ut),TB(Pn),TB(c),TB(cB),TB(Yp),TB(_w),TB(Zr),TB(ju),TB(Gn),TB(u_),TB(hD),TB(sn),TB(gc),TB(mi),TB(MA),TB(fc),TB(AE),TB(mC),TB(Ph),TB(An),TB(fu),TB(Ea),TB(Bc),TB(Ok),TB(Xg),TB(oC),TB(ly),TB(zl),TB(Vt),TB(Hr),TB(vb),TB(bF),TB(yi),TB(us),TB(Di),TB(ue),TB(Jn),TB(De),TB(G_),TB(lo),TB(Jk),TB(rk),TB(nc),TB($F),TB(XC),TB(Un),TB(h_),TB(Qb),TB(Cm),TB(qu),TB(Mr),TB(ye),TB(wa),TB(El),TB(cf),TB(XA),TB(_v),TB(XD),TB(mn),TB(RS),TB(yp),TB(hf),TB(ln),TB(Hv),TB(n_),TB(Rp),TB(Aw),TB(y_),TB(Xt),TB(y),TB(Dv),TB(U),TB(bh),TB(Ni),TB(is),TB(Yc),TB(ik),TB(t_),TB($l),TB(zg),TB(BE),TB(e)],dct=TB(Wu),mct=TB(Ae),hct=[0,[11,TB("Failure while looking up "),[2,0,[11,TB(". Index: "),[4,0,0,0,[11,TB(". Length: "),[4,0,0,0,[12,46,0]]]]]]],TB("Failure while looking up %s. Index: %d. Length: %d.")],kct=[0,0,0,0],yct=TB("Offset_utils.Offset_lookup_failed"),Act=TB(KC),_ct=TB(Gl),Cct=TB(b_),wct=TB(Ad),Sct=TB(Ad),gct=TB(b_),Bct=TB(qr),Tct=TB(Ku),Ict=TB(Xm),Oct=TB(Xm),Nct=TB("Program"),xct=TB(rc),Lct=TB("BreakStatement"),Pct=TB(rc),Rct=TB("ContinueStatement"),Mct=TB("DebuggerStatement"),Gct=TB(PS),Uct=TB("DeclareExportAllDeclaration"),jct=TB(PS),Xct=TB(iB),Hct=TB(zu),$ct=TB(l_),Yct=TB("DeclareExportDeclaration"),Vct=TB($t),Kct=TB(Xm),Jct=TB(Ai),Wct=TB("DeclareModule"),qct=TB(vp),zct=TB("DeclareModuleExports"),Qct=TB(dk),Zct=TB(Xm),rft=TB("DoWhileStatement"),tft=TB("EmptyStatement"),eft=TB(p_),nft=TB(zu),uft=TB("ExportDefaultDeclaration"),aft=TB(p_),ift=TB(PS),cft=TB("ExportAllDeclaration"),fft=TB(p_),oft=TB(PS),sft=TB(iB),vft=TB(zu),lft=TB("ExportNamedDeclaration"),Dft=TB(F),pft=TB(ye),bft=TB("ExpressionStatement"),Eft=TB(Xm),Fft=TB(K),dft=TB(dk),mft=TB(kh),hft=TB("ForStatement"),kft=TB(Nv),yft=TB(Xm),Aft=TB(vu),_ft=TB(df),Cft=TB("ForInStatement"),wft=TB(lf),Sft=TB(Xm),gft=TB(vu),Bft=TB(df),Tft=TB("ForOfStatement"),Ift=TB(uF),Oft=TB(qp),Nft=TB(dk),xft=TB("IfStatement"),Lft=TB(qr),Pft=TB(Of),Rft=TB(WF),Mft=TB(Cp),Gft=TB(PS),Uft=TB(iB),jft=TB("ImportDeclaration"),Xft=TB(Xm),Hft=TB(rc),$ft=TB("LabeledStatement"),Yft=TB(A_),Vft=TB("ReturnStatement"),Kft=TB(Vd),Jft=TB("discriminant"),Wft=TB("SwitchStatement"),qft=TB(A_),zft=TB("ThrowStatement"),Qft=TB(Cv),Zft=TB(eu),rot=TB(y),tot=TB("TryStatement"),eot=TB(Xm),not=TB(dk),uot=TB("WhileStatement"),aot=TB(Xm),iot=TB(Hc),cot=TB("WithStatement"),fot=TB(gv),oot=TB("ArrayExpression"),sot=TB(Ra),vot=TB(dA),lot=TB(ye),Dot=TB(bl),pot=TB(VS),bot=TB(_A),Eot=TB(Xm),Fot=TB(_),dot=TB(Ai),mot=TB("ArrowFunctionExpression"),hot=TB("="),kot=TB(vu),yot=TB(df),Aot=TB(Zw),_ot=TB("AssignmentExpression"),Cot=TB(vu),wot=TB(df),Sot=TB(Zw),got=TB("BinaryExpression"),Bot=TB("CallExpression"),Tot=TB($e),Iot=TB(lk),Oot=TB("ComprehensionExpression"),Not=TB(uF),xot=TB(qp),Lot=TB(dk),Pot=TB("ConditionalExpression"),Rot=TB($e),Mot=TB(lk),Got=TB("GeneratorExpression"),Uot=TB(PS),jot=TB("ImportExpression"),Xot=TB("||"),Hot=TB("&&"),$ot=TB(a),Yot=TB(vu),Vot=TB(df),Kot=TB(Zw),Jot=TB("LogicalExpression"),Wot=TB("MemberExpression"),qot=TB(CC),zot=TB("meta"),Qot=TB("MetaProperty"),Zot=TB(Vu),rst=TB(xE),tst=TB(ll),est=TB("NewExpression"),nst=TB(Nu),ust=TB("ObjectExpression"),ast=TB(Al),ist=TB("OptionalCallExpression"),cst=TB(Al),fst=TB("OptionalMemberExpression"),ost=TB(ld),sst=TB("SequenceExpression"),vst=TB("Super"),lst=TB("ThisExpression"),Dst=TB(vp),pst=TB(ye),bst=TB("TypeCastExpression"),Est=TB(A_),Fst=TB("AwaitExpression"),dst=TB(kA),mst=TB(U_),hst=TB("!"),kst=TB("~"),yst=TB(Of),Ast=TB(cs),_st=TB(vk),Cst=TB("matched above"),wst=TB(A_),Sst=TB(xD),gst=TB(Zw),Bst=TB("UnaryExpression"),Tst=TB("--"),Ist=TB("++"),Ost=TB(xD),Nst=TB(A_),xst=TB(Zw),Lst=TB("UpdateExpression"),Pst=TB(Mk),Rst=TB(A_),Mst=TB("YieldExpression"),Gst=TB("Unexpected FunctionDeclaration with BodyExpression"),Ust=TB(Ra),jst=TB(dA),Xst=TB(ye),Hst=TB(bl),$st=TB(VS),Yst=TB(_A),Vst=TB(Xm),Kst=TB(_),Jst=TB(Ai),Wst=TB("FunctionDeclaration"),qst=TB("Unexpected FunctionExpression with BodyExpression"),zst=TB(Ra),Qst=TB(dA),Zst=TB(ye),rvt=TB(bl),tvt=TB(VS),evt=TB(_A),nvt=TB(Xm),uvt=TB(_),avt=TB(Ai),ivt=TB("FunctionExpression"),cvt=TB(Al),fvt=TB(vp),ovt=TB(el),svt=TB(f),vvt=TB(Ai),lvt=TB("PrivateName"),Dvt=TB(Al),pvt=TB(vp),bvt=TB(el),Evt=TB(f),Fvt=TB(qp),dvt=TB(dk),mvt=TB("SwitchCase"),hvt=TB(Xm),kvt=TB("param"),yvt=TB("CatchClause"),Avt=TB(Xm),_vt=TB("BlockStatement"),Cvt=TB(Ai),wvt=TB("DeclareVariable"),Svt=TB(bl),gvt=TB(Ai),Bvt=TB("DeclareFunction"),Tvt=TB(le),Ivt=TB(mt),Ovt=TB(wp),Nvt=TB(Xm),xvt=TB(Ra),Lvt=TB(Ai),Pvt=TB("DeclareClass"),Rvt=TB(wp),Mvt=TB(Xm),Gvt=TB(Ra),Uvt=TB(Ai),jvt=TB("DeclareInterface"),Xvt=TB(WF),Hvt=TB(qr),$vt=TB(qe),Yvt=TB("ExportNamespaceSpecifier"),Vvt=TB(vu),Kvt=TB(Ra),Jvt=TB(Ai),Wvt=TB("DeclareTypeAlias"),qvt=TB(vu),zvt=TB(Ra),Qvt=TB(Ai),Zvt=TB("TypeAlias"),rlt=TB("DeclareOpaqueType"),tlt=TB("OpaqueType"),elt=TB(FE),nlt=TB(kb),ult=TB(Ra),alt=TB(Ai),ilt=TB("ClassDeclaration"),clt=TB("ClassExpression"),flt=TB(H),olt=TB(mt),slt=TB("superTypeParameters"),vlt=TB("superClass"),llt=TB(Ra),Dlt=TB(Xm),plt=TB(Ai),blt=TB(ye),Elt=TB("Decorator"),Flt=TB(Ra),dlt=TB(Ai),mlt=TB("ClassImplements"),hlt=TB(Xm),klt=TB("ClassBody"),ylt=TB(Db),Alt=TB(rr),_lt=TB(Ke),Clt=TB(ou),wlt=TB(H),Slt=TB(di),glt=TB(Qu),Blt=TB($t),Tlt=TB(WF),Ilt=TB($g),Olt=TB("MethodDefinition"),Nlt=TB(re),xlt=TB(Xp),Llt=TB(Qu),Plt=TB(vp),Rlt=TB(WF),Mlt=TB($g),Glt=TB("ClassPrivateProperty"),Ult=TB("Internal Error: Private name found in class prop"),jlt=TB(re),Xlt=TB(Xp),Hlt=TB(Qu),$lt=TB(di),Ylt=TB(vp),Vlt=TB(WF),Klt=TB($g),Jlt=TB("ClassProperty"),Wlt=TB(Ai),qlt=TB(UE),zlt=TB(kh),Qlt=TB(Ai),Zlt=TB("EnumStringMember"),rDt=TB(Ai),tDt=TB(UE),eDt=TB(kh),nDt=TB(Ai),uDt=TB("EnumNumberMember"),aDt=TB(kh),iDt=TB(Ai),cDt=TB("EnumBooleanMember"),fDt=TB(es),oDt=TB(Ly),sDt=TB(rn),vDt=TB("EnumBooleanBody"),lDt=TB(es),DDt=TB(Ly),pDt=TB(rn),bDt=TB("EnumNumberBody"),EDt=TB(es),FDt=TB(Ly),dDt=TB(rn),mDt=TB("EnumStringBody"),hDt=TB(es),kDt=TB(rn),yDt=TB("EnumSymbolBody"),ADt=TB(Xm),_Dt=TB(Ai),CDt=TB("EnumDeclaration"),wDt=TB(wp),SDt=TB(Xm),gDt=TB(Ra),BDt=TB(Ai),TDt=TB("InterfaceDeclaration"),IDt=TB(Ra),ODt=TB(Ai),NDt=TB("InterfaceExtends"),xDt=TB(vp),LDt=TB(Nu),PDt=TB("ObjectPattern"),RDt=TB(vp),MDt=TB(gv),GDt=TB("ArrayPattern"),UDt=TB(vu),jDt=TB(df),XDt=TB(lh),HDt=TB(vp),$Dt=TB(el),YDt=TB(f),VDt=TB(A_),KDt=TB(tp),JDt=TB(A_),WDt=TB(tp),qDt=TB(vu),zDt=TB(df),QDt=TB(lh),ZDt=TB(kh),rpt=TB(kh),tpt=TB(Ke),ept=TB(ou),npt=TB(Ki),upt=TB(di),apt=TB(dy),ipt=TB(rr),cpt=TB($t),fpt=TB(WF),opt=TB($g),spt=TB(Ft),vpt=TB(A_),lpt=TB("SpreadProperty"),Dpt=TB(vu),ppt=TB(df),bpt=TB(lh),Ept=TB(di),Fpt=TB(dy),dpt=TB(rr),mpt=TB($t),hpt=TB(WF),kpt=TB($g),ypt=TB(Ft),Apt=TB(A_),_pt=TB("SpreadElement"),Cpt=TB(Nv),wpt=TB(vu),Spt=TB(df),gpt=TB("ComprehensionBlock"),Bpt=TB("We should not create Literal nodes for bigints"),Tpt=TB(UF),Ipt=TB(Kp),Opt=TB("regex"),Npt=TB(Tt),xpt=TB(WF),Lpt=TB(Tt),Ppt=TB(WF),Rpt=TB(IC),Mpt=TB(Tt),Gpt=TB(WF),Upt=TB(IC),jpt=TB(qd),Xpt=TB(WF),Hpt=TB("BigIntLiteral"),$pt=TB(Tt),Ypt=TB(WF),Vpt=TB(IC),Kpt=TB(Gk),Jpt=TB(Xa),Wpt=TB(Tt),qpt=TB(WF),zpt=TB(IC),Qpt=TB(ld),Zpt=TB("quasis"),rbt=TB("TemplateLiteral"),tbt=TB(k_),ebt=TB(Tt),nbt=TB(Yr),ubt=TB(WF),abt=TB("TemplateElement"),ibt=TB(rA),cbt=TB("tag"),fbt=TB("TaggedTemplateExpression"),obt=TB(mb),sbt=TB(ss),vbt=TB(Ma),lbt=TB($t),Dbt=TB("declarations"),pbt=TB("VariableDeclaration"),bbt=TB(kh),Ebt=TB(Ai),Fbt=TB("VariableDeclarator"),dbt=TB($t),mbt=TB("Variance"),hbt=TB("AnyTypeAnnotation"),kbt=TB("MixedTypeAnnotation"),ybt=TB("EmptyTypeAnnotation"),Abt=TB("VoidTypeAnnotation"),_bt=TB("NullLiteralTypeAnnotation"),Cbt=TB("SymbolTypeAnnotation"),wbt=TB("NumberTypeAnnotation"),Sbt=TB("BigIntTypeAnnotation"),gbt=TB("StringTypeAnnotation"),Bbt=TB("BooleanTypeAnnotation"),Tbt=TB(vp),Ibt=TB("NullableTypeAnnotation"),Obt=TB(Ra),Nbt=TB(Ca),xbt=TB(dA),Lbt=TB(hE),Pbt=TB(_),Rbt=TB("FunctionTypeAnnotation"),Mbt=TB(Al),Gbt=TB(vp),Ubt=TB(el),jbt=TB(tl),Xbt=TB(Al),Hbt=TB(vp),$bt=TB(el),Ybt=TB(tl),Vbt=[0,0,0,0,0],Kbt=TB("internalSlots"),Jbt=TB("callProperties"),Wbt=TB("indexers"),qbt=TB(Nu),zbt=TB("exact"),Qbt=TB(J_),Zbt=TB("ObjectTypeAnnotation"),rEt=TB(Ki),tEt=TB("There should not be computed object type property keys"),eEt=TB(kh),nEt=TB(Ke),uEt=TB(ou),aEt=TB($t),iEt=TB(Xp),cEt=TB(Ch),fEt=TB(Qu),oEt=TB(Al),sEt=TB(rr),vEt=TB(WF),lEt=TB($g),DEt=TB("ObjectTypeProperty"),pEt=TB(A_),bEt=TB("ObjectTypeSpreadProperty"),EEt=TB(Xp),FEt=TB(Qu),dEt=TB(WF),mEt=TB($g),hEt=TB(Ai),kEt=TB("ObjectTypeIndexer"),yEt=TB(Qu),AEt=TB(WF),_Et=TB("ObjectTypeCallProperty"),CEt=TB(WF),wEt=TB(rr),SEt=TB(Qu),gEt=TB(Al),BEt=TB(Ai),TEt=TB("ObjectTypeInternalSlot"),IEt=TB(Xm),OEt=TB(wp),NEt=TB("InterfaceTypeAnnotation"),xEt=TB("elementType"),LEt=TB("ArrayTypeAnnotation"),PEt=TB(Ai),REt=TB("qualification"),MEt=TB("QualifiedTypeIdentifier"),GEt=TB(Ra),UEt=TB(Ai),jEt=TB("GenericTypeAnnotation"),XEt=TB("indexType"),HEt=TB("objectType"),$Et=TB("IndexedAccessType"),YEt=TB(Al),VEt=TB("OptionalIndexedAccessType"),KEt=TB(lS),JEt=TB("UnionTypeAnnotation"),WEt=TB(lS),qEt=TB("IntersectionTypeAnnotation"),zEt=TB(A_),QEt=TB("TypeofTypeAnnotation"),ZEt=TB(lS),rFt=TB("TupleTypeAnnotation"),tFt=TB(Tt),eFt=TB(WF),nFt=TB("StringLiteralTypeAnnotation"),uFt=TB(Tt),aFt=TB(WF),iFt=TB("NumberLiteralTypeAnnotation"),cFt=TB(Tt),fFt=TB(WF),oFt=TB("BigIntLiteralTypeAnnotation"),sFt=TB(Gk),vFt=TB(Xa),lFt=TB(Tt),DFt=TB(WF),pFt=TB("BooleanLiteralTypeAnnotation"),bFt=TB("ExistsTypeAnnotation"),EFt=TB(vp),FFt=TB("TypeAnnotation"),dFt=TB(_),mFt=TB("TypeParameterDeclaration"),hFt=TB(l_),kFt=TB(Xp),yFt=TB(In),AFt=TB(el),_Ft=TB("TypeParameter"),CFt=TB(_),wFt=TB(_s),SFt=TB(_),gFt=TB(_s),BFt=TB(li),TFt=TB(i),IFt=TB("closingElement"),OFt=TB("openingElement"),NFt=TB("JSXElement"),xFt=TB("closingFragment"),LFt=TB(i),PFt=TB("openingFragment"),RFt=TB("JSXFragment"),MFt=TB("selfClosing"),GFt=TB(vy),UFt=TB(el),jFt=TB("JSXOpeningElement"),XFt=TB("JSXOpeningFragment"),HFt=TB(el),$Ft=TB("JSXClosingElement"),YFt=TB("JSXClosingFragment"),VFt=TB(WF),KFt=TB(el),JFt=TB("JSXAttribute"),WFt=TB(A_),qFt=TB("JSXSpreadAttribute"),zFt=TB("JSXEmptyExpression"),QFt=TB(ye),ZFt=TB("JSXExpressionContainer"),rdt=TB(ye),tdt=TB("JSXSpreadChild"),edt=TB(Tt),ndt=TB(WF),udt=TB("JSXText"),adt=TB(CC),idt=TB(Hc),cdt=TB("JSXMemberExpression"),fdt=TB(el),odt=TB("namespace"),sdt=TB("JSXNamespacedName"),vdt=TB(el),ldt=TB("JSXIdentifier"),Ddt=TB(qe),pdt=TB(zs),bdt=TB("ExportSpecifier"),Edt=TB(zs),Fdt=TB("ImportDefaultSpecifier"),ddt=TB(zs),mdt=TB("ImportNamespaceSpecifier"),hdt=TB(Cp),kdt=TB(zs),ydt=TB("imported"),Adt=TB("ImportSpecifier"),_dt=TB("Line"),Cdt=TB("Block"),wdt=TB(WF),Sdt=TB(WF),gdt=TB("DeclaredPredicate"),Bdt=TB("InferredPredicate"),Tdt=TB(Vu),Idt=TB(xE),Odt=TB(ll),Ndt=TB(di),xdt=TB(CC),Ldt=TB(Hc),Pdt=TB("message"),Rdt=TB(Gl),Mdt=TB("end"),Gdt=TB(I),Udt=TB(PS),jdt=TB(Ae),Xdt=TB(Wu),Hdt=TB(xs),$dt=TB(nm),Ydt=TB(Vf),Vdt=TB(vo),Kdt=TB(Qe),Jdt=TB(jE),Wdt=TB(hE),qdt=TB(ur),zdt=TB(it),Qdt=TB(mb),Zdt=TB(gw),rmt=TB(Qs),tmt=TB(Ma),emt=TB(ss),nmt=TB(fd),umt=TB(Xa),amt=TB(Gk),imt=TB(Yc),cmt=TB(xA),fmt=TB(jy),omt=TB(XD),smt=TB(l_),vmt=TB(Lr),lmt=TB(Il),Dmt=TB(KS),pmt=TB(MD),bmt=TB(wp),Emt=TB(Qu),Fmt=TB(Bu),dmt=TB(Ws),mmt=TB(vk),hmt=TB(Of),kmt=TB(cs),ymt=TB(Xf),Amt=TB(vF),_mt=TB(ny),Cmt=TB(Jf),wmt=TB(mt),Smt=TB(t_),gmt=TB(jr),Bmt=TB(Dt),Tmt=TB(Jy),Imt=TB($A),Omt=TB(Eb),Nmt=TB(Wi),xmt=TB(re),Lmt=TB(qr),Pmt=TB(Ge),Rmt=TB("of"),Mmt=TB(_A),Gmt=TB(lf),Umt=TB(ry),jmt=TB(eD),Xmt=TB(xd),Hmt=TB(Ss),$mt=TB(qd),Ymt=TB(mk),Vmt=TB(cs),Kmt=TB(Na),Jmt=TB(me),Wmt=TB(s_),qmt=[0,TB(hd)],zmt=TB(D_),Qmt=[8,0],Zmt=TB(D_),rht=[0,1],tht=[0,2],eht=[0,3],nht=[0,0],uht=[0,0],aht=[0,0,0,0,0],iht=[0,TB(At),850,6],cht=[0,TB(At),853,6],fht=[0,TB(At),956,8],oht=TB(Ch),sht=[0,TB(At),973,8],vht=TB("Can not have both `static` and `proto`"),lht=TB(Qu),Dht=TB(Ch),pht=TB(Ke),bht=TB(ou),Eht=TB(Ke),Fht=TB(Db),dht=TB(Gi),mht=[0,0,0,0],hht=[0,[0,0,0,0,0]],kht=TB(hE),yht=[0,0],Aht=[15,1],_ht=[15,0],Cht=[0,TB(At),138,15],wht=[0,TB(At),Sm,15],Sht=[0,43],ght=[0,43],Bht=[0,0,0],Tht=[0,0,0],Iht=[0,0,0],Oht=[0,41],Nht=TB(ds),xht=TB(ds),Lht=[0,TB(un),1495,13],Pht=[0,TB(un),1261,17],Rht=[0,TB("a template literal part")],Mht=[0,[0,TB(D_),TB(D_)],1],Ght=TB(fd),Uht=TB(fd),jht=TB(Gk),Xht=TB(Xa),Hht=TB("Invalid bigint "),$ht=TB("Invalid bigint binary/octal "),Yht=TB(yb),Vht=TB(If),Kht=TB(Eu),Jht=TB(Eu),Wht=TB(Br),qht=[0,43],zht=[0,1],Qht=[0,1],Zht=[0,1],rkt=[0,1],tkt=[0,0],ekt=TB(li),nkt=TB(li),ukt=TB(Ws),akt=TB(Fb),ikt=[0,TB("the identifier `target`")],ckt=[0,0],fkt=[0,80],okt=[0,0,0],skt=[0,1,0],vkt=[0,1,1],lkt=TB(Jf),Dkt=[0,0],pkt=[0,TB("either a call or access of `super`")],bkt=TB(Jf),Ekt=[0,0],Fkt=[0,1],dkt=[0,0],mkt=[0,1],hkt=[0,0],kkt=[0,1],ykt=[0,0],Akt=[0,2],_kt=[0,3],Ckt=[0,7],wkt=[0,6],Skt=[0,4],gkt=[0,5],Bkt=[0,[0,17,[0,2]]],Tkt=[0,[0,18,[0,3]]],Ikt=[0,[0,19,[0,4]]],Okt=[0,[0,0,[0,5]]],Nkt=[0,[0,1,[0,5]]],xkt=[0,[0,2,[0,5]]],Lkt=[0,[0,3,[0,5]]],Pkt=[0,[0,5,[0,6]]],Rkt=[0,[0,7,[0,6]]],Mkt=[0,[0,4,[0,6]]],Gkt=[0,[0,6,[0,6]]],Ukt=[0,[0,8,[0,7]]],jkt=[0,[0,9,[0,7]]],Xkt=[0,[0,10,[0,7]]],Hkt=[0,[0,11,[0,8]]],$kt=[0,[0,12,[0,8]]],Ykt=[0,[0,15,[0,9]]],Vkt=[0,[0,13,[0,9]]],Kkt=[0,[0,14,[1,10]]],Jkt=[0,[0,16,[0,9]]],Wkt=[0,[0,21,[0,6]]],qkt=[0,[0,20,[0,6]]],zkt=[24,TB(a)],Qkt=[0,[0,8]],Zkt=[0,[0,7]],ryt=[0,[0,6]],tyt=[0,[0,10]],eyt=[0,[0,9]],nyt=[0,[0,11]],uyt=[0,[0,5]],ayt=[0,[0,4]],iyt=[0,[0,2]],cyt=[0,[0,3]],fyt=[0,[0,1]],oyt=[0,[0,0]],syt=[0,0],vyt=TB(Ws),lyt=TB(Fb),Dyt=[0,5],pyt=TB(_A),byt=TB(Ws),Eyt=TB(Fb),Fyt=TB(wk),dyt=TB(pF),myt=[18,TB("JSX fragment")],hyt=[0,vn],kyt=[1,vn],yyt=TB(D_),Ayt=[0,TB(D_)],_yt=[0,TB(hd)],Cyt=TB(D_),wyt=TB("unexpected PrivateName in Property, expected a PrivateField"),Syt=TB(Db),gyt=TB(Gi),Byt=[0,0,0],Tyt=TB(Db),Iyt=TB(Db),Oyt=TB(Ke),Nyt=TB(ou),xyt=[0,1],Lyt=[0,1],Pyt=[0,1],Ryt=TB(Db),Myt=TB(Ke),Gyt=TB(ou),Uyt=TB("="),jyt=TB(Eb),Xyt=TB(lf),Hyt=TB("Internal Error: private name found in object props"),$yt=TB(Ng),Yyt=[0,TB(hd)],Vyt=TB(Eb),Kyt=TB(lf),Jyt=TB(Eb),Wyt=TB(lf),qyt=TB(Ng),zyt=[11,TB(gg)],Qyt=[0,1],Zyt=TB(Rk),rAt=TB(Bm),tAt=[0,TB(rE),1723,21],eAt=TB(Rk),nAt=TB(l_),uAt=TB("other than an interface declaration!"),aAt=TB("Internal Flow Error! Parsed `export interface` into something "),iAt=TB(Bm),cAt=TB("Internal Flow Error! Unexpected export statement declaration!"),fAt=[0,40],oAt=TB(Rk),sAt=TB(Bm),vAt=[0,TB(D_),TB(D_),0],lAt=[0,TB(Le)],DAt=TB(at),pAt=TB("exports"),bAt=[0,1],EAt=TB(at),FAt=[0,1],dAt=TB(le),mAt=[0,0],hAt=[0,1],kAt=[0,83],yAt=[0,0],AAt=[0,1],_At=TB(Rk),CAt=TB(Rk),wAt=TB(Bm),SAt=TB(Rk),gAt=[0,TB("the keyword `as`")],BAt=TB(Rk),TAt=TB(Bm),IAt=[0,TB(Le)],OAt=[0,TB("the keyword `from`")],NAt=[0,TB(D_),TB(D_),0],xAt=TB("Parser error: No such thing as an expression pattern!"),LAt=[0,TB(M)],PAt=TB("Label"),RAt=[0,TB(M)],MAt=[0,0,0],GAt=[0,29],UAt=[0,TB(rE),419,22],jAt=[0,28],XAt=[0,TB(rE),438,22],HAt=[0,0],$At=TB("the token `;`"),YAt=[0,0],VAt=[0,0],KAt=TB(lf),JAt=TB(ss),WAt=TB(Eb),qAt=[0,TB(Iu)],zAt=[15,[0,0]],QAt=[0,TB(Iu)],ZAt=TB("use strict"),r_t=[0,0,0],t_t=TB("\n"),e_t=TB("Nooo: "),n_t=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],u_t=[0,TB("src/parser/parser_flow.ml"),42,28],a_t=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],i_t=TB(WF),c_t=TB(KC),f_t=TB(Ae),o_t=TB(Wu),s_t=TB("end"),v_t=TB(Ae),l_t=TB(Wu),D_t=TB(I),p_t=TB(Gl),b_t=TB("normal"),E_t=TB(qr),F_t=TB("jsxTag"),d_t=TB("jsxChild"),m_t=TB("template"),h_t=TB(Fl),k_t=TB("context"),y_t=TB(qr),A_t=TB("use_strict"),__t=TB(lS),C_t=TB("esproposal_optional_chaining"),w_t=TB("esproposal_nullish_coalescing"),S_t=TB("esproposal_export_star_as"),g_t=TB("esproposal_decorators"),B_t=TB("esproposal_class_static_fields"),T_t=TB("esproposal_class_instance_fields"),I_t=TB("enums"),O_t=TB("Internal error: ");function N_t(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[0,N_t(r[1])];case 1:return[1,N_t(r[1])];case 2:return[2,N_t(r[1])];case 3:return[3,N_t(r[1])];case 4:return[4,N_t(r[1])];case 5:return[5,N_t(r[1])];case 6:return[6,N_t(r[1])];case 7:return[7,N_t(r[1])];case 8:return[8,r[1],N_t(r[2])];case 9:var t=r[1];return[9,t,t,N_t(r[3])];case 10:return[10,N_t(r[1])];case 11:return[11,N_t(r[1])];case 12:return[12,N_t(r[1])];case 13:return[13,N_t(r[1])];default:return[14,N_t(r[1])]}}function x_t(r,t){if("number"==typeof r)return t;switch(r[0]){case 0:return[0,x_t(r[1],t)];case 1:return[1,x_t(r[1],t)];case 2:return[2,x_t(r[1],t)];case 3:return[3,x_t(r[1],t)];case 4:return[4,x_t(r[1],t)];case 5:return[5,x_t(r[1],t)];case 6:return[6,x_t(r[1],t)];case 7:return[7,x_t(r[1],t)];case 8:return[8,r[1],x_t(r[2],t)];case 9:var e=r[2];return[9,r[1],e,x_t(r[3],t)];case 10:return[10,x_t(r[1],t)];case 11:return[11,x_t(r[1],t)];case 12:return[12,x_t(r[1],t)];case 13:return[13,x_t(r[1],t)];default:return[14,x_t(r[1],t)]}}function L_t(r,t){if("number"==typeof r)return t;switch(r[0]){case 0:return[0,L_t(r[1],t)];case 1:return[1,L_t(r[1],t)];case 2:return[2,r[1],L_t(r[2],t)];case 3:return[3,r[1],L_t(r[2],t)];case 4:var e=r[3],n=r[2];return[4,r[1],n,e,L_t(r[4],t)];case 5:var u=r[3],a=r[2];return[5,r[1],a,u,L_t(r[4],t)];case 6:var i=r[3],c=r[2];return[6,r[1],c,i,L_t(r[4],t)];case 7:var f=r[3],o=r[2];return[7,r[1],o,f,L_t(r[4],t)];case 8:var s=r[3],v=r[2];return[8,r[1],v,s,L_t(r[4],t)];case 9:return[9,r[1],L_t(r[2],t)];case 10:return[10,L_t(r[1],t)];case 11:return[11,r[1],L_t(r[2],t)];case 12:return[12,r[1],L_t(r[2],t)];case 13:var l=r[2];return[13,r[1],l,L_t(r[3],t)];case 14:var D=r[2];return[14,r[1],D,L_t(r[3],t)];case 15:return[15,L_t(r[1],t)];case 16:return[16,L_t(r[1],t)];case 17:return[17,r[1],L_t(r[2],t)];case 18:return[18,r[1],L_t(r[2],t)];case 19:return[19,L_t(r[1],t)];case 20:var p=r[2];return[20,r[1],p,L_t(r[3],t)];case 21:return[21,r[1],L_t(r[2],t)];case 22:return[22,L_t(r[1],t)];case 23:return[23,r[1],L_t(r[2],t)];default:var b=r[2];return[24,r[1],b,L_t(r[3],t)]}}function P_t(r){throw[0,GI,r]}function R_t(r){throw[0,UI,r]}function M_t(r){return 0<=r?r:0|-r}NT();function G_t(r,t){var e=HT(r),n=HT(t),u=CT(e+n|0);return AB(r,0,u,0,e),AB(t,0,u,e,n),u}function U_t(r){return r?iO:cO}function j_t(r,t){return r?[0,r[1],j_t(r[2],t)]:t}!function(r){var t=dB.fds[r];t.flags.wronly&&aI("fd "+r+" is writeonly");var e={file:t.file,offset:t.offset,fd:r,opened:!0,out:!1,refill:null};iI[e.fd]=e}(0);var X_t=FI(1),H_t=FI(2),$_t=[0,function(r){return function(r){for(var t=r;;){if(!t)return 0;var e=t[2],n=t[1];try{cI(n)}catch(t){if((t=II(t))[1]!==MI)throw t}t=e}}(function(){for(var r=0,t=0;t0)if(0==t&&(e>=r.l||2==r.t&&e>=r.c.length))0==n?(r.c=D_,r.t=2):(r.c=_B(e,String.fromCharCode(n)),r.t=e==r.l?0:2);else for(4!=r.t&&kB(r),e+=t;t=1;a--)e[n+a]=r[t+a];return 0}(r,t,e,n,u):R_t(_O)}function CCt(r,t){var e=t.length-1-1|0;if(!(e<0))for(var n=0;;){OI(r,t[1+n]);var u=n+1|0;if(e===n)break;n=u}return 0}function wCt(r,t){var e=t.length-1;if(0===e)return[0];var n=uI(e,OI(r,t[1])),u=e-1|0;if(!(u<1))for(var a=1;;){n[1+a]=OI(r,t[1+a]);var i=a+1|0;if(u===a)break;a=i}return n}function SCt(r){if(r)for(var t=0,e=r,n=r[2],u=r[1];;)if(e)t=t+1|0,e=e[2];else for(var a=uI(t,u),i=1,c=n;;){if(!c)return a;var f=c[2];a[1+i]=c[1];i=i+1|0,c=f}return[0]}function gCt(r){function t(r){return r?r[4]:0}function e(r,t,e){var n=r?r[4]:0,u=e?e[4]:0;return[0,r,t,e,u<=n?n+1|0:u+1|0]}function n(r,n,u){var a=r?r[4]:0,i=u?u[4]:0;if((i+2|0)>1,h=DCt(m,t),k=b(m,t),y=b(r-m|0,h),A=0;;){if(k){if(y){var _=y[2],C=y[1],w=k[2],S=k[1],g=NI(D,S,C);if(0===g){k=w,y=_,A=[0,S,A];continue}if(0<=g){y=_,A=[0,C,A];continue}k=w,A=[0,S,A];continue}return eCt(k,A)}return eCt(y,A)}},b=function(r,t){if(2===r){if(t){var e=t[2];if(e){var n=e[1],u=t[1],a=NI(D,u,n);return 0===a?[0,u,0]:0<=a?[0,n,[0,u,0]]:[0,u,[0,n,0]]}}}else if(3===r&&t){var i=t[2];if(i){var c=i[2];if(c){var f=c[1],o=i[1],s=t[1],v=NI(D,s,o);if(0===v){var l=NI(D,o,f);return 0===l?[0,o,0]:0<=l?[0,f,[0,o,0]]:[0,o,[0,f,0]]}if(0<=v){var b=NI(D,s,f);if(0===b)return[0,o,[0,s,0]];if(0<=b){var E=NI(D,o,f);return 0===E?[0,o,[0,s,0]]:0<=E?[0,f,[0,o,[0,s,0]]]:[0,o,[0,f,[0,s,0]]]}return[0,o,[0,s,[0,f,0]]]}var F=NI(D,o,f);if(0===F)return[0,s,[0,o,0]];if(0<=F){var d=NI(D,s,f);return 0===d?[0,s,[0,o,0]]:0<=d?[0,f,[0,s,[0,o,0]]]:[0,s,[0,f,[0,o,0]]]}return[0,s,[0,o,[0,f,0]]]}}}for(var m=r>>1,h=DCt(m,t),k=p(m,t),y=p(r-m|0,h),A=0;;){if(k){if(y){var _=y[2],C=y[1],w=k[2],S=k[1],g=NI(D,S,C);if(0===g){k=w,y=_,A=[0,S,A];continue}if(0>>0))switch(r){case 0:return[0,0,t];case 1:if(t)return[0,[0,0,t[1],0,1],t[2]];break;case 2:if(t){var n=t[2];if(n)return[0,[0,[0,0,t[1],0,1],n[1],0,2],n[2]]}break;default:if(t){var u=t[2];if(u){var a=u[2];if(a)return[0,[0,[0,0,t[1],0,1],u[1],[0,0,a[1],0,1],2],a[2]]}}}var i=r/2|0,c=d(i,t),f=c[2],o=c[1];if(f){var s=f[1],v=d((r-i|0)-1|0,f[2]),l=v[2];return[0,e(o,s,v[1]),l]}throw[0,$I,TO]};return d(Z_t(F),F)[1]}return u(v[1],u(l,u(s,u(f,a(i)))))}return u(l,u(s,u(f,a(i))))}return u(s,u(f,a(i)))}return u(f,a(i))}return a(i)}return 0},function(t,e){for(var n=e,u=0;;){if(n){var a=n[3],i=n[2],c=n[1],f=NI(r[1],i,t);if(0!==f){if(0<=f){n=c,u=[0,i,a,u];continue}n=a;continue}var o=[0,i,a,u]}else o=u;return function(r){return k(o)}}},function(r){var t=F(r,0);return function(r){return k(t)}},h,function(r){return h(r,0)}]}function BCt(r){function t(r){return r?r[5]:0}function e(r,e,n,u){var a=t(r),i=t(u);return[0,r,e,n,u,i<=a?a+1|0:i+1|0]}function n(r,t){return[0,0,r,t,0,1]}function u(r,n,u,a){var i=r?r[5]:0,c=a?a[5]:0;if((c+2|0)=0)}(a,n)?a:n);dCt(r[2],0,i,0,e),r[2]=i;var c=0}else c=u;return c}function YCt(r,t){return $Ct(r,1),LB(r[2],r[1],t),r[1]=r[1]+1|0,0}function VCt(r,t){var e=HT(t);return $Ct(r,e),mCt(t,0,r[2],r[1],e),r[1]=r[1]+e|0,0}function KCt(r){return FCt(r[2],0,r[1])}function JCt(r,t){for(var e=t;;){if("number"==typeof e)return 0;switch(e[0]){case 0:var n=e[1];VCt(r,WO);e=n;continue;case 1:var u=e[1];VCt(r,qO);e=u;continue;case 2:var a=e[1];VCt(r,zO);e=a;continue;case 3:var i=e[1];VCt(r,QO);e=i;continue;case 4:var c=e[1];VCt(r,ZO);e=c;continue;case 5:var f=e[1];VCt(r,rN);e=f;continue;case 6:var o=e[1];VCt(r,tN);e=o;continue;case 7:var s=e[1];VCt(r,eN);e=s;continue;case 8:var v=e[2],l=e[1];VCt(r,nN),JCt(r,l),VCt(r,uN);e=v;continue;case 9:var D=e[3],p=e[1];VCt(r,aN),JCt(r,p),VCt(r,iN);e=D;continue;case 10:var b=e[1];VCt(r,cN);e=b;continue;case 11:var E=e[1];VCt(r,fN);e=E;continue;case 12:var F=e[1];VCt(r,oN);e=F;continue;case 13:var d=e[1];VCt(r,sN);e=d;continue;default:var m=e[1];VCt(r,vN);e=m;continue}}}function WCt(r){if("number"==typeof r)return 0;switch(r[0]){case 0:return[0,WCt(r[1])];case 1:return[1,WCt(r[1])];case 2:return[2,WCt(r[1])];case 3:return[3,WCt(r[1])];case 4:return[4,WCt(r[1])];case 5:return[5,WCt(r[1])];case 6:return[6,WCt(r[1])];case 7:return[7,WCt(r[1])];case 8:return[8,r[1],WCt(r[2])];case 9:return[9,r[2],r[1],WCt(r[3])];case 10:return[10,WCt(r[1])];case 11:return[11,WCt(r[1])];case 12:return[12,WCt(r[1])];case 13:return[13,WCt(r[1])];default:return[14,WCt(r[1])]}}function qCt(r){if("number"==typeof r){return[0,function(r){return 0},function(r){return 0},function(r){return 0},function(r){return 0}]}switch(r[0]){case 0:var t=qCt(r[1]),e=t[4],n=t[3],u=t[2],a=t[1];return[0,function(r){return OI(a,0),0},function(r){return OI(u,0),0},n,e];case 1:var i=qCt(r[1]),c=i[4],f=i[3],o=i[2],s=i[1];return[0,function(r){return OI(s,0),0},function(r){return OI(o,0),0},f,c];case 2:var v=qCt(r[1]),l=v[4],D=v[3],p=v[2],b=v[1];return[0,function(r){return OI(b,0),0},function(r){return OI(p,0),0},D,l];case 3:var E=qCt(r[1]),F=E[4],d=E[3],m=E[2],h=E[1];return[0,function(r){return OI(h,0),0},function(r){return OI(m,0),0},d,F];case 4:var k=qCt(r[1]),y=k[4],A=k[3],_=k[2],C=k[1];return[0,function(r){return OI(C,0),0},function(r){return OI(_,0),0},A,y];case 5:var w=qCt(r[1]),S=w[4],g=w[3],B=w[2],T=w[1];return[0,function(r){return OI(T,0),0},function(r){return OI(B,0),0},g,S];case 6:var I=qCt(r[1]),O=I[4],N=I[3],x=I[2],L=I[1];return[0,function(r){return OI(L,0),0},function(r){return OI(x,0),0},N,O];case 7:var P=qCt(r[1]),R=P[4],M=P[3],G=P[2],U=P[1];return[0,function(r){return OI(U,0),0},function(r){return OI(G,0),0},M,R];case 8:var j=qCt(r[2]),X=j[4],H=j[3],$=j[2],Y=j[1];return[0,function(r){return OI(Y,0),0},function(r){return OI($,0),0},H,X];case 9:var V=r[2],K=r[1],J=qCt(r[3]),W=J[4],q=J[3],z=J[2],Q=J[1],Z=qCt(zCt(WCt(K),V)),rr=Z[4],tr=Z[3],er=Z[2],nr=Z[1];return[0,function(r){return OI(Q,0),OI(nr,0),0},function(r){return OI(er,0),OI(z,0),0},function(r){return OI(q,0),OI(tr,0),0},function(r){return OI(rr,0),OI(W,0),0}];case 10:var ur=qCt(r[1]),ar=ur[4],ir=ur[3],cr=ur[2],fr=ur[1];return[0,function(r){return OI(fr,0),0},function(r){return OI(cr,0),0},ir,ar];case 11:var or=qCt(r[1]),sr=or[4],vr=or[3],lr=or[2],Dr=or[1];return[0,function(r){return OI(Dr,0),0},function(r){return OI(lr,0),0},vr,sr];case 12:var pr=qCt(r[1]),br=pr[4],Er=pr[3],Fr=pr[2],dr=pr[1];return[0,function(r){return OI(dr,0),0},function(r){return OI(Fr,0),0},Er,br];case 13:var mr=qCt(r[1]),hr=mr[4],kr=mr[3],yr=mr[2],Ar=mr[1];return[0,function(r){return OI(Ar,0),0},function(r){return OI(yr,0),0},function(r){return OI(kr,0),0},function(r){return OI(hr,0),0}];default:var _r=qCt(r[1]),Cr=_r[4],wr=_r[3],Sr=_r[2],gr=_r[1];return[0,function(r){return OI(gr,0),0},function(r){return OI(Sr,0),0},function(r){return OI(wr,0),0},function(r){return OI(Cr,0),0}]}}function zCt(r,t){var e=0;if("number"==typeof r){if("number"==typeof t)return 0;switch(t[0]){case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;case 8:e=5;break;case 9:e=6;break;default:throw[0,$I,lN]}}else switch(r[0]){case 0:var n=0,u=r[1];if("number"!=typeof t)switch(t[0]){case 0:return[0,zCt(u,t[1])];case 8:e=5,n=1;break;case 9:e=6,n=1;break;case 10:n=1;break;case 11:e=1,n=1;break;case 12:e=2,n=1;break;case 13:e=3,n=1;break;case 14:e=4,n=1}n||(e=7);break;case 1:var a=0,i=r[1];if("number"!=typeof t)switch(t[0]){case 1:return[1,zCt(i,t[1])];case 8:e=5,a=1;break;case 9:e=6,a=1;break;case 10:a=1;break;case 11:e=1,a=1;break;case 12:e=2,a=1;break;case 13:e=3,a=1;break;case 14:e=4,a=1}a||(e=7);break;case 2:var c=0,f=r[1];if("number"==typeof t)c=1;else switch(t[0]){case 2:return[2,zCt(f,t[1])];case 8:e=5;break;case 9:e=6;break;case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:c=1}c&&(e=7);break;case 3:var o=0,s=r[1];if("number"==typeof t)o=1;else switch(t[0]){case 3:return[3,zCt(s,t[1])];case 8:e=5;break;case 9:e=6;break;case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:o=1}o&&(e=7);break;case 4:var v=0,l=r[1];if("number"==typeof t)v=1;else switch(t[0]){case 4:return[4,zCt(l,t[1])];case 8:e=5;break;case 9:e=6;break;case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:v=1}v&&(e=7);break;case 5:var D=0,p=r[1];if("number"==typeof t)D=1;else switch(t[0]){case 5:return[5,zCt(p,t[1])];case 8:e=5;break;case 9:e=6;break;case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:D=1}D&&(e=7);break;case 6:var b=0,E=r[1];if("number"==typeof t)b=1;else switch(t[0]){case 6:return[6,zCt(E,t[1])];case 8:e=5;break;case 9:e=6;break;case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:b=1}b&&(e=7);break;case 7:var F=0,d=r[1];if("number"==typeof t)F=1;else switch(t[0]){case 7:return[7,zCt(d,t[1])];case 8:e=5;break;case 9:e=6;break;case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:F=1}F&&(e=7);break;case 8:var m=0,h=r[2],k=r[1];if("number"==typeof t)m=1;else switch(t[0]){case 8:var y=t[1],A=zCt(h,t[2]);return[8,zCt(k,y),A];case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:m=1}if(m)throw[0,$I,AN];break;case 9:var _=0,C=r[3],w=r[2],S=r[1];if("number"==typeof t)_=1;else switch(t[0]){case 8:e=5;break;case 9:var g=t[3],B=t[2],T=t[1],I=qCt(zCt(WCt(w),T)),O=I[4];return OI(I[2],0),OI(O,0),[9,S,B,zCt(C,g)];case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:e=4;break;default:_=1}if(_)throw[0,$I,CN];break;case 10:var N=r[1];if("number"!=typeof t&&10===t[0])return[10,zCt(N,t[1])];throw[0,$I,DN];case 11:var x=0,L=r[1];if("number"==typeof t)x=1;else switch(t[0]){case 10:break;case 11:return[11,zCt(L,t[1])];default:x=1}if(x)throw[0,$I,bN];break;case 12:var P=0,R=r[1];if("number"==typeof t)P=1;else switch(t[0]){case 10:break;case 11:e=1;break;case 12:return[12,zCt(R,t[1])];default:P=1}if(P)throw[0,$I,FN];break;case 13:var M=0,G=r[1];if("number"==typeof t)M=1;else switch(t[0]){case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:return[13,zCt(G,t[1])];default:M=1}if(M)throw[0,$I,mN];break;default:var U=0,j=r[1];if("number"==typeof t)U=1;else switch(t[0]){case 10:break;case 11:e=1;break;case 12:e=2;break;case 13:e=3;break;case 14:return[14,zCt(j,t[1])];default:U=1}if(U)throw[0,$I,kN]}switch(e){case 0:throw[0,$I,pN];case 1:throw[0,$I,EN];case 2:throw[0,$I,dN];case 3:throw[0,$I,hN];case 4:throw[0,$I,yN];case 5:throw[0,$I,_N];case 6:throw[0,$I,wN];default:throw[0,$I,SN]}}NT(),NT(),NT();var QCt=[_c,eL,NT()];function ZCt(r,t){if("number"==typeof r)return[0,0,t];if(0===r[0])return[0,[0,r[1],r[2]],t];if("number"!=typeof t&&2===t[0])return[0,[1,r[1]],t[1]];throw QCt}function rwt(r,t,e){var n=ZCt(r,e);if("number"==typeof t){if(0===t)return[0,n[1],0,n[2]];var u=n[2];if("number"!=typeof u&&2===u[0])return[0,n[1],1,u[1]];throw QCt}return[0,n[1],[0,t[1]],n[2]]}function twt(r,t,e){if("number"==typeof r)return[0,0,ewt(t,e)];switch(r[0]){case 0:if("number"!=typeof e&&0===e[0]){var n=twt(r[1],t,e[1]);return[0,[0,n[1]],n[2]]}break;case 1:if("number"!=typeof e&&1===e[0]){var u=twt(r[1],t,e[1]);return[0,[1,u[1]],u[2]]}break;case 2:if("number"!=typeof e&&2===e[0]){var a=twt(r[1],t,e[1]);return[0,[2,a[1]],a[2]]}break;case 3:if("number"!=typeof e&&3===e[0]){var i=twt(r[1],t,e[1]);return[0,[3,i[1]],i[2]]}break;case 4:if("number"!=typeof e&&4===e[0]){var c=twt(r[1],t,e[1]);return[0,[4,c[1]],c[2]]}break;case 5:if("number"!=typeof e&&5===e[0]){var f=twt(r[1],t,e[1]);return[0,[5,f[1]],f[2]]}break;case 6:if("number"!=typeof e&&6===e[0]){var o=twt(r[1],t,e[1]);return[0,[6,o[1]],o[2]]}break;case 7:if("number"!=typeof e&&7===e[0]){var s=twt(r[1],t,e[1]);return[0,[7,s[1]],s[2]]}break;case 8:if("number"!=typeof e&&8===e[0]){var v=e[1],l=e[2],D=r[2];if(mI([0,r[1]],[0,v]))throw QCt;var p=twt(D,t,l);return[0,[8,v,p[1]],p[2]]}break;case 9:if("number"!=typeof e&&9===e[0]){var b=e[2],E=e[1],F=e[3],d=r[3],m=r[2],h=r[1],k=[0,N_t(E)];if(mI([0,N_t(h)],k))throw QCt;var y=[0,N_t(b)];if(mI([0,N_t(m)],y))throw QCt;var A=qCt(zCt(WCt(E),b)),_=A[4];OI(A[2],0),OI(_,0);var C=twt(N_t(d),t,F),w=C[2];return[0,[9,E,b,WCt(C[1])],w]}break;case 10:if("number"!=typeof e&&10===e[0]){var S=twt(r[1],t,e[1]);return[0,[10,S[1]],S[2]]}break;case 11:if("number"!=typeof e&&11===e[0]){var g=twt(r[1],t,e[1]);return[0,[11,g[1]],g[2]]}break;case 13:if("number"!=typeof e&&13===e[0]){var B=twt(r[1],t,e[1]);return[0,[13,B[1]],B[2]]}break;case 14:if("number"!=typeof e&&14===e[0]){var T=twt(r[1],t,e[1]);return[0,[14,T[1]],T[2]]}}throw QCt}function ewt(r,t){if("number"==typeof r)return[0,0,t];switch(r[0]){case 0:if("number"!=typeof t&&0===t[0]){var e=ewt(r[1],t[1]);return[0,[0,e[1]],e[2]]}break;case 1:if("number"!=typeof t&&0===t[0]){var n=ewt(r[1],t[1]);return[0,[1,n[1]],n[2]]}break;case 2:var u=r[2],a=ZCt(r[1],t),i=a[2],c=a[1];if("number"!=typeof i&&1===i[0]){var f=ewt(u,i[1]);return[0,[2,c,f[1]],f[2]]}throw QCt;case 3:var o=r[2],s=ZCt(r[1],t),v=s[2],l=s[1];if("number"!=typeof v&&1===v[0]){var D=ewt(o,v[1]);return[0,[3,l,D[1]],D[2]]}throw QCt;case 4:var p=r[4],b=r[1],E=rwt(r[2],r[3],t),F=E[3],d=E[2],m=E[1];if("number"!=typeof F&&2===F[0]){var h=ewt(p,F[1]);return[0,[4,b,m,d,h[1]],h[2]]}throw QCt;case 5:var k=r[4],y=r[1],A=rwt(r[2],r[3],t),_=A[3],C=A[2],w=A[1];if("number"!=typeof _&&3===_[0]){var S=ewt(k,_[1]);return[0,[5,y,w,C,S[1]],S[2]]}throw QCt;case 6:var g=r[4],B=r[1],T=rwt(r[2],r[3],t),I=T[3],O=T[2],N=T[1];if("number"!=typeof I&&4===I[0]){var x=ewt(g,I[1]);return[0,[6,B,N,O,x[1]],x[2]]}throw QCt;case 7:var L=r[4],P=r[1],R=rwt(r[2],r[3],t),M=R[3],G=R[2],U=R[1];if("number"!=typeof M&&5===M[0]){var j=ewt(L,M[1]);return[0,[7,P,U,G,j[1]],j[2]]}throw QCt;case 8:var X=r[4],H=r[1],$=rwt(r[2],r[3],t),Y=$[3],V=$[2],K=$[1];if("number"!=typeof Y&&6===Y[0]){var J=ewt(X,Y[1]);return[0,[8,H,K,V,J[1]],J[2]]}throw QCt;case 9:var W=r[2],q=ZCt(r[1],t),z=q[2],Q=q[1];if("number"!=typeof z&&7===z[0]){var Z=ewt(W,z[1]);return[0,[9,Q,Z[1]],Z[2]]}throw QCt;case 10:var rr=ewt(r[1],t);return[0,[10,rr[1]],rr[2]];case 11:var tr=r[1],er=ewt(r[2],t);return[0,[11,tr,er[1]],er[2]];case 12:var nr=r[1],ur=ewt(r[2],t);return[0,[12,nr,ur[1]],ur[2]];case 13:if("number"!=typeof t&&8===t[0]){var ar=t[1],ir=t[2],cr=r[3],fr=r[1];if(mI([0,r[2]],[0,ar]))throw QCt;var or=ewt(cr,ir);return[0,[13,fr,ar,or[1]],or[2]]}break;case 14:if("number"!=typeof t&&9===t[0]){var sr=t[1],vr=t[3],lr=r[3],Dr=r[2],pr=r[1],br=[0,N_t(sr)];if(mI([0,N_t(Dr)],br))throw QCt;var Er=ewt(lr,N_t(vr));return[0,[14,pr,sr,Er[1]],Er[2]]}break;case 15:if("number"!=typeof t&&10===t[0]){var Fr=ewt(r[1],t[1]);return[0,[15,Fr[1]],Fr[2]]}break;case 16:if("number"!=typeof t&&11===t[0]){var dr=ewt(r[1],t[1]);return[0,[16,dr[1]],dr[2]]}break;case 17:var mr=r[1],hr=ewt(r[2],t);return[0,[17,mr,hr[1]],hr[2]];case 18:var kr=r[2],yr=r[1];if(0===yr[0]){var Ar=yr[1],_r=Ar[2],Cr=ewt(Ar[1],t),wr=Cr[1],Sr=ewt(kr,Cr[2]);return[0,[18,[0,[0,wr,_r]],Sr[1]],Sr[2]]}var gr=yr[1],Br=gr[2],Tr=ewt(gr[1],t),Ir=Tr[1],Or=ewt(kr,Tr[2]);return[0,[18,[1,[0,Ir,Br]],Or[1]],Or[2]];case 19:if("number"!=typeof t&&13===t[0]){var Nr=ewt(r[1],t[1]);return[0,[19,Nr[1]],Nr[2]]}break;case 20:if("number"!=typeof t&&1===t[0]){var xr=r[2],Lr=r[1],Pr=ewt(r[3],t[1]);return[0,[20,Lr,xr,Pr[1]],Pr[2]]}break;case 21:if("number"!=typeof t&&2===t[0]){var Rr=r[1],Mr=ewt(r[2],t[1]);return[0,[21,Rr,Mr[1]],Mr[2]]}break;case 23:var Gr=r[2],Ur=r[1];if("number"==typeof Ur)switch(Ur){case 0:case 1:return nwt(Ur,Gr,t);case 2:if("number"!=typeof t&&14===t[0]){var jr=ewt(Gr,t[1]);return[0,[23,2,jr[1]],jr[2]]}throw QCt;default:return nwt(Ur,Gr,t)}else switch(Ur[0]){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:return nwt(Ur,Gr,t);case 8:return nwt([8,Ur[1],Ur[2]],Gr,t);case 9:var Xr=Ur[1],Hr=twt(Ur[2],Gr,t),$r=Hr[2];return[0,[23,[9,Xr,Hr[1]],$r[1]],$r[2]];case 10:default:return nwt(Ur,Gr,t)}}throw QCt}function nwt(r,t,e){var n=ewt(t,e);return[0,[23,r,n[1]],n[2]]}function uwt(r,t,e){var n=HT(e),u=0<=t?r:0,a=M_t(t);if(a<=n)return e;var i=pCt(a,2===u?48:32);switch(u){case 0:mCt(e,0,i,0,n);break;case 1:mCt(e,0,i,a-n|0,n);break;default:var c=0;if(0>>0||(a=1):65<=u&&(a=1);else{var i=0;if(32!==u)if(43<=u)switch(u+-43|0){case 5:if(n<(e+2|0)&&1>>0?33<(u+-61|0)>>>0&&(a=1):2===u&&(a=1),!a){t=t+1|0;continue}var i=r,c=[0,0],f=XT(i)-1|0;if(!(f<0))for(var o=0;;){var s=PB(i,o),v=0;if(32<=s){var l=s-34|0,D=0;if(58>>0?93<=l&&(D=1):56<(l-1|0)>>>0&&(v=1,D=1),!D){var p=1;v=2}}else 11<=s?13===s&&(v=1):8<=s&&(v=1);switch(v){case 0:p=4;break;case 1:p=2}c[1]=c[1]+p|0;var b=o+1|0;if(f===o)break;o=b}if(c[1]===XT(i))var E=bCt(i);else{var F=CT(c[1]);c[1]=0;var d=XT(i)-1|0;if(!(d<0))for(var m=0;;){var h=PB(i,m),k=0;if(35<=h)k=92===h?2:vA<=h?1:3;else if(32<=h)k=34<=h?2:3;else if(14<=h)k=1;else switch(h){case 8:xB(F,c[1],92),c[1]++,xB(F,c[1],98);break;case 9:xB(F,c[1],92),c[1]++,xB(F,c[1],AF);break;case 10:xB(F,c[1],92),c[1]++,xB(F,c[1],qt);break;case 13:xB(F,c[1],92),c[1]++,xB(F,c[1],ki);break;default:k=1}switch(k){case 1:xB(F,c[1],92),c[1]++,xB(F,c[1],48+(h/ku|0)|0),c[1]++,xB(F,c[1],48+((h/10|0)%10|0)|0),c[1]++,xB(F,c[1],48+(h%10|0)|0);break;case 2:xB(F,c[1],92),c[1]++,xB(F,c[1],h);break;case 3:xB(F,c[1],h)}c[1]++;var y=m+1|0;if(d===m)break;m=y}E=F}n=E}var A=HT(n),_=pCt(A+2|0,34);return AB(n,0,_,1,A),_}}function cwt(r,t){if(13<=r){var e=[0,0],n=HT(t)-1|0;if(!(n<0))for(var u=0;;){9<($T(t,u)+yw|0)>>>0||e[1]++;var a=u+1|0;if(n===u)break;u=a}var i=e[1],c=CT(HT(t)+((i-1|0)/3|0)|0),f=[0,0],o=function(r){return LB(c,f[1],r),f[1]++,0},s=[0,1+((i-1|0)%3|0)|0],v=HT(t)-1|0;if(!(v<0))for(var l=0;;){var D=$T(t,l);9<(D+yw|0)>>>0||(0===s[1]&&(o(95),s[1]=3),s[1]+=-1),o(D);var p=l+1|0;if(v===l)break;l=p}return c}return t}function fwt(r,t){switch(r){case 1:var e=Lx;break;case 2:e=Px;break;case 4:e=Rx;break;case 5:e=Mx;break;case 6:e=Gx;break;case 7:e=Ux;break;case 8:e=jx;break;case 9:e=Xx;break;case 10:e=Hx;break;case 11:e=$x;break;case 0:case 13:e=Yx;break;case 3:case 14:e=Vx;break;default:e=Kx}return cwt(r,IT(e,t))}function owt(r,t){switch(r){case 1:var e=ox;break;case 2:e=sx;break;case 4:e=vx;break;case 5:e=lx;break;case 6:e=Dx;break;case 7:e=px;break;case 8:e=bx;break;case 9:e=Ex;break;case 10:e=Fx;break;case 11:e=dx;break;case 0:case 13:e=mx;break;case 3:case 14:e=hx;break;default:e=kx}return cwt(r,IT(e,t))}function swt(r,t){switch(r){case 1:var e=qN;break;case 2:e=zN;break;case 4:e=QN;break;case 5:e=ZN;break;case 6:e=rx;break;case 7:e=tx;break;case 8:e=ex;break;case 9:e=nx;break;case 10:e=ux;break;case 11:e=ax;break;case 0:case 13:e=ix;break;case 3:case 14:e=cx;break;default:e=fx}return cwt(r,IT(e,t))}function vwt(r,t){switch(r){case 1:var e=yx;break;case 2:e=Ax;break;case 4:e=_x;break;case 5:e=Cx;break;case 6:e=wx;break;case 7:e=Sx;break;case 8:e=gx;break;case 9:e=Bx;break;case 10:e=Tx;break;case 11:e=Ix;break;case 0:case 13:e=Ox;break;case 3:case 14:e=Nx;break;default:e=xx}return cwt(r,function(r,t){var e=gT(r);e.signedconv&&function(r){return+r.isNeg()}(t)&&(e.sign=-1,t=jT(t));var n=D_,u=GT(e.base);do{var a=t.udivmod(u);t=a.quotient,n="0123456789abcdef".charAt(UT(a.modulus))+n}while(!MT(t));if(e.prec>=0){e.filler=ZD;var i=e.prec-n.length;i>0&&(n=_B(i,Dc)+n)}return BT(e,n)}(e,t))}function lwt(r,t,e){if(6<=r[2]){switch(r[1]){case 0:var n=45;break;case 1:n=43;break;default:n=32}var u=function(r,t,e){if(!isFinite(r))return isNaN(r)?RT(ps):RT(r>0?lt:"-infinity");var n=0==r&&1/r==-1/0?1:r>=0?0:1;n&&(r=-r);var u=0;if(0==r);else if(r<1)for(;r<1&&u>-1022;)r*=2,u--;else for(;r>=2;)r/=2,u++;var a=u<0?D_:U_,i=D_;if(n)i=kA;else switch(e){case 43:i=U_;break;case 32:i=ZD}if(t>=0&&t<13){var c=Math.pow(2,4*t);r=Math.round(r*c)/c}var f=r.toString(16);if(t>=0){var o=f.indexOf(pF);if(o<0)f+=pF+_B(t,Dc);else{var s=o+1+t;f.length=22250738585072014e-324?0:0!=r?1:2:isNaN(r)?4:3}(e),d=HT(E);if(3===F)return e<0?JN:WN;if(4<=F)return VN;for(var m=0;;){if(m===d)var h=0;else{var k=CI(E,m)+e_|0,y=0;if(23>>0?55===k&&(y=1):21<(k-1|0)>>>0&&(y=1),!y){m=m+1|0;continue}h=1}return h?E:G_t(E,KN)}}return E}function Dwt(r,t,e,n){for(var u=t,a=e,i=n;;){if("number"==typeof i)return OI(u,a);switch(i[0]){case 0:var c=i[1];return function(r){return Fwt(u,[5,a,r],c)};case 1:var f=i[1];return function(r){var t=0;if(40<=r)if(92===r)var e=fO;else t=vA<=r?1:2;else if(32<=r)if(39<=r)e=oO;else t=2;else if(14<=r)t=1;else switch(r){case 8:e=sO;break;case 9:e=vO;break;case 10:e=lO;break;case 13:e=DO;break;default:t=1}switch(t){case 1:var n=CT(4);xB(n,0,92),xB(n,1,48+(r/ku|0)|0),xB(n,2,48+((r/10|0)%10|0)|0),xB(n,3,48+(r%10|0)|0);e=n;break;case 2:var i=CT(1);xB(i,0,r);e=i}var c=HT(e),o=pCt(c+2|0,39);return AB(e,0,o,1,c),Fwt(u,[4,a,o],f)};case 2:var o=i[2],s=i[1];return mwt(u,a,o,s,(function(r){return r}));case 3:return mwt(u,a,i[2],i[1],iwt);case 4:return hwt(u,a,i[4],i[2],i[3],fwt,i[1]);case 5:return hwt(u,a,i[4],i[2],i[3],owt,i[1]);case 6:return hwt(u,a,i[4],i[2],i[3],swt,i[1]);case 7:return hwt(u,a,i[4],i[2],i[3],vwt,i[1]);case 8:var v=i[4],l=i[3],D=i[2],p=i[1];if("number"==typeof D){if("number"==typeof l)return 0===l?function(r){return Fwt(u,[4,a,lwt(p,XCt(p),r)],v)}:function(r,t){return Fwt(u,[4,a,lwt(p,r,t)],v)};var b=l[1];return function(r){return Fwt(u,[4,a,lwt(p,b,r)],v)}}if(0===D[0]){var E=D[2],F=D[1];if("number"==typeof l)return 0===l?function(r){return Fwt(u,[4,a,uwt(F,E,lwt(p,XCt(p),r))],v)}:function(r,t){return Fwt(u,[4,a,uwt(F,E,lwt(p,r,t))],v)};var d=l[1];return function(r){return Fwt(u,[4,a,uwt(F,E,lwt(p,d,r))],v)}}var m=D[1];if("number"==typeof l)return 0===l?function(r,t){return Fwt(u,[4,a,uwt(m,r,lwt(p,XCt(p),t))],v)}:function(r,t,e){return Fwt(u,[4,a,uwt(m,r,lwt(p,t,e))],v)};var h=l[1];return function(r,t){return Fwt(u,[4,a,uwt(m,r,lwt(p,h,t))],v)};case 9:return mwt(u,a,i[2],i[1],U_t);case 10:a=[7,a],i=i[1];continue;case 11:a=[2,a,i[1]],i=i[2];continue;case 12:a=[3,a,i[1]],i=i[2];continue;case 13:var k=i[3],y=i[2],A=HCt(16);JCt(A,y);var _=KCt(A);return function(r){return Fwt(u,[4,a,_],k)};case 14:var C=i[3],w=i[2];return function(r){var t=ewt(r[1],N_t(WCt(w)));if("number"==typeof t[2])return Fwt(u,a,L_t(t[1],C));throw QCt};case 15:var S=i[1];return function(r,t){return Fwt(u,[6,a,function(e){return NI(r,e,t)}],S)};case 16:var g=i[1];return function(r){return Fwt(u,[6,a,r],g)};case 17:a=[0,a,i[1]],i=i[2];continue;case 18:var B=i[1];if(0===B[0]){var T=i[2],I=B[1][1];u=function(r,t,e){return function(n){return Fwt(t,[1,r,[0,n]],e)}}(a,u,T),a=0,i=I;continue}var O=i[2],N=B[1][1];u=function(r,t,e){return function(n){return Fwt(t,[1,r,[1,n]],e)}}(a,u,O),a=0,i=N;continue;case 19:throw[0,$I,BN];case 20:var x=i[3],L=[8,a,TN];return function(r){return Fwt(u,L,x)};case 21:var P=i[2];return function(r){return Fwt(u,[4,a,IT(gN,r)],P)};case 22:var R=i[1];return function(r){return Fwt(u,[5,a,r],R)};case 23:var M=i[2],G=i[1];if("number"==typeof G)switch(G){case 0:case 1:return r<50?bwt(r+1|0,u,a,M):BI(bwt,[0,u,a,M]);case 2:throw[0,$I,IN];default:return r<50?bwt(r+1|0,u,a,M):BI(bwt,[0,u,a,M])}else switch(G[0]){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:return r<50?bwt(r+1|0,u,a,M):BI(bwt,[0,u,a,M]);case 9:var U=G[2];return r<50?pwt(r+1|0,u,a,U,M):BI(pwt,[0,u,a,U,M]);case 10:default:return r<50?bwt(r+1|0,u,a,M):BI(bwt,[0,u,a,M])}default:var j=i[3],X=i[1],H=OI(i[2],0);return r<50?Ewt(r+1|0,u,a,j,X,H):BI(Ewt,[0,u,a,j,X,H])}}}function pwt(r,t,e,n,u){if("number"==typeof n)return r<50?bwt(r+1|0,t,e,u):BI(bwt,[0,t,e,u]);switch(n[0]){case 0:var a=n[1];return function(r){return dwt(t,e,a,u)};case 1:var i=n[1];return function(r){return dwt(t,e,i,u)};case 2:var c=n[1];return function(r){return dwt(t,e,c,u)};case 3:var f=n[1];return function(r){return dwt(t,e,f,u)};case 4:var o=n[1];return function(r){return dwt(t,e,o,u)};case 5:var s=n[1];return function(r){return dwt(t,e,s,u)};case 6:var v=n[1];return function(r){return dwt(t,e,v,u)};case 7:var l=n[1];return function(r){return dwt(t,e,l,u)};case 8:var D=n[2];return function(r){return dwt(t,e,D,u)};case 9:var p=n[3],b=n[2],E=zCt(WCt(n[1]),b);return function(r){return dwt(t,e,x_t(E,p),u)};case 10:var F=n[1];return function(r,n){return dwt(t,e,F,u)};case 11:var d=n[1];return function(r){return dwt(t,e,d,u)};case 12:var m=n[1];return function(r){return dwt(t,e,m,u)};case 13:throw[0,$I,ON];default:throw[0,$I,NN]}}function bwt(r,t,e,n){var u=[8,e,xN];return r<50?Dwt(r+1|0,t,u,n):BI(Dwt,[0,t,u,n])}function Ewt(r,t,e,n,u,a){if(u){var i=u[1];return function(r){return function(r,t,e,n,u){return gI(Ewt(0,r,t,e,n,u))}(t,e,n,i,OI(a,r))}}var c=[4,e,a];return r<50?Dwt(r+1|0,t,c,n):BI(Dwt,[0,t,c,n])}function Fwt(r,t,e){return gI(Dwt(0,r,t,e))}function dwt(r,t,e,n){return gI(pwt(0,r,t,e,n))}function mwt(r,t,e,n,u){if("number"==typeof n)return function(n){return Fwt(r,[4,t,OI(u,n)],e)};if(0===n[0]){var a=n[2],i=n[1];return function(n){return Fwt(r,[4,t,uwt(i,a,OI(u,n))],e)}}var c=n[1];return function(n,a){return Fwt(r,[4,t,uwt(c,n,OI(u,a))],e)}}function hwt(r,t,e,n,u,a,i){if("number"==typeof n){if("number"==typeof u)return 0===u?function(n){return Fwt(r,[4,t,NI(a,i,n)],e)}:function(n,u){return Fwt(r,[4,t,awt(n,NI(a,i,u))],e)};var c=u[1];return function(n){return Fwt(r,[4,t,awt(c,NI(a,i,n))],e)}}if(0===n[0]){var f=n[2],o=n[1];if("number"==typeof u)return 0===u?function(n){return Fwt(r,[4,t,uwt(o,f,NI(a,i,n))],e)}:function(n,u){return Fwt(r,[4,t,uwt(o,f,awt(n,NI(a,i,u)))],e)};var s=u[1];return function(n){return Fwt(r,[4,t,uwt(o,f,awt(s,NI(a,i,n)))],e)}}var v=n[1];if("number"==typeof u)return 0===u?function(n,u){return Fwt(r,[4,t,uwt(v,n,NI(a,i,u))],e)}:function(n,u,c){return Fwt(r,[4,t,uwt(v,n,awt(u,NI(a,i,c)))],e)};var l=u[1];return function(n,u){return Fwt(r,[4,t,uwt(v,n,awt(l,NI(a,i,u)))],e)}}function kwt(r,t){for(var e=t;;){if("number"==typeof e)return 0;switch(e[0]){case 0:var n=e[2],u=e[1];if("number"==typeof n)switch(n){case 0:var a=Jx;break;case 1:a=Wx;break;case 2:a=qx;break;case 3:a=zx;break;case 4:a=Qx;break;case 5:a=Zx;break;default:a=rL}else switch(n[0]){case 0:a=n[1];break;case 1:a=n[1];break;default:a=G_t(tL,hCt(1,n[1]))}return kwt(r,u),jCt(r,a);case 1:var i=e[2],c=e[1];if(0===i[0]){var f=i[1];kwt(r,c),jCt(r,LN);e=f;continue}var o=i[1];kwt(r,c),jCt(r,PN);e=o;continue;case 6:var s=e[2];return kwt(r,e[1]),jCt(r,OI(s,0));case 7:e=e[1];continue;case 8:var v=e[2];return kwt(r,e[1]),R_t(v);case 2:case 4:var l=e[2];return kwt(r,e[1]),jCt(r,l);default:var D=e[2];return kwt(r,e[1]),UCt(r,D)}}}function ywt(r){if(_I(r,MN))return GN;var t=HT(r);function e(t){var e=RN[1],n=RCt(tn);return OI(Fwt((function(r){return kwt(n,r),P_t(MCt(n))}),0,e),r)}function n(e){for(var n=e;;){if(n===t)return n;var u=CI(r,n);if(9!==u&&32!==u)return n;n=n+1|0}}var u=n(0),a=function(e,n){for(var u=n;;){if(u===t)return u;if(25<(CI(r,u)+-97|0)>>>0)return u;u=u+1|0}}(0,u),i=kCt(r,u,a-u|0),c=n(a),f=function(e,n){for(var u=n;;){if(u===t)return u;var a=CI(r,u),i=0;if(48<=a?58<=a||(i=1):45===a&&(i=1),!i)return u;u=u+1|0}}(0,c);if(c===f)var o=0;else try{o=QT(kCt(r,c,f-c|0))}catch(r){if((r=II(r))[1]!==GI)throw r;o=e()}n(f)!==t&&e();var s=0;if(wI(i,UN)&&wI(i,jN))var v=wI(i,XN)?wI(i,HN)?wI(i,$N)?wI(i,YN)?e():1:2:3:0;else s=1;if(s)v=4;return[0,o,v]}function Awt(r){return Fwt((function(r){var t=RCt(64);return kwt(t,r),MCt(t)}),0,r[1])}var _wt=[0,0];function Cwt(r,t){var e=r[1+t];if(1-("number"==typeof e?1:0)){if(kI(e)===cF)return OI(Awt(bL),e);if(253===kI(e))for(var n=TT(uO,e),u=0,a=HT(n);;){if(a<=u)return G_t(n,aO);var i=CI(n,u),c=0;if(48<=i?58<=i||(c=1):45===i&&(c=1),!c)return n;u=u+1|0}return EL}return OI(Awt(pL),e)}function wwt(r,t){if(r.length-1<=t)return nL;var e=wwt(r,t+1|0),n=Cwt(r,t);return NI(Awt(uL),n,e)}function Swt(r){var t=function(t){for(var e=t;;){if(!e)return 0;var n=e[2],u=e[1];try{var a=0,i=OI(u,r);a=1}catch(r){}if(a&&i)return[0,i[1]];e=n}}(_wt[1]);if(t)return t[1];if(r===RI)return aL;if(r===HI)return iL;if(r[1]===XI){var e=r[2],n=e[3],u=e[2],a=e[1];return PI(Awt(KI),a,u,n,n+5|0,cL)}if(r[1]===$I){var i=r[2],c=i[3],f=i[2],o=i[1];return PI(Awt(KI),o,f,c,c+6|0,fL)}if(r[1]===YI){var s=r[2],v=s[3],l=s[2],D=s[1];return PI(Awt(KI),D,l,v,v+6|0,oL)}if(0===kI(r)){var p=r.length-1,b=r[1][1];if(2

>>0)var E=wwt(r,2),F=Cwt(r,1),d=NI(Awt(sL),F,E);else switch(p){case 0:d=vL;break;case 1:d=lL;break;default:var m=Cwt(r,1);d=OI(Awt(DL),m)}return G_t(b,d)}return r[1]}function gwt(r){return _wt[1]=[0,r,_wt[1]],0}var Bwt=[_c,RL,NT()];function Twt(r,t){return r[13]=r[13]+t[3]|0,PCt(t,r[28])}var Iwt=1000000010;function Owt(r,t){return xI(r[17],t,0,HT(t))}function Nwt(r){return OI(r[19],0)}function xwt(r,t,e){return r[9]=r[9]-t|0,Owt(r,e),r[11]=0,0}function Lwt(r,t){var e=wI(t,PL);return e?xwt(r,HT(t),t):e}function Pwt(r,t,e){var n=t[3],u=t[2];Lwt(r,t[1]),Nwt(r),r[11]=1;var a=(r[6]-e|0)+u|0,i=r[8],c=function(r,t){return+(AT(r,t,!1)<=0)}(i,a)?i:a;return r[10]=c,r[9]=r[6]-r[10]|0,OI(r[21],r[10]),Lwt(r,n)}function Rwt(r,t){return Pwt(r,LL,t)}function Mwt(r,t){var e=t[2],n=t[3];return Lwt(r,t[1]),r[9]=r[9]-e|0,OI(r[20],e),Lwt(r,n)}function Gwt(r){for(;;){var t=r[28][2],e=t?[0,t[1]]:0;if(e){var n=e[1],u=n[1],a=n[2],i=0<=u?1:0,c=n[3],f=r[13]-r[12]|0,o=i||(r[9]<=f?1:0);if(o){var s=r[28],v=s[2];if(v){var l=v[2];l?(s[1]=s[1]-1|0,s[2]=l):LCt(s);var D=0<=u?u:Iwt;if("number"==typeof a)switch(a){case 0:var p=NCt(r[3]);if(p){var b=p[1][1],E=function(r,t){if(t){var e=t[1],n=t[2];return nI(r,e)?[0,r,t]:[0,e,E(r,n)]}return[0,r,0]};b[1]=E(r[6]-r[9]|0,b[1])}break;case 1:OCt(r[2]);break;case 2:OCt(r[3]);break;case 3:var F=NCt(r[2]);F?Rwt(r,F[1][2]):Nwt(r);break;case 4:if(r[10]!==(r[6]-r[9]|0)){var d=r[28],m=d[2];if(m)var h=m[1],k=m[2],y=k?(d[1]=d[1]-1|0,d[2]=k,[0,h]):(LCt(d),[0,h]);else y=0;if(y){var A=y[1],_=A[1];r[12]=r[12]-A[3]|0,r[9]=r[9]+_|0}}break;default:var C=OCt(r[5]);C&&Owt(r,OI(r[25],C[1]))}else switch(a[0]){case 0:xwt(r,D,a[1]);break;case 1:var w=a[2],S=a[1],g=w[1],B=w[2],T=NCt(r[2]);if(T){var I=T[1],O=I[2];switch(I[1]){case 0:Mwt(r,S);break;case 1:case 2:Pwt(r,w,O);break;case 3:r[9]<(D+HT(g)|0)?Pwt(r,w,O):Mwt(r,S);break;case 4:r[11]||!(r[9]<(D+HT(g)|0)||((r[6]-O|0)+B|0)>>0)&&Rwt(r,q)}else Nwt(r)}var Q=r[9]-K|0;ICt([0,1===V?1:r[9]>>6|0)?1:0;if(p)var b=p;else b=(2!=(l>>>6|0)?1:0)||(2!=(D>>>6|0)?1:0);if(b)throw XSt;var E=(7&f)<<18|(63&s)<<12|(63&l)<<6|63&D}else if(so<=f){var F=CI(r,a+1|0),d=CI(r,a+2|0);if((2!=(F>>>6|0)?1:0)||(2!=(d>>>6|0)?1:0))throw XSt;var m=(15&f)<<12|(63&F)<<6|63&d,h=55296<=m?1:0;if(h?m<=57088?1:0:h)throw XSt;E=m}else{var k=CI(r,a+1|0);if(2!=(k>>>6|0))throw XSt;E=(31&f)<<6|63&k}else if(B<=f)o=1;else E=f;if(o)throw XSt;GB(u,i)[1+i]=E;var y=CI(r,a);a=a+GB(rgt,y)[1+y]|0,i=i+1|0,c=c-1|0}throw XSt}var A=CI(r,n),_=GB(rgt,A)[1+A];if(!(0<_))throw XSt;e=e+1|0,n=n+_|0}},sgt=function(r,t,e){for(var n=r[8]+t|0,u=r[2],a=RCt(4*e|0),i=n,c=e;;){if(!(0>>18|0)),UCt(a,V_t(B|63&(f>>>12|0))),UCt(a,V_t(B|63&(f>>>6|0))),UCt(a,V_t(B|63&f))}else{var o=55296<=f?1:0;if(o?f<57344?1:0:o)throw XSt;UCt(a,V_t(so|f>>>12|0)),UCt(a,V_t(B|63&(f>>>6|0))),UCt(a,V_t(B|63&f))}else UCt(a,V_t(v|f>>>6|0)),UCt(a,V_t(B|63&f));else UCt(a,V_t(f));i=i+1|0,c=c-1|0}},vgt=function(r){return sgt(r,0,r[5]-r[8]|0)},lgt=function(r,t){function e(t){return UCt(r,t)}return 65536<=t?(e(mA|t>>>18|0),e(B|63&(t>>>12|0)),e(B|63&(t>>>6|0)),e(B|63&t)):2048<=t?(e(so|t>>>12|0),e(B|63&(t>>>6|0)),e(B|63&t)):B<=t?(e(v|t>>>6|0),e(B|63&t)):e(t)},Dgt=r,pgt=null,bgt=void 0,Egt=function(r){return r!==bgt?1:0},Fgt=Dgt.Array,dgt=[_c,JL,NT()],mgt=Dgt.Error;FSt(WL,[0,dgt,{}]);var hgt=function(r){throw r};gwt((function(r){return r[1]===dgt?[0,RT(r[2].toString())]:0})),gwt((function(r){return r instanceof Fgt?0:[0,RT(r.toString())]}));var kgt=NI(jSt,aYr,uYr),ygt=NI(jSt,cYr,iYr),Agt=NI(jSt,oYr,fYr),_gt=NI(jSt,vYr,sYr),Cgt=NI(jSt,DYr,lYr),wgt=NI(jSt,bYr,pYr),Sgt=NI(jSt,FYr,EYr),ggt=NI(jSt,mYr,dYr),Bgt=NI(jSt,kYr,hYr),Tgt=NI(jSt,AYr,yYr),Igt=NI(jSt,CYr,_Yr),Ogt=NI(jSt,SYr,wYr),Ngt=NI(jSt,BYr,gYr),xgt=NI(jSt,IYr,TYr),Lgt=NI(jSt,NYr,OYr),Pgt=NI(jSt,LYr,xYr),Rgt=NI(jSt,RYr,PYr),Mgt=NI(jSt,GYr,MYr),Ggt=function r(t,e,n,u){return r.fun(t,e,n,u)},Ugt=function r(t,e,n){return r.fun(t,e,n)},jgt=NI(jSt,jYr,UYr);mB(Ggt,(function(r,t,e,n){OI(bSt(e),j$r),NI(bSt(e),H$r,X$r);var u=n[1];OI(bSt(e),$$r);fCt((function(t,n){return t&&OI(bSt(e),U$r),xI(Pgt[1],(function(t){return OI(r,t)}),e,n),1}),0,u),OI(bSt(e),Y$r),OI(bSt(e),V$r),OI(bSt(e),K$r),NI(bSt(e),W$r,J$r);var a=n[2];OI(bSt(e),q$r);return fCt((function(t,n){return t&&OI(bSt(e),G$r),xI(Pgt[1],(function(t){return OI(r,t)}),e,n),1}),0,a),OI(bSt(e),z$r),OI(bSt(e),Q$r),OI(bSt(e),Z$r),NI(bSt(e),tYr,rYr),NI(t,e,n[3]),OI(bSt(e),eYr),OI(bSt(e),nYr)})),mB(Ugt,(function(r,t,e){var n=NI(Ggt,r,t);return NI(ESt(M$r),n,e)})),xI(USt,XYr,kgt,[0,Ggt,Ugt]);var Xgt=function r(t,e,n,u){return r.fun(t,e,n,u)},Hgt=function r(t,e,n){return r.fun(t,e,n)},$gt=function r(t,e,n){return r.fun(t,e,n)},Ygt=function r(t,e){return r.fun(t,e)};mB(Xgt,(function(r,t,e,n){OI(bSt(e),L$r),NI(t,e,n[1]),OI(bSt(e),P$r);var u=n[2];return xI($gt,(function(t){return OI(r,t)}),e,u),OI(bSt(e),R$r)})),mB(Hgt,(function(r,t,e){var n=NI(Xgt,r,t);return NI(ESt(x$r),n,e)})),mB($gt,(function(r,t,e){OI(bSt(t),k$r),NI(bSt(t),A$r,y$r);var n=e[1];NI(bSt(t),_$r,n),OI(bSt(t),C$r),OI(bSt(t),w$r),NI(bSt(t),g$r,S$r);var u=e[2];if(u){zwt(t,B$r);var a=u[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,h$r)}),t,a),zwt(t,T$r)}else zwt(t,I$r);return OI(bSt(t),O$r),OI(bSt(t),N$r)})),mB(Ygt,(function(r,t){var e=OI($gt,r);return NI(ESt(m$r),e,t)})),xI(USt,HYr,ygt,[0,Xgt,Hgt,$gt,Ygt]);var Vgt=function r(t,e,n){return r.fun(t,e,n)},Kgt=function r(t,e){return r.fun(t,e)},Jgt=function r(t,e,n){return r.fun(t,e,n)},Wgt=function r(t,e){return r.fun(t,e)};mB(Vgt,(function(r,t,e){OI(bSt(t),E$r),NI(r,t,e[1]),OI(bSt(t),F$r);var n=e[2];return xI(Jgt,(function(t){return OI(r,t)}),t,n),OI(bSt(t),d$r)})),mB(Kgt,(function(r,t){var e=OI(Vgt,r);return NI(ESt(b$r),e,t)})),mB(Jgt,(function(r,t,e){OI(bSt(t),n$r),NI(bSt(t),a$r,u$r);var n=e[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,n),OI(bSt(t),i$r),OI(bSt(t),c$r),NI(bSt(t),o$r,f$r);var u=e[2];if(u){zwt(t,s$r);var a=u[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,e$r)}),t,a),zwt(t,v$r)}else zwt(t,l$r);return OI(bSt(t),D$r),OI(bSt(t),p$r)})),mB(Wgt,(function(r,t){var e=OI(Jgt,r);return NI(ESt(t$r),e,t)})),xI(USt,$Yr,Agt,[0,Vgt,Kgt,Jgt,Wgt]);var qgt=function(r,t){OI(bSt(r),HHr),NI(bSt(r),YHr,$Hr);var e=t[1];NI(bSt(r),VHr,e),OI(bSt(r),KHr),OI(bSt(r),JHr),NI(bSt(r),qHr,WHr);var n=t[2];return NI(bSt(r),zHr,n),OI(bSt(r),QHr),OI(bSt(r),ZHr)},zgt=[0,qgt,function(r){return NI(ESt(r$r),qgt,r)}],Qgt=function r(t,e,n){return r.fun(t,e,n)},Zgt=function r(t,e){return r.fun(t,e)},rBt=function r(t,e){return r.fun(t,e)},tBt=function r(t){return r.fun(t)};mB(Qgt,(function(r,t,e){OI(bSt(t),wHr),NI(bSt(t),gHr,SHr),NI(rBt,t,e[1]),OI(bSt(t),BHr),OI(bSt(t),THr),NI(bSt(t),OHr,IHr);var n=e[2];NI(bSt(t),NHr,n),OI(bSt(t),xHr),OI(bSt(t),LHr),NI(bSt(t),RHr,PHr);var u=e[3];if(u){zwt(t,MHr);var a=u[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,CHr)}),t,a),zwt(t,GHr)}else zwt(t,UHr);return OI(bSt(t),jHr),OI(bSt(t),XHr)})),mB(Zgt,(function(r,t){var e=OI(Qgt,r);return NI(ESt(_Hr),e,t)})),mB(rBt,(function(r,t){if("number"==typeof t)return zwt(r,oHr);switch(t[0]){case 0:OI(bSt(r),sHr);var e=t[1];return NI(bSt(r),vHr,e),OI(bSt(r),lHr);case 1:OI(bSt(r),DHr);var n=t[1];return NI(bSt(r),pHr,n),OI(bSt(r),bHr);case 2:OI(bSt(r),EHr);var u=t[1];return NI(bSt(r),FHr,u),OI(bSt(r),dHr);case 3:OI(bSt(r),mHr);var a=t[1];return NI(bSt(r),hHr,a),OI(bSt(r),kHr);default:return OI(bSt(r),yHr),NI(zgt[1],r,t[1]),OI(bSt(r),AHr)}})),mB(tBt,(function(r){return NI(ESt(fHr),rBt,r)})),xI(USt,YYr,_gt,[0,zgt,Qgt,Zgt,rBt,tBt]);var eBt=function r(t,e,n){return r.fun(t,e,n)},nBt=function r(t,e){return r.fun(t,e)};mB(eBt,(function(r,t,e){OI(bSt(t),$Xr),NI(bSt(t),VXr,YXr);var n=e[1];NI(bSt(t),KXr,n),OI(bSt(t),JXr),OI(bSt(t),WXr),NI(bSt(t),zXr,qXr);var u=e[2];NI(bSt(t),QXr,u),OI(bSt(t),ZXr),OI(bSt(t),rHr),NI(bSt(t),eHr,tHr);var a=e[3];if(a){zwt(t,nHr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,HXr)}),t,i),zwt(t,uHr)}else zwt(t,aHr);return OI(bSt(t),iHr),OI(bSt(t),cHr)})),mB(nBt,(function(r,t){var e=OI(eBt,r);return NI(ESt(XXr),e,t)})),xI(USt,VYr,Cgt,[0,eBt,nBt]);var uBt=function r(t,e,n){return r.fun(t,e,n)},aBt=function r(t,e){return r.fun(t,e)};mB(uBt,(function(r,t,e){OI(bSt(t),_Xr),NI(bSt(t),wXr,CXr);var n=e[1];NI(bSt(t),SXr,n),OI(bSt(t),gXr),OI(bSt(t),BXr),NI(bSt(t),IXr,TXr);var u=e[2];NI(bSt(t),OXr,u),OI(bSt(t),NXr),OI(bSt(t),xXr),NI(bSt(t),PXr,LXr);var a=e[3];if(a){zwt(t,RXr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,AXr)}),t,i),zwt(t,MXr)}else zwt(t,GXr);return OI(bSt(t),UXr),OI(bSt(t),jXr)})),mB(aBt,(function(r,t){var e=OI(uBt,r);return NI(ESt(yXr),e,t)})),xI(USt,KYr,wgt,[0,uBt,aBt]);var iBt=function r(t,e,n){return r.fun(t,e,n)},cBt=function r(t,e){return r.fun(t,e)};mB(iBt,(function(r,t,e){OI(bSt(t),uXr),NI(bSt(t),iXr,aXr);var n=e[1];NI(bSt(t),cXr,n),OI(bSt(t),fXr),OI(bSt(t),oXr),NI(bSt(t),vXr,sXr);var u=e[2];NI(bSt(t),lXr,u),OI(bSt(t),DXr),OI(bSt(t),pXr),NI(bSt(t),EXr,bXr);var a=e[3];if(a){zwt(t,FXr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,nXr)}),t,i),zwt(t,dXr)}else zwt(t,mXr);return OI(bSt(t),hXr),OI(bSt(t),kXr)})),mB(cBt,(function(r,t){var e=OI(iBt,r);return NI(ESt(eXr),e,t)})),xI(USt,JYr,Sgt,[0,iBt,cBt]);var fBt=function r(t,e,n){return r.fun(t,e,n)},oBt=function r(t,e){return r.fun(t,e)};mB(fBt,(function(r,t,e){OI(bSt(t),Hjr),NI(bSt(t),Yjr,$jr);var n=e[1];NI(bSt(t),Vjr,n),OI(bSt(t),Kjr),OI(bSt(t),Jjr),NI(bSt(t),qjr,Wjr);var u=e[2];if(u){zwt(t,zjr);var a=u[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Xjr)}),t,a),zwt(t,Qjr)}else zwt(t,Zjr);return OI(bSt(t),rXr),OI(bSt(t),tXr)})),mB(oBt,(function(r,t){var e=OI(fBt,r);return NI(ESt(jjr),e,t)})),xI(USt,WYr,ggt,[0,fBt,oBt]);var sBt=function r(t,e,n){return r.fun(t,e,n)},vBt=function r(t,e){return r.fun(t,e)},lBt=function r(t,e){return r.fun(t,e)},DBt=function r(t){return r.fun(t)},pBt=function r(t,e,n){return r.fun(t,e,n)},bBt=function r(t,e){return r.fun(t,e)};mB(sBt,(function(r,t,e){OI(bSt(t),Mjr),NI(r,t,e[1]),OI(bSt(t),Gjr);var n=e[2];return xI(pBt,(function(t){return OI(r,t)}),t,n),OI(bSt(t),Ujr)})),mB(vBt,(function(r,t){var e=OI(sBt,r);return NI(ESt(Rjr),e,t)})),mB(lBt,(function(r,t){return zwt(r,0===t?Pjr:Ljr)})),mB(DBt,(function(r){return NI(ESt(xjr),lBt,r)})),mB(pBt,(function(r,t,e){OI(bSt(t),yjr),NI(bSt(t),_jr,Ajr),NI(lBt,t,e[1]),OI(bSt(t),Cjr),OI(bSt(t),wjr),NI(bSt(t),gjr,Sjr);var n=e[2];if(n){zwt(t,Bjr);var u=n[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,kjr)}),t,u),zwt(t,Tjr)}else zwt(t,Ijr);return OI(bSt(t),Ojr),OI(bSt(t),Njr)})),mB(bBt,(function(r,t){var e=OI(pBt,r);return NI(ESt(hjr),e,t)})),xI(USt,qYr,Bgt,[0,sBt,vBt,lBt,DBt,pBt,bBt]);var EBt=function r(t,e,n,u){return r.fun(t,e,n,u)},FBt=function r(t,e,n){return r.fun(t,e,n)},dBt=function r(t,e,n,u){return r.fun(t,e,n,u)},mBt=function r(t,e,n){return r.fun(t,e,n)};mB(EBt,(function(r,t,e,n){OI(bSt(e),Fjr),NI(r,e,n[1]),OI(bSt(e),djr);var u=n[2];return LI(Tgt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),mjr)})),mB(FBt,(function(r,t,e){var n=NI(EBt,r,t);return NI(ESt(Ejr),n,e)})),mB(dBt,(function(r,t,e,n){OI(bSt(e),ujr),NI(bSt(e),ijr,ajr);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),cjr),OI(bSt(e),fjr),NI(bSt(e),sjr,ojr);var a=n[2];if(a){zwt(e,vjr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,njr)}),e,i),zwt(e,ljr)}else zwt(e,Djr);return OI(bSt(e),pjr),OI(bSt(e),bjr)})),mB(mBt,(function(r,t,e){var n=NI(dBt,r,t);return NI(ESt(ejr),n,e)})),xI(USt,zYr,Tgt,[0,EBt,FBt,dBt,mBt]);var hBt=function r(t,e,n,u){return r.fun(t,e,n,u)},kBt=function r(t,e,n){return r.fun(t,e,n)},yBt=function r(t,e,n,u){return r.fun(t,e,n,u)},ABt=function r(t,e,n){return r.fun(t,e,n)};mB(hBt,(function(r,t,e,n){OI(bSt(e),ZUr),NI(r,e,n[1]),OI(bSt(e),rjr);var u=n[2];return LI(yBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),tjr)})),mB(kBt,(function(r,t,e){var n=NI(hBt,r,t);return NI(ESt(QUr),n,e)})),mB(yBt,(function(r,t,e,n){OI(bSt(e),LUr),NI(bSt(e),RUr,PUr);var u=n[1];if(u){zwt(e,MUr);var a=u[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,GUr)}else zwt(e,UUr);OI(bSt(e),jUr),OI(bSt(e),XUr),NI(bSt(e),$Ur,HUr);var i=n[2];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),YUr),OI(bSt(e),VUr),NI(bSt(e),JUr,KUr);var c=n[3];return NI(bSt(e),WUr,c),OI(bSt(e),qUr),OI(bSt(e),zUr)})),mB(ABt,(function(r,t,e){var n=NI(yBt,r,t);return NI(ESt(xUr),n,e)}));var _Bt=[0,hBt,kBt,yBt,ABt],CBt=function r(t,e,n,u){return r.fun(t,e,n,u)},wBt=function r(t,e,n){return r.fun(t,e,n)},SBt=function r(t,e,n,u){return r.fun(t,e,n,u)},gBt=function r(t,e,n){return r.fun(t,e,n)};mB(CBt,(function(r,t,e,n){OI(bSt(e),IUr),NI(r,e,n[1]),OI(bSt(e),OUr);var u=n[2];return LI(SBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),NUr)})),mB(wBt,(function(r,t,e){var n=NI(CBt,r,t);return NI(ESt(TUr),n,e)})),mB(SBt,(function(r,t,e,n){OI(bSt(e),dUr),NI(bSt(e),hUr,mUr);var u=n[1];LI(_Bt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),kUr),OI(bSt(e),yUr),NI(bSt(e),_Ur,AUr);var a=n[2];if(a){zwt(e,CUr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,FUr)}),e,i),zwt(e,wUr)}else zwt(e,SUr);return OI(bSt(e),gUr),OI(bSt(e),BUr)})),mB(gBt,(function(r,t,e){var n=NI(SBt,r,t);return NI(ESt(EUr),n,e)}));var BBt=[0,CBt,wBt,SBt,gBt],TBt=function r(t,e,n,u){return r.fun(t,e,n,u)},IBt=function r(t,e,n){return r.fun(t,e,n)},OBt=function r(t,e,n,u){return r.fun(t,e,n,u)},NBt=function r(t,e,n){return r.fun(t,e,n)};mB(TBt,(function(r,t,e,n){OI(bSt(e),DUr),NI(r,e,n[1]),OI(bSt(e),pUr);var u=n[2];return LI(OBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),bUr)})),mB(IBt,(function(r,t,e){var n=NI(TBt,r,t);return NI(ESt(lUr),n,e)})),mB(OBt,(function(r,t,e,n){OI(bSt(e),rUr),NI(bSt(e),eUr,tUr);var u=n[1];LI(Igt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),nUr),OI(bSt(e),uUr),NI(bSt(e),iUr,aUr);var a=n[2];if(a){zwt(e,cUr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,ZGr)}),e,i),zwt(e,fUr)}else zwt(e,oUr);return OI(bSt(e),sUr),OI(bSt(e),vUr)})),mB(NBt,(function(r,t,e){var n=NI(OBt,r,t);return NI(ESt(QGr),n,e)}));var xBt=[0,TBt,IBt,OBt,NBt],LBt=function r(t,e,n,u){return r.fun(t,e,n,u)},PBt=function r(t,e,n){return r.fun(t,e,n)},RBt=function r(t,e,n,u){return r.fun(t,e,n,u)},MBt=function r(t,e,n){return r.fun(t,e,n)};mB(LBt,(function(r,t,e,n){OI(bSt(e),WGr),NI(r,e,n[1]),OI(bSt(e),qGr);var u=n[2];return LI(RBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),zGr)})),mB(PBt,(function(r,t,e){var n=NI(LBt,r,t);return NI(ESt(JGr),n,e)})),mB(RBt,(function(r,t,e,n){OI(bSt(e),hGr),NI(bSt(e),yGr,kGr);var u=n[1];if(u){zwt(e,AGr);var a=u[1];LI(xBt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,_Gr)}else zwt(e,CGr);OI(bSt(e),wGr),OI(bSt(e),SGr),NI(bSt(e),BGr,gGr);var i=n[2];OI(bSt(e),TGr);fCt((function(n,u){return n&&OI(bSt(e),mGr),LI(_Bt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,i),OI(bSt(e),IGr),OI(bSt(e),OGr),OI(bSt(e),NGr),NI(bSt(e),LGr,xGr);var c=n[3];if(c){zwt(e,PGr);var f=c[1];LI(BBt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),zwt(e,RGr)}else zwt(e,MGr);OI(bSt(e),GGr),OI(bSt(e),UGr),NI(bSt(e),XGr,jGr);var o=n[4];if(o){zwt(e,HGr);var s=o[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),FGr);return fCt((function(e,n){return e&&OI(bSt(t),EGr),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),dGr)}),e,s),zwt(e,$Gr)}else zwt(e,YGr);return OI(bSt(e),VGr),OI(bSt(e),KGr)})),mB(MBt,(function(r,t,e){var n=NI(RBt,r,t);return NI(ESt(bGr),n,e)}));var GBt=[0,LBt,PBt,RBt,MBt],UBt=function r(t,e,n,u){return r.fun(t,e,n,u)},jBt=function r(t,e,n){return r.fun(t,e,n)};mB(UBt,(function(r,t,e,n){OI(bSt(e),VMr),NI(bSt(e),JMr,KMr);var u=n[1];if(u){zwt(e,WMr);var a=u[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,qMr)}else zwt(e,zMr);OI(bSt(e),QMr),OI(bSt(e),ZMr),NI(bSt(e),tGr,rGr);var i=n[2];LI(GBt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),eGr),OI(bSt(e),nGr),NI(bSt(e),aGr,uGr);var c=n[3];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),iGr),OI(bSt(e),cGr),NI(bSt(e),oGr,fGr);var f=n[4];if(f){zwt(e,sGr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,YMr)}),e,o),zwt(e,vGr)}else zwt(e,lGr);return OI(bSt(e),DGr),OI(bSt(e),pGr)})),mB(jBt,(function(r,t,e){var n=NI(UBt,r,t);return NI(ESt($Mr),n,e)}));var XBt=[0,_Bt,BBt,xBt,GBt,UBt,jBt],HBt=function r(t,e,n,u){return r.fun(t,e,n,u)},$Bt=function r(t,e,n){return r.fun(t,e,n)},YBt=function r(t,e,n,u){return r.fun(t,e,n,u)},VBt=function r(t,e,n){return r.fun(t,e,n)},KBt=function r(t,e,n,u){return r.fun(t,e,n,u)},JBt=function r(t,e,n){return r.fun(t,e,n)};mB(HBt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),UMr);var u=n[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),jMr)}OI(bSt(e),XMr);var a=n[1];return LI(YBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),HMr)})),mB($Bt,(function(r,t,e){var n=NI(HBt,r,t);return NI(ESt(GMr),n,e)})),mB(YBt,(function(r,t,e,n){OI(bSt(e),PMr),NI(r,e,n[1]),OI(bSt(e),RMr);var u=n[2];return LI(KBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),MMr)})),mB(VBt,(function(r,t,e){var n=NI(YBt,r,t);return NI(ESt(LMr),n,e)})),mB(KBt,(function(r,t,e,n){OI(bSt(e),wMr),NI(bSt(e),gMr,SMr);var u=n[1];LI(HBt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),BMr),OI(bSt(e),TMr),NI(bSt(e),OMr,IMr);var a=n[2];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),NMr),OI(bSt(e),xMr)})),mB(JBt,(function(r,t,e){var n=NI(KBt,r,t);return NI(ESt(CMr),n,e)}));var WBt=[0,HBt,$Bt,YBt,VBt,KBt,JBt],qBt=function r(t,e,n,u){return r.fun(t,e,n,u)},zBt=function r(t,e,n){return r.fun(t,e,n)};mB(qBt,(function(r,t,e,n){OI(bSt(e),iMr),NI(bSt(e),fMr,cMr);var u=n[1];LI(WBt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),oMr),OI(bSt(e),sMr),NI(bSt(e),lMr,vMr);var a=n[2];if(a){zwt(e,DMr);var i=a[1];LI(Igt[23][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,pMr)}else zwt(e,bMr);OI(bSt(e),EMr),OI(bSt(e),FMr),NI(bSt(e),mMr,dMr);var c=n[3];if(c){zwt(e,hMr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,aMr)}),e,f),zwt(e,kMr)}else zwt(e,yMr);return OI(bSt(e),AMr),OI(bSt(e),_Mr)})),mB(zBt,(function(r,t,e){var n=NI(qBt,r,t);return NI(ESt(uMr),n,e)}));var QBt=[0,WBt,qBt,zBt],ZBt=function r(t,e,n,u){return r.fun(t,e,n,u)},rTt=function r(t,e,n){return r.fun(t,e,n)};mB(ZBt,(function(r,t,e,n){OI(bSt(e),XRr),NI(bSt(e),$Rr,HRr);var u=n[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),YRr),OI(bSt(e),VRr),NI(bSt(e),JRr,KRr);var a=n[2];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),WRr),OI(bSt(e),qRr),NI(bSt(e),QRr,zRr);var i=n[3];if(i){zwt(e,ZRr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,jRr)}),e,c),zwt(e,rMr)}else zwt(e,tMr);return OI(bSt(e),eMr),OI(bSt(e),nMr)})),mB(rTt,(function(r,t,e){var n=NI(ZBt,r,t);return NI(ESt(URr),n,e)}));var tTt=[0,ZBt,rTt],eTt=function r(t,e,n,u){return r.fun(t,e,n,u)},nTt=function r(t,e,n){return r.fun(t,e,n)};mB(eTt,(function(r,t,e,n){OI(bSt(e),TRr),NI(bSt(e),ORr,IRr);var u=n[1];LI(tTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),NRr),OI(bSt(e),xRr),NI(bSt(e),PRr,LRr);var a=n[2];return NI(bSt(e),RRr,a),OI(bSt(e),MRr),OI(bSt(e),GRr)})),mB(nTt,(function(r,t,e){var n=NI(eTt,r,t);return NI(ESt(BRr),n,e)}));var uTt=[0,eTt,nTt],aTt=function r(t,e,n,u){return r.fun(t,e,n,u)},iTt=function r(t,e,n){return r.fun(t,e,n)},cTt=function r(t,e,n,u){return r.fun(t,e,n,u)},fTt=function r(t,e,n){return r.fun(t,e,n)},oTt=function r(t,e,n,u){return r.fun(t,e,n,u)},sTt=function r(t,e,n){return r.fun(t,e,n)};mB(aTt,(function(r,t,e,n){OI(bSt(e),wRr),NI(r,e,n[1]),OI(bSt(e),SRr);var u=n[2];return LI(cTt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),gRr)})),mB(iTt,(function(r,t,e){var n=NI(aTt,r,t);return NI(ESt(CRr),n,e)})),mB(cTt,(function(r,t,e,n){OI(bSt(e),PPr),NI(bSt(e),MPr,RPr);var u=n[1];LI(Ngt[7][1][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),GPr),OI(bSt(e),UPr),NI(bSt(e),XPr,jPr);var a=n[2];LI(oTt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),HPr),OI(bSt(e),$Pr),NI(bSt(e),VPr,YPr);var i=n[3];NI(bSt(e),KPr,i),OI(bSt(e),JPr),OI(bSt(e),WPr),NI(bSt(e),zPr,qPr);var c=n[4];NI(bSt(e),QPr,c),OI(bSt(e),ZPr),OI(bSt(e),rRr),NI(bSt(e),eRr,tRr);var f=n[5];NI(bSt(e),nRr,f),OI(bSt(e),uRr),OI(bSt(e),aRr),NI(bSt(e),cRr,iRr);var o=n[6];NI(bSt(e),fRr,o),OI(bSt(e),oRr),OI(bSt(e),sRr),NI(bSt(e),lRr,vRr);var s=n[7];if(s){zwt(e,DRr);var v=s[1];xI(Bgt[1],(function(t){return OI(r,t)}),e,v),zwt(e,pRr)}else zwt(e,bRr);OI(bSt(e),ERr),OI(bSt(e),FRr),NI(bSt(e),mRr,dRr);var l=n[8];if(l){zwt(e,hRr);var D=l[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,LPr)}),e,D),zwt(e,kRr)}else zwt(e,yRr);return OI(bSt(e),ARr),OI(bSt(e),_Rr)})),mB(fTt,(function(r,t,e){var n=NI(cTt,r,t);return NI(ESt(xPr),n,e)})),mB(oTt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),yPr);var u=n[1];return LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),APr);case 1:var a=n[1];OI(bSt(e),_Pr),OI(bSt(e),CPr),NI(r,e,a[1]),OI(bSt(e),wPr);var i=a[2];return LI(XBt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),SPr),OI(bSt(e),gPr);default:var c=n[1];OI(bSt(e),BPr),OI(bSt(e),TPr),NI(r,e,c[1]),OI(bSt(e),IPr);var f=c[2];return LI(XBt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),OI(bSt(e),OPr),OI(bSt(e),NPr)}})),mB(sTt,(function(r,t,e){var n=NI(oTt,r,t);return NI(ESt(kPr),n,e)}));var vTt=[0,aTt,iTt,cTt,fTt,oTt,sTt],lTt=function r(t,e,n,u){return r.fun(t,e,n,u)},DTt=function r(t,e,n){return r.fun(t,e,n)},pTt=function r(t,e,n,u){return r.fun(t,e,n,u)},bTt=function r(t,e,n){return r.fun(t,e,n)};mB(lTt,(function(r,t,e,n){OI(bSt(e),dPr),NI(r,e,n[1]),OI(bSt(e),mPr);var u=n[2];return LI(pTt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),hPr)})),mB(DTt,(function(r,t,e){var n=NI(lTt,r,t);return NI(ESt(FPr),n,e)})),mB(pTt,(function(r,t,e,n){OI(bSt(e),aPr),NI(bSt(e),cPr,iPr);var u=n[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),fPr),OI(bSt(e),oPr),NI(bSt(e),vPr,sPr);var a=n[2];if(a){zwt(e,lPr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,uPr)}),e,i),zwt(e,DPr)}else zwt(e,pPr);return OI(bSt(e),bPr),OI(bSt(e),EPr)})),mB(bTt,(function(r,t,e){var n=NI(pTt,r,t);return NI(ESt(nPr),n,e)}));var ETt=[0,lTt,DTt,pTt,bTt],FTt=function r(t,e,n,u){return r.fun(t,e,n,u)},dTt=function r(t,e,n){return r.fun(t,e,n)},mTt=function r(t,e,n,u){return r.fun(t,e,n,u)},hTt=function r(t,e,n){return r.fun(t,e,n)};mB(FTt,(function(r,t,e,n){OI(bSt(e),yLr),NI(bSt(e),_Lr,ALr);var u=n[1];if(u){zwt(e,CLr);var a=u[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),e,a),zwt(e,wLr)}else zwt(e,SLr);OI(bSt(e),gLr),OI(bSt(e),BLr),NI(bSt(e),ILr,TLr);var i=n[2];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),OLr),OI(bSt(e),NLr),NI(bSt(e),LLr,xLr);var c=n[3];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),PLr),OI(bSt(e),RLr),NI(bSt(e),GLr,MLr);var f=n[4];NI(bSt(e),ULr,f),OI(bSt(e),jLr),OI(bSt(e),XLr),NI(bSt(e),$Lr,HLr);var o=n[5];if(o){zwt(e,YLr);var s=o[1];xI(Bgt[1],(function(t){return OI(r,t)}),e,s),zwt(e,VLr)}else zwt(e,KLr);OI(bSt(e),JLr),OI(bSt(e),WLr),NI(bSt(e),zLr,qLr);var v=n[6];if(v){zwt(e,QLr);var l=v[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,kLr)}),e,l),zwt(e,ZLr)}else zwt(e,rPr);return OI(bSt(e),tPr),OI(bSt(e),ePr)})),mB(dTt,(function(r,t,e){var n=NI(FTt,r,t);return NI(ESt(hLr),n,e)})),mB(mTt,(function(r,t,e,n){OI(bSt(e),FLr),NI(r,e,n[1]),OI(bSt(e),dLr);var u=n[2];return LI(FTt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),mLr)})),mB(hTt,(function(r,t,e){var n=NI(mTt,r,t);return NI(ESt(ELr),n,e)}));var kTt=[0,FTt,dTt,mTt,hTt],yTt=function r(t,e,n,u){return r.fun(t,e,n,u)},ATt=function r(t,e,n){return r.fun(t,e,n)},_Tt=function r(t,e,n,u){return r.fun(t,e,n,u)},CTt=function r(t,e,n){return r.fun(t,e,n)};mB(yTt,(function(r,t,e,n){OI(bSt(e),DLr),NI(r,e,n[1]),OI(bSt(e),pLr);var u=n[2];return LI(_Tt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),bLr)})),mB(ATt,(function(r,t,e){var n=NI(yTt,r,t);return NI(ESt(lLr),n,e)})),mB(_Tt,(function(r,t,e,n){OI(bSt(e),Vxr),NI(bSt(e),Jxr,Kxr);var u=n[1];OI(bSt(e),Wxr),NI(r,e,u[1]),OI(bSt(e),qxr);var a=u[2];LI(XBt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),zxr),OI(bSt(e),Qxr),OI(bSt(e),Zxr),NI(bSt(e),tLr,rLr);var i=n[2];NI(bSt(e),eLr,i),OI(bSt(e),nLr),OI(bSt(e),uLr),NI(bSt(e),iLr,aLr);var c=n[3];if(c){zwt(e,cLr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Yxr)}),e,f),zwt(e,fLr)}else zwt(e,oLr);return OI(bSt(e),sLr),OI(bSt(e),vLr)})),mB(CTt,(function(r,t,e){var n=NI(_Tt,r,t);return NI(ESt($xr),n,e)}));var wTt=[0,yTt,ATt,_Tt,CTt],STt=function r(t,e,n,u){return r.fun(t,e,n,u)},gTt=function r(t,e,n){return r.fun(t,e,n)},BTt=function r(t,e,n,u){return r.fun(t,e,n,u)},TTt=function r(t,e,n){return r.fun(t,e,n)};mB(STt,(function(r,t,e,n){OI(bSt(e),jxr),NI(r,e,n[1]),OI(bSt(e),Xxr);var u=n[2];return LI(BTt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Hxr)})),mB(gTt,(function(r,t,e){var n=NI(STt,r,t);return NI(ESt(Uxr),n,e)})),mB(BTt,(function(r,t,e,n){OI(bSt(e),oxr),NI(bSt(e),vxr,sxr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),e,u),OI(bSt(e),lxr),OI(bSt(e),Dxr),NI(bSt(e),bxr,pxr);var a=n[2];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Exr),OI(bSt(e),Fxr),NI(bSt(e),mxr,dxr);var i=n[3];NI(bSt(e),hxr,i),OI(bSt(e),kxr),OI(bSt(e),yxr),NI(bSt(e),_xr,Axr);var c=n[4];NI(bSt(e),Cxr,c),OI(bSt(e),wxr),OI(bSt(e),Sxr),NI(bSt(e),Bxr,gxr);var f=n[5];NI(bSt(e),Txr,f),OI(bSt(e),Ixr),OI(bSt(e),Oxr),NI(bSt(e),xxr,Nxr);var o=n[6];if(o){zwt(e,Lxr);var s=o[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,fxr)}),e,s),zwt(e,Pxr)}else zwt(e,Rxr);return OI(bSt(e),Mxr),OI(bSt(e),Gxr)})),mB(TTt,(function(r,t,e){var n=NI(BTt,r,t);return NI(ESt(cxr),n,e)}));var ITt=[0,STt,gTt,BTt,TTt],OTt=function r(t,e,n,u){return r.fun(t,e,n,u)},NTt=function r(t,e,n){return r.fun(t,e,n)},xTt=function r(t,e,n,u){return r.fun(t,e,n,u)},LTt=function r(t,e,n){return r.fun(t,e,n)};mB(OTt,(function(r,t,e,n){OI(bSt(e),RNr),NI(bSt(e),GNr,MNr);var u=n[1];NI(bSt(e),UNr,u),OI(bSt(e),jNr),OI(bSt(e),XNr),NI(bSt(e),$Nr,HNr);var a=n[2];NI(bSt(e),YNr,a),OI(bSt(e),VNr),OI(bSt(e),KNr),NI(bSt(e),WNr,JNr);var i=n[3];OI(bSt(e),qNr);fCt((function(n,u){return n&&OI(bSt(e),PNr),LI(xTt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,i),OI(bSt(e),zNr),OI(bSt(e),QNr),OI(bSt(e),ZNr),NI(bSt(e),txr,rxr);var c=n[4];if(c){zwt(e,exr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),xNr);return fCt((function(e,n){return e&&OI(bSt(t),NNr),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),LNr)}),e,f),zwt(e,nxr)}else zwt(e,uxr);return OI(bSt(e),axr),OI(bSt(e),ixr)})),mB(NTt,(function(r,t,e){var n=NI(OTt,r,t);return NI(ESt(ONr),n,e)})),mB(xTt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),yNr);var u=n[1];return LI(vTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),ANr);case 1:OI(bSt(e),_Nr);var a=n[1];return LI(ETt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),CNr);case 2:OI(bSt(e),wNr);var i=n[1];return LI(kTt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),SNr);case 3:OI(bSt(e),gNr);var c=n[1];return LI(wTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),BNr);default:OI(bSt(e),TNr);var f=n[1];return LI(ITt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),OI(bSt(e),INr)}})),mB(LTt,(function(r,t,e){var n=NI(xTt,r,t);return NI(ESt(kNr),n,e)}));var PTt=[0,vTt,ETt,kTt,wTt,ITt,OTt,NTt,xTt,LTt],RTt=function r(t,e,n,u){return r.fun(t,e,n,u)},MTt=function r(t,e,n){return r.fun(t,e,n)};mB(RTt,(function(r,t,e,n){OI(bSt(e),rNr),NI(bSt(e),eNr,tNr);var u=n[1];OI(bSt(e),nNr),NI(r,e,u[1]),OI(bSt(e),uNr);var a=u[2];LI(PTt[6],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),aNr),OI(bSt(e),iNr),OI(bSt(e),cNr),NI(bSt(e),oNr,fNr);var i=n[2];OI(bSt(e),sNr);fCt((function(n,u){n&&OI(bSt(e),qOr),OI(bSt(e),zOr),NI(r,e,u[1]),OI(bSt(e),QOr);var a=u[2];return LI(QBt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),ZOr),1}),0,i),OI(bSt(e),vNr),OI(bSt(e),lNr),OI(bSt(e),DNr),NI(bSt(e),bNr,pNr);var c=n[3];if(c){zwt(e,ENr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,WOr)}),e,f),zwt(e,FNr)}else zwt(e,dNr);return OI(bSt(e),mNr),OI(bSt(e),hNr)})),mB(MTt,(function(r,t,e){var n=NI(RTt,r,t);return NI(ESt(JOr),n,e)}));var GTt=[0,RTt,MTt],UTt=function r(t,e,n,u){return r.fun(t,e,n,u)},jTt=function r(t,e,n){return r.fun(t,e,n)};mB(UTt,(function(r,t,e,n){OI(bSt(e),POr),NI(bSt(e),MOr,ROr);var u=n[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),GOr),OI(bSt(e),UOr),NI(bSt(e),XOr,jOr);var a=n[2];if(a){zwt(e,HOr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,LOr)}),e,i),zwt(e,$Or)}else zwt(e,YOr);return OI(bSt(e),VOr),OI(bSt(e),KOr)})),mB(jTt,(function(r,t,e){var n=NI(UTt,r,t);return NI(ESt(xOr),n,e)}));var XTt=[0,UTt,jTt],HTt=function r(t,e,n,u){return r.fun(t,e,n,u)},$Tt=function r(t,e,n){return r.fun(t,e,n)};mB(HTt,(function(r,t,e,n){OI(bSt(e),FOr),NI(bSt(e),mOr,dOr);var u=n[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),hOr),OI(bSt(e),kOr),NI(bSt(e),AOr,yOr);var a=n[2];NI(bSt(e),_Or,a),OI(bSt(e),COr),OI(bSt(e),wOr),NI(bSt(e),gOr,SOr);var i=n[3];if(i){zwt(e,BOr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,EOr)}),e,c),zwt(e,TOr)}else zwt(e,IOr);return OI(bSt(e),OOr),OI(bSt(e),NOr)})),mB($Tt,(function(r,t,e){var n=NI(HTt,r,t);return NI(ESt(bOr),n,e)}));var YTt=[0,HTt,$Tt],VTt=function r(t,e,n,u){return r.fun(t,e,n,u)},KTt=function r(t,e,n){return r.fun(t,e,n)};mB(VTt,(function(r,t,e,n){OI(bSt(e),tOr),NI(bSt(e),nOr,eOr);var u=n[1];OI(bSt(e),uOr);fCt((function(n,u){return n&&OI(bSt(e),rOr),LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),aOr),OI(bSt(e),iOr),OI(bSt(e),cOr),NI(bSt(e),oOr,fOr);var a=n[2];if(a){zwt(e,sOr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,ZIr)}),e,i),zwt(e,vOr)}else zwt(e,lOr);return OI(bSt(e),DOr),OI(bSt(e),pOr)})),mB(KTt,(function(r,t,e){var n=NI(VTt,r,t);return NI(ESt(QIr),n,e)}));var JTt=[0,VTt,KTt],WTt=function r(t,e,n,u){return r.fun(t,e,n,u)},qTt=function r(t,e,n){return r.fun(t,e,n)};mB(WTt,(function(r,t,e,n){OI(bSt(e),UIr),NI(bSt(e),XIr,jIr);var u=n[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),HIr),OI(bSt(e),$Ir),NI(bSt(e),VIr,YIr);var a=n[2];if(a){zwt(e,KIr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,GIr)}),e,i),zwt(e,JIr)}else zwt(e,WIr);return OI(bSt(e),qIr),OI(bSt(e),zIr)})),mB(qTt,(function(r,t,e){var n=NI(WTt,r,t);return NI(ESt(MIr),n,e)}));var zTt=[0,WTt,qTt],QTt=function r(t,e,n,u){return r.fun(t,e,n,u)},ZTt=function r(t,e,n){return r.fun(t,e,n)};mB(QTt,(function(r,t,e,n){OI(bSt(e),hIr),NI(bSt(e),yIr,kIr);var u=n[1];OI(bSt(e),AIr);var a=u[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),_Ir);var i=u[2];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),CIr),OI(bSt(e),wIr);fCt((function(n,u){return n&&OI(bSt(e),mIr),LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u[3]),OI(bSt(e),SIr),OI(bSt(e),gIr),OI(bSt(e),BIr),OI(bSt(e),TIr),NI(bSt(e),OIr,IIr);var c=n[2];if(c){zwt(e,NIr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,dIr)}),e,f),zwt(e,xIr)}else zwt(e,LIr);return OI(bSt(e),PIr),OI(bSt(e),RIr)})),mB(ZTt,(function(r,t,e){var n=NI(QTt,r,t);return NI(ESt(FIr),n,e)}));var rIt=[0,QTt,ZTt],tIt=function r(t,e,n,u){return r.fun(t,e,n,u)},eIt=function r(t,e,n){return r.fun(t,e,n)};mB(tIt,(function(r,t,e,n){OI(bSt(e),ZTr),NI(bSt(e),tIr,rIr);var u=n[1];OI(bSt(e),eIr);var a=u[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),nIr);var i=u[2];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),uIr),OI(bSt(e),aIr);fCt((function(n,u){return n&&OI(bSt(e),QTr),LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u[3]),OI(bSt(e),iIr),OI(bSt(e),cIr),OI(bSt(e),fIr),OI(bSt(e),oIr),NI(bSt(e),vIr,sIr);var c=n[2];if(c){zwt(e,lIr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,zTr)}),e,f),zwt(e,DIr)}else zwt(e,pIr);return OI(bSt(e),bIr),OI(bSt(e),EIr)})),mB(eIt,(function(r,t,e){var n=NI(tIt,r,t);return NI(ESt(qTr),n,e)}));var nIt=[0,tIt,eIt],uIt=function r(t,e,n,u){return r.fun(t,e,n,u)},aIt=function r(t,e,n){return r.fun(t,e,n)},iIt=function r(t,e,n,u){return r.fun(t,e,n,u)},cIt=function r(t,e,n){return r.fun(t,e,n)},fIt=function r(t,e,n,u){return r.fun(t,e,n,u)},oIt=function r(t,e,n){return r.fun(t,e,n)},sIt=function r(t,e,n,u){return r.fun(t,e,n,u)},vIt=function r(t,e,n){return r.fun(t,e,n)};mB(uIt,(function(r,t,e,n){OI(bSt(e),KTr),NI(t,e,n[1]),OI(bSt(e),JTr);var u=n[2];return LI(iIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),WTr)})),mB(aIt,(function(r,t,e){var n=NI(uIt,r,t);return NI(ESt(VTr),n,e)})),mB(iIt,(function(r,t,e,n){switch(n[0]){case 0:var u=n[1];if(OI(bSt(e),DBr),u){zwt(e,pBr);var a=u[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,lBr)}),e,a),zwt(e,bBr)}else zwt(e,EBr);return OI(bSt(e),FBr);case 1:var i=n[1];if(OI(bSt(e),dBr),i){zwt(e,mBr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,vBr)}),e,c),zwt(e,hBr)}else zwt(e,kBr);return OI(bSt(e),yBr);case 2:var f=n[1];if(OI(bSt(e),ABr),f){zwt(e,_Br);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,sBr)}),e,o),zwt(e,CBr)}else zwt(e,wBr);return OI(bSt(e),SBr);case 3:var s=n[1];if(OI(bSt(e),gBr),s){zwt(e,BBr);var v=s[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,oBr)}),e,v),zwt(e,TBr)}else zwt(e,IBr);return OI(bSt(e),OBr);case 4:var l=n[1];if(OI(bSt(e),NBr),l){zwt(e,xBr);var D=l[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,fBr)}),e,D),zwt(e,LBr)}else zwt(e,PBr);return OI(bSt(e),RBr);case 5:var p=n[1];if(OI(bSt(e),MBr),p){zwt(e,GBr);var b=p[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,cBr)}),e,b),zwt(e,UBr)}else zwt(e,jBr);return OI(bSt(e),XBr);case 6:var E=n[1];if(OI(bSt(e),HBr),E){zwt(e,$Br);var F=E[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,iBr)}),e,F),zwt(e,YBr)}else zwt(e,VBr);return OI(bSt(e),KBr);case 7:var d=n[1];if(OI(bSt(e),JBr),d){zwt(e,WBr);var m=d[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,aBr)}),e,m),zwt(e,qBr)}else zwt(e,zBr);return OI(bSt(e),QBr);case 8:var h=n[1];if(OI(bSt(e),ZBr),h){zwt(e,rTr);var k=h[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,uBr)}),e,k),zwt(e,tTr)}else zwt(e,eTr);return OI(bSt(e),nTr);case 9:var y=n[1];if(OI(bSt(e),uTr),y){zwt(e,aTr);var A=y[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,nBr)}),e,A),zwt(e,iTr)}else zwt(e,cTr);return OI(bSt(e),fTr);case 10:var _=n[1];if(OI(bSt(e),oTr),_){zwt(e,sTr);var C=_[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,eBr)}),e,C),zwt(e,vTr)}else zwt(e,lTr);return OI(bSt(e),DTr);case 11:OI(bSt(e),pTr);var w=n[1];return LI(XTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,w),OI(bSt(e),bTr);case 12:OI(bSt(e),ETr);var S=n[1];return LI(XBt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,S),OI(bSt(e),FTr);case 13:OI(bSt(e),dTr);var g=n[1];return LI(PTt[6],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,g),OI(bSt(e),mTr);case 14:OI(bSt(e),hTr);var B=n[1];return LI(GTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,B),OI(bSt(e),kTr);case 15:OI(bSt(e),yTr);var T=n[1];return LI(zTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,T),OI(bSt(e),ATr);case 16:OI(bSt(e),_Tr);var I=n[1];return LI(QBt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,I),OI(bSt(e),CTr);case 17:OI(bSt(e),wTr);var O=n[1];return LI(tTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,O),OI(bSt(e),STr);case 18:OI(bSt(e),gTr);var N=n[1];return LI(uTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,N),OI(bSt(e),BTr);case 19:OI(bSt(e),TTr);var x=n[1];return LI(rIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,x),OI(bSt(e),ITr);case 20:OI(bSt(e),OTr);var L=n[1];return LI(nIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,L),OI(bSt(e),NTr);case 21:OI(bSt(e),xTr);var P=n[1];return LI(YTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,P),OI(bSt(e),LTr);case 22:OI(bSt(e),PTr);var R=n[1];return LI(JTt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,R),OI(bSt(e),RTr);case 23:OI(bSt(e),MTr);var M=n[1];return xI(Cgt[1],(function(t){return OI(r,t)}),e,M),OI(bSt(e),GTr);case 24:OI(bSt(e),UTr);var G=n[1];return xI(wgt[1],(function(t){return OI(r,t)}),e,G),OI(bSt(e),jTr);case 25:OI(bSt(e),XTr);var U=n[1];return xI(Sgt[1],(function(t){return OI(r,t)}),e,U),OI(bSt(e),HTr);default:OI(bSt(e),$Tr);var j=n[1];return xI(ggt[1],(function(t){return OI(r,t)}),e,j),OI(bSt(e),YTr)}})),mB(cIt,(function(r,t,e){var n=NI(iIt,r,t);return NI(ESt(tBr),n,e)})),mB(fIt,(function(r,t,e,n){OI(bSt(e),Qgr),NI(r,e,n[1]),OI(bSt(e),Zgr);var u=n[2];return LI(uIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),rBr)})),mB(oIt,(function(r,t,e){var n=NI(fIt,r,t);return NI(ESt(zgr),n,e)})),mB(sIt,(function(r,t,e,n){if(0===n[0])return OI(bSt(e),Kgr),NI(t,e,n[1]),OI(bSt(e),Jgr);OI(bSt(e),Wgr);var u=n[1];return LI(Igt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),qgr)})),mB(vIt,(function(r,t,e){var n=NI(sIt,r,t);return NI(ESt(Vgr),n,e)}));var lIt=function r(t,e,n,u){return r.fun(t,e,n,u)},DIt=function r(t,e,n){return r.fun(t,e,n)},pIt=function r(t,e,n,u){return r.fun(t,e,n,u)},bIt=function r(t,e,n){return r.fun(t,e,n)};mB(lIt,(function(r,t,e,n){OI(bSt(e),Hgr),NI(r,e,n[1]),OI(bSt(e),$gr);var u=n[2];return LI(pIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Ygr)})),mB(DIt,(function(r,t,e){var n=NI(lIt,r,t);return NI(ESt(Xgr),n,e)})),mB(pIt,(function(r,t,e,n){OI(bSt(e),mgr),NI(bSt(e),kgr,hgr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),e,u),OI(bSt(e),ygr),OI(bSt(e),Agr),NI(bSt(e),Cgr,_gr);var a=n[2];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),wgr),OI(bSt(e),Sgr),NI(bSt(e),Bgr,ggr);var i=n[3];if(i){zwt(e,Tgr);var c=i[1];xI(Bgt[1],(function(t){return OI(r,t)}),e,c),zwt(e,Igr)}else zwt(e,Ogr);OI(bSt(e),Ngr),OI(bSt(e),xgr),NI(bSt(e),Pgr,Lgr);var f=n[4];if(f){zwt(e,Rgr);var o=f[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),zwt(e,Mgr)}else zwt(e,Ggr);return OI(bSt(e),Ugr),OI(bSt(e),jgr)})),mB(bIt,(function(r,t,e){var n=NI(pIt,r,t);return NI(ESt(dgr),n,e)}));var EIt=[0,lIt,DIt,pIt,bIt],FIt=function r(t,e,n,u){return r.fun(t,e,n,u)},dIt=function r(t,e,n){return r.fun(t,e,n)},mIt=function r(t,e,n,u){return r.fun(t,e,n,u)},hIt=function r(t,e,n){return r.fun(t,e,n)};mB(FIt,(function(r,t,e,n){OI(bSt(e),bgr),NI(r,e,n[1]),OI(bSt(e),Egr);var u=n[2];return LI(mIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Fgr)})),mB(dIt,(function(r,t,e){var n=NI(FIt,r,t);return NI(ESt(pgr),n,e)})),mB(mIt,(function(r,t,e,n){OI(bSt(e),rgr),NI(bSt(e),egr,tgr);var u=n[1];OI(bSt(e),ngr);fCt((function(n,u){return n&&OI(bSt(e),ZSr),LI(EIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),ugr),OI(bSt(e),agr),OI(bSt(e),igr),NI(bSt(e),fgr,cgr);var a=n[2];if(a){zwt(e,ogr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),zSr);return fCt((function(e,n){return e&&OI(bSt(t),qSr),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),QSr)}),e,i),zwt(e,sgr)}else zwt(e,vgr);return OI(bSt(e),lgr),OI(bSt(e),Dgr)})),mB(hIt,(function(r,t,e){var n=NI(mIt,r,t);return NI(ESt(WSr),n,e)}));var kIt=function r(t,e,n,u){return r.fun(t,e,n,u)},yIt=function r(t,e,n){return r.fun(t,e,n)},AIt=function r(t,e,n,u){return r.fun(t,e,n,u)},_It=function r(t,e,n){return r.fun(t,e,n)},CIt=[0,FIt,dIt,mIt,hIt];mB(kIt,(function(r,t,e,n){OI(bSt(e),VSr),NI(r,e,n[1]),OI(bSt(e),KSr);var u=n[2];return LI(AIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),JSr)})),mB(yIt,(function(r,t,e){var n=NI(kIt,r,t);return NI(ESt(YSr),n,e)})),mB(AIt,(function(r,t,e,n){OI(bSt(e),ISr),NI(bSt(e),NSr,OSr);var u=n[1];OI(bSt(e),xSr);fCt((function(n,u){return n&&OI(bSt(e),TSr),LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),LSr),OI(bSt(e),PSr),OI(bSt(e),RSr),NI(bSt(e),GSr,MSr);var a=n[2];if(a){zwt(e,USr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),gSr);return fCt((function(e,n){return e&&OI(bSt(t),SSr),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),BSr)}),e,i),zwt(e,jSr)}else zwt(e,XSr);return OI(bSt(e),HSr),OI(bSt(e),$Sr)})),mB(_It,(function(r,t,e){var n=NI(AIt,r,t);return NI(ESt(wSr),n,e)}));var wIt=function r(t,e,n,u){return r.fun(t,e,n,u)},SIt=function r(t,e,n){return r.fun(t,e,n)},gIt=function r(t,e,n,u){return r.fun(t,e,n,u)},BIt=function r(t,e,n){return r.fun(t,e,n)},TIt=function r(t,e,n,u){return r.fun(t,e,n,u)},IIt=function r(t,e,n){return r.fun(t,e,n)},OIt=[0,kIt,yIt,AIt,_It];mB(wIt,(function(r,t,e,n){OI(bSt(e),ASr),NI(r,e,n[1]),OI(bSt(e),_Sr);var u=n[2];return LI(gIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),CSr)})),mB(SIt,(function(r,t,e){var n=NI(wIt,r,t);return NI(ESt(ySr),n,e)})),mB(gIt,(function(r,t,e,n){OI(bSt(e),sSr),NI(bSt(e),lSr,vSr);var u=n[1];LI(TIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),DSr),OI(bSt(e),pSr),NI(bSt(e),ESr,bSr);var a=n[2];if(a){zwt(e,FSr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,oSr)}),e,i),zwt(e,dSr)}else zwt(e,mSr);return OI(bSt(e),hSr),OI(bSt(e),kSr)})),mB(BIt,(function(r,t,e){var n=NI(gIt,r,t);return NI(ESt(fSr),n,e)})),mB(TIt,(function(r,t,e,n){if(n){OI(bSt(e),aSr);var u=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),iSr)}return zwt(e,cSr)})),mB(IIt,(function(r,t,e){var n=NI(TIt,r,t);return NI(ESt(uSr),n,e)})),xI(USt,QYr,Igt,[0,XBt,QBt,tTt,uTt,PTt,GTt,XTt,YTt,JTt,zTt,rIt,nIt,uIt,aIt,iIt,cIt,fIt,oIt,sIt,vIt,EIt,CIt,OIt,[0,wIt,SIt,gIt,BIt,TIt,IIt]]);var NIt=function r(t,e,n,u){return r.fun(t,e,n,u)},xIt=function r(t,e,n){return r.fun(t,e,n)};mB(NIt,(function(r,t,e,n){OI(bSt(e),$wr),NI(bSt(e),Vwr,Ywr);var u=n[1];OI(bSt(e),Kwr);fCt((function(n,u){return n&&OI(bSt(e),Hwr),LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),Jwr),OI(bSt(e),Wwr),OI(bSt(e),qwr),NI(bSt(e),Qwr,zwr);var a=n[2];if(a){zwt(e,Zwr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),jwr);return fCt((function(e,n){return e&&OI(bSt(t),Uwr),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),Xwr)}),e,i),zwt(e,rSr)}else zwt(e,tSr);return OI(bSt(e),eSr),OI(bSt(e),nSr)})),mB(xIt,(function(r,t,e){var n=NI(NIt,r,t);return NI(ESt(Gwr),n,e)}));var LIt=[0,NIt,xIt],PIt=function r(t,e,n,u){return r.fun(t,e,n,u)},RIt=function r(t,e,n){return r.fun(t,e,n)},MIt=function r(t,e,n,u){return r.fun(t,e,n,u)},GIt=function r(t,e,n){return r.fun(t,e,n)};mB(PIt,(function(r,t,e,n){OI(bSt(e),Pwr),NI(r,e,n[1]),OI(bSt(e),Rwr);var u=n[2];return LI(MIt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Mwr)})),mB(RIt,(function(r,t,e){var n=NI(PIt,r,t);return NI(ESt(Lwr),n,e)})),mB(MIt,(function(r,t,e,n){OI(bSt(e),Awr),NI(bSt(e),Cwr,_wr);var u=n[1];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),wwr),OI(bSt(e),Swr),NI(bSt(e),Bwr,gwr);var a=n[2];if(a){zwt(e,Twr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,ywr)}),e,i),zwt(e,Iwr)}else zwt(e,Owr);return OI(bSt(e),Nwr),OI(bSt(e),xwr)})),mB(GIt,(function(r,t,e){var n=NI(MIt,r,t);return NI(ESt(kwr),n,e)}));var UIt=[0,PIt,RIt,MIt,GIt],jIt=function r(t,e,n,u){return r.fun(t,e,n,u)},XIt=function r(t,e,n){return r.fun(t,e,n)};mB(jIt,(function(r,t,e,n){OI(bSt(e),QCr),NI(bSt(e),rwr,ZCr);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),twr),OI(bSt(e),ewr),NI(bSt(e),uwr,nwr);var a=n[2];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),awr),OI(bSt(e),iwr),NI(bSt(e),fwr,cwr);var i=n[3];if(i){zwt(e,owr);var c=i[1];LI(UIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),zwt(e,swr)}else zwt(e,vwr);OI(bSt(e),lwr),OI(bSt(e),Dwr),NI(bSt(e),bwr,pwr);var f=n[4];if(f){zwt(e,Ewr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,zCr)}),e,o),zwt(e,Fwr)}else zwt(e,dwr);return OI(bSt(e),mwr),OI(bSt(e),hwr)})),mB(XIt,(function(r,t,e){var n=NI(jIt,r,t);return NI(ESt(qCr),n,e)}));var HIt=[0,UIt,jIt,XIt],$It=function r(t,e,n,u){return r.fun(t,e,n,u)},YIt=function r(t,e,n){return r.fun(t,e,n)};mB($It,(function(r,t,e,n){OI(bSt(e),xCr),NI(bSt(e),PCr,LCr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),e,u),OI(bSt(e),RCr),OI(bSt(e),MCr),NI(bSt(e),UCr,GCr);var a=n[2];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),jCr),OI(bSt(e),XCr),NI(bSt(e),$Cr,HCr);var i=n[3];if(i){zwt(e,YCr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,NCr)}),e,c),zwt(e,VCr)}else zwt(e,KCr);return OI(bSt(e),JCr),OI(bSt(e),WCr)})),mB(YIt,(function(r,t,e){var n=NI($It,r,t);return NI(ESt(OCr),n,e)}));var VIt=[0,$It,YIt],KIt=function r(t,e,n){return r.fun(t,e,n)},JIt=function r(t,e){return r.fun(t,e)};mB(KIt,(function(r,t,e){OI(bSt(t),FCr),NI(bSt(t),mCr,dCr);var n=e[1];if(n){zwt(t,hCr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,u),zwt(t,kCr)}else zwt(t,yCr);OI(bSt(t),ACr),OI(bSt(t),_Cr),NI(bSt(t),wCr,CCr);var a=e[2];if(a){zwt(t,SCr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,ECr)}),t,i),zwt(t,gCr)}else zwt(t,BCr);return OI(bSt(t),TCr),OI(bSt(t),ICr)})),mB(JIt,(function(r,t){var e=OI(KIt,r);return NI(ESt(bCr),e,t)}));var WIt=[0,KIt,JIt],qIt=function r(t,e,n){return r.fun(t,e,n)},zIt=function r(t,e){return r.fun(t,e)};mB(qIt,(function(r,t,e){OI(bSt(t),rCr),NI(bSt(t),eCr,tCr);var n=e[1];if(n){zwt(t,nCr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,u),zwt(t,uCr)}else zwt(t,aCr);OI(bSt(t),iCr),OI(bSt(t),cCr),NI(bSt(t),oCr,fCr);var a=e[2];if(a){zwt(t,sCr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Z_r)}),t,i),zwt(t,vCr)}else zwt(t,lCr);return OI(bSt(t),DCr),OI(bSt(t),pCr)})),mB(zIt,(function(r,t){var e=OI(qIt,r);return NI(ESt(Q_r),e,t)}));var QIt=[0,qIt,zIt],ZIt=function r(t,e,n){return r.fun(t,e,n)},rOt=function r(t,e){return r.fun(t,e)};mB(ZIt,(function(r,t,e){OI(bSt(t),$_r),NI(bSt(t),V_r,Y_r);var n=e[1];if(n){zwt(t,K_r);var u=n[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,H_r)}),t,u),zwt(t,J_r)}else zwt(t,W_r);return OI(bSt(t),q_r),OI(bSt(t),z_r)})),mB(rOt,(function(r,t){var e=OI(ZIt,r);return NI(ESt(X_r),e,t)}));var tOt=[0,ZIt,rOt],eOt=function r(t,e,n,u){return r.fun(t,e,n,u)},nOt=function r(t,e,n){return r.fun(t,e,n)};mB(eOt,(function(r,t,e,n){OI(bSt(e),w_r),NI(bSt(e),g_r,S_r);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),B_r),OI(bSt(e),T_r),NI(bSt(e),O_r,I_r);var a=n[2];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),N_r),OI(bSt(e),x_r),NI(bSt(e),P_r,L_r);var i=n[3];if(i){zwt(e,R_r);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,C_r)}),e,c),zwt(e,M_r)}else zwt(e,G_r);return OI(bSt(e),U_r),OI(bSt(e),j_r)})),mB(nOt,(function(r,t,e){var n=NI(eOt,r,t);return NI(ESt(__r),n,e)}));var uOt=[0,eOt,nOt],aOt=function r(t,e,n,u){return r.fun(t,e,n,u)},iOt=function r(t,e,n){return r.fun(t,e,n)};mB(aOt,(function(r,t,e,n){OI(bSt(e),t_r),NI(bSt(e),n_r,e_r);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),u_r),OI(bSt(e),a_r),NI(bSt(e),c_r,i_r);var a=n[2];if(a){zwt(e,f_r);var i=a[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,o_r)}else zwt(e,s_r);OI(bSt(e),v_r),OI(bSt(e),l_r),NI(bSt(e),p_r,D_r);var c=n[3];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),b_r),OI(bSt(e),E_r),NI(bSt(e),d_r,F_r);var f=n[4];if(f){zwt(e,m_r);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,r_r)}),e,o),zwt(e,h_r)}else zwt(e,k_r);return OI(bSt(e),y_r),OI(bSt(e),A_r)})),mB(iOt,(function(r,t,e){var n=NI(aOt,r,t);return NI(ESt(ZAr),n,e)}));var cOt=[0,aOt,iOt],fOt=function r(t,e,n,u){return r.fun(t,e,n,u)},oOt=function r(t,e,n){return r.fun(t,e,n)};mB(fOt,(function(r,t,e,n){OI(bSt(e),hAr),NI(bSt(e),yAr,kAr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),AAr),OI(bSt(e),_Ar),NI(bSt(e),wAr,CAr);var a=n[2];if(a){zwt(e,SAr);var i=a[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,gAr)}else zwt(e,BAr);OI(bSt(e),TAr),OI(bSt(e),IAr),NI(bSt(e),NAr,OAr);var c=n[3];if(c){zwt(e,xAr);var f=c[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),zwt(e,LAr)}else zwt(e,PAr);OI(bSt(e),RAr),OI(bSt(e),MAr),NI(bSt(e),UAr,GAr);var o=n[4];if(o){zwt(e,jAr);var s=o[1];LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),zwt(e,XAr)}else zwt(e,HAr);OI(bSt(e),$Ar),OI(bSt(e),YAr),NI(bSt(e),KAr,VAr);var v=n[5];if(v){zwt(e,JAr);var l=v[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,mAr)}),e,l),zwt(e,WAr)}else zwt(e,qAr);return OI(bSt(e),zAr),OI(bSt(e),QAr)})),mB(oOt,(function(r,t,e){var n=NI(fOt,r,t);return NI(ESt(dAr),n,e)}));var sOt=[0,fOt,oOt],vOt=function r(t,e,n,u){return r.fun(t,e,n,u)},lOt=function r(t,e,n){return r.fun(t,e,n)},DOt=function r(t,e,n,u){return r.fun(t,e,n,u)},pOt=function r(t,e,n){return r.fun(t,e,n)};mB(vOt,(function(r,t,e,n){OI(bSt(e),bAr),NI(r,e,n[1]),OI(bSt(e),EAr);var u=n[2];return LI(DOt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),FAr)})),mB(lOt,(function(r,t,e){var n=NI(vOt,r,t);return NI(ESt(pAr),n,e)})),mB(DOt,(function(r,t,e,n){OI(bSt(e),Kyr),NI(bSt(e),Wyr,Jyr);var u=n[1];if(u){zwt(e,qyr);var a=u[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,zyr)}else zwt(e,Qyr);OI(bSt(e),Zyr),OI(bSt(e),rAr),NI(bSt(e),eAr,tAr);var i=n[2];OI(bSt(e),nAr);fCt((function(n,u){return n&&OI(bSt(e),Vyr),LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,i),OI(bSt(e),uAr),OI(bSt(e),aAr),OI(bSt(e),iAr),NI(bSt(e),fAr,cAr);var c=n[3];if(c){zwt(e,oAr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Yyr)}),e,f),zwt(e,sAr)}else zwt(e,vAr);return OI(bSt(e),lAr),OI(bSt(e),DAr)})),mB(pOt,(function(r,t,e){var n=NI(DOt,r,t);return NI(ESt($yr),n,e)}));var bOt=[0,vOt,lOt,DOt,pOt],EOt=function r(t,e,n,u){return r.fun(t,e,n,u)},FOt=function r(t,e,n){return r.fun(t,e,n)};mB(EOt,(function(r,t,e,n){OI(bSt(e),wyr),NI(bSt(e),gyr,Syr);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Byr),OI(bSt(e),Tyr),NI(bSt(e),Oyr,Iyr);var a=n[2];OI(bSt(e),Nyr);fCt((function(n,u){return n&&OI(bSt(e),Cyr),LI(bOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,a),OI(bSt(e),xyr),OI(bSt(e),Lyr),OI(bSt(e),Pyr),NI(bSt(e),Myr,Ryr);var i=n[3];if(i){zwt(e,Gyr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,_yr)}),e,c),zwt(e,Uyr)}else zwt(e,jyr);return OI(bSt(e),Xyr),OI(bSt(e),Hyr)})),mB(FOt,(function(r,t,e){var n=NI(EOt,r,t);return NI(ESt(Ayr),n,e)}));var dOt=[0,bOt,EOt,FOt],mOt=function r(t,e,n,u){return r.fun(t,e,n,u)},hOt=function r(t,e,n){return r.fun(t,e,n)};mB(mOt,(function(r,t,e,n){OI(bSt(e),fyr),NI(bSt(e),syr,oyr);var u=n[1];if(u){zwt(e,vyr);var a=u[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,lyr)}else zwt(e,Dyr);OI(bSt(e),pyr),OI(bSt(e),byr),NI(bSt(e),Fyr,Eyr);var i=n[2];if(i){zwt(e,dyr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,cyr)}),e,c),zwt(e,myr)}else zwt(e,hyr);return OI(bSt(e),kyr),OI(bSt(e),yyr)})),mB(hOt,(function(r,t,e){var n=NI(mOt,r,t);return NI(ESt(iyr),n,e)}));var kOt=[0,mOt,hOt],yOt=function r(t,e,n,u){return r.fun(t,e,n,u)},AOt=function r(t,e,n){return r.fun(t,e,n)};mB(yOt,(function(r,t,e,n){OI(bSt(e),Jkr),NI(bSt(e),qkr,Wkr);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),zkr),OI(bSt(e),Qkr),NI(bSt(e),ryr,Zkr);var a=n[2];if(a){zwt(e,tyr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Kkr)}),e,i),zwt(e,eyr)}else zwt(e,nyr);return OI(bSt(e),uyr),OI(bSt(e),ayr)})),mB(AOt,(function(r,t,e){var n=NI(yOt,r,t);return NI(ESt(Vkr),n,e)}));var _Ot=[0,yOt,AOt],COt=function r(t,e,n,u){return r.fun(t,e,n,u)},wOt=function r(t,e,n){return r.fun(t,e,n)},SOt=function r(t,e,n,u){return r.fun(t,e,n,u)},gOt=function r(t,e,n){return r.fun(t,e,n)};mB(COt,(function(r,t,e,n){OI(bSt(e),Hkr),NI(r,e,n[1]),OI(bSt(e),$kr);var u=n[2];return LI(SOt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Ykr)})),mB(wOt,(function(r,t,e){var n=NI(COt,r,t);return NI(ESt(Xkr),n,e)})),mB(SOt,(function(r,t,e,n){OI(bSt(e),hkr),NI(bSt(e),ykr,kkr);var u=n[1];if(u){zwt(e,Akr);var a=u[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,_kr)}else zwt(e,Ckr);OI(bSt(e),wkr),OI(bSt(e),Skr),NI(bSt(e),Bkr,gkr);var i=n[2];OI(bSt(e),Tkr),NI(r,e,i[1]),OI(bSt(e),Ikr);var c=i[2];LI(LIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),Okr),OI(bSt(e),Nkr),OI(bSt(e),xkr),NI(bSt(e),Pkr,Lkr);var f=n[3];if(f){zwt(e,Rkr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,mkr)}),e,o),zwt(e,Mkr)}else zwt(e,Gkr);return OI(bSt(e),Ukr),OI(bSt(e),jkr)})),mB(gOt,(function(r,t,e){var n=NI(SOt,r,t);return NI(ESt(dkr),n,e)}));var BOt=[0,COt,wOt,SOt,gOt],TOt=function r(t,e,n,u){return r.fun(t,e,n,u)},IOt=function r(t,e,n){return r.fun(t,e,n)};mB(TOt,(function(r,t,e,n){OI(bSt(e),Uhr),NI(bSt(e),Xhr,jhr);var u=n[1];OI(bSt(e),Hhr),NI(r,e,u[1]),OI(bSt(e),$hr);var a=u[2];LI(LIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Yhr),OI(bSt(e),Vhr),OI(bSt(e),Khr),NI(bSt(e),Whr,Jhr);var i=n[2];if(i){zwt(e,qhr);var c=i[1];LI(BOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),zwt(e,zhr)}else zwt(e,Qhr);OI(bSt(e),Zhr),OI(bSt(e),rkr),NI(bSt(e),ekr,tkr);var f=n[3];if(f){var o=f[1];zwt(e,nkr),OI(bSt(e),ukr),NI(r,e,o[1]),OI(bSt(e),akr);var s=o[2];LI(LIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),OI(bSt(e),ikr),zwt(e,ckr)}else zwt(e,fkr);OI(bSt(e),okr),OI(bSt(e),skr),NI(bSt(e),lkr,vkr);var v=n[4];if(v){zwt(e,Dkr);var l=v[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Ghr)}),e,l),zwt(e,pkr)}else zwt(e,bkr);return OI(bSt(e),Ekr),OI(bSt(e),Fkr)})),mB(IOt,(function(r,t,e){var n=NI(TOt,r,t);return NI(ESt(Mhr),n,e)}));var OOt=[0,BOt,TOt,IOt],NOt=function r(t,e,n,u){return r.fun(t,e,n,u)},xOt=function r(t,e,n){return r.fun(t,e,n)},LOt=function r(t,e,n,u){return r.fun(t,e,n,u)},POt=function r(t,e,n){return r.fun(t,e,n)};mB(NOt,(function(r,t,e,n){OI(bSt(e),Lhr),NI(r,e,n[1]),OI(bSt(e),Phr);var u=n[2];return LI(LOt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Rhr)})),mB(xOt,(function(r,t,e){var n=NI(NOt,r,t);return NI(ESt(xhr),n,e)})),mB(LOt,(function(r,t,e,n){OI(bSt(e),yhr),NI(bSt(e),_hr,Ahr);var u=n[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Chr),OI(bSt(e),whr),NI(bSt(e),ghr,Shr);var a=n[2];if(a){zwt(e,Bhr);var i=a[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,Thr)}else zwt(e,Ihr);return OI(bSt(e),Ohr),OI(bSt(e),Nhr)})),mB(POt,(function(r,t,e){var n=NI(LOt,r,t);return NI(ESt(khr),n,e)}));var ROt=[0,NOt,xOt,LOt,POt],MOt=function r(t,e,n,u){return r.fun(t,e,n,u)},GOt=function r(t,e,n){return r.fun(t,e,n)},UOt=function r(t,e){return r.fun(t,e)},jOt=function r(t){return r.fun(t)};mB(MOt,(function(r,t,e,n){OI(bSt(e),nhr),NI(bSt(e),ahr,uhr);var u=n[1];OI(bSt(e),ihr);fCt((function(n,u){return n&&OI(bSt(e),ehr),LI(ROt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),chr),OI(bSt(e),fhr),OI(bSt(e),ohr),NI(bSt(e),vhr,shr),NI(UOt,e,n[2]),OI(bSt(e),lhr),OI(bSt(e),Dhr),NI(bSt(e),bhr,phr);var a=n[3];if(a){zwt(e,Ehr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,thr)}),e,i),zwt(e,Fhr)}else zwt(e,dhr);return OI(bSt(e),mhr),OI(bSt(e),hhr)})),mB(GOt,(function(r,t,e){var n=NI(MOt,r,t);return NI(ESt(rhr),n,e)})),mB(UOt,(function(r,t){switch(t){case 0:return zwt(r,zmr);case 1:return zwt(r,Qmr);default:return zwt(r,Zmr)}})),mB(jOt,(function(r){return NI(ESt(qmr),UOt,r)}));var XOt=[0,ROt,MOt,GOt,UOt,jOt],HOt=function r(t,e,n,u){return r.fun(t,e,n,u)},$Ot=function r(t,e,n){return r.fun(t,e,n)};mB(HOt,(function(r,t,e,n){OI(bSt(e),xmr),NI(bSt(e),Pmr,Lmr);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Rmr),OI(bSt(e),Mmr),NI(bSt(e),Umr,Gmr);var a=n[2];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),jmr),OI(bSt(e),Xmr),NI(bSt(e),$mr,Hmr);var i=n[3];if(i){zwt(e,Ymr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Nmr)}),e,c),zwt(e,Vmr)}else zwt(e,Kmr);return OI(bSt(e),Jmr),OI(bSt(e),Wmr)})),mB($Ot,(function(r,t,e){var n=NI(HOt,r,t);return NI(ESt(Omr),n,e)}));var YOt=[0,HOt,$Ot],VOt=function r(t,e,n,u){return r.fun(t,e,n,u)},KOt=function r(t,e,n){return r.fun(t,e,n)};mB(VOt,(function(r,t,e,n){OI(bSt(e),Emr),NI(bSt(e),dmr,Fmr);var u=n[1];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),mmr),OI(bSt(e),hmr),NI(bSt(e),ymr,kmr);var a=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Amr),OI(bSt(e),_mr),NI(bSt(e),wmr,Cmr);var i=n[3];if(i){zwt(e,Smr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,bmr)}),e,c),zwt(e,gmr)}else zwt(e,Bmr);return OI(bSt(e),Tmr),OI(bSt(e),Imr)})),mB(KOt,(function(r,t,e){var n=NI(VOt,r,t);return NI(ESt(pmr),n,e)}));var JOt=[0,VOt,KOt],WOt=function r(t,e,n,u){return r.fun(t,e,n,u)},qOt=function r(t,e,n){return r.fun(t,e,n)},zOt=function r(t,e,n,u){return r.fun(t,e,n,u)},QOt=function r(t,e,n){return r.fun(t,e,n)};mB(WOt,(function(r,t,e,n){OI(bSt(e),Ldr),NI(bSt(e),Rdr,Pdr);var u=n[1];if(u){zwt(e,Mdr);var a=u[1];LI(zOt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,Gdr)}else zwt(e,Udr);OI(bSt(e),jdr),OI(bSt(e),Xdr),NI(bSt(e),$dr,Hdr);var i=n[2];if(i){zwt(e,Ydr);var c=i[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),zwt(e,Vdr)}else zwt(e,Kdr);OI(bSt(e),Jdr),OI(bSt(e),Wdr),NI(bSt(e),zdr,qdr);var f=n[3];if(f){zwt(e,Qdr);var o=f[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),zwt(e,Zdr)}else zwt(e,rmr);OI(bSt(e),tmr),OI(bSt(e),emr),NI(bSt(e),umr,nmr);var s=n[4];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),OI(bSt(e),amr),OI(bSt(e),imr),NI(bSt(e),fmr,cmr);var v=n[5];if(v){zwt(e,omr);var l=v[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,xdr)}),e,l),zwt(e,smr)}else zwt(e,vmr);return OI(bSt(e),lmr),OI(bSt(e),Dmr)})),mB(qOt,(function(r,t,e){var n=NI(WOt,r,t);return NI(ESt(Ndr),n,e)})),mB(zOt,(function(r,t,e,n){if(0===n[0]){var u=n[1];OI(bSt(e),wdr),OI(bSt(e),Sdr),NI(r,e,u[1]),OI(bSt(e),gdr);var a=u[2];return LI(XOt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Bdr),OI(bSt(e),Tdr)}OI(bSt(e),Idr);var i=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),Odr)})),mB(QOt,(function(r,t,e){var n=NI(zOt,r,t);return NI(ESt(Cdr),n,e)}));var ZOt=[0,WOt,qOt,zOt,QOt],rNt=function r(t,e,n,u){return r.fun(t,e,n,u)},tNt=function r(t,e,n){return r.fun(t,e,n)},eNt=function r(t,e,n,u){return r.fun(t,e,n,u)},nNt=function r(t,e,n){return r.fun(t,e,n)};mB(rNt,(function(r,t,e,n){OI(bSt(e),rdr),NI(bSt(e),edr,tdr);var u=n[1];LI(eNt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),ndr),OI(bSt(e),udr),NI(bSt(e),idr,adr);var a=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),cdr),OI(bSt(e),fdr),NI(bSt(e),sdr,odr);var i=n[3];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),vdr),OI(bSt(e),ldr),NI(bSt(e),pdr,Ddr);var c=n[4];NI(bSt(e),bdr,c),OI(bSt(e),Edr),OI(bSt(e),Fdr),NI(bSt(e),mdr,ddr);var f=n[5];if(f){zwt(e,hdr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,ZFr)}),e,o),zwt(e,kdr)}else zwt(e,ydr);return OI(bSt(e),Adr),OI(bSt(e),_dr)})),mB(tNt,(function(r,t,e){var n=NI(rNt,r,t);return NI(ESt(QFr),n,e)})),mB(eNt,(function(r,t,e,n){if(0===n[0]){var u=n[1];OI(bSt(e),YFr),OI(bSt(e),VFr),NI(r,e,u[1]),OI(bSt(e),KFr);var a=u[2];return LI(XOt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),JFr),OI(bSt(e),WFr)}OI(bSt(e),qFr);var i=n[1];return LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),zFr)})),mB(nNt,(function(r,t,e){var n=NI(eNt,r,t);return NI(ESt($Fr),n,e)}));var uNt=[0,rNt,tNt,eNt,nNt],aNt=function r(t,e,n,u){return r.fun(t,e,n,u)},iNt=function r(t,e,n){return r.fun(t,e,n)},cNt=function r(t,e,n,u){return r.fun(t,e,n,u)},fNt=function r(t,e,n){return r.fun(t,e,n)};mB(aNt,(function(r,t,e,n){OI(bSt(e),mFr),NI(bSt(e),kFr,hFr);var u=n[1];LI(cNt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),yFr),OI(bSt(e),AFr),NI(bSt(e),CFr,_Fr);var a=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),wFr),OI(bSt(e),SFr),NI(bSt(e),BFr,gFr);var i=n[3];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),TFr),OI(bSt(e),IFr),NI(bSt(e),NFr,OFr);var c=n[4];NI(bSt(e),xFr,c),OI(bSt(e),LFr),OI(bSt(e),PFr),NI(bSt(e),MFr,RFr);var f=n[5];if(f){zwt(e,GFr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,dFr)}),e,o),zwt(e,UFr)}else zwt(e,jFr);return OI(bSt(e),XFr),OI(bSt(e),HFr)})),mB(iNt,(function(r,t,e){var n=NI(aNt,r,t);return NI(ESt(FFr),n,e)})),mB(cNt,(function(r,t,e,n){if(0===n[0]){var u=n[1];OI(bSt(e),sFr),OI(bSt(e),vFr),NI(r,e,u[1]),OI(bSt(e),lFr);var a=u[2];return LI(XOt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),DFr),OI(bSt(e),pFr)}OI(bSt(e),bFr);var i=n[1];return LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),EFr)})),mB(fNt,(function(r,t,e){var n=NI(cNt,r,t);return NI(ESt(oFr),n,e)}));var oNt=[0,aNt,iNt,cNt,fNt],sNt=function r(t,e,n){return r.fun(t,e,n)},vNt=function r(t,e){return r.fun(t,e)},lNt=function r(t,e,n){return r.fun(t,e,n)},DNt=function r(t,e){return r.fun(t,e)};mB(sNt,(function(r,t,e){OI(bSt(t),iFr),NI(r,t,e[1]),OI(bSt(t),cFr);var n=e[2];return xI(lNt,(function(t){return OI(r,t)}),t,n),OI(bSt(t),fFr)})),mB(vNt,(function(r,t){var e=OI(sNt,r);return NI(ESt(aFr),e,t)})),mB(lNt,(function(r,t,e){OI(bSt(t),rFr),NI(bSt(t),eFr,tFr);var n=e[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,n),OI(bSt(t),nFr),OI(bSt(t),uFr)})),mB(DNt,(function(r,t){var e=OI(lNt,r);return NI(ESt(ZEr),e,t)}));var pNt=[0,sNt,vNt,lNt,DNt],bNt=function r(t,e,n,u){return r.fun(t,e,n,u)},ENt=function r(t,e,n){return r.fun(t,e,n)},FNt=function r(t,e,n,u){return r.fun(t,e,n,u)},dNt=function r(t,e,n){return r.fun(t,e,n)};mB(bNt,(function(r,t,e,n){OI(bSt(e),qEr),NI(t,e,n[1]),OI(bSt(e),zEr);var u=n[2];return LI(FNt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),QEr)})),mB(ENt,(function(r,t,e){var n=NI(bNt,r,t);return NI(ESt(WEr),n,e)})),mB(FNt,(function(r,t,e,n){OI(bSt(e),REr),NI(bSt(e),GEr,MEr);var u=n[1];LI(ygt[1],(function(r){return OI(t,r)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),UEr),OI(bSt(e),jEr),NI(bSt(e),HEr,XEr);var a=n[2];return OI(bSt(e),$Er),NI(t,e,a[1]),OI(bSt(e),YEr),NI(r,e,a[2]),OI(bSt(e),VEr),OI(bSt(e),KEr),OI(bSt(e),JEr)})),mB(dNt,(function(r,t,e){var n=NI(FNt,r,t);return NI(ESt(PEr),n,e)}));var mNt=[0,bNt,ENt,FNt,dNt],hNt=function r(t,e,n){return r.fun(t,e,n)},kNt=function r(t,e){return r.fun(t,e)};mB(hNt,(function(r,t,e){OI(bSt(t),lEr),NI(bSt(t),pEr,DEr);var n=e[1];OI(bSt(t),bEr);fCt((function(e,n){return e&&OI(bSt(t),vEr),LI(mNt[1],(function(t){return NI(ggt[1],(function(t){return OI(r,t)}),t)}),(function(t){return OI(r,t)}),t,n),1}),0,n),OI(bSt(t),EEr),OI(bSt(t),FEr),OI(bSt(t),dEr),NI(bSt(t),hEr,mEr);var u=e[2];NI(bSt(t),kEr,u),OI(bSt(t),yEr),OI(bSt(t),AEr),NI(bSt(t),CEr,_Er);var a=e[3];NI(bSt(t),wEr,a),OI(bSt(t),SEr),OI(bSt(t),gEr),NI(bSt(t),TEr,BEr);var i=e[4];if(i){zwt(t,IEr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,sEr)}),t,c),zwt(t,OEr)}else zwt(t,NEr);return OI(bSt(t),xEr),OI(bSt(t),LEr)})),mB(kNt,(function(r,t){var e=OI(hNt,r);return NI(ESt(oEr),e,t)}));var yNt=[0,hNt,kNt],ANt=function r(t,e,n){return r.fun(t,e,n)},_Nt=function r(t,e){return r.fun(t,e)};mB(ANt,(function(r,t,e){OI(bSt(t),Gbr),NI(bSt(t),jbr,Ubr);var n=e[1];OI(bSt(t),Xbr);fCt((function(e,n){return e&&OI(bSt(t),Mbr),LI(mNt[1],(function(t){return NI(wgt[1],(function(t){return OI(r,t)}),t)}),(function(t){return OI(r,t)}),t,n),1}),0,n),OI(bSt(t),Hbr),OI(bSt(t),$br),OI(bSt(t),Ybr),NI(bSt(t),Kbr,Vbr);var u=e[2];NI(bSt(t),Jbr,u),OI(bSt(t),Wbr),OI(bSt(t),qbr),NI(bSt(t),Qbr,zbr);var a=e[3];NI(bSt(t),Zbr,a),OI(bSt(t),rEr),OI(bSt(t),tEr),NI(bSt(t),nEr,eEr);var i=e[4];if(i){zwt(t,uEr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Rbr)}),t,c),zwt(t,aEr)}else zwt(t,iEr);return OI(bSt(t),cEr),OI(bSt(t),fEr)})),mB(_Nt,(function(r,t){var e=OI(ANt,r);return NI(ESt(Pbr),e,t)}));var CNt=[0,ANt,_Nt],wNt=function r(t,e,n){return r.fun(t,e,n)},SNt=function r(t,e){return r.fun(t,e)},gNt=function r(t,e,n,u){return r.fun(t,e,n,u)},BNt=function r(t,e,n){return r.fun(t,e,n)};mB(wNt,(function(r,t,e){OI(bSt(t),pbr),NI(bSt(t),Ebr,bbr);var n=e[1];LI(gNt,(function(t){return NI(Cgt[1],(function(t){return OI(r,t)}),t)}),(function(t){return OI(r,t)}),t,n),OI(bSt(t),Fbr),OI(bSt(t),dbr),NI(bSt(t),hbr,mbr);var u=e[2];NI(bSt(t),kbr,u),OI(bSt(t),ybr),OI(bSt(t),Abr),NI(bSt(t),Cbr,_br);var a=e[3];NI(bSt(t),wbr,a),OI(bSt(t),Sbr),OI(bSt(t),gbr),NI(bSt(t),Tbr,Bbr);var i=e[4];if(i){zwt(t,Ibr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Dbr)}),t,c),zwt(t,Obr)}else zwt(t,Nbr);return OI(bSt(t),xbr),OI(bSt(t),Lbr)})),mB(SNt,(function(r,t){var e=OI(wNt,r);return NI(ESt(lbr),e,t)})),mB(gNt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),ubr),OI(bSt(e),abr);return fCt((function(r,n){return r&&OI(bSt(e),nbr),xI(pNt[1],(function(r){return OI(t,r)}),e,n),1}),0,n[1]),OI(bSt(e),ibr),OI(bSt(e),cbr)}OI(bSt(e),fbr),OI(bSt(e),obr);return fCt((function(n,u){return n&&OI(bSt(e),ebr),LI(mNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,n[1]),OI(bSt(e),sbr),OI(bSt(e),vbr)})),mB(BNt,(function(r,t,e){var n=NI(gNt,r,t);return NI(ESt(tbr),n,e)}));var TNt=[0,wNt,SNt,gNt,BNt],INt=function r(t,e,n){return r.fun(t,e,n)},ONt=function r(t,e){return r.fun(t,e)};mB(INt,(function(r,t,e){OI(bSt(t),Ppr),NI(bSt(t),Mpr,Rpr);var n=e[1];OI(bSt(t),Gpr);fCt((function(e,n){return e&&OI(bSt(t),Lpr),xI(pNt[1],(function(t){return OI(r,t)}),t,n),1}),0,n),OI(bSt(t),Upr),OI(bSt(t),jpr),OI(bSt(t),Xpr),NI(bSt(t),$pr,Hpr);var u=e[2];NI(bSt(t),Ypr,u),OI(bSt(t),Vpr),OI(bSt(t),Kpr),NI(bSt(t),Wpr,Jpr);var a=e[3];if(a){zwt(t,qpr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,xpr)}),t,i),zwt(t,zpr)}else zwt(t,Qpr);return OI(bSt(t),Zpr),OI(bSt(t),rbr)})),mB(ONt,(function(r,t){var e=OI(INt,r);return NI(ESt(Npr),e,t)}));var NNt=[0,INt,ONt],xNt=function r(t,e,n,u){return r.fun(t,e,n,u)},LNt=function r(t,e,n){return r.fun(t,e,n)},PNt=function r(t,e,n){return r.fun(t,e,n)},RNt=function r(t,e){return r.fun(t,e)},MNt=function r(t,e,n){return r.fun(t,e,n)},GNt=function r(t,e){return r.fun(t,e)};mB(xNt,(function(r,t,e,n){OI(bSt(e),Fpr),NI(bSt(e),mpr,dpr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),hpr),OI(bSt(e),kpr),NI(bSt(e),Apr,ypr);var a=n[2];xI(PNt,(function(t){return OI(r,t)}),e,a),OI(bSt(e),_pr),OI(bSt(e),Cpr),NI(bSt(e),Spr,wpr);var i=n[3];if(i){zwt(e,gpr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Epr)}),e,c),zwt(e,Bpr)}else zwt(e,Tpr);return OI(bSt(e),Ipr),OI(bSt(e),Opr)})),mB(LNt,(function(r,t,e){var n=NI(xNt,r,t);return NI(ESt(bpr),n,e)})),mB(PNt,(function(r,t,e){OI(bSt(t),lpr),NI(r,t,e[1]),OI(bSt(t),Dpr);var n=e[2];return xI(MNt,(function(t){return OI(r,t)}),t,n),OI(bSt(t),ppr)})),mB(RNt,(function(r,t){var e=OI(PNt,r);return NI(ESt(vpr),e,t)})),mB(MNt,(function(r,t,e){switch(e[0]){case 0:OI(bSt(t),npr);var n=e[1];return xI(yNt[1],(function(t){return OI(r,t)}),t,n),OI(bSt(t),upr);case 1:OI(bSt(t),apr);var u=e[1];return xI(CNt[1],(function(t){return OI(r,t)}),t,u),OI(bSt(t),ipr);case 2:OI(bSt(t),cpr);var a=e[1];return xI(TNt[1],(function(t){return OI(r,t)}),t,a),OI(bSt(t),fpr);default:OI(bSt(t),opr);var i=e[1];return xI(NNt[1],(function(t){return OI(r,t)}),t,i),OI(bSt(t),spr)}})),mB(GNt,(function(r,t){var e=OI(MNt,r);return NI(ESt(epr),e,t)}));var UNt=[0,pNt,mNt,yNt,CNt,TNt,NNt,xNt,LNt,PNt,RNt,MNt,GNt],jNt=function r(t,e,n,u){return r.fun(t,e,n,u)},XNt=function r(t,e,n){return r.fun(t,e,n)};mB(jNt,(function(r,t,e,n){OI(bSt(e),_Dr),NI(bSt(e),wDr,CDr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),SDr),OI(bSt(e),gDr),NI(bSt(e),TDr,BDr);var a=n[2];if(a){zwt(e,IDr);var i=a[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,ODr)}else zwt(e,NDr);OI(bSt(e),xDr),OI(bSt(e),LDr),NI(bSt(e),RDr,PDr);var c=n[3];OI(bSt(e),MDr);fCt((function(n,u){n&&OI(bSt(e),hDr),OI(bSt(e),kDr),NI(r,e,u[1]),OI(bSt(e),yDr);var a=u[2];return LI(Igt[2][2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),ADr),1}),0,c),OI(bSt(e),GDr),OI(bSt(e),UDr),OI(bSt(e),jDr),NI(bSt(e),HDr,XDr);var f=n[4];OI(bSt(e),$Dr),NI(r,e,f[1]),OI(bSt(e),YDr);var o=f[2];LI(Igt[5][6],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),OI(bSt(e),VDr),OI(bSt(e),KDr),OI(bSt(e),JDr),NI(bSt(e),qDr,WDr);var s=n[5];if(s){zwt(e,zDr);var v=s[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,mDr)}),e,v),zwt(e,QDr)}else zwt(e,ZDr);return OI(bSt(e),rpr),OI(bSt(e),tpr)})),mB(XNt,(function(r,t,e){var n=NI(jNt,r,t);return NI(ESt(dDr),n,e)}));var HNt=[0,jNt,XNt],$Nt=function r(t,e,n,u){return r.fun(t,e,n,u)},YNt=function r(t,e,n){return r.fun(t,e,n)};mB($Nt,(function(r,t,e,n){OI(bSt(e),Alr),NI(bSt(e),Clr,_lr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),wlr),OI(bSt(e),Slr),NI(bSt(e),Blr,glr);var a=n[2];if(a){zwt(e,Tlr);var i=a[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,Ilr)}else zwt(e,Olr);OI(bSt(e),Nlr),OI(bSt(e),xlr),NI(bSt(e),Plr,Llr);var c=n[3];OI(bSt(e),Rlr),NI(r,e,c[1]),OI(bSt(e),Mlr);var f=c[2];LI(Igt[5][6],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),OI(bSt(e),Glr),OI(bSt(e),Ulr),OI(bSt(e),jlr),NI(bSt(e),Hlr,Xlr);var o=n[4];if(o){var s=o[1];zwt(e,$lr),OI(bSt(e),Ylr),NI(r,e,s[1]),OI(bSt(e),Vlr);var v=s[2];LI(Igt[2][2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,v),OI(bSt(e),Klr),zwt(e,Jlr)}else zwt(e,Wlr);OI(bSt(e),qlr),OI(bSt(e),zlr),NI(bSt(e),Zlr,Qlr);var l=n[5];OI(bSt(e),rDr);fCt((function(n,u){n&&OI(bSt(e),mlr),OI(bSt(e),hlr),NI(r,e,u[1]),OI(bSt(e),klr);var a=u[2];return LI(Igt[2][2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),ylr),1}),0,l),OI(bSt(e),tDr),OI(bSt(e),eDr),OI(bSt(e),nDr),NI(bSt(e),aDr,uDr);var D=n[6];if(D){zwt(e,iDr);var p=D[1];LI(Rgt[5][2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,p),zwt(e,cDr)}else zwt(e,fDr);OI(bSt(e),oDr),OI(bSt(e),sDr),NI(bSt(e),lDr,vDr);var b=n[7];if(b){zwt(e,DDr);var E=b[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,dlr)}),e,E),zwt(e,pDr)}else zwt(e,bDr);return OI(bSt(e),EDr),OI(bSt(e),FDr)})),mB(YNt,(function(r,t,e){var n=NI($Nt,r,t);return NI(ESt(Flr),n,e)}));var VNt=[0,$Nt,YNt],KNt=function r(t,e,n,u){return r.fun(t,e,n,u)},JNt=function r(t,e,n){return r.fun(t,e,n)};mB(KNt,(function(r,t,e,n){OI(bSt(e),tlr),NI(bSt(e),nlr,elr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),ulr),OI(bSt(e),alr),NI(bSt(e),clr,ilr);var a=n[2];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),flr),OI(bSt(e),olr),NI(bSt(e),vlr,slr);var i=n[3];if(i){zwt(e,llr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,rlr)}),e,c),zwt(e,Dlr)}else zwt(e,plr);return OI(bSt(e),blr),OI(bSt(e),Elr)})),mB(JNt,(function(r,t,e){var n=NI(KNt,r,t);return NI(ESt(Zvr),n,e)}));var WNt=[0,KNt,JNt],qNt=function r(t,e,n,u){return r.fun(t,e,n,u)},zNt=function r(t,e,n){return r.fun(t,e,n)};mB(qNt,(function(r,t,e,n){OI(bSt(e),Tvr),NI(bSt(e),Ovr,Ivr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Nvr),OI(bSt(e),xvr),NI(bSt(e),Pvr,Lvr);var a=n[2];LI(Igt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Rvr),OI(bSt(e),Mvr),NI(bSt(e),Uvr,Gvr);var i=n[3];if(i){zwt(e,jvr);var c=i[1];LI(Igt[24][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),zwt(e,Xvr)}else zwt(e,Hvr);OI(bSt(e),$vr),OI(bSt(e),Yvr),NI(bSt(e),Kvr,Vvr);var f=n[4];if(f){zwt(e,Jvr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Bvr)}),e,o),zwt(e,Wvr)}else zwt(e,qvr);return OI(bSt(e),zvr),OI(bSt(e),Qvr)})),mB(zNt,(function(r,t,e){var n=NI(qNt,r,t);return NI(ESt(gvr),n,e)}));var QNt=[0,qNt,zNt],ZNt=function r(t,e,n,u){return r.fun(t,e,n,u)},rxt=function r(t,e,n){return r.fun(t,e,n)},txt=function r(t,e,n){return r.fun(t,e,n)},ext=function r(t,e){return r.fun(t,e)},nxt=function r(t,e,n,u){return r.fun(t,e,n,u)},uxt=function r(t,e,n){return r.fun(t,e,n)};mB(ZNt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),kvr);var u=n[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),yvr)}var a=n[1];OI(bSt(e),Avr),OI(bSt(e),_vr),NI(t,e,a[1]),OI(bSt(e),Cvr);var i=a[2];return xI(Cgt[1],(function(t){return OI(r,t)}),e,i),OI(bSt(e),wvr),OI(bSt(e),Svr)})),mB(rxt,(function(r,t,e){var n=NI(ZNt,r,t);return NI(ESt(hvr),n,e)})),mB(txt,(function(r,t,e){return 0===e[0]?(OI(bSt(t),Evr),NI(r,t,e[1]),OI(bSt(t),Fvr)):(OI(bSt(t),dvr),NI(r,t,e[1]),OI(bSt(t),mvr))})),mB(ext,(function(r,t){var e=OI(txt,r);return NI(ESt(bvr),e,t)})),mB(nxt,(function(r,t,e,n){OI(bSt(e),Vsr),NI(bSt(e),Jsr,Ksr);var u=n[1];LI(ZNt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Wsr),OI(bSt(e),qsr),NI(bSt(e),Qsr,zsr);var a=n[2];OI(bSt(e),Zsr),NI(r,e,a[1]),OI(bSt(e),rvr);var i=a[2];LI(LIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),tvr),OI(bSt(e),evr),OI(bSt(e),nvr),NI(bSt(e),avr,uvr);var c=n[3];xI(txt,(function(t){return OI(r,t)}),e,c),OI(bSt(e),ivr),OI(bSt(e),cvr),NI(bSt(e),ovr,fvr);var f=n[4];if(f){zwt(e,svr);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Ysr)}),e,o),zwt(e,vvr)}else zwt(e,lvr);return OI(bSt(e),Dvr),OI(bSt(e),pvr)})),mB(uxt,(function(r,t,e){var n=NI(nxt,r,t);return NI(ESt($sr),n,e)}));var axt=[0,ZNt,rxt,txt,ext,nxt,uxt],ixt=function r(t,e,n,u){return r.fun(t,e,n,u)},cxt=function r(t,e,n){return r.fun(t,e,n)};mB(ixt,(function(r,t,e,n){OI(bSt(e),Osr),NI(bSt(e),xsr,Nsr);var u=n[1];LI(Igt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Lsr),OI(bSt(e),Psr),NI(bSt(e),Msr,Rsr);var a=n[2];if(a){zwt(e,Gsr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Isr)}),e,i),zwt(e,Usr)}else zwt(e,jsr);return OI(bSt(e),Xsr),OI(bSt(e),Hsr)})),mB(cxt,(function(r,t,e){var n=NI(ixt,r,t);return NI(ESt(Tsr),n,e)}));var fxt=[0,ixt,cxt],oxt=function r(t,e,n){return r.fun(t,e,n)},sxt=function r(t,e){return r.fun(t,e)},vxt=function r(t,e,n){return r.fun(t,e,n)},lxt=function r(t,e){return r.fun(t,e)};mB(oxt,(function(r,t,e){OI(bSt(t),Ssr),NI(r,t,e[1]),OI(bSt(t),gsr);var n=e[2];return xI(vxt,(function(t){return OI(r,t)}),t,n),OI(bSt(t),Bsr)})),mB(sxt,(function(r,t){var e=OI(oxt,r);return NI(ESt(wsr),e,t)})),mB(vxt,(function(r,t,e){OI(bSt(t),psr),NI(bSt(t),Esr,bsr);var n=e[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,n),OI(bSt(t),Fsr),OI(bSt(t),dsr),NI(bSt(t),hsr,msr);var u=e[2];if(u){zwt(t,ksr);var a=u[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,a),zwt(t,ysr)}else zwt(t,Asr);return OI(bSt(t),_sr),OI(bSt(t),Csr)})),mB(lxt,(function(r,t){var e=OI(vxt,r);return NI(ESt(Dsr),e,t)}));var Dxt=[0,oxt,sxt,vxt,lxt],pxt=function r(t,e,n){return r.fun(t,e,n)},bxt=function r(t,e){return r.fun(t,e)};mB(pxt,(function(r,t,e){var n=e[2];if(OI(bSt(t),csr),NI(r,t,e[1]),OI(bSt(t),fsr),n){zwt(t,osr);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,u),zwt(t,ssr)}else zwt(t,vsr);return OI(bSt(t),lsr)})),mB(bxt,(function(r,t){var e=OI(pxt,r);return NI(ESt(isr),e,t)}));var Ext=[0,pxt,bxt],Fxt=function r(t,e,n,u){return r.fun(t,e,n,u)},dxt=function r(t,e,n){return r.fun(t,e,n)},mxt=function r(t,e,n){return r.fun(t,e,n)},hxt=function r(t,e){return r.fun(t,e)};mB(Fxt,(function(r,t,e,n){OI(bSt(e),_or),NI(bSt(e),wor,Cor);var u=n[1];if(u){zwt(e,Sor);var a=u[1];LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,gor)}else zwt(e,Bor);OI(bSt(e),Tor),OI(bSt(e),Ior),NI(bSt(e),Nor,Oor);var i=n[2];if(i){zwt(e,xor);var c=i[1];xI(mxt,(function(t){return OI(r,t)}),e,c),zwt(e,Lor)}else zwt(e,Por);OI(bSt(e),Ror),OI(bSt(e),Mor),NI(bSt(e),Uor,Gor);var f=n[3];if(f){var o=f[1];zwt(e,jor),OI(bSt(e),Xor),NI(r,e,o[1]),OI(bSt(e),Hor);var s=o[2];xI(Cgt[1],(function(t){return OI(r,t)}),e,s),OI(bSt(e),$or),zwt(e,Yor)}else zwt(e,Vor);OI(bSt(e),Kor),OI(bSt(e),Jor),NI(bSt(e),qor,Wor),NI(Ogt[33],e,n[4]),OI(bSt(e),zor),OI(bSt(e),Qor),NI(bSt(e),rsr,Zor);var v=n[5];if(v){zwt(e,tsr);var l=v[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Aor)}),e,l),zwt(e,esr)}else zwt(e,nsr);return OI(bSt(e),usr),OI(bSt(e),asr)})),mB(dxt,(function(r,t,e){var n=NI(Fxt,r,t);return NI(ESt(yor),n,e)})),mB(mxt,(function(r,t,e){if(0===e[0]){OI(bSt(t),Eor),OI(bSt(t),For);return fCt((function(e,n){return e&&OI(bSt(t),bor),xI(Dxt[1],(function(t){return OI(r,t)}),t,n),1}),0,e[1]),OI(bSt(t),dor),OI(bSt(t),mor)}OI(bSt(t),hor);var n=e[1];return xI(Ext[1],(function(t){return OI(r,t)}),t,n),OI(bSt(t),kor)})),mB(hxt,(function(r,t){var e=OI(mxt,r);return NI(ESt(por),e,t)}));var kxt=[0,Dxt,Ext,Fxt,dxt,mxt,hxt],yxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Axt=function r(t,e,n){return r.fun(t,e,n)},_xt=function r(t,e,n,u){return r.fun(t,e,n,u)},Cxt=function r(t,e,n){return r.fun(t,e,n)};mB(yxt,(function(r,t,e,n){OI(bSt(e),zfr),NI(bSt(e),Zfr,Qfr),NI(r,e,n[1]),OI(bSt(e),ror),OI(bSt(e),tor),NI(bSt(e),nor,eor);var u=n[2];LI(_xt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),uor),OI(bSt(e),aor),NI(bSt(e),cor,ior);var a=n[3];if(a){zwt(e,oor);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,qfr)}),e,i),zwt(e,sor)}else zwt(e,vor);return OI(bSt(e),lor),OI(bSt(e),Dor)})),mB(Axt,(function(r,t,e){var n=NI(yxt,r,t);return NI(ESt(Wfr),n,e)})),mB(_xt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),Yfr);var u=n[1];return LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Vfr)}OI(bSt(e),Kfr);var a=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Jfr)})),mB(Cxt,(function(r,t,e){var n=NI(_xt,r,t);return NI(ESt($fr),n,e)}));var wxt=[0,yxt,Axt,_xt,Cxt],Sxt=function r(t,e,n,u){return r.fun(t,e,n,u)},gxt=function r(t,e,n){return r.fun(t,e,n)},Bxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Txt=function r(t,e,n){return r.fun(t,e,n)};mB(Sxt,(function(r,t,e,n){switch(n[0]){case 0:var u=n[1];OI(bSt(e),lfr),OI(bSt(e),Dfr),NI(r,e,u[1]),OI(bSt(e),pfr);var a=u[2];return LI(WNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),bfr),OI(bSt(e),Efr);case 1:var i=n[1];OI(bSt(e),Ffr),OI(bSt(e),dfr),NI(r,e,i[1]),OI(bSt(e),mfr);var c=i[2];return LI(QNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),hfr),OI(bSt(e),kfr);case 2:var f=n[1];OI(bSt(e),yfr),OI(bSt(e),Afr),NI(r,e,f[1]),OI(bSt(e),_fr);var o=f[2];return LI(VNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),OI(bSt(e),Cfr),OI(bSt(e),wfr);case 3:OI(bSt(e),Sfr);var s=n[1];return LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),OI(bSt(e),gfr);case 4:var v=n[1];OI(bSt(e),Bfr),OI(bSt(e),Tfr),NI(r,e,v[1]),OI(bSt(e),Ifr);var l=v[2];return LI(cOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,l),OI(bSt(e),Ofr),OI(bSt(e),Nfr);case 5:var D=n[1];OI(bSt(e),xfr),OI(bSt(e),Lfr),NI(r,e,D[1]),OI(bSt(e),Pfr);var p=D[2];return LI(sOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,p),OI(bSt(e),Rfr),OI(bSt(e),Mfr);default:var b=n[1];OI(bSt(e),Gfr),OI(bSt(e),Ufr),NI(r,e,b[1]),OI(bSt(e),jfr);var E=b[2];return LI(HNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,E),OI(bSt(e),Xfr),OI(bSt(e),Hfr)}})),mB(gxt,(function(r,t,e){var n=NI(Sxt,r,t);return NI(ESt(vfr),n,e)})),mB(Bxt,(function(r,t,e,n){OI(bSt(e),wcr),NI(bSt(e),gcr,Scr);var u=n[1];u?(zwt(e,Bcr),NI(r,e,u[1]),zwt(e,Tcr)):zwt(e,Icr),OI(bSt(e),Ocr),OI(bSt(e),Ncr),NI(bSt(e),Lcr,xcr);var a=n[2];if(a){zwt(e,Pcr);var i=a[1];LI(Sxt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,Rcr)}else zwt(e,Mcr);OI(bSt(e),Gcr),OI(bSt(e),Ucr),NI(bSt(e),Xcr,jcr);var c=n[3];if(c){zwt(e,Hcr);var f=c[1];xI(kxt[5],(function(t){return OI(r,t)}),e,f),zwt(e,$cr)}else zwt(e,Ycr);OI(bSt(e),Vcr),OI(bSt(e),Kcr),NI(bSt(e),Wcr,Jcr);var o=n[4];if(o){var s=o[1];zwt(e,qcr),OI(bSt(e),zcr),NI(r,e,s[1]),OI(bSt(e),Qcr);var v=s[2];xI(Cgt[1],(function(t){return OI(r,t)}),e,v),OI(bSt(e),Zcr),zwt(e,rfr)}else zwt(e,tfr);OI(bSt(e),efr),OI(bSt(e),nfr),NI(bSt(e),afr,ufr);var l=n[5];if(l){zwt(e,ifr);var D=l[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Ccr)}),e,D),zwt(e,cfr)}else zwt(e,ffr);return OI(bSt(e),ofr),OI(bSt(e),sfr)})),mB(Txt,(function(r,t,e){var n=NI(Bxt,r,t);return NI(ESt(_cr),n,e)}));var Ixt=[0,Sxt,gxt,Bxt,Txt],Oxt=function r(t,e){return r.fun(t,e)},Nxt=function r(t){return r.fun(t)},xxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Lxt=function r(t,e,n){return r.fun(t,e,n)},Pxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Rxt=function r(t,e,n){return r.fun(t,e,n)},Mxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Gxt=function r(t,e,n){return r.fun(t,e,n)};mB(Oxt,(function(r,t){switch(t){case 0:return zwt(r,kcr);case 1:return zwt(r,ycr);default:return zwt(r,Acr)}})),mB(Nxt,(function(r){return NI(ESt(hcr),Oxt,r)})),mB(xxt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),vcr),OI(bSt(e),lcr);return fCt((function(n,u){return n&&OI(bSt(e),scr),LI(Pxt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,n[1]),OI(bSt(e),Dcr),OI(bSt(e),pcr)}var u=n[1];OI(bSt(e),bcr),OI(bSt(e),Ecr),NI(r,e,u[1]),OI(bSt(e),Fcr);var a=u[2];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),dcr),OI(bSt(e),mcr)})),mB(Lxt,(function(r,t,e){var n=NI(xxt,r,t);return NI(ESt(ocr),n,e)})),mB(Pxt,(function(r,t,e,n){OI(bSt(e),$ir),NI(bSt(e),Vir,Yir);var u=n[1];u?(zwt(e,Kir),NI(Oxt,e,u[1]),zwt(e,Jir)):zwt(e,Wir),OI(bSt(e),qir),OI(bSt(e),zir),NI(bSt(e),Zir,Qir);var a=n[2];if(a){zwt(e,rcr);var i=a[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,tcr)}else zwt(e,ecr);OI(bSt(e),ncr),OI(bSt(e),ucr),NI(bSt(e),icr,acr);var c=n[3];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),ccr),OI(bSt(e),fcr)})),mB(Rxt,(function(r,t,e){var n=NI(Pxt,r,t);return NI(ESt(Hir),n,e)})),mB(Mxt,(function(r,t,e,n){OI(bSt(e),sir),NI(bSt(e),lir,vir),NI(Oxt,e,n[1]),OI(bSt(e),Dir),OI(bSt(e),pir),NI(bSt(e),Eir,bir);var u=n[2];OI(bSt(e),Fir),NI(r,e,u[1]),OI(bSt(e),dir);var a=u[2];xI(Cgt[1],(function(t){return OI(r,t)}),e,a),OI(bSt(e),mir),OI(bSt(e),hir),OI(bSt(e),kir),NI(bSt(e),Air,yir);var i=n[3];if(i){zwt(e,_ir);var c=i[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),zwt(e,Cir)}else zwt(e,wir);OI(bSt(e),Sir),OI(bSt(e),gir),NI(bSt(e),Tir,Bir);var f=n[4];if(f){zwt(e,Iir);var o=f[1];LI(xxt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),zwt(e,Oir)}else zwt(e,Nir);OI(bSt(e),xir),OI(bSt(e),Lir),NI(bSt(e),Rir,Pir);var s=n[5];if(s){zwt(e,Mir);var v=s[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,oir)}),e,v),zwt(e,Gir)}else zwt(e,Uir);return OI(bSt(e),jir),OI(bSt(e),Xir)})),mB(Gxt,(function(r,t,e){var n=NI(Mxt,r,t);return NI(ESt(fir),n,e)}));var Uxt=[0,Oxt,Nxt,xxt,Lxt,Pxt,Rxt,Mxt,Gxt],jxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Xxt=function r(t,e,n){return r.fun(t,e,n)};mB(jxt,(function(r,t,e,n){OI(bSt(e),Xar),NI(bSt(e),$ar,Har);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Yar),OI(bSt(e),Var),NI(bSt(e),Jar,Kar);var a=n[2];if(a){zwt(e,War);var i=a[1];NI(bSt(e),qar,i),zwt(e,zar)}else zwt(e,Qar);OI(bSt(e),Zar),OI(bSt(e),rir),NI(bSt(e),eir,tir);var c=n[3];if(c){zwt(e,nir);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,jar)}),e,f),zwt(e,uir)}else zwt(e,air);return OI(bSt(e),iir),OI(bSt(e),cir)})),mB(Xxt,(function(r,t,e){var n=NI(jxt,r,t);return NI(ESt(Uar),n,e)}));var Hxt=[0,jxt,Xxt],$xt=function r(t,e,n){return r.fun(t,e,n)},Yxt=function r(t,e){return r.fun(t,e)};mB($xt,(function(r,t,e){OI(bSt(t),Oar),NI(bSt(t),xar,Nar);var n=e[1];if(n){zwt(t,Lar);var u=n[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Iar)}),t,u),zwt(t,Par)}else zwt(t,Rar);return OI(bSt(t),Mar),OI(bSt(t),Gar)})),mB(Yxt,(function(r,t){var e=OI($xt,r);return NI(ESt(Tar),e,t)}));var Vxt=[0,$xt,Yxt],Kxt=function r(t,e){return r.fun(t,e)},Jxt=function r(t){return r.fun(t)},Wxt=function r(t,e,n,u){return r.fun(t,e,n,u)},qxt=function r(t,e,n){return r.fun(t,e,n)},zxt=function r(t,e,n,u){return r.fun(t,e,n,u)},Qxt=function r(t,e,n){return r.fun(t,e,n)};mB(Kxt,(function(r,t){return zwt(r,0===t?Bar:gar)})),mB(Jxt,(function(r){return NI(ESt(Sar),Kxt,r)})),mB(Wxt,(function(r,t,e,n){OI(bSt(e),_ar),NI(r,e,n[1]),OI(bSt(e),Car);var u=n[2];return LI(zxt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),war)})),mB(qxt,(function(r,t,e){var n=NI(Wxt,r,t);return NI(ESt(Aar),n,e)})),mB(zxt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),eur);var u=n[1];return LI(LIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),nur);case 1:OI(bSt(e),uur);var a=n[1];return xI(WIt[1],(function(t){return OI(r,t)}),e,a),OI(bSt(e),aur);case 2:OI(bSt(e),iur);var i=n[1];return LI(Rgt[8],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),cur);case 3:OI(bSt(e),fur);var c=n[1];return xI(QIt[1],(function(t){return OI(r,t)}),e,c),OI(bSt(e),our);case 4:OI(bSt(e),sur);var f=n[1];return xI(tOt[1],(function(t){return OI(r,t)}),e,f),OI(bSt(e),vur);case 5:OI(bSt(e),lur);var o=n[1];return LI(VNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),OI(bSt(e),Dur);case 6:OI(bSt(e),pur);var s=n[1];return LI(Ixt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),OI(bSt(e),bur);case 7:OI(bSt(e),Eur);var v=n[1];return LI(QNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,v),OI(bSt(e),Fur);case 8:OI(bSt(e),dur);var l=n[1];return LI(HNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,l),OI(bSt(e),mur);case 9:OI(bSt(e),hur);var D=n[1];return LI(axt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,D),OI(bSt(e),kur);case 10:OI(bSt(e),yur);var p=n[1];return LI(fxt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,p),OI(bSt(e),Aur);case 11:OI(bSt(e),_ur);var b=n[1];return LI(cOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,b),OI(bSt(e),Cur);case 12:OI(bSt(e),wur);var E=n[1];return LI(sOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,E),OI(bSt(e),Sur);case 13:OI(bSt(e),gur);var F=n[1];return LI(WNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,F),OI(bSt(e),Bur);case 14:OI(bSt(e),Tur);var d=n[1];return LI(JOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,d),OI(bSt(e),Iur);case 15:OI(bSt(e),Our);var m=n[1];return xI(Vxt[1],(function(t){return OI(r,t)}),e,m),OI(bSt(e),Nur);case 16:OI(bSt(e),xur);var h=n[1];return LI(UNt[7],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,h),OI(bSt(e),Lur);case 17:OI(bSt(e),Pur);var k=n[1];return LI(wxt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,k),OI(bSt(e),Rur);case 18:OI(bSt(e),Mur);var y=n[1];return LI(kxt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,y),OI(bSt(e),Gur);case 19:OI(bSt(e),Uur);var A=n[1];return LI(Hxt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,A),OI(bSt(e),jur);case 20:OI(bSt(e),Xur);var _=n[1];return LI(ZOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,_),OI(bSt(e),Hur);case 21:OI(bSt(e),$ur);var C=n[1];return LI(uNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,C),OI(bSt(e),Yur);case 22:OI(bSt(e),Vur);var w=n[1];return LI(oNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,w),OI(bSt(e),Kur);case 23:OI(bSt(e),Jur);var S=n[1];return LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,S),OI(bSt(e),Wur);case 24:OI(bSt(e),qur);var g=n[1];return LI(HIt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,g),OI(bSt(e),zur);case 25:OI(bSt(e),Qur);var B=n[1];return LI(Uxt[7],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,B),OI(bSt(e),Zur);case 26:OI(bSt(e),rar);var T=n[1];return LI(HNt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,T),OI(bSt(e),tar);case 27:OI(bSt(e),ear);var I=n[1];return LI(VIt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,I),OI(bSt(e),nar);case 28:OI(bSt(e),uar);var O=n[1];return LI(kOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,O),OI(bSt(e),aar);case 29:OI(bSt(e),iar);var N=n[1];return LI(dOt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,N),OI(bSt(e),car);case 30:OI(bSt(e),far);var x=n[1];return LI(_Ot[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,x),OI(bSt(e),oar);case 31:OI(bSt(e),sar);var L=n[1];return LI(OOt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,L),OI(bSt(e),lar);case 32:OI(bSt(e),Dar);var P=n[1];return LI(cOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,P),OI(bSt(e),par);case 33:OI(bSt(e),bar);var R=n[1];return LI(sOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,R),OI(bSt(e),Ear);case 34:OI(bSt(e),Far);var M=n[1];return LI(XOt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,M),OI(bSt(e),dar);case 35:OI(bSt(e),mar);var G=n[1];return LI(YOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,G),OI(bSt(e),har);default:OI(bSt(e),kar);var U=n[1];return LI(uOt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,U),OI(bSt(e),yar)}})),mB(Qxt,(function(r,t,e){var n=NI(zxt,r,t);return NI(ESt(tur),n,e)})),xI(USt,ZYr,Ogt,[0,LIt,HIt,VIt,WIt,QIt,tOt,uOt,cOt,sOt,dOt,kOt,_Ot,OOt,XOt,YOt,JOt,ZOt,uNt,oNt,UNt,HNt,VNt,WNt,QNt,axt,fxt,kxt,wxt,Ixt,Uxt,Hxt,Vxt,Kxt,Jxt,Wxt,qxt,zxt,Qxt]);var Zxt=function r(t,e,n,u){return r.fun(t,e,n,u)},rLt=function r(t,e,n){return r.fun(t,e,n)},tLt=function r(t,e,n){return r.fun(t,e,n)},eLt=function r(t,e){return r.fun(t,e)};mB(Zxt,(function(r,t,e,n){OI(bSt(e),Qnr),NI(t,e,n[1]),OI(bSt(e),Znr);var u=n[2];return xI(tLt,(function(t){return OI(r,t)}),e,u),OI(bSt(e),rur)})),mB(rLt,(function(r,t,e){var n=NI(Zxt,r,t);return NI(ESt(znr),n,e)})),mB(tLt,(function(r,t,e){OI(bSt(t),Hnr),NI(bSt(t),Ynr,$nr);var n=e[1];if(n){zwt(t,Vnr);var u=n[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Xnr)}),t,u),zwt(t,Knr)}else zwt(t,Jnr);return OI(bSt(t),Wnr),OI(bSt(t),qnr)})),mB(eLt,(function(r,t){var e=OI(tLt,r);return NI(ESt(jnr),e,t)}));var nLt=[0,Zxt,rLt,tLt,eLt],uLt=function r(t,e,n,u){return r.fun(t,e,n,u)},aLt=function r(t,e,n){return r.fun(t,e,n)};mB(uLt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),Rnr);var u=n[1];return LI(Igt[13],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Mnr)}OI(bSt(e),Gnr);var a=n[1];return LI(nLt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Unr)})),mB(aLt,(function(r,t,e){var n=NI(uLt,r,t);return NI(ESt(Pnr),n,e)}));var iLt=[0,nLt,uLt,aLt],cLt=function r(t,e,n,u){return r.fun(t,e,n,u)},fLt=function r(t,e,n){return r.fun(t,e,n)},oLt=function r(t,e,n,u){return r.fun(t,e,n,u)},sLt=function r(t,e,n){return r.fun(t,e,n)};mB(cLt,(function(r,t,e,n){OI(bSt(e),Nnr),NI(r,e,n[1]),OI(bSt(e),xnr);var u=n[2];return LI(oLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Lnr)})),mB(fLt,(function(r,t,e){var n=NI(cLt,r,t);return NI(ESt(Onr),n,e)})),mB(oLt,(function(r,t,e,n){OI(bSt(e),dnr),NI(bSt(e),hnr,mnr);var u=n[1];OI(bSt(e),knr);fCt((function(n,u){return n&&OI(bSt(e),Fnr),LI(iLt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),ynr),OI(bSt(e),Anr),OI(bSt(e),_nr),NI(bSt(e),wnr,Cnr);var a=n[2];if(a){zwt(e,Snr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),bnr);return fCt((function(e,n){return e&&OI(bSt(t),pnr),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),Enr)}),e,i),zwt(e,gnr)}else zwt(e,Bnr);return OI(bSt(e),Tnr),OI(bSt(e),Inr)})),mB(sLt,(function(r,t,e){var n=NI(oLt,r,t);return NI(ESt(Dnr),n,e)}));var vLt=function r(t,e,n,u){return r.fun(t,e,n,u)},lLt=function r(t,e,n){return r.fun(t,e,n)},DLt=function r(t,e,n,u){return r.fun(t,e,n,u)},pLt=function r(t,e,n){return r.fun(t,e,n)},bLt=[0,cLt,fLt,oLt,sLt];mB(vLt,(function(r,t,e,n){OI(bSt(e),snr),NI(r,e,n[1]),OI(bSt(e),vnr);var u=n[2];return LI(DLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),lnr)})),mB(lLt,(function(r,t,e){var n=NI(vLt,r,t);return NI(ESt(onr),n,e)})),mB(DLt,(function(r,t,e,n){OI(bSt(e),zer),NI(bSt(e),Zer,Qer);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),rnr),OI(bSt(e),tnr),NI(bSt(e),nnr,enr);var a=n[2];if(a){zwt(e,unr);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,qer)}),e,i),zwt(e,anr)}else zwt(e,inr);return OI(bSt(e),cnr),OI(bSt(e),fnr)})),mB(pLt,(function(r,t,e){var n=NI(DLt,r,t);return NI(ESt(Wer),n,e)}));var ELt=[0,vLt,lLt,DLt,pLt],FLt=function r(t,e,n,u){return r.fun(t,e,n,u)},dLt=function r(t,e,n){return r.fun(t,e,n)};mB(FLt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),Her);var u=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),$er);case 1:OI(bSt(e),Yer);var a=n[1];return LI(ELt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Ver);default:return OI(bSt(e),Ker),NI(r,e,n[1]),OI(bSt(e),Jer)}})),mB(dLt,(function(r,t,e){var n=NI(FLt,r,t);return NI(ESt(Xer),n,e)}));var mLt=function r(t,e,n,u){return r.fun(t,e,n,u)},hLt=function r(t,e,n){return r.fun(t,e,n)};mB(mLt,(function(r,t,e,n){OI(bSt(e),ger),NI(bSt(e),Ter,Ber);var u=n[1];OI(bSt(e),Ier);fCt((function(n,u){return n&&OI(bSt(e),Ser),LI(FLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),Oer),OI(bSt(e),Ner),OI(bSt(e),xer),NI(bSt(e),Per,Ler);var a=n[2];if(a){zwt(e,Rer);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),Cer);return fCt((function(e,n){return e&&OI(bSt(t),_er),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),wer)}),e,i),zwt(e,Mer)}else zwt(e,Ger);return OI(bSt(e),Uer),OI(bSt(e),jer)})),mB(hLt,(function(r,t,e){var n=NI(mLt,r,t);return NI(ESt(Aer),n,e)}));var kLt=[0,FLt,dLt,mLt,hLt],yLt=function r(t,e){return r.fun(t,e)},ALt=function r(t){return r.fun(t)},_Lt=function r(t,e,n){return r.fun(t,e,n)},CLt=function r(t,e){return r.fun(t,e)},wLt=function r(t,e){return r.fun(t,e)},SLt=function r(t){return r.fun(t)};mB(yLt,(function(r,t){OI(bSt(r),ler),NI(bSt(r),per,Der);var e=t[1];NI(bSt(r),ber,e),OI(bSt(r),Eer),OI(bSt(r),Fer),NI(bSt(r),mer,der);var n=t[2];return NI(bSt(r),her,n),OI(bSt(r),ker),OI(bSt(r),yer)})),mB(ALt,(function(r){return NI(ESt(ver),yLt,r)})),mB(_Lt,(function(r,t,e){return OI(bSt(t),fer),NI(r,t,e[1]),OI(bSt(t),oer),NI(wLt,t,e[2]),OI(bSt(t),ser)})),mB(CLt,(function(r,t){var e=OI(_Lt,r);return NI(ESt(cer),e,t)})),mB(wLt,(function(r,t){OI(bSt(r),ztr),NI(bSt(r),Ztr,Qtr),NI(yLt,r,t[1]),OI(bSt(r),rer),OI(bSt(r),ter),NI(bSt(r),ner,eer);var e=t[2];return NI(bSt(r),uer,e),OI(bSt(r),aer),OI(bSt(r),ier)})),mB(SLt,(function(r){return NI(ESt(qtr),wLt,r)}));var gLt=[0,yLt,ALt,_Lt,CLt,wLt,SLt],BLt=function r(t,e,n,u){return r.fun(t,e,n,u)},TLt=function r(t,e,n){return r.fun(t,e,n)};mB(BLt,(function(r,t,e,n){OI(bSt(e),Ttr),NI(bSt(e),Otr,Itr);var u=n[1];OI(bSt(e),Ntr);fCt((function(t,n){return t&&OI(bSt(e),Btr),xI(gLt[3],(function(t){return OI(r,t)}),e,n),1}),0,u),OI(bSt(e),xtr),OI(bSt(e),Ltr),OI(bSt(e),Ptr),NI(bSt(e),Mtr,Rtr);var a=n[2];OI(bSt(e),Gtr);fCt((function(n,u){return n&&OI(bSt(e),gtr),LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,a),OI(bSt(e),Utr),OI(bSt(e),jtr),OI(bSt(e),Xtr),NI(bSt(e),$tr,Htr);var i=n[3];if(i){zwt(e,Ytr);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Str)}),e,c),zwt(e,Vtr)}else zwt(e,Ktr);return OI(bSt(e),Jtr),OI(bSt(e),Wtr)})),mB(TLt,(function(r,t,e){var n=NI(BLt,r,t);return NI(ESt(wtr),n,e)}));var ILt=[0,gLt,BLt,TLt],OLt=function r(t,e,n,u){return r.fun(t,e,n,u)},NLt=function r(t,e,n){return r.fun(t,e,n)};mB(OLt,(function(r,t,e,n){OI(bSt(e),ctr),NI(bSt(e),otr,ftr);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),str),OI(bSt(e),vtr),NI(bSt(e),Dtr,ltr);var a=n[2];OI(bSt(e),ptr),NI(r,e,a[1]),OI(bSt(e),btr);var i=a[2];LI(ILt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),Etr),OI(bSt(e),Ftr),OI(bSt(e),dtr),NI(bSt(e),htr,mtr);var c=n[3];if(c){zwt(e,ktr);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,itr)}),e,f),zwt(e,ytr)}else zwt(e,Atr);return OI(bSt(e),_tr),OI(bSt(e),Ctr)})),mB(NLt,(function(r,t,e){var n=NI(OLt,r,t);return NI(ESt(atr),n,e)}));var xLt=[0,OLt,NLt],LLt=function r(t,e,n,u){return r.fun(t,e,n,u)},PLt=function r(t,e,n){return r.fun(t,e,n)},RLt=function r(t,e,n,u){return r.fun(t,e,n,u)},MLt=function r(t,e,n){return r.fun(t,e,n)},GLt=function r(t,e,n,u){return r.fun(t,e,n,u)},ULt=function r(t,e,n){return r.fun(t,e,n)};mB(LLt,(function(r,t,e,n){switch(n[0]){case 0:var u=n[1];OI(bSt(e),Jrr),OI(bSt(e),Wrr),NI(t,e,u[1]),OI(bSt(e),qrr);var a=u[2];return xI(_gt[2],(function(t){return OI(r,t)}),e,a),OI(bSt(e),zrr),OI(bSt(e),Qrr);case 1:OI(bSt(e),Zrr);var i=n[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),rtr);case 2:OI(bSt(e),ttr);var c=n[1];return xI(Agt[1],(function(t){return OI(r,t)}),e,c),OI(bSt(e),etr);default:OI(bSt(e),ntr);var f=n[1];return LI(Tgt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),OI(bSt(e),utr)}})),mB(PLt,(function(r,t,e){var n=NI(LLt,r,t);return NI(ESt(Krr),n,e)})),mB(RLt,(function(r,t,e,n){OI(bSt(e),$rr),NI(r,e,n[1]),OI(bSt(e),Yrr);var u=n[2];return LI(GLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Vrr)})),mB(MLt,(function(r,t,e){var n=NI(RLt,r,t);return NI(ESt(Hrr),n,e)})),mB(GLt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),N9),NI(bSt(e),L9,x9);var u=n[1];LI(LLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),P9),OI(bSt(e),R9),NI(bSt(e),G9,M9);var a=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),U9),OI(bSt(e),j9),NI(bSt(e),H9,X9);var i=n[3];return NI(bSt(e),$9,i),OI(bSt(e),Y9),OI(bSt(e),V9);case 1:var c=n[2];OI(bSt(e),K9),NI(bSt(e),W9,J9);var f=n[1];LI(LLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),OI(bSt(e),q9),OI(bSt(e),z9),NI(bSt(e),Z9,Q9),OI(bSt(e),rrr),NI(r,e,c[1]),OI(bSt(e),trr);var o=c[2];return LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),OI(bSt(e),err),OI(bSt(e),nrr),OI(bSt(e),urr);case 2:var s=n[3],v=n[2];OI(bSt(e),arr),NI(bSt(e),crr,irr);var l=n[1];LI(LLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,l),OI(bSt(e),frr),OI(bSt(e),orr),NI(bSt(e),vrr,srr),OI(bSt(e),lrr),NI(r,e,v[1]),OI(bSt(e),Drr);var D=v[2];if(LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,D),OI(bSt(e),prr),OI(bSt(e),brr),OI(bSt(e),Err),NI(bSt(e),drr,Frr),s){zwt(e,mrr);var p=s[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,O9)}),e,p),zwt(e,hrr)}else zwt(e,krr);return OI(bSt(e),yrr),OI(bSt(e),Arr);default:var b=n[3],E=n[2];OI(bSt(e),_rr),NI(bSt(e),wrr,Crr);var F=n[1];LI(LLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,F),OI(bSt(e),Srr),OI(bSt(e),grr),NI(bSt(e),Trr,Brr),OI(bSt(e),Irr),NI(r,e,E[1]),OI(bSt(e),Orr);var d=E[2];if(LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,d),OI(bSt(e),Nrr),OI(bSt(e),xrr),OI(bSt(e),Lrr),NI(bSt(e),Rrr,Prr),b){zwt(e,Mrr);var m=b[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,I9)}),e,m),zwt(e,Grr)}else zwt(e,Urr);return OI(bSt(e),jrr),OI(bSt(e),Xrr)}})),mB(ULt,(function(r,t,e){var n=NI(GLt,r,t);return NI(ESt(T9),n,e)}));var jLt=[0,LLt,PLt,RLt,MLt,GLt,ULt],XLt=function r(t,e,n,u){return r.fun(t,e,n,u)},HLt=function r(t,e,n){return r.fun(t,e,n)},$Lt=function r(t,e,n,u){return r.fun(t,e,n,u)},YLt=function r(t,e,n){return r.fun(t,e,n)};mB(XLt,(function(r,t,e,n){OI(bSt(e),S9),NI(r,e,n[1]),OI(bSt(e),g9);var u=n[2];return LI($Lt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),B9)})),mB(HLt,(function(r,t,e){var n=NI(XLt,r,t);return NI(ESt(w9),n,e)})),mB($Lt,(function(r,t,e,n){OI(bSt(e),p9),NI(bSt(e),E9,b9);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),F9),OI(bSt(e),d9),NI(bSt(e),h9,m9);var a=n[2];if(a){zwt(e,k9);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,D9)}),e,i),zwt(e,y9)}else zwt(e,A9);return OI(bSt(e),_9),OI(bSt(e),C9)})),mB(YLt,(function(r,t,e){var n=NI($Lt,r,t);return NI(ESt(l9),n,e)}));var VLt=[0,XLt,HLt,$Lt,YLt],KLt=function r(t,e,n,u){return r.fun(t,e,n,u)},JLt=function r(t,e,n){return r.fun(t,e,n)},WLt=function r(t,e,n,u){return r.fun(t,e,n,u)},qLt=function r(t,e,n){return r.fun(t,e,n)};mB(KLt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),f9);var u=n[1];return LI(jLt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),o9)}OI(bSt(e),s9);var a=n[1];return LI(VLt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),v9)})),mB(JLt,(function(r,t,e){var n=NI(KLt,r,t);return NI(ESt(c9),n,e)})),mB(WLt,(function(r,t,e,n){OI(bSt(e),K5),NI(bSt(e),W5,J5);var u=n[1];OI(bSt(e),q5);fCt((function(n,u){return n&&OI(bSt(e),V5),LI(KLt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),z5),OI(bSt(e),Q5),OI(bSt(e),Z5),NI(bSt(e),t9,r9);var a=n[2];if(a){zwt(e,e9);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),$5);return fCt((function(e,n){return e&&OI(bSt(t),H5),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),Y5)}),e,i),zwt(e,n9)}else zwt(e,u9);return OI(bSt(e),a9),OI(bSt(e),i9)})),mB(qLt,(function(r,t,e){var n=NI(WLt,r,t);return NI(ESt(X5),n,e)}));var zLt=[0,jLt,VLt,KLt,JLt,WLt,qLt],QLt=function r(t,e,n,u){return r.fun(t,e,n,u)},ZLt=function r(t,e,n){return r.fun(t,e,n)};mB(QLt,(function(r,t,e,n){OI(bSt(e),g5),NI(bSt(e),T5,B5);var u=n[1];OI(bSt(e),I5);fCt((function(n,u){return n&&OI(bSt(e),S5),LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),O5),OI(bSt(e),N5),OI(bSt(e),x5),NI(bSt(e),P5,L5);var a=n[2];if(a){zwt(e,R5);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,w5)}),e,i),zwt(e,M5)}else zwt(e,G5);return OI(bSt(e),U5),OI(bSt(e),j5)})),mB(ZLt,(function(r,t,e){var n=NI(QLt,r,t);return NI(ESt(C5),n,e)}));var rPt=[0,QLt,ZLt],tPt=function r(t,e){return r.fun(t,e)},ePt=function r(t){return r.fun(t)},nPt=function r(t,e,n,u){return r.fun(t,e,n,u)},uPt=function r(t,e,n){return r.fun(t,e,n)};mB(tPt,(function(r,t){switch(t){case 0:return zwt(r,F5);case 1:return zwt(r,d5);case 2:return zwt(r,m5);case 3:return zwt(r,h5);case 4:return zwt(r,k5);case 5:return zwt(r,y5);case 6:return zwt(r,A5);default:return zwt(r,_5)}})),mB(ePt,(function(r){return NI(ESt(E5),tPt,r)})),mB(nPt,(function(r,t,e,n){OI(bSt(e),r5),NI(bSt(e),e5,t5),NI(tPt,e,n[1]),OI(bSt(e),n5),OI(bSt(e),u5),NI(bSt(e),i5,a5);var u=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),c5),OI(bSt(e),f5),NI(bSt(e),s5,o5);var a=n[3];if(a){zwt(e,v5);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Z6)}),e,i),zwt(e,l5)}else zwt(e,D5);return OI(bSt(e),p5),OI(bSt(e),b5)})),mB(uPt,(function(r,t,e){var n=NI(nPt,r,t);return NI(ESt(Q6),n,e)}));var aPt=[0,tPt,ePt,nPt,uPt],iPt=function r(t,e){return r.fun(t,e)},cPt=function r(t){return r.fun(t)},fPt=function r(t,e,n,u){return r.fun(t,e,n,u)},oPt=function r(t,e,n){return r.fun(t,e,n)};mB(iPt,(function(r,t){switch(t){case 0:return zwt(r,T6);case 1:return zwt(r,I6);case 2:return zwt(r,O6);case 3:return zwt(r,N6);case 4:return zwt(r,x6);case 5:return zwt(r,L6);case 6:return zwt(r,P6);case 7:return zwt(r,R6);case 8:return zwt(r,M6);case 9:return zwt(r,G6);case 10:return zwt(r,U6);case 11:return zwt(r,j6);case 12:return zwt(r,X6);case 13:return zwt(r,H6);case 14:return zwt(r,$6);case 15:return zwt(r,Y6);case 16:return zwt(r,V6);case 17:return zwt(r,K6);case 18:return zwt(r,J6);case 19:return zwt(r,W6);case 20:return zwt(r,q6);default:return zwt(r,z6)}})),mB(cPt,(function(r){return NI(ESt(B6),iPt,r)})),mB(fPt,(function(r,t,e,n){OI(bSt(e),o6),NI(bSt(e),v6,s6),NI(iPt,e,n[1]),OI(bSt(e),l6),OI(bSt(e),D6),NI(bSt(e),b6,p6);var u=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),E6),OI(bSt(e),F6),NI(bSt(e),m6,d6);var a=n[3];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),h6),OI(bSt(e),k6),NI(bSt(e),A6,y6);var i=n[4];if(i){zwt(e,_6);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,f6)}),e,c),zwt(e,C6)}else zwt(e,w6);return OI(bSt(e),S6),OI(bSt(e),g6)})),mB(oPt,(function(r,t,e){var n=NI(fPt,r,t);return NI(ESt(c6),n,e)}));var sPt=[0,iPt,cPt,fPt,oPt],vPt=function r(t,e){return r.fun(t,e)},lPt=function r(t){return r.fun(t)},DPt=function r(t,e,n,u){return r.fun(t,e,n,u)},pPt=function r(t,e,n){return r.fun(t,e,n)};mB(vPt,(function(r,t){switch(t){case 0:return zwt(r,W4);case 1:return zwt(r,q4);case 2:return zwt(r,z4);case 3:return zwt(r,Q4);case 4:return zwt(r,Z4);case 5:return zwt(r,r6);case 6:return zwt(r,t6);case 7:return zwt(r,e6);case 8:return zwt(r,n6);case 9:return zwt(r,u6);case 10:return zwt(r,a6);default:return zwt(r,i6)}})),mB(lPt,(function(r){return NI(ESt(J4),vPt,r)})),mB(DPt,(function(r,t,e,n){OI(bSt(e),C4),NI(bSt(e),S4,w4);var u=n[1];u?(zwt(e,g4),NI(vPt,e,u[1]),zwt(e,B4)):zwt(e,T4),OI(bSt(e),I4),OI(bSt(e),O4),NI(bSt(e),x4,N4);var a=n[2];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),L4),OI(bSt(e),P4),NI(bSt(e),M4,R4);var i=n[3];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),G4),OI(bSt(e),U4),NI(bSt(e),X4,j4);var c=n[4];if(c){zwt(e,H4);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,_4)}),e,f),zwt(e,$4)}else zwt(e,Y4);return OI(bSt(e),V4),OI(bSt(e),K4)})),mB(pPt,(function(r,t,e){var n=NI(DPt,r,t);return NI(ESt(A4),n,e)}));var bPt=[0,vPt,lPt,DPt,pPt],EPt=function r(t,e){return r.fun(t,e)},FPt=function r(t){return r.fun(t)},dPt=function r(t,e,n,u){return r.fun(t,e,n,u)},mPt=function r(t,e,n){return r.fun(t,e,n)};mB(EPt,(function(r,t){return zwt(r,0===t?y4:k4)})),mB(FPt,(function(r){return NI(ESt(h4),EPt,r)})),mB(dPt,(function(r,t,e,n){OI(bSt(e),Z3),NI(bSt(e),t4,r4),NI(EPt,e,n[1]),OI(bSt(e),e4),OI(bSt(e),n4),NI(bSt(e),a4,u4);var u=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),i4),OI(bSt(e),c4),NI(bSt(e),o4,f4);var a=n[3];NI(bSt(e),s4,a),OI(bSt(e),v4),OI(bSt(e),l4),NI(bSt(e),p4,D4);var i=n[4];if(i){zwt(e,b4);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Q3)}),e,c),zwt(e,E4)}else zwt(e,F4);return OI(bSt(e),d4),OI(bSt(e),m4)})),mB(mPt,(function(r,t,e){var n=NI(dPt,r,t);return NI(ESt(z3),n,e)}));var hPt=[0,EPt,FPt,dPt,mPt],kPt=function r(t,e){return r.fun(t,e)},yPt=function r(t){return r.fun(t)},APt=function r(t,e,n,u){return r.fun(t,e,n,u)},_Pt=function r(t,e,n){return r.fun(t,e,n)};mB(kPt,(function(r,t){switch(t){case 0:return zwt(r,J3);case 1:return zwt(r,W3);default:return zwt(r,q3)}})),mB(yPt,(function(r){return NI(ESt(K3),kPt,r)})),mB(APt,(function(r,t,e,n){OI(bSt(e),S3),NI(bSt(e),B3,g3),NI(kPt,e,n[1]),OI(bSt(e),T3),OI(bSt(e),I3),NI(bSt(e),N3,O3);var u=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),x3),OI(bSt(e),L3),NI(bSt(e),R3,P3);var a=n[3];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),M3),OI(bSt(e),G3),NI(bSt(e),j3,U3);var i=n[4];if(i){zwt(e,X3);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,w3)}),e,c),zwt(e,H3)}else zwt(e,$3);return OI(bSt(e),Y3),OI(bSt(e),V3)})),mB(_Pt,(function(r,t,e){var n=NI(APt,r,t);return NI(ESt(C3),n,e)}));var CPt=[0,kPt,yPt,APt,_Pt],wPt=function r(t,e,n,u){return r.fun(t,e,n,u)},SPt=function r(t,e,n){return r.fun(t,e,n)};mB(wPt,(function(r,t,e,n){OI(bSt(e),a3),NI(bSt(e),c3,i3);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),f3),OI(bSt(e),o3),NI(bSt(e),v3,s3);var a=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),l3),OI(bSt(e),D3),NI(bSt(e),b3,p3);var i=n[3];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),E3),OI(bSt(e),F3),NI(bSt(e),m3,d3);var c=n[4];if(c){zwt(e,h3);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,u3)}),e,f),zwt(e,k3)}else zwt(e,y3);return OI(bSt(e),A3),OI(bSt(e),_3)})),mB(SPt,(function(r,t,e){var n=NI(wPt,r,t);return NI(ESt(n3),n,e)}));var gPt=[0,wPt,SPt],BPt=function r(t,e,n,u){return r.fun(t,e,n,u)},TPt=function r(t,e,n){return r.fun(t,e,n)};mB(BPt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),Z8);var u=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),r3)}OI(bSt(e),t3);var a=n[1];return LI(ELt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),e3)})),mB(TPt,(function(r,t,e){var n=NI(BPt,r,t);return NI(ESt(Q8),n,e)}));var IPt=function r(t,e,n,u){return r.fun(t,e,n,u)},OPt=function r(t,e,n){return r.fun(t,e,n)},NPt=function r(t,e,n,u){return r.fun(t,e,n,u)},xPt=function r(t,e,n){return r.fun(t,e,n)};mB(IPt,(function(r,t,e,n){OI(bSt(e),W8),NI(r,e,n[1]),OI(bSt(e),q8);var u=n[2];return LI(NPt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),z8)})),mB(OPt,(function(r,t,e){var n=NI(IPt,r,t);return NI(ESt(J8),n,e)})),mB(NPt,(function(r,t,e,n){OI(bSt(e),x8),NI(bSt(e),P8,L8);var u=n[1];OI(bSt(e),R8);fCt((function(n,u){return n&&OI(bSt(e),N8),LI(BPt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),M8),OI(bSt(e),G8),OI(bSt(e),U8),NI(bSt(e),X8,j8);var a=n[2];if(a){zwt(e,H8);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),I8);return fCt((function(e,n){return e&&OI(bSt(t),T8),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),O8)}),e,i),zwt(e,$8)}else zwt(e,Y8);return OI(bSt(e),V8),OI(bSt(e),K8)})),mB(xPt,(function(r,t,e){var n=NI(NPt,r,t);return NI(ESt(B8),n,e)}));var LPt=[0,IPt,OPt,NPt,xPt],PPt=function r(t,e,n,u){return r.fun(t,e,n,u)},RPt=function r(t,e,n){return r.fun(t,e,n)};mB(PPt,(function(r,t,e,n){OI(bSt(e),n8),NI(bSt(e),a8,u8);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),i8),OI(bSt(e),c8),NI(bSt(e),o8,f8);var a=n[2];if(a){zwt(e,s8);var i=a[1];LI(Ngt[2][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,v8)}else zwt(e,l8);OI(bSt(e),D8),OI(bSt(e),p8),NI(bSt(e),E8,b8);var c=n[3];if(c){zwt(e,F8);var f=c[1];LI(LPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),zwt(e,d8)}else zwt(e,m8);OI(bSt(e),h8),OI(bSt(e),k8),NI(bSt(e),A8,y8);var o=n[4];if(o){zwt(e,_8);var s=o[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,e8)}),e,s),zwt(e,C8)}else zwt(e,w8);return OI(bSt(e),S8),OI(bSt(e),g8)})),mB(RPt,(function(r,t,e){var n=NI(PPt,r,t);return NI(ESt(t8),n,e)}));var MPt=[0,PPt,RPt],GPt=function r(t,e,n,u){return r.fun(t,e,n,u)},UPt=function r(t,e,n){return r.fun(t,e,n)};mB(GPt,(function(r,t,e,n){OI(bSt(e),O7),NI(bSt(e),x7,N7);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),L7),OI(bSt(e),P7),NI(bSt(e),M7,R7);var a=n[2];if(a){zwt(e,G7);var i=a[1];LI(Ngt[2][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,U7)}else zwt(e,j7);OI(bSt(e),X7),OI(bSt(e),H7),NI(bSt(e),Y7,$7);var c=n[3];LI(LPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),V7),OI(bSt(e),K7),NI(bSt(e),W7,J7);var f=n[4];if(f){zwt(e,q7);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,I7)}),e,o),zwt(e,z7)}else zwt(e,Q7);return OI(bSt(e),Z7),OI(bSt(e),r8)})),mB(UPt,(function(r,t,e){var n=NI(GPt,r,t);return NI(ESt(T7),n,e)}));var jPt=[0,GPt,UPt],XPt=function r(t,e,n,u){return r.fun(t,e,n,u)},HPt=function r(t,e,n){return r.fun(t,e,n)};mB(XPt,(function(r,t,e,n){OI(bSt(e),h7),NI(bSt(e),y7,k7);var u=n[1];LI(jPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),A7),OI(bSt(e),_7),NI(bSt(e),w7,C7);var a=n[2];return NI(bSt(e),S7,a),OI(bSt(e),g7),OI(bSt(e),B7)})),mB(HPt,(function(r,t,e){var n=NI(XPt,r,t);return NI(ESt(m7),n,e)}));var $Pt=[0,XPt,HPt],YPt=function r(t,e,n,u){return r.fun(t,e,n,u)},VPt=function r(t,e,n){return r.fun(t,e,n)},KPt=function r(t,e,n,u){return r.fun(t,e,n,u)},JPt=function r(t,e,n){return r.fun(t,e,n)};mB(YPt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),D7);var u=n[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),p7);case 1:OI(bSt(e),b7);var a=n[1];return xI(Agt[1],(function(t){return OI(r,t)}),e,a),OI(bSt(e),E7);default:OI(bSt(e),F7);var i=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),d7)}})),mB(VPt,(function(r,t,e){var n=NI(YPt,r,t);return NI(ESt(l7),n,e)})),mB(KPt,(function(r,t,e,n){OI(bSt(e),q2),NI(bSt(e),Q2,z2);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Z2),OI(bSt(e),r7),NI(bSt(e),e7,t7);var a=n[2];LI(YPt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),n7),OI(bSt(e),u7),NI(bSt(e),i7,a7);var i=n[3];if(i){zwt(e,c7);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,W2)}),e,c),zwt(e,f7)}else zwt(e,o7);return OI(bSt(e),s7),OI(bSt(e),v7)})),mB(JPt,(function(r,t,e){var n=NI(KPt,r,t);return NI(ESt(J2),n,e)}));var WPt=[0,YPt,VPt,KPt,JPt],qPt=function r(t,e,n,u){return r.fun(t,e,n,u)},zPt=function r(t,e,n){return r.fun(t,e,n)};mB(qPt,(function(r,t,e,n){OI(bSt(e),M2),NI(bSt(e),U2,G2);var u=n[1];LI(WPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),j2),OI(bSt(e),X2),NI(bSt(e),$2,H2);var a=n[2];return NI(bSt(e),Y2,a),OI(bSt(e),V2),OI(bSt(e),K2)})),mB(zPt,(function(r,t,e){var n=NI(qPt,r,t);return NI(ESt(R2),n,e)}));var QPt=[0,qPt,zPt],ZPt=function r(t,e,n,u){return r.fun(t,e,n,u)},rRt=function r(t,e,n){return r.fun(t,e,n)};mB(ZPt,(function(r,t,e,n){OI(bSt(e),F2),NI(bSt(e),m2,d2);var u=n[1];if(u){zwt(e,h2);var a=u[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,k2)}else zwt(e,y2);OI(bSt(e),A2),OI(bSt(e),_2),NI(bSt(e),w2,C2);var i=n[2];if(i){zwt(e,S2);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,E2)}),e,c),zwt(e,g2)}else zwt(e,B2);OI(bSt(e),T2),OI(bSt(e),I2),NI(bSt(e),N2,O2);var f=n[3];return NI(bSt(e),x2,f),OI(bSt(e),L2),OI(bSt(e),P2)})),mB(rRt,(function(r,t,e){var n=NI(ZPt,r,t);return NI(ESt(b2),n,e)}));var tRt=[0,ZPt,rRt],eRt=function r(t,e,n,u){return r.fun(t,e,n,u)},nRt=function r(t,e,n){return r.fun(t,e,n)},uRt=function r(t,e,n,u){return r.fun(t,e,n,u)},aRt=function r(t,e,n){return r.fun(t,e,n)};mB(eRt,(function(r,t,e,n){OI(bSt(e),l2),NI(r,e,n[1]),OI(bSt(e),D2);var u=n[2];return LI(uRt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),p2)})),mB(nRt,(function(r,t,e){var n=NI(eRt,r,t);return NI(ESt(v2),n,e)})),mB(uRt,(function(r,t,e,n){OI(bSt(e),z1),NI(bSt(e),Z1,Q1);var u=n[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),r2),OI(bSt(e),t2),NI(bSt(e),n2,e2);var a=n[2];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),u2),OI(bSt(e),a2),NI(bSt(e),c2,i2);var i=n[3];return NI(bSt(e),f2,i),OI(bSt(e),o2),OI(bSt(e),s2)})),mB(aRt,(function(r,t,e){var n=NI(uRt,r,t);return NI(ESt(q1),n,e)}));var iRt=[0,eRt,nRt,uRt,aRt],cRt=function r(t,e,n,u){return r.fun(t,e,n,u)},fRt=function r(t,e,n){return r.fun(t,e,n)};mB(cRt,(function(r,t,e,n){OI(bSt(e),P1),NI(bSt(e),M1,R1);var u=n[1];OI(bSt(e),G1);fCt((function(n,u){return n&&OI(bSt(e),L1),LI(iRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),U1),OI(bSt(e),j1),OI(bSt(e),X1),NI(bSt(e),$1,H1);var a=n[2];if(a){zwt(e,Y1);var i=a[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,V1)}else zwt(e,K1);return OI(bSt(e),J1),OI(bSt(e),W1)})),mB(fRt,(function(r,t,e){var n=NI(cRt,r,t);return NI(ESt(x1),n,e)}));var oRt=[0,iRt,cRt,fRt],sRt=function r(t,e,n,u){return r.fun(t,e,n,u)},vRt=function r(t,e,n){return r.fun(t,e,n)};mB(sRt,(function(r,t,e,n){OI(bSt(e),h1),NI(bSt(e),y1,k1);var u=n[1];OI(bSt(e),A1);fCt((function(n,u){return n&&OI(bSt(e),m1),LI(oRt[1][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),_1),OI(bSt(e),C1),OI(bSt(e),w1),NI(bSt(e),g1,S1);var a=n[2];if(a){zwt(e,B1);var i=a[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,T1)}else zwt(e,I1);return OI(bSt(e),O1),OI(bSt(e),N1)})),mB(vRt,(function(r,t,e){var n=NI(sRt,r,t);return NI(ESt(d1),n,e)}));var lRt=[0,sRt,vRt],DRt=function r(t,e,n,u){return r.fun(t,e,n,u)},pRt=function r(t,e,n){return r.fun(t,e,n)};mB(DRt,(function(r,t,e,n){OI(bSt(e),e1),NI(bSt(e),u1,n1);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),a1),OI(bSt(e),i1),NI(bSt(e),f1,c1);var a=n[2];LI(Igt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),o1),OI(bSt(e),s1),NI(bSt(e),l1,v1);var i=n[3];if(i){zwt(e,D1);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,t1)}),e,c),zwt(e,p1)}else zwt(e,b1);return OI(bSt(e),E1),OI(bSt(e),F1)})),mB(pRt,(function(r,t,e){var n=NI(DRt,r,t);return NI(ESt(r1),n,e)}));var bRt=[0,DRt,pRt],ERt=function r(t,e,n){return r.fun(t,e,n)},FRt=function r(t,e){return r.fun(t,e)};mB(ERt,(function(r,t,e){OI(bSt(t),M0),NI(bSt(t),U0,G0);var n=e[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,n),OI(bSt(t),j0),OI(bSt(t),X0),NI(bSt(t),$0,H0);var u=e[2];LI(ygt[1],(function(t){return OI(r,t)}),(function(t){return OI(r,t)}),t,u),OI(bSt(t),Y0),OI(bSt(t),V0),NI(bSt(t),J0,K0);var a=e[3];if(a){zwt(t,W0);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,R0)}),t,i),zwt(t,q0)}else zwt(t,z0);return OI(bSt(t),Q0),OI(bSt(t),Z0)})),mB(FRt,(function(r,t){var e=OI(ERt,r);return NI(ESt(P0),e,t)}));var dRt=[0,ERt,FRt],mRt=function r(t,e,n){return r.fun(t,e,n)},hRt=function r(t,e){return r.fun(t,e)};mB(mRt,(function(r,t,e){OI(bSt(t),g0),NI(bSt(t),T0,B0);var n=e[1];if(n){zwt(t,I0);var u=n[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,S0)}),t,u),zwt(t,O0)}else zwt(t,N0);return OI(bSt(t),x0),OI(bSt(t),L0)})),mB(hRt,(function(r,t){var e=OI(mRt,r);return NI(ESt(w0),e,t)}));var kRt=[0,mRt,hRt],yRt=function r(t,e,n){return r.fun(t,e,n)},ARt=function r(t,e){return r.fun(t,e)};mB(yRt,(function(r,t,e){OI(bSt(t),d0),NI(bSt(t),h0,m0);var n=e[1];if(n){zwt(t,k0);var u=n[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,F0)}),t,u),zwt(t,y0)}else zwt(t,A0);return OI(bSt(t),_0),OI(bSt(t),C0)})),mB(ARt,(function(r,t){var e=OI(yRt,r);return NI(ESt(E0),e,t)}));var _Rt=[0,yRt,ARt],CRt=function r(t,e,n,u){return r.fun(t,e,n,u)},wRt=function r(t,e,n){return r.fun(t,e,n)};mB(CRt,(function(r,t,e,n){OI(bSt(e),u0),NI(bSt(e),i0,a0);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),c0),OI(bSt(e),f0),NI(bSt(e),s0,o0);var a=n[2];if(a){zwt(e,v0);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,n0)}),e,i),zwt(e,l0)}else zwt(e,D0);return OI(bSt(e),p0),OI(bSt(e),b0)})),mB(wRt,(function(r,t,e){var n=NI(CRt,r,t);return NI(ESt(e0),n,e)}));var SRt=[0,CRt,wRt],gRt=function r(t,e,n,u){return r.fun(t,e,n,u)},BRt=function r(t,e,n){return r.fun(t,e,n)},TRt=function r(t,e,n,u){return r.fun(t,e,n,u)},IRt=function r(t,e,n){return r.fun(t,e,n)};mB(gRt,(function(r,t,e,n){OI(bSt(e),ZZ),NI(t,e,n[1]),OI(bSt(e),r0);var u=n[2];return LI(TRt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),t0)})),mB(BRt,(function(r,t,e){var n=NI(gRt,r,t);return NI(ESt(QZ),n,e)})),mB(TRt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),$Q);var u=n[1];return LI(kLt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),YQ);case 1:OI(bSt(e),VQ);var a=n[1];return LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),KQ);case 2:OI(bSt(e),JQ);var i=n[1];return LI(bPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),WQ);case 3:OI(bSt(e),qQ);var c=n[1];return LI(sPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),zQ);case 4:OI(bSt(e),QQ);var f=n[1];return LI(jPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),OI(bSt(e),ZQ);case 5:OI(bSt(e),rZ);var o=n[1];return LI(Rgt[8],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,o),OI(bSt(e),tZ);case 6:OI(bSt(e),eZ);var s=n[1];return LI(oRt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),OI(bSt(e),nZ);case 7:OI(bSt(e),uZ);var v=n[1];return LI(gPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,v),OI(bSt(e),aZ);case 8:OI(bSt(e),iZ);var l=n[1];return LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,l),OI(bSt(e),cZ);case 9:OI(bSt(e),fZ);var D=n[1];return LI(lRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,D),OI(bSt(e),oZ);case 10:OI(bSt(e),sZ);var p=n[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,p),OI(bSt(e),vZ);case 11:OI(bSt(e),lZ);var b=n[1];return LI(SRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,b),OI(bSt(e),DZ);case 12:OI(bSt(e),pZ);var E=n[1];return LI(xgt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,E),OI(bSt(e),bZ);case 13:OI(bSt(e),EZ);var F=n[1];return LI(xgt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,F),OI(bSt(e),FZ);case 14:OI(bSt(e),dZ);var d=n[1];return xI(_gt[2],(function(t){return OI(r,t)}),e,d),OI(bSt(e),mZ);case 15:OI(bSt(e),hZ);var m=n[1];return LI(CPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,m),OI(bSt(e),kZ);case 16:OI(bSt(e),yZ);var h=n[1];return LI(WPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,h),OI(bSt(e),AZ);case 17:OI(bSt(e),_Z);var k=n[1];return xI(dRt[1],(function(t){return OI(r,t)}),e,k),OI(bSt(e),CZ);case 18:OI(bSt(e),wZ);var y=n[1];return LI(MPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,y),OI(bSt(e),SZ);case 19:OI(bSt(e),gZ);var A=n[1];return LI(zLt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,A),OI(bSt(e),BZ);case 20:OI(bSt(e),TZ);var _=n[1];return LI($Pt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,_),OI(bSt(e),IZ);case 21:OI(bSt(e),OZ);var C=n[1];return LI(QPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,C),OI(bSt(e),NZ);case 22:OI(bSt(e),xZ);var w=n[1];return LI(rPt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,w),OI(bSt(e),LZ);case 23:OI(bSt(e),PZ);var S=n[1];return xI(_Rt[1],(function(t){return OI(r,t)}),e,S),OI(bSt(e),RZ);case 24:OI(bSt(e),MZ);var g=n[1];return LI(xLt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,g),OI(bSt(e),GZ);case 25:OI(bSt(e),UZ);var B=n[1];return LI(ILt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,B),OI(bSt(e),jZ);case 26:OI(bSt(e),XZ);var T=n[1];return xI(kRt[1],(function(t){return OI(r,t)}),e,T),OI(bSt(e),HZ);case 27:OI(bSt(e),$Z);var I=n[1];return LI(bRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,I),OI(bSt(e),YZ);case 28:OI(bSt(e),VZ);var O=n[1];return LI(aPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,O),OI(bSt(e),KZ);case 29:OI(bSt(e),JZ);var N=n[1];return LI(hPt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,N),OI(bSt(e),WZ);default:OI(bSt(e),qZ);var x=n[1];return LI(tRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,x),OI(bSt(e),zZ)}})),mB(IRt,(function(r,t,e){var n=NI(TRt,r,t);return NI(ESt(HQ),n,e)})),xI(USt,rVr,Ngt,[0,iLt,bLt,ELt,kLt,ILt,xLt,zLt,rPt,aPt,sPt,bPt,hPt,CPt,gPt,BPt,TPt,LPt,MPt,jPt,$Pt,WPt,QPt,tRt,oRt,lRt,bRt,dRt,kRt,_Rt,SRt,gRt,BRt,TRt,IRt]);var ORt=function r(t,e,n,u){return r.fun(t,e,n,u)},NRt=function r(t,e,n){return r.fun(t,e,n)},xRt=function r(t,e,n){return r.fun(t,e,n)},LRt=function r(t,e){return r.fun(t,e)};mB(ORt,(function(r,t,e,n){OI(bSt(e),UQ),NI(t,e,n[1]),OI(bSt(e),jQ);var u=n[2];return xI(xRt,(function(t){return OI(r,t)}),e,u),OI(bSt(e),XQ)})),mB(NRt,(function(r,t,e){var n=NI(ORt,r,t);return NI(ESt(GQ),n,e)})),mB(xRt,(function(r,t,e){OI(bSt(t),wQ),NI(bSt(t),gQ,SQ);var n=e[1];NI(bSt(t),BQ,n),OI(bSt(t),TQ),OI(bSt(t),IQ),NI(bSt(t),NQ,OQ);var u=e[2];if(u){zwt(t,xQ);var a=u[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,CQ)}),t,a),zwt(t,LQ)}else zwt(t,PQ);return OI(bSt(t),RQ),OI(bSt(t),MQ)})),mB(LRt,(function(r,t){var e=OI(xRt,r);return NI(ESt(_Q),e,t)}));var PRt=[0,ORt,NRt,xRt,LRt],RRt=function r(t,e,n,u){return r.fun(t,e,n,u)},MRt=function r(t,e,n){return r.fun(t,e,n)},GRt=function r(t,e,n,u){return r.fun(t,e,n,u)},URt=function r(t,e,n){return r.fun(t,e,n)};mB(RRt,(function(r,t,e,n){OI(bSt(e),kQ),NI(r,e,n[1]),OI(bSt(e),yQ);var u=n[2];return LI(GRt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),AQ)})),mB(MRt,(function(r,t,e){var n=NI(RRt,r,t);return NI(ESt(hQ),n,e)})),mB(GRt,(function(r,t,e,n){OI(bSt(e),vQ),NI(bSt(e),DQ,lQ);var u=n[1];LI(PRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),pQ),OI(bSt(e),bQ),NI(bSt(e),FQ,EQ);var a=n[2];return LI(PRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),dQ),OI(bSt(e),mQ)})),mB(URt,(function(r,t,e){var n=NI(GRt,r,t);return NI(ESt(sQ),n,e)}));var jRt=[0,RRt,MRt,GRt,URt],XRt=function r(t,e,n,u){return r.fun(t,e,n,u)},HRt=function r(t,e,n){return r.fun(t,e,n)},$Rt=function r(t,e,n,u){return r.fun(t,e,n,u)},YRt=function r(t,e,n){return r.fun(t,e,n)};mB(XRt,(function(r,t,e,n){OI(bSt(e),Qz),NI(bSt(e),rQ,Zz);var u=n[1];LI($Rt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),tQ),OI(bSt(e),eQ),NI(bSt(e),uQ,nQ);var a=n[2];if(a){zwt(e,aQ);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),qz);return fCt((function(e,n){return e&&OI(bSt(t),Wz),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),zz)}),e,i),zwt(e,iQ)}else zwt(e,cQ);return OI(bSt(e),fQ),OI(bSt(e),oQ)})),mB(HRt,(function(r,t,e){var n=NI(XRt,r,t);return NI(ESt(Jz),n,e)})),mB($Rt,(function(r,t,e,n){if(n){OI(bSt(e),Yz);var u=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Vz)}return zwt(e,Kz)})),mB(YRt,(function(r,t,e){var n=NI($Rt,r,t);return NI(ESt($z),n,e)}));var VRt=[0,XRt,HRt,$Rt,YRt],KRt=function(r,t){OI(bSt(r),Oz),NI(bSt(r),xz,Nz);var e=t[1];NI(bSt(r),Lz,e),OI(bSt(r),Pz),OI(bSt(r),Rz),NI(bSt(r),Gz,Mz);var n=t[2];return NI(bSt(r),Uz,n),OI(bSt(r),jz),OI(bSt(r),Xz)},JRt=[0,KRt,function(r){return NI(ESt(Hz),KRt,r)}],WRt=function r(t,e,n,u){return r.fun(t,e,n,u)},qRt=function r(t,e,n){return r.fun(t,e,n)},zRt=function r(t,e,n,u){return r.fun(t,e,n,u)},QRt=function r(t,e,n){return r.fun(t,e,n)},ZRt=function r(t,e,n,u){return r.fun(t,e,n,u)},rMt=function r(t,e,n){return r.fun(t,e,n)},tMt=function r(t,e,n,u){return r.fun(t,e,n,u)},eMt=function r(t,e,n){return r.fun(t,e,n)};mB(WRt,(function(r,t,e,n){OI(bSt(e),Bz),NI(r,e,n[1]),OI(bSt(e),Tz);var u=n[2];return LI(tMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Iz)})),mB(qRt,(function(r,t,e){var n=NI(WRt,r,t);return NI(ESt(gz),n,e)})),mB(zRt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),_z);var u=n[1];return LI(PRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Cz)}OI(bSt(e),wz);var a=n[1];return LI(jRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Sz)})),mB(QRt,(function(r,t,e){var n=NI(zRt,r,t);return NI(ESt(Az),n,e)})),mB(ZRt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),Fz),NI(t,e,n[1]),OI(bSt(e),dz);var u=n[2];return xI(_gt[2],(function(t){return OI(r,t)}),e,u),OI(bSt(e),mz)}OI(bSt(e),hz),NI(t,e,n[1]),OI(bSt(e),kz);var a=n[2];return LI(VRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),yz)})),mB(rMt,(function(r,t,e){var n=NI(ZRt,r,t);return NI(ESt(Ez),n,e)})),mB(tMt,(function(r,t,e,n){OI(bSt(e),uz),NI(bSt(e),iz,az);var u=n[1];LI(zRt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),cz),OI(bSt(e),fz),NI(bSt(e),sz,oz);var a=n[2];if(a){zwt(e,vz);var i=a[1];LI(ZRt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,lz)}else zwt(e,Dz);return OI(bSt(e),pz),OI(bSt(e),bz)})),mB(eMt,(function(r,t,e){var n=NI(tMt,r,t);return NI(ESt(nz),n,e)}));var nMt=[0,WRt,qRt,zRt,QRt,ZRt,rMt,tMt,eMt],uMt=function r(t,e,n,u){return r.fun(t,e,n,u)},aMt=function r(t,e,n){return r.fun(t,e,n)},iMt=function r(t,e,n,u){return r.fun(t,e,n,u)},cMt=function r(t,e,n){return r.fun(t,e,n)};mB(uMt,(function(r,t,e,n){OI(bSt(e),rz),NI(r,e,n[1]),OI(bSt(e),tz);var u=n[2];return LI(iMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),ez)})),mB(aMt,(function(r,t,e){var n=NI(uMt,r,t);return NI(ESt(Zq),n,e)})),mB(iMt,(function(r,t,e,n){OI(bSt(e),jq),NI(bSt(e),Hq,Xq);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),$q),OI(bSt(e),Yq),NI(bSt(e),Kq,Vq);var a=n[2];if(a){zwt(e,Jq);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Uq)}),e,i),zwt(e,Wq)}else zwt(e,qq);return OI(bSt(e),zq),OI(bSt(e),Qq)})),mB(cMt,(function(r,t,e){var n=NI(iMt,r,t);return NI(ESt(Gq),n,e)}));var fMt=[0,uMt,aMt,iMt,cMt],oMt=function r(t,e,n,u){return r.fun(t,e,n,u)},sMt=function r(t,e,n){return r.fun(t,e,n)},vMt=function r(t,e,n,u){return r.fun(t,e,n,u)},lMt=function r(t,e,n){return r.fun(t,e,n)},DMt=function r(t,e,n,u){return r.fun(t,e,n,u)},pMt=function r(t,e,n){return r.fun(t,e,n)};mB(oMt,(function(r,t,e,n){OI(bSt(e),Pq),NI(r,e,n[1]),OI(bSt(e),Rq);var u=n[2];return LI(DMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Mq)})),mB(sMt,(function(r,t,e){var n=NI(oMt,r,t);return NI(ESt(Lq),n,e)})),mB(vMt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),Iq);var u=n[1];return LI(PRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Oq)}OI(bSt(e),Nq);var a=n[1];return LI(oMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),xq)})),mB(lMt,(function(r,t,e){var n=NI(vMt,r,t);return NI(ESt(Tq),n,e)})),mB(DMt,(function(r,t,e,n){OI(bSt(e),kq),NI(bSt(e),Aq,yq);var u=n[1];LI(vMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),_q),OI(bSt(e),Cq),NI(bSt(e),Sq,wq);var a=n[2];return LI(PRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),gq),OI(bSt(e),Bq)})),mB(pMt,(function(r,t,e){var n=NI(DMt,r,t);return NI(ESt(hq),n,e)}));var bMt=[0,oMt,sMt,vMt,lMt,DMt,pMt],EMt=function r(t,e,n,u){return r.fun(t,e,n,u)},FMt=function r(t,e,n){return r.fun(t,e,n)};mB(EMt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),pq);var u=n[1];return LI(PRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),bq);case 1:OI(bSt(e),Eq);var a=n[1];return LI(jRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),Fq);default:OI(bSt(e),dq);var i=n[1];return LI(bMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),mq)}})),mB(FMt,(function(r,t,e){var n=NI(EMt,r,t);return NI(ESt(Dq),n,e)}));var dMt=function r(t,e,n,u){return r.fun(t,e,n,u)},mMt=function r(t,e,n){return r.fun(t,e,n)},hMt=function r(t,e,n,u){return r.fun(t,e,n,u)},kMt=function r(t,e,n){return r.fun(t,e,n)},yMt=function r(t,e,n,u){return r.fun(t,e,n,u)},AMt=function r(t,e,n){return r.fun(t,e,n)};mB(dMt,(function(r,t,e,n){OI(bSt(e),sq),NI(r,e,n[1]),OI(bSt(e),vq);var u=n[2];return LI(yMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),lq)})),mB(mMt,(function(r,t,e){var n=NI(dMt,r,t);return NI(ESt(oq),n,e)})),mB(hMt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),aq);var u=n[1];return LI(nMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),iq)}OI(bSt(e),cq);var a=n[1];return LI(fMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),fq)})),mB(kMt,(function(r,t,e){var n=NI(hMt,r,t);return NI(ESt(uq),n,e)})),mB(yMt,(function(r,t,e,n){OI(bSt(e),XW),NI(bSt(e),$W,HW);var u=n[1];LI(EMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),YW),OI(bSt(e),VW),NI(bSt(e),JW,KW);var a=n[2];NI(bSt(e),WW,a),OI(bSt(e),qW),OI(bSt(e),zW),NI(bSt(e),ZW,QW);var i=n[3];OI(bSt(e),rq);return fCt((function(n,u){return n&&OI(bSt(e),jW),LI(hMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,i),OI(bSt(e),tq),OI(bSt(e),eq),OI(bSt(e),nq)})),mB(AMt,(function(r,t,e){var n=NI(yMt,r,t);return NI(ESt(UW),n,e)}));var _Mt=[0,dMt,mMt,hMt,kMt,yMt,AMt],CMt=function r(t,e,n,u){return r.fun(t,e,n,u)},wMt=function r(t,e,n){return r.fun(t,e,n)},SMt=function r(t,e,n,u){return r.fun(t,e,n,u)},gMt=function r(t,e,n){return r.fun(t,e,n)};mB(CMt,(function(r,t,e,n){OI(bSt(e),RW),NI(r,e,n[1]),OI(bSt(e),MW);var u=n[2];return LI(SMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),GW)})),mB(wMt,(function(r,t,e){var n=NI(CMt,r,t);return NI(ESt(PW),n,e)})),mB(SMt,(function(r,t,e,n){OI(bSt(e),IW),NI(bSt(e),NW,OW);var u=n[1];return LI(EMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),xW),OI(bSt(e),LW)})),mB(gMt,(function(r,t,e){var n=NI(SMt,r,t);return NI(ESt(TW),n,e)}));var BMt=[0,CMt,wMt,SMt,gMt],TMt=function r(t,e,n,u){return r.fun(t,e,n,u)},IMt=function r(t,e,n){return r.fun(t,e,n)};mB(TMt,(function(r,t,e,n){OI(bSt(e),dW),NI(bSt(e),hW,mW);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),kW),OI(bSt(e),yW),NI(bSt(e),_W,AW);var a=n[2];if(a){zwt(e,CW);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,FW)}),e,i),zwt(e,wW)}else zwt(e,SW);return OI(bSt(e),gW),OI(bSt(e),BW)})),mB(IMt,(function(r,t,e){var n=NI(TMt,r,t);return NI(ESt(EW),n,e)}));var OMt=[0,TMt,IMt],NMt=function r(t,e,n,u){return r.fun(t,e,n,u)},xMt=function r(t,e,n){return r.fun(t,e,n)},LMt=function r(t,e,n,u){return r.fun(t,e,n,u)},PMt=function r(t,e,n){return r.fun(t,e,n)},RMt=function r(t,e,n,u){return r.fun(t,e,n,u)},MMt=function r(t,e,n){return r.fun(t,e,n)},GMt=function r(t,e,n,u){return r.fun(t,e,n,u)},UMt=function r(t,e,n){return r.fun(t,e,n)};mB(NMt,(function(r,t,e,n){OI(bSt(e),DW),NI(r,e,n[1]),OI(bSt(e),pW);var u=n[2];return LI(LMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),bW)})),mB(xMt,(function(r,t,e){var n=NI(NMt,r,t);return NI(ESt(lW),n,e)})),mB(LMt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),eW);var u=n[1];return LI(RMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),nW);case 1:OI(bSt(e),uW);var a=n[1];return LI(GMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),aW);case 2:OI(bSt(e),iW);var i=n[1];return LI(VRt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),cW);case 3:OI(bSt(e),fW);var c=n[1];return LI(OMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),oW);default:return OI(bSt(e),sW),NI(JRt[1],e,n[1]),OI(bSt(e),vW)}})),mB(PMt,(function(r,t,e){var n=NI(LMt,r,t);return NI(ESt(tW),n,e)})),mB(RMt,(function(r,t,e,n){OI(bSt(e),SJ),NI(bSt(e),BJ,gJ);var u=n[1];LI(_Mt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),TJ),OI(bSt(e),IJ),NI(bSt(e),NJ,OJ);var a=n[2];if(a){zwt(e,xJ);var i=a[1];LI(BMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,LJ)}else zwt(e,PJ);OI(bSt(e),RJ),OI(bSt(e),MJ),NI(bSt(e),UJ,GJ);var c=n[3];OI(bSt(e),jJ),NI(r,e,c[1]),OI(bSt(e),XJ),OI(bSt(e),HJ);fCt((function(n,u){return n&&OI(bSt(e),wJ),LI(NMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,c[2]),OI(bSt(e),$J),OI(bSt(e),YJ),OI(bSt(e),VJ),OI(bSt(e),KJ),NI(bSt(e),WJ,JJ);var f=n[4];if(f){zwt(e,qJ);var o=f[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,CJ)}),e,o),zwt(e,zJ)}else zwt(e,QJ);return OI(bSt(e),ZJ),OI(bSt(e),rW)})),mB(MMt,(function(r,t,e){var n=NI(RMt,r,t);return NI(ESt(_J),n,e)})),mB(GMt,(function(r,t,e,n){OI(bSt(e),ZK),NI(bSt(e),tJ,rJ),NI(r,e,n[1]),OI(bSt(e),eJ),OI(bSt(e),nJ),NI(bSt(e),aJ,uJ),NI(r,e,n[2]),OI(bSt(e),iJ),OI(bSt(e),cJ),NI(bSt(e),oJ,fJ);var u=n[3];OI(bSt(e),sJ),NI(r,e,u[1]),OI(bSt(e),vJ),OI(bSt(e),lJ);fCt((function(n,u){return n&&OI(bSt(e),QK),LI(NMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u[2]),OI(bSt(e),DJ),OI(bSt(e),pJ),OI(bSt(e),bJ),OI(bSt(e),EJ),NI(bSt(e),dJ,FJ);var a=n[4];if(a){zwt(e,mJ);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,zK)}),e,i),zwt(e,hJ)}else zwt(e,kJ);return OI(bSt(e),yJ),OI(bSt(e),AJ)})),mB(UMt,(function(r,t,e){var n=NI(GMt,r,t);return NI(ESt(qK),n,e)})),xI(USt,tVr,xgt,[0,PRt,jRt,VRt,JRt,nMt,fMt,bMt,EMt,FMt,_Mt,BMt,OMt,NMt,xMt,LMt,PMt,RMt,MMt,GMt,UMt]);var jMt=function r(t,e,n,u){return r.fun(t,e,n,u)},XMt=function r(t,e,n){return r.fun(t,e,n)},HMt=function r(t,e,n,u){return r.fun(t,e,n,u)},$Mt=function r(t,e,n){return r.fun(t,e,n)};mB(jMt,(function(r,t,e,n){OI(bSt(e),KK),NI(r,e,n[1]),OI(bSt(e),JK);var u=n[2];return LI(HMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),WK)})),mB(XMt,(function(r,t,e){var n=NI(jMt,r,t);return NI(ESt(VK),n,e)})),mB(HMt,(function(r,t,e,n){OI(bSt(e),xK),NI(bSt(e),PK,LK);var u=n[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),RK),OI(bSt(e),MK),NI(bSt(e),UK,GK);var a=n[2];if(a){zwt(e,jK);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,NK)}),e,i),zwt(e,XK)}else zwt(e,HK);return OI(bSt(e),$K),OI(bSt(e),YK)})),mB($Mt,(function(r,t,e){var n=NI(HMt,r,t);return NI(ESt(OK),n,e)}));var YMt=[0,jMt,XMt,HMt,$Mt],VMt=function r(t,e,n,u){return r.fun(t,e,n,u)},KMt=function r(t,e,n){return r.fun(t,e,n)},JMt=function r(t,e,n,u){return r.fun(t,e,n,u)},WMt=function r(t,e,n){return r.fun(t,e,n)},qMt=function r(t,e,n,u){return r.fun(t,e,n,u)},zMt=function r(t,e,n){return r.fun(t,e,n)};mB(VMt,(function(r,t,e,n){switch(n[0]){case 0:var u=n[1];OI(bSt(e),AK),OI(bSt(e),_K),NI(r,e,u[1]),OI(bSt(e),CK);var a=u[2];return xI(_gt[2],(function(t){return OI(r,t)}),e,a),OI(bSt(e),wK),OI(bSt(e),SK);case 1:OI(bSt(e),gK);var i=n[1];return LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),BK);default:OI(bSt(e),TK);var c=n[1];return LI(Tgt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),IK)}})),mB(KMt,(function(r,t,e){var n=NI(VMt,r,t);return NI(ESt(yK),n,e)})),mB(JMt,(function(r,t,e,n){OI(bSt(e),mK),NI(r,e,n[1]),OI(bSt(e),hK);var u=n[2];return LI(qMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),kK)})),mB(WMt,(function(r,t,e){var n=NI(JMt,r,t);return NI(ESt(dK),n,e)})),mB(qMt,(function(r,t,e,n){OI(bSt(e),zV),NI(bSt(e),ZV,QV);var u=n[1];LI(VMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),rK),OI(bSt(e),tK),NI(bSt(e),nK,eK);var a=n[2];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),uK),OI(bSt(e),aK),NI(bSt(e),cK,iK);var i=n[3];if(i){zwt(e,fK);var c=i[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),zwt(e,oK)}else zwt(e,sK);OI(bSt(e),vK),OI(bSt(e),lK),NI(bSt(e),pK,DK);var f=n[4];return NI(bSt(e),bK,f),OI(bSt(e),EK),OI(bSt(e),FK)})),mB(zMt,(function(r,t,e){var n=NI(qMt,r,t);return NI(ESt(qV),n,e)}));var QMt=[0,VMt,KMt,JMt,WMt,qMt,zMt],ZMt=function r(t,e,n,u){return r.fun(t,e,n,u)},rGt=function r(t,e,n){return r.fun(t,e,n)},tGt=function r(t,e,n,u){return r.fun(t,e,n,u)},eGt=function r(t,e,n){return r.fun(t,e,n)};mB(ZMt,(function(r,t,e,n){if(0===n[0]){OI(bSt(e),VV);var u=n[1];return LI(QMt[3],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),KV)}OI(bSt(e),JV);var a=n[1];return LI(YMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),WV)})),mB(rGt,(function(r,t,e){var n=NI(ZMt,r,t);return NI(ESt(YV),n,e)})),mB(tGt,(function(r,t,e,n){OI(bSt(e),SV),NI(bSt(e),BV,gV);var u=n[1];OI(bSt(e),TV);fCt((function(n,u){return n&&OI(bSt(e),wV),LI(ZMt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),IV),OI(bSt(e),OV),OI(bSt(e),NV),NI(bSt(e),LV,xV);var a=n[2];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),PV),OI(bSt(e),RV),NI(bSt(e),GV,MV);var i=n[3];if(i){zwt(e,UV);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),_V);return fCt((function(e,n){return e&&OI(bSt(t),AV),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),CV)}),e,c),zwt(e,jV)}else zwt(e,XV);return OI(bSt(e),HV),OI(bSt(e),$V)})),mB(eGt,(function(r,t,e){var n=NI(tGt,r,t);return NI(ESt(yV),n,e)}));var nGt=[0,QMt,ZMt,rGt,tGt,eGt],uGt=function r(t,e,n,u){return r.fun(t,e,n,u)},aGt=function r(t,e,n){return r.fun(t,e,n)},iGt=function r(t,e,n,u){return r.fun(t,e,n,u)},cGt=function r(t,e,n){return r.fun(t,e,n)};mB(uGt,(function(r,t,e,n){OI(bSt(e),mV),NI(r,e,n[1]),OI(bSt(e),hV);var u=n[2];return LI(iGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),kV)})),mB(aGt,(function(r,t,e){var n=NI(uGt,r,t);return NI(ESt(dV),n,e)})),mB(iGt,(function(r,t,e,n){OI(bSt(e),iV),NI(bSt(e),fV,cV);var u=n[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),oV),OI(bSt(e),sV),NI(bSt(e),lV,vV);var a=n[2];if(a){zwt(e,DV);var i=a[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,pV)}else zwt(e,bV);return OI(bSt(e),EV),OI(bSt(e),FV)})),mB(cGt,(function(r,t,e){var n=NI(iGt,r,t);return NI(ESt(aV),n,e)}));var fGt=[0,uGt,aGt,iGt,cGt],oGt=function r(t,e,n,u){return r.fun(t,e,n,u)},sGt=function r(t,e,n){return r.fun(t,e,n)},vGt=function r(t,e,n,u){return r.fun(t,e,n,u)},lGt=function r(t,e,n){return r.fun(t,e,n)};mB(oGt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),ZY);var u=n[1];return LI(fGt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),rV);case 1:OI(bSt(e),tV);var a=n[1];return LI(YMt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),eV);default:return OI(bSt(e),nV),NI(r,e,n[1]),OI(bSt(e),uV)}})),mB(sGt,(function(r,t,e){var n=NI(oGt,r,t);return NI(ESt(QY),n,e)})),mB(vGt,(function(r,t,e,n){OI(bSt(e),xY),NI(bSt(e),PY,LY);var u=n[1];OI(bSt(e),RY);fCt((function(n,u){return n&&OI(bSt(e),NY),LI(oGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),MY),OI(bSt(e),GY),OI(bSt(e),UY),NI(bSt(e),XY,jY);var a=n[2];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),HY),OI(bSt(e),$Y),NI(bSt(e),VY,YY);var i=n[3];if(i){zwt(e,KY);var c=i[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),IY);return fCt((function(e,n){return e&&OI(bSt(t),TY),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),OY)}),e,c),zwt(e,JY)}else zwt(e,WY);return OI(bSt(e),qY),OI(bSt(e),zY)})),mB(lGt,(function(r,t,e){var n=NI(vGt,r,t);return NI(ESt(BY),n,e)}));var DGt=[0,fGt,oGt,sGt,vGt,lGt],pGt=function r(t,e,n,u){return r.fun(t,e,n,u)},bGt=function r(t,e,n){return r.fun(t,e,n)};mB(pGt,(function(r,t,e,n){OI(bSt(e),bY),NI(bSt(e),FY,EY);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),dY),OI(bSt(e),mY),NI(bSt(e),kY,hY);var a=n[2];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),yY),OI(bSt(e),AY),NI(bSt(e),CY,_Y);var i=n[3];return NI(bSt(e),wY,i),OI(bSt(e),SY),OI(bSt(e),gY)})),mB(bGt,(function(r,t,e){var n=NI(pGt,r,t);return NI(ESt(pY),n,e)}));var EGt=[0,pGt,bGt],FGt=function r(t,e,n,u){return r.fun(t,e,n,u)},dGt=function r(t,e,n){return r.fun(t,e,n)},mGt=function r(t,e,n,u){return r.fun(t,e,n,u)},hGt=function r(t,e,n){return r.fun(t,e,n)};mB(FGt,(function(r,t,e,n){OI(bSt(e),vY),NI(t,e,n[1]),OI(bSt(e),lY);var u=n[2];return LI(mGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),DY)})),mB(dGt,(function(r,t,e){var n=NI(FGt,r,t);return NI(ESt(sY),n,e)})),mB(mGt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),eY);var u=n[1];return LI(nGt[4],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),nY);case 1:OI(bSt(e),uY);var a=n[1];return LI(DGt[4],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),aY);case 2:OI(bSt(e),iY);var i=n[1];return LI(EGt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),cY);default:OI(bSt(e),fY);var c=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),oY)}})),mB(hGt,(function(r,t,e){var n=NI(mGt,r,t);return NI(ESt(tY),n,e)})),xI(USt,eVr,Lgt,[0,YMt,nGt,DGt,EGt,FGt,dGt,mGt,hGt]);var kGt=function r(t,e,n){return r.fun(t,e,n)},yGt=function r(t,e){return r.fun(t,e)},AGt=function r(t,e){return r.fun(t,e)},_Gt=function r(t){return r.fun(t)},CGt=function r(t,e){return r.fun(t,e)},wGt=function r(t){return r.fun(t)};mB(kGt,(function(r,t,e){return OI(bSt(t),Q$),NI(r,t,e[1]),OI(bSt(t),Z$),NI(CGt,t,e[2]),OI(bSt(t),rY)})),mB(yGt,(function(r,t){var e=OI(kGt,r);return NI(ESt(z$),e,t)})),mB(AGt,(function(r,t){return zwt(r,0===t?q$:W$)})),mB(_Gt,(function(r){return NI(ESt(J$),AGt,r)})),mB(CGt,(function(r,t){OI(bSt(r),N$),NI(bSt(r),L$,x$),NI(AGt,r,t[1]),OI(bSt(r),P$),OI(bSt(r),R$),NI(bSt(r),G$,M$);var e=t[2];NI(bSt(r),U$,e),OI(bSt(r),j$),OI(bSt(r),X$),NI(bSt(r),$$,H$);var n=t[3];return NI(bSt(r),Y$,n),OI(bSt(r),V$),OI(bSt(r),K$)})),mB(wGt,(function(r){return NI(ESt(O$),CGt,r)})),xI(USt,nVr,Pgt,[0,kGt,yGt,AGt,_Gt,CGt,wGt]);var SGt=function r(t,e,n,u){return r.fun(t,e,n,u)},gGt=function r(t,e,n){return r.fun(t,e,n)},BGt=function r(t,e){return r.fun(t,e)},TGt=function r(t){return r.fun(t)},IGt=function r(t,e,n,u){return r.fun(t,e,n,u)},OGt=function r(t,e,n){return r.fun(t,e,n)};mB(SGt,(function(r,t,e,n){OI(bSt(e),B$),NI(t,e,n[1]),OI(bSt(e),T$);var u=n[2];return LI(IGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),I$)})),mB(gGt,(function(r,t,e){var n=NI(SGt,r,t);return NI(ESt(g$),n,e)})),mB(BGt,(function(r,t){switch(t){case 0:return zwt(r,_$);case 1:return zwt(r,C$);case 2:return zwt(r,w$);default:return zwt(r,S$)}})),mB(TGt,(function(r){return NI(ESt(A$),BGt,r)})),mB(IGt,(function(r,t,e,n){OI(bSt(e),HH),NI(bSt(e),YH,$H),NI(BGt,e,n[1]),OI(bSt(e),VH),OI(bSt(e),KH),NI(bSt(e),WH,JH);var u=n[2];LI(Ngt[7][1][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),qH),OI(bSt(e),zH),NI(bSt(e),ZH,QH);var a=n[3];OI(bSt(e),r$),NI(r,e,a[1]),OI(bSt(e),t$);var i=a[2];LI(Mgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),e$),OI(bSt(e),n$),OI(bSt(e),u$),NI(bSt(e),i$,a$);var c=n[4];NI(bSt(e),c$,c),OI(bSt(e),f$),OI(bSt(e),o$),NI(bSt(e),v$,s$);var f=n[5];OI(bSt(e),l$);fCt((function(n,u){return n&&OI(bSt(e),XH),LI(Rgt[7][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,f),OI(bSt(e),D$),OI(bSt(e),p$),OI(bSt(e),b$),NI(bSt(e),F$,E$);var o=n[6];if(o){zwt(e,d$);var s=o[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,jH)}),e,s),zwt(e,m$)}else zwt(e,h$);return OI(bSt(e),k$),OI(bSt(e),y$)})),mB(OGt,(function(r,t,e){var n=NI(IGt,r,t);return NI(ESt(UH),n,e)}));var NGt=[0,SGt,gGt,BGt,TGt,IGt,OGt],xGt=function r(t,e,n,u){return r.fun(t,e,n,u)},LGt=function r(t,e,n){return r.fun(t,e,n)},PGt=function r(t,e,n,u){return r.fun(t,e,n,u)},RGt=function r(t,e,n){return r.fun(t,e,n)},MGt=function r(t,e,n,u){return r.fun(t,e,n,u)},GGt=function r(t,e,n){return r.fun(t,e,n)};mB(xGt,(function(r,t,e,n){OI(bSt(e),RH),NI(t,e,n[1]),OI(bSt(e),MH);var u=n[2];return LI(PGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),GH)})),mB(LGt,(function(r,t,e){var n=NI(xGt,r,t);return NI(ESt(PH),n,e)})),mB(PGt,(function(r,t,e,n){OI(bSt(e),uH),NI(bSt(e),iH,aH);var u=n[1];LI(Ngt[7][1][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),cH),OI(bSt(e),fH),NI(bSt(e),sH,oH);var a=n[2];LI(MGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),vH),OI(bSt(e),lH),NI(bSt(e),pH,DH);var i=n[3];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),bH),OI(bSt(e),EH),NI(bSt(e),dH,FH);var c=n[4];NI(bSt(e),mH,c),OI(bSt(e),hH),OI(bSt(e),kH),NI(bSt(e),AH,yH);var f=n[5];if(f){zwt(e,_H);var o=f[1];xI(Bgt[1],(function(t){return OI(r,t)}),e,o),zwt(e,CH)}else zwt(e,wH);OI(bSt(e),SH),OI(bSt(e),gH),NI(bSt(e),TH,BH);var s=n[6];if(s){zwt(e,IH);var v=s[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,nH)}),e,v),zwt(e,OH)}else zwt(e,NH);return OI(bSt(e),xH),OI(bSt(e),LH)})),mB(RGt,(function(r,t,e){var n=NI(PGt,r,t);return NI(ESt(eH),n,e)})),mB(MGt,(function(r,t,e,n){if("number"==typeof n)return zwt(e,0===n?ZX:QX);OI(bSt(e),rH);var u=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),tH)})),mB(GGt,(function(r,t,e){var n=NI(MGt,r,t);return NI(ESt(zX),n,e)}));var UGt=[0,xGt,LGt,PGt,RGt,MGt,GGt],jGt=function r(t,e,n,u){return r.fun(t,e,n,u)},XGt=function r(t,e,n){return r.fun(t,e,n)},HGt=function r(t,e,n,u){return r.fun(t,e,n,u)},$Gt=function r(t,e,n){return r.fun(t,e,n)};mB(jGt,(function(r,t,e,n){OI(bSt(e),JX),NI(t,e,n[1]),OI(bSt(e),WX);var u=n[2];return LI(HGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),qX)})),mB(XGt,(function(r,t,e){var n=NI(jGt,r,t);return NI(ESt(KX),n,e)})),mB(HGt,(function(r,t,e,n){OI(bSt(e),bX),NI(bSt(e),FX,EX);var u=n[1];xI(Agt[1],(function(t){return OI(r,t)}),e,u),OI(bSt(e),dX),OI(bSt(e),mX),NI(bSt(e),kX,hX);var a=n[2];LI(Rgt[2][5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),yX),OI(bSt(e),AX),NI(bSt(e),CX,_X);var i=n[3];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),wX),OI(bSt(e),SX),NI(bSt(e),BX,gX);var c=n[4];NI(bSt(e),TX,c),OI(bSt(e),IX),OI(bSt(e),OX),NI(bSt(e),xX,NX);var f=n[5];if(f){zwt(e,LX);var o=f[1];xI(Bgt[1],(function(t){return OI(r,t)}),e,o),zwt(e,PX)}else zwt(e,RX);OI(bSt(e),MX),OI(bSt(e),GX),NI(bSt(e),jX,UX);var s=n[6];if(s){zwt(e,XX);var v=s[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,pX)}),e,v),zwt(e,HX)}else zwt(e,$X);return OI(bSt(e),YX),OI(bSt(e),VX)})),mB($Gt,(function(r,t,e){var n=NI(HGt,r,t);return NI(ESt(DX),n,e)}));var YGt=[0,jGt,XGt,HGt,$Gt],VGt=function r(t,e,n,u){return r.fun(t,e,n,u)},KGt=function r(t,e,n){return r.fun(t,e,n)},JGt=function r(t,e,n,u){return r.fun(t,e,n,u)},WGt=function r(t,e,n){return r.fun(t,e,n)};mB(VGt,(function(r,t,e,n){OI(bSt(e),sX),NI(r,e,n[1]),OI(bSt(e),vX);var u=n[2];return LI(JGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),lX)})),mB(KGt,(function(r,t,e){var n=NI(VGt,r,t);return NI(ESt(oX),n,e)})),mB(JGt,(function(r,t,e,n){OI(bSt(e),$j),NI(bSt(e),Vj,Yj);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Kj),OI(bSt(e),Jj),NI(bSt(e),qj,Wj);var a=n[2];if(a){zwt(e,zj);var i=a[1];LI(Igt[23][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,Qj)}else zwt(e,Zj);OI(bSt(e),rX),OI(bSt(e),tX),NI(bSt(e),nX,eX);var c=n[3];if(c){zwt(e,uX);var f=c[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,Hj)}),e,f),zwt(e,aX)}else zwt(e,iX);return OI(bSt(e),cX),OI(bSt(e),fX)})),mB(WGt,(function(r,t,e){var n=NI(JGt,r,t);return NI(ESt(Xj),n,e)}));var qGt=[0,VGt,KGt,JGt,WGt],zGt=function r(t,e,n,u){return r.fun(t,e,n,u)},QGt=function r(t,e,n){return r.fun(t,e,n)},ZGt=function r(t,e,n,u){return r.fun(t,e,n,u)},rUt=function r(t,e,n){return r.fun(t,e,n)};mB(zGt,(function(r,t,e,n){OI(bSt(e),Gj),NI(r,e,n[1]),OI(bSt(e),Uj);var u=n[2];return LI(ZGt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),jj)})),mB(QGt,(function(r,t,e){var n=NI(zGt,r,t);return NI(ESt(Mj),n,e)})),mB(ZGt,(function(r,t,e,n){OI(bSt(e),wj),NI(bSt(e),gj,Sj);var u=n[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),Bj),OI(bSt(e),Tj),NI(bSt(e),Oj,Ij);var a=n[2];if(a){zwt(e,Nj);var i=a[1];LI(Igt[23][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,xj)}else zwt(e,Lj);return OI(bSt(e),Pj),OI(bSt(e),Rj)})),mB(rUt,(function(r,t,e){var n=NI(ZGt,r,t);return NI(ESt(Cj),n,e)}));var tUt=[0,zGt,QGt,ZGt,rUt],eUt=function r(t,e,n,u){return r.fun(t,e,n,u)},nUt=function r(t,e,n){return r.fun(t,e,n)},uUt=function r(t,e,n,u){return r.fun(t,e,n,u)},aUt=function r(t,e,n){return r.fun(t,e,n)};mB(eUt,(function(r,t,e,n){OI(bSt(e),yj),NI(r,e,n[1]),OI(bSt(e),Aj);var u=n[2];return LI(uUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),_j)})),mB(nUt,(function(r,t,e){var n=NI(eUt,r,t);return NI(ESt(kj),n,e)})),mB(uUt,(function(r,t,e,n){OI(bSt(e),cj),NI(bSt(e),oj,fj);var u=n[1];OI(bSt(e),sj);fCt((function(n,u){return n&&OI(bSt(e),ij),LI(tUt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),vj),OI(bSt(e),lj),OI(bSt(e),Dj),NI(bSt(e),bj,pj);var a=n[2];if(a){zwt(e,Ej);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,aj)}),e,i),zwt(e,Fj)}else zwt(e,dj);return OI(bSt(e),mj),OI(bSt(e),hj)})),mB(aUt,(function(r,t,e){var n=NI(uUt,r,t);return NI(ESt(uj),n,e)}));var iUt=[0,tUt,eUt,nUt,uUt,aUt],cUt=function r(t,e,n,u){return r.fun(t,e,n,u)},fUt=function r(t,e,n){return r.fun(t,e,n)},oUt=function r(t,e,n,u){return r.fun(t,e,n,u)},sUt=function r(t,e,n){return r.fun(t,e,n)},vUt=function r(t,e,n,u){return r.fun(t,e,n,u)},lUt=function r(t,e,n){return r.fun(t,e,n)};mB(cUt,(function(r,t,e,n){OI(bSt(e),tj),NI(r,e,n[1]),OI(bSt(e),ej);var u=n[2];return LI(oUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),nj)})),mB(fUt,(function(r,t,e){var n=NI(cUt,r,t);return NI(ESt(rj),n,e)})),mB(oUt,(function(r,t,e,n){OI(bSt(e),UU),NI(bSt(e),XU,jU);var u=n[1];OI(bSt(e),HU);fCt((function(n,u){return n&&OI(bSt(e),GU),LI(vUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),$U),OI(bSt(e),YU),OI(bSt(e),VU),NI(bSt(e),JU,KU);var a=n[2];if(a){zwt(e,WU);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,MU)}),e,i),zwt(e,qU)}else zwt(e,zU);return OI(bSt(e),QU),OI(bSt(e),ZU)})),mB(sUt,(function(r,t,e){var n=NI(oUt,r,t);return NI(ESt(RU),n,e)})),mB(vUt,(function(r,t,e,n){switch(n[0]){case 0:OI(bSt(e),IU);var u=n[1];return LI(NGt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),OU);case 1:OI(bSt(e),NU);var a=n[1];return LI(UGt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),xU);default:OI(bSt(e),LU);var i=n[1];return LI(YGt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),PU)}})),mB(lUt,(function(r,t,e){var n=NI(vUt,r,t);return NI(ESt(TU),n,e)}));var DUt=function r(t,e,n,u){return r.fun(t,e,n,u)},pUt=function r(t,e,n){return r.fun(t,e,n)},bUt=function r(t,e,n,u){return r.fun(t,e,n,u)},EUt=function r(t,e,n){return r.fun(t,e,n)},FUt=[0,cUt,fUt,oUt,sUt,vUt,lUt];mB(DUt,(function(r,t,e,n){OI(bSt(e),SU),NI(r,e,n[1]),OI(bSt(e),gU);var u=n[2];return LI(bUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),BU)})),mB(pUt,(function(r,t,e){var n=NI(DUt,r,t);return NI(ESt(wU),n,e)})),mB(bUt,(function(r,t,e,n){OI(bSt(e),pU),NI(bSt(e),EU,bU);var u=n[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),FU),OI(bSt(e),dU),NI(bSt(e),hU,mU);var a=n[2];if(a){zwt(e,kU);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,DU)}),e,i),zwt(e,yU)}else zwt(e,AU);return OI(bSt(e),_U),OI(bSt(e),CU)})),mB(EUt,(function(r,t,e){var n=NI(bUt,r,t);return NI(ESt(lU),n,e)}));var dUt=[0,DUt,pUt,bUt,EUt],mUt=function r(t,e,n,u){return r.fun(t,e,n,u)},hUt=function r(t,e,n){return r.fun(t,e,n)};mB(mUt,(function(r,t,e,n){OI(bSt(e),hG),NI(bSt(e),yG,kG);var u=n[1];if(u){zwt(e,AG);var a=u[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,_G)}else zwt(e,CG);OI(bSt(e),wG),OI(bSt(e),SG),NI(bSt(e),BG,gG);var i=n[2];LI(Rgt[6][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),TG),OI(bSt(e),IG),NI(bSt(e),NG,OG);var c=n[3];if(c){zwt(e,xG);var f=c[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),zwt(e,LG)}else zwt(e,PG);OI(bSt(e),RG),OI(bSt(e),MG),NI(bSt(e),UG,GG);var o=n[4];if(o){zwt(e,jG);var s=o[1];LI(qGt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,s),zwt(e,XG)}else zwt(e,HG);OI(bSt(e),$G),OI(bSt(e),YG),NI(bSt(e),KG,VG);var v=n[5];if(v){zwt(e,JG);var l=v[1];LI(iUt[2],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,l),zwt(e,WG)}else zwt(e,qG);OI(bSt(e),zG),OI(bSt(e),QG),NI(bSt(e),rU,ZG);var D=n[6];OI(bSt(e),tU);fCt((function(n,u){return n&&OI(bSt(e),mG),LI(dUt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,D),OI(bSt(e),eU),OI(bSt(e),nU),OI(bSt(e),uU),NI(bSt(e),iU,aU);var p=n[7];if(p){zwt(e,cU);var b=p[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,dG)}),e,b),zwt(e,fU)}else zwt(e,oU);return OI(bSt(e),sU),OI(bSt(e),vU)})),mB(hUt,(function(r,t,e){var n=NI(mUt,r,t);return NI(ESt(FG),n,e)})),xI(USt,uVr,Rgt,[0,NGt,UGt,YGt,qGt,iUt,FUt,dUt,mUt,hUt]);var kUt=function r(t,e,n,u){return r.fun(t,e,n,u)},yUt=function r(t,e,n){return r.fun(t,e,n)},AUt=function r(t,e,n,u){return r.fun(t,e,n,u)},_Ut=function r(t,e,n){return r.fun(t,e,n)};mB(kUt,(function(r,t,e,n){OI(bSt(e),pG),NI(r,e,n[1]),OI(bSt(e),bG);var u=n[2];return LI(AUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),EG)})),mB(yUt,(function(r,t,e){var n=NI(kUt,r,t);return NI(ESt(DG),n,e)})),mB(AUt,(function(r,t,e,n){OI(bSt(e),tG),NI(bSt(e),nG,eG);var u=n[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),uG),OI(bSt(e),aG),NI(bSt(e),cG,iG);var a=n[2];if(a){zwt(e,fG);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,rG)}),e,i),zwt(e,oG)}else zwt(e,sG);return OI(bSt(e),vG),OI(bSt(e),lG)})),mB(_Ut,(function(r,t,e){var n=NI(AUt,r,t);return NI(ESt(ZM),n,e)}));var CUt=[0,kUt,yUt,AUt,_Ut],wUt=function r(t,e,n,u){return r.fun(t,e,n,u)},SUt=function r(t,e,n){return r.fun(t,e,n)},gUt=function r(t,e,n,u){return r.fun(t,e,n,u)},BUt=function r(t,e,n){return r.fun(t,e,n)};mB(wUt,(function(r,t,e,n){OI(bSt(e),qM),NI(r,e,n[1]),OI(bSt(e),zM);var u=n[2];return LI(gUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),QM)})),mB(SUt,(function(r,t,e){var n=NI(wUt,r,t);return NI(ESt(WM),n,e)})),mB(gUt,(function(r,t,e,n){OI(bSt(e),RM),NI(bSt(e),GM,MM);var u=n[1];LI(Lgt[5],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),UM),OI(bSt(e),jM),NI(bSt(e),HM,XM);var a=n[2];if(a){zwt(e,$M);var i=a[1];LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),zwt(e,YM)}else zwt(e,VM);return OI(bSt(e),KM),OI(bSt(e),JM)})),mB(BUt,(function(r,t,e){var n=NI(gUt,r,t);return NI(ESt(PM),n,e)}));var TUt=[0,wUt,SUt,gUt,BUt],IUt=function r(t,e,n,u){return r.fun(t,e,n,u)},OUt=function r(t,e,n){return r.fun(t,e,n)},NUt=function r(t,e,n,u){return r.fun(t,e,n,u)},xUt=function r(t,e,n){return r.fun(t,e,n)};mB(IUt,(function(r,t,e,n){OI(bSt(e),NM),NI(r,e,n[1]),OI(bSt(e),xM);var u=n[2];return LI(NUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),LM)})),mB(OUt,(function(r,t,e){var n=NI(IUt,r,t);return NI(ESt(OM),n,e)})),mB(NUt,(function(r,t,e,n){OI(bSt(e),hM),NI(bSt(e),yM,kM);var u=n[1];LI(Igt[17],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),AM),OI(bSt(e),_M),NI(bSt(e),wM,CM);var a=n[2];if(a){zwt(e,SM);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,mM)}),e,i),zwt(e,gM)}else zwt(e,BM);return OI(bSt(e),TM),OI(bSt(e),IM)})),mB(xUt,(function(r,t,e){var n=NI(NUt,r,t);return NI(ESt(dM),n,e)}));var LUt=[0,IUt,OUt,NUt,xUt],PUt=function r(t,e,n,u){return r.fun(t,e,n,u)},RUt=function r(t,e,n){return r.fun(t,e,n)},MUt=function r(t,e,n,u){return r.fun(t,e,n,u)},GUt=function r(t,e,n){return r.fun(t,e,n)};mB(PUt,(function(r,t,e,n){OI(bSt(e),bM),NI(r,e,n[1]),OI(bSt(e),EM);var u=n[2];return LI(MUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),FM)})),mB(RUt,(function(r,t,e){var n=NI(PUt,r,t);return NI(ESt(pM),n,e)})),mB(MUt,(function(r,t,e,n){OI(bSt(e),UR),NI(bSt(e),XR,jR);var u=n[1];if(u){zwt(e,HR);var a=u[1];LI(LUt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,$R)}else zwt(e,YR);OI(bSt(e),VR),OI(bSt(e),KR),NI(bSt(e),WR,JR);var i=n[2];OI(bSt(e),qR);fCt((function(n,u){return n&&OI(bSt(e),GR),LI(TUt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,i),OI(bSt(e),zR),OI(bSt(e),QR),OI(bSt(e),ZR),NI(bSt(e),tM,rM);var c=n[3];if(c){zwt(e,eM);var f=c[1];LI(CUt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,f),zwt(e,nM)}else zwt(e,uM);OI(bSt(e),aM),OI(bSt(e),iM),NI(bSt(e),fM,cM);var o=n[4];if(o){zwt(e,oM);var s=o[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(t,e){OI(bSt(t),RR);return fCt((function(e,n){return e&&OI(bSt(t),PR),xI(Pgt[1],(function(t){return OI(r,t)}),t,n),1}),0,e),OI(bSt(t),MR)}),e,s),zwt(e,sM)}else zwt(e,vM);return OI(bSt(e),lM),OI(bSt(e),DM)})),mB(GUt,(function(r,t,e){var n=NI(MUt,r,t);return NI(ESt(LR),n,e)}));var UUt=[0,PUt,RUt,MUt,GUt],jUt=function r(t,e,n,u){return r.fun(t,e,n,u)},XUt=function r(t,e,n){return r.fun(t,e,n)},HUt=function r(t,e,n,u){return r.fun(t,e,n,u)},$Ut=function r(t,e,n){return r.fun(t,e,n)};mB(jUt,(function(r,t,e,n){OI(bSt(e),xP),NI(bSt(e),PP,LP);var u=n[1];if(u){zwt(e,RP);var a=u[1];LI(ygt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),zwt(e,MP)}else zwt(e,GP);OI(bSt(e),UP),OI(bSt(e),jP),NI(bSt(e),HP,XP);var i=n[2];LI(UUt[1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),$P),OI(bSt(e),YP),NI(bSt(e),KP,VP);var c=n[3];LI(HUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,c),OI(bSt(e),JP),OI(bSt(e),WP),NI(bSt(e),zP,qP);var f=n[4];NI(bSt(e),QP,f),OI(bSt(e),ZP),OI(bSt(e),rR),NI(bSt(e),eR,tR);var o=n[5];NI(bSt(e),nR,o),OI(bSt(e),uR),OI(bSt(e),aR),NI(bSt(e),cR,iR);var s=n[6];if(s){zwt(e,fR);var v=s[1];LI(Igt[24][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,v),zwt(e,oR)}else zwt(e,sR);OI(bSt(e),vR),OI(bSt(e),lR),NI(bSt(e),pR,DR);var l=n[7];LI(Igt[19],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,l),OI(bSt(e),bR),OI(bSt(e),ER),NI(bSt(e),dR,FR);var D=n[8];if(D){zwt(e,mR);var p=D[1];LI(Igt[22][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,p),zwt(e,hR)}else zwt(e,kR);OI(bSt(e),yR),OI(bSt(e),AR),NI(bSt(e),CR,_R);var b=n[9];if(b){zwt(e,wR);var E=b[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,NP)}),e,E),zwt(e,SR)}else zwt(e,gR);return OI(bSt(e),BR),OI(bSt(e),TR),NI(bSt(e),OR,IR),NI(r,e,n[10]),OI(bSt(e),NR),OI(bSt(e),xR)})),mB(XUt,(function(r,t,e){var n=NI(jUt,r,t);return NI(ESt(OP),n,e)})),mB(HUt,(function(r,t,e,n){if(0===n[0]){var u=n[1];OI(bSt(e),CP),OI(bSt(e),wP),NI(r,e,u[1]),OI(bSt(e),SP);var a=u[2];return LI(Ogt[1][1],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,a),OI(bSt(e),gP),OI(bSt(e),BP)}OI(bSt(e),TP);var i=n[1];return LI(Ngt[31],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,i),OI(bSt(e),IP)})),mB($Ut,(function(r,t,e){var n=NI(HUt,r,t);return NI(ESt(_P),n,e)})),xI(USt,aVr,Mgt,[0,CUt,TUt,LUt,UUt,jUt,XUt,HUt,$Ut]);var YUt=function r(t,e,n,u){return r.fun(t,e,n,u)},VUt=function r(t,e,n){return r.fun(t,e,n)},KUt=function r(t,e,n,u){return r.fun(t,e,n,u)},JUt=function r(t,e,n){return r.fun(t,e,n)};mB(YUt,(function(r,t,e,n){OI(bSt(e),kP),NI(r,e,n[1]),OI(bSt(e),yP);var u=n[2];return LI(KUt,(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),OI(bSt(e),AP)})),mB(VUt,(function(r,t,e){var n=NI(YUt,r,t);return NI(ESt(hP),n,e)})),mB(KUt,(function(r,t,e,n){OI(bSt(e),rP),NI(bSt(e),eP,tP);var u=n[1];OI(bSt(e),nP);fCt((function(n,u){return n&&OI(bSt(e),ZL),LI(Ogt[35],(function(t){return OI(r,t)}),(function(r){return OI(t,r)}),e,u),1}),0,u),OI(bSt(e),uP),OI(bSt(e),aP),OI(bSt(e),iP),NI(bSt(e),fP,cP);var a=n[2];if(a){zwt(e,oP);var i=a[1];LI(kgt[1],(function(t){return OI(r,t)}),(function(r,t){return zwt(r,QL)}),e,i),zwt(e,sP)}else zwt(e,vP);OI(bSt(e),lP),OI(bSt(e),DP),NI(bSt(e),bP,pP);var c=n[3];OI(bSt(e),EP);return fCt((function(t,n){return t&&OI(bSt(e),zL),xI(Pgt[1],(function(t){return OI(r,t)}),e,n),1}),0,c),OI(bSt(e),FP),OI(bSt(e),dP),OI(bSt(e),mP)})),mB(JUt,(function(r,t,e){var n=NI(KUt,r,t);return NI(ESt(qL),n,e)})),xI(USt,iVr,jgt,[0,YUt,VUt,KUt,JUt]);var WUt=function(r,t){if(t){var e=t[1],n=OI(r,e);return e===n?t:[0,n]}return t},qUt=function(r,t,e,n,u){var a=NI(r,t,e);return e===a?n:OI(u,a)},zUt=function(r,t,e,n){var u=OI(r,t);return t===u?e:OI(n,u)},QUt=function(r,t){var e=t[1];return qUt(r,e,t[2],t,(function(r){return[0,e,r]}))},ZUt=function(r,t){var e=fCt((function(t,e){var n=OI(r,e),u=t[2]||(n!==e?1:0);return[0,[0,n,t[1]],u]}),EVr,t);return e[2]?nCt(e[1]):t},rjt=LSt(dVr,(function(r){var t=BSt(r,FVr),e=t[1],n=t[2],u=t[3],a=t[4],i=t[5],c=t[6],f=t[7],o=t[8],s=t[9],l=t[10],D=t[11],p=t[12],b=t[13],E=t[14],F=t[15],d=t[16],m=t[17],h=t[18],k=t[19],y=t[20],A=t[21],_=t[22],C=t[23],w=t[24],g=t[25],T=t[26],I=t[27],O=t[28],N=t[29],x=t[30],L=t[31],P=t[32],R=t[33],M=t[34],G=t[35],U=t[36],j=t[37],X=t[38],H=t[39],$=t[40],Y=t[41],V=t[42],K=t[44],J=t[45],W=t[46],q=t[47],z=t[48],Q=t[49],Z=t[50],rr=t[51],tr=t[52],er=t[53],nr=t[54],ur=t[55],ar=t[56],ir=t[57],cr=t[58],fr=t[60],or=t[61],sr=t[62],vr=t[63],lr=t[64],Dr=t[65],pr=t[66],br=t[67],Er=t[68],Fr=t[69],dr=t[70],mr=t[71],hr=t[72],kr=t[73],yr=t[74],Ar=t[75],_r=t[76],Cr=t[77],wr=t[78],Sr=t[79],gr=t[80],Br=t[81],Tr=t[82],Ir=t[83],Or=t[84],Nr=t[85],xr=t[86],Lr=t[87],Pr=t[88],Rr=t[89],Mr=t[90],Gr=t[91],Ur=t[92],jr=t[93],Xr=t[94],Hr=t[95],$r=t[96],Yr=t[97],Kr=t[98],Jr=t[99],Wr=t[ku],qr=t[Um],zr=t[Pm],Qr=t[ul],Zr=t[Sm],rt=t[BS],tt=t[$a],et=t[Yu],nt=t[jb],ut=t[Ah],at=t[qt],it=t[Vr],ct=t[It],ft=t[iu],ot=t[ki],st=t[LC],vt=t[AF],lt=t[Se],Dt=t[Em],pt=t[_m],bt=t[eS],Et=t[Jw],Ft=t[S],dt=t[Hp],mt=t[ZE],ht=t[$d],kt=t[YE],yt=t[vA],At=t[B],_t=t[129],Ct=t[130],wt=t[131],St=t[132],gt=t[133],Bt=t[134],Tt=t[135],Ot=t[136],Nt=t[137],xt=t[138],Lt=t[139],Pt=t[140],Rt=t[141],Mt=t[142],Gt=t[143],Ut=t[144],jt=t[145],Xt=t[146],Ht=t[147],$t=t[148],Yt=t[149],Vt=t[150],Kt=t[151],Jt=t[152],Wt=t[153],zt=t[154],Qt=t[155],Zt=t[156],re=t[157],te=t[158],ee=t[159],ne=t[160],ue=t[161],ae=t[162],ie=t[163],ce=t[164],fe=t[165],oe=t[166],se=t[167],ve=t[168],le=t[169],De=t[170],pe=t[171],be=t[172],Ee=t[173],Fe=t[174],de=t[175],me=t[176],he=t[177],ke=t[178],ye=t[179],Ae=t[180],_e=t[181],Ce=t[182],we=t[183],ge=t[184],Be=t[185],Te=t[186],Ie=t[187],Oe=t[188],Ne=t[189],xe=t[190],Le=t[191],Pe=t[v],Re=t[193],Me=t[194],Ge=t[195],Ue=t[196],je=t[197],Xe=t[198],He=t[199],$e=t[200],Ye=t[201],Ve=t[202],Ke=t[203],Je=t[204],We=t[205],qe=t[206],ze=t[207],Qe=t[208],Ze=t[209],rn=t[210],tn=t[211],en=t[212],nn=t[213],un=t[214],an=t[215],cn=t[216],fn=t[217],on=t[218],sn=t[219],vn=t[220],ln=t[221],Dn=t[222],pn=t[Fo],bn=t[so],En=t[225],Fn=t[226],dn=t[227],mn=t[228],hn=t[229],kn=t[230],yn=t[231],An=t[232],_n=t[233],Cn=t[234],wn=t[235],Sn=t[43],gn=t[59];return GSt(r,[0,Sn,function(r,t){var e=t[2],n=e[3],u=e[2],a=e[1],i=NI(r[1][1+w],r,a),c=NI(r[1][1+x],r,u),f=ZUt(OI(r[1][1+Je],r),n);return a===i&&u===c&&n===f?t:[0,t[1],[0,i,c,f]]},X,function(r,t){var e=t[2],a=t[1];switch(e[0]){case 0:var i=e[1];return qUt(OI(r[1][1+Fn],r),a,i,t,(function(r){return[0,a,[0,r]]}));case 1:var c=e[1];return qUt(OI(r[1][1+bn],r),a,c,t,(function(r){return[0,a,[1,r]]}));case 2:var f=e[1];return qUt(OI(r[1][1+cn],r),a,f,t,(function(r){return[0,a,[2,r]]}));case 3:var s=e[1];return qUt(OI(r[1][1+$e],r),a,s,t,(function(r){return[0,a,[3,r]]}));case 4:var v=e[1];return qUt(OI(r[1][1+He],r),a,v,t,(function(r){return[0,a,[4,r]]}));case 5:var l=e[1];return qUt(OI(r[1][1+Xe],r),a,l,t,(function(r){return[0,a,[5,r]]}));case 6:var D=e[1];return qUt(OI(r[1][1+je],r),a,D,t,(function(r){return[0,a,[6,r]]}));case 7:var p=e[1];return qUt(OI(r[1][1+Ge],r),a,p,t,(function(r){return[0,a,[7,r]]}));case 8:var b=e[1];return qUt(OI(r[1][1+Me],r),a,b,t,(function(r){return[0,a,[8,r]]}));case 9:var E=e[1];return qUt(OI(r[1][1+Re],r),a,E,t,(function(r){return[0,a,[9,r]]}));case 10:var F=e[1];return qUt(OI(r[1][1+Pe],r),a,F,t,(function(r){return[0,a,[10,r]]}));case 11:var d=e[1];return qUt(OI(r[1][1+Le],r),a,d,t,(function(r){return[0,a,[11,r]]}));case 12:var m=e[1];return qUt(OI(r[1][1+Fr],r),a,m,t,(function(r){return[0,a,[33,r]]}));case 13:var h=e[1];return qUt(OI(r[1][1+xe],r),a,h,t,(function(r){return[0,a,[13,r]]}));case 14:var k=e[1];return qUt(OI(r[1][1+Ne],r),a,k,t,(function(r){return[0,a,[14,r]]}));case 15:var A=e[1];return qUt(OI(r[1][1+Oe],r),a,A,t,(function(r){return[0,a,[15,r]]}));case 16:var _=e[1];return qUt(OI(r[1][1+ge],r),a,_,t,(function(r){return[0,a,[16,r]]}));case 17:var w=e[1];return qUt(OI(r[1][1+me],r),a,w,t,(function(r){return[0,a,[17,r]]}));case 18:var S=e[1];return qUt(OI(r[1][1+Fe],r),a,S,t,(function(r){return[0,a,[18,r]]}));case 19:var B=e[1];return qUt(OI(r[1][1+le],r),a,B,t,(function(r){return[0,a,[19,r]]}));case 20:var T=e[1];return qUt(OI(r[1][1+ee],r),a,T,t,(function(r){return[0,a,[20,r]]}));case 21:var I=e[1];return qUt(OI(r[1][1+oe],r),a,I,t,(function(r){return[0,a,[21,r]]}));case 22:var O=e[1];return qUt(OI(r[1][1+ue],r),a,O,t,(function(r){return[0,a,[22,r]]}));case 23:var N=e[1];return qUt(OI(r[1][1+zt],r),a,N,t,(function(r){return[0,a,[23,r]]}));case 24:var x=e[1];return qUt(OI(r[1][1+Tt],r),a,x,t,(function(r){return[0,a,[24,r]]}));case 25:var L=e[1];return qUt(OI(r[1][1+gt],r),a,L,t,(function(r){return[0,a,[25,r]]}));case 26:var P=e[1];return qUt(OI(r[1][1+kt],r),a,P,t,(function(r){return[0,a,[26,r]]}));case 27:var M=e[1];return qUt(OI(r[1][1+$r],r),a,M,t,(function(r){return[0,a,[27,r]]}));case 28:var G=e[1];return qUt(OI(r[1][1+V],r),a,G,t,(function(r){return[0,a,[28,r]]}));case 29:var U=e[1];return qUt(OI(r[1][1+R],r),a,U,t,(function(r){return[0,a,[29,r]]}));case 30:var j=e[1];return qUt(OI(r[1][1+g],r),a,j,t,(function(r){return[0,a,[30,r]]}));case 31:var X=e[1];return qUt(OI(r[1][1+C],r),a,X,t,(function(r){return[0,a,[31,r]]}));case 32:var H=e[1];return qUt(OI(r[1][1+y],r),a,H,t,(function(r){return[0,a,[32,r]]}));case 33:var $=e[1];return qUt(OI(r[1][1+Fr],r),a,$,t,(function(r){return[0,a,[33,r]]}));case 34:var Y=e[1];return qUt(OI(r[1][1+o],r),a,Y,t,(function(r){return[0,a,[34,r]]}));case 35:var K=e[1];return qUt(OI(r[1][1+u],r),a,K,t,(function(r){return[0,a,[35,r]]}));default:var J=e[1];return qUt(OI(r[1][1+n],r),a,J,t,(function(r){return[0,a,[36,r]]}))}},Je,function(r,t){return t},x,8,WUt,L,L,function(r,t){var e=t[2],n=t[1],u=ZUt(OI(r[1][1+Je],r),n),a=ZUt(OI(r[1][1+Je],r),e);return n===u&&e===a?t:[0,u,a,t[3]]},pe,function(r,t){var n=t[2],u=t[1];switch(n[0]){case 0:var a=n[1];return qUt(OI(r[1][1+wn],r),u,a,t,(function(r){return[0,u,[0,r]]}));case 1:var i=n[1];return qUt(OI(r[1][1+An],r),u,i,t,(function(r){return[0,u,[1,r]]}));case 2:var c=n[1];return qUt(OI(r[1][1+yn],r),u,c,t,(function(r){return[0,u,[2,r]]}));case 3:var f=n[1];return qUt(OI(r[1][1+mn],r),u,f,t,(function(r){return[0,u,[3,r]]}));case 4:var o=n[1];return qUt(OI(r[1][1+pn],r),u,o,t,(function(r){return[0,u,[4,r]]}));case 5:var v=n[1];return qUt(OI(r[1][1+cn],r),u,v,t,(function(r){return[0,u,[5,r]]}));case 6:var l=n[1];return qUt(OI(r[1][1+Ke],r),u,l,t,(function(r){return[0,u,[6,r]]}));case 7:var p=n[1];return qUt(OI(r[1][1+Ye],r),u,p,t,(function(r){return[0,u,[7,r]]}));case 8:var b=n[1];return qUt(OI(r[1][1+Wt],r),u,b,t,(function(r){return[0,u,[8,r]]}));case 9:var E=n[1];return qUt(OI(r[1][1+Mt],r),u,E,t,(function(r){return[0,u,[9,r]]}));case 10:var F=n[1];return zUt(OI(r[1][1+xt],r),F,t,(function(r){return[0,u,[10,r]]}));case 11:var m=n[1];return zUt(NI(r[1][1+Bt],r,u),m,t,(function(r){return[0,u,[11,r]]}));case 12:var h=n[1];return qUt(OI(r[1][1+ft],r),u,h,t,(function(r){return[0,u,[12,r]]}));case 13:var k=n[1];return qUt(OI(r[1][1+et],r),u,k,t,(function(r){return[0,u,[13,r]]}));case 14:var y=n[1];return qUt(OI(r[1][1+Hr],r),u,y,t,(function(r){return[0,u,[14,r]]}));case 15:var A=n[1];return qUt(OI(r[1][1+Xr],r),u,A,t,(function(r){return[0,u,[15,r]]}));case 16:var _=n[1];return qUt(OI(r[1][1+jr],r),u,_,t,(function(r){return[0,u,[16,r]]}));case 17:var C=n[1];return qUt(OI(r[1][1+Pr],r),u,C,t,(function(r){return[0,u,[17,r]]}));case 18:var w=n[1];return qUt(OI(r[1][1+Lr],r),u,w,t,(function(r){return[0,u,[18,r]]}));case 19:var S=n[1];return qUt(OI(r[1][1+Or],r),u,S,t,(function(r){return[0,u,[19,r]]}));case 20:var g=n[1];return zUt(NI(r[1][1+Er],r,u),g,t,(function(r){return[0,u,[20,r]]}));case 21:var B=n[1];return qUt(OI(r[1][1+pr],r),u,B,t,(function(r){return[0,u,[21,r]]}));case 22:var I=n[1];return qUt(OI(r[1][1+Y],r),u,I,t,(function(r){return[0,u,[22,r]]}));case 23:var x=n[1];return qUt(OI(r[1][1+M],r),u,x,t,(function(r){return[0,u,[23,r]]}));case 24:var L=n[1];return qUt(OI(r[1][1+N],r),u,L,t,(function(r){return[0,u,[24,r]]}));case 25:var P=n[1];return qUt(OI(r[1][1+O],r),u,P,t,(function(r){return[0,u,[25,r]]}));case 26:var R=n[1];return qUt(OI(r[1][1+T],r),u,R,t,(function(r){return[0,u,[26,r]]}));case 27:var G=n[1];return qUt(OI(r[1][1+d],r),u,G,t,(function(r){return[0,u,[27,r]]}));case 28:var U=n[1];return qUt(OI(r[1][1+D],r),u,U,t,(function(r){return[0,u,[28,r]]}));case 29:var j=n[1];return qUt(OI(r[1][1+s],r),u,j,t,(function(r){return[0,u,[29,r]]}));default:var X=n[1];return qUt(OI(r[1][1+e],r),u,X,t,(function(r){return[0,u,[30,r]]}))}},wn,function(r,t,e){var n=e[2],u=e[1],a=ZUt(OI(r[1][1+Cn],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},Cn,function(r,t){switch(t[0]){case 0:var e=t[1];return zUt(OI(r[1][1+pe],r),e,t,(function(r){return[0,r]}));case 1:var n=t[1];return zUt(OI(r[1][1+$],r),n,t,(function(r){return[1,r]}));default:return t}},An,function(r,t,e){return xI(r[1][1+re],r,t,e)},yn,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=NI(r[1][1+kn],r,a),c=NI(r[1][1+pe],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,e[1],i,c,f]},mn,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=NI(r[1][1+pe],r,a),c=NI(r[1][1+pe],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,e[1],i,c,f]},Fn,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+U],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},bn,function(r,t,e){var n=e[2],u=e[1],a=WUt(OI(r[1][1+Yr],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},pn,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+pe],r,i),f=WUt(OI(r[1][1+vn],r),a),o=NI(r[1][1+Dn],r,u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&n===s?e:[0,c,f,o,s]},Dn,function(r,t){var e=t[2],n=e[2],u=e[1],a=ZUt(OI(r[1][1+De],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Er,function(r,t,e){var n=e[1],u=xI(r[1][1+pn],r,t,n);return n===u?e:[0,u,e[2]]},vn,function(r,t){var e=t[2],n=e[2],u=e[1],a=ZUt(OI(r[1][1+ln],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},ln,function(r,t){if(0===t[0]){var e=t[1],n=NI(r[1][1+A],r,e);return n===e?t:[0,n]}var u=t[1],a=u[2][1],i=NI(r[1][1+x],r,a);return a===i?t:[1,[0,u[1],[0,i]]]},sn,function(r,t){return QUt(OI(r[1][1+Fn],r),t)},on,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=WUt(OI(r[1][1+fn],r),a),c=NI(r[1][1+sn],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},cn,function(r,t,e){var n=e[7],u=e[6],a=e[5],i=e[4],c=e[2],f=e[1],o=WUt(OI(r[1][1+tn],r),f),s=NI(r[1][1+an],r,c),v=OI(r[1][1+en],r),l=WUt((function(r){return QUt(v,r)}),i),D=WUt(OI(r[1][1+rn],r),a),p=ZUt(OI(r[1][1+un],r),u),b=NI(r[1][1+x],r,n);return f===o&&c===s&&i===l&&a===D&&u===p&&wT(n,b)?e:[0,o,s,e[3],l,D,p,b]},en,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+pe],r,a),c=WUt(OI(r[1][1+m],r),u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},tn,function(r,t){return xI(r[1][1+ir],r,cVr,t)},an,function(r,t){var e=t[2],n=e[2],u=e[1],a=ZUt(OI(r[1][1+nn],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},un,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},nn,function(r,t){switch(t[0]){case 0:var e=t[1],n=e[1],u=e[2];return qUt(OI(r[1][1+Qe],r),n,u,t,(function(r){return[0,[0,n,r]]}));case 1:var a=t[1],i=a[1],c=a[2];return qUt(OI(r[1][1+qe],r),i,c,t,(function(r){return[1,[0,i,r]]}));default:var f=t[1],o=f[1],s=f[2];return qUt(OI(r[1][1+ze],r),o,s,t,(function(r){return[2,[0,o,r]]}))}},rn,function(r,t){var e=t[2],n=e[2],u=e[1],a=ZUt(OI(r[1][1+Ze],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Ze,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+F],r,u),i=WUt(OI(r[1][1+m],r),n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Qe,function(r,t,e){var n=e[6],u=e[5],a=e[3],i=e[2],c=NI(r[1][1+gr],r,i),f=QUt(OI(r[1][1+Wt],r),a),o=ZUt(OI(r[1][1+un],r),u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&n===s?e:[0,e[1],c,f,e[4],o,s]},qe,function(r,t,e){var n=e[6],u=e[5],i=e[3],c=e[2],f=e[1],o=NI(r[1][1+gr],r,f),s=NI(r[1][1+We],r,c),v=NI(r[1][1+h],r,i),l=NI(r[1][1+a],r,u),D=NI(r[1][1+x],r,n);return f===o&&c===s&&v===i&&l===u&&D===n?e:[0,o,s,v,e[4],l,D]},We,function(r,t){if("number"==typeof t)return t;var e=t[1],n=NI(r[1][1+pe],r,e);return e===n?t:[0,n]},ze,function(r,t,e){var n=e[6],u=e[5],i=e[3],c=e[2],f=e[1],o=NI(r[1][1+K],r,f),s=NI(r[1][1+We],r,c),v=NI(r[1][1+h],r,i),l=NI(r[1][1+a],r,u),D=NI(r[1][1+x],r,n);return f===o&&c===s&&v===i&&l===u&&D===n?e:[0,o,s,v,e[4],l,D]},Ke,function(r,t,e){return e},Ye,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+J],r,i),f=NI(r[1][1+pe],r,a),o=NI(r[1][1+pe],r,u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&wT(n,s)?e:[0,c,f,o,s]},$e,function(r,t,e){var n=e[2],u=e[1],a=WUt(OI(r[1][1+Yr],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},He,function(r,t,e){var n=e[1],u=NI(r[1][1+x],r,n);return n===u?e:[0,u]},Xe,function(r,t,e){var n=e[7],u=e[6],a=e[5],i=e[4],c=e[3],f=e[2],o=e[1],s=NI(r[1][1+tn],r,o),v=WUt(OI(r[1][1+b],r),f),l=QUt(OI(r[1][1+hr],r),c),D=OI(r[1][1+Lt],r),p=WUt((function(r){return QUt(D,r)}),i),E=OI(r[1][1+Lt],r),F=ZUt((function(r){return QUt(E,r)}),a),d=WUt(OI(r[1][1+rn],r),u),m=NI(r[1][1+x],r,n);return s===o&&v===f&&l===c&&p===i&&F===a&&d===u&&m===n?e:[0,s,v,l,p,F,d,m]},je,function(r,t,e){var n=e[5],u=e[3],a=e[2],i=WUt(OI(r[1][1+be],r),u),c=WUt(OI(r[1][1+Ue],r),a),f=NI(r[1][1+x],r,n);return u===i&&a===c&&n===f?e:[0,e[1],c,i,e[4],f]},Ue,function(r,t){switch(t[0]){case 0:var e=t[1],n=e[2],u=e[1],a=xI(r[1][1+xe],r,u,n);return a===n?t:[0,[0,u,a]];case 1:var i=t[1],c=i[2],f=i[1],o=xI(r[1][1+Ge],r,f,c);return o===c?t:[1,[0,f,o]];case 2:var s=t[1],v=s[2],l=s[1],D=xI(r[1][1+Xe],r,l,v);return D===v?t:[2,[0,l,D]];case 3:var p=t[1],b=NI(r[1][1+A],r,p);return b===p?t:[3,b];case 4:var E=t[1],F=E[2],d=E[1],m=xI(r[1][1+y],r,d,F);return m===F?t:[4,[0,d,m]];case 5:var h=t[1],k=h[2],_=h[1],C=xI(r[1][1+Fr],r,_,k);return C===k?t:[5,[0,_,C]];default:var w=t[1],S=w[2],g=w[1],B=xI(r[1][1+yt],r,g,S);return B===S?t:[6,[0,g,B]]}},Ge,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+Jt],r,i),f=NI(r[1][1+k],r,a),o=WUt(OI(r[1][1+W],r),u),s=NI(r[1][1+x],r,n);return c===i&&f===a&&o===u&&s===n?e:[0,c,f,o,s]},Me,function(r,t,e){return xI(r[1][1+yt],r,t,e)},Re,function(r,t,e){var n=e[4],u=e[2],a=QUt(OI(r[1][1+Fn],r),u),i=NI(r[1][1+x],r,n);return a===u&&wT(n,i)?e:[0,e[1],a,e[3],i]},Pe,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+k],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},Le,function(r,t,e){return xI(r[1][1+y],r,t,e)},xe,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=xI(r[1][1+ir],r,fVr,a),c=NI(r[1][1+h],r,u),f=NI(r[1][1+x],r,n);return i===a&&c===u&&f===n?e:[0,i,c,f]},Ne,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+X],r,a),c=NI(r[1][1+J],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},Oe,function(r,t,e){var n=e[1],u=NI(r[1][1+x],r,n);return n===u?e:[0,u]},ge,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=xI(r[1][1+ir],r,oVr,a),c=NI(r[1][1+Ie],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},Ie,function(r,t){var e=t[2],n=t[1];switch(e[0]){case 0:var u=e[1];return zUt(OI(r[1][1+Te],r),u,t,(function(r){return[0,n,[0,r]]}));case 1:var a=e[1];return zUt(OI(r[1][1+Ce],r),a,t,(function(r){return[0,n,[1,r]]}));case 2:var i=e[1];return zUt(OI(r[1][1+Ae],r),i,t,(function(r){return[0,n,[2,r]]}));default:var c=e[1];return zUt(OI(r[1][1+ke],r),c,t,(function(r){return[0,n,[3,r]]}))}},Te,function(r,t){var e=t[4],n=t[1],u=ZUt(OI(r[1][1+Be],r),n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,t[2],t[3],a]},Ce,function(r,t){var e=t[4],n=t[1],u=ZUt(OI(r[1][1+_e],r),n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,t[2],t[3],a]},Ae,function(r,t){var e=t[4],n=t[1];if(0===n[0])var u=n[1],a=[0,ZUt(OI(r[1][1+we],r),u)];else{var i=n[1];a=[1,ZUt(OI(r[1][1+ye],r),i)]}var c=NI(r[1][1+x],r,e);return n===a&&e===c?t:[0,a,t[2],t[3],c]},ke,function(r,t){var e=t[3],n=t[1],u=ZUt(OI(r[1][1+we],r),n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,t[2],a]},we,function(r,t){var e=t[2][1],n=NI(r[1][1+xt],r,e);return wT(e,n)?t:[0,t[1],[0,n]]},Be,function(r,t){var e=t[2],n=e[1],u=NI(r[1][1+xt],r,n);return wT(n,u)?t:[0,t[1],[0,u,e[2]]]},_e,function(r,t){var e=t[2],n=e[1],u=NI(r[1][1+xt],r,n);return wT(n,u)?t:[0,t[1],[0,u,e[2]]]},ye,function(r,t){var e=t[2],n=e[1],u=NI(r[1][1+xt],r,n);return wT(n,u)?t:[0,t[1],[0,u,e[2]]]},me,function(r,t,e){var n=e[3],u=e[2],a=NI(r[1][1+de],r,u),i=NI(r[1][1+x],r,n);return a===u&&i===n?e:[0,e[1],a,i]},de,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+X],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+pe],r),n,t,(function(r){return[1,r]}))},Fe,function(r,t,e){var n=e[5],u=e[2],a=e[1],i=WUt(OI(r[1][1+be],r),u),c=WUt(OI(r[1][1+X],r),a),f=NI(r[1][1+x],r,n);return u===i&&a===c&&n===f?e:[0,c,i,e[3],e[4],f]},Ee,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+xt],r,u),i=WUt(OI(r[1][1+xt],r),n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},he,function(r,t){var e=t[2],n=WUt(OI(r[1][1+xt],r),e);return e===n?t:[0,t[1],n]},be,function(r,t){if(0===t[0]){var e=t[1],n=ZUt(OI(r[1][1+Ee],r),e);return e===n?t:[0,n]}var u=t[1],a=NI(r[1][1+he],r,u);return u===a?t:[1,a]},le,function(r,t,e){var n=e[3],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,e[2],i]},De,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+pe],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+$],r),n,t,(function(r){return[1,r]}))},oe,function(r,t,e){var n=e[5],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+fe],r,i),f=NI(r[1][1+pe],r,a),o=NI(r[1][1+X],r,u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&n===s?e:[0,c,f,o,e[4],s]},fe,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+se],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+ve],r),n,t,(function(r){return[1,r]}))},se,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+o],r),e,n,t,(function(r){return[0,e,r]}))},ue,function(r,t,e){var n=e[5],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+ne],r,i),f=NI(r[1][1+pe],r,a),o=NI(r[1][1+X],r,u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&n===s?e:[0,c,f,o,e[4],s]},ne,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+ae],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+ie],r),n,t,(function(r){return[1,r]}))},ae,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+o],r),e,n,t,(function(r){return[0,e,r]}))},ee,function(r,t,e){var n=e[5],u=e[4],a=e[3],i=e[2],c=e[1],f=WUt(OI(r[1][1+te],r),c),o=WUt(OI(r[1][1+J],r),i),s=WUt(OI(r[1][1+pe],r),a),v=NI(r[1][1+X],r,u),l=NI(r[1][1+x],r,n);return c===f&&i===o&&a===s&&u===v&&n===l?e:[0,f,o,s,v,l]},te,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+ce],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+pe],r),n,t,(function(r){return[1,r]}))},ce,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+o],r),e,n,t,(function(r){return[0,e,r]}))},Yt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+A],r,n),i=WUt(OI(r[1][1+xt],r),u);return a===n&&i===u?t:[0,t[1],[0,i,a,e[3]]]},Xt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+Yt],r,u),i=NI(r[1][1+x],r,n);return a===u&&i===n?t:[0,t[1],[0,a,i]]},Ut,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+k],r,u),i=NI(r[1][1+x],r,n);return a===u&&i===n?t:[0,t[1],[0,a,i]]},Gt,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=a[2],c=i[4],f=i[3],o=i[2],s=i[1],v=e[1],l=WUt(OI(r[1][1+Ut],r),s),D=ZUt(OI(r[1][1+Yt],r),o),p=WUt(OI(r[1][1+Xt],r),f),E=NI(r[1][1+A],r,u),F=WUt(OI(r[1][1+b],r),v),d=NI(r[1][1+x],r,n),m=NI(r[1][1+x],r,c);return D===o&&p===f&&E===u&&F===v&&d===n&&m===c&&l===s?e:[0,F,[0,a[1],[0,l,D,p,m]],E,d]},Yr,function(r,t){return NI(r[1][1+xt],r,t)},yr,function(r,t){switch(t[0]){case 0:var e=t[1];return zUt(OI(r[1][1+A],r),e,t,(function(r){return[0,r]}));case 1:var n=t[1];return zUt(OI(r[1][1+mr],r),n,t,(function(r){return[1,r]}));default:var u=t[1];return zUt(OI(r[1][1+dr],r),u,t,(function(r){return[2,r]}))}},mr,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+Gt],r),e,n,t,(function(r){return[0,e,r]}))},dr,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+Gt],r),e,n,t,(function(r){return[0,e,r]}))},Ar,function(r,t){var e=t[2],n=e[8],u=e[7],i=e[2],c=e[1],f=NI(r[1][1+gr],r,c),o=NI(r[1][1+yr],r,i),s=NI(r[1][1+a],r,u),v=NI(r[1][1+x],r,n);return f===c&&o===i&&s===u&&v===n?t:[0,t[1],[0,f,o,e[3],e[4],e[5],e[6],s,v]]},kr,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+A],r,u),i=NI(r[1][1+x],r,n);return a===u&&n===i?t:[0,t[1],[0,a,i]]},Tr,function(r,t){var e=t[2],n=e[6],u=e[5],i=e[3],c=e[2],f=NI(r[1][1+A],r,c),o=NI(r[1][1+A],r,i),s=NI(r[1][1+a],r,u),v=NI(r[1][1+x],r,n);return f===c&&o===i&&s===u&&v===n?t:[0,t[1],[0,e[1],f,o,e[4],s,v]]},Br,function(r,t){var e=t[2],n=e[6],u=e[2],a=e[1],i=NI(r[1][1+xt],r,a),c=NI(r[1][1+A],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?t:[0,t[1],[0,i,c,e[3],e[4],e[5],f]]},Ir,function(r,t){var e=t[2],n=e[3],u=e[1],a=u[2],i=u[1],c=xI(r[1][1+Gt],r,i,a),f=NI(r[1][1+x],r,n);return a===c&&n===f?t:[0,t[1],[0,[0,i,c],e[2],f]]},hr,function(r,t,e){var n=e[4],u=e[3],a=ZUt((function(t){switch(t[0]){case 0:var e=t[1];return zUt(OI(r[1][1+Ar],r),e,t,(function(r){return[0,r]}));case 1:var n=t[1];return zUt(OI(r[1][1+kr],r),n,t,(function(r){return[1,r]}));case 2:var u=t[1];return zUt(OI(r[1][1+Tr],r),u,t,(function(r){return[2,r]}));case 3:var a=t[1];return zUt(OI(r[1][1+Ir],r),a,t,(function(r){return[3,r]}));default:var i=t[1];return zUt(OI(r[1][1+Br],r),i,t,(function(r){return[4,r]}))}}),u),i=NI(r[1][1+x],r,n);return a===u&&n===i?e:[0,e[1],e[2],a,i]},ht,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=OI(r[1][1+Lt],r),c=ZUt((function(r){return QUt(i,r)}),u),f=QUt(OI(r[1][1+hr],r),a),o=NI(r[1][1+x],r,n);return c===u&&f===a&&n===o?e:[0,f,c,o]},Rt,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+F],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+Pt],r),n,t,(function(r){return[1,r]}))},Pt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+Rt],r,u),i=NI(r[1][1+F],r,n);return a===u&&i===n?t:[0,t[1],[0,a,i]]},i,function(r,t){var e=t[2],n=e[2],u=NI(r[1][1+x],r,n);return n===u?t:[0,t[1],[0,e[1],u]]},a,function(r,t){return WUt(OI(r[1][1+i],r),t)},m,function(r,t){var e=t[2],n=e[2],u=e[1],a=ZUt(OI(r[1][1+A],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},b,function(r,t){var e=t[2],n=e[2],u=e[1],a=ZUt(OI(r[1][1+E],r),u),i=NI(r[1][1+x],r,n);return a===u&&i===n?t:[0,t[1],[0,a,i]]},E,function(r,t){var e=t[2],n=e[4],u=e[3],i=e[2],c=e[1],f=NI(r[1][1+F],r,c),o=NI(r[1][1+h],r,i),s=NI(r[1][1+a],r,u),v=WUt(OI(r[1][1+A],r),n);return f===c&&o===i&&s===u&&v===n?t:[0,t[1],[0,f,o,s,v]]},Lt,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+Rt],r,a),c=WUt(OI(r[1][1+m],r),u),f=NI(r[1][1+x],r,n);return i===a&&c===u&&f===n?e:[0,i,c,f]},At,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+A],r,a),c=NI(r[1][1+A],r,u),f=NI(r[1][1+x],r,n);return i===a&&c===u&&f===n?e:[0,i,c,f]},br,function(r,t,e){var n=e[1],u=xI(r[1][1+At],r,t,n);return u===n?e:[0,u,e[2]]},G,function(r,t,e){var n=e[3],u=NI(r[1][1+x],r,n);return n===u?e:[0,e[1],e[2],u]},Nr,function(r,t,e){var n=e[3],u=NI(r[1][1+x],r,n);return n===u?e:[0,e[1],e[2],u]},hn,function(r,t,e){var n=e[3],u=NI(r[1][1+x],r,n);return n===u?e:[0,e[1],e[2],u]},En,function(r,t,e){var n=e[2],u=NI(r[1][1+x],r,n);return n===u?e:[0,e[1],u]},xr,function(r,t){var e=t[2],n=t[1],u=NI(r[1][1+A],r,n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,a]},p,function(r,t){var e=t[3],n=t[1],u=NI(r[1][1+A],r,n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,t[2],a]},_,function(r,t){var e=t[2],n=t[1],u=ZUt(OI(r[1][1+A],r),n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,a]},_n,function(r,t){var e=t[2],n=t[1],u=NI(r[1][1+A],r,n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,a]},l,function(r,t,e){var n=e[2],u=e[1],a=u[3],i=u[2],c=u[1],f=NI(r[1][1+A],r,c),o=NI(r[1][1+A],r,i),s=ZUt(OI(r[1][1+A],r),a),v=NI(r[1][1+x],r,n);return f===c&&o===i&&s===a&&v===n?e:[0,[0,f,o,s],v]},mt,function(r,t,e){var n=e[2],u=e[1],a=u[3],i=u[2],c=u[1],f=NI(r[1][1+A],r,c),o=NI(r[1][1+A],r,i),s=ZUt(OI(r[1][1+A],r),a),v=NI(r[1][1+x],r,n);return f===c&&o===i&&s===a&&v===n?e:[0,[0,f,o,s],v]},A,function(r,t){var e=t[2],n=t[1];switch(e[0]){case 0:var u=e[1];return zUt(OI(r[1][1+x],r),u,t,(function(r){return[0,n,[0,r]]}));case 1:var a=e[1];return zUt(OI(r[1][1+x],r),a,t,(function(r){return[0,n,[1,r]]}));case 2:var i=e[1];return zUt(OI(r[1][1+x],r),i,t,(function(r){return[0,n,[2,r]]}));case 3:var c=e[1];return zUt(OI(r[1][1+x],r),c,t,(function(r){return[0,n,[3,r]]}));case 4:var f=e[1];return zUt(OI(r[1][1+x],r),f,t,(function(r){return[0,n,[4,r]]}));case 5:var o=e[1];return zUt(OI(r[1][1+x],r),o,t,(function(r){return[0,n,[5,r]]}));case 6:var s=e[1];return zUt(OI(r[1][1+x],r),s,t,(function(r){return[0,n,[6,r]]}));case 7:var v=e[1];return zUt(OI(r[1][1+x],r),v,t,(function(r){return[0,n,[7,r]]}));case 8:var D=e[1];return zUt(OI(r[1][1+x],r),D,t,(function(r){return[0,n,[8,r]]}));case 9:var b=e[1];return zUt(OI(r[1][1+x],r),b,t,(function(r){return[0,n,[9,r]]}));case 10:var E=e[1];return zUt(OI(r[1][1+x],r),E,t,(function(r){return[0,n,[10,r]]}));case 11:var F=e[1];return zUt(OI(r[1][1+xr],r),F,t,(function(r){return[0,n,[11,r]]}));case 12:var d=e[1];return qUt(OI(r[1][1+Gt],r),n,d,t,(function(r){return[0,n,[12,r]]}));case 13:var m=e[1];return qUt(OI(r[1][1+hr],r),n,m,t,(function(r){return[0,n,[13,r]]}));case 14:var h=e[1];return qUt(OI(r[1][1+ht],r),n,h,t,(function(r){return[0,n,[14,r]]}));case 15:var k=e[1];return zUt(OI(r[1][1+_n],r),k,t,(function(r){return[0,n,[15,r]]}));case 16:var y=e[1];return qUt(OI(r[1][1+Lt],r),n,y,t,(function(r){return[0,n,[16,r]]}));case 17:var A=e[1];return qUt(OI(r[1][1+At],r),n,A,t,(function(r){return[0,n,[17,r]]}));case 18:var C=e[1];return qUt(OI(r[1][1+br],r),n,C,t,(function(r){return[0,n,[18,r]]}));case 19:var w=e[1];return qUt(OI(r[1][1+l],r),n,w,t,(function(r){return[0,n,[19,r]]}));case 20:var S=e[1];return qUt(OI(r[1][1+mt],r),n,S,t,(function(r){return[0,n,[20,r]]}));case 21:var g=e[1];return zUt(OI(r[1][1+p],r),g,t,(function(r){return[0,n,[21,r]]}));case 22:var B=e[1];return zUt(OI(r[1][1+_],r),B,t,(function(r){return[0,n,[22,r]]}));case 23:var T=e[1];return qUt(OI(r[1][1+G],r),n,T,t,(function(r){return[0,n,[23,r]]}));case 24:var I=e[1];return qUt(OI(r[1][1+Nr],r),n,I,t,(function(r){return[0,n,[24,r]]}));case 25:var O=e[1];return qUt(OI(r[1][1+hn],r),n,O,t,(function(r){return[0,n,[25,r]]}));default:var N=e[1];return qUt(OI(r[1][1+En],r),n,N,t,(function(r){return[0,n,[26,r]]}))}},k,function(r,t){var e=t[1],n=t[2];return zUt(OI(r[1][1+A],r),n,t,(function(r){return[0,e,r]}))},h,function(r,t){if(0===t[0])return t;var e=t[1],n=NI(r[1][1+k],r,e);return n===e?t:[1,n]},zt,function(r,t,e){return xI(r[1][1+re],r,t,e)},Wt,function(r,t,e){return xI(r[1][1+re],r,t,e)},re,function(r,t,e){var n=e[9],u=e[8],a=e[7],i=e[6],c=e[3],f=e[2],o=e[1],s=WUt(OI(r[1][1+Jt],r),o),v=NI(r[1][1+$t],r,f),l=NI(r[1][1+h],r,a),D=NI(r[1][1+Qt],r,c),p=WUt(OI(r[1][1+W],r),i),E=WUt(OI(r[1][1+b],r),u),F=NI(r[1][1+x],r,n);return o===s&&f===v&&c===D&&wT(i,p)&&a===l&&u===E&&n===F?e:[0,s,v,D,e[4],e[5],p,l,E,F,e[10]]},$t,function(r,t){var e=t[2],n=e[4],u=e[3],a=e[2],i=e[1],c=ZUt(OI(r[1][1+Kt],r),a),f=WUt(OI(r[1][1+Ht],r),u),o=WUt(OI(r[1][1+jt],r),i),s=NI(r[1][1+x],r,n);return a===c&&u===f&&n===s&&i===o?t:[0,t[1],[0,o,c,f,s]]},jt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+k],r,u),i=NI(r[1][1+x],r,n);return a===u&&i===n?t:[0,t[1],[0,a,i]]},Kt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+Vt],r,u),i=WUt(OI(r[1][1+pe],r),n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Qt,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+Zt],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+pe],r),n,t,(function(r){return[1,r]}))},Zt,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+Fn],r),e,n,t,(function(r){return[0,e,r]}))},Jt,function(r,t){return xI(r[1][1+ir],r,sVr,t)},Mt,function(r,t,e){return e},xt,function(r,t){var e=t[2],n=e[2],u=NI(r[1][1+x],r,n);return n===u?t:[0,t[1],[0,e[1],u]]},F,function(r,t){return NI(r[1][1+xt],r,t)},yt,function(r,t,e){var n=e[5],u=e[4],a=e[3],i=e[2],c=e[1],f=NI(r[1][1+tn],r,c),o=WUt(OI(r[1][1+b],r),i),s=OI(r[1][1+Lt],r),v=ZUt((function(r){return QUt(s,r)}),a),l=QUt(OI(r[1][1+hr],r),u),D=NI(r[1][1+x],r,n);return f===c&&o===i&&v===a&&l===u&&D===n?e:[0,f,o,v,l,D]},kt,function(r,t,e){return xI(r[1][1+yt],r,t,e)},K,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+xt],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Ve,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Bt,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},Ot,function(r,t,e){return NI(r[1][1+X],r,e)},Nt,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+X],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},Tt,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+J],r,i),f=xI(r[1][1+Ot],r,0!==u?1:0,a),o=OI(r[1][1+Nt],r),s=WUt((function(r){return QUt(o,r)}),u),v=NI(r[1][1+x],r,n);return i===c&&a===f&&u===s&&n===v?e:[0,c,f,s,v]},gt,function(r,t,e){var n=e[5],u=e[4],a=e[3],i=e[1],c=WUt(NI(r[1][1+_t],r,i),u),f=WUt(OI(r[1][1+St],r),a),o=NI(r[1][1+x],r,n);return u===c&&a===f&&n===o?e:[0,i,e[2],f,c,o]},_t,function(r,t,e){if(0===e[0]){var n=e[1],u=ZUt(NI(r[1][1+wt],r,t),n);return n===u?e:[0,u]}var a=e[1],i=a[1],c=a[2];return qUt(OI(r[1][1+Ct],r),i,c,e,(function(r){return[1,[0,i,r]]}))},wt,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=0;if(0!==t){var c=0;if(a&&0===a[1]&&(c=1),!c){var f=0;i=1}}if(!i)f=1;var o=NI(f?r[1][1+F]:r[1][1+xt],r,n);if(u)var s=f?OI(r[1][1+F],r):NI(r[1][1+ir],r,vVr),v=zUt(s,u[1],u,(function(r){return[0,r]}));else v=u;return u===v&&n===o?e:[0,a,v,o]},St,function(r,t){return xI(r[1][1+ir],r,lVr,t)},Ct,function(r,t,e){return xI(r[1][1+ir],r,DVr,e)},ft,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+Wr],r,i),f=WUt(OI(r[1][1+ot],r),a),o=NI(r[1][1+st],r,u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&n===s?e:[0,c,f,o,s]},et,function(r,t,e){var n=e[4],u=e[3],a=NI(r[1][1+st],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,e[1],e[2],a,i]},Wr,function(r,t){var e=t[2],n=e[3],u=e[1],a=NI(r[1][1+ct],r,u),i=ZUt(OI(r[1][1+qr],r),n);return u===a&&n===i?t:[0,t[1],[0,a,e[2],i]]},ot,function(r,t){var e=t[2][1],n=NI(r[1][1+ct],r,e);return e===n?t:[0,t[1],[0,n]]},qr,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+dt],r),e,t,(function(r){return[0,r]}))}var n=t[1],u=n[1],a=n[2];return qUt(OI(r[1][1+Jr],r),u,a,t,(function(r){return[1,[0,u,r]]}))},Jr,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},dt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+Ft],r,u),i=WUt(OI(r[1][1+pt],r),n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Ft,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+Et],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+bt],r),n,t,(function(r){return[1,r]}))},Et,function(r,t){return NI(r[1][1+tt],r,t)},bt,function(r,t){return NI(r[1][1+zr],r,t)},pt,function(r,t){if(0===t[0]){var e=t[1],n=t[2];return qUt(OI(r[1][1+lt],r),e,n,t,(function(r){return[0,e,r]}))}var u=t[1],a=t[2];return qUt(OI(r[1][1+Dt],r),u,a,t,(function(r){return[1,u,r]}))},Dt,function(r,t,e){return xI(r[1][1+nt],r,t,e)},lt,function(r,t,e){return xI(r[1][1+Hr],r,t,e)},st,function(r,t){var e=t[2],n=ZUt(OI(r[1][1+vt],r),e);return e===n?t:[0,t[1],n]},vt,function(r,t){var e=t[2],n=t[1];switch(e[0]){case 0:var u=e[1];return qUt(OI(r[1][1+ft],r),n,u,t,(function(r){return[0,n,[0,r]]}));case 1:var a=e[1];return qUt(OI(r[1][1+et],r),n,a,t,(function(r){return[0,n,[1,r]]}));case 2:var i=e[1];return qUt(OI(r[1][1+nt],r),n,i,t,(function(r){return[0,n,[2,r]]}));case 3:var c=e[1];return zUt(OI(r[1][1+Kr],r),c,t,(function(r){return[0,n,[3,r]]}));default:return t}},nt,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+x],r,n);if(u){var i=u[1],c=NI(r[1][1+pe],r,i);return i===c&&n===a?e:[0,[0,c],a]}return n===a?e:[0,0,a]},Kr,function(r,t){var e=t[2],n=t[1],u=NI(r[1][1+pe],r,n),a=NI(r[1][1+x],r,e);return n===u&&e===a?t:[0,u,a]},ct,function(r,t){switch(t[0]){case 0:var e=t[1];return zUt(OI(r[1][1+it],r),e,t,(function(r){return[0,r]}));case 1:var n=t[1];return zUt(OI(r[1][1+ut],r),n,t,(function(r){return[1,r]}));default:var u=t[1];return zUt(OI(r[1][1+at],r),u,t,(function(r){return[2,r]}))}},it,function(r,t){return NI(r[1][1+tt],r,t)},ut,function(r,t){return NI(r[1][1+zr],r,t)},at,function(r,t){return NI(r[1][1+rt],r,t)},zr,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+tt],r,u),i=NI(r[1][1+tt],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},rt,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+Qr],r,u),i=NI(r[1][1+tt],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},Qr,function(r,t){if(0===t[0]){var e=t[1];return zUt(OI(r[1][1+Zr],r),e,t,(function(r){return[0,r]}))}var n=t[1];return zUt(OI(r[1][1+rt],r),n,t,(function(r){return[1,r]}))},Zr,function(r,t){return NI(r[1][1+it],r,t)},tt,function(r,t){var e=t[2],n=e[2],u=NI(r[1][1+x],r,n);return n===u?t:[0,t[1],[0,e[1],u]]},$r,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+Yr],r,a),c=NI(r[1][1+X],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},Hr,function(r,t,e){var n=e[3],u=NI(r[1][1+x],r,n);return n===u?e:[0,e[1],e[2],u]},Xr,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=NI(r[1][1+pe],r,a),c=NI(r[1][1+pe],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,e[1],i,c,f]},jr,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+pe],r,a),c=NI(r[1][1+Gr],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},pr,function(r,t,e){var n=e[1],u=xI(r[1][1+jr],r,t,n);return n===u?e:[0,u,e[2]]},Gr,function(r,t){switch(t[0]){case 0:var e=t[1];return zUt(OI(r[1][1+Rr],r),e,t,(function(r){return[0,r]}));case 1:var n=t[1];return zUt(OI(r[1][1+Ur],r),n,t,(function(r){return[1,r]}));default:var u=t[1];return zUt(OI(r[1][1+Mr],r),u,t,(function(r){return[2,r]}))}},Rr,function(r,t){return NI(r[1][1+xt],r,t)},Ur,function(r,t){return NI(r[1][1+K],r,t)},Mr,function(r,t){return NI(r[1][1+pe],r,t)},Pr,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+xt],r,a),c=NI(r[1][1+xt],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},Lr,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+pe],r,i),f=WUt(OI(r[1][1+vn],r),a),o=WUt(OI(r[1][1+Dn],r),u),s=NI(r[1][1+x],r,n);return i===c&&a===f&&u===o&&n===s?e:[0,c,f,o,s]},Or,function(r,t,e){var n=e[2],u=e[1],a=ZUt((function(t){if(0===t[0]){var e=t[1],n=NI(r[1][1+_r],r,e);return e===n?t:[0,n]}var u=t[1],a=NI(r[1][1+H],r,u);return u===a?t:[1,a]}),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},_r,function(r,t){var e=t[2],n=t[1];switch(e[0]){case 0:var u=e[2],a=e[1],i=NI(r[1][1+gr],r,a),c=NI(r[1][1+pe],r,u);return a===i&&u===c?t:[0,n,[0,i,c,e[3]]];case 1:var f=e[2],o=e[1],s=NI(r[1][1+gr],r,o),v=QUt(OI(r[1][1+Wt],r),f);return o===s&&f===v?t:[0,n,[1,s,v]];case 2:var l=e[3],D=e[2],p=e[1],b=NI(r[1][1+gr],r,p),E=QUt(OI(r[1][1+Wt],r),D),F=NI(r[1][1+x],r,l);return p===b&&D===E&&l===F?t:[0,n,[2,b,E,F]];default:var d=e[3],m=e[2],h=e[1],k=NI(r[1][1+gr],r,h),y=QUt(OI(r[1][1+Wt],r),m),A=NI(r[1][1+x],r,d);return h===k&&m===y&&d===A?t:[0,n,[3,k,y,A]]}},gr,function(r,t){switch(t[0]){case 0:var e=t[1];return zUt(OI(r[1][1+Cr],r),e,t,(function(r){return[0,r]}));case 1:var n=t[1];return zUt(OI(r[1][1+wr],r),n,t,(function(r){return[1,r]}));case 2:var u=t[1];return zUt(OI(r[1][1+K],r),u,t,(function(r){return[2,r]}));default:var a=t[1];return zUt(OI(r[1][1+Sr],r),a,t,(function(r){return[3,r]}))}},Cr,function(r,t){var e=t[1],n=t[2];return qUt(OI(r[1][1+Hr],r),e,n,t,(function(r){return[0,e,r]}))},wr,function(r,t){return NI(r[1][1+xt],r,t)},Sr,function(r,t){return NI(r[1][1+Ve],r,t)},Fr,function(r,t,e){var n=e[5],u=e[4],a=e[3],i=e[2],c=e[1],f=NI(r[1][1+F],r,c),o=WUt(OI(r[1][1+b],r),i),s=WUt(OI(r[1][1+A],r),a),v=WUt(OI(r[1][1+A],r),u),l=NI(r[1][1+x],r,n);return c===f&&a===s&&i===o&&a===s&&u===v&&n===l?e:[0,f,o,s,v,l]},Vt,function(r,t){return xI(r[1][1+dn],r,0,t)},c,function(r,t,e){return xI(r[1][1+dn],r,[0,t],e)},fn,function(r,t){return xI(r[1][1+dn],r,pVr,t)},ve,function(r,t){return NI(r[1][1+kn],r,t)},ie,function(r,t){return NI(r[1][1+kn],r,t)},dn,function(r,t,e){var n=t?t[1]:t;return xI(r[1][1+Dr],r,[0,n],e)},kn,function(r,t){return xI(r[1][1+Dr],r,0,t)},Dr,function(r,t,e){var n=e[2];switch(n[0]){case 0:var u=n[1],a=u[3],i=u[2],c=u[1],f=ZUt(NI(r[1][1+ur],r,t),c),o=NI(r[1][1+h],r,i),s=NI(r[1][1+x],r,a),v=0;if(f===c&&o===i&&s===a){var l=n;v=1}if(!v)l=[0,[0,f,o,s]];var D=l;break;case 1:var p=n[1],b=p[3],E=p[2],F=p[1],d=ZUt(NI(r[1][1+lr],r,t),F),m=NI(r[1][1+h],r,E),k=NI(r[1][1+x],r,b),y=0;if(b===k&&d===F&&m===E){var A=n;y=1}if(!y)A=[1,[0,d,m,k]];D=A;break;case 2:var _=n[1],C=_[2],w=_[1],S=xI(r[1][1+ir],r,t,w),g=NI(r[1][1+h],r,C),B=0;if(w===S&&C===g){var T=n;B=1}if(!B)T=[2,[0,S,g,_[3]]];D=T;break;default:var I=n[1];D=zUt(OI(r[1][1+cr],r),I,n,(function(r){return[3,r]}))}return n===D?e:[0,e[1],D]},ir,function(r,t,e){return NI(r[1][1+xt],r,e)},ar,function(r,t,e,n){return xI(r[1][1+Hr],r,e,n)},ur,function(r,t,e){if(0===e[0]){var n=e[1];return zUt(NI(r[1][1+nr],r,t),n,e,(function(r){return[0,r]}))}var u=e[1];return zUt(NI(r[1][1+z],r,t),u,e,(function(r){return[1,r]}))},nr,function(r,t,e){var n=e[2],u=n[3],a=n[2],i=n[1],c=xI(r[1][1+rr],r,t,i),f=xI(r[1][1+Q],r,t,a),o=WUt(OI(r[1][1+pe],r),u);return c===i&&f===a&&o===u?e:[0,e[1],[0,c,f,o,0]]},rr,function(r,t,e){switch(e[0]){case 0:var n=e[1];return zUt(NI(r[1][1+Z],r,t),n,e,(function(r){return[0,r]}));case 1:var u=e[1];return zUt(NI(r[1][1+tr],r,t),u,e,(function(r){return[1,r]}));default:var a=e[1];return zUt(NI(r[1][1+er],r,t),a,e,(function(r){return[2,r]}))}},Z,function(r,t,e){var n=e[1],u=e[2];return qUt(NI(r[1][1+ar],r,t),n,u,e,(function(r){return[0,n,r]}))},tr,function(r,t,e){return xI(r[1][1+ir],r,t,e)},er,function(r,t,e){return NI(r[1][1+Ve],r,e)},z,function(r,t,e){var n=e[2],u=n[2],a=n[1],i=xI(r[1][1+q],r,t,a),c=NI(r[1][1+x],r,u);return i===a&&u===c?e:[0,e[1],[0,i,c]]},Q,function(r,t,e){return xI(r[1][1+Dr],r,t,e)},q,function(r,t,e){return xI(r[1][1+Dr],r,t,e)},lr,function(r,t,e){switch(e[0]){case 0:var n=e[1];return zUt(NI(r[1][1+vr],r,t),n,e,(function(r){return[0,r]}));case 1:var u=e[1];return zUt(NI(r[1][1+or],r,t),u,e,(function(r){return[1,r]}));default:return e}},vr,function(r,t,e){var n=e[2],u=n[2],a=n[1],i=xI(r[1][1+sr],r,t,a),c=WUt(OI(r[1][1+pe],r),u);return a===i&&u===c?e:[0,e[1],[0,i,c]]},sr,function(r,t,e){return xI(r[1][1+Dr],r,t,e)},or,function(r,t,e){var n=e[2],u=n[2],a=n[1],i=xI(r[1][1+fr],r,t,a),c=NI(r[1][1+x],r,u);return i===a&&u===c?e:[0,e[1],[0,i,c]]},fr,function(r,t,e){return xI(r[1][1+Dr],r,t,e)},gn,function(r,t,e){return xI(r[1][1+Dr],r,t,e)},cr,function(r,t){return NI(r[1][1+pe],r,t)},W,function(r,t){var e=t[2],n=e[2],u=e[1];if(u)var a=u[1],i=zUt(OI(r[1][1+pe],r),a,u,(function(r){return[0,r]}));else i=u;var c=NI(r[1][1+x],r,n);return u===i&&n===c?t:[0,t[1],[0,i,c]]},J,function(r,t){return NI(r[1][1+pe],r,t)},Ht,function(r,t){var e=t[2],n=e[2],u=e[1],a=xI(r[1][1+dn],r,0,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},V,function(r,t,e){var n=e[2],u=e[1],a=WUt(OI(r[1][1+pe],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},Y,function(r,t,e){var n=e[2],u=e[1],a=ZUt(OI(r[1][1+pe],r),u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},w,function(r,t){return NI(r[1][1+U],r,t)},U,function(r,t){var e=OI(r[1][1+j],r),n=fCt((function(r,t){var n=r[1],u=OI(e,t);if(u){if(u[2])return[0,eCt(u,n),1];var a=u[1];return[0,[0,a,n],r[2]||(t!==a?1:0)]}return[0,n,1]}),bVr,t);return n[2]?nCt(n[1]):t},j,function(r,t){return[0,NI(r[1][1+X],r,t),0]},$,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},H,function(r,t){var e=t[2],n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?t:[0,t[1],[0,a,i]]},M,function(r,t,e){var n=e[1],u=NI(r[1][1+x],r,n);return n===u?e:[0,u]},R,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+pe],r,a),c=ZUt(OI(r[1][1+P],r),u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},P,function(r,t){var e=t[2],n=e[3],u=e[2],a=e[1],i=WUt(OI(r[1][1+pe],r),a),c=NI(r[1][1+U],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?t:[0,t[1],[0,i,c,f]]},N,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+pe],r,a),c=QUt(OI(r[1][1+O],r),u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},O,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=ZUt(OI(r[1][1+I],r),a),c=ZUt(OI(r[1][1+pe],r),u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},I,function(r,t){return t},T,function(r,t,e){var n=e[1],u=NI(r[1][1+x],r,n);return n===u?e:[0,u]},g,function(r,t,e){var n=e[2],u=e[1],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,a,i]},C,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=QUt(OI(r[1][1+Fn],r),i);if(a)var f=a[1],o=f[1],s=f[2],v=qUt(OI(r[1][1+on],r),o,s,a,(function(r){return[0,[0,o,r]]}));else v=a;if(u)var l=u[1],D=l[1],p=l[2],b=qUt(OI(r[1][1+Fn],r),D,p,u,(function(r){return[0,[0,D,r]]}));else b=u;var E=NI(r[1][1+x],r,n);return i===c&&a===v&&u===b&&n===E?e:[0,c,v,b,E]},d,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+pe],r,a),c=NI(r[1][1+k],r,u),f=NI(r[1][1+x],r,n);return i===a&&c===u&&f===n?e:[0,i,c,f]},D,function(r,t,e){var n=e[3],u=e[2],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,e[1],a,i]},s,function(r,t,e){var n=e[4],u=e[2],a=NI(r[1][1+pe],r,u),i=NI(r[1][1+x],r,n);return u===a&&n===i?e:[0,e[1],a,e[3],i]},o,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=ZUt(NI(r[1][1+f],r,u),a),c=NI(r[1][1+x],r,n);return a===i&&wT(n,c)?e:[0,i,u,c]},f,function(r,t,e){var n=e[2],u=n[2],a=n[1],i=xI(r[1][1+c],r,t,a),f=WUt(OI(r[1][1+pe],r),u);return a===i&&u===f?e:[0,e[1],[0,i,f]]},u,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+J],r,a),c=NI(r[1][1+X],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},n,function(r,t,e){var n=e[3],u=e[2],a=e[1],i=NI(r[1][1+pe],r,a),c=NI(r[1][1+X],r,u),f=NI(r[1][1+x],r,n);return a===i&&u===c&&n===f?e:[0,i,c,f]},y,function(r,t,e){var n=e[4],u=e[3],a=e[2],i=e[1],c=NI(r[1][1+F],r,i),f=WUt(OI(r[1][1+b],r),a),o=NI(r[1][1+A],r,u),s=NI(r[1][1+x],r,n);return i===c&&u===o&&a===f&&n===s?e:[0,c,f,o,s]},e,function(r,t,e){var n=e[2],u=e[1],a=WUt(OI(r[1][1+pe],r),u),i=NI(r[1][1+x],r,n);return wT(n,i)&&u===a?e:[0,a,i,e[3]]}]),function(t,e){return PSt(e,r)}})),tjt=function(r){return"number"==typeof r?OVr:r[1]},ejt=function(r){if("number"==typeof r)return 1;switch(r[0]){case 0:return 2;case 3:return 4;default:return 3}},njt=function(r,t){OI(bSt(r),NVr),NI(bSt(r),LVr,xVr);var e=t[1];NI(bSt(r),PVr,e),OI(bSt(r),RVr),OI(bSt(r),MVr),NI(bSt(r),UVr,GVr);var n=t[2];return NI(bSt(r),jVr,n),OI(bSt(r),XVr),OI(bSt(r),HVr)},ujt=function r(t,e){return r.fun(t,e)};mB(ujt,(function(r,t){OI(bSt(r),YVr),NI(bSt(r),KVr,VVr);var e=t[1];if(e){zwt(r,JVr);var n=e[1];if("number"==typeof n)zwt(r,mVr);else switch(n[0]){case 0:OI(bSt(r),hVr);var u=n[1];NI(bSt(r),kVr,u),OI(bSt(r),yVr);break;case 1:OI(bSt(r),AVr);var a=n[1];NI(bSt(r),_Vr,a),OI(bSt(r),CVr);break;case 2:OI(bSt(r),wVr);var i=n[1];NI(bSt(r),SVr,i),OI(bSt(r),gVr);break;default:OI(bSt(r),BVr);var c=n[1];NI(bSt(r),TVr,c),OI(bSt(r),IVr)}zwt(r,WVr)}else zwt(r,qVr);return OI(bSt(r),zVr),OI(bSt(r),QVr),NI(bSt(r),rKr,ZVr),njt(r,t[2]),OI(bSt(r),tKr),OI(bSt(r),eKr),NI(bSt(r),uKr,nKr),njt(r,t[3]),OI(bSt(r),aKr),OI(bSt(r),iKr)})),mB((function r(t){return r.fun(t)}),(function(r){return NI(ESt($Vr),ujt,r)}));var ajt=function(r,t){return[0,r[1],r[2],t[3]]},ijt=function(r,t){var e=r[1]-t[1]|0;return 0===e?r[2]-t[2]|0:e},cjt=function r(t,e,n){return r.fun(t,e,n)};mB(cjt,(function(r,t,e){var n=e[2];switch(n[0]){case 0:return fCt((function(t,e){var n=0===e[0]?e[1][2][2]:e[1][2][1];return xI(cjt,r,t,n)}),t,n[1][1]);case 1:return fCt((function(t,e){return 2===e[0]?t:xI(cjt,r,t,e[1][2][1])}),t,n[1][1]);case 2:var u=n[1];return xI(r,t,u[1],u[2]);default:return t}}));var fjt=function(r){return r[2][1]},ojt=function(r,t){return[0,t[1],[0,t[2],r]]},sjt=function(r,t,e){return[0,r?r[1]:r,t?t[1]:t,e]},vjt=function(r,t,e){var n=r?r[1]:r,u=t?t[1]:t;return n||u?[0,sjt([0,n],[0,u],0)]:u},ljt=function(r,t,e){var n=r?r[1]:r,u=t?t[1]:t;return n||u||e?[0,sjt([0,n],[0,u],e)]:e},Djt=function(r,t){if(r){if(t){var e=t[1],n=r[1],u=[0,j_t(n[2],e[2])];return vjt([0,j_t(e[1],n[1])],u)}var a=r}else a=t;return a},pjt=function(r,t){if(t){if(r){var e=t[1],n=r[1],u=n[3],a=[0,j_t(n[2],e[2])];return ljt([0,j_t(e[1],n[1])],a,u)}var i=t[1];return ljt([0,i[1]],[0,i[2]],0)}return r},bjt=function r(t,e){return r.fun(t,e)};mB(bjt,(function(r,t){if("number"==typeof r){var e=r;if(56<=e)switch(e){case 56:if("number"==typeof t&&56===t)return 0;break;case 57:if("number"==typeof t&&57===t)return 0;break;case 58:if("number"==typeof t&&58===t)return 0;break;case 59:if("number"==typeof t&&59===t)return 0;break;case 60:if("number"==typeof t&&60===t)return 0;break;case 61:if("number"==typeof t&&61===t)return 0;break;case 62:if("number"==typeof t&&62===t)return 0;break;case 63:if("number"==typeof t&&63===t)return 0;break;case 64:if("number"==typeof t&&64===t)return 0;break;case 65:if("number"==typeof t&&65===t)return 0;break;case 66:if("number"==typeof t&&66===t)return 0;break;case 67:if("number"==typeof t&&67===t)return 0;break;case 68:if("number"==typeof t&&68===t)return 0;break;case 69:if("number"==typeof t&&69===t)return 0;break;case 70:if("number"==typeof t&&70===t)return 0;break;case 71:if("number"==typeof t&&71===t)return 0;break;case 72:if("number"==typeof t&&72===t)return 0;break;case 73:if("number"==typeof t&&73===t)return 0;break;case 74:if("number"==typeof t&&74===t)return 0;break;case 75:if("number"==typeof t&&75===t)return 0;break;case 76:if("number"==typeof t&&76===t)return 0;break;case 77:if("number"==typeof t&&77===t)return 0;break;case 78:if("number"==typeof t&&78===t)return 0;break;case 79:if("number"==typeof t&&79===t)return 0;break;case 80:if("number"==typeof t&&80===t)return 0;break;case 81:if("number"==typeof t&&81===t)return 0;break;case 82:if("number"==typeof t&&82===t)return 0;break;case 83:if("number"==typeof t&&83===t)return 0;break;case 84:if("number"==typeof t&&84===t)return 0;break;case 85:if("number"==typeof t&&85===t)return 0;break;case 86:if("number"==typeof t&&86===t)return 0;break;case 87:if("number"==typeof t&&87===t)return 0;break;case 88:if("number"==typeof t&&88===t)return 0;break;case 89:if("number"==typeof t&&89===t)return 0;break;case 90:if("number"==typeof t&&90===t)return 0;break;case 91:if("number"==typeof t&&91===t)return 0;break;case 92:if("number"==typeof t&&92===t)return 0;break;case 93:if("number"==typeof t&&93===t)return 0;break;case 94:if("number"==typeof t&&94===t)return 0;break;case 95:if("number"==typeof t&&95===t)return 0;break;case 96:if("number"==typeof t&&96===t)return 0;break;case 97:if("number"==typeof t&&97===t)return 0;break;case 98:if("number"==typeof t&&98===t)return 0;break;case 99:if("number"==typeof t&&99===t)return 0;break;case 100:if("number"==typeof t&&ku===t)return 0;break;case 101:if("number"==typeof t&&Um===t)return 0;break;case 102:if("number"==typeof t&&Pm===t)return 0;break;case 103:if("number"==typeof t&&ul===t)return 0;break;case 104:if("number"==typeof t&&Sm===t)return 0;break;case 105:if("number"==typeof t&&BS===t)return 0;break;case 106:if("number"==typeof t&&$a===t)return 0;break;case 107:if("number"==typeof t&&Yu===t)return 0;break;case 108:if("number"==typeof t&&jb===t)return 0;break;case 109:if("number"==typeof t&&Ah===t)return 0;break;case 110:if("number"==typeof t&&qt===t)return 0;break;default:if("number"==typeof t&&Vr<=t)return 0}else switch(e){case 0:if("number"==typeof t&&0===t)return 0;break;case 1:if("number"==typeof t&&1===t)return 0;break;case 2:if("number"==typeof t&&2===t)return 0;break;case 3:if("number"==typeof t&&3===t)return 0;break;case 4:if("number"==typeof t&&4===t)return 0;break;case 5:if("number"==typeof t&&5===t)return 0;break;case 6:if("number"==typeof t&&6===t)return 0;break;case 7:if("number"==typeof t&&7===t)return 0;break;case 8:if("number"==typeof t&&8===t)return 0;break;case 9:if("number"==typeof t&&9===t)return 0;break;case 10:if("number"==typeof t&&10===t)return 0;break;case 11:if("number"==typeof t&&11===t)return 0;break;case 12:if("number"==typeof t&&12===t)return 0;break;case 13:if("number"==typeof t&&13===t)return 0;break;case 14:if("number"==typeof t&&14===t)return 0;break;case 15:if("number"==typeof t&&15===t)return 0;break;case 16:if("number"==typeof t&&16===t)return 0;break;case 17:if("number"==typeof t&&17===t)return 0;break;case 18:if("number"==typeof t&&18===t)return 0;break;case 19:if("number"==typeof t&&19===t)return 0;break;case 20:if("number"==typeof t&&20===t)return 0;break;case 21:if("number"==typeof t&&21===t)return 0;break;case 22:if("number"==typeof t&&22===t)return 0;break;case 23:if("number"==typeof t&&23===t)return 0;break;case 24:if("number"==typeof t&&24===t)return 0;break;case 25:if("number"==typeof t&&25===t)return 0;break;case 26:if("number"==typeof t&&26===t)return 0;break;case 27:if("number"==typeof t&&27===t)return 0;break;case 28:if("number"==typeof t&&28===t)return 0;break;case 29:if("number"==typeof t&&29===t)return 0;break;case 30:if("number"==typeof t&&30===t)return 0;break;case 31:if("number"==typeof t&&31===t)return 0;break;case 32:if("number"==typeof t&&32===t)return 0;break;case 33:if("number"==typeof t&&33===t)return 0;break;case 34:if("number"==typeof t&&34===t)return 0;break;case 35:if("number"==typeof t&&35===t)return 0;break;case 36:if("number"==typeof t&&36===t)return 0;break;case 37:if("number"==typeof t&&37===t)return 0;break;case 38:if("number"==typeof t&&38===t)return 0;break;case 39:if("number"==typeof t&&39===t)return 0;break;case 40:if("number"==typeof t&&40===t)return 0;break;case 41:if("number"==typeof t&&41===t)return 0;break;case 42:if("number"==typeof t&&42===t)return 0;break;case 43:if("number"==typeof t&&43===t)return 0;break;case 44:if("number"==typeof t&&44===t)return 0;break;case 45:if("number"==typeof t&&45===t)return 0;break;case 46:if("number"==typeof t&&46===t)return 0;break;case 47:if("number"==typeof t&&47===t)return 0;break;case 48:if("number"==typeof t&&48===t)return 0;break;case 49:if("number"==typeof t&&49===t)return 0;break;case 50:if("number"==typeof t&&50===t)return 0;break;case 51:if("number"==typeof t&&51===t)return 0;break;case 52:if("number"==typeof t&&52===t)return 0;break;case 53:if("number"==typeof t&&53===t)return 0;break;case 54:if("number"==typeof t&&54===t)return 0;break;default:if("number"==typeof t&&55===t)return 0}}else switch(r[0]){case 0:if("number"!=typeof t&&0===t[0])return yT(r[1],t[1]);break;case 1:if("number"!=typeof t&&1===t[0]){var n=yT(r[1],t[1]);return 0===n?yT(r[2],t[2]):n}break;case 2:if("number"!=typeof t&&2===t[0]){var u=yT(r[1],t[1]);return 0===u?yT(r[2],t[2]):u}break;case 3:if("number"!=typeof t&&3===t[0])return yT(r[1],t[1]);break;case 4:if("number"!=typeof t&&4===t[0]){var a=t[2],i=r[2],c=yT(r[1],t[1]);return 0===c?i?a?yT(i[1],a[1]):1:a?-1:0:c}break;case 5:if("number"!=typeof t&&5===t[0])return yT(r[1],t[1]);break;case 6:if("number"!=typeof t&&6===t[0]){var f=t[2],o=r[2],s=yT(r[1],t[1]);if(0===s){if(o)if(f){var v=f[1],l=o[1],D=0;switch(l){case 0:if(0===v)var p=0;else D=1;break;case 1:if(1===v)p=0;else D=1;break;case 2:if(2===v)p=0;else D=1;break;default:if(3<=v)p=0;else D=1}if(D){var b=function(r){switch(r){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}},E=b(v);p=hT(b(l),E)}var F=p}else F=1;else F=f?-1:0;return 0===F?yT(r[3],t[3]):F}return s}break;case 7:if("number"!=typeof t&&7===t[0]){var d=yT(r[1],t[1]);return 0===d?yT(r[2],t[2]):d}break;case 8:if("number"!=typeof t&&8===t[0])return hT(r[1],t[1]);break;case 9:if("number"!=typeof t&&9===t[0]){var m=yT(r[1],t[1]);return 0===m?yT(r[2],t[2]):m}break;case 10:if("number"!=typeof t&&10===t[0])return yT(r[1],t[1]);break;case 11:if("number"!=typeof t&&11===t[0])return yT(r[1],t[1]);break;case 12:if("number"!=typeof t&&12===t[0]){var h=yT(r[1],t[1]);return 0===h?yT(r[2],t[2]):h}break;case 13:if("number"!=typeof t&&13===t[0]){var k=yT(r[1],t[1]);return 0===k?yT(r[2],t[2]):k}break;case 14:if("number"!=typeof t&&14===t[0])return yT(r[1],t[1]);break;case 15:if("number"!=typeof t&&15===t[0])return hT(r[1],t[1]);break;case 16:if("number"!=typeof t&&16===t[0])return yT(r[1],t[1]);break;case 17:if("number"!=typeof t&&17===t[0]){var y=yT(r[1],t[1]);return 0===y?yT(r[2],t[2]):y}break;case 18:if("number"!=typeof t&&18===t[0])return yT(r[1],t[1]);break;case 19:if("number"!=typeof t&&19===t[0])return hT(r[1],t[1]);break;case 20:if("number"!=typeof t&&20===t[0])return yT(r[1],t[1]);break;case 21:if("number"!=typeof t&&21===t[0])return yT(r[1],t[1]);break;case 22:if("number"!=typeof t&&22===t[0]){var A=yT(r[1],t[1]);if(0===A){var _=hT(r[2],t[2]);return 0===_?hT(r[3],t[3]):_}return A}break;case 23:if("number"!=typeof t&&23===t[0])return yT(r[1],t[1]);break;default:if("number"!=typeof t&&24===t[0])return yT(r[1],t[1])}function C(r){if("number"==typeof r){var t=r;if(56<=t)switch(t){case 56:return 75;case 57:return 76;case 58:return 77;case 59:return 79;case 60:return 80;case 61:return 81;case 62:return 82;case 63:return 83;case 64:return 84;case 65:return 85;case 66:return 86;case 67:return 87;case 68:return 88;case 69:return 89;case 70:return 90;case 71:return 91;case 72:return 92;case 73:return 93;case 74:return 95;case 75:return 96;case 76:return 97;case 77:return 98;case 78:return 99;case 79:return ku;case 80:return Um;case 81:return Pm;case 82:return ul;case 83:return Sm;case 84:return BS;case 85:return $a;case 86:return Yu;case 87:return jb;case 88:return Vr;case 89:return It;case 90:return ki;case 91:return LC;case 92:return AF;case 93:return Se;case 94:return Em;case 95:return _m;case 96:return eS;case 97:return Jw;case 98:return S;case 99:return Hp;case 100:return ZE;case 101:return $d;case 102:return YE;case 103:return vA;case 104:return 129;case 105:return 130;case 106:return 131;case 107:return 132;case 108:return 133;case 109:return 134;case 110:return 135;default:return 136}switch(t){case 0:return 5;case 1:return 9;case 2:return 16;case 3:return 17;case 4:return 18;case 5:return 19;case 6:return 20;case 7:return 21;case 8:return 22;case 9:return 23;case 10:return 24;case 11:return 25;case 12:return 26;case 13:return 27;case 14:return 28;case 15:return 29;case 16:return 30;case 17:return 31;case 18:return 32;case 19:return 33;case 20:return 34;case 21:return 35;case 22:return 36;case 23:return 37;case 24:return 38;case 25:return 40;case 26:return 41;case 27:return 42;case 28:return 43;case 29:return 44;case 30:return 46;case 31:return 47;case 32:return 48;case 33:return 49;case 34:return 52;case 35:return 53;case 36:return 54;case 37:return 55;case 38:return 56;case 39:return 57;case 40:return 58;case 41:return 59;case 42:return 60;case 43:return 61;case 44:return 62;case 45:return 63;case 46:return 64;case 47:return 65;case 48:return 66;case 49:return 67;case 50:return 68;case 51:return 69;case 52:return 70;case 53:return 71;case 54:return 72;default:return 73}}else switch(r[0]){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 6;case 6:return 7;case 7:return 8;case 8:return 10;case 9:return 11;case 10:return 12;case 11:return 13;case 12:return 14;case 13:return 15;case 14:return 39;case 15:return 45;case 16:return 50;case 17:return 51;case 18:return 74;case 19:return 78;case 20:return 94;case 21:return Ah;case 22:return qt;case 23:return iu;default:return B}}var w=C(t);return hT(C(r),w)}));var Ejt=[_c,Vqr,NT()],Fjt=function(r){return[0,r[1],r[2].slice(),r[3],r[4],r[5],r[6],r[7]]},djt=function(r){return r[3][1]},mjt=function(r,t){return r!==t[4]?[0,t[1],t[2],t[3],r,t[5],t[6],t[7]]:t},hjt=function(r){if("number"==typeof r){var t=r;if(60<=t)switch(t){case 60:return T0r;case 61:return I0r;case 62:return O0r;case 63:return N0r;case 64:return x0r;case 65:return L0r;case 66:return P0r;case 67:return R0r;case 68:return M0r;case 69:return G0r;case 70:return U0r;case 71:return j0r;case 72:return X0r;case 73:return H0r;case 74:return $0r;case 75:return Y0r;case 76:return V0r;case 77:return K0r;case 78:return J0r;case 79:return W0r;case 80:return q0r;case 81:return z0r;case 82:return Q0r;case 83:return Z0r;case 84:return r1r;case 85:return t1r;case 86:return e1r;case 87:return n1r;case 88:return u1r;case 89:return a1r;case 90:return i1r;case 91:return c1r;case 92:return f1r;case 93:return o1r;case 94:return s1r;case 95:return v1r;case 96:return l1r;case 97:return D1r;case 98:return p1r;case 99:return b1r;case 100:return E1r;case 101:return F1r;case 102:return d1r;case 103:return m1r;case 104:return h1r;case 105:return k1r;case 106:return y1r;case 107:return A1r;case 108:return _1r;case 109:return C1r;case 110:return w1r;case 111:return S1r;case 112:return g1r;case 113:return B1r;case 114:return T1r;case 115:return I1r;case 116:return O1r;case 117:return N1r;default:return x1r}switch(t){case 0:return _Zr;case 1:return CZr;case 2:return wZr;case 3:return SZr;case 4:return gZr;case 5:return BZr;case 6:return TZr;case 7:return IZr;case 8:return OZr;case 9:return NZr;case 10:return xZr;case 11:return LZr;case 12:return PZr;case 13:return RZr;case 14:return MZr;case 15:return GZr;case 16:return UZr;case 17:return jZr;case 18:return XZr;case 19:return HZr;case 20:return $Zr;case 21:return YZr;case 22:return VZr;case 23:return KZr;case 24:return JZr;case 25:return WZr;case 26:return qZr;case 27:return zZr;case 28:return QZr;case 29:return ZZr;case 30:return r0r;case 31:return t0r;case 32:return e0r;case 33:return n0r;case 34:return u0r;case 35:return a0r;case 36:return i0r;case 37:return c0r;case 38:return f0r;case 39:return o0r;case 40:return s0r;case 41:return v0r;case 42:return l0r;case 43:return D0r;case 44:return p0r;case 45:return b0r;case 46:return E0r;case 47:return F0r;case 48:return d0r;case 49:return m0r;case 50:return h0r;case 51:return k0r;case 52:return y0r;case 53:return A0r;case 54:return _0r;case 55:return C0r;case 56:return w0r;case 57:return S0r;case 58:return g0r;default:return B0r}}else switch(r[0]){case 0:return L1r;case 1:return P1r;case 2:return R1r;case 3:return M1r;case 4:return G1r;case 5:return U1r;case 6:return j1r;case 7:return X1r;case 8:return H1r;case 9:return $1r;case 10:return Y1r;default:return V1r}},kjt=function(r){if("number"==typeof r){var t=r;if(60<=t)switch(t){case 60:return bQr;case 61:return EQr;case 62:return FQr;case 63:return dQr;case 64:return mQr;case 65:return hQr;case 66:return kQr;case 67:return yQr;case 68:return AQr;case 69:return _Qr;case 70:return CQr;case 71:return wQr;case 72:return SQr;case 73:return gQr;case 74:return BQr;case 75:return TQr;case 76:return IQr;case 77:return OQr;case 78:return NQr;case 79:return xQr;case 80:return LQr;case 81:return PQr;case 82:return RQr;case 83:return MQr;case 84:return GQr;case 85:return UQr;case 86:return jQr;case 87:return XQr;case 88:return HQr;case 89:return $Qr;case 90:return YQr;case 91:return VQr;case 92:return KQr;case 93:return JQr;case 94:return WQr;case 95:return qQr;case 96:return zQr;case 97:return QQr;case 98:return ZQr;case 99:return rZr;case 100:return tZr;case 101:return eZr;case 102:return nZr;case 103:return uZr;case 104:return aZr;case 105:return iZr;case 106:return cZr;case 107:return fZr;case 108:return oZr;case 109:return sZr;case 110:return vZr;case 111:return lZr;case 112:return DZr;case 113:return pZr;case 114:return bZr;case 115:return EZr;case 116:return FZr;case 117:return dZr;default:return mZr}switch(t){case 0:return ozr;case 1:return szr;case 2:return vzr;case 3:return lzr;case 4:return Dzr;case 5:return pzr;case 6:return bzr;case 7:return Ezr;case 8:return Fzr;case 9:return dzr;case 10:return mzr;case 11:return hzr;case 12:return kzr;case 13:return yzr;case 14:return Azr;case 15:return _zr;case 16:return Czr;case 17:return wzr;case 18:return Szr;case 19:return gzr;case 20:return Bzr;case 21:return Tzr;case 22:return Izr;case 23:return Ozr;case 24:return Nzr;case 25:return xzr;case 26:return Lzr;case 27:return Pzr;case 28:return Rzr;case 29:return Mzr;case 30:return Gzr;case 31:return Uzr;case 32:return jzr;case 33:return Xzr;case 34:return Hzr;case 35:return $zr;case 36:return Yzr;case 37:return Vzr;case 38:return Kzr;case 39:return Jzr;case 40:return Wzr;case 41:return qzr;case 42:return zzr;case 43:return Qzr;case 44:return Zzr;case 45:return rQr;case 46:return tQr;case 47:return eQr;case 48:return nQr;case 49:return uQr;case 50:return aQr;case 51:return iQr;case 52:return cQr;case 53:return fQr;case 54:return oQr;case 55:return sQr;case 56:return vQr;case 57:return lQr;case 58:return DQr;default:return pQr}}else switch(r[0]){case 3:return r[1][2][3];case 5:var e=r[1],n=G_t(hZr,e[3]);return G_t(kZr,G_t(e[2],n));case 9:return 0===r[1]?AZr:yZr;case 0:case 1:return r[2];case 2:case 8:return r[1][3];case 6:case 7:return r[1];default:return r[3]}},yjt=function(r){return OI(Awt(fzr),r)},Ajt=function(r,t){var e=r?r[1]:r,n=0;if("number"==typeof t)if(qt===t){var u=Wqr;n=1}else n=2;else switch(t[0]){case 3:u=qqr;n=1;break;case 5:u=zqr;n=1;break;case 6:case 9:n=2;break;case 0:case 10:var a=rzr,i=Zqr;break;case 1:case 11:a=ezr,i=tzr;break;case 2:case 8:a=uzr,i=nzr;break;default:a=izr,i=azr}switch(n){case 1:a=u[1],i=u[2];break;case 2:a=yjt(kjt(t)),i=Qqr}return e?G_t(i,G_t(czr,a)):a},_jt=function(r){if(r){var t=r[1];return 35>>0)var v=JSt(a);else switch(f){case 0:v=2;break;case 2:v=1;break;case 3:if(VSt(a,2),0===bHt(YSt(a))){var F=GXt(YSt(a));if(0===F)v=0===Ijt(YSt(a))&&0===Ijt(YSt(a))&&0===Ijt(YSt(a))?0:JSt(a);else if(1===F&&0===Ijt(YSt(a)))for(;;){var h=Ujt(YSt(a));if(0!==h){v=1===h?0:JSt(a);break}}else v=JSt(a)}else v=JSt(a);break;default:v=0}if(2<=v){if(!(3<=v))return SHt(r,t,37)}else if(0<=v)return r;return P_t(Zet)},RHt=function(r,t,e,n,u){var a=t+qSt(e)|0;return[0,kHt(r,a,t+zSt(e)|0),sgt(e,n,(QSt(e)-n|0)-u|0)]},MHt=function(r,t){for(var e=qSt(r[2]),n=ogt(t),u=RCt(HT(t)),a=r;;){KSt(n);var i=YSt(n);if(i)var c=i[1],f=92>>0)var o=JSt(n);else switch(f){case 0:o=2;break;case 1:for(;;){VSt(n,3);var s=YSt(n);if(s)var v=s[1],l=-1>>0)return P_t(qet);switch(o){case 0:var b=RHt(a,e,n,2,0),E=b[1],F=QT(G_t(zet,b[2])),d=J_t(F)?PHt(a,E,F):SHt(a,E,37);lgt(u,F);a=d;continue;case 1:var m=RHt(a,e,n,3,1),h=QT(G_t(Qet,m[2])),k=PHt(a,m[1],h);lgt(u,h);a=k;continue;case 2:return[0,a,MCt(u)];default:jCt(u,vgt(n));continue}}},GHt=function(r,t,e){var n=THt(r,_Ht(r,t));return WSt(t),NI(e,n,t)},UHt=function(r,t,e){for(var n=r;;){KSt(e);var u=YSt(e);if(u)var a=u[1],i=-1>>0)var c=JSt(e);else switch(i){case 0:for(;;){VSt(e,3);var f=YSt(e);if(f)var o=f[1],s=-1>>0){var p=THt(n,_Ht(n,e));return[0,p,AHt(p,e)]}switch(c){case 0:var b=IHt(n,e);jCt(t,vgt(e));n=b;continue;case 1:var E=n[4]?BHt(n,_Ht(n,e),J1r,K1r):n;return[0,E,AHt(E,e)];case 2:if(n[4])return[0,n,AHt(n,e)];jCt(t,W1r);continue;default:jCt(t,vgt(e));continue}}},jHt=function(r,t,e){for(;;){KSt(e);var n=YSt(e);if(n)var u=n[1],a=13>>0)var i=JSt(e);else switch(a){case 0:i=0;break;case 1:for(;;){VSt(e,2);var c=YSt(e);if(c)var f=c[1],o=-1>>0)return P_t(q1r);switch(i){case 0:return[0,r,AHt(r,e)];case 1:var s=AHt(r,e),v=IHt(r,e),l=QSt(e);return[0,v,[0,s[1],s[2]-l|0]];default:jCt(t,vgt(e));continue}}},XHt=function(r,t){function e(r){return VSt(r,3),0===pXt(YSt(r))?2:JSt(r)}KSt(t);var n=YSt(t);if(n)var u=n[1],a=eS>>0)var i=JSt(t);else switch(a){case 1:i=16;break;case 2:i=15;break;case 3:VSt(t,15);i=0===jXt(YSt(t))?15:JSt(t);break;case 4:VSt(t,4);i=0===pXt(YSt(t))?e(t):JSt(t);break;case 5:VSt(t,11);i=0===pXt(YSt(t))?e(t):JSt(t);break;case 7:i=5;break;case 8:i=6;break;case 9:i=7;break;case 10:i=8;break;case 11:i=9;break;case 12:VSt(t,14);var c=GXt(YSt(t));if(0===c)i=0===Ijt(YSt(t))&&0===Ijt(YSt(t))&&0===Ijt(YSt(t))?12:JSt(t);else if(1===c&&0===Ijt(YSt(t)))for(;;){var f=Ujt(YSt(t));if(0!==f){i=1===f?13:JSt(t);break}}else i=JSt(t);break;case 13:i=10;break;case 14:VSt(t,14);i=0===Ijt(YSt(t))&&0===Ijt(YSt(t))?1:JSt(t);break;default:i=0}if(16>>0)return P_t(Pet);switch(i){case 1:var o=vgt(t);return[0,r,o,[0,QT(G_t(Ret,o))],0];case 2:var s=vgt(t),v=QT(G_t(Met,s));return tn<=v?[0,r,s,[0,v>>>3|0,48+(7&v)|0],1]:[0,r,s,[0,v],1];case 3:var l=vgt(t);return[0,r,l,[0,QT(G_t(Get,l))],1];case 4:return[0,r,Uet,[0,0],0];case 5:return[0,r,jet,[0,8],0];case 6:return[0,r,Xet,[0,12],0];case 7:return[0,r,Het,[0,10],0];case 8:return[0,r,$et,[0,13],0];case 9:return[0,r,Yet,[0,9],0];case 10:return[0,r,Vet,[0,11],0];case 11:var D=vgt(t);return[0,r,D,[0,QT(G_t(Ket,D))],1];case 12:var p=vgt(t);return[0,r,p,[0,QT(G_t(Jet,kCt(p,1,HT(p)-1|0)))],0];case 13:var b=vgt(t),E=QT(G_t(Wet,kCt(b,2,HT(b)-3|0)));return[0,Nw>>0)var v=JSt(a);else switch(s){case 0:v=3;break;case 1:for(;;){VSt(a,4);var l=YSt(a);if(l)var D=l[1],p=-1>>0)return P_t(z1r);switch(v){case 0:var b=vgt(a);if(jCt(n,b),_I(t,b))return[0,i,AHt(i,a),c];jCt(e,b);continue;case 1:jCt(n,Q1r);var E=XHt(i,a),F=E[4]||c;jCt(n,E[2]),CCt((function(r){return lgt(e,r)}),E[3]);i=E[1],c=F;continue;case 2:var d=vgt(a);jCt(n,d);var m=IHt(THt(i,_Ht(i,a)),a);return jCt(e,d),[0,m,AHt(m,a),c];case 3:var h=vgt(a);jCt(n,h);var k=THt(i,_Ht(i,a));return jCt(e,h),[0,k,AHt(k,a),c];default:var y=vgt(a);jCt(n,y),jCt(e,y);continue}}},$Ht=function(r,t,e,n,u){for(var a=r;;){KSt(u);var i=YSt(u);if(i)var c=i[1],f=96>>0)var o=JSt(u);else switch(f){case 0:o=0;break;case 1:for(;;){VSt(u,6);var s=YSt(u);if(s)var v=s[1],l=-1>>0)return P_t(Z1r);switch(o){case 0:return[0,THt(a,_Ht(a,u)),1];case 1:return UCt(n,96),[0,a,1];case 2:return jCt(n,r2r),[0,a,0];case 3:UCt(e,92),UCt(n,92);var E=XHt(a,u),F=E[2];jCt(e,F),jCt(n,F),CCt((function(r){return lgt(t,r)}),E[3]);a=E[1];continue;case 4:jCt(e,t2r),jCt(n,e2r),jCt(t,n2r);a=IHt(a,u);continue;case 5:var d=vgt(u);jCt(e,d),jCt(n,d),UCt(t,10);a=IHt(a,u);continue;default:var m=vgt(u);jCt(e,m),jCt(n,m),jCt(t,m);continue}}},YHt=function(r,t,e,n,u){for(var a=r;;){var i=function(r){for(;;)if(VSt(r,6),0!==aXt(YSt(r)))return JSt(r)};KSt(u);var c=YSt(u);if(c)var f=c[1],o=$d>>0)var s=JSt(u);else switch(o){case 0:s=1;break;case 1:s=i(u);break;case 2:s=2;break;case 3:VSt(u,2);s=0===jXt(YSt(u))?2:JSt(u);break;case 4:s=0;break;case 5:VSt(u,6);var v=YSt(u);if(v)var l=v[1],D=34>>0)return P_t(v2r);switch(s){case 0:var N=vgt(u),x=0;switch(t){case 0:wI(N,l2r)||(x=1);break;case 1:wI(N,D2r)||(x=1);break;default:var L=0;if(wI(N,p2r)){if(!wI(N,b2r))return BHt(a,_Ht(a,u),k2r,h2r);if(wI(N,E2r)){if(!wI(N,F2r))return BHt(a,_Ht(a,u),m2r,d2r);L=1}}if(!L)return WSt(u),a}if(x)return a;jCt(n,N),jCt(e,N);continue;case 1:return THt(a,_Ht(a,u));case 2:var P=vgt(u);jCt(n,P),jCt(e,P);a=IHt(a,u);continue;case 3:var R=vgt(u),M=kCt(R,3,HT(R)-4|0);jCt(n,R),lgt(e,QT(G_t(y2r,M)));continue;case 4:var G=vgt(u),U=kCt(G,2,HT(G)-3|0);jCt(n,G),lgt(e,QT(U));continue;case 5:var j=vgt(u),X=kCt(j,1,HT(j)-2|0);jCt(n,j);var H=yT(X,A2r),$=0;if(0<=H)if(0>>0)var a=JSt(t);else switch(u){case 0:a=0;break;case 1:a=6;break;case 2:if(VSt(t,2),0===Sjt(YSt(t))){for(;;)if(VSt(t,2),0!==Sjt(YSt(t))){a=JSt(t);break}}else a=JSt(t);break;case 3:a=1;break;case 4:VSt(t,1);a=0===jXt(YSt(t))?1:JSt(t);break;default:VSt(t,5);var i=tHt(YSt(t));a=0===i?4:1===i?3:JSt(t)}if(6>>0)return P_t(Eet);switch(a){case 0:return[0,r,qt];case 1:return[2,IHt(r,t)];case 2:return[2,r];case 3:var c=yHt(r,t),f=RCt(vA),o=jHt(r,f,t),s=o[1];return[1,s,NHt(s,c,o[2],f,0)];case 4:var v=yHt(r,t),l=RCt(vA),D=UHt(r,l,t),p=D[1];return[1,p,NHt(p,v,D[2],l,1)];case 5:var b=yHt(r,t),E=RCt(vA),F=r;r:for(;;){KSt(t);var d=YSt(t);if(d)var m=d[1],h=92>>0)var k=JSt(t);else switch(h){case 0:k=0;break;case 1:for(;;){VSt(t,7);var y=YSt(t);if(y)var A=y[1],_=-1>>0)k=JSt(t);else switch(S){case 0:k=2;break;case 1:k=1;break;default:VSt(t,1);k=0===jXt(YSt(t))?1:JSt(t)}}if(7>>0)var g=P_t(i2r);else switch(k){case 0:g=[0,SHt(F,_Ht(F,t),25),c2r];break;case 1:g=[0,IHt(SHt(F,_Ht(F,t),25),t),f2r];break;case 3:var B=vgt(t);g=[0,F,kCt(B,1,HT(B)-1|0)];break;case 4:g=[0,F,o2r];break;case 5:for(UCt(E,91);;){KSt(t);var T=YSt(t);if(T)var I=T[1],O=93>>0)var N=JSt(t);else switch(O){case 0:N=0;break;case 1:for(;;){VSt(t,4);var x=YSt(t);if(x)var L=x[1],P=-1>>0)var U=P_t(u2r);else switch(N){case 0:U=F;break;case 1:jCt(E,a2r);continue;case 2:UCt(E,92),UCt(E,93);continue;case 3:UCt(E,93);U=F;break;default:jCt(E,vgt(t));continue}F=U;continue r}case 6:g=[0,IHt(SHt(F,_Ht(F,t),25),t),s2r];break;default:jCt(E,vgt(t));continue}var j=g[1],X=AHt(j,t),H=[0,j[1],b,X],$=g[2];return[0,j,[5,[0,H,MCt(E),$]]]}default:return[0,THt(r,_Ht(r,t)),[6,vgt(t)]]}})),JHt=VHt((function(r,t){function e(r,t){for(;;){VSt(t,12);var e=DXt(YSt(t));if(0!==e)return 1===e?r<50?a(r+1|0,t):BI(a,[0,t]):JSt(t)}}function a(r,t){if(0===bHt(YSt(t))){var n=GXt(YSt(t));if(0===n)return 0===Ijt(YSt(t))&&0===Ijt(YSt(t))&&0===Ijt(YSt(t))?r<50?e(r+1|0,t):BI(e,[0,t]):JSt(t);if(1===n){if(0===Ijt(YSt(t)))for(;;){var u=Ujt(YSt(t));if(0!==u)return 1===u?r<50?e(r+1|0,t):BI(e,[0,t]):JSt(t)}return JSt(t)}return JSt(t)}return JSt(t)}function i(r){return gI(e(0,r))}KSt(t);var c=YSt(t);if(c)var f=c[1],o=tr>>0)var v=JSt(t);else switch(o){case 0:v=0;break;case 1:v=14;break;case 2:if(VSt(t,2),0===Sjt(YSt(t))){for(;;)if(VSt(t,2),0!==Sjt(YSt(t))){v=JSt(t);break}}else v=JSt(t);break;case 3:v=1;break;case 4:VSt(t,1);v=0===jXt(YSt(t))?1:JSt(t);break;case 5:v=13;break;case 6:VSt(t,12);var l=DXt(YSt(t));v=0===l?i(t):1===l?function(r){return gI(a(0,r))}(t):JSt(t);break;case 7:v=10;break;case 8:VSt(t,6);var p=tHt(YSt(t));v=0===p?4:1===p?3:JSt(t);break;case 9:v=9;break;case 10:v=5;break;case 11:v=11;break;case 12:v=7;break;case 13:if(VSt(t,14),0===bHt(YSt(t))){var F=GXt(YSt(t));if(0===F)v=0===Ijt(YSt(t))&&0===Ijt(YSt(t))&&0===Ijt(YSt(t))?i(t):JSt(t);else if(1===F&&0===Ijt(YSt(t)))for(;;){var d=Ujt(YSt(t));if(0!==d){v=1===d?i(t):JSt(t);break}}else v=JSt(t)}else v=JSt(t);break;default:v=8}if(14>>0)return P_t(pet);switch(v){case 0:return[0,r,qt];case 1:return[2,IHt(r,t)];case 2:return[2,r];case 3:var m=yHt(r,t),h=RCt(vA),y=jHt(r,h,t),_=y[1];return[1,_,NHt(_,m,y[2],h,0)];case 4:var S=yHt(r,t),g=RCt(vA),B=UHt(r,g,t),T=B[1];return[1,T,NHt(T,S,B[2],g,1)];case 5:return[0,r,95];case 6:return[0,r,Pm];case 7:return[0,r,96];case 8:return[0,r,0];case 9:return[0,r,83];case 10:return[0,r,10];case 11:return[0,r,79];case 12:return[0,r,[7,vgt(t)]];case 13:var I=vgt(t),N=yHt(r,t),L=RCt(vA),P=RCt(vA);jCt(P,I);var M=_I(I,bet)?0:1,U=YHt(r,M,L,P,t),j=AHt(U,t);jCt(P,I);var H=MCt(L),V=MCt(P);return[0,U,[8,[0,[0,U[1],N,j],H,V]]];default:return[0,r,[6,vgt(t)]]}})),WHt=VHt((function(r,t){KSt(t);var e=YSt(t);if(e)var n=e[1],u=-1>>0)var a=JSt(t);else switch(u){case 0:a=5;break;case 1:if(VSt(t,1),0===Sjt(YSt(t))){for(;;)if(VSt(t,1),0!==Sjt(YSt(t))){a=JSt(t);break}}else a=JSt(t);break;case 2:a=0;break;case 3:VSt(t,0);a=0===jXt(YSt(t))?0:JSt(t);break;case 4:VSt(t,5);var i=tHt(YSt(t));a=0===i?3:1===i?2:JSt(t);break;default:a=4}if(5>>0)return P_t(set);switch(a){case 0:return[2,IHt(r,t)];case 1:return[2,r];case 2:var c=yHt(r,t),f=RCt(vA),o=jHt(r,f,t),s=o[1];return[1,s,NHt(s,c,o[2],f,0)];case 3:var v=yHt(r,t),l=RCt(vA),D=UHt(r,l,t),p=D[1];return[1,p,NHt(p,v,D[2],l,1)];case 4:var b=yHt(r,t),E=RCt(vA),F=RCt(vA),d=RCt(vA);jCt(d,vet);var m=$Ht(r,E,F,d,t),h=m[1],k=AHt(h,t),y=[0,h[1],b,k],A=m[2],_=MCt(d),C=MCt(F);return[0,h,[3,[0,y,[0,MCt(E),C,_],A]]];default:var w=THt(r,_Ht(r,t));return[0,w,[3,[0,_Ht(w,t),Det,1]]]}})),qHt=VHt((function(r,t){function e(r,t){for(;;){VSt(t,48);var e=Gjt(YSt(t));if(0!==e)return 1===e?r<50?a(r+1|0,t):BI(a,[0,t]):JSt(t)}}function a(r,t){if(0===bHt(YSt(t))){var n=GXt(YSt(t));if(0===n)return 0===Ijt(YSt(t))&&0===Ijt(YSt(t))&&0===Ijt(YSt(t))?r<50?e(r+1|0,t):BI(e,[0,t]):JSt(t);if(1===n){if(0===Ijt(YSt(t)))for(;;){var u=Ujt(YSt(t));if(0!==u)return 1===u?r<50?e(r+1|0,t):BI(e,[0,t]):JSt(t)}return JSt(t)}return JSt(t)}return JSt(t)}function i(r){return gI(e(0,r))}function c(r){return gI(a(0,r))}function f(r){for(;;)if(VSt(r,29),0!==mHt(YSt(r)))return JSt(r)}function v(r){VSt(r,27);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,25),0!==mHt(YSt(r)))return JSt(r);return 1===t?f(r):JSt(r)}function F(r){for(;;)if(VSt(r,23),0!==mHt(YSt(r)))return JSt(r)}function y(r){VSt(r,22);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,21),0!==mHt(YSt(r)))return JSt(r);return 1===t?F(r):JSt(r)}function _(r){for(;;)if(VSt(r,23),0!==mHt(YSt(r)))return JSt(r)}function S(r){VSt(r,22);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,21),0!==mHt(YSt(r)))return JSt(r);return 1===t?_(r):JSt(r)}function g(r){r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,24);var t=YXt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return _(r);case 1:continue;case 2:continue r;default:return S(r)}}return JSt(r)}}function B(r){VSt(r,29);var t=rHt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return f(r);case 1:var e=rXt(YSt(r));if(0===e)for(;;){VSt(r,24);var n=jjt(YSt(r));if(2>>0)return JSt(r);switch(n){case 0:return _(r);case 1:continue;default:return S(r)}}if(1===e)for(;;){VSt(r,24);var u=YXt(YSt(r));if(3>>0)return JSt(r);switch(u){case 0:return _(r);case 1:continue;case 2:return g(r);default:return S(r)}}return JSt(r);case 2:for(;;){VSt(r,24);var a=jjt(YSt(r));if(2>>0)return JSt(r);switch(a){case 0:return F(r);case 1:continue;default:return y(r)}}default:for(;;){VSt(r,24);var i=YXt(YSt(r));if(3>>0)return JSt(r);switch(i){case 0:return F(r);case 1:continue;case 2:return g(r);default:return y(r)}}}}function I(r){for(;;){VSt(r,30);var t=SXt(YSt(r));if(4>>0)return JSt(r);switch(t){case 0:return f(r);case 1:continue;case 2:return B(r);case 3:r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,30);var e=SXt(YSt(r));if(4>>0)return JSt(r);switch(e){case 0:return f(r);case 1:continue;case 2:return B(r);case 3:continue r;default:return v(r)}}return JSt(r)}default:return v(r)}}}function N(r){return 0===Bjt(YSt(r))?I(r):JSt(r)}function L(r){for(;;)if(VSt(r,19),0!==mHt(YSt(r)))return JSt(r)}function P(r){for(;;)if(VSt(r,19),0!==mHt(YSt(r)))return JSt(r)}function M(r){VSt(r,29);var t=Mjt(YSt(r));if(0===t)return f(r);if(1===t)for(;;){VSt(r,20);var e=aHt(YSt(r));if(3>>0)return JSt(r);switch(e){case 0:return P(r);case 1:continue;case 2:r:for(;;){if(0===Ijt(YSt(r)))for(;;){VSt(r,20);var n=aHt(YSt(r));if(3>>0)return JSt(r);switch(n){case 0:return L(r);case 1:continue;case 2:continue r;default:VSt(r,18);var u=vXt(YSt(r));if(0===u)for(;;)if(VSt(r,17),0!==mHt(YSt(r)))return JSt(r);return 1===u?L(r):JSt(r)}}return JSt(r)}default:VSt(r,18);var a=vXt(YSt(r));if(0===a)for(;;)if(VSt(r,17),0!==mHt(YSt(r)))return JSt(r);return 1===a?P(r):JSt(r)}}return JSt(r)}function U(r){for(;;)if(VSt(r,13),0!==mHt(YSt(r)))return JSt(r)}function H(r){for(;;)if(VSt(r,13),0!==mHt(YSt(r)))return JSt(r)}function K(r){VSt(r,29);var t=XXt(YSt(r));if(0===t)return f(r);if(1===t)for(;;){VSt(r,14);var e=KXt(YSt(r));if(3>>0)return JSt(r);switch(e){case 0:return H(r);case 1:continue;case 2:r:for(;;){if(0===pXt(YSt(r)))for(;;){VSt(r,14);var n=KXt(YSt(r));if(3>>0)return JSt(r);switch(n){case 0:return U(r);case 1:continue;case 2:continue r;default:VSt(r,12);var u=vXt(YSt(r));if(0===u)for(;;)if(VSt(r,11),0!==mHt(YSt(r)))return JSt(r);return 1===u?U(r):JSt(r)}}return JSt(r)}default:VSt(r,12);var a=vXt(YSt(r));if(0===a)for(;;)if(VSt(r,11),0!==mHt(YSt(r)))return JSt(r);return 1===a?H(r):JSt(r)}}return JSt(r)}function rr(r){for(;;)if(VSt(r,9),0!==mHt(YSt(r)))return JSt(r)}function er(r){for(;;)if(VSt(r,9),0!==mHt(YSt(r)))return JSt(r)}function ur(r){VSt(r,29);var t=MXt(YSt(r));if(0===t)return f(r);if(1===t)for(;;){VSt(r,10);var e=eHt(YSt(r));if(3>>0)return JSt(r);switch(e){case 0:return er(r);case 1:continue;case 2:r:for(;;){if(0===Qjt(YSt(r)))for(;;){VSt(r,10);var n=eHt(YSt(r));if(3>>0)return JSt(r);switch(n){case 0:return rr(r);case 1:continue;case 2:continue r;default:VSt(r,8);var u=vXt(YSt(r));if(0===u)for(;;)if(VSt(r,7),0!==mHt(YSt(r)))return JSt(r);return 1===u?rr(r):JSt(r)}}return JSt(r)}default:VSt(r,8);var a=vXt(YSt(r));if(0===a)for(;;)if(VSt(r,7),0!==mHt(YSt(r)))return JSt(r);return 1===a?er(r):JSt(r)}}return JSt(r)}function ar(r){VSt(r,28);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,26),0!==mHt(YSt(r)))return JSt(r);return 1===t?f(r):JSt(r)}function fr(r){VSt(r,30);var t=jjt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:return f(r);case 1:for(;;){VSt(r,30);var e=YXt(YSt(r));if(3>>0)return JSt(r);switch(e){case 0:return f(r);case 1:continue;case 2:r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,30);var n=YXt(YSt(r));if(3>>0)return JSt(r);switch(n){case 0:return f(r);case 1:continue;case 2:continue r;default:return v(r)}}return JSt(r)}default:return v(r)}}default:return v(r)}}function sr(r){for(;;){VSt(r,30);var t=Jjt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return f(r);case 1:return fr(r);case 2:continue;default:return ar(r)}}}function vr(r){for(;;)if(VSt(r,15),0!==mHt(YSt(r)))return JSt(r)}function lr(r){VSt(r,15);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,15),0!==mHt(YSt(r)))return JSt(r);return 1===t?vr(r):JSt(r)}function br(r){for(;;){VSt(r,16);var t=nHt(YSt(r));if(4>>0)return JSt(r);switch(t){case 0:return vr(r);case 1:return fr(r);case 2:continue;case 3:for(;;){VSt(r,15);var e=Jjt(YSt(r));if(3>>0)return JSt(r);switch(e){case 0:return vr(r);case 1:return fr(r);case 2:continue;default:return lr(r)}}default:return lr(r)}}}function _r(r){VSt(r,30);var t=CXt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return f(r);case 1:for(;;){VSt(r,30);var e=SXt(YSt(r));if(4>>0)return JSt(r);switch(e){case 0:return f(r);case 1:continue;case 2:return B(r);case 3:r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,30);var n=SXt(YSt(r));if(4>>0)return JSt(r);switch(n){case 0:return f(r);case 1:continue;case 2:return B(r);case 3:continue r;default:return v(r)}}return JSt(r)}default:return v(r)}}case 2:return B(r);default:return v(r)}}function Br(r){VSt(r,30);var t=UXt(YSt(r));if(8>>0)return JSt(r);switch(t){case 0:return f(r);case 1:return _r(r);case 2:return br(r);case 3:return sr(r);case 4:return ur(r);case 5:return B(r);case 6:return K(r);case 7:return M(r);default:return ar(r)}}function Nr(r){r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,30);var t=WXt(YSt(r));if(4>>0)return JSt(r);switch(t){case 0:return f(r);case 1:return fr(r);case 2:continue;case 3:continue r;default:return ar(r)}}return JSt(r)}}function Lr(r){for(;;){VSt(r,30);var t=tXt(YSt(r));if(5>>0)return JSt(r);switch(t){case 0:return f(r);case 1:return _r(r);case 2:continue;case 3:return B(r);case 4:return Nr(r);default:return ar(r)}}}function Rr(r){return VSt(r,3),0===dHt(YSt(r))?3:JSt(r)}function Mr(r){return 0===OXt(YSt(r))&&0===EXt(YSt(r))&&0===uHt(YSt(r))&&0===TXt(YSt(r))&&0===IXt(YSt(r))&&0===bXt(YSt(r))&&0===FXt(YSt(r))&&0===OXt(YSt(r))&&0===bHt(YSt(r))&&0===NXt(YSt(r))&&0===QXt(YSt(r))?3:JSt(r)}KSt(t);var jr=YSt(t);if(jr)var Hr=jr[1],Yr=tr>>0)var qr=JSt(t);else switch(Yr){case 0:qr=80;break;case 1:qr=81;break;case 2:if(VSt(t,1),0===Sjt(YSt(t))){for(;;)if(VSt(t,1),0!==Sjt(YSt(t))){qr=JSt(t);break}}else qr=JSt(t);break;case 3:qr=0;break;case 4:VSt(t,0);qr=0===jXt(YSt(t))?0:JSt(t);break;case 5:qr=6;break;case 6:VSt(t,48);var Zr=Gjt(YSt(t));qr=0===Zr?i(t):1===Zr?c(t):JSt(t);break;case 7:if(VSt(t,81),0===FXt(YSt(t))){var et=YSt(t);if(et)var nt=et[1],ut=ul>>0)qr=JSt(t);else switch(vt){case 0:for(;;){var lt=mXt(YSt(t));if(3>>0)qr=JSt(t);else switch(lt){case 0:continue;case 1:qr=N(t);break;case 2:qr=Br(t);break;default:qr=Lr(t)}break}break;case 1:qr=N(t);break;case 2:qr=Br(t);break;default:qr=Lr(t)}break;case 15:VSt(t,59);var Dt=RXt(YSt(t));qr=0===Dt?0===Cjt(YSt(t))?58:JSt(t):1===Dt?I(t):JSt(t);break;case 16:VSt(t,81);var bt=tHt(YSt(t));if(0===bt){VSt(t,2);var Et=Wjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Et){case 0:for(;;){var Ft=Wjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ft){case 0:continue;case 1:qr=Rr(t);break;default:qr=Mr(t)}break}break;case 1:qr=Rr(t);break;default:qr=Mr(t)}}else qr=1===bt?5:JSt(t);break;case 17:VSt(t,30);var mt=UXt(YSt(t));if(8>>0)qr=JSt(t);else switch(mt){case 0:qr=f(t);break;case 1:qr=_r(t);break;case 2:qr=br(t);break;case 3:qr=sr(t);break;case 4:qr=ur(t);break;case 5:qr=B(t);break;case 6:qr=K(t);break;case 7:qr=M(t);break;default:qr=ar(t)}break;case 18:VSt(t,30);var kt=tXt(YSt(t));if(5>>0)qr=JSt(t);else switch(kt){case 0:qr=f(t);break;case 1:qr=_r(t);break;case 2:qr=Lr(t);break;case 3:qr=B(t);break;case 4:qr=Nr(t);break;default:qr=ar(t)}break;case 19:qr=62;break;case 20:qr=60;break;case 21:qr=67;break;case 22:VSt(t,69);var At=YSt(t);if(At)var Tt=At[1],Nt=61>>0)qr=JSt(t);else switch(Xt){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var $t=hXt(YSt(t));if(2<$t>>>0)qr=JSt(t);else switch($t){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,31);var Yt=Gjt(YSt(t));qr=0===Yt?i(t):1===Yt?c(t):JSt(t)}}break;case 29:VSt(t,48);var Vt=lHt(YSt(t));if(3>>0)qr=JSt(t);else switch(Vt){case 0:qr=i(t);break;case 1:qr=c(t);break;case 2:VSt(t,48);var re=xjt(YSt(t));if(2>>0)qr=JSt(t);else switch(re){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var te=vHt(YSt(t));if(2>>0)qr=JSt(t);else switch(te){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var ue=zjt(YSt(t));if(2>>0)qr=JSt(t);else switch(ue){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var fe=VXt(YSt(t));if(2>>0)qr=JSt(t);else switch(fe){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,41);var oe=Gjt(YSt(t));qr=0===oe?i(t):1===oe?c(t):JSt(t)}}}}break;default:VSt(t,48);var le=fHt(YSt(t));if(2>>0)qr=JSt(t);else switch(le){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var De=yXt(YSt(t));if(2>>0)qr=JSt(t);else switch(De){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,32);var pe=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(pe){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var de=uXt(YSt(t));if(2>>0)qr=JSt(t);else switch(de){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var me=zjt(YSt(t));if(2>>0)qr=JSt(t);else switch(me){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,33);var he=Gjt(YSt(t));qr=0===he?i(t):1===he?c(t):JSt(t)}}}}}}break;case 30:VSt(t,48);var ye=YSt(t);if(ye)var Ae=ye[1],Ie=35>>0)qr=JSt(t);else switch(Ie){case 0:qr=i(t);break;case 1:qr=c(t);break;case 2:VSt(t,48);var xe=Rjt(YSt(t));if(2>>0)qr=JSt(t);else switch(xe){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Le=VXt(YSt(t));if(2>>0)qr=JSt(t);else switch(Le){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Re=hXt(YSt(t));if(2>>0)qr=JSt(t);else switch(Re){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,34);var Ge=Gjt(YSt(t));qr=0===Ge?i(t):1===Ge?c(t):JSt(t)}}}break;default:VSt(t,48);var Ue=VXt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ue){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var He=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(He){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var $e=zjt(YSt(t));if(2<$e>>>0)qr=JSt(t);else switch($e){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Ke=Tjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ke){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var qe=iHt(YSt(t));if(2>>0)qr=JSt(t);else switch(qe){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,35);var Qe=Gjt(YSt(t));qr=0===Qe?i(t):1===Qe?c(t):JSt(t)}}}}}}break;case 31:VSt(t,48);var rn=uXt(YSt(t));if(2>>0)qr=JSt(t);else switch(rn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var tn=yXt(YSt(t));if(2>>0)qr=JSt(t);else switch(tn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var un=iHt(YSt(t));if(2>>0)qr=JSt(t);else switch(un){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var an=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(an){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,36);var cn=Gjt(YSt(t));qr=0===cn?i(t):1===cn?c(t):JSt(t)}}}}break;case 32:VSt(t,48);var fn=zjt(YSt(t));if(2>>0)qr=JSt(t);else switch(fn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var sn=VXt(YSt(t));if(2>>0)qr=JSt(t);else switch(sn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var vn=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(vn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var ln=oXt(YSt(t));if(2>>0)qr=JSt(t);else switch(ln){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var pn=cHt(YSt(t));if(2>>0)qr=JSt(t);else switch(pn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var mn=uXt(YSt(t));if(2>>0)qr=JSt(t);else switch(mn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var yn=xXt(YSt(t));if(2>>0)qr=JSt(t);else switch(yn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var An=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(An){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,37);var Tn=Gjt(YSt(t));qr=0===Tn?i(t):1===Tn?c(t):JSt(t)}}}}}}}}break;case 33:VSt(t,48);var In=vHt(YSt(t));if(2>>0)qr=JSt(t);else switch(In){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Nn=YSt(t);if(Nn)var Ln=Nn[1],Pn=35>>0)qr=JSt(t);else switch(Pn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Gn=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Gn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Un=Tjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Un){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,38);var jn=Gjt(YSt(t));qr=0===jn?i(t):1===jn?c(t):JSt(t)}}}}break;case 34:VSt(t,48);var Yn=wjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Yn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Vn=YSt(t);if(Vn)var Jn=Vn[1],qn=35>>0)qr=JSt(t);else switch(qn){case 0:qr=i(t);break;case 1:qr=c(t);break;case 2:VSt(t,48);var Qn=yXt(YSt(t));if(2>>0)qr=JSt(t);else switch(Qn){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,39);var ru=Gjt(YSt(t));qr=0===ru?i(t):1===ru?c(t):JSt(t)}break;default:VSt(t,48);var tu=qXt(YSt(t));if(2>>0)qr=JSt(t);else switch(tu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var eu=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(eu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var fu=oXt(YSt(t));if(2>>0)qr=JSt(t);else switch(fu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,40);var ou=Gjt(YSt(t));qr=0===ou?i(t):1===ou?c(t):JSt(t)}}}}}break;case 35:VSt(t,48);var su=YSt(t);if(su)var vu=su[1],pu=35>>0)qr=JSt(t);else switch(pu){case 0:qr=i(t);break;case 1:qr=c(t);break;case 2:VSt(t,48);var Eu=YSt(t);if(Eu)var yu=Eu[1],Au=35>>0)qr=JSt(t);else switch(Au){case 0:qr=i(t);break;case 1:qr=c(t);break;case 2:VSt(t,48);var _u=VXt(YSt(t));if(2<_u>>>0)qr=JSt(t);else switch(_u){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Bu=vHt(YSt(t));if(2>>0)qr=JSt(t);else switch(Bu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Iu=xXt(YSt(t));if(2>>0)qr=JSt(t);else switch(Iu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,42);var Nu=Gjt(YSt(t));qr=0===Nu?i(t):1===Nu?c(t):JSt(t)}}}break;default:VSt(t,48);var Mu=vHt(YSt(t));if(2>>0)qr=JSt(t);else switch(Mu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var ju=zjt(YSt(t));if(2>>0)qr=JSt(t);else switch(ju){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Vu=xjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Vu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,43);var Ku=Gjt(YSt(t));qr=0===Ku?i(t):1===Ku?c(t):JSt(t)}}}}break;default:VSt(t,48);var Wu=$Xt(YSt(t));if(2>>0)qr=JSt(t);else switch(Wu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var qu=qXt(YSt(t));if(2>>0)qr=JSt(t);else switch(qu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var zu=fHt(YSt(t));if(2>>0)qr=JSt(t);else switch(zu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Qu=yXt(YSt(t));if(2>>0)qr=JSt(t);else switch(Qu){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,47);var Zu=Gjt(YSt(t));qr=0===Zu?i(t):1===Zu?c(t):JSt(t)}}}}}break;case 36:VSt(t,48);var aa=YSt(t);if(aa)var la=aa[1],pa=35>>0)qr=JSt(t);else switch(pa){case 0:qr=i(t);break;case 1:qr=c(t);break;case 2:VSt(t,48);var Ea=wjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ea){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var da=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(da){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,44);var ha=Gjt(YSt(t));qr=0===ha?i(t):1===ha?c(t):JSt(t)}}break;default:VSt(t,48);var _a=Rjt(YSt(t));if(2<_a>>>0)qr=JSt(t);else switch(_a){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Ca=gjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ca){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var wa=fHt(YSt(t));if(2>>0)qr=JSt(t);else switch(wa){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Sa=cHt(YSt(t));if(2>>0)qr=JSt(t);else switch(Sa){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,45);var Ba=Gjt(YSt(t));qr=0===Ba?i(t):1===Ba?c(t):JSt(t)}}}}}break;case 37:VSt(t,48);var Na=fHt(YSt(t));if(2>>0)qr=JSt(t);else switch(Na){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Ra=vHt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ra){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,48);var Ma=Tjt(YSt(t));if(2>>0)qr=JSt(t);else switch(Ma){case 0:qr=i(t);break;case 1:qr=c(t);break;default:VSt(t,46);var Xa=Gjt(YSt(t));qr=0===Xa?i(t):1===Xa?c(t):JSt(t)}}}break;case 38:VSt(t,52);var Va=YSt(t);if(Va)var Ja=Va[1],ai=Hp>>0)return P_t(uet);var li=qr;if(41<=li)switch(li){case 41:return[0,r,LC];case 42:return[0,r,42];case 43:return[0,r,AF];case 44:return[0,r,31];case 46:return[0,r,Se];case 47:return[0,r,Em];case 48:var Di=_Ht(r,t),pi=vgt(t),Ei=MHt(r,pi);return[0,Ei[1],[4,Di,Ei[2],pi]];case 49:return[0,r,66];case 52:return[0,r,0];case 53:return[0,r,1];case 54:return[0,r,2];case 55:return[0,r,3];case 56:return[0,r,4];case 57:return[0,r,5];case 58:return[0,r,12];case 59:return[0,r,10];case 60:return[0,r,8];case 61:return[0,r,9];case 63:return[0,r,80];case 67:return[0,r,95];case 68:return[0,r,96];case 71:return[0,r,ul];case 73:return[0,r,86];case 74:return[0,r,88];case 76:return[0,r,11];case 78:return[0,r,ku];case 79:return[0,r,Um];case 80:return[0,r[4]?SHt(r,_Ht(r,t),6):r,qt];case 81:return[0,r,[6,vgt(t)]];case 45:case 75:return[0,r,46];case 50:case 65:return[0,r,6];case 51:case 66:return[0,r,7];case 62:case 72:return[0,r,83];case 64:case 70:return[0,r,82];default:return[0,r,79]}switch(li){case 0:return[2,IHt(r,t)];case 1:return[2,r];case 2:var Fi=yHt(r,t),di=RCt(vA),mi=UHt(r,di,t),yi=mi[1];return[1,yi,NHt(yi,Fi,mi[2],di,1)];case 3:var Ai=vgt(t);if(r[5]){var wi=r[4]?gHt(r,_Ht(r,t),Ai):r,Ti=mjt(1,wi),Ni=QSt(t);return _I(sgt(t,Ni-1|0,1),aet)&&wI(sgt(t,Ni-2|0,1),iet)?[0,Ti,83]:[2,Ti]}var Pi=yHt(r,t),Gi=RCt(vA);jCt(Gi,Ai);var Xi=UHt(r,Gi,t),Ki=Xi[1];return[1,Ki,NHt(Ki,Pi,Xi[2],Gi,1)];case 4:return r[4]?[2,mjt(0,r)]:(WSt(t),KSt(t),0===(0===_Xt(YSt(t))?0:JSt(t))?[0,r,ul]:P_t(cet));case 5:var Ji=yHt(r,t),Wi=RCt(vA),qi=jHt(r,Wi,t),rc=qi[1];return[1,rc,NHt(rc,Ji,qi[2],Wi,0)];case 6:var tc=vgt(t),nc=yHt(r,t),ic=RCt(vA),fc=RCt(vA);jCt(fc,tc);var Dc=HHt(r,tc,ic,fc,0,t),Ec=Dc[1],mc=[0,Ec[1],nc,Dc[2]],hc=Dc[3],_c=MCt(fc);return[0,Ec,[2,[0,mc,MCt(ic),_c,hc]]];case 7:return GHt(r,t,(function(r,t){function e(r){if(0===sXt(YSt(r))){if(0===Qjt(YSt(r)))for(;;){var t=Vjt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Qjt(YSt(r)))for(;;){var e=Vjt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}return JSt(r)}return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,LHt(0,vgt(t))]:P_t(net)}));case 8:return[0,r,LHt(0,vgt(t))];case 9:return GHt(r,t,(function(r,t){function e(r){if(0===sXt(YSt(r))){if(0===Qjt(YSt(r)))for(;;){VSt(r,0);var t=Yjt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===Qjt(YSt(r)))for(;;){VSt(r,0);var e=Yjt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}return JSt(r)}return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,xHt(0,vgt(t))]:P_t(eet)}));case 10:return[0,r,xHt(0,vgt(t))];case 11:return GHt(r,t,(function(r,t){function e(r){if(0===AXt(YSt(r))){if(0===pXt(YSt(r)))for(;;){var t=cXt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===pXt(YSt(r)))for(;;){var e=cXt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}return JSt(r)}return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,LHt(1,vgt(t))]:P_t(tet)}));case 12:return[0,r,LHt(1,vgt(t))];case 13:return GHt(r,t,(function(r,t){function e(r){if(0===AXt(YSt(r))){if(0===pXt(YSt(r)))for(;;){VSt(r,0);var t=Zjt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===pXt(YSt(r)))for(;;){VSt(r,0);var e=Zjt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}return JSt(r)}return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,xHt(3,vgt(t))]:P_t(ret)}));case 14:return[0,r,xHt(3,vgt(t))];case 15:return GHt(r,t,(function(r,t){function e(r){if(0===pXt(YSt(r)))for(;;)if(VSt(r,0),0!==pXt(YSt(r)))return JSt(r);return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,xHt(1,vgt(t))]:P_t(Ztt)}));case 16:return[0,r,xHt(1,vgt(t))];case 17:return GHt(r,t,(function(r,t){function e(r){if(0===Ljt(YSt(r))){if(0===Ijt(YSt(r)))for(;;){var t=Kjt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Ijt(YSt(r)))for(;;){var e=Kjt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}return JSt(r)}return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,LHt(2,vgt(t))]:P_t(Qtt)}));case 19:return GHt(r,t,(function(r,t){function e(r){if(0===Ljt(YSt(r))){if(0===Ijt(YSt(r)))for(;;){VSt(r,0);var t=LXt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===Ijt(YSt(r)))for(;;){VSt(r,0);var e=LXt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}return JSt(r)}return JSt(r)}KSt(t);var n=BXt(YSt(t));if(0===n)for(;;){var u=Xjt(YSt(t));if(0!==u){var a=1===u?e(t):JSt(t);break}}else a=1===n?e(t):JSt(t);return 0===a?[0,r,xHt(4,vgt(t))]:P_t(ztt)}));case 21:return GHt(r,t,(function(r,t){function e(r){for(;;){var t=Ojt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=Ojt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}}function n(r){for(;;){var t=iXt(YSt(r));if(0!==t)return 1===t?0:JSt(r)}}function u(r){var t=sHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:var u=rXt(YSt(r));return 0===u?n(r):1===u?e(r):JSt(r);case 1:return n(r);default:return e(r)}}function a(r){if(0===Bjt(YSt(r)))for(;;){var t=oHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:return u(r);default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=oHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:return u(r);default:continue r}}return JSt(r)}}}return JSt(r)}function i(r){var t=wXt(YSt(r));if(0===t)for(;;){var e=oHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:return u(r);default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var n=oHt(YSt(r));if(2>>0)return JSt(r);switch(n){case 0:continue;case 1:return u(r);default:continue r}}return JSt(r)}}}return 1===t?u(r):JSt(r)}function c(r){var t=Hjt(YSt(r));return 0===t?i(r):1===t?u(r):JSt(r)}function f(r){for(;;){var t=kXt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:return i(r);case 1:continue;default:return u(r)}}}KSt(t);var o=qjt(YSt(t));if(3>>0)var s=JSt(t);else switch(o){case 0:for(;;){var v=mXt(YSt(t));if(3>>0)s=JSt(t);else switch(v){case 0:continue;case 1:s=a(t);break;case 2:s=c(t);break;default:s=f(t)}break}break;case 1:s=a(t);break;case 2:s=c(t);break;default:s=f(t)}if(0===s){var l=vgt(t);return[0,SHt(r,_Ht(r,t),23),LHt(2,l)]}return P_t(qtt)}));case 22:var Cc=vgt(t);return[0,SHt(r,_Ht(r,t),23),LHt(2,Cc)];case 23:return GHt(r,t,(function(r,t){function e(r){for(;;){VSt(r,0);var t=JXt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,0);var e=JXt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}}function n(r){for(;;)if(VSt(r,0),0!==Bjt(YSt(r)))return JSt(r)}function u(r){var t=sHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:var u=rXt(YSt(r));return 0===u?n(r):1===u?e(r):JSt(r);case 1:return n(r);default:return e(r)}}function a(r){if(0===Bjt(YSt(r)))for(;;){var t=oHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:return u(r);default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=oHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:return u(r);default:continue r}}return JSt(r)}}}return JSt(r)}function i(r){var t=wXt(YSt(r));if(0===t)for(;;){var e=oHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:return u(r);default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var n=oHt(YSt(r));if(2>>0)return JSt(r);switch(n){case 0:continue;case 1:return u(r);default:continue r}}return JSt(r)}}}return 1===t?u(r):JSt(r)}function c(r){var t=Hjt(YSt(r));return 0===t?i(r):1===t?u(r):JSt(r)}function f(r){for(;;){var t=kXt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:return i(r);case 1:continue;default:return u(r)}}}KSt(t);var o=qjt(YSt(t));if(3>>0)var s=JSt(t);else switch(o){case 0:for(;;){var v=mXt(YSt(t));if(3>>0)s=JSt(t);else switch(v){case 0:continue;case 1:s=a(t);break;case 2:s=c(t);break;default:s=f(t)}break}break;case 1:s=a(t);break;case 2:s=c(t);break;default:s=f(t)}return 0===s?[0,r,xHt(4,vgt(t))]:P_t(Wtt)}));case 25:return GHt(r,t,(function(r,t){function e(r){for(;;){var t=Ojt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=Ojt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}}function n(r){return 0===Bjt(YSt(r))?e(r):JSt(r)}function u(r){var t=iXt(YSt(r));return 0===t?e(r):1===t?0:JSt(r)}function a(r){for(;;){var t=RXt(YSt(r));if(0===t)return u(r);if(1!==t)return JSt(r)}}function i(r){for(;;){var t=DHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:return u(r);case 1:continue;default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=DHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:return u(r);case 1:continue;default:continue r}}return JSt(r)}}}}KSt(t);var c=qjt(YSt(t));if(3>>0)var f=JSt(t);else switch(c){case 0:for(;;){var o=mXt(YSt(t));if(3>>0)f=JSt(t);else switch(o){case 0:continue;case 1:f=n(t);break;case 2:f=a(t);break;default:f=i(t)}break}break;case 1:f=n(t);break;case 2:f=a(t);break;default:f=i(t)}if(0===f){var s=vgt(t);return[0,SHt(r,_Ht(r,t),22),LHt(2,s)]}return P_t(Jtt)}));case 26:return GHt(r,t,(function(r,t){function e(r){for(;;){var t=iXt(YSt(r));if(0!==t)return 1===t?0:JSt(r)}}function n(r){for(;;){var t=Ojt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=Ojt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}}KSt(t);var u=YSt(t);if(u)var a=u[1],i=44>>0)var c=JSt(t);else switch(i){case 0:for(;;){var f=ZXt(YSt(t));if(2>>0)c=JSt(t);else switch(f){case 0:continue;case 1:c=e(t);break;default:c=n(t)}break}break;case 1:c=e(t);break;default:c=n(t)}return 0===c?[0,r,LHt(2,vgt(t))]:P_t(Ktt)}));case 27:var wc=vgt(t);return[0,SHt(r,_Ht(r,t),22),LHt(2,wc)];case 29:return GHt(r,t,(function(r,t){function e(r){for(;;){VSt(r,0);var t=JXt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,0);var e=JXt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}}function n(r){return VSt(r,0),0===Bjt(YSt(r))?e(r):JSt(r)}KSt(t);var u=qjt(YSt(t));if(3>>0)var a=JSt(t);else switch(u){case 0:for(;;){var i=ZXt(YSt(t));if(2>>0)a=JSt(t);else switch(i){case 0:continue;case 1:for(;;){VSt(t,0);var c=RXt(YSt(t));if(0===c)a=0;else{if(1===c)continue;a=JSt(t)}break}break;default:for(;;){VSt(t,0);var f=DHt(YSt(t));if(2>>0)a=JSt(t);else switch(f){case 0:a=0;break;case 1:continue;default:r:for(;;){if(0===Bjt(YSt(t)))for(;;){VSt(t,0);var o=DHt(YSt(t));if(2>>0)var s=JSt(t);else switch(o){case 0:s=0;break;case 1:continue;default:continue r}break}else s=JSt(t);a=s;break}}break}}break}break;case 1:a=0===Bjt(YSt(t))?e(t):JSt(t);break;case 2:for(;;){VSt(t,0);var v=RXt(YSt(t));if(0===v)a=n(t);else{if(1===v)continue;a=JSt(t)}break}break;default:for(;;){VSt(t,0);var l=DHt(YSt(t));if(2>>0)a=JSt(t);else switch(l){case 0:a=n(t);break;case 1:continue;default:r:for(;;){if(0===Bjt(YSt(t)))for(;;){VSt(t,0);var D=DHt(YSt(t));if(2>>0)var p=JSt(t);else switch(D){case 0:p=n(t);break;case 1:continue;default:continue r}break}else p=JSt(t);a=p;break}}break}}return 0===a?[0,r,xHt(4,vgt(t))]:P_t(Vtt)}));case 31:return[0,r,Vr];case 32:return[0,r,fet];case 33:return[0,r,oet];case 34:return[0,r,iu];case 35:return[0,r,41];case 36:return[0,r,30];case 37:return[0,r,53];case 38:return[0,r,It];case 39:return[0,r,29];case 40:return[0,r,ki];case 18:case 28:return[0,r,LHt(2,vgt(t))];default:return[0,r,xHt(4,vgt(t))]}})),zHt=VHt((function(r,t){function e(r,t){for(;;){VSt(t,87);var e=Gjt(YSt(t));if(0!==e)return 1===e?r<50?a(r+1|0,t):BI(a,[0,t]):JSt(t)}}function a(r,t){if(0===bHt(YSt(t))){var n=GXt(YSt(t));if(0===n)return 0===Ijt(YSt(t))&&0===Ijt(YSt(t))&&0===Ijt(YSt(t))?r<50?e(r+1|0,t):BI(e,[0,t]):JSt(t);if(1===n){if(0===Ijt(YSt(t)))for(;;){var u=Ujt(YSt(t));if(0!==u)return 1===u?r<50?e(r+1|0,t):BI(e,[0,t]):JSt(t)}return JSt(t)}return JSt(t)}return JSt(t)}function i(r){return gI(e(0,r))}function c(r){return gI(a(0,r))}function f(r){for(;;)if(VSt(r,34),0!==mHt(YSt(r)))return JSt(r)}function v(r){for(;;)if(VSt(r,28),0!==mHt(YSt(r)))return JSt(r)}function F(r){VSt(r,27);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,26),0!==mHt(YSt(r)))return JSt(r);return 1===t?v(r):JSt(r)}function y(r){for(;;)if(VSt(r,28),0!==mHt(YSt(r)))return JSt(r)}function _(r){VSt(r,27);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,26),0!==mHt(YSt(r)))return JSt(r);return 1===t?y(r):JSt(r)}function g(r){r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,29);var t=YXt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return y(r);case 1:continue;case 2:continue r;default:return _(r)}}return JSt(r)}}function I(r){VSt(r,34);var t=rHt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return f(r);case 1:var e=rXt(YSt(r));if(0===e)for(;;){VSt(r,29);var n=jjt(YSt(r));if(2>>0)return JSt(r);switch(n){case 0:return y(r);case 1:continue;default:return _(r)}}if(1===e)for(;;){VSt(r,29);var u=YXt(YSt(r));if(3>>0)return JSt(r);switch(u){case 0:return y(r);case 1:continue;case 2:return g(r);default:return _(r)}}return JSt(r);case 2:for(;;){VSt(r,29);var a=jjt(YSt(r));if(2>>0)return JSt(r);switch(a){case 0:return v(r);case 1:continue;default:return F(r)}}default:for(;;){VSt(r,29);var i=YXt(YSt(r));if(3>>0)return JSt(r);switch(i){case 0:return v(r);case 1:continue;case 2:return g(r);default:return F(r)}}}}function N(r){VSt(r,32);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,30),0!==mHt(YSt(r)))return JSt(r);return 1===t?f(r):JSt(r)}function L(r){return VSt(r,4),0===dHt(YSt(r))?4:JSt(r)}function P(r){return 0===OXt(YSt(r))&&0===EXt(YSt(r))&&0===uHt(YSt(r))&&0===TXt(YSt(r))&&0===IXt(YSt(r))&&0===bXt(YSt(r))&&0===FXt(YSt(r))&&0===OXt(YSt(r))&&0===bHt(YSt(r))&&0===NXt(YSt(r))&&0===QXt(YSt(r))?4:JSt(r)}function M(r){VSt(r,35);var t=CXt(YSt(r));if(3>>0)return JSt(r);switch(t){case 0:return f(r);case 1:for(;;){VSt(r,35);var e=SXt(YSt(r));if(4>>0)return JSt(r);switch(e){case 0:return f(r);case 1:continue;case 2:return I(r);case 3:r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,35);var n=SXt(YSt(r));if(4>>0)return JSt(r);switch(n){case 0:return f(r);case 1:continue;case 2:return I(r);case 3:continue r;default:return N(r)}}return JSt(r)}default:return N(r)}}case 2:return I(r);default:return N(r)}}function U(r){for(;;)if(VSt(r,20),0!==mHt(YSt(r)))return JSt(r)}function H(r){VSt(r,35);var t=jjt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:return f(r);case 1:for(;;){VSt(r,35);var e=YXt(YSt(r));if(3>>0)return JSt(r);switch(e){case 0:return f(r);case 1:continue;case 2:r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,35);var n=YXt(YSt(r));if(3>>0)return JSt(r);switch(n){case 0:return f(r);case 1:continue;case 2:continue r;default:return N(r)}}return JSt(r)}default:return N(r)}}default:return N(r)}}function K(r){for(;;)if(VSt(r,18),0!==mHt(YSt(r)))return JSt(r)}function rr(r){for(;;)if(VSt(r,18),0!==mHt(YSt(r)))return JSt(r)}function er(r){for(;;)if(VSt(r,12),0!==mHt(YSt(r)))return JSt(r)}function ur(r){for(;;)if(VSt(r,12),0!==mHt(YSt(r)))return JSt(r)}function ar(r){for(;;)if(VSt(r,16),0!==mHt(YSt(r)))return JSt(r)}function fr(r){for(;;)if(VSt(r,16),0!==mHt(YSt(r)))return JSt(r)}function sr(r){for(;;)if(VSt(r,24),0!==mHt(YSt(r)))return JSt(r)}function vr(r){for(;;)if(VSt(r,24),0!==mHt(YSt(r)))return JSt(r)}function lr(r){VSt(r,33);var t=vXt(YSt(r));if(0===t)for(;;)if(VSt(r,31),0!==mHt(YSt(r)))return JSt(r);return 1===t?f(r):JSt(r)}function br(r){r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,35);var t=WXt(YSt(r));if(4>>0)return JSt(r);switch(t){case 0:return f(r);case 1:return H(r);case 2:continue;case 3:continue r;default:return lr(r)}}return JSt(r)}}KSt(t);var _r=YSt(t);if(_r)var Br=_r[1],Nr=tr>>0)var Lr=JSt(t);else switch(Nr){case 0:Lr=146;break;case 1:Lr=147;break;case 2:if(VSt(t,2),0===Sjt(YSt(t))){for(;;)if(VSt(t,2),0!==Sjt(YSt(t))){Lr=JSt(t);break}}else Lr=JSt(t);break;case 3:Lr=0;break;case 4:VSt(t,0);Lr=0===jXt(YSt(t))?0:JSt(t);break;case 5:VSt(t,138);Lr=0===nXt(YSt(t))?(VSt(t,Vr),0===nXt(YSt(t))?Yu:JSt(t)):JSt(t);break;case 6:Lr=8;break;case 7:VSt(t,145);var Rr=YSt(t);if(Rr)var Mr=Rr[1],jr=32>>0)Lr=JSt(t);else switch(et){case 0:VSt(t,133);Lr=0===nXt(YSt(t))?Hp:JSt(t);break;case 1:Lr=5;break;default:Lr=S}break;case 14:VSt(t,130);var nt=YSt(t);if(nt)var ut=nt[1],at=42>>0)Lr=JSt(t);else switch(Dt){case 0:Lr=f(t);break;case 1:continue;case 2:Lr=I(t);break;case 3:r:for(;;){if(0===Bjt(YSt(t)))for(;;){VSt(t,35);var bt=SXt(YSt(t));if(4>>0)var Et=JSt(t);else switch(bt){case 0:Et=f(t);break;case 1:continue;case 2:Et=I(t);break;case 3:continue r;default:Et=N(t)}break}else Et=JSt(t);Lr=Et;break}break;default:Lr=N(t)}break}else Lr=JSt(t);break;case 18:VSt(t,143);var Ft=gXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ft){case 0:VSt(t,3);var mt=Wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(mt){case 0:for(;;){var kt=Wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(kt){case 0:continue;case 1:Lr=L(t);break;default:Lr=P(t)}break}break;case 1:Lr=L(t);break;default:Lr=P(t)}break;case 1:Lr=6;break;default:Lr=142}break;case 19:VSt(t,35);var At=UXt(YSt(t));if(8>>0)Lr=JSt(t);else switch(At){case 0:Lr=f(t);break;case 1:Lr=M(t);break;case 2:for(;;){VSt(t,21);var Tt=nHt(YSt(t));if(4>>0)Lr=JSt(t);else switch(Tt){case 0:Lr=U(t);break;case 1:Lr=H(t);break;case 2:continue;case 3:for(;;){VSt(t,19);var Nt=Jjt(YSt(t));if(3>>0)Lr=JSt(t);else switch(Nt){case 0:Lr=K(t);break;case 1:Lr=H(t);break;case 2:continue;default:VSt(t,18);var xt=vXt(YSt(t));if(0===xt){for(;;)if(VSt(t,18),0!==mHt(YSt(t))){Lr=JSt(t);break}}else Lr=1===xt?K(t):JSt(t)}break}break;default:VSt(t,20);var Gt=vXt(YSt(t));if(0===Gt){for(;;)if(VSt(t,20),0!==mHt(YSt(t))){Lr=JSt(t);break}}else Lr=1===Gt?U(t):JSt(t)}break}break;case 3:for(;;){VSt(t,19);var Xt=Jjt(YSt(t));if(3>>0)Lr=JSt(t);else switch(Xt){case 0:Lr=rr(t);break;case 1:Lr=H(t);break;case 2:continue;default:VSt(t,18);var $t=vXt(YSt(t));if(0===$t){for(;;)if(VSt(t,18),0!==mHt(YSt(t))){Lr=JSt(t);break}}else Lr=1===$t?rr(t):JSt(t)}break}break;case 4:VSt(t,34);var Yt=MXt(YSt(t));if(0===Yt)Lr=f(t);else if(1===Yt)for(;;){VSt(t,13);var Vt=eHt(YSt(t));if(3>>0)Lr=JSt(t);else switch(Vt){case 0:Lr=er(t);break;case 1:continue;case 2:r:for(;;){if(0===Qjt(YSt(t)))for(;;){VSt(t,13);var re=eHt(YSt(t));if(3>>0)var te=JSt(t);else switch(re){case 0:te=ur(t);break;case 1:continue;case 2:continue r;default:VSt(t,11);var ue=vXt(YSt(t));if(0===ue){for(;;)if(VSt(t,10),0!==mHt(YSt(t))){te=JSt(t);break}}else te=1===ue?ur(t):JSt(t)}break}else te=JSt(t);Lr=te;break}break;default:VSt(t,11);var fe=vXt(YSt(t));if(0===fe){for(;;)if(VSt(t,10),0!==mHt(YSt(t))){Lr=JSt(t);break}}else Lr=1===fe?er(t):JSt(t)}break}else Lr=JSt(t);break;case 5:Lr=I(t);break;case 6:VSt(t,34);var oe=XXt(YSt(t));if(0===oe)Lr=f(t);else if(1===oe)for(;;){VSt(t,17);var le=KXt(YSt(t));if(3>>0)Lr=JSt(t);else switch(le){case 0:Lr=ar(t);break;case 1:continue;case 2:r:for(;;){if(0===pXt(YSt(t)))for(;;){VSt(t,17);var De=KXt(YSt(t));if(3>>0)var pe=JSt(t);else switch(De){case 0:pe=fr(t);break;case 1:continue;case 2:continue r;default:VSt(t,15);var de=vXt(YSt(t));if(0===de){for(;;)if(VSt(t,14),0!==mHt(YSt(t))){pe=JSt(t);break}}else pe=1===de?fr(t):JSt(t)}break}else pe=JSt(t);Lr=pe;break}break;default:VSt(t,15);var me=vXt(YSt(t));if(0===me){for(;;)if(VSt(t,14),0!==mHt(YSt(t))){Lr=JSt(t);break}}else Lr=1===me?ar(t):JSt(t)}break}else Lr=JSt(t);break;case 7:VSt(t,34);var he=Mjt(YSt(t));if(0===he)Lr=f(t);else if(1===he)for(;;){VSt(t,25);var ye=aHt(YSt(t));if(3>>0)Lr=JSt(t);else switch(ye){case 0:Lr=sr(t);break;case 1:continue;case 2:r:for(;;){if(0===Ijt(YSt(t)))for(;;){VSt(t,25);var Ae=aHt(YSt(t));if(3>>0)var Ie=JSt(t);else switch(Ae){case 0:Ie=vr(t);break;case 1:continue;case 2:continue r;default:VSt(t,23);var xe=vXt(YSt(t));if(0===xe){for(;;)if(VSt(t,22),0!==mHt(YSt(t))){Ie=JSt(t);break}}else Ie=1===xe?vr(t):JSt(t)}break}else Ie=JSt(t);Lr=Ie;break}break;default:VSt(t,23);var Le=vXt(YSt(t));if(0===Le){for(;;)if(VSt(t,22),0!==mHt(YSt(t))){Lr=JSt(t);break}}else Lr=1===Le?sr(t):JSt(t)}break}else Lr=JSt(t);break;default:Lr=lr(t)}break;case 20:VSt(t,35);var Re=tXt(YSt(t));if(5>>0)Lr=JSt(t);else switch(Re){case 0:Lr=f(t);break;case 1:Lr=M(t);break;case 2:for(;;){VSt(t,35);var Ge=tXt(YSt(t));if(5>>0)Lr=JSt(t);else switch(Ge){case 0:Lr=f(t);break;case 1:Lr=M(t);break;case 2:continue;case 3:Lr=I(t);break;case 4:Lr=br(t);break;default:Lr=lr(t)}break}break;case 3:Lr=I(t);break;case 4:Lr=br(t);break;default:Lr=lr(t)}break;case 21:Lr=99;break;case 22:Lr=97;break;case 23:VSt(t,B);var Ue=YSt(t);if(Ue)var He=Ue[1],$e=59>>0)Lr=JSt(t);else switch(Un){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var jn=hXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(jn){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Yn=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Yn){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Vn=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Vn){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,36);var Jn=Gjt(YSt(t));Lr=0===Jn?i(t):1===Jn?c(t):JSt(t)}}}break;default:VSt(t,87);var qn=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(qn){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Qn=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Qn){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ru=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ru){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,37);var tu=Gjt(YSt(t));Lr=0===tu?i(t):1===tu?c(t):JSt(t)}}}}break;case 34:VSt(t,87);var eu=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(eu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var fu=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(fu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ou=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ou){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var su=_jt(YSt(t));if(2>>0)Lr=JSt(t);else switch(su){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,38);var vu=Gjt(YSt(t));Lr=0===vu?i(t):1===vu?c(t):JSt(t)}}}}break;case 35:VSt(t,87);var pu=YSt(t);if(pu)var Eu=pu[1],yu=35>>0)Lr=JSt(t);else switch(yu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var Au=zXt(YSt(t));if(3>>0)Lr=JSt(t);else switch(Au){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var _u=gjt(YSt(t));if(2<_u>>>0)Lr=JSt(t);else switch(_u){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,39);var Bu=Gjt(YSt(t));Lr=0===Bu?i(t):1===Bu?c(t):JSt(t)}break;default:VSt(t,87);var Iu=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Iu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Nu=pHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Nu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,40);var Mu=Gjt(YSt(t));Lr=0===Mu?i(t):1===Mu?c(t):JSt(t)}}}break;case 3:VSt(t,87);var ju=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ju){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Vu=iHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Vu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ku=iHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ku){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,41);var Wu=Gjt(YSt(t));Lr=0===Wu?i(t):1===Wu?c(t):JSt(t)}}}break;default:VSt(t,87);var qu=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(qu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var zu=zXt(YSt(t));if(3>>0)Lr=JSt(t);else switch(zu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var Qu=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Qu){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,42);var Zu=Gjt(YSt(t));Lr=0===Zu?i(t):1===Zu?c(t):JSt(t)}break;default:VSt(t,87);var aa=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(aa){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var la=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(la){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var pa=wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(pa){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ea=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ea){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,43);var da=Gjt(YSt(t));Lr=0===da?i(t):1===da?c(t):JSt(t)}}}}}}}break;case 36:VSt(t,87);var ha=YSt(t);if(ha)var _a=ha[1],Ca=35<_a?dv<_a?Ut<_a?lc<_a?-1:je<_a?yo<_a?I_<_a?sC<_a?hv<_a?Jd<_a?Vl<_a?Vb<_a?td<_a?0:-1:we<_a?Es<_a?0:-1:0:-1:Qf<_a?Ac<_a?TA<_a?Nl<_a?0:-1:0:-1:Hu<_a?ek<_a?0:-1:0:-1:Wc<_a?_t<_a?Po<_a?Iy<_a?sd<_a?ED<_a?gF<_a?rh<_a?bS<_a?np<_a?0:-1:0:-1:pv<_a?Ot<_a?0:-1:0:-1:sA<_a?Qm<_a?vi<_a?Lo<_a?0:-1:0:-1:Sf<_a?ID<_a?0:-1:0:-1:ty<_a?Ye<_a?cw<_a?MC<_a?Xc<_a?EE<_a?0:-1:0:-1:hi<_a?Yg<_a?0:-1:0:-1:St<_a?Xv<_a?AC<_a?G<_a?0:-1:0:-1:k<_a?hC<_a?0:-1:0:-1:cd<_a?mD<_a?Jb<_a?cu<_a?fk<_a?zA<_a?go<_a?Km<_a?0:-1:0:-1:hn<_a?Be<_a?0:-1:0:-1:fv<_a?kC<_a?jo<_a?dc<_a?0:-1:0:-1:Vh<_a?fE<_a?0:-1:0:-1:sc<_a?Wf<_a?um<_a?qc<_a?CA<_a?uf<_a?0:-1:0:-1:fw<_a?eA<_a?0:-1:0:-1:fm<_a?Gb<_a?Wo<_a?qb<_a?0:-1:0:-1:tF<_a?Qh<_a?0:-1:0:-1:Io<_a?af<_a?Bh<_a?Da<_a?Ta<_a?We<_a?Mn<_a?OE<_a?Dg<_a?iA<_a?KA<_a?hy<_a?0:-1:0:-1:0:Ka<_a?zb<_a?fF<_a?ft<_a?0:-1:0:-1:Yi<_a?gf<_a?0:-1:0:Uy<_a?Pd<_a?Qg<_a?zt<_a?0:-1:ml<_a?wC<_a?0:-1:0:-1:nB<_a?Lh<_a?0:-1:TS<_a?vB<_a?0:-1:0:-1:Us<_a?tv<_a?ni<_a?TD<_a?sB<_a?rg<_a?Ov<_a?Lb<_a?0:-1:0:-1:kp<_a?Oo<_a?0:-1:0:-1:mo<_a?nb<_a?Ed<_a?d<_a?0:-1:0:-1:iw<_a?yf<_a?0:-1:0:-1:kv<_a?RF<_a?_D<_a?ce<_a?Wl<_a?JS<_a?0:-1:0:-1:KD<_a?CD<_a?0:-1:0:-1:wt<_a?Z<_a?il<_a?cA<_a?0:-1:0:-1:JE<_a?HA<_a?0:-1:0:-1:Sl<_a?tm<_a?eh<_a?En<_a?Gv<_a?Rh<_a?Bt<_a?Gu<_a?Yk<_a?Xb<_a?0:-1:0:-1:iE<_a?qy<_a?0:-1:0:-1:nA<_a?Or<_a?Qt<_a?gn<_a?0:-1:0:-1:EA<_a?H_<_a?0:-1:0:-1:Oi<_a?lB<_a?lp<_a?zk<_a?a_<_a?bu<_a?0:-1:0:-1:R<_a?dm<_a?0:-1:0:-1:Bb<_a?Ya<_a?od<_a?S_<_a?0:-1:0:-1:Uc<_a?xn<_a?0:-1:0:-1:$r<_a?o_<_a?fy<_a?fD<_a?Pe<_a?Rf<_a?Dr<_a?vC<_a?0:-1:0:-1:Ik<_a?wS<_a?0:-1:0:-1:bc<_a?Op<_a?OF<_a?Ab<_a?0:-1:0:-1:ud<_a?uh<_a?0:-1:0:-1:$f<_a?W_<_a?Uk<_a?Oh<_a?uc<_a?Jr<_a?0:-1:0:-1:ia<_a?EC<_a?0:-1:0:-1:HD<_a?Go<_a?Zt<_a?DB<_a?0:-1:0:-1:0:-1:pk<_a?$<_a?SE<_a?Ur<_a?aS<_a?Ii<_a?au<_a?Yh<_a?yC<_a?Im<_a?Ou<_a?0:-1:0:-1:cC<_a?oc<_a?0:-1:0:-1:Og<_a?Uu<_a?Pb<_a?Eh<_a?0:-1:0:-1:Cw<_a?b<_a?0:-1:0:-1:sk<_a?fA<_a?OC<_a?Cd<_a?iD<_a?ZA<_a?0:-1:0:-1:OA<_a?fC<_a?0:-1:0:-1:Fn<_a?Fk<_a?Np<_a?0:-1:0:lu<_a?xu<_a?0:-1:0:ns<_a?_b<_a?C<_a?Vs<_a?Bd<_a?xy<_a?0:-1:GC<_a?oS<_a?0:-1:0:-1:Cu<_a?ab<_a?sh<_a?co<_a?0:-1:0:-1:Hw<_a?pc<_a?0:-1:0:-1:wl<_a?Mi<_a?mE<_a?Za<_a?0:-1:Bn<_a?$C<_a?0:-1:0:-1:of<_a?Yd<_a?jS<_a?Ay<_a?0:-1:0:-1:Cs<_a?dF<_a?0:-1:0:-1:ff<_a?BF<_a?Ao<_a?bf<_a?xw<_a?YC<_a?mm<_a?no<_a?_F<_a?Bk<_a?0:-1:0:-1:wh<_a?up<_a?0:-1:0:-1:Sg<_a?0:sD<_a?Hk<_a?0:-1:0:-1:Nh<_a?0:vD<_a?ef<_a?sf<_a?pm<_a?0:-1:0:-1:0:-1:ww<_a?lD<_a?Yy<_a?FS<_a?wy<_a?_k<_a?z_<_a?0:-1:0:-1:om<_a?Qk<_a?0:-1:0:Sy<_a?xc<_a?0:-1:Od<_a?eb<_a?0:-1:0:-1:ie<_a?Bf<_a?_d<_a?rt<_a?0:-1:Aa<_a?Vm<_a?0:-1:0:-1:0:VE<_a?JA<_a?Cn<_a?Tr<_a?ws<_a?WE<_a?Oy<_a?bm<_a?dS<_a?ch<_a?VC<_a?TF<_a?0:-1:Ga<_a?_n<_a?0:-1:0:-1:w<_a&&fg<_a?ea<_a?0:-1:0:Kw<_a?Kh<_a?Du<_a&&tE<_a?Gr<_a?0:-1:0:-1:dn<_a?ph<_a?xp<_a?OD<_a?0:-1:0:-1:Sp<_a?Ck<_a?0:-1:0:_g<_a?WA<_a?L_<_a||db<_a?0:Nk<_a?hw<_a?0:-1:0:-1:ho<_a||Yv<_a?0:cE<_a?wn<_a?0:-1:0:Wk<_a?Jh<_a?jc<_a?EF<_a?Ts<_a&&Pl<_a?ag<_a?0:-1:0:be<_a&&oD<_a?Wv<_a?0:-1:0:-1:vw<_a?Fe<_a?uk<_a?ov<_a?Mf<_a?wA<_a?0:-1:0:-1:0:-1:0:l<_a?fS<_a?yh<_a?hk<_a?nf<_a?Lu<_a?Tp<_a?0:-1:0:-1:0:Wd<_a?0:Ag<_a?Ql<_a?0:-1:0:-1:by<_a&&py<_a&&NF<_a?ME<_a?0:-1:0:f_<_a?Fh<_a?ze<_a?$w<_a?jk<_a?Lt<_a?NC<_a?sl<_a?0:-1:Mc<_a?JD<_a?0:-1:0:-1:0:bn<_a?$E<_a?0:wv<_a?Yw<_a?0:-1:0:R_<_a&&Ha<_a?j_<_a?0:-1:0:zD<_a?T<_a?Y<_a?zF<_a&&Gy<_a?yE<_a?0:-1:0:-1:_i<_a?$k<_a?hS<_a?rC<_a?0:-1:0:-1:0:0:-1:iC<_a?Eg<_a?lC<_a?dD<_a?Jv<_a?B_<_a?0:-1:YF<_a?ls<_a?0:-1:0:0:FF<_a?kS<_a?iS<_a?0:Ze<_a?Jp<_a?0:-1:0:-1:RE<_a?se<_a?Jc<_a?0:-1:0:Os<_a?Xu<_a?0:-1:0:-1:nv<_a?qC<_a?Wp<_a?xb<_a?Ru<_a?zc<_a?Rd<_a?0:-1:0:-1:Vo<_a?wf<_a?0:-1:0:0:-1:tt<_a?vf<_a?iv<_a?mf<_a?Mh<_a?Dn<_a?0:-1:0:-1:Sw<_a?wb<_a?0:-1:0:-1:nD<_a?uy<_a?ot<_a?x<_a?0:-1:0:-1:0:-1:lF<_a?Qi<_a?vs<_a?NS<_a?Ns<_a?Fg<_a?yS<_a?ji<_a&&xm<_a?Ey<_a?0:-1:0:Ll<_a?Af<_a?$s<_a?Fw<_a?0:-1:0:-1:nl<_a?gs<_a?0:-1:0:-1:zE<_a?Ty<_a?Ds<_a?Wh<_a?CF<_a?0:-1:0:-1:Kd<_a?vl<_a?0:-1:0:0:ow<_a?Wg<_a?Co<_a?Yo<_a?Ls<_a?0:-1:hb<_a?ct<_a?0:-1:0:-1:La<_a?QA<_a?0:-1:Zi<_a?jF<_a?0:-1:0:Dl<_a?0:zC<_a?vg<_a?0:-1:YA<_a?PF<_a?0:-1:0:jf<_a?ih<_a?vm<_a?Rn<_a?Ar<_a?ra<_a?cv<_a?0:-1:0:DS<_a?Kt<_a?0:-1:0:-1:0:jt<_a?xo<_a?m<_a?bk<_a?rd<_a?0:-1:0:-1:Pv<_a?gd<_a?0:-1:0:0:uB<_a?xS<_a?ug<_a?Dp<_a?Ee<_a?0:-1:yy<_a?j<_a?0:-1:0:0:-1:Vy<_a?em<_a?_y<_a?eF<_a?Do<_a?0:-1:0:PD<_a?yD<_a?0:-1:0:-1:Zb<_a?yA<_a?Fa<_a?jl<_a?0:-1:0:-1:0:-1:Er<_a?Kf<_a?VA<_a?Fr<_a?Zf<_a?kc<_a?Zg<_a?ka<_a?DC<_a?Fd<_a?yd<_a?0:-1:0:-1:ad<_a?Tv<_a?0:-1:0:-1:oy<_a?QF<_a?XF<_a?zp<_a?0:-1:0:-1:gt<_a?og<_a?0:-1:0:zr<_a?N_<_a?Ug<_a?cD<_a?ND<_a?rS<_a?0:-1:0:-1:Jt<_a?qS<_a?0:-1:0:-1:hg<_a?ck<_a?hs<_a?xF<_a?0:-1:0:-1:Df<_a?YD<_a?0:-1:0:-1:Gf<_a?nr<_a?A<_a?i_<_a?o<_a?0:-1:hm<_a?ta<_a?0:-1:0:du<_a?_p<_a?Sc<_a?ri<_a?0:-1:0:-1:iy<_a?bi<_a?0:-1:0:-1:Rs<_a?Xe<_a?Vv<_a?uD<_a?nn<_a?Li<_a?0:-1:0:-1:bA<_a?oF<_a?0:-1:0:-1:FC<_a?ro<_a?Py<_a?KE<_a?0:-1:0:-1:Zn<_a?Fy<_a?0:-1:0:-1:dw<_a?kk<_a?lw<_a?op<_a?Xk<_a?Bg<_a?on<_a?E<_a?qg<_a?qa<_a?0:-1:0:-1:Ju<_a?BD<_a?0:-1:0:-1:Ct<_a?Qd<_a?Tc<_a?hr<_a?0:-1:0:-1:DA<_a?rp<_a?0:-1:0:-1:sy<_a?yr<_a?Cr<_a?Ms<_a?Ig<_a?0:-1:0:-1:Ib<_a?UC<_a?0:-1:0:qv<_a?Ek<_a?Oe<_a?Lc<_a?0:-1:0:-1:Zc<_a?_h<_a?0:-1:0:-1:Ky<_a?fa<_a?ap<_a?BC<_a?dg<_a?LA<_a?0:-1:0:Wt<_a?DF<_a?0:-1:0:HF<_a?0:yk<_a?ig<_a?0:-1:0:-1:Sn<_a?zS<_a?dr<_a?nu<_a?lm<_a?ja<_a?0:-1:0:-1:Qc<_a?US<_a?0:-1:0:-1:Om<_a?$D<_a?ca<_a?Me<_a?0:-1:0:-1:Wr<_a?as<_a?0:-1:0:-1:xr<_a?_e<_a?IF<_a?rs<_a?s<_a?tB<_a?sv<_a?mr<_a?Qp<_a?pt<_a?Ul<_a?oo<_a?UD<_a?d_<_a?ga<_a?0:-1:0:-1:$m<_a?GS<_a?0:-1:0:-1:Hl<_a?iF<_a?Lf<_a?Tf<_a?0:-1:0:-1:hl<_a?fi<_a?0:-1:0:-1:Mp<_a?0:dt<_a?Hi<_a?Cy<_a?As<_a?0:-1:0:-1:wF<_a?nF<_a?0:-1:0:-1:oa<_a?bw<_a?oE<_a?Z_<_a?$y<_a?Lp<_a?AS<_a?ma<_a?0:-1:0:-1:$b<_a?fs<_a?0:-1:0:-1:BA<_a?xl<_a?mv<_a?Pc<_a?0:-1:0:-1:IE<_a?pB<_a?0:-1:0:-1:ya<_a?uv<_a?Mv<_a?Xw<_a?gy<_a?Ip<_a?0:-1:0:-1:Qw<_a?Xy<_a?0:-1:0:-1:$_<_a?Xn<_a?Tm<_a?vh<_a?0:-1:0:-1:Je<_a?Gh<_a?0:-1:0:-1:po<_a?ql<_a?Bo<_a?en<_a?UA<_a?Ny<_a&&gp<_a?lg<_a?0:-1:0:-1:gr<_a?sa<_a?QE<_a?Gc<_a?0:-1:0:-1:yc<_a?NE<_a?0:-1:0:-1:Kv<_a?ib<_a?Hg<_a?Qr<_a?im<_a?Cf<_a?0:-1:0:-1:bv<_a?za<_a?0:-1:0:-1:Gp<_a?dl<_a?0:-1:0:fh<_a?mh<_a?$h<_a?0:LD<_a?rB<_a?gS<_a?0:-1:0:Ry<_a?O<_a?0:-1:0:-1:Tw<_a?cc<_a?mu<_a?qm<_a?ua<_a?jA<_a?0:-1:0:-1:tg<_a?eo<_a?0:-1:0:-1:Nm<_a&&Su<_a?Vk<_a?0:-1:0:P_<_a?Pu<_a?Qy<_a?ge<_a?QS<_a&&pw<_a?Ht<_a?0:-1:0:X_<_a?Pa<_a?vc<_a?0:-1:0:aC<_a?zm<_a?0:-1:0:0:Wy<_a?zn<_a?0:oh<_a?fB<_a?0:-1:0:Ce<_a?p<_a?ah<_a?rm<_a?Ve<_a?0:-1:0:-1:0:pb<_a?0:RC<_a?ac<_a?0:-1:0:Qa<_a?Gd<_a?bo<_a?0:Kk<_a&&Xl<_a?aA<_a?0:-1:0:To<_a?ZC<_a?0:fp<_a?kn<_a?0:-1:0:ui<_a&&pC<_a?ir<_a?0:-1:0:ew<_a?yt<_a?0:cg<_a?Cb<_a?0:-1:mg<_a?Hh<_a?0:-1:0:bC<_a?kd<_a?pr<_a?0:-1:0:ve<_a?0:Bp<_a?ao<_a?0:-1:0:-1:q<_a?yv<_a?xa<_a?ke<_a?Vc<_a?Pp<_a?CS<_a?Dy<_a?nw<_a?0:-1:J<_a?lb<_a?0:-1:0:Rm<_a?0:Md<_a?vv<_a?0:-1:0:-1:0:jD<_a?Zo<_a?0:wm<_a?ti<_a?Vi<_a?HS<_a?0:-1:0:-1:0:Ne<_a?xC<_a&&Up<_a?wu<_a?0:-1:0:yF<_a?NA<_a?gu<_a?KF<_a?0:-1:0:-1:0:gE<_a?GF<_a?Nd<_a?wr<_a?0:Kb<_a?Yb<_a?Fc<_a?dh<_a?0:-1:0:-1:0:Wn<_a?Vw<_a?Nc<_a&&T_<_a?Jl<_a?0:-1:0:-1:Ci<_a?Kn<_a?0:-1:0:-1:Xd<_a?Ro<_a?lA<_a?qD<_a?Tg<_a?0:Ub<_a?Xs<_a?0:-1:0:-1:$p<_a?W<_a?Ml<_a?wo<_a?0:-1:0:-1:ES<_a?Hn<_a?0:-1:0:-1:Bs<_a?bd<_a?$i<_a?jh<_a?ht<_a?0:-1:0:u<_a?hu<_a?0:-1:0:-1:0:-1:nE<_a?D<_a?SD<_a?LF<_a?Sv<_a?Ua<_a?qF<_a?h<_a&&zi<_a?z<_a?0:-1:0:-1:GD<_a&&Hd<_a?Id<_a?0:-1:0:-1:ee<_a?Wa<_a?qw<_a?0:Rc<_a?sS<_a?0:-1:0:-1:ed<_a?Rv<_a?aD<_a?c_<_a?0:-1:0:-1:Pk<_a?mw<_a?0:-1:0:-1:Fm<_a?pl<_a?th<_a?fl<_a?ZF<_a?wD<_a?Yf<_a?Ff<_a?0:-1:0:-1:eg<_a?$n<_a?0:-1:0:-1:kr<_a?Qv<_a?0:-1:uS<_a?Mb<_a?0:-1:0:-1:qk<_a?MF<_a?uu<_a?ol<_a?Uw<_a?0:-1:0:-1:cr<_a?eE<_a?0:-1:0:RD<_a?ko<_a?0:-1:0:Ic<_a?ak<_a?Q<_a?ys<_a?Fu<_a?na<_a?sp<_a?Ow<_a?aw<_a?0:-1:0:-1:va<_a?Iw<_a?0:-1:0:Uf<_a?dp<_a?0:-1:bB<_a?uA<_a?0:-1:0:-1:Ks<_a?sm<_a&&TC<_a?Iv<_a?0:-1:0:av<_a?Zs<_a?0:-1:QD<_a?aB<_a?0:-1:0:-1:Kr<_a?Uo<_a?Rt<_a?ae<_a?V<_a?uw<_a?n<_a?0:-1:0:AA<_a?PE<_a?0:-1:0:-1:Sb<_a?vd<_a?Zm<_a?gm<_a?0:-1:0:-1:js<_a?IA<_a?0:-1:0:-1:YS<_a?Mt<_a?F_<_a?On<_a?Bi<_a?Te<_a?0:-1:0:-1:Ud<_a?IS<_a?0:-1:0:-1:Dw<_a?zh<_a?xg<_a?qf<_a?0:-1:0:-1:Oc<_a?LE<_a?0:-1:0:-1:CI(Lut,_a+WS|0)-1|0:-1;else Ca=-1;if(3>>0)Lr=JSt(t);else switch(Ca){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var wa=YSt(t);if(wa)var Sa=wa[1],Ba=35>>0)Lr=JSt(t);else switch(Ba){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var Na=wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Na){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ra=xjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ra){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ma=xjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ma){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Xa=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Xa){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Va=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Va){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,44);var Ja=Gjt(YSt(t));Lr=0===Ja?i(t):1===Ja?c(t):JSt(t)}}}}}break;case 3:VSt(t,87);var ai=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ai){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ii=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ii){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ci=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ci){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var si=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(si){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,45);var li=Gjt(YSt(t));Lr=0===li?i(t):1===li?c(t):JSt(t)}}}}break;case 4:VSt(t,87);var Di=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Di){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var pi=wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(pi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ei=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ei){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Fi=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Fi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,46);var di=Gjt(YSt(t));Lr=0===di?i(t):1===di?c(t):JSt(t)}}}}break;default:VSt(t,87);var mi=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(mi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var yi=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(yi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ai=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ai){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,47);var wi=Gjt(YSt(t));Lr=0===wi?i(t):1===wi?c(t):JSt(t)}}}}break;default:VSt(t,48);var Ti=Gjt(YSt(t));Lr=0===Ti?i(t):1===Ti?c(t):JSt(t)}break;case 37:VSt(t,87);var Ni=YSt(t);if(Ni)var Pi=Ni[1],Gi=35>>0)Lr=JSt(t);else switch(Gi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var Xi=iHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Xi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ki=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ki){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,49);var Ji=Gjt(YSt(t));Lr=0===Ji?i(t):1===Ji?c(t):JSt(t)}}break;case 3:VSt(t,87);var Wi=wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Wi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var qi=$Xt(YSt(t));if(2>>0)Lr=JSt(t);else switch(qi){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,50);var rc=Gjt(YSt(t));Lr=0===rc?i(t):1===rc?c(t):JSt(t)}}break;default:VSt(t,87);var tc=YSt(t);if(tc)var nc=tc[1],ic=35>>0)Lr=JSt(t);else switch(ic){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var fc=fHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(fc){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Dc=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Dc){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ec=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ec){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,51);var mc=Gjt(YSt(t));Lr=0===mc?i(t):1===mc?c(t):JSt(t)}}}break;default:VSt(t,87);var hc=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(hc){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var _c=zjt(YSt(t));if(2<_c>>>0)Lr=JSt(t);else switch(_c){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Cc=Tjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Cc){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var wc=iHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(wc){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,52);var gc=Gjt(YSt(t));Lr=0===gc?i(t):1===gc?c(t):JSt(t)}}}}}}break;case 38:VSt(t,87);var Bc=YSt(t);if(Bc)var Hc=Bc[1],$c=35>>0)Lr=JSt(t);else switch($c){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var Yc=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Yc){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var rf=iHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(rf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var cf=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(cf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,53);var lf=Gjt(YSt(t));Lr=0===lf?i(t):1===lf?c(t):JSt(t)}}}break;case 3:VSt(t,87);var pf=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(pf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var df=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(df){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var hf=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(hf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var kf=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(kf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var _f=hXt(YSt(t));if(2<_f>>>0)Lr=JSt(t);else switch(_f){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,54);var If=Gjt(YSt(t));Lr=0===If?i(t):1===If?c(t):JSt(t)}}}}}break;case 4:VSt(t,87);var Of=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Of){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,55);var Nf=Gjt(YSt(t));Lr=0===Nf?i(t):1===Nf?c(t):JSt(t)}break;default:VSt(t,87);var xf=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(xf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Pf=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Pf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Xf=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Xf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Hf=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Hf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Vf=fHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Vf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Jf=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Jf){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,56);var zf=Gjt(YSt(t));Lr=0===zf?i(t):1===zf?c(t):JSt(t)}}}}}}}break;case 39:VSt(t,87);var to=YSt(t);if(to)var uo=to[1],io=35>>0)Lr=JSt(t);else switch(io){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,57);var so=Gjt(YSt(t));Lr=0===so?i(t):1===so?c(t):JSt(t);break;case 3:VSt(t,87);var vo=Rjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(vo){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var lo=YSt(t);if(lo)var Eo=lo[1],Fo=35>>0)Lr=JSt(t);else switch(Fo){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var _o=gjt(YSt(t));if(2<_o>>>0)Lr=JSt(t);else switch(_o){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var So=$Xt(YSt(t));if(2>>0)Lr=JSt(t);else switch(So){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var No=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(No){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Mo=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Mo){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ho=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ho){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var $o=iHt(YSt(t));if(2<$o>>>0)Lr=JSt(t);else switch($o){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,58);var Ko=Gjt(YSt(t));Lr=0===Ko?i(t):1===Ko?c(t):JSt(t)}}}}}}break;default:VSt(t,87);var qo=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(qo){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var zo=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(zo){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,59);var Qo=Gjt(YSt(t));Lr=0===Qo?i(t):1===Qo?c(t):JSt(t)}}}}break;default:VSt(t,60);var ts=zXt(YSt(t));if(3>>0)Lr=JSt(t);else switch(ts){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var es=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(es){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var us=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(us){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var is=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(is){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var cs=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(cs){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var os=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(os){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ss=fHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ss){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ps=cHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ps){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,61);var bs=Gjt(YSt(t));Lr=0===bs?i(t):1===bs?c(t):JSt(t)}}}}}}}break;default:VSt(t,87);var ds=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ds){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ms=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ms){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var _s=cHt(YSt(t));if(2<_s>>>0)Lr=JSt(t);else switch(_s){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ss=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ss){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var xs=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(xs){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ps=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ps){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,62);var Hs=Gjt(YSt(t));Lr=0===Hs?i(t):1===Hs?c(t):JSt(t)}}}}}}}}break;case 40:VSt(t,87);var Ys=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ys){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ws=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ws){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,63);var qs=Gjt(YSt(t));Lr=0===qs?i(t):1===qs?c(t):JSt(t)}}break;case 41:VSt(t,87);var zs=YSt(t);if(zs)var Qs=zs[1],rv=35>>0)Lr=JSt(t);else switch(rv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var ev=EHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ev){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,64);var lv=Gjt(YSt(t));Lr=0===lv?i(t):1===lv?c(t):JSt(t)}break;default:VSt(t,87);var Dv=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Dv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ev=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ev){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,65);var Fv=Gjt(YSt(t));Lr=0===Fv?i(t):1===Fv?c(t):JSt(t)}}}break;case 42:VSt(t,87);var Av=YSt(t);if(Av)var _v=Av[1],Cv=35<_v?dv<_v?Ut<_v?lc<_v?-1:je<_v?yo<_v?I_<_v?sC<_v?hv<_v?Jd<_v?Vl<_v?Vb<_v?td<_v?0:-1:we<_v?Es<_v?0:-1:0:-1:Qf<_v?Ac<_v?TA<_v?Nl<_v?0:-1:0:-1:Hu<_v?ek<_v?0:-1:0:-1:Wc<_v?_t<_v?Po<_v?Iy<_v?sd<_v?ED<_v?gF<_v?rh<_v?bS<_v?np<_v?0:-1:0:-1:pv<_v?Ot<_v?0:-1:0:-1:sA<_v?Qm<_v?vi<_v?Lo<_v?0:-1:0:-1:Sf<_v?ID<_v?0:-1:0:-1:ty<_v?Ye<_v?cw<_v?MC<_v?Xc<_v?EE<_v?0:-1:0:-1:hi<_v?Yg<_v?0:-1:0:-1:St<_v?Xv<_v?AC<_v?G<_v?0:-1:0:-1:k<_v?hC<_v?0:-1:0:-1:cd<_v?mD<_v?Jb<_v?cu<_v?fk<_v?zA<_v?go<_v?Km<_v?0:-1:0:-1:hn<_v?Be<_v?0:-1:0:-1:fv<_v?kC<_v?jo<_v?dc<_v?0:-1:0:-1:Vh<_v?fE<_v?0:-1:0:-1:sc<_v?Wf<_v?um<_v?qc<_v?CA<_v?uf<_v?0:-1:0:-1:fw<_v?eA<_v?0:-1:0:-1:fm<_v?Gb<_v?Wo<_v?qb<_v?0:-1:0:-1:tF<_v?Qh<_v?0:-1:0:-1:Io<_v?af<_v?Bh<_v?Da<_v?Ta<_v?We<_v?Mn<_v?OE<_v?Dg<_v?iA<_v?KA<_v?hy<_v?0:-1:0:-1:0:Ka<_v?zb<_v?fF<_v?ft<_v?0:-1:0:-1:Yi<_v?gf<_v?0:-1:0:Uy<_v?Pd<_v?Qg<_v?zt<_v?0:-1:ml<_v?wC<_v?0:-1:0:-1:nB<_v?Lh<_v?0:-1:TS<_v?vB<_v?0:-1:0:-1:Us<_v?tv<_v?ni<_v?TD<_v?sB<_v?rg<_v?Ov<_v?Lb<_v?0:-1:0:-1:kp<_v?Oo<_v?0:-1:0:-1:mo<_v?nb<_v?Ed<_v?d<_v?0:-1:0:-1:iw<_v?yf<_v?0:-1:0:-1:kv<_v?RF<_v?_D<_v?ce<_v?Wl<_v?JS<_v?0:-1:0:-1:KD<_v?CD<_v?0:-1:0:-1:wt<_v?Z<_v?il<_v?cA<_v?0:-1:0:-1:JE<_v?HA<_v?0:-1:0:-1:Sl<_v?tm<_v?eh<_v?En<_v?Gv<_v?Rh<_v?Bt<_v?Gu<_v?Yk<_v?Xb<_v?0:-1:0:-1:iE<_v?qy<_v?0:-1:0:-1:nA<_v?Or<_v?Qt<_v?gn<_v?0:-1:0:-1:EA<_v?H_<_v?0:-1:0:-1:Oi<_v?lB<_v?lp<_v?zk<_v?a_<_v?bu<_v?0:-1:0:-1:R<_v?dm<_v?0:-1:0:-1:Bb<_v?Ya<_v?od<_v?S_<_v?0:-1:0:-1:Uc<_v?xn<_v?0:-1:0:-1:$r<_v?o_<_v?fy<_v?fD<_v?Pe<_v?Rf<_v?Dr<_v?vC<_v?0:-1:0:-1:Ik<_v?wS<_v?0:-1:0:-1:bc<_v?Op<_v?OF<_v?Ab<_v?0:-1:0:-1:ud<_v?uh<_v?0:-1:0:-1:$f<_v?W_<_v?Uk<_v?Oh<_v?uc<_v?Jr<_v?0:-1:0:-1:ia<_v?EC<_v?0:-1:0:-1:HD<_v?Go<_v?Zt<_v?DB<_v?0:-1:0:-1:0:-1:pk<_v?$<_v?SE<_v?Ur<_v?aS<_v?Ii<_v?au<_v?Yh<_v?yC<_v?Im<_v?Ou<_v?0:-1:0:-1:cC<_v?oc<_v?0:-1:0:-1:Og<_v?Uu<_v?Pb<_v?Eh<_v?0:-1:0:-1:Cw<_v?b<_v?0:-1:0:-1:sk<_v?fA<_v?OC<_v?Cd<_v?iD<_v?ZA<_v?0:-1:0:-1:OA<_v?fC<_v?0:-1:0:-1:Fn<_v?Fk<_v?Np<_v?0:-1:0:lu<_v?xu<_v?0:-1:0:ns<_v?_b<_v?C<_v?Vs<_v?Bd<_v?xy<_v?0:-1:GC<_v?oS<_v?0:-1:0:-1:Cu<_v?ab<_v?sh<_v?co<_v?0:-1:0:-1:Hw<_v?pc<_v?0:-1:0:-1:wl<_v?Mi<_v?mE<_v?Za<_v?0:-1:Bn<_v?$C<_v?0:-1:0:-1:of<_v?Yd<_v?jS<_v?Ay<_v?0:-1:0:-1:Cs<_v?dF<_v?0:-1:0:-1:ff<_v?BF<_v?Ao<_v?bf<_v?xw<_v?YC<_v?mm<_v?no<_v?_F<_v?Bk<_v?0:-1:0:-1:wh<_v?up<_v?0:-1:0:-1:Sg<_v?0:sD<_v?Hk<_v?0:-1:0:-1:Nh<_v?0:vD<_v?ef<_v?sf<_v?pm<_v?0:-1:0:-1:0:-1:ww<_v?lD<_v?Yy<_v?FS<_v?wy<_v?_k<_v?z_<_v?0:-1:0:-1:om<_v?Qk<_v?0:-1:0:Sy<_v?xc<_v?0:-1:Od<_v?eb<_v?0:-1:0:-1:ie<_v?Bf<_v?_d<_v?rt<_v?0:-1:Aa<_v?Vm<_v?0:-1:0:-1:0:VE<_v?JA<_v?Cn<_v?Tr<_v?ws<_v?WE<_v?Oy<_v?bm<_v?dS<_v?ch<_v?VC<_v?TF<_v?0:-1:Ga<_v?_n<_v?0:-1:0:-1:w<_v&&fg<_v?ea<_v?0:-1:0:Kw<_v?Kh<_v?Du<_v&&tE<_v?Gr<_v?0:-1:0:-1:dn<_v?ph<_v?xp<_v?OD<_v?0:-1:0:-1:Sp<_v?Ck<_v?0:-1:0:_g<_v?WA<_v?L_<_v||db<_v?0:Nk<_v?hw<_v?0:-1:0:-1:ho<_v||Yv<_v?0:cE<_v?wn<_v?0:-1:0:Wk<_v?Jh<_v?jc<_v?EF<_v?Ts<_v&&Pl<_v?ag<_v?0:-1:0:be<_v&&oD<_v?Wv<_v?0:-1:0:-1:vw<_v?Fe<_v?uk<_v?ov<_v?Mf<_v?wA<_v?0:-1:0:-1:0:-1:0:l<_v?fS<_v?yh<_v?hk<_v?nf<_v?Lu<_v?Tp<_v?0:-1:0:-1:0:Wd<_v?0:Ag<_v?Ql<_v?0:-1:0:-1:by<_v&&py<_v&&NF<_v?ME<_v?0:-1:0:f_<_v?Fh<_v?ze<_v?$w<_v?jk<_v?Lt<_v?NC<_v?sl<_v?0:-1:Mc<_v?JD<_v?0:-1:0:-1:0:bn<_v?$E<_v?0:wv<_v?Yw<_v?0:-1:0:R_<_v&&Ha<_v?j_<_v?0:-1:0:zD<_v?T<_v?Y<_v?zF<_v&&Gy<_v?yE<_v?0:-1:0:-1:_i<_v?$k<_v?hS<_v?rC<_v?0:-1:0:-1:0:0:-1:iC<_v?Eg<_v?lC<_v?dD<_v?Jv<_v?B_<_v?0:-1:YF<_v?ls<_v?0:-1:0:0:FF<_v?kS<_v?iS<_v?0:Ze<_v?Jp<_v?0:-1:0:-1:RE<_v?se<_v?Jc<_v?0:-1:0:Os<_v?Xu<_v?0:-1:0:-1:nv<_v?qC<_v?Wp<_v?xb<_v?Ru<_v?zc<_v?Rd<_v?0:-1:0:-1:Vo<_v?wf<_v?0:-1:0:0:-1:tt<_v?vf<_v?iv<_v?mf<_v?Mh<_v?Dn<_v?0:-1:0:-1:Sw<_v?wb<_v?0:-1:0:-1:nD<_v?uy<_v?ot<_v?x<_v?0:-1:0:-1:0:-1:lF<_v?Qi<_v?vs<_v?NS<_v?Ns<_v?Fg<_v?yS<_v?ji<_v&&xm<_v?Ey<_v?0:-1:0:Ll<_v?Af<_v?$s<_v?Fw<_v?0:-1:0:-1:nl<_v?gs<_v?0:-1:0:-1:zE<_v?Ty<_v?Ds<_v?Wh<_v?CF<_v?0:-1:0:-1:Kd<_v?vl<_v?0:-1:0:0:ow<_v?Wg<_v?Co<_v?Yo<_v?Ls<_v?0:-1:hb<_v?ct<_v?0:-1:0:-1:La<_v?QA<_v?0:-1:Zi<_v?jF<_v?0:-1:0:Dl<_v?0:zC<_v?vg<_v?0:-1:YA<_v?PF<_v?0:-1:0:jf<_v?ih<_v?vm<_v?Rn<_v?Ar<_v?ra<_v?cv<_v?0:-1:0:DS<_v?Kt<_v?0:-1:0:-1:0:jt<_v?xo<_v?m<_v?bk<_v?rd<_v?0:-1:0:-1:Pv<_v?gd<_v?0:-1:0:0:uB<_v?xS<_v?ug<_v?Dp<_v?Ee<_v?0:-1:yy<_v?j<_v?0:-1:0:0:-1:Vy<_v?em<_v?_y<_v?eF<_v?Do<_v?0:-1:0:PD<_v?yD<_v?0:-1:0:-1:Zb<_v?yA<_v?Fa<_v?jl<_v?0:-1:0:-1:0:-1:Er<_v?Kf<_v?VA<_v?Fr<_v?Zf<_v?kc<_v?Zg<_v?ka<_v?DC<_v?Fd<_v?yd<_v?0:-1:0:-1:ad<_v?Tv<_v?0:-1:0:-1:oy<_v?QF<_v?XF<_v?zp<_v?0:-1:0:-1:gt<_v?og<_v?0:-1:0:zr<_v?N_<_v?Ug<_v?cD<_v?ND<_v?rS<_v?0:-1:0:-1:Jt<_v?qS<_v?0:-1:0:-1:hg<_v?ck<_v?hs<_v?xF<_v?0:-1:0:-1:Df<_v?YD<_v?0:-1:0:-1:Gf<_v?nr<_v?A<_v?i_<_v?o<_v?0:-1:hm<_v?ta<_v?0:-1:0:du<_v?_p<_v?Sc<_v?ri<_v?0:-1:0:-1:iy<_v?bi<_v?0:-1:0:-1:Rs<_v?Xe<_v?Vv<_v?uD<_v?nn<_v?Li<_v?0:-1:0:-1:bA<_v?oF<_v?0:-1:0:-1:FC<_v?ro<_v?Py<_v?KE<_v?0:-1:0:-1:Zn<_v?Fy<_v?0:-1:0:-1:dw<_v?kk<_v?lw<_v?op<_v?Xk<_v?Bg<_v?on<_v?E<_v?qg<_v?qa<_v?0:-1:0:-1:Ju<_v?BD<_v?0:-1:0:-1:Ct<_v?Qd<_v?Tc<_v?hr<_v?0:-1:0:-1:DA<_v?rp<_v?0:-1:0:-1:sy<_v?yr<_v?Cr<_v?Ms<_v?Ig<_v?0:-1:0:-1:Ib<_v?UC<_v?0:-1:0:qv<_v?Ek<_v?Oe<_v?Lc<_v?0:-1:0:-1:Zc<_v?_h<_v?0:-1:0:-1:Ky<_v?fa<_v?ap<_v?BC<_v?dg<_v?LA<_v?0:-1:0:Wt<_v?DF<_v?0:-1:0:HF<_v?0:yk<_v?ig<_v?0:-1:0:-1:Sn<_v?zS<_v?dr<_v?nu<_v?lm<_v?ja<_v?0:-1:0:-1:Qc<_v?US<_v?0:-1:0:-1:Om<_v?$D<_v?ca<_v?Me<_v?0:-1:0:-1:Wr<_v?as<_v?0:-1:0:-1:xr<_v?_e<_v?IF<_v?rs<_v?s<_v?tB<_v?sv<_v?mr<_v?Qp<_v?pt<_v?Ul<_v?oo<_v?UD<_v?d_<_v?ga<_v?0:-1:0:-1:$m<_v?GS<_v?0:-1:0:-1:Hl<_v?iF<_v?Lf<_v?Tf<_v?0:-1:0:-1:hl<_v?fi<_v?0:-1:0:-1:Mp<_v?0:dt<_v?Hi<_v?Cy<_v?As<_v?0:-1:0:-1:wF<_v?nF<_v?0:-1:0:-1:oa<_v?bw<_v?oE<_v?Z_<_v?$y<_v?Lp<_v?AS<_v?ma<_v?0:-1:0:-1:$b<_v?fs<_v?0:-1:0:-1:BA<_v?xl<_v?mv<_v?Pc<_v?0:-1:0:-1:IE<_v?pB<_v?0:-1:0:-1:ya<_v?uv<_v?Mv<_v?Xw<_v?gy<_v?Ip<_v?0:-1:0:-1:Qw<_v?Xy<_v?0:-1:0:-1:$_<_v?Xn<_v?Tm<_v?vh<_v?0:-1:0:-1:Je<_v?Gh<_v?0:-1:0:-1:po<_v?ql<_v?Bo<_v?en<_v?UA<_v?Ny<_v&&gp<_v?lg<_v?0:-1:0:-1:gr<_v?sa<_v?QE<_v?Gc<_v?0:-1:0:-1:yc<_v?NE<_v?0:-1:0:-1:Kv<_v?ib<_v?Hg<_v?Qr<_v?im<_v?Cf<_v?0:-1:0:-1:bv<_v?za<_v?0:-1:0:-1:Gp<_v?dl<_v?0:-1:0:fh<_v?mh<_v?$h<_v?0:LD<_v?rB<_v?gS<_v?0:-1:0:Ry<_v?O<_v?0:-1:0:-1:Tw<_v?cc<_v?mu<_v?qm<_v?ua<_v?jA<_v?0:-1:0:-1:tg<_v?eo<_v?0:-1:0:-1:Nm<_v&&Su<_v?Vk<_v?0:-1:0:P_<_v?Pu<_v?Qy<_v?ge<_v?QS<_v&&pw<_v?Ht<_v?0:-1:0:X_<_v?Pa<_v?vc<_v?0:-1:0:aC<_v?zm<_v?0:-1:0:0:Wy<_v?zn<_v?0:oh<_v?fB<_v?0:-1:0:Ce<_v?p<_v?ah<_v?rm<_v?Ve<_v?0:-1:0:-1:0:pb<_v?0:RC<_v?ac<_v?0:-1:0:Qa<_v?Gd<_v?bo<_v?0:Kk<_v&&Xl<_v?aA<_v?0:-1:0:To<_v?ZC<_v?0:fp<_v?kn<_v?0:-1:0:ui<_v&&pC<_v?ir<_v?0:-1:0:ew<_v?yt<_v?0:cg<_v?Cb<_v?0:-1:mg<_v?Hh<_v?0:-1:0:bC<_v?kd<_v?pr<_v?0:-1:0:ve<_v?0:Bp<_v?ao<_v?0:-1:0:-1:q<_v?yv<_v?xa<_v?ke<_v?Vc<_v?Pp<_v?CS<_v?Dy<_v?nw<_v?0:-1:J<_v?lb<_v?0:-1:0:Rm<_v?0:Md<_v?vv<_v?0:-1:0:-1:0:jD<_v?Zo<_v?0:wm<_v?ti<_v?Vi<_v?HS<_v?0:-1:0:-1:0:Ne<_v?xC<_v&&Up<_v?wu<_v?0:-1:0:yF<_v?NA<_v?gu<_v?KF<_v?0:-1:0:-1:0:gE<_v?GF<_v?Nd<_v?wr<_v?0:Kb<_v?Yb<_v?Fc<_v?dh<_v?0:-1:0:-1:0:Wn<_v?Vw<_v?Nc<_v&&T_<_v?Jl<_v?0:-1:0:-1:Ci<_v?Kn<_v?0:-1:0:-1:Xd<_v?Ro<_v?lA<_v?qD<_v?Tg<_v?0:Ub<_v?Xs<_v?0:-1:0:-1:$p<_v?W<_v?Ml<_v?wo<_v?0:-1:0:-1:ES<_v?Hn<_v?0:-1:0:-1:Bs<_v?bd<_v?$i<_v?jh<_v?ht<_v?0:-1:0:u<_v?hu<_v?0:-1:0:-1:0:-1:nE<_v?D<_v?SD<_v?LF<_v?Sv<_v?Ua<_v?qF<_v?h<_v&&zi<_v?z<_v?0:-1:0:-1:GD<_v&&Hd<_v?Id<_v?0:-1:0:-1:ee<_v?Wa<_v?qw<_v?0:Rc<_v?sS<_v?0:-1:0:-1:ed<_v?Rv<_v?aD<_v?c_<_v?0:-1:0:-1:Pk<_v?mw<_v?0:-1:0:-1:Fm<_v?pl<_v?th<_v?fl<_v?ZF<_v?wD<_v?Yf<_v?Ff<_v?0:-1:0:-1:eg<_v?$n<_v?0:-1:0:-1:kr<_v?Qv<_v?0:-1:uS<_v?Mb<_v?0:-1:0:-1:qk<_v?MF<_v?uu<_v?ol<_v?Uw<_v?0:-1:0:-1:cr<_v?eE<_v?0:-1:0:RD<_v?ko<_v?0:-1:0:Ic<_v?ak<_v?Q<_v?ys<_v?Fu<_v?na<_v?sp<_v?Ow<_v?aw<_v?0:-1:0:-1:va<_v?Iw<_v?0:-1:0:Uf<_v?dp<_v?0:-1:bB<_v?uA<_v?0:-1:0:-1:Ks<_v?sm<_v&&TC<_v?Iv<_v?0:-1:0:av<_v?Zs<_v?0:-1:QD<_v?aB<_v?0:-1:0:-1:Kr<_v?Uo<_v?Rt<_v?ae<_v?V<_v?uw<_v?n<_v?0:-1:0:AA<_v?PE<_v?0:-1:0:-1:Sb<_v?vd<_v?Zm<_v?gm<_v?0:-1:0:-1:js<_v?IA<_v?0:-1:0:-1:YS<_v?Mt<_v?F_<_v?On<_v?Bi<_v?Te<_v?0:-1:0:-1:Ud<_v?IS<_v?0:-1:0:-1:Dw<_v?zh<_v?xg<_v?qf<_v?0:-1:0:-1:Oc<_v?LE<_v?0:-1:0:-1:CI(Iut,_v+WS|0)-1|0:-1;else Cv=-1;if(3>>0)Lr=JSt(t);else switch(Cv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,66);var gv=Gjt(YSt(t));Lr=0===gv?i(t):1===gv?c(t):JSt(t);break;default:VSt(t,87);var Bv=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Bv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Nv=YSt(t);if(Nv)var xv=Nv[1],Lv=35>>0)Lr=JSt(t);else switch(Lv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Uv=wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Uv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var jv=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(jv){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,67);var Hv=Gjt(YSt(t));Lr=0===Hv?i(t):1===Hv?c(t):JSt(t)}}}}}break;case 43:VSt(t,87);var $v=YSt(t);if($v)var Zv=$v[1],rl=35>>0)Lr=JSt(t);else switch(rl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var tl=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(tl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var el=_jt(YSt(t));if(2>>0)Lr=JSt(t);else switch(el){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var cl=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(cl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var ll=xjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ll){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var bl=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(bl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,68);var El=Gjt(YSt(t));Lr=0===El?i(t):1===El?c(t):JSt(t)}}}}}break;case 3:VSt(t,87);var Fl=lHt(YSt(t));if(3>>0)Lr=JSt(t);else switch(Fl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var yl=YSt(t);if(yl)var Al=yl[1],_l=35>>0)Lr=JSt(t);else switch(_l){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Cl=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Cl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Bl=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Bl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Il=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Il){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,69);var Ol=Gjt(YSt(t));Lr=0===Ol?i(t):1===Ol?c(t):JSt(t)}}}}break;default:VSt(t,87);var Gl=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Gl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var $l=gjt(YSt(t));if(2<$l>>>0)Lr=JSt(t);else switch($l){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Yl=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Yl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Kl=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Kl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var zl=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(zl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Zl=Tjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Zl){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,70);var tD=Gjt(YSt(t));Lr=0===tD?i(t):1===tD?c(t):JSt(t)}}}}}}}break;default:VSt(t,87);var eD=qXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(eD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var DD=yXt(YSt(t));if(2

>>0)Lr=JSt(t);else switch(DD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var pD=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(pD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var bD=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(bD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,71);var hD=Gjt(YSt(t));Lr=0===hD?i(t):1===hD?c(t):JSt(t)}}}}}break;case 44:VSt(t,87);var kD=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(kD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var AD=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(AD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var xD=wjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(xD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var MD=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(MD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var XD=zjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(XD){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,72);var VD=Gjt(YSt(t));Lr=0===VD?i(t):1===VD?c(t):JSt(t)}}}}}break;case 45:VSt(t,87);var ZD=YSt(t);if(ZD)var tp=ZD[1],ep=35>>0)Lr=JSt(t);else switch(ep){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var ip=uXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ip){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var vp=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(vp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var pp=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(pp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Ep=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ep){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,73);var Fp=Gjt(YSt(t));Lr=0===Fp?i(t):1===Fp?c(t):JSt(t)}}}}break;case 3:VSt(t,87);var mp=Rjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(mp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var hp=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(hp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var yp=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(yp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,74);var Ap=Gjt(YSt(t));Lr=0===Ap?i(t):1===Ap?c(t):JSt(t)}}}break;default:VSt(t,87);var Cp=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Cp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var wp=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(wp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Rp=xXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Rp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Xp=pHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Xp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,75);var Yp=Gjt(YSt(t));Lr=0===Yp?i(t):1===Yp?c(t):JSt(t)}}}}}break;case 46:VSt(t,87);var Kp=YSt(t);if(Kp)var qp=Kp[1],Zp=35>>0)Lr=JSt(t);else switch(Zp){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var rb=YSt(t);if(rb)var cb=rb[1],fb=35>>0)Lr=JSt(t);else switch(fb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var ob=iHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(ob){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,76);var sb=Gjt(YSt(t));Lr=0===sb?i(t):1===sb?c(t):JSt(t)}break;default:VSt(t,87);var vb=fHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(vb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Db=EHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Db){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,77);var Eb=Gjt(YSt(t));Lr=0===Eb?i(t):1===Eb?c(t):JSt(t)}}}break;case 3:VSt(t,87);var Fb=YSt(t);if(Fb)var mb=Fb[1],kb=35>>0)Lr=JSt(t);else switch(kb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var yb=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(yb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,78);var gb=Gjt(YSt(t));Lr=0===gb?i(t):1===gb?c(t):JSt(t)}break;default:VSt(t,79);var Tb=Gjt(YSt(t));Lr=0===Tb?i(t):1===Tb?c(t):JSt(t)}break;default:VSt(t,87);var Ob=Rjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Ob){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Nb=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Nb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,80);var Rb=fHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Rb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var Hb=cHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(Hb){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,81);var Wb=Gjt(YSt(t));Lr=0===Wb?i(t):1===Wb?c(t):JSt(t)}}}}}break;case 47:VSt(t,87);var Qb=YSt(t);if(Qb)var rE=Qb[1],uE=35>>0)Lr=JSt(t);else switch(uE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var sE=oXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(sE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,82);var vE=Gjt(YSt(t));Lr=0===vE?i(t):1===vE?c(t):JSt(t)}break;default:VSt(t,87);var DE=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(DE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var pE=Tjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(pE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,83);var bE=Gjt(YSt(t));Lr=0===bE?i(t):1===bE?c(t):JSt(t)}}}break;case 48:VSt(t,87);var FE=YSt(t);if(FE)var dE=FE[1],hE=35>>0)Lr=JSt(t);else switch(hE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;case 2:VSt(t,87);var kE=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(kE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var AE=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(AE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var _E=gjt(YSt(t));if(2<_E>>>0)Lr=JSt(t);else switch(_E){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,84);var CE=Gjt(YSt(t));Lr=0===CE?i(t):1===CE?c(t):JSt(t)}}}break;default:VSt(t,87);var wE=VXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(wE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var BE=pHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(BE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,85);var TE=Gjt(YSt(t));Lr=0===TE?i(t):1===TE?c(t):JSt(t)}}}break;case 49:VSt(t,87);var xE=vHt(YSt(t));if(2>>0)Lr=JSt(t);else switch(xE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var UE=gjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(UE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var jE=yXt(YSt(t));if(2>>0)Lr=JSt(t);else switch(jE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,87);var HE=Tjt(YSt(t));if(2>>0)Lr=JSt(t);else switch(HE){case 0:Lr=i(t);break;case 1:Lr=c(t);break;default:VSt(t,86);var qE=Gjt(YSt(t));Lr=0===qE?i(t):1===qE?c(t):JSt(t)}}}}break;case 50:Lr=89;break;case 51:VSt(t,135);var uF=YSt(t);if(uF)var cF=uF[1],vF=60>>0)return P_t(Tet);var pF=Lr;if(74<=pF){if(Vr<=pF)switch(pF){case 111:return[0,r,90];case 112:return[0,r,jb];case 113:return[0,r,Ah];case 114:return[0,r,69];case 115:return[0,r,97];case 116:return[0,r,68];case 117:return[0,r,67];case 118:return[0,r,99];case 119:return[0,r,98];case 120:return[0,r,78];case 121:return[0,r,77];case 122:return[0,r,75];case 123:return[0,r,76];case 124:return[0,r,73];case 125:return[0,r,72];case 126:return[0,r,71];case 127:return[0,r,70];case 128:return[0,r,95];case 129:return[0,r,96];case 130:return[0,r,ku];case 131:return[0,r,Um];case 132:return[0,r,ul];case 133:return[0,r,Sm];case 134:return[0,r,BS];case 135:return[0,r,86];case 136:return[0,r,88];case 137:return[0,r,87];case 138:return[0,r,$a];case 139:return[0,r,Yu];case 140:return[0,r,79];case 141:return[0,r,11];case 142:return[0,r,74];case 143:return[0,r,Pm];case 144:return[0,r,13];case 145:return[0,r,14];case 146:return[0,r[4]?SHt(r,_Ht(r,t),6):r,qt];default:return[0,THt(r,_Ht(r,t)),[6,vgt(t)]]}switch(pF){case 74:return[0,r,51];case 75:return[0,r,20];case 76:return[0,r,21];case 77:return[0,r,22];case 78:return[0,r,31];case 79:return[0,r,23];case 80:return[0,r,61];case 81:return[0,r,46];case 82:return[0,r,24];case 83:return[0,r,47];case 84:return[0,r,25];case 85:return[0,r,26];case 86:return[0,r,58];case 87:var bF=_Ht(r,t),mF=vgt(t),kF=MHt(r,mF);return[0,kF[1],[4,bF,kF[2],mF]];case 88:var SF=_Ht(r,t),UF=vgt(t);return[0,r,[4,SF,UF,UF]];case 89:return[0,r,0];case 90:return[0,r,1];case 91:return[0,r,4];case 92:return[0,r,5];case 93:return[0,r,6];case 94:return[0,r,7];case 95:return[0,r,12];case 96:return[0,r,10];case 97:return[0,r,8];case 98:return[0,r,9];case 99:return[0,r,83];case 100:WSt(t),KSt(t);var $F=YSt(t);if($F)var VF=$F[1],JF=62>>0)var n=JSt(t);else switch(e){case 0:continue;case 1:r:for(;;){if(0===Qjt(YSt(t)))for(;;){var u=Vjt(YSt(t));if(2>>0)var a=JSt(t);else switch(u){case 0:continue;case 1:continue r;default:a=0}break}else a=JSt(t);n=a;break}break;default:n=0}break}else n=JSt(t);return 0===n?[0,r,[1,0,vgt(t)]]:P_t(Bet)}));case 11:return[0,r,[1,0,vgt(t)]];case 12:return GHt(r,t,(function(r,t){if(KSt(t),0===dXt(YSt(t))&&0===sXt(YSt(t))&&0===Qjt(YSt(t)))for(;;){VSt(t,0);var e=Yjt(YSt(t));if(0!==e){if(1===e)r:for(;;){if(0===Qjt(YSt(t)))for(;;){VSt(t,0);var n=Yjt(YSt(t));if(0!==n){if(1===n)continue r;var u=JSt(t);break}}else u=JSt(t);var a=u;break}else a=JSt(t);break}}else a=JSt(t);return 0===a?[0,r,[0,0,vgt(t)]]:P_t(get)}));case 13:return[0,r,[0,0,vgt(t)]];case 14:return GHt(r,t,(function(r,t){if(KSt(t),0===dXt(YSt(t))&&0===AXt(YSt(t))&&0===pXt(YSt(t)))for(;;){var e=cXt(YSt(t));if(2>>0)var n=JSt(t);else switch(e){case 0:continue;case 1:r:for(;;){if(0===pXt(YSt(t)))for(;;){var u=cXt(YSt(t));if(2>>0)var a=JSt(t);else switch(u){case 0:continue;case 1:continue r;default:a=0}break}else a=JSt(t);n=a;break}break;default:n=0}break}else n=JSt(t);return 0===n?[0,r,[1,1,vgt(t)]]:P_t(Set)}));case 15:return[0,r,[1,1,vgt(t)]];case 16:return GHt(r,t,(function(r,t){if(KSt(t),0===dXt(YSt(t))&&0===AXt(YSt(t))&&0===pXt(YSt(t)))for(;;){VSt(t,0);var e=Zjt(YSt(t));if(0!==e){if(1===e)r:for(;;){if(0===pXt(YSt(t)))for(;;){VSt(t,0);var n=Zjt(YSt(t));if(0!==n){if(1===n)continue r;var u=JSt(t);break}}else u=JSt(t);var a=u;break}else a=JSt(t);break}}else a=JSt(t);return 0===a?[0,r,[0,3,vgt(t)]]:P_t(wet)}));case 17:return[0,r,[0,3,vgt(t)]];case 18:return GHt(r,t,(function(r,t){if(KSt(t),0===dXt(YSt(t)))for(;;){var e=YSt(t);if(e)var n=e[1],u=47>>0)var n=JSt(t);else switch(e){case 0:continue;case 1:r:for(;;){if(0===Ijt(YSt(t)))for(;;){var u=Kjt(YSt(t));if(2>>0)var a=JSt(t);else switch(u){case 0:continue;case 1:continue r;default:a=0}break}else a=JSt(t);n=a;break}break;default:n=0}break}else n=JSt(t);return 0===n?[0,r,[1,2,vgt(t)]]:P_t(Aet)}));case 24:return GHt(r,t,(function(r,t){if(KSt(t),0===dXt(YSt(t))&&0===Ljt(YSt(t))&&0===Ijt(YSt(t)))for(;;){VSt(t,0);var e=LXt(YSt(t));if(0!==e){if(1===e)r:for(;;){if(0===Ijt(YSt(t)))for(;;){VSt(t,0);var n=LXt(YSt(t));if(0!==n){if(1===n)continue r;var u=JSt(t);break}}else u=JSt(t);var a=u;break}else a=JSt(t);break}}else a=JSt(t);return 0===a?[0,r,[0,4,vgt(t)]]:P_t(yet)}));case 26:return GHt(r,t,(function(r,t){function e(r){for(;;){var t=Ojt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=Ojt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}}function n(r){for(;;){var t=iXt(YSt(r));if(0!==t)return 1===t?0:JSt(r)}}function u(r){var t=sHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:var u=rXt(YSt(r));return 0===u?n(r):1===u?e(r):JSt(r);case 1:return n(r);default:return e(r)}}function a(r){var t=wXt(YSt(r));if(0===t)for(;;){var e=oHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:return u(r);default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var n=oHt(YSt(r));if(2>>0)return JSt(r);switch(n){case 0:continue;case 1:return u(r);default:continue r}}return JSt(r)}}}return 1===t?u(r):JSt(r)}KSt(t);var i=Pjt(YSt(t));if(2>>0)var c=JSt(t);else switch(i){case 0:if(0===Bjt(YSt(t)))for(;;){var f=oHt(YSt(t));if(2>>0)c=JSt(t);else switch(f){case 0:continue;case 1:c=u(t);break;default:r:for(;;){if(0===Bjt(YSt(t)))for(;;){var o=oHt(YSt(t));if(2>>0)var s=JSt(t);else switch(o){case 0:continue;case 1:s=u(t);break;default:continue r}break}else s=JSt(t);c=s;break}}break}else c=JSt(t);break;case 1:var v=Hjt(YSt(t));c=0===v?a(t):1===v?u(t):JSt(t);break;default:for(;;){var l=kXt(YSt(t));if(2>>0)c=JSt(t);else switch(l){case 0:c=a(t);break;case 1:continue;default:c=u(t)}break}}return 0===c?[0,SHt(r,_Ht(r,t),23),[1,2,vgt(t)]]:P_t(ket)}));case 27:return[0,SHt(r,_Ht(r,t),23),[1,2,vgt(t)]];case 28:return GHt(r,t,(function(r,t){function e(r){for(;;){VSt(r,0);var t=JXt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,0);var e=JXt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}}function n(r){for(;;)if(VSt(r,0),0!==Bjt(YSt(r)))return JSt(r)}function u(r){var t=sHt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:var u=rXt(YSt(r));return 0===u?n(r):1===u?e(r):JSt(r);case 1:return n(r);default:return e(r)}}function a(r){var t=wXt(YSt(r));if(0===t)for(;;){var e=oHt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:return u(r);default:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var n=oHt(YSt(r));if(2>>0)return JSt(r);switch(n){case 0:continue;case 1:return u(r);default:continue r}}return JSt(r)}}}return 1===t?u(r):JSt(r)}KSt(t);var i=Pjt(YSt(t));if(2>>0)var c=JSt(t);else switch(i){case 0:if(0===Bjt(YSt(t)))for(;;){var f=oHt(YSt(t));if(2>>0)c=JSt(t);else switch(f){case 0:continue;case 1:c=u(t);break;default:r:for(;;){if(0===Bjt(YSt(t)))for(;;){var o=oHt(YSt(t));if(2>>0)var s=JSt(t);else switch(o){case 0:continue;case 1:s=u(t);break;default:continue r}break}else s=JSt(t);c=s;break}}break}else c=JSt(t);break;case 1:var v=Hjt(YSt(t));c=0===v?a(t):1===v?u(t):JSt(t);break;default:for(;;){var l=kXt(YSt(t));if(2>>0)c=JSt(t);else switch(l){case 0:c=a(t);break;case 1:continue;default:c=u(t)}break}}return 0===c?[0,r,[0,4,vgt(t)]]:P_t(het)}));case 30:return GHt(r,t,(function(r,t){function e(r){for(;;){var t=Ojt(YSt(r));if(2>>0)return JSt(r);switch(t){case 0:continue;case 1:r:for(;;){if(0===Bjt(YSt(r)))for(;;){var e=Ojt(YSt(r));if(2>>0)return JSt(r);switch(e){case 0:continue;case 1:continue r;default:return 0}}return JSt(r)}default:return 0}}}function n(r){var t=iXt(YSt(r));return 0===t?e(r):1===t?0:JSt(r)}KSt(t);var u=Pjt(YSt(t));if(2>>0)var a=JSt(t);else switch(u){case 0:a=0===Bjt(YSt(t))?e(t):JSt(t);break;case 1:for(;;){var i=RXt(YSt(t));if(0===i)a=n(t);else{if(1===i)continue;a=JSt(t)}break}break;default:for(;;){var c=DHt(YSt(t));if(2>>0)a=JSt(t);else switch(c){case 0:a=n(t);break;case 1:continue;default:r:for(;;){if(0===Bjt(YSt(t)))for(;;){var f=DHt(YSt(t));if(2>>0)var o=JSt(t);else switch(f){case 0:o=n(t);break;case 1:continue;default:continue r}break}else o=JSt(t);a=o;break}}break}}return 0===a?[0,SHt(r,_Ht(r,t),22),[1,2,vgt(t)]]:P_t(met)}));case 31:return GHt(r,t,(function(r,t){KSt(t);var e=rXt(YSt(t));if(0===e)for(;;){var n=iXt(YSt(t));if(0!==n){var u=1===n?0:JSt(t);break}}else if(1===e)for(;;){var a=Ojt(YSt(t));if(2>>0)u=JSt(t);else switch(a){case 0:continue;case 1:r:for(;;){if(0===Bjt(YSt(t)))for(;;){var i=Ojt(YSt(t));if(2>>0)var c=JSt(t);else switch(i){case 0:continue;case 1:continue r;default:c=0}break}else c=JSt(t);u=c;break}break;default:u=0}break}else u=JSt(t);return 0===u?[0,r,[1,2,vgt(t)]]:P_t(det)}));case 32:return[0,SHt(r,_Ht(r,t),22),[1,2,vgt(t)]];case 34:return GHt(r,t,(function(r,t){function e(r){for(;;){VSt(r,0);var t=JXt(YSt(r));if(0!==t){if(1===t)r:for(;;){if(0===Bjt(YSt(r)))for(;;){VSt(r,0);var e=JXt(YSt(r));if(0!==e){if(1===e)continue r;return JSt(r)}}return JSt(r)}return JSt(r)}}}function n(r){return VSt(r,0),0===Bjt(YSt(r))?e(r):JSt(r)}KSt(t);var u=Pjt(YSt(t));if(2>>0)var a=JSt(t);else switch(u){case 0:a=0===Bjt(YSt(t))?e(t):JSt(t);break;case 1:for(;;){VSt(t,0);var i=RXt(YSt(t));if(0===i)a=n(t);else{if(1===i)continue;a=JSt(t)}break}break;default:for(;;){VSt(t,0);var c=DHt(YSt(t));if(2>>0)a=JSt(t);else switch(c){case 0:a=n(t);break;case 1:continue;default:r:for(;;){if(0===Bjt(YSt(t)))for(;;){VSt(t,0);var f=DHt(YSt(t));if(2>>0)var o=JSt(t);else switch(f){case 0:o=n(t);break;case 1:continue;default:continue r}break}else o=JSt(t);a=o;break}}break}}return 0===a?[0,r,[0,4,vgt(t)]]:P_t(Fet)}));case 36:return[0,r,64];case 23:case 33:return[0,r,[1,2,vgt(t)]];default:return[0,r,[0,4,vgt(t)]]}})),QHt=gCt([0,yCt]),ZHt=function(r,t){return[0,[0],0,t,Fjt(r)]},r$t=function(r,t){var e=t+1|0;if(r[1].length-1>>0)var D=JSt(o);else switch(l){case 0:D=1;break;case 1:D=4;break;case 2:D=0;break;case 3:VSt(o,0);D=0===jXt(YSt(o))?0:JSt(o);break;case 4:D=2;break;default:D=3}if(4>>0)var p=P_t(Ytt);else switch(D){case 0:var b=vgt(o);jCt(f,b),jCt(c,b);var E=YHt(IHt(u,o),2,c,f,o),F=AHt(E,o),d=MCt(c),m=MCt(f);p=[0,E,[8,[0,[0,E[1],i,F],d,m]]];break;case 1:p=[0,u,qt];break;case 2:p=[0,u,95];break;case 3:p=[0,u,0];break;default:WSt(o);var h=YHt(u,2,c,f,o),k=AHt(h,o),y=MCt(c),A=MCt(f);p=[0,h,[8,[0,[0,h[1],i,k],y,A]]]}var _=p[2],C=p[1];a=wHt([0,C,_,CHt(C,_),0]);break;case 4:a=OI(WHt,u);break;default:a=OI(KHt,u)}var w=a[1],S=Fjt(w);r[4]=w;var g=r[2],B=[0,[0,S,a[2]]];GB(r[1],g)[1+g]=B,r[2]=r[2]+1|0}},t$t=function(r,t,e,n){var u=r?r[1]:r,a=t?t[1]:t;try{var i=ogt(n),c=0}catch(t){if((t=II(t))!==XSt)throw t;var f=[0,[0,[0,e,JI[2],JI[3]],86],0];i=ogt(ict),c=f}var o=a?a[1]:QI,s=function(r,t,e){return[0,r,t,Kqr,0,e,WI,Jqr]}(e,i,o[8]),v=[0,ZHt(s,0)];return[0,[0,c],[0,0],QHt[1],[0,QHt[1]],[0,0],o[9],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,fct],[0,s],v,[0,u],o,e,[0,0],[0,cct]]},e$t=function(r){return rCt(r[22][1])},n$t=function(r){return r[26][8]},u$t=function(r,t){var e=t[2];r[1][1]=[0,[0,t[1],e],r[1][1]];var n=r[21];return n?NI(n[1],r,e):n},a$t=function(r,t){var e=t[2][1];if(_I(e,act))return 0;if(NI(QHt[3],e,r[4][1]))return u$t(r,[0,t[1],[20,e]]);var n=NI(QHt[4],e,r[4][1]);return r[4][1]=n,0},i$t=function(r,t){return r[29][1]=t,0},c$t=function(r,t){if(r<2){var e=t[24][1];r$t(e,r);var n=GB(e[1],r)[1+r];return n?n[1][2]:P_t(sct)}throw[0,$I,ect]},f$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],r,t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},o$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],r,t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},s$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],r,t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},v$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],r,t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},l$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],r,t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},D$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],r,t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},p$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],r,t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},b$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],r,t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},E$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],r,t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},F$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],r,t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},d$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],r,t[14],t[15],t[16],t[17],t[18],t[19],t[20],t[21],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},m$t=function(r,t){return[0,t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15],t[16],t[17],t[18],t[19],t[20],[0,r],t[22],t[23],t[24],t[25],t[26],t[27],t[28],t[29]]},h$t=function(r){function t(t){return u$t(r,t)}return function(r){return cCt(t,r)}},k$t=function(r){var t=r[5][1];return t?[0,t[1][2]]:t},y$t=function(r){var t=r[5][1];return t?[0,t[1][1]]:t},A$t=function(r){return[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],0,r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29]]},_$t=function(r,t,e){return[0,r[1],r[2],QHt[1],r[4],r[5],r[6],0,0,0,0,1,r[12],r[13],r[14],r[15],r[16],e,t,r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29]]},C$t=function(r){var t=yT(r,yit),e=0;if(0<=t){if(0>>0){if(!(Ah<(n+1|0)>>>0))return 1}else{var u=6!==n?1:0;if(!u)return u}}return X$t(r,t)},Y$t=function(r){return $$t(0,r)},V$t=function(r,t){var e=x$t(r,t);if(B$t(e))return 1;if(S$t(e))return 1;if(I$t(e))return 1;var n=0;if("number"==typeof e)switch(e){case 14:case 28:case 60:case 61:case 62:case 63:case 64:case 65:n=1}else 4===e[0]&&(n=1);return n?1:0},K$t=function(r,t){var e=e$t(t);if(1===e){var n=x$t(r,t);return"number"!=typeof n&&4===n[0]?1:0}if(0===e){var u=x$t(r,t);if("number"==typeof u)switch(u){case 42:case 46:case 47:return 0;case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:break;default:return 0}else switch(u[0]){case 4:if(N$t(u[3]))return 0;break;case 9:case 10:case 11:break;default:return 0}return 1}return 0},J$t=function(r){return V$t(0,r)},W$t=function(r){var t=15===P$t(r)?1:0;if(t)var e=t;else{var n=64===P$t(r)?1:0;if(n){var u=15===x$t(1,r)?1:0;if(u){var a=L$t(1,r)[2][1];e=R$t(r)[3][1]===a?1:0}else e=u}else e=n}return e},q$t=function(r){var t=P$t(r);if("number"==typeof t){var e=0;if(13!==t&&40!==t||(e=1),e)return 1}return 0},z$t=function(r,t){return u$t(r,[0,R$t(r),t])},Q$t=function(r,t){var e=G$t(t);OI(h$t(t),e);var n=P$t(t);if(S$t(n))var u=2;else if(B$t(n))u=53;else{var a=Ajt(0,n);u=r?[12,a,r[1]]:[11,a]}return z$t(t,u)},Z$t=function(r){function t(t){return u$t(r,[0,t[1],76])}return function(r){return cCt(t,r)}},rYt=function(r,t){var e=r[6];return e?z$t(r,t):e},tYt=function(r,t){var e=r[6];return e?u$t(r,[0,t[1],t[2]]):e},eYt=function(r,t){return u$t(r,[0,t,[19,r[6]]])},nYt=function(r){var t=r[25][1];if(t){var e=e$t(r),n=P$t(r),u=[0,R$t(r),n,e];OI(t[1],u)}var a=r[24][1];r$t(a,0);var i=GB(a[1],0)[1],c=i?i[1][1]:P_t(oct);r[23][1]=c;var f=G$t(r);OI(h$t(r),f);var o=r[2][1],s=eCt(c$t(0,r)[4],o);r[2][1]=s;var v=[0,c$t(0,r)];r[5][1]=v;var l=r[24][1];r$t(l,0),1>>0?NI(d,r,OI(e,r)):OI(m,r)}function G(r,t,n){return PYt([0,t],(function(r){var t=OI(k,r);return sYt(r,83),[0,n,t,OI(e,r),0]}),r)}function U(r,t){var e=P$t(t);if("number"==typeof e&&!(10<=e))switch(e){case 1:if(!r)return 0;break;case 3:if(r)return 0;break;case 8:case 9:return nYt(t)}return Q$t(0,t)}function j(r,t){return t?u$t(r,[0,t[1][1],7]):t}function X(r,t){return t?u$t(r,[0,t[1],9]):t}function H(t){var e=U$t(t);if(sYt(t,66),4===P$t(t)){var n=j_t(e,U$t(t));sYt(t,4),aYt(t,0);var u=OI(r[9],t);return iYt(t),sYt(t,5),[0,[0,u],vjt([0,n],[0,cYt(t)])]}return[0,0,vjt([0,e],[0,cYt(t)])]}mB(e,(function(r){return OI(u,r)})),mB(n,(function(r){return 1-n$t(r)&&z$t(r,12),PYt(0,(function(r){return sYt(r,83),OI(e,r)}),r)})),mB(u,(function(r){var t=86===P$t(r)?1:0;if(t){var e=U$t(r);nYt(r);var n=e}else n=t;return xI(a,r,[0,n],OI(i,r))})),mB(a,(function(r,t,e){var n=t?t[1]:t;if(86===P$t(r)){var u=[0,e,0];return PYt([0,e[1]],(function(r){for(var t=u;;){var e=P$t(r);if("number"!=typeof e||86!==e){var a=nCt(t);if(a){var c=a[2];if(c){var f=vjt([0,n],0);return[19,[0,[0,a[1],c[1],c[2]],f]]}}throw[0,$I,wht]}sYt(r,86);t=[0,OI(i,r),t]}}),r)}return e})),mB(i,(function(r){var t=88===P$t(r)?1:0;if(t){var e=U$t(r);nYt(r);var n=e}else n=t;return xI(c,r,[0,n],OI(f,r))})),mB(c,(function(r,t,e){var n=t?t[1]:t;if(88===P$t(r)){var u=[0,e,0];return PYt([0,e[1]],(function(r){for(var t=u;;){var e=P$t(r);if("number"!=typeof e||88!==e){var a=nCt(t);if(a){var i=a[2];if(i){var c=vjt([0,n],0);return[20,[0,[0,a[1],i[1],i[2]],c]]}}throw[0,$I,Cht]}sYt(r,88);t=[0,OI(f,r),t]}}),r)}return e})),mB(f,(function(r){return NI(o,r,OI(s,r))})),mB(o,(function(r,t){var e=P$t(r);if("number"==typeof e&&11===e&&!r[15]){var n=NI(d,r,t);return LI(w,r,n[1],0,[0,n[1],[0,0,[0,n,0],0,0]])}return t})),mB(s,(function(r){var t=P$t(r);return"number"==typeof t&&82===t?PYt(0,(function(r){var t=U$t(r);sYt(r,82);var e=vjt([0,t],0);return[11,[0,OI(s,r),e]]}),r):OI(v,r)})),mB(v,(function(r){return xI(l,0,r,OI(p,r))})),mB(l,(function(r,t,e){var n=r?r[1]:r;if(H$t(t))return e;var u=P$t(t);if("number"==typeof u){if(6===u)return nYt(t),LI(D,n,0,t,e);if(10===u){var a=x$t(1,t);return"number"==typeof a&&6===a?(z$t(t,Aht),sYt(t,10),sYt(t,6),LI(D,n,0,t,e)):(z$t(t,_ht),e)}if(80===u)return nYt(t),6!==P$t(t)&&z$t(t,30),sYt(t,6),LI(D,1,1,t,e)}return e})),mB(D,(function(r,t,n,u){return xI(l,[0,r],n,PYt([0,u[1]],(function(n){if(!t&&uYt(n,7))return[15,[0,u,vjt(0,[0,cYt(n)])]];var a=OI(e,n);sYt(n,7);var i=[0,u,a,vjt(0,[0,cYt(n)])];return r?[18,[0,i,t]]:[17,i]}),n))})),mB(p,(function(r){var t=R$t(r),e=P$t(r),n=0;if("number"==typeof e)switch(e){case 4:return OI(_,r);case 6:return OI(F,r);case 46:return PYt(0,(function(r){var t=U$t(r);sYt(r,46);var e=vjt([0,t],0);return[21,[0,OI(p,r),0,e]]}),r);case 53:return PYt(0,(function(r){var t=U$t(r);sYt(r,53);var e=OI(g,r),n=vjt([0,t],0);return[14,[0,e[2],e[1],n]]}),r);case 95:return OI(C,r);case 103:var u=U$t(r);return sYt(r,ul),[0,t,[10,vjt([0,u],[0,cYt(r)])]];case 42:n=1;break;case 0:case 2:var a=LI(S,0,1,1,r);return[0,a[1],[13,a[2]]];case 30:case 31:var i=U$t(r);return sYt(r,e),[0,t,[26,[0,31===e?1:0,vjt([0,i],[0,cYt(r)])]]]}else switch(e[0]){case 2:var c=e[1],f=c[4],o=c[3],s=c[2],v=c[1];f&&rYt(r,44);var l=U$t(r);return sYt(r,[2,[0,v,s,o,f]]),[0,v,[23,[0,s,o,vjt([0,l],[0,cYt(r)])]]];case 10:var D=e[3],b=e[2],d=e[1],m=U$t(r);sYt(r,[10,d,b,D]);var h=cYt(r);return 1===d&&rYt(r,44),[0,t,[24,[0,b,D,vjt([0,m],[0,h])]]];case 11:var k=e[3],y=e[2],A=U$t(r);return sYt(r,[11,e[1],y,k]),[0,t,[25,[0,y,k,vjt([0,A],[0,cYt(r)])]]];case 4:n=1}if(n){var w=OI(N,r);return[0,w[1],[16,w[2]]]}var B=OI(E,r);return B?[0,t,B[1]]:(Q$t(0,r),[0,t,yht])})),mB(b,(function(r){var t=0;if("number"==typeof r)switch(r){case 29:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:t=1}else 9===r[0]&&(t=1);return t?1:0})),mB(E,(function(r){var t=U$t(r),e=P$t(r);if("number"==typeof e)switch(e){case 29:return nYt(r),[0,[4,vjt([0,t],[0,cYt(r)])]];case 111:return nYt(r),[0,[0,vjt([0,t],[0,cYt(r)])]];case 112:return nYt(r),[0,[1,vjt([0,t],[0,cYt(r)])]];case 113:return nYt(r),[0,[2,vjt([0,t],[0,cYt(r)])]];case 114:return nYt(r),[0,[5,vjt([0,t],[0,cYt(r)])]];case 115:return nYt(r),[0,[6,vjt([0,t],[0,cYt(r)])]];case 116:return nYt(r),[0,[7,vjt([0,t],[0,cYt(r)])]];case 117:return nYt(r),[0,[3,vjt([0,t],[0,cYt(r)])]];case 118:return nYt(r),[0,[9,vjt([0,t],[0,cYt(r)])]]}else if(9===e[0])return nYt(r),[0,[8,vjt([0,t],[0,cYt(r)])]];return 0})),mB(F,(function(r){return PYt(0,(function(r){var t=U$t(r);sYt(r,6);for(var n=E$t(0,r),u=0;;){var a=P$t(n);if("number"==typeof a){var i=0;if(7!==a&&qt!==a||(i=1),i){var c=nCt(u);return sYt(r,7),[22,[0,c,vjt([0,t],[0,cYt(r)])]]}}var f=[0,OI(e,n),u];7!==P$t(n)&&sYt(n,9);u=f}}),r)})),mB(d,(function(r,t){return[0,t[1],[0,0,t,0]]})),mB(m,(function(t){return PYt(0,(function(t){aYt(t,0);var n=NI(r[13],0,t);iYt(t),1-n$t(t)&&z$t(t,12);var u=uYt(t,82);return sYt(t,83),[0,[0,n],OI(e,t),u]}),t)})),mB(h,(function(r){return function(t){for(var e=0,u=t;;){var a=P$t(r);if("number"==typeof a)switch(a){case 5:case 12:case 110:var i=12===a?1:0,c=i?[0,PYt(0,(function(r){var t=U$t(r);sYt(r,12);var e=vjt([0,t],0);return[0,M(r),e]}),r)]:i;return[0,e,nCt(u),c,0]}else if(4===a[0]&&!wI(a[3],kht)){var f=0;if(83!==x$t(1,r)&&82!==x$t(1,r)||(f=1),f){((0!==e?1:0)||(0!==u?1:0))&&z$t(r,$a);var o=PYt(0,(function(r){var t=U$t(r);nYt(r),82===P$t(r)&&z$t(r,Yu);var e=vjt([0,t],0);return[0,OI(n,r),e]}),r);5!==P$t(r)&&sYt(r,9);e=[0,o];continue}}var s=[0,M(r),u];5!==P$t(r)&&sYt(r,9);u=s}}})),mB(k,(function(r){return PYt(0,(function(r){var t=U$t(r);sYt(r,4);var e=NI(h,r,0),n=U$t(r);sYt(r,5);var u=ljt([0,t],[0,cYt(r)],n);return[0,e[1],e[2],e[3],u]}),r)})),mB(y,(function(r){var t=U$t(r);sYt(r,4);var n=E$t(0,r),u=P$t(n),a=0;if("number"==typeof u)switch(u){case 5:var i=hht;break;case 42:a=2;break;case 12:case 110:i=[0,NI(h,n,0)];break;default:a=1}else a=4===u[0]?2:1;switch(a){case 1:if(OI(b,u)){var c=x$t(1,n),f=0;if("number"==typeof c&&!(1<(c+uo|0)>>>0)){var o=[0,NI(h,n,0)];f=1}if(!f)o=[1,OI(e,n)];i=o}else i=[1,OI(e,n)];break;case 2:i=OI(A,n)}if(0===i[0])var s=i;else{var v=i[1];if(r[15])var l=i;else{var D=P$t(r),p=0;if("number"==typeof D)if(5===D)var E=11===x$t(1,r)?[0,NI(h,r,[0,NI(d,r,v),0])]:[1,v];else if(9===D){sYt(r,9);E=[0,NI(h,r,[0,NI(d,r,v),0])]}else p=1;else p=1;if(p)E=i;l=E}s=l}var F=U$t(r);sYt(r,5);var m=cYt(r);if(0===s[0]){var k=s[1],y=ljt([0,t],[0,m],F);return[0,[0,k[1],k[2],k[3],y]]}return[1,xI(R,s[1],t,m)]})),mB(A,(function(r){var t=x$t(1,r);if("number"==typeof t&&!(1<(t+uo|0)>>>0))return[0,NI(h,r,0)];var e=NI(o,r,xI(l,0,r,NI(L,r,OI(B,r)))),n=NI(OI(c,r),0,e);return[1,NI(OI(a,r),0,n)]})),mB(_,(function(r){var t=R$t(r),e=PYt(0,y,r),n=e[2];return 0===n[0]?LI(w,r,t,0,[0,e[1],n[1]]):n[1]})),mB(C,(function(r){var t=R$t(r),e=yYt(r,OI(I,r));return LI(w,r,t,e,OI(k,r))})),mB(w,(function(r,t,n,u){return PYt([0,t],(function(r){return sYt(r,11),[12,[0,n,u,OI(e,r),0]]}),r)})),mB(S,(function(n,u,a,i){var c=u?2===P$t(i)?1:0:u,f=u?1-c:u;return PYt(0,(function(u){var i=U$t(u);sYt(u,c?2:c);var o=E$t(0,u),s=mht;r:for(;;){var v=s[3],l=s[2],D=s[1];if(n&&a)throw[0,$I,iht];if(f&&!a)throw[0,$I,cht];var p=R$t(o),b=P$t(o);if("number"==typeof b){var E=0;if(13<=b){if(qt===b){var F=[0,nCt(D),l,v];E=1}}else if(0!==b)switch(b-1|0){case 0:if(!c){F=[0,nCt(D),l,v];E=1}break;case 2:if(c){F=[0,nCt(D),l,v];E=1}break;case 11:if(!a){nYt(o);var d=P$t(o);if("number"==typeof d&&!(10<=d))switch(d){case 1:case 3:case 8:case 9:u$t(o,[0,p,20]),U(c,o);continue}var m=G$t(o);OI(h$t(o),m),u$t(o,[0,p,17]),nYt(o),U(c,o);continue}var h=U$t(o);nYt(o);var k=P$t(o),y=0;if("number"==typeof k&&!(10<=k))switch(k){case 1:case 3:case 8:case 9:U(c,o);var A=P$t(o),_=0;if("number"==typeof A){var C=A-1|0;if(!(2>>0))switch(C){case 0:if(f){F=[0,nCt(D),1,h];E=1,y=1,_=1}break;case 1:break;default:u$t(o,[0,p,19]);F=[0,nCt(D),l,v];E=1,y=1,_=1}}if(!_){u$t(o,[0,p,18]);continue}}if(!y){var w=[1,PYt([0,p],function(r){return function(t){var n=vjt([0,r],0);return[0,OI(e,t),n]}}(h),o)];U(c,o);s=[0,[0,w,D],l,v];continue}}if(E){var S=U$t(u),g=j_t(F[3],S);sYt(u,c?3:1);var B=ljt([0,i],[0,cYt(u)],g);return[0,c,F[2],F[1],B]}}for(var T=n,O=n,N=0,x=0,L=0,P=0;;){var R=P$t(o),M=0;if("number"==typeof R)switch(R){case 6:X(o,L);var H=x$t(1,o),$=0;if("number"==typeof H&&6===H){j(o,N);var Y=[4,PYt([0,p],function(r,t,n){return function(u){var a=j_t(t,U$t(u));sYt(u,6),sYt(u,6);var i=xYt(u);sYt(u,7),sYt(u,7);var c=P$t(u),f=0;if("number"==typeof c){var o=0;if(4!==c&&95!==c&&(o=1),!o){var s=G(u,r,yYt(u,OI(I,u))),v=0,l=1,D=[0,s[1],[12,s[2]]],p=0;f=1}}if(!f){var b=uYt(u,82),E=cYt(u);sYt(u,83);v=b,l=0,D=OI(e,u),p=E}return[0,i,D,v,0!==n?1:0,l,vjt([0,a],[0,p])]}}(p,P,x),o)];$=1}if(!$)Y=[2,PYt([0,p],function(r,t,n){return function(u){var a=j_t(r,U$t(u));sYt(u,6);var i=83===x$t(1,u)?1:0;if(i){var c=xYt(u);sYt(u,83);var f=[0,c]}else f=i;var o=OI(e,u);sYt(u,7);var s=cYt(u);return sYt(u,83),[0,f,o,OI(e,u),0!==t?1:0,n,vjt([0,a],[0,s])]}}(P,x,N),o)];break;case 42:if(T){if(0===N){var V=[0,R$t(o)],K=j_t(P,U$t(o));nYt(o);T=0,O=0,x=V,P=K;continue}throw[0,$I,fht]}M=1;break;case 100:case 101:if(0===N){T=0,O=0,N=t(o);continue}M=1;break;case 4:case 95:X(o,L),j(o,N);Y=[3,PYt([0,p],function(r,t){return function(e){return[0,G(e,R$t(e),yYt(e,OI(I,e))),0!==t?1:0,vjt([0,r],0)]}}(P,x),o)];break;default:M=1}else if(4!==R[0]||wI(R[3],oht))M=1;else{if(O){if(0===N){var J=[0,R$t(o)],W=j_t(P,U$t(o));nYt(o);T=0,O=0,L=J,P=W;continue}throw[0,$I,sht]}M=1}if(M){var q=0;if(x){if(L){Y=P_t(vht);q=1}else if("number"==typeof R&&!(1<(R+uo|0)>>>0)){var z=[0,x[1],lht],Q=[1,ojt(vjt([0,P],0),z)],Z=0,rr=L,tr=0;q=2}}else if(L&&"number"==typeof R&&!(1<(R+uo|0)>>>0)){var er=[0,L[1],Dht];Q=[1,ojt(vjt([0,P],0),er)],Z=0,rr=0,tr=x;q=2}var nr=0;switch(q){case 0:var ur=function(t){aYt(t,0);var e=NI(r[20],0,t);return iYt(t),e},ar=U$t(o),ir=ur(o)[2],cr=0;if(1===ir[0]){var fr=ir[1][2][1],or=0;if(wI(fr,pht)&&wI(fr,bht)&&(or=1),!or){var sr=P$t(o),vr=0;if("number"==typeof sr){var lr=sr-5|0;if(89>>0)91<(lr+1|0)>>>0||(X(o,L),j(o,N),cr=1,vr=1);else if(!(1<(lr-77|0)>>>0)){Q=ir,Z=P,rr=L,tr=x;nr=1,cr=2,vr=1}}if(!vr){wYt(o,ir);var Dr=ur(o),pr=_I(fr,Eht),br=j_t(P,ar);X(o,L),j(o,N);Y=[0,PYt([0,p],function(r,t,e,n,u){return function(a){var i=e[1],c=wYt(a,e[2]),f=G(a,r,0),o=f[2][2];if(0===n){var s=o[2];if(s[1])u$t(a,[0,i,Ah]);else{var v=s[2];if(s[3])u$t(a,[0,i,81]);else{var l=0;v&&!v[2]&&(l=1),l||u$t(a,[0,i,81])}}}else{var D=o[2];if(D[1])u$t(a,[0,i,jb]);else{var p=0;(D[2]||D[3])&&(p=1),p&&u$t(a,[0,i,80])}}var b=vjt([0,u],0);return[0,c,n?[1,f]:[2,f],0,0!==t?1:0,0,0,0,b]}}(p,x,Dr,pr,br),o)];cr=2}}}var Er=0;switch(cr){case 2:Er=1;break;case 0:var Fr=P$t(o),dr=0;if("number"==typeof Fr){var mr=0;4!==Fr&&95!==Fr&&(mr=1),mr||(X(o,L),j(o,N),dr=1)}if(!dr){var hr=0!==x?1:0;if(1===ir[0]){var kr=ir[1],yr=kr[2][1];if(n){var Ar=0;_I(Fht,yr)||hr&&_I(dht,yr)||(Ar=1),Ar||u$t(o,[0,kr[1],[22,yr,hr,0]])}}Q=ir,Z=P,rr=L,tr=x;nr=1,Er=1}}if(!Er){var _r=wYt(o,ir),Cr=G(o,p,yYt(o,OI(I,o))),wr=[0,Cr[1],[12,Cr[2]]],Sr=[0,_r,[0,wr],0,0!==x?1:0,0,1,0,vjt([0,P],0)];Y=[0,[0,wr[1],Sr]]}break;case 2:nr=1}if(nr){1-n$t(o)&&z$t(o,12);Y=[0,PYt([0,p],function(r,t,n,u,a){return function(i){var c=uYt(i,82);sYt(i,83);var f=OI(e,i);return[0,a,[0,f],c,0!==t?1:0,0!==n?1:0,0,r,vjt([0,u],0)]}}(N,tr,rr,Z,Q),o)]}}U(c,o);s=[0,[0,Y,D],l,v];continue r}}}),i)})),mB(g,(function(r){var t=41===P$t(r)?1:0;if(t){sYt(r,41);for(var e=0;;){var n=[0,OI(N,r),e],u=P$t(r);if("number"!=typeof u||9!==u){var a=SYt(r,nCt(n));break}sYt(r,9);e=n}}else a=t;return[0,a,LI(S,0,0,0,r)]})),mB(B,(function(r){var t=xYt(r),e=t[2],n=e[1],u=t[1];return N$t(n)&&u$t(r,[0,u,3]),[0,u,[0,n,e[2]]]})),mB(T,(function(r){return PYt(0,(function(r){return[0,OI(B,r),83===P$t(r)?[1,OI(n,r)]:[0,M$t(r)]]}),r)})),mB(I,(function(r){var n=95===P$t(r)?1:0;if(n){1-n$t(r)&&z$t(r,12);var u=[0,PYt(0,(function(r){var n=U$t(r);sYt(r,95);for(var u=0,a=0;;){var i=PYt(0,function(r){return function(n){var u=t(n),a=OI(T,n),i=a[2],c=P$t(n),f=0;if("number"==typeof c&&79===c){nYt(n);var o=[0,OI(e,n)],s=1;f=1}if(!f){r&&u$t(n,[0,a[1],77]);o=0,s=r}return[0,u,i[1],i[2],o,s]}}(u),r),c=i[2],f=[0,[0,i[1],[0,c[2],c[3],c[1],c[4]]],a],o=P$t(r),s=0;if("number"==typeof o){var v=0;if(96!==o&&qt!==o&&(v=1),!v){var l=nCt(f);s=1}}if(!s){if(sYt(r,9),96!==P$t(r)){u=c[5],a=f;continue}l=nCt(f)}var D=U$t(r);return sYt(r,96),[0,l,ljt([0,n],[0,cYt(r)],D)]}}),r)]}else u=n;return u})),mB(O,(function(r){var t=95===P$t(r)?1:0;return t?[0,PYt(0,(function(r){var t=U$t(r);sYt(r,95);for(var n=E$t(0,r),u=0;;){var a=P$t(n);if("number"==typeof a){var i=0;if(96!==a&&qt!==a||(i=1),i){var c=nCt(u),f=U$t(n);return sYt(n,96),[0,c,ljt([0,t],[0,cYt(n)],f)]}}var o=[0,OI(e,n),u];96!==P$t(n)&&sYt(n,9);u=o}}),r)]:t})),mB(N,(function(r){return NI(x,r,OI(B,r))})),mB(x,(function(r,t){return PYt([0,t[1]],(function(r){for(var e=[0,t[1],[0,t]];;){var n=e[2],u=e[1];if(10!==P$t(r)||!K$t(1,r)){if(95===P$t(r))var a=NI(hYt(r)[2],n,(function(r,t){return NI(LT(r,-860373976,75),r,t)}));else a=n;return[0,a,OI(O,r),0]}var i=PYt([0,u],function(r){return function(t){return sYt(t,10),[0,r,OI(B,t)]}}(n),r),c=i[1];e=[0,c,[1,[0,c,i[2]]]]}}),r)})),mB(L,(function(r,t){var e=NI(x,r,t);return[0,e[1],[16,e[2]]]})),mB(P,(function(r){var t=P$t(r);return"number"==typeof t&&83===t?[1,OI(n,r)]:[0,M$t(r)]})),mB(R,(function(r,t,e){var n=r[2];function u(r){return Djt(r,vjt([0,t],[0,e]))}switch(n[0]){case 0:var a=[0,u(n[1])];break;case 1:a=[1,u(n[1])];break;case 2:a=[2,u(n[1])];break;case 3:a=[3,u(n[1])];break;case 4:a=[4,u(n[1])];break;case 5:a=[5,u(n[1])];break;case 6:a=[6,u(n[1])];break;case 7:a=[7,u(n[1])];break;case 8:a=[8,u(n[1])];break;case 9:a=[9,u(n[1])];break;case 10:a=[10,u(n[1])];break;case 11:var i=n[1],c=u(i[2]);a=[11,[0,i[1],c]];break;case 12:var f=n[1],o=u(f[4]);a=[12,[0,f[1],f[2],f[3],o]];break;case 13:var s=n[1],v=vjt([0,t],[0,e]),l=pjt(s[4],v);a=[13,[0,s[1],s[2],s[3],l]];break;case 14:var D=n[1],p=u(D[3]);a=[14,[0,D[1],D[2],p]];break;case 15:var b=n[1],E=u(b[2]);a=[15,[0,b[1],E]];break;case 16:var F=n[1],d=u(F[3]);a=[16,[0,F[1],F[2],d]];break;case 17:var m=n[1],h=u(m[3]);a=[17,[0,m[1],m[2],h]];break;case 18:var k=n[1],y=k[1],A=k[2],_=u(y[3]);a=[18,[0,[0,y[1],y[2],_],A]];break;case 19:var C=n[1],w=u(C[2]);a=[19,[0,C[1],w]];break;case 20:var S=n[1],g=u(S[2]);a=[20,[0,S[1],g]];break;case 21:var B=n[1],T=u(B[3]);a=[21,[0,B[1],B[2],T]];break;case 22:var I=n[1],O=u(I[2]);a=[22,[0,I[1],O]];break;case 23:var N=n[1],x=u(N[3]);a=[23,[0,N[1],N[2],x]];break;case 24:var L=n[1],P=u(L[3]);a=[24,[0,L[1],L[2],P]];break;case 25:var R=n[1],M=u(R[3]);a=[25,[0,R[1],R[2],M]];break;default:var G=n[1],U=u(G[2]);a=[26,[0,G[1],U]]}return[0,r[1],a]}));function $(r){var t=E$t(0,r),e=P$t(t);return"number"==typeof e&&66===e?[0,PYt(0,H,t)]:0}function Y(r){var t=P$t(r),e=x$t(1,r);if("number"==typeof t&&83===t){if("number"==typeof e&&66===e){sYt(r,83);var n=$(r);return[0,[0,M$t(r)],n]}var u=OI(P,r);return[0,66===P$t(r)?AYt(r,u):u,$(r)]}return[0,[0,M$t(r)],0]}function V(r,t){var e=f$t(1,t);aYt(e,1);var n=OI(r,e);return iYt(e),n}return[0,function(r){return V(e,r)},function(r){return V(B,r)},function(r){return V(I,r)},function(r){return V(O,r)},function(r){return V(N,r)},function(r,t){return V(xI(S,r,0,0),t)},function(r){return V(g,r)},function(r){return V(k,r)},function(r){return V(n,r)},function(r){return V(P,r)},function(r){return V($,r)},function(r){return V(Y,r)}]}(HYt),YYt=function(r){var t=[0,aht,RYt[1],0];function e(r){var t=P$t(r);if("number"==typeof t){var e=0;if(8<=t?10<=t||(e=1):1===t&&(e=1),e)return 1}return 0}function n(r){var t=xYt(r),n=P$t(r),u=0;if("number"==typeof n){var a=0;if(79===n?sYt(r,79):83===n?(z$t(r,[5,t[2][1]]),sYt(r,83)):a=1,!a){var i=R$t(r),c=U$t(r),f=P$t(r),o=0;if("number"==typeof f)switch(f){case 30:case 31:nYt(r);var s=cYt(r),v=e(r)?[1,i,[0,31===f?1:0,vjt([0,c],[0,s])]]:[0,i];break;default:o=1}else switch(f[0]){case 0:var l=f[2],D=xI(HYt[24],r,f[1],l),p=cYt(r);v=e(r)?[2,i,[0,D,l,vjt([0,c],[0,p])]]:[0,i];break;case 2:var b=f[1],E=b[1];b[4]&&rYt(r,44),nYt(r);var F=cYt(r);if(e(r))var d=vjt([0,c],[0,F]),m=[3,E,[0,b[2],b[3],d]];else m=[0,E];v=m;break;default:o=1}if(o){nYt(r);v=[0,i]}var h=v;u=1}}if(!u)h=0;return[0,t,h]}function u(r){var e=U$t(r);sYt(r,48);var u=NI(HYt[13],0,r),a=u[2][1],i=u[1];return[16,[0,u,PYt(0,(function(r){var e=uYt(r,63);if(e){aYt(r,1);var u=P$t(r),c=0;if("number"==typeof u)switch(u){case 114:var f=rht;break;case 116:f=tht;break;case 118:f=eht;break;default:c=1}else switch(u[0]){case 4:z$t(r,[4,a,[0,u[2]]]);f=0;break;case 9:if(0===u[1])c=1;else f=nht;break;default:c=1}if(c){z$t(r,[4,a,0]);f=0}nYt(r),iYt(r);var o=f}else o=e;var s=0!==o?1:0,v=s?U$t(r):s;sYt(r,0);for(var l=t;;){var D=P$t(r);if("number"==typeof D){var p=D-2|0;if(Yu

>>0){if(!(Ah<(p+1|0)>>>0)){var b=l[3],E=nCt(l[1][4]),F=nCt(l[1][3]),d=nCt(l[1][2]),m=nCt(l[1][1]);sYt(r,1);var h=P$t(r),k=0;if("number"==typeof h){var y=0;if(1!==h&&qt!==h&&(k=1,y=1),!y)var A=cYt(r)}else k=1;if(k){var _=H$t(r);A=_?fYt(r):_}var C=vjt([0,v],[0,A]);if(o)switch(o[1]){case 0:return[0,[0,m,1,b,C]];case 1:return[1,[0,d,1,b,C]];case 2:var w=1;break;default:return[3,[0,E,b,C]]}else{var g=Z_t(m),B=Z_t(d),T=Z_t(F),I=Z_t(E),O=0;if(0===g&&0===B){var N=0;if(0===T&&0===I&&(O=1,N=1),!N){w=0;O=2}}var x=0;switch(O){case 0:if(0===B&&0===T&&I<=g)return cCt((function(t){return u$t(r,[0,t[1],[1,a,t[2][1][2][1]]])}),E),[0,[0,m,0,b,C]];if(0===g&&0===T&&I<=B)return cCt((function(t){return u$t(r,[0,t[1],[9,a,t[2][1][2][1]]])}),E),[1,[0,d,0,b,C]];u$t(r,[0,i,[3,a]]);break;case 1:break;default:x=1}if(!x)return[2,[0,uht,0,b,C]]}var L=Z_t(F),P=Z_t(E);if(0===L);else{var R=0;if(0!==P&&(L>>0)Ah<(j+1|0)>>>0&&(X=1);else if(7===j){sYt(r,9);var H=P$t(r),$=0;if("number"==typeof H){var Y=0;if(1!==H&&qt!==H&&(Y=1),!Y){var V=1;$=1}}if(!$)V=0;u$t(r,[0,M,[8,V]])}else X=1;X||(U=1)}U||u$t(r,[0,M,Qmt]);l=[0,l[1],l[2],1];continue}}var K=l[2],J=l[1],W=PYt(0,n,r),q=W[2],z=q[1],Q=z[2][1];if(_I(Q,Zmt))var Z=l;else{var rr=z[1],tr=q[2],er=W[1],nr=CI(Q,0),ur=97<=nr?1:0;(ur?nr<=S?1:0:ur)&&u$t(r,[0,rr,[7,a,Q]]),NI(RYt[3],Q,K)&&u$t(r,[0,rr,[2,a,Q]]);var ar=l[3],ir=NI(RYt[4],Q,K),cr=[0,l[1],ir,ar],fr=function(t){return function(e,n){return o&&o[1]!==e?u$t(r,[0,n,[6,a,o,t]]):0}}(Q);if("number"==typeof tr){var or=0;if(o){var sr=o[1],vr=0;if(1===sr?u$t(r,[0,er,[9,a,Q]]):0===sr?u$t(r,[0,er,[1,a,Q]]):(or=1,vr=1),!vr)var lr=cr}else or=1;if(or)lr=[0,[0,J[1],J[2],J[3],[0,[0,er,[0,z]],J[4]]],ir,ar]}else switch(tr[0]){case 0:u$t(r,[0,tr[1],[6,a,o,Q]]);lr=cr;break;case 1:var Dr=tr[1];fr(0,Dr);lr=[0,[0,[0,[0,er,[0,z,[0,Dr,tr[2]]]],J[1]],J[2],J[3],J[4]],ir,ar];break;case 2:var pr=tr[1];fr(1,pr);lr=[0,[0,J[1],[0,[0,er,[0,z,[0,pr,tr[2]]]],J[2]],J[3],J[4]],ir,ar];break;default:var br=tr[1];fr(2,br);lr=[0,[0,J[1],J[2],[0,[0,er,[0,z,[0,br,tr[2]]]],J[3]],J[4]],ir,ar]}Z=lr}var Er=P$t(r),Fr=0;if("number"==typeof Er){var dr=Er-2|0,mr=0;Yu>>0?Ah<(dr+1|0)>>>0&&(mr=1):6===dr?(z$t(r,1),sYt(r,8)):mr=1,mr||(Fr=1)}Fr||sYt(r,9);l=Z}}),r),vjt([0,e],0)]]}function a(r,t){var e=t[2][1],n=t[1],u=r[1];return T$t(e)&&tYt(u,[0,n,41]),(w$t(e)||g$t(e))&&tYt(u,[0,n,53]),[0,u,r[2]]}function i(r,t){var e=t[2];switch(e[0]){case 0:return fCt(c,r,e[1][1]);case 1:return fCt(f,r,e[1][1]);case 2:var n=e[1][1],u=n[2][1],i=r[2],o=r[1];NI(MYt[3],u,i)&&u$t(o,[0,n[1],42]);var s=a([0,o,i],n),v=NI(MYt[4],u,s[2]);return[0,s[1],v];default:return u$t(r[1],[0,t[1],31]),r}}function c(r,t){if(0===t[0]){var e=t[1][2],n=e[1];return i(1===n[0]?a(r,n[1]):r,e[2])}return i(r,t[1][2][1])}function f(r,t){return 2===t[0]?r:i(r,t[1][2][1])}function o(r,t,e,n,u){var a=t||1-e;if(a){var c=u[2],f=c[3],o=t?f$t(1-r[6],r):r;if(n){var s=n[1],v=s[2][1],l=s[1];T$t(v)&&tYt(o,[0,l,43]),(w$t(v)||g$t(v))&&tYt(o,[0,l,53])}var D=c[2],p=fCt((function(r,t){return i(r,t[2][1])}),[0,o,MYt[1]],D),b=f?(i(p,f[1][2][1]),0):f}else b=a;return b}var s=function r(t,e){return r.fun(t,e)};function v(r){21===P$t(r)&&z$t(r,$a);var t=NI(HYt[18],r,41),e=79===P$t(r)?1:0;return[0,t,e?(sYt(r,79),[0,OI(HYt[10],r)]):e]}function l(t,e){function n(n){var u=o$t(e,s$t(t,n)),a=[0,u[1],u[2],u[3],u[4],u[5],u[6],u[7],u[8],u[9],1,u[11],u[12],u[13],u[14],u[15],u[16],u[17],u[18],u[19],u[20],u[21],u[22],u[23],u[24],u[25],u[26],u[27],u[28],u[29]],i=U$t(a);sYt(a,4);var c=n$t(a),f=c?21===P$t(a)?1:0:c;if(f){var o=U$t(a),v=PYt(0,(function(t){return sYt(t,21),83===P$t(t)?[0,OI(r[9],t)]:(z$t(t,BS),0)}),a),l=v[2];if(l){9===P$t(a)&&nYt(a);var D=vjt([0,o],0),p=[0,[0,v[1],[0,l[1],D]]]}else p=l;var b=p}else b=f;var E=NI(s,a,0),F=U$t(a);sYt(a,5);var d=ljt([0,i],[0,cYt(a)],F);return[0,b,E[1],E[2],d]}return function(r){return PYt(0,n,r)}}function D(r,t,e,n){var u=_$t(r,t,e),a=NI(HYt[16],n,u);return[0,[0,[0,a[1],a[2]]],a[3]]}function p(r){if(ul===P$t(r)){var t=U$t(r);return nYt(r),[0,1,t]}return Tht}function b(r){if(64===P$t(r)&&!X$t(1,r)){var t=U$t(r);return nYt(r),[0,1,t]}return Bht}function E(r){var t=r[2],e=0===t[3]?1:0;if(e)for(var n=t[2];;){if(n){var u=n[1][2],a=0,i=n[2];if(2===u[1][2][0]&&!u[2]){var c=1;a=1}if(!a)c=0;if(c){n=i;continue}return c}return 1}return e}function F(t){var e=b(t),n=e[1],u=e[2],a=PYt(0,(function(t){var e=U$t(t);sYt(t,15);var a=p(t),i=a[1],c=uCt([0,u,[0,e,[0,a[2],0]]]),f=t[7],o=P$t(t),s=0;if(0!==f&&"number"==typeof o)if(4===o){var v=0,D=0;s=1}else if(95===o){v=yYt(t,OI(r[3],t)),D=4===P$t(t)?0:[0,kYt(t,NI(HYt[13],Sht,t))];s=1}if(!s){var b=kYt(t,NI(HYt[13],ght,t));v=yYt(t,OI(r[3],t)),D=[0,b]}var E=OI(l(n,i),t),F=83===P$t(t)?E:_Yt(t,E),d=OI(r[12],t),m=d[2],h=d[1];if(m)var k=h,y=CYt(t,m);else k=AYt(t,h),y=m;return[0,i,v,D,F,k,y,c]}),t),i=a[2],c=i[4],f=i[3],s=i[1],v=D(t,n,s,0),F=E(c);o(t,v[2],F,f,c);var d=a[1],m=vjt([0,i[7]],0);return[23,[0,f,c,v[1],n,s,i[6],i[5],i[2],m,d]]}mB(s,(function(r,t){var e=P$t(r);if("number"==typeof e){var n=e-5|0,u=0;if(7>>0?BS===n&&(u=1):5<(n-1|0)>>>0&&(u=1),u){var a=12===e?1:0;if(a)var i=U$t(r),c=PYt(0,(function(r){return sYt(r,12),NI(HYt[18],r,41)}),r),f=vjt([0,i],0),o=[0,[0,c[1],[0,c[2],f]]];else o=a;return 5!==P$t(r)&&z$t(r,62),[0,nCt(t),o]}}var l=PYt(0,v,r);return 5!==P$t(r)&&sYt(r,9),NI(s,r,[0,l,t])}));function d(r,t){var e=U$t(t);sYt(t,r);for(var n=0,u=0;;){var a=PYt(0,(function(r){var t=NI(HYt[18],r,40);if(uYt(r,79))var e=[0,OI(HYt[10],r)],n=0;else if(2===t[2][0])e=tO[1],n=tO[2];else e=0,n=[0,[0,t[1],57]];return[0,[0,t,e],n]}),t),i=a[2],c=i[2],f=[0,[0,a[1],i[1]],n],o=c?[0,c[1],u]:u;if(!uYt(t,9)){var s=nCt(o);return[0,nCt(f),e,s]}n=f,u=o}}return[0,b,p,function(r,t,e){var n=R$t(r),u=P$t(r),a=0;if("number"==typeof u)if(ku===u){var i=U$t(r);nYt(r);var c=[0,[0,n,[0,0,vjt([0,i],0)]]]}else if(Um===u){var f=U$t(r);nYt(r);c=[0,[0,n,[0,1,vjt([0,f],0)]]]}else a=1;else a=1;if(a)c=0;if(c){var o=0;if(t||e||(o=1),!o)return u$t(r,[0,c[1][1],7]),0}return c},l,D,E,o,function(r){return d(28,D$t(1,r))},function(r){var t=d(27,D$t(1,r)),e=t[1],n=nCt(fCt((function(r,t){return t[2][2]?r:[0,[0,t[1],56],r]}),t[3],e));return[0,e,t[2],n]},function(r){return d(24,r)},function(r){return PYt(0,F,r)},function(r){return PYt(0,u,r)}]}($Yt),VYt=function(r){return[0,function(r,t){return 0===t[0]||cCt((function(t){return u$t(r,t)}),t[2][1]),t[1]},function(t,e,n){var u=t?t[1]:26;if(0===n[0])var a=n[1];else{cCt((function(r){return u$t(e,r)}),n[2][2]);a=n[1]}1-OI(r[23],a)&&u$t(e,[0,a[1],u]);var i=a[2];return 10===i[0]&&T$t(i[1][2][1])&&tYt(e,[0,a[1],50]),NI(r[19],e,a)},Iht,function(r,t){var e=eCt(r[2],t[2]);return[0,eCt(r[1],t[1]),e]},function(r){var t=nCt(r[2]);return[0,nCt(r[1]),t]}]}(HYt),KYt=function(r){var t=r[1],e=function r(t){return r.fun(t)},n=function r(t){return r.fun(t)},u=function r(t){return r.fun(t)},a=function r(t){return r.fun(t)},i=function r(t){return r.fun(t)},c=function r(t){return r.fun(t)},f=function r(t){return r.fun(t)},o=function r(t){return r.fun(t)},s=function r(t){return r.fun(t)},v=function r(t){return r.fun(t)},l=function r(t){return r.fun(t)},D=function r(t){return r.fun(t)},p=function r(t){return r.fun(t)},b=function r(t){return r.fun(t)},E=function r(t){return r.fun(t)},F=function r(t){return r.fun(t)},d=function r(t){return r.fun(t)},m=function r(t,e,n,u,a){return r.fun(t,e,n,u,a)},h=function r(t,e,n,u){return r.fun(t,e,n,u)},k=function r(t){return r.fun(t)},y=function r(t){return r.fun(t)},A=function r(t){return r.fun(t)},_=function r(t,e,n,u,a){return r.fun(t,e,n,u,a)},C=function r(t,e,n,u){return r.fun(t,e,n,u)},w=function r(t){return r.fun(t)},S=function r(t,e,n){return r.fun(t,e,n)},g=function r(t){return r.fun(t)},B=function r(t,e,n){return r.fun(t,e,n)},T=function r(t){return r.fun(t)},I=function r(t){return r.fun(t)},O=function r(t,e){return r.fun(t,e)},N=function r(t,e,n,u){return r.fun(t,e,n,u)},x=function r(t){return r.fun(t)},L=function r(t,e,n){return r.fun(t,e,n)},P=function r(t){return r.fun(t)},R=function r(t){return r.fun(t)},M=function r(t){return r.fun(t)},G=function r(t,e,n){return r.fun(t,e,n)},U=function r(t){return r.fun(t)},j=r[2];function X(r){var t=R$t(r),e=OI(c,r),u=OI(i,r);if(u){var a=u[1];return[0,PYt([0,t],(function(r){var t=xI(j,0,r,e);return[2,[0,a,t,OI(n,r),0]]}),r)]}return e}function H(r,t){if("number"==typeof t){var e=53!==t?1:0;if(!e)return e}throw lYt}function $(r){var t=m$t(H,r),e=X(t),n=P$t(t);if("number"==typeof n&&(11===n||83===n&&wT(y$t(t),Dyt)))throw lYt;if(J$t(t)){if(0===e[0]){var u=e[1][2];if(10===u[0]&&!wI(u[1][2][1],pyt)&&!H$t(t))throw lYt}return e}return e}function Y(r,e,n,u,a){return[0,[0,a,[15,[0,u,NI(t,r,e),NI(t,r,n),0]]]]}function V(r,t,e,n){for(var u=r,a=e,i=n;;){var c=P$t(t);if("number"!=typeof c||81!==c)return[0,i,a];1-t[26][6]&&z$t(t,ul),1-u&&z$t(t,zkt),sYt(t,81);var f=PYt(0,s,t),o=f[2],v=f[1],l=P$t(t),D=0;if("number"==typeof l&&!(1<(l-84|0)>>>0)){z$t(t,[24,kjt(l)]);var p=J(t,o,v),b=K(t,p[2],p[1]),E=b[1],F=b[2];D=1}if(!D)E=v,F=o;var d=ajt(i,E);u=1,a=Y(t,a,F,2,d),i=d}}function K(r,t,e){for(var n=t,u=e;;){var a=P$t(r);if("number"!=typeof a||84!==a)return[0,u,n];nYt(r);var i=PYt(0,s,r),c=J(r,i[2],i[1]),f=ajt(u,c[1]),o=V(0,r,Y(r,n,c[2],0,f),f);n=o[2],u=o[1]}}function J(r,t,e){for(var n=t,u=e;;){var a=P$t(r);if("number"!=typeof a||85!==a)return[0,u,n];nYt(r);var i=PYt(0,s,r),c=ajt(u,i[1]),f=V(0,r,Y(r,n,i[2],1,c),c);n=f[2],u=f[1]}}function W(r,t,e,n){return[0,n,[3,[0,e,r,t,0]]]}function q(r){var t=U$t(r);sYt(r,95);for(var e=0;;){var n=P$t(r);if("number"==typeof n){var u=0;if(96!==n&&qt!==n||(u=1),u){var a=nCt(e),i=U$t(r);sYt(r,96);var c=4===P$t(r)?hYt(r)[1]:cYt(r);return[0,a,ljt([0,t],[0,c],i)]}}var f=P$t(r),o=0;if("number"!=typeof f&&4===f[0]&&!wI(f[2],ekt)){var s=R$t(r),v=U$t(r);vYt(r,nkt);var l=[1,[0,s,[0,vjt([0,v],[0,cYt(r)])]]];o=1}if(!o)l=[0,OI($Yt[1],r)];var D=[0,l,e];96!==P$t(r)&&sYt(r,9);e=D}}function z(r){var t=U$t(r);return sYt(r,12),[0,OI(n,r),vjt([0,t],0)]}function Q(r,t){if("number"==typeof t){var e=0;if(59<=t){var n=t-62|0;30>>0?48===n&&(e=1):28<(n-1|0)>>>0&&(e=1)}else{var u=t+-42|0;15>>0?-1<=u&&(e=1):11===u&&(e=1)}if(e)return 0}throw lYt}return mB(e,(function(r){var t=P$t(r),e=0,n=J$t(r);if("number"==typeof t){var a=0;if(22<=t)if(58===t){if(r[17])return[0,OI(u,r)];a=1}else 95!==t&&(a=1);else 4===t||21<=t||(a=1);a||(e=1)}if(!e&&0===n)return X(r);var i=0;if(64===t&&n$t(r)&&95===x$t(1,r)){var c=M,f=$;i=1}if(!i)c=$,f=M;var o=pYt(r,c);if(o)return o[1];var s=pYt(r,f);return s?s[1]:X(r)})),mB(n,(function(r){return NI(t,r,OI(e,r))})),mB(u,(function(r){return PYt(0,(function(r){r[10]&&z$t(r,92);var t=U$t(r);if(sYt(r,58),Y$t(r))var e=0,u=0;else{var a=uYt(r,ul),i=P$t(r),c=0;if("number"==typeof i){var f=0;if(83!==i)if(10<=i)f=1;else switch(i){case 0:case 2:case 3:case 4:case 6:f=1}if(!f){var o=0;c=1}}if(!c)o=1;var s=a||o;e=s?[0,OI(n,r)]:s,u=a}var v=e?0:cYt(r);return[30,[0,e,vjt([0,t],[0,v]),u]]}),r)})),mB(a,(function(r){var t=r[2];switch(t[0]){case 17:var e=t[1];if(!wI(e[1][2][1],vyt)){var n=wI(e[2][2][1],lyt);if(!n)return n}break;case 10:case 16:break;default:return 0}return 1})),mB(i,(function(r){var t=P$t(r),e=0;if("number"==typeof t){var n=t-67|0;if(!(12>>0)){switch(n){case 0:var u=Qkt;break;case 1:u=Zkt;break;case 2:u=ryt;break;case 3:u=tyt;break;case 4:u=eyt;break;case 5:u=nyt;break;case 6:u=uyt;break;case 7:u=ayt;break;case 8:u=iyt;break;case 9:u=cyt;break;case 10:u=fyt;break;case 11:u=oyt;break;default:u=syt}var a=u;e=1}}if(!e)a=0;return 0!==a&&nYt(r),a})),mB(c,(function(r){var e=R$t(r),u=OI(o,r);if(82===P$t(r)){nYt(r);var a=OI(n,b$t(0,r));sYt(r,83);var i=PYt(0,n,r),c=ajt(e,i[1]),f=i[2];return[0,[0,c,[7,[0,NI(t,r,u),a,f,0]]]]}return u})),mB(f,(function(r){return NI(t,r,OI(c,r))})),mB(o,(function(r){var t=PYt(0,s,r),e=t[2],n=t[1],u=P$t(r),a=0;if("number"==typeof u&&81===u){var i=V(1,r,e,n);a=1}if(!a){var c=J(r,e,n);i=K(r,c[2],c[1])}return i[2]})),mB(s,(function(r){var e=0;r:for(;;){var n=PYt(0,(function(r){return[0,0!==OI(v,r)?1:0,OI(l,b$t(0,r))]}),r),u=n[2],a=u[2],i=n[1];95===P$t(r)&&0===a[0]&&12===a[1][2][0]&&z$t(r,61);var c=P$t(r),f=0;if("number"==typeof c){var o=c-17|0,s=0;if(1>>0)if(69<=o)switch(o-69|0){case 0:var D=Bkt;break;case 1:D=Tkt;break;case 2:D=Ikt;break;case 3:D=Okt;break;case 4:D=Nkt;break;case 5:D=xkt;break;case 6:D=Lkt;break;case 7:D=Pkt;break;case 8:D=Rkt;break;case 9:D=Mkt;break;case 10:D=Gkt;break;case 11:D=Ukt;break;case 12:D=jkt;break;case 13:D=Xkt;break;case 14:D=Hkt;break;case 15:D=$kt;break;case 16:D=Ykt;break;case 17:D=Vkt;break;case 18:D=Kkt;break;case 19:D=Jkt;break;default:s=1}else s=1;else D=0===o?r[12]?0:qkt:Wkt;if(!s){var p=D;f=1}}if(!f)p=0;if(0!==p&&nYt(r),!e&&!p)return a;if(p){var b=p[1],E=b[1],F=u[1];(F?14===E?1:0:F)&&u$t(r,[0,i,27]);for(var d=NI(t,r,a),m=[0,E,b[2]],h=i,k=e;;){var y=m[2],A=m[1];if(k){var _=k[1],C=_[2],w=C[2],S=0===w[0]?w[1]:w[1]-1|0;if(y[1]<=S){var g=ajt(_[3],h);d=W(_[1],d,C[1],g),m=[0,A,y],h=g,k=k[2];continue}}e=[0,[0,d,[0,A,y],h],k];continue r}}for(var B=NI(t,r,a),T=i,I=e;;){if(!I)return[0,B];var O=I[1],N=ajt(O[3],T),x=I[2];B=W(O[1],B,O[2][1],N),T=N,I=x}}})),mB(v,(function(r){var t=P$t(r);if("number"==typeof t)if(48<=t){if(ku<=t){if(!(jb<=t))switch(t-100|0){case 0:return kkt;case 1:return ykt;case 6:return Akt;case 7:return _kt}}else if(65===t&&r[18])return Ckt}else if(45<=t)switch(t+ec|0){case 0:return wkt;case 1:return Skt;default:return gkt}return 0})),mB(l,(function(r){var t=R$t(r),e=U$t(r),n=OI(v,r);if(n){var u=n[1];nYt(r);var i=PYt(0,D,r),c=i[2],f=ajt(t,i[1]);if(6===u){var o=c[2];switch(o[0]){case 10:tYt(r,[0,f,46]);break;case 16:1===o[1][2][0]&&u$t(r,[0,f,89])}}return[0,[0,f,[28,[0,u,c,vjt([0,e],0)]]]]}var s=P$t(r),l=0;if("number"==typeof s)if(jb===s)var b=hkt;else if(Ah===s)b=mkt;else l=1;else l=1;if(l)b=0;if(b){nYt(r);var E=PYt(0,D,r),F=E[2];1-OI(a,F)&&u$t(r,[0,F[1],26]);var d=F[2];10===d[0]&&T$t(d[1][2][1])&&rYt(r,52);var m=ajt(t,E[1]),h=vjt([0,e],0);return[0,[0,m,[29,[0,b[1],F,1,h]]]]}return OI(p,r)})),mB(D,(function(r){return NI(t,r,OI(l,r))})),mB(p,(function(r){var e=OI(b,r);if(H$t(r))return e;var n=P$t(r),u=0;if("number"==typeof n)if(jb===n)var i=dkt;else if(Ah===n)i=Fkt;else u=1;else u=1;if(u)i=0;if(i){var c=NI(t,r,e);1-OI(a,c)&&u$t(r,[0,c[1],26]);var f=c[2];10===f[0]&&T$t(f[1][2][1])&&rYt(r,51);var o=R$t(r);nYt(r);var s=cYt(r),v=ajt(c[1],o),l=vjt(0,[0,s]);return[0,[0,v,[29,[0,i[1],c,0,l]]]]}return e})),mB(b,(function(r){var t=R$t(r),e=[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15],0,r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29]],n=1-r[16],u=P$t(e),a=0;if("number"==typeof u){var i=u-44|0;if(!(7>>0)){var c=0;switch(i){case 0:if(n)var f=[0,OI(k,e)];else c=1;break;case 6:f=[0,OI(d,e)];break;case 7:f=[0,OI(F,e)];break;default:c=1}if(!c){var o=f;a=1}}}if(!a)o=W$t(e)?[0,OI(w,e)]:OI(T,e);return PI(m,0,0,e,t,o)})),mB(E,(function(r){return NI(t,r,OI(b,r))})),mB(F,(function(r){switch(r[20]){case 0:var t=okt;break;case 1:t=skt;break;default:t=vkt}var e=t[1],n=R$t(r),u=U$t(r);sYt(r,51);var a=[0,n,[23,[0,vjt([0,u],[0,cYt(r)])]]],i=P$t(r);if("number"==typeof i&&!(11<=i))switch(i){case 4:var c=t[2]?a:(u$t(r,[0,n,5]),[0,n,[10,ojt(0,[0,n,lkt])]]);return LI(h,Dkt,r,n,c);case 6:case 10:var f=e?a:(u$t(r,[0,n,4]),[0,n,[10,ojt(0,[0,n,bkt])]]);return LI(h,Ekt,r,n,f)}return e?Q$t(pkt,r):u$t(r,[0,n,4]),a})),mB(d,(function(r){return PYt(0,(function(r){var t=U$t(r);sYt(r,50);var e=U$t(r);sYt(r,4);var u=xI(L,[0,e],0,OI(n,b$t(0,r)));return sYt(r,5),[11,[0,u,vjt([0,t],[0,cYt(r)])]]}),r)})),mB(m,(function(r,e,n,u,a){var i=r?r[1]:1,c=e?e[1]:e,f=PI(_,[0,i],[0,c],n,u,a),o=wT(y$t(n),fkt);function s(r){var e=hYt(r);var n=NI(t,r,f);return NI(e[2],n,(function(r,t){return NI(LT(r,VD,76),r,t)}))}function v(r,t,e){var n=OI(A,t),a=n[1],f=ajt(u,a),s=[0,e,r,[0,a,n[2]],0],v=0;if(!o&&!c){var l=[4,s];v=1}if(!v)l=[20,[0,s,o]];return PI(m,[0,i],[0,c||o],t,u,[0,[0,f,l]])}if(n[13])return f;var l=P$t(n);if("number"==typeof l){if(4===l)return v(0,n,s(n));if(95===l&&n$t(n)){var D=m$t((function(r,t){throw lYt}),n);return bYt(D,f,(function(r){var t=s(r);return v(OI(y,r),r,t)}))}}return f})),mB(h,(function(r,e,n,u){var a=r?r[1]:1;return NI(t,e,PI(m,[0,a],0,e,n,[0,u]))})),mB(k,(function(r){return PYt(0,(function(r){var t=R$t(r),e=U$t(r);if(sYt(r,44),r[11]&&10===P$t(r)){var n=cYt(r);nYt(r);var u=ojt(vjt([0,e],[0,n]),[0,t,ukt]),a=P$t(r);return"number"==typeof a||4!==a[0]||wI(a[3],akt)?(Q$t(ikt,r),nYt(r),[10,u]):[17,[0,u,NI(HYt[13],0,r),0]]}var i=R$t(r),c=P$t(r),f=0;if("number"==typeof c)if(44===c)var o=OI(k,r);else if(51===c)o=OI(F,d$t(1,r));else f=1;else f=1;if(f)o=W$t(r)?OI(w,r):OI(I,r);var s=LI(C,ckt,d$t(1,r),i,o),v=P$t(r),l=0;if("number"!=typeof v&&3===v[0]){var D=LI(N,r,i,s,v[1]);l=1}if(!l)D=s;var p=0;if(4!==P$t(r)){var b=0;if(n$t(r)&&95===P$t(r)&&(b=1),!b){var E=D;p=1}}if(!p)E=NI(hYt(r)[2],D,(function(r,t){return NI(LT(r,VD,77),r,t)}));var d=n$t(r),m=d?bYt(m$t((function(r,t){throw lYt}),r),0,y):d,h=P$t(r),_=0;if("number"==typeof h&&4===h){var S=[0,OI(A,r)];_=1}if(!_)S=0;return[18,[0,E,m,S,vjt([0,e],0)]]}),r)})),mB(y,(function(r){var t=95===P$t(r)?1:0;return t?[0,PYt(0,q,r)]:t})),mB(A,(function(r){return PYt(0,(function(r){var t=U$t(r);sYt(r,4);for(var e=0;;){var u=P$t(r);if("number"==typeof u){var a=0;if(5!==u&&qt!==u||(a=1),a){var i=nCt(e),c=U$t(r);return sYt(r,5),[0,i,ljt([0,t],[0,cYt(r)],c)]}}var f=P$t(r),o=0;if("number"==typeof f&&12===f){var s=[1,PYt(0,z,r)];o=1}if(!o)s=[0,OI(n,r)];var v=[0,s,e];5!==P$t(r)&&sYt(r,9);e=v}}),r)})),mB(_,(function(r,e,n,u,a){var i=r?r[1]:1,c=e?e[1]:e,f=n[26],o=P$t(n),s=0;if("number"==typeof o)switch(o){case 6:nYt(n);var v=0,l=[0,c],D=[0,i];s=2;break;case 10:nYt(n);var p=0,b=[0,c],E=[0,i];s=1;break;case 80:1-f[7]&&z$t(n,ku),1-i&&z$t(n,Um),sYt(n,80);var F=0,d=P$t(n);if("number"==typeof d)switch(d){case 4:return a;case 6:nYt(n);v=zht,l=Qht,D=[0,i];s=2,F=1;break;case 95:if(n$t(n))return a}else if(3===d[0])return z$t(n,Pm),a;if(!F){p=Zht,b=rkt,E=[0,i];s=1}}else if(3===o[0]){c&&z$t(n,Pm);var h=o[1];return PI(m,tkt,0,n,u,[0,LI(N,n,u,NI(t,n,a),h)])}switch(s){case 0:return a;case 1:var k=E?i:1,y=b?b[1]:b,A=p?p[1]:p,_=OI(U,n),C=_[3],w=_[2],S=_[1];if(C){var g=fjt(w),B=n[28][1];if(B){var T=B[1];n[28][1]=[0,[0,T[1],[0,[0,g,S],T[2]]],B[2]]}else u$t(n,[0,S,90])}var I=ajt(u,S),O=C?[1,[0,S,[0,w,vjt([0,_[4]],0)]]]:[0,w];0===a[0]&&23===a[1][2][0]&&C&&u$t(n,[0,I,91]);var x=[0,NI(t,n,a),O,0];return PI(m,[0,k],[0,y],n,u,[0,[0,I,y?[21,[0,x,A]]:[16,x]]]);default:var L=D?i:1,P=l?l[1]:l,R=v?v[1]:v,M=d$t(0,n),G=OI(HYt[7],M),j=R$t(n);sYt(n,7);var X=cYt(n),H=ajt(u,j),$=vjt(0,[0,X]),Y=[0,NI(t,n,a),[2,G],$];return PI(m,[0,L],[0,P],n,u,[0,[0,H,P?[21,[0,Y,R]]:[16,Y]]])}})),mB(C,(function(r,e,n,u){var a=r?r[1]:1;return NI(t,e,PI(_,[0,a],0,e,n,[0,u]))})),mB(w,(function(r){return PYt(0,(function(r){var t=OI(YYt[1],r),e=t[1],n=t[2],u=PYt(0,(function(r){var t=U$t(r);sYt(r,15);var u=OI(YYt[2],r),a=u[1],i=uCt([0,n,[0,t,[0,u[2],0]]]);if(4===P$t(r))var c=0,f=0;else{var o=P$t(r),s=0;if("number"==typeof o){var v=95!==o?1:0;if(!v){var l=v;s=1}}if(!s){var D=o$t(a,s$t(e,r));l=[0,kYt(D,NI(HYt[13],qht,D))]}c=l,f=yYt(r,OI($Yt[3],r))}var p=l$t(0,r),b=xI(YYt[4],e,a,p),E=83===P$t(p)?b:_Yt(p,b),F=OI($Yt[12],p),d=F[2],m=F[1];if(d)var h=m,k=CYt(p,d);else h=AYt(p,m),k=d;return[0,c,E,a,k,h,f,i]}),r),a=u[2],i=a[3],c=a[2],f=a[1],o=LI(YYt[5],r,e,i,1),s=OI(YYt[6],c);PI(YYt[7],r,o[2],s,f,c);var v=u[1],l=vjt([0,a[7]],0);return[8,[0,f,c,o[1],e,i,a[4],a[5],a[6],l,v]]}),r)})),mB(S,(function(r,t,e){switch(t){case 1:rYt(r,44);try{var n=zT(qT(G_t(Yht,e)))}catch(r){if((r=II(r))[1]!==GI)throw r;n=P_t(G_t(Vht,e))}break;case 2:rYt(r,45);try{n=ST(e)}catch(r){if((r=II(r))[1]!==GI)throw r;n=P_t(G_t(Kht,e))}break;case 4:try{n=ST(e)}catch(r){if((r=II(r))[1]!==GI)throw r;n=P_t(G_t(Jht,e))}break;default:try{n=zT(qT(e))}catch(r){if((r=II(r))[1]!==GI)throw r;n=P_t(G_t(Wht,e))}}return sYt(r,[0,t,e]),n})),mB(g,(function(r){var t=HT(r);return 0!==t&&qt===CI(r,t-1|0)?kCt(r,0,t-1|0):r})),mB(B,(function(r,t,e){if(2<=t){var n=OI(g,e);try{var u=ST(n)}catch(e){if((e=II(e))[1]!==GI)throw e;u=P_t(G_t(Hht,n))}var a=u}else{var i=OI(g,e);try{var c=zT(qT(i))}catch(e){if((e=II(e))[1]!==GI)throw e;c=P_t(G_t($ht,i))}a=c}return sYt(r,[1,t,e]),a})),mB(T,(function(r){var t=R$t(r),e=U$t(r),n=P$t(r);if("number"==typeof n)switch(n){case 0:var u=OI(HYt[12],r);return[1,[0,u[1],[19,u[2]]],u[3]];case 4:return[0,OI(x,r)];case 6:var a=PYt(0,P,r),i=a[2];return[1,[0,a[1],[0,i[1]]],i[2]];case 21:return nYt(r),[0,[0,t,[26,[0,vjt([0,e],[0,cYt(r)])]]]];case 29:return nYt(r),[0,[0,t,[14,[0,0,Ght,vjt([0,e],[0,cYt(r)])]]]];case 40:return[0,OI(HYt[22],r)];case 95:var c=OI(HYt[17],r),f=c[2];return[0,[0,c[1],vn<=f[1]?[13,f[2]]:[12,f[2]]]];case 30:case 31:nYt(r);var o=31===n?1:0;return[0,[0,t,[14,[0,[1,o],o?jht:Xht,vjt([0,e],[0,cYt(r)])]]]];case 74:case 102:return[0,OI(R,r)]}else switch(n[0]){case 0:var s=n[2];return[0,[0,t,[14,[0,[2,xI(S,r,n[1],s)],s,vjt([0,e],[0,cYt(r)])]]]];case 1:var v=n[2];return[0,[0,t,[14,[0,[3,xI(B,r,n[1],v)],v,vjt([0,e],[0,cYt(r)])]]]];case 2:var l=n[1];l[4]&&rYt(r,44),nYt(r);var D=[0,l[2]],p=vjt([0,e],[0,cYt(r)]);return[0,[0,l[1],[14,[0,D,l[3],p]]]];case 3:var b=NI(O,r,n[1]);return[0,[0,b[1],[25,b[2]]]]}if(J$t(r)){var E=NI(HYt[13],0,r);return[0,[0,E[1],[10,E]]]}return Q$t(0,r),"number"!=typeof n&&6===n[0]&&nYt(r),[0,[0,t,[14,[0,0,Uht,vjt([0,e],[0,0])]]]]})),mB(I,(function(r){return NI(t,r,OI(T,r))})),mB(O,(function(r,t){var e=t[3],n=t[2],u=t[1],a=U$t(r);sYt(r,[3,t]);var i=[0,u,[0,[0,n[2],n[1]],e]];if(e)var c=u,f=[0,i,0],o=0;else for(var s=[0,i,0],v=0;;){var l=OI(HYt[7],r),D=[0,l,v],p=P$t(r),b=0;if("number"==typeof p&&1===p){aYt(r,4);var E=P$t(r),F=0;if("number"!=typeof E&&3===E[0]){var d=E[1],m=d[3],h=d[2];nYt(r);var k=d[1],y=[0,[0,h[2],h[1]],m];iYt(r);var A=[0,[0,k,y],s];if(!m){s=A,v=D;continue}var _=nCt(D),C=[0,k,nCt(A),_];b=1,F=1}if(!F)throw[0,$I,Pht]}if(!b){Q$t(Rht,r);var w=[0,l[1],Mht],S=nCt(D),g=nCt([0,w,s]);C=[0,l[1],g,S]}c=C[1],f=C[2],o=C[3];break}var B=cYt(r);return[0,ajt(u,c),[0,f,o,vjt([0,a],[0,B])]]})),mB(N,(function(r,t,e,n){var u=NI(hYt(r)[2],e,(function(r,t){return NI(LT(r,VD,26),r,t)})),a=NI(O,r,n);return[0,ajt(t,a[1]),[24,[0,u,a,0]]]})),mB(x,(function(r){var t=U$t(r),e=PYt(0,(function(r){sYt(r,4);var t=R$t(r),e=OI(n,r),u=P$t(r),a=0;if("number"==typeof u)if(9===u)var i=[0,xI(G,r,t,[0,e,0])];else if(83===u)i=[1,[0,e,OI($Yt[9],r),0]];else a=1;else a=1;if(a)i=[0,e];return sYt(r,5),i}),r),u=e[2],a=cYt(r),i=0===u[0]?u[1]:[0,e[1],[27,u[1]]];return xI(L,[0,t],[0,a],i)})),mB(L,(function(r,t,e){var n=e[2],u=r?r[1]:r,a=t?t[1]:t;function i(r){return Djt(r,vjt([0,u],[0,a]))}function c(r){return pjt(r,vjt([0,u],[0,a]))}switch(n[0]){case 0:var f=n[1],o=c(f[2]),s=[0,[0,f[1],o]];break;case 1:var v=n[1],l=v[10],D=i(v[9]);s=[1,[0,v[1],v[2],v[3],v[4],v[5],v[6],v[7],v[8],D,l]];break;case 2:var p=n[1],b=i(p[4]);s=[2,[0,p[1],p[2],p[3],b]];break;case 3:var E=n[1],F=i(E[4]);s=[3,[0,E[1],E[2],E[3],F]];break;case 4:var d=n[1],m=i(d[4]);s=[4,[0,d[1],d[2],d[3],m]];break;case 5:var h=n[1],k=i(h[7]);s=[5,[0,h[1],h[2],h[3],h[4],h[5],h[6],k]];break;case 7:var y=n[1],A=i(y[4]);s=[7,[0,y[1],y[2],y[3],A]];break;case 8:var _=n[1],C=_[10],w=i(_[9]);s=[8,[0,_[1],_[2],_[3],_[4],_[5],_[6],_[7],_[8],w,C]];break;case 10:var S=n[1],g=S[2],B=i(g[2]);s=[10,[0,S[1],[0,g[1],B]]];break;case 11:var T=n[1],I=i(T[2]);s=[11,[0,T[1],I]];break;case 12:var O=n[1],N=i(O[4]);s=[12,[0,O[1],O[2],O[3],N]];break;case 13:var x=n[1],L=i(x[4]);s=[13,[0,x[1],x[2],x[3],L]];break;case 14:var P=n[1],R=i(P[3]);s=[14,[0,P[1],P[2],R]];break;case 15:var M=n[1],G=i(M[4]);s=[15,[0,M[1],M[2],M[3],G]];break;case 16:var U=n[1],j=i(U[3]);s=[16,[0,U[1],U[2],j]];break;case 17:var X=n[1],H=i(X[3]);s=[17,[0,X[1],X[2],H]];break;case 18:var $=n[1],Y=i($[4]);s=[18,[0,$[1],$[2],$[3],Y]];break;case 19:var V=n[1],K=c(V[2]);s=[19,[0,V[1],K]];break;case 20:var J=n[1],W=J[1],q=J[2],z=i(W[4]);s=[20,[0,[0,W[1],W[2],W[3],z],q]];break;case 21:var Q=n[1],Z=Q[1],rr=Q[2],tr=i(Z[3]);s=[21,[0,[0,Z[1],Z[2],tr],rr]];break;case 22:var er=n[1],nr=i(er[2]);s=[22,[0,er[1],nr]];break;case 23:s=[23,[0,i(n[1][1])]];break;case 24:var ur=n[1],ar=i(ur[3]);s=[24,[0,ur[1],ur[2],ar]];break;case 25:var ir=n[1],cr=i(ir[3]);s=[25,[0,ir[1],ir[2],cr]];break;case 26:s=[26,[0,i(n[1][1])]];break;case 27:var fr=n[1],or=i(fr[3]);s=[27,[0,fr[1],fr[2],or]];break;case 28:var sr=n[1],vr=i(sr[3]);s=[28,[0,sr[1],sr[2],vr]];break;case 29:var lr=n[1],Dr=i(lr[4]);s=[29,[0,lr[1],lr[2],lr[3],Dr]];break;case 30:var pr=n[1],br=pr[3],Er=i(pr[2]);s=[30,[0,pr[1],Er,br]];break;default:s=n}return[0,e[1],s]})),mB(P,(function(t){var n=U$t(t);sYt(t,6);for(var u=[0,0,r[3]];;){var a=u[2],i=u[1],c=P$t(t);if("number"==typeof c){var f=0;if(13<=c)qt===c&&(f=1);else if(7<=c)switch(c-7|0){case 2:var o=R$t(t);nYt(t);u=[0,[0,[2,o],i],a];continue;case 5:var s=U$t(t),v=PYt(0,(function(t){nYt(t);var n=OI(e,t);return 0===n[0]?[0,n[1],r[3]]:[0,n[1],n[2]]}),t),l=v[2],D=l[2],p=v[1],b=vjt([0,s],0),E=[1,[0,p,[0,l[1],b]]],F=7===P$t(t)?1:0,d=0;if(!F&&7===x$t(1,t)){var m=[0,D[1],[0,[0,p,63],D[2]]];d=1}if(!d)m=D;1-F&&sYt(t,9);u=[0,[0,E,i],NI(r[4],m,a)];continue;case 0:f=1}if(f){var h=OI(r[5],a),k=nCt(i),y=U$t(t);return sYt(t,7),[0,[0,k,ljt([0,n],[0,cYt(t)],y)],h]}}var A=OI(e,t),_=0===A[0]?[0,A[1],r[3]]:[0,A[1],A[2]];7!==P$t(t)&&sYt(t,9);u=[0,[0,[0,_[1]],i],NI(r[4],_[2],a)]}})),mB(R,(function(r){aYt(r,5);var t=R$t(r),e=U$t(r),n=P$t(r);if("number"!=typeof n&&5===n[0]){var u=n[1],a=u[3],i=u[2];nYt(r);var c=cYt(r),f=G_t(xht,G_t(i,G_t(Nht,a)));iYt(r);var o=RCt(HT(a)),s=HT(a)-1|0;if(!(s<0))for(var v=0;;){var l=$T(a,v),D=l-103|0;if(!(18>>0))switch(D){case 0:case 2:case 6:case 12:case 14:case 18:UCt(o,l)}var p=v+1|0;if(s===v)break;v=p}var b=MCt(o);return wI(b,a)&&z$t(r,[14,a]),[0,t,[14,[0,[4,[0,i,b]],f,vjt([0,e],[0,c])]]]}throw[0,$I,Lht]})),mB(M,(function(r){var t=m$t(Q,r),e=R$t(t);if(11===x$t(1,t))var n=0,u=0;else{var a=OI(YYt[1],t);n=a[1],u=a[2]}var i=PYt(0,(function(r){var t=yYt(r,OI($Yt[3],r));if(J$t(r)&&0===t){var e=NI(HYt[13],Oht,r),n=e[1];return[0,t,[0,n,[0,0,[0,[0,n,[0,[0,n,[2,[0,e,[0,M$t(r)],0]]],0]],0],0,0]],[0,[0,n[1],n[3],n[3]]],0]}var u=xI(YYt[4],r[18],r[17],r),a=E$t(1,r),i=OI($Yt[12],a);return[0,t,u,i[1],i[2]]}),t),c=i[2],f=c[2],o=f[2],s=0;if(!o[1]){var v=0;if(!o[3]&&o[2]&&(v=1),!v){var l=A$t(t);s=1}}if(!s)l=t;var D=f[2],p=D[1],b=p?(u$t(l,[0,p[1][1],qt]),[0,f[1],[0,0,D[2],D[3],D[4]]]):f,E=H$t(l);(E?11===P$t(l)?1:0:E)&&z$t(l,58),sYt(l,11);var F=A$t(l),d=PYt(0,(function(r){var t=_$t(r,n,0),e=P$t(t);if("number"==typeof e&&0===e){var u=NI(HYt[16],1,t);return[0,[0,[0,u[1],u[2]]],u[3]]}return[0,[1,OI(HYt[10],t)],t[6]]}),F),m=d[2],h=OI(YYt[6],b);PI(YYt[7],F,m[2],h,0,b);var k=ajt(e,d[1]),y=i[1],A=vjt([0,u],0);return[0,[0,k,[1,[0,0,b,m[1],n,0,c[4],c[3],c[1],A,y]]]]})),mB(G,(function(r,t,e){return PYt([0,t],(function(r){for(var t=e;;){var u=P$t(r);if("number"!=typeof u||9!==u)return[22,[0,nCt(t),0]];nYt(r);t=[0,OI(n,r),t]}}),r)})),mB(U,(function(r){var t=R$t(r),e=PYt(0,(function(r){var t=P$t(r),e=0;if("number"==typeof t&&14===t){var n=U$t(r);nYt(r);var u=1,a=n;e=1}if(!e)u=0,a=0;return[0,u,xYt(r),a]}),r),n=e[2],u=n[2],a=n[1],i=e[1];return(a?mI(t[3],u[1][2]):a)&&u$t(r,[0,i,Sm]),[0,i,u,a,n[3]]})),[0,n,e,f,U,function(r){var t=r[2];switch(t[0]){case 17:var e=t[1];if(!wI(e[1][2][1],byt)){var n=wI(e[2][2][1],Eyt);if(!n)return n}break;case 0:case 10:case 16:case 19:break;default:return 0}return 1},E,S,G]}(VYt),JYt=function(r){function t(r){var t=U$t(r);nYt(r);var e=vjt([0,t],0),n=OI(KYt[6],r);return[0,NI((H$t(r)?mYt(r):dYt(r))[2],n,(function(r,t){return NI(LT(r,VD,78),r,t)})),e]}function e(r){var e=r[26][4];if(e)for(var n=0;;){var u=P$t(r);if("number"!=typeof u||13!==u)return nCt(n);n=[0,PYt(0,t,r),n]}return e}function n(r,t){var e=r?r[1]:r,n=U$t(t),u=P$t(t);if("number"==typeof u)switch(u){case 6:var a=PYt(0,(function(r){var t=U$t(r);sYt(r,6);var e=b$t(0,r),n=OI(HYt[10],e);return sYt(r,7),[0,n,vjt([0,t],[0,cYt(r)])]}),t),i=a[1];return[0,i,[3,[0,i,a[2]]]];case 14:if(e){var c=OI(KYt[4],t),f=c[2],o=c[1],s=fjt(f),v=t[28][1];if(v){var l=v[1],D=v[2],p=l[2],b=[0,[0,NI(QHt[4],s,l[1]),p],D];t[28][1]=b}else P_t(nct);return[0,o,[2,[0,o,[0,f,vjt([0,c[4]],0)]]]]}}else switch(u[0]){case 0:var E=u[2],F=R$t(t);return[0,F,[0,[0,F,[0,[2,xI(KYt[7],t,u[1],E)],E,vjt([0,n],[0,cYt(t)])]]]];case 2:var d=u[1],m=d[4],h=d[3],k=d[2],y=d[1];return m&&rYt(t,44),sYt(t,[2,[0,y,k,h,m]]),[0,y,[0,[0,y,[0,[0,k],h,vjt([0,n],[0,cYt(t)])]]]]}var A=OI(KYt[4],t),_=A[1];return A[3]&&u$t(t,[0,_,90]),[0,_,[1,A[2]]]}function u(r,t,e){var u=OI(YYt[2],r),a=u[1],i=u[2],c=n([0,t],r),f=c[1];return[0,wYt(r,c[2]),PYt(0,(function(r){var t=l$t(1,r),n=PYt(0,(function(r){var t=xI(YYt[4],0,0,r),n=83===P$t(r)?t:_Yt(r,t);if(0===e){var u=n[2];if(u[1])u$t(r,[0,f,Ah]);else{var a=u[2],i=0;(!a||a[2]||u[3])&&(i=1),i&&(u[3],u$t(r,[0,f,81]))}}else{var c=n[2];if(c[1])u$t(r,[0,f,jb]);else{var o=0;(c[2]||c[3])&&(o=1),o&&u$t(r,[0,f,80])}}return[0,0,n,AYt(r,OI($Yt[10],r))]}),t),u=n[2],c=u[2],o=LI(YYt[5],t,0,a,0),s=OI(YYt[6],c);PI(YYt[7],t,o[2],s,0,c);var v=n[1],l=vjt([0,i],0);return[0,0,c,o[1],0,a,0,u[3],u[1],l,v]}),r)]}function a(t){var e=OI(KYt[2],t);return 0===e[0]?[0,e[1],r[3]]:[0,e[1],e[2]]}function i(r,t,e){function n(n){var u=l$t(1,n),a=PYt(0,(function(e){var n=yYt(e,OI($Yt[3],e));if(0===r)if(0===t)var u=0,a=0;else u=1,a=0;else if(0===t)u=0,a=e[18];else u=1,a=1;var i=xI(YYt[4],a,u,e);return[0,n,83===P$t(e)?i:_Yt(e,i),AYt(e,OI($Yt[10],e))]}),u),i=a[2],c=i[2],f=LI(YYt[5],u,r,t,0),o=OI(YYt[6],c);PI(YYt[7],u,f[2],o,0,c);var s=a[1],v=vjt([0,e],0);return[0,0,c,f[1],r,t,0,i[3],i[1],v,s]}return function(r){return PYt(0,n,r)}}function c(r){return sYt(r,83),a(r)}function f(t,e,n,u,a,f){var o=PYt([0,e],(function(t){if(!u&&!a){var e=P$t(t);if("number"==typeof e){if(79===e){if(1===n[0])var o=n[1],s=R$t(t),v=[0,PYt([0,o[1]],(function(r){var t=U$t(r);sYt(r,79);var e=cYt(r);return[2,[0,0,NI(HYt[19],r,[0,o[1],[10,o]]),OI(HYt[10],r),vjt([0,t],[0,e])]]}),t),[0,[0,[0,s,[11,yjt(Uyt)]],0],0]];else v=c(t);return[0,[0,n,v[1],1],v[2]]}var l=0;if(95===e)l=1;else if(!(10<=e))switch(e){case 4:l=1;break;case 1:case 9:switch(n[0]){case 0:var D=n[1],p=D[1];u$t(t,[0,p,96]);var b=[0,p,[14,D[2]]];break;case 1:var E=n[1],F=E[2][1],d=E[1],m=0;O$t(F)&&wI(F,jyt)&&wI(F,Xyt)&&(u$t(t,[0,d,2]),m=1),!m&&g$t(F)&&tYt(t,[0,d,53]);b=[0,d,[10,E]];break;case 2:b=P_t(Hyt);break;default:var h=n[1][2][1];u$t(t,[0,h[1],97]);b=h}return[0,[0,n,b,1],r[3]]}if(l)return[0,[1,wYt(t,n),OI(i(u,a,f),t)],r[3]]}var k=c(t);return[0,[0,n,k[1],0],k[2]]}return[0,[1,wYt(t,n),OI(i(u,a,f),t)],r[3]]}),t),s=o[2];return[0,[0,[0,o[1],s[1]]],s[2]]}function o(r,t,e,n){var u=e[2][1][2][1],a=e[1];if(_I(u,Ryt))return u$t(r,[0,a,[22,u,0,1]]),t;var i=NI(GYt[28],u,t);if(i){var c=i[1],f=0;return Kl===n?tu===c&&(f=1):tu===n&&Kl===c&&(f=1),f||u$t(r,[0,a,[21,u]]),xI(GYt[4],u,Ld,t)}return xI(GYt[4],u,n,t)}function s(r,t){return PYt(0,(function(r){var e=t?U$t(r):t;sYt(r,52);for(var n=0;;){var u=[0,PYt(0,(function(r){var t=OI($Yt[2],r);if(95===P$t(r))var e=NI(hYt(r)[2],t,(function(r,t){return NI(LT(r,jg,79),r,t)}));else e=t;return[0,e,OI($Yt[4],r)]}),r),n],a=P$t(r);if("number"!=typeof a||9!==a)return[0,nCt(u),vjt([0,e],0)];sYt(r,9);n=u}}),r)}function v(r,t){return t?u$t(r,[0,t[1][1],7]):t}function l(r,t){return t?u$t(r,[0,t[1],66]):t}function D(r,t,e,n,u,a,i,c,f,o){for(;;){var s=P$t(r),D=0;if("number"==typeof s){var p=s-1|0,b=0;if(7

>>0){var E=p-78|0;if(4>>0)b=1;else switch(E){case 3:Q$t(0,r),nYt(r);continue;case 0:case 4:break;default:b=1}}else 5<(p-1|0)>>>0||(b=1);b||u||a||(D=1)}if(!D&&!Y$t(r)){l(r,c),v(r,f);var F=0;if(0===i){var d=0;switch(n[0]){case 0:var m=n[1][2][1],h=0;"number"!=typeof m&&0===m[0]&&(wI(m[1],Tyt)?(d=1,h=1):h=1),h||(d=1);break;case 1:wI(n[1][2][1],Iyt)&&(d=1);break;default:d=1}if(!d){var k=0,y=l$t(2,r);F=1}}if(!F)k=1,y=l$t(1,r);var A=wYt(y,n),_=PYt(0,(function(r){var t=PYt(0,(function(r){var t=yYt(r,OI($Yt[3],r));if(0===u)if(0===a)var e=0,n=0;else e=1,n=0;else if(0===a)e=0,n=r[18];else e=1,n=1;var i=xI(YYt[4],n,e,r),c=83===P$t(r)?i:_Yt(r,i),f=c[2],o=f[1],s=0;if(o&&0===k){u$t(r,[0,o[1][1],Vr]);var v=[0,c[1],[0,0,f[2],f[3],f[4]]];s=1}if(!s)v=c;return[0,t,v,AYt(r,OI($Yt[10],r))]}),r),e=t[2],n=e[2],i=LI(YYt[5],r,u,a,0),c=OI(YYt[6],n);return PI(YYt[7],r,i[2],c,0,n),[0,0,n,i[1],u,a,0,e[3],e[1],0,t[1]]}),y),C=[0,k,A,_,i,e,vjt([0,o],0)];return[0,[0,ajt(t,_[1]),C]]}var w=PYt([0,t],(function(r){var t=OI($Yt[10],r),e=r[26],u=P$t(r);if(c){var a=0;if("number"==typeof u&&79===u){z$t(r,67),nYt(r);var f=0}else a=1;if(a)f=0}else{var s=0;if("number"==typeof u&&79===u){var v=0;i&&e[3]&&(v=1);var l=0;if(!v){var D=0;if(!i&&e[2]&&(D=1),!D){f=1;l=1}}if(!l){sYt(r,79);var p=l$t(1,r);f=[0,OI(HYt[7],p)]}}else s=1;if(s)f=1}var b=P$t(r),E=0;if("number"==typeof b&&!(9<=b))switch(b){case 8:nYt(r);var F=P$t(r),d=0;if("number"==typeof F){var m=0;if(1!==F&&qt!==F&&(d=1,m=1),!m)var h=cYt(r)}else d=1;if(d){var k=H$t(r);h=k?fYt(r):k}var y=[0,n,t,f,h];E=1;break;case 4:case 6:Q$t(0,r);y=[0,n,t,f,0];E=1}if(!E){var A=P$t(r),_=0;if("number"==typeof A){var C=0;if(1!==A&&qt!==A&&(_=1,C=1),!C)var w=[0,0,function(r,t){return r}]}else _=1;if(_)w=H$t(r)?mYt(r):dYt(r);if("number"==typeof f)if(0===t[0])var S=NI(w[2],n,(function(r,t){return NI(LT(r,nC,81),r,t)})),g=t,B=f;else S=n,g=[1,NI(w[2],t[1],(function(r,t){return NI(LT(r,tD,82),r,t)}))],B=f;else S=n,g=t,B=[0,NI(w[2],f[1],(function(r,t){return NI(LT(r,VD,83),r,t)}))];y=[0,S,g,B,0]}var T=vjt([0,o],[0,y[4]]);return[0,y[1],y[2],y[3],T]}),r),S=w[2],g=S[4],B=S[3],T=S[2],I=S[1],O=w[1];return 2===I[0]?[2,[0,O,[0,I[1],B,T,i,f,g]]]:[1,[0,O,[0,I,B,T,i,f,g]]]}}function p(r,t){var e=x$t(r,t);if("number"==typeof e){var n=0;if(83<=e)95!==e&&84<=e||(n=1);else if(79===e)n=1;else if(!(9<=e))switch(e){case 1:case 4:case 8:n=1}if(n)return 1}return 0}function b(r){return p(0,r)}function E(r,t,a,i){var c=r?r[1]:r,f=f$t(1,t),E=j_t(c,e(f)),F=U$t(f);sYt(f,40);var d=D$t(1,f),m=P$t(d),h=0;if(0!==a&&"number"==typeof m){var k=0;if(52<=m?95!==m&&53<=m&&(k=1):41!==m&&0!==m&&(k=1),!k){var y=0;h=1}}if(!h){var A=NI(HYt[13],0,d);y=[0,NI(hYt(f)[2],A,(function(r,t){return NI(LT(r,jg,84),r,t)}))]}var _=OI($Yt[3],f);if(_)var C=[0,NI(hYt(f)[2],_[1],(function(r,t){return NI(LT(r,Am,85),r,t)}))];else C=_;var w=U$t(f),S=uYt(f,41);if(S)var g=PYt(0,(function(r){var t=o$t(0,r),e=OI(KYt[6],t);if(95===P$t(r))var n=NI(hYt(r)[2],e,(function(r,t){return NI(LT(r,VD,80),r,t)}));else n=e;return[0,n,OI($Yt[4],r),vjt([0,w],0)]}),f),B=g[1],T=hYt(f),I=[0,[0,B,NI(T[2],g[2],(function(r,t){return xI(LT(r,-663447790,86),r,B,t)}))]];else I=S;var O=52===P$t(f)?1:0;if(O){1-n$t(f)&&z$t(f,16);var N=[0,gYt(f,s(f,1))]}else N=O;return[0,y,PYt(0,(function(r){var t=U$t(r);if(uYt(r,0)){r[28][1]=[0,[0,QHt[1],0],r[28][1]];for(var a=0,c=GYt[1],f=0;;){var s=P$t(r);if("number"==typeof s){var E=s-2|0;if(Yu>>0){if(!(Ah<(E+1|0)>>>0)){var F=nCt(f),d=function(r,t){return OI(lCt((function(t){return 1-NI(QHt[3],t[1],r)})),t)},m=r[28][1];if(m){var h=m[2],k=m[1],y=k[2],A=k[1];if(h){var _=d(A,y),C=rCt(h),w=tCt(h),S=j_t(C[2],_);r[28][1]=[0,[0,C[1],S],w]}else{cCt((function(t){return u$t(r,[0,t[2],[23,t[1]]])}),d(A,y)),r[28][1]=0}}else P_t(uct);sYt(r,1);var g=P$t(r),B=0;if(0===i){var T=0;if("number"!=typeof g||1!==g&&qt!==g||(T=1),!T){var I=H$t(r);if(I){var O=fYt(r);B=1}else{O=I;B=1}}}if(!B)O=cYt(r);return[0,F,vjt([0,t],[0,O])]}}else if(6===E){sYt(r,8);continue}}var N=R$t(r),x=e(r),L=P$t(r),P=0;if("number"==typeof L&&60===L&&!p(1,r)){var R=[0,R$t(r)],M=U$t(r);nYt(r);var G=R,U=M;P=1}if(!P)G=0,U=0;var j=4!==x$t(1,r)?1:0;if(j)var X=95!==x$t(1,r)?1:0,H=X?42===P$t(r)?1:0:X;else H=j;if(H){var $=U$t(r);nYt(r);var Y=$}else Y=H;var V=64===P$t(r)?1:0;if(V)var K=1-p(1,r),J=K?1-X$t(1,r):K;else J=V;if(J){var W=U$t(r);nYt(r);var q=W}else q=J;var z=OI(YYt[2],r),Q=z[1],Z=xI(YYt[3],r,J,Q),rr=0;if(0===Q&&Z){var tr=OI(YYt[2],r),er=tr[1],nr=tr[2];rr=1}if(!rr)er=Q,nr=z[2];var ur=uCt([0,U,[0,Y,[0,q,[0,nr,0]]]]),ar=P$t(r),ir=0;if(0===J&&0===er&&"number"!=typeof ar&&4===ar[0]){var cr=ar[3];if(wI(cr,Oyt)){if(!wI(cr,Nyt)){var fr=U$t(r),or=n(xyt,r)[2];if(b(r)){var sr=D(r,N,x,or,J,er,H,G,Z,ur);ir=1}else{l(r,G),v(r,Z),wYt(r,or);var vr=j_t(ur,fr),lr=PYt([0,N],(function(r){return u(r,1,0)}),r),Dr=lr[2],pr=vjt([0,vr],0);sr=[0,[0,lr[1],[0,3,Dr[1],Dr[2],H,x,pr]]];ir=1}}}else{var br=U$t(r),Er=n(Lyt,r)[2];if(b(r)){sr=D(r,N,x,Er,J,er,H,G,Z,ur);ir=1}else{l(r,G),v(r,Z),wYt(r,Er);var Fr=j_t(ur,br),dr=PYt([0,N],(function(r){return u(r,1,1)}),r),mr=dr[2],hr=vjt([0,Fr],0);sr=[0,[0,dr[1],[0,2,mr[1],mr[2],H,x,hr]]];ir=1}}}if(!ir)sr=D(r,N,x,n(Pyt,r)[2],J,er,H,G,Z,ur);switch(sr[0]){case 0:var kr=sr[1],yr=kr[2],Ar=kr[1];switch(yr[1]){case 0:if(yr[4])var _r=[0,a,c];else{a&&u$t(r,[0,Ar,87]);_r=[0,1,c]}break;case 1:2===yr[2][0]&&u$t(r,[0,Ar,88]);_r=[0,a,c];break;case 2:var Cr=yr[2];_r=[0,a,2===Cr[0]?o(r,c,Cr[1],Kl):c];break;default:var wr=yr[2];_r=[0,a,2===wr[0]?o(r,c,wr[1],tu):c]}var Sr=_r;break;case 1:var gr=sr[1][2],Br=gr[4],Tr=gr[1],Ir=0;switch(Tr[0]){case 0:var Or=Tr[1],Nr=Or[2][1],xr=0;if("number"!=typeof Nr&&0===Nr[0]){var Lr=Or[1],Pr=Nr[1];Ir=1,xr=1}xr||(Ir=2);break;case 1:var Rr=Tr[1];Lr=Rr[1],Pr=Rr[2][1];Ir=1;break;case 2:P_t(wyt);break;default:Ir=2}switch(Ir){case 1:var Mr=_I(Pr,Syt);if(Mr)var Gr=Mr;else{var Ur=_I(Pr,gyt);Gr=Ur?Br:Ur}Gr&&u$t(r,[0,Lr,[22,Pr,Br,0]])}Sr=[0,a,c];break;default:Sr=[0,a,o(r,c,sr[1][2][1],Ld)]}a=Sr[1],c=Sr[2],f=[0,sr,f]}}return oYt(r,0),Byt}),f),C,I,N,E,vjt([0,F],0)]}function F(r){return[5,E(0,r,1,1)]}return[0,n,function(t){var e=PYt(0,(function(t){var e=U$t(t);sYt(t,0);for(var i=0,c=[0,0,r[3]];;){var o=c[2],s=c[1],v=P$t(t);if("number"==typeof v){var l=0;if(1!==v&&qt!==v||(l=1),l){var D=i?[0,o[1],[0,[0,i[1],99],o[2]]]:o,p=OI(r[5],D),b=nCt(s),E=U$t(t);return sYt(t,1),[0,[0,b,ljt([0,e],[0,cYt(t)],E)],p]}}if(12===P$t(t))var F=U$t(t),d=PYt(0,(function(r){return sYt(r,12),a(r)}),t),m=d[2],h=m[2],k=vjt([0,F],0),y=[0,[1,[0,d[1],[0,m[1],k]]],h];else{var A=R$t(t),_=x$t(1,t),C=0;if("number"==typeof _){var w=0;if(83<=_)95!==_&&84<=_&&(w=1);else if(79!==_)if(10<=_)w=1;else switch(_){case 1:case 4:case 9:break;default:w=1}if(!w){var S=0,g=0;C=1}}if(!C){var B=OI(YYt[1],t);S=B[1],g=B[2]}var T=OI(YYt[2],t),I=T[1],O=j_t(g,T[2]),N=P$t(t),x=0;if(0===S&&0===I&&"number"!=typeof N&&4===N[0]){var L=N[3],P=0;if(wI(L,Myt))if(wI(L,Gyt))P=1;else{var R=U$t(t),M=n(0,t)[2],G=P$t(t),U=0;if("number"==typeof G){var j=0;if(83<=G)95!==G&&84<=G&&(j=1);else if(79!==G)if(10<=G)j=1;else switch(G){case 1:case 4:case 9:break;default:j=1}if(!j){var X=f(t,A,M,0,0,0);U=1}}if(!U){wYt(t,M);var H=r[3],$=PYt([0,A],(function(r){return u(r,0,0)}),t),Y=$[2],V=vjt([0,R],0);X=[0,[0,[0,$[1],[3,Y[1],Y[2],V]]],H]}var K=X}else{var J=U$t(t),W=n(0,t)[2],q=P$t(t),z=0;if("number"==typeof q){var Q=0;if(83<=q)95!==q&&84<=q&&(Q=1);else if(79!==q)if(10<=q)Q=1;else switch(q){case 1:case 4:case 9:break;default:Q=1}if(!Q){var Z=f(t,A,W,0,0,0);z=1}}if(!z){wYt(t,W);var rr=r[3],tr=PYt([0,A],(function(r){return u(r,0,1)}),t),er=tr[2],nr=vjt([0,J],0);Z=[0,[0,[0,tr[1],[2,er[1],er[2],nr]]],rr]}K=Z}if(!P){var ur=K;x=1}}if(!x)ur=f(t,A,n(0,t)[2],S,I,O);y=ur}var ar=y[1],ir=0;if(1===ar[0]&&9===P$t(t)){var cr=[0,R$t(t)];ir=1}if(!ir)cr=0;var fr=P$t(t),or=0;if("number"==typeof fr){var sr=0;1!==fr&&qt!==fr&&(sr=1),sr||(or=1)}or||sYt(t,9);i=cr,c=[0,[0,ar,s],NI(r[4],y[2],o)]}}),t),i=e[2];return[0,e[1],i[1],i[2]]},function(r,t){return PYt(0,(function(r){return[2,E([0,t],r,r[7],0)]}),r)},function(r){return PYt(0,F,r)},s,e]}(VYt),WYt=function(r){function t(r){var t=OI(YYt[11],r);if(r[6])eYt(r,t[1]);else{var e=t[2],n=t[1];if(23===e[0]){var u=e[1];0===u[4]?0===u[5]||u$t(r,[0,n,60]):u$t(r,[0,n,59])}}return t}function e(r,t,e){var n=e[2][1],u=e[1];if(wI(n,KAt)){if(wI(n,JAt))return wI(n,WAt)?g$t(n)?tYt(t,[0,u,53]):O$t(n)?u$t(t,[0,u,[11,yjt(n)]]):r&&T$t(n)?tYt(t,[0,u,r[1]]):0:t[17]?u$t(t,[0,u,2]):tYt(t,[0,u,53]);if(t[6])return tYt(t,[0,u,53]);var a=t[14];return a?u$t(t,[0,u,[11,yjt(n)]]):a}var i=t[18];return i?u$t(t,[0,u,2]):i}function n(r,t){var e=t[4],n=t[3],u=t[2],a=t[1];e&&rYt(r,44);var i=U$t(r);return sYt(r,[2,[0,a,u,n,e]]),[0,a,[0,u,n,vjt([0,i],[0,cYt(r)])]]}function u(r,t,e){var n=r?r[1]:$At,u=t?t[1]:1,a=P$t(e);if("number"==typeof a){var i=a-2|0;if(Yu>>0){if(!(Ah<(i+1|0)>>>0)){return[1,[0,cYt(e),function(r,t){return r}]]}}else if(6===i){nYt(e);var c=P$t(e);if("number"==typeof c){var f=0;if(1!==c&&qt!==c||(f=1),f)return[0,cYt(e)]}return H$t(e)?[0,fYt(e)]:YAt}}return H$t(e)?[1,mYt(e)]:(u&&Q$t([0,n],e),VAt)}function a(r){var t=P$t(r);if("number"==typeof t){var e=0;if(1!==t&&qt!==t||(e=1),e){return[0,cYt(r),function(r,t){return r}]}}return H$t(r)?mYt(r):dYt(r)}function i(r,t,e){var n=u(0,0,t);if(0===n[0])return[0,n[1],e];var a=nCt(e);if(a)var i=nCt([0,NI(n[1][2],a[1],(function(t,e){return xI(LT(t,634872468,87),t,r,e)})),a[2]]);else i=a;return[0,0,i]}var c=function r(t){return r.fun(t)},f=function r(t){return r.fun(t)},o=function r(t){return r.fun(t)},s=function r(t){return r.fun(t)},v=function r(t){return r.fun(t)},l=function r(t,e){return r.fun(t,e)},D=function r(t){return r.fun(t)},p=function r(t){return r.fun(t)},b=function r(t,e,n){return r.fun(t,e,n)},E=function r(t){return r.fun(t)},F=function r(t){return r.fun(t)},d=function r(t,e){return r.fun(t,e)},m=function r(t){return r.fun(t)},h=function r(t){return r.fun(t)},k=function r(t,e){return r.fun(t,e)},y=function r(t){return r.fun(t)},A=function r(t,e){return r.fun(t,e)},_=function r(t){return r.fun(t)},C=function r(t,e){return r.fun(t,e)},w=function r(t){return r.fun(t)},S=function r(t,e){return r.fun(t,e)},g=function r(t,e){return r.fun(t,e)},B=function r(t,e){return r.fun(t,e)},T=function r(t){return r.fun(t)},I=function r(t){return r.fun(t)},O=function r(t){return r.fun(t)},N=function r(t,e,n){return r.fun(t,e,n)},x=function r(t,e){return r.fun(t,e)},L=function r(t){return r.fun(t)},P=function r(t){return r.fun(t)};function R(r){var t=U$t(r);sYt(r,59);var e=8===P$t(r)?1:0,n=e?cYt(r):e,a=u(0,0,r),i=0===a[0]?a[1]:a[1][1];return[4,[0,vjt([0,t],[0,j_t(n,i)])]]}function M(r){var t=U$t(r);sYt(r,37);var e=p$t(1,r),n=OI(HYt[2],e),a=1-r[6];(a?LYt(n):a)&&eYt(r,n[1]);var i=cYt(r);sYt(r,25);var c=cYt(r);sYt(r,4);var f=OI(HYt[7],r);sYt(r,5);var o=8===P$t(r)?1:0,s=o?cYt(r):o,v=u(0,HAt,r),l=0===v[0]?j_t(s,v[1]):v[1][1];return[14,[0,n,f,vjt([0,t],[0,j_t(i,j_t(c,l))])]]}function G(r,t,e){var n=e[2][1];if(n&&!n[1][2][2]){var u=n[2];if(!u)return u}return u$t(r,[0,e[1],t])}function U(r,t){var e=1-r[6],n=e?LYt(t):e;return n?eYt(r,t[1]):n}function j(t){var e=U$t(t);sYt(t,39);var n=t[18],u=n?uYt(t,65):n,a=j_t(e,U$t(t));sYt(t,4);var i=vjt([0,a],0),c=b$t(1,t),f=P$t(c),o=0;if("number"==typeof f)if(24<=f){if(!(29<=f)){var s=0;switch(f-24|0){case 0:var v=PYt(0,YYt[10],c),l=v[2],D=l[3],p=vjt([0,l[2]],0),b=[0,[0,[1,[0,v[1],[0,l[1],0,p]]]],D];break;case 3:var E=PYt(0,YYt[9],c),F=E[2],d=F[3],m=vjt([0,F[2]],0);b=[0,[0,[1,[0,E[1],[0,F[1],2,m]]]],d];break;case 4:var h=PYt(0,YYt[8],c),k=h[2],y=k[3],A=vjt([0,k[2]],0);b=[0,[0,[1,[0,h[1],[0,k[1],1,A]]]],y];break;default:s=1}if(!s){var _=b[1],C=b[2];o=1}}}else if(8===f){_=0,C=0;o=1}if(!o){var w=D$t(1,c);_=[0,[0,OI(HYt[8],w)]],C=0}var S=P$t(t);if(63!==S&&!u){if("number"==typeof S&&17===S){if(_){var g=_[1];if(0===g[0])var B=[1,xI(r[2],jAt,t,g[1])];else{var T=g[1];G(t,28,T);B=[0,T]}sYt(t,17);var I=OI(HYt[7],t);sYt(t,5);var O=p$t(1,t),N=OI(HYt[2],O);return U(t,N),[21,[0,B,I,N,0,i]]}throw[0,$I,XAt]}if(cCt((function(r){return u$t(t,r)}),C),sYt(t,8),_)var x=_[1],L=0===x[0]?[0,[1,NI(r[1],t,x[1])]]:[0,[0,x[1]]];else L=_;var P=P$t(t),R=0;if("number"==typeof P){var M=8!==P?1:0;if(!M){var j=M;R=1}}if(!R)j=[0,OI(HYt[7],t)];sYt(t,8);var X=P$t(t),H=0;if("number"==typeof X){var $=5!==X?1:0;if(!$){var Y=$;H=1}}if(!H)Y=[0,OI(HYt[7],t)];sYt(t,5);var V=p$t(1,t),K=OI(HYt[2],V);return U(t,K),[20,[0,L,j,Y,K,i]]}if(_){var J=_[1];if(0===J[0])var W=[1,xI(r[2],GAt,t,J[1])];else{var q=J[1];G(t,29,q);W=[0,q]}sYt(t,63);var z=OI(HYt[10],t);sYt(t,5);var Q=p$t(1,t),Z=OI(HYt[2],Q);return U(t,Z),[22,[0,W,z,Z,u,i]]}throw[0,$I,UAt]}function X(r){var e=W$t(r)?t(r):OI(HYt[2],r),n=1-r[6];return(n?LYt(e):n)&&eYt(r,e[1]),e}function H(r){var t=U$t(r);return sYt(r,43),[0,X(r),vjt([0,t],0)]}function $(r){var t=U$t(r);sYt(r,16);var e=j_t(t,U$t(r));sYt(r,4);var n=OI(HYt[7],r);sYt(r,5);var u=X(r),a=43===P$t(r)?1:0;return[24,[0,n,u,a?[0,PYt(0,H,r)]:a,vjt([0,e],0)]]}function Y(r){1-r[11]&&z$t(r,36);var t=U$t(r);sYt(r,19);var e=8===P$t(r)?1:0,n=e?cYt(r):e,a=0;if(8!==P$t(r)&&!Y$t(r)){var i=[0,OI(HYt[7],r)];a=1}if(!a)i=0;var c=u(0,0,r),f=0;if(0===c[0])var o=c[1];else{var s=c[1];if(i){var v=n,l=[0,NI(s[2],i[1],(function(r,t){return NI(LT(r,VD,88),r,t)}))];f=1}else o=s[1]}if(!f)v=j_t(n,o),l=i;return[28,[0,l,vjt([0,t],[0,v])]]}function V(r){var t=U$t(r);sYt(r,20),sYt(r,4);var e=OI(HYt[7],r);sYt(r,5),sYt(r,0);for(var n=MAt;;){var u=n[2],i=n[1],c=P$t(r);if("number"==typeof c){var f=0;if(1!==c&&qt!==c||(f=1),f){var o=nCt(u);return sYt(r,1),[29,[0,e,o,vjt([0,t],[0,a(r)[1]])]]}}var s=R$t(r),v=U$t(r),l=P$t(r),D=0;if("number"==typeof l&&36===l){i&&z$t(r,32),sYt(r,36);var p=0,b=cYt(r);D=1}if(!D){sYt(r,33);p=[0,OI(HYt[7],r)],b=0}var E=i||(0===p?1:0),F=R$t(r);sYt(r,83);var d=j_t(b,a(r)[1]),m=NI(HYt[4],(function(r){if("number"==typeof r){var t=r-1|0,e=0;if(32>>0?35===t&&(e=1):30<(t-1|0)>>>0&&(e=1),e)return 1}return 0}),[0,r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],1,r[10],r[11],r[12],r[13],r[14],r[15],r[16],r[17],r[18],r[19],r[20],r[21],r[22],r[23],r[24],r[25],r[26],r[27],r[28],r[29]]),h=nCt(m),k=h?h[1][1]:F,y=[0,p,m,vjt([0,v],[0,d])];n=[0,E,[0,[0,ajt(s,k),y],u]]}}function K(r){var t=U$t(r),e=R$t(r);sYt(r,22),H$t(r)&&u$t(r,[0,e,21]);var n=OI(HYt[7],r),a=u(0,0,r);if(0===a[0])var i=[0,a[1],n];else i=[0,0,NI(a[1][2],n,(function(r,t){return NI(LT(r,VD,89),r,t)}))];var c=vjt([0,t],[0,i[1]]);return[30,[0,i[2],c]]}function J(r){var t=U$t(r);sYt(r,23);var e=OI(HYt[15],r);if(34===P$t(r))var n=NI(hYt(r)[2],e,(function(r,t){var e=t[1];return[0,e,xI(LT(r,pD,27),r,e,t[2])]}));else n=e;var u=P$t(r),i=0;if("number"==typeof u&&34===u){var c=[0,PYt(0,(function(r){var t=U$t(r);sYt(r,34);var e=cYt(r),n=4===P$t(r)?1:0;if(n){sYt(r,4);var u=[0,NI(HYt[18],r,39)];sYt(r,5);var i=u}else i=n;var c=OI(HYt[15],r);if(38===P$t(r))var f=c;else f=NI(a(r)[2],c,(function(r,t){var e=t[1];return[0,e,xI(LT(r,pD,90),r,e,t[2])]}));return[0,i,f,vjt([0,t],[0,e])]}),r)];i=1}if(!i)c=0;var f=P$t(r),o=0;if("number"==typeof f&&38===f){sYt(r,38);var s=OI(HYt[15],r),v=s[1],l=a(r),D=[0,[0,v,NI(l[2],s[2],(function(r,t){return xI(LT(r,pD,91),r,v,t)}))]];o=1}if(!o)D=0;var p=0===c?1:0;return(p?0===D?1:0:p)&&u$t(r,[0,n[1],33]),[31,[0,n,c,D,vjt([0,t],0)]]}function W(r){var t=OI(YYt[10],r),e=i(0,r,t[1]);cCt((function(t){return u$t(r,t)}),t[3]);var n=vjt([0,t[2]],[0,e[1]]);return[34,[0,e[2],0,n]]}function q(r){var t=OI(YYt[9],r),e=i(2,r,t[1]);cCt((function(t){return u$t(r,t)}),t[3]);var n=vjt([0,t[2]],[0,e[1]]);return[34,[0,e[2],2,n]]}function z(r){var t=OI(YYt[8],r),e=i(1,r,t[1]);cCt((function(t){return u$t(r,t)}),t[3]);var n=vjt([0,t[2]],[0,e[1]]);return[34,[0,e[2],1,n]]}function Q(r){var t=U$t(r);sYt(r,25);var e=j_t(t,U$t(r));sYt(r,4);var n=OI(HYt[7],r);sYt(r,5);var u=p$t(1,r),a=OI(HYt[2],u),i=1-r[6];return(i?LYt(a):i)&&eYt(r,a[1]),[35,[0,n,a,vjt([0,e],0)]]}function Z(r){var e=U$t(r),n=OI(HYt[7],r),a=P$t(r),i=n[2];if(10===i[0]&&"number"==typeof a&&83===a){var c=i[1],f=c[2][1];sYt(r,83),NI(jYt[3],f,r[3])&&u$t(r,[0,n[1],[17,PAt,f]]);var o=r[29],s=r[28],v=r[27],l=r[26],D=r[25],p=r[24],b=r[23],E=r[22],F=r[21],d=r[20],m=r[19],h=r[18],k=r[17],y=r[16],A=r[15],_=r[14],C=r[13],w=r[12],S=r[11],g=r[10],B=r[9],T=r[8],I=r[7],O=r[6],N=r[5],x=r[4],L=NI(QHt[4],f,r[3]),P=[0,r[1],r[2],L,x,N,O,I,T,B,g,S,w,C,_,A,y,k,h,m,d,F,E,b,p,D,l,v,s,o];return[27,[0,c,W$t(P)?t(P):OI(HYt[2],P),vjt([0,e],0)]]}var R=u(RAt,0,r);if(0===R[0])var M=[0,R[1],n];else M=[0,0,NI(R[1][2],n,(function(r,t){return NI(LT(r,VD,92),r,t)}))];var G=vjt(0,[0,M[1]]);return[19,[0,M[2],0,G]]}function rr(r){var t=OI(HYt[7],r),e=u(LAt,0,r);if(0===e[0])var n=[0,e[1],t];else n=[0,0,NI(e[1][2],t,(function(r,t){return NI(LT(r,VD,93),r,t)}))];var a=n[2],i=r[19];if(i){var c=a[2],f=0;if(14===c[0]){var o=c[1],s=o[1];if("number"!=typeof s&&0===s[0]){var v=o[2],l=[0,kCt(v,1,HT(v)-2|0)];f=1}}if(!f)l=0;var D=l}else D=i;return[19,[0,a,D,vjt(0,[0,n[1]])]]}function tr(r){return PYt(0,rr,r)}function er(r,t){var e=t[2];switch(e[0]){case 0:return fCt((function(r,t){return er(r,0===t[0]?t[1][2][2]:t[1][2][1])}),r,e[1][1]);case 1:return fCt((function(r,t){return 2===t[0]?r:er(r,t[1][2][1])}),r,e[1][1]);case 2:return[0,e[1][1],r];default:return P_t(xAt)}}function nr(r){var t=P$t(r),e=0;if("number"!=typeof t&&4===t[0]&&!wI(t[3],TAt)){nYt(r);var u=P$t(r);if("number"!=typeof u&&2===u[0])return n(r,u[1]);Q$t(IAt,r),e=1}return e||Q$t(OAt,r),[0,M$t(r),NAt]}function ur(r,t,e){function n(t){return r?OI($Yt[2],t):NI(HYt[13],0,t)}var u=x$t(1,e);if("number"==typeof u)switch(u){case 1:case 9:case 110:return[0,n(e),0]}else if(4===u[0]&&!wI(u[3],BAt)){var a=xYt(e);return nYt(e),[0,a,[0,n(e)]]}var i=P$t(e);if(t&&"number"==typeof i){var c=0;if(46!==i&&61!==i||(c=1),c)return z$t(e,t[1]),nYt(e),[0,OI($Yt[2],e),0]}return[0,n(e),0]}function ar(r,t){var n=P$t(r);if("number"==typeof n&&ul===n){var u=PYt(0,(function(r){nYt(r);var e=P$t(r);return"number"==typeof e||4!==e[0]||wI(e[3],SAt)?(Q$t(gAt,r),0):(nYt(r),2<=t?[0,NI(HYt[13],0,r)]:[0,OI($Yt[2],r)])}),r),a=u[2],i=a?[0,[0,u[1],a[1]]]:a;return i?[0,[1,i[1]]]:i}sYt(r,0);for(var c=0,f=0;;){var o=c?c[1]:1,s=P$t(r);if("number"==typeof s){var v=0;if(1!==s&&qt!==s||(v=1),v){var l=nCt(f);return sYt(r,1),[0,[0,l]]}}if(1-o&&z$t(r,84),2===t){var D=P$t(r),p=0;if("number"==typeof D)if(46===D)var b=AAt;else if(61===D)b=yAt;else p=1;else p=1;if(p)b=0;var E=P$t(r),F=0;if("number"==typeof E){var d=0;if(46!==E&&61!==E&&(d=1),!d){var m=1;F=1}}if(!F)m=0;if(m){var h=xYt(r),k=P$t(r),y=0;if("number"==typeof k)switch(k){case 1:case 9:case 110:e(0,r,h);var A=[0,0,0,h];y=1}else if(4===k[0]&&!wI(k[3],_At)){var _=x$t(1,r),C=0;if("number"==typeof _)switch(_){case 1:case 9:case 110:var w=[0,b,0,OI($Yt[2],r)];C=1}else if(4===_[0]&&!wI(_[3],CAt)){var S=xYt(r);nYt(r);w=[0,b,[0,OI($Yt[2],r)],S];C=1}if(!C){e(0,r,h),nYt(r);w=[0,0,[0,NI(HYt[13],0,r)],h]}A=w;y=1}if(!y){var g=ur(1,0,r);A=[0,b,g[2],g[1]]}var B=A}else{var T=ur(0,0,r);B=[0,0,T[2],T[1]]}var I=B}else{var O=ur(1,kAt,r);I=[0,0,O[2],O[1]]}c=[0,uYt(r,9)],f=[0,I,f]}}function ir(r,t){var e=u(0,0,r);if(0===e[0])return[0,e[1],t];return[0,0,NI(e[1][2],t,(function(r,t){var e=t[1];return[0,e,xI(LT(r,Jg,94),r,e,t[2])]}))]}function cr(r){var t=f$t(1,r),e=U$t(t);sYt(t,50);var u=P$t(t),a=0;if("number"==typeof u)switch(u){case 46:if(n$t(t)){sYt(t,46);var i=P$t(t),c=0;if("number"==typeof i){var f=0;if(ul!==i&&0!==i&&(f=1),!f){var o=1;a=2,c=1}}if(!c){var s=1;a=1}}break;case 61:if(n$t(t)){var v=x$t(1,t),l=0;if("number"==typeof v)switch(v){case 0:nYt(t);o=0;a=2,l=2;break;case 103:nYt(t),Q$t(0,t);o=0;a=2,l=2;break;case 9:l=1}else 4!==v[0]||wI(v[3],wAt)||(l=1);switch(l){case 2:break;case 0:nYt(t);s=0;a=1;break;default:s=2;a=1}}break;case 0:case 103:o=2;a=2}else if(2===u[0]){var D=ir(t,n(t,u[1])),p=vjt([0,e],[0,D[1]]);return[25,[0,2,D[2],0,0,p]]}switch(a){case 0:s=2;break;case 1:break;default:var b=ar(t,o),E=ir(t,nr(t)),F=vjt([0,e],[0,E[1]]);return[25,[0,o,E[2],0,b,F]]}var d=2<=s?NI(HYt[13],0,t):OI($Yt[2],t),m=P$t(t),h=0;if("number"==typeof m&&9===m){sYt(t,9);var k=ar(t,s);h=1}if(!h)k=0;var y=ir(t,nr(t)),A=vjt([0,e],[0,y[1]]);return[25,[0,s,y[2],[0,d],k,A]]}function fr(r){return PYt(0,cr,r)}return mB(c,(function(r){var t=R$t(r),e=U$t(r);return sYt(r,8),[0,t,[15,[0,vjt([0,e],[0,a(r)[1]])]]]})),mB(f,(function(r){var t=U$t(r),e=PYt(0,(function(r){sYt(r,32);var t=0;if(8!==P$t(r)&&!Y$t(r)){var e=NI(HYt[13],0,r),n=e[2][1];1-NI(jYt[3],n,r[3])&&z$t(r,[16,n]);var a=[0,e];t=1}if(!t)a=0;var i=u(0,0,r),c=0;if(0===i[0])var f=i[1];else{var o=i[1];if(a){var s=0,v=[0,NI(o[2],a[1],(function(r,t){return NI(LT(r,jg,95),r,t)}))];c=1}else f=o[1]}if(!c)s=f,v=a;return[0,v,s]}),r),n=e[2],a=n[1],i=e[1],c=0===a?1:0;if(c)var f=1-(r[8]||r[9]);else f=c;return f&&u$t(r,[0,i,35]),[0,i,[1,[0,a,vjt([0,t],[0,n[2]])]]]})),mB(o,(function(r){var t=U$t(r),e=PYt(0,(function(r){sYt(r,35);var t=0;if(8!==P$t(r)&&!Y$t(r)){var e=NI(HYt[13],0,r),n=e[2][1];1-NI(jYt[3],n,r[3])&&z$t(r,[16,n]);var a=[0,e];t=1}if(!t)a=0;var i=u(0,0,r),c=0;if(0===i[0])var f=i[1];else{var o=i[1];if(a){var s=0,v=[0,NI(o[2],a[1],(function(r,t){return NI(LT(r,jg,96),r,t)}))];c=1}else f=o[1]}if(!c)s=f,v=a;return[0,v,s]}),r),n=e[2],a=e[1];1-r[8]&&u$t(r,[0,a,34]);var i=vjt([0,t],[0,n[2]]);return[0,a,[3,[0,n[1],i]]]})),mB(s,(function(r){var t=PYt(0,(function(r){var t=U$t(r);sYt(r,26);var e=j_t(t,U$t(r));sYt(r,4);var n=OI(HYt[7],r);sYt(r,5);var u=OI(HYt[2],r),a=1-r[6];return(a?LYt(u):a)&&eYt(r,u[1]),[36,[0,n,u,vjt([0,e],0)]]}),r),e=t[1];return tYt(r,[0,e,38]),[0,e,t[2]]})),mB(v,(function(r){var t=OI(HYt[15],r),e=t[1],n=a(r);return[0,e,[0,NI(n[2],t[2],(function(r,t){return xI(LT(r,pD,97),r,e,t)}))]]})),mB(l,(function(r,t){1-n$t(t)&&z$t(t,10);var e=j_t(r,U$t(t));sYt(t,61),aYt(t,1);var n=OI($Yt[2],t),a=95===P$t(t)?kYt(t,n):n,i=OI($Yt[3],t);sYt(t,79);var c=OI($Yt[1],t);iYt(t);var f=u(0,0,t);if(0===f[0])var o=[0,f[1],c];else o=[0,0,NI(f[1][2],c,(function(r,t){return NI(LT(r,hc,98),r,t)}))];var s=vjt([0,e],[0,o[1]]);return[0,a,i,o[2],s]})),mB(D,(function(r){return PYt(0,(function(r){var t=U$t(r);return sYt(r,60),[11,NI(l,t,r)]}),r)})),mB(p,(function(r){if(V$t(1,r)&&!$$t(1,r)){var t=PYt(0,OI(l,0),r);return[0,t[1],[32,t[2]]]}return OI(HYt[2],r)})),mB(b,(function(r,t,e){var n=r?r[1]:r;1-n$t(e)&&z$t(e,11);var a=j_t(t,U$t(e));sYt(e,62);var i=U$t(e);sYt(e,61);var c=j_t(a,i);aYt(e,1);var f=OI($Yt[2],e),o=95===P$t(e)?kYt(e,f):f,s=OI($Yt[3],e),v=P$t(e),l=0;if("number"==typeof v&&83===v){sYt(e,83);var D=[0,OI($Yt[1],e)];l=1}if(!l)D=0;if(n){var p=P$t(e),b=0;if("number"==typeof p&&79===p){z$t(e,68),nYt(e);var E=0;if(8!==P$t(e)&&!Y$t(e)){var F=[0,OI($Yt[1],e)];E=1}if(!E)F=0}else b=1;if(b)F=0;var d=F}else{sYt(e,79);d=[0,OI($Yt[1],e)]}iYt(e);var m=u(0,0,e);if(0===m[0])var h=[0,m[1],o,s,D,d];else{var k=m[1][2];if(d)var y=[0,0,o,s,D,[0,NI(k,d[1],(function(r,t){return NI(LT(r,hc,99),r,t)}))]];else if(D)y=[0,0,o,s,[0,NI(k,D[1],(function(r,t){return NI(LT(r,hc,ku),r,t)}))],0];else if(s)y=[0,0,o,[0,NI(k,s[1],(function(r,t){return NI(LT(r,Am,Um),r,t)}))],0,0];else y=[0,0,NI(k,o,(function(r,t){return NI(LT(r,jg,Pm),r,t)})),0,0,0];h=y}var A=vjt([0,c],[0,h[1]]);return[0,h[2],h[3],h[5],h[4],A]})),mB(E,(function(r){return PYt(0,(function(r){var t=U$t(r);return sYt(r,60),[12,xI(b,hAt,t,r)]}),r)})),mB(F,(function(r){var t=x$t(1,r);if("number"==typeof t&&61===t){var e=PYt(0,NI(b,mAt,0),r);return[0,e[1],[33,e[2]]]}return OI(HYt[2],r)})),mB(d,(function(r,t){1-n$t(t)&&z$t(t,16);var e=j_t(r,U$t(t));sYt(t,53);var n=OI($Yt[2],t),u=41===P$t(t)?n:kYt(t,n),i=OI($Yt[3],t),c=41===P$t(t)?i:yYt(t,i),f=OI($Yt[7],t);var o=NI(a(t)[2],f[2],(function(r,t){var e=t[1];return[0,e,xI(LT(r,_l,ul),r,e,t[2])]})),s=vjt([0,e],0);return[0,u,c,f[1],o,s]})),mB(m,(function(r){return PYt(0,(function(r){var t=U$t(r);return sYt(r,60),[8,NI(d,t,r)]}),r)})),mB(h,(function(r){if(V$t(1,r)||K$t(1,r)){var t=PYt(0,OI(d,0),r);return[0,t[1],[26,t[2]]]}return tr(r)})),mB(k,(function(r,t){var e=f$t(1,t),n=j_t(r,U$t(e));sYt(e,40);var u=NI(HYt[13],0,e),i=P$t(e),c=0;if("number"==typeof i){var f=0;if(95!==i&&0!==i&&(f=1),!f){var o=kYt(e,u);c=1}}if(!c)o=u;var s=OI($Yt[3],e),v=P$t(e),l=0;if("number"==typeof v&&0===v){var D=yYt(e,s);l=1}if(!l)D=s;var p=uYt(e,41);if(p){var b=OI($Yt[5],e),E=P$t(e),F=0;if("number"==typeof E&&0===E){var d=[0,NI(hYt(e)[2],b,(function(r,t){return QUt(OI(LT(r,_a,34),r),t)}))];F=1}if(!F)d=[0,b];var m=d}else m=p;var h=P$t(e),k=0;if("number"!=typeof h&&4===h[0]&&!wI(h[3],dAt)){nYt(e);for(var y=0;;){var A=[0,OI($Yt[5],e),y],_=P$t(e);if("number"!=typeof _||9!==_){var C=nCt(A),w=P$t(e),S=0;if("number"==typeof w&&0===w){var g=SYt(e,C);S=1}if(!S)g=C;var B=g;k=1;break}sYt(e,9);y=A}}if(!k)B=0;var T=P$t(e),I=0;if("number"==typeof T&&52===T){var O=NI(JYt[5],e,0),N=P$t(e),x=0;if("number"==typeof N&&0===N){var L=[0,gYt(e,O)];x=1}if(!x)L=[0,O];var P=L;I=1}if(!I)P=0;var R=NI($Yt[6],1,e);return[0,o,D,NI(a(e)[2],R,(function(r,t){var e=t[1];return[0,e,xI(LT(r,_l,Sm),r,e,t[2])]})),m,B,P,vjt([0,n],0)]})),mB(y,(function(r){return PYt(0,(function(r){var t=U$t(r);return sYt(r,60),[5,NI(k,t,r)]}),r)})),mB(A,(function(r,t){var e=j_t(r?r[1]:r,U$t(t));sYt(t,15);var n=kYt(t,NI(HYt[13],0,t)),a=R$t(t),i=yYt(t,OI($Yt[3],t)),c=OI($Yt[8],t);sYt(t,83);var f=OI($Yt[1],t);aYt(t,1);var o=P$t(t);if(iYt(t),66===o)var s=NI(hYt(t)[2],f,(function(r,t){return NI(LT(r,hc,29),r,t)}));else s=f;var v=ajt(a,s[1]),l=[0,v,[12,[0,i,c,s,0]]],D=OI($Yt[11],t),p=u(0,0,t);if(0===p[0])var b=[0,p[1],l,D];else{var E=p[1][2];if(D)var F=[0,0,l,[0,NI(E,D[1],(function(r,t){return NI(LT(r,ts,BS),r,t)}))]];else F=[0,0,NI(E,l,(function(r,t){return NI(LT(r,hc,$a),r,t)})),0];b=F}var d=[0,v,b[2]],m=vjt([0,e],[0,b[1]]);return[0,n,d,b[3],m]})),mB(_,(function(r){return PYt(0,(function(r){var t=U$t(r);sYt(r,60);var e=P$t(r);return"number"==typeof e&&64===e&&(z$t(r,65),sYt(r,64)),[7,NI(A,[0,t],r)]}),r)})),mB(C,(function(r,t){var e=j_t(t,U$t(r));sYt(r,24);var n=xI(HYt[14],r,FAt,40)[2],a=n[2],i=n[1],c=u(0,0,r);if(0===c[0])var f=[0,c[1],i,a];else{var o=c[1][2];f=0===a[0]?[0,0,NI(o,i,(function(r,t){return NI(LT(r,jg,Yu),r,t)})),a]:[0,0,i,NI(o,a,(function(r,t){return NI(LT(r,qE,jb),r,t)}))]}var s=vjt([0,e],[0,f[1]]);return[0,f[2],f[3],s]})),mB(w,(function(r){return PYt(0,(function(r){var t=U$t(r);return sYt(r,60),[13,NI(C,r,t)]}),r)})),mB(S,(function(r,t){var e=r?r[1]:r,u=R$t(t),i=U$t(t);sYt(t,60);var c=j_t(i,U$t(t));if(vYt(t,EAt),!e&&10!==P$t(t)){var f=P$t(t),o=0;if("number"!=typeof f&&2===f[0]){var s=n(t,f[1]),v=[1,NI(hYt(t)[2],s,(function(r,t){var e=t[1];return[0,e,xI(LT(r,Jg,37),r,e,t[2])]}))];o=1}if(!o)v=[0,kYt(t,NI(HYt[13],0,t))];var l=PYt(0,(function(r){var t=U$t(r);sYt(r,0);for(var e=0,n=0;;){var u=P$t(r);if("number"==typeof u){var i=0;if(1!==u&&qt!==u||(i=1),i){var c=nCt(n),f=0===c?1:0,o=f?U$t(r):f;return sYt(r,1),[0,[0,e,c],ljt([0,t],[0,a(r)[1]],o)]}}var s=NI(B,bAt,r),v=s[2],l=s[1],D=0;if(e)if(0===e[1][0])switch(v[0]){case 6:var p=v[1][2],b=0;if(p)switch(p[1][0]){case 4:case 6:b=1}b||z$t(r,79);var E=e;break;case 10:z$t(r,78);E=e;break;default:D=1}else if(10===v[0]){z$t(r,79);E=e}else D=1;else switch(v[0]){case 6:var F=v[1][2],d=0;if(F)switch(F[1][0]){case 4:case 6:var m=e;d=1}if(!d)m=[0,[1,l]];E=m;break;case 10:E=[0,[0,l]];break;default:D=1}if(D)E=e;e=E,n=[0,s,n]}}),t),D=l[2],p=D[1],b=p[1],E=l[1],F=[0,E,[0,p[2],D[2]]],d=ajt(u,E);return[0,d,[9,[0,v,F,b?b[1]:[0,d],vjt([0,c],0)]]]}var m=PYt(0,OI(g,c),t),h=m[2];return[0,ajt(u,m[1]),h]})),mB(g,(function(r,t){var e=U$t(t);sYt(t,10);var n=U$t(t);vYt(t,pAt);var a=uCt([0,r,[0,e,[0,n,[0,U$t(t),0]]]]),i=OI($Yt[9],t),c=u(0,0,t);if(0===c[0])var f=[0,i,c[1]];else f=[0,NI(c[1][2],i,(function(r,t){return NI(LT(r,tD,Ah),r,t)})),0];var o=vjt([0,a],[0,f[2]]);return[10,[0,f[1],o]]})),mB(B,(function(r,t){var e=r?r[1]:r;1-n$t(t)&&z$t(t,13);var n=x$t(1,t);if("number"==typeof n)switch(n){case 24:return OI(w,t);case 40:return OI(y,t);case 46:if(50===P$t(t))return fr(t);break;case 49:if(e)return NI(P,[0,e],t);break;case 53:return OI(m,t);case 61:var u=P$t(t);return"number"==typeof u&&50===u&&e?fr(t):OI(D,t);case 62:return OI(E,t);case 15:case 64:return OI(_,t)}else if(4===n[0]&&!wI(n[3],DAt))return NI(S,[0,e],t);if(e){var a=P$t(t);return"number"==typeof a&&50===a?(z$t(t,82),OI(HYt[2],t)):OI(w,t)}return OI(HYt[2],t)})),mB(T,(function(r){vYt(r,sAt);var t=P$t(r);if("number"!=typeof t&&2===t[0])return n(r,t[1]);var e=[0,R$t(r),vAt];return Q$t(lAt,r),e})),mB(I,(function(r){var t=OI(T,r),e=t[2],n=t[1],a=u(0,0,r);if(0===a[0])return[0,[0,n,e],a[1]];return[0,[0,n,NI(a[1][2],e,(function(r,t){return xI(LT(r,Jg,qt),r,n,t)}))],0]})),mB(O,(function(r){return r[2][1]})),mB(N,(function(r,t,e){var n=r?r[1]:1,u=P$t(t);if("number"==typeof u){var a=0;if(1!==u&&qt!==u||(a=1),a)return nCt(e)}1-n&&z$t(t,85);var i=PYt(0,(function(r){var t=xYt(r),e=P$t(r),n=0;if("number"!=typeof e&&4===e[0]&&!wI(e[3],oAt)){nYt(r);var u=xYt(r);a$t(r,u);var a=[0,u];n=1}if(!n){a$t(r,t);a=0}return[0,t,a]}),t);return xI(N,[0,uYt(t,9)],t,[0,i,e])})),mB(x,(function(r,t){return cCt((function(t){var n=t[2];return n[2]?0:e(fAt,r,n[1])}),t)})),mB(L,(function(r){function t(t){var e=F$t(1,f$t(1,t)),n=R$t(e),a=U$t(e);sYt(e,49);var i=P$t(e);if("number"==typeof i)if(65<=i){if(ul===i){var c=R$t(e);sYt(e,ul);var f=e[26][5],o=P$t(e),s=0;if("number"!=typeof o&&4===o[0]&&!wI(o[3],eAt)){nYt(e);var v=f?[0,NI(HYt[13],0,e)]:(z$t(e,13),0);s=1}if(!s)v=0;var D=OI(I,e),p=vjt([0,a],[0,D[2]]);return[18,[0,0,[0,[1,[0,c,v]]],[0,D[1]],1,p]]}}else if(13<=i)switch(i-13|0){case 23:var E=j_t(a,U$t(e)),F=PYt(0,(function(r){return sYt(r,36)}),e);if(a$t(e,ojt(0,[0,ajt(n,R$t(e)),nAt])),W$t(e))var d=[0,OI(YYt[11],e)],m=0;else if(q$t(e))d=[0,NI(JYt[3],e,r)],m=0;else if(48===P$t(e))d=[0,OI(YYt[12],e)],m=0;else{var k=OI(HYt[10],e),y=u(0,0,e);if(0===y[0])var A=[0,k,y[1]];else A=[0,NI(y[1][2],k,(function(r,t){return NI(LT(r,VD,Vr),r,t)})),0];d=[1,A[1]],m=A[2]}var _=vjt([0,E],[0,m]);return[17,[0,F[1],d,_]];case 40:1-n$t(e)&&z$t(e,15);var C=OI(h,e),w=C[2];if(26===w[0]){var S=OI(O,w[1][1]);a$t(e,ojt(0,[0,C[1],S]))}else P_t(G_t(aAt,uAt));return[18,[0,[0,C],0,0,0,vjt([0,a],0)]];case 48:if(0!==x$t(1,e)){1-n$t(e)&&z$t(e,15);var g=x$t(1,e);if("number"==typeof g){if(48===g)return z$t(e,0),sYt(e,61),[18,[0,0,0,0,0,vjt([0,a],0)]];if(ul===g){sYt(e,61);var B=R$t(e);sYt(e,ul);var T=OI(I,e),L=vjt([0,a],[0,T[2]]);return[18,[0,0,[0,[1,[0,B,0]]],[0,T[1]],0,L]]}}var P=PYt(0,OI(l,0),e),R=P[2],M=P[1];return a$t(e,ojt(0,[0,M,OI(O,R[1])])),[18,[0,[0,[0,M,[32,R]]],0,0,0,vjt([0,a],0)]]}break;case 49:var G=PYt(0,(function(r){return OI(NI(b,0,0),r)}),e),U=G[2],j=G[1];return a$t(e,ojt(0,[0,j,OI(O,U[1])])),[18,[0,[0,[0,j,[33,U]]],0,0,0,vjt([0,a],0)]];case 0:case 2:case 11:case 14:case 15:case 27:case 35:case 51:var X=NI(HYt[3],[0,r],e),H=X[2],$=X[1],Y=0;switch(H[0]){case 2:var V=H[1][1];if(V){var K=V[1];Y=1}else{u$t(e,[0,$,74]);var J=0}break;case 16:K=H[1][1];Y=1;break;case 23:var W=H[1][1];if(W){K=W[1];Y=1}else{u$t(e,[0,$,75]);J=0}break;case 34:J=fCt((function(r,t){return fCt(er,r,[0,t[2][1],0])}),0,H[1][1]);break;default:J=P_t(cAt)}return cCt((function(r){return a$t(e,r)}),Y?[0,ojt(0,[0,$,OI(O,K)]),0]:J),[18,[0,[0,X],0,0,1,vjt([0,a],0)]]}var q=P$t(e),z=0;if("number"==typeof q&&61===q){nYt(e);var Q=0;z=1}if(!z)Q=1;sYt(e,0);var Z=xI(N,0,e,0);sYt(e,1);var rr=P$t(e),tr=0;if("number"!=typeof rr&&4===rr[0]&&!wI(rr[3],iAt)){var nr=OI(I,e),ur=[0,nr[1]],ar=nr[2];tr=1}if(!tr){NI(x,e,Z);var ir=u(0,0,e);ur=0,ar=0===ir[0]?ir[1]:ir[1][1]}return[18,[0,0,[0,[0,Z]],ur,Q,vjt([0,a],[0,ar])]]}return function(r){return PYt(0,t,r)}})),mB(P,(function(r){var t=r?r[1]:r;function e(r){1-n$t(r)&&z$t(r,13);var e=U$t(r);sYt(r,60);var n=F$t(1,f$t(1,r)),a=j_t(e,U$t(n));sYt(n,49);var i=P$t(n);if("number"==typeof i)if(53<=i){if(ul===i){var c=R$t(n);sYt(n,ul);var f=n[26][5],o=P$t(n),s=0;if("number"!=typeof o&&4===o[0]&&!wI(o[3],Zyt)){nYt(n);var v=f?[0,NI(HYt[13],0,n)]:(z$t(n,13),0);s=1}if(!s)v=0;var D=OI(I,n),p=vjt([0,a],[0,D[2]]);return[6,[0,0,0,[0,[1,[0,c,v]]],[0,D[1]],p]]}if(!(63<=i))switch(i-53|0){case 0:if(t)return[6,[0,0,[0,[6,PYt(0,OI(d,0),n)]],0,0,vjt([0,a],0)]];break;case 8:if(t)return[6,[0,0,[0,[4,PYt(0,OI(l,0),n)]],0,0,vjt([0,a],0)]];break;case 9:return[6,[0,0,[0,[5,PYt(0,NI(b,Qyt,0),n)]],0,0,vjt([0,a],0)]]}}else{var E=i-15|0;if(!(25>>0))switch(E){case 21:var F=j_t(a,U$t(n)),m=PYt(0,(function(r){return sYt(r,36)}),n),h=P$t(n),y=0;if("number"==typeof h)if(15===h)var _=[0,[1,PYt(0,(function(r){return NI(A,0,r)}),n)]],w=0;else if(40===h)_=[0,[2,PYt(0,OI(k,0),n)]],w=0;else y=1;else y=1;if(y){var S=OI($Yt[1],n),g=u(0,0,n);if(0===g[0])var B=[0,S,g[1]];else B=[0,NI(g[1][2],S,(function(r,t){return NI(LT(r,hc,It),r,t)})),0];_=[0,[3,B[1]]],w=B[2]}var T=vjt([0,F],[0,w]);return[6,[0,[0,m[1]],_,0,0,T]];case 0:case 9:case 12:case 13:case 25:var O=P$t(n);if("number"==typeof O){var L=0;if(25<=O)if(29<=O){if(40===O){var P=[0,[2,PYt(0,OI(k,0),n)]];L=1}}else 27<=O&&(L=2);else if(15===O){P=[0,[1,PYt(0,(function(r){return NI(A,0,r)}),n)]];L=1}else 24<=O&&(L=2);var R=0;switch(L){case 0:break;case 2:"number"==typeof O&&(27===O?z$t(n,70):28===O&&z$t(n,69));P=[0,[0,PYt(0,(function(r){return NI(C,r,0)}),n)]];R=1;break;default:R=1}if(R)return[6,[0,0,P,0,0,vjt([0,a],0)]]}throw[0,$I,tAt]}}var M=P$t(n);"number"==typeof M&&(53===M?z$t(n,72):61===M&&z$t(n,71)),sYt(n,0);var G=xI(N,0,n,0);sYt(n,1);var U=P$t(n),j=0;if("number"!=typeof U&&4===U[0]&&!wI(U[3],rAt)){var X=OI(I,n),H=[0,X[1]],$=X[2];j=1}if(!j){NI(x,n,G);var Y=u(0,0,n);H=0,$=0===Y[0]?Y[1]:Y[1][1]}return[6,[0,0,0,[0,[0,G]],H,vjt([0,a],[0,$])]]}return function(r){return PYt(0,e,r)}})),[0,function(r){return PYt(0,j,r)},function(r){return PYt(0,$,r)},function(r){return PYt(0,z,r)},function(r){return PYt(0,J,r)},function(r){return PYt(0,Q,r)},s,v,f,o,function(r){return PYt(0,R,r)},B,P,E,function(r){return PYt(0,M,r)},c,L,tr,fr,h,function(r){return PYt(0,Z,r)},F,function(r){return PYt(0,Y,r)},function(r){return PYt(0,V,r)},function(r){return PYt(0,K,r)},p,function(r){return PYt(0,W,r)},function(r){return PYt(0,q,r)}]}(VYt),qYt=function(r){var t=function r(t,e){return r.fun(t,e)},e=function r(t,e){return r.fun(t,e)},n=function r(t,e){return r.fun(t,e)};function u(r,t){return OI(HYt[23],t)?[0,NI(n,r,t)]:(u$t(r,[0,t[1],26]),0)}function a(t){function e(r){var t=P$t(r);return"number"==typeof t&&79===t?(sYt(r,79),[0,OI(HYt[10],r)]):0}function n(n){var u=U$t(n);sYt(n,0);for(var a=0,i=0,f=0;;){var o=P$t(n);if("number"==typeof o){var s=0;if(1!==o&&qt!==o||(s=1),s){i&&u$t(n,[0,i[1],99]);var v=nCt(f),l=U$t(n);sYt(n,1);var D=cYt(n);return[0,[0,v,83===P$t(n)?[1,OI(r[9],n)]:UYt(n),ljt([0,u],[0,D],l)]]}}if(12===P$t(n))var p=U$t(n),b=PYt(0,(function(r){return sYt(r,12),c(r,t)}),n),E=vjt([0,p],0),F=[0,[1,[0,b[1],[0,b[2],E]]]];else{var d=R$t(n),m=NI(HYt[20],0,n),h=P$t(n),k=0;if("number"==typeof h&&83===h){sYt(n,83);var y=PYt([0,d],(function(r){return[0,c(r,t),e(r)]}),n),A=y[2],_=m[2];switch(_[0]){case 0:var C=[0,_[1]];break;case 1:C=[1,_[1]];break;case 2:C=P_t($yt);break;default:C=[2,_[1]]}F=[0,[0,[0,y[1],[0,C,A[1],A[2],0]]]]}else k=1;if(k){var w=m[2];if(1===w[0]){var S=w[1],g=S[2][1],B=S[1],T=0;O$t(g)&&wI(g,Vyt)&&wI(g,Kyt)&&(u$t(n,[0,B,2]),T=1),!T&&g$t(g)&&tYt(n,[0,B,53]);var I=PYt([0,d],function(r,t){return function(n){return[0,[0,t,[2,[0,r,UYt(n),0]]],e(n)]}}(S,B),n),O=I[2];F=[0,[0,[0,I[1],[0,[1,S],O[1],O[2],1]]]]}else{Q$t(Yyt,n);F=0}}}if(F){var N=F[1],x=a?(u$t(n,[0,N[1][1],64]),0):i;if(0===N[0])var L=a,P=x;else{var R=9===P$t(n)?1:0;L=1,P=R?[0,R$t(n)]:R}1!==P$t(n)&&sYt(n,9);a=L,i=P,f=[0,N,f]}else;}}return function(r){return PYt(0,n,r)}}function i(t){function e(e){var n=U$t(e);sYt(e,6);for(var u=0;;){var a=P$t(e);if("number"==typeof a){var i=0;if(13<=a)qt===a&&(i=1);else if(7<=a)switch(a-7|0){case 2:var f=R$t(e);sYt(e,9);u=[0,[2,f],u];continue;case 5:var o=U$t(e),s=PYt(0,(function(r){return sYt(r,12),c(r,t)}),e),v=s[1],l=vjt([0,o],0),D=[1,[0,v,[0,s[2],l]]];7!==P$t(e)&&(u$t(e,[0,v,63]),9===P$t(e)&&nYt(e));u=[0,D,u];continue;case 0:i=1}if(i){var p=nCt(u),b=U$t(e);return sYt(e,7),[1,[0,p,83===P$t(e)?[1,OI(r[9],e)]:UYt(e),ljt([0,n],[0,cYt(e)],b)]]}}var E=PYt(0,(function(r){var e=c(r,t),n=P$t(r),u=0;if("number"==typeof n&&79===n){sYt(r,79);var a=[0,OI(HYt[10],r)];u=1}if(!u)a=0;return[0,e,a]}),e),F=E[2],d=[0,[0,E[1],[0,F[1],F[2]]]];7!==P$t(e)&&sYt(e,9);u=[0,d,u]}}return function(r){return PYt(0,e,r)}}function c(r,t){var e=P$t(r);if("number"==typeof e){if(6===e)return OI(i(t),r);if(0===e)return OI(a(t),r)}var n=xI(HYt[14],r,0,t);return[0,n[1],[2,n[2]]]}return mB(t,(function(r,t){for(var e=t[2],u=e[2],a=UYt(r),i=0,c=e[1];;){if(!c){var f=[0,[0,nCt(i),a,u]];return[0,t[1],f]}var o=c[1];if(0!==o[0]){var s=c[2],v=o[1],l=v[2],D=v[1];if(s){u$t(r,[0,D,64]);c=s}else{var p=l[2];i=[0,[1,[0,D,[0,NI(n,r,l[1]),p]]],i],c=0}}else{var b=o[1],E=b[2];switch(E[0]){case 0:var F=E[2],d=E[1];switch(d[0]){case 0:var m=[0,d[1]];break;case 1:m=[1,d[1]];break;case 2:m=P_t(qyt);break;default:m=[2,d[1]]}var h=F[2],k=0;if(2===h[0]){var y=h[1];if(!y[1]){var A=y[2],_=[0,y[3]];k=1}}if(!k)A=NI(n,r,F),_=0;var C=[0,[0,[0,b[1],[0,m,A,_,E[3]]]],i];break;case 1:u$t(r,[0,E[2][1],98]);C=i;break;default:u$t(r,[0,E[2][1],zyt]);C=i}var i=C,c=c[2]}}})),mB(e,(function(r,t){for(var e=t[2],n=e[2],a=UYt(r),i=0,c=e[1];;){if(c){var f=c[1];switch(f[0]){case 0:var o=f[1],s=o[2];if(2===s[0]){var v=s[1];if(!v[1]){i=[0,[0,[0,o[1],[0,v[2],[0,v[3]]]]],i],c=c[2];continue}}var l=u(r,o);if(l)var D=l[1],p=[0,[0,[0,D[1],[0,D,0]]],i];else p=i;i=p,c=c[2];continue;case 1:var b=c[2],E=f[1],F=E[2],d=E[1];if(b){u$t(r,[0,d,63]);c=b;continue}var m=u(r,F[1]);i=m?[0,[1,[0,d,[0,m[1],F[2]]]],i]:i,c=0;continue;default:i=[0,[2,f[1]],i],c=c[2];continue}}var h=[1,[0,nCt(i),a,n]];return[0,t[1],h]}})),mB(n,(function(r,n){var u=n[2],a=n[1];switch(u[0]){case 0:return NI(e,r,[0,a,u[1]]);case 10:var i=u[1],c=i[2][1],f=i[1],o=0;if(r[6]&&T$t(c)?u$t(r,[0,f,50]):o=1,o&&1-r[6]){var s=0;if(r[17]&&_I(c,Jyt)?u$t(r,[0,f,94]):s=1,s){var v=r[18];(v?_I(c,Wyt):v)&&u$t(r,[0,f,93])}}return[0,a,[2,[0,i,UYt(r),0]]];case 19:return NI(t,r,[0,a,u[1]]);default:return[0,a,[3,[0,a,u]]]}})),[0,t,e,n,a,i,c]}($Yt),zYt=function(r){function t(r){var t=P$t(r);if("number"==typeof t){var e=t-96|0,n=0;if(6>>0?14===e&&(n=1):4<(e-1|0)>>>0&&(n=1),n)return cYt(r)}var u=H$t(r);return u?fYt(r):u}function e(e){var n=U$t(e);aYt(e,0);var u=PYt(0,(function(t){sYt(t,0),sYt(t,12);var e=OI(r[10],t);return sYt(t,1),e}),e);iYt(e);var a=vjt([0,n],[0,t(e)]);return[0,u[1],[0,u[2],a]]}function n(t){return 1===P$t(t)?0:[0,OI(r[7],t)]}function u(r){var e=U$t(r);aYt(r,0);var u=PYt(0,(function(r){sYt(r,0);var t=n(r);return sYt(r,1),t}),r);iYt(r);var a=ljt([0,e],[0,t(r)],0);return[0,u[1],[0,u[2],a]]}function a(t){aYt(t,0);var e=PYt(0,(function(t){sYt(t,0);var e=P$t(t),u=0;if("number"==typeof e&&12===e){var a=U$t(t);sYt(t,12);var i=[3,[0,OI(r[10],t),vjt([0,a],0)]];u=1}if(!u){var c=n(t),f=c?0:U$t(t);i=[2,[0,c,ljt(0,0,f)]]}return sYt(t,1),i}),t);return iYt(t),[0,e[1],e[2]]}function i(r){var e=R$t(r),n=P$t(r),u=0;if("number"!=typeof n&&7===n[0]){var a=n[1];u=1}if(!u){Q$t(_yt,r);a=Cyt}var i=U$t(r);nYt(r);var c=P$t(r),f=0;if("number"==typeof c){var o=c+-10|0,s=0;if(69>>0?73!==o&&(s=1):67<(o-1|0)>>>0||(s=1),!s){var v=cYt(r);f=1}}if(!f)v=t(r);return[0,e,[0,a,vjt([0,i],[0,v])]]}function c(r){var t=x$t(1,r);if("number"==typeof t){if(10===t)for(var e=PYt(0,(function(r){var t=[0,i(r)];return sYt(r,10),[0,t,i(r)]}),r);;){var n=P$t(r);if("number"!=typeof n||10!==n)return[2,e];var u=function(r){return function(t){return sYt(t,10),[0,[1,r],i(t)]}}(e);e=PYt([0,e[1]],u,r)}if(83===t)return[1,PYt(0,(function(r){var t=i(r);return sYt(r,83),[0,t,i(r)]}),r)]}return[0,i(r)]}function f(r){return PYt(0,(function(r){var e=x$t(1,r),n=0;if("number"==typeof e&&83===e){var a=[1,PYt(0,(function(r){var t=i(r);return sYt(r,83),[0,t,i(r)]}),r)];n=1}if(!n)a=[0,i(r)];var c=P$t(r),f=0;if("number"==typeof c&&79===c){sYt(r,79);var o=U$t(r),s=P$t(r),v=0;if("number"==typeof s)if(0===s){var l=u(r),D=l[2],p=l[1];D[1]||u$t(r,[0,p,54]);var b=[0,[1,p,D]]}else v=1;else if(8===s[0]){var E=s[1];sYt(r,s);var F=[0,E[2]],d=vjt([0,o],[0,t(r)]);b=[0,[0,E[1],[0,F,E[3],d]]]}else v=1;if(v){z$t(r,55);b=[0,[0,R$t(r),[0,Ayt,yyt,0]]]}var m=b;f=1}if(!f)m=0;return[0,a,m]}),r)}function o(r){return PYt(0,(function(r){sYt(r,95);var t=P$t(r);if("number"==typeof t){if(96===t)return nYt(r),hyt}else if(7===t[0])for(var n=0,u=c(r);;){var a=P$t(r);if("number"==typeof a){if(0===a){n=[0,[1,e(r)],n];continue}}else if(7===a[0]){n=[0,[0,f(r)],n];continue}var i=nCt(n),o=[0,hA,[0,u,uYt(r,Pm),i]];return uYt(r,96)?[0,o]:(oYt(r,96),[1,o])}return oYt(r,96),kyt}),r)}function s(r){return PYt(0,(function(r){sYt(r,95),sYt(r,Pm);var t=P$t(r);if("number"==typeof t){if(96===t)return nYt(r),vn}else if(7===t[0]){var e=c(r);return mI(P$t(r),96)?oYt(r,96):nYt(r),[0,hA,[0,e]]}return oYt(r,96),vn}),r)}var v=function r(t){return r.fun(t)},l=function r(t){return r.fun(t)},D=function r(t){return r.fun(t)};function p(r){switch(r[0]){case 0:return r[1][2][1];case 1:var t=r[1][2],e=G_t(Fyt,t[2][2][1]);return G_t(t[1][2][1],e);default:var n=r[1][2],u=n[1];return G_t(0===u[0]?u[1][2][1]:p([2,u[1]]),G_t(dyt,n[2][2][1]))}}return mB(v,(function(r){var t=P$t(r);if("number"==typeof t){if(0===t)return a(r)}else if(8===t[0]){var e=t[1];return sYt(r,t),[0,e[1],[4,[0,e[2],e[3]]]]}var n=OI(D,r),u=n[2],i=n[1];return vn<=u[1]?[0,i,[1,u[2]]]:[0,i,[0,u[2]]]})),mB(l,(function(r){var t=U$t(r),e=o(r);iYt(r);var n=e[2];if(0===n[0])var u=n[1],a="number"==typeof u?0:u[2][2];else a=1;if(a)var i=PYt(0,(function(r){return 0}),r),c=870530776;else{aYt(r,3);for(var f=R$t(r),D=0;;){var b=k$t(r),E=P$t(r),F=0;if("number"==typeof E){var d=0;if(95===E){aYt(r,2);var m=P$t(r),h=x$t(1,r),k=0;if("number"==typeof m&&95===m&&"number"==typeof h){var y=0;if(Pm!==h&&qt!==h&&(y=1),!y){var A=s(r),_=A[2],C=A[1],w="number"==typeof _?[0,vn,C]:[0,hA,[0,C,_[2]]],S=r[22][1],g=0;if(S){var B=S[2];if(B){var T=B[2];g=1}}if(!g)T=P_t(Gat);r[22][1]=T;var I=e$t(r),O=ZHt(r[23][1],I);r[24][1]=O;var N=[0,nCt(D),b,w];k=1}}if(!k){var x=OI(l,r),L=x[2],P=x[1];D=[0,vn<=L[1]?[0,P,[1,L[2]]]:[0,P,[0,L[2]]],D];continue}}else if(qt===E){Q$t(0,r);N=[0,nCt(D),b,Ue]}else F=1,d=1;if(!d){var R=b?b[1]:f;i=[0,ajt(f,R),N[1]],c=N[3]}}else F=1;if(!F)break;D=[0,OI(v,r),D]}}var M=cYt(r),G=0;if("number"!=typeof c){var U=c[1],j=0;if(hA===U){var X=c[2],H=e[2];if(0===H[0]){var $=H[1];if("number"==typeof $)z$t(r,myt);else{var Y=p($[2][1]);wI(p(X[2][1]),Y)&&z$t(r,[18,Y])}}var V=X[1]}else if(vn===U){var K=e[2];if(0===K[0]){var J=K[1];"number"!=typeof J&&z$t(r,[18,p(J[2][1])])}V=c[2]}else j=1;if(!j){var W=V;G=1}}if(!G)W=e[1];var q=e[2][1],z=e[1];if("number"==typeof q){var Q=0,Z=vjt([0,t],[0,M]);if("number"!=typeof c){var rr=c[1],tr=0;if(hA===rr)var er=c[2][1];else if(vn===rr)er=c[2];else tr=1;if(!tr){var nr=er;Q=1}}if(!Q)nr=W;var ur=[0,vn,[0,z,nr,i,Z]]}else{var ar=0,ir=vjt([0,t],[0,M]);if("number"!=typeof c&&hA===c[1]){var cr=[0,c[2]];ar=1}if(!ar)cr=0;ur=[0,hA,[0,[0,z,q[2]],cr,i,ir]]}return[0,ajt(e[1],W),ur]})),mB(D,(function(r){return aYt(r,2),OI(l,r)})),[0,t,e,n,u,a,i,c,f,o,s,v,l,D]}(HYt),QYt=function(r,t){var e=P$t(t),n=0;if("number"==typeof e?28===e?t[6]?z$t(t,53):t[14]&&Q$t(0,t):58===e?t[17]?z$t(t,2):t[6]&&z$t(t,53):65===e?t[18]&&z$t(t,2):n=1:n=1,n)if(B$t(e))rYt(t,53);else{var u=0;if("number"==typeof e)switch(e){case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 43:case 44:case 45:case 46:case 47:case 49:case 50:case 51:case 58:case 59:case 65:var a=1;u=1}else if(4===e[0]&&C$t(e[3])){a=1;u=1}if(!u)a=0;var i=0;if(a)var c=a;else{var f=S$t(e);if(f)c=f;else{var o=0;if("number"==typeof e)switch(e){case 29:case 30:case 31:break;default:o=1}else if(4===e[0]){var s=e[3];wI(s,ait)&&wI(s,iit)&&wI(s,cit)&&(o=1)}else o=1;if(o){var v=0;i=1}else c=1}}if(!i)v=c;v?Q$t(0,t):r&&I$t(e)&&rYt(t,r[1])}return xYt(t)},ZYt=function r(t){return r.fun(t)},rVt=function r(t,e,n){return r.fun(t,e,n)},tVt=function r(t){return r.fun(t)},eVt=function r(t,e){return r.fun(t,e)},nVt=function r(t,e){return r.fun(t,e)},uVt=function r(t,e){return r.fun(t,e)},aVt=function r(t,e){return r.fun(t,e)},iVt=function r(t,e){return r.fun(t,e)},cVt=function r(t){return r.fun(t)},fVt=function r(t){return r.fun(t)},oVt=function r(t){return r.fun(t)},sVt=function r(t,e,n){return r.fun(t,e,n)},vVt=function r(t){return r.fun(t)},lVt=function r(t,e){return r.fun(t,e)},DVt=JYt[3],pVt=KYt[3],bVt=KYt[1],EVt=KYt[6],FVt=JYt[2],dVt=JYt[1],mVt=JYt[4],hVt=KYt[5],kVt=KYt[7],yVt=zYt[13],AVt=qYt[6],_Vt=qYt[3];mB(ZYt,(function(r){var t=U$t(r),e=nCt(t);r:for(;;){if(e)for(var n=e[2],u=e[1],a=u[2],i=u[1],c=a[2],f=0,o=HT(c);;){if(o<(f+5|0))var s=0;else{var v=_I(kCt(c,f,5),Mat);if(!v){f=f+1|0;continue}s=v}if(!s){e=n;continue r}r[29][1]=i[3];var l=nCt([0,[0,i,a],n]);break}else l=e;if(0===l){var D=0;if(t){var p=t[1],b=p[2];if(0===b[1]){var E=b[2];if(1<=HT(E)&&42===CI(E,0)){r[29][1]=p[1][3];var F=[0,p,0];D=1}}}if(!D)F=0}else F=l;var d=NI(eVt,r,(function(r){return 0})),m=R$t(r);if(sYt(r,qt),d)var h=rCt(nCt(d))[1],k=ajt(rCt(d)[1],h);else k=m;var y=nCt(r[2][1]);return[0,k,[0,d,vjt([0,F],0),y]]}})),mB(rVt,(function(r,t,e){for(var n=v$t(1,r),u=r_t;;){var a=u[2],i=u[1],c=P$t(n),f=0;if("number"==typeof c&&qt===c)var o=[0,n,i,a];else f=1;if(f)if(OI(t,c))o=[0,n,i,a];else{var s=0;if("number"==typeof c||2!==c[0])s=1;else{var v=OI(e,n),l=[0,v,a],D=v[2];if(19===D[0]){var p=D[1][2];if(p){var b=n[6]||_I(p[1],ZAt);n=f$t(b,n),u=[0,[0,c,i],l];continue}}o=[0,n,i,l]}if(s)o=[0,n,i,a]}var E=v$t(0,n);return cCt((function(r){if("number"!=typeof r&&2===r[0]){var t=r[1],e=t[4];return e?tYt(E,[0,t[1],44]):e}return P_t(G_t(e_t,G_t(hjt(r),t_t)))}),nCt(i)),[0,E,o[3]]}})),mB(tVt,(function(r){var t=OI(JYt[6],r),e=P$t(r);if("number"==typeof e){var n=e-49|0;if(!(11>>0))switch(n){case 0:return NI(WYt[16],t,r);case 1:OI(Z$t(r),t);var u=x$t(1,r);return OI("number"==typeof u&&4===u?WYt[17]:WYt[18],r);case 11:if(49===x$t(1,r))return OI(Z$t(r),t),NI(WYt[12],0,r)}}return NI(iVt,[0,t],r)})),mB(eVt,(function(r,t){var e=xI(rVt,r,t,tVt);return fCt((function(r,t){return[0,t,r]}),NI(nVt,t,e[1]),e[2])})),mB(nVt,(function(r,t){for(var e=0;;){var n=P$t(t);if("number"==typeof n&&qt===n)return nCt(e);if(OI(r,n))return nCt(e);e=[0,OI(tVt,t),e]}})),mB(uVt,(function(r,t){var e=xI(rVt,t,r,(function(r){return NI(iVt,0,r)})),n=e[1];return[0,fCt((function(r,t){return[0,t,r]}),NI(aVt,r,n),e[2]),n[6]]})),mB(aVt,(function(r,t){for(var e=0;;){var n=P$t(t);if("number"==typeof n&&qt===n)return nCt(e);if(OI(r,n))return nCt(e);e=[0,NI(iVt,0,t),e]}})),mB(iVt,(function(r,t){var e=r?r[1]:r;1-q$t(t)&&OI(Z$t(t),e);var n=P$t(t);if("number"==typeof n){if(27===n)return OI(WYt[27],t);if(28===n)return OI(WYt[3],t)}if(W$t(t))return OI(YYt[11],t);if(q$t(t))return NI(DVt,t,e);if("number"==typeof n){var u=n+yw|0;if(!(14>>0))switch(u){case 0:if(t[26][1])return OI(YYt[12],t);break;case 5:return OI(WYt[19],t);case 12:return NI(WYt[11],0,t);case 13:return OI(WYt[25],t);case 14:return OI(WYt[21],t)}}return OI(cVt,t)})),mB(cVt,(function(r){var t=P$t(r);if("number"==typeof t)switch(t){case 0:return OI(WYt[7],r);case 8:return OI(WYt[15],r);case 19:return OI(WYt[22],r);case 20:return OI(WYt[23],r);case 22:return OI(WYt[24],r);case 23:return OI(WYt[4],r);case 24:return OI(WYt[26],r);case 25:return OI(WYt[5],r);case 26:return OI(WYt[6],r);case 32:return OI(WYt[8],r);case 35:return OI(WYt[9],r);case 37:return OI(WYt[14],r);case 39:return OI(WYt[1],r);case 59:return OI(WYt[10],r);case 110:return Q$t(qAt,r),[0,R$t(r),zAt];case 16:case 43:return OI(WYt[2],r);case 1:case 5:case 7:case 9:case 10:case 11:case 12:case 17:case 18:case 33:case 34:case 36:case 38:case 41:case 42:case 49:case 80:case 83:return Q$t(QAt,r),nYt(r),OI(cVt,r)}if(W$t(r)){var e=OI(YYt[11],r);return eYt(r,e[1]),e}if("number"==typeof t&&28===t&&6===x$t(1,r)){var n=L$t(1,r);return u$t(r,[0,ajt(R$t(r),n),95]),OI(WYt[17],r)}return J$t(r)?OI(WYt[20],r):q$t(r)?(Q$t(0,r),nYt(r),OI(WYt[17],r)):OI(WYt[17],r)})),mB(fVt,(function(r){var t=R$t(r),e=OI(KYt[1],r),n=P$t(r);return"number"==typeof n&&9===n?xI(KYt[8],r,t,[0,e,0]):e})),mB(oVt,(function(r){var t=R$t(r),e=OI(KYt[2],r),n=P$t(r);if("number"==typeof n&&9===n){var u=[0,NI(VYt[1],r,e),0];return[0,xI(KYt[8],r,t,u)]}return e})),mB(sVt,(function(r,t,e){var n=t?t[1]:t;return PYt(0,(function(r){var t=1-n,u=QYt([0,e],r),a=t?82===P$t(r)?1:0:t;return a&&(1-n$t(r)&&z$t(r,12),sYt(r,82)),[0,u,OI($Yt[10],r),a]}),r)})),mB(vVt,(function(r){var t=R$t(r),e=U$t(r);sYt(r,0);var n=NI(aVt,(function(r){return 1===r?1:0}),r),u=0===n?1:0,a=R$t(r),i=u?U$t(r):u;sYt(r,1);var c=[0,n,ljt([0,e],[0,cYt(r)],i)];return[0,ajt(t,a),c]})),mB(lVt,(function(r,t){var e=R$t(t),n=U$t(t);sYt(t,0);var u=NI(uVt,(function(r){return 1===r?1:0}),t),a=u[1],i=0===a?1:0,c=R$t(t),f=i?U$t(t):i;sYt(t,1);var o=P$t(t),s=0;if(0===r){var v=0;if("number"!=typeof o||1!==o&&qt!==o||(v=1),!v){var l=H$t(t);if(l){var D=fYt(t);s=1}else{D=l;s=1}}}if(!s)D=cYt(t);var p=u[2],b=[0,a,ljt([0,n],[0,D],f)];return[0,ajt(e,c),b,p]})),xI(USt,a_t,HYt,[0,ZYt,cVt,iVt,aVt,uVt,nVt,fVt,oVt,pVt,bVt,EVt,FVt,QYt,sVt,vVt,lVt,yVt,AVt,_Vt,dVt,DVt,mVt,hVt,kVt]);var CVt=[0,0],wVt=tI,SVt=function(r){return eI(SCt(r))},gVt=function(r){return ZT(SCt(r))},BVt=function(r,t,e){try{return new RegExp(tI(t),tI(e))}catch(t){return CVt[1]=[0,[0,r,24],CVt[1]],new RegExp(D_,tI(e))}},TVt=function(r){function t(t,e){var n=e[2],u=e[1],a=kjt(n),i=[0,[0,i_t,OI(r[1],a)],0],c=NYt(t,u[3]),f=[0,OI(r[5],c),0],o=NYt(t,u[2]),s=[0,OI(r[5],o),f],v=[0,[0,c_t,OI(r[4],s)],i],l=[0,[0,f_t,OI(r[5],u[3][2])],0],D=[0,[0,o_t,OI(r[5],u[3][1])],l],p=[0,[0,s_t,OI(r[3],D)],0],b=[0,[0,v_t,OI(r[5],u[2][2])],0],E=[0,[0,l_t,OI(r[5],u[2][1])],b],F=[0,[0,D_t,OI(r[3],E)],p],d=[0,[0,p_t,OI(r[3],F)],v];switch(e[3]){case 0:var m=b_t;break;case 1:m=E_t;break;case 2:m=F_t;break;case 3:m=d_t;break;case 4:m=m_t;break;default:m=h_t}var h=[0,[0,k_t,OI(r[1],m)],d],k=hjt(n),y=[0,[0,y_t,OI(r[1],k)],h];return OI(r[3],y)}return[0,t,function(e,n){var u=nCt(iCt((function(r){return t(e,r)}),n));return OI(r[4],u)}]}([0,wVt,rI,SVt,gVt,function(r){return r},function(r){return r},pgt,BVt]),IVt=function(r,t,e){var n=t[e];return Egt(n)?0|n:r},OVt=function(r,t){var e=wT(t,bgt)?{}:t,n=RT(r),u=IVt(QI[9],e,A_t),a=IVt(QI[8],e,__t),i=IVt(QI[7],e,C_t),c=IVt(QI[6],e,w_t),f=IVt(QI[5],e,S_t),o=IVt(QI[4],e,g_t),s=IVt(QI[3],e,B_t),v=IVt(QI[2],e,T_t),l=[0,[0,IVt(QI[1],e,I_t),v,s,o,f,c,i,a,u]],D=e.tokens,p=Egt(D),b=p?0|D:p,E=e.comments,F=Egt(E)?0|E:1,d=e.all_comments,m=Egt(d)?0|d:1,h=[0,0],k=[0,l],y=[0,b?[0,function(r){return h[1]=[0,r,h[1]],0}]:b],A=eO?eO[1]:1,_=[0,k?k[1]:k],C=[0,y?y[1]:y],w=t$t([0,C?C[1]:C],[0,_?_[1]:_],0,n),S=OI(HYt[1],w),g=nCt(w[1][1]),B=nCt(fCt((function(r,t){var e=r[2],n=r[1];return NI(XYt[3],t,n)?[0,n,e]:[0,NI(XYt[4],t,n),[0,t,e]]}),[0,XYt[1],0],g)[2]);if(A?0!==B?1:0:A)throw[0,Ejt,B];CVt[1]=0;for(var T=HT(n)-0|0,I=n,O=0,N=0;;){if(N===T)var x=O;else{var L=PB(I,N),P=0;if(0<=L&&!(vA>>0)throw[0,$I,KL];switch(j){case 0:var H=PB(I,N);break;case 1:H=(31&PB(I,N))<<6|63&PB(I,N+1|0);break;case 2:H=(15&PB(I,N))<<12|(63&PB(I,N+1|0))<<6|63&PB(I,N+2|0);break;default:H=(7&PB(I,N))<<18|(63&PB(I,N+1|0))<<12|(63&PB(I,N+2|0))<<6|63&PB(I,N+3|0)}O=TYt(O,0,[0,H]),N=X;continue}x=TYt(O,0,0)}for(var $=kct,Y=nCt([0,6,x]);;){var V=$[3],K=$[2],J=$[1];if(!Y){var W=SCt(nCt(V)),q=function(r,t){return gVt(nCt(iCt(r,t)))},z=function(r,t){return t?OI(r,t[1]):pgt},Q=function(r,t){return 0===t[0]?pgt:OI(r,t[1])},Z=function(r){return SVt([0,[0,Xdt,r[1]],[0,[0,jdt,r[2]],0]])},rr=function(r){var t=r[1];if(t)var e=t[1],n="number"==typeof e?an:tI(e[1]);else n=pgt;var u=[0,[0,Mdt,Z(r[3])],0];return SVt([0,[0,Udt,n],[0,[0,Gdt,Z(r[2])],u]])},tr=function(r){if(r){var t=r[1],e=[0,j_t(t[3],t[2])];return vjt([0,t[1]],e)}return r},er=[0,W],nr=function(r){return q(_t,r)},ur=function(r,t,e,n){if(er)var u=er[1],a=[0,NYt(u,t[3]),0],i=[0,[0,Act,gVt([0,NYt(u,t[2]),a])],0];else i=er;var c=0,f=j_t(i,[0,[0,_ct,rr(t)],0]);if(0!==F&&e){var o=e[1],s=o[1];if(s){var v=o[2];if(v)var l=[0,[0,Cct,nr(v)],0],D=[0,[0,wct,nr(s)],l];else D=[0,[0,Sct,nr(s)],0];var p=D}else{var b=o[2];p=b?[0,[0,gct,nr(b)],0]:b}var E=p;c=1}if(!c)E=0;return SVt(eCt(j_t(f,j_t(E,[0,[0,Bct,tI(r)],0])),n))},ar=function(r){return q(Vr,r)},ir=function(r){var t=r[2];return ur(svt,r[1],t[2],[0,[0,ovt,tI(t[1])],[0,[0,fvt,pgt],[0,[0,cvt,!1],0]]])},cr=function(r){var t=r[2],e=t[1],n=0===e[0]?ir(e[1]):cr(e[1]),u=[0,[0,REt,n],[0,[0,PEt,ir(t[2])],0]];return ur(MEt,r[1],0,u)},fr=function(r){var t=r[2],e=t[1],n=0===e[0]?ir(e[1]):cr(e[1]),u=[0,[0,UEt,n],[0,[0,GEt,z(bt,t[2])],0]];return ur(jEt,r[1],t[3],u)},or=function(r){var t=r[2],e=t[2],n=t[1],u=r[1];if("number"==typeof n)var a=pgt;else switch(n[0]){case 0:a=tI(n[1]);break;case 1:a=!!n[1];break;case 2:a=n[1];break;case 3:a=P_t(Bpt);break;default:var i=n[1];a=BVt(u,i[1],i[2])}var c=0;if("number"!=typeof n&&4===n[0]){var f=n[1],o=[0,[0,Opt,SVt([0,[0,Ipt,tI(f[1])],[0,[0,Tpt,tI(f[2])],0]])],0],s=[0,[0,xpt,a],[0,[0,Npt,tI(e)],o]];c=1}if(!c)s=[0,[0,Ppt,a],[0,[0,Lpt,tI(e)],0]];return ur(Rpt,u,t[3],s)},sr=function(r){var t=[0,[0,XEt,lr(r[2])],0];return[0,[0,HEt,lr(r[1])],t]},vr=function(r,t){var e=t[2],n=[0,[0,Mbt,!!e[3]],0],u=[0,[0,Gbt,lr(e[2])],n],a=[0,[0,Ubt,z(ir,e[1])],u];return ur(jbt,t[1],r,a)},lr=function(r){var t=r[2],e=r[1];switch(t[0]){case 0:return ur(hbt,e,t[1],0);case 1:return ur(kbt,e,t[1],0);case 2:return ur(ybt,e,t[1],0);case 3:return ur(Abt,e,t[1],0);case 4:return ur(_bt,e,t[1],0);case 5:return ur(wbt,e,t[1],0);case 6:return ur(Sbt,e,t[1],0);case 7:return ur(gbt,e,t[1],0);case 8:return ur(Bbt,e,t[1],0);case 9:return ur(Cbt,e,t[1],0);case 10:return ur(bFt,e,t[1],0);case 11:var n=t[1],u=[0,[0,Tbt,lr(n[1])],0];return ur(Ibt,e,n[2],u);case 12:return Dr([0,e,t[1]]);case 13:return pr(1,[0,e,t[1]]);case 14:var a=t[1],i=[0,[0,IEt,pr(0,a[1])],0],c=[0,[0,OEt,q(Xr,a[2])],i];return ur(NEt,e,a[3],c);case 15:var f=t[1],o=[0,[0,xEt,lr(f[1])],0];return ur(LEt,e,f[2],o);case 16:return fr([0,e,t[1]]);case 17:var s=t[1],v=sr(s);return ur($Et,e,s[3],v);case 18:var l=t[1],D=l[1],p=[0,[0,YEt,!!l[2]],0],b=j_t(sr(D),p);return ur(VEt,e,D[3],b);case 19:var E=t[1],F=E[1],d=[0,[0,KEt,q(lr,[0,F[1],[0,F[2],F[3]]])],0];return ur(JEt,e,E[2],d);case 20:var m=t[1],h=m[1],k=[0,[0,WEt,q(lr,[0,h[1],[0,h[2],h[3]]])],0];return ur(qEt,e,m[2],k);case 21:var y=t[1],A=[0,[0,zEt,lr(y[1])],0];return ur(QEt,e,y[3],A);case 22:var _=t[1],C=[0,[0,ZEt,q(lr,_[1])],0];return ur(rFt,e,_[2],C);case 23:var w=t[1];return ur(nFt,e,w[3],[0,[0,eFt,tI(w[1])],[0,[0,tFt,tI(w[2])],0]]);case 24:var S=t[1];return ur(iFt,e,S[3],[0,[0,aFt,S[1]],[0,[0,uFt,tI(S[2])],0]]);case 25:var g=t[1];return ur(oFt,e,g[3],[0,[0,fFt,pgt],[0,[0,cFt,tI(g[2])],0]]);default:var B=t[1],T=B[1],I=T?sFt:vFt;return ur(pFt,e,B[2],[0,[0,DFt,!!T],[0,[0,lFt,tI(I)],0]])}},Dr=function(r){var t=r[2],e=t[2][2],n=t[4],u=Djt(tr(e[4]),n),a=[0,[0,Obt,z(Dt,t[1])],0],i=[0,[0,Nbt,z(vt,e[3])],a],c=[0,[0,xbt,lr(t[3])],i],f=[0,[0,Lbt,z(lt,e[1])],c],o=e[2],s=[0,[0,Pbt,q((function(r){return vr(0,r)}),o)],f];return ur(Rbt,r[1],u,s)},pr=function(r,t){var e=t[2],n=e[3],u=fCt((function(r,t){var e=r[4],n=r[3],u=r[2],a=r[1];switch(t[0]){case 0:var i=t[1],c=i[2],f=c[2],o=c[1];switch(o[0]){case 0:var s=or(o[1]);break;case 1:s=ir(o[1]);break;case 2:s=P_t(rEt);break;default:s=P_t(tEt)}switch(f[0]){case 0:var v=[0,lr(f[1]),eEt];break;case 1:var l=f[1];v=[0,Dr([0,l[1],l[2]]),nEt];break;default:var D=f[1];v=[0,Dr([0,D[1],D[2]]),uEt]}var p=[0,[0,aEt,tI(v[2])],0],b=[0,[0,iEt,z(st,c[7])],p];return[0,[0,ur(DEt,i[1],c[8],[0,[0,lEt,s],[0,[0,vEt,v[1]],[0,[0,sEt,!!c[6]],[0,[0,oEt,!!c[3]],[0,[0,fEt,!!c[4]],[0,[0,cEt,!!c[5]],b]]]]]]),a],u,n,e];case 1:var E=t[1],F=E[2],d=[0,[0,pEt,lr(F[1])],0];return[0,[0,ur(bEt,E[1],F[2],d),a],u,n,e];case 2:var m=t[1],h=m[2],k=[0,[0,EEt,z(st,h[5])],0],y=[0,[0,FEt,!!h[4]],k],A=[0,[0,dEt,lr(h[3])],y],_=[0,[0,mEt,lr(h[2])],A],C=[0,[0,hEt,z(ir,h[1])],_];return[0,a,[0,ur(kEt,m[1],h[6],C),u],n,e];case 3:var w=t[1],S=w[2],g=[0,[0,yEt,!!S[2]],0],B=[0,[0,AEt,Dr(S[1])],g];return[0,a,u,[0,ur(_Et,w[1],S[3],B),n],e];default:var T=t[1],I=T[2],O=[0,[0,CEt,lr(I[2])],0],N=[0,[0,gEt,!!I[3]],[0,[0,SEt,!!I[4]],[0,[0,wEt,!!I[5]],O]]],x=[0,[0,BEt,ir(I[1])],N];return[0,a,u,n,[0,ur(TEt,T[1],I[6],x),e]]}}),Vbt,n),a=[0,[0,Kbt,gVt(nCt(u[4]))],0],i=[0,[0,Jbt,gVt(nCt(u[3]))],a],c=[0,[0,Wbt,gVt(nCt(u[2]))],i],f=[0,[0,qbt,gVt(nCt(u[1]))],c],o=[0,[0,zbt,!!e[1]],f],s=r?[0,[0,Qbt,!!e[2]],o]:o,v=tr(e[4]);return ur(Zbt,t[1],v,s)},br=function(r){var t=[0,[0,EFt,lr(r[2])],0];return ur(FFt,r[1],0,t)},Er=function(r){var t=r[2];switch(t[2]){case 0:var e=obt;break;case 1:e=sbt;break;default:e=vbt}var n=[0,[0,lbt,tI(e)],0],u=[0,[0,Dbt,q(ot,t[1])],n];return ur(pbt,r[1],t[3],u)},Fr=function(r){var t=r[2];return ur(Vpt,r[1],t[3],[0,[0,Ypt,tI(t[1])],[0,[0,$pt,tI(t[2])],0]])},dr=function(r){var t=r[2],e=[0,[0,$Dt,hE],[0,[0,HDt,br(t[1])],0]];return ur(YDt,r[1],t[2],e)},mr=function(r,t){var e=t[1][2],n=[0,[0,Dvt,!!t[3]],0],u=[0,[0,pvt,Q(br,t[2])],n];return ur(Evt,r,e[2],[0,[0,bvt,tI(e[1])],u])},hr=function(r){var t=r[2],e=[0,[0,vvt,ir(t[1])],0];return ur(lvt,r[1],t[2],e)},kr=function(r){return q(at,r[2][1])},yr=function(r){var t=r[2],e=[0,[0,xFt,ur(YFt,t[2],0,0)],0],n=[0,[0,LFt,q(kt,t[3][2])],e],u=[0,[0,PFt,ur(XFt,t[1],0,0)],n];return ur(RFt,r[1],t[4],u)},Ar=function(r){var t=r[2];return ur(ldt,r[1],t[2],[0,[0,vdt,tI(t[1])],0])},_r=function(r){var t=r[2],e=[0,[0,fdt,Ar(t[2])],0],n=[0,[0,odt,Ar(t[1])],e];return ur(sdt,r[1],0,n)},Cr=function(r){var t=r[2],e=t[1],n=0===e[0]?Ar(e[1]):Cr(e[1]),u=[0,[0,idt,n],[0,[0,adt,Ar(t[2])],0]];return ur(cdt,r[1],0,u)},wr=function(r){switch(r[0]){case 0:return Ar(r[1]);case 1:return _r(r[1]);default:return Cr(r[1])}},Sr=function(r){var t=r[2],e=[0,[0,TFt,q(kt,t[3][2])],0],n=[0,[0,IFt,z(mt,t[2])],e],u=t[1],a=u[2],i=[0,[0,MFt,!!a[2]],0],c=[0,[0,GFt,q(dt,a[3])],i],f=[0,[0,UFt,wr(a[1])],c],o=[0,[0,OFt,ur(jFt,u[1],0,f)],n];return ur(NFt,r[1],t[4],o)},gr=function(r){var t=r[2],e=[0,[0,Qpt,q(Lr,t[2])],0],n=[0,[0,Zpt,q(ft,t[1])],e];return ur(rbt,r[1],t[3],n)},Br=function(r,t){var e=t[2],n=e[7],u=e[5],a=e[4];if(a)var i=a[1][2],c=Djt(i[3],n),f=[0,i[1]],o=i[2],s=c;else f=0,o=0,s=n;if(u)var v=u[1][2],l=Djt(v[2],s),D=q(zr,v[1]),p=l;else D=gVt(0),p=s;var b=[0,[0,olt,D],[0,[0,flt,q(Wr,e[6])],0]],E=[0,[0,slt,z(bt,o)],b],F=[0,[0,vlt,z(Lr,f)],E],d=[0,[0,llt,z(Dt,e[3])],F],m=e[2],h=m[2],k=[0,[0,hlt,q(Qr,h[1])],0],y=[0,[0,Dlt,ur(klt,m[1],h[2],k)],d],A=[0,[0,plt,z(ir,e[1])],y];return ur(r,t[1],p,A)},Tr=function(r){var t=r[2],e=[0,[0,Avt,ar(t[1])],0],n=tr(t[2]);return ur(_vt,r[1],n,e)},Ir=function(r){var t=r[2];switch(t[0]){case 0:var e=[0,ir(t[1]),0];break;case 1:e=[0,hr(t[1]),0];break;default:e=[0,Lr(t[1]),1]}var n=[0,[0,xdt,e[1]],[0,[0,Ndt,!!e[2]],0]];return[0,[0,Ldt,Lr(r[1])],n]},Or=function(r){var t=[0,[0,Tdt,kr(r[3])],0],e=[0,[0,Idt,z(Et,r[2])],t];return[0,[0,Odt,Lr(r[1])],e]},Nr=function(r){var t=r[2],e=t[3],n=t[2],u=t[1];if(e){var a=e[1],i=a[2],c=[0,[0,VDt,xr(i[1])],0],f=nCt([0,ur(KDt,a[1],i[2],c),iCt(Zr,n)]),o=u?[0,dr(u[1]),f]:f;return gVt(o)}var s=aCt(Zr,n),v=u?[0,dr(u[1]),s]:s;return gVt(v)},xr=function(r){var t=r[2],e=r[1];switch(t[0]){case 0:var n=t[1],u=[0,[0,xDt,Q(br,n[2])],0],a=[0,[0,LDt,q(nt,n[1])],u];return ur(PDt,e,tr(n[3]),a);case 1:var i=t[1],c=[0,[0,RDt,Q(br,i[2])],0],f=[0,[0,MDt,q(tt,i[1])],c];return ur(GDt,e,tr(i[3]),f);case 2:return mr(e,t[1]);default:return Lr(t[1])}},Lr=function(r){var t=r[2],e=r[1];switch(t[0]){case 0:var n=t[1],u=[0,[0,fot,q(it,n[1])],0];return ur(oot,e,tr(n[2]),u);case 1:var a=t[1],i=a[7],c=a[3],f=a[2],o=0===c[0]?[0,Tr(c[1]),0]:[0,Lr(c[1]),1],s=0===i[0]?0:[0,i[1]],v=a[9],l=Djt(tr(f[2][4]),v),D=[0,[0,sot,z(Dt,a[8])],0],p=[0,[0,vot,z(br,s)],D],b=[0,[0,lot,!!o[2]],p],E=[0,[0,pot,!1],[0,[0,Dot,z(Ct,a[6])],b]],F=[0,[0,Eot,o[1]],[0,[0,bot,!!a[4]],E]];return ur(mot,e,l,[0,[0,dot,pgt],[0,[0,Fot,Nr(f)],F]]);case 2:var d=t[1],m=d[1];if(m){switch(m[1]){case 0:var h=BKr;break;case 1:h=TKr;break;case 2:h=IKr;break;case 3:h=OKr;break;case 4:h=NKr;break;case 5:h=xKr;break;case 6:h=LKr;break;case 7:h=PKr;break;case 8:h=RKr;break;case 9:h=MKr;break;case 10:h=GKr;break;default:h=UKr}var k=h}else k=hot;var y=[0,[0,kot,Lr(d[3])],0],A=[0,[0,yot,xr(d[2])],y];return ur(_ot,e,d[4],[0,[0,Aot,tI(k)],A]);case 3:var _=t[1],C=[0,[0,Cot,Lr(_[3])],0],w=[0,[0,wot,Lr(_[2])],C];switch(_[1]){case 0:var S=cKr;break;case 1:S=fKr;break;case 2:S=oKr;break;case 3:S=sKr;break;case 4:S=vKr;break;case 5:S=lKr;break;case 6:S=DKr;break;case 7:S=pKr;break;case 8:S=bKr;break;case 9:S=EKr;break;case 10:S=FKr;break;case 11:S=dKr;break;case 12:S=mKr;break;case 13:S=hKr;break;case 14:S=kKr;break;case 15:S=yKr;break;case 16:S=AKr;break;case 17:S=_Kr;break;case 18:S=CKr;break;case 19:S=wKr;break;case 20:S=SKr;break;default:S=gKr}return ur(got,e,_[4],[0,[0,Sot,tI(S)],w]);case 4:var g=t[1],B=g[4],T=Djt(tr(g[3][2][2]),B);return ur(Bot,e,T,Or(g));case 5:return Br(clt,[0,e,t[1]]);case 6:var I=t[1],O=[0,[0,Tot,z(Lr,I[2])],0];return ur(Oot,e,0,[0,[0,Iot,q(ct,I[1])],O]);case 7:var N=t[1],x=[0,[0,Not,Lr(N[3])],0],L=[0,[0,xot,Lr(N[2])],x],P=[0,[0,Lot,Lr(N[1])],L];return ur(Pot,e,N[4],P);case 8:return Pr([0,e,t[1]]);case 9:var R=t[1],M=[0,[0,Rot,z(Lr,R[2])],0];return ur(Got,e,0,[0,[0,Mot,q(ct,R[1])],M]);case 10:return ir(t[1]);case 11:var G=t[1],U=[0,[0,Uot,Lr(G[1])],0];return ur(jot,e,G[2],U);case 12:return Sr([0,e,t[1]]);case 13:return yr([0,e,t[1]]);case 14:var j=t[1],X=j[1];return"number"!=typeof X&&3===X[0]?ur(Hpt,e,j[3],[0,[0,Xpt,pgt],[0,[0,jpt,tI(j[2])],0]]):or([0,e,j]);case 15:var H=t[1];switch(H[1]){case 0:var $=Xot;break;case 1:$=Hot;break;default:$=$ot}var Y=[0,[0,Yot,Lr(H[3])],0],V=[0,[0,Vot,Lr(H[2])],Y];return ur(Jot,e,H[4],[0,[0,Kot,tI($)],V]);case 16:var K=t[1],J=Ir(K);return ur(Wot,e,K[3],J);case 17:var W=t[1],Q=[0,[0,qot,ir(W[2])],0],Z=[0,[0,zot,ir(W[1])],Q];return ur(Qot,e,W[3],Z);case 18:var rr=t[1],er=rr[4],nr=rr[3];if(nr)var ar=nr[1],cr=Djt(tr(ar[2][2]),er),fr=kr(ar),sr=cr;else fr=gVt(0),sr=er;var vr=[0,[0,rst,z(Et,rr[2])],[0,[0,Zot,fr],0]];return ur(est,e,sr,[0,[0,tst,Lr(rr[1])],vr]);case 19:var lr=t[1],Dr=[0,[0,nst,q(et,lr[1])],0];return ur(ust,e,tr(lr[2]),Dr);case 20:var pr=t[1],Er=pr[1],Fr=Er[4],dr=Djt(tr(Er[3][2][2]),Fr),mr=[0,[0,ast,!!pr[2]],0];return ur(ist,e,dr,j_t(Or(Er),mr));case 21:var hr=t[1],Ar=hr[1],_r=[0,[0,cst,!!hr[2]],0],Cr=j_t(Ir(Ar),_r);return ur(fst,e,Ar[3],Cr);case 22:var wr=t[1],Rr=[0,[0,ost,q(Lr,wr[1])],0];return ur(sst,e,wr[2],Rr);case 23:return ur(vst,e,t[1][1],0);case 24:var Mr=t[1],Gr=[0,[0,ibt,gr(Mr[2])],0],Ur=[0,[0,cbt,Lr(Mr[1])],Gr];return ur(fbt,e,Mr[3],Ur);case 25:return gr([0,e,t[1]]);case 26:return ur(lst,e,t[1][1],0);case 27:var jr=t[1],Xr=[0,[0,Dst,br(jr[2])],0],Hr=[0,[0,pst,Lr(jr[1])],Xr];return ur(bst,e,jr[3],Hr);case 28:var $r=t[1],Yr=$r[3],Vr=$r[2],Kr=$r[1];if(7<=Kr)return ur(Fst,e,Yr,[0,[0,Est,Lr(Vr)],0]);switch(Kr){case 0:var Jr=dst;break;case 1:Jr=mst;break;case 2:Jr=hst;break;case 3:Jr=kst;break;case 4:Jr=yst;break;case 5:Jr=Ast;break;case 6:Jr=_st;break;default:Jr=P_t(Cst)}var Wr=[0,[0,Sst,!0],[0,[0,wst,Lr(Vr)],0]];return ur(Bst,e,Yr,[0,[0,gst,tI(Jr)],Wr]);case 29:var qr=t[1],zr=0===qr[1]?Ist:Tst,Qr=[0,[0,Ost,!!qr[3]],0],Zr=[0,[0,Nst,Lr(qr[2])],Qr];return ur(Lst,e,qr[4],[0,[0,xst,tI(zr)],Zr]);default:var rt=t[1],tt=[0,[0,Pst,!!rt[3]],0],nt=[0,[0,Rst,z(Lr,rt[1])],tt];return ur(Mst,e,rt[2],nt)}},Pr=function(r){var t=r[2],e=t[7],n=t[3],u=t[2],a=0===n[0]?n[1]:P_t(qst),i=0===e[0]?0:[0,e[1]],c=t[9],f=Djt(tr(u[2][4]),c),o=[0,[0,zst,z(Dt,t[8])],0],s=[0,[0,Zst,!1],[0,[0,Qst,z(br,i)],o]],v=[0,[0,rvt,z(Ct,t[6])],s],l=[0,[0,evt,!!t[4]],[0,[0,tvt,!!t[5]],v]],D=[0,[0,nvt,Tr(a)],l],p=[0,[0,uvt,Nr(u)],D],b=[0,[0,avt,z(ir,t[1])],p];return ur(ivt,r[1],f,b)},Rr=function(r){var t=r[2],e=[0,[0,wDt,q(Xr,t[3])],0],n=[0,[0,SDt,pr(0,t[4])],e],u=[0,[0,gDt,z(Dt,t[2])],n],a=[0,[0,BDt,ir(t[1])],u];return ur(TDt,r[1],t[5],a)},Mr=function(r,t){var e=t[2],n=r?rlt:tlt,u=[0,[0,elt,z(lr,e[4])],0],a=[0,[0,nlt,z(lr,e[3])],u],i=[0,[0,ult,z(Dt,e[2])],a],c=[0,[0,alt,ir(e[1])],i];return ur(n,t[1],e[5],c)},Gr=function(r){var t=r[2],e=[0,[0,qvt,lr(t[3])],0],n=[0,[0,zvt,z(Dt,t[2])],e],u=[0,[0,Qvt,ir(t[1])],n];return ur(Zvt,r[1],t[4],u)},Ur=function(r){if(r){var t=r[1];if(0===t[0])return q(At,t[1]);var e=t[1],n=e[2];if(n){var u=[0,[0,$vt,ir(n[1])],0];return gVt([0,ur(Yvt,e[1],0,u),0])}return gVt(0)}return gVt(0)},jr=function(r){return 0===r?Hvt:Xvt},Xr=function(r){var t=r[2],e=t[1],n=0===e[0]?ir(e[1]):cr(e[1]),u=[0,[0,ODt,n],[0,[0,IDt,z(bt,t[2])],0]];return ur(NDt,r[1],t[3],u)},Hr=function(r){var t=r[2],e=t[6],n=t[4],u=gVt(n?[0,Xr(n[1]),0]:0),a=e?q(zr,e[1][2][1]):gVt(0),i=[0,[0,Ovt,u],[0,[0,Ivt,a],[0,[0,Tvt,q(Xr,t[5])],0]]],c=[0,[0,Nvt,pr(0,t[3])],i],f=[0,[0,xvt,z(Dt,t[2])],c],o=[0,[0,Lvt,ir(t[1])],f];return ur(Pvt,r[1],t[7],o)},$r=function(r){var t=r[2],e=t[2],n=t[1],u=ajt(n[1],e[1]),a=[0,[0,Svt,z(Ct,t[3])],0],i=[0,[0,gvt,mr(u,[0,n,[1,e],0])],a];return ur(Bvt,r[1],t[4],i)},Yr=function(r){var t=r[2],e=t[2],n=t[1],u=0===e[0]?n[1]:e[1][1],a=[0,[0,Cvt,mr(ajt(n[1],u),[0,n,e,0])],0];return ur(wvt,r[1],t[3],a)},Vr=function(r){var t=r[2],e=r[1];switch(t[0]){case 0:return Tr([0,e,t[1]]);case 1:var n=t[1],u=[0,[0,xct,z(ir,n[1])],0];return ur(Lct,e,n[2],u);case 2:return Br(ilt,[0,e,t[1]]);case 3:var a=t[1],i=[0,[0,Pct,z(ir,a[1])],0];return ur(Rct,e,a[2],i);case 4:return ur(Mct,e,t[1][1],0);case 5:return Hr([0,e,t[1]]);case 6:var c=t[1],f=c[5],o=c[4],s=c[3],v=c[2];if(s){var l=s[1];if(0!==l[0]&&!l[1][2])return ur(Uct,e,f,[0,[0,Gct,z(Fr,o)],0])}if(v){var D=v[1];switch(D[0]){case 0:var p=Yr(D[1]);break;case 1:p=$r(D[1]);break;case 2:p=Hr(D[1]);break;case 3:p=lr(D[1]);break;case 4:p=Gr(D[1]);break;case 5:p=Mr(1,D[1]);break;default:p=Rr(D[1])}var b=p}else b=pgt;var E=[0,[0,jct,z(Fr,o)],0],F=[0,[0,Hct,b],[0,[0,Xct,Ur(s)],E]],d=c[1];return ur(Yct,e,f,[0,[0,$ct,!!(d?1:d)],F]);case 7:return $r([0,e,t[1]]);case 8:var m=t[1],h=[0,[0,Rvt,q(Xr,m[3])],0],k=[0,[0,Mvt,pr(0,m[4])],h],y=[0,[0,Gvt,z(Dt,m[2])],k],A=[0,[0,Uvt,ir(m[1])],y];return ur(jvt,e,m[5],A);case 9:var _=t[1],C=_[1],w=0===C[0]?ir(C[1]):Fr(C[1]),S=0===_[3][0]?"CommonJS":"ES",g=[0,[0,Jct,w],[0,[0,Kct,Tr(_[2])],[0,[0,Vct,S],0]]];return ur(Wct,e,_[4],g);case 10:var B=t[1],T=[0,[0,qct,br(B[1])],0];return ur(zct,e,B[2],T);case 11:var I=t[1],O=[0,[0,Vvt,lr(I[3])],0],N=[0,[0,Kvt,z(Dt,I[2])],O],x=[0,[0,Jvt,ir(I[1])],N];return ur(Wvt,e,I[4],x);case 12:return Mr(1,[0,e,t[1]]);case 13:return Yr([0,e,t[1]]);case 14:var L=t[1],P=[0,[0,Qct,Lr(L[2])],0],R=[0,[0,Zct,Vr(L[1])],P];return ur(rft,e,L[3],R);case 15:return ur(tft,e,t[1][1],0);case 16:var M=t[1],G=M[2],U=G[2],j=G[1];switch(U[0]){case 0:var X=U[1],H=[0,[0,oDt,!!X[2]],[0,[0,fDt,!!X[3]],0]],$=X[1],Y=[0,[0,sDt,q((function(r){var t=r[2],e=t[2],n=e[2],u=n[1],a=u?Kpt:Jpt,i=[0,[0,aDt,ur(zpt,e[1],n[2],[0,[0,qpt,!!u],[0,[0,Wpt,tI(a)],0]])],0],c=[0,[0,iDt,ir(t[1])],i];return ur(cDt,r[1],0,c)}),$)],H],V=ur(vDt,j,X[4],Y);break;case 1:var K=U[1],J=[0,[0,DDt,!!K[2]],[0,[0,lDt,!!K[3]],0]],W=K[1],Q=[0,[0,pDt,q((function(r){var t=r[2],e=t[2],n=e[2],u=[0,[0,eDt,ur(Upt,e[1],n[3],[0,[0,Gpt,n[1]],[0,[0,Mpt,tI(n[2])],0]])],0],a=[0,[0,nDt,ir(t[1])],u];return ur(uDt,r[1],0,a)}),W)],J];V=ur(bDt,j,K[4],Q);break;case 2:var Z=U[1],rr=Z[1];if(0===rr[0])var er=aCt((function(r){var t=[0,[0,rDt,ir(r[2][1])],0];return ur(tDt,r[1],0,t)}),rr[1]);else er=aCt((function(r){var t=r[2],e=[0,[0,zlt,Fr(t[2])],0],n=[0,[0,Qlt,ir(t[1])],e];return ur(Zlt,r[1],0,n)}),rr[1]);var nr=[0,[0,FDt,!!Z[2]],[0,[0,EDt,!!Z[3]],0]],ar=[0,[0,dDt,gVt(er)],nr];V=ur(mDt,j,Z[4],ar);break;default:var cr=U[1],fr=[0,[0,hDt,!!cr[2]],0],or=cr[1],sr=[0,[0,kDt,q((function(r){var t=[0,[0,Wlt,ir(r[2][1])],0];return ur(qlt,r[1],0,t)}),or)],fr];V=ur(yDt,j,cr[3],sr)}var vr=[0,[0,_Dt,ir(M[1])],[0,[0,ADt,V],0]];return ur(CDt,e,M[3],vr);case 17:var Dr=t[1],dr=Dr[2],mr=0===dr[0]?Vr(dr[1]):Lr(dr[1]),hr=[0,[0,nft,mr],[0,[0,eft,tI(jr(1))],0]];return ur(uft,e,Dr[3],hr);case 18:var kr=t[1],yr=kr[5],Ar=kr[4],_r=kr[3],Cr=kr[2];if(Cr){var wr=Cr[1];if(0!==wr[0]&&!wr[1][2]){var Sr=[0,[0,aft,tI(jr(Ar))],0];return ur(cft,e,yr,[0,[0,ift,z(Fr,_r)],Sr])}}var gr=[0,[0,fft,tI(jr(Ar))],0],Ir=[0,[0,oft,z(Fr,_r)],gr],Or=[0,[0,sft,Ur(Cr)],Ir];return ur(lft,e,yr,[0,[0,vft,z(Vr,kr[1])],Or]);case 19:var Pr=t[1],Wr=[0,[0,Dft,z(wVt,Pr[2])],0],zr=[0,[0,pft,Lr(Pr[1])],Wr];return ur(bft,e,Pr[3],zr);case 20:var Qr=t[1],Zr=[0,[0,Eft,Vr(Qr[4])],0],rt=[0,[0,Fft,z(Lr,Qr[3])],Zr],tt=[0,[0,dft,z(Lr,Qr[2])],rt],et=[0,[0,mft,z((function(r){return 0===r[0]?Er(r[1]):Lr(r[1])}),Qr[1])],tt];return ur(hft,e,Qr[5],et);case 21:var nt=t[1],ut=nt[1],at=0===ut[0]?Er(ut[1]):xr(ut[1]),it=[0,[0,kft,!!nt[4]],0],ct=[0,[0,yft,Vr(nt[3])],it],ft=[0,[0,_ft,at],[0,[0,Aft,Lr(nt[2])],ct]];return ur(Cft,e,nt[5],ft);case 22:var ot=t[1],st=ot[1],vt=0===st[0]?Er(st[1]):xr(st[1]),lt=[0,[0,wft,!!ot[4]],0],pt=[0,[0,Sft,Vr(ot[3])],lt],bt=[0,[0,Bft,vt],[0,[0,gft,Lr(ot[2])],pt]];return ur(Tft,e,ot[5],bt);case 23:var Et=t[1],Ft=Et[7],dt=Et[3],mt=Et[2],ht=0===dt[0]?dt[1]:P_t(Gst),kt=0===Ft[0]?0:[0,Ft[1]],yt=Et[9],At=Djt(tr(mt[2][4]),yt),_t=[0,[0,Ust,z(Dt,Et[8])],0],wt=[0,[0,Xst,!1],[0,[0,jst,z(br,kt)],_t]],St=[0,[0,Hst,z(Ct,Et[6])],wt],gt=[0,[0,Yst,!!Et[4]],[0,[0,$st,!!Et[5]],St]],Bt=[0,[0,Vst,Tr(ht)],gt],Tt=[0,[0,Kst,Nr(mt)],Bt];return ur(Wst,e,At,[0,[0,Jst,z(ir,Et[1])],Tt]);case 24:var It=t[1],Ot=It[3];if(Ot){var Nt=Ot[1][2],xt=Nt[2],Lt=Nt[1],Pt=Lt[2],Rt=function(r){return Djt(r,xt)};switch(Pt[0]){case 0:var Mt=Pt[1],Gt=pjt(Mt[2],xt),Ut=[0,[0,Mt[1],Gt]];break;case 1:var jt=Pt[1],Xt=Rt(jt[2]);Ut=[1,[0,jt[1],Xt]];break;case 2:var Ht=Pt[1],$t=Rt(Ht[7]);Ut=[2,[0,Ht[1],Ht[2],Ht[3],Ht[4],Ht[5],Ht[6],$t]];break;case 3:var Yt=Pt[1],Vt=Rt(Yt[2]);Ut=[3,[0,Yt[1],Vt]];break;case 4:Ut=[4,[0,Rt(Pt[1][1])]];break;case 5:var Kt=Pt[1],Jt=Rt(Kt[7]);Ut=[5,[0,Kt[1],Kt[2],Kt[3],Kt[4],Kt[5],Kt[6],Jt]];break;case 6:var Wt=Pt[1],qt=Rt(Wt[5]);Ut=[6,[0,Wt[1],Wt[2],Wt[3],Wt[4],qt]];break;case 7:var zt=Pt[1],Qt=Rt(zt[4]);Ut=[7,[0,zt[1],zt[2],zt[3],Qt]];break;case 8:var Zt=Pt[1],re=Rt(Zt[5]);Ut=[8,[0,Zt[1],Zt[2],Zt[3],Zt[4],re]];break;case 9:var te=Pt[1],ee=Rt(te[4]);Ut=[9,[0,te[1],te[2],te[3],ee]];break;case 10:var ne=Pt[1],ue=Rt(ne[2]);Ut=[10,[0,ne[1],ue]];break;case 11:var ae=Pt[1],ie=Rt(ae[4]);Ut=[11,[0,ae[1],ae[2],ae[3],ie]];break;case 12:var ce=Pt[1],fe=Rt(ce[5]);Ut=[12,[0,ce[1],ce[2],ce[3],ce[4],fe]];break;case 13:var oe=Pt[1],se=Rt(oe[3]);Ut=[13,[0,oe[1],oe[2],se]];break;case 14:var ve=Pt[1],le=Rt(ve[3]);Ut=[14,[0,ve[1],ve[2],le]];break;case 15:Ut=[15,[0,Rt(Pt[1][1])]];break;case 16:var De=Pt[1],pe=Rt(De[3]);Ut=[16,[0,De[1],De[2],pe]];break;case 17:var be=Pt[1],Ee=Rt(be[3]);Ut=[17,[0,be[1],be[2],Ee]];break;case 18:var Fe=Pt[1],de=Rt(Fe[5]);Ut=[18,[0,Fe[1],Fe[2],Fe[3],Fe[4],de]];break;case 19:var me=Pt[1],he=Rt(me[3]);Ut=[19,[0,me[1],me[2],he]];break;case 20:var ke=Pt[1],ye=Rt(ke[5]);Ut=[20,[0,ke[1],ke[2],ke[3],ke[4],ye]];break;case 21:var Ae=Pt[1],_e=Rt(Ae[5]);Ut=[21,[0,Ae[1],Ae[2],Ae[3],Ae[4],_e]];break;case 22:var Ce=Pt[1],we=Rt(Ce[5]);Ut=[22,[0,Ce[1],Ce[2],Ce[3],Ce[4],we]];break;case 23:var Se=Pt[1],ge=Se[10],Be=Rt(Se[9]);Ut=[23,[0,Se[1],Se[2],Se[3],Se[4],Se[5],Se[6],Se[7],Se[8],Be,ge]];break;case 24:var Te=Pt[1],Ie=Rt(Te[4]);Ut=[24,[0,Te[1],Te[2],Te[3],Ie]];break;case 25:var Oe=Pt[1],Ne=Rt(Oe[5]);Ut=[25,[0,Oe[1],Oe[2],Oe[3],Oe[4],Ne]];break;case 26:var xe=Pt[1],Le=Rt(xe[5]);Ut=[26,[0,xe[1],xe[2],xe[3],xe[4],Le]];break;case 27:var Pe=Pt[1],Re=Rt(Pe[3]);Ut=[27,[0,Pe[1],Pe[2],Re]];break;case 28:var Me=Pt[1],Ge=Rt(Me[2]);Ut=[28,[0,Me[1],Ge]];break;case 29:var Ue=Pt[1],je=Rt(Ue[3]);Ut=[29,[0,Ue[1],Ue[2],je]];break;case 30:var Xe=Pt[1],He=Rt(Xe[2]);Ut=[30,[0,Xe[1],He]];break;case 31:var $e=Pt[1],Ye=Rt($e[4]);Ut=[31,[0,$e[1],$e[2],$e[3],Ye]];break;case 32:var Ve=Pt[1],Ke=Rt(Ve[4]);Ut=[32,[0,Ve[1],Ve[2],Ve[3],Ke]];break;case 33:var Je=Pt[1],We=Rt(Je[5]);Ut=[33,[0,Je[1],Je[2],Je[3],Je[4],We]];break;case 34:var qe=Pt[1],ze=Rt(qe[3]);Ut=[34,[0,qe[1],qe[2],ze]];break;case 35:var Qe=Pt[1],Ze=Rt(Qe[3]);Ut=[35,[0,Qe[1],Qe[2],Ze]];break;default:var rn=Pt[1],tn=Rt(rn[3]);Ut=[36,[0,rn[1],rn[2],tn]]}var en=Vr([0,Lt[1],Ut])}else en=pgt;var nn=[0,[0,Oft,Vr(It[2])],[0,[0,Ift,en],0]],un=[0,[0,Nft,Lr(It[1])],nn];return ur(xft,e,It[4],un);case 25:var an=t[1],cn=an[4],fn=an[3];if(cn){var on=cn[1];if(0===on[0])var sn=aCt((function(r){var t=r[1],e=r[3],n=r[2],u=n?ajt(e[1],n[1][1]):e[1],a=n?n[1]:e,i=0;if(t)switch(t[1]){case 0:var c=qr;break;case 1:c=Of;break;default:i=1}else i=1;if(i)c=pgt;var f=[0,[0,kdt,ir(a)],[0,[0,hdt,c],0]];return ur(Adt,u,0,[0,[0,ydt,ir(e)],f])}),on[1]);else{var vn=on[1],ln=[0,[0,ddt,ir(vn[2])],0];sn=[0,ur(mdt,vn[1],0,ln),0]}var Dn=sn}else Dn=cn;if(fn)var pn=fn[1],bn=[0,[0,Edt,ir(pn)],0],En=[0,ur(Fdt,pn[1],0,bn),Dn];else En=Dn;switch(an[1]){case 0:var Fn=Lft;break;case 1:Fn=Pft;break;default:Fn=Rft}var dn=[0,[0,Mft,tI(Fn)],0],mn=[0,[0,Gft,Fr(an[2])],dn],hn=[0,[0,Uft,gVt(En)],mn];return ur(jft,e,an[5],hn);case 26:return Rr([0,e,t[1]]);case 27:var kn=t[1],yn=[0,[0,Xft,Vr(kn[2])],0],An=[0,[0,Hft,ir(kn[1])],yn];return ur($ft,e,kn[3],An);case 28:var _n=t[1],Cn=[0,[0,Yft,z(Lr,_n[1])],0];return ur(Vft,e,_n[2],Cn);case 29:var wn=t[1],Sn=[0,[0,Kft,q(Kr,wn[2])],0],gn=[0,[0,Jft,Lr(wn[1])],Sn];return ur(Wft,e,wn[3],gn);case 30:var Bn=t[1],Tn=[0,[0,qft,Lr(Bn[1])],0];return ur(zft,e,Bn[2],Tn);case 31:var In=t[1],On=[0,[0,Qft,z(Tr,In[3])],0],Nn=[0,[0,Zft,z(Jr,In[2])],On],xn=[0,[0,rot,Tr(In[1])],Nn];return ur(tot,e,In[4],xn);case 32:return Gr([0,e,t[1]]);case 33:return Mr(0,[0,e,t[1]]);case 34:return Er([0,e,t[1]]);case 35:var Ln=t[1],Pn=[0,[0,eot,Vr(Ln[2])],0],Rn=[0,[0,not,Lr(Ln[1])],Pn];return ur(uot,e,Ln[3],Rn);default:var Mn=t[1],Gn=[0,[0,aot,Vr(Mn[2])],0],Un=[0,[0,iot,Lr(Mn[1])],Gn];return ur(cot,e,Mn[3],Un)}},Kr=function(r){var t=r[2],e=[0,[0,Fvt,q(Vr,t[2])],0],n=[0,[0,dvt,z(Lr,t[1])],e];return ur(mvt,r[1],t[3],n)},Jr=function(r){var t=r[2],e=[0,[0,hvt,Tr(t[2])],0],n=[0,[0,kvt,z(xr,t[1])],e];return ur(yvt,r[1],t[3],n)},Wr=function(r){var t=r[2],e=[0,[0,blt,Lr(t[1])],0];return ur(Elt,r[1],t[2],e)},zr=function(r){var t=r[2],e=[0,[0,Flt,z(bt,t[2])],0],n=[0,[0,dlt,ir(t[1])],e];return ur(mlt,r[1],0,n)},Qr=function(r){switch(r[0]){case 0:var t=r[1],e=t[2],n=e[6],u=e[2];switch(u[0]){case 0:var a=[0,or(u[1]),0,n];break;case 1:a=[0,ir(u[1]),0,n];break;case 2:a=[0,hr(u[1]),0,n];break;default:var i=u[1][2],c=Djt(i[2],n);a=[0,Lr(i[1]),1,c]}switch(e[1]){case 0:var f=ylt;break;case 1:f=Alt;break;case 2:f=_lt;break;default:f=Clt}var o=[0,[0,wlt,q(Wr,e[5])],0],s=[0,[0,Blt,tI(f)],[0,[0,glt,!!e[4]],[0,[0,Slt,!!a[2]],o]]],v=[0,[0,Tlt,Pr(e[3])],s];return ur(Olt,t[1],a[3],[0,[0,Ilt,a[1]],v]);case 1:var l=r[1],D=l[2],p=D[6],b=D[2],E=D[1];switch(E[0]){case 0:var F=[0,or(E[1]),0,p];break;case 1:F=[0,ir(E[1]),0,p];break;case 2:F=P_t(Ult);break;default:var d=E[1][2],m=Djt(d[2],p);F=[0,Lr(d[1]),1,m]}if("number"==typeof b)if(0===b)var h=0,k=1;else h=0,k=0;else h=[0,b[1]],k=0;var y=k?[0,[0,jlt,!!k],0]:k,A=[0,[0,Xlt,z(st,D[5])],0],_=[0,[0,$lt,!!F[2]],[0,[0,Hlt,!!D[4]],A]],C=[0,[0,Ylt,Q(br,D[3])],_],w=[0,[0,Vlt,z(Lr,h)],C],S=j_t([0,[0,Klt,F[1]],w],y);return ur(Jlt,l[1],F[3],S);default:var g=r[1],B=g[2],T=B[2],I=B[1][2];if("number"==typeof T)if(0===T)var O=0,N=1;else O=0,N=0;else O=[0,T[1]],N=0;var x=Djt(I[2],B[6]),L=N?[0,[0,Nlt,!!N],0]:N,P=[0,[0,xlt,z(st,B[5])],0],R=[0,[0,Llt,!!B[4]],P],M=[0,[0,Plt,Q(br,B[3])],R],G=[0,[0,Rlt,z(Lr,O)],M],U=j_t([0,[0,Mlt,ir(I[1])],G],L);return ur(Glt,g[1],x,U)}},Zr=function(r){var t=r[2],e=t[2],n=t[1];if(e){var u=[0,[0,UDt,Lr(e[1])],0],a=[0,[0,jDt,xr(n)],u];return ur(XDt,r[1],0,a)}return xr(n)},rt=function(r,t){var e=[0,[0,JDt,xr(t[1])],0];return ur(WDt,r,t[2],e)},tt=function(r){switch(r[0]){case 0:var t=r[1],e=t[2],n=e[2],u=e[1];if(n){var a=[0,[0,qDt,Lr(n[1])],0],i=[0,[0,zDt,xr(u)],a];return ur(QDt,t[1],0,i)}return xr(u);case 1:var c=r[1];return rt(c[1],c[2]);default:return pgt}},et=function(r){if(0===r[0]){var t=r[1],e=t[2];switch(e[0]){case 0:var n=e[3],u=Lr(e[2]),a=[0,e[1],u,ZDt,0,n,0];break;case 1:var i=e[2],c=Pr([0,i[1],i[2]]);a=[0,e[1],c,rpt,1,0,0];break;case 2:var f=e[2],o=e[3],s=Pr([0,f[1],f[2]]);a=[0,e[1],s,tpt,0,0,o];break;default:var v=e[2],l=e[3],D=Pr([0,v[1],v[2]]);a=[0,e[1],D,ept,0,0,l]}var p=a[6],b=a[1];switch(b[0]){case 0:var E=[0,or(b[1]),0,p];break;case 1:E=[0,ir(b[1]),0,p];break;case 2:E=P_t(npt);break;default:var F=b[1][2],d=Djt(F[2],p);E=[0,Lr(F[1]),1,d]}return ur(spt,t[1],E[3],[0,[0,opt,E[1]],[0,[0,fpt,a[2]],[0,[0,cpt,tI(a[3])],[0,[0,ipt,!!a[4]],[0,[0,apt,!!a[5]],[0,[0,upt,!!E[2]],0]]]]]])}var m=r[1],h=m[2],k=[0,[0,vpt,Lr(h[1])],0];return ur(lpt,m[1],h[2],k)},nt=function(r){if(0===r[0]){var t=r[1],e=t[2],n=e[3],u=e[2],a=e[1];switch(a[0]){case 0:var i=[0,or(a[1]),0,0];break;case 1:i=[0,ir(a[1]),0,0];break;default:var c=a[1][2],f=c[2];i=[0,Lr(c[1]),1,f]}if(n)var o=n[1],s=ajt(u[1],o[1]),v=[0,[0,Dpt,Lr(o)],0],l=ur(bpt,s,0,[0,[0,ppt,xr(u)],v]);else l=xr(u);return ur(ypt,t[1],i[3],[0,[0,kpt,i[1]],[0,[0,hpt,l],[0,[0,mpt,kh],[0,[0,dpt,!1],[0,[0,Fpt,!!e[4]],[0,[0,Ept,!!i[2]],0]]]]]])}var D=r[1];return rt(D[1],D[2])},ut=function(r){var t=r[2],e=[0,[0,Apt,Lr(t[1])],0];return ur(_pt,r[1],t[2],e)},at=function(r){return 0===r[0]?Lr(r[1]):ut(r[1])},it=function(r){switch(r[0]){case 0:return Lr(r[1]);case 1:return ut(r[1]);default:return pgt}},ct=function(r){var t=r[2],e=[0,[0,Cpt,!!t[3]],0],n=[0,[0,wpt,Lr(t[2])],e],u=[0,[0,Spt,xr(t[1])],n];return ur(gpt,r[1],0,u)},ft=function(r){var t=r[2],e=t[1],n=SVt([0,[0,ebt,tI(e[1])],[0,[0,tbt,tI(e[2])],0]]);return ur(abt,r[1],0,[0,[0,ubt,n],[0,[0,nbt,!!t[2]],0]])},ot=function(r){var t=r[2],e=[0,[0,bbt,z(Lr,t[2])],0],n=[0,[0,Ebt,xr(t[1])],e];return ur(Fbt,r[1],0,n)},st=function(r){var t=r[2],e=0===t[1]?"plus":Tk;return ur(mbt,r[1],t[2],[0,[0,dbt,e],0])},vt=function(r){var t=r[2];return vr(t[2],t[1])},lt=function(r){var t=r[2],e=[0,[0,Hbt,lr(t[1][2])],[0,[0,Xbt,!1],0]],n=[0,[0,$bt,z(ir,0)],e];return ur(Ybt,r[1],t[2],n)},Dt=function(r){var t=r[2],e=[0,[0,dFt,q(pt,t[1])],0],n=tr(t[2]);return ur(mFt,r[1],n,e)},pt=function(r){var t=r[2],e=t[1][2],n=[0,[0,hFt,z(lr,t[4])],0],u=[0,[0,kFt,z(st,t[3])],n],a=[0,[0,yFt,Q(br,t[2])],u];return ur(_Ft,r[1],e[2],[0,[0,AFt,tI(e[1])],a])},bt=function(r){var t=r[2],e=[0,[0,CFt,q(lr,t[1])],0],n=tr(t[2]);return ur(wFt,r[1],n,e)},Et=function(r){var t=r[2],e=[0,[0,SFt,q(Ft,t[1])],0],n=tr(t[2]);return ur(gFt,r[1],n,e)},Ft=function(r){if(0===r[0])return lr(r[1]);var t=r[1],e=t[1],n=t[2][1];return fr([0,e,[0,[0,ojt(0,[0,e,BFt])],0,n]])},dt=function(r){if(0===r[0]){var t=r[1],e=t[2],n=e[1],u=0===n[0]?Ar(n[1]):_r(n[1]),a=[0,[0,KFt,u],[0,[0,VFt,z(yt,e[2])],0]];return ur(JFt,t[1],0,a)}var i=r[1],c=i[2],f=[0,[0,WFt,Lr(c[1])],0];return ur(qFt,i[1],c[2],f)},mt=function(r){var t=[0,[0,HFt,wr(r[2][1])],0];return ur($Ft,r[1],0,t)},ht=function(r){var t=r[2],e=t[1],n=r[1],u=e?Lr(e[1]):ur(zFt,[0,n[1],[0,n[2][1],n[2][2]+1|0],[0,n[3][1],n[3][2]-1|0]],0,0);return ur(ZFt,n,tr(t[2]),[0,[0,QFt,u],0])},kt=function(r){var t=r[2],e=r[1];switch(t[0]){case 0:return Sr([0,e,t[1]]);case 1:return yr([0,e,t[1]]);case 2:return ht([0,e,t[1]]);case 3:var n=t[1],u=[0,[0,rdt,Lr(n[1])],0];return ur(tdt,e,n[2],u);default:var a=t[1];return ur(udt,e,0,[0,[0,ndt,tI(a[1])],[0,[0,edt,tI(a[2])],0]])}},yt=function(r){return 0===r[0]?or([0,r[1],r[2]]):ht([0,r[1],r[2]])},At=function(r){var t=r[2],e=t[2],n=t[1],u=ir(e?e[1]:n),a=[0,[0,pdt,ir(n)],[0,[0,Ddt,u],0]];return ur(bdt,r[1],0,a)},_t=function(r){var t=r[2];if(0===t[1])var e=Cdt,n=t[2];else e=_dt,n=t[2];return ur(e,r[1],0,[0,[0,wdt,tI(n)],0])},Ct=function(r){var t=r[2],e=t[1];if(e)var n=gdt,u=[0,[0,Sdt,Lr(e[1])],0];else n=Bdt,u=0;return ur(n,r[1],t[2],u)},wt=S[2],St=ar(wt[1]),gt=m?[0,[0,Ict,St],[0,[0,Tct,nr(wt[3])],0]]:[0,[0,Oct,St],0],Bt=ur(Nct,S[1],wt[2],gt),Tt=j_t(B,CVt[1]);if(Bt.errors=q((function(r){var t=r[2];if("number"==typeof t){var e=t;if(56<=e)switch(e){case 56:var n=JJr;break;case 57:n=WJr;break;case 58:n=qJr;break;case 59:n=G_t(QJr,zJr);break;case 60:n=G_t(rWr,ZJr);break;case 61:n=G_t(eWr,tWr);break;case 62:n=nWr;break;case 63:n=uWr;break;case 64:n=aWr;break;case 65:n=iWr;break;case 66:n=cWr;break;case 67:n=fWr;break;case 68:n=oWr;break;case 69:n=sWr;break;case 70:n=vWr;break;case 71:n=lWr;break;case 72:n=DWr;break;case 73:n=pWr;break;case 74:n=bWr;break;case 75:n=EWr;break;case 76:n=FWr;break;case 77:n=dWr;break;case 78:n=mWr;break;case 79:n=hWr;break;case 80:n=kWr;break;case 81:n=yWr;break;case 82:n=G_t(_Wr,AWr);break;case 83:n=CWr;break;case 84:n=wWr;break;case 85:n=SWr;break;case 86:n=gWr;break;case 87:n=BWr;break;case 88:n=TWr;break;case 89:n=IWr;break;case 90:n=OWr;break;case 91:n=NWr;break;case 92:n=xWr;break;case 93:n=LWr;break;case 94:n=PWr;break;case 95:n=G_t(MWr,RWr);break;case 96:n=GWr;break;case 97:n=UWr;break;case 98:n=jWr;break;case 99:n=XWr;break;case 100:n=HWr;break;case 101:n=$Wr;break;case 102:n=YWr;break;case 103:n=VWr;break;case 104:n=KWr;break;case 105:n=JWr;break;case 106:n=WWr;break;case 107:n=qWr;break;case 108:n=zWr;break;case 109:n=QWr;break;case 110:n=ZWr;break;default:n=rqr}else switch(e){case 0:n=YKr;break;case 1:n=VKr;break;case 2:n=KKr;break;case 3:n=JKr;break;case 4:n=WKr;break;case 5:n=qKr;break;case 6:n=zKr;break;case 7:n=QKr;break;case 8:n=ZKr;break;case 9:n=rJr;break;case 10:n=tJr;break;case 11:n=eJr;break;case 12:n=nJr;break;case 13:n=uJr;break;case 14:n=aJr;break;case 15:n=iJr;break;case 16:n=cJr;break;case 17:n=fJr;break;case 18:n=oJr;break;case 19:n=sJr;break;case 20:n=vJr;break;case 21:n=lJr;break;case 22:n=DJr;break;case 23:n=pJr;break;case 24:n=bJr;break;case 25:n=EJr;break;case 26:n=FJr;break;case 27:n=dJr;break;case 28:n=mJr;break;case 29:n=hJr;break;case 30:n=kJr;break;case 31:n=G_t(AJr,yJr);break;case 32:n=_Jr;break;case 33:n=CJr;break;case 34:n=wJr;break;case 35:n=SJr;break;case 36:n=gJr;break;case 37:n=BJr;break;case 38:n=TJr;break;case 39:n=IJr;break;case 40:n=OJr;break;case 41:n=NJr;break;case 42:n=xJr;break;case 43:n=LJr;break;case 44:n=PJr;break;case 45:n=RJr;break;case 46:n=MJr;break;case 47:n=GJr;break;case 48:n=UJr;break;case 49:n=jJr;break;case 50:n=XJr;break;case 51:n=HJr;break;case 52:n=$Jr;break;case 53:n=YJr;break;case 54:n=VJr;break;default:n=KJr}}else switch(t[0]){case 0:n=G_t(tqr,t[1]);break;case 1:var u=t[2],a=t[1];n=xI(Awt(eqr),u,u,a);break;case 2:var i=t[1],c=t[2];n=NI(Awt(nqr),c,i);break;case 3:var f=t[1];n=OI(Awt(uqr),f);break;case 4:var o=t[2],s=t[1],v=OI(Awt(aqr),s);if(o){var l=o[1];n=NI(Awt(iqr),l,v)}else n=OI(Awt(cqr),v);break;case 5:var D=t[1];n=NI(Awt(fqr),D,D);break;case 6:var p=t[3],b=t[2],E=t[1];if(b){var F=b[1];if(3<=F)n=NI(Awt(oqr),p,E);else{switch(F){case 0:var d=jKr;break;case 1:d=XKr;break;case 2:d=HKr;break;default:d=$Kr}n=LI(Awt(sqr),E,d,p,d)}}else n=NI(Awt(vqr),p,E);break;case 7:var m=t[2],h=m;if(0===XT(h))var k=h;else{var y=bCt(h);xB(y,0,K_t(PB(h,0)));k=y}var A=k,_=t[1];n=xI(Awt(lqr),m,A,_);break;case 8:n=t[1]?Dqr:pqr;break;case 9:var C=t[1],w=t[2];n=NI(Awt(bqr),w,C);break;case 10:var S=t[1];n=OI(Awt(Eqr),S);break;case 11:var g=t[1];n=OI(Awt(Fqr),g);break;case 12:var B=t[2],T=t[1];n=NI(Awt(dqr),T,B);break;case 13:var I=t[2],O=t[1];n=NI(Awt(mqr),O,I);break;case 14:n=G_t(kqr,G_t(t[1],hqr));break;case 15:var N=t[1]?yqr:Aqr;n=OI(Awt(_qr),N);break;case 16:n=G_t(wqr,G_t(t[1],Cqr));break;case 17:var x=G_t(gqr,G_t(t[2],Sqr));n=G_t(t[1],x);break;case 18:n=G_t(Bqr,t[1]);break;case 19:n=t[1]?G_t(Iqr,Tqr):G_t(Nqr,Oqr);break;case 20:var L=t[1];n=OI(Awt(xqr),L);break;case 21:n=G_t(Pqr,G_t(t[1],Lqr));break;case 22:var P=t[1],R=t[2]?Rqr:Mqr,M=t[3]?G_t(Gqr,P):P;n=G_t(Xqr,G_t(R,G_t(jqr,G_t(M,Uqr))));break;case 23:n=G_t($qr,G_t(t[1],Hqr));break;default:var G=t[1];n=OI(Awt(Yqr),G)}var U=[0,[0,Pdt,tI(n)],0];return SVt([0,[0,Rdt,rr(r[1])],U])}),Tt),b){var It=h[1];Bt.tokens=gVt(iCt(OI(TVt[1],W),It))}return Bt}var Ot=Y[1];if(5===Ot){var Nt=Y[2];if(Nt&&6===Nt[1]){$=[0,J+2|0,0,[0,SCt(nCt([0,J,K])),V]],Y=Nt[2];continue}}else if(!(6<=Ot)){var xt=Y[2];$=[0,J+BYt(Ot)|0,[0,J,K],V],Y=xt;continue}var Lt=SCt(nCt([0,J,K])),Pt=Y[2];$=[0,J+BYt(Ot)|0,0,[0,Lt,V]],Y=Pt}}};return t.parse=function(r,t){try{return OVt(r,t)}catch(t){return(t=II(t))[1]===dgt?OI(hgt,t[2]):OI(hgt,new mgt(tI(G_t(O_t,Swt(t)))))}},void OI($_t[1],0)}cgt=fgt}else agt=igt}else ngt=ugt}else tgt=egt}}(new Function("return this")())}));const mi={comments:!1,enums:!0,esproposal_class_instance_fields:!0,esproposal_class_static_fields:!0,esproposal_decorators:!0,esproposal_export_star_as:!0,esproposal_nullish_coalescing:!0,esproposal_optional_chaining:!0,tokens:!0};var hi={parsers:{flow:si((function(t,e,n){const{parse:u}=di,a=u(vi(t),mi),[i]=a.errors;if(i)throw function(t){const{message:e,loc:{start:n,end:u}}=t;return r(e,{start:{line:n.line,column:n.column+1},end:{line:u.line,column:u.column+1}})}(i);return la(a,Object.assign(Object.assign({},n),{},{originalText:t}))}))}};export default hi; diff --git a/node_modules/prettier/esm/parser-glimmer.mjs b/node_modules/prettier/esm/parser-glimmer.mjs new file mode 100644 index 0000000000..abc60e6296 --- /dev/null +++ b/node_modules/prettier/esm/parser-glimmer.mjs @@ -0,0 +1 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){var t={exports:{}};return e(t,t.exports),t.exports}var r=t((function(e,t){var r="\n",n=function(){function e(e){this.string=e;for(var t=[0],n=0;nthis.string.length)return null;for(var t=0,r=this.offsets;r[t+1]<=e;)t++;return{line:t,column:e-r[t]}},e.prototype.indexForLocation=function(e){var t=e.line,r=e.column;return t<0||t>=this.offsets.length||r<0||r>this.lengthOfLine(t)?null:this.offsets[t]+r},e.prototype.lengthOfLine=function(e){var t=this.offsets[e];return(e===this.offsets.length-1?this.string.length:this.offsets[e+1])-t},e}();t.__esModule=!0,t.default=n}));var n=function(e,t){const r=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return r.loc=t,r};var o={locStart:function(e){return e.loc.start.offset},locEnd:function(e){return e.loc.end.offset}};var i=Object.freeze({__proto__:null,DEBUG:!1,CI:!1});const a=Object.freeze([]);function s(){return a}const l=s(),c=s();var u;const{keys:h}=Object;let p=null!==(u=Object.assign)&&void 0!==u?u:function(e){for(let t=1;t-536870913?w(e):S(e)}[1,-1].forEach((e=>P(E(e))));var T="function"==typeof WeakSet?WeakSet:class{constructor(){this._map=new WeakMap}add(e){return this._map.set(e,!0),this}delete(e){return this._map.delete(e)}has(e){return this._map.has(e)}};function x(e){return 9===e.nodeType}function N(e,t){let r=!1;if(null!==e)if("string"==typeof t)r=O(e,t);else{if(!Array.isArray(t))throw g();r=t.some((t=>O(e,t)))}if(r)return e;throw function(e,t){return new Error(`cannot cast a ${e} into ${t}`)}(`SimpleElement(${e})`,t)}function O(e,t){switch(t){case"NODE":return!0;case"HTML":return e instanceof HTMLElement;case"SVG":return e instanceof SVGElement;case"ELEMENT":return e instanceof Element;default:if(t.toUpperCase()===t)throw new Error("BUG: this code is missing handling for a generic node type");return e instanceof Element&&e.tagName.toLowerCase()===t}}function A(e){return e.length>0}const C=console,L=console;var _=Object.freeze({__proto__:null,LOCAL_LOGGER:C,LOGGER:L,assertNever:function(e,t="unexpected unreachable branch"){throw L.log("unreachable",e),L.log(`${t} :: ${JSON.stringify(e)} (${e})`),new Error("code reached unreachable")},assert:function(e,t){if(!e)throw new Error(t||"assertion failure")},deprecate:function(e){C.warn(`DEPRECATION: ${e}`)},dict:function(){return Object.create(null)},isDict:function(e){return null!=e},isObject:function(e){return"function"==typeof e||"object"==typeof e&&null!==e},Stack:class{constructor(e=[]){this.current=null,this.stack=e}get size(){return this.stack.length}push(e){this.current=e,this.stack.push(e)}pop(){let e=this.stack.pop(),t=this.stack.length;return this.current=0===t?null:this.stack[t-1],void 0===e?null:e}nth(e){let t=this.stack.length;return te,enumerableSymbol:b,symbol:y,strip:function(e,...t){let r="";for(let n=0;n=0},isNonPrimitiveHandle:function(e){return e>3},constants:function(...e){return[!1,!0,null,void 0,...e]},isSmallInt:function(e){return e%1==0&&e<=536870911&&e>=-536870912},encodeNegative:v,decodeNegative:S,encodePositive:k,decodePositive:w,encodeHandle:function(e){return e},decodeHandle:function(e){return e},encodeImmediate:E,decodeImmediate:P,unwrapHandle:function(e){if("number"==typeof e)return e;{let t=e.errors[0];throw new Error(`Compile Error: ${t.problem} @ ${t.span.start}..${t.span.end}`)}},unwrapTemplate:function(e){if("error"===e.result)throw new Error(`Compile Error: ${e.problem} @ ${e.span.start}..${e.span.end}`);return e},extractHandle:function(e){return"number"==typeof e?e:e.handle},isOkHandle:function(e){return"number"==typeof e},isErrHandle:function(e){return"number"==typeof e},isPresent:A,ifPresent:function(e,t,r){return A(e)?t(e):r()},toPresentOption:function(e){return A(e)?e:null},assertPresent:function(e,t="unexpected empty list"){if(!A(e))throw new Error(t)},mapPresent:function(e,t){if(null===e)return null;let r=[];for(let n of e)r.push(t(n));return r}}),B=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isLocatedWithPositionsArray=function(e){return(0,_.isPresent)(e)&&e.every(l)},t.isLocatedWithPositions=l,t.BROKEN_LOCATION=t.NON_EXISTENT_LOCATION=t.TEMPORARY_LOCATION=t.SYNTHETIC=t.SYNTHETIC_LOCATION=t.UNKNOWN_POSITION=void 0;const r=Object.freeze({line:1,column:0});t.UNKNOWN_POSITION=r;const n=Object.freeze({source:"(synthetic)",start:r,end:r});t.SYNTHETIC_LOCATION=n;const o=n;t.SYNTHETIC=o;const i=Object.freeze({source:"(temporary)",start:r,end:r});t.TEMPORARY_LOCATION=i;const a=Object.freeze({source:"(nonexistent)",start:r,end:r});t.NON_EXISTENT_LOCATION=a;const s=Object.freeze({source:"(broken)",start:r,end:r});function l(e){return void 0!==e.loc}t.BROKEN_LOCATION=s})),D=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.SourceSlice=void 0;class r{constructor(e){this.loc=e.loc,this.chars=e.chars}static synthetic(e){let t=q.SourceSpan.synthetic(e);return new r({loc:t,chars:e})}static load(e,t){return new r({loc:q.SourceSpan.load(e,t[1]),chars:t[0]})}getString(){return this.chars}serialize(){return[this.chars,this.loc.serialize()]}}t.SourceSlice=r})),I=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.match=function(e){return e(new u).check()},t.IsInvisible=t.MatchAny=void 0;var r,n,o,i=function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};const a="MATCH_ANY";t.MatchAny=a;const s="IS_INVISIBLE";t.IsInvisible=s;class l{constructor(e){r.set(this,void 0),function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");t.set(e,r)}(this,r,e)}first(e){for(let t of i(this,r)){let r=t.match(e);if((0,_.isPresent)(r))return r[0]}return null}}r=new WeakMap;class c{constructor(){n.set(this,new Map)}get(e,t){let r=i(this,n).get(e);return r||(r=t(),i(this,n).set(e,r),r)}add(e,t){i(this,n).set(e,t)}match(e){let t=function(e){switch(e){case"Broken":case"InternalsSynthetic":case"NonExistent":return s;default:return e}}(e),r=[],o=i(this,n).get(t),l=i(this,n).get(a);return o&&r.push(o),l&&r.push(l),r}}n=new WeakMap;class u{constructor(){o.set(this,new c)}check(){return(e,t)=>this.matchFor(e.kind,t.kind)(e,t)}matchFor(e,t){let r=i(this,o).match(e);return new l(r).first(t)}when(e,t,r){return i(this,o).get(e,(()=>new c)).add(t,r),this}}o=new WeakMap})),M=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.InvisiblePosition=t.HbsPosition=t.CharPosition=t.SourceOffset=t.BROKEN=void 0;var r,n,o=function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)},i=function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r};const a="BROKEN";t.BROKEN=a;class s{constructor(e){this.data=e}static forHbsPos(e,t){return new c(e,t,null).wrap()}static broken(e=B.UNKNOWN_POSITION){return new u("Broken",e).wrap()}get offset(){let e=this.data.toCharPos();return null===e?null:e.offset}eql(e){return h(this.data,e.data)}until(e){return(0,R.span)(this.data,e.data)}move(e){let t=this.data.toCharPos();if(null===t)return s.broken();{let r=t.offset+e;return t.source.check(r)?new l(t.source,r).wrap():s.broken()}}collapsed(){return(0,R.span)(this.data,this.data)}toJSON(){return this.data.toJSON()}}t.SourceOffset=s;class l{constructor(e,t){this.source=e,this.charPos=t,this.kind="CharPosition",r.set(this,null)}toCharPos(){return this}toJSON(){let e=this.toHbsPos();return null===e?B.UNKNOWN_POSITION:e.toJSON()}wrap(){return new s(this)}get offset(){return this.charPos}toHbsPos(){let e=o(this,r);if(null===e){let t=this.source.hbsPosFor(this.charPos);i(this,r,e=null===t?a:new c(this.source,t,this.charPos))}return e===a?null:e}}t.CharPosition=l,r=new WeakMap;class c{constructor(e,t,r=null){this.source=e,this.hbsPos=t,this.kind="HbsPosition",n.set(this,void 0),i(this,n,null===r?null:new l(e,r))}toCharPos(){let e=o(this,n);if(null===e){let t=this.source.charPosFor(this.hbsPos);i(this,n,e=null===t?a:new l(this.source,t))}return e===a?null:e}toJSON(){return this.hbsPos}wrap(){return new s(this)}toHbsPos(){return this}}t.HbsPosition=c,n=new WeakMap;class u{constructor(e,t){this.kind=e,this.pos=t}toCharPos(){return null}toJSON(){return this.pos}wrap(){return new s(this)}get offset(){return null}}t.InvisiblePosition=u;const h=(0,I.match)((e=>e.when("HbsPosition","HbsPosition",(({hbsPos:e},{hbsPos:t})=>e.column===t.column&&e.line===t.line)).when("CharPosition","CharPosition",(({charPos:e},{charPos:t})=>e===t)).when("CharPosition","HbsPosition",(({offset:e},t)=>{var r;return e===(null===(r=t.toCharPos())||void 0===r?void 0:r.offset)})).when("HbsPosition","CharPosition",((e,{offset:t})=>{var r;return(null===(r=e.toCharPos())||void 0===r?void 0:r.offset)===t})).when(I.MatchAny,I.MatchAny,(()=>!1))))})),R=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.span=t.HbsSpan=t.SourceSpan=void 0;var r,n,o,a=function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)},s=function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r};class l{constructor(e){this.data=e,this.isInvisible="CharPosition"!==e.kind&&"HbsPosition"!==e.kind}static get NON_EXISTENT(){return new h("NonExistent",B.NON_EXISTENT_LOCATION).wrap()}static load(e,t){return"number"==typeof t?l.forCharPositions(e,t,t):"string"==typeof t?l.synthetic(t):Array.isArray(t)?l.forCharPositions(e,t[0],t[1]):"NonExistent"===t?l.NON_EXISTENT:"Broken"===t?l.broken(B.BROKEN_LOCATION):void(0,_.assertNever)(t)}static forHbsLoc(e,t){let r=new M.HbsPosition(e,t.start),n=new M.HbsPosition(e,t.end);return new u(e,{start:r,end:n},t).wrap()}static forCharPositions(e,t,r){let n=new M.CharPosition(e,t),o=new M.CharPosition(e,r);return new c(e,{start:n,end:o}).wrap()}static synthetic(e){return new h("InternalsSynthetic",B.NON_EXISTENT_LOCATION,e).wrap()}static broken(e=B.BROKEN_LOCATION){return new h("Broken",e).wrap()}getStart(){return this.data.getStart().wrap()}getEnd(){return this.data.getEnd().wrap()}get loc(){let e=this.data.toHbsSpan();return null===e?B.BROKEN_LOCATION:e.toHbsLoc()}get module(){return this.data.getModule()}get startPosition(){return this.loc.start}get endPosition(){return this.loc.end}toJSON(){return this.loc}withStart(e){return p(e.data,this.data.getEnd())}withEnd(e){return p(this.data.getStart(),e.data)}asString(){return this.data.asString()}toSlice(e){let t=this.data.asString();return i.DEBUG&&void 0!==e&&t!==e&&console.warn(`unexpectedly found ${JSON.stringify(t)} when slicing source, but expected ${JSON.stringify(e)}`),new D.SourceSlice({loc:this,chars:e||t})}get start(){return this.loc.start}set start(e){this.data.locDidUpdate({start:e})}get end(){return this.loc.end}set end(e){this.data.locDidUpdate({end:e})}get source(){return this.module}collapse(e){switch(e){case"start":return this.getStart().collapsed();case"end":return this.getEnd().collapsed()}}extend(e){return p(this.data.getStart(),e.data.getEnd())}serialize(){return this.data.serialize()}slice({skipStart:e=0,skipEnd:t=0}){return p(this.getStart().move(e).data,this.getEnd().move(-t).data)}sliceStartChars({skipStart:e=0,chars:t}){return p(this.getStart().move(e).data,this.getStart().move(e+t).data)}sliceEndChars({skipEnd:e=0,chars:t}){return p(this.getEnd().move(e-t).data,this.getStart().move(-e).data)}}t.SourceSpan=l;class c{constructor(e,t){this.source=e,this.charPositions=t,this.kind="CharPosition",r.set(this,null)}wrap(){return new l(this)}asString(){return this.source.slice(this.charPositions.start.charPos,this.charPositions.end.charPos)}getModule(){return this.source.module}getStart(){return this.charPositions.start}getEnd(){return this.charPositions.end}locDidUpdate(){}toHbsSpan(){let e=a(this,r);if(null===e){let t=this.charPositions.start.toHbsPos(),n=this.charPositions.end.toHbsPos();e=s(this,r,null===t||null===n?M.BROKEN:new u(this.source,{start:t,end:n}))}return e===M.BROKEN?null:e}serialize(){let{start:{charPos:e},end:{charPos:t}}=this.charPositions;return e===t?e:[e,t]}toCharPosSpan(){return this}}r=new WeakMap;class u{constructor(e,t,r=null){this.source=e,this.hbsPositions=t,this.kind="HbsPosition",n.set(this,null),o.set(this,void 0),s(this,o,r)}serialize(){let e=this.toCharPosSpan();return null===e?"Broken":e.wrap().serialize()}wrap(){return new l(this)}updateProvided(e,t){a(this,o)&&(a(this,o)[t]=e),s(this,n,null),s(this,o,{start:e,end:e})}locDidUpdate({start:e,end:t}){void 0!==e&&(this.updateProvided(e,"start"),this.hbsPositions.start=new M.HbsPosition(this.source,e,null)),void 0!==t&&(this.updateProvided(t,"end"),this.hbsPositions.end=new M.HbsPosition(this.source,t,null))}asString(){let e=this.toCharPosSpan();return null===e?"":e.asString()}getModule(){return this.source.module}getStart(){return this.hbsPositions.start}getEnd(){return this.hbsPositions.end}toHbsLoc(){return{start:this.hbsPositions.start.hbsPos,end:this.hbsPositions.end.hbsPos}}toHbsSpan(){return this}toCharPosSpan(){let e=a(this,n);if(null===e){let t=this.hbsPositions.start.toCharPos(),r=this.hbsPositions.end.toCharPos();if(!t||!r)return e=s(this,n,M.BROKEN),null;e=s(this,n,new c(this.source,{start:t,end:r}))}return e===M.BROKEN?null:e}}t.HbsSpan=u,n=new WeakMap,o=new WeakMap;class h{constructor(e,t,r=null){this.kind=e,this.loc=t,this.string=r}serialize(){switch(this.kind){case"Broken":case"NonExistent":return this.kind;case"InternalsSynthetic":return this.string||""}}wrap(){return new l(this)}asString(){return this.string||""}locDidUpdate({start:e,end:t}){void 0!==e&&(this.loc.start=e),void 0!==t&&(this.loc.end=t)}getModule(){return"an unknown module"}getStart(){return new M.InvisiblePosition(this.kind,this.loc.start)}getEnd(){return new M.InvisiblePosition(this.kind,this.loc.end)}toCharPosSpan(){return this}toHbsSpan(){return null}toHbsLoc(){return B.BROKEN_LOCATION}}const p=(0,I.match)((e=>e.when("HbsPosition","HbsPosition",((e,t)=>new u(e.source,{start:e,end:t}).wrap())).when("CharPosition","CharPosition",((e,t)=>new c(e.source,{start:e,end:t}).wrap())).when("CharPosition","HbsPosition",((e,t)=>{let r=t.toCharPos();return null===r?new h("Broken",B.BROKEN_LOCATION).wrap():p(e,r)})).when("HbsPosition","CharPosition",((e,t)=>{let r=e.toCharPos();return null===r?new h("Broken",B.BROKEN_LOCATION).wrap():p(r,t)})).when(I.IsInvisible,I.MatchAny,(e=>new h(e.kind,B.BROKEN_LOCATION).wrap())).when(I.MatchAny,I.IsInvisible,((e,t)=>new h(t.kind,B.BROKEN_LOCATION).wrap()))));t.span=p})),q=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"SourceSpan",{enumerable:!0,get:function(){return R.SourceSpan}}),Object.defineProperty(t,"SourceOffset",{enumerable:!0,get:function(){return M.SourceOffset}})})),j=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Source=void 0;t.Source=class{constructor(e,t="an unknown module"){this.source=e,this.module=t}check(e){return e>=0&&e<=this.source.length}slice(e,t){return this.source.slice(e,t)}offsetFor(e,t){return q.SourceOffset.forHbsPos(this,{line:e,column:t})}spanFor({start:e,end:t}){return q.SourceSpan.forHbsLoc(this,{start:{line:e.line,column:e.column},end:{line:t.line,column:t.column}})}hbsPosFor(e){let t=0,r=0;if(e>this.source.length)return null;for(;;){let n=this.source.indexOf("\n",r);if(e<=n||-1===n)return{line:t+1,column:e-r};t+=1,r=n+1}}charPosFor(e){let{line:t,column:r}=e,n=this.source.length,o=0,a=0;for(;;){if(a>=n)return n;let e=this.source.indexOf("\n",a);if(-1===e&&(e=this.source.length),o===t-1)return a+r>e?e:(i.DEBUG&&this.hbsPosFor(a+r),a+r);if(-1===e)return 0;o+=1,a=e+1}}}})),H=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.PathExpressionImplV1=void 0;var r,n=(r=V)&&r.__esModule?r:{default:r};t.PathExpressionImplV1=class{constructor(e,t,r,n){this.original=e,this.loc=n,this.type="PathExpression",this.this=!1,this.data=!1;let o=r.slice();"ThisHead"===t.type?this.this=!0:"AtHead"===t.type?(this.data=!0,o.unshift(t.name.slice(1))):o.unshift(t.name),this.parts=o}get head(){let e;e=this.this?"this":this.data?`@${this.parts[0]}`:this.parts[0];let t=this.loc.collapse("start").sliceStartChars({chars:e.length}).loc;return n.default.head(e,t)}get tail(){return this.this?this.parts:this.parts.slice(1)}}})),V=t((function(e,t){let r;function n(){return r||(r=new j.Source("","(synthetic)")),r}function o(e){switch(e.type){case"AtHead":return{original:e.name,parts:[e.name]};case"ThisHead":return{original:"this",parts:[]};case"VarHead":return{original:e.name,parts:[e.name]}}}function i(e,t){let r,[n,...o]=e.split(".");return r="this"===n?{type:"ThisHead",loc:p(t||null)}:"@"===n[0]?{type:"AtHead",name:n,loc:p(t||null)}:{type:"VarHead",name:n,loc:p(t||null)},{head:r,tail:o}}function a(e){return{type:"ThisHead",loc:p(e||null)}}function s(e,t){return{type:"AtHead",name:e,loc:p(t||null)}}function l(e,t){return{type:"VarHead",name:e,loc:p(t||null)}}function c(e,t){if("string"!=typeof e){if("type"in e)return e;{let{head:r,tail:n}=i(e.head,q.SourceSpan.broken()),{original:a}=o(r);return new H.PathExpressionImplV1([a,...n].join("."),r,n,p(t||null))}}let{head:r,tail:n}=i(e,q.SourceSpan.broken());return new H.PathExpressionImplV1(e,r,n,p(t||null))}function u(e,t,r){return{type:e,value:t,original:t,loc:p(r||null)}}function h(e,t){return{type:"Hash",pairs:e||[],loc:p(t||null)}}function p(...e){if(1===e.length){let t=e[0];return t&&"object"==typeof t?q.SourceSpan.forHbsLoc(n(),t):q.SourceSpan.forHbsLoc(n(),B.SYNTHETIC_LOCATION)}{let[t,r,o,i,a]=e,s=a?new j.Source("",a):n();return q.SourceSpan.forHbsLoc(s,{start:{line:t,column:r},end:{line:o,column:i}})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var d={mustache:function(e,t,r,n,o,i){return"string"==typeof e&&(e=c(e)),{type:"MustacheStatement",path:e,params:t||[],hash:r||h([]),escaped:!n,trusting:!!n,loc:p(o||null),strip:i||{open:!1,close:!1}}},block:function(e,t,r,n,o,i,a,s,l){let u,d;return u="Template"===n.type?(0,_.assign)({},n,{type:"Block"}):n,d=null!=o&&"Template"===o.type?(0,_.assign)({},o,{type:"Block"}):o,{type:"BlockStatement",path:c(e),params:t||[],hash:r||h([]),program:u||null,inverse:d||null,loc:p(i||null),openStrip:a||{open:!1,close:!1},inverseStrip:s||{open:!1,close:!1},closeStrip:l||{open:!1,close:!1}}},partial:function(e,t,r,n,o){return{type:"PartialStatement",name:e,params:t||[],hash:r||h([]),indent:n||"",strip:{open:!1,close:!1},loc:p(o||null)}},comment:function(e,t){return{type:"CommentStatement",value:e,loc:p(t||null)}},mustacheComment:function(e,t){return{type:"MustacheCommentStatement",value:e,loc:p(t||null)}},element:function(e,t){let r,{attrs:n,blockParams:o,modifiers:i,comments:a,children:s,loc:l}=t,c=!1;return"object"==typeof e?(c=e.selfClosing,r=e.name):"/"===e.slice(-1)?(r=e.slice(0,-1),c=!0):r=e,{type:"ElementNode",tag:r,selfClosing:c,attributes:n||[],blockParams:o||[],modifiers:i||[],comments:a||[],children:s||[],loc:p(l||null)}},elementModifier:function(e,t,r,n){return{type:"ElementModifierStatement",path:c(e),params:t||[],hash:r||h([]),loc:p(n||null)}},attr:function(e,t,r){return{type:"AttrNode",name:e,value:t,loc:p(r||null)}},text:function(e,t){return{type:"TextNode",chars:e||"",loc:p(t||null)}},sexpr:function(e,t,r,n){return{type:"SubExpression",path:c(e),params:t||[],hash:r||h([]),loc:p(n||null)}},concat:function(e,t){if(!(0,_.isPresent)(e))throw new Error("b.concat requires at least one part");return{type:"ConcatStatement",parts:e||[],loc:p(t||null)}},hash:h,pair:function(e,t,r){return{type:"HashPair",key:e,value:t,loc:p(r||null)}},literal:u,program:function(e,t,r){return{type:"Template",body:e||[],blockParams:t||[],loc:p(r||null)}},blockItself:function(e,t,r=!1,n){return{type:"Block",body:e||[],blockParams:t||[],chained:r,loc:p(n||null)}},template:function(e,t,r){return{type:"Template",body:e||[],blockParams:t||[],loc:p(r||null)}},loc:p,pos:function(e,t){return{line:e,column:t}},path:c,fullPath:function(e,t,r){let{original:n,parts:i}=o(e),a=[...n,...[...i,...t]].join(".");return new H.PathExpressionImplV1(a,e,t,p(r||null))},head:function(e,t){return"@"===e[0]?s(e,t):"this"===e?a(t):l(e,t)},at:s,var:l,this:a,blockName:function(e,t){return{type:"NamedBlockName",name:e,loc:p(t||null)}},string:f("StringLiteral"),boolean:f("BooleanLiteral"),number:f("NumberLiteral"),undefined:()=>u("UndefinedLiteral",void 0),null:()=>u("NullLiteral",null)};function f(e){return function(t,r){return u(e,t,r)}}t.default=d})),U=Object.defineProperty({},"__esModule",{value:!0}),$=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(U).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return U[e]}})}))})),z=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.loadResolution=function(e){if("string"==typeof e)switch(e){case"Loose":return o.fallback();case"Strict":return n}switch(e[0]){case"ambiguous":switch(e[1]){case"Append":return o.append({invoke:!1});case"Attr":return o.attr();case"Invoke":return o.append({invoke:!0})}case"ns":return o.namespaced(e[1])}},t.ARGUMENT_RESOLUTION=t.LooseModeResolution=t.STRICT_RESOLUTION=t.StrictResolution=void 0;class r{constructor(){this.isAngleBracket=!1}resolution(){return 31}serialize(){return"Strict"}}t.StrictResolution=r;const n=new r;t.STRICT_RESOLUTION=n;class o{constructor(e,t=!1){this.ambiguity=e,this.isAngleBracket=t}static namespaced(e,t=!1){return new o({namespaces:[e],fallback:!1},t)}static fallback(){return new o({namespaces:[],fallback:!0})}static append({invoke:e}){return new o({namespaces:["Component","Helper"],fallback:!e})}static trustingAppend({invoke:e}){return new o({namespaces:["Helper"],fallback:!e})}static attr(){return new o({namespaces:["Helper"],fallback:!0})}resolution(){if(0===this.ambiguity.namespaces.length)return 33;if(1!==this.ambiguity.namespaces.length)return this.ambiguity.fallback?34:35;if(this.ambiguity.fallback)return 36;switch(this.ambiguity.namespaces[0]){case"Helper":return 37;case"Modifier":return 38;case"Component":return 39}}serialize(){return 0===this.ambiguity.namespaces.length?"Loose":1===this.ambiguity.namespaces.length?this.ambiguity.fallback?["ambiguous","Attr"]:["ns",this.ambiguity.namespaces[0]]:this.ambiguity.fallback?["ambiguous","Append"]:["ambiguous","Invoke"]}}t.LooseModeResolution=o;const i=o.fallback();t.ARGUMENT_RESOLUTION=i})),F=function(e){if(void 0!==e){const t=e;return{fields:()=>class{constructor(e){this.type=t,this.loc=e.loc,G(e,this)}}}}return{fields:()=>class{constructor(e){this.loc=e.loc,G(e,this)}}}};function G(e,t){for(let n of(r=e,Object.keys(r)))t[n]=e[n];var r}var K=Object.defineProperty({node:F},"__esModule",{value:!0}),W=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.NamedArgument=t.NamedArguments=t.PositionalArguments=t.Args=void 0;class r extends((0,K.node)().fields()){static empty(e){return new r({loc:e,positional:n.empty(e),named:o.empty(e)})}static named(e){return new r({loc:e.loc,positional:n.empty(e.loc.collapse("end")),named:e})}nth(e){return this.positional.nth(e)}get(e){return this.named.get(e)}isEmpty(){return this.positional.isEmpty()&&this.named.isEmpty()}}t.Args=r;class n extends((0,K.node)().fields()){static empty(e){return new n({loc:e,exprs:[]})}get size(){return this.exprs.length}nth(e){return this.exprs[e]||null}isEmpty(){return 0===this.exprs.length}}t.PositionalArguments=n;class o extends((0,K.node)().fields()){static empty(e){return new o({loc:e,entries:[]})}get size(){return this.entries.length}get(e){let t=this.entries.filter((t=>t.name.chars===e))[0];return t?t.value:null}isEmpty(){return 0===this.entries.length}}t.NamedArguments=o;t.NamedArgument=class{constructor(e){this.loc=e.name.loc.extend(e.value.loc),this.name=e.name,this.value=e.value}}})),Y=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.ElementModifier=t.ComponentArg=t.SplatAttr=t.HtmlAttr=void 0;class r extends((0,K.node)("HtmlAttr").fields()){}t.HtmlAttr=r;class n extends((0,K.node)("SplatAttr").fields()){}t.SplatAttr=n;class o extends((0,K.node)().fields()){toNamedArgument(){return new W.NamedArgument({name:this.name,value:this.value})}}t.ComponentArg=o;class i extends((0,K.node)("ElementModifier").fields()){}t.ElementModifier=i})),Q=Object.defineProperty({},"__esModule",{value:!0}),J=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.loc=i,t.hasSpan=a,t.maybeLoc=function(e,t){return a(e)?i(e):t},t.SpanList=void 0;var r,n=function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};class o{constructor(e=[]){r.set(this,void 0),function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");t.set(e,r)}(this,r,e)}static range(e,t=q.SourceSpan.NON_EXISTENT){return new o(e.map(i)).getRangeOffset(t)}add(e){n(this,r).push(e)}getRangeOffset(e){if(0===n(this,r).length)return e;{let e=n(this,r)[0],t=n(this,r)[n(this,r).length-1];return e.extend(t)}}}function i(e){if(Array.isArray(e)){let t=e[0],r=e[e.length-1];return i(t).extend(i(r))}return e instanceof q.SourceSpan?e:e.loc}function a(e){return!Array.isArray(e)||0!==e.length}t.SpanList=o,r=new WeakMap})),X=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.SimpleElement=t.InvokeComponent=t.InvokeBlock=t.AppendContent=t.HtmlComment=t.HtmlText=t.GlimmerComment=void 0;class r extends((0,K.node)("GlimmerComment").fields()){}t.GlimmerComment=r;class n extends((0,K.node)("HtmlText").fields()){}t.HtmlText=n;class o extends((0,K.node)("HtmlComment").fields()){}t.HtmlComment=o;class i extends((0,K.node)("AppendContent").fields()){get callee(){return"Call"===this.value.type?this.value.callee:this.value}get args(){return"Call"===this.value.type?this.value.args:W.Args.empty(this.value.loc.collapse("end"))}}t.AppendContent=i;class a extends((0,K.node)("InvokeBlock").fields()){}t.InvokeBlock=a;class s extends((0,K.node)("InvokeComponent").fields()){get args(){let e=this.componentArgs.map((e=>e.toNamedArgument()));return W.Args.named(new W.NamedArguments({loc:J.SpanList.range(e,this.callee.loc.collapse("end")),entries:e}))}}t.InvokeComponent=s;class l extends((0,K.node)("SimpleElement").fields()){get args(){let e=this.componentArgs.map((e=>e.toNamedArgument()));return W.Args.named(new W.NamedArguments({loc:J.SpanList.range(e,this.tag.loc.collapse("end")),entries:e}))}}t.SimpleElement=l})),Z=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isLiteral=function(e,t){return"Literal"===e.type&&(void 0===t||("null"===t?null===e.value:typeof e.value===t))},t.InterpolateExpression=t.DeprecatedCallExpression=t.CallExpression=t.PathExpression=t.LiteralExpression=void 0;class r extends((0,K.node)("Literal").fields()){toSlice(){return new D.SourceSlice({loc:this.loc,chars:this.value})}}t.LiteralExpression=r;class n extends((0,K.node)("Path").fields()){}t.PathExpression=n;class o extends((0,K.node)("Call").fields()){}t.CallExpression=o;class i extends((0,K.node)("DeprecatedCall").fields()){}t.DeprecatedCallExpression=i;class a extends((0,K.node)("Interpolate").fields()){}t.InterpolateExpression=a})),ee=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.FreeVarReference=t.LocalVarReference=t.ArgReference=t.ThisReference=void 0;class r extends((0,K.node)("This").fields()){}t.ThisReference=r;class n extends((0,K.node)("Arg").fields()){}t.ArgReference=n;class o extends((0,K.node)("Local").fields()){}t.LocalVarReference=o;class i extends((0,K.node)("Free").fields()){}t.FreeVarReference=i})),te=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.NamedBlock=t.NamedBlocks=t.Block=t.Template=void 0;class r extends((0,K.node)().fields()){}t.Template=r;class n extends((0,K.node)().fields()){}t.Block=n;class o extends((0,K.node)().fields()){get(e){return this.blocks.filter((t=>t.name.chars===e))[0]||null}}t.NamedBlocks=o;class i extends((0,K.node)().fields()){get args(){let e=this.componentArgs.map((e=>e.toNamedArgument()));return W.Args.named(new W.NamedArguments({loc:J.SpanList.range(e,this.name.loc.collapse("end")),entries:e}))}}t.NamedBlock=i})),re=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(z).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return z[e]}})})),Object.keys(K).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return K[e]}})})),Object.keys(W).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return W[e]}})})),Object.keys(Y).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return Y[e]}})})),Object.keys(Q).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return Q[e]}})})),Object.keys(X).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return X[e]}})})),Object.keys(Z).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return Z[e]}})})),Object.keys(ee).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return ee[e]}})})),Object.keys(te).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return te[e]}})}))})),ne=function(e){return e&&e.Math==Math&&e},oe=ne("object"==typeof globalThis&&globalThis)||ne("object"==typeof window&&window)||ne("object"==typeof self&&self)||ne("object"==typeof e&&e)||function(){return this}()||Function("return this")(),ie=function(e){try{return!!e()}catch(e){return!0}},ae=!ie((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),se={}.propertyIsEnumerable,le=Object.getOwnPropertyDescriptor,ce={f:le&&!se.call({1:2},1)?function(e){var t=le(this,e);return!!t&&t.enumerable}:se},ue=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},he={}.toString,pe="".split,de=ie((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==function(e){return he.call(e).slice(8,-1)}(e)?pe.call(e,""):Object(e)}:Object,fe=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},me=function(e){return de(fe(e))},ge=function(e){return"object"==typeof e?null!==e:"function"==typeof e},be=function(e,t){if(!ge(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!ge(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!ge(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!ge(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")},ye=function(e){return Object(fe(e))},ve={}.hasOwnProperty,Se=Object.hasOwn||function(e,t){return ve.call(ye(e),t)},ke=oe.document,we=ge(ke)&&ge(ke.createElement),Ee=!ae&&!ie((function(){return 7!=Object.defineProperty((e="div",we?ke.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),Pe=Object.getOwnPropertyDescriptor,Te={f:ae?Pe:function(e,t){if(e=me(e),t=be(t,!0),Ee)try{return Pe(e,t)}catch(e){}if(Se(e,t))return ue(!ce.f.call(e,t),e[t])}},xe=function(e){if(!ge(e))throw TypeError(String(e)+" is not an object");return e},Ne=Object.defineProperty,Oe={f:ae?Ne:function(e,t,r){if(xe(e),t=be(t,!0),xe(r),Ee)try{return Ne(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},Ae=ae?function(e,t,r){return Oe.f(e,t,ue(1,r))}:function(e,t,r){return e[t]=r,e},Ce=function(e,t){try{Ae(oe,e,t)}catch(r){oe[e]=t}return t},Le=oe["__core-js_shared__"]||Ce("__core-js_shared__",{}),_e=Function.toString;"function"!=typeof Le.inspectSource&&(Le.inspectSource=function(e){return _e.call(e)});var Be,De,Ie,Me,Re=Le.inspectSource,qe=oe.WeakMap,je="function"==typeof qe&&/native code/.test(Re(qe)),He=t((function(e){(e.exports=function(e,t){return Le[e]||(Le[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),Ve=0,Ue=Math.random(),$e=He("keys"),ze={},Fe=oe.WeakMap;if(je||Le.state){var Ge=Le.state||(Le.state=new Fe),Ke=Ge.get,We=Ge.has,Ye=Ge.set;Be=function(e,t){if(We.call(Ge,e))throw new TypeError("Object already initialized");return t.facade=e,Ye.call(Ge,e,t),t},De=function(e){return Ke.call(Ge,e)||{}},Ie=function(e){return We.call(Ge,e)}}else{var Qe=$e[Me="state"]||($e[Me]=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Ve+Ue).toString(36)}(Me));ze[Qe]=!0,Be=function(e,t){if(Se(e,Qe))throw new TypeError("Object already initialized");return t.facade=e,Ae(e,Qe,t),t},De=function(e){return Se(e,Qe)?e[Qe]:{}},Ie=function(e){return Se(e,Qe)}}var Je,Xe,Ze={set:Be,get:De,has:Ie,enforce:function(e){return Ie(e)?De(e):Be(e,{})},getterFor:function(e){return function(t){var r;if(!ge(t)||(r=De(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}},et=t((function(e){var t=Ze.get,r=Ze.enforce,n=String(String).split("String");(e.exports=function(e,t,o,i){var a,s=!!i&&!!i.unsafe,l=!!i&&!!i.enumerable,c=!!i&&!!i.noTargetGet;"function"==typeof o&&("string"!=typeof t||Se(o,"name")||Ae(o,"name",t),(a=r(o)).source||(a.source=n.join("string"==typeof t?t:""))),e!==oe?(s?!c&&e[t]&&(l=!0):delete e[t],l?e[t]=o:Ae(e,t,o)):l?e[t]=o:Ce(t,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||Re(this)}))})),tt=oe,rt=function(e){return"function"==typeof e?e:void 0},nt=function(e,t){return arguments.length<2?rt(tt[e])||rt(oe[e]):tt[e]&&tt[e][t]||oe[e]&&oe[e][t]},ot=Math.ceil,it=Math.floor,at=function(e){return isNaN(e=+e)?0:(e>0?it:ot)(e)},st=Math.min,lt=function(e){return e>0?st(at(e),9007199254740991):0},ct=Math.max,ut=Math.min,ht=function(e){return function(t,r,n){var o,i=me(t),a=lt(i.length),s=function(e,t){var r=at(e);return r<0?ct(r+t,0):ut(r,t)}(n,a);if(e&&r!=r){for(;a>s;)if((o=i[s++])!=o)return!0}else for(;a>s;s++)if((e||s in i)&&i[s]===r)return e||s||0;return!e&&-1}},pt={includes:ht(!0),indexOf:ht(!1)}.indexOf,dt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),ft={f:Object.getOwnPropertyNames||function(e){return function(e,t){var r,n=me(e),o=0,i=[];for(r in n)!Se(ze,r)&&Se(n,r)&&i.push(r);for(;t.length>o;)Se(n,r=t[o++])&&(~pt(i,r)||i.push(r));return i}(e,dt)}},mt={f:Object.getOwnPropertySymbols},gt=nt("Reflect","ownKeys")||function(e){var t=ft.f(xe(e)),r=mt.f;return r?t.concat(r(e)):t},bt=function(e,t){for(var r=gt(t),n=Oe.f,o=Te.f,i=0;i0;)e[n]=e[--n];n!==i++&&(e[n]=r)}return e},At=function(e,t,r){for(var n=e.length,o=t.length,i=0,a=0,s=[];i=74)&&(Je=Lt.match(/Chrome\/(\d+)/))&&(Xe=Je[1]);var qt,jt,Ht=Xe&&+Xe,Vt=Lt.match(/AppleWebKit\/(\d+)\./),Ut=!!Vt&&+Vt[1],$t=[],zt=$t.sort,Ft=ie((function(){$t.sort(void 0)})),Gt=ie((function(){$t.sort(null)})),Kt=!!(jt=[]["sort"])&&ie((function(){jt.call(null,qt||function(){throw 1},1)})),Wt=!ie((function(){if(Ht)return Ht<70;if(!(Bt&&Bt>3)){if(Dt)return!0;if(Ut)return Ut<603;var e,t,r,n,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)$t.push({k:t+n,v:r})}for($t.sort((function(e,t){return t.v-e.v})),n=0;n<$t.length;n++)t=$t[n].k.charAt(0),o.charAt(o.length-1)!==t&&(o+=t);return"DGBEFHACIJK"!==o}}));!function(e,t){var r,n,o,i,a,s=e.target,l=e.global,c=e.stat;if(r=l?oe:c?oe[s]||Ce(s,{}):(oe[s]||{}).prototype)for(n in t){if(i=t[n],o=e.noTargetGet?(a=Tt(r,n))&&a.value:r[n],!Pt(l?n:s+(c?".":"#")+n,e.forced)&&void 0!==o){if(typeof i==typeof o)continue;bt(i,o)}(e.sham||o&&o.sham)&&Ae(i,"sham",!0),et(r,n,i,e)}}({target:"Array",proto:!0,forced:Ft||!Gt||!Kt||!Wt},{sort:function(e){void 0!==e&&function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function")}(e);var t=ye(this);if(Wt)return void 0===e?zt.call(t):zt.call(t,e);var r,n,o=[],i=lt(t.length);for(n=0;nString(r)?1:-1}}(e))).length,n=0;n]/,tr=new RegExp(er.source,"g");function rr(e){switch(e.charCodeAt(0)){case 160:return" ";case 34:return""";case 38:return"&";default:return e}}function nr(e){switch(e.charCodeAt(0)){case 160:return" ";case 38:return"&";case 60:return"<";case 62:return">";default:return e}}var or=Object.defineProperty({escapeAttrValue:Yt,escapeText:Qt,sortByLoc:Jt},"__esModule",{value:!0}),ir=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.voidMap=void 0;const r=Object.create(null);t.voidMap=r;"area base br col command embed hr img input keygen link meta param source track wbr".split(" ").forEach((e=>{r[e]=!0}));const n=/\S/;t.default=class{constructor(e){this.buffer="",this.options=e}handledByOverride(e,t=!1){if(void 0!==this.options.override){let r=this.options.override(e,this.options);if("string"==typeof r)return t&&""!==r&&n.test(r[0])&&(r=` ${r}`),this.buffer+=r,!0}return!1}Node(e){switch(e.type){case"MustacheStatement":case"BlockStatement":case"PartialStatement":case"MustacheCommentStatement":case"CommentStatement":case"TextNode":case"ElementNode":case"AttrNode":case"Block":case"Template":return this.TopLevelStatement(e);case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":case"PathExpression":case"SubExpression":return this.Expression(e);case"Program":return this.Block(e);case"ConcatStatement":return this.ConcatStatement(e);case"Hash":return this.Hash(e);case"HashPair":return this.HashPair(e);case"ElementModifierStatement":return this.ElementModifierStatement(e)}}Expression(e){switch(e.type){case"StringLiteral":case"BooleanLiteral":case"NumberLiteral":case"UndefinedLiteral":case"NullLiteral":return this.Literal(e);case"PathExpression":return this.PathExpression(e);case"SubExpression":return this.SubExpression(e)}}Literal(e){switch(e.type){case"StringLiteral":return this.StringLiteral(e);case"BooleanLiteral":return this.BooleanLiteral(e);case"NumberLiteral":return this.NumberLiteral(e);case"UndefinedLiteral":return this.UndefinedLiteral(e);case"NullLiteral":return this.NullLiteral(e)}}TopLevelStatement(e){switch(e.type){case"MustacheStatement":return this.MustacheStatement(e);case"BlockStatement":return this.BlockStatement(e);case"PartialStatement":return this.PartialStatement(e);case"MustacheCommentStatement":return this.MustacheCommentStatement(e);case"CommentStatement":return this.CommentStatement(e);case"TextNode":return this.TextNode(e);case"ElementNode":return this.ElementNode(e);case"Block":case"Template":return this.Block(e);case"AttrNode":return this.AttrNode(e)}}Block(e){if(e.chained){e.body[0].chained=!0}this.handledByOverride(e)||this.TopLevelStatements(e.body)}TopLevelStatements(e){e.forEach((e=>this.TopLevelStatement(e)))}ElementNode(e){this.handledByOverride(e)||(this.OpenElementNode(e),this.TopLevelStatements(e.children),this.CloseElementNode(e))}OpenElementNode(e){this.buffer+=`<${e.tag}`;const t=[...e.attributes,...e.modifiers,...e.comments].sort(or.sortByLoc);for(const e of t)switch(this.buffer+=" ",e.type){case"AttrNode":this.AttrNode(e);break;case"ElementModifierStatement":this.ElementModifierStatement(e);break;case"MustacheCommentStatement":this.MustacheCommentStatement(e)}e.blockParams.length&&this.BlockParams(e.blockParams),e.selfClosing&&(this.buffer+=" /"),this.buffer+=">"}CloseElementNode(e){e.selfClosing||r[e.tag.toLowerCase()]||(this.buffer+=``)}AttrNode(e){if(this.handledByOverride(e))return;let{name:t,value:r}=e;this.buffer+=t,("TextNode"!==r.type||r.chars.length>0)&&(this.buffer+="=",this.AttrNodeValue(r))}AttrNodeValue(e){"TextNode"===e.type?(this.buffer+='"',this.TextNode(e,!0),this.buffer+='"'):this.Node(e)}TextNode(e,t){this.handledByOverride(e)||("raw"===this.options.entityEncoding?this.buffer+=e.chars:this.buffer+=t?(0,or.escapeAttrValue)(e.chars):(0,or.escapeText)(e.chars))}MustacheStatement(e){this.handledByOverride(e)||(this.buffer+=e.escaped?"{{":"{{{",e.strip.open&&(this.buffer+="~"),this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.strip.close&&(this.buffer+="~"),this.buffer+=e.escaped?"}}":"}}}")}BlockStatement(e){this.handledByOverride(e)||(e.chained?(this.buffer+=e.inverseStrip.open?"{{~":"{{",this.buffer+="else "):this.buffer+=e.openStrip.open?"{{~#":"{{#",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),e.program.blockParams.length&&this.BlockParams(e.program.blockParams),e.chained?this.buffer+=e.inverseStrip.close?"~}}":"}}":this.buffer+=e.openStrip.close?"~}}":"}}",this.Block(e.program),e.inverse&&(e.inverse.chained||(this.buffer+=e.inverseStrip.open?"{{~":"{{",this.buffer+="else",this.buffer+=e.inverseStrip.close?"~}}":"}}"),this.Block(e.inverse)),e.chained||(this.buffer+=e.closeStrip.open?"{{~/":"{{/",this.Expression(e.path),this.buffer+=e.closeStrip.close?"~}}":"}}"))}BlockParams(e){this.buffer+=` as |${e.join(" ")}|`}PartialStatement(e){this.handledByOverride(e)||(this.buffer+="{{>",this.Expression(e.name),this.Params(e.params),this.Hash(e.hash),this.buffer+="}}")}ConcatStatement(e){this.handledByOverride(e)||(this.buffer+='"',e.parts.forEach((e=>{"TextNode"===e.type?this.TextNode(e,!0):this.Node(e)})),this.buffer+='"')}MustacheCommentStatement(e){this.handledByOverride(e)||(this.buffer+=`{{!--${e.value}--}}`)}ElementModifierStatement(e){this.handledByOverride(e)||(this.buffer+="{{",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+="}}")}CommentStatement(e){this.handledByOverride(e)||(this.buffer+=`\x3c!--${e.value}--\x3e`)}PathExpression(e){this.handledByOverride(e)||(this.buffer+=e.original)}SubExpression(e){this.handledByOverride(e)||(this.buffer+="(",this.Expression(e.path),this.Params(e.params),this.Hash(e.hash),this.buffer+=")")}Params(e){e.length&&e.forEach((e=>{this.buffer+=" ",this.Expression(e)}))}Hash(e){this.handledByOverride(e,!0)||e.pairs.forEach((e=>{this.buffer+=" ",this.HashPair(e)}))}HashPair(e){this.handledByOverride(e)||(this.buffer+=e.key,this.buffer+="=",this.Node(e.value))}StringLiteral(e){this.handledByOverride(e)||(this.buffer+=JSON.stringify(e.value))}BooleanLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}NumberLiteral(e){this.handledByOverride(e)||(this.buffer+=e.value)}UndefinedLiteral(e){this.handledByOverride(e)||(this.buffer+="undefined")}NullLiteral(e){this.handledByOverride(e)||(this.buffer+="null")}print(e){let{options:t}=this;if(t.override){let r=t.override(e,t);if(void 0!==r)return r}return this.buffer="",this.Node(e),this.buffer}}})),ar=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function sr(e,t){var r,n,o,i,a=t&&t.loc;a&&(r=a.start.line,n=a.end.line,o=a.start.column,i=a.end.column,e+=" - "+r+":"+o);for(var s=Error.prototype.constructor.call(this,e),l=0;lc&&P.push("'"+this.terminals_[k]+"'");N=p.showPosition?"Parse error on line "+(s+1)+":\n"+p.showPosition()+"\nExpecting "+P.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(s+1)+": Unexpected "+(b==u?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(N,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:m,expected:P})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+y+", token: "+b);switch(v[0]){case 1:r.push(b),n.push(p.yytext),o.push(p.yylloc),r.push(v[1]),b=null,l=p.yyleng,a=p.yytext,s=p.yylineno,m=p.yylloc;break;case 2:if(w=this.productions_[v[1]][1],x.$=n[n.length-w],x._$={first_line:o[o.length-(w||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(w||1)].first_column,last_column:o[o.length-1].last_column},g&&(x._$.range=[o[o.length-(w||1)].range[0],o[o.length-1].range[1]]),void 0!==(S=this.performAction.apply(x,[a,l,s,d.yy,v[1],n,o].concat(h))))return S;w&&(r=r.slice(0,-1*w*2),n=n.slice(0,-1*w),o=o.slice(0,-1*w)),r.push(this.productions_[v[1]][0]),n.push(x.$),o.push(x._$),E=i[r[r.length-2]][r[r.length-1]],r.push(E);break;case 3:return!0}}return!0}},I={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,r=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===n.length?this.yylloc.first_column:0)+n[n.length-r.length].length-r[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var r,n,o;if(this.options.backtrack_lexer&&(o={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(o.yylloc.range=this.yylloc.range.slice(0))),(n=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],r=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var i in o)this[i]=o[i];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),i=0;it[0].length)){if(t=r,n=i,this.options.backtrack_lexer){if(!1!==(e=this.test_match(r,o[i])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,o[n]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,r,n){function o(e,r){return t.yytext=t.yytext.substring(e,t.yyleng-r+e)}switch(r){case 0:if("\\\\"===t.yytext.slice(-2)?(o(0,1),this.begin("mu")):"\\"===t.yytext.slice(-1)?(o(0,1),this.begin("emu")):this.begin("mu"),t.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(o(5,9),18);case 5:return 15;case 6:return this.popState(),14;case 7:return 64;case 8:return 67;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 56;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 52;case 20:return 48;case 21:this.unput(t.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 72;case 25:case 26:return 71;case 27:return 86;case 28:break;case 29:return this.popState(),55;case 30:return this.popState(),33;case 31:return t.yytext=o(1,2).replace(/\\"/g,'"'),79;case 32:return t.yytext=o(1,2).replace(/\\'/g,"'"),79;case 33:return 84;case 34:case 35:return 81;case 36:return 82;case 37:return 83;case 38:return 80;case 39:return 74;case 40:return 76;case 41:return 71;case 42:return t.yytext=t.yytext.replace(/\\([\\\]])/g,"$1"),71;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};function M(){this.yy={}}return D.lexer=I,M.prototype=D,D.Parser=M,new M}();function yr(){this.padding=0}function vr(e,t){if(t=t.path?t.path.original:t,e.path.original!==t){var r={loc:e.path.loc};throw new sr(e.path.original+" doesn't match "+t,r)}}function Sr(e,t){this.source=e,this.start={line:t.first_line,column:t.first_column},this.end={line:t.last_line,column:t.last_column}}yr.prototype=new lr,yr.prototype.pad=function(e){for(var t="",r=0,n=this.padding;r "+t+" }}")},yr.prototype.PartialBlockStatement=function(e){var t="PARTIAL BLOCK:"+e.name.original;return e.params[0]&&(t+=" "+this.accept(e.params[0])),e.hash&&(t+=" "+this.accept(e.hash)),t+=" "+this.pad("PROGRAM:"),this.padding++,t+=this.accept(e.program),this.padding--,this.pad("{{> "+t+" }}")},yr.prototype.ContentStatement=function(e){return this.pad("CONTENT[ '"+e.value+"' ]")},yr.prototype.CommentStatement=function(e){return this.pad("{{! '"+e.value+"' }}")},yr.prototype.SubExpression=function(e){for(var t,r=e.params,n=[],o=0,i=r.length;o0)throw new sr("Invalid path: "+n,{loc:r});".."===l&&i++}}return{type:"PathExpression",data:e,depth:i,parts:o,original:n,loc:r}},prepareMustache:function(e,t,r,n,o,i){var a=n.charAt(3)||n.charAt(2),s="{"!==a&&"&"!==a;return{type:/\*/.test(n)?"Decorator":"MustacheStatement",path:e,params:t,hash:r,escaped:s,strip:o,loc:this.locInfo(i)}},prepareRawBlock:function(e,t,r,n){vr(e,r);var o={type:"Program",body:t,strip:{},loc:n=this.locInfo(n)};return{type:"BlockStatement",path:e.path,params:e.params,hash:e.hash,program:o,openStrip:{},inverseStrip:{},closeStrip:{},loc:n}},prepareBlock:function(e,t,r,n,o,i){n&&n.path&&vr(e,n);var a,s,l=/\*/.test(e.open);if(t.blockParams=e.blockParams,r){if(l)throw new sr("Unexpected inverse block on decorator",r);r.chain&&(r.program.body[0].closeStrip=n.strip),s=r.strip,a=r.program}return o&&(o=a,a=t,t=o),{type:l?"DecoratorBlock":"BlockStatement",path:e.path,params:e.params,hash:e.hash,program:t,inverse:a,openStrip:e.strip,inverseStrip:s,closeStrip:n&&n.strip,loc:this.locInfo(i)}},prepareProgram:function(e,t){if(!t&&e.length){var r=e[0].loc,n=e[e.length-1].loc;r&&n&&(t={source:r.source,start:{line:r.start.line,column:r.start.column},end:{line:n.end.line,column:n.end.column}})}return{type:"Program",body:e,strip:{},loc:t}},preparePartialBlock:function(e,t,r,n){return vr(e,r),{type:"PartialBlockStatement",name:e.path,params:e.params,hash:e.hash,program:t,openStrip:e.strip,closeStrip:r&&r.strip,loc:this.locInfo(n)}}}),wr={};for(var Er in kr)Object.prototype.hasOwnProperty.call(kr,Er)&&(wr[Er]=kr[Er]);function Pr(e,t){return"Program"===e.type?e:(br.yy=wr,br.yy.locInfo=function(e){return new Sr(t&&t.srcName,e)},br.parse(e))}var Tr=Object.freeze({__proto__:null,Visitor:lr,WhitespaceControl:pr,parser:br,Exception:sr,print:function(e){return(new yr).accept(e)},PrintVisitor:yr,parse:function(e,t){var r=Pr(e,t);return new pr(t).accept(r)},parseWithoutProcessing:Pr}),xr={Aacute:"\xc1",aacute:"\xe1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223e",acd:"\u223f",acE:"\u223e\u0333",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",Acy:"\u0410",acy:"\u0430",AElig:"\xc6",aelig:"\xe6",af:"\u2061",Afr:"\ud835\udd04",afr:"\ud835\udd1e",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03b1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2a3f",amp:"&",AMP:"&",andand:"\u2a55",And:"\u2a53",and:"\u2227",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angmsd:"\u2221",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",Aogon:"\u0104",aogon:"\u0105",Aopf:"\ud835\udd38",aopf:"\ud835\udd52",apacir:"\u2a6f",ap:"\u2248",apE:"\u2a70",ape:"\u224a",apid:"\u224b",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224a",Aring:"\xc5",aring:"\xe5",Ascr:"\ud835\udc9c",ascr:"\ud835\udcb6",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224d",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",Backslash:"\u2216",Barv:"\u2ae7",barvee:"\u22bd",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",Bernoullis:"\u212c",Beta:"\u0392",beta:"\u03b2",beth:"\u2136",between:"\u226c",Bfr:"\ud835\udd05",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bNot:"\u2aed",bnot:"\u2310",Bopf:"\ud835\udd39",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxbox:"\u29c9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250c",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252c",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxul:"\u2518",boxuL:"\u255b",boxUl:"\u255c",boxUL:"\u255d",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255a",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253c",boxvH:"\u256a",boxVh:"\u256b",boxVH:"\u256c",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251c",boxvR:"\u255e",boxVr:"\u255f",boxVR:"\u2560",bprime:"\u2035",breve:"\u02d8",Breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",Bscr:"\u212c",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsolb:"\u29c5",bsol:"\\",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",Bumpeq:"\u224e",bumpeq:"\u224f",Cacute:"\u0106",cacute:"\u0107",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",cap:"\u2229",Cap:"\u22d2",capcup:"\u2a47",capdot:"\u2a40",CapitalDifferentialD:"\u2145",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",Cayleys:"\u212d",ccaps:"\u2a4d",Ccaron:"\u010c",ccaron:"\u010d",Ccedil:"\xc7",ccedil:"\xe7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2a4c",ccupssm:"\u2a50",Cdot:"\u010a",cdot:"\u010b",cedil:"\xb8",Cedilla:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",CenterDot:"\xb7",cfr:"\ud835\udd20",Cfr:"\u212d",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",CircleDot:"\u2299",circledR:"\xae",circledS:"\u24c8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25cb",cirE:"\u29c3",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2a74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",Congruent:"\u2261",conint:"\u222e",Conint:"\u222f",ContourIntegral:"\u222e",copf:"\ud835\udd54",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xa9",COPY:"\xa9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21b5",cross:"\u2717",Cross:"\u2a2f",Cscr:"\ud835\udc9e",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cupbrcap:"\u2a48",cupcap:"\u2a46",CupCap:"\u224d",cup:"\u222a",Cup:"\u22d3",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21a1",dArr:"\u21d3",dash:"\u2010",Dashv:"\u2ae4",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",Dcaron:"\u010e",dcaron:"\u010f",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21ca",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2a77",deg:"\xb0",Del:"\u2207",Delta:"\u0394",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",Dfr:"\ud835\udd07",dfr:"\ud835\udd21",dHar:"\u2965",dharl:"\u21c3",dharr:"\u21c2",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",diam:"\u22c4",diamond:"\u22c4",Diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",DifferentialD:"\u2146",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",Dopf:"\ud835\udd3b",dopf:"\ud835\udd55",Dot:"\xa8",dot:"\u02d9",DotDot:"\u20dc",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21d3",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21bd",DownRightTeeVector:"\u295f",DownRightVectorBar:"\u2957",DownRightVector:"\u21c1",DownTeeArrow:"\u21a7",DownTee:"\u22a4",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",Dscr:"\ud835\udc9f",dscr:"\ud835\udcb9",DScy:"\u0405",dscy:"\u0455",dsol:"\u29f6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",DZcy:"\u040f",dzcy:"\u045f",dzigrarr:"\u27ff",Eacute:"\xc9",eacute:"\xe9",easter:"\u2a6e",Ecaron:"\u011a",ecaron:"\u011b",Ecirc:"\xca",ecirc:"\xea",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042d",ecy:"\u044d",eDDot:"\u2a77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\ud835\udd08",efr:"\ud835\udd22",eg:"\u2a9a",Egrave:"\xc8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",Element:"\u2208",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25fb",emptyv:"\u2205",EmptyVerySmallSquare:"\u25ab",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014a",eng:"\u014b",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\ud835\udd3c",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",Epsilon:"\u0395",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",Equal:"\u2a75",equals:"=",EqualTilde:"\u2242",equest:"\u225f",Equilibrium:"\u21cc",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erarr:"\u2971",erDot:"\u2253",escr:"\u212f",Escr:"\u2130",esdot:"\u2250",Esim:"\u2a73",esim:"\u2242",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",Ffr:"\ud835\udd09",ffr:"\ud835\udd23",filig:"\ufb01",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",Fopf:"\ud835\udd3d",fopf:"\ud835\udd57",forall:"\u2200",ForAll:"\u2200",fork:"\u22d4",forkv:"\u2ad9",Fouriertrf:"\u2131",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",Fscr:"\u2131",gacute:"\u01f5",Gamma:"\u0393",gamma:"\u03b3",Gammad:"\u03dc",gammad:"\u03dd",gap:"\u2a86",Gbreve:"\u011e",gbreve:"\u011f",Gcedil:"\u0122",Gcirc:"\u011c",gcirc:"\u011d",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2a8c",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",gescc:"\u2aa9",ges:"\u2a7e",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",Gfr:"\ud835\udd0a",gfr:"\ud835\udd24",gg:"\u226b",Gg:"\u22d9",ggg:"\u22d9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2aa5",gl:"\u2277",glE:"\u2a92",glj:"\u2aa4",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gnE:"\u2269",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",Gopf:"\ud835\udd3e",gopf:"\ud835\udd58",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gtcc:"\u2aa7",gtcir:"\u2a7a",gt:">",GT:">",Gt:"\u226b",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",harrcir:"\u2948",harr:"\u2194",hArr:"\u21d4",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",Hfr:"\u210c",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",Hopf:"\u210d",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\ud835\udcbd",Hscr:"\u210b",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",Ifr:"\u2111",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",incare:"\u2105",in:"\u2208",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",intcal:"\u22ba",int:"\u222b",Int:"\u222c",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",Iscr:"\u2110",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",Lang:"\u27ea",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",larrb:"\u21e4",larrbfs:"\u291f",larr:"\u2190",Larr:"\u219e",lArr:"\u21d0",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",latail:"\u2919",lAtail:"\u291b",lat:"\u2aab",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lBarr:"\u290e",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27e8",LeftArrowBar:"\u21e4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21d0",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21c3",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTeeArrow:"\u21a4",LeftTee:"\u22a3",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangleBar:"\u29cf",LeftTriangle:"\u22b2",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21bf",LeftVectorBar:"\u2952",LeftVector:"\u21bc",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",lescc:"\u2aa8",les:"\u2a7d",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21c7",ll:"\u226a",Ll:"\u22d8",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoustache:"\u23b0",lmoust:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lnE:"\u2268",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftrightarrow:"\u27f7",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longmapsto:"\u27fc",longrightarrow:"\u27f6",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",Lscr:"\u2112",lsh:"\u21b0",Lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2aa6",ltcir:"\u2a79",lt:"<",LT:"<",Lt:"\u226a",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",midast:"*",midcir:"\u2af0",mid:"\u2223",middot:"\xb7",minusb:"\u229f",minus:"\u2212",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",Mscr:"\u2133",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266e",naturals:"\u2115",natur:"\u266e",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21d7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nharr:"\u21ae",nhArr:"\u21ce",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlarr:"\u219a",nlArr:"\u21cd",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219a",nLeftarrow:"\u21cd",nleftrightarrow:"\u21ae",nLeftrightarrow:"\u21ce",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",nopf:"\ud835\udd5f",Nopf:"\u2115",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangle:"\u22eb",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",nprec:"\u2280",npreceq:"\u2aaf\u0338",npre:"\u2aaf\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219b",nrArr:"\u21cf",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nRightarrow:"\u21cf",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvDash:"\u22ad",nVdash:"\u22ae",nVDash:"\u22af",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21d6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",Ocirc:"\xd4",ocirc:"\xf4",ocir:"\u229a",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",orarr:"\u21bb",Or:"\u2a54",or:"\u2228",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",otimesas:"\u2a36",Otimes:"\u2a37",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",para:"\xb6",parallel:"\u2225",par:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plus:"+",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",popf:"\ud835\udd61",Popf:"\u2119",pound:"\xa3",prap:"\u2ab7",Pr:"\u2abb",pr:"\u227a",prcue:"\u227c",precapprox:"\u2ab7",prec:"\u227a",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",pre:"\u2aaf",prE:"\u2ab3",precsim:"\u227e",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportional:"\u221d",Proportion:"\u2237",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",Qopf:"\u211a",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',QUOT:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",Rang:"\u27eb",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21a0",rArr:"\u21d2",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",rAtail:"\u291c",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rBarr:"\u290f",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",Re:"\u211c",rect:"\u25ad",reg:"\xae",REG:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",Rfr:"\u211c",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrowBar:"\u21e5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21d2",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVectorBar:"\u2955",RightDownVector:"\u21c2",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTeeArrow:"\u21a6",RightTee:"\u22a2",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangleBar:"\u29d0",RightTriangle:"\u22b3",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVectorBar:"\u2954",RightUpVector:"\u21be",RightVectorBar:"\u2953",RightVector:"\u21c0",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoustache:"\u23b1",rmoust:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",Ropf:"\u211d",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",rscr:"\ud835\udcc7",Rscr:"\u211b",rsh:"\u21b1",Rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2abc",sc:"\u227b",sccue:"\u227d",sce:"\u2ab0",scE:"\u2ab4",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdotb:"\u22a1",sdot:"\u22c5",sdote:"\u2a66",searhk:"\u2925",searr:"\u2198",seArr:"\u21d8",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",solbar:"\u233f",solb:"\u29c4",sol:"/",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25a1",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squ:"\u25a1",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",Sub:"\u22d0",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",Subset:"\u22d0",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succapprox:"\u2ab8",succ:"\u227b",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",sum:"\u2211",Sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",Sup:"\u22d1",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",Supset:"\u22d1",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21d9",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2a31",timesb:"\u22a0",times:"\xd7",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",topbot:"\u2336",topcir:"\u2af1",top:"\u22a4",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",Uarr:"\u219f",uArr:"\u21d1",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21d1",UpArrowDownArrow:"\u21c5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21d5",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03c5",Upsi:"\u03d2",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTeeArrow:"\u21a5",UpTee:"\u22a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",vArr:"\u21d5",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vBar:"\u2ae8",Vbar:"\u2aeb",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22a2",vDash:"\u22a8",Vdash:"\u22a9",VDash:"\u22ab",Vdashl:"\u2ae6",veebar:"\u22bb",vee:"\u2228",Vee:"\u22c1",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",Wedge:"\u22c0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xharr:"\u27f7",xhArr:"\u27fa",Xi:"\u039e",xi:"\u03be",xlarr:"\u27f5",xlArr:"\u27f8",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrarr:"\u27f6",xrArr:"\u27f9",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",yuml:"\xff",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",zfr:"\ud835\udd37",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",Zopf:"\u2124",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},Nr=/^#[xX]([A-Fa-f0-9]+)$/,Or=/^#([0-9]+)$/,Ar=/^([A-Za-z0-9]+)$/,Cr=function(){function e(e){this.named=e}return e.prototype.parse=function(e){if(e){var t=e.match(Nr);return t?String.fromCharCode(parseInt(t[1],16)):(t=e.match(Or))?String.fromCharCode(parseInt(t[1],10)):(t=e.match(Ar))?this.named[t[1]]:void 0}},e}(),Lr=/[\t\n\f ]/,_r=/[A-Za-z]/,Br=/\r\n?/g;function Dr(e){return Lr.test(e)}function Ir(e){return _r.test(e)}var Mr=function(){function e(e,t,r){void 0===r&&(r="precompile"),this.delegate=e,this.entityParser=t,this.mode=r,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var e=this.peek();if("<"!==e||this.isIgnoredEndTag()){if("precompile"===this.mode&&"\n"===e){var t=this.tagNameBuffer.toLowerCase();"pre"!==t&&"textarea"!==t||this.consume()}this.transitionTo("data"),this.delegate.beginData()}else this.transitionTo("tagOpen"),this.markTagStart(),this.consume()},data:function(){var e=this.peek(),t=this.tagNameBuffer;"<"!==e||this.isIgnoredEndTag()?"&"===e&&"script"!==t&&"style"!==t?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(e)):(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume())},tagOpen:function(){var e=this.consume();"!"===e?this.transitionTo("markupDeclarationOpen"):"/"===e?this.transitionTo("endTagOpen"):("@"===e||":"===e||Ir(e))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(e))},markupDeclarationOpen:function(){var e=this.consume();"-"===e&&"-"===this.peek()?(this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment()):"DOCTYPE"===e.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase()&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())},doctype:function(){Dr(this.consume())&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var e=this.consume();Dr(e)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(e.toLowerCase()))},doctypeName:function(){var e=this.consume();Dr(e)?this.transitionTo("afterDoctypeName"):">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(e.toLowerCase())},afterDoctypeName:function(){var e=this.consume();if(!Dr(e))if(">"===e)this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var t=e.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),r="PUBLIC"===t.toUpperCase(),n="SYSTEM"===t.toUpperCase();(r||n)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),r?this.transitionTo("afterDoctypePublicKeyword"):n&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var e=this.peek();Dr(e)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):'"'===e?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):"'"===e?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):">"===e&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var e=this.consume();'"'===e?this.transitionTo("afterDoctypePublicIdentifier"):">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(e)},doctypePublicIdentifierSingleQuoted:function(){var e=this.consume();"'"===e?this.transitionTo("afterDoctypePublicIdentifier"):">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(e)},afterDoctypePublicIdentifier:function(){var e=this.consume();Dr(e)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):'"'===e?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):"'"===e&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var e=this.consume();Dr(e)||(">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):'"'===e?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):"'"===e&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var e=this.consume();'"'===e?this.transitionTo("afterDoctypeSystemIdentifier"):">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(e)},doctypeSystemIdentifierSingleQuoted:function(){var e=this.consume();"'"===e?this.transitionTo("afterDoctypeSystemIdentifier"):">"===e?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(e)},afterDoctypeSystemIdentifier:function(){var e=this.consume();Dr(e)||">"===e&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var e=this.consume();"-"===e?this.transitionTo("commentStartDash"):">"===e?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(e),this.transitionTo("comment"))},commentStartDash:function(){var e=this.consume();"-"===e?this.transitionTo("commentEnd"):">"===e?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var e=this.consume();"-"===e?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(e)},commentEndDash:function(){var e=this.consume();"-"===e?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+e),this.transitionTo("comment"))},commentEnd:function(){var e=this.consume();">"===e?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+e),this.transitionTo("comment"))},tagName:function(){var e=this.consume();Dr(e)?this.transitionTo("beforeAttributeName"):"/"===e?this.transitionTo("selfClosingStartTag"):">"===e?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(e)},endTagName:function(){var e=this.consume();Dr(e)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):"/"===e?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):">"===e?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(e)},beforeAttributeName:function(){var e=this.peek();Dr(e)?this.consume():"/"===e?(this.transitionTo("selfClosingStartTag"),this.consume()):">"===e?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):"="===e?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(e)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var e=this.peek();Dr(e)?(this.transitionTo("afterAttributeName"),this.consume()):"/"===e?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===e?(this.transitionTo("beforeAttributeValue"),this.consume()):">"===e?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):'"'===e||"'"===e||"<"===e?(this.delegate.reportSyntaxError(e+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(e)):(this.consume(),this.delegate.appendToAttributeName(e))},afterAttributeName:function(){var e=this.peek();Dr(e)?this.consume():"/"===e?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===e?(this.consume(),this.transitionTo("beforeAttributeValue")):">"===e?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(e))},beforeAttributeValue:function(){var e=this.peek();Dr(e)?this.consume():'"'===e?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):"'"===e?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):">"===e?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(e))},attributeValueDoubleQuoted:function(){var e=this.consume();'"'===e?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===e?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(e)},attributeValueSingleQuoted:function(){var e=this.consume();"'"===e?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===e?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(e)},attributeValueUnquoted:function(){var e=this.peek();Dr(e)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):"/"===e?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"&"===e?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):">"===e?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(e))},afterAttributeValueQuoted:function(){var e=this.peek();Dr(e)?(this.consume(),this.transitionTo("beforeAttributeName")):"/"===e?(this.consume(),this.transitionTo("selfClosingStartTag")):">"===e?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){">"===this.peek()?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var e=this.consume();("@"===e||":"===e||Ir(e))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(e))}},this.reset()}return e.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},e.prototype.transitionTo=function(e){this.state=e},e.prototype.tokenize=function(e){this.reset(),this.tokenizePart(e),this.tokenizeEOF()},e.prototype.tokenizePart=function(e){for(this.input+=function(e){return e.replace(Br,"\n")}(e);this.index"!==this.input.substring(this.index,this.index+8)||"style"===e&&""!==this.input.substring(this.index,this.index+8)||"script"===e&&"<\/script>"!==this.input.substring(this.index,this.index+9)},e}(),Rr=function(){function e(e,t){void 0===t&&(t={}),this.options=t,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new Mr(this,e,t.mode),this._currentAttribute=void 0}return e.prototype.tokenize=function(e){return this.tokens=[],this.tokenizer.tokenize(e),this.tokens},e.prototype.tokenizePart=function(e){return this.tokens=[],this.tokenizer.tokenizePart(e),this.tokens},e.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},e.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},e.prototype.current=function(){var e=this.token;if(null===e)throw new Error("token was unexpectedly null");if(0===arguments.length)return e;for(var t=0;t0&&this.locals.filter((e=>!this.usedLocals[e]))}};class i extends o{constructor(e,t){super(e),this.parent=t}useLocal(e){let t=r(e);t&&t in this.usedLocals?this.usedLocals[t]=!0:this.parent.useLocal(e)}isLocal(e){return-1!==this.locals.indexOf(e)||this.parent.isLocal(e)}currentUnusedLocals(){return!this.hasPartial&&this.locals.length>0&&!this.usedLocals[this.locals[this.locals.length-1]]&&[this.locals[this.locals.length-1]]}}})),Wr=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return e&&e.__esModule?e:{default:e}}(Kr);t.default=class{constructor(e,t=null,n=null){this.node=e,this.parent=t,this.parentKey=n,this.scope=t?t.scope.child(e):new r.default(e),"PathExpression"===e.type&&this.scope.useLocal(e),"ElementNode"===e.type&&(this.scope.useLocal(e),e.children.forEach((e=>this.scope.useLocal(e))))}get parentNode(){return this.parent?this.parent.node:null}parents(){return{[Symbol.iterator]:()=>new n(this)}}};class n{constructor(e){this.path=e}next(){return this.path.parent?(this.path=this.path.parent,{done:!1,value:this.path}):{done:!0,value:null}}}})),Yr=function(e,t){let r=new Jr.default(e);tn(t,r)},Qr=Xr(Fr),Jr=Xr(Wr);function Xr(e){return e&&e.__esModule?e:{default:e}}function Zr(e){return"function"==typeof e?e:e.enter}function en(e){return"function"==typeof e?void 0:e.exit}function tn(e,t){let r,n,o,{node:i,parent:a,parentKey:s}=t,l=function(e,t){if(("Template"===t||"Block"===t)&&e.Program)return e.Program;let r=e[t];return void 0!==r?r:e.All}(e,i.type);if(void 0!==l&&(r=Zr(l),n=en(l)),void 0!==r&&(o=r(i,t)),null!=o){if(JSON.stringify(i)!==JSON.stringify(o)){if(Array.isArray(o))return on(e,o,a,s),o;return tn(e,new Jr.default(o,a,s))||o}o=void 0}if(void 0===o){let r=Qr.default[i.type];for(let n=0;n0&&"|"===r[r.length-1].charAt(0))throw(0,zr.generateSyntaxError)("Block parameters must be preceded by the `as` keyword, detected block parameters without `as`",e.loc);if(-1!==n&&t>n&&"|"===r[n+1].charAt(0)){let o=r.slice(n).join(" ");if("|"!==o.charAt(o.length-1)||2!==o.match(/\|/g).length)throw(0,zr.generateSyntaxError)("Invalid block parameters syntax, '"+o+"'",e.loc);let i=[];for(let o=n+1;o@\[-\^`\{-~]/;function bn(e){switch(e.type){case"Block":case"Template":return e.body;case"ElementNode":return e.children}}var yn=Object.defineProperty({parseElementBlockParams:cn,childrenFor:un,appendChild:hn,isHBSLiteral:pn,printLiteral:dn,isUpperCase:fn,isLowerCase:mn},"__esModule",{value:!0}),vn=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;const r={close:!1,open:!1};var n=new class{pos(e,t){return{line:e,column:t}}blockItself({body:e,blockParams:t,chained:r=!1,loc:n}){return{type:"Block",body:e||[],blockParams:t||[],chained:r,loc:n}}template({body:e,blockParams:t,loc:r}){return{type:"Template",body:e||[],blockParams:t||[],loc:r}}mustache({path:e,params:t,hash:n,trusting:o,loc:i,strip:a=r}){return{type:"MustacheStatement",path:e,params:t,hash:n,escaped:!o,trusting:o,loc:i,strip:a||{open:!1,close:!1}}}block({path:e,params:t,hash:n,defaultBlock:o,elseBlock:i=null,loc:a,openStrip:s=r,inverseStrip:l=r,closeStrip:c=r}){return{type:"BlockStatement",path:e,params:t,hash:n,program:o,inverse:i,loc:a,openStrip:s,inverseStrip:l,closeStrip:c}}comment(e,t){return{type:"CommentStatement",value:e,loc:t}}mustacheComment(e,t){return{type:"MustacheCommentStatement",value:e,loc:t}}concat(e,t){return{type:"ConcatStatement",parts:e,loc:t}}element({tag:e,selfClosing:t,attrs:r,blockParams:n,modifiers:o,comments:i,children:a,loc:s}){return{type:"ElementNode",tag:e,selfClosing:t,attributes:r||[],blockParams:n||[],modifiers:o||[],comments:i||[],children:a||[],loc:s}}elementModifier({path:e,params:t,hash:r,loc:n}){return{type:"ElementModifierStatement",path:e,params:t,hash:r,loc:n}}attr({name:e,value:t,loc:r}){return{type:"AttrNode",name:e,value:t,loc:r}}text({chars:e,loc:t}){return{type:"TextNode",chars:e,loc:t}}sexpr({path:e,params:t,hash:r,loc:n}){return{type:"SubExpression",path:e,params:t,hash:r,loc:n}}path({head:e,tail:t,loc:r}){let{original:n}=function(e){switch(e.type){case"AtHead":return{original:e.name,parts:[e.name]};case"ThisHead":return{original:"this",parts:[]};case"VarHead":return{original:e.name,parts:[e.name]}}}(e),o=[...n,...t].join(".");return new H.PathExpressionImplV1(o,e,t,r)}head(e,t){return"@"===e[0]?this.atName(e,t):"this"===e?this.this(t):this.var(e,t)}this(e){return{type:"ThisHead",loc:e}}atName(e,t){return{type:"AtHead",name:e,loc:t}}var(e,t){return{type:"VarHead",name:e,loc:t}}hash(e,t){return{type:"Hash",pairs:e||[],loc:t}}pair({key:e,value:t,loc:r}){return{type:"HashPair",key:e,value:t,loc:r}}literal({type:e,value:t,loc:r}){return{type:e,value:t,original:t,loc:r}}undefined(){return this.literal({type:"UndefinedLiteral",value:void 0})}null(){return this.literal({type:"NullLiteral",value:null})}string(e,t){return this.literal({type:"StringLiteral",value:e,loc:t})}boolean(e,t){return this.literal({type:"BooleanLiteral",value:e,loc:t})}number(e,t){return this.literal({type:"NumberLiteral",value:e,loc:t})}};t.default=n})),Sn=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;t.Parser=class{constructor(e,t=new jr.EntityParser(jr.HTML5NamedCharRefs),r="precompile"){this.elementStack=[],this.currentAttribute=null,this.currentNode=null,this.source=e,this.lines=e.source.split(/(?:\r\n?|\n)/g),this.tokenizer=new jr.EventedTokenizer(this,t,r)}offset(){let{line:e,column:t}=this.tokenizer;return this.source.offsetFor(e,t)}pos({line:e,column:t}){return this.source.offsetFor(e,t)}finish(e){return(0,_.assign)({},e,{loc:e.loc.until(this.offset())})}get currentAttr(){return this.currentAttribute}get currentTag(){return this.currentNode}get currentStartTag(){return this.currentNode}get currentEndTag(){return this.currentNode}get currentComment(){return this.currentNode}get currentData(){return this.currentNode}acceptTemplate(e){return this[e.type](e)}acceptNode(e){return this[e.type](e)}currentElement(){return this.elementStack[this.elementStack.length-1]}sourceForNode(e,t){let r,n,o,i=e.loc.start.line-1,a=i-1,s=e.loc.start.column,l=[];for(t?(n=t.loc.end.line-1,o=t.loc.end.column):(n=e.loc.end.line-1,o=e.loc.end.column);ae.acceptNode(t))):[],o=n.length>0?n[n.length-1].loc:r.loc;return{path:r,params:n,hash:t.hash?e.Hash(t.hash):{type:"Hash",pairs:[],loc:e.source.spanFor(o).collapse("end")}}}function i(e,t){let{path:n,params:o,hash:i,loc:a}=t;if((0,yn.isHBSLiteral)(n)){let r=`{{${(0,yn.printLiteral)(n)}}}`,o=`<${e.name} ... ${r} ...`;throw(0,zr.generateSyntaxError)(`In ${o}, ${r} is not a valid modifier`,t.loc)}let s=r.default.elementModifier({path:n,params:o,hash:i,loc:a});e.modifiers.push(s)}t.HandlebarsNodeVisitors=n})),wn=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.preprocess=h,t.TokenizerEventHandlers=void 0;var r=s(Ur),n=s(sn),o=s(ln),i=s(vn),a=s(V);function s(e){return e&&e.__esModule?e:{default:e}}class l extends kn.HandlebarsNodeVisitors{constructor(){super(...arguments),this.tagOpenLine=0,this.tagOpenColumn=0}reset(){this.currentNode=null}beginComment(){this.currentNode=i.default.comment("",this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn))}appendToCommentData(e){this.currentComment.value+=e}finishComment(){(0,yn.appendChild)(this.currentElement(),this.finish(this.currentComment))}beginData(){this.currentNode=i.default.text({chars:"",loc:this.offset().collapsed()})}appendToData(e){this.currentData.chars+=e}finishData(){this.currentData.loc=this.currentData.loc.withEnd(this.offset()),(0,yn.appendChild)(this.currentElement(),this.currentData)}tagOpen(){this.tagOpenLine=this.tokenizer.line,this.tagOpenColumn=this.tokenizer.column}beginStartTag(){this.currentNode={type:"StartTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}beginEndTag(){this.currentNode={type:"EndTag",name:"",attributes:[],modifiers:[],comments:[],selfClosing:!1,loc:this.source.offsetFor(this.tagOpenLine,this.tagOpenColumn)}}finishTag(){let e=this.finish(this.currentTag);if("StartTag"===e.type){if(this.finishStartTag(),":"===e.name)throw(0,zr.generateSyntaxError)("Invalid named block named detected, you may have created a named block without a name, or you may have began your name with a number. Named blocks must have names that are at least one character long, and begin with a lower case letter",this.source.spanFor({start:this.currentTag.loc.toJSON(),end:this.offset().toJSON()}));(ir.voidMap[e.name]||e.selfClosing)&&this.finishEndTag(!0)}else"EndTag"===e.type&&this.finishEndTag(!1)}finishStartTag(){let{name:e,attributes:t,modifiers:r,comments:n,selfClosing:o,loc:a}=this.finish(this.currentStartTag),s=i.default.element({tag:e,selfClosing:o,attrs:t,modifiers:r,comments:n,children:[],blockParams:[],loc:a});this.elementStack.push(s)}finishEndTag(e){let t=this.finish(this.currentTag),r=this.elementStack.pop(),n=this.currentElement();this.validateEndTag(t,r,e),r.loc=r.loc.withEnd(this.offset()),(0,yn.parseElementBlockParams)(r),(0,yn.appendChild)(n,r)}markTagAsSelfClosing(){this.currentTag.selfClosing=!0}appendToTagName(e){this.currentTag.name+=e}beginAttribute(){let e=this.offset();this.currentAttribute={name:"",parts:[],currentPart:null,isQuoted:!1,isDynamic:!1,start:e,valueSpan:e.collapsed()}}appendToAttributeName(e){this.currentAttr.name+=e}beginAttributeValue(e){this.currentAttr.isQuoted=e,this.startTextPart(),this.currentAttr.valueSpan=this.offset().collapsed()}appendToAttributeValue(e){let t=this.currentAttr.parts,r=t[t.length-1],n=this.currentAttr.currentPart;if(n)n.chars+=e,n.loc=n.loc.withEnd(this.offset());else{let t=this.offset();t="\n"===e?r?r.loc.getEnd():this.currentAttr.valueSpan.getStart():t.move(-1),this.currentAttr.currentPart=i.default.text({chars:e,loc:t.collapsed()})}}finishAttributeValue(){this.finalizeTextPart();let e=this.currentTag,t=this.offset();if("EndTag"===e.type)throw(0,zr.generateSyntaxError)("Invalid end tag: closing tag must not have attributes",this.source.spanFor({start:e.loc.toJSON(),end:t.toJSON()}));let{name:r,parts:n,start:o,isQuoted:a,isDynamic:s,valueSpan:l}=this.currentAttr,c=this.assembleAttributeValue(n,a,s,o.until(t));c.loc=l.withEnd(t);let u=i.default.attr({name:r,value:c,loc:o.until(t)});this.currentStartTag.attributes.push(u)}reportSyntaxError(e){throw(0,zr.generateSyntaxError)(e,this.offset().collapsed())}assembleConcatenatedValue(e){for(let t=0;t elements do not need end tags. You should remove it`:void 0===t.tag?n=`Closing tag without an open tag`:t.tag!==e.name&&(n=`Closing tag did not match last open tag <${t.tag}> (on line ${t.loc.startPosition.line})`),n)throw(0,zr.generateSyntaxError)(n,e.loc)}assembleAttributeValue(e,t,r,n){if(r){if(t)return this.assembleConcatenatedValue(e);if(1===e.length||2===e.length&&"TextNode"===e[1].type&&"/"===e[1].chars)return e[0];throw(0,zr.generateSyntaxError)("An unquoted attribute value must be a string or a mustache, preceded by whitespace or a '=' character, and followed by whitespace, a '>' character, or '/>'",n)}return e.length>0?e[0]:i.default.text({chars:"",loc:n})}}t.TokenizerEventHandlers=l;const c={parse:h,builders:a.default,print:r.default,traverse:n.default,Walker:o.default};class u extends jr.EntityParser{constructor(){super({})}parse(){}}function h(e,t={}){var r,o,i;let a,s,h,p=t.mode||"precompile";"string"==typeof e?(a=new j.Source(e,null===(r=t.meta)||void 0===r?void 0:r.moduleName),s="codemod"===p?(0,Tr.parseWithoutProcessing)(e,t.parseOptions):(0,Tr.parse)(e,t.parseOptions)):e instanceof j.Source?(a=e,s="codemod"===p?(0,Tr.parseWithoutProcessing)(e.source,t.parseOptions):(0,Tr.parse)(e.source,t.parseOptions)):(a=new j.Source("",null===(o=t.meta)||void 0===o?void 0:o.moduleName),s=e),"codemod"===p&&(h=new u);let d=q.SourceSpan.forCharPositions(a,0,a.source.length);s.loc={source:"(program)",start:d.startPosition,end:d.endPosition};let f=new l(a,h,p).acceptTemplate(s);if(t.strictMode&&(f.blockParams=null!==(i=t.locals)&&void 0!==i?i:[]),t&&t.plugins&&t.plugins.ast)for(let e=0,r=t.plugins.ast.length;ethis.allocate(e)));return new i(this,e,t)}}t.SymbolTable=n;class o extends n{constructor(e,t){super(),this.templateLocals=e,this.customizeComponentName=t,this.symbols=[],this.upvars=[],this.size=1,this.named=(0,_.dict)(),this.blocks=(0,_.dict)(),this.usedTemplateLocals=[],r.set(this,!1)}getUsedTemplateLocals(){return this.usedTemplateLocals}setHasEval(){!function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");t.set(e,r)}(this,r,!0)}get hasEval(){return function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}(this,r)}has(e){return-1!==this.templateLocals.indexOf(e)}get(e){let t=this.usedTemplateLocals.indexOf(e);return-1!==t||(t=this.usedTemplateLocals.length,this.usedTemplateLocals.push(e)),[t,!0]}getLocalsMap(){return(0,_.dict)()}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map((t=>e[t]))}allocateFree(e,t){39===t.resolution()&&t.isAngleBracket&&(0,yn.isUpperCase)(e)&&(e=this.customizeComponentName(e));let r=this.upvars.indexOf(e);return-1!==r||(r=this.upvars.length,this.upvars.push(e)),r}allocateNamed(e){let t=this.named[e];return t||(t=this.named[e]=this.allocate(e)),t}allocateBlock(e){"inverse"===e&&(e="else");let t=this.blocks[e];return t||(t=this.blocks[e]=this.allocate(`&${e}`)),t}allocate(e){return this.symbols.push(e),this.size++}}t.ProgramSymbolTable=o,r=new WeakMap;class i extends n{constructor(e,t,r){super(),this.parent=e,this.symbols=t,this.slots=r}get locals(){return this.symbols}has(e){return-1!==this.symbols.indexOf(e)||this.parent.has(e)}get(e){let t=this.symbols.indexOf(e);return-1===t?this.parent.get(e):[this.slots[t],!1]}getLocalsMap(){let e=this.parent.getLocalsMap();return this.symbols.forEach((t=>e[t]=this.get(t)[0])),e}getEvalInfo(){let e=this.getLocalsMap();return Object.keys(e).map((t=>e[t]))}setHasEval(){this.parent.setHasEval()}allocateFree(e,t){return this.parent.allocateFree(e,t)}allocateNamed(e){return this.parent.allocateNamed(e)}allocateBlock(e){return this.parent.allocateBlock(e)}allocate(e){return this.parent.allocate(e)}}t.BlockSymbolTable=i})),Pn=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.BuildElement=t.Builder=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=n();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(r,i,a):r[i]=e[i]}r.default=e,t&&t.set(e,r);return r}(re);function n(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return n=function(){return e},e}class o{template(e,t,n){return new r.Template({table:e,body:t,loc:n})}block(e,t,n){return new r.Block({scope:e,body:t,loc:n})}namedBlock(e,t,n){return new r.NamedBlock({name:e,block:t,attrs:[],componentArgs:[],modifiers:[],loc:n})}simpleNamedBlock(e,t,r){return new i({selfClosing:!1,attrs:[],componentArgs:[],modifiers:[],comments:[]}).named(e,t,r)}slice(e,t){return new D.SourceSlice({loc:t,chars:e})}args(e,t,n){return new r.Args({loc:n,positional:e,named:t})}positional(e,t){return new r.PositionalArguments({loc:t,exprs:e})}namedArgument(e,t){return new r.NamedArgument({name:e,value:t})}named(e,t){return new r.NamedArguments({loc:t,entries:e})}attr({name:e,value:t,trusting:n},o){return new r.HtmlAttr({loc:o,name:e,value:t,trusting:n})}splatAttr(e,t){return new r.SplatAttr({symbol:e,loc:t})}arg({name:e,value:t,trusting:n},o){return new r.ComponentArg({name:e,value:t,trusting:n,loc:o})}path(e,t,n){return new r.PathExpression({loc:n,ref:e,tail:t})}self(e){return new r.ThisReference({loc:e})}at(e,t,n){return new r.ArgReference({loc:n,name:new D.SourceSlice({loc:n,chars:e}),symbol:t})}freeVar({name:e,context:t,symbol:n,loc:o}){return new r.FreeVarReference({name:e,resolution:t,symbol:n,loc:o})}localVar(e,t,n,o){return new r.LocalVarReference({loc:o,name:e,isTemplateLocal:n,symbol:t})}sexp(e,t){return new r.CallExpression({loc:t,callee:e.callee,args:e.args})}deprecatedCall(e,t,n){return new r.DeprecatedCallExpression({loc:n,arg:e,callee:t})}interpolate(e,t){return(0,_.assertPresent)(e),new r.InterpolateExpression({loc:t,parts:e})}literal(e,t){return new r.LiteralExpression({loc:t,value:e})}append({table:e,trusting:t,value:n},o){return new r.AppendContent({table:e,trusting:t,value:n,loc:o})}modifier({callee:e,args:t},n){return new r.ElementModifier({loc:n,callee:e,args:t})}namedBlocks(e,t){return new r.NamedBlocks({loc:t,blocks:e})}blockStatement(e,t){var{symbols:n,program:o,inverse:i=null}=e,a=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o0||e.hash.pairs.length>0}var Mn=Object.defineProperty({SexpSyntaxContext:Tn,ModifierSyntaxContext:xn,BlockSyntaxContext:Nn,ComponentSyntaxContext:On,AttrValueSyntaxContext:An,AppendSyntaxContext:Cn},"__esModule",{value:!0}),Rn=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.normalize=function(e,t={}){var r;let n=(0,wn.preprocess)(e,t),o=(0,_.assign)({strictMode:!1,locals:[]},t),i=En.SymbolTable.top(o.strictMode?o.locals:[],null!==(r=t.customizeComponentName)&&void 0!==r?r:e=>e),a=new s(e,o,i),l=new c(a),u=new p(a.loc(n.loc),n.body.map((e=>l.normalize(e))),a).assertTemplate(i),h=i.getUsedTemplateLocals();return[u,h]},t.BlockContext=void 0;var r=a(ir),n=a(vn),o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=n?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}r.default=e,t&&t.set(e,r);return r}(re);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function a(e){return e&&e.__esModule?e:{default:e}}class s{constructor(e,t,r){this.source=e,this.options=t,this.table=r,this.builder=new Pn.Builder}get strict(){return this.options.strictMode||!1}loc(e){return this.source.spanFor(e)}resolutionFor(e,t){if(this.strict)return{resolution:o.STRICT_RESOLUTION};if(this.isFreeVar(e)){let r=t(e);return null===r?{resolution:"error",path:m(e),head:g(e)}:{resolution:r}}return{resolution:o.STRICT_RESOLUTION}}isFreeVar(e){return"PathExpression"===e.type?"VarHead"===e.head.type&&!this.table.has(e.head.name):"PathExpression"===e.path.type&&this.isFreeVar(e.path)}hasBinding(e){return this.table.has(e)}child(e){return new s(this.source,this.options,this.table.child(e))}customizeComponentName(e){return this.options.customizeComponentName?this.options.customizeComponentName(e):e}}t.BlockContext=s;class l{constructor(e){this.block=e}normalize(e,t){switch(e.type){case"NullLiteral":case"BooleanLiteral":case"NumberLiteral":case"StringLiteral":case"UndefinedLiteral":return this.block.builder.literal(e.value,this.block.loc(e.loc));case"PathExpression":return this.path(e,t);case"SubExpression":{let t=this.block.resolutionFor(e,Mn.SexpSyntaxContext);if("error"===t.resolution)throw(0,zr.generateSyntaxError)(`You attempted to invoke a path (\`${t.path}\`) but ${t.head} was not in scope`,e.loc);return this.block.builder.sexp(this.callParts(e,t.resolution),this.block.loc(e.loc))}}}path(e,t){let r=[],n=this.block.loc(e.head.loc);for(let t of e.tail)n=n.sliceStartChars({chars:t.length,skipStart:1}),r.push(new D.SourceSlice({loc:n,chars:t}));return this.block.builder.path(this.ref(e.head,t),r,this.block.loc(e.loc))}callParts(e,t){let{path:r,params:n,hash:i}=e,a=this.normalize(r,t),s=n.map((e=>this.normalize(e,o.ARGUMENT_RESOLUTION))),l=J.SpanList.range(s,a.loc.collapse("end")),c=this.block.loc(i.loc),u=J.SpanList.range([l,c]),h=this.block.builder.positional(n.map((e=>this.normalize(e,o.ARGUMENT_RESOLUTION))),l),p=this.block.builder.named(i.pairs.map((e=>this.namedArgument(e))),this.block.loc(i.loc));return{callee:a,args:this.block.builder.args(h,p,u)}}namedArgument(e){let t=this.block.loc(e.loc).sliceStartChars({chars:e.key.length});return this.block.builder.namedArgument(new D.SourceSlice({chars:e.key,loc:t}),this.normalize(e.value,o.ARGUMENT_RESOLUTION))}ref(e,t){let{block:r}=this,{builder:n,table:i}=r,a=r.loc(e.loc);switch(e.type){case"ThisHead":return n.self(a);case"AtHead":{let t=i.allocateNamed(e.name);return n.at(e.name,t,a)}case"VarHead":if(r.hasBinding(e.name)){let[t,n]=i.get(e.name);return r.builder.localVar(e.name,t,n,a)}{let n=r.strict?o.STRICT_RESOLUTION:t,i=r.table.allocateFree(e.name,n);return r.builder.freeVar({name:e.name,context:n,symbol:i,loc:a})}}}}class c{constructor(e){this.block=e}normalize(e){switch(e.type){case"PartialStatement":throw new Error("Handlebars partial syntax ({{> ...}}) is not allowed in Glimmer");case"BlockStatement":return this.BlockStatement(e);case"ElementNode":return new u(this.block).ElementNode(e);case"MustacheStatement":return this.MustacheStatement(e);case"MustacheCommentStatement":return this.MustacheCommentStatement(e);case"CommentStatement":{let t=this.block.loc(e.loc);return new o.HtmlComment({loc:t,text:t.slice({skipStart:4,skipEnd:3}).toSlice(e.value)})}case"TextNode":return new o.HtmlText({loc:this.block.loc(e.loc),chars:e.chars})}}MustacheCommentStatement(e){let t,r=this.block.loc(e.loc);return t="{{!--"===r.asString().slice(0,5)?r.slice({skipStart:5,skipEnd:4}):r.slice({skipStart:3,skipEnd:2}),new o.GlimmerComment({loc:r,text:t.toSlice(e.value)})}MustacheStatement(e){let{escaped:t}=e,r=this.block.loc(e.loc),n=this.expr.callParts({path:e.path,params:e.params,hash:e.hash},(0,Mn.AppendSyntaxContext)(e)),o=n.args.isEmpty()?n.callee:this.block.builder.sexp(n,r);return this.block.builder.append({table:this.block.table,trusting:!t,value:o},r)}BlockStatement(e){let{program:t,inverse:r}=e,n=this.block.loc(e.loc),o=this.block.resolutionFor(e,Mn.BlockSyntaxContext);if("error"===o.resolution)throw(0,zr.generateSyntaxError)(`You attempted to invoke a path (\`{{#${o.path}}}\`) but ${o.head} was not in scope`,n);let i=this.expr.callParts(e,o.resolution);return this.block.builder.blockStatement((0,_.assign)({symbols:this.block.table,program:this.Block(t),inverse:r?this.Block(r):null},i),n)}Block({body:e,loc:t,blockParams:r}){let n=this.block.child(r),o=new c(n);return new d(this.block.loc(t),e.map((e=>o.normalize(e))),this.block).assertBlock(n.table)}get expr(){return new l(this.block)}}class u{constructor(e){this.ctx=e}ElementNode(e){let{tag:t,selfClosing:r,comments:n}=e,o=this.ctx.loc(e.loc),[i,...a]=t.split("."),s=this.classifyTag(i,a,e.loc),l=e.attributes.filter((e=>"@"!==e.name[0])).map((e=>this.attr(e))),u=e.attributes.filter((e=>"@"===e.name[0])).map((e=>this.arg(e))),h=e.modifiers.map((e=>this.modifier(e))),p=this.ctx.child(e.blockParams),d=new c(p),m=e.children.map((e=>d.normalize(e))),g=this.ctx.builder.element({selfClosing:r,attrs:l,componentArgs:u,modifiers:h,comments:n.map((e=>new c(this.ctx).MustacheCommentStatement(e)))}),b=new f(g,o,m,this.ctx),y=this.ctx.loc(e.loc).sliceStartChars({chars:t.length,skipStart:1});if("ElementHead"===s)return":"===t[0]?b.assertNamedBlock(y.slice({skipStart:1}).toSlice(t.slice(1)),p.table):b.assertElement(y.toSlice(t),e.blockParams.length>0);if(e.selfClosing)return g.selfClosingComponent(s,o);{let r=b.assertComponent(t,p.table,e.blockParams.length>0);return g.componentWithNamedBlocks(s,r,o)}}modifier(e){let t=this.ctx.resolutionFor(e,Mn.ModifierSyntaxContext);if("error"===t.resolution)throw(0,zr.generateSyntaxError)(`You attempted to invoke a path (\`{{#${t.path}}}\`) as a modifier, but ${t.head} was not in scope. Try adding \`this\` to the beginning of the path`,e.loc);let r=this.expr.callParts(e,t.resolution);return this.ctx.builder.modifier(r,this.ctx.loc(e.loc))}mustacheAttr(e){let t=this.ctx.builder.sexp(this.expr.callParts(e,(0,Mn.AttrValueSyntaxContext)(e)),this.ctx.loc(e.loc));return t.args.isEmpty()?t.callee:t}attrPart(e){switch(e.type){case"MustacheStatement":return{expr:this.mustacheAttr(e),trusting:!e.escaped};case"TextNode":return{expr:this.ctx.builder.literal(e.chars,this.ctx.loc(e.loc)),trusting:!0}}}attrValue(e){switch(e.type){case"ConcatStatement":{let t=e.parts.map((e=>this.attrPart(e).expr));return{expr:this.ctx.builder.interpolate(t,this.ctx.loc(e.loc)),trusting:!1}}default:return this.attrPart(e)}}attr(e){if("...attributes"===e.name)return this.ctx.builder.splatAttr(this.ctx.table.allocateBlock("attrs"),this.ctx.loc(e.loc));let t=this.ctx.loc(e.loc),r=t.sliceStartChars({chars:e.name.length}).toSlice(e.name),n=this.attrValue(e.value);return this.ctx.builder.attr({name:r,value:n.expr,trusting:n.trusting},t)}maybeDeprecatedCall(e,t){if(this.ctx.strict)return null;if("MustacheStatement"!==t.type)return null;let{path:r}=t;if("PathExpression"!==r.type)return null;if("VarHead"!==r.head.type)return null;let{name:n}=r.head;if("has-block"===n||"has-block-params"===n)return null;if(this.ctx.hasBinding(n))return null;if(0!==r.tail.length)return null;if(0!==t.params.length||0!==t.hash.pairs.length)return null;let i=o.LooseModeResolution.attr(),a=this.ctx.builder.freeVar({name:n,context:i,symbol:this.ctx.table.allocateFree(n,i),loc:r.loc});return{expr:this.ctx.builder.deprecatedCall(e,a,t.loc),trusting:!1}}arg(e){let t=this.ctx.loc(e.loc),r=t.sliceStartChars({chars:e.name.length}).toSlice(e.name),n=this.maybeDeprecatedCall(r,e.value)||this.attrValue(e.value);return this.ctx.builder.arg({name:r,value:n.expr,trusting:n.trusting},t)}classifyTag(e,t,r){let o=(0,yn.isUpperCase)(e),i="@"===e[0]||"this"===e||this.ctx.hasBinding(e);if(this.ctx.strict&&!i){if(o)throw(0,zr.generateSyntaxError)(`Attempted to invoke a component that was not in scope in a strict mode template, \`<${e}>\`. If you wanted to create an element with that name, convert it to lowercase - \`<${e.toLowerCase()}>\``,r);return"ElementHead"}let a=i||o,s=r.sliceStartChars({skipStart:1,chars:e.length}),c=t.reduce(((e,t)=>e+1+t.length),0),u=s.getEnd().move(c),h=s.withEnd(u);if(a){let o=n.default.path({head:n.default.head(e,s),tail:t,loc:h}),i=this.ctx.resolutionFor(o,Mn.ComponentSyntaxContext);if("error"===i.resolution)throw(0,zr.generateSyntaxError)(`You attempted to invoke a path (\`<${i.path}>\`) but ${i.head} was not in scope`,r);return new l(this.ctx).normalize(o,i.resolution)}if(t.length>0)throw(0,zr.generateSyntaxError)(`You used ${e}.${t.join(".")} as a tag name, but ${e} is not in scope`,r);return"ElementHead"}get expr(){return new l(this.ctx)}}class h{constructor(e,t,r){this.loc=e,this.children=t,this.block=r,this.namedBlocks=t.filter((e=>e instanceof o.NamedBlock)),this.hasSemanticContent=Boolean(t.filter((e=>{if(e instanceof o.NamedBlock)return!1;switch(e.type){case"GlimmerComment":case"HtmlComment":return!1;case"HtmlText":return!/^\s*$/.exec(e.chars);default:return!0}})).length),this.nonBlockChildren=t.filter((e=>!(e instanceof o.NamedBlock)))}}class p extends h{assertTemplate(e){if((0,_.isPresent)(this.namedBlocks))throw(0,zr.generateSyntaxError)("Unexpected named block at the top-level of a template",this.loc);return this.block.builder.template(e,this.nonBlockChildren,this.block.loc(this.loc))}}class d extends h{assertBlock(e){if((0,_.isPresent)(this.namedBlocks))throw(0,zr.generateSyntaxError)("Unexpected named block nested in a normal block",this.loc);return this.block.builder.block(e,this.nonBlockChildren,this.loc)}}class f extends h{constructor(e,t,r,n){super(t,r,n),this.el=e}assertNamedBlock(e,t){if(this.el.base.selfClosing)throw(0,zr.generateSyntaxError)(`<:${e.chars}/> is not a valid named block: named blocks cannot be self-closing`,this.loc);if((0,_.isPresent)(this.namedBlocks))throw(0,zr.generateSyntaxError)(`Unexpected named block inside <:${e.chars}> named block: named blocks cannot contain nested named blocks`,this.loc);if(!(0,yn.isLowerCase)(e.chars))throw(0,zr.generateSyntaxError)(`<:${e.chars}> is not a valid named block, and named blocks must begin with a lowercase letter`,this.loc);if(this.el.base.attrs.length>0||this.el.base.componentArgs.length>0||this.el.base.modifiers.length>0)throw(0,zr.generateSyntaxError)(`named block <:${e.chars}> cannot have attributes, arguments, or modifiers`,this.loc);let r=J.SpanList.range(this.nonBlockChildren,this.loc);return this.block.builder.namedBlock(e,this.block.builder.block(t,this.nonBlockChildren,r),this.loc)}assertElement(e,t){if(t)throw(0,zr.generateSyntaxError)(`Unexpected block params in <${e}>: simple elements cannot have block params`,this.loc);if((0,_.isPresent)(this.namedBlocks)){let t=this.namedBlocks.map((e=>e.name));if(1===t.length)throw(0,zr.generateSyntaxError)(`Unexpected named block <:foo> inside <${e.chars}> HTML element`,this.loc);{let r=t.map((e=>`<:${e.chars}>`)).join(", ");throw(0,zr.generateSyntaxError)(`Unexpected named blocks inside <${e.chars}> HTML element (${r})`,this.loc)}}return this.el.simple(e,this.nonBlockChildren,this.loc)}assertComponent(e,t,r){if((0,_.isPresent)(this.namedBlocks)&&this.hasSemanticContent)throw(0,zr.generateSyntaxError)(`Unexpected content inside <${e}> component invocation: when using named blocks, the tag cannot contain other content`,this.loc);if((0,_.isPresent)(this.namedBlocks)){if(r)throw(0,zr.generateSyntaxError)(`Unexpected block params list on <${e}> component invocation: when passing named blocks, the invocation tag cannot take block params`,this.loc);let t=new Set;for(let e of this.namedBlocks){let r=e.name.chars;if(t.has(r))throw(0,zr.generateSyntaxError)(`Component had two named blocks with the same name, \`<:${r}>\`. Only one block with a given name may be passed`,this.loc);if("inverse"===r&&t.has("else")||"else"===r&&t.has("inverse"))throw(0,zr.generateSyntaxError)("Component has both <:else> and <:inverse> block. <:inverse> is an alias for <:else>",this.loc);t.add(r)}return this.namedBlocks}return[this.block.builder.namedBlock(D.SourceSlice.synthetic("default"),this.block.builder.block(t,this.nonBlockChildren,this.loc),this.loc)]}}function m(e){return"PathExpression"!==e.type&&"PathExpression"===e.path.type?m(e.path):new r.default({entityEncoding:"raw"}).print(e)}function g(e){if("PathExpression"!==e.type)return"PathExpression"===e.path.type?g(e.path):new r.default({entityEncoding:"raw"}).print(e);switch(e.head.type){case"AtHead":case"VarHead":return e.head.name;case"ThisHead":return"this"}}})),qn=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isKeyword=function(e){return e in r},t.KEYWORDS_TYPES=void 0;const r={component:["Call","Append","Block"],debugger:["Append"],"each-in":["Block"],each:["Block"],"has-block-params":["Call","Append"],"has-block":["Call","Append"],helper:["Call","Append"],if:["Call","Append","Block"],"in-element":["Block"],let:["Block"],"link-to":["Append","Block"],log:["Call","Append"],modifier:["Call"],mount:["Append"],mut:["Call","Append"],outlet:["Append"],"query-params":["Call"],readonly:["Call","Append"],unbound:["Call","Append"],unless:["Call","Append","Block"],with:["Block"],yield:["Append"]};t.KEYWORDS_TYPES=r})),jn=function(e,t={includeHtmlElements:!1,includeKeywords:!1}){const r=(0,wn.preprocess)(e),n=new Set,o=[];(0,Hn.default)(r,{Block:{enter({blockParams:e}){e.forEach((e=>{o.push(e)}))},exit({blockParams:e}){e.forEach((()=>{o.pop()}))}},ElementNode:{enter(e){e.blockParams.forEach((e=>{o.push(e)})),Vn(n,e,o,t)},exit({blockParams:e}){e.forEach((()=>{o.pop()}))}},PathExpression(e){Vn(n,e,o,t)}});let i=[];n.forEach((e=>i.push(e))),(null==t?void 0:t.includeKeywords)||(i=i.filter((e=>!(0,qn.isKeyword)(e))));return i},Hn=function(e){return e&&e.__esModule?e:{default:e}}(sn);function Vn(e,t,r,n){const o=function(e,t,r){if("PathExpression"===e.type){if("AtHead"===e.head.type||"ThisHead"===e.head.type)return;const r=e.head.name;if(-1===t.indexOf(r))return r}else if("ElementNode"===e.type){const{tag:n}=e,o=n.charAt(0);if(":"===o||"@"===o)return;if(!r.includeHtmlElements&&-1===n.indexOf(".")&&n.toLowerCase()===n)return;if("this."===n.substr(0,5))return;if(-1!==t.indexOf(n))return;return n}}(t,r,n);(Array.isArray(o)?o:[o]).forEach((t=>{void 0!==t&&"@"!==t[0]&&e.add(t.split(".")[0])}))}var Un=Object.defineProperty({getTemplateLocals:jn},"__esModule",{value:!0}),$n=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Source",{enumerable:!0,get:function(){return j.Source}}),Object.defineProperty(t,"builders",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(t,"normalize",{enumerable:!0,get:function(){return Rn.normalize}}),Object.defineProperty(t,"SymbolTable",{enumerable:!0,get:function(){return En.SymbolTable}}),Object.defineProperty(t,"BlockSymbolTable",{enumerable:!0,get:function(){return En.BlockSymbolTable}}),Object.defineProperty(t,"ProgramSymbolTable",{enumerable:!0,get:function(){return En.ProgramSymbolTable}}),Object.defineProperty(t,"generateSyntaxError",{enumerable:!0,get:function(){return zr.generateSyntaxError}}),Object.defineProperty(t,"preprocess",{enumerable:!0,get:function(){return wn.preprocess}}),Object.defineProperty(t,"print",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"sortByLoc",{enumerable:!0,get:function(){return or.sortByLoc}}),Object.defineProperty(t,"Walker",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"Path",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"traverse",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"cannotRemoveNode",{enumerable:!0,get:function(){return Gr.cannotRemoveNode}}),Object.defineProperty(t,"cannotReplaceNode",{enumerable:!0,get:function(){return Gr.cannotReplaceNode}}),Object.defineProperty(t,"WalkerPath",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"isKeyword",{enumerable:!0,get:function(){return qn.isKeyword}}),Object.defineProperty(t,"KEYWORDS_TYPES",{enumerable:!0,get:function(){return qn.KEYWORDS_TYPES}}),Object.defineProperty(t,"getTemplateLocals",{enumerable:!0,get:function(){return Un.getTemplateLocals}}),Object.defineProperty(t,"SourceSlice",{enumerable:!0,get:function(){return D.SourceSlice}}),Object.defineProperty(t,"SourceSpan",{enumerable:!0,get:function(){return q.SourceSpan}}),Object.defineProperty(t,"SpanList",{enumerable:!0,get:function(){return J.SpanList}}),Object.defineProperty(t,"maybeLoc",{enumerable:!0,get:function(){return J.maybeLoc}}),Object.defineProperty(t,"loc",{enumerable:!0,get:function(){return J.loc}}),Object.defineProperty(t,"hasSpan",{enumerable:!0,get:function(){return J.hasSpan}}),Object.defineProperty(t,"node",{enumerable:!0,get:function(){return K.node}}),t.ASTv2=t.AST=t.ASTv1=void 0;var r=h(V),n=u($);t.ASTv1=n,t.AST=n;var o=u(re);t.ASTv2=o;var i=h(Ur),a=h(ln),s=h(sn),l=h(Wr);function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=n?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}function h(e){return e&&e.__esModule?e:{default:e}}}));const zn=r.default,{locStart:Fn,locEnd:Gn}=o;function Kn(){return{name:"addBackslash",visitor:{TextNode(e){e.chars=e.chars.replace(/\\/,"\\\\")}}}}function Wn(e){const t=new zn(e),r=({line:e,column:r})=>t.indexForLocation({line:e-1,column:r});return()=>({name:"addOffset",visitor:{All(e){const{start:t,end:n}=e.loc;t.offset=r(t),n.offset=r(n)}}})}var Yn={parsers:{glimmer:{parse:function(e){const{preprocess:t}=$n;let r;try{r=t(e,{mode:"codemod",plugins:{ast:[Kn,Wn(e)]}})}catch(e){const t=function(e){const{location:t,hash:r}=e;if(t){const{start:e,end:r}=t;return"number"!=typeof r.line?{start:e}:t}if(r){const{loc:{last_line:e,last_column:t}}=r;return{start:{line:e,column:t+1}}}}(e);if(t)throw n(e.message,t);throw e}return r},astFormat:"glimmer",locStart:Fn,locEnd:Gn}}};export default Yn; diff --git a/node_modules/prettier/esm/parser-graphql.mjs b/node_modules/prettier/esm/parser-graphql.mjs new file mode 100644 index 0000000000..da2842d789 --- /dev/null +++ b/node_modules/prettier/esm/parser-graphql.mjs @@ -0,0 +1 @@ +var e=function(e,n){const t=new SyntaxError(e+" ("+n.start.line+":"+n.start.column+")");return t.loc=n,t};var n=function(...e){let n;for(const[t,i]of e.entries())try{return{result:i()}}catch(e){0===t&&(n=e)}return{error:n}};var t={hasPragma:function(e){return/^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(e)},insertPragma:function(e){return"# @format\n\n"+e}};var i={locStart:function(e){return"number"==typeof e.start?e.start:e.loc&&e.loc.start},locEnd:function(e){return"number"==typeof e.end?e.end:e.loc&&e.loc.end}};function r(e){var n={exports:{}};return e(n,n.exports),n.exports}var o=function(e){return"object"==a(e)&&null!==e};function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=Object.defineProperty({default:o},"__esModule",{value:!0}),c=r((function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.SYMBOL_TO_STRING_TAG=n.SYMBOL_ASYNC_ITERATOR=n.SYMBOL_ITERATOR=void 0;var t="function"==typeof Symbol&&null!=Symbol.iterator?Symbol.iterator:"@@iterator";n.SYMBOL_ITERATOR=t;var i="function"==typeof Symbol&&null!=Symbol.asyncIterator?Symbol.asyncIterator:"@@asyncIterator";n.SYMBOL_ASYNC_ITERATOR=i;var r="function"==typeof Symbol&&null!=Symbol.toStringTag?Symbol.toStringTag:"@@toStringTag";n.SYMBOL_TO_STRING_TAG=r})),u=function(e,n){var t,i=/\r\n|[\n\r]/g,r=1,o=n+1;for(;(t=i.exec(e.body))&&t.index120){for(var d=Math.floor(c/80),h=c%80,E=[],v=0;v",EOF:"",BANG:"!",DOLLAR:"$",AMP:"&",PAREN_L:"(",PAREN_R:")",SPREAD:"...",COLON:":",EQUALS:"=",AT:"@",BRACKET_L:"[",BRACKET_R:"]",BRACE_L:"{",PIPE:"|",BRACE_R:"}",NAME:"Name",INT:"Int",FLOAT:"Float",STRING:"String",BLOCK_STRING:"BlockString",COMMENT:"Comment"});n.TokenKind=t})),R=function(e){return w(e,[])},g=(D=O)&&D.__esModule?D:{default:D};function C(e){return(C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,n){switch(C(e)){case"string":return JSON.stringify(e);case"function":return e.name?"[function ".concat(e.name,"]"):"[function]";case"object":return null===e?"null":function(e,n){if(-1!==n.indexOf(e))return"[Circular]";var t=[].concat(n,[e]),i=function(e){var n=e[String(g.default)];if("function"==typeof n)return n;if("function"==typeof e.inspect)return e.inspect}(e);if(void 0!==i){var r=i.call(e);if(r!==e)return"string"==typeof r?r:w(r,t)}else if(Array.isArray(e))return function(e,n){if(0===e.length)return"[]";if(n.length>2)return"[Array]";for(var t=Math.min(10,e.length),i=e.length-t,r=[],o=0;o1&&r.push("... ".concat(i," more items"));return"["+r.join(", ")+"]"}(e,t);return function(e,n){var t=Object.keys(e);if(0===t.length)return"{}";if(n.length>2)return"["+function(e){var n=Object.prototype.toString.call(e).replace(/^\[object /,"").replace(/]$/,"");if("Object"===n&&"function"==typeof e.constructor){var t=e.constructor.name;if("string"==typeof t&&""!==t)return t}return n}(e)+"]";return"{ "+t.map((function(t){return t+": "+w(e[t],n)})).join(", ")+" }"}(e,t)}(e,n);default:return String(e)}}var F=Object.defineProperty({default:R},"__esModule",{value:!0}),P=function(e,n){if(!Boolean(e))throw new Error(n)};var M=Object.defineProperty({default:P},"__esModule",{value:!0}),B=r((function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default=function(e,n){return e instanceof n}})),U=r((function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.isSource=function(e){return(0,r.default)(e,s)},n.Source=void 0;var t=o(F),i=o(M),r=o(B);function o(e){return e&&e.__esModule?e:{default:e}}function a(e,n){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"GraphQL request",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{line:1,column:1};"string"==typeof e||(0,i.default)(0,"Body must be a string. Received: ".concat((0,t.default)(e),".")),this.body=e,this.name=n,this.locationOffset=r,this.locationOffset.line>0||(0,i.default)(0,"line in locationOffset is 1-indexed and must be positive."),this.locationOffset.column>0||(0,i.default)(0,"column in locationOffset is 1-indexed and must be positive.")}var n,r,o;return n=e,(r=[{key:c.SYMBOL_TO_STRING_TAG,get:function(){return"Source"}}])&&a(n.prototype,r),o&&a(n,o),e}();n.Source=s})),j=r((function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.DirectiveLocation=void 0;var t=Object.freeze({QUERY:"QUERY",MUTATION:"MUTATION",SUBSCRIPTION:"SUBSCRIPTION",FIELD:"FIELD",FRAGMENT_DEFINITION:"FRAGMENT_DEFINITION",FRAGMENT_SPREAD:"FRAGMENT_SPREAD",INLINE_FRAGMENT:"INLINE_FRAGMENT",VARIABLE_DEFINITION:"VARIABLE_DEFINITION",SCHEMA:"SCHEMA",SCALAR:"SCALAR",OBJECT:"OBJECT",FIELD_DEFINITION:"FIELD_DEFINITION",ARGUMENT_DEFINITION:"ARGUMENT_DEFINITION",INTERFACE:"INTERFACE",UNION:"UNION",ENUM:"ENUM",ENUM_VALUE:"ENUM_VALUE",INPUT_OBJECT:"INPUT_OBJECT",INPUT_FIELD_DEFINITION:"INPUT_FIELD_DEFINITION"});n.DirectiveLocation=t})),V=function(e){var n=e.split(/\r\n|[\n\r]/g),t=Q(e);if(0!==t)for(var i=1;ir&&J(n[o-1]);)--o;return n.slice(r,o).join("\n")},G=Q,Y=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=-1===e.indexOf("\n"),r=" "===e[0]||"\t"===e[0],o='"'===e[e.length-1],a="\\"===e[e.length-1],s=!i||o||a||t,c="";!s||i&&r||(c+="\n"+n);c+=n?e.replace(/\n/g,"\n"+n):e,s&&(c+="\n");return'"""'+c.replace(/"""/g,'\\"""')+'"""'};function J(e){for(var n=0;n31||9===o));return new b.Token(L.TokenKind.COMMENT,n,s,t,i,r,a.slice(n+1,s))}function s(e,n,t,r,o,a){var s=e.body,u=t,l=n,p=!1;if(45===u&&(u=s.charCodeAt(++l)),48===u){if((u=s.charCodeAt(++l))>=48&&u<=57)throw(0,N.syntaxError)(e,l,"Invalid number, unexpected digit after 0: ".concat(i(u),"."))}else l=c(e,l,u),u=s.charCodeAt(l);if(46===u&&(p=!0,u=s.charCodeAt(++l),l=c(e,l,u),u=s.charCodeAt(l)),69!==u&&101!==u||(p=!0,43!==(u=s.charCodeAt(++l))&&45!==u||(u=s.charCodeAt(++l)),l=c(e,l,u),u=s.charCodeAt(l)),46===u||function(e){return 95===e||e>=65&&e<=90||e>=97&&e<=122}(u))throw(0,N.syntaxError)(e,l,"Invalid number, expected digit but got: ".concat(i(u),"."));return new b.Token(p?L.TokenKind.FLOAT:L.TokenKind.INT,n,l,r,o,a,s.slice(n,l))}function c(e,n,t){var r=e.body,o=n,a=t;if(a>=48&&a<=57){do{a=r.charCodeAt(++o)}while(a>=48&&a<=57);return o}throw(0,N.syntaxError)(e,o,"Invalid number, expected digit but got: ".concat(i(a),"."))}function u(e,n,t,r,o){for(var a,s,c,u,l=e.body,d=n+1,h=d,f=0,T="";d=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function d(e,n,t,i,r){for(var o=e.body,a=o.length,s=n+1,c=0;s!==a&&!isNaN(c=o.charCodeAt(s))&&(95===c||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122);)++s;return new b.Token(L.TokenKind.NAME,n,s,t,i,r,o.slice(n,s))}n.Lexer=t})),H=r((function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.parse=function(e,n){return new t(e,n).parseDocument()},n.parseValue=function(e,n){var i=new t(e,n);i.expectToken(L.TokenKind.SOF);var r=i.parseValueLiteral(!1);return i.expectToken(L.TokenKind.EOF),r},n.parseType=function(e,n){var i=new t(e,n);i.expectToken(L.TokenKind.SOF);var r=i.parseTypeReference();return i.expectToken(L.TokenKind.EOF),r},n.Parser=void 0;var t=function(){function e(e,n){var t=(0,U.isSource)(e)?e:new U.Source(e);this._lexer=new q.Lexer(t),this._options=n}var n=e.prototype;return n.parseName=function(){var e=this.expectToken(L.TokenKind.NAME);return{kind:y.Kind.NAME,value:e.value,loc:this.loc(e)}},n.parseDocument=function(){var e=this._lexer.token;return{kind:y.Kind.DOCUMENT,definitions:this.many(L.TokenKind.SOF,this.parseDefinition,L.TokenKind.EOF),loc:this.loc(e)}},n.parseDefinition=function(){if(this.peek(L.TokenKind.NAME))switch(this._lexer.token.value){case"query":case"mutation":case"subscription":return this.parseOperationDefinition();case"fragment":return this.parseFragmentDefinition();case"schema":case"scalar":case"type":case"interface":case"union":case"enum":case"input":case"directive":return this.parseTypeSystemDefinition();case"extend":return this.parseTypeSystemExtension()}else{if(this.peek(L.TokenKind.BRACE_L))return this.parseOperationDefinition();if(this.peekDescription())return this.parseTypeSystemDefinition()}throw this.unexpected()},n.parseOperationDefinition=function(){var e=this._lexer.token;if(this.peek(L.TokenKind.BRACE_L))return{kind:y.Kind.OPERATION_DEFINITION,operation:"query",name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet(),loc:this.loc(e)};var n,t=this.parseOperationType();return this.peek(L.TokenKind.NAME)&&(n=this.parseName()),{kind:y.Kind.OPERATION_DEFINITION,operation:t,name:n,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},n.parseOperationType=function(){var e=this.expectToken(L.TokenKind.NAME);switch(e.value){case"query":return"query";case"mutation":return"mutation";case"subscription":return"subscription"}throw this.unexpected(e)},n.parseVariableDefinitions=function(){return this.optionalMany(L.TokenKind.PAREN_L,this.parseVariableDefinition,L.TokenKind.PAREN_R)},n.parseVariableDefinition=function(){var e=this._lexer.token;return{kind:y.Kind.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(L.TokenKind.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(L.TokenKind.EQUALS)?this.parseValueLiteral(!0):void 0,directives:this.parseDirectives(!0),loc:this.loc(e)}},n.parseVariable=function(){var e=this._lexer.token;return this.expectToken(L.TokenKind.DOLLAR),{kind:y.Kind.VARIABLE,name:this.parseName(),loc:this.loc(e)}},n.parseSelectionSet=function(){var e=this._lexer.token;return{kind:y.Kind.SELECTION_SET,selections:this.many(L.TokenKind.BRACE_L,this.parseSelection,L.TokenKind.BRACE_R),loc:this.loc(e)}},n.parseSelection=function(){return this.peek(L.TokenKind.SPREAD)?this.parseFragment():this.parseField()},n.parseField=function(){var e,n,t=this._lexer.token,i=this.parseName();return this.expectOptionalToken(L.TokenKind.COLON)?(e=i,n=this.parseName()):n=i,{kind:y.Kind.FIELD,alias:e,name:n,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(L.TokenKind.BRACE_L)?this.parseSelectionSet():void 0,loc:this.loc(t)}},n.parseArguments=function(e){var n=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(L.TokenKind.PAREN_L,n,L.TokenKind.PAREN_R)},n.parseArgument=function(){var e=this._lexer.token,n=this.parseName();return this.expectToken(L.TokenKind.COLON),{kind:y.Kind.ARGUMENT,name:n,value:this.parseValueLiteral(!1),loc:this.loc(e)}},n.parseConstArgument=function(){var e=this._lexer.token;return{kind:y.Kind.ARGUMENT,name:this.parseName(),value:(this.expectToken(L.TokenKind.COLON),this.parseValueLiteral(!0)),loc:this.loc(e)}},n.parseFragment=function(){var e=this._lexer.token;this.expectToken(L.TokenKind.SPREAD);var n=this.expectOptionalKeyword("on");return!n&&this.peek(L.TokenKind.NAME)?{kind:y.Kind.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1),loc:this.loc(e)}:{kind:y.Kind.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(e)}},n.parseFragmentDefinition=function(){var e,n=this._lexer.token;return this.expectKeyword("fragment"),!0===(null===(e=this._options)||void 0===e?void 0:e.experimentalFragmentVariables)?{kind:y.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}:{kind:y.Kind.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword("on"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet(),loc:this.loc(n)}},n.parseFragmentName=function(){if("on"===this._lexer.token.value)throw this.unexpected();return this.parseName()},n.parseValueLiteral=function(e){var n=this._lexer.token;switch(n.kind){case L.TokenKind.BRACKET_L:return this.parseList(e);case L.TokenKind.BRACE_L:return this.parseObject(e);case L.TokenKind.INT:return this._lexer.advance(),{kind:y.Kind.INT,value:n.value,loc:this.loc(n)};case L.TokenKind.FLOAT:return this._lexer.advance(),{kind:y.Kind.FLOAT,value:n.value,loc:this.loc(n)};case L.TokenKind.STRING:case L.TokenKind.BLOCK_STRING:return this.parseStringLiteral();case L.TokenKind.NAME:switch(this._lexer.advance(),n.value){case"true":return{kind:y.Kind.BOOLEAN,value:!0,loc:this.loc(n)};case"false":return{kind:y.Kind.BOOLEAN,value:!1,loc:this.loc(n)};case"null":return{kind:y.Kind.NULL,loc:this.loc(n)};default:return{kind:y.Kind.ENUM,value:n.value,loc:this.loc(n)}}case L.TokenKind.DOLLAR:if(!e)return this.parseVariable()}throw this.unexpected()},n.parseStringLiteral=function(){var e=this._lexer.token;return this._lexer.advance(),{kind:y.Kind.STRING,value:e.value,block:e.kind===L.TokenKind.BLOCK_STRING,loc:this.loc(e)}},n.parseList=function(e){var n=this,t=this._lexer.token;return{kind:y.Kind.LIST,values:this.any(L.TokenKind.BRACKET_L,(function(){return n.parseValueLiteral(e)}),L.TokenKind.BRACKET_R),loc:this.loc(t)}},n.parseObject=function(e){var n=this,t=this._lexer.token;return{kind:y.Kind.OBJECT,fields:this.any(L.TokenKind.BRACE_L,(function(){return n.parseObjectField(e)}),L.TokenKind.BRACE_R),loc:this.loc(t)}},n.parseObjectField=function(e){var n=this._lexer.token,t=this.parseName();return this.expectToken(L.TokenKind.COLON),{kind:y.Kind.OBJECT_FIELD,name:t,value:this.parseValueLiteral(e),loc:this.loc(n)}},n.parseDirectives=function(e){for(var n=[];this.peek(L.TokenKind.AT);)n.push(this.parseDirective(e));return n},n.parseDirective=function(e){var n=this._lexer.token;return this.expectToken(L.TokenKind.AT),{kind:y.Kind.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e),loc:this.loc(n)}},n.parseTypeReference=function(){var e,n=this._lexer.token;return this.expectOptionalToken(L.TokenKind.BRACKET_L)?(e=this.parseTypeReference(),this.expectToken(L.TokenKind.BRACKET_R),e={kind:y.Kind.LIST_TYPE,type:e,loc:this.loc(n)}):e=this.parseNamedType(),this.expectOptionalToken(L.TokenKind.BANG)?{kind:y.Kind.NON_NULL_TYPE,type:e,loc:this.loc(n)}:e},n.parseNamedType=function(){var e=this._lexer.token;return{kind:y.Kind.NAMED_TYPE,name:this.parseName(),loc:this.loc(e)}},n.parseTypeSystemDefinition=function(){var e=this.peekDescription()?this._lexer.lookahead():this._lexer.token;if(e.kind===L.TokenKind.NAME)switch(e.value){case"schema":return this.parseSchemaDefinition();case"scalar":return this.parseScalarTypeDefinition();case"type":return this.parseObjectTypeDefinition();case"interface":return this.parseInterfaceTypeDefinition();case"union":return this.parseUnionTypeDefinition();case"enum":return this.parseEnumTypeDefinition();case"input":return this.parseInputObjectTypeDefinition();case"directive":return this.parseDirectiveDefinition()}throw this.unexpected(e)},n.peekDescription=function(){return this.peek(L.TokenKind.STRING)||this.peek(L.TokenKind.BLOCK_STRING)},n.parseDescription=function(){if(this.peekDescription())return this.parseStringLiteral()},n.parseSchemaDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("schema");var t=this.parseDirectives(!0),i=this.many(L.TokenKind.BRACE_L,this.parseOperationTypeDefinition,L.TokenKind.BRACE_R);return{kind:y.Kind.SCHEMA_DEFINITION,description:n,directives:t,operationTypes:i,loc:this.loc(e)}},n.parseOperationTypeDefinition=function(){var e=this._lexer.token,n=this.parseOperationType();this.expectToken(L.TokenKind.COLON);var t=this.parseNamedType();return{kind:y.Kind.OPERATION_TYPE_DEFINITION,operation:n,type:t,loc:this.loc(e)}},n.parseScalarTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("scalar");var t=this.parseName(),i=this.parseDirectives(!0);return{kind:y.Kind.SCALAR_TYPE_DEFINITION,description:n,name:t,directives:i,loc:this.loc(e)}},n.parseObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("type");var t=this.parseName(),i=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),o=this.parseFieldsDefinition();return{kind:y.Kind.OBJECT_TYPE_DEFINITION,description:n,name:t,interfaces:i,directives:r,fields:o,loc:this.loc(e)}},n.parseImplementsInterfaces=function(){var e;if(!this.expectOptionalKeyword("implements"))return[];if(!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLImplementsInterfaces)){var n=[];this.expectOptionalToken(L.TokenKind.AMP);do{n.push(this.parseNamedType())}while(this.expectOptionalToken(L.TokenKind.AMP)||this.peek(L.TokenKind.NAME));return n}return this.delimitedMany(L.TokenKind.AMP,this.parseNamedType)},n.parseFieldsDefinition=function(){var e;return!0===(null===(e=this._options)||void 0===e?void 0:e.allowLegacySDLEmptyFields)&&this.peek(L.TokenKind.BRACE_L)&&this._lexer.lookahead().kind===L.TokenKind.BRACE_R?(this._lexer.advance(),this._lexer.advance(),[]):this.optionalMany(L.TokenKind.BRACE_L,this.parseFieldDefinition,L.TokenKind.BRACE_R)},n.parseFieldDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),i=this.parseArgumentDefs();this.expectToken(L.TokenKind.COLON);var r=this.parseTypeReference(),o=this.parseDirectives(!0);return{kind:y.Kind.FIELD_DEFINITION,description:n,name:t,arguments:i,type:r,directives:o,loc:this.loc(e)}},n.parseArgumentDefs=function(){return this.optionalMany(L.TokenKind.PAREN_L,this.parseInputValueDef,L.TokenKind.PAREN_R)},n.parseInputValueDef=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName();this.expectToken(L.TokenKind.COLON);var i,r=this.parseTypeReference();this.expectOptionalToken(L.TokenKind.EQUALS)&&(i=this.parseValueLiteral(!0));var o=this.parseDirectives(!0);return{kind:y.Kind.INPUT_VALUE_DEFINITION,description:n,name:t,type:r,defaultValue:i,directives:o,loc:this.loc(e)}},n.parseInterfaceTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("interface");var t=this.parseName(),i=this.parseImplementsInterfaces(),r=this.parseDirectives(!0),o=this.parseFieldsDefinition();return{kind:y.Kind.INTERFACE_TYPE_DEFINITION,description:n,name:t,interfaces:i,directives:r,fields:o,loc:this.loc(e)}},n.parseUnionTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("union");var t=this.parseName(),i=this.parseDirectives(!0),r=this.parseUnionMemberTypes();return{kind:y.Kind.UNION_TYPE_DEFINITION,description:n,name:t,directives:i,types:r,loc:this.loc(e)}},n.parseUnionMemberTypes=function(){return this.expectOptionalToken(L.TokenKind.EQUALS)?this.delimitedMany(L.TokenKind.PIPE,this.parseNamedType):[]},n.parseEnumTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("enum");var t=this.parseName(),i=this.parseDirectives(!0),r=this.parseEnumValuesDefinition();return{kind:y.Kind.ENUM_TYPE_DEFINITION,description:n,name:t,directives:i,values:r,loc:this.loc(e)}},n.parseEnumValuesDefinition=function(){return this.optionalMany(L.TokenKind.BRACE_L,this.parseEnumValueDefinition,L.TokenKind.BRACE_R)},n.parseEnumValueDefinition=function(){var e=this._lexer.token,n=this.parseDescription(),t=this.parseName(),i=this.parseDirectives(!0);return{kind:y.Kind.ENUM_VALUE_DEFINITION,description:n,name:t,directives:i,loc:this.loc(e)}},n.parseInputObjectTypeDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("input");var t=this.parseName(),i=this.parseDirectives(!0),r=this.parseInputFieldsDefinition();return{kind:y.Kind.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:t,directives:i,fields:r,loc:this.loc(e)}},n.parseInputFieldsDefinition=function(){return this.optionalMany(L.TokenKind.BRACE_L,this.parseInputValueDef,L.TokenKind.BRACE_R)},n.parseTypeSystemExtension=function(){var e=this._lexer.lookahead();if(e.kind===L.TokenKind.NAME)switch(e.value){case"schema":return this.parseSchemaExtension();case"scalar":return this.parseScalarTypeExtension();case"type":return this.parseObjectTypeExtension();case"interface":return this.parseInterfaceTypeExtension();case"union":return this.parseUnionTypeExtension();case"enum":return this.parseEnumTypeExtension();case"input":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)},n.parseSchemaExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("schema");var n=this.parseDirectives(!0),t=this.optionalMany(L.TokenKind.BRACE_L,this.parseOperationTypeDefinition,L.TokenKind.BRACE_R);if(0===n.length&&0===t.length)throw this.unexpected();return{kind:y.Kind.SCHEMA_EXTENSION,directives:n,operationTypes:t,loc:this.loc(e)}},n.parseScalarTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("scalar");var n=this.parseName(),t=this.parseDirectives(!0);if(0===t.length)throw this.unexpected();return{kind:y.Kind.SCALAR_TYPE_EXTENSION,name:n,directives:t,loc:this.loc(e)}},n.parseObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("type");var n=this.parseName(),t=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),r=this.parseFieldsDefinition();if(0===t.length&&0===i.length&&0===r.length)throw this.unexpected();return{kind:y.Kind.OBJECT_TYPE_EXTENSION,name:n,interfaces:t,directives:i,fields:r,loc:this.loc(e)}},n.parseInterfaceTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("interface");var n=this.parseName(),t=this.parseImplementsInterfaces(),i=this.parseDirectives(!0),r=this.parseFieldsDefinition();if(0===t.length&&0===i.length&&0===r.length)throw this.unexpected();return{kind:y.Kind.INTERFACE_TYPE_EXTENSION,name:n,interfaces:t,directives:i,fields:r,loc:this.loc(e)}},n.parseUnionTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("union");var n=this.parseName(),t=this.parseDirectives(!0),i=this.parseUnionMemberTypes();if(0===t.length&&0===i.length)throw this.unexpected();return{kind:y.Kind.UNION_TYPE_EXTENSION,name:n,directives:t,types:i,loc:this.loc(e)}},n.parseEnumTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("enum");var n=this.parseName(),t=this.parseDirectives(!0),i=this.parseEnumValuesDefinition();if(0===t.length&&0===i.length)throw this.unexpected();return{kind:y.Kind.ENUM_TYPE_EXTENSION,name:n,directives:t,values:i,loc:this.loc(e)}},n.parseInputObjectTypeExtension=function(){var e=this._lexer.token;this.expectKeyword("extend"),this.expectKeyword("input");var n=this.parseName(),t=this.parseDirectives(!0),i=this.parseInputFieldsDefinition();if(0===t.length&&0===i.length)throw this.unexpected();return{kind:y.Kind.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:t,fields:i,loc:this.loc(e)}},n.parseDirectiveDefinition=function(){var e=this._lexer.token,n=this.parseDescription();this.expectKeyword("directive"),this.expectToken(L.TokenKind.AT);var t=this.parseName(),i=this.parseArgumentDefs(),r=this.expectOptionalKeyword("repeatable");this.expectKeyword("on");var o=this.parseDirectiveLocations();return{kind:y.Kind.DIRECTIVE_DEFINITION,description:n,name:t,arguments:i,repeatable:r,locations:o,loc:this.loc(e)}},n.parseDirectiveLocations=function(){return this.delimitedMany(L.TokenKind.PIPE,this.parseDirectiveLocation)},n.parseDirectiveLocation=function(){var e=this._lexer.token,n=this.parseName();if(void 0!==j.DirectiveLocation[n.value])return n;throw this.unexpected(e)},n.loc=function(e){var n;if(!0!==(null===(n=this._options)||void 0===n?void 0:n.noLocation))return new b.Location(e,this._lexer.lastToken,this._lexer.source)},n.peek=function(e){return this._lexer.token.kind===e},n.expectToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n;throw(0,N.syntaxError)(this._lexer.source,n.start,"Expected ".concat(r(e),", found ").concat(i(n),"."))},n.expectOptionalToken=function(e){var n=this._lexer.token;if(n.kind===e)return this._lexer.advance(),n},n.expectKeyword=function(e){var n=this._lexer.token;if(n.kind!==L.TokenKind.NAME||n.value!==e)throw(0,N.syntaxError)(this._lexer.source,n.start,'Expected "'.concat(e,'", found ').concat(i(n),"."));this._lexer.advance()},n.expectOptionalKeyword=function(e){var n=this._lexer.token;return n.kind===L.TokenKind.NAME&&n.value===e&&(this._lexer.advance(),!0)},n.unexpected=function(e){var n=null!=e?e:this._lexer.token;return(0,N.syntaxError)(this._lexer.source,n.start,"Unexpected ".concat(i(n),"."))},n.any=function(e,n,t){this.expectToken(e);for(var i=[];!this.expectOptionalToken(t);)i.push(n.call(this));return i},n.optionalMany=function(e,n,t){if(this.expectOptionalToken(e)){var i=[];do{i.push(n.call(this))}while(!this.expectOptionalToken(t));return i}return[]},n.many=function(e,n,t){this.expectToken(e);var i=[];do{i.push(n.call(this))}while(!this.expectOptionalToken(t));return i},n.delimitedMany=function(e,n){this.expectOptionalToken(e);var t=[];do{t.push(n.call(this))}while(this.expectOptionalToken(e));return t},e}();function i(e){var n=e.value;return r(e.kind)+(null!=n?' "'.concat(n,'"'):"")}function r(e){return(0,q.isPunctuatorTokenKind)(e)?'"'.concat(e,'"'):e}n.Parser=t}));const{hasPragma:z}=t,{locStart:$,locEnd:W}=i;function Z(e){if(e&&"object"==typeof e){delete e.startToken,delete e.endToken,delete e.prev,delete e.next;for(const n in e)Z(e[n])}return e}const ee={allowLegacySDLImplementsInterfaces:!1,experimentalFragmentVariables:!0};var ne={parsers:{graphql:{parse:function(t){const{parse:i}=H,{result:r,error:o}=n((()=>i(t,Object.assign({},ee))),(()=>i(t,Object.assign(Object.assign({},ee),{},{allowLegacySDLImplementsInterfaces:!0}))));if(!r)throw function(n){const{GraphQLError:t}=v;if(n instanceof t){const{message:t,locations:[i]}=n;return e(t,{start:i})}return n}(o);return r.comments=function(e){const n=[],{startToken:t}=e.loc;let{next:i}=t;for(;""!==i.kind;)"Comment"===i.kind&&(Object.assign(i,{column:i.column-1}),n.push(i)),i=i.next;return n}(r),Z(r),r},astFormat:"graphql",hasPragma:z,locStart:$,locEnd:W}}};export default ne; diff --git a/node_modules/prettier/esm/parser-html.mjs b/node_modules/prettier/esm/parser-html.mjs new file mode 100644 index 0000000000..405134c031 --- /dev/null +++ b/node_modules/prettier/esm/parser-html.mjs @@ -0,0 +1,132 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){var t={exports:{}};return e(t,t.exports),t.exports}var r=t((function(e,t){function r(e){return t.$0<=e&&e<=t.$9} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +Object.defineProperty(t,"__esModule",{value:!0}),t.$EOF=0,t.$BSPACE=8,t.$TAB=9,t.$LF=10,t.$VTAB=11,t.$FF=12,t.$CR=13,t.$SPACE=32,t.$BANG=33,t.$DQ=34,t.$HASH=35,t.$$=36,t.$PERCENT=37,t.$AMPERSAND=38,t.$SQ=39,t.$LPAREN=40,t.$RPAREN=41,t.$STAR=42,t.$PLUS=43,t.$COMMA=44,t.$MINUS=45,t.$PERIOD=46,t.$SLASH=47,t.$COLON=58,t.$SEMICOLON=59,t.$LT=60,t.$EQ=61,t.$GT=62,t.$QUESTION=63,t.$0=48,t.$7=55,t.$9=57,t.$A=65,t.$E=69,t.$F=70,t.$X=88,t.$Z=90,t.$LBRACKET=91,t.$BACKSLASH=92,t.$RBRACKET=93,t.$CARET=94,t.$_=95,t.$a=97,t.$b=98,t.$e=101,t.$f=102,t.$n=110,t.$r=114,t.$t=116,t.$u=117,t.$v=118,t.$x=120,t.$z=122,t.$LBRACE=123,t.$BAR=124,t.$RBRACE=125,t.$NBSP=160,t.$PIPE=124,t.$TILDA=126,t.$AT=64,t.$BT=96,t.isWhitespace=function(e){return e>=t.$TAB&&e<=t.$SPACE||e==t.$NBSP},t.isDigit=r,t.isAsciiLetter=function(e){return e>=t.$a&&e<=t.$z||e>=t.$A&&e<=t.$Z},t.isAsciiHexDigit=function(e){return e>=t.$a&&e<=t.$f||e>=t.$A&&e<=t.$F||r(e)},t.isNewLine=function(e){return e===t.$LF||e===t.$CR},t.isOctalDigit=function(e){return t.$0<=e&&e<=t.$7}})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */class n{constructor(e,t,r){this.filePath=e,this.name=t,this.members=r}assertNoMembers(){if(this.members.length)throw new Error(`Illegal state: symbol without members expected, but got ${JSON.stringify(this)}.`)}}var i=n;var s=class{constructor(){this.cache=new Map}get(e,t,r){const i=`"${e}".${t}${(r=r||[]).length?`.${r.join(".")}`:""}`;let s=this.cache.get(i);return s||(s=new n(e,t,r),this.cache.set(i,s)),s}},o=Object.defineProperty({StaticSymbol:i,StaticSymbolCache:s},"__esModule",{value:!0}); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const a=/-+([a-z0-9])/g;var u=function(e){return e.replace(a,((...e)=>e[1].toUpperCase()))};var c=function(e,t){return p(e,":",t)};var l=function(e,t){return p(e,".",t)};function p(e,t,r){const n=e.indexOf(t);return-1==n?r:[e.slice(0,n).trim(),e.slice(n+1).trim()]}function D(e,t,r){return Array.isArray(e)?t.visitArray(e,r):"object"==typeof(n=e)&&null!==n&&Object.getPrototypeOf(n)===b?t.visitStringMap(e,r):null==e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e?t.visitPrimitive(e,r):t.visitOther(e,r);var n}var h=D;var d=function(e){return null!=e};var f=function(e){return void 0===e?null:e};var m=class{visitArray(e,t){return e.map((e=>D(e,this,t)))}visitStringMap(e,t){const r={};return Object.keys(e).forEach((n=>{r[n]=D(e[n],this,t)})),r}visitPrimitive(e,t){return e}visitOther(e,t){return e}},g={assertSync:e=>{if(N(e))throw new Error("Illegal state: value cannot be a promise");return e},then:(e,t)=>N(e)?e.then(t):t(e),all:e=>e.some(N)?Promise.all(e):e};var E=function(e){throw new Error(`Internal Error: ${e}`)};var C=function(e,t){const r=Error(e);return r[T]=!0,t&&(r[y]=t),r};const T="ngSyntaxError",y="ngParseErrors";var S=function(e){return e[T]};var _=function(e){return e[y]||[]};var v=function(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};const b=Object.getPrototypeOf({});var F=function(e){let t="";for(let r=0;r=55296&&n<=56319&&e.length>r+1){const t=e.charCodeAt(r+1);t>=56320&&t<=57343&&(r++,n=(n-55296<<10)+t-56320+65536)}n<=127?t+=String.fromCharCode(n):n<=2047?t+=String.fromCharCode(n>>6&31|192,63&n|128):n<=65535?t+=String.fromCharCode(n>>12|224,n>>6&63|128,63&n|128):n<=2097151&&(t+=String.fromCharCode(n>>18&7|240,n>>12&63|128,n>>6&63|128,63&n|128))}return t};var A=function e(t){if("string"==typeof t)return t;if(t instanceof Array)return"["+t.map(e).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;if(!t.toString)return"object";const r=t.toString();if(null==r)return""+r;const n=r.indexOf("\n");return-1===n?r:r.substring(0,n)};var w=function(e){return"function"==typeof e&&e.hasOwnProperty("__forward_ref__")?e():e};function N(e){return!!e&&"function"==typeof e.then}var k=N;var O=class{constructor(e){this.full=e;const t=e.split(".");this.major=t[0],this.minor=t[1],this.patch=t.slice(2).join(".")}};const x="undefined"!=typeof window&&window,I="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self;var P=void 0!==e&&e||x||I,R=Object.defineProperty({dashCaseToCamelCase:u,splitAtColon:c,splitAtPeriod:l,visitValue:h,isDefined:d,noUndefined:f,ValueTransformer:m,SyncAsync:g,error:E,syntaxError:C,isSyntaxError:S,getParseErrors:_,escapeRegExp:v,utf8Encode:F,stringify:A,resolveForwardRef:w,isPromise:k,Version:O,global:P},"__esModule",{value:!0}),L=t((function(e,t){ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +Object.defineProperty(t,"__esModule",{value:!0});const r=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/;function n(e){return e.replace(/\W/g,"_")}t.sanitizeIdentifier=n;let i=0;function s(e){if(!e||!e.reference)return null;const t=e.reference;if(t instanceof o.StaticSymbol)return t.name;if(t.__anonymousType)return t.__anonymousType;let r=R.stringify(t);return r.indexOf("(")>=0?(r="anonymous_"+i++,t.__anonymousType=r):r=n(r),r}var a;t.identifierName=s,t.identifierModuleUrl=function(e){const t=e.reference;return t instanceof o.StaticSymbol?t.filePath:`./${R.stringify(t)}`},t.viewClassName=function(e,t){return`View_${s({reference:e})}_${t}`},t.rendererTypeName=function(e){return`RenderType_${s({reference:e})}`},t.hostViewClassName=function(e){return`HostView_${s({reference:e})}`},t.componentFactoryName=function(e){return`${s({reference:e})}NgFactory`},function(e){e[e.Pipe=0]="Pipe",e[e.Directive=1]="Directive",e[e.NgModule=2]="NgModule",e[e.Injectable=3]="Injectable"}(a=t.CompileSummaryKind||(t.CompileSummaryKind={})),t.tokenName=function(e){return null!=e.value?n(e.value):s(e.identifier)},t.tokenReference=function(e){return null!=e.identifier?e.identifier.reference:e.value};t.CompileStylesheetMetadata=class{constructor({moduleUrl:e,styles:t,styleUrls:r}={}){this.moduleUrl=e||null,this.styles=c(t),this.styleUrls=c(r)}};t.CompileTemplateMetadata=class{constructor({encapsulation:e,template:t,templateUrl:r,htmlAst:n,styles:i,styleUrls:s,externalStylesheets:o,animations:a,ngContentSelectors:u,interpolation:p,isInline:D,preserveWhitespaces:h}){if(this.encapsulation=e,this.template=t,this.templateUrl=r,this.htmlAst=n,this.styles=c(i),this.styleUrls=c(s),this.externalStylesheets=c(o),this.animations=a?l(a):[],this.ngContentSelectors=u||[],p&&2!=p.length)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=p,this.isInline=D,this.preserveWhitespaces=h}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};class u{static create({isHost:e,type:t,isComponent:n,selector:i,exportAs:s,changeDetection:o,inputs:a,outputs:c,host:l,providers:p,viewProviders:D,queries:h,guards:d,viewQueries:f,entryComponents:m,template:g,componentViewType:E,rendererType:C,componentFactory:T}){const y={},S={},_={};null!=l&&Object.keys(l).forEach((e=>{const t=l[e],n=e.match(r);null===n?_[e]=t:null!=n[1]?S[n[1]]=t:null!=n[2]&&(y[n[2]]=t)}));const v={};null!=a&&a.forEach((e=>{const t=R.splitAtColon(e,[e,e]);v[t[0]]=t[1]}));const b={};return null!=c&&c.forEach((e=>{const t=R.splitAtColon(e,[e,e]);b[t[0]]=t[1]})),new u({isHost:e,type:t,isComponent:!!n,selector:i,exportAs:s,changeDetection:o,inputs:v,outputs:b,hostListeners:y,hostProperties:S,hostAttributes:_,providers:p,viewProviders:D,queries:h,guards:d,viewQueries:f,entryComponents:m,template:g,componentViewType:E,rendererType:C,componentFactory:T})}constructor({isHost:e,type:t,isComponent:r,selector:n,exportAs:i,changeDetection:s,inputs:o,outputs:a,hostListeners:u,hostProperties:l,hostAttributes:p,providers:D,viewProviders:h,queries:d,guards:f,viewQueries:m,entryComponents:g,template:E,componentViewType:C,rendererType:T,componentFactory:y}){this.isHost=!!e,this.type=t,this.isComponent=r,this.selector=n,this.exportAs=i,this.changeDetection=s,this.inputs=o,this.outputs=a,this.hostListeners=u,this.hostProperties=l,this.hostAttributes=p,this.providers=c(D),this.viewProviders=c(h),this.queries=c(d),this.guards=f,this.viewQueries=c(m),this.entryComponents=c(g),this.template=E,this.componentViewType=C,this.rendererType=T,this.componentFactory=y}toSummary(){return{summaryKind:a.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}}t.CompileDirectiveMetadata=u;t.CompilePipeMetadata=class{constructor({type:e,name:t,pure:r}){this.type=e,this.name=t,this.pure=!!r}toSummary(){return{summaryKind:a.Pipe,type:this.type,name:this.name,pure:this.pure}}};t.CompileShallowModuleMetadata=class{};t.CompileNgModuleMetadata=class{constructor({type:e,providers:t,declaredDirectives:r,exportedDirectives:n,declaredPipes:i,exportedPipes:s,entryComponents:o,bootstrapComponents:a,importedModules:u,exportedModules:l,schemas:p,transitiveModule:D,id:h}){this.type=e||null,this.declaredDirectives=c(r),this.exportedDirectives=c(n),this.declaredPipes=c(i),this.exportedPipes=c(s),this.providers=c(t),this.entryComponents=c(o),this.bootstrapComponents=c(a),this.importedModules=c(u),this.exportedModules=c(l),this.schemas=c(p),this.id=h||null,this.transitiveModule=D||null}toSummary(){const e=this.transitiveModule;return{summaryKind:a.NgModule,type:this.type,entryComponents:e.entryComponents,providers:e.providers,modules:e.modules,exportedDirectives:e.exportedDirectives,exportedPipes:e.exportedPipes}}};function c(e){return e||[]}t.TransitiveCompileNgModuleMetadata=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(e,t){this.providers.push({provider:e,module:t})}addDirective(e){this.directivesSet.has(e.reference)||(this.directivesSet.add(e.reference),this.directives.push(e))}addExportedDirective(e){this.exportedDirectivesSet.has(e.reference)||(this.exportedDirectivesSet.add(e.reference),this.exportedDirectives.push(e))}addPipe(e){this.pipesSet.has(e.reference)||(this.pipesSet.add(e.reference),this.pipes.push(e))}addExportedPipe(e){this.exportedPipesSet.has(e.reference)||(this.exportedPipesSet.add(e.reference),this.exportedPipes.push(e))}addModule(e){this.modulesSet.has(e.reference)||(this.modulesSet.add(e.reference),this.modules.push(e))}addEntryComponent(e){this.entryComponentsSet.has(e.componentType)||(this.entryComponentsSet.add(e.componentType),this.entryComponents.push(e))}};function l(e){return e.reduce(((e,t)=>{const r=Array.isArray(t)?l(t):t;return e.concat(r)}),[])}function p(e){return e.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}t.ProviderMeta=class{constructor(e,{useClass:t,useValue:r,useExisting:n,useFactory:i,deps:s,multi:o}){this.token=e,this.useClass=t||null,this.useValue=r,this.useExisting=n,this.useFactory=i||null,this.dependencies=s||null,this.multi=!!o}},t.flatten=l,t.templateSourceUrl=function(e,t,r){let n;return n=r.isInline?t.type.reference instanceof o.StaticSymbol?`${t.type.reference.filePath}.${t.type.reference.name}.html`:`${s(e)}/${s(t.type)}.html`:r.templateUrl,t.type.reference instanceof o.StaticSymbol?n:p(n)},t.sharedStylesheetJitUrl=function(e,t){const r=e.moduleUrl.split(/\/\\/g);return p(`css/${t}${r[r.length-1]}.ngstyle.js`)},t.ngModuleJitUrl=function(e){return p(`${s(e.type)}/module.ngfactory.js`)},t.templateJitUrl=function(e,t){return p(`${s(e)}/${s(t.type)}.ngfactory.js`)}})),B=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class n{constructor(e,t,r,n){this.file=e,this.offset=t,this.line=r,this.col=n}toString(){return null!=this.offset?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(e){const t=this.file.content,i=t.length;let s=this.offset,o=this.line,a=this.col;for(;s>0&&e<0;){s--,e++;if(t.charCodeAt(s)==r.$LF){o--;const e=t.substr(0,s-1).lastIndexOf(String.fromCharCode(r.$LF));a=e>0?s-e:s}else a--}for(;s0;){const n=t.charCodeAt(s);s++,e--,n==r.$LF?(o++,a=0):a++}return new n(this.file,s,o,a)}getContext(e,t){const r=this.file.content;let n=this.offset;if(null!=n){n>r.length-1&&(n=r.length-1);let i=n,s=0,o=0;for(;s0&&(n--,s++,"\n"!=r[n]||++o!=t););for(s=0,o=0;s]${e.after}")`:this.msg}toString(){const e=this.span.details?`, ${this.span.details}`:"";return`${this.contextualMessage()}: ${this.span.start}${e}`}},t.typeSourceSpan=function(e,t){const r=L.identifierModuleUrl(t),o=null!=r?`in ${e} ${L.identifierName(t)} in ${r}`:`in ${e} ${L.identifierName(t)}`,a=new i("",o);return new s(new n(a,-1,-1,-1),new n(a,-1,-1,-1))},t.r3JitTypeSourceSpan=function(e,t,r){const o=new i("",`in ${e} ${t} in ${r}`);return new s(new n(o,-1,-1,-1),new n(o,-1,-1,-1))}}));const $=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");var q=function(e){const t=e.match($);if(!t)return{content:e};const{startDelimiter:r,language:n,value:i="",endDelimiter:s}=t.groups;let o=n.trim()||"yaml";if("+++"===r&&(o="toml"),"yaml"!==o&&r!==s)return{content:e};const[a]=t;return{frontMatter:{type:"front-matter",lang:o,value:i,startDelimiter:r,endDelimiter:s,raw:a.replace(/\n$/,"")},content:a.replace(/[^\n]/g," ")+e.slice(a.length)}};var M=e=>e[e.length-1];var U=function(e,t){const r=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return r.loc=t,r},G=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const j=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var V=j,H=j;V.default=H;const X=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=G(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let t=0;for(let r=0;r=127&&n<=159||(n>=768&&n<=879||(n>65535&&r++,t+=V(n)?2:1))}return t};var z=X,W=X;z.default=W;var Y=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};function Q(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var J=function(e){return e&&e.Math==Math&&e},K=J("object"==typeof globalThis&&globalThis)||J("object"==typeof window&&window)||J("object"==typeof self&&self)||J("object"==typeof e&&e)||function(){return this}()||Function("return this")(),Z=function(e){try{return!!e()}catch(e){return!0}},ee=!Z((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),te={}.propertyIsEnumerable,re=Object.getOwnPropertyDescriptor,ne={f:re&&!te.call({1:2},1)?function(e){var t=re(this,e);return!!t&&t.enumerable}:te},ie=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},se={}.toString,oe=function(e){return se.call(e).slice(8,-1)},ae="".split,ue=Z((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==oe(e)?ae.call(e,""):Object(e)}:Object,ce=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},le=function(e){return ue(ce(e))},pe=function(e){return"object"==typeof e?null!==e:"function"==typeof e},De=function(e,t){if(!pe(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!pe(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!pe(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!pe(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")},he=function(e){return Object(ce(e))},de={}.hasOwnProperty,fe=Object.hasOwn||function(e,t){return de.call(he(e),t)},me=K.document,ge=pe(me)&&pe(me.createElement),Ee=!ee&&!Z((function(){return 7!=Object.defineProperty((e="div",ge?me.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),Ce=Object.getOwnPropertyDescriptor,Te={f:ee?Ce:function(e,t){if(e=le(e),t=De(t,!0),Ee)try{return Ce(e,t)}catch(e){}if(fe(e,t))return ie(!ne.f.call(e,t),e[t])}},ye=function(e){if(!pe(e))throw TypeError(String(e)+" is not an object");return e},Se=Object.defineProperty,_e={f:ee?Se:function(e,t,r){if(ye(e),t=De(t,!0),ye(r),Ee)try{return Se(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},ve=ee?function(e,t,r){return _e.f(e,t,ie(1,r))}:function(e,t,r){return e[t]=r,e},be=function(e,t){try{ve(K,e,t)}catch(r){K[e]=t}return t},Fe=K["__core-js_shared__"]||be("__core-js_shared__",{}),Ae=Function.toString;"function"!=typeof Fe.inspectSource&&(Fe.inspectSource=function(e){return Ae.call(e)});var we,Ne,ke,Oe,xe=Fe.inspectSource,Ie=K.WeakMap,Pe="function"==typeof Ie&&/native code/.test(xe(Ie)),Re=t((function(e){(e.exports=function(e,t){return Fe[e]||(Fe[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),Le=0,Be=Math.random(),$e=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Le+Be).toString(36)},qe=Re("keys"),Me={},Ue=K.WeakMap;if(Pe||Fe.state){var Ge=Fe.state||(Fe.state=new Ue),je=Ge.get,Ve=Ge.has,He=Ge.set;we=function(e,t){if(Ve.call(Ge,e))throw new TypeError("Object already initialized");return t.facade=e,He.call(Ge,e,t),t},Ne=function(e){return je.call(Ge,e)||{}},ke=function(e){return Ve.call(Ge,e)}}else{var Xe=qe[Oe="state"]||(qe[Oe]=$e(Oe));Me[Xe]=!0,we=function(e,t){if(fe(e,Xe))throw new TypeError("Object already initialized");return t.facade=e,ve(e,Xe,t),t},Ne=function(e){return fe(e,Xe)?e[Xe]:{}},ke=function(e){return fe(e,Xe)}}var ze,We,Ye={set:we,get:Ne,has:ke,enforce:function(e){return ke(e)?Ne(e):we(e,{})},getterFor:function(e){return function(t){var r;if(!pe(t)||(r=Ne(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}},Qe=t((function(e){var t=Ye.get,r=Ye.enforce,n=String(String).split("String");(e.exports=function(e,t,i,s){var o,a=!!s&&!!s.unsafe,u=!!s&&!!s.enumerable,c=!!s&&!!s.noTargetGet;"function"==typeof i&&("string"!=typeof t||fe(i,"name")||ve(i,"name",t),(o=r(i)).source||(o.source=n.join("string"==typeof t?t:""))),e!==K?(a?!c&&e[t]&&(u=!0):delete e[t],u?e[t]=i:ve(e,t,i)):u?e[t]=i:be(t,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||xe(this)}))})),Je=K,Ke=function(e){return"function"==typeof e?e:void 0},Ze=function(e,t){return arguments.length<2?Ke(Je[e])||Ke(K[e]):Je[e]&&Je[e][t]||K[e]&&K[e][t]},et=Math.ceil,tt=Math.floor,rt=function(e){return isNaN(e=+e)?0:(e>0?tt:et)(e)},nt=Math.min,it=function(e){return e>0?nt(rt(e),9007199254740991):0},st=Math.max,ot=Math.min,at=function(e){return function(t,r,n){var i,s=le(t),o=it(s.length),a=function(e,t){var r=rt(e);return r<0?st(r+t,0):ot(r,t)}(n,o);if(e&&r!=r){for(;o>a;)if((i=s[a++])!=i)return!0}else for(;o>a;a++)if((e||a in s)&&s[a]===r)return e||a||0;return!e&&-1}},ut={includes:at(!0),indexOf:at(!1)}.indexOf,ct=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),lt={f:Object.getOwnPropertyNames||function(e){return function(e,t){var r,n=le(e),i=0,s=[];for(r in n)!fe(Me,r)&&fe(n,r)&&s.push(r);for(;t.length>i;)fe(n,r=t[i++])&&(~ut(s,r)||s.push(r));return s}(e,ct)}},pt={f:Object.getOwnPropertySymbols},Dt=Ze("Reflect","ownKeys")||function(e){var t=lt.f(ye(e)),r=pt.f;return r?t.concat(r(e)):t},ht=function(e,t){for(var r=Dt(t),n=_e.f,i=Te.f,s=0;s0&&_t(u))c=Ft(e,t,u,it(u.length),c,s-1)-1;else{if(c>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[c]=u}c++}l++}return c},At=Ft,wt=Ze("navigator","userAgent")||"",Nt=K.process,kt=Nt&&Nt.versions,Ot=kt&&kt.v8;Ot?We=(ze=Ot.split("."))[0]<4?1:ze[0]+ze[1]:wt&&(!(ze=wt.match(/Edge\/(\d+)/))||ze[1]>=74)&&(ze=wt.match(/Chrome\/(\d+)/))&&(We=ze[1]);var xt=We&&+We,It=!!Object.getOwnPropertySymbols&&!Z((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&xt&&xt<41})),Pt=It&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Rt=Re("wks"),Lt=K.Symbol,Bt=Pt?Lt:Lt&&Lt.withoutSetter||$e,$t=function(e){return fe(Rt,e)&&(It||"string"==typeof Rt[e])||(It&&fe(Lt,e)?Rt[e]=Lt[e]:Rt[e]=Bt("Symbol."+e)),Rt[e]},qt=$t("species"),Mt=function(e,t){var r;return _t(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!_t(r.prototype)?pe(r)&&null===(r=r[qt])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)};St({target:"Array",proto:!0},{flatMap:function(e){var t,r=he(this),n=it(r.length);return vt(e),(t=Mt(r,0)).length=At(t,r,r,n,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var Ut,Gt,jt=Math.floor,Vt=function(e,t){var r=e.length,n=jt(r/2);return r<8?Ht(e,t):Xt(Vt(e.slice(0,n),t),Vt(e.slice(n),t),t)},Ht=function(e,t){for(var r,n,i=e.length,s=1;s0;)e[n]=e[--n];n!==s++&&(e[n]=r)}return e},Xt=function(e,t,r){for(var n=e.length,i=t.length,s=0,o=0,a=[];s3)){if(Qt)return!0;if(Kt)return Kt<603;var e,t,r,n,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)Zt.push({k:t+n,v:r})}for(Zt.sort((function(e,t){return t.v-e.v})),n=0;nString(r)?1:-1}}(e))).length,n=0;ns;s++)if((a=g(e[s]))&&a instanceof fr)return a;return new fr(!1)}n=i.call(e)}for(u=n.next;!(c=u.call(n)).done;){try{a=g(c.value)}catch(e){throw dr(n),e}if("object"==typeof a&&a&&a instanceof fr)return a}return new fr(!1)};St({target:"Object",stat:!0},{fromEntries:function(e){var t={};return mr(e,(function(e,r){!function(e,t,r){var n=De(t);n in e?_e.f(e,n,ie(0,r)):e[n]=r}(t,e,r)}),{AS_ENTRIES:!0}),t}});var gr=void 0!==gr?gr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Er(){throw new Error("setTimeout has not been defined")}function Cr(){throw new Error("clearTimeout has not been defined")}var Tr=Er,yr=Cr;function Sr(e){if(Tr===setTimeout)return setTimeout(e,0);if((Tr===Er||!Tr)&&setTimeout)return Tr=setTimeout,setTimeout(e,0);try{return Tr(e,0)}catch(t){try{return Tr.call(null,e,0)}catch(t){return Tr.call(this,e,0)}}}"function"==typeof gr.setTimeout&&(Tr=setTimeout),"function"==typeof gr.clearTimeout&&(yr=clearTimeout);var _r,vr=[],br=!1,Fr=-1;function Ar(){br&&_r&&(br=!1,_r.length?vr=_r.concat(vr):Fr=-1,vr.length&&wr())}function wr(){if(!br){var e=Sr(Ar);br=!0;for(var t=vr.length;t;){for(_r=vr,vr=[];++Fr1)for(var r=1;rconsole.error("SEMVER",...e):()=>{};var jr={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},Vr=t((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:r}=jr,n=(t=e.exports={}).re=[],i=t.src=[],s=t.t={};let o=0;const a=(e,t,r)=>{const a=o++;Gr(a,t),s[e]=a,i[a]=t,n[a]=new RegExp(t,r?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","[0-9]+"),a("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),a("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),a("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER","[0-9A-Za-z-]+"),a("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),a("FULL",`^${i[s.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),a("LOOSE",`^${i[s.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",`${i[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),a("XRANGEIDENTIFIER",`${i[s.NUMERICIDENTIFIER]}|x|X|\\*`),a("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),a("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),a("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),a("COERCERTL",i[s.COERCE],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",a("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",a("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0.0.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const Hr=["includePrerelease","loose","rtl"];var Xr=e=>e?"object"!=typeof e?{loose:!0}:Hr.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const zr=/^[0-9]+$/,Wr=(e,t)=>{const r=zr.test(e),n=zr.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eWr(t,e)};const{MAX_LENGTH:Qr,MAX_SAFE_INTEGER:Jr}=jr,{re:Kr,t:Zr}=Vr,{compareIdentifiers:en}=Yr;class tn{constructor(e,t){if(t=Xr(t),e instanceof tn){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>Qr)throw new TypeError(`version is longer than ${Qr} characters`);Gr("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?Kr[Zr.LOOSE]:Kr[Zr.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>Jr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Jr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Jr||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}}var rn=tn;var nn=(e,t,r)=>new rn(e,r).compare(new rn(t,r));var sn=(e,t,r)=>nn(e,t,r)<0;var on=(e,t,r)=>nn(e,t,r)>=0,an="2.3.2",un=t((function(e,t){function r(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:cn` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:cn` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:cn` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:cn` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const pn=["cliName","cliCategory","cliDescription"],Dn={compare:nn,lt:sn,gte:on},hn=an,dn={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:ln}.options;var fn={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:r=!1,showInternal:n=!1}={}){const i=hn.split("-",1)[0],s=e.flatMap((e=>e.languages||[])).filter(a),o=((e,t)=>Object.entries(e).map((([e,r])=>Object.assign({[t]:e},r))))(Object.assign({},...e.map((({options:e})=>e)),dn),"name").filter((e=>a(e)&&u(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(a).sort(((e,t)=>Dn.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>a(e)&&u(e))),"parser"===t.name&&function(e,t,r){const n=new Set(e.choices.map((e=>e.value)));for(const i of t)if(i.parsers)for(const t of i.parsers)if(!n.has(t)){n.add(t);const s=r.find((e=>e.parsers&&e.parsers[t]));let o=i.name;s&&s.name&&(o+=` (plugin: ${s.name})`),e.choices.push({value:t,description:o})}}(t,s,e));const r=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:r})}));return{languages:s,options:o};function a(e){return t||!("since"in e)||e.since&&Dn.gte(i,e.since)}function u(e){return r||!("deprecated"in e)||e.deprecated&&Dn.lt(i,e.deprecated)}}};const{getSupportInfo:mn}=fn,gn=/[^\x20-\x7F]/;function En(e){return(t,r,n)=>{const i=n&&n.backwards;if(!1===r)return!1;const{length:s}=t;let o=r;for(;o>=0&&o(r.match(o.regex)||[]).length?o.quote:s.quote}return a}function xn(e,t,r){const n='"'===t?"'":'"',i=e.replace(/\\(.)|(["'])/gs,((e,i,s)=>i===n?i:s===t?"\\"+s:s||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(i)?i:"\\"+i)));return t+i+t}function In(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let r=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");r.length>20&&(r=r.slice(0,19)+"\u2026");return t+(r?" "+r:"")}(e)}var Pn={inferParserByLanguage:function(e,t){const{languages:r}=mn({plugins:t.plugins}),n=r.find((({name:t})=>t.toLowerCase()===e))||r.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||r.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return n&&n.parsers[0]},getStringWidth:function(e){return e?gn.test(e)?z(e):e.length:0},getMaxContinuousCount:function(e,t){const r=e.match(new RegExp(`(${Y(t)})+`,"g"));return null===r?0:r.reduce(((e,r)=>Math.max(e,r.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const r=e.match(new RegExp(`(${Y(t)})+`,"g"));if(null===r)return 0;const n=new Map;let i=0;for(const e of r){const r=e.length/t.length;n.set(r,!0),r>i&&(i=r)}for(let e=1;ee[e.length-2],getLast:M,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:wn,getNextNonSpaceNonCommentCharacterIndex:Nn,getNextNonSpaceNonCommentCharacter:function(e,t,r){return e.charAt(Nn(e,t,r))},skip:En,skipWhitespace:Cn,skipSpaces:Tn,skipToLineEnd:yn,skipEverythingButNewLine:Sn,skipInlineComment:_n,skipTrailingComment:vn,skipNewline:bn,isNextLineEmptyAfterIndex:An,isNextLineEmpty:function(e,t,r){return An(e,r(t))},isPreviousLineEmpty:function(e,t,r){let n=r(t)-1;return n=Tn(e,n,{backwards:!0}),n=bn(e,n,{backwards:!0}),n=Tn(e,n,{backwards:!0}),n!==bn(e,n,{backwards:!0})},hasNewline:Fn,hasNewlineInRange:function(e,t,r){for(let n=t;n0},createGroupIdMapper:function(e){const t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}},Rn={"*":["accesskey","autocapitalize","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","slot","spellcheck","style","tabindex","title","translate"],a:["accesskey","charset","coords","download","href","hreflang","name","ping","referrerpolicy","rel","rev","shape","tabindex","target","type"],abbr:["title"],applet:["align","alt","archive","code","codebase","height","hspace","name","object","vspace","width"],area:["accesskey","alt","coords","download","href","hreflang","nohref","ping","referrerpolicy","rel","shape","tabindex","target","type"],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],base:["href","target"],basefont:["color","face","size"],bdo:["dir"],blockquote:["cite"],body:["alink","background","bgcolor","link","text","vlink"],br:["clear"],button:["accesskey","autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],data:["value"],del:["cite","datetime"],details:["open"],dfn:["title"],dialog:["open"],dir:["compact"],div:["align"],dl:["compact"],embed:["height","src","type","width"],fieldset:["disabled","form","name"],font:["color","face","size"],form:["accept","accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],frame:["frameborder","longdesc","marginheight","marginwidth","name","noresize","scrolling","src"],frameset:["cols","rows"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],head:["profile"],hr:["align","noshade","size","width"],html:["manifest","version"],iframe:["align","allow","allowfullscreen","allowpaymentrequest","allowusermedia","frameborder","height","loading","longdesc","marginheight","marginwidth","name","referrerpolicy","sandbox","scrolling","src","srcdoc","width"],img:["align","alt","border","crossorigin","decoding","height","hspace","ismap","loading","longdesc","name","referrerpolicy","sizes","src","srcset","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","autofocus","checked","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","ismap","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","size","src","step","tabindex","title","type","usemap","value","width"],ins:["cite","datetime"],isindex:["prompt"],label:["accesskey","for","form"],legend:["accesskey","align"],li:["type","value"],link:["as","charset","color","crossorigin","disabled","href","hreflang","imagesizes","imagesrcset","integrity","media","nonce","referrerpolicy","rel","rev","sizes","target","title","type"],map:["name"],menu:["compact"],meta:["charset","content","http-equiv","name","scheme"],meter:["high","low","max","min","optimum","value"],object:["align","archive","border","classid","codebase","codetype","data","declare","form","height","hspace","name","standby","tabindex","type","typemustmatch","usemap","vspace","width"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],p:["align"],param:["name","type","value","valuetype"],pre:["width"],progress:["max","value"],q:["cite"],script:["async","charset","crossorigin","defer","integrity","language","nomodule","nonce","referrerpolicy","src","type"],select:["autocomplete","autofocus","disabled","form","multiple","name","required","size","tabindex"],slot:["name"],source:["media","sizes","src","srcset","type"],style:["media","nonce","title","type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","autofocus","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],time:["datetime"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","src","srclang"],ul:["compact","type"],video:["autoplay","controls","crossorigin","height","loop","muted","playsinline","poster","preload","src","width"]};const{inferParserByLanguage:Ln,isFrontMatterNode:Bn}=Pn,{CSS_DISPLAY_TAGS:$n,CSS_DISPLAY_DEFAULT:qn,CSS_WHITE_SPACE_TAGS:Mn,CSS_WHITE_SPACE_DEFAULT:Un}={CSS_DISPLAY_TAGS:{area:"none",base:"none",basefont:"none",datalist:"none",head:"none",link:"none",meta:"none",noembed:"none",noframes:"none",param:"block",rp:"none",script:"block",source:"block",style:"none",template:"inline",track:"block",title:"none",html:"block",body:"block",address:"block",blockquote:"block",center:"block",div:"block",figure:"block",figcaption:"block",footer:"block",form:"block",header:"block",hr:"block",legend:"block",listing:"block",main:"block",p:"block",plaintext:"block",pre:"block",xmp:"block",slot:"contents",ruby:"ruby",rt:"ruby-text",article:"block",aside:"block",h1:"block",h2:"block",h3:"block",h4:"block",h5:"block",h6:"block",hgroup:"block",nav:"block",section:"block",dir:"block",dd:"block",dl:"block",dt:"block",ol:"block",ul:"block",li:"list-item",table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell",fieldset:"block",button:"inline-block",details:"block",summary:"block",dialog:"block",meter:"inline-block",progress:"inline-block",object:"inline-block",video:"inline-block",audio:"inline-block",select:"inline-block",option:"block",optgroup:"block"},CSS_DISPLAY_DEFAULT:"inline",CSS_WHITE_SPACE_TAGS:{listing:"pre",plaintext:"pre",pre:"pre",xmp:"pre",nobr:"nowrap",table:"initial",textarea:"pre-wrap"},CSS_WHITE_SPACE_DEFAULT:"normal"},Gn=Xn(["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","element","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","isindex","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","math","menu","menuitem","meta","meter","multicol","nav","nextid","nobr","noembed","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rbc","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"]),jn=function(e,t){const r=Object.create(null);for(const[n,i]of Object.entries(e))r[n]=t(i,n);return r}(Rn,Xn),Vn=new Set(["\t","\n","\f","\r"," "]),Hn=e=>e.replace(/[\t\n\f\r ]+$/,"");function Xn(e){const t=Object.create(null);for(const r of e)t[r]=!0;return t}function zn(e,t){return!("ieConditionalComment"!==e.type||!e.lastChild||e.lastChild.isSelfClosing||e.lastChild.endSourceSpan)||("ieConditionalComment"===e.type&&!e.complete||(!(!si(e)||!e.children.some((e=>"text"!==e.type&&"interpolation"!==e.type)))||!(!pi(e,t)||Yn(e)||"interpolation"===e.type)))}function Wn(e){if("attribute"===e.type)return!1;if(!e.parent)return!1;if("number"!=typeof e.index||0===e.index)return!1;return function(e){return"comment"===e.type&&"prettier-ignore"===e.value.trim()}(e.parent.children[e.index-1])}function Yn(e){return"element"===e.type&&("script"===e.fullName||"style"===e.fullName||"svg:style"===e.fullName||oi(e)&&("script"===e.name||"style"===e.name))}function Qn(e){return ai(e).startsWith("pre")}function Jn(e){return"element"===e.type&&e.children.length>0&&(["html","head","ul","ol","select"].includes(e.name)||e.cssDisplay.startsWith("table")&&"table-cell"!==e.cssDisplay)}function Kn(e){return ri(e)||"element"===e.type&&"br"===e.fullName||Zn(e)}function Zn(e){return ei(e)&&ti(e)}function ei(e){return e.hasLeadingSpaces&&(e.prev?e.prev.sourceSpan.end.linee.sourceSpan.end.line:"root"===e.parent.type||e.parent.endSourceSpan&&e.parent.endSourceSpan.start.line>e.sourceSpan.end.line)}function ri(e){switch(e.type){case"ieConditionalComment":case"comment":case"directive":return!0;case"element":return["script","select"].includes(e.name)}return!1}function ni(e){const{type:t,lang:r}=e.attrMap;return"module"===t||"text/javascript"===t||"text/babel"===t||"application/javascript"===t||"jsx"===r?"babel":"application/x-typescript"===t||"ts"===r||"tsx"===r?"typescript":"text/markdown"===t?"markdown":"text/html"===t?"html":t&&(t.endsWith("json")||t.endsWith("importmap"))?"json":"text/x-handlebars-template"===t?"glimmer":void 0}function ii(e){return"block"===e||"list-item"===e||e.startsWith("table")}function si(e){return ai(e).startsWith("pre")}function oi(e){return"element"===e.type&&!e.hasExplicitNamespace&&!["html","svg"].includes(e.namespace)}function ai(e){return"element"===e.type&&(!e.namespace||oi(e))&&Mn[e.name]||Un}const ui=new Set(["template","style","script"]);function ci(e,t){return li(e,t)&&!ui.has(e.fullName)}function li(e,t){return"vue"===t.parser&&"element"===e.type&&"root"===e.parent.type&&"html"!==e.fullName.toLowerCase()}function pi(e,t){return li(e,t)&&(ci(e,t)||e.attrMap.lang&&"html"!==e.attrMap.lang)}var Di={HTML_ELEMENT_ATTRIBUTES:jn,HTML_TAGS:Gn,htmlTrim:e=>(e=>e.replace(/^[\t\n\f\r ]+/,""))(Hn(e)),htmlTrimPreserveIndentation:e=>(e=>e.replace(/^[\t\f\r ]*?\n/g,""))(Hn(e)),splitByHtmlWhitespace:e=>e.split(/[\t\n\f\r ]+/),hasHtmlWhitespace:e=>/[\t\n\f\r ]/.test(e),getLeadingAndTrailingHtmlWhitespace:e=>{const[,t,r,n]=e.match(/^([\t\n\f\r ]*)(.*?)([\t\n\f\r ]*)$/s);return{leadingWhitespace:t,trailingWhitespace:n,text:r}},canHaveInterpolation:function(e){return e.children&&!Yn(e)},countChars:function(e,t){let r=0;for(let n=0;n=0;n--){const i=e.stack[n];i&&"object"==typeof i&&!Array.isArray(i)&&t(i)&&r++}return r},dedentString:function(e,t=function(e){let t=Number.POSITIVE_INFINITY;for(const n of e.split("\n")){if(0===n.length)continue;if(!Vn.has(n[0]))return 0;const e=(r=n,r.match(/^[\t\n\f\r ]*/)[0]).length;n.length!==e&&ee.slice(t))).join("\n")},forceBreakChildren:Jn,forceBreakContent:function(e){return Jn(e)||"element"===e.type&&e.children.length>0&&(["body","script","style"].includes(e.name)||e.children.some((e=>function(e){return e.children&&e.children.some((e=>"text"!==e.type))}(e))))||e.firstChild&&e.firstChild===e.lastChild&&"text"!==e.firstChild.type&&ei(e.firstChild)&&(!e.lastChild.isTrailingSpaceSensitive||ti(e.lastChild))},forceNextEmptyLine:function(e){return Bn(e)||e.next&&e.sourceSpan.end&&e.sourceSpan.end.line+1"svg:foreignObject"===e.fullName)))return"svg"===e.name?"inline-block":"block";r=!0}switch(t.htmlWhitespaceSensitivity){case"strict":return"inline";case"ignore":return"block";default:return"vue"===t.parser&&e.parent&&"root"===e.parent.type?"block":"element"===e.type&&(!e.namespace||r||oi(e))&&$n[e.name]||qn}},getNodeCssStyleWhiteSpace:ai,getPrettierIgnoreAttributeCommentData:function(e){const t=e.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s);return!!t&&(!t[1]||t[1].split(/\s+/))},hasPrettierIgnore:Wn,inferScriptParser:function(e,t){return"script"!==e.name||e.attrMap.src?"style"===e.name?function(e){const{lang:t}=e.attrMap;return t&&"postcss"!==t&&"css"!==t?"scss"===t?"scss":"less"===t?"less":void 0:"css"}(e):t&&pi(e,t)?ni(e)||!("src"in e.attrMap)&&Ln(e.attrMap.lang,t):void 0:e.attrMap.lang||e.attrMap.type?ni(e):"babel"},isVueCustomBlock:ci,isVueNonHtmlBlock:pi,isVueSlotAttribute:function(e){const t=e.fullName;return"#"===t.charAt(0)||"slot-scope"===t||"v-slot"===t||t.startsWith("v-slot:")},isVueSfcBindingsAttribute:function(e,t){const r=e.parent;if(!li(r,t))return!1;const n=r.fullName,i=e.fullName;return"script"===n&&"setup"===i||"style"===n&&"vars"===i},isDanglingSpaceSensitiveNode:function(e){return!(t=e.cssDisplay,ii(t)||"inline-block"===t||Yn(e));var t},isIndentationSensitiveNode:Qn,isLeadingSpaceSensitiveNode:function(e,t){const r=function(){if(Bn(e))return!1;if(("text"===e.type||"interpolation"===e.type)&&e.prev&&("text"===e.prev.type||"interpolation"===e.prev.type))return!0;if(!e.parent||"none"===e.parent.cssDisplay)return!1;if(si(e.parent))return!0;if(!e.prev&&("root"===e.parent.type||si(e)&&e.parent||Yn(e.parent)||ci(e.parent,t)||(r=e.parent.cssDisplay,ii(r)||"inline-block"===r)))return!1;var r;if(e.prev&&!function(e){return!ii(e)}(e.prev.cssDisplay))return!1;return!0}();return r&&!e.prev&&e.parent&&e.parent.tagDefinition&&e.parent.tagDefinition.ignoreFirstLf?"interpolation"===e.type:r},isPreLikeNode:si,isScriptLikeTag:Yn,isTextLikeNode:function(e){return"text"===e.type||"comment"===e.type},isTrailingSpaceSensitiveNode:function(e,t){return!Bn(e)&&(!("text"!==e.type&&"interpolation"!==e.type||!e.next||"text"!==e.next.type&&"interpolation"!==e.next.type)||!(!e.parent||"none"===e.parent.cssDisplay)&&(!!si(e.parent)||!(!e.next&&("root"===e.parent.type||si(e)&&e.parent||Yn(e.parent)||ci(e.parent,t)||(r=e.parent.cssDisplay,ii(r)||"inline-block"===r)))&&!(e.next&&!function(e){return!ii(e)}(e.next.cssDisplay))));var r},isWhitespaceSensitiveNode:function(e){return Yn(e)||"interpolation"===e.type||Qn(e)},isUnknownNamespace:oi,preferHardlineAsLeadingSpaces:function(e){return ri(e)||e.prev&&Kn(e.prev)||Zn(e)},preferHardlineAsTrailingSpaces:Kn,shouldNotPrintClosingTag:function(e,t){return!e.isSelfClosing&&!e.endSourceSpan&&(Wn(e)||zn(e.parent,t))},shouldPreserveContent:zn,unescapeQuoteEntities:function(e){return e.replace(/'/g,"'").replace(/"/g,'"')}};var hi={hasPragma:function(e){return/^\s*/.test(e)},insertPragma:function(e){return"\x3c!-- @format --\x3e\n\n"+e.replace(/^\s*\n/,"")}};const{isNonEmptyArray:di}=Pn,fi={attrs:!0,children:!0};class mi{constructor(e={}){for(const[t,r]of Object.entries(e))t in fi?this._setNodes(t,r):this[t]=r}_setNodes(e,t){t!==this[e]&&(this[e]=function(e,t){const r=e.map((e=>e instanceof mi?e.clone():new mi(e)));let n=null,i=r[0],s=r[1]||null;for(let e=0;e[e.fullName,e.value])))}))}map(e){let t=null;for(const r in fi){const n=this[r];if(n){const i=gi(n,(t=>t.map(e)));t!==n&&(t||(t=new mi),t._setNodes(r,i))}}if(t){for(const e in this)e in fi||(t[e]=this[e]);const{index:e,siblings:r,prev:n,next:i,parent:s}=this;Ei(t,{index:e,siblings:r,prev:n,next:i,parent:s})}return e(t||this)}clone(e){return new mi(e?Object.assign(Object.assign({},this),e):this)}get firstChild(){return di(this.children)?this.children[0]:null}get lastChild(){return di(this.children)?M(this.children):null}get rawName(){return this.hasExplicitNamespace?this.fullName:this.name}get fullName(){return this.namespace?this.namespace+":"+this.name:this.name}}function gi(e,t){const r=e.map(t);return r.some(((t,r)=>t!==e[r]))?r:e}function Ei(e,t){const r=Object.fromEntries(Object.entries(t).map((([e,t])=>[e,{value:t,enumerable:!1}])));Object.defineProperties(e,r)}var Ci={Node:mi};const{ParseSourceSpan:Ti}=B,yi=[{regex:/^(\[if([^\]]*?)]>)(.*?){try{return[!0,t(s,a).children]}catch{return[!1,[{type:"text",value:s,sourceSpan:new Ti(a,u)}]]}})();return{type:"ieConditionalComment",complete:c,children:l,condition:i.trim().replace(/\s+/g," "),sourceSpan:e.sourceSpan,startSourceSpan:new Ti(e.sourceSpan.start,a),endSourceSpan:new Ti(u,e.sourceSpan.end)}}},{regex:/^\[if([^\]]*?)]>",Gt:"\u226b",gt:">",gtcc:"\u2aa7",gtcir:"\u2a7a",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",Hacek:"\u02c7",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",HARDcy:"\u042a",hardcy:"\u044a",hArr:"\u21d4",harr:"\u2194",harrcir:"\u2948",harrw:"\u21ad",Hat:"^",hbar:"\u210f",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",Hfr:"\u210c",hfr:"\ud835\udd25",HilbertSpace:"\u210b",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",Hopf:"\u210d",hopf:"\ud835\udd59",horbar:"\u2015",HorizontalLine:"\u2500",Hscr:"\u210b",hscr:"\ud835\udcbd",hslash:"\u210f",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224e",HumpEqual:"\u224f",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xcd",iacute:"\xed",ic:"\u2063",Icirc:"\xce",icirc:"\xee",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",Ifr:"\u2111",ifr:"\ud835\udd26",Igrave:"\xcc",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Im:"\u2111",Imacr:"\u012a",imacr:"\u012b",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22b7",imped:"\u01b5",Implies:"\u21d2",in:"\u2208",incare:"\u2105",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",Int:"\u222c",int:"\u222b",intcal:"\u22ba",integers:"\u2124",Integral:"\u222b",intercal:"\u22ba",Intersection:"\u22c2",intlarhk:"\u2a17",intprod:"\u2a3c",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012e",iogon:"\u012f",Iopf:"\ud835\udd40",iopf:"\ud835\udd5a",Iota:"\u0399",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",Iscr:"\u2110",iscr:"\ud835\udcbe",isin:"\u2208",isindot:"\u22f5",isinE:"\u22f9",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xcf",iuml:"\xef",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\ud835\udd0d",jfr:"\ud835\udd27",jmath:"\u0237",Jopf:"\ud835\udd41",jopf:"\ud835\udd5b",Jscr:"\ud835\udca5",jscr:"\ud835\udcbf",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039a",kappa:"\u03ba",kappav:"\u03f0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041a",kcy:"\u043a",Kfr:"\ud835\udd0e",kfr:"\ud835\udd28",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040c",kjcy:"\u045c",Kopf:"\ud835\udd42",kopf:"\ud835\udd5c",Kscr:"\ud835\udca6",kscr:"\ud835\udcc0",lAarr:"\u21da",Lacute:"\u0139",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",Lambda:"\u039b",lambda:"\u03bb",Lang:"\u27ea",lang:"\u27e8",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",Laplacetrf:"\u2112",laquo:"\xab",Larr:"\u219e",lArr:"\u21d0",larr:"\u2190",larrb:"\u21e4",larrbfs:"\u291f",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",lat:"\u2aab",lAtail:"\u291b",latail:"\u2919",late:"\u2aad",lates:"\u2aad\ufe00",lBarr:"\u290e",lbarr:"\u290c",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",Lcaron:"\u013d",lcaron:"\u013e",Lcedil:"\u013b",lcedil:"\u013c",lceil:"\u2308",lcub:"{",Lcy:"\u041b",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",lE:"\u2266",le:"\u2264",LeftAngleBracket:"\u27e8",LeftArrow:"\u2190",Leftarrow:"\u21d0",leftarrow:"\u2190",LeftArrowBar:"\u21e4",LeftArrowRightArrow:"\u21c6",leftarrowtail:"\u21a2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21c3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230a",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",LeftRightArrow:"\u2194",Leftrightarrow:"\u21d4",leftrightarrow:"\u2194",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",LeftRightVector:"\u294e",LeftTee:"\u22a3",LeftTeeArrow:"\u21a4",LeftTeeVector:"\u295a",leftthreetimes:"\u22cb",LeftTriangle:"\u22b2",LeftTriangleBar:"\u29cf",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21bf",LeftUpVectorBar:"\u2958",LeftVector:"\u21bc",LeftVectorBar:"\u2952",lEg:"\u2a8b",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",les:"\u2a7d",lescc:"\u2aa8",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2aa1",lesssim:"\u2272",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",lfisht:"\u297c",lfloor:"\u230a",Lfr:"\ud835\udd0f",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lHar:"\u2962",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",Ll:"\u22d8",ll:"\u226a",llarr:"\u21c7",llcorner:"\u231e",Lleftarrow:"\u21da",llhard:"\u296b",lltri:"\u25fa",Lmidot:"\u013f",lmidot:"\u0140",lmoust:"\u23b0",lmoustache:"\u23b0",lnap:"\u2a89",lnapprox:"\u2a89",lnE:"\u2268",lne:"\u2a87",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",LongLeftArrow:"\u27f5",Longleftarrow:"\u27f8",longleftarrow:"\u27f5",LongLeftRightArrow:"\u27f7",Longleftrightarrow:"\u27fa",longleftrightarrow:"\u27f7",longmapsto:"\u27fc",LongRightArrow:"\u27f6",Longrightarrow:"\u27f9",longrightarrow:"\u27f6",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",Lopf:"\ud835\udd43",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",Lscr:"\u2112",lscr:"\ud835\udcc1",Lsh:"\u21b0",lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",Lstrok:"\u0141",lstrok:"\u0142",LT:"<",Lt:"\u226a",lt:"<",ltcc:"\u2aa6",ltcir:"\u2a79",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",ltrPar:"\u2996",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",Mcy:"\u041c",mcy:"\u043c",mdash:"\u2014",mDDot:"\u223a",measuredangle:"\u2221",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",mid:"\u2223",midast:"*",midcir:"\u2af0",middot:"\xb7",minus:"\u2212",minusb:"\u229f",minusd:"\u2238",minusdu:"\u2a2a",MinusPlus:"\u2213",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",Mopf:"\ud835\udd44",mopf:"\ud835\udd5e",mp:"\u2213",Mscr:"\u2133",mscr:"\ud835\udcc2",mstpos:"\u223e",Mu:"\u039c",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266e",natural:"\u266e",naturals:"\u2115",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",Ncy:"\u041d",ncy:"\u043d",ndash:"\u2013",ne:"\u2260",nearhk:"\u2924",neArr:"\u21d7",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",nexist:"\u2204",nexists:"\u2204",Nfr:"\ud835\udd11",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",nGg:"\u22d9\u0338",ngsim:"\u2275",nGt:"\u226b\u20d2",ngt:"\u226f",ngtr:"\u226f",nGtv:"\u226b\u0338",nhArr:"\u21ce",nharr:"\u21ae",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",NJcy:"\u040a",njcy:"\u045a",nlArr:"\u21cd",nlarr:"\u219a",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nLeftarrow:"\u21cd",nleftarrow:"\u219a",nLeftrightarrow:"\u21ce",nleftrightarrow:"\u21ae",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nLl:"\u22d8\u0338",nlsim:"\u2274",nLt:"\u226a\u20d2",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nLtv:"\u226a\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xa0",Nopf:"\u2115",nopf:"\ud835\udd5f",Not:"\u2aec",not:"\xac",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",notin:"\u2209",notindot:"\u22f5\u0338",notinE:"\u22f9\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",NotLeftTriangle:"\u22ea",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangle:"\u22eb",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",npre:"\u2aaf\u0338",nprec:"\u2280",npreceq:"\u2aaf\u0338",nrArr:"\u21cf",nrarr:"\u219b",nrarrc:"\u2933\u0338",nrarrw:"\u219d\u0338",nRightarrow:"\u21cf",nrightarrow:"\u219b",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",Nscr:"\ud835\udca9",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",Ntilde:"\xd1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",Nu:"\u039d",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224d\u20d2",nVDash:"\u22af",nVdash:"\u22ae",nvDash:"\u22ad",nvdash:"\u22ac",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvHarr:"\u2904",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwarhk:"\u2923",nwArr:"\u21d6",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xd3",oacute:"\xf3",oast:"\u229b",ocir:"\u229a",Ocirc:"\xd4",ocirc:"\xf4",Ocy:"\u041e",ocy:"\u043e",odash:"\u229d",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29bf",Ofr:"\ud835\udd12",ofr:"\ud835\udd2c",ogon:"\u02db",Ograve:"\xd2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",Omacr:"\u014c",omacr:"\u014d",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",Oopf:"\ud835\udd46",oopf:"\ud835\udd60",opar:"\u29b7",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",operp:"\u29b9",oplus:"\u2295",Or:"\u2a54",or:"\u2228",orarr:"\u21bb",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oS:"\u24c8",Oscr:"\ud835\udcaa",oscr:"\u2134",Oslash:"\xd8",oslash:"\xf8",osol:"\u2298",Otilde:"\xd5",otilde:"\xf5",Otimes:"\u2a37",otimes:"\u2297",otimesas:"\u2a36",Ouml:"\xd6",ouml:"\xf6",ovbar:"\u233d",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",par:"\u2225",para:"\xb6",parallel:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",PartialD:"\u2202",Pcy:"\u041f",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",Pfr:"\ud835\udd13",pfr:"\ud835\udd2d",Phi:"\u03a6",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",Pi:"\u03a0",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plus:"+",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",PlusMinus:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",Poincareplane:"\u210c",pointint:"\u2a15",Popf:"\u2119",popf:"\ud835\udd61",pound:"\xa3",Pr:"\u2abb",pr:"\u227a",prap:"\u2ab7",prcue:"\u227c",prE:"\u2ab3",pre:"\u2aaf",prec:"\u227a",precapprox:"\u2ab7",preccurlyeq:"\u227c",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",precsim:"\u227e",Prime:"\u2033",prime:"\u2032",primes:"\u2119",prnap:"\u2ab9",prnE:"\u2ab5",prnsim:"\u22e8",prod:"\u220f",Product:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",Proportion:"\u2237",Proportional:"\u221d",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",Pscr:"\ud835\udcab",pscr:"\ud835\udcc5",Psi:"\u03a8",psi:"\u03c8",puncsp:"\u2008",Qfr:"\ud835\udd14",qfr:"\ud835\udd2e",qint:"\u2a0c",Qopf:"\u211a",qopf:"\ud835\udd62",qprime:"\u2057",Qscr:"\ud835\udcac",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",QUOT:'"',quot:'"',rAarr:"\u21db",race:"\u223d\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",Rang:"\u27eb",rang:"\u27e9",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",Rarr:"\u21a0",rArr:"\u21d2",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21a3",rarrw:"\u219d",rAtail:"\u291c",ratail:"\u291a",ratio:"\u2236",rationals:"\u211a",RBarr:"\u2910",rBarr:"\u290f",rbarr:"\u290d",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",Re:"\u211c",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",rect:"\u25ad",REG:"\xae",reg:"\xae",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",rfisht:"\u297d",rfloor:"\u230b",Rfr:"\u211c",rfr:"\ud835\udd2f",rHar:"\u2964",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",Rho:"\u03a1",rho:"\u03c1",rhov:"\u03f1",RightAngleBracket:"\u27e9",RightArrow:"\u2192",Rightarrow:"\u21d2",rightarrow:"\u2192",RightArrowBar:"\u21e5",RightArrowLeftArrow:"\u21c4",rightarrowtail:"\u21a3",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVector:"\u21c2",RightDownVectorBar:"\u2955",RightFloor:"\u230b",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",RightTee:"\u22a2",RightTeeArrow:"\u21a6",RightTeeVector:"\u295b",rightthreetimes:"\u22cc",RightTriangle:"\u22b3",RightTriangleBar:"\u29d0",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVector:"\u21be",RightUpVectorBar:"\u2954",RightVector:"\u21c0",RightVectorBar:"\u2953",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoust:"\u23b1",rmoustache:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",Ropf:"\u211d",ropf:"\ud835\udd63",roplus:"\u2a2e",rotimes:"\u2a35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",Rrightarrow:"\u21db",rsaquo:"\u203a",Rscr:"\u211b",rscr:"\ud835\udcc7",Rsh:"\u21b1",rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",RuleDelayed:"\u29f4",ruluhar:"\u2968",rx:"\u211e",Sacute:"\u015a",sacute:"\u015b",sbquo:"\u201a",Sc:"\u2abc",sc:"\u227b",scap:"\u2ab8",Scaron:"\u0160",scaron:"\u0161",sccue:"\u227d",scE:"\u2ab4",sce:"\u2ab0",Scedil:"\u015e",scedil:"\u015f",Scirc:"\u015c",scirc:"\u015d",scnap:"\u2aba",scnE:"\u2ab6",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",Scy:"\u0421",scy:"\u0441",sdot:"\u22c5",sdotb:"\u22a1",sdote:"\u2a66",searhk:"\u2925",seArr:"\u21d8",searr:"\u2198",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\ud835\udd16",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",SOFTcy:"\u042c",softcy:"\u044c",sol:"/",solb:"\u29c4",solbar:"\u233f",Sopf:"\ud835\udd4a",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",Sqrt:"\u221a",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25a1",Square:"\u25a1",square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25aa",squf:"\u25aa",srarr:"\u2192",Sscr:"\ud835\udcae",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",Star:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",Sub:"\u22d0",sub:"\u2282",subdot:"\u2abd",subE:"\u2ac5",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",Subset:"\u22d0",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2ac5",SubsetEqual:"\u2286",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succ:"\u227b",succapprox:"\u2ab8",succcurlyeq:"\u227d",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",SuchThat:"\u220b",Sum:"\u2211",sum:"\u2211",sung:"\u266a",Sup:"\u22d1",sup:"\u2283",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",supdot:"\u2abe",supdsub:"\u2ad8",supE:"\u2ac6",supe:"\u2287",supedot:"\u2ac4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",Supset:"\u22d1",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swarhk:"\u2926",swArr:"\u21d9",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",Tab:"\t",target:"\u2316",Tau:"\u03a4",tau:"\u03c4",tbrk:"\u23b4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",Tfr:"\ud835\udd17",tfr:"\ud835\udd31",there4:"\u2234",Therefore:"\u2234",therefore:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",ThickSpace:"\u205f\u200a",thinsp:"\u2009",ThinSpace:"\u2009",thkap:"\u2248",thksim:"\u223c",THORN:"\xde",thorn:"\xfe",Tilde:"\u223c",tilde:"\u02dc",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",times:"\xd7",timesb:"\u22a0",timesbar:"\u2a31",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",top:"\u22a4",topbot:"\u2336",topcir:"\u2af1",Topf:"\ud835\udd4b",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",TRADE:"\u2122",trade:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",TripleDot:"\u20db",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",Tscr:"\ud835\udcaf",tscr:"\ud835\udcc9",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040b",tshcy:"\u045b",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",Uacute:"\xda",uacute:"\xfa",Uarr:"\u219f",uArr:"\u21d1",uarr:"\u2191",Uarrocir:"\u2949",Ubrcy:"\u040e",ubrcy:"\u045e",Ubreve:"\u016c",ubreve:"\u016d",Ucirc:"\xdb",ucirc:"\xfb",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21c5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",Ufr:"\ud835\udd18",ufr:"\ud835\udd32",Ugrave:"\xd9",ugrave:"\xf9",uHar:"\u2963",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",Umacr:"\u016a",umacr:"\u016b",uml:"\xa8",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",uogon:"\u0173",Uopf:"\ud835\udd4c",uopf:"\ud835\udd66",UpArrow:"\u2191",Uparrow:"\u21d1",uparrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21c5",UpDownArrow:"\u2195",Updownarrow:"\u21d5",updownarrow:"\u2195",UpEquilibrium:"\u296e",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03d2",upsi:"\u03c5",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",UpTee:"\u22a5",UpTeeArrow:"\u21a5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",Uring:"\u016e",uring:"\u016f",urtri:"\u25f9",Uscr:"\ud835\udcb0",uscr:"\ud835\udcca",utdot:"\u22f0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",Uuml:"\xdc",uuml:"\xfc",uwangle:"\u29a7",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",vArr:"\u21d5",varr:"\u2195",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",Vbar:"\u2aeb",vBar:"\u2ae8",vBarv:"\u2ae9",Vcy:"\u0412",vcy:"\u0432",VDash:"\u22ab",Vdash:"\u22a9",vDash:"\u22a8",vdash:"\u22a2",Vdashl:"\u2ae6",Vee:"\u22c1",vee:"\u2228",veebar:"\u22bb",veeeq:"\u225a",vellip:"\u22ee",Verbar:"\u2016",verbar:"|",Vert:"\u2016",vert:"|",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",Vopf:"\ud835\udd4d",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",Vscr:"\ud835\udcb1",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",Vvdash:"\u22aa",vzigzag:"\u299a",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2a5f",Wedge:"\u22c0",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\ud835\udd1a",wfr:"\ud835\udd34",Wopf:"\ud835\udd4e",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\ud835\udcb2",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",Xfr:"\ud835\udd1b",xfr:"\ud835\udd35",xhArr:"\u27fa",xharr:"\u27f7",Xi:"\u039e",xi:"\u03be",xlArr:"\u27f8",xlarr:"\u27f5",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",Xopf:"\ud835\udd4f",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrArr:"\u27f9",xrarr:"\u27f6",Xscr:"\ud835\udcb3",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",Yacute:"\xdd",yacute:"\xfd",YAcy:"\u042f",yacy:"\u044f",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042b",ycy:"\u044b",yen:"\xa5",Yfr:"\ud835\udd1c",yfr:"\ud835\udd36",YIcy:"\u0407",yicy:"\u0457",Yopf:"\ud835\udd50",yopf:"\ud835\udd6a",Yscr:"\ud835\udcb4",yscr:"\ud835\udcce",YUcy:"\u042e",yucy:"\u044e",Yuml:"\u0178",yuml:"\xff",Zacute:"\u0179",zacute:"\u017a",Zcaron:"\u017d",zcaron:"\u017e",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017b",zdot:"\u017c",zeetrf:"\u2128",ZeroWidthSpace:"\u200b",Zeta:"\u0396",zeta:"\u03b6",Zfr:"\u2128",zfr:"\ud835\udd37",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21dd",Zopf:"\u2124",zopf:"\ud835\udd6b",Zscr:"\ud835\udcb5",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},t.NGSP_UNICODE="\ue500",t.NAMED_ENTITIES.ngsp=t.NGSP_UNICODE})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class bi{constructor({closedByChildren:e,implicitNamespacePrefix:t,contentType:r=vi.TagContentType.PARSABLE_DATA,closedByParent:n=!1,isVoid:i=!1,ignoreFirstLf:s=!1}={}){this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,e&&e.length>0&&e.forEach((e=>this.closedByChildren[e]=!0)),this.isVoid=i,this.closedByParent=n||i,this.implicitNamespacePrefix=t||null,this.contentType=r,this.ignoreFirstLf=s}isClosedByChild(e){return this.isVoid||e.toLowerCase()in this.closedByChildren}}var Fi=bi;let Ai,wi;var Ni=function(e){return wi||(Ai=new bi,wi={base:new bi({isVoid:!0}),meta:new bi({isVoid:!0}),area:new bi({isVoid:!0}),embed:new bi({isVoid:!0}),link:new bi({isVoid:!0}),img:new bi({isVoid:!0}),input:new bi({isVoid:!0}),param:new bi({isVoid:!0}),hr:new bi({isVoid:!0}),br:new bi({isVoid:!0}),source:new bi({isVoid:!0}),track:new bi({isVoid:!0}),wbr:new bi({isVoid:!0}),p:new bi({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new bi({closedByChildren:["tbody","tfoot"]}),tbody:new bi({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new bi({closedByChildren:["tbody"],closedByParent:!0}),tr:new bi({closedByChildren:["tr"],closedByParent:!0}),td:new bi({closedByChildren:["td","th"],closedByParent:!0}),th:new bi({closedByChildren:["td","th"],closedByParent:!0}),col:new bi({isVoid:!0}),svg:new bi({implicitNamespacePrefix:"svg"}),math:new bi({implicitNamespacePrefix:"math"}),li:new bi({closedByChildren:["li"],closedByParent:!0}),dt:new bi({closedByChildren:["dt","dd"]}),dd:new bi({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new bi({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new bi({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new bi({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new bi({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new bi({closedByChildren:["optgroup"],closedByParent:!0}),option:new bi({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new bi({ignoreFirstLf:!0}),listing:new bi({ignoreFirstLf:!0}),style:new bi({contentType:vi.TagContentType.RAW_TEXT}),script:new bi({contentType:vi.TagContentType.RAW_TEXT}),title:new bi({contentType:vi.TagContentType.ESCAPABLE_RAW_TEXT}),textarea:new bi({contentType:vi.TagContentType.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})}),wi[e]||Ai},ki=Object.defineProperty({HtmlTagDefinition:Fi,getHtmlTagDefinition:Ni},"__esModule",{value:!0});var Oi= +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class{constructor(e,t=-1){this.path=e,this.position=t}get empty(){return!this.path||!this.path.length}get head(){return this.path[0]}get tail(){return this.path[this.path.length-1]}parentOf(e){return e&&this.path[this.path.indexOf(e)-1]}childOf(e){return this.path[this.path.indexOf(e)+1]}first(e){for(let t=this.path.length-1;t>=0;t--){let r=this.path[t];if(r instanceof e)return r}}push(e){this.path.push(e)}pop(){return this.path.pop()}},xi=Object.defineProperty({AstPath:Oi},"__esModule",{value:!0});var Ii= +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class{constructor(e,t,r){this.value=e,this.sourceSpan=t,this.i18n=r,this.type="text"}visit(e,t){return e.visitText(this,t)}};var Pi=class{constructor(e,t){this.value=e,this.sourceSpan=t,this.type="cdata"}visit(e,t){return e.visitCdata(this,t)}};var Ri=class{constructor(e,t,r,n,i,s){this.switchValue=e,this.type=t,this.cases=r,this.sourceSpan=n,this.switchValueSourceSpan=i,this.i18n=s}visit(e,t){return e.visitExpansion(this,t)}};var Li=class{constructor(e,t,r,n,i){this.value=e,this.expression=t,this.sourceSpan=r,this.valueSourceSpan=n,this.expSourceSpan=i}visit(e,t){return e.visitExpansionCase(this,t)}};var Bi=class{constructor(e,t,r,n=null,i=null,s=null){this.name=e,this.value=t,this.sourceSpan=r,this.valueSpan=n,this.nameSpan=i,this.i18n=s,this.type="attribute"}visit(e,t){return e.visitAttribute(this,t)}};class $i{constructor(e,t,r,n,i=null,s=null,o=null,a=null){this.name=e,this.attrs=t,this.children=r,this.sourceSpan=n,this.startSourceSpan=i,this.endSourceSpan=s,this.nameSpan=o,this.i18n=a,this.type="element"}visit(e,t){return e.visitElement(this,t)}}var qi=$i;var Mi=class{constructor(e,t){this.value=e,this.sourceSpan=t,this.type="comment"}visit(e,t){return e.visitComment(this,t)}};var Ui=class{constructor(e,t){this.value=e,this.sourceSpan=t,this.type="docType"}visit(e,t){return e.visitDocType(this,t)}};function Gi(e,t,r=null){const n=[],i=e.visit?t=>e.visit(t,r)||t.visit(e,r):t=>t.visit(e,r);return t.forEach((e=>{const t=i(e);t&&n.push(t)})),n}var ji=Gi;class Vi{constructor(){}visitElement(e,t){this.visitChildren(t,(t=>{t(e.attrs),t(e.children)}))}visitAttribute(e,t){}visitText(e,t){}visitCdata(e,t){}visitComment(e,t){}visitDocType(e,t){}visitExpansion(e,t){return this.visitChildren(t,(t=>{t(e.cases)}))}visitExpansionCase(e,t){}visitChildren(e,t){let r=[],n=this;return t((function(t){t&&r.push(Gi(n,t,e))})),Array.prototype.concat.apply([],r)}}var Hi=Vi;function Xi(e){const t=e.sourceSpan.start.offset;let r=e.sourceSpan.end.offset;return e instanceof $i&&(e.endSourceSpan?r=e.endSourceSpan.end.offset:e.children&&e.children.length&&(r=Xi(e.children[e.children.length-1]).end)),{start:t,end:r}}var zi=function(e,t){const r=[];return Gi(new class extends Vi{visit(e,n){const i=Xi(e);if(!(i.start<=t&&t]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];var Ji=function(e,t){if(!(null==t||Array.isArray(t)&&2==t.length))throw new Error(`Expected '${e}' to be an array, [start, end].`);if(null!=t){const e=t[0],r=t[1];Qi.forEach((t=>{if(t.test(e)||t.test(r))throw new Error(`['${e}', '${r}'] contains unusable interpolation symbol.`)}))}},Ki=Object.defineProperty({assertArrayOfStrings:Yi,assertInterpolationSymbols:Ji},"__esModule",{value:!0}),Zi=t((function(e,t){ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t){this.start=e,this.end=t}static fromArray(e){return e?(Ki.assertInterpolationSymbols("interpolation",e),new r(e[0],e[1])):t.DEFAULT_INTERPOLATION_CONFIG}}t.InterpolationConfig=r,t.DEFAULT_INTERPOLATION_CONFIG=new r("{{","}}")})),es=t((function(e,t){ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +Object.defineProperty(t,"__esModule",{value:!0});const n=r;var i;!function(e){e[e.TAG_OPEN_START=0]="TAG_OPEN_START",e[e.TAG_OPEN_END=1]="TAG_OPEN_END",e[e.TAG_OPEN_END_VOID=2]="TAG_OPEN_END_VOID",e[e.TAG_CLOSE=3]="TAG_CLOSE",e[e.TEXT=4]="TEXT",e[e.ESCAPABLE_RAW_TEXT=5]="ESCAPABLE_RAW_TEXT",e[e.RAW_TEXT=6]="RAW_TEXT",e[e.COMMENT_START=7]="COMMENT_START",e[e.COMMENT_END=8]="COMMENT_END",e[e.CDATA_START=9]="CDATA_START",e[e.CDATA_END=10]="CDATA_END",e[e.ATTR_NAME=11]="ATTR_NAME",e[e.ATTR_QUOTE=12]="ATTR_QUOTE",e[e.ATTR_VALUE=13]="ATTR_VALUE",e[e.DOC_TYPE_START=14]="DOC_TYPE_START",e[e.DOC_TYPE_END=15]="DOC_TYPE_END",e[e.EXPANSION_FORM_START=16]="EXPANSION_FORM_START",e[e.EXPANSION_CASE_VALUE=17]="EXPANSION_CASE_VALUE",e[e.EXPANSION_CASE_EXP_START=18]="EXPANSION_CASE_EXP_START",e[e.EXPANSION_CASE_EXP_END=19]="EXPANSION_CASE_EXP_END",e[e.EXPANSION_FORM_END=20]="EXPANSION_FORM_END",e[e.EOF=21]="EOF"}(i=t.TokenType||(t.TokenType={}));class s{constructor(e,t,r){this.type=e,this.parts=t,this.sourceSpan=r}}t.Token=s;class o extends B.ParseError{constructor(e,t,r){super(r,e),this.tokenType=t}}t.TokenError=o;class a{constructor(e,t){this.tokens=e,this.errors=t}}t.TokenizeResult=a,t.tokenize=function(e,t,r,n={}){return new D(new B.ParseSourceFile(e,t),r,n).tokenize()};const u=/\r\n?/g;function c(e){return`Unexpected character "${e===n.$EOF?"EOF":String.fromCharCode(e)}"`}function l(e){return`Unknown entity "${e}" - use the "&#;" or "&#x;" syntax`}class p{constructor(e){this.error=e}}class D{constructor(e,t,r){this._getTagContentType=t,this._currentTokenStart=null,this._currentTokenType=null,this._expansionCaseStack=[],this._inInterpolation=!1,this._fullNameStack=[],this.tokens=[],this.errors=[],this._tokenizeIcu=r.tokenizeExpansionForms||!1,this._interpolationConfig=r.interpolationConfig||Zi.DEFAULT_INTERPOLATION_CONFIG,this._leadingTriviaCodePoints=r.leadingTriviaChars&&r.leadingTriviaChars.map((e=>e.codePointAt(0)||0)),this._canSelfClose=r.canSelfClose||!1,this._allowHtmComponentClosingTags=r.allowHtmComponentClosingTags||!1;const n=r.range||{endPos:e.content.length,startPos:0,startLine:0,startCol:0};this._cursor=r.escapedString?new C(e,n):new E(e,n);try{this._cursor.init()}catch(e){this.handleError(e)}}_processCarriageReturns(e){return e.replace(u,"\n")}tokenize(){for(;this._cursor.peek()!==n.$EOF;){const e=this._cursor.clone();try{if(this._attemptCharCode(n.$LT))if(this._attemptCharCode(n.$BANG))this._attemptStr("[CDATA[")?this._consumeCdata(e):this._attemptStr("--")?this._consumeComment(e):this._attemptStrCaseInsensitive("doctype")?this._consumeDocType(e):this._consumeBogusComment(e);else if(this._attemptCharCode(n.$SLASH))this._consumeTagClose(e);else{const t=this._cursor.clone();this._attemptCharCode(n.$QUESTION)?(this._cursor=t,this._consumeBogusComment(e)):this._consumeTagOpen(e)}else this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(e){this.handleError(e)}}return this._beginToken(i.EOF),this._endToken([]),new a(function(e){const t=[];let r;for(let n=0;nthis._attemptStr("--\x3e"))),this._beginToken(i.COMMENT_END),this._requireStr("--\x3e"),this._endToken([])}_consumeBogusComment(e){this._beginToken(i.COMMENT_START,e),this._endToken([]),this._consumeRawText(!1,(()=>this._cursor.peek()===n.$GT)),this._beginToken(i.COMMENT_END),this._cursor.advance(),this._endToken([])}_consumeCdata(e){this._beginToken(i.CDATA_START,e),this._endToken([]),this._consumeRawText(!1,(()=>this._attemptStr("]]>"))),this._beginToken(i.CDATA_END),this._requireStr("]]>"),this._endToken([])}_consumeDocType(e){this._beginToken(i.DOC_TYPE_START,e),this._endToken([]),this._consumeRawText(!1,(()=>this._cursor.peek()===n.$GT)),this._beginToken(i.DOC_TYPE_END),this._cursor.advance(),this._endToken([])}_consumePrefixAndName(){const e=this._cursor.clone();let t="";for(;this._cursor.peek()!==n.$COLON&&!(((r=this._cursor.peek())n.$9));)this._cursor.advance();var r;let i;this._cursor.peek()===n.$COLON?(t=this._cursor.getChars(e),this._cursor.advance(),i=this._cursor.clone()):i=e,this._requireCharCodeUntilFn(d,""===t?0:1);return[t,this._cursor.getChars(i)]}_consumeTagOpen(e){let t,r,s,o=this.tokens.length;const a=this._cursor.clone(),u=[];try{if(!n.isAsciiLetter(this._cursor.peek()))throw this._createError(c(this._cursor.peek()),this._cursor.getSpan(e));for(s=this._consumeTagOpenStart(e),r=s.parts[0],t=s.parts[1],this._attemptCharCodeUntilFn(h);this._cursor.peek()!==n.$SLASH&&this._cursor.peek()!==n.$GT;){const[e,t]=this._consumeAttributeName();if(this._attemptCharCodeUntilFn(h),this._attemptCharCode(n.$EQ)){this._attemptCharCodeUntilFn(h);const r=this._consumeAttributeValue();u.push({prefix:e,name:t,value:r})}else u.push({prefix:e,name:t});this._attemptCharCodeUntilFn(h)}this._consumeTagOpenEnd()}catch(t){if(t instanceof p)return this._cursor=a,s&&(this.tokens.length=o),this._beginToken(i.TEXT,e),void this._endToken(["<"]);throw t}if(this._canSelfClose&&this.tokens[this.tokens.length-1].type===i.TAG_OPEN_END_VOID)return;const l=this._getTagContentType(t,r,this._fullNameStack.length>0,u);this._handleFullNameStackForTagOpen(r,t),l===vi.TagContentType.RAW_TEXT?this._consumeRawTextWithTagClose(r,t,!1):l===vi.TagContentType.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(r,t,!0)}_consumeRawTextWithTagClose(e,t,r){this._consumeRawText(r,(()=>!!this._attemptCharCode(n.$LT)&&(!!this._attemptCharCode(n.$SLASH)&&(this._attemptCharCodeUntilFn(h),!!this._attemptStrCaseInsensitive(e?`${e}:${t}`:t)&&(this._attemptCharCodeUntilFn(h),this._attemptCharCode(n.$GT)))))),this._beginToken(i.TAG_CLOSE),this._requireCharCodeUntilFn((e=>e===n.$GT),3),this._cursor.advance(),this._endToken([e,t]),this._handleFullNameStackForTagClose(e,t)}_consumeTagOpenStart(e){this._beginToken(i.TAG_OPEN_START,e);const t=this._consumePrefixAndName();return this._endToken(t)}_consumeAttributeName(){const e=this._cursor.peek();if(e===n.$SQ||e===n.$DQ)throw this._createError(c(e),this._cursor.getSpan());this._beginToken(i.ATTR_NAME);const t=this._consumePrefixAndName();return this._endToken(t),t}_consumeAttributeValue(){let e;if(this._cursor.peek()===n.$SQ||this._cursor.peek()===n.$DQ){this._beginToken(i.ATTR_QUOTE);const t=this._cursor.peek();this._cursor.advance(),this._endToken([String.fromCodePoint(t)]),this._beginToken(i.ATTR_VALUE);const r=[];for(;this._cursor.peek()!==t;)r.push(this._readChar(!0));e=this._processCarriageReturns(r.join("")),this._endToken([e]),this._beginToken(i.ATTR_QUOTE),this._cursor.advance(),this._endToken([String.fromCodePoint(t)])}else{this._beginToken(i.ATTR_VALUE);const t=this._cursor.clone();this._requireCharCodeUntilFn(d,1),e=this._processCarriageReturns(this._cursor.getChars(t)),this._endToken([e])}return e}_consumeTagOpenEnd(){const e=this._attemptCharCode(n.$SLASH)?i.TAG_OPEN_END_VOID:i.TAG_OPEN_END;this._beginToken(e),this._requireCharCode(n.$GT),this._endToken([])}_consumeTagClose(e){if(this._beginToken(i.TAG_CLOSE,e),this._attemptCharCodeUntilFn(h),this._allowHtmComponentClosingTags&&this._attemptCharCode(n.$SLASH))this._attemptCharCodeUntilFn(h),this._requireCharCode(n.$GT),this._endToken([]);else{const[e,t]=this._consumePrefixAndName();this._attemptCharCodeUntilFn(h),this._requireCharCode(n.$GT),this._endToken([e,t]),this._handleFullNameStackForTagClose(e,t)}}_consumeExpansionFormStart(){this._beginToken(i.EXPANSION_FORM_START),this._requireCharCode(n.$LBRACE),this._endToken([]),this._expansionCaseStack.push(i.EXPANSION_FORM_START),this._beginToken(i.RAW_TEXT);const e=this._readUntil(n.$COMMA);this._endToken([e]),this._requireCharCode(n.$COMMA),this._attemptCharCodeUntilFn(h),this._beginToken(i.RAW_TEXT);const t=this._readUntil(n.$COMMA);this._endToken([t]),this._requireCharCode(n.$COMMA),this._attemptCharCodeUntilFn(h)}_consumeExpansionCaseStart(){this._beginToken(i.EXPANSION_CASE_VALUE);const e=this._readUntil(n.$LBRACE).trim();this._endToken([e]),this._attemptCharCodeUntilFn(h),this._beginToken(i.EXPANSION_CASE_EXP_START),this._requireCharCode(n.$LBRACE),this._endToken([]),this._attemptCharCodeUntilFn(h),this._expansionCaseStack.push(i.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(i.EXPANSION_CASE_EXP_END),this._requireCharCode(n.$RBRACE),this._endToken([]),this._attemptCharCodeUntilFn(h),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(i.EXPANSION_FORM_END),this._requireCharCode(n.$RBRACE),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){const e=this._cursor.clone();this._beginToken(i.TEXT,e);const t=[];do{this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(t.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(t.push(this._interpolationConfig.end),this._inInterpolation=!1):t.push(this._readChar(!0))}while(!this._isTextEnd());this._endToken([this._processCarriageReturns(t.join(""))])}_isTextEnd(){if(this._cursor.peek()===n.$LT||this._cursor.peek()===n.$EOF)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(this.isExpansionFormStart())return!0;if(this._cursor.peek()===n.$RBRACE&&this._isInExpansionCase())return!0}return!1}_readUntil(e){const t=this._cursor.clone();return this._attemptUntilChar(e),this._cursor.getChars(t)}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===i.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===i.EXPANSION_FORM_START}isExpansionFormStart(){if(this._cursor.peek()!==n.$LBRACE)return!1;if(this._interpolationConfig){const e=this._cursor.clone(),t=this._attemptStr(this._interpolationConfig.start);return this._cursor=e,!t}return!0}_handleFullNameStackForTagOpen(e,t){const r=vi.mergeNsAndName(e,t);0!==this._fullNameStack.length&&this._fullNameStack[this._fullNameStack.length-1]!==r||this._fullNameStack.push(r)}_handleFullNameStackForTagClose(e,t){const r=vi.mergeNsAndName(e,t);0!==this._fullNameStack.length&&this._fullNameStack[this._fullNameStack.length-1]===r&&this._fullNameStack.pop()}}function h(e){return!n.isWhitespace(e)||e===n.$EOF}function d(e){return n.isWhitespace(e)||e===n.$GT||e===n.$SLASH||e===n.$SQ||e===n.$DQ||e===n.$EQ}function f(e){return e==n.$SEMICOLON||e==n.$EOF||!n.isAsciiHexDigit(e)}function m(e){return e==n.$SEMICOLON||e==n.$EOF||!n.isAsciiLetter(e)}function g(e){return e>=n.$a&&e<=n.$z?e-n.$a+n.$A:e}class E{constructor(e,t){if(e instanceof E)this.file=e.file,this.input=e.input,this.end=e.end,this.state=Object.assign({},e.state);else{if(!t)throw new Error("Programming error: the range argument must be provided with a file argument.");this.file=e,this.input=e.content,this.end=t.endPos,this.state={peek:-1,offset:t.startPos,line:t.startLine,column:t.startCol}}}clone(){return new E(this)}peek(){return this.state.peek}charsLeft(){return this.end-this.state.offset}diff(e){return this.state.offset-e.state.offset}advance(){this.advanceState(this.state)}init(){this.updatePeek(this.state)}getSpan(e,t){if(e=e||this,t)for(e=e.clone();this.diff(e)>0&&-1!==t.indexOf(e.peek());)e.advance();return new B.ParseSourceSpan(new B.ParseLocation(e.file,e.state.offset,e.state.line,e.state.column),new B.ParseLocation(this.file,this.state.offset,this.state.line,this.state.column))}getChars(e){return this.input.substring(e.state.offset,this.state.offset)}charAt(e){return this.input.charCodeAt(e)}advanceState(e){if(e.offset>=this.end)throw this.state=e,new T('Unexpected character "EOF"',this);const t=this.charAt(e.offset);t===n.$LF?(e.line++,e.column=0):n.isNewLine(t)||e.column++,e.offset++,this.updatePeek(e)}updatePeek(e){e.peek=e.offset>=this.end?n.$EOF:this.charAt(e.offset)}}class C extends E{constructor(e,t){e instanceof C?(super(e),this.internalState=Object.assign({},e.internalState)):(super(e,t),this.internalState=this.state)}advance(){this.state=this.internalState,super.advance(),this.processEscapeSequence()}init(){super.init(),this.processEscapeSequence()}clone(){return new C(this)}getChars(e){const t=e.clone();let r="";for(;t.internalState.offsetthis.internalState.peek;if(e()===n.$BACKSLASH)if(this.internalState=Object.assign({},this.state),this.advanceState(this.internalState),e()===n.$n)this.state.peek=n.$LF;else if(e()===n.$r)this.state.peek=n.$CR;else if(e()===n.$v)this.state.peek=n.$VTAB;else if(e()===n.$t)this.state.peek=n.$TAB;else if(e()===n.$b)this.state.peek=n.$BSPACE;else if(e()===n.$f)this.state.peek=n.$FF;else if(e()===n.$u)if(this.advanceState(this.internalState),e()===n.$LBRACE){this.advanceState(this.internalState);const t=this.clone();let r=0;for(;e()!==n.$RBRACE;)this.advanceState(this.internalState),r++;this.state.peek=this.decodeHexDigits(t,r)}else{const e=this.clone();this.advanceState(this.internalState),this.advanceState(this.internalState),this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(e,4)}else if(e()===n.$x){this.advanceState(this.internalState);const e=this.clone();this.advanceState(this.internalState),this.state.peek=this.decodeHexDigits(e,2)}else if(n.isOctalDigit(e())){let t="",r=0,i=this.clone();for(;n.isOctalDigit(e())&&r<3;)i=this.clone(),t+=String.fromCodePoint(e()),this.advanceState(this.internalState),r++;this.state.peek=parseInt(t,8),this.internalState=i.internalState}else n.isNewLine(this.internalState.peek)?(this.advanceState(this.internalState),this.state=this.internalState):this.state.peek=this.internalState.peek}decodeHexDigits(e,t){const r=this.input.substr(e.internalState.offset,t),n=parseInt(r,16);if(isNaN(n))throw e.state=e.internalState,new T("Invalid hexadecimal escape sequence",e);return n}}class T{constructor(e,t){this.msg=e,this.cursor=t}}t.CursorError=T})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class ts extends B.ParseError{constructor(e,t,r){super(t,r),this.elementName=e}static create(e,t,r){return new ts(e,t,r)}}var rs=ts;class ns{constructor(e,t){this.rootNodes=e,this.errors=t}}var is=ns;var ss=class{constructor(e){this.getTagDefinition=e}parse(e,t,r,n=!1,i){const s=e=>(t,...r)=>e(t.toLowerCase(),...r),o=n?this.getTagDefinition:s(this.getTagDefinition),a=e=>o(e).contentType,u=n?i:s(i),c=i?(e,t,r,n)=>{const i=u(e,t,r,n);return void 0!==i?i:a(e)}:a,l=es.tokenize(e,t,c,r),p=r&&r.canSelfClose||!1,D=r&&r.allowHtmComponentClosingTags||!1,h=new os(l.tokens,o,p,D,n).build();return new ns(h.rootNodes,l.errors.concat(h.errors))}};class os{constructor(e,t,r,n,i){this.tokens=e,this.getTagDefinition=t,this.canSelfClose=r,this.allowHtmComponentClosingTags=n,this.isTagNameCaseSensitive=i,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==es.TokenType.EOF;)this._peek.type===es.TokenType.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===es.TokenType.TAG_CLOSE?(this._closeVoidElement(),this._consumeEndTag(this._advance())):this._peek.type===es.TokenType.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===es.TokenType.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===es.TokenType.TEXT||this._peek.type===es.TokenType.RAW_TEXT||this._peek.type===es.TokenType.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===es.TokenType.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._peek.type===es.TokenType.DOC_TYPE_START?this._consumeDocType(this._advance()):this._advance();return new ns(this._rootNodes,this._errors)}_advance(){const e=this._peek;return this._index0)return this._errors=this._errors.concat(i.errors),null;const s=new B.ParseSourceSpan(e.sourceSpan.start,n.sourceSpan.end),o=new B.ParseSourceSpan(t.sourceSpan.start,n.sourceSpan.end);return new Wi.ExpansionCase(e.parts[0],i.rootNodes,s,e.sourceSpan,o)}_collectExpansionExpTokens(e){const t=[],r=[es.TokenType.EXPANSION_CASE_EXP_START];for(;;){if(this._peek.type!==es.TokenType.EXPANSION_FORM_START&&this._peek.type!==es.TokenType.EXPANSION_CASE_EXP_START||r.push(this._peek.type),this._peek.type===es.TokenType.EXPANSION_CASE_EXP_END){if(!as(r,es.TokenType.EXPANSION_CASE_EXP_START))return this._errors.push(ts.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(r.pop(),0==r.length)return t}if(this._peek.type===es.TokenType.EXPANSION_FORM_END){if(!as(r,es.TokenType.EXPANSION_FORM_START))return this._errors.push(ts.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;r.pop()}if(this._peek.type===es.TokenType.EOF)return this._errors.push(ts.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;t.push(this._advance())}}_getText(e){let t=e.parts[0];if(t.length>0&&"\n"==t[0]){const e=this._getParentElement();null!=e&&0==e.children.length&&this.getTagDefinition(e.name).ignoreFirstLf&&(t=t.substring(1))}return t}_consumeText(e){const t=this._getText(e);t.length>0&&this._addToParent(new Wi.Text(t,e.sourceSpan))}_closeVoidElement(){const e=this._getParentElement();e&&this.getTagDefinition(e.name).isVoid&&this._elementStack.pop()}_consumeStartTag(e){const t=e.parts[0],r=e.parts[1],n=[];for(;this._peek.type===es.TokenType.ATTR_NAME;)n.push(this._consumeAttr(this._advance()));const i=this._getElementFullName(t,r,this._getParentElement());let s=!1;if(this._peek.type===es.TokenType.TAG_OPEN_END_VOID){this._advance(),s=!0;const t=this.getTagDefinition(i);this.canSelfClose||t.canSelfClose||null!==vi.getNsPrefix(i)||t.isVoid||this._errors.push(ts.create(i,e.sourceSpan,`Only void and foreign elements can be self closed "${e.parts[1]}"`))}else this._peek.type===es.TokenType.TAG_OPEN_END&&(this._advance(),s=!1);const o=this._peek.sourceSpan.start,a=new B.ParseSourceSpan(e.sourceSpan.start,o),u=new B.ParseSourceSpan(e.sourceSpan.start.moveBy(1),e.sourceSpan.end),c=new Wi.Element(i,n,[],a,a,void 0,u);this._pushElement(c),s&&(this._popElement(i),c.endSourceSpan=a)}_pushElement(e){const t=this._getParentElement();t&&this.getTagDefinition(t.name).isClosedByChild(e.name)&&this._elementStack.pop(),this._addToParent(e),this._elementStack.push(e)}_consumeEndTag(e){const t=this.allowHtmComponentClosingTags&&0===e.parts.length?null:this._getElementFullName(e.parts[0],e.parts[1],this._getParentElement());if(this._getParentElement()&&(this._getParentElement().endSourceSpan=e.sourceSpan),t&&this.getTagDefinition(t).isVoid)this._errors.push(ts.create(t,e.sourceSpan,`Void elements do not have end tags "${e.parts[1]}"`));else if(!this._popElement(t)){const r=`Unexpected closing tag "${t}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;this._errors.push(ts.create(t,e.sourceSpan,r))}}_popElement(e){for(let t=this._elementStack.length-1;t>=0;t--){const r=this._elementStack[t];if(!e||(vi.getNsPrefix(r.name)?r.name==e:r.name.toLowerCase()==e.toLowerCase()))return this._elementStack.splice(t,this._elementStack.length-t),!0;if(!this.getTagDefinition(r.name).closedByParent)return!1}return!1}_consumeAttr(e){const t=vi.mergeNsAndName(e.parts[0],e.parts[1]);let r,n,i=e.sourceSpan.end,s="";if(this._peek.type===es.TokenType.ATTR_QUOTE){n=this._advance().sourceSpan.start}if(this._peek.type===es.TokenType.ATTR_VALUE){const e=this._advance();s=e.parts[0],i=e.sourceSpan.end,r=e.sourceSpan}if(this._peek.type===es.TokenType.ATTR_QUOTE){i=this._advance().sourceSpan.end,r=new B.ParseSourceSpan(n,i)}return new Wi.Attribute(t,s,new B.ParseSourceSpan(e.sourceSpan.start,i),r,e.sourceSpan)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let e=null;for(let t=this._elementStack.length-1;t>=0;t--){if(!vi.isNgContainer(this._elementStack[t].name))return{parent:this._elementStack[t],container:e};e=this._elementStack[t]}return{parent:null,container:e}}_addToParent(e){const t=this._getParentElement();null!=t?t.children.push(e):this._rootNodes.push(e)}_insertBeforeContainer(e,t,r){if(t){if(e){const n=e.children.indexOf(t);e.children[n]=r}else this._rootNodes.push(r);r.children.push(t),this._elementStack.splice(this._elementStack.indexOf(t),0,r)}else this._addToParent(r),this._elementStack.push(r)}_getElementFullName(e,t,r){return""===e&&""===(e=this.getTagDefinition(t).implicitNamespacePrefix||"")&&null!=r&&(e=vi.getNsPrefix(r.name)),vi.mergeNsAndName(e,t)}}function as(e,t){return e.length>0&&e[e.length-1]===t}var us=Object.defineProperty({TreeError:rs,ParseTreeResult:is,Parser:ss},"__esModule",{value:!0}),cs=us,ls=cs.ParseTreeResult,ps=cs.TreeError; +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */class Ds extends us.Parser{constructor(){super(ki.getHtmlTagDefinition)}parse(e,t,r,n=!1,i){return super.parse(e,t,r,n,i)}}var hs=Ds,ds=Object.defineProperty({ParseTreeResult:ls,TreeError:ps,HtmlParser:hs},"__esModule",{value:!0}),fs=vi.TagContentType;let ms=null;var gs=function(e,t={}){const{canSelfClose:r=!1,allowHtmComponentClosingTags:n=!1,isTagNameCaseSensitive:i=!1,getTagContentType:s}=t;return(ms||(ms=new ds.HtmlParser),ms).parse(e,"angular-html-parser",{tokenizeExpansionForms:!1,interpolationConfig:void 0,canSelfClose:r,allowHtmComponentClosingTags:n},i,s)},Es=Object.defineProperty({TagContentType:fs,parse:gs},"__esModule",{value:!0});const{ParseSourceSpan:Cs,ParseLocation:Ts,ParseSourceFile:ys}=B,{inferParserByLanguage:Ss}=Pn,{HTML_ELEMENT_ATTRIBUTES:_s,HTML_TAGS:vs,isUnknownNamespace:bs}=Di,{hasPragma:Fs}=hi,{Node:As}=Ci,{parseIeConditionalComment:ws}=Si,{locStart:Ns,locEnd:ks}=_i;function Os(e,{recognizeSelfClosing:t,normalizeTagName:r,normalizeAttributeName:n,allowHtmComponentClosingTags:i,isTagNameCaseSensitive:s,getTagContentType:o},a){const u=Es,{RecursiveVisitor:c,visitAll:l}=Wi,{ParseSourceSpan:p}=B,{getHtmlTagDefinition:D}=ki;let{rootNodes:h,errors:d}=u.parse(e,{canSelfClose:t,allowHtmComponentClosingTags:i,isTagNameCaseSensitive:s,getTagContentType:o});if("vue"===a.parser){if(h.some((e=>"docType"===e.type&&"html"===e.value||"element"===e.type&&"html"===e.name.toLowerCase()))){t=!0,r=!0,n=!0,i=!0,s=!1;const o=u.parse(e,{canSelfClose:t,allowHtmComponentClosingTags:i,isTagNameCaseSensitive:s});h=o.rootNodes,d=o.errors}else{const r=e=>{if(!e)return!1;if("element"!==e.type||"template"!==e.name)return!1;const t=e.attrs.find((e=>"lang"===e.name)),r=t&&t.value;return!r||"html"===Ss(r,a)};if(h.some(r)){let n;const o=()=>u.parse(e,{canSelfClose:t,allowHtmComponentClosingTags:i,isTagNameCaseSensitive:s}),a=()=>n||(n=o()),c=e=>a().rootNodes.find((({startSourceSpan:t})=>t&&t.start.offset===e.startSourceSpan.start.offset));for(let e=0;e0){const{msg:e,span:{start:t,end:r}}=d[0];throw U(e,{start:{line:t.line+1,column:t.col+1},end:{line:r.line+1,column:r.col+1}})}const f=e=>{const t=e.name.startsWith(":")?e.name.slice(1).split(":")[0]:null,r=e.nameSpan.toString(),n=null!==t&&r.startsWith(`${t}:`),i=n?r.slice(t.length+1):r;e.name=i,e.namespace=t,e.hasExplicitNamespace=n},m=(e,t)=>{const r=e.toLowerCase();return t(r)?r:e};return l(new class extends c{visit(e){(e=>{if("element"===e.type){f(e);for(const t of e.attrs)f(t),t.valueSpan?(t.value=t.valueSpan.toString(),/["']/.test(t.value[0])&&(t.value=t.value.slice(1,-1))):t.value=null}else"comment"===e.type?e.value=e.sourceSpan.toString().slice("\x3c!--".length,-"--\x3e".length):"text"===e.type&&(e.value=e.sourceSpan.toString())})(e),(e=>{if("element"===e.type){const t=D(s?e.name:e.name.toLowerCase());!e.namespace||e.namespace===t.implicitNamespacePrefix||bs(e)?e.tagDefinition=t:e.tagDefinition=D("")}})(e),(e=>{if("element"===e.type&&(!r||e.namespace&&e.namespace!==e.tagDefinition.implicitNamespacePrefix&&!bs(e)||(e.name=m(e.name,(e=>e in vs))),n)){const t=_s[e.name]||Object.create(null);for(const r of e.attrs)r.namespace||(r.name=m(r.name,(r=>e.name in _s&&(r in _s["*"]||r in t))))}})(e),(e=>{e.sourceSpan&&e.endSourceSpan&&(e.sourceSpan=new p(e.sourceSpan.start,e.endSourceSpan.end))})(e)}},h),h}function xs(e,t,r,n=!0){const{frontMatter:i,content:s}=n?q(e):{frontMatter:null,content:e},o=new ys(e,t.filepath),a=new Ts(o,0,0,0),u=a.moveBy(e.length),c={type:"root",sourceSpan:new Cs(a,u),children:Os(s,r,t)};if(i){const e=new Ts(o,0,0,0),t=e.moveBy(i.raw.length);i.sourceSpan=new Cs(e,t),c.children.unshift(i)}const l=new As(c),p=(n,i)=>{const{offset:s}=i,o=xs(e.slice(0,s).replace(/[^\n\r]/g," ")+n,t,r,!1);o.sourceSpan=new Cs(i,M(o.children).sourceSpan.end);const a=o.children[0];return a.length===s?o.children.shift():(a.sourceSpan=new Cs(a.sourceSpan.start.moveBy(s),a.sourceSpan.end),a.value=a.value.slice(s)),o};return l.map((e=>{if("comment"===e.type){const t=ws(e,p);if(t)return t}return e}))}function Is({recognizeSelfClosing:e=!1,normalizeTagName:t=!1,normalizeAttributeName:r=!1,allowHtmComponentClosingTags:n=!1,isTagNameCaseSensitive:i=!1,getTagContentType:s}={}){return{parse:(o,a,u)=>xs(o,u,{recognizeSelfClosing:e,normalizeTagName:t,normalizeAttributeName:r,allowHtmComponentClosingTags:n,isTagNameCaseSensitive:i,getTagContentType:s}),hasPragma:Fs,astFormat:"html",locStart:Ns,locEnd:ks}}var Ps={parsers:{html:Is({recognizeSelfClosing:!0,normalizeTagName:!0,normalizeAttributeName:!0,allowHtmComponentClosingTags:!0}),angular:Is(),vue:Is({recognizeSelfClosing:!0,isTagNameCaseSensitive:!0,getTagContentType:(e,t,r,n)=>{if("html"!==e.toLowerCase()&&!r&&("template"!==e||n.some((({name:e,value:t})=>"lang"===e&&"html"!==t))))return Es.TagContentType.RAW_TEXT}}),lwc:Is()}};export default Ps; diff --git a/node_modules/prettier/esm/parser-markdown.mjs b/node_modules/prettier/esm/parser-markdown.mjs new file mode 100644 index 0000000000..2f40c34f2c --- /dev/null +++ b/node_modules/prettier/esm/parser-markdown.mjs @@ -0,0 +1,34 @@ +var e=function(){for(var e={},r=0;r>18&63]+o[e>>12&63]+o[e>>6&63]+o[63&e]}function D(e,t,r){for(var n,u=[],i=t;if?f:c+a));return 1===n?(t=e[r-1],u+=o[t>>2],u+=o[t<<4&63],u+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],u+=o[t>>10],u+=o[t>>4&63],u+=o[t<<2&63],u+="="),i.push(u),i.join("")}function h(e,t,r,n,u){var i,o,a=8*u-n-1,c=(1<>1,l=-7,f=r?u-1:0,D=r?-1:1,p=e[t+f];for(f+=D,i=p&(1<<-l)-1,p>>=-l,l+=a;l>0;i=256*i+e[t+f],f+=D,l-=8);for(o=i&(1<<-l)-1,i>>=-l,l+=n;l>0;o=256*o+e[t+f],f+=D,l-=8);if(0===i)i=1-s;else{if(i===c)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),i-=s}return(p?-1:1)*o*Math.pow(2,i-n)}function d(e,t,r,n,u,i){var o,a,c,s=8*i-u-1,l=(1<>1,D=23===u?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,h=n?1:-1,d=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+f>=1?D/c:D*Math.pow(2,1-f))*c>=2&&(o++,c/=2),o+f>=l?(a=0,o=l):o+f>=1?(a=(t*c-1)*Math.pow(2,u),o+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,u),o=0));u>=8;e[r+p]=255&a,p+=h,a/=256,u-=8);for(o=o<0;e[r+p]=255&o,p+=h,o/=256,s-=8);e[r+p-h]|=128*d}var g={}.toString,m=Array.isArray||function(e){return"[object Array]"==g.call(e)};function E(){return v.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function y(e,t){if(E()=E())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+E().toString(16)+" bytes");return 0|e}function k(e){return!(null==e||!e._isBuffer)}function O(e,t){if(k(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return ee(e).length;default:if(n)return Q(e).length;t=(""+t).toLowerCase(),n=!0}}function T(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return M(this,t,r);case"utf8":case"utf-8":return _(this,t,r);case"ascii":return U(this,t,r);case"latin1":case"binary":return $(this,t,r);case"base64":return j(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function S(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function I(e,t,r,n,u){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=u?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(u)return-1;r=e.length-1}else if(r<0){if(!u)return-1;r=0}if("string"==typeof t&&(t=v.from(t,n)),k(t))return 0===t.length?-1:R(e,t,r,n,u);if("number"==typeof t)return t&=255,v.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?u?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):R(e,[t],r,n,u);throw new TypeError("val must be string, number or Buffer")}function R(e,t,r,n,u){var i,o=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,r/=2}function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(u){var l=-1;for(i=r;ia&&(r=a-c),i=r;i>=0;i--){for(var f=!0,D=0;Du&&(n=u):n=u;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var o=0;o>8,u=r%256,i.push(u),i.push(n);return i}(t,e.length-r),e,r,n)}function j(e,t,r){return 0===t&&r===e.length?p(e):p(e.slice(t,r))}function _(e,t,r){r=Math.min(e.length,r);for(var n=[],u=t;u239?4:s>223?3:s>191?2:1;if(u+f<=r)switch(f){case 1:s<128&&(l=s);break;case 2:128==(192&(i=e[u+1]))&&(c=(31&s)<<6|63&i)>127&&(l=c);break;case 3:i=e[u+1],o=e[u+2],128==(192&i)&&128==(192&o)&&(c=(15&s)<<12|(63&i)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[u+1],o=e[u+2],a=e[u+3],128==(192&i)&&128==(192&o)&&128==(192&a)&&(c=(15&s)<<18|(63&i)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),u+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},v.prototype.compare=function(e,t,r,n,u){if(!k(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===u&&(u=this.length),t<0||r>e.length||n<0||u>this.length)throw new RangeError("out of range index");if(n>=u&&t>=r)return 0;if(n>=u)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(u>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),a=Math.min(i,o),c=this.slice(n,u),s=e.slice(t,r),l=0;lu)&&(r=u),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return x(this,e,t,r);case"utf8":case"utf-8":return B(this,e,t,r);case"ascii":return N(this,e,t,r);case"latin1":case"binary":return L(this,e,t,r);case"base64":return P(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return q(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},v.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function U(e,t,r){var n="";r=Math.min(e.length,r);for(var u=t;un)&&(r=n);for(var u="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function V(e,t,r,n,u,i){if(!k(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>u||te.length)throw new RangeError("Index out of range")}function Y(e,t,r,n){t<0&&(t=65535+t+1);for(var u=0,i=Math.min(e.length-r,2);u>>8*(n?u:1-u)}function H(e,t,r,n){t<0&&(t=4294967295+t+1);for(var u=0,i=Math.min(e.length-r,4);u>>8*(n?u:3-u)&255}function X(e,t,r,n,u,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function W(e,t,r,n,u){return u||X(e,0,r,4),d(e,t,r,n,23,4),r+4}function Z(e,t,r,n,u){return u||X(e,0,r,8),d(e,t,r,n,52,8),r+8}v.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(u*=256);)n+=this[e+--t]*u;return n},v.prototype.readUInt8=function(e,t){return t||G(e,1,this.length),this[e]},v.prototype.readUInt16LE=function(e,t){return t||G(e,2,this.length),this[e]|this[e+1]<<8},v.prototype.readUInt16BE=function(e,t){return t||G(e,2,this.length),this[e]<<8|this[e+1]},v.prototype.readUInt32LE=function(e,t){return t||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},v.prototype.readUInt32BE=function(e,t){return t||G(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},v.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||G(e,t,this.length);for(var n=this[e],u=1,i=0;++i=(u*=128)&&(n-=Math.pow(2,8*t)),n},v.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||G(e,t,this.length);for(var n=t,u=1,i=this[e+--n];n>0&&(u*=256);)i+=this[e+--n]*u;return i>=(u*=128)&&(i-=Math.pow(2,8*t)),i},v.prototype.readInt8=function(e,t){return t||G(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},v.prototype.readInt16LE=function(e,t){t||G(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},v.prototype.readInt16BE=function(e,t){t||G(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},v.prototype.readInt32LE=function(e,t){return t||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},v.prototype.readInt32BE=function(e,t){return t||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},v.prototype.readFloatLE=function(e,t){return t||G(e,4,this.length),h(this,e,!0,23,4)},v.prototype.readFloatBE=function(e,t){return t||G(e,4,this.length),h(this,e,!1,23,4)},v.prototype.readDoubleLE=function(e,t){return t||G(e,8,this.length),h(this,e,!0,52,8)},v.prototype.readDoubleBE=function(e,t){return t||G(e,8,this.length),h(this,e,!1,52,8)},v.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||V(this,e,t,r,Math.pow(2,8*r)-1,0);var u=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+u]=e/i&255;return t+r},v.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,1,255,0),v.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},v.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,2,65535,0),v.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Y(this,e,t,!0),t+2},v.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,2,65535,0),v.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Y(this,e,t,!1),t+2},v.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,4,4294967295,0),v.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):H(this,e,t,!0),t+4},v.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,4,4294967295,0),v.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):H(this,e,t,!1),t+4},v.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var u=Math.pow(2,8*r-1);V(this,e,t,r,u-1,-u)}var i=0,o=1,a=0;for(this[t]=255&e;++i>0)-a&255;return t+r},v.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var u=Math.pow(2,8*r-1);V(this,e,t,r,u-1,-u)}var i=r-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+r},v.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,1,127,-128),v.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},v.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,2,32767,-32768),v.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Y(this,e,t,!0),t+2},v.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,2,32767,-32768),v.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Y(this,e,t,!1),t+2},v.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,4,2147483647,-2147483648),v.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):H(this,e,t,!0),t+4},v.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||V(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),v.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):H(this,e,t,!1),t+4},v.prototype.writeFloatLE=function(e,t,r){return W(this,e,t,!0,r)},v.prototype.writeFloatBE=function(e,t,r){return W(this,e,t,!1,r)},v.prototype.writeDoubleLE=function(e,t,r){return Z(this,e,t,!0,r)},v.prototype.writeDoubleBE=function(e,t,r){return Z(this,e,t,!1,r)},v.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--u)e[u+t]=this[u+r];else if(i<1e3||!v.TYPED_ARRAY_SUPPORT)for(u=0;u>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!u){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&i.push(239,191,189);continue}u=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),u=r;continue}r=65536+(u-55296<<10|r-56320)}else u&&(t-=3)>-1&&i.push(239,191,189);if(u=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function ee(e){return function(e){var t,r,n,u,i,o;s||l();var f=e.length;if(f%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===e[f-2]?2:"="===e[f-1]?1:0,o=new c(3*f/4-i),n=i>0?f-4:f;var D=0;for(t=0,r=0;t>16&255,o[D++]=u>>8&255,o[D++]=255&u;return 2===i?(u=a[e.charCodeAt(t)]<<2|a[e.charCodeAt(t+1)]>>4,o[D++]=255&u):1===i&&(u=a[e.charCodeAt(t)]<<10|a[e.charCodeAt(t+1)]<<4|a[e.charCodeAt(t+2)]>>2,o[D++]=u>>8&255,o[D++]=255&u),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(J,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function te(e,t,r,n){for(var u=0;u=t.length||u>=e.length);++u)t[u+r]=e[u];return u}function re(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function ne(){throw new Error("setTimeout has not been defined")}function ue(){throw new Error("clearTimeout has not been defined")}var ie=ne,oe=ue;function ae(e){if(ie===setTimeout)return setTimeout(e,0);if((ie===ne||!ie)&&setTimeout)return ie=setTimeout,setTimeout(e,0);try{return ie(e,0)}catch(t){try{return ie.call(null,e,0)}catch(t){return ie.call(this,e,0)}}}"function"==typeof i.setTimeout&&(ie=setTimeout),"function"==typeof i.clearTimeout&&(oe=clearTimeout);var ce,se=[],le=!1,fe=-1;function De(){le&&ce&&(le=!1,ce.length?se=ce.concat(se):fe=-1,se.length&&pe())}function pe(){if(!le){var e=ae(De);le=!0;for(var t=se.length;t;){for(ce=se,se=[];++fe1)for(var r=1;r=u)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),$e(t)?r.showHidden=t:t&&ot(r,t),He(r.showHidden)&&(r.showHidden=!1),He(r.depth)&&(r.depth=2),He(r.colors)&&(r.colors=!1),He(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=Le),qe(r,e,r.depth)}function Le(e,t){var r=Ne.styles[t];return r?"\x1b["+Ne.colors[r][0]+"m"+e+"\x1b["+Ne.colors[r][1]+"m":e}function Pe(e,t){return e}function qe(e,t,r){if(e.customInspect&&t&&Ke(t.inspect)&&t.inspect!==Ne&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return Ve(n)||(n=qe(e,n,r)),n}var u=function(e,t){if(He(t))return e.stylize("undefined","undefined");if(Ve(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(Ge(t))return e.stylize(""+t,"number");if($e(t))return e.stylize(""+t,"boolean");if(Me(t))return e.stylize("null","null")}(e,t);if(u)return u;var i=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),Je(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return je(t);if(0===i.length){if(Ke(t)){var a=t.name?": "+t.name:"";return e.stylize("[Function"+a+"]","special")}if(Xe(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Ze(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Je(t))return je(t)}var c,s="",l=!1,f=["{","}"];(Ue(t)&&(l=!0,f=["[","]"]),Ke(t))&&(s=" [Function"+(t.name?": "+t.name:"")+"]");return Xe(t)&&(s=" "+RegExp.prototype.toString.call(t)),Ze(t)&&(s=" "+Date.prototype.toUTCString.call(t)),Je(t)&&(s=" "+je(t)),0!==i.length||l&&0!=t.length?r<0?Xe(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=l?function(e,t,r,n,u){for(var i=[],o=0,a=t.length;o60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,s,f)):f[0]+s+f[1]}function je(e){return"["+Error.prototype.toString.call(e)+"]"}function _e(e,t,r,n,u,i){var o,a,c;if((c=Object.getOwnPropertyDescriptor(t,u)||{value:t[u]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),at(n,u)||(o="["+u+"]"),a||(e.seen.indexOf(c.value)<0?(a=Me(r)?qe(e,c.value,null):qe(e,c.value,r-1)).indexOf("\n")>-1&&(a=i?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),He(o)){if(i&&u.match(/^\d+$/))return a;(o=JSON.stringify(""+u)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function Ue(e){return Array.isArray(e)}function $e(e){return"boolean"==typeof e}function Me(e){return null===e}function ze(e){return null==e}function Ge(e){return"number"==typeof e}function Ve(e){return"string"==typeof e}function Ye(e){return"symbol"==typeof e}function He(e){return void 0===e}function Xe(e){return We(e)&&"[object RegExp]"===tt(e)}function We(e){return"object"==typeof e&&null!==e}function Ze(e){return We(e)&&"[object Date]"===tt(e)}function Je(e){return We(e)&&("[object Error]"===tt(e)||e instanceof Error)}function Ke(e){return"function"==typeof e}function Qe(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function et(e){return v.isBuffer(e)}function tt(e){return Object.prototype.toString.call(e)}function rt(e){return e<10?"0"+e.toString(10):e.toString(10)}Ne.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Ne.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var nt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ut(){var e=new Date,t=[rt(e.getHours()),rt(e.getMinutes()),rt(e.getSeconds())].join(":");return[e.getDate(),nt[e.getMonth()],t].join(" ")}function it(){console.log("%s - %s",ut(),Se.apply(null,arguments))}function ot(e,t){if(!t||!We(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function at(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var ct={inherits:Oe,_extend:ot,log:it,isBuffer:et,isPrimitive:Qe,isFunction:Ke,isError:Je,isDate:Ze,isObject:We,isRegExp:Xe,isUndefined:He,isSymbol:Ye,isString:Ve,isNumber:Ge,isNullOrUndefined:ze,isNull:Me,isBoolean:$e,isArray:Ue,inspect:Ne,deprecate:Ie,format:Se,debuglog:Be},st=Object.freeze({__proto__:null,format:Se,deprecate:Ie,debuglog:Be,inspect:Ne,isArray:Ue,isBoolean:$e,isNull:Me,isNullOrUndefined:ze,isNumber:Ge,isString:Ve,isSymbol:Ye,isUndefined:He,isRegExp:Xe,isObject:We,isDate:Ze,isError:Je,isFunction:Ke,isPrimitive:Qe,isBuffer:et,log:it,inherits:Oe,_extend:ot,default:ct}),lt=u((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}})),ft=n(st),Dt=u((function(e){try{var t=ft;if("function"!=typeof t.inherits)throw"";e.exports=t.inherits}catch(t){e.exports=lt}})),pt=function(t){var r,n,u;for(n in Dt(o,t),Dt(i,o),r=o.prototype)(u=r[n])&&"object"==typeof u&&(r[n]="concat"in u?u.concat():e(u));return o;function i(e){return t.apply(this,e)}function o(){return this instanceof o?t.apply(this,arguments):new i(arguments)}};var ht=function(e,t,r){return function(){var n=r||this,u=n[e];return n[e]=!t,i;function i(){n[e]=u}}};var dt=function(e){var t=String(e),r=[],n=/\r?\n|\r/g;for(;n.exec(t);)r.push(n.lastIndex);return r.push(t.length+1),{toPoint:u,toPosition:u,toOffset:function(e){var t,n=e&&e.line,u=e&&e.column;isNaN(n)||isNaN(u)||!(n-1 in r)||(t=(r[n-2]||0)+u-1||0);return t>-1&&t-1&&ee)return{line:t+1,column:e-(r[t-1]||0)+1,offset:e};return{}}};var gt=function(e,t){return function(r){var n,u=0,i=r.indexOf("\\"),o=e[t],a=[];for(;-1!==i;)a.push(r.slice(u,i)),u=i+1,(n=r.charAt(u))&&-1!==o.indexOf(n)||a.push("\\"),i=r.indexOf("\\",u+1);return a.push(r.slice(u)),a.join("")}};var mt={AElig:"\xc6",AMP:"&",Aacute:"\xc1",Acirc:"\xc2",Agrave:"\xc0",Aring:"\xc5",Atilde:"\xc3",Auml:"\xc4",COPY:"\xa9",Ccedil:"\xc7",ETH:"\xd0",Eacute:"\xc9",Ecirc:"\xca",Egrave:"\xc8",Euml:"\xcb",GT:">",Iacute:"\xcd",Icirc:"\xce",Igrave:"\xcc",Iuml:"\xcf",LT:"<",Ntilde:"\xd1",Oacute:"\xd3",Ocirc:"\xd4",Ograve:"\xd2",Oslash:"\xd8",Otilde:"\xd5",Ouml:"\xd6",QUOT:'"',REG:"\xae",THORN:"\xde",Uacute:"\xda",Ucirc:"\xdb",Ugrave:"\xd9",Uuml:"\xdc",Yacute:"\xdd",aacute:"\xe1",acirc:"\xe2",acute:"\xb4",aelig:"\xe6",agrave:"\xe0",amp:"&",aring:"\xe5",atilde:"\xe3",auml:"\xe4",brvbar:"\xa6",ccedil:"\xe7",cedil:"\xb8",cent:"\xa2",copy:"\xa9",curren:"\xa4",deg:"\xb0",divide:"\xf7",eacute:"\xe9",ecirc:"\xea",egrave:"\xe8",eth:"\xf0",euml:"\xeb",frac12:"\xbd",frac14:"\xbc",frac34:"\xbe",gt:">",iacute:"\xed",icirc:"\xee",iexcl:"\xa1",igrave:"\xec",iquest:"\xbf",iuml:"\xef",laquo:"\xab",lt:"<",macr:"\xaf",micro:"\xb5",middot:"\xb7",nbsp:"\xa0",not:"\xac",ntilde:"\xf1",oacute:"\xf3",ocirc:"\xf4",ograve:"\xf2",ordf:"\xaa",ordm:"\xba",oslash:"\xf8",otilde:"\xf5",ouml:"\xf6",para:"\xb6",plusmn:"\xb1",pound:"\xa3",quot:'"',raquo:"\xbb",reg:"\xae",sect:"\xa7",shy:"\xad",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",szlig:"\xdf",thorn:"\xfe",times:"\xd7",uacute:"\xfa",ucirc:"\xfb",ugrave:"\xf9",uml:"\xa8",uuml:"\xfc",yacute:"\xfd",yen:"\xa5",yuml:"\xff"},Et={0:"\ufffd",128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"},yt=function(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=48&&t<=57};var vt=function(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57};var bt=function(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90};var Ct=function(e){return bt(e)||yt(e)};var At={AEli:"\xc6",AElig:"\xc6",AM:"&",AMP:"&",Aacut:"\xc1",Aacute:"\xc1",Abreve:"\u0102",Acir:"\xc2",Acirc:"\xc2",Acy:"\u0410",Afr:"\ud835\udd04",Agrav:"\xc0",Agrave:"\xc0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2a53",Aogon:"\u0104",Aopf:"\ud835\udd38",ApplyFunction:"\u2061",Arin:"\xc5",Aring:"\xc5",Ascr:"\ud835\udc9c",Assign:"\u2254",Atild:"\xc3",Atilde:"\xc3",Aum:"\xc4",Auml:"\xc4",Backslash:"\u2216",Barv:"\u2ae7",Barwed:"\u2306",Bcy:"\u0411",Because:"\u2235",Bernoullis:"\u212c",Beta:"\u0392",Bfr:"\ud835\udd05",Bopf:"\ud835\udd39",Breve:"\u02d8",Bscr:"\u212c",Bumpeq:"\u224e",CHcy:"\u0427",COP:"\xa9",COPY:"\xa9",Cacute:"\u0106",Cap:"\u22d2",CapitalDifferentialD:"\u2145",Cayleys:"\u212d",Ccaron:"\u010c",Ccedi:"\xc7",Ccedil:"\xc7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010a",Cedilla:"\xb8",CenterDot:"\xb7",Cfr:"\u212d",Chi:"\u03a7",CircleDot:"\u2299",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",Colon:"\u2237",Colone:"\u2a74",Congruent:"\u2261",Conint:"\u222f",ContourIntegral:"\u222e",Copf:"\u2102",Coproduct:"\u2210",CounterClockwiseContourIntegral:"\u2233",Cross:"\u2a2f",Cscr:"\ud835\udc9e",Cup:"\u22d3",CupCap:"\u224d",DD:"\u2145",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040f",Dagger:"\u2021",Darr:"\u21a1",Dashv:"\u2ae4",Dcaron:"\u010e",Dcy:"\u0414",Del:"\u2207",Delta:"\u0394",Dfr:"\ud835\udd07",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",Diamond:"\u22c4",DifferentialD:"\u2146",Dopf:"\ud835\udd3b",Dot:"\xa8",DotDot:"\u20dc",DotEqual:"\u2250",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVector:"\u21bd",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295f",DownRightVector:"\u21c1",DownRightVectorBar:"\u2957",DownTee:"\u22a4",DownTeeArrow:"\u21a7",Downarrow:"\u21d3",Dscr:"\ud835\udc9f",Dstrok:"\u0110",ENG:"\u014a",ET:"\xd0",ETH:"\xd0",Eacut:"\xc9",Eacute:"\xc9",Ecaron:"\u011a",Ecir:"\xca",Ecirc:"\xca",Ecy:"\u042d",Edot:"\u0116",Efr:"\ud835\udd08",Egrav:"\xc8",Egrave:"\xc8",Element:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25fb",EmptyVerySmallSquare:"\u25ab",Eogon:"\u0118",Eopf:"\ud835\udd3c",Epsilon:"\u0395",Equal:"\u2a75",EqualTilde:"\u2242",Equilibrium:"\u21cc",Escr:"\u2130",Esim:"\u2a73",Eta:"\u0397",Eum:"\xcb",Euml:"\xcb",Exists:"\u2203",ExponentialE:"\u2147",Fcy:"\u0424",Ffr:"\ud835\udd09",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",Fopf:"\ud835\udd3d",ForAll:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",G:">",GT:">",Gamma:"\u0393",Gammad:"\u03dc",Gbreve:"\u011e",Gcedil:"\u0122",Gcirc:"\u011c",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\ud835\udd0a",Gg:"\u22d9",Gopf:"\ud835\udd3e",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",Gt:"\u226b",HARDcy:"\u042a",Hacek:"\u02c7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210c",HilbertSpace:"\u210b",Hopf:"\u210d",HorizontalLine:"\u2500",Hscr:"\u210b",Hstrok:"\u0126",HumpDownHump:"\u224e",HumpEqual:"\u224f",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacut:"\xcd",Iacute:"\xcd",Icir:"\xce",Icirc:"\xce",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrav:"\xcc",Igrave:"\xcc",Im:"\u2111",Imacr:"\u012a",ImaginaryI:"\u2148",Implies:"\u21d2",Int:"\u222c",Integral:"\u222b",Intersection:"\u22c2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012e",Iopf:"\ud835\udd40",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Ium:"\xcf",Iuml:"\xcf",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\ud835\udd0d",Jopf:"\ud835\udd41",Jscr:"\ud835\udca5",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040c",Kappa:"\u039a",Kcedil:"\u0136",Kcy:"\u041a",Kfr:"\ud835\udd0e",Kopf:"\ud835\udd42",Kscr:"\ud835\udca6",LJcy:"\u0409",L:"<",LT:"<",Lacute:"\u0139",Lambda:"\u039b",Lang:"\u27ea",Laplacetrf:"\u2112",Larr:"\u219e",Lcaron:"\u013d",Lcedil:"\u013b",Lcy:"\u041b",LeftAngleBracket:"\u27e8",LeftArrow:"\u2190",LeftArrowBar:"\u21e4",LeftArrowRightArrow:"\u21c6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21c3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230a",LeftRightArrow:"\u2194",LeftRightVector:"\u294e",LeftTee:"\u22a3",LeftTeeArrow:"\u21a4",LeftTeeVector:"\u295a",LeftTriangle:"\u22b2",LeftTriangleBar:"\u29cf",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21bf",LeftUpVectorBar:"\u2958",LeftVector:"\u21bc",LeftVectorBar:"\u2952",Leftarrow:"\u21d0",Leftrightarrow:"\u21d4",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2aa1",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",Lfr:"\ud835\udd0f",Ll:"\u22d8",Lleftarrow:"\u21da",Lmidot:"\u013f",LongLeftArrow:"\u27f5",LongLeftRightArrow:"\u27f7",LongRightArrow:"\u27f6",Longleftarrow:"\u27f8",Longleftrightarrow:"\u27fa",Longrightarrow:"\u27f9",Lopf:"\ud835\udd43",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21b0",Lstrok:"\u0141",Lt:"\u226a",Map:"\u2905",Mcy:"\u041c",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",MinusPlus:"\u2213",Mopf:"\ud835\udd44",Mscr:"\u2133",Mu:"\u039c",NJcy:"\u040a",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041d",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",Nfr:"\ud835\udd11",NoBreak:"\u2060",NonBreakingSpace:"\xa0",Nopf:"\u2115",Not:"\u2aec",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangle:"\u22eb",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\ud835\udca9",Ntild:"\xd1",Ntilde:"\xd1",Nu:"\u039d",OElig:"\u0152",Oacut:"\xd3",Oacute:"\xd3",Ocir:"\xd4",Ocirc:"\xd4",Ocy:"\u041e",Odblac:"\u0150",Ofr:"\ud835\udd12",Ograv:"\xd2",Ograve:"\xd2",Omacr:"\u014c",Omega:"\u03a9",Omicron:"\u039f",Oopf:"\ud835\udd46",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",Or:"\u2a54",Oscr:"\ud835\udcaa",Oslas:"\xd8",Oslash:"\xd8",Otild:"\xd5",Otilde:"\xd5",Otimes:"\u2a37",Oum:"\xd6",Ouml:"\xd6",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",PartialD:"\u2202",Pcy:"\u041f",Pfr:"\ud835\udd13",Phi:"\u03a6",Pi:"\u03a0",PlusMinus:"\xb1",Poincareplane:"\u210c",Popf:"\u2119",Pr:"\u2abb",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",Prime:"\u2033",Product:"\u220f",Proportion:"\u2237",Proportional:"\u221d",Pscr:"\ud835\udcab",Psi:"\u03a8",QUO:'"',QUOT:'"',Qfr:"\ud835\udd14",Qopf:"\u211a",Qscr:"\ud835\udcac",RBarr:"\u2910",RE:"\xae",REG:"\xae",Racute:"\u0154",Rang:"\u27eb",Rarr:"\u21a0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211c",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",Rfr:"\u211c",Rho:"\u03a1",RightAngleBracket:"\u27e9",RightArrow:"\u2192",RightArrowBar:"\u21e5",RightArrowLeftArrow:"\u21c4",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVector:"\u21c2",RightDownVectorBar:"\u2955",RightFloor:"\u230b",RightTee:"\u22a2",RightTeeArrow:"\u21a6",RightTeeVector:"\u295b",RightTriangle:"\u22b3",RightTriangleBar:"\u29d0",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVector:"\u21be",RightUpVectorBar:"\u2954",RightVector:"\u21c0",RightVectorBar:"\u2953",Rightarrow:"\u21d2",Ropf:"\u211d",RoundImplies:"\u2970",Rrightarrow:"\u21db",Rscr:"\u211b",Rsh:"\u21b1",RuleDelayed:"\u29f4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042c",Sacute:"\u015a",Sc:"\u2abc",Scaron:"\u0160",Scedil:"\u015e",Scirc:"\u015c",Scy:"\u0421",Sfr:"\ud835\udd16",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03a3",SmallCircle:"\u2218",Sopf:"\ud835\udd4a",Sqrt:"\u221a",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\ud835\udcae",Star:"\u22c6",Sub:"\u22d0",Subset:"\u22d0",SubsetEqual:"\u2286",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",SuchThat:"\u220b",Sum:"\u2211",Sup:"\u22d1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22d1",THOR:"\xde",THORN:"\xde",TRADE:"\u2122",TSHcy:"\u040b",TScy:"\u0426",Tab:"\t",Tau:"\u03a4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\ud835\udd17",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\ud835\udd4b",TripleDot:"\u20db",Tscr:"\ud835\udcaf",Tstrok:"\u0166",Uacut:"\xda",Uacute:"\xda",Uarr:"\u219f",Uarrocir:"\u2949",Ubrcy:"\u040e",Ubreve:"\u016c",Ucir:"\xdb",Ucirc:"\xdb",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\ud835\udd18",Ugrav:"\xd9",Ugrave:"\xd9",Umacr:"\u016a",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",Uopf:"\ud835\udd4c",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21c5",UpDownArrow:"\u2195",UpEquilibrium:"\u296e",UpTee:"\u22a5",UpTeeArrow:"\u21a5",Uparrow:"\u21d1",Updownarrow:"\u21d5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03d2",Upsilon:"\u03a5",Uring:"\u016e",Uscr:"\ud835\udcb0",Utilde:"\u0168",Uum:"\xdc",Uuml:"\xdc",VDash:"\u22ab",Vbar:"\u2aeb",Vcy:"\u0412",Vdash:"\u22a9",Vdashl:"\u2ae6",Vee:"\u22c1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",Vopf:"\ud835\udd4d",Vscr:"\ud835\udcb1",Vvdash:"\u22aa",Wcirc:"\u0174",Wedge:"\u22c0",Wfr:"\ud835\udd1a",Wopf:"\ud835\udd4e",Wscr:"\ud835\udcb2",Xfr:"\ud835\udd1b",Xi:"\u039e",Xopf:"\ud835\udd4f",Xscr:"\ud835\udcb3",YAcy:"\u042f",YIcy:"\u0407",YUcy:"\u042e",Yacut:"\xdd",Yacute:"\xdd",Ycirc:"\u0176",Ycy:"\u042b",Yfr:"\ud835\udd1c",Yopf:"\ud835\udd50",Yscr:"\ud835\udcb4",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017d",Zcy:"\u0417",Zdot:"\u017b",ZeroWidthSpace:"\u200b",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\ud835\udcb5",aacut:"\xe1",aacute:"\xe1",abreve:"\u0103",ac:"\u223e",acE:"\u223e\u0333",acd:"\u223f",acir:"\xe2",acirc:"\xe2",acut:"\xb4",acute:"\xb4",acy:"\u0430",aeli:"\xe6",aelig:"\xe6",af:"\u2061",afr:"\ud835\udd1e",agrav:"\xe0",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03b1",amacr:"\u0101",amalg:"\u2a3f",am:"&",amp:"&",and:"\u2227",andand:"\u2a55",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",aogon:"\u0105",aopf:"\ud835\udd52",ap:"\u2248",apE:"\u2a70",apacir:"\u2a6f",ape:"\u224a",apid:"\u224b",apos:"'",approx:"\u2248",approxeq:"\u224a",arin:"\xe5",aring:"\xe5",ascr:"\ud835\udcb6",ast:"*",asymp:"\u2248",asympeq:"\u224d",atild:"\xe3",atilde:"\xe3",aum:"\xe4",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",bNot:"\u2aed",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",barvee:"\u22bd",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",beta:"\u03b2",beth:"\u2136",between:"\u226c",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bnot:"\u2310",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255d",boxUR:"\u255a",boxUl:"\u255c",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256c",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256b",boxVl:"\u2562",boxVr:"\u255f",boxbox:"\u29c9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250c",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252c",boxhu:"\u2534",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxuL:"\u255b",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256a",boxvL:"\u2561",boxvR:"\u255e",boxvh:"\u253c",boxvl:"\u2524",boxvr:"\u251c",bprime:"\u2035",breve:"\u02d8",brvba:"\xa6",brvbar:"\xa6",bscr:"\ud835\udcb7",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsol:"\\",bsolb:"\u29c5",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",bumpeq:"\u224f",cacute:"\u0107",cap:"\u2229",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",capcup:"\u2a47",capdot:"\u2a40",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",ccaps:"\u2a4d",ccaron:"\u010d",ccedi:"\xe7",ccedil:"\xe7",ccirc:"\u0109",ccups:"\u2a4c",ccupssm:"\u2a50",cdot:"\u010b",cedi:"\xb8",cedil:"\xb8",cemptyv:"\u29b2",cen:"\xa2",cent:"\xa2",centerdot:"\xb7",cfr:"\ud835\udd20",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03c7",cir:"\u25cb",cirE:"\u29c3",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledR:"\xae",circledS:"\u24c8",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",conint:"\u222e",copf:"\ud835\udd54",coprod:"\u2210",cop:"\xa9",copy:"\xa9",copysr:"\u2117",crarr:"\u21b5",cross:"\u2717",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cup:"\u222a",cupbrcap:"\u2a48",cupcap:"\u2a46",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curre:"\xa4",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dArr:"\u21d3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",dcaron:"\u010f",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21ca",ddotseq:"\u2a77",de:"\xb0",deg:"\xb0",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",dfr:"\ud835\udd21",dharl:"\u21c3",dharr:"\u21c2",diam:"\u22c4",diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divid:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",dopf:"\ud835\udd55",dot:"\u02d9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",dscr:"\ud835\udcb9",dscy:"\u0455",dsol:"\u29f6",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",dzcy:"\u045f",dzigrarr:"\u27ff",eDDot:"\u2a77",eDot:"\u2251",eacut:"\xe9",eacute:"\xe9",easter:"\u2a6e",ecaron:"\u011b",ecir:"\xea",ecirc:"\xea",ecolon:"\u2255",ecy:"\u044d",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\ud835\udd22",eg:"\u2a9a",egrav:"\xe8",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014b",ensp:"\u2002",eogon:"\u0119",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",equals:"=",equest:"\u225f",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erDot:"\u2253",erarr:"\u2971",escr:"\u212f",esdot:"\u2250",esim:"\u2242",eta:"\u03b7",et:"\xf0",eth:"\xf0",eum:"\xeb",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",ffr:"\ud835\udd23",filig:"\ufb01",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",fopf:"\ud835\udd57",forall:"\u2200",fork:"\u22d4",forkv:"\u2ad9",fpartint:"\u2a0d",frac1:"\xbc",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac3:"\xbe",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",gE:"\u2267",gEl:"\u2a8c",gacute:"\u01f5",gamma:"\u03b3",gammad:"\u03dd",gap:"\u2a86",gbreve:"\u011f",gcirc:"\u011d",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",ges:"\u2a7e",gescc:"\u2aa9",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",gfr:"\ud835\udd24",gg:"\u226b",ggg:"\u22d9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2a92",gla:"\u2aa5",glj:"\u2aa4",gnE:"\u2269",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",gopf:"\ud835\udd58",grave:"`",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",g:">",gt:">",gtcc:"\u2aa7",gtcir:"\u2a7a",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",hArr:"\u21d4",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",hardcy:"\u044a",harr:"\u2194",harrcir:"\u2948",harrw:"\u21ad",hbar:"\u210f",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",horbar:"\u2015",hscr:"\ud835\udcbd",hslash:"\u210f",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacut:"\xed",iacute:"\xed",ic:"\u2063",icir:"\xee",icirc:"\xee",icy:"\u0438",iecy:"\u0435",iexc:"\xa1",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",igrav:"\xec",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012b",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22b7",imped:"\u01b5",in:"\u2208",incare:"\u2105",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",int:"\u222b",intcal:"\u22ba",integers:"\u2124",intercal:"\u22ba",intlarhk:"\u2a17",intprod:"\u2a3c",iocy:"\u0451",iogon:"\u012f",iopf:"\ud835\udd5a",iota:"\u03b9",iprod:"\u2a3c",iques:"\xbf",iquest:"\xbf",iscr:"\ud835\udcbe",isin:"\u2208",isinE:"\u22f9",isindot:"\u22f5",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",ium:"\xef",iuml:"\xef",jcirc:"\u0135",jcy:"\u0439",jfr:"\ud835\udd27",jmath:"\u0237",jopf:"\ud835\udd5b",jscr:"\ud835\udcbf",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03ba",kappav:"\u03f0",kcedil:"\u0137",kcy:"\u043a",kfr:"\ud835\udd28",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045c",kopf:"\ud835\udd5c",kscr:"\ud835\udcc0",lAarr:"\u21da",lArr:"\u21d0",lAtail:"\u291b",lBarr:"\u290e",lE:"\u2266",lEg:"\u2a8b",lHar:"\u2962",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",lambda:"\u03bb",lang:"\u27e8",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",laqu:"\xab",laquo:"\xab",larr:"\u2190",larrb:"\u21e4",larrbfs:"\u291f",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",lat:"\u2aab",latail:"\u2919",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",lcaron:"\u013e",lcedil:"\u013c",lceil:"\u2308",lcub:"{",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21a2",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",leftthreetimes:"\u22cb",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",les:"\u2a7d",lescc:"\u2aa8",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297c",lfloor:"\u230a",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226a",llarr:"\u21c7",llcorner:"\u231e",llhard:"\u296b",lltri:"\u25fa",lmidot:"\u0140",lmoust:"\u23b0",lmoustache:"\u23b0",lnE:"\u2268",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",longleftrightarrow:"\u27f7",longmapsto:"\u27fc",longrightarrow:"\u27f6",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",lstrok:"\u0142",l:"<",lt:"<",ltcc:"\u2aa6",ltcir:"\u2a79",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltrPar:"\u2996",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",mDDot:"\u223a",mac:"\xaf",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",mcy:"\u043c",mdash:"\u2014",measuredangle:"\u2221",mfr:"\ud835\udd2a",mho:"\u2127",micr:"\xb5",micro:"\xb5",mid:"\u2223",midast:"*",midcir:"\u2af0",middo:"\xb7",middot:"\xb7",minus:"\u2212",minusb:"\u229f",minusd:"\u2238",minusdu:"\u2a2a",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",mstpos:"\u223e",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nGg:"\u22d9\u0338",nGt:"\u226b\u20d2",nGtv:"\u226b\u0338",nLeftarrow:"\u21cd",nLeftrightarrow:"\u21ce",nLl:"\u22d8\u0338",nLt:"\u226a\u20d2",nLtv:"\u226a\u0338",nRightarrow:"\u21cf",nVDash:"\u22af",nVdash:"\u22ae",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266e",natural:"\u266e",naturals:"\u2115",nbs:"\xa0",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",ncy:"\u043d",ndash:"\u2013",ne:"\u2260",neArr:"\u21d7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",ngsim:"\u2275",ngt:"\u226f",ngtr:"\u226f",nhArr:"\u21ce",nharr:"\u21ae",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",njcy:"\u045a",nlArr:"\u21cd",nlE:"\u2266\u0338",nlarr:"\u219a",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219a",nleftrightarrow:"\u21ae",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nlsim:"\u2274",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nmid:"\u2224",nopf:"\ud835\udd5f",no:"\xac",not:"\xac",notin:"\u2209",notinE:"\u22f9\u0338",notindot:"\u22f5\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",npre:"\u2aaf\u0338",nprec:"\u2280",npreceq:"\u2aaf\u0338",nrArr:"\u21cf",nrarr:"\u219b",nrarrc:"\u2933\u0338",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",ntild:"\xf1",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22ad",nvHarr:"\u2904",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwArr:"\u21d6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24c8",oacut:"\xf3",oacute:"\xf3",oast:"\u229b",ocir:"\xf4",ocirc:"\xf4",ocy:"\u043e",odash:"\u229d",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",oelig:"\u0153",ofcir:"\u29bf",ofr:"\ud835\udd2c",ogon:"\u02db",ograv:"\xf2",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",omacr:"\u014d",omega:"\u03c9",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",oopf:"\ud835\udd60",opar:"\u29b7",operp:"\u29b9",oplus:"\u2295",or:"\u2228",orarr:"\u21bb",ord:"\xba",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oscr:"\u2134",oslas:"\xf8",oslash:"\xf8",osol:"\u2298",otild:"\xf5",otilde:"\xf5",otimes:"\u2297",otimesas:"\u2a36",oum:"\xf6",ouml:"\xf6",ovbar:"\u233d",par:"\xb6",para:"\xb6",parallel:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",pfr:"\ud835\udd2d",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plus:"+",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",plusm:"\xb1",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",pointint:"\u2a15",popf:"\ud835\udd61",poun:"\xa3",pound:"\xa3",pr:"\u227a",prE:"\u2ab3",prap:"\u2ab7",prcue:"\u227c",pre:"\u2aaf",prec:"\u227a",precapprox:"\u2ab7",preccurlyeq:"\u227c",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",precsim:"\u227e",prime:"\u2032",primes:"\u2119",prnE:"\u2ab5",prnap:"\u2ab9",prnsim:"\u22e8",prod:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",pscr:"\ud835\udcc5",psi:"\u03c8",puncsp:"\u2008",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",qprime:"\u2057",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quo:'"',quot:'"',rAarr:"\u21db",rArr:"\u21d2",rAtail:"\u291c",rBarr:"\u290f",rHar:"\u2964",race:"\u223d\u0331",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raqu:"\xbb",raquo:"\xbb",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",rect:"\u25ad",re:"\xae",reg:"\xae",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",rho:"\u03c1",rhov:"\u03f1",rightarrow:"\u2192",rightarrowtail:"\u21a3",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",rightthreetimes:"\u22cc",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoust:"\u23b1",rmoustache:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",roplus:"\u2a2e",rotimes:"\u2a35",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",rsaquo:"\u203a",rscr:"\ud835\udcc7",rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",ruluhar:"\u2968",rx:"\u211e",sacute:"\u015b",sbquo:"\u201a",sc:"\u227b",scE:"\u2ab4",scap:"\u2ab8",scaron:"\u0161",sccue:"\u227d",sce:"\u2ab0",scedil:"\u015f",scirc:"\u015d",scnE:"\u2ab6",scnap:"\u2aba",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",scy:"\u0441",sdot:"\u22c5",sdotb:"\u22a1",sdote:"\u2a66",seArr:"\u21d8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sec:"\xa7",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",sh:"\xad",shy:"\xad",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",softcy:"\u044c",sol:"/",solb:"\u29c4",solbar:"\u233f",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25a1",square:"\u25a1",squarf:"\u25aa",squf:"\u25aa",srarr:"\u2192",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",subE:"\u2ac5",subdot:"\u2abd",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2ac5",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succ:"\u227b",succapprox:"\u2ab8",succcurlyeq:"\u227d",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",sum:"\u2211",sung:"\u266a",sup:"\u2283",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",supE:"\u2ac6",supdot:"\u2abe",supdsub:"\u2ad8",supe:"\u2287",supedot:"\u2ac4",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swArr:"\u21d9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292a",szli:"\xdf",szlig:"\xdf",target:"\u2316",tau:"\u03c4",tbrk:"\u23b4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",thor:"\xfe",thorn:"\xfe",tilde:"\u02dc",time:"\xd7",times:"\xd7",timesb:"\u22a0",timesbar:"\u2a31",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",top:"\u22a4",topbot:"\u2336",topcir:"\u2af1",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",tscr:"\ud835\udcc9",tscy:"\u0446",tshcy:"\u045b",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",uArr:"\u21d1",uHar:"\u2963",uacut:"\xfa",uacute:"\xfa",uarr:"\u2191",ubrcy:"\u045e",ubreve:"\u016d",ucir:"\xfb",ucirc:"\xfb",ucy:"\u0443",udarr:"\u21c5",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",ufr:"\ud835\udd32",ugrav:"\xf9",ugrave:"\xf9",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",umacr:"\u016b",um:"\xa8",uml:"\xa8",uogon:"\u0173",uopf:"\ud835\udd66",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",upsi:"\u03c5",upsih:"\u03d2",upsilon:"\u03c5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",uring:"\u016f",urtri:"\u25f9",uscr:"\ud835\udcca",utdot:"\u22f0",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",uum:"\xfc",uuml:"\xfc",uwangle:"\u29a7",vArr:"\u21d5",vBar:"\u2ae8",vBarv:"\u2ae9",vDash:"\u22a8",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vcy:"\u0432",vdash:"\u22a2",vee:"\u2228",veebar:"\u22bb",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",vert:"|",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",vzigzag:"\u299a",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\ud835\udd34",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",xfr:"\ud835\udd35",xhArr:"\u27fa",xharr:"\u27f7",xi:"\u03be",xlArr:"\u27f8",xlarr:"\u27f5",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrArr:"\u27f9",xrarr:"\u27f6",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",yacut:"\xfd",yacute:"\xfd",yacy:"\u044f",ycirc:"\u0177",ycy:"\u044b",ye:"\xa5",yen:"\xa5",yfr:"\ud835\udd36",yicy:"\u0457",yopf:"\ud835\udd6a",yscr:"\ud835\udcce",yucy:"\u044e",yum:"\xff",yuml:"\xff",zacute:"\u017a",zcaron:"\u017e",zcy:"\u0437",zdot:"\u017c",zeetrf:"\u2128",zeta:"\u03b6",zfr:"\ud835\udd37",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},wt=function(e){return!!Ft.call(At,e)&&At[e]},Ft={}.hasOwnProperty;var kt=function(e,t){var r,n,u={};t||(t={});for(n in It)r=t[n],u[n]=null==r?It[n]:r;(u.position.indent||u.position.start)&&(u.indent=u.position.indent||[],u.position=u.position.start);return function(e,t){var r,n,u,i,o,a,c,s,l,f,D,p,h,d,g,m,E,y,v,b=t.additional,C=t.nonTerminated,A=t.text,w=t.reference,F=t.warning,k=t.textContext,O=t.referenceContext,T=t.warningContext,S=t.position,I=t.indent||[],R=e.length,x=0,B=-1,N=S.column||1,L=S.line||1,P="",q=[];"string"==typeof b&&(b=b.charCodeAt(0));m=j(),s=F?_:St,x--,R++;for(;++x65535&&(f+=Tt((a-=65536)>>>10|55296),a=56320|1023&a),a=f+Tt(a))):"named"!==d&&s(4,y)),a?(U(),m=j(),x=v-1,N+=v-h+1,q.push(a),(E=j()).offset++,w&&w.call(O,a,{start:m,end:E},e.slice(h-1,v)),m=E):(i=e.slice(h-1,v),P+=i,N+=i.length,x=v-1)}else 10===o&&(L++,B++,N=0),o==o?(P+=Tt(o),N++):U();return q.join("");function j(){return{line:L,column:N,offset:x+(S.offset||0)}}function _(e,t){var r=j();r.column+=t,r.offset+=t,F.call(T,Lt[e],r,e)}function U(){P&&(q.push(P),A&&A.call(k,P,{start:m,end:j()}),P="")}}(e,u)},Ot={}.hasOwnProperty,Tt=String.fromCharCode,St=Function.prototype,It={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},Rt="hexadecimal",xt="decimal",Bt={hexadecimal:16,decimal:10},Nt={};Nt.named=Ct,Nt[xt]=yt,Nt[Rt]=vt;var Lt={};function Pt(e){return e>=55296&&e<=57343||e>1114111}function qt(e){return e>=1&&e<=8||11===e||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||65535==(65535&e)||65534==(65535&e)}Lt[1]="Named character references must be terminated by a semicolon",Lt[2]="Numeric character references must be terminated by a semicolon",Lt[3]="Named character references cannot be empty",Lt[4]="Numeric character references cannot be empty",Lt[5]="Named character references must be known",Lt[6]="Numeric character references cannot be disallowed",Lt[7]="Numeric character references cannot be outside the permissible Unicode range";var jt=function(t){return n.raw=u,n;function r(e){for(var r=t.offset,n=e.line,u=[];++n&&n in r;)u.push((r[n]||0)+1);return{start:e,indent:u}}function n(e,n,u){kt(e,{position:r(n),warning:i,text:u,reference:u,textContext:t,referenceContext:t})}function u(t,n,u){return kt(t,e(u,{position:r(n),warning:i}))}function i(e,r,n){3!==n&&t.file.message(e,r)}};var _t=function(e){return function(t,r){var n,u,i,o,a,c=this,s=c.offset,l=[],f=c[e+"Methods"],D=c[e+"Tokenizers"],p=r.line,h=r.column;if(!t)return l;C.now=m,C.file=c.file,d("");for(;t;){for(n=-1,u=f.length,o=!1;++n"],Vt=Gt.concat(["~","|"]),Yt=Vt.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);function Ht(e){var t=e||{};return t.commonmark?Yt:t.gfm?Vt:Gt}Ht.default=Gt,Ht.gfm=Vt,Ht.commonmark=Yt;var Xt={position:!0,gfm:!0,commonmark:!1,pedantic:!1,blocks:["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","pre","section","source","title","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},Wt=function(t){var r,n,u=this,i=u.options;if(null==t)t={};else{if("object"!=typeof t)throw new Error("Invalid value `"+t+"` for setting `options`");t=e(t)}for(r in Xt){if(null==(n=t[r])&&(n=i[r]),"blocks"!==r&&"boolean"!=typeof n||"blocks"===r&&"object"!=typeof n)throw new Error("Invalid value `"+n+"` for setting `options."+r+"`");t[r]=n}return u.options=t,u.escape=zt(t),u};var Zt=Jt;function Jt(e){if(null==e)return Kt;if("string"==typeof e)return function(e){return t;function t(t){return Boolean(t&&t.type===e)}}(e);if("object"==typeof e)return"length"in e?function(e){var t=[],r=-1;for(;++r":""))+")");return f;function f(){var s,l,f=c.concat(o),D=[];if((!t||i(o,a,c[c.length-1]||null))&&false===(D=function(e){if(null!==e&&"object"==typeof e&&"length"in e)return e;if("number"==typeof e)return[true,e];return[e]}(r(o,c)))[0])return D;if(o.children&&"skip"!==D[0])for(l=(n?o.children.length:-1)+u;l>-1&&l + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */;var hr,dr="",gr=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var r=e.length*t;if(hr!==e||void 0===hr)hr=e,dr="";else if(dr.length>=r)return dr.substr(0,r);for(;r>dr.length&&t>1;)1&t&&(dr+=e),t>>=1,e+=e;return dr=(dr+=e).substr(0,r)};var mr=function(e){return String(e).replace(/\n+$/,"")};var Er=function(e,t,r){var n,u,i,o=-1,a=t.length,c="",s="",l="",f="";for(;++o=4)){for(s="";y"!==t.charAt(C))return;if(r)return!0;C=0;for(;C"===t.charAt(C)?(C++,l=!0," "===t.charAt(C)&&C++):C=s,a=t.slice(C,o),!l&&!br(a)){C=s;break}if(!l&&(i=t.slice(C),Cr(d,h,D,[e,i,!0])))break;c=s===C?a:t.slice(s,o),b.push(C-s),y.push(c),v.push(a),C=o+1}C=-1,E=b.length,n=e(y.join("\n"));for(;++C6)return;if(!i||!o&&"#"===t.charAt(c+1))return;a=t.length+1,u="";for(;++c=3&&(!n||"\n"===n)?(s+=o,!!r||e(s)({type:"thematicBreak"})):void 0;o+=n}};var kr=function(e){var t,r=0,n=0,u=e.charAt(r),i={},o=0;for(;"\t"===u||" "===u;){for(n+=t="\t"===u?4:1,t>1&&(n=Math.floor(n/t)*t);o0&&n.indent=y.indent&&(F=!0),o=t.charAt(R),f=null,!F){if("*"===o||"+"===o||"-"===o)f=o,R++,n++;else{for(u="";R=y.indent||n>4):F=!0,l=!1,R=s;if(p=t.slice(s,c),D=s===R?p:t.slice(R,c),("*"===f||"_"===f||"-"===f)&&S.thematicBreak.call(k,e,p,!0))break;if(h=d,d=!l&&!br(D).length,F&&y)y.value=y.value.concat(E,p),m=m.concat(E,p),E=[];else if(l)0!==E.length&&(N=!0,y.value.push(""),y.trail=E.concat()),y={value:[p],indent:n,trail:[]},g.push(y),m=m.concat(E,p),E=[];else if(d){if(h&&!O)break;E.push(p)}else{if(h)break;if(Cr(I,S,k,[e,p,!0]))break;y.value=y.value.concat(E,p),m=m.concat(E,p),E=[]}R=c+1}C=e(m.join("\n")).reset({type:"list",ordered:i,start:B,spread:N,children:[]}),v=k.enterList(),b=k.enterBlock(),R=-1,x=g.length;for(;++R=3){l--;break}f+=i}n="",u="";for(;++l`\\u0000-\\u0020]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",_r="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Ur={openCloseTag:new RegExp("^(?:"+jr+"|"+_r+")"),tag:new RegExp("^(?:"+jr+"|"+_r+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|]*>|)")},$r=function(e,t,r){var n,u,i,o,a,c,s,l=this.options.blocks.join("|"),f=new RegExp("^|$))","i"),D=t.length,p=0,h=[[Mr,zr,!0],[Gr,Vr,!0],[Yr,Hr,!0],[Xr,Wr,!0],[Zr,Jr,!0],[f,Kr,!0],[Qr,Kr,!1]];for(;p|$))/i,zr=/<\/(script|pre|style)>/i,Gr=/^/,Yr=/^<\?/,Hr=/\?>/,Xr=/^/,Zr=/^/,Kr=/^$/,Qr=new RegExp(Ur.openCloseTag.source+"\\s*$");var en=function(e){return rn.test("number"==typeof e?tn(e):e.charAt(0))},tn=String.fromCharCode,rn=/\s/;var nn=function(e){return String(e).replace(/\s+/g," ")};var un=function(e){return nn(e).toLowerCase()};var on=function(e,t,r){var n,u,i,o,a,c,s,l,f=this,D=f.options.commonmark,p=0,h=t.length,d="";for(;p"!==e&&"["!==e&&"]"!==e}function cn(e){return"["!==e&&"]"!==e&&!en(e)}an.delimiter=">";var sn=function(e,t,r){var n,u,i,o,a,c,s,l,f,D,p,h,d,g,m,E,y,v,b,C,A,w;if(!this.options.gfm)return;n=0,E=0,c=t.length+1,s=[];for(;nC){if(E<2)return;break}s.push(t.slice(n,C)),E++,n=C+1}o=s.join("\n"),u=s.splice(1,1)[0]||[],n=0,c=u.length,E--,i=!1,p=[];for(;n1&&(f?(o+=l.slice(0,-1),l=l.charAt(l.length-1)):(o+=l,l="")),g=e.now(),e(o)({type:"tableCell",children:this.tokenizeInline(h,g)},a)),e(l+f),l="",h=""):(l&&(h+=l,l=""),h+=f,"\\"===f&&n!==c-2&&(h+=y.charAt(n+1),n++)),d=!1,n++):(h?l+=f:e(f),n++);m||e("\n"+u)}return b};var ln=function(e,t,r){var n,u,i,o,a,c=this,s=c.options.commonmark,l=c.blockTokenizers,f=c.interruptParagraph,D=t.indexOf("\n"),p=t.length;for(;D=4&&"\n"!==i){D=t.indexOf("\n",D+1);continue}}if(u=t.slice(D+1),Cr(f,l,c,[e,u,!0]))break;if(n=D,-1!==(D=t.indexOf("\n",D+1))&&""===br(t.slice(n,D))){D=n;break}}if(u=t.slice(0,D),r)return!0;return a=e.now(),u=mr(u),e(u)({type:"paragraph",children:c.tokenizeInline(u,a)})};var fn=function(e,t){return e.indexOf("\\",t)};var Dn=pn;pn.locator=fn;function pn(e,t,r){var n,u;if("\\"===t.charAt(0)&&(n=t.charAt(1),-1!==this.escape.indexOf(n)))return!!r||(u="\n"===n?{type:"break"}:{type:"text",value:n},e("\\"+n)(u))}var hn=function(e,t){return e.indexOf("<",t)};var dn=mn;mn.locator=hn,mn.notInLink=!0;var gn="mailto:".length;function mn(e,t,r){var n,u,i,o,a,c=this,s="",l=t.length,f=0,D="",p=!1,h="";if("<"===t.charAt(0)){for(f++,s="<";f"===n||"@"===n||":"===n&&"/"===t.charAt(f+1)));)D+=n,f++;if(D){if(h+=D,D="",h+=n=t.charAt(f),f++,"@"===n)p=!0;else{if(":"!==n||"/"!==t.charAt(f+1))return;h+="/",f++}for(;f"!==n);)D+=n,f++;if(n=t.charAt(f),D&&">"===n)return!!r||(i=h+=D,s+=h+n,(u=e.now()).column++,u.offset++,p&&("mailto:"===h.slice(0,gn).toLowerCase()?(i=i.slice(gn),u.column+=gn,u.offset+=gn):h="mailto:"+h),o=c.inlineTokenizers,c.inlineTokenizers={text:o.text},a=c.enterLink(),i=c.tokenizeInline(i,u),c.inlineTokenizers=o,a(),e(s)({type:"link",title:null,url:kt(h,{nonTerminated:!1}),children:i}))}}}var En=function(e,t){var r,n=String(e),u=0;if("string"!=typeof t)throw new Error("Expected character");r=n.indexOf(t);for(;-1!==r;)u++,r=n.indexOf(t,r+t.length);return u};var yn=function(e,t){var r,n,u,i=-1;if(!this.options.gfm)return i;n=vn.length,r=-1;for(;++rf;)o=a+c.lastIndexOf(")"),c=t.slice(a,o),D--;if(59===t.charCodeAt(o-1)&&(o--,bt(t.charCodeAt(o-1)))){for(l=o-2;bt(t.charCodeAt(l));)l--;38===t.charCodeAt(l)&&(o=l)}return p=t.slice(0,o),d=kt(p,{nonTerminated:!1}),C&&(d="http://"+d),g=m.enterLink(),m.inlineTokenizers={text:y.text},h=m.tokenizeInline(p,e.now()),m.inlineTokenizers=y,g(),e(p)({type:"link",title:null,url:d,children:h})}}}var An=function e(t,r){var n,u;if(!this.options.gfm)return-1;if(-1===(n=t.indexOf("@",r)))return-1;if((u=n)===r||!wn(t.charCodeAt(u-1)))return e.call(this,t,n+1);for(;u>r&&wn(t.charCodeAt(u-1));)u--;return u};function wn(e){return yt(e)||bt(e)||43===e||45===e||46===e||95===e}var Fn=kn;kn.locator=An,kn.notInLink=!0;function kn(e,t,r){var n,u,i,o,a=this,c=a.options.gfm,s=a.inlineTokenizers,l=0,f=t.length,D=-1;if(c){for(n=t.charCodeAt(l);yt(n)||bt(n)||43===n||45===n||46===n||95===n;)n=t.charCodeAt(++l);if(0!==l&&64===n){for(l++;l/i;function Rn(e,t,r){var n,u,i=this,o=t.length;if(!("<"!==t.charAt(0)||o<3)&&(n=t.charAt(1),(bt(n)||"?"===n||"!"===n||"/"===n)&&(u=t.match(On))))return!!r||(u=u[0],!i.inLink&&Sn.test(u)?i.inLink=!0:i.inLink&&In.test(u)&&(i.inLink=!1),e(u)({type:"html",value:u}))}var xn=function(e,t){var r=e.indexOf("[",t),n=e.indexOf("![",t);if(-1===n)return r;return r=i&&(i=0):i=u}else if("\\"===w)A++,c+=t.charAt(A);else if(i&&!O||"["!==w){if((!i||O)&&"]"===w){if(!d){if("("!==t.charAt(A+1))return;c+="(",n=!0,A++;break}d--}}else d++;g+=c,c="",A++}if(n){for(f=g,C+=g+c,A++;A"!==(w=t.charAt(A));){if(k&&"\n"===w)return;g+=w,A++}if(">"!==t.charAt(A))return;C+="<"+g+">",m=g,A++}else{for(w=null,c="";A2&&(32===o||10===o)&&(32===a||10===a)){for(l++,s--;lt&&" "===e.charAt(r-1);)r--;return r};var Qn=eu;eu.locator=Kn;function eu(e,t,r){for(var n,u=t.length,i=-1,o="";++i + * @license MIT + */;var su=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},lu=Object.prototype.hasOwnProperty,fu=Object.prototype.toString,Du=Object.defineProperty,pu=Object.getOwnPropertyDescriptor,hu=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===fu.call(e)},du=function(e){if(!e||"[object Object]"!==fu.call(e))return!1;var t,r=lu.call(e,"constructor"),n=e.constructor&&e.constructor.prototype&&lu.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!r&&!n)return!1;for(t in e);return void 0===t||lu.call(e,t)},gu=function(e,t){Du&&"__proto__"===t.name?Du(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},mu=function(e,t){if("__proto__"===t){if(!lu.call(e,t))return;if(pu)return pu(e,t).value}return e[t]},Eu=function e(){var t,r,n,u,i,o,a=arguments[0],c=1,s=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[1]||{},c=2),(null==a||"object"!=typeof a&&"function"!=typeof a)&&(a={});c{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype},vu=[].slice,bu=function(e,t){var r;return function(){var t,i=vu.call(arguments,0),o=e.length>i.length;o&&i.push(n);try{t=e.apply(null,i)}catch(e){if(o&&r)throw e;return n(e)}o||(t&&"function"==typeof t.then?t.then(u,n):t instanceof Error?n(t):u(t))};function n(){r||(r=!0,t.apply(null,arguments))}function u(e){n(null,e)}};var Cu=wu;wu.wrap=bu;var Au=[].slice;function wu(){var e=[],t={run:function(){var t=-1,r=Au.call(arguments,0,-1),n=arguments[arguments.length-1];if("function"!=typeof n)throw new Error("Expected function as last argument, not "+n);function u(i){var o=e[++t],a=Au.call(arguments,0),c=a.slice(1),s=r.length,l=-1;if(i)n(i);else{for(;++l=0;n--){var u=e[n];"."===u?e.splice(n,1):".."===u?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}xu.file="",xu.name="",xu.reason="",xu.message="",xu.stack="",xu.fatal=null,xu.column=null,xu.line=null;var Lu=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Pu=function(e){return Lu.exec(e).slice(1)};function qu(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(e=n+"/"+e,t="/"===n.charAt(0))}return(t?"/":"")+(e=Nu(Yu(e.split("/"),(function(e){return!!e})),!t).join("/"))||"."}function ju(e){var t=_u(e),r="/"===Hu(e,-1);return(e=Nu(Yu(e.split("/"),(function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function _u(e){return"/"===e.charAt(0)}function Uu(){var e=Array.prototype.slice.call(arguments,0);return ju(Yu(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))}function $u(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=qu(e).substr(1),t=qu(t).substr(1);for(var n=r(e.split("/")),u=r(t.split("/")),i=Math.min(n.length,u.length),o=i,a=0;a-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+Xu.sep+"`")}function ti(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function ri(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}Qu.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(Qu.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){ti(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(Qu.prototype,"dirname",{get:function(){return"string"==typeof this.path?Xu.dirname(this.path):void 0},set:function(e){ri(this.path,"dirname"),this.path=Xu.join(e||"",this.basename)}}),Object.defineProperty(Qu.prototype,"basename",{get:function(){return"string"==typeof this.path?Xu.basename(this.path):void 0},set:function(e){ti(e,"basename"),ei(e,"basename"),this.path=Xu.join(this.dirname||"",e)}}),Object.defineProperty(Qu.prototype,"extname",{get:function(){return"string"==typeof this.path?Xu.extname(this.path):void 0},set:function(e){if(ei(e,"extname"),ri(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=Xu.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(Qu.prototype,"stem",{get:function(){return"string"==typeof this.path?Xu.basename(this.path,this.extname):void 0},set:function(e){ti(e,"stem"),ei(e,"stem"),this.path=Xu.join(this.dirname||"",e+(this.extname||""))}});var ni=Zu;Zu.prototype.message=function(e,t,r){var n=new Iu(e,t,r);this.path&&(n.name=this.path+":"+n.name,n.file=this.path);return n.fatal=!1,this.messages.push(n),n},Zu.prototype.info=function(){var e=this.message.apply(this,arguments);return e.fatal=null,e},Zu.prototype.fail=function(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e};var ui=ni,ii=function e(){var t,r=[],n=Cu(),u={},i=-1;return o.data=function(e,r){if("string"==typeof e)return 2===arguments.length?(Di("data",t),u[e]=r,o):ai.call(u,e)&&u[e]||null;if(e)return Di("data",t),u=e,o;return u},o.freeze=a,o.attachers=r,o.use=function(e){var n;if(Di("use",t),null==e);else if("function"==typeof e)l.apply(null,arguments);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?s(e):i(e)}n&&(u.settings=Eu(u.settings||{},n));return o;function i(e){s(e.plugins),e.settings&&(n=Eu(n||{},e.settings))}function a(e){if("function"==typeof e)l(e);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?l.apply(null,e):i(e)}}function s(e){var t=-1;if(null==e);else{if("object"!=typeof e||!("length"in e))throw new Error("Expected a list of plugins, not `"+e+"`");for(;++t57)&&(!D||36===a)){s=h-1,h++,D&&h++,l=h;break}}else 92===o&&(h++,a=r.charCodeAt(h+1));h++}if(void 0!==l)return!!n||(f=r.slice(c,s+1),e(r.slice(0,l))({type:"inlineMath",value:f,data:{hName:"span",hProperties:{className:mi.concat(D&&t.inlineMathDouble?["math-display"]:[])},hChildren:[{type:"text",value:f}]}}))}}}i.locator=u,r.inlineTokenizers.math=i,n.splice(n.indexOf("text"),0,"math")}(t,e);di.isRemarkCompiler(r)&&function(e){function t(e){let t="$";return(e.data&&e.data.hProperties&&e.data.hProperties.className||[]).includes("math-display")&&(t="$$"),t+e.value+t}e.prototype.visitors.inlineMath=t}(r)};const mi=["math","math-inline"];var Ei=function(){const e=this.Parser,t=this.Compiler;di.isRemarkParser(e)&&function(e){const t=e.prototype,r=t.blockMethods,n=t.interruptParagraph,u=t.interruptList,i=t.interruptBlockquote;function o(e,t,r){var n=t.length,u=0;let i,o,a,c,s,l,f,D,p,h,d;for(;uh&&32===t.charCodeAt(c-1);)c--;for(;c>h&&36===t.charCodeAt(c-1);)p++,c--;for(l<=p&&t.indexOf("$",h)===c&&(D=!0,d=c);h<=d&&h-uh&&32===t.charCodeAt(d-1);)d--;if(D&&h===d||o.push(t.slice(h,d)),D)break;u=a+1,a=t.indexOf("\n",u+1),a=-1===a?n:a}return o=o.join("\n"),e(t.slice(0,a))({type:"math",value:o,data:{hName:"div",hProperties:{className:yi.concat()},hChildren:[{type:"text",value:o}]}})}}}t.blockTokenizers.math=o,r.splice(r.indexOf("fencedCode")+1,0,"math"),n.splice(n.indexOf("fencedCode")+1,0,["math"]),u.splice(u.indexOf("fencedCode")+1,0,["math"]),i.splice(i.indexOf("fencedCode")+1,0,["math"])}(e);di.isRemarkCompiler(t)&&function(e){function t(e){return"$$\n"+e.value+"\n$$"}e.prototype.visitors.math=t}(t)};const yi=["math","math-display"];var vi=function(e){var t=e||{};Ei.call(this,t),gi.call(this,t)};var bi=function(e){var t=this.Parser,r=this.Compiler;(function(e){return Boolean(e&&e.prototype&&e.prototype.blockTokenizers)})(t)&&function(e,t){var r,n=t||{},u=e.prototype,i=u.blockTokenizers,o=u.inlineTokenizers,a=u.blockMethods,c=u.inlineMethods,s=i.definition,l=o.reference,f=[],D=-1,p=a.length;for(;++D4&&(p=void 0,h=b);else{if(p<4&&g&&(g.contentStart===g.contentEnd||Ai(E,i,m,[e,t.slice(b,1024),!0])))break;p=void 0,h=b}b++}for(b=-1,v=d.length;v>0&&(g=d[v-1]).contentStart===g.contentEnd;)v--;for(s=e(t.slice(0,g.contentEnd));++b-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");var Fi=function(e){const t=e.match(wi);if(!t)return{content:e};const{startDelimiter:r,language:n,value:u="",endDelimiter:i}=t.groups;let o=n.trim()||"yaml";if("+++"===r&&(o="toml"),"yaml"!==o&&r!==i)return{content:e};const[a]=t;return{frontMatter:{type:"front-matter",lang:o,value:u,startDelimiter:r,endDelimiter:i,raw:a.replace(/\n$/,"")},content:a.replace(/[^\n]/g," ")+e.slice(a.length)}};const ki=["format","prettier"];function Oi(e){const t=`@(${ki.join("|")})`,r=new RegExp([`\x3c!--\\s*${t}\\s*--\x3e`,`\x3c!--.*\r?\n[\\s\\S]*(^|\n)[^\\S\n]*${t}[^\\S\n]*($|\n)[\\s\\S]*\n.*--\x3e`].join("|"),"m"),n=e.match(r);return n&&0===n.index}var Ti={startWithPragma:Oi,hasPragma:e=>Oi(Fi(e).content.trimStart()),insertPragma:e=>{const t=Fi(e),r=`\x3c!-- @${ki[0]} --\x3e`;return t.frontMatter?`${t.frontMatter.raw}\n\n${r}\n\n${t.content}`:`${r}\n\n${t.content}`}};var Si={locStart:function(e){return e.position.start.offset},locEnd:function(e){return e.position.end.offset}},Ii=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const Ri=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var xi=Ri,Bi=Ri;xi.default=Bi;const Ni=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=Ii(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let t=0;for(let r=0;r=127&&n<=159||(n>=768&&n<=879||(n>65535&&r++,t+=xi(n)?2:1))}return t};var Li=Ni,Pi=Ni;Li.default=Pi;var qi=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var ji=e=>e[e.length-1];function _i(e,t){if(null==e)return{};var r,n,u=function(e,t){if(null==e)return{};var r,n,u={},i=Object.keys(e);for(n=0;n=0||(u[r]=e[r]);return u}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(u[r]=e[r])}return u}var Ui=function(e){return e&&e.Math==Math&&e},$i=Ui("object"==typeof globalThis&&globalThis)||Ui("object"==typeof window&&window)||Ui("object"==typeof self&&self)||Ui("object"==typeof r&&r)||function(){return this}()||Function("return this")(),Mi=function(e){try{return!!e()}catch(e){return!0}},zi=!Mi((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),Gi={}.propertyIsEnumerable,Vi=Object.getOwnPropertyDescriptor,Yi={f:Vi&&!Gi.call({1:2},1)?function(e){var t=Vi(this,e);return!!t&&t.enumerable}:Gi},Hi=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},Xi={}.toString,Wi=function(e){return Xi.call(e).slice(8,-1)},Zi="".split,Ji=Mi((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==Wi(e)?Zi.call(e,""):Object(e)}:Object,Ki=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Qi=function(e){return Ji(Ki(e))},eo=function(e){return"object"==typeof e?null!==e:"function"==typeof e},to=function(e,t){if(!eo(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!eo(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!eo(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!eo(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")},ro=function(e){return Object(Ki(e))},no={}.hasOwnProperty,uo=Object.hasOwn||function(e,t){return no.call(ro(e),t)},io=$i.document,oo=eo(io)&&eo(io.createElement),ao=!zi&&!Mi((function(){return 7!=Object.defineProperty(function(e){return oo?io.createElement(e):{}}("div"),"a",{get:function(){return 7}}).a})),co=Object.getOwnPropertyDescriptor,so={f:zi?co:function(e,t){if(e=Qi(e),t=to(t,!0),ao)try{return co(e,t)}catch(e){}if(uo(e,t))return Hi(!Yi.f.call(e,t),e[t])}},lo=function(e){if(!eo(e))throw TypeError(String(e)+" is not an object");return e},fo=Object.defineProperty,Do={f:zi?fo:function(e,t,r){if(lo(e),t=to(t,!0),lo(r),ao)try{return fo(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},po=zi?function(e,t,r){return Do.f(e,t,Hi(1,r))}:function(e,t,r){return e[t]=r,e},ho=function(e,t){try{po($i,e,t)}catch(r){$i[e]=t}return t},go=$i["__core-js_shared__"]||ho("__core-js_shared__",{}),mo=Function.toString;"function"!=typeof go.inspectSource&&(go.inspectSource=function(e){return mo.call(e)});var Eo,yo,vo,bo,Co=go.inspectSource,Ao=$i.WeakMap,wo="function"==typeof Ao&&/native code/.test(Co(Ao)),Fo=u((function(e){(e.exports=function(e,t){return go[e]||(go[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),ko=0,Oo=Math.random(),To=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++ko+Oo).toString(36)},So=Fo("keys"),Io={},Ro=$i.WeakMap;if(wo||go.state){var xo=go.state||(go.state=new Ro),Bo=xo.get,No=xo.has,Lo=xo.set;Eo=function(e,t){if(No.call(xo,e))throw new TypeError("Object already initialized");return t.facade=e,Lo.call(xo,e,t),t},yo=function(e){return Bo.call(xo,e)||{}},vo=function(e){return No.call(xo,e)}}else{var Po=So[bo="state"]||(So[bo]=To(bo));Io[Po]=!0,Eo=function(e,t){if(uo(e,Po))throw new TypeError("Object already initialized");return t.facade=e,po(e,Po,t),t},yo=function(e){return uo(e,Po)?e[Po]:{}},vo=function(e){return uo(e,Po)}}var qo,jo,_o={set:Eo,get:yo,has:vo,enforce:function(e){return vo(e)?yo(e):Eo(e,{})},getterFor:function(e){return function(t){var r;if(!eo(t)||(r=yo(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}},Uo=u((function(e){var t=_o.get,r=_o.enforce,n=String(String).split("String");(e.exports=function(e,t,u,i){var o,a=!!i&&!!i.unsafe,c=!!i&&!!i.enumerable,s=!!i&&!!i.noTargetGet;"function"==typeof u&&("string"!=typeof t||uo(u,"name")||po(u,"name",t),(o=r(u)).source||(o.source=n.join("string"==typeof t?t:""))),e!==$i?(a?!s&&e[t]&&(c=!0):delete e[t],c?e[t]=u:po(e,t,u)):c?e[t]=u:ho(t,u)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||Co(this)}))})),$o=$i,Mo=function(e){return"function"==typeof e?e:void 0},zo=function(e,t){return arguments.length<2?Mo($o[e])||Mo($i[e]):$o[e]&&$o[e][t]||$i[e]&&$i[e][t]},Go=Math.ceil,Vo=Math.floor,Yo=function(e){return isNaN(e=+e)?0:(e>0?Vo:Go)(e)},Ho=Math.min,Xo=function(e){return e>0?Ho(Yo(e),9007199254740991):0},Wo=Math.max,Zo=Math.min,Jo=function(e){return function(t,r,n){var u,i=Qi(t),o=Xo(i.length),a=function(e,t){var r=Yo(e);return r<0?Wo(r+t,0):Zo(r,t)}(n,o);if(e&&r!=r){for(;o>a;)if((u=i[a++])!=u)return!0}else for(;o>a;a++)if((e||a in i)&&i[a]===r)return e||a||0;return!e&&-1}},Ko={includes:Jo(!0),indexOf:Jo(!1)}.indexOf,Qo=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),ea={f:Object.getOwnPropertyNames||function(e){return function(e,t){var r,n=Qi(e),u=0,i=[];for(r in n)!uo(Io,r)&&uo(n,r)&&i.push(r);for(;t.length>u;)uo(n,r=t[u++])&&(~Ko(i,r)||i.push(r));return i}(e,Qo)}},ta={f:Object.getOwnPropertySymbols},ra=zo("Reflect","ownKeys")||function(e){var t=ea.f(lo(e)),r=ta.f;return r?t.concat(r(e)):t},na=function(e,t){for(var r=ra(t),n=Do.f,u=so.f,i=0;i0&&pa(c))s=ga(e,t,c,Xo(c.length),s,i-1)-1;else{if(s>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[s]=c}s++}l++}return s},ma=ga,Ea=zo("navigator","userAgent")||"",ya=$i.process,va=ya&&ya.versions,ba=va&&va.v8;ba?jo=(qo=ba.split("."))[0]<4?1:qo[0]+qo[1]:Ea&&(!(qo=Ea.match(/Edge\/(\d+)/))||qo[1]>=74)&&(qo=Ea.match(/Chrome\/(\d+)/))&&(jo=qo[1]);var Ca=jo&&+jo,Aa=!!Object.getOwnPropertySymbols&&!Mi((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Ca&&Ca<41})),wa=Aa&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Fa=Fo("wks"),ka=$i.Symbol,Oa=wa?ka:ka&&ka.withoutSetter||To,Ta=function(e){return uo(Fa,e)&&(Aa||"string"==typeof Fa[e])||(Aa&&uo(ka,e)?Fa[e]=ka[e]:Fa[e]=Oa("Symbol."+e)),Fa[e]},Sa=Ta("species"),Ia=function(e,t){var r;return pa(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!pa(r.prototype)?eo(r)&&null===(r=r[Sa])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)};Da({target:"Array",proto:!0},{flatMap:function(e){var t,r=ro(this),n=Xo(r.length);return ha(e),(t=Ia(r,0)).length=ma(t,r,r,n,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var Ra,xa,Ba=Math.floor,Na=function(e,t){var r=e.length,n=Ba(r/2);return r<8?La(e,t):Pa(Na(e.slice(0,n),t),Na(e.slice(n),t),t)},La=function(e,t){for(var r,n,u=e.length,i=1;i0;)e[n]=e[--n];n!==i++&&(e[n]=r)}return e},Pa=function(e,t,r){for(var n=e.length,u=t.length,i=0,o=0,a=[];i3)){if(Ua)return!0;if(Ma)return Ma<603;var e,t,r,n,u="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)za.push({k:t+n,v:r})}for(za.sort((function(e,t){return t.v-e.v})),n=0;nString(r)?1:-1}}(e))).length,n=0;ni;i++)if((a=g(e[i]))&&a instanceof ic)return a;return new ic(!1)}n=u.call(e)}for(c=n.next;!(s=c.call(n)).done;){try{a=g(s.value)}catch(e){throw uc(n),e}if("object"==typeof a&&a&&a instanceof ic)return a}return new ic(!1)};Da({target:"Object",stat:!0},{fromEntries:function(e){var t={};return oc(e,(function(e,r){!function(e,t,r){var n=to(t);n in e?Do.f(e,n,Hi(0,r)):e[n]=r}(t,e,r)}),{AS_ENTRIES:!0}),t}});var ac="object"==typeof ke&&ke.env&&ke.env.NODE_DEBUG&&/\bsemver\b/i.test(ke.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var cc={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},sc=u((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:r}=cc,n=(t=e.exports={}).re=[],u=t.src=[],i=t.t={};let o=0;const a=(e,t,r)=>{const a=o++;ac(a,t),i[e]=a,u[a]=t,n[a]=new RegExp(t,r?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","[0-9]+"),a("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),a("MAINVERSION",`(${u[i.NUMERICIDENTIFIER]})\\.(${u[i.NUMERICIDENTIFIER]})\\.(${u[i.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${u[i.NUMERICIDENTIFIERLOOSE]})\\.(${u[i.NUMERICIDENTIFIERLOOSE]})\\.(${u[i.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${u[i.NUMERICIDENTIFIER]}|${u[i.NONNUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${u[i.NUMERICIDENTIFIERLOOSE]}|${u[i.NONNUMERICIDENTIFIER]})`),a("PRERELEASE",`(?:-(${u[i.PRERELEASEIDENTIFIER]}(?:\\.${u[i.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${u[i.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[i.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER","[0-9A-Za-z-]+"),a("BUILD",`(?:\\+(${u[i.BUILDIDENTIFIER]}(?:\\.${u[i.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${u[i.MAINVERSION]}${u[i.PRERELEASE]}?${u[i.BUILD]}?`),a("FULL",`^${u[i.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${u[i.MAINVERSIONLOOSE]}${u[i.PRERELEASELOOSE]}?${u[i.BUILD]}?`),a("LOOSE",`^${u[i.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",`${u[i.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),a("XRANGEIDENTIFIER",`${u[i.NUMERICIDENTIFIER]}|x|X|\\*`),a("XRANGEPLAIN",`[v=\\s]*(${u[i.XRANGEIDENTIFIER]})(?:\\.(${u[i.XRANGEIDENTIFIER]})(?:\\.(${u[i.XRANGEIDENTIFIER]})(?:${u[i.PRERELEASE]})?${u[i.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${u[i.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[i.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[i.XRANGEIDENTIFIERLOOSE]})(?:${u[i.PRERELEASELOOSE]})?${u[i.BUILD]}?)?)?`),a("XRANGE",`^${u[i.GTLT]}\\s*${u[i.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${u[i.GTLT]}\\s*${u[i.XRANGEPLAINLOOSE]}$`),a("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),a("COERCERTL",u[i.COERCE],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${u[i.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",a("TILDE",`^${u[i.LONETILDE]}${u[i.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${u[i.LONETILDE]}${u[i.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${u[i.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",a("CARET",`^${u[i.LONECARET]}${u[i.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${u[i.LONECARET]}${u[i.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${u[i.GTLT]}\\s*(${u[i.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${u[i.GTLT]}\\s*(${u[i.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${u[i.GTLT]}\\s*(${u[i.LOOSEPLAIN]}|${u[i.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${u[i.XRANGEPLAIN]})\\s+-\\s+(${u[i.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${u[i.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[i.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0.0.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const lc=["includePrerelease","loose","rtl"];var fc=e=>e?"object"!=typeof e?{loose:!0}:lc.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const Dc=/^[0-9]+$/,pc=(e,t)=>{const r=Dc.test(e),n=Dc.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:epc(t,e)};const{MAX_LENGTH:dc,MAX_SAFE_INTEGER:gc}=cc,{re:mc,t:Ec}=sc,{compareIdentifiers:yc}=hc;class vc{constructor(e,t){if(t=fc(t),e instanceof vc){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>dc)throw new TypeError(`version is longer than ${dc} characters`);ac("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?mc[Ec.LOOSE]:mc[Ec.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>gc||this.major<0)throw new TypeError("Invalid major version");if(this.minor>gc||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>gc||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}}var bc=vc;var Cc=(e,t,r)=>new bc(e,r).compare(new bc(t,r));var Ac=(e,t,r)=>Cc(e,t,r)<0;var wc=(e,t,r)=>Cc(e,t,r)>=0,Fc="2.3.2",kc=u((function(e,t){function r(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Oc` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Oc` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Oc` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Oc` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const Sc=["cliName","cliCategory","cliDescription"],Ic={compare:Cc,lt:Ac,gte:wc},Rc=Fc,xc={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:Tc}.options;var Bc={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:r=!1,showInternal:n=!1}={}){const u=Rc.split("-",1)[0],i=e.flatMap((e=>e.languages||[])).filter(s),o=(a=Object.assign({},...e.map((({options:e})=>e)),xc),c="name",Object.entries(a).map((([e,t])=>Object.assign({[c]:e},t)))).filter((e=>s(e)&&l(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(s).sort(((e,t)=>Ic.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>s(e)&&l(e))),"parser"===t.name&&function(e,t,r){const n=new Set(e.choices.map((e=>e.value)));for(const u of t)if(u.parsers)for(const t of u.parsers)if(!n.has(t)){n.add(t);const i=r.find((e=>e.parsers&&e.parsers[t]));let o=u.name;i&&i.name&&(o+=` (plugin: ${i.name})`),e.choices.push({value:t,description:o})}}(t,i,e));const r=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:r})}));var a,c;return{languages:i,options:o};function s(e){return t||!("since"in e)||e.since&&Ic.gte(u,e.since)}function l(e){return r||!("deprecated"in e)||e.deprecated&&Ic.lt(u,e.deprecated)}}};const{getSupportInfo:Nc}=Bc,Lc=/[^\x20-\x7F]/;function Pc(e){return(t,r,n)=>{const u=n&&n.backwards;if(!1===r)return!1;const{length:i}=t;let o=r;for(;o>=0&&o(r.match(o.regex)||[]).length?o.quote:i.quote}return a}function Zc(e,t,r){const n='"'===t?"'":'"',u=e.replace(/\\(.)|(["'])/gs,((e,u,i)=>u===n?u:i===t?"\\"+i:i||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(u)?u:"\\"+u)));return t+u+t}function Jc(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let r=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");r.length>20&&(r=r.slice(0,19)+"\u2026");return t+(r?" "+r:"")}(e)}var Kc={inferParserByLanguage:function(e,t){const{languages:r}=Nc({plugins:t.plugins}),n=r.find((({name:t})=>t.toLowerCase()===e))||r.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||r.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return n&&n.parsers[0]},getStringWidth:function(e){return e?Lc.test(e)?Li(e):e.length:0},getMaxContinuousCount:function(e,t){const r=e.match(new RegExp(`(${qi(t)})+`,"g"));return null===r?0:r.reduce(((e,r)=>Math.max(e,r.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const r=e.match(new RegExp(`(${qi(t)})+`,"g"));if(null===r)return 0;const n=new Map;let u=0;for(const e of r){const r=e.length/t.length;n.set(r,!0),r>u&&(u=r)}for(let e=1;ee[e.length-2],getLast:ji,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:Yc,getNextNonSpaceNonCommentCharacterIndex:Hc,getNextNonSpaceNonCommentCharacter:function(e,t,r){return e.charAt(Hc(e,t,r))},skip:Pc,skipWhitespace:qc,skipSpaces:jc,skipToLineEnd:_c,skipEverythingButNewLine:Uc,skipInlineComment:$c,skipTrailingComment:Mc,skipNewline:zc,isNextLineEmptyAfterIndex:Vc,isNextLineEmpty:function(e,t,r){return Vc(e,r(t))},isPreviousLineEmpty:function(e,t,r){let n=r(t)-1;return n=jc(e,n,{backwards:!0}),n=zc(e,n,{backwards:!0}),n=jc(e,n,{backwards:!0}),n!==zc(e,n,{backwards:!0})},hasNewline:Gc,hasNewlineInRange:function(e,t,r){for(let n=t;n0},createGroupIdMapper:function(e){const t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}};const{getLast:Qc}=Kc,{locStart:es,locEnd:ts}=Si,{cjkPattern:rs,kPattern:ns,punctuationPattern:us}={cjkPattern:"(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?",kPattern:"[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]",punctuationPattern:"[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"},is=["liquidNode","inlineCode","emphasis","strong","delete","wikiLink","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break","inlineMath"],os=[...is,"tableCell","paragraph","heading"],as=new RegExp(ns),cs=new RegExp(us);function ss(e,t){const[,r,n,u]=t.slice(e.position.start.offset,e.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/);return{numberText:r,marker:n,leadingSpaces:u}}var ls={mapAst:function(e,t){return function e(r,n,u){const i=Object.assign({},t(r,n,u));return i.children&&(i.children=i.children.map(((t,r)=>e(t,r,[i,...u])))),i}(e,null,[])},splitText:function(e,t){const r="non-cjk",n="cj-letter",u="cjk-punctuation",i=[],o=("preserve"===t.proseWrap?e:e.replace(new RegExp(`(${rs})\n(${rs})`,"g"),"$1$2")).split(/([\t\n ]+)/);for(const[e,t]of o.entries()){if(e%2==1){i.push({type:"whitespace",value:/\n/.test(t)?"\n":" "});continue}if((0===e||e===o.length-1)&&""===t)continue;const c=t.split(new RegExp(`(${rs})`));for(const[e,t]of c.entries())(0!==e&&e!==c.length-1||""!==t)&&(e%2!=0?a(cs.test(t)?{type:"word",value:t,kind:u,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:"word",value:t,kind:as.test(t)?"k-letter":n,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1}):""!==t&&a({type:"word",value:t,kind:r,hasLeadingPunctuation:cs.test(t[0]),hasTrailingPunctuation:cs.test(Qc(t))}))}return i;function a(e){const t=Qc(i);var o,a;t&&"word"===t.type&&(t.kind===r&&e.kind===n&&!t.hasTrailingPunctuation||t.kind===n&&e.kind===r&&!e.hasLeadingPunctuation?i.push({type:"whitespace",value:" "}):(o=r,a=u,t.kind===o&&e.kind===a||t.kind===a&&e.kind===o||[t.value,e.value].some((e=>/\u3000/.test(e)))||i.push({type:"whitespace",value:""}))),i.push(e)}},punctuationPattern:us,getFencedCodeBlockValue:function(e,t){const{value:r}=e;return e.position.end.offset===t.length&&r.endsWith("\n")&&t.endsWith("\n")?r.slice(0,-1):r},getOrderedListItemInfo:ss,hasGitDiffFriendlyOrderedList:function(e,t){if(!e.ordered)return!1;if(e.children.length<2)return!1;const r=Number(ss(e.children[0],t.originalText).numberText),n=Number(ss(e.children[1],t.originalText).numberText);if(0===r&&e.children.length>2){const r=Number(ss(e.children[2],t.originalText).numberText);return 1===n&&1===r}return 1===n},INLINE_NODE_TYPES:is,INLINE_NODE_WRAPPER_TYPES:os,isAutolink:function(e){if(!e||"link"!==e.type||1!==e.children.length)return!1;const t=e.children[0];return t&&es(e)===es(t)&&ts(e)===ts(t)}};const fs=/^import\s/,Ds=/^export\s/,ps=e=>fs.test(e),hs=e=>Ds.test(e),ds=(e,t)=>{const r=t.indexOf("\n\n"),n=t.slice(0,r);if(hs(n)||ps(n))return e(n)({type:hs(n)?"export":"import",value:n})};ds.locator=e=>hs(e)||ps(e)?-1:1;var gs={esSyntax:function(){const{Parser:e}=this,t=e.prototype.blockTokenizers,r=e.prototype.blockMethods;t.esSyntax=ds,r.splice(r.indexOf("paragraph"),0,"esSyntax")},BLOCKS_REGEX:"[a-z][a-z0-9]*(\\.[a-z][a-z0-9]*)*|",COMMENT_REGEX:/|/};const{locStart:ms,locEnd:Es}=Si,{mapAst:ys,INLINE_NODE_WRAPPER_TYPES:vs}=ls;function bs({isMDX:e}){return t=>{const r=ii().use(ou,Object.assign({commonmark:!0},e&&{blocks:[gs.BLOCKS_REGEX]})).use(bi).use(ws).use(vi).use(e?gs.esSyntax:Cs).use(Fs).use(e?As:Cs).use(ks).use(Os);return r.runSync(r.parse(t))}}function Cs(e){return e}function As(){return e=>ys(e,((e,t,[r])=>"html"!==e.type||gs.COMMENT_REGEX.test(e.value)||vs.includes(r.type)?e:Object.assign(Object.assign({},e),{},{type:"jsx"})))}function ws(){const e=this.Parser.prototype;function t(e,t){const r=Fi(t);if(r.frontMatter)return e(r.frontMatter.raw)(r.frontMatter)}e.blockMethods=["frontMatter",...e.blockMethods],e.blockTokenizers.frontMatter=t,t.onlyAtStart=!0}function Fs(){const e=this.Parser.prototype,t=e.inlineMethods;function r(e,t){const r=t.match(/^({%.*?%}|{{.*?}})/s);if(r)return e(r[0])({type:"liquidNode",value:r[0]})}t.splice(t.indexOf("text"),0,"liquid"),e.inlineTokenizers.liquid=r,r.locator=function(e,t){return e.indexOf("{",t)}}function ks(){const e="wikiLink",t=/^\[\[(?.+?)]]/s,r=this.Parser.prototype,n=r.inlineMethods;function u(r,n){const u=t.exec(n);if(u){const t=u.groups.linkContents.trim();return r(u[0])({type:e,value:t})}}n.splice(n.indexOf("link"),0,e),r.inlineTokenizers.wikiLink=u,u.locator=function(e,t){return e.indexOf("[",t)}}function Os(){const e=this.Parser.prototype,t=e.blockTokenizers.list;function r(e,t,r){return"listItem"===t.type&&(t.loose=t.spread||"\n"===e.charAt(e.length-1),t.loose&&(r.loose=!0)),t}e.blockTokenizers.list=function(e,n,u){function i(t){const n=e(t);function u(e,u){return n(r(t,e,u),u)}return u.reset=function(e,u){return n.reset(r(t,e,u),u)},u}return i.now=e.now,t.call(this,i,n,u)}}const Ts={astFormat:"mdast",hasPragma:Ti.hasPragma,locStart:ms,locEnd:Es},Ss=Object.assign(Object.assign({},Ts),{},{parse:bs({isMDX:!1})});var Is={parsers:{remark:Ss,markdown:Ss,mdx:Object.assign(Object.assign({},Ts),{},{parse:bs({isMDX:!0})})}};export default Is; diff --git a/node_modules/prettier/esm/parser-meriyah.mjs b/node_modules/prettier/esm/parser-meriyah.mjs new file mode 100644 index 0000000000..ce9c56345b --- /dev/null +++ b/node_modules/prettier/esm/parser-meriyah.mjs @@ -0,0 +1,22 @@ +var e=function(e,u){const t=new SyntaxError(e+" ("+u.start.line+":"+u.start.column+")");return t.loc=u,t};var u=function(...e){let u;for(const[t,n]of e.entries())try{return{result:n()}}catch(e){0===t&&(u=e)}return{error:u}},t=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,e?void 0:"g")})(),""):e;const n=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var r=n,o=n;r.default=o;const i=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=t(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let u=0;for(let t=0;t=127&&n<=159||(n>=768&&n<=879||(n>65535&&t++,u+=r(n)?2:1))}return u};var s=i,a=i;s.default=a;var D=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var c=e=>e[e.length-1];function l(e,u){if(null==e)return{};var t,n,r=function(e,u){if(null==e)return{};var t,n,r={},o=Object.keys(e);for(n=0;n=0||(r[t]=e[t]);return r}(e,u);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function f(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function d(e){var u={exports:{}};return e(u,u.exports),u.exports}var F=function(e){return e&&e.Math==Math&&e},E=F("object"==typeof globalThis&&globalThis)||F("object"==typeof window&&window)||F("object"==typeof self&&self)||F("object"==typeof p&&p)||function(){return this}()||Function("return this")(),C=function(e){try{return!!e()}catch(e){return!0}},A=!C((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),g={}.propertyIsEnumerable,m=Object.getOwnPropertyDescriptor,h={f:m&&!g.call({1:2},1)?function(e){var u=m(this,e);return!!u&&u.enumerable}:g},y=function(e,u){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:u}},B={}.toString,k=function(e){return B.call(e).slice(8,-1)},b="".split,P=C((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==k(e)?b.call(e,""):Object(e)}:Object,x=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},v=function(e){return P(x(e))},w=function(e){return"object"==typeof e?null!==e:"function"==typeof e},S=function(e,u){if(!w(e))return e;var t,n;if(u&&"function"==typeof(t=e.toString)&&!w(n=t.call(e)))return n;if("function"==typeof(t=e.valueOf)&&!w(n=t.call(e)))return n;if(!u&&"function"==typeof(t=e.toString)&&!w(n=t.call(e)))return n;throw TypeError("Can't convert object to primitive value")},T=function(e){return Object(x(e))},N={}.hasOwnProperty,I=Object.hasOwn||function(e,u){return N.call(T(e),u)},L=E.document,O=w(L)&&w(L.createElement),R=!A&&!C((function(){return 7!=Object.defineProperty((e="div",O?L.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),q=Object.getOwnPropertyDescriptor,j={f:A?q:function(e,u){if(e=v(e),u=S(u,!0),R)try{return q(e,u)}catch(e){}if(I(e,u))return y(!h.f.call(e,u),e[u])}},V=function(e){if(!w(e))throw TypeError(String(e)+" is not an object");return e},M=Object.defineProperty,$={f:A?M:function(e,u,t){if(V(e),u=S(u,!0),V(t),R)try{return M(e,u,t)}catch(e){}if("get"in t||"set"in t)throw TypeError("Accessors not supported");return"value"in t&&(e[u]=t.value),e}},U=A?function(e,u,t){return $.f(e,u,y(1,t))}:function(e,u,t){return e[u]=t,e},G=function(e,u){try{U(E,e,u)}catch(t){E[e]=u}return u},_=E["__core-js_shared__"]||G("__core-js_shared__",{}),X=Function.toString;"function"!=typeof _.inspectSource&&(_.inspectSource=function(e){return X.call(e)});var H,z,J,W,Y=_.inspectSource,K=E.WeakMap,Z="function"==typeof K&&/native code/.test(Y(K)),Q=d((function(e){(e.exports=function(e,u){return _[e]||(_[e]=void 0!==u?u:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),ee=0,ue=Math.random(),te=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++ee+ue).toString(36)},ne=Q("keys"),re={},oe=E.WeakMap;if(Z||_.state){var ie=_.state||(_.state=new oe),se=ie.get,ae=ie.has,De=ie.set;H=function(e,u){if(ae.call(ie,e))throw new TypeError("Object already initialized");return u.facade=e,De.call(ie,e,u),u},z=function(e){return se.call(ie,e)||{}},J=function(e){return ae.call(ie,e)}}else{var ce=ne[W="state"]||(ne[W]=te(W));re[ce]=!0,H=function(e,u){if(I(e,ce))throw new TypeError("Object already initialized");return u.facade=e,U(e,ce,u),u},z=function(e){return I(e,ce)?e[ce]:{}},J=function(e){return I(e,ce)}}var le,pe,fe={set:H,get:z,has:J,enforce:function(e){return J(e)?z(e):H(e,{})},getterFor:function(e){return function(u){var t;if(!w(u)||(t=z(u)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return t}}},de=d((function(e){var u=fe.get,t=fe.enforce,n=String(String).split("String");(e.exports=function(e,u,r,o){var i,s=!!o&&!!o.unsafe,a=!!o&&!!o.enumerable,D=!!o&&!!o.noTargetGet;"function"==typeof r&&("string"!=typeof u||I(r,"name")||U(r,"name",u),(i=t(r)).source||(i.source=n.join("string"==typeof u?u:""))),e!==E?(s?!D&&e[u]&&(a=!0):delete e[u],a?e[u]=r:U(e,u,r)):a?e[u]=r:G(u,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||Y(this)}))})),Fe=E,Ee=function(e){return"function"==typeof e?e:void 0},Ce=function(e,u){return arguments.length<2?Ee(Fe[e])||Ee(E[e]):Fe[e]&&Fe[e][u]||E[e]&&E[e][u]},Ae=Math.ceil,ge=Math.floor,me=function(e){return isNaN(e=+e)?0:(e>0?ge:Ae)(e)},he=Math.min,ye=function(e){return e>0?he(me(e),9007199254740991):0},Be=Math.max,ke=Math.min,be=function(e){return function(u,t,n){var r,o=v(u),i=ye(o.length),s=function(e,u){var t=me(e);return t<0?Be(t+u,0):ke(t,u)}(n,i);if(e&&t!=t){for(;i>s;)if((r=o[s++])!=r)return!0}else for(;i>s;s++)if((e||s in o)&&o[s]===t)return e||s||0;return!e&&-1}},Pe={includes:be(!0),indexOf:be(!1)}.indexOf,xe=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),ve={f:Object.getOwnPropertyNames||function(e){return function(e,u){var t,n=v(e),r=0,o=[];for(t in n)!I(re,t)&&I(n,t)&&o.push(t);for(;u.length>r;)I(n,t=u[r++])&&(~Pe(o,t)||o.push(t));return o}(e,xe)}},we={f:Object.getOwnPropertySymbols},Se=Ce("Reflect","ownKeys")||function(e){var u=ve.f(V(e)),t=we.f;return t?u.concat(t(e)):u},Te=function(e,u){for(var t=Se(u),n=$.f,r=j.f,o=0;o0&&$e(a))D=_e(e,u,a,ye(a.length),D,o-1)-1;else{if(D>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[D]=a}D++}c++}return D},Xe=_e,He=Ce("navigator","userAgent")||"",ze=E.process,Je=ze&&ze.versions,We=Je&&Je.v8;We?pe=(le=We.split("."))[0]<4?1:le[0]+le[1]:He&&(!(le=He.match(/Edge\/(\d+)/))||le[1]>=74)&&(le=He.match(/Chrome\/(\d+)/))&&(pe=le[1]);var Ye=pe&&+pe,Ke=!!Object.getOwnPropertySymbols&&!C((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Ye&&Ye<41})),Ze=Ke&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Qe=Q("wks"),eu=E.Symbol,uu=Ze?eu:eu&&eu.withoutSetter||te,tu=function(e){return I(Qe,e)&&(Ke||"string"==typeof Qe[e])||(Ke&&I(eu,e)?Qe[e]=eu[e]:Qe[e]=uu("Symbol."+e)),Qe[e]},nu=tu("species"),ru=function(e,u){var t;return $e(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!$e(t.prototype)?w(t)&&null===(t=t[nu])&&(t=void 0):t=void 0),new(void 0===t?Array:t)(0===u?0:u)};Me({target:"Array",proto:!0},{flatMap:function(e){var u,t=T(this),n=ye(t.length);return Ue(e),(u=ru(t,0)).length=Xe(u,t,t,n,0,1,e,arguments.length>1?arguments[1]:void 0),u}});var ou,iu,su=Math.floor,au=function(e,u){var t=e.length,n=su(t/2);return t<8?Du(e,u):cu(au(e.slice(0,n),u),au(e.slice(n),u),u)},Du=function(e,u){for(var t,n,r=e.length,o=1;o0;)e[n]=e[--n];n!==o++&&(e[n]=t)}return e},cu=function(e,u,t){for(var n=e.length,r=u.length,o=0,i=0,s=[];o3)){if(du)return!0;if(Eu)return Eu<603;var e,u,t,n,r="";for(e=65;e<76;e++){switch(u=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:t=3;break;case 68:case 71:t=4;break;default:t=2}for(n=0;n<47;n++)Cu.push({k:u+n,v:t})}for(Cu.sort((function(e,u){return u.v-e.v})),n=0;nString(t)?1:-1}}(e))).length,n=0;no;o++)if((s=C(e[o]))&&s instanceof Iu)return s;return new Iu(!1)}n=r.call(e)}for(a=n.next;!(D=a.call(n)).done;){try{s=C(D.value)}catch(e){throw Nu(n),e}if("object"==typeof s&&s&&s instanceof Iu)return s}return new Iu(!1)};Me({target:"Object",stat:!0},{fromEntries:function(e){var u={};return Lu(e,(function(e,t){!function(e,u,t){var n=S(u);n in e?$.f(e,n,y(0,t)):e[n]=t}(u,e,t)}),{AS_ENTRIES:!0}),u}});var Ou=void 0!==Ou?Ou:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Ru(){throw new Error("setTimeout has not been defined")}function qu(){throw new Error("clearTimeout has not been defined")}var ju=Ru,Vu=qu;function Mu(e){if(ju===setTimeout)return setTimeout(e,0);if((ju===Ru||!ju)&&setTimeout)return ju=setTimeout,setTimeout(e,0);try{return ju(e,0)}catch(u){try{return ju.call(null,e,0)}catch(u){return ju.call(this,e,0)}}}"function"==typeof Ou.setTimeout&&(ju=setTimeout),"function"==typeof Ou.clearTimeout&&(Vu=clearTimeout);var $u,Uu=[],Gu=!1,_u=-1;function Xu(){Gu&&$u&&(Gu=!1,$u.length?Uu=$u.concat(Uu):_u=-1,Uu.length&&Hu())}function Hu(){if(!Gu){var e=Mu(Xu);Gu=!0;for(var u=Uu.length;u;){for($u=Uu,Uu=[];++_u1)for(var t=1;tconsole.error("SEMVER",...e):()=>{};var st={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},at=d((function(e,u){const{MAX_SAFE_COMPONENT_LENGTH:t}=st,n=(u=e.exports={}).re=[],r=u.src=[],o=u.t={};let i=0;const s=(e,u,t)=>{const s=i++;it(s,u),o[e]=s,r[s]=u,n[s]=new RegExp(u,t?"g":void 0)};s("NUMERICIDENTIFIER","0|[1-9]\\d*"),s("NUMERICIDENTIFIERLOOSE","[0-9]+"),s("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),s("MAINVERSION",`(${r[o.NUMERICIDENTIFIER]})\\.(${r[o.NUMERICIDENTIFIER]})\\.(${r[o.NUMERICIDENTIFIER]})`),s("MAINVERSIONLOOSE",`(${r[o.NUMERICIDENTIFIERLOOSE]})\\.(${r[o.NUMERICIDENTIFIERLOOSE]})\\.(${r[o.NUMERICIDENTIFIERLOOSE]})`),s("PRERELEASEIDENTIFIER",`(?:${r[o.NUMERICIDENTIFIER]}|${r[o.NONNUMERICIDENTIFIER]})`),s("PRERELEASEIDENTIFIERLOOSE",`(?:${r[o.NUMERICIDENTIFIERLOOSE]}|${r[o.NONNUMERICIDENTIFIER]})`),s("PRERELEASE",`(?:-(${r[o.PRERELEASEIDENTIFIER]}(?:\\.${r[o.PRERELEASEIDENTIFIER]})*))`),s("PRERELEASELOOSE",`(?:-?(${r[o.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${r[o.PRERELEASEIDENTIFIERLOOSE]})*))`),s("BUILDIDENTIFIER","[0-9A-Za-z-]+"),s("BUILD",`(?:\\+(${r[o.BUILDIDENTIFIER]}(?:\\.${r[o.BUILDIDENTIFIER]})*))`),s("FULLPLAIN",`v?${r[o.MAINVERSION]}${r[o.PRERELEASE]}?${r[o.BUILD]}?`),s("FULL",`^${r[o.FULLPLAIN]}$`),s("LOOSEPLAIN",`[v=\\s]*${r[o.MAINVERSIONLOOSE]}${r[o.PRERELEASELOOSE]}?${r[o.BUILD]}?`),s("LOOSE",`^${r[o.LOOSEPLAIN]}$`),s("GTLT","((?:<|>)?=?)"),s("XRANGEIDENTIFIERLOOSE",`${r[o.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),s("XRANGEIDENTIFIER",`${r[o.NUMERICIDENTIFIER]}|x|X|\\*`),s("XRANGEPLAIN",`[v=\\s]*(${r[o.XRANGEIDENTIFIER]})(?:\\.(${r[o.XRANGEIDENTIFIER]})(?:\\.(${r[o.XRANGEIDENTIFIER]})(?:${r[o.PRERELEASE]})?${r[o.BUILD]}?)?)?`),s("XRANGEPLAINLOOSE",`[v=\\s]*(${r[o.XRANGEIDENTIFIERLOOSE]})(?:\\.(${r[o.XRANGEIDENTIFIERLOOSE]})(?:\\.(${r[o.XRANGEIDENTIFIERLOOSE]})(?:${r[o.PRERELEASELOOSE]})?${r[o.BUILD]}?)?)?`),s("XRANGE",`^${r[o.GTLT]}\\s*${r[o.XRANGEPLAIN]}$`),s("XRANGELOOSE",`^${r[o.GTLT]}\\s*${r[o.XRANGEPLAINLOOSE]}$`),s("COERCE",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?(?:$|[^\\d])`),s("COERCERTL",r[o.COERCE],!0),s("LONETILDE","(?:~>?)"),s("TILDETRIM",`(\\s*)${r[o.LONETILDE]}\\s+`,!0),u.tildeTrimReplace="$1~",s("TILDE",`^${r[o.LONETILDE]}${r[o.XRANGEPLAIN]}$`),s("TILDELOOSE",`^${r[o.LONETILDE]}${r[o.XRANGEPLAINLOOSE]}$`),s("LONECARET","(?:\\^)"),s("CARETTRIM",`(\\s*)${r[o.LONECARET]}\\s+`,!0),u.caretTrimReplace="$1^",s("CARET",`^${r[o.LONECARET]}${r[o.XRANGEPLAIN]}$`),s("CARETLOOSE",`^${r[o.LONECARET]}${r[o.XRANGEPLAINLOOSE]}$`),s("COMPARATORLOOSE",`^${r[o.GTLT]}\\s*(${r[o.LOOSEPLAIN]})$|^$`),s("COMPARATOR",`^${r[o.GTLT]}\\s*(${r[o.FULLPLAIN]})$|^$`),s("COMPARATORTRIM",`(\\s*)${r[o.GTLT]}\\s*(${r[o.LOOSEPLAIN]}|${r[o.XRANGEPLAIN]})`,!0),u.comparatorTrimReplace="$1$2$3",s("HYPHENRANGE",`^\\s*(${r[o.XRANGEPLAIN]})\\s+-\\s+(${r[o.XRANGEPLAIN]})\\s*$`),s("HYPHENRANGELOOSE",`^\\s*(${r[o.XRANGEPLAINLOOSE]})\\s+-\\s+(${r[o.XRANGEPLAINLOOSE]})\\s*$`),s("STAR","(<|>)?=?\\s*\\*"),s("GTE0","^\\s*>=\\s*0.0.0\\s*$"),s("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const Dt=["includePrerelease","loose","rtl"];var ct=e=>e?"object"!=typeof e?{loose:!0}:Dt.filter((u=>e[u])).reduce(((e,u)=>(e[u]=!0,e)),{}):{};const lt=/^[0-9]+$/,pt=(e,u)=>{const t=lt.test(e),n=lt.test(u);return t&&n&&(e=+e,u=+u),e===u?0:t&&!n?-1:n&&!t?1:ept(u,e)};const{MAX_LENGTH:dt,MAX_SAFE_INTEGER:Ft}=st,{re:Et,t:Ct}=at,{compareIdentifiers:At}=ft;class gt{constructor(e,u){if(u=ct(u),e instanceof gt){if(e.loose===!!u.loose&&e.includePrerelease===!!u.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>dt)throw new TypeError(`version is longer than ${dt} characters`);it("SemVer",e,u),this.options=u,this.loose=!!u.loose,this.includePrerelease=!!u.includePrerelease;const t=e.trim().match(u.loose?Et[Ct.LOOSE]:Et[Ct.FULL]);if(!t)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+t[1],this.minor=+t[2],this.patch=+t[3],this.major>Ft||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Ft||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Ft||this.patch<0)throw new TypeError("Invalid patch version");t[4]?this.prerelease=t[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const u=+e;if(u>=0&&u=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}u&&(this.prerelease[0]===u?isNaN(this.prerelease[1])&&(this.prerelease=[u,0]):this.prerelease=[u,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}var mt=gt;var ht=(e,u,t)=>new mt(e,t).compare(new mt(u,t));var yt=(e,u,t)=>ht(e,u,t)<0;var Bt=(e,u,t)=>ht(e,u,t)>=0,kt="2.3.2",bt=d((function(e,u){function t(){for(var e=[],u=0;u"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Pt` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Pt` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Pt` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Pt` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const vt=["cliName","cliCategory","cliDescription"],wt={compare:ht,lt:yt,gte:Bt},St=kt,Tt={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:xt}.options;var Nt={getSupportInfo:function({plugins:e=[],showUnreleased:u=!1,showDeprecated:t=!1,showInternal:n=!1}={}){const r=St.split("-",1)[0],o=e.flatMap((e=>e.languages||[])).filter(D),i=(s=Object.assign({},...e.map((({options:e})=>e)),Tt),a="name",Object.entries(s).map((([e,u])=>Object.assign({[a]:e},u)))).filter((e=>D(e)&&c(e))).sort(((e,u)=>e.name===u.name?0:e.name{u=Object.assign({},u),Array.isArray(u.default)&&(u.default=1===u.default.length?u.default[0].value:u.default.filter(D).sort(((e,u)=>wt.compare(u.since,e.since)))[0].value),Array.isArray(u.choices)&&(u.choices=u.choices.filter((e=>D(e)&&c(e))),"parser"===u.name&&function(e,u,t){const n=new Set(e.choices.map((e=>e.value)));for(const r of u)if(r.parsers)for(const u of r.parsers)if(!n.has(u)){n.add(u);const o=t.find((e=>e.parsers&&e.parsers[u]));let i=r.name;o&&o.name&&(i+=` (plugin: ${o.name})`),e.choices.push({value:u,description:i})}}(u,o,e));const t=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[u.name])).map((e=>[e.name,e.defaultOptions[u.name]])));return Object.assign(Object.assign({},u),{},{pluginDefaults:t})}));var s,a;return{languages:o,options:i};function D(e){return u||!("since"in e)||e.since&&wt.gte(r,e.since)}function c(e){return t||!("deprecated"in e)||e.deprecated&&wt.lt(r,e.deprecated)}}};const{getSupportInfo:It}=Nt,Lt=/[^\x20-\x7F]/;function Ot(e){return(u,t,n)=>{const r=n&&n.backwards;if(!1===t)return!1;const{length:o}=u;let i=t;for(;i>=0&&i(t.match(i.regex)||[]).length?i.quote:o.quote}return s}function Wt(e,u,t){const n='"'===u?"'":'"',r=e.replace(/\\(.)|(["'])/gs,((e,r,o)=>r===n?r:o===u?"\\"+o:o||(t&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(r)?r:"\\"+r)));return u+r+u}function Yt(e,u){(e.comments||(e.comments=[])).push(u),u.printed=!1,u.nodeDescription=function(e){const u=e.type||e.kind||"(unknown type)";let t=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");t.length>20&&(t=t.slice(0,19)+"\u2026");return u+(t?" "+t:"")}(e)}var Kt={inferParserByLanguage:function(e,u){const{languages:t}=It({plugins:u.plugins}),n=t.find((({name:u})=>u.toLowerCase()===e))||t.find((({aliases:u})=>Array.isArray(u)&&u.includes(e)))||t.find((({extensions:u})=>Array.isArray(u)&&u.includes(`.${e}`)));return n&&n.parsers[0]},getStringWidth:function(e){return e?Lt.test(e)?s(e):e.length:0},getMaxContinuousCount:function(e,u){const t=e.match(new RegExp(`(${D(u)})+`,"g"));return null===t?0:t.reduce(((e,t)=>Math.max(e,t.length/u.length)),0)},getMinNotPresentContinuousCount:function(e,u){const t=e.match(new RegExp(`(${D(u)})+`,"g"));if(null===t)return 0;const n=new Map;let r=0;for(const e of t){const t=e.length/u.length;n.set(t,!0),t>r&&(r=t)}for(let e=1;ee[e.length-2],getLast:c,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:Xt,getNextNonSpaceNonCommentCharacterIndex:Ht,getNextNonSpaceNonCommentCharacter:function(e,u,t){return e.charAt(Ht(e,u,t))},skip:Ot,skipWhitespace:Rt,skipSpaces:qt,skipToLineEnd:jt,skipEverythingButNewLine:Vt,skipInlineComment:Mt,skipTrailingComment:$t,skipNewline:Ut,isNextLineEmptyAfterIndex:_t,isNextLineEmpty:function(e,u,t){return _t(e,t(u))},isPreviousLineEmpty:function(e,u,t){let n=t(u)-1;return n=qt(e,n,{backwards:!0}),n=Ut(e,n,{backwards:!0}),n=qt(e,n,{backwards:!0}),n!==Ut(e,n,{backwards:!0})},hasNewline:Gt,hasNewlineInRange:function(e,u,t){for(let n=u;n0},createGroupIdMapper:function(e){const u=new WeakMap;return function(t){return u.has(t)||u.set(t,Symbol(e)),u.get(t)}}};const{isNonEmptyArray:Zt}=Kt;function Qt(e,u){const{ignoreDecorators:t}=u||{};if(!t){const u=e.declaration&&e.declaration.decorators||e.decorators;if(Zt(u))return Qt(u[0])}return e.range?e.range[0]:e.start}function en(e){return e.range?e.range[1]:e.end}function un(e,u){return Qt(e)===Qt(u)}var tn={locStart:Qt,locEnd:en,hasSameLocStart:un,hasSameLoc:function(e,u){return un(e,u)&&function(e,u){return en(e)===en(u)}(e,u)}},nn=d((function(e){!function(){function u(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function t(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:u,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return u(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var u;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;u=e.consequent;do{if("IfStatement"===u.type&&null==u.alternate)return!0;u=t(u)}while(u);return!1},trailingStatement:t}}()})),rn=d((function(e){!function(){var u,t,n,r,o,i;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(t={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},u={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/},n=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],r=new Array(128),i=0;i<128;++i)r[i]=i>=97&&i<=122||i>=65&&i<=90||36===i||95===i;for(o=new Array(128),i=0;i<128;++i)o[i]=i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||36===i||95===i;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&n.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?r[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?o[e]:t.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?r[e]:u.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?o[e]:u.NonAsciiIdentifierPart.test(s(e))}}}()})),on=d((function(e){!function(){var u=rn;function t(e,u){return!(!u&&"yield"===e)&&n(e,u)}function n(e,u){if(u&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===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}}function r(e,u){return"null"===e||"true"===e||"false"===e||t(e,u)}function o(e,u){return"null"===e||"true"===e||"false"===e||n(e,u)}function i(e){var t,n,r;if(0===e.length)return!1;if(r=e.charCodeAt(0),!u.isIdentifierStartES5(r))return!1;for(t=1,n=e.length;t=n)return!1;if(!(56320<=(o=e.charCodeAt(t))&&o<=57343))return!1;r=1024*(r-55296)+(o-56320)+65536}if(!i(r))return!1;i=u.isIdentifierPartES6}return!0}e.exports={isKeywordES5:t,isKeywordES6:n,isReservedWordES5:r,isReservedWordES6:o,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:i,isIdentifierNameES6:s,isIdentifierES5:function(e,u){return i(e)&&!r(e,u)},isIdentifierES6:function(e,u){return s(e)&&!o(e,u)}}}()}));const sn=d((function(e,u){u.ast=nn,u.code=rn,u.keyword=on})).keyword.isIdentifierNameES5,{getLast:an,hasNewline:Dn,skipWhitespace:cn,isNonEmptyArray:ln,isNextLineEmptyAfterIndex:pn}=Kt,{locStart:fn,locEnd:dn,hasSameLocStart:Fn}=tn,En=new RegExp("^(?:(?=.)\\s)*:"),Cn=new RegExp("^(?:(?=.)\\s)*::");function An(e){return"Block"===e.type||"CommentBlock"===e.type||"MultiLine"===e.type}function gn(e){return"Line"===e.type||"CommentLine"===e.type||"SingleLine"===e.type||"HashbangComment"===e.type||"HTMLOpen"===e.type||"HTMLClose"===e.type}const mn=new Set(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function hn(e){return e&&mn.has(e.type)}function yn(e){return"NumericLiteral"===e.type||"Literal"===e.type&&"number"==typeof e.value}function Bn(e){return"StringLiteral"===e.type||"Literal"===e.type&&"string"==typeof e.value}function kn(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}function bn(e){return Nn(e)&&"Identifier"===e.callee.type&&("async"===e.callee.name||"inject"===e.callee.name||"fakeAsync"===e.callee.name)}function Pn(e){return"JSXElement"===e.type||"JSXFragment"===e.type}function xn(e){return"get"===e.kind||"set"===e.kind}function vn(e){return xn(e)||Fn(e,e.value)}const wn=new Set(["BinaryExpression","LogicalExpression","NGPipeExpression"]);const Sn=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);const Tn=/^(skip|[fx]?(it|describe|test))$/;function Nn(e){return e&&("CallExpression"===e.type||"OptionalCallExpression"===e.type)}function In(e){return e&&("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)}function Ln(e){return/^(\d+|\d+\.\d+)$/.test(e)}function On(e){return e.quasis.some((e=>e.value.raw.includes("\n")))}function Rn(e){return e.extra?e.extra.raw:e.raw}const qn={"==":!0,"!=":!0,"===":!0,"!==":!0},jn={"*":!0,"/":!0,"%":!0},Vn={">>":!0,">>>":!0,"<<":!0};const Mn={};for(const[e,u]of[["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].entries())for(const t of u)Mn[t]=e;function $n(e){return Mn[e]}const Un=new WeakMap;function Gn(e){if(Un.has(e))return Un.get(e);const u=[];return e.this&&u.push(e.this),Array.isArray(e.parameters)?u.push(...e.parameters):Array.isArray(e.params)&&u.push(...e.params),e.rest&&u.push(e.rest),Un.set(e,u),u}const _n=new WeakMap;function Xn(e){if(_n.has(e))return _n.get(e);let u=e.arguments;return"ImportExpression"===e.type&&(u=[e.source],e.attributes&&u.push(e.attributes)),_n.set(e,u),u}function Hn(e){return"prettier-ignore"===e.value.trim()&&!e.unignore}function zn(e){return e&&(e.prettierIgnore||Yn(e,Jn.PrettierIgnore))}const Jn={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},Wn=(e,u)=>{if("function"==typeof e&&(u=e,e=0),e||u)return(t,n,r)=>!(e&Jn.Leading&&!t.leading||e&Jn.Trailing&&!t.trailing||e&Jn.Dangling&&(t.leading||t.trailing)||e&Jn.Block&&!An(t)||e&Jn.Line&&!gn(t)||e&Jn.First&&0!==n||e&Jn.Last&&n!==r.length-1||e&Jn.PrettierIgnore&&!Hn(t)||u&&!u(t))};function Yn(e,u,t){if(!e||!ln(e.comments))return!1;const n=Wn(u,t);return!n||e.comments.some(n)}function Kn(e,u,t){if(!e||!Array.isArray(e.comments))return[];const n=Wn(u,t);return n?e.comments.filter(n):e.comments}function Zn(e){return Nn(e)||"NewExpression"===e.type||"ImportExpression"===e.type}var Qn={getFunctionParameters:Gn,iterateFunctionParametersPath:function(e,u){const t=e.getValue();let n=0;const r=e=>u(e,n++);t.this&&e.call(r,"this"),Array.isArray(t.parameters)?e.each(r,"parameters"):Array.isArray(t.params)&&e.each(r,"params"),t.rest&&e.call(r,"rest")},getCallArguments:Xn,iterateCallArgumentsPath:function(e,u){const t=e.getValue();"ImportExpression"===t.type?(e.call((e=>u(e,0)),"source"),t.attributes&&e.call((e=>u(e,1)),"attributes")):e.each(u,"arguments")},hasRestParameter:function(e){if(e.rest)return!0;const u=Gn(e);return u.length>0&&"RestElement"===an(u).type},getLeftSide:function(e){return e.expressions?e.expressions[0]:e.left||e.test||e.callee||e.object||e.tag||e.argument||e.expression},getLeftSidePathName:function(e,u){if(u.expressions)return["expressions",0];if(u.left)return["left"];if(u.test)return["test"];if(u.object)return["object"];if(u.callee)return["callee"];if(u.tag)return["tag"];if(u.argument)return["argument"];if(u.expression)return["expression"];throw new Error("Unexpected node has no left side.")},getParentExportDeclaration:function(e){const u=e.getParentNode();return"declaration"===e.getName()&&hn(u)?u:null},getTypeScriptMappedTypeModifier:function(e,u){return"+"===e?"+"+u:"-"===e?"-"+u:u},hasFlowAnnotationComment:function(e){return e&&An(e[0])&&Cn.test(e[0].value)},hasFlowShorthandAnnotationComment:function(e){return e.extra&&e.extra.parenthesized&&ln(e.trailingComments)&&An(e.trailingComments[0])&&En.test(e.trailingComments[0].value)},hasLeadingOwnLineComment:function(e,u){return Pn(u)?zn(u):Yn(u,Jn.Leading,(u=>Dn(e,dn(u))))},hasNakedLeftSide:function(e){return"AssignmentExpression"===e.type||"BinaryExpression"===e.type||"LogicalExpression"===e.type||"NGPipeExpression"===e.type||"ConditionalExpression"===e.type||Nn(e)||In(e)||"SequenceExpression"===e.type||"TaggedTemplateExpression"===e.type||"BindExpression"===e.type||"UpdateExpression"===e.type&&!e.prefix||"TSAsExpression"===e.type||"TSNonNullExpression"===e.type},hasNode:function e(u,t){if(!u||"object"!=typeof u)return!1;if(Array.isArray(u))return u.some((u=>e(u,t)));const n=t(u);return"boolean"==typeof n?n:Object.values(u).some((u=>e(u,t)))},hasIgnoreComment:function(e){return zn(e.getValue())},hasNodeIgnoreComment:zn,identity:function(e){return e},isBinaryish:function(e){return wn.has(e.type)},isBlockComment:An,isCallLikeExpression:Zn,isLineComment:gn,isPrettierIgnoreComment:Hn,isCallExpression:Nn,isMemberExpression:In,isExportDeclaration:hn,isFlowAnnotationComment:function(e,u){const t=fn(u),n=cn(e,dn(u));return!1!==n&&"/*"===e.slice(t,t+2)&&"*/"===e.slice(n,n+2)},isFunctionCompositionArgs:function(e){if(e.length<=1)return!1;let u=0;for(const t of e)if(kn(t)){if(u+=1,u>1)return!0}else if(Nn(t))for(const e of t.arguments)if(kn(e))return!0;return!1},isFunctionNotation:vn,isFunctionOrArrowExpression:kn,isGetterOrSetter:xn,isJestEachTemplateLiteral:function(e,u){const t=/^[fx]?(describe|it|test)$/;return"TaggedTemplateExpression"===u.type&&u.quasi===e&&"MemberExpression"===u.tag.type&&"Identifier"===u.tag.property.type&&"each"===u.tag.property.name&&("Identifier"===u.tag.object.type&&t.test(u.tag.object.name)||"MemberExpression"===u.tag.object.type&&"Identifier"===u.tag.object.property.type&&("only"===u.tag.object.property.name||"skip"===u.tag.object.property.name)&&"Identifier"===u.tag.object.object.type&&t.test(u.tag.object.object.name))},isJsxNode:Pn,isLiteral:function(e){return"BooleanLiteral"===e.type||"DirectiveLiteral"===e.type||"Literal"===e.type||"NullLiteral"===e.type||"NumericLiteral"===e.type||"BigIntLiteral"===e.type||"DecimalLiteral"===e.type||"RegExpLiteral"===e.type||"StringLiteral"===e.type||"TemplateLiteral"===e.type||"TSTypeLiteral"===e.type||"JSXText"===e.type},isLongCurriedCallExpression:function(e){const u=e.getValue(),t=e.getParentNode();return Nn(u)&&Nn(t)&&t.callee===u&&u.arguments.length>t.arguments.length&&t.arguments.length>0},isSimpleCallArgument:function e(u,t){if(t>=2)return!1;const n=u=>e(u,t+1),r="Literal"===u.type&&"regex"in u&&u.regex.pattern||"RegExpLiteral"===u.type&&u.pattern;return!(r&&r.length>5)&&("Literal"===u.type||"BigIntLiteral"===u.type||"DecimalLiteral"===u.type||"BooleanLiteral"===u.type||"NullLiteral"===u.type||"NumericLiteral"===u.type||"RegExpLiteral"===u.type||"StringLiteral"===u.type||"Identifier"===u.type||"ThisExpression"===u.type||"Super"===u.type||"PrivateName"===u.type||"PrivateIdentifier"===u.type||"ArgumentPlaceholder"===u.type||"Import"===u.type||("TemplateLiteral"===u.type?u.quasis.every((e=>!e.value.raw.includes("\n")))&&u.expressions.every(n):"ObjectExpression"===u.type?u.properties.every((e=>!e.computed&&(e.shorthand||e.value&&n(e.value)))):"ArrayExpression"===u.type?u.elements.every((e=>null===e||n(e))):Zn(u)?("ImportExpression"===u.type||e(u.callee,t))&&Xn(u).every(n):In(u)?e(u.object,t)&&e(u.property,t):"UnaryExpression"!==u.type||"!"!==u.operator&&"-"!==u.operator?"TSNonNullExpression"===u.type&&e(u.expression,t):e(u.argument,t)))},isMemberish:function(e){return In(e)||"BindExpression"===e.type&&Boolean(e.object)},isNumericLiteral:yn,isSignedNumericLiteral:function(e){return"UnaryExpression"===e.type&&("+"===e.operator||"-"===e.operator)&&yn(e.argument)},isObjectProperty:function(e){return e&&("ObjectProperty"===e.type||"Property"===e.type&&!e.method&&"init"===e.kind)},isObjectType:function(e){return"ObjectTypeAnnotation"===e.type||"TSTypeLiteral"===e.type},isObjectTypePropertyAFunction:function(e){return!("ObjectTypeProperty"!==e.type&&"ObjectTypeInternalSlot"!==e.type||"FunctionTypeAnnotation"!==e.value.type||e.static||vn(e))},isSimpleType:function(e){return!!e&&(!("GenericTypeAnnotation"!==e.type&&"TSTypeReference"!==e.type||e.typeParameters)||!!Sn.has(e.type))},isSimpleNumber:Ln,isSimpleTemplateLiteral:function(e){let u="expressions";"TSTemplateLiteralType"===e.type&&(u="types");const t=e[u];return 0!==t.length&&t.every((e=>{if(Yn(e))return!1;if("Identifier"===e.type||"ThisExpression"===e.type)return!0;if(In(e)){let u=e;for(;In(u);){if("Identifier"!==u.property.type&&"Literal"!==u.property.type&&"StringLiteral"!==u.property.type&&"NumericLiteral"!==u.property.type)return!1;if(u=u.object,Yn(u))return!1}return"Identifier"===u.type||"ThisExpression"===u.type}return!1}))},isStringLiteral:Bn,isStringPropSafeToUnquote:function(e,u){return"json"!==u.parser&&Bn(e.key)&&Rn(e.key).slice(1,-1)===e.key.value&&(sn(e.key.value)&&!(("typescript"===u.parser||"babel-ts"===u.parser)&&"ClassProperty"===e.type)||Ln(e.key.value)&&String(Number(e.key.value))===e.key.value&&("babel"===u.parser||"espree"===u.parser||"meriyah"===u.parser||"__babel_estree"===u.parser))},isTemplateOnItsOwnLine:function(e,u){return("TemplateLiteral"===e.type&&On(e)||"TaggedTemplateExpression"===e.type&&On(e.quasi))&&!Dn(u,fn(e),{backwards:!0})},isTestCall:function e(u,t){if("CallExpression"!==u.type)return!1;if(1===u.arguments.length){if(bn(u)&&t&&e(t))return kn(u.arguments[0]);if(function(e){return"Identifier"===e.callee.type&&/^(before|after)(Each|All)$/.test(e.callee.name)&&1===e.arguments.length}(u))return bn(u.arguments[0])}else if((2===u.arguments.length||3===u.arguments.length)&&("Identifier"===u.callee.type&&Tn.test(u.callee.name)||function(e){return In(e.callee)&&"Identifier"===e.callee.object.type&&"Identifier"===e.callee.property.type&&Tn.test(e.callee.object.name)&&("only"===e.callee.property.name||"skip"===e.callee.property.name)}(u))&&(function(e){return"TemplateLiteral"===e.type}(u.arguments[0])||Bn(u.arguments[0])))return!(u.arguments[2]&&!yn(u.arguments[2]))&&((2===u.arguments.length?kn(u.arguments[1]):function(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type}(u.arguments[1])&&Gn(u.arguments[1]).length<=1)||bn(u.arguments[1]));return!1},isTheOnlyJsxElementInMarkdown:function(e,u){if("markdown"!==e.parentParser&&"mdx"!==e.parentParser)return!1;const t=u.getNode();if(!t.expression||!Pn(t.expression))return!1;const n=u.getParentNode();return"Program"===n.type&&1===n.body.length},isTSXFile:function(e){return e.filepath&&/\.tsx$/i.test(e.filepath)},isTypeAnnotationAFunction:function(e){return!("TypeAnnotation"!==e.type&&"TSTypeAnnotation"!==e.type||"FunctionTypeAnnotation"!==e.typeAnnotation.type||e.static||Fn(e,e.typeAnnotation))},isNextLineEmpty:(e,{originalText:u})=>pn(u,dn(e)),needsHardlineAfterDanglingComment:function(e){if(!Yn(e))return!1;const u=an(Kn(e,Jn.Dangling));return u&&!An(u)},rawText:Rn,shouldPrintComma:function(e,u="es5"){return"es5"===e.trailingComma&&"es5"===u||"all"===e.trailingComma&&("all"===u||"es5"===u)},isBitwiseOperator:function(e){return Boolean(Vn[e])||"|"===e||"^"===e||"&"===e},shouldFlatten:function(e,u){return $n(u)===$n(e)&&("**"!==e&&((!qn[e]||!qn[u])&&(!("%"===u&&jn[e]||"%"===e&&jn[u])&&((u===e||!jn[u]||!jn[e])&&(!Vn[e]||!Vn[u])))))},startsWithNoLookaheadToken:function e(u,t){switch((u=function(e){for(;e.left;)e=e.left;return e}(u)).type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return t;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return e(u.object,t);case"TaggedTemplateExpression":return"FunctionExpression"!==u.tag.type&&e(u.tag,t);case"CallExpression":case"OptionalCallExpression":return"FunctionExpression"!==u.callee.type&&e(u.callee,t);case"ConditionalExpression":return e(u.test,t);case"UpdateExpression":return!u.prefix&&e(u.argument,t);case"BindExpression":return u.object&&e(u.object,t);case"SequenceExpression":return e(u.expressions[0],t);case"TSAsExpression":case"TSNonNullExpression":return e(u.expression,t);default:return!1}},getPrecedence:$n,hasComment:Yn,getComments:Kn,CommentCheckFlags:Jn};const{getLast:er,hasNewline:ur,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:tr,getNextNonSpaceNonCommentCharacter:nr,hasNewlineInRange:rr,addLeadingComment:or,addTrailingComment:ir,addDanglingComment:sr,getNextNonSpaceNonCommentCharacterIndex:ar,isNonEmptyArray:Dr}=Kt,{isBlockComment:cr,getFunctionParameters:lr,isPrettierIgnoreComment:pr,isJsxNode:fr,hasFlowShorthandAnnotationComment:dr,hasFlowAnnotationComment:Fr,hasIgnoreComment:Er,isCallLikeExpression:Cr,getCallArguments:Ar,isCallExpression:gr,isMemberExpression:mr,isObjectProperty:hr}=Qn,{locStart:yr,locEnd:Br}=tn;function kr(e,u){const t=(e.body||e.properties).find((({type:e})=>"EmptyStatement"!==e));t?or(t,u):sr(e,u)}function br(e,u){"BlockStatement"===e.type?kr(e,u):or(e,u)}function Pr({comment:e,followingNode:u}){return!(!u||!uo(e))&&(or(u,e),!0)}function xr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n,text:r}){if(!t||"IfStatement"!==t.type||!n)return!1;return")"===nr(r,e,Br)?(ir(u,e),!0):u===t.consequent&&n===t.alternate?("BlockStatement"===u.type?ir(u,e):sr(t,e),!0):"BlockStatement"===n.type?(kr(n,e),!0):"IfStatement"===n.type?(br(n.consequent,e),!0):t.consequent===n&&(or(n,e),!0)}function vr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n,text:r}){if(!t||"WhileStatement"!==t.type||!n)return!1;return")"===nr(r,e,Br)?(ir(u,e),!0):"BlockStatement"===n.type?(kr(n,e),!0):t.body===n&&(or(n,e),!0)}function wr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n}){return!(!t||"TryStatement"!==t.type&&"CatchClause"!==t.type||!n)&&("CatchClause"===t.type&&u?(ir(u,e),!0):"BlockStatement"===n.type?(kr(n,e),!0):"TryStatement"===n.type?(br(n.finalizer,e),!0):"CatchClause"===n.type&&(br(n.body,e),!0))}function Sr({comment:e,enclosingNode:u,followingNode:t}){return!(!mr(u)||!t||"Identifier"!==t.type)&&(or(u,e),!0)}function Tr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n,text:r}){const o=u&&!rr(r,Br(u),yr(e));return!(u&&o||!t||"ConditionalExpression"!==t.type&&"TSConditionalType"!==t.type||!n)&&(or(n,e),!0)}function Nr({comment:e,precedingNode:u,enclosingNode:t}){return!(!hr(t)||!t.shorthand||t.key!==u||"AssignmentPattern"!==t.value.type)&&(ir(t.value.left,e),!0)}function Ir({comment:e,precedingNode:u,enclosingNode:t,followingNode:n}){if(t&&("ClassDeclaration"===t.type||"ClassExpression"===t.type||"DeclareClass"===t.type||"DeclareInterface"===t.type||"InterfaceDeclaration"===t.type||"TSInterfaceDeclaration"===t.type)){if(Dr(t.decorators)&&(!n||"Decorator"!==n.type))return ir(er(t.decorators),e),!0;if(t.body&&n===t.body)return kr(t.body,e),!0;if(n)for(const r of["implements","extends","mixins"])if(t[r]&&n===t[r][0])return!u||u!==t.id&&u!==t.typeParameters&&u!==t.superClass?sr(t,e,r):ir(u,e),!0}return!1}function Lr({comment:e,precedingNode:u,enclosingNode:t,text:n}){return(t&&u&&("Property"===t.type||"TSDeclareMethod"===t.type||"TSAbstractMethodDefinition"===t.type)&&"Identifier"===u.type&&t.key===u&&":"!==nr(n,u,Br)||!(!u||!t||"Decorator"!==u.type||"ClassMethod"!==t.type&&"ClassProperty"!==t.type&&"PropertyDefinition"!==t.type&&"TSAbstractClassProperty"!==t.type&&"TSAbstractMethodDefinition"!==t.type&&"TSDeclareMethod"!==t.type&&"MethodDefinition"!==t.type))&&(ir(u,e),!0)}function Or({comment:e,precedingNode:u,enclosingNode:t,text:n}){return"("===nr(n,e,Br)&&(!(!u||!t||"FunctionDeclaration"!==t.type&&"FunctionExpression"!==t.type&&"ClassMethod"!==t.type&&"MethodDefinition"!==t.type&&"ObjectMethod"!==t.type)&&(ir(u,e),!0))}function Rr({comment:e,enclosingNode:u,text:t}){if(!u||"ArrowFunctionExpression"!==u.type)return!1;const n=ar(t,e,Br);return!1!==n&&"=>"===t.slice(n,n+2)&&(sr(u,e),!0)}function qr({comment:e,enclosingNode:u,text:t}){return")"===nr(t,e,Br)&&(u&&(eo(u)&&0===lr(u).length||Cr(u)&&0===Ar(u).length)?(sr(u,e),!0):!(!u||"MethodDefinition"!==u.type&&"TSAbstractMethodDefinition"!==u.type||0!==lr(u.value).length)&&(sr(u.value,e),!0))}function jr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n,text:r}){if(u&&"FunctionTypeParam"===u.type&&t&&"FunctionTypeAnnotation"===t.type&&n&&"FunctionTypeParam"!==n.type)return ir(u,e),!0;if(u&&("Identifier"===u.type||"AssignmentPattern"===u.type)&&t&&eo(t)&&")"===nr(r,e,Br))return ir(u,e),!0;if(t&&"FunctionDeclaration"===t.type&&n&&"BlockStatement"===n.type){const u=(()=>{const e=lr(t);if(e.length>0)return tr(r,Br(er(e)));const u=tr(r,Br(t.id));return!1!==u&&tr(r,u+1)})();if(yr(e)>u)return kr(n,e),!0}return!1}function Vr({comment:e,enclosingNode:u}){return!(!u||"ImportSpecifier"!==u.type)&&(or(u,e),!0)}function Mr({comment:e,enclosingNode:u}){return!(!u||"LabeledStatement"!==u.type)&&(or(u,e),!0)}function $r({comment:e,enclosingNode:u}){return!(!u||"ContinueStatement"!==u.type&&"BreakStatement"!==u.type||u.label)&&(ir(u,e),!0)}function Ur({comment:e,precedingNode:u,enclosingNode:t}){return!!(gr(t)&&u&&t.callee===u&&t.arguments.length>0)&&(or(t.arguments[0],e),!0)}function Gr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n}){return!t||"UnionTypeAnnotation"!==t.type&&"TSUnionType"!==t.type?(n&&("UnionTypeAnnotation"===n.type||"TSUnionType"===n.type)&&pr(e)&&(n.types[0].prettierIgnore=!0,e.unignore=!0),!1):(pr(e)&&(n.prettierIgnore=!0,e.unignore=!0),!!u&&(ir(u,e),!0))}function _r({comment:e,enclosingNode:u}){return!!hr(u)&&(or(u,e),!0)}function Xr({comment:e,enclosingNode:u,followingNode:t,ast:n,isLastComment:r}){return n&&n.body&&0===n.body.length?(r?sr(n,e):or(n,e),!0):u&&"Program"===u.type&&0===u.body.length&&!Dr(u.directives)?(r?sr(u,e):or(u,e),!0):!(!t||"Program"!==t.type||0!==t.body.length||!u||"ModuleExpression"!==u.type)&&(sr(t,e),!0)}function Hr({comment:e,enclosingNode:u}){return!(!u||"ForInStatement"!==u.type&&"ForOfStatement"!==u.type)&&(or(u,e),!0)}function zr({comment:e,precedingNode:u,enclosingNode:t,text:n}){return!!(u&&"ImportSpecifier"===u.type&&t&&"ImportDeclaration"===t.type&&ur(n,Br(e)))&&(ir(u,e),!0)}function Jr({comment:e,enclosingNode:u}){return!(!u||"AssignmentPattern"!==u.type)&&(or(u,e),!0)}function Wr({comment:e,enclosingNode:u}){return!(!u||"TypeAlias"!==u.type)&&(or(u,e),!0)}function Yr({comment:e,enclosingNode:u,followingNode:t}){return!(!u||"VariableDeclarator"!==u.type&&"AssignmentExpression"!==u.type||!t||"ObjectExpression"!==t.type&&"ArrayExpression"!==t.type&&"TemplateLiteral"!==t.type&&"TaggedTemplateExpression"!==t.type&&!cr(e))&&(or(t,e),!0)}function Kr({comment:e,enclosingNode:u,followingNode:t,text:n}){return!(t||!u||"TSMethodSignature"!==u.type&&"TSDeclareFunction"!==u.type&&"TSAbstractMethodDefinition"!==u.type||";"!==nr(n,e,Br))&&(ir(u,e),!0)}function Zr({comment:e,enclosingNode:u,followingNode:t}){if(pr(e)&&u&&"TSMappedType"===u.type&&t&&"TSTypeParameter"===t.type&&t.constraint)return u.prettierIgnore=!0,e.unignore=!0,!0}function Qr({comment:e,precedingNode:u,enclosingNode:t,followingNode:n}){return!(!t||"TSMappedType"!==t.type)&&(n&&"TSTypeParameter"===n.type&&n.name?(or(n.name,e),!0):!(!u||"TSTypeParameter"!==u.type||!u.constraint)&&(ir(u.constraint,e),!0))}function eo(e){return"ArrowFunctionExpression"===e.type||"FunctionExpression"===e.type||"FunctionDeclaration"===e.type||"ObjectMethod"===e.type||"ClassMethod"===e.type||"TSDeclareFunction"===e.type||"TSCallSignatureDeclaration"===e.type||"TSConstructSignatureDeclaration"===e.type||"TSMethodSignature"===e.type||"TSConstructorType"===e.type||"TSFunctionType"===e.type||"TSDeclareMethod"===e.type}function uo(e){return cr(e)&&"*"===e.value[0]&&/@type\b/.test(e.value)}var to={handleOwnLineComment:function(e){return[Zr,jr,Sr,xr,vr,wr,Ir,Vr,Hr,Gr,Xr,zr,Jr,Lr,Mr].some((u=>u(e)))},handleEndOfLineComment:function(e){return[Pr,jr,Tr,Vr,xr,vr,wr,Ir,Mr,Ur,_r,Xr,Wr,Yr].some((u=>u(e)))},handleRemainingComment:function(e){return[Zr,xr,vr,Nr,qr,Lr,Xr,Rr,Or,Qr,$r,Kr].some((u=>u(e)))},isTypeCastComment:uo,getCommentChildNodes:function(e,u){if(("typescript"===u.parser||"flow"===u.parser||"espree"===u.parser||"meriyah"===u.parser||"__babel_estree"===u.parser)&&"MethodDefinition"===e.type&&e.value&&"FunctionExpression"===e.value.type&&0===lr(e.value).length&&!e.value.returnType&&!Dr(e.value.typeParameters)&&e.value.body)return[...e.decorators||[],e.key,e.value.body]},willPrintOwnComments:function(e){const u=e.getValue(),t=e.getParentNode();return(u&&(fr(u)||dr(u)||gr(t)&&(Fr(u.leadingComments)||Fr(u.trailingComments)))||t&&("JSXSpreadAttribute"===t.type||"JSXSpreadChild"===t.type||"UnionTypeAnnotation"===t.type||"TSUnionType"===t.type||("ClassDeclaration"===t.type||"ClassExpression"===t.type)&&t.superClass===u))&&(!Er(e)||"UnionTypeAnnotation"===t.type||"TSUnionType"===t.type)}};const{getLast:no,getNextNonSpaceNonCommentCharacter:ro}=Kt,{locStart:oo,locEnd:io}=tn,{isTypeCastComment:so}=to;function ao(e){return"CallExpression"===e.type?(e.type="OptionalCallExpression",e.callee=ao(e.callee)):"MemberExpression"===e.type?(e.type="OptionalMemberExpression",e.object=ao(e.object)):"TSNonNullExpression"===e.type&&(e.expression=ao(e.expression)),e}function Do(e,u){let t;if(Array.isArray(e))t=e.entries();else{if(!e||"object"!=typeof e||"string"!=typeof e.type)return e;t=Object.entries(e)}for(const[n,r]of t)e[n]=Do(r,u);return Array.isArray(e)?e:u(e)||e}function co(e){return"LogicalExpression"===e.type&&"LogicalExpression"===e.right.type&&e.operator===e.right.operator}function lo(e){return co(e)?lo({type:"LogicalExpression",operator:e.operator,left:lo({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[oo(e.left),io(e.right.left)]}),right:e.right.right,range:[oo(e),io(e)]}):e}var po,fo=function(u,t){if("typescript"===t.parser&&t.originalText.includes("@")){const{esTreeNodeToTSNodeMap:n,tsNodeToESTreeNodeMap:r}=t.tsParseResult;u=Do(u,(u=>{const t=n.get(u);if(!t)return;const o=t.decorators;if(!Array.isArray(o))return;const i=r.get(t);if(i!==u)return;const s=i.decorators;if(!Array.isArray(s)||s.length!==o.length||o.some((e=>{const u=r.get(e);return!u||!s.includes(u)}))){const{start:u,end:t}=i.loc;throw e("Leading decorators must be attached to a class declaration",{start:{line:u.line,column:u.column+1},end:{line:t.line,column:t.column+1}})}}))}if("typescript"!==t.parser&&"flow"!==t.parser&&"espree"!==t.parser&&"meriyah"!==t.parser){const e=new Set;u=Do(u,(u=>{u.leadingComments&&u.leadingComments.some(so)&&e.add(oo(u))})),u=Do(u,(u=>{if("ParenthesizedExpression"===u.type){const{expression:t}=u;if("TypeCastExpression"===t.type)return t.range=u.range,t;const n=oo(u);if(!e.has(n))return t.extra=Object.assign(Object.assign({},t.extra),{},{parenthesized:!0}),t}}))}return u=Do(u,(e=>{switch(e.type){case"ChainExpression":return ao(e.expression);case"LogicalExpression":if(co(e))return lo(e);break;case"VariableDeclaration":{const u=no(e.declarations);u&&u.init&&function(e,u){if(";"===t.originalText[io(u)])return;e.range=[oo(e),io(u)]}(e,u);break}case"TSParenthesizedType":return e.typeAnnotation.range=[oo(e),io(e)],e.typeAnnotation;case"TSTypeParameter":if("string"==typeof e.name){const u=oo(e);e.name={type:"Identifier",name:e.name,range:[u,u+e.name.length]}}break;case"SequenceExpression":{const u=no(e.expressions);e.range=[oo(e),Math.min(io(u),io(e))];break}case"ClassProperty":e.key&&"TSPrivateIdentifier"===e.key.type&&"?"===ro(t.originalText,e.key,io)&&(e.optional=!0)}}))};function Fo(){if(void 0===po){var e=new ArrayBuffer(2),u=new Uint8Array(e),t=new Uint16Array(e);if(u[0]=1,u[1]=2,258===t[0])po="BE";else{if(513!==t[0])throw new Error("unable to figure out endianess");po="LE"}}return po}function Eo(){return void 0!==Ou.location?Ou.location.hostname:""}function Co(){return[]}function Ao(){return 0}function go(){return Number.MAX_VALUE}function mo(){return Number.MAX_VALUE}function ho(){return[]}function yo(){return"Browser"}function Bo(){return void 0!==Ou.navigator?Ou.navigator.appVersion:""}function ko(){}function bo(){}function Po(){return"javascript"}function xo(){return"browser"}function vo(){return"/tmp"}var wo=vo,So={EOL:"\n",arch:Po,platform:xo,tmpdir:wo,tmpDir:vo,networkInterfaces:ko,getNetworkInterfaces:bo,release:Bo,type:yo,cpus:ho,totalmem:mo,freemem:go,uptime:Ao,loadavg:Co,hostname:Eo,endianness:Fo},To=Object.freeze({__proto__:null,endianness:Fo,hostname:Eo,loadavg:Co,uptime:Ao,freemem:go,totalmem:mo,cpus:ho,type:yo,release:Bo,networkInterfaces:ko,getNetworkInterfaces:bo,arch:Po,platform:xo,tmpDir:vo,tmpdir:wo,EOL:"\n",default:So});const No=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");const u=e.match(/(?:\r?\n)/g)||[];if(0===u.length)return;const t=u.filter((e=>"\r\n"===e)).length;return t>u.length-t?"\r\n":"\n"};var Io=No;Io.graceful=e=>"string"==typeof e&&No(e)||"\n";var Lo=f(To),Oo=function(e){const u=e.match(_o);return u?u[0].trimLeft():""},Ro=function(e){const u=e.match(_o);return u&&u[0]?e.substring(u[0].length):e},qo=function(e){return Ko(e).pragmas},jo=Ko,Vo=function({comments:e="",pragmas:u={}}){const t=(0,$o().default)(e)||Mo().EOL,n=" *",r=Object.keys(u),o=r.map((e=>Zo(e,u[e]))).reduce(((e,u)=>e.concat(u)),[]).map((e=>" * "+e+t)).join("");if(!e){if(0===r.length)return"";if(1===r.length&&!Array.isArray(u[r[0]])){const e=u[r[0]];return`/** ${Zo(r[0],e)[0]} */`}}const i=e.split(t).map((e=>` * ${e}`)).join(t)+t;return"/**"+t+(e?i:"")+(e&&r.length?n+t:"")+o+" */"};function Mo(){const e=Lo;return Mo=function(){return e},e}function $o(){const e=(u=Io)&&u.__esModule?u:{default:u};var u;return $o=function(){return e},e}const Uo=/\*\/$/,Go=/^\/\*\*/,_o=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Xo=/(^|\s+)\/\/([^\r\n]*)/g,Ho=/^(\r?\n)+/,zo=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Jo=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,Wo=/(\r?\n|^) *\* ?/g,Yo=[];function Ko(e){const u=(0,$o().default)(e)||Mo().EOL;e=e.replace(Go,"").replace(Uo,"").replace(Wo,"$1");let t="";for(;t!==e;)t=e,e=e.replace(zo,`${u}$1 $2${u}`);e=e.replace(Ho,"").trimRight();const n=Object.create(null),r=e.replace(Jo,"").replace(Ho,"").trimRight();let o;for(;o=Jo.exec(e);){const e=o[2].replace(Xo,"");"string"==typeof n[o[1]]||Array.isArray(n[o[1]])?n[o[1]]=Yo.concat(n[o[1]],e):n[o[1]]=e}return{comments:r,pragmas:n}}function Zo(e,u){return Yo.concat(u).map((u=>`@${e} ${u}`.trim()))}var Qo=Object.defineProperty({extract:Oo,strip:Ro,parse:qo,parseWithComments:jo,print:Vo},"__esModule",{value:!0});var ei={guessEndOfLine:function(e){const u=e.indexOf("\r");return u>=0?"\n"===e.charAt(u+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(e,u){let t;if("\n"===u)t=/\n/g;else if("\r"===u)t=/\r/g;else{if("\r\n"!==u)throw new Error(`Unexpected "eol" ${JSON.stringify(u)}.`);t=/\r\n/g}const n=e.match(t);return n?n.length:0},normalizeEndOfLine:function(e){return e.replace(/\r\n?/g,"\n")}};const{parseWithComments:ui,strip:ti,extract:ni,print:ri}=Qo,{getShebang:oi}=Kt,{normalizeEndOfLine:ii}=ei;function si(e){const u=oi(e);u&&(e=e.slice(u.length+1));const t=ni(e),{pragmas:n,comments:r}=ui(t);return{shebang:u,text:e,pragmas:n,comments:r}}var ai={hasPragma:function(e){const u=Object.keys(si(e).pragmas);return u.includes("prettier")||u.includes("format")},insertPragma:function(e){const{shebang:u,text:t,pragmas:n,comments:r}=si(e),o=ti(t),i=ri({pragmas:Object.assign({format:""},n),comments:r.trimStart()});return(u?`${u}\n`:"")+ii(i)+(o.startsWith("\n")?"\n":"\n\n")+o}};const{hasPragma:Di}=ai,{locStart:ci,locEnd:li}=tn;var pi=function(e){return e="function"==typeof e?{parse:e}:e,Object.assign({astFormat:"estree",hasPragma:Di,locStart:ci,locEnd:li},e)};const fi={0:"Unexpected token",28:"Unexpected token: '%0'",1:"Octal escape sequences are not allowed in strict mode",2:"Octal escape sequences are not allowed in template strings",3:"Unexpected token `#`",4:"Illegal Unicode escape sequence",5:"Invalid code point %0",6:"Invalid hexadecimal escape sequence",8:"Octal literals are not allowed in strict mode",7:"Decimal integer literals with a leading zero are forbidden in strict mode",9:"Expected number in radix %0",145:"Invalid left-hand side assignment to a destructible right-hand side",10:"Non-number found after exponent indicator",11:"Invalid BigIntLiteral",12:"No identifiers allowed directly after numeric literal",13:"Escapes \\8 or \\9 are not syntactically valid escapes",14:"Unterminated string literal",15:"Unterminated template literal",16:"Multiline comment was not closed properly",17:"The identifier contained dynamic unicode escape that was not closed",18:"Illegal character '%0'",19:"Missing hexadecimal digits",20:"Invalid implicit octal",21:"Invalid line break in string literal",22:"Only unicode escapes are legal in identifier names",23:"Expected '%0'",24:"Invalid left-hand side in assignment",25:"Invalid left-hand side in async arrow",26:'Calls to super must be in the "constructor" method of a class expression or class declaration that has a superclass',27:"Member access on super must be in a method",29:"Await expression not allowed in formal parameter",30:"Yield expression not allowed in formal parameter",92:"Unexpected token: 'escaped keyword'",31:"Unary expressions as the left operand of an exponentiation expression must be disambiguated with parentheses",119:"Async functions can only be declared at the top level or inside a block",32:"Unterminated regular expression",33:"Unexpected regular expression flag",34:"Duplicate regular expression flag '%0'",35:"%0 functions must have exactly %1 argument%2",36:"Setter function argument must not be a rest parameter",37:"%0 declaration must have a name in this context",38:"Function name may not contain any reserved words or be eval or arguments in strict mode",39:"The rest operator is missing an argument",40:"A getter cannot be a generator",41:"A computed property name must be followed by a colon or paren",130:"Object literal keys that are strings or numbers must be a method or have a colon",43:"Found `* async x(){}` but this should be `async * x(){}`",42:"Getters and setters can not be generators",44:"'%0' can not be generator method",45:"No line break is allowed after '=>'",46:"The left-hand side of the arrow can only be destructed through assignment",47:"The binding declaration is not destructible",48:"Async arrow can not be followed by new expression",49:"Classes may not have a static property named 'prototype'",50:"Class constructor may not be a %0",51:"Duplicate constructor method in class",52:"Invalid increment/decrement operand",53:"Invalid use of `new` keyword on an increment/decrement expression",54:"`=>` is an invalid assignment target",55:"Rest element may not have a trailing comma",56:"Missing initializer in %0 declaration",57:"'for-%0' loop head declarations can not have an initializer",58:"Invalid left-hand side in for-%0 loop: Must have a single binding",59:"Invalid shorthand property initializer",60:"Property name __proto__ appears more than once in object literal",61:"Let is disallowed as a lexically bound name",62:"Invalid use of '%0' inside new expression",63:"Illegal 'use strict' directive in function with non-simple parameter list",64:'Identifier "let" disallowed as left-hand side expression in strict mode',65:"Illegal continue statement",66:"Illegal break statement",67:"Cannot have `let[...]` as a var name in strict mode",68:"Invalid destructuring assignment target",69:"Rest parameter may not have a default initializer",70:"The rest argument must the be last parameter",71:"Invalid rest argument",73:"In strict mode code, functions can only be declared at top level or inside a block",74:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement",75:"Without web compatibility enabled functions can not be declared at top level, inside a block, or as the body of an if statement",76:"Class declaration can't appear in single-statement context",77:"Invalid left-hand side in for-%0",78:"Invalid assignment in for-%0",79:"for await (... of ...) is only valid in async functions and async generators",80:"The first token after the template expression should be a continuation of the template",82:"`let` declaration not allowed here and `let` cannot be a regular var name in strict mode",81:"`let \n [` is a restricted production at the start of a statement",83:"Catch clause requires exactly one parameter, not more (and no trailing comma)",84:"Catch clause parameter does not support default values",85:"Missing catch or finally after try",86:"More than one default clause in switch statement",87:"Illegal newline after throw",88:"Strict mode code may not include a with statement",89:"Illegal return statement",90:"The left hand side of the for-header binding declaration is not destructible",91:"new.target only allowed within functions",92:"'Unexpected token: 'escaped keyword'",93:"'#' not followed by identifier",99:"Invalid keyword",98:"Can not use 'let' as a class name",97:"'A lexical declaration can't define a 'let' binding",96:"Can not use `let` as variable name in strict mode",94:"'%0' may not be used as an identifier in this context",95:"Await is only valid in async functions",100:"The %0 keyword can only be used with the module goal",101:"Unicode codepoint must not be greater than 0x10FFFF",102:"%0 source must be string",103:"Only a identifier can be used to indicate alias",104:"Only '*' or '{...}' can be imported after default",105:"Trailing decorator may be followed by method",106:"Decorators can't be used with a constructor",107:"'%0' may not be used as an identifier in this context",108:"HTML comments are only allowed with web compatibility (Annex B)",109:"The identifier 'let' must not be in expression position in strict mode",110:"Cannot assign to `eval` and `arguments` in strict mode",111:"The left-hand side of a for-of loop may not start with 'let'",112:"Block body arrows can not be immediately invoked without a group",113:"Block body arrows can not be immediately accessed without a group",114:"Unexpected strict mode reserved word",115:"Unexpected eval or arguments in strict mode",116:"Decorators must not be followed by a semicolon",117:"Calling delete on expression not allowed in strict mode",118:"Pattern can not have a tail",120:"Can not have a `yield` expression on the left side of a ternary",121:"An arrow function can not have a postfix update operator",122:"Invalid object literal key character after generator star",123:"Private fields can not be deleted",125:"Classes may not have a field called constructor",124:"Classes may not have a private element named constructor",126:"A class field initializer may not contain arguments",127:"Generators can only be declared at the top level or inside a block",128:"Async methods are a restricted production and cannot have a newline following it",129:"Unexpected character after object literal property name",131:"Invalid key token",132:"Label '%0' has already been declared",133:"continue statement must be nested within an iteration statement",134:"Undefined label '%0'",135:"Trailing comma is disallowed inside import(...) arguments",136:"import() requires exactly one argument",137:"Cannot use new with import(...)",138:"... is not allowed in import()",139:"Expected '=>'",140:"Duplicate binding '%0'",141:"Cannot export a duplicate name '%0'",144:"Duplicate %0 for-binding",142:"Exported binding '%0' needs to refer to a top-level declared variable",143:"Unexpected private field",147:"Numeric separators are not allowed at the end of numeric literals",146:"Only one underscore is allowed as numeric separator",148:"JSX value should be either an expression or a quoted JSX text",149:"Expected corresponding JSX closing tag for %0",150:"Adjacent JSX elements must be wrapped in an enclosing tag",151:"JSX attributes must only be assigned a non-empty 'expression'",152:"'%0' has already been declared",153:"'%0' shadowed a catch clause binding",154:"Dot property must be an identifier",155:"Encountered invalid input after spread/rest argument",156:"Catch without try",157:"Finally without try",158:"Expected corresponding closing tag for JSX fragment",159:"Coalescing and logical operators used together in the same expression must be disambiguated with parentheses",160:"Invalid tagged template on optional chain",161:"Invalid optional chain from super property",162:"Invalid optional chain from new expression",163:'Cannot use "import.meta" outside a module',164:"Leading decorators must be attached to a class declaration"};class di extends SyntaxError{constructor(e,u,t,n,...r){const o="["+u+":"+t+"]: "+fi[n].replace(/%(\d+)/g,((e,u)=>r[u]));super(`${o}`),this.index=e,this.line=u,this.column=t,this.description=o,this.loc={line:u,column:t}}}function Fi(e,u,...t){throw new di(e.index,e.line,e.column,u,...t)}function Ei(e){throw new di(e.index,e.line,e.column,e.type,e.params)}function Ci(e,u,t,n,...r){throw new di(e,u,t,n,...r)}function Ai(e,u,t,n){throw new di(e,u,t,n)}const gi=((e,u)=>{const t=new Uint32Array(104448);let n=0,r=0;for(;n<3540;){const o=e[n++];if(o<0)r-=o;else{let i=e[n++];2&o&&(i=u[i]),1&o?t.fill(i,r,r+=e[n++]):t[r++]=i}}return t})([-1,2,24,2,25,2,5,-1,0,77595648,3,44,2,3,0,14,2,57,2,58,3,0,3,0,3168796671,0,4294956992,2,1,2,0,2,59,3,0,4,0,4294966523,3,0,4,2,16,2,60,2,0,0,4294836735,0,3221225471,0,4294901942,2,61,0,134152192,3,0,2,0,4294951935,3,0,2,0,2683305983,0,2684354047,2,17,2,0,0,4294961151,3,0,2,2,19,2,0,0,608174079,2,0,2,131,2,6,2,56,-1,2,37,0,4294443263,2,1,3,0,3,0,4294901711,2,39,0,4089839103,0,2961209759,0,1342439375,0,4294543342,0,3547201023,0,1577204103,0,4194240,0,4294688750,2,2,0,80831,0,4261478351,0,4294549486,2,2,0,2967484831,0,196559,0,3594373100,0,3288319768,0,8469959,2,194,2,3,0,3825204735,0,123747807,0,65487,0,4294828015,0,4092591615,0,1080049119,0,458703,2,3,2,0,0,2163244511,0,4227923919,0,4236247022,2,66,0,4284449919,0,851904,2,4,2,11,0,67076095,-1,2,67,0,1073741743,0,4093591391,-1,0,50331649,0,3265266687,2,32,0,4294844415,0,4278190047,2,18,2,129,-1,3,0,2,2,21,2,0,2,9,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,10,0,261632,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,2088959,2,27,2,8,0,909311,3,0,2,0,814743551,2,41,0,67057664,3,0,2,2,40,2,0,2,28,2,0,2,29,2,7,0,268374015,2,26,2,49,2,0,2,76,0,134153215,-1,2,6,2,0,2,7,0,2684354559,0,67044351,0,3221160064,0,1,-1,3,0,2,2,42,0,1046528,3,0,3,2,8,2,0,2,51,0,4294960127,2,9,2,38,2,10,0,4294377472,2,11,3,0,7,0,4227858431,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-1,2,124,0,1048577,2,82,2,13,-1,2,13,0,131042,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,1046559,2,0,2,14,2,0,0,2147516671,2,20,3,86,2,2,0,-16,2,87,0,524222462,2,4,2,0,0,4269801471,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,2,121,2,0,0,3220242431,3,0,3,2,19,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,2,0,0,4351,2,0,2,8,3,0,2,0,67043391,0,3909091327,2,0,2,22,2,8,2,18,3,0,2,0,67076097,2,7,2,0,2,20,0,67059711,0,4236247039,3,0,2,0,939524103,0,8191999,2,97,2,98,2,15,2,21,3,0,3,0,67057663,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,3774349439,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,2,23,0,1638399,2,172,2,105,3,0,3,2,18,2,24,2,25,2,5,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-3,2,150,-4,2,18,2,0,2,35,0,1,2,0,2,62,2,28,2,11,2,9,2,0,2,110,-1,3,0,4,2,9,2,21,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277137519,0,2269118463,-1,3,18,2,-1,2,32,2,36,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,46,-10,2,0,0,203775,-2,2,18,2,43,2,35,-2,2,17,2,117,2,20,3,0,2,2,36,0,2147549120,2,0,2,11,2,17,2,135,2,0,2,37,2,52,0,5242879,3,0,2,0,402644511,-1,2,120,0,1090519039,-2,2,122,2,38,2,0,0,67045375,2,39,0,4226678271,0,3766565279,0,2039759,-4,3,0,2,0,3288270847,0,3,3,0,2,0,67043519,-5,2,0,0,4282384383,0,1056964609,-1,3,0,2,0,67043345,-1,2,0,2,40,2,41,-1,2,10,2,42,-6,2,0,2,11,-3,3,0,2,0,2147484671,2,125,0,4190109695,2,50,-2,2,126,0,4244635647,0,27,2,0,2,7,2,43,2,0,2,63,-1,2,0,2,40,-8,2,54,2,44,0,67043329,2,127,2,45,0,8388351,-2,2,128,0,3028287487,2,46,2,130,0,33259519,2,41,-9,2,20,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,2,41,-2,2,17,2,49,2,0,2,20,2,50,2,132,2,23,-21,3,0,2,-4,3,0,2,0,4294936575,2,0,0,4294934783,-2,0,196635,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,0,1677656575,-166,0,4161266656,0,4071,0,15360,-4,0,28,-13,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,0,4294954999,2,0,-16,2,0,2,88,2,0,0,2105343,0,4160749584,0,65534,-42,0,4194303871,0,2011,-6,2,0,0,1073684479,0,17407,-11,2,0,2,31,-40,3,0,6,0,8323103,-1,3,0,2,2,42,-37,2,55,2,144,2,145,2,146,2,147,2,148,-105,2,24,-32,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-22381,3,0,7,2,23,-6130,3,5,2,-1,0,69207040,3,44,2,3,0,14,2,57,2,58,-3,0,3168731136,0,4294956864,2,1,2,0,2,59,3,0,4,0,4294966275,3,0,4,2,16,2,60,2,0,2,33,-1,2,17,2,61,-1,2,0,2,56,0,4294885376,3,0,2,0,3145727,0,2617294944,0,4294770688,2,23,2,62,3,0,2,0,131135,2,95,0,70256639,0,71303167,0,272,2,40,2,56,-1,2,37,2,30,-1,2,96,2,63,0,4278255616,0,4294836227,0,4294549473,0,600178175,0,2952806400,0,268632067,0,4294543328,0,57540095,0,1577058304,0,1835008,0,4294688736,2,65,2,64,0,33554435,2,123,2,65,2,151,0,131075,0,3594373096,0,67094296,2,64,-1,0,4294828e3,0,603979263,2,160,0,3,0,4294828001,0,602930687,2,183,0,393219,0,4294828016,0,671088639,0,2154840064,0,4227858435,0,4236247008,2,66,2,36,-1,2,4,0,917503,2,36,-1,2,67,0,537788335,0,4026531935,-1,0,1,-1,2,32,2,68,0,7936,-3,2,0,0,2147485695,0,1010761728,0,4292984930,0,16387,2,0,2,14,2,15,3,0,10,2,69,2,0,2,70,2,71,2,72,2,0,2,73,2,0,2,11,-1,2,23,3,0,2,2,12,2,4,3,0,18,2,74,2,5,3,0,2,2,75,0,253951,3,19,2,0,122879,2,0,2,8,0,276824064,-2,3,0,2,2,40,2,0,0,4294903295,2,0,2,29,2,7,-1,2,17,2,49,2,0,2,76,2,41,-1,2,20,2,0,2,27,-2,0,128,-2,2,77,2,8,0,4064,-1,2,119,0,4227907585,2,0,2,118,2,0,2,48,2,173,2,9,2,38,2,10,-1,0,74440192,3,0,6,-2,3,0,8,2,12,2,0,2,78,2,9,2,0,2,79,2,80,2,81,-3,2,82,2,13,-3,2,83,2,84,2,85,2,0,2,33,-83,2,0,2,53,2,7,3,0,4,0,817183,2,0,2,14,2,0,0,33023,2,20,3,86,2,-17,2,87,0,524157950,2,4,2,0,2,88,2,4,2,0,2,15,2,77,2,16,3,0,2,2,47,2,0,-1,2,17,-16,3,0,206,-2,3,0,655,2,18,3,0,36,2,68,-1,2,17,2,9,3,0,8,2,89,0,3072,2,0,0,2147516415,2,9,3,0,2,2,23,2,90,2,91,3,0,2,2,92,2,0,2,93,2,94,0,4294965179,0,7,2,0,2,8,2,91,2,8,-1,0,1761345536,2,95,0,4294901823,2,36,2,18,2,96,2,34,2,166,0,2080440287,2,0,2,33,2,143,0,3296722943,2,0,0,1046675455,0,939524101,0,1837055,2,97,2,98,2,15,2,21,3,0,3,0,7,3,0,349,2,99,2,100,2,6,-264,3,0,11,2,22,3,0,2,2,31,-1,0,2700607615,2,101,2,102,3,0,2,2,19,2,103,3,0,10,2,9,2,17,2,0,2,45,2,0,2,30,2,104,-3,2,105,3,0,3,2,18,-1,3,5,2,2,26,2,0,2,7,2,106,-1,2,107,2,108,2,109,-1,3,0,3,2,11,-2,2,0,2,27,-8,2,18,2,0,2,35,-1,2,0,2,62,2,28,2,29,2,9,2,0,2,110,-1,3,0,4,2,9,2,17,2,111,2,6,2,0,2,112,2,0,2,48,-4,3,0,9,2,20,2,29,2,30,-4,2,113,2,114,2,29,2,20,2,7,-2,2,115,2,29,2,31,-2,2,0,2,116,-2,0,4277075969,2,29,-1,3,18,2,-1,2,32,2,117,2,0,3,29,2,2,34,2,19,-3,3,0,2,2,33,-1,2,0,2,34,2,0,2,34,2,0,2,48,-10,2,0,0,197631,-2,2,18,2,43,2,118,-2,2,17,2,117,2,20,2,119,2,51,-2,2,119,2,23,2,17,2,33,2,119,2,36,0,4294901904,0,4718591,2,119,2,34,0,335544350,-1,2,120,2,121,-2,2,122,2,38,2,7,-1,2,123,2,65,0,3758161920,0,3,-4,2,0,2,27,0,2147485568,0,3,2,0,2,23,0,176,-5,2,0,2,47,2,186,-1,2,0,2,23,2,197,-1,2,0,0,16779263,-2,2,11,-7,2,0,2,121,-3,3,0,2,2,124,2,125,0,2147549183,0,2,-2,2,126,2,35,0,10,0,4294965249,0,67633151,0,4026597376,2,0,0,536871935,-1,2,0,2,40,-8,2,54,2,47,0,1,2,127,2,23,-3,2,128,2,35,2,129,2,130,0,16778239,-10,2,34,-5,2,64,-2,3,0,28,2,31,-3,3,0,3,2,47,3,0,6,2,48,-85,3,0,33,2,47,-126,3,0,18,2,36,-269,3,0,17,2,40,2,7,-3,2,17,2,131,2,0,2,23,2,48,2,132,2,23,-21,3,0,2,-4,3,0,2,0,67583,-1,2,103,-2,0,11,3,0,191,2,51,3,0,38,2,29,-1,2,33,-279,3,0,8,2,7,-1,2,133,2,52,3,0,11,2,6,-72,3,0,3,2,134,2,135,-187,3,0,2,2,37,2,0,2,136,2,137,2,55,2,0,2,138,2,139,2,140,3,0,10,2,141,2,142,2,15,3,37,2,3,53,2,3,54,2,2,143,-73,2,0,0,1065361407,0,16384,-11,2,0,2,121,-40,3,0,6,2,117,-1,3,0,2,0,2063,-37,2,55,2,144,2,145,2,146,2,147,2,148,-138,3,0,1334,2,9,-1,3,0,129,2,27,3,0,6,2,9,3,0,180,2,149,3,0,233,0,1,-96,3,0,16,2,9,-47,3,0,154,2,56,-28517,2,0,0,1,-1,2,124,2,0,0,8193,-21,2,193,0,10255,0,4,-11,2,64,2,171,-1,0,71680,-1,2,161,0,4292900864,0,805306431,-5,2,150,-1,2,157,-1,0,6144,-2,2,127,-1,2,154,-1,0,2147532800,2,151,2,165,2,0,2,164,0,524032,0,4,-4,2,190,0,205128192,0,1333757536,0,2147483696,0,423953,0,747766272,0,2717763192,0,4286578751,0,278545,2,152,0,4294886464,0,33292336,0,417809,2,152,0,1327482464,0,4278190128,0,700594195,0,1006647527,0,4286497336,0,4160749631,2,153,0,469762560,0,4171219488,0,8323120,2,153,0,202375680,0,3214918176,0,4294508592,2,153,-1,0,983584,0,48,0,58720273,0,3489923072,0,10517376,0,4293066815,0,1,0,2013265920,2,177,2,0,0,2089,0,3221225552,0,201375904,2,0,-2,0,256,0,122880,0,16777216,2,150,0,4160757760,2,0,-6,2,167,-11,0,3263218176,-1,0,49664,0,2160197632,0,8388802,-1,0,12713984,-1,2,154,2,159,2,178,-2,2,162,-20,0,3758096385,-2,2,155,0,4292878336,2,90,2,169,0,4294057984,-2,2,163,2,156,2,175,-2,2,155,-1,2,182,-1,2,170,2,124,0,4026593280,0,14,0,4292919296,-1,2,158,0,939588608,-1,0,805306368,-1,2,124,0,1610612736,2,156,2,157,2,4,2,0,-2,2,158,2,159,-3,0,267386880,-1,2,160,0,7168,-1,0,65024,2,154,2,161,2,179,-7,2,168,-8,2,162,-1,0,1426112704,2,163,-1,2,164,0,271581216,0,2149777408,2,23,2,161,2,124,0,851967,2,180,-1,2,23,2,181,-4,2,158,-20,2,195,2,165,-56,0,3145728,2,185,-4,2,166,2,124,-4,0,32505856,-1,2,167,-1,0,2147385088,2,90,1,2155905152,2,-3,2,103,2,0,2,168,-2,2,169,-6,2,170,0,4026597375,0,1,-1,0,1,-1,2,171,-3,2,117,2,64,-2,2,166,-2,2,176,2,124,-878,2,159,-36,2,172,-1,2,201,-10,2,188,-5,2,174,-6,0,4294965251,2,27,-1,2,173,-1,2,174,-2,0,4227874752,-3,0,2146435072,2,159,-2,0,1006649344,2,124,-1,2,90,0,201375744,-3,0,134217720,2,90,0,4286677377,0,32896,-1,2,158,-3,2,175,-349,2,176,0,1920,2,177,3,0,264,-11,2,157,-2,2,178,2,0,0,520617856,0,2692743168,0,36,-3,0,524284,-11,2,23,-1,2,187,-1,2,184,0,3221291007,2,178,-1,2,202,0,2158720,-3,2,159,0,1,-4,2,124,0,3808625411,0,3489628288,2,200,0,1207959680,0,3221274624,2,0,-3,2,179,0,120,0,7340032,-2,2,180,2,4,2,23,2,163,3,0,4,2,159,-1,2,181,2,177,-1,0,8176,2,182,2,179,2,183,-1,0,4290773232,2,0,-4,2,163,2,189,0,15728640,2,177,-1,2,161,-1,0,4294934512,3,0,4,-9,2,90,2,170,2,184,3,0,4,0,704,0,1849688064,2,185,-1,2,124,0,4294901887,2,0,0,130547712,0,1879048192,2,199,3,0,2,-1,2,186,2,187,-1,0,17829776,0,2025848832,0,4261477888,-2,2,0,-1,0,4286580608,-1,0,29360128,2,192,0,16252928,0,3791388672,2,38,3,0,2,-2,2,196,2,0,-1,2,103,-1,0,66584576,-1,2,191,3,0,9,2,124,-1,0,4294755328,3,0,2,-1,2,161,2,178,3,0,2,2,23,2,188,2,90,-2,0,245760,0,2147418112,-1,2,150,2,203,0,4227923456,-1,2,164,2,161,2,90,-3,0,4292870145,0,262144,2,124,3,0,2,0,1073758848,2,189,-1,0,4227921920,2,190,0,68289024,0,528402016,0,4292927536,3,0,4,-2,0,268435456,2,91,-2,2,191,3,0,5,-1,2,192,2,163,2,0,-2,0,4227923936,2,62,-1,2,155,2,95,2,0,2,154,2,158,3,0,6,-1,2,177,3,0,3,-2,0,2146959360,0,9440640,0,104857600,0,4227923840,3,0,2,0,768,2,193,2,77,-2,2,161,-2,2,119,-1,2,155,3,0,8,0,512,0,8388608,2,194,2,172,2,187,0,4286578944,3,0,2,0,1152,0,1266679808,2,191,0,576,0,4261707776,2,95,3,0,9,2,155,3,0,5,2,16,-1,0,2147221504,-28,2,178,3,0,3,-3,0,4292902912,-6,2,96,3,0,85,-33,0,4294934528,3,0,126,-18,2,195,3,0,269,-17,2,155,2,124,2,198,3,0,2,2,23,0,4290822144,-2,0,67174336,0,520093700,2,17,3,0,21,-2,2,179,3,0,3,-2,0,30720,-1,0,32512,3,0,2,0,4294770656,-191,2,174,-38,2,170,2,0,2,196,3,0,279,-8,2,124,2,0,0,4294508543,0,65295,-11,2,177,3,0,72,-3,0,3758159872,0,201391616,3,0,155,-7,2,170,-1,0,384,-1,0,133693440,-3,2,196,-2,2,26,3,0,4,2,169,-2,2,90,2,155,3,0,4,-2,2,164,-1,2,150,0,335552923,2,197,-1,0,538974272,0,2214592512,0,132e3,-10,0,192,-8,0,12288,-21,0,134213632,0,4294901761,3,0,42,0,100663424,0,4294965284,3,0,6,-1,0,3221282816,2,198,3,0,11,-1,2,199,3,0,40,-6,0,4286578784,2,0,-2,0,1006694400,3,0,24,2,35,-1,2,94,3,0,2,0,1,2,163,3,0,6,2,197,0,4110942569,0,1432950139,0,2701658217,0,4026532864,0,4026532881,2,0,2,45,3,0,8,-1,2,158,-2,2,169,0,98304,0,65537,2,170,-5,0,4294950912,2,0,2,118,0,65528,2,177,0,4294770176,2,26,3,0,4,-30,2,174,0,3758153728,-3,2,169,-2,2,155,2,188,2,158,-1,2,191,-1,2,161,0,4294754304,3,0,2,-3,0,33554432,-2,2,200,-3,2,169,0,4175478784,2,201,0,4286643712,0,4286644216,2,0,-4,2,202,-1,2,165,0,4227923967,3,0,32,-1334,2,163,2,0,-129,2,94,-6,2,163,-180,2,203,-233,2,4,3,0,96,-16,2,163,3,0,47,-154,2,165,3,0,22381,-7,2,17,3,0,6128],[4294967295,4294967291,4092460543,4294828031,4294967294,134217726,268435455,2147483647,1048575,1073741823,3892314111,134217727,1061158911,536805376,4294910143,4160749567,4294901759,4294901760,536870911,262143,8388607,4294902783,4294918143,65535,67043328,2281701374,4294967232,2097151,4294903807,4194303,255,67108863,4294967039,511,524287,131071,127,4292870143,4294902271,4294549487,33554431,1023,67047423,4294901888,4286578687,4294770687,67043583,32767,15,2047999,67043343,16777215,4294902e3,4294934527,4294966783,4294967279,2047,262083,20511,4290772991,41943039,493567,4294959104,603979775,65536,602799615,805044223,4294965206,8191,1031749119,4294917631,2134769663,4286578493,4282253311,4294942719,33540095,4294905855,4294967264,2868854591,1608515583,265232348,534519807,2147614720,1060109444,4093640016,17376,2139062143,224,4169138175,4294909951,4286578688,4294967292,4294965759,2044,4292870144,4294966272,4294967280,8289918,4294934399,4294901775,4294965375,1602223615,4294967259,4294443008,268369920,4292804608,486341884,4294963199,3087007615,1073692671,4128527,4279238655,4294902015,4294966591,2445279231,3670015,3238002687,31,63,4294967288,4294705151,4095,3221208447,4294549472,2147483648,4285526655,4294966527,4294705152,4294966143,64,4294966719,16383,3774873592,458752,536807423,67043839,3758096383,3959414372,3755993023,2080374783,4294835295,4294967103,4160749565,4087,184024726,2862017156,1593309078,268434431,268434414,4294901763,536870912,2952790016,202506752,139264,402653184,4261412864,4227922944,49152,61440,3758096384,117440512,65280,3233808384,3221225472,2097152,4294965248,32768,57152,67108864,4293918720,4290772992,25165824,57344,4227915776,4278190080,4227907584,65520,4026531840,4227858432,4160749568,3758129152,4294836224,63488,1073741824,4294967040,4194304,251658240,196608,4294963200,64512,417808,4227923712,12582912,50331648,65472,4294967168,4294966784,16,4294917120,2080374784,4096,65408,524288,65532]);function mi(e){return e.column++,e.currentChar=e.source.charCodeAt(++e.index)}function hi(e,u){if(55296!=(64512&u))return 0;const t=e.source.charCodeAt(e.index+1);return 56320!=(64512&t)?0:(u=e.currentChar=65536+((1023&u)<<10)+(1023&t),0==(1&gi[0+(u>>>5)]>>>u)&&Fi(e,18,ki(u)),e.index++,e.column++,1)}function yi(e,u){e.currentChar=e.source.charCodeAt(++e.index),e.flags|=1,0==(4&u)&&(e.column=0,e.line++)}function Bi(e){e.flags|=1,e.currentChar=e.source.charCodeAt(++e.index),e.column=0,e.line++}function ki(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(e>>>10)+String.fromCharCode(1023&e)}function bi(e){return e<65?e-48:e-65+10&15}const Pi=[0,0,0,0,0,0,0,0,0,0,1032,0,0,2056,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8192,0,3,0,0,8192,0,0,0,256,0,33024,0,0,242,242,114,114,114,114,114,114,594,594,0,0,16384,0,0,0,0,67,67,67,67,67,67,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,4099,0,71,71,71,71,71,71,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,16384,0,0,0,0],xi=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0],vi=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0];function wi(e){return e<=127?xi[e]:1&gi[34816+(e>>>5)]>>>e}function Si(e){return e<=127?vi[e]:1&gi[0+(e>>>5)]>>>e||8204===e||8205===e}const Ti=["SingleLine","MultiLine","HTMLOpen","HTMLClose","HashbangComment"];function Ni(e,u,t,n,r,o,i,s){return 2048&n&&Fi(e,0),Ii(e,u,t,r,o,i,s)}function Ii(e,u,t,n,r,o,i){const{index:s}=e;for(e.tokenPos=e.index,e.linePos=e.line,e.colPos=e.column;e.index=e.source.length)return Fi(e,32)}const r=e.index-1;let o=0,i=e.currentChar;const{index:s}=e;for(;Si(i);){switch(i){case 103:2&o&&Fi(e,34,"g"),o|=2;break;case 105:1&o&&Fi(e,34,"i"),o|=1;break;case 109:4&o&&Fi(e,34,"m"),o|=4;break;case 117:16&o&&Fi(e,34,"g"),o|=16;break;case 121:8&o&&Fi(e,34,"y"),o|=8;break;case 115:12&o&&Fi(e,34,"s"),o|=12;break;default:Fi(e,33)}i=mi(e)}const a=e.source.slice(s,e.index),D=e.source.slice(t,r);return e.tokenRegExp={pattern:D,flags:a},512&u&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),e.tokenValue=function(e,u,t){try{return new RegExp(u,t)}catch(u){Fi(e,32)}}(e,D,a),65540}function Ri(e,u,t){const{index:n}=e;let r="",o=mi(e),i=e.index;for(;0==(8&Pi[o]);){if(o===t)return r+=e.source.slice(i,e.index),mi(e),512&u&&(e.tokenRaw=e.source.slice(n,e.index)),e.tokenValue=r,134283267;if(8==(8&o)&&92===o){if(r+=e.source.slice(i,e.index),o=mi(e),o<127||8232===o||8233===o){const t=qi(e,u,o);t>=0?r+=ki(t):ji(e,t,0)}else r+=ki(o);i=e.index+1}e.index>=e.end&&Fi(e,14),o=mi(e)}Fi(e,14)}function qi(e,u,t){switch(t){case 98:return 8;case 102:return 12;case 114:return 13;case 110:return 10;case 116:return 9;case 118:return 11;case 13:if(e.index1114111)return-5;return e.currentChar<1||125!==e.currentChar?-4:u}{if(0==(64&Pi[u]))return-4;const t=e.source.charCodeAt(e.index+1);if(0==(64&Pi[t]))return-4;const n=e.source.charCodeAt(e.index+2);if(0==(64&Pi[n]))return-4;const r=e.source.charCodeAt(e.index+3);return 0==(64&Pi[r])?-4:(e.index+=3,e.column+=3,e.currentChar=e.source.charCodeAt(e.index),bi(u)<<12|bi(t)<<8|bi(n)<<4|bi(r))}}case 56:case 57:if(0==(256&u))return-3;default:return t}}function ji(e,u,t){switch(u){case-1:return;case-2:Fi(e,t?2:1);case-3:Fi(e,13);case-4:Fi(e,6);case-5:Fi(e,101)}}function Vi(e,u){const{index:t}=e;let n=67174409,r="",o=mi(e);for(;96!==o;){if(36===o&&123===e.source.charCodeAt(e.index+1)){mi(e),n=67174408;break}if(8==(8&o)&&92===o)if(o=mi(e),o>126)r+=ki(o);else{const t=qi(e,1024|u,o);if(t>=0)r+=ki(t);else{if(-1!==t&&65536&u){r=void 0,o=Mi(e,o),o<0&&(n=67174408);break}ji(e,t,1)}}else e.index=e.end&&Fi(e,15),o=mi(e)}return mi(e),e.tokenValue=r,e.tokenRaw=e.source.slice(t+1,e.index-(67174409===n?1:2)),n}function Mi(e,u){for(;96!==u;){switch(u){case 36:{const t=e.index+1;if(t=e.end&&Fi(e,15),u=mi(e)}return u}function $i(e,u){return e.index>=e.end&&Fi(e,0),e.index--,e.column--,Vi(e,u)}function Ui(e,u,t){let n=e.currentChar,r=0,o=9,i=64&t?0:1,s=0,a=0;if(64&t)r="."+Gi(e,n),n=e.currentChar,110===n&&Fi(e,11);else{if(48===n)if(n=mi(e),120==(32|n)){for(t=136,n=mi(e);4160&Pi[n];)95!==n?(a=1,r=16*r+bi(n),s++,n=mi(e)):(a||Fi(e,146),a=0,n=mi(e));(s<1||!a)&&Fi(e,s<1?19:147)}else if(111==(32|n)){for(t=132,n=mi(e);4128&Pi[n];)95!==n?(a=1,r=8*r+(n-48),s++,n=mi(e)):(a||Fi(e,146),a=0,n=mi(e));(s<1||!a)&&Fi(e,s<1?0:147)}else if(98==(32|n)){for(t=130,n=mi(e);4224&Pi[n];)95!==n?(a=1,r=2*r+(n-48),s++,n=mi(e)):(a||Fi(e,146),a=0,n=mi(e));(s<1||!a)&&Fi(e,s<1?0:147)}else if(32&Pi[n])for(1024&u&&Fi(e,1),t=1;16&Pi[n];){if(512&Pi[n]){t=32,i=0;break}r=8*r+(n-48),n=mi(e)}else 512&Pi[n]?(1024&u&&Fi(e,1),e.flags|=64,t=32):95===n&&Fi(e,0);if(48&t){if(i){for(;o>=0&&4112&Pi[n];)95!==n?(a=0,r=10*r+(n-48),n=mi(e),--o):(n=mi(e),(95===n||32&t)&&Ai(e.index,e.line,e.index+1,146),a=1);if(a&&Ai(e.index,e.line,e.index+1,147),o>=0&&!wi(n)&&46!==n)return e.tokenValue=r,512&u&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index)),134283266}r+=Gi(e,n),n=e.currentChar,46===n&&(95===mi(e)&&Fi(e,0),t=64,r+="."+Gi(e,e.currentChar),n=e.currentChar)}}const D=e.index;let c=0;if(110===n&&128&t)c=1,n=mi(e);else if(101==(32|n)){n=mi(e),256&Pi[n]&&(n=mi(e));const{index:u}=e;(16&Pi[n])<1&&Fi(e,10),r+=e.source.substring(D,u)+Gi(e,n),n=e.currentChar}return(e.index","(","{",".","...","}",")",";",",","[","]",":","?","'",'"',"","++","--","=","<<=",">>=",">>>=","**=","+=","-=","*=","/=","%=","^=","|=","&=","||=","&&=","??=","typeof","delete","void","!","~","+","-","in","instanceof","*","%","/","**","&&","||","===","!==","==","!=","<=",">=","<",">","<<",">>",">>>","&","|","^","var","let","const","break","case","catch","class","continue","debugger","default","do","else","export","extends","finally","for","function","if","import","new","return","super","switch","this","throw","try","while","with","implements","interface","package","private","protected","public","static","yield","as","async","await","constructor","get","set","from","of","enum","eval","arguments","escaped keyword","escaped future reserved keyword","reserved if strict","#","BigIntLiteral","??","?.","WhiteSpace","Illegal","LineTerminator","PrivateField","Template","@","target","meta","LineFeed","Escaped","JSXText"],Xi=Object.create(null,{this:{value:86113},function:{value:86106},if:{value:20571},return:{value:20574},var:{value:86090},else:{value:20565},for:{value:20569},new:{value:86109},in:{value:8738868},typeof:{value:16863277},while:{value:20580},case:{value:20558},break:{value:20557},try:{value:20579},catch:{value:20559},delete:{value:16863278},throw:{value:86114},switch:{value:86112},continue:{value:20561},default:{value:20563},instanceof:{value:8476725},do:{value:20564},void:{value:16863279},finally:{value:20568},async:{value:209007},await:{value:209008},class:{value:86096},const:{value:86092},constructor:{value:12401},debugger:{value:20562},export:{value:20566},extends:{value:20567},false:{value:86021},from:{value:12404},get:{value:12402},implements:{value:36966},import:{value:86108},interface:{value:36967},let:{value:241739},null:{value:86023},of:{value:274549},package:{value:36968},private:{value:36969},protected:{value:36970},public:{value:36971},set:{value:12403},static:{value:36972},super:{value:86111},true:{value:86022},with:{value:20581},yield:{value:241773},enum:{value:86134},eval:{value:537079927},as:{value:77934},arguments:{value:537079928},target:{value:143494},meta:{value:143495}});function Hi(e,u,t){for(;vi[mi(e)];);return e.tokenValue=e.source.slice(e.tokenPos,e.index),92!==e.currentChar&&e.currentChar<126?Xi[e.tokenValue]||208897:Ji(e,u,0,t)}function zi(e,u){const t=Yi(e);return Si(t)||Fi(e,4),e.tokenValue=ki(t),Ji(e,u,1,4&Pi[t])}function Ji(e,u,t,n){let r=e.index;for(;e.index=2&&o<=11){const n=Xi[e.tokenValue];return void 0===n?208897:t?1024&u?209008===n&&0==(4196352&u)?n:36972===n||36864==(36864&n)?122:121:1073741824&u&&0==(8192&u)&&20480==(20480&n)?n:241773===n?1073741824&u?143483:2097152&u?121:n:209007===n&&1073741824&u?143483:36864==(36864&n)||209008===n&&0==(4194304&u)?n:121:n}return 208897}function Wi(e){return wi(mi(e))||Fi(e,93),131}function Yi(e){return 117!==e.source.charCodeAt(e.index+1)&&Fi(e,4),e.currentChar=e.source.charCodeAt(e.index+=2),function(e){let u=0;const t=e.currentChar;if(123===t){const t=e.index-2;for(;64&Pi[mi(e)];)u=u<<4|bi(e.currentChar),u>1114111&&Ai(t,e.line,e.index+1,101);return 125!==e.currentChar&&Ai(t,e.line,e.index-1,6),mi(e),u}0==(64&Pi[t])&&Fi(e,6);const n=e.source.charCodeAt(e.index+1);0==(64&Pi[n])&&Fi(e,6);const r=e.source.charCodeAt(e.index+2);0==(64&Pi[r])&&Fi(e,6);const o=e.source.charCodeAt(e.index+3);0==(64&Pi[o])&&Fi(e,6);return u=bi(t)<<12|bi(n)<<8|bi(r)<<4|bi(o),e.currentChar=e.source.charCodeAt(e.index+=4),u}(e)}const Ki=[129,129,129,129,129,129,129,129,129,128,136,128,128,130,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,129,128,16842800,134283267,131,208897,8457015,8455751,134283267,67174411,16,8457014,25233970,18,25233971,67108877,8457016,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,134283266,21,1074790417,8456258,1077936157,8456259,22,133,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,208897,69271571,137,20,8455497,208897,132,4096,4096,4096,4096,4096,4096,4096,208897,4096,208897,208897,4096,208897,4096,208897,4096,208897,4096,4096,4096,208897,4096,4096,208897,4096,4096,2162700,8455240,1074790415,16842801,129];function Zi(e,u){if(e.flags=1^(1|e.flags),e.startPos=e.index,e.startColumn=e.column,e.startLine=e.line,e.token=Qi(e,u,0),e.onToken&&1048576!==e.token){const u={start:{line:e.linePos,column:e.colPos},end:{line:e.line,column:e.column}};e.onToken(function(e){switch(e){case 134283266:return"NumericLiteral";case 134283267:return"StringLiteral";case 86021:case 86022:return"BooleanLiteral";case 86023:return"NullLiteral";case 65540:return"RegularExpression";case 67174408:case 67174409:case 132:return"TemplateLiteral";default:return 143360==(143360&e)?"Identifier":4096==(4096&e)?"Keyword":"Punctuator"}}(e.token),e.tokenPos,e.index,u)}}function Qi(e,u,t){const n=0===e.index,r=e.source;let o=e.index,i=e.line,s=e.column;for(;e.index=e.end)return 8457014;const u=e.currentChar;return 61===u?(mi(e),4194340):42!==u?8457014:61!==mi(e)?8457273:(mi(e),4194337)}case 8455497:return 61!==mi(e)?8455497:(mi(e),4194343);case 25233970:{mi(e);const u=e.currentChar;return 43===u?(mi(e),33619995):61===u?(mi(e),4194338):25233970}case 25233971:{mi(e);const a=e.currentChar;if(45===a){if(mi(e),(1&t||n)&&62===e.currentChar){0==(256&u)&&Fi(e,108),mi(e),t=Ni(e,r,t,u,3,o,i,s),o=e.tokenPos,i=e.linePos,s=e.colPos;continue}return 33619996}return 61===a?(mi(e),4194339):25233971}case 8457016:if(mi(e),e.index=48&&l<=57)return Ui(e,u,80);if(46===l){const u=e.index+1;if(u=48&&u<=57)))return mi(e),67108991}return 22}}}else{if((8232^D)<=1){t=-5&t|1,Bi(e);continue}if(55296==(64512&D)||0!=(1&gi[34816+(D>>>5)]>>>D))return 56320==(64512&D)&&(D=(1023&D)<<10|1023&D|65536,0==(1&gi[0+(D>>>5)]>>>D)&&Fi(e,18,ki(D)),e.index++,e.currentChar=D),e.column++,e.tokenValue="",Ji(e,u,0,0);if(160===(a=D)||65279===a||133===a||5760===a||a>=8192&&a<=8203||8239===a||8287===a||12288===a||8201===a||65519===a){mi(e);continue}Fi(e,18,ki(D))}}var a;return 1048576}const es={AElig:"\xc6",AMP:"&",Aacute:"\xc1",Abreve:"\u0102",Acirc:"\xc2",Acy:"\u0410",Afr:"\ud835\udd04",Agrave:"\xc0",Alpha:"\u0391",Amacr:"\u0100",And:"\u2a53",Aogon:"\u0104",Aopf:"\ud835\udd38",ApplyFunction:"\u2061",Aring:"\xc5",Ascr:"\ud835\udc9c",Assign:"\u2254",Atilde:"\xc3",Auml:"\xc4",Backslash:"\u2216",Barv:"\u2ae7",Barwed:"\u2306",Bcy:"\u0411",Because:"\u2235",Bernoullis:"\u212c",Beta:"\u0392",Bfr:"\ud835\udd05",Bopf:"\ud835\udd39",Breve:"\u02d8",Bscr:"\u212c",Bumpeq:"\u224e",CHcy:"\u0427",COPY:"\xa9",Cacute:"\u0106",Cap:"\u22d2",CapitalDifferentialD:"\u2145",Cayleys:"\u212d",Ccaron:"\u010c",Ccedil:"\xc7",Ccirc:"\u0108",Cconint:"\u2230",Cdot:"\u010a",Cedilla:"\xb8",CenterDot:"\xb7",Cfr:"\u212d",Chi:"\u03a7",CircleDot:"\u2299",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201d",CloseCurlyQuote:"\u2019",Colon:"\u2237",Colone:"\u2a74",Congruent:"\u2261",Conint:"\u222f",ContourIntegral:"\u222e",Copf:"\u2102",Coproduct:"\u2210",CounterClockwiseContourIntegral:"\u2233",Cross:"\u2a2f",Cscr:"\ud835\udc9e",Cup:"\u22d3",CupCap:"\u224d",DD:"\u2145",DDotrahd:"\u2911",DJcy:"\u0402",DScy:"\u0405",DZcy:"\u040f",Dagger:"\u2021",Darr:"\u21a1",Dashv:"\u2ae4",Dcaron:"\u010e",Dcy:"\u0414",Del:"\u2207",Delta:"\u0394",Dfr:"\ud835\udd07",DiacriticalAcute:"\xb4",DiacriticalDot:"\u02d9",DiacriticalDoubleAcute:"\u02dd",DiacriticalGrave:"`",DiacriticalTilde:"\u02dc",Diamond:"\u22c4",DifferentialD:"\u2146",Dopf:"\ud835\udd3b",Dot:"\xa8",DotDot:"\u20dc",DotEqual:"\u2250",DoubleContourIntegral:"\u222f",DoubleDot:"\xa8",DoubleDownArrow:"\u21d3",DoubleLeftArrow:"\u21d0",DoubleLeftRightArrow:"\u21d4",DoubleLeftTee:"\u2ae4",DoubleLongLeftArrow:"\u27f8",DoubleLongLeftRightArrow:"\u27fa",DoubleLongRightArrow:"\u27f9",DoubleRightArrow:"\u21d2",DoubleRightTee:"\u22a8",DoubleUpArrow:"\u21d1",DoubleUpDownArrow:"\u21d5",DoubleVerticalBar:"\u2225",DownArrow:"\u2193",DownArrowBar:"\u2913",DownArrowUpArrow:"\u21f5",DownBreve:"\u0311",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295e",DownLeftVector:"\u21bd",DownLeftVectorBar:"\u2956",DownRightTeeVector:"\u295f",DownRightVector:"\u21c1",DownRightVectorBar:"\u2957",DownTee:"\u22a4",DownTeeArrow:"\u21a7",Downarrow:"\u21d3",Dscr:"\ud835\udc9f",Dstrok:"\u0110",ENG:"\u014a",ETH:"\xd0",Eacute:"\xc9",Ecaron:"\u011a",Ecirc:"\xca",Ecy:"\u042d",Edot:"\u0116",Efr:"\ud835\udd08",Egrave:"\xc8",Element:"\u2208",Emacr:"\u0112",EmptySmallSquare:"\u25fb",EmptyVerySmallSquare:"\u25ab",Eogon:"\u0118",Eopf:"\ud835\udd3c",Epsilon:"\u0395",Equal:"\u2a75",EqualTilde:"\u2242",Equilibrium:"\u21cc",Escr:"\u2130",Esim:"\u2a73",Eta:"\u0397",Euml:"\xcb",Exists:"\u2203",ExponentialE:"\u2147",Fcy:"\u0424",Ffr:"\ud835\udd09",FilledSmallSquare:"\u25fc",FilledVerySmallSquare:"\u25aa",Fopf:"\ud835\udd3d",ForAll:"\u2200",Fouriertrf:"\u2131",Fscr:"\u2131",GJcy:"\u0403",GT:">",Gamma:"\u0393",Gammad:"\u03dc",Gbreve:"\u011e",Gcedil:"\u0122",Gcirc:"\u011c",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\ud835\udd0a",Gg:"\u22d9",Gopf:"\ud835\udd3e",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",Gt:"\u226b",HARDcy:"\u042a",Hacek:"\u02c7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210c",HilbertSpace:"\u210b",Hopf:"\u210d",HorizontalLine:"\u2500",Hscr:"\u210b",Hstrok:"\u0126",HumpDownHump:"\u224e",HumpEqual:"\u224f",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xcd",Icirc:"\xce",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xcc",Im:"\u2111",Imacr:"\u012a",ImaginaryI:"\u2148",Implies:"\u21d2",Int:"\u222c",Integral:"\u222b",Intersection:"\u22c2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012e",Iopf:"\ud835\udd40",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xcf",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\ud835\udd0d",Jopf:"\ud835\udd41",Jscr:"\ud835\udca5",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040c",Kappa:"\u039a",Kcedil:"\u0136",Kcy:"\u041a",Kfr:"\ud835\udd0e",Kopf:"\ud835\udd42",Kscr:"\ud835\udca6",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039b",Lang:"\u27ea",Laplacetrf:"\u2112",Larr:"\u219e",Lcaron:"\u013d",Lcedil:"\u013b",Lcy:"\u041b",LeftAngleBracket:"\u27e8",LeftArrow:"\u2190",LeftArrowBar:"\u21e4",LeftArrowRightArrow:"\u21c6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21c3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230a",LeftRightArrow:"\u2194",LeftRightVector:"\u294e",LeftTee:"\u22a3",LeftTeeArrow:"\u21a4",LeftTeeVector:"\u295a",LeftTriangle:"\u22b2",LeftTriangleBar:"\u29cf",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21bf",LeftUpVectorBar:"\u2958",LeftVector:"\u21bc",LeftVectorBar:"\u2952",Leftarrow:"\u21d0",Leftrightarrow:"\u21d4",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2aa1",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",Lfr:"\ud835\udd0f",Ll:"\u22d8",Lleftarrow:"\u21da",Lmidot:"\u013f",LongLeftArrow:"\u27f5",LongLeftRightArrow:"\u27f7",LongRightArrow:"\u27f6",Longleftarrow:"\u27f8",Longleftrightarrow:"\u27fa",Longrightarrow:"\u27f9",Lopf:"\ud835\udd43",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21b0",Lstrok:"\u0141",Lt:"\u226a",Map:"\u2905",Mcy:"\u041c",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",MinusPlus:"\u2213",Mopf:"\ud835\udd44",Mscr:"\u2133",Mu:"\u039c",NJcy:"\u040a",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041d",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",Nfr:"\ud835\udd11",NoBreak:"\u2060",NonBreakingSpace:"\xa0",Nopf:"\u2115",Not:"\u2aec",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangle:"\u22eb",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\ud835\udca9",Ntilde:"\xd1",Nu:"\u039d",OElig:"\u0152",Oacute:"\xd3",Ocirc:"\xd4",Ocy:"\u041e",Odblac:"\u0150",Ofr:"\ud835\udd12",Ograve:"\xd2",Omacr:"\u014c",Omega:"\u03a9",Omicron:"\u039f",Oopf:"\ud835\udd46",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",Or:"\u2a54",Oscr:"\ud835\udcaa",Oslash:"\xd8",Otilde:"\xd5",Otimes:"\u2a37",Ouml:"\xd6",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",PartialD:"\u2202",Pcy:"\u041f",Pfr:"\ud835\udd13",Phi:"\u03a6",Pi:"\u03a0",PlusMinus:"\xb1",Poincareplane:"\u210c",Popf:"\u2119",Pr:"\u2abb",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",Prime:"\u2033",Product:"\u220f",Proportion:"\u2237",Proportional:"\u221d",Pscr:"\ud835\udcab",Psi:"\u03a8",QUOT:'"',Qfr:"\ud835\udd14",Qopf:"\u211a",Qscr:"\ud835\udcac",RBarr:"\u2910",REG:"\xae",Racute:"\u0154",Rang:"\u27eb",Rarr:"\u21a0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211c",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",Rfr:"\u211c",Rho:"\u03a1",RightAngleBracket:"\u27e9",RightArrow:"\u2192",RightArrowBar:"\u21e5",RightArrowLeftArrow:"\u21c4",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVector:"\u21c2",RightDownVectorBar:"\u2955",RightFloor:"\u230b",RightTee:"\u22a2",RightTeeArrow:"\u21a6",RightTeeVector:"\u295b",RightTriangle:"\u22b3",RightTriangleBar:"\u29d0",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVector:"\u21be",RightUpVectorBar:"\u2954",RightVector:"\u21c0",RightVectorBar:"\u2953",Rightarrow:"\u21d2",Ropf:"\u211d",RoundImplies:"\u2970",Rrightarrow:"\u21db",Rscr:"\u211b",Rsh:"\u21b1",RuleDelayed:"\u29f4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042c",Sacute:"\u015a",Sc:"\u2abc",Scaron:"\u0160",Scedil:"\u015e",Scirc:"\u015c",Scy:"\u0421",Sfr:"\ud835\udd16",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03a3",SmallCircle:"\u2218",Sopf:"\ud835\udd4a",Sqrt:"\u221a",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\ud835\udcae",Star:"\u22c6",Sub:"\u22d0",Subset:"\u22d0",SubsetEqual:"\u2286",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",SuchThat:"\u220b",Sum:"\u2211",Sup:"\u22d1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22d1",THORN:"\xde",TRADE:"\u2122",TSHcy:"\u040b",TScy:"\u0426",Tab:"\t",Tau:"\u03a4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\ud835\udd17",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\ud835\udd4b",TripleDot:"\u20db",Tscr:"\ud835\udcaf",Tstrok:"\u0166",Uacute:"\xda",Uarr:"\u219f",Uarrocir:"\u2949",Ubrcy:"\u040e",Ubreve:"\u016c",Ucirc:"\xdb",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\ud835\udd18",Ugrave:"\xd9",Umacr:"\u016a",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",Uopf:"\ud835\udd4c",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21c5",UpDownArrow:"\u2195",UpEquilibrium:"\u296e",UpTee:"\u22a5",UpTeeArrow:"\u21a5",Uparrow:"\u21d1",Updownarrow:"\u21d5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03d2",Upsilon:"\u03a5",Uring:"\u016e",Uscr:"\ud835\udcb0",Utilde:"\u0168",Uuml:"\xdc",VDash:"\u22ab",Vbar:"\u2aeb",Vcy:"\u0412",Vdash:"\u22a9",Vdashl:"\u2ae6",Vee:"\u22c1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",Vopf:"\ud835\udd4d",Vscr:"\ud835\udcb1",Vvdash:"\u22aa",Wcirc:"\u0174",Wedge:"\u22c0",Wfr:"\ud835\udd1a",Wopf:"\ud835\udd4e",Wscr:"\ud835\udcb2",Xfr:"\ud835\udd1b",Xi:"\u039e",Xopf:"\ud835\udd4f",Xscr:"\ud835\udcb3",YAcy:"\u042f",YIcy:"\u0407",YUcy:"\u042e",Yacute:"\xdd",Ycirc:"\u0176",Ycy:"\u042b",Yfr:"\ud835\udd1c",Yopf:"\ud835\udd50",Yscr:"\ud835\udcb4",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017d",Zcy:"\u0417",Zdot:"\u017b",ZeroWidthSpace:"\u200b",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\ud835\udcb5",aacute:"\xe1",abreve:"\u0103",ac:"\u223e",acE:"\u223e\u0333",acd:"\u223f",acirc:"\xe2",acute:"\xb4",acy:"\u0430",aelig:"\xe6",af:"\u2061",afr:"\ud835\udd1e",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03b1",amacr:"\u0101",amalg:"\u2a3f",amp:"&",and:"\u2227",andand:"\u2a55",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",aogon:"\u0105",aopf:"\ud835\udd52",ap:"\u2248",apE:"\u2a70",apacir:"\u2a6f",ape:"\u224a",apid:"\u224b",apos:"'",approx:"\u2248",approxeq:"\u224a",aring:"\xe5",ascr:"\ud835\udcb6",ast:"*",asymp:"\u2248",asympeq:"\u224d",atilde:"\xe3",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",bNot:"\u2aed",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",barvee:"\u22bd",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",beta:"\u03b2",beth:"\u2136",between:"\u226c",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bnot:"\u2310",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255d",boxUR:"\u255a",boxUl:"\u255c",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256c",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256b",boxVl:"\u2562",boxVr:"\u255f",boxbox:"\u29c9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250c",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252c",boxhu:"\u2534",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxuL:"\u255b",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256a",boxvL:"\u2561",boxvR:"\u255e",boxvh:"\u253c",boxvl:"\u2524",boxvr:"\u251c",bprime:"\u2035",breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsol:"\\",bsolb:"\u29c5",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",bumpeq:"\u224f",cacute:"\u0107",cap:"\u2229",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",capcup:"\u2a47",capdot:"\u2a40",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",ccaps:"\u2a4d",ccaron:"\u010d",ccedil:"\xe7",ccirc:"\u0109",ccups:"\u2a4c",ccupssm:"\u2a50",cdot:"\u010b",cedil:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",cfr:"\ud835\udd20",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03c7",cir:"\u25cb",cirE:"\u29c3",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledR:"\xae",circledS:"\u24c8",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",conint:"\u222e",copf:"\ud835\udd54",coprod:"\u2210",copy:"\xa9",copysr:"\u2117",crarr:"\u21b5",cross:"\u2717",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cup:"\u222a",cupbrcap:"\u2a48",cupcap:"\u2a46",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dArr:"\u21d3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",dcaron:"\u010f",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21ca",ddotseq:"\u2a77",deg:"\xb0",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",dfr:"\ud835\udd21",dharl:"\u21c3",dharr:"\u21c2",diam:"\u22c4",diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",dopf:"\ud835\udd55",dot:"\u02d9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",dscr:"\ud835\udcb9",dscy:"\u0455",dsol:"\u29f6",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",dzcy:"\u045f",dzigrarr:"\u27ff",eDDot:"\u2a77",eDot:"\u2251",eacute:"\xe9",easter:"\u2a6e",ecaron:"\u011b",ecir:"\u2256",ecirc:"\xea",ecolon:"\u2255",ecy:"\u044d",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\ud835\udd22",eg:"\u2a9a",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014b",ensp:"\u2002",eogon:"\u0119",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",equals:"=",equest:"\u225f",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erDot:"\u2253",erarr:"\u2971",escr:"\u212f",esdot:"\u2250",esim:"\u2242",eta:"\u03b7",eth:"\xf0",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",ffr:"\ud835\udd23",filig:"\ufb01",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",fopf:"\ud835\udd57",forall:"\u2200",fork:"\u22d4",forkv:"\u2ad9",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",gE:"\u2267",gEl:"\u2a8c",gacute:"\u01f5",gamma:"\u03b3",gammad:"\u03dd",gap:"\u2a86",gbreve:"\u011f",gcirc:"\u011d",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",ges:"\u2a7e",gescc:"\u2aa9",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",gfr:"\ud835\udd24",gg:"\u226b",ggg:"\u22d9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2a92",gla:"\u2aa5",glj:"\u2aa4",gnE:"\u2269",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",gopf:"\ud835\udd58",grave:"`",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gt:">",gtcc:"\u2aa7",gtcir:"\u2a7a",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",hArr:"\u21d4",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",hardcy:"\u044a",harr:"\u2194",harrcir:"\u2948",harrw:"\u21ad",hbar:"\u210f",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",horbar:"\u2015",hscr:"\ud835\udcbd",hslash:"\u210f",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xed",ic:"\u2063",icirc:"\xee",icy:"\u0438",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012b",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22b7",imped:"\u01b5",in:"\u2208",incare:"\u2105",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",int:"\u222b",intcal:"\u22ba",integers:"\u2124",intercal:"\u22ba",intlarhk:"\u2a17",intprod:"\u2a3c",iocy:"\u0451",iogon:"\u012f",iopf:"\ud835\udd5a",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",isin:"\u2208",isinE:"\u22f9",isindot:"\u22f5",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xef",jcirc:"\u0135",jcy:"\u0439",jfr:"\ud835\udd27",jmath:"\u0237",jopf:"\ud835\udd5b",jscr:"\ud835\udcbf",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03ba",kappav:"\u03f0",kcedil:"\u0137",kcy:"\u043a",kfr:"\ud835\udd28",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045c",kopf:"\ud835\udd5c",kscr:"\ud835\udcc0",lAarr:"\u21da",lArr:"\u21d0",lAtail:"\u291b",lBarr:"\u290e",lE:"\u2266",lEg:"\u2a8b",lHar:"\u2962",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",lambda:"\u03bb",lang:"\u27e8",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",laquo:"\xab",larr:"\u2190",larrb:"\u21e4",larrbfs:"\u291f",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",lat:"\u2aab",latail:"\u2919",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",lcaron:"\u013e",lcedil:"\u013c",lceil:"\u2308",lcub:"{",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21a2",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",leftthreetimes:"\u22cb",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",les:"\u2a7d",lescc:"\u2aa8",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297c",lfloor:"\u230a",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226a",llarr:"\u21c7",llcorner:"\u231e",llhard:"\u296b",lltri:"\u25fa",lmidot:"\u0140",lmoust:"\u23b0",lmoustache:"\u23b0",lnE:"\u2268",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",longleftrightarrow:"\u27f7",longmapsto:"\u27fc",longrightarrow:"\u27f6",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",lstrok:"\u0142",lt:"<",ltcc:"\u2aa6",ltcir:"\u2a79",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltrPar:"\u2996",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",mDDot:"\u223a",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",mcy:"\u043c",mdash:"\u2014",measuredangle:"\u2221",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",mid:"\u2223",midast:"*",midcir:"\u2af0",middot:"\xb7",minus:"\u2212",minusb:"\u229f",minusd:"\u2238",minusdu:"\u2a2a",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",mstpos:"\u223e",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nGg:"\u22d9\u0338",nGt:"\u226b\u20d2",nGtv:"\u226b\u0338",nLeftarrow:"\u21cd",nLeftrightarrow:"\u21ce",nLl:"\u22d8\u0338",nLt:"\u226a\u20d2",nLtv:"\u226a\u0338",nRightarrow:"\u21cf",nVDash:"\u22af",nVdash:"\u22ae",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266e",natural:"\u266e",naturals:"\u2115",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",ncy:"\u043d",ndash:"\u2013",ne:"\u2260",neArr:"\u21d7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",ngsim:"\u2275",ngt:"\u226f",ngtr:"\u226f",nhArr:"\u21ce",nharr:"\u21ae",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",njcy:"\u045a",nlArr:"\u21cd",nlE:"\u2266\u0338",nlarr:"\u219a",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219a",nleftrightarrow:"\u21ae",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nlsim:"\u2274",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nmid:"\u2224",nopf:"\ud835\udd5f",not:"\xac",notin:"\u2209",notinE:"\u22f9\u0338",notindot:"\u22f5\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",npre:"\u2aaf\u0338",nprec:"\u2280",npreceq:"\u2aaf\u0338",nrArr:"\u21cf",nrarr:"\u219b",nrarrc:"\u2933\u0338",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22ad",nvHarr:"\u2904",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwArr:"\u21d6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24c8",oacute:"\xf3",oast:"\u229b",ocir:"\u229a",ocirc:"\xf4",ocy:"\u043e",odash:"\u229d",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",oelig:"\u0153",ofcir:"\u29bf",ofr:"\ud835\udd2c",ogon:"\u02db",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",omacr:"\u014d",omega:"\u03c9",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",oopf:"\ud835\udd60",opar:"\u29b7",operp:"\u29b9",oplus:"\u2295",or:"\u2228",orarr:"\u21bb",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oscr:"\u2134",oslash:"\xf8",osol:"\u2298",otilde:"\xf5",otimes:"\u2297",otimesas:"\u2a36",ouml:"\xf6",ovbar:"\u233d",par:"\u2225",para:"\xb6",parallel:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",pfr:"\ud835\udd2d",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plus:"+",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",pointint:"\u2a15",popf:"\ud835\udd61",pound:"\xa3",pr:"\u227a",prE:"\u2ab3",prap:"\u2ab7",prcue:"\u227c",pre:"\u2aaf",prec:"\u227a",precapprox:"\u2ab7",preccurlyeq:"\u227c",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",precsim:"\u227e",prime:"\u2032",primes:"\u2119",prnE:"\u2ab5",prnap:"\u2ab9",prnsim:"\u22e8",prod:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",pscr:"\ud835\udcc5",psi:"\u03c8",puncsp:"\u2008",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",qprime:"\u2057",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',rAarr:"\u21db",rArr:"\u21d2",rAtail:"\u291c",rBarr:"\u290f",rHar:"\u2964",race:"\u223d\u0331",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",rect:"\u25ad",reg:"\xae",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",rho:"\u03c1",rhov:"\u03f1",rightarrow:"\u2192",rightarrowtail:"\u21a3",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",rightthreetimes:"\u22cc",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoust:"\u23b1",rmoustache:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",roplus:"\u2a2e",rotimes:"\u2a35",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",rsaquo:"\u203a",rscr:"\ud835\udcc7",rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",ruluhar:"\u2968",rx:"\u211e",sacute:"\u015b",sbquo:"\u201a",sc:"\u227b",scE:"\u2ab4",scap:"\u2ab8",scaron:"\u0161",sccue:"\u227d",sce:"\u2ab0",scedil:"\u015f",scirc:"\u015d",scnE:"\u2ab6",scnap:"\u2aba",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",scy:"\u0441",sdot:"\u22c5",sdotb:"\u22a1",sdote:"\u2a66",seArr:"\u21d8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xad",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",softcy:"\u044c",sol:"/",solb:"\u29c4",solbar:"\u233f",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25a1",square:"\u25a1",squarf:"\u25aa",squf:"\u25aa",srarr:"\u2192",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",subE:"\u2ac5",subdot:"\u2abd",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2ac5",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succ:"\u227b",succapprox:"\u2ab8",succcurlyeq:"\u227d",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",supE:"\u2ac6",supdot:"\u2abe",supdsub:"\u2ad8",supe:"\u2287",supedot:"\u2ac4",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swArr:"\u21d9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",target:"\u2316",tau:"\u03c4",tbrk:"\u23b4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",thorn:"\xfe",tilde:"\u02dc",times:"\xd7",timesb:"\u22a0",timesbar:"\u2a31",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",top:"\u22a4",topbot:"\u2336",topcir:"\u2af1",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",tscr:"\ud835\udcc9",tscy:"\u0446",tshcy:"\u045b",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",uArr:"\u21d1",uHar:"\u2963",uacute:"\xfa",uarr:"\u2191",ubrcy:"\u045e",ubreve:"\u016d",ucirc:"\xfb",ucy:"\u0443",udarr:"\u21c5",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",ufr:"\ud835\udd32",ugrave:"\xf9",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",umacr:"\u016b",uml:"\xa8",uogon:"\u0173",uopf:"\ud835\udd66",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",upsi:"\u03c5",upsih:"\u03d2",upsilon:"\u03c5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",uring:"\u016f",urtri:"\u25f9",uscr:"\ud835\udcca",utdot:"\u22f0",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",uuml:"\xfc",uwangle:"\u29a7",vArr:"\u21d5",vBar:"\u2ae8",vBarv:"\u2ae9",vDash:"\u22a8",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vcy:"\u0432",vdash:"\u22a2",vee:"\u2228",veebar:"\u22bb",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",vert:"|",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",vzigzag:"\u299a",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\ud835\udd34",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",xfr:"\ud835\udd35",xhArr:"\u27fa",xharr:"\u27f7",xi:"\u03be",xlArr:"\u27f8",xlarr:"\u27f5",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrArr:"\u27f9",xrarr:"\u27f6",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",yacute:"\xfd",yacy:"\u044f",ycirc:"\u0177",ycy:"\u044b",yen:"\xa5",yfr:"\ud835\udd36",yicy:"\u0457",yopf:"\ud835\udd6a",yscr:"\ud835\udcce",yucy:"\u044e",yuml:"\xff",zacute:"\u017a",zcaron:"\u017e",zcy:"\u0437",zdot:"\u017c",zeetrf:"\u2128",zeta:"\u03b6",zfr:"\ud835\udd37",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},us={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376};function ts(e){return e.replace(/&(?:[a-zA-Z]+|#[xX][\da-fA-F]+|#\d+);/g,(e=>{if("#"===e.charAt(1)){const u=e.charAt(2);return function(e){if(e>=55296&&e<=57343||e>1114111)return"\ufffd";e in us&&(e=us[e]);return String.fromCodePoint(e)}("X"===u||"x"===u?parseInt(e.slice(3),16):parseInt(e.slice(2),10))}return es[e.slice(1,-1)]||e}))}function ns(e,u){return e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.token=8192&Pi[e.currentChar]?function(e,u){const t=e.currentChar;let n=mi(e);const r=e.index;for(;n!==t;)e.index>=e.end&&Fi(e,14),n=mi(e);n!==t&&Fi(e,14);e.tokenValue=e.source.slice(r,e.index),mi(e),512&u&&(e.tokenRaw=e.source.slice(e.tokenPos,e.index));return 134283267}(e,u):Qi(e,u,0),e.token}function rs(e,u){if(e.startPos=e.tokenPos=e.index,e.startColumn=e.colPos=e.column,e.startLine=e.linePos=e.line,e.index>=e.end)return e.token=1048576;switch(Ki[e.source.charCodeAt(e.index)]){case 8456258:mi(e),47===e.currentChar?(mi(e),e.token=25):e.token=8456258;break;case 2162700:mi(e),e.token=2162700;break;default:{let t=0;for(;e.index0&&Ds(e,u,209008);cs(e,32768|u,67174411),t&&(t=ms(t,1));let a,D=null,c=null,l=0,p=null,f=86090===e.token||241739===e.token||86092===e.token;const{token:d,tokenPos:F,linePos:E,colPos:C}=e;f?241739===d?(p=da(e,u,0),2240512&e.token?(8738868===e.token?1024&u&&Fi(e,64):p=Es(e,u,F,E,C,{type:"VariableDeclaration",kind:"let",declarations:$s(e,134217728|u,t,8,32)}),e.assignable=1):1024&u?Fi(e,64):(f=!1,e.assignable=1,p=na(e,u,p,0,0,F,E,C),274549===e.token&&Fi(e,111))):(Zi(e,u),p=Es(e,u,F,E,C,86090===d?{type:"VariableDeclaration",kind:"var",declarations:$s(e,134217728|u,t,4,32)}:{type:"VariableDeclaration",kind:"const",declarations:$s(e,134217728|u,t,16,32)}),e.assignable=1):1074790417===d?s&&Fi(e,79):2097152==(2097152&d)?(p=2162700===d?ya(e,u,void 0,1,0,0,2,32,F,E,C):Aa(e,u,void 0,1,0,0,2,32,F,E,C),l=e.destructible,256&u&&64&l&&Fi(e,60),e.assignable=16&l?2:1,p=na(e,134217728|u,p,0,0,e.tokenPos,e.linePos,e.colPos)):p=ta(e,134217728|u,1,0,1,F,E,C);if(262144==(262144&e.token)){if(274549===e.token){2&e.assignable&&Fi(e,77,s?"await":"of"),ls(e,p),Zi(e,32768|u),a=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos),cs(e,32768|u,16);return Es(e,u,r,o,i,{type:"ForOfStatement",left:p,right:a,body:js(e,u,t,n),await:s})}2&e.assignable&&Fi(e,77,"in"),ls(e,p),Zi(e,32768|u),s&&Fi(e,79),a=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos),cs(e,32768|u,16);return Es(e,u,r,o,i,{type:"ForInStatement",body:js(e,u,t,n),left:p,right:a})}s&&Fi(e,79);f||(8&l&&1077936157!==e.token&&Fi(e,77,"loop"),p=Ks(e,134217728|u,0,0,F,E,C,p));18===e.token&&(p=Ws(e,u,0,e.tokenPos,e.linePos,e.colPos,p));cs(e,32768|u,1074790417),1074790417!==e.token&&(D=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos));cs(e,32768|u,1074790417),16!==e.token&&(c=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos));cs(e,32768|u,16);const A=js(e,u,t,n);return Es(e,u,r,o,i,{type:"ForStatement",init:p,test:D,update:c,body:A})}(e,u,t,r,i,s,a);case 20564:return function(e,u,t,n,r,o,i){Zi(e,32768|u);const s=js(e,u,t,n);cs(e,u,20580),cs(e,32768|u,67174411);const a=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos);return cs(e,32768|u,16),Ds(e,u,1074790417),Es(e,u,r,o,i,{type:"DoWhileStatement",body:s,test:a})}(e,u,t,r,i,s,a);case 20580:return function(e,u,t,n,r,o,i){Zi(e,u),cs(e,32768|u,67174411);const s=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos);cs(e,32768|u,16);const a=js(e,u,t,n);return Es(e,u,r,o,i,{type:"WhileStatement",test:s,body:a})}(e,u,t,r,i,s,a);case 86112:return function(e,u,t,n,r,o,i){Zi(e,u),cs(e,32768|u,67174411);const s=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos);cs(e,u,16),cs(e,u,2162700);const a=[];let D=0;t&&(t=ms(t,8));for(;1074790415!==e.token;){const{tokenPos:r,linePos:o,colPos:i}=e;let s=null;const c=[];for(Ds(e,32768|u,20558)?s=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos):(cs(e,32768|u,20563),D&&Fi(e,86),D=1),cs(e,32768|u,21);20558!==e.token&&1074790415!==e.token&&20563!==e.token;)c.push(Ss(e,4096|u,t,2,{$:n}));a.push(Es(e,u,r,o,i,{type:"SwitchCase",test:s,consequent:c}))}return cs(e,32768|u,1074790415),Es(e,u,r,o,i,{type:"SwitchStatement",discriminant:s,cases:a})}(e,u,t,r,i,s,a);case 1074790417:return function(e,u,t,n,r){return Zi(e,32768|u),Es(e,u,t,n,r,{type:"EmptyStatement"})}(e,u,i,s,a);case 2162700:return Ns(e,u,t?ms(t,2):t,r,i,s,a);case 86114:return function(e,u,t,n,r){Zi(e,32768|u),1&e.flags&&Fi(e,87);const o=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos);return is(e,32768|u),Es(e,u,t,n,r,{type:"ThrowStatement",argument:o})}(e,u,i,s,a);case 20557:return function(e,u,t,n,r,o){Zi(e,32768|u);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:n}=e;i=da(e,32768|u,0),Fs(e,t,n,0)||Fi(e,134,n)}else(135168&u)<1&&Fi(e,66);return is(e,32768|u),Es(e,u,n,r,o,{type:"BreakStatement",label:i})}(e,u,r,i,s,a);case 20561:return function(e,u,t,n,r,o){(131072&u)<1&&Fi(e,65);Zi(e,u);let i=null;if((1&e.flags)<1&&143360&e.token){const{tokenValue:n}=e;i=da(e,32768|u,0),Fs(e,t,n,1)||Fi(e,134,n)}return is(e,32768|u),Es(e,u,n,r,o,{type:"ContinueStatement",label:i})}(e,u,r,i,s,a);case 20579:return function(e,u,t,n,r,o,i){Zi(e,32768|u);const s=t?ms(t,32):void 0,a=Ns(e,u,s,{$:n},e.tokenPos,e.linePos,e.colPos),{tokenPos:D,linePos:c,colPos:l}=e,p=Ds(e,32768|u,20559)?function(e,u,t,n,r,o,i){let s=null,a=t;Ds(e,u,67174411)&&(t&&(t=ms(t,4)),s=Va(e,u,t,2097152==(2097152&e.token)?256:512,0,e.tokenPos,e.linePos,e.colPos),18===e.token?Fi(e,83):1077936157===e.token&&Fi(e,84),cs(e,32768|u,16),t&&(a=ms(t,64)));const D=Ns(e,u,a,{$:n},e.tokenPos,e.linePos,e.colPos);return Es(e,u,r,o,i,{type:"CatchClause",param:s,body:D})}(e,u,t,n,D,c,l):null;let f=null;if(20568===e.token){Zi(e,32768|u);f=Ns(e,u,s?ms(t,4):void 0,{$:n},e.tokenPos,e.linePos,e.colPos)}p||f||Fi(e,85);return Es(e,u,r,o,i,{type:"TryStatement",block:a,handler:p,finalizer:f})}(e,u,t,r,i,s,a);case 20581:return function(e,u,t,n,r,o,i){Zi(e,u),1024&u&&Fi(e,88);cs(e,32768|u,67174411);const s=Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos);cs(e,32768|u,16);const a=Ts(e,u,t,2,n,0,e.tokenPos,e.linePos,e.colPos);return Es(e,u,r,o,i,{type:"WithStatement",object:s,body:a})}(e,u,t,r,i,s,a);case 20562:return function(e,u,t,n,r){return Zi(e,32768|u),is(e,32768|u),Es(e,u,t,n,r,{type:"DebuggerStatement"})}(e,u,i,s,a);case 209007:return Os(e,u,t,n,r,0,i,s,a);case 20559:Fi(e,156);case 20568:Fi(e,157);case 86106:Fi(e,1024&u?73:(256&u)<1?75:74);case 86096:Fi(e,76);default:return function(e,u,t,n,r,o,i,s,a){const{tokenValue:D,token:c}=e;let l;switch(c){case 241739:l=da(e,u,0),1024&u&&Fi(e,82),69271571===e.token&&Fi(e,81);break;default:l=oa(e,u,2,0,1,0,0,1,e.tokenPos,e.linePos,e.colPos)}if(143360&c&&21===e.token)return Ls(e,u,t,n,r,D,l,c,o,i,s,a);l=na(e,u,l,0,0,i,s,a),l=Ks(e,u,0,0,i,s,a,l),18===e.token&&(l=Ws(e,u,0,i,s,a,l));return Is(e,u,l,i,s,a)}(e,u,t,n,r,o,i,s,a)}}function Ns(e,u,t,n,r,o,i){const s=[];for(cs(e,32768|u,2162700);1074790415!==e.token;)s.push(Ss(e,u,t,2,{$:n}));return cs(e,32768|u,1074790415),Es(e,u,r,o,i,{type:"BlockStatement",body:s})}function Is(e,u,t,n,r,o){return is(e,32768|u),Es(e,u,n,r,o,{type:"ExpressionStatement",expression:t})}function Ls(e,u,t,n,r,o,i,s,a,D,c,l){ps(e,u,0,s,1),function(e,u,t){let n=u;for(;n;)n["$"+t]&&Fi(e,132,t),n=n.$;u["$"+t]=1}(e,r,o),Zi(e,32768|u);return Es(e,u,D,c,l,{type:"LabeledStatement",label:i,body:a&&(1024&u)<1&&256&u&&86106===e.token?Ea(e,u,ms(t,2),n,0,0,0,e.tokenPos,e.linePos,e.colPos):Ts(e,u,t,n,r,a,e.tokenPos,e.linePos,e.colPos)})}function Os(e,u,t,n,r,o,i,s,a){const{token:D,tokenValue:c}=e;let l=da(e,u,0);if(21===e.token)return Ls(e,u,t,n,r,c,l,D,1,i,s,a);const p=1&e.flags;if(!p){if(86106===e.token)return o||Fi(e,119),Ea(e,u,t,n,1,0,1,i,s,a);if(143360==(143360&e.token))return l=Sa(e,u,1,i,s,a),18===e.token&&(l=Ws(e,u,0,i,s,a,l)),Is(e,u,l,i,s,a)}return 67174411===e.token?l=Ta(e,u,l,1,1,0,p,i,s,a):(10===e.token&&(xs(e,u,D,1),l=ba(e,u,e.tokenValue,l,0,1,0,i,s,a)),e.assignable=1),l=na(e,u,l,0,0,i,s,a),18===e.token&&(l=Ws(e,u,0,i,s,a,l)),l=Ks(e,u,0,0,i,s,a,l),e.assignable=1,Is(e,u,l,i,s,a)}function Rs(e,u,t,n,r,o,i){return 1074790417!==n&&(e.assignable=2,t=na(e,u,t,0,0,r,o,i),1074790417!==e.token&&(t=Ks(e,u,0,0,r,o,i,t),18===e.token&&(t=Ws(e,u,0,r,o,i,t))),is(e,32768|u)),8&u&&"Literal"===t.type&&"string"==typeof t.value?Es(e,u,r,o,i,{type:"ExpressionStatement",expression:t,directive:t.raw.slice(1,-1)}):Es(e,u,r,o,i,{type:"ExpressionStatement",expression:t})}function qs(e,u,t,n,r,o,i){return 1024&u||(256&u)<1||86106!==e.token?Ts(e,u,t,0,{$:n},0,e.tokenPos,e.linePos,e.colPos):Ea(e,u,ms(t,2),0,0,0,0,r,o,i)}function js(e,u,t,n){return Ts(e,134217728^(134217728|u)|131072,t,0,{loop:1,$:n},0,e.tokenPos,e.linePos,e.colPos)}function Vs(e,u,t,n,r,o,i,s){Zi(e,u);const a=$s(e,u,t,n,r);return is(e,32768|u),Es(e,u,o,i,s,{type:"VariableDeclaration",kind:8&n?"let":"const",declarations:a})}function Ms(e,u,t,n,r,o,i){Zi(e,u);const s=$s(e,u,t,4,n);return is(e,32768|u),Es(e,u,r,o,i,{type:"VariableDeclaration",kind:"var",declarations:s})}function $s(e,u,t,n,r){let o=1;const i=[Us(e,u,t,n,r)];for(;Ds(e,u,18);)o++,i.push(Us(e,u,t,n,r));return o>1&&32&r&&262144&e.token&&Fi(e,58,_i[255&e.token]),i}function Us(e,u,t,n,r){const{token:o,tokenPos:i,linePos:s,colPos:a}=e;let D=null;const c=Va(e,u,t,n,r,i,s,a);return 1077936157===e.token?(Zi(e,32768|u),D=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos),(32&r||(2097152&o)<1)&&(274549===e.token||8738868===e.token&&(2097152&o||(4&n)<1||1024&u))&&Ci(i,e.line,e.index-3,57,274549===e.token?"of":"in")):(16&n||(2097152&o)>0)&&262144!=(262144&e.token)&&Fi(e,56,16&n?"const":"destructuring"),Es(e,u,i,s,a,{type:"VariableDeclarator",id:c,init:D})}function Gs(e,u,t){return Ps(u,e.token)||Fi(e,114),537079808==(537079808&e.token)&&Fi(e,115),t&&ys(e,u,t,e.tokenValue,8,0),da(e,u,0)}function _s(e,u,t){const{tokenPos:n,linePos:r,colPos:o}=e;return Zi(e,u),cs(e,u,77934),134217728==(134217728&e.token)&&Ci(n,e.line,e.index,28,_i[255&e.token]),Es(e,u,n,r,o,{type:"ImportNamespaceSpecifier",local:Gs(e,u,t)})}function Xs(e,u,t,n){for(Zi(e,u);143360&e.token;){let{token:r,tokenValue:o,tokenPos:i,linePos:s,colPos:a}=e;const D=da(e,u,0);let c;Ds(e,u,77934)?(134217728==(134217728&e.token)||18===e.token?Fi(e,103):ps(e,u,16,e.token,0),o=e.tokenValue,c=da(e,u,0)):(ps(e,u,16,r,0),c=D),t&&ys(e,u,t,o,8,0),n.push(Es(e,u,i,s,a,{type:"ImportSpecifier",local:c,imported:D})),1074790415!==e.token&&cs(e,u,18)}return cs(e,u,1074790415),n}function Hs(e,u,t,n,r){let o=ia(e,u,Es(e,u,t,n,r,{type:"Identifier",name:"import"}),t,n,r);return o=na(e,u,o,0,0,t,n,r),o=Ks(e,u,0,0,t,n,r,o),Is(e,u,o,t,n,r)}function zs(e,u,t,n,r){let o=sa(e,u,0,t,n,r);return o=na(e,u,o,0,0,t,n,r),Is(e,u,o,t,n,r)}function Js(e,u,t,n,r,o,i,s){let a=oa(e,u,2,0,t,n,r,1,o,i,s);return a=na(e,u,a,r,0,o,i,s),Ks(e,u,r,0,o,i,s,a)}function Ws(e,u,t,n,r,o,i){const s=[i];for(;Ds(e,32768|u,18);)s.push(Js(e,u,1,0,t,e.tokenPos,e.linePos,e.colPos));return Es(e,u,n,r,o,{type:"SequenceExpression",expressions:s})}function Ys(e,u,t,n,r,o,i){const s=Js(e,u,n,0,t,r,o,i);return 18===e.token?Ws(e,u,t,r,o,i,s):s}function Ks(e,u,t,n,r,o,i,s){const{token:a}=e;if(4194304==(4194304&a)){2&e.assignable&&Fi(e,24),(!n&&1077936157===a&&"ArrayExpression"===s.type||"ObjectExpression"===s.type)&&ls(e,s),Zi(e,32768|u);const D=Js(e,u,1,1,t,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,Es(e,u,r,o,i,n?{type:"AssignmentPattern",left:s,right:D}:{type:"AssignmentExpression",left:s,operator:_i[255&a],right:D})}return 8454144==(8454144&a)&&(s=ea(e,u,t,r,o,i,4,a,s)),Ds(e,32768|u,22)&&(s=Qs(e,u,s,r,o,i)),s}function Zs(e,u,t,n,r,o,i,s){const{token:a}=e;Zi(e,32768|u);const D=Js(e,u,1,1,t,e.tokenPos,e.linePos,e.colPos);return s=Es(e,u,r,o,i,n?{type:"AssignmentPattern",left:s,right:D}:{type:"AssignmentExpression",left:s,operator:_i[255&a],right:D}),e.assignable=2,s}function Qs(e,u,t,n,r,o){const i=Js(e,134217728^(134217728|u),1,0,0,e.tokenPos,e.linePos,e.colPos);cs(e,32768|u,21),e.assignable=1;const s=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,Es(e,u,n,r,o,{type:"ConditionalExpression",test:t,consequent:i,alternate:s})}function ea(e,u,t,n,r,o,i,s,a){const D=8738868&-((134217728&u)>0);let c,l;for(e.assignable=2;8454144&e.token&&(c=e.token,l=3840&c,(524288&c&&268435456&s||524288&s&&268435456&c)&&Fi(e,159),!(l+((8457273===c)<<8)-((D===c)<<12)<=i));)Zi(e,32768|u),a=Es(e,u,n,r,o,{type:524288&c||268435456&c?"LogicalExpression":"BinaryExpression",left:a,right:ea(e,u,t,e.tokenPos,e.linePos,e.colPos,l,c,ta(e,u,0,t,1,e.tokenPos,e.linePos,e.colPos)),operator:_i[255&c]});return 1077936157===e.token&&Fi(e,24),a}function ua(e,u,t,n,r,o){const{tokenPos:i,linePos:s,colPos:a}=e;cs(e,32768|u,2162700);const D=[],c=u;if(1074790415!==e.token){for(;134283267===e.token;){const{index:t,tokenPos:n,tokenValue:r,token:o}=e,i=Fa(e,u);ss(e,t,n,r)&&(u|=1024,128&e.flags&&Ci(e.index,e.line,e.tokenPos,63),64&e.flags&&Ci(e.index,e.line,e.tokenPos,8)),D.push(Rs(e,u,i,o,n,e.linePos,e.colPos))}1024&u&&(r&&(537079808==(537079808&r)&&Fi(e,115),36864==(36864&r)&&Fi(e,38)),512&e.flags&&Fi(e,115),256&e.flags&&Fi(e,114)),64&u&&t&&void 0!==o&&(1024&c)<1&&(8192&u)<1&&Ei(o)}for(e.flags=832^(832|e.flags),e.destructible=256^(256|e.destructible);1074790415!==e.token;)D.push(Ss(e,u,t,4,{}));return cs(e,24&n?32768|u:u,1074790415),e.flags&=-193,1077936157===e.token&&Fi(e,24),Es(e,u,i,s,a,{type:"BlockStatement",body:D})}function ta(e,u,t,n,r,o,i,s){return na(e,u,oa(e,u,2,0,t,0,n,r,o,i,s),n,0,o,i,s)}function na(e,u,t,n,r,o,i,s){if(33619968==(33619968&e.token)&&(1&e.flags)<1)t=function(e,u,t,n,r,o){2&e.assignable&&Fi(e,52);const{token:i}=e;return Zi(e,u),e.assignable=2,Es(e,u,n,r,o,{type:"UpdateExpression",argument:t,operator:_i[255&i],prefix:!1})}(e,u,t,o,i,s);else if(67108864==(67108864&e.token)){switch(u=134225920^(134225920|u),e.token){case 67108877:Zi(e,1073741824|u),e.assignable=1;t=Es(e,u,o,i,s,{type:"MemberExpression",object:t,computed:!1,property:ra(e,u)});break;case 69271571:{let r=!1;2048==(2048&e.flags)&&(r=!0,e.flags=2048^(2048|e.flags)),Zi(e,32768|u);const{tokenPos:a,linePos:D,colPos:c}=e,l=Ys(e,u,n,1,a,D,c);cs(e,u,20),e.assignable=1,t=Es(e,u,o,i,s,{type:"MemberExpression",object:t,computed:!0,property:l}),r&&(e.flags|=2048);break}case 67174411:{if(1024==(1024&e.flags))return e.flags=1024^(1024|e.flags),t;let r=!1;2048==(2048&e.flags)&&(r=!0,e.flags=2048^(2048|e.flags));const a=fa(e,u,n);e.assignable=2,t=Es(e,u,o,i,s,{type:"CallExpression",callee:t,arguments:a}),r&&(e.flags|=2048);break}case 67108991:Zi(e,u),e.flags|=2048,e.assignable=2,t=function(e,u,t,n,r,o){let i,s=!1;69271571!==e.token&&67174411!==e.token||2048==(2048&e.flags)&&(s=!0,e.flags=2048^(2048|e.flags));if(69271571===e.token){Zi(e,32768|u);const{tokenPos:s,linePos:a,colPos:D}=e,c=Ys(e,u,0,1,s,a,D);cs(e,u,20),e.assignable=2,i=Es(e,u,n,r,o,{type:"MemberExpression",object:t,computed:!0,optional:!0,property:c})}else if(67174411===e.token){const s=fa(e,u,0);e.assignable=2,i=Es(e,u,n,r,o,{type:"CallExpression",callee:t,arguments:s,optional:!0})}else{(143360&e.token)<1&&Fi(e,154);const s=da(e,u,0);e.assignable=2,i=Es(e,u,n,r,o,{type:"MemberExpression",object:t,computed:!1,optional:!0,property:s})}s&&(e.flags|=2048);return i}(e,u,t,o,i,s);break;default:2048==(2048&e.flags)&&Fi(e,160),e.assignable=2,t=Es(e,u,o,i,s,{type:"TaggedTemplateExpression",tag:t,quasi:67174408===e.token?ca(e,65536|u):Da(e,u,e.tokenPos,e.linePos,e.colPos)})}t=na(e,u,t,0,1,o,i,s)}return 0===r&&2048==(2048&e.flags)&&(e.flags=2048^(2048|e.flags),t=Es(e,u,o,i,s,{type:"ChainExpression",expression:t})),t}function ra(e,u){return(143360&e.token)<1&&131!==e.token&&Fi(e,154),1&u&&131===e.token?qa(e,u,e.tokenPos,e.linePos,e.colPos):da(e,u,0)}function oa(e,u,t,n,r,o,i,s,a,D,c){if(143360==(143360&e.token)){switch(e.token){case 209008:return function(e,u,t,n,r,o,i){if(n&&(e.destructible|=128),4194304&u){t&&Fi(e,0),8388608&u&&Ci(e.index,e.line,e.index,29),Zi(e,32768|u);const n=ta(e,u,0,0,1,e.tokenPos,e.linePos,e.colPos);return e.assignable=2,Es(e,u,r,o,i,{type:"AwaitExpression",argument:n})}return 2048&u&&Fi(e,107,"Await"),ka(e,u,r,o,i)}(e,u,n,i,a,D,c);case 241773:return function(e,u,t,n,r,o,i){if(t&&(e.destructible|=256),2097152&u){Zi(e,32768|u),8388608&u&&Fi(e,30),n||Fi(e,24),22===e.token&&Fi(e,120);let t=null,s=!1;return(1&e.flags)<1&&(s=Ds(e,32768|u,8457014),(77824&e.token||s)&&(t=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos))),e.assignable=2,Es(e,u,r,o,i,{type:"YieldExpression",argument:t,delegate:s})}return 1024&u&&Fi(e,94,"yield"),ka(e,u,r,o,i)}(e,u,i,r,a,D,c);case 209007:return function(e,u,t,n,r,o,i,s,a,D){const{token:c}=e,l=da(e,u,o),{flags:p}=e;if((1&p)<1){if(86106===e.token)return Ca(e,u,1,t,s,a,D);if(143360==(143360&e.token))return n||Fi(e,0),Sa(e,u,r,s,a,D)}return i||67174411!==e.token?10===e.token?(xs(e,u,c,1),i&&Fi(e,48),ba(e,u,e.tokenValue,l,i,r,0,s,a,D)):l:Ta(e,u,l,r,1,0,p,s,a,D)}(e,u,i,s,r,o,n,a,D,c)}const{token:l,tokenValue:p}=e,f=da(e,65536|u,o);return 10===e.token?(s||Fi(e,0),xs(e,u,l,1),ba(e,u,p,f,n,r,0,a,D,c)):(16384&u&&537079928===l&&Fi(e,126),241739===l&&(1024&u&&Fi(e,109),24&t&&Fi(e,97)),e.assignable=1024&u&&537079808==(537079808&l)?2:1,f)}if(134217728==(134217728&e.token))return Fa(e,u);switch(e.token){case 33619995:case 33619996:return function(e,u,t,n,r,o,i){t&&Fi(e,53),n||Fi(e,0);const{token:s}=e;Zi(e,32768|u);const a=ta(e,u,0,0,1,e.tokenPos,e.linePos,e.colPos);return 2&e.assignable&&Fi(e,52),e.assignable=2,Es(e,u,r,o,i,{type:"UpdateExpression",argument:a,operator:_i[255&s],prefix:!0})}(e,u,n,s,a,D,c);case 16863278:case 16842800:case 16842801:case 25233970:case 25233971:case 16863277:case 16863279:return function(e,u,t,n,r,o,i){t||Fi(e,0);const s=e.token;Zi(e,32768|u);const a=ta(e,u,0,i,1,e.tokenPos,e.linePos,e.colPos);var D;return 8457273===e.token&&Fi(e,31),1024&u&&16863278===s&&("Identifier"===a.type?Fi(e,117):(D=a).property&&"PrivateIdentifier"===D.property.type&&Fi(e,123)),e.assignable=2,Es(e,u,n,r,o,{type:"UnaryExpression",operator:_i[255&s],argument:a,prefix:!0})}(e,u,s,a,D,c,i);case 86106:return Ca(e,u,0,i,a,D,c);case 2162700:return function(e,u,t,n,r,o,i){const s=ya(e,u,void 0,t,n,0,2,0,r,o,i);256&u&&64&e.destructible&&Fi(e,60);8&e.destructible&&Fi(e,59);return s}(e,u,r?0:1,i,a,D,c);case 69271571:return function(e,u,t,n,r,o,i){const s=Aa(e,u,void 0,t,n,0,2,0,r,o,i);256&u&&64&e.destructible&&Fi(e,60);8&e.destructible&&Fi(e,59);return s}(e,u,r?0:1,i,a,D,c);case 67174411:return function(e,u,t,n,r,o,i,s){e.flags=128^(128|e.flags);const{tokenPos:a,linePos:D,colPos:c}=e;Zi(e,1073774592|u);const l=64&u?ms({parent:void 0,type:2},1024):void 0;if(Ds(e,u=134225920^(134225920|u),16))return Pa(e,u,l,[],t,0,o,i,s);let p,f=0;e.destructible&=-385;let d=[],F=0,E=0;const{tokenPos:C,linePos:A,colPos:g}=e;e.assignable=1;for(;16!==e.token;){const{token:t,tokenPos:o,linePos:i,colPos:s}=e;if(143360&t)l&&ys(e,u,l,e.tokenValue,1,0),p=oa(e,u,n,0,1,0,1,1,o,i,s),16===e.token||18===e.token?2&e.assignable?(f|=16,E=1):537079808!=(537079808&t)&&36864!=(36864&t)||(E=1):(1077936157===e.token?E=1:f|=16,p=na(e,u,p,1,0,o,i,s),16!==e.token&&18!==e.token&&(p=Ks(e,u,1,0,o,i,s,p)));else{if(2097152!=(2097152&t)){if(14===t){p=ma(e,u,l,16,n,r,0,1,0,o,i,s),16&e.destructible&&Fi(e,71),E=1,!F||16!==e.token&&18!==e.token||d.push(p),f|=8;break}if(f|=16,p=Js(e,u,1,0,1,o,i,s),!F||16!==e.token&&18!==e.token||d.push(p),18===e.token&&(F||(F=1,d=[p])),F){for(;Ds(e,32768|u,18);)d.push(Js(e,u,1,0,1,e.tokenPos,e.linePos,e.colPos));e.assignable=2,p=Es(e,u,C,A,g,{type:"SequenceExpression",expressions:d})}return cs(e,u,16),e.destructible=f,p}p=2162700===t?ya(e,1073741824|u,l,0,1,0,n,r,o,i,s):Aa(e,1073741824|u,l,0,1,0,n,r,o,i,s),f|=e.destructible,E=1,e.assignable=2,16!==e.token&&18!==e.token&&(8&f&&Fi(e,118),p=na(e,u,p,0,0,o,i,s),f|=16,16!==e.token&&18!==e.token&&(p=Ks(e,u,0,0,o,i,s,p)))}if(!F||16!==e.token&&18!==e.token||d.push(p),!Ds(e,32768|u,18))break;if(F||(F=1,d=[p]),16===e.token){f|=8;break}}F&&(e.assignable=2,p=Es(e,u,C,A,g,{type:"SequenceExpression",expressions:d}));cs(e,u,16),16&f&&8&f&&Fi(e,145);if(f|=256&e.destructible?256:0|128&e.destructible?128:0,10===e.token)return 48&f&&Fi(e,46),4196352&u&&128&f&&Fi(e,29),2098176&u&&256&f&&Fi(e,30),E&&(e.flags|=128),Pa(e,u,l,F?d:[p],t,0,o,i,s);8&f&&Fi(e,139);return e.destructible=256^(256|e.destructible)|f,128&u?Es(e,u,a,D,c,{type:"ParenthesizedExpression",expression:p}):p}(e,u,r,1,0,a,D,c);case 86021:case 86022:case 86023:return function(e,u,t,n,r){const o=_i[255&e.token],i=86023===e.token?null:"true"===o;return Zi(e,u),e.assignable=2,Es(e,u,t,n,r,512&u?{type:"Literal",value:i,raw:o}:{type:"Literal",value:i})}(e,u,a,D,c);case 86113:return function(e,u){const{tokenPos:t,linePos:n,colPos:r}=e;return Zi(e,u),e.assignable=2,Es(e,u,t,n,r,{type:"ThisExpression"})}(e,u);case 65540:return function(e,u,t,n,r){const{tokenRaw:o,tokenRegExp:i,tokenValue:s}=e;return Zi(e,u),e.assignable=2,Es(e,u,t,n,r,512&u?{type:"Literal",value:s,regex:i,raw:o}:{type:"Literal",value:s,regex:i})}(e,u,a,D,c);case 133:case 86096:return function(e,u,t,n,r,o){let i=null,s=null;const a=Ia(e,u=16777216^(16778240|u));a.length&&(n=e.tokenPos,r=e.linePos,o=e.colPos);Zi(e,u),4096&e.token&&20567!==e.token&&(ds(e,u,e.token)&&Fi(e,114),537079808==(537079808&e.token)&&Fi(e,115),i=da(e,u,0));let D=u;Ds(e,32768|u,20567)?(s=ta(e,u,0,t,0,e.tokenPos,e.linePos,e.colPos),D|=524288):D=524288^(524288|D);const c=Oa(e,D,u,void 0,2,0,t);return e.assignable=2,Es(e,u,n,r,o,1&u?{type:"ClassExpression",id:i,superClass:s,decorators:a,body:c}:{type:"ClassExpression",id:i,superClass:s,body:c})}(e,u,i,a,D,c);case 86111:return function(e,u,t,n,r){switch(Zi(e,u),e.token){case 67108991:Fi(e,161);case 67174411:(524288&u)<1&&Fi(e,26),16384&u&&Fi(e,143),e.assignable=2;break;case 69271571:case 67108877:(262144&u)<1&&Fi(e,27),16384&u&&Fi(e,143),e.assignable=1;break;default:Fi(e,28,"super")}return Es(e,u,t,n,r,{type:"Super"})}(e,u,a,D,c);case 67174409:return Da(e,u,a,D,c);case 67174408:return ca(e,u);case 86109:return function(e,u,t,n,r,o){const i=da(e,32768|u,0),{tokenPos:s,linePos:a,colPos:D}=e;if(Ds(e,u,67108877)){if(67108864&u&&143494===e.token)return e.assignable=2,function(e,u,t,n,r,o){const i=da(e,u,0);return Es(e,u,n,r,o,{type:"MetaProperty",meta:t,property:i})}(e,u,i,n,r,o);Fi(e,91)}e.assignable=2,16842752==(16842752&e.token)&&Fi(e,62,_i[255&e.token]);const c=oa(e,u,2,1,0,0,t,1,s,a,D);u=134217728^(134217728|u),67108991===e.token&&Fi(e,162);const l=wa(e,u,c,t,s,a,D);return e.assignable=2,Es(e,u,n,r,o,{type:"NewExpression",callee:l,arguments:67174411===e.token?fa(e,u,t):[]})}(e,u,i,a,D,c);case 134283389:return aa(e,u,a,D,c);case 131:return qa(e,u,a,D,c);case 86108:return function(e,u,t,n,r,o,i){let s=da(e,u,0);if(67108877===e.token)return ia(e,u,s,r,o,i);t&&Fi(e,137);return s=sa(e,u,n,r,o,i),e.assignable=2,na(e,u,s,n,0,r,o,i)}(e,u,n,i,a,D,c);case 8456258:if(16&u)return $a(e,u,1,a,D,c);default:if(Ps(u,e.token))return ka(e,u,a,D,c);Fi(e,28,_i[255&e.token])}}function ia(e,u,t,n,r,o){return 0==(2048&u)&&Fi(e,163),Zi(e,u),143495!==e.token&&"meta"!==e.tokenValue&&Fi(e,28,_i[255&e.token]),e.assignable=2,Es(e,u,n,r,o,{type:"MetaProperty",meta:t,property:da(e,u,0)})}function sa(e,u,t,n,r,o){cs(e,32768|u,67174411),14===e.token&&Fi(e,138);const i=Js(e,u,1,0,t,e.tokenPos,e.linePos,e.colPos);return cs(e,u,16),Es(e,u,n,r,o,{type:"ImportExpression",source:i})}function aa(e,u,t,n,r){const{tokenRaw:o,tokenValue:i}=e;return Zi(e,u),e.assignable=2,Es(e,u,t,n,r,512&u?{type:"Literal",value:i,bigint:o.slice(0,-1),raw:o}:{type:"Literal",value:i,bigint:o.slice(0,-1)})}function Da(e,u,t,n,r){e.assignable=2;const{tokenValue:o,tokenRaw:i,tokenPos:s,linePos:a,colPos:D}=e;cs(e,u,67174409);return Es(e,u,t,n,r,{type:"TemplateLiteral",expressions:[],quasis:[la(e,u,o,i,s,a,D,!0)]})}function ca(e,u){u=134217728^(134217728|u);const{tokenValue:t,tokenRaw:n,tokenPos:r,linePos:o,colPos:i}=e;cs(e,32768|u,67174408);const s=[la(e,u,t,n,r,o,i,!1)],a=[Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos)];for(1074790415!==e.token&&Fi(e,80);67174409!==(e.token=$i(e,u));){const{tokenValue:t,tokenRaw:n,tokenPos:r,linePos:o,colPos:i}=e;cs(e,32768|u,67174408),s.push(la(e,u,t,n,r,o,i,!1)),a.push(Ys(e,u,0,1,e.tokenPos,e.linePos,e.colPos)),1074790415!==e.token&&Fi(e,80)}{const{tokenValue:t,tokenRaw:n,tokenPos:r,linePos:o,colPos:i}=e;cs(e,u,67174409),s.push(la(e,u,t,n,r,o,i,!0))}return Es(e,u,r,o,i,{type:"TemplateLiteral",expressions:a,quasis:s})}function la(e,u,t,n,r,o,i,s){const a=Es(e,u,r,o,i,{type:"TemplateElement",value:{cooked:t,raw:n},tail:s}),D=s?1:2;return 2&u&&(a.start+=1,a.range[0]+=1,a.end-=D,a.range[1]-=D),4&u&&(a.loc.start.column+=1,a.loc.end.column-=D),a}function pa(e,u,t,n,r){cs(e,32768|(u=134217728^(134217728|u)),14);const o=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos);return e.assignable=1,Es(e,u,t,n,r,{type:"SpreadElement",argument:o})}function fa(e,u,t){Zi(e,32768|u);const n=[];if(16===e.token)return Zi(e,u),n;for(;16!==e.token&&(14===e.token?n.push(pa(e,u,e.tokenPos,e.linePos,e.colPos)):n.push(Js(e,u,1,0,t,e.tokenPos,e.linePos,e.colPos)),18===e.token)&&(Zi(e,32768|u),16!==e.token););return cs(e,u,16),n}function da(e,u,t){const{tokenValue:n,tokenPos:r,linePos:o,colPos:i}=e;return Zi(e,u),Es(e,u,r,o,i,268435456&u?{type:"Identifier",name:n,pattern:1===t}:{type:"Identifier",name:n})}function Fa(e,u){const{tokenValue:t,tokenRaw:n,tokenPos:r,linePos:o,colPos:i}=e;return 134283389===e.token?aa(e,u,r,o,i):(Zi(e,u),e.assignable=2,Es(e,u,r,o,i,512&u?{type:"Literal",value:t,raw:n}:{type:"Literal",value:t}))}function Ea(e,u,t,n,r,o,i,s,a,D){Zi(e,32768|u);const c=r?as(e,u,8457014):0;let l,p=null,f=t?{parent:void 0,type:2}:void 0;if(67174411===e.token)(1&o)<1&&Fi(e,37,"Function");else{const r=4&n&&((8192&u)<1||(2048&u)<1)?4:64;fs(e,u|(3072&u)<<11,e.token),t&&(4&r?Bs(e,u,t,e.tokenValue,r):ys(e,u,t,e.tokenValue,r,n),f=ms(f,256),o&&2&o&&ks(e,e.tokenValue)),l=e.token,143360&e.token?p=da(e,u,0):Fi(e,28,_i[255&e.token])}u=32243712^(32243712|u)|67108864|2*i+c<<21|(c?0:1073741824),t&&(f=ms(f,512));return Es(e,u,s,a,D,{type:"FunctionDeclaration",id:p,params:va(e,8388608|u,f,0,1),body:ua(e,143360^(143360|u),t?ms(f,128):f,8,l,t?f.scopeError:void 0),async:1===i,generator:1===c})}function Ca(e,u,t,n,r,o,i){Zi(e,32768|u);const s=as(e,u,8457014),a=2*t+s<<21;let D,c=null,l=64&u?{parent:void 0,type:2}:void 0;(176128&e.token)>0&&(fs(e,32243712^(32243712|u)|a,e.token),l&&(l=ms(l,256)),D=e.token,c=da(e,u,0)),u=32243712^(32243712|u)|67108864|a|(s?0:1073741824),l&&(l=ms(l,512));const p=va(e,8388608|u,l,n,1),f=ua(e,-134377473&u,l?ms(l,128):l,0,D,void 0);return e.assignable=2,Es(e,u,r,o,i,{type:"FunctionExpression",id:c,params:p,body:f,async:1===t,generator:1===s})}function Aa(e,u,t,n,r,o,i,s,a,D,c){Zi(e,32768|u);const l=[];let p=0;for(u=134217728^(134217728|u);20!==e.token;)if(Ds(e,32768|u,18))l.push(null);else{let n;const{token:a,tokenPos:D,linePos:c,colPos:f,tokenValue:d}=e;if(143360&a)if(n=oa(e,u,i,0,1,0,r,1,D,c,f),1077936157===e.token){2&e.assignable&&Fi(e,24),Zi(e,32768|u),t&&hs(e,u,t,d,i,s);const a=Js(e,u,1,1,r,e.tokenPos,e.linePos,e.colPos);n=Es(e,u,D,c,f,o?{type:"AssignmentPattern",left:n,right:a}:{type:"AssignmentExpression",operator:"=",left:n,right:a}),p|=256&e.destructible?256:0|128&e.destructible?128:0}else 18===e.token||20===e.token?(2&e.assignable?p|=16:t&&hs(e,u,t,d,i,s),p|=256&e.destructible?256:0|128&e.destructible?128:0):(p|=1&i?32:(2&i)<1?16:0,n=na(e,u,n,r,0,D,c,f),18!==e.token&&20!==e.token?(1077936157!==e.token&&(p|=16),n=Ks(e,u,r,o,D,c,f,n)):1077936157!==e.token&&(p|=2&e.assignable?16:32));else 2097152&a?(n=2162700===e.token?ya(e,u,t,0,r,o,i,s,D,c,f):Aa(e,u,t,0,r,o,i,s,D,c,f),p|=e.destructible,e.assignable=16&e.destructible?2:1,18===e.token||20===e.token?2&e.assignable&&(p|=16):8&e.destructible?Fi(e,68):(n=na(e,u,n,r,0,D,c,f),p=2&e.assignable?16:0,18!==e.token&&20!==e.token?n=Ks(e,u,r,o,D,c,f,n):1077936157!==e.token&&(p|=2&e.assignable?16:32))):14===a?(n=ma(e,u,t,20,i,s,0,r,o,D,c,f),p|=e.destructible,18!==e.token&&20!==e.token&&Fi(e,28,_i[255&e.token])):(n=ta(e,u,1,0,1,D,c,f),18!==e.token&&20!==e.token?(n=Ks(e,u,r,o,D,c,f,n),(3&i)<1&&67174411===a&&(p|=16)):2&e.assignable?p|=16:67174411===a&&(p|=1&e.assignable&&3&i?32:16));if(l.push(n),!Ds(e,32768|u,18))break;if(20===e.token)break}cs(e,u,20);const f=Es(e,u,a,D,c,{type:o?"ArrayPattern":"ArrayExpression",elements:l});return!n&&4194304&e.token?ga(e,u,p,r,o,a,D,c,f):(e.destructible=p,f)}function ga(e,u,t,n,r,o,i,s,a){1077936157!==e.token&&Fi(e,24),Zi(e,32768|u),16&t&&Fi(e,24),r||ls(e,a);const{tokenPos:D,linePos:c,colPos:l}=e,p=Js(e,u,1,1,n,D,c,l);return e.destructible=72^(72|t)|(128&e.destructible?128:0)|(256&e.destructible?256:0),Es(e,u,o,i,s,r?{type:"AssignmentPattern",left:a,right:p}:{type:"AssignmentExpression",left:a,operator:"=",right:p})}function ma(e,u,t,n,r,o,i,s,a,D,c,l){Zi(e,32768|u);let p=null,f=0,{token:d,tokenValue:F,tokenPos:E,linePos:C,colPos:A}=e;if(143360&d)e.assignable=1,p=oa(e,u,r,0,1,0,s,1,E,C,A),d=e.token,p=na(e,u,p,s,0,E,C,A),18!==e.token&&e.token!==n&&(2&e.assignable&&1077936157===e.token&&Fi(e,68),f|=16,p=Ks(e,u,s,a,E,C,A,p)),2&e.assignable?f|=16:d===n||18===d?t&&hs(e,u,t,F,r,o):f|=32,f|=128&e.destructible?128:0;else if(d===n)Fi(e,39);else{if(!(2097152&d)){f|=32,p=ta(e,u,1,s,1,e.tokenPos,e.linePos,e.colPos);const{token:t,tokenPos:r,linePos:o,colPos:i}=e;return 1077936157===t&&t!==n&&18!==t?(2&e.assignable&&Fi(e,24),p=Ks(e,u,s,a,r,o,i,p),f|=16):(18===t?f|=16:t!==n&&(p=Ks(e,u,s,a,r,o,i,p)),f|=1&e.assignable?32:16),e.destructible=f,e.token!==n&&18!==e.token&&Fi(e,155),Es(e,u,D,c,l,{type:a?"RestElement":"SpreadElement",argument:p})}p=2162700===e.token?ya(e,u,t,1,s,a,r,o,E,C,A):Aa(e,u,t,1,s,a,r,o,E,C,A),d=e.token,1077936157!==d&&d!==n&&18!==d?(8&e.destructible&&Fi(e,68),p=na(e,u,p,s,0,E,C,A),f|=2&e.assignable?16:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(f|=16),p=Ks(e,u,s,a,E,C,A,p)):(8454144==(8454144&e.token)&&(p=ea(e,u,1,E,C,A,4,d,p)),Ds(e,32768|u,22)&&(p=Qs(e,u,p,E,C,A)),f|=2&e.assignable?16:32)):f|=1074790415===n&&1077936157!==d?16:e.destructible}if(e.token!==n)if(1&r&&(f|=i?16:32),Ds(e,32768|u,1077936157)){16&f&&Fi(e,24),ls(e,p);const t=Js(e,u,1,1,s,e.tokenPos,e.linePos,e.colPos);p=Es(e,u,E,C,A,a?{type:"AssignmentPattern",left:p,right:t}:{type:"AssignmentExpression",left:p,operator:"=",right:t}),f=16}else f|=16;return e.destructible=f,Es(e,u,D,c,l,{type:a?"RestElement":"SpreadElement",argument:p})}function ha(e,u,t,n,r,o,i){const s=(64&t)<1?31981568:14680064;let a=64&(u=(u|s)^s|(88&t)<<18|100925440)?ms({parent:void 0,type:2},512):void 0;const D=function(e,u,t,n,r,o){cs(e,u,67174411);const i=[];if(e.flags=128^(128|e.flags),16===e.token)return 512&n&&Fi(e,35,"Setter","one",""),Zi(e,u),i;256&n&&Fi(e,35,"Getter","no","s");512&n&&14===e.token&&Fi(e,36);u=134217728^(134217728|u);let s=0,a=0;for(;18!==e.token;){let D=null;const{tokenPos:c,linePos:l,colPos:p}=e;if(143360&e.token?((1024&u)<1&&(36864==(36864&e.token)&&(e.flags|=256),537079808==(537079808&e.token)&&(e.flags|=512)),D=Ma(e,u,t,1|n,0,c,l,p)):(2162700===e.token?D=ya(e,u,t,1,o,1,r,0,c,l,p):69271571===e.token?D=Aa(e,u,t,1,o,1,r,0,c,l,p):14===e.token&&(D=ma(e,u,t,16,r,0,0,o,1,c,l,p)),a=1,48&e.destructible&&Fi(e,47)),1077936157===e.token){Zi(e,32768|u),a=1;D=Es(e,u,c,l,p,{type:"AssignmentPattern",left:D,right:Js(e,u,1,1,0,e.tokenPos,e.linePos,e.colPos)})}if(s++,i.push(D),!Ds(e,u,18))break;if(16===e.token)break}512&n&&1!==s&&Fi(e,35,"Setter","one","");t&&void 0!==t.scopeError&&Ei(t.scopeError);a&&(e.flags|=128);return cs(e,u,16),i}(e,8388608|u,a,t,1,n);a&&(a=ms(a,128));return Es(e,u,r,o,i,{type:"FunctionExpression",params:D,body:ua(e,-134230017&u,a,0,void 0,void 0),async:(16&t)>0,generator:(8&t)>0,id:null})}function ya(e,u,t,n,r,o,i,s,a,D,c){Zi(e,u);const l=[];let p=0,f=0;for(u=134217728^(134217728|u);1074790415!==e.token;){const{token:n,tokenValue:a,linePos:D,colPos:c,tokenPos:d}=e;if(14===n)l.push(ma(e,u,t,1074790415,i,s,0,r,o,d,D,c));else{let F,E=0,C=null;const A=e.token;if(143360&e.token||121===e.token)if(C=da(e,u,0),18===e.token||1074790415===e.token||1077936157===e.token)if(E|=4,1024&u&&537079808==(537079808&n)?p|=16:ps(e,u,i,n,0),t&&hs(e,u,t,a,i,s),Ds(e,32768|u,1077936157)){p|=8;const t=Js(e,u,1,1,r,e.tokenPos,e.linePos,e.colPos);p|=256&e.destructible?256:0|128&e.destructible?128:0,F=Es(e,u,d,D,c,{type:"AssignmentPattern",left:-2147483648&u?Object.assign({},C):C,right:t})}else p|=(209008===n?128:0)|(121===n?16:0),F=-2147483648&u?Object.assign({},C):C;else if(Ds(e,32768|u,21)){const{tokenPos:D,linePos:c,colPos:l}=e;if("__proto__"===a&&f++,143360&e.token){const n=e.token,a=e.tokenValue;p|=121===A?16:0,F=oa(e,u,i,0,1,0,r,1,D,c,l);const{token:f}=e;F=na(e,u,F,r,0,D,c,l),18===e.token||1074790415===e.token?1077936157===f||1074790415===f||18===f?(p|=128&e.destructible?128:0,2&e.assignable?p|=16:t&&143360==(143360&n)&&hs(e,u,t,a,i,s)):p|=1&e.assignable?32:16:4194304==(4194304&e.token)?(2&e.assignable?p|=16:1077936157!==f?p|=32:t&&hs(e,u,t,a,i,s),F=Ks(e,u,r,o,D,c,l,F)):(p|=16,8454144==(8454144&e.token)&&(F=ea(e,u,1,D,c,l,4,f,F)),Ds(e,32768|u,22)&&(F=Qs(e,u,F,D,c,l)))}else 2097152==(2097152&e.token)?(F=69271571===e.token?Aa(e,u,t,0,r,o,i,s,D,c,l):ya(e,u,t,0,r,o,i,s,D,c,l),p=e.destructible,e.assignable=16&p?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(p|=16):8&e.destructible?Fi(e,68):(F=na(e,u,F,r,0,D,c,l),p=2&e.assignable?16:0,4194304==(4194304&e.token)?F=Zs(e,u,r,o,D,c,l,F):(8454144==(8454144&e.token)&&(F=ea(e,u,1,D,c,l,4,n,F)),Ds(e,32768|u,22)&&(F=Qs(e,u,F,D,c,l)),p|=2&e.assignable?16:32))):(F=ta(e,u,1,r,1,D,c,l),p|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(p|=16):(F=na(e,u,F,r,0,D,c,l),p=2&e.assignable?16:0,18!==e.token&&1074790415!==n&&(1077936157!==e.token&&(p|=16),F=Ks(e,u,r,o,D,c,l,F))))}else 69271571===e.token?(p|=16,209007===n&&(E|=16),E|=2|(12402===n?256:12403===n?512:1),C=Ba(e,u,r),p|=e.assignable,F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):143360&e.token?(p|=16,121===n&&Fi(e,92),209007===n&&(1&e.flags&&Fi(e,128),E|=16),C=da(e,u,0),E|=12402===n?256:12403===n?512:1,F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):67174411===e.token?(p|=16,E|=1,F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):8457014===e.token?(p|=16,12402===n||12403===n?Fi(e,40):143483===n&&Fi(e,92),Zi(e,u),E|=9|(209007===n?16:0),143360&e.token?C=da(e,u,0):134217728==(134217728&e.token)?C=Fa(e,u):69271571===e.token?(E|=2,C=Ba(e,u,r),p|=e.assignable):Fi(e,28,_i[255&e.token]),F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):134217728==(134217728&e.token)?(209007===n&&(E|=16),E|=12402===n?256:12403===n?512:1,p|=16,C=Fa(e,u),F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):Fi(e,129);else if(134217728==(134217728&e.token))if(C=Fa(e,u),21===e.token){cs(e,32768|u,21);const{tokenPos:D,linePos:c,colPos:l}=e;if("__proto__"===a&&f++,143360&e.token){F=oa(e,u,i,0,1,0,r,1,D,c,l);const{token:n,tokenValue:a}=e;F=na(e,u,F,r,0,D,c,l),18===e.token||1074790415===e.token?1077936157===n||1074790415===n||18===n?2&e.assignable?p|=16:t&&hs(e,u,t,a,i,s):p|=1&e.assignable?32:16:1077936157===e.token?(2&e.assignable&&(p|=16),F=Ks(e,u,r,o,D,c,l,F)):(p|=16,F=Ks(e,u,r,o,D,c,l,F))}else 2097152==(2097152&e.token)?(F=69271571===e.token?Aa(e,u,t,0,r,o,i,s,D,c,l):ya(e,u,t,0,r,o,i,s,D,c,l),p=e.destructible,e.assignable=16&p?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(p|=16):8!=(8&e.destructible)&&(F=na(e,u,F,r,0,D,c,l),p=2&e.assignable?16:0,4194304==(4194304&e.token)?F=Zs(e,u,r,o,D,c,l,F):(8454144==(8454144&e.token)&&(F=ea(e,u,1,D,c,l,4,n,F)),Ds(e,32768|u,22)&&(F=Qs(e,u,F,D,c,l)),p|=2&e.assignable?16:32))):(F=ta(e,u,1,0,1,D,c,l),p|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(p|=16):(F=na(e,u,F,r,0,D,c,l),p=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(p|=16),F=Ks(e,u,r,o,D,c,l,F))))}else 67174411===e.token?(E|=1,F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos),p=16|e.assignable):Fi(e,130);else if(69271571===e.token)if(C=Ba(e,u,r),p|=256&e.destructible?256:0,E|=2,21===e.token){Zi(e,32768|u);const{tokenPos:a,linePos:D,colPos:c,tokenValue:l,token:f}=e;if(143360&e.token){F=oa(e,u,i,0,1,0,r,1,a,D,c);const{token:n}=e;F=na(e,u,F,r,0,a,D,c),4194304==(4194304&e.token)?(p|=2&e.assignable?16:1077936157===n?0:32,F=Zs(e,u,r,o,a,D,c,F)):18===e.token||1074790415===e.token?1077936157===n||1074790415===n||18===n?2&e.assignable?p|=16:t&&143360==(143360&f)&&hs(e,u,t,l,i,s):p|=1&e.assignable?32:16:(p|=16,F=Ks(e,u,r,o,a,D,c,F))}else 2097152==(2097152&e.token)?(F=69271571===e.token?Aa(e,u,t,0,r,o,i,s,a,D,c):ya(e,u,t,0,r,o,i,s,a,D,c),p=e.destructible,e.assignable=16&p?2:1,18===e.token||1074790415===e.token?2&e.assignable&&(p|=16):8&p?Fi(e,59):(F=na(e,u,F,r,0,a,D,c),p=2&e.assignable?16|p:0,4194304==(4194304&e.token)?(1077936157!==e.token&&(p|=16),F=Zs(e,u,r,o,a,D,c,F)):(8454144==(8454144&e.token)&&(F=ea(e,u,1,a,D,c,4,n,F)),Ds(e,32768|u,22)&&(F=Qs(e,u,F,a,D,c)),p|=2&e.assignable?16:32))):(F=ta(e,u,1,0,1,a,D,c),p|=1&e.assignable?32:16,18===e.token||1074790415===e.token?2&e.assignable&&(p|=16):(F=na(e,u,F,r,0,a,D,c),p=1&e.assignable?0:16,18!==e.token&&1074790415!==e.token&&(1077936157!==e.token&&(p|=16),F=Ks(e,u,r,o,a,D,c,F))))}else 67174411===e.token?(E|=1,F=ha(e,u,E,r,e.tokenPos,D,c),p=16):Fi(e,41);else if(8457014===n)if(cs(e,32768|u,8457014),E|=8,143360&e.token){const{token:t,line:n,index:o}=e;C=da(e,u,0),E|=1,67174411===e.token?(p|=16,F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):Ci(o,n,o,209007===t?43:12402===t||12403===e.token?42:44,_i[255&t])}else 134217728==(134217728&e.token)?(p|=16,C=Fa(e,u),E|=1,F=ha(e,u,E,r,d,D,c)):69271571===e.token?(p|=16,E|=3,C=Ba(e,u,r),F=ha(e,u,E,r,e.tokenPos,e.linePos,e.colPos)):Fi(e,122);else Fi(e,28,_i[255&n]);p|=128&e.destructible?128:0,e.destructible=p,l.push(Es(e,u,d,D,c,{type:"Property",key:C,value:F,kind:768&E?512&E?"set":"get":"init",computed:(2&E)>0,method:(1&E)>0,shorthand:(4&E)>0}))}if(p|=e.destructible,18!==e.token)break;Zi(e,u)}cs(e,u,1074790415),f>1&&(p|=64);const d=Es(e,u,a,D,c,{type:o?"ObjectPattern":"ObjectExpression",properties:l});return!n&&4194304&e.token?ga(e,u,p,r,o,a,D,c,d):(e.destructible=p,d)}function Ba(e,u,t){Zi(e,32768|u);const n=Js(e,134217728^(134217728|u),1,0,t,e.tokenPos,e.linePos,e.colPos);return cs(e,u,20),n}function ka(e,u,t,n,r){const{tokenValue:o}=e,i=da(e,u,0);if(e.assignable=1,10===e.token){let s;return 64&u&&(s=As(e,u,o)),e.flags=128^(128|e.flags),xa(e,u,s,[i],0,t,n,r)}return i}function ba(e,u,t,n,r,o,i,s,a,D){o||Fi(e,54),r&&Fi(e,48),e.flags&=-129;return xa(e,u,64&u?As(e,u,t):void 0,[n],i,s,a,D)}function Pa(e,u,t,n,r,o,i,s,a){r||Fi(e,54);for(let u=0;u0&&"constructor"===e.tokenValue&&Fi(e,106),1074790415===e.token&&Fi(e,105),Ds(e,u,1074790417)?o>0&&Fi(e,116):c.push(Ra(e,u,n,t,r,l,0,i,e.tokenPos,e.linePos,e.colPos))}return cs(e,8&o?32768|u:u,1074790415),Es(e,u,s,a,D,{type:"ClassBody",body:c})}function Ra(e,u,t,n,r,o,i,s,a,D,c){let l=i?32:0,p=null;const{token:f,tokenPos:d,linePos:F,colPos:E}=e;if(176128&f)switch(p=da(e,u,0),f){case 36972:if(!i&&67174411!==e.token)return Ra(e,u,t,n,r,o,1,s,a,D,c);break;case 209007:if(67174411!==e.token&&(1&e.flags)<1){if(1&u&&1073741824==(1073741824&e.token))return ja(e,u,p,l,o,d,F,E);l|=16|(as(e,u,8457014)?8:0)}break;case 12402:if(67174411!==e.token){if(1&u&&1073741824==(1073741824&e.token))return ja(e,u,p,l,o,d,F,E);l|=256}break;case 12403:if(67174411!==e.token){if(1&u&&1073741824==(1073741824&e.token))return ja(e,u,p,l,o,d,F,E);l|=512}}else 69271571===f?(l|=2,p=Ba(e,n,s)):134217728==(134217728&f)?p=Fa(e,u):8457014===f?(l|=8,Zi(e,u)):1&u&&131===e.token?(l|=4096,p=qa(e,u,d,F,E),u|=16384):1&u&&1073741824==(1073741824&e.token)?(l|=128,u|=16384):122===f?(p=da(e,u,0),67174411!==e.token&&Fi(e,28,_i[255&e.token])):Fi(e,28,_i[255&e.token]);if(792&l&&(143360&e.token?p=da(e,u,0):134217728==(134217728&e.token)?p=Fa(e,u):69271571===e.token?(l|=2,p=Ba(e,u,0)):122===e.token?p=da(e,u,0):1&u&&131===e.token?(l|=4096,p=qa(e,u,d,F,E)):Fi(e,131)),(2&l)<1&&("constructor"===e.tokenValue?(1073741824==(1073741824&e.token)?Fi(e,125):(32&l)<1&&67174411===e.token&&(920&l?Fi(e,50,"accessor"):(524288&u)<1&&(32&e.flags?Fi(e,51):e.flags|=32)),l|=64):(4096&l)<1&&824&l&&"prototype"===e.tokenValue&&Fi(e,49)),1&u&&67174411!==e.token)return ja(e,u,p,l,o,d,F,E);const C=ha(e,u,l,s,e.tokenPos,e.linePos,e.colPos);return Es(e,u,a,D,c,1&u?{type:"MethodDefinition",kind:(32&l)<1&&64&l?"constructor":256&l?"get":512&l?"set":"method",static:(32&l)>0,computed:(2&l)>0,key:p,decorators:o,value:C}:{type:"MethodDefinition",kind:(32&l)<1&&64&l?"constructor":256&l?"get":512&l?"set":"method",static:(32&l)>0,computed:(2&l)>0,key:p,value:C})}function qa(e,u,t,n,r){Zi(e,u);const{tokenValue:o}=e;return"constructor"===o&&Fi(e,124),Zi(e,u),Es(e,u,t,n,r,{type:"PrivateIdentifier",name:o})}function ja(e,u,t,n,r,o,i,s){let a=null;if(8&n&&Fi(e,0),1077936157===e.token){Zi(e,32768|u);const{tokenPos:t,linePos:n,colPos:r}=e;537079928===e.token&&Fi(e,115),a=oa(e,16384|u,2,0,1,0,0,1,t,n,r),1073741824!=(1073741824&e.token)&&(a=na(e,16384|u,a,0,0,t,n,r),a=Ks(e,16384|u,0,0,t,n,r,a),18===e.token&&(a=Ws(e,u,0,o,i,s,a)))}return Es(e,u,o,i,s,{type:"PropertyDefinition",key:t,value:a,static:(32&n)>0,computed:(2&n)>0,decorators:r})}function Va(e,u,t,n,r,o,i,s){if(143360&e.token)return Ma(e,u,t,n,r,o,i,s);2097152!=(2097152&e.token)&&Fi(e,28,_i[255&e.token]);const a=69271571===e.token?Aa(e,u,t,1,0,1,n,r,o,i,s):ya(e,u,t,1,0,1,n,r,o,i,s);return 16&e.destructible&&Fi(e,47),32&e.destructible&&Fi(e,47),a}function Ma(e,u,t,n,r,o,i,s){const{tokenValue:a,token:D}=e;return 1024&u&&(537079808==(537079808&D)?Fi(e,115):36864==(36864&D)&&Fi(e,114)),20480==(20480&D)&&Fi(e,99),2099200&u&&241773===D&&Fi(e,30),241739===D&&24&n&&Fi(e,97),4196352&u&&209008===D&&Fi(e,95),Zi(e,u),t&&hs(e,u,t,a,n,r),Es(e,u,o,i,s,{type:"Identifier",name:a})}function $a(e,u,t,n,r,o){if(Zi(e,u),8456259===e.token)return Es(e,u,n,r,o,{type:"JSXFragment",openingFragment:Ua(e,u,n,r,o),children:_a(e,u),closingFragment:Ga(e,u,t,e.tokenPos,e.linePos,e.colPos)});let i=null,s=[];const a=function(e,u,t,n,r,o){143360!=(143360&e.token)&&4096!=(4096&e.token)&&Fi(e,0);const i=Ha(e,u,e.tokenPos,e.linePos,e.colPos),s=function(e,u){const t=[];for(;8457016!==e.token&&8456259!==e.token&&1048576!==e.token;)t.push(Ja(e,u,e.tokenPos,e.linePos,e.colPos));return t}(e,u),a=8457016===e.token;8456259===e.token?rs(e,u):(cs(e,u,8457016),t?cs(e,u,8456259):rs(e,u));return Es(e,u,n,r,o,{type:"JSXOpeningElement",name:i,attributes:s,selfClosing:a})}(e,u,t,n,r,o);if(!a.selfClosing){s=_a(e,u),i=function(e,u,t,n,r,o){cs(e,u,25);const i=Ha(e,u,e.tokenPos,e.linePos,e.colPos);t?cs(e,u,8456259):e.token=rs(e,u);return Es(e,u,n,r,o,{type:"JSXClosingElement",name:i})}(e,u,t,e.tokenPos,e.linePos,e.colPos);const n=Cs(i.name);Cs(a.name)!==n&&Fi(e,149,n)}return Es(e,u,n,r,o,{type:"JSXElement",children:s,openingElement:a,closingElement:i})}function Ua(e,u,t,n,r){return rs(e,u),Es(e,u,t,n,r,{type:"JSXOpeningFragment"})}function Ga(e,u,t,n,r,o){return cs(e,u,25),cs(e,u,8456259),Es(e,u,n,r,o,{type:"JSXClosingFragment"})}function _a(e,u){const t=[];for(;25!==e.token;)e.index=e.tokenPos=e.startPos,e.column=e.colPos=e.startColumn,e.line=e.linePos=e.startLine,rs(e,u),t.push(Xa(e,u,e.tokenPos,e.linePos,e.colPos));return t}function Xa(e,u,t,n,r){return 138===e.token?function(e,u,t,n,r){rs(e,u);const o={type:"JSXText",value:e.tokenValue};512&u&&(o.raw=e.tokenRaw);return Es(e,u,t,n,r,o)}(e,u,t,n,r):2162700===e.token?Ya(e,u,0,0,t,n,r):8456258===e.token?$a(e,u,0,t,n,r):void Fi(e,0)}function Ha(e,u,t,n,r){os(e);let o=Ka(e,u,t,n,r);if(21===e.token)return Wa(e,u,o,t,n,r);for(;Ds(e,u,67108877);)os(e),o=za(e,u,o,t,n,r);return o}function za(e,u,t,n,r,o){return Es(e,u,n,r,o,{type:"JSXMemberExpression",object:t,property:Ka(e,u,e.tokenPos,e.linePos,e.colPos)})}function Ja(e,u,t,n,r){if(2162700===e.token)return function(e,u,t,n,r){Zi(e,u),cs(e,u,14);const o=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos);return cs(e,u,1074790415),Es(e,u,t,n,r,{type:"JSXSpreadAttribute",argument:o})}(e,u,t,n,r);os(e);let o=null,i=Ka(e,u,t,n,r);if(21===e.token&&(i=Wa(e,u,i,t,n,r)),1077936157===e.token){const t=ns(e,u),{tokenPos:n,linePos:r,colPos:i}=e;switch(t){case 134283267:o=Fa(e,u);break;case 8456258:o=$a(e,u,1,n,r,i);break;case 2162700:o=Ya(e,u,1,1,n,r,i);break;default:Fi(e,148)}}return Es(e,u,t,n,r,{type:"JSXAttribute",value:o,name:i})}function Wa(e,u,t,n,r,o){cs(e,u,21);return Es(e,u,n,r,o,{type:"JSXNamespacedName",namespace:t,name:Ka(e,u,e.tokenPos,e.linePos,e.colPos)})}function Ya(e,u,t,n,r,o,i){Zi(e,u);const{tokenPos:s,linePos:a,colPos:D}=e;if(14===e.token)return function(e,u,t,n,r){cs(e,u,14);const o=Js(e,u,1,0,0,e.tokenPos,e.linePos,e.colPos);return cs(e,u,1074790415),Es(e,u,t,n,r,{type:"JSXSpreadChild",expression:o})}(e,u,s,a,D);let c=null;return 1074790415===e.token?(n&&Fi(e,151),c=function(e,u,t,n,r){return e.startPos=e.tokenPos,e.startLine=e.linePos,e.startColumn=e.colPos,Es(e,u,t,n,r,{type:"JSXEmptyExpression"})}(e,u,e.startPos,e.startLine,e.startColumn)):c=Js(e,u,1,0,0,s,a,D),t?cs(e,u,1074790415):rs(e,u),Es(e,u,r,o,i,{type:"JSXExpressionContainer",expression:c})}function Ka(e,u,t,n,r){const{tokenValue:o}=e;return Zi(e,u),Es(e,u,t,n,r,{type:"JSXIdentifier",name:o})}var Za=Object.freeze({__proto__:null}),Qa=function(e,u){return vs(e,u,0)},eD=function(e,u){return vs(e,u,3072)},uD=function(e,u){return vs(e,u,0)},tD=Object.defineProperty({ESTree:Za,parse:Qa,parseModule:eD,parseScript:uD,version:"4.1.5"},"__esModule",{value:!0});const nD={module:!0,next:!0,ranges:!0,webcompat:!0,loc:!0,raw:!0,directives:!0,globalReturn:!0,impliedStrict:!1,preserveParens:!1,lexical:!1,identifierPattern:!1,jsx:!0,specDeviation:!0,uniqueKeyInPattern:!1};function rD(e,u){const{parse:t}=tD,n=[],r=[],o=t(e,Object.assign(Object.assign({},nD),{},{module:u,onComment:n,onToken:r}));return o.comments=n,o.tokens=r,o}var oD={parsers:{meriyah:pi((function(t,n,r){const{result:o,error:i}=u((()=>rD(t,!0)),(()=>rD(t,!1)));if(!o)throw function(u){const{message:t,line:n,column:r}=u;return"number"!=typeof n?u:e(t,{start:{line:n,column:r}})}(i);return fo(o,Object.assign(Object.assign({},r),{},{originalText:t}))}))}};export default oD; diff --git a/node_modules/prettier/esm/parser-postcss.mjs b/node_modules/prettier/esm/parser-postcss.mjs new file mode 100644 index 0000000000..9dd77fb8f8 --- /dev/null +++ b/node_modules/prettier/esm/parser-postcss.mjs @@ -0,0 +1,22 @@ +var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e){var t={exports:{}};return e(t,t.exports),t.exports}var n=function(e){return e&&e.Math==Math&&e},o=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")(),i=function(e){try{return!!e()}catch(e){return!0}},s=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,c={f:a&&!u.call({1:2},1)?function(e){var t=a(this,e);return!!t&&t.enumerable}:u},l=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},f={}.toString,p=function(e){return f.call(e).slice(8,-1)},h="".split,d=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==p(e)?h.call(e,""):Object(e)}:Object,D=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},g=function(e){return d(D(e))},m=function(e){return"object"==typeof e?null!==e:"function"==typeof e},v=function(e,t){if(!m(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!m(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!m(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!m(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")},y=function(e){return Object(D(e))},w={}.hasOwnProperty,b=Object.hasOwn||function(e,t){return w.call(y(e),t)},C=o.document,E=m(C)&&m(C.createElement),F=!s&&!i((function(){return 7!=Object.defineProperty((e="div",E?C.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),A=Object.getOwnPropertyDescriptor,x={f:s?A:function(e,t){if(e=g(e),t=v(t,!0),F)try{return A(e,t)}catch(e){}if(b(e,t))return l(!c.f.call(e,t),e[t])}},k=function(e){if(!m(e))throw TypeError(String(e)+" is not an object");return e},_=Object.defineProperty,O={f:s?_:function(e,t,r){if(k(e),t=v(t,!0),k(r),F)try{return _(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},S=s?function(e,t,r){return O.f(e,t,l(1,r))}:function(e,t,r){return e[t]=r,e},T=function(e,t){try{S(o,e,t)}catch(r){o[e]=t}return t},I=o["__core-js_shared__"]||T("__core-js_shared__",{}),N=Function.toString;"function"!=typeof I.inspectSource&&(I.inspectSource=function(e){return N.call(e)});var M,R,j,L,B=I.inspectSource,P=o.WeakMap,$="function"==typeof P&&/native code/.test(B(P)),U=r((function(e){(e.exports=function(e,t){return I[e]||(I[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),G=0,W=Math.random(),z=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++G+W).toString(36)},V=U("keys"),q={},X=o.WeakMap;if($||I.state){var J=I.state||(I.state=new X),H=J.get,Y=J.has,K=J.set;M=function(e,t){if(Y.call(J,e))throw new TypeError("Object already initialized");return t.facade=e,K.call(J,e,t),t},R=function(e){return H.call(J,e)||{}},j=function(e){return Y.call(J,e)}}else{var Z=V[L="state"]||(V[L]=z(L));q[Z]=!0,M=function(e,t){if(b(e,Z))throw new TypeError("Object already initialized");return t.facade=e,S(e,Z,t),t},R=function(e){return b(e,Z)?e[Z]:{}},j=function(e){return b(e,Z)}}var Q,ee,te={set:M,get:R,has:j,enforce:function(e){return j(e)?R(e):M(e,{})},getterFor:function(e){return function(t){var r;if(!m(t)||(r=R(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}},re=r((function(e){var t=te.get,r=te.enforce,n=String(String).split("String");(e.exports=function(e,t,i,s){var u,a=!!s&&!!s.unsafe,c=!!s&&!!s.enumerable,l=!!s&&!!s.noTargetGet;"function"==typeof i&&("string"!=typeof t||b(i,"name")||S(i,"name",t),(u=r(i)).source||(u.source=n.join("string"==typeof t?t:""))),e!==o?(a?!l&&e[t]&&(c=!0):delete e[t],c?e[t]=i:S(e,t,i)):c?e[t]=i:T(t,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||B(this)}))})),ne=o,oe=function(e){return"function"==typeof e?e:void 0},ie=function(e,t){return arguments.length<2?oe(ne[e])||oe(o[e]):ne[e]&&ne[e][t]||o[e]&&o[e][t]},se=Math.ceil,ue=Math.floor,ae=function(e){return isNaN(e=+e)?0:(e>0?ue:se)(e)},ce=Math.min,le=function(e){return e>0?ce(ae(e),9007199254740991):0},fe=Math.max,pe=Math.min,he=function(e){return function(t,r,n){var o,i=g(t),s=le(i.length),u=function(e,t){var r=ae(e);return r<0?fe(r+t,0):pe(r,t)}(n,s);if(e&&r!=r){for(;s>u;)if((o=i[u++])!=o)return!0}else for(;s>u;u++)if((e||u in i)&&i[u]===r)return e||u||0;return!e&&-1}},de={includes:he(!0),indexOf:he(!1)}.indexOf,De=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),ge={f:Object.getOwnPropertyNames||function(e){return function(e,t){var r,n=g(e),o=0,i=[];for(r in n)!b(q,r)&&b(n,r)&&i.push(r);for(;t.length>o;)b(n,r=t[o++])&&(~de(i,r)||i.push(r));return i}(e,De)}},me={f:Object.getOwnPropertySymbols},ve=ie("Reflect","ownKeys")||function(e){var t=ge.f(k(e)),r=me.f;return r?t.concat(r(e)):t},ye=function(e,t){for(var r=ve(t),n=O.f,o=x.f,i=0;i0;)e[n]=e[--n];n!==i++&&(e[n]=r)}return e},Ne=function(e,t,r){for(var n=e.length,o=t.length,i=0,s=0,u=[];i=74)&&(Q=Re.match(/Chrome\/(\d+)/))&&(ee=Q[1]);var Ge,We,ze=ee&&+ee,Ve=Re.match(/AppleWebKit\/(\d+)\./),qe=!!Ve&&+Ve[1],Xe=[],Je=Xe.sort,He=i((function(){Xe.sort(void 0)})),Ye=i((function(){Xe.sort(null)})),Ke=!!(We=[]["sort"])&&i((function(){We.call(null,Ge||function(){throw 1},1)})),Ze=!i((function(){if(ze)return ze<70;if(!(Le&&Le>3)){if(Be)return!0;if(qe)return qe<603;var e,t,r,n,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)Xe.push({k:t+n,v:r})}for(Xe.sort((function(e,t){return t.v-e.v})),n=0;nString(r)?1:-1}}(e))).length,n=0;n0&&Qe(a))c=tt(e,t,a,le(a.length),c,i-1)-1;else{if(c>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[c]=a}c++}l++}return c},rt=tt,nt=!!Object.getOwnPropertySymbols&&!i((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ze&&ze<41})),ot=nt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,it=U("wks"),st=o.Symbol,ut=ot?st:st&&st.withoutSetter||z,at=function(e){return b(it,e)&&(nt||"string"==typeof it[e])||(nt&&b(st,e)?it[e]=st[e]:it[e]=ut("Symbol."+e)),it[e]},ct=at("species"),lt=function(e,t){var r;return Qe(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!Qe(r.prototype)?m(r)&&null===(r=r[ct])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)};_e({target:"Array",proto:!0},{flatMap:function(e){var t,r=y(this),n=le(r.length);return Oe(e),(t=lt(r,0)).length=rt(t,r,r,n,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var ft={},pt=at("iterator"),ht=Array.prototype,dt={};dt[at("toStringTag")]="z";var Dt="[object z]"===String(dt),gt=at("toStringTag"),mt="Arguments"==p(function(){return arguments}()),vt=Dt?p:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),gt))?r:mt?p(t):"Object"==(n=p(t))&&"function"==typeof t.callee?"Arguments":n},yt=at("iterator"),wt=function(e){var t=e.return;if(void 0!==t)return k(t.call(e)).value},bt=function(e,t){this.stopped=e,this.result=t},Ct=function(e,t,r){var n,o,i,s,u,a,c,l,f=r&&r.that,p=!(!r||!r.AS_ENTRIES),h=!(!r||!r.IS_ITERATOR),d=!(!r||!r.INTERRUPTED),D=et(t,f,1+p+d),g=function(e){return n&&wt(n),new bt(!0,e)},m=function(e){return p?(k(e),d?D(e[0],e[1],g):D(e[0],e[1])):d?D(e,g):D(e)};if(h)n=e;else{if("function"!=typeof(o=function(e){if(null!=e)return e[yt]||e["@@iterator"]||ft[vt(e)]}(e)))throw TypeError("Target is not iterable");if(void 0!==(l=o)&&(ft.Array===l||ht[pt]===l)){for(i=0,s=le(e.length);s>i;i++)if((u=m(e[i]))&&u instanceof bt)return u;return new bt(!1)}n=o.call(e)}for(a=n.next;!(c=a.call(n)).done;){try{u=m(c.value)}catch(e){throw wt(n),e}if("object"==typeof u&&u&&u instanceof bt)return u}return new bt(!1)};_e({target:"Object",stat:!0},{fromEntries:function(e){var t={};return Ct(e,(function(e,r){!function(e,t,r){var n=v(t);n in e?O.f(e,n,l(0,r)):e[n]=r}(t,e,r)}),{AS_ENTRIES:!0}),t}});var Et=t(r((function(e,t){new Function("return this")(),e.exports=(()=>{var e={118:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},6956:(e,t,r)=>{var n=r(2521);e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},9729:(e,t,r)=>{var n=r(9969),o=r(8331),i=r(1588),s=function(e){return function(t,r,s){var u,a=n(t),c=o(a.length),l=i(s,c);if(e&&r!=r){for(;c>l;)if((u=a[l++])!=u)return!0}else for(;c>l;l++)if((e||l in a)&&a[l]===r)return e||l||0;return!e&&-1}};e.exports={includes:s(!0),indexOf:s(!1)}},9719:(e,t,r)=>{var n=r(2763);e.exports=function(e,t){var r=[][e];return!!r&&n((function(){r.call(null,t||function(){throw 1},1)}))}},3407:e=>{var t=Math.floor,r=function(e,i){var s=e.length,u=t(s/2);return s<8?n(e,i):o(r(e.slice(0,u),i),r(e.slice(u),i),i)},n=function(e,t){for(var r,n,o=e.length,i=1;i0;)e[n]=e[--n];n!==i++&&(e[n]=r)}return e},o=function(e,t,r){for(var n=e.length,o=t.length,i=0,s=0,u=[];i{var n=r(2521),o=r(3964),i=r(1386)("species");e.exports=function(e,t){var r;return o(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!o(r.prototype)?n(r)&&null===(r=r[i])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},2849:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},9538:(e,t,r)=>{var n=r(6395),o=r(2849),i=r(1386)("toStringTag"),s="Arguments"==o(function(){return arguments}());e.exports=n?o:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?r:s?o(t):"Object"==(n=o(t))&&"function"==typeof t.callee?"Arguments":n}},4488:(e,t,r)=>{var n=r(2766),o=r(9593),i=r(8769),s=r(7455);e.exports=function(e,t){for(var r=o(t),u=s.f,a=i.f,c=0;c{var n=r(7703),o=r(7455),i=r(5938);e.exports=n?function(e,t,r){return o.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},5938:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},2385:(e,t,r)=>{var n=r(687),o=r(7455),i=r(5938);e.exports=function(e,t,r){var s=n(t);s in e?o.f(e,s,i(0,r)):e[s]=r}},7703:(e,t,r)=>{var n=r(2763);e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},6004:(e,t,r)=>{var n=r(6121),o=r(2521),i=n.document,s=o(i)&&o(i.createElement);e.exports=function(e){return s?i.createElement(e):{}}},5249:(e,t,r)=>{var n=r(8635).match(/firefox\/(\d+)/i);e.exports=!!n&&+n[1]},2049:(e,t,r)=>{var n=r(8635);e.exports=/MSIE|Trident/.test(n)},8635:(e,t,r)=>{var n=r(7642);e.exports=n("navigator","userAgent")||""},6962:(e,t,r)=>{var n,o,i=r(6121),s=r(8635),u=i.process,a=u&&u.versions,c=a&&a.v8;c?o=(n=c.split("."))[0]<4?1:n[0]+n[1]:s&&(!(n=s.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=s.match(/Chrome\/(\d+)/))&&(o=n[1]),e.exports=o&&+o},8998:(e,t,r)=>{var n=r(8635).match(/AppleWebKit\/(\d+)\./);e.exports=!!n&&+n[1]},4731:e=>{e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},7309:(e,t,r)=>{var n=r(6121),o=r(8769).f,i=r(1471),s=r(2327),u=r(6565),a=r(4488),c=r(676);e.exports=function(e,t){var r,l,f,p,h,d=e.target,D=e.global,g=e.stat;if(r=D?n:g?n[d]||u(d,{}):(n[d]||{}).prototype)for(l in t){if(p=t[l],f=e.noTargetGet?(h=o(r,l))&&h.value:r[l],!c(D?l:d+(g?".":"#")+l,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;a(p,f)}(e.sham||f&&f.sham)&&i(p,"sham",!0),s(r,l,p,e)}}},2763:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},5538:(e,t,r)=>{var n=r(3964),o=r(8331),i=r(3322),s=function(e,t,r,u,a,c,l,f){for(var p,h=a,d=0,D=!!l&&i(l,f,3);d0&&n(p))h=s(e,t,p,o(p.length),h,c-1)-1;else{if(h>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[h]=p}h++}d++}return h};e.exports=s},3322:(e,t,r)=>{var n=r(118);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},7642:(e,t,r)=>{var n=r(1035),o=r(6121),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(n[e])||i(o[e]):n[e]&&n[e][t]||o[e]&&o[e][t]}},5111:(e,t,r)=>{var n=r(9538),o=r(3403),i=r(1386)("iterator");e.exports=function(e){if(null!=e)return e[i]||e["@@iterator"]||o[n(e)]}},6121:(e,t,r)=>{var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof r.g&&r.g)||function(){return this}()||Function("return this")()},2766:(e,t,r)=>{var n=r(4766),o={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return o.call(n(e),t)}},2048:e=>{e.exports={}},7226:(e,t,r)=>{var n=r(7703),o=r(2763),i=r(6004);e.exports=!n&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},3169:(e,t,r)=>{var n=r(2763),o=r(2849),i="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},9835:(e,t,r)=>{var n=r(4682),o=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(e){return o.call(e)}),e.exports=n.inspectSource},2995:(e,t,r)=>{var n,o,i,s=r(5546),u=r(6121),a=r(2521),c=r(1471),l=r(2766),f=r(4682),p=r(2562),h=r(2048),d="Object already initialized",D=u.WeakMap;if(s||f.state){var g=f.state||(f.state=new D),m=g.get,v=g.has,y=g.set;n=function(e,t){if(v.call(g,e))throw new TypeError(d);return t.facade=e,y.call(g,e,t),t},o=function(e){return m.call(g,e)||{}},i=function(e){return v.call(g,e)}}else{var w=p("state");h[w]=!0,n=function(e,t){if(l(e,w))throw new TypeError(d);return t.facade=e,c(e,w,t),t},o=function(e){return l(e,w)?e[w]:{}},i=function(e){return l(e,w)}}e.exports={set:n,get:o,has:i,enforce:function(e){return i(e)?o(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!a(t)||(r=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},9439:(e,t,r)=>{var n=r(1386),o=r(3403),i=n("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||s[i]===e)}},3964:(e,t,r)=>{var n=r(2849);e.exports=Array.isArray||function(e){return"Array"==n(e)}},676:(e,t,r)=>{var n=r(2763),o=/#|\.prototype\./,i=function(e,t){var r=u[s(e)];return r==c||r!=a&&("function"==typeof t?n(t):!!t)},s=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},u=i.data={},a=i.NATIVE="N",c=i.POLYFILL="P";e.exports=i},2521:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},8451:e=>{e.exports=!1},4572:(e,t,r)=>{var n=r(6956),o=r(9439),i=r(8331),s=r(3322),u=r(5111),a=r(4556),c=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,r){var l,f,p,h,d,D,g,m=r&&r.that,v=!(!r||!r.AS_ENTRIES),y=!(!r||!r.IS_ITERATOR),w=!(!r||!r.INTERRUPTED),b=s(t,m,1+v+w),C=function(e){return l&&a(l),new c(!0,e)},E=function(e){return v?(n(e),w?b(e[0],e[1],C):b(e[0],e[1])):w?b(e,C):b(e)};if(y)l=e;else{if("function"!=typeof(f=u(e)))throw TypeError("Target is not iterable");if(o(f)){for(p=0,h=i(e.length);h>p;p++)if((d=E(e[p]))&&d instanceof c)return d;return new c(!1)}l=f.call(e)}for(D=l.next;!(g=D.call(l)).done;){try{d=E(g.value)}catch(e){throw a(l),e}if("object"==typeof d&&d&&d instanceof c)return d}return new c(!1)}},4556:(e,t,r)=>{var n=r(6956);e.exports=function(e){var t=e.return;if(void 0!==t)return n(t.call(e)).value}},3403:e=>{e.exports={}},4020:(e,t,r)=>{var n=r(6962),o=r(2763);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},5546:(e,t,r)=>{var n=r(6121),o=r(9835),i=n.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},7455:(e,t,r)=>{var n=r(7703),o=r(7226),i=r(6956),s=r(687),u=Object.defineProperty;t.f=n?u:function(e,t,r){if(i(e),t=s(t,!0),i(r),o)try{return u(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},8769:(e,t,r)=>{var n=r(7703),o=r(7751),i=r(5938),s=r(9969),u=r(687),a=r(2766),c=r(7226),l=Object.getOwnPropertyDescriptor;t.f=n?l:function(e,t){if(e=s(e),t=u(t,!0),c)try{return l(e,t)}catch(e){}if(a(e,t))return i(!o.f.call(e,t),e[t])}},2042:(e,t,r)=>{var n=r(3224),o=r(4731).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},2719:(e,t)=>{t.f=Object.getOwnPropertySymbols},3224:(e,t,r)=>{var n=r(2766),o=r(9969),i=r(9729).indexOf,s=r(2048);e.exports=function(e,t){var r,u=o(e),a=0,c=[];for(r in u)!n(s,r)&&n(u,r)&&c.push(r);for(;t.length>a;)n(u,r=t[a++])&&(~i(c,r)||c.push(r));return c}},7751:(e,t)=>{var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!r.call({1:2},1);t.f=o?function(e){var t=n(this,e);return!!t&&t.enumerable}:r},9593:(e,t,r)=>{var n=r(7642),o=r(2042),i=r(2719),s=r(6956);e.exports=n("Reflect","ownKeys")||function(e){var t=o.f(s(e)),r=i.f;return r?t.concat(r(e)):t}},1035:(e,t,r)=>{var n=r(6121);e.exports=n},2327:(e,t,r)=>{var n=r(6121),o=r(1471),i=r(2766),s=r(6565),u=r(9835),a=r(2995),c=a.get,l=a.enforce,f=String(String).split("String");(e.exports=function(e,t,r,u){var a,c=!!u&&!!u.unsafe,p=!!u&&!!u.enumerable,h=!!u&&!!u.noTargetGet;"function"==typeof r&&("string"!=typeof t||i(r,"name")||o(r,"name",t),(a=l(r)).source||(a.source=f.join("string"==typeof t?t:""))),e!==n?(c?!h&&e[t]&&(p=!0):delete e[t],p?e[t]=r:o(e,t,r)):p?e[t]=r:s(t,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&c(this).source||u(this)}))},7263:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},6565:(e,t,r)=>{var n=r(6121),o=r(1471);e.exports=function(e,t){try{o(n,e,t)}catch(r){n[e]=t}return t}},2562:(e,t,r)=>{var n=r(896),o=r(1735),i=n("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},4682:(e,t,r)=>{var n=r(6121),o=r(6565),i="__core-js_shared__",s=n[i]||o(i,{});e.exports=s},896:(e,t,r)=>{var n=r(8451),o=r(4682);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:n?"pure":"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})},1588:(e,t,r)=>{var n=r(5623),o=Math.max,i=Math.min;e.exports=function(e,t){var r=n(e);return r<0?o(r+t,0):i(r,t)}},9969:(e,t,r)=>{var n=r(3169),o=r(7263);e.exports=function(e){return n(o(e))}},5623:e=>{var t=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:t)(e)}},8331:(e,t,r)=>{var n=r(5623),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},4766:(e,t,r)=>{var n=r(7263);e.exports=function(e){return Object(n(e))}},687:(e,t,r)=>{var n=r(2521);e.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},6395:(e,t,r)=>{var n={};n[r(1386)("toStringTag")]="z",e.exports="[object z]"===String(n)},1735:e=>{var t=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++t+r).toString(36)}},2020:(e,t,r)=>{var n=r(4020);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},1386:(e,t,r)=>{var n=r(6121),o=r(896),i=r(2766),s=r(1735),u=r(4020),a=r(2020),c=o("wks"),l=n.Symbol,f=a?l:l&&l.withoutSetter||s;e.exports=function(e){return i(c,e)&&(u||"string"==typeof c[e])||(u&&i(l,e)?c[e]=l[e]:c[e]=f("Symbol."+e)),c[e]}},4304:(e,t,r)=>{var n=r(7309),o=r(5538),i=r(4766),s=r(8331),u=r(118),a=r(8347);n({target:"Array",proto:!0},{flatMap:function(e){var t,r=i(this),n=s(r.length);return u(e),(t=a(r,0)).length=o(t,r,r,n,0,1,e,arguments.length>1?arguments[1]:void 0),t}})},4070:(e,t,r)=>{var n=r(7309),o=r(118),i=r(4766),s=r(8331),u=r(2763),a=r(3407),c=r(9719),l=r(5249),f=r(2049),p=r(6962),h=r(8998),d=[],D=d.sort,g=u((function(){d.sort(void 0)})),m=u((function(){d.sort(null)})),v=c("sort"),y=!u((function(){if(p)return p<70;if(!(l&&l>3)){if(f)return!0;if(h)return h<603;var e,t,r,n,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)d.push({k:t+n,v:r})}for(d.sort((function(e,t){return t.v-e.v})),n=0;nString(r)?1:-1}}(e))).length,n=0;n{var n=r(7309),o=r(4572),i=r(2385);n({target:"Object",stat:!0},{fromEntries:function(e){var t={};return o(e,(function(e,r){i(t,e,r)}),{AS_ENTRIES:!0}),t}})},3584:e=>{const t=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");const t=e.match(/(?:\r?\n)/g)||[];if(0===t.length)return;const r=t.filter((e=>"\r\n"===e)).length;return r>t.length-r?"\r\n":"\n"};e.exports=t,e.exports.graceful=e=>"string"==typeof e&&t(e)||"\n"},541:e=>{e.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},2240:e=>{e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},8051:e=>{e.exports=function(e,t){return(t="number"==typeof t?t:1/0)?function e(r,n){return r.reduce((function(r,o){return Array.isArray(o)&&n{e.exports=function(e,t){for(var r=-1,n=[];-1!==(r=e.indexOf(t,r+1));)n.push(r);return n}},8528:e=>{const t=e=>!Number.isNaN(e)&&e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);e.exports=t,e.exports.default=t},9234:(e,t,r)=>{function n(){const e=r(9623);return n=function(){return e},e}function o(){const e=(t=r(3584))&&t.__esModule?t:{default:t};var t;return o=function(){return e},e}Object.defineProperty(t,"__esModule",{value:!0}),t.extract=function(e){const t=e.match(u);return t?t[0].trimLeft():""},t.strip=function(e){const t=e.match(u);return t&&t[0]?e.substring(t[0].length):e},t.parse=function(e){return d(e).pragmas},t.parseWithComments=d,t.print=function({comments:e="",pragmas:t={}}){const r=(0,o().default)(e)||n().EOL,i=" *",s=Object.keys(t),u=s.map((e=>D(e,t[e]))).reduce(((e,t)=>e.concat(t)),[]).map((e=>" * "+e+r)).join("");if(!e){if(0===s.length)return"";if(1===s.length&&!Array.isArray(t[s[0]])){const e=t[s[0]];return`/** ${D(s[0],e)[0]} */`}}const a=e.split(r).map((e=>` * ${e}`)).join(r)+r;return"/**"+r+(e?a:"")+(e&&s.length?i+r:"")+u+" */"};const i=/\*\/$/,s=/^\/\*\*/,u=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,a=/(^|\s+)\/\/([^\r\n]*)/g,c=/^(\r?\n)+/,l=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,f=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,p=/(\r?\n|^) *\* ?/g,h=[];function d(e){const t=(0,o().default)(e)||n().EOL;e=e.replace(s,"").replace(i,"").replace(p,"$1");let r="";for(;r!==e;)r=e,e=e.replace(l,`${t}$1 $2${t}`);e=e.replace(c,"").trimRight();const u=Object.create(null),d=e.replace(f,"").replace(c,"").trimRight();let D;for(;D=f.exec(e);){const e=D[2].replace(a,"");"string"==typeof u[D[1]]||Array.isArray(u[D[1]])?u[D[1]]=h.concat(u[D[1]],e):u[D[1]]=e}return{comments:d,pragmas:u}}function D(e,t){return h.concat(t).map((t=>`@${e} ${t}`.trim()))}},5311:(e,t,r)=>{function n(){for(var e=[],t=0;tm,outdent:()=>g}),e=r.hmd(e);var i=Object.prototype.hasOwnProperty,s=function(e,t){return i.call(e,t)};function u(e,t){for(var r in t)s(t,r)&&(e[r]=t[r]);return e}var a=/^[ \t]*(?:\r\n|\r|\n)/,c=/(?:\r\n|\r|\n)[ \t]*$/,l=/^(?:[\r\n]|$)/,f=/(?:\r\n|\r|\n)([ \t]*)(?:[^ \t\r\n]|$)/,p=/^[ \t]*[\r\n][ \t\r\n]*$/;function h(e,t,r){var n=0,o=e[0].match(f);o&&(n=o[1].length);var i=new RegExp("(\\r\\n|\\r|\\n).{0,"+n+"}","g");t&&(e=e.slice(1));var s=r.newline,u=r.trimLeadingNewline,l=r.trimTrailingNewline,p="string"==typeof s,h=e.length;return e.map((function(e,t){return e=e.replace(i,"$1"),0===t&&u&&(e=e.replace(a,"")),t===h-1&&l&&(e=e.replace(c,"")),p&&(e=e.replace(/\r\n|\n|\r/g,(function(e){return s}))),e}))}function d(e,t){for(var r="",n=0,o=e.length;n{function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var r,n="",o=0,i=-1,s=0,u=0;u<=e.length;++u){if(u2){var a=n.lastIndexOf("/");if(a!==n.length-1){-1===a?(n="",o=0):o=(n=n.slice(0,a)).length-1-n.lastIndexOf("/"),i=u,s=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=u,s=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,u):n=e.slice(i+1,u),o=u-i-1;i=u,s=0}else 46===r&&-1!==s?++s:s=-1}return n}var n={resolve:function(){for(var e,n="",o=!1,i=arguments.length-1;i>=-1&&!o;i--){var s;i>=0?s=arguments[i]:(void 0===e&&(e=process.cwd()),s=e),t(s),0!==s.length&&(n=s+"/"+n,o=47===s.charCodeAt(0))}return n=r(n,!o),o?n.length>0?"/"+n:"/":n.length>0?n:"."},normalize:function(e){if(t(e),0===e.length)return".";var n=47===e.charCodeAt(0),o=47===e.charCodeAt(e.length-1);return 0!==(e=r(e,!n)).length||n||(e="."),e.length>0&&o&&(e+="/"),n?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,r=0;r0&&(void 0===e?e=o:e+="/"+o)}return void 0===e?".":n.normalize(e)},relative:function(e,r){if(t(e),t(r),e===r)return"";if((e=n.resolve(e))===(r=n.resolve(r)))return"";for(var o=1;oc){if(47===r.charCodeAt(u+f))return r.slice(u+f+1);if(0===f)return r.slice(u+f)}else s>c&&(47===e.charCodeAt(o+f)?l=f:0===f&&(l=0));break}var p=e.charCodeAt(o+f);if(p!==r.charCodeAt(u+f))break;47===p&&(l=f)}var h="";for(f=o+l+1;f<=i;++f)f!==i&&47!==e.charCodeAt(f)||(0===h.length?h+="..":h+="/..");return h.length>0?h+r.slice(u+l):(u+=l,47===r.charCodeAt(u)&&++u,r.slice(u))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var r=e.charCodeAt(0),n=47===r,o=-1,i=!0,s=e.length-1;s>=1;--s)if(47===(r=e.charCodeAt(s))){if(!i){o=s;break}}else i=!1;return-1===o?n?"/":".":n&&1===o?"//":e.slice(0,o)},basename:function(e,r){if(void 0!==r&&"string"!=typeof r)throw new TypeError('"ext" argument must be a string');t(e);var n,o=0,i=-1,s=!0;if(void 0!==r&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var u=r.length-1,a=-1;for(n=e.length-1;n>=0;--n){var c=e.charCodeAt(n);if(47===c){if(!s){o=n+1;break}}else-1===a&&(s=!1,a=n+1),u>=0&&(c===r.charCodeAt(u)?-1==--u&&(i=n):(u=-1,i=a))}return o===i?i=a:-1===i&&(i=e.length),e.slice(o,i)}for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!s){o=n+1;break}}else-1===i&&(s=!1,i=n+1);return-1===i?"":e.slice(o,i)},extname:function(e){t(e);for(var r=-1,n=0,o=-1,i=!0,s=0,u=e.length-1;u>=0;--u){var a=e.charCodeAt(u);if(47!==a)-1===o&&(i=!1,o=u+1),46===a?-1===r?r=u:1!==s&&(s=1):-1!==r&&(s=-1);else if(!i){n=u+1;break}}return-1===r||-1===o||0===s||1===s&&r===o-1&&r===n+1?"":e.slice(r,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){t(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return r;var n,o=e.charCodeAt(0),i=47===o;i?(r.root="/",n=1):n=0;for(var s=-1,u=0,a=-1,c=!0,l=e.length-1,f=0;l>=n;--l)if(47!==(o=e.charCodeAt(l)))-1===a&&(c=!1,a=l+1),46===o?-1===s?s=l:1!==f&&(f=1):-1!==s&&(f=-1);else if(!c){u=l+1;break}return-1===s||-1===a||0===f||1===f&&s===a-1&&s===u+1?-1!==a&&(r.base=r.name=0===u&&i?e.slice(1,a):e.slice(u,a)):(0===u&&i?(r.name=e.slice(1,s),r.base=e.slice(1,a)):(r.name=e.slice(u,s),r.base=e.slice(u,a)),r.ext=e.slice(s,a)),u>0?r.dir=e.slice(0,u-1):i&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,e.exports=n},8681:(e,t,r)=>{const n=r(3102),o=r(7116),{isInlineComment:i}=r(1101),{interpolation:s}=r(3295),{isMixinToken:u}=r(5953),a=r(1330),c=r(5255),l=/(!\s*important)$/i;e.exports=class extends o{constructor(...e){super(...e),this.lastNode=null}atrule(e){s.bind(this)(e)||(super.atrule(e),a(this.lastNode),c(this.lastNode))}decl(...e){super.decl(...e),/extend\(.+\)/i.test(this.lastNode.value)&&(this.lastNode.extend=!0)}each(e){e[0][1]=` ${e[0][1]}`;const t=e.findIndex((e=>"("===e[0])),r=e.reverse().find((e=>")"===e[0])),n=e.reverse().indexOf(r),o=e.splice(t,n).map((e=>e[1])).join("");for(const t of e.reverse())this.tokenizer.back(t);this.atrule(this.tokenizer.nextToken()),this.lastNode.function=!0,this.lastNode.params=o}init(e,t,r){super.init(e,t,r),this.lastNode=e}inlineComment(e){const t=new n,r=e[1].slice(2);if(this.init(t,e[2],e[3]),t.source.end={line:e[4],column:e[5]},t.inline=!0,t.raws.begin="//",/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{const e=r.match(/^(\s*)([^]*[^\s])(\s*)$/);[,t.raws.left,t.text,t.raws.right]=e}}mixin(e){const[t]=e,r=t[1].slice(0,1),n=e.findIndex((e=>"brackets"===e[0])),o=e.findIndex((e=>"("===e[0]));let i="";if((n<0||n>3)&&o>0){const t=e.reduce(((e,t,r)=>")"===t[0]?r:e)),r=e.slice(o,t+o).map((e=>e[1])).join(""),[n]=e.slice(o),i=[n[2],n[3]],[s]=e.slice(t,t+1),u=[s[2],s[3]],a=["brackets",r].concat(i,u),c=e.slice(0,o),l=e.slice(t+1);(e=c).push(a),e=e.concat(l)}const s=[];for(const t of e)if(("!"===t[1]||s.length)&&s.push(t),"important"===t[1])break;if(s.length){const[t]=s,r=e.indexOf(t),n=s[s.length-1],o=[t[2],t[3]],i=[n[4],n[5]],u=["word",s.map((e=>e[1])).join("")].concat(o,i);e.splice(r,s.length,u)}const u=e.findIndex((e=>l.test(e[1])));u>0&&([,i]=e[u],e.splice(u,1));for(const t of e.reverse())this.tokenizer.back(t);this.atrule(this.tokenizer.nextToken()),this.lastNode.mixin=!0,this.lastNode.raws.identifier=r,i&&(this.lastNode.important=!0,this.lastNode.raws.important=i)}other(e){i.bind(this)(e)||super.other(e)}rule(e){const t=e[e.length-1],r=e[e.length-2];if("at-word"===r[0]&&"{"===t[0]&&(this.tokenizer.back(t),s.bind(this)(r))){const t=this.tokenizer.nextToken();e=e.slice(0,e.length-2).concat([t]);for(const t of e.reverse())this.tokenizer.back(t)}else super.rule(e),/:extend\(.+\)/i.test(this.lastNode.selector)&&(this.lastNode.extend=!0)}unknownWord(e){const[t]=e;"each"!==e[0][1]||"("!==e[1][0]?u(t)?this.mixin(e):super.unknownWord(e):this.each(e)}}},3406:(e,t,r)=>{const n=r(5701);e.exports=class extends n{atrule(e,t){if(!e.mixin&&!e.variable&&!e.function)return void super.atrule(e,t);let r=`${e.function?"":e.raws.identifier||"@"}${e.name}`,n=e.params?this.rawValue(e,"params"):"";const o=e.raws.important||"";if(e.variable&&(n=e.value),void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n+o);else{const i=(e.raws.between||"")+o+(t?";":"");this.builder(r+n+i,e)}}comment(e){if(e.inline){const t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder(`//${t}${e.text}${r}`,e)}else super.comment(e)}}},7371:(e,t,r)=>{const n=r(2993),o=r(8681),i=r(3406);e.exports={parse(e,t){const r=new n(e,t),i=new o(r);return i.parse(),i.root},stringify(e,t){new i(t).stringify(e)},nodeToString(t){let r="";return e.exports.stringify(t,(e=>{r+=e})),r}}},1330:(e,t,r)=>{const n=r(1157),o=/^url\((.+)\)/;e.exports=e=>{const{name:t,params:r=""}=e;if("import"===t&&r.length){e.import=!0;const t=n({css:r});for(e.filename=r.replace(o,"$1");!t.endOfFile();){const[n,o]=t.nextToken();if("word"===n&&"url"===o)return;if("brackets"===n){e.options=o,e.filename=r.replace(o,"").trim();break}}}}},1101:(e,t,r)=>{const n=r(1157),o=r(2993);e.exports={isInlineComment(t){if("word"===t[0]&&"//"===t[1].slice(0,2)){const e=t,r=[];let i;for(;t;){if(/\r?\n/.test(t[1])){if(/['"].*\r?\n/.test(t[1])){r.push(t[1].substring(0,t[1].indexOf("\n")));let e=t[1].substring(t[1].indexOf("\n"));e+=this.input.css.valueOf().substring(this.tokenizer.position()),this.input=new o(e),this.tokenizer=n(this.input)}else this.tokenizer.back(t);break}r.push(t[1]),i=t,t=this.tokenizer.nextToken({ignoreUnclosed:!0})}const s=["comment",r.join(""),e[2],e[3],i[2],i[3]];return this.inlineComment(s),!0}if("/"===t[1]){const r=this.tokenizer.nextToken({ignoreUnclosed:!0});if("comment"===r[0]&&/^\/\*/.test(r[1]))return r[0]="word",r[1]=r[1].slice(1),t[1]="//",this.tokenizer.back(r),e.exports.isInlineComment.bind(this)(t)}return!1}}},3295:e=>{e.exports={interpolation(e){let t=e;const r=[e],n=["word","{","}"];if(e=this.tokenizer.nextToken(),t[1].length>1||"{"!==e[0])return this.tokenizer.back(e),!1;for(;e&&n.includes(e[0]);)r.push(e),e=this.tokenizer.nextToken();const o=r.map((e=>e[1]));[t]=r;const i=r.pop(),s=[t[2],t[3]],u=[i[4]||i[2],i[5]||i[3]],a=["word",o.join("")].concat(s,u);return this.tokenizer.back(e),this.tokenizer.back(a),!0}}},5953:e=>{const t=/^#[0-9a-fA-F]{6}$|^#[0-9a-fA-F]{3}$/,r=/\.[0-9]/;e.exports={isMixinToken:e=>{const[,n]=e,[o]=n;return("."===o||"#"===o)&&!1===t.test(n)&&!1===r.test(n)}}},5255:e=>{const t=/:$/,r=/^:(\s+)?/;e.exports=e=>{const{name:n,params:o=""}=e;if(":"===e.name.slice(-1)){if(t.test(n)){const[r]=n.match(t);e.name=n.replace(r,""),e.raws.afterName=r+(e.raws.afterName||""),e.variable=!0,e.value=e.params}if(r.test(o)){const[t]=o.match(r);e.value=o.replace(t,""),e.raws.afterName=(e.raws.afterName||"")+t,e.variable=!0}}}},8322:(e,t,r)=>{t.Z=function(e){return new o.default({nodes:(0,i.parseMediaList)(e),type:"media-query-list",value:e.trim()})};var n,o=(n=r(9066))&&n.__esModule?n:{default:n},i=r(7625)},9066:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n,o=(n=r(7680))&&n.__esModule?n:{default:n};function i(e){var t=this;this.constructor(e),this.nodes=e.nodes,void 0===this.after&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:""),void 0===this.before&&(this.before=this.nodes.length>0?this.nodes[0].before:""),void 0===this.sourceIndex&&(this.sourceIndex=this.before.length),this.nodes.forEach((function(e){e.parent=t}))}i.prototype=Object.create(o.default.prototype),i.constructor=o.default,i.prototype.walk=function(e,t){for(var r="string"==typeof e||e instanceof RegExp,n=r?t:e,o="string"==typeof e?new RegExp(e):e,i=0;i{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){this.after=e.after,this.before=e.before,this.type=e.type,this.value=e.value,this.sourceIndex=e.sourceIndex}},7625:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseMediaFeature=s,t.parseMediaQuery=u,t.parseMediaList=function(e){var t=[],r=0,i=0,s=/^(\s*)url\s*\(/.exec(e);if(null!==s){for(var a=s[0].length,c=1;c>0;){var l=e[a];"("===l&&c++,")"===l&&c--,a++}t.unshift(new n.default({type:"url",value:e.substring(0,a).trim(),sourceIndex:s[1].length,before:s[1],after:/^(\s*)/.exec(e.substring(a))[1]})),r=a}for(var f=r;f0&&(r[f-1].after=a.before),void 0===a.type){if(f>0){if("media-feature-expression"===r[f-1].type){a.type="keyword";continue}if("not"===r[f-1].value||"only"===r[f-1].value){a.type="media-type";continue}if("and"===r[f-1].value){a.type="media-feature-expression";continue}"media-type"===r[f-1].type&&(r[f+1]?a.type="media-feature-expression"===r[f+1].type?"keyword":"media-feature-expression":a.type="media-feature-expression")}if(0===f){if(!r[f+1]){a.type="media-type";continue}if(r[f+1]&&("media-feature-expression"===r[f+1].type||"keyword"===r[f+1].type)){a.type="media-type";continue}if(r[f+2]){if("media-feature-expression"===r[f+2].type){a.type="media-type",r[f+1].type="keyword";continue}if("keyword"===r[f+2].type){a.type="keyword",r[f+1].type="media-type";continue}}if(r[f+3]&&"media-feature-expression"===r[f+3].type){a.type="keyword",r[f+1].type="media-type",r[f+2].type="keyword";continue}}}return r}},5822:(e,t,r)=>{var n=function(e){var t,r;function n(t){var r;return(r=e.call(this,t)||this).type="decl",r.isNested=!0,r.nodes||(r.nodes=[]),r}return r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,n}(r(1204));e.exports=n},1945:(e,t,r)=>{var n=r(2993),o=r(1713);e.exports=function(e,t){var r=new n(e,t),i=new o(r);return i.parse(),i.root}},1713:(e,t,r)=>{var n=r(3102),o=r(7116),i=r(5822),s=r(6256),u=function(e){var t,r;function o(){return e.apply(this,arguments)||this}r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r;var u=o.prototype;return u.createTokenizer=function(){this.tokenizer=s(this.input)},u.rule=function(t){var r=!1,n=0,o="",s=t,u=Array.isArray(s),a=0;for(s=u?s:s[Symbol.iterator]();;){var c;if(u){if(a>=s.length)break;c=s[a++]}else{if((a=s.next()).done)break;c=a.value}var l=c;if(r)"comment"!==l[0]&&"{"!==l[0]&&(o+=l[1]);else{if("space"===l[0]&&-1!==l[1].indexOf("\n"))break;"("===l[0]?n+=1:")"===l[0]?n-=1:0===n&&":"===l[0]&&(r=!0)}}if(!r||""===o.trim()||/^[a-zA-Z-:#]/.test(o))e.prototype.rule.call(this,t);else{t.pop();var f=new i;this.init(f);var p,h=t[t.length-1];for(h[4]?f.source.end={line:h[4],column:h[5]}:f.source.end={line:h[2],column:h[3]};"word"!==t[0][0];)f.raws.before+=t.shift()[1];for(f.source.start={line:t[0][2],column:t[0][3]},f.prop="";t.length;){var d=t[0][0];if(":"===d||"space"===d||"comment"===d)break;f.prop+=t.shift()[1]}for(f.raws.between="";t.length;){if(":"===(p=t.shift())[0]){f.raws.between+=p[1];break}f.raws.between+=p[1]}"_"!==f.prop[0]&&"*"!==f.prop[0]||(f.raws.before+=f.prop[0],f.prop=f.prop.slice(1)),f.raws.between+=this.spacesAndCommentsFromStart(t),this.precheckMissedSemicolon(t);for(var D=t.length-1;D>0;D--){if("!important"===(p=t[D])[1]){f.important=!0;var g=this.stringFrom(t,D);" !important"!==(g=this.spacesFromEnd(t)+g)&&(f.raws.important=g);break}if("important"===p[1]){for(var m=t.slice(0),v="",y=D;y>0;y--){var w=m[y][0];if(0===v.trim().indexOf("!")&&"space"!==w)break;v=m.pop()[1]+v}0===v.trim().indexOf("!")&&(f.important=!0,f.raws.important=v,t=m)}if("space"!==p[0]&&"comment"!==p[0])break}this.raw(f,"value",t),-1!==f.value.indexOf(":")&&this.checkMissedSemicolon(t),this.current=f}},u.comment=function(t){if("inline"===t[6]){var r=new n;this.init(r,t[2],t[3]),r.raws.inline=!0,r.source.end={line:t[4],column:t[5]};var o=t[1].slice(2);if(/^\s*$/.test(o))r.text="",r.raws.left=o,r.raws.right="";else{var i=o.match(/^(\s*)([^]*[^\s])(\s*)$/),s=i[2].replace(/(\*\/|\/\*)/g,"*//*");r.text=s,r.raws.left=i[1],r.raws.right=i[3],r.raws.text=i[2]}}else e.prototype.comment.call(this,t)},u.raw=function(t,r,n){if(e.prototype.raw.call(this,t,r,n),t.raws[r]){var o=t.raws[r].raw;t.raws[r].raw=n.reduce((function(e,t){return"comment"===t[0]&&"inline"===t[6]?e+"/*"+t[1].slice(2).replace(/(\*\/|\/\*)/g,"*//*")+"*/":e+t[1]}),""),o!==t.raws[r].raw&&(t.raws[r].scss=o)}},o}(o);e.exports=u},9235:(e,t,r)=>{var n=function(e){var t,r;function n(){return e.apply(this,arguments)||this}r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r;var o=n.prototype;return o.comment=function(e){var t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");if(e.raws.inline){var n=e.raws.text||e.text;this.builder("//"+t+n+r,e)}else this.builder("/*"+t+e.text+r+"*/",e)},o.decl=function(t,r){if(t.isNested){var n,o=this.raw(t,"between","colon"),i=t.prop+o+this.rawValue(t,"value");t.important&&(i+=t.raws.important||" !important"),this.builder(i+"{",t,"start"),t.nodes&&t.nodes.length?(this.body(t),n=this.raw(t,"after")):n=this.raw(t,"after","emptyBody"),n&&this.builder(n),this.builder("}",t,"end")}else e.prototype.decl.call(this,t,r)},o.rawValue=function(e,t){var r=e[t],n=e.raws[t];return n&&n.value===r?n.scss?n.scss:n.raw:r},n}(r(5701));e.exports=n},4933:(e,t,r)=>{var n=r(9235);e.exports=function(e,t){new n(t).stringify(e)}},304:(e,t,r)=>{var n=r(4933),o=r(1945);e.exports={parse:o,stringify:n}},6256:e=>{var t="'".charCodeAt(0),r='"'.charCodeAt(0),n="\\".charCodeAt(0),o="/".charCodeAt(0),i="\n".charCodeAt(0),s=" ".charCodeAt(0),u="\f".charCodeAt(0),a="\t".charCodeAt(0),c="\r".charCodeAt(0),l="[".charCodeAt(0),f="]".charCodeAt(0),p="(".charCodeAt(0),h=")".charCodeAt(0),d="{".charCodeAt(0),D="}".charCodeAt(0),g=";".charCodeAt(0),m="*".charCodeAt(0),v=":".charCodeAt(0),y="@".charCodeAt(0),w=",".charCodeAt(0),b="#".charCodeAt(0),C=/[ \n\t\r\f{}()'"\\;/[\]#]/g,E=/[ \n\t\r\f(){}:;@!'"\\\][#]|\/(?=\*)/g,F=/.[\\/("'\n]/,A=/[a-f0-9]/i,x=/[\r\f\n]/g;e.exports=function(e,k){void 0===k&&(k={});var _,O,S,T,I,N,M,R,j,L,B,P,$,U,G=e.css.valueOf(),W=k.ignoreErrors,z=G.length,V=-1,q=1,X=0,J=[],H=[];function Y(t){throw e.error("Unclosed "+t,q,X-V)}function K(){for(var e=1,o=!1,i=!1;e>0;)O+=1,G.length<=O&&Y("interpolation"),_=G.charCodeAt(O),P=G.charCodeAt(O+1),o?i||_!==o?_===n?i=!L:i&&(i=!1):(o=!1,i=!1):_===t||_===r?o=_:_===D?e-=1:_===b&&P===d&&(e+=1)}return{back:function(e){H.push(e)},nextToken:function(){if(H.length)return H.pop();if(!(X>=z)){switch(((_=G.charCodeAt(X))===i||_===u||_===c&&G.charCodeAt(X+1)!==i)&&(V=X,q+=1),_){case i:case s:case a:case c:case u:O=X;do{O+=1,(_=G.charCodeAt(O))===i&&(V=O,q+=1)}while(_===s||_===i||_===a||_===c||_===u);$=["space",G.slice(X,O)],X=O-1;break;case l:$=["[","[",q,X-V];break;case f:$=["]","]",q,X-V];break;case d:$=["{","{",q,X-V];break;case D:$=["}","}",q,X-V];break;case w:$=["word",",",q,X-V,q,X-V+1];break;case v:$=[":",":",q,X-V];break;case g:$=[";",";",q,X-V];break;case p:if(B=J.length?J.pop()[1]:"",P=G.charCodeAt(X+1),"url"===B&&P!==t&&P!==r){for(U=1,L=!1,O=X+1;O<=G.length-1;){if((P=G.charCodeAt(O))===n)L=!L;else if(P===p)U+=1;else if(P===h&&0==(U-=1))break;O+=1}N=G.slice(X,O+1),T=N.split("\n"),(I=T.length-1)>0?(R=q+I,j=O-T[I].length):(R=q,j=V),$=["brackets",N,q,X-V,R,O-j],V=j,q=R,X=O}else O=G.indexOf(")",X+1),N=G.slice(X,O+1),-1===O||F.test(N)?$=["(","(",q,X-V]:($=["brackets",N,q,X-V,q,O-V],X=O);break;case h:$=[")",")",q,X-V];break;case t:case r:for(S=_,O=X,L=!1;O0?(R=q+I,j=O-T[I].length):(R=q,j=V),$=["string",G.slice(X,O+1),q,X-V,R,O-j],V=j,q=R,X=O;break;case y:C.lastIndex=X+1,C.test(G),O=0===C.lastIndex?G.length-1:C.lastIndex-2,$=["at-word",G.slice(X,O+1),q,X-V,q,O-V],X=O;break;case n:for(O=X,M=!0;G.charCodeAt(O+1)===n;)O+=1,M=!M;if(_=G.charCodeAt(O+1),M&&_!==o&&_!==s&&_!==i&&_!==a&&_!==c&&_!==u&&(O+=1,A.test(G.charAt(O)))){for(;A.test(G.charAt(O+1));)O+=1;G.charCodeAt(O+1)===s&&(O+=1)}$=["word",G.slice(X,O+1),q,X-V,q,O-V],X=O;break;default:P=G.charCodeAt(X+1),_===b&&P===d?(O=X,K(),N=G.slice(X,O+1),T=N.split("\n"),(I=T.length-1)>0?(R=q+I,j=O-T[I].length):(R=q,j=V),$=["word",N,q,X-V,R,O-j],V=j,q=R,X=O):_===o&&P===m?(0===(O=G.indexOf("*/",X+2)+1)&&(W?O=G.length:Y("comment")),N=G.slice(X,O+1),T=N.split("\n"),(I=T.length-1)>0?(R=q+I,j=O-T[I].length):(R=q,j=V),$=["comment",N,q,X-V,R,O-j],V=j,q=R,X=O):_===o&&P===o?(x.lastIndex=X+1,x.test(G),O=0===x.lastIndex?G.length-1:x.lastIndex-2,N=G.slice(X,O+1),$=["comment",N,q,X-V,q,O-V,"inline"],X=O):(E.lastIndex=X+1,E.test(G),O=0===E.lastIndex?G.length-1:E.lastIndex-2,$=["word",G.slice(X,O+1),q,X-V,q,O-V],J.push($),X=O)}return X++,$}},endOfFile:function(){return 0===H.length&&X>=z}}}},1264:(e,t,r)=>{t.__esModule=!0;var n=m(r(2566)),o=m(r(616)),i=m(r(7835)),s=m(r(478)),u=m(r(4907)),a=m(r(8420)),c=m(r(7523)),l=m(r(4316)),f=m(r(6909)),p=m(r(6279)),h=m(r(439)),d=m(r(9956)),D=m(r(70)),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(8790));function m(e){return e&&e.__esModule?e:{default:e}}var v=function(e){return new n.default(e)};v.attribute=function(e){return new o.default(e)},v.className=function(e){return new i.default(e)},v.combinator=function(e){return new s.default(e)},v.comment=function(e){return new u.default(e)},v.id=function(e){return new a.default(e)},v.nesting=function(e){return new c.default(e)},v.pseudo=function(e){return new l.default(e)},v.root=function(e){return new f.default(e)},v.selector=function(e){return new p.default(e)},v.string=function(e){return new h.default(e)},v.tag=function(e){return new d.default(e)},v.universal=function(e){return new D.default(e)},Object.keys(g).forEach((function(e){"__esModule"!==e&&(v[e]=g[e])})),t.default=v,e.exports=t.default},5269:(e,t,r)=>{t.__esModule=!0;var n=function(){function e(e,t){for(var r=0;r1?(""===o[0]&&(o[0]=!0),i.attribute=this.parseValue(o[2]),i.namespace=this.parseNamespace(o[0])):i.attribute=this.parseValue(n[0]),t=new D.default(i),n[2]){var s=n[2].split(/(\s+i\s*?)$/),u=s[0].trim();t.value=this.lossy?u:s[0],s[1]&&(t.insensitive=!0,this.lossy||(t.raws.insensitive=s[1])),t.quoted="'"===u[0]||'"'===u[0],t.raws.unquoted=t.quoted?u.slice(1,-1):u}this.newNode(t),this.position++},e.prototype.combinator=function(){if("|"===this.currToken[1])return this.namespace();for(var e=new m.default({value:"",source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]});this.position1&&e.nextToken&&"("===e.nextToken[0]&&e.error("Misplaced parenthesis.")}))}else this.error('Unexpected "'+this.currToken[0]+'" found.')},e.prototype.space=function(){var e=this.currToken;0===this.position||","===this.prevToken[0]||"("===this.prevToken[0]?(this.spaces=this.parseSpace(e[1]),this.position++):this.position===this.tokens.length-1||","===this.nextToken[0]||")"===this.nextToken[0]?(this.current.last.spaces.after=this.parseSpace(e[1]),this.position++):this.combinator()},e.prototype.string=function(){var e=this.currToken;this.newNode(new h.default({value:this.currToken[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++},e.prototype.universal=function(e){var t=this.nextToken;if(t&&"|"===t[1])return this.position++,this.namespace();this.newNode(new g.default({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),e),this.position++},e.prototype.splitWord=function(e,t){for(var r=this,n=this.nextToken,u=this.currToken[1];n&&"word"===n[0];){this.position++;var a=this.currToken[1];if(u+=a,a.lastIndexOf("\\")===a.length-1){var l=this.nextToken;l&&"space"===l[0]&&(u+=this.parseSpace(l[1]," "),this.position++)}n=this.nextToken}var h=(0,i.default)(u,"."),d=(0,i.default)(u,"#"),D=(0,i.default)(u,"#{");D.length&&(d=d.filter((function(e){return!~D.indexOf(e)})));var g=(0,y.default)((0,s.default)((0,o.default)([[0],h,d])));g.forEach((function(n,o){var i=g[o+1]||u.length,s=u.slice(n,i);if(0===o&&t)return t.call(r,s,g.length);var a=void 0;a=~h.indexOf(n)?new c.default({value:s.slice(1),source:{start:{line:r.currToken[2],column:r.currToken[3]+n},end:{line:r.currToken[4],column:r.currToken[3]+(i-1)}},sourceIndex:r.currToken[6]+g[o]}):~d.indexOf(n)?new f.default({value:s.slice(1),source:{start:{line:r.currToken[2],column:r.currToken[3]+n},end:{line:r.currToken[4],column:r.currToken[3]+(i-1)}},sourceIndex:r.currToken[6]+g[o]}):new p.default({value:s,source:{start:{line:r.currToken[2],column:r.currToken[3]+n},end:{line:r.currToken[4],column:r.currToken[3]+(i-1)}},sourceIndex:r.currToken[6]+g[o]}),r.newNode(a,e)})),this.position++},e.prototype.word=function(e){var t=this.nextToken;return t&&"|"===t[1]?(this.position++,this.namespace()):this.splitWord(e)},e.prototype.loop=function(){for(;this.position{t.__esModule=!0;var n,o=function(){function e(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{},r=new i.default({css:e,error:function(e){throw new Error(e)},options:t});return this.res=r,this.func(r),this},o(e,[{key:"result",get:function(){return String(this.res)}}]),e}();t.default=s,e.exports=t.default},616:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(4379))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.ATTRIBUTE,n.raws={},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.toString=function(){var e=[this.spaces.before,"[",this.ns,this.attribute];return this.operator&&e.push(this.operator),this.value&&e.push(this.value),this.raws.insensitive?e.push(this.raws.insensitive):this.insensitive&&e.push(" i"),e.push("]"),e.concat(this.spaces.after).join("")},t}(o.default);t.default=s,e.exports=t.default},7835:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(4379))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.CLASS,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.toString=function(){return[this.spaces.before,this.ns,String("."+this.value),this.spaces.after].join("")},t}(o.default);t.default=s,e.exports=t.default},478:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(8871))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.COMBINATOR,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},4907:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(8871))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.COMMENT,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},7144:(e,t,r)=>{r(4070),t.__esModule=!0;var n,o=function(){function e(e,t){for(var r=0;r=e&&(this.indexes[r]=t-1);return this},t.prototype.removeAll=function(){var e=this.nodes,t=Array.isArray(e),r=0;for(e=t?e:e[Symbol.iterator]();;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if((r=e.next()).done)break;n=r.value}n.parent=void 0}return this.nodes=[],this},t.prototype.empty=function(){return this.removeAll()},t.prototype.insertAfter=function(e,t){var r=this.index(e);this.nodes.splice(r+1,0,t);var n=void 0;for(var o in this.indexes)r<=(n=this.indexes[o])&&(this.indexes[o]=n+this.nodes.length);return this},t.prototype.insertBefore=function(e,t){var r=this.index(e);this.nodes.splice(r,0,t);var n=void 0;for(var o in this.indexes)r<=(n=this.indexes[o])&&(this.indexes[o]=n+this.nodes.length);return this},t.prototype.each=function(e){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var t=this.lastEach;if(this.indexes[t]=0,this.length){for(var r=void 0,n=void 0;this.indexes[t]{t.__esModule=!0;var n,o=(n=r(4379))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.ID,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.toString=function(){return[this.spaces.before,this.ns,String("#"+this.value),this.spaces.after].join("")},t}(o.default);t.default=s,e.exports=t.default},4379:(e,t,r)=>{t.__esModule=!0;var n,o=function(){function e(e,t){for(var r=0;r{t.__esModule=!0;var n,o=(n=r(8871))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.NESTING,n.value="&",n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},8871:(e,t)=>{t.__esModule=!0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function e(t,n){if("object"!==(void 0===t?"undefined":r(t)))return t;var o=new t.constructor;for(var i in t)if(t.hasOwnProperty(i)){var s=t[i],u=void 0===s?"undefined":r(s);"parent"===i&&"object"===u?n&&(o[i]=n):o[i]=s instanceof Array?s.map((function(t){return e(t,o)})):e(s,o)}return o},i=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var r in n(this,e),t)this[r]=t[r];var o=t.spaces,i=(o=void 0===o?{}:o).before,s=void 0===i?"":i,u=o.after,a=void 0===u?"":u;this.spaces={before:s,after:a}}return e.prototype.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},e.prototype.replaceWith=function(){if(this.parent){for(var e in arguments)this.parent.insertBefore(this,arguments[e]);this.remove()}return this},e.prototype.next=function(){return this.parent.at(this.parent.index(this)+1)},e.prototype.prev=function(){return this.parent.at(this.parent.index(this)-1)},e.prototype.clone=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=o(this);for(var r in e)t[r]=e[r];return t},e.prototype.toString=function(){return[this.spaces.before,String(this.value),this.spaces.after].join("")},e}();t.default=i,e.exports=t.default},4316:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(7144))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.PSEUDO,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.toString=function(){var e=this.length?"("+this.map(String).join(",")+")":"";return[this.spaces.before,String(this.value),e,this.spaces.after].join("")},t}(o.default);t.default=s,e.exports=t.default},6909:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(7144))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.ROOT,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.toString=function(){var e=this.reduce((function(e,t){var r=String(t);return r?e+r+",":""}),"").slice(0,-1);return this.trailingComma?e+",":e},t}(o.default);t.default=s,e.exports=t.default},6279:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(7144))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.SELECTOR,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},439:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(8871))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.STRING,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},9956:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(4379))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.TAG,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},8790:(e,t)=>{t.__esModule=!0,t.TAG="tag",t.STRING="string",t.SELECTOR="selector",t.ROOT="root",t.PSEUDO="pseudo",t.NESTING="nesting",t.ID="id",t.COMMENT="comment",t.COMBINATOR="combinator",t.CLASS="class",t.ATTRIBUTE="attribute",t.UNIVERSAL="universal"},70:(e,t,r)=>{t.__esModule=!0;var n,o=(n=r(4379))&&n.__esModule?n:{default:n},i=r(8790),s=function(e){function t(r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,r));return n.type=i.UNIVERSAL,n.value="*",n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t}(o.default);t.default=s,e.exports=t.default},9788:(e,t,r)=>{r(4070),t.__esModule=!0,t.default=function(e){return e.sort((function(e,t){return e-t}))},e.exports=t.default},6554:(e,t)=>{t.__esModule=!0,t.default=function(e){for(var t=[],o=e.css.valueOf(),i=void 0,s=void 0,u=void 0,a=void 0,c=void 0,l=void 0,f=void 0,p=void 0,h=void 0,d=void 0,D=void 0,g=o.length,m=-1,v=1,y=0,w=function(t,r){if(!e.safe)throw e.error("Unclosed "+t,v,y-m,y);s=(o+=r).length-1};y0?(p=v+c,h=s-a[c].length):(p=v,h=m),t.push(["comment",l,v,y-m,p,s-h,y]),m=h,v=p,y=s):(n.lastIndex=y+1,n.test(o),s=0===n.lastIndex?o.length-1:n.lastIndex-2,t.push(["word",o.slice(y,s+1),v,y-m,v,s-m,y]),y=s)}y++}return t};var r=/[ \n\t\r\{\(\)'"\\;/]/g,n=/[ \n\t\r\(\)\*:;@!&'"\+\|~>,\[\]\\]|\/(?=\*)/g;e.exports=t.default},5294:(e,t,r)=>{const n=r(4196);class o extends n{constructor(e){super(e),this.type="atword"}toString(){return this.quoted&&this.raws.quote,[this.raws.before,"@",String.prototype.toString.call(this.value),this.raws.after].join("")}}n.registerWalker(o),e.exports=o},8709:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="colon"}}n.registerWalker(i),e.exports=i},3627:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="comma"}}n.registerWalker(i),e.exports=i},4384:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="comment",this.inline=Object(e).inline||!1}toString(){return[this.raws.before,this.inline?"//":"/*",String(this.value),this.inline?"":"*/",this.raws.after].join("")}}n.registerWalker(i),e.exports=i},4196:(e,t,r)=>{const n=r(1466);class o extends n{constructor(e){super(e),this.nodes||(this.nodes=[])}push(e){return e.parent=this,this.nodes.push(e),this}each(e){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t,r,n=this.lastEach;if(this.indexes[n]=0,this.nodes){for(;this.indexes[n]{let n=e(t,r);return!1!==n&&t.walk&&(n=t.walk(e)),n}))}walkType(e,t){if(!e||!t)throw new Error("Parameters {type} and {callback} are required.");const r="function"==typeof e;return this.walk(((n,o)=>{if(r&&n instanceof e||!r&&n.type===e)return t.call(this,n,o)}))}append(e){return e.parent=this,this.nodes.push(e),this}prepend(e){return e.parent=this,this.nodes.unshift(e),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertAfter(e,t){let r,n=this.index(e);this.nodes.splice(n+1,0,t);for(let e in this.indexes)r=this.indexes[e],n<=r&&(this.indexes[e]=r+this.nodes.length);return this}insertBefore(e,t){let r,n=this.index(e);this.nodes.splice(n,0,t);for(let e in this.indexes)r=this.indexes[e],n<=r&&(this.indexes[e]=r+this.nodes.length);return this}removeChild(e){let t;e=this.index(e),this.nodes[e].parent=void 0,this.nodes.splice(e,1);for(let r in this.indexes)t=this.indexes[r],t>=e&&(this.indexes[r]=t-1);return this}removeAll(){for(let e of this.nodes)e.parent=void 0;return this.nodes=[],this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:this.nodes.indexOf(e)}get first(){if(this.nodes)return this.nodes[0]}get last(){if(this.nodes)return this.nodes[this.nodes.length-1]}toString(){let e=this.nodes.map(String).join("");return this.value&&(e=this.value+e),this.raws.before&&(e=this.raws.before+e),this.raws.after&&(e+=this.raws.after),e}}o.registerWalker=e=>{let t="walk"+e.name;t.lastIndexOf("s")!==t.length-1&&(t+="s"),o.prototype[t]||(o.prototype[t]=function(t){return this.walkType(e,t)})},e.exports=o},9645:e=>{class t extends Error{constructor(e){super(e),this.name=this.constructor.name,this.message=e||"An error ocurred while parsing.","function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}}e.exports=t},5128:e=>{class t extends Error{constructor(e){super(e),this.name=this.constructor.name,this.message=e||"An error ocurred while tokzenizing.","function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack}}e.exports=t},4320:(e,t,r)=>{const n=r(4196);class o extends n{constructor(e){super(e),this.type="func",this.unbalanced=-1}}n.registerWalker(o),e.exports=o},9962:(e,t,r)=>{const n=r(3784),o=r(5294),i=r(8709),s=r(3627),u=r(4384),a=r(4320),c=r(3074),l=r(7214),f=r(1238),p=r(9672),h=r(1369),d=r(2057),D=r(6593);let g=function(e,t){return new n(e,t)};g.atword=function(e){return new o(e)},g.colon=function(e){return new i(Object.assign({value:":"},e))},g.comma=function(e){return new s(Object.assign({value:","},e))},g.comment=function(e){return new u(e)},g.func=function(e){return new a(e)},g.number=function(e){return new c(e)},g.operator=function(e){return new l(e)},g.paren=function(e){return new f(Object.assign({value:"("},e))},g.string=function(e){return new p(Object.assign({quote:"'"},e))},g.value=function(e){return new d(e)},g.word=function(e){return new D(e)},g.unicodeRange=function(e){return new h(e)},e.exports=g},1466:e=>{let t=function(e,r){let n=new e.constructor;for(let o in e){if(!e.hasOwnProperty(o))continue;let i=e[o],s=typeof i;"parent"===o&&"object"===s?r&&(n[o]=r):"source"===o?n[o]=i:i instanceof Array?n[o]=i.map((e=>t(e,n))):"before"!==o&&"after"!==o&&"between"!==o&&"semicolon"!==o&&("object"===s&&null!==i&&(i=t(i)),n[o]=i)}return n};e.exports=class{constructor(e){e=e||{},this.raws={before:"",after:""};for(let t in e)this[t]=e[t]}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(){return[this.raws.before,String(this.value),this.raws.after].join("")}clone(e){e=e||{};let r=t(this);for(let t in e)r[t]=e[t];return r}cloneBefore(e){e=e||{};let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e){e=e||{};let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(){let e=Array.prototype.slice.call(arguments);if(this.parent){for(let t of e)this.parent.insertBefore(this,t);this.remove()}return this}moveTo(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.append(this),this}moveBefore(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.parent.insertBefore(e,this),this}moveAfter(e){return this.cleanRaws(this.root()===e.root()),this.remove(),e.parent.insertAfter(e,this),this}next(){let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){let e=this.parent.index(this);return this.parent.nodes[e-1]}toJSON(){let e={};for(let t in this){if(!this.hasOwnProperty(t))continue;if("parent"===t)continue;let r=this[t];r instanceof Array?e[t]=r.map((e=>"object"==typeof e&&e.toJSON?e.toJSON():e)):"object"==typeof r&&r.toJSON?e[t]=r.toJSON():e[t]=r}return e}root(){let e=this;for(;e.parent;)e=e.parent;return e}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}positionInside(e){let t=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let o=0;o{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="number",this.unit=Object(e).unit||""}toString(){return[this.raws.before,String(this.value),this.unit,this.raws.after].join("")}}n.registerWalker(i),e.exports=i},7214:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="operator"}}n.registerWalker(i),e.exports=i},1238:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="paren",this.parenType=""}}n.registerWalker(i),e.exports=i},3784:(e,t,r)=>{r(4070);const n=r(4343),o=r(2057),i=r(5294),s=r(8709),u=r(3627),a=r(4384),c=r(4320),l=r(3074),f=r(7214),p=r(1238),h=r(9672),d=r(6593),D=r(1369),g=r(2481),m=r(8051),v=r(7886),y=r(3210),w=r(9645);e.exports=class{constructor(e,t){this.cache=[],this.input=e,this.options=Object.assign({},{loose:!1},t),this.position=0,this.unbalanced=0,this.root=new n;let r=new o;this.root.append(r),this.current=r,this.tokens=g(e,this.options)}parse(){return this.loop()}colon(){let e=this.currToken;this.newNode(new s({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}comma(){let e=this.currToken;this.newNode(new u({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}comment(){let e,t=!1,r=this.currToken[1].replace(/\/\*|\*\//g,"");this.options.loose&&r.startsWith("//")&&(r=r.substring(2),t=!0),e=new a({value:r,inline:t,source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[4],column:this.currToken[5]}},sourceIndex:this.currToken[6]}),this.newNode(e),this.position++}error(e,t){throw new w(e+` at line: ${t[2]}, column ${t[3]}`)}loop(){for(;this.position0&&("func"===this.current.type&&"calc"===this.current.value?("space"!==this.prevToken[0]&&"("!==this.prevToken[0]||"space"!==this.nextToken[0]&&"word"!==this.nextToken[0]||"word"===this.nextToken[0]&&"operator"!==this.current.last.type&&"("!==this.current.last.value)&&this.error("Syntax Error",this.currToken):"space"!==this.nextToken[0]&&"operator"!==this.nextToken[0]&&"operator"!==this.prevToken[0]||this.error("Syntax Error",this.currToken)),this.options.loose){if((!this.current.nodes.length||this.current.last&&"operator"===this.current.last.type)&&"word"===this.nextToken[0])return this.word()}else if("word"===this.nextToken[0])return this.word();return e=new f({value:this.currToken[1],source:{start:{line:this.currToken[2],column:this.currToken[3]},end:{line:this.currToken[2],column:this.currToken[3]}},sourceIndex:this.currToken[4]}),this.position++,this.newNode(e)}parseTokens(){switch(this.currToken[0]){case"space":this.space();break;case"colon":this.colon();break;case"comma":this.comma();break;case"comment":this.comment();break;case"(":this.parenOpen();break;case")":this.parenClose();break;case"atword":case"word":this.word();break;case"operator":this.operator();break;case"string":this.string();break;case"unicoderange":this.unicodeRange();break;default:this.word()}}parenOpen(){let e,t=1,r=this.position+1,n=this.currToken;for(;r=this.tokens.length-1&&!this.current.unbalanced||(this.current.unbalanced--,this.current.unbalanced<0&&this.error("Expected opening parenthesis",e),!this.current.unbalanced&&this.cache.length&&(this.current=this.cache.pop()))}space(){let e=this.currToken;this.position===this.tokens.length-1||","===this.nextToken[0]||")"===this.nextToken[0]?(this.current.last.raws.after+=e[1],this.position++):(this.spaces=e[1],this.position++)}unicodeRange(){let e=this.currToken;this.newNode(new D({value:e[1],source:{start:{line:e[2],column:e[3]},end:{line:e[4],column:e[5]}},sourceIndex:e[6]})),this.position++}splitWord(){let e,t,r=this.nextToken,n=this.currToken[1],o=/^[\+\-]?((\d+(\.\d*)?)|(\.\d+))([eE][\+\-]?\d+)?/;if(!/^(?!\#([a-z0-9]+))[\#\{\}]/gi.test(n))for(;r&&"word"===r[0];){this.position++;let e=this.currToken[1];n+=e,r=this.nextToken}var s;e=v(n,"@"),s=y(m([[0],e])),t=s.sort(((e,t)=>e-t)),t.forEach(((s,u)=>{let a,f=t[u+1]||n.length,p=n.slice(s,f);if(~e.indexOf(s))a=new i({value:p.slice(1),source:{start:{line:this.currToken[2],column:this.currToken[3]+s},end:{line:this.currToken[4],column:this.currToken[3]+(f-1)}},sourceIndex:this.currToken[6]+t[u]});else if(o.test(this.currToken[1])){let e=p.replace(o,"");a=new l({value:p.replace(e,""),source:{start:{line:this.currToken[2],column:this.currToken[3]+s},end:{line:this.currToken[4],column:this.currToken[3]+(f-1)}},sourceIndex:this.currToken[6]+t[u],unit:e})}else a=new(r&&"("===r[0]?c:d)({value:p,source:{start:{line:this.currToken[2],column:this.currToken[3]+s},end:{line:this.currToken[4],column:this.currToken[3]+(f-1)}},sourceIndex:this.currToken[6]+t[u]}),"Word"===a.constructor.name?(a.isHex=/^#(.+)/.test(p),a.isColor=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(p)):this.cache.push(this.current);this.newNode(a)})),this.position++}string(){let e,t=this.currToken,r=this.currToken[1],n=/^(\"|\')/,o=n.test(r),i="";o&&(i=r.match(n)[0],r=r.slice(1,r.length-1)),e=new h({value:r,source:{start:{line:t[2],column:t[3]},end:{line:t[4],column:t[5]}},sourceIndex:t[6],quoted:o}),e.raws.quote=i,this.newNode(e),this.position++}word(){return this.splitWord()}newNode(e){return this.spaces&&(e.raws.before+=this.spaces,this.spaces=""),this.current.append(e)}get currToken(){return this.tokens[this.position]}get nextToken(){return this.tokens[this.position+1]}get prevToken(){return this.tokens[this.position-1]}}},4343:(e,t,r)=>{const n=r(4196);e.exports=class extends n{constructor(e){super(e),this.type="root"}}},9672:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="string"}toString(){let e=this.quoted?this.raws.quote:"";return[this.raws.before,e,this.value+"",e,this.raws.after].join("")}}n.registerWalker(i),e.exports=i},2481:(e,t,r)=>{const n="{".charCodeAt(0),o="}".charCodeAt(0),i="(".charCodeAt(0),s=")".charCodeAt(0),u="'".charCodeAt(0),a='"'.charCodeAt(0),c="\\".charCodeAt(0),l="/".charCodeAt(0),f=".".charCodeAt(0),p=",".charCodeAt(0),h=":".charCodeAt(0),d="*".charCodeAt(0),D="-".charCodeAt(0),g="+".charCodeAt(0),m="#".charCodeAt(0),v="\n".charCodeAt(0),y=" ".charCodeAt(0),w="\f".charCodeAt(0),b="\t".charCodeAt(0),C="\r".charCodeAt(0),E="@".charCodeAt(0),F="e".charCodeAt(0),A="E".charCodeAt(0),x="0".charCodeAt(0),k="9".charCodeAt(0),_="u".charCodeAt(0),O="U".charCodeAt(0),S=/[ \n\t\r\{\(\)'"\\;,/]/g,T=/[ \n\t\r\(\)\{\}\*:;@!&'"\+\|~>,\[\]\\]|\/(?=\*)/g,I=/[ \n\t\r\(\)\{\}\*:;@!&'"\-\+\|~>,\[\]\\]|\//g,N=/^[a-z0-9]/i,M=/^[a-f0-9?\-]/i,R=r(8472),j=r(5128);e.exports=function(e,t){t=t||{};let r,L,B,P,$,U,G,W,z,V,q,X=[],J=e.valueOf(),H=J.length,Y=-1,K=1,Z=0,Q=0,ee=null;function te(e){let t=R.format("Unclosed %s at line: %d, column: %d, token: %d",e,K,Z-Y,Z);throw new j(t)}for(;Z0&&"word"===X[X.length-1][0]&&"url"===X[X.length-1][1],X.push(["(","(",K,Z-Y,K,L-Y,Z]);break;case s:Q--,ee=ee&&Q>0,X.push([")",")",K,Z-Y,K,L-Y,Z]);break;case u:case a:B=r===u?"'":'"',L=Z;do{for(z=!1,L=J.indexOf(B,L+1),-1===L&&te("quote"),V=L;J.charCodeAt(V-1)===c;)V-=1,z=!z}while(z);X.push(["string",J.slice(Z,L+1),K,Z-Y,K,L-Y,Z]),Z=L;break;case E:S.lastIndex=Z+1,S.test(J),L=0===S.lastIndex?J.length-1:S.lastIndex-2,X.push(["atword",J.slice(Z,L+1),K,Z-Y,K,L-Y,Z]),Z=L;break;case c:L=Z,r=J.charCodeAt(L+1),X.push(["word",J.slice(Z,L+1),K,Z-Y,K,L-Y,Z]),Z=L;break;case g:case D:case d:if(L=Z+1,q=J.slice(Z+1,L+1),J.slice(Z-1,Z),r===D&&q.charCodeAt(0)===D){L++,X.push(["word",J.slice(Z,L),K,Z-Y,K,L-Y,Z]),Z=L-1;break}X.push(["operator",J.slice(Z,L),K,Z-Y,K,L-Y,Z]),Z=L-1;break;default:if(r===l&&(J.charCodeAt(Z+1)===d||t.loose&&!ee&&J.charCodeAt(Z+1)===l)){if(J.charCodeAt(Z+1)===d)L=J.indexOf("*/",Z+2)+1,0===L&&te("comment");else{const e=J.indexOf("\n",Z+2);L=-1!==e?e-1:H}U=J.slice(Z,L+1),P=U.split("\n"),$=P.length-1,$>0?(G=K+$,W=L-P[$].length):(G=K,W=Y),X.push(["comment",U,K,Z-Y,G,L-W,Z]),Y=W,K=G,Z=L}else if(r!==m||N.test(J.slice(Z+1,Z+2)))if(r!==_&&r!==O||J.charCodeAt(Z+1)!==g)if(r===l)L=Z+1,X.push(["operator",J.slice(Z,L),K,Z-Y,K,L-Y,Z]),Z=L-1;else{let e=T;if(r>=x&&r<=k&&(e=I),e.lastIndex=Z+1,e.test(J),L=0===e.lastIndex?J.length-1:e.lastIndex-2,e===I||r===f){let e=J.charCodeAt(L),t=J.charCodeAt(L+1),r=J.charCodeAt(L+2);(e===F||e===A)&&(t===D||t===g)&&r>=x&&r<=k&&(I.lastIndex=L+2,I.test(J),L=0===I.lastIndex?J.length-1:I.lastIndex-2)}X.push(["word",J.slice(Z,L+1),K,Z-Y,K,L-Y,Z]),Z=L}else{L=Z+2;do{L+=1,r=J.charCodeAt(L)}while(L{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="unicode-range"}}n.registerWalker(i),e.exports=i},2057:(e,t,r)=>{const n=r(4196);e.exports=class extends n{constructor(e){super(e),this.type="value",this.unbalanced=0}}},6593:(e,t,r)=>{const n=r(4196),o=r(1466);class i extends o{constructor(e){super(e),this.type="word"}}n.registerWalker(i),e.exports=i},8940:(e,t,r)=>{var n;t.__esModule=!0,t.default=void 0;var o=function(e){var t,r;function n(t){var r;return(r=e.call(this,t)||this).type="atrule",r}r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r;var o=n.prototype;return o.append=function(){var t;this.nodes||(this.nodes=[]);for(var r=arguments.length,n=new Array(r),o=0;o{var n;t.__esModule=!0,t.default=void 0;var o=function(e){var t,r;function n(t){var r;return(r=e.call(this,t)||this).type="comment",r}return r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,n}(((n=r(1714))&&n.__esModule?n:{default:n}).default);t.default=o,e.exports=t.default},1204:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=i(r(6417)),o=i(r(3102));function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e&&(this.indexes[r]=t-1);return this},f.removeAll=function(){for(var e,t=s(this.nodes);!(e=t()).done;)e.value.parent=void 0;return this.nodes=[],this},f.replaceValues=function(e,t,r){return r||(r=t,t={}),this.walkDecls((function(n){t.props&&-1===t.props.indexOf(n.prop)||t.fast&&-1===n.value.indexOf(t.fast)||(n.value=n.value.replace(e,r))})),this},f.every=function(e){return this.nodes.every(e)},f.some=function(e){return this.nodes.some(e)},f.index=function(e){return"number"==typeof e?e:this.nodes.indexOf(e)},f.normalize=function(e,t){var i=this;if("string"==typeof e)e=c(r(7057)(e).nodes);else if(Array.isArray(e))for(var u,a=s(e=e.slice(0));!(u=a()).done;){var l=u.value;l.parent&&l.parent.removeChild(l,"ignore")}else if("root"===e.type)for(var f,p=s(e=e.nodes.slice(0));!(f=p()).done;){var h=f.value;h.parent&&h.parent.removeChild(h,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new n.default(e)]}else if(e.selector)e=[new(r(6621))(e)];else if(e.name)e=[new(r(8940))(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new o.default(e)]}return e.map((function(e){return e.parent&&e.parent.removeChild(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/[^\s]/g,"")),e.parent=i,e}))},(l=[{key:"first",get:function(){if(this.nodes)return this.nodes[0]}},{key:"last",get:function(){if(this.nodes)return this.nodes[this.nodes.length-1]}}])&&a(u.prototype,l),u}(i(r(1714)).default);t.default=l,e.exports=t.default},1667:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=s(r(6083)),o=s(r(3248)),i=s(r(2868));function s(e){return e&&e.__esModule?e:{default:e}}function u(e){var t="function"==typeof Map?new Map:void 0;return(u=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return a(e,arguments,f(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),l(n,e)})(e)}function a(e,t,r){return(a=c()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&l(o,r.prototype),o}).apply(null,arguments)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function f(e){return(f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var p=function(e){var t,r;function s(t,r,n,o,i,u){var a;return(a=e.call(this,t)||this).name="CssSyntaxError",a.reason=t,i&&(a.file=i),o&&(a.source=o),u&&(a.plugin=u),void 0!==r&&void 0!==n&&(a.line=r,a.column=n),a.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(a),s),a}r=e,(t=s).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r;var u=s.prototype;return u.setMessage=function(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},u.showSourceCode=function(e){var t=this;if(!this.source)return"";var r=this.source;i.default&&(void 0===e&&(e=n.default.stdout),e&&(r=(0,i.default)(r)));var s=r.split(/\r?\n/),u=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),c=String(a).length;function l(t){return e&&o.default.red?o.default.red.bold(t):t}function f(t){return e&&o.default.gray?o.default.gray(t):t}return s.slice(u,a).map((function(e,r){var n=u+1+r,o=" "+(" "+n).slice(-c)+" | ";if(n===t.line){var i=f(o.replace(/\d/g," "))+e.slice(0,t.column-1).replace(/[^\t]/g," ");return l(">")+f(o)+e+"\n "+i+l("^")}return" "+f(o)+e})).join("\n")},u.toString=function(){var e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e},s}(u(Error));t.default=p,e.exports=t.default},6417:(e,t,r)=>{var n;t.__esModule=!0,t.default=void 0;var o=function(e){var t,r;function n(t){var r;return(r=e.call(this,t)||this).type="decl",r}return r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,n}(((n=r(1714))&&n.__esModule?n:{default:n}).default);t.default=o,e.exports=t.default},2993:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=s(r(6391)),o=s(r(1667)),i=s(r(3353));function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){for(var r=0;r"),this.map&&(this.map.file=this.from)}var t,r=e.prototype;return r.error=function(e,t,r,n){var i;void 0===n&&(n={});var s=this.origin(t,r);return(i=s?new o.default(e,s.line,s.column,s.source,s.file,n.plugin):new o.default(e,t,r,this.css,this.file,n.plugin)).input={line:t,column:r,source:this.css},this.file&&(i.input.file=this.file),i},r.origin=function(e,t){if(!this.map)return!1;var r=this.map.consumer(),n=r.originalPositionFor({line:e,column:t});if(!n.source)return!1;var o={file:this.mapResolve(n.source),line:n.line,column:n.column},i=r.sourceContentFor(n.source);return i&&(o.source=i),o},r.mapResolve=function(e){return/^\w+:\/\//.test(e)?e:n.default.resolve(this.map.consumer().sourceRoot||".",e)},(t=[{key:"from",get:function(){return this.file||this.id}}])&&u(e.prototype,t),e}();t.default=c,e.exports=t.default},6992:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=u(r(8991)),o=u(r(6157)),i=(u(r(6574)),u(r(6865))),s=u(r(7057));function u(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=this.processor.plugins.length)return this.processed=!0,e();try{var n=this.processor.plugins[this.plugin],o=this.run(n);this.plugin+=1,f(o)?o.then((function(){r.asyncTick(e,t)})).catch((function(e){r.handleError(e,n),r.processed=!0,t(e)})):this.asyncTick(e,t)}catch(e){this.processed=!0,t(e)}},r.async=function(){var e=this;return this.processed?new Promise((function(t,r){e.error?r(e.error):t(e.stringify())})):(this.processing||(this.processing=new Promise((function(t,r){if(e.error)return r(e.error);e.plugin=0,e.asyncTick(t,r)})).then((function(){return e.processed=!0,e.stringify()}))),this.processing)},r.sync=function(){if(this.processed)return this.result;if(this.processed=!0,this.processing)throw new Error("Use process(css).then(cb) to work with async plugins");if(this.error)throw this.error;for(var e,t=a(this.result.processor.plugins);!(e=t()).done;){var r=e.value;if(f(this.run(r)))throw new Error("Use process(css).then(cb) to work with async plugins")}return this.result},r.run=function(e){this.result.lastPlugin=e;try{return e(this.result.root,this.result)}catch(t){throw this.handleError(t,e),t}},r.stringify=function(){if(this.stringified)return this.result;this.stringified=!0,this.sync();var e=this.result.opts,t=o.default;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);var r=new n.default(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result},(t=[{key:"processor",get:function(){return this.result.processor}},{key:"opts",get:function(){return this.result.opts}},{key:"css",get:function(){return this.stringify().css}},{key:"content",get:function(){return this.stringify().content}},{key:"map",get:function(){return this.stringify().map}},{key:"root",get:function(){return this.sync().root}},{key:"messages",get:function(){return this.sync().messages}}])&&l(e.prototype,t),e}();t.default=p,e.exports=t.default},6136:(e,t)=>{t.__esModule=!0,t.default=void 0;var r={split:function(e,t,r){for(var n=[],o="",i=!1,s=0,u=!1,a=!1,c=0;c0&&(s-=1):0===s&&-1!==t.indexOf(l)&&(i=!0),i?(""!==o&&n.push(o.trim()),o="",i=!1):o+=l}return(r||""!==o)&&n.push(o.trim()),n},space:function(e){return r.split(e,[" ","\n","\t"])},comma:function(e){return r.split(e,[","],!0)}},n=r;t.default=n,e.exports=t.default},8991:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=i(r(2447)),o=i(r(6391));function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},t.previous=function(){var e=this;return this.previousMaps||(this.previousMaps=[],this.root.walk((function(t){if(t.source&&t.source.input.map){var r=t.source.input.map;-1===e.previousMaps.indexOf(r)&&e.previousMaps.push(r)}}))),this.previousMaps},t.isInline=function(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;var e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((function(e){return e.inline})))},t.isSourcesContent=function(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((function(e){return e.withContent()}))},t.clearAnnotation=function(){if(!1!==this.mapOpts.annotation)for(var e,t=this.root.nodes.length-1;t>=0;t--)"comment"===(e=this.root.nodes[t]).type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)},t.setSourcesContent=function(){var e=this,t={};this.root.walk((function(r){if(r.source){var n=r.source.input.from;if(n&&!t[n]){t[n]=!0;var o=e.relative(n);e.map.setSourceContent(o,r.source.input.css)}}}))},t.applyPrevMaps=function(){for(var e,t=s(this.previous());!(e=t()).done;){var r=e.value,i=this.relative(r.file),u=r.root||o.default.dirname(r.file),a=void 0;!1===this.mapOpts.sourcesContent?(a=new n.default.SourceMapConsumer(r.text)).sourcesContent&&(a.sourcesContent=a.sourcesContent.map((function(){return null}))):a=r.consumer(),this.map.applySourceMap(a,i,this.relative(u))}},t.isAnnotation=function(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((function(e){return e.annotation})))},t.toBase64=function(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))},t.addAnnotation=function(){var e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:this.outputFile()+".map";var t="\n";-1!==this.css.indexOf("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"},t.outputFile=function(){return this.opts.to?this.relative(this.opts.to):this.opts.from?this.relative(this.opts.from):"to.css"},t.generateMap=function(){return this.generateString(),this.isSourcesContent()&&this.setSourcesContent(),this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]},t.relative=function(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;var t=this.opts.to?o.default.dirname(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=o.default.dirname(o.default.resolve(t,this.mapOpts.annotation))),e=o.default.relative(t,e),"\\"===o.default.sep?e.replace(/\\/g,"/"):e},t.sourcePath=function(e){return this.mapOpts.from?this.mapOpts.from:this.relative(e.source.input.from)},t.generateString=function(){var e=this;this.css="",this.map=new n.default.SourceMapGenerator({file:this.outputFile()});var t,r,o=1,i=1;this.stringify(this.root,(function(n,s,u){if(e.css+=n,s&&"end"!==u&&(s.source&&s.source.start?e.map.addMapping({source:e.sourcePath(s),generated:{line:o,column:i-1},original:{line:s.source.start.line,column:s.source.start.column-1}}):e.map.addMapping({source:"",original:{line:1,column:0},generated:{line:o,column:i-1}})),(t=n.match(/\n/g))?(o+=t.length,r=n.lastIndexOf("\n"),i=n.length-r):i+=n.length,s&&"start"!==u){var a=s.parent||{raws:{}};("decl"!==s.type||s!==a.last||a.raws.semicolon)&&(s.source&&s.source.end?e.map.addMapping({source:e.sourcePath(s),generated:{line:o,column:i-2},original:{line:s.source.end.line,column:s.source.end.column-1}}):e.map.addMapping({source:"",original:{line:1,column:0},generated:{line:o,column:i-1}}))}}))},t.generate=function(){if(this.clearAnnotation(),this.isMap())return this.generateMap();var e="";return this.stringify(this.root,(function(t){e+=t})),[e]},e}();t.default=a,e.exports=t.default},1714:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=s(r(1667)),o=s(r(5701)),i=s(r(6157));function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){var r=new e.constructor;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],i=typeof o;"parent"===n&&"object"===i?t&&(r[n]=t):"source"===n?r[n]=o:o instanceof Array?r[n]=o.map((function(e){return u(e,r)})):("object"===i&&null!==o&&(o=u(o)),r[n]=o)}return r}var a=function(){function e(e){for(var t in void 0===e&&(e={}),this.raws={},e)this[t]=e[t]}var t=e.prototype;return t.error=function(e,t){if(void 0===t&&(t={}),this.source){var r=this.positionBy(t);return this.source.input.error(e,r.line,r.column,t)}return new n.default(e)},t.warn=function(e,t,r){var n={node:this};for(var o in r)n[o]=r[o];return e.warn(t,n)},t.remove=function(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this},t.toString=function(e){void 0===e&&(e=i.default),e.stringify&&(e=e.stringify);var t="";return e(this,(function(e){t+=e})),t},t.clone=function(e){void 0===e&&(e={});var t=u(this);for(var r in e)t[r]=e[r];return t},t.cloneBefore=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertBefore(this,t),t},t.cloneAfter=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertAfter(this,t),t},t.replaceWith=function(){if(this.parent){for(var e=arguments.length,t=new Array(e),r=0;r{t.__esModule=!0,t.default=void 0;var n=i(r(7116)),o=i(r(2993));function i(e){return e&&e.__esModule?e:{default:e}}var s=function(e,t){var r=new o.default(e,t),i=new n.default(r);try{i.parse()}catch(e){throw e}return i.root};t.default=s,e.exports=t.default},7116:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=c(r(6417)),o=c(r(1157)),i=c(r(3102)),s=c(r(8940)),u=c(r(7563)),a=c(r(6621));function c(e){return e&&e.__esModule?e:{default:e}}var l=function(){function e(e){this.input=e,this.root=new u.default,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{line:1,column:1}}}var t=e.prototype;return t.createTokenizer=function(){this.tokenizer=(0,o.default)(this.input)},t.parse=function(){for(var e;!this.tokenizer.endOfFile();)switch((e=this.tokenizer.nextToken())[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()},t.comment=function(e){var t=new i.default;this.init(t,e[2],e[3]),t.source.end={line:e[4],column:e[5]};var r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{var n=r.match(/^(\s*)([^]*[^\s])(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}},t.emptyRule=function(e){var t=new a.default;this.init(t,e[2],e[3]),t.selector="",t.raws.between="",this.current=t},t.other=function(e){for(var t=!1,r=null,n=!1,o=null,i=[],s=[],u=e;u;){if(r=u[0],s.push(u),"("===r||"["===r)o||(o=u),i.push("("===r?")":"]");else if(0===i.length){if(";"===r){if(n)return void this.decl(s);break}if("{"===r)return void this.rule(s);if("}"===r){this.tokenizer.back(s.pop()),t=!0;break}":"===r&&(n=!0)}else r===i[i.length-1]&&(i.pop(),0===i.length&&(o=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),i.length>0&&this.unclosedBracket(o),t&&n){for(;s.length&&("space"===(u=s[s.length-1][0])||"comment"===u);)this.tokenizer.back(s.pop());this.decl(s)}else this.unknownWord(s)},t.rule=function(e){e.pop();var t=new a.default;this.init(t,e[0][2],e[0][3]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t},t.decl=function(e){var t=new n.default;this.init(t);var r,o=e[e.length-1];for(";"===o[0]&&(this.semicolon=!0,e.pop()),o[4]?t.source.end={line:o[4],column:o[5]}:t.source.end={line:o[2],column:o[3]};"word"!==e[0][0];)1===e.length&&this.unknownWord(e),t.raws.before+=e.shift()[1];for(t.source.start={line:e[0][2],column:e[0][3]},t.prop="";e.length;){var i=e[0][0];if(":"===i||"space"===i||"comment"===i)break;t.prop+=e.shift()[1]}for(t.raws.between="";e.length;){if(":"===(r=e.shift())[0]){t.raws.between+=r[1];break}"word"===r[0]&&/\w/.test(r[1])&&this.unknownWord([r]),t.raws.between+=r[1]}"_"!==t.prop[0]&&"*"!==t.prop[0]||(t.raws.before+=t.prop[0],t.prop=t.prop.slice(1)),t.raws.between+=this.spacesAndCommentsFromStart(e),this.precheckMissedSemicolon(e);for(var s=e.length-1;s>0;s--){if("!important"===(r=e[s])[1].toLowerCase()){t.important=!0;var u=this.stringFrom(e,s);" !important"!==(u=this.spacesFromEnd(e)+u)&&(t.raws.important=u);break}if("important"===r[1].toLowerCase()){for(var a=e.slice(0),c="",l=s;l>0;l--){var f=a[l][0];if(0===c.trim().indexOf("!")&&"space"!==f)break;c=a.pop()[1]+c}0===c.trim().indexOf("!")&&(t.important=!0,t.raws.important=c,e=a)}if("space"!==r[0]&&"comment"!==r[0])break}this.raw(t,"value",e),-1!==t.value.indexOf(":")&&this.checkMissedSemicolon(e)},t.atrule=function(e){var t,r,n=new s.default;n.name=e[1].slice(1),""===n.name&&this.unnamedAtrule(n,e),this.init(n,e[2],e[3]);for(var o=!1,i=!1,u=[];!this.tokenizer.endOfFile();){if(";"===(e=this.tokenizer.nextToken())[0]){n.source.end={line:e[2],column:e[3]},this.semicolon=!0;break}if("{"===e[0]){i=!0;break}if("}"===e[0]){if(u.length>0){for(t=u[r=u.length-1];t&&"space"===t[0];)t=u[--r];t&&(n.source.end={line:t[4],column:t[5]})}this.end(e);break}if(u.push(e),this.tokenizer.endOfFile()){o=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,"params",u),o&&(e=u[u.length-1],n.source.end={line:e[4],column:e[5]},this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),i&&(n.nodes=[],this.current=n)},t.end=function(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end={line:e[2],column:e[3]},this.current=this.current.parent):this.unexpectedClose(e)},t.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces},t.freeSemicolon=function(e){if(this.spaces+=e[1],this.current.nodes){var t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}},t.init=function(e,t,r){this.current.push(e),e.source={start:{line:t,column:r},input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)},t.raw=function(e,t,r){for(var n,o,i,s,u=r.length,a="",c=!0,l=/^([.|#])?([\w])+/i,f=0;f=0&&("space"===(r=e[o])[0]||2!==(n+=1));o--);throw this.input.error("Missed semicolon",r[2],r[3])}},e}();t.default=l,e.exports=t.default},3353:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=s(r(2447)),o=s(r(6391)),i=s(r(7545));function s(e){return e&&e.__esModule?e:{default:e}}var u=function(){function e(e,t){this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");var r=t.map?t.map.prev:void 0,n=this.loadMap(t.from,r);n&&(this.text=n)}var t=e.prototype;return t.consumer=function(){return this.consumerCache||(this.consumerCache=new n.default.SourceMapConsumer(this.text)),this.consumerCache},t.withContent=function(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)},t.startWith=function(e,t){return!!e&&e.substr(0,t.length)===t},t.getAnnotationURL=function(e){return e.match(/\/\*\s*# sourceMappingURL=((?:(?!sourceMappingURL=).)*)\*\//)[1].trim()},t.loadAnnotation=function(e){var t=e.match(/\/\*\s*# sourceMappingURL=(?:(?!sourceMappingURL=).)*\*\//gm);if(t&&t.length>0){var r=t[t.length-1];r&&(this.annotation=this.getAnnotationURL(r))}},t.decodeInline=function(e){var t,r="data:application/json,";if(this.startWith(e,r))return decodeURIComponent(e.substr(r.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)},t.loadMap=function(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"==typeof t){var r=t(e);if(r&&i.default.existsSync&&i.default.existsSync(r))return i.default.readFileSync(r,"utf-8").toString().trim();throw new Error("Unable to load previous source map: "+r.toString())}if(t instanceof n.default.SourceMapConsumer)return n.default.SourceMapGenerator.fromSourceMap(t).toString();if(t instanceof n.default.SourceMapGenerator)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){var s=this.annotation;return e&&(s=o.default.join(o.default.dirname(e),s)),this.root=o.default.dirname(s),!(!i.default.existsSync||!i.default.existsSync(s))&&i.default.readFileSync(s,"utf-8").toString().trim()}},t.isMap=function(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings)},e}();t.default=u,e.exports=t.default},9429:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n,o=(n=r(6992))&&n.__esModule?n:{default:n};function i(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{t.__esModule=!0,t.default=void 0;var n,o=(n=r(1662))&&n.__esModule?n:{default:n};function i(e,t){for(var r=0;r{var n;function o(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),e.prototype.removeChild.call(this,t)},s.normalize=function(t,r,n){var i=e.prototype.normalize.call(this,t);if(r)if("prepend"===n)this.nodes.length>1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before;else if(this.first!==r)for(var s,u=o(i);!(s=u()).done;)s.value.raws.before=r.raws.before;return i},s.toResult=function(e){return void 0===e&&(e={}),new(r(6992))(new(r(9429)),this,e).stringify()},i}(((n=r(1204))&&n.__esModule?n:{default:n}).default);t.default=s,e.exports=t.default},6621:(e,t,r)=>{t.__esModule=!0,t.default=void 0;var n=i(r(1204)),o=i(r(6136));function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){for(var r=0;r{t.__esModule=!0,t.default=void 0;var r={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1},n=function(){function e(e){this.builder=e}var t=e.prototype;return t.stringify=function(e,t){this[e.type](e,t)},t.root=function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)},t.comment=function(e){var t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+r+"*/",e)},t.decl=function(e,t){var r=this.raw(e,"between","colon"),n=e.prop+r+this.rawValue(e,"value");e.important&&(n+=e.raws.important||" !important"),t&&(n+=";"),this.builder(n,e)},t.rule=function(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")},t.atrule=function(e,t){var r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{var o=(e.raws.between||"")+(t?";":"");this.builder(r+n+o,e)}},t.body=function(e){for(var t=e.nodes.length-1;t>0&&"comment"===e.nodes[t].type;)t-=1;for(var r=this.raw(e,"semicolon"),n=0;n0&&void 0!==e.raws.after)return-1!==(t=e.raws.after).indexOf("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/[^\s]/g,"")),t},t.rawBeforeOpen=function(e){var t;return e.walk((function(e){if("decl"!==e.type&&void 0!==(t=e.raws.between))return!1})),t},t.rawColon=function(e){var t;return e.walkDecls((function(e){if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t},t.beforeAfter=function(e,t){var r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");for(var n=e.parent,o=0;n&&"root"!==n.type;)o+=1,n=n.parent;if(-1!==r.indexOf("\n")){var i=this.raw(e,null,"indent");if(i.length)for(var s=0;s{t.__esModule=!0,t.default=void 0;var n,o=(n=r(5701))&&n.__esModule?n:{default:n},i=function(e,t){new o.default(t).stringify(e)};t.default=i,e.exports=t.default},1157:(e,t)=>{t.__esModule=!0,t.default=function(e,t){void 0===t&&(t={});var A,x,k,_,O,S,T,I,N,M,R,j,L,B,P=e.css.valueOf(),$=t.ignoreErrors,U=P.length,G=-1,W=1,z=0,V=[],q=[];function X(t){throw e.error("Unclosed "+t,W,z-G)}return{back:function(e){q.push(e)},nextToken:function(e){if(q.length)return q.pop();if(!(z>=U)){var t=!!e&&e.ignoreUnclosed;switch(((A=P.charCodeAt(z))===s||A===a||A===l&&P.charCodeAt(z+1)!==s)&&(G=z,W+=1),A){case s:case u:case c:case l:case a:x=z;do{x+=1,(A=P.charCodeAt(x))===s&&(G=x,W+=1)}while(A===u||A===s||A===c||A===l||A===a);B=["space",P.slice(z,x)],z=x-1;break;case f:case p:case D:case g:case y:case m:case d:var J=String.fromCharCode(A);B=[J,J,W,z-G];break;case h:if(j=V.length?V.pop()[1]:"",L=P.charCodeAt(z+1),"url"===j&&L!==r&&L!==n&&L!==u&&L!==s&&L!==c&&L!==a&&L!==l){x=z;do{if(M=!1,-1===(x=P.indexOf(")",x+1))){if($||t){x=z;break}X("bracket")}for(R=x;P.charCodeAt(R-1)===o;)R-=1,M=!M}while(M);B=["brackets",P.slice(z,x+1),W,z-G,W,x-G],z=x}else x=P.indexOf(")",z+1),S=P.slice(z,x+1),-1===x||E.test(S)?B=["(","(",W,z-G]:(B=["brackets",S,W,z-G,W,x-G],z=x);break;case r:case n:k=A===r?"'":'"',x=z;do{if(M=!1,-1===(x=P.indexOf(k,x+1))){if($||t){x=z+1;break}X("string")}for(R=x;P.charCodeAt(R-1)===o;)R-=1,M=!M}while(M);S=P.slice(z,x+1),_=S.split("\n"),(O=_.length-1)>0?(I=W+O,N=x-_[O].length):(I=W,N=G),B=["string",P.slice(z,x+1),W,z-G,I,x-N],G=N,W=I,z=x;break;case w:b.lastIndex=z+1,b.test(P),x=0===b.lastIndex?P.length-1:b.lastIndex-2,B=["at-word",P.slice(z,x+1),W,z-G,W,x-G],z=x;break;case o:for(x=z,T=!0;P.charCodeAt(x+1)===o;)x+=1,T=!T;if(A=P.charCodeAt(x+1),T&&A!==i&&A!==u&&A!==s&&A!==c&&A!==l&&A!==a&&(x+=1,F.test(P.charAt(x)))){for(;F.test(P.charAt(x+1));)x+=1;P.charCodeAt(x+1)===u&&(x+=1)}B=["word",P.slice(z,x+1),W,z-G,W,x-G],z=x;break;default:A===i&&P.charCodeAt(z+1)===v?(0===(x=P.indexOf("*/",z+2)+1)&&($||t?x=P.length:X("comment")),S=P.slice(z,x+1),_=S.split("\n"),(O=_.length-1)>0?(I=W+O,N=x-_[O].length):(I=W,N=G),B=["comment",S,W,z-G,I,x-N],G=N,W=I,z=x):(C.lastIndex=z+1,C.test(P),x=0===C.lastIndex?P.length-1:C.lastIndex-2,B=["word",P.slice(z,x+1),W,z-G,W,x-G],V.push(B),z=x)}return z++,B}},endOfFile:function(){return 0===q.length&&z>=U},position:function(){return z}}};var r="'".charCodeAt(0),n='"'.charCodeAt(0),o="\\".charCodeAt(0),i="/".charCodeAt(0),s="\n".charCodeAt(0),u=" ".charCodeAt(0),a="\f".charCodeAt(0),c="\t".charCodeAt(0),l="\r".charCodeAt(0),f="[".charCodeAt(0),p="]".charCodeAt(0),h="(".charCodeAt(0),d=")".charCodeAt(0),D="{".charCodeAt(0),g="}".charCodeAt(0),m=";".charCodeAt(0),v="*".charCodeAt(0),y=":".charCodeAt(0),w="@".charCodeAt(0),b=/[ \n\t\r\f{}()'"\\;/[\]#]/g,C=/[ \n\t\r\f(){}:;@!'"\\\][#]|\/(?=\*)/g,E=/.[\\/("'\n]/,F=/[a-f0-9]/i;e.exports=t.default},6574:(e,t)=>{t.__esModule=!0,t.default=function(e){r[e]||(r[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))};var r={};e.exports=t.default},1662:(e,t)=>{t.__esModule=!0,t.default=void 0;var r=function(){function e(e,t){if(void 0===t&&(t={}),this.type="warning",this.text=e,t.node&&t.node.source){var r=t.node.positionBy(t);this.line=r.line,this.column=r.column}for(var n in t)this[n]=t[n]}return e.prototype.toString=function(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text},e}();t.default=r,e.exports=t.default},6210:(e,t,r)=>{const n=r(895),{MAX_LENGTH:o,MAX_SAFE_INTEGER:i}=r(8523),{re:s,t:u}=r(3443),a=r(8077),{compareIdentifiers:c}=r(8337);class l{constructor(e,t){if(t=a(t),e instanceof l){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>o)throw new TypeError(`version is longer than ${o} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?s[u.LOOSE]:s[u.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>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||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=l},2828:(e,t,r)=>{const n=r(6210);e.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))},9195:(e,t,r)=>{const n=r(2828);e.exports=(e,t,r)=>n(e,t,r)>=0},3725:(e,t,r)=>{const n=r(2828);e.exports=(e,t,r)=>n(e,t,r)<0},8523:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},895:e=>{const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},8337:e=>{const t=/^[0-9]+$/,r=(e,r)=>{const n=t.test(e),o=t.test(r);return n&&o&&(e=+e,r=+r),e===r?0:n&&!o?-1:o&&!n?1:er(t,e)}},8077:e=>{const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},3443:(e,t,r)=>{const{MAX_SAFE_COMPONENT_LENGTH:n}=r(8523),o=r(895),i=(t=e.exports={}).re=[],s=t.src=[],u=t.t={};let a=0;const c=(e,t,r)=>{const n=a++;o(n,t),u[e]=n,s[n]=t,i[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[u.NUMERICIDENTIFIER]})\\.(${s[u.NUMERICIDENTIFIER]})\\.(${s[u.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${s[u.NUMERICIDENTIFIERLOOSE]})\\.(${s[u.NUMERICIDENTIFIERLOOSE]})\\.(${s[u.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${s[u.NUMERICIDENTIFIER]}|${s[u.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${s[u.NUMERICIDENTIFIERLOOSE]}|${s[u.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${s[u.PRERELEASEIDENTIFIER]}(?:\\.${s[u.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${s[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${s[u.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${s[u.BUILDIDENTIFIER]}(?:\\.${s[u.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${s[u.MAINVERSION]}${s[u.PRERELEASE]}?${s[u.BUILD]}?`),c("FULL",`^${s[u.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${s[u.MAINVERSIONLOOSE]}${s[u.PRERELEASELOOSE]}?${s[u.BUILD]}?`),c("LOOSE",`^${s[u.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${s[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${s[u.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${s[u.XRANGEIDENTIFIER]})(?:\\.(${s[u.XRANGEIDENTIFIER]})(?:\\.(${s[u.XRANGEIDENTIFIER]})(?:${s[u.PRERELEASE]})?${s[u.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${s[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${s[u.XRANGEIDENTIFIERLOOSE]})(?:${s[u.PRERELEASELOOSE]})?${s[u.BUILD]}?)?)?`),c("XRANGE",`^${s[u.GTLT]}\\s*${s[u.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${s[u.GTLT]}\\s*${s[u.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),c("COERCERTL",s[u.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${s[u.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${s[u.LONETILDE]}${s[u.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${s[u.LONETILDE]}${s[u.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${s[u.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${s[u.LONECARET]}${s[u.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${s[u.LONECARET]}${s[u.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${s[u.GTLT]}\\s*(${s[u.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${s[u.GTLT]}\\s*(${s[u.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${s[u.GTLT]}\\s*(${s[u.LOOSEPLAIN]}|${s[u.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${s[u.XRANGEPLAIN]})\\s+-\\s+(${s[u.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${s[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${s[u.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},6715:(e,t,r)=>{var n=r(7837),o=Object.prototype.hasOwnProperty,i="undefined"!=typeof Map;function s(){this._array=[],this._set=i?new Map:Object.create(null)}s.fromArray=function(e,t){for(var r=new s,n=0,o=e.length;n=0)return t}else{var r=n.toSetString(e);if(o.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},s.prototype.at=function(e){if(e>=0&&e{var n=r(4122);t.encode=function(e){var t,r="",o=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&o,(o>>>=5)>0&&(t|=32),r+=n.encode(t)}while(o>0);return r},t.decode=function(e,t,r){var o,i,s,u,a=e.length,c=0,l=0;do{if(t>=a)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));o=!!(32&i),c+=(i&=31)<>1,1==(1&s)?-u:u),r.rest=t}},4122:(e,t)=>{var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e{function r(e,n,o,i,s,u){var a=Math.floor((n-e)/2)+e,c=s(o,i[a],!0);return 0===c?a:c>0?n-a>1?r(a,n,o,i,s,u):u==t.LEAST_UPPER_BOUND?n1?r(e,a,o,i,s,u):u==t.LEAST_UPPER_BOUND?a:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,o,i){if(0===n.length)return-1;var s=r(-1,n.length,e,n,o,i||t.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===o(n[s],n[s-1],!0);)--s;return s}},1028:(e,t,r)=>{r(4070);var n=r(7837);function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}o.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},o.prototype.add=function(e){var t,r,o,i,s,u;r=e,o=(t=this._last).generatedLine,i=r.generatedLine,s=t.generatedColumn,u=r.generatedColumn,i>o||i==o&&u>=s||n.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(n.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.H=o},6711:(e,t)=>{function r(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function n(e,t,o,i){if(o{var n=r(7837),o=r(8593),i=r(6715).I,s=r(4886),u=r(6711).U;function a(e,t){var r=e;return"string"==typeof e&&(r=n.parseSourceMapInput(e)),null!=r.sections?new f(r,t):new c(r,t)}function c(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var o=n.getArg(r,"version"),s=n.getArg(r,"sources"),u=n.getArg(r,"names",[]),a=n.getArg(r,"sourceRoot",null),c=n.getArg(r,"sourcesContent",null),l=n.getArg(r,"mappings"),f=n.getArg(r,"file",null);if(o!=this._version)throw new Error("Unsupported version: "+o);a&&(a=n.normalize(a)),s=s.map(String).map(n.normalize).map((function(e){return a&&n.isAbsolute(a)&&n.isAbsolute(e)?n.relative(a,e):e})),this._names=i.fromArray(u.map(String),!0),this._sources=i.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map((function(e){return n.computeSourceURL(a,e,t)})),this.sourceRoot=a,this.sourcesContent=c,this._mappings=l,this._sourceMapURL=t,this.file=f}function l(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function f(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var o=n.getArg(r,"version"),s=n.getArg(r,"sections");if(o!=this._version)throw new Error("Unsupported version: "+o);this._sources=new i,this._names=new i;var u={line:-1,column:0};this._sections=s.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=n.getArg(e,"offset"),o=n.getArg(r,"line"),i=n.getArg(r,"column");if(o=0){var u=this._originalMappings[s];if(void 0===e.column)for(var a=u.originalLine;u&&u.originalLine===a;)i.push({line:n.getArg(u,"generatedLine",null),column:n.getArg(u,"generatedColumn",null),lastColumn:n.getArg(u,"lastGeneratedColumn",null)}),u=this._originalMappings[++s];else for(var c=u.originalColumn;u&&u.originalLine===t&&u.originalColumn==c;)i.push({line:n.getArg(u,"generatedLine",null),column:n.getArg(u,"generatedColumn",null),lastColumn:n.getArg(u,"lastGeneratedColumn",null)}),u=this._originalMappings[++s]}return i},t.SourceMapConsumer=a,c.prototype=Object.create(a.prototype),c.prototype.consumer=a,c.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=n.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(t=0;t1&&(r.source=D+i[1],D+=i[1],r.originalLine=h+i[2],h=r.originalLine,r.originalLine+=1,r.originalColumn=d+i[3],d=r.originalColumn,i.length>4&&(r.name=g+i[4],g+=i[4])),C.push(r),"number"==typeof r.originalLine&&b.push(r)}u(C,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=C,u(b,n.compareByOriginalPositions),this.__originalMappings=b},c.prototype._findMapping=function(e,t,r,n,i,s){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return o.search(e,t,i,s)},c.prototype.computeColumnSpans=function(){for(var e=0;e=0){var o=this._generatedMappings[r];if(o.generatedLine===t.generatedLine){var i=n.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),i=n.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var s=n.getArg(o,"name",null);return null!==s&&(s=this._names.at(s)),{source:i,line:n.getArg(o,"originalLine",null),column:n.getArg(o,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},c.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},c.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var o,i=e;if(null!=this.sourceRoot&&(i=n.relative(this.sourceRoot,i)),null!=this.sourceRoot&&(o=n.urlParse(this.sourceRoot))){var s=i.replace(/^file:\/\//,"");if("file"==o.scheme&&this._sources.has(s))return this.sourcesContent[this._sources.indexOf(s)];if((!o.path||"/"==o.path)&&this._sources.has("/"+i))return this.sourcesContent[this._sources.indexOf("/"+i)]}if(t)return null;throw new Error('"'+i+'" is not in the SourceMap.')},c.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",a.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:n.getArg(i,"generatedLine",null),column:n.getArg(i,"generatedColumn",null),lastColumn:n.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},f.prototype=Object.create(a.prototype),f.prototype.constructor=a,f.prototype._version=3,Object.defineProperty(f.prototype,"sources",{get:function(){for(var e=[],t=0;t{var n=r(4886),o=r(7837),i=r(6715).I,s=r(1028).H;function u(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._skipValidation=o.getArg(e,"skipValidation",!1),this._sources=new i,this._names=new i,this._mappings=new s,this._sourcesContents=null}u.prototype._version=3,u.fromSourceMap=function(e){var t=e.sourceRoot,r=new u({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=o.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){var i=n;null!==t&&(i=o.relative(t,n)),r._sources.has(i)||r._sources.add(i);var s=e.sourceContentFor(n);null!=s&&r.setSourceContent(n,s)})),r},u.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),r=o.getArg(e,"original",null),n=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},u.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=o.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[o.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},u.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var s=this._sourceRoot;null!=s&&(n=o.relative(s,n));var u=new i,a=new i;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var i=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=i.source&&(t.source=i.source,null!=r&&(t.source=o.join(r,t.source)),null!=s&&(t.source=o.relative(s,t.source)),t.originalLine=i.line,t.originalColumn=i.column,null!=i.name&&(t.name=i.name))}var c=t.source;null==c||u.has(c)||u.add(c);var l=t.name;null==l||a.has(l)||a.add(l)}),this),this._sources=u,this._names=a,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=o.join(r,t)),null!=s&&(t=o.relative(s,t)),this.setSourceContent(t,n))}),this)},u.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},u.prototype._serializeMappings=function(){for(var e,t,r,i,s=0,u=1,a=0,c=0,l=0,f=0,p="",h=this._mappings.toArray(),d=0,D=h.length;d0){if(!o.compareByGeneratedPositionsInflated(t,h[d-1]))continue;e+=","}e+=n.encode(t.generatedColumn-s),s=t.generatedColumn,null!=t.source&&(i=this._sources.indexOf(t.source),e+=n.encode(i-f),f=i,e+=n.encode(t.originalLine-1-c),c=t.originalLine-1,e+=n.encode(t.originalColumn-a),a=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=n.encode(r-l),l=r)),p+=e}return p},u.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var r=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},u.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},u.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.SourceMapGenerator=u},6270:(e,t,r)=>{var n=r(2400).SourceMapGenerator,o=r(7837),i=/(\r?\n)/,s="$$$isSourceNode$$$";function u(e,t,r,n,o){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==o?null:o,this[s]=!0,null!=n&&this.add(n)}u.fromStringWithSourceMap=function(e,t,r){var n=new u,s=e.split(i),a=0,c=function(){return e()+(e()||"");function e(){return a=0;t--)this.prepend(e[t]);else{if(!e[s]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},u.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r0){for(t=[],r=0;r{t.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function o(e){var t=e.match(r);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var r=e,n=o(e);if(n){if(!n.path)return e;r=n.path}for(var s,u=t.isAbsolute(r),a=r.split(/\/+/),c=0,l=a.length-1;l>=0;l--)"."===(s=a[l])?a.splice(l,1):".."===s?c++:c>0&&(""===s?(a.splice(l+1,c),c=0):(a.splice(l,2),c--));return""===(r=a.join("/"))&&(r=u?"/":"."),n?(n.path=r,i(n)):r}function u(e,t){""===e&&(e="."),""===t&&(t=".");var r=o(t),u=o(e);if(u&&(e=u.path||"/"),r&&!r.scheme)return u&&(r.scheme=u.scheme),i(r);if(r||t.match(n))return t;if(u&&!u.host&&!u.path)return u.host=t,i(u);var a="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return u?(u.path=a,i(u)):a}t.urlParse=o,t.urlGenerate=i,t.normalize=s,t.join=u,t.isAbsolute=function(e){return"/"===e.charAt(0)||r.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var a=!("__proto__"in Object.create(null));function c(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function f(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=a?c:function(e){return l(e)?"$"+e:e},t.fromSetString=a?c:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,r){var n=f(e.source,t.source);return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||r||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:f(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=f(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:f(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!=(r=e.generatedColumn-t.generatedColumn)||0!==(r=f(e.source,t.source))||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)?r:f(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var n=o(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var a=n.path.lastIndexOf("/");a>=0&&(n.path=n.path.substring(0,a+1))}t=u(i(n),t)}return s(t)}},2447:(e,t,r)=>{t.SourceMapGenerator=r(2400).SourceMapGenerator,t.SourceMapConsumer=r(8985).SourceMapConsumer,t.SourceNode=r(6270).SourceNode},6549:(e,t,r)=>{const n=r(9992),o=r(8528),i=r(541),s=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=n(e)).length)return 0;e=e.replace(i()," ");let t=0;for(let r=0;r=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,t+=o(n)?2:1)}return t};e.exports=s,e.exports.default=s},9992:(e,t,r)=>{const n=r(8947);e.exports=e=>"string"==typeof e?e.replace(n(),""):e},8947:e=>{e.exports=({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}},3210:(e,t,r)=>{r(4070),e.exports=function(e,t,r){return 0===e.length?e:t?(r||e.sort(t),function(e,t){for(var r=1,n=e.length,o=e[0],i=e[0],s=1;s{e.exports={guessEndOfLine:function(e){const t=e.indexOf("\r");return t>=0?"\n"===e.charAt(t+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(e,t){let r;if("\n"===t)r=/\n/g;else if("\r"===t)r=/\r/g;else{if("\r\n"!==t)throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);r=/\r\n/g}const n=e.match(r);return n?n.length:0},normalizeEndOfLine:function(e){return e.replace(/\r\n?/g,"\n")}}},47:e=>{e.exports=function(e,t){const r=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return r.loc=t,r}},9428:(e,t,r)=>{const n=r(6549),o=r(2240),i=r(4652),{getSupportInfo:s}=r(7290),u=/[^\x20-\x7F]/;function a(e){return(t,r,n)=>{const o=n&&n.backwards;if(!1===r)return!1;const{length:i}=t;let s=r;for(;s>=0&&s(r.match(s.regex)||[]).length?s.quote:i.quote),u}function C(e,t,r){const n='"'===t?"'":'"',o=e.replace(/\\(.)|(["'])/gs,((e,o,i)=>o===n?o:i===t?"\\"+i:i||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(o)?o:"\\"+o)));return t+o+t}function E(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let r=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");return r.length>20&&(r=r.slice(0,19)+"\u2026"),t+(r?" "+r:"")}(e)}e.exports={inferParserByLanguage:function(e,t){const{languages:r}=s({plugins:t.plugins}),n=r.find((({name:t})=>t.toLowerCase()===e))||r.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||r.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return n&&n.parsers[0]},getStringWidth:function(e){return e?u.test(e)?n(e):e.length:0},getMaxContinuousCount:function(e,t){const r=e.match(new RegExp(`(${o(t)})+`,"g"));return null===r?0:r.reduce(((e,r)=>Math.max(e,r.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const r=e.match(new RegExp(`(${o(t)})+`,"g"));if(null===r)return 0;const n=new Map;let i=0;for(const e of r){const r=e.length/t.length;n.set(r,!0),r>i&&(i=r)}for(let e=1;ee[e.length-2],getLast:i,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:v,getNextNonSpaceNonCommentCharacterIndex:y,getNextNonSpaceNonCommentCharacter:function(e,t,r){return e.charAt(y(e,t,r))},skip:a,skipWhitespace:c,skipSpaces:l,skipToLineEnd:f,skipEverythingButNewLine:p,skipInlineComment:h,skipTrailingComment:d,skipNewline:D,isNextLineEmptyAfterIndex:m,isNextLineEmpty:function(e,t,r){return m(e,r(t))},isPreviousLineEmpty:function(e,t,r){let n=r(t)-1;return n=l(e,n,{backwards:!0}),n=D(e,n,{backwards:!0}),n=l(e,n,{backwards:!0}),n!==D(e,n,{backwards:!0})},hasNewline:g,hasNewlineInRange:function(e,t,r){for(let n=t;n0},createGroupIdMapper:function(e){const t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}}},9355:(e,t,r)=>{const n=r(6920),{getLast:o,skipEverythingButNewLine:i}=r(9428);function s(e,t){return"number"==typeof e.sourceIndex?e.sourceIndex:e.source?n(e.source.start,t)-1:null}function u(e,t){if("css-comment"===e.type&&e.inline)return i(t,e.source.startOffset);const r=e.nodes&&o(e.nodes);return r&&e.source&&!e.source.end&&(e=r),e.source&&e.source.end?n(e.source.end,t):null}function a(e,t,r){e.source&&(e.source.startOffset=s(e,r)+t,e.source.endOffset=u(e,r)+t);for(const n in e){const o=e[n];"source"!==n&&o&&"object"==typeof o&&a(o,t,r)}}function c(e){let t=e.source.startOffset;return"string"==typeof e.prop&&(t+=e.prop.length),"css-atrule"===e.type&&"string"==typeof e.name&&(t+=1+e.name.length+e.raws.afterName.match(/^\s*:?\s*/)[0].length),"css-atrule"!==e.type&&e.raws&&"string"==typeof e.raws.between&&(t+=e.raws.between.length),t}e.exports={locStart:function(e){return e.source.startOffset},locEnd:function(e){return e.source.endOffset},calculateLoc:function e(t,r){t.source&&(t.source.startOffset=s(t,r),t.source.endOffset=u(t,r));for(const n in t){const o=t[n];"source"!==n&&o&&"object"==typeof o&&("value-root"===o.type||"value-unknown"===o.type?a(o,c(t),o.text||o.value):e(o,r))}},replaceQuotesInInlineComments:function(e){let t,r="initial",n="initial",o=!1;const i=[];for(let s=0;s{const n=r(47),o=r(4652),i=r(5115),{hasPragma:s}=r(8850),{hasSCSSInterpolation:u,hasStringOrFunction:a,isLessParser:c,isSCSS:l,isSCSSNestedPropertyNode:f,isSCSSVariable:p,stringifyNode:h}=r(5244),{locStart:d,locEnd:D}=r(9355),{calculateLoc:g,replaceQuotesInInlineComments:m}=r(9355),v=e=>{for(;e.parent;)e=e.parent;return e};function y(e,t){const{nodes:r}=e;let n={open:null,close:null,groups:[],type:"paren_group"};const i=[n],s=n;let c={groups:[],type:"comma_group"};const f=[c];for(let s=0;s0&&n.groups.push(c),n.close=d,1===f.length)throw new Error("Unbalanced parenthesis");f.pop(),c=o(f),c.groups.push(n),i.pop(),n=o(i)}else"comma"===d.type?(n.groups.push(c),c={groups:[],type:"comma_group"},f[f.length-1]=c):c.groups.push(d)}return c.groups.length>0&&n.groups.push(c),s}function w(e){return"paren_group"!==e.type||e.open||e.close||1!==e.groups.length?"comma_group"===e.type&&1===e.groups.length?w(e.groups[0]):"paren_group"===e.type||"comma_group"===e.type?Object.assign(Object.assign({},e),{},{groups:e.groups.map(w)}):e:w(e.groups[0])}function b(e,t,r){if(e&&"object"==typeof e){delete e.parent;for(const n in e)b(e[n],t,r),"type"===n&&"string"==typeof e[n]&&(e[n].startsWith(t)||r&&r.test(e[n])||(e[n]=t+e[n]))}return e}function C(e){if(e&&"object"==typeof e){delete e.parent;for(const t in e)C(e[t]);Array.isArray(e)||!e.value||e.type||(e.type="unknown")}return e}function E(e,t){if(e&&"object"==typeof e){for(const r in e)"parent"!==r&&(E(e[r],t),"nodes"===r&&(e.group=w(y(e,t)),delete e[r]));delete e.parent}return e}function F(e,t){const n=r(9962);let o=null;try{o=n(e,{loose:!0}).parse()}catch{return{type:"value-unknown",value:e}}return o.text=e,b(E(o,t),"value-",/^selector-/)}function A(e){if(/\/\/|\/\*/.test(e))return{type:"selector-unknown",value:e.trim()};const t=r(1264);let n=null;try{t((e=>{n=e})).process(e)}catch{return{type:"selector-unknown",value:e}}return b(n,"selector-")}function x(e){const t=r(8322).Z;let n=null;try{n=t(e)}catch{return{type:"selector-unknown",value:e}}return b(C(n),"media-")}const k=/(\s*?)(!default).*$/,_=/(\s*?)(!global).*$/;function O(e,t){if(e&&"object"==typeof e){delete e.parent;for(const r in e)O(e[r],t);if(!e.type)return e;e.raws||(e.raws={});let r="";"string"==typeof e.selector&&(r=e.raws.selector?e.raws.selector.scss?e.raws.selector.scss:e.raws.selector.raw:e.selector,e.raws.between&&e.raws.between.trim().length>0&&(r+=e.raws.between),e.raws.selector=r);let n="";"string"==typeof e.value&&(n=e.raws.value?e.raws.value.scss?e.raws.value.scss:e.raws.value.raw:e.value,n=n.trim(),e.raws.value=n);let o="";if("string"==typeof e.params&&(o=e.raws.params?e.raws.params.scss?e.raws.params.scss:e.raws.params.raw:e.params,e.raws.afterName&&e.raws.afterName.trim().length>0&&(o=e.raws.afterName+o),e.raws.between&&e.raws.between.trim().length>0&&(o+=e.raws.between),o=o.trim(),e.raws.params=o),r.trim().length>0)return r.startsWith("@")&&r.endsWith(":")?e:e.mixin?(e.selector=F(r,t),e):(f(e)&&(e.isSCSSNesterProperty=!0),e.selector=A(r),e);if(n.length>0){const r=n.match(k);r&&(n=n.slice(0,r.index),e.scssDefault=!0,"!default"!==r[0].trim()&&(e.raws.scssDefault=r[0]));const o=n.match(_);if(o&&(n=n.slice(0,o.index),e.scssGlobal=!0,"!global"!==o[0].trim()&&(e.raws.scssGlobal=o[0])),n.startsWith("progid:"))return{type:"value-unknown",value:n};e.value=F(n,t)}if(c(t)&&"css-decl"===e.type&&n.startsWith("extend(")&&(e.extend||(e.extend=":"===e.raws.between),e.extend&&!e.selector&&(delete e.value,e.selector=A(n.slice("extend(".length,-1)))),"css-atrule"===e.type){if(c(t)){if(e.mixin){const t=e.raws.identifier+e.name+e.raws.afterName+e.raws.params;return e.selector=A(t),delete e.params,e}if(e.function)return e}if("css"===t.parser&&"custom-selector"===e.name){const t=e.params.match(/:--\S+?\s+/)[0].trim();return e.customSelector=t,e.selector=A(e.params.slice(t.length).trim()),delete e.params,e}if(c(t)){if(e.name.includes(":")&&!e.params){e.variable=!0;const r=e.name.split(":");e.name=r[0],e.value=F(r.slice(1).join(":"),t)}if(!["page","nest","keyframes"].includes(e.name)&&e.params&&":"===e.params[0]&&(e.variable=!0,e.value=F(e.params.slice(1),t),e.raws.afterName+=":"),e.variable)return delete e.params,e}}if("css-atrule"===e.type&&o.length>0){const{name:r}=e,n=e.name.toLowerCase();return"warn"===r||"error"===r?(e.params={type:"media-unknown",value:o},e):"extend"===r||"nest"===r?(e.selector=A(o),delete e.params,e):"at-root"===r?(/^\(\s*(without|with)\s*:.+\)$/s.test(o)?e.params=F(o,t):(e.selector=A(o),delete e.params),e):"import"===n?(e.import=!0,delete e.filename,e.params=F(o,t),e):["namespace","supports","if","else","for","each","while","debug","mixin","include","function","return","define-mixin","add-mixin"].includes(r)?(o=o.replace(/(\$\S+?)\s+?\.{3}/,"$1..."),o=o.replace(/^(?!if)(\S+)\s+\(/,"$1("),e.value=F(o,t),delete e.params,e):["media","custom-media"].includes(n)?o.includes("#{")?{type:"media-unknown",value:o}:(e.params=x(o),e):(e.params=o,e)}}return e}function S(e,t,r){const o=i(t),{frontMatter:s}=o;let u;t=o.content;try{u=e(t)}catch(e){const{name:t,reason:r,line:o,column:i}=e;if("number"!=typeof o)throw e;throw n(`${t}: ${r}`,{start:{line:o,column:i}})}return u=O(b(u,"css-"),r),g(u,t),s&&(s.source={startOffset:0,endOffset:s.raw.length},u.nodes.unshift(s)),u}function T(e,t,n){const o=r(7371);return S((e=>o.parse(m(e))),e,n)}function I(e,t,n){const{parse:o}=r(304);return S(o,e,n)}const N={astFormat:"postcss",hasPragma:s,locStart:d,locEnd:D};e.exports={parsers:{css:Object.assign(Object.assign({},N),{},{parse:function(e,t,r){const n=l(r.parser,e)?[I,T]:[T,I];let o;for(const i of n)try{return i(e,t,r)}catch(e){o=o||e}if(o)throw o}}),less:Object.assign(Object.assign({},N),{},{parse:T}),scss:Object.assign(Object.assign({},N),{},{parse:I})}}},8850:(e,t,r)=>{const n=r(3831),o=r(5115);e.exports={hasPragma:function(e){return n.hasPragma(o(e).content)},insertPragma:function(e){const{frontMatter:t,content:r}=o(e);return(t?t.raw+"\n\n":"")+n.insertPragma(r)}}},5244:(e,t,r)=>{const{isNonEmptyArray:n}=r(9428),o=new Set(["red","green","blue","alpha","a","rgb","hue","h","saturation","s","lightness","l","whiteness","w","blackness","b","tint","shade","blend","blenda","contrast","hsl","hsla","hwb","hwba"]);function i(e,t){const r=Array.isArray(t)?t:[t];let n,o=-1;for(;n=e.getParentNode(++o);)if(r.includes(n.type))return o;return-1}function s(e,t){const r=i(e,t);return-1===r?null:e.getParentNode(r)}function u(e){return"value-operator"===e.type&&"*"===e.value}function a(e){return"value-operator"===e.type&&"/"===e.value}function c(e){return"value-operator"===e.type&&"+"===e.value}function l(e){return"value-operator"===e.type&&"-"===e.value}function f(e){return"value-operator"===e.type&&"%"===e.value}function p(e){return"value-comma_group"===e.type&&e.groups&&e.groups[1]&&"value-colon"===e.groups[1].type}function h(e){return"value-paren_group"===e.type&&e.groups&&e.groups[0]&&p(e.groups[0])}function d(e){return e&&"value-colon"===e.type}e.exports={getAncestorCounter:i,getAncestorNode:s,getPropOfDeclNode:function(e){const t=s(e,"css-decl");return t&&t.prop&&t.prop.toLowerCase()},hasSCSSInterpolation:function(e){if(n(e))for(let t=e.length-1;t>0;t--)if("word"===e[t].type&&"{"===e[t].value&&"word"===e[t-1].type&&e[t-1].value.endsWith("#"))return!0;return!1},hasStringOrFunction:function(e){if(n(e))for(let t=0;t","<=",">="].includes(e.value)},isEqualityOperatorNode:function(e){return"value-word"===e.type&&["==","!="].includes(e.value)},isMultiplicationNode:u,isDivisionNode:a,isAdditionNode:c,isSubtractionNode:l,isModuloNode:f,isMathOperatorNode:function(e){return u(e)||a(e)||c(e)||l(e)||f(e)},isEachKeywordNode:function(e){return"value-word"===e.type&&"in"===e.value},isForKeywordNode:function(e){return"value-word"===e.type&&["from","through","end"].includes(e.value)},isURLFunctionNode:function(e){return"value-func"===e.type&&"url"===e.value.toLowerCase()},isIfElseKeywordNode:function(e){return"value-word"===e.type&&["and","or","not"].includes(e.value)},hasComposesNode:function(e){return e.value&&"value-root"===e.value.type&&e.value.group&&"value-value"===e.value.group.type&&"composes"===e.prop.toLowerCase()},hasParensAroundNode:function(e){return e.value&&e.value.group&&e.value.group.group&&"value-paren_group"===e.value.group.group.type&&null!==e.value.group.group.open&&null!==e.value.group.group.close},hasEmptyRawBefore:function(e){return e.raws&&""===e.raws.before},isSCSSNestedPropertyNode:function(e){return!!e.selector&&e.selector.replace(/\/\*.*?\*\//,"").replace(/\/\/.*?\n/,"").trim().endsWith(":")},isDetachedRulesetCallNode:function(e){return e.raws&&e.raws.params&&/^\(\s*\)$/.test(e.raws.params)},isTemplatePlaceholderNode:function(e){return e.name.startsWith("prettier-placeholder")},isTemplatePropNode:function(e){return e.prop.startsWith("@prettier-placeholder")},isPostcssSimpleVarNode:function(e,t){return"$$"===e.value&&"value-func"===e.type&&t&&"value-word"===t.type&&!t.raws.before},isKeyValuePairNode:p,isKeyValuePairInParenGroupNode:h,isKeyInValuePairNode:function(e,t){if(!p(t))return!1;const{groups:r}=t,n=r.indexOf(e);return-1!==n&&d(r[n+1])},isSCSSMapItemNode:function(e){const t=e.getValue();if(0===t.groups.length)return!1;const r=e.getParentNode(1);if(!(h(t)||r&&h(r)))return!1;const n=s(e,"css-decl");return!!(n&&n.prop&&n.prop.startsWith("$"))||!!h(r)||"value-func"===r.type},isInlineValueCommentNode:function(e){return"value-comment"===e.type&&e.inline},isHashNode:function(e){return"value-word"===e.type&&"#"===e.value},isLeftCurlyBraceNode:function(e){return"value-word"===e.type&&"{"===e.value},isRightCurlyBraceNode:function(e){return"value-word"===e.type&&"}"===e.value},isWordNode:function(e){return["value-word","value-atword"].includes(e.type)},isColonNode:d,isMediaAndSupportsKeywords:function(e){return e.value&&["not","and","or"].includes(e.value.toLowerCase())},isColorAdjusterFuncNode:function(e){return"value-func"===e.type&&o.has(e.value.toLowerCase())},lastLineHasInlineComment:function(e){return/\/\//.test(e.split(/[\n\r]/).pop())},stringifyNode:function e(t){if(t.groups)return(t.open&&t.open.value?t.open.value:"")+t.groups.reduce(((r,n,o)=>r+e(n)+("comma_group"===t.groups[0].type&&o!==t.groups.length-1?",":"")),"")+(t.close&&t.close.value?t.close.value:"");const r=t.raws&&t.raws.before?t.raws.before:"",n=t.raws&&t.raws.quote?t.raws.quote:"";return r+n+("atword"===t.type?"@":"")+(t.value?t.value:"")+n+(t.unit?t.unit:"")+(t.group?e(t.group):"")+(t.raws&&t.raws.after?t.raws.after:"")},isAtWordPlaceholderNode:function(e){return e&&"value-atword"===e.type&&e.value.startsWith("prettier-placeholder-")}}},3831:(e,t,r)=>{const{parseWithComments:n,strip:o,extract:i,print:s}=r(9234),{getShebang:u}=r(9428),{normalizeEndOfLine:a}=r(7933);function c(e){const t=u(e);t&&(e=e.slice(t.length+1));const r=i(e),{pragmas:o,comments:s}=n(r);return{shebang:t,text:e,pragmas:o,comments:s}}e.exports={hasPragma:function(e){const t=Object.keys(c(e).pragmas);return t.includes("prettier")||t.includes("format")},insertPragma:function(e){const{shebang:t,text:r,pragmas:n,comments:i}=c(e),u=o(r),l=s({pragmas:Object.assign({format:""},n),comments:i.trimStart()});return(t?`${t}\n`:"")+a(l)+(u.startsWith("\n")?"\n":"\n\n")+u}}},8988:(e,t,r)=>{const{outdent:n}=r(5311),o="Config",i="Editor",s="Other",u="Global",a="Special",c={cursorOffset:{since:"1.4.0",category:a,type:"int",default:-1,range:{start:-1,end:Number.POSITIVE_INFINITY,step:1},description:n` + Print (to stderr) where a cursor at the given position would move to after formatting. + This option cannot be used with --range-start and --range-end. + `,cliCategory:i},endOfLine:{since:"1.15.0",category:u,type:"choice",default:[{since:"1.15.0",value:"auto"},{since:"2.0.0",value:"lf"}],description:"Which end of line characters to apply.",choices:[{value:"lf",description:"Line Feed only (\\n), common on Linux and macOS as well as inside git repos"},{value:"crlf",description:"Carriage Return + Line Feed characters (\\r\\n), common on Windows"},{value:"cr",description:"Carriage Return character only (\\r), used very rarely"},{value:"auto",description:n` + Maintain existing + (mixed values within one file are normalised by looking at what's used after the first line) + `}]},filepath:{since:"1.4.0",category:a,type:"path",description:"Specify the input filepath. This will be used to do parser inference.",cliName:"stdin-filepath",cliCategory:s,cliDescription:"Path to the file to pretend that stdin comes from."},insertPragma:{since:"1.8.0",category:a,type:"boolean",default:!1,description:"Insert @format pragma into file's first docblock comment.",cliCategory:s},parser:{since:"0.0.10",category:u,type:"choice",default:[{since:"0.0.10",value:"babylon"},{since:"1.13.0",value:void 0}],description:"Which parser to use.",exception:e=>"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:u,description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:o},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:u,description:n` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:o},printWidth:{since:"0.0.0",category:u,type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:a,type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:n` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:i},rangeStart:{since:"1.4.0",category:a,type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:n` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:i},requirePragma:{since:"1.7.0",category:a,type:"boolean",default:!1,description:n` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:s},tabWidth:{type:"int",category:u,default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:u,type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:u,type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};e.exports={CATEGORY_CONFIG:o,CATEGORY_EDITOR:i,CATEGORY_FORMAT:"Format",CATEGORY_OTHER:s,CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:u,CATEGORY_SPECIAL:a,options:c}},7290:(e,t,r)=>{const n=["cliName","cliCategory","cliDescription"];function o(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}r(4304),r(4070),r(2612);const i={compare:r(2828),lt:r(3725),gte:r(9195)},s=r(9077),u=r(306).i8,a=r(8988).options;e.exports={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:r=!1,showInternal:c=!1}={}){const l=u.split("-",1)[0],f=e.flatMap((e=>e.languages||[])).filter(h),p=s(Object.assign({},...e.map((({options:e})=>e)),a),"name").filter((e=>h(e)&&d(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(h).sort(((e,t)=>i.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>h(e)&&d(e))),"parser"===t.name&&function(e,t,r){const n=new Set(e.choices.map((e=>e.value)));for(const o of t)if(o.parsers)for(const t of o.parsers)if(!n.has(t)){n.add(t);const i=r.find((e=>e.parsers&&e.parsers[t]));let s=o.name;i&&i.name&&(s+=` (plugin: ${i.name})`),e.choices.push({value:t,description:s})}}(t,f,e));const r=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:r})}));return{languages:f,options:p};function h(e){return t||!("since"in e)||e.since&&i.gte(l,e.since)}function d(e){return r||!("deprecated"in e)||e.deprecated&&i.lt(l,e.deprecated)}}}},9077:e=>{e.exports=(e,t)=>Object.entries(e).map((([e,r])=>Object.assign({[t]:e},r)))},5115:e=>{const t=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");e.exports=function(e){const r=e.match(t);if(!r)return{content:e};const{startDelimiter:n,language:o,value:i="",endDelimiter:s}=r.groups;let u=o.trim()||"yaml";if("+++"===n&&(u="toml"),"yaml"!==u&&n!==s)return{content:e};const[a]=r;return{frontMatter:{type:"front-matter",lang:u,value:i,startDelimiter:n,endDelimiter:s,raw:a.replace(/\n$/,"")},content:a.replace(/[^\n]/g," ")+e.slice(a.length)}}},4652:e=>{e.exports=e=>e[e.length-1]},6920:e=>{e.exports=function(e,t){let r=0;for(let n=0;n{e.exports={i8:"2.3.2"}},7545:(e,t,r)=>{r.r(t),r.d(t,{existsSync:()=>n,readFileSync:()=>o,default:()=>i});const n=()=>!1,o=()=>"",i={existsSync:n,readFileSync:o}},9623:(e,t,r)=>{r.r(t),r.d(t,{default:()=>n});const n={EOL:"\n",platform:()=>"browser",cpus:()=>[{model:"Prettier"}]}},6391:(e,t,r)=>{r.r(t),r.d(t,{default:()=>n});var n=r(5724),o={};for(const e in n)"default"!==e&&(o[e]=()=>n[e]);r.d(t,o)},8472:()=>{},2868:()=>{},3248:()=>{},6083:()=>{}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,loaded:!1,exports:{}};return e[n](i,i.exports,r),i.loaded=!0,i.exports}return r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(738)})()})));export default Et; diff --git a/node_modules/prettier/esm/parser-typescript.mjs b/node_modules/prettier/esm/parser-typescript.mjs new file mode 100644 index 0000000000..89d3fb1e18 --- /dev/null +++ b/node_modules/prettier/esm/parser-typescript.mjs @@ -0,0 +1,22 @@ +var e=function(e,t){const r=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return r.loc=t,r};var t=function(...e){let t;for(const[r,n]of e.entries())try{return{result:n()}}catch(e){0===r&&(t=e)}return{error:t}},r=e=>"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const n=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var i=n,a=n;i.default=a;const o=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=r(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let t=0;for(let r=0;r=127&&n<=159||(n>=768&&n<=879||(n>65535&&r++,t+=i(n)?2:1))}return t};var s=o,c=o;s.default=c;var u=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var l=e=>e[e.length-1];function d(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var _="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function p(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e){var t={exports:{}};return e(t,t.exports),t.exports}var g=function(e){return e&&e.Math==Math&&e},m=g("object"==typeof globalThis&&globalThis)||g("object"==typeof window&&window)||g("object"==typeof self&&self)||g("object"==typeof _&&_)||function(){return this}()||Function("return this")(),y=function(e){try{return!!e()}catch(e){return!0}},v=!y((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),h={}.propertyIsEnumerable,D=Object.getOwnPropertyDescriptor,x={f:D&&!h.call({1:2},1)?function(e){var t=D(this,e);return!!t&&t.enumerable}:h},b=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},S={}.toString,E=function(e){return S.call(e).slice(8,-1)},T="".split,C=y((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==E(e)?T.call(e,""):Object(e)}:Object,k=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},A=function(e){return C(k(e))},F=function(e){return"object"==typeof e?null!==e:"function"==typeof e},N=function(e,t){if(!F(e))return e;var r,n;if(t&&"function"==typeof(r=e.toString)&&!F(n=r.call(e)))return n;if("function"==typeof(r=e.valueOf)&&!F(n=r.call(e)))return n;if(!t&&"function"==typeof(r=e.toString)&&!F(n=r.call(e)))return n;throw TypeError("Can't convert object to primitive value")},P=function(e){return Object(k(e))},w={}.hasOwnProperty,I=Object.hasOwn||function(e,t){return w.call(P(e),t)},O=m.document,M=F(O)&&F(O.createElement),L=!v&&!y((function(){return 7!=Object.defineProperty((e="div",M?O.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),R=Object.getOwnPropertyDescriptor,B={f:v?R:function(e,t){if(e=A(e),t=N(t,!0),L)try{return R(e,t)}catch(e){}if(I(e,t))return b(!x.f.call(e,t),e[t])}},j=function(e){if(!F(e))throw TypeError(String(e)+" is not an object");return e},J=Object.defineProperty,K={f:v?J:function(e,t,r){if(j(e),t=N(t,!0),j(r),L)try{return J(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},z=v?function(e,t,r){return K.f(e,t,b(1,r))}:function(e,t,r){return e[t]=r,e},U=function(e,t){try{z(m,e,t)}catch(r){m[e]=t}return t},V=m["__core-js_shared__"]||U("__core-js_shared__",{}),q=Function.toString;"function"!=typeof V.inspectSource&&(V.inspectSource=function(e){return q.call(e)});var W,H,G,Y,X=V.inspectSource,$=m.WeakMap,Q="function"==typeof $&&/native code/.test(X($)),Z=f((function(e){(e.exports=function(e,t){return V[e]||(V[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),ee=0,te=Math.random(),re=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++ee+te).toString(36)},ne=Z("keys"),ie={},ae=m.WeakMap;if(Q||V.state){var oe=V.state||(V.state=new ae),se=oe.get,ce=oe.has,ue=oe.set;W=function(e,t){if(ce.call(oe,e))throw new TypeError("Object already initialized");return t.facade=e,ue.call(oe,e,t),t},H=function(e){return se.call(oe,e)||{}},G=function(e){return ce.call(oe,e)}}else{var le=ne[Y="state"]||(ne[Y]=re(Y));ie[le]=!0,W=function(e,t){if(I(e,le))throw new TypeError("Object already initialized");return t.facade=e,z(e,le,t),t},H=function(e){return I(e,le)?e[le]:{}},G=function(e){return I(e,le)}}var de,_e,pe={set:W,get:H,has:G,enforce:function(e){return G(e)?H(e):W(e,{})},getterFor:function(e){return function(t){var r;if(!F(t)||(r=H(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}},fe=f((function(e){var t=pe.get,r=pe.enforce,n=String(String).split("String");(e.exports=function(e,t,i,a){var o,s=!!a&&!!a.unsafe,c=!!a&&!!a.enumerable,u=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof t||I(i,"name")||z(i,"name",t),(o=r(i)).source||(o.source=n.join("string"==typeof t?t:""))),e!==m?(s?!u&&e[t]&&(c=!0):delete e[t],c?e[t]=i:z(e,t,i)):c?e[t]=i:U(t,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||X(this)}))})),ge=m,me=function(e){return"function"==typeof e?e:void 0},ye=function(e,t){return arguments.length<2?me(ge[e])||me(m[e]):ge[e]&&ge[e][t]||m[e]&&m[e][t]},ve=Math.ceil,he=Math.floor,De=function(e){return isNaN(e=+e)?0:(e>0?he:ve)(e)},xe=Math.min,be=function(e){return e>0?xe(De(e),9007199254740991):0},Se=Math.max,Ee=Math.min,Te=function(e){return function(t,r,n){var i,a=A(t),o=be(a.length),s=function(e,t){var r=De(e);return r<0?Se(r+t,0):Ee(r,t)}(n,o);if(e&&r!=r){for(;o>s;)if((i=a[s++])!=i)return!0}else for(;o>s;s++)if((e||s in a)&&a[s]===r)return e||s||0;return!e&&-1}},Ce={includes:Te(!0),indexOf:Te(!1)}.indexOf,ke=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),Ae={f:Object.getOwnPropertyNames||function(e){return function(e,t){var r,n=A(e),i=0,a=[];for(r in n)!I(ie,r)&&I(n,r)&&a.push(r);for(;t.length>i;)I(n,r=t[i++])&&(~Ce(a,r)||a.push(r));return a}(e,ke)}},Fe={f:Object.getOwnPropertySymbols},Ne=ye("Reflect","ownKeys")||function(e){var t=Ae.f(j(e)),r=Fe.f;return r?t.concat(r(e)):t},Pe=function(e,t){for(var r=Ne(t),n=K.f,i=B.f,a=0;a0&&Ke(c))u=Ve(e,t,c,be(c.length),u,a-1)-1;else{if(u>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[u]=c}u++}l++}return u},qe=Ve,We=ye("navigator","userAgent")||"",He=m.process,Ge=He&&He.versions,Ye=Ge&&Ge.v8;Ye?_e=(de=Ye.split("."))[0]<4?1:de[0]+de[1]:We&&(!(de=We.match(/Edge\/(\d+)/))||de[1]>=74)&&(de=We.match(/Chrome\/(\d+)/))&&(_e=de[1]);var Xe=_e&&+_e,$e=!!Object.getOwnPropertySymbols&&!y((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Xe&&Xe<41})),Qe=$e&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ze=Z("wks"),et=m.Symbol,tt=Qe?et:et&&et.withoutSetter||re,rt=function(e){return I(Ze,e)&&($e||"string"==typeof Ze[e])||($e&&I(et,e)?Ze[e]=et[e]:Ze[e]=tt("Symbol."+e)),Ze[e]},nt=rt("species"),it=function(e,t){var r;return Ke(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!Ke(r.prototype)?F(r)&&null===(r=r[nt])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)};Je({target:"Array",proto:!0},{flatMap:function(e){var t,r=P(this),n=be(r.length);return ze(e),(t=it(r,0)).length=qe(t,r,r,n,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var at,ot,st=Math.floor,ct=function(e,t){var r=e.length,n=st(r/2);return r<8?ut(e,t):lt(ct(e.slice(0,n),t),ct(e.slice(n),t),t)},ut=function(e,t){for(var r,n,i=e.length,a=1;a0;)e[n]=e[--n];n!==a++&&(e[n]=r)}return e},lt=function(e,t,r){for(var n=e.length,i=t.length,a=0,o=0,s=[];a3)){if(ft)return!0;if(mt)return mt<603;var e,t,r,n,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)yt.push({k:t+n,v:r})}for(yt.sort((function(e,t){return t.v-e.v})),n=0;nString(r)?1:-1}}(e))).length,n=0;na;a++)if((s=y(e[a]))&&s instanceof It)return s;return new It(!1)}n=i.call(e)}for(c=n.next;!(u=c.call(n)).done;){try{s=y(u.value)}catch(e){throw wt(n),e}if("object"==typeof s&&s&&s instanceof It)return s}return new It(!1)};Je({target:"Object",stat:!0},{fromEntries:function(e){var t={};return Ot(e,(function(e,r){!function(e,t,r){var n=N(t);n in e?K.f(e,n,b(0,r)):e[n]=r}(t,e,r)}),{AS_ENTRIES:!0}),t}});var Mt=void 0!==Mt?Mt:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Lt(){throw new Error("setTimeout has not been defined")}function Rt(){throw new Error("clearTimeout has not been defined")}var Bt=Lt,jt=Rt;function Jt(e){if(Bt===setTimeout)return setTimeout(e,0);if((Bt===Lt||!Bt)&&setTimeout)return Bt=setTimeout,setTimeout(e,0);try{return Bt(e,0)}catch(t){try{return Bt.call(null,e,0)}catch(t){return Bt.call(this,e,0)}}}"function"==typeof Mt.setTimeout&&(Bt=setTimeout),"function"==typeof Mt.clearTimeout&&(jt=clearTimeout);var Kt,zt=[],Ut=!1,Vt=-1;function qt(){Ut&&Kt&&(Ut=!1,Kt.length?zt=Kt.concat(zt):Vt=-1,zt.length&&Wt())}function Wt(){if(!Ut){var e=Jt(qt);Ut=!0;for(var t=zt.length;t;){for(Kt=zt,zt=[];++Vt1)for(var r=1;rconsole.error("SEMVER",...e):()=>{};var sr={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},cr=f((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:r}=sr,n=(t=e.exports={}).re=[],i=t.src=[],a=t.t={};let o=0;const s=(e,t,r)=>{const s=o++;or(s,t),a[e]=s,i[s]=t,n[s]=new RegExp(t,r?"g":void 0)};s("NUMERICIDENTIFIER","0|[1-9]\\d*"),s("NUMERICIDENTIFIERLOOSE","[0-9]+"),s("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),s("MAINVERSION",`(${i[a.NUMERICIDENTIFIER]})\\.(${i[a.NUMERICIDENTIFIER]})\\.(${i[a.NUMERICIDENTIFIER]})`),s("MAINVERSIONLOOSE",`(${i[a.NUMERICIDENTIFIERLOOSE]})\\.(${i[a.NUMERICIDENTIFIERLOOSE]})\\.(${i[a.NUMERICIDENTIFIERLOOSE]})`),s("PRERELEASEIDENTIFIER",`(?:${i[a.NUMERICIDENTIFIER]}|${i[a.NONNUMERICIDENTIFIER]})`),s("PRERELEASEIDENTIFIERLOOSE",`(?:${i[a.NUMERICIDENTIFIERLOOSE]}|${i[a.NONNUMERICIDENTIFIER]})`),s("PRERELEASE",`(?:-(${i[a.PRERELEASEIDENTIFIER]}(?:\\.${i[a.PRERELEASEIDENTIFIER]})*))`),s("PRERELEASELOOSE",`(?:-?(${i[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[a.PRERELEASEIDENTIFIERLOOSE]})*))`),s("BUILDIDENTIFIER","[0-9A-Za-z-]+"),s("BUILD",`(?:\\+(${i[a.BUILDIDENTIFIER]}(?:\\.${i[a.BUILDIDENTIFIER]})*))`),s("FULLPLAIN",`v?${i[a.MAINVERSION]}${i[a.PRERELEASE]}?${i[a.BUILD]}?`),s("FULL",`^${i[a.FULLPLAIN]}$`),s("LOOSEPLAIN",`[v=\\s]*${i[a.MAINVERSIONLOOSE]}${i[a.PRERELEASELOOSE]}?${i[a.BUILD]}?`),s("LOOSE",`^${i[a.LOOSEPLAIN]}$`),s("GTLT","((?:<|>)?=?)"),s("XRANGEIDENTIFIERLOOSE",`${i[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),s("XRANGEIDENTIFIER",`${i[a.NUMERICIDENTIFIER]}|x|X|\\*`),s("XRANGEPLAIN",`[v=\\s]*(${i[a.XRANGEIDENTIFIER]})(?:\\.(${i[a.XRANGEIDENTIFIER]})(?:\\.(${i[a.XRANGEIDENTIFIER]})(?:${i[a.PRERELEASE]})?${i[a.BUILD]}?)?)?`),s("XRANGEPLAINLOOSE",`[v=\\s]*(${i[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[a.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[a.XRANGEIDENTIFIERLOOSE]})(?:${i[a.PRERELEASELOOSE]})?${i[a.BUILD]}?)?)?`),s("XRANGE",`^${i[a.GTLT]}\\s*${i[a.XRANGEPLAIN]}$`),s("XRANGELOOSE",`^${i[a.GTLT]}\\s*${i[a.XRANGEPLAINLOOSE]}$`),s("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),s("COERCERTL",i[a.COERCE],!0),s("LONETILDE","(?:~>?)"),s("TILDETRIM",`(\\s*)${i[a.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",s("TILDE",`^${i[a.LONETILDE]}${i[a.XRANGEPLAIN]}$`),s("TILDELOOSE",`^${i[a.LONETILDE]}${i[a.XRANGEPLAINLOOSE]}$`),s("LONECARET","(?:\\^)"),s("CARETTRIM",`(\\s*)${i[a.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",s("CARET",`^${i[a.LONECARET]}${i[a.XRANGEPLAIN]}$`),s("CARETLOOSE",`^${i[a.LONECARET]}${i[a.XRANGEPLAINLOOSE]}$`),s("COMPARATORLOOSE",`^${i[a.GTLT]}\\s*(${i[a.LOOSEPLAIN]})$|^$`),s("COMPARATOR",`^${i[a.GTLT]}\\s*(${i[a.FULLPLAIN]})$|^$`),s("COMPARATORTRIM",`(\\s*)${i[a.GTLT]}\\s*(${i[a.LOOSEPLAIN]}|${i[a.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",s("HYPHENRANGE",`^\\s*(${i[a.XRANGEPLAIN]})\\s+-\\s+(${i[a.XRANGEPLAIN]})\\s*$`),s("HYPHENRANGELOOSE",`^\\s*(${i[a.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[a.XRANGEPLAINLOOSE]})\\s*$`),s("STAR","(<|>)?=?\\s*\\*"),s("GTE0","^\\s*>=\\s*0.0.0\\s*$"),s("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const ur=["includePrerelease","loose","rtl"];var lr=e=>e?"object"!=typeof e?{loose:!0}:ur.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const dr=/^[0-9]+$/,_r=(e,t)=>{const r=dr.test(e),n=dr.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e_r(t,e)};const{MAX_LENGTH:fr,MAX_SAFE_INTEGER:gr}=sr,{re:mr,t:yr}=cr,{compareIdentifiers:vr}=pr;class hr{constructor(e,t){if(t=lr(t),e instanceof hr){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>fr)throw new TypeError(`version is longer than ${fr} characters`);or("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const r=e.trim().match(t.loose?mr[yr.LOOSE]:mr[yr.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>gr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>gr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>gr||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}}var Dr=hr;var xr=(e,t,r)=>new Dr(e,r).compare(new Dr(t,r));var br=(e,t,r)=>xr(e,t,r)<0;var Sr=(e,t,r)=>xr(e,t,r)>=0,Er="2.3.2",Tr=f((function(e,t){function r(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Cr` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Cr` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Cr` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Cr` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const Ar=["cliName","cliCategory","cliDescription"],Fr={compare:xr,lt:br,gte:Sr},Nr=Er,Pr={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:kr}.options;var wr={getSupportInfo:function({plugins:e=[],showUnreleased:t=!1,showDeprecated:r=!1,showInternal:n=!1}={}){const i=Nr.split("-",1)[0],a=e.flatMap((e=>e.languages||[])).filter(u),o=(s=Object.assign({},...e.map((({options:e})=>e)),Pr),c="name",Object.entries(s).map((([e,t])=>Object.assign({[c]:e},t)))).filter((e=>u(e)&&l(e))).sort(((e,t)=>e.name===t.name?0:e.name{t=Object.assign({},t),Array.isArray(t.default)&&(t.default=1===t.default.length?t.default[0].value:t.default.filter(u).sort(((e,t)=>Fr.compare(t.since,e.since)))[0].value),Array.isArray(t.choices)&&(t.choices=t.choices.filter((e=>u(e)&&l(e))),"parser"===t.name&&function(e,t,r){const n=new Set(e.choices.map((e=>e.value)));for(const i of t)if(i.parsers)for(const t of i.parsers)if(!n.has(t)){n.add(t);const a=r.find((e=>e.parsers&&e.parsers[t]));let o=i.name;a&&a.name&&(o+=` (plugin: ${a.name})`),e.choices.push({value:t,description:o})}}(t,a,e));const r=Object.fromEntries(e.filter((e=>e.defaultOptions&&void 0!==e.defaultOptions[t.name])).map((e=>[e.name,e.defaultOptions[t.name]])));return Object.assign(Object.assign({},t),{},{pluginDefaults:r})}));var s,c;return{languages:a,options:o};function u(e){return t||!("since"in e)||e.since&&Fr.gte(i,e.since)}function l(e){return r||!("deprecated"in e)||e.deprecated&&Fr.lt(i,e.deprecated)}}};const{getSupportInfo:Ir}=wr,Or=/[^\x20-\x7F]/;function Mr(e){return(t,r,n)=>{const i=n&&n.backwards;if(!1===r)return!1;const{length:a}=t;let o=r;for(;o>=0&&o(r.match(o.regex)||[]).length?o.quote:a.quote}return s}function Yr(e,t,r){const n='"'===t?"'":'"',i=e.replace(/\\(.)|(["'])/gs,((e,i,a)=>i===n?i:a===t?"\\"+a:a||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(i)?i:"\\"+i)));return t+i+t}function Xr(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let r=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");r.length>20&&(r=r.slice(0,19)+"\u2026");return t+(r?" "+r:"")}(e)}var $r={inferParserByLanguage:function(e,t){const{languages:r}=Ir({plugins:t.plugins}),n=r.find((({name:t})=>t.toLowerCase()===e))||r.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||r.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return n&&n.parsers[0]},getStringWidth:function(e){return e?Or.test(e)?s(e):e.length:0},getMaxContinuousCount:function(e,t){const r=e.match(new RegExp(`(${u(t)})+`,"g"));return null===r?0:r.reduce(((e,r)=>Math.max(e,r.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const r=e.match(new RegExp(`(${u(t)})+`,"g"));if(null===r)return 0;const n=new Map;let i=0;for(const e of r){const r=e.length/t.length;n.set(r,!0),r>i&&(i=r)}for(let e=1;ee[e.length-2],getLast:l,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:qr,getNextNonSpaceNonCommentCharacterIndex:Wr,getNextNonSpaceNonCommentCharacter:function(e,t,r){return e.charAt(Wr(e,t,r))},skip:Mr,skipWhitespace:Lr,skipSpaces:Rr,skipToLineEnd:Br,skipEverythingButNewLine:jr,skipInlineComment:Jr,skipTrailingComment:Kr,skipNewline:zr,isNextLineEmptyAfterIndex:Vr,isNextLineEmpty:function(e,t,r){return Vr(e,r(t))},isPreviousLineEmpty:function(e,t,r){let n=r(t)-1;return n=Rr(e,n,{backwards:!0}),n=zr(e,n,{backwards:!0}),n=Rr(e,n,{backwards:!0}),n!==zr(e,n,{backwards:!0})},hasNewline:Ur,hasNewlineInRange:function(e,t,r){for(let n=t;n0},createGroupIdMapper:function(e){const t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}};const{isNonEmptyArray:Qr}=$r;function Zr(e,t){const{ignoreDecorators:r}=t||{};if(!r){const t=e.declaration&&e.declaration.decorators||e.decorators;if(Qr(t))return Zr(t[0])}return e.range?e.range[0]:e.start}function en(e){return e.range?e.range[1]:e.end}function tn(e,t){return Zr(e)===Zr(t)}var rn={locStart:Zr,locEnd:en,hasSameLocStart:tn,hasSameLoc:function(e,t){return tn(e,t)&&function(e,t){return en(e)===en(t)}(e,t)}},nn=f((function(e){!function(){function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=r(t)}while(t);return!1},trailingStatement:r}}()})),an=f((function(e){!function(){var t,r,n,i,a,o;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},t={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/},n=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),o=0;o<128;++o)i[o]=o>=97&&o<=122||o>=65&&o<=90||36===o||95===o;for(a=new Array(128),o=0;o<128;++o)a[o]=o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||36===o||95===o;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&n.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:r.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?a[e]:r.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?a[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()})),on=f((function(e){!function(){var t=an;function r(e,t){return!(!t&&"yield"===e)&&n(e,t)}function n(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===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}}function i(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function o(e){var r,n,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStartES5(i))return!1;for(r=1,n=e.length;r=n)return!1;if(!(56320<=(a=e.charCodeAt(r))&&a<=57343))return!1;i=1024*(i-55296)+(a-56320)+65536}if(!o(i))return!1;o=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:r,isKeywordES6:n,isReservedWordES5:i,isReservedWordES6:a,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:o,isIdentifierNameES6:s,isIdentifierES5:function(e,t){return o(e)&&!i(e,t)},isIdentifierES6:function(e,t){return s(e)&&!a(e,t)}}}()}));const sn=f((function(e,t){t.ast=nn,t.code=an,t.keyword=on})).keyword.isIdentifierNameES5,{getLast:cn,hasNewline:un,skipWhitespace:ln,isNonEmptyArray:dn,isNextLineEmptyAfterIndex:_n}=$r,{locStart:pn,locEnd:fn,hasSameLocStart:gn}=rn,mn=new RegExp("^(?:(?=.)\\s)*:"),yn=new RegExp("^(?:(?=.)\\s)*::");function vn(e){return"Block"===e.type||"CommentBlock"===e.type||"MultiLine"===e.type}function hn(e){return"Line"===e.type||"CommentLine"===e.type||"SingleLine"===e.type||"HashbangComment"===e.type||"HTMLOpen"===e.type||"HTMLClose"===e.type}const Dn=new Set(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function xn(e){return e&&Dn.has(e.type)}function bn(e){return"NumericLiteral"===e.type||"Literal"===e.type&&"number"==typeof e.value}function Sn(e){return"StringLiteral"===e.type||"Literal"===e.type&&"string"==typeof e.value}function En(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}function Tn(e){return wn(e)&&"Identifier"===e.callee.type&&("async"===e.callee.name||"inject"===e.callee.name||"fakeAsync"===e.callee.name)}function Cn(e){return"JSXElement"===e.type||"JSXFragment"===e.type}function kn(e){return"get"===e.kind||"set"===e.kind}function An(e){return kn(e)||gn(e,e.value)}const Fn=new Set(["BinaryExpression","LogicalExpression","NGPipeExpression"]);const Nn=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);const Pn=/^(skip|[fx]?(it|describe|test))$/;function wn(e){return e&&("CallExpression"===e.type||"OptionalCallExpression"===e.type)}function In(e){return e&&("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)}function On(e){return/^(\d+|\d+\.\d+)$/.test(e)}function Mn(e){return e.quasis.some((e=>e.value.raw.includes("\n")))}function Ln(e){return e.extra?e.extra.raw:e.raw}const Rn={"==":!0,"!=":!0,"===":!0,"!==":!0},Bn={"*":!0,"/":!0,"%":!0},jn={">>":!0,">>>":!0,"<<":!0};const Jn={};for(const[e,t]of[["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].entries())for(const r of t)Jn[r]=e;function Kn(e){return Jn[e]}const zn=new WeakMap;function Un(e){if(zn.has(e))return zn.get(e);const t=[];return e.this&&t.push(e.this),Array.isArray(e.parameters)?t.push(...e.parameters):Array.isArray(e.params)&&t.push(...e.params),e.rest&&t.push(e.rest),zn.set(e,t),t}const Vn=new WeakMap;function qn(e){if(Vn.has(e))return Vn.get(e);let t=e.arguments;return"ImportExpression"===e.type&&(t=[e.source],e.attributes&&t.push(e.attributes)),Vn.set(e,t),t}function Wn(e){return"prettier-ignore"===e.value.trim()&&!e.unignore}function Hn(e){return e&&(e.prettierIgnore||Xn(e,Gn.PrettierIgnore))}const Gn={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},Yn=(e,t)=>{if("function"==typeof e&&(t=e,e=0),e||t)return(r,n,i)=>!(e&Gn.Leading&&!r.leading||e&Gn.Trailing&&!r.trailing||e&Gn.Dangling&&(r.leading||r.trailing)||e&Gn.Block&&!vn(r)||e&Gn.Line&&!hn(r)||e&Gn.First&&0!==n||e&Gn.Last&&n!==i.length-1||e&Gn.PrettierIgnore&&!Wn(r)||t&&!t(r))};function Xn(e,t,r){if(!e||!dn(e.comments))return!1;const n=Yn(t,r);return!n||e.comments.some(n)}function $n(e,t,r){if(!e||!Array.isArray(e.comments))return[];const n=Yn(t,r);return n?e.comments.filter(n):e.comments}function Qn(e){return wn(e)||"NewExpression"===e.type||"ImportExpression"===e.type}var Zn={getFunctionParameters:Un,iterateFunctionParametersPath:function(e,t){const r=e.getValue();let n=0;const i=e=>t(e,n++);r.this&&e.call(i,"this"),Array.isArray(r.parameters)?e.each(i,"parameters"):Array.isArray(r.params)&&e.each(i,"params"),r.rest&&e.call(i,"rest")},getCallArguments:qn,iterateCallArgumentsPath:function(e,t){const r=e.getValue();"ImportExpression"===r.type?(e.call((e=>t(e,0)),"source"),r.attributes&&e.call((e=>t(e,1)),"attributes")):e.each(t,"arguments")},hasRestParameter:function(e){if(e.rest)return!0;const t=Un(e);return t.length>0&&"RestElement"===cn(t).type},getLeftSide:function(e){return e.expressions?e.expressions[0]:e.left||e.test||e.callee||e.object||e.tag||e.argument||e.expression},getLeftSidePathName:function(e,t){if(t.expressions)return["expressions",0];if(t.left)return["left"];if(t.test)return["test"];if(t.object)return["object"];if(t.callee)return["callee"];if(t.tag)return["tag"];if(t.argument)return["argument"];if(t.expression)return["expression"];throw new Error("Unexpected node has no left side.")},getParentExportDeclaration:function(e){const t=e.getParentNode();return"declaration"===e.getName()&&xn(t)?t:null},getTypeScriptMappedTypeModifier:function(e,t){return"+"===e?"+"+t:"-"===e?"-"+t:t},hasFlowAnnotationComment:function(e){return e&&vn(e[0])&&yn.test(e[0].value)},hasFlowShorthandAnnotationComment:function(e){return e.extra&&e.extra.parenthesized&&dn(e.trailingComments)&&vn(e.trailingComments[0])&&mn.test(e.trailingComments[0].value)},hasLeadingOwnLineComment:function(e,t){return Cn(t)?Hn(t):Xn(t,Gn.Leading,(t=>un(e,fn(t))))},hasNakedLeftSide:function(e){return"AssignmentExpression"===e.type||"BinaryExpression"===e.type||"LogicalExpression"===e.type||"NGPipeExpression"===e.type||"ConditionalExpression"===e.type||wn(e)||In(e)||"SequenceExpression"===e.type||"TaggedTemplateExpression"===e.type||"BindExpression"===e.type||"UpdateExpression"===e.type&&!e.prefix||"TSAsExpression"===e.type||"TSNonNullExpression"===e.type},hasNode:function e(t,r){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return t.some((t=>e(t,r)));const n=r(t);return"boolean"==typeof n?n:Object.values(t).some((t=>e(t,r)))},hasIgnoreComment:function(e){return Hn(e.getValue())},hasNodeIgnoreComment:Hn,identity:function(e){return e},isBinaryish:function(e){return Fn.has(e.type)},isBlockComment:vn,isCallLikeExpression:Qn,isLineComment:hn,isPrettierIgnoreComment:Wn,isCallExpression:wn,isMemberExpression:In,isExportDeclaration:xn,isFlowAnnotationComment:function(e,t){const r=pn(t),n=ln(e,fn(t));return!1!==n&&"/*"===e.slice(r,r+2)&&"*/"===e.slice(n,n+2)},isFunctionCompositionArgs:function(e){if(e.length<=1)return!1;let t=0;for(const r of e)if(En(r)){if(t+=1,t>1)return!0}else if(wn(r))for(const e of r.arguments)if(En(e))return!0;return!1},isFunctionNotation:An,isFunctionOrArrowExpression:En,isGetterOrSetter:kn,isJestEachTemplateLiteral:function(e,t){const r=/^[fx]?(describe|it|test)$/;return"TaggedTemplateExpression"===t.type&&t.quasi===e&&"MemberExpression"===t.tag.type&&"Identifier"===t.tag.property.type&&"each"===t.tag.property.name&&("Identifier"===t.tag.object.type&&r.test(t.tag.object.name)||"MemberExpression"===t.tag.object.type&&"Identifier"===t.tag.object.property.type&&("only"===t.tag.object.property.name||"skip"===t.tag.object.property.name)&&"Identifier"===t.tag.object.object.type&&r.test(t.tag.object.object.name))},isJsxNode:Cn,isLiteral:function(e){return"BooleanLiteral"===e.type||"DirectiveLiteral"===e.type||"Literal"===e.type||"NullLiteral"===e.type||"NumericLiteral"===e.type||"BigIntLiteral"===e.type||"DecimalLiteral"===e.type||"RegExpLiteral"===e.type||"StringLiteral"===e.type||"TemplateLiteral"===e.type||"TSTypeLiteral"===e.type||"JSXText"===e.type},isLongCurriedCallExpression:function(e){const t=e.getValue(),r=e.getParentNode();return wn(t)&&wn(r)&&r.callee===t&&t.arguments.length>r.arguments.length&&r.arguments.length>0},isSimpleCallArgument:function e(t,r){if(r>=2)return!1;const n=t=>e(t,r+1),i="Literal"===t.type&&"regex"in t&&t.regex.pattern||"RegExpLiteral"===t.type&&t.pattern;return!(i&&i.length>5)&&("Literal"===t.type||"BigIntLiteral"===t.type||"DecimalLiteral"===t.type||"BooleanLiteral"===t.type||"NullLiteral"===t.type||"NumericLiteral"===t.type||"RegExpLiteral"===t.type||"StringLiteral"===t.type||"Identifier"===t.type||"ThisExpression"===t.type||"Super"===t.type||"PrivateName"===t.type||"PrivateIdentifier"===t.type||"ArgumentPlaceholder"===t.type||"Import"===t.type||("TemplateLiteral"===t.type?t.quasis.every((e=>!e.value.raw.includes("\n")))&&t.expressions.every(n):"ObjectExpression"===t.type?t.properties.every((e=>!e.computed&&(e.shorthand||e.value&&n(e.value)))):"ArrayExpression"===t.type?t.elements.every((e=>null===e||n(e))):Qn(t)?("ImportExpression"===t.type||e(t.callee,r))&&qn(t).every(n):In(t)?e(t.object,r)&&e(t.property,r):"UnaryExpression"!==t.type||"!"!==t.operator&&"-"!==t.operator?"TSNonNullExpression"===t.type&&e(t.expression,r):e(t.argument,r)))},isMemberish:function(e){return In(e)||"BindExpression"===e.type&&Boolean(e.object)},isNumericLiteral:bn,isSignedNumericLiteral:function(e){return"UnaryExpression"===e.type&&("+"===e.operator||"-"===e.operator)&&bn(e.argument)},isObjectProperty:function(e){return e&&("ObjectProperty"===e.type||"Property"===e.type&&!e.method&&"init"===e.kind)},isObjectType:function(e){return"ObjectTypeAnnotation"===e.type||"TSTypeLiteral"===e.type},isObjectTypePropertyAFunction:function(e){return!("ObjectTypeProperty"!==e.type&&"ObjectTypeInternalSlot"!==e.type||"FunctionTypeAnnotation"!==e.value.type||e.static||An(e))},isSimpleType:function(e){return!!e&&(!("GenericTypeAnnotation"!==e.type&&"TSTypeReference"!==e.type||e.typeParameters)||!!Nn.has(e.type))},isSimpleNumber:On,isSimpleTemplateLiteral:function(e){let t="expressions";"TSTemplateLiteralType"===e.type&&(t="types");const r=e[t];return 0!==r.length&&r.every((e=>{if(Xn(e))return!1;if("Identifier"===e.type||"ThisExpression"===e.type)return!0;if(In(e)){let t=e;for(;In(t);){if("Identifier"!==t.property.type&&"Literal"!==t.property.type&&"StringLiteral"!==t.property.type&&"NumericLiteral"!==t.property.type)return!1;if(t=t.object,Xn(t))return!1}return"Identifier"===t.type||"ThisExpression"===t.type}return!1}))},isStringLiteral:Sn,isStringPropSafeToUnquote:function(e,t){return"json"!==t.parser&&Sn(e.key)&&Ln(e.key).slice(1,-1)===e.key.value&&(sn(e.key.value)&&!(("typescript"===t.parser||"babel-ts"===t.parser)&&"ClassProperty"===e.type)||On(e.key.value)&&String(Number(e.key.value))===e.key.value&&("babel"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser))},isTemplateOnItsOwnLine:function(e,t){return("TemplateLiteral"===e.type&&Mn(e)||"TaggedTemplateExpression"===e.type&&Mn(e.quasi))&&!un(t,pn(e),{backwards:!0})},isTestCall:function e(t,r){if("CallExpression"!==t.type)return!1;if(1===t.arguments.length){if(Tn(t)&&r&&e(r))return En(t.arguments[0]);if(function(e){return"Identifier"===e.callee.type&&/^(before|after)(Each|All)$/.test(e.callee.name)&&1===e.arguments.length}(t))return Tn(t.arguments[0])}else if((2===t.arguments.length||3===t.arguments.length)&&("Identifier"===t.callee.type&&Pn.test(t.callee.name)||function(e){return In(e.callee)&&"Identifier"===e.callee.object.type&&"Identifier"===e.callee.property.type&&Pn.test(e.callee.object.name)&&("only"===e.callee.property.name||"skip"===e.callee.property.name)}(t))&&(function(e){return"TemplateLiteral"===e.type}(t.arguments[0])||Sn(t.arguments[0])))return!(t.arguments[2]&&!bn(t.arguments[2]))&&((2===t.arguments.length?En(t.arguments[1]):function(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type}(t.arguments[1])&&Un(t.arguments[1]).length<=1)||Tn(t.arguments[1]));return!1},isTheOnlyJsxElementInMarkdown:function(e,t){if("markdown"!==e.parentParser&&"mdx"!==e.parentParser)return!1;const r=t.getNode();if(!r.expression||!Cn(r.expression))return!1;const n=t.getParentNode();return"Program"===n.type&&1===n.body.length},isTSXFile:function(e){return e.filepath&&/\.tsx$/i.test(e.filepath)},isTypeAnnotationAFunction:function(e){return!("TypeAnnotation"!==e.type&&"TSTypeAnnotation"!==e.type||"FunctionTypeAnnotation"!==e.typeAnnotation.type||e.static||gn(e,e.typeAnnotation))},isNextLineEmpty:(e,{originalText:t})=>_n(t,fn(e)),needsHardlineAfterDanglingComment:function(e){if(!Xn(e))return!1;const t=cn($n(e,Gn.Dangling));return t&&!vn(t)},rawText:Ln,shouldPrintComma:function(e,t="es5"){return"es5"===e.trailingComma&&"es5"===t||"all"===e.trailingComma&&("all"===t||"es5"===t)},isBitwiseOperator:function(e){return Boolean(jn[e])||"|"===e||"^"===e||"&"===e},shouldFlatten:function(e,t){return Kn(t)===Kn(e)&&("**"!==e&&((!Rn[e]||!Rn[t])&&(!("%"===t&&Bn[e]||"%"===e&&Bn[t])&&((t===e||!Bn[t]||!Bn[e])&&(!jn[e]||!jn[t])))))},startsWithNoLookaheadToken:function e(t,r){switch((t=function(e){for(;e.left;)e=e.left;return e}(t)).type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return r;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return e(t.object,r);case"TaggedTemplateExpression":return"FunctionExpression"!==t.tag.type&&e(t.tag,r);case"CallExpression":case"OptionalCallExpression":return"FunctionExpression"!==t.callee.type&&e(t.callee,r);case"ConditionalExpression":return e(t.test,r);case"UpdateExpression":return!t.prefix&&e(t.argument,r);case"BindExpression":return t.object&&e(t.object,r);case"SequenceExpression":return e(t.expressions[0],r);case"TSAsExpression":case"TSNonNullExpression":return e(t.expression,r);default:return!1}},getPrecedence:Kn,hasComment:Xn,getComments:$n,CommentCheckFlags:Gn};const{getLast:ei,hasNewline:ti,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:ri,getNextNonSpaceNonCommentCharacter:ni,hasNewlineInRange:ii,addLeadingComment:ai,addTrailingComment:oi,addDanglingComment:si,getNextNonSpaceNonCommentCharacterIndex:ci,isNonEmptyArray:ui}=$r,{isBlockComment:li,getFunctionParameters:di,isPrettierIgnoreComment:_i,isJsxNode:pi,hasFlowShorthandAnnotationComment:fi,hasFlowAnnotationComment:gi,hasIgnoreComment:mi,isCallLikeExpression:yi,getCallArguments:vi,isCallExpression:hi,isMemberExpression:Di,isObjectProperty:xi}=Zn,{locStart:bi,locEnd:Si}=rn;function Ei(e,t){const r=(e.body||e.properties).find((({type:e})=>"EmptyStatement"!==e));r?ai(r,t):si(e,t)}function Ti(e,t){"BlockStatement"===e.type?Ei(e,t):ai(e,t)}function Ci({comment:e,followingNode:t}){return!(!t||!ta(e))&&(ai(t,e),!0)}function ki({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:i}){if(!r||"IfStatement"!==r.type||!n)return!1;return")"===ni(i,e,Si)?(oi(t,e),!0):t===r.consequent&&n===r.alternate?("BlockStatement"===t.type?oi(t,e):si(r,e),!0):"BlockStatement"===n.type?(Ei(n,e),!0):"IfStatement"===n.type?(Ti(n.consequent,e),!0):r.consequent===n&&(ai(n,e),!0)}function Ai({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:i}){if(!r||"WhileStatement"!==r.type||!n)return!1;return")"===ni(i,e,Si)?(oi(t,e),!0):"BlockStatement"===n.type?(Ei(n,e),!0):r.body===n&&(ai(n,e),!0)}function Fi({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){return!(!r||"TryStatement"!==r.type&&"CatchClause"!==r.type||!n)&&("CatchClause"===r.type&&t?(oi(t,e),!0):"BlockStatement"===n.type?(Ei(n,e),!0):"TryStatement"===n.type?(Ti(n.finalizer,e),!0):"CatchClause"===n.type&&(Ti(n.body,e),!0))}function Ni({comment:e,enclosingNode:t,followingNode:r}){return!(!Di(t)||!r||"Identifier"!==r.type)&&(ai(t,e),!0)}function Pi({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:i}){const a=t&&!ii(i,Si(t),bi(e));return!(t&&a||!r||"ConditionalExpression"!==r.type&&"TSConditionalType"!==r.type||!n)&&(ai(n,e),!0)}function wi({comment:e,precedingNode:t,enclosingNode:r}){return!(!xi(r)||!r.shorthand||r.key!==t||"AssignmentPattern"!==r.value.type)&&(oi(r.value.left,e),!0)}function Ii({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){if(r&&("ClassDeclaration"===r.type||"ClassExpression"===r.type||"DeclareClass"===r.type||"DeclareInterface"===r.type||"InterfaceDeclaration"===r.type||"TSInterfaceDeclaration"===r.type)){if(ui(r.decorators)&&(!n||"Decorator"!==n.type))return oi(ei(r.decorators),e),!0;if(r.body&&n===r.body)return Ei(r.body,e),!0;if(n)for(const i of["implements","extends","mixins"])if(r[i]&&n===r[i][0])return!t||t!==r.id&&t!==r.typeParameters&&t!==r.superClass?si(r,e,i):oi(t,e),!0}return!1}function Oi({comment:e,precedingNode:t,enclosingNode:r,text:n}){return(r&&t&&("Property"===r.type||"TSDeclareMethod"===r.type||"TSAbstractMethodDefinition"===r.type)&&"Identifier"===t.type&&r.key===t&&":"!==ni(n,t,Si)||!(!t||!r||"Decorator"!==t.type||"ClassMethod"!==r.type&&"ClassProperty"!==r.type&&"PropertyDefinition"!==r.type&&"TSAbstractClassProperty"!==r.type&&"TSAbstractMethodDefinition"!==r.type&&"TSDeclareMethod"!==r.type&&"MethodDefinition"!==r.type))&&(oi(t,e),!0)}function Mi({comment:e,precedingNode:t,enclosingNode:r,text:n}){return"("===ni(n,e,Si)&&(!(!t||!r||"FunctionDeclaration"!==r.type&&"FunctionExpression"!==r.type&&"ClassMethod"!==r.type&&"MethodDefinition"!==r.type&&"ObjectMethod"!==r.type)&&(oi(t,e),!0))}function Li({comment:e,enclosingNode:t,text:r}){if(!t||"ArrowFunctionExpression"!==t.type)return!1;const n=ci(r,e,Si);return!1!==n&&"=>"===r.slice(n,n+2)&&(si(t,e),!0)}function Ri({comment:e,enclosingNode:t,text:r}){return")"===ni(r,e,Si)&&(t&&(ea(t)&&0===di(t).length||yi(t)&&0===vi(t).length)?(si(t,e),!0):!(!t||"MethodDefinition"!==t.type&&"TSAbstractMethodDefinition"!==t.type||0!==di(t.value).length)&&(si(t.value,e),!0))}function Bi({comment:e,precedingNode:t,enclosingNode:r,followingNode:n,text:i}){if(t&&"FunctionTypeParam"===t.type&&r&&"FunctionTypeAnnotation"===r.type&&n&&"FunctionTypeParam"!==n.type)return oi(t,e),!0;if(t&&("Identifier"===t.type||"AssignmentPattern"===t.type)&&r&&ea(r)&&")"===ni(i,e,Si))return oi(t,e),!0;if(r&&"FunctionDeclaration"===r.type&&n&&"BlockStatement"===n.type){const t=(()=>{const e=di(r);if(e.length>0)return ri(i,Si(ei(e)));const t=ri(i,Si(r.id));return!1!==t&&ri(i,t+1)})();if(bi(e)>t)return Ei(n,e),!0}return!1}function ji({comment:e,enclosingNode:t}){return!(!t||"ImportSpecifier"!==t.type)&&(ai(t,e),!0)}function Ji({comment:e,enclosingNode:t}){return!(!t||"LabeledStatement"!==t.type)&&(ai(t,e),!0)}function Ki({comment:e,enclosingNode:t}){return!(!t||"ContinueStatement"!==t.type&&"BreakStatement"!==t.type||t.label)&&(oi(t,e),!0)}function zi({comment:e,precedingNode:t,enclosingNode:r}){return!!(hi(r)&&t&&r.callee===t&&r.arguments.length>0)&&(ai(r.arguments[0],e),!0)}function Ui({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){return!r||"UnionTypeAnnotation"!==r.type&&"TSUnionType"!==r.type?(n&&("UnionTypeAnnotation"===n.type||"TSUnionType"===n.type)&&_i(e)&&(n.types[0].prettierIgnore=!0,e.unignore=!0),!1):(_i(e)&&(n.prettierIgnore=!0,e.unignore=!0),!!t&&(oi(t,e),!0))}function Vi({comment:e,enclosingNode:t}){return!!xi(t)&&(ai(t,e),!0)}function qi({comment:e,enclosingNode:t,followingNode:r,ast:n,isLastComment:i}){return n&&n.body&&0===n.body.length?(i?si(n,e):ai(n,e),!0):t&&"Program"===t.type&&0===t.body.length&&!ui(t.directives)?(i?si(t,e):ai(t,e),!0):!(!r||"Program"!==r.type||0!==r.body.length||!t||"ModuleExpression"!==t.type)&&(si(r,e),!0)}function Wi({comment:e,enclosingNode:t}){return!(!t||"ForInStatement"!==t.type&&"ForOfStatement"!==t.type)&&(ai(t,e),!0)}function Hi({comment:e,precedingNode:t,enclosingNode:r,text:n}){return!!(t&&"ImportSpecifier"===t.type&&r&&"ImportDeclaration"===r.type&&ti(n,Si(e)))&&(oi(t,e),!0)}function Gi({comment:e,enclosingNode:t}){return!(!t||"AssignmentPattern"!==t.type)&&(ai(t,e),!0)}function Yi({comment:e,enclosingNode:t}){return!(!t||"TypeAlias"!==t.type)&&(ai(t,e),!0)}function Xi({comment:e,enclosingNode:t,followingNode:r}){return!(!t||"VariableDeclarator"!==t.type&&"AssignmentExpression"!==t.type||!r||"ObjectExpression"!==r.type&&"ArrayExpression"!==r.type&&"TemplateLiteral"!==r.type&&"TaggedTemplateExpression"!==r.type&&!li(e))&&(ai(r,e),!0)}function $i({comment:e,enclosingNode:t,followingNode:r,text:n}){return!(r||!t||"TSMethodSignature"!==t.type&&"TSDeclareFunction"!==t.type&&"TSAbstractMethodDefinition"!==t.type||";"!==ni(n,e,Si))&&(oi(t,e),!0)}function Qi({comment:e,enclosingNode:t,followingNode:r}){if(_i(e)&&t&&"TSMappedType"===t.type&&r&&"TSTypeParameter"===r.type&&r.constraint)return t.prettierIgnore=!0,e.unignore=!0,!0}function Zi({comment:e,precedingNode:t,enclosingNode:r,followingNode:n}){return!(!r||"TSMappedType"!==r.type)&&(n&&"TSTypeParameter"===n.type&&n.name?(ai(n.name,e),!0):!(!t||"TSTypeParameter"!==t.type||!t.constraint)&&(oi(t.constraint,e),!0))}function ea(e){return"ArrowFunctionExpression"===e.type||"FunctionExpression"===e.type||"FunctionDeclaration"===e.type||"ObjectMethod"===e.type||"ClassMethod"===e.type||"TSDeclareFunction"===e.type||"TSCallSignatureDeclaration"===e.type||"TSConstructSignatureDeclaration"===e.type||"TSMethodSignature"===e.type||"TSConstructorType"===e.type||"TSFunctionType"===e.type||"TSDeclareMethod"===e.type}function ta(e){return li(e)&&"*"===e.value[0]&&/@type\b/.test(e.value)}var ra={handleOwnLineComment:function(e){return[Qi,Bi,Ni,ki,Ai,Fi,Ii,ji,Wi,Ui,qi,Hi,Gi,Oi,Ji].some((t=>t(e)))},handleEndOfLineComment:function(e){return[Ci,Bi,Pi,ji,ki,Ai,Fi,Ii,Ji,zi,Vi,qi,Yi,Xi].some((t=>t(e)))},handleRemainingComment:function(e){return[Qi,ki,Ai,wi,Ri,Oi,qi,Li,Mi,Zi,Ki,$i].some((t=>t(e)))},isTypeCastComment:ta,getCommentChildNodes:function(e,t){if(("typescript"===t.parser||"flow"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser)&&"MethodDefinition"===e.type&&e.value&&"FunctionExpression"===e.value.type&&0===di(e.value).length&&!e.value.returnType&&!ui(e.value.typeParameters)&&e.value.body)return[...e.decorators||[],e.key,e.value.body]},willPrintOwnComments:function(e){const t=e.getValue(),r=e.getParentNode();return(t&&(pi(t)||fi(t)||hi(r)&&(gi(t.leadingComments)||gi(t.trailingComments)))||r&&("JSXSpreadAttribute"===r.type||"JSXSpreadChild"===r.type||"UnionTypeAnnotation"===r.type||"TSUnionType"===r.type||("ClassDeclaration"===r.type||"ClassExpression"===r.type)&&r.superClass===t))&&(!mi(e)||"UnionTypeAnnotation"===r.type||"TSUnionType"===r.type)}};const{getLast:na,getNextNonSpaceNonCommentCharacter:ia}=$r,{locStart:aa,locEnd:oa}=rn,{isTypeCastComment:sa}=ra;function ca(e){return"CallExpression"===e.type?(e.type="OptionalCallExpression",e.callee=ca(e.callee)):"MemberExpression"===e.type?(e.type="OptionalMemberExpression",e.object=ca(e.object)):"TSNonNullExpression"===e.type&&(e.expression=ca(e.expression)),e}function ua(e,t){let r;if(Array.isArray(e))r=e.entries();else{if(!e||"object"!=typeof e||"string"!=typeof e.type)return e;r=Object.entries(e)}for(const[n,i]of r)e[n]=ua(i,t);return Array.isArray(e)?e:t(e)||e}function la(e){return"LogicalExpression"===e.type&&"LogicalExpression"===e.right.type&&e.operator===e.right.operator}function da(e){return la(e)?da({type:"LogicalExpression",operator:e.operator,left:da({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[aa(e.left),oa(e.right.left)]}),right:e.right.right,range:[aa(e),oa(e)]}):e}var _a,pa=function(t,r){if("typescript"===r.parser&&r.originalText.includes("@")){const{esTreeNodeToTSNodeMap:n,tsNodeToESTreeNodeMap:i}=r.tsParseResult;t=ua(t,(t=>{const r=n.get(t);if(!r)return;const a=r.decorators;if(!Array.isArray(a))return;const o=i.get(r);if(o!==t)return;const s=o.decorators;if(!Array.isArray(s)||s.length!==a.length||a.some((e=>{const t=i.get(e);return!t||!s.includes(t)}))){const{start:t,end:r}=o.loc;throw e("Leading decorators must be attached to a class declaration",{start:{line:t.line,column:t.column+1},end:{line:r.line,column:r.column+1}})}}))}if("typescript"!==r.parser&&"flow"!==r.parser&&"espree"!==r.parser&&"meriyah"!==r.parser){const e=new Set;t=ua(t,(t=>{t.leadingComments&&t.leadingComments.some(sa)&&e.add(aa(t))})),t=ua(t,(t=>{if("ParenthesizedExpression"===t.type){const{expression:r}=t;if("TypeCastExpression"===r.type)return r.range=t.range,r;const n=aa(t);if(!e.has(n))return r.extra=Object.assign(Object.assign({},r.extra),{},{parenthesized:!0}),r}}))}return t=ua(t,(e=>{switch(e.type){case"ChainExpression":return ca(e.expression);case"LogicalExpression":if(la(e))return da(e);break;case"VariableDeclaration":{const t=na(e.declarations);t&&t.init&&function(e,t){if(";"===r.originalText[oa(t)])return;e.range=[aa(e),oa(t)]}(e,t);break}case"TSParenthesizedType":return e.typeAnnotation.range=[aa(e),oa(e)],e.typeAnnotation;case"TSTypeParameter":if("string"==typeof e.name){const t=aa(e);e.name={type:"Identifier",name:e.name,range:[t,t+e.name.length]}}break;case"SequenceExpression":{const t=na(e.expressions);e.range=[aa(e),Math.min(oa(t),oa(e))];break}case"ClassProperty":e.key&&"TSPrivateIdentifier"===e.key.type&&"?"===ia(r.originalText,e.key,oa)&&(e.optional=!0)}}))};function fa(){if(void 0===_a){var e=new ArrayBuffer(2),t=new Uint8Array(e),r=new Uint16Array(e);if(t[0]=1,t[1]=2,258===r[0])_a="BE";else{if(513!==r[0])throw new Error("unable to figure out endianess");_a="LE"}}return _a}function ga(){return void 0!==Mt.location?Mt.location.hostname:""}function ma(){return[]}function ya(){return 0}function va(){return Number.MAX_VALUE}function ha(){return Number.MAX_VALUE}function Da(){return[]}function xa(){return"Browser"}function ba(){return void 0!==Mt.navigator?Mt.navigator.appVersion:""}function Sa(){}function Ea(){}function Ta(){return"javascript"}function Ca(){return"browser"}function ka(){return"/tmp"}var Aa=ka,Fa={EOL:"\n",arch:Ta,platform:Ca,tmpdir:Aa,tmpDir:ka,networkInterfaces:Sa,getNetworkInterfaces:Ea,release:ba,type:xa,cpus:Da,totalmem:ha,freemem:va,uptime:ya,loadavg:ma,hostname:ga,endianness:fa},Na=Object.freeze({__proto__:null,endianness:fa,hostname:ga,loadavg:ma,uptime:ya,freemem:va,totalmem:ha,cpus:Da,type:xa,release:ba,networkInterfaces:Sa,getNetworkInterfaces:Ea,arch:Ta,platform:Ca,tmpDir:ka,tmpdir:Aa,EOL:"\n",default:Fa});const Pa=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");const t=e.match(/(?:\r?\n)/g)||[];if(0===t.length)return;const r=t.filter((e=>"\r\n"===e)).length;return r>t.length-r?"\r\n":"\n"};var wa=Pa;wa.graceful=e=>"string"==typeof e&&Pa(e)||"\n";var Ia=p(Na),Oa=function(e){const t=e.match(Ua);return t?t[0].trimLeft():""},Ma=function(e){const t=e.match(Ua);return t&&t[0]?e.substring(t[0].length):e},La=function(e){return Xa(e).pragmas},Ra=Xa,Ba=function({comments:e="",pragmas:t={}}){const r=(0,Ja().default)(e)||ja().EOL,n=" *",i=Object.keys(t),a=i.map((e=>$a(e,t[e]))).reduce(((e,t)=>e.concat(t)),[]).map((e=>" * "+e+r)).join("");if(!e){if(0===i.length)return"";if(1===i.length&&!Array.isArray(t[i[0]])){const e=t[i[0]];return`/** ${$a(i[0],e)[0]} */`}}const o=e.split(r).map((e=>` * ${e}`)).join(r)+r;return"/**"+r+(e?o:"")+(e&&i.length?n+r:"")+a+" */"};function ja(){const e=Ia;return ja=function(){return e},e}function Ja(){const e=(t=wa)&&t.__esModule?t:{default:t};var t;return Ja=function(){return e},e}const Ka=/\*\/$/,za=/^\/\*\*/,Ua=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,Va=/(^|\s+)\/\/([^\r\n]*)/g,qa=/^(\r?\n)+/,Wa=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Ha=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,Ga=/(\r?\n|^) *\* ?/g,Ya=[];function Xa(e){const t=(0,Ja().default)(e)||ja().EOL;e=e.replace(za,"").replace(Ka,"").replace(Ga,"$1");let r="";for(;r!==e;)r=e,e=e.replace(Wa,`${t}$1 $2${t}`);e=e.replace(qa,"").trimRight();const n=Object.create(null),i=e.replace(Ha,"").replace(qa,"").trimRight();let a;for(;a=Ha.exec(e);){const e=a[2].replace(Va,"");"string"==typeof n[a[1]]||Array.isArray(n[a[1]])?n[a[1]]=Ya.concat(n[a[1]],e):n[a[1]]=e}return{comments:i,pragmas:n}}function $a(e,t){return Ya.concat(t).map((t=>`@${e} ${t}`.trim()))}var Qa=Object.defineProperty({extract:Oa,strip:Ma,parse:La,parseWithComments:Ra,print:Ba},"__esModule",{value:!0});var Za={guessEndOfLine:function(e){const t=e.indexOf("\r");return t>=0?"\n"===e.charAt(t+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(e,t){let r;if("\n"===t)r=/\n/g;else if("\r"===t)r=/\r/g;else{if("\r\n"!==t)throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);r=/\r\n/g}const n=e.match(r);return n?n.length:0},normalizeEndOfLine:function(e){return e.replace(/\r\n?/g,"\n")}};const{parseWithComments:eo,strip:to,extract:ro,print:no}=Qa,{getShebang:io}=$r,{normalizeEndOfLine:ao}=Za;function oo(e){const t=io(e);t&&(e=e.slice(t.length+1));const r=ro(e),{pragmas:n,comments:i}=eo(r);return{shebang:t,text:e,pragmas:n,comments:i}}var so={hasPragma:function(e){const t=Object.keys(oo(e).pragmas);return t.includes("prettier")||t.includes("format")},insertPragma:function(e){const{shebang:t,text:r,pragmas:n,comments:i}=oo(e),a=to(r),o=no({pragmas:Object.assign({format:""},n),comments:i.trimStart()});return(t?`${t}\n`:"")+ao(o)+(a.startsWith("\n")?"\n":"\n\n")+a}};const{hasPragma:co}=so,{locStart:uo,locEnd:lo}=rn;var _o=function(e){return e="function"==typeof e?{parse:e}:e,Object.assign({astFormat:"estree",hasPragma:co,locStart:uo,locEnd:lo},e)};var po=function(e){return"#"===e.charAt(0)&&"!"===e.charAt(1)?"//"+e.slice(2):e},fo=1e3,go=60*fo,mo=60*go,yo=24*mo,vo=7*yo,ho=365.25*yo,Do=function(e,t){t=t||{};var r=typeof e;if("string"===r&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*ho;case"weeks":case"week":case"w":return r*vo;case"days":case"day":case"d":return r*yo;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mo;case"minutes":case"minute":case"mins":case"min":case"m":return r*go;case"seconds":case"second":case"secs":case"sec":case"s":return r*fo;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}(e);if("number"===r&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=yo)return xo(e,t,yo,"day");if(t>=mo)return xo(e,t,mo,"hour");if(t>=go)return xo(e,t,go,"minute");if(t>=fo)return xo(e,t,fo,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=yo)return Math.round(e/yo)+"d";if(t>=mo)return Math.round(e/mo)+"h";if(t>=go)return Math.round(e/go)+"m";if(t>=fo)return Math.round(e/fo)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function xo(e,t,r,n){var i=t>=1.5*r;return Math.round(e/r)+" "+n+(i?"s":"")}var bo=function(e){function t(e){let n,i=null;function a(...e){if(!a.enabled)return;const r=a,i=Number(new Date),o=i-(n||i);r.diff=o,r.prev=n,r.curr=i,n=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,i)=>{if("%%"===n)return"%";s++;const a=t.formatters[i];if("function"==typeof a){const t=e[s];n=a.call(r,t),e.splice(s,1),s--}return n})),t.formatArgs.call(r,e);(r.log||t.log).apply(r,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=r,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null===i?t.enabled(e):i,set:e=>{i=e}}),"function"==typeof t.init&&t.init(a),a}function r(e,r){const n=t(this.namespace+(void 0===r?":":r)+e);return n.log=this.log,n}function n(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(n),...t.skips.map(n).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.names=[],t.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length;for(r=0;r{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t{"%%"!==e&&(n++,"%c"===e&&(i=n))})),t.splice(i,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}!e&&void 0!==ar&&"env"in ar&&(e=ar.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=bo(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}));function Eo(){return!1}function To(){throw new Error("tty.ReadStream is not implemented")}function Co(){throw new Error("tty.ReadStream is not implemented")}var ko={isatty:Eo,ReadStream:To,WriteStream:Co},Ao=Object.freeze({__proto__:null,isatty:Eo,ReadStream:To,WriteStream:Co,default:ko}),Fo=[],No=[],Po="undefined"!=typeof Uint8Array?Uint8Array:Array,wo=!1;function Io(){wo=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t>18&63]+Fo[i>>12&63]+Fo[i>>6&63]+Fo[63&i]);return a.join("")}function Mo(e){var t;wo||Io();for(var r=e.length,n=r%3,i="",a=[],o=16383,s=0,c=r-n;sc?c:s+o));return 1===n?(t=e[r-1],i+=Fo[t>>2],i+=Fo[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=Fo[t>>10],i+=Fo[t>>4&63],i+=Fo[t<<2&63],i+="="),a.push(i),a.join("")}function Lo(e,t,r,n,i){var a,o,s=8*i-n-1,c=(1<>1,l=-7,d=r?i-1:0,_=r?-1:1,p=e[t+d];for(d+=_,a=p&(1<<-l)-1,p>>=-l,l+=s;l>0;a=256*a+e[t+d],d+=_,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=n;l>0;o=256*o+e[t+d],d+=_,l-=8);if(0===a)a=1-u;else{if(a===c)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=u}return(p?-1:1)*o*Math.pow(2,a-n)}function Ro(e,t,r,n,i,a){var o,s,c,u=8*a-i-1,l=(1<>1,_=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,f=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+d>=1?_/c:_*Math.pow(2,1-d))*c>=2&&(o++,c/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*c-1)*Math.pow(2,i),o+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=255&s,p+=f,s/=256,i-=8);for(o=o<0;e[r+p]=255&o,p+=f,o/=256,u-=8);e[r+p-f]|=128*g}var Bo={}.toString,jo=Array.isArray||function(e){return"[object Array]"==Bo.call(e)};Uo.TYPED_ARRAY_SUPPORT=void 0===Mt.TYPED_ARRAY_SUPPORT||Mt.TYPED_ARRAY_SUPPORT;var Jo=Ko();function Ko(){return Uo.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function zo(e,t){if(Ko()=Ko())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Ko().toString(16)+" bytes");return 0|e}function Yo(e){return!(null==e||!e._isBuffer)}function Xo(e,t){if(Yo(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return bs(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Ss(e).length;default:if(n)return bs(e).length;t=(""+t).toLowerCase(),n=!0}}function $o(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return ds(this,t,r);case"utf8":case"utf-8":return cs(this,t,r);case"ascii":return us(this,t,r);case"latin1":case"binary":return ls(this,t,r);case"base64":return ss(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _s(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function Qo(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function Zo(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=Uo.from(t,n)),Yo(t))return 0===t.length?-1:es(e,t,r,n,i);if("number"==typeof t)return t&=255,Uo.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):es(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function es(e,t,r,n,i){var a,o=1,s=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;o=2,s/=2,c/=2,r/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(a=r;as&&(r=s-c),a=r;a>=0;a--){for(var d=!0,_=0;_i&&(n=i):n=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(t,e.length-r),e,r,n)}function ss(e,t,r){return 0===t&&r===e.length?Mo(e):Mo(e.slice(t,r))}function cs(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:u>223?3:u>191?2:1;if(i+d<=r)switch(d){case 1:u<128&&(l=u);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&u)<<6|63&a)>127&&(l=c);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(c=(15&u)<<12|(63&a)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(c=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,d=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},Uo.prototype.compare=function(e,t,r,n,i){if(!Yo(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(n>>>=0),o=(r>>>=0)-(t>>>=0),s=Math.min(a,o),c=this.slice(n,i),u=e.slice(t,r),l=0;li)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return ts(this,e,t,r);case"utf8":case"utf-8":return rs(this,e,t,r);case"ascii":return ns(this,e,t,r);case"latin1":case"binary":return is(this,e,t,r);case"base64":return as(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return os(this,e,t,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},Uo.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function us(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",a=t;ar)throw new RangeError("Trying to access beyond buffer length")}function fs(e,t,r,n,i,a){if(!Yo(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function gs(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function ms(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function ys(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function vs(e,t,r,n,i){return i||ys(e,0,r,4),Ro(e,t,r,n,23,4),r+4}function hs(e,t,r,n,i){return i||ys(e,0,r,8),Ro(e,t,r,n,52,8),r+8}Uo.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},Uo.prototype.readUInt8=function(e,t){return t||ps(e,1,this.length),this[e]},Uo.prototype.readUInt16LE=function(e,t){return t||ps(e,2,this.length),this[e]|this[e+1]<<8},Uo.prototype.readUInt16BE=function(e,t){return t||ps(e,2,this.length),this[e]<<8|this[e+1]},Uo.prototype.readUInt32LE=function(e,t){return t||ps(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Uo.prototype.readUInt32BE=function(e,t){return t||ps(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Uo.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||ps(e,t,this.length);for(var n=this[e],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*t)),n},Uo.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||ps(e,t,this.length);for(var n=t,i=1,a=this[e+--n];n>0&&(i*=256);)a+=this[e+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},Uo.prototype.readInt8=function(e,t){return t||ps(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Uo.prototype.readInt16LE=function(e,t){t||ps(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},Uo.prototype.readInt16BE=function(e,t){t||ps(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},Uo.prototype.readInt32LE=function(e,t){return t||ps(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Uo.prototype.readInt32BE=function(e,t){return t||ps(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Uo.prototype.readFloatLE=function(e,t){return t||ps(e,4,this.length),Lo(this,e,!0,23,4)},Uo.prototype.readFloatBE=function(e,t){return t||ps(e,4,this.length),Lo(this,e,!1,23,4)},Uo.prototype.readDoubleLE=function(e,t){return t||ps(e,8,this.length),Lo(this,e,!0,52,8)},Uo.prototype.readDoubleBE=function(e,t){return t||ps(e,8,this.length),Lo(this,e,!1,52,8)},Uo.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||fs(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+i]=e/a&255;return t+r},Uo.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,1,255,0),Uo.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Uo.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,2,65535,0),Uo.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):gs(this,e,t,!0),t+2},Uo.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,2,65535,0),Uo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):gs(this,e,t,!1),t+2},Uo.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,4,4294967295,0),Uo.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):ms(this,e,t,!0),t+4},Uo.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,4,4294967295,0),Uo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):ms(this,e,t,!1),t+4},Uo.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);fs(this,e,t,r,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a>0)-s&255;return t+r},Uo.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);fs(this,e,t,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+r},Uo.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,1,127,-128),Uo.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Uo.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,2,32767,-32768),Uo.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):gs(this,e,t,!0),t+2},Uo.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,2,32767,-32768),Uo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):gs(this,e,t,!1),t+2},Uo.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,4,2147483647,-2147483648),Uo.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):ms(this,e,t,!0),t+4},Uo.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||fs(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Uo.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):ms(this,e,t,!1),t+4},Uo.prototype.writeFloatLE=function(e,t,r){return vs(this,e,t,!0,r)},Uo.prototype.writeFloatBE=function(e,t,r){return vs(this,e,t,!1,r)},Uo.prototype.writeDoubleLE=function(e,t,r){return hs(this,e,t,!0,r)},Uo.prototype.writeDoubleBE=function(e,t,r){return hs(this,e,t,!1,r)},Uo.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(a<1e3||!Uo.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(a=t;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function Ss(e){return function(e){var t,r,n,i,a,o;wo||Io();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a="="===e[s-2]?2:"="===e[s-1]?1:0,o=new Po(3*s/4-a),n=a>0?s-4:s;var c=0;for(t=0,r=0;t>16&255,o[c++]=i>>8&255,o[c++]=255&i;return 2===a?(i=No[e.charCodeAt(t)]<<2|No[e.charCodeAt(t+1)]>>4,o[c++]=255&i):1===a&&(i=No[e.charCodeAt(t)]<<10|No[e.charCodeAt(t+1)]<<4|No[e.charCodeAt(t+2)]>>2,o[c++]=i>>8&255,o[c++]=255&i),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Ds,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Es(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Ts(e){return null!=e&&(!!e._isBuffer||Cs(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Cs(e.slice(0,0))}(e))}function Cs(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var ks=Object.freeze({__proto__:null,Buffer:Uo,INSPECT_MAX_BYTES:50,SlowBuffer:function(e){return+e!=e&&(e=0),Uo.alloc(+e)},isBuffer:Ts,kMaxLength:Jo}),As="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},Fs=/%[sdj%]/g;function Ns(e){if(!Ws(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}})),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),zs(t)?r.showHidden=t:t&&sc(r,t),Gs(r.showHidden)&&(r.showHidden=!1),Gs(r.depth)&&(r.depth=2),Gs(r.colors)&&(r.colors=!1),Gs(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=Ls),Bs(r,e,r.depth)}function Ls(e,t){var r=Ms.styles[t];return r?"\x1b["+Ms.colors[r][0]+"m"+e+"\x1b["+Ms.colors[r][1]+"m":e}function Rs(e,t){return e}function Bs(e,t,r){if(e.customInspect&&t&&Zs(t.inspect)&&t.inspect!==Ms&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return Ws(n)||(n=Bs(e,n,r)),n}var i=function(e,t){if(Gs(t))return e.stylize("undefined","undefined");if(Ws(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(qs(t))return e.stylize(""+t,"number");if(zs(t))return e.stylize(""+t,"boolean");if(Us(t))return e.stylize("null","null")}(e,t);if(i)return i;var a=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,r){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),Qs(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return js(t);if(0===a.length){if(Zs(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Ys(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if($s(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Qs(t))return js(t)}var c,u="",l=!1,d=["{","}"];(Ks(t)&&(l=!0,d=["[","]"]),Zs(t))&&(u=" [Function"+(t.name?": "+t.name:"")+"]");return Ys(t)&&(u=" "+RegExp.prototype.toString.call(t)),$s(t)&&(u=" "+Date.prototype.toUTCString.call(t)),Qs(t)&&(u=" "+js(t)),0!==a.length||l&&0!=t.length?r<0?Ys(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=l?function(e,t,r,n,i){for(var a=[],o=0,s=t.length;o60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,u,d)):d[0]+u+d[1]}function js(e){return"["+Error.prototype.toString.call(e)+"]"}function Js(e,t,r,n,i,a){var o,s,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),cc(n,i)||(o="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(s=Us(r)?Bs(e,c.value,null):Bs(e,c.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),Gs(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function Ks(e){return Array.isArray(e)}function zs(e){return"boolean"==typeof e}function Us(e){return null===e}function Vs(e){return null==e}function qs(e){return"number"==typeof e}function Ws(e){return"string"==typeof e}function Hs(e){return"symbol"==typeof e}function Gs(e){return void 0===e}function Ys(e){return Xs(e)&&"[object RegExp]"===rc(e)}function Xs(e){return"object"==typeof e&&null!==e}function $s(e){return Xs(e)&&"[object Date]"===rc(e)}function Qs(e){return Xs(e)&&("[object Error]"===rc(e)||e instanceof Error)}function Zs(e){return"function"==typeof e}function ec(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function tc(e){return Uo.isBuffer(e)}function rc(e){return Object.prototype.toString.call(e)}function nc(e){return e<10?"0"+e.toString(10):e.toString(10)}Ms.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Ms.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var ic=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ac(){var e=new Date,t=[nc(e.getHours()),nc(e.getMinutes()),nc(e.getSeconds())].join(":");return[e.getDate(),ic[e.getMonth()],t].join(" ")}function oc(){console.log("%s - %s",ac(),Ns.apply(null,arguments))}function sc(e,t){if(!t||!Xs(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function cc(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var uc={inherits:As,_extend:sc,log:oc,isBuffer:tc,isPrimitive:ec,isFunction:Zs,isError:Qs,isDate:$s,isObject:Xs,isRegExp:Ys,isUndefined:Gs,isSymbol:Hs,isString:Ws,isNumber:qs,isNullOrUndefined:Vs,isNull:Us,isBoolean:zs,isArray:Ks,inspect:Ms,deprecate:Ps,format:Ns,debuglog:Os},lc=Object.freeze({__proto__:null,format:Ns,deprecate:Ps,debuglog:Os,inspect:Ms,isArray:Ks,isBoolean:zs,isNull:Us,isNullOrUndefined:Vs,isNumber:qs,isString:Ws,isSymbol:Hs,isUndefined:Gs,isRegExp:Ys,isObject:Xs,isDate:$s,isError:Qs,isFunction:Zs,isPrimitive:ec,isBuffer:tc,log:oc,inherits:As,_extend:sc,default:uc}),dc=(e,t=ar.argv)=>{const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return-1!==n&&(-1===i||n=2,has16m:e>=3}}function mc(e,t){if(0===fc)return 0;if(dc("color=16m")||dc("color=full")||dc("color=truecolor"))return 3;if(dc("color=256"))return 2;if(e&&!t&&void 0===fc)return 0;const r=fc||0;if("dumb"===pc.TERM)return r;if("CI"in pc)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in pc))||"codeship"===pc.CI_NAME?1:r;if("TEAMCITY_VERSION"in pc)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(pc.TEAMCITY_VERSION)?1:0;if("truecolor"===pc.COLORTERM)return 3;if("TERM_PROGRAM"in pc){const e=parseInt((pc.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(pc.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(pc.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(pc.TERM)||"COLORTERM"in pc?1:r}dc("no-color")||dc("no-colors")||dc("color=false")||dc("color=never")?fc=0:(dc("color")||dc("colors")||dc("color=true")||dc("color=always"))&&(fc=1),"FORCE_COLOR"in pc&&(fc="true"===pc.FORCE_COLOR?1:"false"===pc.FORCE_COLOR?0:0===pc.FORCE_COLOR.length?1:Math.min(parseInt(pc.FORCE_COLOR,10),3));var yc={supportsColor:function(e){return gc(mc(e,e&&e.isTTY))},stdout:gc(mc(!0,_c.isatty(1))),stderr:gc(mc(!0,_c.isatty(2)))},vc=p(lc),hc=f((function(e,t){t.init=function(e){e.inspectOpts={};const r=Object.keys(t.inspectOpts);for(let n=0;n{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=yc;e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(ar.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const r=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let n=ar.env[t];return n=!!/^(yes|on|true|enabled)$/i.test(n)||!/^(no|off|false|disabled)$/i.test(n)&&("null"===n?null:Number(n)),e[r]=n,e}),{}),e.exports=bo(t);const{formatters:r}=e.exports;r.o=function(e){return this.inspectOpts.colors=this.useColors,vc.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,vc.inspect(e,this.inspectOpts)}})),Dc=f((function(e){void 0===ar||"renderer"===ar.type||!0===ar.browser||ar.__nwjs?e.exports=So:e.exports=hc})),xc={"{":"}","(":")","[":"]"},bc=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,Sc=/\\(.)|(^!|[*?{}()[\]]|\(\?)/,Ec=function(e,t){if("string"!=typeof e||""===e)return!1;if(function(e){if("string"!=typeof e||""===e)return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}(e))return!0;var r,n=bc;for(t&&!1===t.strict&&(n=Sc);r=n.exec(e);){if(r[2])return!0;var i=r.index+r[0].length,a=r[1],o=a?xc[a]:null;if(a&&o){var s=e.indexOf(o,i);-1!==s&&(i=s+1)}e=e.slice(i)}return!1};const{MAX_LENGTH:Tc}=sr,{re:Cc,t:kc}=cr;var Ac=(e,t)=>{if(t=lr(t),e instanceof Dr)return e;if("string"!=typeof e)return null;if(e.length>Tc)return null;if(!(t.loose?Cc[kc.LOOSE]:Cc[kc.FULL]).test(e))return null;try{return new Dr(e,t)}catch(e){return null}};var Fc=(e,t)=>{const r=Ac(e,t);return r?r.version:null};var Nc=(e,t)=>{const r=Ac(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};var Pc=(e,t,r,n)=>{"string"==typeof r&&(n=r,r=void 0);try{return new Dr(e,r).inc(t,n).version}catch(e){return null}};var wc=(e,t,r)=>0===xr(e,t,r);var Ic=(e,t)=>{if(wc(e,t))return null;{const r=Ac(e),n=Ac(t),i=r.prerelease.length||n.prerelease.length,a=i?"pre":"",o=i?"prerelease":"";for(const e in r)if(("major"===e||"minor"===e||"patch"===e)&&r[e]!==n[e])return a+e;return o}};var Oc=(e,t)=>new Dr(e,t).major;var Mc=(e,t)=>new Dr(e,t).minor;var Lc=(e,t)=>new Dr(e,t).patch;var Rc=(e,t)=>{const r=Ac(e,t);return r&&r.prerelease.length?r.prerelease:null};var Bc=(e,t,r)=>xr(t,e,r);var jc=(e,t)=>xr(e,t,!0);var Jc=(e,t,r)=>{const n=new Dr(e,r),i=new Dr(t,r);return n.compare(i)||n.compareBuild(i)};var Kc=(e,t)=>e.sort(((e,r)=>Jc(e,r,t)));var zc=(e,t)=>e.sort(((e,r)=>Jc(r,e,t)));var Uc=(e,t,r)=>xr(e,t,r)>0;var Vc=(e,t,r)=>0!==xr(e,t,r);var qc=(e,t,r)=>xr(e,t,r)<=0;var Wc=(e,t,r,n)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return wc(e,r,n);case"!=":return Vc(e,r,n);case">":return Uc(e,r,n);case">=":return Sr(e,r,n);case"<":return br(e,r,n);case"<=":return qc(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};const{re:Hc,t:Gc}=cr;var Yc=(e,t)=>{if(e instanceof Dr)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=Hc[Gc.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&t.index+t[0].length===r.index+r[0].length||(r=t),Hc[Gc.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;Hc[Gc.COERCERTL].lastIndex=-1}else r=e.match(Hc[Gc.COERCE]);return null===r?null:Ac(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)},Xc=$c;function $c(e){var t=this;if(t instanceof $c||(t=new $c),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,n=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},$c.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},$c.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},$c.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},$c.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var r=new $c;if(tthis.length&&(t=this.length);for(var n=0,i=this.head;null!==i&&nthis.length&&(t=this.length);for(var n=this.length,i=this.tail;null!==i&&n>t;n--)i=i.prev;for(;null!==i&&n>e;n--,i=i.prev)r.push(i.value);return r},$c.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var n=0,i=this.head;null!==i&&n1;const pu=(e,t,r)=>{const n=e[lu].get(t);if(n){const t=n.value;if(fu(e,t)){if(mu(e,n),!e[au])return}else r&&(e[du]&&(n.value.now=Date.now()),e[uu].unshiftNode(n));return t.value}},fu=(e,t)=>{if(!t||!t.maxAge&&!e[ou])return!1;const r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[ou]&&r>e[ou]},gu=e=>{if(e[nu]>e[ru])for(let t=e[uu].tail;e[nu]>e[ru]&&null!==t;){const r=t.prev;mu(e,t),t=r}},mu=(e,t)=>{if(t){const r=t.value;e[su]&&e[su](r.key,r.value),e[nu]-=r.length,e[lu].delete(r.key),e[uu].removeNode(t)}};class yu{constructor(e,t,r,n,i){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=i||0}}const vu=(e,t,r,n)=>{let i=r.value;fu(e,i)&&(mu(e,r),e[au]||(i=void 0)),i&&t.call(n,i.value,i.key,e)};var hu=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[ru]=e.max||1/0;const t=e.length||_u;if(this[iu]="function"!=typeof t?_u:t,this[au]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[ou]=e.maxAge||0,this[su]=e.dispose,this[cu]=e.noDisposeOnSet||!1,this[du]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[ru]=e||1/0,gu(this)}get max(){return this[ru]}set allowStale(e){this[au]=!!e}get allowStale(){return this[au]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[ou]=e,gu(this)}get maxAge(){return this[ou]}set lengthCalculator(e){"function"!=typeof e&&(e=_u),e!==this[iu]&&(this[iu]=e,this[nu]=0,this[uu].forEach((e=>{e.length=this[iu](e.value,e.key),this[nu]+=e.length}))),gu(this)}get lengthCalculator(){return this[iu]}get length(){return this[nu]}get itemCount(){return this[uu].length}rforEach(e,t){t=t||this;for(let r=this[uu].tail;null!==r;){const n=r.prev;vu(this,e,r,t),r=n}}forEach(e,t){t=t||this;for(let r=this[uu].head;null!==r;){const n=r.next;vu(this,e,r,t),r=n}}keys(){return this[uu].toArray().map((e=>e.key))}values(){return this[uu].toArray().map((e=>e.value))}reset(){this[su]&&this[uu]&&this[uu].length&&this[uu].forEach((e=>this[su](e.key,e.value))),this[lu]=new Map,this[uu]=new Xc,this[nu]=0}dump(){return this[uu].map((e=>!fu(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[uu]}set(e,t,r){if((r=r||this[ou])&&"number"!=typeof r)throw new TypeError("maxAge must be a number");const n=r?Date.now():0,i=this[iu](t,e);if(this[lu].has(e)){if(i>this[ru])return mu(this,this[lu].get(e)),!1;const a=this[lu].get(e).value;return this[su]&&(this[cu]||this[su](e,a.value)),a.now=n,a.maxAge=r,a.value=t,this[nu]+=i-a.length,a.length=i,this.get(e),gu(this),!0}const a=new yu(e,t,i,n,r);return a.length>this[ru]?(this[su]&&this[su](e,t),!1):(this[nu]+=a.length,this[uu].unshift(a),this[lu].set(e,this[uu].head),gu(this),!0)}has(e){if(!this[lu].has(e))return!1;const t=this[lu].get(e).value;return!fu(this,t)}get(e){return pu(this,e,!0)}peek(e){return pu(this,e,!1)}pop(){const e=this[uu].tail;return e?(mu(this,e),e.value):null}del(e){mu(this,this[lu].get(e))}load(e){this.reset();const t=Date.now();for(let r=e.length-1;r>=0;r--){const n=e[r],i=n.e||0;if(0===i)this.set(n.k,n.v);else{const e=i-t;e>0&&this.set(n.k,n.v,e)}}}prune(){this[lu].forEach(((e,t)=>pu(this,t,!1)))}};class Du{constructor(e,t){if(t=lr(t),e instanceof Du)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Du(e.raw,t);if(e instanceof qu)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}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!Au(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&Fu(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,r=bu.get(t);if(r)return r;const n=this.options.loose,i=n?Su[Eu.HYPHENRANGELOOSE]:Su[Eu.HYPHENRANGE];e=e.replace(i,Ku(this.options.includePrerelease)),or("hyphen replace",e),e=e.replace(Su[Eu.COMPARATORTRIM],Tu),or("comparator trim",e,Su[Eu.COMPARATORTRIM]),e=(e=(e=e.replace(Su[Eu.TILDETRIM],Cu)).replace(Su[Eu.CARETTRIM],ku)).split(/\s+/).join(" ");const a=n?Su[Eu.COMPARATORLOOSE]:Su[Eu.COMPARATOR],o=e.split(" ").map((e=>Pu(e,this.options))).join(" ").split(/\s+/).map((e=>Ju(e,this.options))).filter(this.options.loose?e=>!!e.match(a):()=>!0).map((e=>new qu(e,this.options)));o.length;const s=new Map;for(const e of o){if(Au(e))return[e];s.set(e.value,e)}s.size>1&&s.has("")&&s.delete("");const c=[...s.values()];return bu.set(t,c),c}intersects(e,t){if(!(e instanceof Du))throw new TypeError("a Range is required");return this.set.some((r=>Nu(r,t)&&e.set.some((e=>Nu(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 Dr(e,this.options)}catch(e){return!1}for(let t=0;t"<0.0.0-0"===e.value,Fu=e=>""===e.value,Nu=(e,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},Pu=(e,t)=>(or("comp",e,t),e=Mu(e,t),or("caret",e),e=Iu(e,t),or("tildes",e),e=Ru(e,t),or("xrange",e),e=ju(e,t),or("stars",e),e),wu=e=>!e||"x"===e.toLowerCase()||"*"===e,Iu=(e,t)=>e.trim().split(/\s+/).map((e=>Ou(e,t))).join(" "),Ou=(e,t)=>{const r=t.loose?Su[Eu.TILDELOOSE]:Su[Eu.TILDE];return e.replace(r,((t,r,n,i,a)=>{let o;return or("tilde",e,t,r,n,i,a),wu(r)?o="":wu(n)?o=`>=${r}.0.0 <${+r+1}.0.0-0`:wu(i)?o=`>=${r}.${n}.0 <${r}.${+n+1}.0-0`:a?(or("replaceTilde pr",a),o=`>=${r}.${n}.${i}-${a} <${r}.${+n+1}.0-0`):o=`>=${r}.${n}.${i} <${r}.${+n+1}.0-0`,or("tilde return",o),o}))},Mu=(e,t)=>e.trim().split(/\s+/).map((e=>Lu(e,t))).join(" "),Lu=(e,t)=>{or("caret",e,t);const r=t.loose?Su[Eu.CARETLOOSE]:Su[Eu.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,((t,r,i,a,o)=>{let s;return or("caret",e,t,r,i,a,o),wu(r)?s="":wu(i)?s=`>=${r}.0.0${n} <${+r+1}.0.0-0`:wu(a)?s="0"===r?`>=${r}.${i}.0${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.0${n} <${+r+1}.0.0-0`:o?(or("replaceCaret pr",o),s="0"===r?"0"===i?`>=${r}.${i}.${a}-${o} <${r}.${i}.${+a+1}-0`:`>=${r}.${i}.${a}-${o} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${a}-${o} <${+r+1}.0.0-0`):(or("no pr"),s="0"===r?"0"===i?`>=${r}.${i}.${a}${n} <${r}.${i}.${+a+1}-0`:`>=${r}.${i}.${a}${n} <${r}.${+i+1}.0-0`:`>=${r}.${i}.${a} <${+r+1}.0.0-0`),or("caret return",s),s}))},Ru=(e,t)=>(or("replaceXRanges",e,t),e.split(/\s+/).map((e=>Bu(e,t))).join(" ")),Bu=(e,t)=>{e=e.trim();const r=t.loose?Su[Eu.XRANGELOOSE]:Su[Eu.XRANGE];return e.replace(r,((r,n,i,a,o,s)=>{or("xRange",e,r,n,i,a,o,s);const c=wu(i),u=c||wu(a),l=u||wu(o),d=l;return"="===n&&d&&(n=""),s=t.includePrerelease?"-0":"",c?r=">"===n||"<"===n?"<0.0.0-0":"*":n&&d?(u&&(a=0),o=0,">"===n?(n=">=",u?(i=+i+1,a=0,o=0):(a=+a+1,o=0)):"<="===n&&(n="<",u?i=+i+1:a=+a+1),"<"===n&&(s="-0"),r=`${n+i}.${a}.${o}${s}`):u?r=`>=${i}.0.0${s} <${+i+1}.0.0-0`:l&&(r=`>=${i}.${a}.0${s} <${i}.${+a+1}.0-0`),or("xRange return",r),r}))},ju=(e,t)=>(or("replaceStars",e,t),e.trim().replace(Su[Eu.STAR],"")),Ju=(e,t)=>(or("replaceGTE0",e,t),e.trim().replace(Su[t.includePrerelease?Eu.GTE0PRE:Eu.GTE0],"")),Ku=e=>(t,r,n,i,a,o,s,c,u,l,d,_,p)=>`${r=wu(n)?"":wu(i)?`>=${n}.0.0${e?"-0":""}`:wu(a)?`>=${n}.${i}.0${e?"-0":""}`:o?`>=${r}`:`>=${r}${e?"-0":""}`} ${c=wu(u)?"":wu(l)?`<${+u+1}.0.0-0`:wu(d)?`<${u}.${+l+1}.0-0`:_?`<=${u}.${l}.${d}-${_}`:e?`<${u}.${l}.${+d+1}-0`:`<=${c}`}`.trim(),zu=(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},Uu=Symbol("SemVer ANY");class Vu{static get ANY(){return Uu}constructor(e,t){if(t=lr(t),e instanceof Vu){if(e.loose===!!t.loose)return e;e=e.value}or("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Uu?this.value="":this.value=this.operator+this.semver.version,or("comp",this)}parse(e){const t=this.options.loose?Wu[Hu.COMPARATORLOOSE]:Wu[Hu.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 Dr(r[2],this.options.loose):this.semver=Uu}toString(){return this.value}test(e){if(or("Comparator.test",e,this.options.loose),this.semver===Uu||e===Uu)return!0;if("string"==typeof e)try{e=new Dr(e,this.options)}catch(e){return!1}return Wc(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vu))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new xu(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new xu(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),i=this.semver.version===e.semver.version,a=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),o=Wc(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),s=Wc(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return r||n||i&&a||o||s}}var qu=Vu;const{re:Wu,t:Hu}=cr;var Gu=(e,t,r)=>{try{t=new xu(t,r)}catch(e){return!1}return t.test(e)};var Yu=(e,t)=>new xu(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")));var Xu=(e,t,r)=>{let n=null,i=null,a=null;try{a=new xu(t,r)}catch(e){return null}return e.forEach((e=>{a.test(e)&&(n&&-1!==i.compare(e)||(n=e,i=new Dr(n,r)))})),n};var $u=(e,t,r)=>{let n=null,i=null,a=null;try{a=new xu(t,r)}catch(e){return null}return e.forEach((e=>{a.test(e)&&(n&&1!==i.compare(e)||(n=e,i=new Dr(n,r)))})),n};var Qu=(e,t)=>{e=new xu(e,t);let r=new Dr("0.0.0");if(e.test(r))return r;if(r=new Dr("0.0.0-0"),e.test(r))return r;r=null;for(let t=0;t{const t=new Dr(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!Uc(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!i||r&&!Uc(r,i)||(r=i)}return r&&e.test(r)?r:null};var Zu=(e,t)=>{try{return new xu(e,t).range||"*"}catch(e){return null}};const{ANY:el}=qu;var tl=(e,t,r,n)=>{let i,a,o,s,c;switch(e=new Dr(e,n),t=new xu(t,n),r){case">":i=Uc,a=qc,o=br,s=">",c=">=";break;case"<":i=br,a=Sr,o=Uc,s="<",c="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Gu(e,t,n))return!1;for(let r=0;r{e.semver===el&&(e=new qu(">=0.0.0")),l=l||e,d=d||e,i(e.semver,l.semver,n)?l=e:o(e.semver,d.semver,n)&&(d=e)})),l.operator===s||l.operator===c)return!1;if((!d.operator||d.operator===s)&&a(e,d.semver))return!1;if(d.operator===c&&o(e,d.semver))return!1}return!0};var rl=(e,t,r)=>tl(e,t,">",r);var nl=(e,t,r)=>tl(e,t,"<",r);var il=(e,t,r)=>(e=new xu(e,r),t=new xu(t,r),e.intersects(t));const{ANY:al}=qu,ol=(e,t,r)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===al){if(1===t.length&&t[0].semver===al)return!0;e=r.includePrerelease?[new qu(">=0.0.0-0")]:[new qu(">=0.0.0")]}if(1===t.length&&t[0].semver===al){if(r.includePrerelease)return!0;t=[new qu(">=0.0.0")]}const n=new Set;let i,a,o,s,c,u,l;for(const t of e)">"===t.operator||">="===t.operator?i=sl(i,t,r):"<"===t.operator||"<="===t.operator?a=cl(a,t,r):n.add(t.semver);if(n.size>1)return null;if(i&&a){if(o=xr(i.semver,a.semver,r),o>0)return null;if(0===o&&(">="!==i.operator||"<="!==a.operator))return null}for(const e of n){if(i&&!Gu(e,String(i),r))return null;if(a&&!Gu(e,String(a),r))return null;for(const n of t)if(!Gu(e,String(n),r))return!1;return!0}let d=!(!a||r.includePrerelease||!a.semver.prerelease.length)&&a.semver,_=!(!i||r.includePrerelease||!i.semver.prerelease.length)&&i.semver;d&&1===d.prerelease.length&&"<"===a.operator&&0===d.prerelease[0]&&(d=!1);for(const e of t){if(l=l||">"===e.operator||">="===e.operator,u=u||"<"===e.operator||"<="===e.operator,i)if(_&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===_.major&&e.semver.minor===_.minor&&e.semver.patch===_.patch&&(_=!1),">"===e.operator||">="===e.operator){if(s=sl(i,e,r),s===e&&s!==i)return!1}else if(">="===i.operator&&!Gu(i.semver,String(e),r))return!1;if(a)if(d&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===d.major&&e.semver.minor===d.minor&&e.semver.patch===d.patch&&(d=!1),"<"===e.operator||"<="===e.operator){if(c=cl(a,e,r),c===e&&c!==a)return!1}else if("<="===a.operator&&!Gu(a.semver,String(e),r))return!1;if(!e.operator&&(a||i)&&0!==o)return!1}return!(i&&u&&!a&&0!==o)&&(!(a&&l&&!i&&0!==o)&&(!_&&!d))},sl=(e,t,r)=>{if(!e)return t;const n=xr(e.semver,t.semver,r);return n>0?e:n<0||">"===t.operator&&">="===e.operator?t:e},cl=(e,t,r)=>{if(!e)return t;const n=xr(e.semver,t.semver,r);return n<0?e:n>0||"<"===t.operator&&"<="===e.operator?t:e};var ul=(e,t,r={})=>{if(e===t)return!0;e=new xu(e,r),t=new xu(t,r);let n=!1;e:for(const i of e.set){for(const e of t.set){const t=ol(i,e,r);if(n=n||null!==t,t)continue e}if(n)return!1}return!0},ll={re:cr.re,src:cr.src,tokens:cr.t,SEMVER_SPEC_VERSION:sr.SEMVER_SPEC_VERSION,SemVer:Dr,compareIdentifiers:pr.compareIdentifiers,rcompareIdentifiers:pr.rcompareIdentifiers,parse:Ac,valid:Fc,clean:Nc,inc:Pc,diff:Ic,major:Oc,minor:Mc,patch:Lc,prerelease:Rc,compare:xr,rcompare:Bc,compareLoose:jc,compareBuild:Jc,sort:Kc,rsort:zc,gt:Uc,lt:br,eq:wc,neq:Vc,gte:Sr,lte:qc,cmp:Wc,coerce:Yc,Comparator:qu,Range:xu,satisfies:Gu,toComparators:Yu,maxSatisfying:Xu,minSatisfying:$u,minVersion:Qu,validRange:Zu,outside:tl,gtr:rl,ltr:nl,intersects:il,simplifyRange:(e,t,r)=>{const n=[];let i=null,a=null;const o=e.sort(((e,t)=>xr(e,t,r)));for(const e of o){Gu(e,t,r)?(a=e,i||(i=e)):(a&&n.push([i,a]),a=null,i=null)}i&&n.push([i,null]);const s=[];for(const[e,t]of n)e===t?s.push(e):t||e!==o[0]?t?e===o[0]?s.push(`<=${t}`):s.push(`${e} - ${t}`):s.push(`>=${e}`):s.push("*");const c=s.join(" || "),u="string"==typeof t.raw?t.raw:String(t);return c.length=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var _l=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,pl=function(e){return _l.exec(e).slice(1)};function fl(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(e=n+"/"+e,t="/"===n.charAt(0))}return(t?"/":"")+(e=dl(Sl(e.split("/"),(function(e){return!!e})),!t).join("/"))||"."}function gl(e){var t=ml(e),r="/"===El(e,-1);return(e=dl(Sl(e.split("/"),(function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function ml(e){return"/"===e.charAt(0)}function yl(){var e=Array.prototype.slice.call(arguments,0);return gl(Sl(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))}function vl(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=fl(e).substr(1),t=fl(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),a=Math.min(n.length,i.length),o=a,s=0;s>>=5)>0&&(t|=32),r+=Fl(t)}while(n>0);return r},wl=function(e,t,r){var n,i,a,o,s=e.length,c=0,u=0;do{if(t>=s)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=Nl(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));n=!!(32&i),c+=(i&=31)<>1,1==(1&a)?-o:o),r.rest=t},Il=f((function(e,t){t.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function i(e){var t=e.match(r);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function a(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var r=e,n=i(e);if(n){if(!n.path)return e;r=n.path}for(var o,s=t.isAbsolute(r),c=r.split(/\/+/),u=0,l=c.length-1;l>=0;l--)"."===(o=c[l])?c.splice(l,1):".."===o?u++:u>0&&(""===o?(c.splice(l+1,u),u=0):(c.splice(l,2),u--));return""===(r=c.join("/"))&&(r=s?"/":"."),n?(n.path=r,a(n)):r}function s(e,t){""===e&&(e="."),""===t&&(t=".");var r=i(t),s=i(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),a(r);if(r||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,a(s);var c="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=c,a(s)):c}t.urlParse=i,t.urlGenerate=a,t.normalize=o,t.join=s,t.isAbsolute=function(e){return"/"===e.charAt(0)||r.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var c=!("__proto__"in Object.create(null));function u(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function d(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=c?u:function(e){return l(e)?"$"+e:e},t.fromSetString=c?u:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,r){var n=d(e.source,t.source);return 0!==n||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)||r||0!==(n=e.generatedColumn-t.generatedColumn)||0!==(n=e.generatedLine-t.generatedLine)?n:d(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!==(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=d(e.source,t.source))||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)?n:d(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!==(r=e.generatedColumn-t.generatedColumn)||0!==(r=d(e.source,t.source))||0!==(r=e.originalLine-t.originalLine)||0!==(r=e.originalColumn-t.originalColumn)?r:d(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var n=i(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var c=n.path.lastIndexOf("/");c>=0&&(n.path=n.path.substring(0,c+1))}t=s(a(n),t)}return o(t)}})),Ol=Object.prototype.hasOwnProperty,Ml="undefined"!=typeof Map;function Ll(){this._array=[],this._set=Ml?new Map:Object.create(null)}Ll.fromArray=function(e,t){for(var r=new Ll,n=0,i=e.length;n=0)return t}else{var r=Il.toSetString(e);if(Ol.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},Ll.prototype.at=function(e){if(e>=0&&en||i==n&&o>=a||Il.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},Bl.prototype.toArray=function(){return this._sorted||(this._array.sort(Il.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};var jl=Rl.ArraySet,Jl={MappingList:Bl}.MappingList;function Kl(e){e||(e={}),this._file=Il.getArg(e,"file",null),this._sourceRoot=Il.getArg(e,"sourceRoot",null),this._skipValidation=Il.getArg(e,"skipValidation",!1),this._sources=new jl,this._names=new jl,this._mappings=new Jl,this._sourcesContents=null}Kl.prototype._version=3,Kl.fromSourceMap=function(e){var t=e.sourceRoot,r=new Kl({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=Il.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){var i=n;null!==t&&(i=Il.relative(t,n)),r._sources.has(i)||r._sources.add(i);var a=e.sourceContentFor(n);null!=a&&r.setSourceContent(n,a)})),r},Kl.prototype.addMapping=function(e){var t=Il.getArg(e,"generated"),r=Il.getArg(e,"original",null),n=Il.getArg(e,"source",null),i=Il.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},Kl.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=Il.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[Il.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[Il.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},Kl.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var i=this._sourceRoot;null!=i&&(n=Il.relative(i,n));var a=new jl,o=new jl;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var s=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=s.source&&(t.source=s.source,null!=r&&(t.source=Il.join(r,t.source)),null!=i&&(t.source=Il.relative(i,t.source)),t.originalLine=s.line,t.originalColumn=s.column,null!=s.name&&(t.name=s.name))}var c=t.source;null==c||a.has(c)||a.add(c);var u=t.name;null==u||o.has(u)||o.add(u)}),this),this._sources=a,this._names=o,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=Il.join(r,t)),null!=i&&(t=Il.relative(i,t)),this.setSourceContent(t,n))}),this)},Kl.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},Kl.prototype._serializeMappings=function(){for(var e,t,r,n,i=0,a=1,o=0,s=0,c=0,u=0,l="",d=this._mappings.toArray(),_=0,p=d.length;_0){if(!Il.compareByGeneratedPositionsInflated(t,d[_-1]))continue;e+=","}e+=Pl(t.generatedColumn-i),i=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=Pl(n-u),u=n,e+=Pl(t.originalLine-1-s),s=t.originalLine-1,e+=Pl(t.originalColumn-o),o=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=Pl(r-c),c=r)),l+=e}return l},Kl.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=Il.relative(t,e));var r=Il.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},Kl.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},Kl.prototype.toString=function(){return JSON.stringify(this.toJSON())};var zl={SourceMapGenerator:Kl},Ul=f((function(e,t){function r(e,n,i,a,o,s){var c=Math.floor((n-e)/2)+e,u=o(i,a[c],!0);return 0===u?c:u>0?n-c>1?r(c,n,i,a,o,s):s==t.LEAST_UPPER_BOUND?n1?r(e,c,i,a,o,s):s==t.LEAST_UPPER_BOUND?c:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,i,a){if(0===n.length)return-1;var o=r(-1,n.length,e,n,i,a||t.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(n[o],n[o-1],!0);)--o;return o}}));function Vl(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function ql(e,t,r,n){if(r=0){var a=this._originalMappings[i];if(void 0===e.column)for(var o=a.originalLine;a&&a.originalLine===o;)n.push({line:Il.getArg(a,"generatedLine",null),column:Il.getArg(a,"generatedColumn",null),lastColumn:Il.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++i];else for(var s=a.originalColumn;a&&a.originalLine===t&&a.originalColumn==s;)n.push({line:Il.getArg(a,"generatedLine",null),column:Il.getArg(a,"generatedColumn",null),lastColumn:Il.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++i]}return n};var Yl=Gl;function Xl(e,t){var r=e;"string"==typeof e&&(r=Il.parseSourceMapInput(e));var n=Il.getArg(r,"version"),i=Il.getArg(r,"sources"),a=Il.getArg(r,"names",[]),o=Il.getArg(r,"sourceRoot",null),s=Il.getArg(r,"sourcesContent",null),c=Il.getArg(r,"mappings"),u=Il.getArg(r,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);o&&(o=Il.normalize(o)),i=i.map(String).map(Il.normalize).map((function(e){return o&&Il.isAbsolute(o)&&Il.isAbsolute(e)?Il.relative(o,e):e})),this._names=Wl.fromArray(a.map(String),!0),this._sources=Wl.fromArray(i,!0),this._absoluteSources=this._sources.toArray().map((function(e){return Il.computeSourceURL(o,e,t)})),this.sourceRoot=o,this.sourcesContent=s,this._mappings=c,this._sourceMapURL=t,this.file=u}function $l(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}Xl.prototype=Object.create(Gl.prototype),Xl.prototype.consumer=Gl,Xl.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=Il.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(t=0;t1&&(r.source=d+i[1],d+=i[1],r.originalLine=u+i[2],u=r.originalLine,r.originalLine+=1,r.originalColumn=l+i[3],l=r.originalColumn,i.length>4&&(r.name=_+i[4],_+=i[4])),v.push(r),"number"==typeof r.originalLine&&y.push(r)}Hl(v,Il.compareByGeneratedPositionsDeflated),this.__generatedMappings=v,Hl(y,Il.compareByOriginalPositions),this.__originalMappings=y},Xl.prototype._findMapping=function(e,t,r,n,i,a){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return Ul.search(e,t,i,a)},Xl.prototype.computeColumnSpans=function(){for(var e=0;e=0){var n=this._generatedMappings[r];if(n.generatedLine===t.generatedLine){var i=Il.getArg(n,"source",null);null!==i&&(i=this._sources.at(i),i=Il.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var a=Il.getArg(n,"name",null);return null!==a&&(a=this._names.at(a)),{source:i,line:Il.getArg(n,"originalLine",null),column:Il.getArg(n,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},Xl.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e})))},Xl.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var n,i=e;if(null!=this.sourceRoot&&(i=Il.relative(this.sourceRoot,i)),null!=this.sourceRoot&&(n=Il.urlParse(this.sourceRoot))){var a=i.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];if((!n.path||"/"==n.path)&&this._sources.has("/"+i))return this.sourcesContent[this._sources.indexOf("/"+i)]}if(t)return null;throw new Error('"'+i+'" is not in the SourceMap.')},Xl.prototype.generatedPositionFor=function(e){var t=Il.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:Il.getArg(e,"line"),originalColumn:Il.getArg(e,"column")},n=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",Il.compareByOriginalPositions,Il.getArg(e,"bias",Gl.GREATEST_LOWER_BOUND));if(n>=0){var i=this._originalMappings[n];if(i.source===r.source)return{line:Il.getArg(i,"generatedLine",null),column:Il.getArg(i,"generatedColumn",null),lastColumn:Il.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};var Ql=Xl;function Zl(e,t){var r=e;"string"==typeof e&&(r=Il.parseSourceMapInput(e));var n=Il.getArg(r,"version"),i=Il.getArg(r,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new Wl,this._names=new Wl;var a={line:-1,column:0};this._sections=i.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=Il.getArg(e,"offset"),n=Il.getArg(r,"line"),i=Il.getArg(r,"column");if(n=0;t--)this.prepend(e[t]);else{if(!e[nd]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},id.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r0){for(t=[],r=0;r>>=0;var n=e.byteLength-t;if(n<0)throw new RangeError("'offset' is out of bounds");if(void 0===r)r=n;else if((r>>>=0)>n)throw new RangeError("'length' is out of bounds");return sd?Uo.from(e.slice(t,t+r)):new Uo(new Uint8Array(e.slice(t,t+r)))}(e,t,r):"string"==typeof e?function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!Uo.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');return sd?Uo.from(e,t):new Uo(e,t)}(e,t):sd?Uo.from(e):new Uo(e);var n},ud=p(Tl),ld=p(Cl),dd=f((function(e,t){var r,n=ad.SourceMapConsumer,i=ud;try{(r=ld).existsSync&&r.readFileSync||(r=null)}catch(e){}function a(e,t){return e.require(t)}var o=!1,s=!1,c=!1,u="auto",l={},d={},_=/^data:application\/json[^,]+base64,/,p=[],f=[];function g(){return"browser"===u||"node"!==u&&("undefined"!=typeof window&&"function"==typeof XMLHttpRequest&&!(window.require&&window.module&&window.process&&"renderer"===window.process.type))}function m(e){return function(t){for(var r=0;r";var r=this.getLineNumber();if(null!=r){t+=":"+r;var n=this.getColumnNumber();n&&(t+=":"+n)}}var i="",a=this.getFunctionName(),o=!0,s=this.isConstructor();if(!(this.isToplevel()||s)){var c=this.getTypeName();"[object Object]"===c&&(c="null");var u=this.getMethodName();a?(c&&0!=a.indexOf(c)&&(i+=c+"."),i+=a,u&&a.indexOf("."+u)!=a.length-u.length-1&&(i+=" [as "+u+"]")):i+=c+"."+(u||"")}else s?i+="new "+(a||""):a?i+=a:(i+=t,o=!1);return o&&(i+=" ("+t+")"),i}function S(e){var t={};return Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(r){t[r]=/^(?:is|get)/.test(r)?function(){return e[r].call(e)}:e[r]})),t.toString=b,t}function E(e,t){if(void 0===t&&(t={nextPosition:null,curPosition:null}),e.isNative())return t.curPosition=null,e;var r=e.getFileName()||e.getScriptNameOrSourceURL();if(r){var n=e.getLineNumber(),i=e.getColumnNumber()-1,a=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/.test(ar.version)?0:62;1===n&&i>a&&!g()&&!e.isEval()&&(i-=a);var o=D({source:r,line:n,column:i});t.curPosition=o;var s=(e=S(e)).getFunctionName;return e.getFunctionName=function(){return null==t.nextPosition?s():t.nextPosition.name||s()},e.getFileName=function(){return o.source},e.getLineNumber=function(){return o.line},e.getColumnNumber=function(){return o.column+1},e.getScriptNameOrSourceURL=function(){return o.source},e}var c=e.isEval()&&e.getEvalOrigin();return c?(c=x(c),(e=S(e)).getEvalOrigin=function(){return c},e):e}function T(e,t){c&&(l={},d={});for(var r=(e.name||"Error")+": "+(e.message||""),n={nextPosition:null,curPosition:null},i=[],a=t.length-1;a>=0;a--)i.push("\n at "+E(t[a],n)),n.nextPosition=n.curPosition;return n.curPosition=n.nextPosition=null,r+i.reverse().join("")}function C(e){var t=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);if(t){var n=t[1],i=+t[2],a=+t[3],o=l[n];if(!o&&r&&r.existsSync(n))try{o=r.readFileSync(n,"utf8")}catch(e){o=""}if(o){var s=o.split(/(?:\r\n|\r|\n)/)[i-1];if(s)return n+":"+i+"\n"+s+"\n"+new Array(a).join(" ")+"^"}}return null}function k(e){var t=C(e);ar.stderr._handle&&ar.stderr._handle.setBlocking&&ar.stderr._handle.setBlocking(!0),t&&(console.error(),console.error(t)),console.error(e.stack),ar.exit(1)}f.push((function(e){var t,r=function(e){var t;if(g())try{var r=new XMLHttpRequest;r.open("GET",e,!1),r.send(null),t=4===r.readyState?r.responseText:null;var n=r.getResponseHeader("SourceMap")||r.getResponseHeader("X-SourceMap");if(n)return n}catch(e){}t=y(e);for(var i,a,o=/(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/gm;a=o.exec(t);)i=a;return i?i[1]:null}(e);if(!r)return null;if(_.test(r)){var n=r.slice(r.indexOf(",")+1);t=cd(n,"base64").toString(),r=e}else r=v(e,r),t=y(r);return t?{url:r,map:t}:null}));var A=p.slice(0),F=f.slice(0);t.wrapCallSite=E,t.getErrorSource=C,t.mapSourcePosition=D,t.retrieveSourceMap=h,t.install=function(t){if((t=t||{}).environment&&(u=t.environment,-1===["node","browser","auto"].indexOf(u)))throw new Error("environment "+u+" was unknown. Available options are {auto, browser, node}");if(t.retrieveFile&&(t.overrideRetrieveFile&&(p.length=0),p.unshift(t.retrieveFile)),t.retrieveSourceMap&&(t.overrideRetrieveSourceMap&&(f.length=0),f.unshift(t.retrieveSourceMap)),t.hookRequire&&!g()){var r=a(e,"module"),n=r.prototype._compile;n.__sourceMapSupport||(r.prototype._compile=function(e,t){return l[t]=e,d[t]=void 0,n.call(this,e,t)},r.prototype._compile.__sourceMapSupport=!0)}if(c||(c="emptyCacheBetweenOperations"in t&&t.emptyCacheBetweenOperations),o||(o=!0,Error.prepareStackTrace=T),!s){var i=!("handleUncaughtExceptions"in t)||t.handleUncaughtExceptions;try{!1===a(e,"worker_threads").isMainThread&&(i=!1)}catch(e){}i&&"object"==typeof ar&&null!==ar&&"function"==typeof ar.on&&(s=!0,_=ar.emit,ar.emit=function(e){if("uncaughtException"===e){var t=arguments[1]&&arguments[1].stack,r=this.listeners(e).length>0;if(t&&!r)return k(arguments[1])}return _.apply(this,arguments)})}var _},t.resetRetrieveHandlers=function(){p.length=0,f.length=0,p=A.slice(0),f=F.slice(0),h=m(f),y=m(p)}})),_d=p(kl),pd=p(ks),fd=f((function(e){var t=_&&_.__spreadArray||function(e,t){for(var r=0,n=t.length,i=e.length;r0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0;for(var r=0,n=e;r>1);switch(n(r(e[c],c),t)){case-1:o=c+1;break;case 0:return c;case 1:s=c-1}}return~o}function v(e,t,r,n,i){if(e&&e.length>0){var a=e.length;if(a>0){var o=void 0===n||n<0?0:n,s=void 0===i||o+i>a-1?a-1:o+i,c=void 0;for(arguments.length<=2?(c=e[o],o++):c=r;o<=s;)c=t(c,e[o],o),o++;return c}}return r}e.Map=r("Map","tryGetNativeMap","createMapShim"),e.Set=r("Set","tryGetNativeSet","createSetShim"),e.getIterator=n,e.emptyArray=[],e.emptyMap=new e.Map,e.emptySet=new e.Set,e.createMap=function(){return new e.Map},e.createMapFromTemplate=function(t){var r=new e.Map;for(var n in t)h.call(t,n)&&r.set(n,t[n]);return r},e.length=function(e){return e?e.length:0},e.forEach=function(e,t){if(e)for(var r=0;r=0;r--){var n=t(e[r],r);if(n)return n}},e.firstDefined=function(e,t){if(void 0!==e)for(var r=0;r=0;r--){var n=e[r];if(t(n,r))return n}},e.findIndex=function(e,t,r){for(var n=r||0;n=0;n--)if(t(e[n],n))return n;return-1},e.findMap=function(t,r){for(var n=0;n0&&e.Debug.assertGreaterThanOrEqual(n(r[o],r[o-1]),0);t:for(var s=a;as&&e.Debug.assertGreaterThanOrEqual(n(t[a],t[a-1]),0),n(r[o],t[a])){case-1:i.push(r[o]);continue e;case 0:continue e;case 1:continue t}}return i},e.sum=function(e,t){for(var r=0,n=0,i=e;nt?1:0}function j(e,t){return L(e,t)}e.toFileNameLowerCase=O,e.notImplemented=function(){throw new Error("Not implemented")},e.memoize=function(e){var t;return function(){return e&&(t=e(),e=void 0),t}},e.memoizeOne=function(t){var r=new e.Map;return function(e){var n=typeof e+":"+e,i=r.get(n);return void 0!==i||r.has(n)||(i=t(e),r.set(n,i)),i}},e.compose=function(e,t,r,n,i){if(i){for(var a=[],o=0;o0?1:0}function i(e){var t=new Intl.Collator(e,{usage:"sort",sensitivity:"variant"}).compare;return function(e,r){return n(e,r,t)}}function a(e){return void 0!==e?o():function(e,r){return n(e,r,t)};function t(e,t){return e.localeCompare(t)}}function o(){return function(t,r){return n(t,r,e)};function e(e,r){return t(e.toUpperCase(),r.toUpperCase())||t(e,r)}function t(e,t){return et?1:0}}}();function U(e,t,r){for(var n=new Array(t.length+1),i=new Array(t.length+1),a=r+.01,o=0;o<=t.length;o++)n[o]=o;for(o=1;o<=e.length;o++){var s=e.charCodeAt(o-1),c=Math.ceil(o>r?o-r:1),u=Math.floor(t.length>r+o?r+o:t.length);i[0]=o;for(var l=o,d=1;dr)return;var f=n;n=i,i=f}var g=n[t.length];return g>r?void 0:g}function V(e,t){var r=e.length-t.length;return r>=0&&e.indexOf(t,r)===r}function q(e,t){for(var r=t;r=r.length+n.length&&G(t,r)&&V(t,n)}function X(e,t,r,n){for(var i=0,a=e[n];ii&&(i=c.prefix.length,n=s)}return n},e.startsWith=G,e.removePrefix=function(e,t){return G(e,t)?e.substr(t.length):e},e.tryRemovePrefix=function(e,t,r){return void 0===r&&(r=N),G(r(e),r(t))?e.substring(t.length):void 0},e.and=function(e,t){return function(r){return e(r)&&t(r)}},e.or=function(){for(var e=[],t=0;t=e}function _(t,n){return!!d(t)||(l[n]={level:t,assertion:r[n]},r[n]=e.noop,!1)}function p(e,t){var r=new Error(e?"Debug Failure. "+e:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(r,t||p),r}function f(e,t,r,n){e||(t=t?"False expression: "+t:"False expression.",r&&(t+="\r\nVerbose Debug Information: "+("string"==typeof r?r:r())),p(t,n||f))}function g(e,t,r){null==e&&p(t,r||g)}function m(e,t,r){return g(e,t,r||m),e}function y(e,t,r){for(var n=0,i=e;n0&&0===i[0][0]?i[0][1]:"0";if(n){for(var a="",o=t,s=0,c=i;st)break;0!==l&&l&t&&(a=a+(a?"|":"")+d,o&=~l)}if(0===o)return a}else for(var _=0,p=i;_n)for(var i=0,o=e.getOwnKeys(l);i=c.level&&(r[s]=c,l[s]=void 0)}},r.shouldAssert=d,r.fail=p,r.failBadSyntaxKind=function e(t,r,n){return p((r||"Unexpected node.")+"\r\nNode "+x(t.kind)+" was unexpected.",n||e)},r.assert=f,r.assertEqual=function e(t,r,n,i,a){t!==r&&p("Expected "+t+" === "+r+". "+(n?i?n+" "+i:n:""),a||e)},r.assertLessThan=function e(t,r,n,i){t>=r&&p("Expected "+t+" < "+r+". "+(n||""),i||e)},r.assertLessThanOrEqual=function e(t,r,n){t>r&&p("Expected "+t+" <= "+r,n||e)},r.assertGreaterThanOrEqual=function e(t,r,n){t= "+r,n||e)},r.assertIsDefined=g,r.checkDefined=m,r.assertDefined=m,r.assertEachIsDefined=y,r.checkEachDefined=v,r.assertEachDefined=v,r.assertNever=function t(r,n,i){return void 0===n&&(n="Illegal value:"),p(n+" "+("object"==typeof r&&e.hasProperty(r,"kind")&&e.hasProperty(r,"pos")&&x?"SyntaxKind: "+x(r.kind):JSON.stringify(r)),i||t)},r.assertEachNode=function t(r,n,i,a){_(1,"assertEachNode")&&f(void 0===n||e.every(r,n),i||"Unexpected node.",(function(){return"Node array did not pass test '"+h(n)+"'."}),a||t)},r.assertNode=function e(t,r,n,i){_(1,"assertNode")&&f(void 0!==t&&(void 0===r||r(t)),n||"Unexpected node.",(function(){return"Node "+x(t.kind)+" did not pass test '"+h(r)+"'."}),i||e)},r.assertNotNode=function e(t,r,n,i){_(1,"assertNotNode")&&f(void 0===t||void 0===r||!r(t),n||"Unexpected node.",(function(){return"Node "+x(t.kind)+" should not have passed test '"+h(r)+"'."}),i||e)},r.assertOptionalNode=function e(t,r,n,i){_(1,"assertOptionalNode")&&f(void 0===r||void 0===t||r(t),n||"Unexpected node.",(function(){return"Node "+x(t.kind)+" did not pass test '"+h(r)+"'."}),i||e)},r.assertOptionalToken=function e(t,r,n,i){_(1,"assertOptionalToken")&&f(void 0===r||void 0===t||t.kind===r,n||"Unexpected node.",(function(){return"Node "+x(t.kind)+" was not a '"+x(r)+"' token."}),i||e)},r.assertMissingNode=function e(t,r,n){_(1,"assertMissingNode")&&f(void 0===t,r||"Unexpected node.",(function(){return"Node "+x(t.kind)+" was unexpected'."}),n||e)},r.type=function(e){},r.getFunctionName=h,r.formatSymbol=function(t){return"{ name: "+e.unescapeLeadingUnderscores(t.escapedName)+"; flags: "+C(t.flags)+"; declarations: "+e.map(t.declarations,(function(e){return x(e.kind)}))+" }"},r.formatEnum=D,r.formatSyntaxKind=x,r.formatNodeFlags=b,r.formatModifierFlags=S,r.formatTransformFlags=E,r.formatEmitFlags=T,r.formatSymbolFlags=C,r.formatTypeFlags=k,r.formatSignatureFlags=A,r.formatObjectFlags=F,r.formatFlowFlags=N;var P,w,I,O=!1;function M(e){return function(){if(B(),!P)throw new Error("Debugging helpers could not be loaded.");return P}().formatControlFlowGraph(e)}function L(t){"__debugFlowFlags"in t||Object.defineProperties(t,{__tsDebuggerDisplay:{value:function(){var e=2&this.flags?"FlowStart":4&this.flags?"FlowBranchLabel":8&this.flags?"FlowLoopLabel":16&this.flags?"FlowAssignment":32&this.flags?"FlowTrueCondition":64&this.flags?"FlowFalseCondition":128&this.flags?"FlowSwitchClause":256&this.flags?"FlowArrayMutation":512&this.flags?"FlowCall":1024&this.flags?"FlowReduceLabel":1&this.flags?"FlowUnreachable":"UnknownFlow",t=-2048&this.flags;return e+(t?" ("+N(t)+")":"")}},__debugFlowFlags:{get:function(){return D(this.flags,e.FlowFlags,!0)}},__debugToString:{value:function(){return M(this)}}})}function R(e){"__tsDebuggerDisplay"in e||Object.defineProperties(e,{__tsDebuggerDisplay:{value:function(e){return"NodeArray "+(e=String(e).replace(/(?:,[\s\w\d_]+:[^,]+)+\]$/,"]"))}}})}function B(){if(!O){var t,r;Object.defineProperties(e.objectAllocator.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value:function(){var t=33554432&this.flags?"TransientSymbol":"Symbol",r=-33554433&this.flags;return t+" '"+e.symbolName(this)+"'"+(r?" ("+C(r)+")":"")}},__debugFlags:{get:function(){return C(this.flags)}}}),Object.defineProperties(e.objectAllocator.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value:function(){var t=98304&this.flags?"NullableType":384&this.flags?"LiteralType "+JSON.stringify(this.value):2048&this.flags?"LiteralType "+(this.value.negative?"-":"")+this.value.base10Value+"n":8192&this.flags?"UniqueESSymbolType":32&this.flags?"EnumType":67359327&this.flags?"IntrinsicType "+this.intrinsicName:1048576&this.flags?"UnionType":2097152&this.flags?"IntersectionType":4194304&this.flags?"IndexType":8388608&this.flags?"IndexedAccessType":16777216&this.flags?"ConditionalType":33554432&this.flags?"SubstitutionType":262144&this.flags?"TypeParameter":524288&this.flags?3&this.objectFlags?"InterfaceType":4&this.objectFlags?"TypeReference":8&this.objectFlags?"TupleType":16&this.objectFlags?"AnonymousType":32&this.objectFlags?"MappedType":1024&this.objectFlags?"ReverseMappedType":256&this.objectFlags?"EvolvingArrayType":"ObjectType":"Type",r=524288&this.flags?-1344&this.objectFlags:0;return t+(this.symbol?" '"+e.symbolName(this.symbol)+"'":"")+(r?" ("+F(r)+")":"")}},__debugFlags:{get:function(){return k(this.flags)}},__debugObjectFlags:{get:function(){return 524288&this.flags?F(this.objectFlags):""}},__debugTypeToString:{value:function(){var e=(void 0===t&&"function"==typeof WeakMap&&(t=new WeakMap),t),r=null==e?void 0:e.get(this);return void 0===r&&(r=this.checker.typeToString(this),null==e||e.set(this,r)),r}}}),Object.defineProperties(e.objectAllocator.getSignatureConstructor().prototype,{__debugFlags:{get:function(){return A(this.flags)}},__debugSignatureToString:{value:function(){var e;return null===(e=this.checker)||void 0===e?void 0:e.signatureToString(this)}}});for(var n=0,i=[e.objectAllocator.getNodeConstructor(),e.objectAllocator.getIdentifierConstructor(),e.objectAllocator.getTokenConstructor(),e.objectAllocator.getSourceFileConstructor()];n=0;return d?function(e,t,r,n){var i=j(e,!0,t,r,n);return function(){throw new TypeError(i)}}(t,s,l,r.message):_?function(e,t,r,n){var i=!1;return function(){i||(u.warn(j(e,!1,t,r,n)),i=!0)}}(t,s,l,r.message):e.noop}r.printControlFlowGraph=function(e){return console.log(M(e))},r.formatControlFlowGraph=M,r.attachFlowNodeDebugInfo=function(e){O&&("function"==typeof Object.setPrototypeOf?(w||L(w=Object.create(Object.prototype)),Object.setPrototypeOf(e,w)):L(e))},r.attachNodeArrayDebugInfo=function(e){O&&("function"==typeof Object.setPrototypeOf?(I||R(I=Object.create(Array.prototype)),Object.setPrototypeOf(e,I)):R(e))},r.enableDebugInfo=B,r.deprecate=function(e,t){return function(e,t){return function(){return e(),t.apply(this,arguments)}}(J(h(e),t),e)}}(e.Debug||(e.Debug={}))}(s||(s={})),function(e){var t=/^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i,r=/^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i,n=/^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i,i=/^(0|[1-9]\d*)$/,a=function(){function t(t,i,a,s,c){if(void 0===i&&(i=0),void 0===a&&(a=0),void 0===s&&(s=""),void 0===c&&(c=""),"string"==typeof t){var u=e.Debug.checkDefined(o(t),"Invalid version");t=u.major,i=u.minor,a=u.patch,s=u.prerelease,c=u.build}e.Debug.assert(t>=0,"Invalid argument: major"),e.Debug.assert(i>=0,"Invalid argument: minor"),e.Debug.assert(a>=0,"Invalid argument: patch"),e.Debug.assert(!s||r.test(s),"Invalid argument: prerelease"),e.Debug.assert(!c||n.test(c),"Invalid argument: build"),this.major=t,this.minor=i,this.patch=a,this.prerelease=s?s.split("."):e.emptyArray,this.build=c?c.split("."):e.emptyArray}return t.tryParse=function(e){var r=o(e);if(r)return new t(r.major,r.minor,r.patch,r.prerelease,r.build)},t.prototype.compareTo=function(t){return this===t?0:void 0===t?1:e.compareValues(this.major,t.major)||e.compareValues(this.minor,t.minor)||e.compareValues(this.patch,t.patch)||function(t,r){if(t===r)return 0;if(0===t.length)return 0===r.length?0:1;if(0===r.length)return-1;for(var n=Math.min(t.length,r.length),a=0;a|>=|=)?\s*([a-z0-9-+.*]+)$/i;function p(e){for(var t=[],r=0,n=e.trim().split(c);r=",n.version)),y(i.major)||r.push(y(i.minor)?v("<",i.version.increment("major")):y(i.patch)?v("<",i.version.increment("minor")):v("<=",i.version)),!0)}function m(e,t,r){var n=f(t);if(!n)return!1;var i=n.version,o=n.major,s=n.minor,c=n.patch;if(y(o))"<"!==e&&">"!==e||r.push(v("<",a.zero));else switch(e){case"~":r.push(v(">=",i)),r.push(v("<",i.increment(y(s)?"major":"minor")));break;case"^":r.push(v(">=",i)),r.push(v("<",i.increment(i.major>0||y(s)?"major":i.minor>0||y(c)?"minor":"patch")));break;case"<":case">=":r.push(v(e,i));break;case"<=":case">":r.push(y(s)?v("<="===e?"<":">=",i.increment("major")):y(c)?v("<="===e?"<":">=",i.increment("minor")):v(e,i));break;case"=":case void 0:y(s)||y(c)?(r.push(v(">=",i)),r.push(v("<",i.increment(y(s)?"major":"minor")))):r.push(v("=",i));break;default:return!1}return!0}function y(e){return"*"===e||"x"===e||"X"===e}function v(e,t){return{operator:e,operand:t}}function h(e,t){for(var r=0,n=t;r":return i>0;case">=":return i>=0;case"=":return 0===i;default:return e.Debug.assertNever(r)}}function x(t){return e.map(t,b).join(" ")}function b(e){return""+e.operator+e.operand}}(s||(s={})),function(e){function t(e,t){return"object"==typeof e&&"number"==typeof e.timeOrigin&&"function"==typeof e.mark&&"function"==typeof e.measure&&"function"==typeof e.now&&"function"==typeof t}var r=function(){if("object"==typeof performance&&"function"==typeof PerformanceObserver&&t(performance,PerformanceObserver))return{shouldWriteNativeEvents:!0,performance:performance,PerformanceObserver:PerformanceObserver}}()||function(){if(void 0!==ar&&ar.nextTick&&!ar.browser&&"function"==typeof require)try{var r,n={},i=n.performance,a=n.PerformanceObserver;if(t(i,a)){r=i;var o=new e.Version("999.999.999");return new e.VersionRange("<12.16.3 || 13 <13.13").test(o)&&(r={get timeOrigin(){return i.timeOrigin},now:function(){return i.now()},mark:function(e){return i.mark(e)},measure:function(e,t,r){void 0===t&&(t="nodeStart"),void 0===r&&(r="__performance.measure-fix__",i.mark(r)),i.measure(e,t,r),"__performance.measure-fix__"===r&&i.clearMarks("__performance.measure-fix__")}}),{shouldWriteNativeEvents:!1,performance:r,PerformanceObserver:a}}}catch(e){}}(),n=null==r?void 0:r.performance;e.tryGetNativePerformanceHooks=function(){return r},e.timestamp=n?function(){return n.now()}:Date.now?Date.now:function(){return+new Date}}(s||(s={})),function(e){!function(t){var r,n;function i(t,r,n){var i=0;return{enter:function(){1==++i&&l(r)},exit:function(){0==--i?(l(n),d(t,r,n)):i<0&&e.Debug.fail("enter/exit count does not match.")}}}t.createTimerIf=function(e,r,n,a){return e?i(r,n,a):t.nullTimer},t.createTimer=i,t.nullTimer={enter:e.noop,exit:e.noop};var a=!1,o=e.timestamp(),s=new e.Map,c=new e.Map,u=new e.Map;function l(t){var r;if(a){var i=null!==(r=c.get(t))&&void 0!==r?r:0;c.set(t,i+1),s.set(t,e.timestamp()),null==n||n.mark(t)}}function d(t,r,i){var c,l;if(a){var d=null!==(c=void 0!==i?s.get(i):void 0)&&void 0!==c?c:e.timestamp(),_=null!==(l=void 0!==r?s.get(r):void 0)&&void 0!==l?l:o,p=u.get(t)||0;u.set(t,p+(d-_)),null==n||n.measure(t,r,i)}}t.mark=l,t.measure=d,t.getCount=function(e){return c.get(e)||0},t.getDuration=function(e){return u.get(e)||0},t.forEachMeasure=function(e){u.forEach((function(t,r){return e(r,t)}))},t.isEnabled=function(){return a},t.enable=function(t){var i;return void 0===t&&(t=e.sys),a||(a=!0,r||(r=e.tryGetNativePerformanceHooks()),r&&(o=r.performance.timeOrigin,(r.shouldWriteNativeEvents||(null===(i=null==t?void 0:t.cpuProfilingEnabled)||void 0===i?void 0:i.call(t))||(null==t?void 0:t.debugMode))&&(n=r.performance))),!0},t.disable=function(){a&&(s.clear(),c.clear(),u.clear(),n=void 0,a=!1)}}(e.performance||(e.performance={}))}(s||(s={})),function(e){var t,r,n={logEvent:e.noop,logErrEvent:e.noop,logPerfEvent:e.noop,logInfoEvent:e.noop,logStartCommand:e.noop,logStopCommand:e.noop,logStartUpdateProgram:e.noop,logStopUpdateProgram:e.noop,logStartUpdateGraph:e.noop,logStopUpdateGraph:e.noop,logStartResolveModule:e.noop,logStopResolveModule:e.noop,logStartParseSourceFile:e.noop,logStopParseSourceFile:e.noop,logStartReadFile:e.noop,logStopReadFile:e.noop,logStartBindFile:e.noop,logStopBindFile:e.noop,logStartScheduledOperation:e.noop,logStopScheduledOperation:e.noop};try{var i=null!==(t=ar.env.TS_ETW_MODULE_PATH)&&void 0!==t?t:"./node_modules/@microsoft/typescript-etw";r=require(i)}catch(e){r=void 0}e.perfLogger=r&&r.logEvent?r:n}(s||(s={})),function(e){var t;!function(t){var n,i,a,o,s=0,c=0,u=[],l=[];t.startTracing=function(o,d,_){if(e.Debug.assert(!e.tracing,"Tracing already started"),void 0===n)try{n=ld}catch(e){throw new Error("tracing requires having fs\n(original error: "+(e.message||e)+")")}i=o,u.length=0,void 0===a&&(a=e.combinePaths(d,"legend.json")),n.existsSync(d)||n.mkdirSync(d,{recursive:!0});var p="build"===i?"."+ar.pid+"-"+ ++s:"server"===i?"."+ar.pid:"",f=e.combinePaths(d,"trace"+p+".json"),g=e.combinePaths(d,"types"+p+".json");l.push({configFilePath:_,tracePath:f,typesPath:g}),c=n.openSync(f,"w"),e.tracing=t;var m={cat:"__metadata",ph:"M",ts:1e3*e.timestamp(),pid:1,tid:1};n.writeSync(c,"[\n"+[r({name:"process_name",args:{name:"tsc"}},m),r({name:"thread_name",args:{name:"Main"}},m),r(r({name:"TracingStartedInBrowser"},m),{cat:"disabled-by-default-devtools.timeline"})].map((function(e){return JSON.stringify(e)})).join(",\n"))},t.stopTracing=function(){e.Debug.assert(e.tracing,"Tracing is not in progress"),e.Debug.assert(!!u.length==("server"!==i)),n.writeSync(c,"\n]\n"),n.closeSync(c),e.tracing=void 0,u.length?function(t){var i,a,o,s,c,u,d,_,p,g,m,y,v,h,D,x,b,S,E,T,C,k;e.performance.mark("beginDumpTypes");var A=l[l.length-1].typesPath,F=n.openSync(A,"w"),N=new e.Map;n.writeSync(F,"[");for(var P=t.length,w=0;w0),_(d.length-1,1e3*e.timestamp()),d.length--},t.popAll=function(){for(var t=1e3*e.timestamp(),r=d.length-1;r>=0;r--)_(r,t);d.length=0};function _(e,t){var r=d[e],n=r.phase,i=r.name,a=r.args,o=r.time;r.separateBeginAndEnd?p("E",n,i,a,void 0,t):1e4-o%1e4<=t-o&&p("X",n,i,a,'"dur":'+(t-o),o)}function p(t,r,a,o,s,u){void 0===u&&(u=1e3*e.timestamp()),"server"===i&&"checkTypes"===r||(e.performance.mark("beginTracing"),n.writeSync(c,',\n{"pid":1,"tid":1,"ph":"'+t+'","cat":"'+r+'","ts":'+u+',"name":"'+a+'"'),s&&n.writeSync(c,","+s),o&&n.writeSync(c,',"args":'+JSON.stringify(o)),n.writeSync(c,"}"),e.performance.mark("endTracing"),e.performance.measure("Tracing","beginTracing","endTracing"))}function f(t){var r=e.getSourceFileOfNode(t);return r?{path:r.path,start:n(e.getLineAndCharacterOfPosition(r,t.pos)),end:n(e.getLineAndCharacterOfPosition(r,t.end))}:void 0;function n(e){return{line:e.line+1,character:e.character+1}}}t.dumpLegend=function(){a&&n.writeFileSync(a,JSON.stringify(l))}}(t||(t={})),e.startTracing=t.startTracing,e.dumpTracingLegend=t.dumpLegend}(s||(s={})),function(e){var t,r,n,i,a,o,s,c,u;(t=e.SyntaxKind||(e.SyntaxKind={}))[t.Unknown=0]="Unknown",t[t.EndOfFileToken=1]="EndOfFileToken",t[t.SingleLineCommentTrivia=2]="SingleLineCommentTrivia",t[t.MultiLineCommentTrivia=3]="MultiLineCommentTrivia",t[t.NewLineTrivia=4]="NewLineTrivia",t[t.WhitespaceTrivia=5]="WhitespaceTrivia",t[t.ShebangTrivia=6]="ShebangTrivia",t[t.ConflictMarkerTrivia=7]="ConflictMarkerTrivia",t[t.NumericLiteral=8]="NumericLiteral",t[t.BigIntLiteral=9]="BigIntLiteral",t[t.StringLiteral=10]="StringLiteral",t[t.JsxText=11]="JsxText",t[t.JsxTextAllWhiteSpaces=12]="JsxTextAllWhiteSpaces",t[t.RegularExpressionLiteral=13]="RegularExpressionLiteral",t[t.NoSubstitutionTemplateLiteral=14]="NoSubstitutionTemplateLiteral",t[t.TemplateHead=15]="TemplateHead",t[t.TemplateMiddle=16]="TemplateMiddle",t[t.TemplateTail=17]="TemplateTail",t[t.OpenBraceToken=18]="OpenBraceToken",t[t.CloseBraceToken=19]="CloseBraceToken",t[t.OpenParenToken=20]="OpenParenToken",t[t.CloseParenToken=21]="CloseParenToken",t[t.OpenBracketToken=22]="OpenBracketToken",t[t.CloseBracketToken=23]="CloseBracketToken",t[t.DotToken=24]="DotToken",t[t.DotDotDotToken=25]="DotDotDotToken",t[t.SemicolonToken=26]="SemicolonToken",t[t.CommaToken=27]="CommaToken",t[t.QuestionDotToken=28]="QuestionDotToken",t[t.LessThanToken=29]="LessThanToken",t[t.LessThanSlashToken=30]="LessThanSlashToken",t[t.GreaterThanToken=31]="GreaterThanToken",t[t.LessThanEqualsToken=32]="LessThanEqualsToken",t[t.GreaterThanEqualsToken=33]="GreaterThanEqualsToken",t[t.EqualsEqualsToken=34]="EqualsEqualsToken",t[t.ExclamationEqualsToken=35]="ExclamationEqualsToken",t[t.EqualsEqualsEqualsToken=36]="EqualsEqualsEqualsToken",t[t.ExclamationEqualsEqualsToken=37]="ExclamationEqualsEqualsToken",t[t.EqualsGreaterThanToken=38]="EqualsGreaterThanToken",t[t.PlusToken=39]="PlusToken",t[t.MinusToken=40]="MinusToken",t[t.AsteriskToken=41]="AsteriskToken",t[t.AsteriskAsteriskToken=42]="AsteriskAsteriskToken",t[t.SlashToken=43]="SlashToken",t[t.PercentToken=44]="PercentToken",t[t.PlusPlusToken=45]="PlusPlusToken",t[t.MinusMinusToken=46]="MinusMinusToken",t[t.LessThanLessThanToken=47]="LessThanLessThanToken",t[t.GreaterThanGreaterThanToken=48]="GreaterThanGreaterThanToken",t[t.GreaterThanGreaterThanGreaterThanToken=49]="GreaterThanGreaterThanGreaterThanToken",t[t.AmpersandToken=50]="AmpersandToken",t[t.BarToken=51]="BarToken",t[t.CaretToken=52]="CaretToken",t[t.ExclamationToken=53]="ExclamationToken",t[t.TildeToken=54]="TildeToken",t[t.AmpersandAmpersandToken=55]="AmpersandAmpersandToken",t[t.BarBarToken=56]="BarBarToken",t[t.QuestionToken=57]="QuestionToken",t[t.ColonToken=58]="ColonToken",t[t.AtToken=59]="AtToken",t[t.QuestionQuestionToken=60]="QuestionQuestionToken",t[t.BacktickToken=61]="BacktickToken",t[t.EqualsToken=62]="EqualsToken",t[t.PlusEqualsToken=63]="PlusEqualsToken",t[t.MinusEqualsToken=64]="MinusEqualsToken",t[t.AsteriskEqualsToken=65]="AsteriskEqualsToken",t[t.AsteriskAsteriskEqualsToken=66]="AsteriskAsteriskEqualsToken",t[t.SlashEqualsToken=67]="SlashEqualsToken",t[t.PercentEqualsToken=68]="PercentEqualsToken",t[t.LessThanLessThanEqualsToken=69]="LessThanLessThanEqualsToken",t[t.GreaterThanGreaterThanEqualsToken=70]="GreaterThanGreaterThanEqualsToken",t[t.GreaterThanGreaterThanGreaterThanEqualsToken=71]="GreaterThanGreaterThanGreaterThanEqualsToken",t[t.AmpersandEqualsToken=72]="AmpersandEqualsToken",t[t.BarEqualsToken=73]="BarEqualsToken",t[t.BarBarEqualsToken=74]="BarBarEqualsToken",t[t.AmpersandAmpersandEqualsToken=75]="AmpersandAmpersandEqualsToken",t[t.QuestionQuestionEqualsToken=76]="QuestionQuestionEqualsToken",t[t.CaretEqualsToken=77]="CaretEqualsToken",t[t.Identifier=78]="Identifier",t[t.PrivateIdentifier=79]="PrivateIdentifier",t[t.BreakKeyword=80]="BreakKeyword",t[t.CaseKeyword=81]="CaseKeyword",t[t.CatchKeyword=82]="CatchKeyword",t[t.ClassKeyword=83]="ClassKeyword",t[t.ConstKeyword=84]="ConstKeyword",t[t.ContinueKeyword=85]="ContinueKeyword",t[t.DebuggerKeyword=86]="DebuggerKeyword",t[t.DefaultKeyword=87]="DefaultKeyword",t[t.DeleteKeyword=88]="DeleteKeyword",t[t.DoKeyword=89]="DoKeyword",t[t.ElseKeyword=90]="ElseKeyword",t[t.EnumKeyword=91]="EnumKeyword",t[t.ExportKeyword=92]="ExportKeyword",t[t.ExtendsKeyword=93]="ExtendsKeyword",t[t.FalseKeyword=94]="FalseKeyword",t[t.FinallyKeyword=95]="FinallyKeyword",t[t.ForKeyword=96]="ForKeyword",t[t.FunctionKeyword=97]="FunctionKeyword",t[t.IfKeyword=98]="IfKeyword",t[t.ImportKeyword=99]="ImportKeyword",t[t.InKeyword=100]="InKeyword",t[t.InstanceOfKeyword=101]="InstanceOfKeyword",t[t.NewKeyword=102]="NewKeyword",t[t.NullKeyword=103]="NullKeyword",t[t.ReturnKeyword=104]="ReturnKeyword",t[t.SuperKeyword=105]="SuperKeyword",t[t.SwitchKeyword=106]="SwitchKeyword",t[t.ThisKeyword=107]="ThisKeyword",t[t.ThrowKeyword=108]="ThrowKeyword",t[t.TrueKeyword=109]="TrueKeyword",t[t.TryKeyword=110]="TryKeyword",t[t.TypeOfKeyword=111]="TypeOfKeyword",t[t.VarKeyword=112]="VarKeyword",t[t.VoidKeyword=113]="VoidKeyword",t[t.WhileKeyword=114]="WhileKeyword",t[t.WithKeyword=115]="WithKeyword",t[t.ImplementsKeyword=116]="ImplementsKeyword",t[t.InterfaceKeyword=117]="InterfaceKeyword",t[t.LetKeyword=118]="LetKeyword",t[t.PackageKeyword=119]="PackageKeyword",t[t.PrivateKeyword=120]="PrivateKeyword",t[t.ProtectedKeyword=121]="ProtectedKeyword",t[t.PublicKeyword=122]="PublicKeyword",t[t.StaticKeyword=123]="StaticKeyword",t[t.YieldKeyword=124]="YieldKeyword",t[t.AbstractKeyword=125]="AbstractKeyword",t[t.AsKeyword=126]="AsKeyword",t[t.AssertsKeyword=127]="AssertsKeyword",t[t.AnyKeyword=128]="AnyKeyword",t[t.AsyncKeyword=129]="AsyncKeyword",t[t.AwaitKeyword=130]="AwaitKeyword",t[t.BooleanKeyword=131]="BooleanKeyword",t[t.ConstructorKeyword=132]="ConstructorKeyword",t[t.DeclareKeyword=133]="DeclareKeyword",t[t.GetKeyword=134]="GetKeyword",t[t.InferKeyword=135]="InferKeyword",t[t.IntrinsicKeyword=136]="IntrinsicKeyword",t[t.IsKeyword=137]="IsKeyword",t[t.KeyOfKeyword=138]="KeyOfKeyword",t[t.ModuleKeyword=139]="ModuleKeyword",t[t.NamespaceKeyword=140]="NamespaceKeyword",t[t.NeverKeyword=141]="NeverKeyword",t[t.ReadonlyKeyword=142]="ReadonlyKeyword",t[t.RequireKeyword=143]="RequireKeyword",t[t.NumberKeyword=144]="NumberKeyword",t[t.ObjectKeyword=145]="ObjectKeyword",t[t.SetKeyword=146]="SetKeyword",t[t.StringKeyword=147]="StringKeyword",t[t.SymbolKeyword=148]="SymbolKeyword",t[t.TypeKeyword=149]="TypeKeyword",t[t.UndefinedKeyword=150]="UndefinedKeyword",t[t.UniqueKeyword=151]="UniqueKeyword",t[t.UnknownKeyword=152]="UnknownKeyword",t[t.FromKeyword=153]="FromKeyword",t[t.GlobalKeyword=154]="GlobalKeyword",t[t.BigIntKeyword=155]="BigIntKeyword",t[t.OverrideKeyword=156]="OverrideKeyword",t[t.OfKeyword=157]="OfKeyword",t[t.QualifiedName=158]="QualifiedName",t[t.ComputedPropertyName=159]="ComputedPropertyName",t[t.TypeParameter=160]="TypeParameter",t[t.Parameter=161]="Parameter",t[t.Decorator=162]="Decorator",t[t.PropertySignature=163]="PropertySignature",t[t.PropertyDeclaration=164]="PropertyDeclaration",t[t.MethodSignature=165]="MethodSignature",t[t.MethodDeclaration=166]="MethodDeclaration",t[t.Constructor=167]="Constructor",t[t.GetAccessor=168]="GetAccessor",t[t.SetAccessor=169]="SetAccessor",t[t.CallSignature=170]="CallSignature",t[t.ConstructSignature=171]="ConstructSignature",t[t.IndexSignature=172]="IndexSignature",t[t.TypePredicate=173]="TypePredicate",t[t.TypeReference=174]="TypeReference",t[t.FunctionType=175]="FunctionType",t[t.ConstructorType=176]="ConstructorType",t[t.TypeQuery=177]="TypeQuery",t[t.TypeLiteral=178]="TypeLiteral",t[t.ArrayType=179]="ArrayType",t[t.TupleType=180]="TupleType",t[t.OptionalType=181]="OptionalType",t[t.RestType=182]="RestType",t[t.UnionType=183]="UnionType",t[t.IntersectionType=184]="IntersectionType",t[t.ConditionalType=185]="ConditionalType",t[t.InferType=186]="InferType",t[t.ParenthesizedType=187]="ParenthesizedType",t[t.ThisType=188]="ThisType",t[t.TypeOperator=189]="TypeOperator",t[t.IndexedAccessType=190]="IndexedAccessType",t[t.MappedType=191]="MappedType",t[t.LiteralType=192]="LiteralType",t[t.NamedTupleMember=193]="NamedTupleMember",t[t.TemplateLiteralType=194]="TemplateLiteralType",t[t.TemplateLiteralTypeSpan=195]="TemplateLiteralTypeSpan",t[t.ImportType=196]="ImportType",t[t.ObjectBindingPattern=197]="ObjectBindingPattern",t[t.ArrayBindingPattern=198]="ArrayBindingPattern",t[t.BindingElement=199]="BindingElement",t[t.ArrayLiteralExpression=200]="ArrayLiteralExpression",t[t.ObjectLiteralExpression=201]="ObjectLiteralExpression",t[t.PropertyAccessExpression=202]="PropertyAccessExpression",t[t.ElementAccessExpression=203]="ElementAccessExpression",t[t.CallExpression=204]="CallExpression",t[t.NewExpression=205]="NewExpression",t[t.TaggedTemplateExpression=206]="TaggedTemplateExpression",t[t.TypeAssertionExpression=207]="TypeAssertionExpression",t[t.ParenthesizedExpression=208]="ParenthesizedExpression",t[t.FunctionExpression=209]="FunctionExpression",t[t.ArrowFunction=210]="ArrowFunction",t[t.DeleteExpression=211]="DeleteExpression",t[t.TypeOfExpression=212]="TypeOfExpression",t[t.VoidExpression=213]="VoidExpression",t[t.AwaitExpression=214]="AwaitExpression",t[t.PrefixUnaryExpression=215]="PrefixUnaryExpression",t[t.PostfixUnaryExpression=216]="PostfixUnaryExpression",t[t.BinaryExpression=217]="BinaryExpression",t[t.ConditionalExpression=218]="ConditionalExpression",t[t.TemplateExpression=219]="TemplateExpression",t[t.YieldExpression=220]="YieldExpression",t[t.SpreadElement=221]="SpreadElement",t[t.ClassExpression=222]="ClassExpression",t[t.OmittedExpression=223]="OmittedExpression",t[t.ExpressionWithTypeArguments=224]="ExpressionWithTypeArguments",t[t.AsExpression=225]="AsExpression",t[t.NonNullExpression=226]="NonNullExpression",t[t.MetaProperty=227]="MetaProperty",t[t.SyntheticExpression=228]="SyntheticExpression",t[t.TemplateSpan=229]="TemplateSpan",t[t.SemicolonClassElement=230]="SemicolonClassElement",t[t.Block=231]="Block",t[t.EmptyStatement=232]="EmptyStatement",t[t.VariableStatement=233]="VariableStatement",t[t.ExpressionStatement=234]="ExpressionStatement",t[t.IfStatement=235]="IfStatement",t[t.DoStatement=236]="DoStatement",t[t.WhileStatement=237]="WhileStatement",t[t.ForStatement=238]="ForStatement",t[t.ForInStatement=239]="ForInStatement",t[t.ForOfStatement=240]="ForOfStatement",t[t.ContinueStatement=241]="ContinueStatement",t[t.BreakStatement=242]="BreakStatement",t[t.ReturnStatement=243]="ReturnStatement",t[t.WithStatement=244]="WithStatement",t[t.SwitchStatement=245]="SwitchStatement",t[t.LabeledStatement=246]="LabeledStatement",t[t.ThrowStatement=247]="ThrowStatement",t[t.TryStatement=248]="TryStatement",t[t.DebuggerStatement=249]="DebuggerStatement",t[t.VariableDeclaration=250]="VariableDeclaration",t[t.VariableDeclarationList=251]="VariableDeclarationList",t[t.FunctionDeclaration=252]="FunctionDeclaration",t[t.ClassDeclaration=253]="ClassDeclaration",t[t.InterfaceDeclaration=254]="InterfaceDeclaration",t[t.TypeAliasDeclaration=255]="TypeAliasDeclaration",t[t.EnumDeclaration=256]="EnumDeclaration",t[t.ModuleDeclaration=257]="ModuleDeclaration",t[t.ModuleBlock=258]="ModuleBlock",t[t.CaseBlock=259]="CaseBlock",t[t.NamespaceExportDeclaration=260]="NamespaceExportDeclaration",t[t.ImportEqualsDeclaration=261]="ImportEqualsDeclaration",t[t.ImportDeclaration=262]="ImportDeclaration",t[t.ImportClause=263]="ImportClause",t[t.NamespaceImport=264]="NamespaceImport",t[t.NamedImports=265]="NamedImports",t[t.ImportSpecifier=266]="ImportSpecifier",t[t.ExportAssignment=267]="ExportAssignment",t[t.ExportDeclaration=268]="ExportDeclaration",t[t.NamedExports=269]="NamedExports",t[t.NamespaceExport=270]="NamespaceExport",t[t.ExportSpecifier=271]="ExportSpecifier",t[t.MissingDeclaration=272]="MissingDeclaration",t[t.ExternalModuleReference=273]="ExternalModuleReference",t[t.JsxElement=274]="JsxElement",t[t.JsxSelfClosingElement=275]="JsxSelfClosingElement",t[t.JsxOpeningElement=276]="JsxOpeningElement",t[t.JsxClosingElement=277]="JsxClosingElement",t[t.JsxFragment=278]="JsxFragment",t[t.JsxOpeningFragment=279]="JsxOpeningFragment",t[t.JsxClosingFragment=280]="JsxClosingFragment",t[t.JsxAttribute=281]="JsxAttribute",t[t.JsxAttributes=282]="JsxAttributes",t[t.JsxSpreadAttribute=283]="JsxSpreadAttribute",t[t.JsxExpression=284]="JsxExpression",t[t.CaseClause=285]="CaseClause",t[t.DefaultClause=286]="DefaultClause",t[t.HeritageClause=287]="HeritageClause",t[t.CatchClause=288]="CatchClause",t[t.PropertyAssignment=289]="PropertyAssignment",t[t.ShorthandPropertyAssignment=290]="ShorthandPropertyAssignment",t[t.SpreadAssignment=291]="SpreadAssignment",t[t.EnumMember=292]="EnumMember",t[t.UnparsedPrologue=293]="UnparsedPrologue",t[t.UnparsedPrepend=294]="UnparsedPrepend",t[t.UnparsedText=295]="UnparsedText",t[t.UnparsedInternalText=296]="UnparsedInternalText",t[t.UnparsedSyntheticReference=297]="UnparsedSyntheticReference",t[t.SourceFile=298]="SourceFile",t[t.Bundle=299]="Bundle",t[t.UnparsedSource=300]="UnparsedSource",t[t.InputFiles=301]="InputFiles",t[t.JSDocTypeExpression=302]="JSDocTypeExpression",t[t.JSDocNameReference=303]="JSDocNameReference",t[t.JSDocAllType=304]="JSDocAllType",t[t.JSDocUnknownType=305]="JSDocUnknownType",t[t.JSDocNullableType=306]="JSDocNullableType",t[t.JSDocNonNullableType=307]="JSDocNonNullableType",t[t.JSDocOptionalType=308]="JSDocOptionalType",t[t.JSDocFunctionType=309]="JSDocFunctionType",t[t.JSDocVariadicType=310]="JSDocVariadicType",t[t.JSDocNamepathType=311]="JSDocNamepathType",t[t.JSDocComment=312]="JSDocComment",t[t.JSDocText=313]="JSDocText",t[t.JSDocTypeLiteral=314]="JSDocTypeLiteral",t[t.JSDocSignature=315]="JSDocSignature",t[t.JSDocLink=316]="JSDocLink",t[t.JSDocTag=317]="JSDocTag",t[t.JSDocAugmentsTag=318]="JSDocAugmentsTag",t[t.JSDocImplementsTag=319]="JSDocImplementsTag",t[t.JSDocAuthorTag=320]="JSDocAuthorTag",t[t.JSDocDeprecatedTag=321]="JSDocDeprecatedTag",t[t.JSDocClassTag=322]="JSDocClassTag",t[t.JSDocPublicTag=323]="JSDocPublicTag",t[t.JSDocPrivateTag=324]="JSDocPrivateTag",t[t.JSDocProtectedTag=325]="JSDocProtectedTag",t[t.JSDocReadonlyTag=326]="JSDocReadonlyTag",t[t.JSDocOverrideTag=327]="JSDocOverrideTag",t[t.JSDocCallbackTag=328]="JSDocCallbackTag",t[t.JSDocEnumTag=329]="JSDocEnumTag",t[t.JSDocParameterTag=330]="JSDocParameterTag",t[t.JSDocReturnTag=331]="JSDocReturnTag",t[t.JSDocThisTag=332]="JSDocThisTag",t[t.JSDocTypeTag=333]="JSDocTypeTag",t[t.JSDocTemplateTag=334]="JSDocTemplateTag",t[t.JSDocTypedefTag=335]="JSDocTypedefTag",t[t.JSDocSeeTag=336]="JSDocSeeTag",t[t.JSDocPropertyTag=337]="JSDocPropertyTag",t[t.SyntaxList=338]="SyntaxList",t[t.NotEmittedStatement=339]="NotEmittedStatement",t[t.PartiallyEmittedExpression=340]="PartiallyEmittedExpression",t[t.CommaListExpression=341]="CommaListExpression",t[t.MergeDeclarationMarker=342]="MergeDeclarationMarker",t[t.EndOfDeclarationMarker=343]="EndOfDeclarationMarker",t[t.SyntheticReferenceExpression=344]="SyntheticReferenceExpression",t[t.Count=345]="Count",t[t.FirstAssignment=62]="FirstAssignment",t[t.LastAssignment=77]="LastAssignment",t[t.FirstCompoundAssignment=63]="FirstCompoundAssignment",t[t.LastCompoundAssignment=77]="LastCompoundAssignment",t[t.FirstReservedWord=80]="FirstReservedWord",t[t.LastReservedWord=115]="LastReservedWord",t[t.FirstKeyword=80]="FirstKeyword",t[t.LastKeyword=157]="LastKeyword",t[t.FirstFutureReservedWord=116]="FirstFutureReservedWord",t[t.LastFutureReservedWord=124]="LastFutureReservedWord",t[t.FirstTypeNode=173]="FirstTypeNode",t[t.LastTypeNode=196]="LastTypeNode",t[t.FirstPunctuation=18]="FirstPunctuation",t[t.LastPunctuation=77]="LastPunctuation",t[t.FirstToken=0]="FirstToken",t[t.LastToken=157]="LastToken",t[t.FirstTriviaToken=2]="FirstTriviaToken",t[t.LastTriviaToken=7]="LastTriviaToken",t[t.FirstLiteralToken=8]="FirstLiteralToken",t[t.LastLiteralToken=14]="LastLiteralToken",t[t.FirstTemplateToken=14]="FirstTemplateToken",t[t.LastTemplateToken=17]="LastTemplateToken",t[t.FirstBinaryOperator=29]="FirstBinaryOperator",t[t.LastBinaryOperator=77]="LastBinaryOperator",t[t.FirstStatement=233]="FirstStatement",t[t.LastStatement=249]="LastStatement",t[t.FirstNode=158]="FirstNode",t[t.FirstJSDocNode=302]="FirstJSDocNode",t[t.LastJSDocNode=337]="LastJSDocNode",t[t.FirstJSDocTagNode=317]="FirstJSDocTagNode",t[t.LastJSDocTagNode=337]="LastJSDocTagNode",t[t.FirstContextualKeyword=125]="FirstContextualKeyword",t[t.LastContextualKeyword=157]="LastContextualKeyword",(r=e.NodeFlags||(e.NodeFlags={}))[r.None=0]="None",r[r.Let=1]="Let",r[r.Const=2]="Const",r[r.NestedNamespace=4]="NestedNamespace",r[r.Synthesized=8]="Synthesized",r[r.Namespace=16]="Namespace",r[r.OptionalChain=32]="OptionalChain",r[r.ExportContext=64]="ExportContext",r[r.ContainsThis=128]="ContainsThis",r[r.HasImplicitReturn=256]="HasImplicitReturn",r[r.HasExplicitReturn=512]="HasExplicitReturn",r[r.GlobalAugmentation=1024]="GlobalAugmentation",r[r.HasAsyncFunctions=2048]="HasAsyncFunctions",r[r.DisallowInContext=4096]="DisallowInContext",r[r.YieldContext=8192]="YieldContext",r[r.DecoratorContext=16384]="DecoratorContext",r[r.AwaitContext=32768]="AwaitContext",r[r.ThisNodeHasError=65536]="ThisNodeHasError",r[r.JavaScriptFile=131072]="JavaScriptFile",r[r.ThisNodeOrAnySubNodesHasError=262144]="ThisNodeOrAnySubNodesHasError",r[r.HasAggregatedChildData=524288]="HasAggregatedChildData",r[r.PossiblyContainsDynamicImport=1048576]="PossiblyContainsDynamicImport",r[r.PossiblyContainsImportMeta=2097152]="PossiblyContainsImportMeta",r[r.JSDoc=4194304]="JSDoc",r[r.Ambient=8388608]="Ambient",r[r.InWithStatement=16777216]="InWithStatement",r[r.JsonFile=33554432]="JsonFile",r[r.TypeCached=67108864]="TypeCached",r[r.Deprecated=134217728]="Deprecated",r[r.BlockScoped=3]="BlockScoped",r[r.ReachabilityCheckFlags=768]="ReachabilityCheckFlags",r[r.ReachabilityAndEmitFlags=2816]="ReachabilityAndEmitFlags",r[r.ContextFlags=25358336]="ContextFlags",r[r.TypeExcludesFlags=40960]="TypeExcludesFlags",r[r.PermanentlySetIncrementalFlags=3145728]="PermanentlySetIncrementalFlags",(n=e.ModifierFlags||(e.ModifierFlags={}))[n.None=0]="None",n[n.Export=1]="Export",n[n.Ambient=2]="Ambient",n[n.Public=4]="Public",n[n.Private=8]="Private",n[n.Protected=16]="Protected",n[n.Static=32]="Static",n[n.Readonly=64]="Readonly",n[n.Abstract=128]="Abstract",n[n.Async=256]="Async",n[n.Default=512]="Default",n[n.Const=2048]="Const",n[n.HasComputedJSDocModifiers=4096]="HasComputedJSDocModifiers",n[n.Deprecated=8192]="Deprecated",n[n.Override=16384]="Override",n[n.HasComputedFlags=536870912]="HasComputedFlags",n[n.AccessibilityModifier=28]="AccessibilityModifier",n[n.ParameterPropertyModifier=16476]="ParameterPropertyModifier",n[n.NonPublicAccessibilityModifier=24]="NonPublicAccessibilityModifier",n[n.TypeScriptModifier=18654]="TypeScriptModifier",n[n.ExportDefault=513]="ExportDefault",n[n.All=27647]="All",(i=e.JsxFlags||(e.JsxFlags={}))[i.None=0]="None",i[i.IntrinsicNamedElement=1]="IntrinsicNamedElement",i[i.IntrinsicIndexedElement=2]="IntrinsicIndexedElement",i[i.IntrinsicElement=3]="IntrinsicElement",(a=e.RelationComparisonResult||(e.RelationComparisonResult={}))[a.Succeeded=1]="Succeeded",a[a.Failed=2]="Failed",a[a.Reported=4]="Reported",a[a.ReportsUnmeasurable=8]="ReportsUnmeasurable",a[a.ReportsUnreliable=16]="ReportsUnreliable",a[a.ReportsMask=24]="ReportsMask",(o=e.GeneratedIdentifierFlags||(e.GeneratedIdentifierFlags={}))[o.None=0]="None",o[o.Auto=1]="Auto",o[o.Loop=2]="Loop",o[o.Unique=3]="Unique",o[o.Node=4]="Node",o[o.KindMask=7]="KindMask",o[o.ReservedInNestedScopes=8]="ReservedInNestedScopes",o[o.Optimistic=16]="Optimistic",o[o.FileLevel=32]="FileLevel",o[o.AllowNameSubstitution=64]="AllowNameSubstitution",(s=e.TokenFlags||(e.TokenFlags={}))[s.None=0]="None",s[s.PrecedingLineBreak=1]="PrecedingLineBreak",s[s.PrecedingJSDocComment=2]="PrecedingJSDocComment",s[s.Unterminated=4]="Unterminated",s[s.ExtendedUnicodeEscape=8]="ExtendedUnicodeEscape",s[s.Scientific=16]="Scientific",s[s.Octal=32]="Octal",s[s.HexSpecifier=64]="HexSpecifier",s[s.BinarySpecifier=128]="BinarySpecifier",s[s.OctalSpecifier=256]="OctalSpecifier",s[s.ContainsSeparator=512]="ContainsSeparator",s[s.UnicodeEscape=1024]="UnicodeEscape",s[s.ContainsInvalidEscape=2048]="ContainsInvalidEscape",s[s.BinaryOrOctalSpecifier=384]="BinaryOrOctalSpecifier",s[s.NumericLiteralFlags=1008]="NumericLiteralFlags",s[s.TemplateLiteralLikeFlags=2048]="TemplateLiteralLikeFlags",(c=e.FlowFlags||(e.FlowFlags={}))[c.Unreachable=1]="Unreachable",c[c.Start=2]="Start",c[c.BranchLabel=4]="BranchLabel",c[c.LoopLabel=8]="LoopLabel",c[c.Assignment=16]="Assignment",c[c.TrueCondition=32]="TrueCondition",c[c.FalseCondition=64]="FalseCondition",c[c.SwitchClause=128]="SwitchClause",c[c.ArrayMutation=256]="ArrayMutation",c[c.Call=512]="Call",c[c.ReduceLabel=1024]="ReduceLabel",c[c.Referenced=2048]="Referenced",c[c.Shared=4096]="Shared",c[c.Label=12]="Label",c[c.Condition=96]="Condition",(u=e.CommentDirectiveType||(e.CommentDirectiveType={}))[u.ExpectError=0]="ExpectError",u[u.Ignore=1]="Ignore";var l,d,_,p,f,g,m,y,v,h,D,x,b,S,E,T,C,k,A,F,N,P,w,I,O,M,L,R,B,j,J,K,z,U,V,q,W,H,G,Y,X,$,Q,Z,ee,te,re,ne,ie,ae,oe,se,ce,ue,le,de=function(){};e.OperationCanceledException=de,(l=e.FileIncludeKind||(e.FileIncludeKind={}))[l.RootFile=0]="RootFile",l[l.SourceFromProjectReference=1]="SourceFromProjectReference",l[l.OutputFromProjectReference=2]="OutputFromProjectReference",l[l.Import=3]="Import",l[l.ReferenceFile=4]="ReferenceFile",l[l.TypeReferenceDirective=5]="TypeReferenceDirective",l[l.LibFile=6]="LibFile",l[l.LibReferenceDirective=7]="LibReferenceDirective",l[l.AutomaticTypeDirectiveFile=8]="AutomaticTypeDirectiveFile",(d=e.FilePreprocessingDiagnosticsKind||(e.FilePreprocessingDiagnosticsKind={}))[d.FilePreprocessingReferencedDiagnostic=0]="FilePreprocessingReferencedDiagnostic",d[d.FilePreprocessingFileExplainingDiagnostic=1]="FilePreprocessingFileExplainingDiagnostic",(_=e.StructureIsReused||(e.StructureIsReused={}))[_.Not=0]="Not",_[_.SafeModules=1]="SafeModules",_[_.Completely=2]="Completely",(p=e.ExitStatus||(e.ExitStatus={}))[p.Success=0]="Success",p[p.DiagnosticsPresent_OutputsSkipped=1]="DiagnosticsPresent_OutputsSkipped",p[p.DiagnosticsPresent_OutputsGenerated=2]="DiagnosticsPresent_OutputsGenerated",p[p.InvalidProject_OutputsSkipped=3]="InvalidProject_OutputsSkipped",p[p.ProjectReferenceCycle_OutputsSkipped=4]="ProjectReferenceCycle_OutputsSkipped",p[p.ProjectReferenceCycle_OutputsSkupped=4]="ProjectReferenceCycle_OutputsSkupped",(f=e.UnionReduction||(e.UnionReduction={}))[f.None=0]="None",f[f.Literal=1]="Literal",f[f.Subtype=2]="Subtype",(g=e.ContextFlags||(e.ContextFlags={}))[g.None=0]="None",g[g.Signature=1]="Signature",g[g.NoConstraints=2]="NoConstraints",g[g.Completions=4]="Completions",g[g.SkipBindingPatterns=8]="SkipBindingPatterns",(m=e.NodeBuilderFlags||(e.NodeBuilderFlags={}))[m.None=0]="None",m[m.NoTruncation=1]="NoTruncation",m[m.WriteArrayAsGenericType=2]="WriteArrayAsGenericType",m[m.GenerateNamesForShadowedTypeParams=4]="GenerateNamesForShadowedTypeParams",m[m.UseStructuralFallback=8]="UseStructuralFallback",m[m.ForbidIndexedAccessSymbolReferences=16]="ForbidIndexedAccessSymbolReferences",m[m.WriteTypeArgumentsOfSignature=32]="WriteTypeArgumentsOfSignature",m[m.UseFullyQualifiedType=64]="UseFullyQualifiedType",m[m.UseOnlyExternalAliasing=128]="UseOnlyExternalAliasing",m[m.SuppressAnyReturnType=256]="SuppressAnyReturnType",m[m.WriteTypeParametersInQualifiedName=512]="WriteTypeParametersInQualifiedName",m[m.MultilineObjectLiterals=1024]="MultilineObjectLiterals",m[m.WriteClassExpressionAsTypeLiteral=2048]="WriteClassExpressionAsTypeLiteral",m[m.UseTypeOfFunction=4096]="UseTypeOfFunction",m[m.OmitParameterModifiers=8192]="OmitParameterModifiers",m[m.UseAliasDefinedOutsideCurrentScope=16384]="UseAliasDefinedOutsideCurrentScope",m[m.UseSingleQuotesForStringLiteralType=268435456]="UseSingleQuotesForStringLiteralType",m[m.NoTypeReduction=536870912]="NoTypeReduction",m[m.NoUndefinedOptionalParameterType=1073741824]="NoUndefinedOptionalParameterType",m[m.AllowThisInObjectLiteral=32768]="AllowThisInObjectLiteral",m[m.AllowQualifiedNameInPlaceOfIdentifier=65536]="AllowQualifiedNameInPlaceOfIdentifier",m[m.AllowQualifedNameInPlaceOfIdentifier=65536]="AllowQualifedNameInPlaceOfIdentifier",m[m.AllowAnonymousIdentifier=131072]="AllowAnonymousIdentifier",m[m.AllowEmptyUnionOrIntersection=262144]="AllowEmptyUnionOrIntersection",m[m.AllowEmptyTuple=524288]="AllowEmptyTuple",m[m.AllowUniqueESSymbolType=1048576]="AllowUniqueESSymbolType",m[m.AllowEmptyIndexInfoType=2097152]="AllowEmptyIndexInfoType",m[m.AllowNodeModulesRelativePaths=67108864]="AllowNodeModulesRelativePaths",m[m.DoNotIncludeSymbolChain=134217728]="DoNotIncludeSymbolChain",m[m.IgnoreErrors=70221824]="IgnoreErrors",m[m.InObjectTypeLiteral=4194304]="InObjectTypeLiteral",m[m.InTypeAlias=8388608]="InTypeAlias",m[m.InInitialEntityName=16777216]="InInitialEntityName",(y=e.TypeFormatFlags||(e.TypeFormatFlags={}))[y.None=0]="None",y[y.NoTruncation=1]="NoTruncation",y[y.WriteArrayAsGenericType=2]="WriteArrayAsGenericType",y[y.UseStructuralFallback=8]="UseStructuralFallback",y[y.WriteTypeArgumentsOfSignature=32]="WriteTypeArgumentsOfSignature",y[y.UseFullyQualifiedType=64]="UseFullyQualifiedType",y[y.SuppressAnyReturnType=256]="SuppressAnyReturnType",y[y.MultilineObjectLiterals=1024]="MultilineObjectLiterals",y[y.WriteClassExpressionAsTypeLiteral=2048]="WriteClassExpressionAsTypeLiteral",y[y.UseTypeOfFunction=4096]="UseTypeOfFunction",y[y.OmitParameterModifiers=8192]="OmitParameterModifiers",y[y.UseAliasDefinedOutsideCurrentScope=16384]="UseAliasDefinedOutsideCurrentScope",y[y.UseSingleQuotesForStringLiteralType=268435456]="UseSingleQuotesForStringLiteralType",y[y.NoTypeReduction=536870912]="NoTypeReduction",y[y.AllowUniqueESSymbolType=1048576]="AllowUniqueESSymbolType",y[y.AddUndefined=131072]="AddUndefined",y[y.WriteArrowStyleSignature=262144]="WriteArrowStyleSignature",y[y.InArrayType=524288]="InArrayType",y[y.InElementType=2097152]="InElementType",y[y.InFirstTypeArgument=4194304]="InFirstTypeArgument",y[y.InTypeAlias=8388608]="InTypeAlias",y[y.WriteOwnNameForAnyLike=0]="WriteOwnNameForAnyLike",y[y.NodeBuilderFlagsMask=814775659]="NodeBuilderFlagsMask",(v=e.SymbolFormatFlags||(e.SymbolFormatFlags={}))[v.None=0]="None",v[v.WriteTypeParametersOrArguments=1]="WriteTypeParametersOrArguments",v[v.UseOnlyExternalAliasing=2]="UseOnlyExternalAliasing",v[v.AllowAnyNodeKind=4]="AllowAnyNodeKind",v[v.UseAliasDefinedOutsideCurrentScope=8]="UseAliasDefinedOutsideCurrentScope",v[v.DoNotIncludeSymbolChain=16]="DoNotIncludeSymbolChain",(h=e.SymbolAccessibility||(e.SymbolAccessibility={}))[h.Accessible=0]="Accessible",h[h.NotAccessible=1]="NotAccessible",h[h.CannotBeNamed=2]="CannotBeNamed",(D=e.SyntheticSymbolKind||(e.SyntheticSymbolKind={}))[D.UnionOrIntersection=0]="UnionOrIntersection",D[D.Spread=1]="Spread",(x=e.TypePredicateKind||(e.TypePredicateKind={}))[x.This=0]="This",x[x.Identifier=1]="Identifier",x[x.AssertsThis=2]="AssertsThis",x[x.AssertsIdentifier=3]="AssertsIdentifier",(b=e.TypeReferenceSerializationKind||(e.TypeReferenceSerializationKind={}))[b.Unknown=0]="Unknown",b[b.TypeWithConstructSignatureAndValue=1]="TypeWithConstructSignatureAndValue",b[b.VoidNullableOrNeverType=2]="VoidNullableOrNeverType",b[b.NumberLikeType=3]="NumberLikeType",b[b.BigIntLikeType=4]="BigIntLikeType",b[b.StringLikeType=5]="StringLikeType",b[b.BooleanType=6]="BooleanType",b[b.ArrayLikeType=7]="ArrayLikeType",b[b.ESSymbolType=8]="ESSymbolType",b[b.Promise=9]="Promise",b[b.TypeWithCallSignature=10]="TypeWithCallSignature",b[b.ObjectType=11]="ObjectType",(S=e.SymbolFlags||(e.SymbolFlags={}))[S.None=0]="None",S[S.FunctionScopedVariable=1]="FunctionScopedVariable",S[S.BlockScopedVariable=2]="BlockScopedVariable",S[S.Property=4]="Property",S[S.EnumMember=8]="EnumMember",S[S.Function=16]="Function",S[S.Class=32]="Class",S[S.Interface=64]="Interface",S[S.ConstEnum=128]="ConstEnum",S[S.RegularEnum=256]="RegularEnum",S[S.ValueModule=512]="ValueModule",S[S.NamespaceModule=1024]="NamespaceModule",S[S.TypeLiteral=2048]="TypeLiteral",S[S.ObjectLiteral=4096]="ObjectLiteral",S[S.Method=8192]="Method",S[S.Constructor=16384]="Constructor",S[S.GetAccessor=32768]="GetAccessor",S[S.SetAccessor=65536]="SetAccessor",S[S.Signature=131072]="Signature",S[S.TypeParameter=262144]="TypeParameter",S[S.TypeAlias=524288]="TypeAlias",S[S.ExportValue=1048576]="ExportValue",S[S.Alias=2097152]="Alias",S[S.Prototype=4194304]="Prototype",S[S.ExportStar=8388608]="ExportStar",S[S.Optional=16777216]="Optional",S[S.Transient=33554432]="Transient",S[S.Assignment=67108864]="Assignment",S[S.ModuleExports=134217728]="ModuleExports",S[S.All=67108863]="All",S[S.Enum=384]="Enum",S[S.Variable=3]="Variable",S[S.Value=111551]="Value",S[S.Type=788968]="Type",S[S.Namespace=1920]="Namespace",S[S.Module=1536]="Module",S[S.Accessor=98304]="Accessor",S[S.FunctionScopedVariableExcludes=111550]="FunctionScopedVariableExcludes",S[S.BlockScopedVariableExcludes=111551]="BlockScopedVariableExcludes",S[S.ParameterExcludes=111551]="ParameterExcludes",S[S.PropertyExcludes=0]="PropertyExcludes",S[S.EnumMemberExcludes=900095]="EnumMemberExcludes",S[S.FunctionExcludes=110991]="FunctionExcludes",S[S.ClassExcludes=899503]="ClassExcludes",S[S.InterfaceExcludes=788872]="InterfaceExcludes",S[S.RegularEnumExcludes=899327]="RegularEnumExcludes",S[S.ConstEnumExcludes=899967]="ConstEnumExcludes",S[S.ValueModuleExcludes=110735]="ValueModuleExcludes",S[S.NamespaceModuleExcludes=0]="NamespaceModuleExcludes",S[S.MethodExcludes=103359]="MethodExcludes",S[S.GetAccessorExcludes=46015]="GetAccessorExcludes",S[S.SetAccessorExcludes=78783]="SetAccessorExcludes",S[S.TypeParameterExcludes=526824]="TypeParameterExcludes",S[S.TypeAliasExcludes=788968]="TypeAliasExcludes",S[S.AliasExcludes=2097152]="AliasExcludes",S[S.ModuleMember=2623475]="ModuleMember",S[S.ExportHasLocal=944]="ExportHasLocal",S[S.BlockScoped=418]="BlockScoped",S[S.PropertyOrAccessor=98308]="PropertyOrAccessor",S[S.ClassMember=106500]="ClassMember",S[S.ExportSupportsDefaultModifier=112]="ExportSupportsDefaultModifier",S[S.ExportDoesNotSupportDefaultModifier=-113]="ExportDoesNotSupportDefaultModifier",S[S.Classifiable=2885600]="Classifiable",S[S.LateBindingContainer=6256]="LateBindingContainer",(E=e.EnumKind||(e.EnumKind={}))[E.Numeric=0]="Numeric",E[E.Literal=1]="Literal",(T=e.CheckFlags||(e.CheckFlags={}))[T.Instantiated=1]="Instantiated",T[T.SyntheticProperty=2]="SyntheticProperty",T[T.SyntheticMethod=4]="SyntheticMethod",T[T.Readonly=8]="Readonly",T[T.ReadPartial=16]="ReadPartial",T[T.WritePartial=32]="WritePartial",T[T.HasNonUniformType=64]="HasNonUniformType",T[T.HasLiteralType=128]="HasLiteralType",T[T.ContainsPublic=256]="ContainsPublic",T[T.ContainsProtected=512]="ContainsProtected",T[T.ContainsPrivate=1024]="ContainsPrivate",T[T.ContainsStatic=2048]="ContainsStatic",T[T.Late=4096]="Late",T[T.ReverseMapped=8192]="ReverseMapped",T[T.OptionalParameter=16384]="OptionalParameter",T[T.RestParameter=32768]="RestParameter",T[T.DeferredType=65536]="DeferredType",T[T.HasNeverType=131072]="HasNeverType",T[T.Mapped=262144]="Mapped",T[T.StripOptional=524288]="StripOptional",T[T.Synthetic=6]="Synthetic",T[T.Discriminant=192]="Discriminant",T[T.Partial=48]="Partial",(C=e.InternalSymbolName||(e.InternalSymbolName={})).Call="__call",C.Constructor="__constructor",C.New="__new",C.Index="__index",C.ExportStar="__export",C.Global="__global",C.Missing="__missing",C.Type="__type",C.Object="__object",C.JSXAttributes="__jsxAttributes",C.Class="__class",C.Function="__function",C.Computed="__computed",C.Resolving="__resolving__",C.ExportEquals="export=",C.Default="default",C.This="this",(k=e.NodeCheckFlags||(e.NodeCheckFlags={}))[k.TypeChecked=1]="TypeChecked",k[k.LexicalThis=2]="LexicalThis",k[k.CaptureThis=4]="CaptureThis",k[k.CaptureNewTarget=8]="CaptureNewTarget",k[k.SuperInstance=256]="SuperInstance",k[k.SuperStatic=512]="SuperStatic",k[k.ContextChecked=1024]="ContextChecked",k[k.AsyncMethodWithSuper=2048]="AsyncMethodWithSuper",k[k.AsyncMethodWithSuperBinding=4096]="AsyncMethodWithSuperBinding",k[k.CaptureArguments=8192]="CaptureArguments",k[k.EnumValuesComputed=16384]="EnumValuesComputed",k[k.LexicalModuleMergesWithClass=32768]="LexicalModuleMergesWithClass",k[k.LoopWithCapturedBlockScopedBinding=65536]="LoopWithCapturedBlockScopedBinding",k[k.ContainsCapturedBlockScopeBinding=131072]="ContainsCapturedBlockScopeBinding",k[k.CapturedBlockScopedBinding=262144]="CapturedBlockScopedBinding",k[k.BlockScopedBindingInLoop=524288]="BlockScopedBindingInLoop",k[k.ClassWithBodyScopedClassBinding=1048576]="ClassWithBodyScopedClassBinding",k[k.BodyScopedClassBinding=2097152]="BodyScopedClassBinding",k[k.NeedsLoopOutParameter=4194304]="NeedsLoopOutParameter",k[k.AssignmentsMarked=8388608]="AssignmentsMarked",k[k.ClassWithConstructorReference=16777216]="ClassWithConstructorReference",k[k.ConstructorReferenceInClass=33554432]="ConstructorReferenceInClass",k[k.ContainsClassWithPrivateIdentifiers=67108864]="ContainsClassWithPrivateIdentifiers",(A=e.TypeFlags||(e.TypeFlags={}))[A.Any=1]="Any",A[A.Unknown=2]="Unknown",A[A.String=4]="String",A[A.Number=8]="Number",A[A.Boolean=16]="Boolean",A[A.Enum=32]="Enum",A[A.BigInt=64]="BigInt",A[A.StringLiteral=128]="StringLiteral",A[A.NumberLiteral=256]="NumberLiteral",A[A.BooleanLiteral=512]="BooleanLiteral",A[A.EnumLiteral=1024]="EnumLiteral",A[A.BigIntLiteral=2048]="BigIntLiteral",A[A.ESSymbol=4096]="ESSymbol",A[A.UniqueESSymbol=8192]="UniqueESSymbol",A[A.Void=16384]="Void",A[A.Undefined=32768]="Undefined",A[A.Null=65536]="Null",A[A.Never=131072]="Never",A[A.TypeParameter=262144]="TypeParameter",A[A.Object=524288]="Object",A[A.Union=1048576]="Union",A[A.Intersection=2097152]="Intersection",A[A.Index=4194304]="Index",A[A.IndexedAccess=8388608]="IndexedAccess",A[A.Conditional=16777216]="Conditional",A[A.Substitution=33554432]="Substitution",A[A.NonPrimitive=67108864]="NonPrimitive",A[A.TemplateLiteral=134217728]="TemplateLiteral",A[A.StringMapping=268435456]="StringMapping",A[A.AnyOrUnknown=3]="AnyOrUnknown",A[A.Nullable=98304]="Nullable",A[A.Literal=2944]="Literal",A[A.Unit=109440]="Unit",A[A.StringOrNumberLiteral=384]="StringOrNumberLiteral",A[A.StringOrNumberLiteralOrUnique=8576]="StringOrNumberLiteralOrUnique",A[A.DefinitelyFalsy=117632]="DefinitelyFalsy",A[A.PossiblyFalsy=117724]="PossiblyFalsy",A[A.Intrinsic=67359327]="Intrinsic",A[A.Primitive=131068]="Primitive",A[A.StringLike=402653316]="StringLike",A[A.NumberLike=296]="NumberLike",A[A.BigIntLike=2112]="BigIntLike",A[A.BooleanLike=528]="BooleanLike",A[A.EnumLike=1056]="EnumLike",A[A.ESSymbolLike=12288]="ESSymbolLike",A[A.VoidLike=49152]="VoidLike",A[A.DisjointDomains=469892092]="DisjointDomains",A[A.UnionOrIntersection=3145728]="UnionOrIntersection",A[A.StructuredType=3670016]="StructuredType",A[A.TypeVariable=8650752]="TypeVariable",A[A.InstantiableNonPrimitive=58982400]="InstantiableNonPrimitive",A[A.InstantiablePrimitive=406847488]="InstantiablePrimitive",A[A.Instantiable=465829888]="Instantiable",A[A.StructuredOrInstantiable=469499904]="StructuredOrInstantiable",A[A.ObjectFlagsType=3899393]="ObjectFlagsType",A[A.Simplifiable=25165824]="Simplifiable",A[A.Substructure=469237760]="Substructure",A[A.Narrowable=536624127]="Narrowable",A[A.NotPrimitiveUnion=468598819]="NotPrimitiveUnion",A[A.IncludesMask=205258751]="IncludesMask",A[A.IncludesStructuredOrInstantiable=262144]="IncludesStructuredOrInstantiable",A[A.IncludesNonWideningType=4194304]="IncludesNonWideningType",A[A.IncludesWildcard=8388608]="IncludesWildcard",A[A.IncludesEmptyObject=16777216]="IncludesEmptyObject",(F=e.ObjectFlags||(e.ObjectFlags={}))[F.Class=1]="Class",F[F.Interface=2]="Interface",F[F.Reference=4]="Reference",F[F.Tuple=8]="Tuple",F[F.Anonymous=16]="Anonymous",F[F.Mapped=32]="Mapped",F[F.Instantiated=64]="Instantiated",F[F.ObjectLiteral=128]="ObjectLiteral",F[F.EvolvingArray=256]="EvolvingArray",F[F.ObjectLiteralPatternWithComputedProperties=512]="ObjectLiteralPatternWithComputedProperties",F[F.ReverseMapped=1024]="ReverseMapped",F[F.JsxAttributes=2048]="JsxAttributes",F[F.MarkerType=4096]="MarkerType",F[F.JSLiteral=8192]="JSLiteral",F[F.FreshLiteral=16384]="FreshLiteral",F[F.ArrayLiteral=32768]="ArrayLiteral",F[F.PrimitiveUnion=65536]="PrimitiveUnion",F[F.ContainsWideningType=131072]="ContainsWideningType",F[F.ContainsObjectOrArrayLiteral=262144]="ContainsObjectOrArrayLiteral",F[F.NonInferrableType=524288]="NonInferrableType",F[F.CouldContainTypeVariablesComputed=1048576]="CouldContainTypeVariablesComputed",F[F.CouldContainTypeVariables=2097152]="CouldContainTypeVariables",F[F.ClassOrInterface=3]="ClassOrInterface",F[F.RequiresWidening=393216]="RequiresWidening",F[F.PropagatingFlags=917504]="PropagatingFlags",F[F.ObjectTypeKindMask=1343]="ObjectTypeKindMask",F[F.ContainsSpread=4194304]="ContainsSpread",F[F.ObjectRestType=8388608]="ObjectRestType",F[F.IsClassInstanceClone=16777216]="IsClassInstanceClone",F[F.IdenticalBaseTypeCalculated=33554432]="IdenticalBaseTypeCalculated",F[F.IdenticalBaseTypeExists=67108864]="IdenticalBaseTypeExists",F[F.IsGenericObjectTypeComputed=4194304]="IsGenericObjectTypeComputed",F[F.IsGenericObjectType=8388608]="IsGenericObjectType",F[F.IsGenericIndexTypeComputed=16777216]="IsGenericIndexTypeComputed",F[F.IsGenericIndexType=33554432]="IsGenericIndexType",F[F.ContainsIntersections=67108864]="ContainsIntersections",F[F.IsNeverIntersectionComputed=67108864]="IsNeverIntersectionComputed",F[F.IsNeverIntersection=134217728]="IsNeverIntersection",(N=e.VarianceFlags||(e.VarianceFlags={}))[N.Invariant=0]="Invariant",N[N.Covariant=1]="Covariant",N[N.Contravariant=2]="Contravariant",N[N.Bivariant=3]="Bivariant",N[N.Independent=4]="Independent",N[N.VarianceMask=7]="VarianceMask",N[N.Unmeasurable=8]="Unmeasurable",N[N.Unreliable=16]="Unreliable",N[N.AllowsStructuralFallback=24]="AllowsStructuralFallback",(P=e.ElementFlags||(e.ElementFlags={}))[P.Required=1]="Required",P[P.Optional=2]="Optional",P[P.Rest=4]="Rest",P[P.Variadic=8]="Variadic",P[P.Fixed=3]="Fixed",P[P.Variable=12]="Variable",P[P.NonRequired=14]="NonRequired",P[P.NonRest=11]="NonRest",(w=e.JsxReferenceKind||(e.JsxReferenceKind={}))[w.Component=0]="Component",w[w.Function=1]="Function",w[w.Mixed=2]="Mixed",(I=e.SignatureKind||(e.SignatureKind={}))[I.Call=0]="Call",I[I.Construct=1]="Construct",(O=e.SignatureFlags||(e.SignatureFlags={}))[O.None=0]="None",O[O.HasRestParameter=1]="HasRestParameter",O[O.HasLiteralTypes=2]="HasLiteralTypes",O[O.Abstract=4]="Abstract",O[O.IsInnerCallChain=8]="IsInnerCallChain",O[O.IsOuterCallChain=16]="IsOuterCallChain",O[O.IsUntypedSignatureInJSFile=32]="IsUntypedSignatureInJSFile",O[O.PropagatingFlags=39]="PropagatingFlags",O[O.CallChainFlags=24]="CallChainFlags",(M=e.IndexKind||(e.IndexKind={}))[M.String=0]="String",M[M.Number=1]="Number",(L=e.TypeMapKind||(e.TypeMapKind={}))[L.Simple=0]="Simple",L[L.Array=1]="Array",L[L.Function=2]="Function",L[L.Composite=3]="Composite",L[L.Merged=4]="Merged",(R=e.InferencePriority||(e.InferencePriority={}))[R.NakedTypeVariable=1]="NakedTypeVariable",R[R.SpeculativeTuple=2]="SpeculativeTuple",R[R.SubstituteSource=4]="SubstituteSource",R[R.HomomorphicMappedType=8]="HomomorphicMappedType",R[R.PartialHomomorphicMappedType=16]="PartialHomomorphicMappedType",R[R.MappedTypeConstraint=32]="MappedTypeConstraint",R[R.ContravariantConditional=64]="ContravariantConditional",R[R.ReturnType=128]="ReturnType",R[R.LiteralKeyof=256]="LiteralKeyof",R[R.NoConstraints=512]="NoConstraints",R[R.AlwaysStrict=1024]="AlwaysStrict",R[R.MaxValue=2048]="MaxValue",R[R.PriorityImpliesCombination=416]="PriorityImpliesCombination",R[R.Circularity=-1]="Circularity",(B=e.InferenceFlags||(e.InferenceFlags={}))[B.None=0]="None",B[B.NoDefault=1]="NoDefault",B[B.AnyDefault=2]="AnyDefault",B[B.SkippedGenericFunction=4]="SkippedGenericFunction",(j=e.Ternary||(e.Ternary={}))[j.False=0]="False",j[j.Unknown=1]="Unknown",j[j.Maybe=3]="Maybe",j[j.True=-1]="True",(J=e.AssignmentDeclarationKind||(e.AssignmentDeclarationKind={}))[J.None=0]="None",J[J.ExportsProperty=1]="ExportsProperty",J[J.ModuleExports=2]="ModuleExports",J[J.PrototypeProperty=3]="PrototypeProperty",J[J.ThisProperty=4]="ThisProperty",J[J.Property=5]="Property",J[J.Prototype=6]="Prototype",J[J.ObjectDefinePropertyValue=7]="ObjectDefinePropertyValue",J[J.ObjectDefinePropertyExports=8]="ObjectDefinePropertyExports",J[J.ObjectDefinePrototypeProperty=9]="ObjectDefinePrototypeProperty",function(e){e[e.Warning=0]="Warning",e[e.Error=1]="Error",e[e.Suggestion=2]="Suggestion",e[e.Message=3]="Message"}(K=e.DiagnosticCategory||(e.DiagnosticCategory={})),e.diagnosticCategoryName=function(e,t){void 0===t&&(t=!0);var r=K[e.category];return t?r.toLowerCase():r},(z=e.ModuleResolutionKind||(e.ModuleResolutionKind={}))[z.Classic=1]="Classic",z[z.NodeJs=2]="NodeJs",(U=e.WatchFileKind||(e.WatchFileKind={}))[U.FixedPollingInterval=0]="FixedPollingInterval",U[U.PriorityPollingInterval=1]="PriorityPollingInterval",U[U.DynamicPriorityPolling=2]="DynamicPriorityPolling",U[U.FixedChunkSizePolling=3]="FixedChunkSizePolling",U[U.UseFsEvents=4]="UseFsEvents",U[U.UseFsEventsOnParentDirectory=5]="UseFsEventsOnParentDirectory",(V=e.WatchDirectoryKind||(e.WatchDirectoryKind={}))[V.UseFsEvents=0]="UseFsEvents",V[V.FixedPollingInterval=1]="FixedPollingInterval",V[V.DynamicPriorityPolling=2]="DynamicPriorityPolling",V[V.FixedChunkSizePolling=3]="FixedChunkSizePolling",(q=e.PollingWatchKind||(e.PollingWatchKind={}))[q.FixedInterval=0]="FixedInterval",q[q.PriorityInterval=1]="PriorityInterval",q[q.DynamicPriority=2]="DynamicPriority",q[q.FixedChunkSize=3]="FixedChunkSize",(W=e.ModuleKind||(e.ModuleKind={}))[W.None=0]="None",W[W.CommonJS=1]="CommonJS",W[W.AMD=2]="AMD",W[W.UMD=3]="UMD",W[W.System=4]="System",W[W.ES2015=5]="ES2015",W[W.ES2020=6]="ES2020",W[W.ESNext=99]="ESNext",(H=e.JsxEmit||(e.JsxEmit={}))[H.None=0]="None",H[H.Preserve=1]="Preserve",H[H.React=2]="React",H[H.ReactNative=3]="ReactNative",H[H.ReactJSX=4]="ReactJSX",H[H.ReactJSXDev=5]="ReactJSXDev",(G=e.ImportsNotUsedAsValues||(e.ImportsNotUsedAsValues={}))[G.Remove=0]="Remove",G[G.Preserve=1]="Preserve",G[G.Error=2]="Error",(Y=e.NewLineKind||(e.NewLineKind={}))[Y.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",Y[Y.LineFeed=1]="LineFeed",(X=e.ScriptKind||(e.ScriptKind={}))[X.Unknown=0]="Unknown",X[X.JS=1]="JS",X[X.JSX=2]="JSX",X[X.TS=3]="TS",X[X.TSX=4]="TSX",X[X.External=5]="External",X[X.JSON=6]="JSON",X[X.Deferred=7]="Deferred",($=e.ScriptTarget||(e.ScriptTarget={}))[$.ES3=0]="ES3",$[$.ES5=1]="ES5",$[$.ES2015=2]="ES2015",$[$.ES2016=3]="ES2016",$[$.ES2017=4]="ES2017",$[$.ES2018=5]="ES2018",$[$.ES2019=6]="ES2019",$[$.ES2020=7]="ES2020",$[$.ES2021=8]="ES2021",$[$.ESNext=99]="ESNext",$[$.JSON=100]="JSON",$[$.Latest=99]="Latest",(Q=e.LanguageVariant||(e.LanguageVariant={}))[Q.Standard=0]="Standard",Q[Q.JSX=1]="JSX",(Z=e.WatchDirectoryFlags||(e.WatchDirectoryFlags={}))[Z.None=0]="None",Z[Z.Recursive=1]="Recursive",(ee=e.CharacterCodes||(e.CharacterCodes={}))[ee.nullCharacter=0]="nullCharacter",ee[ee.maxAsciiCharacter=127]="maxAsciiCharacter",ee[ee.lineFeed=10]="lineFeed",ee[ee.carriageReturn=13]="carriageReturn",ee[ee.lineSeparator=8232]="lineSeparator",ee[ee.paragraphSeparator=8233]="paragraphSeparator",ee[ee.nextLine=133]="nextLine",ee[ee.space=32]="space",ee[ee.nonBreakingSpace=160]="nonBreakingSpace",ee[ee.enQuad=8192]="enQuad",ee[ee.emQuad=8193]="emQuad",ee[ee.enSpace=8194]="enSpace",ee[ee.emSpace=8195]="emSpace",ee[ee.threePerEmSpace=8196]="threePerEmSpace",ee[ee.fourPerEmSpace=8197]="fourPerEmSpace",ee[ee.sixPerEmSpace=8198]="sixPerEmSpace",ee[ee.figureSpace=8199]="figureSpace",ee[ee.punctuationSpace=8200]="punctuationSpace",ee[ee.thinSpace=8201]="thinSpace",ee[ee.hairSpace=8202]="hairSpace",ee[ee.zeroWidthSpace=8203]="zeroWidthSpace",ee[ee.narrowNoBreakSpace=8239]="narrowNoBreakSpace",ee[ee.ideographicSpace=12288]="ideographicSpace",ee[ee.mathematicalSpace=8287]="mathematicalSpace",ee[ee.ogham=5760]="ogham",ee[ee._=95]="_",ee[ee.$=36]="$",ee[ee._0=48]="_0",ee[ee._1=49]="_1",ee[ee._2=50]="_2",ee[ee._3=51]="_3",ee[ee._4=52]="_4",ee[ee._5=53]="_5",ee[ee._6=54]="_6",ee[ee._7=55]="_7",ee[ee._8=56]="_8",ee[ee._9=57]="_9",ee[ee.a=97]="a",ee[ee.b=98]="b",ee[ee.c=99]="c",ee[ee.d=100]="d",ee[ee.e=101]="e",ee[ee.f=102]="f",ee[ee.g=103]="g",ee[ee.h=104]="h",ee[ee.i=105]="i",ee[ee.j=106]="j",ee[ee.k=107]="k",ee[ee.l=108]="l",ee[ee.m=109]="m",ee[ee.n=110]="n",ee[ee.o=111]="o",ee[ee.p=112]="p",ee[ee.q=113]="q",ee[ee.r=114]="r",ee[ee.s=115]="s",ee[ee.t=116]="t",ee[ee.u=117]="u",ee[ee.v=118]="v",ee[ee.w=119]="w",ee[ee.x=120]="x",ee[ee.y=121]="y",ee[ee.z=122]="z",ee[ee.A=65]="A",ee[ee.B=66]="B",ee[ee.C=67]="C",ee[ee.D=68]="D",ee[ee.E=69]="E",ee[ee.F=70]="F",ee[ee.G=71]="G",ee[ee.H=72]="H",ee[ee.I=73]="I",ee[ee.J=74]="J",ee[ee.K=75]="K",ee[ee.L=76]="L",ee[ee.M=77]="M",ee[ee.N=78]="N",ee[ee.O=79]="O",ee[ee.P=80]="P",ee[ee.Q=81]="Q",ee[ee.R=82]="R",ee[ee.S=83]="S",ee[ee.T=84]="T",ee[ee.U=85]="U",ee[ee.V=86]="V",ee[ee.W=87]="W",ee[ee.X=88]="X",ee[ee.Y=89]="Y",ee[ee.Z=90]="Z",ee[ee.ampersand=38]="ampersand",ee[ee.asterisk=42]="asterisk",ee[ee.at=64]="at",ee[ee.backslash=92]="backslash",ee[ee.backtick=96]="backtick",ee[ee.bar=124]="bar",ee[ee.caret=94]="caret",ee[ee.closeBrace=125]="closeBrace",ee[ee.closeBracket=93]="closeBracket",ee[ee.closeParen=41]="closeParen",ee[ee.colon=58]="colon",ee[ee.comma=44]="comma",ee[ee.dot=46]="dot",ee[ee.doubleQuote=34]="doubleQuote",ee[ee.equals=61]="equals",ee[ee.exclamation=33]="exclamation",ee[ee.greaterThan=62]="greaterThan",ee[ee.hash=35]="hash",ee[ee.lessThan=60]="lessThan",ee[ee.minus=45]="minus",ee[ee.openBrace=123]="openBrace",ee[ee.openBracket=91]="openBracket",ee[ee.openParen=40]="openParen",ee[ee.percent=37]="percent",ee[ee.plus=43]="plus",ee[ee.question=63]="question",ee[ee.semicolon=59]="semicolon",ee[ee.singleQuote=39]="singleQuote",ee[ee.slash=47]="slash",ee[ee.tilde=126]="tilde",ee[ee.backspace=8]="backspace",ee[ee.formFeed=12]="formFeed",ee[ee.byteOrderMark=65279]="byteOrderMark",ee[ee.tab=9]="tab",ee[ee.verticalTab=11]="verticalTab",(te=e.Extension||(e.Extension={})).Ts=".ts",te.Tsx=".tsx",te.Dts=".d.ts",te.Js=".js",te.Jsx=".jsx",te.Json=".json",te.TsBuildInfo=".tsbuildinfo",(re=e.TransformFlags||(e.TransformFlags={}))[re.None=0]="None",re[re.ContainsTypeScript=1]="ContainsTypeScript",re[re.ContainsJsx=2]="ContainsJsx",re[re.ContainsESNext=4]="ContainsESNext",re[re.ContainsES2021=8]="ContainsES2021",re[re.ContainsES2020=16]="ContainsES2020",re[re.ContainsES2019=32]="ContainsES2019",re[re.ContainsES2018=64]="ContainsES2018",re[re.ContainsES2017=128]="ContainsES2017",re[re.ContainsES2016=256]="ContainsES2016",re[re.ContainsES2015=512]="ContainsES2015",re[re.ContainsGenerator=1024]="ContainsGenerator",re[re.ContainsDestructuringAssignment=2048]="ContainsDestructuringAssignment",re[re.ContainsTypeScriptClassSyntax=4096]="ContainsTypeScriptClassSyntax",re[re.ContainsLexicalThis=8192]="ContainsLexicalThis",re[re.ContainsRestOrSpread=16384]="ContainsRestOrSpread",re[re.ContainsObjectRestOrSpread=32768]="ContainsObjectRestOrSpread",re[re.ContainsComputedPropertyName=65536]="ContainsComputedPropertyName",re[re.ContainsBlockScopedBinding=131072]="ContainsBlockScopedBinding",re[re.ContainsBindingPattern=262144]="ContainsBindingPattern",re[re.ContainsYield=524288]="ContainsYield",re[re.ContainsAwait=1048576]="ContainsAwait",re[re.ContainsHoistedDeclarationOrCompletion=2097152]="ContainsHoistedDeclarationOrCompletion",re[re.ContainsDynamicImport=4194304]="ContainsDynamicImport",re[re.ContainsClassFields=8388608]="ContainsClassFields",re[re.ContainsPossibleTopLevelAwait=16777216]="ContainsPossibleTopLevelAwait",re[re.HasComputedFlags=536870912]="HasComputedFlags",re[re.AssertTypeScript=1]="AssertTypeScript",re[re.AssertJsx=2]="AssertJsx",re[re.AssertESNext=4]="AssertESNext",re[re.AssertES2021=8]="AssertES2021",re[re.AssertES2020=16]="AssertES2020",re[re.AssertES2019=32]="AssertES2019",re[re.AssertES2018=64]="AssertES2018",re[re.AssertES2017=128]="AssertES2017",re[re.AssertES2016=256]="AssertES2016",re[re.AssertES2015=512]="AssertES2015",re[re.AssertGenerator=1024]="AssertGenerator",re[re.AssertDestructuringAssignment=2048]="AssertDestructuringAssignment",re[re.OuterExpressionExcludes=536870912]="OuterExpressionExcludes",re[re.PropertyAccessExcludes=536870912]="PropertyAccessExcludes",re[re.NodeExcludes=536870912]="NodeExcludes",re[re.ArrowFunctionExcludes=557748224]="ArrowFunctionExcludes",re[re.FunctionExcludes=557756416]="FunctionExcludes",re[re.ConstructorExcludes=557752320]="ConstructorExcludes",re[re.MethodOrAccessorExcludes=540975104]="MethodOrAccessorExcludes",re[re.PropertyExcludes=536879104]="PropertyExcludes",re[re.ClassExcludes=536940544]="ClassExcludes",re[re.ModuleExcludes=555888640]="ModuleExcludes",re[re.TypeExcludes=-2]="TypeExcludes",re[re.ObjectLiteralExcludes=536973312]="ObjectLiteralExcludes",re[re.ArrayLiteralOrCallOrNewExcludes=536887296]="ArrayLiteralOrCallOrNewExcludes",re[re.VariableDeclarationListExcludes=537165824]="VariableDeclarationListExcludes",re[re.ParameterExcludes=536870912]="ParameterExcludes",re[re.CatchClauseExcludes=536903680]="CatchClauseExcludes",re[re.BindingPatternExcludes=536887296]="BindingPatternExcludes",re[re.PropertyNamePropagatingFlags=8192]="PropertyNamePropagatingFlags",(ne=e.EmitFlags||(e.EmitFlags={}))[ne.None=0]="None",ne[ne.SingleLine=1]="SingleLine",ne[ne.AdviseOnEmitNode=2]="AdviseOnEmitNode",ne[ne.NoSubstitution=4]="NoSubstitution",ne[ne.CapturesThis=8]="CapturesThis",ne[ne.NoLeadingSourceMap=16]="NoLeadingSourceMap",ne[ne.NoTrailingSourceMap=32]="NoTrailingSourceMap",ne[ne.NoSourceMap=48]="NoSourceMap",ne[ne.NoNestedSourceMaps=64]="NoNestedSourceMaps",ne[ne.NoTokenLeadingSourceMaps=128]="NoTokenLeadingSourceMaps",ne[ne.NoTokenTrailingSourceMaps=256]="NoTokenTrailingSourceMaps",ne[ne.NoTokenSourceMaps=384]="NoTokenSourceMaps",ne[ne.NoLeadingComments=512]="NoLeadingComments",ne[ne.NoTrailingComments=1024]="NoTrailingComments",ne[ne.NoComments=1536]="NoComments",ne[ne.NoNestedComments=2048]="NoNestedComments",ne[ne.HelperName=4096]="HelperName",ne[ne.ExportName=8192]="ExportName",ne[ne.LocalName=16384]="LocalName",ne[ne.InternalName=32768]="InternalName",ne[ne.Indented=65536]="Indented",ne[ne.NoIndentation=131072]="NoIndentation",ne[ne.AsyncFunctionBody=262144]="AsyncFunctionBody",ne[ne.ReuseTempVariableScope=524288]="ReuseTempVariableScope",ne[ne.CustomPrologue=1048576]="CustomPrologue",ne[ne.NoHoisting=2097152]="NoHoisting",ne[ne.HasEndOfDeclarationMarker=4194304]="HasEndOfDeclarationMarker",ne[ne.Iterator=8388608]="Iterator",ne[ne.NoAsciiEscaping=16777216]="NoAsciiEscaping",ne[ne.TypeScriptClassWrapper=33554432]="TypeScriptClassWrapper",ne[ne.NeverApplyImportHelper=67108864]="NeverApplyImportHelper",ne[ne.IgnoreSourceNewlines=134217728]="IgnoreSourceNewlines",(ie=e.ExternalEmitHelpers||(e.ExternalEmitHelpers={}))[ie.Extends=1]="Extends",ie[ie.Assign=2]="Assign",ie[ie.Rest=4]="Rest",ie[ie.Decorate=8]="Decorate",ie[ie.Metadata=16]="Metadata",ie[ie.Param=32]="Param",ie[ie.Awaiter=64]="Awaiter",ie[ie.Generator=128]="Generator",ie[ie.Values=256]="Values",ie[ie.Read=512]="Read",ie[ie.SpreadArray=1024]="SpreadArray",ie[ie.Await=2048]="Await",ie[ie.AsyncGenerator=4096]="AsyncGenerator",ie[ie.AsyncDelegator=8192]="AsyncDelegator",ie[ie.AsyncValues=16384]="AsyncValues",ie[ie.ExportStar=32768]="ExportStar",ie[ie.ImportStar=65536]="ImportStar",ie[ie.ImportDefault=131072]="ImportDefault",ie[ie.MakeTemplateObject=262144]="MakeTemplateObject",ie[ie.ClassPrivateFieldGet=524288]="ClassPrivateFieldGet",ie[ie.ClassPrivateFieldSet=1048576]="ClassPrivateFieldSet",ie[ie.CreateBinding=2097152]="CreateBinding",ie[ie.FirstEmitHelper=1]="FirstEmitHelper",ie[ie.LastEmitHelper=2097152]="LastEmitHelper",ie[ie.ForOfIncludes=256]="ForOfIncludes",ie[ie.ForAwaitOfIncludes=16384]="ForAwaitOfIncludes",ie[ie.AsyncGeneratorIncludes=6144]="AsyncGeneratorIncludes",ie[ie.AsyncDelegatorIncludes=26624]="AsyncDelegatorIncludes",ie[ie.SpreadIncludes=1536]="SpreadIncludes",(ae=e.EmitHint||(e.EmitHint={}))[ae.SourceFile=0]="SourceFile",ae[ae.Expression=1]="Expression",ae[ae.IdentifierName=2]="IdentifierName",ae[ae.MappedTypeParameter=3]="MappedTypeParameter",ae[ae.Unspecified=4]="Unspecified",ae[ae.EmbeddedStatement=5]="EmbeddedStatement",ae[ae.JsxAttributeValue=6]="JsxAttributeValue",(oe=e.OuterExpressionKinds||(e.OuterExpressionKinds={}))[oe.Parentheses=1]="Parentheses",oe[oe.TypeAssertions=2]="TypeAssertions",oe[oe.NonNullAssertions=4]="NonNullAssertions",oe[oe.PartiallyEmittedExpressions=8]="PartiallyEmittedExpressions",oe[oe.Assertions=6]="Assertions",oe[oe.All=15]="All",(se=e.LexicalEnvironmentFlags||(e.LexicalEnvironmentFlags={}))[se.None=0]="None",se[se.InParameters=1]="InParameters",se[se.VariablesHoistedInParameters=2]="VariablesHoistedInParameters",(ce=e.BundleFileSectionKind||(e.BundleFileSectionKind={})).Prologue="prologue",ce.EmitHelpers="emitHelpers",ce.NoDefaultLib="no-default-lib",ce.Reference="reference",ce.Type="type",ce.Lib="lib",ce.Prepend="prepend",ce.Text="text",ce.Internal="internal",(ue=e.ListFormat||(e.ListFormat={}))[ue.None=0]="None",ue[ue.SingleLine=0]="SingleLine",ue[ue.MultiLine=1]="MultiLine",ue[ue.PreserveLines=2]="PreserveLines",ue[ue.LinesMask=3]="LinesMask",ue[ue.NotDelimited=0]="NotDelimited",ue[ue.BarDelimited=4]="BarDelimited",ue[ue.AmpersandDelimited=8]="AmpersandDelimited",ue[ue.CommaDelimited=16]="CommaDelimited",ue[ue.AsteriskDelimited=32]="AsteriskDelimited",ue[ue.DelimitersMask=60]="DelimitersMask",ue[ue.AllowTrailingComma=64]="AllowTrailingComma",ue[ue.Indented=128]="Indented",ue[ue.SpaceBetweenBraces=256]="SpaceBetweenBraces",ue[ue.SpaceBetweenSiblings=512]="SpaceBetweenSiblings",ue[ue.Braces=1024]="Braces",ue[ue.Parenthesis=2048]="Parenthesis",ue[ue.AngleBrackets=4096]="AngleBrackets",ue[ue.SquareBrackets=8192]="SquareBrackets",ue[ue.BracketsMask=15360]="BracketsMask",ue[ue.OptionalIfUndefined=16384]="OptionalIfUndefined",ue[ue.OptionalIfEmpty=32768]="OptionalIfEmpty",ue[ue.Optional=49152]="Optional",ue[ue.PreferNewLine=65536]="PreferNewLine",ue[ue.NoTrailingNewLine=131072]="NoTrailingNewLine",ue[ue.NoInterveningComments=262144]="NoInterveningComments",ue[ue.NoSpaceIfEmpty=524288]="NoSpaceIfEmpty",ue[ue.SingleElement=1048576]="SingleElement",ue[ue.SpaceAfterList=2097152]="SpaceAfterList",ue[ue.Modifiers=262656]="Modifiers",ue[ue.HeritageClauses=512]="HeritageClauses",ue[ue.SingleLineTypeLiteralMembers=768]="SingleLineTypeLiteralMembers",ue[ue.MultiLineTypeLiteralMembers=32897]="MultiLineTypeLiteralMembers",ue[ue.SingleLineTupleTypeElements=528]="SingleLineTupleTypeElements",ue[ue.MultiLineTupleTypeElements=657]="MultiLineTupleTypeElements",ue[ue.UnionTypeConstituents=516]="UnionTypeConstituents",ue[ue.IntersectionTypeConstituents=520]="IntersectionTypeConstituents",ue[ue.ObjectBindingPatternElements=525136]="ObjectBindingPatternElements",ue[ue.ArrayBindingPatternElements=524880]="ArrayBindingPatternElements",ue[ue.ObjectLiteralExpressionProperties=526226]="ObjectLiteralExpressionProperties",ue[ue.ArrayLiteralExpressionElements=8914]="ArrayLiteralExpressionElements",ue[ue.CommaListElements=528]="CommaListElements",ue[ue.CallExpressionArguments=2576]="CallExpressionArguments",ue[ue.NewExpressionArguments=18960]="NewExpressionArguments",ue[ue.TemplateExpressionSpans=262144]="TemplateExpressionSpans",ue[ue.SingleLineBlockStatements=768]="SingleLineBlockStatements",ue[ue.MultiLineBlockStatements=129]="MultiLineBlockStatements",ue[ue.VariableDeclarationList=528]="VariableDeclarationList",ue[ue.SingleLineFunctionBodyStatements=768]="SingleLineFunctionBodyStatements",ue[ue.MultiLineFunctionBodyStatements=1]="MultiLineFunctionBodyStatements",ue[ue.ClassHeritageClauses=0]="ClassHeritageClauses",ue[ue.ClassMembers=129]="ClassMembers",ue[ue.InterfaceMembers=129]="InterfaceMembers",ue[ue.EnumMembers=145]="EnumMembers",ue[ue.CaseBlockClauses=129]="CaseBlockClauses",ue[ue.NamedImportsOrExportsElements=525136]="NamedImportsOrExportsElements",ue[ue.JsxElementOrFragmentChildren=262144]="JsxElementOrFragmentChildren",ue[ue.JsxElementAttributes=262656]="JsxElementAttributes",ue[ue.CaseOrDefaultClauseStatements=163969]="CaseOrDefaultClauseStatements",ue[ue.HeritageClauseTypes=528]="HeritageClauseTypes",ue[ue.SourceFileStatements=131073]="SourceFileStatements",ue[ue.Decorators=2146305]="Decorators",ue[ue.TypeArguments=53776]="TypeArguments",ue[ue.TypeParameters=53776]="TypeParameters",ue[ue.Parameters=2576]="Parameters",ue[ue.IndexSignatureParameters=8848]="IndexSignatureParameters",ue[ue.JSDocComment=33]="JSDocComment",(le=e.PragmaKindFlags||(e.PragmaKindFlags={}))[le.None=0]="None",le[le.TripleSlashXML=1]="TripleSlashXML",le[le.SingleLine=2]="SingleLine",le[le.MultiLine=4]="MultiLine",le[le.All=7]="All",le[le.Default=7]="Default",e.commentPragmas={reference:{args:[{name:"types",optional:!0,captureSpan:!0},{name:"lib",optional:!0,captureSpan:!0},{name:"path",optional:!0,captureSpan:!0},{name:"no-default-lib",optional:!0}],kind:1},"amd-dependency":{args:[{name:"path"},{name:"name",optional:!0}],kind:1},"amd-module":{args:[{name:"name"}],kind:1},"ts-check":{kind:2},"ts-nocheck":{kind:2},jsx:{args:[{name:"factory"}],kind:4},jsxfrag:{args:[{name:"factory"}],kind:4},jsximportsource:{args:[{name:"factory"}],kind:4},jsxruntime:{args:[{name:"factory"}],kind:4}}}(s||(s={})),function(e){e.directorySeparator="/",e.altDirectorySeparator="\\";var r=/\\/g;function n(e){return 47===e||92===e}function i(e){return l(e)>0}function a(e){return 0!==l(e)}function o(e){return/^\.\.?($|[\\/])/.test(e)}function s(t,r){return t.length>r.length&&e.endsWith(t,r)}function c(e){return e.length>0&&n(e.charCodeAt(e.length-1))}function u(e){return e>=97&&e<=122||e>=65&&e<=90}function l(t){if(!t)return 0;var r=t.charCodeAt(0);if(47===r||92===r){if(t.charCodeAt(1)!==r)return 1;var n=t.indexOf(47===r?e.directorySeparator:e.altDirectorySeparator,2);return n<0?t.length:n+1}if(u(r)&&58===t.charCodeAt(1)){var i=t.charCodeAt(2);if(47===i||92===i)return 3;if(2===t.length)return 2}var a=t.indexOf("://");if(-1!==a){var o=a+"://".length,s=t.indexOf(e.directorySeparator,o);if(-1!==s){var c=t.slice(0,a),l=t.slice(o,s);if("file"===c&&(""===l||"localhost"===l)&&u(t.charCodeAt(s+1))){var d=function(e,t){var r=e.charCodeAt(t);if(58===r)return t+1;if(37===r&&51===e.charCodeAt(t+1)){var n=e.charCodeAt(t+2);if(97===n||65===n)return t+3}return-1}(t,s+2);if(-1!==d){if(47===t.charCodeAt(d))return~(d+1);if(d===t.length)return~d}}return~(s+1)}return~t.length}return 0}function d(e){var t=l(e);return t<0?~t:t}function _(t){var r=d(t=v(t));return r===t.length?t:(t=T(t)).slice(0,Math.max(r,t.lastIndexOf(e.directorySeparator)))}function p(t,r,n){if(d(t=v(t))===t.length)return"";var i=(t=T(t)).slice(Math.max(d(t),t.lastIndexOf(e.directorySeparator)+1)),a=void 0!==r&&void 0!==n?g(i,r,n):void 0;return a?i.slice(0,i.length-a.length):i}function f(t,r,n){if(e.startsWith(r,".")||(r="."+r),t.length>=r.length&&46===t.charCodeAt(t.length-r.length)){var i=t.slice(t.length-r.length);if(n(i,r))return i}}function g(t,r,n){if(r)return function(e,t,r){if("string"==typeof t)return f(e,t,r)||"";for(var n=0,i=t;n=0?i.substring(a):""}function m(r,n){return void 0===n&&(n=""),function(r,n){var i=r.substring(0,n),a=r.substring(n).split(e.directorySeparator);return a.length&&!e.lastOrUndefined(a)&&a.pop(),t([i],a)}(r=D(n,r),d(r))}function y(t){return 0===t.length?"":(t[0]&&C(t[0]))+t.slice(1).join(e.directorySeparator)}function v(t){return t.replace(r,e.directorySeparator)}function h(t){if(!e.some(t))return[];for(var r=[t[0]],n=1;n1){if(".."!==r[r.length-1]){r.pop();continue}}else if(r[0])continue;r.push(i)}}return r}function D(e){for(var t=[],r=1;r0&&t===e.length},e.pathIsAbsolute=a,e.pathIsRelative=o,e.pathIsBareSpecifier=function(e){return!a(e)&&!o(e)},e.hasExtension=function(t){return e.stringContains(p(t),".")},e.fileExtensionIs=s,e.fileExtensionIsOneOf=function(e,t){for(var r=0,n=t;r0==d(r)>0,"Paths must either both be absolute or both be relative");var i="function"==typeof n?n:e.identity;return y(N(t,r,"boolean"==typeof n&&n?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,i))}function w(t,r,n,a,o){var s=N(x(n,t),x(n,r),e.equateStringsCaseSensitive,a),c=s[0];if(o&&i(c)){var u=c.charAt(0)===e.directorySeparator?"file://":"file:///";s[0]=u+c}return y(s)}e.comparePathsCaseSensitive=function(t,r){return F(t,r,e.compareStringsCaseSensitive)},e.comparePathsCaseInsensitive=function(t,r){return F(t,r,e.compareStringsCaseInsensitive)},e.comparePaths=function(t,r,n,i){return"string"==typeof n?(t=D(n,t),r=D(n,r)):"boolean"==typeof n&&(i=n),F(t,r,e.getStringComparer(i))},e.containsPath=function(t,r,n,i){if("string"==typeof n?(t=D(n,t),r=D(n,r)):"boolean"==typeof n&&(i=n),void 0===t||void 0===r)return!1;if(t===r)return!0;var a=h(m(t)),o=h(m(r));if(o.length=2&&254===r[0]&&255===r[1]){n&=-2;for(var i=0;i=2&&255===r[0]&&254===r[1]?r.toString("utf16le",2):n>=3&&239===r[0]&&187===r[1]&&191===r[2]?r.toString("utf8",3):r.toString("utf8")}(t);return e.perfLogger.logStopReadFile(),n},writeFile:function(t,r,n){var i;e.perfLogger.logEvent("WriteFile: "+t),n&&(r="\ufeff"+r);try{i=s.openSync(t,"w"),s.writeSync(i,r,void 0,"utf8")}finally{void 0!==i&&s.closeSync(i)}},watchFile:b,watchDirectory:S,resolvePath:function(e){return u.resolve(e)},fileExists:P,directoryExists:w,createDirectory:function(e){if(!T.directoryExists(e))try{s.mkdirSync(e)}catch(e){if("EEXIST"!==e.code)throw e}},getExecutingFilePath:function(){return"/prettier-security-filename-placeholder.js"},getCurrentDirectory:h,getDirectories:function(e){return F(e).directories.slice()},getEnvironmentVariable:function(e){return ar.env[e]||""},readDirectory:function(t,r,n,i,a){return e.matchFiles(t,r,n,i,m,ar.cwd(),a,F,I)},getModifiedTime:O,setModifiedTime:function(e,t){try{s.utimesSync(e,t,t)}catch(e){return}},deleteFile:function(e){try{return s.unlinkSync(e)}catch(e){return}},createHash:i?M:t,createSHA256Hash:i?M:void 0,getMemoryUsage:function(){return _.gc&&_.gc(),ar.memoryUsage().heapUsed},getFileSize:function(e){try{var t=C(e);if(null==t?void 0:t.isFile())return t.size}catch(e){}return 0},exit:function(e){k((function(){return ar.exit(e)}))},enableCPUProfiler:function(e,t){if(a)return t(),!1;var r={};if(!r||!r.Session)return t(),!1;var n=new r.Session;return n.connect(),n.post("Profiler.enable",(function(){n.post("Profiler.start",(function(){a=n,d=e,t()}))})),!0},disableCPUProfiler:k,cpuProfilingEnabled:function(){return!!a||e.contains(ar.execArgv,"--cpu-prof")||e.contains(ar.execArgv,"--prof")},realpath:I,debugMode:!!ar.env.NODE_INSPECTOR_IPC||!!ar.env.VSCODE_INSPECTOR_OPTIONS||e.some(ar.execArgv,(function(e){return/^--(inspect|debug)(-brk)?(=\d+)?$/i.test(e)})),tryEnableSourceMapsForHost:function(){try{dd.install()}catch(e){}},setTimeout:setTimeout,clearTimeout:clearTimeout,clearScreen:function(){ar.stdout.write("\x1bc")},setBlocking:function(){},bufferFrom:A,base64decode:function(e){return A(e,"base64").toString("utf8")},base64encode:function(e){return A(e).toString("base64")},require:function(t,r){try{var n=e.resolveJSModule(r,t,T);return{module:require(n),modulePath:n,error:void 0}}catch(e){return{module:void 0,modulePath:void 0,error:e}}}};return T;function C(e){return s.statSync(e,{throwIfNoEntry:!1})}function k(t){if(a&&"stopping"!==a){var r=a;return a.post("Profiler.stop",(function(n,i){var c,l=i.profile;if(!n){try{(null===(c=C(d))||void 0===c?void 0:c.isDirectory())&&(d=u.join(d,(new Date).toISOString().replace(/:/g,"-")+"+P"+ar.pid+".cpuprofile"))}catch(e){}try{s.mkdirSync(u.dirname(d),{recursive:!0})}catch(e){}s.writeFileSync(d,JSON.stringify(function(t){for(var r=0,n=new e.Map,i=e.normalizeSlashes("/prettier-security-dirname-placeholder"),a="file://"+(1===e.getRootLength(i)?"":"/")+i,s=0,c=t.nodes;s type. Did you mean to write 'Promise<{0}>'?"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:t(1066,e.DiagnosticCategory.Error,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:t(1068,e.DiagnosticCategory.Error,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:t(1069,e.DiagnosticCategory.Error,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:t(1070,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:t(1071,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:t(1079,e.DiagnosticCategory.Error,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:t(1084,e.DiagnosticCategory.Error,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:t(1085,e.DiagnosticCategory.Error,"Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085","Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'."),_0_modifier_cannot_appear_on_a_constructor_declaration:t(1089,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:t(1090,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:t(1091,e.DiagnosticCategory.Error,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:t(1092,e.DiagnosticCategory.Error,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:t(1093,e.DiagnosticCategory.Error,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:t(1094,e.DiagnosticCategory.Error,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:t(1095,e.DiagnosticCategory.Error,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:t(1096,e.DiagnosticCategory.Error,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:t(1097,e.DiagnosticCategory.Error,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:t(1098,e.DiagnosticCategory.Error,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:t(1099,e.DiagnosticCategory.Error,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:t(1100,e.DiagnosticCategory.Error,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:t(1101,e.DiagnosticCategory.Error,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:t(1102,e.DiagnosticCategory.Error,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:t(1103,e.DiagnosticCategory.Error,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:t(1104,e.DiagnosticCategory.Error,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:t(1105,e.DiagnosticCategory.Error,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),Jump_target_cannot_cross_function_boundary:t(1107,e.DiagnosticCategory.Error,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:t(1108,e.DiagnosticCategory.Error,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:t(1109,e.DiagnosticCategory.Error,"Expression_expected_1109","Expression expected."),Type_expected:t(1110,e.DiagnosticCategory.Error,"Type_expected_1110","Type expected."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:t(1113,e.DiagnosticCategory.Error,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:t(1114,e.DiagnosticCategory.Error,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:t(1115,e.DiagnosticCategory.Error,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:t(1116,e.DiagnosticCategory.Error,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode:t(1117,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode_1117","An object literal cannot have multiple properties with the same name in strict mode."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:t(1118,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:t(1119,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:t(1120,e.DiagnosticCategory.Error,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_in_strict_mode:t(1121,e.DiagnosticCategory.Error,"Octal_literals_are_not_allowed_in_strict_mode_1121","Octal literals are not allowed in strict mode."),Variable_declaration_list_cannot_be_empty:t(1123,e.DiagnosticCategory.Error,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:t(1124,e.DiagnosticCategory.Error,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:t(1125,e.DiagnosticCategory.Error,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:t(1126,e.DiagnosticCategory.Error,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:t(1127,e.DiagnosticCategory.Error,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:t(1128,e.DiagnosticCategory.Error,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:t(1129,e.DiagnosticCategory.Error,"Statement_expected_1129","Statement expected."),case_or_default_expected:t(1130,e.DiagnosticCategory.Error,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:t(1131,e.DiagnosticCategory.Error,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:t(1132,e.DiagnosticCategory.Error,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:t(1134,e.DiagnosticCategory.Error,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:t(1135,e.DiagnosticCategory.Error,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:t(1136,e.DiagnosticCategory.Error,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:t(1137,e.DiagnosticCategory.Error,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:t(1138,e.DiagnosticCategory.Error,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:t(1139,e.DiagnosticCategory.Error,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:t(1140,e.DiagnosticCategory.Error,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:t(1141,e.DiagnosticCategory.Error,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:t(1142,e.DiagnosticCategory.Error,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:t(1144,e.DiagnosticCategory.Error,"or_expected_1144","'{' or ';' expected."),Declaration_expected:t(1146,e.DiagnosticCategory.Error,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:t(1147,e.DiagnosticCategory.Error,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:t(1148,e.DiagnosticCategory.Error,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:t(1149,e.DiagnosticCategory.Error,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),const_declarations_must_be_initialized:t(1155,e.DiagnosticCategory.Error,"const_declarations_must_be_initialized_1155","'const' declarations must be initialized."),const_declarations_can_only_be_declared_inside_a_block:t(1156,e.DiagnosticCategory.Error,"const_declarations_can_only_be_declared_inside_a_block_1156","'const' declarations can only be declared inside a block."),let_declarations_can_only_be_declared_inside_a_block:t(1157,e.DiagnosticCategory.Error,"let_declarations_can_only_be_declared_inside_a_block_1157","'let' declarations can only be declared inside a block."),Unterminated_template_literal:t(1160,e.DiagnosticCategory.Error,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:t(1161,e.DiagnosticCategory.Error,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:t(1162,e.DiagnosticCategory.Error,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:t(1163,e.DiagnosticCategory.Error,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:t(1164,e.DiagnosticCategory.Error,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:t(1165,e.DiagnosticCategory.Error,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:t(1166,e.DiagnosticCategory.Error,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:t(1168,e.DiagnosticCategory.Error,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:t(1169,e.DiagnosticCategory.Error,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:t(1170,e.DiagnosticCategory.Error,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:t(1171,e.DiagnosticCategory.Error,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:t(1172,e.DiagnosticCategory.Error,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:t(1173,e.DiagnosticCategory.Error,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:t(1174,e.DiagnosticCategory.Error,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:t(1175,e.DiagnosticCategory.Error,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:t(1176,e.DiagnosticCategory.Error,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:t(1177,e.DiagnosticCategory.Error,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:t(1178,e.DiagnosticCategory.Error,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:t(1179,e.DiagnosticCategory.Error,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:t(1180,e.DiagnosticCategory.Error,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:t(1181,e.DiagnosticCategory.Error,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:t(1182,e.DiagnosticCategory.Error,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:t(1183,e.DiagnosticCategory.Error,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:t(1184,e.DiagnosticCategory.Error,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:t(1185,e.DiagnosticCategory.Error,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:t(1186,e.DiagnosticCategory.Error,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:t(1187,e.DiagnosticCategory.Error,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:t(1188,e.DiagnosticCategory.Error,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:t(1189,e.DiagnosticCategory.Error,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:t(1190,e.DiagnosticCategory.Error,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:t(1191,e.DiagnosticCategory.Error,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:t(1192,e.DiagnosticCategory.Error,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:t(1193,e.DiagnosticCategory.Error,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:t(1194,e.DiagnosticCategory.Error,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:t(1195,e.DiagnosticCategory.Error,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:t(1196,e.DiagnosticCategory.Error,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:t(1197,e.DiagnosticCategory.Error,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:t(1198,e.DiagnosticCategory.Error,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:t(1199,e.DiagnosticCategory.Error,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:t(1200,e.DiagnosticCategory.Error,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:t(1202,e.DiagnosticCategory.Error,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202","Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead."),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:t(1203,e.DiagnosticCategory.Error,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type:t(1205,e.DiagnosticCategory.Error,"Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type_1205","Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'."),Decorators_are_not_valid_here:t(1206,e.DiagnosticCategory.Error,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:t(1207,e.DiagnosticCategory.Error,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_import_export_or_an_empty_export_statement_to_make_it_a_module:t(1208,e.DiagnosticCategory.Error,"_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_imp_1208","'{0}' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module."),Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode:t(1210,e.DiagnosticCategory.Error,"Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode_1210","Invalid use of '{0}'. Class definitions are automatically in strict mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:t(1211,e.DiagnosticCategory.Error,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:t(1212,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:t(1213,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:t(1214,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:t(1215,e.DiagnosticCategory.Error,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:t(1216,e.DiagnosticCategory.Error,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:t(1218,e.DiagnosticCategory.Error,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning:t(1219,e.DiagnosticCategory.Error,"Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_t_1219","Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning."),Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher:t(1220,e.DiagnosticCategory.Error,"Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher_1220","Generators are only available when targeting ECMAScript 2015 or higher."),Generators_are_not_allowed_in_an_ambient_context:t(1221,e.DiagnosticCategory.Error,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:t(1222,e.DiagnosticCategory.Error,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:t(1223,e.DiagnosticCategory.Error,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:t(1224,e.DiagnosticCategory.Error,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:t(1225,e.DiagnosticCategory.Error,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:t(1226,e.DiagnosticCategory.Error,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:t(1227,e.DiagnosticCategory.Error,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:t(1228,e.DiagnosticCategory.Error,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:t(1229,e.DiagnosticCategory.Error,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:t(1230,e.DiagnosticCategory.Error,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:t(1231,e.DiagnosticCategory.Error,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_in_a_namespace_or_module:t(1232,e.DiagnosticCategory.Error,"An_import_declaration_can_only_be_used_in_a_namespace_or_module_1232","An import declaration can only be used in a namespace or module."),An_export_declaration_can_only_be_used_in_a_module:t(1233,e.DiagnosticCategory.Error,"An_export_declaration_can_only_be_used_in_a_module_1233","An export declaration can only be used in a module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:t(1234,e.DiagnosticCategory.Error,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_in_a_namespace_or_module:t(1235,e.DiagnosticCategory.Error,"A_namespace_declaration_is_only_allowed_in_a_namespace_or_module_1235","A namespace declaration is only allowed in a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:t(1236,e.DiagnosticCategory.Error,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:t(1237,e.DiagnosticCategory.Error,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:t(1238,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:t(1239,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:t(1240,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:t(1241,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:t(1242,e.DiagnosticCategory.Error,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:t(1243,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:t(1244,e.DiagnosticCategory.Error,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:t(1245,e.DiagnosticCategory.Error,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:t(1246,e.DiagnosticCategory.Error,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:t(1247,e.DiagnosticCategory.Error,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:t(1248,e.DiagnosticCategory.Error,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:t(1249,e.DiagnosticCategory.Error,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5:t(1250,e.DiagnosticCategory.Error,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:t(1251,e.DiagnosticCategory.Error,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:t(1252,e.DiagnosticCategory.Error,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode."),_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag:t(1253,e.DiagnosticCategory.Error,"_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag_1253","'{0}' tag cannot be used independently as a top level JSDoc tag."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:t(1254,e.DiagnosticCategory.Error,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:t(1255,e.DiagnosticCategory.Error,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:t(1257,e.DiagnosticCategory.Error,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:t(1258,e.DiagnosticCategory.Error,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:t(1259,e.DiagnosticCategory.Error,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:t(1260,e.DiagnosticCategory.Error,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:t(1261,e.DiagnosticCategory.Error,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:t(1262,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:t(1263,e.DiagnosticCategory.Error,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:t(1264,e.DiagnosticCategory.Error,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:t(1265,e.DiagnosticCategory.Error,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:t(1266,e.DiagnosticCategory.Error,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),with_statements_are_not_allowed_in_an_async_function_block:t(1300,e.DiagnosticCategory.Error,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:t(1308,e.DiagnosticCategory.Error,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:t(1312,e.DiagnosticCategory.Error,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:t(1313,e.DiagnosticCategory.Error,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:t(1314,e.DiagnosticCategory.Error,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:t(1315,e.DiagnosticCategory.Error,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:t(1316,e.DiagnosticCategory.Error,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:t(1317,e.DiagnosticCategory.Error,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:t(1318,e.DiagnosticCategory.Error,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:t(1319,e.DiagnosticCategory.Error,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:t(1320,e.DiagnosticCategory.Error,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:t(1321,e.DiagnosticCategory.Error,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:t(1322,e.DiagnosticCategory.Error,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_esnext_commonjs_amd_system_or_umd:t(1323,e.DiagnosticCategory.Error,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_esnext_commonjs_amd_system__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'esnext', 'commonjs', 'amd', 'system', or 'umd'."),Dynamic_import_must_have_one_specifier_as_an_argument:t(1324,e.DiagnosticCategory.Error,"Dynamic_import_must_have_one_specifier_as_an_argument_1324","Dynamic import must have one specifier as an argument."),Specifier_of_dynamic_import_cannot_be_spread_element:t(1325,e.DiagnosticCategory.Error,"Specifier_of_dynamic_import_cannot_be_spread_element_1325","Specifier of dynamic import cannot be spread element."),Dynamic_import_cannot_have_type_arguments:t(1326,e.DiagnosticCategory.Error,"Dynamic_import_cannot_have_type_arguments_1326","Dynamic import cannot have type arguments."),String_literal_with_double_quotes_expected:t(1327,e.DiagnosticCategory.Error,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:t(1328,e.DiagnosticCategory.Error,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:t(1329,e.DiagnosticCategory.Error,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:t(1330,e.DiagnosticCategory.Error,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:t(1331,e.DiagnosticCategory.Error,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:t(1332,e.DiagnosticCategory.Error,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:t(1333,e.DiagnosticCategory.Error,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:t(1334,e.DiagnosticCategory.Error,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:t(1335,e.DiagnosticCategory.Error,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead:t(1336,e.DiagnosticCategory.Error,"An_index_signature_parameter_type_cannot_be_a_type_alias_Consider_writing_0_Colon_1_Colon_2_instead_1336","An index signature parameter type cannot be a type alias. Consider writing '[{0}: {1}]: {2}' instead."),An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead:t(1337,e.DiagnosticCategory.Error,"An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead_1337","An index signature parameter type cannot be a union type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:t(1338,e.DiagnosticCategory.Error,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:t(1339,e.DiagnosticCategory.Error,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:t(1340,e.DiagnosticCategory.Error,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Type_arguments_cannot_be_used_here:t(1342,e.DiagnosticCategory.Error,"Type_arguments_cannot_be_used_here_1342","Type arguments cannot be used here."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_esnext_or_system:t(1343,e.DiagnosticCategory.Error,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_esnext_or_system_1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'."),A_label_is_not_allowed_here:t(1344,e.DiagnosticCategory.Error,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:t(1345,e.DiagnosticCategory.Error,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:t(1346,e.DiagnosticCategory.Error,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:t(1347,e.DiagnosticCategory.Error,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:t(1348,e.DiagnosticCategory.Error,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:t(1349,e.DiagnosticCategory.Error,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:t(1350,e.DiagnosticCategory.Message,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:t(1351,e.DiagnosticCategory.Error,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:t(1352,e.DiagnosticCategory.Error,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:t(1353,e.DiagnosticCategory.Error,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:t(1354,e.DiagnosticCategory.Error,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:t(1355,e.DiagnosticCategory.Error,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:t(1356,e.DiagnosticCategory.Error,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:t(1357,e.DiagnosticCategory.Error,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:t(1358,e.DiagnosticCategory.Error,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:t(1359,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Did_you_mean_to_parenthesize_this_function_type:t(1360,e.DiagnosticCategory.Error,"Did_you_mean_to_parenthesize_this_function_type_1360","Did you mean to parenthesize this function type?"),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:t(1361,e.DiagnosticCategory.Error,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:t(1362,e.DiagnosticCategory.Error,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:t(1363,e.DiagnosticCategory.Error,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:t(1364,e.DiagnosticCategory.Message,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:t(1365,e.DiagnosticCategory.Message,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:t(1366,e.DiagnosticCategory.Message,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:t(1367,e.DiagnosticCategory.Message,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:t(1368,e.DiagnosticCategory.Message,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_1368","Specify emit/checking behavior for imports that are only used for types"),Did_you_mean_0:t(1369,e.DiagnosticCategory.Message,"Did_you_mean_0_1369","Did you mean '{0}'?"),This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error:t(1371,e.DiagnosticCategory.Error,"This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371","This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'."),Convert_to_type_only_import:t(1373,e.DiagnosticCategory.Message,"Convert_to_type_only_import_1373","Convert to type-only import"),Convert_all_imports_not_used_as_a_value_to_type_only_imports:t(1374,e.DiagnosticCategory.Message,"Convert_all_imports_not_used_as_a_value_to_type_only_imports_1374","Convert all imports not used as a value to type-only imports"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:t(1375,e.DiagnosticCategory.Error,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:t(1376,e.DiagnosticCategory.Message,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:t(1377,e.DiagnosticCategory.Message,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_the_target_option_is_set_to_es2017_or_higher:t(1378,e.DiagnosticCategory.Error,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_t_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'esnext' or 'system', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:t(1379,e.DiagnosticCategory.Error,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:t(1380,e.DiagnosticCategory.Error,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:t(1381,e.DiagnosticCategory.Error,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:t(1382,e.DiagnosticCategory.Error,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Only_named_exports_may_use_export_type:t(1383,e.DiagnosticCategory.Error,"Only_named_exports_may_use_export_type_1383","Only named exports may use 'export type'."),A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list:t(1384,e.DiagnosticCategory.Error,"A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list_1384","A 'new' expression with type arguments must always be followed by a parenthesized argument list."),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:t(1385,e.DiagnosticCategory.Error,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:t(1386,e.DiagnosticCategory.Error,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:t(1387,e.DiagnosticCategory.Error,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:t(1388,e.DiagnosticCategory.Error,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:t(1389,e.DiagnosticCategory.Error,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),Provides_a_root_package_name_when_using_outFile_with_declarations:t(1390,e.DiagnosticCategory.Message,"Provides_a_root_package_name_when_using_outFile_with_declarations_1390","Provides a root package name when using outFile with declarations."),The_bundledPackageName_option_must_be_provided_when_using_outFile_and_node_module_resolution_with_declaration_emit:t(1391,e.DiagnosticCategory.Error,"The_bundledPackageName_option_must_be_provided_when_using_outFile_and_node_module_resolution_with_de_1391","The 'bundledPackageName' option must be provided when using outFile and node module resolution with declaration emit."),An_import_alias_cannot_use_import_type:t(1392,e.DiagnosticCategory.Error,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:t(1393,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:t(1394,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:t(1395,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:t(1396,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:t(1397,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:t(1398,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:t(1399,e.DiagnosticCategory.Message,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:t(1400,e.DiagnosticCategory.Message,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:t(1401,e.DiagnosticCategory.Message,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:t(1402,e.DiagnosticCategory.Message,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:t(1403,e.DiagnosticCategory.Message,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:t(1404,e.DiagnosticCategory.Message,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:t(1405,e.DiagnosticCategory.Message,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:t(1406,e.DiagnosticCategory.Message,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:t(1407,e.DiagnosticCategory.Message,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:t(1408,e.DiagnosticCategory.Message,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:t(1409,e.DiagnosticCategory.Message,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:t(1410,e.DiagnosticCategory.Message,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:t(1411,e.DiagnosticCategory.Message,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:t(1412,e.DiagnosticCategory.Message,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:t(1413,e.DiagnosticCategory.Message,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:t(1414,e.DiagnosticCategory.Message,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:t(1415,e.DiagnosticCategory.Message,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:t(1416,e.DiagnosticCategory.Message,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:t(1417,e.DiagnosticCategory.Message,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:t(1418,e.DiagnosticCategory.Message,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:t(1419,e.DiagnosticCategory.Message,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:t(1420,e.DiagnosticCategory.Message,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:t(1421,e.DiagnosticCategory.Message,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:t(1422,e.DiagnosticCategory.Message,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:t(1423,e.DiagnosticCategory.Message,"File_is_library_specified_here_1423","File is library specified here."),Default_library:t(1424,e.DiagnosticCategory.Message,"Default_library_1424","Default library"),Default_library_for_target_0:t(1425,e.DiagnosticCategory.Message,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:t(1426,e.DiagnosticCategory.Message,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:t(1427,e.DiagnosticCategory.Message,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:t(1428,e.DiagnosticCategory.Message,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:t(1429,e.DiagnosticCategory.Message,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:t(1430,e.DiagnosticCategory.Message,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:t(1431,e.DiagnosticCategory.Error,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_the_target_option_is_set_to_es2017_or_higher:t(1432,e.DiagnosticCategory.Error,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_the_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'esnext' or 'system', and the 'target' option is set to 'es2017' or higher."),Decorators_may_not_be_applied_to_this_parameters:t(1433,e.DiagnosticCategory.Error,"Decorators_may_not_be_applied_to_this_parameters_1433","Decorators may not be applied to 'this' parameters."),The_types_of_0_are_incompatible_between_these_types:t(2200,e.DiagnosticCategory.Error,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:t(2201,e.DiagnosticCategory.Error,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:t(2202,e.DiagnosticCategory.Error,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:t(2203,e.DiagnosticCategory.Error,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:t(2204,e.DiagnosticCategory.Error,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:t(2205,e.DiagnosticCategory.Error,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Duplicate_identifier_0:t(2300,e.DiagnosticCategory.Error,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:t(2301,e.DiagnosticCategory.Error,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:t(2302,e.DiagnosticCategory.Error,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:t(2303,e.DiagnosticCategory.Error,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:t(2304,e.DiagnosticCategory.Error,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:t(2305,e.DiagnosticCategory.Error,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:t(2306,e.DiagnosticCategory.Error,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:t(2307,e.DiagnosticCategory.Error,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:t(2308,e.DiagnosticCategory.Error,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:t(2309,e.DiagnosticCategory.Error,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:t(2310,e.DiagnosticCategory.Error,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),A_class_may_only_extend_another_class:t(2311,e.DiagnosticCategory.Error,"A_class_may_only_extend_another_class_2311","A class may only extend another class."),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:t(2312,e.DiagnosticCategory.Error,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:t(2313,e.DiagnosticCategory.Error,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:t(2314,e.DiagnosticCategory.Error,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:t(2315,e.DiagnosticCategory.Error,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:t(2316,e.DiagnosticCategory.Error,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:t(2317,e.DiagnosticCategory.Error,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:t(2318,e.DiagnosticCategory.Error,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:t(2319,e.DiagnosticCategory.Error,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:t(2320,e.DiagnosticCategory.Error,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:t(2321,e.DiagnosticCategory.Error,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:t(2322,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:t(2323,e.DiagnosticCategory.Error,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:t(2324,e.DiagnosticCategory.Error,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:t(2325,e.DiagnosticCategory.Error,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:t(2326,e.DiagnosticCategory.Error,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:t(2327,e.DiagnosticCategory.Error,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:t(2328,e.DiagnosticCategory.Error,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_is_missing_in_type_0:t(2329,e.DiagnosticCategory.Error,"Index_signature_is_missing_in_type_0_2329","Index signature is missing in type '{0}'."),Index_signatures_are_incompatible:t(2330,e.DiagnosticCategory.Error,"Index_signatures_are_incompatible_2330","Index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:t(2331,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:t(2332,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_constructor_arguments:t(2333,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_constructor_arguments_2333","'this' cannot be referenced in constructor arguments."),this_cannot_be_referenced_in_a_static_property_initializer:t(2334,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:t(2335,e.DiagnosticCategory.Error,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:t(2336,e.DiagnosticCategory.Error,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:t(2337,e.DiagnosticCategory.Error,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:t(2338,e.DiagnosticCategory.Error,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:t(2339,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:t(2340,e.DiagnosticCategory.Error,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:t(2341,e.DiagnosticCategory.Error,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),An_index_expression_argument_must_be_of_type_string_number_symbol_or_any:t(2342,e.DiagnosticCategory.Error,"An_index_expression_argument_must_be_of_type_string_number_symbol_or_any_2342","An index expression argument must be of type 'string', 'number', 'symbol', or 'any'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:t(2343,e.DiagnosticCategory.Error,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:t(2344,e.DiagnosticCategory.Error,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:t(2345,e.DiagnosticCategory.Error,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Call_target_does_not_contain_any_signatures:t(2346,e.DiagnosticCategory.Error,"Call_target_does_not_contain_any_signatures_2346","Call target does not contain any signatures."),Untyped_function_calls_may_not_accept_type_arguments:t(2347,e.DiagnosticCategory.Error,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:t(2348,e.DiagnosticCategory.Error,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:t(2349,e.DiagnosticCategory.Error,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:t(2350,e.DiagnosticCategory.Error,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:t(2351,e.DiagnosticCategory.Error,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:t(2352,e.DiagnosticCategory.Error,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:t(2353,e.DiagnosticCategory.Error,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:t(2354,e.DiagnosticCategory.Error,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value:t(2355,e.DiagnosticCategory.Error,"A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'void' nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:t(2356,e.DiagnosticCategory.Error,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:t(2357,e.DiagnosticCategory.Error,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:t(2358,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type:t(2359,e.DiagnosticCategory.Error,"The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359","The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type."),The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol:t(2360,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol_2360","The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'."),The_right_hand_side_of_an_in_expression_must_not_be_a_primitive:t(2361,e.DiagnosticCategory.Error,"The_right_hand_side_of_an_in_expression_must_not_be_a_primitive_2361","The right-hand side of an 'in' expression must not be a primitive."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:t(2362,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:t(2363,e.DiagnosticCategory.Error,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:t(2364,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:t(2365,e.DiagnosticCategory.Error,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:t(2366,e.DiagnosticCategory.Error,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap:t(2367,e.DiagnosticCategory.Error,"This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap_2367","This condition will always return '{0}' since the types '{1}' and '{2}' have no overlap."),Type_parameter_name_cannot_be_0:t(2368,e.DiagnosticCategory.Error,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:t(2369,e.DiagnosticCategory.Error,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:t(2370,e.DiagnosticCategory.Error,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:t(2371,e.DiagnosticCategory.Error,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:t(2372,e.DiagnosticCategory.Error,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:t(2373,e.DiagnosticCategory.Error,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_string_index_signature:t(2374,e.DiagnosticCategory.Error,"Duplicate_string_index_signature_2374","Duplicate string index signature."),Duplicate_number_index_signature:t(2375,e.DiagnosticCategory.Error,"Duplicate_number_index_signature_2375","Duplicate number index signature."),A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_parameter_properties_or_private_identifiers:t(2376,e.DiagnosticCategory.Error,"A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_proper_2376","A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:t(2377,e.DiagnosticCategory.Error,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:t(2378,e.DiagnosticCategory.Error,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type:t(2380,e.DiagnosticCategory.Error,"The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type_2380","The return type of a 'get' accessor must be assignable to its 'set' accessor type"),A_signature_with_an_implementation_cannot_use_a_string_literal_type:t(2381,e.DiagnosticCategory.Error,"A_signature_with_an_implementation_cannot_use_a_string_literal_type_2381","A signature with an implementation cannot use a string literal type."),Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature:t(2382,e.DiagnosticCategory.Error,"Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature_2382","Specialized overload signature is not assignable to any non-specialized signature."),Overload_signatures_must_all_be_exported_or_non_exported:t(2383,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:t(2384,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:t(2385,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:t(2386,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:t(2387,e.DiagnosticCategory.Error,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:t(2388,e.DiagnosticCategory.Error,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:t(2389,e.DiagnosticCategory.Error,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:t(2390,e.DiagnosticCategory.Error,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:t(2391,e.DiagnosticCategory.Error,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:t(2392,e.DiagnosticCategory.Error,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:t(2393,e.DiagnosticCategory.Error,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:t(2394,e.DiagnosticCategory.Error,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:t(2395,e.DiagnosticCategory.Error,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:t(2396,e.DiagnosticCategory.Error,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:t(2397,e.DiagnosticCategory.Error,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:t(2398,e.DiagnosticCategory.Error,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:t(2399,e.DiagnosticCategory.Error,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:t(2400,e.DiagnosticCategory.Error,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference:t(2401,e.DiagnosticCategory.Error,"Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference_2401","Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:t(2402,e.DiagnosticCategory.Error,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:t(2403,e.DiagnosticCategory.Error,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:t(2404,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:t(2405,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:t(2406,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:t(2407,e.DiagnosticCategory.Error,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:t(2408,e.DiagnosticCategory.Error,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:t(2409,e.DiagnosticCategory.Error,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:t(2410,e.DiagnosticCategory.Error,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Property_0_of_type_1_is_not_assignable_to_string_index_type_2:t(2411,e.DiagnosticCategory.Error,"Property_0_of_type_1_is_not_assignable_to_string_index_type_2_2411","Property '{0}' of type '{1}' is not assignable to string index type '{2}'."),Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2:t(2412,e.DiagnosticCategory.Error,"Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2_2412","Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'."),Numeric_index_type_0_is_not_assignable_to_string_index_type_1:t(2413,e.DiagnosticCategory.Error,"Numeric_index_type_0_is_not_assignable_to_string_index_type_1_2413","Numeric index type '{0}' is not assignable to string index type '{1}'."),Class_name_cannot_be_0:t(2414,e.DiagnosticCategory.Error,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:t(2415,e.DiagnosticCategory.Error,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:t(2416,e.DiagnosticCategory.Error,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:t(2417,e.DiagnosticCategory.Error,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:t(2418,e.DiagnosticCategory.Error,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:t(2419,e.DiagnosticCategory.Error,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:t(2420,e.DiagnosticCategory.Error,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:t(2422,e.DiagnosticCategory.Error,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:t(2423,e.DiagnosticCategory.Error,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:t(2425,e.DiagnosticCategory.Error,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:t(2426,e.DiagnosticCategory.Error,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:t(2427,e.DiagnosticCategory.Error,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:t(2428,e.DiagnosticCategory.Error,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:t(2430,e.DiagnosticCategory.Error,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:t(2431,e.DiagnosticCategory.Error,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:t(2432,e.DiagnosticCategory.Error,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:t(2433,e.DiagnosticCategory.Error,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:t(2434,e.DiagnosticCategory.Error,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:t(2435,e.DiagnosticCategory.Error,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:t(2436,e.DiagnosticCategory.Error,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:t(2437,e.DiagnosticCategory.Error,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:t(2438,e.DiagnosticCategory.Error,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:t(2439,e.DiagnosticCategory.Error,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:t(2440,e.DiagnosticCategory.Error,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:t(2441,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:t(2442,e.DiagnosticCategory.Error,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:t(2443,e.DiagnosticCategory.Error,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:t(2444,e.DiagnosticCategory.Error,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:t(2445,e.DiagnosticCategory.Error,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:t(2446,e.DiagnosticCategory.Error,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:t(2447,e.DiagnosticCategory.Error,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:t(2448,e.DiagnosticCategory.Error,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:t(2449,e.DiagnosticCategory.Error,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:t(2450,e.DiagnosticCategory.Error,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:t(2451,e.DiagnosticCategory.Error,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:t(2452,e.DiagnosticCategory.Error,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly:t(2453,e.DiagnosticCategory.Error,"The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_typ_2453","The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly."),Variable_0_is_used_before_being_assigned:t(2454,e.DiagnosticCategory.Error,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0:t(2455,e.DiagnosticCategory.Error,"Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0_2455","Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'."),Type_alias_0_circularly_references_itself:t(2456,e.DiagnosticCategory.Error,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:t(2457,e.DiagnosticCategory.Error,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:t(2458,e.DiagnosticCategory.Error,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:t(2459,e.DiagnosticCategory.Error,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:t(2460,e.DiagnosticCategory.Error,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:t(2461,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:t(2462,e.DiagnosticCategory.Error,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:t(2463,e.DiagnosticCategory.Error,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:t(2464,e.DiagnosticCategory.Error,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:t(2465,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:t(2466,e.DiagnosticCategory.Error,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:t(2467,e.DiagnosticCategory.Error,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:t(2468,e.DiagnosticCategory.Error,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:t(2469,e.DiagnosticCategory.Error,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object:t(2470,e.DiagnosticCategory.Error,"Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object_2470","'Symbol' reference does not refer to the global Symbol constructor object."),A_computed_property_name_of_the_form_0_must_be_of_type_symbol:t(2471,e.DiagnosticCategory.Error,"A_computed_property_name_of_the_form_0_must_be_of_type_symbol_2471","A computed property name of the form '{0}' must be of type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:t(2472,e.DiagnosticCategory.Error,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:t(2473,e.DiagnosticCategory.Error,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values:t(2474,e.DiagnosticCategory.Error,"const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values_2474","const enum member initializers can only contain literal values and other computed enum values."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:t(2475,e.DiagnosticCategory.Error,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:t(2476,e.DiagnosticCategory.Error,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:t(2477,e.DiagnosticCategory.Error,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:t(2478,e.DiagnosticCategory.Error,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),Property_0_does_not_exist_on_const_enum_1:t(2479,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_const_enum_1_2479","Property '{0}' does not exist on 'const' enum '{1}'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:t(2480,e.DiagnosticCategory.Error,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:t(2481,e.DiagnosticCategory.Error,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:t(2483,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:t(2484,e.DiagnosticCategory.Error,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:t(2487,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:t(2488,e.DiagnosticCategory.Error,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:t(2489,e.DiagnosticCategory.Error,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:t(2490,e.DiagnosticCategory.Error,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:t(2491,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:t(2492,e.DiagnosticCategory.Error,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:t(2493,e.DiagnosticCategory.Error,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:t(2494,e.DiagnosticCategory.Error,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:t(2495,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression:t(2496,e.DiagnosticCategory.Error,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496","The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:t(2497,e.DiagnosticCategory.Error,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:t(2498,e.DiagnosticCategory.Error,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:t(2499,e.DiagnosticCategory.Error,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:t(2500,e.DiagnosticCategory.Error,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:t(2501,e.DiagnosticCategory.Error,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:t(2502,e.DiagnosticCategory.Error,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:t(2503,e.DiagnosticCategory.Error,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:t(2504,e.DiagnosticCategory.Error,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:t(2505,e.DiagnosticCategory.Error,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:t(2506,e.DiagnosticCategory.Error,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:t(2507,e.DiagnosticCategory.Error,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:t(2508,e.DiagnosticCategory.Error,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:t(2509,e.DiagnosticCategory.Error,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:t(2510,e.DiagnosticCategory.Error,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:t(2511,e.DiagnosticCategory.Error,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:t(2512,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:t(2513,e.DiagnosticCategory.Error,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),Classes_containing_abstract_methods_must_be_marked_abstract:t(2514,e.DiagnosticCategory.Error,"Classes_containing_abstract_methods_must_be_marked_abstract_2514","Classes containing abstract methods must be marked abstract."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:t(2515,e.DiagnosticCategory.Error,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:t(2516,e.DiagnosticCategory.Error,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:t(2517,e.DiagnosticCategory.Error,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:t(2518,e.DiagnosticCategory.Error,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:t(2519,e.DiagnosticCategory.Error,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:t(2520,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions:t(2521,e.DiagnosticCategory.Error,"Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521","Expression resolves to variable declaration '{0}' that compiler uses to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method:t(2522,e.DiagnosticCategory.Error,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522","The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:t(2523,e.DiagnosticCategory.Error,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:t(2524,e.DiagnosticCategory.Error,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value:t(2525,e.DiagnosticCategory.Error,"Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525","Initializer provides no value for this binding element and the binding element has no default value."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:t(2526,e.DiagnosticCategory.Error,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:t(2527,e.DiagnosticCategory.Error,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:t(2528,e.DiagnosticCategory.Error,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:t(2529,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:t(2530,e.DiagnosticCategory.Error,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:t(2531,e.DiagnosticCategory.Error,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:t(2532,e.DiagnosticCategory.Error,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:t(2533,e.DiagnosticCategory.Error,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:t(2534,e.DiagnosticCategory.Error,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Enum_type_0_has_members_with_initializers_that_are_not_literals:t(2535,e.DiagnosticCategory.Error,"Enum_type_0_has_members_with_initializers_that_are_not_literals_2535","Enum type '{0}' has members with initializers that are not literals."),Type_0_cannot_be_used_to_index_type_1:t(2536,e.DiagnosticCategory.Error,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:t(2537,e.DiagnosticCategory.Error,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:t(2538,e.DiagnosticCategory.Error,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:t(2539,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:t(2540,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),The_target_of_an_assignment_must_be_a_variable_or_a_property_access:t(2541,e.DiagnosticCategory.Error,"The_target_of_an_assignment_must_be_a_variable_or_a_property_access_2541","The target of an assignment must be a variable or a property access."),Index_signature_in_type_0_only_permits_reading:t(2542,e.DiagnosticCategory.Error,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:t(2543,e.DiagnosticCategory.Error,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:t(2544,e.DiagnosticCategory.Error,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:t(2545,e.DiagnosticCategory.Error,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:t(2547,e.DiagnosticCategory.Error,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:t(2548,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:t(2549,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:t(2550,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:t(2551,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:t(2552,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:t(2553,e.DiagnosticCategory.Error,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:t(2554,e.DiagnosticCategory.Error,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:t(2555,e.DiagnosticCategory.Error,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:t(2556,e.DiagnosticCategory.Error,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:t(2558,e.DiagnosticCategory.Error,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:t(2559,e.DiagnosticCategory.Error,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:t(2560,e.DiagnosticCategory.Error,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:t(2561,e.DiagnosticCategory.Error,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:t(2562,e.DiagnosticCategory.Error,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:t(2563,e.DiagnosticCategory.Error,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:t(2564,e.DiagnosticCategory.Error,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:t(2565,e.DiagnosticCategory.Error,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:t(2566,e.DiagnosticCategory.Error,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:t(2567,e.DiagnosticCategory.Error,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators:t(2569,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterati_2569","Type '{0}' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators."),Object_is_of_type_unknown:t(2571,e.DiagnosticCategory.Error,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),Rest_signatures_are_incompatible:t(2572,e.DiagnosticCategory.Error,"Rest_signatures_are_incompatible_2572","Rest signatures are incompatible."),Property_0_is_incompatible_with_rest_element_type:t(2573,e.DiagnosticCategory.Error,"Property_0_is_incompatible_with_rest_element_type_2573","Property '{0}' is incompatible with rest element type."),A_rest_element_type_must_be_an_array_type:t(2574,e.DiagnosticCategory.Error,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:t(2575,e.DiagnosticCategory.Error,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:t(2576,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:t(2577,e.DiagnosticCategory.Error,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:t(2578,e.DiagnosticCategory.Error,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:t(2580,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:t(2581,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:t(2582,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:t(2583,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:t(2584,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:t(2585,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Enum_type_0_circularly_references_itself:t(2586,e.DiagnosticCategory.Error,"Enum_type_0_circularly_references_itself_2586","Enum type '{0}' circularly references itself."),JSDoc_type_0_circularly_references_itself:t(2587,e.DiagnosticCategory.Error,"JSDoc_type_0_circularly_references_itself_2587","JSDoc type '{0}' circularly references itself."),Cannot_assign_to_0_because_it_is_a_constant:t(2588,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:t(2589,e.DiagnosticCategory.Error,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:t(2590,e.DiagnosticCategory.Error,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:t(2591,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:t(2592,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:t(2593,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:t(2594,e.DiagnosticCategory.Error,"This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594","This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:t(2595,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:t(2596,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:t(2597,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:t(2598,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_attributes_type_0_may_not_be_a_union_type:t(2600,e.DiagnosticCategory.Error,"JSX_element_attributes_type_0_may_not_be_a_union_type_2600","JSX element attributes type '{0}' may not be a union type."),The_return_type_of_a_JSX_element_constructor_must_return_an_object_type:t(2601,e.DiagnosticCategory.Error,"The_return_type_of_a_JSX_element_constructor_must_return_an_object_type_2601","The return type of a JSX element constructor must return an object type."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:t(2602,e.DiagnosticCategory.Error,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:t(2603,e.DiagnosticCategory.Error,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:t(2604,e.DiagnosticCategory.Error,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements:t(2605,e.DiagnosticCategory.Error,"JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements_2605","JSX element type '{0}' is not a constructor function for JSX elements."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:t(2606,e.DiagnosticCategory.Error,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:t(2607,e.DiagnosticCategory.Error,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:t(2608,e.DiagnosticCategory.Error,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:t(2609,e.DiagnosticCategory.Error,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:t(2610,e.DiagnosticCategory.Error,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:t(2611,e.DiagnosticCategory.Error,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:t(2612,e.DiagnosticCategory.Error,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:t(2613,e.DiagnosticCategory.Error,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:t(2614,e.DiagnosticCategory.Error,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:t(2615,e.DiagnosticCategory.Error,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:t(2616,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:t(2617,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:t(2618,e.DiagnosticCategory.Error,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:t(2619,e.DiagnosticCategory.Error,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:t(2620,e.DiagnosticCategory.Error,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:t(2621,e.DiagnosticCategory.Error,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:t(2623,e.DiagnosticCategory.Error,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:t(2624,e.DiagnosticCategory.Error,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:t(2625,e.DiagnosticCategory.Error,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:t(2626,e.DiagnosticCategory.Error,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:t(2627,e.DiagnosticCategory.Error,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:t(2628,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:t(2629,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:t(2630,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:t(2631,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:t(2632,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:t(2633,e.DiagnosticCategory.Error,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:t(2649,e.DiagnosticCategory.Error,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:t(2651,e.DiagnosticCategory.Error,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:t(2652,e.DiagnosticCategory.Error,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:t(2653,e.DiagnosticCategory.Error,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition:t(2654,e.DiagnosticCategory.Error,"Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_pack_2654","Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition."),Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition:t(2656,e.DiagnosticCategory.Error,"Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_2656","Exported external package typings file '{0}' is not a module. Please contact the package author to update the package definition."),JSX_expressions_must_have_one_parent_element:t(2657,e.DiagnosticCategory.Error,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:t(2658,e.DiagnosticCategory.Error,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:t(2659,e.DiagnosticCategory.Error,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:t(2660,e.DiagnosticCategory.Error,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:t(2661,e.DiagnosticCategory.Error,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:t(2662,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:t(2663,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:t(2664,e.DiagnosticCategory.Error,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:t(2665,e.DiagnosticCategory.Error,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:t(2666,e.DiagnosticCategory.Error,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:t(2667,e.DiagnosticCategory.Error,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:t(2668,e.DiagnosticCategory.Error,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:t(2669,e.DiagnosticCategory.Error,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:t(2670,e.DiagnosticCategory.Error,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:t(2671,e.DiagnosticCategory.Error,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:t(2672,e.DiagnosticCategory.Error,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:t(2673,e.DiagnosticCategory.Error,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:t(2674,e.DiagnosticCategory.Error,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:t(2675,e.DiagnosticCategory.Error,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:t(2676,e.DiagnosticCategory.Error,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:t(2677,e.DiagnosticCategory.Error,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:t(2678,e.DiagnosticCategory.Error,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:t(2679,e.DiagnosticCategory.Error,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:t(2680,e.DiagnosticCategory.Error,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:t(2681,e.DiagnosticCategory.Error,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),get_and_set_accessor_must_have_the_same_this_type:t(2682,e.DiagnosticCategory.Error,"get_and_set_accessor_must_have_the_same_this_type_2682","'get' and 'set' accessor must have the same 'this' type."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:t(2683,e.DiagnosticCategory.Error,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:t(2684,e.DiagnosticCategory.Error,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:t(2685,e.DiagnosticCategory.Error,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:t(2686,e.DiagnosticCategory.Error,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:t(2687,e.DiagnosticCategory.Error,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:t(2688,e.DiagnosticCategory.Error,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:t(2689,e.DiagnosticCategory.Error,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:t(2690,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead:t(2691,e.DiagnosticCategory.Error,"An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead_2691","An import path cannot end with a '{0}' extension. Consider importing '{1}' instead."),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:t(2692,e.DiagnosticCategory.Error,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:t(2693,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:t(2694,e.DiagnosticCategory.Error,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:t(2695,e.DiagnosticCategory.Error,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:t(2696,e.DiagnosticCategory.Error,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:t(2697,e.DiagnosticCategory.Error,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:t(2698,e.DiagnosticCategory.Error,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:t(2699,e.DiagnosticCategory.Error,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:t(2700,e.DiagnosticCategory.Error,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:t(2701,e.DiagnosticCategory.Error,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:t(2702,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:t(2703,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:t(2704,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:t(2705,e.DiagnosticCategory.Error,"An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705","An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:t(2706,e.DiagnosticCategory.Error,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:t(2707,e.DiagnosticCategory.Error,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:t(2708,e.DiagnosticCategory.Error,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:t(2709,e.DiagnosticCategory.Error,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:t(2710,e.DiagnosticCategory.Error,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:t(2711,e.DiagnosticCategory.Error,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:t(2712,e.DiagnosticCategory.Error,"A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712","A dynamic import call in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:t(2713,e.DiagnosticCategory.Error,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713","Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?"),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:t(2714,e.DiagnosticCategory.Error,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:t(2715,e.DiagnosticCategory.Error,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:t(2716,e.DiagnosticCategory.Error,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:t(2717,e.DiagnosticCategory.Error,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:t(2718,e.DiagnosticCategory.Error,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:t(2719,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:t(2720,e.DiagnosticCategory.Error,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:t(2721,e.DiagnosticCategory.Error,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:t(2722,e.DiagnosticCategory.Error,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:t(2723,e.DiagnosticCategory.Error,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:t(2724,e.DiagnosticCategory.Error,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:t(2725,e.DiagnosticCategory.Error,"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 with module {0}."),Cannot_find_lib_definition_for_0:t(2726,e.DiagnosticCategory.Error,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:t(2727,e.DiagnosticCategory.Error,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:t(2728,e.DiagnosticCategory.Message,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:t(2729,e.DiagnosticCategory.Error,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:t(2730,e.DiagnosticCategory.Error,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:t(2731,e.DiagnosticCategory.Error,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:t(2732,e.DiagnosticCategory.Error,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:t(2733,e.DiagnosticCategory.Error,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:t(2734,e.DiagnosticCategory.Error,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:t(2735,e.DiagnosticCategory.Error,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:t(2736,e.DiagnosticCategory.Error,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:t(2737,e.DiagnosticCategory.Error,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:t(2738,e.DiagnosticCategory.Message,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:t(2739,e.DiagnosticCategory.Error,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:t(2740,e.DiagnosticCategory.Error,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:t(2741,e.DiagnosticCategory.Error,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:t(2742,e.DiagnosticCategory.Error,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:t(2743,e.DiagnosticCategory.Error,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:t(2744,e.DiagnosticCategory.Error,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:t(2745,e.DiagnosticCategory.Error,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:t(2746,e.DiagnosticCategory.Error,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:t(2747,e.DiagnosticCategory.Error,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided:t(2748,e.DiagnosticCategory.Error,"Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided_2748","Cannot access ambient const enums when the '--isolatedModules' flag is provided."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:t(2749,e.DiagnosticCategory.Error,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:t(2750,e.DiagnosticCategory.Error,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:t(2751,e.DiagnosticCategory.Error,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:t(2752,e.DiagnosticCategory.Error,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:t(2753,e.DiagnosticCategory.Error,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:t(2754,e.DiagnosticCategory.Error,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:t(2755,e.DiagnosticCategory.Error,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:t(2756,e.DiagnosticCategory.Error,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:t(2757,e.DiagnosticCategory.Error,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:t(2758,e.DiagnosticCategory.Error,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:t(2759,e.DiagnosticCategory.Error,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:t(2760,e.DiagnosticCategory.Error,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:t(2761,e.DiagnosticCategory.Error,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:t(2762,e.DiagnosticCategory.Error,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:t(2763,e.DiagnosticCategory.Error,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:t(2764,e.DiagnosticCategory.Error,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:t(2765,e.DiagnosticCategory.Error,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:t(2766,e.DiagnosticCategory.Error,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:t(2767,e.DiagnosticCategory.Error,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:t(2768,e.DiagnosticCategory.Error,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:t(2769,e.DiagnosticCategory.Error,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:t(2770,e.DiagnosticCategory.Error,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:t(2771,e.DiagnosticCategory.Error,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:t(2772,e.DiagnosticCategory.Error,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:t(2773,e.DiagnosticCategory.Error,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:t(2774,e.DiagnosticCategory.Error,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:t(2775,e.DiagnosticCategory.Error,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:t(2776,e.DiagnosticCategory.Error,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:t(2777,e.DiagnosticCategory.Error,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:t(2778,e.DiagnosticCategory.Error,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:t(2779,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:t(2780,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:t(2781,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:t(2782,e.DiagnosticCategory.Message,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:t(2783,e.DiagnosticCategory.Error,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:t(2784,e.DiagnosticCategory.Error,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:t(2785,e.DiagnosticCategory.Error,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:t(2786,e.DiagnosticCategory.Error,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:t(2787,e.DiagnosticCategory.Error,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:t(2788,e.DiagnosticCategory.Error,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:t(2789,e.DiagnosticCategory.Error,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:t(2790,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:t(2791,e.DiagnosticCategory.Error,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:t(2792,e.DiagnosticCategory.Error,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_th_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:t(2793,e.DiagnosticCategory.Error,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:t(2794,e.DiagnosticCategory.Error,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:t(2795,e.DiagnosticCategory.Error,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:t(2796,e.DiagnosticCategory.Error,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:t(2797,e.DiagnosticCategory.Error,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:t(2798,e.DiagnosticCategory.Error,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:t(2799,e.DiagnosticCategory.Error,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:t(2800,e.DiagnosticCategory.Error,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:t(2801,e.DiagnosticCategory.Error,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:t(2802,e.DiagnosticCategory.Error,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:t(2803,e.DiagnosticCategory.Error,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:t(2804,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Static_fields_with_private_names_can_t_have_initializers_when_the_useDefineForClassFields_flag_is_not_specified_with_a_target_of_esnext_Consider_adding_the_useDefineForClassFields_flag:t(2805,e.DiagnosticCategory.Error,"Static_fields_with_private_names_can_t_have_initializers_when_the_useDefineForClassFields_flag_is_no_2805","Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag."),Private_accessor_was_defined_without_a_getter:t(2806,e.DiagnosticCategory.Error,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:t(2807,e.DiagnosticCategory.Error,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:t(2808,e.DiagnosticCategory.Error,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses:t(2809,e.DiagnosticCategory.Error,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the the whole assignment in parentheses."),Property_0_may_not_be_used_in_a_static_property_s_initializer_in_the_same_class_when_target_is_esnext_and_useDefineForClassFields_is_false:t(2810,e.DiagnosticCategory.Error,"Property_0_may_not_be_used_in_a_static_property_s_initializer_in_the_same_class_when_target_is_esnex_2810","Property '{0}' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'."),Initializer_for_property_0:t(2811,e.DiagnosticCategory.Error,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:t(2812,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Import_declaration_0_is_using_private_name_1:t(4e3,e.DiagnosticCategory.Error,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:t(4002,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:t(4004,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:t(4006,e.DiagnosticCategory.Error,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:t(4008,e.DiagnosticCategory.Error,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:t(4010,e.DiagnosticCategory.Error,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:t(4012,e.DiagnosticCategory.Error,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:t(4014,e.DiagnosticCategory.Error,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:t(4016,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:t(4019,e.DiagnosticCategory.Error,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:t(4020,e.DiagnosticCategory.Error,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:t(4021,e.DiagnosticCategory.Error,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:t(4022,e.DiagnosticCategory.Error,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4023,e.DiagnosticCategory.Error,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:t(4024,e.DiagnosticCategory.Error,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:t(4025,e.DiagnosticCategory.Error,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4026,e.DiagnosticCategory.Error,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:t(4027,e.DiagnosticCategory.Error,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:t(4028,e.DiagnosticCategory.Error,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4029,e.DiagnosticCategory.Error,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:t(4030,e.DiagnosticCategory.Error,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:t(4031,e.DiagnosticCategory.Error,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:t(4032,e.DiagnosticCategory.Error,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:t(4033,e.DiagnosticCategory.Error,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4034,e.DiagnosticCategory.Error,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:t(4035,e.DiagnosticCategory.Error,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4036,e.DiagnosticCategory.Error,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:t(4037,e.DiagnosticCategory.Error,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4038,e.DiagnosticCategory.Error,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4039,e.DiagnosticCategory.Error,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:t(4040,e.DiagnosticCategory.Error,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4041,e.DiagnosticCategory.Error,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4042,e.DiagnosticCategory.Error,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:t(4043,e.DiagnosticCategory.Error,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:t(4044,e.DiagnosticCategory.Error,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:t(4045,e.DiagnosticCategory.Error,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:t(4046,e.DiagnosticCategory.Error,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:t(4047,e.DiagnosticCategory.Error,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:t(4048,e.DiagnosticCategory.Error,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:t(4049,e.DiagnosticCategory.Error,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:t(4050,e.DiagnosticCategory.Error,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:t(4051,e.DiagnosticCategory.Error,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:t(4052,e.DiagnosticCategory.Error,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:t(4053,e.DiagnosticCategory.Error,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:t(4054,e.DiagnosticCategory.Error,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:t(4055,e.DiagnosticCategory.Error,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:t(4056,e.DiagnosticCategory.Error,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:t(4057,e.DiagnosticCategory.Error,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:t(4058,e.DiagnosticCategory.Error,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:t(4059,e.DiagnosticCategory.Error,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:t(4060,e.DiagnosticCategory.Error,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4061,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4062,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:t(4063,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:t(4064,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:t(4065,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:t(4066,e.DiagnosticCategory.Error,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:t(4067,e.DiagnosticCategory.Error,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4068,e.DiagnosticCategory.Error,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4069,e.DiagnosticCategory.Error,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:t(4070,e.DiagnosticCategory.Error,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4071,e.DiagnosticCategory.Error,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:t(4072,e.DiagnosticCategory.Error,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:t(4073,e.DiagnosticCategory.Error,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:t(4074,e.DiagnosticCategory.Error,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:t(4075,e.DiagnosticCategory.Error,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4076,e.DiagnosticCategory.Error,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:t(4077,e.DiagnosticCategory.Error,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:t(4078,e.DiagnosticCategory.Error,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:t(4081,e.DiagnosticCategory.Error,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:t(4082,e.DiagnosticCategory.Error,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:t(4083,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:t(4084,e.DiagnosticCategory.Error,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict:t(4090,e.DiagnosticCategory.Error,"Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090","Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:t(4091,e.DiagnosticCategory.Error,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:t(4092,e.DiagnosticCategory.Error,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_class_expression_may_not_be_private_or_protected:t(4094,e.DiagnosticCategory.Error,"Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094","Property '{0}' of exported class expression may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4095,e.DiagnosticCategory.Error,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:t(4096,e.DiagnosticCategory.Error,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:t(4097,e.DiagnosticCategory.Error,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4098,e.DiagnosticCategory.Error,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:t(4099,e.DiagnosticCategory.Error,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:t(4100,e.DiagnosticCategory.Error,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:t(4101,e.DiagnosticCategory.Error,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:t(4102,e.DiagnosticCategory.Error,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:t(4103,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:t(4104,e.DiagnosticCategory.Error,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:t(4105,e.DiagnosticCategory.Error,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:t(4106,e.DiagnosticCategory.Error,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:t(4107,e.DiagnosticCategory.Error,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:t(4108,e.DiagnosticCategory.Error,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:t(4109,e.DiagnosticCategory.Error,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:t(4110,e.DiagnosticCategory.Error,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:t(4111,e.DiagnosticCategory.Error,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:t(4112,e.DiagnosticCategory.Error,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:t(4113,e.DiagnosticCategory.Error,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:t(4114,e.DiagnosticCategory.Error,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:t(4115,e.DiagnosticCategory.Error,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:t(4116,e.DiagnosticCategory.Error,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),The_current_host_does_not_support_the_0_option:t(5001,e.DiagnosticCategory.Error,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:t(5009,e.DiagnosticCategory.Error,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:t(5010,e.DiagnosticCategory.Error,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:t(5012,e.DiagnosticCategory.Error,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Failed_to_parse_file_0_Colon_1:t(5014,e.DiagnosticCategory.Error,"Failed_to_parse_file_0_Colon_1_5014","Failed to parse file '{0}': {1}."),Unknown_compiler_option_0:t(5023,e.DiagnosticCategory.Error,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:t(5024,e.DiagnosticCategory.Error,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:t(5025,e.DiagnosticCategory.Error,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:t(5033,e.DiagnosticCategory.Error,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:t(5042,e.DiagnosticCategory.Error,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:t(5047,e.DiagnosticCategory.Error,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_cannot_be_specified_when_option_target_is_ES3:t(5048,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_when_option_target_is_ES3_5048","Option '{0}' cannot be specified when option 'target' is 'ES3'."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:t(5051,e.DiagnosticCategory.Error,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:t(5052,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:t(5053,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:t(5054,e.DiagnosticCategory.Error,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:t(5055,e.DiagnosticCategory.Error,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:t(5056,e.DiagnosticCategory.Error,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:t(5057,e.DiagnosticCategory.Error,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:t(5058,e.DiagnosticCategory.Error,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:t(5059,e.DiagnosticCategory.Error,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:t(5061,e.DiagnosticCategory.Error,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:t(5062,e.DiagnosticCategory.Error,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:t(5063,e.DiagnosticCategory.Error,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:t(5064,e.DiagnosticCategory.Error,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:t(5065,e.DiagnosticCategory.Error,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:t(5066,e.DiagnosticCategory.Error,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:t(5067,e.DiagnosticCategory.Error,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:t(5068,e.DiagnosticCategory.Error,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:t(5069,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy:t(5070,e.DiagnosticCategory.Error,"Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy_5070","Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy."),Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext:t(5071,e.DiagnosticCategory.Error,"Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071","Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'."),Unknown_build_option_0:t(5072,e.DiagnosticCategory.Error,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:t(5073,e.DiagnosticCategory.Error,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:t(5074,e.DiagnosticCategory.Error,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:t(5075,e.DiagnosticCategory.Error,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:t(5076,e.DiagnosticCategory.Error,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:t(5077,e.DiagnosticCategory.Error,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:t(5078,e.DiagnosticCategory.Error,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:t(5079,e.DiagnosticCategory.Error,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:t(5080,e.DiagnosticCategory.Error,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:t(5081,e.DiagnosticCategory.Error,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:t(5082,e.DiagnosticCategory.Error,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:t(5083,e.DiagnosticCategory.Error,"Cannot_read_file_0_5083","Cannot read file '{0}'."),Tuple_members_must_all_have_names_or_all_not_have_names:t(5084,e.DiagnosticCategory.Error,"Tuple_members_must_all_have_names_or_all_not_have_names_5084","Tuple members must all have names or all not have names."),A_tuple_member_cannot_be_both_optional_and_rest:t(5085,e.DiagnosticCategory.Error,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:t(5086,e.DiagnosticCategory.Error,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:t(5087,e.DiagnosticCategory.Error,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:t(5088,e.DiagnosticCategory.Error,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:t(5089,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:t(5090,e.DiagnosticCategory.Error,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled:t(5091,e.DiagnosticCategory.Error,"Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when 'isolatedModules' is enabled."),The_root_value_of_a_0_file_must_be_an_object:t(5092,e.DiagnosticCategory.Error,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:t(5093,e.DiagnosticCategory.Error,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:t(5094,e.DiagnosticCategory.Error,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:t(6e3,e.DiagnosticCategory.Message,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:t(6001,e.DiagnosticCategory.Message,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:t(6002,e.DiagnosticCategory.Message,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:t(6003,e.DiagnosticCategory.Message,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6003","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:t(6004,e.DiagnosticCategory.Message,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:t(6005,e.DiagnosticCategory.Message,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:t(6006,e.DiagnosticCategory.Message,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:t(6007,e.DiagnosticCategory.Message,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:t(6008,e.DiagnosticCategory.Message,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:t(6009,e.DiagnosticCategory.Message,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:t(6010,e.DiagnosticCategory.Message,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:t(6011,e.DiagnosticCategory.Message,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:t(6012,e.DiagnosticCategory.Message,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:t(6013,e.DiagnosticCategory.Message,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:t(6014,e.DiagnosticCategory.Message,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_ES2020_ES2021_or_ESNEXT:t(6015,e.DiagnosticCategory.Message,"Specify_ECMAScript_target_version_Colon_ES3_default_ES5_ES2015_ES2016_ES2017_ES2018_ES2019_ES2020_ES_6015","Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'."),Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_es2020_or_ESNext:t(6016,e.DiagnosticCategory.Message,"Specify_module_code_generation_Colon_none_commonjs_amd_system_umd_es2015_es2020_or_ESNext_6016","Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'."),Print_this_message:t(6017,e.DiagnosticCategory.Message,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:t(6019,e.DiagnosticCategory.Message,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:t(6020,e.DiagnosticCategory.Message,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:t(6023,e.DiagnosticCategory.Message,"Syntax_Colon_0_6023","Syntax: {0}"),options:t(6024,e.DiagnosticCategory.Message,"options_6024","options"),file:t(6025,e.DiagnosticCategory.Message,"file_6025","file"),Examples_Colon_0:t(6026,e.DiagnosticCategory.Message,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:t(6027,e.DiagnosticCategory.Message,"Options_Colon_6027","Options:"),Version_0:t(6029,e.DiagnosticCategory.Message,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:t(6030,e.DiagnosticCategory.Message,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:t(6031,e.DiagnosticCategory.Message,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:t(6032,e.DiagnosticCategory.Message,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:t(6034,e.DiagnosticCategory.Message,"KIND_6034","KIND"),FILE:t(6035,e.DiagnosticCategory.Message,"FILE_6035","FILE"),VERSION:t(6036,e.DiagnosticCategory.Message,"VERSION_6036","VERSION"),LOCATION:t(6037,e.DiagnosticCategory.Message,"LOCATION_6037","LOCATION"),DIRECTORY:t(6038,e.DiagnosticCategory.Message,"DIRECTORY_6038","DIRECTORY"),STRATEGY:t(6039,e.DiagnosticCategory.Message,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:t(6040,e.DiagnosticCategory.Message,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Generates_corresponding_map_file:t(6043,e.DiagnosticCategory.Message,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:t(6044,e.DiagnosticCategory.Error,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:t(6045,e.DiagnosticCategory.Error,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:t(6046,e.DiagnosticCategory.Error,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:t(6048,e.DiagnosticCategory.Error,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unsupported_locale_0:t(6049,e.DiagnosticCategory.Error,"Unsupported_locale_0_6049","Unsupported locale '{0}'."),Unable_to_open_file_0:t(6050,e.DiagnosticCategory.Error,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:t(6051,e.DiagnosticCategory.Error,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:t(6052,e.DiagnosticCategory.Message,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:t(6053,e.DiagnosticCategory.Error,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:t(6054,e.DiagnosticCategory.Error,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:t(6055,e.DiagnosticCategory.Message,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:t(6056,e.DiagnosticCategory.Message,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:t(6058,e.DiagnosticCategory.Message,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:t(6059,e.DiagnosticCategory.Error,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:t(6060,e.DiagnosticCategory.Message,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:t(6061,e.DiagnosticCategory.Message,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:t(6064,e.DiagnosticCategory.Error,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:t(6065,e.DiagnosticCategory.Message,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:t(6066,e.DiagnosticCategory.Message,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Enables_experimental_support_for_ES7_async_functions:t(6068,e.DiagnosticCategory.Message,"Enables_experimental_support_for_ES7_async_functions_6068","Enables experimental support for ES7 async functions."),Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6:t(6069,e.DiagnosticCategory.Message,"Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6_6069","Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:t(6070,e.DiagnosticCategory.Message,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:t(6071,e.DiagnosticCategory.Message,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:t(6072,e.DiagnosticCategory.Message,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:t(6073,e.DiagnosticCategory.Message,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:t(6074,e.DiagnosticCategory.Message,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:t(6075,e.DiagnosticCategory.Message,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:t(6076,e.DiagnosticCategory.Message,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:t(6077,e.DiagnosticCategory.Message,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:t(6078,e.DiagnosticCategory.Message,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:t(6079,e.DiagnosticCategory.Message,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation_Colon_preserve_react_native_react_react_jsx_or_react_jsxdev:t(6080,e.DiagnosticCategory.Message,"Specify_JSX_code_generation_Colon_preserve_react_native_react_react_jsx_or_react_jsxdev_6080","Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'."),File_0_has_an_unsupported_extension_so_skipping_it:t(6081,e.DiagnosticCategory.Message,"File_0_has_an_unsupported_extension_so_skipping_it_6081","File '{0}' has an unsupported extension, so skipping it."),Only_amd_and_system_modules_are_supported_alongside_0:t(6082,e.DiagnosticCategory.Error,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:t(6083,e.DiagnosticCategory.Message,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:t(6084,e.DiagnosticCategory.Message,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:t(6085,e.DiagnosticCategory.Message,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:t(6086,e.DiagnosticCategory.Message,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:t(6087,e.DiagnosticCategory.Message,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:t(6088,e.DiagnosticCategory.Message,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:t(6089,e.DiagnosticCategory.Message,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:t(6090,e.DiagnosticCategory.Message,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:t(6091,e.DiagnosticCategory.Message,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:t(6092,e.DiagnosticCategory.Message,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:t(6093,e.DiagnosticCategory.Message,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:t(6094,e.DiagnosticCategory.Message,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1:t(6095,e.DiagnosticCategory.Message,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1_6095","Loading module as file / folder, candidate module location '{0}', target file type '{1}'."),File_0_does_not_exist:t(6096,e.DiagnosticCategory.Message,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exist_use_it_as_a_name_resolution_result:t(6097,e.DiagnosticCategory.Message,"File_0_exist_use_it_as_a_name_resolution_result_6097","File '{0}' exist - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_type_1:t(6098,e.DiagnosticCategory.Message,"Loading_module_0_from_node_modules_folder_target_file_type_1_6098","Loading module '{0}' from 'node_modules' folder, target file type '{1}'."),Found_package_json_at_0:t(6099,e.DiagnosticCategory.Message,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:t(6100,e.DiagnosticCategory.Message,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:t(6101,e.DiagnosticCategory.Message,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:t(6102,e.DiagnosticCategory.Message,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Option_0_should_have_array_of_strings_as_a_value:t(6103,e.DiagnosticCategory.Error,"Option_0_should_have_array_of_strings_as_a_value_6103","Option '{0}' should have array of strings as a value."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:t(6104,e.DiagnosticCategory.Message,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:t(6105,e.DiagnosticCategory.Message,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:t(6106,e.DiagnosticCategory.Message,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:t(6107,e.DiagnosticCategory.Message,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:t(6108,e.DiagnosticCategory.Message,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:t(6109,e.DiagnosticCategory.Message,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:t(6110,e.DiagnosticCategory.Message,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:t(6111,e.DiagnosticCategory.Message,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:t(6112,e.DiagnosticCategory.Message,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:t(6113,e.DiagnosticCategory.Message,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:t(6114,e.DiagnosticCategory.Error,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:t(6115,e.DiagnosticCategory.Message,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:t(6116,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Resolving_using_primary_search_paths:t(6117,e.DiagnosticCategory.Message,"Resolving_using_primary_search_paths_6117","Resolving using primary search paths..."),Resolving_from_node_modules_folder:t(6118,e.DiagnosticCategory.Message,"Resolving_from_node_modules_folder_6118","Resolving from node_modules folder..."),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:t(6119,e.DiagnosticCategory.Message,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:t(6120,e.DiagnosticCategory.Message,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:t(6121,e.DiagnosticCategory.Message,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:t(6122,e.DiagnosticCategory.Message,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:t(6123,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:t(6124,e.DiagnosticCategory.Message,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:t(6125,e.DiagnosticCategory.Message,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:t(6126,e.DiagnosticCategory.Message,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:t(6127,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:t(6128,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:t(6130,e.DiagnosticCategory.Message,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:t(6131,e.DiagnosticCategory.Error,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:t(6132,e.DiagnosticCategory.Message,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:t(6133,e.DiagnosticCategory.Error,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:t(6134,e.DiagnosticCategory.Message,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:t(6135,e.DiagnosticCategory.Message,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:t(6136,e.DiagnosticCategory.Message,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:t(6137,e.DiagnosticCategory.Error,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:t(6138,e.DiagnosticCategory.Error,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:t(6139,e.DiagnosticCategory.Message,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:t(6140,e.DiagnosticCategory.Error,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:t(6141,e.DiagnosticCategory.Message,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:t(6142,e.DiagnosticCategory.Error,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:t(6144,e.DiagnosticCategory.Message,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified:t(6145,e.DiagnosticCategory.Message,"Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145","Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:t(6146,e.DiagnosticCategory.Message,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:t(6147,e.DiagnosticCategory.Message,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:t(6148,e.DiagnosticCategory.Message,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:t(6149,e.DiagnosticCategory.Message,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:t(6150,e.DiagnosticCategory.Message,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:t(6151,e.DiagnosticCategory.Message,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:t(6152,e.DiagnosticCategory.Message,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:t(6153,e.DiagnosticCategory.Message,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:t(6154,e.DiagnosticCategory.Message,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:t(6155,e.DiagnosticCategory.Message,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:t(6156,e.DiagnosticCategory.Message,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:t(6157,e.DiagnosticCategory.Message,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:t(6158,e.DiagnosticCategory.Message,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:t(6159,e.DiagnosticCategory.Message,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:t(6160,e.DiagnosticCategory.Message,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:t(6161,e.DiagnosticCategory.Message,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:t(6162,e.DiagnosticCategory.Message,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:t(6163,e.DiagnosticCategory.Message,"The_character_set_of_the_input_files_6163","The character set of the input files."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:t(6164,e.DiagnosticCategory.Message,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6164","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Do_not_truncate_error_messages:t(6165,e.DiagnosticCategory.Message,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:t(6166,e.DiagnosticCategory.Message,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:t(6167,e.DiagnosticCategory.Message,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:t(6168,e.DiagnosticCategory.Message,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:t(6169,e.DiagnosticCategory.Message,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:t(6170,e.DiagnosticCategory.Message,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:t(6171,e.DiagnosticCategory.Message,"Command_line_Options_6171","Command-line Options"),Basic_Options:t(6172,e.DiagnosticCategory.Message,"Basic_Options_6172","Basic Options"),Strict_Type_Checking_Options:t(6173,e.DiagnosticCategory.Message,"Strict_Type_Checking_Options_6173","Strict Type-Checking Options"),Module_Resolution_Options:t(6174,e.DiagnosticCategory.Message,"Module_Resolution_Options_6174","Module Resolution Options"),Source_Map_Options:t(6175,e.DiagnosticCategory.Message,"Source_Map_Options_6175","Source Map Options"),Additional_Checks:t(6176,e.DiagnosticCategory.Message,"Additional_Checks_6176","Additional Checks"),Experimental_Options:t(6177,e.DiagnosticCategory.Message,"Experimental_Options_6177","Experimental Options"),Advanced_Options:t(6178,e.DiagnosticCategory.Message,"Advanced_Options_6178","Advanced Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3:t(6179,e.DiagnosticCategory.Message,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'."),Enable_all_strict_type_checking_options:t(6180,e.DiagnosticCategory.Message,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),List_of_language_service_plugins:t(6181,e.DiagnosticCategory.Message,"List_of_language_service_plugins_6181","List of language service plugins."),Scoped_package_detected_looking_in_0:t(6182,e.DiagnosticCategory.Message,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_to_file_1_from_old_program:t(6183,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_to_file_1_from_old_program_6183","Reusing resolution of module '{0}' to file '{1}' from old program."),Reusing_module_resolutions_originating_in_0_since_resolutions_are_unchanged_from_old_program:t(6184,e.DiagnosticCategory.Message,"Reusing_module_resolutions_originating_in_0_since_resolutions_are_unchanged_from_old_program_6184","Reusing module resolutions originating in '{0}' since resolutions are unchanged from old program."),Disable_strict_checking_of_generic_signatures_in_function_types:t(6185,e.DiagnosticCategory.Message,"Disable_strict_checking_of_generic_signatures_in_function_types_6185","Disable strict checking of generic signatures in function types."),Enable_strict_checking_of_function_types:t(6186,e.DiagnosticCategory.Message,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:t(6187,e.DiagnosticCategory.Message,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:t(6188,e.DiagnosticCategory.Error,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:t(6189,e.DiagnosticCategory.Error,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:t(6191,e.DiagnosticCategory.Message,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:t(6192,e.DiagnosticCategory.Error,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:t(6193,e.DiagnosticCategory.Message,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:t(6194,e.DiagnosticCategory.Message,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:t(6195,e.DiagnosticCategory.Message,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:t(6196,e.DiagnosticCategory.Error,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:t(6197,e.DiagnosticCategory.Message,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:t(6198,e.DiagnosticCategory.Error,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:t(6199,e.DiagnosticCategory.Error,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:t(6200,e.DiagnosticCategory.Error,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:t(6201,e.DiagnosticCategory.Message,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:t(6202,e.DiagnosticCategory.Error,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:t(6203,e.DiagnosticCategory.Message,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:t(6204,e.DiagnosticCategory.Message,"and_here_6204","and here."),All_type_parameters_are_unused:t(6205,e.DiagnosticCategory.Error,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:t(6206,e.DiagnosticCategory.Message,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:t(6207,e.DiagnosticCategory.Message,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:t(6208,e.DiagnosticCategory.Message,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:t(6209,e.DiagnosticCategory.Message,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:t(6210,e.DiagnosticCategory.Message,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:t(6211,e.DiagnosticCategory.Message,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:t(6212,e.DiagnosticCategory.Message,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:t(6213,e.DiagnosticCategory.Message,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:t(6214,e.DiagnosticCategory.Message,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:t(6215,e.DiagnosticCategory.Message,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:t(6216,e.DiagnosticCategory.Message,"Found_1_error_6216","Found 1 error."),Found_0_errors:t(6217,e.DiagnosticCategory.Message,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:t(6218,e.DiagnosticCategory.Message,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:t(6219,e.DiagnosticCategory.Message,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:t(6220,e.DiagnosticCategory.Message,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:t(6221,e.DiagnosticCategory.Message,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:t(6222,e.DiagnosticCategory.Message,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:t(6223,e.DiagnosticCategory.Message,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:t(6224,e.DiagnosticCategory.Message,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:t(6225,e.DiagnosticCategory.Message,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:t(6226,e.DiagnosticCategory.Message,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:t(6227,e.DiagnosticCategory.Message,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:t(6228,e.DiagnosticCategory.Message,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6228","Synchronously call callbacks and update the state of directory watchers on platforms that don't support recursive watching natively."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:t(6229,e.DiagnosticCategory.Error,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:t(6230,e.DiagnosticCategory.Error,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:t(6231,e.DiagnosticCategory.Error,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:t(6232,e.DiagnosticCategory.Error,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:t(6233,e.DiagnosticCategory.Error,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:t(6234,e.DiagnosticCategory.Error,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:t(6235,e.DiagnosticCategory.Message,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:t(6236,e.DiagnosticCategory.Error,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:t(6237,e.DiagnosticCategory.Message,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:t(6238,e.DiagnosticCategory.Error,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:t(6239,e.DiagnosticCategory.Message,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:t(6240,e.DiagnosticCategory.Message,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:t(6241,e.DiagnosticCategory.Message,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:t(6242,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Projects_to_reference:t(6300,e.DiagnosticCategory.Message,"Projects_to_reference_6300","Projects to reference"),Enable_project_compilation:t(6302,e.DiagnosticCategory.Message,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:t(6304,e.DiagnosticCategory.Error,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:t(6305,e.DiagnosticCategory.Error,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:t(6306,e.DiagnosticCategory.Error,"Referenced_project_0_must_have_setting_composite_Colon_true_6306","Referenced project '{0}' must have setting \"composite\": true."),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:t(6307,e.DiagnosticCategory.Error,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Cannot_prepend_project_0_because_it_does_not_have_outFile_set:t(6308,e.DiagnosticCategory.Error,"Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308","Cannot prepend project '{0}' because it does not have 'outFile' set"),Output_file_0_from_project_1_does_not_exist:t(6309,e.DiagnosticCategory.Error,"Output_file_0_from_project_1_does_not_exist_6309","Output file '{0}' from project '{1}' does not exist"),Referenced_project_0_may_not_disable_emit:t(6310,e.DiagnosticCategory.Error,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2:t(6350,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2_6350","Project '{0}' is out of date because oldest output '{1}' is older than newest input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2:t(6351,e.DiagnosticCategory.Message,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than oldest output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:t(6352,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:t(6353,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:t(6354,e.DiagnosticCategory.Message,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:t(6355,e.DiagnosticCategory.Message,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:t(6356,e.DiagnosticCategory.Message,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:t(6357,e.DiagnosticCategory.Message,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:t(6358,e.DiagnosticCategory.Message,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:t(6359,e.DiagnosticCategory.Message,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),delete_this_Project_0_is_up_to_date_because_it_was_previously_built:t(6360,e.DiagnosticCategory.Message,"delete_this_Project_0_is_up_to_date_because_it_was_previously_built_6360","delete this - Project '{0}' is up to date because it was previously built"),Project_0_is_up_to_date:t(6361,e.DiagnosticCategory.Message,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:t(6362,e.DiagnosticCategory.Message,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:t(6363,e.DiagnosticCategory.Message,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:t(6364,e.DiagnosticCategory.Message,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:t(6365,e.DiagnosticCategory.Message,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects"),Enable_verbose_logging:t(6366,e.DiagnosticCategory.Message,"Enable_verbose_logging_6366","Enable verbose logging"),Show_what_would_be_built_or_deleted_if_specified_with_clean:t(6367,e.DiagnosticCategory.Message,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Build_all_projects_including_those_that_appear_to_be_up_to_date:t(6368,e.DiagnosticCategory.Message,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6368","Build all projects, including those that appear to be up to date"),Option_build_must_be_the_first_command_line_argument:t(6369,e.DiagnosticCategory.Error,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:t(6370,e.DiagnosticCategory.Error,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:t(6371,e.DiagnosticCategory.Message,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed:t(6372,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372","Project '{0}' is out of date because output of its dependency '{1}' has changed"),Updating_output_of_project_0:t(6373,e.DiagnosticCategory.Message,"Updating_output_of_project_0_6373","Updating output of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:t(6374,e.DiagnosticCategory.Message,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),A_non_dry_build_would_update_output_of_project_0:t(6375,e.DiagnosticCategory.Message,"A_non_dry_build_would_update_output_of_project_0_6375","A non-dry build would update output of project '{0}'"),Cannot_update_output_of_project_0_because_there_was_error_reading_file_1:t(6376,e.DiagnosticCategory.Message,"Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376","Cannot update output of project '{0}' because there was error reading file '{1}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:t(6377,e.DiagnosticCategory.Error,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Enable_incremental_compilation:t(6378,e.DiagnosticCategory.Message,"Enable_incremental_compilation_6378","Enable incremental compilation"),Composite_projects_may_not_disable_incremental_compilation:t(6379,e.DiagnosticCategory.Error,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:t(6380,e.DiagnosticCategory.Message,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:t(6381,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:t(6382,e.DiagnosticCategory.Message,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:t(6383,e.DiagnosticCategory.Message,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:t(6384,e.DiagnosticCategory.Message,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:t(6385,e.DiagnosticCategory.Suggestion,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:t(6386,e.DiagnosticCategory.Message,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:t(6387,e.DiagnosticCategory.Suggestion,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:t(6388,e.DiagnosticCategory.Message,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:t(6500,e.DiagnosticCategory.Message,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:t(6501,e.DiagnosticCategory.Message,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:t(6502,e.DiagnosticCategory.Message,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:t(6503,e.DiagnosticCategory.Message,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:t(6504,e.DiagnosticCategory.Error,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:t(6505,e.DiagnosticCategory.Message,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Include_undefined_in_index_signature_results:t(6800,e.DiagnosticCategory.Message,"Include_undefined_in_index_signature_results_6800","Include 'undefined' in index signature results"),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:t(6801,e.DiagnosticCategory.Message,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6801","Ensure overriding members in derived classes are marked with an 'override' modifier."),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:t(6802,e.DiagnosticCategory.Message,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6802","Require undeclared properties from index signatures to use element accesses."),Variable_0_implicitly_has_an_1_type:t(7005,e.DiagnosticCategory.Error,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:t(7006,e.DiagnosticCategory.Error,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:t(7008,e.DiagnosticCategory.Error,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:t(7009,e.DiagnosticCategory.Error,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:t(7010,e.DiagnosticCategory.Error,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:t(7011,e.DiagnosticCategory.Error,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:t(7013,e.DiagnosticCategory.Error,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:t(7014,e.DiagnosticCategory.Error,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:t(7015,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:t(7016,e.DiagnosticCategory.Error,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:t(7017,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:t(7018,e.DiagnosticCategory.Error,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:t(7019,e.DiagnosticCategory.Error,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:t(7020,e.DiagnosticCategory.Error,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:t(7022,e.DiagnosticCategory.Error,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:t(7023,e.DiagnosticCategory.Error,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:t(7024,e.DiagnosticCategory.Error,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:t(7025,e.DiagnosticCategory.Error,"Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025","Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:t(7026,e.DiagnosticCategory.Error,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:t(7027,e.DiagnosticCategory.Error,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:t(7028,e.DiagnosticCategory.Error,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:t(7029,e.DiagnosticCategory.Error,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:t(7030,e.DiagnosticCategory.Error,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:t(7031,e.DiagnosticCategory.Error,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:t(7032,e.DiagnosticCategory.Error,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:t(7033,e.DiagnosticCategory.Error,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:t(7034,e.DiagnosticCategory.Error,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:t(7035,e.DiagnosticCategory.Error,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:t(7036,e.DiagnosticCategory.Error,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:t(7037,e.DiagnosticCategory.Message,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:t(7038,e.DiagnosticCategory.Message,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:t(7039,e.DiagnosticCategory.Error,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:t(7040,e.DiagnosticCategory.Error,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:t(7041,e.DiagnosticCategory.Error,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:t(7042,e.DiagnosticCategory.Error,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:t(7043,e.DiagnosticCategory.Suggestion,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:t(7044,e.DiagnosticCategory.Suggestion,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:t(7045,e.DiagnosticCategory.Suggestion,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:t(7046,e.DiagnosticCategory.Suggestion,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:t(7047,e.DiagnosticCategory.Suggestion,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:t(7048,e.DiagnosticCategory.Suggestion,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:t(7049,e.DiagnosticCategory.Suggestion,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:t(7050,e.DiagnosticCategory.Suggestion,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:t(7051,e.DiagnosticCategory.Error,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:t(7052,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:t(7053,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:t(7054,e.DiagnosticCategory.Error,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:t(7055,e.DiagnosticCategory.Error,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:t(7056,e.DiagnosticCategory.Error,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:t(7057,e.DiagnosticCategory.Error,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),You_cannot_rename_this_element:t(8e3,e.DiagnosticCategory.Error,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:t(8001,e.DiagnosticCategory.Error,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:t(8002,e.DiagnosticCategory.Error,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:t(8003,e.DiagnosticCategory.Error,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:t(8004,e.DiagnosticCategory.Error,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:t(8005,e.DiagnosticCategory.Error,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:t(8006,e.DiagnosticCategory.Error,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:t(8008,e.DiagnosticCategory.Error,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:t(8009,e.DiagnosticCategory.Error,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:t(8010,e.DiagnosticCategory.Error,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:t(8011,e.DiagnosticCategory.Error,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:t(8012,e.DiagnosticCategory.Error,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:t(8013,e.DiagnosticCategory.Error,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:t(8016,e.DiagnosticCategory.Error,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:t(8017,e.DiagnosticCategory.Error,"Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017","Octal literal types must use ES2015 syntax. Use the syntax '{0}'."),Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0:t(8018,e.DiagnosticCategory.Error,"Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018","Octal literals are not allowed in enums members initializer. Use the syntax '{0}'."),Report_errors_in_js_files:t(8019,e.DiagnosticCategory.Message,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:t(8020,e.DiagnosticCategory.Error,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:t(8021,e.DiagnosticCategory.Error,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:t(8022,e.DiagnosticCategory.Error,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:t(8023,e.DiagnosticCategory.Error,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:t(8024,e.DiagnosticCategory.Error,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:t(8025,e.DiagnosticCategory.Error,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:t(8026,e.DiagnosticCategory.Error,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:t(8027,e.DiagnosticCategory.Error,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:t(8028,e.DiagnosticCategory.Error,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:t(8029,e.DiagnosticCategory.Error,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:t(8030,e.DiagnosticCategory.Error,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:t(8031,e.DiagnosticCategory.Error,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:t(8032,e.DiagnosticCategory.Error,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:t(8033,e.DiagnosticCategory.Error,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:t(8034,e.DiagnosticCategory.Error,"The_tag_was_first_specified_here_8034","The tag was first specified here."),Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clause:t(9002,e.DiagnosticCategory.Error,"Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_clas_9002","Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clause."),class_expressions_are_not_currently_supported:t(9003,e.DiagnosticCategory.Error,"class_expressions_are_not_currently_supported_9003","'class' expressions are not currently supported."),Language_service_is_disabled:t(9004,e.DiagnosticCategory.Error,"Language_service_is_disabled_9004","Language service is disabled."),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:t(9005,e.DiagnosticCategory.Error,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:t(9006,e.DiagnosticCategory.Error,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:t(17e3,e.DiagnosticCategory.Error,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:t(17001,e.DiagnosticCategory.Error,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:t(17002,e.DiagnosticCategory.Error,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),JSX_attribute_expected:t(17003,e.DiagnosticCategory.Error,"JSX_attribute_expected_17003","JSX attribute expected."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:t(17004,e.DiagnosticCategory.Error,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:t(17005,e.DiagnosticCategory.Error,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:t(17006,e.DiagnosticCategory.Error,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:t(17007,e.DiagnosticCategory.Error,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:t(17008,e.DiagnosticCategory.Error,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:t(17009,e.DiagnosticCategory.Error,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:t(17010,e.DiagnosticCategory.Error,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:t(17011,e.DiagnosticCategory.Error,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:t(17012,e.DiagnosticCategory.Error,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:t(17013,e.DiagnosticCategory.Error,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:t(17014,e.DiagnosticCategory.Error,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:t(17015,e.DiagnosticCategory.Error,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:t(17016,e.DiagnosticCategory.Error,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:t(17017,e.DiagnosticCategory.Error,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:t(17018,e.DiagnosticCategory.Error,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),Circularity_detected_while_resolving_configuration_Colon_0:t(18e3,e.DiagnosticCategory.Error,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not:t(18001,e.DiagnosticCategory.Error,"A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not_18001","A path in an 'extends' option must be relative or rooted, but '{0}' is not."),The_files_list_in_config_file_0_is_empty:t(18002,e.DiagnosticCategory.Error,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:t(18003,e.DiagnosticCategory.Error,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module:t(80001,e.DiagnosticCategory.Suggestion,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module_80001","File is a CommonJS module; it may be converted to an ES6 module."),This_constructor_function_may_be_converted_to_a_class_declaration:t(80002,e.DiagnosticCategory.Suggestion,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:t(80003,e.DiagnosticCategory.Suggestion,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:t(80004,e.DiagnosticCategory.Suggestion,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:t(80005,e.DiagnosticCategory.Suggestion,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:t(80006,e.DiagnosticCategory.Suggestion,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:t(80007,e.DiagnosticCategory.Suggestion,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:t(80008,e.DiagnosticCategory.Suggestion,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),Add_missing_super_call:t(90001,e.DiagnosticCategory.Message,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:t(90002,e.DiagnosticCategory.Message,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:t(90003,e.DiagnosticCategory.Message,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:t(90004,e.DiagnosticCategory.Message,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:t(90005,e.DiagnosticCategory.Message,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:t(90006,e.DiagnosticCategory.Message,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:t(90007,e.DiagnosticCategory.Message,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:t(90008,e.DiagnosticCategory.Message,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:t(90010,e.DiagnosticCategory.Message,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:t(90011,e.DiagnosticCategory.Message,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:t(90012,e.DiagnosticCategory.Message,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_module_1:t(90013,e.DiagnosticCategory.Message,"Import_0_from_module_1_90013","Import '{0}' from module \"{1}\""),Change_0_to_1:t(90014,e.DiagnosticCategory.Message,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Add_0_to_existing_import_declaration_from_1:t(90015,e.DiagnosticCategory.Message,"Add_0_to_existing_import_declaration_from_1_90015","Add '{0}' to existing import declaration from \"{1}\""),Declare_property_0:t(90016,e.DiagnosticCategory.Message,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:t(90017,e.DiagnosticCategory.Message,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:t(90018,e.DiagnosticCategory.Message,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:t(90019,e.DiagnosticCategory.Message,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:t(90020,e.DiagnosticCategory.Message,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:t(90021,e.DiagnosticCategory.Message,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:t(90022,e.DiagnosticCategory.Message,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:t(90023,e.DiagnosticCategory.Message,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:t(90024,e.DiagnosticCategory.Message,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:t(90025,e.DiagnosticCategory.Message,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:t(90026,e.DiagnosticCategory.Message,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:t(90027,e.DiagnosticCategory.Message,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:t(90028,e.DiagnosticCategory.Message,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:t(90029,e.DiagnosticCategory.Message,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:t(90030,e.DiagnosticCategory.Message,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:t(90031,e.DiagnosticCategory.Message,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Import_default_0_from_module_1:t(90032,e.DiagnosticCategory.Message,"Import_default_0_from_module_1_90032","Import default '{0}' from module \"{1}\""),Add_default_import_0_to_existing_import_declaration_from_1:t(90033,e.DiagnosticCategory.Message,"Add_default_import_0_to_existing_import_declaration_from_1_90033","Add default import '{0}' to existing import declaration from \"{1}\""),Add_parameter_name:t(90034,e.DiagnosticCategory.Message,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:t(90035,e.DiagnosticCategory.Message,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:t(90036,e.DiagnosticCategory.Message,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:t(90037,e.DiagnosticCategory.Message,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:t(90038,e.DiagnosticCategory.Message,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:t(90039,e.DiagnosticCategory.Message,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:t(90041,e.DiagnosticCategory.Message,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:t(90053,e.DiagnosticCategory.Message,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Convert_function_to_an_ES2015_class:t(95001,e.DiagnosticCategory.Message,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_function_0_to_class:t(95002,e.DiagnosticCategory.Message,"Convert_function_0_to_class_95002","Convert function '{0}' to class"),Convert_0_to_1_in_0:t(95003,e.DiagnosticCategory.Message,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:t(95004,e.DiagnosticCategory.Message,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:t(95005,e.DiagnosticCategory.Message,"Extract_function_95005","Extract function"),Extract_constant:t(95006,e.DiagnosticCategory.Message,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:t(95007,e.DiagnosticCategory.Message,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:t(95008,e.DiagnosticCategory.Message,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:t(95009,e.DiagnosticCategory.Message,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Annotate_with_types_from_JSDoc:t(95010,e.DiagnosticCategory.Message,"Annotate_with_types_from_JSDoc_95010","Annotate with types from JSDoc"),Infer_type_of_0_from_usage:t(95011,e.DiagnosticCategory.Message,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:t(95012,e.DiagnosticCategory.Message,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:t(95013,e.DiagnosticCategory.Message,"Convert_to_default_import_95013","Convert to default import"),Install_0:t(95014,e.DiagnosticCategory.Message,"Install_0_95014","Install '{0}'"),Replace_import_with_0:t(95015,e.DiagnosticCategory.Message,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:t(95016,e.DiagnosticCategory.Message,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES6_module:t(95017,e.DiagnosticCategory.Message,"Convert_to_ES6_module_95017","Convert to ES6 module"),Add_undefined_type_to_property_0:t(95018,e.DiagnosticCategory.Message,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:t(95019,e.DiagnosticCategory.Message,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:t(95020,e.DiagnosticCategory.Message,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:t(95021,e.DiagnosticCategory.Message,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:t(95022,e.DiagnosticCategory.Message,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:t(95023,e.DiagnosticCategory.Message,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:t(95024,e.DiagnosticCategory.Message,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:t(95025,e.DiagnosticCategory.Message,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:t(95026,e.DiagnosticCategory.Message,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:t(95027,e.DiagnosticCategory.Message,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:t(95028,e.DiagnosticCategory.Message,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:t(95029,e.DiagnosticCategory.Message,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:t(95030,e.DiagnosticCategory.Message,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:t(95031,e.DiagnosticCategory.Message,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:t(95032,e.DiagnosticCategory.Message,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:t(95033,e.DiagnosticCategory.Message,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:t(95034,e.DiagnosticCategory.Message,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:t(95035,e.DiagnosticCategory.Message,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:t(95036,e.DiagnosticCategory.Message,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:t(95037,e.DiagnosticCategory.Message,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:t(95038,e.DiagnosticCategory.Message,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:t(95039,e.DiagnosticCategory.Message,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:t(95040,e.DiagnosticCategory.Message,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:t(95041,e.DiagnosticCategory.Message,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:t(95042,e.DiagnosticCategory.Message,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:t(95043,e.DiagnosticCategory.Message,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:t(95044,e.DiagnosticCategory.Message,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:t(95045,e.DiagnosticCategory.Message,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:t(95046,e.DiagnosticCategory.Message,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:t(95047,e.DiagnosticCategory.Message,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:t(95048,e.DiagnosticCategory.Message,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:t(95049,e.DiagnosticCategory.Message,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:t(95050,e.DiagnosticCategory.Message,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:t(95051,e.DiagnosticCategory.Message,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:t(95052,e.DiagnosticCategory.Message,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:t(95053,e.DiagnosticCategory.Message,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:t(95054,e.DiagnosticCategory.Message,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:t(95055,e.DiagnosticCategory.Message,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:t(95056,e.DiagnosticCategory.Message,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:t(95057,e.DiagnosticCategory.Message,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:t(95058,e.DiagnosticCategory.Message,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:t(95059,e.DiagnosticCategory.Message,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:t(95060,e.DiagnosticCategory.Message,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:t(95061,e.DiagnosticCategory.Message,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:t(95062,e.DiagnosticCategory.Message,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:t(95063,e.DiagnosticCategory.Message,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:t(95064,e.DiagnosticCategory.Message,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:t(95065,e.DiagnosticCategory.Message,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:t(95066,e.DiagnosticCategory.Message,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:t(95067,e.DiagnosticCategory.Message,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:t(95068,e.DiagnosticCategory.Message,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:t(95069,e.DiagnosticCategory.Message,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:t(95070,e.DiagnosticCategory.Message,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:t(95071,e.DiagnosticCategory.Message,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:t(95072,e.DiagnosticCategory.Message,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:t(95073,e.DiagnosticCategory.Message,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:t(95074,e.DiagnosticCategory.Message,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:t(95075,e.DiagnosticCategory.Message,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Allow_accessing_UMD_globals_from_modules:t(95076,e.DiagnosticCategory.Message,"Allow_accessing_UMD_globals_from_modules_95076","Allow accessing UMD globals from modules."),Extract_type:t(95077,e.DiagnosticCategory.Message,"Extract_type_95077","Extract type"),Extract_to_type_alias:t(95078,e.DiagnosticCategory.Message,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:t(95079,e.DiagnosticCategory.Message,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:t(95080,e.DiagnosticCategory.Message,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:t(95081,e.DiagnosticCategory.Message,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:t(95082,e.DiagnosticCategory.Message,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:t(95083,e.DiagnosticCategory.Message,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:t(95084,e.DiagnosticCategory.Message,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:t(95085,e.DiagnosticCategory.Message,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:t(95086,e.DiagnosticCategory.Message,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:t(95087,e.DiagnosticCategory.Message,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:t(95088,e.DiagnosticCategory.Message,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:t(95089,e.DiagnosticCategory.Message,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:t(95090,e.DiagnosticCategory.Message,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:t(95091,e.DiagnosticCategory.Message,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:t(95092,e.DiagnosticCategory.Message,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:t(95093,e.DiagnosticCategory.Message,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:t(95094,e.DiagnosticCategory.Message,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:t(95095,e.DiagnosticCategory.Message,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:t(95096,e.DiagnosticCategory.Message,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:t(95097,e.DiagnosticCategory.Message,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:t(95098,e.DiagnosticCategory.Message,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:t(95099,e.DiagnosticCategory.Message,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:t(95100,e.DiagnosticCategory.Message,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:t(95101,e.DiagnosticCategory.Message,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Add_class_tag:t(95102,e.DiagnosticCategory.Message,"Add_class_tag_95102","Add '@class' tag"),Add_this_tag:t(95103,e.DiagnosticCategory.Message,"Add_this_tag_95103","Add '@this' tag"),Add_this_parameter:t(95104,e.DiagnosticCategory.Message,"Add_this_parameter_95104","Add 'this' parameter."),Convert_function_expression_0_to_arrow_function:t(95105,e.DiagnosticCategory.Message,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:t(95106,e.DiagnosticCategory.Message,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:t(95107,e.DiagnosticCategory.Message,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:t(95108,e.DiagnosticCategory.Message,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:t(95109,e.DiagnosticCategory.Message,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file:t(95110,e.DiagnosticCategory.Message,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig.json to read more about this file"),Add_a_return_statement:t(95111,e.DiagnosticCategory.Message,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:t(95112,e.DiagnosticCategory.Message,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:t(95113,e.DiagnosticCategory.Message,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:t(95114,e.DiagnosticCategory.Message,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:t(95115,e.DiagnosticCategory.Message,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:t(95116,e.DiagnosticCategory.Message,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:t(95117,e.DiagnosticCategory.Message,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:t(95118,e.DiagnosticCategory.Message,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:t(95119,e.DiagnosticCategory.Message,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:t(95120,e.DiagnosticCategory.Message,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:t(95121,e.DiagnosticCategory.Message,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:t(95122,e.DiagnosticCategory.Message,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:t(95123,e.DiagnosticCategory.Message,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:t(95124,e.DiagnosticCategory.Message,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:t(95125,e.DiagnosticCategory.Message,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:t(95126,e.DiagnosticCategory.Message,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:t(95127,e.DiagnosticCategory.Message,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:t(95128,e.DiagnosticCategory.Message,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:t(95129,e.DiagnosticCategory.Message,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:t(95130,e.DiagnosticCategory.Message,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:t(95131,e.DiagnosticCategory.Message,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:t(95132,e.DiagnosticCategory.Message,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:t(95133,e.DiagnosticCategory.Message,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:t(95134,e.DiagnosticCategory.Message,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:t(95135,e.DiagnosticCategory.Message,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:t(95136,e.DiagnosticCategory.Message,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:t(95137,e.DiagnosticCategory.Message,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:t(95138,e.DiagnosticCategory.Message,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:t(95139,e.DiagnosticCategory.Message,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:t(95140,e.DiagnosticCategory.Message,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:t(95141,e.DiagnosticCategory.Message,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:t(95142,e.DiagnosticCategory.Message,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:t(95143,e.DiagnosticCategory.Message,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:t(95144,e.DiagnosticCategory.Message,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:t(95145,e.DiagnosticCategory.Message,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:t(95146,e.DiagnosticCategory.Message,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:t(95147,e.DiagnosticCategory.Message,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:t(95148,e.DiagnosticCategory.Message,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:t(95149,e.DiagnosticCategory.Message,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:t(95150,e.DiagnosticCategory.Message,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:t(95151,e.DiagnosticCategory.Message,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:t(95152,e.DiagnosticCategory.Message,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:t(95153,e.DiagnosticCategory.Message,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenation:t(95154,e.DiagnosticCategory.Message,"Can_only_convert_string_concatenation_95154","Can only convert string concatenation"),Selection_is_not_a_valid_statement_or_statements:t(95155,e.DiagnosticCategory.Message,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:t(95156,e.DiagnosticCategory.Message,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:t(95157,e.DiagnosticCategory.Message,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:t(95158,e.DiagnosticCategory.Message,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:t(95159,e.DiagnosticCategory.Message,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:t(95160,e.DiagnosticCategory.Message,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:t(95161,e.DiagnosticCategory.Message,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:t(95162,e.DiagnosticCategory.Message,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:t(95163,e.DiagnosticCategory.Message,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:t(18004,e.DiagnosticCategory.Error,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:t(18006,e.DiagnosticCategory.Error,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:t(18007,e.DiagnosticCategory.Error,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:t(18009,e.DiagnosticCategory.Error,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:t(18010,e.DiagnosticCategory.Error,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:t(18011,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:t(18012,e.DiagnosticCategory.Error,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:t(18013,e.DiagnosticCategory.Error,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:t(18014,e.DiagnosticCategory.Error,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:t(18015,e.DiagnosticCategory.Error,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:t(18016,e.DiagnosticCategory.Error,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:t(18017,e.DiagnosticCategory.Error,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:t(18018,e.DiagnosticCategory.Error,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:t(18019,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:t(18024,e.DiagnosticCategory.Error,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:t(18026,e.DiagnosticCategory.Error,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:t(18027,e.DiagnosticCategory.Error,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:t(18028,e.DiagnosticCategory.Error,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:t(18029,e.DiagnosticCategory.Error,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:t(18030,e.DiagnosticCategory.Error,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:t(18031,e.DiagnosticCategory.Error,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:t(18032,e.DiagnosticCategory.Error,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhaustiveness_checks_consider_using_an_object_literal_instead:t(18033,e.DiagnosticCategory.Error,"Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhau_18033","Only numeric enums can have computed members, but this expression has type '{0}'. If you do not need exhaustiveness checks, consider using an object literal instead."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:t(18034,e.DiagnosticCategory.Message,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:t(18035,e.DiagnosticCategory.Error,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:t(18036,e.DiagnosticCategory.Error,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator.")}}(s||(s={})),function(e){var t;function n(e){return e>=78}e.tokenIsIdentifierOrKeyword=n,e.tokenIsIdentifierOrKeywordOrGreaterThan=function(e){return 31===e||n(e)};var i=((t={abstract:125,any:128,as:126,asserts:127,bigint:155,boolean:131,break:80,case:81,catch:82,class:83,continue:85,const:84}).constructor=132,t.debugger=86,t.declare=133,t.default=87,t.delete=88,t.do=89,t.else=90,t.enum=91,t.export=92,t.extends=93,t.false=94,t.finally=95,t.for=96,t.from=153,t.function=97,t.get=134,t.if=98,t.implements=116,t.import=99,t.in=100,t.infer=135,t.instanceof=101,t.interface=117,t.intrinsic=136,t.is=137,t.keyof=138,t.let=118,t.module=139,t.namespace=140,t.never=141,t.new=102,t.null=103,t.number=144,t.object=145,t.package=119,t.private=120,t.protected=121,t.public=122,t.override=156,t.readonly=142,t.require=143,t.global=154,t.return=104,t.set=146,t.static=123,t.string=147,t.super=105,t.switch=106,t.symbol=148,t.this=107,t.throw=108,t.true=109,t.try=110,t.type=149,t.typeof=111,t.undefined=150,t.unique=151,t.unknown=152,t.var=112,t.void=113,t.while=114,t.with=115,t.yield=124,t.async=129,t.await=130,t.of=157,t),a=new e.Map(e.getEntries(i)),o=new e.Map(e.getEntries(r(r({},i),{"{":18,"}":19,"(":20,")":21,"[":22,"]":23,".":24,"...":25,";":26,",":27,"<":29,">":31,"<=":32,">=":33,"==":34,"!=":35,"===":36,"!==":37,"=>":38,"+":39,"-":40,"**":42,"*":41,"/":43,"%":44,"++":45,"--":46,"<<":47,">":48,">>>":49,"&":50,"|":51,"^":52,"!":53,"~":54,"&&":55,"||":56,"?":57,"??":60,"?.":28,":":58,"=":62,"+=":63,"-=":64,"*=":65,"**=":66,"/=":67,"%=":68,"<<=":69,">>=":70,">>>=":71,"&=":72,"|=":73,"^=":77,"||=":74,"&&=":75,"??=":76,"@":59,"`":61}))),s=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1569,1594,1600,1610,1649,1747,1749,1749,1765,1766,1786,1788,1808,1808,1810,1836,1920,1957,2309,2361,2365,2365,2384,2384,2392,2401,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2784,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2877,2908,2909,2911,2913,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3294,3294,3296,3297,3333,3340,3342,3344,3346,3368,3370,3385,3424,3425,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3805,3840,3840,3904,3911,3913,3946,3976,3979,4096,4129,4131,4135,4137,4138,4176,4181,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6067,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12329,12337,12341,12344,12346,12353,12436,12445,12446,12449,12538,12540,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65138,65140,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],c=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,768,846,864,866,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1155,1158,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1425,1441,1443,1465,1467,1469,1471,1471,1473,1474,1476,1476,1488,1514,1520,1522,1569,1594,1600,1621,1632,1641,1648,1747,1749,1756,1759,1768,1770,1773,1776,1788,1808,1836,1840,1866,1920,1968,2305,2307,2309,2361,2364,2381,2384,2388,2392,2403,2406,2415,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2524,2525,2527,2531,2534,2545,2562,2562,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2649,2652,2654,2654,2662,2676,2689,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2784,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2876,2883,2887,2888,2891,2893,2902,2903,2908,2909,2911,2913,2918,2927,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3010,3014,3016,3018,3021,3031,3031,3047,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3134,3140,3142,3144,3146,3149,3157,3158,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3395,3398,3400,3402,3405,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3805,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3946,3953,3972,3974,3979,3984,3991,3993,4028,4038,4038,4096,4129,4131,4135,4137,4138,4140,4146,4150,4153,4160,4169,4176,4185,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4969,4977,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6099,6112,6121,6160,6169,6176,6263,6272,6313,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8319,8319,8400,8412,8417,8417,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12335,12337,12341,12344,12346,12353,12436,12441,12442,12445,12446,12449,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65056,65059,65075,65076,65101,65103,65136,65138,65140,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500],u=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],l=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],d=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42943,42946,42950,42999,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69376,69404,69415,69415,69424,69445,69600,69622,69635,69687,69763,69807,69840,69864,69891,69926,69956,69956,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70751,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71680,71723,71840,71903,71935,71935,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72384,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,123136,123180,123191,123197,123214,123214,123584,123627,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101],_=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2208,2228,2230,2237,2259,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3162,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3328,3331,3333,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7673,7675,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42943,42946,42950,42999,43047,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69376,69404,69415,69415,69424,69456,69600,69622,69632,69702,69734,69743,69759,69818,69840,69864,69872,69881,69888,69940,69942,69951,69956,69958,69968,70003,70006,70006,70016,70084,70089,70092,70096,70106,70108,70108,70144,70161,70163,70199,70206,70206,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70751,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71680,71738,71840,71913,71935,71935,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72384,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92768,92777,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123136,123180,123184,123197,123200,123209,123214,123214,123584,123641,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999],p=/^\s*\/\/\/?\s*@(ts-expect-error|ts-ignore)/,f=/^\s*(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/;function g(e,t){if(e=2?d:1===t?u:s)}e.isUnicodeIdentifierStart=m;var y,v=(y=[],o.forEach((function(e,t){y[e]=t})),y);function h(e){for(var t=new Array,r=0,n=0;r127&&C(i)&&(t.push(n),n=r)}}return t.push(n),t}function D(t,r,n,i,a){(r<0||r>=t.length)&&(a?r=r<0?0:r>=t.length?t.length-1:r:e.Debug.fail("Bad line number. Line: "+r+", lineStarts.length: "+t.length+" , line map is correct? "+(void 0!==i?e.arraysEqual(t,h(i)):"unknown")));var o=t[r]+n;return a?o>t[r+1]?t[r+1]:"string"==typeof i&&o>i.length?i.length:o:(r=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function C(e){return 10===e||13===e||8232===e||8233===e}function k(e){return e>=48&&e<=57}function A(e){return k(e)||e>=65&&e<=70||e>=97&&e<=102}function F(e){return e>=48&&e<=55}e.tokenToString=function(e){return v[e]},e.stringToToken=function(e){return o.get(e)},e.computeLineStarts=h,e.getPositionOfLineAndCharacter=function(e,t,r,n){return e.getPositionOfLineAndCharacter?e.getPositionOfLineAndCharacter(t,r,n):D(x(e),t,r,e.text,n)},e.computePositionOfLineAndCharacter=D,e.getLineStarts=x,e.computeLineAndCharacterOfPosition=b,e.computeLineOfPosition=S,e.getLinesBetweenPositions=function(e,t,r){if(t===r)return 0;var n=x(e),i=Math.min(t,r),a=i===r,o=a?t:r,s=S(n,i),c=S(n,o,s);return a?s-c:c-s},e.getLineAndCharacterOfPosition=function(e,t){return b(x(e),t)},e.isWhiteSpaceLike=E,e.isWhiteSpaceSingleLine=T,e.isLineBreak=C,e.isOctalDigit=F,e.couldStartTrivia=function(e,t){var r=e.charCodeAt(t);switch(r){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return 0===t;default:return r>127}},e.skipTrivia=function(t,r,n,i,a){if(e.positionIsSynthesized(r))return r;for(var o=!1;;){var s=t.charCodeAt(r);switch(s){case 13:10===t.charCodeAt(r+1)&&r++;case 10:if(r++,n)return r;o=!!a;continue;case 9:case 11:case 12:case 32:r++;continue;case 47:if(i)break;if(47===t.charCodeAt(r+1)){for(r+=2;r127&&E(s)){r++;continue}}return r}};var N="<<<<<<<".length;function P(t,r){if(e.Debug.assert(r>=0),0===r||C(t.charCodeAt(r-1))){var n=t.charCodeAt(r);if(r+N=0&&r127&&E(g)){d&&C(g)&&(l=!0),r++;continue}break e}}return d&&(p=i(s,c,u,l,a,p)),p}function R(e,t,r,n,i){return L(!0,e,t,!1,r,n,i)}function B(e,t,r,n,i){return L(!0,e,t,!0,r,n,i)}function j(e,t,r,n,i,a){return a||(a=[]),a.push({kind:r,pos:e,end:t,hasTrailingNewLine:n}),a}function J(e){var t=I.exec(e);if(t)return t[0]}function K(e,t){return e>=65&&e<=90||e>=97&&e<=122||36===e||95===e||e>127&&m(e,t)}function z(e,t,r){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||36===e||95===e||1===r&&(45===e||58===e)||e>127&&function(e,t){return g(e,t>=2?_:1===t?l:c)}(e,t)}e.isShebangTrivia=O,e.scanShebangTrivia=M,e.forEachLeadingCommentRange=function(e,t,r,n){return L(!1,e,t,!1,r,n)},e.forEachTrailingCommentRange=function(e,t,r,n){return L(!1,e,t,!0,r,n)},e.reduceEachLeadingCommentRange=R,e.reduceEachTrailingCommentRange=B,e.getLeadingCommentRanges=function(e,t){return R(e,t,j,void 0,void 0)},e.getTrailingCommentRanges=function(e,t){return B(e,t,j,void 0,void 0)},e.getShebang=J,e.isIdentifierStart=K,e.isIdentifierPart=z,e.isIdentifierText=function(e,t,r){var n=U(e,0);if(!K(n,t))return!1;for(var i=V(n);i115},isReservedWord:function(){return m>=80&&m<=115},isUnterminated:function(){return 0!=(4&v)},getCommentDirectives:function(){return h},getNumericLiteralFlags:function(){return 1008&v},getTokenFlags:function(){return v},reScanGreaterToken:function(){if(31===m){if(62===D.charCodeAt(l))return 62===D.charCodeAt(l+1)?61===D.charCodeAt(l+2)?(l+=3,m=71):(l+=2,m=49):61===D.charCodeAt(l+1)?(l+=2,m=70):(l++,m=48);if(61===D.charCodeAt(l))return l++,m=33}return m},reScanAsteriskEqualsToken:function(){return e.Debug.assert(65===m,"'reScanAsteriskEqualsToken' should only be called on a '*='"),l=g+1,m=62},reScanSlashToken:function(){if(43===m||67===m){for(var r=g+1,n=!1,i=!1;;){if(r>=d){v|=4,S(e.Diagnostics.Unterminated_regular_expression_literal);break}var a=D.charCodeAt(r);if(C(a)){v|=4,S(e.Diagnostics.Unterminated_regular_expression_literal);break}if(n)n=!1;else{if(47===a&&!i){r++;break}91===a?i=!0:92===a?n=!0:93===a&&(i=!1)}r++}for(;r=d)return m=1;var e=U(D,l);switch(l+=V(e),e){case 9:case 11:case 12:case 32:for(;l=0&&K(r,t))return l+=3,v|=8,y=X()+Z(),m=ee();var n=$();return n>=0&&K(n,t)?(l+=6,v|=1024,y=String.fromCharCode(n)+Z(),m=ee()):(l++,m=0)}if(K(e,t)){for(var i=e;l=65&&s<=70)s+=32;else if(!(s>=48&&s<=57||s>=97&&s<=102))break;i.push(s),l++,o=!1}}return i.length=d){n+=D.substring(i,l),v|=4,S(e.Diagnostics.Unterminated_string_literal);break}var a=D.charCodeAt(l);if(a===r){n+=D.substring(i,l),l++;break}if(92!==a||t){if(C(a)&&!t){n+=D.substring(i,l),v|=4,S(e.Diagnostics.Unterminated_string_literal);break}l++}else n+=D.substring(i,l),n+=G(),i=l}return n}function H(t){for(var r,n=96===D.charCodeAt(l),i=++l,a="";;){if(l>=d){a+=D.substring(i,l),v|=4,S(e.Diagnostics.Unterminated_template_literal),r=n?14:17;break}var o=D.charCodeAt(l);if(96===o){a+=D.substring(i,l),l++,r=n?14:17;break}if(36===o&&l+1=d)return S(e.Diagnostics.Unexpected_end_of_text),"";var n=D.charCodeAt(l);switch(l++,n){case 48:return t&&l=0?String.fromCharCode(r):(S(e.Diagnostics.Hexadecimal_digit_expected),"")}function X(){var t=j(1,!1),r=t?parseInt(t,16):-1,n=!1;return r<0?(S(e.Diagnostics.Hexadecimal_digit_expected),n=!0):r>1114111&&(S(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),n=!0),l>=d?(S(e.Diagnostics.Unexpected_end_of_text),n=!0):125===D.charCodeAt(l)?l++:(S(e.Diagnostics.Unterminated_Unicode_escape_sequence),n=!0),n?"":W(r)}function $(){if(l+5=2&&117===U(D,l+1)&&123===U(D,l+2)){var e=l;l+=3;var r=j(1,!1),n=r?parseInt(r,16):-1;return l=e,n}return-1}function Z(){for(var e="",r=l;l=0&&z(n,t)){l+=3,v|=8,e+=X(),r=l;continue}if(!((n=$())>=0&&z(n,t)))break;v|=1024,e+=D.substring(r,l),e+=W(n),r=l+=6}}return e+=D.substring(r,l)}function ee(){var e=y.length;if(e>=2&&e<=12){var t=y.charCodeAt(0);if(t>=97&&t<=122){var r=a.get(y);if(void 0!==r)return m=r}}return m=78}function te(t){for(var r="",n=!1,i=!1;;){var a=D.charCodeAt(l);if(95!==a){if(n=!0,!k(a)||a-48>=t)break;r+=D[l],l++,i=!1}else v|=512,n?(n=!1,i=!0):S(i?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,l,1),l++}return 95===D.charCodeAt(l-1)&&S(e.Diagnostics.Numeric_separators_are_not_allowed_here,l-1,1),r}function re(){if(110===D.charCodeAt(l))return y+="n",384&v&&(y=e.parsePseudoBigInt(y)+"n"),l++,9;var t=128&v?parseInt(y.slice(2),2):256&v?parseInt(y.slice(2),8):+y;return y=""+t,8}function ne(){var n;_=l,v=0;for(var a=!1;;){if(g=l,l>=d)return m=1;var o=U(D,l);if(35===o&&0===l&&O(D,l)){if(l=M(D,l),r)continue;return m=6}switch(o){case 10:case 13:if(v|=1,r){l++;continue}return 13===o&&l+1=0&&K(b,t))return l+=3,v|=8,y=X()+Z(),m=ee();var E=$();return E>=0&&K(E,t)?(l+=6,v|=1024,y=String.fromCharCode(E)+Z(),m=ee()):(S(e.Diagnostics.Invalid_character),l++,m=0);case 35:if(0!==l&&"!"===D[l+1])return S(e.Diagnostics.can_only_be_used_at_the_start_of_a_file),l++,m=0;if(l++,K(o=D.charCodeAt(l),t)){for(l++;l=d)return m=1;var r=D.charCodeAt(l);if(60===r)return 47===D.charCodeAt(l+1)?(l+=2,m=30):(l++,m=29);if(123===r)return l++,m=18;for(var n=0;l0)break;E(r)||(n=l)}l++}return y=D.substring(_,l),-1===n?12:11}function se(){switch(_=l,D.charCodeAt(l)){case 34:case 39:return y=q(!0),m=10;default:return ne()}}function ce(e,t){var r=l,n=_,i=g,a=m,o=y,s=v,c=e();return c&&!t||(l=r,_=n,g=i,m=a,y=o,v=s),c}function ue(e,t,r){D=e||"",d=void 0===r?D.length:t+r,le(t||0)}function le(t){e.Debug.assert(t>=0),l=t,_=t,g=t,m=0,y=void 0,v=0}};var U=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){var r=e.length;if(!(t<0||t>=r)){var n=e.charCodeAt(t);if(n>=55296&&n<=56319&&r>t+1){var i=e.charCodeAt(t+1);if(i>=56320&&i<=57343)return 1024*(n-55296)+i-56320+65536}return n}};function V(e){return e>=65536?2:1}var q=String.fromCodePoint?function(e){return String.fromCodePoint(e)}:function(t){if(e.Debug.assert(0<=t&&t<=1114111),t<=65535)return String.fromCharCode(t);var r=Math.floor((t-65536)/1024)+55296,n=(t-65536)%1024+56320;return String.fromCharCode(r,n)};function W(e){return q(e)}e.utf16EncodeAsString=W}(s||(s={})),function(e){function t(e){return e.start+e.length}function r(e){return 0===e.length}function n(e,t){var r=a(e,t);return r&&0===r.length?void 0:r}function i(e,t,r,n){return r<=e+t&&r+n>=e}function a(e,r){var n=Math.max(e.start,r.start),i=Math.min(t(e),t(r));return n<=i?s(n,i):void 0}function o(e,t){if(e<0)throw new Error("start < 0");if(t<0)throw new Error("length < 0");return{start:e,length:t}}function s(e,t){return o(e,t-e)}function c(e,t){if(t<0)throw new Error("newLength < 0");return{span:e,newLength:t}}function u(t){return!!Q(t)&&e.every(t.elements,l)}function l(t){return!!e.isOmittedExpression(t)||u(t.name)}function d(t){for(var r=t.parent;e.isBindingElement(r.parent);)r=r.parent.parent;return r.parent}function _(t,r){e.isBindingElement(t)&&(t=d(t));var n=r(t);return 250===t.kind&&(t=t.parent),t&&251===t.kind&&(n|=r(t),t=t.parent),t&&233===t.kind&&(n|=r(t)),n}function p(e){return 0==(8&e.flags)}function f(e){var t=e;return t.length>=3&&95===t.charCodeAt(0)&&95===t.charCodeAt(1)&&95===t.charCodeAt(2)?t.substr(1):t}function g(e){return f(e.escapedText)}function m(t){var r=t.parent.parent;if(r){if(se(r))return y(r);switch(r.kind){case 233:if(r.declarationList&&r.declarationList.declarations[0])return y(r.declarationList.declarations[0]);break;case 234:var n=r.expression;switch(217===n.kind&&62===n.operatorToken.kind&&(n=n.left),n.kind){case 202:return n.name;case 203:var i=n.argumentExpression;if(e.isIdentifier(i))return i}break;case 208:return y(r.expression);case 246:if(se(r.statement)||ne(r.statement))return y(r.statement)}}}function y(t){var r=x(t);return r&&e.isIdentifier(r)?r:void 0}function v(e){return e.name||m(e)}function h(e){return!!e.name}function D(t){switch(t.kind){case 78:return t;case 337:case 330:var r=t.name;if(158===r.kind)return r.right;break;case 204:case 217:var n=t;switch(e.getAssignmentDeclarationKind(n)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(n.left);case 7:case 8:case 9:return n.arguments[1];default:return}case 335:return v(t);case 329:return m(t);case 267:var i=t.expression;return e.isIdentifier(i)?i:void 0;case 203:var a=t;if(e.isBindableStaticElementAccessExpression(a))return a.argumentExpression}return t.name}function x(t){if(void 0!==t)return D(t)||(e.isFunctionExpression(t)||e.isArrowFunction(t)||e.isClassExpression(t)?b(t):void 0)}function b(t){if(t.parent){if(e.isPropertyAssignment(t.parent)||e.isBindingElement(t.parent))return t.parent.name;if(e.isBinaryExpression(t.parent)&&t===t.parent.right){if(e.isIdentifier(t.parent.left))return t.parent.left;if(e.isAccessExpression(t.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(t.parent.left)}else if(e.isVariableDeclaration(t.parent)&&e.isIdentifier(t.parent.name))return t.parent.name}}function S(t,r){if(t.name){if(e.isIdentifier(t.name)){var n=t.name.escapedText;return F(t.parent,r).filter((function(t){return e.isJSDocParameterTag(t)&&e.isIdentifier(t.name)&&t.name.escapedText===n}))}var i=t.parent.parameters.indexOf(t);e.Debug.assert(i>-1,"Parameters should always be in their parents' parameter list");var a=F(t.parent,r).filter(e.isJSDocParameterTag);if(i=158}function B(e){return e>=0&&e<=157}function j(e){return 8<=e&&e<=14}function J(e){return 14<=e&&e<=17}function K(t){return(e.isPropertyDeclaration(t)||Y(t))&&e.isPrivateIdentifier(t.name)}function z(e){switch(e){case 125:case 129:case 84:case 133:case 87:case 92:case 122:case 120:case 121:case 142:case 123:case 156:return!0}return!1}function U(t){return!!(16476&e.modifierToFlag(t))}function V(e){return!!e&&W(e.kind)}function q(e){switch(e){case 252:case 166:case 167:case 168:case 169:case 209:case 210:return!0;default:return!1}}function W(e){switch(e){case 165:case 170:case 315:case 171:case 172:case 175:case 309:case 176:return!0;default:return q(e)}}function H(e){var t=e.kind;return 167===t||164===t||166===t||168===t||169===t||172===t||230===t}function G(e){return e&&(253===e.kind||222===e.kind)}function Y(e){switch(e.kind){case 166:case 168:case 169:return!0;default:return!1}}function X(e){var t=e.kind;return 171===t||170===t||163===t||165===t||172===t}function $(e){var t=e.kind;return 289===t||290===t||291===t||166===t||168===t||169===t}function Q(e){if(e){var t=e.kind;return 198===t||197===t}return!1}function Z(e){switch(e.kind){case 197:case 201:return!0}return!1}function ee(e){switch(e.kind){case 198:case 200:return!0}return!1}function te(e){switch(e){case 202:case 203:case 205:case 204:case 274:case 275:case 278:case 206:case 200:case 208:case 201:case 222:case 209:case 78:case 13:case 8:case 9:case 10:case 14:case 219:case 94:case 103:case 107:case 109:case 105:case 226:case 227:case 99:return!0;default:return!1}}function re(e){switch(e){case 215:case 216:case 211:case 212:case 213:case 214:case 207:return!0;default:return te(e)}}function ne(e){return function(e){switch(e){case 218:case 220:case 210:case 217:case 221:case 225:case 223:case 341:case 340:return!0;default:return re(e)}}(M(e).kind)}function ie(t){return e.isExportAssignment(t)||e.isExportDeclaration(t)}function ae(e){return 252===e||272===e||253===e||254===e||255===e||256===e||257===e||262===e||261===e||268===e||267===e||260===e}function oe(e){return 242===e||241===e||249===e||236===e||234===e||232===e||239===e||240===e||238===e||235===e||246===e||243===e||245===e||247===e||248===e||233===e||237===e||244===e||339===e||343===e||342===e}function se(t){return 160===t.kind?t.parent&&334!==t.parent.kind||e.isInJSFile(t):210===(r=t.kind)||199===r||253===r||222===r||167===r||256===r||292===r||271===r||252===r||209===r||168===r||263===r||261===r||266===r||254===r||281===r||166===r||165===r||257===r||260===r||264===r||270===r||161===r||289===r||164===r||163===r||169===r||290===r||255===r||160===r||250===r||335===r||328===r||337===r;var r}function ce(e){return e.kind>=317&&e.kind<=337}e.isExternalModuleNameRelative=function(t){return e.pathIsRelative(t)||e.isRootedDiskPath(t)},e.sortAndDeduplicateDiagnostics=function(t){return e.sortAndDeduplicate(t,e.compareDiagnostics)},e.getDefaultLibFileName=function(e){switch(e.target){case 99:return"lib.esnext.full.d.ts";case 8:return"lib.es2021.full.d.ts";case 7:return"lib.es2020.full.d.ts";case 6:return"lib.es2019.full.d.ts";case 5:return"lib.es2018.full.d.ts";case 4:return"lib.es2017.full.d.ts";case 3:return"lib.es2016.full.d.ts";case 2:return"lib.es6.d.ts";default:return"lib.d.ts"}},e.textSpanEnd=t,e.textSpanIsEmpty=r,e.textSpanContainsPosition=function(e,r){return r>=e.start&&r=e.pos&&t<=e.end},e.textSpanContainsTextSpan=function(e,r){return r.start>=e.start&&t(r)<=t(e)},e.textSpanOverlapsWith=function(e,t){return void 0!==n(e,t)},e.textSpanOverlap=n,e.textSpanIntersectsWithTextSpan=function(e,t){return i(e.start,e.length,t.start,t.length)},e.textSpanIntersectsWith=function(e,t,r){return i(e.start,e.length,t,r)},e.decodedTextSpanIntersectsWith=i,e.textSpanIntersectsWithPosition=function(e,r){return r<=t(e)&&r>=e.start},e.textSpanIntersection=a,e.createTextSpan=o,e.createTextSpanFromBounds=s,e.textChangeRangeNewSpan=function(e){return o(e.span.start,e.newLength)},e.textChangeRangeIsUnchanged=function(e){return r(e.span)&&0===e.newLength},e.createTextChangeRange=c,e.unchangedTextChangeRange=c(o(0,0),0),e.collapseTextChangeRangesAcrossMultipleVersions=function(r){if(0===r.length)return e.unchangedTextChangeRange;if(1===r.length)return r[0];for(var n=r[0],i=n.span.start,a=t(n.span),o=i+n.newLength,u=1;u=2&&95===e.charCodeAt(0)&&95===e.charCodeAt(1)?"_"+e:e},e.unescapeLeadingUnderscores=f,e.idText=g,e.symbolName=function(e){return e.valueDeclaration&&K(e.valueDeclaration)?g(e.valueDeclaration.name):f(e.escapedName)},e.nodeHasName=function t(r,n){return!(!h(r)||!e.isIdentifier(r.name)||g(r.name)!==g(n))||!(!e.isVariableStatement(r)||!e.some(r.declarationList.declarations,(function(e){return t(e,n)})))},e.getNameOfJSDocTypedef=v,e.isNamedDeclaration=h,e.getNonAssignedNameOfDeclaration=D,e.getNameOfDeclaration=x,e.getAssignedName=b,e.getJSDocParameterTags=E,e.getJSDocParameterTagsNoCache=function(e){return S(e,!0)},e.getJSDocTypeParameterTags=function(e){return T(e,!1)},e.getJSDocTypeParameterTagsNoCache=function(e){return T(e,!0)},e.hasJSDocParameterTags=function(t){return!!P(t,e.isJSDocParameterTag)},e.getJSDocAugmentsTag=function(t){return P(t,e.isJSDocAugmentsTag)},e.getJSDocImplementsTags=function(t){return w(t,e.isJSDocImplementsTag)},e.getJSDocClassTag=function(t){return P(t,e.isJSDocClassTag)},e.getJSDocPublicTag=function(t){return P(t,e.isJSDocPublicTag)},e.getJSDocPublicTagNoCache=function(t){return P(t,e.isJSDocPublicTag,!0)},e.getJSDocPrivateTag=function(t){return P(t,e.isJSDocPrivateTag)},e.getJSDocPrivateTagNoCache=function(t){return P(t,e.isJSDocPrivateTag,!0)},e.getJSDocProtectedTag=function(t){return P(t,e.isJSDocProtectedTag)},e.getJSDocProtectedTagNoCache=function(t){return P(t,e.isJSDocProtectedTag,!0)},e.getJSDocReadonlyTag=function(t){return P(t,e.isJSDocReadonlyTag)},e.getJSDocReadonlyTagNoCache=function(t){return P(t,e.isJSDocReadonlyTag,!0)},e.getJSDocOverrideTagNoCache=function(t){return P(t,e.isJSDocOverrideTag,!0)},e.getJSDocDeprecatedTag=function(t){return P(t,e.isJSDocDeprecatedTag)},e.getJSDocDeprecatedTagNoCache=function(t){return P(t,e.isJSDocDeprecatedTag,!0)},e.getJSDocEnumTag=function(t){return P(t,e.isJSDocEnumTag)},e.getJSDocThisTag=function(t){return P(t,e.isJSDocThisTag)},e.getJSDocReturnTag=C,e.getJSDocTemplateTag=function(t){return P(t,e.isJSDocTemplateTag)},e.getJSDocTypeTag=k,e.getJSDocType=A,e.getJSDocReturnType=function(t){var r=C(t);if(r&&r.typeExpression)return r.typeExpression.type;var n=k(t);if(n&&n.typeExpression){var i=n.typeExpression.type;if(e.isTypeLiteralNode(i)){var a=e.find(i.members,e.isCallSignatureDeclaration);return a&&a.type}if(e.isFunctionTypeNode(i)||e.isJSDocFunctionType(i))return i.type}},e.getJSDocTags=N,e.getJSDocTagsNoCache=function(e){return F(e,!0)},e.getAllJSDocTags=w,e.getAllJSDocTagsOfKind=function(e,t){return N(e).filter((function(e){return e.kind===t}))},e.getTextOfJSDocComment=function(t){return"string"==typeof t?t:null==t?void 0:t.map((function(t){return 313===t.kind?t.text:"{@link "+(t.name?e.entityNameToString(t.name)+" ":"")+t.text+"}"})).join("")},e.getEffectiveTypeParameterDeclarations=function(t){if(e.isJSDocSignature(t))return e.emptyArray;if(e.isJSDocTypeAlias(t))return e.Debug.assert(312===t.parent.kind),e.flatMap(t.parent.tags,(function(t){return e.isJSDocTemplateTag(t)?t.typeParameters:void 0}));if(t.typeParameters)return t.typeParameters;if(e.isInJSFile(t)){var r=e.getJSDocTypeParameterDeclarations(t);if(r.length)return r;var n=A(t);if(n&&e.isFunctionTypeNode(n)&&n.typeParameters)return n.typeParameters}return e.emptyArray},e.getEffectiveConstraintOfTypeParameter=function(t){return t.constraint?t.constraint:e.isJSDocTemplateTag(t.parent)&&t===t.parent.typeParameters[0]?t.parent.constraint:void 0},e.isMemberName=function(e){return 78===e.kind||79===e.kind},e.isGetOrSetAccessorDeclaration=function(e){return 169===e.kind||168===e.kind},e.isPropertyAccessChain=function(t){return e.isPropertyAccessExpression(t)&&!!(32&t.flags)},e.isElementAccessChain=function(t){return e.isElementAccessExpression(t)&&!!(32&t.flags)},e.isCallChain=function(t){return e.isCallExpression(t)&&!!(32&t.flags)},e.isOptionalChain=I,e.isOptionalChainRoot=O,e.isExpressionOfOptionalChainRoot=function(e){return O(e.parent)&&e.parent.expression===e},e.isOutermostOptionalChain=function(e){return!I(e.parent)||O(e.parent)||e!==e.parent.expression},e.isNullishCoalesce=function(e){return 217===e.kind&&60===e.operatorToken.kind},e.isConstTypeReference=function(t){return e.isTypeReferenceNode(t)&&e.isIdentifier(t.typeName)&&"const"===t.typeName.escapedText&&!t.typeArguments},e.skipPartiallyEmittedExpressions=M,e.isNonNullChain=function(t){return e.isNonNullExpression(t)&&!!(32&t.flags)},e.isBreakOrContinueStatement=function(e){return 242===e.kind||241===e.kind},e.isNamedExportBindings=function(e){return 270===e.kind||269===e.kind},e.isUnparsedTextLike=L,e.isUnparsedNode=function(e){return L(e)||293===e.kind||297===e.kind},e.isJSDocPropertyLikeTag=function(e){return 337===e.kind||330===e.kind},e.isNode=function(e){return R(e.kind)},e.isNodeKind=R,e.isTokenKind=B,e.isToken=function(e){return B(e.kind)},e.isNodeArray=function(e){return e.hasOwnProperty("pos")&&e.hasOwnProperty("end")},e.isLiteralKind=j,e.isLiteralExpression=function(e){return j(e.kind)},e.isTemplateLiteralKind=J,e.isTemplateLiteralToken=function(e){return J(e.kind)},e.isTemplateMiddleOrTemplateTail=function(e){var t=e.kind;return 16===t||17===t},e.isImportOrExportSpecifier=function(t){return e.isImportSpecifier(t)||e.isExportSpecifier(t)},e.isTypeOnlyImportOrExportDeclaration=function(e){switch(e.kind){case 266:case 271:return e.parent.parent.isTypeOnly;case 264:return e.parent.isTypeOnly;case 263:case 261:return e.isTypeOnly;default:return!1}},e.isStringTextContainingNode=function(e){return 10===e.kind||J(e.kind)},e.isGeneratedIdentifier=function(t){return e.isIdentifier(t)&&(7&t.autoGenerateFlags)>0},e.isPrivateIdentifierClassElementDeclaration=K,e.isPrivateIdentifierPropertyAccessExpression=function(t){return e.isPropertyAccessExpression(t)&&e.isPrivateIdentifier(t.name)},e.isModifierKind=z,e.isParameterPropertyModifier=U,e.isClassMemberModifier=function(e){return U(e)||123===e||156===e},e.isModifier=function(e){return z(e.kind)},e.isEntityName=function(e){var t=e.kind;return 158===t||78===t},e.isPropertyName=function(e){var t=e.kind;return 78===t||79===t||10===t||8===t||159===t},e.isBindingName=function(e){var t=e.kind;return 78===t||197===t||198===t},e.isFunctionLike=V,e.isFunctionLikeDeclaration=function(e){return e&&q(e.kind)},e.isFunctionLikeKind=W,e.isFunctionOrModuleBlock=function(t){return e.isSourceFile(t)||e.isModuleBlock(t)||e.isBlock(t)&&V(t.parent)},e.isClassElement=H,e.isClassLike=G,e.isAccessor=function(e){return e&&(168===e.kind||169===e.kind)},e.isMethodOrAccessor=Y,e.isTypeElement=X,e.isClassOrTypeElement=function(e){return X(e)||H(e)},e.isObjectLiteralElementLike=$,e.isTypeNode=function(t){return e.isTypeNodeKind(t.kind)},e.isFunctionOrConstructorTypeNode=function(e){switch(e.kind){case 175:case 176:return!0}return!1},e.isBindingPattern=Q,e.isAssignmentPattern=function(e){var t=e.kind;return 200===t||201===t},e.isArrayBindingElement=function(e){var t=e.kind;return 199===t||223===t},e.isDeclarationBindingElement=function(e){switch(e.kind){case 250:case 161:case 199:return!0}return!1},e.isBindingOrAssignmentPattern=function(e){return Z(e)||ee(e)},e.isObjectBindingOrAssignmentPattern=Z,e.isArrayBindingOrAssignmentPattern=ee,e.isPropertyAccessOrQualifiedNameOrImportTypeNode=function(e){var t=e.kind;return 202===t||158===t||196===t},e.isPropertyAccessOrQualifiedName=function(e){var t=e.kind;return 202===t||158===t},e.isCallLikeExpression=function(e){switch(e.kind){case 276:case 275:case 204:case 205:case 206:case 162:return!0;default:return!1}},e.isCallOrNewExpression=function(e){return 204===e.kind||205===e.kind},e.isTemplateLiteral=function(e){var t=e.kind;return 219===t||14===t},e.isLeftHandSideExpression=function(e){return te(M(e).kind)},e.isUnaryExpression=function(e){return re(M(e).kind)},e.isUnaryExpressionWithWrite=function(e){switch(e.kind){case 216:return!0;case 215:return 45===e.operator||46===e.operator;default:return!1}},e.isExpression=ne,e.isAssertionExpression=function(e){var t=e.kind;return 207===t||225===t},e.isNotEmittedOrPartiallyEmittedNode=function(t){return e.isNotEmittedStatement(t)||e.isPartiallyEmittedExpression(t)},e.isIterationStatement=function e(t,r){switch(t.kind){case 238:case 239:case 240:case 236:case 237:return!0;case 246:return r&&e(t.statement,r)}return!1},e.isScopeMarker=ie,e.hasScopeMarker=function(t){return e.some(t,ie)},e.needsScopeMarker=function(t){return!(e.isAnyImportOrReExport(t)||e.isExportAssignment(t)||e.hasSyntacticModifier(t,1)||e.isAmbientModule(t))},e.isExternalModuleIndicator=function(t){return e.isAnyImportOrReExport(t)||e.isExportAssignment(t)||e.hasSyntacticModifier(t,1)},e.isForInOrOfStatement=function(e){return 239===e.kind||240===e.kind},e.isConciseBody=function(t){return e.isBlock(t)||ne(t)},e.isFunctionBody=function(t){return e.isBlock(t)},e.isForInitializer=function(t){return e.isVariableDeclarationList(t)||ne(t)},e.isModuleBody=function(e){var t=e.kind;return 258===t||257===t||78===t},e.isNamespaceBody=function(e){var t=e.kind;return 258===t||257===t},e.isJSDocNamespaceBody=function(e){var t=e.kind;return 78===t||257===t},e.isNamedImportBindings=function(e){var t=e.kind;return 265===t||264===t},e.isModuleOrEnumDeclaration=function(e){return 257===e.kind||256===e.kind},e.isDeclaration=se,e.isDeclarationStatement=function(e){return ae(e.kind)},e.isStatementButNotDeclaration=function(e){return oe(e.kind)},e.isStatement=function(t){var r=t.kind;return oe(r)||ae(r)||function(t){if(231!==t.kind)return!1;if(void 0!==t.parent&&(248===t.parent.kind||288===t.parent.kind))return!1;return!e.isFunctionBlock(t)}(t)},e.isStatementOrBlock=function(e){var t=e.kind;return oe(t)||ae(t)||231===t},e.isModuleReference=function(e){var t=e.kind;return 273===t||158===t||78===t},e.isJsxTagNameExpression=function(e){var t=e.kind;return 107===t||78===t||202===t},e.isJsxChild=function(e){var t=e.kind;return 274===t||284===t||275===t||11===t||278===t},e.isJsxAttributeLike=function(e){var t=e.kind;return 281===t||283===t},e.isStringLiteralOrJsxExpression=function(e){var t=e.kind;return 10===t||284===t},e.isJsxOpeningLikeElement=function(e){var t=e.kind;return 276===t||275===t},e.isCaseOrDefaultClause=function(e){var t=e.kind;return 285===t||286===t},e.isJSDocNode=function(e){return e.kind>=302&&e.kind<=337},e.isJSDocCommentContainingNode=function(t){return 312===t.kind||311===t.kind||313===t.kind||316===t.kind||ce(t)||e.isJSDocTypeLiteral(t)||e.isJSDocSignature(t)},e.isJSDocTag=ce,e.isSetAccessor=function(e){return 169===e.kind},e.isGetAccessor=function(e){return 168===e.kind},e.hasJSDocNodes=function(e){var t=e.jsDoc;return!!t&&t.length>0},e.hasType=function(e){return!!e.type},e.hasInitializer=function(e){return!!e.initializer},e.hasOnlyExpressionInitializer=function(e){switch(e.kind){case 250:case 161:case 199:case 163:case 164:case 289:case 292:return!0;default:return!1}},e.isObjectLiteralElement=function(e){return 281===e.kind||283===e.kind||$(e)},e.isTypeReferenceType=function(e){return 174===e.kind||224===e.kind};var ue=1073741823;e.guessIndentation=function(t){for(var r=ue,n=0,i=t;n=0);var n=e.getLineStarts(r),i=t,a=r.text;if(i+1===n.length)return a.length-1;var o=n[i],s=n[i+1]-1;for(e.Debug.assert(e.isLineBreak(a.charCodeAt(s)));o<=s&&e.isLineBreak(a.charCodeAt(s));)s--;return s}function _(e){return void 0===e||e.pos===e.end&&e.pos>=0&&1!==e.kind}function p(e){return!_(e)}function f(e,r,n){if(void 0===r||0===r.length)return e;for(var i=0;i0?v(t._children[0],r,n):e.skipTrivia((r||l(t)).text,t.pos,!1,!1,De(t))}function h(e,t,r){return void 0===r&&(r=!1),D(e.text,t,r)}function D(t,r,n){if(void 0===n&&(n=!1),_(r))return"";var i=t.substring(n?r.pos:e.skipTrivia(t,r.pos),r.end);return function(t){return!!e.findAncestor(t,e.isJSDocTypeExpression)}(r)&&(i=i.replace(/(^|\r?\n|\r)\s*\*\s*/g,"$1")),i}function x(e,t){return void 0===t&&(t=!1),h(l(e),e,t)}function b(e){return e.pos}function S(e){var t=e.emitNode;return t&&t.flags||0}function E(e){var t=Et(e);return 250===t.kind&&288===t.parent.kind}function T(t){return e.isModuleDeclaration(t)&&(10===t.name.kind||k(t))}function C(t){return e.isModuleDeclaration(t)||e.isIdentifier(t)}function k(e){return!!(1024&e.flags)}function A(e){return T(e)&&F(e)}function F(t){switch(t.parent.kind){case 298:return e.isExternalModule(t.parent);case 258:return T(t.parent.parent)&&e.isSourceFile(t.parent.parent.parent)&&!e.isExternalModule(t.parent.parent.parent)}return!1}function N(t,r){switch(t.kind){case 298:case 259:case 288:case 257:case 238:case 239:case 240:case 167:case 166:case 168:case 169:case 252:case 209:case 210:return!0;case 231:return!e.isFunctionLike(r)}return!1}function P(t){switch(t.kind){case 170:case 171:case 165:case 172:case 175:case 176:case 309:case 253:case 222:case 254:case 255:case 334:case 252:case 166:case 167:case 168:case 169:case 209:case 210:return!0;default:return e.assertType(t),!1}}function w(e){switch(e.kind){case 262:case 261:return!0;default:return!1}}function I(t){return w(t)||e.isExportDeclaration(t)}function O(e){return e&&0!==c(e)?x(e):"(Missing)"}function M(t){switch(t.kind){case 78:case 79:return t.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(t.text);case 159:return yt(t.expression)?e.escapeLeadingUnderscores(t.expression.text):e.Debug.fail("Text of property name cannot be read from non-literal-valued ComputedPropertyNames");default:return e.Debug.assertNever(t)}}function L(t){switch(t.kind){case 107:return"this";case 79:case 78:return 0===c(t)?e.idText(t):x(t);case 158:return L(t.left)+"."+L(t.right);case 202:return e.isIdentifier(t.name)||e.isPrivateIdentifier(t.name)?L(t.expression)+"."+L(t.name):e.Debug.assertNever(t.name);default:return e.Debug.assertNever(t)}}function R(e,t,r,n,i,a,o){var s=K(e,t);return dn(e,s.start,s.length,r,n,i,a,o)}function B(t,r,n){e.Debug.assertGreaterThanOrEqual(r,0),e.Debug.assertGreaterThanOrEqual(n,0),t&&(e.Debug.assertLessThanOrEqual(r,t.text.length),e.Debug.assertLessThanOrEqual(r+n,t.text.length))}function j(e,t,r,n,i){return B(e,t,r),{file:e,start:t,length:r,code:n.code,category:n.category,messageText:n.next?n:n.messageText,relatedInformation:i}}function J(t,r){var n=e.createScanner(t.languageVersion,!0,t.languageVariant,t.text,void 0,r);n.scan();var i=n.getTokenPos();return e.createTextSpanFromBounds(i,n.getTextPos())}function K(t,r){var n=r;switch(r.kind){case 298:var i=e.skipTrivia(t.text,0,!1);return i===t.text.length?e.createTextSpan(0,0):J(t,i);case 250:case 199:case 253:case 222:case 254:case 257:case 256:case 292:case 252:case 209:case 166:case 168:case 169:case 255:case 164:case 163:n=r.name;break;case 210:return function(t,r){var n=e.skipTrivia(t.text,r.pos);if(r.body&&231===r.body.kind){var i=e.getLineAndCharacterOfPosition(t,r.body.pos).line;if(i0?r.statements[0].pos:r.end;return e.createTextSpanFromBounds(a,o)}if(void 0===n)return J(t,r.pos);e.Debug.assert(!e.isJSDoc(n));var s=_(n),c=s||e.isJsxText(r)?n.pos:e.skipTrivia(t.text,n.pos);return s?(e.Debug.assert(c===n.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(c===n.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")):(e.Debug.assert(c>=n.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(c<=n.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")),e.createTextSpanFromBounds(c,n.end)}function z(e){return 6===e.scriptKind}function U(t){return!!(2&e.getCombinedNodeFlags(t))}function V(e){return 204===e.kind&&99===e.expression.kind}function q(t){return e.isImportTypeNode(t)&&e.isLiteralTypeNode(t.argument)&&e.isStringLiteral(t.argument.literal)}function W(e){return 234===e.kind&&10===e.expression.kind}function H(e){return!!(1048576&S(e))}function G(t){return e.isIdentifier(t.name)&&!t.initializer}e.changesAffectModuleResolution=function(e,t){return e.configFilePath!==t.configFilePath||s(e,t)},e.optionsHaveModuleResolutionChanges=s,e.forEachAncestor=function(t,r){for(;;){var n=r(t);if("quit"===n)return;if(void 0!==n)return n;if(e.isSourceFile(t))return;t=t.parent}},e.forEachEntry=function(e,t){for(var r=e.entries(),n=r.next();!n.done;n=r.next()){var i=n.value,a=i[0],o=t(i[1],a);if(o)return o}},e.forEachKey=function(e,t){for(var r=e.keys(),n=r.next();!n.done;n=r.next()){var i=t(n.value);if(i)return i}},e.copyEntries=function(e,t){e.forEach((function(e,r){t.set(r,e)}))},e.usingSingleLineStringWriter=function(e){var t=o.getText();try{return e(o),o.getText()}finally{o.clear(),o.writeKeyword(t)}},e.getFullWidth=c,e.getResolvedModule=function(e,t){return e&&e.resolvedModules&&e.resolvedModules.get(t)},e.setResolvedModule=function(t,r,n){t.resolvedModules||(t.resolvedModules=new e.Map),t.resolvedModules.set(r,n)},e.setResolvedTypeReferenceDirective=function(t,r,n){t.resolvedTypeReferenceDirectiveNames||(t.resolvedTypeReferenceDirectiveNames=new e.Map),t.resolvedTypeReferenceDirectiveNames.set(r,n)},e.projectReferenceIsEqualTo=function(e,t){return e.path===t.path&&!e.prepend==!t.prepend&&!e.circular==!t.circular},e.moduleResolutionIsEqualTo=function(e,t){return e.isExternalLibraryImport===t.isExternalLibraryImport&&e.extension===t.extension&&e.resolvedFileName===t.resolvedFileName&&e.originalPath===t.originalPath&&(r=e.packageId,n=t.packageId,r===n||!!r&&!!n&&r.name===n.name&&r.subModuleName===n.subModuleName&&r.version===n.version);var r,n},e.packageIdToString=function(e){var t=e.name,r=e.subModuleName;return(r?t+"/"+r:t)+"@"+e.version},e.typeDirectiveIsEqualTo=function(e,t){return e.resolvedFileName===t.resolvedFileName&&e.primary===t.primary&&e.originalPath===t.originalPath},e.hasChangesInResolutions=function(t,r,n,i){e.Debug.assert(t.length===r.length);for(var a=0;a=0),e.getLineStarts(r)[t]},e.nodePosToString=function(t){var r=l(t),n=e.getLineAndCharacterOfPosition(r,t.pos);return r.fileName+"("+(n.line+1)+","+(n.character+1)+")"},e.getEndLinePosition=d,e.isFileLevelUniqueName=function(e,t,r){return!(r&&r(t)||e.identifiers.has(t))},e.nodeIsMissing=_,e.nodeIsPresent=p,e.insertStatementsAfterStandardPrologue=function(e,t){return f(e,t,W)},e.insertStatementsAfterCustomPrologue=function(e,t){return f(e,t,m)},e.insertStatementAfterStandardPrologue=function(e,t){return g(e,t,W)},e.insertStatementAfterCustomPrologue=function(e,t){return g(e,t,m)},e.isRecognizedTripleSlashComment=function(t,r,n){if(47===t.charCodeAt(r+1)&&r+2=e.ModuleKind.ES2015||!r.noImplicitUseStrict)))},e.isBlockScope=N,e.isDeclarationWithTypeParameters=function(t){switch(t.kind){case 328:case 335:case 315:return!0;default:return e.assertType(t),P(t)}},e.isDeclarationWithTypeParameterChildren=P,e.isAnyImportSyntax=w,e.isLateVisibilityPaintedStatement=function(e){switch(e.kind){case 262:case 261:case 233:case 253:case 252:case 257:case 255:case 254:case 256:return!0;default:return!1}},e.hasPossibleExternalModuleReference=function(t){return I(t)||e.isModuleDeclaration(t)||e.isImportTypeNode(t)||V(t)},e.isAnyImportOrReExport=I,e.getEnclosingBlockScopeContainer=function(t){return e.findAncestor(t.parent,(function(e){return N(e,e.parent)}))},e.declarationNameToString=O,e.getNameFromIndexInfo=function(e){return e.declaration?O(e.declaration.parameters[0].name):void 0},e.isComputedNonLiteralName=function(e){return 159===e.kind&&!yt(e.expression)},e.getTextOfPropertyName=M,e.entityNameToString=L,e.createDiagnosticForNode=function(e,t,r,n,i,a){return R(l(e),e,t,r,n,i,a)},e.createDiagnosticForNodeArray=function(t,r,n,i,a,o,s){var c=e.skipTrivia(t.text,r.pos);return dn(t,c,r.end-c,n,i,a,o,s)},e.createDiagnosticForNodeInSourceFile=R,e.createDiagnosticForNodeFromMessageChain=function(e,t,r){var n=l(e),i=K(n,e);return j(n,i.start,i.length,t,r)},e.createFileDiagnosticFromMessageChain=j,e.createDiagnosticForFileFromMessageChain=function(e,t,r){return{file:e,start:0,length:0,code:t.code,category:t.category,messageText:t.next?t:t.messageText,relatedInformation:r}},e.createDiagnosticForRange=function(e,t,r){return{file:e,start:t.pos,length:t.end-t.pos,code:r.code,category:r.category,messageText:r.message}},e.getSpanOfTokenAtPosition=J,e.getErrorSpanForNode=K,e.isExternalOrCommonJsModule=function(e){return void 0!==(e.externalModuleIndicator||e.commonJsModuleIndicator)},e.isJsonSourceFile=z,e.isEnumConst=function(t){return!!(2048&e.getCombinedModifierFlags(t))},e.isDeclarationReadonly=function(t){return!(!(64&e.getCombinedModifierFlags(t))||e.isParameterPropertyDeclaration(t,t.parent))},e.isVarConst=U,e.isLet=function(t){return!!(1&e.getCombinedNodeFlags(t))},e.isSuperCall=function(e){return 204===e.kind&&105===e.expression.kind},e.isImportCall=V,e.isImportMeta=function(t){return e.isMetaProperty(t)&&99===t.keywordToken&&"meta"===t.name.escapedText},e.isLiteralImportTypeNode=q,e.isPrologueDirective=W,e.isCustomPrologue=H,e.isHoistedFunction=function(t){return H(t)&&e.isFunctionDeclaration(t)},e.isHoistedVariableStatement=function(t){return H(t)&&e.isVariableStatement(t)&&e.every(t.declarationList.declarations,G)},e.getLeadingCommentRangesOfNode=function(t,r){return 11!==t.kind?e.getLeadingCommentRanges(r.text,t.pos):void 0},e.getJSDocCommentRanges=function(t,r){var n=161===t.kind||160===t.kind||209===t.kind||210===t.kind||208===t.kind||250===t.kind?e.concatenate(e.getTrailingCommentRanges(r,t.pos),e.getLeadingCommentRanges(r,t.pos)):e.getLeadingCommentRanges(r,t.pos);return e.filter(n,(function(e){return 42===r.charCodeAt(e.pos+1)&&42===r.charCodeAt(e.pos+2)&&47!==r.charCodeAt(e.pos+3)}))},e.fullTripleSlashReferencePathRegEx=/^(\/\/\/\s*/;var Y=/^(\/\/\/\s*/;e.fullTripleSlashAMDReferencePathRegEx=/^(\/\/\/\s*/;var X,$,Q,Z,ee=/^(\/\/\/\s*/;function te(t){if(173<=t.kind&&t.kind<=196)return!0;switch(t.kind){case 128:case 152:case 144:case 155:case 147:case 131:case 148:case 145:case 150:case 141:return!0;case 113:return 213!==t.parent.kind;case 224:return!Ir(t);case 160:return 191===t.parent.kind||186===t.parent.kind;case 78:(158===t.parent.kind&&t.parent.right===t||202===t.parent.kind&&t.parent.name===t)&&(t=t.parent),e.Debug.assert(78===t.kind||158===t.kind||202===t.kind,"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.");case 158:case 202:case 107:var r=t.parent;if(177===r.kind)return!1;if(196===r.kind)return!r.isTypeOf;if(173<=r.kind&&r.kind<=196)return!0;switch(r.kind){case 224:return!Ir(r);case 160:case 334:return t===r.constraint;case 164:case 163:case 161:case 250:return t===r.type;case 252:case 209:case 210:case 167:case 166:case 165:case 168:case 169:return t===r.type;case 170:case 171:case 172:case 207:return t===r.type;case 204:case 205:return e.contains(r.typeArguments,t);case 206:return!1}}return!1}function re(e){if(e)switch(e.kind){case 199:case 292:case 161:case 289:case 164:case 163:case 290:case 250:return!0}return!1}function ne(e){return 251===e.parent.kind&&233===e.parent.parent.kind}function ie(e,t,r){return e.properties.filter((function(e){if(289===e.kind){var n=M(e.name);return t===n||!!r&&r===n}return!1}))}function ae(t){if(t&&t.statements.length){var r=t.statements[0].expression;return e.tryCast(r,e.isObjectLiteralExpression)}}function oe(t,r){var n=ae(t);return n?ie(n,r):e.emptyArray}function se(t,r){for(e.Debug.assert(298!==t.kind);;){if(!(t=t.parent))return e.Debug.fail();switch(t.kind){case 159:if(e.isClassLike(t.parent.parent))return t;t=t.parent;break;case 162:161===t.parent.kind&&e.isClassElement(t.parent.parent)?t=t.parent.parent:e.isClassElement(t.parent)&&(t=t.parent);break;case 210:if(!r)continue;case 252:case 209:case 257:case 164:case 163:case 166:case 165:case 167:case 168:case 169:case 170:case 171:case 172:case 256:case 298:return t}}}function ce(e){var t=e.kind;return(202===t||203===t)&&105===e.expression.kind}function ue(t,r,n){if(e.isNamedDeclaration(t)&&e.isPrivateIdentifier(t.name))return!1;switch(t.kind){case 253:return!0;case 164:return 253===r.kind;case 168:case 169:case 166:return void 0!==t.body&&253===r.kind;case 161:return void 0!==r.body&&(167===r.kind||166===r.kind||169===r.kind)&&253===n.kind}return!1}function le(e,t,r){return void 0!==e.decorators&&ue(e,t,r)}function de(e,t,r){return le(e,t,r)||_e(e,t)}function _e(t,r){switch(t.kind){case 253:return e.some(t.members,(function(e){return de(e,t,r)}));case 166:case 169:return e.some(t.parameters,(function(e){return le(e,t,r)}));default:return!1}}function pe(e){var t=e.parent;return(276===t.kind||275===t.kind||277===t.kind)&&t.tagName===e}function fe(e){switch(e.kind){case 105:case 103:case 109:case 94:case 13:case 200:case 201:case 202:case 203:case 204:case 205:case 206:case 225:case 207:case 226:case 208:case 209:case 222:case 210:case 213:case 211:case 212:case 215:case 216:case 217:case 218:case 221:case 219:case 223:case 274:case 275:case 278:case 220:case 214:case 227:return!0;case 158:for(;158===e.parent.kind;)e=e.parent;return 177===e.parent.kind||pe(e);case 78:if(177===e.parent.kind||pe(e))return!0;case 8:case 9:case 10:case 14:case 107:return ge(e);default:return!1}}function ge(e){var t=e.parent;switch(t.kind){case 250:case 161:case 164:case 163:case 292:case 289:case 199:return t.initializer===e;case 234:case 235:case 236:case 237:case 243:case 244:case 245:case 285:case 247:return t.expression===e;case 238:var r=t;return r.initializer===e&&251!==r.initializer.kind||r.condition===e||r.incrementor===e;case 239:case 240:var n=t;return n.initializer===e&&251!==n.initializer.kind||n.expression===e;case 207:case 225:case 229:case 159:return e===t.expression;case 162:case 284:case 283:case 291:return!0;case 224:return t.expression===e&&Ir(t);case 290:return t.objectAssignmentInitializer===e;default:return fe(t)}}function me(e){for(;158===e.kind||78===e.kind;)e=e.parent;return 177===e.kind}function ye(e){return 261===e.kind&&273===e.moduleReference.kind}function ve(e){return he(e)}function he(e){return!!e&&!!(131072&e.flags)}function De(e){return!!e&&!!(4194304&e.flags)}function xe(t,r){if(204!==t.kind)return!1;var n=t,i=n.expression,a=n.arguments;if(78!==i.kind||"require"!==i.escapedText)return!1;if(1!==a.length)return!1;var o=a[0];return!r||e.isStringLiteralLike(o)}function be(t){return 199===t.kind&&(t=t.parent.parent),e.isVariableDeclaration(t)&&!!t.initializer&&xe(Qr(t.initializer),!0)}function Se(t){return e.isBinaryExpression(t)||$r(t)||e.isIdentifier(t)||e.isCallExpression(t)}function Ee(t){return he(t)&&t.initializer&&e.isBinaryExpression(t.initializer)&&(56===t.initializer.operatorToken.kind||60===t.initializer.operatorToken.kind)&&t.name&&Or(t.name)&&Ce(t.name,t.initializer.left)?t.initializer.right:t.initializer}function Te(t,r){if(e.isCallExpression(t)){var n=at(t.expression);return 209===n.kind||210===n.kind?t:void 0}return 209===t.kind||222===t.kind||210===t.kind||e.isObjectLiteralExpression(t)&&(0===t.properties.length||r)?t:void 0}function Ce(t,r){if(bt(t)&&bt(r))return St(t)===St(r);if(e.isIdentifier(t)&&Ie(r)&&(107===r.expression.kind||e.isIdentifier(r.expression)&&("window"===r.expression.escapedText||"self"===r.expression.escapedText||"global"===r.expression.escapedText))){var n=Be(r);return e.isPrivateIdentifier(n)&&e.Debug.fail("Unexpected PrivateIdentifier in name expression with literal-like access."),Ce(t,n)}return!(!Ie(t)||!Ie(r))&&(Je(t)===Je(r)&&Ce(t.expression,r.expression))}function ke(e){for(;wr(e,!0);)e=e.right;return e}function Ae(t){return e.isIdentifier(t)&&"exports"===t.escapedText}function Fe(t){return e.isIdentifier(t)&&"module"===t.escapedText}function Ne(t){return(e.isPropertyAccessExpression(t)||Oe(t))&&Fe(t.expression)&&"exports"===Je(t)}function Pe(t){var r=function(t){if(e.isCallExpression(t)){if(!we(t))return 0;var r=t.arguments[0];return Ae(r)||Ne(r)?8:Me(r)&&"prototype"===Je(r)?9:7}if(62!==t.operatorToken.kind||!$r(t.left)||function(t){return e.isVoidExpression(t)&&e.isNumericLiteral(t.expression)&&"0"===t.expression.text}(ke(t)))return 0;if(Re(t.left.expression,!0)&&"prototype"===Je(t.left)&&e.isObjectLiteralExpression(ze(t)))return 6;return Ke(t.left)}(t);return 5===r||he(t)?r:0}function we(t){return 3===e.length(t.arguments)&&e.isPropertyAccessExpression(t.expression)&&e.isIdentifier(t.expression.expression)&&"Object"===e.idText(t.expression.expression)&&"defineProperty"===e.idText(t.expression.name)&&yt(t.arguments[1])&&Re(t.arguments[0],!0)}function Ie(t){return e.isPropertyAccessExpression(t)||Oe(t)}function Oe(t){return e.isElementAccessExpression(t)&&yt(t.argumentExpression)}function Me(t,r){return e.isPropertyAccessExpression(t)&&(!r&&107===t.expression.kind||e.isIdentifier(t.name)&&Re(t.expression,!0))||Le(t,r)}function Le(e,t){return Oe(e)&&(!t&&107===e.expression.kind||Or(e.expression)||Me(e.expression,!0))}function Re(e,t){return Or(e)||Me(e,t)}function Be(t){return e.isPropertyAccessExpression(t)?t.name:t.argumentExpression}function je(t){if(e.isPropertyAccessExpression(t))return t.name;var r=at(t.argumentExpression);return e.isNumericLiteral(r)||e.isStringLiteralLike(r)?r:t}function Je(t){var r=je(t);if(r){if(e.isIdentifier(r))return r.escapedText;if(e.isStringLiteralLike(r)||e.isNumericLiteral(r))return e.escapeLeadingUnderscores(r.text)}}function Ke(t){if(107===t.expression.kind)return 4;if(Ne(t))return 2;if(Re(t.expression,!0)){if(Lr(t.expression))return 3;for(var r=t;!e.isIdentifier(r.expression);)r=r.expression;var n=r.expression;if(("exports"===n.escapedText||"module"===n.escapedText&&"exports"===Je(r))&&Me(t))return 1;if(Re(t,!0)||e.isElementAccessExpression(t)&&Dt(t))return 5}return 0}function ze(t){for(;e.isBinaryExpression(t.right);)t=t.right;return t.right}function Ue(t){switch(t.parent.kind){case 262:case 268:return t.parent;case 273:return t.parent.parent;case 204:return V(t.parent)||xe(t.parent,!1)?t.parent:void 0;case 192:return e.Debug.assert(e.isStringLiteral(t)),e.tryCast(t.parent.parent,e.isImportTypeNode);default:return}}function Ve(t){switch(t.kind){case 262:case 268:return t.moduleSpecifier;case 261:return 273===t.moduleReference.kind?t.moduleReference.expression:void 0;case 196:return q(t)?t.argument.literal:void 0;case 204:return t.arguments[0];case 257:return 10===t.name.kind?t.name:void 0;default:return e.Debug.assertNever(t)}}function qe(e){return 335===e.kind||328===e.kind||329===e.kind}function We(t){return e.isExpressionStatement(t)&&e.isBinaryExpression(t.expression)&&0!==Pe(t.expression)&&e.isBinaryExpression(t.expression.right)&&(56===t.expression.right.operatorToken.kind||60===t.expression.right.operatorToken.kind)?t.expression.right.right:void 0}function He(e){switch(e.kind){case 233:var t=Ge(e);return t&&t.initializer;case 164:case 289:return e.initializer}}function Ge(t){return e.isVariableStatement(t)?e.firstOrUndefined(t.declarationList.declarations):void 0}function Ye(t){return e.isModuleDeclaration(t)&&t.body&&257===t.body.kind?t.body:void 0}function Xe(t){var r=t.parent;return 289===r.kind||267===r.kind||164===r.kind||234===r.kind&&202===t.kind||243===r.kind||Ye(r)||e.isBinaryExpression(t)&&62===t.operatorToken.kind?r:r.parent&&(Ge(r.parent)===t||e.isBinaryExpression(r)&&62===r.operatorToken.kind)?r.parent:r.parent&&r.parent.parent&&(Ge(r.parent.parent)||He(r.parent.parent)===t||We(r.parent.parent))?r.parent.parent:void 0}function $e(t){var r=Qe(t);return r&&e.isFunctionLike(r)?r:void 0}function Qe(t){var r=Ze(t);if(r)return We(r)||function(t){return e.isExpressionStatement(t)&&e.isBinaryExpression(t.expression)&&62===t.expression.operatorToken.kind?ke(t.expression):void 0}(r)||He(r)||Ge(r)||Ye(r)||r}function Ze(t){var r=et(t);if(r){var n=r.parent;return n&&n.jsDoc&&r===e.lastOrUndefined(n.jsDoc)?n:void 0}}function et(t){return e.findAncestor(t.parent,e.isJSDoc)}function tt(t){var r=e.isJSDocParameterTag(t)?t.typeExpression&&t.typeExpression.type:t.type;return void 0!==t.dotDotDotToken||!!r&&310===r.kind}function rt(e){for(var t=e.parent;;){switch(t.kind){case 217:var r=t.operatorToken.kind;return Fr(r)&&t.left===e?62===r||Ar(r)?1:2:0;case 215:case 216:var n=t.operator;return 45===n||46===n?2:0;case 239:case 240:return t.initializer===e?1:0;case 208:case 200:case 221:case 226:e=t;break;case 291:e=t.parent;break;case 290:if(t.name!==e)return 0;e=t.parent;break;case 289:if(t.name===e)return 0;e=t.parent;break;default:return 0}t=e.parent}}function nt(e,t){for(;e&&e.kind===t;)e=e.parent;return e}function it(e){return nt(e,208)}function at(t){return e.skipOuterExpressions(t,1)}function ot(t){return Or(t)||e.isClassExpression(t)}function st(e){return ot(ct(e))}function ct(t){return e.isExportAssignment(t)?t.expression:t.right}function ut(t){var r=lt(t);if(r&&he(t)){var n=e.getJSDocAugmentsTag(t);if(n)return n.class}return r}function lt(e){var t=pt(e.heritageClauses,93);return t&&t.types.length>0?t.types[0]:void 0}function dt(t){if(he(t))return e.getJSDocImplementsTags(t).map((function(e){return e.class}));var r=pt(t.heritageClauses,116);return null==r?void 0:r.types}function _t(e){var t=pt(e.heritageClauses,93);return t?t.types:void 0}function pt(e,t){if(e)for(var r=0,n=e;r0&&e.every(t.declarationList.declarations,(function(e){return be(e)}))},e.isSingleOrDoubleQuote=function(e){return 39===e||34===e},e.isStringDoubleQuoted=function(e,t){return 34===h(t,e).charCodeAt(0)},e.isAssignmentDeclaration=Se,e.getEffectiveInitializer=Ee,e.getDeclaredExpandoInitializer=function(e){var t=Ee(e);return t&&Te(t,Lr(e.name))},e.getAssignedExpandoInitializer=function(t){if(t&&t.parent&&e.isBinaryExpression(t.parent)&&62===t.parent.operatorToken.kind){var r=Lr(t.parent.left);return Te(t.parent.right,r)||function(t,r,n){var i=e.isBinaryExpression(r)&&(56===r.operatorToken.kind||60===r.operatorToken.kind)&&Te(r.right,n);if(i&&Ce(t,r.left))return i}(t.parent.left,t.parent.right,r)}if(t&&e.isCallExpression(t)&&we(t)){var n=function(t,r){return e.forEach(t.properties,(function(t){return e.isPropertyAssignment(t)&&e.isIdentifier(t.name)&&"value"===t.name.escapedText&&t.initializer&&Te(t.initializer,r)}))}(t.arguments[2],"prototype"===t.arguments[1].text);if(n)return n}},e.getExpandoInitializer=Te,e.isDefaultedExpandoInitializer=function(t){var r=e.isVariableDeclaration(t.parent)?t.parent.name:e.isBinaryExpression(t.parent)&&62===t.parent.operatorToken.kind?t.parent.left:void 0;return r&&Te(t.right,Lr(r))&&Or(r)&&Ce(r,t.left)},e.getNameOfExpando=function(t){if(e.isBinaryExpression(t.parent)){var r=56!==t.parent.operatorToken.kind&&60!==t.parent.operatorToken.kind||!e.isBinaryExpression(t.parent.parent)?t.parent:t.parent.parent;if(62===r.operatorToken.kind&&e.isIdentifier(r.left))return r.left}else if(e.isVariableDeclaration(t.parent))return t.parent.name},e.isSameEntityName=Ce,e.getRightMostAssignedExpression=ke,e.isExportsIdentifier=Ae,e.isModuleIdentifier=Fe,e.isModuleExportsAccessExpression=Ne,e.getAssignmentDeclarationKind=Pe,e.isBindableObjectDefinePropertyCall=we,e.isLiteralLikeAccess=Ie,e.isLiteralLikeElementAccess=Oe,e.isBindableStaticAccessExpression=Me,e.isBindableStaticElementAccessExpression=Le,e.isBindableStaticNameExpression=Re,e.getNameOrArgument=Be,e.getElementOrPropertyAccessArgumentExpressionOrName=je,e.getElementOrPropertyAccessName=Je,e.getAssignmentDeclarationPropertyAccessKind=Ke,e.getInitializerOfBinaryExpression=ze,e.isPrototypePropertyAssignment=function(t){return e.isBinaryExpression(t)&&3===Pe(t)},e.isSpecialPropertyDeclaration=function(t){return he(t)&&t.parent&&234===t.parent.kind&&(!e.isElementAccessExpression(t)||Oe(t))&&!!e.getJSDocTypeTag(t.parent)},e.setValueDeclaration=function(e,t){var r=e.valueDeclaration;(!r||(!(8388608&t.flags)||8388608&r.flags)&&Se(r)&&!Se(t)||r.kind!==t.kind&&C(r))&&(e.valueDeclaration=t)},e.isFunctionSymbol=function(t){if(!t||!t.valueDeclaration)return!1;var r=t.valueDeclaration;return 252===r.kind||e.isVariableDeclaration(r)&&r.initializer&&e.isFunctionLike(r.initializer)},e.tryGetModuleSpecifierFromDeclaration=function(t){var r,n,i;switch(t.kind){case 250:return t.initializer.arguments[0].text;case 262:return null===(r=e.tryCast(t.moduleSpecifier,e.isStringLiteralLike))||void 0===r?void 0:r.text;case 261:return null===(i=e.tryCast(null===(n=e.tryCast(t.moduleReference,e.isExternalModuleReference))||void 0===n?void 0:n.expression,e.isStringLiteralLike))||void 0===i?void 0:i.text;default:e.Debug.assertNever(t)}},e.importFromModuleSpecifier=function(t){return Ue(t)||e.Debug.failBadSyntaxKind(t.parent)},e.tryGetImportFromModuleSpecifier=Ue,e.getExternalModuleName=Ve,e.getNamespaceDeclarationNode=function(t){switch(t.kind){case 262:return t.importClause&&e.tryCast(t.importClause.namedBindings,e.isNamespaceImport);case 261:return t;case 268:return t.exportClause&&e.tryCast(t.exportClause,e.isNamespaceExport);default:return e.Debug.assertNever(t)}},e.isDefaultImport=function(e){return 262===e.kind&&!!e.importClause&&!!e.importClause.name},e.forEachImportClauseDeclaration=function(t,r){var n;if(t.name&&(n=r(t)))return n;if(t.namedBindings&&(n=e.isNamespaceImport(t.namedBindings)?r(t.namedBindings):e.forEach(t.namedBindings.elements,r)))return n},e.hasQuestionToken=function(e){if(e)switch(e.kind){case 161:case 166:case 165:case 290:case 289:case 164:case 163:return void 0!==e.questionToken}return!1},e.isJSDocConstructSignature=function(t){var r=e.isJSDocFunctionType(t)?e.firstOrUndefined(t.parameters):void 0,n=e.tryCast(r&&r.name,e.isIdentifier);return!!n&&"new"===n.escapedText},e.isJSDocTypeAlias=qe,e.isTypeAlias=function(t){return qe(t)||e.isTypeAliasDeclaration(t)},e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=He,e.getSingleVariableOfVariableStatement=Ge,e.getJSDocCommentsAndTags=function(t,r){var n;re(t)&&e.hasInitializer(t)&&e.hasJSDocNodes(t.initializer)&&(n=e.append(n,e.last(t.initializer.jsDoc)));for(var i=t;i&&i.parent;){if(e.hasJSDocNodes(i)&&(n=e.append(n,e.last(i.jsDoc))),161===i.kind){n=e.addRange(n,(r?e.getJSDocParameterTagsNoCache:e.getJSDocParameterTags)(i));break}if(160===i.kind){n=e.addRange(n,(r?e.getJSDocTypeParameterTagsNoCache:e.getJSDocTypeParameterTags)(i));break}i=Xe(i)}return n||e.emptyArray},e.getNextJSDocCommentLocation=Xe,e.getParameterSymbolFromJSDoc=function(t){if(t.symbol)return t.symbol;if(e.isIdentifier(t.name)){var r=t.name.escapedText,n=$e(t);if(n){var i=e.find(n.parameters,(function(e){return 78===e.name.kind&&e.name.escapedText===r}));return i&&i.symbol}}},e.getHostSignatureFromJSDoc=$e,e.getEffectiveJSDocHost=Qe,e.getJSDocHost=Ze,e.getJSDocRoot=et,e.getTypeParameterFromJsDoc=function(t){var r=t.name.escapedText,n=t.parent.parent.parent.typeParameters;return n&&e.find(n,(function(e){return e.name.escapedText===r}))},e.hasRestParameter=function(t){var r=e.lastOrUndefined(t.parameters);return!!r&&tt(r)},e.isRestParameter=tt,e.hasTypeArguments=function(e){return!!e.typeArguments},(X=e.AssignmentKind||(e.AssignmentKind={}))[X.None=0]="None",X[X.Definite=1]="Definite",X[X.Compound=2]="Compound",e.getAssignmentTargetKind=rt,e.isAssignmentTarget=function(e){return 0!==rt(e)},e.isNodeWithPossibleHoistedDeclaration=function(e){switch(e.kind){case 231:case 233:case 244:case 235:case 245:case 259:case 285:case 286:case 246:case 238:case 239:case 240:case 236:case 237:case 248:case 288:return!0}return!1},e.isValueSignatureDeclaration=function(t){return e.isFunctionExpression(t)||e.isArrowFunction(t)||e.isMethodOrAccessor(t)||e.isFunctionDeclaration(t)||e.isConstructorDeclaration(t)},e.walkUpParenthesizedTypes=function(e){return nt(e,187)},e.walkUpParenthesizedExpressions=it,e.walkUpParenthesizedTypesAndGetParentAndChild=function(e){for(var t;e&&187===e.kind;)t=e,e=e.parent;return[t,e]},e.skipParentheses=at,e.isDeleteTarget=function(e){return(202===e.kind||203===e.kind)&&((e=it(e.parent))&&211===e.kind)},e.isNodeDescendantOf=function(e,t){for(;e;){if(e===t)return!0;e=e.parent}return!1},e.isDeclarationName=function(t){return!e.isSourceFile(t)&&!e.isBindingPattern(t)&&e.isDeclaration(t.parent)&&t.parent.name===t},e.getDeclarationFromName=function(t){var r=t.parent;switch(t.kind){case 10:case 14:case 8:if(e.isComputedPropertyName(r))return r.parent;case 78:if(e.isDeclaration(r))return r.name===t?r:void 0;if(e.isQualifiedName(r)){var n=r.parent;return e.isJSDocParameterTag(n)&&n.name===r?n:void 0}var i=r.parent;return e.isBinaryExpression(i)&&0!==Pe(i)&&(i.left.symbol||i.symbol)&&e.getNameOfDeclaration(i)===t?i:void 0;case 79:return e.isDeclaration(r)&&r.name===t?r:void 0;default:return}},e.isLiteralComputedPropertyDeclarationName=function(t){return yt(t)&&159===t.parent.kind&&e.isDeclaration(t.parent.parent)},e.isIdentifierName=function(e){var t=e.parent;switch(t.kind){case 164:case 163:case 166:case 165:case 168:case 169:case 292:case 289:case 202:return t.name===e;case 158:return t.right===e;case 199:case 266:return t.propertyName===e;case 271:case 281:return!0}return!1},e.isAliasSymbolDeclaration=function(t){return 261===t.kind||260===t.kind||263===t.kind&&!!t.name||264===t.kind||270===t.kind||266===t.kind||271===t.kind||267===t.kind&&st(t)||e.isBinaryExpression(t)&&2===Pe(t)&&st(t)||e.isPropertyAccessExpression(t)&&e.isBinaryExpression(t.parent)&&t.parent.left===t&&62===t.parent.operatorToken.kind&&ot(t.parent.right)||290===t.kind||289===t.kind&&ot(t.initializer)},e.getAliasDeclarationFromName=function e(t){switch(t.parent.kind){case 263:case 266:case 264:case 271:case 267:case 261:return t.parent;case 158:do{t=t.parent}while(158===t.parent.kind);return e(t)}},e.isAliasableExpression=ot,e.exportAssignmentIsAlias=st,e.getExportAssignmentExpression=ct,e.getPropertyAssignmentAliasLikeExpression=function(e){return 290===e.kind?e.name:289===e.kind?e.initializer:e.parent.right},e.getEffectiveBaseTypeNode=ut,e.getClassExtendsHeritageElement=lt,e.getEffectiveImplementsTypeNodes=dt,e.getAllSuperTypeNodes=function(t){return e.isInterfaceDeclaration(t)?_t(t)||e.emptyArray:e.isClassLike(t)&&e.concatenate(e.singleElementArray(ut(t)),dt(t))||e.emptyArray},e.getInterfaceBaseTypeNodes=_t,e.getHeritageClause=pt,e.getAncestor=function(e,t){for(;e;){if(e.kind===t)return e;e=e.parent}},e.isKeyword=ft,e.isContextualKeyword=gt,e.isNonContextualKeyword=mt,e.isFutureReservedKeyword=function(e){return 116<=e&&e<=124},e.isStringANonContextualKeyword=function(t){var r=e.stringToToken(t);return void 0!==r&&mt(r)},e.isStringAKeyword=function(t){var r=e.stringToToken(t);return void 0!==r&&ft(r)},e.isIdentifierANonContextualKeyword=function(e){var t=e.originalKeywordKind;return!!t&&!gt(t)},e.isTrivia=function(e){return 2<=e&&e<=7},($=e.FunctionFlags||(e.FunctionFlags={}))[$.Normal=0]="Normal",$[$.Generator=1]="Generator",$[$.Async=2]="Async",$[$.Invalid=4]="Invalid",$[$.AsyncGenerator=3]="AsyncGenerator",e.getFunctionFlags=function(e){if(!e)return 4;var t=0;switch(e.kind){case 252:case 209:case 166:e.asteriskToken&&(t|=1);case 210:mr(e,256)&&(t|=2)}return e.body||(t|=4),t},e.isAsyncFunction=function(e){switch(e.kind){case 252:case 209:case 210:case 166:return void 0!==e.body&&void 0===e.asteriskToken&&mr(e,256)}return!1},e.isStringOrNumericLiteralLike=yt,e.isSignedNumericLiteral=vt,e.hasDynamicName=ht,e.isDynamicName=Dt,e.getPropertyNameForPropertyNameNode=xt,e.isPropertyNameLiteral=bt,e.getTextOfIdentifierOrLiteral=St,e.getEscapedTextOfIdentifierOrLiteral=function(t){return e.isMemberName(t)?t.escapedText:e.escapeLeadingUnderscores(t.text)},e.getPropertyNameForUniqueESSymbol=function(t){return"__@"+e.getSymbolId(t)+"@"+t.escapedName},e.getSymbolNameForPrivateIdentifier=function(t,r){return"__#"+e.getSymbolId(t)+"@"+r},e.isKnownSymbol=function(t){return e.startsWith(t.escapedName,"__@")},e.isESSymbolIdentifier=function(e){return 78===e.kind&&"Symbol"===e.escapedText},e.isPushOrUnshiftIdentifier=function(e){return"push"===e.escapedText||"unshift"===e.escapedText},e.isParameterDeclaration=function(e){return 161===Et(e).kind},e.getRootDeclaration=Et,e.nodeStartsNewLexicalEnvironment=function(e){var t=e.kind;return 167===t||209===t||252===t||210===t||166===t||168===t||169===t||257===t||298===t},e.nodeIsSynthesized=Tt,e.getOriginalSourceFile=function(t){return e.getParseTreeNode(t,e.isSourceFile)||t},(Q=e.Associativity||(e.Associativity={}))[Q.Left=0]="Left",Q[Q.Right=1]="Right",e.getExpressionAssociativity=function(e){var t=kt(e),r=205===e.kind&&void 0!==e.arguments;return Ct(e.kind,t,r)},e.getOperatorAssociativity=Ct,e.getExpressionPrecedence=function(e){var t=kt(e),r=205===e.kind&&void 0!==e.arguments;return At(e.kind,t,r)},e.getOperator=kt,(Z=e.OperatorPrecedence||(e.OperatorPrecedence={}))[Z.Comma=0]="Comma",Z[Z.Spread=1]="Spread",Z[Z.Yield=2]="Yield",Z[Z.Assignment=3]="Assignment",Z[Z.Conditional=4]="Conditional",Z[Z.Coalesce=4]="Coalesce",Z[Z.LogicalOR=5]="LogicalOR",Z[Z.LogicalAND=6]="LogicalAND",Z[Z.BitwiseOR=7]="BitwiseOR",Z[Z.BitwiseXOR=8]="BitwiseXOR",Z[Z.BitwiseAND=9]="BitwiseAND",Z[Z.Equality=10]="Equality",Z[Z.Relational=11]="Relational",Z[Z.Shift=12]="Shift",Z[Z.Additive=13]="Additive",Z[Z.Multiplicative=14]="Multiplicative",Z[Z.Exponentiation=15]="Exponentiation",Z[Z.Unary=16]="Unary",Z[Z.Update=17]="Update",Z[Z.LeftHandSide=18]="LeftHandSide",Z[Z.Member=19]="Member",Z[Z.Primary=20]="Primary",Z[Z.Highest=20]="Highest",Z[Z.Lowest=0]="Lowest",Z[Z.Invalid=-1]="Invalid",e.getOperatorPrecedence=At,e.getBinaryOperatorPrecedence=Ft,e.getSemanticJsxChildren=function(t){return e.filter(t,(function(e){switch(e.kind){case 284:return!!e.expression;case 11:return!e.containsOnlyTriviaWhiteSpaces;default:return!0}}))},e.createDiagnosticCollection=function(){var t=[],r=[],n=new e.Map,i=!1;return{add:function(a){var o;a.file?(o=n.get(a.file.fileName))||(o=[],n.set(a.file.fileName,o),e.insertSorted(r,a.file.fileName,e.compareStringsCaseSensitive)):(i&&(i=!1,t=t.slice()),o=t);e.insertSorted(o,a,fn)},lookup:function(r){var i;i=r.file?n.get(r.file.fileName):t;if(!i)return;var a=e.binarySearch(i,r,e.identity,gn);if(a>=0)return i[a];return},getGlobalDiagnostics:function(){return i=!0,t},getDiagnostics:function(i){if(i)return n.get(i)||[];var a=e.flatMapToMutable(r,(function(e){return n.get(e)}));if(!t.length)return a;return a.unshift.apply(a,t),a}}};var Nt=/\$\{/g;e.hasInvalidEscape=function(t){return t&&!!(e.isNoSubstitutionTemplateLiteral(t)?t.templateFlags:t.head.templateFlags||e.some(t.templateSpans,(function(e){return!!e.literal.templateFlags})))};var Pt=/[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,wt=/[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,It=/[\\`]/g,Ot=new e.Map(e.getEntries({"\t":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085"}));function Mt(e){return"\\u"+("0000"+e.toString(16).toUpperCase()).slice(-4)}function Lt(e,t,r){if(0===e.charCodeAt(0)){var n=r.charCodeAt(t+e.length);return n>=48&&n<=57?"\\x00":"\\0"}return Ot.get(e)||Mt(e.charCodeAt(0))}function Rt(e,t){var r=96===t?It:39===t?wt:Pt;return e.replace(r,Lt)}e.escapeString=Rt;var Bt=/[^\u0000-\u007F]/g;function jt(e,t){return e=Rt(e,t),Bt.test(e)?e.replace(Bt,(function(e){return Mt(e.charCodeAt(0))})):e}e.escapeNonAsciiString=jt;var Jt=/[\"\u0000-\u001f\u2028\u2029\u0085]/g,Kt=/[\'\u0000-\u001f\u2028\u2029\u0085]/g,zt=new e.Map(e.getEntries({'"':""","'":"'"}));function Ut(e){return 0===e.charCodeAt(0)?"�":zt.get(e)||"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}function Vt(e,t){var r=39===t?Kt:Jt;return e.replace(r,Ut)}e.escapeJsxAttributeString=Vt,e.stripQuotes=function(e){var t,r=e.length;return r>=2&&e.charCodeAt(0)===e.charCodeAt(r-1)&&(39===(t=e.charCodeAt(0))||34===t||96===t)?e.substring(1,r-1):e},e.isIntrinsicJsxName=function(t){var r=t.charCodeAt(0);return r>=97&&r<=122||e.stringContains(t,"-")||e.stringContains(t,":")};var qt=[""," "];function Wt(e){for(var t=qt[1],r=qt.length;r<=e;r++)qt.push(qt[r-1]+t);return qt[e]}function Ht(){return qt[1].length}function Gt(e){return!!e.useCaseSensitiveFileNames&&e.useCaseSensitiveFileNames()}function Yt(e,t,r){return t.moduleName||$t(e,t.fileName,r&&r.fileName)}function Xt(t,r){return t.getCanonicalFileName(e.getNormalizedAbsolutePath(r,t.getCurrentDirectory()))}function $t(t,r,n){var i=function(e){return t.getCanonicalFileName(e)},a=e.toPath(n?e.getDirectoryPath(n):t.getCommonSourceDirectory(),t.getCurrentDirectory(),i),o=e.getNormalizedAbsolutePath(r,t.getCurrentDirectory()),s=Zn(e.getRelativePathToDirectoryOrUrl(a,o,a,i,!1));return n?e.ensurePathIsNonModuleName(s):s}function Qt(e,t,r,n,i){var a=t.declarationDir||t.outDir;return Zn(a?rr(e,a,r,n,i):e)+".d.ts"}function Zt(e){return e.outFile||e.out}function er(e,t,r){return!(t.getCompilerOptions().noEmitForJsFiles&&ve(e))&&!e.isDeclarationFile&&!t.isSourceFileFromExternalLibrary(e)&&(r||!(z(e)&&t.getResolvedProjectReferenceToRedirect(e.fileName))&&!t.isSourceOfProjectReferenceRedirect(e.fileName))}function tr(e,t,r){return rr(e,r,t.getCurrentDirectory(),t.getCommonSourceDirectory(),(function(e){return t.getCanonicalFileName(e)}))}function rr(t,r,n,i,a){var o=e.getNormalizedAbsolutePath(t,n);return o=0===a(o).indexOf(a(i))?o.substring(i.length):o,e.combinePaths(r,o)}function nr(t,r,n){t.length>e.getRootLength(t)&&!n(t)&&(nr(e.getDirectoryPath(t),r,n),r(t))}function ir(t,r){return e.computeLineOfPosition(t,r)}function ar(e){if(e&&e.parameters.length>0){var t=2===e.parameters.length&&or(e.parameters[0]);return e.parameters[t?1:0]}}function or(e){return sr(e.name)}function sr(e){return!!e&&78===e.kind&&cr(e)}function cr(e){return 107===e.originalKeywordKind}function ur(t){if(he(t)||!e.isFunctionDeclaration(t)){var r=t.type;return r||!he(t)?r:e.isJSDocPropertyLikeTag(t)?t.typeExpression&&t.typeExpression.type:e.getJSDocType(t)}}function lr(e,t,r,n){dr(e,t,r.pos,n)}function dr(e,t,r,n){n&&n.length&&r!==n[0].pos&&ir(e,r)!==ir(e,n[0].pos)&&t.writeLine()}function _r(e,t,r,n,i,a,o,s){if(n&&n.length>0){i&&r.writeSpace(" ");for(var c=!1,u=0,l=n;u=0&&e.kind<=157?0:(536870912&e.modifierFlagsCache||(e.modifierFlagsCache=536870912|Tr(e)),!t||4096&e.modifierFlagsCache||!r&&!he(e)||!e.parent||(e.modifierFlagsCache|=4096|Er(e)),-536875009&e.modifierFlagsCache)}function br(e){return xr(e,!0)}function Sr(e){return xr(e,!1)}function Er(t){var r=0;return t.parent&&!e.isParameter(t)&&(he(t)&&(e.getJSDocPublicTagNoCache(t)&&(r|=4),e.getJSDocPrivateTagNoCache(t)&&(r|=8),e.getJSDocProtectedTagNoCache(t)&&(r|=16),e.getJSDocReadonlyTagNoCache(t)&&(r|=64),e.getJSDocOverrideTagNoCache(t)&&(r|=16384)),e.getJSDocDeprecatedTagNoCache(t)&&(r|=8192)),r}function Tr(e){var t=Cr(e.modifiers);return(4&e.flags||78===e.kind&&e.isInJSDocNamespace)&&(t|=1),t}function Cr(e){var t=0;if(e)for(var r=0,n=e;r=62&&e<=77}function Nr(e){var t=Pr(e);return t&&!t.isImplements?t.class:void 0}function Pr(t){return e.isExpressionWithTypeArguments(t)&&e.isHeritageClause(t.parent)&&e.isClassLike(t.parent.parent)?{class:t.parent.parent,isImplements:116===t.parent.token}:void 0}function wr(t,r){return e.isBinaryExpression(t)&&(r?62===t.operatorToken.kind:Fr(t.operatorToken.kind))&&e.isLeftHandSideExpression(t.left)}function Ir(e){return void 0!==Nr(e)}function Or(e){return 78===e.kind||Mr(e)}function Mr(t){return e.isPropertyAccessExpression(t)&&e.isIdentifier(t.name)&&Or(t.expression)}function Lr(e){return Me(e)&&"prototype"===Je(e)}e.getIndentString=Wt,e.getIndentSize=Ht,e.createTextWriter=function(t){var r,n,i,a,o,s=!1;function c(t){var n=e.computeLineStarts(t);n.length>1?(a=a+n.length-1,o=r.length-t.length+e.last(n),i=o-r.length==0):i=!1}function u(e){e&&e.length&&(i&&(e=Wt(n)+e,i=!1),r+=e,c(e))}function l(e){e&&(s=!1),u(e)}function d(){r="",n=0,i=!0,a=0,o=0,s=!1}return d(),{write:l,rawWrite:function(e){void 0!==e&&(r+=e,c(e),s=!1)},writeLiteral:function(e){e&&e.length&&l(e)},writeLine:function(e){i&&!e||(a++,o=(r+=t).length,i=!0,s=!1)},increaseIndent:function(){n++},decreaseIndent:function(){n--},getIndent:function(){return n},getTextPos:function(){return r.length},getLine:function(){return a},getColumn:function(){return i?n*Ht():r.length-o},getText:function(){return r},isAtStartOfLine:function(){return i},hasTrailingComment:function(){return s},hasTrailingWhitespace:function(){return!!r.length&&e.isWhiteSpaceLike(r.charCodeAt(r.length-1))},clear:d,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:e.noop,writeKeyword:l,writeOperator:l,writeParameter:l,writeProperty:l,writePunctuation:l,writeSpace:l,writeStringLiteral:l,writeSymbol:function(e,t){return l(e)},writeTrailingSemicolon:l,writeComment:function(e){e&&(s=!0),u(e)},getTextPosWithWriteLine:function(){return i?r.length:r.length+t.length}}},e.getTrailingSemicolonDeferringWriter=function(e){var t=!1;function n(){t&&(e.writeTrailingSemicolon(";"),t=!1)}return r(r({},e),{writeTrailingSemicolon:function(){t=!0},writeLiteral:function(t){n(),e.writeLiteral(t)},writeStringLiteral:function(t){n(),e.writeStringLiteral(t)},writeSymbol:function(t,r){n(),e.writeSymbol(t,r)},writePunctuation:function(t){n(),e.writePunctuation(t)},writeKeyword:function(t){n(),e.writeKeyword(t)},writeOperator:function(t){n(),e.writeOperator(t)},writeParameter:function(t){n(),e.writeParameter(t)},writeSpace:function(t){n(),e.writeSpace(t)},writeProperty:function(t){n(),e.writeProperty(t)},writeComment:function(t){n(),e.writeComment(t)},writeLine:function(){n(),e.writeLine()},increaseIndent:function(){n(),e.increaseIndent()},decreaseIndent:function(){n(),e.decreaseIndent()}})},e.hostUsesCaseSensitiveFileNames=Gt,e.hostGetCanonicalFileName=function(t){return e.createGetCanonicalFileName(Gt(t))},e.getResolvedExternalModuleName=Yt,e.getExternalModuleNameFromDeclaration=function(t,r,n){var i=r.getExternalModuleFileFromDeclaration(n);if(i&&!i.isDeclarationFile){var a=Ve(n);if(!a||!e.isStringLiteralLike(a)||e.pathIsRelative(a.text)||-1!==Xt(t,i.path).indexOf(Xt(t,e.ensureTrailingDirectorySeparator(t.getCommonSourceDirectory()))))return Yt(t,i)}},e.getExternalModuleNameFromPath=$t,e.getOwnEmitOutputFilePath=function(e,t,r){var n=t.getCompilerOptions();return(n.outDir?Zn(tr(e,t,n.outDir)):Zn(e))+r},e.getDeclarationEmitOutputFilePath=function(e,t){return Qt(e,t.getCompilerOptions(),t.getCurrentDirectory(),t.getCommonSourceDirectory(),(function(e){return t.getCanonicalFileName(e)}))},e.getDeclarationEmitOutputFilePathWorker=Qt,e.outFile=Zt,e.getPathsBasePath=function(t,r){var n,i;if(t.paths)return null!==(n=t.baseUrl)&&void 0!==n?n:e.Debug.checkDefined(t.pathsBasePath||(null===(i=r.getCurrentDirectory)||void 0===i?void 0:i.call(r)),"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.")},e.getSourceFilesToEmit=function(t,r,n){var i=t.getCompilerOptions();if(Zt(i)){var a=vn(i),o=i.emitDeclarationOnly||a===e.ModuleKind.AMD||a===e.ModuleKind.System;return e.filter(t.getSourceFiles(),(function(r){return(o||!e.isExternalModule(r))&&er(r,t,n)}))}var s=void 0===r?t.getSourceFiles():[r];return e.filter(s,(function(e){return er(e,t,n)}))},e.sourceFileMayBeEmitted=er,e.getSourceFilePathInNewDir=tr,e.getSourceFilePathInNewDirWorker=rr,e.writeFile=function(t,r,n,i,a,o){t.writeFile(n,i,a,(function(t){r.add(_n(e.Diagnostics.Could_not_write_file_0_Colon_1,n,t))}),o)},e.writeFileEnsuringDirectories=function(t,r,n,i,a,o){try{i(t,r,n)}catch(s){nr(e.getDirectoryPath(e.normalizePath(t)),a,o),i(t,r,n)}},e.getLineOfLocalPosition=function(t,r){var n=e.getLineStarts(t);return e.computeLineOfPosition(n,r)},e.getLineOfLocalPositionFromLineMap=ir,e.getFirstConstructorWithBody=function(t){return e.find(t.members,(function(t){return e.isConstructorDeclaration(t)&&p(t.body)}))},e.getSetAccessorValueParameter=ar,e.getSetAccessorTypeAnnotationNode=function(e){var t=ar(e);return t&&t.type},e.getThisParameter=function(t){if(t.parameters.length&&!e.isJSDocSignature(t)){var r=t.parameters[0];if(or(r))return r}},e.parameterIsThisKeyword=or,e.isThisIdentifier=sr,e.identifierIsThisKeyword=cr,e.getAllAccessorDeclarations=function(t,r){var n,i,a,o;return ht(r)?(n=r,168===r.kind?a=r:169===r.kind?o=r:e.Debug.fail("Accessor has wrong kind")):e.forEach(t,(function(t){e.isAccessor(t)&&mr(t,32)===mr(r,32)&&(xt(t.name)===xt(r.name)&&(n?i||(i=t):n=t,168!==t.kind||a||(a=t),169!==t.kind||o||(o=t)))})),{firstAccessor:n,secondAccessor:i,getAccessor:a,setAccessor:o}},e.getEffectiveTypeAnnotationNode=ur,e.getTypeAnnotationNode=function(e){return e.type},e.getEffectiveReturnTypeNode=function(t){return e.isJSDocSignature(t)?t.type&&t.type.typeExpression&&t.type.typeExpression.type:t.type||(he(t)?e.getJSDocReturnType(t):void 0)},e.getJSDocTypeParameterDeclarations=function(t){return e.flatMap(e.getJSDocTags(t),(function(t){return function(t){return e.isJSDocTemplateTag(t)&&!(312===t.parent.kind&&t.parent.tags.some(qe))}(t)?t.typeParameters:void 0}))},e.getEffectiveSetAccessorTypeAnnotationNode=function(e){var t=ar(e);return t&&ur(t)},e.emitNewLineBeforeLeadingComments=lr,e.emitNewLineBeforeLeadingCommentsOfPosition=dr,e.emitNewLineBeforeLeadingCommentOfPosition=function(e,t,r,n){r!==n&&ir(e,r)!==ir(e,n)&&t.writeLine()},e.emitComments=_r,e.emitDetachedComments=function(t,r,n,i,a,o,s){var c,u;if(s?0===a.pos&&(c=e.filter(e.getLeadingCommentRanges(t,a.pos),(function(e){return y(t,e.pos)}))):c=e.getLeadingCommentRanges(t,a.pos),c){for(var l=[],d=void 0,_=0,p=c;_=g+2)break}l.push(f),d=f}if(l.length){g=ir(r,e.last(l).end);ir(r,e.skipTrivia(t,a.pos))>=g+2&&(lr(r,n,a,c),_r(t,r,n,l,!1,!0,o,i),u={nodePos:a.pos,detachedCommentEndPos:e.last(l).end})}}return u},e.writeCommentRange=function(t,r,n,i,a,o){if(42===t.charCodeAt(i+1))for(var s=e.computeLineAndCharacterOfPosition(r,i),c=r.length,u=void 0,l=i,d=s.line;l0){var f=p%Ht(),g=Wt((p-f)/Ht());for(n.rawWrite(g);f;)n.rawWrite(" "),f--}else n.rawWrite("")}pr(t,a,n,o,l,_),l=_}else n.writeComment(t.substring(i,a))},e.hasEffectiveModifiers=function(e){return 0!==br(e)},e.hasSyntacticModifiers=function(e){return 0!==Sr(e)},e.hasEffectiveModifier=gr,e.hasSyntacticModifier=mr,e.hasStaticModifier=yr,e.hasOverrideModifier=function(e){return gr(e,16384)},e.hasAbstractModifier=function(e){return mr(e,128)},e.hasAmbientModifier=function(e){return mr(e,2)},e.hasEffectiveReadonlyModifier=vr,e.getSelectedEffectiveModifierFlags=hr,e.getSelectedSyntacticModifierFlags=Dr,e.getEffectiveModifierFlags=br,e.getEffectiveModifierFlagsAlwaysIncludeJSDoc=function(e){return xr(e,!0,!0)},e.getSyntacticModifierFlags=Sr,e.getEffectiveModifierFlagsNoCache=function(e){return Tr(e)|Er(e)},e.getSyntacticModifierFlagsNoCache=Tr,e.modifiersToFlags=Cr,e.modifierToFlag=kr,e.createModifiers=function(t){return t?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags(t)):void 0},e.isLogicalOperator=function(e){return 56===e||55===e||53===e},e.isLogicalOrCoalescingAssignmentOperator=Ar,e.isLogicalOrCoalescingAssignmentExpression=function(e){return Ar(e.operatorToken.kind)},e.isAssignmentOperator=Fr,e.tryGetClassExtendingExpressionWithTypeArguments=Nr,e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=Pr,e.isAssignmentExpression=wr,e.isLeftHandSideOfAssignment=function(e){return wr(e.parent)&&e.parent.left===e},e.isDestructuringAssignment=function(e){if(wr(e,!0)){var t=e.left.kind;return 201===t||200===t}return!1},e.isExpressionWithTypeArgumentsInClassExtendsClause=Ir,e.isEntityNameExpression=Or,e.getFirstIdentifier=function(e){switch(e.kind){case 78:return e;case 158:do{e=e.left}while(78!==e.kind);return e;case 202:do{e=e.expression}while(78!==e.kind);return e}},e.isDottedName=function e(t){return 78===t.kind||107===t.kind||105===t.kind||227===t.kind||202===t.kind&&e(t.expression)||208===t.kind&&e(t.expression)},e.isPropertyAccessEntityNameExpression=Mr,e.tryGetPropertyAccessOrIdentifierToString=function t(r){if(e.isPropertyAccessExpression(r)){if(void 0!==(n=t(r.expression)))return n+"."+L(r.name)}else if(e.isElementAccessExpression(r)){var n;if(void 0!==(n=t(r.expression))&&e.isPropertyName(r.argumentExpression))return n+"."+xt(r.argumentExpression)}else if(e.isIdentifier(r))return e.unescapeLeadingUnderscores(r.escapedText)},e.isPrototypeAccess=Lr,e.isRightSideOfQualifiedNameOrPropertyAccess=function(e){return 158===e.parent.kind&&e.parent.right===e||202===e.parent.kind&&e.parent.name===e},e.isEmptyObjectLiteral=function(e){return 201===e.kind&&0===e.properties.length},e.isEmptyArrayLiteral=function(e){return 200===e.kind&&0===e.elements.length},e.getLocalSymbolForExportDefault=function(t){if(function(t){return t&&e.length(t.declarations)>0&&mr(t.declarations[0],512)}(t)&&t.declarations)for(var r=0,n=t.declarations;r>6|192),r.push(63&a|128)):a<65536?(r.push(a>>12|224),r.push(a>>6&63|128),r.push(63&a|128)):a<131072?(r.push(a>>18|240),r.push(a>>12&63|128),r.push(a>>6&63|128),r.push(63&a|128)):e.Debug.assert(!1,"Unexpected code point")}return r}(t),c=0,u=s.length;c>2,n=(3&s[c])<<4|s[c+1]>>4,i=(15&s[c+1])<<2|s[c+2]>>6,a=63&s[c+2],c+1>=u?i=a=64:c+2>=u&&(a=64),o+=Rr.charAt(r)+Rr.charAt(n)+Rr.charAt(i)+Rr.charAt(a),c+=3;return o}e.convertToBase64=Br,e.base64encode=function(e,t){return e&&e.base64encode?e.base64encode(t):Br(t)},e.base64decode=function(e,t){if(e&&e.base64decode)return e.base64decode(t);for(var r=t.length,n=[],i=0;i>4&3,l=(15&o)<<4|s>>2&15,d=(3&s)<<6|63&c;0===l&&0!==s?n.push(u):0===d&&0!==c?n.push(u,l):n.push(u,l,d),i+=4}return function(e){for(var t="",r=0,n=e.length;r=t||-1===r),{pos:t,end:r}}function Kr(e,t){return Jr(t,e.end)}function zr(e){return e.decorators&&e.decorators.length>0?Kr(e,e.decorators.end):e}function Ur(e,t,r){return Vr(qr(e,r,!1),t.end,r)}function Vr(t,r,n){return 0===e.getLinesBetweenPositions(n,t,r)}function qr(t,r,n){return ni(t.pos)?-1:e.skipTrivia(r.text,t.pos,!1,n)}function Wr(e){return void 0!==e.initializer}function Hr(e){return 33554432&e.flags?e.checkFlags:0}function Gr(t){var r=t.parent;if(!r)return 0;switch(r.kind){case 208:return Gr(r);case 216:case 215:var n=r.operator;return 45===n||46===n?c():0;case 217:var i=r,a=i.left,o=i.operatorToken;return a===t&&Fr(o.kind)?62===o.kind?1:c():0;case 202:return r.name!==t?0:Gr(r);case 289:var s=Gr(r.parent);return t===r.name?function(t){switch(t){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(t)}}(s):s;case 290:return t===r.objectAssignmentInitializer?0:Gr(r.parent);case 200:return Gr(r);default:return 0}function c(){return r.parent&&234===function(e){for(;208===e.kind;)e=e.parent;return e}(r.parent).kind?1:2}}function Yr(e,t,r){var n=r.onDeleteValue,i=r.onExistingValue;e.forEach((function(r,a){var o=t.get(a);void 0===o?(e.delete(a),n(r,a)):i&&i(r,o,a)}))}function Xr(t){var r;return null===(r=t.declarations)||void 0===r?void 0:r.find(e.isClassLike)}function $r(e){return 202===e.kind||203===e.kind}function Qr(e){for(;$r(e);)e=e.expression;return e}function Zr(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function en(t,r){this.flags=r,(e.Debug.isDebugging||e.tracing)&&(this.checker=t)}function tn(t,r){this.flags=r,e.Debug.isDebugging&&(this.checker=t)}function rn(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function nn(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0}function an(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.flowNode=void 0}function on(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||function(e){return e}}function sn(t,r,n){return void 0===n&&(n=0),t.replace(/{(\d+)}/g,(function(t,i){return""+e.Debug.checkDefined(r[+i+n])}))}function cn(t){return e.localizedDiagnosticMessages&&e.localizedDiagnosticMessages[t.key]||t.message}function un(e){return void 0===e.file&&void 0!==e.start&&void 0!==e.length&&"string"==typeof e.fileName}function ln(t,r){var n=r.fileName||"",i=r.text.length;e.Debug.assertEqual(t.fileName,n),e.Debug.assertLessThanOrEqual(t.start,i),e.Debug.assertLessThanOrEqual(t.start+t.length,i);var a={file:r,start:t.start,length:t.length,messageText:t.messageText,category:t.category,code:t.code,reportsUnnecessary:t.reportsUnnecessary};if(t.relatedInformation){a.relatedInformation=[];for(var o=0,s=t.relatedInformation;o4&&(i=sn(i,arguments,4)),{file:e,start:t,length:r,messageText:i,category:n.category,code:n.code,reportsUnnecessary:n.reportsUnnecessary,reportsDeprecated:n.reportsDeprecated}}function _n(e){var t=cn(e);return arguments.length>1&&(t=sn(t,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:t,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated}}function pn(e){return e.file?e.file.path:void 0}function fn(t,r){return gn(t,r)||function(t,r){if(!t.relatedInformation&&!r.relatedInformation)return 0;if(t.relatedInformation&&r.relatedInformation)return e.compareValues(t.relatedInformation.length,r.relatedInformation.length)||e.forEach(t.relatedInformation,(function(e,t){return fn(e,r.relatedInformation[t])}))||0;return t.relatedInformation?-1:1}(t,r)||0}function gn(t,r){return e.compareStringsCaseSensitive(pn(t),pn(r))||e.compareValues(t.start,r.start)||e.compareValues(t.length,r.length)||e.compareValues(t.code,r.code)||mn(t.messageText,r.messageText)||0}function mn(t,r){if("string"==typeof t&&"string"==typeof r)return e.compareStringsCaseSensitive(t,r);if("string"==typeof t)return-1;if("string"==typeof r)return 1;var n=e.compareStringsCaseSensitive(t.messageText,r.messageText);if(n)return n;if(!t.next&&!r.next)return 0;if(!t.next)return-1;if(!r.next)return 1;for(var i=Math.min(t.next.length,r.next.length),a=0;ar.next.length?1:0}function yn(e){return e.target||0}function vn(t){return"number"==typeof t.module?t.module:yn(t)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}function hn(e){return!(!e.declaration&&!e.composite)}function Dn(e,t){return void 0===e[t]?!!e.strict:!!e[t]}function xn(e){return void 0===e.allowJs?!!e.checkJs:e.allowJs}function bn(e,t){return t.strictFlag?Dn(e,t.name):e[t.name]}function Sn(e){for(var t=!1,r=0;r0?Kr(e,e.modifiers.end):zr(e)},e.isCollapsedRange=function(e){return e.pos===e.end},e.createTokenRange=function(t,r){return Jr(t,t+e.tokenToString(r).length)},e.rangeIsOnSingleLine=function(e,t){return Ur(e,e,t)},e.rangeStartPositionsAreOnSameLine=function(e,t,r){return Vr(qr(e,r,!1),qr(t,r,!1),r)},e.rangeEndPositionsAreOnSameLine=function(e,t,r){return Vr(e.end,t.end,r)},e.rangeStartIsOnSameLineAsRangeEnd=Ur,e.rangeEndIsOnSameLineAsRangeStart=function(e,t,r){return Vr(e.end,qr(t,r,!1),r)},e.getLinesBetweenRangeEndAndRangeStart=function(t,r,n,i){var a=qr(r,n,i);return e.getLinesBetweenPositions(n,t.end,a)},e.getLinesBetweenRangeEndPositions=function(t,r,n){return e.getLinesBetweenPositions(n,t.end,r.end)},e.isNodeArrayMultiLine=function(e,t){return!Vr(e.pos,e.end,t)},e.positionsAreOnSameLine=Vr,e.getStartPositionOfRange=qr,e.getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter=function(t,r,n,i){var a=e.skipTrivia(n.text,t,!1,i),o=function(t,r,n){void 0===r&&(r=0);for(;t-- >r;)if(!e.isWhiteSpaceLike(n.text.charCodeAt(t)))return t}(a,r,n);return e.getLinesBetweenPositions(n,null!=o?o:r,a)},e.getLinesBetweenPositionAndNextNonWhitespaceCharacter=function(t,r,n,i){var a=e.skipTrivia(n.text,t,!1,i);return e.getLinesBetweenPositions(n,t,Math.min(r,a))},e.isDeclarationNameOfEnumOrNamespace=function(t){var r=e.getParseTreeNode(t);if(r)switch(r.parent.kind){case 256:case 257:return r===r.parent.name}return!1},e.getInitializedVariables=function(t){return e.filter(t.declarations,Wr)},e.isWatchSet=function(e){return e.watch&&e.hasOwnProperty("watch")},e.closeFileWatcher=function(e){e.close()},e.getCheckFlags=Hr,e.getDeclarationModifierFlagsFromSymbol=function(t,r){if(void 0===r&&(r=!1),t.valueDeclaration){var n=r&&t.declarations&&e.find(t.declarations,(function(e){return 169===e.kind}))||t.valueDeclaration,i=e.getCombinedModifierFlags(n);return t.parent&&32&t.parent.flags?i:-29&i}if(6&Hr(t)){var a=t.checkFlags;return(1024&a?8:256&a?4:16)|(2048&a?32:0)}return 4194304&t.flags?36:0},e.skipAlias=function(e,t){return 2097152&e.flags?t.getAliasedSymbol(e):e},e.getCombinedLocalAndExportSymbolFlags=function(e){return e.exportSymbol?e.exportSymbol.flags|e.flags:e.flags},e.isWriteOnlyAccess=function(e){return 1===Gr(e)},e.isWriteAccess=function(e){return 0!==Gr(e)},function(e){e[e.Read=0]="Read",e[e.Write=1]="Write",e[e.ReadWrite=2]="ReadWrite"}(jr||(jr={})),e.compareDataObjects=function e(t,r){if(!t||!r||Object.keys(t).length!==Object.keys(r).length)return!1;for(var n in t)if("object"==typeof t[n]){if(!e(t[n],r[n]))return!1}else if("function"!=typeof t[n]&&t[n]!==r[n])return!1;return!0},e.clearMap=function(e,t){e.forEach(t),e.clear()},e.mutateMapSkippingNewValues=Yr,e.mutateMap=function(e,t,r){Yr(e,t,r);var n=r.createNewValue;t.forEach((function(t,r){e.has(r)||e.set(r,n(r,t))}))},e.isAbstractConstructorSymbol=function(e){if(32&e.flags){var t=Xr(e);return!!t&&mr(t,128)}return!1},e.getClassLikeDeclarationOfSymbol=Xr,e.getObjectFlags=function(e){return 3899393&e.flags?e.objectFlags:0},e.typeHasCallOrConstructSignatures=function(e,t){return 0!==t.getSignaturesOfType(e,0).length||0!==t.getSignaturesOfType(e,1).length},e.forSomeAncestorDirectory=function(t,r){return!!e.forEachAncestorDirectory(t,(function(e){return!!r(e)||void 0}))},e.isUMDExportSymbol=function(t){return!!t&&!!t.declarations&&!!t.declarations[0]&&e.isNamespaceExportDeclaration(t.declarations[0])},e.showModuleSpecifier=function(t){var r=t.moduleSpecifier;return e.isStringLiteral(r)?r.text:x(r)},e.getLastChild=function(t){var r;return e.forEachChild(t,(function(e){p(e)&&(r=e)}),(function(e){for(var t=e.length-1;t>=0;t--)if(p(e[t])){r=e[t];break}})),r},e.addToSeen=function(e,t,r){return void 0===r&&(r=!0),!e.has(t)&&(e.set(t,r),!0)},e.isObjectTypeDeclaration=function(t){return e.isClassLike(t)||e.isInterfaceDeclaration(t)||e.isTypeLiteralNode(t)},e.isTypeNodeKind=function(e){return e>=173&&e<=196||128===e||152===e||144===e||155===e||145===e||131===e||147===e||148===e||113===e||150===e||141===e||224===e||304===e||305===e||306===e||307===e||308===e||309===e||310===e},e.isAccessExpression=$r,e.getNameOfAccessExpression=function(t){return 202===t.kind?t.name:(e.Debug.assert(203===t.kind),t.argumentExpression)},e.isBundleFileTextLike=function(e){switch(e.kind){case"text":case"internal":return!0;default:return!1}},e.isNamedImportsOrExports=function(e){return 265===e.kind||269===e.kind},e.getLeftmostAccessExpression=Qr,e.getLeftmostExpression=function(e,t){for(;;){switch(e.kind){case 216:e=e.operand;continue;case 217:e=e.left;continue;case 218:e=e.condition;continue;case 206:e=e.tag;continue;case 204:if(t)return e;case 225:case 203:case 202:case 226:case 340:e=e.expression;continue}return e}},e.objectAllocator={getNodeConstructor:function(){return rn},getTokenConstructor:function(){return nn},getIdentifierConstructor:function(){return an},getPrivateIdentifierConstructor:function(){return rn},getSourceFileConstructor:function(){return rn},getSymbolConstructor:function(){return Zr},getTypeConstructor:function(){return en},getSignatureConstructor:function(){return tn},getSourceMapSourceConstructor:function(){return on}},e.setObjectAllocator=function(t){e.objectAllocator=t},e.formatStringFromArgs=sn,e.setLocalizedDiagnosticMessages=function(t){e.localizedDiagnosticMessages=t},e.getLocaleSpecificMessage=cn,e.createDetachedDiagnostic=function(e,t,r,n){B(void 0,t,r);var i=cn(n);return arguments.length>4&&(i=sn(i,arguments,4)),{file:void 0,start:t,length:r,messageText:i,category:n.category,code:n.code,reportsUnnecessary:n.reportsUnnecessary,fileName:e}},e.attachFileToDiagnostics=function(e,t){for(var r=[],n=0,i=e;n2&&(r=sn(r,arguments,2)),r},e.createCompilerDiagnostic=_n,e.createCompilerDiagnosticFromMessageChain=function(e,t){return{file:void 0,start:void 0,length:void 0,code:e.code,category:e.category,messageText:e.next?e:e.messageText,relatedInformation:t}},e.chainDiagnosticMessages=function(e,t){var r=cn(t);return arguments.length>2&&(r=sn(r,arguments,2)),{messageText:r,category:t.category,code:t.code,next:void 0===e||Array.isArray(e)?e:[e]}},e.concatenateDiagnosticMessageChains=function(e,t){for(var r=e;r.next;)r=r.next[0];r.next=[t]},e.compareDiagnostics=fn,e.compareDiagnosticsSkipRelatedInformation=gn,e.getLanguageVariant=function(e){return 4===e||2===e||1===e||6===e?1:0},e.getEmitScriptTarget=yn,e.getEmitModuleKind=vn,e.getEmitModuleResolutionKind=function(t){var r=t.moduleResolution;return void 0===r&&(r=vn(t)===e.ModuleKind.CommonJS?e.ModuleResolutionKind.NodeJs:e.ModuleResolutionKind.Classic),r},e.hasJsonModuleEmitEnabled=function(t){switch(vn(t)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ESNext:return!0;default:return!1}},e.unreachableCodeIsError=function(e){return!1===e.allowUnreachableCode},e.unusedLabelIsError=function(e){return!1===e.allowUnusedLabels},e.getAreDeclarationMapsEnabled=function(e){return!(!hn(e)||!e.declarationMap)},e.getAllowSyntheticDefaultImports=function(t){var r=vn(t);return void 0!==t.allowSyntheticDefaultImports?t.allowSyntheticDefaultImports:t.esModuleInterop||r===e.ModuleKind.System},e.getEmitDeclarations=hn,e.shouldPreserveConstEnums=function(e){return!(!e.preserveConstEnums&&!e.isolatedModules)},e.isIncrementalCompilation=function(e){return!(!e.incremental&&!e.composite)},e.getStrictOptionValue=Dn,e.getAllowJSCompilerOption=xn,e.getUseDefineForClassFields=function(e){return void 0===e.useDefineForClassFields?99===e.target:e.useDefineForClassFields},e.compilerOptionsAffectSemanticDiagnostics=function(t,r){return r!==t&&e.semanticDiagnosticsOptionDeclarations.some((function(e){return!oi(bn(r,e),bn(t,e))}))},e.compilerOptionsAffectEmit=function(t,r){return r!==t&&e.affectsEmitOptionDeclarations.some((function(e){return!oi(bn(r,e),bn(t,e))}))},e.getCompilerOptionValue=bn,e.getJSXTransformEnabled=function(e){var t=e.jsx;return 2===t||4===t||5===t},e.getJSXImplicitImportBase=function(t,r){var n=null==r?void 0:r.pragmas.get("jsximportsource"),i=e.isArray(n)?n[n.length-1]:n;return 4===t.jsx||5===t.jsx||t.jsxImportSource||i?(null==i?void 0:i.arguments.factory)||t.jsxImportSource||"react":void 0},e.getJSXRuntimeImport=function(e,t){return e?e+"/"+(5===t.jsx?"jsx-dev-runtime":"jsx-runtime"):void 0},e.hasZeroOrOneAsteriskCharacter=Sn,e.createSymlinkCache=En,e.discoverProbableSymlinks=function(t,r,n){for(var i=En(n,r),a=0,o=e.flatMap(t,(function(t){var r=t.resolvedModules&&e.arrayFrom(e.mapDefinedIterator(t.resolvedModules.values(),(function(e){return(null==e?void 0:e.originalPath)?[e.resolvedFileName,e.originalPath]:void 0})));return e.concatenate(r,t.resolvedTypeReferenceDirectiveNames&&e.arrayFrom(e.mapDefinedIterator(t.resolvedTypeReferenceDirectiveNames.values(),(function(e){return(null==e?void 0:e.originalPath)&&e.resolvedFileName?[e.resolvedFileName,e.originalPath]:void 0}))))}));a0;)c+=")?",_--;return c}}function jn(e,t){return"*"===e?t:"?"===e?"[^/]":"\\"+e}function Jn(t,r,n,i,a){t=e.normalizePath(t),a=e.normalizePath(a);var o=e.combinePaths(a,t);return{includeFilePatterns:e.map(Ln(n,o,"files"),(function(e){return"^"+e+"$"})),includeFilePattern:Mn(n,o,"files"),includeDirectoryPattern:Mn(n,o,"directories"),excludePattern:Mn(r,o,"exclude"),basePaths:zn(t,n,i)}}function Kn(e,t){return new RegExp(e,t?"":"i")}function zn(t,r,n){var i=[t];if(r){for(var a=[],o=0,s=r;o=0;n--)if(e.fileExtensionIs(t,r[n]))return $n(n,r);return 0},e.adjustExtensionPriority=$n,e.getNextLowestExtensionPriority=function(e,t){return e<2?2:t.length};var Qn=[".d.ts",".ts",".js",".tsx",".jsx",".json"];function Zn(e){for(var t=0,r=Qn;t=0)}function ii(e){return".ts"===e||".tsx"===e||".d.ts"===e}function ai(t){return e.find(Qn,(function(r){return e.fileExtensionIs(t,r)}))}function oi(t,r){return t===r||"object"==typeof t&&null!==t&&"object"==typeof r&&null!==r&&e.equalOwnProperties(t,r,oi)}function si(e,t){return e.pos=t,e}function ci(e,t){return e.end=t,e}function ui(e,t,r){return ci(si(e,t),r)}function li(e,t){return e&&t&&(e.parent=t),e}function di(t){return!e.isOmittedExpression(t)}function _i(t){return e.some(e.ignoredPaths,(function(r){return e.stringContains(t,r)}))}e.removeFileExtension=Zn,e.tryRemoveExtension=ei,e.removeExtension=ti,e.changeExtension=function(t,r){return e.changeAnyExtension(t,r,Qn,!1)},e.tryParsePattern=ri,e.positionIsSynthesized=ni,e.extensionIsTS=ii,e.resolutionExtensionIsTSOrJson=function(e){return ii(e)||".json"===e},e.extensionFromPath=function(t){var r=ai(t);return void 0!==r?r:e.Debug.fail("File "+t+" has unknown extension.")},e.isAnySupportedFileExtension=function(e){return void 0!==ai(e)},e.tryGetExtensionFromPath=ai,e.isCheckJsEnabledForFile=function(e,t){return e.checkJsDirective?e.checkJsDirective.enabled:t.checkJs},e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray},e.matchPatternOrExact=function(t,r){for(var n=[],i=0,a=t;ii&&(i=o)}return{min:n,max:i}},e.rangeOfNode=function(e){return{pos:v(e),end:e.end}},e.rangeOfTypeParameters=function(t,r){return{pos:r.pos-1,end:e.skipTrivia(t.text,r.end)+1}},e.skipTypeChecking=function(e,t,r){return t.skipLibCheck&&e.isDeclarationFile||t.skipDefaultLibCheck&&e.hasNoDefaultLib||r.isSourceOfProjectReferenceRedirect(e.fileName)},e.isJsonEqual=oi,e.parsePseudoBigInt=function(e){var t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:for(var r=e.length-1,n=0;48===e.charCodeAt(n);)n++;return e.slice(n,r)||"0"}for(var i=e.length-1,a=(i-2)*t,o=new Uint16Array((a>>>4)+(15&a?1:0)),s=i-1,c=0;s>=2;s--,c+=t){var u=c>>>4,l=e.charCodeAt(s),d=(l<=57?l-48:10+l-(l<=70?65:97))<<(15&c);o[u]|=d;var _=d>>>16;_&&(o[u+1]|=_)}for(var p="",f=o.length-1,g=!0;g;){var m=0;g=!1;for(u=f;u>=0;u--){var y=m<<16|o[u],v=y/10|0;o[u]=v,m=y-10*v,v&&!g&&(f=u,g=!0)}p=m+p}return p},e.pseudoBigIntToString=function(e){var t=e.negative,r=e.base10Value;return(t&&"0"!==r?"-":"")+r},e.isValidTypeOnlyAliasUseSite=function(t){return!!(8388608&t.flags)||me(t)||function(t){if(78!==t.kind)return!1;var r=e.findAncestor(t.parent,(function(e){switch(e.kind){case 287:return!0;case 202:case 224:return!1;default:return"quit"}}));return 116===(null==r?void 0:r.token)||254===(null==r?void 0:r.parent.kind)}(t)||function(e){for(;78===e.kind||202===e.kind;)e=e.parent;if(159!==e.kind)return!1;if(mr(e.parent,128))return!0;var t=e.parent.parent.kind;return 254===t||178===t}(t)||!fe(t)},e.typeOnlyDeclarationIsExport=function(e){return 271===e.kind},e.isIdentifierTypeReference=function(t){return e.isTypeReferenceNode(t)&&e.isIdentifier(t.typeName)},e.arrayIsHomogeneous=function(t,r){if(void 0===r&&(r=e.equateValues),t.length<2)return!0;for(var n=t[0],i=1,a=t.length;i3)return!0;var u=e.getExpressionPrecedence(c);switch(e.compareValues(u,o)){case-1:return!(!n&&1===s&&220===r.kind);case 1:return!1;case 0:if(n)return 1===s;if(e.isBinaryExpression(c)&&c.operatorToken.kind===t){if(function(e){return 41===e||51===e||50===e||52===e}(t))return!1;if(39===t){var l=a?i(a):0;if(e.isLiteralKind(l)&&l===i(c))return!1}}return 0===e.getExpressionAssociativity(c)}}(r,n,a,o)?t.createParenthesizedExpression(n):n}function o(e,t){return a(e,t,!0)}function s(e,t,r){return a(e,r,!1,t)}function c(r){var n=e.skipPartiallyEmittedExpressions(r);return e.isLeftHandSideExpression(n)&&(205!==n.kind||n.arguments)?r:e.setTextRange(t.createParenthesizedExpression(r),r)}function u(r){var n=e.skipPartiallyEmittedExpressions(r);return e.getExpressionPrecedence(n)>e.getOperatorPrecedence(217,27)?r:e.setTextRange(t.createParenthesizedExpression(r),r)}function l(e){return 185===e.kind?t.createParenthesizedType(e):e}function d(e){switch(e.kind){case 183:case 184:case 175:case 176:return t.createParenthesizedType(e)}return l(e)}function _(r,n){return 0===n&&e.isFunctionOrConstructorTypeNode(r)&&r.typeParameters?t.createParenthesizedType(r):r}},e.nullParenthesizerRules={getParenthesizeLeftSideOfBinaryForOperator:function(t){return e.identity},getParenthesizeRightSideOfBinaryForOperator:function(t){return e.identity},parenthesizeLeftSideOfBinary:function(e,t){return t},parenthesizeRightSideOfBinary:function(e,t,r){return r},parenthesizeExpressionOfComputedPropertyName:e.identity,parenthesizeConditionOfConditionalExpression:e.identity,parenthesizeBranchOfConditionalExpression:e.identity,parenthesizeExpressionOfExportDefault:e.identity,parenthesizeExpressionOfNew:function(t){return e.cast(t,e.isLeftHandSideExpression)},parenthesizeLeftSideOfAccess:function(t){return e.cast(t,e.isLeftHandSideExpression)},parenthesizeOperandOfPostfixUnary:function(t){return e.cast(t,e.isLeftHandSideExpression)},parenthesizeOperandOfPrefixUnary:function(t){return e.cast(t,e.isUnaryExpression)},parenthesizeExpressionsOfCommaDelimitedList:function(t){return e.cast(t,e.isNodeArray)},parenthesizeExpressionForDisallowedComma:e.identity,parenthesizeExpressionOfExpressionStatement:e.identity,parenthesizeConciseBodyOfArrowFunction:e.identity,parenthesizeMemberOfConditionalType:e.identity,parenthesizeMemberOfElementType:e.identity,parenthesizeElementTypeOfArrayType:e.identity,parenthesizeConstituentTypesOfUnionOrIntersectionType:function(t){return e.cast(t,e.isNodeArray)},parenthesizeTypeArguments:function(t){return t&&e.cast(t,e.isNodeArray)}}}(s||(s={})),function(e){e.createNodeConverters=function(t){return{convertToFunctionBlock:function(r,n){if(e.isBlock(r))return r;var i=t.createReturnStatement(r);e.setTextRange(i,r);var a=t.createBlock([i],n);return e.setTextRange(a,r),a},convertToFunctionExpression:function(r){if(!r.body)return e.Debug.fail("Cannot convert a FunctionDeclaration without a body");var n=t.createFunctionExpression(r.modifiers,r.asteriskToken,r.name,r.typeParameters,r.parameters,r.type,r.body);e.setOriginalNode(n,r),e.setTextRange(n,r),e.getStartsOnNewLine(r)&&e.setStartsOnNewLine(n,!0);return n},convertToArrayAssignmentElement:r,convertToObjectAssignmentElement:n,convertToAssignmentPattern:i,convertToObjectAssignmentPattern:a,convertToArrayAssignmentPattern:o,convertToAssignmentElementTarget:s};function r(r){if(e.isBindingElement(r)){if(r.dotDotDotToken)return e.Debug.assertNode(r.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(t.createSpreadElement(r.name),r),r);var n=s(r.name);return r.initializer?e.setOriginalNode(e.setTextRange(t.createAssignment(n,r.initializer),r),r):n}return e.cast(r,e.isExpression)}function n(r){if(e.isBindingElement(r)){if(r.dotDotDotToken)return e.Debug.assertNode(r.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(t.createSpreadAssignment(r.name),r),r);if(r.propertyName){var n=s(r.name);return e.setOriginalNode(e.setTextRange(t.createPropertyAssignment(r.propertyName,r.initializer?t.createAssignment(n,r.initializer):n),r),r)}return e.Debug.assertNode(r.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(t.createShorthandPropertyAssignment(r.name,r.initializer),r),r)}return e.cast(r,e.isObjectLiteralElementLike)}function i(e){switch(e.kind){case 198:case 200:return o(e);case 197:case 201:return a(e)}}function a(r){return e.isObjectBindingPattern(r)?e.setOriginalNode(e.setTextRange(t.createObjectLiteralExpression(e.map(r.elements,n)),r),r):e.cast(r,e.isObjectLiteralExpression)}function o(n){return e.isArrayBindingPattern(n)?e.setOriginalNode(e.setTextRange(t.createArrayLiteralExpression(e.map(n.elements,r)),n),n):e.cast(n,e.isArrayLiteralExpression)}function s(t){return e.isBindingPattern(t)?i(t):e.cast(t,e.isExpression)}},e.nullNodeConverters={convertToFunctionBlock:e.notImplemented,convertToFunctionExpression:e.notImplemented,convertToArrayAssignmentElement:e.notImplemented,convertToObjectAssignmentElement:e.notImplemented,convertToAssignmentPattern:e.notImplemented,convertToObjectAssignmentPattern:e.notImplemented,convertToArrayAssignmentPattern:e.notImplemented,convertToAssignmentElementTarget:e.notImplemented}}(s||(s={})),function(e){var r,n,i=0;function a(r,a){var f=8&r?o:s,g=e.memoize((function(){return 1&r?e.nullParenthesizerRules:e.createParenthesizerRules(A)})),m=e.memoize((function(){return 2&r?e.nullNodeConverters:e.createNodeConverters(A)})),y=e.memoizeOne((function(e){return function(t,r){return Ot(t,e,r)}})),v=e.memoizeOne((function(e){return function(t){return wt(e,t)}})),D=e.memoizeOne((function(e){return function(t){return It(t,e)}})),x=e.memoizeOne((function(e){return function(){return function(e){return N(e)}(e)}})),b=e.memoizeOne((function(e){return function(t){return Qr(e,t)}})),S=e.memoizeOne((function(e){return function(t,r){return function(e,t,r){return t.type!==r?f(Qr(e,r),t):t}(e,t,r)}})),E=e.memoizeOne((function(e){return function(t,r){return mn(e,t,r)}})),T=e.memoizeOne((function(e){return function(t,r,n){return function(e,t,r,n){void 0===r&&(r=nn(t));return t.tagName!==r||t.comment!==n?f(mn(e,r,n),t):t}(e,t,r,n)}})),C=e.memoizeOne((function(e){return function(t,r,n){return yn(e,t,r,n)}})),k=e.memoizeOne((function(e){return function(t,r,n,i){return function(e,t,r,n,i){void 0===r&&(r=nn(t));return t.tagName!==r||t.typeExpression!==n||t.comment!==i?f(yn(e,r,n,i),t):t}(e,t,r,n,i)}})),A={get parenthesizer(){return g()},get converters(){return m()},createNodeArray:F,createNumericLiteral:U,createBigIntLiteral:V,createStringLiteral:W,createStringLiteralFromNode:function(t){var r=q(e.getTextOfIdentifierOrLiteral(t),void 0);return r.textSourceNode=t,r},createRegularExpressionLiteral:H,createLiteralLikeNode:function(e,t){switch(e){case 8:return U(t,0);case 9:return V(t);case 10:return W(t,void 0);case 11:return Cn(t,!1);case 12:return Cn(t,!0);case 13:return H(t);case 14:return jt(e,t,void 0,0)}},createIdentifier:X,updateIdentifier:function(t,r){return t.typeArguments!==r?f(X(e.idText(t),r),t):t},createTempVariable:$,createLoopVariable:function(e){var t=2;e&&(t|=8);return Y("",t)},createUniqueName:function(t,r){void 0===r&&(r=0);return e.Debug.assert(!(7&r),"Argument out of range: flags"),e.Debug.assert(32!=(48&r),"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Y(t,3|r)},getGeneratedNameForNode:Q,createPrivateIdentifier:function(t){e.startsWith(t,"#")||e.Debug.fail("First character of private identifier must be #: "+t);var r=a.createBasePrivateIdentifierNode(79);return r.escapedText=e.escapeLeadingUnderscores(t),r.transformFlags|=8388608,r},createToken:ee,createSuper:function(){return ee(105)},createThis:te,createNull:function(){return ee(103)},createTrue:re,createFalse:ne,createModifier:ie,createModifiersFromModifierFlags:ae,createQualifiedName:oe,updateQualifiedName:function(e,t,r){return e.left!==t||e.right!==r?f(oe(t,r),e):e},createComputedPropertyName:se,updateComputedPropertyName:function(e,t){return e.expression!==t?f(se(t),e):e},createTypeParameterDeclaration:ce,updateTypeParameterDeclaration:function(e,t,r,n){return e.name!==t||e.constraint!==r||e.default!==n?f(ce(t,r,n),e):e},createParameterDeclaration:ue,updateParameterDeclaration:le,createDecorator:de,updateDecorator:function(e,t){return e.expression!==t?f(de(t),e):e},createPropertySignature:_e,updatePropertySignature:pe,createPropertyDeclaration:fe,updatePropertyDeclaration:ge,createMethodSignature:me,updateMethodSignature:ye,createMethodDeclaration:ve,updateMethodDeclaration:he,createConstructorDeclaration:De,updateConstructorDeclaration:xe,createGetAccessorDeclaration:be,updateGetAccessorDeclaration:Se,createSetAccessorDeclaration:Ee,updateSetAccessorDeclaration:Te,createCallSignature:Ce,updateCallSignature:function(e,t,r,n){return e.typeParameters!==t||e.parameters!==r||e.type!==n?M(Ce(t,r,n),e):e},createConstructSignature:ke,updateConstructSignature:function(e,t,r,n){return e.typeParameters!==t||e.parameters!==r||e.type!==n?M(ke(t,r,n),e):e},createIndexSignature:Ae,updateIndexSignature:Fe,createTemplateLiteralTypeSpan:Ne,updateTemplateLiteralTypeSpan:function(e,t,r){return e.type!==t||e.literal!==r?f(Ne(t,r),e):e},createKeywordTypeNode:function(e){return ee(e)},createTypePredicateNode:Pe,updateTypePredicateNode:function(e,t,r,n){return e.assertsModifier!==t||e.parameterName!==r||e.type!==n?f(Pe(t,r,n),e):e},createTypeReferenceNode:we,updateTypeReferenceNode:function(e,t,r){return e.typeName!==t||e.typeArguments!==r?f(we(t,r),e):e},createFunctionTypeNode:Ie,updateFunctionTypeNode:function(e,t,r,n){return e.typeParameters!==t||e.parameters!==r||e.type!==n?M(Ie(t,r,n),e):e},createConstructorTypeNode:Oe,updateConstructorTypeNode:function(){for(var t=[],r=0;r10?Vn(t):e.reduceLeft(t,A.createComma)},getInternalName:function(e,t,r){return Qn(e,t,r,49152)},getLocalName:function(e,t,r){return Qn(e,t,r,16384)},getExportName:Zn,getDeclarationName:function(e,t,r){return Qn(e,t,r)},getNamespaceMemberName:ei,getExternalModuleOrNamespaceExportName:function(t,r,n,i){if(t&&e.hasSyntacticModifier(r,1))return ei(t,Qn(r),n,i);return Zn(r,n,i)},restoreOuterExpressions:function t(r,n,i){void 0===i&&(i=15);if(r&&e.isOuterExpression(r,i)&&!function(t){return e.isParenthesizedExpression(t)&&e.nodeIsSynthesized(t)&&e.nodeIsSynthesized(e.getSourceMapRange(t))&&e.nodeIsSynthesized(e.getCommentRange(t))&&!e.some(e.getSyntheticLeadingComments(t))&&!e.some(e.getSyntheticTrailingComments(t))}(r))return function(e,t){switch(e.kind){case 208:return St(e,t);case 207:return xt(e,e.type,t);case 225:return Wt(e,t,e.type);case 226:return Gt(e,t);case 340:return zn(e,t)}}(r,t(r.expression,n));return n},restoreEnclosingLabel:function t(r,n,i){if(!n)return r;var a=mr(n,n.label,e.isLabeledStatement(n.statement)?t(r,n.statement):r);i&&i(n);return a},createUseStrictPrologue:ri,copyPrologue:function(e,t,r,n){var i=ni(e,t,r);return ii(e,t,i,n)},copyStandardPrologue:ni,copyCustomPrologue:ii,ensureUseStrict:function(r){if(!e.findUseStrictPrologue(r))return e.setTextRange(F(t([ri()],r)),r);return r},liftToBlock:function(t){return e.Debug.assert(e.every(t,e.isStatementOrBlock),"Cannot lift nodes to a Block."),e.singleOrUndefined(t)||Zt(t)},mergeLexicalEnvironment:function(r,n){if(!e.some(n))return r;var i=ai(r,e.isPrologueDirective,0),a=ai(r,e.isHoistedFunction,i),o=ai(r,e.isHoistedVariableStatement,a),s=ai(n,e.isPrologueDirective,0),c=ai(n,e.isHoistedFunction,s),u=ai(n,e.isHoistedVariableStatement,c),l=ai(n,e.isCustomPrologue,u);e.Debug.assert(l===n.length,"Expected declarations to be valid standard or custom prologues");var d=e.isNodeArray(r)?r.slice():r;l>u&&d.splice.apply(d,t([o,0],n.slice(u,l)));u>c&&d.splice.apply(d,t([a,0],n.slice(c,u)));c>s&&d.splice.apply(d,t([i,0],n.slice(s,c)));if(s>0)if(0===i)d.splice.apply(d,t([0,0],n.slice(0,s)));else{for(var _=new e.Map,p=0;p=0;p--){var g=n[p];_.has(g.expression.text)||d.unshift(g)}}if(e.isNodeArray(r))return e.setTextRange(F(d,r.hasTrailingComma),r);return r},updateModifiers:function(t,r){var n;"number"==typeof r&&(r=ae(r));return e.isParameter(t)?le(t,t.decorators,r,t.dotDotDotToken,t.name,t.questionToken,t.type,t.initializer):e.isPropertySignature(t)?pe(t,r,t.name,t.questionToken,t.type):e.isPropertyDeclaration(t)?ge(t,t.decorators,r,t.name,null!==(n=t.questionToken)&&void 0!==n?n:t.exclamationToken,t.type,t.initializer):e.isMethodSignature(t)?ye(t,r,t.name,t.questionToken,t.typeParameters,t.parameters,t.type):e.isMethodDeclaration(t)?he(t,t.decorators,r,t.asteriskToken,t.name,t.questionToken,t.typeParameters,t.parameters,t.type,t.body):e.isConstructorDeclaration(t)?xe(t,t.decorators,r,t.parameters,t.body):e.isGetAccessorDeclaration(t)?Se(t,t.decorators,r,t.name,t.parameters,t.type,t.body):e.isSetAccessorDeclaration(t)?Te(t,t.decorators,r,t.name,t.parameters,t.body):e.isIndexSignatureDeclaration(t)?Fe(t,t.decorators,r,t.parameters,t.type):e.isFunctionExpression(t)?Tt(t,r,t.asteriskToken,t.name,t.typeParameters,t.parameters,t.type,t.body):e.isArrowFunction(t)?kt(t,r,t.typeParameters,t.parameters,t.type,t.equalsGreaterThanToken,t.body):e.isClassExpression(t)?Ut(t,t.decorators,r,t.name,t.typeParameters,t.heritageClauses,t.members):e.isVariableStatement(t)?tr(t,r,t.declarationList):e.isFunctionDeclaration(t)?br(t,t.decorators,r,t.asteriskToken,t.name,t.typeParameters,t.parameters,t.type,t.body):e.isClassDeclaration(t)?Er(t,t.decorators,r,t.name,t.typeParameters,t.heritageClauses,t.members):e.isInterfaceDeclaration(t)?Cr(t,t.decorators,r,t.name,t.typeParameters,t.heritageClauses,t.members):e.isTypeAliasDeclaration(t)?Ar(t,t.decorators,r,t.name,t.typeParameters,t.type):e.isEnumDeclaration(t)?Nr(t,t.decorators,r,t.name,t.members):e.isModuleDeclaration(t)?wr(t,t.decorators,r,t.name,t.body):e.isImportEqualsDeclaration(t)?Rr(t,t.decorators,r,t.isTypeOnly,t.name,t.moduleReference):e.isImportDeclaration(t)?jr(t,t.decorators,r,t.importClause,t.moduleSpecifier):e.isExportAssignment(t)?Wr(t,t.decorators,r,t.expression):e.isExportDeclaration(t)?Gr(t,t.decorators,r,t.isTypeOnly,t.exportClause,t.moduleSpecifier):e.Debug.assertNever(t)}};return A;function F(t,r){if(void 0===t||t===e.emptyArray)t=[];else if(e.isNodeArray(t))return void 0===t.transformFlags&&p(t),e.Debug.attachNodeArrayDebugInfo(t),t;var n=t.length,i=n>=1&&n<=4?t.slice():t;return e.setTextRangePosEnd(i,-1,-1),i.hasTrailingComma=!!r,p(i),e.Debug.attachNodeArrayDebugInfo(i),i}function N(e){return a.createBaseNode(e)}function P(e,t,r){var n=N(e);return n.decorators=oi(t),n.modifiers=oi(r),n.transformFlags|=_(n.decorators)|_(n.modifiers),n.symbol=void 0,n.localSymbol=void 0,n.locals=void 0,n.nextContainer=void 0,n}function w(t,r,n,i){var a=P(t,r,n);if(i=si(i),a.name=i,i)switch(a.kind){case 166:case 168:case 169:case 164:case 289:if(e.isIdentifier(i)){a.transformFlags|=l(i);break}default:a.transformFlags|=d(i)}return a}function I(e,t,r,n,i){var a=w(e,t,r,n);return a.typeParameters=oi(i),a.transformFlags|=_(a.typeParameters),i&&(a.transformFlags|=1),a}function O(e,t,r,n,i,a,o){var s=I(e,t,r,n,i);return s.parameters=F(a),s.type=o,s.transformFlags|=_(s.parameters)|d(s.type),o&&(s.transformFlags|=1),s}function M(e,t){return t.typeArguments&&(e.typeArguments=t.typeArguments),f(e,t)}function L(e,t,r,n,i,a,o,s){var c=O(e,t,r,n,i,a,o);return c.body=s,c.transformFlags|=-16777217&d(c.body),s||(c.transformFlags|=1),c}function R(e,t){return t.exclamationToken&&(e.exclamationToken=t.exclamationToken),t.typeArguments&&(e.typeArguments=t.typeArguments),M(e,t)}function B(e,t,r,n,i,a){var o=I(e,t,r,n,i);return o.heritageClauses=oi(a),o.transformFlags|=_(o.heritageClauses),o}function j(e,t,r,n,i,a,o){var s=B(e,t,r,n,i,a);return s.members=F(o),s.transformFlags|=_(s.members),s}function J(e,t,r,n,i){var a=w(e,t,r,n);return a.initializer=i,a.transformFlags|=d(a.initializer),a}function K(e,t,r,n,i,a){var o=J(e,t,r,n,a);return o.type=i,o.transformFlags|=d(i),i&&(o.transformFlags|=1),o}function z(e,t){var r=Z(e);return r.text=t,r}function U(e,t){void 0===t&&(t=0);var r=z(8,"number"==typeof e?e+"":e);return r.numericLiteralFlags=t,384&t&&(r.transformFlags|=512),r}function V(t){var r=z(9,"string"==typeof t?t:e.pseudoBigIntToString(t)+"n");return r.transformFlags|=4,r}function q(e,t){var r=z(10,e);return r.singleQuote=t,r}function W(e,t,r){var n=q(e,t);return n.hasExtendedUnicodeEscape=r,r&&(n.transformFlags|=512),n}function H(e){return z(13,e)}function G(t,r){void 0===r&&t&&(r=e.stringToToken(t)),78===r&&(r=void 0);var n=a.createBaseIdentifierNode(78);return n.originalKeywordKind=r,n.escapedText=e.escapeLeadingUnderscores(t),n}function Y(e,t){var r=G(e,void 0);return r.autoGenerateFlags=t,r.autoGenerateId=i,i++,r}function X(e,t,r){var n=G(e,r);return t&&(n.typeArguments=F(t)),130===n.originalKeywordKind&&(n.transformFlags|=16777216),n}function $(e,t){var r=1;t&&(r|=8);var n=Y("",r);return e&&e(n),n}function Q(t,r){void 0===r&&(r=0),e.Debug.assert(!(7&r),"Argument out of range: flags");var n=Y(t&&e.isIdentifier(t)?e.idText(t):"",4|r);return n.original=t,n}function Z(e){return a.createBaseTokenNode(e)}function ee(t){e.Debug.assert(t>=0&&t<=157,"Invalid token"),e.Debug.assert(t<=14||t>=17,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),e.Debug.assert(t<=8||t>=14,"Invalid token. Use 'createLiteralLikeNode' to create literals."),e.Debug.assert(78!==t,"Invalid token. Use 'createIdentifier' to create identifiers");var r=Z(t),n=0;switch(t){case 129:n=192;break;case 122:case 120:case 121:case 142:case 125:case 133:case 84:case 128:case 144:case 155:case 141:case 145:case 156:case 147:case 131:case 148:case 113:case 152:case 150:n=1;break;case 123:case 105:n=512;break;case 107:n=8192}return n&&(r.transformFlags|=n),r}function te(){return ee(107)}function re(){return ee(109)}function ne(){return ee(94)}function ie(e){return ee(e)}function ae(e){var t=[];return 1&e&&t.push(ie(92)),2&e&&t.push(ie(133)),512&e&&t.push(ie(87)),2048&e&&t.push(ie(84)),4&e&&t.push(ie(122)),8&e&&t.push(ie(120)),16&e&&t.push(ie(121)),128&e&&t.push(ie(125)),32&e&&t.push(ie(123)),16384&e&&t.push(ie(156)),64&e&&t.push(ie(142)),256&e&&t.push(ie(129)),t}function oe(e,t){var r=N(158);return r.left=e,r.right=si(t),r.transformFlags|=d(r.left)|l(r.right),r}function se(e){var t=N(159);return t.expression=g().parenthesizeExpressionOfComputedPropertyName(e),t.transformFlags|=66048|d(t.expression),t}function ce(e,t,r){var n=w(160,void 0,void 0,e);return n.constraint=t,n.default=r,n.transformFlags=1,n}function ue(t,r,n,i,a,o,s){var c=K(161,t,r,i,o,s&&g().parenthesizeExpressionForDisallowedComma(s));return c.dotDotDotToken=n,c.questionToken=a,e.isThisIdentifier(c.name)?c.transformFlags=1:(c.transformFlags|=d(c.dotDotDotToken)|d(c.questionToken),a&&(c.transformFlags|=1),16476&e.modifiersToFlags(c.modifiers)&&(c.transformFlags|=4096),(s||n)&&(c.transformFlags|=512)),c}function le(e,t,r,n,i,a,o,s){return e.decorators!==t||e.modifiers!==r||e.dotDotDotToken!==n||e.name!==i||e.questionToken!==a||e.type!==o||e.initializer!==s?f(ue(t,r,n,i,a,o,s),e):e}function de(e){var t=N(162);return t.expression=g().parenthesizeLeftSideOfAccess(e),t.transformFlags|=4097|d(t.expression),t}function _e(e,t,r,n){var i=w(163,void 0,e,t);return i.type=n,i.questionToken=r,i.transformFlags=1,i}function pe(e,t,r,n,i){return e.modifiers!==t||e.name!==r||e.questionToken!==n||e.type!==i?f(_e(t,r,n,i),e):e}function fe(t,r,n,i,a,o){var s=K(164,t,r,n,a,o);return s.questionToken=i&&e.isQuestionToken(i)?i:void 0,s.exclamationToken=i&&e.isExclamationToken(i)?i:void 0,s.transformFlags|=d(s.questionToken)|d(s.exclamationToken)|8388608,(e.isComputedPropertyName(s.name)||e.hasStaticModifier(s)&&s.initializer)&&(s.transformFlags|=4096),(i||2&e.modifiersToFlags(s.modifiers))&&(s.transformFlags|=1),s}function ge(t,r,n,i,a,o,s){return t.decorators!==r||t.modifiers!==n||t.name!==i||t.questionToken!==(void 0!==a&&e.isQuestionToken(a)?a:void 0)||t.exclamationToken!==(void 0!==a&&e.isExclamationToken(a)?a:void 0)||t.type!==o||t.initializer!==s?f(fe(r,n,i,a,o,s),t):t}function me(e,t,r,n,i,a){var o=O(165,void 0,e,t,n,i,a);return o.questionToken=r,o.transformFlags=1,o}function ye(e,t,r,n,i,a,o){return e.modifiers!==t||e.name!==r||e.questionToken!==n||e.typeParameters!==i||e.parameters!==a||e.type!==o?M(me(t,r,n,i,a,o),e):e}function ve(t,r,n,i,a,o,s,c,u){var l=L(166,t,r,i,o,s,c,u);return l.asteriskToken=n,l.questionToken=a,l.transformFlags|=d(l.asteriskToken)|d(l.questionToken)|512,a&&(l.transformFlags|=1),256&e.modifiersToFlags(l.modifiers)?l.transformFlags|=n?64:128:n&&(l.transformFlags|=1024),l}function he(e,t,r,n,i,a,o,s,c,u){return e.decorators!==t||e.modifiers!==r||e.asteriskToken!==n||e.name!==i||e.questionToken!==a||e.typeParameters!==o||e.parameters!==s||e.type!==c||e.body!==u?R(ve(t,r,n,i,a,o,s,c,u),e):e}function De(e,t,r,n){var i=L(167,e,t,void 0,void 0,r,void 0,n);return i.transformFlags|=512,i}function xe(e,t,r,n,i){return e.decorators!==t||e.modifiers!==r||e.parameters!==n||e.body!==i?R(De(t,r,n,i),e):e}function be(e,t,r,n,i,a){return L(168,e,t,r,void 0,n,i,a)}function Se(e,t,r,n,i,a,o){return e.decorators!==t||e.modifiers!==r||e.name!==n||e.parameters!==i||e.type!==a||e.body!==o?R(be(t,r,n,i,a,o),e):e}function Ee(e,t,r,n,i){return L(169,e,t,r,void 0,n,void 0,i)}function Te(e,t,r,n,i,a){return e.decorators!==t||e.modifiers!==r||e.name!==n||e.parameters!==i||e.body!==a?R(Ee(t,r,n,i,a),e):e}function Ce(e,t,r){var n=O(170,void 0,void 0,void 0,e,t,r);return n.transformFlags=1,n}function ke(e,t,r){var n=O(171,void 0,void 0,void 0,e,t,r);return n.transformFlags=1,n}function Ae(e,t,r,n){var i=O(172,e,t,void 0,void 0,r,n);return i.transformFlags=1,i}function Fe(e,t,r,n,i){return e.parameters!==n||e.type!==i||e.decorators!==t||e.modifiers!==r?M(Ae(t,r,n,i),e):e}function Ne(e,t){var r=N(195);return r.type=e,r.literal=t,r.transformFlags=1,r}function Pe(e,t,r){var n=N(173);return n.assertsModifier=e,n.parameterName=si(t),n.type=r,n.transformFlags=1,n}function we(e,t){var r=N(174);return r.typeName=si(e),r.typeArguments=t&&g().parenthesizeTypeArguments(F(t)),r.transformFlags=1,r}function Ie(e,t,r){var n=O(175,void 0,void 0,void 0,e,t,r);return n.transformFlags=1,n}function Oe(){for(var t=[],r=0;r0;default:return!0}}function Qn(t,r,n,i){void 0===i&&(i=0);var a=e.getNameOfDeclaration(t);if(a&&e.isIdentifier(a)&&!e.isGeneratedIdentifier(a)){var o=e.setParent(e.setTextRange(Wn(a),a),a.parent);return i|=e.getEmitFlags(a),n||(i|=48),r||(i|=1536),i&&e.setEmitFlags(o,i),o}return Q(t)}function Zn(e,t,r){return Qn(e,t,r,8192)}function ei(t,r,n,i){var a=ut(t,e.nodeIsSynthesized(r)?r:Wn(r));e.setTextRange(a,r);var o=0;return i||(o|=48),n||(o|=1536),o&&e.setEmitFlags(a,o),a}function ti(t){return e.isStringLiteral(t.expression)&&"use strict"===t.expression.text}function ri(){return e.startOnNewLine(nr(W("use strict")))}function ni(t,r,n){e.Debug.assert(0===r.length,"Prologue directives should be at the first statement in the target statements array");for(var i=!1,a=0,o=t.length;a=173&&e<=196)return-2;switch(e){case 204:case 205:case 200:return 536887296;case 257:return 555888640;case 161:return 536870912;case 210:return 557748224;case 209:case 252:return 557756416;case 251:return 537165824;case 253:case 222:return 536940544;case 167:return 557752320;case 164:return 536879104;case 166:case 168:case 169:return 540975104;case 128:case 144:case 155:case 141:case 147:case 145:case 131:case 148:case 113:case 160:case 163:case 165:case 170:case 171:case 172:case 254:case 255:return-2;case 201:return 536973312;case 288:return 536903680;case 197:case 198:return 536887296;case 207:case 225:case 340:case 208:case 105:return 536870912;case 202:case 203:default:return 536870912}}e.getTransformFlagsSubtreeExclusions=f;var g=e.createBaseNodeFactory();function m(e){return e.flags|=8,e}var y,v={createBaseSourceFileNode:function(e){return m(g.createBaseSourceFileNode(e))},createBaseIdentifierNode:function(e){return m(g.createBaseIdentifierNode(e))},createBasePrivateIdentifierNode:function(e){return m(g.createBasePrivateIdentifierNode(e))},createBaseTokenNode:function(e){return m(g.createBaseTokenNode(e))},createBaseNode:function(e){return m(g.createBaseNode(e))}};function h(t,r){if(t.original=r,r){var n=r.emitNode;n&&(t.emitNode=function(t,r){var n=t.flags,i=t.leadingComments,a=t.trailingComments,o=t.commentRange,s=t.sourceMapRange,c=t.tokenSourceMapRanges,u=t.constantValue,l=t.helpers,d=t.startsOnNewLine;r||(r={});i&&(r.leadingComments=e.addRange(i.slice(),r.leadingComments));a&&(r.trailingComments=e.addRange(a.slice(),r.trailingComments));n&&(r.flags=n);o&&(r.commentRange=o);s&&(r.sourceMapRange=s);c&&(r.tokenSourceMapRanges=function(e,t){t||(t=[]);for(var r in e)t[r]=e[r];return t}(c,r.tokenSourceMapRanges));void 0!==u&&(r.constantValue=u);if(l)for(var _=0,p=l;_0&&(o[u-c]=l)}c>0&&(o.length-=c)}},e.ignoreSourceNewlines=function(e){return t(e).flags|=134217728,e}}(s||(s={})),function(e){function r(e){for(var t=[],r=1;r=2)return n.createCallExpression(n.createPropertyAccessExpression(n.createIdentifier("Object"),"assign"),void 0,t);return r.requestEmitHelper(e.assignHelper),n.createCallExpression(i("__assign"),void 0,t)},createAwaitHelper:function(t){return r.requestEmitHelper(e.awaitHelper),n.createCallExpression(i("__await"),void 0,[t])},createAsyncGeneratorHelper:function(t,a){return r.requestEmitHelper(e.awaitHelper),r.requestEmitHelper(e.asyncGeneratorHelper),(t.emitNode||(t.emitNode={})).flags|=786432,n.createCallExpression(i("__asyncGenerator"),void 0,[a?n.createThis():n.createVoidZero(),n.createIdentifier("arguments"),t])},createAsyncDelegatorHelper:function(t){return r.requestEmitHelper(e.awaitHelper),r.requestEmitHelper(e.asyncDelegator),n.createCallExpression(i("__asyncDelegator"),void 0,[t])},createAsyncValuesHelper:function(t){return r.requestEmitHelper(e.asyncValues),n.createCallExpression(i("__asyncValues"),void 0,[t])},createRestHelper:function(t,a,o,s){r.requestEmitHelper(e.restHelper);for(var c=[],u=0,l=0;l= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n };'},e.metadataHelper={name:"typescript:metadata",importName:"__metadata",scoped:!1,priority:3,text:'\n var __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);\n };'},e.paramHelper={name:"typescript:param",importName:"__param",scoped:!1,priority:4,text:"\n var __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n };"},e.assignHelper={name:"typescript:assign",importName:"__assign",scoped:!1,priority:1,text:"\n var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n };"},e.awaitHelper={name:"typescript:await",importName:"__await",scoped:!1,text:"\n var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }"},e.asyncGeneratorHelper={name:"typescript:asyncGenerator",importName:"__asyncGenerator",scoped:!1,dependencies:[e.awaitHelper],text:'\n var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;\n 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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume("next", value); }\n function reject(value) { resume("throw", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n };'},e.asyncDelegator={name:"typescript:asyncDelegator",importName:"__asyncDelegator",scoped:!1,dependencies:[e.awaitHelper],text:'\n var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n var i, p;\n return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }\n };'},e.asyncValues={name:"typescript:asyncValues",importName:"__asyncValues",scoped:!1,text:'\n var __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");\n var m = o[Symbol.asyncIterator], i;\n 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);\n 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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n };'},e.restHelper={name:"typescript:rest",importName:"__rest",scoped:!1,text:'\n var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === "function")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n };'},e.awaiterHelper={name:"typescript:awaiter",importName:"__awaiter",scoped:!1,priority:5,text:'\n var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };'},e.extendsHelper={name:"typescript:extends",importName:"__extends",scoped:!1,priority:0,text:'\n var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== "function" && b !== null)\n throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n })();'},e.templateObjectHelper={name:"typescript:makeTemplateObject",importName:"__makeTemplateObject",scoped:!1,priority:0,text:'\n var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n };'},e.readHelper={name:"typescript:read",importName:"__read",scoped:!1,text:'\n var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === "function" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i["return"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n };'},e.spreadArrayHelper={name:"typescript:spreadArray",importName:"__spreadArray",scoped:!1,text:"\n var __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n };"},e.valuesHelper={name:"typescript:values",importName:"__values",scoped:!1,text:'\n var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === "number") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");\n };'},e.generatorHelper={name:"typescript:generator",importName:"__generator",scoped:!1,priority:6,text:'\n var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError("Generator is already executing.");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n };'},e.createBindingHelper={name:"typescript:commonjscreatebinding",importName:"__createBinding",scoped:!1,priority:1,text:"\n var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n }) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n }));"},e.setModuleDefaultHelper={name:"typescript:commonjscreatevalue",importName:"__setModuleDefault",scoped:!1,priority:1,text:'\n var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, "default", { enumerable: true, value: v });\n }) : function(o, v) {\n o["default"] = v;\n });'},e.importStarHelper={name:"typescript:commonjsimportstar",importName:"__importStar",scoped:!1,dependencies:[e.createBindingHelper,e.setModuleDefaultHelper],priority:2,text:'\n var __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n };'},e.importDefaultHelper={name:"typescript:commonjsimportdefault",importName:"__importDefault",scoped:!1,text:'\n var __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { "default": mod };\n };'},e.exportStarHelper={name:"typescript:export-star",importName:"__exportStar",scoped:!1,dependencies:[e.createBindingHelper],priority:2,text:'\n var __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };'},e.classPrivateFieldGetHelper={name:"typescript:classPrivateFieldGet",importName:"__classPrivateFieldGet",scoped:!1,text:'\n var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");\n if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");\n return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);\n };'},e.classPrivateFieldSetHelper={name:"typescript:classPrivateFieldSet",importName:"__classPrivateFieldSet",scoped:!1,text:'\n var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === "m") throw new TypeError("Private method is not writable");\n if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");\n if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");\n return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n };'},e.getAllUnscopedEmitHelpers=function(){return i||(i=e.arrayToMap([e.decorateHelper,e.metadataHelper,e.paramHelper,e.assignHelper,e.awaitHelper,e.asyncGeneratorHelper,e.asyncDelegator,e.asyncValues,e.restHelper,e.awaiterHelper,e.extendsHelper,e.templateObjectHelper,e.spreadArrayHelper,e.valuesHelper,e.readHelper,e.generatorHelper,e.importStarHelper,e.importDefaultHelper,e.exportStarHelper,e.classPrivateFieldGetHelper,e.classPrivateFieldSetHelper,e.createBindingHelper,e.setModuleDefaultHelper],(function(e){return e.name})))},e.asyncSuperHelper={name:"typescript:async-super",scoped:!0,text:r(n(["\n const "," = name => super[name];"],["\n const "," = name => super[name];"]),"_superIndex")},e.advancedAsyncSuperHelper={name:"typescript:advanced-async-super",scoped:!0,text:r(n(["\n const "," = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);"],["\n const "," = (function (geti, seti) {\n const cache = Object.create(null);\n return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n })(name => super[name], (name, value) => super[name] = value);"]),"_superIndex")},e.isCallToHelper=function(t,r){return e.isCallExpression(t)&&e.isIdentifier(t.expression)&&4096&e.getEmitFlags(t.expression)&&t.expression.escapedText===r}}(s||(s={})),function(e){e.isNumericLiteral=function(e){return 8===e.kind},e.isBigIntLiteral=function(e){return 9===e.kind},e.isStringLiteral=function(e){return 10===e.kind},e.isJsxText=function(e){return 11===e.kind},e.isRegularExpressionLiteral=function(e){return 13===e.kind},e.isNoSubstitutionTemplateLiteral=function(e){return 14===e.kind},e.isTemplateHead=function(e){return 15===e.kind},e.isTemplateMiddle=function(e){return 16===e.kind},e.isTemplateTail=function(e){return 17===e.kind},e.isDotDotDotToken=function(e){return 25===e.kind},e.isCommaToken=function(e){return 27===e.kind},e.isPlusToken=function(e){return 39===e.kind},e.isMinusToken=function(e){return 40===e.kind},e.isAsteriskToken=function(e){return 41===e.kind},e.isExclamationToken=function(e){return 53===e.kind},e.isQuestionToken=function(e){return 57===e.kind},e.isColonToken=function(e){return 58===e.kind},e.isQuestionDotToken=function(e){return 28===e.kind},e.isEqualsGreaterThanToken=function(e){return 38===e.kind},e.isIdentifier=function(e){return 78===e.kind},e.isPrivateIdentifier=function(e){return 79===e.kind},e.isExportModifier=function(e){return 92===e.kind},e.isAsyncModifier=function(e){return 129===e.kind},e.isAssertsKeyword=function(e){return 127===e.kind},e.isAwaitKeyword=function(e){return 130===e.kind},e.isReadonlyKeyword=function(e){return 142===e.kind},e.isStaticModifier=function(e){return 123===e.kind},e.isSuperKeyword=function(e){return 105===e.kind},e.isImportKeyword=function(e){return 99===e.kind},e.isQualifiedName=function(e){return 158===e.kind},e.isComputedPropertyName=function(e){return 159===e.kind},e.isTypeParameterDeclaration=function(e){return 160===e.kind},e.isParameter=function(e){return 161===e.kind},e.isDecorator=function(e){return 162===e.kind},e.isPropertySignature=function(e){return 163===e.kind},e.isPropertyDeclaration=function(e){return 164===e.kind},e.isMethodSignature=function(e){return 165===e.kind},e.isMethodDeclaration=function(e){return 166===e.kind},e.isConstructorDeclaration=function(e){return 167===e.kind},e.isGetAccessorDeclaration=function(e){return 168===e.kind},e.isSetAccessorDeclaration=function(e){return 169===e.kind},e.isCallSignatureDeclaration=function(e){return 170===e.kind},e.isConstructSignatureDeclaration=function(e){return 171===e.kind},e.isIndexSignatureDeclaration=function(e){return 172===e.kind},e.isTypePredicateNode=function(e){return 173===e.kind},e.isTypeReferenceNode=function(e){return 174===e.kind},e.isFunctionTypeNode=function(e){return 175===e.kind},e.isConstructorTypeNode=function(e){return 176===e.kind},e.isTypeQueryNode=function(e){return 177===e.kind},e.isTypeLiteralNode=function(e){return 178===e.kind},e.isArrayTypeNode=function(e){return 179===e.kind},e.isTupleTypeNode=function(e){return 180===e.kind},e.isNamedTupleMember=function(e){return 193===e.kind},e.isOptionalTypeNode=function(e){return 181===e.kind},e.isRestTypeNode=function(e){return 182===e.kind},e.isUnionTypeNode=function(e){return 183===e.kind},e.isIntersectionTypeNode=function(e){return 184===e.kind},e.isConditionalTypeNode=function(e){return 185===e.kind},e.isInferTypeNode=function(e){return 186===e.kind},e.isParenthesizedTypeNode=function(e){return 187===e.kind},e.isThisTypeNode=function(e){return 188===e.kind},e.isTypeOperatorNode=function(e){return 189===e.kind},e.isIndexedAccessTypeNode=function(e){return 190===e.kind},e.isMappedTypeNode=function(e){return 191===e.kind},e.isLiteralTypeNode=function(e){return 192===e.kind},e.isImportTypeNode=function(e){return 196===e.kind},e.isTemplateLiteralTypeSpan=function(e){return 195===e.kind},e.isTemplateLiteralTypeNode=function(e){return 194===e.kind},e.isObjectBindingPattern=function(e){return 197===e.kind},e.isArrayBindingPattern=function(e){return 198===e.kind},e.isBindingElement=function(e){return 199===e.kind},e.isArrayLiteralExpression=function(e){return 200===e.kind},e.isObjectLiteralExpression=function(e){return 201===e.kind},e.isPropertyAccessExpression=function(e){return 202===e.kind},e.isElementAccessExpression=function(e){return 203===e.kind},e.isCallExpression=function(e){return 204===e.kind},e.isNewExpression=function(e){return 205===e.kind},e.isTaggedTemplateExpression=function(e){return 206===e.kind},e.isTypeAssertionExpression=function(e){return 207===e.kind},e.isParenthesizedExpression=function(e){return 208===e.kind},e.isFunctionExpression=function(e){return 209===e.kind},e.isArrowFunction=function(e){return 210===e.kind},e.isDeleteExpression=function(e){return 211===e.kind},e.isTypeOfExpression=function(e){return 212===e.kind},e.isVoidExpression=function(e){return 213===e.kind},e.isAwaitExpression=function(e){return 214===e.kind},e.isPrefixUnaryExpression=function(e){return 215===e.kind},e.isPostfixUnaryExpression=function(e){return 216===e.kind},e.isBinaryExpression=function(e){return 217===e.kind},e.isConditionalExpression=function(e){return 218===e.kind},e.isTemplateExpression=function(e){return 219===e.kind},e.isYieldExpression=function(e){return 220===e.kind},e.isSpreadElement=function(e){return 221===e.kind},e.isClassExpression=function(e){return 222===e.kind},e.isOmittedExpression=function(e){return 223===e.kind},e.isExpressionWithTypeArguments=function(e){return 224===e.kind},e.isAsExpression=function(e){return 225===e.kind},e.isNonNullExpression=function(e){return 226===e.kind},e.isMetaProperty=function(e){return 227===e.kind},e.isSyntheticExpression=function(e){return 228===e.kind},e.isPartiallyEmittedExpression=function(e){return 340===e.kind},e.isCommaListExpression=function(e){return 341===e.kind},e.isTemplateSpan=function(e){return 229===e.kind},e.isSemicolonClassElement=function(e){return 230===e.kind},e.isBlock=function(e){return 231===e.kind},e.isVariableStatement=function(e){return 233===e.kind},e.isEmptyStatement=function(e){return 232===e.kind},e.isExpressionStatement=function(e){return 234===e.kind},e.isIfStatement=function(e){return 235===e.kind},e.isDoStatement=function(e){return 236===e.kind},e.isWhileStatement=function(e){return 237===e.kind},e.isForStatement=function(e){return 238===e.kind},e.isForInStatement=function(e){return 239===e.kind},e.isForOfStatement=function(e){return 240===e.kind},e.isContinueStatement=function(e){return 241===e.kind},e.isBreakStatement=function(e){return 242===e.kind},e.isReturnStatement=function(e){return 243===e.kind},e.isWithStatement=function(e){return 244===e.kind},e.isSwitchStatement=function(e){return 245===e.kind},e.isLabeledStatement=function(e){return 246===e.kind},e.isThrowStatement=function(e){return 247===e.kind},e.isTryStatement=function(e){return 248===e.kind},e.isDebuggerStatement=function(e){return 249===e.kind},e.isVariableDeclaration=function(e){return 250===e.kind},e.isVariableDeclarationList=function(e){return 251===e.kind},e.isFunctionDeclaration=function(e){return 252===e.kind},e.isClassDeclaration=function(e){return 253===e.kind},e.isInterfaceDeclaration=function(e){return 254===e.kind},e.isTypeAliasDeclaration=function(e){return 255===e.kind},e.isEnumDeclaration=function(e){return 256===e.kind},e.isModuleDeclaration=function(e){return 257===e.kind},e.isModuleBlock=function(e){return 258===e.kind},e.isCaseBlock=function(e){return 259===e.kind},e.isNamespaceExportDeclaration=function(e){return 260===e.kind},e.isImportEqualsDeclaration=function(e){return 261===e.kind},e.isImportDeclaration=function(e){return 262===e.kind},e.isImportClause=function(e){return 263===e.kind},e.isNamespaceImport=function(e){return 264===e.kind},e.isNamespaceExport=function(e){return 270===e.kind},e.isNamedImports=function(e){return 265===e.kind},e.isImportSpecifier=function(e){return 266===e.kind},e.isExportAssignment=function(e){return 267===e.kind},e.isExportDeclaration=function(e){return 268===e.kind},e.isNamedExports=function(e){return 269===e.kind},e.isExportSpecifier=function(e){return 271===e.kind},e.isMissingDeclaration=function(e){return 272===e.kind},e.isNotEmittedStatement=function(e){return 339===e.kind},e.isSyntheticReference=function(e){return 344===e.kind},e.isMergeDeclarationMarker=function(e){return 342===e.kind},e.isEndOfDeclarationMarker=function(e){return 343===e.kind},e.isExternalModuleReference=function(e){return 273===e.kind},e.isJsxElement=function(e){return 274===e.kind},e.isJsxSelfClosingElement=function(e){return 275===e.kind},e.isJsxOpeningElement=function(e){return 276===e.kind},e.isJsxClosingElement=function(e){return 277===e.kind},e.isJsxFragment=function(e){return 278===e.kind},e.isJsxOpeningFragment=function(e){return 279===e.kind},e.isJsxClosingFragment=function(e){return 280===e.kind},e.isJsxAttribute=function(e){return 281===e.kind},e.isJsxAttributes=function(e){return 282===e.kind},e.isJsxSpreadAttribute=function(e){return 283===e.kind},e.isJsxExpression=function(e){return 284===e.kind},e.isCaseClause=function(e){return 285===e.kind},e.isDefaultClause=function(e){return 286===e.kind},e.isHeritageClause=function(e){return 287===e.kind},e.isCatchClause=function(e){return 288===e.kind},e.isPropertyAssignment=function(e){return 289===e.kind},e.isShorthandPropertyAssignment=function(e){return 290===e.kind},e.isSpreadAssignment=function(e){return 291===e.kind},e.isEnumMember=function(e){return 292===e.kind},e.isUnparsedPrepend=function(e){return 294===e.kind},e.isSourceFile=function(e){return 298===e.kind},e.isBundle=function(e){return 299===e.kind},e.isUnparsedSource=function(e){return 300===e.kind},e.isJSDocTypeExpression=function(e){return 302===e.kind},e.isJSDocNameReference=function(e){return 303===e.kind},e.isJSDocLink=function(e){return 316===e.kind},e.isJSDocAllType=function(e){return 304===e.kind},e.isJSDocUnknownType=function(e){return 305===e.kind},e.isJSDocNullableType=function(e){return 306===e.kind},e.isJSDocNonNullableType=function(e){return 307===e.kind},e.isJSDocOptionalType=function(e){return 308===e.kind},e.isJSDocFunctionType=function(e){return 309===e.kind},e.isJSDocVariadicType=function(e){return 310===e.kind},e.isJSDocNamepathType=function(e){return 311===e.kind},e.isJSDoc=function(e){return 312===e.kind},e.isJSDocTypeLiteral=function(e){return 314===e.kind},e.isJSDocSignature=function(e){return 315===e.kind},e.isJSDocAugmentsTag=function(e){return 318===e.kind},e.isJSDocAuthorTag=function(e){return 320===e.kind},e.isJSDocClassTag=function(e){return 322===e.kind},e.isJSDocCallbackTag=function(e){return 328===e.kind},e.isJSDocPublicTag=function(e){return 323===e.kind},e.isJSDocPrivateTag=function(e){return 324===e.kind},e.isJSDocProtectedTag=function(e){return 325===e.kind},e.isJSDocReadonlyTag=function(e){return 326===e.kind},e.isJSDocOverrideTag=function(e){return 327===e.kind},e.isJSDocDeprecatedTag=function(e){return 321===e.kind},e.isJSDocSeeTag=function(e){return 336===e.kind},e.isJSDocEnumTag=function(e){return 329===e.kind},e.isJSDocParameterTag=function(e){return 330===e.kind},e.isJSDocReturnTag=function(e){return 331===e.kind},e.isJSDocThisTag=function(e){return 332===e.kind},e.isJSDocTypeTag=function(e){return 333===e.kind},e.isJSDocTemplateTag=function(e){return 334===e.kind},e.isJSDocTypedefTag=function(e){return 335===e.kind},e.isJSDocUnknownTag=function(e){return 317===e.kind},e.isJSDocPropertyTag=function(e){return 337===e.kind},e.isJSDocImplementsTag=function(e){return 319===e.kind},e.isSyntaxList=function(e){return 338===e.kind}}(s||(s={})),function(e){function r(t,r,n,i){if(e.isComputedPropertyName(n))return e.setTextRange(t.createElementAccessExpression(r,n.expression),i);var a=e.setTextRange(e.isMemberName(n)?t.createPropertyAccessExpression(r,n):t.createElementAccessExpression(r,n),n);return e.getOrCreateEmitNode(a).flags|=64,a}function n(t,r){var n=e.parseNodeFactory.createIdentifier(t||"React");return e.setParent(n,e.getParseTreeNode(r)),n}function i(t,r,a){if(e.isQualifiedName(r)){var o=i(t,r.left,a),s=t.createIdentifier(e.idText(r.right));return s.escapedText=r.right.escapedText,t.createPropertyAccessExpression(o,s)}return n(e.idText(r),a)}function a(e,t,r,a){return t?i(e,t,a):e.createPropertyAccessExpression(n(r,a),"createElement")}function o(t,r){return e.isIdentifier(r)?t.createStringLiteralFromNode(r):e.isComputedPropertyName(r)?e.setParent(e.setTextRange(t.cloneNode(r.expression),r.expression),r.expression.parent):e.setParent(e.setTextRange(t.cloneNode(r),r),r.parent)}function s(t){return e.isStringLiteral(t.expression)&&"use strict"===t.expression.text}function c(e,t){switch(void 0===t&&(t=15),e.kind){case 208:return 0!=(1&t);case 207:case 225:return 0!=(2&t);case 226:return 0!=(4&t);case 340:return 0!=(8&t)}return!1}function u(e,t){for(void 0===t&&(t=15);c(e,t);)e=e.expression;return e}function l(t){return e.setStartsOnNewLine(t,!0)}function d(t){var r=e.getOriginalNode(t,e.isSourceFile),n=r&&r.emitNode;return n&&n.externalHelpersModuleName}function _(t,r,n,i,a){if(n.importHelpers&&e.isEffectiveExternalModule(r,n)){var o=d(r);if(o)return o;var s=e.getEmitModuleKind(n),c=(i||n.esModuleInterop&&a)&&s!==e.ModuleKind.System&&s0)if(i||s.push(t.createNull()),a.length>1)for(var c=0,u=a;c0)if(c.length>1)for(var p=0,f=c;p=e.ModuleKind.ES2015&&u<=e.ModuleKind.ESNext){var l=e.getEmitHelpers(n);if(l){for(var d=[],p=0,f=l;p0?o[n-1]:void 0;return e.Debug.assertEqual(i[n],r),o[n]=t.onEnter(a[n],l,u),i[n]=c(t,r),n}function n(t,r,i,a,o,s,d){e.Debug.assertEqual(i[r],n),e.Debug.assertIsDefined(t.onLeft),i[r]=c(t,n);var _=t.onLeft(a[r].left,o[r],a[r]);return _?(l(r,a,_),u(r,i,a,o,_)):r}function i(t,r,n,a,o,s,u){return e.Debug.assertEqual(n[r],i),e.Debug.assertIsDefined(t.onOperator),n[r]=c(t,i),t.onOperator(a[r].operatorToken,o[r],a[r]),r}function a(t,r,n,i,o,s,d){e.Debug.assertEqual(n[r],a),e.Debug.assertIsDefined(t.onRight),n[r]=c(t,a);var _=t.onRight(i[r].right,o[r],i[r]);return _?(l(r,i,_),u(r,n,i,o,_)):r}function o(t,r,n,i,a,s,u){e.Debug.assertEqual(n[r],o),n[r]=c(t,o);var l=t.onExit(i[r],a[r]);if(r>0){if(r--,t.foldState){var d=n[r]===o?"right":"left";a[r]=t.foldState(a[r],l,d)}}else s.value=l;return r}function s(t,r,n,i,a,o,c){return e.Debug.assertEqual(n[r],s),r}function c(t,c){switch(c){case r:if(t.onLeft)return n;case n:if(t.onOperator)return i;case i:if(t.onRight)return a;case a:return o;case o:case s:return s;default:e.Debug.fail("Invalid state")}}function u(e,t,n,i,a){return t[++e]=r,n[e]=a,i[e]=void 0,e}function l(t,r,n){if(e.Debug.shouldAssert(2))for(;t>=0;)e.Debug.assert(r[t]!==n,"Circular traversal detected."),t--}t.enter=r,t.left=n,t.operator=i,t.right=a,t.exit=o,t.done=s,t.nextState=c}(v||(v={}));var h=function(e,t,r,n,i,a){this.onEnter=e,this.onLeft=t,this.onOperator=r,this.onRight=n,this.onExit=i,this.foldState=a};e.createBinaryExpressionTrampoline=function(t,r,n,i,a,o){var s=new h(t,r,n,i,a,o);return function(t,r){var n={value:void 0},i=[v.enter],a=[t],o=[void 0],c=0;for(;i[c]!==v.done;)c=i[c](s,c,i,a,o,n,r);return e.Debug.assertEqual(c,0),n.value}}}(s||(s={})),function(e){e.setTextRange=function(t,r){return r?e.setTextRangePosEnd(t,r.pos,r.end):t}}(s||(s={})),function(e){var t,r,n,i,a,o,s,c,u;function l(e,t){return t&&e(t)}function d(e,t,r){if(r){if(t)return t(r);for(var n=0,i=r;nt.checkJsDirective.pos)&&(t.checkJsDirective={enabled:"ts-check"===i,end:e.range.end,pos:e.range.pos})}));break;case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:e.Debug.fail("Unhandled pragma kind")}}))}!function(e){e[e.None=0]="None",e[e.Yield=1]="Yield",e[e.Await=2]="Await",e[e.Type=4]="Type",e[e.IgnoreMissingOpenBrace=16]="IgnoreMissingOpenBrace",e[e.JSDoc=32]="JSDoc"}(t||(t={})),function(e){e[e.TryParse=0]="TryParse",e[e.Lookahead=1]="Lookahead",e[e.Reparse=2]="Reparse"}(r||(r={})),e.parseBaseNodeFactory={createBaseSourceFileNode:function(t){return new(s||(s=e.objectAllocator.getSourceFileConstructor()))(t,-1,-1)},createBaseIdentifierNode:function(t){return new(a||(a=e.objectAllocator.getIdentifierConstructor()))(t,-1,-1)},createBasePrivateIdentifierNode:function(t){return new(o||(o=e.objectAllocator.getPrivateIdentifierConstructor()))(t,-1,-1)},createBaseTokenNode:function(t){return new(i||(i=e.objectAllocator.getTokenConstructor()))(t,-1,-1)},createBaseNode:function(t){return new(n||(n=e.objectAllocator.getNodeConstructor()))(t,-1,-1)}},e.parseNodeFactory=e.createNodeFactory(1,e.parseBaseNodeFactory),e.isJSDocLikeText=_,e.forEachChild=p,e.forEachChildRecursively=function(t,r,n){for(var i=f(t),a=[];a.length=0;--c)i.push(o[c]),a.push(s)}else{var u;if(u=r(o,s)){if("skip"===u)continue;return u}if(o.kind>=158)for(var l=0,d=f(o);l=r.pos})),l=u>=0?e.findIndex(a,(function(e){return e.start>=n.pos}),u):-1;u>=0&&e.addRange(S,a,u,l>=0?l:void 0),Ae((function(){var e=O;for(O|=32768,s.setTextPos(n.pos),xe();1!==ve();){var r=s.getStartPos(),a=yt(0,Vn);if(i.push(a),r===s.getStartPos()&&xe(),o>=0){var c=t.statements[o];if(a.end===c.pos)break;a.end>c.pos&&(o=g(t.statements,o+1))}}O=e}),2),c=o>=0?f(t.statements,o):-1};-1!==c;)l();if(o>=0){var d=t.statements[o];e.addRange(i,t.statements,o);var _=e.findIndex(a,(function(e){return e.start>=d.pos}));_>=0&&e.addRange(S,a,_)}return C=r,L.updateSourceFile(t,e.setTextRange(L.createNodeArray(i),t.statements));function p(e){return!(32768&e.flags||!(16777216&e.transformFlags))}function f(e,t){for(var r=t;r115}function we(){return 78===ve()||(124!==ve()||!se())&&((130!==ve()||!le())&&ve()>115)}function Ie(t,r,n){return void 0===n&&(n=!0),ve()===t?(n&&xe(),!0):(r?de(r):de(e.Diagnostics._0_expected,e.tokenToString(t)),!1)}function Oe(t){return ve()===t?(be(),!0):(de(e.Diagnostics._0_expected,e.tokenToString(t)),!1)}function Me(e){return ve()===e&&(xe(),!0)}function Le(e){if(ve()===e)return je()}function Re(e){if(ve()===e)return t=me(),r=ve(),be(),Ue(L.createToken(r),t);var t,r}function Be(t,r,n){return Le(t)||Ve(t,!1,r||e.Diagnostics._0_expected,n||e.tokenToString(t))}function je(){var e=me(),t=ve();return xe(),Ue(L.createToken(t),e)}function Je(){return 26===ve()||(19===ve()||1===ve()||s.hasPrecedingLineBreak())}function Ke(){return Je()?(26===ve()&&xe(),!0):Ie(26)}function ze(t,r,n,i){var a=L.createNodeArray(t,i);return e.setTextRangePosEnd(a,r,null!=n?n:s.getStartPos()),a}function Ue(t,r,n){return e.setTextRangePosEnd(t,r,null!=n?n:s.getStartPos()),O&&(t.flags|=O),B&&(B=!1,t.flags|=65536),t}function Ve(t,r,n,i){r?_e(s.getStartPos(),0,n,i):n&&de(n,i);var a=me();return Ue(78===t?L.createIdentifier("",void 0,void 0):e.isTemplateLiteralKind(t)?L.createTemplateLiteralLikeNode(t,"","",void 0):8===t?L.createNumericLiteral("",void 0):10===t?L.createStringLiteral("",void 0):272===t?L.createMissingDeclaration():L.createToken(t),a)}function qe(e){var t=F.get(e);return void 0===t&&F.set(e,t=e),t}function We(t,r,n){if(t){P++;var i=me(),a=ve(),o=qe(s.getTokenValue());return he(),Ue(L.createIdentifier(o,void 0,a),i)}if(79===ve())return de(n||e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),We(!0);if(0===ve()&&s.tryScan((function(){return 78===s.reScanInvalidIdentifier()})))return We(!0);P++;var c=1===ve(),u=s.isReservedWord(),l=s.getTokenText(),d=u?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return Ve(78,c,r||d,l)}function He(e){return We(Pe(),void 0,e)}function Ge(e,t){return We(we(),e,t)}function Ye(t){return We(e.tokenIsIdentifierOrKeyword(ve()),t)}function Xe(){return e.tokenIsIdentifierOrKeyword(ve())||10===ve()||8===ve()}function $e(e){if(10===ve()||8===ve()){var t=It();return t.text=qe(t.text),t}return e&&22===ve()?function(){var e=me();Ie(22);var t=ie(jr);return Ie(23),Ue(L.createComputedPropertyName(t),e)}():79===ve()?Ze():Ye()}function Qe(){return $e(!0)}function Ze(){var e,t,r=me(),n=L.createPrivateIdentifier((e=s.getTokenText(),void 0===(t=N.get(e))&&N.set(e,t=e),t));return xe(),Ue(n,r)}function et(e){return ve()===e&&Ne(rt)}function tt(){return xe(),!s.hasPrecedingLineBreak()&&at()}function rt(){switch(ve()){case 84:return 91===xe();case 92:return xe(),87===ve()?Fe(ot):149===ve()?Fe(it):nt();case 87:return ot();case 123:return tt();case 134:case 146:return xe(),at();default:return tt()}}function nt(){return 41!==ve()&&126!==ve()&&18!==ve()&&at()}function it(){return xe(),nt()}function at(){return 22===ve()||18===ve()||41===ve()||25===ve()||Xe()}function ot(){return xe(),83===ve()||97===ve()||117===ve()||125===ve()&&Fe(Rn)||129===ve()&&Fe(Bn)}function st(t,r){if(vt(t))return!0;switch(t){case 0:case 1:case 3:return!(26===ve()&&r)&&zn();case 2:return 81===ve()||87===ve();case 4:return Fe(nr);case 5:return Fe(di)||26===ve()&&!r;case 6:return 22===ve()||Xe();case 12:switch(ve()){case 22:case 41:case 25:case 24:return!0;default:return Xe()}case 18:return Xe();case 9:return 22===ve()||25===ve()||Xe();case 7:return 18===ve()?Fe(ct):r?we()&&!_t():Rr()&&!_t();case 8:return Qn();case 10:return 27===ve()||25===ve()||Qn();case 19:return we();case 15:switch(ve()){case 27:case 24:return!0}case 11:return 25===ve()||Br();case 16:return qt(!1);case 17:return qt(!0);case 20:case 21:return 27===ve()||br();case 22:return Ti();case 23:return e.tokenIsIdentifierOrKeyword(ve());case 13:return e.tokenIsIdentifierOrKeyword(ve())||18===ve();case 14:return!0}return e.Debug.fail("Non-exhaustive case in 'isListElement'.")}function ct(){if(e.Debug.assert(18===ve()),19===xe()){var t=xe();return 27===t||18===t||93===t||116===t}return!0}function ut(){return xe(),we()}function lt(){return xe(),e.tokenIsIdentifierOrKeyword(ve())}function dt(){return xe(),e.tokenIsIdentifierOrKeywordOrGreaterThan(ve())}function _t(){return(116===ve()||93===ve())&&Fe(pt)}function pt(){return xe(),Br()}function ft(){return xe(),br()}function gt(e){if(1===ve())return!0;switch(e){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:return 19===ve();case 3:return 19===ve()||81===ve()||87===ve();case 7:return 18===ve()||93===ve()||116===ve();case 8:return function(){if(Je())return!0;if(Yr(ve()))return!0;if(38===ve())return!0;return!1}();case 19:return 31===ve()||20===ve()||18===ve()||93===ve()||116===ve();case 11:return 21===ve()||26===ve();case 15:case 21:case 10:return 23===ve();case 17:case 16:case 18:return 21===ve()||23===ve();case 20:return 27!==ve();case 22:return 18===ve()||19===ve();case 13:return 31===ve()||43===ve();case 14:return 29===ve()&&Fe(Pi);default:return!1}}function mt(e,t){var r=w;w|=1<=0)}function bt(t){return 6===t?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function St(){var e=ze([],me());return e.isMissingList=!0,e}function Et(e,t,r,n){if(Ie(r)){var i=xt(e,t);return Ie(n),i}return St()}function Tt(e,t){for(var r=me(),n=e?Ye(t):Ge(t),i=me();Me(24);){if(29===ve()){n.jsdocDotPos=i;break}i=me(),n=Ue(L.createQualifiedName(n,kt(e,!1)),r)}return n}function Ct(e,t){return Ue(L.createQualifiedName(e,t),e.pos)}function kt(t,r){if(s.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(ve())&&Fe(Ln))return Ve(78,!0,e.Diagnostics.Identifier_expected);if(79===ve()){var n=Ze();return r?n:Ve(78,!0,e.Diagnostics.Identifier_expected)}return t?Ye():Ge()}function At(e){var t=me();return Ue(L.createTemplateExpression(Ot(e),function(e){var t,r=me(),n=[];do{t=wt(e),n.push(t)}while(16===t.literal.kind);return ze(n,r)}(e)),t)}function Ft(){var e=me();return Ue(L.createTemplateLiteralType(Ot(!1),function(){var e,t=me(),r=[];do{e=Nt(),r.push(e)}while(16===e.literal.kind);return ze(r,t)}()),e)}function Nt(){var e=me();return Ue(L.createTemplateLiteralTypeSpan(Or(),Pt(!1)),e)}function Pt(t){return 19===ve()?(function(e){k=s.reScanTemplateToken(e)}(t),r=Mt(ve()),e.Debug.assert(16===r.kind||17===r.kind,"Template fragment has wrong token kind"),r):Be(17,e.Diagnostics._0_expected,e.tokenToString(19));var r}function wt(e){var t=me();return Ue(L.createTemplateSpan(ie(jr),Pt(e)),t)}function It(){return Mt(ve())}function Ot(t){t&&Ee();var r=Mt(ve());return e.Debug.assert(15===r.kind,"Template head has wrong token kind"),r}function Mt(t){var r=me(),n=e.isTemplateLiteralKind(t)?L.createTemplateLiteralLikeNode(t,s.getTokenValue(),function(e){var t=14===e||17===e,r=s.getTokenText();return r.substring(1,r.length-(s.isUnterminated()?0:t?1:2))}(t),2048&s.getTokenFlags()):8===t?L.createNumericLiteral(s.getTokenValue(),s.getNumericLiteralFlags()):10===t?L.createStringLiteral(s.getTokenValue(),void 0,s.hasExtendedUnicodeEscape()):e.isLiteralKind(t)?L.createLiteralLikeNode(t,s.getTokenValue()):e.Debug.fail();return s.hasExtendedUnicodeEscape()&&(n.hasExtendedUnicodeEscape=!0),s.isUnterminated()&&(n.isUnterminated=!0),xe(),Ue(n,r)}function Lt(){return Tt(!0,e.Diagnostics.Type_expected)}function Rt(){if(!s.hasPrecedingLineBreak()&&29===Te())return Et(20,Or,29,31)}function Bt(){var e=me();return Ue(L.createTypeReferenceNode(Lt(),Rt()),e)}function jt(t){switch(t.kind){case 174:return e.nodeIsMissing(t.typeName);case 175:case 176:var r=t,n=r.parameters,i=r.type;return!!n.isMissingList||jt(i);case 187:return jt(t.type);default:return!1}}function Jt(){var e=me();return xe(),Ue(L.createThisTypeNode(),e)}function Kt(){var e,t=me();return 107!==ve()&&102!==ve()||(e=Ye(),Ie(58)),Ue(L.createParameterDeclaration(void 0,void 0,void 0,e,void 0,zt(),void 0),t)}function zt(){s.setInJSDocType(!0);var e=me();if(Me(139)){var t=L.createJSDocNamepathType(void 0);e:for(;;)switch(ve()){case 19:case 1:case 27:case 5:break e;default:be()}return s.setInJSDocType(!1),Ue(t,e)}var r=Me(25),n=wr();return s.setInJSDocType(!1),r&&(n=Ue(L.createJSDocVariadicType(n),e)),62===ve()?(xe(),Ue(L.createJSDocOptionalType(n),e)):n}function Ut(){var e,t,r=me(),n=Ge();Me(93)&&(br()||!Br()?e=Or():t=Zr());var i=Me(62)?Or():void 0,a=L.createTypeParameterDeclaration(n,e,i);return a.expression=t,Ue(a,r)}function Vt(){if(29===ve())return Et(19,Ut,29,31)}function qt(t){return 25===ve()||Qn()||e.isModifierKind(ve())||59===ve()||br(!t)}function Wt(){return Gt(!0)}function Ht(){return Gt(!1)}function Gt(t){var r=me(),n=ye(),i=t?ae(fi):fi();if(107===ve()){var a=L.createParameterDeclaration(i,void 0,void 0,We(!0),void 0,Lr(),void 0);return i&&fe(i[0],e.Diagnostics.Decorators_may_not_be_applied_to_this_parameters),U(Ue(a,r),n)}var o=R;R=!1;var s=mi(),c=U(Ue(L.createParameterDeclaration(i,s,Le(25),function(t){var r=Zn(e.Diagnostics.Private_identifiers_cannot_be_used_as_parameters);return 0===e.getFullWidth(r)&&!e.some(t)&&e.isModifierKind(ve())&&xe(),r}(s),Le(57),Lr(),Jr()),r),n);return R=o,c}function Yt(t,r){if(function(t,r){if(38===t)return Ie(t),!0;if(Me(58))return!0;if(r&&38===ve())return de(e.Diagnostics._0_expected,e.tokenToString(58)),xe(),!0;return!1}(t,r))return wr()}function Xt(e){var t=se(),r=le();Z(!!(1&e)),te(!!(2&e));var n=32&e?xt(17,Kt):xt(16,r?Wt:Ht);return Z(t),te(r),n}function $t(e){if(!Ie(20))return St();var t=Xt(e);return Ie(21),t}function Qt(){Me(27)||Ke()}function Zt(e){var t=me(),r=ye();171===e&&Ie(102);var n=Vt(),i=$t(4),a=Yt(58,!0);return Qt(),U(Ue(170===e?L.createCallSignature(n,i,a):L.createConstructSignature(n,i,a),t),r)}function er(){return 22===ve()&&Fe(tr)}function tr(){if(xe(),25===ve()||23===ve())return!0;if(e.isModifierKind(ve())){if(xe(),we())return!0}else{if(!we())return!1;xe()}return 58===ve()||27===ve()||57===ve()&&(xe(),58===ve()||27===ve()||23===ve())}function rr(e,t,r,n){var i=Et(16,Ht,22,23),a=Lr();return Qt(),U(Ue(L.createIndexSignature(r,n,i,a),e),t)}function nr(){if(20===ve()||29===ve()||134===ve()||146===ve())return!0;for(var t=!1;e.isModifierKind(ve());)t=!0,xe();return 22===ve()||(Xe()&&(t=!0,xe()),!!t&&(20===ve()||29===ve()||57===ve()||58===ve()||27===ve()||Je()))}function ir(){if(20===ve()||29===ve())return Zt(170);if(102===ve()&&Fe(ar))return Zt(171);var e=me(),t=ye(),r=mi();return et(134)?li(e,t,void 0,r,168):et(146)?li(e,t,void 0,r,169):er()?rr(e,t,void 0,r):function(e,t,r){var n,i=Qe(),a=Le(57);if(20===ve()||29===ve()){var o=Vt(),s=$t(4),c=Yt(58,!0);n=L.createMethodSignature(r,i,a,o,s,c)}else c=Lr(),n=L.createPropertySignature(r,i,a,c),62===ve()&&(n.initializer=Jr());return Qt(),U(Ue(n,e),t)}(e,t,r)}function ar(){return xe(),20===ve()||29===ve()}function or(){return 24===xe()}function sr(){switch(xe()){case 20:case 29:case 24:return!0}return!1}function cr(){var e;return Ie(18)?(e=mt(4,ir),Ie(19)):e=St(),e}function ur(){return xe(),39===ve()||40===ve()?142===xe():(142===ve()&&xe(),22===ve()&&ut()&&100===xe())}function lr(){var e,t=me();Ie(18),142!==ve()&&39!==ve()&&40!==ve()||142!==(e=je()).kind&&Ie(142),Ie(22);var r,n=function(){var e=me(),t=Ye();Ie(100);var r=Or();return Ue(L.createTypeParameterDeclaration(t,r,void 0),e)}(),i=Me(126)?Or():void 0;Ie(23),57!==ve()&&39!==ve()&&40!==ve()||57!==(r=je()).kind&&Ie(57);var a=Lr();return Ke(),Ie(19),Ue(L.createMappedTypeNode(e,n,i,r,a),t)}function dr(){var t=me();if(Me(25))return Ue(L.createRestTypeNode(Or()),t);var r=Or();if(e.isJSDocNullableType(r)&&r.pos===r.type.pos){var n=L.createOptionalTypeNode(r.type);return e.setTextRange(n,r),n.flags=r.flags,n}return r}function _r(){return 58===xe()||57===ve()&&58===xe()}function pr(){return 25===ve()?e.tokenIsIdentifierOrKeyword(xe())&&_r():e.tokenIsIdentifierOrKeyword(ve())&&_r()}function fr(){if(Fe(pr)){var e=me(),t=ye(),r=Le(25),n=Ye(),i=Le(57);Ie(58);var a=dr();return U(Ue(L.createNamedTupleMember(r,n,i,a),e),t)}return dr()}function gr(){var e=me(),t=ye(),r=function(){var e;if(125===ve()){var t=me();xe(),e=ze([Ue(L.createToken(125),t)],t)}return e}(),n=Me(102),i=Vt(),a=$t(4),o=Yt(38,!1),s=n?L.createConstructorTypeNode(r,i,a,o):L.createFunctionTypeNode(i,a,o);return n||(s.modifiers=r),U(Ue(s,e),t)}function mr(){var e=je();return 24===ve()?void 0:e}function yr(e){var t=me();e&&xe();var r=109===ve()||94===ve()||103===ve()?je():Mt(ve());return e&&(r=Ue(L.createPrefixUnaryExpression(40,r),t)),Ue(L.createLiteralTypeNode(r),t)}function vr(){return xe(),99===ve()}function hr(){f|=1048576;var e=me(),t=Me(111);Ie(99),Ie(20);var r=Or();Ie(21);var n=Me(24)?Lt():void 0,i=Rt();return Ue(L.createImportTypeNode(r,n,i,t),e)}function Dr(){return xe(),8===ve()||9===ve()}function xr(){switch(ve()){case 128:case 152:case 147:case 144:case 155:case 148:case 131:case 150:case 141:case 145:return Ne(mr)||Bt();case 65:s.reScanAsteriskEqualsToken();case 41:return r=me(),xe(),Ue(L.createJSDocAllType(),r);case 60:s.reScanQuestionToken();case 57:return function(){var e=me();return xe(),27===ve()||19===ve()||21===ve()||31===ve()||62===ve()||51===ve()?Ue(L.createJSDocUnknownType(),e):Ue(L.createJSDocNullableType(Or()),e)}();case 97:return function(){var e=me(),t=ye();if(Fe(Ni)){xe();var r=$t(36),n=Yt(58,!1);return U(Ue(L.createJSDocFunctionType(r,n),e),t)}return Ue(L.createTypeReferenceNode(Ye(),void 0),e)}();case 53:return function(){var e=me();return xe(),Ue(L.createJSDocNonNullableType(xr()),e)}();case 14:case 10:case 8:case 9:case 109:case 94:case 103:return yr();case 40:return Fe(Dr)?yr(!0):Bt();case 113:return je();case 107:var e=Jt();return 137!==ve()||s.hasPrecedingLineBreak()?e:(t=e,xe(),Ue(L.createTypePredicateNode(void 0,t,Or()),t.pos));case 111:return Fe(vr)?hr():function(){var e=me();return Ie(111),Ue(L.createTypeQueryNode(Tt(!0)),e)}();case 18:return Fe(ur)?lr():function(){var e=me();return Ue(L.createTypeLiteralNode(cr()),e)}();case 22:return function(){var e=me();return Ue(L.createTupleTypeNode(Et(21,fr,22,23)),e)}();case 20:return function(){var e=me();Ie(20);var t=Or();return Ie(21),Ue(L.createParenthesizedType(t),e)}();case 99:return hr();case 127:return Fe(Ln)?function(){var e=me(),t=Be(127),r=107===ve()?Jt():Ge(),n=Me(137)?Or():void 0;return Ue(L.createTypePredicateNode(t,r,n),e)}():Bt();case 15:return Ft();default:return Bt()}var t,r}function br(e){switch(ve()){case 128:case 152:case 147:case 144:case 155:case 131:case 142:case 148:case 151:case 113:case 150:case 103:case 107:case 111:case 141:case 18:case 22:case 29:case 51:case 50:case 102:case 10:case 8:case 9:case 109:case 94:case 145:case 41:case 57:case 53:case 25:case 135:case 99:case 127:case 14:case 15:return!0;case 97:return!e;case 40:return!e&&Fe(Dr);case 20:return!e&&Fe(Sr);default:return we()}}function Sr(){return xe(),21===ve()||qt(!1)||br()}function Er(){var e=me();return Ie(135),Ue(L.createInferTypeNode(function(){var e=me();return Ue(L.createTypeParameterDeclaration(Ge(),void 0,void 0),e)}()),e)}function Tr(){var e=ve();switch(e){case 138:case 151:case 142:return function(e){var t=me();return Ie(e),Ue(L.createTypeOperatorNode(e,Tr()),t)}(e);case 135:return Er()}return function(){for(var e=me(),t=xr();!s.hasPrecedingLineBreak();)switch(ve()){case 53:xe(),t=Ue(L.createJSDocNonNullableType(t),e);break;case 57:if(Fe(ft))return t;xe(),t=Ue(L.createJSDocNullableType(t),e);break;case 22:if(Ie(22),br()){var r=Or();Ie(23),t=Ue(L.createIndexedAccessTypeNode(t,r),e)}else Ie(23),t=Ue(L.createArrayTypeNode(t),e);break;default:return t}return t}()}function Cr(t){if(Nr()){var r=gr();return fe(r,e.isFunctionTypeNode(r)?t?e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:t?e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type),r}}function kr(e,t,r){var n=me(),i=51===e,a=Me(e),o=a&&Cr(i)||t();if(ve()===e||a){for(var s=[o];Me(e);)s.push(Cr(i)||t());o=Ue(r(ze(s,n)),n)}return o}function Ar(){return kr(50,Tr,L.createIntersectionTypeNode)}function Fr(){return xe(),102===ve()}function Nr(){return 29===ve()||(!(20!==ve()||!Fe(Pr))||(102===ve()||125===ve()&&Fe(Fr)))}function Pr(){if(xe(),21===ve()||25===ve())return!0;if(function(){if(e.isModifierKind(ve())&&mi(),we()||107===ve())return xe(),!0;if(22===ve()||18===ve()){var t=S.length;return Zn(),t===S.length}return!1}()){if(58===ve()||27===ve()||57===ve()||62===ve())return!0;if(21===ve()&&(xe(),38===ve()))return!0}return!1}function wr(){var e=me(),t=we()&&Ne(Ir),r=Or();return t?Ue(L.createTypePredicateNode(void 0,t,r),e):r}function Ir(){var e=Ge();if(137===ve()&&!s.hasPrecedingLineBreak())return xe(),e}function Or(){return re(40960,Mr)}function Mr(e){if(Nr())return gr();var t=me(),r=kr(51,Ar,L.createUnionTypeNode);if(!e&&!s.hasPrecedingLineBreak()&&Me(93)){var n=Mr(!0);Ie(57);var i=Mr();Ie(58);var a=Mr();return Ue(L.createConditionalTypeNode(r,n,i,a),t)}return r}function Lr(){return Me(58)?Or():void 0}function Rr(){switch(ve()){case 107:case 105:case 103:case 109:case 94:case 8:case 9:case 10:case 14:case 15:case 20:case 22:case 18:case 97:case 83:case 102:case 43:case 67:case 78:return!0;case 99:return Fe(sr);default:return we()}}function Br(){if(Rr())return!0;switch(ve()){case 39:case 40:case 54:case 53:case 88:case 111:case 113:case 45:case 46:case 29:case 130:case 124:case 79:return!0;default:return!!function(){if(ce()&&100===ve())return!1;return e.getBinaryOperatorPrecedence(ve())>0}()||we()}}function jr(){var e=ue();e&&ee(!1);for(var t,r=me(),n=Kr();t=Le(27);)n=$r(n,t,Kr(),r);return e&&ee(!0),n}function Jr(){return Me(62)?Kr():void 0}function Kr(){if(function(){if(124===ve())return!!se()||Fe(jn);return!1}())return function(){var e=me();return xe(),s.hasPrecedingLineBreak()||41!==ve()&&!Br()?Ue(L.createYieldExpression(void 0,void 0),e):Ue(L.createYieldExpression(Le(41),Kr()),e)}();var t=function(){var e=function(){if(20===ve()||29===ve()||129===ve())return Fe(Ur);if(38===ve())return 1;return 0}();if(0===e)return;return 1===e?Wr(!0):Ne(Vr)}()||function(){if(129===ve()&&1===Fe(qr)){var e=me(),t=yi();return zr(e,Gr(0),t)}return}();if(t)return t;var r=me(),n=Gr(0);return 78===n.kind&&38===ve()?zr(r,n,void 0):e.isLeftHandSideExpression(n)&&e.isAssignmentOperator(Se())?$r(n,je(),Kr(),r):function(t,r){var n,i=Le(57);if(!i)return t;return Ue(L.createConditionalExpression(t,i,re(c,Kr),n=Be(58),e.nodeIsPresent(n)?Kr():Ve(78,!1,e.Diagnostics._0_expected,e.tokenToString(58))),r)}(n,r)}function zr(t,r,n){e.Debug.assert(38===ve(),"parseSimpleArrowFunctionExpression should only have been called if we had a =>");var i=L.createParameterDeclaration(void 0,void 0,void 0,r,void 0,void 0,void 0);Ue(i,r.pos);var a=ze([i],i.pos,i.end),o=Be(38),s=Hr(!!n);return G(Ue(L.createArrowFunction(n,void 0,a,void 0,o,s),t))}function Ur(){if(129===ve()){if(xe(),s.hasPrecedingLineBreak())return 0;if(20!==ve()&&29!==ve())return 0}var t=ve(),r=xe();if(20===t){if(21===r)switch(xe()){case 38:case 58:case 18:return 1;default:return 0}if(22===r||18===r)return 2;if(25===r)return 1;if(e.isModifierKind(r)&&129!==r&&Fe(ut))return 1;if(!we()&&107!==r)return 0;switch(xe()){case 58:return 1;case 57:return xe(),58===ve()||27===ve()||62===ve()||21===ve()?1:0;case 27:case 62:case 21:return 2}return 0}return e.Debug.assert(29===t),we()?1===b?Fe((function(){var e=xe();if(93===e)switch(xe()){case 62:case 31:return!1;default:return!0}else if(27===e)return!0;return!1}))?1:0:2:0}function Vr(){var t=s.getTokenPos();if(!(null==I?void 0:I.has(t))){var r=Wr(!1);return r||(I||(I=new e.Set)).add(t),r}}function qr(){if(129===ve()){if(xe(),s.hasPrecedingLineBreak()||38===ve())return 0;var e=Gr(0);if(!s.hasPrecedingLineBreak()&&78===e.kind&&38===ve())return 1}return 0}function Wr(t){var r,n=me(),i=ye(),a=yi(),o=e.some(a,e.isAsyncModifier)?2:0,s=Vt();if(Ie(20)){if(r=Xt(o),!Ie(21)&&!t)return}else{if(!t)return;r=St()}var c=Yt(58,!1);if(!c||t||!jt(c)){var u=c&&e.isJSDocFunctionType(c);if(t||38===ve()||!u&&18===ve()){var l=ve(),d=Be(38),_=38===l||18===l?Hr(e.some(a,e.isAsyncModifier)):Ge();return U(Ue(L.createArrowFunction(a,s,r,c,d,_),n),i)}}}function Hr(e){if(18===ve())return Nn(e?2:0);if(26!==ve()&&97!==ve()&&83!==ve()&&zn()&&(18===ve()||97===ve()||83===ve()||59===ve()||!Br()))return Nn(16|(e?2:0));var t=R;R=!1;var r=e?ae(Kr):re(32768,Kr);return R=t,r}function Gr(e){var t=me();return Xr(e,Zr(),t)}function Yr(e){return 100===e||157===e}function Xr(t,r,n){for(;;){Se();var i=e.getBinaryOperatorPrecedence(ve());if(!(42===ve()?i>=t:i>t))break;if(100===ve()&&ce())break;if(126===ve()){if(s.hasPrecedingLineBreak())break;xe(),a=r,o=Or(),r=Ue(L.createAsExpression(a,o),a.pos)}else r=$r(r,je(),Gr(i),n)}var a,o;return r}function $r(e,t,r,n){return Ue(L.createBinaryExpression(e,t,r),n)}function Qr(){var e=me();return Ue(L.createPrefixUnaryExpression(ve(),De(en)),e)}function Zr(){if(function(){switch(ve()){case 39:case 40:case 54:case 53:case 88:case 111:case 113:case 130:return!1;case 29:if(1!==b)return!1;default:return!0}}()){var t=me(),r=tn();return 42===ve()?Xr(e.getBinaryOperatorPrecedence(ve()),r,t):r}var n=ve(),i=en();if(42===ve()){t=e.skipTrivia(h,i.pos);var a=i.end;207===i.kind?pe(t,a,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):pe(t,a,e.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,e.tokenToString(n))}return i}function en(){switch(ve()){case 39:case 40:case 54:case 53:return Qr();case 88:return e=me(),Ue(L.createDeleteExpression(De(en)),e);case 111:return function(){var e=me();return Ue(L.createTypeOfExpression(De(en)),e)}();case 113:return function(){var e=me();return Ue(L.createVoidExpression(De(en)),e)}();case 29:return function(){var e=me();Ie(29);var t=Or();Ie(31);var r=en();return Ue(L.createTypeAssertion(t,r),e)}();case 130:if(130===ve()&&(le()||Fe(jn)))return function(){var e=me();return Ue(L.createAwaitExpression(De(en)),e)}();default:return tn()}var e}function tn(){if(45===ve()||46===ve()){var t=me();return Ue(L.createPrefixUnaryExpression(ve(),De(rn)),t)}if(1===b&&29===ve()&&Fe(dt))return an(!0);var r=rn();if(e.Debug.assert(e.isLeftHandSideExpression(r)),(45===ve()||46===ve())&&!s.hasPrecedingLineBreak()){var n=ve();return xe(),Ue(L.createPostfixUnaryExpression(r,n),r.pos)}return r}function rn(){var t,r=me();return 99===ve()?Fe(ar)?(f|=1048576,t=je()):Fe(or)?(xe(),xe(),t=Ue(L.createMetaProperty(99,Ye()),r),f|=2097152):t=nn():t=105===ve()?function(){var t=me(),r=je();if(29===ve()){var n=me();void 0!==Ne(Dn)&&pe(n,me(),e.Diagnostics.super_may_not_use_type_arguments)}if(20===ve()||24===ve()||22===ve())return r;return Be(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),Ue(L.createPropertyAccessExpression(r,kt(!0,!0)),t)}():nn(),vn(r,t)}function nn(){return gn(me(),xn(),!0)}function an(t,r){var n,i=me(),a=function(e){var t=me();if(Ie(29),31===ve())return ke(),Ue(L.createJsxOpeningFragment(),t);var r,n=cn(),i=0==(131072&O)?Ei():void 0,a=function(){var e=me();return Ue(L.createJsxAttributes(mt(13,ln)),e)}();31===ve()?(ke(),r=L.createJsxOpeningElement(n,i,a)):(Ie(43),e?Ie(31):(Ie(31,void 0,!1),ke()),r=L.createJsxSelfClosingElement(n,i,a));return Ue(r,t)}(t);if(276===a.kind){var o=sn(a),s=function(e){var t=me();Ie(30);var r=cn();e?Ie(31):(Ie(31,void 0,!1),ke());return Ue(L.createJsxClosingElement(r),t)}(t);T(a.tagName,s.tagName)||fe(s,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(h,a.tagName)),n=Ue(L.createJsxElement(a,o,s),i)}else 279===a.kind?n=Ue(L.createJsxFragment(a,sn(a),function(t){var r=me();Ie(30),e.tokenIsIdentifierOrKeyword(ve())&&fe(cn(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment);t?Ie(31):(Ie(31,void 0,!1),ke());return Ue(L.createJsxJsxClosingFragment(),r)}(t)),i):(e.Debug.assert(275===a.kind),n=a);if(t&&29===ve()){var c=void 0===r?n.pos:r,u=Ne((function(){return an(!0,c)}));if(u){var l=Ve(27,!1);return e.setTextRangePosWidth(l,u.pos,0),pe(e.skipTrivia(h,c),u.end,e.Diagnostics.JSX_expressions_must_have_one_parent_element),Ue(L.createBinaryExpression(n,l,u),i)}}return n}function on(t,r){switch(r){case 1:if(e.isJsxOpeningFragment(t))fe(t,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);else{var n=t.tagName;pe(e.skipTrivia(h,n.pos),n.end,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(h,t.tagName))}return;case 30:case 7:return;case 11:case 12:return function(){var e=me(),t=L.createJsxText(s.getTokenValue(),12===k);return k=s.scanJsxToken(),Ue(t,e)}();case 18:return un(!1);case 29:return an(!1);default:return e.Debug.assertNever(r)}}function sn(e){var t=[],r=me(),n=w;for(w|=16384;;){var i=on(e,k=s.reScanJsxToken());if(!i)break;t.push(i)}return w=n,ze(t,r)}function cn(){var e=me();Ce();for(var t=107===ve()?je():Ye();Me(24);)t=Ue(L.createPropertyAccessExpression(t,kt(!0,!1)),e);return t}function un(e){var t,r,n=me();if(Ie(18))return 19!==ve()&&(t=Le(25),r=jr()),e?Ie(19):Ie(19,void 0,!1)&&ke(),Ue(L.createJsxExpression(t,r),n)}function ln(){if(18===ve())return function(){var e=me();Ie(18),Ie(25);var t=jr();return Ie(19),Ue(L.createJsxSpreadAttribute(t),e)}();Ce();var e=me();return Ue(L.createJsxAttribute(Ye(),62!==ve()?void 0:10===(k=s.scanJsxAttributeValue())?It():un(!0)),e)}function dn(){return xe(),e.tokenIsIdentifierOrKeyword(ve())||22===ve()||mn()}function _n(t){if(32&t.flags)return!0;if(e.isNonNullExpression(t)){for(var r=t.expression;e.isNonNullExpression(r)&&!(32&r.flags);)r=r.expression;if(32&r.flags){for(;e.isNonNullExpression(t);)t.flags|=32,t=t.expression;return!0}}return!1}function pn(t,r,n){var i=kt(!0,!0),a=n||_n(r),o=a?L.createPropertyAccessChain(r,n,i):L.createPropertyAccessExpression(r,i);return a&&e.isPrivateIdentifier(o.name)&&fe(o.name,e.Diagnostics.An_optional_chain_cannot_contain_private_identifiers),Ue(o,t)}function fn(t,r,n){var i;if(23===ve())i=Ve(78,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var a=ie(jr);e.isStringOrNumericLiteralLike(a)&&(a.text=qe(a.text)),i=a}return Ie(23),Ue(n||_n(r)?L.createElementAccessChain(r,n,i):L.createElementAccessExpression(r,i),t)}function gn(t,r,n){for(;;){var i=void 0,a=!1;if(n&&28===ve()&&Fe(dn)?(i=Be(28),a=e.tokenIsIdentifierOrKeyword(ve())):a=Me(24),a)r=pn(t,r,i);else if(i||53!==ve()||s.hasPrecedingLineBreak())if(!i&&ue()||!Me(22)){if(!mn())return r;r=yn(t,r,i,void 0)}else r=fn(t,r,i);else xe(),r=Ue(L.createNonNullExpression(r),t)}}function mn(){return 14===ve()||15===ve()}function yn(e,t,r,n){var i=L.createTaggedTemplateExpression(t,n,14===ve()?(Ee(),It()):At(!0));return(r||32&t.flags)&&(i.flags|=32),i.questionDotToken=r,Ue(i,e)}function vn(t,r){for(;;){r=gn(t,r,!0);var n=Le(28);if(0!=(131072&O)||29!==ve()&&47!==ve()){if(20===ve()){a=hn();r=Ue(n||_n(r)?L.createCallChain(r,n,void 0,a):L.createCallExpression(r,void 0,a),t);continue}}else{var i=Ne(Dn);if(i){if(mn()){r=yn(t,r,n,i);continue}var a=hn();r=Ue(n||_n(r)?L.createCallChain(r,n,i,a):L.createCallExpression(r,i,a),t);continue}}if(n){var o=Ve(78,!1,e.Diagnostics.Identifier_expected);r=Ue(L.createPropertyAccessChain(r,n,o),t)}break}return r}function hn(){Ie(20);var e=xt(11,Sn);return Ie(21),e}function Dn(){if(0==(131072&O)&&29===Te()){xe();var e=xt(20,Or);if(Ie(31))return e&&function(){switch(ve()){case 20:case 14:case 15:case 24:case 21:case 23:case 58:case 26:case 57:case 34:case 36:case 35:case 37:case 55:case 56:case 60:case 52:case 50:case 51:case 19:case 1:return!0;case 27:case 18:default:return!1}}()?e:void 0}}function xn(){switch(ve()){case 8:case 9:case 10:case 14:return It();case 107:case 105:case 103:case 109:case 94:return je();case 20:return function(){var e=me(),t=ye();Ie(20);var r=ie(jr);return Ie(21),U(Ue(L.createParenthesizedExpression(r),e),t)}();case 22:return En();case 18:return Cn();case 129:if(!Fe(Bn))break;return kn();case 83:return Di(me(),ye(),void 0,void 0,222);case 97:return kn();case 102:return function(){var t=me();if(Ie(102),Me(24)){var r=Ye();return Ue(L.createMetaProperty(102,r),t)}var n,i,a=me(),o=xn();for(;;){o=gn(a,o,!1),n=Ne(Dn),mn()&&(e.Debug.assert(!!n,"Expected a type argument list; all plain tagged template starts should be consumed in 'parseMemberExpressionRest'"),o=yn(a,o,void 0,n),n=void 0);break}20===ve()?i=hn():n&&pe(t,s.getStartPos(),e.Diagnostics.A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list);return Ue(L.createNewExpression(o,n,i),t)}();case 43:case 67:if(13===(k=s.reScanSlashToken()))return It();break;case 15:return At(!1)}return Ge(e.Diagnostics.Expression_expected)}function bn(){return 25===ve()?function(){var e=me();Ie(25);var t=Kr();return Ue(L.createSpreadElement(t),e)}():27===ve()?Ue(L.createOmittedExpression(),me()):Kr()}function Sn(){return re(c,bn)}function En(){var e=me();Ie(22);var t=s.hasPrecedingLineBreak(),r=xt(15,bn);return Ie(23),Ue(L.createArrayLiteralExpression(r,t),e)}function Tn(){var e=me(),t=ye();if(Le(25)){var r=Kr();return U(Ue(L.createSpreadAssignment(r),e),t)}var n=fi(),i=mi();if(et(134))return li(e,t,n,i,168);if(et(146))return li(e,t,n,i,169);var a,o=Le(41),s=we(),c=Qe(),u=Le(57),l=Le(53);if(o||20===ve()||29===ve())return si(e,t,n,i,o,c,u,l);if(s&&58!==ve()){var d=Le(62),_=d?ie(Kr):void 0;(a=L.createShorthandPropertyAssignment(c,_)).equalsToken=d}else{Ie(58);var p=ie(Kr);a=L.createPropertyAssignment(c,p)}return a.decorators=n,a.modifiers=i,a.questionToken=u,a.exclamationToken=l,U(Ue(a,e),t)}function Cn(){var t=me(),r=s.getTokenPos();Ie(18);var n=s.hasPrecedingLineBreak(),i=xt(12,Tn,!0);if(!Ie(19)){var a=e.lastOrUndefined(S);a&&a.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(a,e.createDetachedDiagnostic(d,r,1,e.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here))}return Ue(L.createObjectLiteralExpression(i,n),t)}function kn(){var t=ue();t&&ee(!1);var r=me(),n=ye(),i=mi();Ie(97);var a=Le(41),o=a?1:0,s=e.some(i,e.isAsyncModifier)?2:0,c=o&&s?ne(40960,An):o?function(e){return ne(8192,e)}(An):s?ae(An):An(),u=Vt(),l=$t(o|s),d=Yt(58,!1),_=Nn(o|s);return t&&ee(!0),U(Ue(L.createFunctionExpression(i,a,c,u,l,d,_),r),n)}function An(){return Pe()?He():void 0}function Fn(t,r){var n=me(),i=ye(),a=s.getTokenPos();if(Ie(18,r)||t){var o=s.hasPrecedingLineBreak(),c=mt(1,Vn);if(!Ie(19)){var u=e.lastOrUndefined(S);u&&u.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(u,e.createDetachedDiagnostic(d,a,1,e.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here))}var l=U(Ue(L.createBlock(c,o),n),i);return 62===ve()&&(de(e.Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses),xe()),l}c=St();return U(Ue(L.createBlock(c,void 0),n),i)}function Nn(e,t){var r=se();Z(!!(1&e));var n=le();te(!!(2&e));var i=R;R=!1;var a=ue();a&&ee(!1);var o=Fn(!!(16&e),t);return a&&ee(!0),R=i,Z(r),te(n),o}function Pn(){var e=me(),t=ye();Ie(96);var r,n,i=Le(130);if(Ie(20),26!==ve()&&(r=112===ve()||118===ve()||84===ve()?ri(!0):ne(4096,jr)),i?Ie(157):Me(157)){var a=ie(Kr);Ie(21),n=L.createForOfStatement(i,r,a,Vn())}else if(Me(100)){a=ie(jr);Ie(21),n=L.createForInStatement(r,a,Vn())}else{Ie(26);var o=26!==ve()&&21!==ve()?ie(jr):void 0;Ie(26);var s=21!==ve()?ie(jr):void 0;Ie(21),n=L.createForStatement(r,o,s,Vn())}return U(Ue(n,e),t)}function wn(e){var t=me(),r=ye();Ie(242===e?80:85);var n=Je()?void 0:Ge();return Ke(),U(Ue(242===e?L.createBreakStatement(n):L.createContinueStatement(n),t),r)}function In(){return 81===ve()?function(){var e=me();Ie(81);var t=ie(jr);Ie(58);var r=mt(3,Vn);return Ue(L.createCaseClause(t,r),e)}():function(){var e=me();Ie(87),Ie(58);var t=mt(3,Vn);return Ue(L.createDefaultClause(t),e)}()}function On(){var e=me(),t=ye();Ie(106),Ie(20);var r=ie(jr);Ie(21);var n=function(){var e=me();Ie(18);var t=mt(2,In);return Ie(19),Ue(L.createCaseBlock(t),e)}();return U(Ue(L.createSwitchStatement(r,n),e),t)}function Mn(){var e=me(),t=ye();Ie(110);var r,n=Fn(!1),i=82===ve()?function(){var e,t=me();Ie(82),Me(20)?(e=ti(),Ie(21)):e=void 0;var r=Fn(!1);return Ue(L.createCatchClause(e,r),t)}():void 0;return i&&95!==ve()||(Ie(95),r=Fn(!1)),U(Ue(L.createTryStatement(n,i,r),e),t)}function Ln(){return xe(),e.tokenIsIdentifierOrKeyword(ve())&&!s.hasPrecedingLineBreak()}function Rn(){return xe(),83===ve()&&!s.hasPrecedingLineBreak()}function Bn(){return xe(),97===ve()&&!s.hasPrecedingLineBreak()}function jn(){return xe(),(e.tokenIsIdentifierOrKeyword(ve())||8===ve()||9===ve()||10===ve())&&!s.hasPrecedingLineBreak()}function Jn(){for(;;)switch(ve()){case 112:case 118:case 84:case 97:case 83:case 91:return!0;case 117:case 149:return xe(),!s.hasPrecedingLineBreak()&&we();case 139:case 140:return Gn();case 125:case 129:case 133:case 120:case 121:case 122:case 142:if(xe(),s.hasPrecedingLineBreak())return!1;continue;case 154:return xe(),18===ve()||78===ve()||92===ve();case 99:return xe(),10===ve()||41===ve()||18===ve()||e.tokenIsIdentifierOrKeyword(ve());case 92:var t=xe();if(149===t&&(t=Fe(xe)),62===t||41===t||18===t||87===t||126===t)return!0;continue;case 123:xe();continue;default:return!1}}function Kn(){return Fe(Jn)}function zn(){switch(ve()){case 59:case 26:case 18:case 112:case 118:case 97:case 83:case 91:case 98:case 89:case 114:case 96:case 85:case 80:case 104:case 115:case 106:case 108:case 110:case 86:case 82:case 95:return!0;case 99:return Kn()||Fe(sr);case 84:case 92:return Kn();case 129:case 133:case 117:case 139:case 140:case 149:case 154:return!0;case 122:case 120:case 121:case 123:case 142:return Kn()||!Fe(Ln);default:return Br()}}function Un(){return xe(),we()||18===ve()||22===ve()}function Vn(){switch(ve()){case 26:return t=me(),r=ye(),Ie(26),U(Ue(L.createEmptyStatement(),t),r);case 18:return Fn(!1);case 112:return ii(me(),ye(),void 0,void 0);case 118:if(Fe(Un))return ii(me(),ye(),void 0,void 0);break;case 97:return ai(me(),ye(),void 0,void 0);case 83:return hi(me(),ye(),void 0,void 0);case 98:return function(){var e=me(),t=ye();Ie(98),Ie(20);var r=ie(jr);Ie(21);var n=Vn(),i=Me(90)?Vn():void 0;return U(Ue(L.createIfStatement(r,n,i),e),t)}();case 89:return function(){var e=me(),t=ye();Ie(89);var r=Vn();Ie(114),Ie(20);var n=ie(jr);return Ie(21),Me(26),U(Ue(L.createDoStatement(r,n),e),t)}();case 114:return function(){var e=me(),t=ye();Ie(114),Ie(20);var r=ie(jr);Ie(21);var n=Vn();return U(Ue(L.createWhileStatement(r,n),e),t)}();case 96:return Pn();case 85:return wn(241);case 80:return wn(242);case 104:return function(){var e=me(),t=ye();Ie(104);var r=Je()?void 0:ie(jr);return Ke(),U(Ue(L.createReturnStatement(r),e),t)}();case 115:return function(){var e=me(),t=ye();Ie(115),Ie(20);var r=ie(jr);Ie(21);var n=ne(16777216,Vn);return U(Ue(L.createWithStatement(r,n),e),t)}();case 106:return On();case 108:return function(){var e=me(),t=ye();Ie(108);var r=s.hasPrecedingLineBreak()?void 0:ie(jr);return void 0===r&&(P++,r=Ue(L.createIdentifier(""),me())),Ke(),U(Ue(L.createThrowStatement(r),e),t)}();case 110:case 82:case 95:return Mn();case 86:return function(){var e=me(),t=ye();return Ie(86),Ke(),U(Ue(L.createDebuggerStatement(),e),t)}();case 59:return Wn();case 129:case 117:case 149:case 139:case 140:case 133:case 84:case 91:case 92:case 99:case 120:case 121:case 122:case 125:case 123:case 142:case 154:if(Kn())return Wn()}var t,r;return function(){var t,r=me(),n=ye(),i=20===ve(),a=ie(jr);return e.isIdentifier(a)&&Me(58)?t=L.createLabeledStatement(a,Vn()):(Ke(),t=L.createExpressionStatement(a),i&&(n=!1)),U(Ue(t,r),n)}()}function qn(e){return 133===e.kind}function Wn(){var t=e.some(Fe((function(){return fi(),mi()})),qn);if(t){var r=ne(8388608,(function(){var e=vt(w);if(e)return ht(e)}));if(r)return r}var n=me(),i=ye(),a=fi(),o=mi();if(t){for(var s=0,c=o;s=0),e.Debug.assert(t<=o),e.Debug.assert(o<=a.length),_(a,t)){var c,u,l,p,f,g=[],m=[];return s.scanRange(t+3,i-5,(function(){var r,n=1,i=t-(a.lastIndexOf("\n",t)+1)+4;function d(e){r||(r=i),g.push(e),i+=e.length}for(be();W(5););W(4)&&(n=0,i=0);e:for(;;){switch(ve()){case 59:0===n||1===n?(v(g),f||(f=me()),N(E(i)),n=0,r=void 0):d(s.getTokenText());break;case 4:g.push(s.getTokenText()),n=0,i=0;break;case 41:var _=s.getTokenText();1===n||2===n?(n=2,d(_)):(n=1,i+=_.length);break;case 5:var h=s.getTokenText();2===n?g.push(h):void 0!==r&&i+h.length>r&&g.push(h.slice(r-i)),i+=h.length;break;case 1:break e;case 18:n=2;var D=s.getStartPos(),x=A(s.getTextPos()-1);if(x){p||y(g),m.push(Ue(L.createJSDocText(g.join("")),null!=p?p:t,D)),m.push(x),g=[],p=s.getTextPos();break}default:n=2,d(s.getTokenText())}be()}v(g),m.length&&g.length&&m.push(Ue(L.createJSDocText(g.join("")),null!=p?p:t,f)),m.length&&c&&e.Debug.assertIsDefined(f,"having parsed tags implies that the end of the comment span should be set");var b=c&&ze(c,u,l);return Ue(L.createJSDocComment(m.length?ze(m,t,f):g.length?g.join(""):void 0,b),t,o)}))}function y(e){for(;e.length&&("\n"===e[0]||"\r"===e[0]);)e.shift()}function v(e){for(;e.length&&""===e[e.length-1].trim();)e.pop()}function D(){for(;;){if(be(),1===ve())return!0;if(5!==ve()&&4!==ve())return!1}}function x(){if(5!==ve()&&4!==ve()||!Fe(D))for(;5===ve()||4===ve();)be()}function b(){if((5===ve()||4===ve())&&Fe(D))return"";for(var e=s.hasPrecedingLineBreak(),t=!1,r="";e&&41===ve()||5===ve()||4===ve();)r+=s.getTokenText(),4===ve()?(e=!0,t=!0,r=""):41===ve()&&(e=!1),be();return t?r:""}function E(t){e.Debug.assert(59===ve());var i=s.getTokenPos();be();var a,o=G(void 0),u=b();switch(o.escapedText){case"author":a=function(t,r,n,i){var a=me(),o=function(){var e=[],t=!1,r=s.getToken();for(;1!==r&&4!==r;){if(29===r)t=!0;else{if(59===r&&!t)break;if(31===r&&t){e.push(s.getTokenText()),s.setTextPos(s.getTokenPos()+1);break}}e.push(s.getTokenText()),r=be()}return L.createJSDocText(e.join(""))}(),c=s.getStartPos(),u=T(t,c,n,i);u||(c=s.getStartPos());var l="string"!=typeof u?ze(e.concatenate([Ue(o,a,c)],u),a):o.text+u;return Ue(L.createJSDocAuthorTag(r,l),t)}(i,o,t,u);break;case"implements":a=function(e,t,r,n){var i=B();return Ue(L.createJSDocImplementsTag(t,i,T(e,me(),r,n)),e)}(i,o,t,u);break;case"augments":case"extends":a=function(e,t,r,n){var i=B();return Ue(L.createJSDocAugmentsTag(t,i,T(e,me(),r,n)),e)}(i,o,t,u);break;case"class":case"constructor":a=j(i,L.createJSDocClassTag,o,t,u);break;case"public":a=j(i,L.createJSDocPublicTag,o,t,u);break;case"private":a=j(i,L.createJSDocPrivateTag,o,t,u);break;case"protected":a=j(i,L.createJSDocProtectedTag,o,t,u);break;case"readonly":a=j(i,L.createJSDocReadonlyTag,o,t,u);break;case"override":a=j(i,L.createJSDocOverrideTag,o,t,u);break;case"deprecated":H=!0,a=j(i,L.createJSDocDeprecatedTag,o,t,u);break;case"this":a=function(e,t,n,i){var a=r(!0);return x(),Ue(L.createJSDocThisTag(t,a,T(e,me(),n,i)),e)}(i,o,t,u);break;case"enum":a=function(e,t,n,i){var a=r(!0);return x(),Ue(L.createJSDocEnumTag(t,a,T(e,me(),n,i)),e)}(i,o,t,u);break;case"arg":case"argument":case"param":return M(i,o,2,t);case"return":case"returns":a=function(t,r,n,i){e.some(c,e.isJSDocReturnTag)&&pe(r.pos,s.getTokenPos(),e.Diagnostics._0_tag_already_specified,r.escapedText);var a=w();return Ue(L.createJSDocReturnTag(r,a,T(t,me(),n,i)),t)}(i,o,t,u);break;case"template":a=function(e,t,n,i){var a=18===ve()?r():void 0,o=function(){var e=me(),t=[];do{x();var r=q();void 0!==r&&t.push(r),b()}while(W(27));return ze(t,e)}();return Ue(L.createJSDocTemplateTag(t,a,o,T(e,me(),n,i)),e)}(i,o,t,u);break;case"type":a=R(i,o,t,u);break;case"typedef":a=function(t,r,n,i){var a,o=w();b();var s=J();x();var c,u=C(n);if(!o||O(o.type)){for(var l=void 0,_=void 0,p=void 0,f=!1;l=Ne((function(){return z(n)}));)if(f=!0,333===l.kind){if(_){de(e.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);var g=e.lastOrUndefined(S);g&&e.addRelatedInfo(g,e.createDetachedDiagnostic(d,0,0,e.Diagnostics.The_tag_was_first_specified_here));break}_=l}else p=e.append(p,l);if(f){var m=o&&179===o.type.kind,y=L.createJSDocTypeLiteral(p,m);c=(o=_&&_.typeExpression&&!O(_.typeExpression.type)?_.typeExpression:Ue(y,t)).end}}c=c||void 0!==u?me():(null!==(a=null!=s?s:o)&&void 0!==a?a:r).end,u||(u=T(t,c,n,i));return Ue(L.createJSDocTypedefTag(r,o,s,u),t,c)}(i,o,t,u);break;case"callback":a=function(t,r,n,i){var a=J();x();var o=C(n),s=function(t){var r,n,i=me();for(;r=Ne((function(){return U(4,t)}));)n=e.append(n,r);return ze(n||[],i)}(n),c=Ne((function(){if(W(59)){var e=E(n);if(e&&331===e.kind)return e}})),u=Ue(L.createJSDocSignature(void 0,s,c),t);o||(o=T(t,me(),n,i));return Ue(L.createJSDocCallbackTag(r,u,a,o),t)}(i,o,t,u);break;case"see":a=function(t,r,i,a){var o=Fe((function(){return 59===be()&&e.tokenIsIdentifierOrKeyword(be())&&"link"===s.getTokenValue()}))?void 0:n(),c=void 0!==i&&void 0!==a?T(t,me(),i,a):void 0;return Ue(L.createJSDocSeeTag(r,o,c),t)}(i,o,t,u);break;default:a=function(e,t,r,n){return Ue(L.createJSDocUnknownTag(t,T(e,me(),r,n)),e)}(i,o,t,u)}return a}function T(e,t,r,n){return n||(r+=t-e),C(r,n.slice(r))}function C(e,t){var r,n,i=me(),a=[],o=[],c=0,u=!0;function l(t){n||(n=e),a.push(t),e+=t.length}void 0!==t&&(""!==t&&l(t),c=1);var d=ve();e:for(;;){switch(d){case 4:c=0,a.push(s.getTokenText()),e=0;break;case 59:if(3===c||2===c&&(!u||Fe(k))){a.push(s.getTokenText());break}s.setTextPos(s.getTextPos()-1);case 1:break e;case 5:if(2===c||3===c)l(s.getTokenText());else{var _=s.getTokenText();void 0!==n&&e+_.length>n&&a.push(_.slice(n-e)),e+=_.length}break;case 18:c=2;var p=s.getStartPos(),f=A(s.getTextPos()-1);f?(o.push(Ue(L.createJSDocText(a.join("")),null!=r?r:i,p)),o.push(f),a=[],r=s.getTextPos()):l(s.getTokenText());break;case 61:c=3===c?2:3,l(s.getTokenText());break;case 41:if(0===c){c=1,e+=1;break}default:3!==c&&(c=2),l(s.getTokenText())}u=5===ve(),d=be()}return y(a),v(a),o.length?(a.length&&o.push(Ue(L.createJSDocText(a.join("")),null!=r?r:i)),ze(o,i,s.getTextPos())):a.length?a.join(""):void 0}function k(){var e=be();return 5===e||4===e}function A(t){if(Ne(F)){be(),x();for(var r=e.tokenIsIdentifierOrKeyword(ve())?Tt(!0):void 0,n=[];19!==ve()&&4!==ve()&&1!==ve();)n.push(s.getTokenText()),be();return Ue(L.createJSDocLink(r,n.join("")),t,s.getTextPos())}}function F(){return b(),18===ve()&&59===be()&&e.tokenIsIdentifierOrKeyword(be())&&"link"===s.getTokenValue()}function N(e){e&&(c?c.push(e):(c=[e],u=e.pos),l=e.end)}function w(){return b(),18===ve()?r():void 0}function I(){var t=W(22);t&&x();var r=W(61),n=function(){var e=G();Me(22)&&Ie(23);for(;Me(24);){var t=G();Me(22)&&Ie(23),e=Ct(e,t)}return e}();return r&&function(t){Re(t)||Ve(t,!1,e.Diagnostics._0_expected,e.tokenToString(t))}(61),t&&(x(),Le(62)&&jr(),Ie(23)),{name:n,isBracketed:t}}function O(t){switch(t.kind){case 145:return!0;case 179:return O(t.elementType);default:return e.isTypeReferenceNode(t)&&e.isIdentifier(t.typeName)&&"Object"===t.typeName.escapedText&&!t.typeArguments}}function M(t,r,n,i){var a=w(),o=!a;b();var s=I(),c=s.name,u=s.isBracketed,l=b();o&&!Fe(F)&&(a=w());var d=T(t,me(),i,l),_=4!==n&&function(t,r,n,i){if(t&&O(t.type)){for(var a=me(),o=void 0,s=void 0;o=Ne((function(){return U(n,i,r)}));)330!==o.kind&&337!==o.kind||(s=e.append(s,o));if(s){var c=Ue(L.createJSDocTypeLiteral(s,179===t.type.kind),a);return Ue(L.createJSDocTypeExpression(c),a)}}}(a,c,n,i);return _&&(a=_,o=!0),Ue(1===n?L.createJSDocPropertyTag(r,c,u,a,o,d):L.createJSDocParameterTag(r,c,u,a,o,d),t)}function R(t,n,i,a){e.some(c,e.isJSDocTypeTag)&&pe(n.pos,s.getTokenPos(),e.Diagnostics._0_tag_already_specified,n.escapedText);var o=r(!0),u=void 0!==i&&void 0!==a?T(t,me(),i,a):void 0;return Ue(L.createJSDocTypeTag(n,o,u),t)}function B(){var e=Me(18),t=me(),r=function(){var e=me(),t=G();for(;Me(24);){var r=G();t=Ue(L.createPropertyAccessExpression(t,r),e)}return t}(),n=Ei(),i=Ue(L.createExpressionWithTypeArguments(r,n),t);return e&&Ie(19),i}function j(e,t,r,n,i){return Ue(t(r,T(e,me(),n,i)),e)}function J(t){var r=s.getTokenPos();if(e.tokenIsIdentifierOrKeyword(ve())){var n=G();if(Me(24)){var i=J(!0);return Ue(L.createModuleDeclaration(void 0,void 0,n,i,t?4:void 0),r)}return t&&(n.isInJSDocNamespace=!0),n}}function K(t,r){for(;!e.isIdentifier(t)||!e.isIdentifier(r);){if(e.isIdentifier(t)||e.isIdentifier(r)||t.right.escapedText!==r.right.escapedText)return!1;t=t.left,r=r.left}return t.escapedText===r.escapedText}function z(e){return U(1,e)}function U(t,r,n){for(var i=!0,a=!1;;)switch(be()){case 59:if(i){var o=V(t,r);return!(o&&(330===o.kind||337===o.kind)&&4!==t&&n&&(e.isIdentifier(o.name)||!K(n,o.name.left)))&&o}a=!1;break;case 4:i=!0,a=!1;break;case 41:a&&(i=!1),a=!0;break;case 78:i=!1;break;case 1:return!1}}function V(t,r){e.Debug.assert(59===ve());var n=s.getStartPos();be();var i,a=G();switch(x(),a.escapedText){case"type":return 1===t&&R(n,a);case"prop":case"property":i=1;break;case"arg":case"argument":case"param":i=6;break;default:return!1}return!!(t&i)&&M(n,a,t,r)}function q(){var t=me(),r=G(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);if(!e.nodeIsMissing(r))return Ue(L.createTypeParameterDeclaration(r,void 0,void 0),t)}function W(e){return ve()===e&&(be(),!0)}function G(t){if(!e.tokenIsIdentifierOrKeyword(ve()))return Ve(78,!t,t||e.Diagnostics.Identifier_expected);P++;var r=s.getTokenPos(),n=s.getTextPos(),i=ve(),a=qe(s.getTokenValue()),o=Ue(L.createIdentifier(a,void 0,i),r,n);return be(),o}}t.parseJSDocTypeExpressionForTests=function(t,n,i){J("file.js",t,99,void 0,1),s.setText(t,n,i),k=s.scan();var a=r(),o=X("file.js",99,1,!1,[],L.createToken(1),0),c=e.attachFileToDiagnostics(S,o);return E&&(o.jsDocDiagnostics=e.attachFileToDiagnostics(E,o)),K(),a?{jsDocTypeExpression:a,diagnostics:c}:void 0},t.parseJSDocTypeExpression=r,t.parseJSDocNameReference=n,t.parseIsolatedJSDocComment=function(t,r,n){J("",t,99,void 0,1);var i=ne(4194304,(function(){return o(r,n)})),a={languageVariant:0,text:t},s=e.attachFileToDiagnostics(S,a);return K(),i?{jsDoc:i,diagnostics:s}:void 0},t.parseJSDocComment=function(t,r,n){var i=k,a=S.length,s=B,c=ne(4194304,(function(){return o(r,n)}));return e.setParent(c,t),131072&O&&(E||(E=[]),E.push.apply(E,S)),k=i,S.length=a,B=s,c},function(e){e[e.BeginningOfLine=0]="BeginningOfLine",e[e.SawAsterisk=1]="SawAsterisk",e[e.SavingComments=2]="SavingComments",e[e.SavingBackticks=3]="SavingBackticks"}(i||(i={})),function(e){e[e.Property=1]="Property",e[e.Parameter=2]="Parameter",e[e.CallbackParameter=4]="CallbackParameter"}(a||(a={}))}(W=t.JSDocParser||(t.JSDocParser={}))}(c||(c={})),function(t){function r(t,r,i,o,s,c){return void(r?l(t):u(t));function u(t){var r="";if(c&&n(t)&&(r=o.substring(t.pos,t.end)),t._children&&(t._children=void 0),e.setTextRangePosEnd(t,t.pos+i,t.end+i),c&&n(t)&&e.Debug.assert(r===s.substring(t.pos,t.end)),p(t,u,l),e.hasJSDocNodes(t))for(var d=0,_=t.jsDoc;d<_.length;d++){u(_[d])}a(t,c)}function l(t){t._children=void 0,e.setTextRangePosEnd(t,t.pos+i,t.end+i);for(var r=0,n=t;r=r,"Adjusting an element that was entirely before the change range"),e.Debug.assert(t.pos<=n,"Adjusting an element that was entirely after the change range"),e.Debug.assert(t.pos<=t.end);var o=Math.min(t.pos,i),s=t.end>=n?t.end+a:Math.min(t.end,i);e.Debug.assert(o<=s),t.parent&&(e.Debug.assertGreaterThanOrEqual(o,t.parent.pos),e.Debug.assertLessThanOrEqual(s,t.parent.end)),e.setTextRangePosEnd(t,o,s)}function a(t,r){if(r){var n=t.pos,i=function(t){e.Debug.assert(t.pos>=n),n=t.end};if(e.hasJSDocNodes(t))for(var a=0,o=t.jsDoc;ar),!0;if(a.pos>=i.pos&&(i=a),ri.pos&&(i=a)}return i}function s(t,r,n,i){var a=t.text;if(n&&(e.Debug.assert(a.length-n.span.length+n.newLength===r.length),i||e.Debug.shouldAssert(3))){var o=a.substr(0,n.span.start),s=r.substr(0,n.span.start);e.Debug.assert(o===s);var c=a.substring(e.textSpanEnd(n.span),a.length),u=r.substring(e.textSpanEnd(e.textChangeRangeNewSpan(n)),r.length);e.Debug.assert(c===u)}}function u(t){var r=t.statements,n=0;e.Debug.assert(n=t.pos&&e=t.pos&&e0&&a<=n;a++){var s=o(t,i);e.Debug.assert(s.pos<=i);var c=s.pos;i=Math.max(0,c-1)}var u=e.createTextSpanFromBounds(i,e.textSpanEnd(r.span)),l=r.newLength+(r.span.start-i);return e.createTextChangeRange(u,l)}(t,l);s(t,n,m,d),e.Debug.assert(m.span.start<=l.span.start),e.Debug.assert(e.textSpanEnd(m.span)===e.textSpanEnd(l.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(m))===e.textSpanEnd(e.textChangeRangeNewSpan(l)));var y=e.textChangeRangeNewSpan(m).length-m.span.length;!function(t,n,o,s,c,u,l,d){return void _(t);function _(t){if(e.Debug.assert(t.pos<=t.end),t.pos>o)r(t,!1,c,u,l,d);else{var g=t.end;if(g>=n){if(t.intersectsChange=!0,t._children=void 0,i(t,n,o,s,c),p(t,_,f),e.hasJSDocNodes(t))for(var m=0,y=t.jsDoc;mo)r(t,!0,c,u,l,d);else{var a=t.end;if(a>=n){t.intersectsChange=!0,t._children=void 0,i(t,n,o,s,c);for(var p=0,f=t;pi){y();var m={range:{pos:f.pos+a,end:f.end+a},type:g};u=e.append(u,m),c&&e.Debug.assert(o.substring(f.pos,f.end)===s.substring(m.range.pos,m.range.end))}}return y(),u;function y(){l||(l=!0,u?r&&u.push.apply(u,r):u=r)}}(t.commentDirectives,v.commentDirectives,m.span.start,e.textSpanEnd(m.span),y,f,n,d),v},t.createSyntaxCursor=u,function(e){e[e.Value=-1]="Value"}(l||(l={}))}(u||(u={})),e.isDeclarationFileName=m,e.processCommentPragmas=y,e.processPragmasIntoFields=v;var h=new e.Map;function D(e){if(h.has(e))return h.get(e);var t=new RegExp("(\\s"+e+"\\s*=\\s*)('|\")(.+?)\\2","im");return h.set(e,t),t}var x=/^\/\/\/\s*<(\S+)\s.*?\/>/im,b=/^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;function S(t,r,n){var i=2===r.kind&&x.exec(n);if(i){var a=i[1].toLowerCase(),o=e.commentPragmas[a];if(!(o&&1&o.kind))return;if(o.args){for(var s={},c=0,u=o.args;c=r.length)break;var o=a;if(34===r.charCodeAt(o)){for(a++;a32;)a++;i.push(r.substring(o,a))}}c(i)}else s.push(r)}}function D(t,r,n,i,a,o){if(i.isTSConfigOnly)"null"===(s=t[r])?(a[i.name]=void 0,r++):"boolean"===i.type?"false"===s?(a[i.name]=me(i,!1,o),r++):("true"===s&&r++,o.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,i.name))):(o.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,i.name)),s&&!e.startsWith(s,"-")&&r++);else if(t[r]||"boolean"===i.type||o.push(e.createCompilerDiagnostic(n.optionTypeMismatchDiagnostic,i.name,U(i))),"null"!==t[r])switch(i.type){case"number":a[i.name]=me(i,parseInt(t[r]),o),r++;break;case"boolean":var s=t[r];a[i.name]=me(i,"false"!==s,o),"false"!==s&&"true"!==s||r++;break;case"string":a[i.name]=me(i,t[r]||"",o),r++;break;case"list":var c=m(i,t[r],o);a[i.name]=c||[],c&&r++;break;default:a[i.name]=g(i,t[r],o),r++}else a[i.name]=void 0,r++;return r}function x(e,t){return b(u,e,t)}function b(e,t,r){void 0===r&&(r=!1),t=t.toLowerCase();var n=e(),i=n.optionsNameMap,a=n.shortOptionNames;if(r){var o=a.get(t);void 0!==o&&(t=o)}return i.get(t)}function S(){return l||(l=c(e.buildOpts))}e.defaultInitCompilerOptions={module:e.ModuleKind.CommonJS,target:1,strict:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,skipLibCheck:!0},e.convertEnableAutoDiscoveryToEnable=_,e.createCompilerDiagnosticForInvalidCustomType=p,e.parseCustomTypeOption=g,e.parseListTypeOption=m,e.parseCommandLineWorker=h,e.compilerOptionsDidYouMeanDiagnostics={alternateMode:d,getOptionsNameMap:u,optionDeclarations:e.optionDeclarations,unknownOptionDiagnostic:e.Diagnostics.Unknown_compiler_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_compiler_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Compiler_option_0_expects_an_argument},e.parseCommandLine=function(t,r){return h(e.compilerOptionsDidYouMeanDiagnostics,t,r)},e.getOptionFromName=x;var E={alternateMode:{diagnostic:e.Diagnostics.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap:u},getOptionsNameMap:S,optionDeclarations:e.buildOpts,unknownOptionDiagnostic:e.Diagnostics.Unknown_build_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_build_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Build_option_0_requires_a_value_of_type_1};function T(t,r){var n=e.parseJsonText(t,r);return{config:J(n,n.parseDiagnostics,!1,void 0),error:n.parseDiagnostics.length?n.parseDiagnostics[0]:void 0}}function C(t,r){var n=k(t,r);return e.isString(n)?e.parseJsonText(t,n):{fileName:t,parseDiagnostics:[n]}}function k(t,r){var n;try{n=r(t)}catch(r){return e.createCompilerDiagnostic(e.Diagnostics.Cannot_read_file_0_Colon_1,t,r.message)}return void 0===n?e.createCompilerDiagnostic(e.Diagnostics.Cannot_read_file_0,t):n}function A(t){return e.arrayToMap(t,y)}e.parseBuildCommand=function(t){var r=h(E,t),n=r.options,i=r.watchOptions,a=r.fileNames,o=r.errors,s=n;return 0===a.length&&a.push("."),s.clean&&s.force&&o.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","force")),s.clean&&s.verbose&&o.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","verbose")),s.clean&&s.watch&&o.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","watch")),s.watch&&s.dry&&o.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"watch","dry")),{buildOptions:s,watchOptions:i,projects:a,errors:o}},e.getDiagnosticText=function(t){for(var r=[],n=1;n=0)return c.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,t(t([],s),[d]).join(" -> "))),{raw:r||K(n,c)};var _=r?function(t,r,n,i,a){e.hasProperty(t,"excludes")&&a.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var o,s=ue(t.compilerOptions,n,a,i),c=de(t.typeAcquisition||t.typingOptions,n,a,i),u=function(e,t,r){return _e(B(),e,t,void 0,L,r)}(t.watchOptions,n,a);if(t.compileOnSave=function(t,r,n){if(!e.hasProperty(t,e.compileOnSaveCommandLineOption.name))return!1;var i=pe(e.compileOnSaveCommandLineOption,t.compileOnSave,r,n);return"boolean"==typeof i&&i}(t,n,a),t.extends)if(e.isString(t.extends)){var l=i?te(i,n):n;o=se(t.extends,r,l,a,e.createCompilerDiagnostic)}else a.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,"extends","string"));return{raw:t,options:s,watchOptions:u,typeAcquisition:c,extendedConfigPath:o}}(r,i,a,o,c):function(t,r,n,i,a){var o,s,c,u,l=ce(i),d={onSetValidOptionKeyValueInParent:function(t,r,a){var u;switch(t){case"compilerOptions":u=l;break;case"watchOptions":u=c||(c={});break;case"typeAcquisition":u=o||(o=le(i));break;case"typingOptions":u=s||(s=le(i));break;default:e.Debug.fail("Unknown option")}u[r.name]=fe(r,n,a)},onSetValidOptionKeyValueInRoot:function(o,s,c,l){switch(o){case"extends":var d=i?te(i,n):n;return void(u=se(c,r,d,a,(function(r,n){return e.createDiagnosticForNodeInSourceFile(t,l,r,n)})))}},onSetUnknownOptionKeyValueInRoot:function(r,n,i,o){"excludes"===r&&a.push(e.createDiagnosticForNodeInSourceFile(t,n,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude))}},_=J(t,a,!0,d);o||(o=s?void 0!==s.enableAutoDiscovery?{enable:s.enableAutoDiscovery,include:s.include,exclude:s.exclude}:s:le(i));return{raw:_,options:l,watchOptions:c,typeAcquisition:o,extendedConfigPath:u}}(n,i,a,o,c);if((null===(l=_.options)||void 0===l?void 0:l.paths)&&(_.options.pathsBasePath=a),_.extendedConfigPath){s=s.concat([d]);var p=function(t,r,n,i,a,o){var s,c,u,l,d=n.useCaseSensitiveFileNames?r:e.toFileNameLowerCase(r);o&&(c=o.get(d))?(u=c.extendedResult,l=c.extendedConfig):((u=C(r,(function(e){return n.readFile(e)}))).parseDiagnostics.length||(l=oe(void 0,u,n,e.getDirectoryPath(r),e.getBaseFileName(r),i,a,o)),o&&o.set(d,{extendedResult:u,extendedConfig:l}));t&&(t.extendedSourceFiles=[u.fileName],u.extendedSourceFiles&&(s=t.extendedSourceFiles).push.apply(s,u.extendedSourceFiles));if(u.parseDiagnostics.length)return void a.push.apply(a,u.parseDiagnostics);return l}(n,_.extendedConfigPath,i,s,c,u);if(p&&p.options){var f,g=p.raw,m=_.raw,y=function(t){!m[t]&&g[t]&&(m[t]=e.map(g[t],(function(t){return e.isRootedDiskPath(t)?t:e.combinePaths(f||(f=e.convertToRelativePath(e.getDirectoryPath(_.extendedConfigPath),a,e.createGetCanonicalFileName(i.useCaseSensitiveFileNames))),t)})))};y("include"),y("exclude"),y("files"),void 0===m.compileOnSave&&(m.compileOnSave=g.compileOnSave),_.options=e.assign({},p.options,_.options),_.watchOptions=_.watchOptions&&p.watchOptions?e.assign({},p.watchOptions,_.watchOptions):_.watchOptions||p.watchOptions}}return _}function se(t,r,n,i,a){if(t=e.normalizeSlashes(t),e.isRootedDiskPath(t)||e.startsWith(t,"./")||e.startsWith(t,"../")){var o=e.getNormalizedAbsolutePath(t,n);return r.fileExists(o)||e.endsWith(o,".json")||(o+=".json",r.fileExists(o))?o:void i.push(a(e.Diagnostics.File_0_not_found,t))}var s=e.nodeModuleNameResolver(t,e.combinePaths(n,"tsconfig.json"),{moduleResolution:e.ModuleResolutionKind.NodeJs},r,void 0,void 0,!0);if(s.resolvedModule)return s.resolvedModule.resolvedFileName;i.push(a(e.Diagnostics.File_0_not_found,t))}function ce(t){return t&&"jsconfig.json"===e.getBaseFileName(t)?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{}}function ue(t,r,n,i){var a=ce(i);return _e(R(),t,r,a,e.compilerOptionsDidYouMeanDiagnostics,n),i&&(a.configFilePath=e.normalizeSlashes(i)),a}function le(t){return{enable:!!t&&"jsconfig.json"===e.getBaseFileName(t),include:[],exclude:[]}}function de(e,t,r,n){var i=le(n),a=_(e);return _e(j(),a,t,i,N,r),i}function _e(t,r,n,i,a,o){if(r){for(var s in r){var c=t.get(s);c?(i||(i={}))[c.name]=pe(c,r[s],n,o):o.push(v(s,a,e.createCompilerDiagnostic))}return i}}function pe(t,r,n,i){if(V(t,r)){var a=t.type;if("list"===a&&e.isArray(r))return function(t,r,n,i){return e.filter(e.map(r,(function(e){return pe(t.element,e,n,i)})),(function(e){return!!e}))}(t,r,n,i);if(!e.isString(a))return ye(t,r,i);var o=me(t,r,i);return ee(o)?o:ge(t,n,o)}i.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,t.name,U(t)))}function fe(t,r,n){if(!ee(n)){if("list"===t.type){var i=t;return i.element.isFilePath||!e.isString(i.element.type)?e.filter(e.map(n,(function(e){return fe(i.element,r,e)})),(function(e){return!!e})):n}return e.isString(t.type)?ge(t,r,n):t.type.get(e.isString(n)?n.toLowerCase():n)}}function ge(t,r,n){return t.isFilePath&&""===(n=e.getNormalizedAbsolutePath(n,r))&&(n="."),n}function me(t,r,n){var i;if(!ee(r)){var a=null===(i=t.extraValidation)||void 0===i?void 0:i.call(t,r);if(!a)return r;n.push(e.createCompilerDiagnostic.apply(void 0,a))}}function ye(e,t,r){if(!ee(t)){var n=t.toLowerCase(),i=e.type.get(n);if(void 0!==i)return me(e,i,r);r.push(p(e))}}function ve(e){return"function"==typeof e.trim?e.trim():e.replace(/^[\s]+|[\s]+$/g,"")}e.convertToObject=K,e.convertToObjectWorker=z,e.convertToTSConfig=function(t,n,i){var a,o,s,c=e.createGetCanonicalFileName(i.useCaseSensitiveFileNames),u=e.map(e.filter(t.fileNames,(null===(o=null===(a=t.options.configFile)||void 0===a?void 0:a.configFileSpecs)||void 0===o?void 0:o.validatedIncludeSpecs)?function(t,r,n,i){if(!r)return e.returnTrue;var a=e.getFileMatcherPatterns(t,n,r,i.useCaseSensitiveFileNames,i.getCurrentDirectory()),o=a.excludePattern&&e.getRegexFromPattern(a.excludePattern,i.useCaseSensitiveFileNames),s=a.includeFilePattern&&e.getRegexFromPattern(a.includeFilePattern,i.useCaseSensitiveFileNames);if(s)return o?function(e){return!(s.test(e)&&!o.test(e))}:function(e){return!s.test(e)};if(o)return function(e){return o.test(e)};return e.returnTrue}(n,t.options.configFile.configFileSpecs.validatedIncludeSpecs,t.options.configFile.configFileSpecs.validatedExcludeSpecs,i):e.returnTrue),(function(t){return e.getRelativePathFromFile(e.getNormalizedAbsolutePath(n,i.getCurrentDirectory()),e.getNormalizedAbsolutePath(t,i.getCurrentDirectory()),c)})),l=Y(t.options,{configFilePath:e.getNormalizedAbsolutePath(n,i.getCurrentDirectory()),useCaseSensitiveFileNames:i.useCaseSensitiveFileNames}),d=t.watchOptions&&function(e){return X(e,P())}(t.watchOptions);return r(r({compilerOptions:r(r({},q(l)),{showConfig:void 0,configFile:void 0,configFilePath:void 0,help:void 0,init:void 0,listFiles:void 0,listEmittedFiles:void 0,project:void 0,build:void 0,version:void 0}),watchOptions:d&&q(d),references:e.map(t.projectReferences,(function(e){return r(r({},e),{path:e.originalPath?e.originalPath:"",originalPath:void 0})})),files:e.length(u)?u:void 0},(null===(s=t.options.configFile)||void 0===s?void 0:s.configFileSpecs)?{include:W(t.options.configFile.configFileSpecs.validatedIncludeSpecs),exclude:t.options.configFile.configFileSpecs.validatedExcludeSpecs}:{}),{compileOnSave:!!t.compileOnSave||void 0})},e.generateTSConfig=function(t,r,n){var i=Y(e.extend(t,e.defaultInitCompilerOptions));return function(){for(var t=e.createMultiMap(),c=0,u=e.optionDeclarations;c0)for(var D=function(t){if(e.fileExtensionIs(t,".json")){if(!o){var n=_.filter((function(t){return e.endsWith(t,".json")})),a=e.map(e.getRegularExpressionsForWildcards(n,r,"files"),(function(e){return"^"+e+"$"}));o=a?a.map((function(t){return e.getRegexFromPattern(t,i.useCaseSensitiveFileNames)})):e.emptyArray}if(-1!==e.findIndex(o,(function(e){return e.test(t)}))){var d=s(t);c.has(d)||l.has(d)||l.set(d,t)}return"continue"}if(function(t,r,n,i,a){for(var o=e.getExtensionPriority(t,i),s=e.adjustExtensionPriority(o,i),c=0;c0);var i={sourceFile:t.configFile,commandLine:{options:t}};r.setOwnMap(r.getOrCreateMapOfCacheRedirects(i)),null==n||n.setOwnMap(n.getOrCreateMapOfCacheRedirects(i))}r.setOwnOptions(t),null==n||n.setOwnOptions(t)}}function E(t,r,n){return{getOrCreateCacheForDirectory:function(i,a){var o=e.toPath(i,t,r);return b(n,a,o,(function(){return new e.Map}))},clear:function(){n.clear()},update:function(e){S(e,n)}}}function T(t,r,i,a,o){var s=function(t,r,i,a){var o=a.compilerOptions,s=o.baseUrl,c=o.paths;if(c&&!e.pathIsRelative(r)){return a.traceEnabled&&(s&&n(a.host,e.Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1,s,r),n(a.host,e.Diagnostics.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0,r)),X(t,r,e.getPathsBasePath(a.compilerOptions,a.host),c,i,!1,a)}}(t,r,a,o);return s?s.value:e.isExternalModuleNameRelative(r)?function(t,r,i,a,o){if(!o.compilerOptions.rootDirs)return;o.traceEnabled&&n(o.host,e.Diagnostics.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0,r);for(var s,c,u=e.normalizePath(e.combinePaths(i,r)),l=0,d=o.compilerOptions.rootDirs;li&&(i=l),1===i)return i}return i}break;case 258:var d=0;return e.forEachChild(t,(function(t){var n=o(t,r);switch(n){case 0:return;case 2:return void(d=2);case 1:return d=1,!0;default:e.Debug.assertNever(n)}})),d;case 257:return a(t,r);case 78:if(t.isInJSDocNamespace)return 0}return 1}(t,r);return r.set(n,i),i}function s(t,r){for(var n=t.propertyName||t.name,i=t.parent;i;){if(e.isBlock(i)||e.isModuleBlock(i)||e.isSourceFile(i)){for(var a=void 0,s=0,c=i.statements;sa)&&(a=l),1===a)return a}}if(void 0!==a)return a}i=i.parent}return 1}function c(t){return e.Debug.attachFlowNodeDebugInfo(t),t}(n=e.ModuleInstanceState||(e.ModuleInstanceState={}))[n.NonInstantiated=0]="NonInstantiated",n[n.Instantiated=1]="Instantiated",n[n.ConstEnumOnly=2]="ConstEnumOnly",e.getModuleInstanceState=a,function(e){e[e.None=0]="None",e[e.IsContainer=1]="IsContainer",e[e.IsBlockScopedContainer=2]="IsBlockScopedContainer",e[e.IsControlFlowContainer=4]="IsControlFlowContainer",e[e.IsFunctionLike=8]="IsFunctionLike",e[e.IsFunctionExpression=16]="IsFunctionExpression",e[e.HasLocals=32]="HasLocals",e[e.IsInterface=64]="IsInterface",e[e.IsObjectLiteralOrClassExpressionMethod=128]="IsObjectLiteralOrClassExpressionMethod"}(i||(i={}));var u=function(){var n,i,o,s,u,p,f,g,m,y,v,h,D,x,b,S,E,T,C,k,A,F,N,P,w=!1,I=0,O={flags:1},M={flags:1},L=function(){return e.createBinaryExpressionTrampoline(t,r,n,i,a,void 0);function t(t,r){if(r){r.stackIndex++,e.setParent(t,s);var n=F;ze(t);var i=s;s=t,r.skip=!1,r.inStrictModeStack[r.stackIndex]=n,r.parentStack[r.stackIndex]=i}else r={stackIndex:0,skip:!1,inStrictModeStack:[void 0],parentStack:[void 0]};var a=t.operatorToken.kind;if(55===a||56===a||60===a||e.isLogicalOrCoalescingAssignmentOperator(a)){if(de(t)){var o=Z();De(t,o,o),v=ce(o)}else De(t,b,S);r.skip=!0}return r}function r(e,t,r){if(!t.skip)return o(e)}function n(e,t,r){t.skip||(27===e.kind&&ye(r.left),Be(e))}function i(e,t,r){if(!t.skip)return o(e)}function a(t,r){if(!r.skip){var n=t.operatorToken.kind;if(e.isAssignmentOperator(n)&&!e.isAssignmentTarget(t))if(he(t.left),62===n&&203===t.left.kind)Q(t.left.expression)&&(v=oe(256,v,t))}var i=r.inStrictModeStack[r.stackIndex],a=r.parentStack[r.stackIndex];void 0!==i&&(F=i),void 0!==a&&(s=a),r.skip=!1,r.stackIndex--}function o(t){if(t&&e.isBinaryExpression(t)&&!e.isDestructuringAssignment(t))return t;Be(t)}}();function R(t,r,i,a,o){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(t)||n,t,r,i,a,o)}return function(t,r){n=t,i=r,o=e.getEmitScriptTarget(i),F=function(t,r){return!(!e.getStrictOptionValue(r,"alwaysStrict")||t.isDeclarationFile)||!!t.externalModuleIndicator}(n,r),P=new e.Set,I=0,N=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(O),e.Debug.attachFlowNodeDebugInfo(M),n.locals||(Be(n),n.symbolCount=I,n.classifiableNames=P,function(){if(m){for(var t=u,r=g,i=f,a=s,o=v,l=0,_=m;l<_.length;l++){var p=_[l],y=p.parent.parent;u=e.findAncestor(y.parent,(function(e){return!!(1&Te(e))}))||n,f=e.getEnclosingBlockScopeContainer(y)||n,v=c({flags:2}),s=p,Be(p.typeExpression);var h=e.getNameOfDeclaration(p);if((e.isJSDocEnumTag(p)||!p.fullName)&&h&&e.isPropertyAccessEntityNameExpression(h.parent)){var D=et(h.parent);if(D){Qe(n.symbol,h.parent,D,!!e.findAncestor(h,(function(t){return e.isPropertyAccessExpression(t)&&"prototype"===t.name.escapedText})),!1);var x=u;switch(e.getAssignmentDeclarationPropertyAccessKind(h.parent)){case 1:case 2:u=e.isExternalOrCommonJsModule(n)?n:void 0;break;case 4:u=h.parent.expression;break;case 3:u=h.parent.expression.name;break;case 5:u=d(n,h.parent.expression)?n:e.isPropertyAccessExpression(h.parent.expression)?h.parent.expression.name:h.parent.expression;break;case 0:return e.Debug.fail("Shouldn't have detected typedef or enum on non-assignment declaration")}u&&U(p,524288,788968),u=x}}else e.isJSDocEnumTag(p)||!p.fullName||78===p.fullName.kind?(s=p.parent,Pe(p,524288,788968)):Be(p.fullName)}u=t,g=r,f=i,s=a,v=o}}()),n=void 0,i=void 0,o=void 0,s=void 0,u=void 0,p=void 0,f=void 0,g=void 0,m=void 0,y=!1,v=void 0,h=void 0,D=void 0,x=void 0,b=void 0,S=void 0,E=void 0,C=void 0,k=!1,w=!1,A=0};function B(e,t){return I++,new N(e,t)}function j(t,r,n){t.flags|=n,r.symbol=t,t.declarations=e.appendIfUnique(t.declarations,r),1955&n&&!t.exports&&(t.exports=e.createSymbolTable()),6240&n&&!t.members&&(t.members=e.createSymbolTable()),t.constEnumOnlyModule&&304&t.flags&&(t.constEnumOnlyModule=!1),111551&n&&e.setValueDeclaration(t,r)}function J(t){if(267===t.kind)return t.isExportEquals?"export=":"default";var r=e.getNameOfDeclaration(t);if(r){if(e.isAmbientModule(t)){var n=e.getTextOfIdentifierOrLiteral(r);return e.isGlobalScopeAugmentation(t)?"__global":'"'+n+'"'}if(159===r.kind){var i=r.expression;if(e.isStringOrNumericLiteralLike(i))return e.escapeLeadingUnderscores(i.text);if(e.isSignedNumericLiteral(i))return e.tokenToString(i.operator)+i.operand.text;e.Debug.fail("Only computed properties with literal names have declaration names")}if(e.isPrivateIdentifier(r)){var a=e.getContainingClass(t);if(!a)return;var o=a.symbol;return e.getSymbolNameForPrivateIdentifier(o,r.escapedText)}return e.isPropertyNameLiteral(r)?e.getEscapedTextOfIdentifierOrLiteral(r):void 0}switch(t.kind){case 167:return"__constructor";case 175:case 170:case 315:return"__call";case 176:case 171:return"__new";case 172:return"__index";case 268:return"__export";case 298:return"export=";case 217:if(2===e.getAssignmentDeclarationKind(t))return"export=";e.Debug.fail("Unknown binary declaration kind");break;case 309:return e.isJSDocConstructSignature(t)?"__new":"__call";case 161:return e.Debug.assert(309===t.parent.kind,"Impossible parameter parent kind",(function(){return"parent is: "+(e.SyntaxKind?e.SyntaxKind[t.parent.kind]:t.parent.kind)+", expected JSDocFunctionType"})),"arg"+t.parent.parameters.indexOf(t)}}function K(t){return e.isNamedDeclaration(t)?e.declarationNameToString(t.name):e.unescapeLeadingUnderscores(e.Debug.checkDefined(J(t)))}function z(r,i,a,o,s,c){e.Debug.assert(!e.hasDynamicName(a));var u,l=e.hasSyntacticModifier(a,512)||e.isExportSpecifier(a)&&"default"===a.name.escapedText,d=l&&i?"default":J(a);if(void 0===d)u=B(0,"__missing");else if(u=r.get(d),2885600&o&&P.add(d),u){if(c&&!u.isReplaceableByMethod)return u;if(u.flags&s)if(u.isReplaceableByMethod)r.set(d,u=B(0,d));else if(!(3&o&&67108864&u.flags)){e.isNamedDeclaration(a)&&e.setParent(a.name,a);var _=2&u.flags?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,p=!0;(384&u.flags||384&o)&&(_=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,p=!1);var f=!1;e.length(u.declarations)&&(l||u.declarations&&u.declarations.length&&267===a.kind&&!a.isExportEquals)&&(_=e.Diagnostics.A_module_cannot_have_multiple_default_exports,p=!1,f=!0);var g=[];e.isTypeAliasDeclaration(a)&&e.nodeIsMissing(a.type)&&e.hasSyntacticModifier(a,1)&&2887656&u.flags&&g.push(R(a,e.Diagnostics.Did_you_mean_0,"export type { "+e.unescapeLeadingUnderscores(a.name.escapedText)+" }"));var m=e.getNameOfDeclaration(a)||a;e.forEach(u.declarations,(function(t,r){var i=e.getNameOfDeclaration(t)||t,a=R(i,_,p?K(t):void 0);n.bindDiagnostics.push(f?e.addRelatedInfo(a,R(m,0===r?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):a),f&&g.push(R(i,e.Diagnostics.The_first_export_default_is_here))}));var y=R(m,_,p?K(a):void 0);n.bindDiagnostics.push(e.addRelatedInfo.apply(void 0,t([y],g))),u=B(0,d)}}else r.set(d,u=B(0,d)),c&&(u.isReplaceableByMethod=!0);return j(u,a,o),u.parent?e.Debug.assert(u.parent===i,"Existing symbol parent should match new one"):u.parent=i,u}function U(t,r,n){var i=!!(1&e.getCombinedModifierFlags(t))||function(t){t.parent&&e.isModuleDeclaration(t)&&(t=t.parent);if(!e.isJSDocTypeAlias(t))return!1;if(!e.isJSDocEnumTag(t)&&t.fullName)return!0;var r=e.getNameOfDeclaration(t);return!!r&&(!(!e.isPropertyAccessEntityNameExpression(r.parent)||!et(r.parent))||!!(e.isDeclaration(r.parent)&&1&e.getCombinedModifierFlags(r.parent)))}(t);if(2097152&r)return 271===t.kind||261===t.kind&&i?z(u.symbol.exports,u.symbol,t,r,n):z(u.locals,void 0,t,r,n);if(e.isJSDocTypeAlias(t)&&e.Debug.assert(e.isInJSFile(t)),!e.isAmbientModule(t)&&(i||64&u.flags)){if(!u.locals||e.hasSyntacticModifier(t,512)&&!J(t))return z(u.symbol.exports,u.symbol,t,r,n);var a=111551&r?1048576:0,o=z(u.locals,void 0,t,a,n);return o.exportSymbol=z(u.symbol.exports,u.symbol,t,r,n),t.localSymbol=o,o}return z(u.locals,void 0,t,r,n)}function V(e){q(e,(function(e){return 252===e.kind?Be(e):void 0})),q(e,(function(e){return 252!==e.kind?Be(e):void 0}))}function q(t,r){void 0===r&&(r=Be),void 0!==t&&e.forEach(t,r)}function W(t){e.forEachChild(t,Be,q)}function H(t){var r=w;if(w=!1,function(t){if(!(1&v.flags))return!1;if(v===O){if((e.isStatementButNotDeclaration(t)&&232!==t.kind||253===t.kind||257===t.kind&&function(t){var r=a(t);return 1===r||2===r&&e.shouldPreserveConstEnums(i)}(t))&&(v=M,!i.allowUnreachableCode)){var r=e.unreachableCodeIsError(i)&&!(8388608&t.flags)&&(!e.isVariableStatement(t)||!!(3&e.getCombinedNodeFlags(t.declarationList))||t.declarationList.declarations.some((function(e){return!!e.initializer})));!function(t,r){if(e.isStatement(t)&&l(t)&&e.isBlock(t.parent)){var n=t.parent.statements,i=e.sliceAfter(n,t);e.getRangesWhere(i,l,(function(e,t){return r(i[e],i[t-1])}))}else r(t,t)}(t,(function(t,n){return Re(r,t,n,e.Diagnostics.Unreachable_code_detected)}))}}return!0}(t))return W(t),je(t),void(w=r);switch(t.kind>=233&&t.kind<=249&&!i.allowUnreachableCode&&(t.flowNode=v),t.kind){case 237:!function(e){var t=ge(e,ee()),r=Z(),n=Z();ne(t,v),v=t,pe(e.expression,r,n),v=ce(r),fe(e.statement,n,t),ne(t,v),v=ce(n)}(t);break;case 236:!function(e){var t=ee(),r=ge(e,Z()),n=Z();ne(t,v),v=t,fe(e.statement,n,r),ne(r,v),v=ce(r),pe(e.expression,t,n),v=ce(n)}(t);break;case 238:!function(e){var t=ge(e,ee()),r=Z(),n=Z();Be(e.initializer),ne(t,v),v=t,pe(e.condition,r,n),v=ce(r),fe(e.statement,n,t),Be(e.incrementor),ne(t,v),v=ce(n)}(t);break;case 239:case 240:!function(e){var t=ge(e,ee()),r=Z();Be(e.expression),ne(t,v),v=t,240===e.kind&&Be(e.awaitModifier);ne(r,v),Be(e.initializer),251!==e.initializer.kind&&he(e.initializer);fe(e.statement,r,t),ne(t,v),v=ce(r)}(t);break;case 235:!function(e){var t=Z(),r=Z(),n=Z();pe(e.expression,t,r),v=ce(t),Be(e.thenStatement),ne(n,v),v=ce(r),Be(e.elseStatement),ne(n,v),v=ce(n)}(t);break;case 243:case 247:!function(e){Be(e.expression),243===e.kind&&(k=!0,x&&ne(x,v));v=O}(t);break;case 242:case 241:!function(e){if(Be(e.label),e.label){var t=function(e){for(var t=C;t;t=t.next)if(t.name===e)return t;return}(e.label.escapedText);t&&(t.referenced=!0,me(e,t.breakTarget,t.continueTarget))}else me(e,h,D)}(t);break;case 248:!function(t){var r=x,n=E,i=Z(),a=Z(),o=Z();t.finallyBlock&&(x=a);ne(o,v),E=o,Be(t.tryBlock),ne(i,v),t.catchClause&&(v=ce(o),ne(o=Z(),v),E=o,Be(t.catchClause),ne(i,v));if(x=r,E=n,t.finallyBlock){var s=Z();s.antecedents=e.concatenate(e.concatenate(i.antecedents,o.antecedents),a.antecedents),v=s,Be(t.finallyBlock),1&v.flags?v=O:(x&&a.antecedents&&ne(x,te(s,a.antecedents,v)),E&&o.antecedents&&ne(E,te(s,o.antecedents,v)),v=i.antecedents?te(s,i.antecedents,v):O)}else v=ce(i)}(t);break;case 245:!function(t){var r=Z();Be(t.expression);var n=h,i=T;h=r,T=v,Be(t.caseBlock),ne(r,v);var a=e.forEach(t.caseBlock.clauses,(function(e){return 286===e.kind}));t.possiblyExhaustive=!a&&!r.antecedents,a||ne(r,ae(T,t,0,0));h=n,T=i,v=ce(r)}(t);break;case 259:!function(e){for(var t=e.clauses,r=G(e.parent.expression),n=O,a=0;a=116&&t.originalKeywordKind<=124?n.bindDiagnostics.push(R(t,function(t){if(e.getContainingClass(t))return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode;if(n.externalModuleIndicator)return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode;return e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode}(t),e.declarationNameToString(t))):130===t.originalKeywordKind?e.isExternalModule(n)&&e.isInTopLevelContext(t)?n.bindDiagnostics.push(R(t,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,e.declarationNameToString(t))):32768&t.flags&&n.bindDiagnostics.push(R(t,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(t))):124===t.originalKeywordKind&&8192&t.flags&&n.bindDiagnostics.push(R(t,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(t))))}function Ie(t,r){if(r&&78===r.kind){var i=r;if(function(t){return e.isIdentifier(t)&&("eval"===t.escapedText||"arguments"===t.escapedText)}(i)){var a=e.getErrorSpanForNode(n,r);n.bindDiagnostics.push(e.createFileDiagnostic(n,a.start,a.length,function(t){if(e.getContainingClass(t))return e.Diagnostics.Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode;if(n.externalModuleIndicator)return e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode;return e.Diagnostics.Invalid_use_of_0_in_strict_mode}(t),e.idText(i)))}}}function Oe(e){F&&Ie(e,e.name)}function Me(t){if(o<2&&298!==f.kind&&257!==f.kind&&!e.isFunctionLike(f)){var r=e.getErrorSpanForNode(n,t);n.bindDiagnostics.push(e.createFileDiagnostic(n,r.start,r.length,function(t){return e.getContainingClass(t)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:n.externalModuleIndicator?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5}(t)))}}function Le(t,r,i,a,o){var s=e.getSpanOfTokenAtPosition(n,t.pos);n.bindDiagnostics.push(e.createFileDiagnostic(n,s.start,s.length,r,i,a,o))}function Re(t,i,a,o){!function(t,i,a){var o=e.createFileDiagnostic(n,i.pos,i.end-i.pos,a);t?n.bindDiagnostics.push(o):n.bindSuggestionDiagnostics=e.append(n.bindSuggestionDiagnostics,r(r({},o),{category:e.DiagnosticCategory.Suggestion}))}(t,{pos:e.getTokenPosOfNode(i,n),end:a.end},o)}function Be(t){if(t){e.setParent(t,s);var r=F;if(ze(t),t.kind>157){var n=s;s=t;var i=Te(t);0===i?H(t):function(t,r){var n=u,i=p,a=f;if(1&r?(210!==t.kind&&(p=u),u=f=t,32&r&&(u.locals=e.createSymbolTable()),Ce(u)):2&r&&((f=t).locals=void 0),4&r){var o=v,s=h,l=D,d=x,_=E,g=C,m=k,b=16&r&&!e.hasSyntacticModifier(t,256)&&!t.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(t);b||(v=c({flags:2}),144&r&&(v.node=t)),x=b||167===t.kind||e.isInJSFile(t)&&(252===t.kind||209===t.kind)?Z():void 0,E=void 0,h=void 0,D=void 0,C=void 0,k=!1,H(t),t.flags&=-2817,!(1&v.flags)&&8&r&&e.nodeIsPresent(t.body)&&(t.flags|=256,k&&(t.flags|=512),t.endFlowNode=v),298===t.kind&&(t.flags|=A,t.endFlowNode=v),x&&(ne(x,v),v=ce(x),(167===t.kind||e.isInJSFile(t)&&(252===t.kind||209===t.kind))&&(t.returnFlowNode=v)),b||(v=o),h=s,D=l,x=d,E=_,C=g,k=m}else 64&r?(y=!1,H(t),t.flags=y?128|t.flags:-129&t.flags):H(t);u=n,p=i,f=a}(t,i),s=n}else{n=s;1===t.kind&&(s=t),je(t),s=n}F=r}}function je(t){if(e.hasJSDocNodes(t))if(e.isInJSFile(t))for(var r=0,n=t.jsDoc;r=2&&(e.isDeclarationStatement(t.statement)||e.isVariableStatement(t.statement))&&Le(t.label,e.Diagnostics.A_label_is_not_allowed_here)}(t);case 188:return void(y=!0);case 173:break;case 160:return function(t){if(e.isJSDocTemplateTag(t.parent)){var r=e.find(t.parent.parent.tags,e.isJSDocTypeAlias)||e.getHostSignatureFromJSDoc(t.parent);r?(r.locals||(r.locals=e.createSymbolTable()),z(r.locals,void 0,t,262144,526824)):ke(t,262144,526824)}else if(186===t.parent.kind){var n=function(t){var r=e.findAncestor(t,(function(t){return t.parent&&e.isConditionalTypeNode(t.parent)&&t.parent.extendsType===t}));return r&&r.parent}(t.parent);n?(n.locals||(n.locals=e.createSymbolTable()),z(n.locals,void 0,t,262144,526824)):Ne(t,262144,J(t))}else ke(t,262144,526824)}(t);case 161:return at(t);case 250:return it(t);case 199:return t.flowNode=v,it(t);case 164:case 163:return function(e){return ot(e,4|(e.questionToken?16777216:0),0)}(t);case 289:case 290:return ot(t,4,0);case 292:return ot(t,8,900095);case 170:case 171:case 172:return ke(t,131072,0);case 166:case 165:return ot(t,8192|(t.questionToken?16777216:0),e.isObjectLiteralMethod(t)?0:103359);case 252:return function(t){n.isDeclarationFile||8388608&t.flags||e.isAsyncFunction(t)&&(A|=2048);Oe(t),F?(Me(t),Pe(t,16,110991)):ke(t,16,110991)}(t);case 167:return ke(t,16384,0);case 168:return ot(t,32768,46015);case 169:return ot(t,65536,78783);case 175:case 309:case 315:case 176:return function(t){var r=B(131072,J(t));j(r,t,131072);var n=B(2048,"__type");j(n,t,2048),n.members=e.createSymbolTable(),n.members.set(r.escapedName,r)}(t);case 178:case 314:case 191:return function(e){return Ne(e,2048,"__type")}(t);case 322:return function(t){W(t);var r=e.getHostSignatureFromJSDoc(t);r&&166!==r.kind&&j(r.symbol,r,32)}(t);case 201:return function(t){var r;if(function(e){e[e.Property=1]="Property",e[e.Accessor=2]="Accessor"}(r||(r={})),F&&!e.isAssignmentTarget(t))for(var i=new e.Map,a=0,o=t.properties;a1&&2097152&v.flags&&(n=e.createSymbolTable()).set("export=",v);return O(n),C(l);function h(e){return!!e&&78===e.kind}function x(t){return e.isVariableStatement(t)?e.filter(e.map(t.declarationList.declarations,e.getNameOfDeclaration),h):e.filter([e.getNameOfDeclaration(t)],h)}function b(r){var n=e.find(r,e.isExportAssignment),i=e.findIndex(r,e.isModuleDeclaration),a=-1!==i?r[i]:void 0;if(a&&n&&n.isExportEquals&&e.isIdentifier(n.expression)&&e.isIdentifier(a.name)&&e.idText(a.name)===e.idText(n.expression)&&a.body&&e.isModuleBlock(a.body)){var o=e.filter(r,(function(t){return!!(1&e.getEffectiveModifierFlags(t))})),s=a.name,c=a.body;if(e.length(o)&&(a=e.factory.updateModuleDeclaration(a,a.decorators,a.modifiers,a.name,c=e.factory.updateModuleBlock(c,e.factory.createNodeArray(t(t([],a.body.statements),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.map(e.flatMap(o,(function(e){return x(e)})),(function(t){return e.factory.createExportSpecifier(void 0,t)}))),void 0)])))),r=t(t(t([],r.slice(0,i)),[a]),r.slice(i+1))),!e.find(r,(function(t){return t!==a&&e.nodeHasName(t,s)}))){l=[];var u=!e.some(c.statements,(function(t){return e.hasSyntacticModifier(t,1)||e.isExportAssignment(t)||e.isExportDeclaration(t)}));e.forEach(c.statements,(function(e){q(e,u?1:0)})),r=t(t([],e.filter(r,(function(e){return e!==a&&e!==n}))),l)}}return r}function S(r){var n=e.filter(r,(function(t){return e.isExportDeclaration(t)&&!t.moduleSpecifier&&!!t.exportClause&&e.isNamedExports(t.exportClause)}));if(e.length(n)>1){var i=e.filter(r,(function(t){return!e.isExportDeclaration(t)||!!t.moduleSpecifier||!t.exportClause}));r=t(t([],i),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(n,(function(t){return e.cast(t.exportClause,e.isNamedExports).elements}))),void 0)])}var a=e.filter(r,(function(t){return e.isExportDeclaration(t)&&!!t.moduleSpecifier&&!!t.exportClause&&e.isNamedExports(t.exportClause)}));if(e.length(a)>1){var o=e.group(a,(function(t){return e.isStringLiteral(t.moduleSpecifier)?">"+t.moduleSpecifier.text:">"}));if(o.length!==a.length)for(var s=function(n){n.length>1&&(r=t(t([],e.filter(r,(function(e){return-1===n.indexOf(e)}))),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(n,(function(t){return e.cast(t.exportClause,e.isNamedExports).elements}))),n[0].moduleSpecifier)]))},c=0,u=o;c=0){var n=t[r],i=e.mapDefined(n.exportClause.elements,(function(r){if(!r.propertyName){var n=e.indicesOf(t),i=e.filter(n,(function(n){return e.nodeHasName(t[n],r.name)}));if(e.length(i)&&e.every(i,(function(e){return k(t[e])}))){for(var a=0,o=i;a0&&e.isSingleOrDoubleQuote(a.charCodeAt(0))?e.stripQuotes(a):a}return"default"===r?r="_default":"export="===r&&(r="_exports"),r=e.isIdentifierText(r,z)&&!e.isStringANonContextualKeyword(r)?r:"_"+r.replace(/[^a-zA-Z0-9]/g,"_")}function ye(e,t){var r=M(e);return i.remappedSymbolNames.has(r)?i.remappedSymbolNames.get(r):(t=me(e,t),i.remappedSymbolNames.set(r,t),t)}}(n,i,u)}))}};function i(t,r,i,a){var o,s;e.Debug.assert(void 0===t||0==(8&t.flags));var c={enclosingDeclaration:t,flags:r||0,tracker:i&&i.trackSymbol?i:{trackSymbol:e.noop,moduleResolverHost:134217728&r?{getCommonSourceDirectory:n.getCommonSourceDirectory?function(){return n.getCommonSourceDirectory()}:function(){return""},getSourceFiles:function(){return n.getSourceFiles()},getCurrentDirectory:function(){return n.getCurrentDirectory()},getSymlinkCache:e.maybeBind(n,n.getSymlinkCache),useCaseSensitiveFileNames:e.maybeBind(n,n.useCaseSensitiveFileNames),redirectTargetsMap:n.redirectTargetsMap,getProjectReferenceRedirect:function(e){return n.getProjectReferenceRedirect(e)},isSourceOfProjectReferenceRedirect:function(e){return n.isSourceOfProjectReferenceRedirect(e)},fileExists:function(e){return n.fileExists(e)},getFileIncludeReasons:function(){return n.getFileIncludeReasons()}}:void 0},encounteredError:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0},u=a(c);return c.truncating&&1&c.flags&&(null===(s=null===(o=c.tracker)||void 0===o?void 0:o.reportTruncationError)||void 0===s||s.call(o)),c.encounteredError?void 0:u}function a(t){return t.truncating?t.truncating:t.truncating=t.approximateLength>(1&t.flags?e.noTruncationMaximumTruncationLength:e.defaultMaximumTruncationLength)}function s(t,r){o&&o.throwIfCancellationRequested&&o.throwIfCancellationRequested();var n=8388608&r.flags;if(r.flags&=-8388609,!t)return 262144&r.flags?(r.approximateLength+=3,e.factory.createKeywordTypeNode(128)):void(r.encounteredError=!0);if(536870912&r.flags||(t=Dc(t)),1&t.flags)return r.approximateLength+=3,e.factory.createKeywordTypeNode(t===Fe?136:128);if(2&t.flags)return e.factory.createKeywordTypeNode(152);if(4&t.flags)return r.approximateLength+=6,e.factory.createKeywordTypeNode(147);if(8&t.flags)return r.approximateLength+=6,e.factory.createKeywordTypeNode(144);if(64&t.flags)return r.approximateLength+=6,e.factory.createKeywordTypeNode(155);if(16&t.flags)return r.approximateLength+=7,e.factory.createKeywordTypeNode(131);if(1024&t.flags&&!(1048576&t.flags)){var i=wi(t.symbol),c=T(i,r,788968);if(Xo(i)===t)return c;var l=e.symbolName(t.symbol);return e.isIdentifierText(l,0)?V(c,e.factory.createTypeReferenceNode(l,void 0)):e.isImportTypeNode(c)?(c.isTypeOf=!0,e.factory.createIndexedAccessTypeNode(c,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(l)))):e.isTypeReferenceNode(c)?e.factory.createIndexedAccessTypeNode(e.factory.createTypeQueryNode(c.typeName),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(l))):e.Debug.fail("Unhandled type node kind returned from `symbolToTypeNode`.")}if(1056&t.flags)return T(t.symbol,r,788968);if(128&t.flags)return r.approximateLength+=t.value.length+2,e.factory.createLiteralTypeNode(e.setEmitFlags(e.factory.createStringLiteral(t.value,!!(268435456&r.flags)),16777216));if(256&t.flags){var m=t.value;return r.approximateLength+=(""+m).length,e.factory.createLiteralTypeNode(m<0?e.factory.createPrefixUnaryExpression(40,e.factory.createNumericLiteral(-m)):e.factory.createNumericLiteral(m))}if(2048&t.flags)return r.approximateLength+=e.pseudoBigIntToString(t.value).length+1,e.factory.createLiteralTypeNode(e.factory.createBigIntLiteral(t.value));if(512&t.flags)return r.approximateLength+=t.intrinsicName.length,e.factory.createLiteralTypeNode("true"===t.intrinsicName?e.factory.createTrue():e.factory.createFalse());if(8192&t.flags){if(!(1048576&r.flags)){if(ta(t.symbol,r.enclosingDeclaration))return r.approximateLength+=6,T(t.symbol,r,111551);r.tracker.reportInaccessibleUniqueSymbolError&&r.tracker.reportInaccessibleUniqueSymbolError()}return r.approximateLength+=13,e.factory.createTypeOperatorNode(151,e.factory.createKeywordTypeNode(148))}if(16384&t.flags)return r.approximateLength+=4,e.factory.createKeywordTypeNode(113);if(32768&t.flags)return r.approximateLength+=9,e.factory.createKeywordTypeNode(150);if(65536&t.flags)return r.approximateLength+=4,e.factory.createLiteralTypeNode(e.factory.createNull());if(131072&t.flags)return r.approximateLength+=5,e.factory.createKeywordTypeNode(141);if(4096&t.flags)return r.approximateLength+=6,e.factory.createKeywordTypeNode(148);if(67108864&t.flags)return r.approximateLength+=6,e.factory.createKeywordTypeNode(145);if(Ql(t))return 4194304&r.flags&&(r.encounteredError||32768&r.flags||(r.encounteredError=!0),r.tracker.reportInaccessibleThisError&&r.tracker.reportInaccessibleThisError()),r.approximateLength+=4,e.factory.createThisTypeNode();if(!n&&t.aliasSymbol&&(16384&r.flags||ea(t.aliasSymbol,r.enclosingDeclaration))){var y=_(t.aliasTypeArguments,r);return!Wi(t.aliasSymbol.escapedName)||32&t.aliasSymbol.flags?T(t.aliasSymbol,r,788968,y):e.factory.createTypeReferenceNode(e.factory.createIdentifier(""),y)}var v=e.getObjectFlags(t);if(4&v)return e.Debug.assert(!!(524288&t.flags)),t.node?K(t,U):U(t);if(262144&t.flags||3&v){if(262144&t.flags&&e.contains(r.inferTypeParameters,t))return r.approximateLength+=e.symbolName(t.symbol).length+6,e.factory.createInferTypeNode(g(t,r,void 0));if(4&r.flags&&262144&t.flags&&!ea(t.symbol,r.enclosingDeclaration)){var h=k(t,r);return r.approximateLength+=e.idText(h).length,e.factory.createTypeReferenceNode(e.factory.createIdentifier(e.idText(h)),void 0)}return t.symbol?T(t.symbol,r,788968):e.factory.createTypeReferenceNode(e.factory.createIdentifier("?"),void 0)}if(1048576&t.flags&&t.origin&&(t=t.origin),3145728&t.flags){var D=1048576&t.flags?function(e){for(var t=[],r=0,n=0;n0?1048576&t.flags?e.factory.createUnionTypeNode(x):e.factory.createIntersectionTypeNode(x):void(r.encounteredError||262144&r.flags||(r.encounteredError=!0))}if(48&v)return e.Debug.assert(!!(524288&t.flags)),J(t);if(4194304&t.flags){var b=t.type;r.approximateLength+=6;var S=s(b,r);return e.factory.createTypeOperatorNode(138,S)}if(134217728&t.flags){var E=t.texts,C=t.types,A=e.factory.createTemplateHead(E[0]),F=e.factory.createNodeArray(e.map(C,(function(t,n){return e.factory.createTemplateLiteralTypeSpan(s(t,r),(n10)return u(r);r.symbolDepth.set(s,i+1)}r.visitedTypes.add(a);var c=n(t);return r.visitedTypes.delete(a),s&&r.symbolDepth.set(s,i),c}function z(t){if(Xs(t)||t.containsError)return function(t){e.Debug.assert(!!(524288&t.flags));var n,i=t.declaration.readonlyToken?e.factory.createToken(t.declaration.readonlyToken.kind):void 0,a=t.declaration.questionToken?e.factory.createToken(t.declaration.questionToken.kind):void 0;n=qs(t)?e.factory.createTypeOperatorNode(138,s(Ws(t),r)):s(Ks(t),r);var o=g(Js(t),r,n),c=t.declaration.nameType?s(zs(t),r):void 0,u=s(Us(t),r),l=e.factory.createMappedTypeNode(i,o,c,a,u);return r.approximateLength+=10,e.setEmitFlags(l,1)}(t);var n=$s(t);if(!n.properties.length&&!n.stringIndexInfo&&!n.numberIndexInfo){if(!n.callSignatures.length&&!n.constructSignatures.length)return r.approximateLength+=2,e.setEmitFlags(e.factory.createTypeLiteralNode(void 0),1);if(1===n.callSignatures.length&&!n.constructSignatures.length)return f(n.callSignatures[0],175,r);if(1===n.constructSignatures.length&&!n.callSignatures.length)return f(n.constructSignatures[0],176,r)}var i=e.filter(n.constructSignatures,(function(e){return!!(4&e.flags)}));if(e.some(i)){var o=e.map(i,ou);return n.callSignatures.length+(n.constructSignatures.length-i.length)+(n.stringIndexInfo?1:0)+(n.numberIndexInfo?1:0)+(2048&r.flags?e.countWhere(n.properties,(function(e){return!(4194304&e.flags)})):e.length(n.properties))&&o.push(function(t){if(0===t.constructSignatures.length)return t;if(t.objectTypeWithoutAbstractConstructSignatures)return t.objectTypeWithoutAbstractConstructSignatures;var r=e.filter(t.constructSignatures,(function(e){return!(4&e.flags)}));if(t.constructSignatures===r)return t;var n=Yi(t.symbol,t.members,t.callSignatures,e.some(r)?r:e.emptyArray,t.stringIndexInfo,t.numberIndexInfo);return t.objectTypeWithoutAbstractConstructSignatures=n,n.objectTypeWithoutAbstractConstructSignatures=n,n}(n)),s(Al(o),r)}var c=r.flags;r.flags|=4194304;var l=function(t){if(a(r))return[e.factory.createPropertySignature(void 0,"...",void 0,void 0)];for(var n=[],i=0,o=t.callSignatures;i0){var v=(t.target.typeParameters||e.emptyArray).length;y=_(n.slice(b,v),r)}S=r.flags;r.flags|=16;var h=T(t.symbol,r,788968,y);return r.flags=S,u?V(u,h):h}if(n.length>0){var D=Su(t),x=_(n.slice(0,D),r);if(x){if(t.target.labeledElementDeclarations)for(var b=0;b2)return[s(t[0],r),e.factory.createTypeReferenceNode("... "+(t.length-2)+" more ...",void 0),s(t[t.length-1],r)]}for(var i=!(64&r.flags)?e.createUnderscoreEscapedMultiMap():void 0,o=[],c=0,u=0,l=t;u0)),a}function x(t,r){var n;return 524384&Pb(t).flags&&(n=e.factory.createNodeArray(e.map(No(t),(function(e){return m(e,r)})))),n}function b(t,r,n){var i;e.Debug.assert(t&&0<=r&&r1?m(a,a.length-1,1):void 0,c=i||b(a,0,r),u=E(a[0],r);!(67108864&r.flags)&&e.getEmitModuleResolutionKind(A)===e.ModuleResolutionKind.NodeJs&&u.indexOf("/node_modules/")>=0&&(r.encounteredError=!0,r.tracker.reportLikelyUnsafeImportRequiredError&&r.tracker.reportLikelyUnsafeImportRequiredError(u));var l=e.factory.createLiteralTypeNode(e.factory.createStringLiteral(u));if(r.tracker.trackExternalModuleSymbolOfImportTypeNode&&r.tracker.trackExternalModuleSymbolOfImportTypeNode(a[0]),r.approximateLength+=u.length+10,!s||e.isEntityName(s)){if(s)(f=e.isIdentifier(s)?s:s.right).typeArguments=void 0;return e.factory.createImportTypeNode(l,s,c,o)}var d=S(s),_=d.objectType.typeName;return e.factory.createIndexedAccessTypeNode(e.factory.createImportTypeNode(l,_,c,o),d.indexType)}var p=m(a,a.length-1,0);if(e.isIndexedAccessTypeNode(p))return p;if(o)return e.factory.createTypeQueryNode(p);var f,g=(f=e.isIdentifier(p)?p:p.right).typeArguments;return f.typeArguments=void 0,e.factory.createTypeReferenceNode(p,g);function m(t,n,a){var o,s=n===t.length-1?i:b(t,n,r),c=t[n],u=t[n-1];if(0===n)r.flags|=16777216,o=Ea(c,r),r.approximateLength+=(o?o.length:0)+1,r.flags^=16777216;else if(u&&Ci(u)){var l=Ci(u);e.forEachEntry(l,(function(t,r){if(Li(t,c)&&!cs(r)&&"export="!==r)return o=e.unescapeLeadingUnderscores(r),!0}))}if(o||(o=Ea(c,r)),r.approximateLength+=o.length+1,!(16&r.flags)&&u&&fs(u)&&fs(u).get(c.escapedName)&&Li(fs(u).get(c.escapedName),c)){var d=m(t,n-1,a);return e.isIndexedAccessTypeNode(d)?e.factory.createIndexedAccessTypeNode(d,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(o))):e.factory.createIndexedAccessTypeNode(e.factory.createTypeReferenceNode(d,s),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(o)))}var _=e.setEmitFlags(e.factory.createIdentifier(o,s),16777216);if(_.symbol=c,n>a){d=m(t,n-1,a);return e.isEntityName(d)?e.factory.createQualifiedName(d,_):e.Debug.fail("Impossible construct - an export of an indexed access cannot be reachable")}return _}}function C(e,t,r){var n=On(t.enclosingDeclaration,e,788968,void 0,e,!1);return!!n&&!(262144&n.flags&&n===r.symbol)}function k(t,r){var n;if(4&r.flags&&r.typeParameterNames){var i=r.typeParameterNames.get(fl(t));if(i)return i}var a=F(t.symbol,r,788968,!0);if(!(78&a.kind))return e.factory.createIdentifier("(Missing type parameter)");if(4&r.flags){for(var o=a.escapedText,s=0,c=o;(null===(n=r.typeParameterNamesByText)||void 0===n?void 0:n.has(c))||C(c,r,t);)c=o+"_"+ ++s;c!==o&&(a=e.factory.createIdentifier(c,a.typeArguments)),(r.typeParameterNames||(r.typeParameterNames=new e.Map)).set(fl(t),a),(r.typeParameterNamesByText||(r.typeParameterNamesByText=new e.Set)).add(a.escapedText)}return a}function F(t,r,n,i){var a=h(t,r,n);return!i||1===a.length||r.encounteredError||65536&r.flags||(r.encounteredError=!0),function t(n,i){var a=b(n,i,r),o=n[i];0===i&&(r.flags|=16777216);var s=Ea(o,r);0===i&&(r.flags^=16777216);var c=e.setEmitFlags(e.factory.createIdentifier(s,a),16777216);return c.symbol=o,i>0?e.factory.createQualifiedName(t(n,i-1),c):c}(a,a.length-1)}function N(t,r,n){var i=h(t,r,n);return function t(n,i){var a=b(n,i,r),o=n[i];0===i&&(r.flags|=16777216);var s=Ea(o,r);0===i&&(r.flags^=16777216);var c=s.charCodeAt(0);if(e.isSingleOrDoubleQuote(c)&&e.some(o.declarations,ca))return e.factory.createStringLiteral(E(o,r));var u=35===c?s.length>1&&e.isIdentifierStart(s.charCodeAt(1),z):e.isIdentifierStart(c,z);if(0===i||u){var l=e.setEmitFlags(e.factory.createIdentifier(s,a),16777216);return l.symbol=o,i>0?e.factory.createPropertyAccessExpression(t(n,i-1),l):l}91===c&&(s=s.substring(1,s.length-1),c=s.charCodeAt(0));var d=void 0;return e.isSingleOrDoubleQuote(c)?d=e.factory.createStringLiteral(s.substring(1,s.length-1).replace(/\\./g,(function(e){return e.substring(1)})),39===c):""+ +s===s&&(d=e.factory.createNumericLiteral(+s)),d||((d=e.setEmitFlags(e.factory.createIdentifier(s,a),16777216)).symbol=o),e.factory.createElementAccessExpression(t(n,i-1),d)}(i,i.length-1)}function P(t){var r=e.getNameOfDeclaration(t);return!!r&&e.isStringLiteral(r)}function w(t){var r=e.getNameOfDeclaration(t);return!!(r&&e.isStringLiteral(r)&&(r.singleQuote||!e.nodeIsSynthesized(r)&&e.startsWith(e.getTextOfNode(r,!1),"'")))}function I(t,r){var n=!!e.length(t.declarations)&&e.every(t.declarations,w),i=function(t,r,n){var i=An(t).nameType;if(i){if(384&i.flags){var a=""+i.value;return e.isIdentifierText(a,A.target)||oy(a)?oy(a)&&e.startsWith(a,"-")?e.factory.createComputedPropertyName(e.factory.createNumericLiteral(+a)):L(a):e.factory.createStringLiteral(a,!!n)}if(8192&i.flags)return e.factory.createComputedPropertyName(N(i.symbol,r,111551))}}(t,r,n);return i||L(e.unescapeLeadingUnderscores(t.escapedName),!!e.length(t.declarations)&&e.every(t.declarations,P),n)}function L(t,r,n){return e.isIdentifierText(t,A.target)?e.factory.createIdentifier(t):!r&&oy(t)&&+t>=0?e.factory.createNumericLiteral(+t):e.factory.createStringLiteral(t,!!n)}function R(t,r){return t.declarations&&e.find(t.declarations,(function(t){return!(!e.getEffectiveTypeAnnotationNode(t)||r&&!e.findAncestor(t,(function(e){return e===r})))}))}function B(t,r){return!(4&e.getObjectFlags(r))||!e.isTypeReferenceNode(t)||e.length(t.typeArguments)>=Jc(r.target.typeParameters)}function j(t,r,n,i,a,o){if(r!==ke&&i){var c=R(n,i);if(c&&!e.isFunctionLikeDeclaration(c)&&!e.isGetAccessorDeclaration(c)){var u=e.getEffectiveTypeAnnotationNode(c);if(Rd(u)===r&&B(u,r)){var l=K(t,u,a,o);if(l)return l}}}var d=t.flags;8192&r.flags&&r.symbol===n&&(!t.enclosingDeclaration||e.some(n.declarations,(function(r){return e.getSourceFileOfNode(r)===e.getSourceFileOfNode(t.enclosingDeclaration)})))&&(t.flags|=1048576);var _=s(r,t);return t.flags=d,_}function J(t,r,n){var i,a,o=!1,s=e.getFirstIdentifier(t);if(e.isInJSFile(t)&&(e.isExportsIdentifier(s)||e.isModuleExportsAccessExpression(s.parent)||e.isQualifiedName(s.parent)&&e.isModuleIdentifier(s.parent.left)&&e.isExportsIdentifier(s.parent.right)))return{introducesError:o=!0,node:t};var c=fi(s,67108863,!0,!0);if(c&&(0!==ia(c,r.enclosingDeclaration,67108863,!1).accessibility?o=!0:(null===(a=null===(i=r.tracker)||void 0===i?void 0:i.trackSymbol)||void 0===a||a.call(i,c,r.enclosingDeclaration,67108863),null==n||n(c)),e.isIdentifier(t))){var u=262144&c.flags?k(Xo(c),r):e.factory.cloneNode(t);return u.symbol=c,{introducesError:o,node:e.setEmitFlags(e.setOriginalNode(u,t),16777216)}}return{introducesError:o,node:t}}function K(t,r,i,a){o&&o.throwIfCancellationRequested&&o.throwIfCancellationRequested();var c=!1,u=e.getSourceFileOfNode(r),l=e.visitNode(r,(function r(o){if(e.isJSDocAllType(o)||311===o.kind)return e.factory.createKeywordTypeNode(128);if(e.isJSDocUnknownType(o))return e.factory.createKeywordTypeNode(152);if(e.isJSDocNullableType(o))return e.factory.createUnionTypeNode([e.visitNode(o.type,r),e.factory.createLiteralTypeNode(e.factory.createNull())]);if(e.isJSDocOptionalType(o))return e.factory.createUnionTypeNode([e.visitNode(o.type,r),e.factory.createKeywordTypeNode(150)]);if(e.isJSDocNonNullableType(o))return e.visitNode(o.type,r);if(e.isJSDocVariadicType(o))return e.factory.createArrayTypeNode(e.visitNode(o.type,r));if(e.isJSDocTypeLiteral(o))return e.factory.createTypeLiteralNode(e.map(o.jsDocPropertyTags,(function(n){var i=e.isIdentifier(n.name)?n.name:n.name.right,a=wa(Rd(o),i.escapedText),c=a&&n.typeExpression&&Rd(n.typeExpression.type)!==a?s(a,t):void 0;return e.factory.createPropertySignature(void 0,i,n.isBracketed||n.typeExpression&&e.isJSDocOptionalType(n.typeExpression.type)?e.factory.createToken(57):void 0,c||n.typeExpression&&e.visitNode(n.typeExpression.type,r)||e.factory.createKeywordTypeNode(128))})));if(e.isTypeReferenceNode(o)&&e.isIdentifier(o.typeName)&&""===o.typeName.escapedText)return e.setOriginalNode(e.factory.createKeywordTypeNode(128),o);if((e.isExpressionWithTypeArguments(o)||e.isTypeReferenceNode(o))&&e.isJSDocIndexSignature(o))return e.factory.createTypeLiteralNode([e.factory.createIndexSignature(void 0,void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,"x",void 0,e.visitNode(o.typeArguments[0],r))],e.visitNode(o.typeArguments[1],r))]);if(e.isJSDocFunctionType(o)){var l;return e.isJSDocConstructSignature(o)?e.factory.createConstructorTypeNode(o.modifiers,e.visitNodes(o.typeParameters,r),e.mapDefined(o.parameters,(function(t,n){return t.name&&e.isIdentifier(t.name)&&"new"===t.name.escapedText?void(l=t.type):e.factory.createParameterDeclaration(void 0,void 0,g(t),m(t,n),t.questionToken,e.visitNode(t.type,r),void 0)})),e.visitNode(l||o.type,r)||e.factory.createKeywordTypeNode(128)):e.factory.createFunctionTypeNode(e.visitNodes(o.typeParameters,r),e.map(o.parameters,(function(t,n){return e.factory.createParameterDeclaration(void 0,void 0,g(t),m(t,n),t.questionToken,e.visitNode(t.type,r),void 0)})),e.visitNode(o.type,r)||e.factory.createKeywordTypeNode(128))}if(e.isTypeReferenceNode(o)&&e.isInJSDoc(o)&&(!B(o,Rd(o))||Lu(o)||be===Au(ku(o),788968,!0)))return e.setOriginalNode(s(Rd(o),t),o);if(e.isLiteralImportTypeNode(o)){var d=Fn(o).resolvedSymbol;return!e.isInJSDoc(o)||!d||(o.isTypeOf||788968&d.flags)&&e.length(o.typeArguments)>=Jc(No(d))?e.factory.updateImportTypeNode(o,e.factory.updateLiteralTypeNode(o.argument,function(r,i){if(a){if(t.tracker&&t.tracker.moduleResolverHost){var o=eE(r);if(o){var s={getCanonicalFileName:e.createGetCanonicalFileName(!!n.useCaseSensitiveFileNames),getCurrentDirectory:function(){return t.tracker.moduleResolverHost.getCurrentDirectory()},getCommonSourceDirectory:function(){return t.tracker.moduleResolverHost.getCommonSourceDirectory()}},c=e.getResolvedExternalModuleName(s,o);return e.factory.createStringLiteral(c)}}}else if(t.tracker&&t.tracker.trackExternalModuleSymbolOfImportTypeNode){var u=yi(i,i,void 0);u&&t.tracker.trackExternalModuleSymbolOfImportTypeNode(u)}return i}(o,o.argument.literal)),o.qualifier,e.visitNodes(o.typeArguments,r,e.isTypeNode),o.isTypeOf):e.setOriginalNode(s(Rd(o),t),o)}if(e.isEntityName(o)||e.isEntityNameExpression(o)){var _=J(o,t,i),p=_.introducesError,f=_.node;if(c=c||p,f!==o)return f}u&&e.isTupleTypeNode(o)&&e.getLineAndCharacterOfPosition(u,o.pos).line===e.getLineAndCharacterOfPosition(u,o.end).line&&e.setEmitFlags(o,1);return e.visitEachChild(o,r,e.nullTransformationContext);function g(t){return t.dotDotDotToken||(t.type&&e.isJSDocVariadicType(t.type)?e.factory.createToken(25):void 0)}function m(t,r){return t.name&&e.isIdentifier(t.name)&&"this"===t.name.escapedText?"this":g(t)?"args":"arg"+r}}));if(!c)return l===r?e.setTextRange(e.factory.cloneNode(r),r):l}}(),ne=e.createSymbolTable(),ie=hn(4,"undefined");ie.declarations=[];var ae=hn(1536,"globalThis",8);ae.exports=ne,ae.declarations=[],ne.set(ae.escapedName,ae);var oe,se=hn(4,"arguments"),ce=hn(4,"require"),ue={getNodeCount:function(){return e.sum(n.getSourceFiles(),"nodeCount")},getIdentifierCount:function(){return e.sum(n.getSourceFiles(),"identifierCount")},getSymbolCount:function(){return e.sum(n.getSourceFiles(),"symbolCount")+h},getTypeCount:function(){return v},getInstantiationCount:function(){return x},getRelationCacheSizes:function(){return{assignable:on.size,identity:cn.size,subtype:nn.size,strictSubtype:an.size}},isUndefinedSymbol:function(e){return e===ie},isArgumentsSymbol:function(e){return e===se},isUnknownSymbol:function(e){return e===be},getMergedSymbol:Ni,getDiagnostics:aS,getGlobalDiagnostics:function(){return oS(),Zr.getGlobalDiagnostics()},getRecursionIdentity:dp,getTypeOfSymbolAtLocation:function(t,r){var n=e.getParseTreeNode(r);return n?function(t,r){if(t=t.exportSymbol||t,(78===r.kind||79===r.kind)&&(e.isRightSideOfQualifiedNameOrPropertyAccess(r)&&(r=r.parent),e.isExpressionNode(r)&&(!e.isAssignmentTarget(r)||e.isWriteAccess(r)))){var n=PD(r);if(Ri(Fn(r).resolvedSymbol)===t)return n}if(e.isDeclarationName(r)&&e.isSetAccessor(r.parent)&&_o(r.parent))return mo(r.parent.symbol,!0);return So(t)}(t,n):ke},getSymbolsOfParameterPropertyDeclaration:function(t,r){var n=e.getParseTreeNode(t,e.isParameter);return void 0===n?e.Debug.fail("Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node."):function(t,r){var n=t.parent,i=t.parent.parent,a=Pn(n.locals,r,111551),o=Pn(fs(i.symbol),r,111551);if(a&&o)return[a,o];return e.Debug.fail("There should exist two symbols, one as property declaration and one as parameter declaration")}(n,e.escapeLeadingUnderscores(r))},getDeclaredTypeOfSymbol:Xo,getPropertiesOfType:tc,getPropertyOfType:function(t,r){return Tc(t,e.escapeLeadingUnderscores(r))},getPrivateIdentifierPropertyOfType:function(t,r,n){var i=e.getParseTreeNode(n);if(i){var a=Yy(e.escapeLeadingUnderscores(r),i);return a?Xy(t,a):void 0}},getTypeOfPropertyOfType:function(t,r){return wa(t,e.escapeLeadingUnderscores(r))},getIndexInfoOfType:Nc,getSignaturesOfType:kc,getIndexTypeOfType:Pc,getBaseTypes:Bo,getBaseTypeOfLiteralType:Fp,getWidenedType:cf,getTypeFromTypeNode:function(t){var r=e.getParseTreeNode(t,e.isTypeNode);return r?Rd(r):ke},getParameterType:Th,getPromisedTypeOfPromise:rx,getAwaitedType:function(e){return ix(e)},getReturnTypeOfSignature:Xc,isNullableType:jy,getNullableType:qp,getNonNullableType:Hp,getNonOptionalType:Xp,getTypeArguments:bu,typeToTypeNode:re.typeToTypeNode,indexInfoToIndexSignatureDeclaration:re.indexInfoToIndexSignatureDeclaration,signatureToSignatureDeclaration:re.signatureToSignatureDeclaration,symbolToEntityName:re.symbolToEntityName,symbolToExpression:re.symbolToExpression,symbolToTypeParameterDeclarations:re.symbolToTypeParameterDeclarations,symbolToParameterDeclaration:re.symbolToParameterDeclaration,typeParameterToDeclaration:re.typeParameterToDeclaration,getSymbolsInScope:function(t,r){var n=e.getParseTreeNode(t);return n?function(t,r){if(16777216&t.flags)return[];var n=e.createSymbolTable(),i=!1;return a(),n.delete("this"),Oc(n);function a(){for(;t;){switch(t.locals&&!Nn(t)&&s(t.locals,r),t.kind){case 298:if(!e.isExternalModule(t))break;case 257:c(Pi(t).exports,2623475&r);break;case 256:s(Pi(t).exports,8&r);break;case 222:t.name&&o(t.symbol,r);case 253:case 254:i||s(fs(Pi(t)),788968&r);break;case 209:t.name&&o(t.symbol,r)}e.introducesArgumentsExoticObject(t)&&o(se,r),i=e.hasSyntacticModifier(t,32),t=t.parent}s(ne,r)}function o(t,r){if(e.getCombinedLocalAndExportSymbolFlags(t)&r){var i=t.escapedName;n.has(i)||n.set(i,t)}}function s(e,t){t&&e.forEach((function(e){o(e,t)}))}function c(t,r){r&&t.forEach((function(t){e.getDeclarationOfKind(t,271)||e.getDeclarationOfKind(t,270)||o(t,r)}))}}(n,r):[]},getSymbolAtLocation:function(t){var r=e.getParseTreeNode(t);return r?pS(r,!0):void 0},getShorthandAssignmentValueSymbol:function(t){var r=e.getParseTreeNode(t);return r?function(e){if(e&&290===e.kind)return fi(e.name,2208703);return}(r):void 0},getExportSpecifierLocalTargetSymbol:function(t){var r=e.getParseTreeNode(t,e.isExportSpecifier);return r?function(t){return e.isExportSpecifier(t)?t.parent.parent.moduleSpecifier?Zn(t.parent.parent,t):fi(t.propertyName||t.name,2998271):fi(t,2998271)}(r):void 0},getExportSymbolOfSymbol:function(e){return Ni(e.exportSymbol||e)},getTypeAtLocation:function(t){var r=e.getParseTreeNode(t);return r?fS(r):ke},getTypeOfAssignmentPattern:function(t){var r=e.getParseTreeNode(t,e.isAssignmentPattern);return r&&gS(r)||ke},getPropertySymbolOfDestructuringAssignment:function(t){var r=e.getParseTreeNode(t,e.isIdentifier);return r?function(t){var r=gS(e.cast(t.parent.parent,e.isAssignmentPattern));return r&&Tc(r,t.escapedText)}(r):void 0},signatureToString:function(t,r,n,i){return _a(t,e.getParseTreeNode(r),n,i)},typeToString:function(t,r,n){return pa(t,e.getParseTreeNode(r),n)},symbolToString:function(t,r,n,i){return da(t,e.getParseTreeNode(r),n,i)},typePredicateToString:function(t,r,n){return ha(t,e.getParseTreeNode(r),n)},writeSignature:function(t,r,n,i,a){return _a(t,e.getParseTreeNode(r),n,i,a)},writeType:function(t,r,n,i){return pa(t,e.getParseTreeNode(r),n,i)},writeSymbol:function(t,r,n,i,a){return da(t,e.getParseTreeNode(r),n,i,a)},writeTypePredicate:function(t,r,n,i){return ha(t,e.getParseTreeNode(r),n,i)},getAugmentedPropertiesOfType:hS,getRootSymbols:function t(r){var n=function(t){if(6&e.getCheckFlags(t))return e.mapDefined(An(t).containingType.types,(function(e){return Tc(e,t.escapedName)}));if(33554432&t.flags){var r=t,n=r.leftSpread,i=r.rightSpread,a=r.syntheticOrigin;return n?[n,i]:a?[a]:e.singleElementArray(function(e){var t,r=e;for(;r=An(r).target;)t=r;return t}(t))}return}(r);return n?e.flatMap(n,t):[r]},getSymbolOfExpando:ch,getContextualType:function(t,r){var n=e.getParseTreeNode(t,e.isExpression);if(n){var i=e.findAncestor(n,e.isCallLikeExpression),a=i&&Fn(i).resolvedSignature;if(4&r&&i){var o=n;do{Fn(o).skipDirectInference=!0,o=o.parent}while(o&&o!==i);Fn(i).resolvedSignature=void 0}var s=Wm(n,r);if(4&r&&i){o=n;do{Fn(o).skipDirectInference=void 0,o=o.parent}while(o&&o!==i);Fn(i).resolvedSignature=a}return s}},getContextualTypeForObjectLiteralElement:function(t){var r=e.getParseTreeNode(t,e.isObjectLiteralElementLike);return r?Rm(r):void 0},getContextualTypeForArgumentAtIndex:function(t,r){var n=e.getParseTreeNode(t,e.isCallLikeExpression);return n&&Pm(n,r)},getContextualTypeForJsxAttribute:function(t){var r=e.getParseTreeNode(t,e.isJsxAttributeLike);return r&&Jm(r)},isContextSensitive:__,getTypeOfPropertyOfContextualType:Mm,getFullyQualifiedName:pi,getResolvedSignature:function(e,t,r){return le(e,t,r,0)},getResolvedSignatureForSignatureHelp:function(e,t,r){return le(e,t,r,16)},getExpandedParameters:bs,hasEffectiveRestParameter:Nh,getConstantValue:function(t){var r=e.getParseTreeNode(t,JS);return r?KS(r):void 0},isValidPropertyAccess:function(t,r){var n=e.getParseTreeNode(t,e.isPropertyAccessOrQualifiedNameOrImportTypeNode);return!!n&&function(e,t){switch(e.kind){case 202:return dv(e,105===e.expression.kind,t,cf(OD(e.expression)));case 158:return dv(e,!1,t,cf(OD(e.left)));case 196:return dv(e,!1,t,Rd(e))}}(n,e.escapeLeadingUnderscores(r))},isValidPropertyAccessForCompletions:function(t,r,n){var i=e.getParseTreeNode(t,e.isPropertyAccessExpression);return!!i&&lv(i,r,n)},getSignatureFromDeclaration:function(t){var r=e.getParseTreeNode(t,e.isFunctionLike);return r?zc(r):void 0},isImplementationOfOverload:function(t){var r=e.getParseTreeNode(t,e.isFunctionLike);return r?IS(r):void 0},getImmediateAliasedSymbol:uy,getAliasedSymbol:oi,getEmitResolver:function(e,t){return aS(e,t),te},getExportsOfModule:Si,getExportsAndPropertiesOfModule:function(t){var r=Si(t),n=Di(t);if(n!==t){var i=So(n);Ti(i)&&e.addRange(r,tc(i))}return r},getSymbolWalker:e.createGetSymbolWalker((function(e){return Zc(e)||Ee}),Gc,Xc,Bo,$s,So,Hf,Fc,nc,e.getFirstIdentifier,bu),getAmbientModules:function(){mt||(mt=[],ne.forEach((function(e,t){c.test(t)&&mt.push(e)})));return mt},getJsxIntrinsicTagNamesAt:function(t){var r=vy(N.IntrinsicElements,t);return r?tc(r):e.emptyArray},isOptionalParameter:function(t){var r=e.getParseTreeNode(t,e.isParameter);return!!r&&Rc(r)},tryGetMemberInModuleExports:function(t,r){return Ei(e.escapeLeadingUnderscores(t),r)},tryGetMemberInModuleExportsAndProperties:function(t,r){return function(e,t){var r=Ei(e,t);if(r)return r;var n=Di(t);if(n===t)return;var i=So(n);return Ti(i)?Tc(i,e):void 0}(e.escapeLeadingUnderscores(t),r)},tryFindAmbientModule:function(e){return Lc(e,!0)},tryFindAmbientModuleWithoutAugmentations:function(e){return Lc(e,!1)},getApparentType:gc,getUnionType:xl,isTypeAssignableTo:b_,createAnonymousType:Yi,createSignature:vs,createSymbol:hn,createIndexInfo:du,getAnyType:function(){return Ee},getStringType:function(){return Le},getNumberType:function(){return Re},createPromiseType:Bh,createArrayType:Zu,getElementTypeOfArrayType:hp,getBooleanType:function(){return Ue},getFalseType:function(e){return e?je:Je},getTrueType:function(e){return e?Ke:ze},getVoidType:function(){return qe},getUndefinedType:function(){return Pe},getNullType:function(){return Oe},getESSymbolType:function(){return Ve},getNeverType:function(){return We},getOptionalType:function(){return Ie},isSymbolAccessible:ia,isArrayType:mp,isTupleType:Op,isArrayLikeType:Dp,isTypeInvalidDueToUnionDiscriminant:function(e,t){return t.properties.some((function(t){var r=t.name&&Ol(t.name),n=r&&os(r)?ds(r):void 0,i=void 0===n?void 0:wa(e,n);return!!i&&Ap(i)&&!b_(fS(t),i)}))},getAllPossiblePropertiesOfTypes:function(t){var r=xl(t);if(!(1048576&r.flags))return hS(r);for(var n=e.createSymbolTable(),i=0,a=t;i>",0,Ee),dr=vs(void 0,void 0,void 0,e.emptyArray,Ee,void 0,0,0),_r=vs(void 0,void 0,void 0,e.emptyArray,ke,void 0,0,0),pr=vs(void 0,void 0,void 0,e.emptyArray,Ee,void 0,0,0),fr=vs(void 0,void 0,void 0,e.emptyArray,He,void 0,0,0),gr=du(Le,!0),mr=new e.Map,yr={get yieldType(){return e.Debug.fail("Not supported")},get returnType(){return e.Debug.fail("Not supported")},get nextType(){return e.Debug.fail("Not supported")}},vr=Qx(Ee,Ee,Ee),hr=Qx(Ee,Ee,Ne),Dr=Qx(We,Ee,Pe),xr={iterableCacheKey:"iterationTypesOfAsyncIterable",iteratorCacheKey:"iterationTypesOfAsyncIterator",iteratorSymbolName:"asyncIterator",getGlobalIteratorType:function(e){return Yt||(Yt=Vu("AsyncIterator",3,e))||ct},getGlobalIterableType:function(e){return Gt||(Gt=Vu("AsyncIterable",1,e))||ct},getGlobalIterableIteratorType:function(e){return Xt||(Xt=Vu("AsyncIterableIterator",1,e))||ct},getGlobalGeneratorType:function(e){return $t||($t=Vu("AsyncGenerator",3,e))||ct},resolveIterationType:ix,mustHaveANextMethodDiagnostic:e.Diagnostics.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},br={iterableCacheKey:"iterationTypesOfIterable",iteratorCacheKey:"iterationTypesOfIterator",iteratorSymbolName:"iterator",getGlobalIteratorType:function(e){return Ut||(Ut=Vu("Iterator",3,e))||ct},getGlobalIterableType:Yu,getGlobalIterableIteratorType:function(e){return Vt||(Vt=Vu("IterableIterator",1,e))||ct},getGlobalGeneratorType:function(e){return qt||(qt=Vu("Generator",3,e))||ct},resolveIterationType:function(e,t){return e},mustHaveANextMethodDiagnostic:e.Diagnostics.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},Sr=new e.Map,Er=!1,Tr=new e.Map,Cr=0,kr=0,Ar=0,Fr=!1,Nr=0,Pr=wd(""),wr=wd(0),Ir=wd({negative:!1,base10Value:"0"}),Or=[],Mr=[],Lr=[],Rr=0,Br=[],jr=[],Jr=[],Kr=[],zr=[],Ur=[],Vr=[],qr=[],Wr=[],Hr=[],Gr=[],Yr=[],Xr=[],$r=[],Qr=[],Zr=e.createDiagnosticCollection(),en=e.createDiagnosticCollection(),tn=new e.Map(e.getEntries({string:Le,number:Re,bigint:Be,boolean:Ue,symbol:Ve,undefined:Pe})),rn=xl(e.arrayFrom(S.keys(),wd)),nn=new e.Map,an=new e.Map,on=new e.Map,sn=new e.Map,cn=new e.Map,un=new e.Map,ln=e.createSymbolTable();return ln.set(ie.escapedName,ie),function(){for(var t=0,r=n.getSourceFiles();t=5||e.some(o.relatedInformation,(function(t){return 0===e.compareDiagnostics(t,s)||0===e.compareDiagnostics(t,i)})))return"continue";e.addRelatedInfo(o,e.length(o.relatedInformation)?s:i)},c=0,u=i||e.emptyArray;c1)}function An(e){if(33554432&e.flags)return e;var t=M(e);return jr[t]||(jr[t]=new w)}function Fn(e){var t=O(e);return Jr[t]||(Jr[t]=new I)}function Nn(t){return 298===t.kind&&!e.isExternalOrCommonJsModule(t)}function Pn(t,r,n){if(n){var i=Ni(t.get(r));if(i){if(e.Debug.assert(0==(1&e.getCheckFlags(i)),"Should never get an instantiated symbol here."),i.flags&n)return i;if(2097152&i.flags){var a=oi(i);if(a===be||a.flags&n)return i}}}}function wn(t,r){var i=e.getSourceFileOfNode(t),a=e.getSourceFileOfNode(r),o=e.getEnclosingBlockScopeContainer(t);if(i!==a){if(U&&(i.externalModuleIndicator||a.externalModuleIndicator)||!e.outFile(A)||Gf(r)||8388608&t.flags)return!0;if(u(r,t))return!0;var s=n.getSourceFiles();return s.indexOf(i)<=s.indexOf(a)}if(t.pos<=r.pos&&(!e.isPropertyDeclaration(t)||!e.isThisProperty(r.parent)||t.initializer||t.exclamationToken)){if(199===t.kind){var c=e.getAncestor(r,199);return c?e.findAncestor(c,e.isBindingElement)!==e.findAncestor(t,e.isBindingElement)||t.post.end)&&void 0===e.findAncestor(r,(function(r){if(r===t)return"quit";switch(r.kind){case 210:return!0;case 164:return!n||!(e.isPropertyDeclaration(t)&&r.parent===t.parent||e.isParameterPropertyDeclaration(t,t.parent)&&r.parent===t.parent.parent)||"quit";case 231:switch(r.parent.kind){case 168:case 166:case 169:return!0;default:return!1}default:return!1}}))}}function In(t,r,n){var i=e.getEmitScriptTarget(A),a=r;if(e.isParameter(n)&&a.body&&t.valueDeclaration&&t.valueDeclaration.pos>=a.body.pos&&t.valueDeclaration.end<=a.body.end&&i>=2){var o=Fn(a);return void 0===o.declarationRequiresScopeChange&&(o.declarationRequiresScopeChange=e.forEach(a.parameters,(function(e){return s(e.name)||!!e.initializer&&s(e.initializer)}))||!1),!o.declarationRequiresScopeChange}return!1;function s(t){switch(t.kind){case 210:case 209:case 252:case 167:return!1;case 166:case 168:case 169:case 289:return s(t.name);case 164:return e.hasStaticModifier(t)?i<99||!V:s(t.name);default:return e.isNullishCoalesce(t)||e.isOptionalChain(t)?i<7:e.isBindingElement(t)&&t.dotDotDotToken&&e.isObjectBindingPattern(t.parent)?i<4:!e.isTypeNode(t)&&(e.forEachChild(t,s)||!1)}}}function On(e,t,r,n,i,a,o,s){return void 0===o&&(o=!1),Mn(e,t,r,n,i,a,o,Pn,s)}function Mn(t,r,n,i,a,o,s,c,u){var l,d,_,p,f,g,m,y=t,v=!1,h=t,D=!1;e:for(;t;){if(t.locals&&!Nn(t)&&(d=c(t.locals,r,n))){var x=!0;if(e.isFunctionLike(t)&&_&&_!==t.body?(n&d.flags&788968&&312!==_.kind&&(x=!!(262144&d.flags)&&(_===t.type||161===_.kind||160===_.kind)),n&d.flags&3&&(In(d,t,_)?x=!1:1&d.flags&&(x=161===_.kind||_===t.type&&!!e.findAncestor(d.valueDeclaration,e.isParameter)))):185===t.kind&&(x=_===t.trueType),x)break e;d=void 0}switch(v=v||Ln(t,_),t.kind){case 298:if(!e.isExternalOrCommonJsModule(t))break;D=!0;case 257:var b=Pi(t).exports||C;if(298===t.kind||e.isModuleDeclaration(t)&&8388608&t.flags&&!e.isGlobalScopeAugmentation(t)){if(d=b.get("default")){var S=e.getLocalSymbolForExportDefault(d);if(S&&d.flags&n&&S.escapedName===r)break e;d=void 0}var E=b.get(r);if(E&&2097152===E.flags&&(e.getDeclarationOfKind(E,271)||e.getDeclarationOfKind(E,270)))break}if("default"!==r&&(d=c(b,r,2623475&n))){if(!e.isSourceFile(t)||!t.commonJsModuleIndicator||(null===(l=d.declarations)||void 0===l?void 0:l.some(e.isJSDocTypeAlias)))break e;d=void 0}break;case 256:if(d=c(Pi(t).exports,r,8&n))break e;break;case 164:if(!e.hasSyntacticModifier(t,32)){var T=ji(t.parent);T&&T.locals&&c(T.locals,r,111551&n)&&(f=t)}break;case 253:case 222:case 254:if(d=c(Pi(t).members||C,r,788968&n)){if(!jn(d,t)){d=void 0;break}if(_&&e.hasSyntacticModifier(_,32))return void pn(h,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);break e}if(222===t.kind&&32&n){var k=t.name;if(k&&r===k.escapedText){d=t.symbol;break e}}break;case 224:if(_===t.expression&&93===t.parent.token){var F=t.parent.parent;if(e.isClassLike(F)&&(d=c(Pi(F).members,r,788968&n)))return void(i&&pn(h,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters))}break;case 159:if(m=t.parent.parent,(e.isClassLike(m)||254===m.kind)&&(d=c(Pi(m).members,r,788968&n)))return void pn(h,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);break;case 210:if(A.target>=2)break;case 166:case 167:case 168:case 169:case 252:if(3&n&&"arguments"===r){d=se;break e}break;case 209:if(3&n&&"arguments"===r){d=se;break e}if(16&n){var N=t.name;if(N&&r===N.escapedText){d=t.symbol;break e}}break;case 162:t.parent&&161===t.parent.kind&&(t=t.parent),t.parent&&(e.isClassElement(t.parent)||253===t.parent.kind)&&(t=t.parent);break;case 335:case 328:case 329:(L=e.getJSDocRoot(t))&&(t=L.parent);break;case 161:_&&(_===t.initializer||_===t.name&&e.isBindingPattern(_))&&(g||(g=t));break;case 199:_&&(_===t.initializer||_===t.name&&e.isBindingPattern(_))&&e.isParameterDeclaration(t)&&!g&&(g=t);break;case 186:if(262144&n){var P=t.typeParameter.name;if(P&&r===P.escapedText){d=t.typeParameter.symbol;break e}}}Rn(t)&&(p=t),_=t,t=t.parent}if(!o||!d||p&&d===p.symbol||(d.isReferenced|=n),!d){if(_&&(e.Debug.assert(298===_.kind),_.commonJsModuleIndicator&&"exports"===r&&n&_.symbol.flags))return _.symbol;s||(d=c(ne,r,n))}if(!d&&y&&e.isInJSFile(y)&&y.parent&&e.isRequireCall(y.parent,!1))return ce;if(d){if(i){if(f&&(99!==A.target||!V)){var w=f.name;return void pn(h,e.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,e.declarationNameToString(w),Bn(a))}if(h&&(2&n||(32&n||384&n)&&111551==(111551&n))){var I=Ri(d);(2&I.flags||32&I.flags||384&I.flags)&&function(t,r){var n;if(e.Debug.assert(!!(2&t.flags||32&t.flags||384&t.flags)),67108881&t.flags&&32&t.flags)return;var i=null===(n=t.declarations)||void 0===n?void 0:n.find((function(t){return e.isBlockOrCatchScoped(t)||e.isClassLike(t)||256===t.kind}));if(void 0===i)return e.Debug.fail("checkResolvedBlockScopedVariable could not find block-scoped declaration");if(!(8388608&i.flags||wn(i,r))){var a=void 0,o=e.declarationNameToString(e.getNameOfDeclaration(i));2&t.flags?a=pn(r,e.Diagnostics.Block_scoped_variable_0_used_before_its_declaration,o):32&t.flags?a=pn(r,e.Diagnostics.Class_0_used_before_its_declaration,o):256&t.flags?a=pn(r,e.Diagnostics.Enum_0_used_before_its_declaration,o):(e.Debug.assert(!!(128&t.flags)),e.shouldPreserveConstEnums(A)&&(a=pn(r,e.Diagnostics.Enum_0_used_before_its_declaration,o))),a&&e.addRelatedInfo(a,e.createDiagnosticForNode(i,e.Diagnostics._0_is_declared_here,o))}}(I,h)}if(d&&D&&111551==(111551&n)&&!(4194304&y.flags)){var O=Ni(d);e.length(O.declarations)&&e.every(O.declarations,(function(t){return e.isNamespaceExportDeclaration(t)||e.isSourceFile(t)&&!!t.symbol.globalExports}))&&gn(!A.allowUmdGlobalAccess,h,e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead,e.unescapeLeadingUnderscores(r))}if(d&&g&&!v&&111551==(111551&n)){var M=Ni(gs(d)),L=e.getRootDeclaration(g);M===Pi(g)?pn(h,e.Diagnostics.Parameter_0_cannot_reference_itself,e.declarationNameToString(g.name)):M.valueDeclaration&&M.valueDeclaration.pos>g.pos&&L.parent.locals&&c(L.parent.locals,M.escapedName,n)===M&&pn(h,e.Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString(g.name),e.declarationNameToString(h))}d&&h&&111551&n&&2097152&d.flags&&function(t,r,n){if(!e.isValidTypeOnlyAliasUseSite(n)){var i=ui(t);if(i){var a=e.typeOnlyDeclarationIsExport(i),o=a?e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type,s=a?e.Diagnostics._0_was_exported_here:e.Diagnostics._0_was_imported_here,c=e.unescapeLeadingUnderscores(r);e.addRelatedInfo(pn(n,o,c),e.createDiagnosticForNode(i,s,c))}}}(d,r,h)}return d}if(i&&!(h&&(function(t,r,n){if(!e.isIdentifier(t)||t.escapedText!==r||cS(t)||Gf(t))return!1;var i=e.getThisContainer(t,!1),a=i;for(;a;){if(e.isClassLike(a.parent)){var o=Pi(a.parent);if(!o)break;if(Tc(So(o),r))return pn(t,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0,Bn(n),da(o)),!0;if(a===i&&!e.hasSyntacticModifier(a,32))if(Tc(Xo(o).thisType,r))return pn(t,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0,Bn(n)),!0}a=a.parent}return!1}(h,r,a)||Jn(h)||function(t,r,n){var i=1920|(e.isInJSFile(t)?111551:0);if(n===i){var a=ai(On(t,r,788968&~i,void 0,void 0,!1)),o=t.parent;if(a){if(e.isQualifiedName(o)){e.Debug.assert(o.left===t,"Should only be resolving left side of qualified name as a namespace");var s=o.right.escapedText;if(Tc(Xo(a),s))return pn(o,e.Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,e.unescapeLeadingUnderscores(r),e.unescapeLeadingUnderscores(s)),!0}return pn(t,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here,e.unescapeLeadingUnderscores(r)),!0}}return!1}(h,r,n)||function(t,r){if(zn(r)&&271===t.parent.kind)return pn(t,e.Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module,r),!0;return!1}(h,r)||function(t,r,n){if(111551&n){if(zn(r))return pn(t,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here,e.unescapeLeadingUnderscores(r)),!0;var i=ai(On(t,r,788544,void 0,void 0,!1));if(i&&!(1024&i.flags)){var a=e.unescapeLeadingUnderscores(r);return!function(e){switch(e){case"Promise":case"Symbol":case"Map":case"WeakMap":case"Set":case"WeakSet":return!0}return!1}(r)?!function(t,r){var n=e.findAncestor(t.parent,(function(t){return!e.isComputedPropertyName(t)&&!e.isPropertySignature(t)&&(e.isTypeLiteralNode(t)||"quit")}));if(n&&1===n.members.length){var i=Xo(r);return!!(1048576&i.flags)&&aD(i,384,!0)}return!1}(t,i)?pn(t,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here,a):pn(t,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0,a,"K"===a?"P":"K"):pn(t,e.Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later,a),!0}}return!1}(h,r,n)||function(t,r,n){if(111127&n){if(ai(On(t,r,1024,void 0,void 0,!1)))return pn(t,e.Diagnostics.Cannot_use_namespace_0_as_a_value,e.unescapeLeadingUnderscores(r)),!0}else if(788544&n){if(ai(On(t,r,1536,void 0,void 0,!1)))return pn(t,e.Diagnostics.Cannot_use_namespace_0_as_a_type,e.unescapeLeadingUnderscores(r)),!0}return!1}(h,r,n)||function(t,r,n){if(788584&n){var i=ai(On(t,r,111127,void 0,void 0,!1));if(i&&!(1920&i.flags))return pn(t,e.Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,e.unescapeLeadingUnderscores(r)),!0}return!1}(h,r,n)))){var R=void 0;if(u&&Rr<10)if((R=av(y,r,n))&&R.valueDeclaration&&e.isAmbientModule(R.valueDeclaration)&&e.isGlobalScopeAugmentation(R.valueDeclaration)&&(R=void 0),R){var B=da(R),j=pn(h,u,Bn(a),B);R.valueDeclaration&&e.addRelatedInfo(j,e.createDiagnosticForNode(R.valueDeclaration,e.Diagnostics._0_is_declared_here,B))}if(!R&&a){var J=function(t){for(var r=Bn(t),n=e.getScriptTargetFeatures(),i=e.getOwnKeys(n),a=0,o=i;a=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop",u=i.exports.get("export=").valueDeclaration,l=pn(t.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,da(i),c);u&&e.addRelatedInfo(l,e.createDiagnosticForNode(u,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,c))}else!function(t,r){var n,i,a;if(null===(n=t.exports)||void 0===n?void 0:n.has(r.symbol.escapedName))pn(r.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,da(t),da(r.symbol));else{var o=pn(r.name,e.Diagnostics.Module_0_has_no_default_export,da(t)),s=null===(i=t.exports)||void 0===i?void 0:i.get("__export");if(s){var c=null===(a=s.declarations)||void 0===a?void 0:a.find((function(t){var r,n;return!!(e.isExportDeclaration(t)&&t.moduleSpecifier&&(null===(n=null===(r=mi(t,t.moduleSpecifier))||void 0===r?void 0:r.exports)||void 0===n?void 0:n.has("default")))}));c&&e.addRelatedInfo(o,e.createDiagnosticForNode(c,e.Diagnostics.export_Asterisk_does_not_re_export_a_default))}}}(i,t);return si(t,a,void 0,!1),a}}function Zn(r,n,i){var a,o;void 0===i&&(i=!1);var s=e.getExternalModuleRequireArgument(r)||r.moduleSpecifier,c=mi(r,s),u=!e.isPropertyAccessExpression(n)&&n.propertyName||n.name;if(e.isIdentifier(u)){var l=xi(c,s,!1,"default"===u.escapedText&&!(!A.allowSyntheticDefaultImports&&!A.esModuleInterop));if(l&&u.escapedText){if(e.isShorthandAmbientModuleSymbol(c))return c;var d=void 0;d=c&&c.exports&&c.exports.get("export=")?Tc(So(l),u.escapedText,!0):function(e,t){if(3&e.flags){var r=e.valueDeclaration.type;if(r)return ai(Tc(Rd(r),t))}}(l,u.escapedText),d=ai(d,i);var _=function(e,t,r,n){if(1536&e.flags){var i=Ci(e).get(t.escapedText),a=ai(i,n);return si(r,i,a,!1),a}}(l,u,n,i);if(void 0===_&&"default"===u.escapedText)$n(null===(a=c.declarations)||void 0===a?void 0:a.find(e.isSourceFile),c,i)&&(_=Di(c,i)||ai(c,i));var p=_&&d&&_!==d?function(t,r){if(t===be&&r===be)return be;if(790504&t.flags)return t;var n=hn(t.flags|r.flags,t.escapedName);return n.declarations=e.deduplicate(e.concatenate(t.declarations,r.declarations),e.equateValues),n.parent=t.parent||r.parent,t.valueDeclaration&&(n.valueDeclaration=t.valueDeclaration),r.members&&(n.members=new e.Map(r.members)),t.exports&&(n.exports=new e.Map(t.exports)),n}(d,_):_||d;if(!p){var f=pi(c,r),g=e.declarationNameToString(u),m=ov(u,l);if(void 0!==m){var y=da(m),v=pn(u,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,f,g,y);m.valueDeclaration&&e.addRelatedInfo(v,e.createDiagnosticForNode(m.valueDeclaration,e.Diagnostics._0_is_declared_here,y))}else(null===(o=c.exports)||void 0===o?void 0:o.has("default"))?pn(u,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,f,g):function(r,n,i,a,o){var s,c,u=null===(c=null===(s=a.valueDeclaration)||void 0===s?void 0:s.locals)||void 0===c?void 0:c.get(n.escapedText),l=a.exports;if(u){var d=null==l?void 0:l.get("export=");if(d)Li(d,u)?function(t,r,n,i){if(U>=e.ModuleKind.ES2015){pn(r,A.esModuleInterop?e.Diagnostics._0_can_only_be_imported_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import,n)}else{if(e.isInJSFile(t))pn(r,A.esModuleInterop?e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import,n);else pn(r,A.esModuleInterop?e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import,n,n,i)}}(r,n,i,o):pn(n,e.Diagnostics.Module_0_has_no_exported_member_1,o,i);else{var _=l?e.find(Oc(l),(function(e){return!!Li(e,u)})):void 0,p=_?pn(n,e.Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2,o,i,da(_)):pn(n,e.Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported,o,i);u.declarations&&e.addRelatedInfo.apply(void 0,t([p],e.map(u.declarations,(function(t,r){return e.createDiagnosticForNode(t,0===r?e.Diagnostics._0_is_declared_here:e.Diagnostics.and_here,i)}))))}}else pn(n,e.Diagnostics.Module_0_has_no_exported_member_1,o,i)}(r,u,g,c,f)}return p}}}function ei(t){if(e.isVariableDeclaration(t)&&t.initializer&&e.isPropertyAccessExpression(t.initializer))return t.initializer}function ti(e,t,r){var n=e.parent.parent.moduleSpecifier?Zn(e.parent.parent,e,r):fi(e.propertyName||e.name,t,!1,r);return si(e,void 0,n,!1),n}function ri(t,r){if(e.isClassExpression(t))return mD(t).symbol;if(e.isEntityName(t)||e.isEntityNameExpression(t)){var n=fi(t,901119,!0,r);return n||(mD(t),Fn(t).resolvedSymbol)}}function ni(t,r){switch(void 0===r&&(r=!1),t.kind){case 261:case 250:return Gn(t,r);case 263:return Qn(t,r);case 264:return function(e,t){var r=e.parent.parent.moduleSpecifier,n=mi(e,r),i=xi(n,r,t,!1);return si(e,n,i,!1),i}(t,r);case 270:return function(e,t){var r=e.parent.moduleSpecifier,n=r&&mi(e,r),i=r&&xi(n,r,t,!1);return si(e,n,i,!1),i}(t,r);case 266:case 199:return function(t,r){var n=e.isBindingElement(t)?e.getRootDeclaration(t):t.parent.parent.parent,i=ei(n),a=Zn(n,i||t,r),o=t.propertyName||t.name;return i&&a&&e.isIdentifier(o)?ai(Tc(So(a),o.escapedText),r):(si(t,void 0,a,!1),a)}(t,r);case 271:return ti(t,901119,r);case 267:case 217:return function(t,r){var n=ri(e.isExportAssignment(t)?t.expression:t.right,r);return si(t,void 0,n,!1),n}(t,r);case 260:return function(e,t){var r=Di(e.parent.symbol,t);return si(e,void 0,r,!1),r}(t,r);case 290:return fi(t.name,901119,!0,r);case 289:return function(e,t){return ri(e.initializer,t)}(t,r);case 203:case 202:return function(t,r){if(e.isBinaryExpression(t.parent)&&t.parent.left===t&&62===t.parent.operatorToken.kind)return ri(t.parent.right,r)}(t,r);default:return e.Debug.fail()}}function ii(e,t){return void 0===t&&(t=901119),!!e&&(2097152==(e.flags&(2097152|t))||!!(2097152&e.flags&&67108864&e.flags))}function ai(e,t){return!t&&ii(e)?oi(e):e}function oi(t){e.Debug.assert(0!=(2097152&t.flags),"Should only get Alias here.");var r=An(t);if(r.target)r.target===Se&&(r.target=be);else{r.target=Se;var n=qn(t);if(!n)return e.Debug.fail();var i=ni(n);r.target===Se?r.target=i||be:pn(n,e.Diagnostics.Circular_definition_of_import_alias_0,da(t))}return r.target}function si(t,r,n,i){if(!t||e.isPropertyAccessExpression(t))return!1;var a=Pi(t);if(e.isTypeOnlyImportOrExportDeclaration(t))return An(a).typeOnlyDeclaration=t,!0;var o=An(a);return ci(o,r,i)||ci(o,n,i)}function ci(t,r,n){var i,a,o;if(r&&(void 0===t.typeOnlyDeclaration||n&&!1===t.typeOnlyDeclaration)){var s=null!==(a=null===(i=r.exports)||void 0===i?void 0:i.get("export="))&&void 0!==a?a:r,c=s.declarations&&e.find(s.declarations,e.isTypeOnlyImportOrExportDeclaration);t.typeOnlyDeclaration=null!==(o=null!=c?c:An(s).typeOnlyDeclaration)&&void 0!==o&&o}return!!t.typeOnlyDeclaration}function ui(e){if(2097152&e.flags)return An(e).typeOnlyDeclaration||void 0}function li(e){var t=Pi(e),r=oi(t);r&&((r===be||111551&r.flags&&!PS(r)&&!ui(t))&&di(t))}function di(t){var r=An(t);if(!r.referenced){r.referenced=!0;var n=qn(t);if(!n)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(n)){var i=ai(t);(i===be||111551&i.flags)&&mD(n.moduleReference)}}}function _i(t,r){return 78===t.kind&&e.isRightSideOfQualifiedNameOrPropertyAccess(t)&&(t=t.parent),78===t.kind||158===t.parent.kind?fi(t,1920,!1,r):(e.Debug.assert(261===t.parent.kind),fi(t,901119,!1,r))}function pi(e,t){return e.parent?pi(e.parent,t)+"."+da(e):da(e,t,void 0,20)}function fi(t,r,n,i,a){if(!e.nodeIsMissing(t)){var o,s=1920|(e.isInJSFile(t)?111551&r:0);if(78===t.kind){var c=r===s||e.nodeIsSynthesized(t)?e.Diagnostics.Cannot_find_namespace_0:Wf(e.getFirstIdentifier(t)),u=e.isInJSFile(t)&&!e.nodeIsSynthesized(t)?function(t,r){if(Ou(t.parent)){var n=function(t){if(e.findAncestor(t,(function(t){return e.isJSDocNode(t)||4194304&t.flags?e.isJSDocTypeAlias(t):"quit"})))return;var r=e.getJSDocHost(t);if(r&&e.isExpressionStatement(r)&&e.isBinaryExpression(r.expression)&&3===e.getAssignmentDeclarationKind(r.expression)){if(i=Pi(r.expression.left))return gi(i)}if(r&&(e.isObjectLiteralMethod(r)||e.isPropertyAssignment(r))&&e.isBinaryExpression(r.parent.parent)&&6===e.getAssignmentDeclarationKind(r.parent.parent)){if(i=Pi(r.parent.parent.left))return gi(i)}var n=e.getEffectiveJSDocHost(t);if(n&&e.isFunctionLike(n)){var i;return(i=Pi(n))&&i.valueDeclaration}}(t.parent);if(n)return On(n,t.escapedText,r,void 0,t,!0)}}(t,r):void 0;if(!(o=Ni(On(a||t,t.escapedText,r,n||u?void 0:c,t,!0))))return Ni(u)}else{if(158!==t.kind&&202!==t.kind)throw e.Debug.assertNever(t,"Unknown entity name kind.");var l=158===t.kind?t.left:t.expression,d=158===t.kind?t.right:t.name,_=fi(l,s,n,!1,a);if(!_||e.nodeIsMissing(d))return;if(_===be)return _;if(_.valueDeclaration&&e.isInJSFile(_.valueDeclaration)&&e.isVariableDeclaration(_.valueDeclaration)&&_.valueDeclaration.initializer&&fh(_.valueDeclaration.initializer)){var p=_.valueDeclaration.initializer.arguments[0],f=mi(p,p);if(f){var g=Di(f);g&&(_=g)}}if(!(o=Ni(Pn(Ci(_),d.escapedText,r)))){if(!n){var m=pi(_),y=e.declarationNameToString(d),v=ov(d,_);v?pn(d,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,m,y,da(v)):pn(d,e.Diagnostics.Namespace_0_has_no_exported_member_1,m,y)}return}}return e.Debug.assert(0==(1&e.getCheckFlags(o)),"Should never get an instantiated symbol here."),!e.nodeIsSynthesized(t)&&e.isEntityName(t)&&(2097152&o.flags||267===t.parent.kind)&&si(e.getAliasDeclarationFromName(t),o,void 0,!0),o.flags&r||i?o:oi(o)}}function gi(t){var r=t.parent.valueDeclaration;if(r)return(e.isAssignmentDeclaration(r)?e.getAssignedExpandoInitializer(r):e.hasOnlyExpressionInitializer(r)?e.getDeclaredExpandoInitializer(r):void 0)||r}function mi(t,r,n){var i=e.getEmitModuleResolutionKind(A)===e.ModuleResolutionKind.Classic?e.Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:e.Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;return yi(t,r,n?void 0:i)}function yi(t,r,n,i){return void 0===i&&(i=!1),e.isStringLiteralLike(r)?vi(t,r.text,n,r,i):void 0}function vi(t,r,i,a,o){(void 0===o&&(o=!1),e.startsWith(r,"@types/"))&&pn(a,m=e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,e.removePrefix(r,"@types/"),r);var s=Lc(r,!0);if(s)return s;var c=e.getSourceFileOfNode(t),u=e.getResolvedModule(c,r),l=u&&e.getResolutionDiagnostic(A,u),d=u&&!l&&n.getSourceFile(u.resolvedFileName);if(d)return d.symbol?(u.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(u.extension)&&hi(!1,a,u,r),Ni(d.symbol)):void(i&&pn(a,e.Diagnostics.File_0_is_not_a_module,d.fileName));if(yt){var _=e.findBestPatternMatch(yt,(function(e){return e.pattern}),r);if(_){var p=vt&&vt.get(r);return Ni(p?p:_.symbol)}}if(u&&!e.resolutionExtensionIsTSOrJson(u.extension)&&void 0===l||l===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type)o?pn(a,m=e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented,r,u.resolvedFileName):hi(X&&!!i,a,u,r);else if(i){if(u){var f=n.getProjectReferenceRedirect(u.resolvedFileName);if(f)return void pn(a,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,f,u.resolvedFileName)}if(l)pn(a,l,r,u.resolvedFileName);else{var g=e.tryExtractTSExtension(r);if(g){var m=e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,y=e.removeExtension(r,g);e.getEmitModuleKind(A)>=e.ModuleKind.ES2015&&(y+=".js"),pn(a,m,g,y)}else!A.resolveJsonModule&&e.fileExtensionIs(r,".json")&&e.getEmitModuleResolutionKind(A)===e.ModuleResolutionKind.NodeJs&&e.hasJsonModuleEmitEnabled(A)?pn(a,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,r):pn(a,i,r)}}}function hi(t,r,n,i){var a,o=n.packageId,s=n.resolvedFileName,c=!e.isExternalModuleNameRelative(i)&&o?(a=o.name,f().has(e.getTypesPackageName(a))?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,o.name,e.mangleScopedPackageName(o.name)):e.chainDiagnosticMessages(void 0,e.Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,i,e.mangleScopedPackageName(o.name))):void 0;gn(t,r,e.chainDiagnosticMessages(c,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,i,s))}function Di(t,r){if(null==t?void 0:t.exports){var n=function(t,r){if(!t||t===be||t===r||1===r.exports.size||2097152&t.flags)return t;var n=An(t);if(n.cjsExportMerged)return n.cjsExportMerged;var i=33554432&t.flags?t:bn(t);i.flags=512|i.flags,void 0===i.exports&&(i.exports=e.createSymbolTable());return r.exports.forEach((function(e,t){"export="!==t&&i.exports.set(t,i.exports.has(t)?Sn(i.exports.get(t),e):e)})),An(i).cjsExportMerged=i,n.cjsExportMerged=i}(Ni(ai(t.exports.get("export="),r)),Ni(t));return Ni(n)||t}}function xi(t,r,n,i){var a=Di(t,n);if(!n&&a){if(!(i||1539&a.flags||e.getDeclarationOfKind(a,298))){var o=U>=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop";return pn(r,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,o),a}if(A.esModuleInterop){var s=r.parent;if(e.isImportDeclaration(s)&&e.getNamespaceDeclarationNode(s)||e.isImportCall(s)){var c=So(a),u=Cc(c,0);if(u&&u.length||(u=Cc(c,1)),u&&u.length){var l=ph(c,a,t),d=hn(a.flags,a.escapedName);d.declarations=a.declarations?a.declarations.slice():[],d.parent=a.parent,d.target=a,d.originatingImport=s,a.valueDeclaration&&(d.valueDeclaration=a.valueDeclaration),a.constEnumOnlyModule&&(d.constEnumOnlyModule=!0),a.members&&(d.members=new e.Map(a.members)),a.exports&&(d.exports=new e.Map(a.exports));var _=$s(l);return d.type=Yi(d,_.members,e.emptyArray,e.emptyArray,_.stringIndexInfo,_.numberIndexInfo),d}}}}return a}function bi(e){return void 0!==e.exports.get("export=")}function Si(e){return Oc(ki(e))}function Ei(e,t){var r=ki(t);if(r)return r.get(e)}function Ti(t){return!(131068&t.flags||1&e.getObjectFlags(t)||mp(t)||Op(t))}function Ci(e){return 6256&e.flags?ps(e,"resolvedExports"):1536&e.flags?ki(e):e.exports||C}function ki(e){var t=An(e);return t.resolvedExports||(t.resolvedExports=Fi(e))}function Ai(t,r,n,i){r&&r.forEach((function(r,a){if("default"!==a){var o=t.get(a);if(o){if(n&&i&&o&&ai(o)!==ai(r)){var s=n.get(a);s.exportsWithDuplicate?s.exportsWithDuplicate.push(i):s.exportsWithDuplicate=[i]}}else t.set(a,r),n&&i&&n.set(a,{specifierText:e.getTextOfNode(i.moduleSpecifier)})}}))}function Fi(t){var r=[];return function t(n){if(!(n&&n.exports&&e.pushIfUnique(r,n)))return;var i=new e.Map(n.exports),a=n.exports.get("__export");if(a){var o=e.createSymbolTable(),s=new e.Map;if(a.declarations)for(var c=0,u=a.declarations;c=l?u.substr(0,l-"...".length)+"...":u}function fa(e,t){var r=ma(e.symbol)?pa(e,e.symbol.valueDeclaration):pa(e),n=ma(t.symbol)?pa(t,t.symbol.valueDeclaration):pa(t);return r===n&&(r=ga(e),n=ga(t)),[r,n]}function ga(e){return pa(e,void 0,64)}function ma(t){return t&&!!t.valueDeclaration&&e.isExpression(t.valueDeclaration)&&!__(t.valueDeclaration)}function ya(e){return void 0===e&&(e=0),814775659&e}function va(t){return!!(t.symbol&&32&t.symbol.flags&&(t===Ko(t.symbol)||524288&t.flags&&16777216&e.getObjectFlags(t)))}function ha(t,r,n,i){return void 0===n&&(n=16384),i?a(i).getText():e.usingSingleLineStringWriter(a);function a(i){var a=e.factory.createTypePredicateNode(2===t.kind||3===t.kind?e.factory.createToken(127):void 0,1===t.kind||3===t.kind?e.factory.createIdentifier(t.parameterName):e.factory.createThisTypeNode(),t.type&&re.typeToTypeNode(t.type,r,70222336|ya(n))),o=e.createPrinter({removeComments:!0}),s=r&&e.getSourceFileOfNode(r);return o.writeNode(4,a,s,i),i}}function Da(e){return 8===e?"private":16===e?"protected":"public"}function xa(t){return t&&t.parent&&258===t.parent.kind&&e.isExternalModuleAugmentation(t.parent.parent)}function ba(t){return 298===t.kind||e.isAmbientModule(t)}function Sa(t,r){var n=An(t).nameType;if(n){if(384&n.flags){var i=""+n.value;return e.isIdentifierText(i,A.target)||oy(i)?oy(i)&&e.startsWith(i,"-")?"["+i+"]":i:'"'+e.escapeString(i,34)+'"'}if(8192&n.flags)return"["+Ea(n.symbol,r)+"]"}}function Ea(t,r){if(r&&"default"===t.escapedName&&!(16384&r.flags)&&(!(16777216&r.flags)||!t.declarations||r.enclosingDeclaration&&e.findAncestor(t.declarations[0],ba)!==e.findAncestor(r.enclosingDeclaration,ba)))return"default";if(t.declarations&&t.declarations.length){var n=e.firstDefined(t.declarations,(function(t){return e.getNameOfDeclaration(t)?t:void 0})),i=n&&e.getNameOfDeclaration(n);if(n&&i){if(e.isCallExpression(n)&&e.isBindableObjectDefinePropertyCall(n))return e.symbolName(t);if(e.isComputedPropertyName(i)&&!(4096&e.getCheckFlags(t))){var a=An(t).nameType;if(a&&384&a.flags){var o=Sa(t,r);if(void 0!==o)return o}}return e.declarationNameToString(i)}if(n||(n=t.declarations[0]),n.parent&&250===n.parent.kind)return e.declarationNameToString(n.parent.name);switch(n.kind){case 222:case 209:case 210:return!r||r.encounteredError||131072&r.flags||(r.encounteredError=!0),222===n.kind?"(Anonymous class)":"(Anonymous function)"}}var s=Sa(t,r);return void 0!==s?s:e.symbolName(t)}function Ta(t){if(t){var r=Fn(t);return void 0===r.isVisible&&(r.isVisible=!!function(){switch(t.kind){case 328:case 335:case 329:return!!(t.parent&&t.parent.parent&&t.parent.parent.parent&&e.isSourceFile(t.parent.parent.parent));case 199:return Ta(t.parent.parent);case 250:if(e.isBindingPattern(t.name)&&!t.name.elements.length)return!1;case 257:case 253:case 254:case 255:case 252:case 256:case 261:if(e.isExternalModuleAugmentation(t))return!0;var r=Pa(t);return 1&e.getCombinedModifierFlags(t)||261!==t.kind&&298!==r.kind&&8388608&r.flags?Ta(r):Nn(r);case 164:case 163:case 168:case 169:case 166:case 165:if(e.hasEffectiveModifier(t,24))return!1;case 167:case 171:case 170:case 172:case 161:case 258:case 175:case 176:case 178:case 174:case 179:case 180:case 183:case 184:case 187:case 193:return Ta(t.parent);case 263:case 264:case 266:return!1;case 160:case 298:case 260:return!0;case 267:default:return!1}}()),r.isVisible}return!1}function Ca(t,r){var n,i,a;return t.parent&&267===t.parent.kind?n=On(t,t.escapedText,2998271,void 0,t,!1):271===t.parent.kind&&(n=ti(t.parent,2998271)),n&&((a=new e.Set).add(M(n)),function t(n){e.forEach(n,(function(n){var o=Vn(n)||n;if(r?Fn(n).isVisible=!0:(i=i||[],e.pushIfUnique(i,o)),e.isInternalModuleImportEqualsDeclaration(n)){var s=n.moduleReference,c=On(n,e.getFirstIdentifier(s).escapedText,901119,void 0,void 0,!1);c&&a&&e.tryAddToSet(a,M(c))&&t(c.declarations)}}))}(n.declarations)),i}function ka(e,t){var r=Aa(e,t);if(r>=0){for(var n=Or.length,i=r;i=0;r--){if(Fa(Or[r],Lr[r]))return-1;if(Or[r]===e&&Lr[r]===t)return r}return-1}function Fa(t,r){switch(r){case 0:return!!An(t).type;case 5:return!!Fn(t).resolvedEnumType;case 2:return!!An(t).declaredType;case 1:return!!t.resolvedBaseConstructorType;case 3:return!!t.resolvedReturnType;case 4:return!!t.immediateBaseConstraint;case 6:return!!t.resolvedTypeArguments;case 7:return!!t.baseTypesResolved}return e.Debug.assertNever(r)}function Na(){return Or.pop(),Lr.pop(),Mr.pop()}function Pa(t){return e.findAncestor(e.getRootDeclaration(t),(function(e){switch(e.kind){case 250:case 251:case 266:case 265:case 264:case 263:return!1;default:return!0}})).parent}function wa(e,t){var r=Tc(e,t);return r?So(r):void 0}function Ia(e){return e&&0!=(1&e.flags)}function Oa(e){var t=Pi(e);return t&&An(t).type||qa(e,!1)}function Ma(t,r,n){if(131072&(t=wg(t,(function(e){return!(98304&e.flags)}))).flags)return it;if(1048576&t.flags)return Og(t,(function(e){return Ma(e,r,n)}));var i=xl(e.map(r,Ol));if(Xl(t)||$l(i)){if(131072&i.flags)return t;var a=tr||(tr=Uu("Omit",524288,e.Diagnostics.Cannot_find_global_type_0));return a?Tu(a,[t,i]):ke}for(var o=e.createSymbolTable(),s=0,c=tc(t);s=2?(i=Ee,$u(Yu(!0),[i])):Nt;var c=e.map(a,(function(t){return e.isOmittedExpression(t)?Ee:ro(t,r,n)})),u=e.findLastIndex(a,(function(t){return!(t===s||e.isOmittedExpression(t)||ty(t))}),a.length-1)+1,l=ol(c,e.map(a,(function(e,t){return e===s?4:t>=u?2:1})));return r&&((l=Du(l)).pattern=t,l.objectFlags|=262144),l}function io(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),197===t.kind?function(t,r,n){var i,a=e.createSymbolTable(),o=262272;e.forEach(t.elements,(function(e){var t=e.propertyName||e.name;if(e.dotDotDotToken)i=du(Ee,!1);else{var s=Ol(t);if(os(s)){var c=ds(s),u=hn(4|(e.initializer?16777216:0),c);u.type=ro(e,r,n),u.bindingElement=e,a.set(u.escapedName,u)}else o|=512}}));var s=Yi(void 0,a,e.emptyArray,e.emptyArray,i,void 0);return s.objectFlags|=o,r&&(s.pattern=t,s.objectFlags|=262144),s}(t,r,n):no(t,r,n)}function ao(e,t){return so(qa(e,!0),e,t)}function oo(e){var t,r=Pi(e),n=(t=!1,Mt||(Mt=zu("SymbolConstructor",t)));return n&&r&&r===n}function so(t,r,n){return t?(4096&t.flags&&oo(r.parent)&&(t=Id(r)),n&&_f(r,t),8192&t.flags&&(e.isBindingElement(r)||!r.type)&&t.symbol!==Pi(r)&&(t=Ve),cf(t)):(t=e.isParameter(r)&&r.dotDotDotToken?Nt:Ee,n&&(co(r)||df(r,t)),t)}function co(t){var r=e.getRootDeclaration(t);return $D(161===r.kind?r.parent:r)}function uo(t){var r=e.getEffectiveTypeAnnotationNode(t);if(r)return Rd(r)}function lo(t){var r=An(t);if(!r.type){var n=function(t){if(4194304&t.flags)return(r=Xo(wi(t))).typeParameters?hu(r,e.map(r.typeParameters,(function(e){return Ee}))):r;var r;if(t===ce)return Ee;if(134217728&t.flags&&t.valueDeclaration){var n=Pi(e.getSourceFileOfNode(t.valueDeclaration)),i=hn(n.flags,"exports");i.declarations=n.declarations?n.declarations.slice():[],i.parent=t,i.target=n,n.valueDeclaration&&(i.valueDeclaration=n.valueDeclaration),n.members&&(i.members=new e.Map(n.members)),n.exports&&(i.exports=new e.Map(n.exports));var a=e.createSymbolTable();return a.set("exports",i),Yi(t,a,e.emptyArray,e.emptyArray,void 0,void 0)}e.Debug.assertIsDefined(t.valueDeclaration);var o,s=t.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(s)){var c=e.getEffectiveTypeAnnotationNode(s);if(void 0===c)return Ee;var u=fS(c);return Ia(u)||u===Ne?u:ke}if(e.isSourceFile(s)&&e.isJsonSourceFile(s))return s.statements.length?cf(Np(OD(s.statements[0].expression))):it;if(!ka(t,0))return 512&t.flags&&!(67108864&t.flags)?vo(t):xo(t);if(267===s.kind)o=so(mD(s.expression),s);else if(e.isBinaryExpression(s)||e.isInJSFile(s)&&(e.isCallExpression(s)||(e.isPropertyAccessExpression(s)||e.isBindableStaticElementAccessExpression(s))&&e.isBinaryExpression(s.parent)))o=$a(t);else if(e.isPropertyAccessExpression(s)||e.isElementAccessExpression(s)||e.isIdentifier(s)||e.isStringLiteralLike(s)||e.isNumericLiteral(s)||e.isClassDeclaration(s)||e.isFunctionDeclaration(s)||e.isMethodDeclaration(s)&&!e.isObjectLiteralMethod(s)||e.isMethodSignature(s)||e.isSourceFile(s)){if(9136&t.flags)return vo(t);o=e.isBinaryExpression(s.parent)?$a(t):uo(s)||Ee}else if(e.isPropertyAssignment(s))o=uo(s)||SD(s);else if(e.isJsxAttribute(s))o=uo(s)||fy(s);else if(e.isShorthandPropertyAssignment(s))o=uo(s)||bD(s.name,0);else if(e.isObjectLiteralMethod(s))o=uo(s)||ED(s,0);else if(e.isParameter(s)||e.isPropertyDeclaration(s)||e.isPropertySignature(s)||e.isVariableDeclaration(s)||e.isBindingElement(s)||e.isJSDocPropertyLikeTag(s))o=ao(s,!0);else if(e.isEnumDeclaration(s))o=vo(t);else if(e.isEnumMember(s))o=ho(t);else{if(!e.isAccessor(s))return e.Debug.fail("Unhandled declaration kind! "+e.Debug.formatSyntaxKind(s.kind)+" for "+e.Debug.formatSymbol(t));o=mo(t)||e.Debug.fail("Non-write accessor resolution must always produce a type")}if(!Na())return 512&t.flags&&!(67108864&t.flags)?vo(t):xo(t);return o}(t);r.type||(r.type=n)}return r.type}function _o(t){if(t)return 168===t.kind?e.getEffectiveReturnTypeNode(t):e.getEffectiveSetAccessorTypeAnnotationNode(t)}function po(e){var t=_o(e);return t&&Rd(t)}function fo(t){var r=An(t);return r.type||(r.type=go(t)||e.Debug.fail("Read type of accessor must always produce a type"))}function go(t,r){if(void 0===r&&(r=!1),!ka(t,0))return ke;var n=mo(t,r);Na()||(n=Ee,X&&pn(e.getDeclarationOfKind(t,168),e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,da(t)));return n}function mo(t,r){void 0===r&&(r=!1);var n=e.getDeclarationOfKind(t,168),i=e.getDeclarationOfKind(t,169),a=po(i);if(r&&a)return c(a,t);if(n&&e.isInJSFile(n)){var o=za(n);if(o)return c(o,t)}var s=po(n);return s?c(s,t):a||(n&&n.body?c(Kh(n),t):i?($D(i)||gn(X,i,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,da(t)),Ee):n?(e.Debug.assert(!!n,"there must exist a getter as we are current checking either setter or getter in this function"),$D(n)||gn(X,n,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,da(t)),Ee):void 0);function c(t,r){return 1&e.getCheckFlags(r)?s_(t,An(r).mapper):t}}function yo(t){var r=Lo(Ko(t));return 8650752&r.flags?r:2097152&r.flags?e.find(r.types,(function(e){return!!(8650752&e.flags)})):void 0}function vo(t){var r=An(t),n=r;if(!r.type){var i=t.valueDeclaration&&ch(t.valueDeclaration,!1);if(i){var a=sh(t,i);a&&(t=r=a)}n.type=r.type=function(t){var r=t.valueDeclaration;if(1536&t.flags&&e.isShorthandAmbientModuleSymbol(t))return Ee;if(r&&(217===r.kind||e.isAccessExpression(r)&&217===r.parent.kind))return $a(t);if(512&t.flags&&r&&e.isSourceFile(r)&&r.commonJsModuleIndicator){var n=Di(t);if(n!==t){if(!ka(t,0))return ke;var i=Ni(t.exports.get("export=")),a=$a(i,i===n?void 0:n);return Na()?a:xo(t)}}var o=Vi(16,t);if(32&t.flags){var s=yo(t);return s?Al([o,s]):o}return W&&16777216&t.flags?Wp(o):o}(t)}return r.type}function ho(e){var t=An(e);return t.type||(t.type=Go(e))}function Do(t){var r=An(t);if(!r.type){var n=oi(t),i=t.declarations&&ni(qn(t),!0);r.type=(null==i?void 0:i.declarations)&&$b(i.declarations)&&t.declarations.length?function(t){var r=e.getSourceFileOfNode(t.declarations[0]),n=e.unescapeLeadingUnderscores(t.escapedName),i=t.declarations.every((function(t){return e.isInJSFile(t)&&e.isAccessExpression(t)&&e.isModuleExportsAccessExpression(t.expression)})),a=i?e.factory.createPropertyAccessExpression(e.factory.createPropertyAccessExpression(e.factory.createIdentifier("module"),e.factory.createIdentifier("exports")),n):e.factory.createPropertyAccessExpression(e.factory.createIdentifier("exports"),n);return i&&e.setParent(a.expression.expression,a.expression),e.setParent(a.expression,a),e.setParent(a,r),a.flowNode=r.endFlowNode,rm(a,Te,Pe)}(i):$b(t.declarations)?Te:111551&n.flags?So(n):ke}return r.type}function xo(t){var r=t.valueDeclaration;return e.getEffectiveTypeAnnotationNode(r)?(pn(t.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,da(t)),ke):(X&&(161!==r.kind||r.initializer)&&pn(t.valueDeclaration,e.Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,da(t)),Ee)}function bo(e){if(98304&e.flags){var t=function(e){var t=An(e);return t.writeType||(t.writeType=go(e,!0))}(e);if(t)return t}return So(e)}function So(t){var r=e.getCheckFlags(t);return 65536&r?function(t){var r=An(t);return r.type||(e.Debug.assertIsDefined(r.deferralParent),e.Debug.assertIsDefined(r.deferralConstituents),r.type=1048576&r.deferralParent.flags?xl(r.deferralConstituents):Al(r.deferralConstituents)),r.type}(t):1&r?function(e){var t=An(e);if(!t.type){if(!ka(e,0))return t.type=ke;var r=s_(So(t.target),t.mapper);Na()||(r=xo(e)),t.type=r}return t.type}(t):262144&r?function(t){if(!t.type){var r=t.mappedType;if(!ka(t,0))return r.containsError=!0,ke;var n=s_(Us(r.target||r),Xd(r.mapper,Js(r),t.keyType)),i=W&&16777216&t.flags&&!nD(n,49152)?Wp(n):524288&t.checkFlags?_g(n,524288):n;Na()||(pn(d,e.Diagnostics.Type_of_property_0_circularly_references_itself_in_mapped_type_1,da(t),pa(r)),i=ke),t.type=i}return t.type}(t):8192&r?function(e){var t=An(e);t.type||(t.type=kf(e.propertyType,e.mappedType,e.constraintType));return t.type}(t):7&t.flags?lo(t):9136&t.flags?vo(t):8&t.flags?ho(t):98304&t.flags?fo(t):2097152&t.flags?Do(t):ke}function Eo(t,r){return void 0!==t&&void 0!==r&&0!=(4&e.getObjectFlags(t))&&t.target===r}function To(t){return 4&e.getObjectFlags(t)?t.target:t}function Co(t,r){return function t(n){if(7&e.getObjectFlags(n)){var i=To(n);return i===r||e.some(Bo(i),t)}if(2097152&n.flags)return e.some(n.types,t);return!1}(t)}function ko(t,r){for(var n=0,i=r;n0)return!0;if(8650752&e.flags){var t=cc(e);return!!t&&Po(t)}return!1}function Io(t){return e.getEffectiveBaseTypeNode(t.symbol.valueDeclaration)}function Oo(t,r,n){var i=e.length(r),a=e.isInJSFile(n);return e.filter(kc(t,1),(function(t){return(a||i>=Jc(t.typeParameters))&&i<=e.length(t.typeParameters)}))}function Mo(t,r,n){var i=Oo(t,r,n),a=e.map(r,Rd);return e.sameMap(i,(function(t){return e.some(t.typeParameters)?eu(t,a,e.isInJSFile(n)):t}))}function Lo(t){if(!t.resolvedBaseConstructorType){var r=t.symbol.valueDeclaration,n=e.getEffectiveBaseTypeNode(r),i=Io(t);if(!i)return t.resolvedBaseConstructorType=Pe;if(!ka(t,1))return ke;var a=OD(i.expression);if(n&&i!==n&&(e.Debug.assert(!n.typeArguments),OD(n.expression)),2621440&a.flags&&$s(a),!Na())return pn(t.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,da(t.symbol)),t.resolvedBaseConstructorType=ke;if(!(1&a.flags||a===Me||wo(a))){var o=pn(i.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,pa(a));if(262144&a.flags){var s=fu(a),c=Ne;if(s){var u=kc(s,1);u[0]&&(c=Xc(u[0]))}a.symbol.declarations&&e.addRelatedInfo(o,e.createDiagnosticForNode(a.symbol.declarations[0],e.Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,da(a.symbol),pa(c)))}return t.resolvedBaseConstructorType=ke}t.resolvedBaseConstructorType=a}return t.resolvedBaseConstructorType}function Ro(t,r){pn(t,e.Diagnostics.Type_0_recursively_references_itself_as_a_base_type,pa(r,void 0,2))}function Bo(t){if(!t.baseTypesResolved){if(ka(t,7)&&(8&t.objectFlags?t.resolvedBaseTypes=[jo(t)]:96&t.symbol.flags?(32&t.symbol.flags&&function(t){t.resolvedBaseTypes=e.resolvingEmptyArray;var r=gc(Lo(t));if(!(2621441&r.flags))return t.resolvedBaseTypes=e.emptyArray;var n,i=Io(t),a=r.symbol?Xo(r.symbol):void 0;if(r.symbol&&32&r.symbol.flags&&function(e){var t=e.outerTypeParameters;if(t){var r=t.length-1,n=bu(e);return t[r].symbol!==n[r].symbol}return!0}(a))n=Eu(i,r.symbol);else if(1&r.flags)n=r;else{var o=Mo(r,i.typeArguments,i);if(!o.length)return pn(i.expression,e.Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments),t.resolvedBaseTypes=e.emptyArray;n=Xc(o[0])}if(n===ke)return t.resolvedBaseTypes=e.emptyArray;var s=Dc(n);if(!Jo(s)){var c=Ec(void 0,n),u=e.chainDiagnosticMessages(c,e.Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members,pa(s));return Zr.add(e.createDiagnosticForNodeFromMessageChain(i.expression,u)),t.resolvedBaseTypes=e.emptyArray}if(t===s||Co(s,t))return pn(t.symbol.valueDeclaration,e.Diagnostics.Type_0_recursively_references_itself_as_a_base_type,pa(t,void 0,2)),t.resolvedBaseTypes=e.emptyArray;t.resolvedBaseTypes===e.resolvingEmptyArray&&(t.members=void 0);t.resolvedBaseTypes=[s]}(t),64&t.symbol.flags&&function(t){if(t.resolvedBaseTypes=t.resolvedBaseTypes||e.emptyArray,t.symbol.declarations)for(var r=0,n=t.symbol.declarations;r0)return;for(var i=1;i1&&(n=void 0===n?i:-1);for(var a=0,o=t[i];a1){var l=s.thisParameter,d=e.forEach(c,(function(e){return e.thisParameter}));if(d)l=ef(d,Al(e.mapDefined(c,(function(e){return e.thisParameter&&So(e.thisParameter)}))));(u=Ds(s,c)).thisParameter=l}(r||(r=[])).push(u)}}}}if(!e.length(r)&&-1!==n){for(var _=t[void 0!==n?n:0],p=_.slice(),f=function(t){if(t!==_){var r=t[0];if(e.Debug.assert(!!r,"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"),!(p=r.typeParameters&&e.some(p,(function(e){return!!e.typeParameters&&!Cs(r.typeParameters,e.typeParameters)}))?void 0:e.map(p,(function(t){return function(t,r){var n,i=t.typeParameters||r.typeParameters;t.typeParameters&&r.typeParameters&&(n=zd(r.typeParameters,t.typeParameters));var a=t.declaration,o=function(e,t,r){for(var n=Ah(e),i=Ah(t),a=n>=i?e:t,o=a===e?t:e,s=a===e?n:i,c=Nh(e)||Nh(t),u=c&&!Nh(a),l=new Array(s+(u?1:0)),d=0;d=Fh(a)&&d>=Fh(o),y=d>=n?void 0:bh(e,d),v=d>=i?void 0:bh(t,d),h=hn(1|(m&&!g?16777216:0),(y===v?y:y?v?void 0:y:v)||"arg"+d);h.type=g?Zu(f):f,l[d]=h}if(u){var D=hn(1,"args");D.type=Zu(Th(o,s)),o===t&&(D.type=s_(D.type,r)),l[s]=D}return l}(t,r,n),s=function(e,t,r){if(!e||!t)return e||t;var n=Al([So(e),s_(So(t),r)]);return ef(e,n)}(t.thisParameter,r.thisParameter,n),c=Math.max(t.minArgumentCount,r.minArgumentCount),u=vs(a,i,s,o,void 0,void 0,c,39&(t.flags|r.flags));u.compositeKind=1048576,u.compositeSignatures=e.concatenate(2097152!==t.compositeKind&&t.compositeSignatures||[t],[r]),n&&(u.mapper=2097152!==t.compositeKind&&t.mapper&&t.compositeSignatures?Gd(t.mapper,n):n);return u}(t,r)}))))return"break"}},g=0,m=t;g0})),n=e.map(t,Po);if(r>0&&r===e.countWhere(n,(function(e){return e}))){var i=n.indexOf(!0);n[i]=!1}return n}function ws(t){for(var r,n,i,a,o=t.types,s=Ps(o),c=e.countWhere(s,(function(e){return e})),u=function(u){var l=t.types[u];if(!s[u]){var d=kc(l,1);d.length&&c>0&&(d=e.map(d,(function(e){var t=hs(e);return t.resolvedReturnType=function(e,t,r,n){for(var i=[],a=0;a=p&&c<=f){var g=f?ru(_,Kc(s,_.typeParameters,p,o)):hs(_);g.typeParameters=t.localTypeParameters,g.resolvedReturnType=t,g.flags=i?4|g.flags:-5&g.flags,u.push(g)}}return u}(_)),t.constructSignatures=i}}}function Ms(e,t,r){return s_(e,zd([t.indexType,t.objectType],[wd(0),ol([r])]))}function Ls(t,r){var n=lu(t,r);if(n)return du(n.type?Rd(n.type):Ee,e.hasEffectiveModifier(n,64),n)}function Rs(t){if(4194304&t.flags){var r=gc(t.type);return Mp(r)?dl(r):Bl(r)}if(16777216&t.flags){if(t.root.isDistributive){var n=t.checkType,i=Rs(n);if(i!==n)return o_(t,Yd(t.root.checkType,i,t.mapper))}return t}return 1048576&t.flags?Og(t,Rs):2097152&t.flags?Al(e.sameMap(t.types,Rs)):t}function Bs(t){return 4096&e.getCheckFlags(t)}function js(t){var r,n,i=e.createSymbolTable();Gi(t,C,e.emptyArray,e.emptyArray,void 0,void 0);var a=Js(t),o=Ks(t),s=zs(t.target||t),c=Us(t.target||t),u=gc(Ws(t)),l=Hs(t),d=Q?128:8576;if(qs(t)){for(var _=0,p=tc(u);_=7,rr||(rr=Vu("BigInt",0,r))||it):528&n.flags?kt:12288&n.flags?Wu(z>=2):67108864&n.flags?it:4194304&n.flags?Ze:2&n.flags&&!W?it:n}function mc(e){return Dc(gc(Dc(e)))}function yc(t,r,n){for(var i,a,o,s,c,u=1048576&t.flags,l=u?0:16777216,d=4,_=0,p=!1,f=0,g=t.types;f2?(N.checkFlags|=65536,N.deferralParent=t,N.deferralConstituents=E):N.type=u?xl(E):Al(E),N}}function vc(t,r,n){var i,a,o=(null===(i=t.propertyCacheWithoutObjectFunctionPropertyAugment)||void 0===i?void 0:i.get(r))||!n?null===(a=t.propertyCache)||void 0===a?void 0:a.get(r):void 0;o||(o=yc(t,r,n))&&(n?t.propertyCacheWithoutObjectFunctionPropertyAugment||(t.propertyCacheWithoutObjectFunctionPropertyAugment=e.createSymbolTable()):t.propertyCache||(t.propertyCache=e.createSymbolTable())).set(r,o);return o}function hc(t,r,n){var i=vc(t,r,n);return!i||16&e.getCheckFlags(i)?void 0:i}function Dc(t){return 1048576&t.flags&&67108864&t.objectFlags?t.resolvedReducedType||(t.resolvedReducedType=function(t){var r=e.sameMap(t.types,Dc);if(r===t.types)return t;var n=xl(r);1048576&n.flags&&(n.resolvedReducedType=n);return n}(t)):2097152&t.flags?(67108864&t.objectFlags||(t.objectFlags|=67108864|(e.some(ec(t),xc)?134217728:0)),134217728&t.objectFlags?We:t):t}function xc(e){return bc(e)||Sc(e)}function bc(t){return!(16777216&t.flags||192!=(131264&e.getCheckFlags(t))||!(131072&So(t).flags))}function Sc(t){return!t.valueDeclaration&&!!(1024&e.getCheckFlags(t))}function Ec(t,r){if(2097152&r.flags&&134217728&e.getObjectFlags(r)){var n=e.find(ec(r),bc);if(n)return e.chainDiagnosticMessages(t,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,pa(r,void 0,536870912),da(n));var i=e.find(ec(r),Sc);if(i)return e.chainDiagnosticMessages(t,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,pa(r,void 0,536870912),da(i))}return t}function Tc(e,t,r){if(524288&(e=mc(e)).flags){var n=$s(e),i=n.members.get(t);if(i&&Bi(i))return i;if(r)return;var a=n===ut?Dt:n.callSignatures.length?xt:n.constructSignatures.length?bt:void 0;if(a){var o=Zs(a,t);if(o)return o}return Zs(ht,t)}if(3145728&e.flags)return hc(e,t,r)}function Cc(t,r){if(3670016&t.flags){var n=$s(t);return 0===r?n.callSignatures:n.constructSignatures}return e.emptyArray}function kc(e,t){return Cc(mc(e),t)}function Ac(e,t){if(3670016&e.flags){var r=$s(e);return 0===t?r.stringIndexInfo:r.numberIndexInfo}}function Fc(e,t){var r=Ac(e,t);return r&&r.type}function Nc(e,t){return Ac(mc(e),t)}function Pc(e,t){return Fc(mc(e),t)}function wc(t,r){if(Zp(t)){for(var n=[],i=0,a=tc(t);i=0),n>=Fh(r,3)}var i=e.getImmediatelyInvokedFunctionExpression(t.parent);return!!i&&(!t.type&&!t.dotDotDotToken&&t.parent.parameters.indexOf(t)>=i.arguments.length)}function Bc(t){if(!e.isJSDocPropertyLikeTag(t))return!1;var r=t.isBracketed,n=t.typeExpression;return r||!!n&&308===n.type.kind}function jc(e,t,r,n){return{kind:e,parameterName:t,parameterIndex:r,type:n}}function Jc(t){var r,n=0;if(t)for(var i=0;i=n&&o<=a){for(var s=t?t.slice():[],c=o;cu.arguments.length&&!f||Mc(_)||(o=i.length)}if((168===t.kind||169===t.kind)&&ls(t)&&(!c||!s)){var g=168===t.kind?169:168,m=e.getDeclarationOfKind(Pi(t),g);m&&(s=(r=vE(m))&&r.symbol)}var y=167===t.kind?Ko(Ni(t.parent.symbol)):void 0,v=y?y.localTypeParameters:Ic(t);(e.hasRestParameter(t)||e.isInJSFile(t)&&function(t,r){if(e.isJSDocSignature(t)||!Vc(t))return!1;var n=e.lastOrUndefined(t.parameters),i=n?e.getJSDocParameterTags(n):e.getJSDocTags(t).filter(e.isJSDocParameterTag),a=e.firstDefined(i,(function(t){return t.typeExpression&&e.isJSDocVariadicType(t.typeExpression.type)?t.typeExpression.type:void 0})),o=hn(3,"args",32768);o.type=a?Zu(Rd(a.type)):Nt,a&&r.pop();return r.push(o),!0}(t,i))&&(a|=1),(e.isConstructorTypeNode(t)&&e.hasSyntacticModifier(t,128)||e.isConstructorDeclaration(t)&&e.hasSyntacticModifier(t.parent,128))&&(a|=4),n.resolvedSignature=vs(t,v,s,i,void 0,void 0,o,a)}return n.resolvedSignature}function Uc(t){if(e.isInJSFile(t)&&e.isFunctionLikeDeclaration(t)){var r=e.getJSDocTypeTag(t);return(null==r?void 0:r.typeExpression)&&Tv(Rd(r.typeExpression))}}function Vc(t){var r=Fn(t);return void 0===r.containsArgumentsReference&&(8192&r.flags?r.containsArgumentsReference=!0:r.containsArgumentsReference=function t(r){if(!r)return!1;switch(r.kind){case 78:return r.escapedText===se.escapedName&&Hf(r)===se;case 164:case 166:case 168:case 169:return 159===r.name.kind&&t(r.name);case 202:case 203:return t(r.expression);default:return!e.nodeStartsNewLexicalEnvironment(r)&&!e.isPartOfTypeNode(r)&&!!e.forEachChild(r,t)}}(t.body)),r.containsArgumentsReference}function qc(t){if(!t||!t.declarations)return e.emptyArray;for(var r=[],n=0;n0&&i.body){var a=t.declarations[n-1];if(i.parent===a.parent&&i.kind===a.kind&&i.pos===a.end)continue}r.push(zc(i))}}return r}function Wc(e){var t=mi(e,e);if(t){var r=Di(t);if(r)return So(r)}return Ee}function Hc(e){if(e.thisParameter)return So(e.thisParameter)}function Gc(t){if(!t.resolvedTypePredicate){if(t.target){var r=Gc(t.target);t.resolvedTypePredicate=r?(o=r,s=t.mapper,jc(o.kind,o.parameterName,o.parameterIndex,s_(o.type,s))):lr}else if(t.compositeSignatures)t.resolvedTypePredicate=function(e,t){for(var r,n=[],i=0,a=e;i=0}function Zc(e){if(J(e)){var t=So(e.parameters[e.parameters.length-1]),r=Op(t)?Rp(t):t;return r&&Pc(r,1)}}function eu(e,t,r,n){var i=tu(e,Kc(t,e.typeParameters,Jc(e.typeParameters),r));if(n){var a=Cv(Xc(i));if(a){var o=hs(a);o.typeParameters=n;var s=hs(i);return s.resolvedReturnType=ou(o),s}}return i}function tu(t,r){var n=t.instantiations||(t.instantiations=new e.Map),i=mu(r),a=n.get(i);return a||n.set(i,a=ru(t,r)),a}function ru(e,t){return Qd(e,function(e,t){return zd(e.typeParameters,t)}(e,t),!0)}function nu(e){return e.typeParameters?e.erasedSignatureCache||(e.erasedSignatureCache=function(e){return Qd(e,Hd(e.typeParameters),!0)}(e)):e}function iu(t){return t.typeParameters?t.canonicalSignatureCache||(t.canonicalSignatureCache=function(t){return eu(t,e.map(t.typeParameters,(function(e){return e.target&&!nc(e.target)?e.target:e})),e.isInJSFile(t.declaration))}(t)):t}function au(t){var r=t.typeParameters;if(r){if(t.baseSignatureCache)return t.baseSignatureCache;for(var n=Hd(r),i=zd(r,e.map(r,(function(e){return nc(e)||Ne}))),a=e.map(r,(function(e){return s_(e,i)||Ne})),o=0;o1&&(t+=":"+a),n+=a}return t}function yu(e,t){return e?"@"+M(e)+(t?":"+mu(t):""):""}function vu(t,r){for(var n=0,i=0,a=t;ii.length)){var c=s&&e.isExpressionWithTypeArguments(t)&&!e.isJSDocAugmentsTag(t.parent);if(pn(t,o===i.length?c?e.Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_1_type_argument_s:c?e.Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,pa(n,void 0,2),o,i.length),!s)return ke}return 174===t.kind&&nl(t,e.length(t.typeArguments)!==i.length)?xu(n,t,void 0):hu(n,e.concatenate(n.outerTypeParameters,Kc(Bu(t),i,o,s)))}return Mu(t,r)?n:ke}function Tu(t,r,n,i){var a=Xo(t);if(a===Fe&&P.has(t.escapedName)&&r&&1===r.length)return zl(t,r[0]);var o=An(t),s=o.typeParameters,c=mu(r)+yu(n,i),u=o.instantiations.get(c);return u||o.instantiations.set(c,u=c_(a,zd(s,Kc(r,s,Jc(s),e.isInJSFile(t.valueDeclaration))),n,i)),u}function Cu(t){var r,n=null===(r=t.declarations)||void 0===r?void 0:r.find(e.isTypeAlias);return!(!n||!e.getContainingFunction(n))}function ku(t){switch(t.kind){case 174:return t.typeName;case 224:var r=t.expression;if(e.isEntityNameExpression(r))return r}}function Au(e,t,r){return e&&fi(e,t,r)||be}function Fu(t,r){if(r===be)return ke;if(96&(r=function(t){var r=t.valueDeclaration;if(r&&e.isInJSFile(r)&&!(524288&t.flags)&&!e.getExpandoInitializer(r,!1)){var n=e.isVariableDeclaration(r)?e.getDeclaredExpandoInitializer(r):e.getAssignedExpandoInitializer(r);if(n){var i=Pi(n);if(i)return sh(i,t)}}}(r)||r).flags)return Eu(t,r);if(524288&r.flags)return function(t,r){var n=Xo(r),i=An(r).typeParameters;if(i){var a=e.length(t.typeArguments),o=Jc(i);if(ai.length)return pn(t,o===i.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,da(r),o,i.length),ke;var s=hd(t),c=!s||!Cu(r)&&Cu(s)?void 0:s;return Tu(r,Bu(t),c,Dd(c))}return Mu(t,r)?n:ke}(t,r);var n=$o(r);if(n)return Mu(t,r)?Nd(n):ke;if(111551&r.flags&&Ou(t)){var i=function(e,t){var r=Fn(e);if(!r.resolvedJSDocType){var n=So(t),i=n;if(t.valueDeclaration){var a=196===e.kind&&e.qualifier;n.symbol&&n.symbol!==t&&a&&(i=Fu(e,n.symbol))}r.resolvedJSDocType=i}return r.resolvedJSDocType}(t,r);return i||(Au(ku(t),788968),So(r))}return ke}function Nu(e,t){if(3&t.flags||t===e)return e;var r=fl(e)+">"+fl(t),n=ve.get(r);if(n)return n;var i=Ji(33554432);return i.baseType=e,i.substitute=t,ve.set(r,i),i}function Pu(e){return 180===e.kind&&1===e.elements.length}function wu(e,t,r){return Pu(t)&&Pu(r)?wu(e,t.elements[0],r.elements[0]):cd(Rd(t))===e?Rd(r):void 0}function Iu(t,r){for(var n,i=!0;r&&!e.isStatement(r)&&312!==r.kind;){var a=r.parent;if(161===a.kind&&(i=!i),(i||8650752&t.flags)&&185===a.kind&&r===a.trueType){var o=wu(t,a.checkType,a.extendsType);o&&(n=e.append(n,o))}r=a}return n?Nu(t,Al(e.append(n,t))):t}function Ou(e){return!!(4194304&e.flags)&&(174===e.kind||196===e.kind)}function Mu(t,r){return!t.typeArguments||(pn(t,e.Diagnostics.Type_0_is_not_generic,r?da(r):t.typeName?e.declarationNameToString(t.typeName):u),!1)}function Lu(t){if(e.isIdentifier(t.typeName)){var r=t.typeArguments;switch(t.typeName.escapedText){case"String":return Mu(t),Le;case"Number":return Mu(t),Re;case"Boolean":return Mu(t),Ue;case"Void":return Mu(t),qe;case"Undefined":return Mu(t),Pe;case"Null":return Mu(t),Oe;case"Function":case"function":return Mu(t),Dt;case"array":return r&&r.length||X?void 0:Nt;case"promise":return r&&r.length||X?void 0:Bh(Ee);case"Object":if(r&&2===r.length){if(e.isJSDocIndexSignature(t)){var n=Rd(r[0]),i=du(Rd(r[1]),!1);return Yi(void 0,C,e.emptyArray,e.emptyArray,n===Le?i:void 0,n===Re?i:void 0)}return Ee}return Mu(t),X?void 0:Ee}}}function Ru(t){var r=Fn(t);if(!r.resolvedType){if(e.isConstTypeReference(t)&&e.isAssertionExpression(t.parent))return r.resolvedSymbol=be,r.resolvedType=mD(t.parent.expression);var n=void 0,i=void 0,a=788968;Ou(t)&&((i=Lu(t))||((n=Au(ku(t),a,!0))===be?n=Au(ku(t),900095):Au(ku(t),a),i=Fu(t,n))),i||(i=Fu(t,n=Au(ku(t),a))),r.resolvedSymbol=n,r.resolvedType=i}return r.resolvedType}function Bu(t){return e.map(t.typeArguments,Rd)}function ju(e){var t=Fn(e);return t.resolvedType||(t.resolvedType=Nd(cf(OD(e.exprName)))),t.resolvedType}function Ju(t,r){function n(e){var t=e.declarations;if(t)for(var r=0,n=t;r=0)return Nl(e.map(r,(function(e,r){return 8&t.elementFlags[r]?e:Ne})))?Og(r[o],(function(n){return ul(t,e.replaceElement(r,o,n))})):ke}for(var s=[],c=[],u=[],l=-1,_=-1,p=-1,f=function(o){var c=r[o],u=t.elementFlags[o];if(8&u)if(58982400&c.flags||Xs(c))v(c,8,null===(n=t.labeledElementDeclarations)||void 0===n?void 0:n[o]);else if(Op(c)){var l=bu(c);if(l.length+s.length>=1e4)return pn(d,e.isPartOfTypeNode(d)?e.Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent:e.Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent),{value:ke};e.forEach(l,(function(e,t){var r;return v(e,c.target.elementFlags[t],null===(r=c.target.labeledElementDeclarations)||void 0===r?void 0:r[t])}))}else v(Dp(c)&&Pc(c,1)||ke,4,null===(i=t.labeledElementDeclarations)||void 0===i?void 0:i[o]);else v(c,u,null===(a=t.labeledElementDeclarations)||void 0===a?void 0:a[o])},g=0;g=0&&_i.fixedLength?function(e){var t=Rp(e);return t&&Zu(t)}(t)||ol(e.emptyArray):ol(bu(t).slice(r,a),i.elementFlags.slice(r,a),!1,i.labeledElementDeclarations&&i.labeledElementDeclarations.slice(r,a))}function dl(t){return xl(e.append(e.arrayOf(t.target.fixedLength,(function(e){return wd(""+e)})),Bl(t.target.readonly?Et:St)))}function _l(t,r){var n=e.findIndex(t.elementFlags,(function(e){return!(e&r)}));return n>=0?n:t.elementFlags.length}function pl(t,r){return t.elementFlags.length-e.findLastIndex(t.elementFlags,(function(e){return!(e&r)}))-1}function fl(e){return e.id}function gl(t,r){return e.binarySearch(t,r,fl,e.compareValues)>=0}function ml(t,r){var n=e.binarySearch(t,r,fl,e.compareValues);return n<0&&(t.splice(~n,0,r),!0)}function yl(t,r,n){var i=n.flags;if(1048576&i)return vl(t,r|(function(e){return!!(1048576&e.flags&&(e.aliasSymbol||e.origin))}(n)?1048576:0),n.types);if(!(131072&i))if(r|=205258751&i,469499904&i&&(r|=262144),n===Ce&&(r|=8388608),!W&&98304&i)131072&e.getObjectFlags(n)||(r|=4194304);else{var a=t.length,o=a&&n.id>t[a-1].id?~a:e.binarySearch(t,n,fl,e.compareValues);o<0&&t.splice(~o,0,n)}return r}function vl(e,t,r){for(var n=0,i=r;n0;){var a=t[--i],o=a.flags;(128&o&&4&r||256&o&&8&r||2048&o&&64&r||8192&o&&4096&r||n&&32768&o&&16384&r||Pd(a)&&gl(t,a.regularType))&&e.orderedRemoveItemAt(t,i)}}(o,s,!!(2&r)),128&s&&134217728&s&&function(t){var r=e.filter(t,Yl);if(r.length)for(var n=t.length,i=function(){n--;var i=t[n];128&i.flags&&e.some(r,(function(e){return x_(i,e)}))&&e.orderedRemoveItemAt(t,n)};n>0;)i()}(o),2===r&&!(o=function(t,r){var n=mu(t),i=he.get(n);if(i)return i;for(var a=r&&e.some(t,(function(e){return!!(524288&e.flags)&&!Xs(e)&&j_($s(e))})),o=t.length,s=o,c=0;s>0;){var u=t[--s];if(a||469499904&u.flags)for(var l=61603840&u.flags?e.find(tc(u),(function(e){return Cp(So(e))})):void 0,_=l&&Nd(So(l)),p=0,f=t;p1e6)return null===e.tracing||void 0===e.tracing||e.tracing.instant("checkTypes","removeSubtypes_DepthLimit",{typeIds:t.map((function(e){return e.id}))}),void pn(d,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);if(c++,l&&61603840&g.flags){var m=wa(g,l.escapedName);if(m&&Cp(m)&&Nd(m)!==_)continue}if(q_(u,g,an)&&(!(1&e.getObjectFlags(To(u)))||!(1&e.getObjectFlags(To(g)))||S_(u,g))){e.orderedRemoveItemAt(t,s);break}}}}return he.set(n,t),t}(o,!!(524288&s))))return ke;if(0===o.length)return 65536&s?4194304&s?Oe:Me:32768&s?4194304&s?Pe:we:We}if(!a&&1048576&s){var c=[];hl(c,t);for(var u=[],l=function(t){e.some(c,(function(e){return gl(e.types,t)}))||u.push(t)},_=0,p=o;_0;){var i=t[--r];if(134217728&i.flags)for(var a=0,o=n;a0;){var i=t[--n];(4&i.flags&&128&r||8&i.flags&&256&r||64&i.flags&&2048&r||4096&i.flags&&8192&r)&&e.orderedRemoveItemAt(t,n)}}(o,a),16777216&a&&524288&a&&e.orderedRemoveItemAt(o,e.findIndex(o,K_)),0===o.length)return Ne;if(1===o.length)return o[0];var s=mu(o)+yu(r,n),c=pe.get(s);if(!c){if(1048576&a)if(function(t){var r,n=e.findIndex(t,(function(t){return!!(65536&e.getObjectFlags(t))}));if(n<0)return!1;for(var i=n+1;i=0;o--)if(1048576&e[o].flags){var s=e[o].types,c=s.length;i[o]=s[a%c],a=Math.floor(a/c)}var u=Al(i);131072&u.flags||r.push(u)}return r}(o);c=xl(u,1,r,n,e.some(u,(function(e){return!!(2097152&e.flags)}))?Dl(2097152,o):void 0)}else c=function(e,t,r){var n=Ji(2097152);return n.objectFlags=vu(e,98304),n.types=e,n.aliasSymbol=t,n.aliasTypeArguments=r,n}(o,r,n);pe.set(s,c)}return c}function Fl(t){return e.reduceLeft(t,(function(e,t){return 1048576&t.flags?e*t.types.length:131072&t.flags?0:e}),1)}function Nl(t){var r=Fl(t);return!(r>=1e5)||(null===e.tracing||void 0===e.tracing||e.tracing.instant("checkTypes","checkCrossProductUnion_DepthLimit",{typeIds:t.map((function(e){return e.id})),size:r}),pn(d,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1)}function Pl(e,t){var r=Ji(4194304);return r.type=e,r.stringsOnly=t,r}function wl(e,t,r){return s_(e,Xd(t.mapper,Js(t),r))}function Il(t){return!(!t||!(16777216&t.flags&&(!t.root.isDistributive||Il(t.checkType))||137363456&t.flags&&e.some(t.types,Il)||272629760&t.flags&&Il(t.type)||8388608&t.flags&&Il(t.indexType)||33554432&t.flags&&Il(t.substitute)))}function Ol(t){return e.isPrivateIdentifier(t)?We:e.isIdentifier(t)?wd(e.unescapeLeadingUnderscores(t.escapedText)):Nd(e.isComputedPropertyName(t)?sy(t):OD(t))}function Ml(t,r){if(!(24&e.getDeclarationModifierFlagsFromSymbol(t))){var n=An(gs(t)).nameType;if(!n)if("default"===t.escapedName)n=wd("default");else{var i=t.valueDeclaration&&e.getNameOfDeclaration(t.valueDeclaration);n=i&&Ol(i)||(e.isKnownSymbol(t)?void 0:wd(e.symbolName(t)))}if(n&&n.flags&r)return n}return We}function Ll(t,r,n){var i=n&&(7&e.getObjectFlags(t)||t.aliasSymbol)?function(e){var t=Ki(4194304);return t.type=e,t}(t):void 0;return xl(e.map(tc(t),(function(e){return Ml(e,r)})),1,void 0,void 0,i)}function Rl(e){var t=Nc(e,1);return t!==gr?t:void 0}function Bl(t,r,n){void 0===r&&(r=Q);var i=r===Q&&!n;return 1048576&(t=Dc(t)).flags?Al(e.map(t.types,(function(e){return Bl(e,r,n)}))):2097152&t.flags?xl(e.map(t.types,(function(e){return Bl(e,r,n)}))):58982400&t.flags||Mp(t)||Xs(t)&&Il(zs(t))?function(e,t){return t?e.resolvedStringIndexType||(e.resolvedStringIndexType=Pl(e,!0)):e.resolvedIndexType||(e.resolvedIndexType=Pl(e,!1))}(t,r):32&e.getObjectFlags(t)?function(t,r){var n=wg(Ks(t),(function(e){return!(r&&5&e.flags)})),i=t.declaration.nameType&&Rd(t.declaration.nameType),a=i&&Pg(n,(function(e){return!!(131084&e.flags)}))&&tc(gc(Ws(t)));return i?xl([Og(n,(function(e){return wl(i,t,e)})),Og(xl(e.map(a||e.emptyArray,(function(e){return Ml(e,8576)}))),(function(e){return wl(i,t,e)}))]):n}(t,n):t===Ce?Ce:2&t.flags?We:131073&t.flags?Ze:r?!n&&Nc(t,0)?Le:Ll(t,128,i):!n&&Nc(t,0)?xl([Le,Re,Ll(t,8192,i)]):Rl(t)?xl([Re,Ll(t,8320,i)]):Ll(t,8576,i)}function jl(t){if(Q)return t;var r=er||(er=Uu("Extract",524288,e.Diagnostics.Cannot_find_global_type_0));return r?Tu(r,[t,Le]):Le}function Jl(t,r){var n=e.findIndex(r,(function(e){return!!(1179648&e.flags)}));if(n>=0)return Nl(r)?Og(r[n],(function(i){return Jl(t,e.replaceElement(r,n,i))})):ke;if(e.contains(r,Ce))return Ce;var i=[],a=[],o=t[0];if(!function e(t,r){for(var n=0;n=0){if(o&&Pg(r,(function(e){return!e.target.hasRestElement}))&&!(8&s)){var g=Hl(o);Op(r)?pn(g,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,pa(r),Su(r),e.unescapeLeadingUnderscores(_)):pn(g,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(_),pa(r))}return E(Nc(r,1)),Og(r,(function(e){var t=Rp(e)||Pe;return c?xl([t,Pe]):t}))}}if(!(98304&n.flags)&&iD(n,402665900)){if(131073&r.flags)return r;var m=Nc(r,0),y=iD(n,296)&&Nc(r,1)||m;if(y)return 1&s&&y===m?void(d&&pn(d,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,pa(n),pa(t))):o&&!iD(n,12)?(pn(g=Hl(o),e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,pa(n)),c?xl([y.type,Pe]):y.type):(E(y),c?xl([y.type,Pe]):y.type);if(131072&n.flags)return We;if(Ul(r))return Ee;if(d&&!oD(r)){if(jf(r)){if(X&&384&n.flags)return Zr.add(e.createDiagnosticForNode(d,e.Diagnostics.Property_0_does_not_exist_on_type_1,n.value,pa(r))),Pe;if(12&n.flags){var v=e.map(r.properties,(function(e){return So(e)}));return xl(e.append(v,Pe))}}if(r.symbol===ae&&void 0!==_&&ae.exports.has(_)&&418&ae.exports.get(_).flags)pn(d,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(_),pa(r));else if(X&&!A.suppressImplicitAnyIndexErrors&&!a)if(void 0!==_&&tv(_,r)){var h=pa(r);pn(d,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,_,h,h+"["+e.getTextOfNode(d.argumentExpression)+"]")}else if(Pc(r,1))pn(d.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var D=void 0;if(void 0!==_&&(D=iv(_,r)))void 0!==D&&pn(d.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,_,pa(r),D);else{var x=function(t,r,n){function i(e){var r=Zs(t,e);if(r){var i=Tv(So(r));return!!i&&Fh(i)>=1&&b_(n,Th(i,0))}return!1}var a=e.isAssignmentTarget(r)?"set":"get";if(!i(a))return;var o=e.tryGetPropertyAccessOrIdentifierToString(r.expression);void 0===o?o=a:o+="."+a;return o}(r,d,n);if(void 0!==x)pn(d,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,pa(r),x);else{var b=void 0;if(1024&n.flags)b=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+pa(n)+"]",pa(r));else if(8192&n.flags){var S=pi(n.symbol,d);b=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+S+"]",pa(r))}else 128&n.flags||256&n.flags?b=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,n.value,pa(r)):12&n.flags&&(b=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,pa(n),pa(r)));b=e.chainDiagnosticMessages(b,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,pa(i),pa(r)),Zr.add(e.createDiagnosticForNodeFromMessageChain(d,b))}}}return}}if(Ul(r))return Ee;if(o){g=Hl(o);384&n.flags?pn(g,e.Diagnostics.Property_0_does_not_exist_on_type_1,""+n.value,pa(r)):12&n.flags?pn(g,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,pa(r),pa(n)):pn(g,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,pa(n))}return Ia(n)?n:void 0;function E(t){t&&t.isReadonly&&d&&(e.isAssignmentTarget(d)||e.isDeleteTarget(d))&&pn(d,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,pa(r))}}function Hl(e){return 203===e.kind?e.argumentExpression:190===e.kind?e.indexType:159===e.kind?e.expression:e}function Gl(e){return!!(77&e.flags)}function Yl(t){return!!(134217728&t.flags)&&e.every(t.types,Gl)}function Xl(t){return 3145728&t.flags?(4194304&t.objectFlags||(t.objectFlags|=4194304|(e.some(t.types,Xl)?8388608:0)),!!(8388608&t.objectFlags)):33554432&t.flags?(4194304&t.objectFlags||(t.objectFlags|=4194304|(Xl(t.substitute)||Xl(t.baseType)?8388608:0)),!!(8388608&t.objectFlags)):!!(58982400&t.flags)||Xs(t)||Mp(t)}function $l(t){return 3145728&t.flags?(16777216&t.objectFlags||(t.objectFlags|=16777216|(e.some(t.types,$l)?33554432:0)),!!(33554432&t.objectFlags)):33554432&t.flags?(16777216&t.objectFlags||(t.objectFlags|=16777216|($l(t.substitute)||$l(t.baseType)?33554432:0)),!!(33554432&t.objectFlags)):!!(465829888&t.flags)&&!Yl(t)}function Ql(e){return!!(262144&e.flags&&e.isThisType)}function Zl(t,r){return 8388608&t.flags?function(t,r){var n=r?"simplifiedForWriting":"simplifiedForReading";if(t[n])return t[n]===dt?t:t[n];t[n]=dt;var i=Zl(t.objectType,r),a=Zl(t.indexType,r),o=function(t,r,n){if(1048576&r.flags){var i=e.map(r.types,(function(e){return Zl(nd(t,e),n)}));return n?Al(i):xl(i)}}(i,a,r);if(o)return t[n]=o;if(!(465829888&a.flags)){var s=ed(i,a,r);if(s)return t[n]=s}if(Mp(i)&&296&a.flags){var c=Bp(i,8&a.flags?0:i.target.fixedLength,0,r);if(c)return t[n]=c}if(Xs(i))return t[n]=Og(rd(i,t.indexType),(function(e){return Zl(e,r)}));return t[n]=t}(t,r):16777216&t.flags?function(e,t){var r=e.checkType,n=e.extendsType,i=_d(e),a=pd(e);if(131072&a.flags&&cd(i)===cd(r)){if(1&r.flags||b_(l_(r),l_(n)))return Zl(i,t);if(td(r,n))return We}else if(131072&i.flags&&cd(a)===cd(r)){if(!(1&r.flags)&&b_(l_(r),l_(n)))return We;if(1&r.flags||td(r,n))return Zl(a,t)}return e}(t,r):t}function ed(t,r,n){if(3145728&t.flags){var i=e.map(t.types,(function(e){return Zl(nd(e,r),n)}));return 2097152&t.flags||n?Al(i):xl(i)}}function td(e,t){return!!(131072&xl([As(e,t),We]).flags)}function rd(e,t){var r=zd([Js(e)],[t]),n=Gd(e.mapper,r);return s_(Us(e),n)}function nd(e,t,r,n,i,a,o){return void 0===o&&(o=0),ad(e,t,r,n,o,i,a)||(n?ke:Ne)}function id(e,t){return Pg(e,(function(e){if(384&e.flags){var r=ds(e);if(oy(r)){var n=+r;return n>=0&&n=5e6)return null===e.tracing||void 0===e.tracing||e.tracing.instant("checkTypes","instantiateType_DepthLimit",{typeId:t.id,instantiationDepth:T,instantiationCount:b}),pn(d,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),ke;x++,b++,T++;var a=function(t,r,n,i){var a=t.flags;if(262144&a)return Ud(t,r);if(524288&a){var o=t.objectFlags;if(52&o){if(4&o&&!t.node){var s=t.resolvedTypeArguments,c=Jd(s,r);return c!==s?cl(t.target,c):t}return 1024&o?function(t,r){var n=s_(t.mappedType,r);if(!(32&e.getObjectFlags(n)))return t;var i=s_(t.constraintType,r);if(!(4194304&i.flags))return t;var a=Tf(s_(t.source,r),n,i);if(a)return a;return t}(t,r):function(t,r,n,i){var a=4&t.objectFlags?t.node:t.symbol.declarations[0],o=Fn(a),s=4&t.objectFlags?o.resolvedType:64&t.objectFlags?t.target:t,c=o.outerTypeParameters;if(!c){var u=Ao(a,!0);if(oh(a)){var l=Ic(a);u=e.addRange(u,l)}c=u||e.emptyArray;var d=4&t.objectFlags?[a]:t.symbol.declarations;c=(4&s.objectFlags||8192&s.symbol.flags||2048&s.symbol.flags)&&!s.aliasTypeArguments?e.filter(c,(function(t){return e.some(d,(function(e){return e_(t,e)}))})):c,o.outerTypeParameters=c}if(c.length){var _=Gd(t.mapper,r),p=e.map(c,(function(e){return Ud(e,_)})),f=n||t.aliasSymbol,g=n?i:Jd(t.aliasTypeArguments,r),m=mu(p)+yu(f,g);s.instantiations||(s.instantiations=new e.Map,s.instantiations.set(mu(c)+yu(s.aliasSymbol,s.aliasTypeArguments),s));var y=s.instantiations.get(m);if(!y){var v=zd(c,p);y=4&s.objectFlags?xu(t.target,t.node,v,f,g):32&s.objectFlags?r_(s,v,f,g):a_(s,v,f,g),s.instantiations.set(m,y)}return y}return t}(t,r,n,i)}return t}if(3145728&a){var u=1048576&t.flags?t.origin:void 0,l=u&&3145728&u.flags?u.types:t.types,d=Jd(l,r);if(d===l&&n===t.aliasSymbol)return t;var _=n||t.aliasSymbol,p=n?i:Jd(t.aliasTypeArguments,r);return 2097152&a||u&&2097152&u.flags?Al(d,_,p):xl(d,1,_,p)}if(4194304&a)return Bl(s_(t.type,r));if(134217728&a)return Jl(t.texts,Jd(t.types,r));if(268435456&a)return zl(t.symbol,s_(t.type,r));if(8388608&a){_=n||t.aliasSymbol,p=n?i:Jd(t.aliasTypeArguments,r);return nd(s_(t.objectType,r),s_(t.indexType,r),t.noUncheckedIndexedAccessCandidate,void 0,_,p)}if(16777216&a)return o_(t,Gd(t.mapper,r),n,i);if(33554432&a){var f=s_(t.baseType,r);if(8650752&f.flags)return Nu(f,s_(t.substitute,r));var g=s_(t.substitute,r);return 3&g.flags||b_(l_(f),l_(g))?f:g}return t}(t,r,n,i);return T--,a}function u_(e){return 262143&e.flags?e:e.permissiveInstantiation||(e.permissiveInstantiation=s_(e,nt))}function l_(e){return 262143&e.flags?e:(e.restrictiveInstantiation||(e.restrictiveInstantiation=s_(e,rt),e.restrictiveInstantiation.restrictiveInstantiation=e.restrictiveInstantiation),e.restrictiveInstantiation)}function d_(e,t){return e&&du(s_(e.type,t),e.isReadonly,e.declaration)}function __(t){switch(e.Debug.assert(166!==t.kind||e.isObjectLiteralMethod(t)),t.kind){case 209:case 210:case 166:case 252:return p_(t);case 201:return e.some(t.properties,__);case 200:return e.some(t.elements,__);case 218:return __(t.whenTrue)||__(t.whenFalse);case 217:return(56===t.operatorToken.kind||60===t.operatorToken.kind)&&(__(t.left)||__(t.right));case 289:return __(t.initializer);case 208:return __(t.expression);case 282:return e.some(t.properties,__)||e.isJsxOpeningElement(t.parent)&&e.some(t.parent.parent.children,__);case 281:var r=t.initializer;return!!r&&__(r);case 284:var n=t.expression;return!!n&&__(n)}return!1}function p_(t){return(!e.isFunctionDeclaration(t)||e.isInJSFile(t)&&!!za(t))&&(f_(t)||function(t){return!t.typeParameters&&!e.getEffectiveReturnTypeNode(t)&&!!t.body&&231!==t.body.kind&&__(t.body)}(t))}function f_(t){if(!t.typeParameters){if(e.some(t.parameters,(function(t){return!e.getEffectiveTypeAnnotationNode(t)})))return!0;if(210!==t.kind){var r=e.firstOrUndefined(t.parameters);if(!r||!e.parameterIsThisKeyword(r))return!0}}return!1}function g_(t){return(e.isInJSFile(t)&&e.isFunctionDeclaration(t)||Qm(t)||e.isObjectLiteralMethod(t))&&p_(t)}function m_(t){if(524288&t.flags){var r=$s(t);if(r.constructSignatures.length||r.callSignatures.length){var n=Vi(16,t.symbol);return n.members=r.members,n.properties=r.properties,n.callSignatures=e.emptyArray,n.constructSignatures=e.emptyArray,n}}else if(2097152&t.flags)return Al(e.map(t.types,m_));return t}function y_(e,t){return q_(e,t,cn)}function v_(e,t){return q_(e,t,cn)?-1:0}function h_(e,t){return q_(e,t,on)?-1:0}function D_(e,t){return q_(e,t,nn)?-1:0}function x_(e,t){return q_(e,t,nn)}function b_(e,t){return q_(e,t,on)}function S_(t,r){return 1048576&t.flags?e.every(t.types,(function(e){return S_(e,r)})):1048576&r.flags?e.some(r.types,(function(e){return S_(t,e)})):58982400&t.flags?S_(cc(t)||Ne,r):r===ht?!!(67633152&t.flags):r===Dt?!!(524288&t.flags)&&lg(t):Co(t,To(r))||mp(r)&&!yp(r)&&S_(t,Et)}function E_(e,t){return q_(e,t,sn)}function T_(e,t){return E_(e,t)||E_(t,e)}function C_(e,t,r,n,i,a){return G_(e,t,on,r,n,i,a)}function k_(e,t,r,n,i,a){return A_(e,t,on,r,n,i,a,void 0)}function A_(e,t,r,n,i,a,o,s){return!!q_(e,t,r)||(!n||!N_(i,e,t,r,a,o,s))&&G_(e,t,r,n,a,o,s)}function F_(t){return!!(16777216&t.flags||2097152&t.flags&&e.some(t.types,F_))}function N_(t,n,a,o,s,c,u){if(!t||F_(a))return!1;if(!G_(n,a,o,void 0)&&function(t,r,n,i,a,o,s){for(var c=kc(r,0),u=kc(r,1),l=0,d=[u,c];l1,v=wg(g,Ep),h=wg(g,(function(e){return!Ep(e)}));if(y){if(v!==We){var D=ol(gy(d,0));l=I_(function(t,r){var n,a,o,s,c;return i(this,(function(i){switch(i.label){case 0:if(!e.length(t.children))return[2];n=0,a=0,i.label=1;case 1:return au:Fh(t)>u))return 0;t.typeParameters&&t.typeParameters!==r.typeParameters&&(t=Av(t,r=iu(r),void 0,s));var l=Ah(t),d=wh(t),_=wh(r);if((d||_)&&s_(d||_,c),d&&_&&l!==u)return 0;var p=r.declaration?r.declaration.kind:0,f=!(3&n)&&H&&166!==p&&165!==p&&167!==p,g=-1,m=Hc(t);if(m&&m!==qe){var y=Hc(r);if(y){if(!(S=!f&&s(m,y,!1)||s(y,m,i)))return i&&a(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;g&=S}}for(var v=d||_?Math.min(l,u):Math.max(l,u),h=d||_?v-1:-1,D=0;D=Fh(t)&&D0||DS(c));if(f&&!function(e,t,r){for(var n=0,i=tc(e);n0&&j(Xc(v[0]),u,!1)||h.length>0&&j(Xc(h[0]),u,!1)?L(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,g,y):L(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,g,y)}return 0}J(c,u);var D=0,b=I();if((3145728&c.flags||3145728&u.flags)&&(D=Lg(c)*Lg(u)>=4?q(c,u,n,8|s):H(c,u,n,8|s)),D||1048576&c.flags||!(469499904&c.flags||469499904&u.flags)||(D=q(c,u,n,s))&&w(b),!D&&2359296&c.flags){var E=function(t,r){for(var n,i=!1,a=0,o=t;a0;if(p&&x--,524288&i.flags&&524288&s.flags){var f=l;B(i,s,n),l!==f&&(p=!!l)}if(524288&i.flags&&131068&s.flags)!function(t,r){var n=ma(t.symbol)?pa(t,t.symbol.valueDeclaration):pa(t),i=ma(r.symbol)?pa(r,r.symbol.valueDeclaration):pa(r);(Tt===t&&Le===r||Ct===t&&Re===r||kt===t&&Ue===r||Wu(!1)===t&&Ve===r)&&L(e.Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible,i,n)}(i,s);else if(i.symbol&&524288&i.flags&&ht===i)L(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(u&&2097152&s.flags){var g=s.types,y=vy(N.IntrinsicAttributes,a),v=vy(N.IntrinsicClassAttributes,a);if(y!==ke&&v!==ke&&(e.contains(g,y)||e.contains(g,v)))return c}else l=Ec(l,r);if(!o&&p)return m=[i,s],c;R(o,i,s)}}}function J(t,r){if(e.tracing&&3145728&t.flags&&3145728&r.flags){var n=t,i=r;if(n.objectFlags&i.objectFlags&65536)return;var o=n.types.length,s=i.types.length;o*s>1e6&&e.tracing.instant("checkTypes","traceUnionsOrIntersectionsTooLarge_DepthLimit",{sourceId:t.id,sourceSize:o,targetId:r.id,targetSize:s,pos:null==a?void 0:a.pos,end:null==a?void 0:a.end})}}function K(e,t){for(var r=-1,n=0,i=e.types;n=o.types.length&&a.length%o.types.length==0){var u=j(c,o.types[s%o.types.length],!1,void 0,n);if(u){i&=u;continue}}var l=j(c,t,r,void 0,n);if(!l)return 0;i&=l}return i}function q(t,r,n,a){if(D)return 0;var o=op(t,r,a|(S?16:0),i),s=i.get(o);if(void 0!==s&&(!(n&&2&s)||4&s)){if(cr){var c=24&s;8&c&&s_(t,qd(G)),16&c&&s_(t,qd(Y))}return 1&s?-1:0}if(p){for(var u=o.split(",").map((function(t){return t.replace(/-\d+/g,(function(t,r){return"="+e.length(o.slice(0,r).match(/[-=]/g)||void 0)}))})).join(","),l=0;l25)return null===e.tracing||void 0===e.tracing||e.tracing.instant("checkTypes","typeRelatedToDiscriminatedType_DepthLimit",{sourceId:t.id,targetId:r.id,numCombinations:a}),0}for(var c=new Array(n.length),u=new e.Set,l=0;l5?L(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,pa(r),pa(n),e.map(m.slice(0,4),(function(e){return da(e)})).join(", "),m.length-4):L(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,pa(r),pa(n),e.map(m,(function(e){return da(e)})).join(", ")),s&&l&&x++)}function ee(t,r,n,a,o){if(i===cn)return function(e,t,r){if(!(524288&e.flags&&524288&t.flags))return 0;var n=$(Qs(e),r),i=$(Qs(t),r);if(n.length!==i.length)return 0;for(var a=-1,o=0,s=n;o=u-y)?t.target.elementFlags[D]:4,b=r.target.elementFlags[h];if(8&b&&!(8&x))return n&&L(e.Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target,h),0;if(8&x&&!(12&b))return n&&L(e.Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,D,h),0;if(1&b&&!(1&x))return n&&L(e.Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target,h),0;if(!(v&&((12&x||12&b)&&(v=!1),v&&(null==a?void 0:a.has(""+h))))){var S=Op(t)?h=u-y?f[D]:Bp(t,m,y)||We:f[0],E=g[h];if(!(B=j(S,8&x&&4&b?Zu(E):E,n,void 0,o)))return n&&(h=u-y||c-m-y==1?O(e.Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,D,h):O(e.Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,m,c-y-1,h)),0;s&=B}}return s}if(12&r.target.combinedFlags)return 0}var T=!(i!==nn&&i!==an||jf(t)||bp(t)||Op(t)),C=Ff(t,r,T,!1);if(C)return n&&Z(t,r,C,T),0;if(jf(r))for(var k=0,A=$(tc(t),a);k0||kc(t,n=1).length>0)return e.find(r.types,(function(e){return kc(e,n).length>0}))}(t,r)||function(t,r){for(var n,i=0,a=0,o=r.types;a=i&&(n=s,i=u)}else Cp(c)&&1>=i&&(n=s,i=1)}return n}(t,r)}function $_(t,r,n,i,a){for(var o=t.types.map((function(e){})),s=0,c=r;s0&&e.every(r.properties,(function(e){return!!(16777216&e.flags)}))}return!!(2097152&t.flags)&&e.every(t.types,Q_)}function Z_(t,r,n){var i=hu(t,e.map(t.typeParameters,(function(e){return e===r?n:e})));return i.objectFlags|=4096,i}function ep(e){var t=An(e);return tp(t.typeParameters,t,(function(r,n,i){var a=Tu(e,Jd(t.typeParameters,Vd(n,i)));return a.aliasTypeArgumentsContainsMarker=!0,a}))}function tp(t,r,n){var i,a,o;void 0===t&&(t=e.emptyArray);var s=r.variances;if(!s){null===e.tracing||void 0===e.tracing||e.tracing.push("checkTypes","getVariancesWorker",{arity:t.length,id:null!==(o=null!==(i=r.id)&&void 0!==i?i:null===(a=r.declaredType)||void 0===a?void 0:a.id)&&void 0!==o?o:-1}),r.variances=e.emptyArray,s=[];for(var c=function(e){var t=!1,i=!1,a=cr;cr=function(e){return e?i=!0:t=!0};var o=n(r,e,pt),c=n(r,e,ft),u=(b_(c,o)?1:0)|(b_(o,c)?2:0);3===u&&b_(n(r,e,ur),o)&&(u=4),cr=a,(t||i)&&(t&&(u|=8),i&&(u|=16)),s.push(u)},u=0,l=t;u":n+="-"+o.id}return n}function op(e,t,r,n){if(n===cn&&e.id>t.id){var i=e;e=t,t=i}var a=r?":"+r:"";if(ip(e)&&ip(t)){var o=[];return ap(e,o)+","+ap(t,o)+a}return e.id+","+t.id+a}function sp(t,r){if(!(6&e.getCheckFlags(t)))return r(t);for(var n=0,i=t.containingType.types;n=5)for(var n=dp(e),i=0,a=0;a=5)return!0;return!1}function dp(t){if(524288&t.flags&&!Jf(t)){if(e.getObjectFlags(t)&&t.node)return t.node;if(t.symbol&&!(16&e.getObjectFlags(t)&&32&t.symbol.flags))return t.symbol;if(Op(t))return t.target}if(262144&t.flags)return t.symbol;if(8388608&t.flags){do{t=t.objectType}while(8388608&t.flags);return t}return 16777216&t.flags?t.root:t}function _p(e,t){return 0!==pp(e,t,v_)}function pp(t,r,n){if(t===r)return-1;var i=24&e.getDeclarationModifierFlagsFromSymbol(t);if(i!==(24&e.getDeclarationModifierFlagsFromSymbol(r)))return 0;if(i){if(Pb(t)!==Pb(r))return 0}else if((16777216&t.flags)!=(16777216&r.flags))return 0;return Qh(t)!==Qh(r)?0:n(So(t),So(r))}function fp(t,r,n,i,a,o){if(t===r)return-1;if(!function(e,t,r){var n=Ah(e),i=Ah(t),a=Fh(e),o=Fh(t),s=Nh(e),c=Nh(t);return n===i&&a===o&&s===c||!!(r&&a<=o)}(t,r,n))return 0;if(e.length(t.typeParameters)!==e.length(r.typeParameters))return 0;if(r.typeParameters){for(var s=zd(t.typeParameters,r.typeParameters),c=0;ce.length(r.typeParameters)&&(i=ms(i,e.last(bu(t)))),t.objectFlags|=67108864,t.cachedEquivalentBaseType=i}}}function bp(e){var t=hp(e);return W?t===Ye:t===we}function Sp(e){return Op(e)||!!Tc(e,"0")}function Ep(e){return Dp(e)||Sp(e)}function Tp(e){return!(240512&e.flags)}function Cp(e){return!!(109440&e.flags)}function kp(t){return 2097152&t.flags?e.some(t.types,Cp):!!(109440&t.flags)}function Ap(t){return!!(16&t.flags)||(1048576&t.flags?!!(1024&t.flags)||e.every(t.types,Cp):Cp(t))}function Fp(e){return 1024&e.flags?Wo(e):128&e.flags?Le:256&e.flags?Re:2048&e.flags?Be:512&e.flags?Ue:1048576&e.flags?Og(e,Fp):e}function Np(e){return 1024&e.flags&&Pd(e)?Wo(e):128&e.flags&&Pd(e)?Le:256&e.flags&&Pd(e)?Re:2048&e.flags&&Pd(e)?Be:512&e.flags&&Pd(e)?Ue:1048576&e.flags?Og(e,Np):e}function Pp(e){return 8192&e.flags?Ve:1048576&e.flags?Og(e,Pp):e}function wp(e,t){return DD(e,t)||(e=Pp(Np(e))),e}function Ip(e,t,r,n){e&&Cp(e)&&(e=wp(e,t?vb(r,t,n):void 0));return e}function Op(t){return!!(4&e.getObjectFlags(t)&&8&t.target.objectFlags)}function Mp(e){return Op(e)&&!!(8&e.target.combinedFlags)}function Lp(e){return Mp(e)&&1===e.target.elementFlags.length}function Rp(e){return Bp(e,e.target.fixedLength)}function Bp(e,t,r,n){void 0===r&&(r=0),void 0===n&&(n=!1);var i=Su(e)-r;if(t-1&&(On(o,o.name.escapedText,788968,void 0,o.name.escapedText,!0)||o.name.originalKeywordKind&&e.isTypeNodeKind(o.name.originalKeywordKind))){var s="arg"+o.parent.parameters.indexOf(o);return void gn(X,t,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,s,e.declarationNameToString(o.name))}a=t.dotDotDotToken?X?e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type:e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:X?e.Diagnostics.Parameter_0_implicitly_has_an_1_type:e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 199:if(a=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!X)return;break;case 309:return void pn(t,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,i);case 252:case 166:case 165:case 168:case 169:case 209:case 210:if(X&&!t.name)return void pn(t,3===n?e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,i);a=X?3===n?e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 191:return void(X&&pn(t,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type));default:a=X?e.Diagnostics.Variable_0_implicitly_has_an_1_type:e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}gn(X,t,a,e.declarationNameToString(e.getNameOfDeclaration(t)),i)}}function _f(t,r,n){!(a&&X&&131072&e.getObjectFlags(r))||n&&Zm(t)||lf(r)||df(t,r,n)}function pf(e,t,r){var n=Ah(e),i=Ah(t),a=Ph(e),o=Ph(t),s=o?i-1:i,c=a?s:Math.min(n,s),u=Hc(e);if(u){var l=Hc(t);l&&r(u,l)}for(var d=0;d0){for(var y=p,v=f;!((v=h(y).indexOf(m,v))>=0);){if(++y===e.length)return;v=0}D(y,v),f+=m.length}else if(f0)for(var b=0,S=r;be.target.minLength||!t.target.hasRestElement&&(e.target.hasRestElement||t.target.fixedLength1){var r=e.filter(t,Jf);if(r.length){var n=xl(r,2);return e.concatenate(e.filter(t,(function(e){return!Jf(e)})),[n])}}return t}(t.candidates),i=function(e){var t=nc(e);return!!t&&nD(16777216&t.flags?ac(t):t,406978556)}(t.typeParameter),a=!i&&t.topLevel&&(t.isFixed||!Ef(Xc(r),t.typeParameter)),o=i?e.sameMap(n,Nd):a?e.sameMap(n,Np):n;return cf(416&t.priority?xl(o,2):function(t){if(!W)return gp(t);var r=e.filter(t,(function(e){return!(98304&e.flags)}));return r.length?qp(gp(r),98304&Jp(t)):xl(t,2)}(o))}function Uf(t,r){var n,i,a=t.inferences[r];if(!a.inferredType){var o=void 0,s=t.signature;if(s){var c=a.candidates?zf(a,s):void 0;if(a.contraCandidates){var u=Kf(a);o=!c||131072&c.flags||!x_(c,u)?u:c}else if(c)o=c;else if(1&t.flags)o=He;else{var l=pc(a.typeParameter);l&&(o=s_(l,(n=function(t,r){return qd((function(n){return e.findIndex(t.inferences,(function(e){return e.typeParameter===n}))>=r?Ne:n}))}(t,r),i=t.nonFixingMapper,n?Wd(4,n,i):i)))}}else o=Nf(a);a.inferredType=o||Vf(!!(2&t.flags));var d=nc(a.typeParameter);if(d){var _=s_(d,t.nonFixingMapper);o&&t.compareTypes(o,ms(_,o))||(a.inferredType=o=_)}}return a.inferredType}function Vf(e){return e?Ee:Ne}function qf(e){for(var t=[],r=0;r=10&&2*i>=t.length?n:void 0}(r,n);t.keyPropertyName=i?n:"",t.constituentMap=i}return t.keyPropertyName.length?t.keyPropertyName:void 0}}function ig(e,t){var r,n=null===(r=e.constituentMap)||void 0===r?void 0:r.get(fl(Nd(t)));return n!==Ne?n:void 0}function ag(e,t){var r=ng(e),n=r&&wa(t,r);return n&&ig(e,n)}function og(e,t){return Xf(e,t)||Zf(e,t)}function sg(e,t){if(e.arguments)for(var r=0,n=e.arguments;r=0&&r.parameterIndex=n&&c-1){var l=a.filter((function(e){return void 0!==e})),d=c=2||0==(34&r.flags)||!r.valueDeclaration||e.isSourceFile(r.valueDeclaration)||288===r.valueDeclaration.parent.kind)return;var n=e.getEnclosingBlockScopeContainer(r.valueDeclaration),i=function(t,r){return!!e.findAncestor(t,(function(t){return t===r?"quit":e.isFunctionLike(t)||t.parent&&e.isPropertyDeclaration(t.parent)&&!e.hasStaticModifier(t.parent)&&t.parent.initializer===t}))}(t,n),a=pm(n);if(a){if(i){var o=!0;if(e.isForStatement(n))if((l=e.getAncestor(r.valueDeclaration,251))&&l.parent===n){var s=function(t,r){return e.findAncestor(t,(function(e){return e===r?"quit":e===r.initializer||e===r.condition||e===r.incrementor||e===r.statement}))}(t.parent,n);if(s){var c=Fn(s);c.flags|=131072;var u=c.capturedBlockScopeBindings||(c.capturedBlockScopeBindings=[]);e.pushIfUnique(u,r),s===n.initializer&&(o=!1)}}o&&(Fn(a).flags|=65536)}var l;if(e.isForStatement(n))(l=e.getAncestor(r.valueDeclaration,251))&&l.parent===n&&function(t,r){var n=t;for(;208===n.parent.kind;)n=n.parent;var i=!1;if(e.isAssignmentTarget(n))i=!0;else if(215===n.parent.kind||216===n.parent.kind){var a=n.parent;i=45===a.operator||46===a.operator}if(!i)return!1;return!!e.findAncestor(n,(function(e){return e===r?"quit":e===r.statement}))}(t,n)&&(Fn(r.valueDeclaration).flags|=4194304);Fn(r.valueDeclaration).flags|=524288}i&&(Fn(r.valueDeclaration).flags|=262144)}(t,n);var c=So(a),u=e.getAssignmentTargetKind(t);if(u){if(!(3&a.flags||e.isInJSFile(t)&&512&a.flags))return pn(t,384&a.flags?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_enum:32&a.flags?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_class:1536&a.flags?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace:16&a.flags?e.Diagnostics.Cannot_assign_to_0_because_it_is_a_function:2097152&a.flags?e.Diagnostics.Cannot_assign_to_0_because_it_is_an_import:e.Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable,da(n)),ke;if(Qh(a))return 3&a.flags?pn(t,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant,da(n)):pn(t,e.Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property,da(n)),ke}var l=2097152&a.flags;if(3&a.flags){if(1===u)return c}else{if(!l)return c;s=qn(n)}if(!s)return c;c=um(c,t,r);for(var d=161===e.getRootDeclaration(s).kind,_=nm(s),p=nm(t),f=p!==_,g=t.parent&&t.parent.parent&&e.isSpreadAssignment(t.parent)&&vg(t.parent.parent),m=134217728&n.flags;p!==_&&(209===p.kind||210===p.kind||e.isObjectLiteralOrClassExpressionMethod(p))&&(om(a)||d&&!im(a));)p=nm(p);var y=d||l||f||g||m||e.isBindingElement(s)||c!==Te&&c!==Pt&&(!W||0!=(16387&c.flags)||Gf(t)||271===t.parent.kind)||226===t.parent.kind||250===s.kind&&s.exclamationToken||8388608&s.flags,v=rm(t,c,y?d?function(e,t){if(ka(t.symbol,2)){var r=W&&161===t.kind&&t.initializer&&32768&Kp(e)&&!(32768&Kp(OD(t.initializer)));return Na(),r?_g(e,524288):e}return xo(t.symbol),e}(c,s):c:c===Te||c===Pt?Pe:Wp(c),p,!y);if(Hg(t)||c!==Te&&c!==Pt){if(!y&&!(32768&Kp(c))&&32768&Kp(v))return pn(t,e.Diagnostics.Variable_0_is_used_before_being_assigned,da(n)),c}else if(v===Te||v===Pt)return X&&(pn(e.getNameOfDeclaration(s),e.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined,da(n),pa(v)),pn(t,e.Diagnostics.Variable_0_implicitly_has_an_1_type,da(n),pa(v))),Lx(v);return u?Fp(v):v}function pm(t){return e.findAncestor(t,(function(t){return!t||e.nodeStartsNewLexicalEnvironment(t)?"quit":e.isIterationStatement(t,!1)}))}function fm(e,t){(Fn(e).flags|=2,164===t.kind||167===t.kind)?Fn(t.parent).flags|=4:Fn(t).flags|=4}function gm(t){return e.isSuperCall(t)?t:e.isFunctionLike(t)?void 0:e.forEachChild(t,gm)}function mm(e){return Lo(Xo(Pi(e)))===Me}function ym(t,r,n){var i=r.parent;e.getClassExtendsHeritageElement(i)&&!mm(i)&&t.flowNode&&!tm(t.flowNode,!1)&&pn(t,n)}function vm(t){var r=e.getThisContainer(t,!0),n=!1;switch(167===r.kind&&ym(t,r,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),210===r.kind&&(r=e.getThisContainer(r,!1),n=!0),r.kind){case 257:pn(t,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 256:pn(t,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 167:Dm(t,r)&&pn(t,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 164:case 163:!e.hasSyntacticModifier(r,32)||99===A.target&&V||pn(t,e.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer);break;case 159:pn(t,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name)}n&&z<2&&fm(t,r);var i=hm(t,!0,r);if($){var a=So(ae);if(i===a&&n)pn(t,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!i){var o=pn(t,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(r)){var s=hm(r);s&&s!==a&&e.addRelatedInfo(o,e.createDiagnosticForNode(r,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return i||Ee}function hm(t,r,n){void 0===r&&(r=!0),void 0===n&&(n=e.getThisContainer(t,!1));var i=e.isInJSFile(t);if(e.isFunctionLike(n)&&(!km(t)||e.getThisParameter(n))){var a=Hc(zc(n))||i&&function(t){var r=e.getJSDocType(t);if(r&&309===r.kind){var n=r;if(n.parameters.length>0&&n.parameters[0].name&&"this"===n.parameters[0].name.escapedText)return Rd(n.parameters[0].type)}var i=e.getJSDocThisTag(t);if(i&&i.typeExpression)return Rd(i.typeExpression)}(n);if(!a){var o=function(t){if(209===t.kind&&e.isBinaryExpression(t.parent)&&3===e.getAssignmentDeclarationKind(t.parent))return t.parent.left.expression.expression;if(166===t.kind&&201===t.parent.kind&&e.isBinaryExpression(t.parent.parent)&&6===e.getAssignmentDeclarationKind(t.parent.parent))return t.parent.parent.left.expression;if(209===t.kind&&289===t.parent.kind&&201===t.parent.parent.kind&&e.isBinaryExpression(t.parent.parent.parent)&&6===e.getAssignmentDeclarationKind(t.parent.parent.parent))return t.parent.parent.parent.left.expression;if(209===t.kind&&e.isPropertyAssignment(t.parent)&&e.isIdentifier(t.parent.name)&&("value"===t.parent.name.escapedText||"get"===t.parent.name.escapedText||"set"===t.parent.name.escapedText)&&e.isObjectLiteralExpression(t.parent.parent)&&e.isCallExpression(t.parent.parent.parent)&&t.parent.parent.parent.arguments[2]===t.parent.parent&&9===e.getAssignmentDeclarationKind(t.parent.parent.parent))return t.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(t)&&e.isIdentifier(t.name)&&("value"===t.name.escapedText||"get"===t.name.escapedText||"set"===t.name.escapedText)&&e.isObjectLiteralExpression(t.parent)&&e.isCallExpression(t.parent.parent)&&t.parent.parent.arguments[2]===t.parent&&9===e.getAssignmentDeclarationKind(t.parent.parent))return t.parent.parent.arguments[0].expression}(n);if(i&&o){var s=OD(o).symbol;s&&s.members&&16&s.flags&&(a=Xo(s).thisType)}else oh(n)&&(a=Xo(Ni(n.symbol)).thisType);a||(a=Em(n))}if(a)return rm(t,a)}if(e.isClassLike(n.parent)){var c=Pi(n.parent);return rm(t,e.hasSyntacticModifier(n,32)?So(c):Xo(c).thisType)}if(e.isSourceFile(n)){if(n.commonJsModuleIndicator){var u=Pi(n);return u&&So(u)}if(n.externalModuleIndicator)return Pe;if(r)return So(ae)}}function Dm(t,r){return!!e.findAncestor(t,(function(t){return e.isFunctionLikeDeclaration(t)?"quit":161===t.kind&&t.parent===r}))}function xm(t){var r=204===t.parent.kind&&t.parent.expression===t,n=e.getSuperContainer(t,!0),i=n,a=!1;if(!r)for(;i&&210===i.kind;)i=e.getSuperContainer(i,!0),a=z<2;var o=0;if(!function(t){if(!t)return!1;if(r)return 167===t.kind;if(e.isClassLike(t.parent)||201===t.parent.kind)return e.hasSyntacticModifier(t,32)?166===t.kind||165===t.kind||168===t.kind||169===t.kind:166===t.kind||165===t.kind||168===t.kind||169===t.kind||164===t.kind||163===t.kind||167===t.kind;return!1}(i)){var s=e.findAncestor(t,(function(e){return e===i?"quit":159===e.kind}));return s&&159===s.kind?pn(t,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):r?pn(t,e.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):i&&i.parent&&(e.isClassLike(i.parent)||201===i.parent.kind)?pn(t,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class):pn(t,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions),ke}if(r||167!==n.kind||ym(t,i,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),o=e.hasSyntacticModifier(i,32)||r?512:256,Fn(t).flags|=o,166===i.kind&&e.hasSyntacticModifier(i,256)&&(e.isSuperProperty(t.parent)&&e.isAssignmentTarget(t.parent)?Fn(i).flags|=4096:Fn(i).flags|=2048),a&&fm(t.parent,i),201===i.parent.kind)return z<2?(pn(t,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),ke):Ee;var c=i.parent;if(!e.getClassExtendsHeritageElement(c))return pn(t,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),ke;var u=Xo(Pi(c)),l=u&&Bo(u)[0];return l?167===i.kind&&Dm(t,i)?(pn(t,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),ke):512===o?Lo(u):ms(l,u.thisType):ke}function bm(t){return 4&e.getObjectFlags(t)&&t.target===Ft?bu(t)[0]:void 0}function Sm(t){return Og(t,(function(t){return 2097152&t.flags?e.forEach(t.types,bm):bm(t)}))}function Em(t){if(210!==t.kind){if(g_(t)){var r=ey(t);if(r){var n=r.thisParameter;if(n)return So(n)}}var i=e.isInJSFile(t);if($||i){var a=function(e){return 166!==e.kind&&168!==e.kind&&169!==e.kind||201!==e.parent.kind?209===e.kind&&289===e.parent.kind?e.parent.parent:void 0:e.parent}(t);if(a){for(var o=Um(a),s=a,c=o;c;){var u=Sm(c);if(u)return s_(u,xf(Hm(a)));if(289!==s.parent.kind)break;c=Um(s=s.parent.parent)}return cf(o?Hp(o):mD(a))}var l=e.walkUpParenthesizedExpressions(t.parent);if(217===l.kind&&62===l.operatorToken.kind){var d=l.left;if(e.isAccessExpression(d)){var _=d.expression;if(i&&e.isIdentifier(_)){var p=e.getSourceFileOfNode(l);if(p.commonJsModuleIndicator&&Hf(_)===p.symbol)return}return cf(mD(_))}}}}}function Tm(t){var r=t.parent;if(g_(r)){var n=e.getImmediatelyInvokedFunctionExpression(r);if(n&&n.arguments){var i=Bv(n),a=r.parameters.indexOf(t);if(t.dotDotDotToken)return wv(i,a,i.length,Ee,void 0,0);var o=Fn(n),s=o.resolvedSignature;o.resolvedSignature=dr;var c=a=0?void 0:So(o);if(Op(t)){var s=Rp(t);if(s&&oy(r)&&+r>=0)return s}return oy(r)&&Lm(t,1)||Lm(t,0)}var c}),!0)}function Lm(e,t){return Og(e,(function(e){return Fc(e,t)}),!0)}function Rm(t,r){var n=t.parent,i=e.isPropertyAssignment(t)&&Cm(t);if(i)return i;var a=Um(n,r);if(a){if(ls(t)){var o=Mm(a,Pi(t).escapedName);if(o)return o}return iy(t.name)&&Lm(a,1)||Lm(a,0)}}function Bm(e,t){return e&&(Mm(e,""+t)||Og(e,(function(e){return Xx(1,e,Pe,void 0,!1)}),!0))}function jm(t){var r=t.parent;return e.isJsxAttributeLike(r)?Wm(t):e.isJsxElement(r)?function(t,r){var n=Um(t.openingElement.tagName),i=Sy(xy(t));if(n&&!Ia(n)&&i&&""!==i){var a=e.getSemanticJsxChildren(t.children),o=a.indexOf(r),s=Mm(n,i);return s&&(1===a.length?s:Og(s,(function(e){return Dp(e)?nd(e,wd(o)):e}),!0))}}(r,t):void 0}function Jm(t){if(e.isJsxAttribute(t)){var r=Um(t.parent);if(!r||Ia(r))return;return Mm(r,t.name.escapedText)}return Wm(t.parent)}function Km(e){switch(e.kind){case 10:case 8:case 9:case 14:case 109:case 94:case 103:case 78:case 150:return!0;case 202:case 208:return Km(e.expression);case 284:return!e.expression||Km(e.expression)}return!1}function zm(t,r){return function(t,r){var n=ng(t),i=n&&e.find(r.properties,(function(e){return e.symbol&&289===e.kind&&e.symbol.escapedName===n&&Km(e.initializer)})),a=i&&PD(i.initializer);return a&&ig(t,a)}(r,t)||$_(r,e.concatenate(e.map(e.filter(t.properties,(function(e){return!!e.symbol&&289===e.kind&&Km(e.initializer)&&tg(r,e.symbol.escapedName)})),(function(e){return[function(){return ID(e.initializer)},e.symbol.escapedName]})),e.map(e.filter(tc(r),(function(e){var n;return!!(16777216&e.flags)&&!!(null===(n=null==t?void 0:t.symbol)||void 0===n?void 0:n.members)&&!t.symbol.members.has(e.escapedName)&&tg(r,e.escapedName)})),(function(e){return[function(){return Pe},e.escapedName]}))),b_,r)}function Um(t,r){var n=Vm(e.isObjectLiteralMethod(t)?function(t,r){if(e.Debug.assert(e.isObjectLiteralMethod(t)),!(16777216&t.flags))return Rm(t,r)}(t,r):Wm(t,r),t,r);if(n&&!(r&&2&r&&8650752&n.flags)){var i=Og(n,gc,!0);return 1048576&i.flags&&e.isObjectLiteralExpression(t)?zm(t,i):1048576&i.flags&&e.isJsxAttributes(t)?function(t,r){return $_(r,e.concatenate(e.map(e.filter(t.properties,(function(e){return!!e.symbol&&281===e.kind&&tg(r,e.symbol.escapedName)&&(!e.initializer||Km(e.initializer))})),(function(e){return[e.initializer?function(){return OD(e.initializer)}:function(){return Ke},e.symbol.escapedName]})),e.map(e.filter(tc(r),(function(e){var n;return!!(16777216&e.flags)&&!!(null===(n=null==t?void 0:t.symbol)||void 0===n?void 0:n.members)&&!t.symbol.members.has(e.escapedName)&&tg(r,e.escapedName)})),(function(e){return[function(){return Pe},e.escapedName]}))),b_,r)}(t,i):i}}function Vm(t,r,n){if(t&&nD(t,465829888)){var i=Hm(r);if(i&&e.some(i.inferences,kD)){if(n&&1&n)return qm(t,i.nonFixingMapper);if(i.returnMapper)return qm(t,i.returnMapper)}}return t}function qm(t,r){return 465829888&t.flags?s_(t,r):1048576&t.flags?xl(e.map(t.types,(function(e){return qm(e,r)})),0):2097152&t.flags?Al(e.map(t.types,(function(e){return qm(e,r)}))):t}function Wm(t,r){if(16777216&t.flags);else{if(t.contextualType)return t.contextualType;var n=t.parent;switch(n.kind){case 250:case 161:case 164:case 163:case 199:return function(t,r){var n=t.parent;if(e.hasInitializer(n)&&t===n.initializer){var i=Cm(n);if(i)return i;if(!(8&r)&&e.isBindingPattern(n.name))return io(n.name,!0,!1)}}(t,r);case 210:case 243:return function(t){var r=e.getContainingFunction(t);if(r){var n=Fm(r);if(n){var i=e.getFunctionFlags(r);if(1&i){var a=rb(n,2&i?2:1,void 0);if(!a)return;n=a.returnType}if(2&i){var o=Og(n,ix);return o&&xl([o,jh(o)])}return n}}}(t);case 220:return function(t){var r=e.getContainingFunction(t);if(r){var n=e.getFunctionFlags(r),i=Fm(r);if(i)return t.asteriskToken?i:vb(0,i,0!=(2&n))}}(n);case 214:return function(e,t){var r=Wm(e,t);if(r){var n=ix(r);return n&&xl([n,jh(n)])}}(n,r);case 204:if(99===n.expression.kind)return Le;case 205:return Nm(n,t);case 207:case 225:return e.isConstTypeReference(n.type)?function(e){return Wm(e)}(n):Rd(n.type);case 217:return wm(t,r);case 289:case 290:return Rm(n,r);case 291:return Wm(n.parent,r);case 200:var i=n;return Bm(Um(i,r),e.indexOfNode(i.elements,t));case 218:return function(e,t){var r=e.parent;return e===r.whenTrue||e===r.whenFalse?Wm(r,t):void 0}(t,r);case 229:return e.Debug.assert(219===n.parent.kind),function(e,t){if(206===e.parent.kind)return Nm(e.parent,t)}(n.parent,t);case 208:var a=e.isInJSFile(n)?e.getJSDocTypeTag(n):void 0;return a?Rd(a.typeExpression.type):Wm(n,r);case 226:return Wm(n,r);case 284:return jm(n);case 281:case 283:return Jm(n);case 276:case 275:return function(t,r){if(e.isJsxOpeningElement(t)&&t.parent.contextualType&&4!==r)return t.parent.contextualType;return Pm(t,0)}(n,r)}}}function Hm(t){var r=e.findAncestor(t,(function(e){return!!e.inferenceContext}));return r&&r.inferenceContext}function Gm(t,r){return 0!==Ov(r)?function(e,t){var r=Oh(e,Ne);r=Ym(t,xy(t),r);var n=vy(N.IntrinsicAttributes,t);n!==ke&&(r=As(n,r));return r}(t,r):function(t,r){var n=xy(r),i=(o=n,by(N.ElementAttributesPropertyNameContainer,o)),a=void 0===i?Oh(t,Ne):""===i?Xc(t):function(e,t){if(e.compositeSignatures){for(var r=[],n=0,i=e.compositeSignatures;n=2)return Tu(a,Kc([s,n],c,2,e.isInJSFile(t)))}if(e.length(o.typeParameters)>=2)return hu(o,Kc([s,n],o.typeParameters,2,e.isInJSFile(t)))}return n}function Xm(t){return e.getStrictOptionValue(A,"noImplicitAny")?e.reduceLeft(t,(function(t,r){return t!==r&&t?Cs(t.typeParameters,r.typeParameters)?function(t,r){var n,i=t.typeParameters||r.typeParameters;t.typeParameters&&r.typeParameters&&(n=zd(r.typeParameters,t.typeParameters));var a=t.declaration,o=function(e,t,r){for(var n=Ah(e),i=Ah(t),a=n>=i?e:t,o=a===e?t:e,s=a===e?n:i,c=Nh(e)||Nh(t),u=c&&!Nh(a),l=new Array(s+(u?1:0)),d=0;d=Fh(a)&&d>=Fh(o),y=d>=n?void 0:bh(e,d),v=d>=i?void 0:bh(t,d),h=hn(1|(m&&!g?16777216:0),(y===v?y:y?v?void 0:y:v)||"arg"+d);h.type=g?Zu(f):f,l[d]=h}if(u){var D=hn(1,"args");D.type=Zu(Th(o,s)),o===t&&(D.type=s_(D.type,r)),l[s]=D}return l}(t,r,n),s=function(e,t,r){if(!e||!t)return e||t;var n=xl([So(e),s_(So(t),r)]);return ef(e,n)}(t.thisParameter,r.thisParameter,n),c=Math.max(t.minArgumentCount,r.minArgumentCount),u=vs(a,i,s,o,void 0,void 0,c,39&(t.flags|r.flags));u.compositeKind=2097152,u.compositeSignatures=e.concatenate(2097152===t.compositeKind&&t.compositeSignatures||[t],[r]),n&&(u.mapper=2097152===t.compositeKind&&t.mapper&&t.compositeSignatures?Gd(t.mapper,n):n);return u}(t,r):void 0:t})):void 0}function $m(t,r){var n=kc(t,0),i=e.filter(n,(function(t){return!function(t,r){for(var n=0;n0&&(s=Ed(s,L(),t.symbol,g,l),o=[],a=e.createSymbolTable(),y=!1,v=!1),dy(F=Dc(OD(T.expression)))){if(i&&my(F,i,T),b=o.length,s===ke)continue;s=Ed(s,F,t.symbol,g,l)}else pn(T,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),s=ke;continue}e.Debug.assert(168===T.kind||169===T.kind),eS(T)}!k||8576&k.flags?a.set(C.escapedName,C):b_(k,Qe)&&(b_(k,Re)?v=!0:y=!0,n&&(m=!0)),o.push(C)}if(u&&291!==t.parent.kind)for(var O=0,M=tc(c);O0&&(s=Ed(s,L(),t.symbol,g,l),o=[],a=e.createSymbolTable(),y=!1,v=!1),Og(s,(function(e){return e===it?L():e}))):L();function L(){var r=y?cy(t,b,o,0):void 0,i=v?cy(t,b,o,1):void 0,s=Yi(t.symbol,a,e.emptyArray,e.emptyArray,r,i);return s.objectFlags|=262272|g,f&&(s.objectFlags|=8192),m&&(s.objectFlags|=512),n&&(s.pattern=t),s}}function dy(t){if(465829888&t.flags){var r=cc(t);if(void 0!==r)return dy(r)}return!!(126615553&t.flags||117632&Kp(t)&&dy(zp(t))||3145728&t.flags&&e.every(t.types,dy))}function _y(t){return!e.stringContains(t,"-")}function py(t){return 78===t.kind&&e.isIntrinsicJsxName(t.escapedText)}function fy(e,t){return e.initializer?bD(e.initializer,t):Ke}function gy(e,t){for(var r=[],n=0,i=e.children;n0&&(s=Ed(s,E(),i.symbol,l,!1),o=e.createSymbolTable()),Ia(m=Dc(mD(f.expression,r)))&&(c=!0),dy(m)?(s=Ed(s,m,i.symbol,l,!1),a&&my(m,a,f)):n=n?Al([n,m]):m}c||o.size>0&&(s=Ed(s,E(),i.symbol,l,!1));var v=274===t.parent.kind?t.parent:void 0;if(v&&v.openingElement===t&&v.children.length>0){var h=gy(v,r);if(!c&&d&&""!==d){u&&pn(i,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores(d));var D=Um(t.attributes),x=D&&Mm(D,d),b=hn(4,d);b.type=1===h.length?h[0]:x&&Ng(x,Sp)?ol(h):Zu(xl(h)),b.valueDeclaration=e.factory.createPropertySignature(void 0,e.unescapeLeadingUnderscores(d),void 0,void 0),e.setParent(b.valueDeclaration,i),b.valueDeclaration.symbol=b;var S=e.createSymbolTable();S.set(d,b),s=Ed(s,Yi(i.symbol,S,e.emptyArray,e.emptyArray,void 0,void 0),i.symbol,l,!1)}}return c?Ee:n&&s!==at?Al([n,s]):n||(s===at?E():s);function E(){l|=Z;var t=Yi(i.symbol,o,e.emptyArray,e.emptyArray,void 0,void 0);return t.objectFlags|=262272|l,t}}(t.parent,r)}function vy(e,t){var r=xy(t),n=r&&Ci(r),i=n&&Pn(n,e,788968);return i?Xo(i):ke}function hy(t){var r=Fn(t);if(!r.resolvedSymbol){var n=vy(N.IntrinsicElements,t);if(n!==ke){if(!e.isIdentifier(t.tagName))return e.Debug.fail();var i=Tc(n,t.tagName.escapedText);return i?(r.jsxFlags|=1,r.resolvedSymbol=i):Pc(n,0)?(r.jsxFlags|=2,r.resolvedSymbol=n.symbol):(pn(t,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.idText(t.tagName),"JSX."+N.IntrinsicElements),r.resolvedSymbol=be)}return X&&pn(t,e.Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists,e.unescapeLeadingUnderscores(N.IntrinsicElements)),r.resolvedSymbol=be}return r.resolvedSymbol}function Dy(t){var r=t&&e.getSourceFileOfNode(t),n=r&&Fn(r);if(!n||!1!==n.jsxImplicitImportContainer){if(n&&n.jsxImplicitImportContainer)return n.jsxImplicitImportContainer;var i=e.getJSXRuntimeImport(e.getJSXImplicitImportBase(A,r),A);if(i){var a=vi(t,i,e.getEmitModuleResolutionKind(A)===e.ModuleResolutionKind.Classic?e.Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:e.Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations,t),o=a&&a!==be?Ni(ai(a)):void 0;return n&&(n.jsxImplicitImportContainer=o||!1),o}}}function xy(e){var t=e&&Fn(e);if(t&&t.jsxNamespace)return t.jsxNamespace;if(!t||!1!==t.jsxNamespace){var r=Dy(e);if(!r||r===be){var n=dn(e);r=On(e,n,1920,void 0,n,!1)}if(r){var i=ai(Pn(Ci(ai(r)),N.JSX,1920));if(i&&i!==be)return t&&(t.jsxNamespace=i),i}t&&(t.jsxNamespace=!1)}var a=ai(Uu(N.JSX,1920,void 0));return a!==be?a:void 0}function by(t,r){var n=r&&Pn(r.exports,t,788968),i=n&&Xo(n),a=i&&tc(i);if(a){if(0===a.length)return"";if(1===a.length)return a[0].escapedName;a.length>1&&n.declarations&&pn(n.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(t))}}function Sy(e){return by(N.ElementChildrenAttributeNameContainer,e)}function Ey(t,r){if(4&t.flags)return[dr];if(128&t.flags){var n=Ty(t,r);return n?[rh(r,n)]:(pn(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,t.value,"JSX."+N.IntrinsicElements),e.emptyArray)}var i=gc(t),a=kc(i,1);return 0===a.length&&(a=kc(i,0)),0===a.length&&1048576&i.flags&&(a=Ts(e.map(i.types,(function(e){return Ey(e,r)})))),a}function Ty(t,r){var n=vy(N.IntrinsicElements,r);if(n!==ke){var i=t.value,a=Tc(n,e.escapeLeadingUnderscores(i));if(a)return So(a);var o=Pc(n,0);return o||void 0}return Ee}function Cy(t){e.Debug.assert(py(t.tagName));var r=Fn(t);if(!r.resolvedJsxElementAttributesType){var n=hy(t);return 1&r.jsxFlags?r.resolvedJsxElementAttributesType=So(n)||ke:2&r.jsxFlags?r.resolvedJsxElementAttributesType=Pc(vy(N.IntrinsicElements,t),0)||ke:r.resolvedJsxElementAttributesType=ke}return r.resolvedJsxElementAttributesType}function ky(e){var t=vy(N.ElementClass,e);if(t!==ke)return t}function Ay(e){return vy(N.Element,e)}function Fy(e){var t=Ay(e);if(t)return xl([t,Oe])}function Ny(t){var r,n=e.isJsxOpeningLikeElement(t);if(n&&function(t){(function(t){if(e.isPropertyAccessExpression(t)){var r=t;do{var n=a(r.name);if(n)return n;r=r.expression}while(e.isPropertyAccessExpression(r));var i=a(r);if(i)return i}function a(t){if(e.isIdentifier(t)&&-1!==e.idText(t).indexOf(":"))return NE(t,e.Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names)}})(t.tagName),uE(t,t.typeArguments);for(var r=new e.Map,n=0,i=t.attributes.properties;n=0)return d>=Fh(n)&&(Nh(n)||ds)return!1;if(o||a>=c)return!0;for(var _=a;_=i&&r.length<=n}function Tv(e){return kv(e,0,!1)}function Cv(e){return kv(e,0,!1)||kv(e,1,!1)}function kv(e,t,r){if(524288&e.flags){var n=$s(e);if(r||0===n.properties.length&&!n.stringIndexInfo&&!n.numberIndexInfo){if(0===t&&1===n.callSignatures.length&&0===n.constructSignatures.length)return n.callSignatures[0];if(1===t&&1===n.constructSignatures.length&&0===n.callSignatures.length)return n.constructSignatures[0]}}}function Av(t,r,n,i){var a=gf(t.typeParameters,t,0,i),o=Ph(r),s=n&&(o&&262144&o.flags?n.nonFixingMapper:n.mapper);return pf(s?Qd(r,s):r,t,(function(e,t){Lf(a.inferences,e,t)})),n||ff(r,t,(function(e,t){Lf(a.inferences,e,t,128)})),eu(t,qf(a),e.isInJSFile(r.declaration))}function Fv(t){if(!t)return qe;var r=OD(t);return e.isOptionalChainRoot(t.parent)?Hp(r):e.isOptionalChain(t.parent)?Xp(r):r}function Nv(t,r,n,i,a){if(e.isJsxOpeningLikeElement(t))return function(e,t,r,n){var i=Gm(t,e),a=gD(e.attributes,i,n,r);return Lf(n.inferences,a,i),qf(n)}(t,r,i,a);if(162!==t.kind){var o=Wm(t,e.every(r.typeParameters,(function(e){return!!pc(e)}))?8:0);if(o){var s=Hm(t),c=s_(o,xf(function(t,r){return void 0===r&&(r=0),t&&mf(e.map(t.inferences,Df),t.signature,t.flags|r,t.compareTypes)}(s,1))),u=Tv(c),l=u&&u.typeParameters?ou(tu(u,u.typeParameters)):c,d=Xc(r);Lf(a.inferences,l,d,128);var _=gf(r.typeParameters,r,a.flags),p=s_(o,s&&s.returnMapper);Lf(_.inferences,p,d),a.returnMapper=e.some(_.inferences,kD)?xf(function(t){var r=e.filter(t.inferences,kD);return r.length?mf(e.map(r,Df),t.signature,t.flags,t.compareTypes):void 0}(_)):void 0}}var f=wh(r),g=f?Math.min(Ah(r)-1,n.length):n.length;if(f&&262144&f.flags){var m=e.find(a.inferences,(function(e){return e.typeParameter===f}));m&&(m.impliedArity=e.findIndex(n,hv,g)<0?n.length-g:void 0)}var y=Hc(r);if(y){var v=Lv(t);Lf(a.inferences,Fv(v),y)}for(var h=0;h=n-1&&hv(d=t[n-1]))return Pv(228===d.kind?d.type:gD(d.expression,i,a,o));for(var s=[],c=[],u=[],l=r;ld&&(d=v)}}if(!l)return!0;for(var h=1/0,D=0,x=i;D0||e.isJsxOpeningElement(t)&&t.parent.children.length>0?[t.attributes]:e.emptyArray;var i=t.arguments||e.emptyArray,a=Dv(i);if(a>=0){for(var o=i.slice(0,a),s=function(t){var r=i[t],n=221===r.kind&&(kr?OD(r.expression):mD(r.expression));n&&Op(n)?e.forEach(bu(n),(function(e,t){var i,a=n.target.elementFlags[t],s=Rv(r,4&a?Zu(e):e,!!(12&a),null===(i=n.target.labeledElementDeclarations)||void 0===i?void 0:i[t]);o.push(s)})):o.push(r)},c=a;c-1)return e.createDiagnosticForNode(n[a],e.Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);for(var o,s=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,d=0,_=r;d<_.length;d++){var p=_[d],f=Fh(p),g=Ah(p);fu&&(u=f),n.length1&&(v=W(f,nn,D,b)),v||(v=W(f,on,D,b)),v)return v;if(p)if(g)if(1===g.length||g.length>3){var S,E=g[g.length-1];g.length>3&&(S=e.chainDiagnosticMessages(S,e.Diagnostics.The_last_overload_gave_the_following_error),S=e.chainDiagnosticMessages(S,e.Diagnostics.No_overload_matches_this_call));var T=Mv(r,h,E,on,0,!0,(function(){return S}));if(T)for(var C=0,k=T;C3&&e.addRelatedInfo(A,e.createDiagnosticForNode(E.declaration,e.Diagnostics.The_last_overload_is_declared_here)),q(E,A),Zr.add(A)}else e.Debug.fail("No error for last overload signature")}else{for(var F=[],N=0,P=Number.MAX_VALUE,w=0,I=0,O=function(t){var n=Mv(r,h,t,on,0,!0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,I+1,f.length,_a(t))}));n?(n.length<=P&&(P=n.length,w=I),N=Math.max(N,n.length),F.push(n)):e.Debug.fail("No error for 3 or fewer overload signatures"),I++},M=0,L=g;M1?F[w]:e.flatten(F);e.Debug.assert(R.length>0,"No errors reported for 3 or fewer overload signatures");var B=e.chainDiagnosticMessages(e.map(R,(function(e){return"string"==typeof e.messageText?e:e.messageText})),e.Diagnostics.No_overload_matches_this_call),j=t([],e.flatMap(R,(function(e){return e.relatedInformation}))),z=void 0;if(e.every(R,(function(e){return e.start===R[0].start&&e.length===R[0].length&&e.file===R[0].file}))){var U=R[0];z={file:U.file,start:U.start,length:U.length,code:B.code,category:B.category,messageText:B,relatedInformation:j}}else z=e.createDiagnosticForNodeFromMessageChain(r,B,j);q(g[0],z),Zr.add(z)}else if(m)Zr.add(zv(r,[m],h));else if(y)Iv(y,r.typeArguments,!0,c);else{var V=e.filter(n,(function(e){return Ev(e,u)}));0===V.length?Zr.add(function(t,r,n){var i=n.length;if(1===r.length){var a=Jc((d=r[0]).typeParameters),o=e.length(d.typeParameters);return e.createDiagnosticForNodeArray(e.getSourceFileOfNode(t),n,e.Diagnostics.Expected_0_type_arguments_but_got_1,ai?c=Math.min(c,_):o0),eS(t),i||1===r.length||r.some((function(e){return!!e.typeParameters}))?function(t,r,n){var i=function(e,t){for(var r=-1,n=-1,i=0;i=t)return i;o>n&&(n=o,r=i)}return r}(r,void 0===oe?n.length:oe),a=r[i],o=a.typeParameters;if(!o)return a;var s=mv(t)?t.typeArguments:void 0,c=s?ru(a,function(e,t,r){var n=e.map(fS);for(;n.length>t.length;)n.pop();for(;n.length1?e.find(c,(function(t){return e.isFunctionLikeDeclaration(t)&&e.nodeIsPresent(t.body)})):void 0;if(u){var l=zc(u),d=!l.typeParameters;W([l],on,d)&&e.addRelatedInfo(r,e.createDiagnosticForNode(u,e.Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}g=a,m=o,y=s}function W(t,n,i,a){if(void 0===a&&(a=!1),g=void 0,m=void 0,y=void 0,i){var o=t[0];if(e.some(u)||!Sv(r,h,o,a))return;return Mv(r,h,o,n,0,!1,void 0)?void(g=[o]):o}for(var s=0;s=0&&pn(t.arguments[i],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var a=By(t.expression);if(a===He)return fr;if((a=gc(a))===ke)return vv(t);if(Ia(a))return t.typeArguments&&pn(t,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),yv(t);var o=kc(a,1);if(o.length){if(!function(t,r){if(!r||!r.declaration)return!0;var n=r.declaration,i=e.getSelectedEffectiveModifierFlags(n,24);if(!i||167!==n.kind)return!0;var a=e.getClassLikeDeclarationOfSymbol(n.parent.symbol),o=Xo(n.parent.symbol);if(!lS(t,a)){var s=e.getContainingClass(t);if(s&&16&i){var c=fS(s);if(Xv(n.parent.symbol,c))return!0}return 8&i&&pn(t,e.Diagnostics.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration,pa(o)),16&i&&pn(t,e.Diagnostics.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration,pa(o)),!1}return!0}(t,o[0]))return vv(t);if(o.some((function(e){return 4&e.flags})))return pn(t,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),vv(t);var s=a.symbol&&e.getClassLikeDeclarationOfSymbol(a.symbol);return s&&e.hasSyntacticModifier(s,128)?(pn(t,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),vv(t)):Uv(t,o,r,n,0)}var c=kc(a,0);if(c.length){var u=Uv(t,c,r,n,0);return X||(u.declaration&&!oh(u.declaration)&&Xc(u)!==qe&&pn(t,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),Hc(u)===qe&&pn(t,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),u}return Qv(t.expression,a,1),vv(t)}function Xv(t,r){var n=Bo(r);if(!e.length(n))return!1;var i=n[0];if(2097152&i.flags){for(var a=Ps(i.types),o=0,s=0,c=i.types;s0;if(1048576&r.flags){for(var c=!1,u=0,l=r.types;u=n-1)return r===n-1?a:Zu(nd(a,Re));for(var o=[],s=[],c=[],u=r;u0&&(a=t.parameters.length-1+c)}}if(void 0===a){if(!n&&32&t.flags)return 0;a=t.minArgumentCount}if(i)return a;for(var u=a-1;u>=0;u--){if(131072&wg(Th(t,u),xv).flags)break;a=u}t.resolvedMinArgumentCount=a}return t.resolvedMinArgumentCount}function Nh(e){if(J(e)){var t=So(e.parameters[e.parameters.length-1]);return!Op(t)||t.target.hasRestElement}return!1}function Ph(e){if(J(e)){var t=So(e.parameters[e.parameters.length-1]);if(!Op(t))return t;if(t.target.hasRestElement)return ll(t,t.target.fixedLength)}}function wh(e){var t=Ph(e);return!t||mp(t)||Ia(t)||0!=(131072&Dc(t).flags)?void 0:t}function Ih(e){return Oh(e,We)}function Oh(e,t){return e.parameters.length>0?Th(e,0):t}function Mh(t,r){if(r.typeParameters){if(t.typeParameters)return;t.typeParameters=r.typeParameters}r.thisParameter&&((!(a=t.thisParameter)||a.valueDeclaration&&!a.valueDeclaration.type)&&(a||(t.thisParameter=ef(r.thisParameter,void 0)),Lh(t.thisParameter,So(r.thisParameter))));for(var n=t.parameters.length-(J(t)?1:0),i=0;i0&&(n=xl(l,2)):u=We;var d=function(t,r){var n=[],i=[],a=0!=(2&e.getFunctionFlags(t));return e.forEachYieldExpression(t.body,(function(t){var o,s=t.expression?OD(t.expression,r):we;if(e.pushIfUnique(n,Uh(t,s,Ee,a)),t.asteriskToken){var c=rb(s,a?19:17,t.expression);o=c&&c.nextType}else o=Wm(t);o&&e.pushIfUnique(i,o)})),{yieldTypes:n,nextTypes:i}}(t,r),_=d.yieldTypes,p=d.nextTypes;i=e.some(_)?xl(_,2):void 0,a=e.some(p)?Al(p):void 0}else{var f=Hh(t,r);if(!f)return 2&o?Jh(t,We):We;if(0===f.length)return 2&o?Jh(t,qe):qe;n=xl(f,2)}if(n||i||a){if(i&&_f(t,i,3),n&&_f(t,n,1),a&&_f(t,a,2),n&&Cp(n)||i&&Cp(i)||a&&Cp(a)){var g=Zm(t),m=g?g===zc(t)?c?void 0:n:Vm(Xc(g),t):void 0;c?(i=Ip(i,m,0,s),n=Ip(n,m,1,s),a=Ip(a,m,2,s)):n=function(e,t,r){return e&&Cp(e)&&(e=wp(e,t?r?rx(t):t:void 0)),e}(n,m,s)}i&&(i=cf(i)),n&&(n=cf(n)),a&&(a=cf(a))}return c?zh(i||We,n||u,a||Am(2,t)||Ne,s):s?Bh(n||u):n||u}function zh(e,t,r,n){var i=n?xr:br,a=i.getGlobalGeneratorType(!1);if(e=i.resolveIterationType(e,void 0)||Ne,t=i.resolveIterationType(t,void 0)||Ne,r=i.resolveIterationType(r,void 0)||Ne,a===ct){var o=i.getGlobalIterableIteratorType(!1),s=o!==ct?ob(o,i):void 0,c=s?s.returnType:Ee,u=s?s.nextType:Pe;return b_(t,c)&&b_(u,r)?o!==ct?$u(o,[e]):(i.getGlobalIterableIteratorType(!0),it):(i.getGlobalGeneratorType(!0),it)}return $u(a,[e,t,r])}function Uh(t,r,n,i){var a=t.expression||t,o=t.asteriskToken?Yx(i?19:17,r,n,a):r;return i?ix(o,a,t.asteriskToken?e.Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:e.Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):o}function Vh(e,t,r,n){var i=0;if(n){for(var a=t;a1&&t.charCodeAt(r-1)>=48&&t.charCodeAt(r-1)<=57;)r--;for(var n=t.slice(0,r),i=1;;i++){var a=n+i;if(!AD(e,a))return a}}function ND(e){var t=Tv(e);if(t&&!t.typeParameters)return Xc(t)}function PD(t){var r=wD(t);if(r)return r;if(67108864&t.flags&&ar){var n=ar[O(t)];if(n)return n}var i=Nr,a=OD(t);Nr!==i&&((ar||(ar=[]))[O(t)]=a,e.setNodeFlags(t,67108864|t.flags));return a}function wD(t){var r=e.skipParentheses(t);if(!e.isCallExpression(r)||105===r.expression.kind||e.isRequireCall(r,!0)||dh(r)){if(e.isAssertionExpression(r)&&!e.isConstTypeReference(r.type))return Rd(r.type);if(8===t.kind||10===t.kind||109===t.kind||94===t.kind)return OD(t)}else{var n=e.isCallChain(r)?function(e){var t=OD(e.expression),r=Qp(t,e.expression),n=ND(t);return n&&$p(n,e,r!==t)}(r):ND(By(r.expression));if(n)return n}}function ID(e){var t=Fn(e);if(t.contextFreeType)return t.contextFreeType;var r=e.contextualType;e.contextualType=Ee;try{return t.contextFreeType=OD(e,4)}finally{e.contextualType=r}}function OD(t,r,n){null===e.tracing||void 0===e.tracing||e.tracing.push("check","checkExpression",{kind:t.kind,pos:t.pos,end:t.end});var i=d;d=t,b=0;var s=TD(t,function(t,r,n){var i=t.kind;if(o)switch(i){case 222:case 209:case 210:o.throwIfCancellationRequested()}switch(i){case 78:return _m(t,r);case 107:return vm(t);case 105:return xm(t);case 103:return Me;case 14:case 10:return Fd(wd(t.text));case 8:return IE(t),Fd(wd(+t.text));case 9:return function(t){if(!(e.isLiteralTypeNode(t.parent)||e.isPrefixUnaryExpression(t.parent)&&e.isLiteralTypeNode(t.parent.parent))&&z<7&&NE(t,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))return!0}(t),Fd(function(t){return wd({negative:!1,base10Value:e.parsePseudoBigInt(t.text)})}(t));case 109:return Ke;case 94:return je;case 219:return function(t){for(var r=[t.head.text],n=[],i=0,a=t.templateSpans;i=2||!e.hasRestParameter(t)||8388608&t.flags||e.nodeIsMissing(t.body))return;e.forEach(t.parameters,(function(t){t.name&&!e.isBindingPattern(t.name)&&t.name.escapedText===se.escapedName&&_n("noEmit",t,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)}))}(t);var n=e.getEffectiveReturnTypeNode(t);if(X&&!n)switch(t.kind){case 171:pn(t,e.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);break;case 170:pn(t,e.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type)}if(n){var i=e.getFunctionFlags(t);if(1==(5&i)){var o=Rd(n);if(o===qe)pn(n,e.Diagnostics.A_generator_cannot_have_a_void_type_annotation);else{var s=vb(0,o,0!=(2&i))||Ee;C_(zh(s,vb(1,o,0!=(2&i))||s,vb(2,o,0!=(2&i))||Ne,!!(2&i)),o,n)}}else 2==(3&i)&&function(t,r){var n=Rd(r);if(z>=2){if(n===ke)return;var i=Hu(!0);if(i!==ct&&!Eo(n,i))return void pn(r,e.Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0,pa(ix(n)||qe))}else{if(function(t){sx(t&&e.getEntityNameFromTypeNode(t))}(r),n===ke)return;var a=e.getEntityNameFromTypeNode(r);if(void 0===a)return void pn(r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,pa(n));var o=fi(a,111551,!0),s=o?So(o):ke;if(s===ke)return void(78===a.kind&&"Promise"===a.escapedText&&To(n)===Hu(!1)?pn(r,e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):pn(r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(a)));var c=(d=!0,Kt||(Kt=Vu("PromiseConstructorLike",0,d))||it);if(c===it)return void pn(r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(a));if(!C_(s,c,r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))return;var u=a&&e.getFirstIdentifier(a),l=Pn(t.locals,u.escapedText,111551);if(l)return void pn(l.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(u),e.entityNameToString(a))}var d;nx(n,t,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}(t,n)}172!==t.kind&&309!==t.kind&&gx(t)}}function jD(t){for(var r=new e.Map,n=0,i=t.members;n0&&r.declarations[0]!==t)return}var n=su(Pi(t));if(null==n?void 0:n.declarations)for(var i=!1,a=!1,o=0,s=n.declarations;o=0)return void(r&&pn(r,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method));Qr.push(t.id);var s=ix(o,r,n,i);if(Qr.pop(),!s)return;return a.awaitedTypeOfType=s}if(!function(e){var t=wa(e,"then");return!!t&&kc(_g(t,2097152),0).length>0}(t))return a.awaitedTypeOfType=t;if(r){if(!n)return e.Debug.fail();pn(r,n,i)}}function ox(t){var r=ah(t);uh(r,t);var n=Xc(r);if(!(1&n.flags)){var i,a,o=eh(t);switch(t.parent.kind){case 253:i=xl([So(Pi(t.parent)),qe]);break;case 161:i=qe,a=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);break;case 164:i=qe,a=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);break;case 166:case 168:case 169:i=xl([Qu(fS(t.parent)),qe]);break;default:return e.Debug.fail()}C_(n,i,t,o,(function(){return a}))}}function sx(t){if(t){var r=e.getFirstIdentifier(t),n=2097152|(78===t.kind?788968:1920),i=On(r,r.escapedText,n,void 0,void 0,!0);i&&2097152&i.flags&&Bi(i)&&!PS(oi(i))&&!ui(i)&&di(i)}}function cx(t){var r=ux(t);r&&e.isEntityName(r)&&sx(r)}function ux(e){if(e)switch(e.kind){case 184:case 183:return lx(e.types);case 185:return lx([e.trueType,e.falseType]);case 187:case 193:return ux(e.type);case 174:return e.typeName}}function lx(t){for(var r,n=0,i=t;n=e.ModuleKind.ES2015)&&(Nx(t,r,"require")||Nx(t,r,"exports"))&&(!e.isModuleDeclaration(t)||1===e.getModuleInstanceState(t))){var n=Pa(t);298===n.kind&&e.isExternalOrCommonJsModule(n)&&_n("noEmit",r,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(r),e.declarationNameToString(r))}}function Mx(t,r){if(!(z>=4)&&Nx(t,r,"Promise")&&(!e.isModuleDeclaration(t)||1===e.getModuleInstanceState(t))){var n=Pa(t);298===n.kind&&e.isExternalOrCommonJsModule(n)&&2048&n.flags&&_n("noEmit",r,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(r),e.declarationNameToString(r))}}function Lx(e){return e===Te?Ee:e===Pt?Nt:e}function Rx(t){var r;if(_x(t),e.isBindingElement(t)||Qb(t.type),t.name){if(159===t.name.kind&&(sy(t.name),t.initializer&&mD(t.initializer)),e.isBindingElement(t)){e.isObjectBindingPattern(t.parent)&&t.dotDotDotToken&&z<5&&tE(t,4),t.propertyName&&159===t.propertyName.kind&&sy(t.propertyName);var n=t.parent.parent,i=Oa(n),a=t.propertyName||t.name;if(i&&!e.isBindingPattern(a)){var o=Ol(a);if(os(o)){var s=Tc(i,ds(o));s&&(cv(s,void 0,!1),Ly(t,!!n.initializer&&105===n.initializer.kind,!1,i,s))}}}if(e.isBindingPattern(t.name)&&(198===t.name.kind&&z<2&&A.downlevelIteration&&tE(t,512),e.forEach(t.name.elements,Qb)),t.initializer&&e.isParameterDeclaration(t)&&e.nodeIsMissing(e.getContainingFunction(t).body))pn(t,e.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);else if(e.isBindingPattern(t.name)){var c=t.initializer&&239!==t.parent.parent.kind,u=0===t.name.elements.length;if(c||u){var l=ao(t);if(c){var d=mD(t.initializer);W&&u?qy(d,t):k_(d,ao(t),t,t.initializer)}u&&(e.isArrayBindingPattern(t.name)?Yx(65,l,Pe,t):W&&qy(l,t))}}else{var _=Pi(t);if(2097152&_.flags&&e.isRequireVariableDeclaration(t))zb(t);else{var p=Lx(So(_));if(t===_.valueDeclaration){var f=e.getEffectiveInitializer(t);if(f)e.isInJSFile(t)&&e.isObjectLiteralExpression(f)&&(0===f.properties.length||e.isPrototypeAccess(t.name))&&!!(null===(r=_.exports)||void 0===r?void 0:r.size)||239===t.parent.parent.kind||k_(mD(f),p,t,f,void 0);_.declarations&&_.declarations.length>1&&e.some(_.declarations,(function(r){return r!==t&&e.isVariableLike(r)&&!jx(r,t)}))&&pn(t.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(t.name))}else{var g=Lx(ao(t));p===ke||g===ke||y_(p,g)||67108864&_.flags||Bx(_.valueDeclaration,p,t,g),t.initializer&&k_(mD(t.initializer),g,t,t.initializer,void 0),_.valueDeclaration&&!jx(t,_.valueDeclaration)&&pn(t.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(t.name))}164!==t.kind&&163!==t.kind&&(ex(t),250!==t.kind&&199!==t.kind||function(t){if(0==(3&e.getCombinedNodeFlags(t))&&!e.isParameterDeclaration(t)&&(250!==t.kind||t.initializer)){var r=Pi(t);if(1&r.flags){if(!e.isIdentifier(t.name))return e.Debug.fail();var n=On(t,t.name.escapedText,3,void 0,void 0,!1);if(n&&n!==r&&2&n.flags&&3&Oy(n)){var i=e.getAncestor(n.valueDeclaration,251),a=233===i.parent.kind&&i.parent.parent?i.parent.parent:void 0;if(!a||!(231===a.kind&&e.isFunctionLike(a.parent)||258===a.kind||257===a.kind||298===a.kind)){var o=da(n);pn(t,e.Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1,o,o)}}}}}(t),Ox(t,t.name),Mx(t,t.name),z<99&&(Nx(t,t.name,"WeakMap")||Nx(t,t.name,"WeakSet"))&&$r.push(t))}}}}function Bx(t,r,n,i){var a=e.getNameOfDeclaration(n),o=164===n.kind||163===n.kind?e.Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:e.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,s=e.declarationNameToString(a),c=pn(a,o,s,pa(r),pa(i));t&&e.addRelatedInfo(c,e.createDiagnosticForNode(t,e.Diagnostics._0_was_also_declared_here,s))}function jx(t,r){if(161===t.kind&&250===r.kind||250===t.kind&&161===r.kind)return!0;if(e.hasQuestionToken(t)!==e.hasQuestionToken(r))return!1;return e.getSelectedEffectiveModifierFlags(t,504)===e.getSelectedEffectiveModifierFlags(r,504)}function Jx(t){null===e.tracing||void 0===e.tracing||e.tracing.push("check","checkVariableDeclaration",{kind:t.kind,pos:t.pos,end:t.end}),function(t){if(239!==t.parent.parent.kind&&240!==t.parent.parent.kind)if(8388608&t.flags)bE(t);else if(!t.initializer){if(e.isBindingPattern(t.name)&&!e.isBindingPattern(t.parent))return NE(t,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(t))return NE(t,e.Diagnostics.const_declarations_must_be_initialized)}if(t.exclamationToken&&(233!==t.parent.parent.kind||!t.type||t.initializer||8388608&t.flags)){var r=t.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:t.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return NE(t.exclamationToken,r)}var n=e.getEmitModuleKind(A);n=1&&Jx(t.declarations[0])}function Gx(e){return Yx(e.awaitModifier?15:13,By(e.expression),Pe,e.expression)}function Yx(e,t,r,n){return Ia(t)?t:Xx(e,t,r,n,!0)||Ee}function Xx(t,r,n,i,a){var o=0!=(2&t);if(r!==We){var s=z>=2,c=!s&&A.downlevelIteration,u=A.noUncheckedIndexedAccess&&!!(128&t);if(s||c||o){var l=rb(r,t,s?i:void 0);if(a&&l){var d=8&t?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:32&t?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:64&t?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:16&t?e.Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;d&&C_(n,l.nextType,i,d)}if(l||s)return u?mg(l&&l.yieldType):l&&l.yieldType}var _=r,p=!1,f=!1;if(4&t){if(1048576&_.flags){var g=r.types,m=e.filter(g,(function(e){return!(402653316&e.flags)}));m!==g&&(_=xl(m,2))}else 402653316&_.flags&&(_=We);if((f=_!==r)&&(z<1&&i&&(pn(i,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),p=!0),131072&_.flags))return u?mg(Le):Le}if(!Dp(_)){if(i&&!p){var y=function(n,i){var a;if(i)return n?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:[e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0];if($x(t,0,r,void 0))return[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators,!1];if(function(e){switch(e){case"Float32Array":case"Float64Array":case"Int16Array":case"Int32Array":case"Int8Array":case"NodeList":case"Uint16Array":case"Uint32Array":case"Uint8Array":case"Uint8ClampedArray":return!0}return!1}(null===(a=r.symbol)||void 0===a?void 0:a.escapedName))return[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0];return n?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type,!0]:[e.Diagnostics.Type_0_is_not_an_array_type,!0]}(!!(4&t)&&!f,c),v=y[0];mn(i,y[1]&&!!tx(_),v,pa(_))}return f?u?mg(Le):Le:void 0}var h=Pc(_,1);return f&&h?402653316&h.flags&&!A.noUncheckedIndexedAccess?Le:xl(u?[h,Le,Pe]:[h,Le],2):128&t?mg(h):h}ub(i,r,o)}function $x(e,t,r,n){if(!Ia(r)){var i=rb(r,e,n);return i&&i[j(t)]}}function Qx(e,t,r){if(void 0===e&&(e=We),void 0===t&&(t=We),void 0===r&&(r=Ne),67359327&e.flags&&180227&t.flags&&180227&r.flags){var n=mu([e,t,r]),i=mr.get(n);return i||(i={yieldType:e,returnType:t,nextType:r},mr.set(n,i)),i}return{yieldType:e,returnType:t,nextType:r}}function Zx(t){for(var r,n,i,a=0,o=t;an)return!1;for(var l=0;l1)return AE(o.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);r=!0}else{if(e.Debug.assert(116===o.token),n)return AE(o,e.Diagnostics.implements_clause_already_seen);n=!0}dE(o)}})(t)||oE(t.typeParameters,r)}(t),_x(t),t.name&&(Tb(t.name,e.Diagnostics.Class_name_cannot_be_0),Ox(t,t.name),Mx(t,t.name),8388608&t.flags||function(t){1===z&&"Object"===t.escapedText&&U>a;case 49:return i>>>a;case 47:return i<1&&L(t,e.shouldPreserveConstEnums(A))){var s=function(t){var r=t.declarations;if(r)for(var n=0,i=r;n1&&!$b(n))for(var o=0,s=n;o1&&t.every((function(t){return e.isInJSFile(t)&&e.isAccessExpression(t)&&(e.isExportsIdentifier(t.expression)||e.isModuleExportsAccessExpression(t.expression))}))}function Qb(t){if(t){var r=d;d=t,b=0,function(t){e.isInJSFile(t)&&e.forEach(t.jsDoc,(function(t){var r=t.tags;return e.forEach(r,Qb)}));var r=t.kind;if(o)switch(r){case 257:case 253:case 254:case 252:o.throwIfCancellationRequested()}r>=233&&r<=249&&t.flowNode&&!Qg(t.flowNode)&&gn(!1===A.allowUnreachableCode,t,e.Diagnostics.Unreachable_code_detected);switch(r){case 160:return MD(t);case 161:return LD(t);case 164:return KD(t);case 163:return function(t){return e.isPrivateIdentifier(t.name)&&pn(t,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),KD(t)}(t);case 176:case 175:case 170:case 171:case 172:return BD(t);case 166:case 165:return function(t){DE(t)||pE(t.name),fx(t),e.hasSyntacticModifier(t,128)&&166===t.kind&&t.body&&pn(t,e.Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract,e.declarationNameToString(t.name)),e.isPrivateIdentifier(t.name)&&!e.getContainingClass(t)&&pn(t,e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),zD(t)}(t);case 167:return UD(t);case 168:case 169:return VD(t);case 174:return GD(t);case 173:return function(t){var r=function(e){switch(e.parent.kind){case 210:case 170:case 252:case 209:case 175:case 166:case 165:var t=e.parent;if(e===t.type)return t}}(t);if(r){var n=zc(r),i=Gc(n);if(i){Qb(t.type);var a=t.parameterName;if(0===i.kind||2===i.kind)Od(a);else if(i.parameterIndex>=0)J(n)&&i.parameterIndex===n.parameters.length-1?pn(a,e.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter):i.type&&C_(i.type,So(n.parameters[i.parameterIndex]),t.type,void 0,(function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type)}));else if(a){for(var o=!1,s=0,c=r.parameters;s0),n.length>1&&pn(n[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var i=px(t.class.expression),a=e.getClassExtendsHeritageElement(r);if(a){var o=px(a.expression);o&&i.escapedText!==o.escapedText&&pn(i,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(t.tagName),e.idText(i),e.idText(o))}}else pn(r,e.Diagnostics.JSDoc_0_is_not_attached_to_a_class,e.idText(t.tagName))}(t);case 319:return function(t){var r=e.getEffectiveJSDocHost(t);r&&(e.isClassDeclaration(r)||e.isClassExpression(r))||pn(r,e.Diagnostics.JSDoc_0_is_not_attached_to_a_class,e.idText(t.tagName))}(t);case 335:case 328:case 329:return function(t){t.typeExpression||pn(t.name,e.Diagnostics.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags),t.name&&Tb(t.name,e.Diagnostics.Type_alias_name_cannot_be_0),Qb(t.typeExpression)}(t);case 334:return function(e){Qb(e.constraint);for(var t=0,r=e.typeParameters;t-1&&n1){var n=e.isEnumConst(t);e.forEach(r.declarations,(function(t){e.isEnumDeclaration(t)&&e.isEnumConst(t)!==n&&pn(e.getNameOfDeclaration(t),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)}))}var i=!1;e.forEach(r.declarations,(function(t){if(256!==t.kind)return!1;var r=t;if(!r.members.length)return!1;var n=r.members[0];n.initializer||(i?pn(n.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):i=!0)}))}}}(t);case 257:return jb(t);case 262:return Vb(t);case 261:return function(t){if(!Wb(t,e.Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)&&(nE(t),e.isInternalModuleImportEqualsDeclaration(t)||Kb(t)))if(Ub(t),e.hasSyntacticModifier(t,1)&&li(t),273!==t.moduleReference.kind){var r=oi(Pi(t));if(r!==be){if(111551&r.flags){var n=e.getFirstIdentifier(t.moduleReference);1920&fi(n,112575).flags||pn(n,e.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name,e.declarationNameToString(n))}788968&r.flags&&Tb(t.name,e.Diagnostics.Import_name_cannot_be_0)}t.isTypeOnly&&NE(t,e.Diagnostics.An_import_alias_cannot_use_import_type)}else!(U>=e.ModuleKind.ES2015)||t.isTypeOnly||8388608&t.flags||NE(t,e.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}(t);case 268:return qb(t);case 267:return function(t){if(!Wb(t,t.isExportEquals?e.Diagnostics.An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:e.Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration)){var r=298===t.parent.kind?t.parent:t.parent.parent;if(257!==r.kind||e.isAmbientModule(r)){if(!nE(t)&&e.hasEffectiveModifiers(t)&&AE(t,e.Diagnostics.An_export_assignment_cannot_have_modifiers),78===t.expression.kind){var n=t.expression,i=fi(n,67108863,!0,!0,t);if(i){dm(i,n);var a=2097152&i.flags?oi(i):i;(a===be||111551&a.flags)&&mD(t.expression)}else mD(t.expression);e.getEmitDeclarations(A)&&Ca(t.expression,!0)}else mD(t.expression);Xb(r),8388608&t.flags&&!e.isEntityNameExpression(t.expression)&&NE(t.expression,e.Diagnostics.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context),!t.isExportEquals||8388608&t.flags||(U>=e.ModuleKind.ES2015?NE(t,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):U===e.ModuleKind.System&&NE(t,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}else t.isExportEquals?pn(t,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace):pn(t,e.Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module)}}(t);case 232:case 249:return void wE(t);case 272:(function(e){_x(e)})(t)}}(t),d=r}}function Zb(t){e.isInJSFile(t)||NE(t,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function eS(t){var r=Fn(e.getSourceFileOfNode(t));if(!(1&r.flags)){r.deferredNodes=r.deferredNodes||new e.Map;var n=O(t);r.deferredNodes.set(n,t)}}function tS(t){null===e.tracing||void 0===e.tracing||e.tracing.push("check","checkDeferredNode",{kind:t.kind,pos:t.pos,end:t.end});var r=d;switch(d=t,b=0,t.kind){case 204:case 205:case 206:case 162:case 276:yv(t);break;case 209:case 210:case 166:case 165:!function(t){e.Debug.assert(166!==t.kind||e.isObjectLiteralMethod(t));var r=e.getFunctionFlags(t),n=$c(t);if(Gh(t,n),t.body)if(e.getEffectiveReturnTypeNode(t)||Xc(zc(t)),231===t.body.kind)Qb(t.body);else{var i=OD(t.body),a=n&&xb(n,r);a&&k_(2==(3&r)?nx(i,t.body,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):i,a,t.body,t.body)}}(t);break;case 168:case 169:VD(t);break;case 222:!function(t){e.forEach(t.members,Qb),gx(t)}(t);break;case 275:!function(e){Ny(e)}(t);break;case 274:!function(e){Ny(e.openingElement),py(e.closingElement.tagName)?hy(e.closingElement):OD(e.closingElement.tagName),gy(e)}(t)}d=r,null===e.tracing||void 0===e.tracing||e.tracing.pop()}function rS(t){null===e.tracing||void 0===e.tracing||e.tracing.push("check","checkSourceFile",{path:t.path},!0),e.performance.mark("beforeCheck"),function(t){var r=Fn(t);if(!(1&r.flags)){if(e.skipTypeChecking(t,A,n))return;!function(t){!!(8388608&t.flags)&&function(t){for(var r=0,n=t.statements;r0?e.concatenate(o,a):a}return e.forEach(n.getSourceFiles(),rS),Zr.getDiagnostics()}(t)}finally{o=void 0}}function oS(){if(!a)throw new Error("Trying to get diagnostics from a type checker that does not produce them.")}function sS(e){switch(e.kind){case 160:case 253:case 254:case 255:case 256:case 335:case 328:case 329:return!0;case 263:return e.isTypeOnly;case 266:case 271:return e.parent.parent.isTypeOnly;default:return!1}}function cS(e){for(;158===e.parent.kind;)e=e.parent;return 174===e.parent.kind}function uS(t,r){for(var n;(t=e.getContainingClass(t))&&!(n=r(t)););return n}function lS(e,t){return!!uS(e,(function(e){return e===t}))}function dS(e){return void 0!==function(e){for(;158===e.parent.kind;)e=e.parent;return 261===e.parent.kind?e.parent.moduleReference===e?e.parent:void 0:267===e.parent.kind&&e.parent.expression===e?e.parent:void 0}(e)}function _S(t){if(e.isDeclarationName(t))return Pi(t.parent);if(e.isInJSFile(t)&&202===t.parent.kind&&t.parent===t.parent.parent.left&&!e.isPrivateIdentifier(t)){var r=function(t){switch(e.getAssignmentDeclarationKind(t.parent.parent)){case 1:case 3:return Pi(t.parent);case 4:case 2:case 5:return Pi(t.parent.parent)}}(t);if(r)return r}if(267===t.parent.kind&&e.isEntityNameExpression(t)){var n=fi(t,2998271,!0);if(n&&n!==be)return n}else if(!e.isPropertyAccessExpression(t)&&!e.isPrivateIdentifier(t)&&dS(t)){var i=e.getAncestor(t,261);return e.Debug.assert(void 0!==i),_i(t,!0)}if(!e.isPropertyAccessExpression(t)&&!e.isPrivateIdentifier(t)){var a=function(t){for(var r=t.parent;e.isQualifiedName(r);)t=r,r=r.parent;if(r&&196===r.kind&&r.qualifier===t)return r}(t);if(a){Rd(a);var o=Fn(t).resolvedSymbol;return o===be?void 0:o}}for(;e.isRightSideOfQualifiedNameOrPropertyAccess(t);)t=t.parent;if(function(e){for(;202===e.parent.kind;)e=e.parent;return 224===e.parent.kind}(t)){var s=0;224===t.parent.kind?(s=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(t.parent)&&(s|=111551)):s=1920,s|=2097152;var c=e.isEntityNameExpression(t)?fi(t,s):void 0;if(c)return c}if(330===t.parent.kind)return e.getParameterSymbolFromJSDoc(t.parent);if(160===t.parent.kind&&334===t.parent.parent.kind){e.Debug.assert(!e.isInJSFile(t));var u=e.getTypeParameterFromJsDoc(t.parent);return u&&u.symbol}if(e.isExpressionNode(t)){if(e.nodeIsMissing(t))return;if(78===t.kind)return e.isJSXTagName(t)&&py(t)?(l=hy(t.parent))===be?void 0:l:fi(t,111551,!1,!0);if(202===t.kind||158===t.kind)return(d=Fn(t)).resolvedSymbol||(202===t.kind?Wy(t,0):Hy(t,0)),d.resolvedSymbol}else if(cS(t)){return fi(t,s=174===t.parent.kind?788968:1920,!1,!0)}if(function(t){for(;158===t.parent.kind;)t=t.parent;for(;202===t.parent.kind;)t=t.parent;return e.isJSDocNameReference(t.parent)?t.parent:void 0}(t)||e.isJSDocLink(t.parent)){var l;if(l=fi(t,s=901119,!1,!1,e.getHostSignatureFromJSDoc(t)))return l;if(e.isQualifiedName(t)&&e.isIdentifier(t.left)){var d;if((d=Fn(t)).resolvedSymbol)return d.resolvedSymbol;if(Hy(t,0),d.resolvedSymbol)return d.resolvedSymbol;var _=fi(t.left,s,!1);if(_)return Tc(Xo(_),t.right.escapedText)}}return 173===t.parent.kind?fi(t,1):void 0}function pS(t,r){if(298===t.kind)return e.isExternalModule(t)?Ni(t.symbol):void 0;var n=t.parent,i=n.parent;if(!(16777216&t.flags)){if(B(t)){var a=Pi(n);return e.isImportOrExportSpecifier(t.parent)&&t.parent.propertyName===t?uy(a):a}if(e.isLiteralComputedPropertyDeclarationName(t))return Pi(n.parent);if(78===t.kind){if(dS(t))return _S(t);if(199===n.kind&&197===i.kind&&t===n.propertyName){var o=Tc(fS(i),t.escapedText);if(o)return o}}switch(t.kind){case 78:case 79:case 202:case 158:return _S(t);case 107:var s=e.getThisContainer(t,!1);if(e.isFunctionLike(s)){var c=zc(s);if(c.thisParameter)return c.thisParameter}if(e.isInExpressionContext(t))return OD(t).symbol;case 188:return Od(t).symbol;case 105:return OD(t).symbol;case 132:var u=t.parent;return u&&167===u.kind?u.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(t.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(t.parent.parent)===t||(262===t.parent.kind||268===t.parent.kind)&&t.parent.moduleSpecifier===t||e.isInJSFile(t)&&e.isRequireCall(t.parent,!1)||e.isImportCall(t.parent)||e.isLiteralTypeNode(t.parent)&&e.isLiteralImportTypeNode(t.parent.parent)&&t.parent.parent.argument===t.parent)return mi(t,t,r);if(e.isCallExpression(n)&&e.isBindableObjectDefinePropertyCall(n)&&n.arguments[1]===t)return Pi(n);case 8:var l=e.isElementAccessExpression(n)?n.argumentExpression===t?PD(n.expression):void 0:e.isLiteralTypeNode(n)&&e.isIndexedAccessTypeNode(i)?Rd(i.objectType):void 0;return l&&Tc(l,e.escapeLeadingUnderscores(t.text));case 87:case 97:case 38:case 83:return Pi(t.parent);case 196:return e.isLiteralImportTypeNode(t)?pS(t.argument.literal,r):void 0;case 92:return e.isExportAssignment(t.parent)?e.Debug.checkDefined(t.parent.symbol):void 0;default:return}}}function fS(t){if(e.isSourceFile(t)&&!e.isExternalModule(t))return ke;if(16777216&t.flags)return ke;var r,n=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(t),i=n&&Ko(Pi(n.class));if(e.isPartOfTypeNode(t)){var a=Rd(t);return i?ms(a,i.thisType):a}if(e.isExpressionNode(t))return mS(t);if(i&&!n.isImplements){var o=e.firstOrUndefined(Bo(i));return o?ms(o,i.thisType):ke}if(sS(t))return Xo(r=Pi(t));if(function(t){return 78===t.kind&&sS(t.parent)&&e.getNameOfDeclaration(t.parent)===t}(t))return(r=pS(t))?Xo(r):ke;if(e.isDeclaration(t))return So(r=Pi(t));if(B(t))return(r=pS(t))?So(r):ke;if(e.isBindingPattern(t))return qa(t.parent,!0)||ke;if(dS(t)&&(r=pS(t))){var s=Xo(r);return s!==ke?s:So(r)}return ke}function gS(t){if(e.Debug.assert(201===t.kind||200===t.kind),240===t.parent.kind)return lD(t,Gx(t.parent)||ke);if(217===t.parent.kind)return lD(t,PD(t.parent.right)||ke);if(289===t.parent.kind){var r=e.cast(t.parent.parent,e.isObjectLiteralExpression);return cD(r,gS(r)||ke,e.indexOfNode(r.properties,t.parent))}var n=e.cast(t.parent,e.isArrayLiteralExpression),i=gS(n)||ke,a=Yx(65,i,Pe,t.parent)||ke;return uD(n,i,n.elements.indexOf(t),a)}function mS(t){return e.isRightSideOfQualifiedNameOrPropertyAccess(t)&&(t=t.parent),Nd(PD(t))}function yS(t){var r=Pi(t.parent);return e.hasSyntacticModifier(t,32)?So(r):Xo(r)}function vS(t){var r=t.name;switch(r.kind){case 78:return wd(e.idText(r));case 8:case 10:return wd(r.text);case 159:var n=sy(r);return iD(n,12288)?n:Le;default:return e.Debug.fail("Unsupported property name.")}}function hS(t){t=gc(t);var r=e.createSymbolTable(tc(t)),n=kc(t,0).length?xt:kc(t,1).length?bt:void 0;return n&&e.forEach(tc(n),(function(e){r.has(e.escapedName)||r.set(e.escapedName,e)})),Hi(r)}function DS(t){return e.typeHasCallOrConstructSignatures(t,ue)}function xS(t){if(e.isGeneratedIdentifier(t))return!1;var r=e.getParseTreeNode(t,e.isIdentifier);if(!r)return!1;var n=r.parent;return!!n&&(!((e.isPropertyAccessExpression(n)||e.isPropertyAssignment(n))&&n.name===r)&&GS(r)===se)}function bS(t){var r=mi(t.parent,t);if(!r||e.isShorthandAmbientModuleSymbol(r))return!0;var n=bi(r),i=An(r=Di(r));return void 0===i.exportsSomeValue&&(i.exportsSomeValue=n?!!(111551&r.flags):e.forEachEntry(ki(r),(function(e){return(e=ai(e))&&!!(111551&e.flags)}))),i.exportsSomeValue}function SS(t,r){var n,i=e.getParseTreeNode(t,e.isIdentifier);if(i){var a=GS(i,function(t){return e.isModuleOrEnumDeclaration(t.parent)&&t===t.parent.name}(i));if(a){if(1048576&a.flags){var o=Ni(a.exportSymbol);if(!r&&944&o.flags&&!(3&o.flags))return;a=o}var s=wi(a);if(s){if(512&s.flags&&298===(null===(n=s.valueDeclaration)||void 0===n?void 0:n.kind)){var c=s.valueDeclaration;return c!==e.getSourceFileOfNode(i)?void 0:c}return e.findAncestor(i.parent,(function(t){return e.isModuleOrEnumDeclaration(t)&&Pi(t)===s}))}}}}function ES(t){if(t.generatedImportReference)return t.generatedImportReference;var r=e.getParseTreeNode(t,e.isIdentifier);if(r){var n=GS(r);if(ii(n,111551)&&!ui(n))return qn(n)}}function TS(t){if(418&t.flags&&t.valueDeclaration&&!e.isSourceFile(t.valueDeclaration)){var r=An(t);if(void 0===r.isDeclarationWithCollidingName){var n=e.getEnclosingBlockScopeContainer(t.valueDeclaration);if(e.isStatementWithLocals(n)||function(t){return t.valueDeclaration&&e.isBindingElement(t.valueDeclaration)&&288===e.walkUpBindingElementsAndPatterns(t.valueDeclaration).parent.kind}(t)){var i=Fn(t.valueDeclaration);if(On(n.parent,t.escapedName,111551,void 0,void 0,!1))r.isDeclarationWithCollidingName=!0;else if(262144&i.flags){var a=524288&i.flags,o=e.isIterationStatement(n,!1),s=231===n.kind&&e.isIterationStatement(n.parent,!1);r.isDeclarationWithCollidingName=!(e.isBlockScopedContainerTopLevel(n)||a&&(o||s))}else r.isDeclarationWithCollidingName=!1}}return r.isDeclarationWithCollidingName}return!1}function CS(t){if(!e.isGeneratedIdentifier(t)){var r=e.getParseTreeNode(t,e.isIdentifier);if(r){var n=GS(r);if(n&&TS(n))return n.valueDeclaration}}}function kS(t){var r=e.getParseTreeNode(t,e.isDeclaration);if(r){var n=Pi(r);if(n)return TS(n)}return!1}function AS(t){switch(t.kind){case 261:return NS(Pi(t)||be);case 263:case 264:case 266:case 271:var r=Pi(t)||be;return NS(r)&&!ui(r);case 268:var n=t.exportClause;return!!n&&(e.isNamespaceExport(n)||e.some(n.elements,AS));case 267:return!t.expression||78!==t.expression.kind||NS(Pi(t)||be)}return!1}function FS(t){var r=e.getParseTreeNode(t,e.isImportEqualsDeclaration);return!(void 0===r||298!==r.parent.kind||!e.isInternalModuleImportEqualsDeclaration(r))&&(NS(Pi(r))&&r.moduleReference&&!e.nodeIsMissing(r.moduleReference))}function NS(t){var r=oi(t);return r===be||!!(111551&r.flags)&&(e.shouldPreserveConstEnums(A)||!PS(r))}function PS(e){return sD(e)||!!e.constEnumOnlyModule}function wS(t,r){if(Wn(t)){var n=Pi(t),i=n&&An(n);if(null==i?void 0:i.referenced)return!0;var a=An(n).target;if(a&&1&e.getEffectiveModifierFlags(t)&&111551&a.flags&&(e.shouldPreserveConstEnums(A)||!PS(a)))return!0}return!!r&&!!e.forEachChild(t,(function(e){return wS(e,r)}))}function IS(t){if(e.nodeIsPresent(t.body)){if(e.isGetAccessor(t)||e.isSetAccessor(t))return!1;var r=qc(Pi(t));return r.length>1||1===r.length&&r[0].declaration!==t}return!1}function OS(t){return!(!W||Rc(t)||e.isJSDocParameterTag(t)||!t.initializer||e.hasSyntacticModifier(t,16476))}function MS(t){return W&&Rc(t)&&!t.initializer&&e.hasSyntacticModifier(t,16476)}function LS(t){var r=e.getParseTreeNode(t,e.isFunctionDeclaration);if(!r)return!1;var n=Pi(r);return!!(n&&16&n.flags)&&!!e.forEachEntry(Ci(n),(function(t){return 111551&t.flags&&t.valueDeclaration&&e.isPropertyAccessExpression(t.valueDeclaration)}))}function RS(t){var r=e.getParseTreeNode(t,e.isFunctionDeclaration);if(!r)return e.emptyArray;var n=Pi(r);return n&&tc(So(n))||e.emptyArray}function BS(e){return Fn(e).flags||0}function jS(e){return Mb(e.parent),Fn(e).enumMemberValue}function JS(e){switch(e.kind){case 292:case 202:case 203:return!0}return!1}function KS(t){if(292===t.kind)return jS(t);var r=Fn(t).resolvedSymbol;if(r&&8&r.flags){var n=r.valueDeclaration;if(e.isEnumConst(n.parent))return jS(n)}}function zS(e){return!!(524288&e.flags)&&kc(e,0).length>0}function US(t,r){var n,i=e.getParseTreeNode(t,e.isEntityName);if(!i)return e.TypeReferenceSerializationKind.Unknown;if(r&&!(r=e.getParseTreeNode(r)))return e.TypeReferenceSerializationKind.Unknown;var a=fi(i,111551,!0,!0,r),o=(null===(n=null==a?void 0:a.declarations)||void 0===n?void 0:n.every(e.isTypeOnlyImportOrExportDeclaration))||!1,s=a&&2097152&a.flags?oi(a):a,c=fi(i,788968,!0,!1,r);if(s&&s===c){var u=Gu(!1);if(u&&s===u)return e.TypeReferenceSerializationKind.Promise;var l=So(s);if(l&&wo(l))return o?e.TypeReferenceSerializationKind.TypeWithCallSignature:e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!c)return o?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown;var d=Xo(c);return d===ke?o?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown:3&d.flags?e.TypeReferenceSerializationKind.ObjectType:iD(d,245760)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:iD(d,528)?e.TypeReferenceSerializationKind.BooleanType:iD(d,296)?e.TypeReferenceSerializationKind.NumberLikeType:iD(d,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:iD(d,402653316)?e.TypeReferenceSerializationKind.StringLikeType:Op(d)?e.TypeReferenceSerializationKind.ArrayLikeType:iD(d,12288)?e.TypeReferenceSerializationKind.ESSymbolType:zS(d)?e.TypeReferenceSerializationKind.TypeWithCallSignature:mp(d)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function VS(t,r,n,i,a){var o=e.getParseTreeNode(t,e.isVariableLikeOrAccessor);if(!o)return e.factory.createToken(128);var s=Pi(o),c=!s||133120&s.flags?ke:Np(So(s));return 8192&c.flags&&c.symbol===s&&(n|=1048576),a&&(c=Wp(c)),re.typeToTypeNode(c,r,1024|n,i)}function qS(t,r,n,i){var a=e.getParseTreeNode(t,e.isFunctionLike);if(!a)return e.factory.createToken(128);var o=zc(a);return re.typeToTypeNode(Xc(o),r,1024|n,i)}function WS(t,r,n,i){var a=e.getParseTreeNode(t,e.isExpression);if(!a)return e.factory.createToken(128);var o=cf(mS(a));return re.typeToTypeNode(o,r,1024|n,i)}function HS(t){return ne.has(e.escapeLeadingUnderscores(t))}function GS(t,r){var n=Fn(t).resolvedSymbol;if(n)return n;var i=t;if(r){var a=t.parent;e.isDeclaration(a)&&t===a.name&&(i=Pa(a))}return On(i,t.escapedText,3257279,void 0,void 0,!0)}function YS(t){if(!e.isGeneratedIdentifier(t)){var r=e.getParseTreeNode(t,e.isIdentifier);if(r){var n=GS(r);if(n)return Ri(n).valueDeclaration}}}function XS(t){return!!(e.isDeclarationReadonly(t)||e.isVariableDeclaration(t)&&e.isVarConst(t))&&Pd(So(Pi(t)))}function $S(t,r){return function(t,r,n){var i=1024&t.flags?re.symbolToExpression(t.symbol,111551,r,void 0,n):t===Ke?e.factory.createTrue():t===je&&e.factory.createFalse();if(i)return i;var a=t.value;return"object"==typeof a?e.factory.createBigIntLiteral(a):"number"==typeof a?e.factory.createNumericLiteral(a):e.factory.createStringLiteral(a)}(So(Pi(t)),t,r)}function QS(t){return t?(dn(t),e.getSourceFileOfNode(t).localJsxFactory||sr):sr}function ZS(t){if(t){var r=e.getSourceFileOfNode(t);if(r){if(r.localJsxFragmentFactory)return r.localJsxFragmentFactory;var n=r.pragmas.get("jsxfrag"),i=e.isArray(n)?n[0]:n;if(i)return r.localJsxFragmentFactory=e.parseIsolatedEntityName(i.arguments.factory,z),r.localJsxFragmentFactory}}if(A.jsxFragmentFactory)return e.parseIsolatedEntityName(A.jsxFragmentFactory,z)}function eE(t){var r=257===t.kind?e.tryCast(t.name,e.isStringLiteral):e.getExternalModuleName(t),n=yi(r,r,void 0);if(n)return e.getDeclarationOfKind(n,298)}function tE(t,r){if((s&r)!==r&&A.importHelpers){var n=e.getSourceFileOfNode(t);if(e.isEffectiveExternalModule(n,A)&&!(8388608&t.flags)){var i=function(t,r){l||(l=vi(t,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,r)||be);return l}(n,t);if(i!==be)for(var a=r&~s,o=1;o<=2097152;o<<=1)if(a&o){var c=rE(o),u=Pn(i.exports,e.escapeLeadingUnderscores(c),111551);u?524288&o?e.some(qc(u),(function(e){return Ah(e)>3}))||pn(t,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,c,4):1048576&o&&(e.some(qc(u),(function(e){return Ah(e)>4}))||pn(t,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,c,5)):pn(t,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,c)}s|=r}}}function rE(t){switch(t){case 1:return"__extends";case 2:return"__assign";case 4:return"__rest";case 8:return"__decorate";case 16:return"__metadata";case 32:return"__param";case 64:return"__awaiter";case 128:return"__generator";case 256:return"__values";case 512:return"__read";case 1024:return"__spreadArray";case 2048:return"__await";case 4096:return"__asyncGenerator";case 8192:return"__asyncDelegator";case 16384:return"__asyncValues";case 32768:return"__exportStar";case 65536:return"__importStar";case 131072:return"__importDefault";case 262144:return"__makeTemplateObject";case 524288:return"__classPrivateFieldGet";case 1048576:return"__classPrivateFieldSet";case 2097152:return"__createBinding";default:return e.Debug.fail("Unrecognized helper")}}function nE(t){return function(t){if(!t.decorators)return!1;if(!e.nodeCanBeDecorated(t,t.parent,t.parent.parent))return 166!==t.kind||e.nodeIsPresent(t.body)?AE(t,e.Diagnostics.Decorators_are_not_valid_here):AE(t,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);if(168===t.kind||169===t.kind){var r=e.getAllAccessorDeclarations(t.parent.members,t);if(r.firstAccessor.decorators&&t===r.secondAccessor)return AE(t,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}return!1}(t)||function(t){var r,n,i,a,o,s=function(t){return!!t.modifiers&&(function(t){switch(t.kind){case 168:case 169:case 167:case 164:case 163:case 166:case 165:case 172:case 257:case 262:case 261:case 268:case 267:case 209:case 210:case 161:return!1;default:if(258===t.parent.kind||298===t.parent.kind)return!1;switch(t.kind){case 252:return iE(t,129);case 253:case 176:return iE(t,125);case 254:case 233:case 255:return!0;case 256:return iE(t,84);default:e.Debug.fail()}}}(t)?AE(t,e.Diagnostics.Modifiers_cannot_appear_here):void 0)}(t);if(void 0!==s)return s;for(var c=0,u=0,l=t.modifiers;u1||e.modifiers[0].kind!==t}function aE(t,r){return void 0===r&&(r=e.Diagnostics.Trailing_comma_not_allowed),!(!t||!t.hasTrailingComma)&&FE(t[0],t.end-",".length,",".length,r)}function oE(t,r){if(t&&0===t.length){var n=t.pos-"<".length;return FE(r,n,e.skipTrivia(r.text,t.end)+">".length-n,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function sE(r){if(z>=3){var n=r.body&&e.isBlock(r.body)&&e.findUseStrictPrologue(r.body.statements);if(n){var i=(o=r.parameters,e.filter(o,(function(t){return!!t.initializer||e.isBindingPattern(t.name)||e.isRestParameter(t)})));if(e.length(i)){e.forEach(i,(function(t){e.addRelatedInfo(pn(t,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(n,e.Diagnostics.use_strict_directive_used_here))}));var a=i.map((function(t,r){return 0===r?e.createDiagnosticForNode(t,e.Diagnostics.Non_simple_parameter_declared_here):e.createDiagnosticForNode(t,e.Diagnostics.and_here)}));return e.addRelatedInfo.apply(void 0,t([pn(n,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],a)),!0}}}var o;return!1}function cE(t){var r=e.getSourceFileOfNode(t);return nE(t)||oE(t.typeParameters,r)||function(t){for(var r=!1,n=t.length,i=0;i".length-i,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}(t,r)}function lE(t){return function(t){if(t)for(var r=0,n=t;r1){n=239===t.kind?e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return AE(o.declarations[1],n)}var c=s[0];if(c.initializer){var n=239===t.kind?e.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:e.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return NE(c.name,n)}if(c.type)return NE(c,n=239===t.kind?e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:e.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation)}}return!1}function vE(t){if(t.parameters.length===(168===t.kind?1:2))return e.getThisParameter(t)}function hE(t,r){if(function(t){return e.isDynamicName(t)&&!ss(t)}(t))return NE(t,r)}function DE(t){if(cE(t))return!0;if(166===t.kind){if(201===t.parent.kind){if(t.modifiers&&(1!==t.modifiers.length||129!==e.first(t.modifiers).kind))return AE(t,e.Diagnostics.Modifiers_cannot_appear_here);if(gE(t.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(mE(t.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(void 0===t.body)return FE(t,t.end-1,";".length,e.Diagnostics._0_expected,"{")}if(fE(t))return!0}if(e.isClassLike(t.parent)){if(z<2&&e.isPrivateIdentifier(t.name))return NE(t.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(8388608&t.flags)return hE(t.name,e.Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(166===t.kind&&!t.body)return hE(t.name,e.Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(254===t.parent.kind)return hE(t.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(178===t.parent.kind)return hE(t.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function xE(t){return e.isStringOrNumericLiteralLike(t)||215===t.kind&&40===t.operator&&8===t.operand.kind}function bE(t){var r,n=t.initializer;if(n){var i=!(xE(n)||function(t){if((e.isPropertyAccessExpression(t)||e.isElementAccessExpression(t)&&xE(t.argumentExpression))&&e.isEntityNameExpression(t.expression))return!!(1024&mD(t).flags)}(n)||109===n.kind||94===n.kind||(r=n,9===r.kind||215===r.kind&&40===r.operator&&9===r.operand.kind)),a=e.isDeclarationReadonly(t)||e.isVariableDeclaration(t)&&e.isVarConst(t);if(!a||t.type)return NE(n,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(i)return NE(n,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);if(!a||i)return NE(n,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function SE(t){if(78===t.kind){if("__esModule"===e.idText(t))return function(t,r,n,i,a,o){if(!kE(e.getSourceFileOfNode(r)))return _n(t,r,n,i,a,o),!0;return!1}("noEmit",t,e.Diagnostics.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules)}else for(var r=0,n=t.elements;r0}function AE(t,r,n,i,a){var o=e.getSourceFileOfNode(t);if(!kE(o)){var s=e.getSpanOfTokenAtPosition(o,t.pos);return Zr.add(e.createFileDiagnostic(o,s.start,s.length,r,n,i,a)),!0}return!1}function FE(t,r,n,i,a,o,s){var c=e.getSourceFileOfNode(t);return!kE(c)&&(Zr.add(e.createFileDiagnostic(c,r,n,i,a,o,s)),!0)}function NE(t,r,n,i,a){return!kE(e.getSourceFileOfNode(t))&&(Zr.add(e.createDiagnosticForNode(t,r,n,i,a)),!0)}function PE(t){return 254!==t.kind&&255!==t.kind&&262!==t.kind&&261!==t.kind&&268!==t.kind&&267!==t.kind&&260!==t.kind&&!e.hasSyntacticModifier(t,515)&&AE(t,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function wE(t){if(8388608&t.flags){if(!Fn(t).hasReportedStatementInAmbientContext&&(e.isFunctionLike(t.parent)||e.isAccessor(t.parent)))return Fn(t).hasReportedStatementInAmbientContext=AE(t,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);if(231===t.parent.kind||258===t.parent.kind||298===t.parent.kind){var r=Fn(t.parent);if(!r.hasReportedStatementInAmbientContext)return r.hasReportedStatementInAmbientContext=AE(t,e.Diagnostics.Statements_are_not_allowed_in_ambient_contexts)}}return!1}function IE(t){if(32&t.numericLiteralFlags){var r=void 0;if(z>=1?r=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(t,192)?r=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(t,292)&&(r=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),r){var n=e.isPrefixUnaryExpression(t.parent)&&40===t.parent.operator,i=(n?"-":"")+"0o"+t.text;return NE(n?t.parent:t,r,i)}}return function(t){if(16&t.numericLiteralFlags||t.text.length<=15||-1!==t.text.indexOf("."))return;var r=+e.getTextOfNode(t);if(r<=Math.pow(2,53)-1&&r+1>r)return;fn(!1,e.createDiagnosticForNode(t,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}(t),!1}function OE(t,r,n,i){if(1048576&r.flags&&2621440&t.flags){var a=ag(r,t);if(a)return a;var o=tc(t);if(o){var s=rg(o,r);if(s)return $_(r,e.map(s,(function(e){return[function(){return So(e)},e.escapedName]})),n,void 0,i)}}}},function(e){e.JSX="JSX",e.IntrinsicElements="IntrinsicElements",e.ElementClass="ElementClass",e.ElementAttributesPropertyNameContainer="ElementAttributesProperty",e.ElementChildrenAttributeNameContainer="ElementChildrenAttribute",e.Element="Element",e.IntrinsicAttributes="IntrinsicAttributes",e.IntrinsicClassAttributes="IntrinsicClassAttributes",e.LibraryManagedAttributes="LibraryManagedAttributes"}(N||(N={})),e.signatureHasRestParameter=J,e.signatureHasLiteralTypes=K}(s||(s={})),function(e){function t(t,r,n,i){if(void 0===t||void 0===r)return t;var a,o=r(t);return o===t?t:void 0!==o?(a=e.isArray(o)?(i||c)(o):o,e.Debug.assertNode(a,n),a):void 0}function r(t,r,n,i,a){if(void 0===t||void 0===r)return t;var o,s,c=t.length;(void 0===i||i<0)&&(i=0),(void 0===a||a>c-i)&&(a=c-i);var u=-1,l=-1;(i>0||a=2&&(s=function(t,r){for(var n,i=0;i0&&p<=157||188===p)return a;var f=u.factory;switch(p){case 78:return e.Debug.type(a),f.updateIdentifier(a,l(a.typeArguments,c,e.isTypeNodeOrTypeParameterDeclaration));case 158:return e.Debug.type(a),f.updateQualifiedName(a,_(a.left,c,e.isEntityName),_(a.right,c,e.isIdentifier));case 159:return e.Debug.type(a),f.updateComputedPropertyName(a,_(a.expression,c,e.isExpression));case 160:return e.Debug.type(a),f.updateTypeParameterDeclaration(a,_(a.name,c,e.isIdentifier),_(a.constraint,c,e.isTypeNode),_(a.default,c,e.isTypeNode));case 161:return e.Debug.type(a),f.updateParameterDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.dotDotDotToken,d,e.isDotDotDotToken),_(a.name,c,e.isBindingName),_(a.questionToken,d,e.isQuestionToken),_(a.type,c,e.isTypeNode),_(a.initializer,c,e.isExpression));case 162:return e.Debug.type(a),f.updateDecorator(a,_(a.expression,c,e.isExpression));case 163:return e.Debug.type(a),f.updatePropertySignature(a,l(a.modifiers,c,e.isModifier),_(a.name,c,e.isPropertyName),_(a.questionToken,d,e.isToken),_(a.type,c,e.isTypeNode));case 164:return e.Debug.type(a),f.updatePropertyDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isPropertyName),_(a.questionToken||a.exclamationToken,d,e.isQuestionOrExclamationToken),_(a.type,c,e.isTypeNode),_(a.initializer,c,e.isExpression));case 165:return e.Debug.type(a),f.updateMethodSignature(a,l(a.modifiers,c,e.isModifier),_(a.name,c,e.isPropertyName),_(a.questionToken,d,e.isQuestionToken),l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.parameters,c,e.isParameterDeclaration),_(a.type,c,e.isTypeNode));case 166:return e.Debug.type(a),f.updateMethodDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.asteriskToken,d,e.isAsteriskToken),_(a.name,c,e.isPropertyName),_(a.questionToken,d,e.isQuestionToken),l(a.typeParameters,c,e.isTypeParameterDeclaration),i(a.parameters,c,u,l),_(a.type,c,e.isTypeNode),o(a.body,c,u,_));case 167:return e.Debug.type(a),f.updateConstructorDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),i(a.parameters,c,u,l),o(a.body,c,u,_));case 168:return e.Debug.type(a),f.updateGetAccessorDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isPropertyName),i(a.parameters,c,u,l),_(a.type,c,e.isTypeNode),o(a.body,c,u,_));case 169:return e.Debug.type(a),f.updateSetAccessorDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isPropertyName),i(a.parameters,c,u,l),o(a.body,c,u,_));case 170:return e.Debug.type(a),f.updateCallSignature(a,l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.parameters,c,e.isParameterDeclaration),_(a.type,c,e.isTypeNode));case 171:return e.Debug.type(a),f.updateConstructSignature(a,l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.parameters,c,e.isParameterDeclaration),_(a.type,c,e.isTypeNode));case 172:return e.Debug.type(a),f.updateIndexSignature(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),l(a.parameters,c,e.isParameterDeclaration),_(a.type,c,e.isTypeNode));case 173:return e.Debug.type(a),f.updateTypePredicateNode(a,_(a.assertsModifier,c,e.isAssertsKeyword),_(a.parameterName,c,e.isIdentifierOrThisTypeNode),_(a.type,c,e.isTypeNode));case 174:return e.Debug.type(a),f.updateTypeReferenceNode(a,_(a.typeName,c,e.isEntityName),l(a.typeArguments,c,e.isTypeNode));case 175:return e.Debug.type(a),f.updateFunctionTypeNode(a,l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.parameters,c,e.isParameterDeclaration),_(a.type,c,e.isTypeNode));case 176:return e.Debug.type(a),f.updateConstructorTypeNode(a,l(a.modifiers,c,e.isModifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.parameters,c,e.isParameterDeclaration),_(a.type,c,e.isTypeNode));case 177:return e.Debug.type(a),f.updateTypeQueryNode(a,_(a.exprName,c,e.isEntityName));case 178:return e.Debug.type(a),f.updateTypeLiteralNode(a,l(a.members,c,e.isTypeElement));case 179:return e.Debug.type(a),f.updateArrayTypeNode(a,_(a.elementType,c,e.isTypeNode));case 180:return e.Debug.type(a),f.updateTupleTypeNode(a,l(a.elements,c,e.isTypeNode));case 181:return e.Debug.type(a),f.updateOptionalTypeNode(a,_(a.type,c,e.isTypeNode));case 182:return e.Debug.type(a),f.updateRestTypeNode(a,_(a.type,c,e.isTypeNode));case 183:return e.Debug.type(a),f.updateUnionTypeNode(a,l(a.types,c,e.isTypeNode));case 184:return e.Debug.type(a),f.updateIntersectionTypeNode(a,l(a.types,c,e.isTypeNode));case 185:return e.Debug.type(a),f.updateConditionalTypeNode(a,_(a.checkType,c,e.isTypeNode),_(a.extendsType,c,e.isTypeNode),_(a.trueType,c,e.isTypeNode),_(a.falseType,c,e.isTypeNode));case 186:return e.Debug.type(a),f.updateInferTypeNode(a,_(a.typeParameter,c,e.isTypeParameterDeclaration));case 196:return e.Debug.type(a),f.updateImportTypeNode(a,_(a.argument,c,e.isTypeNode),_(a.qualifier,c,e.isEntityName),r(a.typeArguments,c,e.isTypeNode),a.isTypeOf);case 193:return e.Debug.type(a),f.updateNamedTupleMember(a,t(a.dotDotDotToken,c,e.isDotDotDotToken),t(a.name,c,e.isIdentifier),t(a.questionToken,c,e.isQuestionToken),t(a.type,c,e.isTypeNode));case 187:return e.Debug.type(a),f.updateParenthesizedType(a,_(a.type,c,e.isTypeNode));case 189:return e.Debug.type(a),f.updateTypeOperatorNode(a,_(a.type,c,e.isTypeNode));case 190:return e.Debug.type(a),f.updateIndexedAccessTypeNode(a,_(a.objectType,c,e.isTypeNode),_(a.indexType,c,e.isTypeNode));case 191:return e.Debug.type(a),f.updateMappedTypeNode(a,_(a.readonlyToken,d,e.isReadonlyKeywordOrPlusOrMinusToken),_(a.typeParameter,c,e.isTypeParameterDeclaration),_(a.nameType,c,e.isTypeNode),_(a.questionToken,d,e.isQuestionOrPlusOrMinusToken),_(a.type,c,e.isTypeNode));case 192:return e.Debug.type(a),f.updateLiteralTypeNode(a,_(a.literal,c,e.isExpression));case 194:return e.Debug.type(a),f.updateTemplateLiteralType(a,_(a.head,c,e.isTemplateHead),l(a.templateSpans,c,e.isTemplateLiteralTypeSpan));case 195:return e.Debug.type(a),f.updateTemplateLiteralTypeSpan(a,_(a.type,c,e.isTypeNode),_(a.literal,c,e.isTemplateMiddleOrTemplateTail));case 197:return e.Debug.type(a),f.updateObjectBindingPattern(a,l(a.elements,c,e.isBindingElement));case 198:return e.Debug.type(a),f.updateArrayBindingPattern(a,l(a.elements,c,e.isArrayBindingElement));case 199:return e.Debug.type(a),f.updateBindingElement(a,_(a.dotDotDotToken,d,e.isDotDotDotToken),_(a.propertyName,c,e.isPropertyName),_(a.name,c,e.isBindingName),_(a.initializer,c,e.isExpression));case 200:return e.Debug.type(a),f.updateArrayLiteralExpression(a,l(a.elements,c,e.isExpression));case 201:return e.Debug.type(a),f.updateObjectLiteralExpression(a,l(a.properties,c,e.isObjectLiteralElementLike));case 202:return 32&a.flags?(e.Debug.type(a),f.updatePropertyAccessChain(a,_(a.expression,c,e.isExpression),_(a.questionDotToken,d,e.isQuestionDotToken),_(a.name,c,e.isMemberName))):(e.Debug.type(a),f.updatePropertyAccessExpression(a,_(a.expression,c,e.isExpression),_(a.name,c,e.isMemberName)));case 203:return 32&a.flags?(e.Debug.type(a),f.updateElementAccessChain(a,_(a.expression,c,e.isExpression),_(a.questionDotToken,d,e.isQuestionDotToken),_(a.argumentExpression,c,e.isExpression))):(e.Debug.type(a),f.updateElementAccessExpression(a,_(a.expression,c,e.isExpression),_(a.argumentExpression,c,e.isExpression)));case 204:return 32&a.flags?(e.Debug.type(a),f.updateCallChain(a,_(a.expression,c,e.isExpression),_(a.questionDotToken,d,e.isQuestionDotToken),l(a.typeArguments,c,e.isTypeNode),l(a.arguments,c,e.isExpression))):(e.Debug.type(a),f.updateCallExpression(a,_(a.expression,c,e.isExpression),l(a.typeArguments,c,e.isTypeNode),l(a.arguments,c,e.isExpression)));case 205:return e.Debug.type(a),f.updateNewExpression(a,_(a.expression,c,e.isExpression),l(a.typeArguments,c,e.isTypeNode),l(a.arguments,c,e.isExpression));case 206:return e.Debug.type(a),f.updateTaggedTemplateExpression(a,_(a.tag,c,e.isExpression),r(a.typeArguments,c,e.isTypeNode),_(a.template,c,e.isTemplateLiteral));case 207:return e.Debug.type(a),f.updateTypeAssertion(a,_(a.type,c,e.isTypeNode),_(a.expression,c,e.isExpression));case 208:return e.Debug.type(a),f.updateParenthesizedExpression(a,_(a.expression,c,e.isExpression));case 209:return e.Debug.type(a),f.updateFunctionExpression(a,l(a.modifiers,c,e.isModifier),_(a.asteriskToken,d,e.isAsteriskToken),_(a.name,c,e.isIdentifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),i(a.parameters,c,u,l),_(a.type,c,e.isTypeNode),o(a.body,c,u,_));case 210:return e.Debug.type(a),f.updateArrowFunction(a,l(a.modifiers,c,e.isModifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),i(a.parameters,c,u,l),_(a.type,c,e.isTypeNode),_(a.equalsGreaterThanToken,d,e.isEqualsGreaterThanToken),o(a.body,c,u,_));case 211:return e.Debug.type(a),f.updateDeleteExpression(a,_(a.expression,c,e.isExpression));case 212:return e.Debug.type(a),f.updateTypeOfExpression(a,_(a.expression,c,e.isExpression));case 213:return e.Debug.type(a),f.updateVoidExpression(a,_(a.expression,c,e.isExpression));case 214:return e.Debug.type(a),f.updateAwaitExpression(a,_(a.expression,c,e.isExpression));case 215:return e.Debug.type(a),f.updatePrefixUnaryExpression(a,_(a.operand,c,e.isExpression));case 216:return e.Debug.type(a),f.updatePostfixUnaryExpression(a,_(a.operand,c,e.isExpression));case 217:return e.Debug.type(a),f.updateBinaryExpression(a,_(a.left,c,e.isExpression),_(a.operatorToken,d,e.isBinaryOperatorToken),_(a.right,c,e.isExpression));case 218:return e.Debug.type(a),f.updateConditionalExpression(a,_(a.condition,c,e.isExpression),_(a.questionToken,d,e.isQuestionToken),_(a.whenTrue,c,e.isExpression),_(a.colonToken,d,e.isColonToken),_(a.whenFalse,c,e.isExpression));case 219:return e.Debug.type(a),f.updateTemplateExpression(a,_(a.head,c,e.isTemplateHead),l(a.templateSpans,c,e.isTemplateSpan));case 220:return e.Debug.type(a),f.updateYieldExpression(a,_(a.asteriskToken,d,e.isAsteriskToken),_(a.expression,c,e.isExpression));case 221:return e.Debug.type(a),f.updateSpreadElement(a,_(a.expression,c,e.isExpression));case 222:return e.Debug.type(a),f.updateClassExpression(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isIdentifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.heritageClauses,c,e.isHeritageClause),l(a.members,c,e.isClassElement));case 224:return e.Debug.type(a),f.updateExpressionWithTypeArguments(a,_(a.expression,c,e.isExpression),l(a.typeArguments,c,e.isTypeNode));case 225:return e.Debug.type(a),f.updateAsExpression(a,_(a.expression,c,e.isExpression),_(a.type,c,e.isTypeNode));case 226:return 32&a.flags?(e.Debug.type(a),f.updateNonNullChain(a,_(a.expression,c,e.isExpression))):(e.Debug.type(a),f.updateNonNullExpression(a,_(a.expression,c,e.isExpression)));case 227:return e.Debug.type(a),f.updateMetaProperty(a,_(a.name,c,e.isIdentifier));case 229:return e.Debug.type(a),f.updateTemplateSpan(a,_(a.expression,c,e.isExpression),_(a.literal,c,e.isTemplateMiddleOrTemplateTail));case 231:return e.Debug.type(a),f.updateBlock(a,l(a.statements,c,e.isStatement));case 233:return e.Debug.type(a),f.updateVariableStatement(a,l(a.modifiers,c,e.isModifier),_(a.declarationList,c,e.isVariableDeclarationList));case 234:return e.Debug.type(a),f.updateExpressionStatement(a,_(a.expression,c,e.isExpression));case 235:return e.Debug.type(a),f.updateIfStatement(a,_(a.expression,c,e.isExpression),_(a.thenStatement,c,e.isStatement,f.liftToBlock),_(a.elseStatement,c,e.isStatement,f.liftToBlock));case 236:return e.Debug.type(a),f.updateDoStatement(a,s(a.statement,c,u),_(a.expression,c,e.isExpression));case 237:return e.Debug.type(a),f.updateWhileStatement(a,_(a.expression,c,e.isExpression),s(a.statement,c,u));case 238:return e.Debug.type(a),f.updateForStatement(a,_(a.initializer,c,e.isForInitializer),_(a.condition,c,e.isExpression),_(a.incrementor,c,e.isExpression),s(a.statement,c,u));case 239:return e.Debug.type(a),f.updateForInStatement(a,_(a.initializer,c,e.isForInitializer),_(a.expression,c,e.isExpression),s(a.statement,c,u));case 240:return e.Debug.type(a),f.updateForOfStatement(a,_(a.awaitModifier,d,e.isAwaitKeyword),_(a.initializer,c,e.isForInitializer),_(a.expression,c,e.isExpression),s(a.statement,c,u));case 241:return e.Debug.type(a),f.updateContinueStatement(a,_(a.label,c,e.isIdentifier));case 242:return e.Debug.type(a),f.updateBreakStatement(a,_(a.label,c,e.isIdentifier));case 243:return e.Debug.type(a),f.updateReturnStatement(a,_(a.expression,c,e.isExpression));case 244:return e.Debug.type(a),f.updateWithStatement(a,_(a.expression,c,e.isExpression),_(a.statement,c,e.isStatement,f.liftToBlock));case 245:return e.Debug.type(a),f.updateSwitchStatement(a,_(a.expression,c,e.isExpression),_(a.caseBlock,c,e.isCaseBlock));case 246:return e.Debug.type(a),f.updateLabeledStatement(a,_(a.label,c,e.isIdentifier),_(a.statement,c,e.isStatement,f.liftToBlock));case 247:return e.Debug.type(a),f.updateThrowStatement(a,_(a.expression,c,e.isExpression));case 248:return e.Debug.type(a),f.updateTryStatement(a,_(a.tryBlock,c,e.isBlock),_(a.catchClause,c,e.isCatchClause),_(a.finallyBlock,c,e.isBlock));case 250:return e.Debug.type(a),f.updateVariableDeclaration(a,_(a.name,c,e.isBindingName),_(a.exclamationToken,d,e.isExclamationToken),_(a.type,c,e.isTypeNode),_(a.initializer,c,e.isExpression));case 251:return e.Debug.type(a),f.updateVariableDeclarationList(a,l(a.declarations,c,e.isVariableDeclaration));case 252:return e.Debug.type(a),f.updateFunctionDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.asteriskToken,d,e.isAsteriskToken),_(a.name,c,e.isIdentifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),i(a.parameters,c,u,l),_(a.type,c,e.isTypeNode),o(a.body,c,u,_));case 253:return e.Debug.type(a),f.updateClassDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isIdentifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.heritageClauses,c,e.isHeritageClause),l(a.members,c,e.isClassElement));case 254:return e.Debug.type(a),f.updateInterfaceDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isIdentifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),l(a.heritageClauses,c,e.isHeritageClause),l(a.members,c,e.isTypeElement));case 255:return e.Debug.type(a),f.updateTypeAliasDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isIdentifier),l(a.typeParameters,c,e.isTypeParameterDeclaration),_(a.type,c,e.isTypeNode));case 256:return e.Debug.type(a),f.updateEnumDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isIdentifier),l(a.members,c,e.isEnumMember));case 257:return e.Debug.type(a),f.updateModuleDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.name,c,e.isModuleName),_(a.body,c,e.isModuleBody));case 258:return e.Debug.type(a),f.updateModuleBlock(a,l(a.statements,c,e.isStatement));case 259:return e.Debug.type(a),f.updateCaseBlock(a,l(a.clauses,c,e.isCaseOrDefaultClause));case 260:return e.Debug.type(a),f.updateNamespaceExportDeclaration(a,_(a.name,c,e.isIdentifier));case 261:return e.Debug.type(a),f.updateImportEqualsDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),a.isTypeOnly,_(a.name,c,e.isIdentifier),_(a.moduleReference,c,e.isModuleReference));case 262:return e.Debug.type(a),f.updateImportDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.importClause,c,e.isImportClause),_(a.moduleSpecifier,c,e.isExpression));case 263:return e.Debug.type(a),f.updateImportClause(a,a.isTypeOnly,_(a.name,c,e.isIdentifier),_(a.namedBindings,c,e.isNamedImportBindings));case 264:return e.Debug.type(a),f.updateNamespaceImport(a,_(a.name,c,e.isIdentifier));case 270:return e.Debug.type(a),f.updateNamespaceExport(a,_(a.name,c,e.isIdentifier));case 265:return e.Debug.type(a),f.updateNamedImports(a,l(a.elements,c,e.isImportSpecifier));case 266:return e.Debug.type(a),f.updateImportSpecifier(a,_(a.propertyName,c,e.isIdentifier),_(a.name,c,e.isIdentifier));case 267:return e.Debug.type(a),f.updateExportAssignment(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),_(a.expression,c,e.isExpression));case 268:return e.Debug.type(a),f.updateExportDeclaration(a,l(a.decorators,c,e.isDecorator),l(a.modifiers,c,e.isModifier),a.isTypeOnly,_(a.exportClause,c,e.isNamedExportBindings),_(a.moduleSpecifier,c,e.isExpression));case 269:return e.Debug.type(a),f.updateNamedExports(a,l(a.elements,c,e.isExportSpecifier));case 271:return e.Debug.type(a),f.updateExportSpecifier(a,_(a.propertyName,c,e.isIdentifier),_(a.name,c,e.isIdentifier));case 273:return e.Debug.type(a),f.updateExternalModuleReference(a,_(a.expression,c,e.isExpression));case 274:return e.Debug.type(a),f.updateJsxElement(a,_(a.openingElement,c,e.isJsxOpeningElement),l(a.children,c,e.isJsxChild),_(a.closingElement,c,e.isJsxClosingElement));case 275:return e.Debug.type(a),f.updateJsxSelfClosingElement(a,_(a.tagName,c,e.isJsxTagNameExpression),l(a.typeArguments,c,e.isTypeNode),_(a.attributes,c,e.isJsxAttributes));case 276:return e.Debug.type(a),f.updateJsxOpeningElement(a,_(a.tagName,c,e.isJsxTagNameExpression),l(a.typeArguments,c,e.isTypeNode),_(a.attributes,c,e.isJsxAttributes));case 277:return e.Debug.type(a),f.updateJsxClosingElement(a,_(a.tagName,c,e.isJsxTagNameExpression));case 278:return e.Debug.type(a),f.updateJsxFragment(a,_(a.openingFragment,c,e.isJsxOpeningFragment),l(a.children,c,e.isJsxChild),_(a.closingFragment,c,e.isJsxClosingFragment));case 281:return e.Debug.type(a),f.updateJsxAttribute(a,_(a.name,c,e.isIdentifier),_(a.initializer,c,e.isStringLiteralOrJsxExpression));case 282:return e.Debug.type(a),f.updateJsxAttributes(a,l(a.properties,c,e.isJsxAttributeLike));case 283:return e.Debug.type(a),f.updateJsxSpreadAttribute(a,_(a.expression,c,e.isExpression));case 284:return e.Debug.type(a),f.updateJsxExpression(a,_(a.expression,c,e.isExpression));case 285:return e.Debug.type(a),f.updateCaseClause(a,_(a.expression,c,e.isExpression),l(a.statements,c,e.isStatement));case 286:return e.Debug.type(a),f.updateDefaultClause(a,l(a.statements,c,e.isStatement));case 287:return e.Debug.type(a),f.updateHeritageClause(a,l(a.types,c,e.isExpressionWithTypeArguments));case 288:return e.Debug.type(a),f.updateCatchClause(a,_(a.variableDeclaration,c,e.isVariableDeclaration),_(a.block,c,e.isBlock));case 289:return e.Debug.type(a),f.updatePropertyAssignment(a,_(a.name,c,e.isPropertyName),_(a.initializer,c,e.isExpression));case 290:return e.Debug.type(a),f.updateShorthandPropertyAssignment(a,_(a.name,c,e.isIdentifier),_(a.objectAssignmentInitializer,c,e.isExpression));case 291:return e.Debug.type(a),f.updateSpreadAssignment(a,_(a.expression,c,e.isExpression));case 292:return e.Debug.type(a),f.updateEnumMember(a,_(a.name,c,e.isPropertyName),_(a.initializer,c,e.isExpression));case 298:return e.Debug.type(a),f.updateSourceFile(a,n(a.statements,c,u));case 340:return e.Debug.type(a),f.updatePartiallyEmittedExpression(a,_(a.expression,c,e.isExpression));case 341:return e.Debug.type(a),f.updateCommaListExpression(a,l(a.elements,c,e.isExpression));default:return a}}}}(s||(s={})),function(e){e.createSourceMapGenerator=function(t,r,n,i,o){var c,u,l=o.extendedDiagnostics?e.performance.createTimer("Source Map","beforeSourcemap","afterSourcemap"):e.performance.nullTimer,d=l.enter,_=l.exit,p=[],f=[],g=new e.Map,m=[],y="",v=0,h=0,D=0,x=0,b=0,S=0,E=!1,T=0,C=0,k=0,A=0,F=0,N=0,P=!1,w=!1,I=!1;return{getSources:function(){return p},addSource:O,setSourceContent:M,addName:L,addMapping:R,appendSourceMap:function(t,r,n,i,o,s){e.Debug.assert(t>=T,"generatedLine cannot backtrack"),e.Debug.assert(r>=0,"generatedCharacter cannot be negative"),d();for(var c,u=[],l=a(n.mappings),p=l.next();!p.done;p=l.next()){var f=p.value;if(s&&(f.generatedLine>s.line||f.generatedLine===s.line&&f.generatedCharacter>s.character))break;if(!o||!(f.generatedLine=T,"generatedLine cannot backtrack"),e.Debug.assert(r>=0,"generatedCharacter cannot be negative"),e.Debug.assert(void 0===n||n>=0,"sourceIndex cannot be negative"),e.Debug.assert(void 0===i||i>=0,"sourceLine cannot be negative"),e.Debug.assert(void 0===a||a>=0,"sourceCharacter cannot be negative"),d(),(function(e,t){return!P||T!==e||C!==t}(t,r)||function(e,t,r){return void 0!==e&&void 0!==t&&void 0!==r&&k===e&&(A>t||A===t&&F>r)}(n,i,a))&&(B(),T=t,C=r,w=!1,I=!1,P=!0),void 0!==n&&void 0!==i&&void 0!==a&&(k=n,A=i,F=a,w=!0,void 0!==o&&(N=o,I=!0)),_()}function B(){if(P&&(!E||v!==T||h!==C||D!==k||x!==A||b!==F||S!==N)){if(d(),v=e.length)return _("Error in decoding base64VLQFormatDecode, past the mapping string"),-1;var o=(t=e.charCodeAt(n))>=65&&t<=90?t-65:t>=97&&t<=122?t-97+26:t>=48&&t<=57?t-48+52:43===t?62:47===t?63:-1;if(-1===o)return _("Invalid character in VLQ"),-1;r=0!=(32&o),a|=(31&o)<>=1:a=-(a>>=1),a}}function o(e){return void 0!==e.sourceIndex&&void 0!==e.sourceLine&&void 0!==e.sourceCharacter}function s(t){t<0?t=1+(-t<<1):t<<=1;var r,n="";do{var i=31&t;(t>>=5)>0&&(i|=32),n+=String.fromCharCode((r=i)>=0&&r<26?65+r:r>=26&&r<52?97+r-26:r>=52&&r<62?48+r-52:62===r?43:63===r?47:e.Debug.fail(r+": not a base64 value"))}while(t>0);return n}function c(e){return void 0!==e.sourceIndex&&void 0!==e.sourcePosition}function u(e,t){return e.generatedPosition===t.generatedPosition&&e.sourceIndex===t.sourceIndex&&e.sourcePosition===t.sourcePosition}function l(t,r){return e.Debug.assert(t.sourceIndex===r.sourceIndex),e.compareValues(t.sourcePosition,r.sourcePosition)}function d(t,r){return e.compareValues(t.generatedPosition,r.generatedPosition)}function _(e){return e.sourcePosition}function p(e){return e.generatedPosition}e.getLineInfo=function(e,t){return{getLineCount:function(){return t.length},getLineText:function(r){return e.substring(t[r],t[r+1])}}},e.tryGetSourceMappingURL=function(e){for(var n=e.getLineCount()-1;n>=0;n--){var i=e.getLineText(n),a=t.exec(i);if(a)return a[1];if(!i.match(r))break}},e.isRawSourceMap=i,e.tryParseRawSourceMap=function(e){try{var t=JSON.parse(e);if(i(t))return t}catch(e){}},e.decodeMappings=a,e.sameMapping=function(e,t){return e===t||e.generatedLine===t.generatedLine&&e.generatedCharacter===t.generatedCharacter&&e.sourceIndex===t.sourceIndex&&e.sourceLine===t.sourceLine&&e.sourceCharacter===t.sourceCharacter&&e.nameIndex===t.nameIndex},e.isSourceMapping=o,e.createDocumentPositionMapper=function(t,r,n){var i,s,f,g=e.getDirectoryPath(n),m=r.sourceRoot?e.getNormalizedAbsolutePath(r.sourceRoot,g):g,y=e.getNormalizedAbsolutePath(r.file,g),v=t.getSourceFileLike(y),h=r.sources.map((function(t){return e.getNormalizedAbsolutePath(t,m)})),D=new e.Map(h.map((function(e,r){return[t.getCanonicalFileName(e),r]})));return{getSourcePosition:function(t){var r=E();if(!e.some(r))return t;var n=e.binarySearchKey(r,t.pos,p,e.compareValues);n<0&&(n=~n);var i=r[n];if(void 0===i||!c(i))return t;return{fileName:h[i.sourceIndex],pos:i.sourcePosition}},getGeneratedPosition:function(r){var n=D.get(t.getCanonicalFileName(r.fileName));if(void 0===n)return r;var i=S(n);if(!e.some(i))return r;var a=e.binarySearchKey(i,r.pos,_,e.compareValues);a<0&&(a=~a);var o=i[a];if(void 0===o||o.sourceIndex!==n)return r;return{fileName:y,pos:o.generatedPosition}}};function x(n){var i,a,s=void 0!==v?e.getPositionOfLineAndCharacter(v,n.generatedLine,n.generatedCharacter,!0):-1;if(o(n)){var c=t.getSourceFileLike(h[n.sourceIndex]);i=r.sources[n.sourceIndex],a=void 0!==c?e.getPositionOfLineAndCharacter(c,n.sourceLine,n.sourceCharacter,!0):-1}return{generatedPosition:s,source:i,sourceIndex:n.sourceIndex,sourcePosition:a,nameIndex:n.nameIndex}}function b(){if(void 0===i){var n=a(r.mappings),o=e.arrayFrom(n,x);void 0!==n.error?(t.log&&t.log("Encountered error while decoding sourcemap: "+n.error),i=e.emptyArray):i=o}return i}function S(t){if(void 0===f){for(var r=[],n=0,i=b();n0&&i!==n.elements.length||!!(n.elements.length-i)&&e.isDefaultImport(t)}function i(t){return!n(t)&&(e.isDefaultImport(t)||!!t.importClause&&e.isNamedImports(t.importClause.namedBindings)&&function(t){return!!t&&!!e.isNamedImports(t)&&e.some(t.elements,r)}(t.importClause.namedBindings))}function a(t,r,n){if(e.isBindingPattern(t.name))for(var i=0,o=t.name.elements;i=63&&e<=77},e.getNonAssignmentOperatorForCompoundAssignment=function(e){switch(e){case 63:return 39;case 64:return 40;case 65:return 41;case 66:return 42;case 67:return 43;case 68:return 44;case 69:return 47;case 70:return 48;case 71:return 49;case 72:return 50;case 73:return 51;case 77:return 52;case 74:return 56;case 75:return 55;case 76:return 60}},e.addPrologueDirectivesAndInitialSuperCall=function(t,r,n,i){if(r.body){var a=r.body.statements,o=t.copyPrologue(a,n,!1,i);if(o===a.length)return o;var s=e.findIndex(a,(function(t){return e.isExpressionStatement(t)&&e.isSuperCall(t.expression)}),o);if(s>-1){for(var c=o;c<=s;c++)n.push(e.visitNode(a[c],i,e.isStatement));return s+1}return o}return 0},e.getProperties=function(t,r,n){return e.filter(t.members,(function(t){return function(t,r,n){return e.isPropertyDeclaration(t)&&(!!t.initializer||!r)&&e.hasStaticModifier(t)===n}(t,r,n)}))},e.isInitializedProperty=function(e){return 164===e.kind&&void 0!==e.initializer},e.isNonStaticMethodOrAccessorWithPrivateName=function(t){return!e.hasStaticModifier(t)&&e.isMethodOrAccessor(t)&&e.isPrivateIdentifier(t.name)}}(s||(s={})),function(e){var t;function r(t,n){var i=e.getTargetOfBindingOrAssignmentElement(t);return e.isBindingOrAssignmentPattern(i)?function(t,n){for(var i=e.getElementsOfBindingOrAssignmentPattern(t),a=0,o=i;a=1)||49152&f.transformFlags||49152&e.getTargetOfBindingOrAssignmentElement(f).transformFlags||e.isComputedPropertyName(g)){u&&(t.emitBindingOrAssignment(t.createObjectBindingOrAssignmentPattern(u),a,c,n),u=void 0);var m=o(t,a,g);e.isComputedPropertyName(g)&&(l=e.append(l,m.argumentExpression)),i(t,f,m,f)}else u=e.append(u,e.visitNode(f,t.visitor))}}u&&t.emitBindingOrAssignment(t.createObjectBindingOrAssignmentPattern(u),a,c,n)}(t,r,l,n,c):e.isArrayBindingOrAssignmentPattern(l)?function(t,r,n,o,c){var u,l,d=e.getElementsOfBindingOrAssignmentPattern(n),_=d.length;if(t.level<1&&t.downlevelIteration)o=s(t,e.setTextRange(t.context.getEmitHelperFactory().createReadHelper(o,_>0&&e.getRestIndicatorOfBindingOrAssignmentElement(d[_-1])?void 0:_),c),!1,c);else if(1!==_&&(t.level<1||0===_)||e.every(d,e.isOmittedExpression)){o=s(t,o,!e.isDeclarationBindingElement(r)||0!==_,c)}for(var p=0;p<_;p++){var f=d[p];if(t.level>=1)if(32768&f.transformFlags||t.hasTransformedPriorElement&&!a(f)){t.hasTransformedPriorElement=!0;var g=t.context.factory.createTempVariable(void 0);t.hoistTempVariables&&t.context.hoistVariableDeclaration(g),l=e.append(l,[g,f]),u=e.append(u,t.createArrayBindingOrAssignmentElement(g))}else u=e.append(u,f);else{if(e.isOmittedExpression(f))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(f)){if(p===_-1){m=t.context.factory.createArraySliceCall(o,p);i(t,f,m,f)}}else{var m=t.context.factory.createElementAccessExpression(o,p);i(t,f,m,f)}}}u&&t.emitBindingOrAssignment(t.createArrayBindingOrAssignmentPattern(u),o,c,n);if(l)for(var y=0,v=l;y0)return!0;var r=e.getFirstConstructorWithBody(t);if(r)return e.forEach(r.parameters,B);return!1})(t)&&(n|=2);e.childIsDecorated(t)&&(n|=4);Ce(t)?n|=8:!function(t){return ke(t)&&e.hasSyntacticModifier(t,512)}(t)?Ae(t)&&(n|=16):n|=32;x<=1&&7&n&&(n|=128);return n}(i,a);128&o&&t.startLexicalEnvironment();var s=i.name||(5&o?_.getGeneratedNameForNode(i):void 0),c=2&o?function(r,n){var i=e.moveRangePastDecorators(r),a=function(r){if(16777216&v.getNodeCheckFlags(r)){0==(1&u)&&(u|=1,t.enableSubstitution(78),l=[]);var n=_.createUniqueName(r.name&&!e.isGeneratedIdentifier(r.name)?e.idText(r.name):"default");return l[e.getOriginalNodeId(r)]=n,y(n),n}}(r),o=_.getLocalName(r,!1,!0),s=e.visitNodes(r.heritageClauses,k,e.isHeritageClause),c=K(r),d=_.createClassExpression(void 0,void 0,n,void 0,s,c);e.setOriginalNode(d,r),e.setTextRange(d,i);var p=_.createVariableStatement(void 0,_.createVariableDeclarationList([_.createVariableDeclaration(o,void 0,void 0,a?_.createAssignment(a,d):d)],1));return e.setOriginalNode(p,r),e.setTextRange(p,i),e.setCommentRange(p,r),p}(i,s):function(t,r,n){var i=128&n?void 0:e.visitNodes(t.modifiers,M,e.isModifier),a=_.createClassDeclaration(void 0,i,r,void 0,e.visitNodes(t.heritageClauses,k,e.isHeritageClause),K(t)),o=e.getEmitFlags(t);1&n&&(o|=32);return e.setTextRange(a,t),e.setOriginalNode(a,t),e.setEmitFlags(a,o),a}(i,s,o),d=[c];if(H(d,i,!1),H(d,i,!0),function(t,r){var n=function(t){var r=function(t){var r=t.decorators,n=V(e.getFirstConstructorWithBody(t));if(!r&&!n)return;return{decorators:r,parameters:n}}(t),n=W(t,t,r);if(!n)return;var i=l&&l[e.getOriginalNodeId(t)],a=_.getLocalName(t,!1,!0),o=p().createDecorateHelper(n,a),s=_.createAssignment(a,i?_.createAssignment(i,o):o);return e.setEmitFlags(s,1536),e.setSourceMapRange(s,e.moveRangePastDecorators(t)),s}(r);n&&t.push(e.setOriginalNode(_.createExpressionStatement(n),r))}(d,i),128&o){var f=e.createTokenRange(e.skipTrivia(r.text,i.members.end),19),g=_.getInternalName(i),m=_.createPartiallyEmittedExpression(g);e.setTextRangeEnd(m,f.end),e.setEmitFlags(m,1536);var h=_.createReturnStatement(m);e.setTextRangePos(h,f.pos),e.setEmitFlags(h,1920),d.push(h),e.insertStatementsAfterStandardPrologue(d,t.endLexicalEnvironment());var D=_.createImmediatelyInvokedArrowFunction(d);e.setEmitFlags(D,33554432);var b=_.createVariableStatement(void 0,_.createVariableDeclarationList([_.createVariableDeclaration(_.getLocalName(i,!1,!1),void 0,void 0,D)]));e.setOriginalNode(b,i),e.setCommentRange(b,i),e.setSourceMapRange(b,e.moveRangePastDecorators(i)),e.startOnNewLine(b),d=[b]}8&o?Ne(d,i):(128&o||2&o)&&(32&o?d.push(_.createExportDefault(_.getLocalName(i,!1,!0))):16&o&&d.push(_.createExternalModuleExport(_.getLocalName(i,!1,!0))));d.length>1&&(d.push(_.createEndOfDeclarationMarker(i)),e.setEmitFlags(c,4194304|e.getEmitFlags(c)));return e.singleOrMany(d)}(o);case 222:return function(r){if(!J(r))return e.visitEachChild(r,k,t);var n=_.createClassExpression(void 0,void 0,r.name,void 0,e.visitNodes(r.heritageClauses,k,e.isHeritageClause),K(r));return e.setOriginalNode(n,r),e.setTextRange(n,r),n}(o);case 287:return function(r){if(116===r.token)return;return e.visitEachChild(r,k,t)}(o);case 224:return function(t){return _.updateExpressionWithTypeArguments(t,e.visitNode(t.expression,k,e.isLeftHandSideExpression),void 0)}(o);case 166:return function(r){if(!se(r))return;var n=_.updateMethodDeclaration(r,void 0,e.visitNodes(r.modifiers,M,e.isModifier),r.asteriskToken,oe(r),void 0,void 0,e.visitParameterList(r.parameters,k,t),void 0,e.visitFunctionBody(r.body,k,t));n!==r&&(e.setCommentRange(n,r),e.setSourceMapRange(n,e.moveRangePastDecorators(r)));return n}(o);case 168:return function(r){if(!de(r))return;var n=_.updateGetAccessorDeclaration(r,void 0,e.visitNodes(r.modifiers,M,e.isModifier),oe(r),e.visitParameterList(r.parameters,k,t),void 0,e.visitFunctionBody(r.body,k,t)||_.createBlock([]));n!==r&&(e.setCommentRange(n,r),e.setSourceMapRange(n,e.moveRangePastDecorators(r)));return n}(o);case 169:return function(r){if(!de(r))return;var n=_.updateSetAccessorDeclaration(r,void 0,e.visitNodes(r.modifiers,M,e.isModifier),oe(r),e.visitParameterList(r.parameters,k,t),e.visitFunctionBody(r.body,k,t)||_.createBlock([]));n!==r&&(e.setCommentRange(n,r),e.setSourceMapRange(n,e.moveRangePastDecorators(r)));return n}(o);case 252:return function(r){if(!se(r))return _.createNotEmittedStatement(r);var n=_.updateFunctionDeclaration(r,void 0,e.visitNodes(r.modifiers,M,e.isModifier),r.asteriskToken,r.name,void 0,e.visitParameterList(r.parameters,k,t),void 0,e.visitFunctionBody(r.body,k,t)||_.createBlock([]));if(Ce(r)){var i=[n];return Ne(i,r),i}return n}(o);case 209:return function(r){if(!se(r))return _.createOmittedExpression();return _.updateFunctionExpression(r,e.visitNodes(r.modifiers,M,e.isModifier),r.asteriskToken,r.name,void 0,e.visitParameterList(r.parameters,k,t),void 0,e.visitFunctionBody(r.body,k,t)||_.createBlock([]))}(o);case 210:return function(r){return _.updateArrowFunction(r,e.visitNodes(r.modifiers,M,e.isModifier),void 0,e.visitParameterList(r.parameters,k,t),void 0,r.equalsGreaterThanToken,e.visitFunctionBody(r.body,k,t))}(o);case 161:return function(t){if(e.parameterIsThisKeyword(t))return;var r=_.updateParameterDeclaration(t,void 0,void 0,t.dotDotDotToken,e.visitNode(t.name,k,e.isBindingName),void 0,void 0,e.visitNode(t.initializer,k,e.isExpression));r!==t&&(e.setCommentRange(r,t),e.setTextRange(r,e.moveRangePastModifiers(t)),e.setSourceMapRange(r,e.moveRangePastModifiers(t)),e.setEmitFlags(r.name,32));return r}(o);case 208:return function(n){var i=e.skipOuterExpressions(n.expression,-7);if(e.isAssertionExpression(i)){var a=e.visitNode(n.expression,k,e.isExpression);return e.length(e.getLeadingCommentRangesOfNode(a,r))?_.updateParenthesizedExpression(n,a):_.createPartiallyEmittedExpression(a,n)}return e.visitEachChild(n,k,t)}(o);case 207:case 225:return function(t){var r=e.visitNode(t.expression,k,e.isExpression);return _.createPartiallyEmittedExpression(r,t)}(o);case 204:return function(t){return _.updateCallExpression(t,e.visitNode(t.expression,k,e.isExpression),void 0,e.visitNodes(t.arguments,k,e.isExpression))}(o);case 205:return function(t){return _.updateNewExpression(t,e.visitNode(t.expression,k,e.isExpression),void 0,e.visitNodes(t.arguments,k,e.isExpression))}(o);case 206:return function(t){return _.updateTaggedTemplateExpression(t,e.visitNode(t.tag,k,e.isExpression),void 0,e.visitNode(t.template,k,e.isExpression))}(o);case 226:return function(t){var r=e.visitNode(t.expression,k,e.isLeftHandSideExpression);return _.createPartiallyEmittedExpression(r,t)}(o);case 256:return function(t){if(!function(t){return!e.isEnumConst(t)||e.shouldPreserveConstEnums(h)}(t))return _.createNotEmittedStatement(t);var n=[],o=2,s=ye(n,t);s&&(b===e.ModuleKind.System&&a===r||(o|=512));var c=Ie(t),u=Oe(t),l=e.hasSyntacticModifier(t,1)?_.getExternalModuleOrNamespaceExportName(i,t,!1,!0):_.getLocalName(t,!1,!0),d=_.createLogicalOr(l,_.createAssignment(l,_.createObjectLiteralExpression()));if(fe(t)){var p=_.getLocalName(t,!1,!0);d=_.createAssignment(p,d)}var g=_.createExpressionStatement(_.createCallExpression(_.createFunctionExpression(void 0,void 0,void 0,void 0,[_.createParameterDeclaration(void 0,void 0,void 0,c)],void 0,function(t,r){var n=i;i=r;var a=[];f();var o=e.map(t.members,pe);return e.insertStatementsAfterStandardPrologue(a,m()),e.addRange(a,o),i=n,_.createBlock(e.setTextRange(_.createNodeArray(a),t.members),!0)}(t,u)),void 0,[d]));e.setOriginalNode(g,t),s&&(e.setSyntheticLeadingComments(g,void 0),e.setSyntheticTrailingComments(g,void 0));return e.setTextRange(g,t),e.addEmitFlags(g,o),n.push(g),n.push(_.createEndOfDeclarationMarker(t)),n}(o);case 233:return function(r){if(Ce(r)){var n=e.getInitializedVariables(r.declarationList);if(0===n.length)return;return e.setTextRange(_.createExpressionStatement(_.inlineExpressions(e.map(n,_e))),r)}return e.visitEachChild(r,k,t)}(o);case 250:return function(t){return _.updateVariableDeclaration(t,e.visitNode(t.name,k,e.isBindingName),void 0,void 0,e.visitNode(t.initializer,k,e.isExpression))}(o);case 257:return ve(o);case 261:return Te(o);case 275:return function(t){return _.updateJsxSelfClosingElement(t,e.visitNode(t.tagName,k,e.isJsxTagNameExpression),void 0,e.visitNode(t.attributes,k,e.isJsxAttributes))}(o);case 276:return function(t){return _.updateJsxOpeningElement(t,e.visitNode(t.tagName,k,e.isJsxTagNameExpression),void 0,e.visitNode(t.attributes,k,e.isJsxAttributes))}(o);default:return e.visitEachChild(o,k,t)}}function R(r){var n=e.getStrictOptionValue(h,"alwaysStrict")&&!(e.isExternalModule(r)&&b>=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(r);return _.updateSourceFile(r,e.visitLexicalEnvironment(r.statements,F,t,0,n))}function B(e){return void 0!==e.decorators&&e.decorators.length>0}function j(e){return!!(4096&e.transformFlags)}function J(t){return e.some(t.decorators)||e.some(t.typeParameters)||e.some(t.heritageClauses,j)||e.some(t.members,j)}function K(t){var r=[],n=e.getFirstConstructorWithBody(t),i=n&&e.filter(n.parameters,(function(t){return e.isParameterPropertyDeclaration(t,n)}));if(i)for(var a=0,o=i;a0&&e.parameterIsThisKeyword(n[0]),a=i?1:0,o=i?n.length-1:n.length,s=0;s0?164===r.kind?_.createVoidZero():_.createNull():void 0,s=p().createDecorateHelper(n,i,a,o);return e.setTextRange(s,e.moveRangePastDecorators(r)),e.setEmitFlags(s,1536),s}}function Y(t){return e.visitNode(t.expression,k,e.isExpression)}function X(t,r){var n;if(t){n=[];for(var i=0,a=t;id&&(g||e.addRange(_,e.visitNodes(n.body.statements,D,e.isStatement,d,p-d)),d=p)}var f=s.createThis();(function(t,r,n){if(!m||!e.some(r))return;var i=M().weakSetName;e.Debug.assert(i,"weakSetName should be set in private identifier environment"),t.push(s.createExpressionStatement(function(t,r){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(r,"add"),void 0,[t])}(n,i)))})(_,o,f),I(_,a,f),n&&e.addRange(_,e.visitNodes(n.body.statements,D,e.isStatement,d));return _=s.mergeLexicalEnvironment(_,u()),e.setTextRange(s.createBlock(e.setTextRange(s.createNodeArray(_),n?n.body.statements:t.members),!0),n?n.body:void 0)}(t,i,n);if(!c)return;return e.startOnNewLine(e.setOriginalNode(e.setTextRange(s.createConstructorDeclaration(void 0,void 0,null!=o?o:[],c),i||t),i))}(t,n);return _&&d.push(_),e.addRange(d,e.visitNodes(t.members,b,e.isClassElement)),e.setTextRange(s.createNodeArray(d),t.members)}function w(t){return!e.hasStaticModifier(t)&&!e.hasSyntacticModifier(e.getOriginalNode(t),128)&&(g?f<99:e.isInitializedProperty(t)||m&&e.isPrivateIdentifierClassElementDeclaration(t))}function I(t,r,n){for(var i=0,a=r;i=0;--t){var r,n=h[t];if(n)if(r=n.identifiers.get(e.escapedText))return r}}function K(t){var n=s.getGeneratedNameForNode(t),i=J(t.name);if(!i)return e.visitEachChild(t,D,r);var a=t.expression;return(e.isThisProperty(t)||e.isSuperProperty(t)||!e.isSimpleCopiableExpression(t.expression))&&(a=s.createTempVariable(c,!0),L().push(s.createBinaryExpression(a,62,t.expression))),s.createPropertyAccessExpression(s.createParenthesizedExpression(s.createObjectLiteralExpression([s.createSetAccessorDeclaration(void 0,void 0,"value",[s.createParameterDeclaration(void 0,void 0,void 0,n,void 0,void 0,void 0)],s.createBlock([s.createExpressionStatement(A(i,a,n,62))]))])),"value")}function z(t){var r=e.getTargetOfBindingOrAssignmentElement(t);if(r&&e.isPrivateIdentifierPropertyAccessExpression(r)){var n=K(r);return e.isAssignmentExpression(t)?s.updateBinaryExpression(t,n,t.operatorToken,e.visitNode(t.right,D,e.isExpression)):e.isSpreadElement(t)?s.updateSpreadElement(t,n):n}return e.visitNode(t,x)}function U(t){if(e.isPropertyAssignment(t)){var r=e.getTargetOfBindingOrAssignmentElement(t);if(r&&e.isPrivateIdentifierPropertyAccessExpression(r)){var n=e.getInitializerOfBindingOrAssignmentElement(t),i=K(r);return s.updatePropertyAssignment(t,e.visitNode(t.name,D),n?s.createAssignment(i,e.visitNode(n,D)):i)}return s.updatePropertyAssignment(t,e.visitNode(t.name,D),e.visitNode(t.initializer,x))}return e.visitNode(t,D)}}}(s||(s={})),function(e){var r,n;function i(t,r,n,i){var a=0!=(4096&r.getNodeCheckFlags(n)),o=[];return i.forEach((function(r,n){var i=e.unescapeLeadingUnderscores(n),s=[];s.push(t.createPropertyAssignment("get",t.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(t.createPropertyAccessExpression(e.setEmitFlags(t.createSuper(),4),i),4)))),a&&s.push(t.createPropertyAssignment("set",t.createArrowFunction(void 0,void 0,[t.createParameterDeclaration(void 0,void 0,void 0,"v",void 0,void 0,void 0)],void 0,void 0,t.createAssignment(e.setEmitFlags(t.createPropertyAccessExpression(e.setEmitFlags(t.createSuper(),4),i),4),t.createIdentifier("v"))))),o.push(t.createPropertyAssignment(i,t.createObjectLiteralExpression(s)))})),t.createVariableStatement(void 0,t.createVariableDeclarationList([t.createVariableDeclaration(t.createUniqueName("_super",48),void 0,void 0,t.createCallExpression(t.createPropertyAccessExpression(t.createIdentifier("Object"),"create"),void 0,[t.createNull(),t.createObjectLiteralExpression(o,!0)]))],2))}!function(e){e[e.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"}(r||(r={})),function(e){e[e.NonTopLevel=1]="NonTopLevel",e[e.HasLexicalThis=2]="HasLexicalThis"}(n||(n={})),e.transformES2017=function(r){var n,a,o,s,c=r.factory,u=r.getEmitHelperFactory,l=r.resumeLexicalEnvironment,d=r.endLexicalEnvironment,_=r.hoistVariableDeclaration,p=r.getEmitResolver(),f=r.getCompilerOptions(),g=e.getEmitScriptTarget(f),m=0,y=[],v=0,h=r.onEmitNode,D=r.onSubstituteNode;return r.onEmitNode=function(t,r,i){if(1&n&&function(e){var t=e.kind;return 253===t||167===t||166===t||168===t||169===t}(r)){var a=6144&p.getNodeCheckFlags(r);if(a!==m){var o=m;return m=a,h(t,r,i),void(m=o)}}else if(n&&y[e.getNodeId(r)]){o=m;return m=0,h(t,r,i),void(m=o)}h(t,r,i)},r.onSubstituteNode=function(r,n){if(n=D(r,n),1===r&&m)return function(r){switch(r.kind){case 202:return J(r);case 203:return K(r);case 204:return function(r){var n=r.expression;if(e.isSuperProperty(n)){var i=e.isPropertyAccessExpression(n)?J(n):K(n);return c.createCallExpression(c.createPropertyAccessExpression(i,"call"),void 0,t([c.createThis()],r.arguments))}return r}(r)}return r}(n);return n},e.chainBundle(r,(function(t){if(t.isDeclarationFile)return t;x(1,!1),x(2,!e.isEffectiveStrictModeSourceFile(t,f));var n=e.visitEachChild(t,C,r);return e.addEmitHelpers(n,r.readEmitHelpers()),n}));function x(e,t){v=t?v|e:v&~e}function b(e){return 0!=(v&e)}function S(){return b(2)}function E(e,t,r){var n=e&~v;if(n){x(n,!0);var i=t(r);return x(n,!1),i}return t(r)}function T(t){return e.visitEachChild(t,C,r)}function C(t){if(0==(128&t.transformFlags))return t;switch(t.kind){case 129:return;case 214:return function(t){if(!b(1))return e.visitEachChild(t,C,r);return e.setOriginalNode(e.setTextRange(c.createYieldExpression(void 0,e.visitNode(t.expression,C,e.isExpression)),t),t)}(t);case 166:return E(3,A,t);case 252:return E(3,F,t);case 209:return E(3,N,t);case 210:return E(1,P,t);case 202:return o&&e.isPropertyAccessExpression(t)&&105===t.expression.kind&&o.add(t.name.escapedText),e.visitEachChild(t,C,r);case 203:return o&&105===t.expression.kind&&(s=!0),e.visitEachChild(t,C,r);case 168:case 169:case 167:case 253:case 222:return E(3,T,t);default:return e.visitEachChild(t,C,r)}}function k(t){if(e.isNodeWithPossibleHoistedDeclaration(t))switch(t.kind){case 233:return function(t){if(I(t.declarationList)){var n=O(t.declarationList,!1);return n?c.createExpressionStatement(n):void 0}return e.visitEachChild(t,C,r)}(t);case 238:return function(t){var n=t.initializer;return c.updateForStatement(t,I(n)?O(n,!1):e.visitNode(t.initializer,C,e.isForInitializer),e.visitNode(t.condition,C,e.isExpression),e.visitNode(t.incrementor,C,e.isExpression),e.visitIterationBody(t.statement,k,r))}(t);case 239:return function(t){return c.updateForInStatement(t,I(t.initializer)?O(t.initializer,!0):e.visitNode(t.initializer,C,e.isForInitializer),e.visitNode(t.expression,C,e.isExpression),e.visitIterationBody(t.statement,k,r))}(t);case 240:return function(t){return c.updateForOfStatement(t,e.visitNode(t.awaitModifier,C,e.isToken),I(t.initializer)?O(t.initializer,!0):e.visitNode(t.initializer,C,e.isForInitializer),e.visitNode(t.expression,C,e.isExpression),e.visitIterationBody(t.statement,k,r))}(t);case 288:return function(t){var n,i=new e.Set;if(w(t.variableDeclaration,i),i.forEach((function(t,r){a.has(r)&&(n||(n=new e.Set(a)),n.delete(r))})),n){var o=a;a=n;var s=e.visitEachChild(t,k,r);return a=o,s}return e.visitEachChild(t,k,r)}(t);case 231:case 245:case 259:case 285:case 286:case 248:case 236:case 237:case 235:case 244:case 246:return e.visitEachChild(t,k,r);default:return e.Debug.assertNever(t,"Unhandled node.")}return C(t)}function A(t){return c.updateMethodDeclaration(t,void 0,e.visitNodes(t.modifiers,C,e.isModifier),t.asteriskToken,t.name,void 0,void 0,e.visitParameterList(t.parameters,C,r),void 0,2&e.getFunctionFlags(t)?B(t):e.visitFunctionBody(t.body,C,r))}function F(t){return c.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,C,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,C,r),void 0,2&e.getFunctionFlags(t)?B(t):e.visitFunctionBody(t.body,C,r))}function N(t){return c.updateFunctionExpression(t,e.visitNodes(t.modifiers,C,e.isModifier),t.asteriskToken,t.name,void 0,e.visitParameterList(t.parameters,C,r),void 0,2&e.getFunctionFlags(t)?B(t):e.visitFunctionBody(t.body,C,r))}function P(t){return c.updateArrowFunction(t,e.visitNodes(t.modifiers,C,e.isModifier),void 0,e.visitParameterList(t.parameters,C,r),void 0,t.equalsGreaterThanToken,2&e.getFunctionFlags(t)?B(t):e.visitFunctionBody(t.body,C,r))}function w(t,r){var n=t.name;if(e.isIdentifier(n))r.add(n.escapedText);else for(var i=0,a=n.elements;i=2&&6144&p.getNodeCheckFlags(t);if(P&&(0==(1&n)&&(n|=1,r.enableSubstitution(204),r.enableSubstitution(202),r.enableSubstitution(203),r.enableEmitNotification(253),r.enableEmitNotification(166),r.enableEmitNotification(168),r.enableEmitNotification(169),r.enableEmitNotification(167),r.enableEmitNotification(233)),o.size)){var I=i(c,p,t,o);y[e.getNodeId(I)]=!0,e.insertStatementsAfterStandardPrologue(F,[I])}var O=c.createBlock(F,!0);e.setTextRange(O,t.body),P&&s&&(4096&p.getNodeCheckFlags(t)?e.addEmitHelper(O,e.advancedAsyncSuperHelper):2048&p.getNodeCheckFlags(t)&&e.addEmitHelper(O,e.asyncSuperHelper)),b=O}return a=h,m||(o=E,s=T),b}function j(t,r){return e.isBlock(t)?c.updateBlock(t,e.visitNodes(t.statements,k,e.isStatement,r)):c.converters.convertToFunctionBlock(e.visitNode(t,k,e.isConciseBody))}function J(t){return 105===t.expression.kind?e.setTextRange(c.createPropertyAccessExpression(c.createUniqueName("_super",48),t.name),t):t}function K(t){return 105===t.expression.kind?(r=t.argumentExpression,n=t,4096&m?e.setTextRange(c.createPropertyAccessExpression(c.createCallExpression(c.createUniqueName("_superIndex",48),void 0,[r]),"value"),n):e.setTextRange(c.createCallExpression(c.createUniqueName("_superIndex",48),void 0,[r]),n)):t;var r,n}},e.createSuperAccessVariableStatement=i}(s||(s={})),function(e){var r,n;!function(e){e[e.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"}(r||(r={})),function(e){e[e.None=0]="None",e[e.HasLexicalThis=1]="HasLexicalThis",e[e.IterationContainer=2]="IterationContainer",e[e.AncestorFactsMask=3]="AncestorFactsMask",e[e.SourceFileIncludes=1]="SourceFileIncludes",e[e.SourceFileExcludes=2]="SourceFileExcludes",e[e.StrictModeSourceFileIncludes=0]="StrictModeSourceFileIncludes",e[e.ClassOrFunctionIncludes=1]="ClassOrFunctionIncludes",e[e.ClassOrFunctionExcludes=2]="ClassOrFunctionExcludes",e[e.ArrowFunctionIncludes=0]="ArrowFunctionIncludes",e[e.ArrowFunctionExcludes=2]="ArrowFunctionExcludes",e[e.IterationStatementIncludes=2]="IterationStatementIncludes",e[e.IterationStatementExcludes=0]="IterationStatementExcludes"}(n||(n={})),e.transformES2018=function(r){var n=r.factory,i=r.getEmitHelperFactory,a=r.resumeLexicalEnvironment,o=r.endLexicalEnvironment,s=r.hoistVariableDeclaration,c=r.getEmitResolver(),u=r.getCompilerOptions(),l=e.getEmitScriptTarget(u),d=r.onEmitNode;r.onEmitNode=function(t,r,n){if(1&p&&function(e){var t=e.kind;return 253===t||167===t||166===t||168===t||169===t}(r)){var i=6144&c.getNodeCheckFlags(r);if(i!==D){var a=D;return D=i,d(t,r,n),void(D=a)}}else if(p&&b[e.getNodeId(r)]){a=D;return D=0,d(t,r,n),void(D=a)}d(t,r,n)};var _=r.onSubstituteNode;r.onSubstituteNode=function(r,i){if(i=_(r,i),1===r&&D)return function(r){switch(r.kind){case 202:return W(r);case 203:return H(r);case 204:return function(r){var i=r.expression;if(e.isSuperProperty(i)){var a=e.isPropertyAccessExpression(i)?W(i):H(i);return n.createCallExpression(n.createPropertyAccessExpression(a,"call"),void 0,t([n.createThis()],r.arguments))}return r}(r)}return r}(i);return i};var p,f,g,m,y,v,h=!1,D=0,x=0,b=[];return e.chainBundle(r,(function(t){if(t.isDeclarationFile)return t;g=t;var i=function(t){var i=S(2,e.isEffectiveStrictModeSourceFile(t,u)?0:1);h=!1;var a=e.visitEachChild(t,C,r),o=e.concatenate(a.statements,m&&[n.createVariableStatement(void 0,n.createVariableDeclarationList(m))]),s=n.updateSourceFile(a,e.setTextRange(n.createNodeArray(o),t.statements));return E(i),s}(t);return e.addEmitHelpers(i,r.readEmitHelpers()),g=void 0,m=void 0,i}));function S(e,t){var r=x;return x=3&(x&~e|t),r}function E(e){x=e}function T(t){m=e.append(m,n.createVariableDeclaration(t))}function C(e){return P(e,!1)}function k(e){return P(e,!0)}function A(e){if(129!==e.kind)return e}function F(e,t,r,n){if(function(e,t){return x!==(x&~e|t)}(r,n)){var i=S(r,n),a=e(t);return E(i),a}return e(t)}function N(t){return e.visitEachChild(t,C,r)}function P(a,o){if(0==(64&a.transformFlags))return a;switch(a.kind){case 214:return function(t){if(2&f&&1&f)return e.setOriginalNode(e.setTextRange(n.createYieldExpression(void 0,i().createAwaitHelper(e.visitNode(t.expression,C,e.isExpression))),t),t);return e.visitEachChild(t,C,r)}(a);case 220:return function(t){if(2&f&&1&f){if(t.asteriskToken){var a=e.visitNode(e.Debug.assertDefined(t.expression),C,e.isExpression);return e.setOriginalNode(e.setTextRange(n.createYieldExpression(void 0,i().createAwaitHelper(n.updateYieldExpression(t,t.asteriskToken,e.setTextRange(i().createAsyncDelegatorHelper(e.setTextRange(i().createAsyncValuesHelper(a),a)),a)))),t),t)}return e.setOriginalNode(e.setTextRange(n.createYieldExpression(void 0,M(t.expression?e.visitNode(t.expression,C,e.isExpression):n.createVoidZero())),t),t)}return e.visitEachChild(t,C,r)}(a);case 243:return function(t){if(2&f&&1&f)return n.updateReturnStatement(t,M(t.expression?e.visitNode(t.expression,C,e.isExpression):n.createVoidZero()));return e.visitEachChild(t,C,r)}(a);case 246:return function(t){if(2&f){var i=e.unwrapInnermostStatementOfLabel(t);return 240===i.kind&&i.awaitModifier?O(i,t):n.restoreEnclosingLabel(e.visitNode(i,C,e.isStatement,n.liftToBlock),t)}return e.visitEachChild(t,C,r)}(a);case 201:return function(t){if(32768&t.transformFlags){var a=function(t){for(var r,i=[],a=0,o=t;a1){for(var s=1;s=2&&6144&c.getNodeCheckFlags(t);if(g){0==(1&p)&&(p|=1,r.enableSubstitution(204),r.enableSubstitution(202),r.enableSubstitution(203),r.enableEmitNotification(253),r.enableEmitNotification(166),r.enableEmitNotification(168),r.enableEmitNotification(169),r.enableEmitNotification(167),r.enableEmitNotification(233));var m=e.createSuperAccessVariableStatement(n,c,t,y);b[e.getNodeId(m)]=!0,e.insertStatementsAfterStandardPrologue(s,[m])}s.push(f),e.insertStatementsAfterStandardPrologue(s,o());var h=n.updateBlock(t.body,s);return g&&v&&(4096&c.getNodeCheckFlags(t)?e.addEmitHelper(h,e.advancedAsyncSuperHelper):2048&c.getNodeCheckFlags(t)&&e.addEmitHelper(h,e.asyncSuperHelper)),y=d,v=_,h}function V(t){var r;a();var i=0,s=[],c=null!==(r=e.visitNode(t.body,C,e.isConciseBody))&&void 0!==r?r:n.createBlock([]);e.isBlock(c)&&(i=n.copyPrologue(c.statements,s,!1,C)),e.addRange(s,q(void 0,t));var u=o();if(i>0||e.some(s)||e.some(u)){var l=n.converters.convertToFunctionBlock(c,!0);return e.insertStatementsAfterStandardPrologue(s,u),e.addRange(s,l.statements.slice(i)),n.updateBlock(l,e.setTextRange(n.createNodeArray(s),l.statements))}return c}function q(t,i){for(var a=0,o=i.parameters;a1?"jsxs":"jsx"}(e))}function l(t){var r,n,o="createElement"===t?i.importSpecifier:e.getJSXRuntimeImport(i.importSpecifier,s),c=null===(n=null===(r=i.utilizedImplicitRuntimeImports)||void 0===r?void 0:r.get(o))||void 0===n?void 0:n.get(t);if(c)return c.name;i.utilizedImplicitRuntimeImports||(i.utilizedImplicitRuntimeImports=e.createMap());var u=i.utilizedImplicitRuntimeImports.get(o);u||(u=e.createMap(),i.utilizedImplicitRuntimeImports.set(o,u));var l=a.createUniqueName("_"+t,112),d=a.createImportSpecifier(a.createIdentifier(t),l);return l.generatedImportReference=d,u.set(t,d),l}function d(t){return 2&t.transformFlags?function(t){switch(t.kind){case 274:return f(t,!1);case 275:return g(t,!1);case 278:return m(t,!1);case 284:return N(t);default:return e.visitEachChild(t,d,r)}}(t):t}function _(t){switch(t.kind){case 11:return function(t){var r=function(t){for(var r,n=0,i=-1,a=0;a1?a.createTrue():a.createFalse());var f=e.getLineAndCharacterOfPosition(p,d.pos);_.push(a.createObjectLiteralExpression([a.createPropertyAssignment("fileName",c()),a.createPropertyAssignment("lineNumber",a.createNumericLiteral(f.line+1)),a.createPropertyAssignment("columnNumber",a.createNumericLiteral(f.character+1))])),_.push(a.createThis())}}var g=e.setTextRange(a.createCallExpression(u(o),void 0,_),d);return l&&e.startOnNewLine(g),g}function D(t,c,u,d){var p,f=F(t),g=t.attributes.properties;if(0===g.length)p=a.createNull();else{var m=s.target;if(m&&m>=5)p=a.createObjectLiteralExpression(e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,(function(t,r){return r?e.map(t,S):e.map(t,T)}))));else{var y=e.flatten(e.spanMap(g,e.isJsxSpreadAttribute,(function(t,r){return r?e.map(t,E):a.createObjectLiteralExpression(e.map(t,T))})));e.isJsxSpreadAttribute(g[0])&&y.unshift(a.createObjectLiteralExpression()),(p=e.singleOrUndefined(y))||(p=o().createAssignHelper(y))}}var v=void 0===i.importSpecifier?e.createJsxFactoryExpression(a,r.getEmitResolver().getJsxFactoryEntity(n),s.reactNamespace,t):l("createElement"),h=e.createExpressionForJsxElement(a,v,f,p,e.mapDefined(c,_),d);return u&&e.startOnNewLine(h),h}function x(t,r,n,i){var o;if(r&&r.length){var s=y(r);s&&(o=s)}return h(l("Fragment"),o||a.createObjectLiteralExpression([]),void 0,e.length(e.getSemanticJsxChildren(r)),n,i)}function b(t,i,o,c){var u=e.createExpressionForJsxFragment(a,r.getEmitResolver().getJsxFactoryEntity(n),r.getEmitResolver().getJsxFragmentFactoryEntity(n),s.reactNamespace,e.mapDefined(i,_),t,c);return o&&e.startOnNewLine(u),u}function S(t){return a.createSpreadAssignment(e.visitNode(t.expression,d,e.isExpression))}function E(t){return e.visitNode(t.expression,d,e.isExpression)}function T(t){var r=function(t){var r=t.name,n=e.idText(r);return/^[A-Za-z_]\w*$/.test(n)?r:a.createStringLiteral(n)}(t),n=C(t.initializer);return a.createPropertyAssignment(r,n)}function C(t){if(void 0===t)return a.createTrue();if(10===t.kind){var r=void 0!==t.singleQuote?t.singleQuote:!e.isStringDoubleQuoted(t,n),i=a.createStringLiteral((o=t.text,((s=A(o))===o?void 0:s)||t.text),r);return e.setTextRange(i,t)}return 284===t.kind?void 0===t.expression?a.createTrue():e.visitNode(t.expression,d,e.isExpression):e.Debug.failBadSyntaxKind(t);var o,s}function k(e,t){var r=A(t);return void 0===e?r:e+" "+r}function A(r){return r.replace(/&((#((\d+)|x([\da-fA-F]+)))|(\w+));/g,(function(r,n,i,a,o,s,c){if(o)return e.utf16EncodeAsString(parseInt(o,10));if(s)return e.utf16EncodeAsString(parseInt(s,16));var u=t.get(c);return u?e.utf16EncodeAsString(u):r}))}function F(t){if(274===t.kind)return F(t.openingElement);var r=t.tagName;return e.isIdentifier(r)&&e.isIntrinsicJsxName(r.escapedText)?a.createStringLiteral(e.idText(r)):e.createExpressionFromEntityName(a,r)}function N(t){return e.visitNode(t.expression,d,e.isExpression)}};var t=new e.Map(e.getEntries({quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830}))}(s||(s={})),function(e){e.transformES2016=function(t){var r=t.factory,n=t.hoistVariableDeclaration;return e.chainBundle(t,(function(r){if(r.isDeclarationFile)return r;return e.visitEachChild(r,i,t)}));function i(a){if(0==(256&a.transformFlags))return a;switch(a.kind){case 217:return function(a){switch(a.operatorToken.kind){case 66:return function(t){var a,o,s=e.visitNode(t.left,i,e.isExpression),c=e.visitNode(t.right,i,e.isExpression);if(e.isElementAccessExpression(s)){var u=r.createTempVariable(n),l=r.createTempVariable(n);a=e.setTextRange(r.createElementAccessExpression(e.setTextRange(r.createAssignment(u,s.expression),s.expression),e.setTextRange(r.createAssignment(l,s.argumentExpression),s.argumentExpression)),s),o=e.setTextRange(r.createElementAccessExpression(u,l),s)}else if(e.isPropertyAccessExpression(s)){u=r.createTempVariable(n);a=e.setTextRange(r.createPropertyAccessExpression(e.setTextRange(r.createAssignment(u,s.expression),s.expression),s.name),s),o=e.setTextRange(r.createPropertyAccessExpression(u,s.name),s)}else a=s,o=s;return e.setTextRange(r.createAssignment(a,e.setTextRange(r.createGlobalMethodCall("Math","pow",[o,c]),t)),t)}(a);case 42:return function(t){var n=e.visitNode(t.left,i,e.isExpression),a=e.visitNode(t.right,i,e.isExpression);return e.setTextRange(r.createGlobalMethodCall("Math","pow",[n,a]),t)}(a);default:return e.visitEachChild(a,i,t)}}(a);default:return e.visitEachChild(a,i,t)}}}}(s||(s={})),function(e){var r,n,i,a,o;!function(e){e[e.CapturedThis=1]="CapturedThis",e[e.BlockScopedBindings=2]="BlockScopedBindings"}(r||(r={})),function(e){e[e.Body=1]="Body",e[e.Initializer=2]="Initializer"}(n||(n={})),function(e){e[e.ToOriginal=0]="ToOriginal",e[e.ToOutParameter=1]="ToOutParameter"}(i||(i={})),function(e){e[e.Break=2]="Break",e[e.Continue=4]="Continue",e[e.Return=8]="Return"}(a||(a={})),function(e){e[e.None=0]="None",e[e.Function=1]="Function",e[e.ArrowFunction=2]="ArrowFunction",e[e.AsyncFunctionBody=4]="AsyncFunctionBody",e[e.NonStaticClassElement=8]="NonStaticClassElement",e[e.CapturesThis=16]="CapturesThis",e[e.ExportedVariableStatement=32]="ExportedVariableStatement",e[e.TopLevel=64]="TopLevel",e[e.Block=128]="Block",e[e.IterationStatement=256]="IterationStatement",e[e.IterationStatementBlock=512]="IterationStatementBlock",e[e.IterationContainer=1024]="IterationContainer",e[e.ForStatement=2048]="ForStatement",e[e.ForInOrForOfStatement=4096]="ForInOrForOfStatement",e[e.ConstructorWithCapturedSuper=8192]="ConstructorWithCapturedSuper",e[e.AncestorFactsMask=16383]="AncestorFactsMask",e[e.BlockScopeIncludes=0]="BlockScopeIncludes",e[e.BlockScopeExcludes=7104]="BlockScopeExcludes",e[e.SourceFileIncludes=64]="SourceFileIncludes",e[e.SourceFileExcludes=8064]="SourceFileExcludes",e[e.FunctionIncludes=65]="FunctionIncludes",e[e.FunctionExcludes=16286]="FunctionExcludes",e[e.AsyncFunctionBodyIncludes=69]="AsyncFunctionBodyIncludes",e[e.AsyncFunctionBodyExcludes=16278]="AsyncFunctionBodyExcludes",e[e.ArrowFunctionIncludes=66]="ArrowFunctionIncludes",e[e.ArrowFunctionExcludes=15232]="ArrowFunctionExcludes",e[e.ConstructorIncludes=73]="ConstructorIncludes",e[e.ConstructorExcludes=16278]="ConstructorExcludes",e[e.DoOrWhileStatementIncludes=1280]="DoOrWhileStatementIncludes",e[e.DoOrWhileStatementExcludes=0]="DoOrWhileStatementExcludes",e[e.ForStatementIncludes=3328]="ForStatementIncludes",e[e.ForStatementExcludes=5056]="ForStatementExcludes",e[e.ForInOrForOfStatementIncludes=5376]="ForInOrForOfStatementIncludes",e[e.ForInOrForOfStatementExcludes=3008]="ForInOrForOfStatementExcludes",e[e.BlockIncludes=128]="BlockIncludes",e[e.BlockExcludes=6976]="BlockExcludes",e[e.IterationStatementBlockIncludes=512]="IterationStatementBlockIncludes",e[e.IterationStatementBlockExcludes=7104]="IterationStatementBlockExcludes",e[e.NewTarget=16384]="NewTarget",e[e.CapturedLexicalThis=32768]="CapturedLexicalThis",e[e.SubtreeFactsMask=-16384]="SubtreeFactsMask",e[e.ArrowFunctionSubtreeExcludes=0]="ArrowFunctionSubtreeExcludes",e[e.FunctionSubtreeExcludes=49152]="FunctionSubtreeExcludes"}(o||(o={})),e.transformES2015=function(r){var n,i,a,o,s,c,u=r.factory,l=r.getEmitHelperFactory,d=r.startLexicalEnvironment,_=r.resumeLexicalEnvironment,p=r.endLexicalEnvironment,f=r.hoistVariableDeclaration,g=r.getCompilerOptions(),m=r.getEmitResolver(),y=r.onSubstituteNode,v=r.onEmitNode;function h(t){o=e.append(o,u.createVariableDeclaration(t))}return r.onEmitNode=function(t,r,n){if(1&c&&e.isFunctionLike(r)){var i=D(16286,8&e.getEmitFlags(r)?81:65);return v(t,r,n),void x(i,0,0)}v(t,r,n)},r.onSubstituteNode=function(t,r){if(r=y(t,r),1===t)return function(t){switch(t.kind){case 78:return function(t){if(2&c&&!e.isInternalName(t)){var r=m.getReferencedDeclarationWithCollidingName(t);if(r&&(!e.isClassLike(r)||!function(t,r){var n=e.getParseTreeNode(r);if(!n||n===t||n.end<=t.pos||n.pos>=t.end)return!1;var i=e.getEnclosingBlockScopeContainer(t);for(;n;){if(n===i||n===t)return!1;if(e.isClassElement(n)&&n.parent===t)return!0;n=n.parent}return!1}(r,t)))return e.setTextRange(u.getGeneratedNameForNode(e.getNameOfDeclaration(r)),t)}return t}(t);case 107:return function(t){if(1&c&&16&a)return e.setTextRange(u.createUniqueName("_this",48),t);return t}(t)}return t}(r);if(e.isIdentifier(r))return function(t){if(2&c&&!e.isInternalName(t)){var r=e.getParseTreeNode(t,e.isIdentifier);if(r&&function(e){switch(e.parent.kind){case 199:case 253:case 256:case 250:return e.parent.name===e&&m.isDeclarationWithCollidingName(e.parent)}return!1}(r))return e.setTextRange(u.getGeneratedNameForNode(r),t)}return t}(r);return r},e.chainBundle(r,(function(t){if(t.isDeclarationFile)return t;n=t,i=t.text;var s=function(t){var r=D(8064,64),n=[],i=[];d();var a=u.copyPrologue(t.statements,n,!1,E);e.addRange(i,e.visitNodes(t.statements,E,e.isStatement,a)),o&&i.push(u.createVariableStatement(void 0,u.createVariableDeclarationList(o)));return u.mergeLexicalEnvironment(n,p()),j(n,t),x(r,0,0),u.updateSourceFile(t,e.setTextRange(u.createNodeArray(e.concatenate(n,i)),t.statements))}(t);return e.addEmitHelpers(s,r.readEmitHelpers()),n=void 0,i=void 0,o=void 0,a=0,s}));function D(e,t){var r=a;return a=16383&(a&~e|t),r}function x(e,t,r){a=-16384&(a&~t|r)|e}function b(e){return 0!=(8192&a)&&243===e.kind&&!e.expression}function S(t){return 0!=(512&t.transformFlags)||void 0!==s||8192&a&&function(t){return 2097152&t.transformFlags&&(e.isReturnStatement(t)||e.isIfStatement(t)||e.isWithStatement(t)||e.isSwitchStatement(t)||e.isCaseBlock(t)||e.isCaseClause(t)||e.isDefaultClause(t)||e.isTryStatement(t)||e.isCatchClause(t)||e.isLabeledStatement(t)||e.isIterationStatement(t,!1)||e.isBlock(t))}(t)||e.isIterationStatement(t,!1)&&de(t)||0!=(33554432&e.getEmitFlags(t))}function E(e){return S(e)?k(e,!1):e}function T(e){return S(e)?k(e,!0):e}function C(e){return 105===e.kind?Ne(!0):E(e)}function k(i,o){switch(i.kind){case 123:return;case 253:return function(t){var r=u.createVariableDeclaration(u.getLocalName(t,!0),void 0,void 0,N(t));e.setOriginalNode(r,t);var n=[],i=u.createVariableStatement(void 0,u.createVariableDeclarationList([r]));if(e.setOriginalNode(i,t),e.setTextRange(i,t),e.startOnNewLine(i),n.push(i),e.hasSyntacticModifier(t,1)){var a=e.hasSyntacticModifier(t,512)?u.createExportDefault(u.getLocalName(t)):u.createExternalModuleExport(u.getLocalName(t));e.setOriginalNode(a,i),n.push(a)}var o=e.getEmitFlags(t);0==(4194304&o)&&(n.push(u.createEndOfDeclarationMarker(t)),e.setEmitFlags(i,4194304|o));return e.singleOrMany(n)}(i);case 222:return function(e){return N(e)}(i);case 161:return function(t){return t.dotDotDotToken?void 0:e.isBindingPattern(t.name)?e.setOriginalNode(e.setTextRange(u.createParameterDeclaration(void 0,void 0,void 0,u.getGeneratedNameForNode(t),void 0,void 0,void 0),t),t):t.initializer?e.setOriginalNode(e.setTextRange(u.createParameterDeclaration(void 0,void 0,void 0,t.name,void 0,void 0,void 0),t),t):t}(i);case 252:return function(t){var n=s;s=void 0;var i=D(16286,65),o=e.visitParameterList(t.parameters,E,r),c=H(t),l=16384&a?u.getLocalName(t):t.name;return x(i,49152,0),s=n,u.updateFunctionDeclaration(t,void 0,e.visitNodes(t.modifiers,E,e.isModifier),t.asteriskToken,l,void 0,o,void 0,c)}(i);case 210:return function(t){8192&t.transformFlags&&(a|=32768);var n=s;s=void 0;var i=D(15232,66),o=u.createFunctionExpression(void 0,void 0,void 0,void 0,e.visitParameterList(t.parameters,E,r),void 0,H(t));e.setTextRange(o,t),e.setOriginalNode(o,t),e.setEmitFlags(o,8),32768&a&&we();return x(i,0,0),s=n,o}(i);case 209:return function(t){var n=262144&e.getEmitFlags(t)?D(16278,69):D(16286,65),i=s;s=void 0;var o=e.visitParameterList(t.parameters,E,r),c=H(t),l=16384&a?u.getLocalName(t):t.name;return x(n,49152,0),s=i,u.updateFunctionExpression(t,void 0,t.asteriskToken,l,void 0,o,void 0,c)}(i);case 250:return X(i);case 78:return F(i);case 251:return function(t){if(3&t.flags||262144&t.transformFlags){3&t.flags&&Pe();var n=e.flatMap(t.declarations,1&t.flags?Y:X),i=u.createVariableDeclarationList(n);return e.setOriginalNode(i,t),e.setTextRange(i,t),e.setCommentRange(i,t),262144&t.transformFlags&&(e.isBindingPattern(t.declarations[0].name)||e.isBindingPattern(e.last(t.declarations).name))&&e.setSourceMapRange(i,function(t){for(var r=-1,n=-1,i=0,a=t;i0?(e.insertStatementAfterCustomPrologue(t,e.setEmitFlags(u.createVariableStatement(void 0,u.createVariableDeclarationList(e.flattenDestructuringBinding(n,E,r,0,u.getGeneratedNameForNode(n)))),1048576)),!0):!!a&&(e.insertStatementAfterCustomPrologue(t,e.setEmitFlags(u.createExpressionStatement(u.createAssignment(u.getGeneratedNameForNode(n),e.visitNode(a,E,e.isExpression))),1048576)),!0)}function R(t,r,n,i){i=e.visitNode(i,E,e.isExpression);var a=u.createIfStatement(u.createTypeCheck(u.cloneNode(n),"undefined"),e.setEmitFlags(e.setTextRange(u.createBlock([u.createExpressionStatement(e.setEmitFlags(e.setTextRange(u.createAssignment(e.setEmitFlags(e.setParent(e.setTextRange(u.cloneNode(n),n),n.parent),48),e.setEmitFlags(i,1584|e.getEmitFlags(i))),r),1536))]),r),1953));e.startOnNewLine(a),e.setTextRange(a,r),e.setEmitFlags(a,1050528),e.insertStatementAfterCustomPrologue(t,a)}function B(t,n,i){var a=[],o=e.lastOrUndefined(n.parameters);if(!function(e,t){return!(!e||!e.dotDotDotToken||t)}(o,i))return!1;var s=78===o.name.kind?e.setParent(e.setTextRange(u.cloneNode(o.name),o.name),o.name.parent):u.createTempVariable(void 0);e.setEmitFlags(s,48);var c=78===o.name.kind?u.cloneNode(o.name):s,l=n.parameters.length-1,d=u.createLoopVariable();a.push(e.setEmitFlags(e.setTextRange(u.createVariableStatement(void 0,u.createVariableDeclarationList([u.createVariableDeclaration(s,void 0,void 0,u.createArrayLiteralExpression([]))])),o),1048576));var _=u.createForStatement(e.setTextRange(u.createVariableDeclarationList([u.createVariableDeclaration(d,void 0,void 0,u.createNumericLiteral(l))]),o),e.setTextRange(u.createLessThan(d,u.createPropertyAccessExpression(u.createIdentifier("arguments"),"length")),o),e.setTextRange(u.createPostfixIncrement(d),o),u.createBlock([e.startOnNewLine(e.setTextRange(u.createExpressionStatement(u.createAssignment(u.createElementAccessExpression(c,0===l?d:u.createSubtract(d,u.createNumericLiteral(l))),u.createElementAccessExpression(u.createIdentifier("arguments"),d))),o))]));return e.setEmitFlags(_,1048576),e.startOnNewLine(_),a.push(_),78!==o.name.kind&&a.push(e.setEmitFlags(e.setTextRange(u.createVariableStatement(void 0,u.createVariableDeclarationList(e.flattenDestructuringBinding(o,E,r,0,c))),o),1048576)),e.insertStatementsAfterCustomPrologue(t,a),!0}function j(e,t){return!!(32768&a&&210!==t.kind)&&(J(e,t,u.createThis()),!0)}function J(t,r,n){we();var i=u.createVariableStatement(void 0,u.createVariableDeclarationList([u.createVariableDeclaration(u.createUniqueName("_this",48),void 0,void 0,n)]));e.setEmitFlags(i,1050112),e.setSourceMapRange(i,r),e.insertStatementAfterCustomPrologue(t,i)}function K(t,r,n){if(16384&a){var i=void 0;switch(r.kind){case 210:return t;case 166:case 168:case 169:i=u.createVoidZero();break;case 167:i=u.createPropertyAccessExpression(e.setEmitFlags(u.createThis(),4),"constructor");break;case 252:case 209:i=u.createConditionalExpression(u.createLogicalAnd(e.setEmitFlags(u.createThis(),4),u.createBinaryExpression(e.setEmitFlags(u.createThis(),4),101,u.getLocalName(r))),void 0,u.createPropertyAccessExpression(e.setEmitFlags(u.createThis(),4),"constructor"),void 0,u.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(r)}var o=u.createVariableStatement(void 0,u.createVariableDeclarationList([u.createVariableDeclaration(u.createUniqueName("_newTarget",48),void 0,void 0,i)]));e.setEmitFlags(o,1050112),n&&(t=t.slice()),e.insertStatementAfterCustomPrologue(t,o)}return t}function z(t){return e.setTextRange(u.createEmptyStatement(),t)}function U(t,n,i){var a,o=e.getCommentRange(n),s=e.getSourceMapRange(n),c=W(n,n,void 0,i),l=e.visitNode(n.name,E,e.isPropertyName);if(!e.isPrivateIdentifier(l)&&e.getUseDefineForClassFields(r.getCompilerOptions())){var d=e.isComputedPropertyName(l)?l.expression:e.isIdentifier(l)?u.createStringLiteral(e.unescapeLeadingUnderscores(l.escapedText)):l;a=u.createObjectDefinePropertyCall(t,d,u.createPropertyDescriptor({value:c,enumerable:!1,writable:!0,configurable:!0}))}else{var _=e.createMemberAccessForPropertyName(u,t,l,n.name);a=u.createAssignment(_,c)}e.setEmitFlags(c,1536),e.setSourceMapRange(c,s);var p=e.setTextRange(u.createExpressionStatement(a),n);return e.setOriginalNode(p,n),e.setCommentRange(p,o),e.setEmitFlags(p,48),p}function V(t,r,n){var i=u.createExpressionStatement(q(t,r,n,!1));return e.setEmitFlags(i,1536),e.setSourceMapRange(i,e.getSourceMapRange(r.firstAccessor)),i}function q(t,r,n,i){var a=r.firstAccessor,o=r.getAccessor,s=r.setAccessor,c=e.setParent(e.setTextRange(u.cloneNode(t),t),t.parent);e.setEmitFlags(c,1568),e.setSourceMapRange(c,a.name);var l=e.visitNode(a.name,E,e.isPropertyName);if(e.isPrivateIdentifier(l))return e.Debug.failBadSyntaxKind(l,"Encountered unhandled private identifier while transforming ES2015.");var d=e.createExpressionForPropertyName(u,l);e.setEmitFlags(d,1552),e.setSourceMapRange(d,a.name);var _=[];if(o){var p=W(o,void 0,void 0,n);e.setSourceMapRange(p,e.getSourceMapRange(o)),e.setEmitFlags(p,512);var f=u.createPropertyAssignment("get",p);e.setCommentRange(f,e.getCommentRange(o)),_.push(f)}if(s){var g=W(s,void 0,void 0,n);e.setSourceMapRange(g,e.getSourceMapRange(s)),e.setEmitFlags(g,512);var m=u.createPropertyAssignment("set",g);e.setCommentRange(m,e.getCommentRange(s)),_.push(m)}_.push(u.createPropertyAssignment("enumerable",o||s?u.createFalse():u.createTrue()),u.createPropertyAssignment("configurable",u.createTrue()));var y=u.createCallExpression(u.createPropertyAccessExpression(u.createIdentifier("Object"),"defineProperty"),void 0,[c,d,u.createObjectLiteralExpression(_,!0)]);return i&&e.startOnNewLine(y),y}function W(t,n,i,o){var c=s;s=void 0;var l=o&&e.isClassLike(o)&&!e.hasSyntacticModifier(t,32)?D(16286,73):D(16286,65),d=e.visitParameterList(t.parameters,E,r),_=H(t);return 16384&a&&!i&&(252===t.kind||209===t.kind)&&(i=u.getGeneratedNameForNode(t)),x(l,49152,0),s=c,e.setOriginalNode(e.setTextRange(u.createFunctionExpression(void 0,t.asteriskToken,i,void 0,d,void 0,_),n),t)}function H(t){var r,i,a,o=!1,s=!1,c=[],l=[],d=t.body;if(_(),e.isBlock(d)&&(a=u.copyStandardPrologue(d.statements,c,!1),a=u.copyCustomPrologue(d.statements,l,a,E,e.isHoistedFunction),a=u.copyCustomPrologue(d.statements,l,a,E,e.isHoistedVariableStatement)),o=M(l,t)||o,o=B(l,t,!1)||o,e.isBlock(d))a=u.copyCustomPrologue(d.statements,l,a,E),r=d.statements,e.addRange(l,e.visitNodes(d.statements,E,e.isStatement,a)),!o&&d.multiLine&&(o=!0);else{e.Debug.assert(210===t.kind),r=e.moveRangeEnd(d,-1);var f=t.equalsGreaterThanToken;e.nodeIsSynthesized(f)||e.nodeIsSynthesized(d)||(e.rangeEndIsOnSameLineAsRangeStart(f,d,n)?s=!0:o=!0);var g=e.visitNode(d,E,e.isExpression),m=u.createReturnStatement(g);e.setTextRange(m,d),e.moveSyntheticComments(m,d),e.setEmitFlags(m,1440),l.push(m),i=d}if(u.mergeLexicalEnvironment(c,p()),K(c,t,!1),j(c,t),e.some(c)&&(o=!0),l.unshift.apply(l,c),e.isBlock(d)&&e.arrayIsEqualTo(l,d.statements))return d;var y=u.createBlock(e.setTextRange(u.createNodeArray(l),r),o);return e.setTextRange(y,t.body),!o&&s&&e.setEmitFlags(y,1),i&&e.setTokenSourceMapRange(y,19,i),e.setOriginalNode(y,t.body),y}function G(t,n){return e.isDestructuringAssignment(t)?e.flattenDestructuringAssignment(t,E,r,0,!n):27===t.operatorToken.kind?u.updateBinaryExpression(t,e.visitNode(t.left,T,e.isExpression),t.operatorToken,e.visitNode(t.right,n?T:E,e.isExpression)):e.visitEachChild(t,E,r)}function Y(t){var n=t.name;return e.isBindingPattern(n)?X(t):!t.initializer&&function(e){var t=m.getNodeCheckFlags(e),r=262144&t,n=524288&t;return!(0!=(64&a)||r&&n&&0!=(512&a))&&0==(4096&a)&&(!m.isDeclarationWithCollidingName(e)||n&&!r&&0==(6144&a))}(t)?u.updateVariableDeclaration(t,t.name,void 0,void 0,u.createVoidZero()):e.visitEachChild(t,E,r)}function X(t){var n,i=D(32,0);return n=e.isBindingPattern(t.name)?e.flattenDestructuringBinding(t,E,r,0,void 0,0!=(32&i)):e.visitEachChild(t,E,r),x(i,0,0),n}function $(t){s.labels.set(e.idText(t.label),!0)}function Q(t){s.labels.set(e.idText(t.label),!1)}function Z(t,n,i,o,c){var l=D(t,n),_=function(t,n,i,o){if(!de(t)){var c=void 0;s&&(c=s.allowedNonLabeledJumps,s.allowedNonLabeledJumps=6);var l=o?o(t,n,void 0,i):u.restoreEnclosingLabel(e.isForStatement(t)?function(t){return u.updateForStatement(t,e.visitNode(t.initializer,T,e.isForInitializer),e.visitNode(t.condition,E,e.isExpression),e.visitNode(t.incrementor,T,e.isExpression),e.visitNode(t.statement,E,e.isStatement,u.liftToBlock))}(t):e.visitEachChild(t,E,r),n,s&&Q);return s&&(s.allowedNonLabeledJumps=c),l}var _=function(t){var r;switch(t.kind){case 238:case 239:case 240:var n=t.initializer;n&&251===n.kind&&(r=n)}var i=[],a=[];if(r&&3&e.getCombinedNodeFlags(r))for(var o=ue(t),c=0,u=r.declarations;c=80&&r<=115)return e.setTextRange(i.createStringLiteralFromNode(t),t)}}}(s||(s={})),function(e){var r,n,i,a,o;!function(e){e[e.Nop=0]="Nop",e[e.Statement=1]="Statement",e[e.Assign=2]="Assign",e[e.Break=3]="Break",e[e.BreakWhenTrue=4]="BreakWhenTrue",e[e.BreakWhenFalse=5]="BreakWhenFalse",e[e.Yield=6]="Yield",e[e.YieldStar=7]="YieldStar",e[e.Return=8]="Return",e[e.Throw=9]="Throw",e[e.Endfinally=10]="Endfinally"}(r||(r={})),function(e){e[e.Open=0]="Open",e[e.Close=1]="Close"}(n||(n={})),function(e){e[e.Exception=0]="Exception",e[e.With=1]="With",e[e.Switch=2]="Switch",e[e.Loop=3]="Loop",e[e.Labeled=4]="Labeled"}(i||(i={})),function(e){e[e.Try=0]="Try",e[e.Catch=1]="Catch",e[e.Finally=2]="Finally",e[e.Done=3]="Done"}(a||(a={})),function(e){e[e.Next=0]="Next",e[e.Throw=1]="Throw",e[e.Return=2]="Return",e[e.Break=3]="Break",e[e.Yield=4]="Yield",e[e.YieldStar=5]="YieldStar",e[e.Catch=6]="Catch",e[e.Endfinally=7]="Endfinally"}(o||(o={})),e.transformGenerators=function(r){var n,i,a,o,s,c,u,l,d,_,p=r.factory,f=r.getEmitHelperFactory,g=r.resumeLexicalEnvironment,m=r.endLexicalEnvironment,y=r.hoistFunctionDeclaration,v=r.hoistVariableDeclaration,h=r.getCompilerOptions(),D=e.getEmitScriptTarget(h),x=r.getEmitResolver(),b=r.onSubstituteNode;r.onSubstituteNode=function(t,r){if(r=b(t,r),1===t)return function(t){if(e.isIdentifier(t))return function(t){if(!e.isGeneratedIdentifier(t)&&n&&n.has(e.idText(t))){var r=e.getOriginalNode(t);if(e.isIdentifier(r)&&r.parent){var a=x.getReferencedValueDeclaration(r);if(a){var o=i[e.getOriginalNodeId(a)];if(o){var s=e.setParent(e.setTextRange(p.cloneNode(o),o),o.parent);return e.setSourceMapRange(s,t),e.setCommentRange(s,t),s}}}}return t}(t);return t}(r);return r};var S,E,T,C,k,A,F,N,P,w,I,O,M=1,L=0,R=0;return e.chainBundle(r,(function(t){if(t.isDeclarationFile||0==(1024&t.transformFlags))return t;var n=e.visitEachChild(t,B,r);return e.addEmitHelpers(n,r.readEmitHelpers()),n}));function B(t){var n=t.transformFlags;return o?function(t){switch(t.kind){case 236:case 237:return function(t){return o?(oe(),t=e.visitEachChild(t,B,r),ce(),t):e.visitEachChild(t,B,r)}(t);case 245:return function(t){o&&re({kind:2,isScript:!0,breakLabel:-1});t=e.visitEachChild(t,B,r),o&&ue();return t}(t);case 246:return function(t){o&&re({kind:4,isScript:!0,labelText:e.idText(t.label),breakLabel:-1});t=e.visitEachChild(t,B,r),o&&le();return t}(t);default:return j(t)}}(t):a?j(t):e.isFunctionLikeDeclaration(t)&&t.asteriskToken?function(t){switch(t.kind){case 252:return J(t);case 209:return K(t);default:return e.Debug.failBadSyntaxKind(t)}}(t):1024&n?e.visitEachChild(t,B,r):t}function j(t){switch(t.kind){case 252:return J(t);case 209:return K(t);case 168:case 169:return function(t){var n=a,i=o;return a=!1,o=!1,t=e.visitEachChild(t,B,r),a=n,o=i,t}(t);case 233:return function(t){if(524288&t.transformFlags)return void G(t.declarationList);if(1048576&e.getEmitFlags(t))return t;for(var r=0,n=t.declarationList.declarations;r0?p.inlineExpressions(e.map(c,Y)):void 0,e.visitNode(t.condition,B,e.isExpression),e.visitNode(t.incrementor,B,e.isExpression),e.visitIterationBody(t.statement,B,r))}else t=e.visitEachChild(t,B,r);o&&ce();return t}(t);case 239:return function(t){o&&oe();var n=t.initializer;if(e.isVariableDeclarationList(n)){for(var i=0,a=n.declarations;i0)return he(n,t)}return e.visitEachChild(t,B,r)}(t);case 241:return function(t){if(o){var n=me(t.label&&e.idText(t.label));if(n>0)return he(n,t)}return e.visitEachChild(t,B,r)}(t);case 243:return function(t){return r=e.visitNode(t.expression,B,e.isExpression),n=t,e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression(r?[ve(2),r]:[ve(2)])),n);var r,n}(t);default:return 524288&t.transformFlags?function(t){switch(t.kind){case 217:return function(t){var n=e.getExpressionAssociativity(t);switch(n){case 0:return function(t){if(X(t.right))return e.isLogicalOperator(t.operatorToken.kind)?function(t){var r=ee(),n=Z();be(n,e.visitNode(t.left,B,e.isExpression),t.left),55===t.operatorToken.kind?Te(r,n,t.left):Ee(r,n,t.left);return be(n,e.visitNode(t.right,B,e.isExpression),t.right),te(r),n}(t):27===t.operatorToken.kind?U(t):p.updateBinaryExpression(t,Q(e.visitNode(t.left,B,e.isExpression)),t.operatorToken,e.visitNode(t.right,B,e.isExpression));return e.visitEachChild(t,B,r)}(t);case 1:return function(t){var n=t.left,i=t.right;if(X(i)){var a=void 0;switch(n.kind){case 202:a=p.updatePropertyAccessExpression(n,Q(e.visitNode(n.expression,B,e.isLeftHandSideExpression)),n.name);break;case 203:a=p.updateElementAccessExpression(n,Q(e.visitNode(n.expression,B,e.isLeftHandSideExpression)),Q(e.visitNode(n.argumentExpression,B,e.isExpression)));break;default:a=e.visitNode(n,B,e.isExpression)}var o=t.operatorToken.kind;return e.isCompoundAssignment(o)?e.setTextRange(p.createAssignment(a,e.setTextRange(p.createBinaryExpression(Q(a),e.getNonAssignmentOperatorForCompoundAssignment(o),e.visitNode(i,B,e.isExpression)),t)),t):p.updateBinaryExpression(t,a,t.operatorToken,e.visitNode(i,B,e.isExpression))}return e.visitEachChild(t,B,r)}(t);default:return e.Debug.assertNever(n)}}(t);case 341:return function(t){for(var r=[],n=0,i=t.elements;n0&&(Ce(1,[p.createExpressionStatement(p.inlineExpressions(r))]),r=[]),r.push(e.visitNode(a,B,e.isExpression)))}return p.inlineExpressions(r)}(t);case 218:return function(t){if(X(t.whenTrue)||X(t.whenFalse)){var n=ee(),i=ee(),a=Z();return Te(n,e.visitNode(t.condition,B,e.isExpression),t.condition),be(a,e.visitNode(t.whenTrue,B,e.isExpression),t.whenTrue),Se(i),te(n),be(a,e.visitNode(t.whenFalse,B,e.isExpression),t.whenFalse),te(i),a}return e.visitEachChild(t,B,r)}(t);case 220:return function(t){var r=ee(),n=e.visitNode(t.expression,B,e.isExpression);if(t.asteriskToken){!function(e,t){Ce(7,[e],t)}(0==(8388608&e.getEmitFlags(t.expression))?e.setTextRange(f().createValuesHelper(n),t):n,t)}else!function(e,t){Ce(6,[e],t)}(n,t);return te(r),function(t){return e.setTextRange(p.createCallExpression(p.createPropertyAccessExpression(C,"sent"),void 0,[]),t)}(t)}(t);case 200:return function(e){return V(e.elements,void 0,void 0,e.multiLine)}(t);case 201:return function(t){var r=t.properties,n=t.multiLine,i=$(r),a=Z();be(a,p.createObjectLiteralExpression(e.visitNodes(r,B,e.isObjectLiteralElementLike,0,i),n));var o=e.reduceLeft(r,s,[],i);return o.push(n?e.startOnNewLine(e.setParent(e.setTextRange(p.cloneNode(a),a),a.parent)):a),p.inlineExpressions(o);function s(r,i){X(i)&&r.length>0&&(xe(p.createExpressionStatement(p.inlineExpressions(r))),r=[]);var o=e.createExpressionForObjectLiteralElementLike(p,t,i,a),s=e.visitNode(o,B,e.isExpression);return s&&(n&&e.startOnNewLine(s),r.push(s)),r}}(t);case 203:return function(t){if(X(t.argumentExpression))return p.updateElementAccessExpression(t,Q(e.visitNode(t.expression,B,e.isLeftHandSideExpression)),e.visitNode(t.argumentExpression,B,e.isExpression));return e.visitEachChild(t,B,r)}(t);case 204:return function(t){if(!e.isImportCall(t)&&e.forEach(t.arguments,X)){var n=p.createCallBinding(t.expression,v,D,!0),i=n.target,a=n.thisArg;return e.setOriginalNode(e.setTextRange(p.createFunctionApplyCall(Q(e.visitNode(i,B,e.isLeftHandSideExpression)),a,V(t.arguments)),t),t)}return e.visitEachChild(t,B,r)}(t);case 205:return function(t){if(e.forEach(t.arguments,X)){var n=p.createCallBinding(p.createPropertyAccessExpression(t.expression,"bind"),v),i=n.target,a=n.thisArg;return e.setOriginalNode(e.setTextRange(p.createNewExpression(p.createFunctionApplyCall(Q(e.visitNode(i,B,e.isExpression)),a,V(t.arguments,p.createVoidZero())),void 0,[]),t),t)}return e.visitEachChild(t,B,r)}(t);default:return e.visitEachChild(t,B,r)}}(t):2098176&t.transformFlags?e.visitEachChild(t,B,r):t}}function J(t){if(t.asteriskToken)t=e.setOriginalNode(e.setTextRange(p.createFunctionDeclaration(void 0,t.modifiers,void 0,t.name,void 0,e.visitParameterList(t.parameters,B,r),void 0,z(t.body)),t),t);else{var n=a,i=o;a=!1,o=!1,t=e.visitEachChild(t,B,r),a=n,o=i}return a?void y(t):t}function K(t){if(t.asteriskToken)t=e.setOriginalNode(e.setTextRange(p.createFunctionExpression(void 0,void 0,t.name,void 0,e.visitParameterList(t.parameters,B,r),void 0,z(t.body)),t),t);else{var n=a,i=o;a=!1,o=!1,t=e.visitEachChild(t,B,r),a=n,o=i}return t}function z(t){var r=[],n=a,i=o,f=s,y=c,v=u,h=l,D=d,x=_,b=M,k=S,A=E,F=T,N=C;a=!0,o=!1,s=void 0,c=void 0,u=void 0,l=void 0,d=void 0,_=void 0,M=1,S=void 0,E=void 0,T=void 0,C=p.createTempVariable(void 0),g();var P=p.copyPrologue(t.statements,r,!1,B);q(t.statements,P);var w=ke();return e.insertStatementsAfterStandardPrologue(r,m()),r.push(p.createReturnStatement(w)),a=n,o=i,s=f,c=y,u=v,l=h,d=D,_=x,M=b,S=k,E=A,T=F,C=N,e.setTextRange(p.createBlock(r,t.multiLine),t)}function U(t){var r=[];return n(t.left),n(t.right),p.inlineExpressions(r);function n(t){e.isBinaryExpression(t)&&27===t.operatorToken.kind?(n(t.left),n(t.right)):(X(t)&&r.length>0&&(Ce(1,[p.createExpressionStatement(p.inlineExpressions(r))]),r=[]),r.push(e.visitNode(t,B,e.isExpression)))}}function V(r,n,i,a){var o,s=$(r);if(s>0){o=Z();var c=e.visitNodes(r,B,e.isExpression,0,s);be(o,p.createArrayLiteralExpression(n?t([n],c):c)),n=void 0}var u=e.reduceLeft(r,(function(r,i){if(X(i)&&r.length>0){var s=void 0!==o;o||(o=Z()),be(o,s?p.createArrayConcatCall(o,[p.createArrayLiteralExpression(r,a)]):p.createArrayLiteralExpression(n?t([n],r):r,a)),n=void 0,r=[]}return r.push(e.visitNode(i,B,e.isExpression)),r}),[],s);return o?p.createArrayConcatCall(o,[p.createArrayLiteralExpression(u,a)]):e.setTextRange(p.createArrayLiteralExpression(n?t([n],u):u,a),i)}function q(e,t){void 0===t&&(t=0);for(var r=e.length,n=t;n0?Se(r,t):xe(t)}(t);case 242:return function(t){var r=ge(t.label?e.idText(t.label):void 0);r>0?Se(r,t):xe(t)}(t);case 243:return function(t){r=e.visitNode(t.expression,B,e.isExpression),n=t,Ce(8,[r],n);var r,n}(t);case 244:return function(t){X(t)?(r=Q(e.visitNode(t.expression,B,e.isExpression)),n=ee(),i=ee(),te(n),re({kind:1,expression:r,startLabel:n,endLabel:i}),W(t.statement),e.Debug.assert(1===ae()),te(ne().endLabel)):xe(e.visitNode(t,B,e.isStatement));var r,n,i}(t);case 245:return function(t){if(X(t.caseBlock)){for(var r=t.caseBlock,n=r.clauses.length,i=(re({kind:2,isScript:!1,breakLabel:f=ee()}),f),a=Q(e.visitNode(t.expression,B,e.isExpression)),o=[],s=-1,c=0;c0)break;d.push(p.createCaseClause(e.visitNode(u.expression,B,e.isExpression),[he(o[c],u.expression)]))}else _++}d.length&&(xe(p.createSwitchStatement(a,p.createCaseBlock(d))),l+=d.length,d=[]),_>0&&(l+=_,_=0)}Se(s>=0?o[s]:i);for(c=0;c0)break;u.push(Y(i))}u.length&&(xe(p.createExpressionStatement(p.inlineExpressions(u))),c+=u.length,u=[])}}function Y(t){return e.setSourceMapRange(p.createAssignment(e.setSourceMapRange(p.cloneNode(t.name),t.name),e.visitNode(t.initializer,B,e.isExpression)),t)}function X(e){return!!e&&0!=(524288&e.transformFlags)}function $(e){for(var t=e.length,r=0;r=0;r--){var n=l[r];if(!_e(n))break;if(n.labelText===e)return!0}return!1}function ge(e){if(l)if(e)for(var t=l.length-1;t>=0;t--){if(_e(r=l[t])&&r.labelText===e)return r.breakLabel;if(de(r)&&fe(e,t-1))return r.breakLabel}else for(t=l.length-1;t>=0;t--){var r;if(de(r=l[t]))return r.breakLabel}return 0}function me(e){if(l)if(e)for(var t=l.length-1;t>=0;t--){if(pe(r=l[t])&&fe(e,t-1))return r.continueLabel}else for(t=l.length-1;t>=0;t--){var r;if(pe(r=l[t]))return r.continueLabel}return 0}function ye(e){if(void 0!==e&&e>0){void 0===_&&(_=[]);var t=p.createNumericLiteral(-1);return void 0===_[e]?_[e]=[t]:_[e].push(t),t}return p.createOmittedExpression()}function ve(t){var r=p.createNumericLiteral(t);return e.addSyntheticTrailingComment(r,3,function(e){switch(e){case 2:return"return";case 3:return"break";case 4:return"yield";case 5:return"yield*";case 7:return"endfinally";default:return}}(t)),r}function he(t,r){return e.Debug.assertLessThan(0,t,"Invalid label"),e.setTextRange(p.createReturnStatement(p.createArrayLiteralExpression([ve(3),ye(t)])),r)}function De(){Ce(0)}function xe(e){e?Ce(1,[e]):De()}function be(e,t,r){Ce(2,[e,t],r)}function Se(e,t){Ce(3,[e],t)}function Ee(e,t,r){Ce(4,[e,t],r)}function Te(e,t,r){Ce(5,[e,t],r)}function Ce(e,t,r){void 0===S&&(S=[],E=[],T=[]),void 0===d&&te(ee());var n=S.length;S[n]=e,E[n]=t,T[n]=r}function ke(){L=0,R=0,k=void 0,A=!1,F=!1,N=void 0,P=void 0,w=void 0,I=void 0,O=void 0;var t=function(){if(S){for(var t=0;t0)),524288))}function Ae(e){(function(e){if(!F)return!0;if(!d||!_)return!1;for(var t=0;t=0;t--){var r=O[t];P=[p.createWithStatement(r.expression,p.createBlock(P))]}if(I){var n=I.startLabel,i=I.catchLabel,a=I.finallyLabel,o=I.endLabel;P.unshift(p.createExpressionStatement(p.createCallExpression(p.createPropertyAccessExpression(p.createPropertyAccessExpression(C,"trys"),"push"),void 0,[p.createArrayLiteralExpression([ye(n),ye(i),ye(a),ye(o)])]))),I=void 0}e&&P.push(p.createExpressionStatement(p.createAssignment(p.createPropertyAccessExpression(C,"label"),p.createNumericLiteral(R+1))))}N.push(p.createCaseClause(p.createNumericLiteral(R),P||[])),P=void 0}function Ne(e){if(d)for(var t=0;t=2?2:0)),t),t))}else n&&e.isDefaultImport(t)&&(r=e.append(r,i.createVariableStatement(void 0,i.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(i.createVariableDeclaration(i.cloneNode(n.name),void 0,void 0,i.getGeneratedNameForNode(t)),t),t)],_>=2?2:0))));if(j(t)){var o=e.getOriginalNodeId(t);x[o]=J(x[o],t)}else r=J(r,t);return e.singleOrMany(r)}(t);case 261:return function(t){var r;e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(t),"import= for internal module references should be handled in an earlier transformer."),p!==e.ModuleKind.AMD?r=e.hasSyntacticModifier(t,1)?e.append(r,e.setOriginalNode(e.setTextRange(i.createExpressionStatement(G(t.name,L(t))),t),t)):e.append(r,e.setOriginalNode(e.setTextRange(i.createVariableStatement(void 0,i.createVariableDeclarationList([i.createVariableDeclaration(i.cloneNode(t.name),void 0,void 0,L(t))],_>=2?2:0)),t),t)):e.hasSyntacticModifier(t,1)&&(r=e.append(r,e.setOriginalNode(e.setTextRange(i.createExpressionStatement(G(i.getExportName(t),i.getLocalName(t))),t),t)));if(j(t)){var n=e.getOriginalNodeId(t);x[n]=K(x[n],t)}else r=K(r,t);return e.singleOrMany(r)}(t);case 268:return function(t){if(!t.moduleSpecifier)return;var r=i.getGeneratedNameForNode(t);if(t.exportClause&&e.isNamedExports(t.exportClause)){var n=[];p!==e.ModuleKind.AMD&&n.push(e.setOriginalNode(e.setTextRange(i.createVariableStatement(void 0,i.createVariableDeclarationList([i.createVariableDeclaration(r,void 0,void 0,L(t))])),t),t));for(var o=0,s=t.exportClause.elements;o(e.isExportName(t)?1:0);return!1}function I(t,r){var n,o=i.createUniqueName("resolve"),s=i.createUniqueName("reject"),c=[i.createParameterDeclaration(void 0,void 0,void 0,o),i.createParameterDeclaration(void 0,void 0,void 0,s)],l=i.createBlock([i.createExpressionStatement(i.createCallExpression(i.createIdentifier("require"),void 0,[i.createArrayLiteralExpression([t||i.createOmittedExpression()]),o,s]))]);_>=2?n=i.createArrowFunction(void 0,void 0,c,void 0,void 0,l):(n=i.createFunctionExpression(void 0,void 0,void 0,void 0,c,void 0,l),r&&e.setEmitFlags(n,8));var d=i.createNewExpression(i.createIdentifier("Promise"),void 0,[n]);return u.esModuleInterop?i.createCallExpression(i.createPropertyAccessExpression(d,i.createIdentifier("then")),void 0,[a().createImportStarCallbackHelper()]):d}function O(t,r){var n,o=i.createCallExpression(i.createPropertyAccessExpression(i.createIdentifier("Promise"),"resolve"),void 0,[]),s=i.createCallExpression(i.createIdentifier("require"),void 0,t?[t]:[]);return u.esModuleInterop&&(s=a().createImportStarHelper(s)),_>=2?n=i.createArrowFunction(void 0,void 0,[],void 0,void 0,s):(n=i.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,i.createBlock([i.createReturnStatement(s)])),r&&e.setEmitFlags(n,8)),i.createCallExpression(i.createPropertyAccessExpression(o,"then"),void 0,[n])}function M(t,r){return!u.esModuleInterop||67108864&e.getEmitFlags(t)?r:e.getImportNeedsImportStarHelper(t)?a().createImportStarHelper(r):e.getImportNeedsImportDefaultHelper(t)?a().createImportDefaultHelper(r):r}function L(t){var r=e.getExternalModuleNameLiteral(i,t,m,d,l,u),n=[];return r&&n.push(r),i.createCallExpression(i.createIdentifier("require"),void 0,n)}function R(t,r,n){var a=$(t);if(a){for(var o=e.isExportName(t)?r:i.createAssignment(t,r),s=0,c=a;se.ModuleKind.ES2015)return t;if(!t.exportClause||!e.isNamespaceExport(t.exportClause)||!t.moduleSpecifier)return t;var r=t.exportClause.name,n=i.getGeneratedNameForNode(r),a=i.createImportDeclaration(void 0,void 0,i.createImportClause(!1,void 0,i.createNamespaceImport(n)),t.moduleSpecifier);e.setOriginalNode(a,t.exportClause);var s=e.isExportNamespaceAsDefaultDeclaration(t)?i.createExportDefault(n):i.createExportDeclaration(void 0,void 0,!1,i.createNamedExports([i.createExportSpecifier(n,r)]));return e.setOriginalNode(s,t),[a,s]}(t)}return t}}}(s||(s={})),function(e){function t(t){return e.isVariableDeclaration(t)||e.isPropertyDeclaration(t)||e.isPropertySignature(t)||e.isPropertyAccessExpression(t)||e.isBindingElement(t)||e.isConstructorDeclaration(t)?r:e.isSetAccessor(t)||e.isGetAccessor(t)?function(r){var n;n=169===t.kind?e.hasSyntacticModifier(t,32)?r.errorModuleName?e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:r.errorModuleName?e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:e.hasSyntacticModifier(t,32)?r.errorModuleName?2===r.accessibility?e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:r.errorModuleName?2===r.accessibility?e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1;return{diagnosticMessage:n,errorNode:t.name,typeName:t.name}}:e.isConstructSignatureDeclaration(t)||e.isCallSignatureDeclaration(t)||e.isMethodDeclaration(t)||e.isMethodSignature(t)||e.isFunctionDeclaration(t)||e.isIndexSignatureDeclaration(t)?function(r){var n;switch(t.kind){case 171:n=r.errorModuleName?e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 170:n=r.errorModuleName?e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 172:n=r.errorModuleName?e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 166:case 165:n=e.hasSyntacticModifier(t,32)?r.errorModuleName?2===r.accessibility?e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:253===t.parent.kind?r.errorModuleName?2===r.accessibility?e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:r.errorModuleName?e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 252:n=r.errorModuleName?2===r.accessibility?e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return e.Debug.fail("This is unknown kind for signature: "+t.kind)}return{diagnosticMessage:n,errorNode:t.name||t}}:e.isParameter(t)?e.isParameterPropertyDeclaration(t,t.parent)&&e.hasSyntacticModifier(t.parent,8)?r:function(r){var n=function(r){switch(t.parent.kind){case 167:return r.errorModuleName?2===r.accessibility?e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 171:case 176:return r.errorModuleName?e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 170:return r.errorModuleName?e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 172:return r.errorModuleName?e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 166:case 165:return e.hasSyntacticModifier(t.parent,32)?r.errorModuleName?2===r.accessibility?e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:253===t.parent.parent.kind?r.errorModuleName?2===r.accessibility?e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:r.errorModuleName?e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 252:case 175:return r.errorModuleName?2===r.accessibility?e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 169:case 168:return r.errorModuleName?2===r.accessibility?e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return e.Debug.fail("Unknown parent for parameter: "+e.SyntaxKind[t.parent.kind])}}(r);return void 0!==n?{diagnosticMessage:n,errorNode:t,typeName:t.name}:void 0}:e.isTypeParameterDeclaration(t)?function(){var r;switch(t.parent.kind){case 253:r=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 254:r=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 191:r=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 176:case 171:r=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 170:r=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 166:case 165:r=e.hasSyntacticModifier(t.parent,32)?e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:253===t.parent.parent.kind?e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 175:case 252:r=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 255:r=e.Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return e.Debug.fail("This is unknown parent for type parameter: "+t.parent.kind)}return{diagnosticMessage:r,errorNode:t,typeName:t.name}}:e.isExpressionWithTypeArguments(t)?function(){var r;r=e.isClassDeclaration(t.parent.parent)?e.isHeritageClause(t.parent)&&116===t.parent.token?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:t.parent.parent.name?e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0:e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;return{diagnosticMessage:r,errorNode:t,typeName:e.getNameOfDeclaration(t.parent.parent)}}:e.isImportEqualsDeclaration(t)?function(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:t,typeName:t.name}}:e.isTypeAliasDeclaration(t)||e.isJSDocTypeAlias(t)?function(r){return{diagnosticMessage:r.errorModuleName?e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:e.isJSDocTypeAlias(t)?e.Debug.checkDefined(t.typeExpression):t.type,typeName:e.isJSDocTypeAlias(t)?e.getNameOfDeclaration(t):t.name}}:e.Debug.assertNever(t,"Attempted to set a declaration diagnostic context for unhandled node kind: "+e.SyntaxKind[t.kind]);function r(r){var n=function(r){return 250===t.kind||199===t.kind?r.errorModuleName?2===r.accessibility?e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1:164===t.kind||202===t.kind||163===t.kind||161===t.kind&&e.hasSyntacticModifier(t.parent,8)?e.hasSyntacticModifier(t,32)?r.errorModuleName?2===r.accessibility?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:253===t.parent.kind||161===t.kind?r.errorModuleName?2===r.accessibility?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:r.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1:void 0}(r);return void 0!==n?{diagnosticMessage:n,errorNode:t,typeName:t.name}:void 0}}e.canProduceDiagnostics=function(t){return e.isVariableDeclaration(t)||e.isPropertyDeclaration(t)||e.isPropertySignature(t)||e.isBindingElement(t)||e.isSetAccessor(t)||e.isGetAccessor(t)||e.isConstructSignatureDeclaration(t)||e.isCallSignatureDeclaration(t)||e.isMethodDeclaration(t)||e.isMethodSignature(t)||e.isFunctionDeclaration(t)||e.isParameter(t)||e.isTypeParameterDeclaration(t)||e.isExpressionWithTypeArguments(t)||e.isImportEqualsDeclaration(t)||e.isTypeAliasDeclaration(t)||e.isConstructorDeclaration(t)||e.isIndexSignatureDeclaration(t)||e.isPropertyAccessExpression(t)||e.isJSDocTypeAlias(t)},e.createGetSymbolAccessibilityDiagnosticForNodeName=function(r){return e.isSetAccessor(r)||e.isGetAccessor(r)?function(t){var n=function(t){return e.hasSyntacticModifier(r,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:253===r.parent.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}(t);return void 0!==n?{diagnosticMessage:n,errorNode:r,typeName:r.name}:void 0}:e.isMethodSignature(r)||e.isMethodDeclaration(r)?function(t){var n=function(t){return e.hasSyntacticModifier(r,32)?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:253===r.parent.kind?t.errorModuleName?2===t.accessibility?e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1:t.errorModuleName?e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1}(t);return void 0!==n?{diagnosticMessage:n,errorNode:r,typeName:r.name}:void 0}:t(r)},e.createGetSymbolAccessibilityDiagnosticForNode=t}(s||(s={})),function(e){function r(t,r){var n=r.text.substring(t.pos,t.end);return e.stringContains(n,"@internal")}function n(t,n){var i=e.getParseTreeNode(t);if(i&&161===i.kind){var a=i.parent.parameters.indexOf(i),o=a>0?i.parent.parameters[a-1]:void 0,s=n.text,c=o?e.concatenate(e.getTrailingCommentRanges(s,e.skipTrivia(s,o.end+1,!1,!0)),e.getLeadingCommentRanges(s,t.pos)):e.getTrailingCommentRanges(s,e.skipTrivia(s,t.pos,!1,!0));return c&&c.length&&r(e.last(c),n)}var u=i&&e.getLeadingCommentRangesOfNode(i,n);return!!e.forEach(u,(function(e){return r(e,n)}))}e.getDeclarationDiagnostics=function(t,r,n){var i=t.getCompilerOptions();return e.transformNodes(r,t,e.factory,i,n?[n]:e.filter(t.getSourceFiles(),e.isSourceFileNotJson),[a],!1).diagnostics},e.isInternalDeclaration=n;var i=531469;function a(r){var a,c,u,l,d,_,p,f,g,m,y,v,h=function(){return e.Debug.fail("Diagnostic emitted without context")},D=h,x=!0,b=!1,S=!1,E=!1,T=!1,C=r.factory,k=r.getEmitHost(),A={trackSymbol:function(e,t,r){if(262144&e.flags)return;O(F.isSymbolAccessible(e,t,r,!0)),I(F.getTypeReferenceDirectivesForSymbol(e,r))},reportInaccessibleThisError:function(){p&&r.addDiagnostic(e.createDiagnosticForNode(p,e.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,e.declarationNameToString(p),"this"))},reportInaccessibleUniqueSymbolError:function(){p&&r.addDiagnostic(e.createDiagnosticForNode(p,e.Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary,e.declarationNameToString(p),"unique symbol"))},reportCyclicStructureError:function(){p&&r.addDiagnostic(e.createDiagnosticForNode(p,e.Diagnostics.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary,e.declarationNameToString(p)))},reportPrivateInBaseOfClassExpression:function(t){(p||f)&&r.addDiagnostic(e.createDiagnosticForNode(p||f,e.Diagnostics.Property_0_of_exported_class_expression_may_not_be_private_or_protected,t))},reportLikelyUnsafeImportRequiredError:function(t){p&&r.addDiagnostic(e.createDiagnosticForNode(p,e.Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary,e.declarationNameToString(p),t))},reportTruncationError:function(){(p||f)&&r.addDiagnostic(e.createDiagnosticForNode(p||f,e.Diagnostics.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed))},moduleResolverHost:k,trackReferencedAmbientModule:function(t,r){var n=F.getTypeReferenceDirectivesForSymbol(r,67108863);if(e.length(n))return I(n);var i=e.getSourceFileOfNode(t);m.set(e.getOriginalNodeId(i),i)},trackExternalModuleSymbolOfImportTypeNode:function(e){b||(_||(_=[])).push(e)},reportNonlocalAugmentation:function(t,n,i){var a,o=null===(a=n.declarations)||void 0===a?void 0:a.find((function(r){return e.getSourceFileOfNode(r)===t})),s=e.filter(i.declarations,(function(r){return e.getSourceFileOfNode(r)!==t}));if(s)for(var c=0,u=s;c0?e.parameters[0].type:void 0}e.transformDeclarations=a}(s||(s={})),function(e){var r,n;function i(t,r,n){if(n)return e.emptyArray;var i=e.getEmitScriptTarget(t),a=e.getEmitModuleKind(t),o=[];return e.addRange(o,r&&e.map(r.before,s)),o.push(e.transformTypeScript),o.push(e.transformClassFields),e.getJSXTransformEnabled(t)&&o.push(e.transformJsx),i<99&&o.push(e.transformESNext),i<8&&o.push(e.transformES2021),i<7&&o.push(e.transformES2020),i<6&&o.push(e.transformES2019),i<5&&o.push(e.transformES2018),i<4&&o.push(e.transformES2017),i<3&&o.push(e.transformES2016),i<2&&(o.push(e.transformES2015),o.push(e.transformGenerators)),o.push(function(t){switch(t){case e.ModuleKind.ESNext:case e.ModuleKind.ES2020:case e.ModuleKind.ES2015:return e.transformECMAScriptModule;case e.ModuleKind.System:return e.transformSystemModule;default:return e.transformModule}}(a)),i<1&&o.push(e.transformES5),e.addRange(o,r&&e.map(r.after,s)),o}function a(t){var r=[];return r.push(e.transformDeclarations),e.addRange(r,t&&e.map(t.afterDeclarations,c)),r}function o(t,r){return function(n){var i=t(n);return"function"==typeof i?r(n,i):function(t){return function(r){return e.isBundle(r)?t.transformBundle(r):t.transformSourceFile(r)}}(i)}}function s(t){return o(t,e.chainBundle)}function c(e){return o(e,(function(e,t){return t}))}function u(e,t){return t}function l(e,t,r){r(e,t)}!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initialized=1]="Initialized",e[e.Completed=2]="Completed",e[e.Disposed=3]="Disposed"}(r||(r={})),function(e){e[e.Substitution=1]="Substitution",e[e.EmitNotifications=2]="EmitNotifications"}(n||(n={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray},e.getTransformers=function(e,t,r){return{scriptTransformers:i(e,t,r),declarationTransformers:a(t)}},e.noEmitSubstitution=u,e.noEmitNotification=l,e.transformNodes=function(r,n,i,a,o,s,c){for(var d,_,p,f,g,m=new Array(345),y=0,v=[],h=[],D=[],x=[],b=0,S=!1,E=[],T=0,C=u,k=l,A=0,F=[],N={factory:i,getCompilerOptions:function(){return a},getEmitResolver:function(){return r},getEmitHost:function(){return n},getEmitHelperFactory:e.memoize((function(){return e.createEmitHelperFactory(N)})),startLexicalEnvironment:function(){e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!S,"Lexical environment is suspended."),v[b]=d,h[b]=_,D[b]=p,x[b]=y,b++,d=void 0,_=void 0,p=void 0,y=0},suspendLexicalEnvironment:function(){e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!S,"Lexical environment is already suspended."),S=!0},resumeLexicalEnvironment:function(){e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(S,"Lexical environment is not suspended."),S=!1},endLexicalEnvironment:function(){var r;if(e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!S,"Lexical environment is suspended."),d||_||p){if(_&&(r=t([],_)),d){var n=i.createVariableStatement(void 0,i.createVariableDeclarationList(d));e.setEmitFlags(n,1048576),r?r.push(n):r=[n]}p&&(r=t(r?t([],r):[],p))}b--,d=v[b],_=h[b],p=D[b],y=x[b],0===b&&(v=[],h=[],D=[],x=[]);return r},setLexicalEnvironmentFlags:function(e,t){y=t?y|e:y&~e},getLexicalEnvironmentFlags:function(){return y},hoistVariableDeclaration:function(t){e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed.");var r=e.setEmitFlags(i.createVariableDeclaration(t),64);d?d.push(r):d=[r];1&y&&(y|=2)},hoistFunctionDeclaration:function(t){e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(t,1048576),_?_.push(t):_=[t]},addInitializationStatement:function(t){e.Debug.assert(A>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(A<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(t,1048576),p?p.push(t):p=[t]},startBlockScope:function(){e.Debug.assert(A>0,"Cannot start a block scope during initialization."),e.Debug.assert(A<2,"Cannot start a block scope after transformation has completed."),E[T]=f,T++,f=void 0},endBlockScope:function(){e.Debug.assert(A>0,"Cannot end a block scope during initialization."),e.Debug.assert(A<2,"Cannot end a block scope after transformation has completed.");var t=e.some(f)?[i.createVariableStatement(void 0,i.createVariableDeclarationList(f.map((function(e){return i.createVariableDeclaration(e)})),1))]:void 0;T--,f=E[T],0===T&&(E=[]);return t},addBlockScopedVariable:function(t){e.Debug.assert(T>0,"Cannot add a block scoped variable outside of an iteration body."),(f||(f=[])).push(t)},requestEmitHelper:function t(r){if(e.Debug.assert(A>0,"Cannot modify the transformation context during initialization."),e.Debug.assert(A<2,"Cannot modify the transformation context after transformation has completed."),e.Debug.assert(!r.scoped,"Cannot request a scoped emit helper."),r.dependencies)for(var n=0,i=r.dependencies;n0,"Cannot modify the transformation context during initialization."),e.Debug.assert(A<2,"Cannot modify the transformation context after transformation has completed.");var t=g;return g=void 0,t},enableSubstitution:function(t){e.Debug.assert(A<2,"Cannot modify the transformation context after transformation has completed."),m[t]|=1},enableEmitNotification:function(t){e.Debug.assert(A<2,"Cannot modify the transformation context after transformation has completed."),m[t]|=2},isSubstitutionEnabled:J,isEmitNotificationEnabled:K,get onSubstituteNode(){return C},set onSubstituteNode(t){e.Debug.assert(A<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(void 0!==t,"Value must not be 'undefined'"),C=t},get onEmitNode(){return k},set onEmitNode(t){e.Debug.assert(A<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(void 0!==t,"Value must not be 'undefined'"),k=t},addDiagnostic:function(e){F.push(e)}},P=0,w=o;P"],e[8192]=["[","]"],e}();function a(t,r,n,i,a,s){void 0===i&&(i=!1);var u=e.isArray(n)?n:e.getSourceFilesToEmit(t,n,i),l=t.getCompilerOptions();if(e.outFile(l)){var d=t.getPrependNodes();if(u.length||d.length){var _=e.factory.createBundle(u,d);if(g=r(c(_,t,i),_))return g}}else{if(!a)for(var p=0,f=u;p0){var i=t.preserveSourceNewlinesStack[t.stackIndex],a=t.containerPosStack[t.stackIndex],o=t.containerEndStack[t.stackIndex],s=t.declarationListContainerEndStack[t.stackIndex],c=t.shouldEmitCommentsStack[t.stackIndex],u=t.shouldEmitSourceMapsStack[t.stackIndex];Ae(i),u&&Wr(e),c&&Tr(e,a,o,s),null==N||N(e),t.stackIndex--}}),void 0);function t(t,r,n){var i="left"===n?ne.getParenthesizeLeftSideOfBinaryForOperator(r.operatorToken.kind):ne.getParenthesizeRightSideOfBinaryForOperator(r.operatorToken.kind),a=we(0,1,t);if(a===Re&&(e.Debug.assertIsDefined(x),a=Ie(1,1,t=i(e.cast(x,e.isExpression))),x=void 0),(a===Sr||a===Vr||a===Me)&&e.isBinaryExpression(t))return t;b=i,a(1,t)}}();return xe(),{printNode:function(t,r,n){switch(t){case 0:e.Debug.assert(e.isSourceFile(r),"Expected a SourceFile node.");break;case 2:e.Debug.assert(e.isIdentifier(r),"Expected an Identifier node.");break;case 1:e.Debug.assert(e.isExpression(r),"Expected an Expression node.")}switch(r.kind){case 298:return oe(r);case 299:return ae(r);case 300:return function(e,t){var r=p;De(t,void 0),ve(4,e,void 0),xe(),p=r}(r,me()),ye()}return se(t,r,n,me()),ye()},printList:function(e,t,r){return ce(e,t,r,me()),ye()},printFile:oe,printBundle:ae,writeNode:se,writeList:ce,writeFile:ge,writeBundle:fe,bundleFileInfo:K};function ae(e){return fe(e,me(),void 0),ye()}function oe(e){return ge(e,me(),void 0),ye()}function se(e,t,r,n){var i=p;De(n,void 0),ve(e,t,r),xe(),p=i}function ce(e,t,r,n){var i=p;De(n,void 0),r&&he(r),Nt(void 0,t,e),xe(),p=i}function ue(){return p.getTextPosWithWriteLine?p.getTextPosWithWriteLine():p.getTextPos()}function le(t,r,n){var i=e.lastOrUndefined(K.sections);i&&i.kind===n?i.end=r:K.sections.push({pos:t,end:r,kind:n})}function de(t){if(U&&K&&n&&(e.isDeclaration(t)||e.isVariableStatement(t))&&e.isInternalDeclaration(t,n)&&"internal"!==q){var r=q;return pe(p.getTextPos()),V=ue(),q="internal",r}}function _e(e){e&&(pe(p.getTextPos()),V=ue(),q=e)}function pe(e){return V"),Jt(),Se(e.type),dr(e)}(r);case 176:return function(e){lr(e),vt(e,e.modifiers),Lt("new"),Jt(),Ct(e,e.typeParameters),kt(e,e.parameters),Jt(),Ot("=>"),Jt(),Se(e.type),dr(e)}(r);case 177:return function(e){Lt("typeof"),Jt(),Se(e.exprName)}(r);case 178:return function(t){Ot("{");var r=1&e.getEmitFlags(t)?768:32897;Nt(t,t.members,524288|r),Ot("}")}(r);case 179:return function(e){Se(e.elementType,ne.parenthesizeElementTypeOfArrayType),Ot("["),Ot("]")}(r);case 180:return function(t){Ge(22,t.pos,Ot,t);var r=1&e.getEmitFlags(t)?528:657;Nt(t,t.elements,524288|r),Ge(23,t.elements.end,Ot,t)}(r);case 181:return function(e){Se(e.type,ne.parenthesizeElementTypeOfArrayType),Ot("?")}(r);case 183:return function(e){Nt(e,e.types,516,ne.parenthesizeMemberOfElementType)}(r);case 184:return function(e){Nt(e,e.types,520,ne.parenthesizeMemberOfElementType)}(r);case 185:return function(e){Se(e.checkType,ne.parenthesizeMemberOfConditionalType),Jt(),Lt("extends"),Jt(),Se(e.extendsType,ne.parenthesizeMemberOfConditionalType),Jt(),Ot("?"),Jt(),Se(e.trueType),Jt(),Ot(":"),Jt(),Se(e.falseType)}(r);case 186:return function(e){Lt("infer"),Jt(),Se(e.typeParameter)}(r);case 187:return function(e){Ot("("),Se(e.type),Ot(")")}(r);case 224:return function(e){Te(e.expression,ne.parenthesizeLeftSideOfAccess),Tt(e,e.typeArguments)}(r);case 188:return void Lt("this");case 189:return function(e){Ht(e.operator,Lt),Jt(),Se(e.type,ne.parenthesizeMemberOfElementType)}(r);case 190:return function(e){Se(e.objectType,ne.parenthesizeMemberOfElementType),Ot("["),Se(e.indexType),Ot("]")}(r);case 191:return function(t){var r=e.getEmitFlags(t);Ot("{"),1&r?Jt():(zt(),Ut());t.readonlyToken&&(Se(t.readonlyToken),142!==t.readonlyToken.kind&&Lt("readonly"),Jt());Ot("["),Fe(3,t.typeParameter),t.nameType&&(Jt(),Lt("as"),Jt(),Se(t.nameType));Ot("]"),t.questionToken&&(Se(t.questionToken),57!==t.questionToken.kind&&Ot("?"));Ot(":"),Jt(),Se(t.type),Mt(),1&r?Jt():(zt(),Vt());Ot("}")}(r);case 192:return function(e){Te(e.literal)}(r);case 193:return function(e){Se(e.dotDotDotToken),Se(e.name),Se(e.questionToken),Ge(58,e.name.end,Ot,e),Jt(),Se(e.type)}(r);case 194:return function(e){Se(e.head),Nt(e,e.templateSpans,262144)}(r);case 195:return function(e){Se(e.type),Se(e.literal)}(r);case 196:return function(e){e.isTypeOf&&(Lt("typeof"),Jt());Lt("import"),Ot("("),Se(e.argument),Ot(")"),e.qualifier&&(Ot("."),Se(e.qualifier));Tt(e,e.typeArguments)}(r);case 197:return function(e){Ot("{"),Nt(e,e.elements,525136),Ot("}")}(r);case 198:return function(e){Ot("["),Nt(e,e.elements,524880),Ot("]")}(r);case 199:return function(e){Se(e.dotDotDotToken),e.propertyName&&(Se(e.propertyName),Ot(":"),Jt());Se(e.name),Dt(e.initializer,e.name.end,e,ne.parenthesizeExpressionForDisallowedComma)}(r);case 229:return function(e){Te(e.expression),Se(e.literal)}(r);case 230:return void Mt();case 231:return function(e){Ve(e,!e.multiLine&&or(e))}(r);case 233:return function(e){vt(e,e.modifiers),Se(e.declarationList),Mt()}(r);case 232:return qe(!1);case 234:return function(t){Te(t.expression,ne.parenthesizeExpressionOfExpressionStatement),(!e.isJsonSourceFile(n)||e.nodeIsSynthesized(t.expression))&&Mt()}(r);case 235:return function(e){var t=Ge(98,e.pos,Lt,e);Jt(),Ge(20,t,Ot,e),Te(e.expression),Ge(21,e.expression.end,Ot,e),St(e,e.thenStatement),e.elseStatement&&(Gt(e,e.thenStatement,e.elseStatement),Ge(90,e.thenStatement.end,Lt,e),235===e.elseStatement.kind?(Jt(),Se(e.elseStatement)):St(e,e.elseStatement))}(r);case 236:return function(t){Ge(89,t.pos,Lt,t),St(t,t.statement),e.isBlock(t.statement)&&!j?Jt():Gt(t,t.statement,t.expression);We(t,t.statement.end),Mt()}(r);case 237:return function(e){We(e,e.pos),St(e,e.statement)}(r);case 238:return function(e){var t=Ge(96,e.pos,Lt,e);Jt();var r=Ge(20,t,Ot,e);He(e.initializer),r=Ge(26,e.initializer?e.initializer.end:r,Ot,e),bt(e.condition),r=Ge(26,e.condition?e.condition.end:r,Ot,e),bt(e.incrementor),Ge(21,e.incrementor?e.incrementor.end:r,Ot,e),St(e,e.statement)}(r);case 239:return function(e){var t=Ge(96,e.pos,Lt,e);Jt(),Ge(20,t,Ot,e),He(e.initializer),Jt(),Ge(100,e.initializer.end,Lt,e),Jt(),Te(e.expression),Ge(21,e.expression.end,Ot,e),St(e,e.statement)}(r);case 240:return function(e){var t=Ge(96,e.pos,Lt,e);Jt(),function(e){e&&(Se(e),Jt())}(e.awaitModifier),Ge(20,t,Ot,e),He(e.initializer),Jt(),Ge(157,e.initializer.end,Lt,e),Jt(),Te(e.expression),Ge(21,e.expression.end,Ot,e),St(e,e.statement)}(r);case 241:return function(e){Ge(85,e.pos,Lt,e),xt(e.label),Mt()}(r);case 242:return function(e){Ge(80,e.pos,Lt,e),xt(e.label),Mt()}(r);case 243:return function(e){Ge(104,e.pos,Lt,e),bt(e.expression),Mt()}(r);case 244:return function(e){var t=Ge(115,e.pos,Lt,e);Jt(),Ge(20,t,Ot,e),Te(e.expression),Ge(21,e.expression.end,Ot,e),St(e,e.statement)}(r);case 245:return function(e){var t=Ge(106,e.pos,Lt,e);Jt(),Ge(20,t,Ot,e),Te(e.expression),Ge(21,e.expression.end,Ot,e),Jt(),Se(e.caseBlock)}(r);case 246:return function(e){Se(e.label),Ge(58,e.label.end,Ot,e),Jt(),Se(e.statement)}(r);case 247:return function(e){Ge(108,e.pos,Lt,e),bt(e.expression),Mt()}(r);case 248:return function(e){Ge(110,e.pos,Lt,e),Jt(),Se(e.tryBlock),e.catchClause&&(Gt(e,e.tryBlock,e.catchClause),Se(e.catchClause));e.finallyBlock&&(Gt(e,e.catchClause||e.tryBlock,e.finallyBlock),Ge(95,(e.catchClause||e.tryBlock).end,Lt,e),Jt(),Se(e.finallyBlock))}(r);case 249:return function(e){qt(86,e.pos,Lt),Mt()}(r);case 250:return function(e){Se(e.name),Se(e.exclamationToken),ht(e.type),Dt(e.initializer,e.type?e.type.end:e.name.end,e,ne.parenthesizeExpressionForDisallowedComma)}(r);case 251:return function(t){Lt(e.isLet(t)?"let":e.isVarConst(t)?"const":"var"),Jt(),Nt(t,t.declarations,528)}(r);case 252:return function(e){Ye(e)}(r);case 253:return function(e){et(e)}(r);case 254:return function(e){Et(e,e.decorators),vt(e,e.modifiers),Lt("interface"),Jt(),Se(e.name),Ct(e,e.typeParameters),Nt(e,e.heritageClauses,512),Jt(),Ot("{"),Nt(e,e.members,129),Ot("}")}(r);case 255:return function(e){Et(e,e.decorators),vt(e,e.modifiers),Lt("type"),Jt(),Se(e.name),Ct(e,e.typeParameters),Jt(),Ot("="),Jt(),Se(e.type),Mt()}(r);case 256:return function(e){vt(e,e.modifiers),Lt("enum"),Jt(),Se(e.name),Jt(),Ot("{"),Nt(e,e.members,145),Ot("}")}(r);case 257:return function(t){vt(t,t.modifiers),1024&~t.flags&&(Lt(16&t.flags?"namespace":"module"),Jt());Se(t.name);var r=t.body;if(!r)return Mt();for(;r&&e.isModuleDeclaration(r);)Ot("."),Se(r.name),r=r.body;Jt(),Se(r)}(r);case 258:return function(t){lr(t),e.forEach(t.statements,pr),Ve(t,or(t)),dr(t)}(r);case 259:return function(e){Ge(18,e.pos,Ot,e),Nt(e,e.clauses,129),Ge(19,e.clauses.end,Ot,e,!0)}(r);case 260:return function(e){var t=Ge(92,e.pos,Lt,e);Jt(),t=Ge(126,t,Lt,e),Jt(),t=Ge(140,t,Lt,e),Jt(),Se(e.name),Mt()}(r);case 261:return function(e){vt(e,e.modifiers),Ge(99,e.modifiers?e.modifiers.end:e.pos,Lt,e),Jt(),e.isTypeOnly&&(Ge(149,e.pos,Lt,e),Jt());Se(e.name),Jt(),Ge(62,e.name.end,Ot,e),Jt(),function(e){78===e.kind?Te(e):Se(e)}(e.moduleReference),Mt()}(r);case 262:return function(e){vt(e,e.modifiers),Ge(99,e.modifiers?e.modifiers.end:e.pos,Lt,e),Jt(),e.importClause&&(Se(e.importClause),Jt(),Ge(153,e.importClause.end,Lt,e),Jt());Te(e.moduleSpecifier),Mt()}(r);case 263:return function(e){e.isTypeOnly&&(Ge(149,e.pos,Lt,e),Jt());Se(e.name),e.name&&e.namedBindings&&(Ge(27,e.name.end,Ot,e),Jt());Se(e.namedBindings)}(r);case 264:return function(e){var t=Ge(41,e.pos,Ot,e);Jt(),Ge(126,t,Lt,e),Jt(),Se(e.name)}(r);case 270:return function(e){var t=Ge(41,e.pos,Ot,e);Jt(),Ge(126,t,Lt,e),Jt(),Se(e.name)}(r);case 265:return function(e){tt(e)}(r);case 266:return function(e){rt(e)}(r);case 267:return function(e){var t=Ge(92,e.pos,Lt,e);Jt(),e.isExportEquals?Ge(62,t,Rt,e):Ge(87,t,Lt,e);Jt(),Te(e.expression,e.isExportEquals?ne.getParenthesizeRightSideOfBinaryForOperator(62):ne.parenthesizeExpressionOfExportDefault),Mt()}(r);case 268:return function(e){var t=Ge(92,e.pos,Lt,e);Jt(),e.isTypeOnly&&(t=Ge(149,t,Lt,e),Jt());e.exportClause?Se(e.exportClause):t=Ge(41,t,Ot,e);if(e.moduleSpecifier){Jt(),Ge(153,e.exportClause?e.exportClause.end:t,Lt,e),Jt(),Te(e.moduleSpecifier)}Mt()}(r);case 269:return function(e){tt(e)}(r);case 271:return function(e){rt(e)}(r);case 272:return;case 273:return function(e){Lt("require"),Ot("("),Te(e.expression),Ot(")")}(r);case 11:return function(e){p.writeLiteral(e.text)}(r);case 276:case 279:return function(t){if(Ot("<"),e.isJsxOpeningElement(t)){var r=rr(t.tagName,t);nt(t.tagName),Tt(t,t.typeArguments),t.attributes.properties&&t.attributes.properties.length>0&&Jt(),Se(t.attributes),nr(t.attributes,t),$t(r)}Ot(">")}(r);case 277:case 280:return function(t){Ot("")}(r);case 281:return function(e){Se(e.name),function(e,t,r,n){r&&(t(e),n(r))}("=",Ot,e.initializer,Ce)}(r);case 282:return function(e){Nt(e,e.properties,262656)}(r);case 283:return function(e){Ot("{..."),Te(e.expression),Ot("}")}(r);case 284:return function(t){var r;if(t.expression||!Z&&!e.nodeIsSynthesized(t)&&(o=t.pos,function(t){var r=!1;return e.forEachTrailingCommentRange((null==n?void 0:n.text)||"",t+1,(function(){return r=!0})),r}(o)||function(t){var r=!1;return e.forEachLeadingCommentRange((null==n?void 0:n.text)||"",t+1,(function(){return r=!0})),r}(o))){var i=n&&!e.nodeIsSynthesized(t)&&e.getLineAndCharacterOfPosition(n,t.pos).line!==e.getLineAndCharacterOfPosition(n,t.end).line;i&&p.increaseIndent();var a=Ge(18,t.pos,Ot,t);Se(t.dotDotDotToken),Te(t.expression),Ge(19,(null===(r=t.expression)||void 0===r?void 0:r.end)||a,Ot,t),i&&p.decreaseIndent()}var o}(r);case 285:return function(e){Ge(81,e.pos,Lt,e),Jt(),Te(e.expression,ne.parenthesizeExpressionForDisallowedComma),it(e,e.statements,e.expression.end)}(r);case 286:return function(e){var t=Ge(87,e.pos,Lt,e);it(e,e.statements,t)}(r);case 287:return function(e){Jt(),Ht(e.token,Lt),Jt(),Nt(e,e.types,528)}(r);case 288:return function(e){var t=Ge(82,e.pos,Lt,e);Jt(),e.variableDeclaration&&(Ge(20,t,Ot,e),Se(e.variableDeclaration),Ge(21,e.variableDeclaration.end,Ot,e),Jt());Se(e.block)}(r);case 289:return function(t){Se(t.name),Ot(":"),Jt();var r=t.initializer;if(0==(512&e.getEmitFlags(r))){Rr(e.getCommentRange(r).pos)}Te(r,ne.parenthesizeExpressionForDisallowedComma)}(r);case 290:return function(e){Se(e.name),e.objectAssignmentInitializer&&(Jt(),Ot("="),Jt(),Te(e.objectAssignmentInitializer,ne.parenthesizeExpressionForDisallowedComma))}(r);case 291:return function(e){e.expression&&(Ge(25,e.pos,Ot,e),Te(e.expression,ne.parenthesizeExpressionForDisallowedComma))}(r);case 292:return function(e){Se(e.name),Dt(e.initializer,e.name.end,e,ne.parenthesizeExpressionForDisallowedComma)}(r);case 293:return Ke(r);case 300:case 294:return function(e){for(var t=0,r=e.texts;t=1&&!e.isJsonSourceFile(n)?64:0;Nt(t,t.properties,526226|a|i),r&&Vt()}(r);case 202:return function(t){Te(t.expression,ne.parenthesizeLeftSideOfAccess);var r=t.questionDotToken||e.setTextRangePosEnd(e.factory.createToken(24),t.expression.end,t.name.pos),n=ar(t,t.expression,r),i=ar(t,r,t.name);Xt(n,!1),28===r.kind||!function(t){if(t=e.skipPartiallyEmittedExpressions(t),e.isNumericLiteral(t)){var r=ur(t,!0,!1);return!t.numericLiteralFlags&&!e.stringContains(r,e.tokenToString(24))}if(e.isAccessExpression(t)){var n=e.getConstantValue(t);return"number"==typeof n&&isFinite(n)&&Math.floor(n)===n}}(t.expression)||p.hasTrailingComment()||p.hasTrailingWhitespace()||Ot(".");t.questionDotToken?Se(r):Ge(r.kind,t.expression.end,Ot,t);Xt(i,!1),Se(t.name),$t(n,i)}(r);case 203:return function(e){Te(e.expression,ne.parenthesizeLeftSideOfAccess),Se(e.questionDotToken),Ge(22,e.expression.end,Ot,e),Te(e.argumentExpression),Ge(23,e.argumentExpression.end,Ot,e)}(r);case 204:return function(e){Te(e.expression,ne.parenthesizeLeftSideOfAccess),Se(e.questionDotToken),Tt(e,e.typeArguments),Pt(e,e.arguments,2576,ne.parenthesizeExpressionForDisallowedComma)}(r);case 205:return function(e){Ge(102,e.pos,Lt,e),Jt(),Te(e.expression,ne.parenthesizeExpressionOfNew),Tt(e,e.typeArguments),Pt(e,e.arguments,18960,ne.parenthesizeExpressionForDisallowedComma)}(r);case 206:return function(e){Te(e.tag,ne.parenthesizeLeftSideOfAccess),Tt(e,e.typeArguments),Jt(),Te(e.template)}(r);case 207:return function(e){Ot("<"),Se(e.type),Ot(">"),Te(e.expression,ne.parenthesizeOperandOfPrefixUnary)}(r);case 208:return function(e){var t=Ge(20,e.pos,Ot,e),r=rr(e.expression,e);Te(e.expression,void 0),nr(e.expression,e),$t(r),Ge(21,e.expression?e.expression.end:t,Ot,e)}(r);case 209:return function(e){gr(e.name),Ye(e)}(r);case 210:return function(e){Et(e,e.decorators),vt(e,e.modifiers),Xe(e,Ue)}(r);case 211:return function(e){Ge(88,e.pos,Lt,e),Jt(),Te(e.expression,ne.parenthesizeOperandOfPrefixUnary)}(r);case 212:return function(e){Ge(111,e.pos,Lt,e),Jt(),Te(e.expression,ne.parenthesizeOperandOfPrefixUnary)}(r);case 213:return function(e){Ge(113,e.pos,Lt,e),Jt(),Te(e.expression,ne.parenthesizeOperandOfPrefixUnary)}(r);case 214:return function(e){Ge(130,e.pos,Lt,e),Jt(),Te(e.expression,ne.parenthesizeOperandOfPrefixUnary)}(r);case 215:return function(e){Ht(e.operator,Rt),function(e){var t=e.operand;return 215===t.kind&&(39===e.operator&&(39===t.operator||45===t.operator)||40===e.operator&&(40===t.operator||46===t.operator))}(e)&&Jt();Te(e.operand,ne.parenthesizeOperandOfPrefixUnary)}(r);case 216:return function(e){Te(e.operand,ne.parenthesizeOperandOfPostfixUnary),Ht(e.operator,Rt)}(r);case 217:return ie(r);case 218:return function(e){var t=ar(e,e.condition,e.questionToken),r=ar(e,e.questionToken,e.whenTrue),n=ar(e,e.whenTrue,e.colonToken),i=ar(e,e.colonToken,e.whenFalse);Te(e.condition,ne.parenthesizeConditionOfConditionalExpression),Xt(t,!0),Se(e.questionToken),Xt(r,!0),Te(e.whenTrue,ne.parenthesizeBranchOfConditionalExpression),$t(t,r),Xt(n,!0),Se(e.colonToken),Xt(i,!0),Te(e.whenFalse,ne.parenthesizeBranchOfConditionalExpression),$t(n,i)}(r);case 219:return function(e){Se(e.head),Nt(e,e.templateSpans,262144)}(r);case 220:return function(e){Ge(124,e.pos,Lt,e),Se(e.asteriskToken),bt(e.expression,ne.parenthesizeExpressionForDisallowedComma)}(r);case 221:return function(e){Ge(25,e.pos,Ot,e),Te(e.expression,ne.parenthesizeExpressionForDisallowedComma)}(r);case 222:return function(e){gr(e.name),et(e)}(r);case 223:return;case 225:return function(e){Te(e.expression,void 0),e.type&&(Jt(),Lt("as"),Jt(),Se(e.type))}(r);case 226:return function(e){Te(e.expression,ne.parenthesizeLeftSideOfAccess),Rt("!")}(r);case 227:return function(e){qt(e.keywordToken,e.pos,Ot),Ot("."),Se(e.name)}(r);case 228:return e.Debug.fail("SyntheticExpression should never be printed.");case 274:return function(e){Se(e.openingElement),Nt(e,e.children,262144),Se(e.closingElement)}(r);case 275:return function(e){Ot("<"),nt(e.tagName),Tt(e,e.typeArguments),Jt(),Se(e.attributes),Ot("/>")}(r);case 278:return function(e){Se(e.openingFragment),Nt(e,e.children,262144),Se(e.closingFragment)}(r);case 338:return e.Debug.fail("SyntaxList should not be printed");case 339:return;case 340:return function(e){Te(e.expression)}(r);case 341:return function(e){Pt(e,e.elements,528,void 0)}(r);case 342:case 343:return;case 344:return e.Debug.fail("SyntheticReferenceExpression should not be printed")}return e.isKeyword(r.kind)?Wt(r,Lt):e.isTokenKind(r.kind)?Wt(r,Ot):void e.Debug.fail("Unhandled SyntaxKind: "+e.Debug.formatSyntaxKind(r.kind)+".")}function Re(t,r){var n=Ie(1,t,r);e.Debug.assertIsDefined(x),r=x,x=void 0,n(t,r)}function Be(r){var i=!1,a=299===r.kind?r:void 0;if(!a||R!==e.ModuleKind.None){for(var o=a?a.prepends.length:0,s=a?a.sourceFiles.length+o:1,c=0;c0)return!1;r=o}return!0}(t)?Qe:Ze;Fr?Fr(t,t.statements,r):r(t);Vt(),qt(19,t.statements.end,Ot,t),null==N||N(t)}(i),dr(t),a&&Vt()}else r(t),Jt(),Te(i,ne.parenthesizeConciseBodyOfArrowFunction);else r(t),Mt()}function $e(e){Ct(e,e.typeParameters),kt(e,e.parameters),ht(e.type)}function Qe(e){Ze(e,!0)}function Ze(e,t){var r=pt(e.statements),n=p.getTextPos();Be(e),0===r&&n===p.getTextPos()&&t?(Vt(),Nt(e,e.statements,768),Ut()):Nt(e,e.statements,1,void 0,r)}function et(t){e.forEach(t.members,fr),Et(t,t.decorators),vt(t,t.modifiers),Lt("class"),t.name&&(Jt(),Ee(t.name));var r=65536&e.getEmitFlags(t);r&&Ut(),Ct(t,t.typeParameters),Nt(t,t.heritageClauses,0),Jt(),Ot("{"),Nt(t,t.members,129),Ot("}"),r&&Vt()}function tt(e){Ot("{"),Nt(e,e.elements,525136),Ot("}")}function rt(e){e.propertyName&&(Se(e.propertyName),Jt(),Ge(126,e.propertyName.end,Lt,e),Jt()),Se(e.name)}function nt(e){78===e.kind?Te(e):Se(e)}function it(t,r,i){var a=163969;1===r.length&&(e.nodeIsSynthesized(t)||e.nodeIsSynthesized(r[0])||e.rangeStartPositionsAreOnSameLine(t,r[0],n))?(qt(58,i,Ot,t),Jt(),a&=-130):Ge(58,i,Ot,t),Nt(t,r,a)}function at(t){Nt(t,e.factory.createNodeArray(t.jsDocPropertyTags),33)}function ot(t){t.typeParameters&&Nt(t,e.factory.createNodeArray(t.typeParameters),33),t.parameters&&Nt(t,e.factory.createNodeArray(t.parameters),33),t.type&&(zt(),Jt(),Ot("*"),Jt(),Se(t.type))}function st(e){Ot("@"),Se(e)}function ct(t){var r=e.getTextOfJSDocComment(t);r&&(Jt(),J(r))}function ut(e){e&&(Jt(),Ot("{"),Se(e.type),Ot("}"))}function lt(t){zt();var r=t.statements;if(Fr&&(0===r.length||!e.isPrologueDirective(r[0])||e.nodeIsSynthesized(r[0])))return void Fr(t,r,_t);_t(t)}function dt(e,t,r,i){if(e){var a=p.getTextPos();jt('/// '),K&&K.sections.push({pos:a,end:p.getTextPos(),kind:"no-default-lib"}),zt()}if(n&&n.moduleName&&(jt('/// '),zt()),n&&n.amdDependencies)for(var o=0,s=n.amdDependencies;o'):jt('/// '),zt()}for(var u=0,l=t;u'),K&&K.sections.push({pos:a,end:p.getTextPos(),kind:"reference",data:d.fileName}),zt()}for(var _=0,f=r;_'),K&&K.sections.push({pos:a,end:p.getTextPos(),kind:"type",data:d.fileName}),zt()}for(var g=0,m=i;g'),K&&K.sections.push({pos:a,end:p.getTextPos(),kind:"lib",data:d.fileName}),zt()}}function _t(t){var r=t.statements;lr(t),e.forEach(t.statements,pr),Be(t);var n=e.findIndex(r,(function(t){return!e.isPrologueDirective(t)}));!function(e){e.isDeclarationFile&&dt(e.hasNoDefaultLib,e.referencedFiles,e.typeReferenceDirectives,e.libReferenceDirectives)}(t),Nt(t,r,1,void 0,-1===n?r.length:n),dr(t)}function pt(t,r,n,i){for(var a=!!r,o=0;o=a.length||0===u;if(l&&32768&o)return P&&P(a),void(w&&w(a));if(15360&o&&(Ot(function(e){return i[15360&e][0]}(o)),l&&a&&Rr(a.pos,!0)),P&&P(a),l)1&o&&(!j||r&&!e.rangeIsOnSingleLine(r,n))?zt():256&o&&!(524288&o)&&Jt();else{e.Debug.type(a);var d=0==(262144&o),p=d,f=Qt(r,a,o);f?(zt(f),p=!1):256&o&&Jt(),128&o&&Ut();for(var g=void 0,m=void 0,y=!1,v=0;v0?(0==(131&o)&&(Ut(),y=!0),zt(D),p=!1):g&&512&o&&Jt()}if(m=de(h),p){if(Rr)Rr(e.getCommentRange(h).pos)}else p=d;_=h.pos,1===t.length?t(h):t(h,s),y&&(Vt(),y=!1),g=h}var x=g?e.getEmitFlags(g):0,b=Z||!!(1024&x),S=(null==a?void 0:a.hasTrailingComma)&&64&o&&16&o;S&&(g&&!b?Ge(27,g.end,Ot,g):Ot(",")),g&&(r?r.end:-1)!==g.end&&60&o&&!b&&Mr(S&&(null==a?void 0:a.end)?a.end:g.end),128&o&&Vt(),_e(m);var E=er(r,a,o);E?zt(E):2097408&o&&Jt()}w&&w(a),15360&o&&(l&&a&&Mr(a.end),Ot(function(e){return i[15360&e][1]}(o)))}}function It(e,t){p.writeSymbol(e,t)}function Ot(e){p.writePunctuation(e)}function Mt(){p.writeTrailingSemicolon(";")}function Lt(e){p.writeKeyword(e)}function Rt(e){p.writeOperator(e)}function Bt(e){p.writeParameter(e)}function jt(e){p.writeComment(e)}function Jt(){p.writeSpace(" ")}function Kt(e){p.writeProperty(e)}function zt(e){void 0===e&&(e=1);for(var t=0;t0)}function Ut(){p.increaseIndent()}function Vt(){p.decreaseIndent()}function qt(t,r,n,i){return W?Ht(t,n,r):function(t,r,n,i,a){if(W||t&&e.isInJsonFile(t))return a(r,n,i);var o=t&&t.emitNode,s=o&&o.flags||0,c=o&&o.tokenSourceMapRanges&&o.tokenSourceMapRanges[r],u=c&&c.source||y;i=Hr(u,c?c.pos:i),0==(128&s)&&i>=0&&Yr(u,i);i=a(r,n,i),c&&(i=c.end);0==(256&s)&&i>=0&&Yr(u,i);return i}(i,t,n,r,Ht)}function Wt(t,r){I&&I(t),r(e.tokenToString(t.kind)),O&&O(t)}function Ht(t,r,n){var i=e.tokenToString(t);return r(i),n<0?n:n+i.length}function Gt(t,r,n){if(1&e.getEmitFlags(t))Jt();else if(j){var i=ar(t,r,n);i?zt(i):Jt()}else zt()}function Yt(t){for(var r=t.split(/\r\n?|\n/g),n=e.guessIndentation(r),i=0,a=r;i-1&&i.indexOf(r)===a+1}(t,r)?tr((function(i){return e.getLinesBetweenRangeEndAndRangeStart(t,r,n,i)})):!j&&(a=t,o=r,(a=e.getOriginalNode(a)).parent&&a.parent===e.getOriginalNode(o).parent)?e.rangeEndIsOnSameLineAsRangeStart(t,r,n)?0:1:65536&i?1:0;if(ir(t,i)||ir(r,i))return 1}else if(e.getStartsOnNewLine(r))return 1;var a,o;return 1&i?1:0}function er(t,r,i){if(2&i||j){if(65536&i)return 1;var a=e.lastOrUndefined(r);if(void 0===a)return!t||e.rangeIsOnSingleLine(t,n)?0:1;if(t&&!e.positionIsSynthesized(t.pos)&&!e.nodeIsSynthesized(a)&&(!a.parent||a.parent===t)){if(j){var o=e.isNodeArray(r)&&!e.positionIsSynthesized(r.end)?r.end:a.end;return tr((function(r){return e.getLinesBetweenPositionAndNextNonWhitespaceCharacter(o,t.end,n,r)}))}return e.rangeEndPositionsAreOnSameLine(t,a,n)?0:1}if(ir(a,i))return 1}return 1&i&&!(131072&i)?1:0}function tr(t){e.Debug.assert(!!j);var r=t(!0);return 0===r?t(!1):r}function rr(e,t){var r=j&&Qt(t,[e],0);return r&&Xt(r,!1),!!r}function nr(e,t){var r=j&&er(t,[e],0);r&&zt(r)}function ir(t,r){if(e.nodeIsSynthesized(t)){var n=e.getStartsOnNewLine(t);return void 0===n?0!=(65536&r):n}return 0!=(65536&r)}function ar(t,r,i){return 131072&e.getEmitFlags(t)?0:(t=sr(t),r=sr(r),i=sr(i),e.getStartsOnNewLine(i)?1:e.nodeIsSynthesized(t)||e.nodeIsSynthesized(r)||e.nodeIsSynthesized(i)?0:j?tr((function(t){return e.getLinesBetweenRangeEndAndRangeStart(r,i,n,t)})):e.rangeEndIsOnSameLineAsRangeStart(r,i,n)?0:1)}function or(t){return 0===t.statements.length&&e.rangeEndIsOnSameLineAsRangeStart(t,t,n)}function sr(t){for(;208===t.kind&&e.nodeIsSynthesized(t);)t=t.expression;return t}function cr(t,r){return e.isGeneratedIdentifier(t)?mr(t):(e.isIdentifier(t)||e.isPrivateIdentifier(t))&&(e.nodeIsSynthesized(t)||!t.parent||!n||t.parent&&n&&e.getSourceFileOfNode(t)!==e.getOriginalNode(n))?e.idText(t):10===t.kind&&t.textSourceNode?cr(t.textSourceNode,r):!e.isLiteralExpression(t)||!e.nodeIsSynthesized(t)&&t.parent?e.getSourceTextOfNodeFromSourceFile(n,t,r):t.text}function ur(r,i,a){if(10===r.kind&&r.textSourceNode){var o=r.textSourceNode;if(e.isIdentifier(o)||e.isNumericLiteral(o)){var s=e.isNumericLiteral(o)?o.text:cr(o);return a?'"'+e.escapeJsxAttributeString(s)+'"':i||16777216&e.getEmitFlags(r)?'"'+e.escapeString(s)+'"':'"'+e.escapeNonAsciiString(s)+'"'}return ur(o,i,a)}var c=(i?1:0)|(a?2:0)|(t.terminateUnterminatedLiterals?4:0)|(t.target&&99===t.target?8:0);return e.getLiteralText(r,n,c)}function lr(t){t&&524288&e.getEmitFlags(t)||(c.push(u),u=0,l.push(d))}function dr(t){t&&524288&e.getEmitFlags(t)||(u=c.pop(),d=l.pop())}function _r(t){d&&d!==e.lastOrUndefined(l)||(d=new e.Set),d.add(t)}function pr(t){if(t)switch(t.kind){case 231:e.forEach(t.statements,pr);break;case 246:case 244:case 236:case 237:pr(t.statement);break;case 235:pr(t.thenStatement),pr(t.elseStatement);break;case 238:case 240:case 239:pr(t.initializer),pr(t.statement);break;case 245:pr(t.caseBlock);break;case 259:e.forEach(t.clauses,pr);break;case 285:case 286:e.forEach(t.statements,pr);break;case 248:pr(t.tryBlock),pr(t.catchClause),pr(t.finallyBlock);break;case 288:pr(t.variableDeclaration),pr(t.block);break;case 233:pr(t.declarationList);break;case 251:e.forEach(t.declarations,pr);break;case 250:case 161:case 199:case 253:gr(t.name);break;case 252:gr(t.name),524288&e.getEmitFlags(t)&&(e.forEach(t.parameters,pr),pr(t.body));break;case 197:case 198:e.forEach(t.elements,pr);break;case 262:pr(t.importClause);break;case 263:gr(t.name),pr(t.namedBindings);break;case 264:case 270:gr(t.name);break;case 265:e.forEach(t.elements,pr);break;case 266:gr(t.propertyName||t.name)}}function fr(e){if(e)switch(e.kind){case 289:case 290:case 164:case 166:case 168:case 169:gr(e.name)}}function gr(t){t&&(e.isGeneratedIdentifier(t)?mr(t):e.isBindingPattern(t)&&pr(t))}function mr(t){if(4==(7&t.autoGenerateFlags))return yr(function(t){var r=t.autoGenerateId,n=t,i=n.original;for(;i&&(n=i,!(e.isIdentifier(n)&&4&n.autoGenerateFlags&&n.autoGenerateId!==r));)i=n.original;return n}(t),t.autoGenerateFlags);var r=t.autoGenerateId;return o[r]||(o[r]=function(t){switch(7&t.autoGenerateFlags){case 1:return Dr(0,!!(8&t.autoGenerateFlags));case 2:return Dr(268435456,!!(8&t.autoGenerateFlags));case 3:return xr(e.idText(t),32&t.autoGenerateFlags?hr:vr,!!(16&t.autoGenerateFlags),!!(8&t.autoGenerateFlags))}return e.Debug.fail("Unsupported GeneratedIdentifierKind.")}(t))}function yr(t,r){var n=e.getNodeId(t);return a[n]||(a[n]=function(t,r){switch(t.kind){case 78:return xr(cr(t),vr,!!(16&r),!!(8&r));case 257:case 256:return function(t){var r=cr(t.name);return function(t,r){for(var n=r;e.isNodeDescendantOf(n,r);n=n.nextContainer)if(n.locals){var i=n.locals.get(e.escapeLeadingUnderscores(t));if(i&&3257279&i.flags)return!1}return!0}(r,t)?r:xr(r)}(t);case 262:case 268:return function(t){var r=e.getExternalModuleName(t);return xr(e.isStringLiteral(r)?e.makeIdentifierFromModuleName(r.text):"module")}(t);case 252:case 253:case 267:return xr("default");case 222:return xr("class");case 166:case 168:case 169:return function(t){if(e.isIdentifier(t.name))return yr(t.name);return Dr(0)}(t);case 159:return Dr(0,!0);default:return Dr(0)}}(t,r))}function vr(e){return hr(e)&&!s.has(e)&&!(d&&d.has(e))}function hr(t){return!n||e.isFileLevelUniqueName(n,t,S)}function Dr(e,t){if(e&&!(u&e)&&vr(r=268435456===e?"_i":"_n"))return u|=e,t&&_r(r),r;for(;;){var r,n=268435455&u;if(u++,8!==n&&13!==n)if(vr(r=n<26?"_"+String.fromCharCode(97+n):"_"+(n-26)))return t&&_r(r),r}}function xr(e,t,r,n){if(void 0===t&&(t=vr),r&&t(e))return n?_r(e):s.add(e),e;95!==e.charCodeAt(e.length-1)&&(e+="_");for(var i=1;;){var a=e+i;if(t(a))return n?_r(a):s.add(a),a;i++}}function br(e){return xr(e,hr,!0)}function Sr(e,t){var r=Ie(2,e,t),n=Y,i=X,a=$;Er(t),r(e,t),Tr(t,n,i,a)}function Er(t){var r=e.getEmitFlags(t),n=e.getCommentRange(t);!function(t,r,n,i){te(),Q=!1;var a=n<0||0!=(512&r)||11===t.kind,o=i<0||0!=(1024&r)||11===t.kind;(n>0||i>0)&&n!==i&&(a||Nr(n,339!==t.kind),(!a||n>=0&&0!=(512&r))&&(Y=n),(!o||i>=0&&0!=(1024&r))&&(X=i,251===t.kind&&($=i)));e.forEach(e.getSyntheticLeadingComments(t),Cr),re()}(t,r,n.pos,n.end),2048&r&&(Z=!0)}function Tr(t,r,n,i){var a=e.getEmitFlags(t),o=e.getCommentRange(t);2048&a&&(Z=!1),function(t,r,n,i,a,o,s){te();var c=i<0||0!=(1024&r)||11===t.kind;e.forEach(e.getSyntheticTrailingComments(t),kr),(n>0||i>0)&&n!==i&&(Y=a,X=o,$=s,c||339===t.kind||function(e){Kr(e,Lr)}(i));re()}(t,a,o.pos,o.end,r,n,i)}function Cr(e){(e.hasLeadingNewline||2===e.kind)&&p.writeLine(),Ar(e),e.hasTrailingNewLine||2===e.kind?p.writeLine():p.writeSpace(" ")}function kr(e){p.isAtStartOfLine()||p.writeSpace(" "),Ar(e),e.hasTrailingNewLine&&p.writeLine()}function Ar(t){var r=function(e){return 3===e.kind?"/*"+e.text+"*/":"//"+e.text}(t),n=3===t.kind?e.computeLineStarts(r):void 0;e.writeCommentRange(r,n,p,0,r.length,L)}function Fr(t,r,i){te();var a=r.pos,o=r.end,s=e.getEmitFlags(t),c=Z||o<0||0!=(1024&s);a<0||0!=(512&s)||function(t){var r=e.emitDetachedComments(n.text,be(),p,zr,t,L,Z);r&&(D?D.push(r):D=[r])}(r),re(),2048&s&&!Z?(Z=!0,i(t),Z=!1):i(t),te(),c||(Nr(r.end,!0),Q&&!p.isAtStartOfLine()&&p.writeLine()),re()}function Nr(e,t){Q=!1,t?0===e&&(null==n?void 0:n.isDeclarationFile)?Jr(e,wr):Jr(e,Or):0===e&&Jr(e,Pr)}function Pr(e,t,r,n,i){Ur(e,t)&&Or(e,t,r,n,i)}function wr(e,t,r,n,i){Ur(e,t)||Or(e,t,r,n,i)}function Ir(r,n){return!t.onlyPrintJsDocStyle||(e.isJSDocLikeText(r,n)||e.isPinnedComment(r,n))}function Or(t,r,i,a,o){Ir(n.text,t)&&(Q||(e.emitNewLineBeforeLeadingCommentOfPosition(be(),p,o,t),Q=!0),Gr(t),e.writeCommentRange(n.text,be(),p,t,r,L),Gr(r),a?p.writeLine():3===i&&p.writeSpace(" "))}function Mr(e){Z||-1===e||Nr(e,!0)}function Lr(t,r,i,a){Ir(n.text,t)&&(p.isAtStartOfLine()||p.writeSpace(" "),Gr(t),e.writeCommentRange(n.text,be(),p,t,r,L),Gr(r),a&&p.writeLine())}function Rr(e,t,r){Z||(te(),Kr(e,t?Lr:r?Br:jr),re())}function Br(t,r,i){Gr(t),e.writeCommentRange(n.text,be(),p,t,r,L),Gr(r),2===i&&p.writeLine()}function jr(t,r,i,a){Gr(t),e.writeCommentRange(n.text,be(),p,t,r,L),Gr(r),a?p.writeLine():p.writeSpace(" ")}function Jr(t,r){!n||-1!==Y&&t===Y||(function(t){return void 0!==D&&e.last(D).nodePos===t}(t)?function(t){var r=e.last(D).detachedCommentEndPos;D.length-1?D.pop():D=void 0;e.forEachLeadingCommentRange(n.text,r,t,r)}(r):e.forEachLeadingCommentRange(n.text,t,r,t))}function Kr(t,r){n&&(-1===X||t!==X&&t!==$)&&e.forEachTrailingCommentRange(n.text,t,r)}function zr(t,r,i,a,o,s){Ir(n.text,a)&&(Gr(a),e.writeCommentRange(t,r,i,a,o,s),Gr(o))}function Ur(t,r){return e.isRecognizedTripleSlashComment(n.text,t,r)}function Vr(e,t){var r=Ie(3,e,t);qr(t),r(e,t),Wr(t)}function qr(t){var r=e.getEmitFlags(t),n=e.getSourceMapRange(t);if(e.isUnparsedNode(t)){e.Debug.assertIsDefined(t.parent,"UnparsedNodes must have parent pointers");var i=function(t){return void 0===t.parsedSourceMap&&void 0!==t.sourceMapText&&(t.parsedSourceMap=e.tryParseRawSourceMap(t.sourceMapText)||!1),t.parsedSourceMap||void 0}(t.parent);i&&m&&m.appendSourceMap(p.getLine(),p.getColumn(),i,t.parent.sourceMapPath,t.parent.getLineAndCharacterOfPosition(t.pos),t.parent.getLineAndCharacterOfPosition(t.end))}else{var a=n.source||y;339!==t.kind&&0==(16&r)&&n.pos>=0&&Yr(n.source||y,Hr(a,n.pos)),64&r&&(W=!0)}}function Wr(t){var r=e.getEmitFlags(t),n=e.getSourceMapRange(t);e.isUnparsedNode(t)||(64&r&&(W=!1),339!==t.kind&&0==(32&r)&&n.end>=0&&Yr(n.source||y,n.end))}function Hr(t,r){return t.skipTrivia?t.skipTrivia(r):e.skipTrivia(t.text,r)}function Gr(t){if(!(W||e.positionIsSynthesized(t)||$r(y))){var r=e.getLineAndCharacterOfPosition(y,t),n=r.line,i=r.character;m.addMapping(p.getLine(),p.getColumn(),H,n,i,void 0)}}function Yr(e,t){if(e!==y){var r=y,n=H;Xr(e),Gr(t),function(e,t){y=e,H=t}(r,n)}else Gr(t)}function Xr(e){W||(y=e,e!==v?$r(e)||(H=m.addSource(e.fileName),t.inlineSources&&m.setSourceContent(H,e.text),v=e,G=H):H=G)}function $r(t){return e.fileExtensionIs(t.fileName,".json")}}e.isBuildInfoFile=function(t){return e.fileExtensionIs(t,".tsbuildinfo")},e.forEachEmittedFile=a,e.getTsBuildInfoEmitOutputFilePath=o,e.getOutputPathsForBundle=s,e.getOutputPathsFor=c,e.getOutputExtension=l,e.getOutputDeclarationFileName=_,e.getCommonSourceDirectory=y,e.getCommonSourceDirectoryOfConfig=v,e.getAllProjectOutputs=function(t,r){var n=f(),i=n.addOutput,a=n.getOutputs;if(e.outFile(t.options))g(t,i);else{for(var s=e.memoize((function(){return v(t,r)})),c=0,u=t.fileNames;c=4,v=(f+1+"").length;y&&(v=Math.max("...".length,v));for(var h="",D=l;D<=f;D++){h+=o.getNewLine(),y&&l+11}))&&Yt(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,"outDir")}M.useDefineForClassFields&&0===d&&Yt(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,"useDefineForClassFields");M.checkJs&&!e.getAllowJSCompilerOption(M)&&ie.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"checkJs","allowJs"));M.emitDeclarationOnly&&(e.getEmitDeclarations(M)||Yt(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,"emitDeclarationOnly","declaration","composite"),M.noEmit&&Yt(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"emitDeclarationOnly","noEmit"));M.emitDecoratorMetadata&&!M.experimentalDecorators&&Yt(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"emitDecoratorMetadata","experimentalDecorators");M.jsxFactory?(M.reactNamespace&&Yt(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"reactNamespace","jsxFactory"),4!==M.jsx&&5!==M.jsx||Yt(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFactory",e.inverseJsxOptionMap.get(""+M.jsx)),e.parseIsolatedEntityName(M.jsxFactory,d)||Xt("jsxFactory",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,M.jsxFactory)):M.reactNamespace&&!e.isIdentifierText(M.reactNamespace,d)&&Xt("reactNamespace",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,M.reactNamespace);M.jsxFragmentFactory&&(M.jsxFactory||Yt(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"jsxFragmentFactory","jsxFactory"),4!==M.jsx&&5!==M.jsx||Yt(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFragmentFactory",e.inverseJsxOptionMap.get(""+M.jsx)),e.parseIsolatedEntityName(M.jsxFragmentFactory,d)||Xt("jsxFragmentFactory",e.Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,M.jsxFragmentFactory));M.reactNamespace&&(4!==M.jsx&&5!==M.jsx||Yt(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"reactNamespace",e.inverseJsxOptionMap.get(""+M.jsx)));M.jsxImportSource&&2===M.jsx&&Yt(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxImportSource",e.inverseJsxOptionMap.get(""+M.jsx));if(!M.noEmit&&!M.suppressOutputPathCheck){var v=He(),h=new e.Set;e.forEachEmittedFile(v,(function(e){M.emitDeclarationOnly||D(e.jsFilePath,h),D(e.declarationFilePath,h)}))}function D(t,r){if(t){var n=Ve(t);if(De.has(n)){var i=void 0;M.configFilePath||(i=e.chainDiagnosticMessages(void 0,e.Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig)),i=e.chainDiagnosticMessages(i,e.Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file,t),tr(t,e.createCompilerDiagnosticFromMessageChain(i))}var a=Z.useCaseSensitiveFileNames()?n:e.toFileNameLowerCase(n);r.has(a)?tr(t,e.createCompilerDiagnostic(e.Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files,t)):r.add(a)}}}(),e.performance.mark("afterProgram"),e.performance.measure("Program","beforeProgram","afterProgram"),null===e.tracing||void 0===e.tracing||e.tracing.pop(),Be;function je(t,r,n){if(!t.length)return e.emptyArray;var i=e.getNormalizedAbsolutePath(r.originalFileName,ae),a=Ke(r);null===e.tracing||void 0===e.tracing||e.tracing.push("program","resolveModuleNamesWorker",{containingFileName:i}),e.performance.mark("beforeResolveModule");var o=$(t,i,n,a);return e.performance.mark("afterResolveModule"),e.performance.measure("ResolveModule","beforeResolveModule","afterResolveModule"),null===e.tracing||void 0===e.tracing||e.tracing.pop(),o}function Je(t,r){if(!t.length)return[];var n=e.isString(r)?r:e.getNormalizedAbsolutePath(r.originalFileName,ae),i=e.isString(r)?void 0:Ke(r);null===e.tracing||void 0===e.tracing||e.tracing.push("program","resolveTypeReferenceDirectiveNamesWorker",{containingFileName:n}),e.performance.mark("beforeResolveTypeReference");var a=Q(t,n,i);return e.performance.mark("afterResolveTypeReference"),e.performance.measure("ResolveTypeReference","beforeResolveTypeReference","afterResolveTypeReference"),null===e.tracing||void 0===e.tracing||e.tracing.pop(),a}function Ke(t){var r=Ft(t.originalFileName);if(r||!e.fileExtensionIs(t.originalFileName,".d.ts"))return r;var n=ze(t.originalFileName,t.path);if(n)return n;if(Z.realpath&&M.preserveSymlinks&&e.stringContains(t.originalFileName,e.nodeModulesPathPart)){var i=Z.realpath(t.originalFileName),a=Ve(i);return a===t.path?void 0:ze(i,a)}}function ze(t,r){var n=Pt(t);return e.isString(n)?Ft(n):n?Nt((function(t){var n=e.outFile(t.commandLine.options);if(n)return Ve(n)===r?t:void 0})):void 0}function Ue(t){if(e.containsPath(ne,t.fileName,!1)){var r=e.getBaseFileName(t.fileName);if("lib.d.ts"===r||"lib.es6.d.ts"===r)return 0;var n=e.removeSuffix(e.removePrefix(r,"lib."),".d.ts"),i=e.libs.indexOf(n);if(-1!==i)return i+1}return e.libs.length+2}function Ve(t){return e.toPath(t,ae,Bt)}function qe(){if(void 0===A){var t=e.filter(f,(function(t){return e.sourceFileMayBeEmitted(t,Be)}));A=e.getCommonSourceDirectory(M,(function(){return e.mapDefined(t,(function(e){return e.isDeclarationFile?void 0:e.fileName}))}),ae,Bt,(function(r){return function(t,r){for(var n=!0,i=Z.getCanonicalFileName(e.getNormalizedAbsolutePath(r,ae)),a=0,o=t;a=0;){if(r.markUsed(o))return o;var s=n.text.slice(a[o],a[o+1]).trim();if(""!==s&&!/^(\s*)\/\/(.*)$/.test(s))return-1;o--}return-1}(t,i)})),directives:i}}function lt(e,t){return _t(e,t,z,dt)}function dt(t,r){return at((function(){var n=$e().getEmitResolver(t,r);return e.getDeclarationDiagnostics(He(e.noop),n,t)||e.emptyArray}))}function _t(t,r,n,i){var a,o=t?null===(a=n.perFile)||void 0===a?void 0:a.get(t.path):n.allDiagnostics;if(o)return o;var s=i(t,r);return t?(n.perFile||(n.perFile=new e.Map)).set(t.path,s):n.allDiagnostics=s,s}function pt(e,t){return e.isDeclarationFile?[]:lt(e,t)}function ft(t,r,n,i){Dt(e.normalizePath(t),r,n,void 0,i)}function gt(e,t){return e.fileName===t.fileName}function mt(e,t){return 78===e.kind?78===t.kind&&e.escapedText===t.escapedText:10===t.kind&&e.text===t.text}function yt(t,r){var n=e.factory.createStringLiteral(t),i=e.factory.createImportDeclaration(void 0,void 0,void 0,n);return e.addEmitFlags(i,67108864),e.setParent(n,i),e.setParent(i,r),n.flags&=-9,i.flags&=-9,n}function vt(t){if(!t.imports){var r,n,i,a=e.isSourceFileJS(t),o=e.isExternalModule(t);if((M.isolatedModules||o)&&!t.isDeclarationFile){M.importHelpers&&(r=[yt(e.externalHelpersModuleNameText,t)]);var s=e.getJSXRuntimeImport(e.getJSXImplicitImportBase(M,t),M);s&&(r||(r=[])).push(yt(s,t))}for(var c=0,u=t.statements;c0),Object.defineProperties(o,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(e){this.redirectInfo.redirectTarget.id=e}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(e){this.redirectInfo.redirectTarget.symbol=e}}}),o}(x,h,t,r,Ve(t),d);return he.add(x.path,t),Tt(b,r,l),Et(b,a),ve.set(r,o.name),p.push(b),b}h&&(ye.set(D,h),ve.set(r,o.name))}if(Tt(h,r,l),h){if(H.set(r,q>0),h.fileName=t,h.path=r,h.resolvedPath=Ve(t),h.originalFileName=d,Et(h,a),Z.useCaseSensitiveFileNames()){var S=e.toFileNameLowerCase(r),E=xe.get(S);E?bt(t,E,a):xe.set(S,h)}te=te||h.hasNoDefaultLib&&!i,M.noResolve||(Ot(h,n),Mt(h)),M.noLib||Rt(h),jt(h),n?_.push(h):p.push(h)}return h}(t,r,n,i,a,o);return null===e.tracing||void 0===e.tracing||e.tracing.pop(),s}function Et(e,t){e&&J.add(e.path,t)}function Tt(e,t,r){r?(De.set(r,e),De.set(t,e||!1)):De.set(t,e)}function Ct(e){var t=kt(e);return t&&At(t,e)}function kt(t){if(pe&&pe.length&&!e.fileExtensionIs(t,".d.ts")&&!e.fileExtensionIs(t,".json"))return Ft(t)}function At(t,r){var n=e.outFile(t.commandLine.options);return n?e.changeExtension(n,".d.ts"):e.getOutputDeclarationFileName(r,t.commandLine,!Z.useCaseSensitiveFileNames())}function Ft(t){void 0===ge&&(ge=new e.Map,Nt((function(e){Ve(M.configFilePath)!==e.sourceFile.path&&e.commandLine.fileNames.forEach((function(t){return ge.set(Ve(t),e.sourceFile.path)}))})));var r=ge.get(Ve(t));return r&&It(r)}function Nt(t){return e.forEachResolvedProjectReference(pe,t)}function Pt(t){if(e.isDeclarationFileName(t))return void 0===me&&(me=new e.Map,Nt((function(t){var r=e.outFile(t.commandLine.options);if(r){var n=e.changeExtension(r,".d.ts");me.set(Ve(n),!0)}else{var i=e.memoize((function(){return e.getCommonSourceDirectoryOfConfig(t.commandLine,!Z.useCaseSensitiveFileNames())}));e.forEach(t.commandLine.fileNames,(function(r){if(!e.fileExtensionIs(r,".d.ts")&&!e.fileExtensionIs(r,".json")){var n=e.getOutputDeclarationFileName(r,t.commandLine,!Z.useCaseSensitiveFileNames(),i);me.set(Ve(n),r)}}))}}))),me.get(Ve(t))}function wt(e){return be&&!!Ft(e)}function It(e){if(fe)return fe.get(e)||void 0}function Ot(t,n){e.forEach(t.referencedFiles,(function(i,a){Dt(r(i.fileName,t.fileName),n,!1,void 0,{kind:e.FileIncludeKind.ReferenceFile,file:t.path,index:a})}))}function Mt(t){var r=e.map(t.typeReferenceDirectives,(function(t){return e.toFileNameLowerCase(t.fileName)}));if(r)for(var n=Je(r,t),i=0;iV,p=d&&!T(a,s)&&!a.noResolve&&o_?e.createDiagnosticForNodeInSourceFile(d,p.elements[_],t.kind===e.FileIncludeKind.OutputFromProjectReference?e.Diagnostics.File_is_output_from_referenced_project_specified_here:e.Diagnostics.File_is_source_from_referenced_project_specified_here):void 0;case e.FileIncludeKind.AutomaticTypeDirectiveFile:if(!M.types)return;i=Gt("types",t.typeReference),a=e.Diagnostics.File_is_entry_point_of_type_library_specified_here;break;case e.FileIncludeKind.LibFile:if(void 0!==t.index){i=Gt("lib",M.lib[t.index]),a=e.Diagnostics.File_is_library_specified_here;break}var f=e.forEachEntry(e.targetOptionDeclaration.type,(function(e,t){return e===M.target?t:void 0}));i=f?function(t,r){var n=Wt(t);return n&&e.firstDefined(n,(function(t){return e.isStringLiteral(t.initializer)&&t.initializer.text===r?t.initializer:void 0}))}("target",f):void 0,a=e.Diagnostics.File_is_default_library_for_target_specified_here;break;default:e.Debug.assertNever(t)}return i&&e.createDiagnosticForNodeInSourceFile(M.configFile,i,a)}(t))),t===n&&(n=void 0)}}function zt(e,t,r,n){(w||(w=[])).push({kind:1,file:e&&e.path,fileProcessingReason:t,diagnostic:r,args:n})}function Ut(e,t,r){ie.add(Kt(e,void 0,t,r))}function Vt(t,r,n,i,a,o){for(var s=!0,c=0,u=Ht();cr&&(ie.add(e.createDiagnosticForNodeInSourceFile(M.configFile,p.elements[r],n,i,a,o)),s=!1)}}s&&ie.add(e.createCompilerDiagnostic(n,i,a,o))}function qt(t,r,n,i){for(var a=!0,o=0,s=Ht();or?ie.add(e.createDiagnosticForNodeInSourceFile(t||M.configFile,o.elements[r],n,i,a)):ie.add(e.createCompilerDiagnostic(n,i,a))}function Qt(t,r,n,i,a,o,s){var c=Zt();(!c||!er(c,t,r,n,i,a,o,s))&&ie.add(e.createCompilerDiagnostic(i,a,o,s))}function Zt(){if(void 0===G){G=!1;var t=e.getTsConfigObjectLiteralExpression(M.configFile);if(t)for(var r=0,n=e.getPropertyAssignment(t,"compilerOptions");r0)for(var s=t.getTypeChecker(),c=0,u=r.imports;c0)for(var _=0,p=r.referencedFiles;_1&&b(x)}return o;function b(t){if(t.declarations)for(var n=0,i=t.declarations;n0;){var g=d.pop();if(!u.has(g)){var m=r.getSourceFileByPath(g);u.set(g,m),m&&l(t,r,m,i,a,o,s)&&d.push.apply(d,_(t,m.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(u.values(),(function(e){return e})))}r.canReuseOldState=s,r.create=function(t,r,n,i){var a=new e.Map,c=t.getCompilerOptions().module!==e.ModuleKind.None?new e.Map:void 0,u=c?new e.Map:void 0,l=new e.Set,d=s(c,n);t.getTypeChecker();for(var _=0,f=t.getSourceFiles();_0;){var o=a.pop();if(!i.has(o))if(i.set(o,!0),n(t,o)&&l(t,o)){var s=e.Debug.checkDefined(t.program).getSourceFileByPath(o);a.push.apply(a,e.BuilderState.getReferencedByPaths(t,s.resolvedPath))}}}e.Debug.assert(!!t.currentAffectedFilesExportedModulesMap);var c=new e.Set;if(e.forEachEntry(t.currentAffectedFilesExportedModulesMap,(function(e,i){return e&&e.has(r.resolvedPath)&&d(t,i,c,n)})))return;e.forEachEntry(t.exportedModulesMap,(function(e,i){return!t.currentAffectedFilesExportedModulesMap.has(i)&&e.has(r.resolvedPath)&&d(t,i,c,n)}))}(t,r,(function(t,r){return function(t,r,n,i){if(u(t,r),!t.changedFilesSet.has(r)){var a=e.Debug.checkDefined(t.program),o=a.getSourceFileByPath(r);o&&(e.BuilderState.updateShapeSignature(t,a,o,e.Debug.checkDefined(t.currentAffectedFilesSignatures),n,i,t.currentAffectedFilesExportedModulesMap),e.getEmitDeclarations(t.compilerOptions)&&x(t,r,0))}return!1}(t,r,n,i)}));else{if(!t.cleanedDiagnosticsOfLibFiles){t.cleanedDiagnosticsOfLibFiles=!0;var o=e.Debug.checkDefined(t.program),s=o.getCompilerOptions();e.forEach(o.getSourceFiles(),(function(r){return o.isSourceFileDefaultLibrary(r)&&!e.skipTypeChecking(r,s,o)&&u(t,r.resolvedPath)}))}e.BuilderState.updateShapeSignature(t,e.Debug.checkDefined(t.program),r,e.Debug.checkDefined(t.currentAffectedFilesSignatures),n,i,t.currentAffectedFilesExportedModulesMap)}}function u(e,t){return!e.semanticDiagnosticsFromOldState||(e.semanticDiagnosticsFromOldState.delete(t),e.semanticDiagnosticsPerFile.delete(t),!e.semanticDiagnosticsFromOldState.size)}function l(t,r){return e.Debug.checkDefined(t.currentAffectedFilesSignatures).get(r)!==e.Debug.checkDefined(t.fileInfos.get(r)).signature}function d(t,r,n,i){return e.forEachEntry(t.referencedMap,(function(e,a){return e.has(r)&&_(t,a,n,i)}))}function _(t,r,n,i){return!!e.tryAddToSet(n,r)&&(!!i(t,r)||(e.Debug.assert(!!t.currentAffectedFilesExportedModulesMap),!!e.forEachEntry(t.currentAffectedFilesExportedModulesMap,(function(e,a){return e&&e.has(r)&&_(t,a,n,i)}))||(!!e.forEachEntry(t.exportedModulesMap,(function(e,a){return!t.currentAffectedFilesExportedModulesMap.has(a)&&e.has(r)&&_(t,a,n,i)}))||!!e.forEachEntry(t.referencedMap,(function(e,a){return e.has(r)&&!n.has(a)&&i(t,a)})))))}function p(t,r,n,i,a){a?t.buildInfoEmitPending=!1:r===t.program?(t.changedFilesSet.clear(),t.programEmitComplete=!0):(t.seenAffectedFiles.add(r.resolvedPath),void 0!==n&&(t.seenEmittedFiles||(t.seenEmittedFiles=new e.Map)).set(r.resolvedPath,n),i?(t.affectedFilesPendingEmitIndex++,t.buildInfoEmitPending=!0):t.affectedFilesIndex++)}function f(e,t,r){return p(e,r),{result:t,affected:r}}function g(e,t,r,n,i,a){return p(e,r,n,i,a),{result:t,affected:r}}function m(t,r,n){return e.concatenate(function(t,r,n){var i=r.resolvedPath;if(t.semanticDiagnosticsPerFile){var a=t.semanticDiagnosticsPerFile.get(i);if(a)return e.filterSemanticDiagnotics(a,t.compilerOptions)}var o=e.Debug.checkDefined(t.program).getBindAndCheckDiagnostics(r,n);t.semanticDiagnosticsPerFile&&t.semanticDiagnosticsPerFile.set(i,o);return e.filterSemanticDiagnotics(o,t.compilerOptions)}(t,r,n),e.Debug.checkDefined(t.program).getProgramDiagnostics(r))}function y(t,r){for(var n,i=e.getOptionsNameMap().optionsNameMap,a=0,o=e.getOwnKeys(t).sort(e.compareStringsCaseSensitive);a1||47!==t.charCodeAt(0);if(a&&0!==t.search(/[a-zA-Z]:/)&&0===i.search(/[a-zA-z]\$\//)){if(-1===(n=t.indexOf(e.directorySeparator,n+1)))return!1;i=t.substring(r+i.length,n+1)}if(a&&0!==i.search(/users\//i))return!0;for(var o=n+1,s=2;s>0;s--)if(0===(o=t.indexOf(e.directorySeparator,o)+1))return!1;return!0}e.removeIgnoredPath=t,e.canWatchDirectory=r,e.createResolutionCache=function(n,i,a){var o,s,c,u,l,d,_=e.createMultiMap(),p=[],f=e.createMultiMap(),g=!1,m=e.memoize((function(){return n.getCurrentDirectory()})),y=n.getCachedDirectoryStructureHost(),v=new e.Map,h=e.createCacheWithRedirects(),D=e.createCacheWithRedirects(),x=e.createModuleResolutionCache(m(),n.getCanonicalFileName,void 0,h,D),b=new e.Map,S=e.createCacheWithRedirects(),E=e.createTypeReferenceDirectiveResolutionCache(m(),n.getCanonicalFileName,void 0,x.getPackageJsonInfoCache(),S),T=[".ts",".tsx",".js",".jsx",".json"],C=new e.Map,k=new e.Map,A=i&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(i,m())),F=A&&n.toPath(A),N=void 0!==F?F.split(e.directorySeparator).length:0,P=new e.Map;return{startRecordingFilesWithChangedResolutions:function(){o=[]},finishRecordingFilesWithChangedResolutions:function(){var e=o;return o=void 0,e},startCachingPerDirectoryResolution:L,finishCachingPerDirectoryResolution:function(){c=void 0,L(),k.forEach((function(e,t){0===e.refCount&&(k.delete(t),e.watcher.close())})),g=!1},resolveModuleNames:function(t,r,n,i){return j({names:t,containingFile:r,redirectedReference:i,cache:v,perDirectoryCacheWithRedirects:h,loader:R,getResolutionWithResolvedFileName:w,shouldRetryResolution:function(t){return!t.resolvedModule||!e.resolutionExtensionIsTSOrJson(t.resolvedModule.extension)},reusedNames:n,logChanges:a})},getResolvedModuleWithFailedLookupLocationsFromCache:function(e,t){var r=v.get(n.toPath(t));return r&&r.get(e)},resolveTypeReferenceDirectives:function(e,t,r){return j({names:e,containingFile:t,redirectedReference:r,cache:b,perDirectoryCacheWithRedirects:S,loader:B,getResolutionWithResolvedFileName:I,shouldRetryResolution:function(e){return void 0===e.resolvedTypeReferenceDirective}})},removeResolutionsFromProjectReferenceRedirects:function(t){if(!e.fileExtensionIs(t,".json"))return;var r=n.getCurrentProgram();if(!r)return;var i=r.getResolvedProjectReferenceByPath(t);if(!i)return;i.commandLine.fileNames.forEach((function(e){return Q(n.toPath(e))}))},removeResolutionsOfFile:Q,hasChangedAutomaticTypeDirectiveNames:function(){return g},invalidateResolutionOfFile:function(t){Q(t);var r=g;Z(f.get(t),e.returnTrue)&&g&&!r&&n.onChangedAutomaticTypeDirectiveNames()},invalidateResolutionsOfFailedLookupLocations:te,setFilesWithInvalidatedNonRelativeUnresolvedImports:function(t){e.Debug.assert(c===t||void 0===c),c=t},createHasInvalidatedResolution:function(t){if(te(),t)return s=void 0,e.returnTrue;var r=s;return s=void 0,function(e){return!!r&&r.has(e)||M(e)}},isFileWithInvalidatedNonRelativeUnresolvedImports:M,updateTypeRootsWatch:function(){var t=n.getCompilationSettings();if(t.types)return void ne();var r=e.getEffectiveTypeRoots(t,{directoryExists:ae,getCurrentDirectory:m});r?e.mutateMap(P,e.arrayToMap(r,(function(e){return n.toPath(e)})),{createNewValue:ie,onDeleteValue:e.closeFileWatcher}):ne()},closeTypeRootsWatch:ne,clear:function(){e.clearMap(k,e.closeFileWatcherOf),C.clear(),_.clear(),ne(),v.clear(),b.clear(),f.clear(),p.length=0,u=void 0,l=void 0,d=void 0,L(),g=!1}};function w(e){return e.resolvedModule}function I(e){return e.resolvedTypeReferenceDirective}function O(t,r){return!(void 0===t||r.length<=t.length)&&(e.startsWith(r,t)&&r[t.length]===e.directorySeparator)}function M(e){if(!c)return!1;var t=c.get(e);return!!t&&!!t.length}function L(){x.clear(),E.clear(),_.forEach(W),_.clear()}function R(t,r,i,a,o){var s,c=e.resolveModuleName(t,r,i,a,x,o);if(!n.getGlobalCache)return c;var u=n.getGlobalCache();if(!(void 0===u||e.isExternalModuleNameRelative(t)||c.resolvedModule&&e.extensionIsTS(c.resolvedModule.extension))){var l=e.loadModuleFromGlobalCache(e.Debug.checkDefined(n.globalCacheResolutionModuleName)(t),n.projectName,i,a,u,x),d=l.resolvedModule,_=l.failedLookupLocations;if(d)return c.resolvedModule=d,(s=c.failedLookupLocations).push.apply(s,_),c}return c}function B(t,r,n,i,a){return e.resolveTypeReferenceDirective(t,r,n,i,a,E)}function j(t){var r,i=t.names,a=t.containingFile,s=t.redirectedReference,c=t.cache,u=t.perDirectoryCacheWithRedirects,l=t.loader,d=t.getResolutionWithResolvedFileName,_=t.shouldRetryResolution,p=t.reusedNames,f=t.logChanges,g=n.toPath(a),m=c.get(g)||c.set(g,new e.Map).get(g),y=e.getDirectoryPath(g),v=u.getOrCreateMapOfCacheRedirects(s),h=v.get(y);h||(h=new e.Map,v.set(y,h));for(var D=[],x=n.getCompilationSettings(),b=f&&M(g),S=n.getCurrentProgram(),E=S&&S.getResolvedProjectReferenceToRedirect(a),T=E?!s||s.sourceFile.path!==E.sourceFile.path:!!s,C=new e.Map,k=0,A=i;kN+1?{dir:i.slice(0,N+1).join(e.directorySeparator),dirPath:n.slice(0,N+1).join(e.directorySeparator)}:{dir:A,dirPath:F,nonRecursive:!1}}return z(e.getDirectoryPath(e.getNormalizedAbsolutePath(t,m())),e.getDirectoryPath(r))}function z(t,n){for(;e.pathContainsNodeModules(n);)t=e.getDirectoryPath(t),n=e.getDirectoryPath(n);if(e.isNodeModulesDirectory(n))return r(e.getDirectoryPath(n))?{dir:t,dirPath:n}:void 0;var i,a,o=!0;if(void 0!==F)for(;!O(n,F);){var s=e.getDirectoryPath(n);if(s===n)break;o=!1,i=n,a=t,n=s,t=e.getDirectoryPath(t)}return r(n)?{dir:a||t,dirPath:i||n,nonRecursive:o}:void 0}function U(t){return e.fileExtensionIsOneOf(t,T)}function V(t,r,i,a){if(r.refCount)r.refCount++,e.Debug.assertDefined(r.files);else{r.refCount=1,e.Debug.assert(0===e.length(r.files)),e.isExternalModuleNameRelative(t)?q(r):_.add(t,r);var o=a(r);o&&o.resolvedFileName&&f.add(n.toPath(o.resolvedFileName),r)}(r.files||(r.files=[])).push(i)}function q(t){e.Debug.assert(!!t.refCount);var r=t.failedLookupLocations;if(r.length){p.push(t);for(var i=!1,a=0,o=r;a1),C.set(l,g-1))),_===F?o=!0:Y(_)}}o&&Y(F)}}}function Y(e){k.get(e).refCount--}function X(e,t,r){return n.watchDirectoryOfFailedLookupLocation(e,(function(e){var r=n.toPath(e);y&&y.addOrDeleteFileOrDirectory(e,r),ee(r,t===r)}),r?0:1)}function $(e,t,r){var n=e.get(t);n&&(n.forEach((function(e){return G(e,t,r)})),e.delete(t))}function Q(e){$(v,e,w),$(b,e,I)}function Z(t,r){if(!t)return!1;for(var n=!1,i=0,a=t;i1&&r.sort(l),d.push.apply(d,r));var i=e.getDirectoryPath(t);if(i===t)return u=t,"break";u=t=i},f=e.getDirectoryPath(t);0!==c.size;){var g=p(f);if(f=u,"break"===g)break}if(c.size){var m=e.arrayFrom(c.values());m.length>1&&m.sort(l),d.push.apply(d,m)}return a&&a.set(t,e.toPath(r,n.getCurrentDirectory(),o),d),d}function f(t,r,n){for(var i in n)for(var a=0,o=n[i];a=l.length+d.length&&e.startsWith(r,l)&&e.endsWith(r,d)||!d&&r===e.removeTrailingDirectorySeparator(l)){var _=r.substr(l.length,r.length-d.length-l.length);return i.replace("*",_)}}else if(c===r||c===t)return i}}function g(t,r,n,i,a){var o=t.path,s=t.isRedirect,c=r.getCanonicalFileName,u=r.sourceDirectory;if(n.fileExists&&n.readFile){var l=function(t){var r,n=0,i=0,a=0,o=0;!function(e){e[e.BeforeNodeModules=0]="BeforeNodeModules",e[e.NodeModules=1]="NodeModules",e[e.Scope=2]="Scope",e[e.PackageContent=3]="PackageContent"}(r||(r={}));var s=0,c=0,u=0;for(;c>=0;)switch(s=c,c=t.indexOf("/",s+1),u){case 0:t.indexOf(e.nodeModulesPathPart,s)===s&&(n=s,i=c,u=1);break;case 1:case 2:1===u&&"@"===t.charAt(s+1)?u=2:(a=c,u=3);break;case 3:u=t.indexOf(e.nodeModulesPathPart,s)===s?1:3}return o=s,u>1?{topLevelNodeModulesIndex:n,topLevelPackageNameIndex:i,packageRootIndex:a,fileNameIndex:o}:void 0}(o);if(l){var d=o,_=!1;if(!a)for(var p=l.packageRootIndex,g=void 0;;){var m=E(p),v=m.moduleFileToTry,h=m.packageRootPath;if(h){d=h,_=!0;break}if(g||(g=v),-1===(p=o.indexOf(e.directorySeparator,p+1))){d=T(g);break}}if(!s||_){var D=n.getGlobalTypingsCacheLocation&&n.getGlobalTypingsCacheLocation(),x=c(d.substring(0,l.topLevelNodeModulesIndex));if(e.startsWith(u,x)||D&&e.startsWith(c(D),x)){var b=d.substring(l.topLevelPackageNameIndex+1),S=e.getPackageNameFromTypesPackageName(b);return e.getEmitModuleResolutionKind(i)!==e.ModuleResolutionKind.NodeJs&&S===b?void 0:S}}}}function E(t){var r=o.substring(0,t),a=e.combinePaths(r,"package.json"),s=o;if(n.fileExists(a)){var u=JSON.parse(n.readFile(a)),l=u.typesVersions?e.getPackageJsonTypesVersionsPaths(u.typesVersions):void 0;if(l){var d=o.slice(r.length+1),_=f(e.removeFileExtension(d),y(d,0,i),l.paths);void 0!==_&&(s=e.combinePaths(r,_))}var p=u.typings||u.types||u.main;if(e.isString(p)){var g=e.toPath(p,r,c);if(e.removeFileExtension(g)===e.removeFileExtension(c(s)))return{packageRootPath:r,moduleFileToTry:s}}}return{moduleFileToTry:s}}function T(t){var r=e.removeFileExtension(t);return"/index"!==c(r.substring(l.fileNameIndex))||function(t,r){if(!t.fileExists)return;for(var n=e.getSupportedExtensions({allowJs:!0},[{extension:"node",isMixedContent:!1},{extension:"json",isMixedContent:!1,scriptKind:6}]),i=0,a=n;i0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:d.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}function D(t,r){return void 0===t&&(t=e.sys),{onWatchStatusChange:r||o(t),watchFile:e.maybeBind(t,t.watchFile)||e.returnNoopFileWatcher,watchDirectory:e.maybeBind(t,t.watchDirectory)||e.returnNoopFileWatcher,setTimeout:e.maybeBind(t,t.setTimeout)||e.noop,clearTimeout:e.maybeBind(t,t.clearTimeout)||e.noop}}function x(t,r){var n=e.memoize((function(){return e.getDirectoryPath(e.normalizePath(t.getExecutingFilePath()))}));return{useCaseSensitiveFileNames:function(){return t.useCaseSensitiveFileNames},getNewLine:function(){return t.newLine},getCurrentDirectory:e.memoize((function(){return t.getCurrentDirectory()})),getDefaultLibLocation:n,getDefaultLibFileName:function(t){return e.combinePaths(n(),e.getDefaultLibFileName(t))},fileExists:function(e){return t.fileExists(e)},readFile:function(e,r){return t.readFile(e,r)},directoryExists:function(e){return t.directoryExists(e)},getDirectories:function(e){return t.getDirectories(e)},readDirectory:function(e,r,n,i,a){return t.readDirectory(e,r,n,i,a)},realpath:e.maybeBind(t,t.realpath),getEnvironmentVariable:e.maybeBind(t,t.getEnvironmentVariable),trace:function(e){return t.write(e+t.newLine)},createDirectory:function(e){return t.createDirectory(e)},writeFile:function(e,r,n){return t.writeFile(e,r,n)},createHash:e.maybeBind(t,t.createHash),createProgram:r||e.createEmitAndSemanticDiagnosticsBuilderProgram,disableUseFileVersionAsSignature:t.disableUseFileVersionAsSignature}}function b(t,r,n,i){void 0===t&&(t=e.sys);var a=function(e){return t.write(e+t.newLine)},o=x(t,r);return e.copyProperties(o,D(t,i)),o.afterProgramCreate=function(r){var i=r.getCompilerOptions(),s=e.getNewLineCharacter(i,(function(){return t.newLine}));v(r,n,a,(function(t){return o.onWatchStatusChange(e.createCompilerDiagnostic(c(t),t),s,i,t)}))},o}function S(t,r,n){r(n),t.exit(e.ExitStatus.DiagnosticsPresent_OutputsSkipped)}e.createDiagnosticReporter=n,e.screenStartingMessageCodes=[e.Diagnostics.Starting_compilation_in_watch_mode.code,e.Diagnostics.File_change_detected_Starting_incremental_compilation.code],e.getLocaleTimeString=a,e.createWatchStatusReporter=o,e.parseConfigFileWithSystem=function(t,r,n,i,a,o){var s=a;s.onUnRecoverableConfigFileDiagnostic=function(e){return S(a,o,e)};var c=e.getParsedCommandLineOfConfigFile(t,r,s,n,i);return s.onUnRecoverableConfigFileDiagnostic=void 0,c},e.getErrorCountForSummary=s,e.getWatchErrorSummaryDiagnosticMessage=c,e.getErrorSummaryText=u,e.isBuilderProgram=l,e.listFiles=d,e.explainFiles=_,e.explainIfFileIsRedirect=p,e.getMatchedFileSpec=f,e.getMatchedIncludeSpec=g,e.fileIncludeReasonToDiagnostics=m,e.emitFilesAndReportErrors=v,e.emitFilesAndReportErrorsAndGetExitStatus=h,e.noopFileWatcher={close:e.noop},e.returnNoopFileWatcher=function(){return e.noopFileWatcher},e.createWatchHost=D,e.WatchType={ConfigFile:"Config file",ExtendedConfigFile:"Extended config file",SourceFile:"Source file",MissingFile:"Missing file",WildcardDirectory:"Wild card directory",FailedLookupLocations:"Failed Lookup Locations",TypeRoots:"Type roots",ConfigFileOfReferencedProject:"Config file of referened project",ExtendedConfigOfReferencedProject:"Extended config file of referenced project",WildcardDirectoryOfReferencedProject:"Wild card directory of referenced project"},e.createWatchFactory=function(t,r){var n=t.trace?r.extendedDiagnostics?e.WatchLogLevel.Verbose:r.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,i=n!==e.WatchLogLevel.None?function(e){return t.trace(e)}:e.noop,a=e.getWatchFactory(t,n,i);return a.writeLog=i,a},e.createCompilerHostFromProgramHost=function(t,r,n){void 0===n&&(n=t);var i=t.useCaseSensitiveFileNames(),a=e.memoize((function(){return t.getNewLine()}));return{getSourceFile:function(n,i,a){var o;try{e.performance.mark("beforeIORead"),o=t.readFile(n,r().charset),e.performance.mark("afterIORead"),e.performance.measure("I/O Read","beforeIORead","afterIORead")}catch(e){a&&a(e.message),o=""}return void 0!==o?e.createSourceFile(n,o,i):void 0},getDefaultLibLocation:e.maybeBind(t,t.getDefaultLibLocation),getDefaultLibFileName:function(e){return t.getDefaultLibFileName(e)},writeFile:function(r,n,i,a){try{e.performance.mark("beforeIOWrite"),e.writeFileEnsuringDirectories(r,n,i,(function(e,r,n){return t.writeFile(e,r,n)}),(function(e){return t.createDirectory(e)}),(function(e){return t.directoryExists(e)})),e.performance.mark("afterIOWrite"),e.performance.measure("I/O Write","beforeIOWrite","afterIOWrite")}catch(e){a&&a(e.message)}},getCurrentDirectory:e.memoize((function(){return t.getCurrentDirectory()})),useCaseSensitiveFileNames:function(){return i},getCanonicalFileName:e.createGetCanonicalFileName(i),getNewLine:function(){return e.getNewLineCharacter(r(),a)},fileExists:function(e){return t.fileExists(e)},readFile:function(e){return t.readFile(e)},trace:e.maybeBind(t,t.trace),directoryExists:e.maybeBind(n,n.directoryExists),getDirectories:e.maybeBind(n,n.getDirectories),realpath:e.maybeBind(t,t.realpath),getEnvironmentVariable:e.maybeBind(t,t.getEnvironmentVariable)||function(){return""},createHash:e.maybeBind(t,t.createHash),readDirectory:e.maybeBind(t,t.readDirectory),disableUseFileVersionAsSignature:t.disableUseFileVersionAsSignature}},e.setGetSourceFileAsHashVersioned=function(r,n){var i=r.getSourceFile,a=e.maybeBind(n,n.createHash)||e.generateDjb2Hash;r.getSourceFile=function(){for(var e=[],n=0;ne?t:e}function u(t){return e.fileExtensionIs(t,".d.ts")}function l(e){return!!e&&!!e.buildOrder}function d(e){return l(e)?e.buildOrder:e}function _(t,r){return function(n){var i=r?"["+e.formatColorAndReset(e.getLocaleTimeString(t),e.ForegroundColorEscapeSequences.Grey)+"] ":e.getLocaleTimeString(t)+" - ";i+=""+e.flattenDiagnosticMessageText(n.messageText,t.newLine)+(t.newLine+t.newLine),t.write(i)}}function p(t,r,n,i){var a=e.createProgramHost(t,r);return a.getModifiedTime=t.getModifiedTime?function(e){return t.getModifiedTime(e)}:e.returnUndefined,a.setModifiedTime=t.setModifiedTime?function(e,r){return t.setModifiedTime(e,r)}:e.noop,a.deleteFile=t.deleteFile?function(e){return t.deleteFile(e)}:e.noop,a.reportDiagnostic=n||e.createDiagnosticReporter(t),a.reportSolutionBuilderStatus=i||_(t),a.now=e.maybeBind(t,t.now),a}function f(t,r,n,i,a){var o,s,c=r,u=r,l=c.getCurrentDirectory(),d=e.createGetCanonicalFileName(c.useCaseSensitiveFileNames()),_=(o=i,s={},e.commonOptionsWithBuild.forEach((function(t){e.hasProperty(o,t.name)&&(s[t.name]=o[t.name])})),s),p=e.createCompilerHostFromProgramHost(c,(function(){return E.projectCompilerOptions}));e.setGetSourceFileAsHashVersioned(p,c),p.getParsedCommandLine=function(e){return h(E,e,m(E,e))},p.resolveModuleNames=e.maybeBind(c,c.resolveModuleNames),p.resolveTypeReferenceDirectives=e.maybeBind(c,c.resolveTypeReferenceDirectives);var f=p.resolveModuleNames?void 0:e.createModuleResolutionCache(l,d),g=p.resolveTypeReferenceDirectives?void 0:e.createTypeReferenceDirectiveResolutionCache(l,d,void 0,null==f?void 0:f.getPackageJsonInfoCache());if(!p.resolveModuleNames){var y=function(t,r,n){return e.resolveModuleName(t,r,E.projectCompilerOptions,p,f,n).resolvedModule};p.resolveModuleNames=function(t,r,n,i){return e.loadWithLocalCache(e.Debug.checkEachDefined(t),r,i,y)}}if(!p.resolveTypeReferenceDirectives){var v=function(t,r,n){return e.resolveTypeReferenceDirective(t,r,E.projectCompilerOptions,p,n,E.typeReferenceDirectiveResolutionCache).resolvedTypeReferenceDirective};p.resolveTypeReferenceDirectives=function(t,r,n){return e.loadWithLocalCache(e.Debug.checkEachDefined(t),r,n,v)}}var D=e.createWatchFactory(u,i),x=D.watchFile,b=D.watchDirectory,S=D.writeLog,E={host:c,hostWithWatch:u,currentDirectory:l,getCanonicalFileName:d,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(c),write:e.maybeBind(c,c.trace),options:i,baseCompilerOptions:_,rootNames:n,baseWatchOptions:a,resolvedConfigFilePaths:new e.Map,configFileCache:new e.Map,projectStatus:new e.Map,buildInfoChecked:new e.Map,extendedConfigCache:new e.Map,builderPrograms:new e.Map,diagnostics:new e.Map,projectPendingBuild:new e.Map,projectErrorsReported:new e.Map,compilerHost:p,moduleResolutionCache:f,typeReferenceDirectiveResolutionCache:g,buildOrder:void 0,readFileWithCache:function(e){return c.readFile(e)},projectCompilerOptions:_,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:t,currentInvalidatedProject:void 0,watch:t,allWatchedWildcardDirectories:new e.Map,allWatchedInputFiles:new e.Map,allWatchedConfigFiles:new e.Map,allWatchedExtendedConfigFiles:new e.Map,timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:x,watchDirectory:b,writeLog:S};return E}function g(t,r){return e.toPath(r,t.currentDirectory,t.getCanonicalFileName)}function m(e,t){var r=e.resolvedConfigFilePaths,n=r.get(t);if(void 0!==n)return n;var i=g(e,t);return r.set(t,i),i}function y(e){return!!e.options}function v(e,t){var r=e.configFileCache.get(t);return r&&y(r)?r:void 0}function h(t,r,n){var i,a=t.configFileCache,o=a.get(n);if(o)return y(o)?o:void 0;var s,c=t.parseConfigFileHost,u=t.baseCompilerOptions,l=t.baseWatchOptions,d=t.extendedConfigCache,_=t.host;return _.getParsedCommandLine?(s=_.getParsedCommandLine(r))||(i=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,r)):(c.onUnRecoverableConfigFileDiagnostic=function(e){return i=e},s=e.getParsedCommandLineOfConfigFile(r,u,c,d,l),c.onUnRecoverableConfigFileDiagnostic=e.noop),a.set(n,s||i),s}function D(t,r){return e.resolveConfigFileProjectName(e.resolvePath(t.currentDirectory,r))}function x(t,r){for(var n,i,a=new e.Map,o=new e.Map,s=[],c=0,u=r;co)}}}function w(t,r,n){var i=t.options;return!(r.type===e.UpToDateStatusType.OutOfDateWithPrepend&&!i.force)||(0===n.fileNames.length||!!e.getConfigFileParsingDiagnostics(n).length||!e.isIncrementalCompilation(n.options))}function I(t,r,i){if(t.projectPendingBuild.size&&!l(r)){if(t.currentInvalidatedProject)return e.arrayIsEqualTo(t.currentInvalidatedProject.buildOrder,r)?t.currentInvalidatedProject:void 0;for(var a=t.options,o=t.projectPendingBuild,s=0;sl&&(s=f,l=g)}}if(!r.fileNames.length&&!e.canJsonReportNoInputFiles(r.raw))return{type:e.UpToDateStatusType.ContainerOnly};var y,v=e.getAllProjectOutputs(r,!d.useCaseSensitiveFileNames()),D="(none)",x=o,b="(none)",S=a,E=a,T=!1;if(!i)for(var C=0,k=v;CS&&(S=F,b=A),u(A)&&(E=c(E,e.getModifiedTime(d,A)))}var N,P=!1,w=!1;if(r.projectReferences){t.projectStatus.set(n,{type:e.UpToDateStatusType.ComputingUpstream});for(var I=0,O=r.projectReferences;I=0},t.findArgument=function(t){var r=e.sys.args.indexOf(t);return r>=0&&r214)return 2;if(46===e.charCodeAt(0))return 3;if(95===e.charCodeAt(0))return 4;if(t){var r=/^@([^/]+)\/([^/]+)$/.exec(e);if(r){var n=a(r[1],!1);if(0!==n)return{name:r[1],isScopeName:!0,result:n};var i=a(r[2],!1);return 0!==i?{name:r[2],isScopeName:!1,result:i}:0}}return encodeURIComponent(e)!==e?5:0}function o(t,r,n,i){var a=i?"Scope":"Package";switch(r){case 1:return"'"+t+"':: "+a+" name '"+n+"' cannot be empty";case 2:return"'"+t+"':: "+a+" name '"+n+"' should be less than 214 characters";case 3:return"'"+t+"':: "+a+" name '"+n+"' cannot start with '.'";case 4:return"'"+t+"':: "+a+" name '"+n+"' cannot start with '_'";case 5:return"'"+t+"':: "+a+" name '"+n+"' contains non URI safe characters";case 0:return e.Debug.fail();default:throw e.Debug.assertNever(r)}}t.validatePackageName=function(e){return a(e,!0)},t.renderPackageNameValidationFailure=function(e,t){return"object"==typeof e?o(t,e.result,e.name,e.isScopeName):o(t,e,t,!1)}}(e.JsTyping||(e.JsTyping={}))}(s||(s={})),function(e){var t,r,n,i,a,o,s,c,u,l,d,_,p,f,g,m,y,v;function h(e){return{indentSize:4,tabSize:4,newLineCharacter:e||"\n",convertTabsToSpaces:!0,indentStyle:c.Smart,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:u.Ignore,trimTrailingWhitespace:!0}}t=e.ScriptSnapshot||(e.ScriptSnapshot={}),r=function(){function e(e){this.text=e}return e.prototype.getText=function(e,t){return 0===e&&t===this.text.length?this.text:this.text.substring(e,t)},e.prototype.getLength=function(){return this.text.length},e.prototype.getChangeRange=function(){},e}(),t.fromString=function(e){return new r(e)},(n=e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={}))[n.Dependencies=1]="Dependencies",n[n.DevDependencies=2]="DevDependencies",n[n.PeerDependencies=4]="PeerDependencies",n[n.OptionalDependencies=8]="OptionalDependencies",n[n.All=15]="All",(i=e.PackageJsonAutoImportPreference||(e.PackageJsonAutoImportPreference={}))[i.Off=0]="Off",i[i.On=1]="On",i[i.Auto=2]="Auto",(a=e.LanguageServiceMode||(e.LanguageServiceMode={}))[a.Semantic=0]="Semantic",a[a.PartialSemantic=1]="PartialSemantic",a[a.Syntactic=2]="Syntactic",e.emptyOptions={},(o=e.SemanticClassificationFormat||(e.SemanticClassificationFormat={})).Original="original",o.TwentyTwenty="2020",(s=e.HighlightSpanKind||(e.HighlightSpanKind={})).none="none",s.definition="definition",s.reference="reference",s.writtenReference="writtenReference",function(e){e[e.None=0]="None",e[e.Block=1]="Block",e[e.Smart=2]="Smart"}(c=e.IndentStyle||(e.IndentStyle={})),function(e){e.Ignore="ignore",e.Insert="insert",e.Remove="remove"}(u=e.SemicolonPreference||(e.SemicolonPreference={})),e.getDefaultFormatCodeSettings=h,e.testFormatSettings=h("\n"),(l=e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={}))[l.aliasName=0]="aliasName",l[l.className=1]="className",l[l.enumName=2]="enumName",l[l.fieldName=3]="fieldName",l[l.interfaceName=4]="interfaceName",l[l.keyword=5]="keyword",l[l.lineBreak=6]="lineBreak",l[l.numericLiteral=7]="numericLiteral",l[l.stringLiteral=8]="stringLiteral",l[l.localName=9]="localName",l[l.methodName=10]="methodName",l[l.moduleName=11]="moduleName",l[l.operator=12]="operator",l[l.parameterName=13]="parameterName",l[l.propertyName=14]="propertyName",l[l.punctuation=15]="punctuation",l[l.space=16]="space",l[l.text=17]="text",l[l.typeParameterName=18]="typeParameterName",l[l.enumMemberName=19]="enumMemberName",l[l.functionName=20]="functionName",l[l.regularExpressionLiteral=21]="regularExpressionLiteral",l[l.link=22]="link",l[l.linkName=23]="linkName",l[l.linkText=24]="linkText",(d=e.OutliningSpanKind||(e.OutliningSpanKind={})).Comment="comment",d.Region="region",d.Code="code",d.Imports="imports",(_=e.OutputFileType||(e.OutputFileType={}))[_.JavaScript=0]="JavaScript",_[_.SourceMap=1]="SourceMap",_[_.Declaration=2]="Declaration",(p=e.EndOfLineState||(e.EndOfLineState={}))[p.None=0]="None",p[p.InMultiLineCommentTrivia=1]="InMultiLineCommentTrivia",p[p.InSingleQuoteStringLiteral=2]="InSingleQuoteStringLiteral",p[p.InDoubleQuoteStringLiteral=3]="InDoubleQuoteStringLiteral",p[p.InTemplateHeadOrNoSubstitutionTemplate=4]="InTemplateHeadOrNoSubstitutionTemplate",p[p.InTemplateMiddleOrTail=5]="InTemplateMiddleOrTail",p[p.InTemplateSubstitutionPosition=6]="InTemplateSubstitutionPosition",(f=e.TokenClass||(e.TokenClass={}))[f.Punctuation=0]="Punctuation",f[f.Keyword=1]="Keyword",f[f.Operator=2]="Operator",f[f.Comment=3]="Comment",f[f.Whitespace=4]="Whitespace",f[f.Identifier=5]="Identifier",f[f.NumberLiteral=6]="NumberLiteral",f[f.BigIntLiteral=7]="BigIntLiteral",f[f.StringLiteral=8]="StringLiteral",f[f.RegExpLiteral=9]="RegExpLiteral",(g=e.ScriptElementKind||(e.ScriptElementKind={})).unknown="",g.warning="warning",g.keyword="keyword",g.scriptElement="script",g.moduleElement="module",g.classElement="class",g.localClassElement="local class",g.interfaceElement="interface",g.typeElement="type",g.enumElement="enum",g.enumMemberElement="enum member",g.variableElement="var",g.localVariableElement="local var",g.functionElement="function",g.localFunctionElement="local function",g.memberFunctionElement="method",g.memberGetAccessorElement="getter",g.memberSetAccessorElement="setter",g.memberVariableElement="property",g.constructorImplementationElement="constructor",g.callSignatureElement="call",g.indexSignatureElement="index",g.constructSignatureElement="construct",g.parameterElement="parameter",g.typeParameterElement="type parameter",g.primitiveType="primitive type",g.label="label",g.alias="alias",g.constElement="const",g.letElement="let",g.directory="directory",g.externalModuleName="external module name",g.jsxAttribute="JSX attribute",g.string="string",g.link="link",g.linkName="link name",g.linkText="link text",(m=e.ScriptElementKindModifier||(e.ScriptElementKindModifier={})).none="",m.publicMemberModifier="public",m.privateMemberModifier="private",m.protectedMemberModifier="protected",m.exportedModifier="export",m.ambientModifier="declare",m.staticModifier="static",m.abstractModifier="abstract",m.optionalModifier="optional",m.deprecatedModifier="deprecated",m.dtsModifier=".d.ts",m.tsModifier=".ts",m.tsxModifier=".tsx",m.jsModifier=".js",m.jsxModifier=".jsx",m.jsonModifier=".json",(y=e.ClassificationTypeNames||(e.ClassificationTypeNames={})).comment="comment",y.identifier="identifier",y.keyword="keyword",y.numericLiteral="number",y.bigintLiteral="bigint",y.operator="operator",y.stringLiteral="string",y.whiteSpace="whitespace",y.text="text",y.punctuation="punctuation",y.className="class name",y.enumName="enum name",y.interfaceName="interface name",y.moduleName="module name",y.typeParameterName="type parameter name",y.typeAliasName="type alias name",y.parameterName="parameter name",y.docCommentTagName="doc comment tag name",y.jsxOpenTagName="jsx open tag name",y.jsxCloseTagName="jsx close tag name",y.jsxSelfClosingTagName="jsx self closing tag name",y.jsxAttribute="jsx attribute",y.jsxText="jsx text",y.jsxAttributeStringLiteralValue="jsx attribute string literal value",(v=e.ClassificationType||(e.ClassificationType={}))[v.comment=1]="comment",v[v.identifier=2]="identifier",v[v.keyword=3]="keyword",v[v.numericLiteral=4]="numericLiteral",v[v.operator=5]="operator",v[v.stringLiteral=6]="stringLiteral",v[v.regularExpressionLiteral=7]="regularExpressionLiteral",v[v.whiteSpace=8]="whiteSpace",v[v.text=9]="text",v[v.punctuation=10]="punctuation",v[v.className=11]="className",v[v.enumName=12]="enumName",v[v.interfaceName=13]="interfaceName",v[v.moduleName=14]="moduleName",v[v.typeParameterName=15]="typeParameterName",v[v.typeAliasName=16]="typeAliasName",v[v.parameterName=17]="parameterName",v[v.docCommentTagName=18]="docCommentTagName",v[v.jsxOpenTagName=19]="jsxOpenTagName",v[v.jsxCloseTagName=20]="jsxCloseTagName",v[v.jsxSelfClosingTagName=21]="jsxSelfClosingTagName",v[v.jsxAttribute=22]="jsxAttribute",v[v.jsxText=23]="jsxText",v[v.jsxAttributeStringLiteralValue=24]="jsxAttributeStringLiteralValue",v[v.bigintLiteral=25]="bigintLiteral"}(s||(s={})),function(e){var t;function n(t){switch(t.kind){case 250:return e.isInJSFile(t)&&e.getJSDocEnumTag(t)?7:1;case 161:case 199:case 164:case 163:case 289:case 290:case 166:case 165:case 167:case 168:case 169:case 252:case 209:case 210:case 288:case 281:return 1;case 160:case 254:case 255:case 178:return 2;case 335:return void 0===t.name?3:2;case 292:case 253:return 3;case 257:return e.isAmbientModule(t)||1===e.getModuleInstanceState(t)?5:4;case 256:case 265:case 266:case 261:case 262:case 267:case 268:return 7;case 298:return 5}return 7}function i(t){for(;158===t.parent.kind;)t=t.parent;return e.isInternalModuleImportEqualsDeclaration(t.parent)&&t.parent.moduleReference===t}function a(e){return e.expression}function o(e){return e.tag}function s(e){return e.tagName}function c(t,r,n,i,a){var o=i?l(t):u(t);return a&&(o=e.skipOuterExpressions(o)),!!o&&!!o.parent&&r(o.parent)&&n(o.parent)===o}function u(e){return p(e)?e.parent:e}function l(e){return p(e)||f(e)?e.parent:e}function d(t){var r;return e.isIdentifier(t)&&(null===(r=e.tryCast(t.parent,e.isBreakOrContinueStatement))||void 0===r?void 0:r.label)===t}function _(t){var r;return e.isIdentifier(t)&&(null===(r=e.tryCast(t.parent,e.isLabeledStatement))||void 0===r?void 0:r.label)===t}function p(t){var r;return(null===(r=e.tryCast(t.parent,e.isPropertyAccessExpression))||void 0===r?void 0:r.name)===t}function f(t){var r;return(null===(r=e.tryCast(t.parent,e.isElementAccessExpression))||void 0===r?void 0:r.argumentExpression)===t}e.scanner=e.createScanner(99,!0),(t=e.SemanticMeaning||(e.SemanticMeaning={}))[t.None=0]="None",t[t.Value=1]="Value",t[t.Type=2]="Type",t[t.Namespace=4]="Namespace",t[t.All=7]="All",e.getMeaningFromDeclaration=n,e.getMeaningFromLocation=function(t){return 298===(t=I(t)).kind?1:267===t.parent.kind||273===t.parent.kind||266===t.parent.kind||263===t.parent.kind||e.isImportEqualsDeclaration(t.parent)&&t===t.parent.name?7:i(t)?function(t){var r=158===t.kind?t:e.isQualifiedName(t.parent)&&t.parent.right===t?t.parent:void 0;return r&&261===r.parent.kind?7:4}(t):e.isDeclarationName(t)?n(t.parent):e.isEntityName(t)&&(e.isJSDocNameReference(t.parent)||e.isJSDocLink(t.parent))?7:function(t){e.isRightSideOfQualifiedNameOrPropertyAccess(t)&&(t=t.parent);switch(t.kind){case 107:return!e.isExpressionNode(t);case 188:return!0}switch(t.parent.kind){case 174:return!0;case 196:return!t.parent.isTypeOf;case 224:return!e.isExpressionWithTypeArgumentsInClassExtendsClause(t.parent)}return!1}(t)?2:function(e){return function(e){var t=e,r=!0;if(158===t.parent.kind){for(;t.parent&&158===t.parent.kind;)t=t.parent;r=t.right===e}return 174===t.parent.kind&&!r}(e)||function(e){var t=e,r=!0;if(202===t.parent.kind){for(;t.parent&&202===t.parent.kind;)t=t.parent;r=t.name===e}if(!r&&224===t.parent.kind&&287===t.parent.parent.kind){var n=t.parent.parent.parent;return 253===n.kind&&116===t.parent.parent.token||254===n.kind&&93===t.parent.parent.token}return!1}(e)}(t)?4:e.isTypeParameterDeclaration(t.parent)?(e.Debug.assert(e.isJSDocTemplateTag(t.parent.parent)),2):e.isLiteralTypeNode(t.parent)?3:1},e.isInRightSideOfInternalImportEqualsDeclaration=i,e.isCallExpressionTarget=function(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),c(t,e.isCallExpression,a,r,n)},e.isNewExpressionTarget=function(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),c(t,e.isNewExpression,a,r,n)},e.isCallOrNewExpressionTarget=function(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),c(t,e.isCallOrNewExpression,a,r,n)},e.isTaggedTemplateTag=function(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),c(t,e.isTaggedTemplateExpression,o,r,n)},e.isDecoratorTarget=function(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),c(t,e.isDecorator,a,r,n)},e.isJsxOpeningLikeElementTagName=function(t,r,n){return void 0===r&&(r=!1),void 0===n&&(n=!1),c(t,e.isJsxOpeningLikeElement,s,r,n)},e.climbPastPropertyAccess=u,e.climbPastPropertyOrElementAccess=l,e.getTargetLabel=function(e,t){for(;e;){if(246===e.kind&&e.label.escapedText===t)return e.label;e=e.parent}},e.hasPropertyAccessExpressionWithName=function(t,r){return!!e.isPropertyAccessExpression(t.expression)&&t.expression.name.text===r},e.isJumpStatementTarget=d,e.isLabelOfLabeledStatement=_,e.isLabelName=function(e){return _(e)||d(e)},e.isTagName=function(t){var r;return(null===(r=e.tryCast(t.parent,e.isJSDocTag))||void 0===r?void 0:r.tagName)===t},e.isRightSideOfQualifiedName=function(t){var r;return(null===(r=e.tryCast(t.parent,e.isQualifiedName))||void 0===r?void 0:r.right)===t},e.isRightSideOfPropertyAccess=p,e.isArgumentExpressionOfElementAccess=f,e.isNameOfModuleDeclaration=function(t){var r;return(null===(r=e.tryCast(t.parent,e.isModuleDeclaration))||void 0===r?void 0:r.name)===t},e.isNameOfFunctionDeclaration=function(t){var r;return e.isIdentifier(t)&&(null===(r=e.tryCast(t.parent,e.isFunctionLike))||void 0===r?void 0:r.name)===t},e.isLiteralNameOfPropertyDeclarationOrIndexAccess=function(t){switch(t.parent.kind){case 164:case 163:case 289:case 292:case 166:case 165:case 168:case 169:case 257:return e.getNameOfDeclaration(t.parent)===t;case 203:return t.parent.argumentExpression===t;case 159:return!0;case 192:return 190===t.parent.parent.kind;default:return!1}},e.isExpressionOfExternalModuleImportEqualsDeclaration=function(t){return e.isExternalModuleImportEqualsDeclaration(t.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(t.parent.parent)===t},e.getContainerNode=function(t){for(e.isJSDocTypeAlias(t)&&(t=t.parent.parent);;){if(!(t=t.parent))return;switch(t.kind){case 298:case 166:case 165:case 252:case 209:case 168:case 169:case 253:case 254:case 256:case 257:return t}}},e.getNodeKind=function t(r){switch(r.kind){case 298:return e.isExternalModule(r)?"module":"script";case 257:return"module";case 253:case 222:return"class";case 254:return"interface";case 255:case 328:case 335:return"type";case 256:return"enum";case 250:return c(r);case 199:return c(e.getRootDeclaration(r));case 210:case 252:case 209:return"function";case 168:return"getter";case 169:return"setter";case 166:case 165:return"method";case 289:var n=r.initializer;return e.isFunctionLike(n)?"method":"property";case 164:case 163:case 290:case 291:return"property";case 172:return"index";case 171:return"construct";case 170:return"call";case 167:return"constructor";case 160:return"type parameter";case 292:return"enum member";case 161:return e.hasSyntacticModifier(r,16476)?"property":"parameter";case 261:case 266:case 271:case 264:case 270:return"alias";case 217:var i=e.getAssignmentDeclarationKind(r),a=r.right;switch(i){case 7:case 8:case 9:case 0:return"";case 1:case 2:var o=t(a);return""===o?"const":o;case 3:return e.isFunctionExpression(a)?"method":"property";case 4:return"property";case 5:return e.isFunctionExpression(a)?"method":"property";case 6:return"local class";default:return e.assertType(i),""}case 78:return e.isImportClause(r.parent)?"alias":"";case 267:var s=t(r.expression);return""===s?"const":s;default:return""}function c(t){return e.isVarConst(t)?"const":e.isLet(t)?"let":"var"}},e.isThis=function(t){switch(t.kind){case 107:return!0;case 78:return e.identifierIsThisKeyword(t)&&161===t.parent.kind;default:return!1}};var g,m=/^\/\/\/\s*=r.end}function D(e,t,r,n){return Math.max(e,r)t)break;var u=c.getEnd();if(tt.end||e.pos===t.end)&&G(e,n)?r(e):void 0}))}(r)}function B(t,r,n,i){var a=function a(o){if(j(o)&&1!==o.kind)return o;var s=o.getChildren(r),c=e.binarySearchKey(s,t,(function(e,t){return t}),(function(e,r){return t=s[e-1].end?0:1:-1}));if(c>=0&&s[c]){var u=s[c];if(t=t||!G(u,r)||z(u)){var l=K(s,c,r);return l&&J(l,r)}return a(u)}}e.Debug.assert(void 0!==n||298===o.kind||1===o.kind||e.isJSDocCommentContainingNode(o));var d=K(s,s.length,r);return d&&J(d,r)}(n||r);return e.Debug.assert(!(a&&z(a))),a}function j(t){return e.isToken(t)&&!z(t)}function J(e,t){if(j(e))return e;var r=e.getChildren(t);if(0===r.length)return e;var n=K(r,r.length,t);return n&&J(n,t)}function K(t,r,n){for(var i=r-1;i>=0;i--){if(z(t[i]))e.Debug.assert(i>0,"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");else if(G(t[i],n))return t[i]}}function z(t){return e.isJsxText(t)&&t.containsOnlyTriviaWhiteSpaces}function U(t,r,n){var i=e.tokenToString(t.kind),a=e.tokenToString(r),o=t.getFullStart(),s=n.text.lastIndexOf(a,o);if(-1!==s){if(n.text.lastIndexOf(i,o-1)=r}))}function W(t,r){if(-1!==r.text.lastIndexOf("<",t?t.pos:r.text.length))for(var n=t,i=0,a=0;n;){switch(n.kind){case 29:if((n=B(n.getFullStart(),r))&&28===n.kind&&(n=B(n.getFullStart(),r)),!n||!e.isIdentifier(n))return;if(!i)return e.isDeclarationName(n)?void 0:{called:n,nTypeArguments:a};i--;break;case 49:i=3;break;case 48:i=2;break;case 31:i++;break;case 19:if(!(n=U(n,18,r)))return;break;case 21:if(!(n=U(n,20,r)))return;break;case 23:if(!(n=U(n,22,r)))return;break;case 27:a++;break;case 38:case 78:case 10:case 8:case 9:case 109:case 94:case 111:case 93:case 138:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(n))break;return}n=B(n.getFullStart(),r)}}function H(t,r,n){return e.formatting.getRangeOfEnclosingComment(t,r,void 0,n)}function G(e,t){return 1===e.kind?!!e.jsDoc:0!==e.getWidth(t)}function Y(e,t,r){var n=H(e,t,void 0);return!!n&&r===m.test(e.text.substring(n.pos,n.end))}function X(t,r,n){return e.createTextSpanFromBounds(t.getStart(r),(n||t).getEnd())}function $(t){if(!t.isUnterminated)return e.createTextSpanFromBounds(t.getStart()+1,t.getEnd()-1)}function Q(e,t){return{span:e,newText:t}}function Z(e){return 149===e.kind}function ee(t,r){return{fileExists:function(e){return t.fileExists(e)},getCurrentDirectory:function(){return r.getCurrentDirectory()},readFile:e.maybeBind(r,r.readFile),useCaseSensitiveFileNames:e.maybeBind(r,r.useCaseSensitiveFileNames),getSymlinkCache:e.maybeBind(r,r.getSymlinkCache)||t.getSymlinkCache,getModuleSpecifierCache:e.maybeBind(r,r.getModuleSpecifierCache),getGlobalTypingsCacheLocation:e.maybeBind(r,r.getGlobalTypingsCacheLocation),getSourceFiles:function(){return t.getSourceFiles()},redirectTargetsMap:t.redirectTargetsMap,getProjectReferenceRedirect:function(e){return t.getProjectReferenceRedirect(e)},isSourceOfProjectReferenceRedirect:function(e){return t.isSourceOfProjectReferenceRedirect(e)},getNearestAncestorDirectoryWithPackageJson:e.maybeBind(r,r.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:function(){return t.getFileIncludeReasons()}}}function te(e,t){return r(r({},ee(e,t)),{getCommonSourceDirectory:function(){return e.getCommonSourceDirectory()}})}function re(t,r,n,i,a){return e.factory.createImportDeclaration(void 0,void 0,t||r?e.factory.createImportClause(!!a,t,r&&r.length?e.factory.createNamedImports(r):void 0):void 0,"string"==typeof n?ne(n,i):n)}function ne(t,r){return e.factory.createStringLiteral(t,0===r)}function ie(t,r){return e.isStringDoubleQuoted(t,r)?1:0}function ae(t,r){if(r.quotePreference&&"auto"!==r.quotePreference)return"single"===r.quotePreference?0:1;var n=t.imports&&e.find(t.imports,(function(t){return e.isStringLiteral(t)&&!e.nodeIsSynthesized(t.parent)}));return n?ie(n,t):1}function oe(t){return"default"!==t.escapedName?t.escapedName:e.firstDefined(t.declarations,(function(t){var r=e.getNameOfDeclaration(t);return r&&78===r.kind?r.escapedText:void 0}))}function se(t,r,n){return e.textSpanContainsPosition(t,r.getStart(n))&&r.getEnd()<=e.textSpanEnd(t)}function ce(e,t){return!!e&&!!t&&e.start===t.start&&e.length===t.length}function ue(e){return e.declarations&&e.declarations.length>0&&161===e.declarations[0].kind}e.getLineStartPositionForPosition=function(t,r){return e.getLineStarts(r)[r.getLineAndCharacterOfPosition(t).line]},e.rangeContainsRange=y,e.rangeContainsRangeExclusive=function(e,t){return v(e,t.pos)&&v(e,t.end)},e.rangeContainsPosition=function(e,t){return e.pos<=t&&t<=e.end},e.rangeContainsPositionExclusive=v,e.startEndContainsRange=h,e.rangeContainsStartEnd=function(e,t,r){return e.pos<=t&&e.end>=r},e.rangeOverlapsWithStartEnd=function(e,t,r){return D(e.pos,e.end,t,r)},e.nodeOverlapsWithStartEnd=function(e,t,r,n){return D(e.getStart(t),e.end,r,n)},e.startEndOverlapsWithStartEnd=D,e.positionBelongsToNode=function(t,r,n){return e.Debug.assert(t.pos<=r),rn.getStart(t)&&rn.getStart(t)},e.isInJSXText=function(t,r){var n=M(t,r);return!!e.isJsxText(n)||(!(18!==n.kind||!e.isJsxExpression(n.parent)||!e.isJsxElement(n.parent.parent))||!(29!==n.kind||!e.isJsxOpeningLikeElement(n.parent)||!e.isJsxElement(n.parent.parent)))},e.isInsideJsxElement=function(e,t){return function(r){for(;r;)if(r.kind>=275&&r.kind<=284||11===r.kind||29===r.kind||31===r.kind||78===r.kind||19===r.kind||18===r.kind||43===r.kind)r=r.parent;else{if(274!==r.kind)return!1;if(t>r.getStart(e))return!0;r=r.parent}return!1}(M(e,t))},e.findPrecedingMatchingToken=U,e.removeOptionality=V,e.isPossiblyTypeArgumentPosition=function t(r,n,i){var a=W(r,n);return void 0!==a&&(e.isPartOfTypeNode(a.called)||0!==q(a.called,a.nTypeArguments,i).length||t(a.called,n,i))},e.getPossibleGenericSignatures=q,e.getPossibleTypeArgumentsInfo=W,e.isInComment=H,e.hasDocComment=function(t,r){var n=M(t,r);return!!e.findAncestor(n,e.isJSDoc)},e.getNodeModifiers=function(t,r){void 0===r&&(r=0);var n=[],i=e.isDeclaration(t)?e.getCombinedNodeFlagsAlwaysIncludeJSDoc(t)&~r:0;return 8&i&&n.push("private"),16&i&&n.push("protected"),4&i&&n.push("public"),32&i&&n.push("static"),128&i&&n.push("abstract"),1&i&&n.push("export"),8192&i&&n.push("deprecated"),8388608&t.flags&&n.push("declare"),267===t.kind&&n.push("export"),n.length>0?n.join(","):""},e.getTypeArgumentOrTypeParameterList=function(t){return 174===t.kind||204===t.kind?t.typeArguments:e.isFunctionLike(t)||253===t.kind||254===t.kind?t.typeParameters:void 0},e.isComment=function(e){return 2===e||3===e},e.isStringOrRegularExpressionOrTemplateLiteral=function(t){return!(10!==t&&13!==t&&!e.isTemplateLiteralKind(t))},e.isPunctuation=function(e){return 18<=e&&e<=77},e.isInsideTemplateLiteral=function(t,r,n){return e.isTemplateLiteralKind(t.kind)&&t.getStart(n)=2||!!e.noEmit},e.createModuleSpecifierResolutionHost=ee,e.getModuleSpecifierResolverHost=te,e.makeImportIfNecessary=function(e,t,r,n){return e||t&&t.length?re(e,t,r,n):void 0},e.makeImport=re,e.makeStringLiteral=ne,(g=e.QuotePreference||(e.QuotePreference={}))[g.Single=0]="Single",g[g.Double=1]="Double",e.quotePreferenceFromString=ie,e.getQuotePreference=ae,e.getQuoteFromPreference=function(t){switch(t){case 0:return"'";case 1:return'"';default:return e.Debug.assertNever(t)}},e.symbolNameNoDefault=function(t){var r=oe(t);return void 0===r?void 0:e.unescapeLeadingUnderscores(r)},e.symbolEscapedNameNoDefault=oe,e.isModuleSpecifierLike=function(t){return e.isStringLiteralLike(t)&&(e.isExternalModuleReference(t.parent)||e.isImportDeclaration(t.parent)||e.isRequireCall(t.parent,!1)&&t.parent.arguments[0]===t||e.isImportCall(t.parent)&&t.parent.arguments[0]===t)},e.isObjectBindingElementWithoutPropertyName=function(t){return e.isBindingElement(t)&&e.isObjectBindingPattern(t.parent)&&e.isIdentifier(t.name)&&!t.propertyName},e.getPropertySymbolFromBindingElement=function(e,t){var r=e.getTypeAtLocation(t.parent);return r&&e.getPropertyOfType(r,t.name.text)},e.getParentNodeInSpan=function(t,r,n){if(t)for(;t.parent;){if(e.isSourceFile(t.parent)||!se(n,t.parent,r))return t;t=t.parent}},e.findModifier=function(t,r){return t.modifiers&&e.find(t.modifiers,(function(e){return e.kind===r}))},e.insertImports=function(t,r,n,i){var a=233===(e.isArray(n)?n[0]:n).kind?e.isRequireVariableStatement:e.isAnyImportSyntax,o=e.filter(r.statements,a),s=e.isArray(n)?e.stableSort(n,e.OrganizeImports.compareImportsOrRequireStatements):[n];if(o.length)if(o&&e.OrganizeImports.importsAreSorted(o))for(var c=0,u=s;ca&&r&&"..."!==r&&(e.isWhiteSpaceLike(r.charCodeAt(r.length-1))||t.push(_e(" ",e.SymbolDisplayPartKind.space)),t.push(_e("...",e.SymbolDisplayPartKind.punctuation))),t},writeKeyword:function(t){return c(t,e.SymbolDisplayPartKind.keyword)},writeOperator:function(t){return c(t,e.SymbolDisplayPartKind.operator)},writePunctuation:function(t){return c(t,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(t){return c(t,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(t){return c(t,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(t){return c(t,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(t){return c(t,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(t){return c(t,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(t){return c(t,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:function(e,r){if(i>a)return;s(),i+=e.length,t.push(de(e,r))},writeLine:function(){if(i>a)return;i+=1,t.push(De()),r=!0},write:o,writeComment:o,getText:function(){return""},getTextPos:function(){return 0},getColumn:function(){return 0},getLine:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingWhitespace:function(){return!1},hasTrailingComment:function(){return!1},rawWrite:e.notImplemented,getIndent:function(){return n},increaseIndent:function(){n++},decreaseIndent:function(){n--},clear:u,trackSymbol:e.noop,reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function s(){if(!(i>a)&&r){var o=e.getIndentString(n);o&&(i+=o.length,t.push(_e(o,e.SymbolDisplayPartKind.space))),r=!1}}function c(e,r){i>a||(s(),i+=e.length,t.push(_e(e,r)))}function u(){t=[],r=!0,n=0,i=0}}();function de(t,r){return _e(t,function(t){var r=t.flags;if(3&r)return ue(t)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName;if(4&r)return e.SymbolDisplayPartKind.propertyName;if(32768&r)return e.SymbolDisplayPartKind.propertyName;if(65536&r)return e.SymbolDisplayPartKind.propertyName;if(8&r)return e.SymbolDisplayPartKind.enumMemberName;if(16&r)return e.SymbolDisplayPartKind.functionName;if(32&r)return e.SymbolDisplayPartKind.className;if(64&r)return e.SymbolDisplayPartKind.interfaceName;if(384&r)return e.SymbolDisplayPartKind.enumName;if(1536&r)return e.SymbolDisplayPartKind.moduleName;if(8192&r)return e.SymbolDisplayPartKind.methodName;if(262144&r)return e.SymbolDisplayPartKind.typeParameterName;if(524288&r)return e.SymbolDisplayPartKind.aliasName;if(2097152&r)return e.SymbolDisplayPartKind.aliasName;return e.SymbolDisplayPartKind.text}(r))}function _e(t,r){return{text:t,kind:e.SymbolDisplayPartKind[r]}}function pe(t){return _e(e.tokenToString(t),e.SymbolDisplayPartKind.keyword)}function fe(t){return _e(t,e.SymbolDisplayPartKind.text)}function ge(t){return _e(t,e.SymbolDisplayPartKind.linkText)}function me(t,r){return{text:e.getTextOfNode(t),kind:e.SymbolDisplayPartKind[e.SymbolDisplayPartKind.linkName],target:{fileName:e.getSourceFileOfNode(r).fileName,textSpan:X(r)}}}function ye(t){return _e(t,e.SymbolDisplayPartKind.link)}e.symbolPart=de,e.displayPart=_e,e.spacePart=function(){return _e(" ",e.SymbolDisplayPartKind.space)},e.keywordPart=pe,e.punctuationPart=function(t){return _e(e.tokenToString(t),e.SymbolDisplayPartKind.punctuation)},e.operatorPart=function(t){return _e(e.tokenToString(t),e.SymbolDisplayPartKind.operator)},e.parameterNamePart=function(t){return _e(t,e.SymbolDisplayPartKind.parameterName)},e.propertyNamePart=function(t){return _e(t,e.SymbolDisplayPartKind.propertyName)},e.textOrKeywordPart=function(t){var r=e.stringToToken(t);return void 0===r?fe(t):pe(r)},e.textPart=fe,e.typeAliasNamePart=function(t){return _e(t,e.SymbolDisplayPartKind.aliasName)},e.typeParameterNamePart=function(t){return _e(t,e.SymbolDisplayPartKind.typeParameterName)},e.linkTextPart=ge,e.linkNamePart=me,e.linkPart=ye,e.buildLinkParts=function(t,r){var n,i=[ye("{@link ")];if(t.name){var a=null==r?void 0:r.getSymbolAtLocation(t.name),o=(null==a?void 0:a.valueDeclaration)||(null===(n=null==a?void 0:a.declarations)||void 0===n?void 0:n[0]);o?(i.push(me(t.name,o)),t.text&&i.push(ge(t.text))):i.push(ge(e.getTextOfNode(t.name)+t.text))}else t.text&&i.push(ge(t.text));return i.push(ye("}")),i};var ve,he;function De(){return _e("\n",e.SymbolDisplayPartKind.lineBreak)}function xe(e){try{return e(le),le.displayParts()}finally{le.clear()}}function be(e){return 0!=(33554432&e.flags)}function Se(e){return 0!=(2097152&e.flags)}function Ee(e,t){void 0===t&&(t=!0);var r=e&&Ce(e);return r&&!t&&ke(r),r}function Te(t,r,n){var i=n(t);return i?e.setOriginalNode(i,t):i=Ce(t,n),i&&!r&&ke(i),i}function Ce(t,r){var n=r?e.visitEachChild(t,(function(e){return Te(e,!0,r)}),e.nullTransformationContext):e.visitEachChild(t,Ee,e.nullTransformationContext);if(n===t){var i=e.isStringLiteral(t)?e.setOriginalNode(e.factory.createStringLiteralFromNode(t),t):e.isNumericLiteral(t)?e.setOriginalNode(e.factory.createNumericLiteral(t.text,t.numericLiteralFlags),t):e.factory.cloneNode(t);return e.setTextRange(i,t)}return n.parent=void 0,n}function ke(e){Ae(e),Fe(e)}function Ae(e){Ne(e,512,Pe)}function Fe(t){Ne(t,1024,e.getLastChild)}function Ne(t,r,n){e.addEmitFlags(t,r);var i=n(t);i&&Ne(i,r,n)}function Pe(e){return e.forEachChild((function(e){return e}))}function we(t,r,n,i,a){e.forEachLeadingCommentRange(n.text,t.pos,Me(r,n,i,a,e.addSyntheticLeadingComment))}function Ie(t,r,n,i,a){e.forEachTrailingCommentRange(n.text,t.end,Me(r,n,i,a,e.addSyntheticTrailingComment))}function Oe(t,r,n,i,a){e.forEachTrailingCommentRange(n.text,t.pos,Me(r,n,i,a,e.addSyntheticLeadingComment))}function Me(e,t,r,n,i){return function(a,o,s,c){3===s?(a+=2,o-=2):a+=2,i(e,r||s,t.text.slice(a,o),void 0!==n?n:c)}}function Le(t,r){if(e.startsWith(t,r))return 0;var n=t.indexOf(" "+r);return-1===n&&(n=t.indexOf("."+r)),-1===n&&(n=t.indexOf('"'+r)),-1===n?-1:n+1}function Re(e){switch(e){case 36:case 34:case 37:case 35:return!0;default:return!1}}function Be(e,t){return t.getTypeAtLocation(e.parent.parent.expression)}function je(e){return 170===e||171===e||172===e||163===e||165===e}function Je(e){return 252===e||167===e||166===e||168===e||169===e}function Ke(e){return 257===e}function ze(e){return 233===e||234===e||236===e||241===e||242===e||243===e||247===e||249===e||164===e||255===e||262===e||261===e||268===e||260===e||267===e}function Ue(e,t){return qe(e,e.fileExists,t)}function Ve(e){try{return e()}catch(e){return}}function qe(e,t){for(var r=[],n=2;n-1&&e.isWhiteSpaceSingleLine(t.charCodeAt(r));)r-=1;return r+1},e.getSynthesizedDeepClone=Ee,e.getSynthesizedDeepCloneWithReplacements=Te,e.getSynthesizedDeepClones=function(t,r){return void 0===r&&(r=!0),t&&e.factory.createNodeArray(t.map((function(e){return Ee(e,r)})),t.hasTrailingComma)},e.getSynthesizedDeepClonesWithReplacements=function(t,r,n){return e.factory.createNodeArray(t.map((function(e){return Te(e,r,n)})),t.hasTrailingComma)},e.suppressLeadingAndTrailingTrivia=ke,e.suppressLeadingTrivia=Ae,e.suppressTrailingTrivia=Fe,e.copyComments=function(e,t){var r=e.getSourceFile();!function(e,t){for(var r=e.getFullStart(),n=e.getStart(),i=r;i=0),o},e.copyLeadingComments=we,e.copyTrailingComments=Ie,e.copyTrailingAsLeadingComments=Oe,e.needsParentheses=function(t){return e.isBinaryExpression(t)&&27===t.operatorToken.kind||e.isObjectLiteralExpression(t)||e.isAsExpression(t)&&e.isObjectLiteralExpression(t.expression)},e.getContextualTypeFromParent=function(e,t){var r=e.parent;switch(r.kind){case 205:return t.getContextualType(r);case 217:var n=r,i=n.left,a=n.operatorToken,o=n.right;return Re(a.kind)?t.getTypeAtLocation(e===o?i:o):t.getContextualType(e);case 285:return r.expression===e?Be(r,t):void 0;default:return t.getContextualType(e)}},e.quote=function(t,r,n){var i=ae(t,r),a=JSON.stringify(n);return 0===i?"'"+e.stripQuotes(a).replace(/'/g,"\\'").replace(/\\"/g,'"')+"'":a},e.isEqualityOperatorKind=Re,e.isStringLiteralOrTemplate=function(e){switch(e.kind){case 10:case 14:case 219:case 206:return!0;default:return!1}},e.hasIndexSignature=function(e){return!!e.getStringIndexType()||!!e.getNumberIndexType()},e.getSwitchedType=Be,e.ANONYMOUS="anonymous function",e.getTypeNodeIfAccessible=function(e,t,r,n){var i=r.getTypeChecker(),a=!0,o=function(){a=!1},s=i.typeToTypeNode(e,t,1,{trackSymbol:function(e,t,r){a=a&&0===i.isSymbolAccessible(e,t,r,!1).accessibility},reportInaccessibleThisError:o,reportPrivateInBaseOfClassExpression:o,reportInaccessibleUniqueSymbolError:o,moduleResolverHost:te(r,n)});return a?s:void 0},e.syntaxRequiresTrailingCommaOrSemicolonOrASI=je,e.syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI=Je,e.syntaxRequiresTrailingModuleBlockOrSemicolonOrASI=Ke,e.syntaxRequiresTrailingSemicolonOrASI=ze,e.syntaxMayBeASICandidate=e.or(je,Je,Ke,ze),e.positionIsASICandidate=function(t,r,n){var i=e.findAncestor(r,(function(r){return r.end!==t?"quit":e.syntaxMayBeASICandidate(r.kind)}));return!!i&&function(t,r){var n=t.getLastToken(r);if(n&&26===n.kind)return!1;if(je(t.kind)){if(n&&27===n.kind)return!1}else if(Ke(t.kind)){if((i=e.last(t.getChildren(r)))&&e.isModuleBlock(i))return!1}else if(Je(t.kind)){var i;if((i=e.last(t.getChildren(r)))&&e.isFunctionBlock(i))return!1}else if(!ze(t.kind))return!1;if(236===t.kind)return!0;var a=R(t,e.findAncestor(t,(function(e){return!e.parent})),r);return!a||19===a.kind||r.getLineAndCharacterOfPosition(t.getEnd()).line!==r.getLineAndCharacterOfPosition(a.getStart(r)).line}(i,n)},e.probablyUsesSemicolons=function(t){var r=0,n=0;return e.forEachChild(t,(function i(a){if(ze(a.kind)){var o=a.getLastToken(t);o&&26===o.kind?r++:n++}return r+n>=5||e.forEachChild(a,i)})),0===r&&n<=1||r/n>.2},e.tryGetDirectories=function(e,t){return qe(e,e.getDirectories,t)||[]},e.tryReadDirectory=function(t,r,n,i,a){return qe(t,t.readDirectory,r,n,i,a)||e.emptyArray},e.tryFileExists=Ue,e.tryDirectoryExists=function(t,r){return Ve((function(){return e.directoryProbablyExists(r,t)}))||!1},e.tryAndIgnoreErrors=Ve,e.tryIOAndConsumeErrors=qe,e.findPackageJsons=function(t,r,n){var i=[];return e.forEachAncestorDirectory(t,(function(t){if(t===n)return!0;var a=e.combinePaths(t,"package.json");Ue(r,a)&&i.push(a)})),i},e.findPackageJson=function(t,r){var n;return e.forEachAncestorDirectory(t,(function(t){return"node_modules"===t||(!!(n=e.findConfigFile(t,(function(e){return Ue(r,e)}),"package.json"))||void 0)})),n},e.getPackageJsonsVisibleToFile=We,e.createPackageJsonInfo=He,e.createPackageJsonImportFilter=function(t,r){var n,i=(r.getPackageJsonsVisibleToFile&&r.getPackageJsonsVisibleToFile(t.fileName)||We(t.fileName,r)).filter((function(e){return e.parseable}));return{allowsImportingAmbientModule:function(t,r){if(!i.length||!t.valueDeclaration)return!0;var n=s(t.valueDeclaration.getSourceFile().fileName,r);if(void 0===n)return!0;var c=e.stripQuotes(t.getName());if(o(c))return!0;return a(n)||a(c)},allowsImportingSourceFile:function(e,t){if(!i.length)return!0;var r=s(e.fileName,t);if(!r)return!0;return a(r)},allowsImportingSpecifier:function(t){if(!i.length||o(t))return!0;if(e.pathIsRelative(t)||e.isRootedDiskPath(t))return!0;return a(t)}};function a(t){for(var r=c(t),n=0,a=i;n=0){var a=r[i];return e.Debug.assertEqual(a.file,t.getSourceFile(),"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"),e.cast(a,Ye)}},e.getDiagnosticsWithinSpan=function(t,r){var n,i=e.binarySearchKey(r,t.start,(function(e){return e.start}),e.compareValues);for(i<0&&(i=~i);(null===(n=r[i-1])||void 0===n?void 0:n.start)===t.start;)i--;for(var a=[],o=e.textSpanEnd(t);;){var s=e.tryCast(r[i],Ye);if(!s||s.start>o)break;e.textSpanContainsTextSpan(t,s)&&a.push(s),i++}return a},e.getRefactorContextSpan=function(t){var r=t.startPosition,n=t.endPosition;return e.createTextSpanFromBounds(r,void 0===n?r:n)},e.mapOneOrMany=function(t,r,n){return void 0===n&&(n=e.identity),t?e.isArray(t)?n(e.map(t,r)):r(t,0):void 0},e.firstOrOnly=function(t){return e.isArray(t)?e.first(t):t},e.getNameForExportedSymbol=function(t,r){return 33554432&t.flags||"export="!==t.escapedName&&"default"!==t.escapedName?t.name:e.firstDefined(t.declarations,(function(t){var r;return e.isExportAssignment(t)?null===(r=e.tryCast(e.skipOuterExpressions(t.expression),e.isIdentifier))||void 0===r?void 0:r.text:void 0}))||e.codefix.moduleSymbolToValidIdentifier(function(t){var r;return e.Debug.checkDefined(t.parent,"Symbol parent was undefined. Flags: "+e.Debug.formatSymbolFlags(t.flags)+". Declarations: "+(null===(r=t.declarations)||void 0===r?void 0:r.map((function(t){var r=e.Debug.formatSyntaxKind(t.kind),n=e.isInJSFile(t),i=t.expression;return(n?"[JS]":"")+r+(i?" (expression: "+e.Debug.formatSyntaxKind(i.kind)+")":"")})).join(", "))+".")}(t),r)},e.stringContainsAt=function(e,t,r){var n=t.length;if(n+r>e.length)return!1;for(var i=0;i=i.length){var D=r(o,u,e.lastOrUndefined(d));void 0!==D&&(m=D)}}while(1!==u);function x(){switch(u){case 43:case 67:t[l]||13!==o.reScanSlashToken()||(u=13);break;case 29:78===l&&v++;break;case 31:v>0&&v--;break;case 128:case 147:case 144:case 131:case 148:v>0&&!c&&(u=78);break;case 15:d.push(u);break;case 18:d.length>0&&d.push(u);break;case 19:if(d.length>0){var r=e.lastOrUndefined(d);15===r?17===(u=o.reScanTemplateToken(!1))?d.pop():e.Debug.assertEqual(u,16,"Should have been a template middle."):(e.Debug.assertEqual(r,18,"Should have been an open brace"),d.pop())}break;default:if(!e.isKeyword(u))break;(24===l||e.isKeyword(l)&&e.isKeyword(u)&&!function(t,r){if(!e.isAccessibilityModifier(t))return!0;switch(r){case 134:case 146:case 132:case 123:return!0;default:return!1}}(l,u))&&(u=78)}}return{endOfLineState:m,spans:y}}return{getClassificationsForLine:function(t,r,n){return function(t,r){for(var n=[],a=t.spans,o=0,s=0;s=0){var d=c-o;d>0&&n.push({length:d,classification:e.TokenClass.Whitespace})}n.push({length:u,classification:i(l)}),o=c+u}var _=r.length-o;_>0&&n.push({length:_,classification:e.TokenClass.Whitespace});return{entries:n,finalLexState:t.endOfLineState}}(s(t,r,n),t)},getEncodedLexicalClassifications:s}};var t=e.arrayToNumericMap([78,10,8,9,13,107,45,46,21,23,19,109,94],(function(e){return e}),(function(){return!0}));function r(t,r,n){switch(r){case 10:if(!t.isUnterminated())return;for(var i=t.getTokenText(),a=i.length-1,o=0;92===i.charCodeAt(a-o);)o++;if(0==(1&o))return;return 34===i.charCodeAt(0)?3:2;case 3:return t.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(r)){if(!t.isUnterminated())return;switch(r){case 17:return 5;case 14:return 4;default:return e.Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #"+r)}}return 15===n?6:void 0}}function n(e,t,r,n,i){if(8!==n){0===e&&r>0&&(e+=r);var a=t-e;a>0&&i.push(e-r,a,n)}}function i(t){switch(t){case 1:return e.TokenClass.Comment;case 3:return e.TokenClass.Keyword;case 4:return e.TokenClass.NumberLiteral;case 25:return e.TokenClass.BigIntLiteral;case 5:return e.TokenClass.Operator;case 6:return e.TokenClass.StringLiteral;case 8:return e.TokenClass.Whitespace;case 10:return e.TokenClass.Punctuation;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return e.TokenClass.Identifier;default:return}}function a(t){if(e.isKeyword(t))return 3;if(function(e){switch(e){case 41:case 43:case 44:case 39:case 40:case 47:case 48:case 49:case 29:case 31:case 32:case 33:case 101:case 100:case 126:case 34:case 35:case 36:case 37:case 50:case 52:case 51:case 55:case 56:case 73:case 72:case 77:case 69:case 70:case 71:case 63:case 64:case 65:case 67:case 68:case 62:case 27:case 60:case 74:case 75:case 76:return!0;default:return!1}}(t)||function(e){switch(e){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}(t))return 5;if(t>=18&&t<=77)return 10;switch(t){case 8:return 4;case 9:return 25;case 10:return 6;case 13:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;case 78:default:return e.isTemplateLiteralKind(t)?6:2}}function o(e,t){switch(t){case 257:case 253:case 254:case 252:case 222:case 209:case 210:e.throwIfCancellationRequested()}}function s(t,r,n,i,a){var s=[];return n.forEachChild((function u(l){if(l&&e.textSpanIntersectsWith(a,l.pos,l.getFullWidth())){if(o(r,l.kind),e.isIdentifier(l)&&!e.nodeIsMissing(l)&&i.has(l.escapedText)){var d=t.getSymbolAtLocation(l),_=d&&c(d,e.getMeaningFromLocation(l),t);_&&function(t,r,n){var i=r-t;e.Debug.assert(i>0,"Classification had non-positive length of "+i),s.push(t),s.push(i),s.push(n)}(l.getStart(n),l.getEnd(),_)}l.forEachChild(u)}})),{spans:s,endOfLineState:0}}function c(t,r,n){var i=t.getFlags();return 0==(2885600&i)?void 0:32&i?11:384&i?12:524288&i?16:1536&i?4&r||1&r&&function(t){return e.some(t.declarations,(function(t){return e.isModuleDeclaration(t)&&1===e.getModuleInstanceState(t)}))}(t)?14:void 0:2097152&i?c(n.getAliasedSymbol(t),r,n):2&r?64&i?13:262144&i?15:void 0:void 0}function u(e){switch(e){case 1:return"comment";case 2:return"identifier";case 3:return"keyword";case 4:return"number";case 25:return"bigint";case 5:return"operator";case 6:return"string";case 8:return"whitespace";case 9:return"text";case 10:return"punctuation";case 11:return"class name";case 12:return"enum name";case 13:return"interface name";case 14:return"module name";case 15:return"type parameter name";case 16:return"type alias name";case 17:return"parameter name";case 18:return"doc comment tag name";case 19:return"jsx open tag name";case 20:return"jsx close tag name";case 21:return"jsx self closing tag name";case 22:return"jsx attribute";case 23:return"jsx text";case 24:return"jsx attribute string literal value";default:return}}function l(t){e.Debug.assert(t.spans.length%3==0);for(var r=t.spans,n=[],i=0;i])*)(\/>)?)?/im,a=/(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/gim,o=r.text.substr(t,n),s=i.exec(o);if(!s)return!1;if(!s[3]||!(s[3]in e.commentPragmas))return!1;var c=t;_(c,s[1].length),l(c+=s[1].length,s[2].length,10),l(c+=s[2].length,s[3].length,21),c+=s[3].length;var u=s[4],d=c;for(;;){var p=a.exec(u);if(!p)break;var f=c+p.index;f>d&&(_(d,f-d),d=f),l(d,p[1].length,22),d+=p[1].length,p[2].length&&(_(d,p[2].length),d+=p[2].length),l(d,p[3].length,5),d+=p[3].length,p[4].length&&(_(d,p[4].length),d+=p[4].length),l(d,p[5].length,24),d+=p[5].length}(c+=s[4].length)>d&&_(d,c-d);s[5]&&(l(c,s[5].length,10),c+=s[5].length);var g=t+n;c=0),a>0){var o=n||y(t.kind,t);o&&l(i,a,o)}return!0}function y(t,r){if(e.isKeyword(t))return 3;if((29===t||31===t)&&r&&e.getTypeArgumentOrTypeParameterList(r.parent))return 10;if(e.isPunctuation(t)){if(r){var n=r.parent;if(62===t&&(250===n.kind||164===n.kind||161===n.kind||281===n.kind))return 5;if(217===n.kind||215===n.kind||216===n.kind||218===n.kind)return 5}return 10}if(8===t)return 4;if(9===t)return 25;if(10===t)return r&&281===r.parent.kind?24:6;if(13===t)return 6;if(e.isTemplateLiteralKind(t))return 6;if(11===t)return 23;if(78===t){if(r)switch(r.parent.kind){case 253:return r.parent.name===r?11:void 0;case 160:return r.parent.name===r?15:void 0;case 254:return r.parent.name===r?13:void 0;case 256:return r.parent.name===r?12:void 0;case 257:return r.parent.name===r?14:void 0;case 161:return r.parent.name===r?e.isThisIdentifier(r)?3:17:void 0}return 2}}function v(n){if(n&&e.decodedTextSpanIntersectsWith(i,a,n.pos,n.getFullWidth())){o(t,n.kind);for(var s=0,c=n.getChildren(r);s0})))return 0;if(a((function(e){return e.getCallSignatures().length>0}))&&!a((function(e){return e.getProperties().length>0}))||function(t){for(;c(t);)t=t.parent;return e.isCallExpression(t.parent)&&t.parent.expression===t}(r))return 9===n?11:10}}return n}(o,_,g);var y=f.valueDeclaration;if(y){var v=e.getCombinedModifierFlags(y),h=e.getCombinedNodeFlags(y);32&v&&(m|=2),256&v&&(m|=4),0!==g&&2!==g&&(64&v||2&h||8&f.getFlags())&&(m|=8),7!==g&&10!==g||!function(t,r){return e.isBindingElement(t)&&(t=s(t)),e.isVariableDeclaration(t)?(!e.isSourceFile(t.parent.parent.parent)||e.isCatchClause(t.parent))&&t.getSourceFile()===r:!!e.isFunctionDeclaration(t)&&(!e.isSourceFile(t.parent)&&t.getSourceFile()===r)}(y,r)||(m|=32),t.isSourceFileDefaultLibrary(y.getSourceFile())&&(m|=16)}else f.declarations&&f.declarations.some((function(e){return t.isSourceFileDefaultLibrary(e.getSourceFile())}))&&(m|=16);i(_,g,m)}}}e.forEachChild(_,d),l=p}}d(r)}(t,r,n,(function(e,t,n){a.push(e.getStart(r),e.getWidth(r),(t+1<<8)+n)}),i),a}function s(t){for(;;){if(!e.isBindingElement(t.parent.parent))return t.parent.parent;t=t.parent.parent}}function c(t){return e.isQualifiedName(t.parent)&&t.parent.right===t||e.isPropertyAccessExpression(t.parent)&&t.parent.name===t}(r=t.TokenEncodingConsts||(t.TokenEncodingConsts={}))[r.typeOffset=8]="typeOffset",r[r.modifierMask=255]="modifierMask",(n=t.TokenType||(t.TokenType={}))[n.class=0]="class",n[n.enum=1]="enum",n[n.interface=2]="interface",n[n.namespace=3]="namespace",n[n.typeParameter=4]="typeParameter",n[n.type=5]="type",n[n.parameter=6]="parameter",n[n.variable=7]="variable",n[n.enumMember=8]="enumMember",n[n.property=9]="property",n[n.function=10]="function",n[n.member=11]="member",(i=t.TokenModifier||(t.TokenModifier={}))[i.declaration=0]="declaration",i[i.static=1]="static",i[i.async=2]="async",i[i.readonly=3]="readonly",i[i.defaultLibrary=4]="defaultLibrary",i[i.local=5]="local",t.getSemanticClassifications=function(t,r,n,i){var o=a(t,r,n,i);e.Debug.assert(o.spans.length%3==0);for(var s=o.spans,c=[],u=0;ua.parameters.length)){var o=r.getParameterType(a,t.argumentIndex);return n=n||!!(4&o.flags),l(o,i)}})),isNewIdentifier:n}}(C,a):k()}case 262:case 268:case 273:return{kind:0,paths:f(t,n,o,s,a,d)};default:return k()}function k(){return{kind:2,types:l(e.getContextualTypeFromParent(n,a)),isNewIdentifier:!1}}}function c(t){switch(t.kind){case 187:return e.walkUpParenthesizedTypes(t);case 208:return e.walkUpParenthesizedExpressions(t);default:return t}}function u(t){return t&&{kind:1,symbols:e.filter(t.getApparentProperties(),(function(t){return!(t.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(t.valueDeclaration))})),hasIndexSignature:e.hasIndexSignature(t)}}function l(t,r){return void 0===r&&(r=new e.Map),t?(t=e.skipConstraint(t)).isUnion()?e.flatMap(t.types,(function(e){return l(e,r)})):!t.isStringLiteral()||1024&t.flags||!e.addToSeen(r,t.value)?e.emptyArray:[t]:e.emptyArray}function d(e,t,r){return{name:e,kind:t,extension:r}}function _(e){return d(e,"directory",void 0)}function p(t,r,n){var i=function(t,r){var n=Math.max(t.lastIndexOf(e.directorySeparator),t.lastIndexOf(e.altDirectorySeparator)),i=-1!==n?n+1:0,a=t.length-i;return 0===a||e.isIdentifierText(t.substr(i,a),99)?void 0:e.createTextSpan(r+i,a)}(t,r),a=0===t.length?void 0:e.createTextSpan(r,t.length);return n.map((function(t){var r=t.name,n=t.kind,o=t.extension;return-1!==Math.max(r.indexOf(e.directorySeparator),r.indexOf(e.altDirectorySeparator))?{name:r,kind:n,extension:o,span:a}:{name:r,kind:n,extension:o,span:i}}))}function f(r,n,i,a,o,s){return p(n.text,n.getStart(r)+1,function(r,n,i,a,o,s){var c=e.normalizeSlashes(n.text),u=r.path,l=e.getDirectoryPath(u);return function(e){if(e&&e.length>=2&&46===e.charCodeAt(0)){var t=e.length>=3&&46===e.charCodeAt(1)?2:1,r=e.charCodeAt(t);return 47===r||92===r}return!1}(c)||!i.baseUrl&&(e.isRootedDiskPath(c)||e.isUrl(c))?function(r,n,i,a,o,s){var c=g(i,"js"===s.importModuleSpecifierEnding);return i.rootDirs?function(r,n,i,a,o,s,c){var u=o.project||s.getCurrentDirectory(),l=!(s.useCaseSensitiveFileNames&&s.useCaseSensitiveFileNames()),d=function(r,n,i,a){r=r.map((function(t){return e.normalizePath(e.isRootedDiskPath(t)?t:e.combinePaths(n,t))}));var o=e.firstDefined(r,(function(t){return e.containsPath(t,i,n,a)?i.substr(t.length):void 0}));return e.deduplicate(t(t([],r.map((function(t){return e.combinePaths(t,o)}))),[i]),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}(r,u,i,l);return e.flatMap(d,(function(e){return y(n,e,a,s,c)}))}(i.rootDirs,r,n,c,i,a,o):y(r,n,c,a,o)}(c,l,i,a,u,s):function(t,r,n,i,a){var o=n.baseUrl,s=n.paths,c=[],u=g(n);if(o){var l=n.project||i.getCurrentDirectory(),_=e.normalizePath(e.combinePaths(l,o));y(t,_,u,i,void 0,c),s&&v(c,t,_,u.extensions,s,i)}for(var p=h(t),f=0,m=function(t,r,n){var i=n.getAmbientModules().map((function(t){return e.stripQuotes(t.name)})).filter((function(r){return e.startsWith(r,t)}));if(void 0!==r){var a=e.ensureTrailingDirectorySeparator(r);return i.map((function(t){return e.removePrefix(t,a)}))}return i}(t,p,a);f=e.pos&&r<=e.end}));if(s){var c=t.text.slice(s.pos,r),u=b.exec(c);if(u){var l=u[1],d=u[2],_=u[3],f=e.getDirectoryPath(t.path),m="path"===d?y(_,f,g(n,!0),i,t.path):"types"===d?x(i,n,f,h(_),g(n)):e.Debug.fail();return p(_,s.pos+l.length,m)}}}(t,n,c,u))&&i(_);if(e.isInString(t,n,a)){if(!a||!e.isStringLiteralLike(a))return;var _;return function(t,n,a,o,s,c,u){if(void 0!==t){var l=e.createTextSpanFromStringLiteralLikeContent(n);switch(t.kind){case 0:return i(t.paths);case 1:var d=[];return r.getCompletionEntriesFromSymbols(t.symbols,d,n,a,a,o,99,s,4,u,c),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:t.hasIndexSignature,optionalReplacementSpan:l,entries:d};case 2:return d=t.types.map((function(t){return{name:t.value,kindModifiers:"",kind:"string",sortText:r.SortText.LocationPriority,replacementSpan:e.getReplacementSpanForContextToken(n)}})),{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:t.isNewIdentifier,optionalReplacementSpan:l,entries:d};default:return e.Debug.assertNever(t)}}}(_=s(t,a,n,o,c,u,d),a,t,o,l,c,d)}},n.getStringLiteralCompletionDetails=function(t,n,i,o,c,u,l,d,_){if(o&&e.isStringLiteralLike(o)){var p=s(n,o,i,c,u,l,_);return p&&function(t,n,i,o,s,c){switch(i.kind){case 0:return(u=e.find(i.paths,(function(e){return e.name===t})))&&r.createCompletionDetails(t,a(u.extension),u.kind,[e.textPart(t)]);case 1:var u;return(u=e.find(i.symbols,(function(e){return e.name===t})))&&r.createCompletionDetailsForSymbol(u,s,o,n,c);case 2:return e.find(i.types,(function(e){return e.value===t}))?r.createCompletionDetails(t,"","type",[e.textPart(t)]):void 0;default:return e.Debug.assertNever(i)}}(t,o,p,n,c,d)}},function(e){e[e.Paths=0]="Paths",e[e.Properties=1]="Properties",e[e.Types=2]="Types"}(o||(o={}));var b=/^(\/\/\/\s*=t.pos;case 24:return 198===n;case 58:return 199===n;case 22:return 198===n;case 20:return 288===n||ge(n);case 18:return 256===n;case 29:return 253===n||222===n||254===n||255===n||e.isFunctionLikeKind(n);case 123:return 164===n&&!e.isClassLike(r.parent);case 25:return 161===n||!!r.parent&&198===r.parent.kind;case 122:case 120:case 121:return 161===n&&!e.isConstructorDeclaration(r.parent);case 126:return 266===n||271===n||264===n;case 134:case 146:return!J(t);case 83:case 91:case 117:case 97:case 112:case 99:case 118:case 84:case 135:case 149:return!0;case 41:return e.isFunctionLike(t.parent)&&!e.isMethodDeclaration(t.parent)}if(O(L(t))&&J(t))return!1;if(pe(t)&&(!e.isIdentifier(t)||e.isParameterPropertyModifier(L(t))||he(t)))return!1;switch(L(t)){case 125:case 83:case 84:case 133:case 91:case 97:case 117:case 118:case 120:case 121:case 122:case 123:case 112:return!0;case 129:return e.isPropertyDeclaration(t.parent)}if(e.findAncestor(t.parent,e.isClassLike)&&t===v&&fe(t,o))return!1;var a=e.getAncestor(t.parent,164);if(a&&t!==v&&e.isClassLike(v.parent.parent)&&o<=v.end){if(fe(t,v.end))return!1;if(62!==t.kind&&(e.isInitializedProperty(a)||e.hasType(a)))return!0}return e.isDeclarationName(t)&&!e.isShorthandPropertyAssignment(t.parent)&&!e.isJsxAttribute(t.parent)&&!(e.isClassLike(t.parent)&&(t!==v||o>v.end))}(t)||function(e){if(8===e.kind){var t=e.getFullText();return"."===t.charAt(t.length-1)}return!1}(t)||function(e){if(11===e.kind)return!0;if(31===e.kind&&e.parent){if(276===e.parent.kind)return 276!==P.parent.kind;if(277===e.parent.kind||275===e.parent.kind)return!!e.parent.parent&&274===e.parent.parent.kind}return!1}(t);return n("getCompletionsAtPosition: isCompletionListBlocker: "+(e.timestamp()-r)),a}(h))return void n("Returning an empty list because completion was requested in an invalid position.");var M=h.parent;if(24===h.kind||28===h.kind)switch(E=24===h.kind,T=28===h.kind,M.kind){case 202:if(S=(x=M).expression,(e.isCallExpression(S)||e.isFunctionLike(S))&&S.end===h.pos&&S.getChildCount(i)&&21!==e.last(S.getChildren(i)).kind)return;break;case 158:S=M.left;break;case 257:S=M.name;break;case 196:case 227:S=M;break;default:return}else if(!b&&1===i.languageVariant){if(M&&202===M.kind&&(h=M,M=M.parent),_.parent===P)switch(_.kind){case 31:274!==_.parent.kind&&276!==_.parent.kind||(P=_);break;case 43:275===_.parent.kind&&(P=_)}switch(M.kind){case 277:43===h.kind&&(A=!0,P=h);break;case 217:if(!K(M))break;case 275:case 274:case 276:N=!0,29===h.kind&&(C=!0,P=h);break;case 284:19===v.kind&&31===_.kind&&(N=!0);break;case 281:if(M.initializer===v&&v.end0&&(Y=function(t,r){if(0===r.length)return t;for(var n=new e.Set,i=new e.Set,a=0,o=r;a");return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:e.createTextSpanFromNode(i.tagName),entries:[{name:o,kind:"class",kindModifiers:void 0,sortText:r.LocationPriority}]}}return}(_,t);if(F)return F}var P=[];if(f(t,i)){var I=b(c,P,void 0,_,t,n,i.target,a,u,s,i,E,m,T,S,C,x,D,A);!function(t,n,i,a,o){e.getNameTable(t).forEach((function(t,s){if(t!==n){var c=e.unescapeLeadingUnderscores(s);!i.has(c)&&e.isIdentifierText(c,a)&&(i.add(c),o.push({name:c,kind:"warning",kindModifiers:"",sortText:r.JavascriptIdentifiers,isFromUncheckedFile:!0}))}}))}(t,_.pos,I,i.target,P)}else{if(!(d||c&&0!==c.length||0!==v))return;b(c,P,void 0,_,t,n,i.target,a,u,s,i,E,m,T,S,C,x,D,A)}if(0!==v)for(var O=new e.Set(P.map((function(e){return e.name}))),M=0,L=function(t,r){if(!r)return w(t);var n=t+7+1;return N[n]||(N[n]=w(t).filter((function(t){return!function(e){switch(e){case 125:case 128:case 155:case 131:case 133:case 91:case 154:case 116:case 135:case 117:case 137:case 138:case 139:case 140:case 141:case 144:case 145:case 156:case 120:case 121:case 122:case 142:case 147:case 148:case 149:case 151:case 152:return!0;default:return!1}}(e.stringToToken(t.name))})))}(v,!k&&e.isSourceFileJS(t));M-1?E(f,"keyword",e.SymbolDisplayPartKind.keyword):void 0;default:return e.Debug.assertNever(v)}case"symbol":var h=y.symbol,D=y.location,x=function(t,r,n,i,a,o,s,c,l,d,_,p){if(null==p?void 0:p.moduleSpecifier)return{codeActions:void 0,sourceDisplay:[e.textPart(p.moduleSpecifier)]};if(!t||!u(t))return{codeActions:void 0,sourceDisplay:void 0};var f=t.moduleSymbol,g=i.getMergedSymbol(e.skipAlias(r.exportSymbol||r,i)),m=e.codefix.getImportCompletionAction(g,f,s,e.getNameForExportedSymbol(r,o.target),a,n,d,l&&e.isIdentifier(l)?l.getStart(s):c,_),y=m.moduleSpecifier,v=m.codeAction;return{sourceDisplay:[e.textPart(y)],codeActions:[v]}}(y.origin,h,r,_,s,p,i,a,y.previousToken,c,l,o.data);return T(h,_,i,D,d,x.codeActions,x.sourceDisplay);case"literal":var b=y.literal;return E(m(i,l,b),"string","string"==typeof b?e.SymbolDisplayPartKind.stringLiteral:e.SymbolDisplayPartKind.numericLiteral);case"none":return P().some((function(e){return e.name===f}))?E(f,"keyword",e.SymbolDisplayPartKind.keyword):void 0;default:e.Debug.assertNever(y)}},t.createCompletionDetailsForSymbol=T,t.createCompletionDetails=C,t.getCompletionEntrySymbol=function(e,t,r,n,i,a,o){var s=S(e,t,r,n,i,a,o);return"symbol"===s.type?s.symbol:void 0},function(e){e[e.Data=0]="Data",e[e.JsDocTagName=1]="JsDocTagName",e[e.JsDocTag=2]="JsDocTag",e[e.JsDocParameterName=3]="JsDocParameterName",e[e.Keywords=4]="Keywords"}(s||(s={})),(c=t.CompletionKind||(t.CompletionKind={}))[c.ObjectPropertyDeclaration=0]="ObjectPropertyDeclaration",c[c.Global=1]="Global",c[c.PropertyAccess=2]="PropertyAccess",c[c.MemberLike=3]="MemberLike",c[c.String=4]="String",c[c.None=5]="None";var N=[],P=e.memoize((function(){for(var t=[],n=80;n<=157;n++)t.push({name:e.tokenToString(n),kind:"keyword",kindModifiers:"",sortText:r.GlobalsOrKeywords});return t}));function w(t){return N[t]||(N[t]=P().filter((function(r){var n=e.stringToToken(r.name);switch(t){case 0:return!1;case 1:return M(n)||133===n||139===n||149===n||140===n||e.isTypeKeyword(n)&&150!==n;case 5:return M(n);case 2:return O(n);case 3:return I(n);case 4:return e.isParameterPropertyModifier(n);case 6:return e.isTypeKeyword(n)||84===n;case 7:return e.isTypeKeyword(n);default:return e.Debug.assertNever(t)}})))}function I(e){return 142===e}function O(t){switch(t){case 125:case 132:case 134:case 146:case 129:case 133:case 156:return!0;default:return e.isClassMemberModifier(t)}}function M(t){return 129===t||130===t||126===t||!e.isContextualKeyword(t)&&!O(t)}function L(t){return e.isIdentifier(t)?t.originalKeywordKind||0:t.kind}function R(t,r,n,i){var a=r&&r!==t,o=!a||3&r.flags?t:i.getUnionType([t,r]),s=o.isUnion()?i.getAllPossiblePropertiesOfTypes(o.types.filter((function(t){return!(131068&t.flags||i.isArrayLikeType(t)||e.typeHasCallOrConstructSignatures(t,i)||i.isTypeInvalidDueToUnionDiscriminant(t,n))}))):o.getApparentProperties();return a?s.filter((function(t){return e.some(t.declarations,(function(e){return e.parent!==n}))})):s}function B(t,r){return t.isUnion()?e.Debug.checkEachDefined(r.getAllPossiblePropertiesOfTypes(t.types),"getAllPossiblePropertiesOfTypes() should all be defined"):e.Debug.checkEachDefined(t.getApparentProperties(),"getApparentProperties() should all be defined")}function j(t,r){if(t){if(e.isTypeNode(t)&&e.isTypeReferenceType(t.parent))return r.getTypeArgumentConstraint(t);var n=j(t.parent,r);if(n)switch(t.kind){case 163:return r.getTypeOfPropertyOfContextualType(n,t.symbol.escapedName);case 184:case 178:case 183:return n}}}function J(t){return t.parent&&e.isClassOrTypeElement(t.parent)&&e.isObjectTypeDeclaration(t.parent.parent)}function K(t){var r=t.left;return e.nodeIsMissing(r)}function z(t){var r;return!!e.nodeIsMissing(t)||!(null===(r=e.tryCast(e.isExternalModuleReference(t)?t.expression:t,e.isStringLiteralLike))||void 0===r?void 0:r.text)}function U(t,r,n){void 0===n&&(n=new e.Map);var i=e.skipAlias(t.exportSymbol||t,r);return!!(788968&i.flags)||!!(1536&i.flags)&&e.addToSeen(n,e.getSymbolId(i))&&r.getExportsOfModule(i).some((function(e){return U(e,r,n)}))}t.getPropertiesForObjectExpression=R}(e.Completions||(e.Completions={}))}(s||(s={})),function(e){!function(r){function n(t,r){return{fileName:r.fileName,textSpan:e.createTextSpanFromNode(t,r),kind:"none"}}function i(t){return e.isThrowStatement(t)?[t]:e.isTryStatement(t)?e.concatenate(t.catchClause?i(t.catchClause):t.tryBlock&&i(t.tryBlock),t.finallyBlock&&i(t.finallyBlock)):e.isFunctionLike(t)?void 0:o(t,i)}function a(t){return e.isBreakOrContinueStatement(t)?[t]:e.isFunctionLike(t)?void 0:o(t,a)}function o(t,r){var n=[];return t.forEachChild((function(t){var i=r(t);void 0!==i&&n.push.apply(n,e.toArray(i))})),n}function s(e,t){var r=c(t);return!!r&&r===e}function c(t){return e.findAncestor(t,(function(r){switch(r.kind){case 245:if(241===t.kind)return!1;case 238:case 239:case 240:case 237:case 236:return!t.label||function(t,r){return!!e.findAncestor(t.parent,(function(t){return e.isLabeledStatement(t)?t.label.escapedText===r:"quit"}))}(r,t.label.escapedText);default:return e.isFunctionLike(r)&&"quit"}}))}function u(t,r){for(var n=[],i=2;i=0&&!u(r,n[i],114);i--);return e.forEach(a(t.statement),(function(e){s(t,e)&&u(r,e.getFirstToken(),80,85)})),r}function d(e){var t=c(e);if(t)switch(t.kind){case 238:case 239:case 240:case 236:case 237:return l(t);case 245:return _(t)}}function _(t){var r=[];return u(r,t.getFirstToken(),106),e.forEach(t.caseBlock.clauses,(function(n){u(r,n.getFirstToken(),81,87),e.forEach(a(n),(function(e){s(t,e)&&u(r,e.getFirstToken(),80)}))})),r}function p(t,r){var n=[];(u(n,t.getFirstToken(),110),t.catchClause&&u(n,t.catchClause.getFirstToken(),82),t.finallyBlock)&&u(n,e.findChildOfKind(t,95,r),95);return n}function f(t,r){var n=function(t){for(var r=t;r.parent;){var n=r.parent;if(e.isFunctionBlock(n)||298===n.kind)return n;if(e.isTryStatement(n)&&n.tryBlock===r&&n.catchClause)return r;r=n}}(t);if(n){var a=[];return e.forEach(i(n),(function(t){a.push(e.findChildOfKind(t,108,r))})),e.isFunctionBlock(n)&&e.forEachReturnStatement(n,(function(t){a.push(e.findChildOfKind(t,104,r))})),a}}function g(t,r){var n=e.getContainingFunction(t);if(n){var a=[];return e.forEachReturnStatement(e.cast(n.body,e.isBlock),(function(t){a.push(e.findChildOfKind(t,104,r))})),e.forEach(i(n.body),(function(t){a.push(e.findChildOfKind(t,108,r))})),a}}function m(t){var r=e.getContainingFunction(t);if(r){var n=[];return r.modifiers&&r.modifiers.forEach((function(e){u(n,e,129)})),e.forEachChild(r,(function(t){y(t,(function(t){e.isAwaitExpression(t)&&u(n,t.getFirstToken(),130)}))})),n}}function y(t,r){r(t),e.isFunctionLike(t)||e.isClassLike(t)||e.isInterfaceDeclaration(t)||e.isModuleDeclaration(t)||e.isTypeAliasDeclaration(t)||e.isTypeNode(t)||e.forEachChild(t,(function(e){return y(e,r)}))}r.getDocumentHighlights=function(r,i,a,o,s){var c=e.getTouchingPropertyName(a,o);if(c.parent&&(e.isJsxOpeningElement(c.parent)&&c.parent.tagName===c||e.isJsxClosingElement(c.parent))){var v=c.parent.parent,h=[v.openingElement,v.closingElement].map((function(e){return n(e.tagName,a)}));return[{fileName:a.fileName,highlightSpans:h}]}return function(t,r,n,i,a){var o=new e.Set(a.map((function(e){return e.fileName}))),s=e.FindAllReferences.getReferenceEntriesForNode(t,r,n,a,i,void 0,o);if(!s)return;var c=e.arrayToMultiMap(s.map(e.FindAllReferences.toHighlightSpan),(function(e){return e.fileName}),(function(e){return e.span}));return e.mapDefined(e.arrayFrom(c.entries()),(function(t){var r=t[0],i=t[1];if(!o.has(r)){if(!n.redirectTargetsMap.has(r))return;var s=n.getSourceFile(r);r=e.find(a,(function(e){return!!e.redirectInfo&&e.redirectInfo.redirectTarget===s})).fileName,e.Debug.assert(o.has(r))}return{fileName:r,highlightSpans:i}}))}(o,c,r,i,s)||function(r,i){var a=function(r,i){switch(r.kind){case 98:case 90:return e.isIfStatement(r.parent)?function(t,r){for(var i=function(t,r){var n=[];for(;e.isIfStatement(t.parent)&&t.parent.elseStatement===t;)t=t.parent;for(;;){var i=t.getChildren(r);u(n,i[0],98);for(var a=i.length-1;a>=0&&!u(n,i[a],90);a--);if(!t.elseStatement||!e.isIfStatement(t.elseStatement))break;t=t.elseStatement}return n}(t,r),a=[],o=0;o=s.end;d--)if(!e.isWhiteSpaceSingleLine(r.text.charCodeAt(d))){l=!1;break}if(l){a.push({fileName:r.fileName,textSpan:e.createTextSpanFromBounds(s.getStart(),c.end),kind:"reference"}),o++;continue}}a.push(n(i[o],r))}return a}(r.parent,i):void 0;case 104:return c(r.parent,e.isReturnStatement,g);case 108:return c(r.parent,e.isThrowStatement,f);case 110:case 82:case 95:return c(82===r.kind?r.parent.parent:r.parent,e.isTryStatement,p);case 106:return c(r.parent,e.isSwitchStatement,_);case 81:case 87:return e.isDefaultClause(r.parent)||e.isCaseClause(r.parent)?c(r.parent.parent.parent,e.isSwitchStatement,_):void 0;case 80:case 85:return c(r.parent,e.isBreakOrContinueStatement,d);case 96:case 114:case 89:return c(r.parent,(function(t){return e.isIterationStatement(t,!0)}),l);case 132:return s(e.isConstructorDeclaration,[132]);case 134:case 146:return s(e.isAccessor,[134,146]);case 130:return c(r.parent,e.isAwaitExpression,m);case 129:return v(m(r));case 124:return v(function(t){var r=e.getContainingFunction(t);if(!r)return;var n=[];return e.forEachChild(r,(function(t){y(t,(function(t){e.isYieldExpression(t)&&u(n,t.getFirstToken(),124)}))})),n}(r));default:return e.isModifierKind(r.kind)&&(e.isDeclaration(r.parent)||e.isVariableStatement(r.parent))?v((a=r.kind,o=r.parent,e.mapDefined(function(r,n){var i=r.parent;switch(i.kind){case 258:case 298:case 231:case 285:case 286:return 128&n&&e.isClassDeclaration(r)?t(t([],r.members),[r]):i.statements;case 167:case 166:case 252:return t(t([],i.parameters),e.isClassLike(i.parent)?i.parent.members:[]);case 253:case 222:case 254:case 178:var a=i.members;if(92&n){var o=e.find(i.members,e.isConstructorDeclaration);if(o)return t(t([],a),o.parameters)}else if(128&n)return t(t([],a),[i]);return a;case 201:return;default:e.Debug.assertNever(i,"Invalid container kind.")}}(o,e.modifierToFlag(a)),(function(t){return e.findModifier(t,a)})))):void 0}var a,o;function s(t,n){return c(r.parent,t,(function(r){return e.mapDefined(r.symbol.declarations,(function(r){return t(r)?e.find(r.getChildren(i),(function(t){return e.contains(n,t.kind)})):void 0}))}))}function c(e,t,r){return t(e)?v(r(e,i)):void 0}function v(e){return e&&e.map((function(e){return n(e,i)}))}}(r,i);return a&&[{fileName:i.fileName,highlightSpans:a}]}(c,a)}}(e.DocumentHighlights||(e.DocumentHighlights={}))}(s||(s={})),function(e){function t(e){return!!e.sourceFile}function r(r,i,a){void 0===i&&(i="");var o=new e.Map,s=e.createGetCanonicalFileName(!!r);function c(e,t,r,n,i,a,o){return d(e,t,r,n,i,a,!0,o)}function u(e,t,r,n,i,a,o){return d(e,t,r,n,i,a,!1,o)}function l(r,n){var i=t(r)?r:r.get(e.Debug.checkDefined(n,"If there are more than one scriptKind's for same document the scriptKind should be provided"));return e.Debug.assert(void 0===n||!i||i.sourceFile.scriptKind===n,"Script kind should match provided ScriptKind:"+n+" and sourceFile.scriptKind: "+(null==i?void 0:i.sourceFile.scriptKind)+", !entry: "+!i),i}function d(r,n,i,s,c,u,d,_){var p=6===(_=e.ensureScriptKind(r,_))?100:i.target||1,f=e.getOrUpdate(o,s,(function(){return new e.Map})),g=f.get(n),m=g&&l(g,_);!m&&a&&((y=a.getDocument(s,n))&&(e.Debug.assert(d),m={sourceFile:y,languageServiceRefCount:0},v()));if(m)m.sourceFile.version!==u&&(m.sourceFile=e.updateLanguageServiceSourceFile(m.sourceFile,c,u,c.getChangeRange(m.sourceFile.scriptSnapshot)),a&&a.setDocument(s,n,m.sourceFile)),d&&m.languageServiceRefCount++;else{var y=e.createLanguageServiceSourceFile(r,c,p,u,!1,_);a&&a.setDocument(s,n,y),m={sourceFile:y,languageServiceRefCount:1},v()}return e.Debug.assert(0!==m.languageServiceRefCount),m.sourceFile;function v(){if(g)if(t(g)){var r=new e.Map;r.set(g.sourceFile.scriptKind,g),r.set(_,m),f.set(n,r)}else g.set(_,m);else f.set(n,m)}}function _(r,n,i){var a=e.Debug.checkDefined(o.get(n)),s=a.get(r),c=l(s,i);c.languageServiceRefCount--,e.Debug.assert(c.languageServiceRefCount>=0),0===c.languageServiceRefCount&&(t(s)?a.delete(r):(s.delete(i),1===s.size&&a.set(r,e.firstDefinedIterator(s.values(),e.identity))))}return{acquireDocument:function(t,r,a,o,u){return c(t,e.toPath(t,i,s),r,n(r),a,o,u)},acquireDocumentWithKey:c,updateDocument:function(t,r,a,o,c){return u(t,e.toPath(t,i,s),r,n(r),a,o,c)},updateDocumentWithKey:u,releaseDocument:function(t,r,a){return _(e.toPath(t,i,s),n(r),a)},releaseDocumentWithKey:_,getLanguageServiceRefCounts:function(t,r){return e.arrayFrom(o.entries(),(function(e){var n=e[0],i=e[1].get(t),a=i&&l(i,r);return[n,a&&a.languageServiceRefCount]}))},reportStats:function(){var r=e.arrayFrom(o.keys()).filter((function(e){return e&&"_"===e.charAt(0)})).map((function(e){var r=o.get(e),n=[];return r.forEach((function(e,r){t(e)?n.push({name:r,scriptKind:e.sourceFile.scriptKind,refCount:e.languageServiceRefCount}):e.forEach((function(e,t){return n.push({name:r,scriptKind:t,refCount:e.languageServiceRefCount})}))})),n.sort((function(e,t){return t.refCount-e.refCount})),{bucket:e,sourceFiles:n}}));return JSON.stringify(r,void 0,2)},getKeyForCompilationSettings:n}}function n(t){return e.sourceFileAffectingCompilerOptions.map((function(r){return e.getCompilerOptionValue(t,r)})).join("|")}e.createDocumentRegistry=function(e,t){return r(e,t)},e.createDocumentRegistryInternal=r}(s||(s={})),function(e){!function(t){var n,i;function a(t,r){return e.forEach(298===t.kind?t.statements:t.body.statements,(function(t){return r(t)||l(t)&&e.forEach(t.body&&t.body.statements,r)}))}function o(t,r){if(t.externalModuleIndicator||void 0!==t.imports)for(var n=0,i=t.imports;n=0&&!(c>n.end);){var u=c+s;0!==c&&e.isIdentifierPart(a.charCodeAt(c-1),99)||u!==o&&e.isIdentifierPart(a.charCodeAt(u),99)||i.push(c),c=a.indexOf(r,c+s+1)}return i}function S(t,r){var n=t.getSourceFile(),i=r.text,a=e.mapDefined(D(n,i,t),(function(t){return t===r||e.isJumpStatementTarget(t)&&e.getTargetLabel(t,i)===r?c(t):void 0}));return[{definition:{type:1,node:r},references:a}]}function E(e,t,r,n){return void 0===n&&(n=!0),r.cancellationToken.throwIfCancellationRequested(),T(e,e,t,r,n)}function T(e,t,r,n,i){if(n.markSearchedSymbols(t,r.allSearchSymbols))for(var a=0,o=b(t,r.text,e);a0;o--){b(t,i=n[o])}return[n.length-1,n[0]]}function b(e,t){var r=v(e,t);g(o,r),u.push(o),l.push(s),s=void 0,o=r}function S(){o.children&&(A(o.children,o),O(o.children)),o=u.pop(),s=l.pop()}function E(e,t,r){b(e,r),k(t),S()}function T(t){t.initializer&&function(e){switch(e.kind){case 210:case 209:case 222:return!0;default:return!1}}(t.initializer)?(b(t),e.forEachChild(t.initializer,k),S()):E(t,t.initializer)}function C(t){return!e.hasDynamicName(t)||217!==t.kind&&e.isPropertyAccessExpression(t.name.expression)&&e.isIdentifier(t.name.expression.expression)&&"Symbol"===e.idText(t.name.expression.expression)}function k(t){var r;if(i.throwIfCancellationRequested(),t&&!e.isToken(t))switch(t.kind){case 167:var n=t;E(n,n.body);for(var a=0,o=n.parameters;a0&&(b(J,L),e.forEachChild(J.right,k),S()):e.isFunctionExpression(J.right)||e.isArrowFunction(J.right)?E(t,J.right,L):(b(J,L),E(t,J.right,I.name),S()),void D(M);case 7:case 9:var R=t,B=(L=7===w?R.arguments[0]:R.arguments[0].expression,R.arguments[1]),j=x(t,L);M=j[0];return b(t,j[1]),b(t,e.setTextRange(e.factory.createIdentifier(B.text),B)),k(t.arguments[2]),S(),S(),void D(M);case 5:var J,K=(I=(J=t).left).expression;if(e.isIdentifier(K)&&"prototype"!==e.getElementOrPropertyAccessName(I)&&s&&s.has(K.text))return void(e.isFunctionExpression(J.right)||e.isArrowFunction(J.right)?E(t,J.right,K):e.isBindableStaticAccessExpression(I)&&(b(J,K),E(J.left,J.right,e.getNameOrArgument(I)),S()));break;case 4:case 0:case 8:break;default:e.Debug.assertNever(w)}default:e.hasJSDocNodes(t)&&e.forEach(t.jsDoc,(function(t){e.forEach(t.tags,(function(t){e.isJSDocTypeAlias(t)&&y(t)}))})),e.forEachChild(t,k)}}function A(t,r){var n=new e.Map;e.filterMutate(t,(function(t,i){var a=t.name||e.getNameOfDeclaration(t.node),o=a&&p(a);if(!o)return!0;var s=n.get(o);if(!s)return n.set(o,t),!0;if(s instanceof Array){for(var c=0,u=s;c0)return Y(n)}switch(t.kind){case 298:var i=t;return e.isExternalModule(i)?'"'+e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(i.fileName))))+'"':"";case 267:return e.isExportAssignment(t)&&t.isExportEquals?"export=":"default";case 210:case 252:case 209:case 253:case 222:return 512&e.getSyntacticModifierFlags(t)?"default":H(t);case 167:return"constructor";case 171:return"new()";case 170:return"()";case 172:return"[]";default:return""}}function B(t){return{text:R(t.node,t.name),kind:e.getNodeKind(t.node),kindModifiers:W(t.node),spans:J(t),nameSpan:t.name&&q(t.name),childItems:e.map(t.children,B)}}function j(t){return{text:R(t.node,t.name),kind:e.getNodeKind(t.node),kindModifiers:W(t.node),spans:J(t),childItems:e.map(t.children,(function(t){return{text:R(t.node,t.name),kind:e.getNodeKind(t.node),kindModifiers:e.getNodeModifiers(t.node),spans:J(t),childItems:d,indent:0,bolded:!1,grayed:!1}}))||d,indent:t.indent,bolded:!1,grayed:!1}}function J(e){var t=[q(e.node)];if(e.additionalNodes)for(var r=0,n=e.additionalNodes;r0)return Y(e.declarationNameToString(t.name));if(e.isVariableDeclaration(r))return Y(e.declarationNameToString(r.name));if(e.isBinaryExpression(r)&&62===r.operatorToken.kind)return p(r.left).replace(c,"");if(e.isPropertyAssignment(r))return p(r.name);if(512&e.getSyntacticModifierFlags(t))return"default";if(e.isClassLike(t))return"";if(e.isCallExpression(r)){var n=G(r.expression);if(void 0!==n)return(n=Y(n)).length>150?n+" callback":n+"("+Y(e.mapDefined(r.arguments,(function(t){return e.isStringLiteralLike(t)?t.getText(a):void 0})).join(", "))+") callback"}return""}function G(t){if(e.isIdentifier(t))return t.text;if(e.isPropertyAccessExpression(t)){var r=G(t.expression),n=t.name.text;return void 0===r?n:r+"."+n}}function Y(e){return(e=e.length>150?e.substring(0,150)+"...":e).replace(/\\?(\r?\n|\r|\u2028|\u2029)/g,"")}}(e.NavigationBar||(e.NavigationBar={}))}(s||(s={})),function(e){!function(t){function r(t,r){var n=e.isStringLiteral(r)&&r.text;return e.isString(n)&&e.some(t.moduleAugmentations,(function(t){return e.isStringLiteral(t)&&t.text===n}))}function n(t){return void 0!==t&&e.isStringLiteralLike(t)?t.text:void 0}function i(t){var r;if(0===t.length)return t;var n=function(t){for(var r,n={defaultImports:[],namespaceImports:[],namedImports:[]},i={defaultImports:[],namespaceImports:[],namedImports:[]},a=0,o=t;a0?g[0]:y[0],k=0===T.length?x?void 0:e.factory.createNamedImports(e.emptyArray):0===y.length?e.factory.createNamedImports(T):e.factory.updateNamedImports(y[0].importClause.namedBindings,T);f&&x&&k?(u.push(o(C,x,void 0)),u.push(o(null!==(r=y[0])&&void 0!==r?r:C,void 0,k))):u.push(o(C,x,k))}}else{var A=g[0];u.push(o(A,A.importClause.name,m[0].importClause.namedBindings))}}return u}function a(t){if(0===t.length)return t;var r=function(e){for(var t,r=[],n=[],i=0,a=e;i...")}function d(t){var n=e.createTextSpanFromBounds(t.openingFragment.getStart(r),t.closingFragment.getEnd());return c(n,"code",n,!1,"<>...")}function _(e){if(0!==e.properties.length)return o(e.getStart(r),e.getEnd(),"code")}function p(e){if(14!==e.kind||0!==e.text.length)return o(e.getStart(r),e.getEnd(),"code")}function f(t,r){return void 0===r&&(r=18),g(t,!1,!e.isArrayLiteralExpression(t.parent)&&!e.isCallExpression(t.parent),r)}function g(n,i,a,o,c){void 0===i&&(i=!1),void 0===a&&(a=!0),void 0===o&&(o=18),void 0===c&&(c=18===o?19:23);var u=e.findChildOfKind(t,o,r),l=e.findChildOfKind(t,c,r);return u&&l&&s(u,l,n,r,i,a)}function m(t){return t.length?c(e.createTextSpanFromRange(t),"code"):void 0}}(t,r);d&&i.push(d),u--,e.isCallExpression(t)?(u++,g(t.expression),u--,t.arguments.forEach(g),null===(l=t.typeArguments)||void 0===l||l.forEach(g)):e.isIfStatement(t)&&t.elseStatement&&e.isIfStatement(t.elseStatement)?(g(t.expression),g(t.thenStatement),u++,g(t.elseStatement),u--):t.forEachChild(g),u++}}}(r,n,u),function(t,r){for(var n=[],a=t.getLineStarts(),o=0,s=a;o1&&a.push(o(c,u,"comment"))}}function o(t,r,n){return c(e.createTextSpanFromBounds(t,r),n)}function s(t,r,n,i,a,o){return void 0===a&&(a=!1),void 0===o&&(o=!0),c(e.createTextSpanFromBounds(o?t.getFullStart():t.getStart(i),r.getEnd()),"code",e.createTextSpanFromNode(n,i),a)}function c(e,t,r,n,i){return void 0===r&&(r=e),void 0===n&&(n=!1),void 0===i&&(i="..."),{textSpan:e,kind:t,hintSpan:r,bannerText:i,autoCollapse:n}}}(e.OutliningElementsCollector||(e.OutliningElementsCollector={}))}(s||(s={})),function(e){var t;function r(e,t){return{kind:e,isCaseSensitive:t}}function n(e,t){var r=t.get(e);return r||t.set(e,r=v(e)),r}function i(i,a,o){var s=function(e,t){for(var r=e.length-t.length,n=function(r){if(T(t,(function(t,n){return _(e.charCodeAt(n+r))===t})))return{value:r}},i=0;i<=r;i++){var a=n(i);if("object"==typeof a)return a.value}return-1}(i,a.textLowerCase);if(0===s)return r(a.text.length===i.length?t.exact:t.prefix,e.startsWith(i,a.text));if(a.isLowerCase){if(-1===s)return;for(var d=0,p=n(i,o);d0)return r(t.substring,!0);if(a.characterSpans.length>0){var g=n(i,o),m=!!u(i,g,a,!1)||!u(i,g,a,!0)&&void 0;if(void 0!==m)return r(t.camelCase,m)}}}function a(e,t,r){if(T(t.totalTextChunk.text,(function(e){return 32!==e&&42!==e}))){var n=i(e,t.totalTextChunk,r);if(n)return n}for(var a,s=0,c=t.subWordTextChunks;s=65&&t<=90)return!0;if(t<127||!e.isUnicodeIdentifierStart(t,99))return!1;var r=String.fromCharCode(t);return r===r.toUpperCase()}function d(t){if(t>=97&&t<=122)return!0;if(t<127||!e.isUnicodeIdentifierStart(t,99))return!1;var r=String.fromCharCode(t);return r===r.toLowerCase()}function _(e){return e>=65&&e<=90?e-65+97:e<127?e:String.fromCharCode(e).toLowerCase().charCodeAt(0)}function p(e){return e>=48&&e<=57}function f(e){return l(e)||d(e)||p(e)||95===e||36===e}function g(e){for(var t=[],r=0,n=0,i=0;i0&&(t.push(m(e.substr(r,n))),n=0)}return n>0&&t.push(m(e.substr(r,n))),t}function m(e){var t=e.toLowerCase();return{text:e,textLowerCase:t,isLowerCase:e===t,characterSpans:y(e)}}function y(e){return h(e,!1)}function v(e){return h(e,!0)}function h(t,r){for(var n=[],i=0,a=1;at.length)return;for(var c=n.length-2,u=t.length-1;c>=0;c-=1,u-=1)s=o(s,a(t[u],n[c],i));return s}(t,i,n,r)},getMatchForLastSegmentOfPattern:function(t){return a(t,e.last(n),r)},patternContainsDots:n.length>1}},e.breakIntoCharacterSpans=y,e.breakIntoWordSpans=v}(s||(s={})),function(e){e.preProcessFile=function(t,r,n){void 0===r&&(r=!0),void 0===n&&(n=!1);var i,a,o,s={languageVersion:1,pragmas:void 0,checkJsDirective:void 0,referencedFiles:[],typeReferenceDirectives:[],libReferenceDirectives:[],amdDependencies:[],hasNoDefaultLib:void 0,moduleName:void 0},c=[],u=0,l=!1;function d(){return a=o,18===(o=e.scanner.scan())?u++:19===o&&u--,o}function _(){var t=e.scanner.getTokenValue(),r=e.scanner.getTokenPos();return{fileName:t,pos:r,end:r+t.length}}function p(){c.push(_()),f()}function f(){0===u&&(l=!0)}function g(){var t=e.scanner.getToken();return 133===t&&(139===(t=d())&&10===(t=d())&&(i||(i=[]),i.push({ref:_(),depth:u})),!0)}function m(){if(24===a)return!1;var t=e.scanner.getToken();if(99===t){if(20===(t=d())){if(10===(t=d())||14===t)return p(),!0}else{if(10===t)return p(),!0;149===t&&e.scanner.lookAhead((function(){var t=e.scanner.scan();return 153!==t&&(41===t||18===t||78===t||e.isKeyword(t))}))&&(t=d());if(78===t||e.isKeyword(t))if(153===(t=d())){if(10===(t=d()))return p(),!0}else if(62===t){if(v(!0))return!0}else{if(27!==t)return!0;t=d()}if(18===t){for(t=d();19!==t&&1!==t;)t=d();19===t&&153===(t=d())&&10===(t=d())&&p()}else 41===t&&126===(t=d())&&(78===(t=d())||e.isKeyword(t))&&153===(t=d())&&10===(t=d())&&p()}return!0}return!1}function y(){var t=e.scanner.getToken();if(92===t){if(f(),149===(t=d()))e.scanner.lookAhead((function(){var t=e.scanner.scan();return 41===t||18===t}))&&(t=d());if(18===t){for(t=d();19!==t&&1!==t;)t=d();19===t&&153===(t=d())&&10===(t=d())&&p()}else if(41===t)153===(t=d())&&10===(t=d())&&p();else if(99===t){if(149===(t=d()))e.scanner.lookAhead((function(){var t=e.scanner.scan();return 78===t||e.isKeyword(t)}))&&(t=d());if((78===t||e.isKeyword(t))&&62===(t=d())&&v(!0))return!0}return!0}return!1}function v(t,r){void 0===r&&(r=!1);var n=t?d():e.scanner.getToken();return 143===n&&(20===(n=d())&&(10===(n=d())||r&&14===n)&&p(),!0)}function h(){var t=e.scanner.getToken();if(78===t&&"define"===e.scanner.getTokenValue()){if(20!==(t=d()))return!0;if(10===(t=d())||14===t){if(27!==(t=d()))return!0;t=d()}if(22!==t)return!0;for(t=d();23!==t&&1!==t;)10!==t&&14!==t||p(),t=d();return!0}return!1}if(r&&function(){for(e.scanner.setText(t),d();1!==e.scanner.getToken();)g()||m()||y()||n&&(v(!1,!0)||h())||d();e.scanner.setText(void 0)}(),e.processCommentPragmas(s,t),e.processPragmasIntoFields(s,e.noop),l){if(i)for(var D=0,x=i;Dt)break e;var v=e.singleOrUndefined(e.getTrailingCommentRanges(i.text,m.end));if(v&&2===v.kind&&S(v.pos,v.end),n(i,t,m)){if(e.isBlock(m)||e.isTemplateSpan(m)||e.isTemplateHead(m)||e.isTemplateTail(m)||g&&e.isTemplateHead(g)||e.isVariableDeclarationList(m)&&e.isVariableStatement(_)||e.isSyntaxList(m)&&e.isVariableDeclarationList(_)||e.isVariableDeclaration(m)&&e.isSyntaxList(_)&&1===p.length||e.isJSDocTypeExpression(m)||e.isJSDocSignature(m)||e.isJSDocTypeLiteral(m)){_=m;break}if(e.isTemplateSpan(_)&&y&&e.isTemplateMiddleOrTemplateTail(y))b(m.getFullStart()-"${".length,y.getStart()+"}".length);var h=e.isSyntaxList(m)&&(c=void 0,18===(c=(s=g)&&s.kind)||22===c||20===c||276===c)&&u(y)&&!e.positionsAreOnSameLine(g.getStart(),y.getStart(),i),D=h?g.getEnd():m.getStart(),x=h?y.getStart():l(i,m);e.hasJSDocNodes(m)&&(null===(o=m.jsDoc)||void 0===o?void 0:o.length)&&b(e.first(m.jsDoc).getStart(),x),b(D,x),(e.isStringLiteral(m)||e.isTemplateLiteral(m))&&b(D+1,x-1),_=m;break}if(f===p.length-1)break e}}return d;function b(n,i){if(n!==i){var a=e.createTextSpanFromBounds(n,i);(!d||!e.textSpansEqual(a,d.textSpan)&&e.textSpanIntersectsWithPosition(a,t))&&(d=r({textSpan:a},d&&{parent:d}))}}function S(e,t){b(e,t);for(var r=e;47===i.text.charCodeAt(r);)r++;b(r,t)}};var i=e.or(e.isImportDeclaration,e.isImportEqualsDeclaration);function a(t){if(e.isSourceFile(t))return o(t.getChildAt(0).getChildren(),i);if(e.isMappedTypeNode(t)){var r=t.getChildren(),n=r[0],a=r.slice(1),u=e.Debug.checkDefined(a.pop());e.Debug.assertEqual(n.kind,18),e.Debug.assertEqual(u.kind,19);var l=o(a,(function(e){return e===t.readonlyToken||142===e.kind||e===t.questionToken||57===e.kind}));return[n,c(s(o(l,(function(e){var t=e.kind;return 22===t||160===t||23===t})),(function(e){return 58===e.kind}))),u]}if(e.isPropertySignature(t))return s(a=o(t.getChildren(),(function(r){return r===t.name||e.contains(t.modifiers,r)})),(function(e){return 58===e.kind}));if(e.isParameter(t)){var d=o(t.getChildren(),(function(e){return e===t.dotDotDotToken||e===t.name}));return s(o(d,(function(e){return e===d[0]||e===t.questionToken})),(function(e){return 62===e.kind}))}return e.isBindingElement(t)?s(t.getChildren(),(function(e){return 62===e.kind})):t.getChildren()}function o(e,t){for(var r,n=[],i=0,a=e;i0&&27===e.last(r).kind&&n++;return n}(i);return 0!==a&&e.Debug.assertLessThan(a,o),{list:i,argumentIndex:a,argumentCount:o,argumentsSpan:function(t,r){var n=t.getFullStart(),i=e.skipTrivia(r.text,t.getEnd(),!1);return e.createTextSpan(n,i-n)}(i,r)}}}function s(t,r,n){var i=t.parent;if(e.isCallOrNewExpression(i)){var a=i,s=o(t,n);if(!s)return;var c=s.list,u=s.argumentIndex,l=s.argumentCount,d=s.argumentsSpan;return{isTypeParameterList:!!i.typeArguments&&i.typeArguments.pos===c.pos,invocation:{kind:0,node:a},argumentsSpan:d,argumentIndex:u,argumentCount:l}}if(e.isNoSubstitutionTemplateLiteral(t)&&e.isTaggedTemplateExpression(i))return e.isInsideTemplateLiteral(t,r,n)?_(i,0,n):void 0;if(e.isTemplateHead(t)&&206===i.parent.kind){var p=i,f=p.parent;return e.Debug.assert(219===p.kind),_(f,u=e.isInsideTemplateLiteral(t,r,n)?0:1,n)}if(e.isTemplateSpan(i)&&e.isTaggedTemplateExpression(i.parent.parent)){var g=i;f=i.parent.parent;if(e.isTemplateTail(t)&&!e.isInsideTemplateLiteral(t,r,n))return;return _(f,u=function(t,r,n,i){if(e.Debug.assert(n>=r.getStart(),"Assumed 'position' could not occur before node."),e.isTemplateLiteralToken(r))return e.isInsideTemplateLiteral(r,n,i)?0:t+2;return t+1}(g.parent.templateSpans.indexOf(g),t,r,n),n)}if(e.isJsxOpeningLikeElement(i)){var m=i.attributes.pos,y=e.skipTrivia(n.text,i.attributes.end,!1);return{isTypeParameterList:!1,invocation:{kind:0,node:i},argumentsSpan:e.createTextSpan(m,y-m),argumentIndex:0,argumentCount:1}}var v=e.getPossibleTypeArgumentsInfo(t,n);if(v){var h=v.called,D=v.nTypeArguments;return{isTypeParameterList:!0,invocation:a={kind:1,called:h},argumentsSpan:d=e.createTextSpanFromBounds(h.getStart(n),t.end),argumentIndex:D,argumentCount:D+1}}}function c(t){return e.isBinaryExpression(t.parent)?c(t.parent):t}function u(t){return e.isBinaryExpression(t.left)?u(t.left)+1:2}function l(t){return"__type"===t.name&&e.firstDefined(t.declarations,(function(t){return e.isFunctionTypeNode(t)?t.parent.symbol:void 0}))||t}function d(e,t){for(var r=0,n=0,i=e.getChildren();n=0&&i.length>a+1),i[a+1]}function g(t){return 0===t.kind?e.getInvokedExpression(t.node):t.called}function m(e){return 0===e.kind?e.node:1===e.kind?e.called:e.node}!function(e){e[e.Call=0]="Call",e[e.TypeArgs=1]="TypeArgs",e[e.Contextual=2]="Contextual"}(n||(n={})),r.getSignatureHelpItems=function(t,r,n,i,d){var _=t.getTypeChecker(),p=e.findTokenOnLeftOfPosition(r,n);if(p){var f=!!i&&"characterTyped"===i.kind;if(!f||!e.isInString(r,n,p)&&!e.isInComment(r,n)){var y=!!i&&"invoked"===i.kind,D=function(t,r,n,i,a){for(var d=function(t){e.Debug.assert(e.rangeContainsRange(t.parent,t),"Not a subspan",(function(){return"Child: "+e.Debug.formatSyntaxKind(t.kind)+", parent: "+e.Debug.formatSyntaxKind(t.parent.kind)}));var a=function(t,r,n,i){return function(t,r,n,i){var a=function(t,r,n){if(20!==t.kind&&27!==t.kind)return;var i=t.parent;switch(i.kind){case 208:case 166:case 209:case 210:var a=o(t,r);if(!a)return;var s=a.argumentIndex,l=a.argumentCount,d=a.argumentsSpan,_=e.isMethodDeclaration(i)?n.getContextualTypeForObjectLiteralElement(i):n.getContextualType(i);return _&&{contextualType:_,argumentIndex:s,argumentCount:l,argumentsSpan:d};case 217:var p=c(i),f=n.getContextualType(p),g=20===t.kind?0:u(i)-1,m=u(p);return f&&{contextualType:f,argumentIndex:g,argumentCount:m,argumentsSpan:e.createTextSpanFromNode(i)};default:return}}(t,n,i);if(!a)return;var s=a.contextualType,d=a.argumentIndex,_=a.argumentCount,p=a.argumentsSpan,f=s.getNonNullableType(),g=f.getCallSignatures();return 1!==g.length?void 0:{isTypeParameterList:!1,invocation:{kind:2,signature:e.first(g),node:t,symbol:l(f.symbol)},argumentsSpan:p,argumentIndex:d,argumentCount:_}}(t,0,n,i)||s(t,r,n)}(t,r,n,i);if(a)return{value:a}},_=t;!e.isSourceFile(_)&&(a||!e.isBlock(_));_=_.parent){var p=d(_);if("object"==typeof p)return p.value}return}(p,n,r,_,y);if(D){d.throwIfCancellationRequested();var x=function(t,r,n,i,o){var s=t.invocation,c=t.argumentCount;switch(s.kind){case 0:if(o&&!function(t,r,n){if(!e.isCallOrNewExpression(r))return!1;var i=r.getChildren(n);switch(t.kind){case 20:return e.contains(i,t);case 27:var o=e.findContainingList(t);return!!o&&e.contains(i,o);case 29:return a(t,n,r.expression);default:return!1}}(i,s.node,n))return;var u=[],l=r.getResolvedSignatureForSignatureHelp(s.node,u,c);return 0===u.length?void 0:{kind:0,candidates:u,resolvedSignature:l};case 1:var d=s.called;if(o&&!a(i,n,e.isIdentifier(d)?d.parent:d))return;if(0!==(u=e.getPossibleGenericSignatures(d,c,r)).length)return{kind:0,candidates:u,resolvedSignature:e.first(u)};var _=r.getSymbolAtLocation(d);return _&&{kind:1,symbol:_};case 2:return{kind:0,candidates:[s.signature],resolvedSignature:s.signature};default:return e.Debug.assertNever(s)}}(D,_,r,p,f);return d.throwIfCancellationRequested(),x?_.runWithCancellationToken(d,(function(e){return 0===x.kind?v(x.candidates,x.resolvedSignature,D,r,e):function(e,t,r,n){var i=t.argumentCount,a=t.argumentsSpan,o=t.invocation,s=t.argumentIndex,c=n.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(e);return c?{items:[h(e,c,n,m(o),r)],applicableSpan:a,selectedItemIndex:0,argumentIndex:s,argumentCount:i}:void 0}(x.symbol,D,r,e)})):e.isSourceFileJS(r)?function(t,r,n){if(2===t.invocation.kind)return;var i=g(t.invocation),a=e.isPropertyAccessExpression(i)?i.name.text:void 0,o=r.getTypeChecker();return void 0===a?void 0:e.firstDefined(r.getSourceFiles(),(function(r){return e.firstDefined(r.getNamedDeclarations().get(a),(function(e){var i=e.symbol&&o.getTypeOfSymbolAtLocation(e.symbol,e),a=i&&i.getCallSignatures();if(a&&a.length)return o.runWithCancellationToken(n,(function(e){return v(a,a[0],t,r,e,!0)}))}))}))}(D,t,d):void 0}}}},function(e){e[e.Candidate=0]="Candidate",e[e.Type=1]="Type"}(i||(i={})),r.getArgumentInfoForCompletions=function(e,t,r){var n=s(e,t,r);return!n||n.isTypeParameterList||0!==n.invocation.kind?void 0:{invocation:n.invocation.node,argumentCount:n.argumentCount,argumentIndex:n.argumentIndex}};var y=70246400;function v(r,n,i,a,o,s){var c,u=i.isTypeParameterList,l=i.argumentCount,d=i.argumentsSpan,_=i.invocation,p=i.argumentIndex,f=m(_),y=2===_.kind?_.symbol:o.getSymbolAtLocation(g(_))||s&&(null===(c=n.declaration)||void 0===c?void 0:c.symbol),v=y?e.symbolToDisplayParts(o,y,s?a:void 0,void 0):e.emptyArray,h=e.map(r,(function(r){return function(r,n,i,a,o,s){var c=(i?x:b)(r,a,o,s);return e.map(c,(function(i){var s=i.isVariadic,c=i.parameters,u=i.prefix,l=i.suffix,d=t(t([],n),u),_=t(t([],l),function(t,r,n){return e.mapToDisplayParts((function(e){e.writePunctuation(":"),e.writeSpace(" ");var i=n.getTypePredicateOfSignature(t);i?n.writeTypePredicate(i,r,void 0,e):n.writeType(n.getReturnTypeOfSignature(t),r,void 0,e)}))}(r,o,a)),p=r.getDocumentationComment(a),f=r.getJsDocTags();return{isVariadic:s,prefixDisplayParts:d,suffixDisplayParts:_,separatorDisplayParts:D,parameters:c,documentation:p,tags:f}}))}(r,v,u,o,f,a)}));0!==p&&e.Debug.assertLessThan(p,l);for(var S=0,E=0,T=0;T1))for(var k=0,A=0,F=C;A=l){S=E+k;break}k++}E+=C.length}e.Debug.assert(-1!==S);var P={items:e.flatMapToMutable(h,e.identity),applicableSpan:d,selectedItemIndex:S,argumentIndex:p,argumentCount:l},w=P.items[S];if(w.isVariadic){var I=e.findIndex(w.parameters,(function(e){return!!e.isRest}));-12)&&(t.arguments.length<2||e.some(t.arguments,(function(t){return 103===t.kind||e.isIdentifier(t)&&"undefined"===t.text})))}(t)||e.hasPropertyAccessExpressionWithName(t,"catch"))}function c(r,n){switch(r.kind){case 252:case 209:case 210:t.set(u(r),!0);case 103:return!0;case 78:case 202:var i=n.getSymbolAtLocation(r);return!!i&&(n.isUndefinedSymbol(i)||e.some(e.skipAlias(i,n).declarations,(function(t){return e.isFunctionLike(t)||e.hasInitializer(t)&&!!t.initializer&&e.isFunctionLike(t.initializer)})));default:return!1}}function u(e){return e.pos.toString()+":"+e.end.toString()}function l(e){switch(e.kind){case 252:case 166:case 209:case 210:return!0;default:return!1}}e.computeSuggestionDiagnostics=function(o,s,c){s.getSemanticDiagnostics(o,c);var d,_=[],p=s.getTypeChecker();o.commonJsModuleIndicator&&(e.programContainsEs6Modules(s)||e.compilerOptionsIndicateEs6Modules(s.getCompilerOptions()))&&function(t){return t.statements.some((function(t){switch(t.kind){case 233:return t.declarationList.declarations.some((function(t){return!!t.initializer&&e.isRequireCall(r(t.initializer),!0)}));case 234:var n=t.expression;if(!e.isBinaryExpression(n))return e.isRequireCall(n,!0);var i=e.getAssignmentDeclarationKind(n);return 1===i||2===i;default:return!1}}))}(o)&&_.push(e.createDiagnosticForNode((d=o.commonJsModuleIndicator,e.isBinaryExpression(d)?d.left:d),e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module));var f=e.isSourceFileJS(o);if(t.clear(),function r(n){if(f)(function(t,r){var n,i,a,o;if(209===t.kind){if(e.isVariableDeclaration(t.parent)&&(null===(n=t.symbol.members)||void 0===n?void 0:n.size))return!0;var s=r.getSymbolOfExpando(t,!1);return!(!s||!(null===(i=s.exports)||void 0===i?void 0:i.size)&&!(null===(a=s.members)||void 0===a?void 0:a.size))}if(252===t.kind)return!!(null===(o=t.symbol.members)||void 0===o?void 0:o.size);return!1})(n,p)&&_.push(e.createDiagnosticForNode(e.isVariableDeclaration(n.parent)?n.parent.name:n,e.Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration));else{if(e.isVariableStatement(n)&&n.parent===o&&2&n.declarationList.flags&&1===n.declarationList.declarations.length){var s=n.declarationList.declarations[0].initializer;s&&e.isRequireCall(s,!0)&&_.push(e.createDiagnosticForNode(s,e.Diagnostics.require_call_may_be_converted_to_an_import))}e.codefix.parameterShouldGetTypeFromJSDoc(n)&&_.push(e.createDiagnosticForNode(n.name||n,e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types))}l(n)&&function(r,n,o){(function(t,r){return!e.isAsyncFunction(t)&&t.body&&e.isBlock(t.body)&&function(t,r){return!!e.forEachReturnStatement(t,(function(e){return a(e,r)}))}(t.body,r)&&i(t,r)})(r,n)&&!t.has(u(r))&&o.push(e.createDiagnosticForNode(!r.name&&e.isVariableDeclaration(r.parent)&&e.isIdentifier(r.parent.name)?r.parent.name:r,e.Diagnostics.This_may_be_converted_to_an_async_function))}(n,p,_);n.forEachChild(r)}(o),e.getAllowSyntheticDefaultImports(s.getCompilerOptions()))for(var g=0,m=o.imports;g0?e.arrayFrom(n.values()).join(","):""},t.getSymbolDisplayPartsDocumentationAndSymbolKind=function t(a,o,s,c,u,l,d){var _;void 0===l&&(l=e.getMeaningFromLocation(u));var p,f,g,m,y=[],v=[],h=[],D=e.getCombinedLocalAndExportSymbolFlags(o),x=1&l?i(a,o,u):"",b=!1,S=107===u.kind&&e.isInExpressionContext(u),E=!1;if(107===u.kind&&!S)return{displayParts:[e.keywordPart(107)],documentation:[],symbolKind:"primitive type",tags:void 0};if(""!==x||32&D||2097152&D){"getter"!==x&&"setter"!==x||(x="property");var T=void 0;if(p=S?a.getTypeAtLocation(u):a.getTypeOfSymbolAtLocation(o,u),u.parent&&202===u.parent.kind){var C=u.parent.name;(C===u||C&&0===C.getFullWidth())&&(u=u.parent)}var k=void 0;if(e.isCallOrNewExpression(u)?k=u:(e.isCallExpressionTarget(u)||e.isNewExpressionTarget(u)||u.parent&&(e.isJsxOpeningLikeElement(u.parent)||e.isTaggedTemplateExpression(u.parent))&&e.isFunctionLike(o.valueDeclaration))&&(k=u.parent),k){T=a.getResolvedSignature(k);var A=205===k.kind||e.isCallExpression(k)&&105===k.expression.kind,F=A?p.getConstructSignatures():p.getCallSignatures();if(!T||e.contains(F,T.target)||e.contains(F,T)||(T=F.length?F[0]:void 0),T){switch(A&&32&D?(x="constructor",$(p.symbol,x)):2097152&D?(Q(x="alias"),y.push(e.spacePart()),A&&(4&T.flags&&(y.push(e.keywordPart(125)),y.push(e.spacePart())),y.push(e.keywordPart(102)),y.push(e.spacePart())),X(o)):$(o,x),x){case"JSX attribute":case"property":case"var":case"const":case"let":case"parameter":case"local var":y.push(e.punctuationPart(58)),y.push(e.spacePart()),16&e.getObjectFlags(p)||!p.symbol||(e.addRange(y,e.symbolToDisplayParts(a,p.symbol,c,void 0,5)),y.push(e.lineBreakPart())),A&&(4&T.flags&&(y.push(e.keywordPart(125)),y.push(e.spacePart())),y.push(e.keywordPart(102)),y.push(e.spacePart())),Z(T,F,262144);break;default:Z(T,F)}b=!0,E=F.length>1}}else if(e.isNameOfFunctionDeclaration(u)&&!(98304&D)||132===u.kind&&167===u.parent.kind){var N=u.parent;if(o.declarations&&e.find(o.declarations,(function(e){return e===(132===u.kind?N.parent:N)}))){F=167===N.kind?p.getNonNullableType().getConstructSignatures():p.getNonNullableType().getCallSignatures();T=a.isImplementationOfOverload(N)?F[0]:a.getSignatureFromDeclaration(N),167===N.kind?(x="constructor",$(p.symbol,x)):$(170!==N.kind||2048&p.symbol.flags||4096&p.symbol.flags?o:p.symbol,x),T&&Z(T,F),b=!0,E=F.length>1}}}if(32&D&&!b&&!S&&(G(),e.getDeclarationOfKind(o,222)?Q("local class"):y.push(e.keywordPart(83)),y.push(e.spacePart()),X(o),ee(o,s)),64&D&&2&l&&(H(),y.push(e.keywordPart(117)),y.push(e.spacePart()),X(o),ee(o,s)),524288&D&&2&l&&(H(),y.push(e.keywordPart(149)),y.push(e.spacePart()),X(o),ee(o,s),y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),e.addRange(y,e.typeToDisplayParts(a,a.getDeclaredTypeOfSymbol(o),c,8388608))),384&D&&(H(),e.some(o.declarations,(function(t){return e.isEnumDeclaration(t)&&e.isEnumConst(t)}))&&(y.push(e.keywordPart(84)),y.push(e.spacePart())),y.push(e.keywordPart(91)),y.push(e.spacePart()),X(o)),1536&D&&!S){H();var P=(V=e.getDeclarationOfKind(o,257))&&V.name&&78===V.name.kind;y.push(e.keywordPart(P?140:139)),y.push(e.spacePart()),X(o)}if(262144&D&&2&l)if(H(),y.push(e.punctuationPart(20)),y.push(e.textPart("type parameter")),y.push(e.punctuationPart(21)),y.push(e.spacePart()),X(o),o.parent)Y(),X(o.parent,c),ee(o.parent,c);else{var w=e.getDeclarationOfKind(o,160);if(void 0===w)return e.Debug.fail();if(V=w.parent)if(e.isFunctionLikeKind(V.kind)){Y();T=a.getSignatureFromDeclaration(V);171===V.kind?(y.push(e.keywordPart(102)),y.push(e.spacePart())):170!==V.kind&&V.name&&X(V.symbol),e.addRange(y,e.signatureToDisplayParts(a,T,s,32))}else 255===V.kind&&(Y(),y.push(e.keywordPart(149)),y.push(e.spacePart()),X(V.symbol),ee(V.symbol,s))}if(8&D&&(x="enum member",$(o,"enum member"),292===(null==(V=null===(_=o.declarations)||void 0===_?void 0:_[0])?void 0:V.kind))){var I=a.getConstantValue(V);void 0!==I&&(y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),y.push(e.displayPart(e.getTextOfConstantValue(I),"number"==typeof I?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}if(2097152&o.flags){if(H(),!b){var O=a.getAliasedSymbol(o);if(O!==o&&O.declarations&&O.declarations.length>0){var M=O.declarations[0],L=e.getNameOfDeclaration(M);if(L){var R=e.isModuleWithStringLiteralName(M)&&e.hasSyntacticModifier(M,2),B="default"!==o.name&&!R,j=t(a,O,e.getSourceFileOfNode(M),M,L,l,B?o:O);y.push.apply(y,j.displayParts),y.push(e.lineBreakPart()),g=j.documentation,m=j.tags}else g=O.getContextualDocumentationComment(M,a),m=O.getJsDocTags(a)}}if(o.declarations)switch(o.declarations[0].kind){case 260:y.push(e.keywordPart(92)),y.push(e.spacePart()),y.push(e.keywordPart(140));break;case 267:y.push(e.keywordPart(92)),y.push(e.spacePart()),y.push(e.keywordPart(o.declarations[0].isExportEquals?62:87));break;case 271:y.push(e.keywordPart(92));break;default:y.push(e.keywordPart(99))}y.push(e.spacePart()),X(o),e.forEach(o.declarations,(function(t){if(261===t.kind){var r=t;if(e.isExternalModuleImportEqualsDeclaration(r))y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),y.push(e.keywordPart(143)),y.push(e.punctuationPart(20)),y.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(r)),e.SymbolDisplayPartKind.stringLiteral)),y.push(e.punctuationPart(21));else{var n=a.getSymbolAtLocation(r.moduleReference);n&&(y.push(e.spacePart()),y.push(e.operatorPart(62)),y.push(e.spacePart()),X(n,c))}return!0}}))}if(!b)if(""!==x){if(p)if(S?(H(),y.push(e.keywordPart(107))):$(o,x),"property"===x||"JSX attribute"===x||3&D||"local var"===x||S){if(y.push(e.punctuationPart(58)),y.push(e.spacePart()),p.symbol&&262144&p.symbol.flags){var J=e.mapToDisplayParts((function(t){var n=a.typeParameterToDeclaration(p,c,r);W().writeNode(4,n,e.getSourceFileOfNode(e.getParseTreeNode(c)),t)}));e.addRange(y,J)}else e.addRange(y,e.typeToDisplayParts(a,p,c));if(o.target&&o.target.tupleLabelDeclaration){var K=o.target.tupleLabelDeclaration;e.Debug.assertNode(K.name,e.isIdentifier),y.push(e.spacePart()),y.push(e.punctuationPart(20)),y.push(e.textPart(e.idText(K.name))),y.push(e.punctuationPart(21))}}else if(16&D||8192&D||16384&D||131072&D||98304&D||"method"===x){(F=p.getNonNullableType().getCallSignatures()).length&&(Z(F[0],F),E=F.length>1)}}else x=n(a,o,u);if(0!==v.length||E||(v=o.getContextualDocumentationComment(c,a)),0===v.length&&4&D&&o.parent&&o.declarations&&e.forEach(o.parent.declarations,(function(e){return 298===e.kind})))for(var z=0,U=o.declarations;z0))break}}return 0!==h.length||E||(h=o.getJsDocTags(a)),0===v.length&&g&&(v=g),0===h.length&&m&&(h=m),{displayParts:y,documentation:v,symbolKind:x,tags:0===h.length?void 0:h};function W(){return f||(f=e.createPrinter({removeComments:!0})),f}function H(){y.length&&y.push(e.lineBreakPart()),G()}function G(){d&&(Q("alias"),y.push(e.spacePart()))}function Y(){y.push(e.spacePart()),y.push(e.keywordPart(100)),y.push(e.spacePart())}function X(t,r){d&&t===o&&(t=d);var n=e.symbolToDisplayParts(a,t,r||s,void 0,7);e.addRange(y,n),16777216&o.flags&&y.push(e.punctuationPart(57))}function $(t,r){H(),r&&(Q(r),t&&!e.some(t.declarations,(function(t){return e.isArrowFunction(t)||(e.isFunctionExpression(t)||e.isClassExpression(t))&&!t.name}))&&(y.push(e.spacePart()),X(t)))}function Q(t){switch(t){case"var":case"function":case"let":case"const":case"constructor":return void y.push(e.textOrKeywordPart(t));default:return y.push(e.punctuationPart(20)),y.push(e.textOrKeywordPart(t)),void y.push(e.punctuationPart(21))}}function Z(t,r,n){void 0===n&&(n=0),e.addRange(y,e.signatureToDisplayParts(a,t,c,32|n)),r.length>1&&(y.push(e.spacePart()),y.push(e.punctuationPart(20)),y.push(e.operatorPart(39)),y.push(e.displayPart((r.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),y.push(e.spacePart()),y.push(e.textPart(2===r.length?"overload":"overloads")),y.push(e.punctuationPart(21))),v=t.getDocumentationComment(a),h=t.getJsDocTags(),r.length>1&&0===v.length&&0===h.length&&(v=r[0].getDocumentationComment(a),h=r[0].getJsDocTags())}function ee(t,n){var i=e.mapToDisplayParts((function(i){var o=a.symbolToTypeParameterDeclarations(t,n,r);W().writeList(53776,o,e.getSourceFileOfNode(e.getParseTreeNode(n)),i)}));e.addRange(y,i)}}}(e.SymbolDisplay||(e.SymbolDisplay={}))}(s||(s={})),function(e){function t(t,r){var i=[],a=r.compilerOptions?n(r.compilerOptions,i):{},o=e.getDefaultCompilerOptions();for(var s in o)e.hasProperty(o,s)&&void 0===a[s]&&(a[s]=o[s]);for(var c=0,u=e.transpileOptionValueCompilerOptions;c>=5;return r}(p,_),0,n),a[c]=(d=1+((u=p)>>(l=_)&s),e.Debug.assert((d&s)===d,"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."),u&~(s<=r.pos?t.pos:a.end:t.pos}(o,r,n),r.end,(function(s){return _(r,o,t.SmartIndenter.getIndentationForNode(o,r,n,i.options),function(e,r,n){for(var i,a=-1;e;){var o=n.getLineAndCharacterOfPosition(e.getStart(n)).line;if(-1!==a&&o!==a)break;if(t.SmartIndenter.shouldIndentChildNode(r,e,i,n))return r.indentSize;a=o,i=e,e=e.parent}return 0}(o,i.options,n),s,i,a,function(t,r){if(!t.length)return a;var n=t.filter((function(t){return e.rangeOverlapsWithStartEnd(r,t.start,t.start+t.length)})).sort((function(e,t){return e.start-t.start}));if(!n.length)return a;var i=0;return function(t){for(;;){if(i>=n.length)return!1;var r=n[i];if(t.end<=r.start)return!1;if(e.startEndOverlapsWithStartEnd(t.pos,t.end,r.start,r.start+r.length))return!0;i++}};function a(){return!1}}(n.parseDiagnostics,r),n)}))}function _(r,n,i,a,o,s,c,u,l){var d,_,f,g,m=s.options,y=s.getRules,v=s.host,h=new t.FormattingContext(l,c,m),D=-1,x=[];if(o.advance(),o.isOnToken()){var b=l.getLineAndCharacterOfPosition(n.getStart(l)).line,S=b;n.decorators&&(S=l.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(n,l)).line),function n(i,a,s,c,p,y){if(!e.rangeOverlapsWithStartEnd(r,i.getStart(l),i.getEnd()))return;var v=C(i,s,p,y),h=a;e.forEachChild(i,(function(e){S(e,-1,i,v,s,c,!1)}),(function(e){E(e,i,s,v)}));for(;o.isOnToken();){var x=o.readTokenInfo(i);if(x.token.end>i.end)break;T(x,i,v,i)}if(!i.parent&&o.isOnEOF()){var b=o.readEOFTokenRange();b.end<=i.end&&d&&N(b,l.getLineAndCharacterOfPosition(b.pos).line,i,d,f,_,a,v)}function S(a,s,c,u,d,_,p,f){var y=a.getStart(l),v=l.getLineAndCharacterOfPosition(y).line,x=v;a.decorators&&(x=l.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(a,l)).line);var b=-1;if(p&&e.rangeContainsRange(r,c)&&-1!==(b=function(r,n,i,a,o){if(e.rangeOverlapsWithStartEnd(a,r,n)||e.rangeContainsStartEnd(a,r,n)){if(-1!==o)return o}else{var s=l.getLineAndCharacterOfPosition(r).line,c=e.getLineStartPositionForPosition(r,l),u=t.SmartIndenter.findFirstNonWhitespaceColumn(c,r,l,m);if(s!==i||r===u){var d=t.SmartIndenter.getBaseIndentation(m);return d>u?d:u}}return-1}(y,a.end,d,r,s))&&(s=b),!e.rangeOverlapsWithStartEnd(r,a.pos,a.end))return a.endy){S.token.pos>y&&o.skipToStartOf(a);break}T(S,i,u,i)}if(!o.isOnToken())return s;if(e.isToken(a)){var S=o.readTokenInfo(a);if(11!==a.kind)return e.Debug.assert(S.token.end===a.end,"Token end is child end"),T(S,i,u,a),s}var E=162===a.kind?v:_,C=function(e,r,n,i,a,o){var s=t.SmartIndenter.shouldIndentChildNode(m,e)?m.indentSize:0;return o===r?{indentation:r===g?D:a.getIndentation(),delta:Math.min(m.indentSize,a.getDelta(e)+s)}:-1===n?20===e.kind&&r===g?{indentation:D,delta:a.getDelta(e)}:t.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(i,e,r,l)||t.SmartIndenter.childIsUnindentedBranchOfConditionalExpression(i,e,r,l)||t.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(i,e,r,l)?{indentation:a.getIndentation(),delta:s}:{indentation:a.getIndentation()+a.getDelta(e),delta:s}:{indentation:n,delta:s}}(a,v,b,i,u,E);return n(a,h,v,x,C.indentation,C.delta),h=i,f&&200===c.kind&&-1===s&&(s=C.indentation),s}function E(r,n,a,s){e.Debug.assert(e.isNodeArray(r));var c=function(e,t){switch(e.kind){case 167:case 252:case 209:case 166:case 165:case 210:if(e.typeParameters===t)return 29;if(e.parameters===t)return 20;break;case 204:case 205:if(e.typeArguments===t)return 29;if(e.arguments===t)return 20;break;case 174:if(e.typeArguments===t)return 29;break;case 178:return 18}return 0}(n,r),u=s,d=a;if(0!==c)for(;o.isOnToken();){if((v=o.readTokenInfo(n)).token.end>r.pos)break;if(v.token.kind===c){d=l.getLineAndCharacterOfPosition(v.token.pos).line,T(v,n,s,n);var _=void 0;if(-1!==D)_=D;else{var p=e.getLineStartPositionForPosition(v.token.pos,l);_=t.SmartIndenter.findFirstNonWhitespaceColumn(p,v.token.pos,l,m)}u=C(n,a,_,m.indentSize)}else T(v,n,s,n)}for(var f=-1,g=0;g0){var S=p(b,m);L(D,x.character,S)}else M(D,x.character)}}}else i||P(r.pos,n,!1)}function I(t,r,n){for(var i=t;io)){var s=O(a,o);-1!==s&&(e.Debug.assert(s===a||!e.isWhiteSpaceSingleLine(l.text.charCodeAt(s-1))),M(s,o+1-s))}}}function O(t,r){for(var n=r;n>=t&&e.isWhiteSpaceSingleLine(l.text.charCodeAt(n));)n--;return n!==r?n+1:-1}function M(t,r){r&&x.push(e.createTextChangeFromStartLength(t,r,""))}function L(t,r,n){(r||n)&&x.push(e.createTextChangeFromStartLength(t,r,n))}}function p(t,r){if((!i||i.tabSize!==r.tabSize||i.indentSize!==r.indentSize)&&(i={tabSize:r.tabSize,indentSize:r.indentSize},a=o=void 0),r.convertTabsToSpaces){var n=void 0,s=Math.floor(t/r.indentSize),c=t%r.indentSize;return o||(o=[]),void 0===o[s]?(n=e.repeatString(" ",r.indentSize*s),o[s]=n):n=o[s],c?n+e.repeatString(" ",c):n}var u=Math.floor(t/r.tabSize),l=t-u*r.tabSize,d=void 0;return a||(a=[]),void 0===a[u]?a[u]=d=e.repeatString("\t",u):d=a[u],l?d+e.repeatString(" ",l):d}t.createTextRangeWithKind=function(t,r,n){var i={pos:t,end:r,kind:n};return e.Debug.isDebugging&&Object.defineProperty(i,"__debugKind",{get:function(){return e.Debug.formatSyntaxKind(n)}}),i},function(e){e[e.Unknown=-1]="Unknown"}(r||(r={})),t.formatOnEnter=function(t,r,n){var i=r.getLineAndCharacterOfPosition(t).line;if(0===i)return[];for(var a=e.getEndLinePosition(i,r);e.isWhiteSpaceSingleLine(r.text.charCodeAt(a));)a--;return e.isLineBreak(r.text.charCodeAt(a))&&a--,d({pos:e.getStartPositionOfLine(i-1,r),end:a+1},r,n,2)},t.formatOnSemicolon=function(e,t,r){return l(c(s(e,26,t)),t,r,3)},t.formatOnOpeningCurly=function(t,r,n){var i=s(t,18,r);if(!i)return[];var a=c(i.parent);return d({pos:e.getLineStartPositionForPosition(a.getStart(r),r),end:t},r,n,4)},t.formatOnClosingCurly=function(e,t,r){return l(c(s(e,19,t)),t,r,5)},t.formatDocument=function(e,t){return d({pos:0,end:e.text.length},e,t,0)},t.formatSelection=function(t,r,n,i){return d({pos:e.getLineStartPositionForPosition(t,n),end:r},n,i,1)},t.formatNodeGivenIndentation=function(e,r,n,i,a,o){var s={pos:0,end:r.text.length};return t.getFormattingScanner(r.text,n,s.pos,s.end,(function(t){return _(s,e,i,a,t,o,1,(function(e){return!1}),r)}))},function(e){e[e.None=0]="None",e[e.LineAdded=1]="LineAdded",e[e.LineRemoved=2]="LineRemoved"}(n||(n={})),t.getRangeOfEnclosingComment=function(t,r,n,i){void 0===i&&(i=e.getTokenAtPosition(t,r));var a=e.findAncestor(i,e.isJSDoc);if(a&&(i=a.parent),!(i.getStart(t)<=r&&rr.end}var h=s(g,e,i),D=h.line===t.line||_(g,e,t.line,i);if(y){var x=null===(f=p(e,i))||void 0===f?void 0:f[0],S=m(e,i,u,!!x&&l(x,i).line>h.line);if(-1!==S)return S+n;if(-1!==(S=c(e,g,t,D,i,u)))return S+n}b(u,g,e,i,o)&&!D&&(n+=u.indentSize);var E=d(g,e,t.line,i);g=(e=g).parent,t=E?i.getLineAndCharacterOfPosition(e.getStart(i)):h}return n+a(u)}function s(e,t,r){var n=p(t,r),i=n?n.pos:e.getStart(r);return r.getLineAndCharacterOfPosition(i)}function c(t,r,n,i,a,o){return!e.isDeclaration(t)&&!e.isStatementButNotDeclaration(t)||298!==r.kind&&i?-1:v(n,a,o)}function u(t,r,n,i){var a=e.findNextToken(t,r,i);return a?18===a.kind?1:19===a.kind&&n===l(a,i).line?2:0:0}function l(e,t){return t.getLineAndCharacterOfPosition(e.getStart(t))}function d(t,r,n,i){if(!e.isCallExpression(t)||!e.contains(t.arguments,r))return!1;var a=t.expression.getEnd();return e.getLineAndCharacterOfPosition(i,a).line===n}function _(t,r,n,i){if(235===t.kind&&t.elseStatement===r){var a=e.findChildOfKind(t,90,i);return e.Debug.assert(void 0!==a),l(a,i).line===n}return!1}function p(e,t){return e.parent&&f(e.getStart(t),e.getEnd(),e.parent,t)}function f(t,r,n,i){switch(n.kind){case 174:return a(n.typeArguments);case 201:return a(n.properties);case 200:return a(n.elements);case 178:return a(n.members);case 252:case 209:case 210:case 166:case 165:case 170:case 167:case 176:case 171:return a(n.typeParameters)||a(n.parameters);case 253:case 222:case 254:case 255:case 334:return a(n.typeParameters);case 205:case 204:return a(n.typeArguments)||a(n.arguments);case 251:return a(n.declarations);case 265:case 269:return a(n.elements);case 197:case 198:return a(n.elements)}function a(a){return a&&e.rangeContainsStartEnd(function(e,t,r){for(var n=e.getChildren(r),i=1;i=0&&r=0;o--)if(27!==t[o].kind){if(n.getLineAndCharacterOfPosition(t[o].end).line!==a.line)return v(a,n,i);a=l(t[o],n)}return-1}function v(e,t,r){var n=t.getPositionOfLineAndCharacter(e.line,0);return D(n,n+e.character,t,r)}function h(t,r,n,i){for(var a=0,o=0,s=t;sn.text.length)return a(i);if(i.indentStyle===e.IndentStyle.None)return 0;var c=e.findPrecedingToken(r,n,void 0,!0),d=t.getRangeOfEnclosingComment(n,r,c||null);if(d&&3===d.kind)return function(t,r,n,i){var a=e.getLineAndCharacterOfPosition(t,r).line-1,o=e.getLineAndCharacterOfPosition(t,i.pos).line;if(e.Debug.assert(o>=0),a<=o)return D(e.getStartPositionOfLine(o,t),r,t,n);var s=e.getStartPositionOfLine(a,t),c=h(s,r,t,n),u=c.column,l=c.character;return 0===u?u:42===t.text.charCodeAt(s+l)?u-1:u}(n,r,i,d);if(!c)return a(i);if(e.isStringOrRegularExpressionOrTemplateLiteral(c.kind)&&c.getStart(n)<=r&&r0;){var a=t.text.charCodeAt(i);if(!e.isWhiteSpaceLike(a))break;i--}return D(e.getLineStartPositionForPosition(i,t),i,t,n)}(n,r,i);if(27===c.kind&&217!==c.parent.kind){var p=function(t,r,n){var i=e.findListItemInfo(t);return i&&i.listItemIndex>0?y(i.list.getChildren(),i.listItemIndex-1,r,n):-1}(c,n,i);if(-1!==p)return p}var v=function(e,t,r){return t&&f(e,e,t,r)}(r,c.parent,n);return v&&!e.rangeContainsRange(v,c)?g(v,n,i)+i.indentSize:function(t,r,n,i,s,c){for(var d,_=n;_;){if(e.positionBelongsToNode(_,r,t)&&b(c,_,d,t,!0)){var p=l(_,t),f=u(n,_,i,t);return o(_,p,void 0,0!==f?s&&2===f?c.indentSize:0:i!==p.line?c.indentSize:0,t,!0,c)}var g=m(_,t,c,!0);if(-1!==g)return g;d=_,_=_.parent}return a(c)}(n,r,c,_,s,i)},r.getIndentationForNode=function(e,t,r,n){var i=r.getLineAndCharacterOfPosition(e.getStart(r));return o(e,i,t,0,r,!1,n)},r.getBaseIndentation=a,function(e){e[e.Unknown=0]="Unknown",e[e.OpenBrace=1]="OpenBrace",e[e.CloseBrace=2]="CloseBrace"}(i||(i={})),r.isArgumentAndStartLineOverlapsExpressionBeingCalled=d,r.childStartsOnTheSameLineWithElseInIfStatement=_,r.childIsUnindentedBranchOfConditionalExpression=function(t,r,n,i){if(e.isConditionalExpression(t)&&(r===t.whenTrue||r===t.whenFalse)){var a=e.getLineAndCharacterOfPosition(i,t.condition.end).line;if(r===t.whenTrue)return n===a;var o=l(t.whenTrue,i).line,s=e.getLineAndCharacterOfPosition(i,t.whenTrue.end).line;return a===o&&s===n}return!1},r.argumentStartsOnSameLineAsPreviousArgument=function(t,r,n,i){if(e.isCallOrNewExpression(t)){if(!t.arguments)return!1;var a=e.find(t.arguments,(function(e){return e.pos===r.pos}));if(!a)return!1;var o=t.arguments.indexOf(a);if(0===o)return!1;var s=t.arguments[o-1];if(n===e.getLineAndCharacterOfPosition(i,s.getEnd()).line)return!0}return!1},r.getContainingList=p,r.findFirstNonWhitespaceCharacterAndColumn=h,r.findFirstNonWhitespaceColumn=D,r.nodeWillIndentChild=x,r.shouldIndentChildNode=b})((t=e.formatting||(e.formatting={})).SmartIndenter||(t.SmartIndenter={}))}(s||(s={})),function(e){!function(n){function i(t){var r=t.__pos;return e.Debug.assert("number"==typeof r),r}function a(t,r){e.Debug.assert("number"==typeof r),t.__pos=r}function o(t){var r=t.__end;return e.Debug.assert("number"==typeof r),r}function s(t,r){e.Debug.assert("number"==typeof r),t.__end=r}var c,u;function l(t,r){return e.skipTrivia(t,r,!1,!0)}!function(e){e[e.Exclude=0]="Exclude",e[e.IncludeAll=1]="IncludeAll",e[e.JSDoc=2]="JSDoc",e[e.StartLine=3]="StartLine"}(c=n.LeadingTriviaOption||(n.LeadingTriviaOption={})),function(e){e[e.Exclude=0]="Exclude",e[e.ExcludeWhitespace=1]="ExcludeWhitespace",e[e.Include=2]="Include"}(u=n.TrailingTriviaOption||(n.TrailingTriviaOption={}));var d,_={leadingTriviaOption:c.Exclude,trailingTriviaOption:u.Exclude};function p(e,t,r,n){return{pos:f(e,t,n),end:m(e,r,n)}}function f(t,r,n,i){var a,o;void 0===i&&(i=!1);var s=n.leadingTriviaOption;if(s===c.Exclude)return r.getStart(t);if(s===c.StartLine)return e.getLineStartPositionForPosition(r.getStart(t),t);if(s===c.JSDoc){var u=e.getJSDocCommentRanges(r,t.text);if(null==u?void 0:u.length)return e.getLineStartPositionForPosition(u[0].pos,t)}var d=r.getFullStart(),_=r.getStart(t);if(d===_)return _;var p=e.getLineStartPositionForPosition(d,t);if(e.getLineStartPositionForPosition(_,t)===p)return s===c.IncludeAll?d:_;if(i){var f=(null===(a=e.getLeadingCommentRanges(t.text,d))||void 0===a?void 0:a[0])||(null===(o=e.getTrailingCommentRanges(t.text,d))||void 0===o?void 0:o[0]);if(f)return e.skipTrivia(t.text,f.end,!0,!0)}var g=d>0?1:0,m=e.getStartPositionOfLine(e.getLineOfLocalPosition(t,p)+g,t);return m=l(t.text,m),e.getStartPositionOfLine(e.getLineOfLocalPosition(t,m),t)}function g(t,r,n){var i=r.end;if(n.trailingTriviaOption===u.Include){var a=e.getTrailingCommentRanges(t.text,i);if(a)for(var o=e.getLineOfLocalPosition(t,r.end),s=0,c=a;so)break;if(e.getLineOfLocalPosition(t,l.end)>o)return e.skipTrivia(t.text,l.end,!0,!0)}}}function m(t,r,n){var i,a=r.end,o=n.trailingTriviaOption;if(o===u.Exclude)return a;if(o===u.ExcludeWhitespace){var s=e.concatenate(e.getTrailingCommentRanges(t.text,a),e.getLeadingCommentRanges(t.text,a)),c=null===(i=null==s?void 0:s[s.length-1])||void 0===i?void 0:i.end;return c||a}var l=g(t,r,n);if(l)return l;var d=e.skipTrivia(t.text,a,!0);return d===a||o!==u.Include&&!e.isLineBreak(t.text.charCodeAt(d-1))?a:d}function y(e,t){return!!t&&!!e.parent&&(27===t.kind||26===t.kind&&201===e.parent.kind)}!function(e){e[e.Remove=0]="Remove",e[e.ReplaceWithSingleNode=1]="ReplaceWithSingleNode",e[e.ReplaceWithMultipleNodes=2]="ReplaceWithMultipleNodes",e[e.Text=3]="Text"}(d||(d={})),n.isThisTypeAnnotatable=function(t){return e.isFunctionExpression(t)||e.isFunctionDeclaration(t)};var v,h,D=function(){function n(t,r){this.newLineCharacter=t,this.formatContext=r,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=new e.Map,this.deletedNodes=[]}return n.fromContext=function(t){return new n(e.getNewLineOrDefaultFromHost(t.host,t.formatContext.options),t.formatContext)},n.with=function(e,t){var r=n.fromContext(e);return t(r),r.getChanges()},n.prototype.pushRaw=function(t,r){e.Debug.assertEqual(t.fileName,r.fileName);for(var n=0,i=r.textChanges;n=t.getLineAndCharacterOfPosition(u.range.end).line+2)break}if(t.statements.length)if(void 0===l&&(l=t.getLineAndCharacterOfPosition(t.statements[0].getStart()).line),l",joiner:", "})},n.prototype.getOptionsForInsertNodeBefore=function(t,r,n){return e.isStatement(t)||e.isClassElement(t)?{suffix:n?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(t)?{suffix:", "}:e.isParameter(t)?e.isParameter(r)?{suffix:", "}:{}:e.isStringLiteral(t)&&e.isImportDeclaration(t.parent)||e.isNamedImports(t)?{suffix:", "}:e.isImportSpecifier(t)?{suffix:","+(n?this.newLineCharacter:" ")}:e.Debug.failBadSyntaxKind(t)},n.prototype.insertNodeAtConstructorStart=function(r,n,i){var a=e.firstOrUndefined(n.body.statements);a&&n.body.multiLine?this.insertNodeBefore(r,a,i):this.replaceConstructorBody(r,n,t([i],n.body.statements))},n.prototype.insertNodeAtConstructorStartAfterSuperCall=function(r,n,i){var a=e.find(n.body.statements,(function(t){return e.isExpressionStatement(t)&&e.isSuperCall(t.expression)}));a&&n.body.multiLine?this.insertNodeAfter(r,a,i):this.replaceConstructorBody(r,n,t(t([],n.body.statements),[i]))},n.prototype.insertNodeAtConstructorEnd=function(r,n,i){var a=e.lastOrUndefined(n.body.statements);a&&n.body.multiLine?this.insertNodeAfter(r,a,i):this.replaceConstructorBody(r,n,t(t([],n.body.statements),[i]))},n.prototype.replaceConstructorBody=function(t,r,n){this.replaceNode(t,r.body,e.factory.createBlock(n,!0))},n.prototype.insertNodeAtEndOfScope=function(t,r,n){var i=f(t,r.getLastToken(),{});this.insertNodeAt(t,i,n,{prefix:e.isLineBreak(t.text.charCodeAt(r.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},n.prototype.insertNodeAtClassStart=function(e,t,r){this.insertNodeAtStartWorker(e,t,r)},n.prototype.insertNodeAtObjectStart=function(e,t,r){this.insertNodeAtStartWorker(e,t,r)},n.prototype.insertNodeAtStartWorker=function(e,t,r){var n,i=null!==(n=this.guessIndentationFromExistingMembers(e,t))&&void 0!==n?n:this.computeIndentationForNewMember(e,t);this.insertNodeAt(e,b(t).pos,r,this.getInsertNodeAtStartInsertOptions(e,t,i))},n.prototype.guessIndentationFromExistingMembers=function(t,r){for(var n,i=r,a=0,o=b(r);a=0;n--){var i=r[n],a=i.span,o=i.newText;t=""+t.substring(0,a.start)+o+t.substring(e.textSpanEnd(a))}return t}function E(t){var r=e.visitEachChild(t,E,e.nullTransformationContext,T,E),n=e.nodeIsSynthesized(r)?r:Object.create(r);return e.setTextRangePosEnd(n,i(t),o(t)),n}function T(t,r,n,a,s){var c=e.visitNodes(t,r,n,a,s);if(!c)return c;var u=c===t?e.factory.createNodeArray(c.slice(0)):c;return e.setTextRangePosEnd(u,i(t),o(t)),u}function C(t,r){return!(e.isInComment(t,r)||e.isInString(t,r)||e.isInTemplateString(t,r)||e.isInJSXText(t,r))}function k(e,t,r,n){void 0===n&&(n={leadingTriviaOption:c.IncludeAll});var i=f(t,r,n),a=m(t,r,n);e.deleteRange(t,{pos:i,end:a})}function A(t,r,n,i){var a=e.Debug.checkDefined(e.formatting.SmartIndenter.getContainingList(i,n)),o=e.indexOfNode(a,i);e.Debug.assert(-1!==o),1!==a.length?(e.Debug.assert(!r.has(i),"Deleting a node twice"),r.add(i),t.deleteRange(n,{pos:x(n,i),end:o===a.length-1?m(n,i,{}):x(n,a[o+1])})):k(t,n,i)}n.ChangeTracker=D,n.getNewFileText=function(e,t,r,n){return v.newFileChangesWorker(void 0,t,e,r,n)},function(t){function n(t,r,n,a,o){var s=n.map((function(e){return 4===e?"":i(e,t,a).text})).join(a),c=e.createSourceFile("any file name",s,99,!0,r);return S(s,e.formatting.formatDocument(c,o))+a}function i(t,r,n){var i=function(t){var r=0,n=e.createTextWriter(t);function i(t,i){if(i||!function(t){return e.skipTrivia(t,0)===t.length}(t)){r=n.getTextPos();for(var a=0;e.isWhiteSpaceLike(t.charCodeAt(t.length-a-1));)a++;r-=a}}function o(e){n.write(e),i(e,!1)}function c(e){n.writeComment(e)}function u(e){n.writeKeyword(e),i(e,!1)}function l(e){n.writeOperator(e),i(e,!1)}function d(e){n.writePunctuation(e),i(e,!1)}function _(e){n.writeTrailingSemicolon(e),i(e,!1)}function p(e){n.writeParameter(e),i(e,!1)}function f(e){n.writeProperty(e),i(e,!1)}function g(e){n.writeSpace(e),i(e,!1)}function m(e){n.writeStringLiteral(e),i(e,!1)}function y(e,t){n.writeSymbol(e,t),i(e,!1)}function v(e){n.writeLine(e)}function h(){n.increaseIndent()}function D(){n.decreaseIndent()}function x(){return n.getText()}function b(e){n.rawWrite(e),i(e,!1)}function S(e){n.writeLiteral(e),i(e,!0)}function E(){return n.getTextPos()}function T(){return n.getLine()}function C(){return n.getColumn()}function k(){return n.getIndent()}function A(){return n.isAtStartOfLine()}function F(){n.clear(),r=0}return{onBeforeEmitNode:function(e){e&&a(e,r)},onAfterEmitNode:function(e){e&&s(e,r)},onBeforeEmitNodeArray:function(e){e&&a(e,r)},onAfterEmitNodeArray:function(e){e&&s(e,r)},onBeforeEmitToken:function(e){e&&a(e,r)},onAfterEmitToken:function(e){e&&s(e,r)},write:o,writeComment:c,writeKeyword:u,writeOperator:l,writePunctuation:d,writeTrailingSemicolon:_,writeParameter:p,writeProperty:f,writeSpace:g,writeStringLiteral:m,writeSymbol:y,writeLine:v,increaseIndent:h,decreaseIndent:D,getText:x,rawWrite:b,writeLiteral:S,getTextPos:E,getLine:T,getColumn:C,getIndent:k,isAtStartOfLine:A,hasTrailingComment:function(){return n.hasTrailingComment()},hasTrailingWhitespace:function(){return n.hasTrailingWhitespace()},clear:F}}(n),o="\n"===n?1:0;return e.createPrinter({newLine:o,neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},i).writeNode(4,t,r,i),{text:i.getText(),node:E(t)}}t.getTextChangesFromChanges=function(t,n,a,o){return e.mapDefined(e.group(t,(function(e){return e.sourceFile.path})),(function(t){for(var s=t[0].sourceFile,c=e.stableSort(t,(function(e,t){return e.range.pos-t.range.pos||e.range.end-t.range.end})),u=function(t){e.Debug.assert(c[t].range.end<=c[t+1].range.pos,"Changes overlap",(function(){return JSON.stringify(c[t].range)+" and "+JSON.stringify(c[t+1].range)}))},l=0;l0?{fileName:s.fileName,textChanges:_}:void 0}))},t.newFileChanges=function(t,r,i,a,o){var s=n(t,e.getScriptKindFromFileName(r),i,a,o);return{fileName:r,textChanges:[e.createTextChange(e.createTextSpan(0,0),s)],isNewFile:!0}},t.newFileChangesWorker=n,t.getNonformattedText=i}(v||(v={})),n.applyChanges=S,n.isValidLocationToAddComment=C,function(t){function r(t,r,n){if(n.parent.name){var i=e.Debug.checkDefined(e.getTokenAtPosition(r,n.pos-1));t.deleteRange(r,{pos:i.getStart(r),end:n.end})}else{k(t,r,e.getAncestor(n,262))}}t.deleteDeclaration=function(t,n,i,a){switch(a.kind){case 161:var o=a.parent;e.isArrowFunction(o)&&1===o.parameters.length&&!e.findChildOfKind(o,20,i)?t.replaceNodeWithText(i,a,"()"):A(t,n,i,a);break;case 262:case 261:k(t,i,a,{leadingTriviaOption:i.imports.length&&a===e.first(i.imports).parent||a===e.find(i.statements,e.isAnyImportSyntax)?c.Exclude:e.hasJSDocNodes(a)?c.JSDoc:c.StartLine});break;case 199:var s=a.parent;198===s.kind&&a!==e.last(s.elements)?k(t,i,a):A(t,n,i,a);break;case 250:!function(t,r,n,i){var a=i.parent;if(288===a.kind)return void t.deleteNodeRange(n,e.findChildOfKind(a,20,n),e.findChildOfKind(a,21,n));if(1!==a.declarations.length)return void A(t,r,n,i);var o=a.parent;switch(o.kind){case 240:case 239:t.replaceNode(n,i,e.factory.createObjectLiteralExpression());break;case 238:k(t,n,a);break;case 233:k(t,n,o,{leadingTriviaOption:e.hasJSDocNodes(o)?c.JSDoc:c.StartLine});break;default:e.Debug.assertNever(o)}}(t,n,i,a);break;case 160:A(t,n,i,a);break;case 266:var l=a.parent;1===l.elements.length?r(t,i,l):A(t,n,i,a);break;case 264:r(t,i,a);break;case 26:k(t,i,a,{trailingTriviaOption:u.Exclude});break;case 97:k(t,i,a,{leadingTriviaOption:c.Exclude});break;case 253:case 252:k(t,i,a,{leadingTriviaOption:e.hasJSDocNodes(a)?c.JSDoc:c.StartLine});break;default:a.parent?e.isImportClause(a.parent)&&a.parent.name===a?function(t,r,n){if(n.namedBindings){var i=n.name.getStart(r),a=e.getTokenAtPosition(r,n.name.end);if(a&&27===a.kind){var o=e.skipTrivia(r.text,a.end,!1,!0);t.deleteRange(r,{pos:i,end:o})}else k(t,r,n.name)}else k(t,r,n.parent)}(t,i,a.parent):e.isCallExpression(a.parent)&&e.contains(a.parent.arguments,a)?A(t,n,i,a):k(t,i,a):k(t,i,a)}}}(h||(h={})),n.deleteNode=k}(e.textChanges||(e.textChanges={}))}(s||(s={})),function(e){!function(n){var i=e.createMultiMap(),o=new e.Map;function s(t){return e.isArray(t)?e.formatStringFromArgs(e.getLocaleSpecificMessage(t[0]),t.slice(1)):e.getLocaleSpecificMessage(t)}function c(e,t,r,n,i,a){return{fixName:e,description:t,changes:r,fixId:n,fixAllDescription:i,commands:a?[a]:void 0}}function u(e,t){return{changes:e,commands:t}}function l(t,r,n){for(var i=0,a=d(t);i1)break}var l=o<2;return function(e){var t=e.fixId,n=e.fixAllDescription,i=a(e,["fixId","fixAllDescription"]);return l?i:r(r({},i),{fixId:t,fixAllDescription:n})}}(i,n))}))},n.getAllFixes=function(t){return o.get(e.cast(t.fixId,e.isString)).getAllCodeActions(t)},n.createCombinedCodeActions=u,n.createFileTextChanges=function(e,t){return{fileName:e,textChanges:t}},n.codeFixAll=function(t,r,n){var i=[];return u(e.textChanges.ChangeTracker.with(t,(function(e){return l(t,r,(function(t){return n(e,t,i)}))})),0===i.length?void 0:i)},n.eachDiagnostic=l}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){var t,r;t=e.refactor||(e.refactor={}),r=new e.Map,t.registerRefactor=function(e,t){r.set(e,t)},t.getApplicableRefactors=function(n){return e.arrayFrom(e.flatMapIterator(r.values(),(function(e){var r;return n.cancellationToken&&n.cancellationToken.isCancellationRequested()||!(null===(r=e.kinds)||void 0===r?void 0:r.some((function(e){return t.refactorKindBeginsWith(e,n.kind)})))?void 0:e.getAvailableActions(n)})))},t.getEditsForRefactor=function(e,t,n){var i=r.get(t);return i&&i.getEditsForAction(e,n)}}(s||(s={})),function(e){!function(t){var r="addConvertToUnknownForNonOverlappingTypes",n=[e.Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code];function i(t,r,n){var i=e.getTokenAtPosition(r,n),a=e.Debug.checkDefined(e.findAncestor(i,(function(t){return e.isAsExpression(t)||e.isTypeAssertionExpression(t)})),"Expected to find an assertion expression"),o=e.isAsExpression(a)?e.factory.createAsExpression(a.expression,e.factory.createKeywordTypeNode(152)):e.factory.createTypeAssertion(e.factory.createKeywordTypeNode(152),a.expression);t.replaceNode(r,a.expression,o)}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span.start)}));return[t.createCodeFixAction(r,a,e.Diagnostics.Add_unknown_conversion_for_non_overlapping_types,r,e.Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(e,t){return i(e,t.file,t.start)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){var t;(t=e.codefix||(e.codefix={})).registerCodeFix({errorCodes:[e.Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,e.Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code],getCodeActions:function(r){var n=r.sourceFile,i=e.textChanges.ChangeTracker.with(r,(function(t){var r=e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([]),void 0);t.insertNodeAtEndOfScope(n,n,r)}));return[t.createCodeFixActionWithoutFixAll("addEmptyExportDeclaration",i,e.Diagnostics.Add_export_to_make_this_file_into_a_module)]}})}(s||(s={})),function(e){!function(t){var r="addMissingAsync",n=[e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Type_0_is_not_comparable_to_type_1.code];function i(n,i,a,o){var s=a((function(t){return function(t,r,n,i){if(i&&i.has(e.getNodeId(n)))return;null==i||i.add(e.getNodeId(n));var a=e.factory.updateModifiers(e.getSynthesizedDeepClone(n,!0),e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags(256|e.getSyntacticModifierFlags(n))));t.replaceNode(r,n,a)}(t,n.sourceFile,i,o)}));return t.createCodeFixAction(r,s,e.Diagnostics.Add_async_modifier_to_containing_function,r,e.Diagnostics.Add_all_missing_async_modifiers)}function a(t,r){if(r){var n=e.getTokenAtPosition(t,r.start);return e.findAncestor(n,(function(n){return n.getStart(t)e.textSpanEnd(r)?"quit":(e.isArrowFunction(n)||e.isMethodDeclaration(n)||e.isFunctionExpression(n)||e.isFunctionDeclaration(n))&&e.textSpansEqual(r,e.createTextSpanFromNode(n,t))}))}}t.registerCodeFix({fixIds:[r],errorCodes:n,getCodeActions:function(t){var r=t.sourceFile,n=t.errorCode,o=t.cancellationToken,s=t.program,c=t.span,u=e.find(s.getDiagnosticsProducingTypeChecker().getDiagnostics(r,o),function(t,r){return function(n){var i=n.start,a=n.length,o=n.relatedInformation,s=n.code;return e.isNumber(i)&&e.isNumber(a)&&e.textSpansEqual({start:i,length:a},t)&&s===r&&!!o&&e.some(o,(function(t){return t.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code}))}}(c,n)),l=a(r,u&&u.relatedInformation&&e.find(u.relatedInformation,(function(t){return t.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})));if(l){return[i(t,l,(function(r){return e.textChanges.ChangeTracker.with(t,r)}))]}},getAllCodeActions:function(r){var o=r.sourceFile,s=new e.Set;return t.codeFixAll(r,n,(function(t,n){var c=n.relatedInformation&&e.find(n.relatedInformation,(function(t){return t.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})),u=a(o,c);if(u){return i(r,u,(function(e){return e(t),[]}),s)}}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(r){var n="addMissingAwait",i=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,a=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],o=t([e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap.code,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code,e.Diagnostics.Type_0_is_not_an_array_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,i],a);function s(t,n,i,a,s,c){var u=t.sourceFile,_=t.program,p=t.cancellationToken,f=function(t,r,n,i,a){var s=function(t,r){if(e.isPropertyAccessExpression(t.parent)&&e.isIdentifier(t.parent.expression))return{identifiers:[t.parent.expression],isCompleteFix:!0};if(e.isIdentifier(t))return{identifiers:[t],isCompleteFix:!0};if(e.isBinaryExpression(t)){for(var n=void 0,i=!0,a=0,o=[t.left,t.right];ae.textSpanEnd(n)?"quit":e.isExpression(r)&&e.textSpansEqual(n,e.createTextSpanFromNode(r,t))}));return s&&function(t,r,n,i,a){var o=a.getDiagnosticsProducingTypeChecker().getDiagnostics(t,i);return e.some(o,(function(t){var i=t.start,a=t.length,o=t.relatedInformation,s=t.code;return e.isNumber(i)&&e.isNumber(a)&&e.textSpansEqual({start:i,length:a},n)&&s===r&&!!o&&e.some(o,(function(t){return t.code===e.Diagnostics.Did_you_forget_to_use_await.code}))}))}(t,r,n,i,a)&&l(s)?s:void 0}function l(t){return 32768&t.kind||!!e.findAncestor(t,(function(t){return t.parent&&e.isArrowFunction(t.parent)&&t.parent.body===t||e.isBlock(t)&&(252===t.parent.kind||209===t.parent.kind||210===t.parent.kind||166===t.parent.kind)}))}function d(t,r,n,o,s,c){if(e.isBinaryExpression(s))for(var u=0,l=[s.left,s.right];u0)return[t.createCodeFixAction(r,a,e.Diagnostics.Add_const_to_unresolved_variable,r,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[r],getAllCodeActions:function(r){var a=new e.Set;return t.codeFixAll(r,n,(function(e,t){return i(e,t.file,t.start,r.program,a)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="addMissingDeclareProperty",n=[e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];function i(t,r,n,i){var a=e.getTokenAtPosition(r,n);if(e.isIdentifier(a)){var o=a.parent;164!==o.kind||i&&!e.tryAddToSet(i,o)||t.insertModifierBefore(r,133,o)}}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span.start)}));if(a.length>0)return[t.createCodeFixAction(r,a,e.Diagnostics.Prefix_with_declare,r,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[r],getAllCodeActions:function(r){var a=new e.Set;return t.codeFixAll(r,n,(function(e,t){return i(e,t.file,t.start,a)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="addMissingInvocationForDecorator",n=[e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];function i(t,r,n){var i=e.getTokenAtPosition(r,n),a=e.findAncestor(i,e.isDecorator);e.Debug.assert(!!a,"Expected position to be owned by a decorator.");var o=e.factory.createCallExpression(a.expression,void 0,void 0);t.replaceNode(r,a.expression,o)}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span.start)}));return[t.createCodeFixAction(r,a,e.Diagnostics.Call_decorator_expression,r,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(e,t){return i(e,t.file,t.start)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="addNameToNamelessParameter",n=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];function i(t,r,n){var i=e.getTokenAtPosition(r,n);if(!e.isIdentifier(i))return e.Debug.fail("add-name-to-nameless-parameter operates on identifiers, but got a "+e.Debug.formatSyntaxKind(i.kind));var a=i.parent;if(!e.isParameter(a))return e.Debug.fail("Tried to add a parameter name to a non-parameter: "+e.Debug.formatSyntaxKind(i.kind));var o=a.parent.parameters.indexOf(a);e.Debug.assert(!a.type,"Tried to add a parameter name to a parameter that already had one."),e.Debug.assert(o>-1,"Parameter not found in parent parameter list.");var s=e.factory.createParameterDeclaration(void 0,a.modifiers,a.dotDotDotToken,"arg"+o,a.questionToken,e.factory.createTypeReferenceNode(i,void 0),a.initializer);t.replaceNode(r,i,s)}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span.start)}));return[t.createCodeFixAction(r,a,e.Diagnostics.Add_parameter_name,r,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(e,t){return i(e,t.file,t.start)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="annotateWithTypeFromJSDoc",n=[e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code];function i(t,r){var n=e.getTokenAtPosition(t,r);return e.tryCast(e.isParameter(n.parent)?n.parent.parent:n.parent,a)}function a(t){return function(t){return e.isFunctionLikeDeclaration(t)||250===t.kind||163===t.kind||164===t.kind}(t)&&o(t)}function o(t){return e.isFunctionLikeDeclaration(t)?t.parameters.some(o)||!t.type&&!!e.getJSDocReturnType(t):!t.type&&!!e.getJSDocType(t)}function s(t,r,n){if(e.isFunctionLikeDeclaration(n)&&(e.getJSDocReturnType(n)||n.parameters.some((function(t){return!!e.getJSDocType(t)})))){if(!n.typeParameters){var i=e.getJSDocTypeParameterDeclarations(n);i.length&&t.insertTypeParameters(r,n,i)}var a=e.isArrowFunction(n)&&!e.findChildOfKind(n,20,r);a&&t.insertNodeBefore(r,e.first(n.parameters),e.factory.createToken(20));for(var o=0,s=n.parameters;o1?(t.delete(r,l),t.insertNodeAfter(r,_,d)):t.replaceNode(r,_,d)}}function p(n){var i=[];return n.members&&n.members.forEach((function(e,n){if("constructor"===n&&e.valueDeclaration)t.delete(r,e.valueDeclaration.parent);else{var a=u(e,void 0);a&&i.push.apply(i,a)}})),n.exports&&n.exports.forEach((function(t){if("prototype"===t.name&&t.declarations){var r=t.declarations[0];if(1===t.declarations.length&&e.isPropertyAccessExpression(r)&&e.isBinaryExpression(r.parent)&&62===r.parent.operatorToken.kind&&e.isObjectLiteralExpression(r.parent.right))(n=u(r.parent.right.symbol,void 0))&&i.push.apply(i,n)}else{var n;(n=u(t,[e.factory.createToken(123)]))&&i.push.apply(i,n)}})),i;function u(n,i){var u=[];if(!(8192&n.flags||4096&n.flags))return u;var l,d,_=n.valueDeclaration,p=_.parent,f=p.right;if(l=_,d=f,!(e.isAccessExpression(l)?e.isPropertyAccessExpression(l)&&o(l)||e.isFunctionLike(d):e.every(l.properties,(function(t){return!!(e.isMethodDeclaration(t)||e.isGetOrSetAccessorDeclaration(t)||e.isPropertyAssignment(t)&&e.isFunctionExpression(t.initializer)&&t.name||o(t))}))))return u;var g=p.parent&&234===p.parent.kind?p.parent:p;if(t.delete(r,g),!f)return u.push(e.factory.createPropertyDeclaration([],i,n.name,void 0,void 0,void 0)),u;if(e.isAccessExpression(_)&&(e.isFunctionExpression(f)||e.isArrowFunction(f))){var m=e.getQuotePreference(r,s),y=function(t,r,n){if(e.isPropertyAccessExpression(t))return t.name;var i=t.argumentExpression;if(e.isNumericLiteral(i))return i;if(e.isStringLiteralLike(i))return e.isIdentifierText(i.text,r.target)?e.factory.createIdentifier(i.text):e.isNoSubstitutionTemplateLiteral(i)?e.factory.createStringLiteral(i.text,0===n):i;return}(_,c,m);return y?h(u,f,y):u}if(e.isObjectLiteralExpression(f))return e.flatMap(f.properties,(function(t){return e.isMethodDeclaration(t)||e.isGetOrSetAccessorDeclaration(t)?u.concat(t):e.isPropertyAssignment(t)&&e.isFunctionExpression(t.initializer)?h(u,t.initializer,t.name):o(t)?u:[]}));if(e.isSourceFileJS(r))return u;if(!e.isPropertyAccessExpression(_))return u;var v=e.factory.createPropertyDeclaration(void 0,i,_.name,void 0,void 0,f);return e.copyLeadingComments(p.parent,v,r),u.push(v),u;function h(t,n,o){return e.isFunctionExpression(n)?function(t,n,o){var s=e.concatenate(i,a(n,129)),c=e.factory.createMethodDeclaration(void 0,s,void 0,o,void 0,void 0,n.parameters,void 0,n.body);return e.copyLeadingComments(p,c,r),t.concat(c)}(t,n,o):function(t,n,o){var s,c=n.body;s=231===c.kind?c:e.factory.createBlock([e.factory.createReturnStatement(c)]);var u=e.concatenate(i,a(n,129)),l=e.factory.createMethodDeclaration(void 0,u,void 0,o,void 0,void 0,n.parameters,void 0,s);return e.copyLeadingComments(p,l,r),t.concat(l)}(t,n,o)}}}}function a(t,r){return e.filter(t.modifiers,(function(e){return e.kind===r}))}function o(t){return!!t.name&&!(!e.isIdentifier(t.name)||"constructor"!==t.name.text)}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span.start,n.program.getTypeChecker(),n.preferences,n.program.getCompilerOptions())}));return[t.createCodeFixAction(r,a,e.Diagnostics.Convert_function_to_an_ES2015_class,r,e.Diagnostics.Convert_all_constructor_functions_to_classes)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(t,r){return i(t,r.file,r.start,e.program.getTypeChecker(),e.preferences,e.program.getCompilerOptions())}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(r){var n,i="convertToAsyncFunction",a=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],o=!0;function s(t,r,n,i){var a,o=e.getTokenAtPosition(r,n);if(a=e.isIdentifier(o)&&e.isVariableDeclaration(o.parent)&&o.parent.initializer&&e.isFunctionLikeDeclaration(o.parent.initializer)?o.parent.initializer:e.tryCast(e.getContainingFunction(e.getTokenAtPosition(r,n)),e.canBeConvertedToAsync)){var s=new e.Map,d=e.isInJSFile(a),p=function(t,r){if(!t.body)return new e.Set;var n=new e.Set;return e.forEachChild(t.body,(function t(i){c(i,r,"then")?(n.add(e.getNodeId(i)),e.forEach(i.arguments,t)):c(i,r,"catch")?(n.add(e.getNodeId(i)),e.forEachChild(i,t)):u(i,r)?n.add(e.getNodeId(i)):e.forEachChild(i,t)})),n}(a,i),f=function(t,r,n){var i=new e.Map,a=e.createMultiMap();return e.forEachChild(t,(function t(o){if(e.isIdentifier(o)){var s=r.getSymbolAtLocation(o);if(s){var c=y(r.getTypeAtLocation(o),r),u=e.getSymbolId(s).toString();if(!c||e.isParameter(o.parent)||e.isFunctionLikeDeclaration(o.parent)||n.has(u)){if(o.parent&&(e.isParameter(o.parent)||e.isVariableDeclaration(o.parent)||e.isBindingElement(o.parent))){var d=o.text,_=a.get(d);if(_&&_.some((function(e){return e!==s}))){var p=l(o,a);i.set(u,p.identifier),n.set(u,p),a.add(d,s)}else{var f=e.getSynthesizedDeepClone(o);n.set(u,b(f)),a.add(d,s)}}}else{var g=e.firstOrUndefined(c.parameters),m=(null==g?void 0:g.valueDeclaration)&&e.isParameter(g.valueDeclaration)&&e.tryCast(g.valueDeclaration.name,e.isIdentifier)||e.factory.createUniqueName("result",16),v=l(m,a);n.set(u,v),a.add(m.text,s)}}}else e.forEachChild(o,t)})),e.getSynthesizedDeepCloneWithReplacements(t,!0,(function(t){if(e.isBindingElement(t)&&e.isIdentifier(t.name)&&e.isObjectBindingPattern(t.parent)){if((a=(n=r.getSymbolAtLocation(t.name))&&i.get(String(e.getSymbolId(n))))&&a.text!==(t.name||t.propertyName).getText())return e.factory.createBindingElement(t.dotDotDotToken,t.propertyName||t.name,a,t.initializer)}else if(e.isIdentifier(t)){var n,a;if(a=(n=r.getSymbolAtLocation(t))&&i.get(String(e.getSymbolId(n))))return e.factory.createIdentifier(a.text)}}))}(a,i,s);if(e.returnsPromise(f,i)){var g=f.body&&e.isBlock(f.body)?function(t,r){var n=[];return e.forEachReturnStatement(t,(function(t){e.isReturnStatementWithFixablePromiseHandler(t,r)&&n.push(t)})),n}(f.body,i):e.emptyArray,m={checker:i,synthNamesMap:s,setOfExpressionsToReturn:p,isInJSFile:d};if(g.length){var v=a.modifiers?a.modifiers.end:a.decorators?e.skipTrivia(r.text,a.decorators.end):a.getStart(r),h=a.modifiers?{prefix:" "}:{suffix:" "};t.insertModifierAt(r,v,129,h);for(var D=function(n){e.forEachChild(n,(function i(a){if(e.isCallExpression(a)){var o=_(a,m);t.replaceNodeWithNodes(r,n,o)}else e.isFunctionLike(a)||e.forEachChild(a,i)}))},x=0,S=g;x0)return O;if(k){I=m(a.checker,k,C);if(E(i,a))return f(I,null===(_=i.typeArguments)||void 0===_?void 0:_[0]);var M=p(r,I,void 0);return r&&r.types.push(k),M}return d();default:return d()}return e.emptyArray}function m(t,r,n){var i=e.getSynthesizedDeepClone(n);return t.getPromisedTypeOfPromise(r)?e.factory.createAwaitExpression(i):i}function y(t,r){var n=r.getSignaturesOfType(t,0);return e.lastOrUndefined(n)}function v(t,r,n){for(var i=[],a=0,o=r;a0)return}else e.isFunctionLike(a)||e.forEachChild(a,r)}))}return i}function h(t,r){var n,i=[];e.isFunctionLikeDeclaration(t)?t.parameters.length>0&&(n=function t(r){if(e.isIdentifier(r))return a(r);var n=e.flatMap(r.elements,(function(r){return e.isOmittedExpression(r)?[]:[t(r.name)]}));return function(t,r,n){void 0===r&&(r=e.emptyArray);void 0===n&&(n=[]);return{kind:1,bindingPattern:t,elements:r,types:n}}(r,n)}(t.parameters[0].name)):e.isIdentifier(t)?n=a(t):e.isPropertyAccessExpression(t)&&e.isIdentifier(t.name)&&(n=a(t.name));if(n&&(!("identifier"in n)||"undefined"!==n.identifier.text))return n;function a(t){var n=function(e){return e.symbol?e.symbol:r.checker.getSymbolAtLocation(e)}(function(e){return e.original?e.original:e}(t));return n&&r.synthNamesMap.get(e.getSymbolId(n).toString())||b(t,i)}}function D(t){return!t||(S(t)?!t.identifier.text:e.every(t.elements,D))}function x(e){return S(e)?e.identifier:e.bindingPattern}function b(e,t){return void 0===t&&(t=[]),{kind:0,identifier:e,types:t,hasBeenDeclared:!1}}function S(e){return 0===e.kind}function E(t,r){return!!t.original&&r.setOfExpressionsToReturn.has(e.getNodeId(t.original))}r.registerCodeFix({errorCodes:a,getCodeActions:function(t){o=!0;var n=e.textChanges.ChangeTracker.with(t,(function(e){return s(e,t.sourceFile,t.span.start,t.program.getTypeChecker())}));return o?[r.createCodeFixAction(i,n,e.Diagnostics.Convert_to_async_function,i,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[i],getAllCodeActions:function(e){return r.codeFixAll(e,a,(function(t,r){return s(t,r.file,r.start,e.program.getTypeChecker())}))}}),function(e){e[e.Identifier=0]="Identifier",e[e.BindingPattern=1]="BindingPattern"}(n||(n={}))}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){function r(t,r,n,i){for(var a=0,o=t.imports;a1?[[o(n),s(n)],!0]:[[s(n)],!0]:[[o(n)],!1]}(d.arguments[0],r):void 0;return p?(i.replaceNodeWithNodes(t,n.parent,p[0]),p[1]):(i.replaceRangeWithText(t,e.createRange(l.getStart(t),d.pos),"export default"),!0)}i.delete(t,n.parent)}else e.isExportsOrModuleExportsOrAlias(t,l.expression)&&function(t,r,n,i){var a=r.left.name.text,o=i.get(a);if(void 0!==o){var s=[g(void 0,o,r.right),m([e.factory.createExportSpecifier(o,a)])];n.replaceNodeWithNodes(t,r.parent,s)}else!function(t,r,n){var i=t.left,a=t.right,o=t.parent,s=i.name.text;if(!(e.isFunctionExpression(a)||e.isArrowFunction(a)||e.isClassExpression(a))||a.name&&a.name.text!==s)n.replaceNodeRangeWithNodes(r,i.expression,e.findChildOfKind(i,24,r),[e.factory.createToken(92),e.factory.createToken(84)],{joiner:" ",suffix:" "});else{n.replaceRange(r,{pos:i.getStart(r),end:a.getStart(r)},e.factory.createToken(92),{suffix:" "}),a.name||n.insertName(r,a,s);var c=e.findChildOfKind(o,26,r);c&&n.delete(r,c)}}(r,t,n)}(t,n,i,a);return!1}(t,n,y,i,d,p)}default:return!1}}function a(r,n,i,a,o,s,c){var l,d=n.declarationList,_=!1,m=e.map(d.declarations,(function(n){var i=n.name,l=n.initializer;if(l){if(e.isExportsOrModuleExportsOrAlias(r,l))return _=!0,y([]);if(e.isRequireCall(l,!0))return _=!0,function(r,n,i,a,o,s){switch(r.kind){case 197:var c=e.mapAllOrFail(r.elements,(function(t){return t.dotDotDotToken||t.initializer||t.propertyName&&!e.isIdentifier(t.propertyName)||!e.isIdentifier(t.name)?void 0:f(t.propertyName&&t.propertyName.text,t.name.text)}));if(c)return y([e.makeImport(void 0,c,n,s)]);case 198:var l=u(t.moduleSpecifierToValidIdentifier(n.text,o),a);return y([e.makeImport(e.factory.createIdentifier(l),void 0,n,s),g(void 0,e.getSynthesizedDeepClone(r),e.factory.createIdentifier(l))]);case 78:return function(t,r,n,i,a){for(var o,s=n.getSymbolAtLocation(t),c=new e.Map,l=!1,d=0,_=i.original.get(t.text);d<_.length;d++){var p=_[d];if(n.getSymbolAtLocation(p)===s&&p!==t){var f=p.parent;if(e.isPropertyAccessExpression(f)){var g=f.name.text;if("default"===g){l=!0;var m=p.getText();(null!=o?o:o=new e.Map).set(f,e.factory.createIdentifier(m))}else{e.Debug.assert(f.expression===p,"Didn't expect expression === use");var v=c.get(g);void 0===v&&(v=u(g,i),c.set(g,v)),(null!=o?o:o=new e.Map).set(f,e.factory.createIdentifier(v))}}else l=!0}}var h=0===c.size?void 0:e.arrayFrom(e.mapIterator(c.entries(),(function(t){var r=t[0],n=t[1];return e.factory.createImportSpecifier(r===n?void 0:e.factory.createIdentifier(r),e.factory.createIdentifier(n))})));h||(l=!0);return y([e.makeImport(l?e.getSynthesizedDeepClone(t):void 0,h,r,a)],o)}(r,n,i,a,s);default:return e.Debug.assertNever(r,"Convert to ES6 module got invalid name kind "+r.kind)}}(i,l.arguments[0],a,o,s,c);if(e.isPropertyAccessExpression(l)&&e.isRequireCall(l.expression,!0))return _=!0,function(t,r,n,i,a){switch(t.kind){case 197:case 198:var o=u(r,i);return y([p(o,r,n,a),g(void 0,t,e.factory.createIdentifier(o))]);case 78:return y([p(t.text,r,n,a)]);default:return e.Debug.assertNever(t,"Convert to ES6 module got invalid syntax form "+t.kind)}}(i,l.name.text,l.expression.arguments[0],o,c)}return y([e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([n],d.flags))])}));if(_)return i.replaceNodeWithNodes(r,n,e.flatMap(m,(function(e){return e.newImports}))),e.forEach(m,(function(t){t.useSitesToUnqualify&&e.copyEntries(t.useSitesToUnqualify,null!=l?l:l=new e.Map)})),l}function o(e){return m(void 0,e)}function s(t){return m([e.factory.createExportSpecifier(void 0,"default")],t)}function c(t,r){return r&&e.some(e.arrayFrom(r.keys()),(function(r){return e.rangeContainsRange(t,r)}))?e.isArray(t)?e.getSynthesizedDeepClonesWithReplacements(t,!0,n):e.getSynthesizedDeepCloneWithReplacements(t,!0,n):t;function n(e){if(202===e.kind){var t=r.get(e);return r.delete(e),t}}}function u(e,t){for(;t.original.has(e)||t.additional.has(e);)e="_"+e;return t.additional.add(e),e}function l(t){var r=e.createMultiMap();return d(t,(function(e){return r.add(e.text,e)})),r}function d(t,r){e.isIdentifier(t)&&function(e){var t=e.parent;switch(t.kind){case 202:return t.name!==e;case 199:case 266:return t.propertyName!==e;default:return!0}}(t)&&r(t),t.forEachChild((function(e){return d(e,r)}))}function _(t,r,n,i){return e.factory.createFunctionDeclaration(e.getSynthesizedDeepClones(n.decorators),e.concatenate(r,e.getSynthesizedDeepClones(n.modifiers)),e.getSynthesizedDeepClone(n.asteriskToken),t,e.getSynthesizedDeepClones(n.typeParameters),e.getSynthesizedDeepClones(n.parameters),e.getSynthesizedDeepClone(n.type),e.factory.converters.convertToFunctionBlock(c(n.body,i)))}function p(t,r,n,i){return"default"===r?e.makeImport(e.factory.createIdentifier(t),void 0,n,i):e.makeImport(void 0,[f(r,t)],n,i)}function f(t,r){return e.factory.createImportSpecifier(void 0!==t&&t!==r?e.factory.createIdentifier(t):void 0,e.factory.createIdentifier(r))}function g(t,r,n){return e.factory.createVariableStatement(t,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(r,void 0,void 0,n)],2))}function m(t,r){return e.factory.createExportDeclaration(void 0,void 0,!1,t&&e.factory.createNamedExports(t),void 0===r?void 0:e.factory.createStringLiteral(r))}function y(e,t){return{newImports:e,useSitesToUnqualify:t}}t.registerCodeFix({errorCodes:[e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module.code],getCodeActions:function(o){var s=o.sourceFile,c=o.program,d=o.preferences,_=e.textChanges.ChangeTracker.with(o,(function(t){if(function(t,r,o,s,c){var d={original:l(t),additional:new e.Set},_=function(t,r,i){var a=new e.Map;return n(t,(function(t){var n=t.name,o=n.text,s=n.originalKeywordKind;!a.has(o)&&(void 0!==s&&e.isNonContextualKeyword(s)||r.resolveName(o,t,111551,!0))&&a.set(o,u("_"+o,i))})),a}(t,r,d);!function(t,r,i){n(t,(function(n,a){if(!a){var o=n.name.text;i.replaceNode(t,n,e.factory.createIdentifier(r.get(o)||o))}}))}(t,_,o);for(var p,f=!1,g=0,m=e.filter(t.statements,e.isVariableStatement);g=e.ModuleKind.ES2015)return n?1:2;if(e.isInJSFile(t))return e.isExternalModule(t)?1:3;for(var i=0,a=t.statements;i"),[e.Diagnostics.Convert_function_expression_0_to_arrow_function,c?c.text:e.ANONYMOUS]}return t.replaceNode(r,s,e.factory.createToken(84)),t.insertText(r,c.end," = "),t.insertText(r,u.pos," =>"),[e.Diagnostics.Convert_function_declaration_0_to_arrow_function,c.text]}}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a,o=n.sourceFile,s=n.program,c=n.span,u=e.textChanges.ChangeTracker.with(n,(function(e){a=i(e,o,c.start,s.getTypeChecker())}));return a?[t.createCodeFixAction(r,u,a,r,e.Diagnostics.Fix_all_implicit_this_errors)]:e.emptyArray},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(t,r){i(t,r.file,r.start,e.program.getTypeChecker())}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){var t,r,n;t=e.codefix||(e.codefix={}),r="fixIncorrectNamedTupleSyntax",n=[e.Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,e.Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code],t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var i=n.sourceFile,a=n.span,o=function(t,r){var n=e.getTokenAtPosition(t,r);return e.findAncestor(n,(function(e){return 193===e.kind}))}(i,a.start),s=e.textChanges.ChangeTracker.with(n,(function(t){return function(t,r,n){if(n){for(var i=n.type,a=!1,o=!1;181===i.kind||182===i.kind||187===i.kind;)181===i.kind?a=!0:182===i.kind&&(o=!0),i=i.type;var s=e.factory.updateNamedTupleMember(n,n.dotDotDotToken||(o?e.factory.createToken(25):void 0),n.name,n.questionToken||(a?e.factory.createToken(57):void 0),i);s!==n&&t.replaceNode(r,n,s)}}(t,i,o)}));return[t.createCodeFixAction(r,s,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels,r,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[r]})}(s||(s={})),function(e){!function(t){var r="fixSpelling",n=[e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code,e.Diagnostics.No_overload_matches_this_call.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code];function i(t,r,n,i){var a=e.getTokenAtPosition(t,r),o=a.parent;if(i!==e.Diagnostics.No_overload_matches_this_call.code&&i!==e.Diagnostics.Type_0_is_not_assignable_to_type_1.code||e.isJsxAttribute(o)){var s,c=n.program.getTypeChecker();if(e.isPropertyAccessExpression(o)&&o.name===a){e.Debug.assert(e.isMemberName(a),"Expected an identifier for spelling (property access)");var u=c.getTypeAtLocation(o.expression);32&o.flags&&(u=c.getNonNullableType(u)),s=c.getSuggestedSymbolForNonexistentProperty(a,u)}else if(e.isQualifiedName(o)&&o.right===a){var l=c.getSymbolAtLocation(o.left);l&&1536&l.flags&&(s=c.getSuggestedSymbolForNonexistentModule(o.right,l))}else if(e.isImportSpecifier(o)&&o.name===a){e.Debug.assertNode(a,e.isIdentifier,"Expected an identifier for spelling (import)");var d=function(t,r,n){if(!n||!e.isStringLiteralLike(n.moduleSpecifier))return;var i=e.getResolvedModule(t,n.moduleSpecifier.text);return i?r.program.getSourceFile(i.resolvedFileName):void 0}(t,n,e.findAncestor(a,e.isImportDeclaration));d&&d.symbol&&(s=c.getSuggestedSymbolForNonexistentModule(a,d.symbol))}else if(e.isJsxAttribute(o)&&o.name===a){e.Debug.assertNode(a,e.isIdentifier,"Expected an identifier for JSX attribute");var _=e.findAncestor(a,e.isJsxOpeningLikeElement),p=c.getContextualTypeForArgumentAtIndex(_,0);s=c.getSuggestedSymbolForNonexistentJSXAttribute(a,p)}else{var f=e.getMeaningFromLocation(a),g=e.getTextOfNode(a);e.Debug.assert(void 0!==g,"name should be defined"),s=c.getSuggestedSymbolForNonexistentSymbol(a,g,function(e){var t=0;4&e&&(t|=1920);2&e&&(t|=788968);1&e&&(t|=111551);return t}(f))}return void 0===s?void 0:{node:a,suggestedSymbol:s}}}function a(t,r,n,i,a){var o=e.symbolName(i);if(!e.isIdentifierText(o,a)&&e.isPropertyAccessExpression(n.parent)){var s=i.valueDeclaration;s&&e.isNamedDeclaration(s)&&e.isPrivateIdentifier(s.name)?t.replaceNode(r,n,e.factory.createIdentifier(o)):t.replaceNode(r,n.parent,e.factory.createElementAccessExpression(n.parent.expression,e.factory.createStringLiteral(o)))}else t.replaceNode(r,n,e.factory.createIdentifier(o))}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var o=n.sourceFile,s=n.errorCode,c=i(o,n.span.start,n,s);if(c){var u=c.node,l=c.suggestedSymbol,d=n.host.getCompilationSettings().target,_=e.textChanges.ChangeTracker.with(n,(function(e){return a(e,o,u,l,d)}));return[t.createCodeFixAction("spelling",_,[e.Diagnostics.Change_spelling_to_0,e.symbolName(l)],r,e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(t,r){var n=i(r.file,r.start,e,r.code),o=e.host.getCompilationSettings().target;n&&a(t,e.sourceFile,n.node,n.suggestedSymbol,o)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r,n="returnValueCorrect",i="fixAddReturnStatement",a="fixRemoveBracesFromArrowFunctionBody",o="fixWrapTheBlockWithParen",s=[e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code];function c(t,r,n){var i=t.createSymbol(4,r.escapedText);i.type=t.getTypeAtLocation(n);var a=e.createSymbolTable([i]);return t.createAnonymousType(void 0,a,[],[],void 0,void 0)}function u(t,n,i,a){if(n.body&&e.isBlock(n.body)&&1===e.length(n.body.statements)){var o=e.first(n.body.statements);if(e.isExpressionStatement(o)&&l(t,n,t.getTypeAtLocation(o.expression),i,a))return{declaration:n,kind:r.MissingReturnStatement,expression:o.expression,statement:o,commentSource:o.expression};if(e.isLabeledStatement(o)&&e.isExpressionStatement(o.statement)){var s=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(o.label,o.statement.expression)]);if(l(t,n,c(t,o.label,o.statement.expression),i,a))return e.isArrowFunction(n)?{declaration:n,kind:r.MissingParentheses,expression:s,statement:o,commentSource:o.statement.expression}:{declaration:n,kind:r.MissingReturnStatement,expression:s,statement:o,commentSource:o.statement.expression}}else if(e.isBlock(o)&&1===e.length(o.statements)){var u=e.first(o.statements);if(e.isLabeledStatement(u)&&e.isExpressionStatement(u.statement)){s=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(u.label,u.statement.expression)]);if(l(t,n,c(t,u.label,u.statement.expression),i,a))return{declaration:n,kind:r.MissingReturnStatement,expression:s,statement:o,commentSource:u}}}}}function l(t,r,n,i,a){if(a){var o=t.getSignatureFromDeclaration(r);if(o){e.hasSyntacticModifier(r,256)&&(n=t.createPromiseType(n));var s=t.createSignature(r,o.typeParameters,o.thisParameter,o.parameters,n,void 0,o.minArgumentCount,o.flags);n=t.createAnonymousType(void 0,e.createSymbolTable(),[s],[],void 0,void 0)}else n=t.getAnyType()}return t.isTypeAssignableTo(n,i)}function d(t,r,n,i){var a=e.getTokenAtPosition(r,n);if(a.parent){var o=e.findAncestor(a.parent,e.isFunctionLikeDeclaration);switch(i){case e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:if(!(o&&o.body&&o.type&&e.rangeContainsRange(o.type,a)))return;return u(t,o,t.getTypeFromTypeNode(o.type),!1);case e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!o||!e.isCallExpression(o.parent)||!o.body)return;var s=o.parent.arguments.indexOf(o),c=t.getContextualTypeForArgumentAtIndex(o.parent,s);if(!c)return;return u(t,o,c,!0);case e.Diagnostics.Type_0_is_not_assignable_to_type_1.code:if(!e.isDeclarationName(a)||!e.isVariableLike(a.parent)&&!e.isJsxAttribute(a.parent))return;var l=function(t){switch(t.kind){case 250:case 161:case 199:case 164:case 289:return t.initializer;case 281:return t.initializer&&(e.isJsxExpression(t.initializer)?t.initializer.expression:void 0);case 290:case 163:case 292:case 337:case 330:return}}(a.parent);if(!l||!e.isFunctionLikeDeclaration(l)||!l.body)return;return u(t,l,t.getTypeAtLocation(a.parent),!0)}}}function _(t,r,n,i){e.suppressLeadingAndTrailingTrivia(n);var a=e.probablyUsesSemicolons(r);t.replaceNode(r,i,e.factory.createReturnStatement(n),{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Exclude,suffix:a?";":void 0})}function p(t,r,n,i,a,o){var s=o||e.needsParentheses(i)?e.factory.createParenthesizedExpression(i):i;e.suppressLeadingAndTrailingTrivia(a),e.copyComments(a,s),t.replaceNode(r,n.body,s)}function f(t,r,n,i){t.replaceNode(r,n.body,e.factory.createParenthesizedExpression(i))}function g(r,a,o){var s=e.textChanges.ChangeTracker.with(r,(function(e){return _(e,r.sourceFile,a,o)}));return t.createCodeFixAction(n,s,e.Diagnostics.Add_a_return_statement,i,e.Diagnostics.Add_all_missing_return_statement)}function m(r,i,a){var s=e.textChanges.ChangeTracker.with(r,(function(e){return f(e,r.sourceFile,i,a)}));return t.createCodeFixAction(n,s,e.Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,o,e.Diagnostics.Wrap_all_object_literal_with_parentheses)}!function(e){e[e.MissingReturnStatement=0]="MissingReturnStatement",e[e.MissingParentheses=1]="MissingParentheses"}(r||(r={})),t.registerCodeFix({errorCodes:s,fixIds:[i,a,o],getCodeActions:function(i){var o=i.program,s=i.sourceFile,c=i.span.start,u=i.errorCode,l=d(o.getTypeChecker(),s,c,u);if(l)return l.kind===r.MissingReturnStatement?e.append([g(i,l.expression,l.statement)],e.isArrowFunction(l.declaration)?function(r,i,o,s){var c=e.textChanges.ChangeTracker.with(r,(function(e){return p(e,r.sourceFile,i,o,s,!1)}));return t.createCodeFixAction(n,c,e.Diagnostics.Remove_braces_from_arrow_function_body,a,e.Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}(i,l.declaration,l.expression,l.commentSource):void 0):[m(i,l.declaration,l.expression)]},getAllCodeActions:function(r){return t.codeFixAll(r,s,(function(t,n){var s=d(r.program.getTypeChecker(),n.file,n.start,n.code);if(s)switch(r.fixId){case i:_(t,n.file,s.expression,s.statement);break;case a:if(!e.isArrowFunction(s.declaration))return;p(t,n.file,s.declaration,s.expression,s.commentSource,!1);break;case o:if(!e.isArrowFunction(s.declaration))return;f(t,n.file,s.declaration,s.expression);break;default:e.Debug.fail(JSON.stringify(r.fixId))}}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r,n="fixMissingMember",i="fixMissingFunctionDeclaration",a=[e.Diagnostics.Property_0_does_not_exist_on_type_1.code,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,e.Diagnostics.Cannot_find_name_0.code];function o(t,r,n,i){var a=e.getTokenAtPosition(t,r);if(e.isIdentifier(a)||e.isPrivateIdentifier(a)){var o=a.parent;if(e.isIdentifier(a)&&e.isCallExpression(o))return{kind:2,token:a,call:o,sourceFile:t,modifierFlags:0,parentDeclaration:t};if(e.isPropertyAccessExpression(o)){var s=e.skipConstraint(n.getTypeAtLocation(o.expression)),c=s.symbol;if(c&&c.declarations){if(e.isIdentifier(a)&&e.isCallExpression(o.parent)){var u=e.find(c.declarations,e.isModuleDeclaration),l=null==u?void 0:u.getSourceFile();if(u&&l&&!i.isSourceFileFromExternalLibrary(l))return{kind:2,token:a,call:o.parent,sourceFile:t,modifierFlags:1,parentDeclaration:u};var d=e.find(c.declarations,e.isSourceFile);if(t.commonJsModuleIndicator)return;if(d&&!i.isSourceFileFromExternalLibrary(d))return{kind:2,token:a,call:o.parent,sourceFile:d,modifierFlags:1,parentDeclaration:d}}var _=e.find(c.declarations,e.isClassLike);if(_||!e.isPrivateIdentifier(a)){var p=_||e.find(c.declarations,e.isInterfaceDeclaration);if(p&&!i.isSourceFileFromExternalLibrary(p.getSourceFile())){var f=(s.target||s)!==n.getDeclaredTypeOfSymbol(c);if(f&&(e.isPrivateIdentifier(a)||e.isInterfaceDeclaration(p)))return;var g=p.getSourceFile(),m=(f?32:0)|(e.startsWithUnderscore(a.text)?8:0),y=e.isSourceFileJS(g);return{kind:1,token:a,call:e.tryCast(o.parent,e.isCallExpression),modifierFlags:m,parentDeclaration:p,declSourceFile:g,isJSFile:y}}var v=e.find(c.declarations,e.isEnumDeclaration);return!v||e.isPrivateIdentifier(a)||i.isSourceFileFromExternalLibrary(v.getSourceFile())?void 0:{kind:0,token:a,parentDeclaration:v}}}}}}function s(t,r,n,i,a){var o=i.text;if(a){if(222===n.kind)return;var s=n.name.getText(),u=c(e.factory.createIdentifier(s),o);t.insertNodeAfter(r,n,u)}else if(e.isPrivateIdentifier(i)){var l=e.factory.createPropertyDeclaration(void 0,void 0,o,void 0,void 0,void 0),_=d(n);_?t.insertNodeAfter(r,_,l):t.insertNodeAtClassStart(r,n,l)}else{var p=e.getFirstConstructorWithBody(n);if(!p)return;var f=c(e.factory.createThis(),o);t.insertNodeAtConstructorEnd(r,p,f)}}function c(t,r){return e.factory.createExpressionStatement(e.factory.createAssignment(e.factory.createPropertyAccessExpression(t,r),e.factory.createIdentifier("undefined")))}function u(t,r,n){var i;if(217===n.parent.parent.kind){var a=n.parent.parent,o=n.parent===a.left?a.right:a.left,s=t.getWidenedType(t.getBaseTypeOfLiteralType(t.getTypeAtLocation(o)));i=t.typeToTypeNode(s,r,1)}else{var c=t.getContextualType(n.parent);i=c?t.typeToTypeNode(c,void 0,1):void 0}return i||e.factory.createKeywordTypeNode(128)}function l(t,r,n,i,a,o){var s=e.factory.createPropertyDeclaration(void 0,o?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags(o)):void 0,i,void 0,a,void 0),c=d(n);c?t.insertNodeAfter(r,c,s):t.insertNodeAtClassStart(r,n,s)}function d(t){for(var r,n=0,i=t.members;n=e.ModuleKind.ES2015&&o99)&&(s=e.textChanges.ChangeTracker.with(r,(function(r){if(e.getTsConfigObjectLiteralExpression(i)){var n=[["target",e.factory.createStringLiteral("es2017")]];o===e.ModuleKind.CommonJS&&n.push(["module",e.factory.createStringLiteral("commonjs")]),t.setJsonCompilerOptionValues(r,i,n)}})),a.push(t.createCodeFixActionWithoutFixAll("fixTargetOption",s,[e.Diagnostics.Set_the_target_option_in_your_configuration_file_to_0,"es2017"]))),a.length?a:void 0}}})}(s||(s={})),function(e){!function(t){var r="fixPropertyAssignment",n=[e.Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code];function i(t,r,n){t.replaceNode(r,n,e.factory.createPropertyAssignment(n.name,n.objectAssignmentInitializer))}function a(t,r){return e.cast(e.getTokenAtPosition(t,r).parent,e.isShorthandPropertyAssignment)}t.registerCodeFix({errorCodes:n,fixIds:[r],getCodeActions:function(n){var o=a(n.sourceFile,n.span.start),s=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,o)}));return[t.createCodeFixAction(r,s,[e.Diagnostics.Change_0_to_1,"=",":"],r,[e.Diagnostics.Switch_each_misused_0_to_1,"=",":"])]},getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(e,t){return i(e,t.file,a(t.file,t.start))}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="extendsInterfaceBecomesImplements",n=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];function i(t,r){var n=e.getTokenAtPosition(t,r),i=e.getContainingClass(n).heritageClauses,a=i[0].getFirstToken();return 93===a.kind?{extendsToken:a,heritageClauses:i}:void 0}function a(t,r,n,i){if(t.replaceNode(r,n,e.factory.createToken(116)),2===i.length&&93===i[0].token&&116===i[1].token){var a=i[1].getFirstToken(),o=a.getFullStart();t.replaceRange(r,{pos:o,end:o},e.factory.createToken(27));for(var s=r.text,c=a.end;c":">","}":"}"};function o(t,r,n,i,o){var s=n.getText()[i];if(function(t){return e.hasProperty(a,t)}(s)){var c=o?a[s]:"{"+e.quote(n,r,s)+"}";t.replaceRangeWithText(n,{pos:i,end:i+1},c)}}}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="unusedIdentifier",n="unusedIdentifier_prefix",i="unusedIdentifier_delete",a="unusedIdentifier_deleteImports",o="unusedIdentifier_infer",s=[e.Diagnostics._0_is_declared_but_its_value_is_never_read.code,e.Diagnostics._0_is_declared_but_never_used.code,e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code,e.Diagnostics.All_imports_in_import_declaration_are_unused.code,e.Diagnostics.All_destructured_elements_are_unused.code,e.Diagnostics.All_variables_are_unused.code,e.Diagnostics.All_type_parameters_are_unused.code];function c(t,r,n){t.replaceNode(r,n.parent,e.factory.createKeywordTypeNode(152))}function u(n,a){return t.createCodeFixAction(r,n,a,i,e.Diagnostics.Delete_all_unused_declarations)}function l(t,r,n){t.delete(r,e.Debug.checkDefined(e.cast(n.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,"The type parameter to delete should exist"))}function d(e){return 99===e.kind||78===e.kind&&(266===e.parent.kind||263===e.parent.kind)}function _(t){return 99===t.kind?e.tryCast(t.parent,e.isImportDeclaration):void 0}function p(t,r){return e.isVariableDeclarationList(r.parent)&&e.first(r.parent.getChildren(t))===r}function f(e,t,r){e.delete(t,233===r.parent.kind?r.parent:r)}function g(t,r,n,i){r!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(135===i.kind&&(i=e.cast(i.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(i)&&function(e){switch(e.parent.kind){case 161:case 160:return!0;case 250:switch(e.parent.parent.parent.kind){case 240:case 239:return!0}}return!1}(i)&&(t.replaceNode(n,i,e.factory.createIdentifier("_"+i.text)),e.isParameter(i.parent)&&e.getJSDocParameterTags(i.parent).forEach((function(r){e.isIdentifier(r.name)&&t.replaceNode(n,r.name,e.factory.createIdentifier("_"+r.name.text))}))))}function m(t,r,n,i,a,o,s,c){!function(t,r,n,i,a,o,s,c){var u=t.parent;if(e.isParameter(u))!function(t,r,n,i,a,o,s,c){void 0===c&&(c=!1);(function(t,r,n,i,a,o,s){var c=n.parent;switch(c.kind){case 166:case 167:var u=c.parameters.indexOf(n),l=e.isMethodDeclaration(c)?c.name:c,d=e.FindAllReferences.Core.getReferencedSymbolsForNode(c.pos,l,a,i,o);if(d)for(var _=0,p=d;_u,h=e.isPropertyAccessExpression(m.node.parent)&&e.isSuperKeyword(m.node.parent.expression)&&e.isCallExpression(m.node.parent.parent)&&m.node.parent.parent.arguments.length>u,D=(e.isMethodDeclaration(m.node.parent)||e.isMethodSignature(m.node.parent))&&m.node.parent!==n.parent&&m.node.parent.parameters.length>u;if(y||h||D)return!1}}return!0;case 252:return!c.name||!function(t,r,n){return!!e.FindAllReferences.Core.eachSymbolReferenceInFile(n,t,r,(function(t){return e.isIdentifier(t)&&e.isCallExpression(t.parent)&&t.parent.arguments.indexOf(t)>=0}))}(t,r,c.name)||v(c,n,s);case 209:case 210:return v(c,n,s);case 169:return!1;default:return e.Debug.failBadSyntaxKind(c)}})(i,r,n,a,o,s,c)&&(n.modifiers&&n.modifiers.length>0&&(!e.isIdentifier(n.name)||e.FindAllReferences.Core.isSymbolReferencedInFile(n.name,i,r))?n.modifiers.forEach((function(e){return t.deleteModifier(r,e)})):!n.initializer&&y(n,i,a)&&t.delete(r,n))}(r,n,u,i,a,o,s,c);else if(!(c&&e.isIdentifier(t)&&e.FindAllReferences.Core.isSymbolReferencedInFile(t,i,n))){var l=e.isImportClause(u)?t:e.isComputedPropertyName(u)?u.parent:u;e.Debug.assert(l!==n,"should not delete whole source file"),r.delete(n,l)}}(r,n,t,i,a,o,s,c),e.isIdentifier(r)&&e.FindAllReferences.Core.eachSymbolReferenceInFile(r,i,t,(function(r){e.isPropertyAccessExpression(r.parent)&&r.parent.name===r&&(r=r.parent),!c&&function(t){return(e.isBinaryExpression(t.parent)&&t.parent.left===t||(e.isPostfixUnaryExpression(t.parent)||e.isPrefixUnaryExpression(t.parent))&&t.parent.operand===t)&&e.isExpressionStatement(t.parent.parent)}(r)&&n.delete(t,r.parent.parent)}))}function y(t,r,n){var i=t.parent.parameters.indexOf(t);return!e.FindAllReferences.Core.someSignatureUsage(t.parent,n,r,(function(e,t){return!t||t.arguments.length>i}))}function v(t,r,n){var i=t.parameters,a=i.indexOf(r);return e.Debug.assert(-1!==a,"The parameter should already be in the list"),n?i.slice(a+1).every((function(t){return e.isIdentifier(t.name)&&!t.symbol.isReferenced})):a===i.length-1}t.registerCodeFix({errorCodes:s,getCodeActions:function(i){var s=i.errorCode,y=i.sourceFile,v=i.program,h=i.cancellationToken,D=v.getTypeChecker(),x=v.getSourceFiles(),b=e.getTokenAtPosition(y,i.span.start);if(e.isJSDocTemplateTag(b))return[u(e.textChanges.ChangeTracker.with(i,(function(e){return e.delete(y,b)})),e.Diagnostics.Remove_template_tag)];if(29===b.kind)return[u(E=e.textChanges.ChangeTracker.with(i,(function(e){return l(e,y,b)})),e.Diagnostics.Remove_type_parameters)];var S=_(b);if(S){var E=e.textChanges.ChangeTracker.with(i,(function(e){return e.delete(y,S)}));return[t.createCodeFixAction(r,E,[e.Diagnostics.Remove_import_from_0,e.showModuleSpecifier(S)],a,e.Diagnostics.Delete_all_unused_imports)]}if(d(b)&&(F=e.textChanges.ChangeTracker.with(i,(function(e){return m(y,b,e,D,x,v,h,!1)}))).length)return[t.createCodeFixAction(r,F,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,b.getText(y)],a,e.Diagnostics.Delete_all_unused_imports)];if(e.isObjectBindingPattern(b.parent)||e.isArrayBindingPattern(b.parent)){if(e.isParameter(b.parent.parent)){var T=b.parent.elements,C=[T.length>1?e.Diagnostics.Remove_unused_declarations_for_Colon_0:e.Diagnostics.Remove_unused_declaration_for_Colon_0,e.map(T,(function(e){return e.getText(y)})).join(", ")];return[u(e.textChanges.ChangeTracker.with(i,(function(t){return function(t,r,n){e.forEach(n.elements,(function(e){return t.delete(r,e)}))}(t,y,b.parent)})),C)]}return[u(e.textChanges.ChangeTracker.with(i,(function(e){return e.delete(y,b.parent.parent)})),e.Diagnostics.Remove_unused_destructuring_declaration)]}if(p(y,b))return[u(e.textChanges.ChangeTracker.with(i,(function(e){return f(e,y,b.parent)})),e.Diagnostics.Remove_variable_statement)];var k=[];if(135===b.kind){E=e.textChanges.ChangeTracker.with(i,(function(e){return c(e,y,b)}));var A=e.cast(b.parent,e.isInferTypeNode).typeParameter.name.text;k.push(t.createCodeFixAction(r,E,[e.Diagnostics.Replace_infer_0_with_unknown,A],o,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var F;if((F=e.textChanges.ChangeTracker.with(i,(function(e){return m(y,b,e,D,x,v,h,!1)}))).length){A=e.isComputedPropertyName(b.parent)?b.parent:b;k.push(u(F,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,A.getText(y)]))}}var N=e.textChanges.ChangeTracker.with(i,(function(e){return g(e,s,y,b)}));return N.length&&k.push(t.createCodeFixAction(r,N,[e.Diagnostics.Prefix_0_with_an_underscore,b.getText(y)],n,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),k},fixIds:[n,i,a,o],getAllCodeActions:function(r){var u=r.sourceFile,v=r.program,h=r.cancellationToken,D=v.getTypeChecker(),x=v.getSourceFiles();return t.codeFixAll(r,s,(function(t,s){var b=e.getTokenAtPosition(u,s.start);switch(r.fixId){case n:g(t,s.code,u,b);break;case a:var S=_(b);S?t.delete(u,S):d(b)&&m(u,b,t,D,x,v,h,!0);break;case i:if(135===b.kind||d(b))break;if(e.isJSDocTemplateTag(b))t.delete(u,b);else if(29===b.kind)l(t,u,b);else if(e.isObjectBindingPattern(b.parent)){if(b.parent.parent.initializer)break;e.isParameter(b.parent.parent)&&!y(b.parent.parent,D,x)||t.delete(u,b.parent.parent)}else{if(e.isArrayBindingPattern(b.parent.parent)&&b.parent.parent.parent.initializer)break;p(u,b)?f(t,u,b.parent):m(u,b,t,D,x,v,h,!0)}break;case o:135===b.kind&&c(t,u,b);break;default:e.Debug.fail(JSON.stringify(r.fixId))}}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="fixUnreachableCode",n=[e.Diagnostics.Unreachable_code_detected.code];function i(t,r,n,i,a){var o=e.getTokenAtPosition(r,n),s=e.findAncestor(o,e.isStatement);if(s.getStart(r)!==o.getStart(r)){var c=JSON.stringify({statementKind:e.Debug.formatSyntaxKind(s.kind),tokenKind:e.Debug.formatSyntaxKind(o.kind),errorCode:a,start:n,length:i});e.Debug.fail("Token and statement should start at the same point. "+c)}var u=(e.isBlock(s.parent)?s.parent:s).parent;if(!e.isBlock(s.parent)||s===e.first(s.parent.statements))switch(u.kind){case 235:if(u.elseStatement){if(e.isBlock(s.parent))break;return void t.replaceNode(r,s,e.factory.createBlock(e.emptyArray))}case 237:case 238:return void t.delete(r,u)}if(e.isBlock(s.parent)){var l=n+i,d=e.Debug.checkDefined(function(e,t){for(var r,n=0,i=e;nM.length)B(S,f.getSignatureFromDeclaration(_[_.length-1]),h,y,o(S));else e.Debug.assert(_.length===M.length,"Declarations and signatures should match count"),l(function(t,n,i,s,c,u,l,d){for(var _=s[0],p=s[0].minArgumentCount,f=!1,g=0,m=s;g=_.parameters.length&&(!e.signatureHasRestParameter(y)||e.signatureHasRestParameter(_))&&(_=y)}var v=_.parameters.length-(e.signatureHasRestParameter(_)?1:0),h=_.parameters.map((function(e){return e.name})),D=a(v,h,void 0,p,!1);if(f){var x=e.factory.createArrayTypeNode(e.factory.createKeywordTypeNode(128)),b=e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),h[v]||"rest",v>=p?e.factory.createToken(57):void 0,x,void 0);D.push(b)}return function(t,r,n,i,a,s,c){return e.factory.createMethodDeclaration(void 0,t,void 0,r,n?e.factory.createToken(57):void 0,i,a,s,o(c))}(l,c,u,void 0,D,function(t,n,i,a){if(e.length(t)){var o=n.getUnionType(e.map(t,n.getReturnTypeOfSignature));return n.typeToTypeNode(o,a,void 0,r(i))}}(s,t,n,i),d)}(f,s,n,M,y,x,h,S))}}function B(t,i,a,o,c){var _=function(t,n,i,a,o,s,c,u,l){var _=t.program,f=_.getTypeChecker(),g=e.getEmitScriptTarget(_.getCompilerOptions()),m=1073742081|(0===n?268435456:0),y=f.signatureToSignatureDeclaration(i,166,a,m,r(t));if(!y)return;var v=y.typeParameters,h=y.parameters,D=y.type;if(l){if(v){var x=e.sameMap(v,(function(t){var r,n=t.constraint,i=t.default;n&&((r=d(n,g))&&(n=r.typeNode,p(l,r.symbols)));i&&((r=d(i,g))&&(i=r.typeNode,p(l,r.symbols)));return e.factory.updateTypeParameterDeclaration(t,t.name,n,i)}));v!==x&&(v=e.setTextRange(e.factory.createNodeArray(x,v.hasTrailingComma),v))}var b=e.sameMap(h,(function(t){var r=d(t.type,g),n=t.type;return r&&(n=r.typeNode,p(l,r.symbols)),e.factory.updateParameterDeclaration(t,t.decorators,t.modifiers,t.dotDotDotToken,t.name,t.questionToken,n,t.initializer)}));if(h!==b&&(h=e.setTextRange(e.factory.createNodeArray(b,h.hasTrailingComma),h)),D){var S=d(D,g);S&&(D=S.typeNode,p(l,S.symbols))}}return e.factory.updateMethodDeclaration(y,void 0,o,y.asteriskToken,s,c?e.factory.createToken(57):void 0,v,h,D,u)}(s,t,i,n,a,o,x,c,u);_&&l(_)}}function i(t,r,n,i,a,o,s){var c=t.typeToTypeNode(n,i,o,s);if(c&&e.isImportTypeNode(c)){var u=d(c,a);if(u)return p(r,u.symbols),u.typeNode}return c}function a(t,r,n,i,a){for(var o=[],s=0;s=i?e.factory.createToken(57):void 0,a?void 0:n&&n[s]||e.factory.createKeywordTypeNode(128),void 0);o.push(c)}return o}function o(t){return s(e.Diagnostics.Method_not_implemented.message,t)}function s(t,r){return e.factory.createBlock([e.factory.createThrowStatement(e.factory.createNewExpression(e.factory.createIdentifier("Error"),void 0,[e.factory.createStringLiteral(t,0===r)]))],!0)}function c(t,r,n){var i=e.getTsConfigObjectLiteralExpression(r);if(i){var a=l(i,"compilerOptions");if(void 0!==a){var o=a.initializer;if(e.isObjectLiteralExpression(o))for(var s=0,c=n;s0)return[t.createCodeFixAction(r,a,e.Diagnostics.Convert_to_a_bigint_numeric_literal,r,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(e,t){return i(e,t.file,t)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="fixAddModuleReferTypeMissingTypeof",n=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];function i(t,r){var n=e.getTokenAtPosition(t,r);return e.Debug.assert(99===n.kind,"This token should be an ImportKeyword"),e.Debug.assert(196===n.parent.kind,"Token parent should be an ImportType"),n.parent}function a(t,r,n){var i=e.factory.updateImportTypeNode(n,n.argument,n.qualifier,n.typeArguments,!0);t.replaceNode(r,n,i)}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var o=n.sourceFile,s=n.span,c=i(o,s.start),u=e.textChanges.ChangeTracker.with(n,(function(e){return a(e,o,c)}));return[t.createCodeFixAction(r,u,e.Diagnostics.Add_missing_typeof,r,e.Diagnostics.Add_missing_typeof)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(t,r){return a(t,e.sourceFile,i(r.file,r.start))}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="wrapJsxInFragment",n=[e.Diagnostics.JSX_expressions_must_have_one_parent_element.code];function i(t,r){var n=e.getTokenAtPosition(t,r).parent.parent;if((e.isBinaryExpression(n)||(n=n.parent,e.isBinaryExpression(n)))&&e.nodeIsMissing(n.operatorToken))return n}function a(t,r,n){var i=function(t){var r=[],n=t;for(;;){if(e.isBinaryExpression(n)&&e.nodeIsMissing(n.operatorToken)&&27===n.operatorToken.kind){if(r.push(n.left),e.isJsxChild(n.right))return r.push(n.right),r;if(e.isBinaryExpression(n.right)){n=n.right;continue}return}return}}(n);i&&t.replaceNode(r,n,e.factory.createJsxFragment(e.factory.createJsxOpeningFragment(),i,e.factory.createJsxJsxClosingFragment()))}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var o=n.program.getCompilerOptions().jsx;if(2===o||3===o){var s=n.sourceFile,c=n.span,u=i(s,c.start);if(u){var l=e.textChanges.ChangeTracker.with(n,(function(e){return a(e,s,u)}));return[t.createCodeFixAction(r,l,e.Diagnostics.Wrap_in_JSX_fragment,r,e.Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]}}},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(t,r){var n=i(e.sourceFile,r.start);n&&a(t,e.sourceFile,n)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(r){var n="fixConvertToMappedObjectType",i=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_union_type_Consider_using_a_mapped_object_type_instead.code];function a(t,r){var n=e.getTokenAtPosition(t,r),i=e.cast(n.parent.parent,e.isIndexSignatureDeclaration);if(!e.isClassDeclaration(i.parent))return{indexSignature:i,container:e.isInterfaceDeclaration(i.parent)?i.parent:e.cast(i.parent.parent,e.isTypeAliasDeclaration)}}function o(r,n,i){var a=i.indexSignature,o=i.container,s=(e.isInterfaceDeclaration(o)?o.members:o.type.members).filter((function(t){return!e.isIndexSignatureDeclaration(t)})),c=e.first(a.parameters),u=e.factory.createTypeParameterDeclaration(e.cast(c.name,e.isIdentifier),c.type),l=e.factory.createMappedTypeNode(e.hasEffectiveReadonlyModifier(a)?e.factory.createModifier(142):void 0,u,void 0,a.questionToken,a.type),d=e.factory.createIntersectionTypeNode(t(t(t([],e.getAllSuperTypeNodes(o)),[l]),s.length?[e.factory.createTypeLiteralNode(s)]:e.emptyArray));r.replaceNode(n,o,function(t,r){return e.factory.createTypeAliasDeclaration(t.decorators,t.modifiers,t.name,t.typeParameters,r)}(o,d))}r.registerCodeFix({errorCodes:i,getCodeActions:function(t){var i=t.sourceFile,s=t.span,c=a(i,s.start);if(c){var u=e.textChanges.ChangeTracker.with(t,(function(e){return o(e,i,c)})),l=e.idText(c.container.name);return[r.createCodeFixAction(n,u,[e.Diagnostics.Convert_0_to_mapped_object_type,l],n,[e.Diagnostics.Convert_0_to_mapped_object_type,l])]}},fixIds:[n],getAllCodeActions:function(e){return r.codeFixAll(e,i,(function(e,t){var r=a(t.file,t.start);r&&o(e,t.file,r)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){var t,r,n;t=e.codefix||(e.codefix={}),r="removeAccidentalCallParentheses",n=[e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code],t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var i=e.findAncestor(e.getTokenAtPosition(n.sourceFile,n.span.start),e.isCallExpression);if(i){var a=e.textChanges.ChangeTracker.with(n,(function(e){e.deleteRange(n.sourceFile,{pos:i.expression.end,end:i.end})}));return[t.createCodeFixActionWithoutFixAll(r,a,e.Diagnostics.Remove_parentheses)]}},fixIds:[r]})}(s||(s={})),function(e){!function(t){var r="removeUnnecessaryAwait",n=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];function i(t,r,n){var i=e.tryCast(e.getTokenAtPosition(r,n.start),(function(e){return 130===e.kind})),a=i&&e.tryCast(i.parent,e.isAwaitExpression);if(a){var o=a;if(e.isParenthesizedExpression(a.parent)){var s=e.getLeftmostExpression(a.expression,!1);if(e.isIdentifier(s)){var c=e.findPrecedingToken(a.parent.pos,r);c&&102!==c.kind&&(o=a.parent)}}t.replaceNode(r,o,a.expression)}}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span)}));if(a.length>0)return[t.createCodeFixAction(r,a,e.Diagnostics.Remove_unnecessary_await,r,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(e,t){return i(e,t.file,t)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r=[e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],n="splitTypeOnlyImport";function i(t,r){return e.findAncestor(e.getTokenAtPosition(t,r.start),e.isImportDeclaration)}function a(t,r,n){if(r){var i=e.Debug.checkDefined(r.importClause);t.replaceNode(n.sourceFile,r,e.factory.updateImportDeclaration(r,r.decorators,r.modifiers,e.factory.updateImportClause(i,i.isTypeOnly,i.name,void 0),r.moduleSpecifier)),t.insertNodeAfter(n.sourceFile,r,e.factory.createImportDeclaration(void 0,void 0,e.factory.updateImportClause(i,i.isTypeOnly,void 0,i.namedBindings),r.moduleSpecifier))}}t.registerCodeFix({errorCodes:r,fixIds:[n],getCodeActions:function(r){var o=e.textChanges.ChangeTracker.with(r,(function(e){return a(e,i(r.sourceFile,r.span),r)}));if(o.length)return[t.createCodeFixAction(n,o,e.Diagnostics.Split_into_two_separate_import_declarations,n,e.Diagnostics.Split_all_invalid_type_only_imports)]},getAllCodeActions:function(e){return t.codeFixAll(e,r,(function(t,r){a(t,i(e.sourceFile,r),e)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){var t,r,n;t=e.codefix||(e.codefix={}),r="fixConvertConstToLet",n=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code],t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var i=n.sourceFile,a=n.span,o=n.program,s=function(t,r,n){var i=e.getTokenAtPosition(t,r),a=n.getTypeChecker().getSymbolAtLocation(i);if(null==a?void 0:a.valueDeclaration)return a.valueDeclaration.parent.parent}(i,a.start,o),c=e.textChanges.ChangeTracker.with(n,(function(e){return function(e,t,r){if(r){var n=r.getStart();e.replaceRangeWithText(t,{pos:n,end:n+5},"let")}}(e,i,s)}));return[t.createCodeFixAction(r,c,e.Diagnostics.Convert_const_to_let,r,e.Diagnostics.Convert_const_to_let)]},fixIds:[r]})}(s||(s={})),function(e){!function(t){var r="fixExpectedComma",n=[e.Diagnostics._0_expected.code];function i(t,r,n){var i=e.getTokenAtPosition(t,r);return 26===i.kind&&i.parent&&(e.isObjectLiteralExpression(i.parent)||e.isArrayLiteralExpression(i.parent))?{node:i}:void 0}function a(t,r,n){var i=n.node,a=e.factory.createToken(27);t.replaceNode(r,i,a)}t.registerCodeFix({errorCodes:n,getCodeActions:function(n){var o=n.sourceFile,s=i(o,n.span.start,n.errorCode);if(s){var c=e.textChanges.ChangeTracker.with(n,(function(e){return a(e,o,s)}));return[t.createCodeFixAction(r,c,[e.Diagnostics.Change_0_to_1,";",","],r,[e.Diagnostics.Change_0_to_1,";",","])]}},fixIds:[r],getAllCodeActions:function(e){return t.codeFixAll(e,n,(function(t,r){var n=i(r.file,r.start,r.code);n&&a(t,e.sourceFile,n)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var r="addVoidToPromise",n=[e.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];function i(t,r,n,i,a){var o=e.getTokenAtPosition(r,n.start);if(e.isIdentifier(o)&&e.isCallExpression(o.parent)&&o.parent.expression===o&&0===o.parent.arguments.length){var s=i.getTypeChecker(),c=s.getSymbolAtLocation(o),u=null==c?void 0:c.valueDeclaration;if(u&&e.isParameter(u)&&e.isNewExpression(u.parent.parent)&&!(null==a?void 0:a.has(u))){null==a||a.add(u);var l=function(t){var r;if(!e.isInJSFile(t))return t.typeArguments;if(e.isParenthesizedExpression(t.parent)){var n=null===(r=e.getJSDocTypeTag(t.parent))||void 0===r?void 0:r.typeExpression.type;if(n&&e.isTypeReferenceNode(n)&&e.isIdentifier(n.typeName)&&"Promise"===e.idText(n.typeName))return n.typeArguments}}(u.parent.parent);if(e.some(l)){var d=l[0],_=!e.isUnionTypeNode(d)&&!e.isParenthesizedTypeNode(d)&&e.isParenthesizedTypeNode(e.factory.createUnionTypeNode([d,e.factory.createKeywordTypeNode(113)]).types[0]);_&&t.insertText(r,d.pos,"("),t.insertText(r,d.end,_?") | void":" | void")}else{var p=s.getResolvedSignature(o.parent),f=null==p?void 0:p.parameters[0],g=f&&s.getTypeOfSymbolAtLocation(f,u.parent.parent);e.isInJSFile(u)?(!g||3&g.flags)&&(t.insertText(r,u.parent.parent.end,")"),t.insertText(r,e.skipTrivia(r.text,u.parent.parent.pos),"/** @type {Promise} */(")):(!g||2&g.flags)&&t.insertText(r,u.parent.parent.expression.end,"")}}}}t.registerCodeFix({errorCodes:n,fixIds:[r],getCodeActions:function(n){var a=e.textChanges.ChangeTracker.with(n,(function(e){return i(e,n.sourceFile,n.span,n.program)}));if(a.length>0)return[t.createCodeFixAction("addVoidToPromise",a,e.Diagnostics.Add_void_to_Promise_resolved_without_a_value,r,e.Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:function(r){return t.codeFixAll(r,n,(function(t,n){return i(t,n.file,n,r.program,new e.Set)}))}})}(e.codefix||(e.codefix={}))}(s||(s={})),function(e){!function(t){var n="Convert export",i={name:"Convert default export to named export",description:e.Diagnostics.Convert_default_export_to_named_export.message,kind:"refactor.rewrite.export.named"},a={name:"Convert named export to default export",description:e.Diagnostics.Convert_named_export_to_default_export.message,kind:"refactor.rewrite.export.default"};function o(t,r){void 0===r&&(r=!0);var n=t.file,i=e.getRefactorContextSpan(t),a=e.getTokenAtPosition(n,i.start),o=a.parent&&1&e.getSyntacticModifierFlags(a.parent)&&r?a.parent:e.getParentNodeInSpan(a,n,i);if(!(o&&(e.isSourceFile(o.parent)||e.isModuleBlock(o.parent)&&e.isAmbientModule(o.parent.parent))))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_export_statement)};var s=e.isSourceFile(o.parent)?o.parent.symbol:o.parent.parent.symbol,c=e.getSyntacticModifierFlags(o)||(e.isExportAssignment(o)&&!o.isExportEquals?513:0),u=!!(512&c);if(!(1&c)||!u&&s.exports.has("default"))return{error:e.getLocaleSpecificMessage(e.Diagnostics.This_file_already_has_a_default_export)};switch(o.kind){case 252:case 253:case 254:case 256:case 255:case 257:return(_=o).name&&e.isIdentifier(_.name)?{exportNode:_,exportName:_.name,wasDefault:u,exportingModuleSymbol:s}:void 0;case 233:var l=o;if(!(2&l.declarationList.flags)||1!==l.declarationList.declarations.length)return;var d=e.first(l.declarationList.declarations);if(!d.initializer)return;return e.Debug.assert(!u,"Can't have a default flag here"),e.isIdentifier(d.name)?{exportNode:l,exportName:d.name,wasDefault:u,exportingModuleSymbol:s}:void 0;case 267:var _,p=(_=o).expression;return _.isExportEquals?void 0:{exportNode:_,exportName:p,wasDefault:u,exportingModuleSymbol:s};default:return}}function s(t,r){return e.factory.createImportSpecifier(t===r?void 0:e.factory.createIdentifier(t),e.factory.createIdentifier(r))}function c(t,r){return e.factory.createExportSpecifier(t===r?void 0:e.factory.createIdentifier(t),e.factory.createIdentifier(r))}t.registerRefactor(n,{kinds:[i.kind,a.kind],getAvailableActions:function(s){var c=o(s,"invoked"===s.triggerReason);if(!c)return e.emptyArray;if(!t.isRefactorErrorInfo(c)){var u=c.wasDefault?i:a;return[{name:n,description:u.description,actions:[u]}]}return s.preferences.provideRefactorNotApplicableReason?[{name:n,description:e.Diagnostics.Convert_default_export_to_named_export.message,actions:[r(r({},i),{notApplicableReason:c.error}),r(r({},a),{notApplicableReason:c.error})]}]:e.emptyArray},getEditsForAction:function(r,n){e.Debug.assert(n===i.name||n===a.name,"Unexpected action name");var u=o(r);return e.Debug.assert(u&&!t.isRefactorErrorInfo(u),"Expected applicable refactor info"),{edits:e.textChanges.ChangeTracker.with(r,(function(t){return function(t,r,n,i,a){(function(t,r,n,i){var a=r.wasDefault,o=r.exportNode,s=r.exportName;if(a)if(e.isExportAssignment(o)&&!o.isExportEquals){var u=o.expression,l=c(u.text,u.text);n.replaceNode(t,o,e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([l])))}else n.delete(t,e.Debug.checkDefined(e.findModifier(o,87),"Should find a default keyword in modifier list"));else{var d=e.Debug.checkDefined(e.findModifier(o,92),"Should find an export keyword in modifier list");switch(o.kind){case 252:case 253:case 254:n.insertNodeAfter(t,d,e.factory.createToken(87));break;case 233:var _=e.first(o.declarationList.declarations);if(!e.FindAllReferences.Core.isSymbolReferencedInFile(s,i,t)&&!_.type){n.replaceNode(t,o,e.factory.createExportDefault(e.Debug.checkDefined(_.initializer,"Initializer was previously known to be present")));break}case 256:case 255:case 257:n.deleteModifier(t,d),n.insertNodeAfter(t,o,e.factory.createExportDefault(e.factory.createIdentifier(s.text)));break;default:e.Debug.fail("Unexpected exportNode kind "+o.kind)}}})(t,n,i,r.getTypeChecker()),function(t,r,n,i){var a=r.wasDefault,o=r.exportName,u=r.exportingModuleSymbol,l=t.getTypeChecker(),d=e.Debug.checkDefined(l.getSymbolAtLocation(o),"Export name should resolve to a symbol");e.FindAllReferences.Core.eachExportReference(t.getSourceFiles(),l,i,d,u,o.text,a,(function(t){var r=t.getSourceFile();a?function(t,r,n,i){var a=r.parent;switch(a.kind){case 202:n.replaceNode(t,r,e.factory.createIdentifier(i));break;case 266:case 271:var o=a;n.replaceNode(t,o,s(i,o.name.text));break;case 263:var c=a;e.Debug.assert(c.name===r,"Import clause name should match provided ref");o=s(i,r.text);var u=c.namedBindings;if(u)if(264===u.kind){n.deleteRange(t,{pos:r.getStart(t),end:u.getStart(t)});var l=e.isStringLiteral(c.parent.moduleSpecifier)?e.quotePreferenceFromString(c.parent.moduleSpecifier,t):1,d=e.makeImport(void 0,[s(i,r.text)],c.parent.moduleSpecifier,l);n.insertNodeAfter(t,c.parent,d)}else n.delete(t,r),n.insertNodeAtEndOfList(t,u.elements,o);else n.replaceNode(t,r,e.factory.createNamedImports([o]));break;default:e.Debug.failBadSyntaxKind(a)}}(r,t,n,o.text):function(t,r,n){var i=r.parent;switch(i.kind){case 202:n.replaceNode(t,r,e.factory.createIdentifier("default"));break;case 266:var a=e.factory.createIdentifier(i.name.text);1===i.parent.elements.length?n.replaceNode(t,i.parent,a):(n.delete(t,i),n.insertNodeBefore(t,i.parent,a));break;case 271:n.replaceNode(t,i,c("default",i.name.text));break;default:e.Debug.assertNever(i,"Unexpected parent kind "+i.kind)}}(r,t,n)}))}(r,n,i,a)}(r.file,r.program,u,t,r.cancellationToken)})),renameFilename:void 0,renameLocation:void 0}}})}(e.refactor||(e.refactor={}))}(s||(s={})),function(e){!function(t){var n="Convert import",i={name:"Convert namespace import to named imports",description:e.Diagnostics.Convert_namespace_import_to_named_imports.message,kind:"refactor.rewrite.import.named"},a={name:"Convert named imports to namespace import",description:e.Diagnostics.Convert_named_imports_to_namespace_import.message,kind:"refactor.rewrite.import.namespace"};function o(t,r){void 0===r&&(r=!0);var n=t.file,i=e.getRefactorContextSpan(t),a=e.getTokenAtPosition(n,i.start),o=r?e.findAncestor(a,e.isImportDeclaration):e.getParentNodeInSpan(a,n,i);if(!o||!e.isImportDeclaration(o))return{error:"Selection is not an import declaration."};if(!(o.getEnd()=u.pos?_.getEnd():u.getEnd()),g=o?function(e){for(;e.parent;){if(c(e)&&!c(e.parent))return e;e=e.parent}}(u):function(e,t){for(;e.parent;){if(c(e)&&0!==t.length&&e.end>=t.start+t.length)return e;e=e.parent}}(u,f),m=g&&c(g)?function(t){if(s(t))return t;if(e.isVariableStatement(t)){var r=e.getSingleVariableOfVariableStatement(t),n=null==r?void 0:r.initializer;return n&&s(n)?n:void 0}return t.expression&&s(t.expression)?t.expression:void 0}(g):void 0;if(!m)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var y=i.getTypeChecker();return e.isConditionalExpression(m)?function(t,r){var n=t.condition,i=p(t.whenTrue);if(!i||r.isNullableType(r.getTypeAtLocation(i)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};if((e.isPropertyAccessExpression(n)||e.isIdentifier(n))&&d(n,i.expression))return{finalExpression:i,occurrences:[n],expression:t};if(e.isBinaryExpression(n)){var a=l(i.expression,n);return a?{finalExpression:i,occurrences:a,expression:t}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}}(m,y):function(t){if(55!==t.operatorToken.kind)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_logical_AND_access_chains)};var r=p(t.right);if(!r)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var n=l(r.expression,t.left);return n?{finalExpression:r,occurrences:n,expression:t}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}(m)}}function l(t,r){for(var n=[];e.isBinaryExpression(r)&&55===r.operatorToken.kind;){var i=d(e.skipParentheses(t),e.skipParentheses(r.right));if(!i)break;n.push(i),t=i,r=r.left}var a=d(t,r);return a&&n.push(a),n.length>0?n:void 0}function d(t,r){if(e.isIdentifier(r)||e.isPropertyAccessExpression(r)||e.isElementAccessExpression(r))return function(t,r){for(;(e.isCallExpression(t)||e.isPropertyAccessExpression(t)||e.isElementAccessExpression(t))&&_(t)!==_(r);)t=t.expression;for(;e.isPropertyAccessExpression(t)&&e.isPropertyAccessExpression(r)||e.isElementAccessExpression(t)&&e.isElementAccessExpression(r);){if(_(t)!==_(r))return!1;t=t.expression,r=r.expression}return e.isIdentifier(t)&&e.isIdentifier(r)&&t.getText()===r.getText()}(t,r)?r:void 0}function _(t){return e.isIdentifier(t)||e.isStringOrNumericLiteralLike(t)?t.getText():e.isPropertyAccessExpression(t)?_(t.name):e.isElementAccessExpression(t)?_(t.argumentExpression):void 0}function p(t){return t=e.skipParentheses(t),e.isBinaryExpression(t)?p(t.left):(e.isPropertyAccessExpression(t)||e.isElementAccessExpression(t)||e.isCallExpression(t))&&!e.isOptionalChain(t)?t:void 0}function f(t,r,n){if(e.isPropertyAccessExpression(r)||e.isElementAccessExpression(r)||e.isCallExpression(r)){var i=f(t,r.expression,n),a=n.length>0?n[n.length-1]:void 0,o=(null==a?void 0:a.getText())===r.expression.getText();if(o&&n.pop(),e.isCallExpression(r))return o?e.factory.createCallChain(i,e.factory.createToken(28),r.typeArguments,r.arguments):e.factory.createCallChain(i,r.questionDotToken,r.typeArguments,r.arguments);if(e.isPropertyAccessExpression(r))return o?e.factory.createPropertyAccessChain(i,e.factory.createToken(28),r.name):e.factory.createPropertyAccessChain(i,r.questionDotToken,r.name);if(e.isElementAccessExpression(r))return o?e.factory.createElementAccessChain(i,e.factory.createToken(28),r.argumentExpression):e.factory.createElementAccessChain(i,r.questionDotToken,r.argumentExpression)}return r}t.registerRefactor(i,{kinds:[o.kind],getAvailableActions:function(n){var s=u(n,"invoked"===n.triggerReason);return s?t.isRefactorErrorInfo(s)?n.preferences.provideRefactorNotApplicableReason?[{name:i,description:a,actions:[r(r({},o),{notApplicableReason:s.error})]}]:e.emptyArray:[{name:i,description:a,actions:[o]}]:e.emptyArray},getEditsForAction:function(r,n){var i=u(r);return e.Debug.assert(i&&!t.isRefactorErrorInfo(i),"Expected applicable refactor info"),{edits:e.textChanges.ChangeTracker.with(r,(function(t){return function(t,r,n,i,a){var o=i.finalExpression,s=i.occurrences,c=i.expression,u=s[s.length-1],l=f(r,o,s);l&&(e.isPropertyAccessExpression(l)||e.isElementAccessExpression(l)||e.isCallExpression(l))&&(e.isBinaryExpression(c)?n.replaceNodeRange(t,u,o,l):e.isConditionalExpression(c)&&n.replaceNode(t,c,e.factory.createBinaryExpression(l,e.factory.createToken(60),c.whenFalse)))}(r.file,r.program.getTypeChecker(),t,i)})),renameFilename:void 0,renameLocation:void 0}}})})((t=e.refactor||(e.refactor={})).convertToOptionalChainExpression||(t.convertToOptionalChainExpression={}))}(s||(s={})),function(e){var t;(function(r){var n="Convert overload list to single signature",i=e.Diagnostics.Convert_overload_list_to_single_signature.message,a={name:n,description:i,kind:"refactor.rewrite.function.overloadList"};function o(e){switch(e.kind){case 165:case 166:case 170:case 167:case 171:case 252:return!0}return!1}function s(t,r,n){var i=e.getTokenAtPosition(t,r),a=e.findAncestor(i,o);if(a){var s=n.getTypeChecker(),c=a.symbol;if(c){var u=c.declarations;if(!(e.length(u)<=1)&&e.every(u,(function(r){return e.getSourceFileOfNode(r)===t}))&&o(u[0])){var l=u[0].kind;if(e.every(u,(function(e){return e.kind===l}))){var d=u;if(!e.some(d,(function(t){return!!t.typeParameters||e.some(t.parameters,(function(t){return!!t.decorators||!!t.modifiers||!e.isIdentifier(t.name)}))}))){var _=e.mapDefined(d,(function(e){return s.getSignatureFromDeclaration(e)}));if(e.length(_)===e.length(u)){var p=s.getReturnTypeOfSignature(_[0]);if(e.every(_,(function(e){return s.getReturnTypeOfSignature(e)===p})))return d}}}}}}}t.registerRefactor(n,{kinds:[a.kind],getEditsForAction:function(t){var r=t.file,n=t.startPosition,i=t.program,a=s(r,n,i);if(a){var o=i.getTypeChecker(),c=a[a.length-1],u=c;switch(c.kind){case 165:u=e.factory.updateMethodSignature(c,c.modifiers,c.name,c.questionToken,c.typeParameters,d(a),c.type);break;case 166:u=e.factory.updateMethodDeclaration(c,c.decorators,c.modifiers,c.asteriskToken,c.name,c.questionToken,c.typeParameters,d(a),c.type,c.body);break;case 170:u=e.factory.updateCallSignature(c,c.typeParameters,d(a),c.type);break;case 167:u=e.factory.updateConstructorDeclaration(c,c.decorators,c.modifiers,d(a),c.body);break;case 171:u=e.factory.updateConstructSignature(c,c.typeParameters,d(a),c.type);break;case 252:u=e.factory.updateFunctionDeclaration(c,c.decorators,c.modifiers,c.asteriskToken,c.name,c.typeParameters,d(a),c.type,c.body);break;default:return e.Debug.failBadSyntaxKind(c,"Unhandled signature kind in overload list conversion refactoring")}if(u!==c){var l=e.textChanges.ChangeTracker.with(t,(function(e){e.replaceNodeRange(r,a[0],a[a.length-1],u)}));return{renameFilename:void 0,renameLocation:void 0,edits:l}}}function d(t){var r=t[t.length-1];return e.isFunctionLikeDeclaration(r)&&r.body&&(t=t.slice(0,t.length-1)),e.factory.createNodeArray([e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),"args",void 0,e.factory.createUnionTypeNode(e.map(t,_)))])}function _(t){var r=e.map(t.parameters,p);return e.setEmitFlags(e.factory.createTupleTypeNode(r),e.some(r,(function(t){return!!e.length(e.getSyntheticLeadingComments(t))}))?0:1)}function p(t){e.Debug.assert(e.isIdentifier(t.name));var r=e.setTextRange(e.factory.createNamedTupleMember(t.dotDotDotToken,t.name,t.questionToken,t.type||e.factory.createKeywordTypeNode(128)),t),n=t.symbol&&t.symbol.getDocumentationComment(o);if(n){var i=e.displayPartsToString(n);i.length&&e.setSyntheticLeadingComments(r,[{text:"*\n"+i.split("\n").map((function(e){return" * "+e})).join("\n")+"\n ",kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return r}},getAvailableActions:function(t){var r=t.file,o=t.startPosition,c=t.program;return s(r,o,c)?[{name:n,description:i,actions:[a]}]:e.emptyArray}})})((t=e.refactor||(e.refactor={})).addOrRemoveBracesToArrowFunction||(t.addOrRemoveBracesToArrowFunction={}))}(s||(s={})),function(e){var t;(function(n){var i,a,o,s,c="Extract Symbol",u={name:"Extract Constant",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),kind:"refactor.extract.constant"},l={name:"Extract Function",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),kind:"refactor.extract.function"};function d(n){var i=n.kind,a=p(n.file,e.getRefactorContextSpan(n),"invoked"===n.triggerReason),o=a.targetRange;if(void 0===o){if(!a.errors||0===a.errors.length||!n.preferences.provideRefactorNotApplicableReason)return e.emptyArray;var s=[];return t.refactorKindBeginsWith(l.kind,i)&&s.push({name:c,description:l.description,actions:[r(r({},l),{notApplicableReason:F(a.errors)})]}),t.refactorKindBeginsWith(u.kind,i)&&s.push({name:c,description:u.description,actions:[r(r({},u),{notApplicableReason:F(a.errors)})]}),s}var d=function(t,r){var n=m(t,r),i=n.scopes,a=n.readsAndWrites,o=a.functionErrorsPerScope,s=a.constantErrorsPerScope;return i.map((function(t,r){var n,i,a=function(t){return e.isFunctionLikeDeclaration(t)?"inner function":e.isClassLike(t)?"method":"function"}(t),c=function(t){return e.isClassLike(t)?"readonly field":"constant"}(t),u=e.isFunctionLikeDeclaration(t)?function(t){switch(t.kind){case 167:return"constructor";case 209:case 252:return t.name?"function '"+t.name.text+"'":e.ANONYMOUS;case 210:return"arrow function";case 166:return"method '"+t.name.getText()+"'";case 168:return"'get "+t.name.getText()+"'";case 169:return"'set "+t.name.getText()+"'";default:throw e.Debug.assertNever(t,"Unexpected scope kind "+t.kind)}}(t):e.isClassLike(t)?function(e){return 253===e.kind?e.name?"class '"+e.name.text+"'":"anonymous class declaration":e.name?"class expression '"+e.name.text+"'":"anonymous class expression"}(t):function(e){return 258===e.kind?"namespace '"+e.parent.name.getText()+"'":e.externalModuleIndicator?0:1}(t);return 1===u?(n=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[a,"global"]),i=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[c,"global"])):0===u?(n=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[a,"module"]),i=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[c,"module"])):(n=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[a,u]),i=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[c,u])),0!==r||e.isClassLike(t)||(i=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[c])),{functionExtraction:{description:n,errors:o[r]},constantExtraction:{description:i,errors:s[r]}}}))}(o,n);if(void 0===d)return e.emptyArray;for(var _,f,g=[],y=new e.Map,v=[],h=new e.Map,D=0,x=0,b=d;x0;if(e.isBlock(t)&&!s&&0===i.size)return{body:e.factory.createBlock(t.statements,!0),returnValueProperty:void 0};var c=!1,u=e.factory.createNodeArray(e.isBlock(t)?t.statements.slice(0):[e.isStatement(t)?t:e.factory.createReturnStatement(t)]);if(s||i.size){var l=e.visitNodes(u,_).slice();if(s&&!a&&e.isStatement(t)){var d=h(r,n);1===d.length?l.push(e.factory.createReturnStatement(d[0].name)):l.push(e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(d)))}return{body:e.factory.createBlock(l,!0),returnValueProperty:o}}return{body:e.factory.createBlock(u,!0),returnValueProperty:void 0};function _(t){if(!c&&e.isReturnStatement(t)&&s){var a=h(r,n);return t.expression&&(o||(o="__return"),a.unshift(e.factory.createPropertyAssignment(o,e.visitNode(t.expression,_)))),1===a.length?e.factory.createReturnStatement(a[0].name):e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(a))}var u=c;c=c||e.isFunctionLikeDeclaration(t)||e.isClassLike(t);var l=i.get(e.getNodeId(t).toString()),d=l?e.getSynthesizedDeepClone(l):e.visitEachChild(t,_,e.nullTransformationContext);return c=u,d}}(t,i,u,_,!!(o.facts&a.HasReturn)),I=w.body,O=w.returnValueProperty;if(e.suppressLeadingAndTrailingTrivia(I),e.isClassLike(r)){var M=b?[]:[e.factory.createModifier(120)];o.facts&a.InStaticRegion&&M.push(e.factory.createModifier(123)),o.facts&a.IsAsyncFunction&&M.push(e.factory.createModifier(129)),P=e.factory.createMethodDeclaration(void 0,M.length?M:void 0,o.facts&a.IsGenerator?e.factory.createToken(41):void 0,E,void 0,A,T,c,I)}else P=e.factory.createFunctionDeclaration(void 0,o.facts&a.IsAsyncFunction?[e.factory.createToken(129)]:void 0,o.facts&a.IsGenerator?e.factory.createToken(41):void 0,E,A,T,c,I);var L=e.textChanges.ChangeTracker.fromContext(s),R=function(t,r){return e.find(function(t){if(e.isFunctionLikeDeclaration(t)){var r=t.body;if(e.isBlock(r))return r.statements}else{if(e.isModuleBlock(t)||e.isSourceFile(t))return t.statements;if(e.isClassLike(t))return t.members;e.assertType(t)}return e.emptyArray}(r),(function(r){return r.pos>=t&&e.isFunctionLikeDeclaration(r)&&!e.isConstructorDeclaration(r)}))}((D(o.range)?e.last(o.range):o.range).end,r);R?L.insertNodeBefore(s.file,R,P,!0):L.insertNodeAtEndOfScope(s.file,r,P),g.writeFixes(L);var B=[],j=function(t,r,n){var i=e.factory.createIdentifier(n);if(e.isClassLike(t)){var o=r.facts&a.InStaticRegion?e.factory.createIdentifier(t.name.text):e.factory.createThis();return e.factory.createPropertyAccessExpression(o,i)}return i}(r,o,x),J=e.factory.createCallExpression(j,F,C);if(o.facts&a.IsGenerator&&(J=e.factory.createYieldExpression(e.factory.createToken(41),J)),o.facts&a.IsAsyncFunction&&(J=e.factory.createAwaitExpression(J)),S(t)&&(J=e.factory.createJsxExpression(void 0,J)),i.length&&!u)if(e.Debug.assert(!O,"Expected no returnValueProperty"),e.Debug.assert(!(o.facts&a.HasReturn),"Expected RangeFacts.HasReturn flag to be unset"),1===i.length){var K=i[0];B.push(e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(e.getSynthesizedDeepClone(K.name),void 0,e.getSynthesizedDeepClone(K.type),J)],K.parent.flags)))}else{for(var z=[],U=[],V=i[0].parent.flags,q=!1,W=0,H=i;W0,"Found no members");for(var a=!0,o=0,s=i;ot)return n||i[0];if(a&&!e.isPropertyDeclaration(c)){if(void 0!==n)return c;a=!1}n=c}return void 0===n?e.Debug.fail():n}(t.pos,r);m.insertNodeBefore(o.file,D,v,!0),m.replaceNode(o.file,t,h)}else{var x=e.factory.createVariableDeclaration(d,void 0,p,f),E=function(t,r){for(var n;void 0!==t&&t!==r;){if(e.isVariableDeclaration(t)&&t.initializer===n&&e.isVariableDeclarationList(t.parent)&&t.parent.declarations.length>1)return t;n=t,t=t.parent}}(t,r);if(E)m.insertNodeBefore(o.file,E,x),h=e.factory.createIdentifier(d),m.replaceNode(o.file,t,h);else if(234===t.parent.kind&&r===e.findAncestor(t,g)){var T=e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([x],2));m.replaceNode(o.file,t.parent,T)}else T=e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([x],2)),0===(D=function(t,r){var n;e.Debug.assert(!e.isClassLike(r));for(var i=t;i!==r;i=i.parent)g(i)&&(n=i);for(i=(n||t).parent;;i=i.parent){if(b(i)){for(var a=void 0,o=0,s=i.statements;ot.pos)break;a=c}return!a&&e.isCaseClause(i)?(e.Debug.assert(e.isSwitchStatement(i.parent.parent),"Grandparent isn't a switch statement"),i.parent.parent):e.Debug.checkDefined(a,"prevStatement failed to get set")}e.Debug.assert(i!==r,"Didn't encounter a block-like before encountering scope")}}(t,r)).pos?m.insertNodeAtTopOfFile(o.file,T,!1):m.insertNodeBefore(o.file,D,T,!1),234===t.parent.kind?m.delete(o.file,t.parent):(h=e.factory.createIdentifier(d),S(t)&&(h=e.factory.createJsxExpression(void 0,h)),m.replaceNode(o.file,t,h))}var C=m.getChanges(),k=t.getSourceFile().fileName,A=e.getRenameLocation(C,k,d,!0);return{renameFilename:k,renameLocation:A,edits:C};function F(n,i){if(void 0===n)return{variableType:n,initializer:i};if(!e.isFunctionExpression(i)&&!e.isArrowFunction(i)||i.typeParameters)return{variableType:n,initializer:i};var a=u.getTypeAtLocation(t),o=e.singleOrUndefined(u.getSignaturesOfType(a,0));if(!o)return{variableType:n,initializer:i};if(o.getTypeParameters())return{variableType:n,initializer:i};for(var s=[],c=!1,l=0,d=i.parameters;l=r.start+r.length)return(o||(o=[])).push(e.createDiagnosticForNode(n,i.cannotExtractSuper)),!0}else g|=a.UsesThis;break;case 210:e.forEachChild(n,(function t(r){if(e.isThis(r))g|=a.UsesThis;else{if(e.isClassLike(r)||e.isFunctionLike(r)&&!e.isArrowFunction(r))return!1;e.forEachChild(r,t)}}));case 253:case 252:e.isSourceFile(n.parent)&&void 0===n.parent.externalModuleIndicator&&(o||(o=[])).push(e.createDiagnosticForNode(n,i.functionWillNotBeVisibleInTheNewScope));case 222:case 209:case 166:case 167:case 168:case 169:return!1}var d=u;switch(n.kind){case 235:case 248:u=0;break;case 231:n.parent&&248===n.parent.kind&&n.parent.finallyBlock===n&&(u=4);break;case 286:case 285:u|=1;break;default:e.isIterationStatement(n,!1)&&(u|=3)}switch(n.kind){case 188:case 107:g|=a.UsesThis;break;case 246:var _=n.label;(c||(c=[])).push(_.escapedText),e.forEachChild(n,t),c.pop();break;case 242:case 241:(_=n.label)?e.contains(c,_.escapedText)||(o||(o=[])).push(e.createDiagnosticForNode(n,i.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):u&(242===n.kind?1:2)||(o||(o=[])).push(e.createDiagnosticForNode(n,i.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break;case 214:g|=a.IsAsyncFunction;break;case 220:g|=a.IsGenerator;break;case 243:4&u?g|=a.HasReturn:(o||(o=[])).push(e.createDiagnosticForNode(n,i.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(n,t)}u=d}(t),o}}function f(t){return e.isStatement(t)?[t]:e.isExpressionNode(t)?e.isExpressionStatement(t.parent)?[t.parent]:t:void 0}function g(t){return e.isFunctionLikeDeclaration(t)||e.isSourceFile(t)||e.isModuleBlock(t)||e.isClassLike(t)}function m(t,r){var n=r.file,o=function(t){var r=D(t.range)?e.first(t.range):t.range;if(t.facts&a.UsesThis){var n=e.getContainingClass(r);if(n){var i=e.findAncestor(r,e.isFunctionLikeDeclaration);return i?[i,n]:[n]}}for(var o=[];;)if(161===(r=r.parent).kind&&(r=e.findAncestor(r,(function(t){return e.isFunctionLikeDeclaration(t)})).parent),g(r)&&(o.push(r),298===r.kind))return o}(t);return{scopes:o,readsAndWrites:function(t,r,n,o,s,c){var u,l,d=new e.Map,_=[],p=[],f=[],g=[],m=[],y=new e.Map,v=[],h=D(t.range)?1===t.range.length&&e.isExpressionStatement(t.range[0])?t.range[0].expression:void 0:t.range;if(void 0===h){var x=t.range,b=e.first(x).getStart(),S=e.last(x).end;l=e.createFileDiagnostic(o,b,S-b,i.expressionExpected)}else 147456&s.getTypeAtLocation(h).flags&&(l=e.createDiagnosticForNode(h,i.uselessConstantType));for(var E=0,T=r;E0){for(var w=new e.Map,I=0,O=N;void 0!==O&&I0&&(n.usages.size>0||n.typeParameterUsages.size>0)){var a=D(t.range)?t.range[0]:t.range;g[r].push(e.createDiagnosticForNode(a,i.cannotAccessVariablesFromNestedScopes))}var o,s=!1;if(_[r].usages.forEach((function(t){2===t.usage&&(s=!0,106500&t.symbol.flags&&t.symbol.valueDeclaration&&e.hasEffectiveModifier(t.symbol.valueDeclaration,64)&&(o=t.symbol.valueDeclaration))})),e.Debug.assert(D(t.range)||0===v.length,"No variable declarations expected if something was extracted"),s&&!D(t.range)){var c=e.createDiagnosticForNode(t.range,i.cannotWriteInExpression);f[r].push(c),g[r].push(c)}else o&&r>0?(c=e.createDiagnosticForNode(o,i.cannotExtractReadonlyPropertyInitializerOutsideConstructor),f[r].push(c),g[r].push(c)):u&&(c=e.createDiagnosticForNode(u,i.cannotExtractExportedEntity),f[r].push(c),g[r].push(c))},K=0;K=u)return m;if(A.set(m,u),y){for(var v=0,h=_;v=0)){var n=e.isIdentifier(r)?G(r):s.getSymbolAtLocation(r);if(n){var i=e.find(m,(function(e){return e.symbol===n}));if(i)if(e.isVariableDeclaration(i)){var a=i.symbol.id.toString();y.has(a)||(v.push(i),y.set(a,!0))}else u=u||i}e.forEachChild(r,H)}}function G(t){return t.parent&&e.isShorthandPropertyAssignment(t.parent)&&t.parent.name===t?s.getShorthandAssignmentValueSymbol(t.parent):s.getSymbolAtLocation(t)}function Y(t,r,n){if(t){var i=t.getDeclarations();if(i&&i.some((function(e){return e.parent===r})))return e.factory.createIdentifier(t.name);var a=Y(t.parent,r,n);if(void 0!==a)return n?e.factory.createQualifiedName(a,e.factory.createIdentifier(t.name)):e.factory.createPropertyAccessExpression(a,t.name)}}}(t,o,function(t,r){return D(t.range)?{pos:e.first(t.range).getStart(r),end:e.last(t.range).getEnd()}:t.range}(t,n),n,r.program.getTypeChecker(),r.cancellationToken)}}function y(e){var t,r=e.symbol;if(r&&r.declarations)for(var n=0,i=r.declarations;nn.pos}));if(-1!==a){var o=i[a];if(e.isNamedDeclaration(o)&&o.name&&e.rangeContainsRange(o.name,n))return{toMove:[i[a]],afterLast:i[a+1]};if(!(n.pos>o.getStart(r))){var s=e.findIndex(i,(function(e){return e.end>n.end}),a);if(-1===s||!(0===s||i[s].getStart(r)=2&&e.every(t,(function(t){return function(t,r){if(e.isRestParameter(t)){var n=r.getTypeAtLocation(t);if(!r.isArrayType(n)&&!r.isTupleType(n))return!1}return!t.modifiers&&!t.decorators&&e.isIdentifier(t.name)}(t,r)}))}(t.parameters,r))return!1;switch(t.kind){case 252:return m(t)&&g(t,r);case 166:if(e.isObjectLiteralExpression(t.parent)){var i=s(t.name,r);return 1===(null===(n=null==i?void 0:i.declarations)||void 0===n?void 0:n.length)&&g(t,r)}return g(t,r);case 167:return e.isClassDeclaration(t.parent)?m(t.parent)&&g(t,r):y(t.parent.parent)&&g(t,r);case 209:case 210:return y(t.parent)}return!1}(a,n)&&e.rangeContainsRange(a,i))||a.body&&e.rangeContainsRange(a.body,i)?void 0:a}function f(t){return e.isMethodSignature(t)&&(e.isInterfaceDeclaration(t.parent)||e.isTypeLiteralNode(t.parent))}function g(e,t){return!!e.body&&!t.isImplementationOfOverload(e)}function m(t){return!!t.name||!!e.findModifier(t,87)}function y(t){return e.isVariableDeclaration(t)&&e.isVarConst(t)&&e.isIdentifier(t.name)&&!t.type}function v(t){return t.length>0&&e.isThis(t[0].name)}function h(t){return v(t)&&(t=e.factory.createNodeArray(t.slice(1),t.hasTrailingComma)),t}function D(t,r){var n=h(t.parameters),i=e.isRestParameter(e.last(n)),a=i?r.slice(0,n.length-1):r,o=e.map(a,(function(t,r){var i=function(t,r){return e.isIdentifier(r)&&e.getTextOfIdentifierOrLiteral(r)===t?e.factory.createShorthandPropertyAssignment(t):e.factory.createPropertyAssignment(t,r)}(b(n[r]),t);return e.suppressLeadingAndTrailingTrivia(i.name),e.isPropertyAssignment(i)&&e.suppressLeadingAndTrailingTrivia(i.initializer),e.copyComments(t,i),i}));if(i&&r.length>=n.length){var s=r.slice(n.length-1),c=e.factory.createPropertyAssignment(b(e.last(n)),e.factory.createArrayLiteralExpression(s));o.push(c)}return e.factory.createObjectLiteralExpression(o,!1)}function x(t,r,n){var i,a,o,s=r.getTypeChecker(),c=h(t.parameters),u=e.map(c,(function(t){var r=e.factory.createBindingElement(void 0,void 0,b(t),e.isRestParameter(t)&&m(t)?e.factory.createArrayLiteralExpression():t.initializer);return e.suppressLeadingAndTrailingTrivia(r),t.initializer&&r.initializer&&e.copyComments(t.initializer,r.initializer),r})),l=e.factory.createObjectBindingPattern(u),d=(i=c,a=e.map(i,g),e.addEmitFlags(e.factory.createTypeLiteralNode(a),1));e.every(c,m)&&(o=e.factory.createObjectLiteralExpression());var _=e.factory.createParameterDeclaration(void 0,void 0,void 0,l,void 0,d,o);if(v(t.parameters)){var p=t.parameters[0],f=e.factory.createParameterDeclaration(void 0,void 0,void 0,p.name,void 0,p.type);return e.suppressLeadingAndTrailingTrivia(f.name),e.copyComments(p.name,f.name),p.type&&(e.suppressLeadingAndTrailingTrivia(f.type),e.copyComments(p.type,f.type)),e.factory.createNodeArray([f,_])}return e.factory.createNodeArray([_]);function g(t){var i=t.type;i||!t.initializer&&!e.isRestParameter(t)||(i=function(t){var i=s.getTypeAtLocation(t);return e.getTypeNodeIfAccessible(i,t,r,n)}(t));var a=e.factory.createPropertySignature(void 0,b(t),m(t)?e.factory.createToken(57):t.questionToken,i);return e.suppressLeadingAndTrailingTrivia(a),e.copyComments(t.name,a.name),t.type&&a.type&&e.copyComments(t.type,a.type),a}function m(t){if(e.isRestParameter(t)){var r=s.getTypeAtLocation(t);return!s.isTupleType(r)}return s.isOptionalParameter(t)}}function b(t){return e.getTextOfIdentifierOrLiteral(t.name)}r.registerRefactor(i,{kinds:[o.kind],getEditsForAction:function(r,n){e.Debug.assert(n===i,"Unexpected action name");var a=r.file,o=r.startPosition,g=r.program,m=r.cancellationToken,y=r.host,v=p(a,o,g.getTypeChecker());if(v&&m){var h=function(r,n,i){var a=function(t){switch(t.kind){case 252:return t.name?[t.name]:[e.Debug.checkDefined(e.findModifier(t,87),"Nameless function declaration should be a default export")];case 166:return[t.name];case 167:var r=e.Debug.checkDefined(e.findChildOfKind(t,132,t.getSourceFile()),"Constructor declaration should have constructor keyword");return 222===t.parent.kind?[t.parent.parent.name,r]:[r];case 210:return[t.parent.name];case 209:return t.name?[t.name,t.parent.name]:[t.parent.name];default:return e.Debug.assertNever(t,"Unexpected function declaration kind "+t.kind)}}(r),o=e.isConstructorDeclaration(r)?function(t){switch(t.parent.kind){case 253:var r=t.parent;return r.name?[r.name]:[e.Debug.checkDefined(e.findModifier(r,87),"Nameless class declaration should be a default export")];case 222:var n=t.parent,i=t.parent.parent,a=n.name;return a?[a,i.name]:[i.name]}}(r):[],p=e.deduplicate(t(t([],a),o),e.equateValues),g=n.getTypeChecker(),m=y(e.flatMap(p,(function(t){return e.FindAllReferences.getReferenceEntriesForNode(-1,t,n,n.getSourceFiles(),i)})));return e.every(m.declarations,(function(t){return e.contains(p,t)}))||(m.valid=!1),m;function y(t){for(var n={accessExpressions:[],typeUsages:[]},i={functionCalls:[],declarations:[],classReferences:n,valid:!0},p=e.map(a,v),m=e.map(o,v),y=e.isConstructorDeclaration(r),h=e.map(a,(function(e){return s(e,g)})),D=0,x=t;D0;){var o=i.shift();e.copyTrailingComments(t[o],a,r,3,!1),n(o,a)}}}(n,r,a),s=_(0,n),c=s[0],u=s[1],l=s[2];if(c===n.length){var d=e.factory.createNoSubstitutionTemplateLiteral(u);return o(l,d),d}var f=[],g=e.factory.createTemplateHead(u);o(l,g);for(var m,y=function(t){var r=function(t){return e.isParenthesizedExpression(t)&&(p(t),t=t.expression),t}(n[t]);a(t,r);var i=_(t+1,n),s=i[0],c=i[1],u=i[2],l=(t=s-1)==n.length-1;if(e.isTemplateExpression(r)){var d=e.map(r.templateSpans,(function(t,n){p(t);var i=r.templateSpans[n+1],a=t.literal.text+(i?"":c);return e.factory.createTemplateSpan(t.expression,l?e.factory.createTemplateTail(a):e.factory.createTemplateMiddle(a))}));f.push.apply(f,d)}else{var g=l?e.factory.createTemplateTail(c):e.factory.createTemplateMiddle(c);o(u,g),f.push(e.factory.createTemplateSpan(r,g))}m=t},v=c;v1)return t.getUnionType(e.mapDefined(n,(function(e){return e.getReturnType()})))}var i=t.getSignatureFromDeclaration(r);if(i)return t.getReturnTypeOfSignature(i)}(a,i);if(!s)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_determine_function_return_type)};var c=a.typeToTypeNode(s,i,1);return c?{declaration:i,returnTypeNode:c}:void 0}}t.registerRefactor(i,{kinds:[o.kind],getEditsForAction:function(r){var n=s(r);if(n&&!t.isRefactorErrorInfo(n))return{renameFilename:void 0,renameLocation:void 0,edits:e.textChanges.ChangeTracker.with(r,(function(t){return i=r.file,a=t,o=n.declaration,s=n.returnTypeNode,c=e.findChildOfKind(o,21,i),u=e.isArrowFunction(o)&&void 0===c,void((l=u?e.first(o.parameters):c)&&(u&&(a.insertNodeBefore(i,l,e.factory.createToken(20)),a.insertNodeAfter(i,l,e.factory.createToken(21))),a.insertNodeAt(i,l.end,s,{prefix:": "})));var i,a,o,s,c,u,l}))}},getAvailableActions:function(n){var c=s(n);return c?t.isRefactorErrorInfo(c)?n.preferences.provideRefactorNotApplicableReason?[{name:i,description:a,actions:[r(r({},o),{notApplicableReason:c.error})]}]:e.emptyArray:[{name:i,description:a,actions:[o]}]:e.emptyArray}})})((t=e.refactor||(e.refactor={})).inferFunctionReturnType||(t.inferFunctionReturnType={}))}(s||(s={})),function(e){function n(t,r,n,a){var o=e.isNodeKind(t)?new i(t,r,n):78===t?new l(78,r,n):79===t?new d(79,r,n):new u(t,r,n);return o.parent=a,o.flags=25358336&a.flags,o}e.servicesVersion="0.8";var i=function(){function t(e,t,r){this.pos=t,this.end=r,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=e}return t.prototype.assertHasRealPosition=function(t){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),t||"Node must have a real position for this operation")},t.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},t.prototype.getStart=function(t,r){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,t,r)},t.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},t.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},t.prototype.getWidth=function(e){return this.assertHasRealPosition(),this.getEnd()-this.getStart(e)},t.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},t.prototype.getLeadingTriviaWidth=function(e){return this.assertHasRealPosition(),this.getStart(e)-this.pos},t.prototype.getFullText=function(e){return this.assertHasRealPosition(),(e||this.getSourceFile()).text.substring(this.pos,this.end)},t.prototype.getText=function(e){return this.assertHasRealPosition(),e||(e=this.getSourceFile()),e.text.substring(this.getStart(e),this.getEnd())},t.prototype.getChildCount=function(e){return this.getChildren(e).length},t.prototype.getChildAt=function(e,t){return this.getChildren(t)[e]},t.prototype.getChildren=function(t){return this.assertHasRealPosition("Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine"),this._children||(this._children=function(t,r){if(!e.isNodeKind(t.kind))return e.emptyArray;var i=[];if(e.isJSDocCommentContainingNode(t))return t.forEachChild((function(e){i.push(e)})),i;e.scanner.setText((r||t.getSourceFile()).text);var o=t.pos,s=function(e){a(i,o,e.pos,t),i.push(e),o=e.end},c=function(e){a(i,o,e.pos,t),i.push(function(e,t){var r=n(338,e.pos,e.end,t);r._children=[];for(var i=e.pos,o=0,s=e;o337}));return n.kind<158?n:n.getFirstToken(t)}},t.prototype.getLastToken=function(t){this.assertHasRealPosition();var r=this.getChildren(t),n=e.lastOrUndefined(r);if(n)return n.kind<158?n:n.getLastToken(t)},t.prototype.forEachChild=function(t,r){return e.forEachChild(this,t,r)},t}();function a(t,r,i,a){for(e.scanner.setTextPos(r);r=n.length&&(t=this.getEnd()),t||(t=n[r+1]-1);var i=this.getFullText();return"\n"===i[t]&&"\r"===i[t-1]?t-1:t},r.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},r.prototype.computeNamedDeclarations=function(){var t=e.createMultiMap();return this.forEachChild((function i(a){switch(a.kind){case 252:case 209:case 166:case 165:var o=a,s=n(o);if(s){var c=function(e){var r=t.get(e);r||t.set(e,r=[]);return r}(s),u=e.lastOrUndefined(c);u&&o.parent===u.parent&&o.symbol===u.symbol?o.body&&!u.body&&(c[c.length-1]=o):c.push(o)}e.forEachChild(a,i);break;case 253:case 222:case 254:case 255:case 256:case 257:case 261:case 271:case 266:case 263:case 264:case 168:case 169:case 178:r(a),e.forEachChild(a,i);break;case 161:if(!e.hasSyntacticModifier(a,16476))break;case 250:case 199:var l=a;if(e.isBindingPattern(l.name)){e.forEachChild(l.name,i);break}l.initializer&&i(l.initializer);case 292:case 164:case 163:r(a);break;case 268:var d=a;d.exportClause&&(e.isNamedExports(d.exportClause)?e.forEach(d.exportClause.elements,i):i(d.exportClause.name));break;case 262:var _=a.importClause;_&&(_.name&&r(_.name),_.namedBindings&&(264===_.namedBindings.kind?r(_.namedBindings):e.forEach(_.namedBindings.elements,i)));break;case 217:0!==e.getAssignmentDeclarationKind(a)&&r(a);default:e.forEachChild(a,i)}})),t;function r(e){var r=n(e);r&&t.add(r,e)}function n(t){var r=e.getNonAssignedNameOfDeclaration(t);return r&&(e.isComputedPropertyName(r)&&e.isPropertyAccessExpression(r.expression)?r.expression.name.text:e.isPropertyName(r)?e.getNameFromPropertyName(r):void 0)}},r}(i),v=function(){function t(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r}return t.prototype.getLineAndCharacterOfPosition=function(t){return e.getLineAndCharacterOfPosition(this,t)},t}();function h(t){var r=!0;for(var n in t)if(e.hasProperty(t,n)&&!D(n)){r=!1;break}if(r)return t;var i={};for(var n in t){if(e.hasProperty(t,n))i[D(n)?n:n.charAt(0).toLowerCase()+n.substr(1)]=t[n]}return i}function D(e){return!e.length||e.charAt(0)===e.charAt(0).toLowerCase()}function x(){return{target:1,jsx:1}}e.toEditorSettings=h,e.displayPartsToString=function(t){return t?e.map(t,(function(e){return e.text})).join(""):""},e.getDefaultCompilerOptions=x,e.getSupportedCodeFixes=function(){return e.codefix.getSupportedErrorCodes()};var b=function(){function t(t,r){this.host=t,this.currentDirectory=t.getCurrentDirectory(),this.fileNameToEntry=new e.Map;for(var n=0,i=t.getScriptFileNames();n=this.throttleWaitMilliseconds&&(this.lastCancellationCheckTime=t,this.hostCancellationToken.isCancellationRequested())},t.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw null===e.tracing||void 0===e.tracing||e.tracing.instant("session","cancellationThrown",{kind:"ThrottledCancellationToken"}),new e.OperationCanceledException},t}();e.ThrottledCancellationToken=F;var N=["getSyntacticDiagnostics","getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls"],P=t(t([],N),["getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getOccurrencesAtPosition","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors"]);function w(t){var r=function(t){switch(t.kind){case 10:case 14:case 8:if(159===t.parent.kind)return e.isObjectLiteralElement(t.parent.parent)?t.parent.parent:void 0;case 78:return!e.isObjectLiteralElement(t.parent)||201!==t.parent.parent.kind&&282!==t.parent.parent.kind||t.parent.name!==t?void 0:t.parent}return}(t);return r&&(e.isObjectLiteralExpression(r.parent)||e.isJsxAttributes(r.parent))?r:void 0}function I(t,r,n,i){var a=e.getNameFromPropertyName(t.name);if(!a)return e.emptyArray;if(!n.isUnion())return(o=n.getProperty(a))?[o]:e.emptyArray;var o,s=e.mapDefined(n.types,(function(n){return(e.isObjectLiteralExpression(t.parent)||e.isJsxAttributes(t.parent))&&r.isTypeInvalidDueToUnionDiscriminant(n,t.parent)?void 0:n.getProperty(a)}));if(i&&(0===s.length||s.length===n.types.length)&&(o=n.getProperty(a)))return[o];return 0===s.length?e.mapDefined(n.types,(function(e){return e.getProperty(a)})):s}e.createLanguageService=function(n,i,a){var o,s;void 0===i&&(i=e.createDocumentRegistry(n.useCaseSensitiveFileNames&&n.useCaseSensitiveFileNames(),n.getCurrentDirectory())),s=void 0===a?e.LanguageServiceMode.Semantic:"boolean"==typeof a?a?e.LanguageServiceMode.Syntactic:e.LanguageServiceMode.Semantic:a;var c,u,l=new S(n),d=0,_=n.getCancellationToken?new A(n.getCancellationToken()):k,p=n.getCurrentDirectory();function f(e){n.log&&n.log(e)}!e.localizedDiagnosticMessages&&n.getLocalizedDiagnosticMessages&&e.setLocalizedDiagnosticMessages(n.getLocalizedDiagnosticMessages());var g=e.hostUsesCaseSensitiveFileNames(n),m=e.createGetCanonicalFileName(g),y=e.getSourceMapper({useCaseSensitiveFileNames:function(){return g},getCurrentDirectory:function(){return p},getProgram:x,fileExists:e.maybeBind(n,n.fileExists),readFile:e.maybeBind(n,n.readFile),getDocumentPositionMapper:e.maybeBind(n,n.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(n,n.getSourceFileLike),log:f});function v(e){var t=c.getSourceFile(e);if(!t){var r=new Error("Could not find source file: '"+e+"'.");throw r.ProgramFiles=c.getSourceFiles().map((function(e){return e.fileName})),r}return t}function D(){var t,r,a;if(e.Debug.assert(s!==e.LanguageServiceMode.Syntactic),n.getProjectVersion){var o=n.getProjectVersion();if(o){if(u===o&&!(null===(t=n.hasChangedAutomaticTypeDirectiveNames)||void 0===t?void 0:t.call(n)))return;u=o}}var l=n.getTypeRootsVersion?n.getTypeRootsVersion():0;d!==l&&(f("TypeRoots version has changed; provide new program"),c=void 0,d=l);var v,h=new b(n,m),D=h.getRootFileNames(),x=n.getCompilationSettings()||{target:1,jsx:1},S=n.hasInvalidatedResolution||e.returnFalse,E=e.maybeBind(n,n.hasChangedAutomaticTypeDirectiveNames),T=null===(r=n.getProjectReferences)||void 0===r?void 0:r.call(n),C={useCaseSensitiveFileNames:g,fileExists:P,readFile:w,readDirectory:I,trace:e.maybeBind(n,n.trace),getCurrentDirectory:function(){return p},onUnRecoverableConfigFileDiagnostic:e.noop};if(!e.isProgramUptoDate(c,D,x,(function(e,t){return n.getScriptVersion(t)}),P,S,E,N,T)){var k={getSourceFile:M,getSourceFileByPath:L,getCancellationToken:function(){return _},getCanonicalFileName:m,useCaseSensitiveFileNames:function(){return g},getNewLine:function(){return e.getNewLineCharacter(x,(function(){return e.getNewLineOrDefaultFromHost(n)}))},getDefaultLibFileName:function(e){return n.getDefaultLibFileName(e)},writeFile:e.noop,getCurrentDirectory:function(){return p},fileExists:P,readFile:w,getSymlinkCache:e.maybeBind(n,n.getSymlinkCache),realpath:e.maybeBind(n,n.realpath),directoryExists:function(t){return e.directoryProbablyExists(t,n)},getDirectories:function(e){return n.getDirectories?n.getDirectories(e):[]},readDirectory:I,onReleaseOldSourceFile:O,onReleaseParsedCommandLine:function(e,t,r){var i;n.getParsedCommandLine?null===(i=n.onReleaseParsedCommandLine)||void 0===i||i.call(n,e,t,r):t&&O(t.sourceFile,r)},hasInvalidatedResolution:S,hasChangedAutomaticTypeDirectiveNames:E,trace:C.trace,resolveModuleNames:e.maybeBind(n,n.resolveModuleNames),resolveTypeReferenceDirectives:e.maybeBind(n,n.resolveTypeReferenceDirectives),useSourceOfProjectReferenceRedirect:e.maybeBind(n,n.useSourceOfProjectReferenceRedirect),getParsedCommandLine:N};null===(a=n.setCompilerHost)||void 0===a||a.call(n,k);var A=i.getKeyForCompilationSettings(x),F={rootNames:D,options:x,host:k,oldProgram:c,projectReferences:T};return c=e.createProgram(F),h=void 0,v=void 0,y.clearCache(),void c.getTypeChecker()}function N(t){var r=e.toPath(t,p,m),i=null==v?void 0:v.get(r);if(void 0!==i)return i||void 0;var a=n.getParsedCommandLine?n.getParsedCommandLine(t):function(t){var r=M(t,100);return r?(r.path=e.toPath(t,p,m),r.resolvedPath=r.path,r.originalFileName=r.fileName,e.parseJsonSourceFileConfigFileContent(r,C,e.getNormalizedAbsolutePath(e.getDirectoryPath(t),p),void 0,e.getNormalizedAbsolutePath(t,p))):void 0}(t);return(v||(v=new e.Map)).set(r,a||!1),a}function P(t){var r=e.toPath(t,p,m),i=h&&h.getEntryByPath(r);return i?!e.isString(i):!!n.fileExists&&n.fileExists(t)}function w(t){var r=e.toPath(t,p,m),i=h&&h.getEntryByPath(r);return i?e.isString(i)?void 0:e.getSnapshotText(i.scriptSnapshot):n.readFile&&n.readFile(t)}function I(t,r,i,a,o){return e.Debug.checkDefined(n.readDirectory,"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"),n.readDirectory(t,r,i,a,o)}function O(e,t){var r=i.getKeyForCompilationSettings(t);i.releaseDocumentWithKey(e.resolvedPath,r,e.scriptKind)}function M(t,r,n,i){return L(t,e.toPath(t,p,m),r,n,i)}function L(t,r,n,a,o){e.Debug.assert(void 0!==h,"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");var s=h&&h.getOrCreateEntryByPath(t,r);if(s){if(!o){var u=c&&c.getSourceFileByPath(r);if(u){if(s.scriptKind===u.scriptKind)return i.updateDocumentWithKey(t,r,x,A,s.scriptSnapshot,s.version,s.scriptKind);i.releaseDocumentWithKey(u.resolvedPath,i.getKeyForCompilationSettings(c.getCompilerOptions()),u.scriptKind)}}return i.acquireDocumentWithKey(t,r,x,A,s.scriptSnapshot,s.version,s.scriptKind)}}}function x(){if(s!==e.LanguageServiceMode.Syntactic)return D(),c;e.Debug.assert(void 0===c)}function E(t,r,n){var i=e.normalizePath(t);e.Debug.assert(n.some((function(t){return e.normalizePath(t)===i}))),D();var a=e.mapDefined(n,(function(e){return c.getSourceFile(e)})),o=v(t);return e.DocumentHighlights.getDocumentHighlights(c,_,o,r,a)}function T(t,r,n,i){D();var a=n&&2===n.use?c.getSourceFiles().filter((function(e){return!c.isSourceFileDefaultLibrary(e)})):c.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(c,_,a,t,r,n,i)}var C=new e.Map(e.getEntries(((o={})[18]=19,o[20]=21,o[22]=23,o[31]=29,o)));function F(t){return e.Debug.assertEqual(t.type,"install package"),n.installPackage?n.installPackage({fileName:function(t){return e.toPath(t,p,m)}(t.file),packageName:t.packageName}):Promise.reject("Host does not implement `installPackage`")}function O(e,t){return{lineStarts:e.getLineStarts(),firstLine:e.getLineAndCharacterOfPosition(t.pos).line,lastLine:e.getLineAndCharacterOfPosition(t.end).line}}function M(t,r,n){for(var i=l.getCurrentSourceFile(t),a=[],o=O(i,r),s=o.lineStarts,c=o.firstLine,u=o.lastLine,d=n||!1,_=Number.MAX_VALUE,p=new e.Map,f=new RegExp(/\S/),g=e.isInsideJsxElement(i,s[c]),m=g?"{/*":"//",y=c;y<=u;y++){var v=i.text.substring(s[y],i.getLineEndOfPosition(s[y])),h=f.exec(v);h&&(_=Math.min(_,h.index),p.set(y.toString(),h.index),v.substr(h.index,m.length)!==m&&(d=void 0===n||n))}for(y=c;y<=u;y++)if(c===u||s[y]!==r.end){var D=p.get(y.toString());void 0!==D&&(g?a.push.apply(a,L(t,{pos:s[y]+_,end:i.getLineEndOfPosition(s[y])},d,g)):d?a.push({newText:m,span:{length:0,start:s[y]+_}}):i.text.substr(s[y]+D,m.length)===m&&a.push({newText:"",span:{length:m.length,start:s[y]+D}}))}return a}function L(t,r,n,i){for(var a,o=l.getCurrentSourceFile(t),s=[],c=o.text,u=!1,d=n||!1,_=[],p=r.pos,f=void 0!==i?i:e.isInsideJsxElement(o,p),g=f?"{/*":"/*",m=f?"*/}":"*/",y=f?"\\{\\/\\*":"\\/\\*",v=f?"\\*\\/\\}":"\\*\\/";p<=r.end;){var h=c.substr(p,g.length)===g?g.length:0,D=e.isInComment(o,p+h);if(D)f&&(D.pos--,D.end++),_.push(D.pos),3===D.kind&&_.push(D.end),u=!0,p=D.end+1;else{var x=c.substring(p,r.end).search("("+y+")|("+v+")");d=void 0!==n?n:d||!e.isTextWhiteSpaceLike(c,p,-1===x?r.end:p+x),p=-1===x?r.end+1:p+x+m.length}}if(d||!u){2!==(null===(a=e.isInComment(o,r.pos))||void 0===a?void 0:a.kind)&&e.insertSorted(_,r.pos,e.compareValues),e.insertSorted(_,r.end,e.compareValues);var b=_[0];c.substr(b,g.length)!==g&&s.push({newText:g,span:{length:0,start:b}});for(var S=1;S<_.length-1;S++)c.substr(_[S]-m.length,m.length)!==m&&s.push({newText:m,span:{length:0,start:_[S]}}),c.substr(_[S],g.length)!==g&&s.push({newText:g,span:{length:0,start:_[S]}});s.length%2!=0&&s.push({newText:m,span:{length:0,start:_[_.length-1]}})}else for(var E=0,T=_;E0?C-m.length:0;h=c.substr(k,m.length)===m?m.length:0;s.push({newText:"",span:{length:g.length,start:C-h}})}return s}function R(t){var r=t.openingElement,n=t.closingElement,i=t.parent;return!e.tagNamesAreEquivalent(r.tagName,n.tagName)||e.isJsxElement(i)&&e.tagNamesAreEquivalent(r.tagName,i.openingElement.tagName)&&R(i)}function B(t,r,i,a,o,s){var c="number"==typeof r?[r,void 0]:[r.pos,r.end];return{file:t,startPosition:c[0],endPosition:c[1],program:x(),host:n,formatContext:e.formatting.getFormatContext(a,n),cancellationToken:_,preferences:i,triggerReason:o,kind:s}}C.forEach((function(e,t){return C.set(e.toString(),Number(t))}));var j={dispose:function(){if(c){var t=i.getKeyForCompilationSettings(c.getCompilerOptions());e.forEach(c.getSourceFiles(),(function(e){return i.releaseDocumentWithKey(e.resolvedPath,t,e.scriptKind)})),c=void 0}n=void 0},cleanupSemanticCache:function(){c=void 0},getSyntacticDiagnostics:function(e){return D(),c.getSyntacticDiagnostics(v(e),_).slice()},getSemanticDiagnostics:function(r){D();var n=v(r),i=c.getSemanticDiagnostics(n,_);if(!e.getEmitDeclarations(c.getCompilerOptions()))return i.slice();var a=c.getDeclarationDiagnostics(n,_);return t(t([],i),a)},getSuggestionDiagnostics:function(t){return D(),e.computeSuggestionDiagnostics(v(t),c,_)},getCompilerOptionsDiagnostics:function(){return D(),t(t([],c.getOptionsDiagnostics(_)),c.getGlobalDiagnostics(_))},getSyntacticClassifications:function(t,r){return e.getSyntacticClassifications(_,l.getCurrentSourceFile(t),r)},getSemanticClassifications:function(t,r,n){return D(),"2020"===(n||"original")?e.classifier.v2020.getSemanticClassifications(c,_,v(t),r):e.getSemanticClassifications(c.getTypeChecker(),_,v(t),c.getClassifiableNames(),r)},getEncodedSyntacticClassifications:function(t,r){return e.getEncodedSyntacticClassifications(_,l.getCurrentSourceFile(t),r)},getEncodedSemanticClassifications:function(t,r,n){return D(),"original"===(n||"original")?e.getEncodedSemanticClassifications(c.getTypeChecker(),_,v(t),c.getClassifiableNames(),r):e.classifier.v2020.getEncodedSemanticClassifications(c,_,v(t),r)},getCompletionsAtPosition:function(t,i,a){void 0===a&&(a=e.emptyOptions);var o=r(r({},e.identity(a)),{includeCompletionsForModuleExports:a.includeCompletionsForModuleExports||a.includeExternalModuleExports,includeCompletionsWithInsertText:a.includeCompletionsWithInsertText||a.includeInsertTextCompletions});return D(),e.Completions.getCompletionsAtPosition(n,c,f,v(t),i,o,a.triggerCharacter)},getCompletionEntryDetails:function(t,r,i,a,o,s,u){return void 0===s&&(s=e.emptyOptions),D(),e.Completions.getCompletionEntryDetails(c,f,v(t),r,{name:i,source:o,data:u},n,a&&e.formatting.getFormatContext(a,n),s,_)},getCompletionEntrySymbol:function(t,r,i,a,o){return void 0===o&&(o=e.emptyOptions),D(),e.Completions.getCompletionEntrySymbol(c,f,v(t),r,{name:i,source:a},n,o)},getSignatureHelpItems:function(t,r,n){var i=(void 0===n?e.emptyOptions:n).triggerReason;D();var a=v(t);return e.SignatureHelp.getSignatureHelpItems(c,a,r,i,_)},getQuickInfoAtPosition:function(t,r){D();var n=v(t),i=e.getTouchingPropertyName(n,r);if(i!==n){var a=c.getTypeChecker(),o=function(t){if(e.isNewExpression(t.parent)&&t.pos===t.parent.pos)return t.parent.expression;if(e.isNamedTupleMember(t.parent)&&t.pos===t.parent.pos)return t.parent;return t}(i),s=function(t,r){var n=w(t);if(n){var i=r.getContextualType(n.parent),a=i&&I(n,r,i,!1);if(a&&1===a.length)return e.first(a)}return r.getSymbolAtLocation(t)}(o,a);if(!s||a.isUnknownSymbol(s)){var u=function(t,r,n){switch(r.kind){case 78:return!e.isLabelName(r)&&!e.isTagName(r)&&!e.isConstTypeReference(r.parent);case 202:case 158:return!e.isInComment(t,n);case 107:case 188:case 105:case 193:return!0;default:return!1}}(n,o,r)?a.getTypeAtLocation(o):void 0;return u&&{kind:"",kindModifiers:"",textSpan:e.createTextSpanFromNode(o,n),displayParts:a.runWithCancellationToken(_,(function(t){return e.typeToDisplayParts(t,u,e.getContainerNode(o))})),documentation:u.symbol?u.symbol.getDocumentationComment(a):void 0,tags:u.symbol?u.symbol.getJsDocTags(a):void 0}}var l=a.runWithCancellationToken(_,(function(t){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(t,s,n,e.getContainerNode(o),o)})),d=l.symbolKind,p=l.displayParts,f=l.documentation,g=l.tags;return{kind:d,kindModifiers:e.SymbolDisplay.getSymbolModifiers(a,s),textSpan:e.createTextSpanFromNode(o,n),displayParts:p,documentation:f,tags:g}}},getDefinitionAtPosition:function(t,r){return D(),e.GoToDefinition.getDefinitionAtPosition(c,v(t),r)},getDefinitionAndBoundSpan:function(t,r){return D(),e.GoToDefinition.getDefinitionAndBoundSpan(c,v(t),r)},getImplementationAtPosition:function(t,r){return D(),e.FindAllReferences.getImplementationsAtPosition(c,_,c.getSourceFiles(),v(t),r)},getTypeDefinitionAtPosition:function(t,r){return D(),e.GoToDefinition.getTypeDefinitionAtPosition(c.getTypeChecker(),v(t),r)},getReferencesAtPosition:function(t,r){return D(),T(e.getTouchingPropertyName(v(t),r),r,{use:1},e.FindAllReferences.toReferenceEntry)},findReferences:function(t,r){return D(),e.FindAllReferences.findReferencedSymbols(c,_,c.getSourceFiles(),v(t),r)},getFileReferences:function(t){return D(),e.FindAllReferences.Core.getReferencesForFileName(t,c,c.getSourceFiles()).map(e.FindAllReferences.toReferenceEntry)},getOccurrencesAtPosition:function(t,n){return e.flatMap(E(t,n,[t]),(function(e){return e.highlightSpans.map((function(t){return r(r({fileName:e.fileName,textSpan:t.textSpan,isWriteAccess:"writtenReference"===t.kind,isDefinition:!1},t.isInString&&{isInString:!0}),t.contextSpan&&{contextSpan:t.contextSpan})}))}))},getDocumentHighlights:E,getNameOrDottedNameSpan:function(t,r,n){var i=l.getCurrentSourceFile(t),a=e.getTouchingPropertyName(i,r);if(a!==i){switch(a.kind){case 202:case 158:case 10:case 94:case 109:case 103:case 105:case 107:case 188:case 78:break;default:return}for(var o=a;;)if(e.isRightSideOfPropertyAccess(o)||e.isRightSideOfQualifiedName(o))o=o.parent;else{if(!e.isNameOfModuleDeclaration(o))break;if(257!==o.parent.parent.kind||o.parent.parent.body!==o.parent)break;o=o.parent.parent.name}return e.createTextSpanFromBounds(o.getStart(),a.getEnd())}},getBreakpointStatementAtPosition:function(t,r){var n=l.getCurrentSourceFile(t);return e.BreakpointResolver.spanInSourceFileAtLocation(n,r)},getNavigateToItems:function(t,r,n,i){void 0===i&&(i=!1),D();var a=n?[v(n)]:c.getSourceFiles();return e.NavigateTo.getNavigateToItems(a,c.getTypeChecker(),_,t,r,i)},getRenameInfo:function(t,r,n){return D(),e.Rename.getRenameInfo(c,v(t),r,n)},getSmartSelectionRange:function(t,r){return e.SmartSelectionRange.getSmartSelectionRange(r,l.getCurrentSourceFile(t))},findRenameLocations:function(t,n,i,a,o){D();var s=v(t),c=e.getAdjustedRenameLocation(e.getTouchingPropertyName(s,n));if(e.isIdentifier(c)&&(e.isJsxOpeningElement(c.parent)||e.isJsxClosingElement(c.parent))&&e.isIntrinsicJsxName(c.escapedText)){var u=c.parent.parent;return[u.openingElement,u.closingElement].map((function(t){var n=e.createTextSpanFromNode(t.tagName,s);return r({fileName:s.fileName,textSpan:n},e.FindAllReferences.toContextSpan(n,s,t.parent))}))}return T(c,n,{findInStrings:i,findInComments:a,providePrefixAndSuffixTextForRename:o,use:2},(function(t,r,n){return e.FindAllReferences.toRenameLocation(t,r,n,o||!1)}))},getNavigationBarItems:function(t){return e.NavigationBar.getNavigationBarItems(l.getCurrentSourceFile(t),_)},getNavigationTree:function(t){return e.NavigationBar.getNavigationTree(l.getCurrentSourceFile(t),_)},getOutliningSpans:function(t){var r=l.getCurrentSourceFile(t);return e.OutliningElementsCollector.collectElements(r,_)},getTodoComments:function(t,r){D();var n=v(t);_.throwIfCancellationRequested();var i,a=n.text,o=[];if(r.length>0&&!function(t){return e.stringContains(t,"/node_modules/")}(n.fileName))for(var s=function(){var t="("+/(?:^(?:\s|\*)*)/.source+"|"+/(?:\/\/+\s*)/.source+"|"+/(?:\/\*+\s*)/.source+")",n="(?:"+e.map(r,(function(e){return"("+(e.text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")+")")})).join("|")+")";return new RegExp(t+"("+n+/(?:.*?)/.source+")"+/(?:$|\*\/)/.source,"gim")}(),c=void 0;c=s.exec(a);){_.throwIfCancellationRequested();e.Debug.assert(c.length===r.length+3);var u=c[1],l=c.index+u.length;if(e.isInComment(n,l)){for(var d=void 0,p=0;p=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57)){var f=c[2];o.push({descriptor:d,message:f,position:l})}}}return o},getBraceMatchingAtPosition:function(t,r){var n=l.getCurrentSourceFile(t),i=e.getTouchingToken(n,r),a=i.getStart(n)===r?C.get(i.kind.toString()):void 0,o=a&&e.findChildOfKind(i.parent,a,n);return o?[e.createTextSpanFromNode(i,n),e.createTextSpanFromNode(o,n)].sort((function(e,t){return e.start-t.start})):e.emptyArray},getIndentationAtPosition:function(t,r,n){var i=e.timestamp(),a=h(n),o=l.getCurrentSourceFile(t);f("getIndentationAtPosition: getCurrentSourceFile: "+(e.timestamp()-i)),i=e.timestamp();var s=e.formatting.SmartIndenter.getIndentation(r,o,a);return f("getIndentationAtPosition: computeIndentation : "+(e.timestamp()-i)),s},getFormattingEditsForRange:function(t,r,i,a){var o=l.getCurrentSourceFile(t);return e.formatting.formatSelection(r,i,o,e.formatting.getFormatContext(h(a),n))},getFormattingEditsForDocument:function(t,r){return e.formatting.formatDocument(l.getCurrentSourceFile(t),e.formatting.getFormatContext(h(r),n))},getFormattingEditsAfterKeystroke:function(t,r,i,a){var o=l.getCurrentSourceFile(t),s=e.formatting.getFormatContext(h(a),n);if(!e.isInComment(o,r))switch(i){case"{":return e.formatting.formatOnOpeningCurly(r,o,s);case"}":return e.formatting.formatOnClosingCurly(r,o,s);case";":return e.formatting.formatOnSemicolon(r,o,s);case"\n":return e.formatting.formatOnEnter(r,o,s)}return[]},getDocCommentTemplateAtPosition:function(t,r,i){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(n),l.getCurrentSourceFile(t),r,i)},isValidBraceCompletionAtPosition:function(t,r,n){if(60===n)return!1;var i=l.getCurrentSourceFile(t);if(e.isInString(i,r))return!1;if(e.isInsideJsxElementOrAttribute(i,r))return 123===n;if(e.isInTemplateString(i,r))return!1;switch(n){case 39:case 34:case 96:return!e.isInComment(i,r)}return!0},getJsxClosingTagAtPosition:function(t,r){var n=l.getCurrentSourceFile(t),i=e.findPrecedingToken(r,n);if(i){var a=31===i.kind&&e.isJsxOpeningElement(i.parent)?i.parent.parent:e.isJsxText(i)?i.parent:void 0;return a&&R(a)?{newText:""}:void 0}},getSpanOfEnclosingComment:function(t,r,n){var i=l.getCurrentSourceFile(t),a=e.formatting.getRangeOfEnclosingComment(i,r);return!a||n&&3!==a.kind?void 0:e.createTextSpanFromRange(a)},getCodeFixesAtPosition:function(t,r,i,a,o,s){void 0===s&&(s=e.emptyOptions),D();var u=v(t),l=e.createTextSpanFromBounds(r,i),d=e.formatting.getFormatContext(o,n);return e.flatMap(e.deduplicate(a,e.equateValues,e.compareValues),(function(t){return _.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:t,sourceFile:u,span:l,program:c,host:n,cancellationToken:_,formatContext:d,preferences:s})}))},getCombinedCodeFix:function(t,r,i,a){void 0===a&&(a=e.emptyOptions),D(),e.Debug.assert("file"===t.type);var o=v(t.fileName),s=e.formatting.getFormatContext(i,n);return e.codefix.getAllFixes({fixId:r,sourceFile:o,program:c,host:n,cancellationToken:_,formatContext:s,preferences:a})},applyCodeActionCommand:function(t,r){var n="string"==typeof t?r:t;return e.isArray(n)?Promise.all(n.map((function(e){return F(e)}))):F(n)},organizeImports:function(t,r,i){void 0===i&&(i=e.emptyOptions),D(),e.Debug.assert("file"===t.type);var a=v(t.fileName),o=e.formatting.getFormatContext(r,n);return e.OrganizeImports.organizeImports(a,o,n,c,i,t.skipDestructiveCodeActions)},getEditsForFileRename:function(t,r,i,a){return void 0===a&&(a=e.emptyOptions),e.getEditsForFileRename(x(),t,r,n,e.formatting.getFormatContext(i,n),a,y)},getEmitOutput:function(t,r,i){D();var a=v(t),o=n.getCustomTransformers&&n.getCustomTransformers();return e.getFileEmitOutput(c,a,!!r,_,o,i)},getNonBoundSourceFile:function(e){return l.getCurrentSourceFile(e)},getProgram:x,getAutoImportProvider:function(){var e;return null===(e=n.getPackageJsonAutoImportProvider)||void 0===e?void 0:e.call(n)},getApplicableRefactors:function(t,r,n,i,a){void 0===n&&(n=e.emptyOptions),D();var o=v(t);return e.refactor.getApplicableRefactors(B(o,r,n,e.emptyOptions,i,a))},getEditsForRefactor:function(t,r,n,i,a,o){void 0===o&&(o=e.emptyOptions),D();var s=v(t);return e.refactor.getEditsForRefactor(B(s,n,o,r),i,a)},toLineColumnOffset:function(e,t){return 0===t?{line:0,character:0}:y.toLineColumnOffset(e,t)},getSourceMapper:function(){return y},clearSourceMapperCache:function(){return y.clearCache()},prepareCallHierarchy:function(t,r){D();var n=e.CallHierarchy.resolveCallHierarchyDeclaration(c,e.getTouchingPropertyName(v(t),r));return n&&e.mapOneOrMany(n,(function(t){return e.CallHierarchy.createCallHierarchyItem(c,t)}))},provideCallHierarchyIncomingCalls:function(t,r){D();var n=v(t),i=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(c,0===r?n:e.getTouchingPropertyName(n,r)));return i?e.CallHierarchy.getIncomingCalls(c,i,_):[]},provideCallHierarchyOutgoingCalls:function(t,r){D();var n=v(t),i=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(c,0===r?n:e.getTouchingPropertyName(n,r)));return i?e.CallHierarchy.getOutgoingCalls(c,i):[]},toggleLineComment:M,toggleMultilineComment:L,commentSelection:function(e,t){var r=O(l.getCurrentSourceFile(e),t);return r.firstLine===r.lastLine&&t.pos!==t.end?L(e,t,!0):M(e,t,!0)},uncommentSelection:function(t,r){var n=l.getCurrentSourceFile(t),i=[],a=r.pos,o=r.end;a===o&&(o+=e.isInsideJsxElement(n,a)?2:1);for(var s=a;s<=o;s++){var c=e.isInComment(n,s);if(c){switch(c.kind){case 2:i.push.apply(i,M(t,{end:c.end,pos:c.pos+1},!1));break;case 3:i.push.apply(i,L(t,{end:c.end,pos:c.pos+1},!1))}s=c.end+1}}return i}};switch(s){case e.LanguageServiceMode.Semantic:break;case e.LanguageServiceMode.PartialSemantic:N.forEach((function(e){return j[e]=function(){throw new Error("LanguageService Operation: "+e+" not allowed in LanguageServiceMode.PartialSemantic")}}));break;case e.LanguageServiceMode.Syntactic:P.forEach((function(e){return j[e]=function(){throw new Error("LanguageService Operation: "+e+" not allowed in LanguageServiceMode.Syntactic")}}));break;default:e.Debug.assertNever(s)}return j},e.getNameTable=function(t){return t.nameTable||function(t){var r=t.nameTable=new e.Map;t.forEachChild((function t(n){if(e.isIdentifier(n)&&!e.isTagName(n)&&n.escapedText||e.isStringOrNumericLiteralLike(n)&&function(t){return e.isDeclarationName(t)||273===t.parent.kind||function(e){return e&&e.parent&&203===e.parent.kind&&e.parent.argumentExpression===e}(t)||e.isLiteralComputedPropertyDeclarationName(t)}(n)){var i=e.getEscapedTextOfIdentifierOrLiteral(n);r.set(i,void 0===r.get(i)?n.pos:-1)}else if(e.isPrivateIdentifier(n)){i=n.escapedText;r.set(i,void 0===r.get(i)?n.pos:-1)}if(e.forEachChild(n,t),e.hasJSDocNodes(n))for(var a=0,o=n.jsDoc;ai){var a=e.findPrecedingToken(n.pos,t);if(!a||t.getLineAndCharacterOfPosition(a.getEnd()).line!==i)return;n=a}if(!(8388608&n.flags))return d(n)}function o(r,n){var i=r.decorators?e.skipTrivia(t.text,r.decorators.end):r.getStart(t);return e.createTextSpanFromBounds(i,(n||r).getEnd())}function s(r,n){return o(r,e.findNextToken(n,n.parent,t))}function c(e,r){return e&&i===t.getLineAndCharacterOfPosition(e.getStart(t)).line?d(e):d(r)}function u(r){return d(e.findPrecedingToken(r.pos,t))}function l(r){return d(e.findNextToken(r,r.parent,t))}function d(r){if(r){var n=r.parent;switch(r.kind){case 233:return x(r.declarationList.declarations[0]);case 250:case 164:case 163:return x(r);case 161:return function t(r){if(e.isBindingPattern(r.name))return T(r.name);if(function(t){return!!t.initializer||void 0!==t.dotDotDotToken||e.hasSyntacticModifier(t,12)}(r))return o(r);var n=r.parent,i=n.parameters.indexOf(r);return e.Debug.assert(-1!==i),0!==i?t(n.parameters[i-1]):d(n.body)}(r);case 252:case 166:case 165:case 168:case 169:case 167:case 209:case 210:return function(e){if(e.body)return b(e)?o(e):d(e.body)}(r);case 231:if(e.isFunctionBlock(r))return v=(y=r).statements.length?y.statements[0]:y.getLastToken(),b(y.parent)?c(y.parent,v):d(v);case 258:return S(r);case 288:return S(r.block);case 234:return o(r.expression);case 243:return o(r.getChildAt(0),r.expression);case 237:return s(r,r.expression);case 236:return d(r.statement);case 249:return o(r.getChildAt(0));case 235:return s(r,r.expression);case 246:return d(r.statement);case 242:case 241:return o(r.getChildAt(0),r.label);case 238:return(m=r).initializer?E(m):m.condition?o(m.condition):m.incrementor?o(m.incrementor):void 0;case 239:return s(r,r.expression);case 240:return E(r);case 245:return s(r,r.expression);case 285:case 286:return d(r.statements[0]);case 248:return S(r.tryBlock);case 247:case 267:return o(r,r.expression);case 261:return o(r,r.moduleReference);case 262:case 268:return o(r,r.moduleSpecifier);case 257:if(1!==e.getModuleInstanceState(r))return;case 253:case 256:case 292:case 199:return o(r);case 244:return d(r.statement);case 162:return h=n.decorators,e.createTextSpanFromBounds(e.skipTrivia(t.text,h.pos),h.end);case 197:case 198:return T(r);case 254:case 255:return;case 26:case 1:return c(e.findPrecedingToken(r.pos,t));case 27:return u(r);case 18:return function(r){switch(r.parent.kind){case 256:var n=r.parent;return c(e.findPrecedingToken(r.pos,t,r.parent),n.members.length?n.members[0]:n.getLastToken(t));case 253:var i=r.parent;return c(e.findPrecedingToken(r.pos,t,r.parent),i.members.length?i.members[0]:i.getLastToken(t));case 259:return c(r.parent.parent,r.parent.clauses[0])}return d(r.parent)}(r);case 19:return function(t){switch(t.parent.kind){case 258:if(1!==e.getModuleInstanceState(t.parent.parent))return;case 256:case 253:return o(t);case 231:if(e.isFunctionBlock(t.parent))return o(t);case 288:return d(e.lastOrUndefined(t.parent.statements));case 259:var r=t.parent,n=e.lastOrUndefined(r.clauses);return n?d(e.lastOrUndefined(n.statements)):void 0;case 197:var i=t.parent;return d(e.lastOrUndefined(i.elements)||i);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(t.parent)){var a=t.parent;return o(e.lastOrUndefined(a.properties)||a)}return d(t.parent)}}(r);case 23:return function(t){switch(t.parent.kind){case 198:var r=t.parent;return o(e.lastOrUndefined(r.elements)||r);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(t.parent)){var n=t.parent;return o(e.lastOrUndefined(n.elements)||n)}return d(t.parent)}}(r);case 20:return function(e){return 236===e.parent.kind||204===e.parent.kind||205===e.parent.kind?u(e):208===e.parent.kind?l(e):d(e.parent)}(r);case 21:return function(e){switch(e.parent.kind){case 209:case 252:case 210:case 166:case 165:case 168:case 169:case 167:case 237:case 236:case 238:case 240:case 204:case 205:case 208:return u(e);default:return d(e.parent)}}(r);case 58:return function(t){return e.isFunctionLike(t.parent)||289===t.parent.kind||161===t.parent.kind?u(t):d(t.parent)}(r);case 31:case 29:return function(e){return 207===e.parent.kind?l(e):d(e.parent)}(r);case 114:return function(e){return 236===e.parent.kind?s(e,e.parent.expression):d(e.parent)}(r);case 90:case 82:case 95:return l(r);case 157:return function(e){return 240===e.parent.kind?l(e):d(e.parent)}(r);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(r))return C(r);if((78===r.kind||221===r.kind||289===r.kind||290===r.kind)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(n))return o(r);if(217===r.kind){var i=r,a=i.left,_=i.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(a))return C(a);if(62===_.kind&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(r.parent))return o(r);if(27===_.kind)return d(a)}if(e.isExpressionNode(r))switch(n.kind){case 236:return u(r);case 162:return d(r.parent);case 238:case 240:return o(r);case 217:if(27===r.parent.operatorToken.kind)return o(r);break;case 210:if(r.parent.body===r)return o(r)}switch(r.parent.kind){case 289:if(r.parent.name===r&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(r.parent.parent))return d(r.parent.initializer);break;case 207:if(r.parent.type===r)return l(r.parent.type);break;case 250:case 161:var p=r.parent,f=p.initializer,g=p.type;if(f===r||g===r||e.isAssignmentOperator(r.kind))return u(r);break;case 217:if(a=r.parent.left,e.isArrayLiteralOrObjectLiteralDestructuringPattern(a)&&r!==a)return u(r);break;default:if(e.isFunctionLike(r.parent)&&r.parent.type===r)return u(r)}return d(r.parent)}}var m,y,v,h;function D(r){return e.isVariableDeclarationList(r.parent)&&r.parent.declarations[0]===r?o(e.findPrecedingToken(r.pos,t,r.parent),r):o(r)}function x(r){if(239===r.parent.parent.kind)return d(r.parent.parent);var n=r.parent;return e.isBindingPattern(r.name)?T(r.name):r.initializer||e.hasSyntacticModifier(r,1)||240===n.parent.kind?D(r):e.isVariableDeclarationList(r.parent)&&r.parent.declarations[0]!==r?d(e.findPrecedingToken(r.pos,t,r.parent)):void 0}function b(t){return e.hasSyntacticModifier(t,1)||253===t.parent.kind&&167!==t.kind}function S(r){switch(r.parent.kind){case 257:if(1!==e.getModuleInstanceState(r.parent))return;case 237:case 235:case 239:return c(r.parent,r.statements[0]);case 238:case 240:return c(e.findPrecedingToken(r.pos,t,r.parent),r.statements[0])}return d(r.statements[0])}function E(e){if(251!==e.initializer.kind)return d(e.initializer);var t=e.initializer;return t.declarations.length>0?d(t.declarations[0]):void 0}function T(t){var r=e.forEach(t.elements,(function(e){return 223!==e.kind?e:void 0}));return r?d(r):199===t.parent.kind?o(t.parent):D(t.parent)}function C(t){e.Debug.assert(198!==t.kind&&197!==t.kind);var r=200===t.kind?t.elements:t.properties,n=e.forEach(r,(function(e){return 223!==e.kind?e:void 0}));return n?d(n):o(217===t.parent.kind?t.parent:t)}}}}(s||(s={})),function(e){e.transform=function(t,r,n){var i=[];n=e.fixupCompilerOptions(n,i);var a=e.isArray(t)?t:[t],o=e.transformNodes(void 0,void 0,e.factory,n,a,r,!0);return o.diagnostics=e.concatenate(o.diagnostics,i),o}}(s||(s={}));var s,c=function(){return this}();!function(e){function n(e,t){e&&e.log("*INTERNAL ERROR* - Exception in typescript services: "+t.message)}var i=function(){function t(e){this.scriptSnapshotShim=e}return t.prototype.getText=function(e,t){return this.scriptSnapshotShim.getText(e,t)},t.prototype.getLength=function(){return this.scriptSnapshotShim.getLength()},t.prototype.getChangeRange=function(t){var r=t,n=this.scriptSnapshotShim.getChangeRange(r.scriptSnapshotShim);if(null===n)return null;var i=JSON.parse(n);return e.createTextChangeRange(e.createTextSpan(i.span.start,i.span.length),i.newLength)},t.prototype.dispose=function(){"dispose"in this.scriptSnapshotShim&&this.scriptSnapshotShim.dispose()},t}(),s=function(){function t(t){var r=this;this.shimHost=t,this.loggingEnabled=!1,this.tracingEnabled=!1,"getModuleResolutionsForFile"in this.shimHost&&(this.resolveModuleNames=function(t,n){var i=JSON.parse(r.shimHost.getModuleResolutionsForFile(n));return e.map(t,(function(t){var r=e.getProperty(i,t);return r?{resolvedFileName:r,extension:e.extensionFromPath(r),isExternalLibraryImport:!1}:void 0}))}),"directoryExists"in this.shimHost&&(this.directoryExists=function(e){return r.shimHost.directoryExists(e)}),"getTypeReferenceDirectiveResolutionsForFile"in this.shimHost&&(this.resolveTypeReferenceDirectives=function(t,n){var i=JSON.parse(r.shimHost.getTypeReferenceDirectiveResolutionsForFile(n));return e.map(t,(function(t){return e.getProperty(i,t)}))})}return t.prototype.log=function(e){this.loggingEnabled&&this.shimHost.log(e)},t.prototype.trace=function(e){this.tracingEnabled&&this.shimHost.trace(e)},t.prototype.error=function(e){this.shimHost.error(e)},t.prototype.getProjectVersion=function(){if(this.shimHost.getProjectVersion)return this.shimHost.getProjectVersion()},t.prototype.getTypeRootsVersion=function(){return this.shimHost.getTypeRootsVersion?this.shimHost.getTypeRootsVersion():0},t.prototype.useCaseSensitiveFileNames=function(){return!!this.shimHost.useCaseSensitiveFileNames&&this.shimHost.useCaseSensitiveFileNames()},t.prototype.getCompilationSettings=function(){var e=this.shimHost.getCompilationSettings();if(null===e||""===e)throw Error("LanguageServiceShimHostAdapter.getCompilationSettings: empty compilationSettings");var t=JSON.parse(e);return t.allowNonTsExtensions=!0,t},t.prototype.getScriptFileNames=function(){var e=this.shimHost.getScriptFileNames();return JSON.parse(e)},t.prototype.getScriptSnapshot=function(e){var t=this.shimHost.getScriptSnapshot(e);return t&&new i(t)},t.prototype.getScriptKind=function(e){return"getScriptKind"in this.shimHost?this.shimHost.getScriptKind(e):0},t.prototype.getScriptVersion=function(e){return this.shimHost.getScriptVersion(e)},t.prototype.getLocalizedDiagnosticMessages=function(){var e=this.shimHost.getLocalizedDiagnosticMessages();if(null===e||""===e)return null;try{return JSON.parse(e)}catch(e){return this.log(e.description||"diagnosticMessages.generated.json has invalid JSON format"),null}},t.prototype.getCancellationToken=function(){var t=this.shimHost.getCancellationToken();return new e.ThrottledCancellationToken(t)},t.prototype.getCurrentDirectory=function(){return this.shimHost.getCurrentDirectory()},t.prototype.getDirectories=function(e){return JSON.parse(this.shimHost.getDirectories(e))},t.prototype.getDefaultLibFileName=function(e){return this.shimHost.getDefaultLibFileName(JSON.stringify(e))},t.prototype.readDirectory=function(t,r,n,i,a){var o=e.getFileMatcherPatterns(t,n,i,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(t,JSON.stringify(r),JSON.stringify(o.basePaths),o.excludePattern,o.includeFilePattern,o.includeDirectoryPattern,a))},t.prototype.readFile=function(e,t){return this.shimHost.readFile(e,t)},t.prototype.fileExists=function(e){return this.shimHost.fileExists(e)},t}();e.LanguageServiceShimHostAdapter=s;var u=function(){function t(e){var t=this;this.shimHost=e,this.useCaseSensitiveFileNames=!!this.shimHost.useCaseSensitiveFileNames&&this.shimHost.useCaseSensitiveFileNames(),"directoryExists"in this.shimHost?this.directoryExists=function(e){return t.shimHost.directoryExists(e)}:this.directoryExists=void 0,"realpath"in this.shimHost?this.realpath=function(e){return t.shimHost.realpath(e)}:this.realpath=void 0}return t.prototype.readDirectory=function(t,r,n,i,a){var o=e.getFileMatcherPatterns(t,n,i,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(t,JSON.stringify(r),JSON.stringify(o.basePaths),o.excludePattern,o.includeFilePattern,o.includeDirectoryPattern,a))},t.prototype.fileExists=function(e){return this.shimHost.fileExists(e)},t.prototype.readFile=function(e){return this.shimHost.readFile(e)},t.prototype.getDirectories=function(e){return JSON.parse(this.shimHost.getDirectories(e))},t}();function l(e,t,r,n){return d(e,t,!0,r,n)}function d(t,r,i,a,o){try{var s=function(t,r,n,i){var a;i&&(t.log(r),a=e.timestamp());var o=n();if(i){var s=e.timestamp();if(t.log(r+" completed in "+(s-a)+" msec"),e.isString(o)){var c=o;c.length>128&&(c=c.substring(0,128)+"..."),t.log(" result.length="+c.length+", result='"+JSON.stringify(c)+"'")}}return o}(t,r,a,o);return i?JSON.stringify({result:s}):s}catch(i){return i instanceof e.OperationCanceledException?JSON.stringify({canceled:!0}):(n(t,i),i.description=r,JSON.stringify({error:i}))}}e.CoreServicesShimHostAdapter=u;var _=function(){function e(e){this.factory=e,e.registerShim(this)}return e.prototype.dispose=function(e){this.factory.unregisterShim(this)},e}();function p(t,r){return t.map((function(t){return function(t,r){return{message:e.flattenDiagnosticMessageText(t.messageText,r),start:t.start,length:t.length,category:e.diagnosticCategoryName(t),code:t.code,reportsUnnecessary:t.reportsUnnecessary,reportsDeprecated:t.reportsDeprecated}}(t,r)}))}e.realizeDiagnostics=p;var f=function(t){function n(e,r,n){var i=t.call(this,e)||this;return i.host=r,i.languageService=n,i.logPerformance=!1,i.logger=i.host,i}return o(n,t),n.prototype.forwardJSONCall=function(e,t){return l(this.logger,e,t,this.logPerformance)},n.prototype.dispose=function(e){this.logger.log("dispose()"),this.languageService.dispose(),this.languageService=null,c&&c.CollectGarbage&&(c.CollectGarbage(),this.logger.log("CollectGarbage()")),this.logger=null,t.prototype.dispose.call(this,e)},n.prototype.refresh=function(e){this.forwardJSONCall("refresh("+e+")",(function(){return null}))},n.prototype.cleanupSemanticCache=function(){var e=this;this.forwardJSONCall("cleanupSemanticCache()",(function(){return e.languageService.cleanupSemanticCache(),null}))},n.prototype.realizeDiagnostics=function(t){return p(t,e.getNewLineOrDefaultFromHost(this.host))},n.prototype.getSyntacticClassifications=function(t,r,n){var i=this;return this.forwardJSONCall("getSyntacticClassifications('"+t+"', "+r+", "+n+")",(function(){return i.languageService.getSyntacticClassifications(t,e.createTextSpan(r,n))}))},n.prototype.getSemanticClassifications=function(t,r,n){var i=this;return this.forwardJSONCall("getSemanticClassifications('"+t+"', "+r+", "+n+")",(function(){return i.languageService.getSemanticClassifications(t,e.createTextSpan(r,n))}))},n.prototype.getEncodedSyntacticClassifications=function(t,r,n){var i=this;return this.forwardJSONCall("getEncodedSyntacticClassifications('"+t+"', "+r+", "+n+")",(function(){return g(i.languageService.getEncodedSyntacticClassifications(t,e.createTextSpan(r,n)))}))},n.prototype.getEncodedSemanticClassifications=function(t,r,n){var i=this;return this.forwardJSONCall("getEncodedSemanticClassifications('"+t+"', "+r+", "+n+")",(function(){return g(i.languageService.getEncodedSemanticClassifications(t,e.createTextSpan(r,n)))}))},n.prototype.getSyntacticDiagnostics=function(e){var t=this;return this.forwardJSONCall("getSyntacticDiagnostics('"+e+"')",(function(){var r=t.languageService.getSyntacticDiagnostics(e);return t.realizeDiagnostics(r)}))},n.prototype.getSemanticDiagnostics=function(e){var t=this;return this.forwardJSONCall("getSemanticDiagnostics('"+e+"')",(function(){var r=t.languageService.getSemanticDiagnostics(e);return t.realizeDiagnostics(r)}))},n.prototype.getSuggestionDiagnostics=function(e){var t=this;return this.forwardJSONCall("getSuggestionDiagnostics('"+e+"')",(function(){return t.realizeDiagnostics(t.languageService.getSuggestionDiagnostics(e))}))},n.prototype.getCompilerOptionsDiagnostics=function(){var e=this;return this.forwardJSONCall("getCompilerOptionsDiagnostics()",(function(){var t=e.languageService.getCompilerOptionsDiagnostics();return e.realizeDiagnostics(t)}))},n.prototype.getQuickInfoAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getQuickInfoAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getQuickInfoAtPosition(e,t)}))},n.prototype.getNameOrDottedNameSpan=function(e,t,r){var n=this;return this.forwardJSONCall("getNameOrDottedNameSpan('"+e+"', "+t+", "+r+")",(function(){return n.languageService.getNameOrDottedNameSpan(e,t,r)}))},n.prototype.getBreakpointStatementAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getBreakpointStatementAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getBreakpointStatementAtPosition(e,t)}))},n.prototype.getSignatureHelpItems=function(e,t,r){var n=this;return this.forwardJSONCall("getSignatureHelpItems('"+e+"', "+t+")",(function(){return n.languageService.getSignatureHelpItems(e,t,r)}))},n.prototype.getDefinitionAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getDefinitionAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getDefinitionAtPosition(e,t)}))},n.prototype.getDefinitionAndBoundSpan=function(e,t){var r=this;return this.forwardJSONCall("getDefinitionAndBoundSpan('"+e+"', "+t+")",(function(){return r.languageService.getDefinitionAndBoundSpan(e,t)}))},n.prototype.getTypeDefinitionAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getTypeDefinitionAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getTypeDefinitionAtPosition(e,t)}))},n.prototype.getImplementationAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getImplementationAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getImplementationAtPosition(e,t)}))},n.prototype.getRenameInfo=function(e,t,r){var n=this;return this.forwardJSONCall("getRenameInfo('"+e+"', "+t+")",(function(){return n.languageService.getRenameInfo(e,t,r)}))},n.prototype.getSmartSelectionRange=function(e,t){var r=this;return this.forwardJSONCall("getSmartSelectionRange('"+e+"', "+t+")",(function(){return r.languageService.getSmartSelectionRange(e,t)}))},n.prototype.findRenameLocations=function(e,t,r,n,i){var a=this;return this.forwardJSONCall("findRenameLocations('"+e+"', "+t+", "+r+", "+n+", "+i+")",(function(){return a.languageService.findRenameLocations(e,t,r,n,i)}))},n.prototype.getBraceMatchingAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getBraceMatchingAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getBraceMatchingAtPosition(e,t)}))},n.prototype.isValidBraceCompletionAtPosition=function(e,t,r){var n=this;return this.forwardJSONCall("isValidBraceCompletionAtPosition('"+e+"', "+t+", "+r+")",(function(){return n.languageService.isValidBraceCompletionAtPosition(e,t,r)}))},n.prototype.getSpanOfEnclosingComment=function(e,t,r){var n=this;return this.forwardJSONCall("getSpanOfEnclosingComment('"+e+"', "+t+")",(function(){return n.languageService.getSpanOfEnclosingComment(e,t,r)}))},n.prototype.getIndentationAtPosition=function(e,t,r){var n=this;return this.forwardJSONCall("getIndentationAtPosition('"+e+"', "+t+")",(function(){var i=JSON.parse(r);return n.languageService.getIndentationAtPosition(e,t,i)}))},n.prototype.getReferencesAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getReferencesAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getReferencesAtPosition(e,t)}))},n.prototype.findReferences=function(e,t){var r=this;return this.forwardJSONCall("findReferences('"+e+"', "+t+")",(function(){return r.languageService.findReferences(e,t)}))},n.prototype.getFileReferences=function(e){var t=this;return this.forwardJSONCall("getFileReferences('"+e+")",(function(){return t.languageService.getFileReferences(e)}))},n.prototype.getOccurrencesAtPosition=function(e,t){var r=this;return this.forwardJSONCall("getOccurrencesAtPosition('"+e+"', "+t+")",(function(){return r.languageService.getOccurrencesAtPosition(e,t)}))},n.prototype.getDocumentHighlights=function(t,r,n){var i=this;return this.forwardJSONCall("getDocumentHighlights('"+t+"', "+r+")",(function(){var a=i.languageService.getDocumentHighlights(t,r,JSON.parse(n)),o=e.toFileNameLowerCase(e.normalizeSlashes(t));return e.filter(a,(function(t){return e.toFileNameLowerCase(e.normalizeSlashes(t.fileName))===o}))}))},n.prototype.getCompletionsAtPosition=function(e,t,r){var n=this;return this.forwardJSONCall("getCompletionsAtPosition('"+e+"', "+t+", "+r+")",(function(){return n.languageService.getCompletionsAtPosition(e,t,r)}))},n.prototype.getCompletionEntryDetails=function(e,t,r,n,i,a,o){var s=this;return this.forwardJSONCall("getCompletionEntryDetails('"+e+"', "+t+", '"+r+"')",(function(){var c=void 0===n?void 0:JSON.parse(n);return s.languageService.getCompletionEntryDetails(e,t,r,c,i,a,o)}))},n.prototype.getFormattingEditsForRange=function(e,t,r,n){var i=this;return this.forwardJSONCall("getFormattingEditsForRange('"+e+"', "+t+", "+r+")",(function(){var a=JSON.parse(n);return i.languageService.getFormattingEditsForRange(e,t,r,a)}))},n.prototype.getFormattingEditsForDocument=function(e,t){var r=this;return this.forwardJSONCall("getFormattingEditsForDocument('"+e+"')",(function(){var n=JSON.parse(t);return r.languageService.getFormattingEditsForDocument(e,n)}))},n.prototype.getFormattingEditsAfterKeystroke=function(e,t,r,n){var i=this;return this.forwardJSONCall("getFormattingEditsAfterKeystroke('"+e+"', "+t+", '"+r+"')",(function(){var a=JSON.parse(n);return i.languageService.getFormattingEditsAfterKeystroke(e,t,r,a)}))},n.prototype.getDocCommentTemplateAtPosition=function(e,t,r){var n=this;return this.forwardJSONCall("getDocCommentTemplateAtPosition('"+e+"', "+t+")",(function(){return n.languageService.getDocCommentTemplateAtPosition(e,t,r)}))},n.prototype.getNavigateToItems=function(e,t,r){var n=this;return this.forwardJSONCall("getNavigateToItems('"+e+"', "+t+", "+r+")",(function(){return n.languageService.getNavigateToItems(e,t,r)}))},n.prototype.getNavigationBarItems=function(e){var t=this;return this.forwardJSONCall("getNavigationBarItems('"+e+"')",(function(){return t.languageService.getNavigationBarItems(e)}))},n.prototype.getNavigationTree=function(e){var t=this;return this.forwardJSONCall("getNavigationTree('"+e+"')",(function(){return t.languageService.getNavigationTree(e)}))},n.prototype.getOutliningSpans=function(e){var t=this;return this.forwardJSONCall("getOutliningSpans('"+e+"')",(function(){return t.languageService.getOutliningSpans(e)}))},n.prototype.getTodoComments=function(e,t){var r=this;return this.forwardJSONCall("getTodoComments('"+e+"')",(function(){return r.languageService.getTodoComments(e,JSON.parse(t))}))},n.prototype.prepareCallHierarchy=function(e,t){var r=this;return this.forwardJSONCall("prepareCallHierarchy('"+e+"', "+t+")",(function(){return r.languageService.prepareCallHierarchy(e,t)}))},n.prototype.provideCallHierarchyIncomingCalls=function(e,t){var r=this;return this.forwardJSONCall("provideCallHierarchyIncomingCalls('"+e+"', "+t+")",(function(){return r.languageService.provideCallHierarchyIncomingCalls(e,t)}))},n.prototype.provideCallHierarchyOutgoingCalls=function(e,t){var r=this;return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('"+e+"', "+t+")",(function(){return r.languageService.provideCallHierarchyOutgoingCalls(e,t)}))},n.prototype.getEmitOutput=function(e){var t=this;return this.forwardJSONCall("getEmitOutput('"+e+"')",(function(){var n=t.languageService.getEmitOutput(e),i=n.diagnostics,o=a(n,["diagnostics"]);return r(r({},o),{diagnostics:t.realizeDiagnostics(i)})}))},n.prototype.getEmitOutputObject=function(e){var t=this;return d(this.logger,"getEmitOutput('"+e+"')",!1,(function(){return t.languageService.getEmitOutput(e)}),this.logPerformance)},n.prototype.toggleLineComment=function(e,t){var r=this;return this.forwardJSONCall("toggleLineComment('"+e+"', '"+JSON.stringify(t)+"')",(function(){return r.languageService.toggleLineComment(e,t)}))},n.prototype.toggleMultilineComment=function(e,t){var r=this;return this.forwardJSONCall("toggleMultilineComment('"+e+"', '"+JSON.stringify(t)+"')",(function(){return r.languageService.toggleMultilineComment(e,t)}))},n.prototype.commentSelection=function(e,t){var r=this;return this.forwardJSONCall("commentSelection('"+e+"', '"+JSON.stringify(t)+"')",(function(){return r.languageService.commentSelection(e,t)}))},n.prototype.uncommentSelection=function(e,t){var r=this;return this.forwardJSONCall("uncommentSelection('"+e+"', '"+JSON.stringify(t)+"')",(function(){return r.languageService.uncommentSelection(e,t)}))},n}(_);function g(e){return{spans:e.spans.join(","),endOfLineState:e.endOfLineState}}var m=function(t){function r(r,n){var i=t.call(this,r)||this;return i.logger=n,i.logPerformance=!1,i.classifier=e.createClassifier(),i}return o(r,t),r.prototype.getEncodedLexicalClassifications=function(e,t,r){var n=this;return void 0===r&&(r=!1),l(this.logger,"getEncodedLexicalClassifications",(function(){return g(n.classifier.getEncodedLexicalClassifications(e,t,r))}),this.logPerformance)},r.prototype.getClassificationsForLine=function(e,t,r){void 0===r&&(r=!1);for(var n=this.classifier.getClassificationsForLine(e,t,r),i="",a=0,o=n.entries;a=1&&arguments.length<=3?e.factory.createVariableDeclaration(t,void 0,r,n):e.Debug.fail("Argument count mismatch")}),t),e.updateVariableDeclaration=e.Debug.deprecate((function(t,r,n,i,a){return 5===arguments.length?e.factory.updateVariableDeclaration(t,r,n,i,a):4===arguments.length?e.factory.updateVariableDeclaration(t,r,t.exclamationToken,n,i):e.Debug.fail("Argument count mismatch")}),t),e.createImportClause=e.Debug.deprecate((function(t,r,n){return void 0===n&&(n=!1),e.factory.createImportClause(n,t,r)}),t),e.updateImportClause=e.Debug.deprecate((function(t,r,n,i){return e.factory.updateImportClause(t,i,r,n)}),t),e.createExportDeclaration=e.Debug.deprecate((function(t,r,n,i,a){return void 0===a&&(a=!1),e.factory.createExportDeclaration(t,r,a,n,i)}),t),e.updateExportDeclaration=e.Debug.deprecate((function(t,r,n,i,a,o){return e.factory.updateExportDeclaration(t,r,n,o,i,a)}),t),e.createJSDocParamTag=e.Debug.deprecate((function(t,r,n,i){return e.factory.createJSDocParameterTag(void 0,t,r,n,!1,i?e.factory.createNodeArray([e.factory.createJSDocText(i)]):void 0)}),t),e.createComma=e.Debug.deprecate((function(t,r){return e.factory.createComma(t,r)}),t),e.createLessThan=e.Debug.deprecate((function(t,r){return e.factory.createLessThan(t,r)}),t),e.createAssignment=e.Debug.deprecate((function(t,r){return e.factory.createAssignment(t,r)}),t),e.createStrictEquality=e.Debug.deprecate((function(t,r){return e.factory.createStrictEquality(t,r)}),t),e.createStrictInequality=e.Debug.deprecate((function(t,r){return e.factory.createStrictInequality(t,r)}),t),e.createAdd=e.Debug.deprecate((function(t,r){return e.factory.createAdd(t,r)}),t),e.createSubtract=e.Debug.deprecate((function(t,r){return e.factory.createSubtract(t,r)}),t),e.createLogicalAnd=e.Debug.deprecate((function(t,r){return e.factory.createLogicalAnd(t,r)}),t),e.createLogicalOr=e.Debug.deprecate((function(t,r){return e.factory.createLogicalOr(t,r)}),t),e.createPostfixIncrement=e.Debug.deprecate((function(t){return e.factory.createPostfixIncrement(t)}),t),e.createLogicalNot=e.Debug.deprecate((function(t){return e.factory.createLogicalNot(t)}),t),e.createNode=e.Debug.deprecate((function(t,r,n){return void 0===r&&(r=0),void 0===n&&(n=0),e.setTextRangePosEnd(298===t?e.parseBaseNodeFactory.createBaseSourceFileNode(t):78===t?e.parseBaseNodeFactory.createBaseIdentifierNode(t):79===t?e.parseBaseNodeFactory.createBasePrivateIdentifierNode(t):e.isNodeKind(t)?e.parseBaseNodeFactory.createBaseNode(t):e.parseBaseNodeFactory.createBaseTokenNode(t),r,n)}),{since:"4.0",warnAfter:"4.1",message:"Use an appropriate `factory` method instead."}),e.getMutableClone=e.Debug.deprecate((function(t){var r=e.factory.cloneNode(t);return e.setTextRange(r,t),e.setParent(r,t.parent),r}),{since:"4.0",warnAfter:"4.1",message:"Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`."}),e.isTypeAssertion=e.Debug.deprecate((function(e){return 207===e.kind}),{since:"4.0",warnAfter:"4.1",message:"Use `isTypeAssertionExpression` instead."}),e.isIdentifierOrPrivateIdentifier=e.Debug.deprecate((function(t){return e.isMemberName(t)}),{since:"4.2",warnAfter:"4.3",message:"Use `isMemberName` instead."})}(s||(s={}))})),gd=f((function(e,t){var r,n;Object.defineProperty(t,"__esModule",{value:!0}),t.AST_TOKEN_TYPES=t.AST_NODE_TYPES=void 0,(r=t.AST_NODE_TYPES||(t.AST_NODE_TYPES={})).ArrayExpression="ArrayExpression",r.ArrayPattern="ArrayPattern",r.ArrowFunctionExpression="ArrowFunctionExpression",r.AssignmentExpression="AssignmentExpression",r.AssignmentPattern="AssignmentPattern",r.AwaitExpression="AwaitExpression",r.BinaryExpression="BinaryExpression",r.BlockStatement="BlockStatement",r.BreakStatement="BreakStatement",r.CallExpression="CallExpression",r.CatchClause="CatchClause",r.ChainExpression="ChainExpression",r.ClassBody="ClassBody",r.ClassDeclaration="ClassDeclaration",r.ClassExpression="ClassExpression",r.ClassProperty="ClassProperty",r.ConditionalExpression="ConditionalExpression",r.ContinueStatement="ContinueStatement",r.DebuggerStatement="DebuggerStatement",r.Decorator="Decorator",r.DoWhileStatement="DoWhileStatement",r.EmptyStatement="EmptyStatement",r.ExportAllDeclaration="ExportAllDeclaration",r.ExportDefaultDeclaration="ExportDefaultDeclaration",r.ExportNamedDeclaration="ExportNamedDeclaration",r.ExportSpecifier="ExportSpecifier",r.ExpressionStatement="ExpressionStatement",r.ForInStatement="ForInStatement",r.ForOfStatement="ForOfStatement",r.ForStatement="ForStatement",r.FunctionDeclaration="FunctionDeclaration",r.FunctionExpression="FunctionExpression",r.Identifier="Identifier",r.IfStatement="IfStatement",r.ImportDeclaration="ImportDeclaration",r.ImportDefaultSpecifier="ImportDefaultSpecifier",r.ImportExpression="ImportExpression",r.ImportNamespaceSpecifier="ImportNamespaceSpecifier",r.ImportSpecifier="ImportSpecifier",r.JSXAttribute="JSXAttribute",r.JSXClosingElement="JSXClosingElement",r.JSXClosingFragment="JSXClosingFragment",r.JSXElement="JSXElement",r.JSXEmptyExpression="JSXEmptyExpression",r.JSXExpressionContainer="JSXExpressionContainer",r.JSXFragment="JSXFragment",r.JSXIdentifier="JSXIdentifier",r.JSXMemberExpression="JSXMemberExpression",r.JSXNamespacedName="JSXNamespacedName",r.JSXOpeningElement="JSXOpeningElement",r.JSXOpeningFragment="JSXOpeningFragment",r.JSXSpreadAttribute="JSXSpreadAttribute",r.JSXSpreadChild="JSXSpreadChild",r.JSXText="JSXText",r.LabeledStatement="LabeledStatement",r.Literal="Literal",r.LogicalExpression="LogicalExpression",r.MemberExpression="MemberExpression",r.MetaProperty="MetaProperty",r.MethodDefinition="MethodDefinition",r.NewExpression="NewExpression",r.ObjectExpression="ObjectExpression",r.ObjectPattern="ObjectPattern",r.Program="Program",r.Property="Property",r.RestElement="RestElement",r.ReturnStatement="ReturnStatement",r.SequenceExpression="SequenceExpression",r.SpreadElement="SpreadElement",r.Super="Super",r.SwitchCase="SwitchCase",r.SwitchStatement="SwitchStatement",r.TaggedTemplateExpression="TaggedTemplateExpression",r.TemplateElement="TemplateElement",r.TemplateLiteral="TemplateLiteral",r.ThisExpression="ThisExpression",r.ThrowStatement="ThrowStatement",r.TryStatement="TryStatement",r.UnaryExpression="UnaryExpression",r.UpdateExpression="UpdateExpression",r.VariableDeclaration="VariableDeclaration",r.VariableDeclarator="VariableDeclarator",r.WhileStatement="WhileStatement",r.WithStatement="WithStatement",r.YieldExpression="YieldExpression",r.TSAbstractClassProperty="TSAbstractClassProperty",r.TSAbstractKeyword="TSAbstractKeyword",r.TSAbstractMethodDefinition="TSAbstractMethodDefinition",r.TSAnyKeyword="TSAnyKeyword",r.TSArrayType="TSArrayType",r.TSAsExpression="TSAsExpression",r.TSAsyncKeyword="TSAsyncKeyword",r.TSBigIntKeyword="TSBigIntKeyword",r.TSBooleanKeyword="TSBooleanKeyword",r.TSCallSignatureDeclaration="TSCallSignatureDeclaration",r.TSClassImplements="TSClassImplements",r.TSConditionalType="TSConditionalType",r.TSConstructorType="TSConstructorType",r.TSConstructSignatureDeclaration="TSConstructSignatureDeclaration",r.TSDeclareFunction="TSDeclareFunction",r.TSDeclareKeyword="TSDeclareKeyword",r.TSEmptyBodyFunctionExpression="TSEmptyBodyFunctionExpression",r.TSEnumDeclaration="TSEnumDeclaration",r.TSEnumMember="TSEnumMember",r.TSExportAssignment="TSExportAssignment",r.TSExportKeyword="TSExportKeyword",r.TSExternalModuleReference="TSExternalModuleReference",r.TSFunctionType="TSFunctionType",r.TSImportEqualsDeclaration="TSImportEqualsDeclaration",r.TSImportType="TSImportType",r.TSIndexedAccessType="TSIndexedAccessType",r.TSIndexSignature="TSIndexSignature",r.TSInferType="TSInferType",r.TSInterfaceBody="TSInterfaceBody",r.TSInterfaceDeclaration="TSInterfaceDeclaration",r.TSInterfaceHeritage="TSInterfaceHeritage",r.TSIntersectionType="TSIntersectionType",r.TSIntrinsicKeyword="TSIntrinsicKeyword",r.TSLiteralType="TSLiteralType",r.TSMappedType="TSMappedType",r.TSMethodSignature="TSMethodSignature",r.TSModuleBlock="TSModuleBlock",r.TSModuleDeclaration="TSModuleDeclaration",r.TSNamedTupleMember="TSNamedTupleMember",r.TSNamespaceExportDeclaration="TSNamespaceExportDeclaration",r.TSNeverKeyword="TSNeverKeyword",r.TSNonNullExpression="TSNonNullExpression",r.TSNullKeyword="TSNullKeyword",r.TSNumberKeyword="TSNumberKeyword",r.TSObjectKeyword="TSObjectKeyword",r.TSOptionalType="TSOptionalType",r.TSParameterProperty="TSParameterProperty",r.TSParenthesizedType="TSParenthesizedType",r.TSPrivateKeyword="TSPrivateKeyword",r.TSPropertySignature="TSPropertySignature",r.TSProtectedKeyword="TSProtectedKeyword",r.TSPublicKeyword="TSPublicKeyword",r.TSQualifiedName="TSQualifiedName",r.TSReadonlyKeyword="TSReadonlyKeyword",r.TSRestType="TSRestType",r.TSStaticKeyword="TSStaticKeyword",r.TSStringKeyword="TSStringKeyword",r.TSSymbolKeyword="TSSymbolKeyword",r.TSTemplateLiteralType="TSTemplateLiteralType",r.TSThisType="TSThisType",r.TSTupleType="TSTupleType",r.TSTypeAliasDeclaration="TSTypeAliasDeclaration",r.TSTypeAnnotation="TSTypeAnnotation",r.TSTypeAssertion="TSTypeAssertion",r.TSTypeLiteral="TSTypeLiteral",r.TSTypeOperator="TSTypeOperator",r.TSTypeParameter="TSTypeParameter",r.TSTypeParameterDeclaration="TSTypeParameterDeclaration",r.TSTypeParameterInstantiation="TSTypeParameterInstantiation",r.TSTypePredicate="TSTypePredicate",r.TSTypeQuery="TSTypeQuery",r.TSTypeReference="TSTypeReference",r.TSUndefinedKeyword="TSUndefinedKeyword",r.TSUnionType="TSUnionType",r.TSUnknownKeyword="TSUnknownKeyword",r.TSVoidKeyword="TSVoidKeyword",(n=t.AST_TOKEN_TYPES||(t.AST_TOKEN_TYPES={})).Boolean="Boolean",n.Identifier="Identifier",n.JSXIdentifier="JSXIdentifier",n.JSXText="JSXText",n.Keyword="Keyword",n.Null="Null",n.Numeric="Numeric",n.Punctuator="Punctuator",n.RegularExpression="RegularExpression",n.String="String",n.Template="Template",n.Block="Block",n.Line="Line"})),md=Object.defineProperty({},"__esModule",{value:!0}),yd=Object.defineProperty({},"__esModule",{value:!0}),vd=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.TSESTree=void 0,t.TSESTree=i(gd)})),hd=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.AST_TOKEN_TYPES=t.AST_NODE_TYPES=void 0,Object.defineProperty(t,"AST_NODE_TYPES",{enumerable:!0,get:function(){return gd.AST_NODE_TYPES}});var i=gd;Object.defineProperty(t,"AST_TOKEN_TYPES",{enumerable:!0,get:function(){return i.AST_TOKEN_TYPES}}),n(md,t),n(yd,t),n(vd,t)})),Dd=Object.defineProperty({},"__esModule",{value:!0}),xd=Object.defineProperty({},"__esModule",{value:!0}),bd=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.TSESTree=t.AST_TOKEN_TYPES=t.AST_NODE_TYPES=void 0,Object.defineProperty(t,"AST_NODE_TYPES",{enumerable:!0,get:function(){return hd.AST_NODE_TYPES}}),Object.defineProperty(t,"AST_TOKEN_TYPES",{enumerable:!0,get:function(){return hd.AST_TOKEN_TYPES}}),Object.defineProperty(t,"TSESTree",{enumerable:!0,get:function(){return hd.TSESTree}}),n(Dd,t),n(xd,t)})),Sd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.xhtmlEntities=void 0,t.xhtmlEntities={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}})),Ed=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.firstDefined=t.nodeHasTokens=t.createError=t.TSError=t.convertTokens=t.convertToken=t.getTokenType=t.isChildUnwrappableOptionalChain=t.isChainExpression=t.isOptional=t.isComputedProperty=t.unescapeStringLiteralText=t.hasJSXAncestor=t.findFirstMatchingAncestor=t.findNextToken=t.getTSNodeAccessibility=t.getDeclarationKind=t.isJSXToken=t.isToken=t.getRange=t.canContainDirective=t.getLocFor=t.getLineAndCharacterFor=t.getBinaryExpressionType=t.isJSDocComment=t.isComment=t.isComma=t.getLastModifier=t.hasModifier=t.isESTreeClassMember=t.getTextForTokenKind=t.isLogicalOperator=t.isAssignmentOperator=void 0;const a=i(fd),o=a.SyntaxKind,s=[o.BarBarToken,o.AmpersandAmpersandToken,o.QuestionQuestionToken];function c(e){return e.kind>=o.FirstAssignment&&e.kind<=o.LastAssignment}function u(e){return s.includes(e.kind)}function l(e){return e.kind===o.SingleLineCommentTrivia||e.kind===o.MultiLineCommentTrivia}function d(e){return e.kind===o.JSDocComment}function p(e,t){const r=t.getLineAndCharacterOfPosition(e);return{line:r.line+1,column:r.character}}function f(e,t,r){return{start:p(e,r),end:p(t,r)}}function g(e){return e.kind>=o.FirstToken&&e.kind<=o.LastToken}function m(e){return e.kind>=o.JsxElement&&e.kind<=o.JsxAttribute}function y(e,t){for(;e;){if(t(e))return e;e=e.parent}}function v(e){return!!y(e,m)}function h(e){return e.type===bd.AST_NODE_TYPES.ChainExpression}function D(e){if("originalKeywordKind"in e&&e.originalKeywordKind)return e.originalKeywordKind===o.NullKeyword?bd.AST_TOKEN_TYPES.Null:e.originalKeywordKind>=o.FirstFutureReservedWord&&e.originalKeywordKind<=o.LastKeyword?bd.AST_TOKEN_TYPES.Identifier:bd.AST_TOKEN_TYPES.Keyword;if(e.kind>=o.FirstKeyword&&e.kind<=o.LastFutureReservedWord)return e.kind===o.FalseKeyword||e.kind===o.TrueKeyword?bd.AST_TOKEN_TYPES.Boolean:bd.AST_TOKEN_TYPES.Keyword;if(e.kind>=o.FirstPunctuation&&e.kind<=o.LastPunctuation)return bd.AST_TOKEN_TYPES.Punctuator;if(e.kind>=o.NoSubstitutionTemplateLiteral&&e.kind<=o.TemplateTail)return bd.AST_TOKEN_TYPES.Template;switch(e.kind){case o.NumericLiteral:return bd.AST_TOKEN_TYPES.Numeric;case o.JsxText:return bd.AST_TOKEN_TYPES.JSXText;case o.StringLiteral:return!e.parent||e.parent.kind!==o.JsxAttribute&&e.parent.kind!==o.JsxElement?bd.AST_TOKEN_TYPES.String:bd.AST_TOKEN_TYPES.JSXText;case o.RegularExpressionLiteral:return bd.AST_TOKEN_TYPES.RegularExpression;case o.Identifier:case o.ConstructorKeyword:case o.GetKeyword:case o.SetKeyword:}if(e.parent&&e.kind===o.Identifier){if(m(e.parent))return bd.AST_TOKEN_TYPES.JSXIdentifier;if(e.parent.kind===o.PropertyAccessExpression&&v(e))return bd.AST_TOKEN_TYPES.JSXIdentifier}return bd.AST_TOKEN_TYPES.Identifier}function x(e,t){const r=e.kind===o.JsxText?e.getFullStart():e.getStart(t),n=e.getEnd(),i=t.text.slice(r,n),a=D(e);return a===bd.AST_TOKEN_TYPES.RegularExpression?{type:a,value:i,range:[r,n],loc:f(r,n,t),regex:{pattern:i.slice(1,i.lastIndexOf("/")),flags:i.slice(i.lastIndexOf("/")+1)}}:{type:a,value:i,range:[r,n],loc:f(r,n,t)}}t.isAssignmentOperator=c,t.isLogicalOperator=u,t.getTextForTokenKind=function(e){return a.tokenToString(e)},t.isESTreeClassMember=function(e){return e.kind!==o.SemicolonClassElement},t.hasModifier=function(e,t){return!!t.modifiers&&!!t.modifiers.length&&t.modifiers.some((t=>t.kind===e))},t.getLastModifier=function(e){return!!e.modifiers&&!!e.modifiers.length&&e.modifiers[e.modifiers.length-1]||null},t.isComma=function(e){return e.kind===o.CommaToken},t.isComment=l,t.isJSDocComment=d,t.getBinaryExpressionType=function(e){return c(e)?bd.AST_NODE_TYPES.AssignmentExpression:u(e)?bd.AST_NODE_TYPES.LogicalExpression:bd.AST_NODE_TYPES.BinaryExpression},t.getLineAndCharacterFor=p,t.getLocFor=f,t.canContainDirective=function(e){if(e.kind===a.SyntaxKind.Block)switch(e.parent.kind){case a.SyntaxKind.Constructor:case a.SyntaxKind.GetAccessor:case a.SyntaxKind.SetAccessor:case a.SyntaxKind.ArrowFunction:case a.SyntaxKind.FunctionExpression:case a.SyntaxKind.FunctionDeclaration:case a.SyntaxKind.MethodDeclaration:return!0;default:return!1}return!0},t.getRange=function(e,t){return[e.getStart(t),e.getEnd()]},t.isToken=g,t.isJSXToken=m,t.getDeclarationKind=function(e){return e.flags&a.NodeFlags.Let?"let":e.flags&a.NodeFlags.Const?"const":"var"},t.getTSNodeAccessibility=function(e){const t=e.modifiers;if(!t)return null;for(let e=0;e(n.pos<=e.pos&&n.end>e.end||n.pos===e.end)&&S(n,r)?t(n):void 0))}(t)},t.findFirstMatchingAncestor=y,t.hasJSXAncestor=v,t.unescapeStringLiteralText=function(e){return e.replace(/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,(e=>{const t=e.slice(1,-1);if("#"===t[0]){const r="x"===t[1]?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return r>1114111?e:String.fromCodePoint(r)}return Sd.xhtmlEntities[t]||e}))},t.isComputedProperty=function(e){return e.kind===o.ComputedPropertyName},t.isOptional=function(e){return!!e.questionToken&&e.questionToken.kind===o.QuestionToken},t.isChainExpression=h,t.isChildUnwrappableOptionalChain=function(e,t){return h(t)&&e.expression.kind!==a.SyntaxKind.ParenthesizedExpression},t.getTokenType=D,t.convertToken=x,t.convertTokens=function(e){const t=[];return function r(n){if(!l(n)&&!d(n))if(g(n)&&n.kind!==o.EndOfFileToken){const r=x(n,e);r&&t.push(r)}else n.getChildren(e).forEach(r)}(e),t};class b extends Error{constructor(e,t,r,n,i){super(e),this.fileName=t,this.index=r,this.lineNumber=n,this.column=i,Object.defineProperty(this,"name",{value:new.target.name,enumerable:!1,configurable:!0})}}function S(e,t){return e.kind===o.EndOfFileToken?!!e.jsDoc:0!==e.getWidth(t)}function E(e,t){if(void 0!==e)for(let r=0;r= ${e}.0 || >= ${e}.1-rc || >= ${e}.0-beta`,{includePrerelease:!0})}const c=["3.7","3.8","3.9","4.0"],u={};t.typescriptVersionIsAtLeast=u;for(const e of c)u[e]=s(e)})),Cd=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Converter=t.convertError=void 0;const a=i(fd),o=a.SyntaxKind;t.convertError=function(e){return Ed.createError(e.file,e.start,e.message||e.messageText)};t.Converter=class{constructor(e,t){this.esTreeNodeToTSNodeMap=new WeakMap,this.tsNodeToESTreeNodeMap=new WeakMap,this.allowPattern=!1,this.inTypeMode=!1,this.ast=e,this.options=Object.assign({},t)}getASTMaps(){return{esTreeNodeToTSNodeMap:this.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:this.tsNodeToESTreeNodeMap}}convertProgram(){return this.converter(this.ast)}converter(e,t,r,n){if(!e)return null;const i=this.inTypeMode,a=this.allowPattern;void 0!==r&&(this.inTypeMode=r),void 0!==n&&(this.allowPattern=n);const o=this.convertNode(e,null!=t?t:e.parent);return this.registerTSNodeInNodeMap(e,o),this.inTypeMode=i,this.allowPattern=a,o}fixExports(e,t){if(e.modifiers&&e.modifiers[0].kind===o.ExportKeyword){this.registerTSNodeInNodeMap(e,t);const r=e.modifiers[0],n=e.modifiers[1],i=n&&n.kind===o.DefaultKeyword,a=i?Ed.findNextToken(n,this.ast,this.ast):Ed.findNextToken(r,this.ast,this.ast);if(t.range[0]=a.getStart(this.ast),t.loc=Ed.getLocFor(t.range[0],t.range[1],this.ast),i)return this.createNode(e,{type:bd.AST_NODE_TYPES.ExportDefaultDeclaration,declaration:t,range:[r.getStart(this.ast),t.range[1]],exportKind:"value"});{const n=t.type===bd.AST_NODE_TYPES.TSInterfaceDeclaration||t.type===bd.AST_NODE_TYPES.TSTypeAliasDeclaration,i=!0===t.declare;return this.createNode(e,{type:bd.AST_NODE_TYPES.ExportNamedDeclaration,declaration:t,specifiers:[],source:null,exportKind:n||i?"type":"value",range:[r.getStart(this.ast),t.range[1]]})}}return t}registerTSNodeInNodeMap(e,t){t&&this.options.shouldPreserveNodeMaps&&(this.tsNodeToESTreeNodeMap.has(e)||this.tsNodeToESTreeNodeMap.set(e,t))}convertPattern(e,t){return this.converter(e,t,this.inTypeMode,!0)}convertChild(e,t){return this.converter(e,t,this.inTypeMode,!1)}convertType(e,t){return this.converter(e,t,!0,!1)}createNode(e,t){const r=t;return r.range||(r.range=Ed.getRange(e,this.ast)),r.loc||(r.loc=Ed.getLocFor(r.range[0],r.range[1],this.ast)),r&&this.options.shouldPreserveNodeMaps&&this.esTreeNodeToTSNodeMap.set(r,e),r}convertBindingNameWithTypeAnnotation(e,t,r){const n=this.convertPattern(e);return t&&(n.typeAnnotation=this.convertTypeAnnotation(t,r),this.fixParentLocation(n,n.typeAnnotation.range)),n}convertTypeAnnotation(e,t){const r=(null==t?void 0:t.kind)===o.FunctionType||(null==t?void 0:t.kind)===o.ConstructorType?2:1,n=e.getFullStart()-r,i=Ed.getLocFor(n,e.end,this.ast);return{type:bd.AST_NODE_TYPES.TSTypeAnnotation,loc:i,range:[n,e.end],typeAnnotation:this.convertType(e)}}convertBodyExpressions(e,t){let r=Ed.canContainDirective(t);return e.map((e=>{const t=this.convertChild(e);if(r){if((null==t?void 0:t.expression)&&a.isExpressionStatement(e)&&a.isStringLiteral(e.expression)){const e=t.expression.raw;return t.directive=e.slice(1,-1),t}r=!1}return t})).filter((e=>e))}convertTypeArgumentsToTypeParameters(e,t){const r=Ed.findNextToken(e,this.ast,this.ast);return this.createNode(t,{type:bd.AST_NODE_TYPES.TSTypeParameterInstantiation,range:[e.pos-1,r.end],params:e.map((e=>this.convertType(e)))})}convertTSTypeParametersToTypeParametersDeclaration(e){const t=Ed.findNextToken(e,this.ast,this.ast);return{type:bd.AST_NODE_TYPES.TSTypeParameterDeclaration,range:[e.pos-1,t.end],loc:Ed.getLocFor(e.pos-1,t.end,this.ast),params:e.map((e=>this.convertType(e)))}}convertParameters(e){return e&&e.length?e.map((e=>{var t;const r=this.convertChild(e);return(null===(t=e.decorators)||void 0===t?void 0:t.length)&&(r.decorators=e.decorators.map((e=>this.convertChild(e)))),r})):[]}convertChainExpression(e,t){const{child:r,isOptional:n}=e.type===bd.AST_NODE_TYPES.MemberExpression?{child:e.object,isOptional:e.optional}:e.type===bd.AST_NODE_TYPES.CallExpression?{child:e.callee,isOptional:e.optional}:{child:e.expression,isOptional:!1},i=Ed.isChildUnwrappableOptionalChain(t,r);if(!i&&!n)return e;if(i&&Ed.isChainExpression(r)){const t=r.expression;e.type===bd.AST_NODE_TYPES.MemberExpression?e.object=t:e.type===bd.AST_NODE_TYPES.CallExpression?e.callee=t:e.expression=t}return this.createNode(t,{type:bd.AST_NODE_TYPES.ChainExpression,expression:e})}deeplyCopy(e){if(e.kind===a.SyntaxKind.JSDocFunctionType)throw Ed.createError(this.ast,e.pos,"JSDoc types can only be used inside documentation comments.");const t=`TS${o[e.kind]}`;if(this.options.errorOnUnknownASTType&&!bd.AST_NODE_TYPES[t])throw new Error(`Unknown AST_NODE_TYPE: "${t}"`);const r=this.createNode(e,{type:t});return"type"in e&&(r.typeAnnotation=e.type&&"kind"in e.type&&a.isTypeNode(e.type)?this.convertTypeAnnotation(e.type,e):null),"typeArguments"in e&&(r.typeParameters=e.typeArguments&&"pos"in e.typeArguments?this.convertTypeArgumentsToTypeParameters(e.typeArguments,e):null),"typeParameters"in e&&(r.typeParameters=e.typeParameters&&"pos"in e.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters):null),"decorators"in e&&e.decorators&&e.decorators.length&&(r.decorators=e.decorators.map((e=>this.convertChild(e)))),Object.entries(e).filter((([e])=>!/^(?:_children|kind|parent|pos|end|flags|modifierFlagsCache|jsDoc|type|typeArguments|typeParameters|decorators|transformFlags)$/.test(e))).forEach((([e,t])=>{Array.isArray(t)?r[e]=t.map((e=>this.convertChild(e))):t&&"object"==typeof t&&t.kind?r[e]=this.convertChild(t):r[e]=t})),r}convertJSXIdentifier(e){const t=this.createNode(e,{type:bd.AST_NODE_TYPES.JSXIdentifier,name:e.getText()});return this.registerTSNodeInNodeMap(e,t),t}convertJSXNamespaceOrIdentifier(e){const t=e.getText(),r=t.indexOf(":");if(r>0){const n=Ed.getRange(e,this.ast),i=this.createNode(e,{type:bd.AST_NODE_TYPES.JSXNamespacedName,namespace:this.createNode(e,{type:bd.AST_NODE_TYPES.JSXIdentifier,name:t.slice(0,r),range:[n[0],n[0]+r]}),name:this.createNode(e,{type:bd.AST_NODE_TYPES.JSXIdentifier,name:t.slice(r+1),range:[n[0]+r+1,n[1]]}),range:n});return this.registerTSNodeInNodeMap(e,i),i}return this.convertJSXIdentifier(e)}convertJSXTagName(e,t){let r;switch(e.kind){case o.PropertyAccessExpression:if(e.name.kind===o.PrivateIdentifier)throw new Error("Non-private identifier expected.");r=this.createNode(e,{type:bd.AST_NODE_TYPES.JSXMemberExpression,object:this.convertJSXTagName(e.expression,t),property:this.convertJSXIdentifier(e.name)});break;case o.ThisKeyword:case o.Identifier:default:return this.convertJSXNamespaceOrIdentifier(e)}return this.registerTSNodeInNodeMap(e,r),r}convertMethodSignature(e){const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSMethodSignature,computed:Ed.isComputedProperty(e.name),key:this.convertChild(e.name),params:this.convertParameters(e.parameters),kind:(()=>{switch(e.kind){case o.GetAccessor:return"get";case o.SetAccessor:return"set";case o.MethodSignature:return"method"}})()});Ed.isOptional(e)&&(t.optional=!0),e.type&&(t.returnType=this.convertTypeAnnotation(e.type,e)),Ed.hasModifier(o.ReadonlyKeyword,e)&&(t.readonly=!0),e.typeParameters&&(t.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters));const r=Ed.getTSNodeAccessibility(e);return r&&(t.accessibility=r),Ed.hasModifier(o.ExportKeyword,e)&&(t.export=!0),Ed.hasModifier(o.StaticKeyword,e)&&(t.static=!0),t}applyModifiersToResult(e,t){if(!t||!t.length)return;const r=[];for(let n=0;ne.range[1]&&(e.range[1]=t[1],e.loc.end=Ed.getLineAndCharacterFor(e.range[1],this.ast))}convertNode(e,t){var r,n,i,s,c,u,l,d,_,p;switch(e.kind){case o.SourceFile:return this.createNode(e,{type:bd.AST_NODE_TYPES.Program,body:this.convertBodyExpressions(e.statements,e),sourceType:e.externalModuleIndicator?"module":"script",range:[e.getStart(this.ast),e.endOfFileToken.end]});case o.Block:return this.createNode(e,{type:bd.AST_NODE_TYPES.BlockStatement,body:this.convertBodyExpressions(e.statements,e)});case o.Identifier:return this.createNode(e,{type:bd.AST_NODE_TYPES.Identifier,name:e.text});case o.WithStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.WithStatement,object:this.convertChild(e.expression),body:this.convertChild(e.statement)});case o.ReturnStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ReturnStatement,argument:this.convertChild(e.expression)});case o.LabeledStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.LabeledStatement,label:this.convertChild(e.label),body:this.convertChild(e.statement)});case o.ContinueStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ContinueStatement,label:this.convertChild(e.label)});case o.BreakStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.BreakStatement,label:this.convertChild(e.label)});case o.IfStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.IfStatement,test:this.convertChild(e.expression),consequent:this.convertChild(e.thenStatement),alternate:this.convertChild(e.elseStatement)});case o.SwitchStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.SwitchStatement,discriminant:this.convertChild(e.expression),cases:e.caseBlock.clauses.map((e=>this.convertChild(e)))});case o.CaseClause:case o.DefaultClause:return this.createNode(e,{type:bd.AST_NODE_TYPES.SwitchCase,test:e.kind===o.CaseClause?this.convertChild(e.expression):null,consequent:e.statements.map((e=>this.convertChild(e)))});case o.ThrowStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ThrowStatement,argument:this.convertChild(e.expression)});case o.TryStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.TryStatement,block:this.convertChild(e.tryBlock),handler:this.convertChild(e.catchClause),finalizer:this.convertChild(e.finallyBlock)});case o.CatchClause:return this.createNode(e,{type:bd.AST_NODE_TYPES.CatchClause,param:e.variableDeclaration?this.convertBindingNameWithTypeAnnotation(e.variableDeclaration.name,e.variableDeclaration.type):null,body:this.convertChild(e.block)});case o.WhileStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.WhileStatement,test:this.convertChild(e.expression),body:this.convertChild(e.statement)});case o.DoStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.DoWhileStatement,test:this.convertChild(e.expression),body:this.convertChild(e.statement)});case o.ForStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ForStatement,init:this.convertChild(e.initializer),test:this.convertChild(e.condition),update:this.convertChild(e.incrementor),body:this.convertChild(e.statement)});case o.ForInStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ForInStatement,left:this.convertPattern(e.initializer),right:this.convertChild(e.expression),body:this.convertChild(e.statement)});case o.ForOfStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ForOfStatement,left:this.convertPattern(e.initializer),right:this.convertChild(e.expression),body:this.convertChild(e.statement),await:Boolean(e.awaitModifier&&e.awaitModifier.kind===o.AwaitKeyword)});case o.FunctionDeclaration:{const t=Ed.hasModifier(o.DeclareKeyword,e),r=this.createNode(e,{type:t||!e.body?bd.AST_NODE_TYPES.TSDeclareFunction:bd.AST_NODE_TYPES.FunctionDeclaration,id:this.convertChild(e.name),generator:!!e.asteriskToken,expression:!1,async:Ed.hasModifier(o.AsyncKeyword,e),params:this.convertParameters(e.parameters),body:this.convertChild(e.body)||void 0});return e.type&&(r.returnType=this.convertTypeAnnotation(e.type,e)),t&&(r.declare=!0),e.typeParameters&&(r.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),this.fixExports(e,r)}case o.VariableDeclaration:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.VariableDeclarator,id:this.convertBindingNameWithTypeAnnotation(e.name,e.type,e),init:this.convertChild(e.initializer)});return e.exclamationToken&&(t.definite=!0),t}case o.VariableStatement:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.VariableDeclaration,declarations:e.declarationList.declarations.map((e=>this.convertChild(e))),kind:Ed.getDeclarationKind(e.declarationList)});return e.decorators&&(t.decorators=e.decorators.map((e=>this.convertChild(e)))),Ed.hasModifier(o.DeclareKeyword,e)&&(t.declare=!0),this.fixExports(e,t)}case o.VariableDeclarationList:return this.createNode(e,{type:bd.AST_NODE_TYPES.VariableDeclaration,declarations:e.declarations.map((e=>this.convertChild(e))),kind:Ed.getDeclarationKind(e)});case o.ExpressionStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.ExpressionStatement,expression:this.convertChild(e.expression)});case o.ThisKeyword:return this.createNode(e,{type:bd.AST_NODE_TYPES.ThisExpression});case o.ArrayLiteralExpression:return this.allowPattern?this.createNode(e,{type:bd.AST_NODE_TYPES.ArrayPattern,elements:e.elements.map((e=>this.convertPattern(e)))}):this.createNode(e,{type:bd.AST_NODE_TYPES.ArrayExpression,elements:e.elements.map((e=>this.convertChild(e)))});case o.ObjectLiteralExpression:return this.allowPattern?this.createNode(e,{type:bd.AST_NODE_TYPES.ObjectPattern,properties:e.properties.map((e=>this.convertPattern(e)))}):this.createNode(e,{type:bd.AST_NODE_TYPES.ObjectExpression,properties:e.properties.map((e=>this.convertChild(e)))});case o.PropertyAssignment:return this.createNode(e,{type:bd.AST_NODE_TYPES.Property,key:this.convertChild(e.name),value:this.converter(e.initializer,e,this.inTypeMode,this.allowPattern),computed:Ed.isComputedProperty(e.name),method:!1,shorthand:!1,kind:"init"});case o.ShorthandPropertyAssignment:return e.objectAssignmentInitializer?this.createNode(e,{type:bd.AST_NODE_TYPES.Property,key:this.convertChild(e.name),value:this.createNode(e,{type:bd.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(e.name),right:this.convertChild(e.objectAssignmentInitializer)}),computed:!1,method:!1,shorthand:!0,kind:"init"}):this.createNode(e,{type:bd.AST_NODE_TYPES.Property,key:this.convertChild(e.name),value:this.convertChild(e.name),computed:!1,method:!1,shorthand:!0,kind:"init"});case o.ComputedPropertyName:return this.convertChild(e.expression);case o.PropertyDeclaration:{const t=Ed.hasModifier(o.AbstractKeyword,e),r=this.createNode(e,{type:t?bd.AST_NODE_TYPES.TSAbstractClassProperty:bd.AST_NODE_TYPES.ClassProperty,key:this.convertChild(e.name),value:this.convertChild(e.initializer),computed:Ed.isComputedProperty(e.name),static:Ed.hasModifier(o.StaticKeyword,e),readonly:Ed.hasModifier(o.ReadonlyKeyword,e)||void 0,declare:Ed.hasModifier(o.DeclareKeyword,e),override:Ed.hasModifier(o.OverrideKeyword,e)});e.type&&(r.typeAnnotation=this.convertTypeAnnotation(e.type,e)),e.decorators&&(r.decorators=e.decorators.map((e=>this.convertChild(e))));const n=Ed.getTSNodeAccessibility(e);return n&&(r.accessibility=n),e.name.kind!==o.Identifier&&e.name.kind!==o.ComputedPropertyName||!e.questionToken||(r.optional=!0),e.exclamationToken&&(r.definite=!0),r.key.type===bd.AST_NODE_TYPES.Literal&&e.questionToken&&(r.optional=!0),r}case o.GetAccessor:case o.SetAccessor:if(e.parent.kind===o.InterfaceDeclaration||e.parent.kind===o.TypeLiteral)return this.convertMethodSignature(e);case o.MethodDeclaration:{const r=this.createNode(e,{type:e.body?bd.AST_NODE_TYPES.FunctionExpression:bd.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,generator:!!e.asteriskToken,expression:!1,async:Ed.hasModifier(o.AsyncKeyword,e),body:this.convertChild(e.body),range:[e.parameters.pos-1,e.end],params:[]});let n;if(e.type&&(r.returnType=this.convertTypeAnnotation(e.type,e)),e.typeParameters&&(r.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters),this.fixParentLocation(r,r.typeParameters.range)),t.kind===o.ObjectLiteralExpression)r.params=e.parameters.map((e=>this.convertChild(e))),n=this.createNode(e,{type:bd.AST_NODE_TYPES.Property,key:this.convertChild(e.name),value:r,computed:Ed.isComputedProperty(e.name),method:e.kind===o.MethodDeclaration,shorthand:!1,kind:"init"});else{r.params=this.convertParameters(e.parameters);const t=Ed.hasModifier(o.AbstractKeyword,e)?bd.AST_NODE_TYPES.TSAbstractMethodDefinition:bd.AST_NODE_TYPES.MethodDefinition;n=this.createNode(e,{type:t,key:this.convertChild(e.name),value:r,computed:Ed.isComputedProperty(e.name),static:Ed.hasModifier(o.StaticKeyword,e),kind:"method",override:Ed.hasModifier(o.OverrideKeyword,e)}),e.decorators&&(n.decorators=e.decorators.map((e=>this.convertChild(e))));const i=Ed.getTSNodeAccessibility(e);i&&(n.accessibility=i)}return e.questionToken&&(n.optional=!0),e.kind===o.GetAccessor?n.kind="get":e.kind===o.SetAccessor?n.kind="set":n.static||e.name.kind!==o.StringLiteral||"constructor"!==e.name.text||n.type===bd.AST_NODE_TYPES.Property||(n.kind="constructor"),n}case o.Constructor:{const t=Ed.getLastModifier(e),r=t&&Ed.findNextToken(t,e,this.ast)||e.getFirstToken(),n=this.createNode(e,{type:e.body?bd.AST_NODE_TYPES.FunctionExpression:bd.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,id:null,params:this.convertParameters(e.parameters),generator:!1,expression:!1,async:!1,body:this.convertChild(e.body),range:[e.parameters.pos-1,e.end]});e.typeParameters&&(n.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters),this.fixParentLocation(n,n.typeParameters.range)),e.type&&(n.returnType=this.convertTypeAnnotation(e.type,e));const i=this.createNode(e,{type:bd.AST_NODE_TYPES.Identifier,name:"constructor",range:[r.getStart(this.ast),r.end]}),a=Ed.hasModifier(o.StaticKeyword,e),s=this.createNode(e,{type:Ed.hasModifier(o.AbstractKeyword,e)?bd.AST_NODE_TYPES.TSAbstractMethodDefinition:bd.AST_NODE_TYPES.MethodDefinition,key:i,value:n,computed:!1,static:a,kind:a?"method":"constructor",override:!1}),c=Ed.getTSNodeAccessibility(e);return c&&(s.accessibility=c),s}case o.FunctionExpression:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.FunctionExpression,id:this.convertChild(e.name),generator:!!e.asteriskToken,params:this.convertParameters(e.parameters),body:this.convertChild(e.body),async:Ed.hasModifier(o.AsyncKeyword,e),expression:!1});return e.type&&(t.returnType=this.convertTypeAnnotation(e.type,e)),e.typeParameters&&(t.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),t}case o.SuperKeyword:return this.createNode(e,{type:bd.AST_NODE_TYPES.Super});case o.ArrayBindingPattern:return this.createNode(e,{type:bd.AST_NODE_TYPES.ArrayPattern,elements:e.elements.map((e=>this.convertPattern(e)))});case o.OmittedExpression:return null;case o.ObjectBindingPattern:return this.createNode(e,{type:bd.AST_NODE_TYPES.ObjectPattern,properties:e.elements.map((e=>this.convertPattern(e)))});case o.BindingElement:if(t.kind===o.ArrayBindingPattern){const r=this.convertChild(e.name,t);return e.initializer?this.createNode(e,{type:bd.AST_NODE_TYPES.AssignmentPattern,left:r,right:this.convertChild(e.initializer)}):e.dotDotDotToken?this.createNode(e,{type:bd.AST_NODE_TYPES.RestElement,argument:r}):r}{let t;return t=e.dotDotDotToken?this.createNode(e,{type:bd.AST_NODE_TYPES.RestElement,argument:this.convertChild(null!==(r=e.propertyName)&&void 0!==r?r:e.name)}):this.createNode(e,{type:bd.AST_NODE_TYPES.Property,key:this.convertChild(null!==(n=e.propertyName)&&void 0!==n?n:e.name),value:this.convertChild(e.name),computed:Boolean(e.propertyName&&e.propertyName.kind===o.ComputedPropertyName),method:!1,shorthand:!e.propertyName,kind:"init"}),e.initializer&&(t.value=this.createNode(e,{type:bd.AST_NODE_TYPES.AssignmentPattern,left:this.convertChild(e.name),right:this.convertChild(e.initializer),range:[e.name.getStart(this.ast),e.initializer.end]})),t}case o.ArrowFunction:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.ArrowFunctionExpression,generator:!1,id:null,params:this.convertParameters(e.parameters),body:this.convertChild(e.body),async:Ed.hasModifier(o.AsyncKeyword,e),expression:e.body.kind!==o.Block});return e.type&&(t.returnType=this.convertTypeAnnotation(e.type,e)),e.typeParameters&&(t.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),t}case o.YieldExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.YieldExpression,delegate:!!e.asteriskToken,argument:this.convertChild(e.expression)});case o.AwaitExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.AwaitExpression,argument:this.convertChild(e.expression)});case o.NoSubstitutionTemplateLiteral:return this.createNode(e,{type:bd.AST_NODE_TYPES.TemplateLiteral,quasis:[this.createNode(e,{type:bd.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-1),cooked:e.text},tail:!0})],expressions:[]});case o.TemplateExpression:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TemplateLiteral,quasis:[this.convertChild(e.head)],expressions:[]});return e.templateSpans.forEach((e=>{t.expressions.push(this.convertChild(e.expression)),t.quasis.push(this.convertChild(e.literal))})),t}case o.TaggedTemplateExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.TaggedTemplateExpression,typeParameters:e.typeArguments?this.convertTypeArgumentsToTypeParameters(e.typeArguments,e):void 0,tag:this.convertChild(e.tag),quasi:this.convertChild(e.template)});case o.TemplateHead:case o.TemplateMiddle:case o.TemplateTail:{const t=e.kind===o.TemplateTail;return this.createNode(e,{type:bd.AST_NODE_TYPES.TemplateElement,value:{raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-(t?1:2)),cooked:e.text},tail:t})}case o.SpreadAssignment:case o.SpreadElement:return this.allowPattern?this.createNode(e,{type:bd.AST_NODE_TYPES.RestElement,argument:this.convertPattern(e.expression)}):this.createNode(e,{type:bd.AST_NODE_TYPES.SpreadElement,argument:this.convertChild(e.expression)});case o.Parameter:{let r,n;return e.dotDotDotToken?r=n=this.createNode(e,{type:bd.AST_NODE_TYPES.RestElement,argument:this.convertChild(e.name)}):e.initializer?(r=this.convertChild(e.name),n=this.createNode(e,{type:bd.AST_NODE_TYPES.AssignmentPattern,left:r,right:this.convertChild(e.initializer)}),e.modifiers&&(n.range[0]=r.range[0],n.loc=Ed.getLocFor(n.range[0],n.range[1],this.ast))):r=n=this.convertChild(e.name,t),e.type&&(r.typeAnnotation=this.convertTypeAnnotation(e.type,e),this.fixParentLocation(r,r.typeAnnotation.range)),e.questionToken&&(e.questionToken.end>r.range[1]&&(r.range[1]=e.questionToken.end,r.loc.end=Ed.getLineAndCharacterFor(r.range[1],this.ast)),r.optional=!0),e.modifiers?this.createNode(e,{type:bd.AST_NODE_TYPES.TSParameterProperty,accessibility:null!==(i=Ed.getTSNodeAccessibility(e))&&void 0!==i?i:void 0,readonly:Ed.hasModifier(o.ReadonlyKeyword,e)||void 0,static:Ed.hasModifier(o.StaticKeyword,e)||void 0,export:Ed.hasModifier(o.ExportKeyword,e)||void 0,override:Ed.hasModifier(o.OverrideKeyword,e)||void 0,parameter:n}):n}case o.ClassDeclaration:case o.ClassExpression:{const t=null!==(s=e.heritageClauses)&&void 0!==s?s:[],r=e.kind===o.ClassDeclaration?bd.AST_NODE_TYPES.ClassDeclaration:bd.AST_NODE_TYPES.ClassExpression,n=t.find((e=>e.token===o.ExtendsKeyword)),i=t.find((e=>e.token===o.ImplementsKeyword)),a=this.createNode(e,{type:r,id:this.convertChild(e.name),body:this.createNode(e,{type:bd.AST_NODE_TYPES.ClassBody,body:[],range:[e.members.pos-1,e.end]}),superClass:(null==n?void 0:n.types[0])?this.convertChild(n.types[0].expression):null});if(n){if(n.types.length>1)throw Ed.createError(this.ast,n.types[1].pos,"Classes can only extend a single class.");(null===(c=n.types[0])||void 0===c?void 0:c.typeArguments)&&(a.superTypeParameters=this.convertTypeArgumentsToTypeParameters(n.types[0].typeArguments,n.types[0]))}e.typeParameters&&(a.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),i&&(a.implements=i.types.map((e=>this.convertChild(e)))),Ed.hasModifier(o.AbstractKeyword,e)&&(a.abstract=!0),Ed.hasModifier(o.DeclareKeyword,e)&&(a.declare=!0),e.decorators&&(a.decorators=e.decorators.map((e=>this.convertChild(e))));const u=e.members.filter(Ed.isESTreeClassMember);return u.length&&(a.body.body=u.map((e=>this.convertChild(e)))),this.fixExports(e,a)}case o.ModuleBlock:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSModuleBlock,body:this.convertBodyExpressions(e.statements,e)});case o.ImportDeclaration:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.ImportDeclaration,source:this.convertChild(e.moduleSpecifier),specifiers:[],importKind:"value"});if(e.importClause&&(e.importClause.isTypeOnly&&(t.importKind="type"),e.importClause.name&&t.specifiers.push(this.convertChild(e.importClause)),e.importClause.namedBindings))switch(e.importClause.namedBindings.kind){case o.NamespaceImport:t.specifiers.push(this.convertChild(e.importClause.namedBindings));break;case o.NamedImports:t.specifiers=t.specifiers.concat(e.importClause.namedBindings.elements.map((e=>this.convertChild(e))))}return t}case o.NamespaceImport:return this.createNode(e,{type:bd.AST_NODE_TYPES.ImportNamespaceSpecifier,local:this.convertChild(e.name)});case o.ImportSpecifier:return this.createNode(e,{type:bd.AST_NODE_TYPES.ImportSpecifier,local:this.convertChild(e.name),imported:this.convertChild(null!==(u=e.propertyName)&&void 0!==u?u:e.name)});case o.ImportClause:{const t=this.convertChild(e.name);return this.createNode(e,{type:bd.AST_NODE_TYPES.ImportDefaultSpecifier,local:t,range:t.range})}case o.ExportDeclaration:return(null===(l=e.exportClause)||void 0===l?void 0:l.kind)===o.NamedExports?this.createNode(e,{type:bd.AST_NODE_TYPES.ExportNamedDeclaration,source:this.convertChild(e.moduleSpecifier),specifiers:e.exportClause.elements.map((e=>this.convertChild(e))),exportKind:e.isTypeOnly?"type":"value",declaration:null}):this.createNode(e,{type:bd.AST_NODE_TYPES.ExportAllDeclaration,source:this.convertChild(e.moduleSpecifier),exportKind:e.isTypeOnly?"type":"value",exported:e.exportClause&&e.exportClause.kind===o.NamespaceExport?this.convertChild(e.exportClause.name):null});case o.ExportSpecifier:return this.createNode(e,{type:bd.AST_NODE_TYPES.ExportSpecifier,local:this.convertChild(null!==(d=e.propertyName)&&void 0!==d?d:e.name),exported:this.convertChild(e.name)});case o.ExportAssignment:return e.isExportEquals?this.createNode(e,{type:bd.AST_NODE_TYPES.TSExportAssignment,expression:this.convertChild(e.expression)}):this.createNode(e,{type:bd.AST_NODE_TYPES.ExportDefaultDeclaration,declaration:this.convertChild(e.expression),exportKind:"value"});case o.PrefixUnaryExpression:case o.PostfixUnaryExpression:{const t=Ed.getTextForTokenKind(e.operator);return"++"===t||"--"===t?this.createNode(e,{type:bd.AST_NODE_TYPES.UpdateExpression,operator:t,prefix:e.kind===o.PrefixUnaryExpression,argument:this.convertChild(e.operand)}):this.createNode(e,{type:bd.AST_NODE_TYPES.UnaryExpression,operator:t,prefix:e.kind===o.PrefixUnaryExpression,argument:this.convertChild(e.operand)})}case o.DeleteExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.UnaryExpression,operator:"delete",prefix:!0,argument:this.convertChild(e.expression)});case o.VoidExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.UnaryExpression,operator:"void",prefix:!0,argument:this.convertChild(e.expression)});case o.TypeOfExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.UnaryExpression,operator:"typeof",prefix:!0,argument:this.convertChild(e.expression)});case o.TypeOperator:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeOperator,operator:Ed.getTextForTokenKind(e.operator),typeAnnotation:this.convertChild(e.type)});case o.BinaryExpression:if(Ed.isComma(e.operatorToken)){const t=this.createNode(e,{type:bd.AST_NODE_TYPES.SequenceExpression,expressions:[]}),r=this.convertChild(e.left);return r.type===bd.AST_NODE_TYPES.SequenceExpression&&e.left.kind!==o.ParenthesizedExpression?t.expressions=t.expressions.concat(r.expressions):t.expressions.push(r),t.expressions.push(this.convertChild(e.right)),t}{const t=Ed.getBinaryExpressionType(e.operatorToken);return this.allowPattern&&t===bd.AST_NODE_TYPES.AssignmentExpression?this.createNode(e,{type:bd.AST_NODE_TYPES.AssignmentPattern,left:this.convertPattern(e.left,e),right:this.convertChild(e.right)}):this.createNode(e,{type:t,operator:Ed.getTextForTokenKind(e.operatorToken.kind),left:this.converter(e.left,e,this.inTypeMode,t===bd.AST_NODE_TYPES.AssignmentExpression),right:this.convertChild(e.right)})}case o.PropertyAccessExpression:{const t=this.convertChild(e.expression),r=this.convertChild(e.name),n=!1,i=this.createNode(e,{type:bd.AST_NODE_TYPES.MemberExpression,object:t,property:r,computed:n,optional:void 0!==e.questionDotToken});return this.convertChainExpression(i,e)}case o.ElementAccessExpression:{const t=this.convertChild(e.expression),r=this.convertChild(e.argumentExpression),n=!0,i=this.createNode(e,{type:bd.AST_NODE_TYPES.MemberExpression,object:t,property:r,computed:n,optional:void 0!==e.questionDotToken});return this.convertChainExpression(i,e)}case o.CallExpression:{if(e.expression.kind===o.ImportKeyword){if(1!==e.arguments.length)throw Ed.createError(this.ast,e.arguments.pos,"Dynamic import must have one specifier as an argument.");return this.createNode(e,{type:bd.AST_NODE_TYPES.ImportExpression,source:this.convertChild(e.arguments[0])})}const t=this.convertChild(e.expression),r=e.arguments.map((e=>this.convertChild(e))),n=this.createNode(e,{type:bd.AST_NODE_TYPES.CallExpression,callee:t,arguments:r,optional:void 0!==e.questionDotToken});return e.typeArguments&&(n.typeParameters=this.convertTypeArgumentsToTypeParameters(e.typeArguments,e)),this.convertChainExpression(n,e)}case o.NewExpression:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.NewExpression,callee:this.convertChild(e.expression),arguments:e.arguments?e.arguments.map((e=>this.convertChild(e))):[]});return e.typeArguments&&(t.typeParameters=this.convertTypeArgumentsToTypeParameters(e.typeArguments,e)),t}case o.ConditionalExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.ConditionalExpression,test:this.convertChild(e.condition),consequent:this.convertChild(e.whenTrue),alternate:this.convertChild(e.whenFalse)});case o.MetaProperty:return this.createNode(e,{type:bd.AST_NODE_TYPES.MetaProperty,meta:this.createNode(e.getFirstToken(),{type:bd.AST_NODE_TYPES.Identifier,name:Ed.getTextForTokenKind(e.keywordToken)}),property:this.convertChild(e.name)});case o.Decorator:return this.createNode(e,{type:bd.AST_NODE_TYPES.Decorator,expression:this.convertChild(e.expression)});case o.StringLiteral:return this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:t.kind===o.JsxAttribute?Ed.unescapeStringLiteralText(e.text):e.text,raw:e.getText()});case o.NumericLiteral:return this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:Number(e.text),raw:e.getText()});case o.BigIntLiteral:{const t=Ed.getRange(e,this.ast),r=this.ast.text.slice(t[0],t[1]),n=r.slice(0,-1).replace(/_/g,""),i="undefined"!=typeof BigInt?BigInt(n):null;return this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,raw:r,value:i,bigint:null===i?n:String(i),range:t})}case o.RegularExpressionLiteral:{const t=e.text.slice(1,e.text.lastIndexOf("/")),r=e.text.slice(e.text.lastIndexOf("/")+1);let n=null;try{n=new RegExp(t,r)}catch(e){n=null}return this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:n,raw:e.text,regex:{pattern:t,flags:r}})}case o.TrueKeyword:return this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:!0,raw:"true"});case o.FalseKeyword:return this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:!1,raw:"false"});case o.NullKeyword:return!Td.typescriptVersionIsAtLeast["4.0"]&&this.inTypeMode?this.createNode(e,{type:bd.AST_NODE_TYPES.TSNullKeyword}):this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:null,raw:"null"});case o.EmptyStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.EmptyStatement});case o.DebuggerStatement:return this.createNode(e,{type:bd.AST_NODE_TYPES.DebuggerStatement});case o.JsxElement:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXElement,openingElement:this.convertChild(e.openingElement),closingElement:this.convertChild(e.closingElement),children:e.children.map((e=>this.convertChild(e)))});case o.JsxFragment:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXFragment,openingFragment:this.convertChild(e.openingFragment),closingFragment:this.convertChild(e.closingFragment),children:e.children.map((e=>this.convertChild(e)))});case o.JsxSelfClosingElement:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXElement,openingElement:this.createNode(e,{type:bd.AST_NODE_TYPES.JSXOpeningElement,typeParameters:e.typeArguments?this.convertTypeArgumentsToTypeParameters(e.typeArguments,e):void 0,selfClosing:!0,name:this.convertJSXTagName(e.tagName,e),attributes:e.attributes.properties.map((e=>this.convertChild(e))),range:Ed.getRange(e,this.ast)}),closingElement:null,children:[]});case o.JsxOpeningElement:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXOpeningElement,typeParameters:e.typeArguments?this.convertTypeArgumentsToTypeParameters(e.typeArguments,e):void 0,selfClosing:!1,name:this.convertJSXTagName(e.tagName,e),attributes:e.attributes.properties.map((e=>this.convertChild(e)))});case o.JsxClosingElement:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXClosingElement,name:this.convertJSXTagName(e.tagName,e)});case o.JsxOpeningFragment:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXOpeningFragment});case o.JsxClosingFragment:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXClosingFragment});case o.JsxExpression:{const t=e.expression?this.convertChild(e.expression):this.createNode(e,{type:bd.AST_NODE_TYPES.JSXEmptyExpression,range:[e.getStart(this.ast)+1,e.getEnd()-1]});return e.dotDotDotToken?this.createNode(e,{type:bd.AST_NODE_TYPES.JSXSpreadChild,expression:t}):this.createNode(e,{type:bd.AST_NODE_TYPES.JSXExpressionContainer,expression:t})}case o.JsxAttribute:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(e.name),value:this.convertChild(e.initializer)});case o.JsxText:{const t=e.getFullStart(),r=e.getEnd(),n=this.ast.text.slice(t,r);return this.options.useJSXTextNode?this.createNode(e,{type:bd.AST_NODE_TYPES.JSXText,value:Ed.unescapeStringLiteralText(n),raw:n,range:[t,r]}):this.createNode(e,{type:bd.AST_NODE_TYPES.Literal,value:Ed.unescapeStringLiteralText(n),raw:n,range:[t,r]})}case o.JsxSpreadAttribute:return this.createNode(e,{type:bd.AST_NODE_TYPES.JSXSpreadAttribute,argument:this.convertChild(e.expression)});case o.QualifiedName:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSQualifiedName,left:this.convertChild(e.left),right:this.convertChild(e.right)});case o.TypeReference:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeReference,typeName:this.convertType(e.typeName),typeParameters:e.typeArguments?this.convertTypeArgumentsToTypeParameters(e.typeArguments,e):void 0});case o.TypeParameter:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeParameter,name:this.convertType(e.name),constraint:e.constraint?this.convertType(e.constraint):void 0,default:e.default?this.convertType(e.default):void 0});case o.ThisType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSThisType});case o.AnyKeyword:case o.BigIntKeyword:case o.BooleanKeyword:case o.NeverKeyword:case o.NumberKeyword:case o.ObjectKeyword:case o.StringKeyword:case o.SymbolKeyword:case o.UnknownKeyword:case o.VoidKeyword:case o.UndefinedKeyword:case o.IntrinsicKeyword:return this.createNode(e,{type:bd.AST_NODE_TYPES[`TS${o[e.kind]}`]});case o.NonNullExpression:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSNonNullExpression,expression:this.convertChild(e.expression)});return this.convertChainExpression(t,e)}case o.TypeLiteral:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeLiteral,members:e.members.map((e=>this.convertChild(e)))});case o.ArrayType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSArrayType,elementType:this.convertType(e.elementType)});case o.IndexedAccessType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSIndexedAccessType,objectType:this.convertType(e.objectType),indexType:this.convertType(e.indexType)});case o.ConditionalType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSConditionalType,checkType:this.convertType(e.checkType),extendsType:this.convertType(e.extendsType),trueType:this.convertType(e.trueType),falseType:this.convertType(e.falseType)});case o.TypeQuery:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeQuery,exprName:this.convertType(e.exprName)});case o.MappedType:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSMappedType,typeParameter:this.convertType(e.typeParameter),nameType:null!==(_=this.convertType(e.nameType))&&void 0!==_?_:null});return e.readonlyToken&&(e.readonlyToken.kind===o.ReadonlyKeyword?t.readonly=!0:t.readonly=Ed.getTextForTokenKind(e.readonlyToken.kind)),e.questionToken&&(e.questionToken.kind===o.QuestionToken?t.optional=!0:t.optional=Ed.getTextForTokenKind(e.questionToken.kind)),e.type&&(t.typeAnnotation=this.convertType(e.type)),t}case o.ParenthesizedExpression:return this.convertChild(e.expression,t);case o.TypeAliasDeclaration:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeAliasDeclaration,id:this.convertChild(e.name),typeAnnotation:this.convertType(e.type)});return Ed.hasModifier(o.DeclareKeyword,e)&&(t.declare=!0),e.typeParameters&&(t.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),this.fixExports(e,t)}case o.MethodSignature:return this.convertMethodSignature(e);case o.PropertySignature:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSPropertySignature,optional:Ed.isOptional(e)||void 0,computed:Ed.isComputedProperty(e.name),key:this.convertChild(e.name),typeAnnotation:e.type?this.convertTypeAnnotation(e.type,e):void 0,initializer:this.convertChild(e.initializer)||void 0,readonly:Ed.hasModifier(o.ReadonlyKeyword,e)||void 0,static:Ed.hasModifier(o.StaticKeyword,e)||void 0,export:Ed.hasModifier(o.ExportKeyword,e)||void 0}),r=Ed.getTSNodeAccessibility(e);return r&&(t.accessibility=r),t}case o.IndexSignature:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSIndexSignature,parameters:e.parameters.map((e=>this.convertChild(e)))});e.type&&(t.typeAnnotation=this.convertTypeAnnotation(e.type,e)),Ed.hasModifier(o.ReadonlyKeyword,e)&&(t.readonly=!0);const r=Ed.getTSNodeAccessibility(e);return r&&(t.accessibility=r),Ed.hasModifier(o.ExportKeyword,e)&&(t.export=!0),Ed.hasModifier(o.StaticKeyword,e)&&(t.static=!0),t}case o.ConstructorType:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSConstructorType,params:this.convertParameters(e.parameters),abstract:Ed.hasModifier(o.AbstractKeyword,e)});return e.type&&(t.returnType=this.convertTypeAnnotation(e.type,e)),e.typeParameters&&(t.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),t}case o.FunctionType:case o.ConstructSignature:case o.CallSignature:{const t=e.kind===o.ConstructSignature?bd.AST_NODE_TYPES.TSConstructSignatureDeclaration:e.kind===o.CallSignature?bd.AST_NODE_TYPES.TSCallSignatureDeclaration:bd.AST_NODE_TYPES.TSFunctionType,r=this.createNode(e,{type:t,params:this.convertParameters(e.parameters)});return e.type&&(r.returnType=this.convertTypeAnnotation(e.type,e)),e.typeParameters&&(r.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),r}case o.ExpressionWithTypeArguments:{const r=this.createNode(e,{type:t&&t.kind===o.InterfaceDeclaration?bd.AST_NODE_TYPES.TSInterfaceHeritage:bd.AST_NODE_TYPES.TSClassImplements,expression:this.convertChild(e.expression)});return e.typeArguments&&(r.typeParameters=this.convertTypeArgumentsToTypeParameters(e.typeArguments,e)),r}case o.InterfaceDeclaration:{const t=null!==(p=e.heritageClauses)&&void 0!==p?p:[],r=this.createNode(e,{type:bd.AST_NODE_TYPES.TSInterfaceDeclaration,body:this.createNode(e,{type:bd.AST_NODE_TYPES.TSInterfaceBody,body:e.members.map((e=>this.convertChild(e))),range:[e.members.pos-1,e.end]}),id:this.convertChild(e.name)});if(e.typeParameters&&(r.typeParameters=this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)),t.length>0){const n=[],i=[];for(const r of t)if(r.token===o.ExtendsKeyword)for(const t of r.types)n.push(this.convertChild(t,e));else for(const t of r.types)i.push(this.convertChild(t,e));n.length&&(r.extends=n),i.length&&(r.implements=i)}return Ed.hasModifier(o.AbstractKeyword,e)&&(r.abstract=!0),Ed.hasModifier(o.DeclareKeyword,e)&&(r.declare=!0),this.fixExports(e,r)}case o.TypePredicate:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypePredicate,asserts:void 0!==e.assertsModifier,parameterName:this.convertChild(e.parameterName),typeAnnotation:null});return e.type&&(t.typeAnnotation=this.convertTypeAnnotation(e.type,e),t.typeAnnotation.loc=t.typeAnnotation.typeAnnotation.loc,t.typeAnnotation.range=t.typeAnnotation.typeAnnotation.range),t}case o.ImportType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSImportType,isTypeOf:!!e.isTypeOf,parameter:this.convertChild(e.argument),qualifier:this.convertChild(e.qualifier),typeParameters:e.typeArguments?this.convertTypeArgumentsToTypeParameters(e.typeArguments,e):null});case o.EnumDeclaration:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSEnumDeclaration,id:this.convertChild(e.name),members:e.members.map((e=>this.convertChild(e)))});return this.applyModifiersToResult(t,e.modifiers),this.fixExports(e,t)}case o.EnumMember:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSEnumMember,id:this.convertChild(e.name)});return e.initializer&&(t.initializer=this.convertChild(e.initializer)),e.name.kind===a.SyntaxKind.ComputedPropertyName&&(t.computed=!0),t}case o.ModuleDeclaration:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSModuleDeclaration,id:this.convertChild(e.name)});return e.body&&(t.body=this.convertChild(e.body)),this.applyModifiersToResult(t,e.modifiers),e.flags&a.NodeFlags.GlobalAugmentation&&(t.global=!0),this.fixExports(e,t)}case o.ParenthesizedType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSParenthesizedType,typeAnnotation:this.convertType(e.type)});case o.UnionType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSUnionType,types:e.types.map((e=>this.convertType(e)))});case o.IntersectionType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSIntersectionType,types:e.types.map((e=>this.convertType(e)))});case o.AsExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSAsExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertType(e.type)});case o.InferType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSInferType,typeParameter:this.convertType(e.typeParameter)});case o.LiteralType:return Td.typescriptVersionIsAtLeast["4.0"]&&e.literal.kind===o.NullKeyword?this.createNode(e.literal,{type:bd.AST_NODE_TYPES.TSNullKeyword}):this.createNode(e,{type:bd.AST_NODE_TYPES.TSLiteralType,literal:this.convertType(e.literal)});case o.TypeAssertionExpression:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTypeAssertion,typeAnnotation:this.convertType(e.type),expression:this.convertChild(e.expression)});case o.ImportEqualsDeclaration:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSImportEqualsDeclaration,id:this.convertChild(e.name),moduleReference:this.convertChild(e.moduleReference),importKind:e.isTypeOnly?"type":"value",isExport:Ed.hasModifier(o.ExportKeyword,e)});case o.ExternalModuleReference:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSExternalModuleReference,expression:this.convertChild(e.expression)});case o.NamespaceExportDeclaration:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSNamespaceExportDeclaration,id:this.convertChild(e.name)});case o.AbstractKeyword:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSAbstractKeyword});case o.TupleType:{const t="elementTypes"in e?e.elementTypes.map((e=>this.convertType(e))):e.elements.map((e=>this.convertType(e)));return this.createNode(e,{type:bd.AST_NODE_TYPES.TSTupleType,elementTypes:t})}case o.NamedTupleMember:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSNamedTupleMember,elementType:this.convertType(e.type,e),label:this.convertChild(e.name,e),optional:null!=e.questionToken});return e.dotDotDotToken?(t.range[0]=t.label.range[0],t.loc.start=t.label.loc.start,this.createNode(e,{type:bd.AST_NODE_TYPES.TSRestType,typeAnnotation:t})):t}case o.OptionalType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSOptionalType,typeAnnotation:this.convertType(e.type)});case o.RestType:return this.createNode(e,{type:bd.AST_NODE_TYPES.TSRestType,typeAnnotation:this.convertType(e.type)});case o.TemplateLiteralType:{const t=this.createNode(e,{type:bd.AST_NODE_TYPES.TSTemplateLiteralType,quasis:[this.convertChild(e.head)],types:[]});return e.templateSpans.forEach((e=>{t.types.push(this.convertChild(e.type)),t.quasis.push(this.convertChild(e.literal))})),t}default:return this.deeplyCopy(e)}}}})),kd=function(e,t){return(kd=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)};var Ad=function(){return(Ad=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Nd(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return o}function Pd(e){return this instanceof Pd?(this.v=e,this):new Pd(e)}var wd=Object.freeze({__proto__:null,__extends:function(e,t){function r(){this.constructor=e}kd(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},get __assign(){return Ad},__rest:function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},__param:function(e,t){return function(r,n){t(r,n,e)}},__metadata:function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,r,n){return new(r||(r=Promise))((function(i,a){function o(e){try{c(n.next(e))}catch(e){a(e)}}function s(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,s)}c((n=n.apply(e,t||[])).next())}))},__generator:function(e,t){var r,n,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(i=2&a[0]?n.return:a[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,a[1])).done)return i;switch(n=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,n=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]1||s(e,t)}))})}function s(e,t){try{(r=i[e](t)).value instanceof Pd?Promise.resolve(r.value.v).then(c,u):l(a[0][2],r)}catch(e){l(a[0][3],e)}var r}function c(e){s("next",e)}function u(e){s("throw",e)}function l(e,t){e(t),a.shift(),a.length&&s(a[0][0],a[0][1])}},__asyncDelegator:function(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,i){t[n]=e[n]?function(t){return(r=!r)?{value:Pd(e[n](t)),done:"return"===n}:i?i(t):t}:i}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=Fd(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,i,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)},__classPrivateFieldSet:function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r}}),Id=f((function(e,t){function r(e){return e.kind===fd.SyntaxKind.ModuleDeclaration}function n(e){return e.kind===fd.SyntaxKind.PropertyAccessExpression}function i(e){return e.kind===fd.SyntaxKind.QualifiedName}Object.defineProperty(t,"__esModule",{value:!0}),t.isExpressionStatement=t.isExpression=t.isExportSpecifier=t.isExportDeclaration=t.isExportAssignment=t.isEnumMember=t.isEnumDeclaration=t.isEntityNameExpression=t.isEntityName=t.isEmptyStatement=t.isElementAccessExpression=t.isDoStatement=t.isDeleteExpression=t.isDefaultClause=t.isDecorator=t.isDebuggerStatement=t.isComputedPropertyName=t.isContinueStatement=t.isConstructSignatureDeclaration=t.isConstructorTypeNode=t.isConstructorDeclaration=t.isConditionalTypeNode=t.isConditionalExpression=t.isCommaListExpression=t.isClassLikeDeclaration=t.isClassExpression=t.isClassDeclaration=t.isCatchClause=t.isCaseOrDefaultClause=t.isCaseClause=t.isCaseBlock=t.isCallSignatureDeclaration=t.isCallLikeExpression=t.isCallExpression=t.isBreakStatement=t.isBreakOrContinueStatement=t.isBooleanLiteral=t.isBlockLike=t.isBlock=t.isBindingPattern=t.isBindingElement=t.isBinaryExpression=t.isAwaitExpression=t.isAssertionExpression=t.isAsExpression=t.isArrowFunction=t.isArrayTypeNode=t.isArrayLiteralExpression=t.isArrayBindingPattern=t.isAccessorDeclaration=void 0,t.isNamespaceImport=t.isNamespaceDeclaration=t.isNamedImports=t.isNamedExports=t.isModuleDeclaration=t.isModuleBlock=t.isMethodSignature=t.isMethodDeclaration=t.isMetaProperty=t.isMappedTypeNode=t.isLiteralTypeNode=t.isLiteralExpression=t.isLabeledStatement=t.isJsxText=t.isJsxSpreadAttribute=t.isJsxSelfClosingElement=t.isJsxOpeningLikeElement=t.isJsxOpeningFragment=t.isJsxOpeningElement=t.isJsxFragment=t.isJsxExpression=t.isJsxElement=t.isJsxClosingFragment=t.isJsxClosingElement=t.isJsxAttributes=t.isJsxAttributeLike=t.isJsxAttribute=t.isJsDoc=t.isIterationStatement=t.isIntersectionTypeNode=t.isInterfaceDeclaration=t.isInferTypeNode=t.isIndexSignatureDeclaration=t.isIndexedAccessTypeNode=t.isImportSpecifier=t.isImportEqualsDeclaration=t.isImportDeclaration=t.isImportClause=t.isIfStatement=t.isIdentifier=t.isGetAccessorDeclaration=t.isFunctionTypeNode=t.isFunctionExpression=t.isFunctionDeclaration=t.isForStatement=t.isForOfStatement=t.isForInOrOfStatement=t.isForInStatement=t.isExternalModuleReference=t.isExpressionWithTypeArguments=void 0,t.isVariableStatement=t.isVariableDeclaration=t.isUnionTypeNode=t.isTypeQueryNode=t.isTypeReferenceNode=t.isTypePredicateNode=t.isTypeParameterDeclaration=t.isTypeOperatorNode=t.isTypeOfExpression=t.isTypeLiteralNode=t.isTypeAssertion=t.isTypeAliasDeclaration=t.isTupleTypeNode=t.isTryStatement=t.isThrowStatement=t.isTextualLiteral=t.isTemplateLiteral=t.isTemplateExpression=t.isTaggedTemplateExpression=t.isSyntaxList=t.isSwitchStatement=t.isStringLiteral=t.isSpreadElement=t.isSpreadAssignment=t.isSourceFile=t.isSignatureDeclaration=t.isShorthandPropertyAssignment=t.isSetAccessorDeclaration=t.isReturnStatement=t.isRegularExpressionLiteral=t.isQualifiedName=t.isPropertySignature=t.isPropertyDeclaration=t.isPropertyAssignment=t.isPropertyAccessExpression=t.isPrefixUnaryExpression=t.isPostfixUnaryExpression=t.isParenthesizedTypeNode=t.isParenthesizedExpression=t.isParameterDeclaration=t.isOmittedExpression=t.isObjectLiteralExpression=t.isObjectBindingPattern=t.isNumericOrStringLikeLiteral=t.isNumericLiteral=t.isNullLiteral=t.isNoSubstitutionTemplateLiteral=t.isNonNullExpression=t.isNewExpression=t.isNamespaceExportDeclaration=void 0,t.isWithStatement=t.isWhileStatement=t.isVoidExpression=t.isVariableDeclarationList=void 0,t.isAccessorDeclaration=function(e){return e.kind===fd.SyntaxKind.GetAccessor||e.kind===fd.SyntaxKind.SetAccessor},t.isArrayBindingPattern=function(e){return e.kind===fd.SyntaxKind.ArrayBindingPattern},t.isArrayLiteralExpression=function(e){return e.kind===fd.SyntaxKind.ArrayLiteralExpression},t.isArrayTypeNode=function(e){return e.kind===fd.SyntaxKind.ArrayType},t.isArrowFunction=function(e){return e.kind===fd.SyntaxKind.ArrowFunction},t.isAsExpression=function(e){return e.kind===fd.SyntaxKind.AsExpression},t.isAssertionExpression=function(e){return e.kind===fd.SyntaxKind.AsExpression||e.kind===fd.SyntaxKind.TypeAssertionExpression},t.isAwaitExpression=function(e){return e.kind===fd.SyntaxKind.AwaitExpression},t.isBinaryExpression=function(e){return e.kind===fd.SyntaxKind.BinaryExpression},t.isBindingElement=function(e){return e.kind===fd.SyntaxKind.BindingElement},t.isBindingPattern=function(e){return e.kind===fd.SyntaxKind.ArrayBindingPattern||e.kind===fd.SyntaxKind.ObjectBindingPattern},t.isBlock=function(e){return e.kind===fd.SyntaxKind.Block},t.isBlockLike=function(e){return void 0!==e.statements},t.isBooleanLiteral=function(e){return e.kind===fd.SyntaxKind.TrueKeyword||e.kind===fd.SyntaxKind.FalseKeyword},t.isBreakOrContinueStatement=function(e){return e.kind===fd.SyntaxKind.BreakStatement||e.kind===fd.SyntaxKind.ContinueStatement},t.isBreakStatement=function(e){return e.kind===fd.SyntaxKind.BreakStatement},t.isCallExpression=function(e){return e.kind===fd.SyntaxKind.CallExpression},t.isCallLikeExpression=function(e){switch(e.kind){case fd.SyntaxKind.CallExpression:case fd.SyntaxKind.Decorator:case fd.SyntaxKind.JsxOpeningElement:case fd.SyntaxKind.JsxSelfClosingElement:case fd.SyntaxKind.NewExpression:case fd.SyntaxKind.TaggedTemplateExpression:return!0;default:return!1}},t.isCallSignatureDeclaration=function(e){return e.kind===fd.SyntaxKind.CallSignature},t.isCaseBlock=function(e){return e.kind===fd.SyntaxKind.CaseBlock},t.isCaseClause=function(e){return e.kind===fd.SyntaxKind.CaseClause},t.isCaseOrDefaultClause=function(e){return e.kind===fd.SyntaxKind.CaseClause||e.kind===fd.SyntaxKind.DefaultClause},t.isCatchClause=function(e){return e.kind===fd.SyntaxKind.CatchClause},t.isClassDeclaration=function(e){return e.kind===fd.SyntaxKind.ClassDeclaration},t.isClassExpression=function(e){return e.kind===fd.SyntaxKind.ClassExpression},t.isClassLikeDeclaration=function(e){return e.kind===fd.SyntaxKind.ClassDeclaration||e.kind===fd.SyntaxKind.ClassExpression},t.isCommaListExpression=function(e){return e.kind===fd.SyntaxKind.CommaListExpression},t.isConditionalExpression=function(e){return e.kind===fd.SyntaxKind.ConditionalExpression},t.isConditionalTypeNode=function(e){return e.kind===fd.SyntaxKind.ConditionalType},t.isConstructorDeclaration=function(e){return e.kind===fd.SyntaxKind.Constructor},t.isConstructorTypeNode=function(e){return e.kind===fd.SyntaxKind.ConstructorType},t.isConstructSignatureDeclaration=function(e){return e.kind===fd.SyntaxKind.ConstructSignature},t.isContinueStatement=function(e){return e.kind===fd.SyntaxKind.ContinueStatement},t.isComputedPropertyName=function(e){return e.kind===fd.SyntaxKind.ComputedPropertyName},t.isDebuggerStatement=function(e){return e.kind===fd.SyntaxKind.DebuggerStatement},t.isDecorator=function(e){return e.kind===fd.SyntaxKind.Decorator},t.isDefaultClause=function(e){return e.kind===fd.SyntaxKind.DefaultClause},t.isDeleteExpression=function(e){return e.kind===fd.SyntaxKind.DeleteExpression},t.isDoStatement=function(e){return e.kind===fd.SyntaxKind.DoStatement},t.isElementAccessExpression=function(e){return e.kind===fd.SyntaxKind.ElementAccessExpression},t.isEmptyStatement=function(e){return e.kind===fd.SyntaxKind.EmptyStatement},t.isEntityName=function(e){return e.kind===fd.SyntaxKind.Identifier||i(e)},t.isEntityNameExpression=function e(t){return t.kind===fd.SyntaxKind.Identifier||n(t)&&e(t.expression)},t.isEnumDeclaration=function(e){return e.kind===fd.SyntaxKind.EnumDeclaration},t.isEnumMember=function(e){return e.kind===fd.SyntaxKind.EnumMember},t.isExportAssignment=function(e){return e.kind===fd.SyntaxKind.ExportAssignment},t.isExportDeclaration=function(e){return e.kind===fd.SyntaxKind.ExportDeclaration},t.isExportSpecifier=function(e){return e.kind===fd.SyntaxKind.ExportSpecifier},t.isExpression=function(e){switch(e.kind){case fd.SyntaxKind.ArrayLiteralExpression:case fd.SyntaxKind.ArrowFunction:case fd.SyntaxKind.AsExpression:case fd.SyntaxKind.AwaitExpression:case fd.SyntaxKind.BinaryExpression:case fd.SyntaxKind.CallExpression:case fd.SyntaxKind.ClassExpression:case fd.SyntaxKind.CommaListExpression:case fd.SyntaxKind.ConditionalExpression:case fd.SyntaxKind.DeleteExpression:case fd.SyntaxKind.ElementAccessExpression:case fd.SyntaxKind.FalseKeyword:case fd.SyntaxKind.FunctionExpression:case fd.SyntaxKind.Identifier:case fd.SyntaxKind.JsxElement:case fd.SyntaxKind.JsxFragment:case fd.SyntaxKind.JsxExpression:case fd.SyntaxKind.JsxOpeningElement:case fd.SyntaxKind.JsxOpeningFragment:case fd.SyntaxKind.JsxSelfClosingElement:case fd.SyntaxKind.MetaProperty:case fd.SyntaxKind.NewExpression:case fd.SyntaxKind.NonNullExpression:case fd.SyntaxKind.NoSubstitutionTemplateLiteral:case fd.SyntaxKind.NullKeyword:case fd.SyntaxKind.NumericLiteral:case fd.SyntaxKind.ObjectLiteralExpression:case fd.SyntaxKind.OmittedExpression:case fd.SyntaxKind.ParenthesizedExpression:case fd.SyntaxKind.PostfixUnaryExpression:case fd.SyntaxKind.PrefixUnaryExpression:case fd.SyntaxKind.PropertyAccessExpression:case fd.SyntaxKind.RegularExpressionLiteral:case fd.SyntaxKind.SpreadElement:case fd.SyntaxKind.StringLiteral:case fd.SyntaxKind.SuperKeyword:case fd.SyntaxKind.TaggedTemplateExpression:case fd.SyntaxKind.TemplateExpression:case fd.SyntaxKind.ThisKeyword:case fd.SyntaxKind.TrueKeyword:case fd.SyntaxKind.TypeAssertionExpression:case fd.SyntaxKind.TypeOfExpression:case fd.SyntaxKind.VoidExpression:case fd.SyntaxKind.YieldExpression:return!0;default:return!1}},t.isExpressionStatement=function(e){return e.kind===fd.SyntaxKind.ExpressionStatement},t.isExpressionWithTypeArguments=function(e){return e.kind===fd.SyntaxKind.ExpressionWithTypeArguments},t.isExternalModuleReference=function(e){return e.kind===fd.SyntaxKind.ExternalModuleReference},t.isForInStatement=function(e){return e.kind===fd.SyntaxKind.ForInStatement},t.isForInOrOfStatement=function(e){return e.kind===fd.SyntaxKind.ForOfStatement||e.kind===fd.SyntaxKind.ForInStatement},t.isForOfStatement=function(e){return e.kind===fd.SyntaxKind.ForOfStatement},t.isForStatement=function(e){return e.kind===fd.SyntaxKind.ForStatement},t.isFunctionDeclaration=function(e){return e.kind===fd.SyntaxKind.FunctionDeclaration},t.isFunctionExpression=function(e){return e.kind===fd.SyntaxKind.FunctionExpression},t.isFunctionTypeNode=function(e){return e.kind===fd.SyntaxKind.FunctionType},t.isGetAccessorDeclaration=function(e){return e.kind===fd.SyntaxKind.GetAccessor},t.isIdentifier=function(e){return e.kind===fd.SyntaxKind.Identifier},t.isIfStatement=function(e){return e.kind===fd.SyntaxKind.IfStatement},t.isImportClause=function(e){return e.kind===fd.SyntaxKind.ImportClause},t.isImportDeclaration=function(e){return e.kind===fd.SyntaxKind.ImportDeclaration},t.isImportEqualsDeclaration=function(e){return e.kind===fd.SyntaxKind.ImportEqualsDeclaration},t.isImportSpecifier=function(e){return e.kind===fd.SyntaxKind.ImportSpecifier},t.isIndexedAccessTypeNode=function(e){return e.kind===fd.SyntaxKind.IndexedAccessType},t.isIndexSignatureDeclaration=function(e){return e.kind===fd.SyntaxKind.IndexSignature},t.isInferTypeNode=function(e){return e.kind===fd.SyntaxKind.InferType},t.isInterfaceDeclaration=function(e){return e.kind===fd.SyntaxKind.InterfaceDeclaration},t.isIntersectionTypeNode=function(e){return e.kind===fd.SyntaxKind.IntersectionType},t.isIterationStatement=function(e){switch(e.kind){case fd.SyntaxKind.ForStatement:case fd.SyntaxKind.ForOfStatement:case fd.SyntaxKind.ForInStatement:case fd.SyntaxKind.WhileStatement:case fd.SyntaxKind.DoStatement:return!0;default:return!1}},t.isJsDoc=function(e){return e.kind===fd.SyntaxKind.JSDocComment},t.isJsxAttribute=function(e){return e.kind===fd.SyntaxKind.JsxAttribute},t.isJsxAttributeLike=function(e){return e.kind===fd.SyntaxKind.JsxAttribute||e.kind===fd.SyntaxKind.JsxSpreadAttribute},t.isJsxAttributes=function(e){return e.kind===fd.SyntaxKind.JsxAttributes},t.isJsxClosingElement=function(e){return e.kind===fd.SyntaxKind.JsxClosingElement},t.isJsxClosingFragment=function(e){return e.kind===fd.SyntaxKind.JsxClosingFragment},t.isJsxElement=function(e){return e.kind===fd.SyntaxKind.JsxElement},t.isJsxExpression=function(e){return e.kind===fd.SyntaxKind.JsxExpression},t.isJsxFragment=function(e){return e.kind===fd.SyntaxKind.JsxFragment},t.isJsxOpeningElement=function(e){return e.kind===fd.SyntaxKind.JsxOpeningElement},t.isJsxOpeningFragment=function(e){return e.kind===fd.SyntaxKind.JsxOpeningFragment},t.isJsxOpeningLikeElement=function(e){return e.kind===fd.SyntaxKind.JsxOpeningElement||e.kind===fd.SyntaxKind.JsxSelfClosingElement},t.isJsxSelfClosingElement=function(e){return e.kind===fd.SyntaxKind.JsxSelfClosingElement},t.isJsxSpreadAttribute=function(e){return e.kind===fd.SyntaxKind.JsxSpreadAttribute},t.isJsxText=function(e){return e.kind===fd.SyntaxKind.JsxText},t.isLabeledStatement=function(e){return e.kind===fd.SyntaxKind.LabeledStatement},t.isLiteralExpression=function(e){return e.kind>=fd.SyntaxKind.FirstLiteralToken&&e.kind<=fd.SyntaxKind.LastLiteralToken},t.isLiteralTypeNode=function(e){return e.kind===fd.SyntaxKind.LiteralType},t.isMappedTypeNode=function(e){return e.kind===fd.SyntaxKind.MappedType},t.isMetaProperty=function(e){return e.kind===fd.SyntaxKind.MetaProperty},t.isMethodDeclaration=function(e){return e.kind===fd.SyntaxKind.MethodDeclaration},t.isMethodSignature=function(e){return e.kind===fd.SyntaxKind.MethodSignature},t.isModuleBlock=function(e){return e.kind===fd.SyntaxKind.ModuleBlock},t.isModuleDeclaration=r,t.isNamedExports=function(e){return e.kind===fd.SyntaxKind.NamedExports},t.isNamedImports=function(e){return e.kind===fd.SyntaxKind.NamedImports},t.isNamespaceDeclaration=function e(t){return r(t)&&t.name.kind===fd.SyntaxKind.Identifier&&void 0!==t.body&&(t.body.kind===fd.SyntaxKind.ModuleBlock||e(t.body))},t.isNamespaceImport=function(e){return e.kind===fd.SyntaxKind.NamespaceImport},t.isNamespaceExportDeclaration=function(e){return e.kind===fd.SyntaxKind.NamespaceExportDeclaration},t.isNewExpression=function(e){return e.kind===fd.SyntaxKind.NewExpression},t.isNonNullExpression=function(e){return e.kind===fd.SyntaxKind.NonNullExpression},t.isNoSubstitutionTemplateLiteral=function(e){return e.kind===fd.SyntaxKind.NoSubstitutionTemplateLiteral},t.isNullLiteral=function(e){return e.kind===fd.SyntaxKind.NullKeyword},t.isNumericLiteral=function(e){return e.kind===fd.SyntaxKind.NumericLiteral},t.isNumericOrStringLikeLiteral=function(e){switch(e.kind){case fd.SyntaxKind.StringLiteral:case fd.SyntaxKind.NumericLiteral:case fd.SyntaxKind.NoSubstitutionTemplateLiteral:return!0;default:return!1}},t.isObjectBindingPattern=function(e){return e.kind===fd.SyntaxKind.ObjectBindingPattern},t.isObjectLiteralExpression=function(e){return e.kind===fd.SyntaxKind.ObjectLiteralExpression},t.isOmittedExpression=function(e){return e.kind===fd.SyntaxKind.OmittedExpression},t.isParameterDeclaration=function(e){return e.kind===fd.SyntaxKind.Parameter},t.isParenthesizedExpression=function(e){return e.kind===fd.SyntaxKind.ParenthesizedExpression},t.isParenthesizedTypeNode=function(e){return e.kind===fd.SyntaxKind.ParenthesizedType},t.isPostfixUnaryExpression=function(e){return e.kind===fd.SyntaxKind.PostfixUnaryExpression},t.isPrefixUnaryExpression=function(e){return e.kind===fd.SyntaxKind.PrefixUnaryExpression},t.isPropertyAccessExpression=n,t.isPropertyAssignment=function(e){return e.kind===fd.SyntaxKind.PropertyAssignment},t.isPropertyDeclaration=function(e){return e.kind===fd.SyntaxKind.PropertyDeclaration},t.isPropertySignature=function(e){return e.kind===fd.SyntaxKind.PropertySignature},t.isQualifiedName=i,t.isRegularExpressionLiteral=function(e){return e.kind===fd.SyntaxKind.RegularExpressionLiteral},t.isReturnStatement=function(e){return e.kind===fd.SyntaxKind.ReturnStatement},t.isSetAccessorDeclaration=function(e){return e.kind===fd.SyntaxKind.SetAccessor},t.isShorthandPropertyAssignment=function(e){return e.kind===fd.SyntaxKind.ShorthandPropertyAssignment},t.isSignatureDeclaration=function(e){return void 0!==e.parameters},t.isSourceFile=function(e){return e.kind===fd.SyntaxKind.SourceFile},t.isSpreadAssignment=function(e){return e.kind===fd.SyntaxKind.SpreadAssignment},t.isSpreadElement=function(e){return e.kind===fd.SyntaxKind.SpreadElement},t.isStringLiteral=function(e){return e.kind===fd.SyntaxKind.StringLiteral},t.isSwitchStatement=function(e){return e.kind===fd.SyntaxKind.SwitchStatement},t.isSyntaxList=function(e){return e.kind===fd.SyntaxKind.SyntaxList},t.isTaggedTemplateExpression=function(e){return e.kind===fd.SyntaxKind.TaggedTemplateExpression},t.isTemplateExpression=function(e){return e.kind===fd.SyntaxKind.TemplateExpression},t.isTemplateLiteral=function(e){return e.kind===fd.SyntaxKind.TemplateExpression||e.kind===fd.SyntaxKind.NoSubstitutionTemplateLiteral},t.isTextualLiteral=function(e){return e.kind===fd.SyntaxKind.StringLiteral||e.kind===fd.SyntaxKind.NoSubstitutionTemplateLiteral},t.isThrowStatement=function(e){return e.kind===fd.SyntaxKind.ThrowStatement},t.isTryStatement=function(e){return e.kind===fd.SyntaxKind.TryStatement},t.isTupleTypeNode=function(e){return e.kind===fd.SyntaxKind.TupleType},t.isTypeAliasDeclaration=function(e){return e.kind===fd.SyntaxKind.TypeAliasDeclaration},t.isTypeAssertion=function(e){return e.kind===fd.SyntaxKind.TypeAssertionExpression},t.isTypeLiteralNode=function(e){return e.kind===fd.SyntaxKind.TypeLiteral},t.isTypeOfExpression=function(e){return e.kind===fd.SyntaxKind.TypeOfExpression},t.isTypeOperatorNode=function(e){return e.kind===fd.SyntaxKind.TypeOperator},t.isTypeParameterDeclaration=function(e){return e.kind===fd.SyntaxKind.TypeParameter},t.isTypePredicateNode=function(e){return e.kind===fd.SyntaxKind.TypePredicate},t.isTypeReferenceNode=function(e){return e.kind===fd.SyntaxKind.TypeReference},t.isTypeQueryNode=function(e){return e.kind===fd.SyntaxKind.TypeQuery},t.isUnionTypeNode=function(e){return e.kind===fd.SyntaxKind.UnionType},t.isVariableDeclaration=function(e){return e.kind===fd.SyntaxKind.VariableDeclaration},t.isVariableStatement=function(e){return e.kind===fd.SyntaxKind.VariableStatement},t.isVariableDeclarationList=function(e){return e.kind===fd.SyntaxKind.VariableDeclarationList},t.isVoidExpression=function(e){return e.kind===fd.SyntaxKind.VoidExpression},t.isWhileStatement=function(e){return e.kind===fd.SyntaxKind.WhileStatement},t.isWithStatement=function(e){return e.kind===fd.SyntaxKind.WithStatement}})),Od=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isImportTypeNode=void 0,wd.__exportStar(Id,t),t.isImportTypeNode=function(e){return e.kind===fd.SyntaxKind.ImportType}})),Md=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isSyntheticExpression=t.isRestTypeNode=t.isOptionalTypeNode=void 0,wd.__exportStar(Od,t),t.isOptionalTypeNode=function(e){return e.kind===fd.SyntaxKind.OptionalType},t.isRestTypeNode=function(e){return e.kind===fd.SyntaxKind.RestType},t.isSyntheticExpression=function(e){return e.kind===fd.SyntaxKind.SyntheticExpression}})),Ld=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isBigIntLiteral=void 0,wd.__exportStar(Md,t),t.isBigIntLiteral=function(e){return e.kind===fd.SyntaxKind.BigIntLiteral}})),Rd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),wd.__exportStar(Ld,t)})),Bd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.isUniqueESSymbolType=t.isUnionType=t.isUnionOrIntersectionType=t.isTypeVariable=t.isTypeReference=t.isTypeParameter=t.isSubstitutionType=t.isObjectType=t.isLiteralType=t.isIntersectionType=t.isInterfaceType=t.isInstantiableType=t.isIndexedAccessype=t.isIndexedAccessType=t.isGenericType=t.isEnumType=t.isConditionalType=void 0,t.isConditionalType=function(e){return 0!=(e.flags&fd.TypeFlags.Conditional)},t.isEnumType=function(e){return 0!=(e.flags&fd.TypeFlags.Enum)},t.isGenericType=function(e){return 0!=(e.flags&fd.TypeFlags.Object)&&0!=(e.objectFlags&fd.ObjectFlags.ClassOrInterface)&&0!=(e.objectFlags&fd.ObjectFlags.Reference)},t.isIndexedAccessType=function(e){return 0!=(e.flags&fd.TypeFlags.IndexedAccess)},t.isIndexedAccessype=function(e){return 0!=(e.flags&fd.TypeFlags.Index)},t.isInstantiableType=function(e){return 0!=(e.flags&fd.TypeFlags.Instantiable)},t.isInterfaceType=function(e){return 0!=(e.flags&fd.TypeFlags.Object)&&0!=(e.objectFlags&fd.ObjectFlags.ClassOrInterface)},t.isIntersectionType=function(e){return 0!=(e.flags&fd.TypeFlags.Intersection)},t.isLiteralType=function(e){return 0!=(e.flags&(fd.TypeFlags.StringOrNumberLiteral|fd.TypeFlags.BigIntLiteral))},t.isObjectType=function(e){return 0!=(e.flags&fd.TypeFlags.Object)},t.isSubstitutionType=function(e){return 0!=(e.flags&fd.TypeFlags.Substitution)},t.isTypeParameter=function(e){return 0!=(e.flags&fd.TypeFlags.TypeParameter)},t.isTypeReference=function(e){return 0!=(e.flags&fd.TypeFlags.Object)&&0!=(e.objectFlags&fd.ObjectFlags.Reference)},t.isTypeVariable=function(e){return 0!=(e.flags&fd.TypeFlags.TypeVariable)},t.isUnionOrIntersectionType=function(e){return 0!=(e.flags&fd.TypeFlags.UnionOrIntersection)},t.isUnionType=function(e){return 0!=(e.flags&fd.TypeFlags.Union)},t.isUniqueESSymbolType=function(e){return 0!=(e.flags&fd.TypeFlags.UniqueESSymbol)}})),jd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),wd.__exportStar(Bd,t)})),Jd=f((function(e,t){function r(e){return 0!==(e.flags&fd.TypeFlags.Object&&e.objectFlags&fd.ObjectFlags.Tuple)}Object.defineProperty(t,"__esModule",{value:!0}),t.isTupleTypeReference=t.isTupleType=void 0,wd.__exportStar(jd,t),t.isTupleType=r,t.isTupleTypeReference=function(e){return jd.isTypeReference(e)&&r(e.target)}})),Kd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),wd.__exportStar(Jd,t)})),zd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),wd.__exportStar(Ld,t),wd.__exportStar(Kd,t)})),Ud=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),wd.__exportStar(Kd,t)})),Vd=f((function(e,t){function r(e,t){if(!n(t,fd.TypeFlags.Undefined))return t;const r=n(t,fd.TypeFlags.Null);return t=e.getNonNullableType(t),r?e.getNullableType(t,fd.TypeFlags.Null):t}function n(e,t){for(const r of o(e))if(qd.isTypeFlagSet(r,t))return!0;return!1}function i(e,t){return qd.isTypeFlagSet(t,fd.TypeFlags.Undefined)&&e.getNullableType(t.getNonNullableType(),fd.TypeFlags.Undefined)!==t}function a(e,t,r){let n;return r|=fd.TypeFlags.Any,function t(i){if(Ud.isTypeParameter(i)&&void 0!==i.symbol&&void 0!==i.symbol.declarations){if(void 0===n)n=new Set([i]);else{if(n.has(i))return!1;n.add(i)}const r=i.symbol.declarations[0];return void 0===r.constraint||t(e.getTypeFromTypeNode(r.constraint))}return Ud.isUnionType(i)?i.types.every(t):Ud.isIntersectionType(i)?i.types.some(t):qd.isTypeFlagSet(i,r)}(t)}function o(e){return Ud.isUnionType(e)?e.types:[e]}function s(e,t,r){return t(e)?e.types.some(r):r(e)}function c(e,t,r){let n=e.getApparentType(e.getTypeOfSymbolAtLocation(t,r));if(t.valueDeclaration.dotDotDotToken&&(n=n.getNumberIndexType(),void 0===n))return!1;for(const e of o(n))if(0!==e.getCallSignatures().length)return!0;return!1}function u(e,t){return qd.isTypeFlagSet(e,fd.TypeFlags.BooleanLiteral)&&e.intrinsicName===(t?"true":"false")}function l(e,t){return t.startsWith("__")?e.getProperties().find((e=>e.escapedName===t)):e.getProperty(t)}function d(e,t,r){const n=t&&e.getTypeOfSymbolAtLocation(t,t.valueDeclaration).getProperty(r),i=n&&e.getTypeOfSymbolAtLocation(n,n.valueDeclaration);return i&&Ud.isUniqueESSymbolType(i)?i.escapedName:"__@"+r}function _(e,t,r){let n=!1,i=!1;for(const a of o(e))if(void 0===l(a,t)){const e=(qd.isNumericPropertyName(t)?r.getIndexInfoOfType(a,fd.IndexKind.Number):void 0)||r.getIndexInfoOfType(a,fd.IndexKind.String);if(void 0!==e&&e.isReadonly){if(n)return!0;i=!0}}else{if(i||p(a,t,r))return!0;n=!0}return!1}function p(e,t,r){return s(e,Ud.isIntersectionType,(e=>{const n=l(e,t);if(void 0===n)return!1;if(n.flags&fd.SymbolFlags.Transient){if(/^(?:[1-9]\d*|0)$/.test(t)&&Ud.isTupleTypeReference(e))return e.target.readonly;switch(function(e,t,r){if(!Ud.isObjectType(e)||!qd.isObjectFlagSet(e,fd.ObjectFlags.Mapped))return;const n=e.symbol.declarations[0];return void 0===n.readonlyToken||/^__@[^@]+$/.test(t)?_(e.modifiersType,t,r):n.readonlyToken.kind!==fd.SyntaxKind.MinusToken}(e,t,r)){case!0:return!0;case!1:return!1}}return qd.isSymbolFlagSet(n,fd.SymbolFlags.ValueModule)||f(n,r)}))}function f(e,t){return(e.flags&fd.SymbolFlags.Accessor)===fd.SymbolFlags.GetAccessor||void 0!==e.declarations&&e.declarations.some((e=>qd.isModifierFlagSet(e,fd.ModifierFlags.Readonly)||Rd.isVariableDeclaration(e)&&qd.isNodeFlagSet(e.parent,fd.NodeFlags.Const)||Rd.isCallExpression(e)&&qd.isReadonlyAssignmentDeclaration(e,t)||Rd.isEnumMember(e)||(Rd.isPropertyAssignment(e)||Rd.isShorthandPropertyAssignment(e))&&qd.isInConstContext(e.parent)))}function g(e){return qd.isNodeFlagSet(e.parent,fd.NodeFlags.GlobalAugmentation)||Rd.isSourceFile(e.parent)&&!fd.isExternalModule(e.parent)}function m(e,t){var r;return t.getSymbolAtLocation(null!==(r=e.name)&&void 0!==r?r:qd.getChildOfKind(e,fd.SyntaxKind.ClassKeyword))}Object.defineProperty(t,"__esModule",{value:!0}),t.getBaseClassMemberOfClassElement=t.getIteratorYieldResultFromIteratorResult=t.getInstanceTypeOfClassLikeDeclaration=t.getConstructorTypeOfClassLikeDeclaration=t.getSymbolOfClassLikeDeclaration=t.getPropertyNameFromType=t.symbolHasReadonlyDeclaration=t.isPropertyReadonlyInType=t.getWellKnownSymbolPropertyOfType=t.getPropertyOfType=t.isBooleanLiteralType=t.isFalsyType=t.isThenableType=t.someTypePart=t.intersectionTypeParts=t.unionTypeParts=t.getCallSignaturesOfType=t.isTypeAssignableToString=t.isTypeAssignableToNumber=t.isOptionalChainingUndefinedMarkerType=t.removeOptionalChainingUndefinedMarkerType=t.removeOptionalityFromType=t.isEmptyObjectType=void 0,t.isEmptyObjectType=function e(t){if(Ud.isObjectType(t)&&t.objectFlags&fd.ObjectFlags.Anonymous&&0===t.getProperties().length&&0===t.getCallSignatures().length&&0===t.getConstructSignatures().length&&void 0===t.getStringIndexType()&&void 0===t.getNumberIndexType()){const r=t.getBaseTypes();return void 0===r||r.every(e)}return!1},t.removeOptionalityFromType=r,t.removeOptionalChainingUndefinedMarkerType=function(e,t){if(!Ud.isUnionType(t))return i(e,t)?t.getNonNullableType():t;let r=0,n=!1;for(const a of t.types)i(e,a)?n=!0:r|=a.flags;return n?e.getNullableType(t.getNonNullableType(),r):t},t.isOptionalChainingUndefinedMarkerType=i,t.isTypeAssignableToNumber=function(e,t){return a(e,t,fd.TypeFlags.NumberLike)},t.isTypeAssignableToString=function(e,t){return a(e,t,fd.TypeFlags.StringLike)},t.getCallSignaturesOfType=function e(t){if(Ud.isUnionType(t)){const r=[];for(const n of t.types)r.push(...e(n));return r}if(Ud.isIntersectionType(t)){let r;for(const n of t.types){const t=e(n);if(0!==t.length){if(void 0!==r)return[];r=t}}return void 0===r?[]:r}return t.getCallSignatures()},t.unionTypeParts=o,t.intersectionTypeParts=function(e){return Ud.isIntersectionType(e)?e.types:[e]},t.someTypePart=s,t.isThenableType=function(e,t,r=e.getTypeAtLocation(t)){for(const n of o(e.getApparentType(r))){const r=n.getProperty("then");if(void 0===r)continue;const i=e.getTypeOfSymbolAtLocation(r,t);for(const r of o(i))for(const n of r.getCallSignatures())if(0!==n.parameters.length&&c(e,n.parameters[0],t))return!0}return!1},t.isFalsyType=function(e){return!!(e.flags&(fd.TypeFlags.Undefined|fd.TypeFlags.Null|fd.TypeFlags.Void))||(Ud.isLiteralType(e)?!e.value:u(e,!1))},t.isBooleanLiteralType=u,t.getPropertyOfType=l,t.getWellKnownSymbolPropertyOfType=function(e,t,r){const n="__@"+t;for(const i of e.getProperties()){if(!i.name.startsWith(n))continue;const e=r.getApparentType(r.getTypeAtLocation(i.valueDeclaration.name.expression)).symbol;if(i.escapedName===d(r,e,t))return i}},t.isPropertyReadonlyInType=_,t.symbolHasReadonlyDeclaration=f,t.getPropertyNameFromType=function(e){if(e.flags&(fd.TypeFlags.StringLiteral|fd.TypeFlags.NumberLiteral)){const t=String(e.value);return{displayName:t,symbolName:fd.escapeLeadingUnderscores(t)}}if(Ud.isUniqueESSymbolType(e))return{displayName:`[${e.symbol?`${t=e.symbol,qd.isSymbolFlagSet(t,fd.SymbolFlags.Property)&&void 0!==t.valueDeclaration&&Rd.isInterfaceDeclaration(t.valueDeclaration.parent)&&"SymbolConstructor"===t.valueDeclaration.parent.name.text&&g(t.valueDeclaration.parent)?"Symbol.":""}${e.symbol.name}`:e.escapedName.replace(/^__@|@\d+$/g,"")}]`,symbolName:e.escapedName};var t},t.getSymbolOfClassLikeDeclaration=m,t.getConstructorTypeOfClassLikeDeclaration=function(e,t){return e.kind===fd.SyntaxKind.ClassExpression?t.getTypeAtLocation(e):t.getTypeOfSymbolAtLocation(m(e,t),e)},t.getInstanceTypeOfClassLikeDeclaration=function(e,t){return e.kind===fd.SyntaxKind.ClassDeclaration?t.getTypeAtLocation(e):t.getDeclaredTypeOfSymbol(m(e,t))},t.getIteratorYieldResultFromIteratorResult=function(e,t,n){return Ud.isUnionType(e)&&e.types.find((e=>{const i=e.getProperty("done");return void 0!==i&&u(r(n,n.getTypeOfSymbolAtLocation(i,t)),!1)}))||e},t.getBaseClassMemberOfClassElement=function(e,t){if(!Rd.isClassLikeDeclaration(e.parent))return;const r=qd.getBaseOfClassLikeExpression(e.parent);if(void 0===r)return;const n=qd.getSingleLateBoundPropertyNameOfPropertyName(e.name,t);if(void 0===n)return;return l(t.getTypeAtLocation(qd.hasModifier(e.modifiers,fd.SyntaxKind.StaticKeyword)?r.expression:r),n.symbolName)}})),qd=f((function(e,t){function r(e){return e>=fd.SyntaxKind.FirstToken&&e<=fd.SyntaxKind.LastToken}function n(e){return e>=fd.SyntaxKind.FirstNode}function i(e){return e>=fd.SyntaxKind.FirstAssignment&&e<=fd.SyntaxKind.LastAssignment}function a(e,...t){if(void 0===e)return!1;for(const r of e)if(t.includes(r.kind))return!0;return!1}function o(e,t){return 0!=(e.flags&t)}function s(e,t){return 0!=(fd.getCombinedModifierFlags(e)&t)}function c(e,t,n,i){if(!(t=e.end))return r(e.kind)?e:u(e,t,null!=n?n:e.getSourceFile(),!0===i)}function u(e,t,n,i){if(!i&&r((e=_(e,t)).kind))return e;e:for(;;){for(const a of e.getChildren(n))if(a.end>t&&(i||a.kind!==fd.SyntaxKind.JSDocComment)){if(r(a.kind))return a;e=a;continue e}return}}function l(e,t,r=e){const n=c(r,t,e);if(void 0===n||n.kind===fd.SyntaxKind.JsxText||t>=n.end-(fd.tokenToString(n.kind)||"").length)return;const i=0===n.pos?(fd.getShebang(e.text)||"").length:n.pos;return 0!==i&&fd.forEachTrailingCommentRange(e.text,i,d,t)||fd.forEachLeadingCommentRange(e.text,i,d,t)}function d(e,t,r,n,i){return i>=e&&it||e.end<=t)){for(;n(e.kind);){const r=fd.forEachChild(e,(e=>e.pos<=t&&e.end>t?e:void 0));if(void 0===r)break;e=r}return e}}function p(e){if(e.kind===fd.SyntaxKind.ComputedPropertyName){const t=H(e.expression);if(Rd.isPrefixUnaryExpression(t)){let e=!1;switch(t.operator){case fd.SyntaxKind.MinusToken:e=!0;case fd.SyntaxKind.PlusToken:return Rd.isNumericLiteral(t.operand)?`${e?"-":""}${t.operand.text}`:zd.isBigIntLiteral(t.operand)?`${e?"-":""}${t.operand.text.slice(0,-1)}`:void 0;default:return}}return zd.isBigIntLiteral(t)?t.text.slice(0,-1):Rd.isNumericOrStringLikeLiteral(t)?t.text:void 0}return e.kind===fd.SyntaxKind.PrivateIdentifier?void 0:e.text}function f(e,t){for(const r of e.elements){if(r.kind!==fd.SyntaxKind.BindingElement)continue;let e;if(e=r.name.kind===fd.SyntaxKind.Identifier?t(r):f(r.name,t),e)return e}}var g,m,y;function v(e){return 0!=(e.flags&fd.NodeFlags.BlockScoped)}function h(e){switch(e.kind){case fd.SyntaxKind.InterfaceDeclaration:case fd.SyntaxKind.TypeAliasDeclaration:case fd.SyntaxKind.MappedType:return 4;case fd.SyntaxKind.ConditionalType:return 8;default:return 0}}function D(e){switch(e.kind){case fd.SyntaxKind.FunctionExpression:case fd.SyntaxKind.ArrowFunction:case fd.SyntaxKind.Constructor:case fd.SyntaxKind.ModuleDeclaration:case fd.SyntaxKind.ClassDeclaration:case fd.SyntaxKind.ClassExpression:case fd.SyntaxKind.EnumDeclaration:case fd.SyntaxKind.MethodDeclaration:case fd.SyntaxKind.FunctionDeclaration:case fd.SyntaxKind.GetAccessor:case fd.SyntaxKind.SetAccessor:case fd.SyntaxKind.MethodSignature:case fd.SyntaxKind.CallSignature:case fd.SyntaxKind.ConstructSignature:case fd.SyntaxKind.ConstructorType:case fd.SyntaxKind.FunctionType:return 1;case fd.SyntaxKind.SourceFile:return fd.isExternalModule(e)?1:0;default:return 0}}function x(e){switch(e.kind){case fd.SyntaxKind.Block:const t=e.parent;return t.kind===fd.SyntaxKind.CatchClause||t.kind!==fd.SyntaxKind.SourceFile&&D(t)?0:2;case fd.SyntaxKind.ForStatement:case fd.SyntaxKind.ForInStatement:case fd.SyntaxKind.ForOfStatement:case fd.SyntaxKind.CaseBlock:case fd.SyntaxKind.CatchClause:case fd.SyntaxKind.WithStatement:return 2;default:return 0}}function b(e,t,n=e.getSourceFile()){const i=[];for(;;){if(r(e.kind))t(e);else if(e.kind!==fd.SyntaxKind.JSDocComment){const t=e.getChildren(n);if(1===t.length){e=t[0];continue}for(let e=t.length-1;e>=0;--e)i.push(t[e])}if(0===i.length)break;e=i.pop()}}function S(e){return e.kind===fd.SyntaxKind.JsxElement||e.kind===fd.SyntaxKind.JsxFragment}let E;function T(e,t){return void 0===E?E=fd.createScanner(t,!1,void 0,e):(E.setScriptTarget(t),E.setText(e)),E.scan(),E}function C(e){return e>=65536?2:1}function k(e,t=fd.ScriptTarget.Latest){if(0===e.length)return!1;let r=e.codePointAt(0);if(!fd.isIdentifierStart(r,t))return!1;for(let n=C(r);n=fd.SyntaxKind.FirstTypeNode&&e<=fd.SyntaxKind.LastTypeNode},t.isJsDocKind=function(e){return e>=fd.SyntaxKind.FirstJSDocNode&&e<=fd.SyntaxKind.LastJSDocNode},t.isKeywordKind=function(e){return e>=fd.SyntaxKind.FirstKeyword&&e<=fd.SyntaxKind.LastKeyword},t.isThisParameter=function(e){return e.name.kind===fd.SyntaxKind.Identifier&&e.name.originalKeywordKind===fd.SyntaxKind.ThisKeyword},t.getModifier=function(e,t){if(void 0!==e.modifiers)for(const r of e.modifiers)if(r.kind===t)return r},t.hasModifier=a,t.isParameterProperty=function(e){return a(e.modifiers,fd.SyntaxKind.PublicKeyword,fd.SyntaxKind.ProtectedKeyword,fd.SyntaxKind.PrivateKeyword,fd.SyntaxKind.ReadonlyKeyword)},t.hasAccessModifier=function(e){return s(e,fd.ModifierFlags.AccessibilityModifier)},t.isNodeFlagSet=o,t.isTypeFlagSet=o,t.isSymbolFlagSet=o,t.isObjectFlagSet=function(e,t){return 0!=(e.objectFlags&t)},t.isModifierFlagSet=s,t.getPreviousStatement=function(e){const t=e.parent;if(Rd.isBlockLike(t)){const r=t.statements.indexOf(e);if(r>0)return t.statements[r-1]}},t.getNextStatement=function(e){const t=e.parent;if(Rd.isBlockLike(t)){const r=t.statements.indexOf(e);if(rt||e.node.end<=t))e:for(;;){for(const r of e.children){if(r.node.pos>t)return e;if(r.node.end>t){e=r;continue e}}return e}},t.getPropertyName=p,t.forEachDestructuringIdentifier=f,t.forEachDeclaredVariable=function(e,t){for(const r of e.declarations){let e;if(e=r.name.kind===fd.SyntaxKind.Identifier?t(r):f(r.name,t),e)return e}},(g=t.VariableDeclarationKind||(t.VariableDeclarationKind={}))[g.Var=0]="Var",g[g.Let=1]="Let",g[g.Const=2]="Const",t.getVariableDeclarationKind=function(e){return e.flags&fd.NodeFlags.Let?1:e.flags&fd.NodeFlags.Const?2:0},t.isBlockScopedVariableDeclarationList=v,t.isBlockScopedVariableDeclaration=function(e){const t=e.parent;return t.kind===fd.SyntaxKind.CatchClause||v(t)},t.isBlockScopedDeclarationStatement=function(e){switch(e.kind){case fd.SyntaxKind.VariableStatement:return v(e.declarationList);case fd.SyntaxKind.ClassDeclaration:case fd.SyntaxKind.EnumDeclaration:case fd.SyntaxKind.InterfaceDeclaration:case fd.SyntaxKind.TypeAliasDeclaration:return!0;default:return!1}},t.isInSingleStatementContext=function(e){switch(e.parent.kind){case fd.SyntaxKind.ForStatement:case fd.SyntaxKind.ForInStatement:case fd.SyntaxKind.ForOfStatement:case fd.SyntaxKind.WhileStatement:case fd.SyntaxKind.DoStatement:case fd.SyntaxKind.IfStatement:case fd.SyntaxKind.WithStatement:case fd.SyntaxKind.LabeledStatement:return!0;default:return!1}},(m=t.ScopeBoundary||(t.ScopeBoundary={}))[m.None=0]="None",m[m.Function=1]="Function",m[m.Block=2]="Block",m[m.Type=4]="Type",m[m.ConditionalType=8]="ConditionalType",(y=t.ScopeBoundarySelector||(t.ScopeBoundarySelector={}))[y.Function=1]="Function",y[y.Block=3]="Block",y[y.Type=7]="Type",y[y.InferType=8]="InferType",t.isScopeBoundary=function(e){return D(e)||x(e)||h(e)},t.isTypeScopeBoundary=h,t.isFunctionScopeBoundary=D,t.isBlockScopeBoundary=x,t.hasOwnThisReference=function(e){switch(e.kind){case fd.SyntaxKind.ClassDeclaration:case fd.SyntaxKind.ClassExpression:case fd.SyntaxKind.FunctionExpression:return!0;case fd.SyntaxKind.FunctionDeclaration:return void 0!==e.body;case fd.SyntaxKind.MethodDeclaration:case fd.SyntaxKind.GetAccessor:case fd.SyntaxKind.SetAccessor:return e.parent.kind===fd.SyntaxKind.ObjectLiteralExpression;default:return!1}},t.isFunctionWithBody=function(e){switch(e.kind){case fd.SyntaxKind.GetAccessor:case fd.SyntaxKind.SetAccessor:case fd.SyntaxKind.FunctionDeclaration:case fd.SyntaxKind.MethodDeclaration:case fd.SyntaxKind.Constructor:return void 0!==e.body;case fd.SyntaxKind.FunctionExpression:case fd.SyntaxKind.ArrowFunction:return!0;default:return!1}},t.forEachToken=b,t.forEachTokenWithTrivia=function(e,t,r=e.getSourceFile()){const n=r.text,i=fd.createScanner(r.languageVersion,!1,r.languageVariant,n);return b(e,(e=>{const a=e.kind===fd.SyntaxKind.JsxText||e.pos===e.end?e.pos:e.getStart(r);if(a!==e.pos){i.setTextPos(e.pos);let r=i.scan(),o=i.getTokenPos();for(;o{if(e.pos!==e.end)return e.kind!==fd.SyntaxKind.JsxText&&fd.forEachLeadingCommentRange(n,0===e.pos?(fd.getShebang(n)||"").length:e.pos,a),i||function(e){switch(e.kind){case fd.SyntaxKind.CloseBraceToken:return e.parent.kind!==fd.SyntaxKind.JsxExpression||!S(e.parent.parent);case fd.SyntaxKind.GreaterThanToken:switch(e.parent.kind){case fd.SyntaxKind.JsxOpeningElement:return e.end!==e.parent.end;case fd.SyntaxKind.JsxOpeningFragment:return!1;case fd.SyntaxKind.JsxSelfClosingElement:return e.end!==e.parent.end||!S(e.parent.parent);case fd.SyntaxKind.JsxClosingElement:case fd.SyntaxKind.JsxClosingFragment:return!S(e.parent.parent.parent)}}return!0}(e)?fd.forEachTrailingCommentRange(n,e.end,a):void 0}),r);function a(e,r,i){t(n,{pos:e,end:r,kind:i})}},t.getLineRanges=function(e){const t=e.getLineStarts(),r=[],n=t.length,i=e.text;let a=0;for(let e=1;ea&&fd.isLineBreak(i.charCodeAt(o-1));--o);r.push({pos:a,end:n,contentLength:o-a}),a=n}return r.push({pos:a,end:e.end,contentLength:e.end-a}),r},t.getLineBreakStyle=function(e){const t=e.getLineStarts();return 1===t.length||t[1]<2||"\r"!==e.text[t[1]-2]?"\n":"\r\n"},t.isValidIdentifier=function(e,t=fd.ScriptTarget.Latest){const r=T(e,t);return r.isIdentifier()&&r.getTextPos()===e.length&&0===r.getTokenPos()},t.isValidPropertyAccess=k,t.isValidPropertyName=function(e,t=fd.ScriptTarget.Latest){if(k(e,t))return!0;const r=T(e,t);return r.getTextPos()===e.length&&r.getToken()===fd.SyntaxKind.NumericLiteral&&r.getTokenValue()===e},t.isValidNumericLiteral=function(e,t=fd.ScriptTarget.Latest){const r=T(e,t);return r.getToken()===fd.SyntaxKind.NumericLiteral&&r.getTextPos()===e.length&&0===r.getTokenPos()},t.isValidJsxIdentifier=function(e,t=fd.ScriptTarget.Latest){if(0===e.length)return!1;let r=!1,n=e.codePointAt(0);if(!fd.isIdentifierStart(n,t))return!1;for(let i=C(n);in===fd.SyntaxKind.MultiLineCommentTrivia&&"*"===r.text[e+2]?{pos:e}:void 0));if(void 0===i)return[];const a=i.pos,o=r.text.slice(a,t),s=fd.createSourceFile("jsdoc.ts",`${o}var a;`,r.languageVersion),c=M(s.statements[0],s);for(const t of c)u(t,e);return c;function u(e,t){return e.pos+=a,e.end+=a,e.parent=t,fd.forEachChild(e,(t=>u(t,e)),(t=>{t.pos+=a,t.end+=a;for(const r of t)u(r,e)}))}}(e,e.getStart(r),r,t)},(P=t.ImportKind||(t.ImportKind={}))[P.ImportDeclaration=1]="ImportDeclaration",P[P.ImportEquals=2]="ImportEquals",P[P.ExportFrom=4]="ExportFrom",P[P.DynamicImport=8]="DynamicImport",P[P.Require=16]="Require",P[P.ImportType=32]="ImportType",P[P.All=63]="All",P[P.AllImports=59]="AllImports",P[P.AllStaticImports=3]="AllStaticImports",P[P.AllImportExpressions=24]="AllImportExpressions",P[P.AllRequireLike=18]="AllRequireLike",P[P.AllNestedImports=56]="AllNestedImports",P[P.AllTopLevelImports=7]="AllTopLevelImports",t.findImports=function(e,t,r=!0){const n=[];for(const n of L(e,t,r))switch(n.kind){case fd.SyntaxKind.ImportDeclaration:i(n.moduleSpecifier);break;case fd.SyntaxKind.ImportEqualsDeclaration:i(n.moduleReference.expression);break;case fd.SyntaxKind.ExportDeclaration:i(n.moduleSpecifier);break;case fd.SyntaxKind.CallExpression:i(n.arguments[0]);break;case fd.SyntaxKind.ImportType:Rd.isLiteralTypeNode(n.argument)&&i(n.argument.literal);break;default:throw new Error("unexpected node")}return n;function i(e){Rd.isTextualLiteral(e)&&n.push(e)}},t.findImportLikeNodes=L;class R{constructor(e,t,r){this._sourceFile=e,this._options=t,this._ignoreFileName=r,this._result=[]}find(){return this._sourceFile.isDeclarationFile&&(this._options&=-25),7&this._options&&this._findImports(this._sourceFile.statements),56&this._options&&this._findNestedImports(),this._result}_findImports(e){for(const t of e)Rd.isImportDeclaration(t)?1&this._options&&this._result.push(t):Rd.isImportEqualsDeclaration(t)?2&this._options&&t.moduleReference.kind===fd.SyntaxKind.ExternalModuleReference&&this._result.push(t):Rd.isExportDeclaration(t)?void 0!==t.moduleSpecifier&&4&this._options&&this._result.push(t):Rd.isModuleDeclaration(t)&&this._findImportsInModule(t)}_findImportsInModule(e){if(void 0!==e.body)return e.body.kind===fd.SyntaxKind.ModuleDeclaration?this._findImportsInModule(e.body):void this._findImports(e.body.statements)}_findNestedImports(){const e=this._ignoreFileName||0!=(this._sourceFile.flags&fd.NodeFlags.JavaScriptFile);let t,r;if(16==(56&this._options)){if(!e)return;t=/\brequire\s*[1&&this._result.push(t.parent)}}else t.kind===fd.SyntaxKind.Identifier&&t.end-"require".length===e.index&&t.parent.kind===fd.SyntaxKind.CallExpression&&t.parent.expression===t&&1===t.parent.arguments.length&&this._result.push(t.parent)}}}function B(e){for(;e.kind===fd.SyntaxKind.ModuleBlock;){do{e=e.parent}while(e.flags&fd.NodeFlags.NestedNamespace);if(a(e.modifiers,fd.SyntaxKind.DeclareKeyword))return!0;e=e.parent}return!1}function j(e,t){return(e.strict?!1!==e[t]:!0===e[t])&&("strictPropertyInitialization"!==t||j(e,"strictNullChecks"))}function J(e){let t;return fd.forEachLeadingCommentRange(e,(fd.getShebang(e)||"").length,((r,n,i)=>{if(i===fd.SyntaxKind.SingleLineCommentTrivia){const i=e.slice(r,n),a=/^\/{2,3}\s*@ts-(no)?check(?:\s|$)/i.exec(i);null!==a&&(t={pos:r,end:n,enabled:void 0===a[1]})}})),t}function K(e){return Rd.isTypeReferenceNode(e.type)&&e.type.typeName.kind===fd.SyntaxKind.Identifier&&"const"===e.type.typeName.escapedText}function z(e){return 3===e.arguments.length&&Rd.isEntityNameExpression(e.arguments[0])&&Rd.isNumericOrStringLikeLiteral(e.arguments[1])&&Rd.isPropertyAccessExpression(e.expression)&&"defineProperty"===e.expression.name.escapedText&&Rd.isIdentifier(e.expression.expression)&&"Object"===e.expression.expression.escapedText}function U(e){return fd.isPropertyAccessExpression(e)&&fd.isIdentifier(e.expression)&&"Symbol"===e.expression.escapedText}function V(e){return{displayName:`[Symbol.${e.name.text}]`,symbolName:"__@"+e.name.text}}t.isStatementInAmbientContext=function(e){for(;e.flags&fd.NodeFlags.NestedNamespace;)e=e.parent;return a(e.modifiers,fd.SyntaxKind.DeclareKeyword)||B(e.parent)},t.isAmbientModuleBlock=B,t.getIIFE=function(e){let t=e.parent;for(;t.kind===fd.SyntaxKind.ParenthesizedExpression;)t=t.parent;return Rd.isCallExpression(t)&&e.end<=t.expression.end?t:void 0},t.isStrictCompilerOptionEnabled=j,t.isCompilerOptionEnabled=function e(t,r){switch(r){case"stripInternal":case"declarationMap":case"emitDeclarationOnly":return!0===t[r]&&e(t,"declaration");case"declaration":return t.declaration||e(t,"composite");case"incremental":return void 0===t.incremental?e(t,"composite"):t.incremental;case"skipDefaultLibCheck":return t.skipDefaultLibCheck||e(t,"skipLibCheck");case"suppressImplicitAnyIndexErrors":return!0===t.suppressImplicitAnyIndexErrors&&e(t,"noImplicitAny");case"allowSyntheticDefaultImports":return void 0!==t.allowSyntheticDefaultImports?t.allowSyntheticDefaultImports:e(t,"esModuleInterop")||t.module===fd.ModuleKind.System;case"noUncheckedIndexedAccess":return!0===t.noUncheckedIndexedAccess&&e(t,"strictNullChecks");case"allowJs":return void 0===t.allowJs?e(t,"checkJs"):t.allowJs;case"noImplicitAny":case"noImplicitThis":case"strictNullChecks":case"strictFunctionTypes":case"strictPropertyInitialization":case"alwaysStrict":case"strictBindCallApply":return j(t,r)}return!0===t[r]},t.isAmbientModule=function(e){return e.name.kind===fd.SyntaxKind.StringLiteral||0!=(e.flags&fd.NodeFlags.GlobalAugmentation)},t.getCheckJsDirective=function(e){return J(e)},t.getTsCheckDirective=J,t.isConstAssertion=K,t.isInConstContext=function(e){let t=e;for(;;){const e=t.parent;e:switch(e.kind){case fd.SyntaxKind.TypeAssertionExpression:case fd.SyntaxKind.AsExpression:return K(e);case fd.SyntaxKind.PrefixUnaryExpression:if(t.kind!==fd.SyntaxKind.NumericLiteral)return!1;switch(e.operator){case fd.SyntaxKind.PlusToken:case fd.SyntaxKind.MinusToken:t=e;break e;default:return!1}case fd.SyntaxKind.PropertyAssignment:if(e.initializer!==t)return!1;t=e.parent;break;case fd.SyntaxKind.ShorthandPropertyAssignment:t=e.parent;break;case fd.SyntaxKind.ParenthesizedExpression:case fd.SyntaxKind.ArrayLiteralExpression:case fd.SyntaxKind.ObjectLiteralExpression:case fd.SyntaxKind.TemplateExpression:t=e;break;default:return!1}}},t.isReadonlyAssignmentDeclaration=function(e,t){if(!z(e))return!1;const r=t.getTypeAtLocation(e.arguments[2]);if(void 0===r.getProperty("value"))return void 0===r.getProperty("set");const n=r.getProperty("writable");if(void 0===n)return!1;const i=void 0!==n.valueDeclaration&&Rd.isPropertyAssignment(n.valueDeclaration)?t.getTypeAtLocation(n.valueDeclaration.initializer):t.getTypeOfSymbolAtLocation(n,e.arguments[2]);return Vd.isBooleanLiteralType(i,!1)},t.isBindableObjectDefinePropertyCall=z,t.isWellKnownSymbolLiterally=U,t.getPropertyNameOfWellKnownSymbol=V;const q=(([e,t])=>e<"4"||"4"===e&&t<"3")(fd.versionMajorMinor.split("."));function W(e,t){const r={known:!0,names:[]};if(e=H(e),q&&U(e))r.names.push(V(e));else{const n=t.getTypeAtLocation(e);for(const e of Vd.unionTypeParts(t.getBaseConstraintOfType(n)||n)){const t=Vd.getPropertyNameFromType(e);t?r.names.push(t):r.known=!1}}return r}function H(e){for(;e.kind===fd.SyntaxKind.ParenthesizedExpression;)e=e.expression;return e}function G(e){return`${e.negative?"-":""}${e.base10Value}n`}function Y(e){return t.isTypeFlagSet(e,fd.TypeFlags.Null)?"null":t.isTypeFlagSet(e,fd.TypeFlags.Undefined)?"undefined":t.isTypeFlagSet(e,fd.TypeFlags.NumberLiteral)?`${t.isTypeFlagSet(e,fd.TypeFlags.EnumLiteral)?"enum:":""}${e.value}`:t.isTypeFlagSet(e,fd.TypeFlags.StringLiteral)?`${t.isTypeFlagSet(e,fd.TypeFlags.EnumLiteral)?"enum:":""}string:${e.value}`:t.isTypeFlagSet(e,fd.TypeFlags.BigIntLiteral)?G(e.value):zd.isUniqueESSymbolType(e)?e.escapedName:Vd.isBooleanLiteralType(e,!0)?"true":Vd.isBooleanLiteralType(e,!1)?"false":void 0}function X(e){var t;if((null===(t=e.heritageClauses)||void 0===t?void 0:t[0].token)===fd.SyntaxKind.ExtendsKeyword)return e.heritageClauses[0].types[0]}t.getLateBoundPropertyNames=W,t.getLateBoundPropertyNamesOfPropertyName=function(e,t){const r=p(e);return void 0!==r?{known:!0,names:[{displayName:r,symbolName:fd.escapeLeadingUnderscores(r)}]}:e.kind===fd.SyntaxKind.PrivateIdentifier?{known:!0,names:[{displayName:e.text,symbolName:t.getSymbolAtLocation(e).escapedName}]}:W(e.expression,t)},t.getSingleLateBoundPropertyNameOfPropertyName=function(e,t){const r=p(e);if(void 0!==r)return{displayName:r,symbolName:fd.escapeLeadingUnderscores(r)};if(e.kind===fd.SyntaxKind.PrivateIdentifier)return{displayName:e.text,symbolName:t.getSymbolAtLocation(e).escapedName};const{expression:n}=e;return q&&U(n)?V(n):Vd.getPropertyNameFromType(t.getTypeAtLocation(n))},t.unwrapParentheses=H,t.formatPseudoBigInt=G,t.hasExhaustiveCaseClauses=function(e,r){const n=e.caseBlock.clauses.filter(Rd.isCaseClause);if(0===n.length)return!1;const i=Vd.unionTypeParts(r.getTypeAtLocation(e.expression));if(i.length>n.length)return!1;const a=new Set(i.map(Y));if(a.has(void 0))return!1;const o=new Set;for(const e of n){const n=r.getTypeAtLocation(e.expression);if(t.isTypeFlagSet(n,fd.TypeFlags.Never))continue;const i=Y(n);if(a.has(i))o.add(i);else if("null"!==i&&"undefined"!==i)return!1}return a.size===o.size},t.getBaseOfClassLikeExpression=X})),Wd=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.convertComments=void 0;const a=i(fd);t.convertComments=function(e,t){const r=[];return qd.forEachComment(e,((n,i)=>{const o=i.kind==a.SyntaxKind.SingleLineCommentTrivia?bd.AST_TOKEN_TYPES.Line:bd.AST_TOKEN_TYPES.Block,s=[i.pos,i.end],c=Ed.getLocFor(s[0],s[1],e),u=s[0]+2,l=i.kind===a.SyntaxKind.SingleLineCommentTrivia?s[1]-u:s[1]-u-2;r.push({type:o,value:t.substr(u,l),range:s,loc:c})}),e),r}})),Hd={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["exported","source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportExpression:["source"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]};const Gd=Object.freeze(Object.keys(Hd));for(const e of Gd)Object.freeze(Hd[e]);Object.freeze(Hd);const Yd=new Set(["parent","leadingComments","trailingComments"]);function Xd(e){return!Yd.has(e)&&"_"!==e[0]}var $d=Object.freeze({KEYS:Hd,getKeys:e=>Object.keys(e).filter(Xd),unionWith(e){const t=Object.assign({},Hd);for(const r of Object.keys(e))if(t.hasOwnProperty(r)){const n=new Set(e[r]);for(const e of t[r])n.add(e);t[r]=Object.freeze(Array.from(n))}else t[r]=Object.freeze(Array.from(e[r]));return Object.freeze(t)}}),Qd=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.getKeys=void 0;const r=$d.getKeys;t.getKeys=r})),Zd=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.visitorKeys=void 0;const a=i($d).unionWith({ImportExpression:["source"],ArrayPattern:["decorators","elements","typeAnnotation"],ArrowFunctionExpression:["typeParameters","params","returnType","body"],AssignmentPattern:["decorators","left","right","typeAnnotation"],CallExpression:["callee","typeParameters","arguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","implements","body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","implements","body"],FunctionDeclaration:["id","typeParameters","params","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["decorators","typeAnnotation"],MethodDefinition:["decorators","key","value"],NewExpression:["callee","typeParameters","arguments"],ObjectPattern:["decorators","properties","typeAnnotation"],RestElement:["decorators","argument","typeAnnotation"],TaggedTemplateExpression:["tag","typeParameters","quasi"],JSXOpeningElement:["name","typeParameters","attributes"],JSXClosingFragment:[],JSXOpeningFragment:[],JSXSpreadChild:["expression"],ClassProperty:["decorators","key","typeAnnotation","value"],Decorator:["expression"],TSAbstractClassProperty:["decorators","key","typeAnnotation","value"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAnyKeyword:[],TSArrayType:["elementType"],TSAsExpression:["expression","typeAnnotation"],TSAsyncKeyword:[],TSBigIntKeyword:[],TSBooleanKeyword:[],TSCallSignatureDeclaration:["typeParameters","params","returnType"],TSClassImplements:["expression","typeParameters"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSConstructorType:["typeParameters","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","params","returnType"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSExportAssignment:["expression"],TSExportKeyword:[],TSExternalModuleReference:["expression"],TSFunctionType:["typeParameters","params","returnType"],TSImportEqualsDeclaration:["id","moduleReference"],TSImportType:["parameter","qualifier","typeParameters"],TSIndexedAccessType:["indexType","objectType"],TSIndexSignature:["parameters","typeAnnotation"],TSInferType:["typeParameter"],TSInterfaceBody:["body"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceHeritage:["expression","typeParameters"],TSIntersectionType:["types"],TSIntrinsicKeyword:[],TSLiteralType:["literal"],TSMappedType:["nameType","typeParameter","typeAnnotation"],TSMethodSignature:["typeParameters","key","params","returnType"],TSModuleBlock:["body"],TSModuleDeclaration:["id","body"],TSNamedTupleMember:["elementType"],TSNamespaceExportDeclaration:["id"],TSNeverKeyword:[],TSNonNullExpression:["expression"],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSOptionalType:["typeAnnotation"],TSParameterProperty:["decorators","parameter"],TSParenthesizedType:["typeAnnotation"],TSPrivateKeyword:[],TSPropertySignature:["typeAnnotation","key","initializer"],TSProtectedKeyword:[],TSPublicKeyword:[],TSQualifiedName:["left","right"],TSReadonlyKeyword:[],TSRestType:["typeAnnotation"],TSStaticKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSTemplateLiteralType:["quasis","types"],TSThisType:[],TSTupleType:["elementTypes"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSTypeAnnotation:["typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSTypeLiteral:["members"],TSTypeOperator:["typeAnnotation"],TSTypeParameter:["name","constraint","default"],TSTypeParameterDeclaration:["params"],TSTypeParameterInstantiation:["params"],TSTypePredicate:["typeAnnotation","parameterName"],TSTypeQuery:["exprName"],TSTypeReference:["typeName","typeParameters"],TSUndefinedKeyword:[],TSUnionType:["types"],TSUnknownKeyword:[],TSVoidKeyword:[]});t.visitorKeys=a})),e_=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.visitorKeys=t.getKeys=void 0,Object.defineProperty(t,"getKeys",{enumerable:!0,get:function(){return Qd.getKeys}}),Object.defineProperty(t,"visitorKeys",{enumerable:!0,get:function(){return Zd.visitorKeys}})})),t_=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.simpleTraverse=void 0;class r{constructor(e,t=!1){this.allVisitorKeys=e_.visitorKeys,this.selectors=e,this.setParentPointers=t}traverse(e,t){if(null===(r=e)||"object"!=typeof r||"string"!=typeof r.type)return;var r;this.setParentPointers&&(e.parent=t),"enter"in this.selectors?this.selectors.enter(e,t):e.type in this.selectors&&this.selectors[e.type](e,t);const n=function(e,t){const r=e[t.type];return null!=r?r:[]}(this.allVisitorKeys,e);if(!(n.length<1))for(const t of n){const r=e[t];if(Array.isArray(r))for(const t of r)this.traverse(t,e);else this.traverse(r,e)}}}t.simpleTraverse=function(e,t,n=!1){new r(t,n).traverse(e,void 0)}})),r_=f((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.astConverter=void 0,t.astConverter=function(e,t,r){const{parseDiagnostics:n}=e;if(n.length)throw Cd.convertError(n[0]);const i=new Cd.Converter(e,{errorOnUnknownASTType:t.errorOnUnknownASTType||!1,useJSXTextNode:t.useJSXTextNode||!1,shouldPreserveNodeMaps:r}),a=i.convertProgram();return t.range&&t.loc||t_.simpleTraverse(a,{enter:e=>{t.range||delete e.range,t.loc||delete e.loc}}),t.tokens&&(a.tokens=Ed.convertTokens(e)),t.comment&&(a.comments=Wd.convertComments(e,t.code)),{estree:a,astMaps:i.getASTMaps()}}})),n_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getAstFromProgram=t.getScriptKind=t.getCanonicalFileName=t.ensureAbsolutePath=t.createDefaultCompilerOptionsFromExtra=t.canonicalDirname=t.CORE_COMPILER_OPTIONS=void 0;const o=a(ud),s=i(fd),c={noEmit:!0,noUnusedLocals:!0,noUnusedParameters:!0};t.CORE_COMPILER_OPTIONS=c;const u=Object.assign(Object.assign({},c),{allowNonTsExtensions:!0,allowJs:!0,checkJs:!0});t.createDefaultCompilerOptionsFromExtra=function(e){return e.debugLevel.has("typescript")?Object.assign(Object.assign({},u),{extendedDiagnostics:!0}):u};const l=void 0===s.sys||s.sys.useCaseSensitiveFileNames?e=>e:e=>e.toLowerCase();function d(e){return e?e.endsWith(".d.ts")?".d.ts":o.default.extname(e):null}t.getCanonicalFileName=function(e){let t=o.default.normalize(e);return t.endsWith(o.default.sep)&&(t=t.substr(0,t.length-1)),l(t)},t.ensureAbsolutePath=function(e,t){return o.default.isAbsolute(e)?e:o.default.join(t.tsconfigRootDir||ar.cwd(),e)},t.canonicalDirname=function(e){return o.default.dirname(e)},t.getScriptKind=function(e,t=e.filePath){switch(o.default.extname(t).toLowerCase()){case".ts":return s.ScriptKind.TS;case".tsx":return s.ScriptKind.TSX;case".js":return s.ScriptKind.JS;case".jsx":return s.ScriptKind.JSX;case".json":return s.ScriptKind.JSON;default:return e.jsx?s.ScriptKind.TSX:s.ScriptKind.TS}},t.getAstFromProgram=function(e,t){const r=e.getSourceFile(t.filePath);if(d(t.filePath)===d(null==r?void 0:r.fileName))return r&&{ast:r,program:e}}})),i_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createDefaultProgram=void 0;const o=a(Dc),s=a(ud),c=i(fd),u=o.default("typescript-eslint:typescript-estree:createDefaultProgram");t.createDefaultProgram=function(e,t){if(u("Getting default program for: %s",t.filePath||"unnamed file"),!t.projects||1!==t.projects.length)return;const r=t.projects[0],n=c.getParsedCommandLineOfConfigFile(r,n_.createDefaultCompilerOptionsFromExtra(t),Object.assign(Object.assign({},c.sys),{onUnRecoverableConfigFileDiagnostic:()=>{}}));if(!n)return;const i=c.createCompilerHost(n.options,!0),a=i.readFile;i.readFile=r=>s.default.normalize(r)===s.default.normalize(t.filePath)?e:a(r);const o=c.createProgram([t.filePath],n.options,i),l=o.getSourceFile(t.filePath);return l&&{ast:l,program:o}}})),a_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createIsolatedProgram=void 0;const o=a(Dc),s=i(fd),c=o.default("typescript-eslint:typescript-estree:createIsolatedProgram");t.createIsolatedProgram=function(e,t){c("Getting isolated program in %s mode for: %s",t.jsx?"TSX":"TS",t.filePath);const r={fileExists:()=>!0,getCanonicalFileName:()=>t.filePath,getCurrentDirectory:()=>"",getDirectories:()=>[],getDefaultLibFileName:()=>"lib.d.ts",getNewLine:()=>"\n",getSourceFile:r=>s.createSourceFile(r,e,s.ScriptTarget.Latest,!0,n_.getScriptKind(t,r)),readFile(){},useCaseSensitiveFileNames:()=>!0,writeFile:()=>null},n=s.createProgram([t.filePath],Object.assign({noResolve:!0,target:s.ScriptTarget.Latest,jsx:t.jsx?s.JsxEmit.Preserve:void 0},n_.createDefaultCompilerOptionsFromExtra(t)),r),i=n.getSourceFile(t.filePath);if(!i)throw new Error("Expected an ast to be returned for the single-file isolated program.");return{ast:i,program:n}}})),o_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getProgramsForProjects=t.createWatchProgram=t.clearWatchCaches=void 0;const o=a(Dc),s=a(ld),c=a(ll),u=i(fd),l=o.default("typescript-eslint:typescript-estree:createWatchProgram"),d=new Map,p=new Map,f=new Map,g=new Map,m=new Map,y=new Map;function v(e){return(t,r)=>{const n=n_.getCanonicalFileName(t),i=(()=>{let t=e.get(n);return t||(t=new Set,e.set(n,t)),t})();return i.add(r),{close:()=>{i.delete(r)}}}}t.clearWatchCaches=function(){d.clear(),p.clear(),f.clear(),y.clear(),g.clear(),m.clear()};const h={code:"",filePath:""};function D(e){throw new Error(u.flattenDiagnosticMessageText(e.messageText,u.sys.newLine))}function x(e){var t;return(null===(t=u.sys)||void 0===t?void 0:t.createHash)?u.sys.createHash(e):e}function b(e,t,r){const n=r.EXPERIMENTAL_useSourceOfProjectReferenceRedirect?new Set(t.getSourceFiles().map((e=>n_.getCanonicalFileName(e.fileName)))):new Set(t.getRootFileNames().map((e=>n_.getCanonicalFileName(e))));return g.set(e,n),n}t.getProgramsForProjects=function(e,t,r){const n=n_.getCanonicalFileName(t),i=[];h.code=e,h.filePath=n;const a=p.get(n),o=x(e);y.get(n)!==o&&a&&a.size>0&&a.forEach((e=>e(n,u.FileWatcherEventKind.Changed)));for(const[e,t]of d.entries()){let i=g.get(e),a=null;if(i||(a=t.getProgram().getProgram(),i=b(e,a,r)),i.has(n))return l("Found existing program for file. %s",n),a=null!=a?a:t.getProgram().getProgram(),a.getTypeChecker(),[a]}l("File did not belong to any existing programs, moving to create/update. %s",n);for(const e of r.projects){const t=d.get(e);if(t){const a=T(t,n,e);if(!a)continue;a.getTypeChecker();if(b(e,a,r).has(n))return l("Found updated program for file. %s",n),[a];i.push(a);continue}const a=E(e,r);d.set(e,a);const o=a.getProgram().getProgram();o.getTypeChecker();if(b(e,o,r).has(n))return l("Found program for file. %s",n),[o];i.push(o)}return i};const S=c.default.satisfies(u.version,">=3.9.0-beta",{includePrerelease:!0});function E(e,t){l("Creating watch program for %s.",e);const r=u.createWatchCompilerHost(e,n_.createDefaultCompilerOptionsFromExtra(t),u.sys,u.createAbstractBuilder,D,(()=>{})),n=r.readFile;r.readFile=(e,t)=>{const r=n_.getCanonicalFileName(e),i=r===h.filePath?h.code:n(r,t);return void 0!==i&&y.set(r,x(i)),i},r.onUnRecoverableConfigFileDiagnostic=D,r.afterProgramCreate=e=>{const t=e.getConfigFileParsingDiagnostics().filter((e=>e.category===u.DiagnosticCategory.Error&&18003!==e.code));t.length>0&&D(t[0])},r.watchFile=v(p),r.watchDirectory=v(f);const i=r.onCachedDirectoryStructureHostCreate;let a;r.onCachedDirectoryStructureHostCreate=e=>{const r=e.readDirectory;e.readDirectory=(e,n,i,a,o)=>r(e,n?n.concat(t.extraFileExtensions):void 0,i,a,o),i(e)},r.extraFileExtensions=t.extraFileExtensions.map((e=>({extension:e,isMixedContent:!0,scriptKind:u.ScriptKind.Deferred}))),r.trace=l,r.useSourceOfProjectReferenceRedirect=()=>t.EXPERIMENTAL_useSourceOfProjectReferenceRedirect,S?(r.setTimeout=void 0,r.clearTimeout=void 0):(l("Running without timeout fix"),r.setTimeout=(e,t,...r)=>(a=e.bind(void 0,...r),a),r.clearTimeout=()=>{a=void 0});const o=u.createWatchProgram(r);if(!S){const e=o.getProgram;o.getProgram=()=>(a&&a(),a=void 0,e.call(o))}return o}function T(e,t,r){let n=e.getProgram().getProgram();if("true"===ar.env.TSESTREE_NO_INVALIDATION)return n;(function(e){const t=s.default.statSync(e).mtimeMs,r=m.get(e);return m.set(e,t),void 0!==r&&Math.abs(r-t)>Number.EPSILON})(r)&&(l("tsconfig has changed - triggering program update. %s",r),p.get(r).forEach((e=>e(r,u.FileWatcherEventKind.Changed))),g.delete(r));let i=n.getSourceFile(t);if(i)return n;l("File was not found in program - triggering folder update. %s",t);const a=n_.canonicalDirname(t);let o=null,c=a,d=!1;for(;o!==c;){o=c;const e=f.get(o);e&&(e.forEach((e=>{a!==o&&e(a,u.FileWatcherEventKind.Changed),e(o,u.FileWatcherEventKind.Changed)})),d=!0),c=n_.canonicalDirname(o)}if(!d)return l("No callback found for file, not part of this program. %s",t),null;if(g.delete(r),n=e.getProgram().getProgram(),i=n.getSourceFile(t),i)return n;l("File was still not found in program after directory update - checking file deletions. %s",t);const _=n.getRootFileNames().find((e=>!s.default.existsSync(e)));if(!_)return null;const y=p.get(n_.getCanonicalFileName(_));return y?(l("Marking file as deleted. %s",_),y.forEach((e=>e(_,u.FileWatcherEventKind.Deleted))),g.delete(r),n=e.getProgram().getProgram(),i=n.getSourceFile(t),i?n:(l("File was still not found in program after deletion check, assuming it is not part of this program. %s",t),null)):(l("Could not find watch callbacks for root file. %s",_),n)}t.createWatchProgram=E})),s_=f((function(e,t){var r=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createProjectProgram=void 0;const n=r(Dc),i=r(ud),a=n.default("typescript-eslint:typescript-estree:createProjectProgram"),o=[".ts",".tsx",".js",".jsx"];t.createProjectProgram=function(e,t,r){a("Creating project program for: %s",r.filePath);const n=Ed.firstDefined(o_.getProgramsForProjects(e,r.filePath,r),(e=>n_.getAstFromProgram(e,r)));if(!n&&!t){const e=['"parserOptions.project" has been set for @typescript-eslint/parser.',`The file does not match your project config: ${i.default.relative(r.tsconfigRootDir||ar.cwd(),r.filePath)}.`];let t=!1;const n=r.extraFileExtensions||[];n.forEach((t=>{t.startsWith(".")||e.push(`Found unexpected extension "${t}" specified with the "extraFileExtensions" option. Did you mean ".${t}"?`),o.includes(t)&&e.push(`You unnecessarily included the extension "${t}" with the "extraFileExtensions" option. This extension is already handled by the parser by default.`)}));const a=i.default.extname(r.filePath);if(!o.includes(a)){const r=`The extension for the file (${a}) is non-standard`;n.length>0?n.includes(a)||(e.push(`${r}. It should be added to your existing "parserOptions.extraFileExtensions".`),t=!0):(e.push(`${r}. You should add "parserOptions.extraFileExtensions" to your config.`),t=!0)}throw t||e.push("The file must be included in at least one of the projects provided."),new Error(e.join("\n"))}return n}})),c_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createSourceFile=void 0;const o=a(Dc),s=i(fd),c=o.default("typescript-eslint:typescript-estree:createSourceFile");t.createSourceFile=function(e,t){return c("Getting AST without type information in %s mode for: %s",t.jsx?"TSX":"TS",t.filePath),s.createSourceFile(t.filePath,e,s.ScriptTarget.Latest,!0,n_.getScriptKind(t))}})),u_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getFirstSemanticOrSyntacticError=void 0;const a=i(fd);function o(e){return e.filter((e=>{switch(e.code){case 1013:case 1014:case 1044:case 1045:case 1048:case 1049:case 1070:case 1071:case 1085:case 1090:case 1096:case 1097:case 1098:case 1099:case 1117:case 1121:case 1123:case 1141:case 1162:case 1164:case 1172:case 1173:case 1175:case 1176:case 1190:case 1196:case 1200:case 1206:case 1211:case 1242:case 1246:case 1255:case 1308:case 2364:case 2369:case 2452:case 2462:case 8017:case 17012:case 17013:return!0}return!1}))}function s(e){return Object.assign(Object.assign({},e),{message:a.flattenDiagnosticMessageText(e.messageText,a.sys.newLine)})}t.getFirstSemanticOrSyntacticError=function(e,t){try{const r=o(e.getSyntacticDiagnostics(t));if(r.length)return s(r[0]);const n=o(e.getSemanticDiagnostics(t));return n.length?s(n[0]):void 0}catch(e){return void console.warn(`Warning From TSC: "${e.message}`)}}})),l_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createProgramFromConfigFile=t.useProvidedPrograms=void 0;const o=a(Dc),s=i(ld),c=i(ud),u=i(fd),l=o.default("typescript-eslint:typescript-estree:useProvidedProgram");function d(e){return u.formatDiagnostics(e,{getCanonicalFileName:e=>e,getCurrentDirectory:ar.cwd,getNewLine:()=>"\n"})}t.useProvidedPrograms=function(e,t){let r;l("Retrieving ast for %s from provided program instance(s)",t.filePath);for(const n of e)if(r=n_.getAstFromProgram(n,t),r)break;if(!r){const e=c.relative(t.tsconfigRootDir||ar.cwd(),t.filePath);throw new Error(['"parserOptions.programs" has been provided for @typescript-eslint/parser.',`The file was not found in any of the provided program instance(s): ${e}`].join("\n"))}return r.program.getTypeChecker(),r},t.createProgramFromConfigFile=function(e,t){if(void 0===u.sys)throw new Error("`createProgramFromConfigFile` is only supported in a Node-like environment.");const r=u.getParsedCommandLineOfConfigFile(e,n_.CORE_COMPILER_OPTIONS,{onUnRecoverableConfigFileDiagnostic:e=>{throw new Error(d([e]))},fileExists:s.existsSync,getCurrentDirectory:()=>t&&c.resolve(t)||ar.cwd(),readDirectory:u.sys.readDirectory,readFile:e=>s.readFileSync(e,"utf-8"),useCaseSensitiveFileNames:u.sys.useCaseSensitiveFileNames});if(r.errors.length)throw new Error(d(r.errors));const n=u.createCompilerHost(r.options,!0);return u.createProgram(r.fileNames,r.options,n)}})),d_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=_&&_.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t},a=_&&_.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.clearProgramCache=t.parseWithNodeMaps=t.parseAndGenerateServices=t.parse=void 0;const o=a(Dc),s={},c=a(Ec),u=a(ll),l=i(fd),d=o.default("typescript-eslint:typescript-estree:parser"),p=">=3.3.1 <4.4.0",f=l.version,g=u.default.satisfies(f,[p].concat(["4.3.0-beta","4.3.1-rc"]).join(" || "));let m,y=!1;const v=new Map;function h(e){return"string"!=typeof e?String(e):e}function D({jsx:e}={}){return e?"estree.tsx":"estree.ts"}function x(){m={code:"",comment:!1,comments:[],createDefaultProgram:!1,debugLevel:new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:!1,EXPERIMENTAL_useSourceOfProjectReferenceRedirect:!1,extraFileExtensions:[],filePath:D(),jsx:!1,loc:!1,log:console.log,preserveNodeMaps:!0,programs:null,projects:[],range:!1,strict:!1,tokens:null,tsconfigRootDir:ar.cwd(),useJSXTextNode:!1,singleRun:!1}}function b(e,t){const r=[];if("string"==typeof e)r.push(e);else if(Array.isArray(e))for(const t of e)"string"==typeof t&&r.push(t);if(0===r.length)return[];const n=r.filter((e=>!c.default(e))),i=r.filter((e=>c.default(e))),a=new Set(n.concat(s.sync([...i,...t],{cwd:m.tsconfigRootDir})).map((e=>function(e,t){return n_.getCanonicalFileName(n_.ensureAbsolutePath(e,t))}(e,m))));return d("parserOptions.project (excluding ignored) matched projects: %s",a),Array.from(a)}function S(e){var t;if(!0===e.debugLevel?m.debugLevel=new Set(["typescript-eslint"]):Array.isArray(e.debugLevel)&&(m.debugLevel=new Set(e.debugLevel)),m.debugLevel.size>0){const e=[];m.debugLevel.has("typescript-eslint")&&e.push("typescript-eslint:*"),(m.debugLevel.has("eslint")||o.default.enabled("eslint:*,-eslint:code-path"))&&e.push("eslint:*,-eslint:code-path"),o.default.enable(e.join(","))}if(m.range="boolean"==typeof e.range&&e.range,m.loc="boolean"==typeof e.loc&&e.loc,"boolean"==typeof e.tokens&&e.tokens&&(m.tokens=[]),"boolean"==typeof e.comment&&e.comment&&(m.comment=!0,m.comments=[]),"boolean"==typeof e.jsx&&e.jsx&&(m.jsx=!0),"string"==typeof e.filePath&&""!==e.filePath?m.filePath=e.filePath:m.filePath=D(m),"boolean"==typeof e.useJSXTextNode&&e.useJSXTextNode&&(m.useJSXTextNode=!0),"boolean"==typeof e.errorOnUnknownASTType&&e.errorOnUnknownASTType&&(m.errorOnUnknownASTType=!0),"function"==typeof e.loggerFn?m.log=e.loggerFn:!1===e.loggerFn&&(m.log=()=>{}),"string"==typeof e.tsconfigRootDir&&(m.tsconfigRootDir=e.tsconfigRootDir),m.filePath=n_.ensureAbsolutePath(m.filePath,m),Array.isArray(e.programs)){if(!e.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");m.programs=e.programs,d("parserOptions.programs was provided, so parserOptions.project will be ignored.")}if(!m.programs){const r=(null!==(t=e.projectFolderIgnoreList)&&void 0!==t?t:["**/node_modules/**"]).reduce(((e,t)=>("string"==typeof t&&e.push(t),e)),[]).map((e=>e.startsWith("!")?e:`!${e}`));m.projects=[]||b(e.project,r)}Array.isArray(e.extraFileExtensions)&&e.extraFileExtensions.every((e=>"string"==typeof e))&&(m.extraFileExtensions=e.extraFileExtensions),"boolean"==typeof e.preserveNodeMaps&&(m.preserveNodeMaps=e.preserveNodeMaps),m.createDefaultProgram="boolean"==typeof e.createDefaultProgram&&e.createDefaultProgram,m.EXPERIMENTAL_useSourceOfProjectReferenceRedirect="boolean"==typeof e.EXPERIMENTAL_useSourceOfProjectReferenceRedirect&&e.EXPERIMENTAL_useSourceOfProjectReferenceRedirect}function E(){var e;if(!g&&!y){if(void 0!==typeof ar&&(null===(e=ar.stdout)||void 0===e?void 0:e.isTTY)){const e="=============",t=[e,"WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.","You may find that it works just fine, or you may not.",`SUPPORTED TYPESCRIPT VERSIONS: ${p}`,`YOUR TYPESCRIPT VERSION: ${f}`,"Please only submit bug reports when using the officially supported version.",e];m.log(t.join("\n\n"))}y=!0}}function T(e){"false"!==ar.env.TSESTREE_SINGLE_RUN?"true"!==ar.env.TSESTREE_SINGLE_RUN&&(!(null==e?void 0:e.allowAutomaticSingleRunInference)||"true"!==ar.env.CI&&!ar.argv[1].endsWith(ud.normalize("node_modules/.bin/eslint")))?m.singleRun=!1:m.singleRun=!0:m.singleRun=!1}function C(e,t,r){if(x(),null==t?void 0:t.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');e=h(e),m.code=e,void 0!==t&&S(t),E(),T(t);const n=c_.createSourceFile(e,m),{estree:i,astMaps:a}=r_.astConverter(n,m,r);return{ast:i,esTreeNodeToTSNodeMap:a.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:a.tsNodeToESTreeNodeMap}}t.clearProgramCache=function(){v.clear()},t.parse=function(e,t){const{ast:r}=C(e,t,!1);return r},t.parseWithNodeMaps=function(e,t){return C(e,t,!0)},t.parseAndGenerateServices=function(e,t){var r;x(),e=h(e),m.code=e,void 0!==t&&(S(t),"boolean"==typeof t.errorOnTypeScriptSyntacticAndSemanticIssues&&t.errorOnTypeScriptSyntacticAndSemanticIssues&&(m.errorOnTypeScriptSyntacticAndSemanticIssues=!0)),E(),T(t),m.singleRun&&!m.programs&&(null===(r=m.projects)||void 0===r?void 0:r.length)>0&&(m.programs={*[Symbol.iterator](){for(const e of m.projects){const t=v.get(e);if(t)yield t;else{d("Detected single-run/CLI usage, creating Program once ahead of time for project: %s",e);const t=l_.createProgramFromConfigFile(e);v.set(e,t),yield t}}}});const n=null!=m.programs||m.projects&&m.projects.length>0,{ast:i,program:a}=function(e,t,r,n){return t&&l_.useProvidedPrograms(t,m)||r&&s_.createProjectProgram(e,n,m)||r&&n&&i_.createDefaultProgram(e,m)||a_.createIsolatedProgram(e,m)}(e,m.programs,n,m.createDefaultProgram),o="boolean"!=typeof m.preserveNodeMaps||m.preserveNodeMaps,{estree:s,astMaps:c}=r_.astConverter(i,m,o);if(a&&m.errorOnTypeScriptSyntacticAndSemanticIssues){const e=u_.getFirstSemanticOrSyntacticError(a,i);if(e)throw Cd.convertError(e)}return{ast:s,services:{hasFullTypeInformation:n,program:a,esTreeNodeToTSNodeMap:c.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:c.tsNodeToESTreeNodeMap}}}})),__="4.27.0",p_=f((function(e,t){var r=_&&_.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),n=_&&_.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.visitorKeys=t.createProgram=t.clearCaches=t.simpleTraverse=void 0,n(d_,t),Object.defineProperty(t,"simpleTraverse",{enumerable:!0,get:function(){return t_.simpleTraverse}}),n(bd,t),Object.defineProperty(t,"clearCaches",{enumerable:!0,get:function(){return o_.clearWatchCaches}}),Object.defineProperty(t,"createProgram",{enumerable:!0,get:function(){return l_.createProgramFromConfigFile}}),Object.defineProperty(t,"visitorKeys",{enumerable:!0,get:function(){return e_.visitorKeys}}),t.version=__}));const f_={loc:!0,range:!0,comment:!0,useJSXTextNode:!0,jsx:!0,tokens:!0,loggerFn:!1,project:[]};var g_={parsers:{typescript:_o((function(r,n,i){const a=po(r),o=function(e){return new RegExp(["(^[^\"'`]*)"].join(""),"m").test(e)}(r),{parseWithNodeMaps:s}=p_,{result:c,error:u}=t((()=>s(a,Object.assign(Object.assign({},f_),{},{jsx:o}))),(()=>s(a,Object.assign(Object.assign({},f_),{},{jsx:!o}))));if(!c)throw function(t){const{message:r,lineNumber:n,column:i}=t;return"number"!=typeof n?t:e(r,{start:{line:n,column:i+1}})}(u);return pa(c.ast,Object.assign(Object.assign({},i),{},{originalText:r,tsParseResult:c}))}))}};export default g_; diff --git a/node_modules/prettier/esm/parser-yaml.mjs b/node_modules/prettier/esm/parser-yaml.mjs new file mode 100644 index 0000000000..bf8a33f809 --- /dev/null +++ b/node_modules/prettier/esm/parser-yaml.mjs @@ -0,0 +1,15 @@ +var e=function(e,t){const n=new SyntaxError(e+" ("+t.start.line+":"+t.start.column+")");return n.loc=t,n};var t={isPragma:function(e){return/^\s*@(prettier|format)\s*$/.test(e)},hasPragma:function(e){return/^\s*#[^\S\n]*@(prettier|format)\s*?(\n|$)/.test(e)},insertPragma:function(e){return`# @format\n\n${e}`}};var n={locStart:function(e){return e.position.start.offset},locEnd:function(e){return e.position.end.offset}},r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(e){var t={exports:{}};return e(t,t.exports),t.exports +/*! ***************************************************************************** +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 i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var s=function(){return(s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function c(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)s.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return s}function u(e){return this instanceof u?(this.v=e,this):new u(e)}var l=Object.freeze({__proto__:null,__extends:function(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},get __assign(){return s},__rest:function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},__param:function(e,t){return function(n,r){t(n,r,e)}},__metadata:function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{c(r.next(e))}catch(e){i(e)}}function a(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},__generator:function(e,t){var n,r,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,r=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]1||a(e,t)}))})}function a(e,t){try{(n=o[e](t)).value instanceof u?Promise.resolve(n.value.v).then(c,l):f(i[0][2],n)}catch(e){f(i[0][3],e)}var n}function c(e){a("next",e)}function l(e){a("throw",e)}function f(e,t){e(t),i.shift(),i.length&&a(i[0][0],i[0][1])}},__asyncDelegator:function(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:u(e[r](t)),done:"return"===r}:o?o(t):t}:o}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=a(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)},__classPrivateFieldSet:function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}}),f=o((function(e,t){var n="\n",r=function(){function e(e){this.string=e;for(var t=[0],r=0;rthis.string.length)return null;for(var t=0,n=this.offsets;n[t+1]<=e;)t++;return{line:t,column:e-n[t]}},e.prototype.indexForLocation=function(e){var t=e.line,n=e.column;return t<0||t>=this.offsets.length||n<0||n>this.lengthOfLine(t)?null:this.offsets[t]+n},e.prototype.lengthOfLine=function(e){var t=this.offsets[e];return(e===this.offsets.length-1?this.string.length:this.offsets[e+1])-t},e}();t.__esModule=!0,t.default=r})),h=function(e){return e&&e.Math==Math&&e},p=h("object"==typeof globalThis&&globalThis)||h("object"==typeof window&&window)||h("object"==typeof self&&self)||h("object"==typeof r&&r)||function(){return this}()||Function("return this")(),d=function(e){try{return!!e()}catch(e){return!0}},g=!d((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),m={}.propertyIsEnumerable,y=Object.getOwnPropertyDescriptor,v={f:y&&!m.call({1:2},1)?function(e){var t=y(this,e);return!!t&&t.enumerable}:m},w=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},b={}.toString,_="".split,E=d((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==function(e){return b.call(e).slice(8,-1)}(e)?_.call(e,""):Object(e)}:Object,O=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},S=function(e){return E(O(e))},A=function(e){return"object"==typeof e?null!==e:"function"==typeof e},M=function(e,t){if(!A(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!A(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!A(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!A(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")},L=function(e){return Object(O(e))},N={}.hasOwnProperty,T=Object.hasOwn||function(e,t){return N.call(L(e),t)},P=p.document,C=A(P)&&A(P.createElement),x=!g&&!d((function(){return 7!=Object.defineProperty((e="div",C?P.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),R=Object.getOwnPropertyDescriptor,I={f:g?R:function(e,t){if(e=S(e),t=M(t,!0),x)try{return R(e,t)}catch(e){}if(T(e,t))return w(!v.f.call(e,t),e[t])}},k=function(e){if(!A(e))throw TypeError(String(e)+" is not an object");return e},B=Object.defineProperty,Y={f:g?B:function(e,t,n){if(k(e),t=M(t,!0),k(n),x)try{return B(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},j=g?function(e,t,n){return Y.f(e,t,w(1,n))}:function(e,t,n){return e[t]=n,e},$=function(e,t){try{j(p,e,t)}catch(n){p[e]=t}return t},D=p["__core-js_shared__"]||$("__core-js_shared__",{}),F=Function.toString;"function"!=typeof D.inspectSource&&(D.inspectSource=function(e){return F.call(e)});var U,W,K,V,Q=D.inspectSource,q=p.WeakMap,J="function"==typeof q&&/native code/.test(Q(q)),G=o((function(e){(e.exports=function(e,t){return D[e]||(D[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.14.0",mode:"global",copyright:"\xa9 2021 Denis Pushkarev (zloirock.ru)"})})),H=0,z=Math.random(),Z=G("keys"),X={},ee=p.WeakMap;if(J||D.state){var te=D.state||(D.state=new ee),ne=te.get,re=te.has,oe=te.set;U=function(e,t){if(re.call(te,e))throw new TypeError("Object already initialized");return t.facade=e,oe.call(te,e,t),t},W=function(e){return ne.call(te,e)||{}},K=function(e){return re.call(te,e)}}else{var ie=Z[V="state"]||(Z[V]=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++H+z).toString(36)}(V));X[ie]=!0,U=function(e,t){if(T(e,ie))throw new TypeError("Object already initialized");return t.facade=e,j(e,ie,t),t},W=function(e){return T(e,ie)?e[ie]:{}},K=function(e){return T(e,ie)}}var se,ae,ce={set:U,get:W,has:K,enforce:function(e){return K(e)?W(e):U(e,{})},getterFor:function(e){return function(t){var n;if(!A(t)||(n=W(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},ue=o((function(e){var t=ce.get,n=ce.enforce,r=String(String).split("String");(e.exports=function(e,t,o,i){var s,a=!!i&&!!i.unsafe,c=!!i&&!!i.enumerable,u=!!i&&!!i.noTargetGet;"function"==typeof o&&("string"!=typeof t||T(o,"name")||j(o,"name",t),(s=n(o)).source||(s.source=r.join("string"==typeof t?t:""))),e!==p?(a?!u&&e[t]&&(c=!0):delete e[t],c?e[t]=o:j(e,t,o)):c?e[t]=o:$(t,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&t(this).source||Q(this)}))})),le=p,fe=function(e){return"function"==typeof e?e:void 0},he=function(e,t){return arguments.length<2?fe(le[e])||fe(p[e]):le[e]&&le[e][t]||p[e]&&p[e][t]},pe=Math.ceil,de=Math.floor,ge=function(e){return isNaN(e=+e)?0:(e>0?de:pe)(e)},me=Math.min,ye=function(e){return e>0?me(ge(e),9007199254740991):0},ve=Math.max,we=Math.min,be=function(e){return function(t,n,r){var o,i=S(t),s=ye(i.length),a=function(e,t){var n=ge(e);return n<0?ve(n+t,0):we(n,t)}(r,s);if(e&&n!=n){for(;s>a;)if((o=i[a++])!=o)return!0}else for(;s>a;a++)if((e||a in i)&&i[a]===n)return e||a||0;return!e&&-1}},_e={includes:be(!0),indexOf:be(!1)}.indexOf,Ee=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(e){return function(e,t){var n,r=S(e),o=0,i=[];for(n in r)!T(X,n)&&T(r,n)&&i.push(n);for(;t.length>o;)T(r,n=t[o++])&&(~_e(i,n)||i.push(n));return i}(e,Ee)}},Se={f:Object.getOwnPropertySymbols},Ae=he("Reflect","ownKeys")||function(e){var t=Oe.f(k(e)),n=Se.f;return n?t.concat(n(e)):t},Me=function(e,t){for(var n=Ae(t),r=Y.f,o=I.f,i=0;i0;)e[r]=e[--r];r!==i++&&(e[r]=n)}return e},je=function(e,t,n){for(var r=e.length,o=t.length,i=0,s=0,a=[];i=74)&&(se=De.match(/Chrome\/(\d+)/))&&(ae=se[1]);var qe,Je,Ge=ae&&+ae,He=De.match(/AppleWebKit\/(\d+)\./),ze=!!He&&+He[1],Ze=[],Xe=Ze.sort,et=d((function(){Ze.sort(void 0)})),tt=d((function(){Ze.sort(null)})),nt=!!(Je=[]["sort"])&&d((function(){Je.call(null,qe||function(){throw 1},1)})),rt=!d((function(){if(Ge)return Ge<70;if(!(Ue&&Ue>3)){if(We)return!0;if(ze)return ze<603;var e,t,n,r,o="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)Ze.push({k:t+r,v:n})}for(Ze.sort((function(e,t){return t.v-e.v})),r=0;rString(n)?1:-1}}(e))).length,r=0;r1&&e.position.start.line>n[0].position.end.line;)n.shift();!function(e,t,n){var r=e.position.start.line,o=t[r-1].trailingAttachableNode;if(o){if(o.trailingComment)throw new Error("Unexpected multiple trailing comment at "+at.getPointText(e.position.start));return it.defineParents(e,o),void(o.trailingComment=e)}for(var i=r;i>=n.position.start.line;i--){var s=t[i-1].trailingNode,a=void 0;if(s)a=s;else{if(i===r||!t[i-1].comment)continue;a=t[i-1].comment._parent}if("sequence"!==a.type&&"mapping"!==a.type||(a=a.children[0]),"mappingItem"===a.type){var c=a.children,u=c[0],l=c[1];a=ft(u)?u:l}for(;;){if(lt(a,e))return it.defineParents(e,a),void a.endComments.push(e);if(!a._parent)break;a=a._parent}break}for(i=r+1;i<=n.position.end.line;i++){var f=t[i-1].leadingAttachableNode;if(f)return it.defineParents(e,f),void f.leadingComments.push(e)}var h=n.children[1];it.defineParents(e,h),h.endComments.push(e)}(e,t,n[0])}))};function ut(e,t){if(t.position.start.offset!==t.position.end.offset){if("leadingComments"in t){var n=t.position.start,r=e[n.line-1].leadingAttachableNode;(!r||n.column1&&"document"!==t.type&&"documentHead"!==t.type){var o=t.position.end,i=e[o.line-1].trailingAttachableNode;(!i||o.column>=i.position.end.column)&&(e[o.line-1].trailingAttachableNode=t)}if("root"!==t.type&&"document"!==t.type&&"documentHead"!==t.type&&"documentBody"!==t.type)for(var s=t.position,a=(n=s.start,0),c=[(o=s.end).line].concat(n.line===o.line?[]:n.line);a=l.position.end.column)&&(e[u-1].trailingNode=t)}"children"in t&&t.children.forEach((function(t){ut(e,t)}))}}function lt(e,t){if(e.position.start.offsett.position.end.offset)switch(e.type){case"flowMapping":case"flowSequence":return 0===e.children.length||t.position.start.line>e.children[e.children.length-1].position.end.line}if(t.position.end.offsete.position.start.column;case"mappingKey":case"mappingValue":return t.position.start.column>e._parent.position.start.column&&(0===e.children.length||1===e.children.length&&"blockFolded"!==e.children[0].type&&"blockLiteral"!==e.children[0].type)&&("mappingValue"===e.type||ft(e));default:return!1}}function ft(e){return e.position.start!==e.position.end&&(0===e.children.length||e.position.start.offset!==e.children[0].position.start.offset)}var ht=Object.defineProperty({attachComments:ct},"__esModule",{value:!0});var pt=function(e,t){return{type:e,position:t}},dt=Object.defineProperty({createNode:pt},"__esModule",{value:!0});var gt=function(e,t,n){return l.__assign(l.__assign({},dt.createNode("root",e)),{children:t,comments:n})},mt=Object.defineProperty({createRoot:gt},"__esModule",{value:!0});var yt=function e(t){switch(t.type){case"DOCUMENT":for(var n=t.contents.length-1;n>=0;n--)"BLANK_LINE"===t.contents[n].type?t.contents.splice(n,1):e(t.contents[n]);for(n=t.directives.length-1;n>=0;n--)"BLANK_LINE"===t.directives[n].type&&t.directives.splice(n,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(n=t.items.length-1;n>=0;n--){var r=t.items[n];"char"in r||("BLANK_LINE"===r.type?t.items.splice(n,1):e(r))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":t.node&&e(t.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error("Unexpected node type "+JSON.stringify(t.type))}},vt=Object.defineProperty({removeCstBlankLine:yt},"__esModule",{value:!0});var wt=function(){return{leadingComments:[]}},bt=Object.defineProperty({createLeadingCommentAttachable:wt},"__esModule",{value:!0});var _t=function(e){return void 0===e&&(e=null),{trailingComment:e}},Et=Object.defineProperty({createTrailingCommentAttachable:_t},"__esModule",{value:!0});var Ot=function(){return l.__assign(l.__assign({},bt.createLeadingCommentAttachable()),Et.createTrailingCommentAttachable())},St=Object.defineProperty({createCommentAttachable:Ot},"__esModule",{value:!0});var At=function(e,t,n){return l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("alias",e)),St.createCommentAttachable()),t),{value:n})},Mt=Object.defineProperty({createAlias:At},"__esModule",{value:!0});var Lt=function(e,t){var n=e.cstNode;return Mt.createAlias(t.transformRange({origStart:n.valueRange.origStart-1,origEnd:n.valueRange.origEnd}),t.transformContent(e),n.rawValue)},Nt=Object.defineProperty({transformAlias:Lt},"__esModule",{value:!0});var Tt=function(e){return l.__assign(l.__assign({},e),{type:"blockFolded"})},Pt=Object.defineProperty({createBlockFolded:Tt},"__esModule",{value:!0});var Ct=function(e,t,n,r,o,i){return l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("blockValue",e)),bt.createLeadingCommentAttachable()),t),{chomping:n,indent:r,value:o,indicatorComment:i})},xt=Object.defineProperty({createBlockValue:Ct},"__esModule",{value:!0}),Rt=o((function(e,t){var n;t.__esModule=!0,(n=t.PropLeadingCharacter||(t.PropLeadingCharacter={})).Tag="!",n.Anchor="&",n.Comment="#"}));var It=function(e,t){return l.__assign(l.__assign({},dt.createNode("anchor",e)),{value:t})},kt=Object.defineProperty({createAnchor:It},"__esModule",{value:!0});var Bt=function(e,t){return l.__assign(l.__assign({},dt.createNode("comment",e)),{value:t})},Yt=Object.defineProperty({createComment:Bt},"__esModule",{value:!0});var jt=function(e,t,n){return{anchor:t,tag:e,middleComments:n}},$t=Object.defineProperty({createContent:jt},"__esModule",{value:!0});var Dt=function(e,t){return l.__assign(l.__assign({},dt.createNode("tag",e)),{value:t})},Ft=Object.defineProperty({createTag:Dt},"__esModule",{value:!0});var Ut,Wt=function(e,t,n){void 0===n&&(n=function(){return!1});for(var r=e.cstNode,o=[],i=null,s=null,a=null,c=0,u=r.props;c=0;c--){var u=e.contents[c];if("COMMENT"===u.type){var l=t.transformNode(u);n&&n.line===l.position.start.line?s.unshift(l):a?r.unshift(l):l.position.start.offset>=e.valueRange.origEnd?i.unshift(l):r.unshift(l)}else a=!0}if(i.length>1)throw new Error("Unexpected multiple document trailing comments at "+at.getPointText(i[1].position.start));if(s.length>1)throw new Error("Unexpected multiple documentHead trailing comments at "+at.getPointText(s[1].position.start));return{comments:r,endComments:o,documentTrailingComment:vn.getLast(i)||null,documentHeadTrailingComment:vn.getLast(s)||null}}(o,t,n),s=i.comments,a=i.endComments,c=i.documentTrailingComment,u=i.documentHeadTrailingComment,f=t.transformNode(e.contents),h=function(e,t,n){var r=bn.getMatchIndex(n.text.slice(e.valueRange.origEnd),/^\.\.\./),o=-1===r?e.valueRange.origEnd:Math.max(0,e.valueRange.origEnd-1);"\r"===n.text[o-1]&&o--;var i=n.transformRange({origStart:null!==t?t.position.start.offset:o,origEnd:o}),s=-1===r?i.end:n.transformOffset(e.valueRange.origEnd+3);return{position:i,documentEndPoint:s}}(o,f,t),p=h.position,d=h.documentEndPoint;return(r=t.comments).push.apply(r,l.__spreadArrays(s,a)),{documentBody:mn.createDocumentBody(p,f,a),documentEndPoint:d,documentTrailingComment:c,documentHeadTrailingComment:u}};var En=Object.defineProperty({transformDocumentBody:_n},"__esModule",{value:!0});var On=function(e,t,n,r){return l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("documentHead",e)),dn.createEndCommentAttachable(n)),Et.createTrailingCommentAttachable(r)),{children:t})},Sn=Object.defineProperty({createDocumentHead:On},"__esModule",{value:!0});var An=function(e,t){var n,r=e.cstNode,o=function(e,t){for(var n=[],r=[],o=[],i=!1,s=e.directives.length-1;s>=0;s--){var a=t.transformNode(e.directives[s]);"comment"===a.type?i?r.unshift(a):o.unshift(a):(i=!0,n.unshift(a))}return{directives:n,comments:r,endComments:o}}(r,t),i=o.directives,s=o.comments,a=o.endComments,c=function(e,t,n){var r=bn.getMatchIndex(n.text.slice(0,e.valueRange.origStart),/---\s*$/);r>0&&!/[\r\n]/.test(n.text[r-1])&&(r=-1);var o=-1===r?{origStart:e.valueRange.origStart,origEnd:e.valueRange.origStart}:{origStart:r,origEnd:r+3};0!==t.length&&(o.origStart=t[0].position.start.offset);return{position:n.transformRange(o),endMarkerPoint:-1===r?null:n.transformOffset(r)}}(r,i,t),u=c.position,f=c.endMarkerPoint;return(n=t.comments).push.apply(n,l.__spreadArrays(s,a)),{createDocumentHeadWithTrailingComment:function(e){return e&&t.comments.push(e),Sn.createDocumentHead(u,i,a,e)},documentHeadEndMarkerPoint:f}};var Mn=Object.defineProperty({transformDocumentHead:An},"__esModule",{value:!0});var Ln=function(e,t){var n=Mn.transformDocumentHead(e,t),r=n.createDocumentHeadWithTrailingComment,o=n.documentHeadEndMarkerPoint,i=En.transformDocumentBody(e,t,o),s=i.documentBody,a=i.documentEndPoint,c=i.documentTrailingComment,u=r(i.documentHeadTrailingComment);return c&&t.comments.push(c),un.createDocument(hn.createPosition(u.position.start,a),u,s,c)},Nn=Object.defineProperty({transformDocument:Ln},"__esModule",{value:!0});var Tn=function(e,t,n){return l.__assign(l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("flowCollection",e)),St.createCommentAttachable()),dn.createEndCommentAttachable()),t),{children:n})},Pn=Object.defineProperty({createFlowCollection:Tn},"__esModule",{value:!0});var Cn=function(e,t,n){return l.__assign(l.__assign({},Pn.createFlowCollection(e,t,n)),{type:"flowMapping"})},xn=Object.defineProperty({createFlowMapping:Cn},"__esModule",{value:!0});var Rn=function(e,t,n){return l.__assign(l.__assign(l.__assign({},dt.createNode("flowMappingItem",e)),bt.createLeadingCommentAttachable()),{children:[t,n]})},In=Object.defineProperty({createFlowMappingItem:Rn},"__esModule",{value:!0});var kn=function(e,t){for(var n=[],r=0,o=e;r=0;r--)if(n.test(e[r]))return r;return-1},hr=Object.defineProperty({findLastCharIndex:fr},"__esModule",{value:!0});var pr=function(e,t){var n=e.cstNode;return lr.createPlain(t.transformRange({origStart:n.valueRange.origStart,origEnd:hr.findLastCharIndex(t.text,n.valueRange.origEnd-1,/\S/)+1}),t.transformContent(e),n.strValue)},dr=Object.defineProperty({transformPlain:pr},"__esModule",{value:!0});var gr=function(e){return l.__assign(l.__assign({},e),{type:"quoteDouble"})},mr=Object.defineProperty({createQuoteDouble:gr},"__esModule",{value:!0});var yr=function(e,t,n){return l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("quoteValue",e)),t),St.createCommentAttachable()),{value:n})},vr=Object.defineProperty({createQuoteValue:yr},"__esModule",{value:!0});var wr=function(e,t){var n=e.cstNode;return vr.createQuoteValue(t.transformRange(n.valueRange),t.transformContent(e),n.strValue)},br=Object.defineProperty({transformAstQuoteValue:wr},"__esModule",{value:!0});var _r=function(e,t){return mr.createQuoteDouble(br.transformAstQuoteValue(e,t))},Er=Object.defineProperty({transformQuoteDouble:_r},"__esModule",{value:!0});var Or=function(e){return l.__assign(l.__assign({},e),{type:"quoteSingle"})},Sr=Object.defineProperty({createQuoteSingle:Or},"__esModule",{value:!0});var Ar=function(e,t){return Sr.createQuoteSingle(br.transformAstQuoteValue(e,t))},Mr=Object.defineProperty({transformQuoteSingle:Ar},"__esModule",{value:!0});var Lr=function(e,t,n){return l.__assign(l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("sequence",e)),bt.createLeadingCommentAttachable()),dn.createEndCommentAttachable()),t),{children:n})},Nr=Object.defineProperty({createSequence:Lr},"__esModule",{value:!0});var Tr=function(e,t){return l.__assign(l.__assign(l.__assign(l.__assign({},dt.createNode("sequenceItem",e)),St.createCommentAttachable()),dn.createEndCommentAttachable()),{children:t?[t]:[]})},Pr=Object.defineProperty({createSequenceItem:Tr},"__esModule",{value:!0});var Cr=function(e,t){var n=Bn.extractComments(e.cstNode.items,t).map((function(n,r){on.extractPropComments(n,t);var o=t.transformNode(e.items[r]);return Pr.createSequenceItem(hn.createPosition(t.transformOffset(n.valueRange.origStart),null===o?t.transformOffset(n.valueRange.origStart+1):o.position.end),o)}));return Nr.createSequence(hn.createPosition(n[0].position.start,vn.getLast(n).position.end),t.transformContent(e),n)},xr=Object.defineProperty({transformSeq:Cr},"__esModule",{value:!0});var Rr=function(e,t){if(null===e||void 0===e.type&&null===e.value)return null;switch(e.type){case"ALIAS":return Nt.transformAlias(e,t);case"BLOCK_FOLDED":return Jt.transformBlockFolded(e,t);case"BLOCK_LITERAL":return Zt.transformBlockLiteral(e,t);case"COMMENT":return en.transformComment(e,t);case"DIRECTIVE":return an.transformDirective(e,t);case"DOCUMENT":return Nn.transformDocument(e,t);case"FLOW_MAP":return Hn.transformFlowMap(e,t);case"FLOW_SEQ":return nr.transformFlowSeq(e,t);case"MAP":return cr.transformMap(e,t);case"PLAIN":return dr.transformPlain(e,t);case"QUOTE_DOUBLE":return Er.transformQuoteDouble(e,t);case"QUOTE_SINGLE":return Mr.transformQuoteSingle(e,t);case"SEQ":return xr.transformSeq(e,t);default:throw new Error("Unexpected node type "+e.type)}},Ir=Object.defineProperty({transformNode:Rr},"__esModule",{value:!0});var kr=function(e,t,n){var r=new SyntaxError(e);return r.name="YAMLSyntaxError",r.source=t,r.position=n,r},Br=Object.defineProperty({createError:kr},"__esModule",{value:!0});var Yr=function(e,t){var n=e.source.range||e.source.valueRange;return Br.createError(e.message,t.text,t.transformRange(n))},jr=Object.defineProperty({transformError:Yr},"__esModule",{value:!0});var $r=function(e,t,n){return{offset:e,line:t,column:n}},Dr=Object.defineProperty({createPoint:$r},"__esModule",{value:!0});var Fr=function(e,t){e<0?e=0:e>t.text.length&&(e=t.text.length);var n=t.locator.locationForIndex(e);return Dr.createPoint(e,n.line+1,n.column+1)},Ur=Object.defineProperty({transformOffset:Fr},"__esModule",{value:!0});var Wr=function(e,t){return hn.createPosition(t.transformOffset(e.origStart),t.transformOffset(e.origEnd))},Kr=Object.defineProperty({transformRange:Wr},"__esModule",{value:!0});var Vr=function(e){if(!e.setOrigRanges()){var t=function(e){return function(e){return"number"==typeof e.start}(e)?(e.origStart=e.start,e.origEnd=e.end,true):function(e){return"number"==typeof e.offset}(e)?(e.origOffset=e.offset,true):void 0};e.forEach((function(e){return Qr(e,t)}))}};function Qr(e,t){if(e&&"object"==typeof e&&true!==t(e))for(var n=0,r=Object.keys(e);ne.offset}var io=Object.defineProperty({updatePositions:Zr},"__esModule",{value:!0});const so={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},ao={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"};function co(e){const t=[0];let n=e.indexOf("\n");for(;-1!==n;)n+=1,t.push(n),n=e.indexOf("\n",n);return t}function uo(e){let t,n;return"string"==typeof e?(t=co(e),n=e):(Array.isArray(e)&&(e=e[0]),e&&e.context&&(e.lineStarts||(e.lineStarts=co(e.context.src)),t=e.lineStarts,n=e.context.src)),{lineStarts:t,src:n}}function lo(e,t){if("number"!=typeof e||e<0)return null;const{lineStarts:n,src:r}=uo(t);if(!n||!r||e>r.length)return null;for(let t=0;t=1)||e>n.length)return null;const o=n[e-1];let i=n[e];for(;i&&i>o&&"\n"===r[i-1];)--i;return r.slice(o,i)}(e.line,n);if(!o)return null;let{col:i}=e;if(o.length>r)if(i<=r-10)o=o.substr(0,r-1)+"\u2026";else{const e=Math.round(r/2);o.length>i+e&&(o=o.substr(0,i+e-1)+"\u2026"),i-=o.length-r,o="\u2026"+o.substr(1-r)}let s=1,a="";t&&(t.line===e.line&&i+(t.col-e.col)<=r+1?s=t.col-e.col:(s=Math.min(o.length+1,r)-i,a="\u2026"));return`${o}\n${i>1?" ".repeat(i-1):""}${"^".repeat(s)}${a}`}class ho{static copy(e){return new ho(e.start,e.end)}constructor(e,t){this.start=e,this.end=t||e}isEmpty(){return"number"!=typeof this.start||!this.end||this.end<=this.start}setOrigRange(e,t){const{start:n,end:r}=this;if(0===e.length||r<=e[0])return this.origStart=n,this.origEnd=r,t;let o=t;for(;on);)++o;this.origStart=n+o;const i=o;for(;o=r);)++o;return this.origEnd=r+o,i}}class po{static addStringTerminator(e,t,n){if("\n"===n[n.length-1])return n;const r=po.endOfWhiteSpace(e,t);return r>=e.length||"\n"===e[r]?n+"\n":n}static atDocumentBoundary(e,t,n){const r=e[t];if(!r)return!0;const o=e[t-1];if(o&&"\n"!==o)return!1;if(n){if(r!==n)return!1}else if(r!==so.DIRECTIVES_END&&r!==so.DOCUMENT_END)return!1;const i=e[t+1],s=e[t+2];if(i!==r||s!==r)return!1;const a=e[t+3];return!a||"\n"===a||"\t"===a||" "===a}static endOfIdentifier(e,t){let n=e[t];const r="<"===n,o=r?["\n","\t"," ",">"]:["\n","\t"," ","[","]","{","}",","];for(;n&&-1===o.indexOf(n);)n=e[t+=1];return r&&">"===n&&(t+=1),t}static endOfIndent(e,t){let n=e[t];for(;" "===n;)n=e[t+=1];return t}static endOfLine(e,t){let n=e[t];for(;n&&"\n"!==n;)n=e[t+=1];return t}static endOfWhiteSpace(e,t){let n=e[t];for(;"\t"===n||" "===n;)n=e[t+=1];return t}static startOfLine(e,t){let n=e[t-1];if("\n"===n)return t;for(;n&&"\n"!==n;)n=e[t-=1];return t+1}static endOfBlockIndent(e,t,n){const r=po.endOfIndent(e,n);if(r>n+t)return r;{const t=po.endOfWhiteSpace(e,r),n=e[t];if(!n||"\n"===n)return t}return null}static atBlank(e,t,n){const r=e[t];return"\n"===r||"\t"===r||" "===r||n&&!r}static nextNodeIsIndented(e,t,n){return!(!e||t<0)&&(t>0||n&&"-"===e)}static normalizeOffset(e,t){const n=e[t];return n?"\n"!==n&&"\n"===e[t-1]?t-1:po.endOfWhiteSpace(e,t):t}static foldNewline(e,t,n){let r=0,o=!1,i="",s=e[t+1];for(;" "===s||"\t"===s||"\n"===s;){switch(s){case"\n":r=0,t+=1,i+="\n";break;case"\t":r<=n&&(o=!0),t=po.endOfWhiteSpace(e,t+2)-1;break;case" ":r+=1,t+=1}s=e[t+1]}return i||(i=" "),s&&r<=n&&(o=!0),{fold:i,offset:t,error:o}}constructor(e,t,n){Object.defineProperty(this,"context",{value:n||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=t||[],this.type=e,this.value=null}getPropValue(e,t,n){if(!this.context)return null;const{src:r}=this.context,o=this.props[e];return o&&r[o.start]===t?r.slice(o.start+(n?1:0),o.end):null}get anchor(){for(let e=0;e0?e.join("\n"):null}commentHasRequiredWhitespace(e){const{src:t}=this.context;if(this.header&&e===this.header.end)return!1;if(!this.valueRange)return!1;const{end:n}=this.valueRange;return e!==n||po.atBlank(t,n-1)}get hasComment(){if(this.context){const{src:e}=this.context;for(let t=0;tn.setOrigRange(e,t))),t}toString(){const{context:{src:e},range:t,value:n}=this;if(null!=n)return n;const r=e.slice(t.start,t.end);return po.addStringTerminator(e,t.end,r)}}class go extends Error{constructor(e,t,n){if(!(n&&t instanceof po))throw new Error(`Invalid arguments for new ${e}`);super(),this.name=e,this.message=n,this.source=t}makePretty(){if(!this.source)return;this.nodeType=this.source.type;const e=this.source.context&&this.source.context.root;if("number"==typeof this.offset){this.range=new ho(this.offset,this.offset+1);const t=e&&lo(this.offset,e);if(t){const e={line:t.line,col:t.col+1};this.linePos={start:t,end:e}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){const{line:t,col:n}=this.linePos.start;this.message+=` at line ${t}, column ${n}`;const r=e&&fo(this.linePos,e);r&&(this.message+=`:\n\n${r}\n`)}delete this.source}}class mo extends go{constructor(e,t){super("YAMLSemanticError",e,t)}}class yo extends po{static endOfLine(e,t,n){let r=e[t],o=t;for(;r&&"\n"!==r&&(!n||"["!==r&&"]"!==r&&"{"!==r&&"}"!==r&&","!==r);){const t=e[o+1];if(":"===r&&(!t||"\n"===t||"\t"===t||" "===t||n&&","===t))break;if((" "===r||"\t"===r)&&"#"===t)break;o+=1,r=t}return o}get strValue(){if(!this.valueRange||!this.context)return null;let{start:e,end:t}=this.valueRange;const{src:n}=this.context;let r=n[t-1];for(;ei?n.slice(i,r+1):e)}else o+=e}const i=n[e];switch(i){case"\t":return{errors:[new mo(this,"Plain value cannot start with a tab character")],str:o};case"@":case"`":return{errors:[new mo(this,`Plain value cannot start with reserved character ${i}`)],str:o};default:return o}}parseBlockValue(e){const{indent:t,inFlow:n,src:r}=this.context;let o=e,i=e;for(let e=r[o];"\n"===e&&!po.atDocumentBoundary(r,o+1);e=r[o]){const e=po.endOfBlockIndent(r,t,o+1);if(null===e||"#"===r[e])break;"\n"===r[e]?o=e:(i=yo.endOfLine(r,e,n),o=i)}return this.valueRange.isEmpty()&&(this.valueRange.start=e),this.valueRange.end=i,i}parse(e,t){this.context=e;const{inFlow:n,src:r}=e;let o=t;const i=r[o];return i&&"#"!==i&&"\n"!==i&&(o=yo.endOfLine(r,t,n)),this.valueRange=new ho(t,o),o=po.endOfWhiteSpace(r,o),o=this.parseComment(o),this.hasComment&&!this.valueRange.isEmpty()||(o=this.parseBlockValue(o)),o}}var vo={Char:so,Node:po,PlainValue:yo,Range:ho,Type:ao,YAMLError:go,YAMLReferenceError:class extends go{constructor(e,t){super("YAMLReferenceError",e,t)}},YAMLSemanticError:mo,YAMLSyntaxError:class extends go{constructor(e,t){super("YAMLSyntaxError",e,t)}},YAMLWarning:class extends go{constructor(e,t){super("YAMLWarning",e,t)}},_defineProperty:function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},defaultTagPrefix:"tag:yaml.org,2002:",defaultTags:{MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"}};class wo extends vo.Node{constructor(){super(vo.Type.BLANK_LINE)}get includesTrailingLines(){return!0}parse(e,t){return this.context=e,this.range=new vo.Range(t,t+1),t+1}}class bo extends vo.Node{constructor(e,t){super(e,t),this.node=null}get includesTrailingLines(){return!!this.node&&this.node.includesTrailingLines}parse(e,t){this.context=e;const{parseNode:n,src:r}=e;let{atLineStart:o,lineStart:i}=e;o||this.type!==vo.Type.SEQ_ITEM||(this.error=new vo.YAMLSemanticError(this,"Sequence items must not have preceding content on the same line"));const s=o?t-i:e.indent;let a=vo.Node.endOfWhiteSpace(r,t+1),c=r[a];const u="#"===c,l=[];let f=null;for(;"\n"===c||"#"===c;){if("#"===c){const e=vo.Node.endOfLine(r,a+1);l.push(new vo.Range(a,e)),a=e}else{o=!0,i=a+1;"\n"===r[vo.Node.endOfWhiteSpace(r,i)]&&0===l.length&&(f=new wo,i=f.parse({src:r},i)),a=vo.Node.endOfIndent(r,i)}c=r[a]}if(vo.Node.nextNodeIsIndented(c,a-(i+s),this.type!==vo.Type.SEQ_ITEM)?this.node=n({atLineStart:o,inCollection:!1,indent:s,lineStart:i,parent:this},a):c&&i>t+1&&(a=i-1),this.node){if(f){const t=e.parent.items||e.parent.contents;t&&t.push(f)}l.length&&Array.prototype.push.apply(this.props,l),a=this.node.range.end}else if(u){const e=l[0];this.props.push(e),a=e.end}else a=vo.Node.endOfLine(r,t+1);const h=this.node?this.node.valueRange.end:a;return this.valueRange=new vo.Range(t,h),a}setOrigRanges(e,t){return t=super.setOrigRanges(e,t),this.node?this.node.setOrigRanges(e,t):t}toString(){const{context:{src:e},node:t,range:n,value:r}=this;if(null!=r)return r;const o=t?e.slice(n.start,t.range.start)+String(t):e.slice(n.start,n.end);return vo.Node.addStringTerminator(e,n.end,o)}}class _o extends vo.Node{constructor(){super(vo.Type.COMMENT)}parse(e,t){this.context=e;const n=this.parseComment(t);return this.range=new vo.Range(t,n),n}}function Eo(e){let t=e;for(;t instanceof bo;)t=t.node;if(!(t instanceof Oo))return null;const n=t.items.length;let r=-1;for(let e=n-1;e>=0;--e){const n=t.items[e];if(n.type===vo.Type.COMMENT){const{indent:t,lineStart:o}=n.context;if(t>0&&n.range.start>=o+t)break;r=e}else{if(n.type!==vo.Type.BLANK_LINE)break;r=e}}if(-1===r)return null;const o=t.items.splice(r,n-r),i=o[0].range.start;for(;t.range.end=i,t.valueRange&&t.valueRange.end>i&&(t.valueRange.end=i),t!==e;)t=t.context.parent;return o}class Oo extends vo.Node{static nextContentHasIndent(e,t,n){const r=vo.Node.endOfLine(e,t)+1,o=e[t=vo.Node.endOfWhiteSpace(e,r)];return!!o&&(t>=r+n||("#"===o||"\n"===o)&&Oo.nextContentHasIndent(e,t,n))}constructor(e){super(e.type===vo.Type.SEQ_ITEM?vo.Type.SEQ:vo.Type.MAP);for(let t=e.props.length-1;t>=0;--t)if(e.props[t].start0}parse(e,t){this.context=e;const{parseNode:n,src:r}=e;let o=vo.Node.startOfLine(r,t);const i=this.items[0];i.context.parent=this,this.valueRange=vo.Range.copy(i.valueRange);const s=i.range.start-i.context.lineStart;let a=t;a=vo.Node.normalizeOffset(r,a);let c=r[a],u=vo.Node.endOfWhiteSpace(r,o)===a,l=!1;for(;c;){for(;"\n"===c||"#"===c;){if(u&&"\n"===c&&!l){const e=new wo;if(a=e.parse({src:r},a),this.valueRange.end=a,a>=r.length){c=null;break}this.items.push(e),a-=1}else if("#"===c){if(a=r.length){c=null;break}}if(o=a+1,a=vo.Node.endOfIndent(r,o),vo.Node.atBlank(r,a)){const e=vo.Node.endOfWhiteSpace(r,a),t=r[e];t&&"\n"!==t&&"#"!==t||(a=e)}c=r[a],u=!0}if(!c)break;if(a!==o+s&&(u||":"!==c)){if(at&&(a=o);break}if(!this.error){const e="All collection items must start at the same column";this.error=new vo.YAMLSyntaxError(this,e)}}if(i.type===vo.Type.SEQ_ITEM){if("-"!==c){o>t&&(a=o);break}}else if("-"===c&&!this.error){const e=r[a+1];if(!e||"\n"===e||"\t"===e||" "===e){const e="A collection cannot be both a mapping and a sequence";this.error=new vo.YAMLSyntaxError(this,e)}}const e=n({atLineStart:u,inCollection:!0,indent:s,lineStart:o,parent:this},a);if(!e)return a;if(this.items.push(e),this.valueRange.end=e.valueRange.end,a=vo.Node.normalizeOffset(r,e.range.end),c=r[a],u=!1,l=e.includesTrailingLines,c){let e=a-1,t=r[e];for(;" "===t||"\t"===t;)t=r[--e];"\n"===t&&(o=e+1,u=!0)}const f=Eo(e);f&&Array.prototype.push.apply(this.items,f)}return a}setOrigRanges(e,t){return t=super.setOrigRanges(e,t),this.items.forEach((n=>{t=n.setOrigRanges(e,t)})),t}toString(){const{context:{src:e},items:t,range:n,value:r}=this;if(null!=r)return r;let o=e.slice(n.start,t[0].range.start)+String(t[0]);for(let e=1;e0&&(this.contents=this.directives,this.directives=[]),o}return t[o]?(this.directivesEndMarker=new vo.Range(o,o+3),o+3):(r?this.error=new vo.YAMLSemanticError(this,"Missing directives-end indicator line"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),o)}parseContents(e){const{parseNode:t,src:n}=this.context;this.contents||(this.contents=[]);let r=e;for(;"-"===n[r-1];)r-=1;let o=vo.Node.endOfWhiteSpace(n,e),i=r===e;for(this.valueRange=new vo.Range(o);!vo.Node.atDocumentBoundary(n,o,vo.Char.DOCUMENT_END);){switch(n[o]){case"\n":if(i){const e=new wo;o=e.parse({src:n},o),o{t=n.setOrigRanges(e,t)})),this.directivesEndMarker&&(t=this.directivesEndMarker.setOrigRange(e,t)),this.contents.forEach((n=>{t=n.setOrigRanges(e,t)})),this.documentEndMarker&&(t=this.documentEndMarker.setOrigRange(e,t)),t}toString(){const{contents:e,directives:t,value:n}=this;if(null!=n)return n;let r=t.join("");return e.length>0&&((t.length>0||e[0].type===vo.Type.COMMENT)&&(r+="---\n"),r+=e.join("")),"\n"!==r[r.length-1]&&(r+="\n"),r}}class Mo extends vo.Node{parse(e,t){this.context=e;const{src:n}=e;let r=vo.Node.endOfIdentifier(n,t+1);return this.valueRange=new vo.Range(t+1,r),r=vo.Node.endOfWhiteSpace(n,r),r=this.parseComment(r),r}}const Lo="CLIP",No="KEEP",To="STRIP";class Po extends vo.Node{constructor(e,t){super(e,t),this.blockIndent=null,this.chomping=Lo,this.header=null}get includesTrailingLines(){return this.chomping===No}get strValue(){if(!this.valueRange||!this.context)return null;let{start:e,end:t}=this.valueRange;const{indent:n,src:r}=this.context;if(this.valueRange.isEmpty())return"";let o=null,i=r[t-1];for(;"\n"===i||"\t"===i||" "===i;){if(t-=1,t<=e){if(this.chomping===No)break;return""}"\n"===i&&(o=t),i=r[t-1]}let s=t+1;o&&(this.chomping===No?(s=o,t=this.valueRange.end):t=o);const a=n+this.blockIndent,c=this.type===vo.Type.BLOCK_FOLDED;let u=!0,l="",f="",h=!1;for(let n=e;ns&&(s=c);o="\n"===n[e]?e:i=vo.Node.endOfLine(n,e)}return this.chomping!==No&&(o=n[i]?i+1:i),this.valueRange=new vo.Range(e+1,o),o}parse(e,t){this.context=e;const{src:n}=e;let r=this.parseBlockHeader(t);return r=vo.Node.endOfWhiteSpace(n,r),r=this.parseComment(r),r=this.parseBlockValue(r),r}setOrigRanges(e,t){return t=super.setOrigRanges(e,t),this.header?this.header.setOrigRange(e,t):t}}class Co extends vo.Node{constructor(e,t){super(e,t),this.items=null}prevNodeIsJsonLike(e=this.items.length){const t=this.items[e-1];return!!t&&(t.jsonLike||t.type===vo.Type.COMMENT&&this.prevNodeIsJsonLike(e-1))}parse(e,t){this.context=e;const{parseNode:n,src:r}=e;let{indent:o,lineStart:i}=e,s=r[t];this.items=[{char:s,offset:t}];let a=vo.Node.endOfWhiteSpace(r,t+1);for(s=r[a];s&&"]"!==s&&"}"!==s;){switch(s){case"\n":i=a+1;if("\n"===r[vo.Node.endOfWhiteSpace(r,i)]){const e=new wo;i=e.parse({src:r},i),this.items.push(e)}if(a=vo.Node.endOfIndent(r,i),a<=i+o&&(s=r[a],a{if(n instanceof vo.Node)t=n.setOrigRanges(e,t);else if(0===e.length)n.origOffset=n.offset;else{let r=t;for(;rn.offset);)++r;n.origOffset=n.offset+r,t=r}})),t}toString(){const{context:{src:e},items:t,range:n,value:r}=this;if(null!=r)return r;const o=t.filter((e=>e instanceof vo.Node));let i="",s=n.start;return o.forEach((t=>{const n=e.slice(s,t.range.start);s=t.range.end,i+=n+String(t),"\n"===i[i.length-1]&&"\n"!==e[s-1]&&"\n"===e[s]&&(s+=1)})),i+=e.slice(s,n.end),vo.Node.addStringTerminator(e,n.end,i)}}class xo extends vo.Node{static endOfQuote(e,t){let n=e[t];for(;n&&'"'!==n;)n=e[t+="\\"===n?2:1];return t+1}get strValue(){if(!this.valueRange||!this.context)return null;const e=[],{start:t,end:n}=this.valueRange,{indent:r,src:o}=this.context;'"'!==o[n-1]&&e.push(new vo.YAMLSyntaxError(this,'Missing closing "quote'));let i="";for(let s=t+1;se?o.slice(e,s+1):t)}else i+=t}return e.length>0?{errors:e,str:i}:i}parseCharCode(e,t,n){const{src:r}=this.context,o=r.substr(e,t),i=o.length===t&&/^[0-9a-fA-F]+$/.test(o)?parseInt(o,16):NaN;return isNaN(i)?(n.push(new vo.YAMLSyntaxError(this,`Invalid escape sequence ${r.substr(e-2,t+2)}`)),r.substr(e-2,t+2)):String.fromCodePoint(i)}parse(e,t){this.context=e;const{src:n}=e;let r=xo.endOfQuote(n,t+1);return this.valueRange=new vo.Range(t,r),r=vo.Node.endOfWhiteSpace(n,r),r=this.parseComment(r),r}}class Ro extends vo.Node{static endOfQuote(e,t){let n=e[t];for(;n;)if("'"===n){if("'"!==e[t+1])break;n=e[t+=2]}else n=e[t+=1];return t+1}get strValue(){if(!this.valueRange||!this.context)return null;const e=[],{start:t,end:n}=this.valueRange,{indent:r,src:o}=this.context;"'"!==o[n-1]&&e.push(new vo.YAMLSyntaxError(this,"Missing closing 'quote"));let i="";for(let s=t+1;se?o.slice(e,s+1):t)}else i+=t}return e.length>0?{errors:e,str:i}:i}parse(e,t){this.context=e;const{src:n}=e;let r=Ro.endOfQuote(n,t+1);return this.valueRange=new vo.Range(t,r),r=vo.Node.endOfWhiteSpace(n,r),r=this.parseComment(r),r}}class Io{static parseType(e,t,n){switch(e[t]){case"*":return vo.Type.ALIAS;case">":return vo.Type.BLOCK_FOLDED;case"|":return vo.Type.BLOCK_LITERAL;case"{":return vo.Type.FLOW_MAP;case"[":return vo.Type.FLOW_SEQ;case"?":return!n&&vo.Node.atBlank(e,t+1,!0)?vo.Type.MAP_KEY:vo.Type.PLAIN;case":":return!n&&vo.Node.atBlank(e,t+1,!0)?vo.Type.MAP_VALUE:vo.Type.PLAIN;case"-":return!n&&vo.Node.atBlank(e,t+1,!0)?vo.Type.SEQ_ITEM:vo.Type.PLAIN;case'"':return vo.Type.QUOTE_DOUBLE;case"'":return vo.Type.QUOTE_SINGLE;default:return vo.Type.PLAIN}}constructor(e={},{atLineStart:t,inCollection:n,inFlow:r,indent:o,lineStart:i,parent:s}={}){vo._defineProperty(this,"parseNode",((e,t)=>{if(vo.Node.atDocumentBoundary(this.src,t))return null;const n=new Io(this,e),{props:r,type:o,valueStart:i}=n.parseProps(t),s=function(e,t){switch(e){case vo.Type.ALIAS:return new Mo(e,t);case vo.Type.BLOCK_FOLDED:case vo.Type.BLOCK_LITERAL:return new Po(e,t);case vo.Type.FLOW_MAP:case vo.Type.FLOW_SEQ:return new Co(e,t);case vo.Type.MAP_KEY:case vo.Type.MAP_VALUE:case vo.Type.SEQ_ITEM:return new bo(e,t);case vo.Type.COMMENT:case vo.Type.PLAIN:return new vo.PlainValue(e,t);case vo.Type.QUOTE_DOUBLE:return new xo(e,t);case vo.Type.QUOTE_SINGLE:return new Ro(e,t);default:return null}}(o,r);let a=s.parse(n,i);if(s.range=new vo.Range(t,a),a<=t&&(s.error=new Error("Node#parse consumed no characters"),s.error.parseEnd=a,s.error.source=s,s.range.end=t+1),n.nodeStartsCollection(s)){s.error||n.atLineStart||n.parent.type!==vo.Type.DOCUMENT||(s.error=new vo.YAMLSyntaxError(s,"Block collection must not have preceding content here (e.g. directives-end indicator)"));const e=new Oo(s);return a=e.parse(new Io(n),a),e.range=new vo.Range(t,a),e}return s})),this.atLineStart=null!=t?t:e.atLineStart||!1,this.inCollection=null!=n?n:e.inCollection||!1,this.inFlow=null!=r?r:e.inFlow||!1,this.indent=null!=o?o:e.indent,this.lineStart=null!=i?i:e.lineStart,this.parent=null!=s?s:e.parent||{},this.root=e.root,this.src=e.src}nodeStartsCollection(e){const{inCollection:t,inFlow:n,src:r}=this;if(t||n)return!1;if(e instanceof bo)return!0;let o=e.range.end;return"\n"!==r[o]&&"\n"!==r[o-1]&&(o=vo.Node.endOfWhiteSpace(r,o),":"===r[o])}parseProps(e){const{inFlow:t,parent:n,src:r}=this,o=[];let i=!1,s=r[e=this.atLineStart?vo.Node.endOfIndent(r,e):vo.Node.endOfWhiteSpace(r,e)];for(;s===vo.Char.ANCHOR||s===vo.Char.COMMENT||s===vo.Char.TAG||"\n"===s;){if("\n"===s){let t,o=e;do{t=o+1,o=vo.Node.endOfIndent(r,t)}while("\n"===r[o]);const s=o-(t+this.indent),a=n.type===vo.Type.SEQ_ITEM&&n.context.atLineStart;if("#"!==r[o]&&!vo.Node.nextNodeIsIndented(r[o],s,!a))break;this.atLineStart=!0,this.lineStart=t,i=!1,e=o}else if(s===vo.Char.COMMENT){const t=vo.Node.endOfLine(r,e+1);o.push(new vo.Range(e,t)),e=t}else{let t=vo.Node.endOfIdentifier(r,e+1);s===vo.Char.TAG&&","===r[t]&&/^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(r.slice(e+1,t+13))&&(t=vo.Node.endOfIdentifier(r,t+5)),o.push(new vo.Range(e,t)),i=!0,e=vo.Node.endOfWhiteSpace(r,t)}s=r[e]}i&&":"===s&&vo.Node.atBlank(r,e+1,!0)&&(e-=1);return{props:o,type:Io.parseType(r,e,t),valueStart:e}}}var ko={parse:function(e){const t=[];-1!==e.indexOf("\r")&&(e=e.replace(/\r\n?/g,((e,n)=>(e.length>1&&t.push(n),"\n"))));const n=[];let r=0;do{const t=new Ao,o=new Io({src:e});r=t.parse(o,r),n.push(t)}while(r{if(0===t.length)return!1;for(let e=1;en.join("...\n"),n}};function Bo(e,t,n){return n?-1===n.indexOf("\n")?`${e} #${n}`:`${e}\n`+n.replace(/^/gm,`${t||""}#`):e}class Yo{}function jo(e,t,n){if(Array.isArray(e))return e.map(((e,t)=>jo(e,String(t),n)));if(e&&"function"==typeof e.toJSON){const r=n&&n.anchors&&n.anchors.get(e);r&&(n.onCreate=e=>{r.res=e,delete n.onCreate});const o=e.toJSON(t,n);return r&&n.onCreate&&n.onCreate(o),o}return n&&n.keep||"bigint"!=typeof e?e:Number(e)}class $o extends Yo{constructor(e){super(),this.value=e}toJSON(e,t){return t&&t.keep?this.value:jo(this.value,e,t)}toString(){return String(this.value)}}function Do(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){const n=t[e];if(Number.isInteger(n)&&n>=0){const e=[];e[n]=r,r=e}else{const e={};Object.defineProperty(e,n,{value:r,writable:!0,enumerable:!0,configurable:!0}),r=e}}return e.createNode(r,!1)}const Fo=e=>null==e||"object"==typeof e&&e[Symbol.iterator]().next().done;class Uo extends Yo{constructor(e){super(),vo._defineProperty(this,"items",[]),this.schema=e}addIn(e,t){if(Fo(e))this.add(t);else{const[n,...r]=e,o=this.get(n,!0);if(o instanceof Uo)o.addIn(r,t);else{if(void 0!==o||!this.schema)throw new Error(`Expected YAML collection at ${n}. Remaining path: ${r}`);this.set(n,Do(this.schema,r,t))}}}deleteIn([e,...t]){if(0===t.length)return this.delete(e);const n=this.get(e,!0);if(n instanceof Uo)return n.deleteIn(t);throw new Error(`Expected YAML collection at ${e}. Remaining path: ${t}`)}getIn([e,...t],n){const r=this.get(e,!0);return 0===t.length?!n&&r instanceof $o?r.value:r:r instanceof Uo?r.getIn(t,n):void 0}hasAllNullValues(){return this.items.every((e=>{if(!e||"PAIR"!==e.type)return!1;const t=e.value;return null==t||t instanceof $o&&null==t.value&&!t.commentBefore&&!t.comment&&!t.tag}))}hasIn([e,...t]){if(0===t.length)return this.has(e);const n=this.get(e,!0);return n instanceof Uo&&n.hasIn(t)}setIn([e,...t],n){if(0===t.length)this.set(e,n);else{const r=this.get(e,!0);if(r instanceof Uo)r.setIn(t,n);else{if(void 0!==r||!this.schema)throw new Error(`Expected YAML collection at ${e}. Remaining path: ${t}`);this.set(e,Do(this.schema,t,n))}}}toJSON(){return null}toString(e,{blockItem:t,flowChars:n,isMap:r,itemIndent:o},i,s){const{indent:a,indentStep:c,stringify:u}=e,l=this.type===vo.Type.FLOW_MAP||this.type===vo.Type.FLOW_SEQ||e.inFlow;l&&(o+=c);const f=r&&this.hasAllNullValues();e=Object.assign({},e,{allNullValues:f,indent:o,inFlow:l,type:null});let h=!1,p=!1;const d=this.items.reduce(((t,n,r)=>{let i;n&&(!h&&n.spaceBefore&&t.push({type:"comment",str:""}),n.commentBefore&&n.commentBefore.match(/^.*$/gm).forEach((e=>{t.push({type:"comment",str:`#${e}`})})),n.comment&&(i=n.comment),l&&(!h&&n.spaceBefore||n.commentBefore||n.comment||n.key&&(n.key.commentBefore||n.key.comment)||n.value&&(n.value.commentBefore||n.value.comment))&&(p=!0)),h=!1;let s=u(n,e,(()=>i=null),(()=>h=!0));return l&&!p&&s.includes("\n")&&(p=!0),l&&re.str));if(p||r.reduce(((e,t)=>e+t.length+2),2)>Uo.maxFlowStringSingleLineLength){g=e;for(const e of r)g+=e?`\n${c}${a}${e}`:"\n";g+=`\n${a}${t}`}else g=`${e} ${r.join(" ")} ${t}`}else{const e=d.map(t);g=e.shift();for(const t of e)g+=t?`\n${a}${t}`:"\n"}return this.comment?(g+="\n"+this.comment.replace(/^/gm,`${a}#`),i&&i()):h&&s&&s(),g}}function Wo(e){let t=e instanceof $o?e.value:e;return t&&"string"==typeof t&&(t=Number(t)),Number.isInteger(t)&&t>=0?t:null}vo._defineProperty(Uo,"maxFlowStringSingleLineLength",60);class Ko extends Uo{add(e){this.items.push(e)}delete(e){const t=Wo(e);if("number"!=typeof t)return!1;return this.items.splice(t,1).length>0}get(e,t){const n=Wo(e);if("number"!=typeof n)return;const r=this.items[n];return!t&&r instanceof $o?r.value:r}has(e){const t=Wo(e);return"number"==typeof t&&t"comment"===e.type?e.str:`- ${e.str}`,flowChars:{start:"[",end:"]"},isMap:!1,itemIndent:(e.indent||"")+" "},t,n):JSON.stringify(this)}}class Vo extends Yo{constructor(e,t=null){super(),this.key=e,this.value=t,this.type=Vo.Type.PAIR}get commentBefore(){return this.key instanceof Yo?this.key.commentBefore:void 0}set commentBefore(e){if(null==this.key&&(this.key=new $o(null)),!(this.key instanceof Yo)){throw new Error("Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.")}this.key.commentBefore=e}addToJSMap(e,t){const n=jo(this.key,"",e);if(t instanceof Map){const r=jo(this.value,n,e);t.set(n,r)}else if(t instanceof Set)t.add(n);else{const r=((e,t,n)=>null===t?"":"object"!=typeof t?String(t):e instanceof Yo&&n&&n.doc?e.toString({anchors:Object.create(null),doc:n.doc,indent:"",indentStep:n.indentStep,inFlow:!0,inStringifyKey:!0,stringify:n.stringify}):JSON.stringify(t))(this.key,n,e),o=jo(this.value,r,e);r in t?Object.defineProperty(t,r,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[r]=o}return t}toJSON(e,t){const n=t&&t.mapAsMap?new Map:{};return this.addToJSMap(t,n)}toString(e,t,n){if(!e||!e.doc)return JSON.stringify(this);const{indent:r,indentSeq:o,simpleKeys:i}=e.doc.options;let{key:s,value:a}=this,c=s instanceof Yo&&s.comment;if(i){if(c)throw new Error("With simple keys, key nodes cannot have comments");if(s instanceof Uo){throw new Error("With simple keys, collection cannot be used as a key value")}}let u=!i&&(!s||c||(s instanceof Yo?s instanceof Uo||s.type===vo.Type.BLOCK_FOLDED||s.type===vo.Type.BLOCK_LITERAL:"object"==typeof s));const{doc:l,indent:f,indentStep:h,stringify:p}=e;e=Object.assign({},e,{implicitKey:!u,indent:f+h});let d=!1,g=p(s,e,(()=>c=null),(()=>d=!0));if(g=Bo(g,e.indent,c),!u&&g.length>1024){if(i)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");u=!0}if(e.allNullValues&&!i)return this.comment?(g=Bo(g,e.indent,this.comment),t&&t()):d&&!c&&n&&n(),e.inFlow&&!u?g:`? ${g}`;g=u?`? ${g}\n${f}:`:`${g}:`,this.comment&&(g=Bo(g,e.indent,this.comment),t&&t());let m="",y=null;if(a instanceof Yo){if(a.spaceBefore&&(m="\n"),a.commentBefore){m+=`\n${a.commentBefore.replace(/^/gm,`${e.indent}#`)}`}y=a.comment}else a&&"object"==typeof a&&(a=l.schema.createNode(a,!0));e.implicitKey=!1,!u&&!this.comment&&a instanceof $o&&(e.indentAtStart=g.length+1),d=!1,!o&&r>=2&&!e.inFlow&&!u&&a instanceof Ko&&a.type!==vo.Type.FLOW_SEQ&&!a.tag&&!l.anchors.getName(a)&&(e.indent=e.indent.substr(2));const v=p(a,e,(()=>y=null),(()=>d=!0));let w=" ";if(m||this.comment)w=`${m}\n${e.indent}`;else if(!u&&a instanceof Uo){("["===v[0]||"{"===v[0])&&!v.includes("\n")||(w=`\n${e.indent}`)}else"\n"===v[0]&&(w="");return d&&!y&&n&&n(),Bo(g+w+v,e.indent,y)}}vo._defineProperty(Vo,"Type",{PAIR:"PAIR",MERGE_PAIR:"MERGE_PAIR"});const Qo=(e,t)=>{if(e instanceof qo){const n=t.get(e.source);return n.count*n.aliasCount}if(e instanceof Uo){let n=0;for(const r of e.items){const e=Qo(r,t);e>n&&(n=e)}return n}if(e instanceof Vo){const n=Qo(e.key,t),r=Qo(e.value,t);return Math.max(n,r)}return 1};class qo extends Yo{static stringify({range:e,source:t},{anchors:n,doc:r,implicitKey:o,inStringifyKey:i}){let s=Object.keys(n).find((e=>n[e]===t));if(!s&&i&&(s=r.anchors.getName(t)||r.anchors.newName()),s)return`*${s}${o?" ":""}`;const a=r.anchors.getName(t)?"Alias node must be after source node":"Source node not found for alias node";throw new Error(`${a} [${e}]`)}constructor(e){super(),this.source=e,this.type=vo.Type.ALIAS}set tag(e){throw new Error("Alias nodes cannot have tags")}toJSON(e,t){if(!t)return jo(this.source,e,t);const{anchors:n,maxAliasCount:r}=t,o=n.get(this.source);if(!o||void 0===o.res){const e="This should not happen: Alias anchor was not resolved?";throw this.cstNode?new vo.YAMLReferenceError(this.cstNode,e):new ReferenceError(e)}if(r>=0&&(o.count+=1,0===o.aliasCount&&(o.aliasCount=Qo(this.source,n)),o.count*o.aliasCount>r)){const e="Excessive alias count indicates a resource exhaustion attack";throw this.cstNode?new vo.YAMLReferenceError(this.cstNode,e):new ReferenceError(e)}return o.res}toString(e){return qo.stringify(this,e)}}function Jo(e,t){const n=t instanceof $o?t.value:t;for(const r of e)if(r instanceof Vo){if(r.key===t||r.key===n)return r;if(r.key&&r.key.value===n)return r}}vo._defineProperty(qo,"default",!0);class Go extends Uo{add(e,t){e?e instanceof Vo||(e=new Vo(e.key||e,e.value)):e=new Vo(e);const n=Jo(this.items,e.key),r=this.schema&&this.schema.sortMapEntries;if(n){if(!t)throw new Error(`Key ${e.key} already set`);n.value=e.value}else if(r){const t=this.items.findIndex((t=>r(e,t)<0));-1===t?this.items.push(e):this.items.splice(t,0,e)}else this.items.push(e)}delete(e){const t=Jo(this.items,e);if(!t)return!1;return this.items.splice(this.items.indexOf(t),1).length>0}get(e,t){const n=Jo(this.items,e),r=n&&n.value;return!t&&r instanceof $o?r.value:r}has(e){return!!Jo(this.items,e)}set(e,t){this.add(new Vo(e,t),!0)}toJSON(e,t,n){const r=n?new n:t&&t.mapAsMap?new Map:{};t&&t.onCreate&&t.onCreate(r);for(const e of this.items)e.addToJSMap(t,r);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(const e of this.items)if(!(e instanceof Vo))throw new Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return super.toString(e,{blockItem:e=>e.str,flowChars:{start:"{",end:"}"},isMap:!0,itemIndent:e.indent||""},t,n)}}class Ho extends Vo{constructor(e){if(e instanceof Vo){let t=e.value;t instanceof Ko||(t=new Ko,t.items.push(e.value),t.range=e.value.range),super(e.key,t),this.range=e.range}else super(new $o("<<"),new Ko);this.type=Vo.Type.MERGE_PAIR}addToJSMap(e,t){for(const{source:n}of this.value.items){if(!(n instanceof Go))throw new Error("Merge sources must be maps");const r=n.toJSON(null,e,Map);for(const[e,n]of r)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0})}return t}toString(e,t){const n=this.value;if(n.items.length>1)return super.toString(e,t);this.value=n.items[0];const r=super.toString(e,t);return this.value=n,r}}const zo={defaultType:vo.Type.BLOCK_LITERAL,lineWidth:76},Zo={defaultType:vo.Type.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function Xo(e,t,n){for(const{format:n,test:r,resolve:o}of t)if(r){const t=e.match(r);if(t){let e=o.apply(null,t);return e instanceof $o||(e=new $o(e)),n&&(e.format=n),e}}return n&&(e=n(e)),new $o(e)}const ei=(e,t)=>{let n=e[t+1];for(;" "===n||"\t"===n;){do{n=e[t+=1]}while(n&&"\n"!==n);n=e[t+1]}return t};function ti(e,t,n,{indentAtStart:r,lineWidth:o=80,minContentWidth:i=20,onFold:s,onOverflow:a}){if(!o||o<0)return e;const c=Math.max(1+i,1+o-t.length);if(e.length<=c)return e;const u=[],l={};let f,h,p=o-t.length;"number"==typeof r&&(r>o-Math.max(2,i)?u.push(0):p=o-r);let d,g=!1,m=-1,y=-1,v=-1;for("block"===n&&(m=ei(e,m),-1!==m&&(p=m+c));d=e[m+=1];){if("quoted"===n&&"\\"===d){switch(y=m,e[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}v=m}if("\n"===d)"block"===n&&(m=ei(e,m)),p=m+c,f=void 0;else{if(" "===d&&h&&" "!==h&&"\n"!==h&&"\t"!==h){const t=e[m+1];t&&" "!==t&&"\n"!==t&&"\t"!==t&&(f=m)}if(m>=p)if(f)u.push(f),p=f+c,f=void 0;else if("quoted"===n){for(;" "===h||"\t"===h;)h=d,d=e[m+=1],g=!0;const t=m>v+1?m-2:y-1;if(l[t])return e;u.push(t),l[t]=!0,p=t+c,f=void 0}else g=!0}h=d}if(g&&a&&a(),0===u.length)return e;s&&s();let w=e.slice(0,u[0]);for(let r=0;re?Object.assign({indentAtStart:e},Zo.fold):Zo.fold,ri=e=>/^(%|---|\.\.\.)/m.test(e);function oi(e,t){const{implicitKey:n}=t,{jsonEncoding:r,minMultiLineLength:o}=Zo.doubleQuoted,i=JSON.stringify(e);if(r)return i;const s=t.indent||(ri(e)?" ":"");let a="",c=0;for(let e=0,t=i[e];t;t=i[++e])if(" "===t&&"\\"===i[e+1]&&"n"===i[e+2]&&(a+=i.slice(c,e)+"\\ ",e+=1,c=e,t="\\"),"\\"===t)switch(i[e+1]){case"u":{a+=i.slice(c,e);const t=i.substr(e+2,4);switch(t){case"0000":a+="\\0";break;case"0007":a+="\\a";break;case"000b":a+="\\v";break;case"001b":a+="\\e";break;case"0085":a+="\\N";break;case"00a0":a+="\\_";break;case"2028":a+="\\L";break;case"2029":a+="\\P";break;default:"00"===t.substr(0,2)?a+="\\x"+t.substr(2):a+=i.substr(e,6)}e+=5,c=e+1}break;case"n":if(n||'"'===i[e+2]||i.lengthr)return!0;if(n=t+1,o-n<=r)return!1}return!0}(n,Zo.fold.lineWidth,s.length));let u=c?"|":">";if(!n)return u+"\n";let l="",f="";if(n=n.replace(/[\n\t ]*$/,(e=>{const t=e.indexOf("\n");return-1===t?u+="-":n!==e&&t===e.length-1||(u+="+",i&&i()),f=e.replace(/\n$/,""),""})).replace(/^[\n ]*/,(e=>{-1!==e.indexOf(" ")&&(u+=a);const t=e.match(/ +$/);return t?(l=e.slice(0,-t[0].length),t[0]):(l=e,"")})),f&&(f=f.replace(/\n+(?!\n|$)/g,`$&${s}`)),l&&(l=l.replace(/\n+/g,`$&${s}`)),e&&(u+=" #"+e.replace(/ ?[\r\n]+/g," "),o&&o()),!n)return`${u}${a}\n${s}${f}`;if(c)return n=n.replace(/\n+/g,`$&${s}`),`${u}\n${s}${l}${n}${f}`;n=n.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${s}`);const h=ti(`${l}${n}${f}`,s,"block",Zo.fold);return`${u}\n${s}${h}`}function ai(e,t){let n,r,o;switch(t.type){case vo.Type.FLOW_MAP:n="}",r="flow map";break;case vo.Type.FLOW_SEQ:n="]",r="flow sequence";break;default:return void e.push(new vo.YAMLSemanticError(t,"Not a flow collection!?"))}for(let e=t.items.length-1;e>=0;--e){const n=t.items[e];if(!n||n.type!==vo.Type.COMMENT){o=n;break}}if(o&&o.char!==n){const i=`Expected ${r} to end with ${n}`;let s;"number"==typeof o.offset?(s=new vo.YAMLSemanticError(t,i),s.offset=o.offset+1):(s=new vo.YAMLSemanticError(o,i),o.range&&o.range.end&&(s.offset=o.range.end-o.range.start)),e.push(s)}}function ci(e,t){const n=t.context.src[t.range.start-1];if("\n"!==n&&"\t"!==n&&" "!==n){const n="Comments must be separated from other tokens by white space characters";e.push(new vo.YAMLSemanticError(t,n))}}function ui(e,t){const n=String(t),r=n.substr(0,8)+"..."+n.substr(-8);return new vo.YAMLSemanticError(e,`The "${r}" key is too long`)}function li(e,t){for(const{afterKey:n,before:r,comment:o}of t){let t=e.items[r];t?(n&&t.value&&(t=t.value),void 0===o?!n&&t.commentBefore||(t.spaceBefore=!0):t.commentBefore?t.commentBefore+="\n"+o:t.commentBefore=o):void 0!==o&&(e.comment?e.comment+="\n"+o:e.comment=o)}}function fi(e,t){const n=t.strValue;return n?"string"==typeof n?n:(n.errors.forEach((n=>{n.source||(n.source=t),e.errors.push(n)})),n.str):""}function hi(e,t){const{tag:n,type:r}=t;let o=!1;if(n){const{handle:r,suffix:i,verbatim:s}=n;if(s){if("!"!==s&&"!!"!==s)return s;const n=`Verbatim tags aren't resolved, so ${s} is invalid.`;e.errors.push(new vo.YAMLSemanticError(t,n))}else if("!"!==r||i)try{return function(e,t){const{handle:n,suffix:r}=t.tag;let o=e.tagPrefixes.find((e=>e.handle===n));if(!o){const r=e.getDefaults().tagPrefixes;if(r&&(o=r.find((e=>e.handle===n))),!o)throw new vo.YAMLSemanticError(t,`The ${n} tag handle is non-default and was not declared.`)}if(!r)throw new vo.YAMLSemanticError(t,`The ${n} tag has no suffix.`);if("!"===n&&"1.0"===(e.version||e.options.version)){if("^"===r[0])return e.warnings.push(new vo.YAMLWarning(t,"YAML 1.0 ^ tag expansion is not supported")),r;if(/[:/]/.test(r)){const e=r.match(/^([a-z0-9-]+)\/(.*)/i);return e?`tag:${e[1]}.yaml.org,2002:${e[2]}`:`tag:${r}`}}return o.prefix+decodeURIComponent(r)}(e,t)}catch(t){e.errors.push(t)}else o=!0}switch(r){case vo.Type.BLOCK_FOLDED:case vo.Type.BLOCK_LITERAL:case vo.Type.QUOTE_DOUBLE:case vo.Type.QUOTE_SINGLE:return vo.defaultTags.STR;case vo.Type.FLOW_MAP:case vo.Type.MAP:return vo.defaultTags.MAP;case vo.Type.FLOW_SEQ:case vo.Type.SEQ:return vo.defaultTags.SEQ;case vo.Type.PLAIN:return o?vo.defaultTags.STR:null;default:return null}}function pi(e,t,n){const{tags:r}=e.schema,o=[];for(const i of r)if(i.tag===n){if(!i.test){const n=i.resolve(e,t);return n instanceof Uo?n:new $o(n)}o.push(i)}const i=fi(e,t);return"string"==typeof i&&o.length>0?Xo(i,o,r.scalarFallback):null}function di(e,t,n){try{const r=pi(e,t,n);if(r)return n&&t.tag&&(r.tag=n),r}catch(n){return n.source||(n.source=t),e.errors.push(n),null}try{const r=function({type:e}){switch(e){case vo.Type.FLOW_MAP:case vo.Type.MAP:return vo.defaultTags.MAP;case vo.Type.FLOW_SEQ:case vo.Type.SEQ:return vo.defaultTags.SEQ;default:return vo.defaultTags.STR}}(t);if(!r)throw new Error(`The tag ${n} is unavailable`);const o=`The tag ${n} is unavailable, falling back to ${r}`;e.warnings.push(new vo.YAMLWarning(t,o));const i=pi(e,t,r);return i.tag=n,i}catch(n){const r=new vo.YAMLReferenceError(t,n.message);return r.stack=n.stack,e.errors.push(r),null}}function gi(e,t){const n={before:[],after:[]};let r=!1,o=!1;const i=(e=>{if(!e)return!1;const{type:t}=e;return t===vo.Type.MAP_KEY||t===vo.Type.MAP_VALUE||t===vo.Type.SEQ_ITEM})(t.context.parent)?t.context.parent.props.concat(t.props):t.props;for(const{start:s,end:a}of i)switch(t.context.src[s]){case vo.Char.COMMENT:{if(!t.commentHasRequiredWhitespace(s)){const n="Comments must be separated from other tokens by white space characters";e.push(new vo.YAMLSemanticError(t,n))}const{header:r,valueRange:o}=t;(o&&(s>o.start||r&&s>r.start)?n.after:n.before).push(t.context.src.slice(s+1,a));break}case vo.Char.ANCHOR:if(r){const n="A node can have at most one anchor";e.push(new vo.YAMLSemanticError(t,n))}r=!0;break;case vo.Char.TAG:if(o){const n="A node can have at most one tag";e.push(new vo.YAMLSemanticError(t,n))}o=!0}return{comments:n,hasAnchor:r,hasTag:o}}function mi(e,t){if(!t)return null;t.error&&e.errors.push(t.error);const{comments:n,hasAnchor:r,hasTag:o}=gi(e.errors,t);if(r){const{anchors:n}=e,r=t.anchor,o=n.getNode(r);o&&(n.map[n.newName(r)]=o),n.map[r]=t}if(t.type===vo.Type.ALIAS&&(r||o)){const n="An alias node must not specify any properties";e.errors.push(new vo.YAMLSemanticError(t,n))}const i=function(e,t){const{anchors:n,errors:r,schema:o}=e;if(t.type===vo.Type.ALIAS){const e=t.rawValue,o=n.getNode(e);if(!o){const n=`Aliased anchor not found: ${e}`;return r.push(new vo.YAMLReferenceError(t,n)),null}const i=new qo(o);return n._cstAliases.push(i),i}const i=hi(e,t);if(i)return di(e,t,i);if(t.type!==vo.Type.PLAIN){const e=`Failed to resolve ${t.type} node here`;return r.push(new vo.YAMLSyntaxError(t,e)),null}try{return Xo(fi(e,t),o.tags,o.tags.scalarFallback)}catch(e){return e.source||(e.source=t),r.push(e),null}}(e,t);if(i){i.range=[t.range.start,t.range.end],e.options.keepCstNodes&&(i.cstNode=t),e.options.keepNodeTypes&&(i.type=t.type);const r=n.before.join("\n");r&&(i.commentBefore=i.commentBefore?`${i.commentBefore}\n${r}`:r);const o=n.after.join("\n");o&&(i.comment=i.comment?`${i.comment}\n${o}`:o)}return t.resolved=i}function yi(e,t){if(!(({context:{lineStart:e,node:t,src:n},props:r})=>{if(0===r.length)return!1;const{start:o}=r[0];if(t&&o>t.valueRange.start)return!1;if(n[o]!==vo.Char.COMMENT)return!1;for(let t=e;t0){n=new vo.PlainValue(vo.Type.PLAIN,[]),n.context={parent:a,src:a.context.src};const e=a.range.start+1;if(n.range={start:e,end:e},n.valueRange={start:e,end:e},"number"==typeof a.range.origStart){const e=a.range.origStart+1;n.range.origStart=n.range.origEnd=e,n.valueRange.origStart=n.valueRange.origEnd=e}}const s=new Vo(o,mi(e,n));yi(a,s),r.push(s),o&&"number"==typeof i&&a.range.start>i+1024&&e.errors.push(ui(t,o)),o=void 0,i=null}break;default:void 0!==o&&r.push(new Vo(o)),o=mi(e,a),i=a.range.start,a.error&&e.errors.push(a.error);e:for(let n=s+1;;++n){const r=t.items[n];switch(r&&r.type){case vo.Type.BLANK_LINE:case vo.Type.COMMENT:continue e;case vo.Type.MAP_VALUE:break e;default:{const t="Implicit map keys need to be followed by map values";e.errors.push(new vo.YAMLSemanticError(a,t));break e}}}if(a.valueRangeContainsNewline){const t="Implicit map keys need to be on a single line";e.errors.push(new vo.YAMLSemanticError(a,t))}}}void 0!==o&&r.push(new Vo(o));return{comments:n,items:r}}(e,t),o=new Go;o.items=r,li(o,n);let i=!1;for(let n=0;n{if(e instanceof qo){const{type:t}=e.source;return t!==vo.Type.MAP&&t!==vo.Type.FLOW_MAP&&(i="Merge nodes aliases can only point to maps")}return i="Merge nodes can only have Alias nodes as values"})),i&&e.errors.push(new vo.YAMLSemanticError(t,i))}else for(let i=n+1;is+1024&&e.errors.push(ui(t,o));const{src:r}=c.context;for(let t=s;te instanceof Vo&&e.key instanceof Uo))){const n="Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.";e.warnings.push(new vo.YAMLWarning(t,n))}return t.resolved=o,o},resolveString:fi,strOptions:Zo,stringifyNumber:function({format:e,minFractionDigits:t,tag:n,value:r}){if("bigint"==typeof r)return String(r);if(!isFinite(r))return isNaN(r)?".nan":r<0?"-.inf":".inf";let o=JSON.stringify(r);if(!e&&t&&(!n||"tag:yaml.org,2002:float"===n)&&/^\d/.test(o)){let e=o.indexOf(".");e<0&&(e=o.length,o+=".");let n=t-(o.length-e-1);for(;n-- >0;)o+="0"}return o},stringifyString:function(e,t,n,r){const{defaultType:o}=Zo,{implicitKey:i,inFlow:s}=t;let{type:a,value:c}=e;"string"!=typeof c&&(c=String(c),e=Object.assign({},e,{value:c}));const u=o=>{switch(o){case vo.Type.BLOCK_FOLDED:case vo.Type.BLOCK_LITERAL:return si(e,t,n,r);case vo.Type.QUOTE_DOUBLE:return oi(c,t);case vo.Type.QUOTE_SINGLE:return ii(c,t);case vo.Type.PLAIN:return function(e,t,n,r){const{comment:o,type:i,value:s}=e,{actualString:a,implicitKey:c,indent:u,inFlow:l}=t;if(c&&/[\n[\]{},]/.test(s)||l&&/[[\]{},]/.test(s))return oi(s,t);if(!s||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return c||l||-1===s.indexOf("\n")?-1!==s.indexOf('"')&&-1===s.indexOf("'")?ii(s,t):oi(s,t):si(e,t,n,r);if(!c&&!l&&i!==vo.Type.PLAIN&&-1!==s.indexOf("\n"))return si(e,t,n,r);if(""===u&&ri(s))return t.forceBlockIndent=!0,si(e,t,n,r);const f=s.replace(/\n+/g,`$&\n${u}`);if(a){const{tags:e}=t.doc.schema;if("string"!=typeof Xo(f,e,e.scalarFallback).value)return oi(s,t)}const h=c?f:ti(f,u,"flow",ni(t));return!o||l||-1===h.indexOf("\n")&&-1===o.indexOf("\n")?h:(n&&n(),function(e,t,n){return n?`#${n.replace(/[\s\S]^/gm,`$&${t}#`)}\n${t}${e}`:e}(h,u,o))}(e,t,n,r);default:return null}};a!==vo.Type.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(c)?a=vo.Type.QUOTE_DOUBLE:!i&&!s||a!==vo.Type.BLOCK_FOLDED&&a!==vo.Type.BLOCK_LITERAL||(a=vo.Type.QUOTE_DOUBLE);let l=u(a);if(null===l&&(l=u(o),null===l))throw new Error(`Unsupported default string type ${o}`);return l},toJSON:jo},wi=void 0!==wi?wi:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},bi=[],_i=[],Ei="undefined"!=typeof Uint8Array?Uint8Array:Array,Oi=!1;function Si(){Oi=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,n=e.length;t>18&63]+bi[o>>12&63]+bi[o>>6&63]+bi[63&o]);return i.join("")}function Mi(e){var t;Oi||Si();for(var n=e.length,r=n%3,o="",i=[],s=16383,a=0,c=n-r;ac?c:a+s));return 1===r?(t=e[n-1],o+=bi[t>>2],o+=bi[t<<4&63],o+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],o+=bi[t>>10],o+=bi[t>>4&63],o+=bi[t<<2&63],o+="="),i.push(o),i.join("")}function Li(e,t,n,r,o){var i,s,a=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=a;l>0;i=256*i+e[t+f],f+=h,l-=8);for(s=i&(1<<-l)-1,i>>=-l,l+=r;l>0;s=256*s+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),i-=u}return(p?-1:1)*s*Math.pow(2,i-r)}function Ni(e,t,n,r,o,i){var s,a,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(s++,c/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(t*c-1)*Math.pow(2,o),s+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,o),s=0));o>=8;e[n+p]=255&a,p+=d,a/=256,o-=8);for(s=s<0;e[n+p]=255&s,p+=d,s/=256,u-=8);e[n+p-d]|=128*g}var Ti={}.toString,Pi=Array.isArray||function(e){return"[object Array]"==Ti.call(e)};function Ci(){return Ri.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function xi(e,t){if(Ci()=Ci())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Ci().toString(16)+" bytes");return 0|e}function $i(e){return!(null==e||!e._isBuffer)}function Di(e,t){if($i(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return hs(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return ps(e).length;default:if(r)return hs(e).length;t=(""+t).toLowerCase(),r=!0}}function Fi(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return ts(this,t,n);case"utf8":case"utf-8":return Zi(this,t,n);case"ascii":return Xi(this,t,n);case"latin1":case"binary":return es(this,t,n);case"base64":return zi(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ns(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function Ui(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function Wi(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=Ri.from(t,r)),$i(t))return 0===t.length?-1:Ki(e,t,n,r,o);if("number"==typeof t)return t&=255,Ri.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):Ki(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function Ki(e,t,n,r,o){var i,s=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,n/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){var l=-1;for(i=n;ia&&(n=a-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var s=0;s>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function zi(e,t,n){return 0===t&&n===e.length?Mi(e):Mi(e.slice(t,n))}function Zi(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],s=e[o+2],128==(192&i)&&128==(192&s)&&(c=(15&u)<<12|(63&i)<<6|63&s)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],s=e[o+2],a=e[o+3],128==(192&i)&&128==(192&s)&&128==(192&a)&&(c=(15&u)<<18|(63&i)<<12|(63&s)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},Ri.prototype.compare=function(e,t,n,r,o){if(!$i(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0),a=Math.min(i,s),c=this.slice(r,o),u=e.slice(t,n),l=0;lo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return Vi(this,e,t,n);case"utf8":case"utf-8":return Qi(this,e,t,n);case"ascii":return qi(this,e,t,n);case"latin1":case"binary":return Ji(this,e,t,n);case"base64":return Gi(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Hi(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},Ri.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Xi(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function os(e,t,n,r,o,i){if(!$i(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function is(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function ss(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function as(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function cs(e,t,n,r,o){return o||as(e,0,n,4),Ni(e,t,n,r,23,4),n+4}function us(e,t,n,r,o){return o||as(e,0,n,8),Ni(e,t,n,r,52,8),n+8}Ri.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},Ri.prototype.readUInt8=function(e,t){return t||rs(e,1,this.length),this[e]},Ri.prototype.readUInt16LE=function(e,t){return t||rs(e,2,this.length),this[e]|this[e+1]<<8},Ri.prototype.readUInt16BE=function(e,t){return t||rs(e,2,this.length),this[e]<<8|this[e+1]},Ri.prototype.readUInt32LE=function(e,t){return t||rs(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Ri.prototype.readUInt32BE=function(e,t){return t||rs(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Ri.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||rs(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},Ri.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||rs(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},Ri.prototype.readInt8=function(e,t){return t||rs(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Ri.prototype.readInt16LE=function(e,t){t||rs(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Ri.prototype.readInt16BE=function(e,t){t||rs(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Ri.prototype.readInt32LE=function(e,t){return t||rs(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Ri.prototype.readInt32BE=function(e,t){return t||rs(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Ri.prototype.readFloatLE=function(e,t){return t||rs(e,4,this.length),Li(this,e,!0,23,4)},Ri.prototype.readFloatBE=function(e,t){return t||rs(e,4,this.length),Li(this,e,!1,23,4)},Ri.prototype.readDoubleLE=function(e,t){return t||rs(e,8,this.length),Li(this,e,!0,52,8)},Ri.prototype.readDoubleBE=function(e,t){return t||rs(e,8,this.length),Li(this,e,!1,52,8)},Ri.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||os(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},Ri.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,1,255,0),Ri.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Ri.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,2,65535,0),Ri.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):is(this,e,t,!0),t+2},Ri.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,2,65535,0),Ri.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):is(this,e,t,!1),t+2},Ri.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,4,4294967295,0),Ri.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):ss(this,e,t,!0),t+4},Ri.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,4,4294967295,0),Ri.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):ss(this,e,t,!1),t+4},Ri.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);os(this,e,t,n,o-1,-o)}var i=0,s=1,a=0;for(this[t]=255&e;++i>0)-a&255;return t+n},Ri.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);os(this,e,t,n,o-1,-o)}var i=n-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+n},Ri.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,1,127,-128),Ri.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Ri.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,2,32767,-32768),Ri.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):is(this,e,t,!0),t+2},Ri.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,2,32767,-32768),Ri.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):is(this,e,t,!1),t+2},Ri.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,4,2147483647,-2147483648),Ri.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):ss(this,e,t,!0),t+4},Ri.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||os(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Ri.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):ss(this,e,t,!1),t+4},Ri.prototype.writeFloatLE=function(e,t,n){return cs(this,e,t,!0,n)},Ri.prototype.writeFloatBE=function(e,t,n){return cs(this,e,t,!1,n)},Ri.prototype.writeDoubleLE=function(e,t,n){return us(this,e,t,!0,n)},Ri.prototype.writeDoubleBE=function(e,t,n){return us(this,e,t,!1,n)},Ri.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!Ri.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function ps(e){return function(e){var t,n,r,o,i,s;Oi||Si();var a=e.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===e[a-2]?2:"="===e[a-1]?1:0,s=new Ei(3*a/4-i),r=i>0?a-4:a;var c=0;for(t=0,n=0;t>16&255,s[c++]=o>>8&255,s[c++]=255&o;return 2===i?(o=_i[e.charCodeAt(t)]<<2|_i[e.charCodeAt(t+1)]>>4,s[c++]=255&o):1===i&&(o=_i[e.charCodeAt(t)]<<10|_i[e.charCodeAt(t+1)]<<4|_i[e.charCodeAt(t+2)]>>2,s[c++]=o>>8&255,s[c++]=255&o),s}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(ls,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function ds(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function gs(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function ms(){throw new Error("setTimeout has not been defined")}function ys(){throw new Error("clearTimeout has not been defined")}var vs=ms,ws=ys;function bs(e){if(vs===setTimeout)return setTimeout(e,0);if((vs===ms||!vs)&&setTimeout)return vs=setTimeout,setTimeout(e,0);try{return vs(e,0)}catch(t){try{return vs.call(null,e,0)}catch(t){return vs.call(this,e,0)}}}"function"==typeof wi.setTimeout&&(vs=setTimeout),"function"==typeof wi.clearTimeout&&(ws=clearTimeout);var _s,Es=[],Os=!1,Ss=-1;function As(){Os&&_s&&(Os=!1,_s.length?Es=_s.concat(Es):Ss=-1,Es.length&&Ms())}function Ms(){if(!Os){var e=bs(As);Os=!0;for(var t=Es.length;t;){for(_s=Es,Es=[];++Ss1)for(var n=1;ne instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve:(e,t)=>{const n=vi.resolveString(e,t);return Ri.from(n,"base64")},options:vi.binaryOptions,stringify:({comment:e,type:t,value:n},r,o,i)=>{let s;if(s=n instanceof Ri?n.toString("base64"):Ri.from(n.buffer).toString("base64"),t||(t=vi.binaryOptions.defaultType),t===vo.Type.QUOTE_DOUBLE)n=s;else{const{lineWidth:e}=vi.binaryOptions,r=Math.ceil(s.length/e),o=new Array(r);for(let t=0,n=0;t1){const e="Each pair must have its own sequence indicator";throw new vo.YAMLSemanticError(t,e)}const e=r.items[0]||new vi.Pair;r.commentBefore&&(e.commentBefore=e.commentBefore?`${r.commentBefore}\n${e.commentBefore}`:r.commentBefore),r.comment&&(e.comment=e.comment?`${r.comment}\n${e.comment}`:r.comment),r=e}n.items[e]=r instanceof vi.Pair?r:new vi.Pair(r)}}return n}function Us(e,t,n){const r=new vi.YAMLSeq(e);r.tag="tag:yaml.org,2002:pairs";for(const o of t){let t,i;if(Array.isArray(o)){if(2!==o.length)throw new TypeError(`Expected [key, value] tuple: ${o}`);t=o[0],i=o[1]}else if(o&&o instanceof Object){const e=Object.keys(o);if(1!==e.length)throw new TypeError(`Expected { key: value } tuple: ${o}`);t=e[0],i=o[t]}else t=o;const s=e.createPair(t,i,n);r.items.push(s)}return r}const Ws={default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Fs,createNode:Us};class Ks extends vi.YAMLSeq{constructor(){super(),vo._defineProperty(this,"add",vi.YAMLMap.prototype.add.bind(this)),vo._defineProperty(this,"delete",vi.YAMLMap.prototype.delete.bind(this)),vo._defineProperty(this,"get",vi.YAMLMap.prototype.get.bind(this)),vo._defineProperty(this,"has",vi.YAMLMap.prototype.has.bind(this)),vo._defineProperty(this,"set",vi.YAMLMap.prototype.set.bind(this)),this.tag=Ks.tag}toJSON(e,t){const n=new Map;t&&t.onCreate&&t.onCreate(n);for(const e of this.items){let r,o;if(e instanceof vi.Pair?(r=vi.toJSON(e.key,"",t),o=vi.toJSON(e.value,r,t)):r=vi.toJSON(e,"",t),n.has(r))throw new Error("Ordered maps must not include duplicate keys");n.set(r,o)}return n}}vo._defineProperty(Ks,"tag","tag:yaml.org,2002:omap");const Vs={identify:e=>e instanceof Map,nodeClass:Ks,default:!1,tag:"tag:yaml.org,2002:omap",resolve:function(e,t){const n=Fs(e,t),r=[];for(const{key:e}of n.items)if(e instanceof vi.Scalar){if(r.includes(e.value)){const e="Ordered maps must not include duplicate keys";throw new vo.YAMLSemanticError(t,e)}r.push(e.value)}return Object.assign(new Ks,n)},createNode:function(e,t,n){const r=Us(e,t,n),o=new Ks;return o.items=r.items,o}};class Qs extends vi.YAMLMap{constructor(){super(),this.tag=Qs.tag}add(e){const t=e instanceof vi.Pair?e:new vi.Pair(e);vi.findPair(this.items,t.key)||this.items.push(t)}get(e,t){const n=vi.findPair(this.items,e);return!t&&n instanceof vi.Pair?n.key instanceof vi.Scalar?n.key.value:n.key:n}set(e,t){if("boolean"!=typeof t)throw new Error("Expected boolean value for set(key, value) in a YAML set, not "+typeof t);const n=vi.findPair(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new vi.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues())return super.toString(e,t,n);throw new Error("Set items must all have null values")}}vo._defineProperty(Qs,"tag","tag:yaml.org,2002:set");const qs={identify:e=>e instanceof Set,nodeClass:Qs,default:!1,tag:"tag:yaml.org,2002:set",resolve:function(e,t){const n=vi.resolveMap(e,t);if(!n.hasAllNullValues())throw new vo.YAMLSemanticError(t,"Set items must all have null values");return Object.assign(new Qs,n)},createNode:function(e,t,n){const r=new Qs;for(const o of t)r.items.push(e.createPair(o,null,n));return r}},Js=(e,t)=>{const n=t.split(":").reduce(((e,t)=>60*e+Number(t)),0);return"-"===e?-n:n},Gs=({value:e})=>{if(isNaN(e)||!isFinite(e))return vi.stringifyNumber(e);let t="";e<0&&(t="-",e=Math.abs(e));const n=[e%60];return e<60?n.unshift(0):(e=Math.round((e-n[0])/60),n.unshift(e%60),e>=60&&(e=Math.round((e-n[0])/60),n.unshift(e))),t+n.map((e=>e<10?"0"+String(e):String(e))).join(":").replace(/000000\d*$/,"")},Hs={identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:(e,t,n)=>Js(t,n.replace(/_/g,"")),stringify:Gs},zs={identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,resolve:(e,t,n)=>Js(t,n.replace(/_/g,"")),stringify:Gs},Zs={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"),resolve:(e,t,n,r,o,i,s,a,c)=>{a&&(a=(a+"00").substr(1,3));let u=Date.UTC(t,n-1,r,o||0,i||0,s||0,a||0);if(c&&"Z"!==c){let e=Js(c[0],c.slice(1));Math.abs(e)<30&&(e*=60),u-=6e4*e}return new Date(u)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};function Xs(e){const t=void 0!==$s&&$s.env||{};return e?"undefined"!=typeof YAML_SILENCE_DEPRECATION_WARNINGS?!YAML_SILENCE_DEPRECATION_WARNINGS:!t.YAML_SILENCE_DEPRECATION_WARNINGS:"undefined"!=typeof YAML_SILENCE_WARNINGS?!YAML_SILENCE_WARNINGS:!t.YAML_SILENCE_WARNINGS}function ea(e,t){if(Xs(!1)){const n=void 0!==$s&&$s.emitWarning;n?n(e,t):console.warn(t?`${t}: ${e}`:e)}}const ta={};var na={binary:Ds,floatTime:zs,intTime:Hs,omap:Vs,pairs:Ws,set:qs,timestamp:Zs,warn:ea,warnFileDeprecation:function(e){if(Xs(!0)){ea(`The endpoint 'yaml/${e.replace(/.*yaml[/\\]/i,"").replace(/\.js$/,"").replace(/\\/g,"/")}' will be removed in a future release.`,"DeprecationWarning")}},warnOptionDeprecation:function(e,t){if(!ta[e]&&Xs(!0)){ta[e]=!0;let n=`The option '${e}' will be removed in a future release`;n+=t?`, use '${t}' instead.`:".",ea(n,"DeprecationWarning")}}};const ra={createNode:function(e,t,n){const r=new vi.YAMLMap(e);if(t instanceof Map)for(const[o,i]of t)r.items.push(e.createPair(o,i,n));else if(t&&"object"==typeof t)for(const o of Object.keys(t))r.items.push(e.createPair(o,t[o],n));return"function"==typeof e.sortMapEntries&&r.items.sort(e.sortMapEntries),r},default:!0,nodeClass:vi.YAMLMap,tag:"tag:yaml.org,2002:map",resolve:vi.resolveMap};const oa={createNode:function(e,t,n){const r=new vi.YAMLSeq(e);if(t&&t[Symbol.iterator])for(const o of t){const t=e.createNode(o,n.wrapScalars,null,n);r.items.push(t)}return r},default:!0,nodeClass:vi.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve:vi.resolveSeq},ia={identify:e=>"string"==typeof e,default:!0,tag:"tag:yaml.org,2002:str",resolve:vi.resolveString,stringify:(e,t,n,r)=>(t=Object.assign({actualString:!0},t),vi.stringifyString(e,t,n,r)),options:vi.strOptions},sa=[ra,oa,ia],aa=e=>"bigint"==typeof e||Number.isInteger(e),ca=(e,t,n)=>vi.intOptions.asBigInt?BigInt(e):parseInt(t,n);function ua(e,t,n){const{value:r}=e;return aa(r)&&r>=0?n+r.toString(t):vi.stringifyNumber(e)}const la={identify:e=>null==e,createNode:(e,t,n)=>n.wrapScalars?new vi.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:vi.nullOptions,stringify:()=>vi.nullOptions.nullStr},fa={identify:e=>"boolean"==typeof e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>"t"===e[0]||"T"===e[0],options:vi.boolOptions,stringify:({value:e})=>e?vi.boolOptions.trueStr:vi.boolOptions.falseStr},ha={identify:e=>aa(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o([0-7]+)$/,resolve:(e,t)=>ca(e,t,8),options:vi.intOptions,stringify:e=>ua(e,8,"0o")},pa={identify:aa,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:e=>ca(e,e,10),options:vi.intOptions,stringify:vi.stringifyNumber},da={identify:e=>aa(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x([0-9a-fA-F]+)$/,resolve:(e,t)=>ca(e,t,16),options:vi.intOptions,stringify:e=>ua(e,16,"0x")},ga={identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:(e,t)=>t?NaN:"-"===e[0]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:vi.stringifyNumber},ma={identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify:({value:e})=>Number(e).toExponential()},ya={identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,resolve(e,t,n){const r=t||n,o=new vi.Scalar(parseFloat(e));return r&&"0"===r[r.length-1]&&(o.minFractionDigits=r.length),o},stringify:vi.stringifyNumber},va=sa.concat([la,fa,ha,pa,da,ga,ma,ya]),wa=e=>"bigint"==typeof e||Number.isInteger(e),ba=({value:e})=>JSON.stringify(e),_a=[ra,oa,{identify:e=>"string"==typeof e,default:!0,tag:"tag:yaml.org,2002:str",resolve:vi.resolveString,stringify:ba},{identify:e=>null==e,createNode:(e,t,n)=>n.wrapScalars?new vi.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:ba},{identify:e=>"boolean"==typeof e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>"true"===e,stringify:ba},{identify:wa,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:e=>vi.intOptions.asBigInt?BigInt(e):parseInt(e,10),stringify:({value:e})=>wa(e)?e.toString():JSON.stringify(e)},{identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:ba}];_a.scalarFallback=e=>{throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(e)}`)};const Ea=({value:e})=>e?vi.boolOptions.trueStr:vi.boolOptions.falseStr,Oa=e=>"bigint"==typeof e||Number.isInteger(e);function Sa(e,t,n){let r=t.replace(/_/g,"");if(vi.intOptions.asBigInt){switch(n){case 2:r=`0b${r}`;break;case 8:r=`0o${r}`;break;case 16:r=`0x${r}`}const t=BigInt(r);return"-"===e?BigInt(-1)*t:t}const o=parseInt(r,n);return"-"===e?-1*o:o}function Aa(e,t,n){const{value:r}=e;if(Oa(r)){const e=r.toString(t);return r<0?"-"+n+e.substr(1):n+e}return vi.stringifyNumber(e)}const Ma=sa.concat([{identify:e=>null==e,createNode:(e,t,n)=>n.wrapScalars?new vi.Scalar(null):null,default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>null,options:vi.nullOptions,stringify:()=>vi.nullOptions.nullStr},{identify:e=>"boolean"==typeof e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>!0,options:vi.boolOptions,stringify:Ea},{identify:e=>"boolean"==typeof e,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>!1,options:vi.boolOptions,stringify:Ea},{identify:Oa,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^([-+]?)0b([0-1_]+)$/,resolve:(e,t,n)=>Sa(t,n,2),stringify:e=>Aa(e,2,"0b")},{identify:Oa,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^([-+]?)0([0-7_]+)$/,resolve:(e,t,n)=>Sa(t,n,8),stringify:e=>Aa(e,8,"0")},{identify:Oa,default:!0,tag:"tag:yaml.org,2002:int",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:(e,t,n)=>Sa(t,n,10),stringify:vi.stringifyNumber},{identify:Oa,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:(e,t,n)=>Sa(t,n,16),stringify:e=>Aa(e,16,"0x")},{identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:(e,t)=>t?NaN:"-"===e[0]?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:vi.stringifyNumber},{identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify:({value:e})=>Number(e).toExponential()},{identify:e=>"number"==typeof e,default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,resolve(e,t){const n=new vi.Scalar(parseFloat(e.replace(/_/g,"")));if(t){const e=t.replace(/_/g,"");"0"===e[e.length-1]&&(n.minFractionDigits=e.length)}return n},stringify:vi.stringifyNumber}],na.binary,na.omap,na.pairs,na.set,na.intTime,na.floatTime,na.timestamp),La={core:va,failsafe:sa,json:_a,yaml11:Ma},Na={binary:na.binary,bool:fa,float:ya,floatExp:ma,floatNaN:ga,floatTime:na.floatTime,int:pa,intHex:da,intOct:ha,intTime:na.intTime,map:ra,null:la,omap:na.omap,pairs:na.pairs,seq:oa,set:na.set,timestamp:na.timestamp};function Ta(e,t,n){if(e instanceof vi.Node)return e;const{defaultPrefix:r,onTagObj:o,prevObjects:i,schema:s,wrapScalars:a}=n;t&&t.startsWith("!!")&&(t=r+t.slice(2));let c=function(e,t,n){if(t){const e=n.filter((e=>e.tag===t)),r=e.find((e=>!e.format))||e[0];if(!r)throw new Error(`Tag ${t} not found`);return r}return n.find((t=>(t.identify&&t.identify(e)||t.class&&e instanceof t.class)&&!t.format))}(e,t,s.tags);if(!c){if("function"==typeof e.toJSON&&(e=e.toJSON()),!e||"object"!=typeof e)return a?new vi.Scalar(e):e;c=e instanceof Map?ra:e[Symbol.iterator]?oa:ra}o&&(o(c),delete n.onTagObj);const u={value:void 0,node:void 0};if(e&&"object"==typeof e&&i){const t=i.get(e);if(t){const e=new vi.Alias(t);return n.aliasNodes.push(e),e}u.value=e,i.set(e,u)}return u.node=c.createNode?c.createNode(n.schema,e,n):a?new vi.Scalar(e):e,t&&u.node instanceof vi.Node&&(u.node.tag=t),u.node}const Pa=(e,t)=>e.keyt.key?1:0;class Ca{constructor({customTags:e,merge:t,schema:n,sortMapEntries:r,tags:o}){this.merge=!!t,this.name=n,this.sortMapEntries=!0===r?Pa:r||null,!e&&o&&na.warnOptionDeprecation("tags","customTags"),this.tags=function(e,t,n,r){let o=e[r.replace(/\W/g,"")];if(!o){const t=Object.keys(e).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${r}"; use one of ${t}`)}if(Array.isArray(n))for(const e of n)o=o.concat(e);else"function"==typeof n&&(o=n(o.slice()));for(let e=0;eJSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${n}"; use one of ${e}`)}o[e]=r}}return o}(La,Na,e||o,n)}createNode(e,t,n,r){const o={defaultPrefix:Ca.defaultPrefix,schema:this,wrapScalars:t};return Ta(e,n,r?Object.assign(r,o):o)}createPair(e,t,n){n||(n={wrapScalars:!0});const r=this.createNode(e,n.wrapScalars,null,n),o=this.createNode(t,n.wrapScalars,null,n);return new vi.Pair(r,o)}}vo._defineProperty(Ca,"defaultPrefix",vo.defaultTagPrefix),vo._defineProperty(Ca,"defaultTags",vo.defaultTags);var xa={Schema:Ca};const Ra={get binary(){return vi.binaryOptions},set binary(e){Object.assign(vi.binaryOptions,e)},get bool(){return vi.boolOptions},set bool(e){Object.assign(vi.boolOptions,e)},get int(){return vi.intOptions},set int(e){Object.assign(vi.intOptions,e)},get null(){return vi.nullOptions},set null(e){Object.assign(vi.nullOptions,e)},get str(){return vi.strOptions},set str(e){Object.assign(vi.strOptions,e)}},Ia={"1.0":{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:vo.defaultTagPrefix},{handle:"!!",prefix:"tag:private.yaml.org,2002:"}]},1.1:{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:vo.defaultTagPrefix}]},1.2:{schema:"core",merge:!1,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:vo.defaultTagPrefix}]}};function ka(e,t){if("1.0"===(e.version||e.options.version)){const e=t.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);if(e)return"!"+e[1];const n=t.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);return n?`!${n[1]}/${n[2]}`:`!${t.replace(/^tag:/,"")}`}let n=e.tagPrefixes.find((e=>0===t.indexOf(e.prefix)));if(!n){const r=e.getDefaults().tagPrefixes;n=r&&r.find((e=>0===t.indexOf(e.prefix)))}if(!n)return"!"===t[0]?t:`!<${t}>`;const r=t.substr(n.prefix.length).replace(/[!,[\]{}]/g,(e=>({"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"}[e])));return n.handle+r}function Ba(e,t,n,r){const{anchors:o,schema:i}=t.doc;let s;if(!(e instanceof vi.Node)){const t={aliasNodes:[],onTagObj:e=>s=e,prevObjects:new Map};e=i.createNode(e,!0,null,t);for(const e of t.aliasNodes){e.source=e.source.node;let t=o.getName(e.source);t||(t=o.newName(),o.map[t]=e.source)}}if(e instanceof vi.Pair)return e.toString(t,n,r);s||(s=function(e,t){if(t instanceof vi.Alias)return vi.Alias;if(t.tag){const n=e.filter((e=>e.tag===t.tag));if(n.length>0)return n.find((e=>e.format===t.format))||n[0]}let n,r;if(t instanceof vi.Scalar){r=t.value;const o=e.filter((e=>e.identify&&e.identify(r)||e.class&&r instanceof e.class));n=o.find((e=>e.format===t.format))||o.find((e=>!e.format))}else r=t,n=e.find((e=>e.nodeClass&&r instanceof e.nodeClass));if(!n){const e=r&&r.constructor?r.constructor.name:typeof r;throw new Error(`Tag not resolved for ${e} value`)}return n}(i.tags,e));const a=function(e,t,{anchors:n,doc:r}){const o=[],i=r.anchors.getName(e);return i&&(n[i]=e,o.push(`&${i}`)),e.tag?o.push(ka(r,e.tag)):t.default||o.push(ka(r,t.tag)),o.join(" ")}(e,s,t);a.length>0&&(t.indentAtStart=(t.indentAtStart||0)+a.length+1);const c="function"==typeof s.stringify?s.stringify(e,t,n,r):e instanceof vi.Scalar?vi.stringifyString(e,t,n,r):e.toString(t,n,r);return a?e instanceof vi.Scalar||"{"===c[0]||"["===c[0]?`${a} ${c}`:`${a}\n${t.indent}${c}`:c}class Ya{static validAnchorNode(e){return e instanceof vi.Scalar||e instanceof vi.YAMLSeq||e instanceof vi.YAMLMap}constructor(e){vo._defineProperty(this,"map",Object.create(null)),this.prefix=e}createAlias(e,t){return this.setAnchor(e,t),new vi.Alias(e)}createMergePair(...e){const t=new vi.Merge;return t.value.items=e.map((e=>{if(e instanceof vi.Alias){if(e.source instanceof vi.YAMLMap)return e}else if(e instanceof vi.YAMLMap)return this.createAlias(e);throw new Error("Merge sources must be Map nodes or their Aliases")})),t}getName(e){const{map:t}=this;return Object.keys(t).find((n=>t[n]===e))}getNames(){return Object.keys(this.map)}getNode(e){return this.map[e]}newName(e){e||(e=this.prefix);const t=Object.keys(this.map);for(let n=1;;++n){const r=`${e}${n}`;if(!t.includes(r))return r}}resolveNodes(){const{map:e,_cstAliases:t}=this;Object.keys(e).forEach((t=>{e[t]=e[t].resolved})),t.forEach((e=>{e.source=e.source.resolved})),delete this._cstAliases}setAnchor(e,t){if(null!=e&&!Ya.validAnchorNode(e))throw new Error("Anchors may only be set for Scalar, Seq and Map nodes");if(t&&/[\x00-\x19\s,[\]{}]/.test(t))throw new Error("Anchor names must not contain whitespace or control characters");const{map:n}=this,r=e&&Object.keys(n).find((t=>n[t]===e));if(r){if(!t)return r;r!==t&&(delete n[r],n[t]=e)}else{if(!t){if(!e)return null;t=this.newName()}n[t]=e}return t}}const ja=(e,t)=>{if(e&&"object"==typeof e){const{tag:n}=e;e instanceof vi.Collection?(n&&(t[n]=!0),e.items.forEach((e=>ja(e,t)))):e instanceof vi.Pair?(ja(e.key,t),ja(e.value,t)):e instanceof vi.Scalar&&n&&(t[n]=!0)}return t};function $a({tagPrefixes:e},t){const[n,r]=t.parameters;if(!n||!r){const e="Insufficient parameters given for %TAG directive";throw new vo.YAMLSemanticError(t,e)}if(e.some((e=>e.handle===n))){const e="The %TAG directive must only be given at most once per handle in the same document.";throw new vo.YAMLSemanticError(t,e)}return{handle:n,prefix:r}}function Da(e,t){let[n]=t.parameters;if("YAML:1.0"===t.name&&(n="1.0"),!n){const e="Insufficient parameters given for %YAML directive";throw new vo.YAMLSemanticError(t,e)}if(!Ia[n]){const r=`Document will be parsed as YAML ${e.version||e.options.version} rather than YAML ${n}`;e.warnings.push(new vo.YAMLWarning(t,r))}return n}function Fa(e){if(e instanceof vi.Collection)return!0;throw new Error("Expected a YAML collection as document contents")}class Ua{constructor(e){this.anchors=new Ya(e.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=e,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}add(e){return Fa(this.contents),this.contents.add(e)}addIn(e,t){Fa(this.contents),this.contents.addIn(e,t)}delete(e){return Fa(this.contents),this.contents.delete(e)}deleteIn(e){return vi.isEmptyPath(e)?null!=this.contents&&(this.contents=null,!0):(Fa(this.contents),this.contents.deleteIn(e))}getDefaults(){return Ua.defaults[this.version]||Ua.defaults[this.options.version]||{}}get(e,t){return this.contents instanceof vi.Collection?this.contents.get(e,t):void 0}getIn(e,t){return vi.isEmptyPath(e)?!t&&this.contents instanceof vi.Scalar?this.contents.value:this.contents:this.contents instanceof vi.Collection?this.contents.getIn(e,t):void 0}has(e){return this.contents instanceof vi.Collection&&this.contents.has(e)}hasIn(e){return vi.isEmptyPath(e)?void 0!==this.contents:this.contents instanceof vi.Collection&&this.contents.hasIn(e)}set(e,t){Fa(this.contents),this.contents.set(e,t)}setIn(e,t){vi.isEmptyPath(e)?this.contents=t:(Fa(this.contents),this.contents.setIn(e,t))}setSchema(e,t){if(!e&&!t&&this.schema)return;"number"==typeof e&&(e=e.toFixed(1)),"1.0"===e||"1.1"===e||"1.2"===e?(this.version?this.version=e:this.options.version=e,delete this.options.schema):e&&"string"==typeof e&&(this.options.schema=e),Array.isArray(t)&&(this.options.customTags=t);const n=Object.assign({},this.getDefaults(),this.options);this.schema=new xa.Schema(n)}parse(e,t){this.options.keepCstNodes&&(this.cstNode=e),this.options.keepNodeTypes&&(this.type="DOCUMENT");const{directives:n=[],contents:r=[],directivesEndMarker:o,error:i,valueRange:s}=e;if(i&&(i.source||(i.source=this),this.errors.push(i)),function(e,t,n){const r=[];let o=!1;for(const n of t){const{comment:t,name:i}=n;switch(i){case"TAG":try{e.tagPrefixes.push($a(e,n))}catch(t){e.errors.push(t)}o=!0;break;case"YAML":case"YAML:1.0":if(e.version){const t="The %YAML directive must only be given at most once per document.";e.errors.push(new vo.YAMLSemanticError(n,t))}try{e.version=Da(e,n)}catch(t){e.errors.push(t)}o=!0;break;default:if(i){const t=`YAML only supports %TAG and %YAML directives, and not %${i}`;e.warnings.push(new vo.YAMLWarning(n,t))}}t&&r.push(t)}if(n&&!o&&"1.1"===(e.version||n.version||e.options.version)){const t=({handle:e,prefix:t})=>({handle:e,prefix:t});e.tagPrefixes=n.tagPrefixes.map(t),e.version=n.version}e.commentBefore=r.join("\n")||null}(this,n,t),o&&(this.directivesEndMarker=!0),this.range=s?[s.start,s.end]:null,this.setSchema(),this.anchors._cstAliases=[],function(e,t){const n={before:[],after:[]};let r,o=!1;for(const i of t)if(i.valueRange){if(void 0!==r){const t="Document contains trailing content not separated by a ... or --- line";e.errors.push(new vo.YAMLSyntaxError(i,t));break}const t=vi.resolveNode(e,i);o&&(t.spaceBefore=!0,o=!1),r=t}else null!==i.comment?(void 0===r?n.before:n.after).push(i.comment):i.type===vo.Type.BLANK_LINE&&(o=!0,void 0===r&&n.before.length>0&&!e.commentBefore&&(e.commentBefore=n.before.join("\n"),n.before=[]));if(e.contents=r||null,r){const t=n.before.join("\n");if(t){const e=r instanceof vi.Collection&&r.items[0]?r.items[0]:r;e.commentBefore=e.commentBefore?`${t}\n${e.commentBefore}`:t}e.comment=n.after.join("\n")||null}else e.comment=n.before.concat(n.after).join("\n")||null}(this,r),this.anchors.resolveNodes(),this.options.prettyErrors){for(const e of this.errors)e instanceof vo.YAMLError&&e.makePretty();for(const e of this.warnings)e instanceof vo.YAMLError&&e.makePretty()}return this}listNonDefaultTags(){return(e=>Object.keys(ja(e,{})))(this.contents).filter((e=>0!==e.indexOf(xa.Schema.defaultPrefix)))}setTagPrefix(e,t){if("!"!==e[0]||"!"!==e[e.length-1])throw new Error("Handle must start and end with !");if(t){const n=this.tagPrefixes.find((t=>t.handle===e));n?n.prefix=t:this.tagPrefixes.push({handle:e,prefix:t})}else this.tagPrefixes=this.tagPrefixes.filter((t=>t.handle!==e))}toJSON(e,t){const{keepBlobsInJSON:n,mapAsMap:r,maxAliasCount:o}=this.options,i=n&&("string"!=typeof e||!(this.contents instanceof vi.Scalar)),s={doc:this,indentStep:" ",keep:i,mapAsMap:i&&!!r,maxAliasCount:o,stringify:Ba},a=Object.keys(this.anchors.map);a.length>0&&(s.anchors=new Map(a.map((e=>[this.anchors.map[e],{alias:[],aliasCount:0,count:1}]))));const c=vi.toJSON(this.contents,e,s);if("function"==typeof t&&s.anchors)for(const{count:e,res:n}of s.anchors.values())t(n,e);return c}toString(){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");const e=this.options.indent;if(!Number.isInteger(e)||e<=0){const t=JSON.stringify(e);throw new Error(`"indent" option must be a positive integer, not ${t}`)}this.setSchema();const t=[];let n=!1;if(this.version){let e="%YAML 1.2";"yaml-1.1"===this.schema.name&&("1.0"===this.version?e="%YAML:1.0":"1.1"===this.version&&(e="%YAML 1.1")),t.push(e),n=!0}const r=this.listNonDefaultTags();this.tagPrefixes.forEach((({handle:e,prefix:o})=>{r.some((e=>0===e.indexOf(o)))&&(t.push(`%TAG ${e} ${o}`),n=!0)})),(n||this.directivesEndMarker)&&t.push("---"),this.commentBefore&&(!n&&this.directivesEndMarker||t.unshift(""),t.unshift(this.commentBefore.replace(/^/gm,"#")));const o={anchors:Object.create(null),doc:this,indent:"",indentStep:" ".repeat(e),stringify:Ba};let i=!1,s=null;if(this.contents){this.contents instanceof vi.Node&&(this.contents.spaceBefore&&(n||this.directivesEndMarker)&&t.push(""),this.contents.commentBefore&&t.push(this.contents.commentBefore.replace(/^/gm,"#")),o.forceBlockIndent=!!this.comment,s=this.contents.comment);const e=s?null:()=>i=!0,r=Ba(this.contents,o,(()=>s=null),e);t.push(vi.addComment(r,"",s))}else void 0!==this.contents&&t.push(Ba(this.contents,o));return this.comment&&(i&&!s||""===t[t.length-1]||t.push(""),t.push(this.comment.replace(/^/gm,"#"))),t.join("\n")+"\n"}}vo._defineProperty(Ua,"defaults",Ia);var Wa={Document:Ua,defaultOptions:{anchorPrefix:"a",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:"1.2"},scalarOptions:Ra};class Ka extends Wa.Document{constructor(e){super(Object.assign({},Wa.defaultOptions,e))}}function Va(e,t){const n=ko.parse(e),r=new Ka(t).parse(n[0]);if(n.length>1){const e="Source contains multiple documents; please use YAML.parseAllDocuments()";r.errors.unshift(new vo.YAMLSemanticError(n[1],e))}return r}var Qa={YAML:{createNode:function(e,t=!0,n){void 0===n&&"string"==typeof t&&(n=t,t=!0);const r=Object.assign({},Wa.Document.defaults[Wa.defaultOptions.version],Wa.defaultOptions);return new xa.Schema(r).createNode(e,t,n)},defaultOptions:Wa.defaultOptions,Document:Ka,parse:function(e,t){const n=Va(e,t);if(n.warnings.forEach((e=>na.warn(e))),n.errors.length>0)throw n.errors[0];return n.toJSON()},parseAllDocuments:function(e,t){const n=[];let r;for(const o of ko.parse(e)){const e=new Ka(t);e.parse(o,r),n.push(e),r=e}return n},parseCST:ko.parse,parseDocument:Va,scalarOptions:Wa.scalarOptions,stringify:function(e,t){const n=new Ka(t);return n.contents=e,String(n)}}}.YAML,qa={findPair:vi.findPair,parseMap:vi.resolveMap,parseSeq:vi.resolveSeq,stringifyNumber:vi.stringifyNumber,stringifyString:vi.stringifyString,toJSON:vi.toJSON,Type:vo.Type,YAMLError:vo.YAMLError,YAMLReferenceError:vo.YAMLReferenceError,YAMLSemanticError:vo.YAMLSemanticError,YAMLSyntaxError:vo.YAMLSyntaxError,YAMLWarning:vo.YAMLWarning},Ja={findPair:qa.findPair,toJSON:qa.toJSON,parseMap:qa.parseMap,parseSeq:qa.parseSeq,stringifyNumber:qa.stringifyNumber,stringifyString:qa.stringifyString,Type:qa.Type,YAMLError:qa.YAMLError,YAMLReferenceError:qa.YAMLReferenceError,YAMLSemanticError:qa.YAMLSemanticError,YAMLSyntaxError:qa.YAMLSyntaxError,YAMLWarning:qa.YAMLWarning},Ga=Qa.Document,Ha=Qa.parseCST,za=Ja.YAMLError,Za=Ja.YAMLSyntaxError,Xa=Ja.YAMLSemanticError,ec=Object.defineProperty({Document:Ga,parseCST:Ha,YAMLError:za,YAMLSyntaxError:Za,YAMLSemanticError:Xa},"__esModule",{value:!0});var tc=function(e){var t=ec.parseCST(e);qr.addOrigRange(t);for(var n=t.map((function(e){return new ec.Document({merge:!1,keepCstNodes:!0}).parse(e)})),r=[],o={text:e,locator:new f.default(e),comments:r,transformOffset:function(e){return Ur.transformOffset(e,o)},transformRange:function(e){return Kr.transformRange(e,o)},transformNode:function(e){return Ir.transformNode(e,o)},transformContent:function(e){return Kt.transformContent(e,o)}},i=0,s=n;i=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var t={name:"prettier",version:"2.3.2",description:"Prettier is an opinionated code formatter",bin:"./bin/prettier.js",repository:"prettier/prettier",homepage:"https://prettier.io",author:"James Long",license:"MIT",main:"./index.js",browser:"./standalone.js",unpkg:"./standalone.js",engines:{node:">=12.17.0"},files:["index.js","standalone.js","src","bin"],dependencies:{"@angular/compiler":"12.0.5","@babel/code-frame":"7.14.5","@babel/parser":"7.14.6","@glimmer/syntax":"0.79.3","@iarna/toml":"2.2.5","@typescript-eslint/typescript-estree":"4.27.0","angular-estree-parser":"2.4.0","angular-html-parser":"1.8.0",camelcase:"6.2.0",chalk:"4.1.1","ci-info":"3.2.0","cjk-regex":"2.0.1",cosmiconfig:"7.0.0",dashify:"2.0.0",diff:"5.0.0",editorconfig:"0.15.3","editorconfig-to-prettier":"0.2.0","escape-string-regexp":"4.0.0",espree:"7.3.1",esutils:"2.0.3","fast-glob":"3.2.5","fast-json-stable-stringify":"2.1.0","find-parent-dir":"0.3.1","flow-parser":"0.153.0","get-stdin":"8.0.0",globby:"11.0.4",graphql:"15.5.0","html-element-attributes":"2.3.0","html-styles":"1.0.0","html-tag-names":"1.1.5","html-void-elements":"1.0.5",ignore:"4.0.6","jest-docblock":"27.0.1",json5:"2.2.0",leven:"3.1.0","lines-and-columns":"1.1.6","linguist-languages":"7.15.0",lodash:"4.17.21",mem:"8.1.1",meriyah:"4.1.5",minimatch:"3.0.4",minimist:"1.2.5","n-readlines":"1.0.1",outdent:"0.8.0","parse-srcset":"ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee","please-upgrade-node":"3.2.0","postcss-less":"3.1.4","postcss-media-query-parser":"0.2.3","postcss-scss":"2.1.1","postcss-selector-parser":"2.2.3","postcss-values-parser":"2.0.1","regexp-util":"1.2.2","remark-footnotes":"2.0.0","remark-math":"3.0.1","remark-parse":"8.0.3",resolve:"1.20.0",semver:"7.3.5","string-width":"4.2.2","strip-ansi":"6.0.0",typescript:"4.3.4","unicode-regex":"3.0.0",unified:"9.2.1",vnopts:"1.0.2",wcwidth:"1.0.1","yaml-unist-parser":"1.3.1"},devDependencies:{"@babel/core":"7.14.6","@babel/preset-env":"7.14.5","@babel/types":"7.14.5","@glimmer/reference":"0.79.3","@rollup/plugin-alias":"3.1.2","@rollup/plugin-babel":"5.3.0","@rollup/plugin-commonjs":"18.1.0","@rollup/plugin-json":"4.1.0","@rollup/plugin-node-resolve":"13.0.0","@rollup/plugin-replace":"2.4.2","@types/estree":"0.0.48","babel-jest":"27.0.2","babel-loader":"8.2.2",benchmark:"2.1.4","builtin-modules":"3.2.0","core-js":"3.14.0","cross-env":"7.0.3",cspell:"4.2.8",eslint:"7.29.0","eslint-config-prettier":"8.3.0","eslint-formatter-friendly":"7.0.0","eslint-plugin-import":"2.23.4","eslint-plugin-jest":"24.3.6","eslint-plugin-prettier-internal-rules":"link:scripts/tools/eslint-plugin-prettier-internal-rules","eslint-plugin-react":"7.24.0","eslint-plugin-regexp":"0.12.1","eslint-plugin-unicorn":"33.0.1","esm-utils":"1.1.0",execa:"5.1.1",jest:"27.0.4","jest-snapshot-serializer-ansi":"1.0.0","jest-snapshot-serializer-raw":"1.2.0","jest-watch-typeahead":"0.6.4","npm-run-all":"4.1.5","path-browserify":"1.0.1",prettier:"2.3.1","pretty-bytes":"5.6.0",rimraf:"3.0.2",rollup:"2.52.1","rollup-plugin-polyfill-node":"0.6.2","rollup-plugin-terser":"7.0.2",shelljs:"0.8.4","snapshot-diff":"0.9.0",tempy:"1.0.1","terser-webpack-plugin":"5.1.3",webpack:"5.39.1"},scripts:{prepublishOnly:'echo "Error: must publish from dist/" && exit 1',"prepare-release":"yarn && yarn build && yarn test:dist",test:"jest","test:dev-package":"cross-env INSTALL_PACKAGE=1 jest","test:dist":"cross-env NODE_ENV=production jest","test:dist-standalone":"cross-env NODE_ENV=production TEST_STANDALONE=1 jest","test:integration":"jest tests/integration","perf:repeat":"yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null","perf:repeat-inspect":"yarn && yarn build && cross-env NODE_ENV=production node --inspect-brk ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null","perf:benchmark":"yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-benchmark --loglevel debug ${PERF_FILE:-./index.js} > /dev/null",lint:"run-p lint:*","lint:typecheck":"tsc","lint:eslint":"cross-env EFF_NO_LINK_RULES=true eslint . --format friendly","lint:changelog":"node ./scripts/lint-changelog.mjs","lint:prettier":'prettier . "!test*" --check',"lint:dist":'eslint --no-eslintrc --no-ignore --no-inline-config --env=es6,browser --parser-options=ecmaVersion:2019 "dist/!(bin-prettier|index|third-party).js"',"lint:spellcheck":'cspell "**/*" ".github/**/*"',"lint:deps":"node ./scripts/check-deps.mjs",fix:"run-s fix:eslint fix:prettier","fix:eslint":"yarn lint:eslint --fix","fix:prettier":"yarn lint:prettier --write",build:"node --max-old-space-size=3072 ./scripts/build/build.mjs","build-docs":"node ./scripts/build-docs.mjs"}},n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function i(e){var t={exports:{}};return e(t,t.exports),t.exports}var u=i((function(e,t){function n(){}function r(e,t,n,r,i){for(var u=0,o=t.length,s=0,a=0;ue.length?n:e})),l.value=e.join(p)}else l.value=e.join(n.slice(s,s+l.count));s+=l.count,l.added||(a+=l.count)}}var f=t[o-1];return o>1&&"string"==typeof f.value&&(f.added||f.removed)&&e.equals("",f.value)&&(t[o-2].value+=f.value,t.pop()),t}function i(e){return{newPos:e.newPos,components:e.components.slice(0)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,n.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=n.callback;"function"==typeof n&&(u=n,n={}),this.options=n;var o=this;function s(e){return u?(setTimeout((function(){u(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var a=(t=this.removeEmpty(this.tokenize(t))).length,l=e.length,c=1,p=a+l,f=[{newPos:-1,components:[]}],d=this.extractCommon(f[0],t,e,0);if(f[0].newPos+1>=a&&d+1>=l)return s([{value:this.join(t),count:t.length}]);function h(){for(var n=-1*c;n<=c;n+=2){var u=void 0,p=f[n-1],d=f[n+1],h=(d?d.newPos:0)-n;p&&(f[n-1]=void 0);var g=p&&p.newPos+1=a&&h+1>=l)return s(r(o,u.components,t,e,o.useLongestToken));f[n]=u}else f[n]=void 0}c++}if(u)!function e(){setTimeout((function(){if(c>p)return u();h()||e()}),0)}();else for(;c<=p;){var g=h();if(g)return g}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){for(var i=t.length,u=n.length,o=e.newPos,s=o-r,a=0;o+10?ye:me)(e)},Ee=Math.min,be=function(e){return e>0?Ee(De(e),9007199254740991):0},Ce=Math.max,ve=Math.min,Ae=function(e){return function(t,n,r){var i,u=S(t),o=be(u.length),s=function(e,t){var n=De(e);return n<0?Ce(n+t,0):ve(n,t)}(r,o);if(e&&n!=n){for(;o>s;)if((i=u[s++])!=i)return!0}else for(;o>s;s++)if((e||s in u)&&u[s]===n)return e||s||0;return!e&&-1}},Fe={includes:Ae(!0),indexOf:Ae(!1)}.indexOf,xe=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),Se={f:Object.getOwnPropertyNames||function(e){return function(e,t){var n,r=S(e),i=0,u=[];for(n in r)!N(ne,n)&&N(r,n)&&u.push(n);for(;t.length>i;)N(r,n=t[i++])&&(~Fe(u,n)||u.push(n));return u}(e,xe)}},we={f:Object.getOwnPropertySymbols},Te=ge("Reflect","ownKeys")||function(e){var t=Se.f(_(e)),n=we.f;return n?t.concat(n(e)):t},Be=function(e,t){for(var n=Te(t),r=R.f,i=L.f,u=0;u0;)e[r]=e[--r];r!==u++&&(e[r]=n)}return e},We=function(e,t,n){for(var r=e.length,i=t.length,u=0,o=0,s=[];u=74)&&(le=ze.match(/Chrome\/(\d+)/))&&(ce=le[1]);var Qe,Ze,et=ce&&+ce,tt=ze.match(/AppleWebKit\/(\d+)\./),nt=!!tt&&+tt[1],rt=[],it=rt.sort,ut=g((function(){rt.sort(void 0)})),ot=g((function(){rt.sort(null)})),st=!!(Ze=[]["sort"])&&g((function(){Ze.call(null,Qe||function(){throw 1},1)})),at=!g((function(){if(et)return et<70;if(!(He&&He>3)){if(Je)return!0;if(nt)return nt<603;var e,t,n,r,i="";for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(r=0;r<47;r++)rt.push({k:t+r,v:n})}for(rt.sort((function(e,t){return t.v-e.v})),r=0;rString(n)?1:-1}}(e))).length,r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=e.split(/\r\n|[\n\v\f\r\x85]/),r=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],i=[],u=0;function o(){var e={};for(i.push(e);u2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof t&&(t=(0,dt.parsePatch)(t)),Array.isArray(t)){if(t.length>1)throw new Error("applyPatch only works with a single input.");t=t[0]}var r,i,u=e.split(/\r\n|[\n\v\f\r\x85]/),o=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=t.hunks,a=n.compareLine||function(e,t,n,r){return t===r},l=0,c=n.fuzzFactor||0,p=0,f=0;function d(e,t){for(var n=0;n0?r[0]:" ",o=r.length>0?r.substr(1):r;if(" "===i||"-"===i){if(!a(t+1,u[t],i,o)&&++l>c)return!1;t++}}return!0}for(var h=0;h0?x[0]:" ",w=x.length>0?x.substr(1):x,T=v.linedelimiters[F];if(" "===S)A++;else if("-"===S)u.splice(A,1),o.splice(A,1);else if("+"===S)u.splice(A,0,w),o.splice(A,0,T),A++;else if("\\"===S){var B=v.lines[F-1]?v.lines[F-1][0]:null;"+"===B?r=!0:"-"===B&&(i=!0)}}}if(r)for(;!u[u.length-1];)u.pop(),o.pop();else i&&(u.push(""),o.push("\n"));for(var k=0;ke.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?a(c.lines.slice(-o.context)):[],p-=d.length,f-=d.length)}(u=d).push.apply(u,Ft(i.map((function(e){return(t.added?"+":"-")+e})))),t.added?g+=i.length:h+=i.length}else{if(p)if(i.length<=2*o.context&&e=s.length-2&&i.length<=o.context){var b=/\n$/.test(n),C=/\n$/.test(r),v=0==i.length&&d.length>E.oldLines;!b&&v&&n.length>0&&d.splice(E.oldLines,0,"\\ No newline at end of file"),(b||v)&&C||d.push("\\ No newline at end of file")}l.push(E),p=0,f=0,d=[]}h+=i.length,g+=i.length}},y=0;ye.length)return!1;for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n"):r.removed&&t.push(""),t.push(un(r.value)),r.added?t.push(""):r.removed&&t.push("")}return t.join("")};function un(e){var t=e;return t=(t=(t=(t=t.replace(/&/g,"&")).replace(//g,">")).replace(/"/g,""")}var on=Object.defineProperty({convertChangesToXML:rn},"__esModule",{value:!0}),sn=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Diff",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"diffChars",{enumerable:!0,get:function(){return o.diffChars}}),Object.defineProperty(t,"diffWords",{enumerable:!0,get:function(){return l.diffWords}}),Object.defineProperty(t,"diffWordsWithSpace",{enumerable:!0,get:function(){return l.diffWordsWithSpace}}),Object.defineProperty(t,"diffLines",{enumerable:!0,get:function(){return c.diffLines}}),Object.defineProperty(t,"diffTrimmedLines",{enumerable:!0,get:function(){return c.diffTrimmedLines}}),Object.defineProperty(t,"diffSentences",{enumerable:!0,get:function(){return p.diffSentences}}),Object.defineProperty(t,"diffCss",{enumerable:!0,get:function(){return f.diffCss}}),Object.defineProperty(t,"diffJson",{enumerable:!0,get:function(){return lt.diffJson}}),Object.defineProperty(t,"canonicalize",{enumerable:!0,get:function(){return lt.canonicalize}}),Object.defineProperty(t,"diffArrays",{enumerable:!0,get:function(){return ct.diffArrays}}),Object.defineProperty(t,"applyPatch",{enumerable:!0,get:function(){return Et.applyPatch}}),Object.defineProperty(t,"applyPatches",{enumerable:!0,get:function(){return Et.applyPatches}}),Object.defineProperty(t,"parsePatch",{enumerable:!0,get:function(){return dt.parsePatch}}),Object.defineProperty(t,"merge",{enumerable:!0,get:function(){return en.merge}}),Object.defineProperty(t,"structuredPatch",{enumerable:!0,get:function(){return Bt.structuredPatch}}),Object.defineProperty(t,"createTwoFilesPatch",{enumerable:!0,get:function(){return Bt.createTwoFilesPatch}}),Object.defineProperty(t,"createPatch",{enumerable:!0,get:function(){return Bt.createPatch}}),Object.defineProperty(t,"convertChangesToDMP",{enumerable:!0,get:function(){return nn.convertChangesToDMP}}),Object.defineProperty(t,"convertChangesToXML",{enumerable:!0,get:function(){return on.convertChangesToXML}});var n=function(e){return e&&e.__esModule?e:{default:e}}(u)}));function an(e){return{type:"concat",parts:e}}function ln(e){return{type:"indent",contents:e}}function cn(e,t){return{type:"align",contents:t,n:e}}function pn(e,t={}){return{type:"group",id:t.id,contents:e,break:Boolean(t.shouldBreak),expandedStates:t.expandedStates}}const fn={type:"break-parent"},dn={type:"line",hard:!0},hn={type:"line",hard:!0,literal:!0},gn=an([dn,fn]),mn=an([hn,fn]);var yn={concat:an,join:function(e,t){const n=[];for(let r=0;r0){for(let e=0;e"string"==typeof e?e.replace((({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")})(),""):e;const En=e=>!Number.isNaN(e)&&(e>=4352&&(e<=4447||9001===e||9002===e||11904<=e&&e<=12871&&12351!==e||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141));var bn=En,Cn=En;bn.default=Cn;const vn=e=>{if("string"!=typeof e||0===e.length)return 0;if(0===(e=Dn(e)).length)return 0;e=e.replace(/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g," ");let t=0;for(let n=0;n=127&&r<=159||(r>=768&&r<=879||(r>65535&&n++,t+=bn(r)?2:1))}return t};var An=vn,Fn=vn;An.default=Fn;var xn=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")};var Sn=e=>e[e.length-1],wn=Array.isArray||function(e){return"Array"==v(e)},Tn=function(e,t,n){if(Re(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},Bn=function(e,t,n,r,i,u,o,s){for(var a,l=i,c=0,p=!!o&&Tn(o,s,3);c0&&wn(a))l=Bn(e,t,a,be(a.length),l,u-1)-1;else{if(l>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[l]=a}l++}c++}return l},kn=Bn,Nn=!!Object.getOwnPropertySymbols&&!g((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&et&&et<41})),Pn=Nn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,On=K("wks"),In=h.Symbol,jn=Pn?In:In&&In.withoutSetter||ee,Ln=function(e){return N(On,e)&&(Nn||"string"==typeof On[e])||(Nn&&N(In,e)?On[e]=In[e]:On[e]=jn("Symbol."+e)),On[e]},_n=Ln("species"),Mn=function(e,t){var n;return wn(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!wn(n.prototype)?w(n)&&null===(n=n[_n])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)};Me({target:"Array",proto:!0},{flatMap:function(e){var t,n=B(this),r=be(n.length);return Re(e),(t=Mn(n,0)).length=kn(t,n,n,r,0,1,e,arguments.length>1?arguments[1]:void 0),t}});var Rn={},$n=Ln("iterator"),Vn=Array.prototype,qn={};qn[Ln("toStringTag")]="z";var Wn="[object z]"===String(qn),Un=Ln("toStringTag"),zn="Arguments"==v(function(){return arguments}()),Gn=Wn?v:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),Un))?n:zn?v(t):"Object"==(r=v(t))&&"function"==typeof t.callee?"Arguments":r},Hn=Ln("iterator"),Jn=function(e){var t=e.return;if(void 0!==t)return _(t.call(e)).value},Xn=function(e,t){this.stopped=e,this.result=t},Yn=function(e,t,n){var r,i,u,o,s,a,l,c,p=n&&n.that,f=!(!n||!n.AS_ENTRIES),d=!(!n||!n.IS_ITERATOR),h=!(!n||!n.INTERRUPTED),g=Tn(t,p,1+f+h),m=function(e){return r&&Jn(r),new Xn(!0,e)},y=function(e){return f?(_(e),h?g(e[0],e[1],m):g(e[0],e[1])):h?g(e,m):g(e)};if(d)r=e;else{if("function"!=typeof(i=function(e){if(null!=e)return e[Hn]||e["@@iterator"]||Rn[Gn(e)]}(e)))throw TypeError("Target is not iterable");if(void 0!==(c=i)&&(Rn.Array===c||Vn[$n]===c)){for(u=0,o=be(e.length);o>u;u++)if((s=y(e[u]))&&s instanceof Xn)return s;return new Xn(!1)}r=i.call(e)}for(a=r.next;!(l=a.call(r)).done;){try{s=y(l.value)}catch(e){throw Jn(r),e}if("object"==typeof s&&s&&s instanceof Xn)return s}return new Xn(!1)};Me({target:"Object",stat:!0},{fromEntries:function(e){var t={};return Yn(e,(function(e,n){!function(e,t,n){var r=T(t);r in e?R.f(e,r,b(0,n)):e[r]=n}(t,e,n)}),{AS_ENTRIES:!0}),t}});var Kn=void 0!==Kn?Kn:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Qn(){throw new Error("setTimeout has not been defined")}function Zn(){throw new Error("clearTimeout has not been defined")}var er=Qn,tr=Zn;function nr(e){if(er===setTimeout)return setTimeout(e,0);if((er===Qn||!er)&&setTimeout)return er=setTimeout,setTimeout(e,0);try{return er(e,0)}catch(t){try{return er.call(null,e,0)}catch(t){return er.call(this,e,0)}}}"function"==typeof Kn.setTimeout&&(er=setTimeout),"function"==typeof Kn.clearTimeout&&(tr=clearTimeout);var rr,ir=[],ur=!1,or=-1;function sr(){ur&&rr&&(ur=!1,rr.length?ir=rr.concat(ir):or=-1,ir.length&&ar())}function ar(){if(!ur){var e=nr(sr);ur=!0;for(var t=ir.length;t;){for(rr=ir,ir=[];++or1)for(var n=1;nconsole.error("SEMVER",...e):()=>{};var Ar={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},Fr=i((function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n}=Ar,r=(t=e.exports={}).re=[],i=t.src=[],u=t.t={};let o=0;const s=(e,t,n)=>{const s=o++;vr(s,t),u[e]=s,i[s]=t,r[s]=new RegExp(t,n?"g":void 0)};s("NUMERICIDENTIFIER","0|[1-9]\\d*"),s("NUMERICIDENTIFIERLOOSE","[0-9]+"),s("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),s("MAINVERSION",`(${i[u.NUMERICIDENTIFIER]})\\.(${i[u.NUMERICIDENTIFIER]})\\.(${i[u.NUMERICIDENTIFIER]})`),s("MAINVERSIONLOOSE",`(${i[u.NUMERICIDENTIFIERLOOSE]})\\.(${i[u.NUMERICIDENTIFIERLOOSE]})\\.(${i[u.NUMERICIDENTIFIERLOOSE]})`),s("PRERELEASEIDENTIFIER",`(?:${i[u.NUMERICIDENTIFIER]}|${i[u.NONNUMERICIDENTIFIER]})`),s("PRERELEASEIDENTIFIERLOOSE",`(?:${i[u.NUMERICIDENTIFIERLOOSE]}|${i[u.NONNUMERICIDENTIFIER]})`),s("PRERELEASE",`(?:-(${i[u.PRERELEASEIDENTIFIER]}(?:\\.${i[u.PRERELEASEIDENTIFIER]})*))`),s("PRERELEASELOOSE",`(?:-?(${i[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[u.PRERELEASEIDENTIFIERLOOSE]})*))`),s("BUILDIDENTIFIER","[0-9A-Za-z-]+"),s("BUILD",`(?:\\+(${i[u.BUILDIDENTIFIER]}(?:\\.${i[u.BUILDIDENTIFIER]})*))`),s("FULLPLAIN",`v?${i[u.MAINVERSION]}${i[u.PRERELEASE]}?${i[u.BUILD]}?`),s("FULL",`^${i[u.FULLPLAIN]}$`),s("LOOSEPLAIN",`[v=\\s]*${i[u.MAINVERSIONLOOSE]}${i[u.PRERELEASELOOSE]}?${i[u.BUILD]}?`),s("LOOSE",`^${i[u.LOOSEPLAIN]}$`),s("GTLT","((?:<|>)?=?)"),s("XRANGEIDENTIFIERLOOSE",`${i[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),s("XRANGEIDENTIFIER",`${i[u.NUMERICIDENTIFIER]}|x|X|\\*`),s("XRANGEPLAIN",`[v=\\s]*(${i[u.XRANGEIDENTIFIER]})(?:\\.(${i[u.XRANGEIDENTIFIER]})(?:\\.(${i[u.XRANGEIDENTIFIER]})(?:${i[u.PRERELEASE]})?${i[u.BUILD]}?)?)?`),s("XRANGEPLAINLOOSE",`[v=\\s]*(${i[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[u.XRANGEIDENTIFIERLOOSE]})(?:${i[u.PRERELEASELOOSE]})?${i[u.BUILD]}?)?)?`),s("XRANGE",`^${i[u.GTLT]}\\s*${i[u.XRANGEPLAIN]}$`),s("XRANGELOOSE",`^${i[u.GTLT]}\\s*${i[u.XRANGEPLAINLOOSE]}$`),s("COERCE",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?(?:$|[^\\d])`),s("COERCERTL",i[u.COERCE],!0),s("LONETILDE","(?:~>?)"),s("TILDETRIM",`(\\s*)${i[u.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",s("TILDE",`^${i[u.LONETILDE]}${i[u.XRANGEPLAIN]}$`),s("TILDELOOSE",`^${i[u.LONETILDE]}${i[u.XRANGEPLAINLOOSE]}$`),s("LONECARET","(?:\\^)"),s("CARETTRIM",`(\\s*)${i[u.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",s("CARET",`^${i[u.LONECARET]}${i[u.XRANGEPLAIN]}$`),s("CARETLOOSE",`^${i[u.LONECARET]}${i[u.XRANGEPLAINLOOSE]}$`),s("COMPARATORLOOSE",`^${i[u.GTLT]}\\s*(${i[u.LOOSEPLAIN]})$|^$`),s("COMPARATOR",`^${i[u.GTLT]}\\s*(${i[u.FULLPLAIN]})$|^$`),s("COMPARATORTRIM",`(\\s*)${i[u.GTLT]}\\s*(${i[u.LOOSEPLAIN]}|${i[u.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",s("HYPHENRANGE",`^\\s*(${i[u.XRANGEPLAIN]})\\s+-\\s+(${i[u.XRANGEPLAIN]})\\s*$`),s("HYPHENRANGELOOSE",`^\\s*(${i[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[u.XRANGEPLAINLOOSE]})\\s*$`),s("STAR","(<|>)?=?\\s*\\*"),s("GTE0","^\\s*>=\\s*0.0.0\\s*$"),s("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")}));const xr=["includePrerelease","loose","rtl"];var Sr=e=>e?"object"!=typeof e?{loose:!0}:xr.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{};const wr=/^[0-9]+$/,Tr=(e,t)=>{const n=wr.test(e),r=wr.test(t);return n&&r&&(e=+e,t=+t),e===t?0:n&&!r?-1:r&&!n?1:eTr(t,e)};const{MAX_LENGTH:kr,MAX_SAFE_INTEGER:Nr}=Ar,{re:Pr,t:Or}=Fr,{compareIdentifiers:Ir}=Br;class jr{constructor(e,t){if(t=Sr(t),e instanceof jr){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>kr)throw new TypeError(`version is longer than ${kr} characters`);vr("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?Pr[Or.LOOSE]:Pr[Or.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>Nr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Nr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Nr||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[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}}var Lr=jr;var _r=(e,t,n)=>new Lr(e,n).compare(new Lr(t,n));var Mr=(e,t,n)=>_r(e,t,n)<0;var Rr=(e,t,n)=>_r(e,t,n)>=0,$r=i((function(e,t){function n(){for(var e=[],t=0;t"string"==typeof e||"function"==typeof e,choices:[{value:"flow",description:"Flow"},{value:"babel",since:"1.16.0",description:"JavaScript"},{value:"babel-flow",since:"1.16.0",description:"Flow"},{value:"babel-ts",since:"2.0.0",description:"TypeScript"},{value:"typescript",since:"1.4.0",description:"TypeScript"},{value:"espree",since:"2.2.0",description:"JavaScript"},{value:"meriyah",since:"2.2.0",description:"JavaScript"},{value:"css",since:"1.7.1",description:"CSS"},{value:"less",since:"1.7.1",description:"Less"},{value:"scss",since:"1.7.1",description:"SCSS"},{value:"json",since:"1.5.0",description:"JSON"},{value:"json5",since:"1.13.0",description:"JSON5"},{value:"json-stringify",since:"1.13.0",description:"JSON.stringify"},{value:"graphql",since:"1.5.0",description:"GraphQL"},{value:"markdown",since:"1.8.0",description:"Markdown"},{value:"mdx",since:"1.15.0",description:"MDX"},{value:"vue",since:"1.10.0",description:"Vue"},{value:"yaml",since:"1.14.0",description:"YAML"},{value:"glimmer",since:"2.3.0",description:"Ember / Handlebars"},{value:"html",since:"1.15.0",description:"HTML"},{value:"angular",since:"1.15.0",description:"Angular"},{value:"lwc",since:"1.17.0",description:"Lightning Web Components"}]},plugins:{since:"1.10.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin",cliCategory:"Config"},pluginSearchDirs:{since:"1.13.0",type:"path",array:!0,default:[{value:[]}],category:"Global",description:Vr` + Custom directory that contains prettier plugins in node_modules subdirectory. + Overrides default behavior when plugins are searched relatively to the location of Prettier. + Multiple values are accepted. + `,exception:e=>"string"==typeof e||"object"==typeof e,cliName:"plugin-search-dir",cliCategory:"Config"},printWidth:{since:"0.0.0",category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},rangeEnd:{since:"1.4.0",category:"Special",type:"int",default:Number.POSITIVE_INFINITY,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Vr` + Format code ending at a given character offset (exclusive). + The range will extend forwards to the end of the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},rangeStart:{since:"1.4.0",category:"Special",type:"int",default:0,range:{start:0,end:Number.POSITIVE_INFINITY,step:1},description:Vr` + Format code starting at a given character offset. + The range will extend backwards to the start of the first line containing the selected statement. + This option cannot be used with --cursor-offset. + `,cliCategory:"Editor"},requirePragma:{since:"1.7.0",category:"Special",type:"boolean",default:!1,description:Vr` + Require either '@prettier' or '@format' to be present in the file's first docblock comment + in order for it to be formatted. + `,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:Number.POSITIVE_INFINITY,step:1}},useTabs:{since:"1.0.0",category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{since:"2.1.0",category:"Global",type:"choice",default:[{since:"2.1.0",value:"auto"}],description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};const Wr=["cliName","cliCategory","cliDescription"],Ur={compare:_r,lt:Mr,gte:Rr},zr=t.version,Gr={CATEGORY_CONFIG:"Config",CATEGORY_EDITOR:"Editor",CATEGORY_FORMAT:"Format",CATEGORY_OTHER:"Other",CATEGORY_OUTPUT:"Output",CATEGORY_GLOBAL:"Global",CATEGORY_SPECIAL:"Special",options:qr}.options;var Hr={getSupportInfo:function({plugins:t=[],showUnreleased:n=!1,showDeprecated:r=!1,showInternal:i=!1}={}){const u=zr.split("-",1)[0],o=t.flatMap((e=>e.languages||[])).filter(a),s=((e,t)=>Object.entries(e).map((([e,n])=>Object.assign({[t]:e},n))))(Object.assign({},...t.map((({options:e})=>e)),Gr),"name").filter((e=>a(e)&&l(e))).sort(((e,t)=>e.name===t.name?0:e.name{e=Object.assign({},e),Array.isArray(e.default)&&(e.default=1===e.default.length?e.default[0].value:e.default.filter(a).sort(((e,t)=>Ur.compare(t.since,e.since)))[0].value),Array.isArray(e.choices)&&(e.choices=e.choices.filter((e=>a(e)&&l(e))),"parser"===e.name&&function(e,t,n){const r=new Set(e.choices.map((e=>e.value)));for(const i of t)if(i.parsers)for(const t of i.parsers)if(!r.has(t)){r.add(t);const u=n.find((e=>e.parsers&&e.parsers[t]));let o=i.name;u&&u.name&&(o+=` (plugin: ${u.name})`),e.choices.push({value:t,description:o})}}(e,o,t));const n=Object.fromEntries(t.filter((t=>t.defaultOptions&&void 0!==t.defaultOptions[e.name])).map((t=>[t.name,t.defaultOptions[e.name]])));return Object.assign(Object.assign({},e),{},{pluginDefaults:n})}));return{languages:o,options:s};function a(e){return n||!("since"in e)||e.since&&Ur.gte(u,e.since)}function l(e){return r||!("deprecated"in e)||e.deprecated&&Ur.lt(u,e.deprecated)}}};const{getSupportInfo:Jr}=Hr,Xr=/[^\x20-\x7F]/;function Yr(e){return(t,n,r)=>{const i=r&&r.backwards;if(!1===n)return!1;const{length:u}=t;let o=n;for(;o>=0&&o(n.match(o.regex)||[]).length?o.quote:u.quote}return s}function ci(e,t,n){const r='"'===t?"'":'"',i=e.replace(/\\(.)|(["'])/gs,((e,i,u)=>i===r?i:u===t?"\\"+u:u||(n&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(i)?i:"\\"+i)));return t+i+t}function pi(e,t){(e.comments||(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=function(e){const t=e.type||e.kind||"(unknown type)";let n=String(e.name||e.id&&("object"==typeof e.id?e.id.name:e.id)||e.key&&("object"==typeof e.key?e.key.name:e.key)||e.value&&("object"==typeof e.value?"":String(e.value))||e.operator||"");n.length>20&&(n=n.slice(0,19)+"\u2026");return t+(n?" "+n:"")}(e)}var fi={inferParserByLanguage:function(e,t){const{languages:n}=Jr({plugins:t.plugins}),r=n.find((({name:t})=>t.toLowerCase()===e))||n.find((({aliases:t})=>Array.isArray(t)&&t.includes(e)))||n.find((({extensions:t})=>Array.isArray(t)&&t.includes(`.${e}`)));return r&&r.parsers[0]},getStringWidth:function(e){return e?Xr.test(e)?An(e):e.length:0},getMaxContinuousCount:function(e,t){const n=e.match(new RegExp(`(${xn(t)})+`,"g"));return null===n?0:n.reduce(((e,n)=>Math.max(e,n.length/t.length)),0)},getMinNotPresentContinuousCount:function(e,t){const n=e.match(new RegExp(`(${xn(t)})+`,"g"));if(null===n)return 0;const r=new Map;let i=0;for(const e of n){const n=e.length/t.length;r.set(n,!0),n>i&&(i=n)}for(let e=1;ee[e.length-2],getLast:Sn,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:oi,getNextNonSpaceNonCommentCharacterIndex:si,getNextNonSpaceNonCommentCharacter:function(e,t,n){return e.charAt(si(e,t,n))},skip:Yr,skipWhitespace:Kr,skipSpaces:Qr,skipToLineEnd:Zr,skipEverythingButNewLine:ei,skipInlineComment:ti,skipTrailingComment:ni,skipNewline:ri,isNextLineEmptyAfterIndex:ui,isNextLineEmpty:function(e,t,n){return ui(e,n(t))},isPreviousLineEmpty:function(e,t,n){let r=n(t)-1;return r=Qr(e,r,{backwards:!0}),r=ri(e,r,{backwards:!0}),r=Qr(e,r,{backwards:!0}),r!==ri(e,r,{backwards:!0})},hasNewline:ii,hasNewlineInRange:function(e,t,n){for(let r=t;r0},createGroupIdMapper:function(e){const t=new WeakMap;return function(n){return t.has(n)||t.set(n,Symbol(e)),t.get(n)}}};var di={guessEndOfLine:function(e){const t=e.indexOf("\r");return t>=0?"\n"===e.charAt(t+1)?"crlf":"cr":"lf"},convertEndOfLineToChars:function(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}},countEndOfLineChars:function(e,t){let n;if("\n"===t)n=/\n/g;else if("\r"===t)n=/\r/g;else{if("\r\n"!==t)throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`);n=/\r\n/g}const r=e.match(n);return r?r.length:0},normalizeEndOfLine:function(e){return e.replace(/\r\n?/g,"\n")}};const{literalline:hi,join:gi}=yn,mi=e=>Array.isArray(e)||e&&"concat"===e.type,yi=e=>{if(Array.isArray(e))return e;if("concat"!==e.type&&"fill"!==e.type)throw new Error("Expect doc type to be `concat` or `fill`.");return e.parts},Di={};function Ei(e,t,n,r){const i=[e];for(;i.length>0;){const e=i.pop();if(e!==Di){if(n&&i.push(e,Di),!t||!1!==t(e))if(mi(e)||"fill"===e.type){const t=yi(e);for(let e=t.length-1;e>=0;--e)i.push(t[e])}else if("if-break"===e.type)e.flatContents&&i.push(e.flatContents),e.breakContents&&i.push(e.breakContents);else if("group"===e.type&&e.expandedStates)if(r)for(let t=e.expandedStates.length-1;t>=0;--t)i.push(e.expandedStates[t]);else i.push(e.contents);else e.contents&&i.push(e.contents)}else n(i.pop())}}function bi(e,t){const n=new Map;return r(e);function r(e){if(n.has(e))return n.get(e);const i=function(e){if(Array.isArray(e))return t(e.map(r));if("concat"===e.type||"fill"===e.type){const n=e.parts.map(r);return t(Object.assign(Object.assign({},e),{},{parts:n}))}if("if-break"===e.type){const n=e.breakContents&&r(e.breakContents),i=e.flatContents&&r(e.flatContents);return t(Object.assign(Object.assign({},e),{},{breakContents:n,flatContents:i}))}if("group"===e.type&&e.expandedStates){const n=e.expandedStates.map(r),i=n[0];return t(Object.assign(Object.assign({},e),{},{contents:i,expandedStates:n}))}if(e.contents){const n=r(e.contents);return t(Object.assign(Object.assign({},e),{},{contents:n}))}return t(e)}(e);return n.set(e,i),i}}function Ci(e,t,n){let r=n,i=!1;return Ei(e,(function(e){const n=t(e);if(void 0!==n&&(i=!0,r=n),i)return!1})),r}function vi(e){return!("group"!==e.type||!e.break)||(!("line"!==e.type||!e.hard)||("break-parent"===e.type||void 0))}function Ai(e){if(e.length>0){const t=Sn(e);t.expandedStates||t.break||(t.break="propagated")}return null}function Fi(e){return"line"!==e.type||e.hard?"if-break"===e.type?e.flatContents||"":e:e.soft?"":" "}const xi=(e,t)=>e&&"line"===e.type&&e.hard&&t&&"break-parent"===t.type;function Si(e){if(!e)return e;if(mi(e)||"fill"===e.type){const t=yi(e);for(;t.length>1&&xi(...t.slice(-2));)t.length-=2;if(t.length>0){const e=Si(Sn(t));t[t.length-1]=e}return Array.isArray(e)?t:Object.assign(Object.assign({},e),{},{parts:t})}switch(e.type){case"align":case"indent":case"indent-if-break":case"group":case"line-suffix":case"label":{const t=Si(e.contents);return Object.assign(Object.assign({},e),{},{contents:t})}case"if-break":{const t=Si(e.breakContents),n=Si(e.flatContents);return Object.assign(Object.assign({},e),{},{breakContents:t,flatContents:n})}}return e}function wi(e){return bi(e,(e=>function(e){switch(e.type){case"fill":if(0===e.parts.length||e.parts.every((e=>""===e)))return"";break;case"group":if(!(e.contents||e.id||e.break||e.expandedStates))return"";if("group"===e.contents.type&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case"align":case"indent":case"indent-if-break":case"line-suffix":if(!e.contents)return"";break;case"if-break":if(!e.flatContents&&!e.breakContents)return""}if(!mi(e))return e;const t=[];for(const n of yi(e)){if(!n)continue;const[e,...r]=mi(n)?yi(n):[n];"string"==typeof e&&"string"==typeof Sn(t)?t[t.length-1]+=e:t.push(e),t.push(...r)}return 0===t.length?"":1===t.length?t[0]:Array.isArray(e)?t:Object.assign(Object.assign({},e),{},{parts:t})}(e)))}function Ti(e){const t=[],n=e.filter(Boolean);for(;n.length>0;){const e=n.shift();e&&(mi(e)?n.unshift(...yi(e)):t.length>0&&"string"==typeof Sn(t)&&"string"==typeof e?t[t.length-1]+=e:t.push(e))}return t}var Bi={isConcat:mi,getDocParts:yi,willBreak:function(e){return Ci(e,vi,!1)},traverseDoc:Ei,findInDoc:Ci,mapDoc:bi,propagateBreaks:function(e){const t=new Set,n=[];Ei(e,(function(e){if("break-parent"===e.type&&Ai(n),"group"===e.type){if(n.push(e),t.has(e))return!1;t.add(e)}}),(function(e){if("group"===e.type){n.pop().break&&Ai(n)}}),!0)},removeLines:function(e){return bi(e,Fi)},stripTrailingHardline:function(e){return Si(wi(e))},normalizeParts:Ti,normalizeDoc:function(e){return bi(e,(e=>Array.isArray(e)?Ti(e):e.parts?Object.assign(Object.assign({},e),{},{parts:Ti(e.parts)}):e))},cleanDoc:wi,replaceEndOfLineWith:function(e,t){return gi(t,e.split("\n")).parts},replaceNewlinesWithLiterallines:function(e){return bi(e,(e=>"string"==typeof e&&e.includes("\n")?gi(hi,e.split("\n")):e))}};const{getStringWidth:ki,getLast:Ni}=fi,{convertEndOfLineToChars:Pi}=di,{fill:Oi,cursor:Ii,indent:ji}=yn,{isConcat:Li,getDocParts:_i}=Bi;let Mi;function Ri(e,t){return Vi(e,{type:"indent"},t)}function $i(e,t,n){if(t===Number.NEGATIVE_INFINITY)return e.root||{value:"",length:0,queue:[]};if(t<0)return Vi(e,{type:"dedent"},n);if(!t)return e;if("root"===t.type)return Object.assign(Object.assign({},e),{},{root:e});return Vi(e,{type:"string"==typeof t?"stringAlign":"numberAlign",n:t},n)}function Vi(e,t,n){const r="dedent"===t.type?e.queue.slice(0,-1):[...e.queue,t];let i="",u=0,o=0,s=0;for(const e of r)switch(e.type){case"indent":c(),n.useTabs?a(1):l(n.tabWidth);break;case"stringAlign":c(),i+=e.n,u+=e.n.length;break;case"numberAlign":o+=1,s+=e.n;break;default:throw new Error(`Unexpected type '${e.type}'`)}return p(),Object.assign(Object.assign({},e),{},{value:i,length:u,queue:r});function a(e){i+="\t".repeat(e),u+=n.tabWidth*e}function l(e){i+=" ".repeat(e),u+=e}function c(){n.useTabs?function(){o>0&&a(o);f()}():p()}function p(){s>0&&l(s),f()}function f(){o=0,s=0}}function qi(e){if(0===e.length)return 0;let t=0;for(;e.length>0&&"string"==typeof Ni(e)&&/^[\t ]*$/.test(Ni(e));)t+=e.pop().length;if(e.length>0&&"string"==typeof Ni(e)){const n=Ni(e).replace(/[\t ]*$/,"");t+=Ni(e).length-n.length,e[e.length-1]=n}return t}function Wi(e,t,n,r,i,u){let o=t.length;const s=[e],a=[];for(;n>=0;){if(0===s.length){if(0===o)return!0;s.push(t[o-1]),o--;continue}const[e,l,c]=s.pop();if("string"==typeof c)a.push(c),n-=ki(c);else if(Li(c)){const t=_i(c);for(let n=t.length-1;n>=0;n--)s.push([e,l,t[n]])}else switch(c.type){case"indent":s.push([Ri(e,r),l,c.contents]);break;case"align":s.push([$i(e,c.n,r),l,c.contents]);break;case"trim":n+=qi(a);break;case"group":{if(u&&c.break)return!1;const t=c.break?1:l;s.push([e,t,c.expandedStates&&1===t?Ni(c.expandedStates):c.contents]),c.id&&(Mi[c.id]=t);break}case"fill":for(let t=c.parts.length-1;t>=0;t--)s.push([e,l,c.parts[t]]);break;case"if-break":case"indent-if-break":{const t=c.groupId?Mi[c.groupId]:l;if(1===t){const t="if-break"===c.type?c.breakContents:c.negate?c.contents:ji(c.contents);t&&s.push([e,l,t])}if(2===t){const t="if-break"===c.type?c.flatContents:c.negate?ji(c.contents):c.contents;t&&s.push([e,l,t])}break}case"line":switch(l){case 2:if(!c.hard){c.soft||(a.push(" "),n-=1);break}return!0;case 1:return!0}break;case"line-suffix":i=!0;break;case"line-suffix-boundary":if(i)return!1;break;case"label":s.push([e,l,c.contents])}}return!1}var Ui={printDocToString:function(e,t){Mi={};const n=t.printWidth,r=Pi(t.endOfLine);let i=0;const u=[[{value:"",length:0,queue:[]},1,e]],o=[];let s=!1,a=[];for(;u.length>0;){const[e,l,c]=u.pop();if("string"==typeof c){const e="\n"!==r?c.replace(/\n/g,r):c;o.push(e),i+=ki(e)}else if(Li(c)){const t=_i(c);for(let n=t.length-1;n>=0;n--)u.push([e,l,t[n]])}else switch(c.type){case"cursor":o.push(Ii.placeholder);break;case"indent":u.push([Ri(e,t),l,c.contents]);break;case"align":u.push([$i(e,c.n,t),l,c.contents]);break;case"trim":i-=qi(o);break;case"group":switch(l){case 2:if(!s){u.push([e,c.break?1:2,c.contents]);break}case 1:{s=!1;const r=[e,2,c.contents],o=n-i,l=a.length>0;if(!c.break&&Wi(r,u,o,t,l))u.push(r);else if(c.expandedStates){const n=Ni(c.expandedStates);if(c.break){u.push([e,1,n]);break}for(let r=1;r=c.expandedStates.length){u.push([e,1,n]);break}{const n=[e,2,c.expandedStates[r]];if(Wi(n,u,o,t,l)){u.push(n);break}}}}else u.push([e,1,c.contents]);break}}c.id&&(Mi[c.id]=Ni(u)[1]);break;case"fill":{const r=n-i,{parts:o}=c;if(0===o.length)break;const[s,p]=o,f=[e,2,s],d=[e,1,s],h=Wi(f,[],r,t,a.length>0,!0);if(1===o.length){h?u.push(f):u.push(d);break}const g=[e,2,p],m=[e,1,p];if(2===o.length){h?u.push(g,f):u.push(m,d);break}o.splice(0,2);const y=[e,l,Oi(o)];Wi([e,2,[s,p,o[0]]],[],r,t,a.length>0,!0)?u.push(y,g,f):h?u.push(y,m,f):u.push(y,m,d);break}case"if-break":case"indent-if-break":{const t=c.groupId?Mi[c.groupId]:l;if(1===t){const t="if-break"===c.type?c.breakContents:c.negate?c.contents:ji(c.contents);t&&u.push([e,l,t])}if(2===t){const t="if-break"===c.type?c.flatContents:c.negate?ji(c.contents):c.contents;t&&u.push([e,l,t])}break}case"line-suffix":a.push([e,l,c.contents]);break;case"line-suffix-boundary":a.length>0&&u.push([e,l,{type:"line",hard:!0}]);break;case"line":switch(l){case 2:if(!c.hard){c.soft||(o.push(" "),i+=1);break}s=!0;case 1:if(a.length>0){u.push([e,l,c],...a.reverse()),a=[];break}c.literal?e.root?(o.push(r,e.root.value),i=e.root.length):(o.push(r),i=0):(i-=qi(o),o.push(r+e.value),i=e.length)}break;case"label":u.push([e,l,c.contents])}0===u.length&&a.length>0&&(u.push(...a.reverse()),a=[])}const l=o.indexOf(Ii.placeholder);if(-1!==l){const e=o.indexOf(Ii.placeholder,l+1),t=o.slice(0,l).join(""),n=o.slice(l+1,e).join("");return{formatted:t+n+o.slice(e+1).join(""),cursorNodeStart:t.length,cursorNodeText:n}}return{formatted:o.join("")}}};const{isConcat:zi,getDocParts:Gi}=Bi;function Hi(e){if(!e)return"";if(zi(e)){const t=[];for(const n of Gi(e))if(zi(n))t.push(...Hi(n).parts);else{const e=Hi(n);""!==e&&t.push(e)}return{type:"concat",parts:t}}return"if-break"===e.type?Object.assign(Object.assign({},e),{},{breakContents:Hi(e.breakContents),flatContents:Hi(e.flatContents)}):"group"===e.type?Object.assign(Object.assign({},e),{},{contents:Hi(e.contents),expandedStates:e.expandedStates&&e.expandedStates.map(Hi)}):"fill"===e.type?{type:"fill",parts:e.parts.map(Hi)}:e.contents?Object.assign(Object.assign({},e),{},{contents:Hi(e.contents)}):e}var Ji={builders:yn,printer:Ui,utils:Bi,debug:{printDocToDebug:function(e){const t=Object.create(null),n=new Set;return function e(t,n,i){if("string"==typeof t)return JSON.stringify(t);if(zi(t)){const n=Gi(t).map(e).filter(Boolean);return 1===n.length?n[0]:`[${n.join(", ")}]`}if("line"===t.type){const e=Array.isArray(i)&&i[n+1]&&"break-parent"===i[n+1].type;return t.literal?e?"literalline":"literallineWithoutBreakParent":t.hard?e?"hardline":"hardlineWithoutBreakParent":t.soft?"softline":"line"}if("break-parent"===t.type){return Array.isArray(i)&&i[n-1]&&"line"===i[n-1].type&&i[n-1].hard?void 0:"breakParent"}if("trim"===t.type)return"trim";if("indent"===t.type)return"indent("+e(t.contents)+")";if("align"===t.type)return t.n===Number.NEGATIVE_INFINITY?"dedentToRoot("+e(t.contents)+")":t.n<0?"dedent("+e(t.contents)+")":"root"===t.n.type?"markAsRoot("+e(t.contents)+")":"align("+JSON.stringify(t.n)+", "+e(t.contents)+")";if("if-break"===t.type)return"ifBreak("+e(t.breakContents)+(t.flatContents?", "+e(t.flatContents):"")+(t.groupId?(t.flatContents?"":', ""')+`, { groupId: ${r(t.groupId)} }`:"")+")";if("indent-if-break"===t.type){const n=[];t.negate&&n.push("negate: true"),t.groupId&&n.push(`groupId: ${r(t.groupId)}`);const i=n.length>0?`, { ${n.join(", ")} }`:"";return`indentIfBreak(${e(t.contents)}${i})`}if("group"===t.type){const n=[];t.break&&"propagated"!==t.break&&n.push("shouldBreak: true"),t.id&&n.push(`id: ${r(t.id)}`);const i=n.length>0?`, { ${n.join(", ")} }`:"";return t.expandedStates?`conditionalGroup([${t.expandedStates.map((t=>e(t))).join(",")}]${i})`:`group(${e(t.contents)}${i})`}if("fill"===t.type)return`fill([${t.parts.map((t=>e(t))).join(", ")}])`;if("line-suffix"===t.type)return"lineSuffix("+e(t.contents)+")";if("line-suffix-boundary"===t.type)return"lineSuffixBoundary";if("label"===t.type)return`label(${JSON.stringify(t.label)}, ${e(t.contents)})`;throw new Error("Unknown doc type "+t.type)}(Hi(e));function r(e){if("symbol"!=typeof e)return JSON.stringify(String(e));if(e in t)return t[e];const r=String(e).slice(7,-1)||"symbol";for(let i=0;;i++){const u=r+(i>0?` #${i}`:"");if(!n.has(u))return n.add(u),t[e]=`Symbol.for(${JSON.stringify(u)})`}}}}},Xi=Object.freeze({__proto__:null,default:{}});function Yi(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}var Ki=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Qi=function(e){return Ki.exec(e).slice(1)};function Zi(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var r=n>=0?arguments[n]:"/";if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");r&&(e=r+"/"+e,t="/"===r.charAt(0))}return(t?"/":"")+(e=Yi(au(e.split("/"),(function(e){return!!e})),!t).join("/"))||"."}function eu(e){var t=tu(e),n="/"===lu(e,-1);return(e=Yi(au(e.split("/"),(function(e){return!!e})),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e}function tu(e){return"/"===e.charAt(0)}function nu(){var e=Array.prototype.slice.call(arguments,0);return eu(au(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))}function ru(e,t){function n(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=Zi(e).substr(1),t=Zi(t).substr(1);for(var r=n(e.split("/")),i=n(t.split("/")),u=Math.min(r.length,i.length),o=u,s=0;s>18&63]+pu[i>>12&63]+pu[i>>6&63]+pu[63&i]);return u.join("")}function yu(e){var t;hu||gu();for(var n=e.length,r=n%3,i="",u=[],o=16383,s=0,a=n-r;sa?a:s+o));return 1===r?(t=e[n-1],i+=pu[t>>2],i+=pu[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=pu[t>>10],i+=pu[t>>4&63],i+=pu[t<<2&63],i+="="),u.push(i),u.join("")}function Du(e,t,n,r,i){var u,o,s=8*i-r-1,a=(1<>1,c=-7,p=n?i-1:0,f=n?-1:1,d=e[t+p];for(p+=f,u=d&(1<<-c)-1,d>>=-c,c+=s;c>0;u=256*u+e[t+p],p+=f,c-=8);for(o=u&(1<<-c)-1,u>>=-c,c+=r;c>0;o=256*o+e[t+p],p+=f,c-=8);if(0===u)u=1-l;else{if(u===a)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),u-=l}return(d?-1:1)*o*Math.pow(2,u-r)}function Eu(e,t,n,r,i,u){var o,s,a,l=8*u-i-1,c=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:u-1,h=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(a=Math.pow(2,-o))<1&&(o--,a*=2),(t+=o+p>=1?f/a:f*Math.pow(2,1-p))*a>=2&&(o++,a/=2),o+p>=c?(s=0,o=c):o+p>=1?(s=(t*a-1)*Math.pow(2,i),o+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+d]=255&s,d+=h,s/=256,i-=8);for(o=o<0;e[n+d]=255&o,d+=h,o/=256,l-=8);e[n+d-h]|=128*g}var bu={}.toString,Cu=Array.isArray||function(e){return"[object Array]"==bu.call(e)};function vu(){return Fu.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Au(e,t){if(vu()=vu())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+vu().toString(16)+" bytes");return 0|e}function ku(e){return!(null==e||!e._isBuffer)}function Nu(e,t){if(ku(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return ro(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return io(e).length;default:if(r)return ro(e).length;t=(""+t).toLowerCase(),r=!0}}function Pu(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return Gu(this,t,n);case"utf8":case"utf-8":return Wu(this,t,n);case"ascii":return Uu(this,t,n);case"latin1":case"binary":return zu(this,t,n);case"base64":return qu(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Hu(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function Ou(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function Iu(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=Fu.from(t,r)),ku(t))return 0===t.length?-1:ju(e,t,n,r,i);if("number"==typeof t)return t&=255,Fu.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):ju(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function ju(e,t,n,r,i){var u,o=1,s=e.length,a=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var c=-1;for(u=n;us&&(n=s-a),u=n;u>=0;u--){for(var p=!0,f=0;fi&&(r=i):r=i;var u=t.length;if(u%2!=0)throw new TypeError("Invalid hex string");r>u/2&&(r=u/2);for(var o=0;o>8,i=n%256,u.push(i),u.push(r);return u}(t,e.length-n),e,n,r)}function qu(e,t,n){return 0===t&&n===e.length?yu(e):yu(e.slice(t,n))}function Wu(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+p<=n)switch(p){case 1:l<128&&(c=l);break;case 2:128==(192&(u=e[i+1]))&&(a=(31&l)<<6|63&u)>127&&(c=a);break;case 3:u=e[i+1],o=e[i+2],128==(192&u)&&128==(192&o)&&(a=(15&l)<<12|(63&u)<<6|63&o)>2047&&(a<55296||a>57343)&&(c=a);break;case 4:u=e[i+1],o=e[i+2],s=e[i+3],128==(192&u)&&128==(192&o)&&128==(192&s)&&(a=(15&l)<<18|(63&u)<<12|(63&o)<<6|63&s)>65535&&a<1114112&&(c=a)}null===c?(c=65533,p=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),i+=p}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},Fu.prototype.compare=function(e,t,n,r,i){if(!ku(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var u=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(u,o),a=this.slice(r,i),l=e.slice(t,n),c=0;ci)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var u=!1;;)switch(r){case"hex":return Lu(this,e,t,n);case"utf8":case"utf-8":return _u(this,e,t,n);case"ascii":return Mu(this,e,t,n);case"latin1":case"binary":return Ru(this,e,t,n);case"base64":return $u(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Vu(this,e,t,n);default:if(u)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),u=!0}},Fu.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Uu(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",u=t;un)throw new RangeError("Trying to access beyond buffer length")}function Xu(e,t,n,r,i,u){if(!ku(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function Yu(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,u=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function Ku(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,u=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function Qu(e,t,n,r,i,u){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Zu(e,t,n,r,i){return i||Qu(e,0,n,4),Eu(e,t,n,r,23,4),n+4}function eo(e,t,n,r,i){return i||Qu(e,0,n,8),Eu(e,t,n,r,52,8),n+8}Fu.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},Fu.prototype.readUInt8=function(e,t){return t||Ju(e,1,this.length),this[e]},Fu.prototype.readUInt16LE=function(e,t){return t||Ju(e,2,this.length),this[e]|this[e+1]<<8},Fu.prototype.readUInt16BE=function(e,t){return t||Ju(e,2,this.length),this[e]<<8|this[e+1]},Fu.prototype.readUInt32LE=function(e,t){return t||Ju(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Fu.prototype.readUInt32BE=function(e,t){return t||Ju(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Fu.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||Ju(e,t,this.length);for(var r=this[e],i=1,u=0;++u=(i*=128)&&(r-=Math.pow(2,8*t)),r},Fu.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||Ju(e,t,this.length);for(var r=t,i=1,u=this[e+--r];r>0&&(i*=256);)u+=this[e+--r]*i;return u>=(i*=128)&&(u-=Math.pow(2,8*t)),u},Fu.prototype.readInt8=function(e,t){return t||Ju(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Fu.prototype.readInt16LE=function(e,t){t||Ju(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Fu.prototype.readInt16BE=function(e,t){t||Ju(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Fu.prototype.readInt32LE=function(e,t){return t||Ju(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Fu.prototype.readInt32BE=function(e,t){return t||Ju(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Fu.prototype.readFloatLE=function(e,t){return t||Ju(e,4,this.length),Du(this,e,!0,23,4)},Fu.prototype.readFloatBE=function(e,t){return t||Ju(e,4,this.length),Du(this,e,!1,23,4)},Fu.prototype.readDoubleLE=function(e,t){return t||Ju(e,8,this.length),Du(this,e,!0,52,8)},Fu.prototype.readDoubleBE=function(e,t){return t||Ju(e,8,this.length),Du(this,e,!1,52,8)},Fu.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||Xu(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,u=0;for(this[t]=255&e;++u=0&&(u*=256);)this[t+i]=e/u&255;return t+n},Fu.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,1,255,0),Fu.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Fu.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,2,65535,0),Fu.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Yu(this,e,t,!0),t+2},Fu.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,2,65535,0),Fu.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Yu(this,e,t,!1),t+2},Fu.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,4,4294967295,0),Fu.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Ku(this,e,t,!0),t+4},Fu.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,4,4294967295,0),Fu.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Ku(this,e,t,!1),t+4},Fu.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);Xu(this,e,t,n,i-1,-i)}var u=0,o=1,s=0;for(this[t]=255&e;++u>0)-s&255;return t+n},Fu.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);Xu(this,e,t,n,i-1,-i)}var u=n-1,o=1,s=0;for(this[t+u]=255&e;--u>=0&&(o*=256);)e<0&&0===s&&0!==this[t+u+1]&&(s=1),this[t+u]=(e/o>>0)-s&255;return t+n},Fu.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,1,127,-128),Fu.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Fu.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,2,32767,-32768),Fu.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Yu(this,e,t,!0),t+2},Fu.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,2,32767,-32768),Fu.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Yu(this,e,t,!1),t+2},Fu.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,4,2147483647,-2147483648),Fu.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Ku(this,e,t,!0),t+4},Fu.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||Xu(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Fu.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Ku(this,e,t,!1),t+4},Fu.prototype.writeFloatLE=function(e,t,n){return Zu(this,e,t,!0,n)},Fu.prototype.writeFloatBE=function(e,t,n){return Zu(this,e,t,!1,n)},Fu.prototype.writeDoubleLE=function(e,t,n){return eo(this,e,t,!0,n)},Fu.prototype.writeDoubleBE=function(e,t,n){return eo(this,e,t,!1,n)},Fu.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(u<1e3||!Fu.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(u=t;u55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&u.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&u.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&u.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&u.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;u.push(n)}else if(n<2048){if((t-=2)<0)break;u.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;u.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;u.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return u}function io(e){return function(e){var t,n,r,i,u,o;hu||gu();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");u="="===e[s-2]?2:"="===e[s-1]?1:0,o=new du(3*s/4-u),r=u>0?s-4:s;var a=0;for(t=0,n=0;t>16&255,o[a++]=i>>8&255,o[a++]=255&i;return 2===u?(i=fu[e.charCodeAt(t)]<<2|fu[e.charCodeAt(t+1)]>>4,o[a++]=255&i):1===u&&(i=fu[e.charCodeAt(t)]<<10|fu[e.charCodeAt(t+1)]<<4|fu[e.charCodeAt(t+2)]>>2,o[a++]=i>>8&255,o[a++]=255&i),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(to,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function uo(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function oo(e){return null!=e&&(!!e._isBuffer||so(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&so(e.slice(0,0))}(e))}function so(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var ao=r(Xi);var lo=class{constructor(e,t){(t=t||{}).readChunk||(t.readChunk=1024),t.newLineCharacter?t.newLineCharacter=t.newLineCharacter.charCodeAt(0):t.newLineCharacter=10,this.fd="number"==typeof e?e:ao.openSync(e,"r"),this.options=t,this.newLineCharacter=t.newLineCharacter,this.reset()}_searchInBuffer(e,t){let n=-1;for(let r=0;r<=e.length;r++){if(e[r]===t){n=r;break}}return n}reset(){this.eofReached=!1,this.linesCache=[],this.fdPosition=0}close(){ao.closeSync(this.fd),this.fd=null}_extractLines(e){let t;const n=[];let r=0,i=0;for(;;){let u=e[r++];if(u===this.newLineCharacter)t=e.slice(i,r),n.push(t),i=r;else if(void 0===u)break}let u=e.slice(i,r);return u.length&&n.push(u),n}_readChunk(e){let t,n=0;const r=[];do{const e=new Fu(this.options.readChunk);t=ao.readSync(this.fd,e,0,this.options.readChunk,this.fdPosition),n+=t,this.fdPosition=this.fdPosition+t,r.push(e)}while(t&&-1===this._searchInBuffer(r[r.length-1],this.options.newLineCharacter));let i=Fu.concat(r);return t=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Eo(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,u=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=u.next()).done;)o.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=u.return)&&n.call(u)}finally{if(i)throw i.error}}return o}function bo(e){return this instanceof bo?(this.v=e,this):new bo(e)}var Co=Object.freeze({__proto__:null,__extends:function(e,t){function n(){this.constructor=e}mo(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},get __assign(){return yo},__rest:function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i=0;s--)(i=e[s])&&(o=(u<3?i(o):u>3?i(t,n,o):i(t,n))||o);return u>3&&o&&Object.defineProperty(t,n,o),o},__param:function(e,t){return function(n,r){t(n,r,e)}},__metadata:function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},__awaiter:function(e,t,n,r){return new(n||(n=Promise))((function(i,u){function o(e){try{a(r.next(e))}catch(e){u(e)}}function s(e){try{a(r.throw(e))}catch(e){u(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}a((r=r.apply(e,t||[])).next())}))},__generator:function(e,t){var n,r,i,u,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return u={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function s(u){return function(s){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&u[0]?r.return:u[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,u[1])).done)return i;switch(r=0,i&&(u=[2&u[0],i.value]),u[0]){case 0:case 1:i=u;break;case 4:return o.label++,{value:u[1],done:!1};case 5:o.label++,r=u[1],u=[0];continue;case 7:u=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==u[0]&&2!==u[0])){o=0;continue}if(3===u[0]&&(!i||u[1]>i[0]&&u[1]1||s(e,t)}))})}function s(e,t){try{(n=i[e](t)).value instanceof bo?Promise.resolve(n.value.v).then(a,l):c(u[0][2],n)}catch(e){c(u[0][3],e)}var n}function a(e){s("next",e)}function l(e){s("throw",e)}function c(e,t){e(t),u.shift(),u.length&&s(u[0][0],u[0][1])}},__asyncDelegator:function(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:bo(e[r](t)),done:"return"===r}:i?i(t):t}:i}},__asyncValues:function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=Do(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,i){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,i,(t=e[n](t)).done,t.value)}))}}},__makeTemplateObject:function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e},__importStar:function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},__importDefault:function(e){return e&&e.__esModule?e:{default:e}},__classPrivateFieldGet:function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)},__classPrivateFieldSet:function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}}),vo=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.apiDescriptor={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(null===e||"object"!=typeof e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map((e=>t.apiDescriptor.value(e))).join(", ")}]`;const n=Object.keys(e);return 0===n.length?"{}":`{ ${n.map((n=>`${t.apiDescriptor.key(n)}: ${t.apiDescriptor.value(e[n])}`)).join(", ")} }`},pair:({key:e,value:n})=>t.apiDescriptor.value({[e]:n})}})),Ao=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(vo,t)})),Fo=/[|\\{}()[\]^$+*?.]/g,xo=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(Fo,"\\$&")},So={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]},wo=i((function(e){var t={};for(var n in So)So.hasOwnProperty(n)&&(t[So[n]]=n);var r=e.exports={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"]}};for(var i in r)if(r.hasOwnProperty(i)){if(!("channels"in r[i]))throw new Error("missing channels property: "+i);if(!("labels"in r[i]))throw new Error("missing channel labels property: "+i);if(r[i].labels.length!==r[i].channels)throw new Error("channel and label counts mismatch: "+i);var u=r[i].channels,o=r[i].labels;delete r[i].channels,delete r[i].labels,Object.defineProperty(r[i],"channels",{value:u}),Object.defineProperty(r[i],"labels",{value:o})}r.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,u=e[2]/255,o=Math.min(r,i,u),s=Math.max(r,i,u),a=s-o;return s===o?t=0:r===s?t=(i-u)/a:i===s?t=2+(u-r)/a:u===s&&(t=4+(r-i)/a),(t=Math.min(60*t,360))<0&&(t+=360),n=(o+s)/2,[t,100*(s===o?0:n<=.5?a/(s+o):a/(2-s-o)),100*n]},r.rgb.hsv=function(e){var t,n,r,i,u,o=e[0]/255,s=e[1]/255,a=e[2]/255,l=Math.max(o,s,a),c=l-Math.min(o,s,a),p=function(e){return(l-e)/6/c+.5};return 0===c?i=u=0:(u=c/l,t=p(o),n=p(s),r=p(a),o===l?i=r-n:s===l?i=1/3+t-r:a===l&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*u,100*l]},r.rgb.hwb=function(e){var t=e[0],n=e[1],i=e[2];return[r.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,i))),100*(i=1-1/255*Math.max(t,Math.max(n,i)))]},r.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},r.rgb.keyword=function(e){var n=t[e];if(n)return n;var r,i,u,o=1/0;for(var s in So)if(So.hasOwnProperty(s)){var a=So[s],l=(i=e,u=a,Math.pow(i[0]-u[0],2)+Math.pow(i[1]-u[1],2)+Math.pow(i[2]-u[2],2));l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},r.rgb.lab=function(e){var t=r.rgb.xyz(e),n=t[0],i=t[1],u=t[2];return i/=100,u/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(u=u>.008856?Math.pow(u,1/3):7.787*u+16/116))]},r.hsl.rgb=function(e){var t,n,r,i,u,o=e[0]/360,s=e[1]/100,a=e[2]/100;if(0===s)return[u=255*a,u,u];t=2*a-(n=a<.5?a*(1+s):a+s-a*s),i=[0,0,0];for(var l=0;l<3;l++)(r=o+1/3*-(l-1))<0&&r++,r>1&&r--,u=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[l]=255*u;return i},r.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,u=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=u<=1?u:2-u,[t,100*(0===r?2*i/(u+i):2*n/(r+n)),100*((r+n)/2)]},r.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,u=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*u),a=255*r*(1-n*(1-u));switch(r*=255,i){case 0:return[r,a,o];case 1:return[s,r,o];case 2:return[o,r,a];case 3:return[o,s,r];case 4:return[a,o,r];case 5:return[r,o,s]}},r.hsv.hsl=function(e){var t,n,r,i=e[0],u=e[1]/100,o=e[2]/100,s=Math.max(o,.01);return r=(2-u)*o,n=u*s,[i,100*(n=(n/=(t=(2-u)*s)<=1?t:2-t)||0),100*(r/=2)]},r.hwb.rgb=function(e){var t,n,r,i,u,o,s,a=e[0]/360,l=e[1]/100,c=e[2]/100,p=l+c;switch(p>1&&(l/=p,c/=p),r=6*a-(t=Math.floor(6*a)),0!=(1&t)&&(r=1-r),i=l+r*((n=1-c)-l),t){default:case 6:case 0:u=n,o=i,s=l;break;case 1:u=i,o=n,s=l;break;case 2:u=l,o=n,s=i;break;case 3:u=l,o=i,s=n;break;case 4:u=i,o=l,s=n;break;case 5:u=n,o=l,s=i}return[255*u,255*o,255*s]},r.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},r.xyz.rgb=function(e){var t,n,r,i=e[0]/100,u=e[1]/100,o=e[2]/100;return n=-.9689*i+1.8758*u+.0415*o,r=.0557*i+-.204*u+1.057*o,t=(t=3.2406*i+-1.5372*u+-.4986*o)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},r.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},r.lab.xyz=function(e){var t,n,r,i=e[0];t=e[1]/500+(n=(i+16)/116),r=n-e[2]/200;var u=Math.pow(n,3),o=Math.pow(t,3),s=Math.pow(r,3);return n=u>.008856?u:(n-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,r=s>.008856?s:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},r.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},r.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},r.rgb.ansi16=function(e){var t=e[0],n=e[1],i=e[2],u=1 in arguments?arguments[1]:r.rgb.hsv(e)[2];if(0===(u=Math.round(u/50)))return 30;var o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===u&&(o+=60),o},r.hsv.ansi16=function(e){return r.rgb.ansi16(r.hsv.rgb(e),e[2])},r.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},r.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},r.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},r.rgb.hex=function(e){var 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},r.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},r.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255,u=Math.max(Math.max(n,r),i),o=Math.min(Math.min(n,r),i),s=u-o;return t=s<=0?0:u===n?(r-i)/s%6:u===r?2+(i-n)/s:4+(n-r)/s+4,t/=6,[360*(t%=1),100*s,100*(s<1?o/(1-s):0)]},r.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},r.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},r.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,u=[0,0,0],o=t%1*6,s=o%1,a=1-s;switch(Math.floor(o)){case 0:u[0]=1,u[1]=s,u[2]=0;break;case 1:u[0]=a,u[1]=1,u[2]=0;break;case 2:u[0]=0,u[1]=1,u[2]=s;break;case 3:u[0]=0,u[1]=a,u[2]=1;break;case 4:u[0]=s,u[1]=0,u[2]=1;break;default:u[0]=1,u[1]=0,u[2]=a}return i=(1-n)*r,[255*(n*u[0]+i),255*(n*u[1]+i),255*(n*u[2]+i)]},r.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},r.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},r.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},r.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},r.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},r.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},r.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},r.gray.hsl=r.gray.hsv=function(e){return[0,0,e[0]]},r.gray.hwb=function(e){return[0,100,e[0]]},r.gray.cmyk=function(e){return[0,0,0,e[0]]},r.gray.lab=function(e){return[e[0],0,0]},r.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function To(e){var t=function(){for(var e={},t=Object.keys(wo),n=t.length,r=0;r1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))}));var Po,Oo=No,Io=i((function(e){const t=(e,t)=>function(){const n=e.apply(Oo,arguments);return`\x1b[${n+t}m`},n=(e,t)=>function(){const n=e.apply(Oo,arguments);return`\x1b[${38+t};5;${n}m`},r=(e,t)=>function(){const n=e.apply(Oo,arguments);return`\x1b[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,i={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],gray:[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]}};i.color.grey=i.color.gray;for(const t of Object.keys(i)){const n=i[t];for(const t of Object.keys(n)){const r=n[t];i[t]={open:`\x1b[${r[0]}m`,close:`\x1b[${r[1]}m`},n[t]=i[t],e.set(r[0],r[1])}Object.defineProperty(i,t,{value:n,enumerable:!1}),Object.defineProperty(i,"codes",{value:e,enumerable:!1})}const u=e=>e,o=(e,t,n)=>[e,t,n];i.color.close="\x1b[39m",i.bgColor.close="\x1b[49m",i.color.ansi={ansi:t(u,0)},i.color.ansi256={ansi256:n(u,0)},i.color.ansi16m={rgb:r(o,0)},i.bgColor.ansi={ansi:t(u,10)},i.bgColor.ansi256={ansi256:n(u,10)},i.bgColor.ansi16m={rgb:r(o,10)};for(let e of Object.keys(Oo)){if("object"!=typeof Oo[e])continue;const u=Oo[e];"ansi16"===e&&(e="ansi"),"ansi16"in u&&(i.color.ansi[e]=t(u.ansi16,0),i.bgColor.ansi[e]=t(u.ansi16,10)),"ansi256"in u&&(i.color.ansi256[e]=n(u.ansi256,0),i.bgColor.ansi256[e]=n(u.ansi256,10)),"rgb"in u&&(i.color.ansi16m[e]=r(u.rgb,0),i.bgColor.ansi16m[e]=r(u.rgb,10))}return i}})}));function jo(){if(void 0===Po){var e=new ArrayBuffer(2),t=new Uint8Array(e),n=new Uint16Array(e);if(t[0]=1,t[1]=2,258===n[0])Po="BE";else{if(513!==n[0])throw new Error("unable to figure out endianess");Po="LE"}}return Po}function Lo(){return void 0!==Kn.location?Kn.location.hostname:""}function _o(){return[]}function Mo(){return 0}function Ro(){return Number.MAX_VALUE}function $o(){return Number.MAX_VALUE}function Vo(){return[]}function qo(){return"Browser"}function Wo(){return void 0!==Kn.navigator?Kn.navigator.appVersion:""}function Uo(){}function zo(){}function Go(){return"javascript"}function Ho(){return"browser"}function Jo(){return"/tmp"}var Xo=Jo,Yo={EOL:"\n",arch:Go,platform:Ho,tmpdir:Xo,tmpDir:Jo,networkInterfaces:Uo,getNetworkInterfaces:zo,release:Wo,type:qo,cpus:Vo,totalmem:$o,freemem:Ro,uptime:Mo,loadavg:_o,hostname:Lo,endianness:jo},Ko=(e,t)=>{t=t||Cr.argv;const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r=2,has16m:e>=3}}(function(e){if(!1===es)return 0;if(Ko("color=16m")||Ko("color=full")||Ko("color=truecolor"))return 3;if(Ko("color=256"))return 2;if(e&&!e.isTTY&&!0!==es)return 0;const t=es?1:0;if("CI"in Zo)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((e=>e in Zo))||"codeship"===Zo.CI_NAME?1:t;if("TEAMCITY_VERSION"in Zo)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Zo.TEAMCITY_VERSION)?1:0;if("truecolor"===Zo.COLORTERM)return 3;if("TERM_PROGRAM"in Zo){const e=parseInt((Zo.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Zo.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Zo.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Zo.TERM)||"COLORTERM"in Zo?1:(Zo.TERM,t)}(e))}Ko("no-color")||Ko("no-colors")||Ko("color=false")?es=!1:(Ko("color")||Ko("colors")||Ko("color=true")||Ko("color=always"))&&(es=!0),"FORCE_COLOR"in Zo&&(es=0===Zo.FORCE_COLOR.length||0!==parseInt(Zo.FORCE_COLOR,10));var ns={supportsColor:ts,stdout:ts(Cr.stdout),stderr:ts(Cr.stderr)};const rs=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,is=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,us=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,os=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,ss=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1b"],["a","\x07"]]);function as(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):ss.get(e)||e}function ls(e,t){const n=[],r=t.trim().split(/\s*,\s*/g);let i;for(const t of r)if(isNaN(t)){if(!(i=t.match(us)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(i[2].replace(os,((e,t,n)=>t?as(t):n)))}else n.push(Number(t));return n}function cs(e){is.lastIndex=0;const t=[];let n;for(;null!==(n=is.exec(e));){const e=n[1];if(n[2]){const r=ls(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function ps(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error(`Unknown Chalk style: ${e}`);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}var fs=(e,t)=>{const n=[],r=[];let i=[];if(t.replace(rs,((t,u,o,s,a,l)=>{if(u)i.push(as(u));else if(s){const t=i.join("");i=[],r.push(0===n.length?t:ps(e,n)(t)),n.push({inverse:o,styles:cs(s)})}else if(a){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");r.push(ps(e,n)(i.join(""))),i=[],n.pop()}else i.push(l)})),r.push(i.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return r.join("")},ds=i((function(e){const t=ns.stdout,n=["ansi","ansi","ansi256","ansi16m"],r=new Set(["gray"]),i=Object.create(null);function u(e,n){n=n||{};const r=t?t.level:0;e.level=void 0===n.level?r:n.level,e.enabled="enabled"in n?n.enabled:e.level>0}function o(e){if(!this||!(this instanceof o)||this.template){const t={};return u(t,e),t.template=function(){const e=[].slice.call(arguments);return c.apply(null,[t.template].concat(e))},Object.setPrototypeOf(t,o.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=o,t.template}u(this,e)}for(const e of Object.keys(Io))Io[e].closeRe=new RegExp(xo(Io[e].close),"g"),i[e]={get(){const t=Io[e];return a.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};i.visible={get(){return a.call(this,this._styles||[],!0,"visible")}},Io.color.closeRe=new RegExp(xo(Io.color.close),"g");for(const e of Object.keys(Io.color.ansi))r.has(e)||(i[e]={get(){const t=this.level;return function(){const r=Io.color[n[t]][e].apply(null,arguments),i={open:r,close:Io.color.close,closeRe:Io.color.closeRe};return a.call(this,this._styles?this._styles.concat(i):[i],this._empty,e)}}});Io.bgColor.closeRe=new RegExp(xo(Io.bgColor.close),"g");for(const e of Object.keys(Io.bgColor.ansi)){if(r.has(e))continue;i["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const t=this.level;return function(){const r=Io.bgColor[n[t]][e].apply(null,arguments),i={open:r,close:Io.bgColor.close,closeRe:Io.bgColor.closeRe};return a.call(this,this._styles?this._styles.concat(i):[i],this._empty,e)}}}}const s=Object.defineProperties((()=>{}),i);function a(e,t,n){const r=function(){return l.apply(r,arguments)};r._styles=e,r._empty=t;const i=this;return Object.defineProperty(r,"level",{enumerable:!0,get:()=>i.level,set(e){i.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>i.enabled,set(e){i.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=s,r}function l(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;r{const r=[`${ds.default.yellow("string"==typeof e?n.key(e):n.pair(e))} is deprecated`];return t&&r.push(`we now treat it as ${ds.default.blue("string"==typeof t?n.key(t):n.pair(t))}`),r.join("; ")+"."}},"__esModule",{value:!0}),gs=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(hs,t)})),ms=Object.defineProperty({commonInvalidHandler:(e,t,n)=>[`Invalid ${ds.default.red(n.descriptor.key(e))} value.`,`Expected ${ds.default.blue(n.schemas[e].expected(n))},`,`but received ${ds.default.red(n.descriptor.value(t))}.`].join(" ")},"__esModule",{value:!0}),ys=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(ms,t)})),Ds=[],Es=[],bs=Object.defineProperty({levenUnknownHandler:(e,t,{descriptor:n,logger:r,schemas:i})=>{const u=[`Ignored unknown option ${ds.default.yellow(n.pair({key:e,value:t}))}.`],o=Object.keys(i).sort().find((t=>function(e,t){if(e===t)return 0;var n=e;e.length>t.length&&(e=t,t=n);var r=e.length,i=t.length;if(0===r)return i;if(0===i)return r;for(;r>0&&e.charCodeAt(~-r)===t.charCodeAt(~-i);)r--,i--;if(0===r)return i;for(var u,o,s,a,l=0;lo?a>o?o+1:a:a>s?s+1:a;return o}(e,t)<3));o&&u.push(`Did you mean ${ds.default.blue(n.key(o))}?`),r.warn(u.join(" "))}},"__esModule",{value:!0}),Cs=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(bs,t)})),vs=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(gs,t),Co.__exportStar(ys,t),Co.__exportStar(Cs,t)}));const As=["default","expected","validate","deprecated","forward","redirect","overlap","preprocess","postprocess"];function Fs(e,t){const n=new e(t),r=Object.create(n);for(const e of As)e in t&&(r[e]=Ts(t[e],n,Ss.prototype[e].length));return r}var xs=Fs;class Ss{constructor(e){this.name=e.name}static create(e){return Fs(this,e)}default(e){}expected(e){return"nothing"}validate(e,t){return!1}deprecated(e,t){return!1}forward(e,t){}redirect(e,t){}overlap(e,t,n){return e}preprocess(e,t){return e}postprocess(e,t){return e}}var ws=Ss;function Ts(e,t,n){return"function"==typeof e?(...r)=>e(...r.slice(0,n-1),t,...r.slice(n-1)):()=>e}var Bs=Object.defineProperty({createSchema:xs,Schema:ws},"__esModule",{value:!0});class ks extends Bs.Schema{constructor(e){super(e),this._sourceName=e.sourceName}expected(e){return e.schemas[this._sourceName].expected(e)}validate(e,t){return t.schemas[this._sourceName].validate(e,t)}redirect(e,t){return this._sourceName}}var Ns=ks,Ps=Object.defineProperty({AliasSchema:Ns},"__esModule",{value:!0});class Os extends Bs.Schema{expected(){return"anything"}validate(){return!0}}var Is=Os,js=Object.defineProperty({AnySchema:Is},"__esModule",{value:!0});class Ls extends Bs.Schema{constructor(e){var{valueSchema:t,name:n=t.name}=e,r=Co.__rest(e,["valueSchema","name"]);super(Object.assign({},r,{name:n})),this._valueSchema=t}expected(e){return`an array of ${this._valueSchema.expected(e)}`}validate(e,t){if(!Array.isArray(e))return!1;const n=[];for(const r of e){const e=t.normalizeValidateResult(this._valueSchema.validate(r,t),r);!0!==e&&n.push(e.value)}return 0===n.length||{value:n}}deprecated(e,t){const n=[];for(const r of e){const e=t.normalizeDeprecatedResult(this._valueSchema.deprecated(r,t),r);!1!==e&&n.push(...e.map((({value:e})=>({value:[e]}))))}return n}forward(e,t){const n=[];for(const r of e){const e=t.normalizeForwardResult(this._valueSchema.forward(r,t),r);n.push(...e.map(Ms))}return n}redirect(e,t){const n=[],r=[];for(const i of e){const e=t.normalizeRedirectResult(this._valueSchema.redirect(i,t),i);"remain"in e&&n.push(e.remain),r.push(...e.redirect.map(Ms))}return 0===n.length?{redirect:r}:{redirect:r,remain:n}}overlap(e,t){return e.concat(t)}}var _s=Ls;function Ms({from:e,to:t}){return{from:[e],to:t}}var Rs=Object.defineProperty({ArraySchema:_s},"__esModule",{value:!0});class $s extends Bs.Schema{expected(){return"true or false"}validate(e){return"boolean"==typeof e}}var Vs=$s,qs=Object.defineProperty({BooleanSchema:Vs},"__esModule",{value:!0});var Ws=function(e,t){const n=Object.create(null);for(const r of e){const e=r[t];if(n[e])throw new Error(`Duplicate ${t} ${JSON.stringify(e)}`);n[e]=r}return n};var Us=function(e,t){const n=new Map;for(const r of e){const e=r[t];if(n.has(e))throw new Error(`Duplicate ${t} ${JSON.stringify(e)}`);n.set(e,r)}return n};var zs=function(){const e=Object.create(null);return t=>{const n=JSON.stringify(t);return!!e[n]||(e[n]=!0,!1)}};var Gs=function(e,t){const n=[],r=[];for(const i of e)t(i)?n.push(i):r.push(i);return[n,r]};var Hs=function(e){return e===Math.floor(e)};var Js=function(e,t){if(e===t)return 0;const n=typeof e,r=typeof t,i=["undefined","object","boolean","number","string"];return n!==r?i.indexOf(n)-i.indexOf(r):"string"!==n?Number(e)-Number(t):e.localeCompare(t)};var Xs=function(e){return void 0===e?{}:e};var Ys=function(e,t){return!0===e||(!1===e?{value:t}:e)};var Ks=function(e,t,n=!1){return!1!==e&&(!0===e?!!n||[{value:t}]:"value"in e?[e]:0!==e.length&&e)};function Qs(e,t){return"string"==typeof e||"key"in e?{from:t,to:e}:"from"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}var Zs=Qs;function ea(e,t){return void 0===e?[]:Array.isArray(e)?e.map((e=>Qs(e,t))):[Qs(e,t)]}var ta=ea;var na=function(e,t){const n=ea("object"==typeof e&&"redirect"in e?e.redirect:e,t);return 0===n.length?{remain:t,redirect:n}:"object"==typeof e&&"remain"in e?{remain:e.remain,redirect:n}:{redirect:n}},ra=Object.defineProperty({recordFromArray:Ws,mapFromArray:Us,createAutoChecklist:zs,partition:Gs,isInt:Hs,comparePrimitive:Js,normalizeDefaultResult:Xs,normalizeValidateResult:Ys,normalizeDeprecatedResult:Ks,normalizeTransferResult:Zs,normalizeForwardResult:ta,normalizeRedirectResult:na},"__esModule",{value:!0});class ia extends Bs.Schema{constructor(e){super(e),this._choices=ra.mapFromArray(e.choices.map((e=>e&&"object"==typeof e?e:{value:e})),"value")}expected({descriptor:e}){const t=Array.from(this._choices.keys()).map((e=>this._choices.get(e))).filter((e=>!e.deprecated)).map((e=>e.value)).sort(ra.comparePrimitive).map(e.value),n=t.slice(0,-2),r=t.slice(-2);return n.concat(r.join(" or ")).join(", ")}validate(e){return this._choices.has(e)}deprecated(e){const t=this._choices.get(e);return!(!t||!t.deprecated)&&{value:e}}forward(e){const t=this._choices.get(e);return t?t.forward:void 0}redirect(e){const t=this._choices.get(e);return t?t.redirect:void 0}}var ua=ia,oa=Object.defineProperty({ChoiceSchema:ua},"__esModule",{value:!0});class sa extends Bs.Schema{expected(){return"a number"}validate(e,t){return"number"==typeof e}}var aa=sa,la=Object.defineProperty({NumberSchema:aa},"__esModule",{value:!0});class ca extends la.NumberSchema{expected(){return"an integer"}validate(e,t){return!0===t.normalizeValidateResult(super.validate(e,t),e)&&ra.isInt(e)}}var pa=ca,fa=Object.defineProperty({IntegerSchema:pa},"__esModule",{value:!0});class da extends Bs.Schema{expected(){return"a string"}validate(e){return"string"==typeof e}}var ha=da,ga=Object.defineProperty({StringSchema:ha},"__esModule",{value:!0}),ma=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(Ps,t),Co.__exportStar(js,t),Co.__exportStar(Rs,t),Co.__exportStar(qs,t),Co.__exportStar(oa,t),Co.__exportStar(fa,t),Co.__exportStar(la,t),Co.__exportStar(ga,t)})),ya=vo.apiDescriptor,Da=bs.levenUnknownHandler,Ea=ys.commonInvalidHandler,ba=hs.commonDeprecatedHandler,Ca=Object.defineProperty({defaultDescriptor:ya,defaultUnknownHandler:Da,defaultInvalidHandler:Ea,defaultDeprecatedHandler:ba},"__esModule",{value:!0});class va{constructor(e,t){const{logger:n=console,descriptor:r=Ca.defaultDescriptor,unknown:i=Ca.defaultUnknownHandler,invalid:u=Ca.defaultInvalidHandler,deprecated:o=Ca.defaultDeprecatedHandler}=t||{};this._utils={descriptor:r,logger:n||{warn:()=>{}},schemas:ra.recordFromArray(e,"name"),normalizeDefaultResult:ra.normalizeDefaultResult,normalizeDeprecatedResult:ra.normalizeDeprecatedResult,normalizeForwardResult:ra.normalizeForwardResult,normalizeRedirectResult:ra.normalizeRedirectResult,normalizeValidateResult:ra.normalizeValidateResult},this._unknownHandler=i,this._invalidHandler=u,this._deprecatedHandler=o,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=ra.createAutoChecklist()}normalize(e){const t={},n=[e],r=()=>{for(;0!==n.length;){const e=n.shift(),r=this._applyNormalization(e,t);n.push(...r)}};r();for(const e of Object.keys(this._utils.schemas)){const r=this._utils.schemas[e];if(!(e in t)){const t=ra.normalizeDefaultResult(r.default(this._utils));"value"in t&&n.push({[e]:t.value})}}r();for(const e of Object.keys(this._utils.schemas)){const n=this._utils.schemas[e];e in t&&(t[e]=n.postprocess(t[e],this._utils))}return t}_applyNormalization(e,t){const n=[],[r,i]=ra.partition(Object.keys(e),(e=>e in this._utils.schemas));for(const i of r){const r=this._utils.schemas[i],u=r.preprocess(e[i],this._utils),o=ra.normalizeValidateResult(r.validate(u,this._utils),u);if(!0!==o){const{value:e}=o,t=this._invalidHandler(i,e,this._utils);throw"string"==typeof t?new Error(t):t}const s=({from:e,to:t})=>{n.push("string"==typeof t?{[t]:e}:{[t.key]:t.value})},a=({value:e,redirectTo:t})=>{const n=ra.normalizeDeprecatedResult(r.deprecated(e,this._utils),u,!0);if(!1!==n)if(!0===n)this._hasDeprecationWarned(i)||this._utils.logger.warn(this._deprecatedHandler(i,t,this._utils));else for(const{value:e}of n){const n={key:i,value:e};if(!this._hasDeprecationWarned(n)){const r="string"==typeof t?{key:t,value:e}:t;this._utils.logger.warn(this._deprecatedHandler(n,r,this._utils))}}};ra.normalizeForwardResult(r.forward(u,this._utils),u).forEach(s);const l=ra.normalizeRedirectResult(r.redirect(u,this._utils),u);if(l.redirect.forEach(s),"remain"in l){const e=l.remain;t[i]=i in t?r.overlap(t[i],e,this._utils):e,a({value:e})}for(const{from:e,to:t}of l.redirect)a({value:e,redirectTo:t})}for(const r of i){const i=e[r],u=this._unknownHandler(r,i,this._utils);if(u)for(const e of Object.keys(u)){const r={[e]:u[e]};e in this._utils.schemas?n.push(r):Object.assign(t,r)}}return n}}var Aa=va,Fa=Object.defineProperty({normalize:(e,t,n)=>new va(t,n).normalize(e),Normalizer:Aa},"__esModule",{value:!0}),xa=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Co.__exportStar(Ao,t),Co.__exportStar(vs,t),Co.__exportStar(ma,t),Co.__exportStar(Fa,t),Co.__exportStar(Bs,t)}));const Sa=[],wa=[],Ta=(e,t)=>{if(e===t)return 0;const n=e;e.length>t.length&&(e=t,t=n);let r=e.length,i=t.length;for(;r>0&&e.charCodeAt(~-r)===t.charCodeAt(~-i);)r--,i--;let u,o,s,a,l=0;for(;lo?a>o?o+1:a:a>s?s+1:a;return o};var Ba=Ta,ka=Ta;Ba.default=ka;var Na={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]};const Pa={};for(const e of Object.keys(Na))Pa[Na[e]]=e;const Oa={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"]}};var Ia=Oa;for(const e of Object.keys(Oa)){if(!("channels"in Oa[e]))throw new Error("missing channels property: "+e);if(!("labels"in Oa[e]))throw new Error("missing channel labels property: "+e);if(Oa[e].labels.length!==Oa[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:n}=Oa[e];delete Oa[e].channels,delete Oa[e].labels,Object.defineProperty(Oa[e],"channels",{value:t}),Object.defineProperty(Oa[e],"labels",{value:n})}function ja(e){const t=function(){const e={},t=Object.keys(Ia);for(let n=t.length,r=0;r1&&(i-=1)),[360*i,100*u,100*l]},Oa.rgb.hwb=function(e){const t=e[0],n=e[1];let r=e[2];const i=Oa.rgb.hsl(e)[0],u=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[i,100*u,100*r]},Oa.rgb.cmyk=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r);return[100*((1-t-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*i]},Oa.rgb.keyword=function(e){const t=Pa[e];if(t)return t;let n,r=1/0;for(const t of Object.keys(Na)){const o=(u=Na[t],((i=e)[0]-u[0])**2+(i[1]-u[1])**2+(i[2]-u[2])**2);o.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;return[100*(.4124*t+.3576*n+.1805*r),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},Oa.rgb.lab=function(e){const t=Oa.rgb.xyz(e);let n=t[0],r=t[1],i=t[2];n/=95.047,r/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*r-16,500*(n-r),200*(r-i)]},Oa.hsl.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;let i,u,o;if(0===n)return o=255*r,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;const s=2*r-i,a=[0,0,0];for(let e=0;e<3;e++)u=t+1/3*-(e-1),u<0&&u++,u>1&&u--,o=6*u<1?s+6*(i-s)*u:2*u<1?i:3*u<2?s+(i-s)*(2/3-u)*6:s,a[e]=255*o;return a},Oa.hsl.hsv=function(e){const t=e[0];let n=e[1]/100,r=e[2]/100,i=n;const u=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=u<=1?u:2-u;return[t,100*(0===r?2*i/(u+i):2*n/(r+n)),100*((r+n)/2)]},Oa.hsv.rgb=function(e){const t=e[0]/60,n=e[1]/100;let r=e[2]/100;const i=Math.floor(t)%6,u=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*u),a=255*r*(1-n*(1-u));switch(r*=255,i){case 0:return[r,a,o];case 1:return[s,r,o];case 2:return[o,r,a];case 3:return[o,s,r];case 4:return[a,o,r];case 5:return[r,o,s]}},Oa.hsv.hsl=function(e){const t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01);let u,o;o=(2-n)*r;const s=(2-n)*i;return u=n*i,u/=s<=1?s:2-s,u=u||0,o/=2,[t,100*u,100*o]},Oa.hwb.rgb=function(e){const t=e[0]/360;let n=e[1]/100,r=e[2]/100;const i=n+r;let u;i>1&&(n/=i,r/=i);const o=Math.floor(6*t),s=1-r;u=6*t-o,0!=(1&o)&&(u=1-u);const a=n+u*(s-n);let l,c,p;switch(o){default:case 6:case 0:l=s,c=a,p=n;break;case 1:l=a,c=s,p=n;break;case 2:l=n,c=s,p=a;break;case 3:l=n,c=a,p=s;break;case 4:l=a,c=n,p=s;break;case 5:l=s,c=n,p=a}return[255*l,255*c,255*p]},Oa.cmyk.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},Oa.xyz.rgb=function(e){const t=e[0]/100,n=e[1]/100,r=e[2]/100;let i,u,o;return i=3.2406*t+-1.5372*n+-.4986*r,u=-.9689*t+1.8758*n+.0415*r,o=.0557*t+-.204*n+1.057*r,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,i=Math.min(Math.max(0,i),1),u=Math.min(Math.max(0,u),1),o=Math.min(Math.max(0,o),1),[255*i,255*u,255*o]},Oa.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116;return[116*n-16,500*(t-n),200*(n-r)]},Oa.lab.xyz=function(e){let t,n,r;n=(e[0]+16)/116,t=e[1]/500+n,r=n-e[2]/200;const i=n**3,u=t**3,o=r**3;return n=i>.008856?i:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=o>.008856?o:(r-16/116)/7.787,t*=95.047,n*=100,r*=108.883,[t,n,r]},Oa.lab.lch=function(e){const t=e[0],n=e[1],r=e[2];let i;i=360*Math.atan2(r,n)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(n*n+r*r),i]},Oa.lch.lab=function(e){const t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},Oa.rgb.ansi16=function(e,t=null){const[n,r,i]=e;let u=null===t?Oa.rgb.hsv(e)[2]:t;if(u=Math.round(u/50),0===u)return 30;let o=30+(Math.round(i/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return 2===u&&(o+=60),o},Oa.hsv.ansi16=function(e){return Oa.rgb.ansi16(Oa.hsv.rgb(e),e[2])},Oa.rgb.ansi256=function(e){const t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},Oa.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,t];const n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},Oa.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},Oa.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},Oa.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 n=t[0];3===t[0].length&&(n=n.split("").map((e=>e+e)).join(""));const r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},Oa.rgb.hcg=function(e){const t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),u=Math.min(Math.min(t,n),r),o=i-u;let s,a;return s=o<1?u/(1-o):0,a=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,a/=6,a%=1,[360*a,100*o,100*s]},Oa.hsl.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n);let i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},Oa.hsv.hcg=function(e){const t=e[1]/100,n=e[2]/100,r=t*n;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},Oa.hcg.rgb=function(e){const t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];const i=[0,0,0],u=t%1*6,o=u%1,s=1-o;let a=0;switch(Math.floor(u)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return a=(1-n)*r,[255*(n*i[0]+a),255*(n*i[1]+a),255*(n*i[2]+a)]},Oa.hcg.hsv=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);let r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},Oa.hcg.hsl=function(e){const t=e[1]/100,n=e[2]/100*(1-t)+.5*t;let r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},Oa.hcg.hwb=function(e){const t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},Oa.hwb.hcg=function(e){const t=e[1]/100,n=1-e[2]/100,r=n-t;let i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},Oa.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},Oa.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},Oa.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},Oa.gray.hsl=function(e){return[0,0,e[0]]},Oa.gray.hsv=Oa.gray.hsl,Oa.gray.hwb=function(e){return[0,100,e[0]]},Oa.gray.cmyk=function(e){return[0,0,0,e[0]]},Oa.gray.lab=function(e){return[e[0],0,0]},Oa.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},Oa.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};const Ma={};Object.keys(Ia).forEach((e=>{Ma[e]={},Object.defineProperty(Ma[e],"channels",{value:Ia[e].channels}),Object.defineProperty(Ma[e],"labels",{value:Ia[e].labels});const t=function(e){const t=ja(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i{const r=t[n];Ma[e][n]=function(e){const t=function(...t){const n=t[0];if(null==n)return n;n.length>1&&(t=n);const r=e(t);if("object"==typeof r)for(let e=r.length,t=0;t1&&(t=n),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))}));var Ra=Ma,$a=i((function(e){const t=(e,t)=>(...n)=>`\x1b[${e(...n)+t}m`,n=(e,t)=>(...n)=>{const r=e(...n);return`\x1b[${38+t};5;${r}m`},r=(e,t)=>(...n)=>{const r=e(...n);return`\x1b[${38+t};2;${r[0]};${r[1]};${r[2]}m`},i=e=>e,u=(e,t,n)=>[e,t,n],o=(e,t,n)=>{Object.defineProperty(e,t,{get:()=>{const r=n();return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0}),r},enumerable:!0,configurable:!0})};let s;const a=(e,t,n,r)=>{void 0===s&&(s=Ra);const i=r?10:0,u={};for(const[r,o]of Object.entries(s)){const s="ansi16"===r?"ansi":r;r===t?u[s]=e(n,i):"object"==typeof o&&(u[s]=e(o[t],i))}return u};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,s={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]}};s.color.gray=s.color.blackBright,s.bgColor.bgGray=s.bgColor.bgBlackBright,s.color.grey=s.color.blackBright,s.bgColor.bgGrey=s.bgColor.bgBlackBright;for(const[t,n]of Object.entries(s)){for(const[t,r]of Object.entries(n))s[t]={open:`\x1b[${r[0]}m`,close:`\x1b[${r[1]}m`},n[t]=s[t],e.set(r[0],r[1]);Object.defineProperty(s,t,{value:n,enumerable:!1})}return Object.defineProperty(s,"codes",{value:e,enumerable:!1}),s.color.close="\x1b[39m",s.bgColor.close="\x1b[49m",o(s.color,"ansi",(()=>a(t,"ansi16",i,!1))),o(s.color,"ansi256",(()=>a(n,"ansi256",i,!1))),o(s.color,"ansi16m",(()=>a(r,"rgb",u,!1))),o(s.bgColor,"ansi",(()=>a(t,"ansi16",i,!0))),o(s.bgColor,"ansi256",(()=>a(n,"ansi256",i,!0))),o(s.bgColor,"ansi16m",(()=>a(r,"rgb",u,!0))),s}})}));function Va(){return!1}function qa(){throw new Error("tty.ReadStream is not implemented")}function Wa(){throw new Error("tty.ReadStream is not implemented")}var Ua={isatty:Va,ReadStream:qa,WriteStream:Wa},za=(e,t=Cr.argv)=>{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r=2,has16m:e>=3}}function Ya(e,t){if(0===Ja)return 0;if(za("color=16m")||za("color=full")||za("color=truecolor"))return 3;if(za("color=256"))return 2;if(e&&!t&&void 0===Ja)return 0;const n=Ja||0;if("dumb"===Ha.TERM)return n;if("CI"in Ha)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in Ha))||"codeship"===Ha.CI_NAME?1:n;if("TEAMCITY_VERSION"in Ha)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ha.TEAMCITY_VERSION)?1:0;if("truecolor"===Ha.COLORTERM)return 3;if("TERM_PROGRAM"in Ha){const e=parseInt((Ha.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ha.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ha.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ha.TERM)||"COLORTERM"in Ha?1:n}za("no-color")||za("no-colors")||za("color=false")||za("color=never")?Ja=0:(za("color")||za("colors")||za("color=true")||za("color=always"))&&(Ja=1),"FORCE_COLOR"in Ha&&(Ja="true"===Ha.FORCE_COLOR?1:"false"===Ha.FORCE_COLOR?0:0===Ha.FORCE_COLOR.length?1:Math.min(parseInt(Ha.FORCE_COLOR,10),3));var Ka={supportsColor:function(e){return Xa(Ya(e,e&&e.isTTY))},stdout:Xa(Ya(!0,Ga.isatty(1))),stderr:Xa(Ya(!0,Ga.isatty(2)))};var Qa={stringReplaceAll:(e,t,n)=>{let r=e.indexOf(t);if(-1===r)return e;const i=t.length;let u=0,o="";do{o+=e.substr(u,r-u)+t+n,u=r+i,r=e.indexOf(t,u)}while(-1!==r);return o+=e.substr(u),o},stringEncaseCRLFWithFirstIndex:(e,t,n,r)=>{let i=0,u="";do{const o="\r"===e[r-1];u+=e.substr(i,(o?r-1:r)-i)+t+(o?"\r\n":"\n")+n,i=r+1,r=e.indexOf("\n",i)}while(-1!==r);return u+=e.substr(i),u}};const Za=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,el=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,tl=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,nl=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,rl=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1b"],["a","\x07"]]);function il(e){const t="u"===e[0],n="{"===e[1];return t&&!n&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&n?String.fromCodePoint(parseInt(e.slice(2,-1),16)):rl.get(e)||e}function ul(e,t){const n=[],r=t.trim().split(/\s*,\s*/g);let i;for(const t of r){const r=Number(t);if(Number.isNaN(r)){if(!(i=t.match(tl)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(i[2].replace(nl,((e,t,n)=>t?il(t):n)))}else n.push(r)}return n}function ol(e){el.lastIndex=0;const t=[];let n;for(;null!==(n=el.exec(e));){const e=n[1];if(n[2]){const r=ul(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function sl(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const[e,t]of Object.entries(n))if(Array.isArray(t)){if(!(e in r))throw new Error(`Unknown Chalk style: ${e}`);r=t.length>0?r[e](...t):r[e]}return r}var al=(e,t)=>{const n=[],r=[];let i=[];if(t.replace(Za,((t,u,o,s,a,l)=>{if(u)i.push(il(u));else if(s){const t=i.join("");i=[],r.push(0===n.length?t:sl(e,n)(t)),n.push({inverse:o,styles:ol(s)})}else if(a){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");r.push(sl(e,n)(i.join(""))),i=[],n.pop()}else i.push(l)})),r.push(i.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return r.join("")};const{stdout:ll,stderr:cl}=Ka,{stringReplaceAll:pl,stringEncaseCRLFWithFirstIndex:fl}=Qa,{isArray:dl}=Array,hl=["ansi","ansi","ansi256","ansi16m"],gl=Object.create(null);class ml{constructor(e){return yl(e)}}const yl=e=>{const t={};return((e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const n=ll?ll.level:0;e.level=void 0===t.level?n:t.level})(t,e),t.template=(...e)=>xl(t.template,...e),Object.setPrototypeOf(t,Dl.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=ml,t.template};function Dl(e){return yl(e)}for(const[e,t]of Object.entries($a))gl[e]={get(){const n=vl(this,Cl(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:n}),n}};gl.visible={get(){const e=vl(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const El=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of El)gl[e]={get(){const{level:t}=this;return function(...n){const r=Cl($a.color[hl[t]][e](...n),$a.color.close,this._styler);return vl(this,r,this._isEmpty)}}};for(const e of El){gl["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...n){const r=Cl($a.bgColor[hl[t]][e](...n),$a.bgColor.close,this._styler);return vl(this,r,this._isEmpty)}}}}const bl=Object.defineProperties((()=>{}),Object.assign(Object.assign({},gl),{},{level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}})),Cl=(e,t,n)=>{let r,i;return void 0===n?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},vl=(e,t,n)=>{const r=(...e)=>dl(e[0])&&dl(e[0].raw)?Al(r,xl(r,...e)):Al(r,1===e.length?""+e[0]:e.join(" "));return Object.setPrototypeOf(r,bl),r._generator=e,r._styler=t,r._isEmpty=n,r},Al=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let n=e._styler;if(void 0===n)return t;const{openAll:r,closeAll:i}=n;if(-1!==t.indexOf("\x1b"))for(;void 0!==n;)t=pl(t,n.close,n.open),n=n.parent;const u=t.indexOf("\n");return-1!==u&&(t=fl(t,i,r,u)),r+t+i};let Fl;const xl=(e,...t)=>{const[n]=t;if(!dl(n)||!dl(n.raw))return t.join(" ");const r=t.slice(1),i=[n.raw[0]];for(let e=1;e1===e.length?`-${e}`:`--${e}`,value:e=>xa.apiDescriptor.value(e),pair:({key:e,value:t})=>!1===t?`--no-${e}`:!0===t?Bl.key(e):""===t?`${Bl.key(e)} without an argument`:`${Bl.key(e)}=${t}`};class kl extends xa.ChoiceSchema{constructor({name:e,flags:t}){super({name:e,choices:t}),this._flags=[...t].sort()}preprocess(e,t){if("string"==typeof e&&e.length>0&&!this._flags.includes(e)){const n=this._flags.find((t=>Ba(t,e)<3));if(n)return t.logger.warn([`Unknown flag ${wl.yellow(t.descriptor.value(e))},`,`did you mean ${wl.blue(t.descriptor.value(n))}?`].join(" ")),n}return e}expected(){return"a flag"}}let Nl;function Pl(t,n,{logger:r,isCLI:i=!1,passThrough:u=!1}={}){const o=u?Array.isArray(u)?(e,t)=>u.includes(e)?{[e]:t}:void 0:(e,t)=>({[e]:t}):(t,n,r)=>{const i=e(r.schemas,Tl);return xa.levenUnknownHandler(t,n,Object.assign(Object.assign({},r),{},{schemas:i}))},s=i?Bl:xa.apiDescriptor,a=function(e,{isCLI:t}){const n=[];t&&n.push(xa.AnySchema.create({name:"_"}));for(const r of e)n.push(Ol(r,{isCLI:t,optionInfos:e})),r.alias&&t&&n.push(xa.AliasSchema.create({name:r.alias,sourceName:r.name}));return n}(n,{isCLI:i}),l=new xa.Normalizer(a,{logger:r,unknown:o,descriptor:s}),c=!1!==r;c&&Nl&&(l._hasDeprecationWarned=Nl);const p=l.normalize(t);return c&&(Nl=l._hasDeprecationWarned),p}function Ol(e,{isCLI:t,optionInfos:n}){let r;const i={name:e.name},u={};switch(e.type){case"int":r=xa.IntegerSchema,t&&(i.preprocess=e=>Number(e));break;case"string":r=xa.StringSchema;break;case"choice":r=xa.ChoiceSchema,i.choices=e.choices.map((t=>"object"==typeof t&&t.redirect?Object.assign(Object.assign({},t),{},{redirect:{to:{key:e.name,value:t.redirect}}}):t));break;case"boolean":r=xa.BooleanSchema;break;case"flag":r=kl,i.flags=n.flatMap((e=>[e.alias,e.description&&e.name,e.oppositeDescription&&`no-${e.name}`].filter(Boolean)));break;case"path":r=xa.StringSchema;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?i.validate=(t,n,r)=>e.exception(t)||n.validate(t,r):i.validate=(e,t,n)=>void 0===e||t.validate(e,n),e.redirect&&(u.redirect=t=>t?{to:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(u.deprecated=!0),t&&!e.array){const e=i.preprocess||(e=>e);i.preprocess=(t,n,r)=>n.preprocess(e(Array.isArray(t)?Sn(t):t),r)}return e.array?xa.ArraySchema.create(Object.assign(Object.assign(Object.assign({},t?{preprocess:e=>Array.isArray(e)?e:[e]}:{}),u),{},{valueSchema:r.create(i)})):r.create(Object.assign(Object.assign({},i),u))}var Il={normalizeApiOptions:function(e,t,n){return Pl(e,t,n)},normalizeCliOptions:function(e,t,n){return Pl(e,t,Object.assign({isCLI:!0},n))}};const{isNonEmptyArray:jl}=fi;function Ll(e,t){const{ignoreDecorators:n}=t||{};if(!n){const t=e.declaration&&e.declaration.decorators||e.decorators;if(jl(t))return Ll(t[0])}return e.range?e.range[0]:e.start}function _l(e){return e.range?e.range[1]:e.end}function Ml(e,t){return Ll(e)===Ll(t)}var Rl={locStart:Ll,locEnd:_l,hasSameLocStart:Ml,hasSameLoc:function(e,t){return Ml(e,t)&&function(e,t){return _l(e)===_l(t)}(e,t)}},$l=Object.defineProperty({default:/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,matchToToken:function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},"__esModule",{value:!0}),Vl=Kl,ql=Ql,Wl=function(e){let t=!0;for(let n=0;ne)return!1;if(n+=t[r+1],n>=e)return!0}return!1}function Kl(e){return e<65?36===e:e<=90||(e<97?95===e:e<=122||(e<=65535?e>=170&&Gl.test(String.fromCharCode(e)):Yl(e,Jl)))}function Ql(e){return e<48?36===e:e<58||!(e<65)&&(e<=90||(e<97?95===e:e<=122||(e<=65535?e>=170&&Hl.test(String.fromCharCode(e)):Yl(e,Jl)||Yl(e,Xl))))}var Zl=Object.defineProperty({isIdentifierStart:Vl,isIdentifierChar:ql,isIdentifierName:Wl},"__esModule",{value:!0}),ec=cc,tc=pc,nc=fc,rc=function(e,t){return pc(e,t)||fc(e)},ic=function(e){return sc.has(e)};const uc=["implements","interface","let","package","private","protected","public","static","yield"],oc=["eval","arguments"],sc=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"]),ac=new Set(uc),lc=new Set(oc);function cc(e,t){return t&&"await"===e||"enum"===e}function pc(e,t){return cc(e,t)||ac.has(e)}function fc(e){return lc.has(e)}var dc=Object.defineProperty({isReservedWord:ec,isStrictReservedWord:tc,isStrictBindOnlyReservedWord:nc,isStrictBindReservedWord:rc,isKeyword:ic},"__esModule",{value:!0}),hc=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isIdentifierName",{enumerable:!0,get:function(){return Zl.isIdentifierName}}),Object.defineProperty(t,"isIdentifierChar",{enumerable:!0,get:function(){return Zl.isIdentifierChar}}),Object.defineProperty(t,"isIdentifierStart",{enumerable:!0,get:function(){return Zl.isIdentifierStart}}),Object.defineProperty(t,"isReservedWord",{enumerable:!0,get:function(){return dc.isReservedWord}}),Object.defineProperty(t,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return dc.isStrictBindOnlyReservedWord}}),Object.defineProperty(t,"isStrictBindReservedWord",{enumerable:!0,get:function(){return dc.isStrictBindReservedWord}}),Object.defineProperty(t,"isStrictReservedWord",{enumerable:!0,get:function(){return dc.isStrictReservedWord}}),Object.defineProperty(t,"isKeyword",{enumerable:!0,get:function(){return dc.isKeyword}})})),gc=/[|\\{}()[\]^$+*?.]/g,mc=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(gc,"\\$&")},yc={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]},Dc=i((function(e){var t={};for(var n in yc)yc.hasOwnProperty(n)&&(t[yc[n]]=n);var r=e.exports={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"]}};for(var i in r)if(r.hasOwnProperty(i)){if(!("channels"in r[i]))throw new Error("missing channels property: "+i);if(!("labels"in r[i]))throw new Error("missing channel labels property: "+i);if(r[i].labels.length!==r[i].channels)throw new Error("channel and label counts mismatch: "+i);var u=r[i].channels,o=r[i].labels;delete r[i].channels,delete r[i].labels,Object.defineProperty(r[i],"channels",{value:u}),Object.defineProperty(r[i],"labels",{value:o})}r.rgb.hsl=function(e){var t,n,r=e[0]/255,i=e[1]/255,u=e[2]/255,o=Math.min(r,i,u),s=Math.max(r,i,u),a=s-o;return s===o?t=0:r===s?t=(i-u)/a:i===s?t=2+(u-r)/a:u===s&&(t=4+(r-i)/a),(t=Math.min(60*t,360))<0&&(t+=360),n=(o+s)/2,[t,100*(s===o?0:n<=.5?a/(s+o):a/(2-s-o)),100*n]},r.rgb.hsv=function(e){var t,n,r,i,u,o=e[0]/255,s=e[1]/255,a=e[2]/255,l=Math.max(o,s,a),c=l-Math.min(o,s,a),p=function(e){return(l-e)/6/c+.5};return 0===c?i=u=0:(u=c/l,t=p(o),n=p(s),r=p(a),o===l?i=r-n:s===l?i=1/3+t-r:a===l&&(i=2/3+n-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*u,100*l]},r.rgb.hwb=function(e){var t=e[0],n=e[1],i=e[2];return[r.rgb.hsl(e)[0],100*(1/255*Math.min(t,Math.min(n,i))),100*(i=1-1/255*Math.max(t,Math.max(n,i)))]},r.rgb.cmyk=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-r,1-i)))/(1-t)||0),100*((1-r-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},r.rgb.keyword=function(e){var n=t[e];if(n)return n;var r,i,u,o=1/0;for(var s in yc)if(yc.hasOwnProperty(s)){var a=yc[s],l=(i=e,u=a,Math.pow(i[0]-u[0],2)+Math.pow(i[1]-u[1],2)+Math.pow(i[2]-u[2],2));l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*t+.7152*n+.0722*r),100*(.0193*t+.1192*n+.9505*r)]},r.rgb.lab=function(e){var t=r.rgb.xyz(e),n=t[0],i=t[1],u=t[2];return i/=100,u/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(u=u>.008856?Math.pow(u,1/3):7.787*u+16/116))]},r.hsl.rgb=function(e){var t,n,r,i,u,o=e[0]/360,s=e[1]/100,a=e[2]/100;if(0===s)return[u=255*a,u,u];t=2*a-(n=a<.5?a*(1+s):a+s-a*s),i=[0,0,0];for(var l=0;l<3;l++)(r=o+1/3*-(l-1))<0&&r++,r>1&&r--,u=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[l]=255*u;return i},r.hsl.hsv=function(e){var t=e[0],n=e[1]/100,r=e[2]/100,i=n,u=Math.max(r,.01);return n*=(r*=2)<=1?r:2-r,i*=u<=1?u:2-u,[t,100*(0===r?2*i/(u+i):2*n/(r+n)),100*((r+n)/2)]},r.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,u=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*u),a=255*r*(1-n*(1-u));switch(r*=255,i){case 0:return[r,a,o];case 1:return[s,r,o];case 2:return[o,r,a];case 3:return[o,s,r];case 4:return[a,o,r];case 5:return[r,o,s]}},r.hsv.hsl=function(e){var t,n,r,i=e[0],u=e[1]/100,o=e[2]/100,s=Math.max(o,.01);return r=(2-u)*o,n=u*s,[i,100*(n=(n/=(t=(2-u)*s)<=1?t:2-t)||0),100*(r/=2)]},r.hwb.rgb=function(e){var t,n,r,i,u,o,s,a=e[0]/360,l=e[1]/100,c=e[2]/100,p=l+c;switch(p>1&&(l/=p,c/=p),r=6*a-(t=Math.floor(6*a)),0!=(1&t)&&(r=1-r),i=l+r*((n=1-c)-l),t){default:case 6:case 0:u=n,o=i,s=l;break;case 1:u=i,o=n,s=l;break;case 2:u=l,o=n,s=i;break;case 3:u=l,o=i,s=n;break;case 4:u=i,o=l,s=n;break;case 5:u=n,o=l,s=i}return[255*u,255*o,255*s]},r.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},r.xyz.rgb=function(e){var t,n,r,i=e[0]/100,u=e[1]/100,o=e[2]/100;return n=-.9689*i+1.8758*u+.0415*o,r=.0557*i+-.204*u+1.057*o,t=(t=3.2406*i+-1.5372*u+-.4986*o)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(r=Math.min(Math.max(0,r),1))]},r.xyz.lab=function(e){var t=e[0],n=e[1],r=e[2];return n/=100,r/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},r.lab.xyz=function(e){var t,n,r,i=e[0];t=e[1]/500+(n=(i+16)/116),r=n-e[2]/200;var u=Math.pow(n,3),o=Math.pow(t,3),s=Math.pow(r,3);return n=u>.008856?u:(n-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,r=s>.008856?s:(r-16/116)/7.787,[t*=95.047,n*=100,r*=108.883]},r.lab.lch=function(e){var t,n=e[0],r=e[1],i=e[2];return(t=360*Math.atan2(i,r)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(r*r+i*i),t]},r.lch.lab=function(e){var t,n=e[0],r=e[1];return t=e[2]/360*2*Math.PI,[n,r*Math.cos(t),r*Math.sin(t)]},r.rgb.ansi16=function(e){var t=e[0],n=e[1],i=e[2],u=1 in arguments?arguments[1]:r.rgb.hsv(e)[2];if(0===(u=Math.round(u/50)))return 30;var o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===u&&(o+=60),o},r.hsv.ansi16=function(e){return r.rgb.ansi16(r.hsv.rgb(e),e[2])},r.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},r.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},r.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},r.rgb.hex=function(e){var 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},r.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var r=parseInt(n,16);return[r>>16&255,r>>8&255,255&r]},r.rgb.hcg=function(e){var t,n=e[0]/255,r=e[1]/255,i=e[2]/255,u=Math.max(Math.max(n,r),i),o=Math.min(Math.min(n,r),i),s=u-o;return t=s<=0?0:u===n?(r-i)/s%6:u===r?2+(i-n)/s:4+(n-r)/s+4,t/=6,[360*(t%=1),100*s,100*(s<1?o/(1-s):0)]},r.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return(r=n<.5?2*t*n:2*t*(1-n))<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},r.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},r.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i,u=[0,0,0],o=t%1*6,s=o%1,a=1-s;switch(Math.floor(o)){case 0:u[0]=1,u[1]=s,u[2]=0;break;case 1:u[0]=a,u[1]=1,u[2]=0;break;case 2:u[0]=0,u[1]=1,u[2]=s;break;case 3:u[0]=0,u[1]=a,u[2]=1;break;case 4:u[0]=s,u[1]=0,u[2]=1;break;default:u[0]=1,u[1]=0,u[2]=a}return i=(1-n)*r,[255*(n*u[0]+i),255*(n*u[1]+i),255*(n*u[2]+i)]},r.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],100*r,100*n]},r.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],100*r,100*n]},r.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},r.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},r.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},r.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},r.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},r.gray.hsl=r.gray.hsv=function(e){return[0,0,e[0]]},r.gray.hwb=function(e){return[0,100,e[0]]},r.gray.cmyk=function(e){return[0,0,0,e[0]]},r.gray.lab=function(e){return[e[0],0,0]},r.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function Ec(e){var t=function(){for(var e={},t=Object.keys(Dc),n=t.length,r=0;r1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;i1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(r)}))}));var Ac=vc,Fc=i((function(e){const t=(e,t)=>function(){const n=e.apply(Ac,arguments);return`\x1b[${n+t}m`},n=(e,t)=>function(){const n=e.apply(Ac,arguments);return`\x1b[${38+t};5;${n}m`},r=(e,t)=>function(){const n=e.apply(Ac,arguments);return`\x1b[${38+t};2;${n[0]};${n[1]};${n[2]}m`};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,i={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],gray:[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]}};i.color.grey=i.color.gray;for(const t of Object.keys(i)){const n=i[t];for(const t of Object.keys(n)){const r=n[t];i[t]={open:`\x1b[${r[0]}m`,close:`\x1b[${r[1]}m`},n[t]=i[t],e.set(r[0],r[1])}Object.defineProperty(i,t,{value:n,enumerable:!1}),Object.defineProperty(i,"codes",{value:e,enumerable:!1})}const u=e=>e,o=(e,t,n)=>[e,t,n];i.color.close="\x1b[39m",i.bgColor.close="\x1b[49m",i.color.ansi={ansi:t(u,0)},i.color.ansi256={ansi256:n(u,0)},i.color.ansi16m={rgb:r(o,0)},i.bgColor.ansi={ansi:t(u,10)},i.bgColor.ansi256={ansi256:n(u,10)},i.bgColor.ansi16m={rgb:r(o,10)};for(let e of Object.keys(Ac)){if("object"!=typeof Ac[e])continue;const u=Ac[e];"ansi16"===e&&(e="ansi"),"ansi16"in u&&(i.color.ansi[e]=t(u.ansi16,0),i.bgColor.ansi[e]=t(u.ansi16,10)),"ansi256"in u&&(i.color.ansi256[e]=n(u.ansi256,0),i.bgColor.ansi256[e]=n(u.ansi256,10)),"rgb"in u&&(i.color.ansi16m[e]=r(u.rgb,0),i.bgColor.ansi16m[e]=r(u.rgb,10))}return i}})})),xc=(e,t)=>{t=t||Cr.argv;const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return-1!==r&&(-1===i||r=2,has16m:e>=3}}(function(e){if(!1===wc)return 0;if(xc("color=16m")||xc("color=full")||xc("color=truecolor"))return 3;if(xc("color=256"))return 2;if(e&&!e.isTTY&&!0!==wc)return 0;const t=wc?1:0;if("CI"in Sc)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((e=>e in Sc))||"codeship"===Sc.CI_NAME?1:t;if("TEAMCITY_VERSION"in Sc)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Sc.TEAMCITY_VERSION)?1:0;if("truecolor"===Sc.COLORTERM)return 3;if("TERM_PROGRAM"in Sc){const e=parseInt((Sc.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Sc.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Sc.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Sc.TERM)||"COLORTERM"in Sc?1:(Sc.TERM,t)}(e))}xc("no-color")||xc("no-colors")||xc("color=false")?wc=!1:(xc("color")||xc("colors")||xc("color=true")||xc("color=always"))&&(wc=!0),"FORCE_COLOR"in Sc&&(wc=0===Sc.FORCE_COLOR.length||0!==parseInt(Sc.FORCE_COLOR,10));var Bc={supportsColor:Tc,stdout:Tc(Cr.stdout),stderr:Tc(Cr.stderr)};const kc=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,Nc=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Pc=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Oc=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,Ic=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1b"],["a","\x07"]]);function jc(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):Ic.get(e)||e}function Lc(e,t){const n=[],r=t.trim().split(/\s*,\s*/g);let i;for(const t of r)if(isNaN(t)){if(!(i=t.match(Pc)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);n.push(i[2].replace(Oc,((e,t,n)=>t?jc(t):n)))}else n.push(Number(t));return n}function _c(e){Nc.lastIndex=0;const t=[];let n;for(;null!==(n=Nc.exec(e));){const e=n[1];if(n[2]){const r=Lc(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function Mc(e,t){const n={};for(const e of t)for(const t of e.styles)n[t[0]]=e.inverse?null:t.slice(1);let r=e;for(const e of Object.keys(n))if(Array.isArray(n[e])){if(!(e in r))throw new Error(`Unknown Chalk style: ${e}`);r=n[e].length>0?r[e].apply(r,n[e]):r[e]}return r}var Rc=(e,t)=>{const n=[],r=[];let i=[];if(t.replace(kc,((t,u,o,s,a,l)=>{if(u)i.push(jc(u));else if(s){const t=i.join("");i=[],r.push(0===n.length?t:Mc(e,n)(t)),n.push({inverse:o,styles:_c(s)})}else if(a){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");r.push(Mc(e,n)(i.join(""))),i=[],n.pop()}else i.push(l)})),r.push(i.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return r.join("")},$c=i((function(e){const t=Bc.stdout,n=["ansi","ansi","ansi256","ansi16m"],r=new Set(["gray"]),i=Object.create(null);function u(e,n){n=n||{};const r=t?t.level:0;e.level=void 0===n.level?r:n.level,e.enabled="enabled"in n?n.enabled:e.level>0}function o(e){if(!this||!(this instanceof o)||this.template){const t={};return u(t,e),t.template=function(){const e=[].slice.call(arguments);return c.apply(null,[t.template].concat(e))},Object.setPrototypeOf(t,o.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=o,t.template}u(this,e)}for(const e of Object.keys(Fc))Fc[e].closeRe=new RegExp(mc(Fc[e].close),"g"),i[e]={get(){const t=Fc[e];return a.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};i.visible={get(){return a.call(this,this._styles||[],!0,"visible")}},Fc.color.closeRe=new RegExp(mc(Fc.color.close),"g");for(const e of Object.keys(Fc.color.ansi))r.has(e)||(i[e]={get(){const t=this.level;return function(){const r=Fc.color[n[t]][e].apply(null,arguments),i={open:r,close:Fc.color.close,closeRe:Fc.color.closeRe};return a.call(this,this._styles?this._styles.concat(i):[i],this._empty,e)}}});Fc.bgColor.closeRe=new RegExp(mc(Fc.bgColor.close),"g");for(const e of Object.keys(Fc.bgColor.ansi)){if(r.has(e))continue;i["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const t=this.level;return function(){const r=Fc.bgColor[n[t]][e].apply(null,arguments),i={open:r,close:Fc.bgColor.close,closeRe:Fc.bgColor.closeRe};return a.call(this,this._styles?this._styles.concat(i):[i],this._empty,e)}}}}const s=Object.defineProperties((()=>{}),i);function a(e,t,n){const r=function(){return l.apply(r,arguments)};r._styles=e,r._empty=t;const i=this;return Object.defineProperty(r,"level",{enumerable:!0,get:()=>i.level,set(e){i.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:()=>i.enabled,set(e){i.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=s,r}function l(){const e=arguments,t=e.length;let n=String(arguments[0]);if(0===t)return"";if(t>1)for(let r=1;rt(e))).join("\n"):i}return n}(function(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold}}(n),e)}return e};const Uc=new Set(["as","async","from","get","of","set"]);const zc=/\r\n|[\n\r\u2028\u2029]/,Gc=/^[()[\]{}]$/;let Hc;{const e=/^[a-z][\w-]*$/i,t=function(t,n,r){if("name"===t.type){if((0,hc.isKeyword)(t.value)||(0,hc.isStrictReservedWord)(t.value,!0)||Uc.has(t.value))return"keyword";if(e.test(t.value)&&("<"===r[n-1]||"r?e(t):t,s=e.split(ep),{start:a,end:l,markerLines:c}=function(e,t,n){const r=Object.assign({column:0,line:-1},e.start),i=Object.assign({},r,e.end),{linesAbove:u=2,linesBelow:o=3}=n||{},s=r.line,a=r.column,l=i.line,c=i.column;let p=Math.max(s-(u+1),0),f=Math.min(t.length,l+o);-1===s&&(p=0),-1===l&&(f=t.length);const d=l-s,h={};if(d)for(let e=0;e<=d;e++){const n=e+s;if(a)if(0===e){const e=t[n-1].length;h[n]=[a,e-a+1]}else if(e===d)h[n]=[0,c];else{const r=t[n-e].length;h[n]=[0,r]}else h[n]=!0}else h[s]=a===c?!a||[a,0]:[a,c-a];return{start:p,end:f,markerLines:h}}(t,s,n),p=t.start&&"number"==typeof t.start.column,f=String(l).length;let d=(r?(0,Yc.default)(e,n):e).split(ep).slice(a,l).map(((e,t)=>{const r=a+1+t,i=` ${` ${r}`.slice(-f)} |`,s=c[r],l=!c[r+1];if(s){let t="";if(Array.isArray(s)){const r=e.slice(0,Math.max(s[0]-1,0)).replace(/[^\t]/g," "),a=s[1]||1;t=["\n ",o(u.gutter,i.replace(/\d/g," "))," ",r,o(u.marker,"^").repeat(a)].join(""),l&&n.message&&(t+=" "+o(u.message,n.message))}return[o(u.marker,">"),o(u.gutter,i),e.length>0?` ${e}`:"",t].join("")}return` ${o(u.gutter,i)}${e.length>0?` ${e}`:""}`})).join("\n");return n.message&&!p&&(d=`${" ".repeat(f+1)}${n.message}\n${d}`),r?i.reset(d):d}var np=Object.defineProperty({codeFrameColumns:Kc,default:Qc},"__esModule",{value:!0}),rp=r(cu);const{ConfigError:ip}=go,{locStart:up,locEnd:op}=Rl,sp=Object.getOwnPropertyNames,ap=Object.getOwnPropertyDescriptor;function lp(e){const t={};for(const n of e.plugins)if(n.parsers)for(const e of sp(n.parsers))Object.defineProperty(t,e,ap(n.parsers,e));return t}function cp(e,t=lp(e)){if("function"==typeof e.parser)return{parse:e.parser,astFormat:"estree",locStart:up,locEnd:op};if("string"==typeof e.parser){if(Object.prototype.hasOwnProperty.call(t,e.parser))return t[e.parser];throw new ip(`Couldn't resolve parser "${e.parser}". Parsers must be explicitly added to the standalone bundle.`)}}var pp={parse:function(e,t){const n=lp(t),r=Object.defineProperties({},Object.fromEntries(Object.keys(n).map((e=>[e,{enumerable:!0,get:()=>n[e].parse}])))),i=cp(t,n);try{return i.preprocess&&(e=i.preprocess(e,t)),{text:e,ast:i.parse(e,r,t)}}catch(t){const{loc:n}=t;if(n){const{codeFrameColumns:r}=np;throw t.codeFrame=r(e,n,{highlightCode:!0}),t.message+="\n"+t.codeFrame,t}throw t.stack}},resolveParser:cp};const{UndefinedParserError:fp}=go,{getSupportInfo:dp}=Hr,{resolveParser:hp}=pp,gp={astFormat:"estree",printer:{},originalText:void 0,locStart:null,locEnd:null};function mp(e,t){const n=rp.basename(e).toLowerCase(),r=dp({plugins:t}).languages.filter((e=>null!==e.since));let i=r.find((e=>e.extensions&&e.extensions.some((e=>n.endsWith(e)))||e.filenames&&e.filenames.some((e=>e.toLowerCase()===n))));if(!i&&!n.includes(".")){const t=function(e){if("string"!=typeof e)return"";let t;try{t=ao.openSync(e,"r")}catch{return""}try{const e=new lo(t).next().toString("utf8"),n=e.match(/^#!\/(?:usr\/)?bin\/env\s+(\S+)/);if(n)return n[1];const r=e.match(/^#!\/(?:usr\/(?:local\/)?)?bin\/(\S+)/);return r?r[1]:""}catch{return""}finally{try{ao.closeSync(t)}catch{}}}(e);i=r.find((e=>e.interpreters&&e.interpreters.includes(t)))}return i&&i.parsers[0]}var yp={normalize:function(e,t={}){const n=Object.assign({},e),r=dp({plugins:e.plugins,showUnreleased:!0,showDeprecated:!0}).options,i=Object.assign(Object.assign({},gp),Object.fromEntries(r.filter((e=>void 0!==e.default)).map((e=>[e.name,e.default]))));if(!n.parser)if(n.filepath){if(n.parser=mp(n.filepath,n.plugins),!n.parser)throw new fp(`No parser could be inferred for file: ${n.filepath}`)}else{(t.logger||console).warn("No parser and no filepath given, using 'babel' the parser now but this will throw an error in the future. Please specify a parser or a filepath so one can be inferred."),n.parser="babel"}const u=hp(Il.normalizeApiOptions(n,[r.find((e=>"parser"===e.name))],{passThrough:!0,logger:!1}));n.astFormat=u.astFormat,n.locEnd=u.locEnd,n.locStart=u.locStart;const o=function(e){const{astFormat:t}=e;if(!t)throw new Error("getPlugin() requires astFormat to be set");const n=e.plugins.find((e=>e.printers&&e.printers[t]));if(!n)throw new Error(`Couldn't find plugin for AST format "${t}"`);return n}(n);n.printer=o.printers[n.astFormat];const s=Object.fromEntries(r.filter((e=>e.pluginDefaults&&void 0!==e.pluginDefaults[o.name])).map((e=>[e.name,e.pluginDefaults[o.name]]))),a=Object.assign(Object.assign({},i),s);for(const[e,t]of Object.entries(a))null!==n[e]&&void 0!==n[e]||(n[e]=t);return"json"===n.parser&&(n.trailingComma="none"),Il.normalizeApiOptions(n,r,Object.assign({passThrough:Object.keys(gp)},t))},hiddenDefaults:gp,inferParser:mp};var Dp=function e(t,n,r){if(Array.isArray(t))return t.map((t=>e(t,n,r))).filter(Boolean);if(!t||"object"!=typeof t)return t;const i=n.printer.massageAstNode;let u;u=i&&i.ignoredProperties?i.ignoredProperties:new Set;const o={};for(const[r,i]of Object.entries(t))u.has(r)||"function"==typeof i||(o[r]=e(i,n,t));if(i){const e=i(t,o,r);if(null===e)return;if(e)return e}return o},Ep="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e};function bp(e,t){var n={seen:[],stylize:vp};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),Sp(t)?n.showHidden=t:t&&_p(n,t),Bp(n.showHidden)&&(n.showHidden=!1),Bp(n.depth)&&(n.depth=2),Bp(n.colors)&&(n.colors=!1),Bp(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=Cp),Ap(n,e,n.depth)}function Cp(e,t){var n=bp.styles[t];return n?"\x1b["+bp.colors[n][0]+"m"+e+"\x1b["+bp.colors[n][1]+"m":e}function vp(e,t){return e}function Ap(e,t,n){if(e.customInspect&&t&&Ip(t.inspect)&&t.inspect!==bp&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return Tp(r)||(r=Ap(e,r,n)),r}var i=function(e,t){if(Bp(t))return e.stylize("undefined","undefined");if(Tp(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(r=t,"number"==typeof r)return e.stylize(""+t,"number");var r;if(Sp(t))return e.stylize(""+t,"boolean");if(wp(t))return e.stylize("null","null")}(e,t);if(i)return i;var u=Object.keys(t),o=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(u);if(e.showHidden&&(u=Object.getOwnPropertyNames(t)),Op(t)&&(u.indexOf("message")>=0||u.indexOf("description")>=0))return Fp(t);if(0===u.length){if(Ip(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(kp(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Pp(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Op(t))return Fp(t)}var a,l,c="",p=!1,f=["{","}"];(a=t,Array.isArray(a)&&(p=!0,f=["[","]"]),Ip(t))&&(c=" [Function"+(t.name?": "+t.name:"")+"]");return kp(t)&&(c=" "+RegExp.prototype.toString.call(t)),Pp(t)&&(c=" "+Date.prototype.toUTCString.call(t)),Op(t)&&(c=" "+Fp(t)),0!==u.length||p&&0!=t.length?n<0?kp(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),l=p?function(e,t,n,r,i){for(var u=[],o=0,s=t.length;o60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(l,c,f)):f[0]+c+f[1]}function Fp(e){return"["+Error.prototype.toString.call(e)+"]"}function xp(e,t,n,r,i,u){var o,s,a;if((a=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(s=e.stylize("[Setter]","special")),Mp(r,i)||(o="["+i+"]"),s||(e.seen.indexOf(a.value)<0?(s=wp(n)?Ap(e,a.value,null):Ap(e,a.value,n-1)).indexOf("\n")>-1&&(s=u?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),Bp(o)){if(u&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function Sp(e){return"boolean"==typeof e}function wp(e){return null===e}function Tp(e){return"string"==typeof e}function Bp(e){return void 0===e}function kp(e){return Np(e)&&"[object RegExp]"===Lp(e)}function Np(e){return"object"==typeof e&&null!==e}function Pp(e){return Np(e)&&"[object Date]"===Lp(e)}function Op(e){return Np(e)&&("[object Error]"===Lp(e)||e instanceof Error)}function Ip(e){return"function"==typeof e}function jp(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function Lp(e){return Object.prototype.toString.call(e)}function _p(e,t){if(!t||!Np(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}function Mp(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Rp(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,u=Math.min(n,r);i=0){var o=r.indexOf("\n",u+1);r=r.substring(o+1)}this.stack=r}}}function Kp(e,t){return"string"==typeof e?e.length=0;s--)if(a[s]!==l[s])return!1;for(s=a.length-1;s>=0;s--)if(!of(e[o=a[s]],t[o],n,r))return!1;return!0}(e,t,n,r))}return n?e===t:e==t}function sf(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function af(e,t,n){of(e,t,!1)&&Zp(e,t,n,"notDeepEqual",af)}function lf(e,t,n){of(e,t,!0)&&Zp(e,t,n,"notDeepStrictEqual",lf)}function cf(e,t,n){e!==t&&Zp(e,t,n,"===",cf)}function pf(e,t,n){e===t&&Zp(e,t,n,"!==",pf)}function ff(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function df(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&Zp(i,n,"Missing expected exception"+r);var u="string"==typeof r,o=!e&&i&&!n;if((!e&&Op(i)&&u&&ff(i,n)||o)&&Zp(i,n,"Got unwanted exception"+r),e&&i&&n&&!ff(i,n)||!e&&i)throw i}function hf(e,t,n){df(!0,e,t,n)}function gf(e,t,n){df(!1,e,t,n)}function mf(e){if(e)throw e}Hp.AssertionError=Yp,Ep(Yp,Error),Hp.fail=Zp,Hp.ok=ef,Hp.equal=tf,Hp.notEqual=nf,Hp.deepEqual=rf,Hp.deepStrictEqual=uf,Hp.notDeepEqual=af,Hp.notDeepStrictEqual=lf,Hp.strictEqual=cf,Hp.notStrictEqual=pf,Hp.throws=hf,Hp.doesNotThrow=gf,Hp.ifError=mf;var yf=r(Object.freeze({__proto__:null,default:Hp,AssertionError:Yp,fail:Zp,ok:ef,assert:ef,equal:tf,notEqual:nf,deepEqual:rf,deepStrictEqual:uf,notDeepEqual:af,notDeepStrictEqual:lf,strictEqual:cf,notStrictEqual:pf,throws:hf,doesNotThrow:gf,ifError:mf}));const{builders:{line:Df,hardline:Ef,breakParent:bf,indent:Cf,lineSuffix:vf,join:Af,cursor:Ff}}=Ji,{hasNewline:xf,skipNewline:Sf,skipSpaces:wf,isPreviousLineEmpty:Tf,addLeadingComment:Bf,addDanglingComment:kf,addTrailingComment:Nf}=fi,Pf=new WeakMap;function Of(e,t,n){if(!e)return;const{printer:r,locStart:i,locEnd:u}=t;if(n){if(r.canAttachComment&&r.canAttachComment(e)){let t;for(t=n.length-1;t>=0&&!(i(n[t])<=i(e)&&u(n[t])<=u(e));--t);return void n.splice(t+1,0,e)}}else if(Pf.has(e))return Pf.get(e);const o=r.getCommentChildNodes&&r.getCommentChildNodes(e,t)||"object"==typeof e&&Object.entries(e).filter((([e])=>"enclosingNode"!==e&&"precedingNode"!==e&&"followingNode"!==e&&"tokens"!==e&&"comments"!==e)).map((([,e])=>e));if(o){n||(n=[],Pf.set(e,n));for(const e of o)Of(e,t,n);return n}}function If(e,t,n,r){const{locStart:i,locEnd:u}=n,o=i(t),s=u(t),a=Of(e,n);let l,c,p=0,f=a.length;for(;p>1,r=a[e],d=i(r),h=u(r);if(d<=o&&s<=h)return If(r,t,n,r);if(h<=o)l=r,p=e+1;else{if(!(s<=d))throw new Error("Comment location overlaps with node location");c=r,f=e}}if(r&&"TemplateLiteral"===r.type){const{quasis:e}=r,i=Vf(e,t,n);l&&Vf(e,l,n)!==i&&(l=null),c&&Vf(e,c,n)!==i&&(c=null)}return{enclosingNode:r,precedingNode:l,followingNode:c}}const jf=()=>!1;const Lf=e=>!/[\S\n\u2028\u2029]/.test(e);function _f(e,t,n,r){const{comment:i,precedingNode:u}=n[r],{locStart:o,locEnd:s}=t;let a=o(i);if(u)for(let t=r-1;t>=0;t--){const{comment:r,precedingNode:i}=n[t];if(i!==u||!Lf(e.slice(s(r),a)))break;a=o(r)}return xf(e,a,{backwards:!0})}function Mf(e,t,n,r){const{comment:i,followingNode:u}=n[r],{locStart:o,locEnd:s}=t;let a=s(i);if(u)for(let t=r+1;t0;--a){const{comment:r,precedingNode:o,followingNode:c}=e[a-1];yf.strictEqual(o,i),yf.strictEqual(c,u);const p=t.slice(n.locEnd(r),l);if(!s.test(p))break;l=n.locStart(r)}for(const[t,{comment:n}]of e.entries())t1&&e.comments.sort(((e,t)=>n.locStart(e)-n.locStart(t)));e.length=0}function $f(e,t){return e.getValue().printed=!0,t.printer.printComment(e,t)}function Vf(e,t,n){const r=n.locStart(t)-1;for(let t=1;t!n.has(e))));const u=r===t.cursorNode;if(0===i.length){const e=u?Ff:"";return{leading:e,trailing:e}}const o=[],s=[];return e.each((()=>{const r=e.getValue();if(n&&n.has(r))return;const{leading:i,trailing:u}=r;i?o.push(function(e,t){const n=e.getValue(),r=[$f(e,t)],{printer:i,originalText:u,locStart:o,locEnd:s}=t;if(i.isBlockComment&&i.isBlockComment(n)){const e=xf(u,s(n))?xf(u,o(n),{backwards:!0})?Ef:Df:" ";r.push(e)}else r.push(Ef);const a=Sf(u,wf(u,s(n)));return!1!==a&&xf(u,a)&&r.push(Ef),r}(e,t)):u&&s.push(function(e,t){const n=e.getValue(),r=$f(e,t),{printer:i,originalText:u,locStart:o}=t,s=i.isBlockComment&&i.isBlockComment(n);if(xf(u,o(n),{backwards:!0})){const e=Tf(u,n,o);return vf([Ef,e?Ef:"",r])}let a=[" ",r];return s||(a=[vf(a),bf]),a}(e,t))}),"comments"),u&&(o.unshift(Ff),s.push(Ff)),{leading:o,trailing:s}}var Wf={attach:function(e,t,n,r){if(!Array.isArray(e))return;const i=[],{locStart:u,locEnd:o,printer:{handleComments:s={}}}=r,{avoidAstMutation:a,ownLine:l=jf,endOfLine:c=jf,remaining:p=jf}=s,f=e.map(((i,u)=>Object.assign(Object.assign({},If(t,i,r)),{},{comment:i,text:n,options:r,ast:t,isLastComment:e.length-1===u})));for(const[e,t]of f.entries()){const{comment:n,precedingNode:r,enclosingNode:s,followingNode:d,text:h,options:g,ast:m,isLastComment:y}=t;if("json"===g.parser||"json5"===g.parser||"__js_expression"===g.parser||"__vue_expression"===g.parser){if(u(n)-u(m)<=0){Bf(m,n);continue}if(o(n)-o(m)>=0){Nf(m,n);continue}}let D;if(a?D=[t]:(n.enclosingNode=s,n.precedingNode=r,n.followingNode=d,D=[n,h,g,m,y]),_f(h,g,f,e))n.placement="ownLine",l(...D)||(d?Bf(d,n):r?Nf(r,n):kf(s||m,n));else if(Mf(h,g,f,e))n.placement="endOfLine",c(...D)||(r?Nf(r,n):d?Bf(d,n):kf(s||m,n));else if(n.placement="remaining",p(...D));else if(r&&d){const e=i.length;if(e>0){i[e-1].followingNode!==d&&Rf(i,h,g)}i.push(t)}else r?Nf(r,n):d?Bf(d,n):kf(s||m,n)}if(Rf(i,n,r),!a)for(const t of e)delete t.precedingNode,delete t.enclosingNode,delete t.followingNode},printComments:function(e,t,n,r){const{leading:i,trailing:u}=qf(e,n,r);return i||u?[i,t,u]:t},printCommentsSeparately:qf,printDanglingComments:function(e,t,n,r){const i=[],u=e.getValue();return u&&u.comments?(e.each((()=>{const n=e.getValue();n.leading||n.trailing||r&&!r(n)||i.push($f(e,t))}),"comments"),0===i.length?"":n?Af(Ef,i):Cf([Ef,Af(Ef,i)])):""},getSortedChildNodes:Of,ensureAllCommentsPrinted:function(e){if(e)for(const t of e){if(!t.printed)throw new Error('Comment "'+t.value.trim()+'" was not printed. Please report this error!');delete t.printed}}};function Uf(e,t){const n=zf(e.stack,t);return-1===n?null:e.stack[n]}function zf(e,t){for(let n=e.length-1;n>=0;n-=2){const r=e[n];if(r&&!Array.isArray(r)&&--t<0)return n}return-1}var Gf=class{constructor(e){this.stack=[e]}getName(){const{stack:e}=this,{length:t}=e;return t>1?e[t-2]:null}getValue(){return Sn(this.stack)}getNode(e=0){return Uf(this,e)}getParentNode(e=0){return Uf(this,e+1)}call(e,...t){const{stack:n}=this,{length:r}=n;let i=Sn(n);for(const e of t)i=i[e],n.push(e,i);const u=e(this);return n.length=r,u}callParent(e,t=0){const n=zf(this.stack,t+1),r=this.stack.splice(n+1),i=e(this);return this.stack.push(...r),i}each(e,...t){const{stack:n}=this,{length:r}=n;let i=Sn(n);for(const e of t)i=i[e],n.push(e,i);for(let t=0;t{n[r]=e(t,r,i)}),...t),n}try(e){const{stack:t}=this,n=[...t];try{return e()}finally{t.length=0,t.push(...n)}}match(...e){let t=this.stack.length-1,n=null,r=this.stack[t--];for(const i of e){if(void 0===r)return!1;let e=null;if("number"==typeof n&&(e=n,n=this.stack[t--],r=this.stack[t--]),i&&!i(r,n,e))return!1;n=this.stack[t--],r=this.stack[t--]}return!0}findAncestor(e){let t=this.stack.length-1,n=null,r=this.stack[t--];for(;r;){let i=null;if("number"==typeof n&&(i=n,n=this.stack[t--],r=this.stack[t--]),null!==n&&e(r,n,i))return r;n=this.stack[t--],r=this.stack[t--]}}};const{utils:{stripTrailingHardline:Hf}}=Ji,{normalize:Jf}=yp;var Xf={printSubtree:function(e,t,n,r){if(n.printer.embed&&"auto"===n.embeddedLanguageFormatting)return n.printer.embed(e,t,((e,t,i)=>function(e,t,n,r,{stripTrailingHardline:i=!1}={}){const u=Jf(Object.assign(Object.assign(Object.assign({},n),t),{},{parentParser:n.parser,originalText:e}),{passThrough:!0}),o=pp.parse(e,u),{ast:s}=o;e=o.text;const a=s.comments;delete s.comments,Wf.attach(a,s,e,u),u[Symbol.for("comments")]=a||[],u[Symbol.for("tokens")]=s.tokens||[];const l=r(s,u);if(Wf.ensureAllCommentsPrinted(a),i)return"string"==typeof l?l.replace(/(?:\r?\n)*$/,""):Hf(l);return l}(e,t,n,r,i)),n)}};const{builders:{hardline:Yf,addAlignmentToDoc:Kf},utils:{propagateBreaks:Qf}}=Ji,{printComments:Zf}=Wf;function ed(e,t,r=0){const{printer:i}=t;i.preprocess&&(e=i.preprocess(e,t));const u=new Map,o=new Gf(e);let s=a();return r>0&&(s=Kf([Yf,s],r,t.tabWidth)),Qf(s),s;function a(e,t){return void 0===e||e===o?l(t):Array.isArray(e)?o.call((()=>l(t)),...e):o.call((()=>l(t)),e)}function l(e){const r=o.getValue(),i=r&&"object"==typeof r&&void 0===e;if(i&&u.has(r))return u.get(r);const s=function(e,t,r,i){const u=e.getValue(),{printer:o}=t;let s,a;if(o.hasPrettierIgnore&&o.hasPrettierIgnore(e))({doc:s,printedComments:a}=function(e,t){const{originalText:n,[Symbol.for("comments")]:r,locStart:i,locEnd:u}=t,o=i(e),s=u(e),a=new Set;for(const e of r)i(e)>=o&&u(e)<=s&&(e.printed=!0,a.add(e));return{doc:n.slice(o,s),printedComments:a}}(u,t));else{if(u)try{s=Xf.printSubtree(e,r,t,ed)}catch(e){if(n.PRETTIER_DEBUG)throw e}s||(s=o.print(e,t,r,i))}o.willPrintOwnComments&&o.willPrintOwnComments(e,t)||(s=Zf(e,s,t,a));return s}(o,t,a,e);return i&&u.set(r,s),s}}var td=ed;function nd(e){let t=e.length-1;for(;;){const n=e[t];if(!n||"Program"!==n.type&&"File"!==n.type)break;t--}return e.slice(0,t+1)}function rd(e,t,n,r,i=[],u){const{locStart:o,locEnd:s}=n,a=o(e),l=s(e);if(!(t>l||tr);const s=e.slice(r,i).search(/\S/),a=-1===s;if(!a)for(r+=s;i>r&&!/\S/.test(e[i-1]);--i);const l=rd(n,r,t,((e,n)=>od(t,e,n)),[],"rangeStart"),c=a?l:rd(n,i,t,(e=>od(t,e)),[],"rangeEnd");if(!l||!c)return{rangeStart:0,rangeEnd:0};let p,f;if((({parser:e})=>"json"===e||"json5"===e||"json-stringify"===e)(t)){const e=function(e,t){const n=[e.node,...e.parentNodes],r=new Set([t.node,...t.parentNodes]);return n.find((e=>id.has(e.type)&&r.has(e)))}(l,c);p=e,f=e}else({startNode:p,endNode:f}=function(e,t,{locStart:n,locEnd:r}){let i=e.node,u=t.node;if(i===u)return{startNode:i,endNode:u};const o=n(e.node);for(const e of nd(t.parentNodes)){if(!(n(e)>=o))break;u=e}const s=r(t.node);for(const t of nd(e.parentNodes)){if(!(r(t)<=s))break;i=t}return{startNode:i,endNode:u}}(l,c,t));return{rangeStart:Math.min(u(p),u(f)),rangeEnd:Math.max(o(p),o(f))}},findNodeAtOffset:rd};const{printer:{printDocToString:ad},debug:{printDocToDebug:ld}}=Ji,{getAlignmentSize:cd}=fi,{guessEndOfLine:pd,convertEndOfLineToChars:fd,countEndOfLineChars:dd,normalizeEndOfLine:hd}=di,gd=yp.normalize,md=Symbol("cursor");function yd(e,t,n){const r=t.comments;return r&&(delete t.comments,Wf.attach(r,t,e,n)),n[Symbol.for("comments")]=r||[],n[Symbol.for("tokens")]=t.tokens||[],n.originalText=e,r}function Dd(e,t,n=0){if(!e||0===e.trim().length)return{formatted:"",cursorOffset:-1,comments:[]};const{ast:r,text:i}=pp.parse(e,t);if(t.cursorOffset>=0){const e=sd.findNodeAtOffset(r,t.cursorOffset,t);e&&e.node&&(t.cursorNode=e.node)}const u=yd(i,r,t),o=td(r,t,n),s=ad(o,t);if(Wf.ensureAllCommentsPrinted(u),n>0){const e=s.formatted.trim();void 0!==s.cursorNodeStart&&(s.cursorNodeStart-=s.formatted.indexOf(e)),s.formatted=e+fd(t.endOfLine)}if(t.cursorOffset>=0){let e,n,r,o,a;if(t.cursorNode&&s.cursorNodeText?(e=t.locStart(t.cursorNode),n=i.slice(e,t.locEnd(t.cursorNode)),r=t.cursorOffset-e,o=s.cursorNodeStart,a=s.cursorNodeText):(e=0,n=i,r=t.cursorOffset,o=0,a=s.formatted),n===a)return{formatted:s.formatted,cursorOffset:o+r,comments:u};const l=n.split("");l.splice(r,0,md);const c=a.split(""),p=sn.diffArrays(l,c);let f=o;for(const e of p)if(e.removed){if(e.value.includes(md))break}else f+=e.count;return{formatted:s.formatted,cursorOffset:f,comments:u}}return{formatted:s.formatted,cursorOffset:-1,comments:u}}function Ed(e,t,n){return"number"!=typeof t||Number.isNaN(t)||t<0||t>e.length?n:t}function bd(e,t){let{cursorOffset:n,rangeStart:r,rangeEnd:i}=t;return n=Ed(e,n,-1),r=Ed(e,r,0),i=Ed(e,i,e.length),Object.assign(Object.assign({},t),{},{cursorOffset:n,rangeStart:r,rangeEnd:i})}function Cd(e,t){let{cursorOffset:n,rangeStart:r,rangeEnd:i,endOfLine:u}=bd(e,t);const o="\ufeff"===e.charAt(0);if(o&&(e=e.slice(1),n--,r--,i--),"auto"===u&&(u=pd(e)),e.includes("\r")){const t=t=>dd(e.slice(0,Math.max(t,0)),"\r\n");n-=t(n),r-=t(r),i-=t(i),e=hd(e)}return{hasBOM:o,text:e,options:bd(e,Object.assign(Object.assign({},t),{},{cursorOffset:n,rangeStart:r,rangeEnd:i,endOfLine:u}))}}function vd(e,t){const n=pp.resolveParser(t);return!n.hasPragma||n.hasPragma(e)}function Ad(e,t){let n,{hasBOM:r,text:i,options:u}=Cd(e,gd(t));return u.rangeStart>=u.rangeEnd&&""!==i||u.requirePragma&&!vd(i,u)?{formatted:e,cursorOffset:t.cursorOffset,comments:[]}:(u.rangeStart>0||u.rangeEndi&&t.cursorOffset<=u?t.cursorOffset-i:-1,endOfLine:"lf"}),l),p=c.formatted.trimEnd();let{cursorOffset:f}=t;f>u?f+=p.length-o.length:c.cursorOffset>=0&&(f=c.cursorOffset+i);let d=r.slice(0,i)+p+r.slice(u);if("lf"!==t.endOfLine){const e=fd(t.endOfLine);f>=0&&"\r\n"===e&&(f+=dd(d.slice(0,f),"\n")),d=d.replace(/\n/g,e)}return{formatted:d,cursorOffset:f,comments:c.comments}}(i,u):(!u.requirePragma&&u.insertPragma&&u.printer.insertPragma&&!vd(i,u)&&(i=u.printer.insertPragma(i)),n=Dd(i,u)),r&&(n.formatted="\ufeff"+n.formatted,n.cursorOffset>=0&&n.cursorOffset++),n)}var Fd={formatWithCursor:Ad,parse(e,t,n){const{text:r,options:i}=Cd(e,gd(t)),u=pp.parse(r,i);return n&&(u.ast=Dp(u.ast,i)),u},formatAST(e,t){t=gd(t);const n=td(e,t);return ad(n,t)},formatDoc:(e,t)=>Ad(ld(e),Object.assign(Object.assign({},t),{},{parser:"__js_expression"})).formatted,printToDoc(e,t){t=gd(t);const{ast:n,text:r}=pp.parse(e,t);return yd(r,n,t),td(n,t)},printDocToString:(e,t)=>ad(e,gd(t))};const{getMaxContinuousCount:xd,getStringWidth:Sd,getAlignmentSize:wd,getIndentSize:Td,skip:Bd,skipWhitespace:kd,skipSpaces:Nd,skipNewline:Pd,skipToLineEnd:Od,skipEverythingButNewLine:Id,skipInlineComment:jd,skipTrailingComment:Ld,hasNewline:_d,hasNewlineInRange:Md,hasSpaces:Rd,isNextLineEmpty:$d,isNextLineEmptyAfterIndex:Vd,isPreviousLineEmpty:qd,getNextNonSpaceNonCommentCharacterIndex:Wd,makeString:Ud,addLeadingComment:zd,addDanglingComment:Gd,addTrailingComment:Hd}=fi;var Jd={getMaxContinuousCount:xd,getStringWidth:Sd,getAlignmentSize:wd,getIndentSize:Td,skip:Bd,skipWhitespace:kd,skipSpaces:Nd,skipNewline:Pd,skipToLineEnd:Od,skipEverythingButNewLine:Id,skipInlineComment:jd,skipTrailingComment:Ld,hasNewline:_d,hasNewlineInRange:Md,hasSpaces:Rd,isNextLineEmpty:$d,isNextLineEmptyAfterIndex:Vd,isPreviousLineEmpty:qd,getNextNonSpaceNonCommentCharacterIndex:Wd,makeString:Ud,addLeadingComment:zd,addDanglingComment:Gd,addTrailingComment:Hd};const Xd=["languageId"];var Yd=function(t,n){const{languageId:r}=t,i=e(t,Xd);return Object.assign(Object.assign({linguistLanguageId:r},i),n(t))},Kd=i((function(e){!function(){function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function n(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=n(t)}while(t);return!1},trailingStatement:n}}()})),Qd=i((function(e){!function(){var t,n,r,i,u,o;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(n={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/},t={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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/},r=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),o=0;o<128;++o)i[o]=o>=97&&o<=122||o>=65&&o<=90||36===o||95===o;for(u=new Array(128),o=0;o<128;++o)u[o]=o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||36===o||95===o;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&r.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:n.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?u[e]:n.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?u[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()})),Zd=i((function(e){!function(){var t=Qd;function n(e,t){return!(!t&&"yield"===e)&&r(e,t)}function r(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===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}}function i(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function u(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function o(e){var n,r,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStartES5(i))return!1;for(n=1,r=e.length;n=r)return!1;if(!(56320<=(u=e.charCodeAt(n))&&u<=57343))return!1;i=1024*(i-55296)+(u-56320)+65536}if(!o(i))return!1;o=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:n,isKeywordES6:r,isReservedWordES5:i,isReservedWordES6:u,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:o,isIdentifierNameES6:s,isIdentifierES5:function(e,t){return o(e)&&!i(e,t)},isIdentifierES6:function(e,t){return s(e)&&!u(e,t)}}}()}));const eh=i((function(e,t){t.ast=Kd,t.code=Qd,t.keyword=Zd})).keyword.isIdentifierNameES5,{getLast:th,hasNewline:nh,skipWhitespace:rh,isNonEmptyArray:ih,isNextLineEmptyAfterIndex:uh}=fi,{locStart:oh,locEnd:sh,hasSameLocStart:ah}=Rl,lh=new RegExp("^(?:(?=.)\\s)*:"),ch=new RegExp("^(?:(?=.)\\s)*::");function ph(e){return"Block"===e.type||"CommentBlock"===e.type||"MultiLine"===e.type}function fh(e){return"Line"===e.type||"CommentLine"===e.type||"SingleLine"===e.type||"HashbangComment"===e.type||"HTMLOpen"===e.type||"HTMLClose"===e.type}const dh=new Set(["ExportDefaultDeclaration","ExportDefaultSpecifier","DeclareExportDeclaration","ExportNamedDeclaration","ExportAllDeclaration"]);function hh(e){return e&&dh.has(e.type)}function gh(e){return"NumericLiteral"===e.type||"Literal"===e.type&&"number"==typeof e.value}function mh(e){return"StringLiteral"===e.type||"Literal"===e.type&&"string"==typeof e.value}function yh(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type}function Dh(e){return xh(e)&&"Identifier"===e.callee.type&&("async"===e.callee.name||"inject"===e.callee.name||"fakeAsync"===e.callee.name)}function Eh(e){return"JSXElement"===e.type||"JSXFragment"===e.type}function bh(e){return"get"===e.kind||"set"===e.kind}function Ch(e){return bh(e)||ah(e,e.value)}const vh=new Set(["BinaryExpression","LogicalExpression","NGPipeExpression"]);const Ah=new Set(["AnyTypeAnnotation","TSAnyKeyword","NullLiteralTypeAnnotation","TSNullKeyword","ThisTypeAnnotation","TSThisType","NumberTypeAnnotation","TSNumberKeyword","VoidTypeAnnotation","TSVoidKeyword","BooleanTypeAnnotation","TSBooleanKeyword","BigIntTypeAnnotation","TSBigIntKeyword","SymbolTypeAnnotation","TSSymbolKeyword","StringTypeAnnotation","TSStringKeyword","BooleanLiteralTypeAnnotation","StringLiteralTypeAnnotation","BigIntLiteralTypeAnnotation","NumberLiteralTypeAnnotation","TSLiteralType","TSTemplateLiteralType","EmptyTypeAnnotation","MixedTypeAnnotation","TSNeverKeyword","TSObjectKeyword","TSUndefinedKeyword","TSUnknownKeyword"]);const Fh=/^(skip|[fx]?(it|describe|test))$/;function xh(e){return e&&("CallExpression"===e.type||"OptionalCallExpression"===e.type)}function Sh(e){return e&&("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)}function wh(e){return/^(\d+|\d+\.\d+)$/.test(e)}function Th(e){return e.quasis.some((e=>e.value.raw.includes("\n")))}function Bh(e){return e.extra?e.extra.raw:e.raw}const kh={"==":!0,"!=":!0,"===":!0,"!==":!0},Nh={"*":!0,"/":!0,"%":!0},Ph={">>":!0,">>>":!0,"<<":!0};const Oh={};for(const[e,t]of[["|>"],["??"],["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"],["**"]].entries())for(const n of t)Oh[n]=e;function Ih(e){return Oh[e]}const jh=new WeakMap;function Lh(e){if(jh.has(e))return jh.get(e);const t=[];return e.this&&t.push(e.this),Array.isArray(e.parameters)?t.push(...e.parameters):Array.isArray(e.params)&&t.push(...e.params),e.rest&&t.push(e.rest),jh.set(e,t),t}const _h=new WeakMap;function Mh(e){if(_h.has(e))return _h.get(e);let t=e.arguments;return"ImportExpression"===e.type&&(t=[e.source],e.attributes&&t.push(e.attributes)),_h.set(e,t),t}function Rh(e){return"prettier-ignore"===e.value.trim()&&!e.unignore}function $h(e){return e&&(e.prettierIgnore||Wh(e,Vh.PrettierIgnore))}const Vh={Leading:2,Trailing:4,Dangling:8,Block:16,Line:32,PrettierIgnore:64,First:128,Last:256},qh=(e,t)=>{if("function"==typeof e&&(t=e,e=0),e||t)return(n,r,i)=>!(e&Vh.Leading&&!n.leading||e&Vh.Trailing&&!n.trailing||e&Vh.Dangling&&(n.leading||n.trailing)||e&Vh.Block&&!ph(n)||e&Vh.Line&&!fh(n)||e&Vh.First&&0!==r||e&Vh.Last&&r!==i.length-1||e&Vh.PrettierIgnore&&!Rh(n)||t&&!t(n))};function Wh(e,t,n){if(!e||!ih(e.comments))return!1;const r=qh(t,n);return!r||e.comments.some(r)}function Uh(e,t,n){if(!e||!Array.isArray(e.comments))return[];const r=qh(t,n);return r?e.comments.filter(r):e.comments}function zh(e){return xh(e)||"NewExpression"===e.type||"ImportExpression"===e.type}var Gh={getFunctionParameters:Lh,iterateFunctionParametersPath:function(e,t){const n=e.getValue();let r=0;const i=e=>t(e,r++);n.this&&e.call(i,"this"),Array.isArray(n.parameters)?e.each(i,"parameters"):Array.isArray(n.params)&&e.each(i,"params"),n.rest&&e.call(i,"rest")},getCallArguments:Mh,iterateCallArgumentsPath:function(e,t){const n=e.getValue();"ImportExpression"===n.type?(e.call((e=>t(e,0)),"source"),n.attributes&&e.call((e=>t(e,1)),"attributes")):e.each(t,"arguments")},hasRestParameter:function(e){if(e.rest)return!0;const t=Lh(e);return t.length>0&&"RestElement"===th(t).type},getLeftSide:function(e){return e.expressions?e.expressions[0]:e.left||e.test||e.callee||e.object||e.tag||e.argument||e.expression},getLeftSidePathName:function(e,t){if(t.expressions)return["expressions",0];if(t.left)return["left"];if(t.test)return["test"];if(t.object)return["object"];if(t.callee)return["callee"];if(t.tag)return["tag"];if(t.argument)return["argument"];if(t.expression)return["expression"];throw new Error("Unexpected node has no left side.")},getParentExportDeclaration:function(e){const t=e.getParentNode();return"declaration"===e.getName()&&hh(t)?t:null},getTypeScriptMappedTypeModifier:function(e,t){return"+"===e?"+"+t:"-"===e?"-"+t:t},hasFlowAnnotationComment:function(e){return e&&ph(e[0])&&ch.test(e[0].value)},hasFlowShorthandAnnotationComment:function(e){return e.extra&&e.extra.parenthesized&&ih(e.trailingComments)&&ph(e.trailingComments[0])&&lh.test(e.trailingComments[0].value)},hasLeadingOwnLineComment:function(e,t){return Eh(t)?$h(t):Wh(t,Vh.Leading,(t=>nh(e,sh(t))))},hasNakedLeftSide:function(e){return"AssignmentExpression"===e.type||"BinaryExpression"===e.type||"LogicalExpression"===e.type||"NGPipeExpression"===e.type||"ConditionalExpression"===e.type||xh(e)||Sh(e)||"SequenceExpression"===e.type||"TaggedTemplateExpression"===e.type||"BindExpression"===e.type||"UpdateExpression"===e.type&&!e.prefix||"TSAsExpression"===e.type||"TSNonNullExpression"===e.type},hasNode:function e(t,n){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t))return t.some((t=>e(t,n)));const r=n(t);return"boolean"==typeof r?r:Object.values(t).some((t=>e(t,n)))},hasIgnoreComment:function(e){return $h(e.getValue())},hasNodeIgnoreComment:$h,identity:function(e){return e},isBinaryish:function(e){return vh.has(e.type)},isBlockComment:ph,isCallLikeExpression:zh,isLineComment:fh,isPrettierIgnoreComment:Rh,isCallExpression:xh,isMemberExpression:Sh,isExportDeclaration:hh,isFlowAnnotationComment:function(e,t){const n=oh(t),r=rh(e,sh(t));return!1!==r&&"/*"===e.slice(n,n+2)&&"*/"===e.slice(r,r+2)},isFunctionCompositionArgs:function(e){if(e.length<=1)return!1;let t=0;for(const n of e)if(yh(n)){if(t+=1,t>1)return!0}else if(xh(n))for(const e of n.arguments)if(yh(e))return!0;return!1},isFunctionNotation:Ch,isFunctionOrArrowExpression:yh,isGetterOrSetter:bh,isJestEachTemplateLiteral:function(e,t){const n=/^[fx]?(describe|it|test)$/;return"TaggedTemplateExpression"===t.type&&t.quasi===e&&"MemberExpression"===t.tag.type&&"Identifier"===t.tag.property.type&&"each"===t.tag.property.name&&("Identifier"===t.tag.object.type&&n.test(t.tag.object.name)||"MemberExpression"===t.tag.object.type&&"Identifier"===t.tag.object.property.type&&("only"===t.tag.object.property.name||"skip"===t.tag.object.property.name)&&"Identifier"===t.tag.object.object.type&&n.test(t.tag.object.object.name))},isJsxNode:Eh,isLiteral:function(e){return"BooleanLiteral"===e.type||"DirectiveLiteral"===e.type||"Literal"===e.type||"NullLiteral"===e.type||"NumericLiteral"===e.type||"BigIntLiteral"===e.type||"DecimalLiteral"===e.type||"RegExpLiteral"===e.type||"StringLiteral"===e.type||"TemplateLiteral"===e.type||"TSTypeLiteral"===e.type||"JSXText"===e.type},isLongCurriedCallExpression:function(e){const t=e.getValue(),n=e.getParentNode();return xh(t)&&xh(n)&&n.callee===t&&t.arguments.length>n.arguments.length&&n.arguments.length>0},isSimpleCallArgument:function e(t,n){if(n>=2)return!1;const r=t=>e(t,n+1),i="Literal"===t.type&&"regex"in t&&t.regex.pattern||"RegExpLiteral"===t.type&&t.pattern;return!(i&&i.length>5)&&("Literal"===t.type||"BigIntLiteral"===t.type||"DecimalLiteral"===t.type||"BooleanLiteral"===t.type||"NullLiteral"===t.type||"NumericLiteral"===t.type||"RegExpLiteral"===t.type||"StringLiteral"===t.type||"Identifier"===t.type||"ThisExpression"===t.type||"Super"===t.type||"PrivateName"===t.type||"PrivateIdentifier"===t.type||"ArgumentPlaceholder"===t.type||"Import"===t.type||("TemplateLiteral"===t.type?t.quasis.every((e=>!e.value.raw.includes("\n")))&&t.expressions.every(r):"ObjectExpression"===t.type?t.properties.every((e=>!e.computed&&(e.shorthand||e.value&&r(e.value)))):"ArrayExpression"===t.type?t.elements.every((e=>null===e||r(e))):zh(t)?("ImportExpression"===t.type||e(t.callee,n))&&Mh(t).every(r):Sh(t)?e(t.object,n)&&e(t.property,n):"UnaryExpression"!==t.type||"!"!==t.operator&&"-"!==t.operator?"TSNonNullExpression"===t.type&&e(t.expression,n):e(t.argument,n)))},isMemberish:function(e){return Sh(e)||"BindExpression"===e.type&&Boolean(e.object)},isNumericLiteral:gh,isSignedNumericLiteral:function(e){return"UnaryExpression"===e.type&&("+"===e.operator||"-"===e.operator)&&gh(e.argument)},isObjectProperty:function(e){return e&&("ObjectProperty"===e.type||"Property"===e.type&&!e.method&&"init"===e.kind)},isObjectType:function(e){return"ObjectTypeAnnotation"===e.type||"TSTypeLiteral"===e.type},isObjectTypePropertyAFunction:function(e){return!("ObjectTypeProperty"!==e.type&&"ObjectTypeInternalSlot"!==e.type||"FunctionTypeAnnotation"!==e.value.type||e.static||Ch(e))},isSimpleType:function(e){return!!e&&(!("GenericTypeAnnotation"!==e.type&&"TSTypeReference"!==e.type||e.typeParameters)||!!Ah.has(e.type))},isSimpleNumber:wh,isSimpleTemplateLiteral:function(e){let t="expressions";"TSTemplateLiteralType"===e.type&&(t="types");const n=e[t];return 0!==n.length&&n.every((e=>{if(Wh(e))return!1;if("Identifier"===e.type||"ThisExpression"===e.type)return!0;if(Sh(e)){let t=e;for(;Sh(t);){if("Identifier"!==t.property.type&&"Literal"!==t.property.type&&"StringLiteral"!==t.property.type&&"NumericLiteral"!==t.property.type)return!1;if(t=t.object,Wh(t))return!1}return"Identifier"===t.type||"ThisExpression"===t.type}return!1}))},isStringLiteral:mh,isStringPropSafeToUnquote:function(e,t){return"json"!==t.parser&&mh(e.key)&&Bh(e.key).slice(1,-1)===e.key.value&&(eh(e.key.value)&&!(("typescript"===t.parser||"babel-ts"===t.parser)&&"ClassProperty"===e.type)||wh(e.key.value)&&String(Number(e.key.value))===e.key.value&&("babel"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser))},isTemplateOnItsOwnLine:function(e,t){return("TemplateLiteral"===e.type&&Th(e)||"TaggedTemplateExpression"===e.type&&Th(e.quasi))&&!nh(t,oh(e),{backwards:!0})},isTestCall:function e(t,n){if("CallExpression"!==t.type)return!1;if(1===t.arguments.length){if(Dh(t)&&n&&e(n))return yh(t.arguments[0]);if(function(e){return"Identifier"===e.callee.type&&/^(before|after)(Each|All)$/.test(e.callee.name)&&1===e.arguments.length}(t))return Dh(t.arguments[0])}else if((2===t.arguments.length||3===t.arguments.length)&&("Identifier"===t.callee.type&&Fh.test(t.callee.name)||function(e){return Sh(e.callee)&&"Identifier"===e.callee.object.type&&"Identifier"===e.callee.property.type&&Fh.test(e.callee.object.name)&&("only"===e.callee.property.name||"skip"===e.callee.property.name)}(t))&&(function(e){return"TemplateLiteral"===e.type}(t.arguments[0])||mh(t.arguments[0])))return!(t.arguments[2]&&!gh(t.arguments[2]))&&((2===t.arguments.length?yh(t.arguments[1]):function(e){return"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type}(t.arguments[1])&&Lh(t.arguments[1]).length<=1)||Dh(t.arguments[1]));return!1},isTheOnlyJsxElementInMarkdown:function(e,t){if("markdown"!==e.parentParser&&"mdx"!==e.parentParser)return!1;const n=t.getNode();if(!n.expression||!Eh(n.expression))return!1;const r=t.getParentNode();return"Program"===r.type&&1===r.body.length},isTSXFile:function(e){return e.filepath&&/\.tsx$/i.test(e.filepath)},isTypeAnnotationAFunction:function(e){return!("TypeAnnotation"!==e.type&&"TSTypeAnnotation"!==e.type||"FunctionTypeAnnotation"!==e.typeAnnotation.type||e.static||ah(e,e.typeAnnotation))},isNextLineEmpty:(e,{originalText:t})=>uh(t,sh(e)),needsHardlineAfterDanglingComment:function(e){if(!Wh(e))return!1;const t=th(Uh(e,Vh.Dangling));return t&&!ph(t)},rawText:Bh,shouldPrintComma:function(e,t="es5"){return"es5"===e.trailingComma&&"es5"===t||"all"===e.trailingComma&&("all"===t||"es5"===t)},isBitwiseOperator:function(e){return Boolean(Ph[e])||"|"===e||"^"===e||"&"===e},shouldFlatten:function(e,t){return Ih(t)===Ih(e)&&("**"!==e&&((!kh[e]||!kh[t])&&(!("%"===t&&Nh[e]||"%"===e&&Nh[t])&&((t===e||!Nh[t]||!Nh[e])&&(!Ph[e]||!Ph[t])))))},startsWithNoLookaheadToken:function e(t,n){switch((t=function(e){for(;e.left;)e=e.left;return e}(t)).type){case"FunctionExpression":case"ClassExpression":case"DoExpression":return n;case"ObjectExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return e(t.object,n);case"TaggedTemplateExpression":return"FunctionExpression"!==t.tag.type&&e(t.tag,n);case"CallExpression":case"OptionalCallExpression":return"FunctionExpression"!==t.callee.type&&e(t.callee,n);case"ConditionalExpression":return e(t.test,n);case"UpdateExpression":return!t.prefix&&e(t.argument,n);case"BindExpression":return t.object&&e(t.object,n);case"SequenceExpression":return e(t.expressions[0],n);case"TSAsExpression":case"TSNonNullExpression":return e(t.expression,n);default:return!1}},getPrecedence:Ih,hasComment:Wh,getComments:Uh,CommentCheckFlags:Vh};const{getStringWidth:Hh,getIndentSize:Jh}=fi,{builders:{join:Xh,hardline:Yh,softline:Kh,group:Qh,indent:Zh,align:eg,lineSuffixBoundary:tg,addAlignmentToDoc:ng},printer:{printDocToString:rg},utils:{mapDoc:ig}}=Ji,{isBinaryish:ug,isJestEachTemplateLiteral:og,isSimpleTemplateLiteral:sg,hasComment:ag,isMemberExpression:lg}=Gh;function cg(e){return e.replace(/([\\`]|\${)/g,"\\$1")}var pg={printTemplateLiteral:function(e,t,n){const r=e.getValue();if("TemplateLiteral"===r.type&&og(r,e.getParentNode())){const r=function(e,t,n){const r=e.getNode(),i=r.quasis[0].value.raw.trim().split(/\s*\|\s*/);if(i.length>1||i.some((e=>e.length>0))){t.__inJestEach=!0;const u=e.map(n,"expressions");t.__inJestEach=!1;const o=[],s=u.map((e=>"${"+rg(e,Object.assign(Object.assign({},t),{},{printWidth:Number.POSITIVE_INFINITY,endOfLine:"lf"})).formatted+"}")),a=[{hasLineBreak:!1,cells:[]}];for(let e=1;ee.cells.length))),c=Array.from({length:l}).fill(0),p=[{cells:i},...a.filter((e=>e.cells.length>0))];for(const{cells:e}of p.filter((e=>!e.hasLineBreak)))for(const[t,n]of e.entries())c[t]=Math.max(c[t],Hh(n));return o.push(tg,"`",Zh([Yh,Xh(Yh,p.map((e=>Xh(" | ",e.cells.map(((t,n)=>e.hasLineBreak?t:t+" ".repeat(c[n]-Hh(t))))))))]),Yh,"`"),o}}(e,n,t);if(r)return r}let i="expressions";"TSTemplateLiteralType"===r.type&&(i="types");const u=[];let o=e.map(t,i);const s=sg(r);return s&&(o=o.map((e=>rg(e,Object.assign(Object.assign({},n),{},{printWidth:Number.POSITIVE_INFINITY})).formatted))),u.push(tg,"`"),e.each((e=>{const a=e.getName();if(u.push(t()),afunction(e,t){const n=e.getValue();let r=t();return ag(n)&&(r=Qh([Zh([Kh,r]),Kh])),["${",r,tg,"}"]}(e,t)),"expressions")},escapeTemplateCharacters:function(e,t){return ig(e,(e=>"string"==typeof e?t?e.replace(/(\\*)`/g,"$1$1\\`"):cg(e):e))},uncookTemplateElementValue:cg};const{builders:{indent:fg,softline:dg,literalline:hg,dedentToRoot:gg}}=Ji,{escapeTemplateCharacters:mg}=pg;var yg=function(e,t,n){let r=e.getValue().quasis[0].value.raw.replace(/((?:\\\\)*)\\`/g,((e,t)=>"\\".repeat(t.length/2)+"`"));const i=function(e){const t=e.match(/^([^\S\n]*)\S/m);return null===t?"":t[1]}(r),u=""!==i;u&&(r=r.replace(new RegExp(`^${i}`,"gm"),""));const o=mg(n(r,{parser:"markdown",__inJsTemplate:!0},{stripTrailingHardline:!0}),!0);return["`",u?fg([dg,o]):[hg,gg(o)],dg,"`"]};const{isNonEmptyArray:Dg}=fi,{builders:{indent:Eg,hardline:bg,softline:Cg},utils:{mapDoc:vg,replaceNewlinesWithLiterallines:Ag,cleanDoc:Fg}}=Ji,{printTemplateExpressions:xg}=pg;var Sg=function(e,t,n){const r=e.getValue(),i=r.quasis.map((e=>e.value.raw));let u=0;return function(e,t,n){if(1===t.quasis.length&&!t.quasis[0].value.raw.trim())return"``";const r=function(e,t){if(!Dg(t))return e;let n=0;const r=vg(Fg(e),(e=>"string"==typeof e&&e.includes("@prettier-placeholder")?e.split(/@prettier-placeholder-(\d+)-id/).map(((e,r)=>r%2==0?Ag(e):(n++,t[e]))):e));return t.length===n?r:null}(e,n);if(!r)throw new Error("Couldn't insert all the expressions");return["`",Eg([bg,r]),Cg,"`"]}(n(i.reduce(((e,t,n)=>0===n?t:e+"@prettier-placeholder-"+u+++"-id"+t),""),{parser:"scss"},{stripTrailingHardline:!0}),r,xg(e,t))};const{builders:{indent:wg,join:Tg,hardline:Bg}}=Ji,{escapeTemplateCharacters:kg,printTemplateExpressions:Ng}=pg;function Pg(e){const t=[];let n=!1;const r=e.map((e=>e.trim()));for(const[e,i]of r.entries())""!==i&&(""===r[e-1]&&n?t.push([Bg,i]):t.push(i),n=!0);return 0===t.length?null:Tg(Bg,t)}var Og=function(e,t,n){const r=e.getValue(),i=r.quasis.length;if(1===i&&""===r.quasis[0].value.raw.trim())return"``";const u=Ng(e,t),o=[];for(let e=0;e2&&""===l[0].trim()&&""===l[1].trim(),d=c>2&&""===l[c-1].trim()&&""===l[c-2].trim(),h=l.every((e=>/^\s*(?:#[^\n\r]*)?$/.test(e)));if(!s&&/#[^\n\r]*$/.test(l[c-1]))return null;let g=null;g=h?Pg(l):n(a,{parser:"graphql"},{stripTrailingHardline:!0}),g?(g=kg(g,!1),!t&&f&&o.push(""),o.push(g),!s&&d&&o.push("")):t||s||!f||o.push(""),p&&o.push(p)}return["`",wg([Bg,Tg(Bg,o)]),Bg,"`"]};const{builders:{indent:Ig,line:jg,hardline:Lg,group:_g},utils:{mapDoc:Mg}}=Ji,{printTemplateExpressions:Rg,uncookTemplateElementValue:$g}=pg;let Vg=0;var qg=function(e,t,n,r,{parser:i}){const u=e.getValue(),o=Vg;Vg=Vg+1>>>0;const s=e=>`PRETTIER_HTML_PLACEHOLDER_${e}_${o}_IN_JS`,a=u.quasis.map(((e,t,n)=>t===n.length-1?e.value.cooked:e.value.cooked+s(t))).join(""),l=Rg(e,t);if(0===l.length&&0===a.trim().length)return"``";const c=new RegExp(s("(\\d+)"),"g");let p=0;const f=n(a,{parser:i,__onHtmlRoot(e){p=e.children.length}},{stripTrailingHardline:!0}),d=Mg(f,(e=>{if("string"!=typeof e)return e;const t=[],n=e.split(c);for(let e=0;e1?Ig(_g(d)):_g(d),g,"`"])};const{hasComment:Wg,CommentCheckFlags:Ug,isObjectProperty:zg}=Gh;function Gg(e){return function(e){const t=e.getValue(),n=e.getParentNode(),r=e.getParentNode(1);return r&&t.quasis&&"JSXExpressionContainer"===n.type&&"JSXElement"===r.type&&"style"===r.openingElement.name.name&&r.openingElement.attributes.some((e=>"jsx"===e.name.name))||n&&"TaggedTemplateExpression"===n.type&&"Identifier"===n.tag.type&&"css"===n.tag.name||n&&"TaggedTemplateExpression"===n.type&&"MemberExpression"===n.tag.type&&"css"===n.tag.object.name&&("global"===n.tag.property.name||"resolve"===n.tag.property.name)}(e)||function(e){const t=e.getParentNode();if(!t||"TaggedTemplateExpression"!==t.type)return!1;const{tag:n}=t;switch(n.type){case"MemberExpression":return Jg(n.object)||Xg(n);case"CallExpression":return Jg(n.callee)||"MemberExpression"===n.callee.type&&("MemberExpression"===n.callee.object.type&&(Jg(n.callee.object.object)||Xg(n.callee.object))||"CallExpression"===n.callee.object.type&&Jg(n.callee.object.callee));case"Identifier":return"css"===n.name;default:return!1}}(e)||function(e){const t=e.getParentNode(),n=e.getParentNode(1);return n&&"JSXExpressionContainer"===t.type&&"JSXAttribute"===n.type&&"JSXIdentifier"===n.name.type&&"css"===n.name.name}(e)||function(e){return e.match((e=>"TemplateLiteral"===e.type),((e,t)=>"ArrayExpression"===e.type&&"elements"===t),((e,t)=>zg(e)&&"Identifier"===e.key.type&&"styles"===e.key.name&&"value"===t),...Hg)}(e)?"css":function(e){const t=e.getValue(),n=e.getParentNode();return Yg(t,"GraphQL")||n&&("TaggedTemplateExpression"===n.type&&("MemberExpression"===n.tag.type&&"graphql"===n.tag.object.name&&"experimental"===n.tag.property.name||"Identifier"===n.tag.type&&("gql"===n.tag.name||"graphql"===n.tag.name))||"CallExpression"===n.type&&"Identifier"===n.callee.type&&"graphql"===n.callee.name)}(e)?"graphql":function(e){return Yg(e.getValue(),"HTML")||e.match((e=>"TemplateLiteral"===e.type),((e,t)=>"TaggedTemplateExpression"===e.type&&"Identifier"===e.tag.type&&"html"===e.tag.name&&"quasi"===t))}(e)?"html":function(e){return e.match((e=>"TemplateLiteral"===e.type),((e,t)=>zg(e)&&"Identifier"===e.key.type&&"template"===e.key.name&&"value"===t),...Hg)}(e)?"angular":function(e){const t=e.getValue(),n=e.getParentNode();return n&&"TaggedTemplateExpression"===n.type&&1===t.quasis.length&&"Identifier"===n.tag.type&&("md"===n.tag.name||"markdown"===n.tag.name)}(e)?"markdown":void 0}const Hg=[(e,t)=>"ObjectExpression"===e.type&&"properties"===t,(e,t)=>"CallExpression"===e.type&&"Identifier"===e.callee.type&&"Component"===e.callee.name&&"arguments"===t,(e,t)=>"Decorator"===e.type&&"expression"===t];function Jg(e){return"Identifier"===e.type&&"styled"===e.name}function Xg(e){return/^[A-Z]/.test(e.object.name)&&"extend"===e.property.name}function Yg(e,t){return Wg(e,Ug.Block|Ug.Leading,(({value:e})=>e===` ${t} `))}var Kg=function(e,t,n,r){const i=e.getValue();if("TemplateLiteral"!==i.type||function({quasis:e}){return e.some((({value:{cooked:e}})=>null===e))}(i))return;const u=Gg(e);return u?"markdown"===u?yg(e,t,n):"css"===u?Sg(e,t,n):"graphql"===u?Og(e,t,n):"html"===u||"angular"===u?qg(e,t,n,r,{parser:u}):void 0:void 0};const{isBlockComment:Qg}=Gh,Zg=new Set(["range","raw","comments","leadingComments","trailingComments","innerComments","extra","start","end","loc","flags","errors","tokens"]),em=e=>{for(const t of e.quasis)delete t.value};function tm(e,t,n){if("Program"===e.type&&delete t.sourceType,"BigIntLiteral"!==e.type&&"BigIntLiteralTypeAnnotation"!==e.type||t.value&&(t.value=t.value.toLowerCase()),"BigIntLiteral"!==e.type&&"Literal"!==e.type||t.bigint&&(t.bigint=t.bigint.toLowerCase()),"DecimalLiteral"===e.type&&(t.value=Number(t.value)),"Literal"===e.type&&t.decimal&&(t.decimal=Number(t.decimal)),"EmptyStatement"===e.type)return null;if("JSXText"===e.type)return null;if("JSXExpressionContainer"===e.type&&("Literal"===e.expression.type||"StringLiteral"===e.expression.type)&&" "===e.expression.value)return null;if("Property"!==e.type&&"ObjectProperty"!==e.type&&"MethodDefinition"!==e.type&&"ClassProperty"!==e.type&&"ClassMethod"!==e.type&&"PropertyDefinition"!==e.type&&"TSDeclareMethod"!==e.type&&"TSPropertySignature"!==e.type&&"ObjectTypeProperty"!==e.type||"object"!=typeof e.key||!e.key||"Literal"!==e.key.type&&"NumericLiteral"!==e.key.type&&"StringLiteral"!==e.key.type&&"Identifier"!==e.key.type||delete t.key,"JSXElement"===e.type&&"style"===e.openingElement.name.name&&e.openingElement.attributes.some((e=>"jsx"===e.name.name)))for(const{type:e,expression:n}of t.children)"JSXExpressionContainer"===e&&"TemplateLiteral"===n.type&&em(n);"JSXAttribute"===e.type&&"css"===e.name.name&&"JSXExpressionContainer"===e.value.type&&"TemplateLiteral"===e.value.expression.type&&em(t.value.expression),"JSXAttribute"===e.type&&e.value&&"Literal"===e.value.type&&/["']|"|'/.test(e.value.value)&&(t.value.value=t.value.value.replace(/["']|"|'/g,'"'));const r=e.expression||e.callee;if("Decorator"===e.type&&"CallExpression"===r.type&&"Component"===r.callee.name&&1===r.arguments.length){const n=e.expression.arguments[0].properties;for(const[e,r]of t.expression.arguments[0].properties.entries())switch(n[e].key.name){case"styles":"ArrayExpression"===r.value.type&&em(r.value.elements[0]);break;case"template":"TemplateLiteral"===r.value.type&&em(r.value)}}if("TaggedTemplateExpression"!==e.type||"MemberExpression"!==e.tag.type&&("Identifier"!==e.tag.type||"gql"!==e.tag.name&&"graphql"!==e.tag.name&&"css"!==e.tag.name&&"md"!==e.tag.name&&"markdown"!==e.tag.name&&"html"!==e.tag.name)&&"CallExpression"!==e.tag.type||em(t.quasi),"TemplateLiteral"===e.type){(e.leadingComments&&e.leadingComments.some((e=>Qg(e)&&["GraphQL","HTML"].some((t=>e.value===` ${t} `))))||"CallExpression"===n.type&&"graphql"===n.callee.name||!e.leadingComments)&&em(t)}return"InterpreterDirective"===e.type&&(t.value=t.value.trimEnd()),"TSIntersectionType"!==e.type&&"TSUnionType"!==e.type||1!==e.types.length?void 0:t.types[0]}tm.ignoredProperties=Zg;var nm=tm;const rm=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");const t=e.match(/(?:\r?\n)/g)||[];if(0===t.length)return;const n=t.filter((e=>"\r\n"===e)).length;return n>t.length-n?"\r\n":"\n"};var im=rm;im.graceful=e=>"string"==typeof e&&rm(e)||"\n";var um=function(e){const t=e.match(hm);return t?t[0].trimLeft():""},om=function(e){const t=e.match(hm);return t&&t[0]?e.substring(t[0].length):e},sm=function(e){return Cm(e).pragmas},am=Cm,lm=function({comments:e="",pragmas:t={}}){const n=(0,pm().default)(e)||cm().EOL,r=" *",i=Object.keys(t),u=i.map((e=>vm(e,t[e]))).reduce(((e,t)=>e.concat(t)),[]).map((e=>" * "+e+n)).join("");if(!e){if(0===i.length)return"";if(1===i.length&&!Array.isArray(t[i[0]])){const e=t[i[0]];return`/** ${vm(i[0],e)[0]} */`}}const o=e.split(n).map((e=>` * ${e}`)).join(n)+n;return"/**"+n+(e?o:"")+(e&&i.length?r+n:"")+u+" */"};function cm(){const e=Qo;return cm=function(){return e},e}function pm(){const e=function(e){return e&&e.__esModule?e:{default:e}}(im);return pm=function(){return e},e}const fm=/\*\/$/,dm=/^\/\*\*/,hm=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,gm=/(^|\s+)\/\/([^\r\n]*)/g,mm=/^(\r?\n)+/,ym=/(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g,Dm=/(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g,Em=/(\r?\n|^) *\* ?/g,bm=[];function Cm(e){const t=(0,pm().default)(e)||cm().EOL;e=e.replace(dm,"").replace(fm,"").replace(Em,"$1");let n="";for(;n!==e;)n=e,e=e.replace(ym,`${t}$1 $2${t}`);e=e.replace(mm,"").trimRight();const r=Object.create(null),i=e.replace(Dm,"").replace(mm,"").trimRight();let u;for(;u=Dm.exec(e);){const e=u[2].replace(gm,"");"string"==typeof r[u[1]]||Array.isArray(r[u[1]])?r[u[1]]=bm.concat(r[u[1]],e):r[u[1]]=e}return{comments:i,pragmas:r}}function vm(e,t){return bm.concat(t).map((t=>`@${e} ${t}`.trim()))}var Am=Object.defineProperty({extract:um,strip:om,parse:sm,parseWithComments:am,print:lm},"__esModule",{value:!0});const{parseWithComments:Fm,strip:xm,extract:Sm,print:wm}=Am,{getShebang:Tm}=fi,{normalizeEndOfLine:Bm}=di;function km(e){const t=Tm(e);t&&(e=e.slice(t.length+1));const n=Sm(e),{pragmas:r,comments:i}=Fm(n);return{shebang:t,text:e,pragmas:r,comments:i}}var Nm={hasPragma:function(e){const t=Object.keys(km(e).pragmas);return t.includes("prettier")||t.includes("format")},insertPragma:function(e){const{shebang:t,text:n,pragmas:r,comments:i}=km(e),u=xm(n),o=wm({pragmas:Object.assign({format:""},r),comments:i.trimStart()});return(t?`${t}\n`:"")+Bm(o)+(u.startsWith("\n")?"\n":"\n\n")+u}};const{getLast:Pm,hasNewline:Om,getNextNonSpaceNonCommentCharacterIndexWithStartIndex:Im,getNextNonSpaceNonCommentCharacter:jm,hasNewlineInRange:Lm,addLeadingComment:_m,addTrailingComment:Mm,addDanglingComment:Rm,getNextNonSpaceNonCommentCharacterIndex:$m,isNonEmptyArray:Vm}=fi,{isBlockComment:qm,getFunctionParameters:Wm,isPrettierIgnoreComment:Um,isJsxNode:zm,hasFlowShorthandAnnotationComment:Gm,hasFlowAnnotationComment:Hm,hasIgnoreComment:Jm,isCallLikeExpression:Xm,getCallArguments:Ym,isCallExpression:Km,isMemberExpression:Qm,isObjectProperty:Zm}=Gh,{locStart:ey,locEnd:ty}=Rl;function ny(e,t){const n=(e.body||e.properties).find((({type:e})=>"EmptyStatement"!==e));n?_m(n,t):Rm(e,t)}function ry(e,t){"BlockStatement"===e.type?ny(e,t):_m(e,t)}function iy({comment:e,followingNode:t}){return!(!t||!Oy(e))&&(_m(t,e),!0)}function uy({comment:e,precedingNode:t,enclosingNode:n,followingNode:r,text:i}){if(!n||"IfStatement"!==n.type||!r)return!1;return")"===jm(i,e,ty)?(Mm(t,e),!0):t===n.consequent&&r===n.alternate?("BlockStatement"===t.type?Mm(t,e):Rm(n,e),!0):"BlockStatement"===r.type?(ny(r,e),!0):"IfStatement"===r.type?(ry(r.consequent,e),!0):n.consequent===r&&(_m(r,e),!0)}function oy({comment:e,precedingNode:t,enclosingNode:n,followingNode:r,text:i}){if(!n||"WhileStatement"!==n.type||!r)return!1;return")"===jm(i,e,ty)?(Mm(t,e),!0):"BlockStatement"===r.type?(ny(r,e),!0):n.body===r&&(_m(r,e),!0)}function sy({comment:e,precedingNode:t,enclosingNode:n,followingNode:r}){return!(!n||"TryStatement"!==n.type&&"CatchClause"!==n.type||!r)&&("CatchClause"===n.type&&t?(Mm(t,e),!0):"BlockStatement"===r.type?(ny(r,e),!0):"TryStatement"===r.type?(ry(r.finalizer,e),!0):"CatchClause"===r.type&&(ry(r.body,e),!0))}function ay({comment:e,enclosingNode:t,followingNode:n}){return!(!Qm(t)||!n||"Identifier"!==n.type)&&(_m(t,e),!0)}function ly({comment:e,precedingNode:t,enclosingNode:n,followingNode:r,text:i}){const u=t&&!Lm(i,ty(t),ey(e));return!(t&&u||!n||"ConditionalExpression"!==n.type&&"TSConditionalType"!==n.type||!r)&&(_m(r,e),!0)}function cy({comment:e,precedingNode:t,enclosingNode:n}){return!(!Zm(n)||!n.shorthand||n.key!==t||"AssignmentPattern"!==n.value.type)&&(Mm(n.value.left,e),!0)}function py({comment:e,precedingNode:t,enclosingNode:n,followingNode:r}){if(n&&("ClassDeclaration"===n.type||"ClassExpression"===n.type||"DeclareClass"===n.type||"DeclareInterface"===n.type||"InterfaceDeclaration"===n.type||"TSInterfaceDeclaration"===n.type)){if(Vm(n.decorators)&&(!r||"Decorator"!==r.type))return Mm(Pm(n.decorators),e),!0;if(n.body&&r===n.body)return ny(n.body,e),!0;if(r)for(const i of["implements","extends","mixins"])if(n[i]&&r===n[i][0])return!t||t!==n.id&&t!==n.typeParameters&&t!==n.superClass?Rm(n,e,i):Mm(t,e),!0}return!1}function fy({comment:e,precedingNode:t,enclosingNode:n,text:r}){return(n&&t&&("Property"===n.type||"TSDeclareMethod"===n.type||"TSAbstractMethodDefinition"===n.type)&&"Identifier"===t.type&&n.key===t&&":"!==jm(r,t,ty)||!(!t||!n||"Decorator"!==t.type||"ClassMethod"!==n.type&&"ClassProperty"!==n.type&&"PropertyDefinition"!==n.type&&"TSAbstractClassProperty"!==n.type&&"TSAbstractMethodDefinition"!==n.type&&"TSDeclareMethod"!==n.type&&"MethodDefinition"!==n.type))&&(Mm(t,e),!0)}function dy({comment:e,precedingNode:t,enclosingNode:n,text:r}){return"("===jm(r,e,ty)&&(!(!t||!n||"FunctionDeclaration"!==n.type&&"FunctionExpression"!==n.type&&"ClassMethod"!==n.type&&"MethodDefinition"!==n.type&&"ObjectMethod"!==n.type)&&(Mm(t,e),!0))}function hy({comment:e,enclosingNode:t,text:n}){if(!t||"ArrowFunctionExpression"!==t.type)return!1;const r=$m(n,e,ty);return!1!==r&&"=>"===n.slice(r,r+2)&&(Rm(t,e),!0)}function gy({comment:e,enclosingNode:t,text:n}){return")"===jm(n,e,ty)&&(t&&(Py(t)&&0===Wm(t).length||Xm(t)&&0===Ym(t).length)?(Rm(t,e),!0):!(!t||"MethodDefinition"!==t.type&&"TSAbstractMethodDefinition"!==t.type||0!==Wm(t.value).length)&&(Rm(t.value,e),!0))}function my({comment:e,precedingNode:t,enclosingNode:n,followingNode:r,text:i}){if(t&&"FunctionTypeParam"===t.type&&n&&"FunctionTypeAnnotation"===n.type&&r&&"FunctionTypeParam"!==r.type)return Mm(t,e),!0;if(t&&("Identifier"===t.type||"AssignmentPattern"===t.type)&&n&&Py(n)&&")"===jm(i,e,ty))return Mm(t,e),!0;if(n&&"FunctionDeclaration"===n.type&&r&&"BlockStatement"===r.type){const t=(()=>{const e=Wm(n);if(e.length>0)return Im(i,ty(Pm(e)));const t=Im(i,ty(n.id));return!1!==t&&Im(i,t+1)})();if(ey(e)>t)return ny(r,e),!0}return!1}function yy({comment:e,enclosingNode:t}){return!(!t||"ImportSpecifier"!==t.type)&&(_m(t,e),!0)}function Dy({comment:e,enclosingNode:t}){return!(!t||"LabeledStatement"!==t.type)&&(_m(t,e),!0)}function Ey({comment:e,enclosingNode:t}){return!(!t||"ContinueStatement"!==t.type&&"BreakStatement"!==t.type||t.label)&&(Mm(t,e),!0)}function by({comment:e,precedingNode:t,enclosingNode:n}){return!!(Km(n)&&t&&n.callee===t&&n.arguments.length>0)&&(_m(n.arguments[0],e),!0)}function Cy({comment:e,precedingNode:t,enclosingNode:n,followingNode:r}){return!n||"UnionTypeAnnotation"!==n.type&&"TSUnionType"!==n.type?(r&&("UnionTypeAnnotation"===r.type||"TSUnionType"===r.type)&&Um(e)&&(r.types[0].prettierIgnore=!0,e.unignore=!0),!1):(Um(e)&&(r.prettierIgnore=!0,e.unignore=!0),!!t&&(Mm(t,e),!0))}function vy({comment:e,enclosingNode:t}){return!!Zm(t)&&(_m(t,e),!0)}function Ay({comment:e,enclosingNode:t,followingNode:n,ast:r,isLastComment:i}){return r&&r.body&&0===r.body.length?(i?Rm(r,e):_m(r,e),!0):t&&"Program"===t.type&&0===t.body.length&&!Vm(t.directives)?(i?Rm(t,e):_m(t,e),!0):!(!n||"Program"!==n.type||0!==n.body.length||!t||"ModuleExpression"!==t.type)&&(Rm(n,e),!0)}function Fy({comment:e,enclosingNode:t}){return!(!t||"ForInStatement"!==t.type&&"ForOfStatement"!==t.type)&&(_m(t,e),!0)}function xy({comment:e,precedingNode:t,enclosingNode:n,text:r}){return!!(t&&"ImportSpecifier"===t.type&&n&&"ImportDeclaration"===n.type&&Om(r,ty(e)))&&(Mm(t,e),!0)}function Sy({comment:e,enclosingNode:t}){return!(!t||"AssignmentPattern"!==t.type)&&(_m(t,e),!0)}function wy({comment:e,enclosingNode:t}){return!(!t||"TypeAlias"!==t.type)&&(_m(t,e),!0)}function Ty({comment:e,enclosingNode:t,followingNode:n}){return!(!t||"VariableDeclarator"!==t.type&&"AssignmentExpression"!==t.type||!n||"ObjectExpression"!==n.type&&"ArrayExpression"!==n.type&&"TemplateLiteral"!==n.type&&"TaggedTemplateExpression"!==n.type&&!qm(e))&&(_m(n,e),!0)}function By({comment:e,enclosingNode:t,followingNode:n,text:r}){return!(n||!t||"TSMethodSignature"!==t.type&&"TSDeclareFunction"!==t.type&&"TSAbstractMethodDefinition"!==t.type||";"!==jm(r,e,ty))&&(Mm(t,e),!0)}function ky({comment:e,enclosingNode:t,followingNode:n}){if(Um(e)&&t&&"TSMappedType"===t.type&&n&&"TSTypeParameter"===n.type&&n.constraint)return t.prettierIgnore=!0,e.unignore=!0,!0}function Ny({comment:e,precedingNode:t,enclosingNode:n,followingNode:r}){return!(!n||"TSMappedType"!==n.type)&&(r&&"TSTypeParameter"===r.type&&r.name?(_m(r.name,e),!0):!(!t||"TSTypeParameter"!==t.type||!t.constraint)&&(Mm(t.constraint,e),!0))}function Py(e){return"ArrowFunctionExpression"===e.type||"FunctionExpression"===e.type||"FunctionDeclaration"===e.type||"ObjectMethod"===e.type||"ClassMethod"===e.type||"TSDeclareFunction"===e.type||"TSCallSignatureDeclaration"===e.type||"TSConstructSignatureDeclaration"===e.type||"TSMethodSignature"===e.type||"TSConstructorType"===e.type||"TSFunctionType"===e.type||"TSDeclareMethod"===e.type}function Oy(e){return qm(e)&&"*"===e.value[0]&&/@type\b/.test(e.value)}var Iy={handleOwnLineComment:function(e){return[ky,my,ay,uy,oy,sy,py,yy,Fy,Cy,Ay,xy,Sy,fy,Dy].some((t=>t(e)))},handleEndOfLineComment:function(e){return[iy,my,ly,yy,uy,oy,sy,py,Dy,by,vy,Ay,wy,Ty].some((t=>t(e)))},handleRemainingComment:function(e){return[ky,uy,oy,cy,gy,fy,Ay,hy,dy,Ny,Ey,By].some((t=>t(e)))},isTypeCastComment:Oy,getCommentChildNodes:function(e,t){if(("typescript"===t.parser||"flow"===t.parser||"espree"===t.parser||"meriyah"===t.parser||"__babel_estree"===t.parser)&&"MethodDefinition"===e.type&&e.value&&"FunctionExpression"===e.value.type&&0===Wm(e.value).length&&!e.value.returnType&&!Vm(e.value.typeParameters)&&e.value.body)return[...e.decorators||[],e.key,e.value.body]},willPrintOwnComments:function(e){const t=e.getValue(),n=e.getParentNode();return(t&&(zm(t)||Gm(t)||Km(n)&&(Hm(t.leadingComments)||Hm(t.trailingComments)))||n&&("JSXSpreadAttribute"===n.type||"JSXSpreadChild"===n.type||"UnionTypeAnnotation"===n.type||"TSUnionType"===n.type||("ClassDeclaration"===n.type||"ClassExpression"===n.type)&&n.superClass===t))&&(!Jm(e)||"UnionTypeAnnotation"===n.type||"TSUnionType"===n.type)}};const{getFunctionParameters:jy,getLeftSidePathName:Ly,hasFlowShorthandAnnotationComment:_y,hasNakedLeftSide:My,hasNode:Ry,isBitwiseOperator:$y,startsWithNoLookaheadToken:Vy,shouldFlatten:qy,getPrecedence:Wy,isCallExpression:Uy,isMemberExpression:zy,isObjectProperty:Gy}=Gh;function Hy(e,t){const n=e.getParentNode();if(!n)return!1;const r=e.getName(),i=e.getNode();if(t.__isInHtmlInterpolation&&!t.bracketSpacing&&function(e){switch(e.type){case"ObjectExpression":return!0;default:return!1}}(i)&&Jy(e))return!0;if(function(e){return"BlockStatement"===e.type||"BreakStatement"===e.type||"ClassBody"===e.type||"ClassDeclaration"===e.type||"ClassMethod"===e.type||"ClassProperty"===e.type||"PropertyDefinition"===e.type||"ClassPrivateProperty"===e.type||"ContinueStatement"===e.type||"DebuggerStatement"===e.type||"DeclareClass"===e.type||"DeclareExportAllDeclaration"===e.type||"DeclareExportDeclaration"===e.type||"DeclareFunction"===e.type||"DeclareInterface"===e.type||"DeclareModule"===e.type||"DeclareModuleExports"===e.type||"DeclareVariable"===e.type||"DoWhileStatement"===e.type||"EnumDeclaration"===e.type||"ExportAllDeclaration"===e.type||"ExportDefaultDeclaration"===e.type||"ExportNamedDeclaration"===e.type||"ExpressionStatement"===e.type||"ForInStatement"===e.type||"ForOfStatement"===e.type||"ForStatement"===e.type||"FunctionDeclaration"===e.type||"IfStatement"===e.type||"ImportDeclaration"===e.type||"InterfaceDeclaration"===e.type||"LabeledStatement"===e.type||"MethodDefinition"===e.type||"ReturnStatement"===e.type||"SwitchStatement"===e.type||"ThrowStatement"===e.type||"TryStatement"===e.type||"TSDeclareFunction"===e.type||"TSEnumDeclaration"===e.type||"TSImportEqualsDeclaration"===e.type||"TSInterfaceDeclaration"===e.type||"TSModuleDeclaration"===e.type||"TSNamespaceExportDeclaration"===e.type||"TypeAlias"===e.type||"VariableDeclaration"===e.type||"WhileStatement"===e.type||"WithStatement"===e.type}(i))return!1;if("flow"!==t.parser&&_y(e.getValue()))return!0;if("Identifier"===i.type)return!!(i.extra&&i.extra.parenthesized&&/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(i.name))||"left"===r&&"async"===i.name&&"ForOfStatement"===n.type&&!n.await;switch(n.type){case"ParenthesizedExpression":return!1;case"ClassDeclaration":case"ClassExpression":if("superClass"===r&&("ArrowFunctionExpression"===i.type||"AssignmentExpression"===i.type||"AwaitExpression"===i.type||"BinaryExpression"===i.type||"ConditionalExpression"===i.type||"LogicalExpression"===i.type||"NewExpression"===i.type||"ObjectExpression"===i.type||"ParenthesizedExpression"===i.type||"SequenceExpression"===i.type||"TaggedTemplateExpression"===i.type||"UnaryExpression"===i.type||"UpdateExpression"===i.type||"YieldExpression"===i.type||"TSNonNullExpression"===i.type))return!0;break;case"ExportDefaultDeclaration":return Xy(e,t)||"SequenceExpression"===i.type;case"Decorator":if("expression"===r){let e=!1,t=!1,n=i;for(;n;)switch(n.type){case"MemberExpression":t=!0,n=n.object;break;case"CallExpression":if(t||e)return!0;e=!0,n=n.callee;break;case"Identifier":return!1;default:return!0}return!0}break;case"ExpressionStatement":if(Vy(i,!0))return!0;break;case"ArrowFunctionExpression":if("body"===r&&"SequenceExpression"!==i.type&&Vy(i,!1))return!0}switch(i.type){case"UpdateExpression":if("UnaryExpression"===n.type)return i.prefix&&("++"===i.operator&&"+"===n.operator||"--"===i.operator&&"-"===n.operator);case"UnaryExpression":switch(n.type){case"UnaryExpression":return i.operator===n.operator&&("+"===i.operator||"-"===i.operator);case"BindExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return"object"===r;case"TaggedTemplateExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return"callee"===r;case"BinaryExpression":return"left"===r&&"**"===n.operator;case"TSNonNullExpression":return!0;default:return!1}case"BinaryExpression":if("UpdateExpression"===n.type||"PipelineTopicExpression"===n.type&&"|>"===i.operator)return!0;if("in"===i.operator&&function(e){let t=0,n=e.getValue();for(;n;){const r=e.getParentNode(t++);if(r&&"ForStatement"===r.type&&r.init===n)return!0;n=r}return!1}(e))return!0;if("|>"===i.operator&&i.extra&&i.extra.parenthesized){const t=e.getParentNode(1);if("BinaryExpression"===t.type&&"|>"===t.operator)return!0}case"TSTypeAssertion":case"TSAsExpression":case"LogicalExpression":switch(n.type){case"TSAsExpression":return"TSAsExpression"!==i.type;case"ConditionalExpression":return"TSAsExpression"===i.type;case"CallExpression":case"NewExpression":case"OptionalCallExpression":return"callee"===r;case"ClassExpression":case"ClassDeclaration":return"superClass"===r;case"TSTypeAssertion":case"TaggedTemplateExpression":case"UnaryExpression":case"JSXSpreadAttribute":case"SpreadElement":case"SpreadProperty":case"BindExpression":case"AwaitExpression":case"TSNonNullExpression":case"UpdateExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return"object"===r;case"AssignmentExpression":case"AssignmentPattern":return"left"===r&&("TSTypeAssertion"===i.type||"TSAsExpression"===i.type);case"LogicalExpression":if("LogicalExpression"===i.type)return n.operator!==i.operator;case"BinaryExpression":{const{operator:e,type:t}=i;if(!e&&"TSTypeAssertion"!==t)return!0;const u=Wy(e),o=n.operator,s=Wy(o);return s>u||("right"===r&&s===u||(s===u&&!qy(o,e)||(s"===n.operator);default:return!1}case"TSConditionalType":if("extendsType"===r&&"TSConditionalType"===n.type)return!0;case"TSFunctionType":case"TSConstructorType":if("checkType"===r&&"TSConditionalType"===n.type)return!0;case"TSUnionType":case"TSIntersectionType":if(("TSUnionType"===n.type||"TSIntersectionType"===n.type)&&n.types.length>1&&(!i.types||i.types.length>1))return!0;case"TSInferType":if("TSInferType"===i.type&&"TSRestType"===n.type)return!1;case"TSTypeOperator":return"TSArrayType"===n.type||"TSOptionalType"===n.type||"TSRestType"===n.type||"objectType"===r&&"TSIndexedAccessType"===n.type||"TSTypeOperator"===n.type||"TSTypeAnnotation"===n.type&&/^TSJSDoc/.test(e.getParentNode(1).type);case"ArrayTypeAnnotation":return"NullableTypeAnnotation"===n.type;case"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return"ArrayTypeAnnotation"===n.type||"NullableTypeAnnotation"===n.type||"IntersectionTypeAnnotation"===n.type||"UnionTypeAnnotation"===n.type||"objectType"===r&&("IndexedAccessType"===n.type||"OptionalIndexedAccessType"===n.type);case"NullableTypeAnnotation":return"ArrayTypeAnnotation"===n.type||"objectType"===r&&("IndexedAccessType"===n.type||"OptionalIndexedAccessType"===n.type);case"FunctionTypeAnnotation":{const t="NullableTypeAnnotation"===n.type?e.getParentNode(1):n;return"UnionTypeAnnotation"===t.type||"IntersectionTypeAnnotation"===t.type||"ArrayTypeAnnotation"===t.type||"objectType"===r&&("IndexedAccessType"===t.type||"OptionalIndexedAccessType"===t.type)||"NullableTypeAnnotation"===t.type||"FunctionTypeParam"===n.type&&null===n.name&&jy(i).some((e=>e.typeAnnotation&&"NullableTypeAnnotation"===e.typeAnnotation.type))}case"OptionalIndexedAccessType":return"objectType"===r&&"IndexedAccessType"===n.type;case"TypeofTypeAnnotation":return"objectType"===r&&("IndexedAccessType"===n.type||"OptionalIndexedAccessType"===n.type);case"StringLiteral":case"NumericLiteral":case"Literal":if("string"==typeof i.value&&"ExpressionStatement"===n.type&&!n.directive){const t=e.getParentNode(1);return"Program"===t.type||"BlockStatement"===t.type}return"object"===r&&"MemberExpression"===n.type&&"number"==typeof i.value;case"AssignmentExpression":{const t=e.getParentNode(1);return"body"===r&&"ArrowFunctionExpression"===n.type||("key"!==r||"ClassProperty"!==n.type&&"PropertyDefinition"!==n.type||!n.computed)&&(("init"!==r&&"update"!==r||"ForStatement"!==n.type)&&("ExpressionStatement"===n.type?"ObjectPattern"===i.left.type:("key"!==r||"TSPropertySignature"!==n.type)&&("AssignmentExpression"!==n.type&&(("SequenceExpression"!==n.type||!t||"ForStatement"!==t.type||t.init!==n&&t.update!==n)&&(("value"!==r||"Property"!==n.type||!t||"ObjectPattern"!==t.type||!t.properties.includes(n))&&"NGChainedExpression"!==n.type)))))}case"ConditionalExpression":switch(n.type){case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":case"NGPipeExpression":case"ExportDefaultDeclaration":case"AwaitExpression":case"JSXSpreadAttribute":case"TSTypeAssertion":case"TypeCastExpression":case"TSAsExpression":case"TSNonNullExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return"callee"===r;case"ConditionalExpression":return"test"===r;case"MemberExpression":case"OptionalMemberExpression":return"object"===r;default:return!1}case"FunctionExpression":switch(n.type){case"NewExpression":case"CallExpression":case"OptionalCallExpression":return"callee"===r;case"TaggedTemplateExpression":return!0;default:return!1}case"ArrowFunctionExpression":switch(n.type){case"PipelineTopicExpression":return Boolean(i.extra&&i.extra.parenthesized);case"BinaryExpression":return"|>"!==n.operator||i.extra&&i.extra.parenthesized;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return"callee"===r;case"MemberExpression":case"OptionalMemberExpression":return"object"===r;case"TSAsExpression":case"TSNonNullExpression":case"BindExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"LogicalExpression":case"AwaitExpression":case"TSTypeAssertion":return!0;case"ConditionalExpression":return"test"===r;default:return!1}case"ClassExpression":switch(n.type){case"NewExpression":return"callee"===r;default:return!1}case"OptionalMemberExpression":case"OptionalCallExpression":{const t=e.getParentNode(1);if("object"===r&&"MemberExpression"===n.type||"callee"===r&&("CallExpression"===n.type||"NewExpression"===n.type)||"TSNonNullExpression"===n.type&&"MemberExpression"===t.type&&t.object===n)return!0}case"CallExpression":case"MemberExpression":case"TaggedTemplateExpression":case"TSNonNullExpression":if("callee"===r&&("BindExpression"===n.type||"NewExpression"===n.type)){let e=i;for(;e;)switch(e.type){case"CallExpression":case"OptionalCallExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":case"BindExpression":e=e.object;break;case"TaggedTemplateExpression":e=e.tag;break;case"TSNonNullExpression":e=e.expression;break;default:return!1}}return!1;case"BindExpression":return"callee"===r&&("BindExpression"===n.type||"NewExpression"===n.type)||"object"===r&&zy(n);case"NGPipeExpression":return!("NGRoot"===n.type||"NGMicrosyntaxExpression"===n.type||"ObjectProperty"===n.type&&(!i.extra||!i.extra.parenthesized)||"ArrayExpression"===n.type||Uy(n)&&n.arguments[r]===i||"right"===r&&"NGPipeExpression"===n.type||"property"===r&&"MemberExpression"===n.type||"AssignmentExpression"===n.type);case"JSXFragment":case"JSXElement":return"callee"===r||"left"===r&&"BinaryExpression"===n.type&&"<"===n.operator||"ArrayExpression"!==n.type&&"ArrowFunctionExpression"!==n.type&&"AssignmentExpression"!==n.type&&"AssignmentPattern"!==n.type&&"BinaryExpression"!==n.type&&"NewExpression"!==n.type&&"ConditionalExpression"!==n.type&&"ExpressionStatement"!==n.type&&"JsExpressionRoot"!==n.type&&"JSXAttribute"!==n.type&&"JSXElement"!==n.type&&"JSXExpressionContainer"!==n.type&&"JSXFragment"!==n.type&&"LogicalExpression"!==n.type&&!Uy(n)&&!Gy(n)&&"ReturnStatement"!==n.type&&"ThrowStatement"!==n.type&&"TypeCastExpression"!==n.type&&"VariableDeclarator"!==n.type&&"YieldExpression"!==n.type;case"TypeAnnotation":return"returnType"===r&&"ArrowFunctionExpression"===n.type&&function(e){return Ry(e,(e=>"ObjectTypeAnnotation"===e.type&&Ry(e,(e=>"FunctionTypeAnnotation"===e.type||void 0))||void 0))}(i)}return!1}function Jy(e){const t=e.getValue(),n=e.getParentNode(),r=e.getName();switch(n.type){case"NGPipeExpression":if("number"==typeof r&&n.arguments[r]===t&&n.arguments.length-1===r)return e.callParent(Jy);break;case"ObjectProperty":if("value"===r){const t=e.getParentNode(1);return Sn(t.properties)===n}break;case"BinaryExpression":case"LogicalExpression":if("right"===r)return e.callParent(Jy);break;case"ConditionalExpression":if("alternate"===r)return e.callParent(Jy);break;case"UnaryExpression":if(n.prefix)return e.callParent(Jy)}return!1}function Xy(e,t){const n=e.getValue(),r=e.getParentNode();return"FunctionExpression"===n.type||"ClassExpression"===n.type?"ExportDefaultDeclaration"===r.type||!Hy(e,t):!(!My(n)||"ExportDefaultDeclaration"!==r.type&&Hy(e,t))&&e.call((e=>Xy(e,t)),...Ly(e,n))}var Yy=Hy;var Ky=function(e,t){switch(t.parser){case"json":case"json5":case"json-stringify":case"__js_expression":case"__vue_expression":return Object.assign(Object.assign({},e),{},{type:t.parser.startsWith("__")?"JsExpressionRoot":"JsonRoot",node:e,comments:[],rootMarker:t.rootMarker});default:return e}};const{builders:{join:Qy,line:Zy,group:eD,softline:tD,indent:nD}}=Ji;var rD={isVueEventBindingExpression:function e(t){switch(t.type){case"MemberExpression":switch(t.property.type){case"Identifier":case"NumericLiteral":case"StringLiteral":return e(t.object)}return!1;case"Identifier":return!0;default:return!1}},printHtmlBinding:function(e,t,n){const r=e.getValue();if(t.__onHtmlBindingRoot&&null===e.getName()&&t.__onHtmlBindingRoot(r,t),"File"===r.type)return t.__isVueForBindingLeft?e.call((e=>{const t=Qy([",",Zy],e.map(n,"params")),{params:r}=e.getValue();return 1===r.length?t:["(",nD([tD,eD(t)]),tD,")"]}),"program","body",0):t.__isVueBindings?e.call((e=>Qy([",",Zy],e.map(n,"params"))),"program","body",0):void 0}};const{printComments:iD}=Wf,{getLast:uD}=fi,{builders:{join:oD,line:sD,softline:aD,group:lD,indent:cD,align:pD,ifBreak:fD,indentIfBreak:dD},utils:{cleanDoc:hD,getDocParts:gD,isConcat:mD}}=Ji,{hasLeadingOwnLineComment:yD,isBinaryish:DD,isJsxNode:ED,shouldFlatten:bD,hasComment:CD,CommentCheckFlags:vD,isCallExpression:AD,isMemberExpression:FD,isObjectProperty:xD}=Gh;let SD=0;function wD(e,t,n,r,i){let u=[];const o=e.getValue();if(DD(o)){bD(o.operator,o.left.operator)?u=[...u,...e.call((e=>wD(e,t,n,!0,i)),"left")]:u.push(lD(t("left")));const s=TD(o),a=("|>"===o.operator||"NGPipeExpression"===o.type||"|"===o.operator&&"__vue_expression"===n.parser)&&!yD(n.originalText,o.right),l="NGPipeExpression"===o.type?"|":o.operator,c="NGPipeExpression"===o.type&&o.arguments.length>0?lD(cD([aD,": ",oD([aD,":",fD(" ")],e.map(t,"arguments").map((e=>pD(2,lD(e)))))])):"",p=s?[l," ",t("right"),c]:[a?sD:"",l,a?" ":sD,t("right"),c],f=e.getParentNode(),d=CD(o.left,vD.Trailing|vD.Line),h=d||!(i&&"LogicalExpression"===o.type)&&f.type!==o.type&&o.left.type!==o.type&&o.right.type!==o.type;if(u.push(a?"":" ",h?lD(p,{shouldBreak:d}):p),r&&CD(o)){const t=hD(iD(e,u,n));u=mD(t)||"fill"===t.type?gD(t):[t]}}else u.push(lD(t()));return u}function TD(e){return"LogicalExpression"===e.type&&("ObjectExpression"===e.right.type&&e.right.properties.length>0||("ArrayExpression"===e.right.type&&e.right.elements.length>0||!!ED(e.right)))}var BD={printBinaryishExpression:function(e,t,n){const r=e.getValue(),i=e.getParentNode(),u=e.getParentNode(1),o=r!==i.body&&("IfStatement"===i.type||"WhileStatement"===i.type||"SwitchStatement"===i.type||"DoWhileStatement"===i.type),s=wD(e,n,t,!1,o);if(o)return s;if(AD(i)&&i.callee===r||"UnaryExpression"===i.type||FD(i)&&!i.computed)return lD([cD([aD,...s]),aD]);const a="ReturnStatement"===i.type||"ThrowStatement"===i.type||"JSXExpressionContainer"===i.type&&"JSXAttribute"===u.type||"|"!==r.operator&&"JsExpressionRoot"===i.type||"NGPipeExpression"!==r.type&&("NGRoot"===i.type&&"__ng_binding"===t.parser||"NGMicrosyntaxExpression"===i.type&&"NGMicrosyntax"===u.type&&1===u.body.length)||r===i.body&&"ArrowFunctionExpression"===i.type||r!==i.body&&"ForStatement"===i.type||"ConditionalExpression"===i.type&&"ReturnStatement"!==u.type&&"ThrowStatement"!==u.type&&!AD(u)||"TemplateLiteral"===i.type,l="AssignmentExpression"===i.type||"VariableDeclarator"===i.type||"ClassProperty"===i.type||"PropertyDefinition"===i.type||"TSAbstractClassProperty"===i.type||"ClassPrivateProperty"===i.type||xD(i),c=DD(r.left)&&bD(r.operator,r.left.operator);if(a||TD(r)&&!c||!TD(r)&&l)return lD(s);if(0===s.length)return"";const p=ED(r.right),f=s.findIndex((e=>"string"!=typeof e&&!Array.isArray(e)&&"group"===e.type)),d=s.slice(0,-1===f?1:f+1),h=s.slice(d.length,p?-1:void 0),g=Symbol("logicalChain-"+ ++SD),m=lD([...d,cD(h)],{id:g});if(!p)return m;const y=uD(s);return lD([m,dD(y,{groupId:g})])},shouldInlineLogicalExpression:TD};const{builders:{join:kD,line:ND,group:PD}}=Ji,{hasNode:OD,hasComment:ID,getComments:jD}=Gh,{printBinaryishExpression:LD}=BD;function _D(e,t,n){return"NGMicrosyntaxKeyedExpression"===e.type&&"of"===e.key.name&&1===t&&"NGMicrosyntaxLet"===n.body[0].type&&null===n.body[0].value}var MD={printAngular:function(e,t,n){const r=e.getValue();if(r.type.startsWith("NG"))switch(r.type){case"NGRoot":return[n("node"),ID(r.node)?" //"+jD(r.node)[0].value.trimEnd():""];case"NGPipeExpression":return LD(e,t,n);case"NGChainedExpression":return PD(kD([";",ND],e.map((e=>function(e){return OD(e.getValue(),(e=>{switch(e.type){case void 0:return!1;case"CallExpression":case"OptionalCallExpression":case"AssignmentExpression":return!0}}))}(e)?n():["(",n(),")"]),"expressions")));case"NGEmptyExpression":return"";case"NGQuotedExpression":return[r.prefix,": ",r.value.trim()];case"NGMicrosyntax":return e.map(((e,t)=>[0===t?"":_D(e.getValue(),t,r)?" ":[";",ND],n()]),"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(-[$_a-z][\w$])*$/i.test(r.name)?r.name:JSON.stringify(r.name);case"NGMicrosyntaxExpression":return[n("expression"),null===r.alias?"":[" as ",n("alias")]];case"NGMicrosyntaxKeyedExpression":{const t=e.getName(),i=e.getParentNode(),u=_D(r,t,i)||(1===t&&("then"===r.key.name||"else"===r.key.name)||2===t&&"else"===r.key.name&&"NGMicrosyntaxKeyedExpression"===i.body[t-1].type&&"then"===i.body[t-1].key.name)&&"NGMicrosyntaxExpression"===i.body[0].type;return[n("key"),u?" ":": ",n("expression")]}case"NGMicrosyntaxLet":return["let ",n("key"),null===r.value?"":[" = ",n("value")]];case"NGMicrosyntaxAs":return[n("key")," as ",n("alias")];default:throw new Error(`Unknown Angular node type: ${JSON.stringify(r.type)}.`)}}};const{printComments:RD,printDanglingComments:$D}=Wf,{builders:{line:VD,hardline:qD,softline:WD,group:UD,indent:zD,conditionalGroup:GD,fill:HD,ifBreak:JD,lineSuffixBoundary:XD,join:YD},utils:{willBreak:KD}}=Ji,{getLast:QD,getPreferredQuote:ZD}=fi,{isJsxNode:eE,rawText:tE,isLiteral:nE,isCallExpression:rE,isStringLiteral:iE,isBinaryish:uE,hasComment:oE,CommentCheckFlags:sE,hasNodeIgnoreComment:aE}=Gh,{willPrintOwnComments:lE}=Iy,cE=e=>""===e||e===VD||e===qD||e===WD;function pE(e,t,n){const r=e.getValue();if("JSXElement"===r.type&&function(e){if(0===e.children.length)return!0;if(e.children.length>1)return!1;const t=e.children[0];return nE(t)&&!EE(t)}(r))return[n("openingElement"),n("closingElement")];const i="JSXElement"===r.type?n("openingElement"):n("openingFragment"),u="JSXElement"===r.type?n("closingElement"):n("closingFragment");if(1===r.children.length&&"JSXExpressionContainer"===r.children[0].type&&("TemplateLiteral"===r.children[0].expression.type||"TaggedTemplateExpression"===r.children[0].expression.type))return[i,...e.map(n,"children"),u];r.children=r.children.map((e=>function(e){return"JSXExpressionContainer"===e.type&&nE(e.expression)&&" "===e.expression.value&&!oE(e.expression)}(e)?{type:"JSXText",value:" ",raw:" "}:e));const o=r.children.filter(eE).length>0,s=r.children.filter((e=>"JSXExpressionContainer"===e.type)).length>1,a="JSXElement"===r.type&&r.openingElement.attributes.length>1;let l=KD(i)||o||a||s;const c="mdx"===e.getParentNode().rootMarker,p=t.singleQuote?"{' '}":'{" "}',f=c?" ":JD([p,WD]," "),d=function(e,t,n,r,i){const u=[];return e.each(((e,t,o)=>{const s=e.getValue();if(nE(s)){const e=tE(s);if(EE(s)){const n=e.split(mE);if(""===n[0]){if(u.push(""),n.shift(),/\n/.test(n[0])){const e=o[t+1];u.push(dE(i,n[1],s,e))}else u.push(r);n.shift()}let a;if(""===QD(n)&&(n.pop(),a=n.pop()),0===n.length)return;for(const[e,t]of n.entries())e%2==1?u.push(VD):u.push(t);if(void 0!==a)if(/\n/.test(a)){const e=o[t+1];u.push(dE(i,QD(u),s,e))}else u.push(r);else{const e=o[t+1];u.push(fE(i,QD(u),s,e))}}else/\n/.test(e)?e.match(/\n/g).length>1&&u.push("",qD):u.push("",r)}else{const e=n();u.push(e);const r=o[t+1];if(r&&EE(r)){const e=DE(tE(r)).split(mE)[0];u.push(fE(i,e,s,r))}else u.push(qD)}}),"children"),u}(e,0,n,f,r.openingElement&&r.openingElement.name&&"fbt"===r.openingElement.name.name),h=r.children.some((e=>EE(e)));for(let e=d.length-2;e>=0;e--){const t=""===d[e]&&""===d[e+1],n=d[e]===qD&&""===d[e+1]&&d[e+2]===qD,r=(d[e]===WD||d[e]===qD)&&""===d[e+1]&&d[e+2]===f,i=d[e]===f&&""===d[e+1]&&(d[e+2]===WD||d[e+2]===qD),u=d[e]===f&&""===d[e+1]&&d[e+2]===f,o=d[e]===WD&&""===d[e+1]&&d[e+2]===qD||d[e]===qD&&""===d[e+1]&&d[e+2]===WD;n&&h||t||r||u||o?d.splice(e,2):i&&d.splice(e+1,2)}for(;d.length>0&&cE(QD(d));)d.pop();for(;d.length>1&&cE(d[0])&&cE(d[1]);)d.shift(),d.shift();const g=[];for(const[e,t]of d.entries()){if(t===f){if(1===e&&""===d[e-1]){if(2===d.length){g.push(p);continue}g.push([p,qD]);continue}if(e===d.length-1){g.push(p);continue}if(""===d[e-1]&&d[e-2]===qD){g.push(p);continue}}g.push(t),KD(t)&&(l=!0)}const m=h?HD(g):UD(g,{shouldBreak:!0});if(c)return m;const y=UD([i,zD([qD,m]),qD,u]);return l?y:GD([UD([i,...d,u]),y])}function fE(e,t,n,r){return e?"":"JSXElement"===n.type&&!n.closingElement||r&&"JSXElement"===r.type&&!r.closingElement?1===t.length?WD:qD:WD}function dE(e,t,n,r){return e?qD:1===t.length?"JSXElement"===n.type&&!n.closingElement||r&&"JSXElement"===r.type&&!r.closingElement?qD:WD:qD}function hE(e,t,n){return function(e,t,n){const r=e.getParentNode();if(!r)return t;if({ArrayExpression:!0,JSXAttribute:!0,JSXElement:!0,JSXExpressionContainer:!0,JSXFragment:!0,ExpressionStatement:!0,CallExpression:!0,OptionalCallExpression:!0,ConditionalExpression:!0,JsExpressionRoot:!0}[r.type])return t;const i=e.match(void 0,(e=>"ArrowFunctionExpression"===e.type),rE,(e=>"JSXExpressionContainer"===e.type)),u=Yy(e,n);return UD([u?"":JD("("),zD([WD,t]),WD,u?"":JD(")")],{shouldBreak:i})}(e,RD(e,pE(e,t,n),t),t)}function gE(e,t,n){const r=e.getValue();return["{",e.call((e=>{const r=["...",n()],i=e.getValue();return oE(i)&&lE(e)?[zD([WD,RD(e,r,t)]),WD]:r}),"JSXSpreadAttribute"===r.type?"argument":"expression"),"}"]}const mE=new RegExp("([ \n\r\t]+)"),yE=new RegExp("[^ \n\r\t]"),DE=e=>e.replace(new RegExp("(?:^"+mE.source+"|"+mE.source+"$)"),"");function EE(e){return nE(e)&&(yE.test(tE(e))||!/\n/.test(tE(e)))}var bE={hasJsxIgnoreComment:function(e){const t=e.getValue(),n=e.getParentNode();if(!(n&&t&&eE(t)&&eE(n)))return!1;let r=null;for(let e=n.children.indexOf(t);e>0;e--){const t=n.children[e-1];if("JSXText"!==t.type||EE(t)){r=t;break}}return r&&"JSXExpressionContainer"===r.type&&"JSXEmptyExpression"===r.expression.type&&aE(r.expression)},printJsx:function(e,t,n){const r=e.getValue();if(r.type.startsWith("JSX"))switch(r.type){case"JSXAttribute":return function(e,t,n){const r=e.getValue(),i=[];if(i.push(n("name")),r.value){let e;if(iE(r.value)){let n=tE(r.value).replace(/'/g,"'").replace(/"/g,'"');const i=ZD(n,t.jsxSingleQuote?"'":'"'),u="'"===i?"'":""";n=n.slice(1,-1).replace(new RegExp(i,"g"),u),e=[i,n,i]}else e=n("value");i.push("=",e)}return i}(e,t,n);case"JSXIdentifier":return String(r.name);case"JSXNamespacedName":return YD(":",[n("namespace"),n("name")]);case"JSXMemberExpression":return YD(".",[n("object"),n("property")]);case"JSXSpreadAttribute":return gE(e,t,n);case"JSXSpreadChild":return gE(e,t,n);case"JSXExpressionContainer":return function(e,t,n){const r=e.getValue(),i=e.getParentNode(0),u="JSXEmptyExpression"===r.expression.type||!oE(r.expression)&&("ArrayExpression"===r.expression.type||"ObjectExpression"===r.expression.type||"ArrowFunctionExpression"===r.expression.type||rE(r.expression)||"FunctionExpression"===r.expression.type||"TemplateLiteral"===r.expression.type||"TaggedTemplateExpression"===r.expression.type||"DoExpression"===r.expression.type||eE(i)&&("ConditionalExpression"===r.expression.type||uE(r.expression)));return UD(u?["{",n("expression"),XD,"}"]:["{",zD([WD,n("expression")]),WD,XD,"}"])}(e,0,n);case"JSXFragment":case"JSXElement":return hE(e,t,n);case"JSXOpeningElement":return function(e,t,n){const r=e.getValue(),i=r.name&&oE(r.name)||r.typeParameters&&oE(r.typeParameters);if(r.selfClosing&&0===r.attributes.length&&!i)return["<",n("name"),n("typeParameters")," />"];if(r.attributes&&1===r.attributes.length&&r.attributes[0].value&&iE(r.attributes[0].value)&&!r.attributes[0].value.value.includes("\n")&&!i&&!oE(r.attributes[0]))return UD(["<",n("name"),n("typeParameters")," ",...e.map(n,"attributes"),r.selfClosing?" />":">"]);const u=r.attributes.length>0&&oE(QD(r.attributes),sE.Trailing),o=0===r.attributes.length&&!i||t.jsxBracketSameLine&&(!i||r.attributes.length>0)&&!u,s=r.attributes&&r.attributes.some((e=>e.value&&iE(e.value)&&e.value.value.includes("\n")));return UD(["<",n("name"),n("typeParameters"),zD(e.map((()=>[VD,n()]),"attributes")),r.selfClosing?VD:o?">":WD,r.selfClosing?"/>":o?"":">"],{shouldBreak:s})}(e,t,n);case"JSXClosingElement":return function(e,t,n){const r=e.getValue(),i=[];i.push(""),i}(e,0,n);case"JSXOpeningFragment":case"JSXClosingFragment":return function(e,t){const n=e.getValue(),r=oE(n),i=oE(n,sE.Line),u="JSXOpeningFragment"===n.type;return[u?"<":""]}(e,t);case"JSXEmptyExpression":return function(e,t){const n=e.getValue(),r=oE(n,sE.Line);return[$D(e,t,!r),r?qD:""]}(e,t);case"JSXText":throw new Error("JSXTest should be handled by JSXElement");default:throw new Error(`Unknown JSX node type: ${JSON.stringify(r.type)}.`)}}};Me({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:void 0,t=B(this),n=be(t.length),r=Mn(t,0);return r.length=kn(r,t,t,n,0,void 0===e?1:De(e)),r}});const{isNonEmptyArray:CE}=fi,{builders:{indent:vE,join:AE,line:FE}}=Ji,{isFlowAnnotationComment:xE}=Gh;function SE(e,t,n){const r=e.getValue();if(!r.typeAnnotation)return"";const i=e.getParentNode(),u=r.definite||i&&"VariableDeclarator"===i.type&&i.definite,o="DeclareFunction"===i.type&&i.id===r;return xE(t.originalText,r.typeAnnotation)?[" /*: ",n("typeAnnotation")," */"]:[o?"":u?"!: ":": ",n("typeAnnotation")]}var wE={printOptionalToken:function(e){const t=e.getValue();return!t.optional||"Identifier"===t.type&&t===e.getParentNode().key?"":"OptionalCallExpression"===t.type||"OptionalMemberExpression"===t.type&&t.computed?"?.":"?"},printFunctionTypeParameters:function(e,t,n){const r=e.getValue();return r.typeArguments?n("typeArguments"):r.typeParameters?n("typeParameters"):""},printBindExpressionCallee:function(e,t,n){return["::",n("callee")]},printTypeScriptModifiers:function(e,t,n){const r=e.getValue();return CE(r.modifiers)?[AE(" ",e.map(n,"modifiers"))," "]:""},printTypeAnnotation:SE,printRestSpread:function(e,t,n){return["...",n("argument"),SE(e,t,n)]},adjustClause:function(e,t,n){return"EmptyStatement"===e.type?";":"BlockStatement"===e.type||n?[" ",t]:vE([FE,t])}};const{printDanglingComments:TE}=Wf,{builders:{line:BE,softline:kE,hardline:NE,group:PE,indent:OE,ifBreak:IE,fill:jE}}=Ji,{getLast:LE,hasNewline:_E}=fi,{shouldPrintComma:ME,hasComment:RE,CommentCheckFlags:$E,isNextLineEmpty:VE,isNumericLiteral:qE,isSignedNumericLiteral:WE}=Gh,{locStart:UE}=Rl,{printOptionalToken:zE,printTypeAnnotation:GE}=wE;function HE(e,t){return e.elements.length>1&&e.elements.every((e=>e&&(qE(e)||WE(e)&&!RE(e.argument))&&!RE(e,$E.Trailing|$E.Line,(e=>!_E(t.originalText,UE(e),{backwards:!0})))))}function JE(e,t,n,r){const i=[];let u=[];return e.each((e=>{i.push(u,PE(r())),u=[",",BE],e.getValue()&&VE(e.getValue(),t)&&u.push(kE)}),n),i}function XE(e,t,n,r){const i=[];return e.each(((e,u,o)=>{const s=u===o.length-1;i.push([n(),s?r:","]),s||i.push(VE(e.getValue(),t)?[NE,NE]:RE(o[u+1],$E.Leading|$E.Line)?NE:BE)}),"elements"),jE(i)}var YE={printArray:function(e,t,n){const r=e.getValue(),i=[],u="TupleExpression"===r.type?"#[":"[";if(0===r.elements.length)RE(r,$E.Dangling)?i.push(PE([u,TE(e,t),kE,"]"])):i.push(u,"]");else{const o=LE(r.elements),s=!(o&&"RestElement"===o.type),a=null===o,l=Symbol("array"),c=!t.__inJestEach&&r.elements.length>1&&r.elements.every(((e,t,n)=>{const r=e&&e.type;if("ArrayExpression"!==r&&"ObjectExpression"!==r)return!1;const i=n[t+1];if(i&&r!==i.type)return!1;const u="ArrayExpression"===r?"elements":"properties";return e[u]&&e[u].length>1})),p=HE(r,t),f=s?a?",":ME(t)?p?IE(",","",{groupId:l}):IE(","):"":"";i.push(PE([u,OE([kE,p?XE(e,t,n,f):[JE(e,t,"elements",n),f],TE(e,t,!0)]),kE,"]"],{shouldBreak:c,id:l}))}return i.push(zE(e),GE(e,t,n)),i},printArrayItems:JE,isConciselyPrintedArray:HE};const{printDanglingComments:KE}=Wf,{getLast:QE,getPenultimate:ZE}=fi,{getFunctionParameters:eb,hasComment:tb,CommentCheckFlags:nb,isFunctionCompositionArgs:rb,isJsxNode:ib,isLongCurriedCallExpression:ub,shouldPrintComma:ob,getCallArguments:sb,iterateCallArgumentsPath:ab,isNextLineEmpty:lb,isCallExpression:cb,isStringLiteral:pb,isObjectProperty:fb}=Gh,{builders:{line:db,hardline:hb,softline:gb,group:mb,indent:yb,conditionalGroup:Db,ifBreak:Eb,breakParent:bb},utils:{willBreak:Cb}}=Ji,{ArgExpansionBailout:vb}=go,{isConciselyPrintedArray:Ab}=YE;function Fb(e,t=!1){return"ObjectExpression"===e.type&&(e.properties.length>0||tb(e))||"ArrayExpression"===e.type&&(e.elements.length>0||tb(e))||"TSTypeAssertion"===e.type&&Fb(e.expression)||"TSAsExpression"===e.type&&Fb(e.expression)||"FunctionExpression"===e.type||"ArrowFunctionExpression"===e.type&&(!e.returnType||!e.returnType.typeAnnotation||"TSTypeReference"!==e.returnType.typeAnnotation.type||"BlockStatement"===(n=e.body).type&&(n.body.some((e=>"EmptyStatement"!==e.type))||tb(n,nb.Dangling)))&&("BlockStatement"===e.body.type||"ArrowFunctionExpression"===e.body.type&&Fb(e.body,!0)||"ObjectExpression"===e.body.type||"ArrayExpression"===e.body.type||!t&&(cb(e.body)||"ConditionalExpression"===e.body.type)||ib(e.body))||"DoExpression"===e.type||"ModuleExpression"===e.type;var n}var xb=function(e,t,n){const r=e.getValue(),i="ImportExpression"===r.type,u=sb(r);if(0===u.length)return["(",KE(e,t,!0),")"];if(function(e){return 2===e.length&&"ArrowFunctionExpression"===e[0].type&&0===eb(e[0]).length&&"BlockStatement"===e[0].body.type&&"ArrayExpression"===e[1].type&&!e.some((e=>tb(e)))}(u))return["(",n(["arguments",0]),", ",n(["arguments",1]),")"];let o=!1,s=!1;const a=u.length-1,l=[];ab(e,((e,r)=>{const i=e.getNode(),u=[n()];r===a||(lb(i,t)?(0===r&&(s=!0),o=!0,u.push(",",hb,hb)):u.push(",",db)),l.push(u)}));const c=i||r.callee&&"Import"===r.callee.type||!ob(t,"all")?"":",";function p(){return mb(["(",yb([db,...l]),c,db,")"],{shouldBreak:!0})}if(o||"Decorator"!==e.getParentNode().type&&rb(u))return p();const f=function(e){if(2!==e.length)return!1;const[t,n]=e;if("ModuleExpression"===t.type&&function(e){return"ObjectExpression"===e.type&&1===e.properties.length&&fb(e.properties[0])&&"Identifier"===e.properties[0].key.type&&"type"===e.properties[0].key.name&&pb(e.properties[0].value)&&"module"===e.properties[0].value.value}(n))return!0;return!tb(t)&&("FunctionExpression"===t.type||"ArrowFunctionExpression"===t.type&&"BlockStatement"===t.body.type)&&"FunctionExpression"!==n.type&&"ArrowFunctionExpression"!==n.type&&"ConditionalExpression"!==n.type&&!Fb(n)}(u),d=function(e,t){const n=QE(e),r=ZE(e);return!tb(n,nb.Leading)&&!tb(n,nb.Trailing)&&Fb(n)&&(!r||r.type!==n.type)&&(2!==e.length||"ArrowFunctionExpression"!==r.type||"ArrayExpression"!==n.type)&&!(e.length>1&&"ArrayExpression"===n.type&&Ab(n,t))}(u,t);if(f||d){if(f?l.slice(1).some(Cb):l.slice(0,-1).some(Cb))return p();let t=[];try{e.try((()=>{ab(e,((e,r)=>{f&&0===r&&(t=[[n([],{expandFirstArg:!0}),l.length>1?",":"",s?hb:db,s?hb:""],...l.slice(1)]),d&&r===a&&(t=[...l.slice(0,-1),n([],{expandLastArg:!0})])}))}))}catch(e){if(e instanceof vb)return p();throw e}return[l.some(Cb)?bb:"",Db([["(",...t,")"],f?["(",mb(t[0],{shouldBreak:!0}),...t.slice(1),")"]:["(",...l.slice(0,-1),mb(QE(t),{shouldBreak:!0}),")"],p()])]}const h=["(",yb([gb,...l]),Eb(c),gb,")"];return ub(e)?h:mb(h,{shouldBreak:l.some(Cb)||o})};const{builders:{softline:Sb,group:wb,indent:Tb,label:Bb}}=Ji,{isNumericLiteral:kb,isMemberExpression:Nb,isCallExpression:Pb}=Gh,{printOptionalToken:Ob}=wE;function Ib(e,t,n){const r=n("property"),i=e.getValue(),u=Ob(e);return i.computed?!i.property||kb(i.property)?[u,"[",r,"]"]:wb([u,"[",Tb([Sb,r]),Sb,"]"]):[u,".",r]}var jb={printMemberExpression:function(e,t,n){const r=e.getValue(),i=e.getParentNode();let u,o=0;do{u=e.getParentNode(o),o++}while(u&&(Nb(u)||"TSNonNullExpression"===u.type));const s=n("object"),a=Ib(e,t,n),l=u&&("NewExpression"===u.type||"BindExpression"===u.type||"AssignmentExpression"===u.type&&"Identifier"!==u.left.type)||r.computed||"Identifier"===r.object.type&&"Identifier"===r.property.type&&!Nb(i)||("AssignmentExpression"===i.type||"VariableDeclarator"===i.type)&&(Pb(r.object)&&r.object.arguments.length>0||"TSNonNullExpression"===r.object.type&&Pb(r.object.expression)&&r.object.expression.arguments.length>0||"member-chain"===s.label);return Bb("member-chain"===s.label?"member-chain":"member",[s,l?a:wb(Tb([Sb,a]))])},printMemberLookup:Ib};const{printComments:Lb}=Wf,{getLast:_b,isNextLineEmptyAfterIndex:Mb,getNextNonSpaceNonCommentCharacterIndex:Rb}=fi,{isCallExpression:$b,isMemberExpression:Vb,isFunctionOrArrowExpression:qb,isLongCurriedCallExpression:Wb,isMemberish:Ub,isNumericLiteral:zb,isSimpleCallArgument:Gb,hasComment:Hb,CommentCheckFlags:Jb,isNextLineEmpty:Xb}=Gh,{locEnd:Yb}=Rl,{builders:{join:Kb,hardline:Qb,group:Zb,indent:eC,conditionalGroup:tC,breakParent:nC,label:rC},utils:{willBreak:iC}}=Ji,{printMemberLookup:uC}=jb,{printOptionalToken:oC,printFunctionTypeParameters:sC,printBindExpressionCallee:aC}=wE;var lC=function(e,t,n){const r=e.getParentNode(),i=!r||"ExpressionStatement"===r.type,u=[];function o(e){const{originalText:n}=t,r=Rb(n,e,Yb);return")"===n.charAt(r)?!1!==r&&Mb(n,r+1):Xb(e,t)}function s(e){const r=e.getValue();$b(r)&&(Ub(r.callee)||$b(r.callee))?(u.unshift({node:r,printed:[Lb(e,[oC(e),sC(e,t,n),xb(e,t,n)],t),o(r)?Qb:""]}),e.call((e=>s(e)),"callee")):Ub(r)?(u.unshift({node:r,needsParens:Yy(e,t),printed:Lb(e,Vb(r)?uC(e,t,n):aC(e,t,n),t)}),e.call((e=>s(e)),"object")):"TSNonNullExpression"===r.type?(u.unshift({node:r,printed:Lb(e,"!",t)}),e.call((e=>s(e)),"expression")):u.unshift({node:r,printed:n()})}const a=e.getValue();u.unshift({node:a,printed:[oC(e),sC(e,t,n),xb(e,t,n)]}),a.callee&&e.call((e=>s(e)),"callee");const l=[];let c=[u[0]],p=1;for(;p0&&l.push(c);const h=l.length>=2&&!Hb(l[1][0].node)&&function(e){const n=e[1].length>0&&e[1][0].node.computed;if(1===e[0].length){const r=e[0][0].node;return"ThisExpression"===r.type||"Identifier"===r.type&&(d(r.name)||i&&function(e){return e.length<=t.tabWidth}(r.name)||n)}const r=_b(e[0]).node;return Vb(r)&&"Identifier"===r.property.type&&(d(r.property.name)||n)}(l);function g(e){const t=e.map((e=>e.printed));return e.length>0&&_b(e).needsParens?["(",...t,")"]:t}const m=l.map(g),y=m,D=h?3:2,E=l.flat(),b=E.slice(1,-1).some((e=>Hb(e.node,Jb.Leading)))||E.slice(0,-1).some((e=>Hb(e.node,Jb.Trailing)))||l[D]&&Hb(l[D][0].node,Jb.Leading);if(l.length<=D&&!b)return Wb(e)?y:Zb(y);const C=_b(l[h?1:0]).node,v=!$b(C)&&o(C),A=[g(l[0]),h?l.slice(1,2).map(g):"",v?Qb:"",function(e){return 0===e.length?"":eC(Zb([Qb,Kb(Qb,e.map(g))]))}(l.slice(h?2:1))],F=u.map((({node:e})=>e)).filter($b);let x;return x=b||F.length>2&&F.some((e=>!e.arguments.every((e=>Gb(e,0)))))||m.slice(0,-1).some(iC)||function(){const e=_b(_b(l)).node,t=_b(m);return $b(e)&&iC(t)&&F.slice(0,-1).some((e=>e.arguments.some(qb)))}()?Zb(A):[iC(y)||v?nC:"",tC([y,A])],rC("member-chain",x)};const{builders:{join:cC,group:pC}}=Ji,{getCallArguments:fC,hasFlowAnnotationComment:dC,isCallExpression:hC,isMemberish:gC,isStringLiteral:mC,isTemplateOnItsOwnLine:yC,isTestCall:DC,iterateCallArgumentsPath:EC}=Gh,{printOptionalToken:bC,printFunctionTypeParameters:CC}=wE;var vC={printCallExpression:function(e,t,n){const r=e.getValue(),i=e.getParentNode(),u="NewExpression"===r.type,o="ImportExpression"===r.type,s=bC(e),a=fC(r);if(a.length>0&&(!o&&!u&&function(e,t){if("Identifier"!==e.callee.type)return!1;if("require"===e.callee.name)return!0;if("define"===e.callee.name){const n=fC(e);return"ExpressionStatement"===t.type&&(1===n.length||2===n.length&&"ArrayExpression"===n[0].type||3===n.length&&mC(n[0])&&"ArrayExpression"===n[1].type)}return!1}(r,i)||1===a.length&&yC(a[0],t.originalText)||!u&&DC(r,i))){const r=[];return EC(e,(()=>{r.push(n())})),[u?"new ":"",n("callee"),s,CC(e,t,n),"(",cC(", ",r),")"]}const l=("babel"===t.parser||"babel-flow"===t.parser)&&r.callee&&"Identifier"===r.callee.type&&dC(r.callee.trailingComments);if(l&&(r.callee.trailingComments[0].printed=!0),!o&&!u&&gC(r.callee)&&!e.call((e=>Yy(e,t)),"callee"))return lC(e,t,n);const c=[u?"new ":"",o?"import":n("callee"),s,l?`/*:: ${r.callee.trailingComments[0].value.slice(2).trim()} */`:"",CC(e,t,n),xb(e,t,n)];return o||hC(r.callee)?pC(c):c}};const{isNonEmptyArray:AC,getStringWidth:FC}=fi,{builders:{line:xC,group:SC,indent:wC,indentIfBreak:TC},utils:{cleanDoc:BC,willBreak:kC}}=Ji,{hasLeadingOwnLineComment:NC,isBinaryish:PC,isStringLiteral:OC,isLiteral:IC,isNumericLiteral:jC,isCallExpression:LC,isMemberExpression:_C,getCallArguments:MC,rawText:RC,hasComment:$C,isSignedNumericLiteral:VC,isObjectProperty:qC}=Gh,{shouldInlineLogicalExpression:WC}=BD,{printCallExpression:UC}=vC;function zC(e,t,n,r,i,u){const o=function(e,t,n,r,i){const u=e.getValue(),o=u[i];if(!o)return"only-left";const s=!GC(o);if(e.match(GC,HC,(e=>!s||"ExpressionStatement"!==e.type&&"VariableDeclaration"!==e.type)))return s?"ArrowFunctionExpression"===o.type&&"ArrowFunctionExpression"===o.body.type?"chain-tail-arrow-chain":"chain-tail":"chain";if(!s&&GC(o.right)||NC(t.originalText,o))return"break-after-operator";if("CallExpression"===o.type&&"require"===o.callee.name||"json5"===t.parser||"json"===t.parser)return"never-break-after-operator";if(function(e){if(HC(e)){const t=e.left||e.id;return"ObjectPattern"===t.type&&t.properties.length>2&&t.properties.some((e=>qC(e)&&(!e.shorthand||e.value&&"AssignmentPattern"===e.value.type)))}return!1}(u)||function(e){const t=function(e){if(function(e){return"TSTypeAliasDeclaration"===e.type||"TypeAlias"===e.type}(e)&&e.typeParameters&&e.typeParameters.params)return e.typeParameters.params;return null}(e);if(AC(t)){const n="TSTypeAliasDeclaration"===e.type?"constraint":"bound";if(t.length>1&&t.some((e=>e[n]||e.default)))return!0}return!1}(u)||function(e){if("VariableDeclarator"!==e.type)return!1;const{typeAnnotation:t}=e.id;if(!t||!t.typeAnnotation)return!1;const n=JC(t.typeAnnotation);return AC(n)&&n.length>1&&n.some((e=>AC(JC(e))||"TSConditionalType"===e.type))}(u))return"break-lhs";const a=function(e,t,n){if(!qC(e))return!1;t=BC(t);const r=3;return"string"==typeof t&&FC(t)function(e,t,n,r){const i=e.getValue();if(PC(i)&&!WC(i))return!0;switch(i.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"ConditionalExpression":{const{test:e}=i;return PC(e)&&!WC(e)}case"ClassExpression":return AC(i.decorators)}if(r)return!1;let u=i;const o=[];for(;;)if("UnaryExpression"===u.type)u=u.argument,o.push("argument");else{if("TSNonNullExpression"!==u.type)break;u=u.expression,o.push("expression")}if(OC(u)||e.call((()=>XC(e,t,n)),...o))return!0;return!1}(e,t,n,a)),i))return"break-after-operator";if(a||"TemplateLiteral"===o.type||"TaggedTemplateExpression"===o.type||"BooleanLiteral"===o.type||jC(o)||"ClassExpression"===o.type)return"never-break-after-operator";return"fluid"}(e,t,n,r,u),s=n(u,{assignmentLayout:o});switch(o){case"break-after-operator":return SC([SC(r),i,SC(wC([xC,s]))]);case"never-break-after-operator":return SC([SC(r),i," ",s]);case"fluid":{const e=Symbol("assignment");return SC([SC(r),i,SC(wC(xC),{id:e}),TC(s,{groupId:e})])}case"break-lhs":return SC([r,i," ",SC(s)]);case"chain":return[SC(r),i,xC,s];case"chain-tail":return[SC(r),i,wC([xC,s])];case"chain-tail-arrow-chain":return[SC(r),i,s];case"only-left":return r}}function GC(e){return"AssignmentExpression"===e.type}function HC(e){return GC(e)||"VariableDeclarator"===e.type}function JC(e){return function(e){return"TSTypeReference"===e.type||"GenericTypeAnnotation"===e.type}(e)&&e.typeParameters&&e.typeParameters.params?e.typeParameters.params:null}function XC(e,t,n,r=!1){const i=e.getValue(),u=()=>XC(e,t,n,!0);if("TSNonNullExpression"===i.type)return e.call(u,"expression");if(LC(i)){if("member-chain"===UC(e,t,n).label)return!1;const r=MC(i);return!!(0===r.length||1===r.length&&function(e,{printWidth:t}){if($C(e))return!1;const n=.25*t;if("ThisExpression"===e.type||"Identifier"===e.type&&e.name.length<=n||VC(e)&&!$C(e.argument))return!0;const r="Literal"===e.type&&"regex"in e&&e.regex.pattern||"RegExpLiteral"===e.type&&e.pattern;if(r)return r.length<=n;if(OC(e))return RC(e).length<=n;if("TemplateLiteral"===e.type)return 0===e.expressions.length&&e.quasis[0].value.raw.length<=n&&!e.quasis[0].value.raw.includes("\n");return IC(e)}(r[0],t))&&(!function(e,t){const n=function(e){return e.typeParameters&&e.typeParameters.params||e.typeArguments&&e.typeArguments.params}(e);if(AC(n)){if(n.length>1)return!0;if(1===n.length){const e=n[0];if("TSUnionType"===e.type||"UnionTypeAnnotation"===e.type||"TSIntersectionType"===e.type||"IntersectionTypeAnnotation"===e.type)return!0}const r=e.typeParameters?"typeParameters":"typeArguments";if(kC(t(r)))return!0}return!1}(i,n)&&e.call(u,"callee"))}return _C(i)?e.call(u,"object"):r&&("Identifier"===i.type||"ThisExpression"===i.type)}var YC={printVariableDeclarator:function(e,t,n){return zC(e,t,n,n("id")," =","init")},printAssignmentExpression:function(e,t,n){const r=e.getValue();return zC(e,t,n,n("left"),[" ",r.operator],"right")},printAssignment:zC};const{getNextNonSpaceNonCommentCharacter:KC}=fi,{printDanglingComments:QC}=Wf,{builders:{line:ZC,hardline:ev,softline:tv,group:nv,indent:rv,ifBreak:iv},utils:{removeLines:uv,willBreak:ov}}=Ji,{getFunctionParameters:sv,iterateFunctionParametersPath:av,isSimpleType:lv,isTestCall:cv,isTypeAnnotationAFunction:pv,isObjectType:fv,isObjectTypePropertyAFunction:dv,hasRestParameter:hv,shouldPrintComma:gv,hasComment:mv,isNextLineEmpty:yv}=Gh,{locEnd:Dv}=Rl,{ArgExpansionBailout:Ev}=go,{printFunctionTypeParameters:bv}=wE;function Cv(e){if(!e)return!1;const t=sv(e);if(1!==t.length)return!1;const[n]=t;return!mv(n)&&("ObjectPattern"===n.type||"ArrayPattern"===n.type||"Identifier"===n.type&&n.typeAnnotation&&("TypeAnnotation"===n.typeAnnotation.type||"TSTypeAnnotation"===n.typeAnnotation.type)&&fv(n.typeAnnotation.typeAnnotation)||"FunctionTypeParam"===n.type&&fv(n.typeAnnotation)||"AssignmentPattern"===n.type&&("ObjectPattern"===n.left.type||"ArrayPattern"===n.left.type)&&("Identifier"===n.right.type||"ObjectExpression"===n.right.type&&0===n.right.properties.length||"ArrayExpression"===n.right.type&&0===n.right.elements.length))}var vv={printFunctionParameters:function(e,t,n,r,i){const u=e.getValue(),o=sv(u),s=i?bv(e,n,t):"";if(0===o.length)return[s,"(",QC(e,n,!0,(e=>")"===KC(n.originalText,e,Dv))),")"];const a=e.getParentNode(),l=cv(a),c=Cv(u),p=[];if(av(e,((e,r)=>{const i=r===o.length-1;i&&u.rest&&p.push("..."),p.push(t()),i||(p.push(","),l||c?p.push(" "):yv(o[r],n)?p.push(ev,ev):p.push(ZC))})),r){if(ov(s)||ov(p))throw new Ev;return nv([uv(s),"(",uv(p),")"])}const f=o.every((e=>!e.decorators));return c&&f||l?[s,"(",...p,")"]:(dv(a)||pv(a)||"TypeAlias"===a.type||"UnionTypeAnnotation"===a.type||"TSUnionType"===a.type||"IntersectionTypeAnnotation"===a.type||"FunctionTypeAnnotation"===a.type&&a.returnType===u)&&1===o.length&&null===o[0].name&&u.this!==o[0]&&o[0].typeAnnotation&&null===u.typeParameters&&lv(o[0].typeAnnotation)&&!u.rest?"always"===n.arrowParens?["(",...p,")"]:p:[s,"(",rv([tv,...p]),iv(!hv(u)&&gv(n,"all")?",":""),tv,")"]},shouldHugFunctionParameters:Cv,shouldGroupFunctionParameters:function(e,t){const n=function(e){let t;return e.returnType?(t=e.returnType,t.typeAnnotation&&(t=t.typeAnnotation)):e.typeAnnotation&&(t=e.typeAnnotation),t}(e);if(!n)return!1;const r=e.typeParameters&&e.typeParameters.params;if(r){if(r.length>1)return!1;if(1===r.length){const e=r[0];if(e.constraint||e.default)return!1}}return 1===sv(e).length&&(fv(n)||ov(t))}};const{printComments:Av,printDanglingComments:Fv}=Wf,{getLast:xv}=fi,{builders:{group:Sv,join:wv,line:Tv,softline:Bv,indent:kv,align:Nv,ifBreak:Pv}}=Ji,{locStart:Ov}=Rl,{isSimpleType:Iv,isObjectType:jv,hasLeadingOwnLineComment:Lv,isObjectTypePropertyAFunction:_v,shouldPrintComma:Mv}=Gh,{printAssignment:Rv}=YC,{printFunctionParameters:$v,shouldGroupFunctionParameters:Vv}=vv,{printArrayItems:qv}=YE;function Wv(e){if(Iv(e)||jv(e))return!0;if("UnionTypeAnnotation"===e.type||"TSUnionType"===e.type){const t=e.types.filter((e=>"VoidTypeAnnotation"===e.type||"TSVoidKeyword"===e.type||"NullLiteralTypeAnnotation"===e.type||"TSNullKeyword"===e.type)).length,n=e.types.some((e=>"ObjectTypeAnnotation"===e.type||"TSTypeLiteral"===e.type||"GenericTypeAnnotation"===e.type||"TSTypeReference"===e.type));if(e.types.length-1===t&&n)return!0}return!1}var Uv={printOpaqueType:function(e,t,n){const r=t.semi?";":"",i=e.getValue(),u=[];return u.push("opaque type ",n("id"),n("typeParameters")),i.supertype&&u.push(": ",n("supertype")),i.impltype&&u.push(" = ",n("impltype")),u.push(r),u},printTypeAlias:function(e,t,n){const r=t.semi?";":"",i=e.getValue(),u=[];i.declare&&u.push("declare "),u.push("type ",n("id"),n("typeParameters"));const o="TSTypeAliasDeclaration"===i.type?"typeAnnotation":"right";return[Rv(e,t,n,u," =",o),r]},printIntersectionType:function(e,t,n){const r=e.getValue(),i=e.map(n,"types"),u=[];let o=!1;for(let e=0;e1&&(o=!0),u.push(" & ",e>1?kv(i[e]):i[e])):u.push(kv([" &",Tv,i[e]]));return Sv(u)},printUnionType:function(e,t,n){const r=e.getValue(),i=e.getParentNode(),u=!("TypeParameterInstantiation"===i.type||"TSTypeParameterInstantiation"===i.type||"GenericTypeAnnotation"===i.type||"TSTypeReference"===i.type||"TSTypeAssertion"===i.type||"TupleTypeAnnotation"===i.type||"TSTupleType"===i.type||"FunctionTypeParam"===i.type&&!i.name&&e.getParentNode(1).this!==i||("TypeAlias"===i.type||"VariableDeclarator"===i.type||"TSTypeAliasDeclaration"===i.type)&&Lv(t.originalText,r)),o=Wv(r),s=e.map((e=>{let r=n();return o||(r=Nv(2,r)),Av(e,r,t)}),"types");if(o)return wv(" | ",s);const a=u&&!Lv(t.originalText,r),l=[Pv([a?Tv:"","| "]),wv([Tv,"| "],s)];return Yy(e,t)?Sv([kv(l),Bv]):"TupleTypeAnnotation"===i.type&&i.types.length>1||"TSTupleType"===i.type&&i.elementTypes.length>1?Sv([kv([Pv(["(",Bv]),l]),Bv,Pv(")")]):Sv(u?kv(l):l)},printFunctionType:function(e,t,n){const r=e.getValue(),i=[],u=e.getParentNode(0),o=e.getParentNode(1),s=e.getParentNode(2);let a="TSFunctionType"===r.type||!(("ObjectTypeProperty"===u.type||"ObjectTypeInternalSlot"===u.type)&&!u.variance&&!u.optional&&Ov(u)===Ov(r)||"ObjectTypeCallProperty"===u.type||s&&"DeclareFunction"===s.type),l=a&&("TypeAnnotation"===u.type||"TSTypeAnnotation"===u.type);const c=l&&a&&("TypeAnnotation"===u.type||"TSTypeAnnotation"===u.type)&&"ArrowFunctionExpression"===o.type;_v(u)&&(a=!0,l=!0),c&&i.push("(");const p=$v(e,n,t,!1,!0),f=r.returnType||r.predicate||r.typeAnnotation?[a?" => ":": ",n("returnType"),n("predicate"),n("typeAnnotation")]:"",d=Vv(r,f);return i.push(d?Sv(p):p),f&&i.push(f),c&&i.push(")"),Sv(i)},printTupleType:function(e,t,n){const r=e.getValue(),i="TSTupleType"===r.type?"elementTypes":"types",u=r[i].length>0&&"TSRestType"===xv(r[i]).type;return Sv(["[",kv([Bv,qv(e,t,i,n)]),Pv(Mv(t,"all")&&!u?",":""),Fv(e,t,!0),Bv,"]"])},printIndexedAccessType:function(e,t,n){const r=e.getValue(),i="OptionalIndexedAccessType"===r.type&&r.optional?"?.[":"[";return[n("objectType"),i,n("indexType"),"]"]},shouldHugType:Wv};const{printDanglingComments:zv}=Wf,{builders:{join:Gv,line:Hv,hardline:Jv,softline:Xv,group:Yv,indent:Kv,ifBreak:Qv}}=Ji,{isTestCall:Zv,hasComment:eA,CommentCheckFlags:tA,isTSXFile:nA,shouldPrintComma:rA,getFunctionParameters:iA}=Gh,{createGroupIdMapper:uA}=fi,{shouldHugType:oA}=Uv,sA=uA("typeParameters");function aA(e,t){const n=e.getValue();if(!eA(n,tA.Dangling))return"";const r=!eA(n,tA.Line),i=zv(e,t,r);return r?i:[i,Jv]}var lA={printTypeParameter:function(e,t,n){const r=e.getValue(),i=[],u=e.getParentNode();return"TSMappedType"===u.type?(i.push("[",n("name")),r.constraint&&i.push(" in ",n("constraint")),u.nameType&&i.push(" as ",e.callParent((()=>n("nameType")))),i.push("]"),i):(r.variance&&i.push(n("variance")),i.push(n("name")),r.bound&&i.push(": ",n("bound")),r.constraint&&i.push(" extends ",n("constraint")),r.default&&i.push(" = ",n("default")),i)},printTypeParameters:function(e,t,n,r){const i=e.getValue();if(!i[r])return"";if(!Array.isArray(i[r]))return n(r);const u=e.getNode(2);if(u&&Zv(u)||0===i[r].length||1===i[r].length&&(oA(i[r][0])||"NullableTypeAnnotation"===i[r][0].type))return["<",Gv(", ",e.map(n,r)),aA(e,t),">"];const o="TSTypeParameterInstantiation"===i.type?"":1===iA(i).length&&nA(t)&&!i[r][0].constraint&&"ArrowFunctionExpression"===e.getParentNode().type?",":rA(t,"all")?Qv(","):"";return Yv(["<",Kv([Xv,Gv([",",Hv],e.map(n,r))]),o,Xv,">"],{id:sA(i)})},getTypeParametersGroupId:sA};const{printComments:cA}=Wf,{printString:pA,printNumber:fA}=fi,{isNumericLiteral:dA,isSimpleNumber:hA,isStringLiteral:gA,isStringPropSafeToUnquote:mA,rawText:yA}=Gh,{printAssignment:DA}=YC,EA=new WeakMap;function bA(e,t,n){const r=e.getNode();if(r.computed)return["[",n("key"),"]"];const i=e.getParentNode(),{key:u}=r;if("ClassPrivateProperty"===r.type&&"Identifier"===u.type)return["#",n("key")];if("consistent"===t.quoteProps&&!EA.has(i)){const e=(i.properties||i.body||i.members).some((e=>!e.computed&&e.key&&gA(e.key)&&!mA(e,t)));EA.set(i,e)}if(("Identifier"===u.type||dA(u)&&hA(fA(yA(u)))&&String(u.value)===fA(yA(u))&&"typescript"!==t.parser&&"babel-ts"!==t.parser)&&("json"===t.parser||"consistent"===t.quoteProps&&EA.get(i))){const n=pA(JSON.stringify("Identifier"===u.type?u.name:u.value.toString()),t);return e.call((e=>cA(e,n,t)),"key")}return mA(r,t)&&("as-needed"===t.quoteProps||"consistent"===t.quoteProps&&!EA.get(i))?e.call((e=>cA(e,/^\d/.test(u.value)?fA(u.value):u.value,t)),"key"):n("key")}var CA={printProperty:function(e,t,n){return e.getValue().shorthand?n("value"):DA(e,t,n,bA(e,t,n),":","value")},printPropertyKey:bA};const{printDanglingComments:vA,printCommentsSeparately:AA}=Wf,{getNextNonSpaceNonCommentCharacterIndex:FA}=fi,{builders:{line:xA,softline:SA,group:wA,indent:TA,ifBreak:BA,hardline:kA,join:NA,indentIfBreak:PA},utils:{removeLines:OA,willBreak:IA}}=Ji,{ArgExpansionBailout:jA}=go,{getFunctionParameters:LA,hasLeadingOwnLineComment:_A,isFlowAnnotationComment:MA,isJsxNode:RA,isTemplateOnItsOwnLine:$A,shouldPrintComma:VA,startsWithNoLookaheadToken:qA,isBinaryish:WA,isLineComment:UA,hasComment:zA,getComments:GA,CommentCheckFlags:HA,isCallLikeExpression:JA,isCallExpression:XA,getCallArguments:YA,hasNakedLeftSide:KA,getLeftSide:QA}=Gh,{locEnd:ZA}=Rl,{printFunctionParameters:eF,shouldGroupFunctionParameters:tF}=vv,{printPropertyKey:nF}=CA,{printFunctionTypeParameters:rF}=wE;function iF(e,t,n){const r=e.getNode(),i=eF(e,n,t),u=oF(e,n,t),o=tF(r,u),s=[rF(e,t,n),wA([o?wA(i):i,u])];return r.body?s.push(" ",n("body")):s.push(t.semi?";":""),s}function uF(e,t){if("always"===t.arrowParens)return!1;if("avoid"===t.arrowParens){return function(e){const t=LA(e);return!(1!==t.length||e.typeParameters||zA(e,HA.Dangling)||"Identifier"!==t[0].type||t[0].typeAnnotation||zA(t[0])||t[0].optional||e.predicate||e.returnType)}(e.getValue())}return!1}function oF(e,t,n){const r=e.getValue(),i=t("returnType");if(r.returnType&&MA(n.originalText,r.returnType))return[" /*: ",i," */"];const u=[i];return r.returnType&&r.returnType.typeAnnotation&&u.unshift(": "),r.predicate&&u.push(r.returnType?" ":": ",t("predicate")),u}function sF(e,t,n){const r=e.getValue(),i=t.semi?";":"",u=[];r.argument&&(!function(e,t){if(_A(e.originalText,t))return!0;if(KA(t)){let n,r=t;for(;n=QA(r);)if(r=n,_A(e.originalText,r))return!0}return!1}(t,r.argument)?WA(r.argument)||"SequenceExpression"===r.argument.type?u.push(wA([BA(" ("," "),TA([SA,n("argument")]),SA,BA(")")])):u.push(" ",n("argument")):u.push([" (",TA([kA,n("argument")]),kA,")"]));const o=GA(r),s=Sn(o),a=s&&UA(s);return a&&u.push(i),zA(r,HA.Dangling)&&u.push(" ",vA(e,t,!0)),a||u.push(i),u}var aF={printFunction:function(e,t,n,r){const i=e.getValue();let u=!1;if(("FunctionDeclaration"===i.type||"FunctionExpression"===i.type)&&r&&r.expandLastArg){const t=e.getParentNode();XA(t)&&YA(t).length>1&&(u=!0)}const o=[];"TSDeclareFunction"===i.type&&i.declare&&o.push("declare "),i.async&&o.push("async "),i.generator?o.push("function* "):o.push("function "),i.id&&o.push(t("id"));const s=eF(e,t,n,u),a=oF(e,t,n),l=tF(i,a);return o.push(rF(e,n,t),wA([l?wA(s):s,a]),i.body?" ":"",t("body")),!n.semi||!i.declare&&i.body||o.push(";"),o},printArrowFunction:function(e,t,n,r){let i=e.getValue();const u=[],o=[];let s=!1;if(function a(){const l=function(e,t,n,r){const i=[];if(e.getValue().async&&i.push("async "),uF(e,t))i.push(n(["params",0]));else{const u=r&&(r.expandLastArg||r.expandFirstArg);let o=oF(e,n,t);if(u){if(IA(o))throw new jA;o=wA(OA(o))}i.push(wA([eF(e,n,t,u,!0),o]))}const u=vA(e,t,!0,(e=>{const n=FA(t.originalText,e,ZA);return!1!==n&&"=>"===t.originalText.slice(n,n+2)}));return u&&i.push(" ",u),i}(e,t,n,r);if(0===u.length)u.push(l);else{const{leading:n,trailing:r}=AA(e,t);u.push([n,l]),o.unshift(r)}s=s||i.returnType&&LA(i).length>0||i.typeParameters||LA(i).some((e=>"Identifier"!==e.type)),"ArrowFunctionExpression"!==i.body.type||r&&r.expandLastArg?o.unshift(n("body",r)):(i=i.body,e.call(a,"body"))}(),u.length>1)return function(e,t,n,r,i,u){const o=e.getName(),s=e.getParentNode(),a=JA(s)&&"callee"===o,l=Boolean(t&&t.assignmentLayout),c="BlockStatement"!==u.body.type&&"ObjectExpression"!==u.body.type,p=a&&c||t&&"chain-tail-arrow-chain"===t.assignmentLayout,f=Symbol("arrow-chain");return wA([wA(TA([a||l?SA:"",wA(NA([" =>",xA],n),{shouldBreak:r})]),{id:f,shouldBreak:p})," =>",PA(c?TA([xA,i]):[" ",i],{groupId:f}),a?BA(SA,"",{groupId:f}):""])}(e,r,u,s,o,i);const a=u;if(a.push(" =>"),!_A(t.originalText,i.body)&&("ArrayExpression"===i.body.type||"ObjectExpression"===i.body.type||"BlockStatement"===i.body.type||RA(i.body)||$A(i.body,t.originalText)||"ArrowFunctionExpression"===i.body.type||"DoExpression"===i.body.type))return wA([...a," ",o]);if("SequenceExpression"===i.body.type)return wA([...a,wA([" (",TA([SA,o]),SA,")"])]);const l=(r&&r.expandLastArg||"JSXExpressionContainer"===e.getParentNode().type)&&!zA(i),c=r&&r.expandLastArg&&VA(t,"all"),p="ConditionalExpression"===i.body.type&&!qA(i.body,!1);return wA([...a,wA([TA([xA,p?BA("","("):"",o,p?BA("",")"):""]),l?[BA(c?",":""),SA]:""])])},printMethod:function(e,t,n){const r=e.getNode(),{kind:i}=r,u=r.value||r,o=[];return i&&"init"!==i&&"method"!==i&&"constructor"!==i?(yf.ok("get"===i||"set"===i),o.push(i," ")):u.async&&o.push("async "),u.generator&&o.push("*"),o.push(nF(e,t,n),r.optional||r.key.optional?"?":""),r===u?o.push(iF(e,t,n)):"FunctionExpression"===u.type?o.push(e.call((e=>iF(e,t,n)),"value")):o.push(n("value")),o},printReturnStatement:function(e,t,n){return["return",sF(e,t,n)]},printThrowStatement:function(e,t,n){return["throw",sF(e,t,n)]},printMethodInternal:iF,shouldPrintParamsWithoutParens:uF};const{isNonEmptyArray:lF,hasNewline:cF}=fi,{builders:{line:pF,hardline:fF,join:dF,breakParent:hF,group:gF}}=Ji,{locStart:mF,locEnd:yF}=Rl,{getParentExportDeclaration:DF}=Gh;function EF(e,t){return e.decorators.some((e=>cF(t.originalText,yF(e))))}function bF(e){if("ExportDefaultDeclaration"!==e.type&&"ExportNamedDeclaration"!==e.type&&"DeclareExportDeclaration"!==e.type)return!1;const t=e.declaration&&e.declaration.decorators;return lF(t)&&mF(e,{ignoreDecorators:!0})>mF(t[0])}var CF={printDecorators:function(e,t,n){const r=e.getValue(),{decorators:i}=r;if(!lF(i)||bF(e.getParentNode()))return;const u="ClassExpression"===r.type||"ClassDeclaration"===r.type||EF(r,t);return[DF(e)?fF:u?hF:"",dF(pF,e.map(n,"decorators")),pF]},printClassMemberDecorators:function(e,t,n){const r=e.getValue();return gF([dF(pF,e.map(n,"decorators")),EF(r,t)?fF:pF])},printDecoratorsBeforeExport:function(e,t,n){return[dF(fF,e.map(n,"declaration","decorators")),fF]},hasDecoratorsBeforeExport:bF};const{isNonEmptyArray:vF,createGroupIdMapper:AF}=fi,{printComments:FF,printDanglingComments:xF}=Wf,{builders:{join:SF,line:wF,hardline:TF,softline:BF,group:kF,indent:NF,ifBreak:PF}}=Ji,{hasComment:OF,CommentCheckFlags:IF}=Gh,{getTypeParametersGroupId:jF}=lA,{printMethod:LF}=aF,{printOptionalToken:_F,printTypeAnnotation:MF}=wE,{printPropertyKey:RF}=CA,{printAssignment:$F}=YC,{printClassMemberDecorators:VF}=CF;const qF=AF("heritageGroup");function WF(e){return e.typeParameters&&!OF(e.typeParameters,IF.Trailing|IF.Line)&&!function(e){return["superClass","extends","mixins","implements"].filter((t=>Boolean(e[t]))).length>1}(e)}function UF(e,t,n,r){const i=e.getValue();if(!vF(i[r]))return"";const u=xF(e,t,!0,(({marker:e})=>e===r));return[WF(i)?PF(" ",wF,{groupId:jF(i.typeParameters)}):wF,u,u&&TF,r,kF(NF([wF,SF([",",wF],e.map(n,r))]))]}function zF(e,t,n){const r=n("superClass");return"AssignmentExpression"===e.getParentNode().type?kF(PF(["(",NF([BF,r]),BF,")"],r)):r}var GF={printClass:function(e,t,n){const r=e.getValue(),i=[];r.declare&&i.push("declare "),r.abstract&&i.push("abstract "),i.push("class");const u=r.id&&OF(r.id,IF.Trailing)||r.superClass&&OF(r.superClass)||vF(r.extends)||vF(r.mixins)||vF(r.implements),o=[],s=[];if(r.id&&o.push(" ",n("id")),o.push(n("typeParameters")),r.superClass){const r=["extends ",zF(e,t,n),n("superTypeParameters")],i=e.call((e=>FF(e,r,t)),"superClass");u?s.push(wF,kF(i)):s.push(" ",i)}else s.push(UF(e,t,n,"extends"));if(s.push(UF(e,t,n,"mixins"),UF(e,t,n,"implements")),u){let e;e=WF(r)?[...o,NF(s)]:NF([...o,s]),i.push(kF(e,{id:qF(r)}))}else i.push(...o,...s);return i.push(" ",n("body")),i},printClassMethod:function(e,t,n){const r=e.getValue(),i=[];return vF(r.decorators)&&i.push(VF(e,t,n)),r.accessibility&&i.push(r.accessibility+" "),r.readonly&&i.push("readonly "),r.declare&&i.push("declare "),r.static&&i.push("static "),("TSAbstractMethodDefinition"===r.type||r.abstract)&&i.push("abstract "),r.override&&i.push("override "),i.push(LF(e,t,n)),i},printClassProperty:function(e,t,n){const r=e.getValue(),i=[],u=t.semi?";":"";return vF(r.decorators)&&i.push(VF(e,t,n)),r.accessibility&&i.push(r.accessibility+" "),r.declare&&i.push("declare "),r.static&&i.push("static "),("TSAbstractClassProperty"===r.type||r.abstract)&&i.push("abstract "),r.override&&i.push("override "),r.readonly&&i.push("readonly "),r.variance&&i.push(n("variance")),i.push(RF(e,t,n),_F(e),MF(e,t,n)),[$F(e,t,n,i," =","value"),u]},printHardlineAfterHeritage:function(e){return PF(TF,"",{groupId:qF(e)})}};const{isNonEmptyArray:HF}=fi,{builders:{join:JF,line:XF,group:YF,indent:KF,ifBreak:QF}}=Ji,{hasComment:ZF,identity:ex,CommentCheckFlags:tx}=Gh,{getTypeParametersGroupId:nx}=lA,{printTypeScriptModifiers:rx}=wE;var ix={printInterface:function(e,t,n){const r=e.getValue(),i=[];r.declare&&i.push("declare "),"TSInterfaceDeclaration"===r.type&&i.push(r.abstract?"abstract ":"",rx(e,t,n)),i.push("interface");const u=[],o=[];"InterfaceTypeAnnotation"!==r.type&&u.push(" ",n("id"),n("typeParameters"));const s=r.typeParameters&&!ZF(r.typeParameters,tx.Trailing|tx.Line);return HF(r.extends)&&o.push(s?QF(" ",XF,{groupId:nx(r.typeParameters)}):XF,"extends ",(1===r.extends.length?ex:KF)(JF([",",XF],e.map(n,"extends")))),r.id&&ZF(r.id,tx.Trailing)||HF(r.extends)?s?i.push(YF([...u,KF(o)])):i.push(YF(KF([...u,...o]))):i.push(...u,...o),i.push(" ",n("body")),YF(i)}};const{isNonEmptyArray:ux}=fi,{builders:{softline:ox,group:sx,indent:ax,join:lx,line:cx,ifBreak:px,hardline:fx}}=Ji,{printDanglingComments:dx}=Wf,{hasComment:hx,CommentCheckFlags:gx,shouldPrintComma:mx,needsHardlineAfterDanglingComment:yx}=Gh,{locStart:Dx,hasSameLoc:Ex}=Rl,{hasDecoratorsBeforeExport:bx,printDecoratorsBeforeExport:Cx}=CF;function vx(e,t,n){const r=e.getValue();if(!r.source)return"";const i=[];return Fx(r,t)||i.push(" from"),i.push(" ",n("source")),i}function Ax(e,t,n){const r=e.getValue();if(Fx(r,t))return"";const i=[" "];if(ux(r.specifiers)){const u=[],o=[];if(e.each((()=>{const t=e.getValue().type;if("ExportNamespaceSpecifier"===t||"ExportDefaultSpecifier"===t||"ImportNamespaceSpecifier"===t||"ImportDefaultSpecifier"===t)u.push(n());else{if("ExportSpecifier"!==t&&"ImportSpecifier"!==t)throw new Error(`Unknown specifier type ${JSON.stringify(t)}`);o.push(n())}}),"specifiers"),i.push(lx(", ",u)),o.length>0){u.length>0&&i.push(", ");o.length>1||u.length>0||r.specifiers.some((e=>hx(e)))?i.push(sx(["{",ax([t.bracketSpacing?cx:ox,lx([",",cx],o)]),px(mx(t)?",":""),t.bracketSpacing?cx:ox,"}"])):i.push(["{",t.bracketSpacing?" ":"",...o,t.bracketSpacing?" ":"","}"])}}else i.push("{}");return i}function Fx(e,t){const{type:n,importKind:r,source:i,specifiers:u}=e;return"ImportDeclaration"===n&&!ux(u)&&"type"!==r&&!/{\s*}/.test(t.originalText.slice(Dx(e),Dx(i)))}function xx(e,t,n){const r=e.getNode();return ux(r.assertions)?[" assert {",t.bracketSpacing?" ":"",lx(", ",e.map(n,"assertions")),t.bracketSpacing?" ":"","}"]:""}var Sx={printImportDeclaration:function(e,t,n){const r=e.getValue(),i=t.semi?";":"",u=[],{importKind:o}=r;return u.push("import"),o&&"value"!==o&&u.push(" ",o),u.push(Ax(e,t,n),vx(e,t,n),xx(e,t,n),i),u},printExportDeclaration:function(e,t,n){const r=e.getValue(),i=[];bx(r)&&i.push(Cx(e,t,n));const{type:u,exportKind:o,declaration:s}=r;return i.push("export"),(r.default||"ExportDefaultDeclaration"===u)&&i.push(" default"),hx(r,gx.Dangling)&&(i.push(" ",dx(e,t,!0)),yx(r)&&i.push(fx)),s?i.push(" ",n("declaration")):i.push("type"===o?" type":"",Ax(e,t,n),vx(e,t,n),xx(e,t,n)),function(e,t){if(!t.semi)return!1;const{type:n,declaration:r}=e,i=e.default||"ExportDefaultDeclaration"===n;if(!r)return!0;const{type:u}=r;if(i&&"ClassDeclaration"!==u&&"FunctionDeclaration"!==u&&"TSInterfaceDeclaration"!==u&&"DeclareClass"!==u&&"DeclareFunction"!==u&&"TSDeclareFunction"!==u&&"EnumDeclaration"!==u)return!0;return!1}(r,t)&&i.push(";"),i},printExportAllDeclaration:function(e,t,n){const r=e.getValue(),i=t.semi?";":"",u=[],{exportKind:o,exported:s}=r;return u.push("export"),"type"===o&&u.push(" type"),u.push(" *"),s&&u.push(" as ",n("exported")),u.push(vx(e,t,n),xx(e,t,n),i),u},printModuleSpecifier:function(e,t,n){const r=e.getNode(),{type:i,importKind:u}=r,o=[];"ImportSpecifier"===i&&u&&o.push(u," ");const s=i.startsWith("Import"),a=s?"imported":"local",l=s?"local":"exported";let c="",p="";return"ExportNamespaceSpecifier"===i||"ImportNamespaceSpecifier"===i?c="*":r[a]&&(c=n(a)),!r[l]||r[a]&&Ex(r[a],r[l])||(p=n(l)),o.push(c,c&&p?" as ":"",p),o}};const{printDanglingComments:wx}=Wf,{builders:{line:Tx,softline:Bx,group:kx,indent:Nx,ifBreak:Px,hardline:Ox}}=Ji,{getLast:Ix,hasNewlineInRange:jx,hasNewline:Lx,isNonEmptyArray:_x}=fi,{shouldPrintComma:Mx,hasComment:Rx,getComments:$x,CommentCheckFlags:Vx,isNextLineEmpty:qx}=Gh,{locStart:Wx,locEnd:Ux}=Rl,{printOptionalToken:zx,printTypeAnnotation:Gx}=wE,{shouldHugFunctionParameters:Hx}=vv,{shouldHugType:Jx}=Uv,{printHardlineAfterHeritage:Xx}=GF;var Yx={printObject:function(e,t,n){const r=t.semi?";":"",i=e.getValue();let u;u="TSTypeLiteral"===i.type?"members":"TSInterfaceBody"===i.type?"body":"properties";const o="ObjectTypeAnnotation"===i.type,s=[u];o&&s.push("indexers","callProperties","internalSlots");const a=s.map((e=>i[e][0])).sort(((e,t)=>Wx(e)-Wx(t)))[0],l=e.getParentNode(0),c=o&&l&&("InterfaceDeclaration"===l.type||"DeclareInterface"===l.type||"DeclareClass"===l.type)&&"body"===e.getName(),p="TSInterfaceBody"===i.type||c||"ObjectPattern"===i.type&&"FunctionDeclaration"!==l.type&&"FunctionExpression"!==l.type&&"ArrowFunctionExpression"!==l.type&&"ObjectMethod"!==l.type&&"ClassMethod"!==l.type&&"ClassPrivateMethod"!==l.type&&"AssignmentPattern"!==l.type&&"CatchClause"!==l.type&&i.properties.some((e=>e.value&&("ObjectPattern"===e.value.type||"ArrayPattern"===e.value.type)))||"ObjectPattern"!==i.type&&a&&jx(t.originalText,Wx(i),Wx(a)),f=c?";":"TSInterfaceBody"===i.type||"TSTypeLiteral"===i.type?Px(r,";"):",",d="RecordExpression"===i.type?"#{":i.exact?"{|":"{",h=i.exact?"|}":"}",g=[];for(const t of s)e.each((e=>{const t=e.getValue();g.push({node:t,printed:n(),loc:Wx(t)})}),t);s.length>1&&g.sort(((e,t)=>e.loc-t.loc));let m=[];const y=g.map((e=>{const n=[...m,kx(e.printed)];return m=[f,Tx],"TSPropertySignature"!==e.node.type&&"TSMethodSignature"!==e.node.type&&"TSConstructSignatureDeclaration"!==e.node.type||!Rx(e.node,Vx.PrettierIgnore)||m.shift(),qx(e.node,t)&&m.push(Ox),n}));if(i.inexact){let n;if(Rx(i,Vx.Dangling)){const r=Rx(i,Vx.Line);n=[wx(e,t,!0),r||Lx(t.originalText,Ux(Ix($x(i))))?Ox:Tx,"..."]}else n=["..."];y.push([...m,...n])}const D=Ix(i[u]),E=!(i.inexact||D&&"RestElement"===D.type||D&&("TSPropertySignature"===D.type||"TSCallSignatureDeclaration"===D.type||"TSMethodSignature"===D.type||"TSConstructSignatureDeclaration"===D.type)&&Rx(D,Vx.PrettierIgnore));let b;if(0===y.length){if(!Rx(i,Vx.Dangling))return[d,h,Gx(e,t,n)];b=kx([d,wx(e,t),Bx,h,zx(e),Gx(e,t,n)])}else b=[c&&_x(i.properties)?Xx(l):"",d,Nx([t.bracketSpacing?Tx:Bx,...y]),Px(E&&(","!==f||Mx(t))?f:""),t.bracketSpacing?Tx:Bx,h,zx(e),Gx(e,t,n)];return e.match((e=>"ObjectPattern"===e.type&&!e.decorators),((e,t,n)=>Hx(e)&&("params"===t||"parameters"===t||"this"===t||"rest"===t)&&0===n))||e.match(Jx,((e,t)=>"typeAnnotation"===t),((e,t)=>"typeAnnotation"===t),((e,t,n)=>Hx(e)&&("params"===t||"parameters"===t||"this"===t||"rest"===t)&&0===n))||!p&&e.match((e=>"ObjectPattern"===e.type),(e=>"AssignmentExpression"===e.type||"VariableDeclarator"===e.type))?b:kx(b,{shouldBreak:p})}};const{printDanglingComments:Kx}=Wf,{printString:Qx,printNumber:Zx}=fi,{builders:{hardline:eS,softline:tS,group:nS,indent:rS}}=Ji,{getParentExportDeclaration:iS,isFunctionNotation:uS,isGetterOrSetter:oS,rawText:sS,shouldPrintComma:aS}=Gh,{locStart:lS,locEnd:cS}=Rl,{printClass:pS}=GF,{printOpaqueType:fS,printTypeAlias:dS,printIntersectionType:hS,printUnionType:gS,printFunctionType:mS,printTupleType:yS,printIndexedAccessType:DS}=Uv,{printInterface:ES}=ix,{printTypeParameter:bS,printTypeParameters:CS}=lA,{printExportDeclaration:vS,printExportAllDeclaration:AS}=Sx,{printArrayItems:FS}=YE,{printObject:xS}=Yx,{printPropertyKey:SS}=CA,{printOptionalToken:wS,printTypeAnnotation:TS,printRestSpread:BS}=wE;function kS(e,t){const n=iS(e);return n?(yf.strictEqual(n.type,"DeclareExportDeclaration"),t):["declare ",t]}var NS={printFlow:function(e,t,n){const r=e.getValue(),i=t.semi?";":"",u=[];switch(r.type){case"DeclareClass":return kS(e,pS(e,t,n));case"DeclareFunction":return kS(e,["function ",n("id"),r.predicate?" ":"",n("predicate"),i]);case"DeclareModule":return kS(e,["module ",n("id")," ",n("body")]);case"DeclareModuleExports":return kS(e,["module.exports",": ",n("typeAnnotation"),i]);case"DeclareVariable":return kS(e,["var ",n("id"),i]);case"DeclareOpaqueType":return kS(e,fS(e,t,n));case"DeclareInterface":return kS(e,ES(e,t,n));case"DeclareTypeAlias":return kS(e,dS(e,t,n));case"DeclareExportDeclaration":return kS(e,vS(e,t,n));case"DeclareExportAllDeclaration":return kS(e,AS(e,t,n));case"OpaqueType":return fS(e,t,n);case"TypeAlias":return dS(e,t,n);case"IntersectionTypeAnnotation":return hS(e,t,n);case"UnionTypeAnnotation":return gS(e,t,n);case"FunctionTypeAnnotation":return mS(e,t,n);case"TupleTypeAnnotation":return yS(e,t,n);case"GenericTypeAnnotation":return[n("id"),CS(e,t,n,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return DS(e,t,n);case"TypeAnnotation":return n("typeAnnotation");case"TypeParameter":return bS(e,t,n);case"TypeofTypeAnnotation":return["typeof ",n("argument")];case"ExistsTypeAnnotation":return"*";case"EmptyTypeAnnotation":return"empty";case"MixedTypeAnnotation":return"mixed";case"ArrayTypeAnnotation":return[n("elementType"),"[]"];case"BooleanLiteralTypeAnnotation":return String(r.value);case"EnumDeclaration":return["enum ",n("id")," ",n("body")];case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":if("EnumSymbolBody"===r.type||r.explicitType){let e=null;switch(r.type){case"EnumBooleanBody":e="boolean";break;case"EnumNumberBody":e="number";break;case"EnumStringBody":e="string";break;case"EnumSymbolBody":e="symbol"}u.push("of ",e," ")}if(0!==r.members.length||r.hasUnknownMembers){const i=r.members.length>0?[eS,FS(e,t,"members",n),r.hasUnknownMembers||aS(t)?",":""]:[];u.push(nS(["{",rS([...i,...r.hasUnknownMembers?[eS,"..."]:[]]),Kx(e,t,!0),eS,"}"]))}else u.push(nS(["{",Kx(e,t),tS,"}"]));return u;case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":return[n("id")," = ","object"==typeof r.init?n("init"):String(r.init)];case"EnumDefaultedMember":return n("id");case"FunctionTypeParam":{const t=r.name?n("name"):e.getParentNode().this===r?"this":"";return[t,wS(e),t?": ":"",n("typeAnnotation")]}case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return ES(e,t,n);case"ClassImplements":case"InterfaceExtends":return[n("id"),n("typeParameters")];case"NullableTypeAnnotation":return["?",n("typeAnnotation")];case"Variance":{const{kind:e}=r;return yf.ok("plus"===e||"minus"===e),"plus"===e?"+":"-"}case"ObjectTypeCallProperty":return r.static&&u.push("static "),u.push(n("value")),u;case"ObjectTypeIndexer":return[r.variance?n("variance"):"","[",n("id"),r.id?": ":"",n("key"),"]: ",n("value")];case"ObjectTypeProperty":{let i="";return r.proto?i="proto ":r.static&&(i="static "),[i,oS(r)?r.kind+" ":"",r.variance?n("variance"):"",SS(e,t,n),wS(e),uS(r)?"":": ",n("value")]}case"ObjectTypeAnnotation":return xS(e,t,n);case"ObjectTypeInternalSlot":return[r.static?"static ":"","[[",n("id"),"]]",wS(e),r.method?"":": ",n("value")];case"ObjectTypeSpreadProperty":return BS(e,t,n);case"QualifiedTypeIdentifier":return[n("qualification"),".",n("id")];case"StringLiteralTypeAnnotation":return Qx(sS(r),t);case"NumberLiteralTypeAnnotation":yf.strictEqual(typeof r.value,"number");case"BigIntLiteralTypeAnnotation":return r.extra?Zx(r.extra.raw):Zx(r.raw);case"TypeCastExpression":return["(",n("expression"),TS(e,t,n),")"];case"TypeParameterDeclaration":case"TypeParameterInstantiation":{const i=CS(e,t,n,"params");if("flow"===t.parser){const e=lS(r),n=cS(r),u=t.originalText.lastIndexOf("/*",e),o=t.originalText.indexOf("*/",n);if(-1!==u&&-1!==o){const e=t.originalText.slice(u+2,o).trim();if(e.startsWith("::")&&!e.includes("/*")&&!e.includes("*/"))return["/*:: ",i," */"]}}return i}case"InferredPredicate":return"%checks";case"DeclaredPredicate":return["%checks(",n("value"),")"];case"AnyTypeAnnotation":return"any";case"BooleanTypeAnnotation":return"boolean";case"BigIntTypeAnnotation":return"bigint";case"NullLiteralTypeAnnotation":return"null";case"NumberTypeAnnotation":return"number";case"SymbolTypeAnnotation":return"symbol";case"StringTypeAnnotation":return"string";case"VoidTypeAnnotation":return"void";case"ThisTypeAnnotation":return"this";case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(r.type))}}};const{hasNewlineInRange:PS}=fi,{isJsxNode:OS,isBlockComment:IS,getComments:jS,isCallExpression:LS,isMemberExpression:_S}=Gh,{locStart:MS,locEnd:RS}=Rl,{builders:{line:$S,softline:VS,group:qS,indent:WS,align:US,ifBreak:zS,dedent:GS,breakParent:HS}}=Ji;function JS(e,t,n){const r=e.getValue(),i="ConditionalExpression"===r.type,u=i?"alternate":"falseType",o=e.getParentNode(),s=i?n("test"):[n("checkType")," ","extends"," ",n("extendsType")];return o.type===r.type&&o[u]===r?US(2,s):s}const XS=new Map([["AssignmentExpression","right"],["VariableDeclarator","init"],["ReturnStatement","argument"],["ThrowStatement","argument"],["UnaryExpression","argument"],["YieldExpression","argument"]]);var YS={printTernary:function(e,t,n){const r=e.getValue(),i="ConditionalExpression"===r.type,u=i?"consequent":"trueType",o=i?"alternate":"falseType",s=i?["test"]:["checkType","extendsType"],a=r[u],l=r[o],c=[];let p=!1;const f=e.getParentNode(),d=f.type===r.type&&s.some((e=>f[e]===r));let h,g,m=f.type===r.type&&!d,y=0;do{g=h||r,h=e.getParentNode(y),y++}while(h&&h.type===r.type&&s.every((e=>h[e]!==g)));const D=h||f,E=g;if(i&&(OS(r[s[0]])||OS(a)||OS(l)||function(e){const t=[e];for(let e=0;e[zS("("),WS([VS,e]),VS,zS(")")],t=e=>"NullLiteral"===e.type||"Literal"===e.type&&null===e.value||"Identifier"===e.type&&"undefined"===e.name;c.push(" ? ",t(a)?n(u):e(n(u))," : ",l.type===r.type||t(l)?n(o):e(n(o)))}else{const e=[$S,"? ",a.type===r.type?zS("","("):"",US(2,n(u)),a.type===r.type?zS("",")"):"",$S,": ",l.type===r.type?n(o):US(2,n(o))];c.push(f.type!==r.type||f[o]===r||d?e:t.useTabs?GS(WS(e)):US(Math.max(0,t.tabWidth-2),e))}const b=[...s.map((e=>jS(r[e]))),jS(a),jS(l)].flat().some((e=>IS(e)&&PS(t.originalText,MS(e),RS(e)))),C=!p&&(_S(f)||"NGPipeExpression"===f.type&&f.left===r)&&!f.computed,v=function(e){const t=e.getValue();if("ConditionalExpression"!==t.type)return!1;let n,r=t;for(let t=0;!n;t++){const i=e.getParentNode(t);LS(i)&&i.callee===r||_S(i)&&i.object===r||"TSNonNullExpression"===i.type&&i.expression===r?r=i:"NewExpression"===i.type&&i.callee===r||"TSAsExpression"===i.type&&i.expression===r?(n=e.getParentNode(t+1),r=i):n=i}return r!==t&&n[XS.get(n.type)]===r}(e),A=(F=[JS(e,0,n),m?c:WS(c),i&&C&&!v?VS:""],f===D?qS(F,{shouldBreak:b}):b?[F,HS]:F);var F;return d||v?qS([WS([VS,A]),VS]):A}};const{builders:{hardline:KS}}=Ji,{getLeftSidePathName:QS,hasNakedLeftSide:ZS,isJsxNode:ew,isTheOnlyJsxElementInMarkdown:tw,hasComment:nw,CommentCheckFlags:rw,isNextLineEmpty:iw}=Gh,{shouldPrintParamsWithoutParens:uw}=aF;function ow(e,t,n,r){const i=e.getValue(),u=[],o="ClassBody"===i.type,s=function(e){for(let t=e.length-1;t>=0;t--){const n=e[t];if("EmptyStatement"!==n.type)return n}}(i[r]);return e.each(((e,r,i)=>{const a=e.getValue();if("EmptyStatement"===a.type)return;const l=n();t.semi||o||tw(t,e)||!function(e,t){if("ExpressionStatement"!==e.getNode().type)return!1;return e.call((e=>sw(e,t)),"expression")}(e,t)?u.push(l):nw(a,rw.Leading)?u.push(n([],{needsSemi:!0})):u.push(";",l),!t.semi&&o&&aw(a)&&function(e,t){const n=e.key&&e.key.name;if(!("static"!==n&&"get"!==n&&"set"!==n||e.value||e.typeAnnotation))return!0;if(!t)return!1;if(t.static||t.accessibility)return!1;if(!t.computed){const e=t.key&&t.key.name;if("in"===e||"instanceof"===e)return!0}switch(t.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractClassProperty":return t.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((t.value?t.value.async:t.async)||"get"===t.kind||"set"===t.kind)return!1;const e=t.value?t.value.generator:t.generator;return!(!t.computed&&!e)}case"TSIndexSignature":return!0}return!1}(a,i[r+1])&&u.push(";"),a!==s&&(u.push(KS),iw(a,t)&&u.push(KS))}),r),u}function sw(e,t){const n=e.getValue();switch(n.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":if(!uw(e,t))return!0;break;case"UnaryExpression":{const{prefix:e,operator:t}=n;if(e&&("+"===t||"-"===t))return!0;break}case"BindExpression":if(!n.object)return!0;break;case"Literal":if(n.regex)return!0;break;default:if(ew(n))return!0}return!!Yy(e,t)||!!ZS(n)&&e.call((e=>sw(e,t)),...QS(e,n))}const aw=({type:e})=>"ClassProperty"===e||"PropertyDefinition"===e||"ClassPrivateProperty"===e;var lw={printBody:function(e,t,n){return ow(e,t,n,"body")},printSwitchCaseConsequent:function(e,t,n){return ow(e,t,n,"consequent")}};const{printDanglingComments:cw}=Wf,{isNonEmptyArray:pw}=fi,{builders:{hardline:fw,indent:dw}}=Ji,{hasComment:hw,CommentCheckFlags:gw,isNextLineEmpty:mw}=Gh,{printHardlineAfterHeritage:yw}=GF,{printBody:Dw}=lw;function Ew(e,t,n){const r=e.getValue(),i=pw(r.directives),u=r.body.some((e=>"EmptyStatement"!==e.type)),o=hw(r,gw.Dangling);if(!i&&!u&&!o)return"";const s=[];if(i&&e.each(((e,r,i)=>{s.push(n()),(r"]),i=[kw("("),Tw([Sw,n("expression")]),Sw,kw(")")];return e?Bw([[t,n("expression")],[t,ww(i,{shouldBreak:!0})],[t,n("expression")]]):ww([t,n("expression")])}case"TSDeclareFunction":return Kw(e,n,t);case"TSExportAssignment":return["export = ",n("expression"),i];case"TSModuleBlock":return eT(e,t,n);case"TSInterfaceBody":case"TSTypeLiteral":return zw(e,t,n);case"TSTypeAliasDeclaration":return tT(e,t,n);case"TSQualifiedName":return Aw(".",[n("left"),n("right")]);case"TSAbstractMethodDefinition":case"TSDeclareMethod":return Hw(e,t,n);case"TSAbstractClassProperty":return Gw(e,t,n);case"TSInterfaceHeritage":case"TSExpressionWithTypeArguments":return u.push(n("expression")),r.typeParameters&&u.push(n("typeParameters")),u;case"TSTemplateLiteralType":return Ww(e,n,t);case"TSNamedTupleMember":return[n("label"),r.optional?"?":"",": ",n("elementType")];case"TSRestType":return["...",n("typeAnnotation")];case"TSOptionalType":return[n("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return Zw(e,t,n);case"TSClassImplements":return[n("expression"),n("typeParameters")];case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return Xw(e,t,n,"params");case"TSTypeParameter":return Jw(e,t,n);case"TSAsExpression":{u.push(n("expression")," as ",n("typeAnnotation"));const t=e.getParentNode();return Iw(t)&&t.callee===r||jw(t)&&t.object===r?ww([Tw([Sw,...u]),Sw]):u}case"TSArrayType":return[n("elementType"),"[]"];case"TSPropertySignature":return r.readonly&&u.push("readonly "),u.push(Yw(e,t,n),Mw(e)),r.typeAnnotation&&u.push(": ",n("typeAnnotation")),r.initializer&&u.push(" = ",n("initializer")),u;case"TSParameterProperty":return r.accessibility&&u.push(r.accessibility+" "),r.export&&u.push("export "),r.static&&u.push("static "),r.override&&u.push("override "),r.readonly&&u.push("readonly "),u.push(n("parameter")),u;case"TSTypeQuery":return["typeof ",n("exprName")];case"TSIndexSignature":{const u=e.getParentNode(),o=r.parameters.length>1?kw(Ow(t)?",":""):"",s=ww([Tw([Sw,Aw([", ",Sw],e.map(n,"parameters"))]),o,Sw]);return[r.export?"export ":"",r.accessibility?[r.accessibility," "]:"",r.static?"static ":"",r.readonly?"readonly ":"",r.declare?"declare ":"","[",r.parameters?s:"",r.typeAnnotation?"]: ":"]",r.typeAnnotation?n("typeAnnotation"):"","ClassBody"===u.type?i:""]}case"TSTypePredicate":return[r.asserts?"asserts ":"",n("parameterName"),r.typeAnnotation?[" is ",n("typeAnnotation")]:""];case"TSNonNullExpression":return[n("expression"),"!"];case"TSImportType":return[r.isTypeOf?"typeof ":"","import(",n(r.parameter?"parameter":"argument"),")",r.qualifier?[".",n("qualifier")]:"",Xw(e,t,n,"typeParameters")];case"TSLiteralType":return n("literal");case"TSIndexedAccessType":return oT(e,t,n);case"TSConstructSignatureDeclaration":case"TSCallSignatureDeclaration":case"TSConstructorType":if("TSConstructorType"===r.type&&r.abstract&&u.push("abstract "),"TSCallSignatureDeclaration"!==r.type&&u.push("new "),u.push(ww(Vw(e,n,t,!1,!0))),r.returnType||r.typeAnnotation){const e="TSConstructorType"===r.type;u.push(e?" => ":": ",n("returnType"),n("typeAnnotation"))}return u;case"TSTypeOperator":return[r.operator," ",n("typeAnnotation")];case"TSMappedType":{const u=vw(t.originalText,Lw(r),_w(r));return ww(["{",Tw([t.bracketSpacing?Fw:Sw,r.readonly?[Pw(r.readonly,"readonly")," "]:"",Rw(e,t,n),n("typeParameter"),r.optional?Pw(r.optional,"?"):"",r.typeAnnotation?": ":"",n("typeAnnotation"),kw(i)]),Cw(e,t,!0),t.bracketSpacing?Fw:Sw,"}"],{shouldBreak:u})}case"TSMethodSignature":{const i=r.kind&&"method"!==r.kind?`${r.kind} `:"";u.push(r.accessibility?[r.accessibility," "]:"",i,r.export?"export ":"",r.static?"static ":"",r.readonly?"readonly ":"",r.abstract?"abstract ":"",r.declare?"declare ":"",r.computed?"[":"",n("key"),r.computed?"]":"",Mw(e));const o=Vw(e,n,t,!1,!0),s=r.returnType?"returnType":"typeAnnotation",a=r[s],l=a?n(s):"",c=qw(r,l);return u.push(c?ww(o):o),a&&u.push(": ",ww(l)),ww(u)}case"TSNamespaceExportDeclaration":return u.push("export as namespace ",n("id")),t.semi&&u.push(";"),ww(u);case"TSEnumDeclaration":return r.declare&&u.push("declare "),r.modifiers&&u.push(Rw(e,t,n)),r.const&&u.push("const "),u.push("enum ",n("id")," "),0===r.members.length?u.push(ww(["{",Cw(e,t),Sw,"}"])):u.push(ww(["{",Tw([xw,Uw(e,t,"members",n),Ow(t,"es5")?",":""]),Cw(e,t,!0),xw,"}"])),u;case"TSEnumMember":return u.push(n("id")),r.initializer&&u.push(" = ",n("initializer")),u;case"TSImportEqualsDeclaration":return r.isExport&&u.push("export "),u.push("import "),r.importKind&&"value"!==r.importKind&&u.push(r.importKind," "),u.push(n("id")," = ",n("moduleReference")),t.semi&&u.push(";"),ww(u);case"TSExternalModuleReference":return["require(",n("expression"),")"];case"TSModuleDeclaration":{const o=e.getParentNode(),s=Nw(r.id),a="TSModuleDeclaration"===o.type,l=r.body&&"TSModuleDeclaration"===r.body.type;if(a)u.push(".");else{r.declare&&u.push("declare "),u.push(Rw(e,t,n));const i=t.originalText.slice(Lw(r),Lw(r.id));"Identifier"===r.id.type&&"global"===r.id.name&&!/namespace|module/.test(i)||u.push(s||/(^|\s)module(\s|$)/.test(i)?"module ":"namespace ")}return u.push(n("id")),l?u.push(n("body")):r.body?u.push(" ",ww(n("body"))):u.push(i),u}case"TSPrivateIdentifier":return r.escapedText;case"TSConditionalType":return $w(e,t,n);case"TSInferType":return["infer"," ",n("typeParameter")];case"TSIntersectionType":return nT(e,t,n);case"TSUnionType":return rT(e,t,n);case"TSFunctionType":return iT(e,t,n);case"TSTupleType":return uT(e,t,n);case"TSTypeReference":return[n("typeName"),Xw(e,t,n,"typeParameters")];case"TSTypeAnnotation":return n("typeAnnotation");case"TSEmptyBodyFunctionExpression":return Qw(e,t,n);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return["?",n("typeAnnotation")];case"TSJSDocNonNullableType":return["!",n("typeAnnotation")];default:throw new Error(`Unknown TypeScript node type: ${JSON.stringify(r.type)}.`)}}};const{hasNewline:aT}=fi,{builders:{join:lT,hardline:cT},utils:{replaceNewlinesWithLiterallines:pT}}=Ji,{isLineComment:fT,isBlockComment:dT}=Gh,{locStart:hT,locEnd:gT}=Rl;var mT={printComment:function(e,t){const n=e.getValue();if(fT(n))return t.originalText.slice(hT(n),gT(n)).trimEnd();if(dT(n)){if(function(e){const t=`*${e.value}*`.split("\n");return t.length>1&&t.every((e=>"*"===e.trim()[0]))}(n)){const e=function(e){const t=e.value.split("\n");return["/*",lT(cT,t.map(((e,n)=>0===n?e.trimEnd():" "+(n"AwaitExpression"===e.type||"BlockStatement"===e.type));if(!t||"AwaitExpression"!==t.type)return TT(o)}}return o;case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return uB(e,t,n);case"ExportAllDeclaration":return oB(e,t,n);case"ImportDeclaration":return iB(e,t,n);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return sB(e,t,n);case"ImportAttribute":return[n("key"),": ",n("value")];case"Import":return"import";case"BlockStatement":case"StaticBlock":case"ClassBody":return wB(e,t,n);case"ThrowStatement":return bB(e,t,n);case"ReturnStatement":return EB(e,t,n);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return CB(e,t,n);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return pB(e,t,n);case"ObjectProperty":case"Property":return i.method||"get"===i.kind||"set"===i.kind?DB(e,t,n):gB(e,t,n);case"ObjectMethod":return DB(e,t,n);case"Decorator":return["@",n("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return cB(e,t,n);case"SequenceExpression":{const t=e.getParentNode(0);if("ExpressionStatement"===t.type||"ForStatement"===t.type){const t=[];return e.each(((e,r)=>{0===r?t.push(n()):t.push(",",BT([xT,n()]))}),"expressions"),TT(t)}return TT(FT([",",xT],e.map(n,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[n("value"),u];case"DirectiveLiteral":return PB(i,t);case"UnaryExpression":return o.push(i.operator),/[a-z]$/.test(i.operator)&&o.push(" "),OT(i.argument)?o.push(TT(["(",BT([wT,n("argument")]),wT,")"])):o.push(n("argument")),o;case"UpdateExpression":return o.push(n("argument"),i.operator),i.prefix&&o.reverse(),o;case"ConditionalExpression":return aB(e,t,n);case"VariableDeclaration":{const t=e.map(n,"declarations"),r=e.getParentNode(),s="ForStatement"===r.type||"ForInStatement"===r.type||"ForOfStatement"===r.type,a=i.declarations.some((e=>e.init));let l;return 1!==t.length||OT(i.declarations[0])?t.length>0&&(l=BT(t[0])):l=t[0],o=[i.declare?"declare ":"",i.kind,l?[" ",l]:"",BT(t.slice(1).map((e=>[",",a&&!s?ST:xT,e])))],s&&r.body!==i||o.push(u),TT(o)}case"WithStatement":return TT(["with (",n("object"),")",nB(i.body,n("body"))]);case"IfStatement":{const r=nB(i.consequent,n("consequent")),u=TT(["if (",TT([BT([wT,n("test")]),wT]),")",r]);if(o.push(u),i.alternate){const r=OT(i.consequent,IT.Trailing|IT.Line)||RT(i),u="BlockStatement"===i.consequent.type&&!r;o.push(u?" ":ST),OT(i,IT.Dangling)&&o.push(vT(e,t,!0),r?ST:" "),o.push("else",TT(nB(i.alternate,n("alternate"),"IfStatement"===i.alternate.type)))}return o}case"ForStatement":{const r=nB(i.body,n("body")),u=vT(e,t,!0),o=u?[u,wT]:"";return i.init||i.test||i.update?[o,TT(["for (",TT([BT([wT,n("init"),";",xT,n("test"),";",xT,n("update")]),wT]),")",r])]:[o,TT(["for (;;)",r])]}case"WhileStatement":return TT(["while (",TT([BT([wT,n("test")]),wT]),")",nB(i.body,n("body"))]);case"ForInStatement":return TT(["for (",n("left")," in ",n("right"),")",nB(i.body,n("body"))]);case"ForOfStatement":return TT(["for",i.await?" await":""," (",n("left")," of ",n("right"),")",nB(i.body,n("body"))]);case"DoWhileStatement":{const e=nB(i.body,n("body"));return o=[TT(["do",e])],"BlockStatement"===i.body.type?o.push(" "):o.push(ST),o.push("while (",TT([BT([wT,n("test")]),wT]),")",u),o}case"DoExpression":return[i.async?"async ":"","do ",n("body")];case"BreakStatement":return o.push("break"),i.label&&o.push(" ",n("label")),o.push(u),o;case"ContinueStatement":return o.push("continue"),i.label&&o.push(" ",n("label")),o.push(u),o;case"LabeledStatement":return"EmptyStatement"===i.body.type?[n("label"),":;"]:[n("label"),": ",n("body")];case"TryStatement":return["try ",n("block"),i.handler?[" ",n("handler")]:"",i.finalizer?[" finally ",n("finalizer")]:""];case"CatchClause":if(i.param){const e=OT(i.param,(e=>!LT(e)||e.leading&&AT(t.originalText,zT(e))||e.trailing&&AT(t.originalText,UT(e),{backwards:!0}))),r=n("param");return["catch ",e?["(",BT([wT,r]),wT,") "]:["(",r,") "],n("body")]}return["catch ",n("body")];case"SwitchStatement":return[TT(["switch (",BT([wT,n("discriminant")]),wT,")"])," {",i.cases.length>0?BT([ST,FT(ST,e.map(((e,r,i)=>{const u=e.getValue();return[n(),r!==i.length-1&&MT(u,t)?ST:""]}),"cases"))]):"",ST,"}"];case"SwitchCase":{i.test?o.push("case ",n("test"),":"):o.push("default:");const r=i.consequent.filter((e=>"EmptyStatement"!==e.type));if(r.length>0){const i=xB(e,t,n);o.push(1===r.length&&"BlockStatement"===r[0].type?[" ",i]:BT([ST,i]))}return o}case"DebuggerStatement":return["debugger",u];case"ClassDeclaration":case"ClassExpression":return fB(e,t,n);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return dB(e,t,n);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":return hB(e,t,n);case"TemplateElement":return kT(i.value.raw);case"TemplateLiteral":return lB(e,n,t);case"TaggedTemplateExpression":return[n("tag"),n("typeParameters"),n("quasi")];case"PrivateIdentifier":return["#",n("name")];case"PrivateName":return["#",n("id")];case"InterpreterDirective":return o.push("#!",i.value,ST),MT(i,t)&&o.push(ST),o;case"PipelineBareFunction":return n("callee");case"PipelineTopicExpression":return n("expression");case"PipelinePrimaryTopicReference":return"#";case"ArgumentPlaceholder":return"?";case"ModuleExpression":{o.push("module {");const e=n("body");return e&&o.push(BT([ST,e]),ST),o.push("}"),o}default:throw new Error("unknown type: "+JSON.stringify(i.type))}}(e,t,n,r);if(!i)return"";const u=e.getValue(),{type:o}=u;if("ClassMethod"===o||"ClassPrivateMethod"===o||"ClassProperty"===o||"PropertyDefinition"===o||"TSAbstractClassProperty"===o||"ClassPrivateProperty"===o||"MethodDefinition"===o||"TSAbstractMethodDefinition"===o||"TSDeclareMethod"===o)return i;const s=NB(e,t,n);if(s)return TT([...s,i]);if(!Yy(e,t))return r&&r.needsSemi?[";",i]:i;const a=[r&&r.needsSemi?";(":"(",i];if(PT(u)){const[e]=u.trailingComments;a.push(" /*",e.value.trimStart(),"*/"),e.printed=!0}return a.push(")"),a},embed:Kg,insertPragma:NT,massageAstNode:nm,hasPrettierIgnore:e=>VT(e)||YT(e),willPrintOwnComments:Iy.willPrintOwnComments,canAttachComment:function(e){return e.type&&!LT(e)&&!_T(e)&&"EmptyStatement"!==e.type&&"TemplateElement"!==e.type&&"Import"!==e.type&&"TSEmptyBodyFunctionExpression"!==e.type},printComment:BB,isBlockComment:LT,handleComments:{avoidAstMutation:!0,ownLine:Iy.handleOwnLineComment,endOfLine:Iy.handleEndOfLineComment,remaining:Iy.handleRemainingComment},getCommentChildNodes:Iy.getCommentChildNodes};const{builders:{hardline:IB,indent:jB,join:LB}}=Ji;const _B=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function MB(e,t){const{type:n}=e;if("ObjectProperty"!==n||"Identifier"!==e.key.type){if("UnaryExpression"===n&&"+"===e.operator)return t.argument;if("ArrayExpression"!==n)return"TemplateLiteral"===n?{type:"StringLiteral",value:e.quasis[0].value.cooked}:void 0;for(const[n,r]of e.elements.entries())null===r&&t.elements.splice(n,0,{type:"NullLiteral"})}else t.key={type:"StringLiteral",value:e.key.name}}MB.ignoredProperties=_B;var RB={preprocess:Ky,print:function(e,t,n){const r=e.getValue();switch(r.type){case"JsonRoot":return[n("node"),IB];case"ArrayExpression":{if(0===r.elements.length)return"[]";const t=e.map((()=>null===e.getValue()?"null":n()),"elements");return["[",jB([IB,LB([",",IB],t)]),IB,"]"]}case"ObjectExpression":return 0===r.properties.length?"{}":["{",jB([IB,LB([",",IB],e.map(n,"properties"))]),IB,"}"];case"ObjectProperty":return[n("key"),": ",n("value")];case"UnaryExpression":return["+"===r.operator?"":r.operator,n("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return r.value?"true":"false";case"StringLiteral":case"NumericLiteral":return JSON.stringify(r.value);case"Identifier":{const t=e.getParentNode();return t&&"ObjectProperty"===t.type&&t.key===r?JSON.stringify(r.name):r.name}case"TemplateLiteral":return n(["quasis",0]);case"TemplateElement":return JSON.stringify(r.value.cooked);default:throw new Error("unknown type: "+JSON.stringify(r.type))}},massageAstNode:MB};var $B={bracketSpacing:{since:"0.0.0",category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},singleQuote:{since:"0.0.0",category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{since:"1.8.2",category:"Common",type:"choice",default:[{since:"1.8.2",value:!0},{since:"1.9.0",value:"preserve"}],description:"How to wrap prose.",choices:[{since:"1.9.0",value:"always",description:"Wrap prose if it exceeds the print width."},{since:"1.9.0",value:"never",description:"Do not wrap prose."},{since:"1.9.0",value:"preserve",description:"Wrap prose as-is."}]}};var VB={arrowParens:{since:"1.9.0",category:"JavaScript",type:"choice",default:[{since:"1.9.0",value:"avoid"},{since:"2.0.0",value:"always"}],description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSpacing:$B.bracketSpacing,jsxBracketSameLine:{since:"0.17.0",category:"JavaScript",type:"boolean",default:!1,description:"Put > on the last line instead of at a new line."},semi:{since:"1.0.0",category:"JavaScript",type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},singleQuote:$B.singleQuote,jsxSingleQuote:{since:"1.15.0",category:"JavaScript",type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{since:"1.17.0",category:"JavaScript",type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{since:"0.0.0",category:"JavaScript",type:"choice",default:[{since:"0.0.0",value:!1},{since:"0.19.0",value:"none"},{since:"2.0.0",value:"es5"}],description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."},{value:"all",description:"Trailing commas wherever possible (including function arguments)."}]}},qB={name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".jsx",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],languageId:183},WB={name:"TypeScript",type:"programming",color:"#2b7489",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",languageId:378},UB={name:"TSX",type:"programming",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",languageId:94901924},zB={name:"JSON",type:"data",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",extensions:[".json",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".jsonl",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".arcconfig",".htmlhintrc",".imgbotconfig",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","mcmod.info"],languageId:174},GB={name:"JSON with Comments",type:"data",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[".babelrc",".eslintrc.json",".jscsrc",".jshintrc",".jslintrc","api-extractor.json","devcontainer.json","jsconfig.json","language-configuration.json","tsconfig.json","tslint.json"],languageId:423},HB={name:"JSON5",type:"data",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",languageId:175};var JB={languages:[Yd(qB,(e=>({since:"0.0.0",parsers:["babel","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"],extensions:[...e.extensions.filter((e=>".jsx"!==e)),".wxs"]}))),Yd(qB,(()=>({name:"Flow",since:"0.0.0",parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"],aliases:[],filenames:[],extensions:[".js.flow"]}))),Yd(qB,(()=>({name:"JSX",since:"0.0.0",parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],aliases:void 0,filenames:void 0,extensions:[".jsx"],group:"JavaScript",interpreters:void 0,tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0}))),Yd(WB,(()=>({since:"1.4.0",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]}))),Yd(UB,(()=>({since:"1.4.0",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]}))),Yd(zB,(()=>({name:"JSON.stringify",since:"1.13.0",parsers:["json-stringify"],vscodeLanguageIds:["json"],extensions:[],filenames:["package.json","package-lock.json","composer.json"]}))),Yd(zB,(e=>({since:"1.5.0",parsers:["json"],vscodeLanguageIds:["json"],extensions:e.extensions.filter((e=>".jsonl"!==e))}))),Yd(GB,(e=>({since:"1.5.0",parsers:["json"],vscodeLanguageIds:["jsonc"],filenames:[...e.filenames,".eslintrc"]}))),Yd(HB,(()=>({since:"1.13.0",parsers:["json5"],vscodeLanguageIds:["json5"]})))],options:VB,printers:{estree:OB,"estree-json":RB},parsers:{get babel(){return require("./parser-babel").parsers.babel},get"babel-flow"(){return require("./parser-babel").parsers["babel-flow"]},get"babel-ts"(){return require("./parser-babel").parsers["babel-ts"]},get json(){return require("./parser-babel").parsers.json},get json5(){return require("./parser-babel").parsers.json5},get"json-stringify"(){return require("./parser-babel").parsers["json-stringify"]},get __js_expression(){return require("./parser-babel").parsers.__js_expression},get __vue_expression(){return require("./parser-babel").parsers.__vue_expression},get __vue_event_binding(){return require("./parser-babel").parsers.__vue_event_binding},get flow(){return require("./parser-flow").parsers.flow},get typescript(){return require("./parser-typescript").parsers.typescript},get __ng_action(){return require("./parser-angular").parsers.__ng_action},get __ng_binding(){return require("./parser-angular").parsers.__ng_binding},get __ng_interpolation(){return require("./parser-angular").parsers.__ng_interpolation},get __ng_directive(){return require("./parser-angular").parsers.__ng_directive},get espree(){return require("./parser-espree").parsers.espree},get meriyah(){return require("./parser-meriyah").parsers.meriyah},get __babel_estree(){return require("./parser-babel").parsers.__babel_estree}}};const{isFrontMatterNode:XB}=fi,YB=new Set(["raw","raws","sourceIndex","source","before","after","trailingComma"]);function KB(e,t,n){if(XB(e)&&"yaml"===e.lang&&delete t.value,"css-comment"===e.type&&"css-root"===n.type&&n.nodes.length>0){if((n.nodes[0]===e||XB(n.nodes[0])&&n.nodes[1]===e)&&(delete t.text,/^\*\s*@(format|prettier)\s*$/.test(e.text)))return null;if("css-root"===n.type&&Sn(n.nodes)===e)return null}if("value-root"===e.type&&delete t.text,"media-query"!==e.type&&"media-query-list"!==e.type&&"media-feature-expression"!==e.type||delete t.value,"css-rule"===e.type&&delete t.params,"selector-combinator"===e.type&&(t.value=t.value.replace(/\s+/g," ")),"media-feature"===e.type&&(t.value=t.value.replace(/ /g,"")),("value-word"===e.type&&(e.isColor&&e.isHex||["initial","inherit","unset","revert"].includes(t.value.replace().toLowerCase()))||"media-feature"===e.type||"selector-root-invalid"===e.type||"selector-pseudo"===e.type)&&(t.value=t.value.toLowerCase()),"css-decl"===e.type&&(t.prop=t.prop.toLowerCase()),"css-atrule"!==e.type&&"css-import"!==e.type||(t.name=t.name.toLowerCase()),"value-number"===e.type&&(t.unit=t.unit.toLowerCase()),"media-feature"!==e.type&&"media-keyword"!==e.type&&"media-type"!==e.type&&"media-unknown"!==e.type&&"media-url"!==e.type&&"media-value"!==e.type&&"selector-attribute"!==e.type&&"selector-string"!==e.type&&"selector-class"!==e.type&&"selector-combinator"!==e.type&&"value-string"!==e.type||!t.value||(t.value=t.value.replace(/'/g,'"').replace(/\\([^\dA-Fa-f])/g,"$1")),"selector-attribute"===e.type&&(t.attribute=t.attribute.trim(),t.namespace&&"string"==typeof t.namespace&&(t.namespace=t.namespace.trim(),0===t.namespace.length&&(t.namespace=!0)),t.value&&(t.value=t.value.trim().replace(/^["']|["']$/g,""),delete t.quoted)),"media-value"!==e.type&&"media-type"!==e.type&&"value-number"!==e.type&&"selector-root-invalid"!==e.type&&"selector-class"!==e.type&&"selector-combinator"!==e.type&&"selector-tag"!==e.type||!t.value||(t.value=t.value.replace(/([\d+.Ee-]+)([A-Za-z]*)/g,((e,t,n)=>{const r=Number(t);return Number.isNaN(r)?e:r+n.toLowerCase()}))),"selector-tag"===e.type){const n=e.value.toLowerCase();["from","to"].includes(n)&&(t.value=n)}"css-atrule"===e.type&&"supports"===e.name.toLowerCase()&&delete t.value,"selector-unknown"===e.type&&delete t.value}KB.ignoredProperties=YB;var QB=KB;const{builders:{hardline:ZB,markAsRoot:ek}}=Ji;var tk=function(e,t){if("yaml"===e.lang){const n=e.value.trim(),r=n?t(n,{parser:"yaml"},{stripTrailingHardline:!0}):"";return ek([e.startDelimiter,ZB,r,r?ZB:"",e.endDelimiter])}};const{builders:{hardline:nk}}=Ji;var rk=function(e,t,n){const r=e.getValue();if("front-matter"===r.type){const e=tk(r,n);return e?[e,nk]:""}};const ik=new RegExp("^(?-{3}|\\+{3})(?[^\\n]*)\\n(?:|(?.*?)\\n)(?\\k|\\.{3})[^\\S\\n]*(?:\\n|$)","s");var uk=function(e){const t=e.match(ik);if(!t)return{content:e};const{startDelimiter:n,language:r,value:i="",endDelimiter:u}=t.groups;let o=r.trim()||"yaml";if("+++"===n&&(o="toml"),"yaml"!==o&&n!==u)return{content:e};const[s]=t;return{frontMatter:{type:"front-matter",lang:o,value:i,startDelimiter:n,endDelimiter:u,raw:s.replace(/\n$/,"")},content:s.replace(/[^\n]/g," ")+e.slice(s.length)}};var ok={hasPragma:function(e){return Nm.hasPragma(uk(e).content)},insertPragma:function(e){const{frontMatter:t,content:n}=uk(e);return(t?t.raw+"\n\n":"")+Nm.insertPragma(n)}};const{isNonEmptyArray:sk}=fi,ak=new Set(["red","green","blue","alpha","a","rgb","hue","h","saturation","s","lightness","l","whiteness","w","blackness","b","tint","shade","blend","blenda","contrast","hsl","hsla","hwb","hwba"]);function lk(e,t){const n=Array.isArray(t)?t:[t];let r,i=-1;for(;r=e.getParentNode(++i);)if(n.includes(r.type))return i;return-1}function ck(e,t){const n=lk(e,t);return-1===n?null:e.getParentNode(n)}function pk(e){return"value-operator"===e.type&&"*"===e.value}function fk(e){return"value-operator"===e.type&&"/"===e.value}function dk(e){return"value-operator"===e.type&&"+"===e.value}function hk(e){return"value-operator"===e.type&&"-"===e.value}function gk(e){return"value-operator"===e.type&&"%"===e.value}function mk(e){return"value-comma_group"===e.type&&e.groups&&e.groups[1]&&"value-colon"===e.groups[1].type}function yk(e){return"value-paren_group"===e.type&&e.groups&&e.groups[0]&&mk(e.groups[0])}function Dk(e){return e&&"value-colon"===e.type}var Ek={getAncestorCounter:lk,getAncestorNode:ck,getPropOfDeclNode:function(e){const t=ck(e,"css-decl");return t&&t.prop&&t.prop.toLowerCase()},hasSCSSInterpolation:function(e){if(sk(e))for(let t=e.length-1;t>0;t--)if("word"===e[t].type&&"{"===e[t].value&&"word"===e[t-1].type&&e[t-1].value.endsWith("#"))return!0;return!1},hasStringOrFunction:function(e){if(sk(e))for(let t=0;t","<=",">="].includes(e.value)},isEqualityOperatorNode:function(e){return"value-word"===e.type&&["==","!="].includes(e.value)},isMultiplicationNode:pk,isDivisionNode:fk,isAdditionNode:dk,isSubtractionNode:hk,isModuloNode:gk,isMathOperatorNode:function(e){return pk(e)||fk(e)||dk(e)||hk(e)||gk(e)},isEachKeywordNode:function(e){return"value-word"===e.type&&"in"===e.value},isForKeywordNode:function(e){return"value-word"===e.type&&["from","through","end"].includes(e.value)},isURLFunctionNode:function(e){return"value-func"===e.type&&"url"===e.value.toLowerCase()},isIfElseKeywordNode:function(e){return"value-word"===e.type&&["and","or","not"].includes(e.value)},hasComposesNode:function(e){return e.value&&"value-root"===e.value.type&&e.value.group&&"value-value"===e.value.group.type&&"composes"===e.prop.toLowerCase()},hasParensAroundNode:function(e){return e.value&&e.value.group&&e.value.group.group&&"value-paren_group"===e.value.group.group.type&&null!==e.value.group.group.open&&null!==e.value.group.group.close},hasEmptyRawBefore:function(e){return e.raws&&""===e.raws.before},isSCSSNestedPropertyNode:function(e){return!!e.selector&&e.selector.replace(/\/\*.*?\*\//,"").replace(/\/\/.*?\n/,"").trim().endsWith(":")},isDetachedRulesetCallNode:function(e){return e.raws&&e.raws.params&&/^\(\s*\)$/.test(e.raws.params)},isTemplatePlaceholderNode:function(e){return e.name.startsWith("prettier-placeholder")},isTemplatePropNode:function(e){return e.prop.startsWith("@prettier-placeholder")},isPostcssSimpleVarNode:function(e,t){return"$$"===e.value&&"value-func"===e.type&&t&&"value-word"===t.type&&!t.raws.before},isKeyValuePairNode:mk,isKeyValuePairInParenGroupNode:yk,isKeyInValuePairNode:function(e,t){if(!mk(t))return!1;const{groups:n}=t,r=n.indexOf(e);return-1!==r&&Dk(n[r+1])},isSCSSMapItemNode:function(e){const t=e.getValue();if(0===t.groups.length)return!1;const n=e.getParentNode(1);if(!(yk(t)||n&&yk(n)))return!1;const r=ck(e,"css-decl");return!!(r&&r.prop&&r.prop.startsWith("$"))||(!!yk(n)||"value-func"===n.type)},isInlineValueCommentNode:function(e){return"value-comment"===e.type&&e.inline},isHashNode:function(e){return"value-word"===e.type&&"#"===e.value},isLeftCurlyBraceNode:function(e){return"value-word"===e.type&&"{"===e.value},isRightCurlyBraceNode:function(e){return"value-word"===e.type&&"}"===e.value},isWordNode:function(e){return["value-word","value-atword"].includes(e.type)},isColonNode:Dk,isMediaAndSupportsKeywords:function(e){return e.value&&["not","and","or"].includes(e.value.toLowerCase())},isColorAdjusterFuncNode:function(e){return"value-func"===e.type&&ak.has(e.value.toLowerCase())},lastLineHasInlineComment:function(e){return/\/\//.test(e.split(/[\n\r]/).pop())},stringifyNode:function e(t){if(t.groups){return(t.open&&t.open.value?t.open.value:"")+t.groups.reduce(((n,r,i)=>n+e(r)+("comma_group"===t.groups[0].type&&i!==t.groups.length-1?",":"")),"")+(t.close&&t.close.value?t.close.value:"")}const n=t.raws&&t.raws.before?t.raws.before:"",r=t.raws&&t.raws.quote?t.raws.quote:"";return n+r+("atword"===t.type?"@":"")+(t.value?t.value:"")+r+(t.unit?t.unit:"")+(t.group?e(t.group):"")+(t.raws&&t.raws.after?t.raws.after:"")},isAtWordPlaceholderNode:function(e){return e&&"value-atword"===e.type&&e.value.startsWith("prettier-placeholder-")}},bk=function(e,t){let n=0;for(let r=0;r{const o=u[i-1];if(o&&"css-comment"===o.type&&"prettier-ignore"===o.text.trim()){const n=e.getValue();r.push(t.originalText.slice(MN(n),RN(n)))}else r.push(n());i!==u.length-1&&("css-comment"===u[i+1].type&&!kk(t.originalText,MN(u[i+1]),{backwards:!0})&&!Nk(u[i])||"css-atrule"===u[i+1].type&&"else"===u[i+1].name&&"css-comment"!==u[i].type?r.push(" "):(r.push(t.__isHTMLStyleAttribute?jk:Lk),Pk(t.originalText,e.getValue(),RN)&&!Nk(u[i])&&r.push(Lk)))}),"nodes"),r}const qN=/(["'])(?:(?!\1)[^\\]|\\.)*\1/gs,WN=new RegExp(qN.source+"|"+`(${/[$@]?[A-Z_a-z\u0080-\uFFFF][\w\u0080-\uFFFF-]*/g.source})?`+`(${/(?:\d*\.\d+|\d+\.?)(?:[Ee][+-]?\d+)?/g.source})`+`(${/[A-Za-z]+/g.source})?`,"g");function UN(e,t){return e.replace(qN,(e=>Bk(e,t)))}function zN(e,t){const n=t.singleQuote?"'":'"';return e.includes('"')||e.includes("'")?e:n+e+n}function GN(e){return e.replace(WN,((e,t,n,r,i)=>!n&&r?HN(r)+Xk(i||""):e))}function HN(e){return Tk(e).replace(/\.0(?=$|e)/,"")}var JN={print:function(e,t,n){const r=e.getValue();if(!r)return"";if("string"==typeof r)return r;switch(r.type){case"front-matter":return[r.raw,Lk];case"css-root":{const i=VN(e,t,n),u=r.raws.after.trim();return[i,u?` ${u}`:"",zk(i).length>0?Lk:""]}case"css-comment":{const e=r.inline||r.raws.inline,n=t.originalText.slice(MN(r),RN(r));return e?n.trimEnd():n}case"css-rule":return[n("selector"),r.important?" !important":"",r.nodes?[r.selector&&"selector-unknown"===r.selector.type&&LN(r.selector.value)?jk:" ","{",r.nodes.length>0?$k([Lk,VN(e,t,n)]):"",Lk,"}",oN(r)?";":""]:";"];case"css-decl":{const i=e.getParentNode(),{between:u}=r.raws,o=u.trim(),s=":"===o;let a=DN(r)?Uk(n("value")):n("value");return!s&&LN(o)&&(a=$k([Lk,Vk(a)])),[r.raws.before.replace(/[\s;]/g,""),Kk(e)?r.prop:Xk(r.prop),o.startsWith("//")?" ":"",o,r.extend?"":" ",iN(t)&&r.extend&&r.selector?["extend(",n("selector"),")"]:"",a,r.raws.important?r.raws.important.replace(/\s*!\s*important/i," !important"):r.important?" !important":"",r.raws.scssDefault?r.raws.scssDefault.replace(/\s*!default/i," !default"):r.scssDefault?" !default":"",r.raws.scssGlobal?r.raws.scssGlobal.replace(/\s*!global/i," !global"):r.scssGlobal?" !global":"",r.nodes?[" {",$k([_k,VN(e,t,n)]),_k,"}"]:xN(r)&&!i.raws.semicolon&&";"!==t.originalText[RN(r)-1]?"":t.__isHTMLStyleAttribute&&rN(e,r)?qk(";"):";"]}case"css-atrule":{const i=e.getParentNode(),u=FN(r)&&!i.raws.semicolon&&";"!==t.originalText[RN(r)-1];if(iN(t)){if(r.mixin)return[n("selector"),r.important?" !important":"",u?"":";"];if(r.function)return[r.name,n("params"),u?"":";"];if(r.variable)return["@",r.name,": ",r.value?n("value"):"",r.raws.between.trim()?r.raws.between.trim()+" ":"",r.nodes?["{",$k([r.nodes.length>0?_k:"",VN(e,t,n)]),_k,"}"]:"",u?"":";"]}return["@",AN(r)||r.name.endsWith(":")?r.name:Xk(r.name),r.params?[AN(r)?"":FN(r)?""===r.raws.afterName?"":r.name.endsWith(":")?" ":/^\s*\n\s*\n/.test(r.raws.afterName)?[Lk,Lk]:/^\s*\n/.test(r.raws.afterName)?Lk:" ":" ",n("params")]:"",r.selector?$k([" ",n("selector")]):"",r.value?Mk([" ",n("value"),uN(r)?EN(r)?" ":jk:""]):"else"===r.name?" ":"",r.nodes?[uN(r)?"":r.selector&&!r.selector.nodes&&"string"==typeof r.selector.value&&LN(r.selector.value)||!r.selector&&"string"==typeof r.params&&LN(r.params)?jk:" ","{",$k([r.nodes.length>0?_k:"",VN(e,t,n)]),_k,"}"]:u?"":";"]}case"media-query-list":{const t=[];return e.each((e=>{const r=e.getValue();"media-query"===r.type&&""===r.value||t.push(n())}),"nodes"),Mk($k(Ik(jk,t)))}case"media-query":return[Ik(" ",e.map(n,"nodes")),rN(e,r)?"":","];case"media-type":return GN(UN(r.value,t));case"media-feature-expression":return r.nodes?["(",...e.map(n,"nodes"),")"]:r.value;case"media-feature":return Xk(UN(r.value.replace(/ +/g," "),t));case"media-colon":return[r.value," "];case"media-value":return GN(UN(r.value,t));case"media-keyword":return UN(r.value,t);case"media-url":return UN(r.value.replace(/^url\(\s+/gi,"url(").replace(/\s+\)$/g,")"),t);case"media-unknown":return r.value;case"selector-root":return Mk([Qk(e,"custom-selector")?[Hk(e,"css-atrule").customSelector,jk]:"",Ik([",",Qk(e,["extend","custom-selector","nest"])?jk:Lk],e.map(n,"nodes"))]);case"selector-selector":return Mk($k(e.map(n,"nodes")));case"selector-comment":return r.value;case"selector-string":return UN(r.value,t);case"selector-tag":{const t=e.getParentNode(),n=t&&t.nodes.indexOf(r),i=n&&t.nodes[n-1];return[r.namespace?[!0===r.namespace?"":r.namespace.trim(),"|"]:"","selector-nesting"===i.type?r.value:GN(eN(e,r.value)?r.value.toLowerCase():r.value)]}case"selector-id":return["#",r.value];case"selector-class":return[".",GN(UN(r.value,t))];case"selector-attribute":return["[",r.namespace?[!0===r.namespace?"":r.namespace.trim(),"|"]:"",r.attribute.trim(),r.operator?r.operator:"",r.value?zN(UN(r.value.trim(),t),t):"",r.insensitive?" i":"","]"];case"selector-combinator":if("+"===r.value||">"===r.value||"~"===r.value||">>>"===r.value){const t=e.getParentNode();return["selector-selector"===t.type&&t.nodes[0]===r?"":jk,r.value,rN(e,r)?"":" "]}return[r.value.trim().startsWith("(")?jk:"",GN(UN(r.value.trim(),t))||jk];case"selector-universal":return[r.namespace?[!0===r.namespace?"":r.namespace.trim(),"|"]:"",r.value];case"selector-pseudo":return[Xk(r.value),Ok(r.nodes)?["(",Ik(", ",e.map(n,"nodes")),")"]:""];case"selector-nesting":return r.value;case"selector-unknown":{const n=Hk(e,"css-rule");if(n&&n.isSCSSNesterProperty)return GN(UN(Xk(r.value),t));const i=e.getParentNode();if(i.raws&&i.raws.selector){const e=MN(i),n=e+i.raws.selector.length;return t.originalText.slice(e,n).trim()}const u=e.getParentNode(1);if("value-paren_group"===i.type&&u&&"value-func"===u.type&&"selector"===u.value){const e=MN(i.open)+1,n=RN(i.close)-1,r=t.originalText.slice(e,n).trim();return LN(r)?[Wk,r]:r}return r.value}case"value-value":case"value-root":return n("group");case"value-comment":return t.originalText.slice(MN(r),RN(r));case"value-comma_group":{const t=e.getParentNode(),i=e.getParentNode(1),u=Jk(e),o=u&&"value-value"===t.type&&("grid"===u||u.startsWith("grid-template")),s=Hk(e,"css-atrule"),a=s&&uN(s),l=r.groups.some((e=>TN(e))),c=e.map(n,"groups"),p=[],f=Yk(e,"url");let d=!1,h=!1;for(let n=0;n0&&"value-comma_group"===r.groups[0].type&&r.groups[0].groups.length>0&&"value-word"===r.groups[0].groups[0].type&&r.groups[0].groups[0].value.startsWith("data:")))return[r.open?n("open"):"",Ik(",",e.map(n,"groups")),r.close?n("close"):""];if(!r.open){const t=e.map(n,"groups"),r=[];for(let e=0;e{const t=e.getValue(),r=n();if(CN(t)&&"value-comma_group"===t.type&&t.groups&&"value-paren_group"!==t.groups[0].type&&t.groups[2]&&"value-paren_group"===t.groups[2].type){const e=zk(r.contents.contents);return e[1]=Mk(e[1]),Mk(Vk(r))}return r}),"groups"))]),qk(!s&&nN(t.parser,t.originalText)&&u&&$N(t)?",":""),_k,r.close?n("close"):""],{shouldBreak:u&&!a});return a?Vk(l):l}case"value-func":return[r.value,Qk(e,"supports")&&IN(r)?" ":"",n("group")];case"value-paren":return r.value;case"value-number":return[HN(r.value),Xk(r.unit)];case"value-operator":return r.value;case"value-word":return r.isColor&&r.isHex||tN(r.value)?r.value.toLowerCase():r.value;case"value-colon":{const t=e.getParentNode(),n=t&&t.groups.indexOf(r),i=n&&t.groups[n-1];return[r.value,i&&"string"==typeof i.value&&"\\"===Sn(i.value)||Yk(e,"url")?"":jk]}case"value-comma":return[r.value," "];case"value-string":return Bk(r.raws.quote+r.value+r.raws.quote,t);case"value-atword":return["@",r.value];case"value-unicode-range":case"value-unknown":return r.value;default:throw new Error(`Unknown postcss type ${JSON.stringify(r.type)}`)}},embed:rk,insertPragma:Gk,massageAstNode:QB},XN={singleQuote:$B.singleQuote},YN={name:"PostCSS",type:"markup",tmScope:"source.postcss",group:"CSS",extensions:[".pcss",".postcss"],aceMode:"text",languageId:262764437},KN={name:"Less",type:"markup",color:"#1d365d",extensions:[".less"],tmScope:"source.css.less",aceMode:"less",codemirrorMode:"css",codemirrorMimeType:"text/css",languageId:198},QN={name:"SCSS",type:"markup",color:"#c6538c",tmScope:"source.css.scss",aceMode:"scss",codemirrorMode:"css",codemirrorMimeType:"text/x-scss",extensions:[".scss"],languageId:329};var ZN={languages:[Yd({name:"CSS",type:"markup",tmScope:"source.css",aceMode:"css",codemirrorMode:"css",codemirrorMimeType:"text/css",color:"#563d7c",extensions:[".css"],languageId:50},(e=>({since:"1.4.0",parsers:["css"],vscodeLanguageIds:["css"],extensions:[...e.extensions,".wxss"]}))),Yd(YN,(()=>({since:"1.4.0",parsers:["css"],vscodeLanguageIds:["postcss"]}))),Yd(KN,(()=>({since:"1.4.0",parsers:["less"],vscodeLanguageIds:["less"]}))),Yd(QN,(()=>({since:"1.4.0",parsers:["scss"],vscodeLanguageIds:["scss"]})))],options:XN,printers:{postcss:JN},parsers:{get css(){return require("./parser-postcss").parsers.css},get less(){return require("./parser-postcss").parsers.less},get scss(){return require("./parser-postcss").parsers.scss}}};var eP={locStart:function(e){return e.loc.start.offset},locEnd:function(e){return e.loc.end.offset}};function tP(e,t){if("TextNode"===e.type){const n=e.chars.trim();if(!n)return null;t.chars=n.replace(/[\t\n\f\r ]+/g," ")}"AttrNode"===e.type&&"class"===e.name.toLowerCase()&&delete t.value}tP.ignoredProperties=new Set(["loc","selfClosing"]);var nP=tP;const rP=new Set(["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"]);function iP(e){return uP(e,["TextNode"])&&!/\S/.test(e.chars)}function uP(e,t){return e&&t.includes(e.type)}function oP(e,t){return uP(e.getParentNode(0),t)}function sP(e,t){const n=e.getValue(),r=e.getParentNode(0)||{},i=r.children||r.body||r.parts||[],u=i.indexOf(n);return-1!==u&&i[u+t]}function aP(e,t=1){return sP(e,-t)}function lP(e){return sP(e,1)}function cP(e){return uP(e,["MustacheCommentStatement"])&&"string"==typeof e.value&&"prettier-ignore"===e.value.trim()}var pP={getNextNode:lP,getPreviousNode:aP,hasPrettierIgnore:function(e){const t=e.getValue(),n=aP(e,2);return cP(t)||cP(n)},isLastNodeOfSiblings:function(e){const t=e.getValue(),n=e.getParentNode(0);return!(!oP(e,["ElementNode"])||Sn(n.children)!==t)||!(!oP(e,["Block"])||Sn(n.body)!==t)},isNextNodeOfSomeType:function(e,t){return uP(lP(e),t)},isNodeOfSomeType:uP,isParentOfSomeType:oP,isPreviousNodeOfSomeType:function(e,t){return uP(aP(e),t)},isVoid:function(e){return function(e){return uP(e,["ElementNode"])&&"string"==typeof e.tag&&(function(e){return e.toUpperCase()===e}(e.tag[0])||e.tag.includes("."))}(e)&&e.children.every((e=>iP(e)))||rP.has(e.tag)},isWhitespaceNode:iP};const{builders:{dedent:fP,fill:dP,group:hP,hardline:gP,ifBreak:mP,indent:yP,join:DP,line:EP,softline:bP,literalline:CP},utils:{getDocParts:vP,replaceEndOfLineWith:AP}}=Ji,{isNonEmptyArray:FP}=fi,{locStart:xP,locEnd:SP}=eP,{getNextNode:wP,getPreviousNode:TP,hasPrettierIgnore:BP,isLastNodeOfSiblings:kP,isNextNodeOfSomeType:NP,isNodeOfSomeType:PP,isParentOfSomeType:OP,isPreviousNodeOfSomeType:IP,isVoid:jP,isWhitespaceNode:LP}=pP;function _P(e,t){return xP(e)-xP(t)}function MP(e,t,n){const r=e.getValue().children.every((e=>LP(e)));return"ignore"===t.htmlWhitespaceSensitivity&&r?"":e.map(((e,r)=>{const i=n();return 0===r&&"ignore"===t.htmlWhitespaceSensitivity?[bP,i]:i}),"children")}function RP(e){return jP(e)?mP([bP,"/>"],[" />",bP]):mP([bP,">"],">")}function $P(e){return[!1===e.escaped?"{{{":"{{",e.strip&&e.strip.open?"~":""]}function VP(e){const t=!1===e.escaped?"}}}":"}}";return[e.strip&&e.strip.close?"~":"",t]}function qP(e){return[$P(e),e.closeStrip.open?"~":"","/"]}function WP(e){const t=VP(e);return[e.closeStrip.close?"~":"",t]}function UP(e){return[$P(e),e.inverseStrip.open?"~":""]}function zP(e){const t=VP(e);return[e.inverseStrip.close?"~":"",t]}function GP(e,t){const n=e.getValue(),r=function(e){return[$P(e),e.openStrip.open?"~":"","#"]}(n),i=function(e){const t=VP(e);return[e.openStrip.close?"~":"",t]}(n),u=[oO(e,t)],o=sO(e,t);if(o&&u.push(EP,o),FP(n.program.blockParams)){const e=aO(n.program);u.push(EP,e)}return hP([r,yP(u),bP,i])}function HP(e,t){return["ignore"===t.htmlWhitespaceSensitivity?gP:"",UP(e),"else",zP(e)]}function JP(e,t){const n=e.getParentNode(1);return[UP(n),"else if ",sO(e,t),zP(n)]}function XP(e,t,n){const r=e.getValue();if("ignore"===n.htmlWhitespaceSensitivity){return[YP(r)?bP:gP,qP(r),t("path"),WP(r)]}return[qP(r),t("path"),WP(r)]}function YP(e){return PP(e,["BlockStatement"])&&e.program.body.every((e=>LP(e)))}function KP(e){return PP(e,["BlockStatement"])&&e.inverse}function QP(e,t,n){if(YP(e.getValue()))return"";const r=t("program");return"ignore"===n.htmlWhitespaceSensitivity?yP([gP,r]):yP(r)}function ZP(e,t,n){const r=e.getValue(),i=t("inverse"),u="ignore"===n.htmlWhitespaceSensitivity?[gP,i]:i;return function(e){return KP(e)&&1===e.inverse.body.length&&PP(e.inverse.body[0],["BlockStatement"])&&"if"===e.inverse.body[0].path.parts[0]}(r)?u:KP(r)?[HP(r,n),yP(u)]:""}function eO(e){return vP(DP(EP,function(e){return e.split(/[\t\n\f\r ]+/)}(e)))}function tO(e){return(e="string"==typeof e?e:"").split("\n").length-1}function nO(e=0){return new Array(Math.min(e,2)).fill(gP)}function rO(e,t){const n={quote:'"',regex:/"/g},r={quote:"'",regex:/'/g},i=e.singleQuote?r:n,u=i===r?n:r;let o=!1;if(t.includes(i.quote)||t.includes(u.quote)){o=(t.match(i.regex)||[]).length>(t.match(u.regex)||[]).length}return o?u:i}function iO(e,t){const n=oO(e,t),r=sO(e,t);return r?yP([n,EP,hP(r)]):n}function uO(e,t){const n=oO(e,t),r=sO(e,t);return r?[yP([n,EP,r]),bP]:n}function oO(e,t){return t("path")}function sO(e,t){const n=e.getValue(),r=[];if(n.params.length>0){const n=e.map(t,"params");r.push(...n)}if(n.hash&&n.hash.pairs.length>0){const e=t("hash");r.push(e)}return 0===r.length?"":DP(EP,r)}function aO(e){return["as |",e.blockParams.join(" "),"|"]}var lO={print:function(e,t,n){const r=e.getValue();if(!r)return"";if(BP(e))return t.originalText.slice(xP(r),SP(r));switch(r.type){case"Block":case"Program":case"Template":return hP(e.map(n,"body"));case"ElementNode":{const i=hP(function(e,t){const n=e.getValue(),r=["attributes","modifiers","comments"].filter((e=>FP(n[e]))),i=r.flatMap((e=>n[e])).sort(_P);for(const n of r)e.each((e=>{const n=i.indexOf(e.getValue());i.splice(n,1,[EP,t()])}),n);FP(n.blockParams)&&i.push(EP,aO(n));return["<",n.tag,yP(i),RP(n)]}(e,n)),u="ignore"===t.htmlWhitespaceSensitivity&&NP(e,["ElementNode"])?bP:"";if(jP(r))return[i,u];const o=[""];return 0===r.children.length?[i,yP(o),u]:"ignore"===t.htmlWhitespaceSensitivity?[i,yP(MP(e,t,n)),gP,yP(o),u]:[i,yP(hP(MP(e,t,n))),yP(o),u]}case"BlockStatement":{const i=e.getParentNode(1);return i&&i.inverse&&1===i.inverse.body.length&&i.inverse.body[0]===r&&"if"===i.inverse.body[0].path.parts[0]?[JP(e,n),QP(e,n,t),ZP(e,n,t)]:[GP(e,n),hP([QP(e,n,t),ZP(e,n,t),XP(e,n,t)])]}case"ElementModifierStatement":return hP(["{{",uO(e,n),"}}"]);case"MustacheStatement":return hP([$P(r),uO(e,n),VP(r)]);case"SubExpression":return hP(["(",iO(e,n),bP,")"]);case"AttrNode":{const e="TextNode"===r.value.type;if(e&&""===r.value.chars&&xP(r.value)===SP(r.value))return r.name;const i=e?rO(t,r.value.chars).quote:"ConcatStatement"===r.value.type?rO(t,r.value.parts.filter((e=>"TextNode"===e.type)).map((e=>e.chars)).join("")).quote:"",u=n("value");return[r.name,"=",i,"class"===r.name&&i?hP(yP(u)):u,i]}case"ConcatStatement":return e.map(n,"parts");case"Hash":return DP(EP,e.map(n,"pairs"));case"HashPair":return[r.key,"=",n("value")];case"TextNode":{let n=r.chars.replace(/{{/g,"\\{{");const i=function(e){for(let t=0;t<2;t++){const n=e.getParentNode(t);if(n&&"AttrNode"===n.type)return n.name.toLowerCase()}}(e);if(i){if("class"===i){const t=n.trim().split(/\s+/).join(" ");let r=!1,i=!1;return OP(e,["ConcatStatement"])&&(IP(e,["MustacheStatement"])&&/^\s/.test(n)&&(r=!0),NP(e,["MustacheStatement"])&&/\s$/.test(n)&&""!==t&&(i=!0)),[r?EP:"",t,i?EP:""]}return AP(n,CP)}const u=/^[\t\n\f\r ]*$/.test(n),o=!TP(e),s=!wP(e);if("ignore"!==t.htmlWhitespaceSensitivity){const t=/^[\t\n\f\r ]*/,r=/[\t\n\f\r ]*$/,i=s&&OP(e,["Template"]),a=o&&OP(e,["Template"]);if(u){if(a||i)return"";let t=[EP];const r=tO(n);return r&&(t=nO(r)),kP(e)&&(t=t.map((e=>fP(e)))),t}const[l]=n.match(t),[c]=n.match(r);let p=[];if(l){p=[EP];const e=tO(l);e&&(p=nO(e)),n=n.replace(t,"")}let f=[];if(c){if(!i){f=[EP];const t=tO(c);t&&(f=nO(t)),kP(e)&&(f=f.map((e=>fP(e))))}n=n.replace(r,"")}return[...p,dP(eO(n)),...f]}const a=tO(n);let l=function(e){return tO(((e="string"==typeof e?e:"").match(/^([^\S\n\r]*[\n\r])+/g)||[])[0]||"")}(n),c=function(e){return tO(((e="string"==typeof e?e:"").match(/([\n\r][^\S\n\r]*)+$/g)||[])[0]||"")}(n);if((o||s)&&u&&OP(e,["Block","ElementNode","Template"]))return"";u&&a?(l=Math.min(a,2),c=0):(NP(e,["BlockStatement","ElementNode"])&&(c=Math.max(c,1)),IP(e,["BlockStatement","ElementNode"])&&(l=Math.max(l,1)));let p="",f="";return 0===c&&NP(e,["MustacheStatement"])&&(f=" "),0===l&&IP(e,["MustacheStatement"])&&(p=" "),o&&(l=0,p=""),s&&(c=0,f=""),n=n.replace(/^[\t\n\f\r ]+/g,p).replace(/[\t\n\f\r ]+$/,f),[...nO(l),dP(eO(n)),...nO(c)]}case"MustacheCommentStatement":{const e=xP(r),n=SP(r),i="~"===t.originalText.charAt(e+2),u="~"===t.originalText.charAt(n-3),o=r.value.includes("}}")?"--":"";return["{{",i?"~":"","!",o,r.value,o,u?"~":"","}}"]}case"PathExpression":return r.original;case"BooleanLiteral":return String(r.value);case"CommentStatement":return["\x3c!--",r.value,"--\x3e"];case"StringLiteral":return function(e,t){const{quote:n,regex:r}=rO(t,e);return[n,e.replace(r,`\\${n}`),n]}(r.value,t);case"NumberLiteral":return String(r.value);case"UndefinedLiteral":return"undefined";case"NullLiteral":return"null";default:throw new Error("unknown glimmer type: "+JSON.stringify(r.type))}},massageAstNode:nP};var cO={languages:[Yd({name:"Handlebars",type:"markup",color:"#f7931e",aliases:["hbs","htmlbars"],extensions:[".handlebars",".hbs"],tmScope:"text.html.handlebars",aceMode:"handlebars",languageId:155},(()=>({since:"2.3.0",parsers:["glimmer"],vscodeLanguageIds:["handlebars"]})))],printers:{glimmer:lO},parsers:{get glimmer(){return require("./parser-glimmer").parsers.glimmer}}};var pO={hasPragma:function(e){return/^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(e)},insertPragma:function(e){return"# @format\n\n"+e}};var fO={locStart:function(e){return"number"==typeof e.start?e.start:e.loc&&e.loc.start},locEnd:function(e){return"number"==typeof e.end?e.end:e.loc&&e.loc.end}};const{builders:{join:dO,hardline:hO,line:gO,softline:mO,group:yO,indent:DO,ifBreak:EO}}=Ji,{isNextLineEmpty:bO,isNonEmptyArray:CO}=fi,{insertPragma:vO}=pO,{locStart:AO,locEnd:FO}=fO;function xO(e,t,n){if(0===n.directives.length)return"";const r=dO(gO,e.map(t,"directives"));return"FragmentDefinition"===n.kind||"OperationDefinition"===n.kind?yO([gO,r]):[" ",yO(DO([mO,r]))]}function SO(e,t,n){const r=e.getValue().length;return e.map(((e,i)=>{const u=n();return bO(t.originalText,e.getValue(),FO)&&in(e)),"interfaces");for(let e=0;e{r.push(n()),i!==u.length-1&&(r.push(hO),bO(t.originalText,e.getValue(),FO)&&r.push(hO))}),"definitions"),[...r,hO]}case"OperationDefinition":{const i="{"!==t.originalText[AO(r)],u=Boolean(r.name);return[i?r.operation:"",i&&u?[" ",n("name")]:"",i&&!u&&CO(r.variableDefinitions)?" ":"",CO(r.variableDefinitions)?yO(["(",DO([mO,dO([EO("",", "),mO],e.map(n,"variableDefinitions"))]),mO,")"]):"",xO(e,n,r),r.selectionSet&&(i||u)?" ":"",n("selectionSet")]}case"FragmentDefinition":return["fragment ",n("name"),CO(r.variableDefinitions)?yO(["(",DO([mO,dO([EO("",", "),mO],e.map(n,"variableDefinitions"))]),mO,")"]):""," on ",n("typeCondition"),xO(e,n,r)," ",n("selectionSet")];case"SelectionSet":return["{",DO([hO,dO(hO,e.call((e=>SO(e,t,n)),"selections"))]),hO,"}"];case"Field":return yO([r.alias?[n("alias"),": "]:"",n("name"),r.arguments.length>0?yO(["(",DO([mO,dO([EO("",", "),mO],e.call((e=>SO(e,t,n)),"arguments"))]),mO,")"]):"",xO(e,n,r),r.selectionSet?" ":"",n("selectionSet")]);case"Name":return r.value;case"StringValue":return r.block?['"""',hO,dO(hO,r.value.replace(/"""/g,"\\$&").split("\n")),hO,'"""']:['"',r.value.replace(/["\\]/g,"\\$&").replace(/\n/g,"\\n"),'"'];case"IntValue":case"FloatValue":case"EnumValue":return r.value;case"BooleanValue":return r.value?"true":"false";case"NullValue":return"null";case"Variable":return["$",n("name")];case"ListValue":return yO(["[",DO([mO,dO([EO("",", "),mO],e.map(n,"values"))]),mO,"]"]);case"ObjectValue":return yO(["{",t.bracketSpacing&&r.fields.length>0?" ":"",DO([mO,dO([EO("",", "),mO],e.map(n,"fields"))]),mO,EO("",t.bracketSpacing&&r.fields.length>0?" ":""),"}"]);case"ObjectField":case"Argument":return[n("name"),": ",n("value")];case"Directive":return["@",n("name"),r.arguments.length>0?yO(["(",DO([mO,dO([EO("",", "),mO],e.call((e=>SO(e,t,n)),"arguments"))]),mO,")"]):""];case"NamedType":return n("name");case"VariableDefinition":return[n("variable"),": ",n("type"),r.defaultValue?[" = ",n("defaultValue")]:"",xO(e,n,r)];case"ObjectTypeExtension":case"ObjectTypeDefinition":return[n("description"),r.description?hO:"","ObjectTypeExtension"===r.kind?"extend ":"","type ",n("name"),r.interfaces.length>0?[" implements ",...wO(e,t,n)]:"",xO(e,n,r),r.fields.length>0?[" {",DO([hO,dO(hO,e.call((e=>SO(e,t,n)),"fields"))]),hO,"}"]:""];case"FieldDefinition":return[n("description"),r.description?hO:"",n("name"),r.arguments.length>0?yO(["(",DO([mO,dO([EO("",", "),mO],e.call((e=>SO(e,t,n)),"arguments"))]),mO,")"]):"",": ",n("type"),xO(e,n,r)];case"DirectiveDefinition":return[n("description"),r.description?hO:"","directive ","@",n("name"),r.arguments.length>0?yO(["(",DO([mO,dO([EO("",", "),mO],e.call((e=>SO(e,t,n)),"arguments"))]),mO,")"]):"",r.repeatable?" repeatable":""," on ",dO(" | ",e.map(n,"locations"))];case"EnumTypeExtension":case"EnumTypeDefinition":return[n("description"),r.description?hO:"","EnumTypeExtension"===r.kind?"extend ":"","enum ",n("name"),xO(e,n,r),r.values.length>0?[" {",DO([hO,dO(hO,e.call((e=>SO(e,t,n)),"values"))]),hO,"}"]:""];case"EnumValueDefinition":return[n("description"),r.description?hO:"",n("name"),xO(e,n,r)];case"InputValueDefinition":return[n("description"),r.description?r.description.block?hO:gO:"",n("name"),": ",n("type"),r.defaultValue?[" = ",n("defaultValue")]:"",xO(e,n,r)];case"InputObjectTypeExtension":case"InputObjectTypeDefinition":return[n("description"),r.description?hO:"","InputObjectTypeExtension"===r.kind?"extend ":"","input ",n("name"),xO(e,n,r),r.fields.length>0?[" {",DO([hO,dO(hO,e.call((e=>SO(e,t,n)),"fields"))]),hO,"}"]:""];case"SchemaDefinition":return["schema",xO(e,n,r)," {",r.operationTypes.length>0?DO([hO,dO(hO,e.call((e=>SO(e,t,n)),"operationTypes"))]):"",hO,"}"];case"OperationTypeDefinition":return[n("operation"),": ",n("type")];case"InterfaceTypeExtension":case"InterfaceTypeDefinition":return[n("description"),r.description?hO:"","InterfaceTypeExtension"===r.kind?"extend ":"","interface ",n("name"),r.interfaces.length>0?[" implements ",...wO(e,t,n)]:"",xO(e,n,r),r.fields.length>0?[" {",DO([hO,dO(hO,e.call((e=>SO(e,t,n)),"fields"))]),hO,"}"]:""];case"FragmentSpread":return["...",n("name"),xO(e,n,r)];case"InlineFragment":return["...",r.typeCondition?[" on ",n("typeCondition")]:"",xO(e,n,r)," ",n("selectionSet")];case"UnionTypeExtension":case"UnionTypeDefinition":return yO([n("description"),r.description?hO:"",yO(["UnionTypeExtension"===r.kind?"extend ":"","union ",n("name"),xO(e,n,r),r.types.length>0?[" =",EO(""," "),DO([EO([gO," "]),dO([gO,"| "],e.map(n,"types"))])]:""])]);case"ScalarTypeExtension":case"ScalarTypeDefinition":return[n("description"),r.description?hO:"","ScalarTypeExtension"===r.kind?"extend ":"","scalar ",n("name"),xO(e,n,r)];case"NonNullType":return[n("type"),"!"];case"ListType":return["[",n("type"),"]"];default:throw new Error("unknown graphql type: "+JSON.stringify(r.kind))}},massageAstNode:TO,hasPrettierIgnore:function(e){const t=e.getValue();return t&&Array.isArray(t.comments)&&t.comments.some((e=>"prettier-ignore"===e.value.trim()))},insertPragma:vO,printComment:function(e){const t=e.getValue();if("Comment"===t.kind)return"#"+t.value.trimEnd();throw new Error("Not a comment: "+JSON.stringify(t))},canAttachComment:function(e){return e.kind&&"Comment"!==e.kind}},kO={bracketSpacing:$B.bracketSpacing};var NO={languages:[Yd({name:"GraphQL",type:"data",color:"#e10098",extensions:[".graphql",".gql",".graphqls"],tmScope:"source.graphql",aceMode:"text",languageId:139},(()=>({since:"1.5.0",parsers:["graphql"],vscodeLanguageIds:["graphql"]})))],options:kO,printers:{graphql:BO},parsers:{get graphql(){return require("./parser-graphql").parsers.graphql}}};var PO={locStart:function(e){return e.position.start.offset},locEnd:function(e){return e.position.end.offset}};const{getLast:OO}=fi,{locStart:IO,locEnd:jO}=PO,{cjkPattern:LO,kPattern:_O,punctuationPattern:MO}={cjkPattern:"(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?",kPattern:"[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]",punctuationPattern:"[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]"},RO=["liquidNode","inlineCode","emphasis","strong","delete","wikiLink","link","linkReference","image","imageReference","footnote","footnoteReference","sentence","whitespace","word","break","inlineMath"],$O=[...RO,"tableCell","paragraph","heading"],VO=new RegExp(_O),qO=new RegExp(MO);function WO(e,t){const[,n,r,i]=t.slice(e.position.start.offset,e.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/);return{numberText:n,marker:r,leadingSpaces:i}}var UO={mapAst:function(e,t){return function e(n,r,i){const u=Object.assign({},t(n,r,i));return u.children&&(u.children=u.children.map(((t,n)=>e(t,n,[u,...i])))),u}(e,null,[])},splitText:function(e,t){const n="non-cjk",r="cj-letter",i="cjk-punctuation",u=[],o=("preserve"===t.proseWrap?e:e.replace(new RegExp(`(${LO})\n(${LO})`,"g"),"$1$2")).split(/([\t\n ]+)/);for(const[e,t]of o.entries()){if(e%2==1){u.push({type:"whitespace",value:/\n/.test(t)?"\n":" "});continue}if((0===e||e===o.length-1)&&""===t)continue;const a=t.split(new RegExp(`(${LO})`));for(const[e,t]of a.entries())(0!==e&&e!==a.length-1||""!==t)&&(e%2!=0?s(qO.test(t)?{type:"word",value:t,kind:i,hasLeadingPunctuation:!0,hasTrailingPunctuation:!0}:{type:"word",value:t,kind:VO.test(t)?"k-letter":r,hasLeadingPunctuation:!1,hasTrailingPunctuation:!1}):""!==t&&s({type:"word",value:t,kind:n,hasLeadingPunctuation:qO.test(t[0]),hasTrailingPunctuation:qO.test(OO(t))}))}return u;function s(e){const t=OO(u);var o,s;t&&"word"===t.type&&(t.kind===n&&e.kind===r&&!t.hasTrailingPunctuation||t.kind===r&&e.kind===n&&!e.hasLeadingPunctuation?u.push({type:"whitespace",value:" "}):(o=n,s=i,t.kind===o&&e.kind===s||t.kind===s&&e.kind===o||[t.value,e.value].some((e=>/\u3000/.test(e)))||u.push({type:"whitespace",value:""}))),u.push(e)}},punctuationPattern:MO,getFencedCodeBlockValue:function(e,t){const{value:n}=e;return e.position.end.offset===t.length&&n.endsWith("\n")&&t.endsWith("\n")?n.slice(0,-1):n},getOrderedListItemInfo:WO,hasGitDiffFriendlyOrderedList:function(e,t){if(!e.ordered)return!1;if(e.children.length<2)return!1;const n=Number(WO(e.children[0],t.originalText).numberText),r=Number(WO(e.children[1],t.originalText).numberText);if(0===n&&e.children.length>2){const n=Number(WO(e.children[2],t.originalText).numberText);return 1===r&&1===n}return 1===r},INLINE_NODE_TYPES:RO,INLINE_NODE_WRAPPER_TYPES:$O,isAutolink:function(e){if(!e||"link"!==e.type||1!==e.children.length)return!1;const t=e.children[0];return t&&IO(e)===IO(t)&&jO(e)===jO(t)}};const{inferParserByLanguage:zO,getMaxContinuousCount:GO}=fi,{builders:{hardline:HO,markAsRoot:JO},utils:{replaceNewlinesWithLiterallines:XO}}=Ji,{getFencedCodeBlockValue:YO}=UO;var KO=function(e,t,n,r){const i=e.getValue();if("code"===i.type&&null!==i.lang){const e=zO(i.lang,r);if(e){const t=r.__inJsTemplate?"~":"`",u=t.repeat(Math.max(3,GO(i.value,t)+1)),o=n(YO(i,r.originalText),{parser:e},{stripTrailingHardline:!0});return JO([u,i.lang,i.meta?" "+i.meta:"",HO,XO(o),HO,u])}}switch(i.type){case"front-matter":return tk(i,n);case"importExport":return[n(i.value,{parser:"babel"},{stripTrailingHardline:!0}),HO];case"jsx":return n(`<$>${i.value}`,{parser:"__js_expression",rootMarker:"mdx"},{stripTrailingHardline:!0})}return null};const QO=["format","prettier"];function ZO(e){const t=`@(${QO.join("|")})`,n=new RegExp([`\x3c!--\\s*${t}\\s*--\x3e`,`\x3c!--.*\r?\n[\\s\\S]*(^|\n)[^\\S\n]*${t}[^\\S\n]*($|\n)[\\s\\S]*\n.*--\x3e`].join("|"),"m"),r=e.match(n);return r&&0===r.index}var eI={startWithPragma:ZO,hasPragma:e=>ZO(uk(e).content.trimStart()),insertPragma:e=>{const t=uk(e),n=`\x3c!-- @${QO[0]} --\x3e`;return t.frontMatter?`${t.frontMatter.raw}\n\n${n}\n\n${t.content}`:`${n}\n\n${t.content}`}};const{getOrderedListItemInfo:tI,mapAst:nI,splitText:rI}=UO,iI=/^.$/us;function uI(e,t,n){return nI(e,(e=>{if(!e.children)return e;const r=e.children.reduce(((e,r)=>{const i=Sn(e);return i&&t(i,r)?e.splice(-1,1,n(i,r)):e.push(r),e}),[]);return Object.assign(Object.assign({},e),{},{children:r})}))}var oI=function(e,t){return e=function(e){return uI(e,((e,t)=>"importExport"===e.type&&"importExport"===t.type),((e,t)=>({type:"importExport",value:e.value+"\n\n"+t.value,position:{start:e.position.start,end:t.position.end}})))}(e=function(e){return nI(e,(e=>"import"!==e.type&&"export"!==e.type?e:Object.assign(Object.assign({},e),{},{type:"importExport"})))}(e=function(e,t){return nI(e,((e,n,[r])=>{if("text"!==e.type)return e;let{value:i}=e;return"paragraph"===r.type&&(0===n&&(i=i.trimStart()),n===r.children.length-1&&(i=i.trimEnd())),{type:"sentence",position:e.position,children:rI(i,t)}}))}(e=function(e,t){return nI(e,((e,t,n)=>{if("list"===e.type&&e.children.length>0){for(let t=0;t1)return!0;const u=n(r);if(-1===u)return!1;if(1===e.children.length)return u%t.tabWidth==0;if(u!==n(i))return!1;if(u%t.tabWidth==0)return!0;return tI(i,t.originalText).leadingSpaces.length>1}}(e=function(e,t){return nI(e,((e,n,r)=>{if("code"===e.type){const n=/^\n?( {4,}|\t)/.test(t.originalText.slice(e.position.start.offset,e.position.end.offset));if(e.isIndented=n,n)for(let e=0;e"inlineCode"!==e.type?e:Object.assign(Object.assign({},e),{},{value:e.value.replace(/\s+/g," ")})))}(e=function(e){return uI(e,((e,t)=>"text"===e.type&&"text"===t.type),((e,t)=>({type:"text",value:e.value+t.value,position:{start:e.position.start,end:t.position.end}})))}(e=function(e,t){return nI(e,(e=>"text"===e.type&&"*"!==e.value&&"_"!==e.value&&iI.test(e.value)&&e.position.end.offset-e.position.start.offset!==e.value.length?Object.assign(Object.assign({},e),{},{value:t.originalText.slice(e.position.start.offset,e.position.end.offset)}):e))}(e,t))),t),t),t)))};const{isFrontMatterNode:sI}=fi,{startWithPragma:aI}=eI,lI=new Set(["position","raw"]);function cI(e,t,n){return"front-matter"!==e.type&&"code"!==e.type&&"yaml"!==e.type&&"import"!==e.type&&"export"!==e.type&&"jsx"!==e.type||delete t.value,"list"===e.type&&delete t.isAligned,"list"!==e.type&&"listItem"!==e.type||(delete t.spread,delete t.loose),"text"===e.type?null:("inlineCode"===e.type&&(t.value=e.value.replace(/[\t\n ]+/g," ")),"wikiLink"===e.type&&(t.value=e.value.trim().replace(/[\t\n]+/g," ")),"definition"!==e.type&&"linkReference"!==e.type||(t.label=e.label.trim().replace(/[\t\n ]+/g," ").toLowerCase()),"definition"!==e.type&&"link"!==e.type&&"image"!==e.type||!e.title||(t.title=e.title.replace(/\\(["')])/g,"$1")),n&&"root"===n.type&&n.children.length>0&&(n.children[0]===e||sI(n.children[0])&&n.children[1]===e)&&"html"===e.type&&aI(e.value)?null:void 0)}cI.ignoredProperties=lI;var pI=cI;const{getLast:fI,getMinNotPresentContinuousCount:dI,getMaxContinuousCount:hI,getStringWidth:gI,isNonEmptyArray:mI}=fi,{builders:{breakParent:yI,join:DI,line:EI,literalline:bI,markAsRoot:CI,hardline:vI,softline:AI,ifBreak:FI,fill:xI,align:SI,indent:wI,group:TI,hardlineWithoutBreakParent:BI},utils:{normalizeDoc:kI,replaceEndOfLineWith:NI},printer:{printDocToString:PI}}=Ji,{insertPragma:OI}=eI,{locStart:II,locEnd:jI}=PO,{getFencedCodeBlockValue:LI,hasGitDiffFriendlyOrderedList:_I,splitText:MI,punctuationPattern:RI,INLINE_NODE_TYPES:$I,INLINE_NODE_WRAPPER_TYPES:VI,isAutolink:qI}=UO,WI=new Set(["importExport"]),UI=["heading","tableCell","link","wikiLink"],zI=new Set(["listItem","definition","footnoteDefinition"]);function GI(e,t,n,r){const i=e.getValue(),u=null===i.checked?"":i.checked?"[x] ":"[ ] ";return[u,QI(e,t,n,{processor:(e,i)=>{if(0===i&&"list"!==e.getValue().type)return SI(" ".repeat(u.length),n());const o=" ".repeat(function(e,t,n){return en?n:e}(t.tabWidth-r.length,0,3));return[o,SI(o,n())]}})]}function HI(e,t){return function(e,t,n){let r=-1;for(const i of t.children)if(i.type===e.type&&n(i)?r++:r=-1,i===e)return r}(e,t,(t=>t.ordered===e.ordered))}function JI(e,t){const n=Array.isArray(t)?t:[t];let r,i=-1;for(;r=e.getParentNode(++i);)if(n.includes(r.type))return i;return-1}function XI(e,t){const n=JI(e,t);return-1===n?null:e.getParentNode(n)}function YI(e,t,n){if("preserve"===n.proseWrap&&"\n"===t)return vI;const r="always"===n.proseWrap&&!XI(e,UI);return""!==t?r?EI:" ":r?AI:""}function KI(e,t,n){const r=[];let i=null;const{children:u}=e.getValue();for(const[e,t]of u.entries())switch(ej(t)){case"start":null===i&&(i={index:e,offset:t.position.end.offset});break;case"end":null!==i&&(r.push({start:i,end:{index:e,offset:t.position.start.offset}}),i=null)}return QI(e,t,n,{processor:(e,i)=>{if(r.length>0){const e=r[0];if(i===e.start.index)return[u[e.start.index].value,t.originalText.slice(e.start.offset,e.end.offset),u[e.end.index].value];if(e.start.indexn()),o=e.getValue(),s=[];let a;return e.each(((e,n)=>{const r=e.getValue(),i=u(e,n);if(!1!==i){const e={parts:s,prevNode:a,parentNode:o,options:t};(function(e,t){const n=0===t.parts.length,r=$I.includes(e.type),i="html"===e.type&&VI.includes(t.parentNode.type);return!n&&!r&&!i})(r,e)&&(s.push(vI),a&&WI.has(a.type)||(function(e,t){const n=(t.prevNode&&t.prevNode.type)===e.type&&zI.has(e.type),r="listItem"===t.parentNode.type&&!t.parentNode.loose,i=t.prevNode&&"listItem"===t.prevNode.type&&t.prevNode.loose,u="next"===ej(t.prevNode),o="html"===e.type&&t.prevNode&&"html"===t.prevNode.type&&t.prevNode.position.end.line+1===e.position.start.line,s="html"===e.type&&"listItem"===t.parentNode.type&&t.prevNode&&"paragraph"===t.prevNode.type&&t.prevNode.position.end.line+1===e.position.start.line;return i||!(n||r||u||o||s)}(r,e)||tj(r,e))&&s.push(vI),tj(r,e)&&s.push(vI)),s.push(i),a=r}}),"children"),i?i(s):s}function ZI(e){let t=e;for(;mI(t.children);)t=fI(t.children);return t}function ej(e){if("html"!==e.type)return!1;const t=e.value.match(/^$/);return null!==t&&(t[1]?t[1]:"next")}function tj(e,t){const n=t.prevNode&&"list"===t.prevNode.type,r="code"===e.type&&e.isIndented;return n&&r}function nj(e,t=[]){const n=[" ",...Array.isArray(t)?t:[t]];return new RegExp(n.map((e=>`\\${e}`)).join("|")).test(e)?`<${e}>`:e}function rj(e,t,n=!0){if(!e)return"";if(n)return" "+rj(e,t,!1);if((e=e.replace(/\\(["')])/g,"$1")).includes('"')&&e.includes("'")&&!e.includes(")"))return`(${e})`;const r=e.split("'").length-1,i=e.split('"').length-1,u=r>i?'"':i>r||t.singleQuote?"'":'"';return`${u}${e=(e=e.replace(/\\/,"\\\\")).replace(new RegExp(`(${u})`,"g"),"\\$1")}${u}`}var ij={preprocess:oI,print:function(e,t,n){const r=e.getValue();if(function(e){const t=XI(e,["linkReference","imageReference"]);return t&&("linkReference"!==t.type||"full"!==t.referenceType)}(e))return MI(t.originalText.slice(r.position.start.offset,r.position.end.offset),t).map((n=>"word"===n.type?n.value:""===n.value?"":YI(e,n.value,t)));switch(r.type){case"front-matter":return t.originalText.slice(r.position.start.offset,r.position.end.offset);case"root":return 0===r.children.length?"":[kI(KI(e,t,n)),WI.has(ZI(r).type)?"":vI];case"paragraph":return QI(e,t,n,{postprocessor:xI});case"sentence":return QI(e,t,n);case"word":{let t=r.value.replace(/\*/g,"\\$&").replace(new RegExp([`(^|${RI})(_+)`,`(_+)(${RI}|$)`].join("|"),"g"),((e,t,n,r,i)=>(n?`${t}${n}`:`${r}${i}`).replace(/_/g,"\\_")));const n=(e,t,n)=>"sentence"===e.type&&0===n,i=(e,t,n)=>qI(e.children[n-1]);return t!==r.value&&(e.match(void 0,n,i)||e.match(void 0,n,((e,t,n)=>"emphasis"===e.type&&0===n),i))&&(t=t.replace(/^(\\?[*_])+/,(e=>e.replace(/\\/g,"")))),t}case"whitespace":{const n=e.getParentNode(),i=n.children.indexOf(r),u=n.children[i+1],o=u&&/^>|^([*+-]|#{1,6}|\d+[).])$/.test(u.value)?"never":t.proseWrap;return YI(e,r.value,{proseWrap:o})}case"emphasis":{let i;if(qI(r.children[0]))i=t.originalText[r.position.start.offset];else{const t=e.getParentNode(),n=t.children.indexOf(r),u=t.children[n-1],o=t.children[n+1];i=u&&"sentence"===u.type&&u.children.length>0&&"word"===fI(u.children).type&&!fI(u.children).hasTrailingPunctuation||o&&"sentence"===o.type&&o.children.length>0&&"word"===o.children[0].type&&!o.children[0].hasLeadingPunctuation||XI(e,"emphasis")?"*":"_"}return[i,QI(e,t,n),i]}case"strong":return["**",QI(e,t,n),"**"];case"delete":return["~~",QI(e,t,n),"~~"];case"inlineCode":{const e=dI(r.value,"`"),t="`".repeat(e||1),n=e&&!/^\s/.test(r.value)?" ":"";return[t,n,r.value,n,t]}case"wikiLink":{let e="";return e="preserve"===t.proseWrap?r.value:r.value.replace(/[\t\n]+/g," "),["[[",e,"]]"]}case"link":switch(t.originalText[r.position.start.offset]){case"<":{const e="mailto:";return["<",r.url.startsWith(e)&&t.originalText.slice(r.position.start.offset+1,r.position.start.offset+1+e.length)!==e?r.url.slice(e.length):r.url,">"]}case"[":return["[",QI(e,t,n),"](",nj(r.url,")"),rj(r.title,t),")"];default:return t.originalText.slice(r.position.start.offset,r.position.end.offset)}case"image":return["![",r.alt||"","](",nj(r.url,")"),rj(r.title,t),")"];case"blockquote":return["> ",SI("> ",QI(e,t,n))];case"heading":return["#".repeat(r.depth)+" ",QI(e,t,n)];case"code":{if(r.isIndented){const e=" ".repeat(4);return SI(e,[e,...NI(r.value,vI)])}const e=t.__inJsTemplate?"~":"`",n=e.repeat(Math.max(3,hI(r.value,e)+1));return[n,r.lang||"",r.meta?" "+r.meta:"",vI,...NI(LI(r,t.originalText),vI),vI,n]}case"html":{const t=e.getParentNode(),n="root"===t.type&&fI(t.children)===r?r.value.trimEnd():r.value,i=/^$/s.test(n);return NI(n,i?vI:CI(bI))}case"list":{const i=HI(r,e.getParentNode()),u=_I(r,t);return QI(e,t,n,{processor:(e,o)=>{const s=function(){const e=r.ordered?(0===o?r.start:u?1:r.start+o)+(i%2==0?". ":") "):i%2==0?"- ":"* ";return r.isAligned||r.hasIndentedCodeblock?function(e,t){const n=r();return e+" ".repeat(n>=4?0:n);function r(){const n=e.length%t.tabWidth;return 0===n?0:t.tabWidth-n}}(e,t):e}(),a=e.getValue();return 2===a.children.length&&"html"===a.children[1].type&&a.children[0].position.start.column!==a.children[1].position.start.column?[s,GI(e,t,n,s)]:[s,SI(" ".repeat(s.length),GI(e,t,n,s))]}})}case"thematicBreak":{const t=JI(e,"list");if(-1===t)return"---";return HI(e.getParentNode(t),e.getParentNode(t+1))%2==0?"***":"---"}case"linkReference":return["[",QI(e,t,n),"]","full"===r.referenceType?["[",r.identifier,"]"]:"collapsed"===r.referenceType?"[]":""];case"imageReference":switch(r.referenceType){case"full":return["![",r.alt||"","][",r.identifier,"]"];default:return["![",r.alt,"]","collapsed"===r.referenceType?"[]":""]}case"definition":{const e="always"===t.proseWrap?EI:" ";return TI(["[",r.identifier,"]:",wI([e,nj(r.url),null===r.title?"":[e,rj(r.title,t,!1)]])])}case"footnote":return["[^",QI(e,t,n),"]"];case"footnoteReference":return["[^",r.identifier,"]"];case"footnoteDefinition":{const i=e.getParentNode().children[e.getName()+1],u=1===r.children.length&&"paragraph"===r.children[0].type&&("never"===t.proseWrap||"preserve"===t.proseWrap&&r.children[0].position.start.line===r.children[0].position.end.line);return["[^",r.identifier,"]: ",u?QI(e,t,n):TI([SI(" ".repeat(4),QI(e,t,n,{processor:(e,t)=>0===t?TI([AI,n()]):n()})),i&&"footnoteDefinition"===i.type?AI:""])]}case"table":return function(e,t,n){const r=e.getValue(),i=[],u=e.map((e=>e.map(((e,r)=>{const u=PI(n(),t).formatted,o=gI(u);return i[r]=Math.max(i[r]||3,o),{text:u,width:o}}),"children")),"children"),o=a(!1);if("never"!==t.proseWrap)return[yI,o];const s=a(!0);return[yI,TI(FI(s,o))];function a(e){const t=[c(u[0],e),l(e)];return u.length>1&&t.push(DI(BI,u.slice(1).map((t=>c(t,e))))),DI(BI,t)}function l(e){return`| ${i.map(((t,n)=>{const i=r.align[n],u="center"===i||"right"===i?":":"-";return`${"center"===i||"left"===i?":":"-"}${e?"-":"-".repeat(t-2)}${u}`})).join(" | ")} |`}function c(e,t){return`| ${e.map((({text:e,width:n},u)=>{if(t)return e;const o=i[u]-n,s=r.align[u];let a=0;"right"===s?a=o:"center"===s&&(a=Math.floor(o/2));const l=o-a;return`${" ".repeat(a)}${e}${" ".repeat(l)}`})).join(" | ")} |`}}(e,t,n);case"tableCell":return QI(e,t,n);case"break":return/\s/.test(t.originalText[r.position.start.offset])?[" ",CI(bI)]:["\\",vI];case"liquidNode":return NI(r.value,vI);case"importExport":return[r.value,vI];case"jsx":return r.value;case"math":return["$$",vI,r.value?[...NI(r.value,vI),vI]:"","$$"];case"inlineMath":return t.originalText.slice(II(r),jI(r));case"tableRow":case"listItem":default:throw new Error(`Unknown markdown type ${JSON.stringify(r.type)}`)}},embed:KO,massageAstNode:pI,hasPrettierIgnore:function(e){const t=Number(e.getName());return 0!==t&&"next"===ej(e.getParentNode().children[t-1])},insertPragma:OI},uj={proseWrap:$B.proseWrap,singleQuote:$B.singleQuote},oj={name:"Markdown",type:"prose",color:"#083fa1",aliases:["pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".md",".markdown",".mdown",".mdwn",".mdx",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr"],tmScope:"source.gfm",languageId:222};var sj={languages:[Yd(oj,(e=>({since:"1.8.0",parsers:["markdown"],vscodeLanguageIds:["markdown"],filenames:[...e.filenames,"README"],extensions:e.extensions.filter((e=>".mdx"!==e))}))),Yd(oj,(()=>({name:"MDX",since:"1.15.0",parsers:["mdx"],vscodeLanguageIds:["mdx"],filenames:[],extensions:[".mdx"]})))],options:uj,printers:{mdast:ij},parsers:{get remark(){return require("./parser-markdown").parsers.remark},get markdown(){return require("./parser-markdown").parsers.remark},get mdx(){return require("./parser-markdown").parsers.mdx}}};const{isFrontMatterNode:aj}=fi,lj=new Set(["sourceSpan","startSourceSpan","endSourceSpan","nameSpan","valueSpan"]);function cj(e,t){return"text"===e.type||"comment"===e.type||aj(e)||"yaml"===e.type||"toml"===e.type?null:("attribute"===e.type&&delete t.value,void("docType"===e.type&&delete t.value))}cj.ignoredProperties=lj;var pj=cj,fj={"*":["accesskey","autocapitalize","autofocus","class","contenteditable","dir","draggable","enterkeyhint","hidden","id","inputmode","is","itemid","itemprop","itemref","itemscope","itemtype","lang","nonce","slot","spellcheck","style","tabindex","title","translate"],a:["accesskey","charset","coords","download","href","hreflang","name","ping","referrerpolicy","rel","rev","shape","tabindex","target","type"],abbr:["title"],applet:["align","alt","archive","code","codebase","height","hspace","name","object","vspace","width"],area:["accesskey","alt","coords","download","href","hreflang","nohref","ping","referrerpolicy","rel","shape","tabindex","target","type"],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],base:["href","target"],basefont:["color","face","size"],bdo:["dir"],blockquote:["cite"],body:["alink","background","bgcolor","link","text","vlink"],br:["clear"],button:["accesskey","autofocus","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","name","tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],data:["value"],del:["cite","datetime"],details:["open"],dfn:["title"],dialog:["open"],dir:["compact"],div:["align"],dl:["compact"],embed:["height","src","type","width"],fieldset:["disabled","form","name"],font:["color","face","size"],form:["accept","accept-charset","action","autocomplete","enctype","method","name","novalidate","target"],frame:["frameborder","longdesc","marginheight","marginwidth","name","noresize","scrolling","src"],frameset:["cols","rows"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],head:["profile"],hr:["align","noshade","size","width"],html:["manifest","version"],iframe:["align","allow","allowfullscreen","allowpaymentrequest","allowusermedia","frameborder","height","loading","longdesc","marginheight","marginwidth","name","referrerpolicy","sandbox","scrolling","src","srcdoc","width"],img:["align","alt","border","crossorigin","decoding","height","hspace","ismap","loading","longdesc","name","referrerpolicy","sizes","src","srcset","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","autofocus","checked","dirname","disabled","form","formaction","formenctype","formmethod","formnovalidate","formtarget","height","ismap","list","max","maxlength","min","minlength","multiple","name","pattern","placeholder","readonly","required","size","src","step","tabindex","title","type","usemap","value","width"],ins:["cite","datetime"],isindex:["prompt"],label:["accesskey","for","form"],legend:["accesskey","align"],li:["type","value"],link:["as","charset","color","crossorigin","disabled","href","hreflang","imagesizes","imagesrcset","integrity","media","nonce","referrerpolicy","rel","rev","sizes","target","title","type"],map:["name"],menu:["compact"],meta:["charset","content","http-equiv","name","scheme"],meter:["high","low","max","min","optimum","value"],object:["align","archive","border","classid","codebase","codetype","data","declare","form","height","hspace","name","standby","tabindex","type","typemustmatch","usemap","vspace","width"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","form","name"],p:["align"],param:["name","type","value","valuetype"],pre:["width"],progress:["max","value"],q:["cite"],script:["async","charset","crossorigin","defer","integrity","language","nomodule","nonce","referrerpolicy","src","type"],select:["autocomplete","autofocus","disabled","form","multiple","name","required","size","tabindex"],slot:["name"],source:["media","sizes","src","srcset","type"],style:["media","nonce","title","type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","autofocus","cols","dirname","disabled","form","maxlength","minlength","name","placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],time:["datetime"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","src","srclang"],ul:["compact","type"],video:["autoplay","controls","crossorigin","height","loop","muted","playsinline","poster","preload","src","width"]};const{inferParserByLanguage:dj,isFrontMatterNode:hj}=fi,{CSS_DISPLAY_TAGS:gj,CSS_DISPLAY_DEFAULT:mj,CSS_WHITE_SPACE_TAGS:yj,CSS_WHITE_SPACE_DEFAULT:Dj}={CSS_DISPLAY_TAGS:{area:"none",base:"none",basefont:"none",datalist:"none",head:"none",link:"none",meta:"none",noembed:"none",noframes:"none",param:"block",rp:"none",script:"block",source:"block",style:"none",template:"inline",track:"block",title:"none",html:"block",body:"block",address:"block",blockquote:"block",center:"block",div:"block",figure:"block",figcaption:"block",footer:"block",form:"block",header:"block",hr:"block",legend:"block",listing:"block",main:"block",p:"block",plaintext:"block",pre:"block",xmp:"block",slot:"contents",ruby:"ruby",rt:"ruby-text",article:"block",aside:"block",h1:"block",h2:"block",h3:"block",h4:"block",h5:"block",h6:"block",hgroup:"block",nav:"block",section:"block",dir:"block",dd:"block",dl:"block",dt:"block",ol:"block",ul:"block",li:"list-item",table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell",fieldset:"block",button:"inline-block",details:"block",summary:"block",dialog:"block",meter:"inline-block",progress:"inline-block",object:"inline-block",video:"inline-block",audio:"inline-block",select:"inline-block",option:"block",optgroup:"block"},CSS_DISPLAY_DEFAULT:"inline",CSS_WHITE_SPACE_TAGS:{listing:"pre",plaintext:"pre",pre:"pre",xmp:"pre",nobr:"nowrap",table:"initial",textarea:"pre-wrap"},CSS_WHITE_SPACE_DEFAULT:"normal"},Ej=Fj(["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","element","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","isindex","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","math","menu","menuitem","meta","meter","multicol","nav","nextid","nobr","noembed","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rbc","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"]),bj=function(e,t){const n=Object.create(null);for(const[r,i]of Object.entries(e))n[r]=t(i,r);return n}(fj,Fj),Cj=new Set(["\t","\n","\f","\r"," "]),vj=e=>e.replace(/[\t\n\f\r ]+$/,""),Aj=e=>e.match(/^[\t\n\f\r ]*/)[0];function Fj(e){const t=Object.create(null);for(const n of e)t[n]=!0;return t}function xj(e,t){return!("ieConditionalComment"!==e.type||!e.lastChild||e.lastChild.isSelfClosing||e.lastChild.endSourceSpan)||("ieConditionalComment"===e.type&&!e.complete||(!(!_j(e)||!e.children.some((e=>"text"!==e.type&&"interpolation"!==e.type)))||!(!Wj(e,t)||wj(e)||"interpolation"===e.type)))}function Sj(e){if("attribute"===e.type)return!1;if(!e.parent)return!1;if("number"!=typeof e.index||0===e.index)return!1;return function(e){return"comment"===e.type&&"prettier-ignore"===e.value.trim()}(e.parent.children[e.index-1])}function wj(e){return"element"===e.type&&("script"===e.fullName||"style"===e.fullName||"svg:style"===e.fullName||Mj(e)&&("script"===e.name||"style"===e.name))}function Tj(e){return Rj(e).startsWith("pre")}function Bj(e){return"element"===e.type&&e.children.length>0&&(["html","head","ul","ol","select"].includes(e.name)||e.cssDisplay.startsWith("table")&&"table-cell"!==e.cssDisplay)}function kj(e){return Ij(e)||"element"===e.type&&"br"===e.fullName||Nj(e)}function Nj(e){return Pj(e)&&Oj(e)}function Pj(e){return e.hasLeadingSpaces&&(e.prev?e.prev.sourceSpan.end.linee.sourceSpan.end.line:"root"===e.parent.type||e.parent.endSourceSpan&&e.parent.endSourceSpan.start.line>e.sourceSpan.end.line)}function Ij(e){switch(e.type){case"ieConditionalComment":case"comment":case"directive":return!0;case"element":return["script","select"].includes(e.name)}return!1}function jj(e){const{type:t,lang:n}=e.attrMap;return"module"===t||"text/javascript"===t||"text/babel"===t||"application/javascript"===t||"jsx"===n?"babel":"application/x-typescript"===t||"ts"===n||"tsx"===n?"typescript":"text/markdown"===t?"markdown":"text/html"===t?"html":t&&(t.endsWith("json")||t.endsWith("importmap"))?"json":"text/x-handlebars-template"===t?"glimmer":void 0}function Lj(e){return"block"===e||"list-item"===e||e.startsWith("table")}function _j(e){return Rj(e).startsWith("pre")}function Mj(e){return"element"===e.type&&!e.hasExplicitNamespace&&!["html","svg"].includes(e.namespace)}function Rj(e){return"element"===e.type&&(!e.namespace||Mj(e))&&yj[e.name]||Dj}const $j=new Set(["template","style","script"]);function Vj(e,t){return qj(e,t)&&!$j.has(e.fullName)}function qj(e,t){return"vue"===t.parser&&"element"===e.type&&"root"===e.parent.type&&"html"!==e.fullName.toLowerCase()}function Wj(e,t){return qj(e,t)&&(Vj(e,t)||e.attrMap.lang&&"html"!==e.attrMap.lang)}var Uj={HTML_ELEMENT_ATTRIBUTES:bj,HTML_TAGS:Ej,htmlTrim:e=>(e=>e.replace(/^[\t\n\f\r ]+/,""))(vj(e)),htmlTrimPreserveIndentation:e=>(e=>e.replace(/^[\t\f\r ]*?\n/g,""))(vj(e)),splitByHtmlWhitespace:e=>e.split(/[\t\n\f\r ]+/),hasHtmlWhitespace:e=>/[\t\n\f\r ]/.test(e),getLeadingAndTrailingHtmlWhitespace:e=>{const[,t,n,r]=e.match(/^([\t\n\f\r ]*)(.*?)([\t\n\f\r ]*)$/s);return{leadingWhitespace:t,trailingWhitespace:r,text:n}},canHaveInterpolation:function(e){return e.children&&!wj(e)},countChars:function(e,t){let n=0;for(let r=0;r=0;r--){const i=e.stack[r];i&&"object"==typeof i&&!Array.isArray(i)&&t(i)&&n++}return n},dedentString:function(e,t=function(e){let t=Number.POSITIVE_INFINITY;for(const n of e.split("\n")){if(0===n.length)continue;if(!Cj.has(n[0]))return 0;const e=Aj(n).length;n.length!==e&&ee.slice(t))).join("\n")},forceBreakChildren:Bj,forceBreakContent:function(e){return Bj(e)||"element"===e.type&&e.children.length>0&&(["body","script","style"].includes(e.name)||e.children.some((e=>function(e){return e.children&&e.children.some((e=>"text"!==e.type))}(e))))||e.firstChild&&e.firstChild===e.lastChild&&"text"!==e.firstChild.type&&Pj(e.firstChild)&&(!e.lastChild.isTrailingSpaceSensitive||Oj(e.lastChild))},forceNextEmptyLine:function(e){return hj(e)||e.next&&e.sourceSpan.end&&e.sourceSpan.end.line+1"svg:foreignObject"===e.fullName)))return"svg"===e.name?"inline-block":"block";n=!0}switch(t.htmlWhitespaceSensitivity){case"strict":return"inline";case"ignore":return"block";default:return"vue"===t.parser&&e.parent&&"root"===e.parent.type?"block":"element"===e.type&&(!e.namespace||n||Mj(e))&&gj[e.name]||mj}},getNodeCssStyleWhiteSpace:Rj,getPrettierIgnoreAttributeCommentData:function(e){const t=e.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s);return!!t&&(!t[1]||t[1].split(/\s+/))},hasPrettierIgnore:Sj,inferScriptParser:function(e,t){return"script"!==e.name||e.attrMap.src?"style"===e.name?function(e){const{lang:t}=e.attrMap;return t&&"postcss"!==t&&"css"!==t?"scss"===t?"scss":"less"===t?"less":void 0:"css"}(e):t&&Wj(e,t)?jj(e)||!("src"in e.attrMap)&&dj(e.attrMap.lang,t):void 0:e.attrMap.lang||e.attrMap.type?jj(e):"babel"},isVueCustomBlock:Vj,isVueNonHtmlBlock:Wj,isVueSlotAttribute:function(e){const t=e.fullName;return"#"===t.charAt(0)||"slot-scope"===t||"v-slot"===t||t.startsWith("v-slot:")},isVueSfcBindingsAttribute:function(e,t){const n=e.parent;if(!qj(n,t))return!1;const r=n.fullName,i=e.fullName;return"script"===r&&"setup"===i||"style"===r&&"vars"===i},isDanglingSpaceSensitiveNode:function(e){return!(t=e.cssDisplay,Lj(t)||"inline-block"===t||wj(e));var t},isIndentationSensitiveNode:Tj,isLeadingSpaceSensitiveNode:function(e,t){const n=function(){if(hj(e))return!1;if(("text"===e.type||"interpolation"===e.type)&&e.prev&&("text"===e.prev.type||"interpolation"===e.prev.type))return!0;if(!e.parent||"none"===e.parent.cssDisplay)return!1;if(_j(e.parent))return!0;if(!e.prev&&("root"===e.parent.type||_j(e)&&e.parent||wj(e.parent)||Vj(e.parent,t)||(n=e.parent.cssDisplay,Lj(n)||"inline-block"===n)))return!1;var n;if(e.prev&&!function(e){return!Lj(e)}(e.prev.cssDisplay))return!1;return!0}();return n&&!e.prev&&e.parent&&e.parent.tagDefinition&&e.parent.tagDefinition.ignoreFirstLf?"interpolation"===e.type:n},isPreLikeNode:_j,isScriptLikeTag:wj,isTextLikeNode:function(e){return"text"===e.type||"comment"===e.type},isTrailingSpaceSensitiveNode:function(e,t){return!hj(e)&&(!("text"!==e.type&&"interpolation"!==e.type||!e.next||"text"!==e.next.type&&"interpolation"!==e.next.type)||!(!e.parent||"none"===e.parent.cssDisplay)&&(!!_j(e.parent)||!(!e.next&&("root"===e.parent.type||_j(e)&&e.parent||wj(e.parent)||Vj(e.parent,t)||(n=e.parent.cssDisplay,Lj(n)||"inline-block"===n)))&&!(e.next&&!function(e){return!Lj(e)}(e.next.cssDisplay))));var n},isWhitespaceSensitiveNode:function(e){return wj(e)||"interpolation"===e.type||Tj(e)},isUnknownNamespace:Mj,preferHardlineAsLeadingSpaces:function(e){return Ij(e)||e.prev&&kj(e.prev)||Nj(e)},preferHardlineAsTrailingSpaces:kj,shouldNotPrintClosingTag:function(e,t){return!e.isSelfClosing&&!e.endSourceSpan&&(Sj(e)||xj(e.parent,t))},shouldPreserveContent:xj,unescapeQuoteEntities:function(e){return e.replace(/'/g,"'").replace(/"/g,'"')}},zj=i((function(e,t){function n(e){return t.$0<=e&&e<=t.$9} +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +Object.defineProperty(t,"__esModule",{value:!0}),t.$EOF=0,t.$BSPACE=8,t.$TAB=9,t.$LF=10,t.$VTAB=11,t.$FF=12,t.$CR=13,t.$SPACE=32,t.$BANG=33,t.$DQ=34,t.$HASH=35,t.$$=36,t.$PERCENT=37,t.$AMPERSAND=38,t.$SQ=39,t.$LPAREN=40,t.$RPAREN=41,t.$STAR=42,t.$PLUS=43,t.$COMMA=44,t.$MINUS=45,t.$PERIOD=46,t.$SLASH=47,t.$COLON=58,t.$SEMICOLON=59,t.$LT=60,t.$EQ=61,t.$GT=62,t.$QUESTION=63,t.$0=48,t.$7=55,t.$9=57,t.$A=65,t.$E=69,t.$F=70,t.$X=88,t.$Z=90,t.$LBRACKET=91,t.$BACKSLASH=92,t.$RBRACKET=93,t.$CARET=94,t.$_=95,t.$a=97,t.$b=98,t.$e=101,t.$f=102,t.$n=110,t.$r=114,t.$t=116,t.$u=117,t.$v=118,t.$x=120,t.$z=122,t.$LBRACE=123,t.$BAR=124,t.$RBRACE=125,t.$NBSP=160,t.$PIPE=124,t.$TILDA=126,t.$AT=64,t.$BT=96,t.isWhitespace=function(e){return e>=t.$TAB&&e<=t.$SPACE||e==t.$NBSP},t.isDigit=n,t.isAsciiLetter=function(e){return e>=t.$a&&e<=t.$z||e>=t.$A&&e<=t.$Z},t.isAsciiHexDigit=function(e){return e>=t.$a&&e<=t.$f||e>=t.$A&&e<=t.$F||n(e)},t.isNewLine=function(e){return e===t.$LF||e===t.$CR},t.isOctalDigit=function(e){return t.$0<=e&&e<=t.$7}})); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class Gj{constructor(e,t,n){this.filePath=e,this.name=t,this.members=n}assertNoMembers(){if(this.members.length)throw new Error(`Illegal state: symbol without members expected, but got ${JSON.stringify(this)}.`)}}var Hj=Gj;var Jj=class{constructor(){this.cache=new Map}get(e,t,n){const r=`"${e}".${t}${(n=n||[]).length?`.${n.join(".")}`:""}`;let i=this.cache.get(r);return i||(i=new Gj(e,t,n),this.cache.set(r,i)),i}},Xj=Object.defineProperty({StaticSymbol:Hj,StaticSymbolCache:Jj},"__esModule",{value:!0}); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +const Yj=/-+([a-z0-9])/g;var Kj=function(e){return e.replace(Yj,((...e)=>e[1].toUpperCase()))};var Qj=function(e,t){return eL(e,":",t)};var Zj=function(e,t){return eL(e,".",t)};function eL(e,t,n){const r=e.indexOf(t);return-1==r?n:[e.slice(0,r).trim(),e.slice(r+1).trim()]}function tL(e,t,n){return Array.isArray(e)?t.visitArray(e,n):function(e){return"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===hL}(e)?t.visitStringMap(e,n):null==e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e?t.visitPrimitive(e,n):t.visitOther(e,n)}var nL=tL;var rL=function(e){return null!=e};var iL=function(e){return void 0===e?null:e};var uL=class{visitArray(e,t){return e.map((e=>tL(e,this,t)))}visitStringMap(e,t){const n={};return Object.keys(e).forEach((r=>{n[r]=tL(e[r],this,t)})),n}visitPrimitive(e,t){return e}visitOther(e,t){return e}},oL={assertSync:e=>{if(DL(e))throw new Error("Illegal state: value cannot be a promise");return e},then:(e,t)=>DL(e)?e.then(t):t(e),all:e=>e.some(DL)?Promise.all(e):e};var sL=function(e){throw new Error(`Internal Error: ${e}`)};var aL=function(e,t){const n=Error(e);return n[lL]=!0,t&&(n[cL]=t),n};const lL="ngSyntaxError",cL="ngParseErrors";var pL=function(e){return e[lL]};var fL=function(e){return e[cL]||[]};var dL=function(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};const hL=Object.getPrototypeOf({});var gL=function(e){let t="";for(let n=0;n=55296&&r<=56319&&e.length>n+1){const t=e.charCodeAt(n+1);t>=56320&&t<=57343&&(n++,r=(r-55296<<10)+t-56320+65536)}r<=127?t+=String.fromCharCode(r):r<=2047?t+=String.fromCharCode(r>>6&31|192,63&r|128):r<=65535?t+=String.fromCharCode(r>>12|224,r>>6&63|128,63&r|128):r<=2097151&&(t+=String.fromCharCode(r>>18&7|240,r>>12&63|128,r>>6&63|128,63&r|128))}return t};var mL=function e(t){if("string"==typeof t)return t;if(t instanceof Array)return"["+t.map(e).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;if(!t.toString)return"object";const n=t.toString();if(null==n)return""+n;const r=n.indexOf("\n");return-1===r?n:n.substring(0,r)};var yL=function(e){return"function"==typeof e&&e.hasOwnProperty("__forward_ref__")?e():e};function DL(e){return!!e&&"function"==typeof e.then}var EL=DL;var bL=class{constructor(e){this.full=e;const t=e.split(".");this.major=t[0],this.minor=t[1],this.patch=t.slice(2).join(".")}};const CL="undefined"!=typeof window&&window,vL="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self;var AL=void 0!==n&&n||CL||vL,FL=Object.defineProperty({dashCaseToCamelCase:Kj,splitAtColon:Qj,splitAtPeriod:Zj,visitValue:nL,isDefined:rL,noUndefined:iL,ValueTransformer:uL,SyncAsync:oL,error:sL,syntaxError:aL,isSyntaxError:pL,getParseErrors:fL,escapeRegExp:dL,utf8Encode:gL,stringify:mL,resolveForwardRef:yL,isPromise:EL,Version:bL,global:AL},"__esModule",{value:!0}),xL=i((function(e,t){ +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +Object.defineProperty(t,"__esModule",{value:!0});const n=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/;function r(e){return e.replace(/\W/g,"_")}t.sanitizeIdentifier=r;let i=0;function u(e){if(!e||!e.reference)return null;const t=e.reference;if(t instanceof Xj.StaticSymbol)return t.name;if(t.__anonymousType)return t.__anonymousType;let n=FL.stringify(t);return n.indexOf("(")>=0?(n="anonymous_"+i++,t.__anonymousType=n):n=r(n),n}var o;t.identifierName=u,t.identifierModuleUrl=function(e){const t=e.reference;return t instanceof Xj.StaticSymbol?t.filePath:`./${FL.stringify(t)}`},t.viewClassName=function(e,t){return`View_${u({reference:e})}_${t}`},t.rendererTypeName=function(e){return`RenderType_${u({reference:e})}`},t.hostViewClassName=function(e){return`HostView_${u({reference:e})}`},t.componentFactoryName=function(e){return`${u({reference:e})}NgFactory`},function(e){e[e.Pipe=0]="Pipe",e[e.Directive=1]="Directive",e[e.NgModule=2]="NgModule",e[e.Injectable=3]="Injectable"}(o=t.CompileSummaryKind||(t.CompileSummaryKind={})),t.tokenName=function(e){return null!=e.value?r(e.value):u(e.identifier)},t.tokenReference=function(e){return null!=e.identifier?e.identifier.reference:e.value};t.CompileStylesheetMetadata=class{constructor({moduleUrl:e,styles:t,styleUrls:n}={}){this.moduleUrl=e||null,this.styles=a(t),this.styleUrls=a(n)}};t.CompileTemplateMetadata=class{constructor({encapsulation:e,template:t,templateUrl:n,htmlAst:r,styles:i,styleUrls:u,externalStylesheets:o,animations:s,ngContentSelectors:c,interpolation:p,isInline:f,preserveWhitespaces:d}){if(this.encapsulation=e,this.template=t,this.templateUrl=n,this.htmlAst=r,this.styles=a(i),this.styleUrls=a(u),this.externalStylesheets=a(o),this.animations=s?l(s):[],this.ngContentSelectors=c||[],p&&2!=p.length)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=p,this.isInline=f,this.preserveWhitespaces=d}toSummary(){return{ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation,styles:this.styles,animations:this.animations}}};class s{static create({isHost:e,type:t,isComponent:r,selector:i,exportAs:u,changeDetection:o,inputs:a,outputs:l,host:c,providers:p,viewProviders:f,queries:d,guards:h,viewQueries:g,entryComponents:m,template:y,componentViewType:D,rendererType:E,componentFactory:b}){const C={},v={},A={};null!=c&&Object.keys(c).forEach((e=>{const t=c[e],r=e.match(n);null===r?A[e]=t:null!=r[1]?v[r[1]]=t:null!=r[2]&&(C[r[2]]=t)}));const F={};null!=a&&a.forEach((e=>{const t=FL.splitAtColon(e,[e,e]);F[t[0]]=t[1]}));const x={};return null!=l&&l.forEach((e=>{const t=FL.splitAtColon(e,[e,e]);x[t[0]]=t[1]})),new s({isHost:e,type:t,isComponent:!!r,selector:i,exportAs:u,changeDetection:o,inputs:F,outputs:x,hostListeners:C,hostProperties:v,hostAttributes:A,providers:p,viewProviders:f,queries:d,guards:h,viewQueries:g,entryComponents:m,template:y,componentViewType:D,rendererType:E,componentFactory:b})}constructor({isHost:e,type:t,isComponent:n,selector:r,exportAs:i,changeDetection:u,inputs:o,outputs:s,hostListeners:l,hostProperties:c,hostAttributes:p,providers:f,viewProviders:d,queries:h,guards:g,viewQueries:m,entryComponents:y,template:D,componentViewType:E,rendererType:b,componentFactory:C}){this.isHost=!!e,this.type=t,this.isComponent=n,this.selector=r,this.exportAs=i,this.changeDetection=u,this.inputs=o,this.outputs=s,this.hostListeners=l,this.hostProperties=c,this.hostAttributes=p,this.providers=a(f),this.viewProviders=a(d),this.queries=a(h),this.guards=g,this.viewQueries=a(m),this.entryComponents=a(y),this.template=D,this.componentViewType=E,this.rendererType=b,this.componentFactory=C}toSummary(){return{summaryKind:o.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,guards:this.guards,viewQueries:this.viewQueries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary(),componentViewType:this.componentViewType,rendererType:this.rendererType,componentFactory:this.componentFactory}}}t.CompileDirectiveMetadata=s;t.CompilePipeMetadata=class{constructor({type:e,name:t,pure:n}){this.type=e,this.name=t,this.pure=!!n}toSummary(){return{summaryKind:o.Pipe,type:this.type,name:this.name,pure:this.pure}}};t.CompileShallowModuleMetadata=class{};t.CompileNgModuleMetadata=class{constructor({type:e,providers:t,declaredDirectives:n,exportedDirectives:r,declaredPipes:i,exportedPipes:u,entryComponents:o,bootstrapComponents:s,importedModules:l,exportedModules:c,schemas:p,transitiveModule:f,id:d}){this.type=e||null,this.declaredDirectives=a(n),this.exportedDirectives=a(r),this.declaredPipes=a(i),this.exportedPipes=a(u),this.providers=a(t),this.entryComponents=a(o),this.bootstrapComponents=a(s),this.importedModules=a(l),this.exportedModules=a(c),this.schemas=a(p),this.id=d||null,this.transitiveModule=f||null}toSummary(){const e=this.transitiveModule;return{summaryKind:o.NgModule,type:this.type,entryComponents:e.entryComponents,providers:e.providers,modules:e.modules,exportedDirectives:e.exportedDirectives,exportedPipes:e.exportedPipes}}};function a(e){return e||[]}t.TransitiveCompileNgModuleMetadata=class{constructor(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}addProvider(e,t){this.providers.push({provider:e,module:t})}addDirective(e){this.directivesSet.has(e.reference)||(this.directivesSet.add(e.reference),this.directives.push(e))}addExportedDirective(e){this.exportedDirectivesSet.has(e.reference)||(this.exportedDirectivesSet.add(e.reference),this.exportedDirectives.push(e))}addPipe(e){this.pipesSet.has(e.reference)||(this.pipesSet.add(e.reference),this.pipes.push(e))}addExportedPipe(e){this.exportedPipesSet.has(e.reference)||(this.exportedPipesSet.add(e.reference),this.exportedPipes.push(e))}addModule(e){this.modulesSet.has(e.reference)||(this.modulesSet.add(e.reference),this.modules.push(e))}addEntryComponent(e){this.entryComponentsSet.has(e.componentType)||(this.entryComponentsSet.add(e.componentType),this.entryComponents.push(e))}};function l(e){return e.reduce(((e,t)=>{const n=Array.isArray(t)?l(t):t;return e.concat(n)}),[])}function c(e){return e.replace(/(\w+:\/\/[\w:-]+)?(\/+)?/,"ng:///")}t.ProviderMeta=class{constructor(e,{useClass:t,useValue:n,useExisting:r,useFactory:i,deps:u,multi:o}){this.token=e,this.useClass=t||null,this.useValue=n,this.useExisting=r,this.useFactory=i||null,this.dependencies=u||null,this.multi=!!o}},t.flatten=l,t.templateSourceUrl=function(e,t,n){let r;return r=n.isInline?t.type.reference instanceof Xj.StaticSymbol?`${t.type.reference.filePath}.${t.type.reference.name}.html`:`${u(e)}/${u(t.type)}.html`:n.templateUrl,t.type.reference instanceof Xj.StaticSymbol?r:c(r)},t.sharedStylesheetJitUrl=function(e,t){const n=e.moduleUrl.split(/\/\\/g);return c(`css/${t}${n[n.length-1]}.ngstyle.js`)},t.ngModuleJitUrl=function(e){return c(`${u(e.type)}/module.ngfactory.js`)},t.templateJitUrl=function(e,t){return c(`${u(e)}/${u(t.type)}.ngfactory.js`)}})),SL=i((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}); +/** + * @license + * Copyright Google Inc. All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ +class n{constructor(e,t,n,r){this.file=e,this.offset=t,this.line=n,this.col=r}toString(){return null!=this.offset?`${this.file.url}@${this.line}:${this.col}`:this.file.url}moveBy(e){const t=this.file.content,r=t.length;let i=this.offset,u=this.line,o=this.col;for(;i>0&&e<0;){i--,e++;if(t.charCodeAt(i)==zj.$LF){u--;const e=t.substr(0,i-1).lastIndexOf(String.fromCharCode(zj.$LF));o=e>0?i-e:i}else o--}for(;i0;){const n=t.charCodeAt(i);i++,e--,n==zj.$LF?(u++,o=0):o++}return new n(this.file,i,u,o)}getContext(e,t){const n=this.file.content;let r=this.offset;if(null!=r){r>n.length-1&&(r=n.length-1);let i=r,u=0,o=0;for(;u0&&(r--,u++,"\n"!=n[r]||++o!=t););for(u=0,o=0;u]${e.after}")`:this.msg}toString(){const e=this.span.details?`, ${this.span.details}`:"";return`${this.contextualMessage()}: ${this.span.start}${e}`}},t.typeSourceSpan=function(e,t){const u=xL.identifierModuleUrl(t),o=null!=u?`in ${e} ${xL.identifierName(t)} in ${u}`:`in ${e} ${xL.identifierName(t)}`,s=new r("",o);return new i(new n(s,-1,-1,-1),new n(s,-1,-1,-1))},t.r3JitTypeSourceSpan=function(e,t,u){const o=new r("",`in ${e} ${t} in ${u}`);return new i(new n(o,-1,-1,-1),new n(o,-1,-1,-1))}}));const{ParseSourceSpan:wL}=SL,{htmlTrim:TL,getLeadingAndTrailingHtmlWhitespace:BL,hasHtmlWhitespace:kL,canHaveInterpolation:NL,getNodeCssStyleDisplay:PL,isDanglingSpaceSensitiveNode:OL,isIndentationSensitiveNode:IL,isLeadingSpaceSensitiveNode:jL,isTrailingSpaceSensitiveNode:LL,isWhitespaceSensitiveNode:_L}=Uj,ML=[function(e){return e.map((e=>{if("element"===e.type&&e.tagDefinition.ignoreFirstLf&&e.children.length>0&&"text"===e.children[0].type&&"\n"===e.children[0].value[0]){const[t,...n]=e.children;return e.clone({children:1===t.value.length?n:[t.clone({value:t.value.slice(1)}),...n]})}return e}))},function(e){const t=e=>"element"===e.type&&e.prev&&"ieConditionalStartComment"===e.prev.type&&e.prev.sourceSpan.end.offset===e.startSourceSpan.start.offset&&e.firstChild&&"ieConditionalEndComment"===e.firstChild.type&&e.firstChild.sourceSpan.start.offset===e.startSourceSpan.end.offset;return e.map((e=>{if(e.children){const n=e.children.map(t);if(n.some(Boolean)){const t=[];for(let r=0;r{if(e.children){const r=e.children.map(t);if(r.some(Boolean)){const t=[];for(let i=0;i"cdata"===e.type),(e=>``))},function(e,t){if("html"===t.parser)return e;const n=/{{(.+?)}}/gs;return e.map((e=>{if(!NL(e))return e;const t=[];for(const r of e.children){if("text"!==r.type){t.push(r);continue}let e=r.sourceSpan.start,i=null;const u=r.value.split(n);for(let n=0;n0&&t.push({type:"text",value:r,sourceSpan:new wL(e,i)}))}}return e.clone({children:t})}))},function(e){return e.map((e=>{if(!e.children)return e;if(0===e.children.length||1===e.children.length&&"text"===e.children[0].type&&0===TL(e.children[0].value).length)return e.clone({children:[],hasDanglingSpaces:e.children.length>0});const t=_L(e),n=IL(e);return e.clone({isWhitespaceSensitive:t,isIndentationSensitive:n,children:e.children.flatMap((e=>{if("text"!==e.type||t)return e;const n=[],{leadingWhitespace:r,text:i,trailingWhitespace:u}=BL(e.value);return r&&n.push(RL),i&&n.push({type:"text",value:i,sourceSpan:new wL(e.sourceSpan.start.moveBy(r.length),e.sourceSpan.end.moveBy(-u.length))}),u&&n.push(RL),n})).map(((e,t,n)=>{if(e!==RL)return Object.assign(Object.assign({},e),{},{hasLeadingSpaces:n[t-1]===RL,hasTrailingSpaces:n[t+1]===RL})})).filter(Boolean)})}))},function(e,t){return e.map((e=>Object.assign(e,{cssDisplay:PL(e,t)})))},function(e){return e.map((e=>Object.assign(e,{isSelfClosing:!e.children||"element"===e.type&&(e.tagDefinition.isVoid||e.startSourceSpan===e.endSourceSpan)})))},function(e,t){return e.map((e=>"element"!==e.type?e:Object.assign(e,{hasHtmComponentClosingTag:e.endSourceSpan&&/^<\s*\/\s*\/\s*>$/.test(t.originalText.slice(e.endSourceSpan.start.offset,e.endSourceSpan.end.offset))})))},function(e,t){return e.map((e=>e.children?0===e.children.length?e.clone({isDanglingSpaceSensitive:OL(e)}):e.clone({children:e.children.map((e=>Object.assign(Object.assign({},e),{},{isLeadingSpaceSensitive:jL(e,t),isTrailingSpaceSensitive:LL(e,t)}))).map(((e,t,n)=>Object.assign(Object.assign({},e),{},{isLeadingSpaceSensitive:(0===t||n[t-1].isTrailingSpaceSensitive)&&e.isLeadingSpaceSensitive,isTrailingSpaceSensitive:(t===n.length-1||n[t+1].isLeadingSpaceSensitive)&&e.isTrailingSpaceSensitive})))}):e))},function(e){const t=e=>"element"===e.type&&0===e.attrs.length&&1===e.children.length&&"text"===e.firstChild.type&&!kL(e.children[0].value)&&!e.firstChild.hasLeadingSpaces&&!e.firstChild.hasTrailingSpaces&&e.isLeadingSpaceSensitive&&!e.hasLeadingSpaces&&e.isTrailingSpaceSensitive&&!e.hasTrailingSpaces&&e.prev&&"text"===e.prev.type&&e.next&&"text"===e.next.type;return e.map((e=>{if(e.children){const n=e.children.map(t);if(n.some(Boolean)){const t=[];for(let r=0;r`+i.firstChild.value+``+u.value,sourceSpan:new wL(n.sourceSpan.start,u.sourceSpan.end),isTrailingSpaceSensitive:o,hasTrailingSpaces:s}))}else t.push(i)}return e.clone({children:t})}}return e}))}];const RL={type:"whitespace"};var $L=function(e,t){for(const n of ML)e=n(e,t);return e};var VL={hasPragma:function(e){return/^\s*/.test(e)},insertPragma:function(e){return"\x3c!-- @format --\x3e\n\n"+e.replace(/^\s*\n/,"")}};var qL={locStart:function(e){return e.sourceSpan.start.offset},locEnd:function(e){return e.sourceSpan.end.offset}};const{builders:{group:WL}}=Ji;var UL={isVueEventBindingExpression:function(e){const t=e.trim();return/^([\w$]+|\([^)]*?\))\s*=>|^function\s*\(/.test(t)||/^[$A-Z_a-z][\w$]*(?:\.[$A-Z_a-z][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[$A-Z_a-z][\w$]*])*$/.test(t)},printVueFor:function(e,t){const{left:n,operator:r,right:i}=function(e){const t=/(.*?)\s+(in|of)\s+(.*)/s,n=/,([^,\]}]*)(?:,([^,\]}]*))?$/,r=/^\(|\)$/g,i=e.match(t);if(!i)return;const u={};u.for=i[3].trim();const o=i[1].trim().replace(r,""),s=o.match(n);s?(u.alias=o.replace(n,""),u.iterator1=s[1].trim(),s[2]&&(u.iterator2=s[2].trim())):u.alias=o;return{left:`${[u.alias,u.iterator1,u.iterator2].filter(Boolean).join(",")}`,operator:i[2],right:u.for}}(e);return[WL(t(`function _(${n}) {}`,{parser:"babel",__isVueForBindingLeft:!0}))," ",r," ",t(i,{parser:"__js_expression"},{stripTrailingHardline:!0})]},printVueBindings:function(e,t){return t(`function _(${e}) {}`,{parser:"babel",__isVueBindings:!0})}},zL=i((function(e){var t,r;t=n,r=function(){return function(e,t){var n=t&&t.logger||console;function r(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}function i(t){var n,r=t.exec(e.substring(y));if(r)return n=r[0],y+=n.length,n}for(var u,o,s,a,l,c=e.length,p=/^[ \t\n\r\u000c]+/,f=/^[, \t\n\r\u000c]+/,d=/^[^ \t\n\r\u000c]+/,h=/[,]+$/,g=/^\d+$/,m=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,y=0,D=[];;){if(i(f),y>=c)return D;u=i(d),o=[],","===u.slice(-1)?(u=u.replace(h,""),b()):E()}function E(){for(i(p),s="",a="in descriptor";;){if(l=e.charAt(y),"in descriptor"===a)if(r(l))s&&(o.push(s),s="",a="after descriptor");else{if(","===l)return y+=1,s&&o.push(s),void b();if("("===l)s+=l,a="in parens";else{if(""===l)return s&&o.push(s),void b();s+=l}}else if("in parens"===a)if(")"===l)s+=l,a="in descriptor";else{if(""===l)return o.push(s),void b();s+=l}else if("after descriptor"===a)if(r(l));else{if(""===l)return void b();a="in descriptor",y-=1}y+=1}}function b(){var t,r,i,s,a,l,c,p,f,d=!1,h={};for(s=0;se)),r=t.some((({h:e})=>e));if(n+r+t.some((({d:e})=>e))>1)throw new Error("Mixed descriptor in srcset is not supported");const i=n?"w":r?"h":"d",u=n?"w":r?"h":"x",o=e=>Math.max(...e),s=t.map((e=>e.url)),a=o(s.map((e=>e.length))),l=t.map((e=>e[i])).map((e=>e?e.toString():"")),c=l.map((e=>{const t=e.indexOf(".");return-1===t?e.length:t})),p=o(c);return XL([",",YL],s.map(((e,t)=>{const n=[e],r=l[t];if(r){const i=a-e.length+1,o=p-c[t],s=" ".repeat(i+o);n.push(HL(s," "),r+u)}return n})))},printClassNames:function(e){const t=e.trim().split(/\s+/),n=[];let r;for(let e=0;eGL(XL(YL,e)))))]),KL]}};const{builders:{breakParent:t_,dedentToRoot:n_,fill:r_,group:i_,hardline:u_,ifBreak:o_,indentIfBreak:s_,indent:a_,join:l_,line:c_,literalline:p_,softline:f_},utils:{mapDoc:d_,cleanDoc:h_,getDocParts:g_,isConcat:m_,replaceEndOfLineWith:y_}}=Ji,{isNonEmptyArray:D_}=fi,{htmlTrimPreserveIndentation:E_,splitByHtmlWhitespace:b_,countChars:C_,countParents:v_,dedentString:A_,forceBreakChildren:F_,forceBreakContent:x_,forceNextEmptyLine:S_,getLastDescendant:w_,getPrettierIgnoreAttributeCommentData:T_,hasPrettierIgnore:B_,inferScriptParser:k_,isVueCustomBlock:N_,isVueNonHtmlBlock:P_,isVueSlotAttribute:O_,isVueSfcBindingsAttribute:I_,isScriptLikeTag:j_,isTextLikeNode:L_,preferHardlineAsLeadingSpaces:__,shouldNotPrintClosingTag:M_,shouldPreserveContent:R_,unescapeQuoteEntities:$_,isPreLikeNode:V_}=Uj,{insertPragma:q_}=VL,{locStart:W_,locEnd:U_}=qL,{printVueFor:z_,printVueBindings:G_,isVueEventBindingExpression:H_}=UL,{printImgSrcset:J_,printClassNames:X_}=e_;function Y_(e,t,n){const r=e.getValue();if(F_(r))return[t_,...e.map((e=>{const t=e.getValue(),n=t.prev?o(t.prev,t):"";return[n?[n,S_(t.prev)?u_:""]:"",u(e)]}),"children")];const i=r.children.map((()=>Symbol("")));return e.map(((e,t)=>{const n=e.getValue();if(L_(n)){if(n.prev&&L_(n.prev)){const t=o(n.prev,n);if(t)return S_(n.prev)?[u_,u_,u(e)]:[t,u(e)]}return u(e)}const r=[],s=[],a=[],l=[],c=n.prev?o(n.prev,n):"",p=n.next?o(n,n.next):"";return c&&(S_(n.prev)?r.push(u_,u_):c===u_?r.push(u_):L_(n.prev)?s.push(c):s.push(o_("",f_,{groupId:i[t-1]}))),p&&(S_(n)?L_(n.next)&&l.push(u_,u_):p===u_?L_(n.next)&&l.push(u_):a.push(p)),[...r,i_([...s,i_([u(e),...a],{id:i[t]})]),...l]}),"children");function u(e){const r=e.getValue();return B_(r)?[cM(r,t),...y_(t.originalText.slice(W_(r)+(r.prev&&uM(r.prev)?dM(r).length:0),U_(r)-(r.next&&sM(r.next)?mM(r,t).length:0)),p_),fM(r,t)]:n()}function o(e,t){return L_(e)&&L_(t)?e.isTrailingSpaceSensitive?e.hasTrailingSpaces?__(t)?u_:c_:"":__(t)?u_:f_:uM(e)&&(B_(t)||t.firstChild||t.isSelfClosing||"element"===t.type&&t.attrs.length>0)||"element"===e.type&&e.isSelfClosing&&sM(t)?"":!t.isLeadingSpaceSensitive||__(t)||sM(t)&&e.lastChild&&lM(e.lastChild)&&e.lastChild.lastChild&&lM(e.lastChild.lastChild)?u_:t.hasLeadingSpaces?c_:f_}}function K_(e,t){let n=e.startSourceSpan.end.offset;e.firstChild&&oM(e.firstChild)&&(n-=hM(e).length);let r=e.endSourceSpan.start.offset;return e.lastChild&&lM(e.lastChild)?r+=gM(e,t).length:aM(e)&&(r-=mM(e.lastChild,t).length),t.originalText.slice(n,r)}function Q_(e,t,n){const r=e.getValue();if(!D_(r.attrs))return r.isSelfClosing?" ":"";const i=r.prev&&"comment"===r.prev.type&&T_(r.prev.value),u="boolean"==typeof i?()=>i:Array.isArray(i)?e=>i.includes(e.rawName):()=>!1,o=e.map((e=>{const r=e.getValue();return u(r)?y_(t.originalText.slice(W_(r),U_(r)),p_):n()}),"attrs"),s="element"===r.type&&"script"===r.fullName&&1===r.attrs.length&&"src"===r.attrs[0].fullName&&0===r.children.length,a=[a_([s?" ":c_,l_(c_,o)])];return r.firstChild&&oM(r.firstChild)||r.isSelfClosing&&aM(r.parent)||s?a.push(r.isSelfClosing?" ":""):a.push(r.isSelfClosing?c_:f_),a}function Z_(e,t,n){const r=e.getValue();return[eM(r,t),Q_(e,t,n),r.isSelfClosing?"":tM(r)]}function eM(e,t){return e.prev&&uM(e.prev)?"":[cM(e,t),dM(e)]}function tM(e){return e.firstChild&&oM(e.firstChild)?"":hM(e)}function nM(e,t){return[e.isSelfClosing?"":rM(e,t),iM(e,t)]}function rM(e,t){return e.lastChild&&lM(e.lastChild)?"":[pM(e,t),gM(e,t)]}function iM(e,t){return(e.next?sM(e.next):aM(e.parent))?"":[mM(e,t),fM(e,t)]}function uM(e){return e.next&&!L_(e.next)&&L_(e)&&e.isTrailingSpaceSensitive&&!e.hasTrailingSpaces}function oM(e){return!e.prev&&e.isLeadingSpaceSensitive&&!e.hasLeadingSpaces}function sM(e){return e.prev&&"docType"!==e.prev.type&&!L_(e.prev)&&e.isLeadingSpaceSensitive&&!e.hasLeadingSpaces}function aM(e){return e.lastChild&&e.lastChild.isTrailingSpaceSensitive&&!e.lastChild.hasTrailingSpaces&&!L_(w_(e.lastChild))&&!V_(e)}function lM(e){return!e.next&&!e.hasTrailingSpaces&&e.isTrailingSpaceSensitive&&L_(w_(e))}function cM(e,t){return oM(e)?hM(e.parent):sM(e)?mM(e.prev,t):""}function pM(e,t){return aM(e)?mM(e.lastChild,t):""}function fM(e,t){return lM(e)?gM(e.parent,t):uM(e)?dM(e.next):""}function dM(e){switch(e.type){case"ieConditionalComment":case"ieConditionalStartComment":return`\x3c!--[if ${e.condition}`;case"ieConditionalEndComment":return"\x3c!--\x3c!--\x3e<${e.rawName}`;default:return`<${e.rawName}`}}function hM(e){switch(yf(!e.isSelfClosing),e.type){case"ieConditionalComment":return"]>";case"element":if(e.condition)return">\x3c!--"}}function gM(e,t){if(yf(!e.isSelfClosing),M_(e,t))return"";switch(e.type){case"ieConditionalComment":return"\x3c!--\x3e";case"interpolation":return"}}";case"element":if(e.isSelfClosing)return"/>";default:return">"}}function yM(e,t=e.value){return e.parent.isWhitespaceSensitive?e.parent.isIndentationSensitive?y_(t,p_):y_(A_(E_(t)),u_):g_(l_(c_,b_(t)))}var DM={preprocess:$L,print:function(e,t,n){const r=e.getValue();switch(r.type){case"front-matter":return y_(r.raw,p_);case"root":return t.__onHtmlRoot&&t.__onHtmlRoot(r),[i_(Y_(e,t,n)),u_];case"element":case"ieConditionalComment":{if(R_(r,t))return[cM(r,t),i_(Z_(e,t,n)),...y_(K_(r,t),p_),...nM(r,t),fM(r,t)];const u=1===r.children.length&&"interpolation"===r.firstChild.type&&r.firstChild.isLeadingSpaceSensitive&&!r.firstChild.hasLeadingSpaces&&r.lastChild.isTrailingSpaceSensitive&&!r.lastChild.hasTrailingSpaces,o=Symbol("element-attr-group-id");return[i_([i_(Z_(e,t,n),{id:o}),0===r.children.length?r.hasDanglingSpaces&&r.isDanglingSpaceSensitive?c_:"":[x_(r)?t_:"",(i=[u?o_(f_,"",{groupId:o}):r.firstChild.hasLeadingSpaces&&r.firstChild.isLeadingSpaceSensitive?c_:"text"===r.firstChild.type&&r.isWhitespaceSensitive&&r.isIndentationSensitive?n_(f_):f_,Y_(e,t,n)],u?s_(i,{groupId:o}):!j_(r)&&!N_(r,t)||"root"!==r.parent.type||"vue"!==t.parser||t.vueIndentScriptAndStyle?a_(i):i),(r.next?sM(r.next):aM(r.parent))?r.lastChild.hasTrailingSpaces&&r.lastChild.isTrailingSpaceSensitive?" ":"":u?o_(f_,"",{groupId:o}):r.lastChild.hasTrailingSpaces&&r.lastChild.isTrailingSpaceSensitive?c_:("comment"===r.lastChild.type||"text"===r.lastChild.type&&r.isWhitespaceSensitive&&r.isIndentationSensitive)&&new RegExp(`\\n[\\t ]{${t.tabWidth*v_(e,(e=>e.parent&&"root"!==e.parent.type))}}$`).test(r.lastChild.value)?"":f_]]),nM(r,t)]}case"ieConditionalStartComment":case"ieConditionalEndComment":return[eM(r),iM(r)];case"interpolation":return[eM(r,t),...e.map(n,"children"),iM(r,t)];case"text":{if("interpolation"===r.parent.type){const e=/\n[^\S\n]*?$/,t=e.test(r.value),n=t?r.value.replace(e,""):r.value;return[...y_(n,p_),t?u_:""]}const e=h_([cM(r,t),...yM(r),fM(r,t)]);return m_(e)||"fill"===e.type?r_(g_(e)):e}case"docType":return[i_([eM(r,t)," ",r.value.replace(/^html\b/i,"html").replace(/\s+/g," ")]),iM(r,t)];case"comment":return[cM(r,t),...y_(t.originalText.slice(W_(r),U_(r)),p_),fM(r,t)];case"attribute":{if(null===r.value)return r.rawName;const e=$_(r.value),t=C_(e,"'")new RegExp(t.join("|")).test(e.fullName),i=()=>$_(e.value);let u=!1;const o=(e,t)=>{const n="NGRoot"===e.type?"NGMicrosyntax"===e.node.type&&1===e.node.body.length&&"NGMicrosyntaxExpression"===e.node.body[0].type?e.node.body[0].expression:e.node:"JsExpressionRoot"===e.type?e.node:e;!n||"ObjectExpression"!==n.type&&"ArrayExpression"!==n.type&&("__vue_expression"!==t.parser||"TemplateLiteral"!==n.type&&"StringLiteral"!==n.type)||(u=!0)},s=e=>i_(e),a=(e,t=!0)=>i_([a_([f_,e]),t?f_:""]),l=e=>u?s(e):a(e),c=(e,n)=>t(e,Object.assign({__onHtmlBindingRoot:o,__embeddedInHtml:!0},n),{stripTrailingHardline:!0});if("srcset"===e.fullName&&("img"===e.parent.fullName||"source"===e.parent.fullName))return a(J_(i()));if("class"===e.fullName&&!n.parentParser){const e=i();if(!e.includes("{{"))return X_(e)}if("style"===e.fullName&&!n.parentParser){const e=i();if(!e.includes("{{"))return a(c(e,{parser:"css",__isHTMLStyleAttribute:!0}))}if("vue"===n.parser){if("v-for"===e.fullName)return z_(i(),c);if(O_(e)||I_(e,n))return G_(i(),c);const t=["^:","^v-bind:"],u=["^v-"];if(r(["^@","^v-on:"])){const e=i();return l(c(e,{parser:H_(e)?"__js_expression":"__vue_event_binding"}))}if(r(t))return l(c(i(),{parser:"__vue_expression"}));if(r(u))return l(c(i(),{parser:"__js_expression"}))}if("angular"===n.parser){const t=(e,t)=>c(e,Object.assign(Object.assign({},t),{},{trailingComma:"none"})),n=["^\\*"],u=["^\\[.+\\]$","^bind(on)?-","^ng-(if|show|hide|class|style)$"],o=["^i18n(-.+)?$"];if(r(["^\\(.+\\)$","^on-"]))return l(t(i(),{parser:"__ng_action"}));if(r(u))return l(t(i(),{parser:"__ng_binding"}));if(r(o)){const t=i().trim();return a(r_(yM(e,t)),!t.includes("@@"))}if(r(n))return l(t(i(),{parser:"__ng_directive"}));const s=/{{(.+?)}}/gs,p=i();if(s.test(p)){const e=[];for(const[n,r]of p.split(s).entries())if(n%2==0)e.push(y_(r,p_));else try{e.push(i_(["{{",a_([c_,t(r,{parser:"__ng_interpolation",__isInHtmlInterpolation:!0})]),c_,"}}"]))}catch{e.push("{{",y_(r,p_),"}}")}return i_(e)}}return null}(i,((e,t)=>n(e,Object.assign({__isInHtmlAttribute:!0,__embeddedInHtml:!0},t),{stripTrailingHardline:!0})),r);if(e)return[i.rawName,'="',i_(d_(e,(e=>"string"==typeof e?e.replace(/"/g,"""):e))),'"'];break}case"front-matter":return tk(i,n)}}};var EM={htmlWhitespaceSensitivity:{since:"1.15.0",category:"HTML",type:"choice",default:"css",description:"How to handle whitespaces in HTML.",choices:[{value:"css",description:"Respect the default value of CSS display property."},{value:"strict",description:"Whitespaces are considered sensitive."},{value:"ignore",description:"Whitespaces are considered insensitive."}]},vueIndentScriptAndStyle:{since:"1.19.0",category:"HTML",type:"boolean",default:!1,description:"Indent script and style tags in Vue files."}},bM={name:"HTML",type:"markup",tmScope:"text.html.basic",aceMode:"html",codemirrorMode:"htmlmixed",codemirrorMimeType:"text/html",color:"#e34c26",aliases:["xhtml"],extensions:[".html",".htm",".html.hl",".inc",".xht",".xhtml"],languageId:146},CM={name:"Vue",type:"markup",color:"#41b883",extensions:[".vue"],tmScope:"text.html.vue",aceMode:"html",languageId:391};var vM={languages:[Yd(bM,(()=>({name:"Angular",since:"1.15.0",parsers:["angular"],vscodeLanguageIds:["html"],extensions:[".component.html"],filenames:[]}))),Yd(bM,(e=>({since:"1.15.0",parsers:["html"],vscodeLanguageIds:["html"],extensions:[...e.extensions,".mjml"]}))),Yd(bM,(()=>({name:"Lightning Web Components",since:"1.17.0",parsers:["lwc"],vscodeLanguageIds:["html"],extensions:[],filenames:[]}))),Yd(CM,(()=>({since:"1.10.0",parsers:["vue"],vscodeLanguageIds:["vue"]})))],printers:{html:DM},options:EM,parsers:{get html(){return require("./parser-html").parsers.html},get vue(){return require("./parser-html").parsers.vue},get angular(){return require("./parser-html").parsers.angular},get lwc(){return require("./parser-html").parsers.lwc}}};var AM={isPragma:function(e){return/^\s*@(prettier|format)\s*$/.test(e)},hasPragma:function(e){return/^\s*#[^\S\n]*@(prettier|format)\s*?(\n|$)/.test(e)},insertPragma:function(e){return`# @format\n\n${e}`}};var FM={locStart:function(e){return e.position.start.offset},locEnd:function(e){return e.position.end.offset}};var xM=function(e,t,n,r){if("root"===e.getValue().type&&r.filepath&&/(?:[/\\]|^)\.prettierrc$/.test(r.filepath))return n(r.originalText,Object.assign(Object.assign({},r),{},{parser:"json"}))};const{getLast:SM,isNonEmptyArray:wM}=fi;function TM(e,t){return e&&"string"==typeof e.type&&(!t||t.includes(e.type))}function BM(e){return"prettier-ignore"===e.value.trim()}function kM(e){return e&&wM(e.leadingComments)}function NM(e){return e&&wM(e.middleComments)}function PM(e){return e&&e.indicatorComment}function OM(e){return e&&e.trailingComment}function IM(e){return e&&wM(e.endComments)}function jM(e){const t=[];let n;for(const r of e.split(/( +)/))" "!==r?" "===n?t.push(r):t.push((t.pop()||"")+r):void 0===n&&t.unshift(""),n=r;return" "===n&&t.push((t.pop()||"")+" "),""===t[0]&&(t.shift(),t.unshift(" "+(t.shift()||""))),t}var LM={getLast:SM,getAncestorCount:function(e,t){let n=0;const r=e.stack.length-1;for(let i=0;ie(r,n,t)))}):t,r)},defineShortcut:function(e,t,n){Object.defineProperty(e,t,{get:n,enumerable:!1})},isNextLineEmpty:function(e,t){let n=0;const r=t.length;for(let i=e.position.end.offset-1;ie?e[1].length:Number.POSITIVE_INFINITY)(i.match(/^( *)\S/m)):e.indent-1+t,o=i.split("\n").map((e=>e.slice(u)));return"preserve"===r.proseWrap||"blockLiteral"===e.type?s(o.map((e=>0===e.length?[]:[e]))):s(o.map((e=>0===e.length?[]:jM(e))).reduce(((e,t,n)=>0!==n&&o[n-1].length>0&&t.length>0&&!/^\s/.test(t[0])&&!/^\s|\s$/.test(SM(e))?[...e.slice(0,-1),[...SM(e),...t]]:[...e,t]),[]).map((e=>e.reduce(((e,t)=>e.length>0&&/\s$/.test(SM(e))?[...e.slice(0,-1),SM(e)+" "+t]:[...e,t]),[]))).map((e=>"never"===r.proseWrap?[e.join(" ")]:e)));function s(t){if("keep"===e.chomping)return 0===SM(t).length?t.slice(0,-1):t;let r=0;for(let e=t.length-1;e>=0&&0===t[e].length;e--)r++;return 0===r?t:r>=2&&!n?t.slice(0,-(r-1)):t.slice(0,-r)}},getFlowScalarLineContents:function(e,t,n){const r=t.split("\n").map(((e,t,n)=>0===t&&t===n.length-1?e:0!==t&&t!==n.length-1?e.trim():0===t?e.trimEnd():e.trimStart()));return"preserve"===n.proseWrap?r.map((e=>0===e.length?[]:[e])):r.map((e=>0===e.length?[]:jM(e))).reduce(((t,n,i)=>0!==i&&r[i-1].length>0&&n.length>0&&("quoteDouble"!==e||!SM(SM(t)).endsWith("\\"))?[...t.slice(0,-1),[...SM(t),...n]]:[...t,n]),[]).map((e=>"never"===n.proseWrap?[e.join(" ")]:e))},getLastDescendantNode:function e(t){return wM(t.children)?e(SM(t.children)):t},hasPrettierIgnore:function(e){const t=e.getValue();if("documentBody"===t.type){const t=e.getParentNode();return IM(t.head)&&BM(SM(t.head.endComments))}return kM(t)&&BM(SM(t.leadingComments))},hasLeadingComments:kM,hasMiddleComments:NM,hasIndicatorComment:PM,hasTrailingComment:OM,hasEndComments:IM};const{defineShortcut:_M,mapNode:MM}=LM;function RM(e){switch(e.type){case"document":_M(e,"head",(()=>e.children[0])),_M(e,"body",(()=>e.children[1]));break;case"documentBody":case"sequenceItem":case"flowSequenceItem":case"mappingKey":case"mappingValue":_M(e,"content",(()=>e.children[0]));break;case"mappingItem":case"flowMappingItem":_M(e,"key",(()=>e.children[0])),_M(e,"value",(()=>e.children[1]))}return e}var $M=function(e){return MM(e,RM)};const{builders:{softline:VM,align:qM}}=Ji,{hasEndComments:WM,isNextLineEmpty:UM,isNode:zM}=LM,GM=new WeakMap;function HM(e){return WM(e)&&!zM(e,["documentHead","documentBody","flowMapping","flowSequence"])}var JM={alignWithSpaces:function(e,t){return qM(" ".repeat(e),t)},shouldPrintEndComments:HM,printNextEmptyLine:function(e,t){const n=e.getValue(),r=e.stack[0];let i;return GM.has(r)?i=GM.get(r):(i=new Set,GM.set(r,i)),i.has(n.position.end.line)||(i.add(n.position.end.line),!UM(n,t)||HM(e.getParentNode()))?"":VM}};const{builders:{ifBreak:XM,line:YM,softline:KM,hardline:QM,join:ZM}}=Ji,{isEmptyNode:eR,getLast:tR,hasEndComments:nR}=LM,{printNextEmptyLine:rR,alignWithSpaces:iR}=JM;function uR(e,t,n){const r=e.getValue(),i="flowMapping"===r.type,u=i?"{":"[",o=i?"}":"]";let s=KM;i&&r.children.length>0&&n.bracketSpacing&&(s=YM);const a=tR(r.children),l=a&&"flowMappingItem"===a.type&&eR(a.key)&&eR(a.value);return[u,iR(n.tabWidth,[s,oR(e,t,n),"none"===n.trailingComma?"":XM(","),nR(r)?[QM,ZM(QM,e.map(t,"endComments"))]:""]),l?"":s,o]}function oR(e,t,n){const r=e.getValue();return e.map(((e,i)=>[t(),i===r.children.length-1?"":[",",YM,r.children[i].position.start.line!==r.children[i+1].position.start.line?rR(e,n.originalText):""]]),"children")}var sR={printFlowMapping:uR,printFlowSequence:uR};const{builders:{conditionalGroup:aR,group:lR,hardline:cR,ifBreak:pR,join:fR,line:dR}}=Ji,{hasLeadingComments:hR,hasMiddleComments:gR,hasTrailingComment:mR,hasEndComments:yR,isNode:DR,isEmptyNode:ER,isInlineNode:bR}=LM,{alignWithSpaces:CR}=JM;function vR(e,t){if(!e)return!0;switch(e.type){case"plain":case"quoteSingle":case"quoteDouble":break;case"alias":return!0;default:return!1}if("preserve"===t.proseWrap)return e.position.start.line===e.position.end.line;if(/\\$/m.test(t.originalText.slice(e.position.start.offset,e.position.end.offset)))return!1;switch(t.proseWrap){case"never":return!e.value.includes("\n");case"always":return!/[\n ]/.test(e.value);default:return!1}}var AR=function(e,t,n,r,i){const{key:u,value:o}=e,s=ER(u),a=ER(o);if(s&&a)return": ";const l=r("key"),c=function(e){return e.key.content&&"alias"===e.key.content.type}(e)?" ":"";if(a)return"flowMappingItem"===e.type&&"flowMapping"===t.type?l:"mappingItem"!==e.type||!vR(u.content,i)||mR(u.content)||t.tag&&"tag:yaml.org,2002:set"===t.tag.value?["? ",CR(2,l)]:[l,c,":"];const p=r("value");if(s)return[": ",CR(2,p)];if(hR(o)||!bR(u.content))return["? ",CR(2,l),cR,fR("",n.map(r,"value","leadingComments").map((e=>[e,cR]))),": ",CR(2,p)];if(function(e){if(!e)return!0;switch(e.type){case"plain":case"quoteDouble":case"quoteSingle":return e.position.start.line===e.position.end.line;case"alias":return!0;default:return!1}}(u.content)&&!hR(u.content)&&!gR(u.content)&&!mR(u.content)&&!yR(u)&&!hR(o.content)&&!gR(o.content)&&!yR(o)&&vR(o.content,i))return[l,c,": ",p];const f=Symbol("mappingKey"),d=lR([pR("? "),lR(CR(2,l),{id:f})]),h=[cR,": ",CR(2,p)],g=[c,":"];hR(o.content)||yR(o)&&o.content&&!DR(o.content,["mapping","sequence"])||"mapping"===t.type&&mR(u.content)&&bR(o.content)||DR(o.content,["mapping","sequence"])&&null===o.content.tag&&null===o.content.anchor?g.push(cR):o.content&&g.push(dR),g.push(p);const m=CR(i.tabWidth,g);return!vR(u.content,i)||hR(u.content)||gR(u.content)||yR(u)?aR([[d,pR(h,m,{groupId:f})]]):aR([[l,m]])};const{builders:{dedent:FR,dedentToRoot:xR,fill:SR,hardline:wR,join:TR,line:BR,literalline:kR,markAsRoot:NR},utils:{getDocParts:PR}}=Ji,{getAncestorCount:OR,getBlockValueLineContents:IR,hasIndicatorComment:jR,isLastDescendantNode:LR,isNode:_R}=LM,{alignWithSpaces:MR}=JM;var RR=function(e,t,n){const r=e.getValue(),i=OR(e,(e=>_R(e,["sequence","mapping"]))),u=LR(e),o=["blockFolded"===r.type?">":"|"];null!==r.indent&&o.push(r.indent.toString()),"clip"!==r.chomping&&o.push("keep"===r.chomping?"+":"-"),jR(r)&&o.push(" ",t("indicatorComment"));const s=IR(r,{parentIndent:i,isLastDescendant:u,options:n}),a=[];for(const[e,t]of s.entries())0===e&&a.push(wR),a.push(SR(PR(TR(BR,t)))),e!==s.length-1?a.push(0===t.length?wR:NR(kR)):"keep"===r.chomping&&u&&a.push(xR(0===t.length?wR:kR));return null===r.indent?o.push(FR(MR(n.tabWidth,a))):o.push(xR(MR(r.indent-1+i,a))),o};const{builders:{breakParent:$R,fill:VR,group:qR,hardline:WR,join:UR,line:zR,lineSuffix:GR,literalline:HR},utils:{getDocParts:JR,replaceEndOfLineWith:XR}}=Ji,{isPreviousLineEmpty:YR}=fi,{insertPragma:KR,isPragma:QR}=AM,{locStart:ZR}=FM,{getFlowScalarLineContents:e$,getLastDescendantNode:t$,hasLeadingComments:n$,hasMiddleComments:r$,hasTrailingComment:i$,hasEndComments:u$,hasPrettierIgnore:o$,isLastDescendantNode:s$,isNode:a$,isInlineNode:l$}=LM,{alignWithSpaces:c$,printNextEmptyLine:p$,shouldPrintEndComments:f$}=JM,{printFlowMapping:d$,printFlowSequence:h$}=sR;function g$(e,t){return i$(e)||t&&(t.head.children.length>0||u$(t.head))}function m$(e,t,n){const r=e$(e,t,n);return UR(WR,r.map((e=>VR(JR(UR(zR,e))))))}var y$={preprocess:$M,embed:xM,print:function(e,t,n){const r=e.getValue(),i=[];"mappingValue"!==r.type&&n$(r)&&i.push([UR(WR,e.map(n,"leadingComments")),WR]);const{tag:u,anchor:o}=r;u&&i.push(n("tag")),u&&o&&i.push(" "),o&&i.push(n("anchor"));let s="";a$(r,["mapping","sequence","comment","directive","mappingItem","sequenceItem"])&&!s$(e)&&(s=p$(e,t.originalText)),(u||o)&&(a$(r,["sequence","mapping"])&&!r$(r)?i.push(WR):i.push(" ")),r$(r)&&i.push([1===r.middleComments.length?"":WR,UR(WR,e.map(n,"middleComments")),WR]);const a=e.getParentNode();return o$(e)?i.push(XR(t.originalText.slice(r.position.start.offset,r.position.end.offset).trimEnd(),HR)):i.push(qR(function(e,t,n,r,i){switch(e.type){case"root":{const{children:t}=e,r=[];n.each(((e,n)=>{const u=t[n],o=t[n+1];0!==n&&r.push(WR),r.push(i()),g$(u,o)?(r.push(WR,"..."),i$(u)&&r.push(" ",i("trailingComment"))):o&&!i$(o.head)&&r.push(WR,"---")}),"children");const u=t$(e);return a$(u,["blockLiteral","blockFolded"])&&"keep"===u.chomping||r.push(WR),r}case"document":{const u=[];return"head"===function(e,t,n,r){if(n.children[0]===e&&/---(\s|$)/.test(r.originalText.slice(ZR(e),ZR(e)+4))||e.head.children.length>0||u$(e.head)||i$(e.head))return"head";if(g$(e,t))return!1;return!!t&&"root"}(e,t.children[n.getName()+1],t,r)&&((e.head.children.length>0||e.head.endComments.length>0)&&u.push(i("head")),i$(e.head)?u.push(["---"," ",i(["head","trailingComment"])]):u.push("---")),function(e){return e.body.children.length>0||u$(e.body)}(e)&&u.push(i("body")),UR(WR,u)}case"documentHead":return UR(WR,[...n.map(i,"children"),...n.map(i,"endComments")]);case"documentBody":{const{children:t,endComments:r}=e;let u="";if(t.length>0&&r.length>0){const t=t$(e);a$(t,["blockFolded","blockLiteral"])?"keep"!==t.chomping&&(u=[WR,WR]):u=WR}return[UR(WR,n.map(i,"children")),u,UR(WR,n.map(i,"endComments"))]}case"directive":return["%",UR(" ",[e.name,...e.parameters])];case"comment":return["#",e.value];case"alias":return["*",e.value];case"tag":return r.originalText.slice(e.position.start.offset,e.position.end.offset);case"anchor":return["&",e.value];case"plain":return m$(e.type,r.originalText.slice(e.position.start.offset,e.position.end.offset),r);case"quoteDouble":case"quoteSingle":{const t="'",n='"',i=r.originalText.slice(e.position.start.offset+1,e.position.end.offset-1);if("quoteSingle"===e.type&&i.includes("\\")||"quoteDouble"===e.type&&/\\[^"]/.test(i)){const u="quoteDouble"===e.type?n:t;return[u,m$(e.type,i,r),u]}if(i.includes(n))return[t,m$(e.type,"quoteDouble"===e.type?i.replace(/\\"/g,n).replace(/'/g,t.repeat(2)):i,r),t];if(i.includes(t))return[n,m$(e.type,"quoteSingle"===e.type?i.replace(/''/g,t):i,r),n];const u=r.singleQuote?t:n;return[u,m$(e.type,i,r),u]}case"blockFolded":case"blockLiteral":return RR(n,i,r);case"mapping":case"sequence":return UR(WR,n.map(i,"children"));case"sequenceItem":return["- ",c$(2,e.content?i("content"):"")];case"mappingKey":case"mappingValue":return e.content?i("content"):"";case"mappingItem":case"flowMappingItem":return AR(e,t,n,i,r);case"flowMapping":return d$(n,i,r);case"flowSequence":return h$(n,i,r);case"flowSequenceItem":return i("content");default:throw new Error(`Unexpected node type ${e.type}`)}}(r,a,e,t,n))),i$(r)&&!a$(r,["document","documentHead"])&&i.push(GR(["mappingValue"!==r.type||r.content?" ":"","mappingKey"===a.type&&"mapping"===e.getParentNode(2).type&&l$(r)?"":$R,n("trailingComment")])),f$(r)&&i.push(c$("sequenceItem"===r.type?2:0,[WR,UR(WR,e.map((e=>[YR(t.originalText,e.getValue(),ZR)?WR:"",n()]),"endComments"))])),i.push(s),i},massageAstNode:function(e,t){if(a$(t))switch(delete t.position,t.type){case"comment":if(QR(t.value))return null;break;case"quoteDouble":case"quoteSingle":t.type="quote"}},insertPragma:KR},D$={bracketSpacing:$B.bracketSpacing,singleQuote:$B.singleQuote,proseWrap:$B.proseWrap};var E$=[JB,ZN,cO,NO,sj,vM,{languages:[Yd({name:"YAML",type:"data",color:"#cb171e",tmScope:"source.yaml",aliases:["yml"],extensions:[".yml",".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".gemrc","glide.lock","yarn.lock"],aceMode:"yaml",codemirrorMode:"yaml",codemirrorMimeType:"text/x-yaml",languageId:407},(e=>({since:"1.14.0",parsers:["yaml"],vscodeLanguageIds:["yaml","ansible","home-assistant"],filenames:[...e.filenames.filter((e=>"yarn.lock"!==e)),".prettierrc"]})))],printers:{yaml:y$},options:D$,parsers:{get yaml(){return require("./parser-yaml").parsers.yaml}}}];const b$=["parsers"],{version:C$}=t,{getSupportInfo:v$}=Hr,A$=E$.map((t=>e(t,b$)));function F$(e,t=1){return(...n)=>{const r=n[t]||{},i=r.plugins||[];return n[t]=Object.assign(Object.assign({},r),{},{plugins:[...A$,...Array.isArray(i)?i:Object.values(i)]}),e(...n)}}const x$=F$(Fd.formatWithCursor);var S$={formatWithCursor:x$,format:(e,t)=>x$(e,t).formatted,check(e,t){const{formatted:n}=x$(e,t);return n===e},doc:Ji,getSupportInfo:F$(v$,0),version:C$,util:Jd,__debug:{parse:F$(Fd.parse),formatAST:F$(Fd.formatAST),formatDoc:F$(Fd.formatDoc),printToDoc:F$(Fd.printToDoc),printDocToString:F$(Fd.printDocToString)}};export default S$; diff --git a/node_modules/prettier/index.js b/node_modules/prettier/index.js index 759d94c632..3c45d0ad50 100644 --- a/node_modules/prettier/index.js +++ b/node_modules/prettier/index.js @@ -1,481 +1,390 @@ 'use strict'; -var fs$3 = require('fs'); -var path$2 = require('path'); -var os$1 = require('os'); -var tty$1 = require('tty'); -var assert$1 = require('assert'); -var util$4 = require('util'); -var stream$6 = require('stream'); -var events$1 = require('events'); +var fs$6 = require('fs'); +var path$5 = require('path'); +var os$2 = require('os'); +var tty$2 = require('tty'); +var assert$2 = require('assert'); +var util$6 = require('util'); +var stream_1 = require('stream'); +var events_1 = require('events'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } -var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$3); -var path__default = /*#__PURE__*/_interopDefaultLegacy(path$2); -var os__default = /*#__PURE__*/_interopDefaultLegacy(os$1); -var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty$1); -var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert$1); -var util__default = /*#__PURE__*/_interopDefaultLegacy(util$4); -var stream__default = /*#__PURE__*/_interopDefaultLegacy(stream$6); -var events__default = /*#__PURE__*/_interopDefaultLegacy(events$1); - -var name = "prettier"; -var version = "2.1.1"; -var description = "Prettier is an opinionated code formatter"; -var bin = "./bin/prettier.js"; -var repository = "prettier/prettier"; -var homepage = "https://prettier.io"; -var author = "James Long"; -var license = "MIT"; -var main = "./index.js"; -var browser = "./standalone.js"; -var unpkg = "./standalone.js"; -var engines = { - node: ">=10.13.0" -}; -var files = [ - "index.js", - "standalone.js", - "src", - "bin" -]; -var dependencies = { - "@angular/compiler": "10.0.12", - "@babel/code-frame": "7.10.4", - "@babel/parser": "7.11.2", - "@glimmer/syntax": "0.59.0", - "@iarna/toml": "2.2.5", - "@typescript-eslint/typescript-estree": "3.10.0", - "angular-estree-parser": "2.2.0", - "angular-html-parser": "1.7.1", - camelcase: "6.0.0", - chalk: "4.1.0", - "ci-info": "watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540", - "cjk-regex": "2.0.0", - cosmiconfig: "7.0.0", - dashify: "2.0.0", - diff: "4.0.2", - editorconfig: "0.15.3", - "editorconfig-to-prettier": "0.1.1", - "escape-string-regexp": "4.0.0", - esutils: "2.0.3", - "fast-glob": "3.2.4", - "fast-json-stable-stringify": "2.1.0", - "find-parent-dir": "0.3.0", - "flow-parser": "0.132.0", - "get-stream": "6.0.0", - globby: "11.0.1", - graphql: "15.3.0", - "html-element-attributes": "2.2.1", - "html-styles": "1.0.0", - "html-tag-names": "1.1.5", - "html-void-elements": "1.0.5", - ignore: "4.0.6", - "jest-docblock": "26.0.0", - json5: "2.1.3", - leven: "3.1.0", - "lines-and-columns": "1.1.6", - "linguist-languages": "7.10.0", - lodash: "4.17.20", - mem: "6.1.0", - minimatch: "3.0.4", - minimist: "1.2.5", - "n-readlines": "1.0.0", - outdent: "0.7.1", - "parse-srcset": "ikatyang/parse-srcset#54eb9c1cb21db5c62b4d0e275d7249516df6f0ee", - "please-upgrade-node": "3.2.0", - "postcss-less": "3.1.4", - "postcss-media-query-parser": "0.2.3", - "postcss-scss": "2.1.1", - "postcss-selector-parser": "2.2.3", - "postcss-values-parser": "2.0.1", - "regexp-util": "1.2.2", - "remark-footnotes": "2.0.0", - "remark-math": "1.0.6", - "remark-parse": "8.0.3", - resolve: "1.17.0", - semver: "7.3.2", - "string-width": "4.2.0", - typescript: "4.0.2", - "unicode-regex": "3.0.0", - unified: "9.2.0", - vnopts: "1.0.2", - "yaml-unist-parser": "1.3.0" -}; -var devDependencies = { - "@babel/core": "7.11.4", - "@babel/preset-env": "7.11.0", - "@babel/types": "7.11.0", - "@glimmer/reference": "0.59.0", - "@rollup/plugin-alias": "3.1.1", - "@rollup/plugin-babel": "5.2.0", - "@rollup/plugin-commonjs": "14.0.0", - "@rollup/plugin-json": "4.1.0", - "@rollup/plugin-node-resolve": "9.0.0", - "@rollup/plugin-replace": "2.3.3", - "@types/estree": "0.0.45", - "@types/node": "14.6.0", - "@typescript-eslint/types": "3.10.0", - "babel-loader": "8.1.0", - benchmark: "2.1.4", - "builtin-modules": "3.1.0", - "cross-env": "7.0.2", - cspell: "4.1.0", - eslint: "7.7.0", - "eslint-config-prettier": "6.11.0", - "eslint-formatter-friendly": "7.0.0", - "eslint-plugin-import": "2.22.0", - "eslint-plugin-jest": "23.20.0", - "eslint-plugin-prettier-internal-rules": "file:scripts/tools/eslint-plugin-prettier-internal-rules", - "eslint-plugin-react": "7.20.6", - "eslint-plugin-unicorn": "21.0.0", - execa: "4.0.3", - jest: "26.4.2", - "jest-snapshot-serializer-ansi": "1.0.0", - "jest-snapshot-serializer-raw": "1.1.0", - "jest-watch-typeahead": "0.6.0", - "npm-run-all": "4.1.5", - prettier: "2.1.0", - rimraf: "3.0.2", - rollup: "2.26.5", - "rollup-plugin-node-globals": "1.4.0", - "rollup-plugin-terser": "7.0.0", - shelljs: "0.8.4", - "snapshot-diff": "0.8.1", - "strip-ansi": "6.0.0", - "synchronous-promise": "2.0.13", - tempy: "0.6.0", - "terser-webpack-plugin": "4.1.0", - webpack: "4.44.1" -}; -var scripts = { - prepublishOnly: "echo \"Error: must publish from dist/\" && exit 1", - "prepare-release": "yarn && yarn build && yarn test:dist", - test: "jest", - "test:dev-package": "cross-env INSTALL_PACKAGE=1 jest", - "test:dist": "cross-env NODE_ENV=production jest", - "test:dist-standalone": "cross-env NODE_ENV=production TEST_STANDALONE=1 jest", - "test:integration": "jest tests_integration", - "perf:repeat": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - "perf:repeat-inspect": "yarn && yarn build && cross-env NODE_ENV=production node --inspect-brk ./dist/bin-prettier.js --debug-repeat ${PERF_REPEAT:-1000} --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - "perf:benchmark": "yarn && yarn build && cross-env NODE_ENV=production node ./dist/bin-prettier.js --debug-benchmark --loglevel debug ${PERF_FILE:-./index.js} > /dev/null", - lint: "run-p lint:*", - "lint:typecheck": "tsc", - "lint:eslint": "cross-env EFF_NO_LINK_RULES=true eslint . --format friendly", - "lint:changelog": "node ./scripts/lint-changelog.js", - "lint:prettier": "prettier . \"!test*\" --check", - "lint:dist": "eslint --no-eslintrc --no-ignore --env=es6,browser --parser-options=ecmaVersion:2016 \"dist/!(bin-prettier|index|third-party).js\"", - "lint:spellcheck": "cspell \"**/*\" \".github/**/*\"", - "lint:deps": "node ./scripts/check-deps.js", - fix: "run-s fix:eslint fix:prettier", - "fix:eslint": "yarn lint:eslint --fix", - "fix:prettier": "yarn lint:prettier --write", - build: "node ./scripts/build/build.js", - "build-docs": "node ./scripts/build-docs.js" -}; -var _package = { - name: name, - version: version, - description: description, - bin: bin, - repository: repository, - homepage: homepage, - author: author, - license: license, - main: main, - browser: browser, - unpkg: unpkg, - engines: engines, - files: files, - dependencies: dependencies, - devDependencies: devDependencies, - scripts: scripts -}; - -var _package$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name, - version: version, - description: description, - bin: bin, - repository: repository, - homepage: homepage, - author: author, - license: license, - main: main, - browser: browser, - unpkg: unpkg, - engines: engines, - files: files, - dependencies: dependencies, - devDependencies: devDependencies, - scripts: scripts, - 'default': _package -}); +var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs$6); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path$5); +var os__default = /*#__PURE__*/_interopDefaultLegacy(os$2); +var tty__default = /*#__PURE__*/_interopDefaultLegacy(tty$2); +var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert$2); +var util__default = /*#__PURE__*/_interopDefaultLegacy(util$6); +var stream_1__default = /*#__PURE__*/_interopDefaultLegacy(stream_1); +var events_1__default = /*#__PURE__*/_interopDefaultLegacy(events_1); -function Diff() {} +var require$$0$8 = require("./package.json"); -Diff.prototype = { - diff: function diff(oldString, newString) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var callback = options.callback; +function getDefaultExportFromNamespaceIfPresent (n) { + return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n; +} - if (typeof options === 'function') { - callback = options; - options = {}; - } +function createCommonjsModule(fn) { + var module = { exports: {} }; + return fn(module, module.exports), module.exports; +} - this.options = options; - var self = this; +/*istanbul ignore start*/ +var base$1 = createCommonjsModule(function (module, exports) { - function done(value) { - if (callback) { - setTimeout(function () { - callback(undefined, value); - }, 0); - return true; - } else { - return value; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = Diff; + /*istanbul ignore end*/ + + function Diff() {} + + Diff.prototype = { + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + diff: function diff(oldString, newString) { + /*istanbul ignore start*/ + var + /*istanbul ignore end*/ + options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var callback = options.callback; + + if (typeof options === 'function') { + callback = options; + options = {}; } - } // Allow subclasses to massage the input prior to running + this.options = options; + var self = this; - oldString = this.castInput(oldString); - newString = this.castInput(newString); - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - var newLen = newString.length, - oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ - newPos: -1, - components: [] - }]; // Seed editLength = 0, i.e. the content starts with the same values + function done(value) { + if (callback) { + setTimeout(function () { + callback(undefined, value); + }, 0); + return true; + } else { + return value; + } + } // Allow subclasses to massage the input prior to running + + + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, + oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ + newPos: -1, + components: [] + }]; // Seed editLength = 0, i.e. the content starts with the same values + + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + // Identity per the equality and tokenizer + return done([{ + value: this.join(newString), + count: newString.length + }]); + } // Main worker method. checks all permutations of a given edit length for acceptance. + + + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = + /*istanbul ignore start*/ + void 0 + /*istanbul ignore end*/ + ; + + var addPath = bestPath[diagonalPath - 1], + removePath = bestPath[diagonalPath + 1], + _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + + if (addPath) { + // No one else is going to attempt to use this value, clear it + bestPath[diagonalPath - 1] = undefined; + } + + var canAdd = addPath && addPath.newPos + 1 < newLen, + canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (!canAdd && !canRemove) { + // If this path is a terminal then prune + bestPath[diagonalPath] = undefined; + continue; + } // Select the diagonal that we want to branch from. We select the prior + // path whose position in the new string is the farthest from the origin + // and does not pass the bounds of the diff graph - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - // Identity per the equality and tokenizer - return done([{ - value: this.join(newString), - count: newString.length - }]); - } // Main worker method. checks all permutations of a given edit length for acceptance. + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self.pushComponent(basePath.components, undefined, true); + } else { + basePath = addPath; // No need to clone, we've pulled it from the list - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = void 0; + basePath.newPos++; + self.pushComponent(basePath.components, true, undefined); + } - var addPath = bestPath[diagonalPath - 1], - removePath = bestPath[diagonalPath + 1], - _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done - if (addPath) { - // No one else is going to attempt to use this value, clear it - bestPath[diagonalPath - 1] = undefined; + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); + } else { + // Otherwise track this path as a potential candidate and continue. + bestPath[diagonalPath] = basePath; + } } - var canAdd = addPath && addPath.newPos + 1 < newLen, - canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + editLength++; + } // Performs the length of edit iteration. Is a bit fugly as this has to support the + // sync and async mode which is never fun. Loops over execEditLength until a value + // is produced. - if (!canAdd && !canRemove) { - // If this path is a terminal then prune - bestPath[diagonalPath] = undefined; - continue; - } // Select the diagonal that we want to branch from. We select the prior - // path whose position in the new string is the farthest from the origin - // and does not pass the bounds of the diff graph + if (callback) { + (function exec() { + setTimeout(function () { + // This should not happen, but we want to be safe. - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self.pushComponent(basePath.components, undefined, true); - } else { - basePath = addPath; // No need to clone, we've pulled it from the list + /* istanbul ignore next */ + if (editLength > maxEditLength) { + return callback(); + } + + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); - basePath.newPos++; - self.pushComponent(basePath.components, true, undefined); + if (ret) { + return ret; + } } + } + }, - _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done + /*istanbul ignore start*/ - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); - } else { - // Otherwise track this path as a potential candidate and continue. - bestPath[diagonalPath] = basePath; - } + /*istanbul ignore end*/ + pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + + if (last && last.added === added && last.removed === removed) { + // We need to clone here as the component clone operation is just + // as shallow array clone + components[components.length - 1] = { + count: last.count + 1, + added: added, + removed: removed + }; + } else { + components.push({ + count: 1, + added: added, + removed: removed + }); } + }, - editLength++; - } // Performs the length of edit iteration. Is a bit fugly as this has to support the - // sync and async mode which is never fun. Loops over execEditLength until a value - // is produced. + /*istanbul ignore start*/ + /*istanbul ignore end*/ + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, + oldLen = oldString.length, + newPos = basePath.newPos, + oldPos = newPos - diagonalPath, + commonCount = 0; - if (callback) { - (function exec() { - setTimeout(function () { - // This should not happen, but we want to be safe. + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } - /* istanbul ignore next */ - if (editLength > maxEditLength) { - return callback(); - } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); + basePath.newPos = newPos; + return oldPos; + }, - if (ret) { - return ret; - } + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); } - } - }, - pushComponent: function pushComponent(components, added, removed) { - var last = components[components.length - 1]; - - if (last && last.added === added && last.removed === removed) { - // We need to clone here as the component clone operation is just - // as shallow array clone - components[components.length - 1] = { - count: last.count + 1, - added: added, - removed: removed - }; - } else { - components.push({ - count: 1, - added: added, - removed: removed - }); - } - }, - extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, - oldLen = oldString.length, - newPos = basePath.newPos, - oldPos = newPos - diagonalPath, - commonCount = 0; - - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - - if (commonCount) { - basePath.components.push({ - count: commonCount - }); - } + }, - basePath.newPos = newPos; - return oldPos; - }, - equals: function equals(left, right) { - if (this.options.comparator) { - return this.options.comparator(left, right); - } else { - return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); - } - }, - removeEmpty: function removeEmpty(array) { - var ret = []; + /*istanbul ignore start*/ - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); + /*istanbul ignore end*/ + removeEmpty: function removeEmpty(array) { + var ret = []; + + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } } + + return ret; + }, + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + castInput: function castInput(value) { + return value; + }, + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + tokenize: function tokenize(value) { + return value.split(''); + }, + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + join: function join(chars) { + return chars.join(''); } + }; - return ret; - }, - castInput: function castInput(value) { - return value; - }, - tokenize: function tokenize(value) { - return value.split(''); - }, - join: function join(chars) { - return chars.join(''); - } -}; + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, + componentLen = components.length, + newPos = 0, + oldPos = 0; -function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, - componentLen = components.length, - newPos = 0, - oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function (value, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; + newPos += component.count; // Common case - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function (value, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value.length ? oldValue : value; - }); - component.value = diff.join(value); + if (!component.added) { + oldPos += component.count; + } } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; // Reverse add and remove so removes are output first to match common convention + // The diffing algorithm is tied to add then remove output and this is the simplest + // route to get the desired output with minimal overhead. + + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } } + } // Special case handle for when one terminal is ignored (i.e. whitespace). + // For this case we merge the terminal into the prior string and drop the change. + // This is only available for string mode. - newPos += component.count; // Common case - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; // Reverse add and remove so removes are output first to match common convention - // The diffing algorithm is tied to add then remove output and this is the simplest - // route to get the desired output with minimal overhead. + var lastComponent = components[componentLen - 1]; - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } + if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); } - } // Special case handle for when one terminal is ignored (i.e. whitespace). - // For this case we merge the terminal into the prior string and drop the change. - // This is only available for string mode. + return components; + } + + function clonePath(path) { + return { + newPos: path.newPos, + components: path.components.slice(0) + }; + } +}); + +/*istanbul ignore start*/ +var character = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffChars = diffChars; + exports.characterDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ - var lastComponent = components[componentLen - 1]; - if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; } + /*istanbul ignore end*/ - return components; -} -function clonePath(path) { - return { - newPos: path.newPos, - components: path.components.slice(0) - }; -} + var characterDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ -var characterDiff = new Diff(); + exports.characterDiff = characterDiff; + /*istanbul ignore end*/ -function diffChars(oldStr, newStr, options) { - return characterDiff.diff(oldStr, newStr, options); -} + function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); + } +}); + +/*istanbul ignore start*/ + +var generateOptions_1 = generateOptions; +/*istanbul ignore end*/ function generateOptions(options, defaults) { if (typeof options === 'function') { @@ -490,267 +399,1271 @@ function generateOptions(options, defaults) { } return defaults; -} // -// Ranges and exceptions: -// Latin-1 Supplement, 0080–00FF -// - U+00D7 × Multiplication sign -// - U+00F7 ÷ Division sign -// Latin Extended-A, 0100–017F -// Latin Extended-B, 0180–024F -// IPA Extensions, 0250–02AF -// Spacing Modifier Letters, 02B0–02FF -// - U+02C7 ˇ ˇ Caron -// - U+02D8 ˘ ˘ Breve -// - U+02D9 ˙ ˙ Dot Above -// - U+02DA ˚ ˚ Ring Above -// - U+02DB ˛ ˛ Ogonek -// - U+02DC ˜ ˜ Small Tilde -// - U+02DD ˝ ˝ Double Acute Accent -// Latin Extended Additional, 1E00–1EFF +} + +var params = /*#__PURE__*/Object.defineProperty({ + generateOptions: generateOptions_1 +}, '__esModule', { + value: true +}); +/*istanbul ignore start*/ +var word = createCommonjsModule(function (module, exports) { -var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; -var reWhitespace = /\S/; -var wordDiff = new Diff(); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffWords = diffWords; + exports.diffWordsWithSpace = diffWordsWithSpace; + exports.wordDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode + // + // Ranges and exceptions: + // Latin-1 Supplement, 0080–00FF + // - U+00D7 × Multiplication sign + // - U+00F7 ÷ Division sign + // Latin Extended-A, 0100–017F + // Latin Extended-B, 0180–024F + // IPA Extensions, 0250–02AF + // Spacing Modifier Letters, 02B0–02FF + // - U+02C7 ˇ ˇ Caron + // - U+02D8 ˘ ˘ Breve + // - U+02D9 ˙ ˙ Dot Above + // - U+02DA ˚ ˚ Ring Above + // - U+02DB ˛ ˛ Ogonek + // - U+02DC ˜ ˜ Small Tilde + // - U+02DD ˝ ˝ Double Acute Accent + // Latin Extended Additional, 1E00–1EFF + + + var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + var reWhitespace = /\S/; + var wordDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.wordDiff = wordDiff; + /*istanbul ignore end*/ + + wordDiff.equals = function (left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); + }; + + wordDiff.tokenize = function (value) { + // All whitespace symbols except newline group into one token, each newline - in separate token + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + + for (var i = 0; i < tokens.length - 1; i++) { + // If we have an empty string in the next field and we have only word chars before and after, merge + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + + return tokens; + }; + + function diffWords(oldStr, newStr, options) { + options = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, params + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + generateOptions + /*istanbul ignore end*/ + )(options, { + ignoreWhitespace: true + }); + return wordDiff.diff(oldStr, newStr, options); + } -wordDiff.equals = function (left, right) { - if (this.options.ignoreCase) { - left = left.toLowerCase(); - right = right.toLowerCase(); + function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); } +}); + +/*istanbul ignore start*/ +var line$x = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffLines = diffLines; + exports.diffTrimmedLines = diffTrimmedLines; + exports.lineDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var lineDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.lineDiff = lineDiff; + /*istanbul ignore end*/ + + lineDiff.tokenize = function (value) { + var retLines = [], + linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line + + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } // Merge the content and line separators into single tokens - return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); -}; -wordDiff.tokenize = function (value) { - var tokens = value.split(/(\s+|[()[\]{}'"]|\b)/); // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; - for (var i = 0; i < tokens.length - 1; i++) { - // If we have an empty string in the next field and we have only word chars before and after, merge - if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { - tokens[i] += tokens[i + 2]; - tokens.splice(i + 1, 2); - i--; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + + retLines.push(line); + } } + + return retLines; + }; + + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); } - return tokens; -}; + function diffTrimmedLines(oldStr, newStr, callback) { + var options = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, params + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + generateOptions + /*istanbul ignore end*/ + )(callback, { + ignoreWhitespace: true + }); + return lineDiff.diff(oldStr, newStr, options); + } +}); + +/*istanbul ignore start*/ +var sentence = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffSentences = diffSentences; + exports.sentenceDiff = void 0; + /*istanbul ignore end*/ + + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ + + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var sentenceDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.sentenceDiff = sentenceDiff; + /*istanbul ignore end*/ + + sentenceDiff.tokenize = function (value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); + }; + + function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); + } +}); + +/*istanbul ignore start*/ +var css$1 = createCommonjsModule(function (module, exports) { -function diffWords(oldStr, newStr, options) { - options = generateOptions(options, { - ignoreWhitespace: true + Object.defineProperty(exports, "__esModule", { + value: true }); - return wordDiff.diff(oldStr, newStr, options); -} + exports.diffCss = diffCss; + exports.cssDiff = void 0; + /*istanbul ignore end*/ -function diffWordsWithSpace(oldStr, newStr, options) { - return wordDiff.diff(oldStr, newStr, options); -} + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ -var lineDiff = new Diff(); -lineDiff.tokenize = function (value) { - var retLines = [], - linesAndNewlines = value.split(/(\n|\r\n)/); // Ignore the final empty token that occurs if the string ends with a new line + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } // Merge the content and line separators into single tokens + var cssDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; + exports.cssDiff = cssDiff; + /*istanbul ignore end*/ - if (i % 2 && !this.options.newlineIsToken) { - retLines[retLines.length - 1] += line; - } else { - if (this.options.ignoreWhitespace) { - line = line.trim(); - } + cssDiff.tokenize = function (value) { + return value.split(/([{}:;,]|\s+)/); + }; - retLines.push(line); - } + function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); } +}); - return retLines; +var check = function (it) { + return it && it.Math == Math && it; }; -function diffLines(oldStr, newStr, callback) { - return lineDiff.diff(oldStr, newStr, callback); -} +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global$2 = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global$2 == 'object' && global$2) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); -function diffTrimmedLines(oldStr, newStr, callback) { - var options = generateOptions(callback, { - ignoreWhitespace: true - }); - return lineDiff.diff(oldStr, newStr, options); -} +var fails = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +// Detect IE8's incomplete defineProperty implementation +var descriptors$1 = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +var f$4 = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$1(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +var objectPropertyIsEnumerable = { + f: f$4 +}; + +var createPropertyDescriptor = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +var toString$1 = {}.toString; + +var classofRaw = function (it) { + return toString$1.call(it).slice(8, -1); +}; + +var split = ''.split; + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var indexedObject = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); +} : Object; + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +var requireObjectCoercible = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + +// toObject with fallback for non-array-like ES3 strings + + + +var toIndexedObject = function (it) { + return indexedObject(requireObjectCoercible(it)); +}; + +var isObject$3 = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; -var sentenceDiff = new Diff(); +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +var toPrimitive = function (input, PREFERRED_STRING) { + if (!isObject$3(input)) return input; + var fn, val; + if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$3(val = fn.call(input))) return val; + if (typeof (fn = input.valueOf) == 'function' && !isObject$3(val = fn.call(input))) return val; + if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$3(val = fn.call(input))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +var toObject = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + +var hasOwnProperty$b = {}.hasOwnProperty; + +var has$1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty$b.call(toObject(it), key); +}; + +var document = global$2.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject$3(document) && isObject$3(document.createElement); + +var documentCreateElement = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + +// Thank's IE8 for his funny defineProperty +var ie8DomDefine = !descriptors$1 && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- requied for testing + return Object.defineProperty(documentCreateElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +var f$3 = descriptors$1 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (ie8DomDefine) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has$1(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); +}; + +var objectGetOwnPropertyDescriptor = { + f: f$3 +}; -sentenceDiff.tokenize = function (value) { - return value.split(/(\S.+?[.!?])(?=\s+|$)/); +var anObject = function (it) { + if (!isObject$3(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; }; -function diffSentences(oldStr, newStr, callback) { - return sentenceDiff.diff(oldStr, newStr, callback); +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +var f$2 = descriptors$1 ? $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (ie8DomDefine) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +var objectDefineProperty = { + f: f$2 +}; + +var createNonEnumerableProperty = descriptors$1 ? function (object, key, value) { + return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +var setGlobal = function (key, value) { + try { + createNonEnumerableProperty(global$2, key, value); + } catch (error) { + global$2[key] = value; + } return value; +}; + +var SHARED = '__core-js_shared__'; +var store$1 = global$2[SHARED] || setGlobal(SHARED, {}); + +var sharedStore = store$1; + +var functionToString = Function.toString; + +// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper +if (typeof sharedStore.inspectSource != 'function') { + sharedStore.inspectSource = function (it) { + return functionToString.call(it); + }; } -var cssDiff = new Diff(); +var inspectSource = sharedStore.inspectSource; + +var WeakMap$3 = global$2.WeakMap; -cssDiff.tokenize = function (value) { - return value.split(/([{}:;,]|\s+)/); +var nativeWeakMap = typeof WeakMap$3 === 'function' && /native code/.test(inspectSource(WeakMap$3)); + +var shared = createCommonjsModule(function (module) { +(module.exports = function (key, value) { + return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.14.0', + mode: 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); +}); + +var id = 0; +var postfix = Math.random(); + +var uid$1 = function (key) { + return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); +}; + +var keys$1 = shared('keys'); + +var sharedKey = function (key) { + return keys$1[key] || (keys$1[key] = uid$1(key)); }; -function diffCss(oldStr, newStr, callback) { - return cssDiff.diff(oldStr, newStr, callback); +var hiddenKeys$1 = {}; + +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var WeakMap$2 = global$2.WeakMap; +var set$1, get$2, has; + +var enforce = function (it) { + return has(it) ? get$2(it) : set$1(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$3(it) || (state = get$2(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (nativeWeakMap || sharedStore.state) { + var store = sharedStore.state || (sharedStore.state = new WeakMap$2()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set$1 = function (it, metadata) { + if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; + }; + get$2 = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys$1[STATE] = true; + set$1 = function (it, metadata) { + if (has$1(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get$2 = function (it) { + return has$1(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return has$1(it, STATE); + }; } -function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; +var internalState = { + set: set$1, + get: get$2, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +var redefine = createCommonjsModule(function (module) { +var getInternalState = internalState.get; +var enforceInternalState = internalState.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var state; + if (typeof value == 'function') { + if (typeof key == 'string' && !has$1(value, 'name')) { + createNonEnumerableProperty(value, 'name', key); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } } + if (O === global$2) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +}); +}); - return _typeof(obj); -} +var path$4 = global$2; -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); -} +var aFunction$1 = function (variable) { + return typeof variable == 'function' ? variable : undefined; +}; + +var getBuiltIn = function (namespace, method) { + return arguments.length < 2 ? aFunction$1(path$4[namespace]) || aFunction$1(global$2[namespace]) + : path$4[namespace] && path$4[namespace][method] || global$2[namespace] && global$2[namespace][method]; +}; + +var ceil = Math.ceil; +var floor$1 = Math.floor; + +// `ToInteger` abstract operation +// https://tc39.es/ecma262/#sec-tointeger +var toInteger = function (argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$1 : ceil)(argument); +}; + +var min$1 = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +var toLength = function (argument) { + return argument > 0 ? min$1(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +var toAbsoluteIndex = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +var arrayIncludes$1 = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + +var indexOf = arrayIncludes$1.indexOf; -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - return arr2; +var objectKeysInternal = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has$1(O, key = names[i++])) { + ~indexOf(result, key) || result.push(key); } -} + return result; +}; -function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); -} +// IE8- don't enum bug keys +var enumBugKeys = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); -} +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe +var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return objectKeysInternal(O, hiddenKeys); +}; + +var objectGetOwnPropertyNames = { + f: f$1 +}; + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe +var f = Object.getOwnPropertySymbols; + +var objectGetOwnPropertySymbols = { + f: f +}; + +// all object keys, includes non-enumerable and symbols +var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = objectGetOwnPropertyNames.f(anObject(it)); + var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; +}; -var objectPrototypeToString = Object.prototype.toString; -var jsonDiff = new Diff(); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a -// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: +var copyConstructorProperties = function (target, source) { + var keys = ownKeys(source); + var defineProperty = objectDefineProperty.f; + var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } +}; -jsonDiff.useLongestToken = true; -jsonDiff.tokenize = lineDiff.tokenize; +var replacement = /#|\.prototype\./; -jsonDiff.castInput = function (value) { - var _this$options = this.options, - undefinedReplacement = _this$options.undefinedReplacement, - _this$options$stringi = _this$options.stringifyReplacer, - stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) { - return typeof v === 'undefined' ? undefinedReplacement : v; - } : _this$options$stringi; - return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); +var isForced = function (feature, detection) { + var value = data$3[normalize$3(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : typeof detection == 'function' ? fails(detection) + : !!detection; }; -jsonDiff.equals = function (left, right) { - return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')); +var normalize$3 = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); }; -function diffJson(oldObj, newObj, options) { - return jsonDiff.diff(oldObj, newObj, options); -} // This function handles the presence of circular references by bailing out when encountering an -// object that is already on the "stack" of items being processed. Accepts an optional replacer +var data$3 = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +var isForced_1 = isForced; + +var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; + -function canonicalize(obj, stack, replacementStack, replacer, key) { - stack = stack || []; - replacementStack = replacementStack || []; - if (replacer) { - obj = replacer(key, obj); + + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global$2; + } else if (STATIC) { + target = global$2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global$2[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); } +}; - var i; +var aFunction = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; +}; + +// TODO: use something more complex like timsort? +var floor = Math.floor; + +var mergeSort = function (array, comparefn) { + var length = array.length; + var middle = floor(length / 2); + return length < 8 ? insertionSort(array, comparefn) : merge$1( + mergeSort(array.slice(0, middle), comparefn), + mergeSort(array.slice(middle), comparefn), + comparefn + ); +}; - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; +var insertionSort = function (array, comparefn) { + var length = array.length; + var i = 1; + var element, j; + + while (i < length) { + j = i; + element = array[i]; + while (j && comparefn(array[j - 1], element) > 0) { + array[j] = array[--j]; + } + if (j !== i++) array[j] = element; + } return array; +}; + +var merge$1 = function (left, right, comparefn) { + var llength = left.length; + var rlength = right.length; + var lindex = 0; + var rindex = 0; + var result = []; + + while (lindex < llength || rindex < rlength) { + if (lindex < llength && rindex < rlength) { + result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]); + } else { + result.push(lindex < llength ? left[lindex++] : right[rindex++]); } + } return result; +}; + +var arraySort = mergeSort; + +var arrayMethodIsStrict = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing + method.call(null, argument || function () { throw 1; }, 1); + }); +}; + +var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; + +var firefox = engineUserAgent.match(/firefox\/(\d+)/i); + +var engineFfVersion = !!firefox && +firefox[1]; + +var engineIsIeOrEdge = /MSIE|Trident/.test(engineUserAgent); + +var process$3 = global$2.process; +var versions = process$3 && process$3.versions; +var v8$2 = versions && versions.v8; +var match$1, version$2; + +if (v8$2) { + match$1 = v8$2.split('.'); + version$2 = match$1[0] < 4 ? 1 : match$1[0] + match$1[1]; +} else if (engineUserAgent) { + match$1 = engineUserAgent.match(/Edge\/(\d+)/); + if (!match$1 || match$1[1] >= 74) { + match$1 = engineUserAgent.match(/Chrome\/(\d+)/); + if (match$1) version$2 = match$1[1]; } +} + +var engineV8Version = version$2 && +version$2; + +var webkit = engineUserAgent.match(/AppleWebKit\/(\d+)\./); + +var engineWebkitVersion = !!webkit && +webkit[1]; + +var test$1 = []; +var nativeSort = test$1.sort; - var canonicalizedObj; +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test$1.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test$1.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var STABLE_SORT = !fails(function () { + // feature detection can be too slow, so check engines versions + if (engineV8Version) return engineV8Version < 70; + if (engineFfVersion && engineFfVersion > 3) return; + if (engineIsIeOrEdge) return true; + if (engineWebkitVersion) return engineWebkitVersion < 603; + + var result = ''; + var code, chr, value, index; - if ('[object Array]' === objectPrototypeToString.call(obj)) { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); + // generate an array with more 512 elements (Chakra and old V8 fails only in this case) + for (code = 65; code < 76; code++) { + chr = String.fromCharCode(code); - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); + switch (code) { + case 66: case 69: case 70: case 72: value = 3; break; + case 68: case 71: value = 4; break; + default: value = 2; } - stack.pop(); - replacementStack.pop(); - return canonicalizedObj; + for (index = 0; index < 47; index++) { + test$1.push({ k: chr + index, v: value }); + } + } + + test$1.sort(function (a, b) { return b.v - a.v; }); + + for (index = 0; index < test$1.length; index++) { + chr = test$1[index].k.charAt(0); + if (result.charAt(result.length - 1) !== chr) result += chr; } - if (obj && obj.toJSON) { - obj = obj.toJSON(); + return result !== 'DGBEFHACIJK'; +}); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; + +var getSortCompare = function (comparefn) { + return function (x, y) { + if (y === undefined) return -1; + if (x === undefined) return 1; + if (comparefn !== undefined) return +comparefn(x, y) || 0; + return String(x) > String(y) ? 1 : -1; + }; +}; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +_export({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + if (comparefn !== undefined) aFunction(comparefn); + + var array = toObject(this); + + if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn); + + var items = []; + var arrayLength = toLength(array.length); + var itemsLength, index; + + for (index = 0; index < arrayLength; index++) { + if (index in array) items.push(array[index]); + } + + items = arraySort(items, getSortCompare(comparefn)); + itemsLength = items.length; + index = 0; + + while (index < itemsLength) array[index] = items[index++]; + while (index < arrayLength) delete array[index++]; + + return array; } +}); + +var json = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffJson = diffJson; + exports.canonicalize = canonicalize; + exports.jsonDiff = void 0; + /*istanbul ignore end*/ - if (_typeof(obj) === 'object' && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ - var sortedKeys = [], - _key; - for (_key in obj) { - /* istanbul ignore else */ - if (obj.hasOwnProperty(_key)) { - sortedKeys.push(_key); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + /*istanbul ignore end*/ + + + var objectPrototypeToString = Object.prototype.toString; + var jsonDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a + // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: + + /*istanbul ignore start*/ + + exports.jsonDiff = jsonDiff; + /*istanbul ignore end*/ + + jsonDiff.useLongestToken = true; + jsonDiff.tokenize = + /*istanbul ignore start*/ + line$x + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + lineDiff + /*istanbul ignore end*/ + .tokenize; + + jsonDiff.castInput = function (value) { + /*istanbul ignore start*/ + var _this$options = + /*istanbul ignore end*/ + this.options, + undefinedReplacement = _this$options.undefinedReplacement, + _this$options$stringi = _this$options.stringifyReplacer, + stringifyReplacer = _this$options$stringi === void 0 ? function (k, v) + /*istanbul ignore start*/ + { + return ( + /*istanbul ignore end*/ + typeof v === 'undefined' ? undefinedReplacement : v + ); + } : _this$options$stringi; + return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); + }; + + jsonDiff.equals = function (left, right) { + return ( + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) + ); + }; + + function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); + } // This function handles the presence of circular references by bailing out when encountering an + // object that is already on the "stack" of items being processed. Accepts an optional replacer + + + function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + + if (replacer) { + obj = replacer(key, obj); + } + + var i; + + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + + var canonicalizedObj; + + if ('[object Array]' === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); } + + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + + if (obj && obj.toJSON) { + obj = obj.toJSON(); } - sortedKeys.sort(); + if ( + /*istanbul ignore start*/ + _typeof( + /*istanbul ignore end*/ + obj) === 'object' && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + + var sortedKeys = [], + _key; + + for (_key in obj) { + /* istanbul ignore else */ + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + + sortedKeys.sort(); + + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } - for (i = 0; i < sortedKeys.length; i += 1) { - _key = sortedKeys[i]; - canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; } - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; + return canonicalizedObj; } +}); - return canonicalizedObj; -} +/*istanbul ignore start*/ +var array$5 = createCommonjsModule(function (module, exports) { -var arrayDiff = new Diff(); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffArrays = diffArrays; + exports.arrayDiff = void 0; + /*istanbul ignore end*/ -arrayDiff.tokenize = function (value) { - return value.slice(); -}; + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ -arrayDiff.join = arrayDiff.removeEmpty = function (value) { - return value; -}; -function diffArrays(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); -} + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; + } + /*istanbul ignore end*/ + + + var arrayDiff = new + /*istanbul ignore start*/ + _base + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ](); + /*istanbul ignore start*/ + + exports.arrayDiff = arrayDiff; + /*istanbul ignore end*/ + + arrayDiff.tokenize = function (value) { + return value.slice(); + }; + + arrayDiff.join = arrayDiff.removeEmpty = function (value) { + return value; + }; + + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); + } +}); + +/*istanbul ignore start*/ + +var parsePatch_1 = parsePatch; +/*istanbul ignore end*/ function parsePatch(uniDiff) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + /*istanbul ignore start*/ + var + /*istanbul ignore end*/ + options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], list = [], @@ -828,17 +1741,28 @@ function parsePatch(uniDiff) { chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); var hunk = { oldStart: +chunkHeader[1], - oldLines: +chunkHeader[2] || 1, + oldLines: typeof chunkHeader[2] === 'undefined' ? 1 : +chunkHeader[2], newStart: +chunkHeader[3], - newLines: +chunkHeader[4] || 1, + newLines: typeof chunkHeader[4] === 'undefined' ? 1 : +chunkHeader[4], lines: [], linedelimiters: [] - }; - var addCount = 0, - removeCount = 0; + }; // Unified Diff Format quirk: If the chunk size is 0, + // the first number is one lower than one would expect. + // https://www.artima.com/weblogs/viewpost.jsp?thread=164293 - for (; i < diffstr.length; i++) { - // Lines starting with '---' could be mistaken for the "remove line" operation + if (hunk.oldLines === 0) { + hunk.oldStart += 1; + } + + if (hunk.newLines === 0) { + hunk.newStart += 1; + } + + var addCount = 0, + removeCount = 0; + + for (; i < diffstr.length; i++) { + // Lines starting with '---' could be mistaken for the "remove line" operation // But they could be the header for the next file. Therefore prune such cases out. if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { break; @@ -891,57 +1815,113 @@ function parsePatch(uniDiff) { } return list; -} // Iterator that traverses in the range of [min, max], stepping -// by distance from a given start position. I.e. for [0, 4], with -// start of 2, this will iterate 2, 3, 1, 4, 0. - - -function distanceIterator(start, minLine, maxLine) { - var wantForward = true, - backwardExhausted = false, - forwardExhausted = false, - localOffset = 1; - return function iterator() { - if (wantForward && !forwardExhausted) { - if (backwardExhausted) { - localOffset++; - } else { - wantForward = false; - } // Check if trying to fit beyond text length, and if not, check it fits - // after offset location (or desired location on first iteration) +} +var parse$b = /*#__PURE__*/Object.defineProperty({ + parsePatch: parsePatch_1 +}, '__esModule', { + value: true +}); - if (start + localOffset <= maxLine) { - return localOffset; - } +/*istanbul ignore start*/ +var distanceIterator = createCommonjsModule(function (module, exports) { - forwardExhausted = true; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = _default; + /*istanbul ignore end*/ + // Iterator that traverses in the range of [min, max], stepping + // by distance from a given start position. I.e. for [0, 4], with + // start of 2, this will iterate 2, 3, 1, 4, 0. + + function + /*istanbul ignore start*/ + _default + /*istanbul ignore end*/ + (start, minLine, maxLine) { + var wantForward = true, + backwardExhausted = false, + forwardExhausted = false, + localOffset = 1; + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } // Check if trying to fit beyond text length, and if not, check it fits + // after offset location (or desired location on first iteration) - if (!backwardExhausted) { - if (!forwardExhausted) { - wantForward = true; - } // Check if trying to fit before text beginning, and if not, check it fits - // before offset location + if (start + localOffset <= maxLine) { + return localOffset; + } - if (minLine <= start - localOffset) { - return -localOffset++; + forwardExhausted = true; } - backwardExhausted = true; - return iterator(); - } // We tried to fit hunk before text beginning and beyond text length, then - // hunk can't fit on the text. Return undefined + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } // Check if trying to fit before text beginning, and if not, check it fits + // before offset location + + if (minLine <= start - localOffset) { + return -localOffset++; + } + + backwardExhausted = true; + return iterator(); + } // We tried to fit hunk before text beginning and beyond text length, then + // hunk can't fit on the text. Return undefined + + }; + } +}); + +/*istanbul ignore start*/ + +var applyPatch_1 = applyPatch; +var applyPatches_1 = applyPatches; +/*istanbul ignore end*/ + +var +/*istanbul ignore start*/ +_distanceIterator = _interopRequireDefault$1(distanceIterator) +/*istanbul ignore end*/ +; +/*istanbul ignore start*/ + + +function _interopRequireDefault$1(obj) { + return obj && obj.__esModule ? obj : { + "default": obj }; } +/*istanbul ignore end*/ + function applyPatch(source, uniDiff) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + /*istanbul ignore start*/ + var + /*istanbul ignore end*/ + options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (typeof uniDiff === 'string') { - uniDiff = parsePatch(uniDiff); + uniDiff = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, parse$b + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + parsePatch + /*istanbul ignore end*/ + )(uniDiff); } if (Array.isArray(uniDiff)) { @@ -956,8 +1936,13 @@ function applyPatch(source, uniDiff) { var lines = source.split(/\r\n|[\n\v\f\r\x85]/), delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], hunks = uniDiff.hunks, - compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) { - return line === patchContent; + compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) + /*istanbul ignore start*/ + { + return ( + /*istanbul ignore end*/ + line === patchContent + ); }, errorCount = 0, fuzzFactor = options.fuzzFactor || 0, @@ -999,7 +1984,18 @@ function applyPatch(source, uniDiff) { maxLine = lines.length - hunk.oldLines, localOffset = 0, toPos = offset + hunk.oldStart - 1; - var iterator = distanceIterator(toPos, minLine, maxLine); + var iterator = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, _distanceIterator + /*istanbul ignore end*/ + [ + /*istanbul ignore start*/ + "default" + /*istanbul ignore end*/ + ])(toPos, minLine, maxLine); for (; localOffset !== undefined; localOffset = iterator()) { if (hunkFits(hunk, toPos + localOffset)) { @@ -1026,11 +2022,6 @@ function applyPatch(source, uniDiff) { diffOffset += _hunk.newLines - _hunk.oldLines; - if (_toPos < 0) { - // Creating a new file - _toPos = 0; - } - for (var j = 0; j < _hunk.lines.length; j++) { var line = _hunk.lines[j], operation = line.length > 0 ? line[0] : ' ', @@ -1080,7 +2071,18 @@ function applyPatch(source, uniDiff) { function applyPatches(uniDiff, options) { if (typeof uniDiff === 'string') { - uniDiff = parsePatch(uniDiff); + uniDiff = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, parse$b + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + parsePatch + /*istanbul ignore end*/ + )(uniDiff); } var currentIndex = 0; @@ -1111,6 +2113,60 @@ function applyPatches(uniDiff, options) { processIndex(); } +var apply = /*#__PURE__*/Object.defineProperty({ + applyPatch: applyPatch_1, + applyPatches: applyPatches_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var structuredPatch_1 = structuredPatch; +var formatPatch_1 = formatPatch; +var createTwoFilesPatch_1 = createTwoFilesPatch; +var createPatch_1 = createPatch; +/*istanbul ignore end*/ + +/*istanbul ignore start*/ + +function _toConsumableArray$1(arr) { + return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); +} + +function _nonIterableSpread$1() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _unsupportedIterableToArray$1(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); +} + +function _iterableToArray$1(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _arrayWithoutHoles$1(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); +} + +function _arrayLikeToArray$1(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} +/*istanbul ignore end*/ + + function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { if (!options) { options = {}; @@ -1120,7 +2176,18 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne options.context = 4; } - var diff = diffLines(oldStr, newStr, options); + var diff = + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, line$x + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + diffLines + /*istanbul ignore end*/ + )(oldStr, newStr, options); diff.push({ value: '', lines: [] @@ -1138,14 +2205,20 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne curRange = [], oldLine = 1, newLine = 1; + /*istanbul ignore start*/ - var _loop = function _loop(i) { + var _loop = function _loop( + /*istanbul ignore end*/ + i) { var current = diff[i], lines = current.lines || current.value.replace(/\n$/, '').split('\n'); current.lines = lines; if (current.added || current.removed) { - var _curRange; // If we have previous context, start with that + /*istanbul ignore start*/ + var _curRange; + /*istanbul ignore end*/ + // If we have previous context, start with that if (!oldRangeStart) { @@ -1160,8 +2233,24 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne } } // Output our changes + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + - (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function (entry) { + (_curRange = + /*istanbul ignore end*/ + curRange).push.apply( + /*istanbul ignore start*/ + _curRange + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray$1( + /*istanbul ignore end*/ + lines.map(function (entry) { return (current.added ? '+' : '-') + entry; }))); // Track the updated file position @@ -1176,17 +2265,54 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne if (oldRangeStart) { // Close out any changes that have been output (or join overlapping) if (lines.length <= options.context * 2 && i < diff.length - 2) { - var _curRange2; // Overlapping + /*istanbul ignore start*/ + var _curRange2; + /*istanbul ignore end*/ + // Overlapping + /*istanbul ignore start*/ - (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + + (_curRange2 = + /*istanbul ignore end*/ + curRange).push.apply( + /*istanbul ignore start*/ + _curRange2 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray$1( + /*istanbul ignore end*/ + contextLines(lines))); } else { - var _curRange3; // end the range and output + /*istanbul ignore start*/ + var _curRange3; + /*istanbul ignore end*/ + // end the range and output var contextSize = Math.min(lines.length, options.context); + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + + /*istanbul ignore start*/ - (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + (_curRange3 = + /*istanbul ignore end*/ + curRange).push.apply( + /*istanbul ignore start*/ + _curRange3 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray$1( + /*istanbul ignore end*/ + contextLines(lines.slice(0, contextSize)))); var hunk = { oldStart: oldRangeStart, @@ -1202,8 +2328,9 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne var newEOFNewline = /\n$/.test(newStr); var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; - if (!oldEOFNewline && noNlBeforeAdds) { + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { // special case: old has no eol and no trailing context; no-nl can end up before adds + // however, if the old file is empty, do not output the no-nl line curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); } @@ -1225,7 +2352,10 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne }; for (var i = 0; i < diff.length; i++) { - _loop(i); + /*istanbul ignore start*/ + _loop( + /*istanbul ignore end*/ + i); } return { @@ -1237,12 +2367,11 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne }; } -function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); +function formatPatch(diff) { var ret = []; - if (oldFileName == newFileName) { - ret.push('Index: ' + oldFileName); + if (diff.oldFileName == diff.newFileName) { + ret.push('Index: ' + diff.oldFileName); } ret.push('==================================================================='); @@ -1250,7 +2379,18 @@ function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); for (var i = 0; i < diff.hunks.length; i++) { - var hunk = diff.hunks[i]; + var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0, + // the first number is one lower than one would expect. + // https://www.artima.com/weblogs/viewpost.jsp?thread=164293 + + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); ret.push.apply(ret, hunk.lines); } @@ -1258,10 +2398,29 @@ function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader return ret.join('\n') + '\n'; } +function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); +} + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); } +var create = /*#__PURE__*/Object.defineProperty({ + structuredPatch: structuredPatch_1, + formatPatch: formatPatch_1, + createTwoFilesPatch: createTwoFilesPatch_1, + createPatch: createPatch_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var arrayEqual_1 = arrayEqual; +var arrayStartsWith_1 = arrayStartsWith; +/*istanbul ignore end*/ + function arrayEqual(a, b) { if (a.length !== b.length) { return false; @@ -1284,8 +2443,63 @@ function arrayStartsWith(array, start) { return true; } +var array$4 = /*#__PURE__*/Object.defineProperty({ + arrayEqual: arrayEqual_1, + arrayStartsWith: arrayStartsWith_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var calcLineCount_1 = calcLineCount; +var merge_2 = merge; +/*istanbul ignore end*/ + +/*istanbul ignore start*/ + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} +/*istanbul ignore end*/ + + function calcLineCount(hunk) { - var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines), + /*istanbul ignore start*/ + var _calcOldNewLineCount = + /*istanbul ignore end*/ + calcOldNewLineCount(hunk.lines), oldLines = _calcOldNewLineCount.oldLines, newLines = _calcOldNewLineCount.newLines; @@ -1381,14 +2595,38 @@ function merge(mine, theirs, base) { function loadPatch(param, base) { if (typeof param === 'string') { if (/^@@/m.test(param) || /^Index:/m.test(param)) { - return parsePatch(param)[0]; + return ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, parse$b + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + parsePatch + /*istanbul ignore end*/ + )(param)[0] + ); } if (!base) { throw new Error('Must provide a base reference or pass in a patch'); } - return structuredPatch(undefined, undefined, base, param); + return ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, create + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + structuredPatch + /*istanbul ignore end*/ + )(undefined, undefined, base, param) + ); } return param; @@ -1449,15 +2687,53 @@ function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { // Both modified ... mutualChange(hunk, mine, their); } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { - var _hunk$lines; // Mine inserted + /*istanbul ignore start*/ + var _hunk$lines; + /*istanbul ignore end*/ + // Mine inserted + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + + /*istanbul ignore start*/ - (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine))); + (_hunk$lines = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + collectChange(mine))); } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { - var _hunk$lines2; // Theirs inserted + /*istanbul ignore start*/ + var _hunk$lines2; + /*istanbul ignore end*/ + // Theirs inserted + /*istanbul ignore start*/ - (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their))); + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + + (_hunk$lines2 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines2 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + collectChange(their))); } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { // Mine removed or edited removal(hunk, mine, their); @@ -1487,23 +2763,113 @@ function mutualChange(hunk, mine, their) { if (allRemoves(myChanges) && allRemoves(theirChanges)) { // Special case for remove changes that are supersets of one another - if (arrayStartsWith(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + if ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, array$4 + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + arrayStartsWith + /*istanbul ignore end*/ + )(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + /*istanbul ignore start*/ var _hunk$lines3; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ - (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges)); + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + + (_hunk$lines3 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines3 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + myChanges)); return; - } else if (arrayStartsWith(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + } else if ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, array$4 + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + arrayStartsWith + /*istanbul ignore end*/ + )(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + /*istanbul ignore start*/ var _hunk$lines4; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ - (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges)); + /*istanbul ignore start*/ + + + (_hunk$lines4 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines4 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + theirChanges)); return; } - } else if (arrayEqual(myChanges, theirChanges)) { + } else if ( + /*istanbul ignore start*/ + (/*istanbul ignore end*/ + + /*istanbul ignore start*/ + 0, array$4 + /*istanbul ignore end*/ + . + /*istanbul ignore start*/ + arrayEqual + /*istanbul ignore end*/ + )(myChanges, theirChanges)) { + /*istanbul ignore start*/ var _hunk$lines5; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + + /*istanbul ignore start*/ - (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges)); + + (_hunk$lines5 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines5 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + myChanges)); return; } @@ -1516,9 +2882,28 @@ function removal(hunk, mine, their, swap) { theirChanges = collectContext(their, myChanges); if (theirChanges.merged) { + /*istanbul ignore start*/ var _hunk$lines6; + /*istanbul ignore end*/ + + /*istanbul ignore start*/ + + /*istanbul ignore end*/ + + /*istanbul ignore start*/ - (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged)); + + (_hunk$lines6 = + /*istanbul ignore end*/ + hunk.lines).push.apply( + /*istanbul ignore start*/ + _hunk$lines6 + /*istanbul ignore end*/ + , + /*istanbul ignore start*/ + _toConsumableArray( + /*istanbul ignore end*/ + theirChanges.merged)); } else { conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); } @@ -1681,8 +3066,20 @@ function calcOldNewLineCount(lines) { oldLines: oldLines, newLines: newLines }; -} // See: http://code.google.com/p/google-diff-match-patch/wiki/API +} + +var merge_1 = /*#__PURE__*/Object.defineProperty({ + calcLineCount: calcLineCount_1, + merge: merge_2 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ +var convertChangesToDMP_1 = convertChangesToDMP; +/*istanbul ignore end*/ +// See: http://code.google.com/p/google-diff-match-patch/wiki/API function convertChangesToDMP(changes) { var ret = [], @@ -1706,6 +3103,17 @@ function convertChangesToDMP(changes) { return ret; } +var dmp = /*#__PURE__*/Object.defineProperty({ + convertChangesToDMP: convertChangesToDMP_1 +}, '__esModule', { + value: true +}); + +/*istanbul ignore start*/ + +var convertChangesToXML_1 = convertChangesToXML; +/*istanbul ignore end*/ + function convertChangesToXML(changes) { var ret = []; @@ -1739,279 +3147,158 @@ function escapeHTML(s) { return n; } -var index_es6 = /*#__PURE__*/Object.freeze({ - __proto__: null, - Diff: Diff, - diffChars: diffChars, - diffWords: diffWords, - diffWordsWithSpace: diffWordsWithSpace, - diffLines: diffLines, - diffTrimmedLines: diffTrimmedLines, - diffSentences: diffSentences, - diffCss: diffCss, - diffJson: diffJson, - diffArrays: diffArrays, - structuredPatch: structuredPatch, - createTwoFilesPatch: createTwoFilesPatch, - createPatch: createPatch, - applyPatch: applyPatch, - applyPatches: applyPatches, - parsePatch: parsePatch, - merge: merge, - convertChangesToDMP: convertChangesToDMP, - convertChangesToXML: convertChangesToXML, - canonicalize: canonicalize +var xml = /*#__PURE__*/Object.defineProperty({ + convertChangesToXML: convertChangesToXML_1 +}, '__esModule', { + value: true }); -/** - * @param {Doc[]} parts - * @returns Doc - */ - - -function concat(parts) { - // access the internals of a document directly. - // if(parts.length === 1) { - // // If it's a single document, no need to concat it. - // return parts[0]; - // } - - - return { - type: "concat", - parts - }; -} -/** - * @param {Doc} contents - * @returns Doc - */ - +/*istanbul ignore start*/ +var lib$6 = createCommonjsModule(function (module, exports) { -function indent(contents) { - - return { - type: "indent", - contents - }; -} -/** - * @param {number | string} n - * @param {Doc} contents - * @returns Doc - */ - - -function align(n, contents) { - - return { - type: "align", - contents, - n - }; -} -/** - * @param {Doc} contents - * @param {object} [opts] - TBD ??? - * @returns Doc - */ - - -function group(contents, opts) { - opts = opts || {}; - - return { - type: "group", - id: opts.id, - contents, - break: !!opts.shouldBreak, - expandedStates: opts.expandedStates - }; -} -/** - * @param {Doc} contents - * @returns Doc - */ - - -function dedentToRoot(contents) { - return align(-Infinity, contents); -} -/** - * @param {Doc} contents - * @returns Doc - */ - - -function markAsRoot(contents) { - // @ts-ignore - TBD ???: - return align({ - type: "root" - }, contents); -} -/** - * @param {Doc} contents - * @returns Doc - */ - - -function dedent(contents) { - return align(-1, contents); -} -/** - * @param {Doc[]} states - * @param {object} [opts] - TBD ??? - * @returns Doc - */ - - -function conditionalGroup(states, opts) { - return group(states[0], Object.assign({}, opts, { - expandedStates: states - })); -} -/** - * @param {Doc[]} parts - * @returns Doc - */ - - -function fill(parts) { - - return { - type: "fill", - parts - }; -} -/** - * @param {Doc} [breakContents] - * @param {Doc} [flatContents] - * @param {object} [opts] - TBD ??? - * @returns Doc - */ - - -function ifBreak(breakContents, flatContents, opts) { - opts = opts || {}; - - return { - type: "if-break", - breakContents, - flatContents, - groupId: opts.groupId - }; -} -/** - * @param {Doc} contents - * @returns Doc - */ - - -function lineSuffix(contents) { - - return { - type: "line-suffix", - contents - }; -} - -const lineSuffixBoundary = { - type: "line-suffix-boundary" -}; -const breakParent = { - type: "break-parent" -}; -const trim = { - type: "trim" -}; -const line = { - type: "line" -}; -const softline = { - type: "line", - soft: true -}; -const hardline = concat([{ - type: "line", - hard: true -}, breakParent]); -const literalline = concat([{ - type: "line", - hard: true, - literal: true -}, breakParent]); -const cursor = { - type: "cursor", - placeholder: Symbol("cursor") -}; -/** - * @param {Doc} sep - * @param {Doc[]} arr - * @returns Doc - */ - -function join(sep, arr) { - const res = []; - - for (let i = 0; i < arr.length; i++) { - if (i !== 0) { - res.push(sep); + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "Diff", { + enumerable: true, + get: function get() { + return _base["default"]; } + }); + Object.defineProperty(exports, "diffChars", { + enumerable: true, + get: function get() { + return character.diffChars; + } + }); + Object.defineProperty(exports, "diffWords", { + enumerable: true, + get: function get() { + return word.diffWords; + } + }); + Object.defineProperty(exports, "diffWordsWithSpace", { + enumerable: true, + get: function get() { + return word.diffWordsWithSpace; + } + }); + Object.defineProperty(exports, "diffLines", { + enumerable: true, + get: function get() { + return line$x.diffLines; + } + }); + Object.defineProperty(exports, "diffTrimmedLines", { + enumerable: true, + get: function get() { + return line$x.diffTrimmedLines; + } + }); + Object.defineProperty(exports, "diffSentences", { + enumerable: true, + get: function get() { + return sentence.diffSentences; + } + }); + Object.defineProperty(exports, "diffCss", { + enumerable: true, + get: function get() { + return css$1.diffCss; + } + }); + Object.defineProperty(exports, "diffJson", { + enumerable: true, + get: function get() { + return json.diffJson; + } + }); + Object.defineProperty(exports, "canonicalize", { + enumerable: true, + get: function get() { + return json.canonicalize; + } + }); + Object.defineProperty(exports, "diffArrays", { + enumerable: true, + get: function get() { + return array$5.diffArrays; + } + }); + Object.defineProperty(exports, "applyPatch", { + enumerable: true, + get: function get() { + return apply.applyPatch; + } + }); + Object.defineProperty(exports, "applyPatches", { + enumerable: true, + get: function get() { + return apply.applyPatches; + } + }); + Object.defineProperty(exports, "parsePatch", { + enumerable: true, + get: function get() { + return parse$b.parsePatch; + } + }); + Object.defineProperty(exports, "merge", { + enumerable: true, + get: function get() { + return merge_1.merge; + } + }); + Object.defineProperty(exports, "structuredPatch", { + enumerable: true, + get: function get() { + return create.structuredPatch; + } + }); + Object.defineProperty(exports, "createTwoFilesPatch", { + enumerable: true, + get: function get() { + return create.createTwoFilesPatch; + } + }); + Object.defineProperty(exports, "createPatch", { + enumerable: true, + get: function get() { + return create.createPatch; + } + }); + Object.defineProperty(exports, "convertChangesToDMP", { + enumerable: true, + get: function get() { + return dmp.convertChangesToDMP; + } + }); + Object.defineProperty(exports, "convertChangesToXML", { + enumerable: true, + get: function get() { + return xml.convertChangesToXML; + } + }); + /*istanbul ignore end*/ - res.push(arr[i]); - } - - return concat(res); -} -/** - * @param {Doc} doc - * @param {number} size - * @param {number} tabWidth - */ - - -function addAlignmentToDoc(doc, size, tabWidth) { - let aligned = doc; - - if (size > 0) { - // Use indent to add tabs for all the levels of tabs we need - for (let i = 0; i < Math.floor(size / tabWidth); ++i) { - aligned = indent(aligned); - } // Use align for all the spaces that are needed - + var + /*istanbul ignore start*/ + _base = _interopRequireDefault(base$1) + /*istanbul ignore end*/ + ; + /*istanbul ignore start*/ - aligned = align(size % tabWidth, aligned); // size is absolute from 0 and not relative to the current - // indentation, so we use -Infinity to reset the indentation to 0 - aligned = align(-Infinity, aligned); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; } + /*istanbul ignore end*/ - return aligned; -} +}); -var docBuilders = { - concat, - join, - line, - softline, - hardline, - literalline, - group, - conditionalGroup, - fill, - lineSuffix, - lineSuffixBoundary, - cursor, - breakParent, - ifBreak, - trim, - indent, - align, - addAlignmentToDoc, - markAsRoot, - dedentToRoot, - dedent -}; +var doc = require("./doc.js"); var ansiRegex = ({ onlyFirst = false @@ -2054,8 +3341,8 @@ const isFullwidthCodePoint = codePoint => { }; var isFullwidthCodePoint_1 = isFullwidthCodePoint; -var _default = isFullwidthCodePoint; -isFullwidthCodePoint_1.default = _default; +var _default$r = isFullwidthCodePoint; +isFullwidthCodePoint_1.default = _default$r; var emojiRegex = function () { // https://mths.be/emoji @@ -2063,13 +3350,17 @@ var emojiRegex = function () { }; const stringWidth = string => { - string = string.replace(emojiRegex(), ' '); - if (typeof string !== 'string' || string.length === 0) { return 0; } string = stripAnsi(string); + + if (string.length === 0) { + return 0; + } + + string = string.replace(emojiRegex(), ' '); let width = 0; for (let i = 0; i < string.length; i++) { @@ -2097,10 +3388,10 @@ const stringWidth = string => { var stringWidth_1 = stringWidth; // TODO: remove this in the next major version -var _default$1 = stringWidth; -stringWidth_1.default = _default$1; +var _default$q = stringWidth; +stringWidth_1.default = _default$q; -var escapeStringRegexp = string => { +var escapeStringRegexp$2 = string => { if (typeof string !== 'string') { throw new TypeError('Expected a string'); } // Escape characters with special meaning either inside or outside character sets. @@ -2110,7 +3401,9 @@ var escapeStringRegexp = string => { return string.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d'); }; -var getLast = arr => arr[arr.length - 1]; +const getLast$e = arr => arr[arr.length - 1]; + +var getLast_1 = getLast$e; function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; @@ -2127,47 +3420,296 @@ function _objectWithoutPropertiesLoose(source, excluded) { return target; } +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +// eslint-disable-next-line es/no-array-isarray -- safe +var isArray$3 = Array.isArray || function isArray(arg) { + return classofRaw(arg) == 'Array'; +}; + +// optional / simple context binding +var functionBindContext = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + +// `FlattenIntoArray` abstract operation +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? functionBindContext(mapper, thisArg, 3) : false; + var element; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + if (depth > 0 && isArray$3(element)) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length'); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +}; + +var flattenIntoArray_1 = flattenIntoArray; + +/* eslint-disable es/no-symbol -- required for testing */ + +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && engineV8Version && engineV8Version < 41; +}); + +/* eslint-disable es/no-symbol -- required for testing */ + +var useSymbolAsUid = nativeSymbol + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + +var WellKnownSymbolsStore = shared('wks'); +var Symbol$2 = global$2.Symbol; +var createWellKnownSymbol = useSymbolAsUid ? Symbol$2 : Symbol$2 && Symbol$2.withoutSetter || uid$1; + +var wellKnownSymbol = function (name) { + if (!has$1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) { + if (nativeSymbol && has$1(Symbol$2, name)) { + WellKnownSymbolsStore[name] = Symbol$2[name]; + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } + } return WellKnownSymbolsStore[name]; +}; + +var SPECIES = wellKnownSymbol('species'); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +var arraySpeciesCreate = function (originalArray, length) { + var C; + if (isArray$3(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray$3(C.prototype))) C = undefined; + else if (isObject$3(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); +}; + +// `Array.prototype.flatMap` method +// https://tc39.es/ecma262/#sec-array.prototype.flatmap +_export({ target: 'Array', proto: true }, { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen = toLength(O.length); + var A; + aFunction(callbackfn); + A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return A; + } +}); + +var iterators = {}; + +var ITERATOR$1 = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; + +// check on default Array iterator +var isArrayIteratorMethod = function (it) { + return it !== undefined && (iterators.Array === it || ArrayPrototype[ITERATOR$1] === it); +}; + +var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG$1] = 'z'; + +var toStringTagSupport = String(test) === '[object z]'; + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +var classof = toStringTagSupport ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; +}; + +var ITERATOR = wellKnownSymbol('iterator'); + +var getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || iterators[classof(it)]; +}; + +var iteratorClose = function (iterator) { + var returnMethod = iterator['return']; + if (returnMethod !== undefined) { + return anObject(returnMethod.call(iterator)).value; + } +}; + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +var iterate = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = functionBindContext(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = toLength(iterable.length); length > index; index++) { + result = callFn(iterable[index]); + if (result && result instanceof Result) return result; + } return new Result(false); + } + iterator = iterFn.call(iterable); + } + + next = iterator.next; + while (!(step = next.call(iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator); + throw error; + } + if (typeof result == 'object' && result && result instanceof Result) return result; + } return new Result(false); +}; + +var createProperty = function (object, key, value) { + var propertyKey = toPrimitive(key); + if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + +// `Object.fromEntries` method +// https://github.com/tc39/proposal-object-from-entries +_export({ target: 'Object', stat: true }, { + fromEntries: function fromEntries(iterable) { + var obj = {}; + iterate(iterable, function (k, v) { + createProperty(obj, k, v); + }, { AS_ENTRIES: true }); + return obj; + } +}); + const debug = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; var debug_1 = debug; // Note: this is the semver.org version of the spec that it implements // Not necessarily the package version of this code. const SEMVER_SPEC_VERSION = '2.0.0'; -const MAX_LENGTH = 256; -const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +const MAX_LENGTH$3 = 256; +const MAX_SAFE_INTEGER$3 = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ 9007199254740991; // Max safe segment length for coercion. const MAX_SAFE_COMPONENT_LENGTH = 16; -var constants = { +var constants$5 = { SEMVER_SPEC_VERSION, - MAX_LENGTH, - MAX_SAFE_INTEGER, + MAX_LENGTH: MAX_LENGTH$3, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$3, MAX_SAFE_COMPONENT_LENGTH }; -function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function (path, base) { - return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); - } - }, fn(module, module.exports), module.exports; -} - -function getCjsExportFromNamespace (n) { - return n && n['default'] || n; -} - -function commonjsRequire () { - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); -} - var re_1 = createCommonjsModule(function (module, exports) { const { MAX_SAFE_COMPONENT_LENGTH - } = constants; + } = constants$5; exports = module.exports = {}; // The actual regexps go on exports.re const re = exports.re = []; @@ -2275,11 +3817,24 @@ var re_1 = createCommonjsModule(function (module, exports) { createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); }); -const numeric = /^[0-9]+$/; +// parse out just the options we care about so we always get a consistent +// obj with keys in a consistent order. +const opts$1 = ['includePrerelease', 'loose', 'rtl']; + +const parseOptions = options => !options ? {} : typeof options !== 'object' ? { + loose: true +} : opts$1.filter(k => options[k]).reduce((options, k) => { + options[k] = true; + return options; +}, {}); + +var parseOptions_1 = parseOptions; -const compareIdentifiers = (a, b) => { - const anum = numeric.test(a); - const bnum = numeric.test(b); +const numeric$1 = /^[0-9]+$/; + +const compareIdentifiers$1 = (a, b) => { + const anum = numeric$1.test(a); + const bnum = numeric$1.test(b); if (anum && bnum) { a = +a; @@ -2289,33 +3844,28 @@ const compareIdentifiers = (a, b) => { return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; }; -const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); var identifiers = { - compareIdentifiers, + compareIdentifiers: compareIdentifiers$1, rcompareIdentifiers }; const { - MAX_LENGTH: MAX_LENGTH$1, - MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1 -} = constants; + MAX_LENGTH: MAX_LENGTH$2, + MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$2 +} = constants$5; const { re, t } = re_1; const { - compareIdentifiers: compareIdentifiers$1 + compareIdentifiers } = identifiers; class SemVer { constructor(version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } + options = parseOptions_1(options); if (version instanceof SemVer) { if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { @@ -2327,8 +3877,8 @@ class SemVer { throw new TypeError(`Invalid Version: ${version}`); } - if (version.length > MAX_LENGTH$1) { - throw new TypeError(`version is longer than ${MAX_LENGTH$1} characters`); + if (version.length > MAX_LENGTH$2) { + throw new TypeError(`version is longer than ${MAX_LENGTH$2} characters`); } debug_1('SemVer', version, options); @@ -2349,15 +3899,15 @@ class SemVer { this.minor = +m[2]; this.patch = +m[3]; - if (this.major > MAX_SAFE_INTEGER$1 || this.major < 0) { + if (this.major > MAX_SAFE_INTEGER$2 || this.major < 0) { throw new TypeError('Invalid major version'); } - if (this.minor > MAX_SAFE_INTEGER$1 || this.minor < 0) { + if (this.minor > MAX_SAFE_INTEGER$2 || this.minor < 0) { throw new TypeError('Invalid minor version'); } - if (this.patch > MAX_SAFE_INTEGER$1 || this.patch < 0) { + if (this.patch > MAX_SAFE_INTEGER$2 || this.patch < 0) { throw new TypeError('Invalid patch version'); } // numberify any prerelease numeric ids @@ -2369,7 +3919,7 @@ class SemVer { if (/^[0-9]+$/.test(id)) { const num = +id; - if (num >= 0 && num < MAX_SAFE_INTEGER$1) { + if (num >= 0 && num < MAX_SAFE_INTEGER$2) { return num; } } @@ -2419,7 +3969,7 @@ class SemVer { other = new SemVer(other, this.options); } - return compareIdentifiers$1(this.major, other.major) || compareIdentifiers$1(this.minor, other.minor) || compareIdentifiers$1(this.patch, other.patch); + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); } comparePre(other) { @@ -2452,7 +4002,7 @@ class SemVer { } else if (a === b) { continue; } else { - return compareIdentifiers$1(a, b); + return compareIdentifiers(a, b); } } while (++i); } @@ -2478,7 +4028,7 @@ class SemVer { } else if (a === b) { continue; } else { - return compareIdentifiers$1(a, b); + return compareIdentifiers(a, b); } } while (++i); } // preminor will bump the version up to the next minor release, and immediately @@ -2606,29 +4156,30 @@ class SemVer { } -var semver = SemVer; +var semver$3 = SemVer; -const compare = (a, b, loose) => new semver(a, loose).compare(new semver(b, loose)); +const compare$1 = (a, b, loose) => new semver$3(a, loose).compare(new semver$3(b, loose)); -var compare_1 = compare; +var compare_1 = compare$1; const lt = (a, b, loose) => compare_1(a, b, loose) < 0; var lt_1 = lt; -const gte = (a, b, loose) => compare_1(a, b, loose) >= 0; +const gte$1 = (a, b, loose) => compare_1(a, b, loose) >= 0; -var gte_1 = gte; +var gte_1 = gte$1; var arrayify = (object, keyName) => Object.entries(object).map(([key, value]) => Object.assign({ [keyName]: key }, value)); -var lib = createCommonjsModule(function (module, exports) { +var lib$5 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true - }); // In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either. + }); + exports.outdent = void 0; // In the absence of a WeakSet or WeakMap implementation, don't break, but don't cache either. function noop() { var args = []; @@ -2639,7 +4190,7 @@ var lib = createCommonjsModule(function (module, exports) { } function createWeakMap() { - if (typeof WeakMap !== 'undefined') { + if (typeof WeakMap !== "undefined") { return new WeakMap(); } else { return fakeSetOrMap(); @@ -2697,7 +4248,7 @@ var lib = createCommonjsModule(function (module, exports) { } var reSource = "(\\r\\n|\\r|\\n).{0," + indentationLevel + "}"; - var reMatchIndent = new RegExp(reSource, 'g'); + var reMatchIndent = new RegExp(reSource, "g"); if (firstInterpolatedValueSetsIndentationLevel) { strings = strings.slice(1); @@ -2706,19 +4257,19 @@ var lib = createCommonjsModule(function (module, exports) { var newline = options.newline, trimLeadingNewline = options.trimLeadingNewline, trimTrailingNewline = options.trimTrailingNewline; - var normalizeNewlines = typeof newline === 'string'; + var normalizeNewlines = typeof newline === "string"; var l = strings.length; var outdentedStrings = strings.map(function (v, i) { // Remove leading indentation from all lines - v = v.replace(reMatchIndent, '$1'); // Trim a leading newline from the first string + v = v.replace(reMatchIndent, "$1"); // Trim a leading newline from the first string if (i === 0 && trimLeadingNewline) { - v = v.replace(reLeadingNewline, ''); + v = v.replace(reLeadingNewline, ""); } // Trim a trailing newline from the last string if (i === l - 1 && trimTrailingNewline) { - v = v.replace(reTrailingNewline, ''); + v = v.replace(reTrailingNewline, ""); } // Normalize newlines @@ -2734,7 +4285,7 @@ var lib = createCommonjsModule(function (module, exports) { } function concatStringsAndValues(strings, values) { - var ret = ''; + var ret = ""; for (var i = 0, l = strings.length; i < l; i++) { ret += strings[i]; @@ -2748,7 +4299,7 @@ var lib = createCommonjsModule(function (module, exports) { } function isTemplateStringsArray(v) { - return has(v, 'raw') && has(v, 'length'); + return has(v, "raw") && has(v, "length"); } /** * It is assumed that opts will not change. If this is a problem, clone your options object and pass the clone to @@ -2762,9 +4313,9 @@ var lib = createCommonjsModule(function (module, exports) { /** Cache of pre-processed template literal arrays */ var arrayAutoIndentCache = createWeakMap(); /** - * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent, - * before interpolated values are injected. - */ + * Cache of pre-processed template literal arrays, where first interpolated value is a reference to outdent, + * before interpolated values are injected. + */ var arrayFirstInterpSetsIndentCache = createWeakMap(); @@ -2828,7 +4379,7 @@ var lib = createCommonjsModule(function (module, exports) { // so we fail gracefully. try { module.exports = defaultOutdent; - Object.defineProperty(defaultOutdent, '__esModule', { + Object.defineProperty(defaultOutdent, "__esModule", { value: true }); defaultOutdent.default = defaultOutdent; @@ -2839,7 +4390,7 @@ var lib = createCommonjsModule(function (module, exports) { const { outdent -} = lib; +} = lib$5; const CATEGORY_CONFIG = "Config"; const CATEGORY_EDITOR = "Editor"; const CATEGORY_FORMAT = "Format"; @@ -2886,7 +4437,7 @@ const CATEGORY_SPECIAL = "Special"; /** @type {{ [name: string]: OptionInfo }} */ -const options = { +const options$7 = { cursorOffset: { since: "1.4.0", category: CATEGORY_SPECIAL, @@ -2894,7 +4445,7 @@ const options = { default: -1, range: { start: -1, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 }, description: outdent` @@ -2981,6 +4532,14 @@ const options = { value: "typescript", since: "1.4.0", description: "TypeScript" + }, { + value: "espree", + since: "2.2.0", + description: "JavaScript" + }, { + value: "meriyah", + since: "2.2.0", + description: "JavaScript" }, { value: "css", since: "1.7.1", @@ -3027,8 +4586,8 @@ const options = { description: "YAML" }, { value: "glimmer", - since: null, - description: "Handlebars" + since: "2.3.0", + description: "Ember / Handlebars" }, { value: "html", since: "1.15.0", @@ -3081,7 +4640,7 @@ const options = { description: "The line length where Prettier will try wrap.", range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 } }, @@ -3089,10 +4648,10 @@ const options = { since: "1.4.0", category: CATEGORY_SPECIAL, type: "int", - default: Infinity, + default: Number.POSITIVE_INFINITY, range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 }, description: outdent` @@ -3109,7 +4668,7 @@ const options = { default: 0, range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 }, description: outdent` @@ -3137,7 +4696,7 @@ const options = { description: "Number of spaces per indentation level.", range: { start: 0, - end: Infinity, + end: Number.POSITIVE_INFINITY, step: 1 } }, @@ -3166,7 +4725,7 @@ const options = { }] } }; -var coreOptions = { +var coreOptions$1 = { CATEGORY_CONFIG, CATEGORY_EDITOR, CATEGORY_FORMAT, @@ -3174,18 +4733,18 @@ var coreOptions = { CATEGORY_OUTPUT, CATEGORY_GLOBAL, CATEGORY_SPECIAL, - options + options: options$7 }; -var require$$0 = getCjsExportFromNamespace(_package$1); +const _excluded$3 = ["cliName", "cliCategory", "cliDescription"]; -const semver$1 = { +const semver$2 = { compare: compare_1, lt: lt_1, gte: gte_1 }; -const currentVersion = require$$0.version; -const coreOptions$1 = coreOptions.options; +const currentVersion = require$$0$8.version; +const coreOptions = coreOptions$1.options; /** * Strings in `plugins` and `pluginSearchDirs` are handled by a wrapped version * of this function created by `withPlugins`. Don't pass them here directly. @@ -3197,7 +4756,7 @@ const coreOptions$1 = coreOptions.options; * @param {boolean=} param0.showInternal */ -function getSupportInfo({ +function getSupportInfo$3({ plugins = [], showUnreleased = false, showDeprecated = false, @@ -3206,14 +4765,14 @@ function getSupportInfo({ // pre-release version is smaller than the normal version in semver, // we need to treat it as the normal one so as to test new features. const version = currentVersion.split("-", 1)[0]; - const languages = plugins.reduce((all, plugin) => all.concat(plugin.languages || []), []).filter(filterSince); + const languages = plugins.flatMap(plugin => plugin.languages || []).filter(filterSince); const options = arrayify(Object.assign({}, ...plugins.map(({ options - }) => options), coreOptions$1), "name").filter(option => filterSince(option) && filterDeprecated(option)).sort((a, b) => a.name === b.name ? 0 : a.name < b.name ? -1 : 1).map(mapInternal).map(option => { + }) => options), coreOptions), "name").filter(option => filterSince(option) && filterDeprecated(option)).sort((a, b) => a.name === b.name ? 0 : a.name < b.name ? -1 : 1).map(mapInternal).map(option => { option = Object.assign({}, option); if (Array.isArray(option.default)) { - option.default = option.default.length === 1 ? option.default[0].value : option.default.filter(filterSince).sort((info1, info2) => semver$1.compare(info2.since, info1.since))[0].value; + option.default = option.default.length === 1 ? option.default[0].value : option.default.filter(filterSince).sort((info1, info2) => semver$2.compare(info2.since, info1.since))[0].value; } if (Array.isArray(option.choices)) { @@ -3224,11 +4783,8 @@ function getSupportInfo({ } } - const pluginDefaults = plugins.filter(plugin => plugin.defaultOptions && plugin.defaultOptions[option.name] !== undefined).reduce((reduced, plugin) => { - reduced[plugin.name] = plugin.defaultOptions[option.name]; - return reduced; - }, {}); - return Object.assign({}, option, { + const pluginDefaults = Object.fromEntries(plugins.filter(plugin => plugin.defaultOptions && plugin.defaultOptions[option.name] !== undefined).map(plugin => [plugin.name, plugin.defaultOptions[option.name]])); + return Object.assign(Object.assign({}, option), {}, { pluginDefaults }); }); @@ -3238,11 +4794,11 @@ function getSupportInfo({ }; function filterSince(object) { - return showUnreleased || !("since" in object) || object.since && semver$1.gte(version, object.since); + return showUnreleased || !("since" in object) || object.since && semver$2.gte(version, object.since); } function filterDeprecated(object) { - return showDeprecated || !("deprecated" in object) || object.deprecated && semver$1.lt(version, object.deprecated); + return showDeprecated || !("deprecated" in object) || object.deprecated && semver$2.lt(version, object.deprecated); } function mapInternal(object) { @@ -3250,7 +4806,7 @@ function getSupportInfo({ return object; } - const newObject = _objectWithoutPropertiesLoose(object, ["cliName", "cliCategory", "cliDescription"]); + const newObject = _objectWithoutProperties(object, _excluded$3); return newObject; } @@ -3282,12 +4838,15 @@ function collectParsersFromLanguages(option, languages, plugins) { } var support = { - getSupportInfo + getSupportInfo: getSupportInfo$3 }; +const { + getSupportInfo: getSupportInfo$2 +} = support; const notAsciiRegex = /[^\x20-\x7F]/; -const getPenultimate = arr => arr[arr.length - 2]; +const getPenultimate$1 = arr => arr[arr.length - 2]; /** * @typedef {{backwards?: boolean}} SkipOptions */ @@ -3298,7 +4857,7 @@ const getPenultimate = arr => arr[arr.length - 2]; */ -function skip(chars) { +function skip$1(chars) { return (text, index, opts) => { const backwards = opts && opts.backwards; // Allow `skip` functions to be threaded together without having // to check for failures (did someone say monads?). @@ -3344,29 +4903,29 @@ function skip(chars) { */ -const skipWhitespace = skip(/\s/); +const skipWhitespace$2 = skip$1(/\s/); /** * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} */ -const skipSpaces = skip(" \t"); +const skipSpaces$2 = skip$1(" \t"); /** * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} */ -const skipToLineEnd = skip(",; \t"); +const skipToLineEnd$1 = skip$1(",; \t"); /** * @type {(text: string, index: number | false, opts?: SkipOptions) => number | false} */ -const skipEverythingButNewLine = skip(/[^\n\r]/); +const skipEverythingButNewLine$2 = skip$1(/[^\n\r]/); /** * @param {string} text * @param {number | false} index * @returns {number | false} */ -function skipInlineComment(text, index) { +function skipInlineComment$1(text, index) { /* istanbul ignore next */ if (index === false) { return false; @@ -3389,14 +4948,14 @@ function skipInlineComment(text, index) { */ -function skipTrailingComment(text, index) { +function skipTrailingComment$1(text, index) { /* istanbul ignore next */ if (index === false) { return false; } if (text.charAt(index) === "/" && text.charAt(index + 1) === "/") { - return skipEverythingButNewLine(text, index); + return skipEverythingButNewLine$2(text, index); } return index; @@ -3412,7 +4971,7 @@ function skipTrailingComment(text, index) { */ -function skipNewline(text, index, opts) { +function skipNewline$2(text, index, opts) { const backwards = opts && opts.backwards; if (index === false) { @@ -3455,10 +5014,9 @@ function skipNewline(text, index, opts) { */ -function hasNewline(text, index, opts) { - opts = opts || {}; - const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); - const idx2 = skipNewline(text, idx, opts); +function hasNewline$a(text, index, opts = {}) { + const idx = skipSpaces$2(text, opts.backwards ? index - 1 : index, opts); + const idx2 = skipNewline$2(text, idx, opts); return idx !== idx2; } /** @@ -3469,7 +5027,7 @@ function hasNewline(text, index, opts) { */ -function hasNewlineInRange(text, start, end) { +function hasNewlineInRange$5(text, start, end) { for (let i = start; i < end; ++i) { if (text.charAt(i) === "\n") { return true; @@ -3487,19 +5045,19 @@ function hasNewlineInRange(text, start, end) { */ -function isPreviousLineEmpty(text, node, locStart) { +function isPreviousLineEmpty$3(text, node, locStart) { /** @type {number | false} */ let idx = locStart(node) - 1; - idx = skipSpaces(text, idx, { + idx = skipSpaces$2(text, idx, { backwards: true }); - idx = skipNewline(text, idx, { + idx = skipNewline$2(text, idx, { backwards: true }); - idx = skipSpaces(text, idx, { + idx = skipSpaces$2(text, idx, { backwards: true }); - const idx2 = skipNewline(text, idx, { + const idx2 = skipNewline$2(text, idx, { backwards: true }); return idx !== idx2; @@ -3511,7 +5069,7 @@ function isPreviousLineEmpty(text, node, locStart) { */ -function isNextLineEmptyAfterIndex(text, index) { +function isNextLineEmptyAfterIndex$3(text, index) { /** @type {number | false} */ let oldIdx = null; /** @type {number | false} */ @@ -3521,14 +5079,14 @@ function isNextLineEmptyAfterIndex(text, index) { while (idx !== oldIdx) { // We need to skip all the potential trailing inline comments oldIdx = idx; - idx = skipToLineEnd(text, idx); - idx = skipInlineComment(text, idx); - idx = skipSpaces(text, idx); + idx = skipToLineEnd$1(text, idx); + idx = skipInlineComment$1(text, idx); + idx = skipSpaces$2(text, idx); } - idx = skipTrailingComment(text, idx); - idx = skipNewline(text, idx); - return idx !== false && hasNewline(text, idx); + idx = skipTrailingComment$1(text, idx); + idx = skipNewline$2(text, idx); + return idx !== false && hasNewline$a(text, idx); } /** * @template N @@ -3539,8 +5097,8 @@ function isNextLineEmptyAfterIndex(text, index) { */ -function isNextLineEmpty(text, node, locEnd) { - return isNextLineEmptyAfterIndex(text, locEnd(node)); +function isNextLineEmpty$e(text, node, locEnd) { + return isNextLineEmptyAfterIndex$3(text, locEnd(node)); } /** * @param {string} text @@ -3549,7 +5107,7 @@ function isNextLineEmpty(text, node, locEnd) { */ -function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) { +function getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1(text, idx) { /** @type {number | false} */ let oldIdx = null; /** @type {number | false} */ @@ -3558,10 +5116,10 @@ function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) { while (nextIdx !== oldIdx) { oldIdx = nextIdx; - nextIdx = skipSpaces(text, nextIdx); - nextIdx = skipInlineComment(text, nextIdx); - nextIdx = skipTrailingComment(text, nextIdx); - nextIdx = skipNewline(text, nextIdx); + nextIdx = skipSpaces$2(text, nextIdx); + nextIdx = skipInlineComment$1(text, nextIdx); + nextIdx = skipTrailingComment$1(text, nextIdx); + nextIdx = skipNewline$2(text, nextIdx); } return nextIdx; @@ -3575,8 +5133,8 @@ function getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, idx) { */ -function getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { - return getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd(node)); +function getNextNonSpaceNonCommentCharacterIndex$4(text, node, locEnd) { + return getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1(text, locEnd(node)); } /** * @template N @@ -3587,9 +5145,9 @@ function getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) { */ -function getNextNonSpaceNonCommentCharacter(text, node, locEnd) { +function getNextNonSpaceNonCommentCharacter$2(text, node, locEnd) { return text.charAt( // @ts-ignore => TBD: can return false, should we define a fallback? - getNextNonSpaceNonCommentCharacterIndex(text, node, locEnd)); + getNextNonSpaceNonCommentCharacterIndex$4(text, node, locEnd)); } // Not using, but it's public utils /* istanbul ignore next */ @@ -3602,9 +5160,8 @@ function getNextNonSpaceNonCommentCharacter(text, node, locEnd) { */ -function hasSpaces(text, index, opts) { - opts = opts || {}; - const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts); +function hasSpaces$1(text, index, opts = {}) { + const idx = skipSpaces$2(text, opts.backwards ? index - 1 : index, opts); return idx !== index; } /** @@ -3615,8 +5172,7 @@ function hasSpaces(text, index, opts) { */ -function getAlignmentSize(value, tabWidth, startIndex) { - startIndex = startIndex || 0; +function getAlignmentSize$2(value, tabWidth, startIndex = 0) { let size = 0; for (let i = startIndex; i < value.length; ++i) { @@ -3640,14 +5196,14 @@ function getAlignmentSize(value, tabWidth, startIndex) { */ -function getIndentSize(value, tabWidth) { +function getIndentSize$2(value, tabWidth) { const lastNewlineIndex = value.lastIndexOf("\n"); if (lastNewlineIndex === -1) { return 0; } - return getAlignmentSize( // All the leading whitespaces + return getAlignmentSize$2( // All the leading whitespaces value.slice(lastNewlineIndex + 1).match(/^[\t ]*/)[0], tabWidth); } /** @@ -3662,7 +5218,7 @@ function getIndentSize(value, tabWidth) { */ -function getPreferredQuote(raw, preferredQuote) { +function getPreferredQuote$1(raw, preferredQuote) { // `rawContent` is the string exactly like it appeared in the input source // code, without its enclosing quotes. const rawContent = raw.slice(1, -1); @@ -3693,33 +5249,18 @@ function getPreferredQuote(raw, preferredQuote) { return result; } -function printString(raw, options, isDirectiveLiteral) { +function printString$4(raw, options) { // `rawContent` is the string exactly like it appeared in the input source // code, without its enclosing quotes. - const rawContent = raw.slice(1, -1); // Check for the alternate quote, to determine if we're allowed to swap - // the quotes on a DirectiveLiteral. - - const canChangeDirectiveQuotes = !rawContent.includes('"') && !rawContent.includes("'"); + const rawContent = raw.slice(1, -1); /** @type {Quote} */ - const enclosingQuote = options.parser === "json" ? '"' : options.__isInHtmlAttribute ? "'" : getPreferredQuote(raw, options.singleQuote ? "'" : '"'); // Directives are exact code unit sequences, which means that you can't - // change the escape sequences they use. - // See https://github.com/prettier/prettier/issues/1555 - // and https://tc39.github.io/ecma262/#directive-prologue - - if (isDirectiveLiteral) { - if (canChangeDirectiveQuotes) { - return enclosingQuote + rawContent + enclosingQuote; - } - - return raw; - } // It might sound unnecessary to use `makeString` even if the string already + const enclosingQuote = options.parser === "json" || options.parser === "json5" && options.quoteProps === "preserve" && !options.singleQuote ? '"' : options.__isInHtmlAttribute ? "'" : getPreferredQuote$1(raw, options.singleQuote ? "'" : '"'); // It might sound unnecessary to use `makeString` even if the string already // is enclosed with `enclosingQuote`, but it isn't. The string could contain // unnecessary escapes (such as in `"\'"`). Always using `makeString` makes // sure that we consistently output the minimum amount of escaped quotes. - - return makeString(rawContent, enclosingQuote, !(options.parser === "css" || options.parser === "less" || options.parser === "scss" || options.embeddedInHtml)); + return makeString$1(rawContent, enclosingQuote, !(options.parser === "css" || options.parser === "less" || options.parser === "scss" || options.__embeddedInHtml)); } /** * @param {string} rawContent @@ -3729,10 +5270,10 @@ function printString(raw, options, isDirectiveLiteral) { */ -function makeString(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) { +function makeString$1(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) { const otherQuote = enclosingQuote === '"' ? "'" : '"'; // Matches _any_ escape and unescaped quotes (both single and double). - const regex = /\\([\S\s])|(["'])/g; // Escape and unescape single and double quotes as needed to be able to + const regex = /\\(.)|(["'])/gs; // Escape and unescape single and double quotes as needed to be able to // enclose `rawContent` with `enclosingQuote`. const newContent = rawContent.replace(regex, (match, escaped, quote) => { @@ -3761,7 +5302,7 @@ function makeString(rawContent, enclosingQuote, unescapeUnnecessaryEscapes) { return enclosingQuote + newContent + enclosingQuote; } -function printNumber(rawNumber) { +function printNumber$4(rawNumber) { return rawNumber.toLowerCase() // Remove unnecessary plus and zeroes from scientific notation. .replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(\d)/, "$1$2$3") // Remove unnecessary scientific notation (1e0). .replace(/^([+-]?[\d.]+)e[+-]?0+$/, "$1") // Make sure numbers always start with a digit. @@ -3776,8 +5317,8 @@ function printNumber(rawNumber) { */ -function getMaxContinuousCount(str, target) { - const results = str.match(new RegExp(`(${escapeStringRegexp(target)})+`, "g")); +function getMaxContinuousCount$3(str, target) { + const results = str.match(new RegExp(`(${escapeStringRegexp$2(target)})+`, "g")); if (results === null) { return 0; @@ -3786,8 +5327,8 @@ function getMaxContinuousCount(str, target) { return results.reduce((maxCount, result) => Math.max(maxCount, result.length / target.length), 0); } -function getMinNotPresentContinuousCount(str, target) { - const matches = str.match(new RegExp(`(${escapeStringRegexp(target)})+`, "g")); +function getMinNotPresentContinuousCount$1(str, target) { + const matches = str.match(new RegExp(`(${escapeStringRegexp$2(target)})+`, "g")); if (matches === null) { return 0; @@ -3819,7 +5360,7 @@ function getMinNotPresentContinuousCount(str, target) { */ -function getStringWidth(text) { +function getStringWidth$4(text) { if (!text) { return 0; } // shortcut to avoid needless string `RegExp`s, replacements, and allocations within `string-width` @@ -3832,40 +5373,20 @@ function getStringWidth(text) { return stringWidth_1(text); } -function hasIgnoreComment(path) { - const node = path.getValue(); - return hasNodeIgnoreComment(node); -} - -function hasNodeIgnoreComment(node) { - return node && (node.comments && node.comments.length > 0 && node.comments.some(comment => isNodeIgnoreComment(comment) && !comment.unignore) || node.prettierIgnore); -} - -function isNodeIgnoreComment(comment) { - return comment.value.trim() === "prettier-ignore"; -} - function addCommentHelper(node, comment) { const comments = node.comments || (node.comments = []); comments.push(comment); - comment.printed = false; // For some reason, TypeScript parses `// x` inside of JSXText as a comment - // We already "print" it via the raw text, we don't need to re-print it as a - // comment - - /* istanbul ignore next */ - - if (node.type === "JSXText") { - comment.printed = true; - } + comment.printed = false; + comment.nodeDescription = describeNodeForDebugging(node); } -function addLeadingComment(node, comment) { +function addLeadingComment$3(node, comment) { comment.leading = true; comment.trailing = false; addCommentHelper(node, comment); } -function addDanglingComment(node, comment, marker) { +function addDanglingComment$3(node, comment, marker) { comment.leading = false; comment.trailing = false; @@ -3876,63 +5397,33 @@ function addDanglingComment(node, comment, marker) { addCommentHelper(node, comment); } -function addTrailingComment(node, comment) { +function addTrailingComment$3(node, comment) { comment.leading = false; comment.trailing = true; addCommentHelper(node, comment); -} // Not using - -/* istanbul ignore next */ - - -function isWithinParentArrayProperty(path, propertyName) { - const node = path.getValue(); - const parent = path.getParentNode(); - - if (parent == null) { - return false; - } - - if (!Array.isArray(parent[propertyName])) { - return false; - } - - const key = path.getName(); - return parent[propertyName][key] === node; -} - -function replaceEndOfLineWith(text, replacement) { - const parts = []; - - for (const part of text.split("\n")) { - if (parts.length !== 0) { - parts.push(replacement); - } - - parts.push(part); - } - - return parts; } -function getParserName(lang, options) { - const supportInfo = support.getSupportInfo({ +function inferParserByLanguage$2(language, options) { + const { + languages + } = getSupportInfo$2({ plugins: options.plugins }); - const language = supportInfo.languages.find(language => language.name.toLowerCase() === lang || language.aliases && language.aliases.includes(lang) || language.extensions && language.extensions.some(ext => ext === `.${lang}`)); - - if (language) { - return language.parsers[0]; - } - - return null; + const matched = languages.find(({ + name + }) => name.toLowerCase() === language) || languages.find(({ + aliases + }) => Array.isArray(aliases) && aliases.includes(language)) || languages.find(({ + extensions + }) => Array.isArray(extensions) && extensions.includes(`.${language}`)); + return matched && matched.parsers[0]; } -function isFrontMatterNode(node) { +function isFrontMatterNode$5(node) { return node && node.type === "front-matter"; } -function getShebang(text) { +function getShebang$1(text) { if (!text.startsWith("#!")) { return ""; } @@ -3945,50 +5436,83 @@ function getShebang(text) { return text.slice(0, index); } +/** + * @param {any} object + * @returns {object is Array} + */ -var util = { - replaceEndOfLineWith, - getStringWidth, - getMaxContinuousCount, - getMinNotPresentContinuousCount, - getParserName, - getPenultimate, - getLast, - getNextNonSpaceNonCommentCharacterIndexWithStartIndex, - getNextNonSpaceNonCommentCharacterIndex, - getNextNonSpaceNonCommentCharacter, - skip, - skipWhitespace, - skipSpaces, - skipToLineEnd, - skipEverythingButNewLine, - skipInlineComment, - skipTrailingComment, - skipNewline, - isNextLineEmptyAfterIndex, - isNextLineEmpty, - isPreviousLineEmpty, - hasNewline, - hasNewlineInRange, - hasSpaces, - getAlignmentSize, - getIndentSize, - getPreferredQuote, - printString, - printNumber, - hasIgnoreComment, - hasNodeIgnoreComment, - isNodeIgnoreComment, - makeString, - addLeadingComment, - addDanglingComment, - addTrailingComment, - isWithinParentArrayProperty, - isFrontMatterNode, - getShebang + +function isNonEmptyArray$j(object) { + return Array.isArray(object) && object.length > 0; +} +/** + * @param {string} description + * @returns {(node: any) => symbol} + */ + + +function createGroupIdMapper$2(description) { + const groupIds = new WeakMap(); + return function (node) { + if (!groupIds.has(node)) { + groupIds.set(node, Symbol(description)); + } + + return groupIds.get(node); + }; +} + +function describeNodeForDebugging(node) { + const nodeType = node.type || node.kind || "(unknown type)"; + let nodeName = String(node.name || node.id && (typeof node.id === "object" ? node.id.name : node.id) || node.key && (typeof node.key === "object" ? node.key.name : node.key) || node.value && (typeof node.value === "object" ? "" : String(node.value)) || node.operator || ""); + + if (nodeName.length > 20) { + nodeName = nodeName.slice(0, 19) + "…"; + } + + return nodeType + (nodeName ? " " + nodeName : ""); +} + +var util$5 = { + inferParserByLanguage: inferParserByLanguage$2, + getStringWidth: getStringWidth$4, + getMaxContinuousCount: getMaxContinuousCount$3, + getMinNotPresentContinuousCount: getMinNotPresentContinuousCount$1, + getPenultimate: getPenultimate$1, + getLast: getLast_1, + getNextNonSpaceNonCommentCharacterIndexWithStartIndex: getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1, + getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$4, + getNextNonSpaceNonCommentCharacter: getNextNonSpaceNonCommentCharacter$2, + skip: skip$1, + skipWhitespace: skipWhitespace$2, + skipSpaces: skipSpaces$2, + skipToLineEnd: skipToLineEnd$1, + skipEverythingButNewLine: skipEverythingButNewLine$2, + skipInlineComment: skipInlineComment$1, + skipTrailingComment: skipTrailingComment$1, + skipNewline: skipNewline$2, + isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$3, + isNextLineEmpty: isNextLineEmpty$e, + isPreviousLineEmpty: isPreviousLineEmpty$3, + hasNewline: hasNewline$a, + hasNewlineInRange: hasNewlineInRange$5, + hasSpaces: hasSpaces$1, + getAlignmentSize: getAlignmentSize$2, + getIndentSize: getIndentSize$2, + getPreferredQuote: getPreferredQuote$1, + printString: printString$4, + printNumber: printNumber$4, + makeString: makeString$1, + addLeadingComment: addLeadingComment$3, + addDanglingComment: addDanglingComment$3, + addTrailingComment: addTrailingComment$3, + isFrontMatterNode: isFrontMatterNode$5, + getShebang: getShebang$1, + isNonEmptyArray: isNonEmptyArray$j, + createGroupIdMapper: createGroupIdMapper$2 }; -function guessEndOfLine(text) { +function guessEndOfLine$1(text) { const index = text.indexOf("\r"); if (index >= 0) { @@ -3998,7 +5522,7 @@ function guessEndOfLine(text) { return "lf"; } -function convertEndOfLineToChars(value) { +function convertEndOfLineToChars$1(value) { switch (value) { case "cr": return "\r"; @@ -4011,7 +5535,7 @@ function convertEndOfLineToChars(value) { } } -function countEndOfLineChars(text, eol) { +function countEndOfLineChars$1(text, eol) { let regex; /* istanbul ignore else */ @@ -4029,2732 +5553,1709 @@ function countEndOfLineChars(text, eol) { return endOfLines ? endOfLines.length : 0; } -function normalizeEndOfLine(text) { +function normalizeEndOfLine$2(text) { return text.replace(/\r\n?/g, "\n"); } var endOfLine = { - guessEndOfLine, - convertEndOfLineToChars, - countEndOfLineChars, - normalizeEndOfLine + guessEndOfLine: guessEndOfLine$1, + convertEndOfLineToChars: convertEndOfLineToChars$1, + countEndOfLineChars: countEndOfLineChars$1, + normalizeEndOfLine: normalizeEndOfLine$2 }; -const { - getStringWidth: getStringWidth$1 -} = util; -const { - convertEndOfLineToChars: convertEndOfLineToChars$1 -} = endOfLine; -const { - concat: concat$1, - fill: fill$1, - cursor: cursor$1 -} = docBuilders; -/** @type {Record} */ +/** + * @class + */ -let groupModeMap; -const MODE_BREAK = 1; -const MODE_FLAT = 2; -function rootIndent() { - return { - value: "", - length: 0, - queue: [] - }; -} +class LineByLine { + constructor(file, options) { + options = options || {}; + if (!options.readChunk) options.readChunk = 1024; -function makeIndent(ind, options) { - return generateInd(ind, { - type: "indent" - }, options); -} + if (!options.newLineCharacter) { + options.newLineCharacter = 0x0a; //linux line ending + } else { + options.newLineCharacter = options.newLineCharacter.charCodeAt(0); + } -function makeAlign(indent, n, options) { - if (n === -Infinity) { - return indent.root || rootIndent(); - } + if (typeof file === 'number') { + this.fd = file; + } else { + this.fd = fs__default['default'].openSync(file, 'r'); + } - if (n < 0) { - return generateInd(indent, { - type: "dedent" - }, options); + this.options = options; + this.newLineCharacter = options.newLineCharacter; + this.reset(); } - if (!n) { - return indent; - } + _searchInBuffer(buffer, hexNeedle) { + let found = -1; - if (n.type === "root") { - return Object.assign({}, indent, { - root: indent - }); - } + for (let i = 0; i <= buffer.length; i++) { + let b_byte = buffer[i]; - const alignType = typeof n === "string" ? "stringAlign" : "numberAlign"; - return generateInd(indent, { - type: alignType, - n - }, options); -} + if (b_byte === hexNeedle) { + found = i; + break; + } + } -function generateInd(ind, newPart, options) { - const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : ind.queue.concat(newPart); - let value = ""; - let length = 0; - let lastTabs = 0; - let lastSpaces = 0; + return found; + } - for (const part of queue) { - switch (part.type) { - case "indent": - flush(); + reset() { + this.eofReached = false; + this.linesCache = []; + this.fdPosition = 0; + } - if (options.useTabs) { - addTabs(1); - } else { - addSpaces(options.tabWidth); - } + close() { + fs__default['default'].closeSync(this.fd); + this.fd = null; + } - break; + _extractLines(buffer) { + let line; + const lines = []; + let bufferPosition = 0; + let lastNewLineBufferPosition = 0; - case "stringAlign": - flush(); - value += part.n; - length += part.n.length; - break; + while (true) { + let bufferPositionValue = buffer[bufferPosition++]; - case "numberAlign": - lastTabs += 1; - lastSpaces += part.n; + if (bufferPositionValue === this.newLineCharacter) { + line = buffer.slice(lastNewLineBufferPosition, bufferPosition); + lines.push(line); + lastNewLineBufferPosition = bufferPosition; + } else if (bufferPositionValue === undefined) { break; - - /* istanbul ignore next */ - - default: - throw new Error(`Unexpected type '${part.type}'`); + } } - } - flushSpaces(); - return Object.assign({}, ind, { - value, - length, - queue - }); + let leftovers = buffer.slice(lastNewLineBufferPosition, bufferPosition); - function addTabs(count) { - value += "\t".repeat(count); - length += options.tabWidth * count; - } + if (leftovers.length) { + lines.push(leftovers); + } - function addSpaces(count) { - value += " ".repeat(count); - length += count; + return lines; } - function flush() { - if (options.useTabs) { - flushTabs(); - } else { - flushSpaces(); - } - } + _readChunk(lineLeftovers) { + let totalBytesRead = 0; + let bytesRead; + const buffers = []; - function flushTabs() { - if (lastTabs > 0) { - addTabs(lastTabs); - } + do { + const readBuffer = new Buffer(this.options.readChunk); + bytesRead = fs__default['default'].readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition); + totalBytesRead = totalBytesRead + bytesRead; + this.fdPosition = this.fdPosition + bytesRead; + buffers.push(readBuffer); + } while (bytesRead && this._searchInBuffer(buffers[buffers.length - 1], this.options.newLineCharacter) === -1); - resetLast(); - } + let bufferData = Buffer.concat(buffers); - function flushSpaces() { - if (lastSpaces > 0) { - addSpaces(lastSpaces); + if (bytesRead < this.options.readChunk) { + this.eofReached = true; + bufferData = bufferData.slice(0, totalBytesRead); } - resetLast(); - } + if (totalBytesRead) { + this.linesCache = this._extractLines(bufferData); - function resetLast() { - lastTabs = 0; - lastSpaces = 0; - } -} + if (lineLeftovers) { + this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]); + } + } -function trim$1(out) { - if (out.length === 0) { - return 0; + return totalBytesRead; } - let trimCount = 0; // Trim whitespace at the end of line + next() { + if (!this.fd) return false; + let line = false; - while (out.length > 0 && typeof out[out.length - 1] === "string" && out[out.length - 1].match(/^[\t ]*$/)) { - trimCount += out.pop().length; - } + if (this.eofReached && this.linesCache.length === 0) { + return line; + } - if (out.length && typeof out[out.length - 1] === "string") { - const trimmed = out[out.length - 1].replace(/[\t ]*$/, ""); - trimCount += out[out.length - 1].length - trimmed.length; - out[out.length - 1] = trimmed; - } + let bytesRead; - return trimCount; -} + if (!this.linesCache.length) { + bytesRead = this._readChunk(); + } -function fits(next, restCommands, width, options, mustBeFlat) { - let restIdx = restCommands.length; - const cmds = [next]; // `out` is only used for width counting because `trim` requires to look - // backwards for space characters. + if (this.linesCache.length) { + line = this.linesCache.shift(); + const lastLineCharacter = line[line.length - 1]; - const out = []; + if (lastLineCharacter !== this.newLineCharacter) { + bytesRead = this._readChunk(line); - while (width >= 0) { - if (cmds.length === 0) { - if (restIdx === 0) { - return true; + if (bytesRead) { + line = this.linesCache.shift(); + } } - - cmds.push(restCommands[restIdx - 1]); - restIdx--; - continue; } - const [ind, mode, doc] = cmds.pop(); + if (this.eofReached && this.linesCache.length === 0) { + this.close(); + } - if (typeof doc === "string") { - out.push(doc); - width -= getStringWidth$1(doc); - } else { - switch (doc.type) { - case "concat": - for (let i = doc.parts.length - 1; i >= 0; i--) { - cmds.push([ind, mode, doc.parts[i]]); - } + if (line && line[line.length - 1] === this.newLineCharacter) { + line = line.slice(0, line.length - 1); + } - break; + return line; + } - case "indent": - cmds.push([makeIndent(ind, options), mode, doc.contents]); - break; +} - case "align": - cmds.push([makeAlign(ind, doc.n, options), mode, doc.contents]); - break; +var readlines = LineByLine; - case "trim": - width += trim$1(out); - break; +class ConfigError$1 extends Error {} - case "group": - if (mustBeFlat && doc.break) { - return false; - } +class DebugError extends Error {} - cmds.push([ind, doc.break ? MODE_BREAK : mode, doc.contents]); +class UndefinedParserError$1 extends Error {} - if (doc.id) { - groupModeMap[doc.id] = cmds[cmds.length - 1][1]; - } +class ArgExpansionBailout$3 extends Error {} - break; +var errors = { + ConfigError: ConfigError$1, + DebugError, + UndefinedParserError: UndefinedParserError$1, + ArgExpansionBailout: ArgExpansionBailout$3 +}; - case "fill": - for (let i = doc.parts.length - 1; i >= 0; i--) { - cmds.push([ind, mode, doc.parts[i]]); - } +/*! ***************************************************************************** +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. +***************************************************************************** */ - break; +/* global Reflect, Promise */ +var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function (d, b) { + d.__proto__ = b; + } || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + }; - case "if-break": - { - const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode; + return extendStatics(d, b); +}; - if (groupMode === MODE_BREAK) { - if (doc.breakContents) { - cmds.push([ind, mode, doc.breakContents]); - } - } +function __extends(d, b) { + extendStatics(d, b); - if (groupMode === MODE_FLAT) { - if (doc.flatContents) { - cmds.push([ind, mode, doc.flatContents]); - } - } + function __() { + this.constructor = d; + } - break; - } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); +} +var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; - case "line": - switch (mode) { - // fallthrough - case MODE_FLAT: - if (!doc.hard) { - if (!doc.soft) { - out.push(" "); - width -= 1; - } + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } - break; - } + return t; + }; - return true; + return __assign.apply(this, arguments); +}; +function __rest(s, e) { + var t = {}; - case MODE_BREAK: - return true; - } + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; - break; - } - } + if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } - - return false; + return t; } +function __decorate(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; +} +function __param(paramIndex, decorator) { + return function (target, key) { + decorator(target, key, paramIndex); + }; +} +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} +function __awaiter$2(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } -function printDocToString(doc, options) { - groupModeMap = {}; - const width = options.printWidth; - const newLine = convertEndOfLineToChars$1(options.endOfLine); - let pos = 0; // cmds is basically a stack. We've turned a recursive call into a - // while loop which is much faster. The while loop below adds new - // cmds to the array instead of recursively calling `print`. - - const cmds = [[rootIndent(), MODE_BREAK, doc]]; - const out = []; - let shouldRemeasure = false; - let lineSuffix = []; - - while (cmds.length !== 0) { - const [ind, mode, doc] = cmds.pop(); - - if (typeof doc === "string") { - const formatted = newLine !== "\n" && doc.includes("\n") ? doc.replace(/\n/g, newLine) : doc; - out.push(formatted); - pos += getStringWidth$1(formatted); - } else { - switch (doc.type) { - case "cursor": - out.push(cursor$1.placeholder); - break; - - case "concat": - for (let i = doc.parts.length - 1; i >= 0; i--) { - cmds.push([ind, mode, doc.parts[i]]); - } - - break; - - case "indent": - cmds.push([makeIndent(ind, options), mode, doc.contents]); - break; + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } - case "align": - cmds.push([makeAlign(ind, doc.n, options), mode, doc.contents]); - break; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } - case "trim": - pos -= trim$1(out); - break; + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } - case "group": - switch (mode) { - case MODE_FLAT: - if (!shouldRemeasure) { - cmds.push([ind, doc.break ? MODE_BREAK : MODE_FLAT, doc.contents]); - break; - } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} +function __generator$2(thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [] + }, + f, + y, + t, + g; + return g = { + next: verb(0), + "throw": verb(1), + "return": verb(2) + }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { + return this; + }), g; - // fallthrough - - case MODE_BREAK: - { - shouldRemeasure = false; - const next = [ind, MODE_FLAT, doc.contents]; - const rem = width - pos; - - if (!doc.break && fits(next, cmds, rem, options)) { - cmds.push(next); - } else { - // Expanded states are a rare case where a document - // can manually provide multiple representations of - // itself. It provides an array of documents - // going from the least expanded (most flattened) - // representation first to the most expanded. If a - // group has these, we need to manually go through - // these states and find the first one that fits. - if (doc.expandedStates) { - const mostExpanded = doc.expandedStates[doc.expandedStates.length - 1]; - - if (doc.break) { - cmds.push([ind, MODE_BREAK, mostExpanded]); - break; - } else { - for (let i = 1; i < doc.expandedStates.length + 1; i++) { - if (i >= doc.expandedStates.length) { - cmds.push([ind, MODE_BREAK, mostExpanded]); - break; - } else { - const state = doc.expandedStates[i]; - const cmd = [ind, MODE_FLAT, state]; - - if (fits(cmd, cmds, rem, options)) { - cmds.push(cmd); - break; - } - } - } - } - } else { - cmds.push([ind, MODE_BREAK, doc.contents]); - } - } + function verb(n) { + return function (v) { + return step([n, v]); + }; + } - break; - } - } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); - if (doc.id) { - groupModeMap[doc.id] = cmds[cmds.length - 1][1]; - } + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; break; - // Fills each line with as much code as possible before moving to a new - // line with the same indentation. - // - // Expects doc.parts to be an array of alternating content and - // whitespace. The whitespace contains the linebreaks. - // - // For example: - // ["I", line, "love", line, "monkeys"] - // or - // [{ type: group, ... }, softline, { type: group, ... }] - // - // It uses this parts structure to handle three main layout cases: - // * The first two content items fit on the same line without - // breaking - // -> output the first content item and the whitespace "flat". - // * Only the first content item fits on the line without breaking - // -> output the first content item "flat" and the whitespace with - // "break". - // * Neither content item fits on the line without breaking - // -> output the first content item and the whitespace with "break". - - case "fill": - { - const rem = width - pos; - const { - parts - } = doc; - - if (parts.length === 0) { - break; - } - - const [content, whitespace] = parts; - const contentFlatCmd = [ind, MODE_FLAT, content]; - const contentBreakCmd = [ind, MODE_BREAK, content]; - const contentFits = fits(contentFlatCmd, [], rem, options, true); - if (parts.length === 1) { - if (contentFits) { - cmds.push(contentFlatCmd); - } else { - cmds.push(contentBreakCmd); - } + case 4: + _.label++; + return { + value: op[1], + done: false + }; - break; - } + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; - const whitespaceFlatCmd = [ind, MODE_FLAT, whitespace]; - const whitespaceBreakCmd = [ind, MODE_BREAK, whitespace]; + case 7: + op = _.ops.pop(); - if (parts.length === 2) { - if (contentFits) { - cmds.push(whitespaceFlatCmd); - cmds.push(contentFlatCmd); - } else { - cmds.push(whitespaceBreakCmd); - cmds.push(contentBreakCmd); - } + _.trys.pop(); - break; - } // At this point we've handled the first pair (context, separator) - // and will create a new fill doc for the rest of the content. - // Ideally we wouldn't mutate the array here but copying all the - // elements to a new array would make this algorithm quadratic, - // which is unusable for large arrays (e.g. large texts in JSX). - - - parts.splice(0, 2); - const remainingCmd = [ind, mode, fill$1(parts)]; - const secondContent = parts[0]; - const firstAndSecondContentFlatCmd = [ind, MODE_FLAT, concat$1([content, whitespace, secondContent])]; - const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, options, true); - - if (firstAndSecondContentFits) { - cmds.push(remainingCmd); - cmds.push(whitespaceFlatCmd); - cmds.push(contentFlatCmd); - } else if (contentFits) { - cmds.push(remainingCmd); - cmds.push(whitespaceBreakCmd); - cmds.push(contentFlatCmd); - } else { - cmds.push(remainingCmd); - cmds.push(whitespaceBreakCmd); - cmds.push(contentBreakCmd); - } + continue; - break; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; } - case "if-break": - { - const groupMode = doc.groupId ? groupModeMap[doc.groupId] : mode; - - if (groupMode === MODE_BREAK) { - if (doc.breakContents) { - cmds.push([ind, mode, doc.breakContents]); - } - } - - if (groupMode === MODE_FLAT) { - if (doc.flatContents) { - cmds.push([ind, mode, doc.flatContents]); - } - } - + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; break; } - case "line-suffix": - lineSuffix.push([ind, mode, doc.contents]); - break; - - case "line-suffix-boundary": - if (lineSuffix.length > 0) { - cmds.push([ind, mode, { - type: "line", - hard: true - }]); + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; } - break; - - case "line": - switch (mode) { - case MODE_FLAT: - if (!doc.hard) { - if (!doc.soft) { - out.push(" "); - pos += 1; - } - - break; - } else { - // This line was forced into the output even if we - // were in flattened mode, so we need to tell the next - // group that no matter what, it needs to remeasure - // because the previous measurement didn't accurately - // capture the entire expression (this is necessary - // for nested groups) - shouldRemeasure = true; - } + if (t && _.label < t[2]) { + _.label = t[2]; - // fallthrough + _.ops.push(op); - case MODE_BREAK: - if (lineSuffix.length) { - cmds.push([ind, mode, doc]); - cmds.push(...lineSuffix.reverse()); - lineSuffix = []; - break; - } + break; + } - if (doc.literal) { - if (ind.root) { - out.push(newLine, ind.root.value); - pos = ind.root.length; - } else { - out.push(newLine); - pos = 0; - } - } else { - pos -= trim$1(out); - out.push(newLine + ind.value); - pos = ind.length; - } + if (t[2]) _.ops.pop(); - break; - } + _.trys.pop(); - break; + continue; } - } - } - const cursorPlaceholderIndex = out.indexOf(cursor$1.placeholder); + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } - if (cursorPlaceholderIndex !== -1) { - const otherCursorPlaceholderIndex = out.indexOf(cursor$1.placeholder, cursorPlaceholderIndex + 1); - const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(""); - const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(""); - const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(""); + if (op[0] & 5) throw op[1]; return { - formatted: beforeCursor + aroundCursor + afterCursor, - cursorNodeStart: beforeCursor.length, - cursorNodeText: aroundCursor + value: op[0] ? op[1] : void 0, + done: true }; } - - return { - formatted: out.join("") - }; } - -var docPrinter = { - printDocToString -}; - -const traverseDocOnExitStackMarker = {}; - -function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) { - const docsStack = [doc]; - - while (docsStack.length !== 0) { - const doc = docsStack.pop(); - - if (doc === traverseDocOnExitStackMarker) { - onExit(docsStack.pop()); - continue; - } - - if (onExit) { - docsStack.push(doc, traverseDocOnExitStackMarker); - } - - if ( // Should Recurse - !onEnter || onEnter(doc) !== false) { - // When there are multiple parts to process, - // the parts need to be pushed onto the stack in reverse order, - // so that they are processed in the original order - // when the stack is popped. - if (doc.type === "concat" || doc.type === "fill") { - for (let ic = doc.parts.length, i = ic - 1; i >= 0; --i) { - docsStack.push(doc.parts[i]); - } - } else if (doc.type === "if-break") { - if (doc.flatContents) { - docsStack.push(doc.flatContents); - } - - if (doc.breakContents) { - docsStack.push(doc.breakContents); - } - } else if (doc.type === "group" && doc.expandedStates) { - if (shouldTraverseConditionalGroups) { - for (let ic = doc.expandedStates.length, i = ic - 1; i >= 0; --i) { - docsStack.push(doc.expandedStates[i]); - } - } else { - docsStack.push(doc.contents); - } - } else if (doc.contents) { - docsStack.push(doc.contents); - } - } - } +function __createBinding(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; } - -function mapDoc(doc, cb) { - if (doc.type === "concat" || doc.type === "fill") { - const parts = doc.parts.map(part => mapDoc(part, cb)); - return cb(Object.assign({}, doc, { - parts - })); - } else if (doc.type === "if-break") { - const breakContents = doc.breakContents && mapDoc(doc.breakContents, cb); - const flatContents = doc.flatContents && mapDoc(doc.flatContents, cb); - return cb(Object.assign({}, doc, { - breakContents, - flatContents - })); - } else if (doc.contents) { - const contents = mapDoc(doc.contents, cb); - return cb(Object.assign({}, doc, { - contents - })); - } - - return cb(doc); +function __exportStar(m, exports) { + for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; } - -function findInDoc(doc, fn, defaultValue) { - let result = defaultValue; - let hasStopped = false; - - function findInDocOnEnterFn(doc) { - const maybeResult = fn(doc); - - if (maybeResult !== undefined) { - hasStopped = true; - result = maybeResult; +function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === "number") return { + next: function () { + if (o && i >= o.length) o = void 0; + return { + value: o && o[i++], + done: !o + }; } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); +} +function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; - if (hasStopped) { - return false; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { + error: error + }; + } finally { + try { + if (r && !r.done && (m = i["return"])) m.call(i); + } finally { + if (e) throw e.error; } } - traverseDoc(doc, findInDocOnEnterFn); - return result; + return ar; } +function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); -function isEmpty(n) { - return typeof n === "string" && n.length === 0; + return ar; } +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; -function isLineNextFn(doc) { - if (typeof doc === "string") { - return false; - } + for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; - if (doc.type === "line") { - return true; - } + return r; } - -function isLineNext(doc) { - return findInDoc(doc, isLineNextFn, false); +function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); } +function __asyncGenerator(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 willBreakFn(doc) { - if (doc.type === "group" && doc.break) { - return true; + 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); + }); + }; } - if (doc.type === "line" && doc.hard) { - return true; + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } } - if (doc.type === "break-parent") { - return true; + function step(r) { + r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } -} - -function willBreak(doc) { - return findInDoc(doc, willBreakFn, false); -} - -function breakParentGroup(groupStack) { - if (groupStack.length > 0) { - const parentGroup = groupStack[groupStack.length - 1]; // Breaks are not propagated through conditional groups because - // the user is expected to manually handle what breaks. - if (!parentGroup.expandedStates) { - parentGroup.break = true; - } + function fulfill(value) { + resume("next", value); } - return null; -} - -function propagateBreaks(doc) { - const alreadyVisitedSet = new Set(); - const groupStack = []; - - function propagateBreaksOnEnterFn(doc) { - if (doc.type === "break-parent") { - breakParentGroup(groupStack); - } - - if (doc.type === "group") { - groupStack.push(doc); - - if (alreadyVisitedSet.has(doc)) { - return false; - } - - alreadyVisitedSet.add(doc); - } + function reject(value) { + resume("throw", value); } - function propagateBreaksOnExitFn(doc) { - if (doc.type === "group") { - const group = groupStack.pop(); - - if (group.break) { - breakParentGroup(groupStack); - } - } + function settle(f, v) { + if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - - traverseDoc(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, - /* shouldTraverseConditionalGroups */ - true); } +function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { + throw e; + }), verb("return"), i[Symbol.iterator] = function () { + return this; + }, i; -function removeLinesFn(doc) { - // Force this doc into flat mode by statically converting all - // lines into spaces (or soft lines into nothing). Hard lines - // should still output because there's too great of a chance - // of breaking existing assumptions otherwise. - if (doc.type === "line" && !doc.hard) { - return doc.soft ? "" : " "; - } else if (doc.type === "if-break") { - return doc.flatContents || ""; + function verb(n, f) { + i[n] = o[n] ? function (v) { + return (p = !p) ? { + value: __await(o[n](v)), + done: n === "return" + } : f ? f(v) : v; + } : f; } - - return doc; -} - -function removeLines(doc) { - return mapDoc(doc, removeLinesFn); } +function __asyncValues(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 getInnerParts(doc) { - let { - parts - } = doc; - let lastPart; // Avoid a falsy element like "" - - for (let i = doc.parts.length; i > 0 && !lastPart; i--) { - lastPart = parts[i - 1]; + 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); + }); + }; } - if (lastPart.type === "group") { - parts = lastPart.contents.parts; + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function (v) { + resolve({ + value: v, + done: d + }); + }, reject); } - - return parts; } - -function stripTrailingHardline(doc, withInnerParts = false) { - // HACK remove ending hardline, original PR: #1984 - if (doc.type === "concat" && doc.parts.length !== 0) { - const parts = withInnerParts ? getInnerParts(doc) : doc.parts; - const lastPart = parts[parts.length - 1]; - - if (lastPart.type === "concat") { - if (lastPart.parts.length === 2 && lastPart.parts[0].hard && lastPart.parts[1].type === "break-parent") { - return { - type: "concat", - parts: parts.slice(0, -1) - }; - } - - return { - type: "concat", - parts: doc.parts.slice(0, -1).concat(stripTrailingHardline(lastPart)) - }; - } +function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { + value: raw + }); + } else { + cooked.raw = raw; } - return doc; + return cooked; } - -function normalizeParts(parts) { - const newParts = []; - const restParts = parts.filter(Boolean); - - while (restParts.length !== 0) { - const part = restParts.shift(); - - if (!part) { - continue; - } - - if (part.type === "concat") { - restParts.unshift(...part.parts); - continue; - } - - if (newParts.length !== 0 && typeof newParts[newParts.length - 1] === "string" && typeof part === "string") { - newParts[newParts.length - 1] += part; - continue; - } - - newParts.push(part); - } - - return newParts; +function __importStar$2(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result.default = mod; + return result; } - -function normalizeDoc(doc) { - return mapDoc(doc, currentDoc => { - if (!currentDoc.parts) { - return currentDoc; - } - - return Object.assign({}, currentDoc, { - parts: normalizeParts(currentDoc.parts) - }); - }); +function __importDefault$1(mod) { + return mod && mod.__esModule ? mod : { + default: mod + }; } - -var docUtils = { - isEmpty, - willBreak, - isLineNext, - traverseDoc, - findInDoc, - mapDoc, - propagateBreaks, - removeLines, - stripTrailingHardline, - normalizeParts, - normalizeDoc -}; - -function flattenDoc(doc) { - if (doc.type === "concat") { - const res = []; - - for (let i = 0; i < doc.parts.length; ++i) { - const doc2 = doc.parts[i]; - - if (typeof doc2 !== "string" && doc2.type === "concat") { - res.push(...flattenDoc(doc2).parts); - } else { - const flattened = flattenDoc(doc2); - - if (flattened !== "") { - res.push(flattened); - } - } - } - - return Object.assign({}, doc, { - parts: res - }); - } else if (doc.type === "if-break") { - return Object.assign({}, doc, { - breakContents: doc.breakContents != null ? flattenDoc(doc.breakContents) : null, - flatContents: doc.flatContents != null ? flattenDoc(doc.flatContents) : null - }); - } else if (doc.type === "group") { - return Object.assign({}, doc, { - contents: flattenDoc(doc.contents), - expandedStates: doc.expandedStates ? doc.expandedStates.map(flattenDoc) : doc.expandedStates - }); - } else if (doc.contents) { - return Object.assign({}, doc, { - contents: flattenDoc(doc.contents) - }); +function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); } - return doc; + return privateMap.get(receiver); } - -function printDoc(doc) { - if (typeof doc === "string") { - return JSON.stringify(doc); - } - - if (doc.type === "line") { - if (doc.literal) { - return "literalline"; - } - - if (doc.hard) { - return "hardline"; - } - - if (doc.soft) { - return "softline"; - } - - return "line"; +function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); } - if (doc.type === "break-parent") { - return "breakParent"; - } + privateMap.set(receiver, value); + return value; +} - if (doc.type === "trim") { - return "trim"; - } +var tslib_es6 = /*#__PURE__*/Object.freeze({ + __proto__: null, + __extends: __extends, + get __assign () { return __assign; }, + __rest: __rest, + __decorate: __decorate, + __param: __param, + __metadata: __metadata, + __awaiter: __awaiter$2, + __generator: __generator$2, + __createBinding: __createBinding, + __exportStar: __exportStar, + __values: __values, + __read: __read, + __spread: __spread, + __spreadArrays: __spreadArrays, + __await: __await, + __asyncGenerator: __asyncGenerator, + __asyncDelegator: __asyncDelegator, + __asyncValues: __asyncValues, + __makeTemplateObject: __makeTemplateObject, + __importStar: __importStar$2, + __importDefault: __importDefault$1, + __classPrivateFieldGet: __classPrivateFieldGet, + __classPrivateFieldSet: __classPrivateFieldSet +}); - if (doc.type === "concat") { - return "[" + doc.parts.map(printDoc).join(", ") + "]"; - } +var api = createCommonjsModule(function (module, exports) { - if (doc.type === "indent") { - return "indent(" + printDoc(doc.contents) + ")"; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.apiDescriptor = { + key: key => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(key) ? key : JSON.stringify(key), - if (doc.type === "align") { - return doc.n === -Infinity ? "dedentToRoot(" + printDoc(doc.contents) + ")" : doc.n < 0 ? "dedent(" + printDoc(doc.contents) + ")" : doc.n.type === "root" ? "markAsRoot(" + printDoc(doc.contents) + ")" : "align(" + JSON.stringify(doc.n) + ", " + printDoc(doc.contents) + ")"; - } + value(value) { + if (value === null || typeof value !== 'object') { + return JSON.stringify(value); + } - if (doc.type === "if-break") { - return "ifBreak(" + printDoc(doc.breakContents) + (doc.flatContents ? ", " + printDoc(doc.flatContents) : "") + ")"; - } + if (Array.isArray(value)) { + return `[${value.map(subValue => exports.apiDescriptor.value(subValue)).join(', ')}]`; + } - if (doc.type === "group") { - if (doc.expandedStates) { - return "conditionalGroup(" + "[" + doc.expandedStates.map(printDoc).join(",") + "])"; - } + const keys = Object.keys(value); + return keys.length === 0 ? '{}' : `{ ${keys.map(key => `${exports.apiDescriptor.key(key)}: ${exports.apiDescriptor.value(value[key])}`).join(', ')} }`; + }, - return (doc.break ? "wrappedGroup" : "group") + "(" + printDoc(doc.contents) + ")"; - } + pair: ({ + key, + value + }) => exports.apiDescriptor.value({ + [key]: value + }) + }; +}); - if (doc.type === "fill") { - return "fill" + "(" + doc.parts.map(printDoc).join(", ") + ")"; - } +var descriptors = createCommonjsModule(function (module, exports) { - if (doc.type === "line-suffix") { - return "lineSuffix(" + printDoc(doc.contents) + ")"; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); - if (doc.type === "line-suffix-boundary") { - return "lineSuffixBoundary"; - } + tslib_es6.__exportStar(api, exports); +}); - throw new Error("Unknown doc type " + doc.type); -} +var matchOperatorsRe$1 = /[|\\{}()[\]^$+*?.]/g; -var docDebug = { - printDocToDebug(doc) { - return printDoc(flattenDoc(doc)); +var escapeStringRegexp$1 = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); } + return str.replace(matchOperatorsRe$1, '\\$&'); }; -/** - * @typedef {import("./doc-builders").Doc} Doc - */ - - -var document = { - builders: docBuilders, - printer: docPrinter, - utils: docUtils, - debug: docDebug -}; - -/** - * @class - */ - - -class LineByLine { - constructor(file, options) { - options = options || {}; - if (!options.readChunk) options.readChunk = 1024; - - if (!options.newLineCharacter) { - options.newLineCharacter = 0x0a; //linux line ending - } else { - options.newLineCharacter = options.newLineCharacter.charCodeAt(0); - } - - if (typeof file === 'number') { - this.fd = file; - } else { - this.fd = fs__default['default'].openSync(file, 'r'); - } - - this.options = options; - this.newLineCharacter = options.newLineCharacter; - this.reset(); - } - - _searchInBuffer(buffer, hexNeedle) { - let found = -1; - - for (let i = 0; i <= buffer.length; i++) { - let b_byte = buffer[i]; - - if (b_byte === hexNeedle) { - found = i; - break; - } - } - - return found; - } +var colorName$2 = { + "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] +}; - reset() { - this.eofReached = false; - this.linesCache = []; - this.fdPosition = 0; - } +/* MIT license */ +var conversions$2 = createCommonjsModule(function (module) { + // NOTE: conversions should only return primitive values (i.e. arrays, or + // values that give correct `typeof` results). + // do not use box values types (i.e. Number(), String(), etc.) + var reverseKeywords = {}; - close() { - fs__default['default'].closeSync(this.fd); - this.fd = null; + for (var key in colorName$2) { + if (colorName$2.hasOwnProperty(key)) { + reverseKeywords[colorName$2[key]] = key; + } } - _extractLines(buffer) { - let line; - const lines = []; - let bufferPosition = 0; - let lastNewLineBufferPosition = 0; + var convert = module.exports = { + 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'] + } + }; // hide .channels and .labels properties - while (true) { - let bufferPositionValue = buffer[bufferPosition++]; + for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } - if (bufferPositionValue === this.newLineCharacter) { - line = buffer.slice(lastNewLineBufferPosition, bufferPosition); - lines.push(line); - lastNewLineBufferPosition = bufferPosition; - } else if (!bufferPositionValue) { - break; + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); } - } - let leftovers = buffer.slice(lastNewLineBufferPosition, bufferPosition); + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } - if (leftovers.length) { - lines.push(leftovers); + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', { + value: channels + }); + Object.defineProperty(convert[model], 'labels', { + value: labels + }); } - - return lines; } - _readChunk(lineLeftovers) { - let totalBytesRead = 0; - let bytesRead; - const buffers = []; - - do { - const readBuffer = new Buffer(this.options.readChunk); - bytesRead = fs__default['default'].readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition); - totalBytesRead = totalBytesRead + bytesRead; - this.fdPosition = this.fdPosition + bytesRead; - buffers.push(readBuffer); - } while (bytesRead && this._searchInBuffer(buffers[buffers.length - 1], this.options.newLineCharacter) === -1); - - let bufferData = Buffer.concat(buffers); + convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; - if (bytesRead < this.options.readChunk) { - this.eofReached = true; - bufferData = bufferData.slice(0, totalBytesRead); + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; } - if (totalBytesRead) { - this.linesCache = this._extractLines(bufferData); + h = Math.min(h * 60, 360); - if (lineLeftovers) { - this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]); - } + if (h < 0) { + h += 360; } - return totalBytesRead; - } - - next() { - if (!this.fd) return false; - let line = false; + l = (min + max) / 2; - if (this.eofReached && this.linesCache.length === 0) { - return line; + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); } - let bytesRead; + return [h, s * 100, l * 100]; + }; - if (!this.linesCache.length) { - bytesRead = this._readChunk(); - } + convert.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); - if (this.linesCache.length) { - line = this.linesCache.shift(); - const lastLineCharacter = line[line.length - 1]; + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; - if (lastLineCharacter !== 0x0a) { - bytesRead = this._readChunk(line); + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); - if (bytesRead) { - line = this.linesCache.shift(); - } + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; } - } - - if (this.eofReached && this.linesCache.length === 0) { - this.close(); - } - if (line && line[line.length - 1] === this.newLineCharacter) { - line = line.slice(0, line.length - 1); + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } } - return line; - } + return [h * 360, s * 100, v * 100]; + }; -} + convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; + }; -var readlines = LineByLine; + convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; + }; + /** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ -/** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ -function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; + function comparativeDistance(x, y) { + return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2); } - return result; -} - -var fromPairs_1 = fromPairs; + convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; -class ConfigError extends Error {} + if (reversed) { + return reversed; + } -class DebugError extends Error {} + var currentClosestDistance = Infinity; + var currentClosestKeyword; -class UndefinedParserError extends Error {} + for (var keyword in colorName$2) { + if (colorName$2.hasOwnProperty(keyword)) { + var value = colorName$2[keyword]; // Compute comparative distance -var errors = { - ConfigError, - DebugError, - UndefinedParserError -}; + var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest -/*! ***************************************************************************** -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. -***************************************************************************** */ + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } -/* global Reflect, Promise */ -var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + return currentClosestKeyword; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} -var __assign = function () { - __assign = Object.assign || function __assign(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; + convert.keyword.rgb = function (keyword) { + return colorName$2[keyword]; + }; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; - } + convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; // assume sRGB - return t; + r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; + g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; + b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; + var x = r * 0.4124 + g * 0.3576 + b * 0.1805; + var y = r * 0.2126 + g * 0.7152 + b * 0.0722; + var z = r * 0.0193 + g * 0.1192 + b * 0.9505; + return [x * 100, y * 100, z * 100]; }; - return __assign.apply(this, arguments); -}; -function __rest(s, e) { - var t = {}; - - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; - - if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; - } - return t; -} -function __decorate(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; -} -function __param(paramIndex, decorator) { - return function (target, key) { - decorator(target, key, paramIndex); + convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; }; -} -function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); -} -function __awaiter(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } + convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } + if (s === 0) { + val = l * 255; + return [val, val, val]; } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -} -function __generator(thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; - - function verb(n) { - return function (v) { - return step([n, v]); - }; - } + t1 = 2 * l - t2; + rgb = [0, 0, 0]; - function step(op) { - if (f) throw new TypeError("Generator is already executing."); + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; + if (t3 < 0) { + t3++; + } - switch (op[0]) { - case 0: - case 1: - t = op; - break; + if (t3 > 1) { + t3--; + } - case 4: - _.label++; - return { - value: op[1], - done: false - }; + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; + rgb[i] = val * 255; + } - case 7: - op = _.ops.pop(); + return rgb; + }; - _.trys.pop(); + convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; + }; - continue; + convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - s * f); + var t = 255 * v * (1 - s * (1 - f)); + v *= 255; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } + switch (hi) { + case 0: + return [v, t, p]; - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } + case 1: + return [q, v, p]; - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } + case 2: + return [p, v, t]; - if (t && _.label < t[2]) { - _.label = t[2]; + case 3: + return [p, q, v]; - _.ops.push(op); + case 4: + return [t, p, v]; - break; - } + case 5: + return [v, p, q]; + } + }; - if (t[2]) _.ops.pop(); + convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; + }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb - _.trys.pop(); - continue; - } + convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; // wh + bl cant be > 1 - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; + if (ratio > 1) { + wh /= ratio; + bl /= ratio; } - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } -} -function __createBinding(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -} -function __exportStar(m, exports) { - for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p]; -} -function __values(o) { - var s = typeof Symbol === "function" && Symbol.iterator, - m = s && o[s], - i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { - value: o && o[i++], - done: !o - }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); -} -function __read(o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), - r, - ar = [], - e; + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } catch (error) { - e = { - error: error - }; - } finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } finally { - if (e) throw e.error; + if ((i & 0x01) !== 0) { + f = 1 - f; } - } - - return ar; -} -function __spread() { - for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); - return ar; -} -function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + n = wh + f * (v - wh); // linear interpolation - for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; + var r; + var g; + var b; - return r; -} -function __await(v) { - return this instanceof __await ? (this.v = v, this) : new __await(v); -} -function __asyncGenerator(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; + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; - 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); - }); - }; - } + case 1: + r = n; + g = v; + b = wh; + break; - function resume(n, v) { - try { - step(g[n](v)); - } catch (e) { - settle(q[0][3], e); - } - } + case 2: + r = wh; + g = v; + b = n; + break; - function step(r) { - r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); - } + case 3: + r = wh; + g = n; + b = v; + break; - function fulfill(value) { - resume("next", value); - } + case 4: + r = n; + g = wh; + b = v; + break; - function reject(value) { - resume("throw", value); - } + case 5: + r = v; + g = wh; + b = n; + break; + } - function settle(f, v) { - if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); - } -} -function __asyncDelegator(o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { - throw e; - }), verb("return"), i[Symbol.iterator] = function () { - return this; - }, i; + return [r * 255, g * 255, b * 255]; + }; - function verb(n, f) { - i[n] = o[n] ? function (v) { - return (p = !p) ? { - value: __await(o[n](v)), - done: n === "return" - } : f ? f(v) : v; - } : f; - } -} -function __asyncValues(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); + convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; + }; - 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); - }); - }; - } + convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + r = x * 3.2406 + y * -1.5372 + z * -0.4986; + g = x * -0.9689 + y * 1.8758 + z * 0.0415; + b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB - function settle(resolve, reject, d, v) { - Promise.resolve(v).then(function (v) { - resolve({ - value: v, - done: d - }); - }, reject); - } -} -function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { - Object.defineProperty(cooked, "raw", { - value: raw - }); - } else { - cooked.raw = raw; - } + r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92; + g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92; + b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + return [r * 255, g * 255, b * 255]; + }; - return cooked; -} -function __importStar(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; - return result; -} -function __importDefault(mod) { - return mod && mod.__esModule ? mod : { - default: mod + convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; }; -} -function __classPrivateFieldGet(receiver, privateMap) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - return privateMap.get(receiver); -} -function __classPrivateFieldSet(receiver, privateMap, value) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to set private field on non-instance"); - } - - privateMap.set(receiver, value); - return value; -} - -var tslib_es6 = /*#__PURE__*/Object.freeze({ - __proto__: null, - __extends: __extends, - get __assign () { return __assign; }, - __rest: __rest, - __decorate: __decorate, - __param: __param, - __metadata: __metadata, - __awaiter: __awaiter, - __generator: __generator, - __createBinding: __createBinding, - __exportStar: __exportStar, - __values: __values, - __read: __read, - __spread: __spread, - __spreadArrays: __spreadArrays, - __await: __await, - __asyncGenerator: __asyncGenerator, - __asyncDelegator: __asyncDelegator, - __asyncValues: __asyncValues, - __makeTemplateObject: __makeTemplateObject, - __importStar: __importStar, - __importDefault: __importDefault, - __classPrivateFieldGet: __classPrivateFieldGet, - __classPrivateFieldSet: __classPrivateFieldSet -}); - -var api = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.apiDescriptor = { - key: key => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(key) ? key : JSON.stringify(key), + convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; + }; - value(value) { - if (value === null || typeof value !== 'object') { - return JSON.stringify(value); - } + convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; - if (Array.isArray(value)) { - return `[${value.map(subValue => exports.apiDescriptor.value(subValue)).join(', ')}]`; - } + if (h < 0) { + h += 360; + } - const keys = Object.keys(value); - return keys.length === 0 ? '{}' : `{ ${keys.map(key => `${exports.apiDescriptor.key(key)}: ${exports.apiDescriptor.value(value[key])}`).join(', ')} }`; - }, + c = Math.sqrt(a * a + b * b); + return [l, c, h]; + }; - pair: ({ - key, - value - }) => exports.apiDescriptor.value({ - [key]: value - }) + convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + return [l, a, b]; }; -}); -var descriptors = createCommonjsModule(function (module, exports) { + convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization - Object.defineProperty(exports, "__esModule", { - value: true - }); + value = Math.round(value / 50); - tslib_es6.__exportStar(api, exports); -}); + if (value === 0) { + return 30; + } -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); -var escapeStringRegexp$1 = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } + if (value === 2) { + ansi += 60; + } - return str.replace(matchOperatorsRe, '\\$&'); -}; + return ansi; + }; -var colorName = { - "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] -}; + convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + }; -var conversions = createCommonjsModule(function (module) { - /* MIT license */ - // NOTE: conversions should only return primitive values (i.e. arrays, or - // values that give correct `typeof` results). - // do not use box values types (i.e. Number(), String(), etc.) - var reverseKeywords = {}; + convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. - for (var key in colorName) { - if (colorName.hasOwnProperty(key)) { - reverseKeywords[colorName[key]] = key; - } - } + if (r === g && g === b) { + if (r < 8) { + return 16; + } - var convert = module.exports = { - 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'] + if (r > 248) { + return 231; + } + + return Math.round((r - 8) / 247 * 24) + 232; } - }; // hide .channels and .labels properties - for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } + var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; + }; - if (!('labels' in convert[model])) { - throw new Error('missing channel labels property: ' + model); - } + convert.ansi16.rgb = function (args) { + var color = args % 10; // handle greyscale - if (convert[model].labels.length !== convert[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; } - var channels = convert[model].channels; - var labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', { - value: channels - }); - Object.defineProperty(convert[model], 'labels', { - value: labels - }); + color = color / 10.5 * 255; + return [color, color, color]; } - } - convert.rgb.hsl = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var l; + var mult = (~~(args > 50) + 1) * 0.5; + var r = (color & 1) * mult * 255; + var g = (color >> 1 & 1) * mult * 255; + var b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; + }; - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; + convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; } - h = Math.min(h * 60, 360); + args -= 16; + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = rem % 6 / 5 * 255; + return [r, g, b]; + }; - if (h < 0) { - h += 360; + convert.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; + }; + + convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + + if (!match) { + return [0, 0, 0]; } - l = (min + max) / 2; + var colorString = match[0]; - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); } - return [h, s * 100, l * 100]; + var integer = parseInt(colorString, 16); + var r = integer >> 16 & 0xFF; + var g = integer >> 8 & 0xFF; + var b = integer & 0xFF; + return [r, g, b]; }; - convert.rgb.hsv = function (rgb) { - var rdif; - var gdif; - var bdif; - var h; - var s; + convert.rgb.hcg = function (rgb) { var r = rgb[0] / 255; var g = rgb[1] / 255; var b = rgb[2] / 255; - var v = Math.max(r, g, b); - var diff = v - Math.min(r, g, b); - - var diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; - }; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = max - min; + var grayscale; + var hue; - if (diff === 0) { - h = s = 0; + if (chroma < 1) { + grayscale = min / (1 - chroma); } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); - - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = 1 / 3 + rdif - bdif; - } else if (b === v) { - h = 2 / 3 + gdif - rdif; - } - - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } + grayscale = 0; } - return [h * 360, s * 100, v * 100]; - }; + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; + } - convert.rgb.hwb = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; - var w = 1 / 255 * Math.min(r, Math.min(g, b)); - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - return [h, w * 100, b * 100]; + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; }; - convert.rgb.cmyk = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var c; - var m; - var y; - var k; - k = Math.min(1 - r, 1 - g, 1 - b); - c = (1 - r - k) / (1 - k) || 0; - m = (1 - g - k) / (1 - k) || 0; - y = (1 - b - k) / (1 - k) || 0; - return [c * 100, m * 100, y * 100, k * 100]; - }; - /** - * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - * */ - - - function comparativeDistance(x, y) { - return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2); - } - - convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; - - if (reversed) { - return reversed; - } - - var currentClosestDistance = Infinity; - var currentClosestKeyword; - - for (var keyword in colorName) { - if (colorName.hasOwnProperty(keyword)) { - var value = colorName[keyword]; // Compute comparative distance - - var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest - - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - } - - return currentClosestKeyword; - }; - - convert.keyword.rgb = function (keyword) { - return colorName[keyword]; - }; - - convert.rgb.xyz = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; // assume sRGB - - r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; - g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; - b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; - var x = r * 0.4124 + g * 0.3576 + b * 0.1805; - var y = r * 0.2126 + g * 0.7152 + b * 0.0722; - var z = r * 0.0193 + g * 0.1192 + b * 0.9505; - return [x * 100, y * 100, z * 100]; - }; - - convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; - l = 116 * y - 16; - a = 500 * (x - y); - b = 200 * (y - z); - return [l, a, b]; - }; - - convert.hsl.rgb = function (hsl) { - var h = hsl[0] / 360; + convert.hsl.hcg = function (hsl) { var s = hsl[1] / 100; var l = hsl[2] / 100; - var t1; - var t2; - var t3; - var rgb; - var val; - - if (s === 0) { - val = l * 255; - return [val, val, val]; - } + var c = 1; + var f = 0; if (l < 0.5) { - t2 = l * (1 + s); + c = 2.0 * s * l; } else { - t2 = l + s - l * s; + c = 2.0 * s * (1.0 - l); } - t1 = 2 * l - t2; - rgb = [0, 0, 0]; - - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - - if (t3 < 0) { - t3++; - } - - if (t3 > 1) { - t3--; - } - - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - - rgb[i] = val * 255; + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); } - return rgb; - }; - - convert.hsl.hsv = function (hsl) { - var h = hsl[0]; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s; - var lmin = Math.max(l, 0.01); - var sv; - var v; - l *= 2; - s *= l <= 1 ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v = (l + s) / 2; - sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); - return [h, sv * 100, v * 100]; + return [hsl[0], c * 100, f * 100]; }; - convert.hsv.rgb = function (hsv) { - var h = hsv[0] / 60; + convert.hsv.hcg = function (hsv) { var s = hsv[1] / 100; var v = hsv[2] / 100; - var hi = Math.floor(h) % 6; - var f = h - Math.floor(h); - var p = 255 * v * (1 - s); - var q = 255 * v * (1 - s * f); - var t = 255 * v * (1 - s * (1 - f)); - v *= 255; - - switch (hi) { - case 0: - return [v, t, p]; - - case 1: - return [q, v, p]; - - case 2: - return [p, v, t]; - - case 3: - return [p, q, v]; - - case 4: - return [t, p, v]; + var c = s * v; + var f = 0; - case 5: - return [v, p, q]; + if (c < 1.0) { + f = (v - c) / (1 - c); } - }; - - convert.hsv.hsl = function (hsv) { - var h = hsv[0]; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var vmin = Math.max(v, 0.01); - var lmin; - var sl; - var l; - l = (2 - s) * v; - lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= lmin <= 1 ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - return [h, sl * 100, l * 100]; - }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb - - - convert.hwb.rgb = function (hwb) { - var h = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i; - var v; - var f; - var n; // wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } + return [hsv[0], c * 100, f * 100]; + }; - i = Math.floor(6 * h); - v = 1 - bl; - f = 6 * h - i; + convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; - if ((i & 0x01) !== 0) { - f = 1 - f; + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; } - n = wh + f * (v - wh); // linear interpolation - - var r; - var g; - var b; + var pure = [0, 0, 0]; + var hi = h % 1 * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; - switch (i) { - default: - case 6: + switch (Math.floor(hi)) { case 0: - r = v; - g = n; - b = wh; + pure[0] = 1; + pure[1] = v; + pure[2] = 0; break; case 1: - r = n; - g = v; - b = wh; + pure[0] = w; + pure[1] = 1; + pure[2] = 0; break; case 2: - r = wh; - g = v; - b = n; + pure[0] = 0; + pure[1] = 1; + pure[2] = v; break; case 3: - r = wh; - g = n; - b = v; + pure[0] = 0; + pure[1] = w; + pure[2] = 1; break; case 4: - r = n; - g = wh; - b = v; + pure[0] = v; + pure[1] = 0; + pure[2] = 1; break; - case 5: - r = v; - g = wh; - b = n; - break; + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; } - return [r * 255, g * 255, b * 255]; - }; - - convert.cmyk.rgb = function (cmyk) { - var c = cmyk[0] / 100; - var m = cmyk[1] / 100; - var y = cmyk[2] / 100; - var k = cmyk[3] / 100; - var r; - var g; - var b; - r = 1 - Math.min(1, c * (1 - k) + k); - g = 1 - Math.min(1, m * (1 - k) + k); - b = 1 - Math.min(1, y * (1 - k) + k); - return [r * 255, g * 255, b * 255]; + mg = (1.0 - c) * g; + return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; }; - convert.xyz.rgb = function (xyz) { - var x = xyz[0] / 100; - var y = xyz[1] / 100; - var z = xyz[2] / 100; - var r; - var g; - var b; - r = x * 3.2406 + y * -1.5372 + z * -0.4986; - g = x * -0.9689 + y * 1.8758 + z * 0.0415; - b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB - - r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92; - g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92; - b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92; - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); - return [r * 255, g * 255, b * 255]; - }; + convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + var f = 0; - convert.xyz.lab = function (xyz) { - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; - l = 116 * y - 16; - a = 500 * (x - y); - b = 200 * (y - z); - return [l, a, b]; - }; + if (v > 0.0) { + f = c / v; + } - convert.lab.xyz = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var x; - var y; - var z; - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; - var y2 = Math.pow(y, 3); - var x2 = Math.pow(x, 3); - var z2 = Math.pow(z, 3); - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - x *= 95.047; - y *= 100; - z *= 108.883; - return [x, y, z]; + return [hcg[0], f * 100, v * 100]; }; - convert.lab.lch = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var hr; - var h; - var c; - hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; + convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; - if (h < 0) { - h += 360; + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); } - c = Math.sqrt(a * a + b * b); - return [l, c, h]; + return [hcg[0], s * 100, l * 100]; }; - convert.lch.lab = function (lch) { - var l = lch[0]; - var c = lch[1]; - var h = lch[2]; - var a; - var b; - var hr; - hr = h / 360 * 2 * Math.PI; - a = c * Math.cos(hr); - b = c * Math.sin(hr); - return [l, a, b]; + convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; }; - convert.rgb.ansi16 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization - - value = Math.round(value / 50); - - if (value === 0) { - return 30; - } - - var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; - if (value === 2) { - ansi += 60; + if (c < 1) { + g = (v - c) / (1 - c); } - return ansi; + return [hwb[0], c * 100, g * 100]; }; - convert.hsv.ansi16 = function (args) { - // optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + convert.apple.rgb = function (apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; }; - convert.rgb.ansi256 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; // we use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - - if (r === g && g === b) { - if (r < 8) { - return 16; - } - - if (r > 248) { - return 231; - } - - return Math.round((r - 8) / 247 * 24) + 232; - } - - var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); - return ansi; + convert.rgb.apple = function (rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; }; - convert.ansi16.rgb = function (args) { - var color = args % 10; // handle greyscale - - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } + convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; + }; - color = color / 10.5 * 255; - return [color, color, color]; - } + convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; + }; - var mult = (~~(args > 50) + 1) * 0.5; - var r = (color & 1) * mult * 255; - var g = (color >> 1 & 1) * mult * 255; - var b = (color >> 2 & 1) * mult * 255; - return [r, g, b]; + convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; }; - convert.ansi256.rgb = function (args) { - // handle greyscale - if (args >= 232) { - var c = (args - 232) * 10 + 8; - return [c, c, c]; - } + convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; + }; - args -= 16; - var rem; - var r = Math.floor(args / 36) / 5 * 255; - var g = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b = rem % 6 / 5 * 255; - return [r, g, b]; + convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; }; - convert.rgb.hex = function (args) { - var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); + convert.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; var string = integer.toString(16).toUpperCase(); return '000000'.substring(string.length) + string; }; - convert.hex.rgb = function (args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - - if (!match) { - return [0, 0, 0]; - } + convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; + }; +}); - var colorString = match[0]; - - if (match[0].length === 3) { - colorString = colorString.split('').map(function (char) { - return char + char; - }).join(''); - } - - var integer = parseInt(colorString, 16); - var r = integer >> 16 & 0xFF; - var g = integer >> 8 & 0xFF; - var b = integer & 0xFF; - return [r, g, b]; - }; - - convert.rgb.hcg = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var max = Math.max(Math.max(r, g), b); - var min = Math.min(Math.min(r, g), b); - var chroma = max - min; - var grayscale; - var hue; - - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - - if (chroma <= 0) { - hue = 0; - } else if (max === r) { - hue = (g - b) / chroma % 6; - } else if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma + 4; - } - - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; - - convert.hsl.hcg = function (hsl) { - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var c = 1; - var f = 0; - - if (l < 0.5) { - c = 2.0 * s * l; - } else { - c = 2.0 * s * (1.0 - l); - } - - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } - - return [hsl[0], c * 100, f * 100]; - }; - - convert.hsv.hcg = function (hsv) { - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var c = s * v; - var f = 0; - - if (c < 1.0) { - f = (v - c) / (1 - c); - } - - return [hsv[0], c * 100, f * 100]; - }; - - convert.hcg.rgb = function (hcg) { - var h = hcg[0] / 360; - var c = hcg[1] / 100; - var g = hcg[2] / 100; - - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } - - var pure = [0, 0, 0]; - var hi = h % 1 * 6; - var v = hi % 1; - var w = 1 - v; - var mg = 0; - - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; - pure[1] = v; - pure[2] = 0; - break; - - case 1: - pure[0] = w; - pure[1] = 1; - pure[2] = 0; - break; - - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v; - break; - - case 3: - pure[0] = 0; - pure[1] = w; - pure[2] = 1; - break; - - case 4: - pure[0] = v; - pure[1] = 0; - pure[2] = 1; - break; - - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w; - } - - mg = (1.0 - c) * g; - return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; - }; - - convert.hcg.hsv = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - var f = 0; - - if (v > 0.0) { - f = c / v; - } - - return [hcg[0], f * 100, v * 100]; - }; - - convert.hcg.hsl = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var l = g * (1.0 - c) + 0.5 * c; - var s = 0; - - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } - - return [hcg[0], s * 100, l * 100]; - }; - - convert.hcg.hwb = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; - }; - - convert.hwb.hcg = function (hwb) { - var w = hwb[1] / 100; - var b = hwb[2] / 100; - var v = 1 - b; - var c = v - w; - var g = 0; - - if (c < 1) { - g = (v - c) / (1 - c); - } - - return [hwb[0], c * 100, g * 100]; - }; - - convert.apple.rgb = function (apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; - - convert.rgb.apple = function (rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; - }; - - convert.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; - - convert.gray.hsl = convert.gray.hsv = function (args) { - return [0, 0, args[0]]; - }; - - convert.gray.hwb = function (gray) { - return [0, 100, gray[0]]; - }; - - convert.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; - }; - - convert.gray.lab = function (gray) { - return [gray[0], 0, 0]; - }; - - convert.gray.hex = function (gray) { - var val = Math.round(gray[0] / 100 * 255) & 0xFF; - var integer = (val << 16) + (val << 8) + val; - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; - }; - - convert.rgb.gray = function (rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; - }; -}); - -/* - this function routes a model to all other models. +/* + this function routes a model to all other models. all functions that are routed have a property `.conversion` attached to the returned synthetic function. This property is an array @@ -6764,10 +7265,10 @@ var conversions = createCommonjsModule(function (module) { conversions that are not possible simply are not included. */ -function buildGraph() { +function buildGraph$2() { var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - var models = Object.keys(conversions); + var models = Object.keys(conversions$2); for (var len = models.length, i = 0; i < len; i++) { graph[models[i]] = { @@ -6782,15 +7283,15 @@ function buildGraph() { } // https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - var graph = buildGraph(); +function deriveBFS$2(fromModel) { + var graph = buildGraph$2(); var queue = [fromModel]; // unshift -> queue -> pop graph[fromModel].distance = 0; while (queue.length) { var current = queue.pop(); - var adjacents = Object.keys(conversions[current]); + var adjacents = Object.keys(conversions$2[current]); for (var len = adjacents.length, i = 0; i < len; i++) { var adjacent = adjacents[i]; @@ -6807,20 +7308,20 @@ function deriveBFS(fromModel) { return graph; } -function link(from, to) { +function link$3(from, to) { return function (args) { return to(from(args)); }; } -function wrapConversion(toModel, graph) { +function wrapConversion$2(toModel, graph) { var path = [graph[toModel].parent, toModel]; - var fn = conversions[graph[toModel].parent][toModel]; + var fn = conversions$2[graph[toModel].parent][toModel]; var cur = graph[toModel].parent; while (graph[cur].parent) { path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); + fn = link$3(conversions$2[graph[cur].parent][cur], fn); cur = graph[cur].parent; } @@ -6828,8 +7329,8 @@ function wrapConversion(toModel, graph) { return fn; } -var route = function (fromModel) { - var graph = deriveBFS(fromModel); +var route$2 = function (fromModel) { + var graph = deriveBFS$2(fromModel); var conversion = {}; var models = Object.keys(graph); @@ -6842,16 +7343,16 @@ var route = function (fromModel) { continue; } - conversion[toModel] = wrapConversion(toModel, graph); + conversion[toModel] = wrapConversion$2(toModel, graph); } return conversion; }; -var convert = {}; -var models = Object.keys(conversions); +var convert$3 = {}; +var models$2 = Object.keys(conversions$2); -function wrapRaw(fn) { +function wrapRaw$2(fn) { var wrappedFn = function (args) { if (args === undefined || args === null) { return args; @@ -6872,7 +7373,7 @@ function wrapRaw(fn) { return wrappedFn; } -function wrapRounded(fn) { +function wrapRounded$2(fn) { var wrappedFn = function (args) { if (args === undefined || args === null) { return args; @@ -6903,38 +7404,38 @@ function wrapRounded(fn) { return wrappedFn; } -models.forEach(function (fromModel) { - convert[fromModel] = {}; - Object.defineProperty(convert[fromModel], 'channels', { - value: conversions[fromModel].channels +models$2.forEach(function (fromModel) { + convert$3[fromModel] = {}; + Object.defineProperty(convert$3[fromModel], 'channels', { + value: conversions$2[fromModel].channels }); - Object.defineProperty(convert[fromModel], 'labels', { - value: conversions[fromModel].labels + Object.defineProperty(convert$3[fromModel], 'labels', { + value: conversions$2[fromModel].labels }); - var routes = route(fromModel); + var routes = route$2(fromModel); var routeModels = Object.keys(routes); routeModels.forEach(function (toModel) { var fn = routes[toModel]; - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); + convert$3[fromModel][toModel] = wrapRounded$2(fn); + convert$3[fromModel][toModel].raw = wrapRaw$2(fn); }); }); -var colorConvert = convert; +var colorConvert$2 = convert$3; -var ansiStyles = createCommonjsModule(function (module) { +var ansiStyles$2 = createCommonjsModule(function (module) { const wrapAnsi16 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); + const code = fn.apply(colorConvert$2, arguments); return `\u001B[${code + offset}m`; }; const wrapAnsi256 = (fn, offset) => function () { - const code = fn.apply(colorConvert, arguments); + const code = fn.apply(colorConvert$2, arguments); return `\u001B[${38 + offset};5;${code}m`; }; const wrapAnsi16m = (fn, offset) => function () { - const rgb = fn.apply(colorConvert, arguments); + const rgb = fn.apply(colorConvert$2, arguments); return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; }; @@ -7042,12 +7543,12 @@ var ansiStyles = createCommonjsModule(function (module) { rgb: wrapAnsi16m(rgb2rgb, 10) }; - for (let key of Object.keys(colorConvert)) { - if (typeof colorConvert[key] !== 'object') { + for (let key of Object.keys(colorConvert$2)) { + if (typeof colorConvert$2[key] !== 'object') { continue; } - const suite = colorConvert[key]; + const suite = colorConvert$2[key]; if (key === 'ansi16') { key = 'ansi'; @@ -7079,7 +7580,7 @@ var ansiStyles = createCommonjsModule(function (module) { }); }); -var hasFlag = (flag, argv) => { +var hasFlag$2 = (flag, argv) => { argv = argv || process.argv; const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--'; const pos = argv.indexOf(prefix + flag); @@ -7087,20 +7588,20 @@ var hasFlag = (flag, argv) => { return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); }; -const env = process.env; -let forceColor; +const env$2 = process.env; +let forceColor$2; -if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { - forceColor = false; -} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) { - forceColor = true; +if (hasFlag$2('no-color') || hasFlag$2('no-colors') || hasFlag$2('color=false')) { + forceColor$2 = false; +} else if (hasFlag$2('color') || hasFlag$2('colors') || hasFlag$2('color=true') || hasFlag$2('color=always')) { + forceColor$2 = true; } -if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +if ('FORCE_COLOR' in env$2) { + forceColor$2 = env$2.FORCE_COLOR.length === 0 || parseInt(env$2.FORCE_COLOR, 10) !== 0; } -function translateLevel(level) { +function translateLevel$2(level) { if (level === 0) { return false; } @@ -7113,24 +7614,24 @@ function translateLevel(level) { }; } -function supportsColor(stream) { - if (forceColor === false) { +function supportsColor$2(stream) { + if (forceColor$2 === false) { return 0; } - if (hasFlag('color=16m') || hasFlag('color=full') || hasFlag('color=truecolor')) { + if (hasFlag$2('color=16m') || hasFlag$2('color=full') || hasFlag$2('color=truecolor')) { return 3; } - if (hasFlag('color=256')) { + if (hasFlag$2('color=256')) { return 2; } - if (stream && !stream.isTTY && forceColor !== true) { + if (stream && !stream.isTTY && forceColor$2 !== true) { return 0; } - const min = forceColor ? 1 : 0; + const min = forceColor$2 ? 1 : 0; if (process.platform === 'win32') { // Node.js 7.5.0 is the first version of Node.js to include a patch to @@ -7148,26 +7649,26 @@ function supportsColor(stream) { return 1; } - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + if ('CI' in env$2) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$2) || env$2.CI_NAME === 'codeship') { return 1; } return min; } - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + if ('TEAMCITY_VERSION' in env$2) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0; } - if (env.COLORTERM === 'truecolor') { + if (env$2.COLORTERM === 'truecolor') { return 3; } - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + if ('TERM_PROGRAM' in env$2) { + const version = parseInt((env$2.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - switch (env.TERM_PROGRAM) { + switch (env$2.TERM_PROGRAM) { case 'iTerm.app': return version >= 3 ? 3 : 2; @@ -7177,51 +7678,51 @@ function supportsColor(stream) { } } - if (/-256(color)?$/i.test(env.TERM)) { + if (/-256(color)?$/i.test(env$2.TERM)) { return 2; } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) { return 1; } - if ('COLORTERM' in env) { + if ('COLORTERM' in env$2) { return 1; } - if (env.TERM === 'dumb') { + if (env$2.TERM === 'dumb') { return min; } return min; } -function getSupportLevel(stream) { - const level = supportsColor(stream); - return translateLevel(level); +function getSupportLevel$2(stream) { + const level = supportsColor$2(stream); + return translateLevel$2(level); } -var supportsColor_1 = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) +var supportsColor_1$2 = { + supportsColor: getSupportLevel$2, + stdout: getSupportLevel$2(process.stdout), + stderr: getSupportLevel$2(process.stderr) }; -const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; -const ESCAPES = new Map([['n', '\n'], ['r', '\r'], ['t', '\t'], ['b', '\b'], ['f', '\f'], ['v', '\v'], ['0', '\0'], ['\\', '\\'], ['e', '\u001B'], ['a', '\u0007']]); +const TEMPLATE_REGEX$2 = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX$2 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX$3 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX$2 = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; +const ESCAPES$2 = new Map([['n', '\n'], ['r', '\r'], ['t', '\t'], ['b', '\b'], ['f', '\f'], ['v', '\v'], ['0', '\0'], ['\\', '\\'], ['e', '\u001B'], ['a', '\u0007']]); -function unescape(c) { +function unescape$2(c) { if (c[0] === 'u' && c.length === 5 || c[0] === 'x' && c.length === 3) { return String.fromCharCode(parseInt(c.slice(1), 16)); } - return ESCAPES.get(c) || c; + return ESCAPES$2.get(c) || c; } -function parseArguments(name, args) { +function parseArguments$2(name, args) { const results = []; const chunks = args.trim().split(/\s*,\s*/g); let matches; @@ -7229,8 +7730,8 @@ function parseArguments(name, args) { for (const chunk of chunks) { if (!isNaN(chunk)) { results.push(Number(chunk)); - } else if (matches = chunk.match(STRING_REGEX)) { - results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else if (matches = chunk.match(STRING_REGEX$3)) { + results.push(matches[2].replace(ESCAPE_REGEX$2, (m, escape, chr) => escape ? unescape$2(escape) : chr)); } else { throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); } @@ -7239,16 +7740,16 @@ function parseArguments(name, args) { return results; } -function parseStyle(style) { - STYLE_REGEX.lastIndex = 0; +function parseStyle$2(style) { + STYLE_REGEX$2.lastIndex = 0; const results = []; let matches; - while ((matches = STYLE_REGEX.exec(style)) !== null) { + while ((matches = STYLE_REGEX$2.exec(style)) !== null) { const name = matches[1]; if (matches[2]) { - const args = parseArguments(name, matches[2]); + const args = parseArguments$2(name, matches[2]); results.push([name].concat(args)); } else { results.push([name]); @@ -7258,7 +7759,7 @@ function parseStyle(style) { return results; } -function buildStyle(chalk, styles) { +function buildStyle$2(chalk, styles) { const enabled = {}; for (const layer of styles) { @@ -7286,28 +7787,28 @@ function buildStyle(chalk, styles) { return current; } -var templates = (chalk, tmp) => { +var templates$2 = (chalk, tmp) => { const styles = []; const chunks = []; let chunk = []; // eslint-disable-next-line max-params - tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + tmp.replace(TEMPLATE_REGEX$2, (m, escapeChar, inverse, style, close, chr) => { if (escapeChar) { - chunk.push(unescape(escapeChar)); + chunk.push(unescape$2(escapeChar)); } else if (style) { const str = chunk.join(''); chunk = []; - chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + chunks.push(styles.length === 0 ? str : buildStyle$2(chalk, styles)(str)); styles.push({ inverse, - styles: parseStyle(style) + styles: parseStyle$2(style) }); } else if (close) { if (styles.length === 0) { throw new Error('Found extraneous } in Chalk template literal'); } - chunks.push(buildStyle(chalk, styles)(chunk.join(''))); + chunks.push(buildStyle$2(chalk, styles)(chunk.join(''))); chunk = []; styles.pop(); } else { @@ -7324,9 +7825,9 @@ var templates = (chalk, tmp) => { return chunks.join(''); }; -var chalk = createCommonjsModule(function (module) { +var chalk$2 = createCommonjsModule(function (module) { - const stdoutColor = supportsColor_1.stdout; + const stdoutColor = supportsColor_1$2.stdout; const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); // `supportsColor.level` → `ansiStyles.color[name]` mapping const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; // `color-convert` models to exclude from the Chalk API due to conflicts and such @@ -7365,14 +7866,14 @@ var chalk = createCommonjsModule(function (module) { if (isSimpleWindowsTerm) { - ansiStyles.blue.open = '\u001B[94m'; + ansiStyles$2.blue.open = '\u001B[94m'; } - for (const key of Object.keys(ansiStyles)) { - ansiStyles[key].closeRe = new RegExp(escapeStringRegexp$1(ansiStyles[key].close), 'g'); + for (const key of Object.keys(ansiStyles$2)) { + ansiStyles$2[key].closeRe = new RegExp(escapeStringRegexp$1(ansiStyles$2[key].close), 'g'); styles[key] = { get() { - const codes = ansiStyles[key]; + const codes = ansiStyles$2[key]; return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); } @@ -7385,9 +7886,9 @@ var chalk = createCommonjsModule(function (module) { } }; - ansiStyles.color.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles.color.close), 'g'); + ansiStyles$2.color.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles$2.color.close), 'g'); - for (const model of Object.keys(ansiStyles.color.ansi)) { + for (const model of Object.keys(ansiStyles$2.color.ansi)) { if (skipModels.has(model)) { continue; } @@ -7396,11 +7897,11 @@ var chalk = createCommonjsModule(function (module) { get() { const level = this.level; return function () { - const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const open = ansiStyles$2.color[levelMapping[level]][model].apply(null, arguments); const codes = { open, - close: ansiStyles.color.close, - closeRe: ansiStyles.color.closeRe + close: ansiStyles$2.color.close, + closeRe: ansiStyles$2.color.closeRe }; return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); }; @@ -7409,9 +7910,9 @@ var chalk = createCommonjsModule(function (module) { }; } - ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles.bgColor.close), 'g'); + ansiStyles$2.bgColor.closeRe = new RegExp(escapeStringRegexp$1(ansiStyles$2.bgColor.close), 'g'); - for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + for (const model of Object.keys(ansiStyles$2.bgColor.ansi)) { if (skipModels.has(model)) { continue; } @@ -7421,11 +7922,11 @@ var chalk = createCommonjsModule(function (module) { get() { const level = this.level; return function () { - const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const open = ansiStyles$2.bgColor[levelMapping[level]][model].apply(null, arguments); const codes = { open, - close: ansiStyles.bgColor.close, - closeRe: ansiStyles.bgColor.closeRe + close: ansiStyles$2.bgColor.close, + closeRe: ansiStyles$2.bgColor.closeRe }; return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); }; @@ -7501,10 +8002,10 @@ var chalk = createCommonjsModule(function (module) { // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. - const originalDim = ansiStyles.dim.open; + const originalDim = ansiStyles$2.dim.open; if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles.dim.open = ''; + ansiStyles$2.dim.open = ''; } for (const code of this._styles.slice().reverse()) { @@ -7519,7 +8020,7 @@ var chalk = createCommonjsModule(function (module) { } // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue - ansiStyles.dim.open = originalDim; + ansiStyles$2.dim.open = originalDim; return str; } @@ -7538,7 +8039,7 @@ var chalk = createCommonjsModule(function (module) { parts.push(String(strings.raw[i])); } - return templates(chalk, parts.join('')); + return templates$2(chalk, parts.join('')); } Object.defineProperties(Chalk.prototype, styles); @@ -7548,23 +8049,22 @@ var chalk = createCommonjsModule(function (module) { module.exports.default = module.exports; // For TypeScript }); -var common = createCommonjsModule(function (module, exports) { +var commonDeprecatedHandler = (keyOrPair, redirectTo, { + descriptor +}) => { + const messages = [`${chalk$2.default.yellow(typeof keyOrPair === 'string' ? descriptor.key(keyOrPair) : descriptor.pair(keyOrPair))} is deprecated`]; - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.commonDeprecatedHandler = (keyOrPair, redirectTo, { - descriptor - }) => { - const messages = [`${chalk.default.yellow(typeof keyOrPair === 'string' ? descriptor.key(keyOrPair) : descriptor.pair(keyOrPair))} is deprecated`]; + if (redirectTo) { + messages.push(`we now treat it as ${chalk$2.default.blue(typeof redirectTo === 'string' ? descriptor.key(redirectTo) : descriptor.pair(redirectTo))}`); + } - if (redirectTo) { - messages.push(`we now treat it as ${chalk.default.blue(typeof redirectTo === 'string' ? descriptor.key(redirectTo) : descriptor.pair(redirectTo))}`); - } + return messages.join('; ') + '.'; +}; - return messages.join('; ') + '.'; - }; +var common$3 = /*#__PURE__*/Object.defineProperty({ + commonDeprecatedHandler: commonDeprecatedHandler +}, '__esModule', { + value: true }); var deprecated = createCommonjsModule(function (module, exports) { @@ -7573,16 +8073,15 @@ var deprecated = createCommonjsModule(function (module, exports) { value: true }); - tslib_es6.__exportStar(common, exports); + tslib_es6.__exportStar(common$3, exports); }); -var common$1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); +var commonInvalidHandler = (key, value, utils) => [`Invalid ${chalk$2.default.red(utils.descriptor.key(key))} value.`, `Expected ${chalk$2.default.blue(utils.schemas[key].expected(utils))},`, `but received ${chalk$2.default.red(utils.descriptor.value(value))}.`].join(' '); - exports.commonInvalidHandler = (key, value, utils) => [`Invalid ${chalk.default.red(utils.descriptor.key(key))} value.`, `Expected ${chalk.default.blue(utils.schemas[key].expected(utils))},`, `but received ${chalk.default.red(utils.descriptor.value(value))}.`].join(' '); +var common$2 = /*#__PURE__*/Object.defineProperty({ + commonInvalidHandler: commonInvalidHandler +}, '__esModule', { + value: true }); var invalid = createCommonjsModule(function (module, exports) { @@ -7591,15 +8090,15 @@ var invalid = createCommonjsModule(function (module, exports) { value: true }); - tslib_es6.__exportStar(common$1, exports); + tslib_es6.__exportStar(common$2, exports); }); /* eslint-disable no-nested-ternary */ var arr = []; -var charCodeCache = []; +var charCodeCache$1 = []; -var leven = function (a, b) { +var leven$1 = function (a, b) { if (a === b) { return 0; } @@ -7660,7 +8159,7 @@ var leven = function (a, b) { var j = 0; while (i < aLen) { - charCodeCache[start + i] = a.charCodeAt(start + i); + charCodeCache$1[start + i] = a.charCodeAt(start + i); arr[i] = ++i; } @@ -7670,7 +8169,7 @@ var leven = function (a, b) { ret = j; for (i = 0; i < aLen; i++) { - tmp2 = bCharCode === charCodeCache[start + i] ? tmp : tmp + 1; + tmp2 = bCharCode === charCodeCache$1[start + i] ? tmp : tmp + 1; tmp = arr[i]; ret = arr[i] = tmp > ret ? tmp2 > ret ? ret + 1 : tmp2 : tmp2 > tmp ? tmp + 1 : tmp2; } @@ -7679,29 +8178,28 @@ var leven = function (a, b) { return ret; }; -var leven_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); +var levenUnknownHandler = (key, value, { + descriptor, + logger, + schemas +}) => { + const messages = [`Ignored unknown option ${chalk$2.default.yellow(descriptor.pair({ + key, + value + }))}.`]; + const suggestion = Object.keys(schemas).sort().find(knownKey => leven$1(key, knownKey) < 3); - exports.levenUnknownHandler = (key, value, { - descriptor, - logger, - schemas - }) => { - const messages = [`Ignored unknown option ${chalk.default.yellow(descriptor.pair({ - key, - value - }))}.`]; - const suggestion = Object.keys(schemas).sort().find(knownKey => leven(key, knownKey) < 3); + if (suggestion) { + messages.push(`Did you mean ${chalk$2.default.blue(descriptor.key(suggestion))}?`); + } - if (suggestion) { - messages.push(`Did you mean ${chalk.default.blue(descriptor.key(suggestion))}?`); - } + logger.warn(messages.join(' ')); +}; - logger.warn(messages.join(' ')); - }; +var leven_1$1 = /*#__PURE__*/Object.defineProperty({ + levenUnknownHandler: levenUnknownHandler +}, '__esModule', { + value: true }); var unknown = createCommonjsModule(function (module, exports) { @@ -7710,7 +8208,7 @@ var unknown = createCommonjsModule(function (module, exports) { value: true }); - tslib_es6.__exportStar(leven_1, exports); + tslib_es6.__exportStar(leven_1$1, exports); }); var handlers = createCommonjsModule(function (module, exports) { @@ -7726,541 +8224,536 @@ var handlers = createCommonjsModule(function (module, exports) { tslib_es6.__exportStar(unknown, exports); }); -var schema = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - const HANDLER_KEYS = ['default', 'expected', 'validate', 'deprecated', 'forward', 'redirect', 'overlap', 'preprocess', 'postprocess']; +const HANDLER_KEYS = ['default', 'expected', 'validate', 'deprecated', 'forward', 'redirect', 'overlap', 'preprocess', 'postprocess']; - function createSchema(SchemaConstructor, parameters) { - const schema = new SchemaConstructor(parameters); - const subSchema = Object.create(schema); +function createSchema(SchemaConstructor, parameters) { + const schema = new SchemaConstructor(parameters); + const subSchema = Object.create(schema); - for (const handlerKey of HANDLER_KEYS) { - if (handlerKey in parameters) { - subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema, Schema.prototype[handlerKey].length); - } + for (const handlerKey of HANDLER_KEYS) { + if (handlerKey in parameters) { + subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema, Schema.prototype[handlerKey].length); } - - return subSchema; } - exports.createSchema = createSchema; - - class Schema { - constructor(parameters) { - this.name = parameters.name; - } - - static create(parameters) { - // @ts-ignore: https://github.com/Microsoft/TypeScript/issues/5863 - return createSchema(this, parameters); - } - - default(_utils) { - return undefined; - } // istanbul ignore next: this is actually an abstract method but we need a placeholder to get `function.length` + return subSchema; +} +var createSchema_1 = createSchema; - expected(_utils) { - return 'nothing'; - } // istanbul ignore next: this is actually an abstract method but we need a placeholder to get `function.length` +class Schema { + constructor(parameters) { + this.name = parameters.name; + } + static create(parameters) { + // @ts-ignore: https://github.com/Microsoft/TypeScript/issues/5863 + return createSchema(this, parameters); + } - validate(_value, _utils) { - return false; - } + default(_utils) { + return undefined; + } // istanbul ignore next: this is actually an abstract method but we need a placeholder to get `function.length` - deprecated(_value, _utils) { - return false; - } - forward(_value, _utils) { - return undefined; - } + expected(_utils) { + return 'nothing'; + } // istanbul ignore next: this is actually an abstract method but we need a placeholder to get `function.length` - redirect(_value, _utils) { - return undefined; - } - overlap(currentValue, _newValue, _utils) { - return currentValue; - } + validate(_value, _utils) { + return false; + } - preprocess(value, _utils) { - return value; - } + deprecated(_value, _utils) { + return false; + } - postprocess(value, _utils) { - return value; - } + forward(_value, _utils) { + return undefined; + } + redirect(_value, _utils) { + return undefined; } - exports.Schema = Schema; + overlap(currentValue, _newValue, _utils) { + return currentValue; + } - function normalizeHandler(handler, superSchema, handlerArgumentsLength) { - return typeof handler === 'function' ? (...args) => handler(...args.slice(0, handlerArgumentsLength - 1), superSchema, ...args.slice(handlerArgumentsLength - 1)) : () => handler; + preprocess(value, _utils) { + return value; } -}); -var alias = createCommonjsModule(function (module, exports) { + postprocess(value, _utils) { + return value; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); +} - class AliasSchema extends schema.Schema { - constructor(parameters) { - super(parameters); - this._sourceName = parameters.sourceName; - } +var Schema_1 = Schema; - expected(utils) { - return utils.schemas[this._sourceName].expected(utils); - } +function normalizeHandler(handler, superSchema, handlerArgumentsLength) { + return typeof handler === 'function' ? (...args) => handler(...args.slice(0, handlerArgumentsLength - 1), superSchema, ...args.slice(handlerArgumentsLength - 1)) : () => handler; +} - validate(value, utils) { - return utils.schemas[this._sourceName].validate(value, utils); - } +var schema = /*#__PURE__*/Object.defineProperty({ + createSchema: createSchema_1, + Schema: Schema_1 +}, '__esModule', { + value: true +}); - redirect(_value, _utils) { - return this._sourceName; - } +class AliasSchema extends schema.Schema { + constructor(parameters) { + super(parameters); + this._sourceName = parameters.sourceName; + } + expected(utils) { + return utils.schemas[this._sourceName].expected(utils); } - exports.AliasSchema = AliasSchema; -}); + validate(value, utils) { + return utils.schemas[this._sourceName].validate(value, utils); + } -var any = createCommonjsModule(function (module, exports) { + redirect(_value, _utils) { + return this._sourceName; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); +} - class AnySchema extends schema.Schema { - expected() { - return 'anything'; - } +var AliasSchema_1 = AliasSchema; +var alias = /*#__PURE__*/Object.defineProperty({ + AliasSchema: AliasSchema_1 +}, '__esModule', { + value: true +}); - validate() { - return true; - } +class AnySchema extends schema.Schema { + expected() { + return 'anything'; + } + validate() { + return true; } - exports.AnySchema = AnySchema; -}); +} -var array = createCommonjsModule(function (module, exports) { +var AnySchema_1 = AnySchema; +var any = /*#__PURE__*/Object.defineProperty({ + AnySchema: AnySchema_1 +}, '__esModule', { + value: true +}); - Object.defineProperty(exports, "__esModule", { - value: true - }); +class ArraySchema extends schema.Schema { + constructor(_a) { + var { + valueSchema, + name = valueSchema.name + } = _a, + handlers = tslib_es6.__rest(_a, ["valueSchema", "name"]); - class ArraySchema extends schema.Schema { - constructor(_a) { - var { - valueSchema, - name = valueSchema.name - } = _a, - handlers = tslib_es6.__rest(_a, ["valueSchema", "name"]); + super(Object.assign({}, handlers, { + name + })); + this._valueSchema = valueSchema; + } - super(Object.assign({}, handlers, { - name - })); - this._valueSchema = valueSchema; - } + expected(utils) { + return `an array of ${this._valueSchema.expected(utils)}`; + } - expected(utils) { - return `an array of ${this._valueSchema.expected(utils)}`; + validate(value, utils) { + if (!Array.isArray(value)) { + return false; } - validate(value, utils) { - if (!Array.isArray(value)) { - return false; - } - - const invalidValues = []; + const invalidValues = []; - for (const subValue of value) { - const subValidateResult = utils.normalizeValidateResult(this._valueSchema.validate(subValue, utils), subValue); + for (const subValue of value) { + const subValidateResult = utils.normalizeValidateResult(this._valueSchema.validate(subValue, utils), subValue); - if (subValidateResult !== true) { - invalidValues.push(subValidateResult.value); - } + if (subValidateResult !== true) { + invalidValues.push(subValidateResult.value); } - - return invalidValues.length === 0 ? true : { - value: invalidValues - }; } - deprecated(value, utils) { - const deprecatedResult = []; + return invalidValues.length === 0 ? true : { + value: invalidValues + }; + } + + deprecated(value, utils) { + const deprecatedResult = []; - for (const subValue of value) { - const subDeprecatedResult = utils.normalizeDeprecatedResult(this._valueSchema.deprecated(subValue, utils), subValue); + for (const subValue of value) { + const subDeprecatedResult = utils.normalizeDeprecatedResult(this._valueSchema.deprecated(subValue, utils), subValue); - if (subDeprecatedResult !== false) { - deprecatedResult.push(...subDeprecatedResult.map(({ - value: deprecatedValue - }) => ({ - value: [deprecatedValue] - }))); - } + if (subDeprecatedResult !== false) { + deprecatedResult.push(...subDeprecatedResult.map(({ + value: deprecatedValue + }) => ({ + value: [deprecatedValue] + }))); } - - return deprecatedResult; } - forward(value, utils) { - const forwardResult = []; + return deprecatedResult; + } - for (const subValue of value) { - const subForwardResult = utils.normalizeForwardResult(this._valueSchema.forward(subValue, utils), subValue); - forwardResult.push(...subForwardResult.map(wrapTransferResult)); - } + forward(value, utils) { + const forwardResult = []; - return forwardResult; + for (const subValue of value) { + const subForwardResult = utils.normalizeForwardResult(this._valueSchema.forward(subValue, utils), subValue); + forwardResult.push(...subForwardResult.map(wrapTransferResult)); } - redirect(value, utils) { - const remain = []; - const redirect = []; + return forwardResult; + } - for (const subValue of value) { - const subRedirectResult = utils.normalizeRedirectResult(this._valueSchema.redirect(subValue, utils), subValue); + redirect(value, utils) { + const remain = []; + const redirect = []; - if ('remain' in subRedirectResult) { - remain.push(subRedirectResult.remain); - } + for (const subValue of value) { + const subRedirectResult = utils.normalizeRedirectResult(this._valueSchema.redirect(subValue, utils), subValue); - redirect.push(...subRedirectResult.redirect.map(wrapTransferResult)); + if ('remain' in subRedirectResult) { + remain.push(subRedirectResult.remain); } - return remain.length === 0 ? { - redirect - } : { - redirect, - remain - }; - } - - overlap(currentValue, newValue) { - return currentValue.concat(newValue); + redirect.push(...subRedirectResult.redirect.map(wrapTransferResult)); } + return remain.length === 0 ? { + redirect + } : { + redirect, + remain + }; } - exports.ArraySchema = ArraySchema; - - function wrapTransferResult({ - from, - to - }) { - return { - from: [from], - to - }; + overlap(currentValue, newValue) { + return currentValue.concat(newValue); } -}); -var boolean_1 = createCommonjsModule(function (module, exports) { +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +var ArraySchema_1 = ArraySchema; - class BooleanSchema extends schema.Schema { - expected() { - return 'true or false'; - } +function wrapTransferResult({ + from, + to +}) { + return { + from: [from], + to + }; +} - validate(value) { - return typeof value === 'boolean'; - } +var array$3 = /*#__PURE__*/Object.defineProperty({ + ArraySchema: ArraySchema_1 +}, '__esModule', { + value: true +}); +class BooleanSchema extends schema.Schema { + expected() { + return 'true or false'; } - exports.BooleanSchema = BooleanSchema; -}); - -var utils = createCommonjsModule(function (module, exports) { + validate(value) { + return typeof value === 'boolean'; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); +} - function recordFromArray(array, mainKey) { - const record = Object.create(null); +var BooleanSchema_1 = BooleanSchema; +var boolean = /*#__PURE__*/Object.defineProperty({ + BooleanSchema: BooleanSchema_1 +}, '__esModule', { + value: true +}); - for (const value of array) { - const key = value[mainKey]; // istanbul ignore next +function recordFromArray(array, mainKey) { + const record = Object.create(null); - if (record[key]) { - throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); - } // @ts-ignore + for (const value of array) { + const key = value[mainKey]; // istanbul ignore next + if (record[key]) { + throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); + } // @ts-ignore - record[key] = value; - } - return record; + record[key] = value; } - exports.recordFromArray = recordFromArray; + return record; +} - function mapFromArray(array, mainKey) { - const map = new Map(); +var recordFromArray_1 = recordFromArray; - for (const value of array) { - const key = value[mainKey]; // istanbul ignore next +function mapFromArray(array, mainKey) { + const map = new Map(); - if (map.has(key)) { - throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); - } + for (const value of array) { + const key = value[mainKey]; // istanbul ignore next - map.set(key, value); + if (map.has(key)) { + throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key)}`); } - return map; + map.set(key, value); } - exports.mapFromArray = mapFromArray; - - function createAutoChecklist() { - const map = Object.create(null); - return id => { - const idString = JSON.stringify(id); - - if (map[idString]) { - return true; - } - - map[idString] = true; - return false; - }; - } + return map; +} - exports.createAutoChecklist = createAutoChecklist; +var mapFromArray_1 = mapFromArray; - function partition(array, predicate) { - const trueArray = []; - const falseArray = []; +function createAutoChecklist() { + const map = Object.create(null); + return id => { + const idString = JSON.stringify(id); - for (const value of array) { - if (predicate(value)) { - trueArray.push(value); - } else { - falseArray.push(value); - } + if (map[idString]) { + return true; } - return [trueArray, falseArray]; - } - - exports.partition = partition; - - function isInt(value) { - return value === Math.floor(value); - } - - exports.isInt = isInt; - - function comparePrimitive(a, b) { - if (a === b) { - return 0; - } + map[idString] = true; + return false; + }; +} - const typeofA = typeof a; - const typeofB = typeof b; - const orders = ['undefined', 'object', 'boolean', 'number', 'string']; +var createAutoChecklist_1 = createAutoChecklist; - if (typeofA !== typeofB) { - return orders.indexOf(typeofA) - orders.indexOf(typeofB); - } +function partition$1(array, predicate) { + const trueArray = []; + const falseArray = []; - if (typeofA !== 'string') { - return Number(a) - Number(b); + for (const value of array) { + if (predicate(value)) { + trueArray.push(value); + } else { + falseArray.push(value); } - - return a.localeCompare(b); } - exports.comparePrimitive = comparePrimitive; - - function normalizeDefaultResult(result) { - return result === undefined ? {} : result; - } + return [trueArray, falseArray]; +} - exports.normalizeDefaultResult = normalizeDefaultResult; +var partition_1$1 = partition$1; - function normalizeValidateResult(result, value) { - return result === true ? true : result === false ? { - value - } : result; - } +function isInt(value) { + return value === Math.floor(value); +} - exports.normalizeValidateResult = normalizeValidateResult; +var isInt_1 = isInt; - function normalizeDeprecatedResult(result, value, doNotNormalizeTrue = false) { - return result === false ? false : result === true ? doNotNormalizeTrue ? true : [{ - value - }] : 'value' in result ? [result] : result.length === 0 ? false : result; +function comparePrimitive(a, b) { + if (a === b) { + return 0; } - exports.normalizeDeprecatedResult = normalizeDeprecatedResult; + const typeofA = typeof a; + const typeofB = typeof b; + const orders = ['undefined', 'object', 'boolean', 'number', 'string']; - function normalizeTransferResult(result, value) { - return typeof result === 'string' || 'key' in result ? { - from: value, - to: result - } : 'from' in result ? { - from: result.from, - to: result.to - } : { - from: value, - to: result.to - }; + if (typeofA !== typeofB) { + return orders.indexOf(typeofA) - orders.indexOf(typeofB); } - exports.normalizeTransferResult = normalizeTransferResult; - - function normalizeForwardResult(result, value) { - return result === undefined ? [] : Array.isArray(result) ? result.map(transferResult => normalizeTransferResult(transferResult, value)) : [normalizeTransferResult(result, value)]; + if (typeofA !== 'string') { + return Number(a) - Number(b); } - exports.normalizeForwardResult = normalizeForwardResult; + return a.localeCompare(b); +} - function normalizeRedirectResult(result, value) { - const redirect = normalizeForwardResult(typeof result === 'object' && 'redirect' in result ? result.redirect : result, value); - return redirect.length === 0 ? { - remain: value, - redirect - } : typeof result === 'object' && 'remain' in result ? { - remain: result.remain, - redirect - } : { - redirect - }; - } +var comparePrimitive_1 = comparePrimitive; - exports.normalizeRedirectResult = normalizeRedirectResult; -}); +function normalizeDefaultResult(result) { + return result === undefined ? {} : result; +} -var choice = createCommonjsModule(function (module, exports) { +var normalizeDefaultResult_1 = normalizeDefaultResult; - Object.defineProperty(exports, "__esModule", { - value: true - }); +function normalizeValidateResult(result, value) { + return result === true ? true : result === false ? { + value + } : result; +} - class ChoiceSchema extends schema.Schema { - constructor(parameters) { - super(parameters); - this._choices = utils.mapFromArray(parameters.choices.map(choice => choice && typeof choice === 'object' ? choice : { - value: choice - }), 'value'); - } +var normalizeValidateResult_1 = normalizeValidateResult; - expected({ - descriptor - }) { - const choiceValues = Array.from(this._choices.keys()).map(value => this._choices.get(value)).filter(choiceInfo => !choiceInfo.deprecated).map(choiceInfo => choiceInfo.value).sort(utils.comparePrimitive).map(descriptor.value); - const head = choiceValues.slice(0, -2); - const tail = choiceValues.slice(-2); - return head.concat(tail.join(' or ')).join(', '); - } +function normalizeDeprecatedResult(result, value, doNotNormalizeTrue = false) { + return result === false ? false : result === true ? doNotNormalizeTrue ? true : [{ + value + }] : 'value' in result ? [result] : result.length === 0 ? false : result; +} - validate(value) { - return this._choices.has(value); - } +var normalizeDeprecatedResult_1 = normalizeDeprecatedResult; - deprecated(value) { - const choiceInfo = this._choices.get(value); +function normalizeTransferResult(result, value) { + return typeof result === 'string' || 'key' in result ? { + from: value, + to: result + } : 'from' in result ? { + from: result.from, + to: result.to + } : { + from: value, + to: result.to + }; +} - return choiceInfo && choiceInfo.deprecated ? { - value - } : false; - } +var normalizeTransferResult_1 = normalizeTransferResult; - forward(value) { - const choiceInfo = this._choices.get(value); +function normalizeForwardResult(result, value) { + return result === undefined ? [] : Array.isArray(result) ? result.map(transferResult => normalizeTransferResult(transferResult, value)) : [normalizeTransferResult(result, value)]; +} - return choiceInfo ? choiceInfo.forward : undefined; - } +var normalizeForwardResult_1 = normalizeForwardResult; - redirect(value) { - const choiceInfo = this._choices.get(value); +function normalizeRedirectResult(result, value) { + const redirect = normalizeForwardResult(typeof result === 'object' && 'redirect' in result ? result.redirect : result, value); + return redirect.length === 0 ? { + remain: value, + redirect + } : typeof result === 'object' && 'remain' in result ? { + remain: result.remain, + redirect + } : { + redirect + }; +} - return choiceInfo ? choiceInfo.redirect : undefined; - } +var normalizeRedirectResult_1 = normalizeRedirectResult; +var utils$b = /*#__PURE__*/Object.defineProperty({ + recordFromArray: recordFromArray_1, + mapFromArray: mapFromArray_1, + createAutoChecklist: createAutoChecklist_1, + partition: partition_1$1, + isInt: isInt_1, + comparePrimitive: comparePrimitive_1, + normalizeDefaultResult: normalizeDefaultResult_1, + normalizeValidateResult: normalizeValidateResult_1, + normalizeDeprecatedResult: normalizeDeprecatedResult_1, + normalizeTransferResult: normalizeTransferResult_1, + normalizeForwardResult: normalizeForwardResult_1, + normalizeRedirectResult: normalizeRedirectResult_1 +}, '__esModule', { + value: true +}); +class ChoiceSchema extends schema.Schema { + constructor(parameters) { + super(parameters); + this._choices = utils$b.mapFromArray(parameters.choices.map(choice => choice && typeof choice === 'object' ? choice : { + value: choice + }), 'value'); } - exports.ChoiceSchema = ChoiceSchema; -}); + expected({ + descriptor + }) { + const choiceValues = Array.from(this._choices.keys()).map(value => this._choices.get(value)).filter(choiceInfo => !choiceInfo.deprecated).map(choiceInfo => choiceInfo.value).sort(utils$b.comparePrimitive).map(descriptor.value); + const head = choiceValues.slice(0, -2); + const tail = choiceValues.slice(-2); + return head.concat(tail.join(' or ')).join(', '); + } -var number = createCommonjsModule(function (module, exports) { + validate(value) { + return this._choices.has(value); + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + deprecated(value) { + const choiceInfo = this._choices.get(value); - class NumberSchema extends schema.Schema { - expected() { - return 'a number'; - } + return choiceInfo && choiceInfo.deprecated ? { + value + } : false; + } - validate(value, _utils) { - return typeof value === 'number'; - } + forward(value) { + const choiceInfo = this._choices.get(value); + return choiceInfo ? choiceInfo.forward : undefined; } - exports.NumberSchema = NumberSchema; -}); + redirect(value) { + const choiceInfo = this._choices.get(value); -var integer = createCommonjsModule(function (module, exports) { + return choiceInfo ? choiceInfo.redirect : undefined; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); +} - class IntegerSchema extends number.NumberSchema { - expected() { - return 'an integer'; - } +var ChoiceSchema_1 = ChoiceSchema; +var choice = /*#__PURE__*/Object.defineProperty({ + ChoiceSchema: ChoiceSchema_1 +}, '__esModule', { + value: true +}); - validate(value, utils$1) { - return utils$1.normalizeValidateResult(super.validate(value, utils$1), value) === true && utils.isInt(value); - } +class NumberSchema extends schema.Schema { + expected() { + return 'a number'; + } + validate(value, _utils) { + return typeof value === 'number'; } - exports.IntegerSchema = IntegerSchema; +} + +var NumberSchema_1 = NumberSchema; +var number = /*#__PURE__*/Object.defineProperty({ + NumberSchema: NumberSchema_1 +}, '__esModule', { + value: true }); -var string = createCommonjsModule(function (module, exports) { +class IntegerSchema extends number.NumberSchema { + expected() { + return 'an integer'; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + validate(value, utils) { + return utils.normalizeValidateResult(super.validate(value, utils), value) === true && utils$b.isInt(value); + } - class StringSchema extends schema.Schema { - expected() { - return 'a string'; - } +} - validate(value) { - return typeof value === 'string'; - } +var IntegerSchema_1 = IntegerSchema; +var integer = /*#__PURE__*/Object.defineProperty({ + IntegerSchema: IntegerSchema_1 +}, '__esModule', { + value: true +}); + +class StringSchema extends schema.Schema { + expected() { + return 'a string'; + } + validate(value) { + return typeof value === 'string'; } - exports.StringSchema = StringSchema; +} + +var StringSchema_1 = StringSchema; +var string$1 = /*#__PURE__*/Object.defineProperty({ + StringSchema: StringSchema_1 +}, '__esModule', { + value: true }); var schemas = createCommonjsModule(function (module, exports) { @@ -8273,9 +8766,9 @@ var schemas = createCommonjsModule(function (module, exports) { tslib_es6.__exportStar(any, exports); - tslib_es6.__exportStar(array, exports); + tslib_es6.__exportStar(array$3, exports); - tslib_es6.__exportStar(boolean_1, exports); + tslib_es6.__exportStar(boolean, exports); tslib_es6.__exportStar(choice, exports); @@ -8283,227 +8776,228 @@ var schemas = createCommonjsModule(function (module, exports) { tslib_es6.__exportStar(number, exports); - tslib_es6.__exportStar(string, exports); + tslib_es6.__exportStar(string$1, exports); }); -var defaults = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.defaultDescriptor = api.apiDescriptor; - exports.defaultUnknownHandler = leven_1.levenUnknownHandler; - exports.defaultInvalidHandler = invalid.commonInvalidHandler; - exports.defaultDeprecatedHandler = common.commonDeprecatedHandler; +var defaultDescriptor = api.apiDescriptor; +var defaultUnknownHandler = leven_1$1.levenUnknownHandler; +var defaultInvalidHandler = invalid.commonInvalidHandler; +var defaultDeprecatedHandler = common$3.commonDeprecatedHandler; +var defaults = /*#__PURE__*/Object.defineProperty({ + defaultDescriptor: defaultDescriptor, + defaultUnknownHandler: defaultUnknownHandler, + defaultInvalidHandler: defaultInvalidHandler, + defaultDeprecatedHandler: defaultDeprecatedHandler +}, '__esModule', { + value: true }); -var normalize = createCommonjsModule(function (module, exports) { +var normalize_1 = (options, schemas, opts) => new Normalizer(schemas, opts).normalize(options); - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.normalize = (options, schemas, opts) => new Normalizer(schemas, opts).normalize(options); - - class Normalizer { - constructor(schemas, opts) { - // istanbul ignore next - const { - logger = console, - descriptor = defaults.defaultDescriptor, - unknown = defaults.defaultUnknownHandler, - invalid = defaults.defaultInvalidHandler, - deprecated = defaults.defaultDeprecatedHandler - } = opts || {}; - this._utils = { - descriptor, - logger: - /* istanbul ignore next */ - logger || { - warn: () => {} - }, - schemas: utils.recordFromArray(schemas, 'name'), - normalizeDefaultResult: utils.normalizeDefaultResult, - normalizeDeprecatedResult: utils.normalizeDeprecatedResult, - normalizeForwardResult: utils.normalizeForwardResult, - normalizeRedirectResult: utils.normalizeRedirectResult, - normalizeValidateResult: utils.normalizeValidateResult - }; - this._unknownHandler = unknown; - this._invalidHandler = invalid; - this._deprecatedHandler = deprecated; - this.cleanHistory(); - } +class Normalizer { + constructor(schemas, opts) { + // istanbul ignore next + const { + logger = console, + descriptor = defaults.defaultDescriptor, + unknown = defaults.defaultUnknownHandler, + invalid = defaults.defaultInvalidHandler, + deprecated = defaults.defaultDeprecatedHandler + } = opts || {}; + this._utils = { + descriptor, + logger: + /* istanbul ignore next */ + logger || { + warn: () => {} + }, + schemas: utils$b.recordFromArray(schemas, 'name'), + normalizeDefaultResult: utils$b.normalizeDefaultResult, + normalizeDeprecatedResult: utils$b.normalizeDeprecatedResult, + normalizeForwardResult: utils$b.normalizeForwardResult, + normalizeRedirectResult: utils$b.normalizeRedirectResult, + normalizeValidateResult: utils$b.normalizeValidateResult + }; + this._unknownHandler = unknown; + this._invalidHandler = invalid; + this._deprecatedHandler = deprecated; + this.cleanHistory(); + } - cleanHistory() { - this._hasDeprecationWarned = utils.createAutoChecklist(); - } + cleanHistory() { + this._hasDeprecationWarned = utils$b.createAutoChecklist(); + } - normalize(options) { - const normalized = {}; - const restOptionsArray = [options]; + normalize(options) { + const normalized = {}; + const restOptionsArray = [options]; - const applyNormalization = () => { - while (restOptionsArray.length !== 0) { - const currentOptions = restOptionsArray.shift(); + const applyNormalization = () => { + while (restOptionsArray.length !== 0) { + const currentOptions = restOptionsArray.shift(); - const transferredOptionsArray = this._applyNormalization(currentOptions, normalized); + const transferredOptionsArray = this._applyNormalization(currentOptions, normalized); - restOptionsArray.push(...transferredOptionsArray); - } - }; + restOptionsArray.push(...transferredOptionsArray); + } + }; - applyNormalization(); + applyNormalization(); - for (const key of Object.keys(this._utils.schemas)) { - const schema = this._utils.schemas[key]; + for (const key of Object.keys(this._utils.schemas)) { + const schema = this._utils.schemas[key]; - if (!(key in normalized)) { - const defaultResult = utils.normalizeDefaultResult(schema.default(this._utils)); + if (!(key in normalized)) { + const defaultResult = utils$b.normalizeDefaultResult(schema.default(this._utils)); - if ('value' in defaultResult) { - restOptionsArray.push({ - [key]: defaultResult.value - }); - } + if ('value' in defaultResult) { + restOptionsArray.push({ + [key]: defaultResult.value + }); } } + } - applyNormalization(); + applyNormalization(); - for (const key of Object.keys(this._utils.schemas)) { - const schema = this._utils.schemas[key]; + for (const key of Object.keys(this._utils.schemas)) { + const schema = this._utils.schemas[key]; - if (key in normalized) { - normalized[key] = schema.postprocess(normalized[key], this._utils); - } + if (key in normalized) { + normalized[key] = schema.postprocess(normalized[key], this._utils); } - - return normalized; } - _applyNormalization(options, normalized) { - const transferredOptionsArray = []; - const [knownOptionNames, unknownOptionNames] = utils.partition(Object.keys(options), key => key in this._utils.schemas); + return normalized; + } - for (const key of knownOptionNames) { - const schema = this._utils.schemas[key]; - const value = schema.preprocess(options[key], this._utils); - const validateResult = utils.normalizeValidateResult(schema.validate(value, this._utils), value); + _applyNormalization(options, normalized) { + const transferredOptionsArray = []; + const [knownOptionNames, unknownOptionNames] = utils$b.partition(Object.keys(options), key => key in this._utils.schemas); - if (validateResult !== true) { - const { - value: invalidValue - } = validateResult; + for (const key of knownOptionNames) { + const schema = this._utils.schemas[key]; + const value = schema.preprocess(options[key], this._utils); + const validateResult = utils$b.normalizeValidateResult(schema.validate(value, this._utils), value); - const errorMessageOrError = this._invalidHandler(key, invalidValue, this._utils); + if (validateResult !== true) { + const { + value: invalidValue + } = validateResult; - throw typeof errorMessageOrError === 'string' ? new Error(errorMessageOrError) : - /* istanbul ignore next*/ - errorMessageOrError; - } + const errorMessageOrError = this._invalidHandler(key, invalidValue, this._utils); - const appendTransferredOptions = ({ - from, - to - }) => { - transferredOptionsArray.push(typeof to === 'string' ? { - [to]: from - } : { - [to.key]: to.value - }); - }; + throw typeof errorMessageOrError === 'string' ? new Error(errorMessageOrError) : + /* istanbul ignore next*/ + errorMessageOrError; + } - const warnDeprecated = ({ - value: currentValue, - redirectTo - }) => { - const deprecatedResult = utils.normalizeDeprecatedResult(schema.deprecated(currentValue, this._utils), value, - /* doNotNormalizeTrue */ - true); + const appendTransferredOptions = ({ + from, + to + }) => { + transferredOptionsArray.push(typeof to === 'string' ? { + [to]: from + } : { + [to.key]: to.value + }); + }; - if (deprecatedResult === false) { - return; - } + const warnDeprecated = ({ + value: currentValue, + redirectTo + }) => { + const deprecatedResult = utils$b.normalizeDeprecatedResult(schema.deprecated(currentValue, this._utils), value, + /* doNotNormalizeTrue */ + true); - if (deprecatedResult === true) { - if (!this._hasDeprecationWarned(key)) { - this._utils.logger.warn(this._deprecatedHandler(key, redirectTo, this._utils)); - } - } else { - for (const { + if (deprecatedResult === false) { + return; + } + + if (deprecatedResult === true) { + if (!this._hasDeprecationWarned(key)) { + this._utils.logger.warn(this._deprecatedHandler(key, redirectTo, this._utils)); + } + } else { + for (const { + value: deprecatedValue + } of deprecatedResult) { + const pair = { + key, value: deprecatedValue - } of deprecatedResult) { - const pair = { - key, - value: deprecatedValue - }; + }; - if (!this._hasDeprecationWarned(pair)) { - const redirectToPair = typeof redirectTo === 'string' ? { - key: redirectTo, - value: deprecatedValue - } : redirectTo; + if (!this._hasDeprecationWarned(pair)) { + const redirectToPair = typeof redirectTo === 'string' ? { + key: redirectTo, + value: deprecatedValue + } : redirectTo; - this._utils.logger.warn(this._deprecatedHandler(pair, redirectToPair, this._utils)); - } + this._utils.logger.warn(this._deprecatedHandler(pair, redirectToPair, this._utils)); } } - }; + } + }; - const forwardResult = utils.normalizeForwardResult(schema.forward(value, this._utils), value); - forwardResult.forEach(appendTransferredOptions); - const redirectResult = utils.normalizeRedirectResult(schema.redirect(value, this._utils), value); - redirectResult.redirect.forEach(appendTransferredOptions); + const forwardResult = utils$b.normalizeForwardResult(schema.forward(value, this._utils), value); + forwardResult.forEach(appendTransferredOptions); + const redirectResult = utils$b.normalizeRedirectResult(schema.redirect(value, this._utils), value); + redirectResult.redirect.forEach(appendTransferredOptions); - if ('remain' in redirectResult) { - const remainingValue = redirectResult.remain; - normalized[key] = key in normalized ? schema.overlap(normalized[key], remainingValue, this._utils) : remainingValue; - warnDeprecated({ - value: remainingValue - }); - } + if ('remain' in redirectResult) { + const remainingValue = redirectResult.remain; + normalized[key] = key in normalized ? schema.overlap(normalized[key], remainingValue, this._utils) : remainingValue; + warnDeprecated({ + value: remainingValue + }); + } - for (const { - from, - to - } of redirectResult.redirect) { - warnDeprecated({ - value: from, - redirectTo: to - }); - } + for (const { + from, + to + } of redirectResult.redirect) { + warnDeprecated({ + value: from, + redirectTo: to + }); } + } - for (const key of unknownOptionNames) { - const value = options[key]; + for (const key of unknownOptionNames) { + const value = options[key]; - const unknownResult = this._unknownHandler(key, value, this._utils); + const unknownResult = this._unknownHandler(key, value, this._utils); - if (unknownResult) { - for (const unknownKey of Object.keys(unknownResult)) { - const unknownOption = { - [unknownKey]: unknownResult[unknownKey] - }; + if (unknownResult) { + for (const unknownKey of Object.keys(unknownResult)) { + const unknownOption = { + [unknownKey]: unknownResult[unknownKey] + }; - if (unknownKey in this._utils.schemas) { - transferredOptionsArray.push(unknownOption); - } else { - Object.assign(normalized, unknownOption); - } + if (unknownKey in this._utils.schemas) { + transferredOptionsArray.push(unknownOption); + } else { + Object.assign(normalized, unknownOption); } } } - - return transferredOptionsArray; } + return transferredOptionsArray; } - exports.Normalizer = Normalizer; +} + +var Normalizer_1 = Normalizer; +var normalize$2 = /*#__PURE__*/Object.defineProperty({ + normalize: normalize_1, + Normalizer: Normalizer_1 +}, '__esModule', { + value: true }); -var lib$1 = createCommonjsModule(function (module, exports) { +var lib$4 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true @@ -8515,15 +9009,15 @@ var lib$1 = createCommonjsModule(function (module, exports) { tslib_es6.__exportStar(schemas, exports); - tslib_es6.__exportStar(normalize, exports); + tslib_es6.__exportStar(normalize$2, exports); tslib_es6.__exportStar(schema, exports); }); -const array$1 = []; -const charCodeCache$1 = []; +const array$2 = []; +const charCodeCache = []; -const leven$1 = (left, right) => { +const leven = (left, right) => { if (left === right) { return 0; } @@ -8571,8 +9065,8 @@ const leven$1 = (left, right) => { let j = 0; while (i < leftLength) { - charCodeCache$1[i] = left.charCodeAt(start + i); - array$1[i] = ++i; + charCodeCache[i] = left.charCodeAt(start + i); + array$2[i] = ++i; } while (j < rightLength) { @@ -8581,20 +9075,20 @@ const leven$1 = (left, right) => { result = j; for (i = 0; i < leftLength; i++) { - temp2 = bCharCode === charCodeCache$1[i] ? temp : temp + 1; - temp = array$1[i]; // eslint-disable-next-line no-multi-assign + temp2 = bCharCode === charCodeCache[i] ? temp : temp + 1; + temp = array$2[i]; // eslint-disable-next-line no-multi-assign - result = array$1[i] = temp > result ? temp2 > result ? result + 1 : temp2 : temp2 > temp ? temp + 1 : temp2; + result = array$2[i] = temp > result ? temp2 > result ? result + 1 : temp2 : temp2 > temp ? temp + 1 : temp2; } } return result; }; -var leven_1$1 = leven$1; // TODO: Remove this for the next major release +var leven_1 = leven; // TODO: Remove this for the next major release -var _default$2 = leven$1; -leven_1$1.default = _default$2; +var _default$p = leven; +leven_1.default = _default$p; var colorName$1 = { "aliceblue": [240, 248, 255], @@ -8748,7 +9242,6 @@ var colorName$1 = { }; /* MIT license */ - /* eslint-disable no-mixed-operators */ // NOTE: conversions should only return primitive values (i.e. arrays, or // values that give correct `typeof` results). @@ -8760,7 +9253,7 @@ for (const key of Object.keys(colorName$1)) { reverseKeywords[colorName$1[key]] = key; } -const convert$1 = { +const convert$2 = { rgb: { channels: 3, labels: 'rgb' @@ -8822,28389 +9315,31861 @@ const convert$1 = { labels: ['gray'] } }; -var conversions$1 = convert$1; // Hide .channels and .labels properties +var conversions$1 = convert$2; // Hide .channels and .labels properties + +for (const model of Object.keys(convert$2)) { + if (!('channels' in convert$2[model])) { + throw new Error('missing channels property: ' + model); + } + + if (!('labels' in convert$2[model])) { + throw new Error('missing channel labels property: ' + model); + } + + if (convert$2[model].labels.length !== convert$2[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + + const { + channels, + labels + } = convert$2[model]; + delete convert$2[model].channels; + delete convert$2[model].labels; + Object.defineProperty(convert$2[model], 'channels', { + value: channels + }); + Object.defineProperty(convert$2[model], 'labels', { + value: labels + }); +} + +convert$2.rgb.hsl = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + const l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +convert$2.rgb.hsv = function (rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + + const diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; + } + + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [h * 360, s * 100, v * 100]; +}; + +convert$2.rgb.hwb = function (rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert$2.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; +}; + +convert$2.rgb.cmyk = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; +}; + +function comparativeDistance(x, y) { + /* + See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + */ + return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; +} + +convert$2.rgb.keyword = function (rgb) { + const reversed = reverseKeywords[rgb]; + + if (reversed) { + return reversed; + } + + let currentClosestDistance = Infinity; + let currentClosestKeyword; + + for (const keyword of Object.keys(colorName$1)) { + const value = colorName$1[keyword]; // Compute comparative distance + + const distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest + + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + + return currentClosestKeyword; +}; + +convert$2.keyword.rgb = function (keyword) { + return colorName$1[keyword]; +}; + +convert$2.rgb.xyz = function (rgb) { + let r = rgb[0] / 255; + let g = rgb[1] / 255; + let b = rgb[2] / 255; // Assume sRGB + + r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92; + g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92; + b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92; + const x = r * 0.4124 + g * 0.3576 + b * 0.1805; + const y = r * 0.2126 + g * 0.7152 + b * 0.0722; + const z = r * 0.0193 + g * 0.1192 + b * 0.9505; + return [x * 100, y * 100, z * 100]; +}; + +convert$2.rgb.lab = function (rgb) { + const xyz = convert$2.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + return [l, a, b]; +}; + +convert$2.hsl.rgb = function (hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t2; + let t3; + let val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + const t1 = 2 * l - t2; + const rgb = [0, 0, 0]; + + for (let i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + + if (t3 < 0) { + t3++; + } + + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; +}; + +convert$2.hsl.hsv = function (hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; +}; + +convert$2.hsv.rgb = function (hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - s * f); + const t = 255 * v * (1 - s * (1 - f)); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + + case 1: + return [q, v, p]; + + case 2: + return [p, v, t]; + + case 3: + return [p, q, v]; + + case 4: + return [t, p, v]; + + case 5: + return [v, p, q]; + } +}; + +convert$2.hsv.hsl = function (hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; +}; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb + + +convert$2.hwb.rgb = function (hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; // Wh + bl cant be > 1 + + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + const n = wh + f * (v - wh); // Linear interpolation + + let r; + let g; + let b; + /* eslint-disable max-statements-per-line,no-multi-spaces */ + + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; + + case 1: + r = n; + g = v; + b = wh; + break; + + case 2: + r = wh; + g = v; + b = n; + break; + + case 3: + r = wh; + g = n; + b = v; + break; + + case 4: + r = n; + g = wh; + b = v; + break; + + case 5: + r = v; + g = wh; + b = n; + break; + } + /* eslint-enable max-statements-per-line,no-multi-spaces */ + + + return [r * 255, g * 255, b * 255]; +}; + +convert$2.cmyk.rgb = function (cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; +}; + +convert$2.xyz.rgb = function (xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + let r; + let g; + let b; + r = x * 3.2406 + y * -1.5372 + z * -0.4986; + g = x * -0.9689 + y * 1.8758 + z * 0.0415; + b = x * 0.0557 + y * -0.2040 + z * 1.0570; // Assume sRGB + + r = r > 0.0031308 ? 1.055 * r ** (1.0 / 2.4) - 0.055 : r * 12.92; + g = g > 0.0031308 ? 1.055 * g ** (1.0 / 2.4) - 0.055 : g * 12.92; + b = b > 0.0031308 ? 1.055 * b ** (1.0 / 2.4) - 0.055 : b * 12.92; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + return [r * 255, g * 255, b * 255]; +}; + +convert$2.xyz.lab = function (xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116; + const l = 116 * y - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + return [l, a, b]; +}; + +convert$2.lab.xyz = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + const y2 = y ** 3; + const x2 = x ** 3; + const z2 = z ** 3; + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; +}; + +convert$2.lab.lch = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + + if (h < 0) { + h += 360; + } + + const c = Math.sqrt(a * a + b * b); + return [l, c, h]; +}; + +convert$2.lch.lab = function (lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); + return [l, a, b]; +}; + +convert$2.rgb.ansi16 = function (args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert$2.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; + } + + let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + + if (value === 2) { + ansi += 60; + } + + return ansi; +}; + +convert$2.hsv.ansi16 = function (args) { + // Optimization here; we already know the value and don't need to get + // it converted for us. + return convert$2.rgb.ansi16(convert$2.hsv.rgb(args), args[2]); +}; + +convert$2.rgb.ansi256 = function (args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; // We use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + + if (r === g && g === b) { + if (r < 8) { + return 16; + } + + if (r > 248) { + return 231; + } + + return Math.round((r - 8) / 247 * 24) + 232; + } + + const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; +}; + +convert$2.ansi16.rgb = function (args) { + let color = args % 10; // Handle greyscale + + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = color / 10.5 * 255; + return [color, color, color]; + } + + const mult = (~~(args > 50) + 1) * 0.5; + const r = (color & 1) * mult * 255; + const g = (color >> 1 & 1) * mult * 255; + const b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; +}; + +convert$2.ansi256.rgb = function (args) { + // Handle greyscale + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } + + args -= 16; + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = rem % 6 / 5 * 255; + return [r, g, b]; +}; + +convert$2.rgb.hex = function (args) { + const integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert$2.hex.rgb = function (args) { + const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + + if (!match) { + return [0, 0, 0]; + } + + let colorString = match[0]; + + if (match[0].length === 3) { + colorString = colorString.split('').map(char => { + return char + char; + }).join(''); + } + + const integer = parseInt(colorString, 16); + const r = integer >> 16 & 0xFF; + const g = integer >> 8 & 0xFF; + const b = integer & 0xFF; + return [r, g, b]; +}; + +convert$2.rgb.hcg = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = max - min; + let grayscale; + let hue; + + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } + + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; +}; + +convert$2.hsl.hcg = function (hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; + const c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l); + let f = 0; + + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } + + return [hsl[0], c * 100, f * 100]; +}; + +convert$2.hsv.hcg = function (hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const c = s * v; + let f = 0; + + if (c < 1.0) { + f = (v - c) / (1 - c); + } + + return [hsv[0], c * 100, f * 100]; +}; + +convert$2.hcg.rgb = function (hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + + const pure = [0, 0, 0]; + const hi = h % 1 * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; + /* eslint-disable max-statements-per-line */ + + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + + case 1: + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + + case 2: + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + + case 3: + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + + case 4: + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; + } + /* eslint-enable max-statements-per-line */ + + + mg = (1.0 - c) * g; + return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; +}; + +convert$2.hcg.hsv = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1.0 - c); + let f = 0; + + if (v > 0.0) { + f = c / v; + } + + return [hcg[0], f * 100, v * 100]; +}; + +convert$2.hcg.hsl = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const l = g * (1.0 - c) + 0.5 * c; + let s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } + + return [hcg[0], s * 100, l * 100]; +}; + +convert$2.hcg.hwb = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; + +convert$2.hwb.hcg = function (hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; + + if (c < 1) { + g = (v - c) / (1 - c); + } + + return [hwb[0], c * 100, g * 100]; +}; + +convert$2.apple.rgb = function (apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; +}; + +convert$2.rgb.apple = function (rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; +}; + +convert$2.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; + +convert$2.gray.hsl = function (args) { + return [0, 0, args[0]]; +}; + +convert$2.gray.hsv = convert$2.gray.hsl; + +convert$2.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; + +convert$2.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; + +convert$2.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; + +convert$2.gray.hex = function (gray) { + const val = Math.round(gray[0] / 100 * 255) & 0xFF; + const integer = (val << 16) + (val << 8) + val; + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert$2.rgb.gray = function (rgb) { + const val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; + +/* + This function routes a model to all other models. + + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). + + conversions that are not possible simply are not included. +*/ + +function buildGraph$1() { + const graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + + const models = Object.keys(conversions$1); + + for (let len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + + return graph; +} // https://en.wikipedia.org/wiki/Breadth-first_search + + +function deriveBFS$1(fromModel) { + const graph = buildGraph$1(); + const queue = [fromModel]; // Unshift -> queue -> pop + + graph[fromModel].distance = 0; + + while (queue.length) { + const current = queue.pop(); + const adjacents = Object.keys(conversions$1[current]); + + for (let len = adjacents.length, i = 0; i < len; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + + return graph; +} + +function link$2(from, to) { + return function (args) { + return to(from(args)); + }; +} + +function wrapConversion$1(toModel, graph) { + const path = [graph[toModel].parent, toModel]; + let fn = conversions$1[graph[toModel].parent][toModel]; + let cur = graph[toModel].parent; + + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link$2(conversions$1[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + + fn.conversion = path; + return fn; +} + +var route$1 = function (fromModel) { + const graph = deriveBFS$1(fromModel); + const conversion = {}; + const models = Object.keys(graph); + + for (let len = models.length, i = 0; i < len; i++) { + const toModel = models[i]; + const node = graph[toModel]; + + if (node.parent === null) { + // No possible conversion, or this node is the source model. + continue; + } + + conversion[toModel] = wrapConversion$1(toModel, graph); + } + + return conversion; +}; + +const convert$1 = {}; +const models$1 = Object.keys(conversions$1); + +function wrapRaw$1(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + + if (arg0 === undefined || arg0 === null) { + return arg0; + } + + if (arg0.length > 1) { + args = arg0; + } + + return fn(args); + }; // Preserve .conversion property if there is one + + + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +function wrapRounded$1(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + + if (arg0 === undefined || arg0 === null) { + return arg0; + } + + if (arg0.length > 1) { + args = arg0; + } + + const result = fn(args); // We're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + + if (typeof result === 'object') { + for (let len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + + return result; + }; // Preserve .conversion property if there is one + + + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +models$1.forEach(fromModel => { + convert$1[fromModel] = {}; + Object.defineProperty(convert$1[fromModel], 'channels', { + value: conversions$1[fromModel].channels + }); + Object.defineProperty(convert$1[fromModel], 'labels', { + value: conversions$1[fromModel].labels + }); + const routes = route$1(fromModel); + const routeModels = Object.keys(routes); + routeModels.forEach(toModel => { + const fn = routes[toModel]; + convert$1[fromModel][toModel] = wrapRounded$1(fn); + convert$1[fromModel][toModel].raw = wrapRaw$1(fn); + }); +}); +var colorConvert$1 = convert$1; + +var ansiStyles$1 = createCommonjsModule(function (module) { + + const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; + }; + + const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; + }; + + const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; + }; + + const ansi2ansi = n => n; + + const rgb2rgb = (r, g, b) => [r, g, b]; + + const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + return value; + }, + enumerable: true, + configurable: true + }); + }; + /** @type {typeof import('color-convert')} */ + + + let colorConvert; + + const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = colorConvert$1; + } + + const offset = isBackground ? 10 : 0; + const styles = {}; + + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } + + return styles; + }; + + function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + 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], + // Bright color + 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], + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; // Alias bright black as gray (and grey) + + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + group[styleName] = styles[styleName]; + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + return styles; + } // Make the export immutable + + + Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles + }); +}); + +var hasFlag$1 = (flag, argv = process.argv) => { + const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--'; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +}; + +const { + env: env$1 +} = process; +let forceColor$1; + +if (hasFlag$1('no-color') || hasFlag$1('no-colors') || hasFlag$1('color=false') || hasFlag$1('color=never')) { + forceColor$1 = 0; +} else if (hasFlag$1('color') || hasFlag$1('colors') || hasFlag$1('color=true') || hasFlag$1('color=always')) { + forceColor$1 = 1; +} + +if ('FORCE_COLOR' in env$1) { + if (env$1.FORCE_COLOR === 'true') { + forceColor$1 = 1; + } else if (env$1.FORCE_COLOR === 'false') { + forceColor$1 = 0; + } else { + forceColor$1 = env$1.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env$1.FORCE_COLOR, 10), 3); + } +} + +function translateLevel$1(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor$1(haveStream, streamIsTTY) { + if (forceColor$1 === 0) { + return 0; + } + + if (hasFlag$1('color=16m') || hasFlag$1('color=full') || hasFlag$1('color=truecolor')) { + return 3; + } + + if (hasFlag$1('color=256')) { + return 2; + } + + if (haveStream && !streamIsTTY && forceColor$1 === undefined) { + return 0; + } + + const min = forceColor$1 || 0; + + if (env$1.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os__default['default'].release().split('.'); + + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env$1) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env$1) || env$1.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env$1) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env$1.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env$1) { + const version = parseInt((env$1.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env$1.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env$1.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) { + return 1; + } + + if ('COLORTERM' in env$1) { + return 1; + } + + return min; +} + +function getSupportLevel$1(stream) { + const level = supportsColor$1(stream, stream && stream.isTTY); + return translateLevel$1(level); +} + +var supportsColor_1$1 = { + supportsColor: getSupportLevel$1, + stdout: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(1))), + stderr: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(2))) +}; + +const stringReplaceAll$1 = (string, substring, replacer) => { + let index = string.indexOf(substring); + + if (index === -1) { + return string; + } + + const substringLength = substring.length; + let endIndex = 0; + let returnValue = ''; + + do { + returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; + endIndex = index + substringLength; + index = string.indexOf(substring, endIndex); + } while (index !== -1); + + returnValue += string.substr(endIndex); + return returnValue; +}; + +const stringEncaseCRLFWithFirstIndex$1 = (string, prefix, postfix, index) => { + let endIndex = 0; + let returnValue = ''; + + do { + const gotCR = string[index - 1] === '\r'; + returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; + endIndex = index + 1; + index = string.indexOf('\n', endIndex); + } while (index !== -1); + + returnValue += string.substr(endIndex); + return returnValue; +}; + +var util$4 = { + stringReplaceAll: stringReplaceAll$1, + stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 +}; + +const TEMPLATE_REGEX$1 = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX$2 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX$1 = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi; +const ESCAPES$1 = new Map([['n', '\n'], ['r', '\r'], ['t', '\t'], ['b', '\b'], ['f', '\f'], ['v', '\v'], ['0', '\0'], ['\\', '\\'], ['e', '\u001B'], ['a', '\u0007']]); + +function unescape$1(c) { + const u = c[0] === 'u'; + const bracket = c[1] === '{'; + + if (u && !bracket && c.length === 5 || c[0] === 'x' && c.length === 3) { + return String.fromCharCode(parseInt(c.slice(1), 16)); + } + + if (u && bracket) { + return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); + } + + return ESCAPES$1.get(c) || c; +} + +function parseArguments$1(name, arguments_) { + const results = []; + const chunks = arguments_.trim().split(/\s*,\s*/g); + let matches; + + for (const chunk of chunks) { + const number = Number(chunk); + + if (!Number.isNaN(number)) { + results.push(number); + } else if (matches = chunk.match(STRING_REGEX$2)) { + results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, character) => escape ? unescape$1(escape) : character)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } + + return results; +} + +function parseStyle$1(style) { + STYLE_REGEX$1.lastIndex = 0; + const results = []; + let matches; + + while ((matches = STYLE_REGEX$1.exec(style)) !== null) { + const name = matches[1]; + + if (matches[2]) { + const args = parseArguments$1(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); + } + } + + return results; +} + +function buildStyle$1(chalk, styles) { + const enabled = {}; + + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } + + let current = chalk; + + for (const [styleName, styles] of Object.entries(enabled)) { + if (!Array.isArray(styles)) { + continue; + } + + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } + + current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; + } + + return current; +} + +var templates$1 = (chalk, temporary) => { + const styles = []; + const chunks = []; + let chunk = []; // eslint-disable-next-line max-params + + temporary.replace(TEMPLATE_REGEX$1, (m, escapeCharacter, inverse, style, close, character) => { + if (escapeCharacter) { + chunk.push(unescape$1(escapeCharacter)); + } else if (style) { + const string = chunk.join(''); + chunk = []; + chunks.push(styles.length === 0 ? string : buildStyle$1(chalk, styles)(string)); + styles.push({ + inverse, + styles: parseStyle$1(style) + }); + } else if (close) { + if (styles.length === 0) { + throw new Error('Found extraneous } in Chalk template literal'); + } + + chunks.push(buildStyle$1(chalk, styles)(chunk.join(''))); + chunk = []; + styles.pop(); + } else { + chunk.push(character); + } + }); + chunks.push(chunk.join('')); + + if (styles.length > 0) { + const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; + throw new Error(errMessage); + } + + return chunks.join(''); +}; + +const { + stdout: stdoutColor, + stderr: stderrColor +} = supportsColor_1$1; +const { + stringReplaceAll, + stringEncaseCRLFWithFirstIndex +} = util$4; +const { + isArray: isArray$2 +} = Array; // `supportsColor.level` → `ansiStyles.color[name]` mapping + +const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; +const styles = Object.create(null); + +const applyOptions = (object, options = {}) => { + if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { + throw new Error('The `level` option should be an integer from 0 to 3'); + } // Detect level if not set manually + + + const colorLevel = stdoutColor ? stdoutColor.level : 0; + object.level = options.level === undefined ? colorLevel : options.level; +}; + +class ChalkClass { + constructor(options) { + // eslint-disable-next-line no-constructor-return + return chalkFactory(options); + } + +} + +const chalkFactory = options => { + const chalk = {}; + applyOptions(chalk, options); + + chalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_); + + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + + chalk.template.constructor = () => { + throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); + }; + + chalk.template.Instance = ChalkClass; + return chalk.template; +}; + +function Chalk(options) { + return chalkFactory(options); +} + +for (const [styleName, style] of Object.entries(ansiStyles$1)) { + styles[styleName] = { + get() { + const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); + Object.defineProperty(this, styleName, { + value: builder + }); + return builder; + } + + }; +} + +styles.visible = { + get() { + const builder = createBuilder(this, this._styler, true); + Object.defineProperty(this, 'visible', { + value: builder + }); + return builder; + } + +}; +const usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256']; + +for (const model of usedModels) { + styles[model] = { + get() { + const { + level + } = this; + return function (...arguments_) { + const styler = createStyler(ansiStyles$1.color[levelMapping[level]][model](...arguments_), ansiStyles$1.color.close, this._styler); + return createBuilder(this, styler, this._isEmpty); + }; + } + + }; +} + +for (const model of usedModels) { + const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const { + level + } = this; + return function (...arguments_) { + const styler = createStyler(ansiStyles$1.bgColor[levelMapping[level]][model](...arguments_), ansiStyles$1.bgColor.close, this._styler); + return createBuilder(this, styler, this._isEmpty); + }; + } + + }; +} + +const proto = Object.defineProperties(() => {}, Object.assign(Object.assign({}, styles), {}, { + level: { + enumerable: true, + + get() { + return this._generator.level; + }, + + set(level) { + this._generator.level = level; + } + + } +})); + +const createStyler = (open, close, parent) => { + let openAll; + let closeAll; + + if (parent === undefined) { + openAll = open; + closeAll = close; + } else { + openAll = parent.openAll + open; + closeAll = close + parent.closeAll; + } + + return { + open, + close, + openAll, + closeAll, + parent + }; +}; + +const createBuilder = (self, _styler, _isEmpty) => { + const builder = (...arguments_) => { + if (isArray$2(arguments_[0]) && isArray$2(arguments_[0].raw)) { + // Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}` + return applyStyle(builder, chalkTag(builder, ...arguments_)); + } // Single argument is hot path, implicit coercion is faster than anything + // eslint-disable-next-line no-implicit-coercion + + + return applyStyle(builder, arguments_.length === 1 ? '' + arguments_[0] : arguments_.join(' ')); + }; // We alter the prototype because we must return a function, but there is + // no way to create a function with a different prototype + + + Object.setPrototypeOf(builder, proto); + builder._generator = self; + builder._styler = _styler; + builder._isEmpty = _isEmpty; + return builder; +}; + +const applyStyle = (self, string) => { + if (self.level <= 0 || !string) { + return self._isEmpty ? '' : string; + } + + let styler = self._styler; + + if (styler === undefined) { + return string; + } + + const { + openAll, + closeAll + } = styler; + + if (string.indexOf('\u001B') !== -1) { + while (styler !== undefined) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + string = stringReplaceAll(string, styler.close, styler.open); + styler = styler.parent; + } + } // We can move both next actions out of loop, because remaining actions in loop won't have + // any/visible effect on parts we add here. Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 + + + const lfIndex = string.indexOf('\n'); + + if (lfIndex !== -1) { + string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); + } + + return openAll + string + closeAll; +}; + +let template; + +const chalkTag = (chalk, ...strings) => { + const [firstString] = strings; + + if (!isArray$2(firstString) || !isArray$2(firstString.raw)) { + // If chalk() was called by itself or with a string, + // return the string itself as a string. + return strings.join(' '); + } + + const arguments_ = strings.slice(1); + const parts = [firstString.raw[0]]; + + for (let i = 1; i < firstString.length; i++) { + parts.push(String(arguments_[i - 1]).replace(/[{}\\]/g, '\\$&'), String(firstString.raw[i])); + } + + if (template === undefined) { + template = templates$1; + } + + return template(chalk, parts.join('')); +}; + +Object.defineProperties(Chalk.prototype, styles); +const chalk$1 = Chalk(); // eslint-disable-line new-cap + +chalk$1.supportsColor = stdoutColor; +chalk$1.stderr = Chalk({ + level: stderrColor ? stderrColor.level : 0 +}); // eslint-disable-line new-cap + +chalk$1.stderr.supportsColor = stderrColor; +var source$2 = chalk$1; + +const _excluded$2 = ["_"]; + +const cliDescriptor = { + key: key => key.length === 1 ? `-${key}` : `--${key}`, + value: value => lib$4.apiDescriptor.value(value), + pair: ({ + key, + value + }) => value === false ? `--no-${key}` : value === true ? cliDescriptor.key(key) : value === "" ? `${cliDescriptor.key(key)} without an argument` : `${cliDescriptor.key(key)}=${value}` +}; + +class FlagSchema extends lib$4.ChoiceSchema { + constructor({ + name, + flags + }) { + super({ + name, + choices: flags + }); + this._flags = [...flags].sort(); + } + + preprocess(value, utils) { + if (typeof value === "string" && value.length > 0 && !this._flags.includes(value)) { + const suggestion = this._flags.find(flag => leven_1(flag, value) < 3); + + if (suggestion) { + utils.logger.warn([`Unknown flag ${source$2.yellow(utils.descriptor.value(value))},`, `did you mean ${source$2.blue(utils.descriptor.value(suggestion))}?`].join(" ")); + return suggestion; + } + } + + return value; + } + + expected() { + return "a flag"; + } + +} + +let hasDeprecationWarned; + +function normalizeOptions$3(options, optionInfos, { + logger, + isCLI = false, + passThrough = false +} = {}) { + const unknown = !passThrough ? (key, value, options) => { + // Don't suggest `_` for unknown flags + const _options$schemas = options.schemas, + schemas = _objectWithoutProperties(_options$schemas, _excluded$2); + + return lib$4.levenUnknownHandler(key, value, Object.assign(Object.assign({}, options), {}, { + schemas + })); + } : Array.isArray(passThrough) ? (key, value) => !passThrough.includes(key) ? undefined : { + [key]: value + } : (key, value) => ({ + [key]: value + }); + const descriptor = isCLI ? cliDescriptor : lib$4.apiDescriptor; + const schemas = optionInfosToSchemas(optionInfos, { + isCLI + }); + const normalizer = new lib$4.Normalizer(schemas, { + logger, + unknown, + descriptor + }); + const shouldSuppressDuplicateDeprecationWarnings = logger !== false; + + if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) { + normalizer._hasDeprecationWarned = hasDeprecationWarned; + } + + const normalized = normalizer.normalize(options); + + if (shouldSuppressDuplicateDeprecationWarnings) { + hasDeprecationWarned = normalizer._hasDeprecationWarned; + } + + return normalized; +} + +function optionInfosToSchemas(optionInfos, { + isCLI +}) { + const schemas = []; + + if (isCLI) { + schemas.push(lib$4.AnySchema.create({ + name: "_" + })); + } + + for (const optionInfo of optionInfos) { + schemas.push(optionInfoToSchema(optionInfo, { + isCLI, + optionInfos + })); + + if (optionInfo.alias && isCLI) { + schemas.push(lib$4.AliasSchema.create({ + name: optionInfo.alias, + sourceName: optionInfo.name + })); + } + } + + return schemas; +} + +function optionInfoToSchema(optionInfo, { + isCLI, + optionInfos +}) { + let SchemaConstructor; + const parameters = { + name: optionInfo.name + }; + const handlers = {}; + + switch (optionInfo.type) { + case "int": + SchemaConstructor = lib$4.IntegerSchema; + + if (isCLI) { + parameters.preprocess = value => Number(value); + } + + break; + + case "string": + SchemaConstructor = lib$4.StringSchema; + break; + + case "choice": + SchemaConstructor = lib$4.ChoiceSchema; + parameters.choices = optionInfo.choices.map(choiceInfo => typeof choiceInfo === "object" && choiceInfo.redirect ? Object.assign(Object.assign({}, choiceInfo), {}, { + redirect: { + to: { + key: optionInfo.name, + value: choiceInfo.redirect + } + } + }) : choiceInfo); + break; + + case "boolean": + SchemaConstructor = lib$4.BooleanSchema; + break; + + case "flag": + SchemaConstructor = FlagSchema; + parameters.flags = optionInfos.flatMap(optionInfo => [optionInfo.alias, optionInfo.description && optionInfo.name, optionInfo.oppositeDescription && `no-${optionInfo.name}`].filter(Boolean)); + break; + + case "path": + SchemaConstructor = lib$4.StringSchema; + break; + + default: + /* istanbul ignore next */ + throw new Error(`Unexpected type ${optionInfo.type}`); + } + + if (optionInfo.exception) { + parameters.validate = (value, schema, utils) => optionInfo.exception(value) || schema.validate(value, utils); + } else { + parameters.validate = (value, schema, utils) => value === undefined || schema.validate(value, utils); + } + /* istanbul ignore next */ + + + if (optionInfo.redirect) { + handlers.redirect = value => !value ? undefined : { + to: { + key: optionInfo.redirect.option, + value: optionInfo.redirect.value + } + }; + } + /* istanbul ignore next */ + + + if (optionInfo.deprecated) { + handlers.deprecated = true; + } // allow CLI overriding, e.g., prettier package.json --tab-width 1 --tab-width 2 + + + if (isCLI && !optionInfo.array) { + const originalPreprocess = parameters.preprocess || (x => x); + + parameters.preprocess = (value, schema, utils) => schema.preprocess(originalPreprocess(Array.isArray(value) ? getLast_1(value) : value), utils); + } + + return optionInfo.array ? lib$4.ArraySchema.create(Object.assign(Object.assign(Object.assign({}, isCLI ? { + preprocess: v => Array.isArray(v) ? v : [v] + } : {}), handlers), {}, { + valueSchema: SchemaConstructor.create(parameters) + })) : SchemaConstructor.create(Object.assign(Object.assign({}, parameters), handlers)); +} + +function normalizeApiOptions(options, optionInfos, opts) { + return normalizeOptions$3(options, optionInfos, opts); +} + +function normalizeCliOptions(options, optionInfos, opts) { + return normalizeOptions$3(options, optionInfos, Object.assign({ + isCLI: true + }, opts)); +} + +var optionsNormalizer = { + normalizeApiOptions, + normalizeCliOptions +}; + +const { + isNonEmptyArray: isNonEmptyArray$i +} = util$5; +/** + * @typedef {import("./types/estree").Node} Node + */ + +function locStart$q(node, opts) { + const { + ignoreDecorators + } = opts || {}; // Handle nodes with decorators. They should start at the first decorator + + if (!ignoreDecorators) { + const decorators = node.declaration && node.declaration.decorators || node.decorators; + + if (isNonEmptyArray$i(decorators)) { + return locStart$q(decorators[0]); + } + } + + return node.range ? node.range[0] : node.start; +} + +function locEnd$p(node) { + return node.range ? node.range[1] : node.end; +} +/** + * @param {Node} nodeA + * @param {Node} nodeB + * @returns {boolean} + */ + + +function hasSameLocStart$1(nodeA, nodeB) { + return locStart$q(nodeA) === locStart$q(nodeB); +} +/** + * @param {Node} nodeA + * @param {Node} nodeB + * @returns {boolean} + */ + + +function hasSameLocEnd(nodeA, nodeB) { + return locEnd$p(nodeA) === locEnd$p(nodeB); +} +/** + * @param {Node} nodeA + * @param {Node} nodeB + * @returns {boolean} + */ + + +function hasSameLoc$1(nodeA, nodeB) { + return hasSameLocStart$1(nodeA, nodeB) && hasSameLocEnd(nodeA, nodeB); +} + +var loc$6 = { + locStart: locStart$q, + locEnd: locEnd$p, + hasSameLocStart: hasSameLocStart$1, + hasSameLoc: hasSameLoc$1 +}; + +// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell +// License: MIT. (See LICENSE.) +// This regex comes from regex.coffee, and is inserted here by generate-index.js +// (run `npm run build`). +var _default$o = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; + +var matchToToken = function (match) { + var token = { + type: "invalid", + value: match[0], + closed: undefined + }; + if (match[1]) token.type = "string", token.closed = !!(match[3] || match[4]);else if (match[5]) token.type = "comment";else if (match[6]) token.type = "comment", token.closed = !!match[7];else if (match[8]) token.type = "regex";else if (match[9]) token.type = "number";else if (match[10]) token.type = "name";else if (match[11]) token.type = "punctuator";else if (match[12]) token.type = "whitespace"; + return token; +}; + +var jsTokens = /*#__PURE__*/Object.defineProperty({ + default: _default$o, + matchToToken: matchToToken +}, '__esModule', { + value: true +}); + +var isIdentifierStart_1 = isIdentifierStart; +var isIdentifierChar_1 = isIdentifierChar; +var isIdentifierName_1 = isIdentifierName$1; +let nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + +function isInAstralSet(code, set) { + let pos = 0x10000; + + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + + return false; +} + +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + + return isInAstralSet(code, astralIdentifierStartCodes); +} + +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} + +function isIdentifierName$1(name) { + let isFirst = true; + + for (let i = 0; i < name.length; i++) { + let cp = name.charCodeAt(i); + + if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { + const trail = name.charCodeAt(++i); + + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + + if (isFirst) { + isFirst = false; + + if (!isIdentifierStart(cp)) { + return false; + } + } else if (!isIdentifierChar(cp)) { + return false; + } + } + + return !isFirst; +} + +var identifier = /*#__PURE__*/Object.defineProperty({ + isIdentifierStart: isIdentifierStart_1, + isIdentifierChar: isIdentifierChar_1, + isIdentifierName: isIdentifierName_1 +}, '__esModule', { + value: true +}); + +var isReservedWord_1 = isReservedWord; +var isStrictReservedWord_1 = isStrictReservedWord; +var isStrictBindOnlyReservedWord_1 = isStrictBindOnlyReservedWord; +var isStrictBindReservedWord_1 = isStrictBindReservedWord; +var isKeyword_1 = isKeyword; +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords$1 = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} + +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} + +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} + +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} + +function isKeyword(word) { + return keywords$1.has(word); +} + +var keyword$1 = /*#__PURE__*/Object.defineProperty({ + isReservedWord: isReservedWord_1, + isStrictReservedWord: isStrictReservedWord_1, + isStrictBindOnlyReservedWord: isStrictBindOnlyReservedWord_1, + isStrictBindReservedWord: isStrictBindReservedWord_1, + isKeyword: isKeyword_1 +}, '__esModule', { + value: true +}); + +var lib$3 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "isIdentifierName", { + enumerable: true, + get: function () { + return identifier.isIdentifierName; + } + }); + Object.defineProperty(exports, "isIdentifierChar", { + enumerable: true, + get: function () { + return identifier.isIdentifierChar; + } + }); + Object.defineProperty(exports, "isIdentifierStart", { + enumerable: true, + get: function () { + return identifier.isIdentifierStart; + } + }); + Object.defineProperty(exports, "isReservedWord", { + enumerable: true, + get: function () { + return keyword$1.isReservedWord; + } + }); + Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { + enumerable: true, + get: function () { + return keyword$1.isStrictBindOnlyReservedWord; + } + }); + Object.defineProperty(exports, "isStrictBindReservedWord", { + enumerable: true, + get: function () { + return keyword$1.isStrictBindReservedWord; + } + }); + Object.defineProperty(exports, "isStrictReservedWord", { + enumerable: true, + get: function () { + return keyword$1.isStrictReservedWord; + } + }); + Object.defineProperty(exports, "isKeyword", { + enumerable: true, + get: function () { + return keyword$1.isKeyword; + } + }); +}); + +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + +var escapeStringRegexp = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + + return str.replace(matchOperatorsRe, '\\$&'); +}; + +var colorName = { + "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] +}; + +/* MIT license */ +var conversions = createCommonjsModule(function (module) { + // NOTE: conversions should only return primitive values (i.e. arrays, or + // values that give correct `typeof` results). + // do not use box values types (i.e. Number(), String(), etc.) + var reverseKeywords = {}; + + for (var key in colorName) { + if (colorName.hasOwnProperty(key)) { + reverseKeywords[colorName[key]] = key; + } + } + + var convert = module.exports = { + 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'] + } + }; // hide .channels and .labels properties + + for (var model in convert) { + if (convert.hasOwnProperty(model)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } + + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); + } + + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + + var channels = convert[model].channels; + var labels = convert[model].labels; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', { + value: channels + }); + Object.defineProperty(convert[model], 'labels', { + value: labels + }); + } + } + + convert.rgb.hsl = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var h; + var s; + var l; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; + }; + + convert.rgb.hsv = function (rgb) { + var rdif; + var gdif; + var bdif; + var h; + var s; + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var v = Math.max(r, g, b); + var diff = v - Math.min(r, g, b); + + var diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = 1 / 3 + rdif - bdif; + } else if (b === v) { + h = 2 / 3 + gdif - rdif; + } + + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [h * 360, s * 100, v * 100]; + }; + + convert.rgb.hwb = function (rgb) { + var r = rgb[0]; + var g = rgb[1]; + var b = rgb[2]; + var h = convert.rgb.hsl(rgb)[0]; + var w = 1 / 255 * Math.min(r, Math.min(g, b)); + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + return [h, w * 100, b * 100]; + }; + + convert.rgb.cmyk = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var c; + var m; + var y; + var k; + k = Math.min(1 - r, 1 - g, 1 - b); + c = (1 - r - k) / (1 - k) || 0; + m = (1 - g - k) / (1 - k) || 0; + y = (1 - b - k) / (1 - k) || 0; + return [c * 100, m * 100, y * 100, k * 100]; + }; + /** + * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + * */ + + + function comparativeDistance(x, y) { + return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2); + } + + convert.rgb.keyword = function (rgb) { + var reversed = reverseKeywords[rgb]; + + if (reversed) { + return reversed; + } + + var currentClosestDistance = Infinity; + var currentClosestKeyword; + + for (var keyword in colorName) { + if (colorName.hasOwnProperty(keyword)) { + var value = colorName[keyword]; // Compute comparative distance + + var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest + + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + } + + return currentClosestKeyword; + }; + + convert.keyword.rgb = function (keyword) { + return colorName[keyword]; + }; + + convert.rgb.xyz = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; // assume sRGB + + r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; + g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; + b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; + var x = r * 0.4124 + g * 0.3576 + b * 0.1805; + var y = r * 0.2126 + g * 0.7152 + b * 0.0722; + var z = r * 0.0193 + g * 0.1192 + b * 0.9505; + return [x * 100, y * 100, z * 100]; + }; + + convert.rgb.lab = function (rgb) { + var xyz = convert.rgb.xyz(rgb); + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; + }; + + convert.hsl.rgb = function (hsl) { + var h = hsl[0] / 360; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var t1; + var t2; + var t3; + var rgb; + var val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + t1 = 2 * l - t2; + rgb = [0, 0, 0]; + + for (var i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + + if (t3 < 0) { + t3++; + } + + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; + }; + + convert.hsl.hsv = function (hsl) { + var h = hsl[0]; + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var smin = s; + var lmin = Math.max(l, 0.01); + var sv; + var v; + l *= 2; + s *= l <= 1 ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + v = (l + s) / 2; + sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); + return [h, sv * 100, v * 100]; + }; + + convert.hsv.rgb = function (hsv) { + var h = hsv[0] / 60; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var hi = Math.floor(h) % 6; + var f = h - Math.floor(h); + var p = 255 * v * (1 - s); + var q = 255 * v * (1 - s * f); + var t = 255 * v * (1 - s * (1 - f)); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + + case 1: + return [q, v, p]; + + case 2: + return [p, v, t]; + + case 3: + return [p, q, v]; + + case 4: + return [t, p, v]; + + case 5: + return [v, p, q]; + } + }; + + convert.hsv.hsl = function (hsv) { + var h = hsv[0]; + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var vmin = Math.max(v, 0.01); + var lmin; + var sl; + var l; + l = (2 - s) * v; + lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= lmin <= 1 ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + return [h, sl * 100, l * 100]; + }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb + + + convert.hwb.rgb = function (hwb) { + var h = hwb[0] / 360; + var wh = hwb[1] / 100; + var bl = hwb[2] / 100; + var ratio = wh + bl; + var i; + var v; + var f; + var n; // wh + bl cant be > 1 + + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + i = Math.floor(6 * h); + v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + n = wh + f * (v - wh); // linear interpolation + + var r; + var g; + var b; + + switch (i) { + default: + case 6: + case 0: + r = v; + g = n; + b = wh; + break; + + case 1: + r = n; + g = v; + b = wh; + break; + + case 2: + r = wh; + g = v; + b = n; + break; + + case 3: + r = wh; + g = n; + b = v; + break; + + case 4: + r = n; + g = wh; + b = v; + break; + + case 5: + r = v; + g = wh; + b = n; + break; + } + + return [r * 255, g * 255, b * 255]; + }; + + convert.cmyk.rgb = function (cmyk) { + var c = cmyk[0] / 100; + var m = cmyk[1] / 100; + var y = cmyk[2] / 100; + var k = cmyk[3] / 100; + var r; + var g; + var b; + r = 1 - Math.min(1, c * (1 - k) + k); + g = 1 - Math.min(1, m * (1 - k) + k); + b = 1 - Math.min(1, y * (1 - k) + k); + return [r * 255, g * 255, b * 255]; + }; + + convert.xyz.rgb = function (xyz) { + var x = xyz[0] / 100; + var y = xyz[1] / 100; + var z = xyz[2] / 100; + var r; + var g; + var b; + r = x * 3.2406 + y * -1.5372 + z * -0.4986; + g = x * -0.9689 + y * 1.8758 + z * 0.0415; + b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB + + r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92; + g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92; + b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92; + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + return [r * 255, g * 255, b * 255]; + }; + + convert.xyz.lab = function (xyz) { + var x = xyz[0]; + var y = xyz[1]; + var z = xyz[2]; + var l; + var a; + var b; + x /= 95.047; + y /= 100; + z /= 108.883; + x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; + y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; + z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; + l = 116 * y - 16; + a = 500 * (x - y); + b = 200 * (y - z); + return [l, a, b]; + }; + + convert.lab.xyz = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var x; + var y; + var z; + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + var y2 = Math.pow(y, 3); + var x2 = Math.pow(x, 3); + var z2 = Math.pow(z, 3); + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + x *= 95.047; + y *= 100; + z *= 108.883; + return [x, y, z]; + }; + + convert.lab.lch = function (lab) { + var l = lab[0]; + var a = lab[1]; + var b = lab[2]; + var hr; + var h; + var c; + hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; -for (const model of Object.keys(convert$1)) { - if (!('channels' in convert$1[model])) { - throw new Error('missing channels property: ' + model); - } + if (h < 0) { + h += 360; + } - if (!('labels' in convert$1[model])) { - throw new Error('missing channel labels property: ' + model); - } + c = Math.sqrt(a * a + b * b); + return [l, c, h]; + }; - if (convert$1[model].labels.length !== convert$1[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); - } + convert.lch.lab = function (lch) { + var l = lch[0]; + var c = lch[1]; + var h = lch[2]; + var a; + var b; + var hr; + hr = h / 360 * 2 * Math.PI; + a = c * Math.cos(hr); + b = c * Math.sin(hr); + return [l, a, b]; + }; - const { - channels, - labels - } = convert$1[model]; - delete convert$1[model].channels; - delete convert$1[model].labels; - Object.defineProperty(convert$1[model], 'channels', { - value: channels - }); - Object.defineProperty(convert$1[model], 'labels', { - value: labels - }); -} + convert.rgb.ansi16 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; + var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization -convert$1.rgb.hsl = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const min = Math.min(r, g, b); - const max = Math.max(r, g, b); - const delta = max - min; - let h; - let s; + value = Math.round(value / 50); - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } + if (value === 0) { + return 30; + } - h = Math.min(h * 60, 360); + var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); - if (h < 0) { - h += 360; - } + if (value === 2) { + ansi += 60; + } - const l = (min + max) / 2; + return ansi; + }; - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } + convert.hsv.ansi16 = function (args) { + // optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + }; - return [h, s * 100, l * 100]; -}; + convert.rgb.ansi256 = function (args) { + var r = args[0]; + var g = args[1]; + var b = args[2]; // we use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. -convert$1.rgb.hsv = function (rgb) { - let rdif; - let gdif; - let bdif; - let h; - let s; - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const v = Math.max(r, g, b); - const diff = v - Math.min(r, g, b); + if (r === g && g === b) { + if (r < 8) { + return 16; + } - const diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; + if (r > 248) { + return 231; + } + + return Math.round((r - 8) / 247 * 24) + 232; + } + + var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); + return ansi; }; - if (diff === 0) { - h = 0; - s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); + convert.ansi16.rgb = function (args) { + var color = args % 10; // handle greyscale - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = 1 / 3 + rdif - bdif; - } else if (b === v) { - h = 2 / 3 + gdif - rdif; + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = color / 10.5 * 255; + return [color, color, color]; } - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; + var mult = (~~(args > 50) + 1) * 0.5; + var r = (color & 1) * mult * 255; + var g = (color >> 1 & 1) * mult * 255; + var b = (color >> 2 & 1) * mult * 255; + return [r, g, b]; + }; + + convert.ansi256.rgb = function (args) { + // handle greyscale + if (args >= 232) { + var c = (args - 232) * 10 + 8; + return [c, c, c]; } - } - return [h * 360, s * 100, v * 100]; -}; + args -= 16; + var rem; + var r = Math.floor(args / 36) / 5 * 255; + var g = Math.floor((rem = args % 36) / 6) / 5 * 255; + var b = rem % 6 / 5 * 255; + return [r, g, b]; + }; -convert$1.rgb.hwb = function (rgb) { - const r = rgb[0]; - const g = rgb[1]; - let b = rgb[2]; - const h = convert$1.rgb.hsl(rgb)[0]; - const w = 1 / 255 * Math.min(r, Math.min(g, b)); - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - return [h, w * 100, b * 100]; -}; + convert.rgb.hex = function (args) { + var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; + }; -convert$1.rgb.cmyk = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const k = Math.min(1 - r, 1 - g, 1 - b); - const c = (1 - r - k) / (1 - k) || 0; - const m = (1 - g - k) / (1 - k) || 0; - const y = (1 - b - k) / (1 - k) || 0; - return [c * 100, m * 100, y * 100, k * 100]; -}; + convert.hex.rgb = function (args) { + var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); -function comparativeDistance(x, y) { - /* - See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - */ - return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2; -} + if (!match) { + return [0, 0, 0]; + } -convert$1.rgb.keyword = function (rgb) { - const reversed = reverseKeywords[rgb]; + var colorString = match[0]; - if (reversed) { - return reversed; - } + if (match[0].length === 3) { + colorString = colorString.split('').map(function (char) { + return char + char; + }).join(''); + } - let currentClosestDistance = Infinity; - let currentClosestKeyword; + var integer = parseInt(colorString, 16); + var r = integer >> 16 & 0xFF; + var g = integer >> 8 & 0xFF; + var b = integer & 0xFF; + return [r, g, b]; + }; - for (const keyword of Object.keys(colorName$1)) { - const value = colorName$1[keyword]; // Compute comparative distance + convert.rgb.hcg = function (rgb) { + var r = rgb[0] / 255; + var g = rgb[1] / 255; + var b = rgb[2] / 255; + var max = Math.max(Math.max(r, g), b); + var min = Math.min(Math.min(r, g), b); + var chroma = max - min; + var grayscale; + var hue; - const distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; + if (chroma <= 0) { + hue = 0; + } else if (max === r) { + hue = (g - b) / chroma % 6; + } else if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma + 4; } - } - return currentClosestKeyword; -}; + hue /= 6; + hue %= 1; + return [hue * 360, chroma * 100, grayscale * 100]; + }; -convert$1.keyword.rgb = function (keyword) { - return colorName$1[keyword]; -}; + convert.hsl.hcg = function (hsl) { + var s = hsl[1] / 100; + var l = hsl[2] / 100; + var c = 1; + var f = 0; -convert$1.rgb.xyz = function (rgb) { - let r = rgb[0] / 255; - let g = rgb[1] / 255; - let b = rgb[2] / 255; // Assume sRGB + if (l < 0.5) { + c = 2.0 * s * l; + } else { + c = 2.0 * s * (1.0 - l); + } - r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92; - g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92; - b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92; - const x = r * 0.4124 + g * 0.3576 + b * 0.1805; - const y = r * 0.2126 + g * 0.7152 + b * 0.0722; - const z = r * 0.0193 + g * 0.1192 + b * 0.9505; - return [x * 100, y * 100, z * 100]; -}; + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } -convert$1.rgb.lab = function (rgb) { - const xyz = convert$1.rgb.xyz(rgb); - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116; - const l = 116 * y - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); - return [l, a, b]; -}; + return [hsl[0], c * 100, f * 100]; + }; -convert$1.hsl.rgb = function (hsl) { - const h = hsl[0] / 360; - const s = hsl[1] / 100; - const l = hsl[2] / 100; - let t2; - let t3; - let val; + convert.hsv.hcg = function (hsv) { + var s = hsv[1] / 100; + var v = hsv[2] / 100; + var c = s * v; + var f = 0; - if (s === 0) { - val = l * 255; - return [val, val, val]; - } + if (c < 1.0) { + f = (v - c) / (1 - c); + } - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } + return [hsv[0], c * 100, f * 100]; + }; - const t1 = 2 * l - t2; - const rgb = [0, 0, 0]; + convert.hcg.rgb = function (hcg) { + var h = hcg[0] / 360; + var c = hcg[1] / 100; + var g = hcg[2] / 100; - for (let i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } - if (t3 < 0) { - t3++; + var pure = [0, 0, 0]; + var hi = h % 1 * 6; + var v = hi % 1; + var w = 1 - v; + var mg = 0; + + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; + pure[1] = v; + pure[2] = 0; + break; + + case 1: + pure[0] = w; + pure[1] = 1; + pure[2] = 0; + break; + + case 2: + pure[0] = 0; + pure[1] = 1; + pure[2] = v; + break; + + case 3: + pure[0] = 0; + pure[1] = w; + pure[2] = 1; + break; + + case 4: + pure[0] = v; + pure[1] = 0; + pure[2] = 1; + break; + + default: + pure[0] = 1; + pure[1] = 0; + pure[2] = w; } - if (t3 > 1) { - t3--; + mg = (1.0 - c) * g; + return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; + }; + + convert.hcg.hsv = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + var f = 0; + + if (v > 0.0) { + f = c / v; } - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; + return [hcg[0], f * 100, v * 100]; + }; + + convert.hcg.hsl = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var l = g * (1.0 - c) + 0.5 * c; + var s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); } - rgb[i] = val * 255; - } + return [hcg[0], s * 100, l * 100]; + }; - return rgb; -}; + convert.hcg.hwb = function (hcg) { + var c = hcg[1] / 100; + var g = hcg[2] / 100; + var v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; + }; -convert$1.hsl.hsv = function (hsl) { - const h = hsl[0]; - let s = hsl[1] / 100; - let l = hsl[2] / 100; - let smin = s; - const lmin = Math.max(l, 0.01); - l *= 2; - s *= l <= 1 ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - const v = (l + s) / 2; - const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); - return [h, sv * 100, v * 100]; -}; + convert.hwb.hcg = function (hwb) { + var w = hwb[1] / 100; + var b = hwb[2] / 100; + var v = 1 - b; + var c = v - w; + var g = 0; -convert$1.hsv.rgb = function (hsv) { - const h = hsv[0] / 60; - const s = hsv[1] / 100; - let v = hsv[2] / 100; - const hi = Math.floor(h) % 6; - const f = h - Math.floor(h); - const p = 255 * v * (1 - s); - const q = 255 * v * (1 - s * f); - const t = 255 * v * (1 - s * (1 - f)); - v *= 255; + if (c < 1) { + g = (v - c) / (1 - c); + } - switch (hi) { - case 0: - return [v, t, p]; + return [hwb[0], c * 100, g * 100]; + }; - case 1: - return [q, v, p]; + convert.apple.rgb = function (apple) { + return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; + }; - case 2: - return [p, v, t]; + convert.rgb.apple = function (rgb) { + return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; + }; - case 3: - return [p, q, v]; + convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; + }; - case 4: - return [t, p, v]; + convert.gray.hsl = convert.gray.hsv = function (args) { + return [0, 0, args[0]]; + }; - case 5: - return [v, p, q]; - } -}; + convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; + }; -convert$1.hsv.hsl = function (hsv) { - const h = hsv[0]; - const s = hsv[1] / 100; - const v = hsv[2] / 100; - const vmin = Math.max(v, 0.01); - let sl; - let l; - l = (2 - s) * v; - const lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= lmin <= 1 ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - return [h, sl * 100, l * 100]; -}; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb + convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; + }; + + convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; + }; + + convert.gray.hex = function (gray) { + var val = Math.round(gray[0] / 100 * 255) & 0xFF; + var integer = (val << 16) + (val << 8) + val; + var string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; + }; + convert.rgb.gray = function (rgb) { + var val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; + }; +}); -convert$1.hwb.rgb = function (hwb) { - const h = hwb[0] / 360; - let wh = hwb[1] / 100; - let bl = hwb[2] / 100; - const ratio = wh + bl; - let f; // Wh + bl cant be > 1 +/* + this function routes a model to all other models. - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). - const i = Math.floor(6 * h); - const v = 1 - bl; - f = 6 * h - i; + conversions that are not possible simply are not included. +*/ - if ((i & 0x01) !== 0) { - f = 1 - f; - } +function buildGraph() { + var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - const n = wh + f * (v - wh); // Linear interpolation + var models = Object.keys(conversions); - let r; - let g; - let b; - /* eslint-disable max-statements-per-line,no-multi-spaces */ + for (var len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } - switch (i) { - default: - case 6: - case 0: - r = v; - g = n; - b = wh; - break; + return graph; +} // https://en.wikipedia.org/wiki/Breadth-first_search - case 1: - r = n; - g = v; - b = wh; - break; - case 2: - r = wh; - g = v; - b = n; - break; +function deriveBFS(fromModel) { + var graph = buildGraph(); + var queue = [fromModel]; // unshift -> queue -> pop - case 3: - r = wh; - g = n; - b = v; - break; + graph[fromModel].distance = 0; - case 4: - r = n; - g = wh; - b = v; - break; + while (queue.length) { + var current = queue.pop(); + var adjacents = Object.keys(conversions[current]); - case 5: - r = v; - g = wh; - b = n; - break; + for (var len = adjacents.length, i = 0; i < len; i++) { + var adjacent = adjacents[i]; + var node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } } - /* eslint-enable max-statements-per-line,no-multi-spaces */ + return graph; +} - return [r * 255, g * 255, b * 255]; -}; +function link$1(from, to) { + return function (args) { + return to(from(args)); + }; +} -convert$1.cmyk.rgb = function (cmyk) { - const c = cmyk[0] / 100; - const m = cmyk[1] / 100; - const y = cmyk[2] / 100; - const k = cmyk[3] / 100; - const r = 1 - Math.min(1, c * (1 - k) + k); - const g = 1 - Math.min(1, m * (1 - k) + k); - const b = 1 - Math.min(1, y * (1 - k) + k); - return [r * 255, g * 255, b * 255]; -}; +function wrapConversion(toModel, graph) { + var path = [graph[toModel].parent, toModel]; + var fn = conversions[graph[toModel].parent][toModel]; + var cur = graph[toModel].parent; -convert$1.xyz.rgb = function (xyz) { - const x = xyz[0] / 100; - const y = xyz[1] / 100; - const z = xyz[2] / 100; - let r; - let g; - let b; - r = x * 3.2406 + y * -1.5372 + z * -0.4986; - g = x * -0.9689 + y * 1.8758 + z * 0.0415; - b = x * 0.0557 + y * -0.2040 + z * 1.0570; // Assume sRGB + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link$1(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } - r = r > 0.0031308 ? 1.055 * r ** (1.0 / 2.4) - 0.055 : r * 12.92; - g = g > 0.0031308 ? 1.055 * g ** (1.0 / 2.4) - 0.055 : g * 12.92; - b = b > 0.0031308 ? 1.055 * b ** (1.0 / 2.4) - 0.055 : b * 12.92; - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); - return [r * 255, g * 255, b * 255]; -}; + fn.conversion = path; + return fn; +} -convert$1.xyz.lab = function (xyz) { - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? x ** (1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? y ** (1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? z ** (1 / 3) : 7.787 * z + 16 / 116; - const l = 116 * y - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); - return [l, a, b]; -}; +var route = function (fromModel) { + var graph = deriveBFS(fromModel); + var conversion = {}; + var models = Object.keys(graph); -convert$1.lab.xyz = function (lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let x; - let y; - let z; - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; - const y2 = y ** 3; - const x2 = x ** 3; - const z2 = z ** 3; - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - x *= 95.047; - y *= 100; - z *= 108.883; - return [x, y, z]; -}; + for (var len = models.length, i = 0; i < len; i++) { + var toModel = models[i]; + var node = graph[toModel]; -convert$1.lab.lch = function (lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let h; - const hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; + if (node.parent === null) { + // no possible conversion, or this node is the source model. + continue; + } - if (h < 0) { - h += 360; + conversion[toModel] = wrapConversion(toModel, graph); } - const c = Math.sqrt(a * a + b * b); - return [l, c, h]; + return conversion; }; -convert$1.lch.lab = function (lch) { - const l = lch[0]; - const c = lch[1]; - const h = lch[2]; - const hr = h / 360 * 2 * Math.PI; - const a = c * Math.cos(hr); - const b = c * Math.sin(hr); - return [l, a, b]; -}; +var convert = {}; +var models = Object.keys(conversions); -convert$1.rgb.ansi16 = function (args, saturation = null) { - const [r, g, b] = args; - let value = saturation === null ? convert$1.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization +function wrapRaw(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; + } - value = Math.round(value / 50); + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); + } - if (value === 0) { - return 30; - } + return fn(args); + }; // preserve .conversion property if there is one - let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); - if (value === 2) { - ansi += 60; + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; } - return ansi; -}; - -convert$1.hsv.ansi16 = function (args) { - // Optimization here; we already know the value and don't need to get - // it converted for us. - return convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]); -}; - -convert$1.rgb.ansi256 = function (args) { - const r = args[0]; - const g = args[1]; - const b = args[2]; // We use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. + return wrappedFn; +} - if (r === g && g === b) { - if (r < 8) { - return 16; +function wrapRounded(fn) { + var wrappedFn = function (args) { + if (args === undefined || args === null) { + return args; } - if (r > 248) { - return 231; + if (arguments.length > 1) { + args = Array.prototype.slice.call(arguments); } - return Math.round((r - 8) / 247 * 24) + 232; - } + var result = fn(args); // we're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. - const ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); - return ansi; -}; + if (typeof result === 'object') { + for (var len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } -convert$1.ansi16.rgb = function (args) { - let color = args % 10; // Handle greyscale + return result; + }; // preserve .conversion property if there is one - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - color = color / 10.5 * 255; - return [color, color, color]; + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; } - const mult = (~~(args > 50) + 1) * 0.5; - const r = (color & 1) * mult * 255; - const g = (color >> 1 & 1) * mult * 255; - const b = (color >> 2 & 1) * mult * 255; - return [r, g, b]; -}; + return wrappedFn; +} -convert$1.ansi256.rgb = function (args) { - // Handle greyscale - if (args >= 232) { - const c = (args - 232) * 10 + 8; - return [c, c, c]; - } +models.forEach(function (fromModel) { + convert[fromModel] = {}; + Object.defineProperty(convert[fromModel], 'channels', { + value: conversions[fromModel].channels + }); + Object.defineProperty(convert[fromModel], 'labels', { + value: conversions[fromModel].labels + }); + var routes = route(fromModel); + var routeModels = Object.keys(routes); + routeModels.forEach(function (toModel) { + var fn = routes[toModel]; + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); +var colorConvert = convert; - args -= 16; - let rem; - const r = Math.floor(args / 36) / 5 * 255; - const g = Math.floor((rem = args % 36) / 6) / 5 * 255; - const b = rem % 6 / 5 * 255; - return [r, g, b]; -}; +var ansiStyles = createCommonjsModule(function (module) { -convert$1.rgb.hex = function (args) { - const integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); - const string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; + const wrapAnsi16 = (fn, offset) => function () { + const code = fn.apply(colorConvert, arguments); + return `\u001B[${code + offset}m`; + }; -convert$1.hex.rgb = function (args) { - const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + const wrapAnsi256 = (fn, offset) => function () { + const code = fn.apply(colorConvert, arguments); + return `\u001B[${38 + offset};5;${code}m`; + }; - if (!match) { - return [0, 0, 0]; - } + const wrapAnsi16m = (fn, offset) => function () { + const rgb = fn.apply(colorConvert, arguments); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; + }; - let colorString = match[0]; + function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + 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], + gray: [90, 39], + // Bright color + 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], + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; // Fix humans - if (match[0].length === 3) { - colorString = colorString.split('').map(char => { - return char + char; - }).join(''); - } + styles.color.grey = styles.color.gray; - const integer = parseInt(colorString, 16); - const r = integer >> 16 & 0xFF; - const g = integer >> 8 & 0xFF; - const b = integer & 0xFF; - return [r, g, b]; -}; + for (const groupName of Object.keys(styles)) { + const group = styles[groupName]; -convert$1.rgb.hcg = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const max = Math.max(Math.max(r, g), b); - const min = Math.min(Math.min(r, g), b); - const chroma = max - min; - let grayscale; - let hue; + for (const styleName of Object.keys(group)) { + const style = group[styleName]; + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + group[styleName] = styles[styleName]; + codes.set(style[0], style[1]); + } - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + } - if (chroma <= 0) { - hue = 0; - } else if (max === r) { - hue = (g - b) / chroma % 6; - } else if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma; - } + const ansi2ansi = n => n; - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; -}; + const rgb2rgb = (r, g, b) => [r, g, b]; -convert$1.hsl.hcg = function (hsl) { - const s = hsl[1] / 100; - const l = hsl[2] / 100; - const c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l); - let f = 0; + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + styles.color.ansi = { + ansi: wrapAnsi16(ansi2ansi, 0) + }; + styles.color.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 0) + }; + styles.color.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 0) + }; + styles.bgColor.ansi = { + ansi: wrapAnsi16(ansi2ansi, 10) + }; + styles.bgColor.ansi256 = { + ansi256: wrapAnsi256(ansi2ansi, 10) + }; + styles.bgColor.ansi16m = { + rgb: wrapAnsi16m(rgb2rgb, 10) + }; - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } + for (let key of Object.keys(colorConvert)) { + if (typeof colorConvert[key] !== 'object') { + continue; + } - return [hsl[0], c * 100, f * 100]; -}; + const suite = colorConvert[key]; -convert$1.hsv.hcg = function (hsv) { - const s = hsv[1] / 100; - const v = hsv[2] / 100; - const c = s * v; - let f = 0; + if (key === 'ansi16') { + key = 'ansi'; + } - if (c < 1.0) { - f = (v - c) / (1 - c); - } + if ('ansi16' in suite) { + styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); + styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); + } - return [hsv[0], c * 100, f * 100]; -}; + if ('ansi256' in suite) { + styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); + styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); + } -convert$1.hcg.rgb = function (hcg) { - const h = hcg[0] / 360; - const c = hcg[1] / 100; - const g = hcg[2] / 100; + if ('rgb' in suite) { + styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); + styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); + } + } - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } + return styles; + } // Make the export immutable - const pure = [0, 0, 0]; - const hi = h % 1 * 6; - const v = hi % 1; - const w = 1 - v; - let mg = 0; - /* eslint-disable max-statements-per-line */ - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; - pure[1] = v; - pure[2] = 0; - break; + Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles + }); +}); - case 1: - pure[0] = w; - pure[1] = 1; - pure[2] = 0; - break; +var hasFlag = (flag, argv) => { + argv = argv || process.argv; + const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--'; + const pos = argv.indexOf(prefix + flag); + const terminatorPos = argv.indexOf('--'); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); +}; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v; - break; +const env = process.env; +let forceColor; - case 3: - pure[0] = 0; - pure[1] = w; - pure[2] = 1; - break; +if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { + forceColor = false; +} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) { + forceColor = true; +} - case 4: - pure[0] = v; - pure[1] = 0; - pure[2] = 1; - break; +if ('FORCE_COLOR' in env) { + forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; +} - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w; +function translateLevel(level) { + if (level === 0) { + return false; } - /* eslint-enable max-statements-per-line */ - - - mg = (1.0 - c) * g; - return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; -}; -convert$1.hcg.hsv = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const v = c + g * (1.0 - c); - let f = 0; + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} - if (v > 0.0) { - f = c / v; +function supportsColor(stream) { + if (forceColor === false) { + return 0; } - return [hcg[0], f * 100, v * 100]; -}; + if (hasFlag('color=16m') || hasFlag('color=full') || hasFlag('color=truecolor')) { + return 3; + } -convert$1.hcg.hsl = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const l = g * (1.0 - c) + 0.5 * c; - let s = 0; + if (hasFlag('color=256')) { + return 2; + } - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); + if (stream && !stream.isTTY && forceColor !== true) { + return 0; } - return [hcg[0], s * 100, l * 100]; -}; + const min = forceColor ? 1 : 0; -convert$1.hcg.hwb = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; -}; + if (process.platform === 'win32') { + // Node.js 7.5.0 is the first version of Node.js to include a patch to + // libuv that enables 256 color output on Windows. Anything earlier and it + // won't work. However, here we target Node.js 8 at minimum as it is an LTS + // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows + // release that supports 256 colors. Windows 10 build 14931 is the first release + // that supports 16m/TrueColor. + const osRelease = os__default['default'].release().split('.'); -convert$1.hwb.hcg = function (hwb) { - const w = hwb[1] / 100; - const b = hwb[2] / 100; - const v = 1 - b; - const c = v - w; - let g = 0; + if (Number(process.versions.node.split('.')[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } - if (c < 1) { - g = (v - c) / (1 - c); + return 1; } - return [hwb[0], c * 100, g * 100]; -}; - -convert$1.apple.rgb = function (apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; -}; + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } -convert$1.rgb.apple = function (rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; -}; + return min; + } -convert$1.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; -}; + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } -convert$1.gray.hsl = function (args) { - return [0, 0, args[0]]; -}; + if (env.COLORTERM === 'truecolor') { + return 3; + } -convert$1.gray.hsv = convert$1.gray.hsl; + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); -convert$1.gray.hwb = function (gray) { - return [0, 100, gray[0]]; -}; + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; -convert$1.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; -}; + case 'Apple_Terminal': + return 2; + // No default + } + } -convert$1.gray.lab = function (gray) { - return [gray[0], 0, 0]; -}; + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } -convert$1.gray.hex = function (gray) { - const val = Math.round(gray[0] / 100 * 255) & 0xFF; - const integer = (val << 16) + (val << 8) + val; - const string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } -convert$1.rgb.gray = function (rgb) { - const val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; -}; + if ('COLORTERM' in env) { + return 1; + } -/* - This function routes a model to all other models. + if (env.TERM === 'dumb') { + return min; + } - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). + return min; +} - conversions that are not possible simply are not included. -*/ +function getSupportLevel(stream) { + const level = supportsColor(stream); + return translateLevel(level); +} -function buildGraph$1() { - const graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 +var supportsColor_1 = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) +}; - const models = Object.keys(conversions$1); +const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; +const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; +const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; +const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; +const ESCAPES = new Map([['n', '\n'], ['r', '\r'], ['t', '\t'], ['b', '\b'], ['f', '\f'], ['v', '\v'], ['0', '\0'], ['\\', '\\'], ['e', '\u001B'], ['a', '\u0007']]); - for (let len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; +function unescape(c) { + if (c[0] === 'u' && c.length === 5 || c[0] === 'x' && c.length === 3) { + return String.fromCharCode(parseInt(c.slice(1), 16)); } - return graph; -} // https://en.wikipedia.org/wiki/Breadth-first_search + return ESCAPES.get(c) || c; +} +function parseArguments(name, args) { + const results = []; + const chunks = args.trim().split(/\s*,\s*/g); + let matches; -function deriveBFS$1(fromModel) { - const graph = buildGraph$1(); - const queue = [fromModel]; // Unshift -> queue -> pop + for (const chunk of chunks) { + if (!isNaN(chunk)) { + results.push(Number(chunk)); + } else if (matches = chunk.match(STRING_REGEX$1)) { + results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr)); + } else { + throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + } + } - graph[fromModel].distance = 0; + return results; +} - while (queue.length) { - const current = queue.pop(); - const adjacents = Object.keys(conversions$1[current]); +function parseStyle(style) { + STYLE_REGEX.lastIndex = 0; + const results = []; + let matches; - for (let len = adjacents.length, i = 0; i < len; i++) { - const adjacent = adjacents[i]; - const node = graph[adjacent]; + while ((matches = STYLE_REGEX.exec(style)) !== null) { + const name = matches[1]; - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } + if (matches[2]) { + const args = parseArguments(name, matches[2]); + results.push([name].concat(args)); + } else { + results.push([name]); } } - return graph; + return results; } -function link$1(from, to) { - return function (args) { - return to(from(args)); - }; -} +function buildStyle(chalk, styles) { + const enabled = {}; -function wrapConversion$1(toModel, graph) { - const path = [graph[toModel].parent, toModel]; - let fn = conversions$1[graph[toModel].parent][toModel]; - let cur = graph[toModel].parent; + for (const layer of styles) { + for (const style of layer.styles) { + enabled[style[0]] = layer.inverse ? null : style.slice(1); + } + } - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link$1(conversions$1[graph[cur].parent][cur], fn); - cur = graph[cur].parent; + let current = chalk; + + for (const styleName of Object.keys(enabled)) { + if (Array.isArray(enabled[styleName])) { + if (!(styleName in current)) { + throw new Error(`Unknown Chalk style: ${styleName}`); + } + + if (enabled[styleName].length > 0) { + current = current[styleName].apply(current, enabled[styleName]); + } else { + current = current[styleName]; + } + } } - fn.conversion = path; - return fn; + return current; } -var route$1 = function (fromModel) { - const graph = deriveBFS$1(fromModel); - const conversion = {}; - const models = Object.keys(graph); +var templates = (chalk, tmp) => { + const styles = []; + const chunks = []; + let chunk = []; // eslint-disable-next-line max-params - for (let len = models.length, i = 0; i < len; i++) { - const toModel = models[i]; - const node = graph[toModel]; + tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => { + if (escapeChar) { + chunk.push(unescape(escapeChar)); + } else if (style) { + const str = chunk.join(''); + chunk = []; + chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str)); + styles.push({ + inverse, + styles: parseStyle(style) + }); + } else if (close) { + if (styles.length === 0) { + throw new Error('Found extraneous } in Chalk template literal'); + } - if (node.parent === null) { - // No possible conversion, or this node is the source model. - continue; + chunks.push(buildStyle(chalk, styles)(chunk.join(''))); + chunk = []; + styles.pop(); + } else { + chunk.push(chr); } + }); + chunks.push(chunk.join('')); - conversion[toModel] = wrapConversion$1(toModel, graph); + if (styles.length > 0) { + const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; + throw new Error(errMsg); } - return conversion; + return chunks.join(''); }; -const convert$2 = {}; -const models$1 = Object.keys(conversions$1); - -function wrapRaw$1(fn) { - const wrappedFn = function (...args) { - const arg0 = args[0]; +var chalk = createCommonjsModule(function (module) { - if (arg0 === undefined || arg0 === null) { - return arg0; - } + const stdoutColor = supportsColor_1.stdout; + const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); // `supportsColor.level` → `ansiStyles.color[name]` mapping - if (arg0.length > 1) { - args = arg0; - } + const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; // `color-convert` models to exclude from the Chalk API due to conflicts and such - return fn(args); - }; // Preserve .conversion property if there is one + const skipModels = new Set(['gray']); + const styles = Object.create(null); + function applyOptions(obj, options) { + options = options || {}; // Detect level if not set manually - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; + const scLevel = stdoutColor ? stdoutColor.level : 0; + obj.level = options.level === undefined ? scLevel : options.level; + obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; } - return wrappedFn; -} - -function wrapRounded$1(fn) { - const wrappedFn = function (...args) { - const arg0 = args[0]; - - if (arg0 === undefined || arg0 === null) { - return arg0; - } - - if (arg0.length > 1) { - args = arg0; - } + function Chalk(options) { + // We check for this.template here since calling `chalk.constructor()` + // by itself will have a `this` of a previously constructed chalk object + if (!this || !(this instanceof Chalk) || this.template) { + const chalk = {}; + applyOptions(chalk, options); - const result = fn(args); // We're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. + chalk.template = function () { + const args = [].slice.call(arguments); + return chalkTag.apply(null, [chalk.template].concat(args)); + }; - if (typeof result === 'object') { - for (let len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } + Object.setPrototypeOf(chalk, Chalk.prototype); + Object.setPrototypeOf(chalk.template, chalk); + chalk.template.constructor = Chalk; + return chalk.template; } - return result; - }; // Preserve .conversion property if there is one + applyOptions(this, options); + } // Use bright blue on Windows as the normal blue color is illegible - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; + if (isSimpleWindowsTerm) { + ansiStyles.blue.open = '\u001B[94m'; } - return wrappedFn; -} + for (const key of Object.keys(ansiStyles)) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + styles[key] = { + get() { + const codes = ansiStyles[key]; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); + } -models$1.forEach(fromModel => { - convert$2[fromModel] = {}; - Object.defineProperty(convert$2[fromModel], 'channels', { - value: conversions$1[fromModel].channels - }); - Object.defineProperty(convert$2[fromModel], 'labels', { - value: conversions$1[fromModel].labels - }); - const routes = route$1(fromModel); - const routeModels = Object.keys(routes); - routeModels.forEach(toModel => { - const fn = routes[toModel]; - convert$2[fromModel][toModel] = wrapRounded$1(fn); - convert$2[fromModel][toModel].raw = wrapRaw$1(fn); - }); -}); -var colorConvert$1 = convert$2; + }; + } -var ansiStyles$1 = createCommonjsModule(function (module) { + styles.visible = { + get() { + return build.call(this, this._styles || [], true, 'visible'); + } - const wrapAnsi16 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${code + offset}m`; }; + ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g'); - const wrapAnsi256 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${38 + offset};5;${code}m`; - }; + for (const model of Object.keys(ansiStyles.color.ansi)) { + if (skipModels.has(model)) { + continue; + } - const wrapAnsi16m = (fn, offset) => (...args) => { - const rgb = fn(...args); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; - }; + styles[model] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.color.close, + closeRe: ansiStyles.color.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } - const ansi2ansi = n => n; + }; + } - const rgb2rgb = (r, g, b) => [r, g, b]; + ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g'); - const setLazyProperty = (object, property, get) => { - Object.defineProperty(object, property, { - get: () => { - const value = get(); - Object.defineProperty(object, property, { - value, - enumerable: true, - configurable: true - }); - return value; - }, - enumerable: true, - configurable: true - }); - }; - /** @type {typeof import('color-convert')} */ + for (const model of Object.keys(ansiStyles.bgColor.ansi)) { + if (skipModels.has(model)) { + continue; + } + + const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); + styles[bgModel] = { + get() { + const level = this.level; + return function () { + const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments); + const codes = { + open, + close: ansiStyles.bgColor.close, + closeRe: ansiStyles.bgColor.closeRe + }; + return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); + }; + } + }; + } - let colorConvert; + const proto = Object.defineProperties(() => {}, styles); - const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = colorConvert$1; - } + function build(_styles, _empty, key) { + const builder = function () { + return applyStyle.apply(builder, arguments); + }; - const offset = isBackground ? 10 : 0; - const styles = {}; + builder._styles = _styles; + builder._empty = _empty; + const self = this; + Object.defineProperty(builder, 'level', { + enumerable: true, - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { - const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + get() { + return self.level; + }, - if (sourceSpace === targetSpace) { - styles[name] = wrap(identity, offset); - } else if (typeof suite === 'object') { - styles[name] = wrap(suite[targetSpace], offset); + set(level) { + self.level = level; } - } - return styles; - }; + }); + Object.defineProperty(builder, 'enabled', { + enumerable: true, - function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - 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], - // Bright color - blackBright: [90, 39], - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] + get() { + return self.enabled; }, - 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], - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] + + set(enabled) { + self.enabled = enabled; } - }; // Alias bright black as gray (and grey) - styles.color.gray = styles.color.blackBright; - styles.bgColor.bgGray = styles.bgColor.bgBlackBright; - styles.color.grey = styles.color.blackBright; - styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + }); // See below for fix regarding invisible grey/dim combination on Windows - for (const [groupName, group] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group)) { - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - group[styleName] = styles[styleName]; - codes.set(style[0], style[1]); - } + builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; // `__proto__` is used because we must return a function, but there is + // no way to create a function with a different prototype - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); + builder.__proto__ = proto; // eslint-disable-line no-proto + + return builder; + } + + function applyStyle() { + // Support varags, but simply cast to string in case there's only one arg + const args = arguments; + const argsLen = args.length; + let str = String(arguments[0]); + + if (argsLen === 0) { + return ''; } - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); - setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); - return styles; - } // Make the export immutable + if (argsLen > 1) { + // Don't slice `arguments`, it prevents V8 optimizations + for (let a = 1; a < argsLen; a++) { + str += ' ' + args[a]; + } + } + if (!this.enabled || this.level <= 0 || !str) { + return this._empty ? '' : str; + } // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, + // see https://github.com/chalk/chalk/issues/58 + // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. - Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles - }); -}); -var hasFlag$1 = (flag, argv = process.argv) => { - const prefix = flag.startsWith('-') ? '' : flag.length === 1 ? '-' : '--'; - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf('--'); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -}; + const originalDim = ansiStyles.dim.open; -const { - env: env$1 -} = process; -let forceColor$1; + if (isSimpleWindowsTerm && this.hasGrey) { + ansiStyles.dim.open = ''; + } -if (hasFlag$1('no-color') || hasFlag$1('no-colors') || hasFlag$1('color=false') || hasFlag$1('color=never')) { - forceColor$1 = 0; -} else if (hasFlag$1('color') || hasFlag$1('colors') || hasFlag$1('color=true') || hasFlag$1('color=always')) { - forceColor$1 = 1; -} + for (const code of this._styles.slice().reverse()) { + // Replace any instances already present with a re-opening code + // otherwise only the part of the string until said closing code + // will be colored, and the rest will simply be 'plain'. + str = code.open + str.replace(code.closeRe, code.open) + code.close; // Close the styling before a linebreak and reopen + // after next line to fix a bleed issue on macOS + // https://github.com/chalk/chalk/pull/92 -if ('FORCE_COLOR' in env$1) { - if (env$1.FORCE_COLOR === 'true') { - forceColor$1 = 1; - } else if (env$1.FORCE_COLOR === 'false') { - forceColor$1 = 0; - } else { - forceColor$1 = env$1.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env$1.FORCE_COLOR, 10), 3); - } -} + str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); + } // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue -function translateLevel$1(level) { - if (level === 0) { - return false; + + ansiStyles.dim.open = originalDim; + return str; } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} + function chalkTag(chalk, strings) { + if (!Array.isArray(strings)) { + // If chalk() was called by itself or with a string, + // return the string itself as a string. + return [].slice.call(arguments, 1).join(' '); + } -function supportsColor$1(haveStream, streamIsTTY) { - if (forceColor$1 === 0) { - return 0; - } + const args = [].slice.call(arguments, 2); + const parts = [strings.raw[0]]; - if (hasFlag$1('color=16m') || hasFlag$1('color=full') || hasFlag$1('color=truecolor')) { - return 3; - } + for (let i = 1; i < strings.length; i++) { + parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); + parts.push(String(strings.raw[i])); + } - if (hasFlag$1('color=256')) { - return 2; + return templates(chalk, parts.join('')); } - if (haveStream && !streamIsTTY && forceColor$1 === undefined) { - return 0; - } + Object.defineProperties(Chalk.prototype, styles); + module.exports = Chalk(); // eslint-disable-line new-cap - const min = forceColor$1 || 0; + module.exports.supportsColor = stdoutColor; + module.exports.default = module.exports; // For TypeScript +}); - if (env$1.TERM === 'dumb') { - return min; - } +var shouldHighlight_1 = shouldHighlight; +var getChalk_1 = getChalk; +var _default$n = highlight; +const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); - if (process.platform === 'win32') { - // Windows 10 build 10586 is the first Windows release that supports 256 colors. - // Windows 10 build 14931 is the first release that supports 16m/TrueColor. - const osRelease = os__default['default'].release().split('.'); +function getDefs$1(chalk) { + return { + keyword: chalk.cyan, + capitalized: chalk.yellow, + jsxIdentifier: chalk.yellow, + punctuator: chalk.yellow, + number: chalk.magenta, + string: chalk.green, + regex: chalk.magenta, + comment: chalk.grey, + invalid: chalk.white.bgRed.bold + }; +} - if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; +const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; +const BRACKET = /^[()[\]{}]$/; +let tokenize; +{ + const JSX_TAG = /^[a-z][\w-]*$/i; + + const getTokenType = function (token, offset, text) { + if (token.type === "name") { + if ((0, lib$3.isKeyword)(token.value) || (0, lib$3.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { + return "keyword"; + } + + if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " sign in env$1) || env$1.CI_NAME === 'codeship') { - return 1; + if (token.type === "invalid" && (token.value === "@" || token.value === "#")) { + return "punctuator"; } - return min; - } + return token.type; + }; - if ('TEAMCITY_VERSION' in env$1) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$1.TEAMCITY_VERSION) ? 1 : 0; - } + tokenize = function* (text) { + let match; - if ('GITHUB_ACTIONS' in env$1) { - return 1; - } + while (match = jsTokens.default.exec(text)) { + const token = jsTokens.matchToToken(match); - if (env$1.COLORTERM === 'truecolor') { - return 3; - } + yield { + type: getTokenType(token, match.index, text), + value: token.value + }; + } + }; +} - if ('TERM_PROGRAM' in env$1) { - const version = parseInt((env$1.TERM_PROGRAM_VERSION || '').split('.')[0], 10); +function highlightTokens(defs, text) { + let highlighted = ""; - switch (env$1.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; + for (const { + type, + value + } of tokenize(text)) { + const colorize = defs[type]; - case 'Apple_Terminal': - return 2; - // No default + if (colorize) { + highlighted += value.split(NEWLINE$1).map(str => colorize(str)).join("\n"); + } else { + highlighted += value; } } - if (/-256(color)?$/i.test(env$1.TERM)) { - return 2; - } - - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$1.TERM)) { - return 1; - } + return highlighted; +} - if ('COLORTERM' in env$1) { - return 1; - } +function shouldHighlight(options) { + return !!chalk.supportsColor || options.forceColor; +} - return min; +function getChalk(options) { + return options.forceColor ? new chalk.constructor({ + enabled: true, + level: 1 + }) : chalk; } -function getSupportLevel$1(stream) { - const level = supportsColor$1(stream, stream && stream.isTTY); - return translateLevel$1(level); +function highlight(code, options = {}) { + if (shouldHighlight(options)) { + const chalk = getChalk(options); + const defs = getDefs$1(chalk); + return highlightTokens(defs, code); + } else { + return code; + } } -var supportsColor_1$1 = { - supportsColor: getSupportLevel$1, - stdout: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(1))), - stderr: translateLevel$1(supportsColor$1(true, tty__default['default'].isatty(2))) -}; +var lib$2 = /*#__PURE__*/Object.defineProperty({ + shouldHighlight: shouldHighlight_1, + getChalk: getChalk_1, + default: _default$n +}, '__esModule', { + value: true +}); -const stringReplaceAll = (string, substring, replacer) => { - let index = string.indexOf(substring); +var codeFrameColumns_1 = codeFrameColumns; +var default_1 = _default$m; +let deprecationWarningShown = false; - if (index === -1) { - return string; - } +function getDefs(chalk) { + return { + gutter: chalk.grey, + marker: chalk.red.bold, + message: chalk.red.bold + }; +} - const substringLength = substring.length; - let endIndex = 0; - let returnValue = ''; +const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - do { - returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; - endIndex = index + substringLength; - index = string.indexOf(substring, endIndex); - } while (index !== -1); +function getMarkerLines(loc, source, opts) { + const startLoc = Object.assign({ + column: 0, + line: -1 + }, loc.start); + const endLoc = Object.assign({}, startLoc, loc.end); + const { + linesAbove = 2, + linesBelow = 3 + } = opts || {}; + const startLine = startLoc.line; + const startColumn = startLoc.column; + const endLine = endLoc.line; + const endColumn = endLoc.column; + let start = Math.max(startLine - (linesAbove + 1), 0); + let end = Math.min(source.length, endLine + linesBelow); + + if (startLine === -1) { + start = 0; + } + + if (endLine === -1) { + end = source.length; + } + + const lineDiff = endLine - startLine; + const markerLines = {}; + + if (lineDiff) { + for (let i = 0; i <= lineDiff; i++) { + const lineNumber = i + startLine; + + if (!startColumn) { + markerLines[lineNumber] = true; + } else if (i === 0) { + const sourceLength = source[lineNumber - 1].length; + markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; + } else if (i === lineDiff) { + markerLines[lineNumber] = [0, endColumn]; + } else { + const sourceLength = source[lineNumber - i].length; + markerLines[lineNumber] = [0, sourceLength]; + } + } + } else { + if (startColumn === endColumn) { + if (startColumn) { + markerLines[startLine] = [startColumn, 0]; + } else { + markerLines[startLine] = true; + } + } else { + markerLines[startLine] = [startColumn, endColumn - startColumn]; + } + } - returnValue += string.substr(endIndex); - return returnValue; -}; + return { + start, + end, + markerLines + }; +} -const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { - let endIndex = 0; - let returnValue = ''; +function codeFrameColumns(rawLines, loc, opts = {}) { + const highlighted = (opts.highlightCode || opts.forceColor) && (0, lib$2.shouldHighlight)(opts); + const chalk = (0, lib$2.getChalk)(opts); + const defs = getDefs(chalk); - do { - const gotCR = string[index - 1] === '\r'; - returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; - endIndex = index + 1; - index = string.indexOf('\n', endIndex); - } while (index !== -1); + const maybeHighlight = (chalkFn, string) => { + return highlighted ? chalkFn(string) : string; + }; - returnValue += string.substr(endIndex); - return returnValue; -}; + const lines = rawLines.split(NEWLINE); + const { + start, + end, + markerLines + } = getMarkerLines(loc, lines, opts); + const hasColumns = loc.start && typeof loc.start.column === "number"; + const numberMaxWidth = String(end).length; + const highlightedLines = highlighted ? (0, lib$2.default)(rawLines, opts) : rawLines; + let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => { + const number = start + 1 + index; + const paddedNumber = ` ${number}`.slice(-numberMaxWidth); + const gutter = ` ${paddedNumber} |`; + const hasMarker = markerLines[number]; + const lastMarkerLine = !markerLines[number + 1]; -var util$1 = { - stringReplaceAll, - stringEncaseCRLFWithFirstIndex -}; + if (hasMarker) { + let markerLine = ""; -const TEMPLATE_REGEX$1 = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX$1 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX$1 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX$1 = /\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi; -const ESCAPES$1 = new Map([['n', '\n'], ['r', '\r'], ['t', '\t'], ['b', '\b'], ['f', '\f'], ['v', '\v'], ['0', '\0'], ['\\', '\\'], ['e', '\u001B'], ['a', '\u0007']]); + if (Array.isArray(hasMarker)) { + const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); + const numberOfMarkers = hasMarker[1] || 1; + markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); -function unescape$1(c) { - const u = c[0] === 'u'; - const bracket = c[1] === '{'; + if (lastMarkerLine && opts.message) { + markerLine += " " + maybeHighlight(defs.message, opts.message); + } + } - if (u && !bracket && c.length === 5 || c[0] === 'x' && c.length === 3) { - return String.fromCharCode(parseInt(c.slice(1), 16)); - } + return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); + } else { + return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; + } + }).join("\n"); - if (u && bracket) { - return String.fromCodePoint(parseInt(c.slice(2, -1), 16)); + if (opts.message && !hasColumns) { + frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; } - return ESCAPES$1.get(c) || c; + if (highlighted) { + return chalk.reset(frame); + } else { + return frame; + } } -function parseArguments$1(name, arguments_) { - const results = []; - const chunks = arguments_.trim().split(/\s*,\s*/g); - let matches; - - for (const chunk of chunks) { - const number = Number(chunk); +function _default$m(rawLines, lineNumber, colNumber, opts = {}) { + if (!deprecationWarningShown) { + deprecationWarningShown = true; + const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; - if (!Number.isNaN(number)) { - results.push(number); - } else if (matches = chunk.match(STRING_REGEX$1)) { - results.push(matches[2].replace(ESCAPE_REGEX$1, (m, escape, character) => escape ? unescape$1(escape) : character)); + if (process.emitWarning) { + process.emitWarning(message, "DeprecationWarning"); } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); + const deprecationError = new Error(message); + deprecationError.name = "DeprecationWarning"; + console.warn(new Error(message)); } } - return results; + colNumber = Math.max(colNumber, 0); + const location = { + start: { + column: colNumber, + line: lineNumber + } + }; + return codeFrameColumns(rawLines, location, opts); } -function parseStyle$1(style) { - STYLE_REGEX$1.lastIndex = 0; - const results = []; - let matches; +var lib$1 = /*#__PURE__*/Object.defineProperty({ + codeFrameColumns: codeFrameColumns_1, + default: default_1 +}, '__esModule', { + value: true +}); - while ((matches = STYLE_REGEX$1.exec(style)) !== null) { - const name = matches[1]; +const { + ConfigError +} = errors; +const { + locStart: locStart$p, + locEnd: locEnd$o +} = loc$6; // Use defineProperties()/getOwnPropertyDescriptor() to prevent +// triggering the parsers getters. - if (matches[2]) { - const args = parseArguments$1(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); +const ownNames = Object.getOwnPropertyNames; +const ownDescriptor = Object.getOwnPropertyDescriptor; + +function getParsers(options) { + const parsers = {}; + + for (const plugin of options.plugins) { + // TODO: test this with plugins + + /* istanbul ignore next */ + if (!plugin.parsers) { + continue; + } + + for (const name of ownNames(plugin.parsers)) { + Object.defineProperty(parsers, name, ownDescriptor(plugin.parsers, name)); } } - return results; + return parsers; } -function buildStyle$1(chalk, styles) { - const enabled = {}; +function resolveParser$1(opts, parsers = getParsers(opts)) { + if (typeof opts.parser === "function") { + // Custom parser API always works with JavaScript. + return { + parse: opts.parser, + astFormat: "estree", + locStart: locStart$p, + locEnd: locEnd$o + }; + } - for (const layer of styles) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); + if (typeof opts.parser === "string") { + if (Object.prototype.hasOwnProperty.call(parsers, opts.parser)) { + return parsers[opts.parser]; + } + + try { + return { + parse: require(path__default['default'].resolve(process.cwd(), opts.parser)), + astFormat: "estree", + locStart: locStart$p, + locEnd: locEnd$o + }; + } catch { + /* istanbul ignore next */ + throw new ConfigError(`Couldn't resolve parser "${opts.parser}"`); } } +} - let current = chalk; +function parse$a(text, opts) { + const parsers = getParsers(opts); // Create a new object {parserName: parseFn}. Uses defineProperty() to only call + // the parsers getters when actually calling the parser `parse` function. - for (const [styleName, styles] of Object.entries(enabled)) { - if (!Array.isArray(styles)) { - continue; - } + const parsersForCustomParserApi = Object.defineProperties({}, Object.fromEntries(Object.keys(parsers).map(parserName => [parserName, { + enumerable: true, - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); + get() { + return parsers[parserName].parse; } - current = styles.length > 0 ? current[styleName](...styles) : current[styleName]; - } - - return current; -} + }]))); + const parser = resolveParser$1(opts, parsers); -var templates$1 = (chalk, temporary) => { - const styles = []; - const chunks = []; - let chunk = []; // eslint-disable-next-line max-params + try { + if (parser.preprocess) { + text = parser.preprocess(text, opts); + } - temporary.replace(TEMPLATE_REGEX$1, (m, escapeCharacter, inverse, style, close, character) => { - if (escapeCharacter) { - chunk.push(unescape$1(escapeCharacter)); - } else if (style) { - const string = chunk.join(''); - chunk = []; - chunks.push(styles.length === 0 ? string : buildStyle$1(chalk, styles)(string)); - styles.push({ - inverse, - styles: parseStyle$1(style) - }); - } else if (close) { - if (styles.length === 0) { - throw new Error('Found extraneous } in Chalk template literal'); - } + return { + text, + ast: parser.parse(text, parsersForCustomParserApi, opts) + }; + } catch (error) { + const { + loc + } = error; - chunks.push(buildStyle$1(chalk, styles)(chunk.join(''))); - chunk = []; - styles.pop(); - } else { - chunk.push(character); + if (loc) { + const { + codeFrameColumns + } = lib$1; + error.codeFrame = codeFrameColumns(text, loc, { + highlightCode: true + }); + error.message += "\n" + error.codeFrame; + throw error; } - }); - chunks.push(chunk.join('')); + /* istanbul ignore next */ - if (styles.length > 0) { - const errMessage = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; - throw new Error(errMessage); + + throw error.stack; } +} - return chunks.join(''); +var parser$1 = { + parse: parse$a, + resolveParser: resolveParser$1 }; const { - stdout: stdoutColor, - stderr: stderrColor -} = supportsColor_1$1; + UndefinedParserError +} = errors; const { - stringReplaceAll: stringReplaceAll$1, - stringEncaseCRLFWithFirstIndex: stringEncaseCRLFWithFirstIndex$1 -} = util$1; + getSupportInfo: getSupportInfo$1 +} = support; const { - isArray -} = Array; // `supportsColor.level` → `ansiStyles.color[name]` mapping + resolveParser +} = parser$1; +const hiddenDefaults = { + astFormat: "estree", + printer: {}, + originalText: undefined, + locStart: null, + locEnd: null +}; // Copy options and fill in default values. -const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; -const styles = Object.create(null); +function normalize$1(options, opts = {}) { + const rawOptions = Object.assign({}, options); + const supportOptions = getSupportInfo$1({ + plugins: options.plugins, + showUnreleased: true, + showDeprecated: true + }).options; + const defaults = Object.assign(Object.assign({}, hiddenDefaults), Object.fromEntries(supportOptions.filter(optionInfo => optionInfo.default !== undefined).map(option => [option.name, option.default]))); -const applyOptions = (object, options = {}) => { - if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { - throw new Error('The `level` option should be an integer from 0 to 3'); - } // Detect level if not set manually + if (!rawOptions.parser) { + if (!rawOptions.filepath) { + const logger = opts.logger || console; + logger.warn("No parser and no filepath given, using 'babel' the parser now " + "but this will throw an error in the future. " + "Please specify a parser or a filepath so one can be inferred."); + rawOptions.parser = "babel"; + } else { + rawOptions.parser = inferParser(rawOptions.filepath, rawOptions.plugins); + + if (!rawOptions.parser) { + throw new UndefinedParserError(`No parser could be inferred for file: ${rawOptions.filepath}`); + } + } + } + const parser = resolveParser(optionsNormalizer.normalizeApiOptions(rawOptions, [supportOptions.find(x => x.name === "parser")], { + passThrough: true, + logger: false + })); + rawOptions.astFormat = parser.astFormat; + rawOptions.locEnd = parser.locEnd; + rawOptions.locStart = parser.locStart; + const plugin = getPlugin(rawOptions); + rawOptions.printer = plugin.printers[rawOptions.astFormat]; + const pluginDefaults = Object.fromEntries(supportOptions.filter(optionInfo => optionInfo.pluginDefaults && optionInfo.pluginDefaults[plugin.name] !== undefined).map(optionInfo => [optionInfo.name, optionInfo.pluginDefaults[plugin.name]])); + const mixedDefaults = Object.assign(Object.assign({}, defaults), pluginDefaults); - const colorLevel = stdoutColor ? stdoutColor.level : 0; - object.level = options.level === undefined ? colorLevel : options.level; -}; + for (const [k, value] of Object.entries(mixedDefaults)) { + if (rawOptions[k] === null || rawOptions[k] === undefined) { + rawOptions[k] = value; + } + } -class ChalkClass { - constructor(options) { - // eslint-disable-next-line no-constructor-return - return chalkFactory(options); + if (rawOptions.parser === "json") { + rawOptions.trailingComma = "none"; } + return optionsNormalizer.normalizeApiOptions(rawOptions, supportOptions, Object.assign({ + passThrough: Object.keys(hiddenDefaults) + }, opts)); } -const chalkFactory = options => { - const chalk = {}; - applyOptions(chalk, options); - - chalk.template = (...arguments_) => chalkTag(chalk.template, ...arguments_); +function getPlugin(options) { + const { + astFormat + } = options; // TODO: test this with plugins - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); + /* istanbul ignore next */ - chalk.template.constructor = () => { - throw new Error('`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.'); - }; + if (!astFormat) { + throw new Error("getPlugin() requires astFormat to be set"); + } - chalk.template.Instance = ChalkClass; - return chalk.template; -}; + const printerPlugin = options.plugins.find(plugin => plugin.printers && plugin.printers[astFormat]); // TODO: test this with plugins -function Chalk(options) { - return chalkFactory(options); -} + /* istanbul ignore next */ -for (const [styleName, style] of Object.entries(ansiStyles$1)) { - styles[styleName] = { - get() { - const builder = createBuilder(this, createStyler(style.open, style.close, this._styler), this._isEmpty); - Object.defineProperty(this, styleName, { - value: builder - }); - return builder; - } + if (!printerPlugin) { + throw new Error(`Couldn't find plugin for AST format "${astFormat}"`); + } - }; + return printerPlugin; } -styles.visible = { - get() { - const builder = createBuilder(this, this._styler, true); - Object.defineProperty(this, 'visible', { - value: builder - }); - return builder; +function getInterpreter(filepath) { + /* istanbul ignore next */ + if (typeof filepath !== "string") { + return ""; } -}; -const usedModels = ['rgb', 'hex', 'keyword', 'hsl', 'hsv', 'hwb', 'ansi', 'ansi256']; + let fd; -for (const model of usedModels) { - styles[model] = { - get() { - const { - level - } = this; - return function (...arguments_) { - const styler = createStyler(ansiStyles$1.color[levelMapping[level]][model](...arguments_), ansiStyles$1.color.close, this._styler); - return createBuilder(this, styler, this._isEmpty); - }; - } + try { + fd = fs__default['default'].openSync(filepath, "r"); + } catch { + // istanbul ignore next + return ""; + } - }; -} + try { + const liner = new readlines(fd); + const firstLine = liner.next().toString("utf8"); // #!/bin/env node, #!/usr/bin/env node -for (const model of usedModels) { - const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); - styles[bgModel] = { - get() { - const { - level - } = this; - return function (...arguments_) { - const styler = createStyler(ansiStyles$1.bgColor[levelMapping[level]][model](...arguments_), ansiStyles$1.bgColor.close, this._styler); - return createBuilder(this, styler, this._isEmpty); - }; - } + const m1 = firstLine.match(/^#!\/(?:usr\/)?bin\/env\s+(\S+)/); - }; -} + if (m1) { + return m1[1]; + } // #!/bin/node, #!/usr/bin/node, #!/usr/local/bin/node -const proto = Object.defineProperties(() => {}, Object.assign({}, styles, { - level: { - enumerable: true, - get() { - return this._generator.level; - }, + const m2 = firstLine.match(/^#!\/(?:usr\/(?:local\/)?)?bin\/(\S+)/); - set(level) { - this._generator.level = level; + if (m2) { + return m2[1]; } - } -})); - -const createStyler = (open, close, parent) => { - let openAll; - let closeAll; + return ""; + } catch { + // There are some weird cases where paths are missing, causing Jest + // failures. It's unclear what these correspond to in the real world. - if (parent === undefined) { - openAll = open; - closeAll = close; - } else { - openAll = parent.openAll + open; - closeAll = close + parent.closeAll; + /* istanbul ignore next */ + return ""; + } finally { + try { + // There are some weird cases where paths are missing, causing Jest + // failures. It's unclear what these correspond to in the real world. + fs__default['default'].closeSync(fd); + } catch {// nop + } } +} - return { - open, - close, - openAll, - closeAll, - parent - }; -}; - -const createBuilder = (self, _styler, _isEmpty) => { - const builder = (...arguments_) => { - if (isArray(arguments_[0]) && isArray(arguments_[0].raw)) { - // Called as a template literal, for example: chalk.red`2 + 3 = {bold ${2+3}}` - return applyStyle(builder, chalkTag(builder, ...arguments_)); - } // Single argument is hot path, implicit coercion is faster than anything - // eslint-disable-next-line no-implicit-coercion +function inferParser(filepath, plugins) { + const filename = path__default['default'].basename(filepath).toLowerCase(); + const languages = getSupportInfo$1({ + plugins + }).languages.filter(language => language.since !== null); // If the file has no extension, we can try to infer the language from the + // interpreter in the shebang line, if any; but since this requires FS access, + // do it last. + let language = languages.find(language => language.extensions && language.extensions.some(extension => filename.endsWith(extension)) || language.filenames && language.filenames.some(name => name.toLowerCase() === filename)); - return applyStyle(builder, arguments_.length === 1 ? '' + arguments_[0] : arguments_.join(' ')); - }; // We alter the prototype because we must return a function, but there is - // no way to create a function with a different prototype + if (!language && !filename.includes(".")) { + const interpreter = getInterpreter(filepath); + language = languages.find(language => language.interpreters && language.interpreters.includes(interpreter)); + } + return language && language.parsers[0]; +} - Object.setPrototypeOf(builder, proto); - builder._generator = self; - builder._styler = _styler; - builder._isEmpty = _isEmpty; - return builder; +var options$6 = { + normalize: normalize$1, + hiddenDefaults, + inferParser }; -const applyStyle = (self, string) => { - if (self.level <= 0 || !string) { - return self._isEmpty ? '' : string; +function massageAST(ast, options, parent) { + if (Array.isArray(ast)) { + return ast.map(e => massageAST(e, options, parent)).filter(Boolean); } - let styler = self._styler; - - if (styler === undefined) { - return string; + if (!ast || typeof ast !== "object") { + return ast; } - const { - openAll, - closeAll - } = styler; - - if (string.indexOf('\u001B') !== -1) { - while (styler !== undefined) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - string = stringReplaceAll$1(string, styler.close, styler.open); - styler = styler.parent; - } - } // We can move both next actions out of loop, because remaining actions in loop won't have - // any/visible effect on parts we add here. Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92 + const cleanFunction = options.printer.massageAstNode; + let ignoredProperties; + if (cleanFunction && cleanFunction.ignoredProperties) { + ignoredProperties = cleanFunction.ignoredProperties; + } else { + ignoredProperties = new Set(); + } - const lfIndex = string.indexOf('\n'); + const newObj = {}; - if (lfIndex !== -1) { - string = stringEncaseCRLFWithFirstIndex$1(string, closeAll, openAll, lfIndex); + for (const [key, value] of Object.entries(ast)) { + if (!ignoredProperties.has(key) && typeof value !== "function") { + newObj[key] = massageAST(value, options, ast); + } } - return openAll + string + closeAll; -}; - -let template; + if (cleanFunction) { + const result = cleanFunction(ast, newObj, parent); -const chalkTag = (chalk, ...strings) => { - const [firstString] = strings; + if (result === null) { + return; + } - if (!isArray(firstString) || !isArray(firstString.raw)) { - // If chalk() was called by itself or with a string, - // return the string itself as a string. - return strings.join(' '); + if (result) { + return result; + } } - const arguments_ = strings.slice(1); - const parts = [firstString.raw[0]]; + return newObj; +} - for (let i = 1; i < firstString.length; i++) { - parts.push(String(arguments_[i - 1]).replace(/[{}\\]/g, '\\$&'), String(firstString.raw[i])); - } +var massageAst = massageAST; - if (template === undefined) { - template = templates$1; +const { + builders: { + line: line$w, + hardline: hardline$z, + breakParent: breakParent$8, + indent: indent$y, + lineSuffix: lineSuffix$1, + join: join$u, + cursor + } +} = doc; +const { + hasNewline: hasNewline$9, + skipNewline: skipNewline$1, + skipSpaces: skipSpaces$1, + isPreviousLineEmpty: isPreviousLineEmpty$2, + addLeadingComment: addLeadingComment$2, + addDanglingComment: addDanglingComment$2, + addTrailingComment: addTrailingComment$2 +} = util$5; +const childNodesCache = new WeakMap(); + +function getSortedChildNodes(node, options, resultArray) { + if (!node) { + return; } - return template(chalk, parts.join('')); -}; + const { + printer, + locStart, + locEnd + } = options; -Object.defineProperties(Chalk.prototype, styles); -const chalk$1 = Chalk(); // eslint-disable-line new-cap + if (resultArray) { + if (printer.canAttachComment && printer.canAttachComment(node)) { + // This reverse insertion sort almost always takes constant + // time because we almost always (maybe always?) append the + // nodes in order anyway. + let i; -chalk$1.supportsColor = stdoutColor; -chalk$1.stderr = Chalk({ - level: stderrColor ? stderrColor.level : 0 -}); // eslint-disable-line new-cap + for (i = resultArray.length - 1; i >= 0; --i) { + if (locStart(resultArray[i]) <= locStart(node) && locEnd(resultArray[i]) <= locEnd(node)) { + break; + } + } -chalk$1.stderr.supportsColor = stderrColor; -var source = chalk$1; + resultArray.splice(i + 1, 0, node); + return; + } + } else if (childNodesCache.has(node)) { + return childNodesCache.get(node); + } -/** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ -function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; + const childNodes = printer.getCommentChildNodes && printer.getCommentChildNodes(node, options) || typeof node === "object" && Object.entries(node).filter(([key]) => key !== "enclosingNode" && key !== "precedingNode" && key !== "followingNode" && key !== "tokens" && key !== "comments").map(([, value]) => value); - while (++index < length) { - array[offset + index] = values[index]; + if (!childNodes) { + return; } - return array; -} - -var _arrayPush = arrayPush; + if (!resultArray) { + resultArray = []; + childNodesCache.set(node, resultArray); + } -/** Detect free variable `global` from Node.js. */ -var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; -var _freeGlobal = freeGlobal; + for (const childNode of childNodes) { + getSortedChildNodes(childNode, options, resultArray); + } -/** Detect free variable `self`. */ + return resultArray; +} // As efficiently as possible, decorate the comment object with +// .precedingNode, .enclosingNode, and/or .followingNode properties, at +// least one of which is guaranteed to be defined. -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')(); -var _root = root; +function decorateComment(node, comment, options, enclosingNode) { + const { + locStart, + locEnd + } = options; + const commentStart = locStart(comment); + const commentEnd = locEnd(comment); + const childNodes = getSortedChildNodes(node, options); + let precedingNode; + let followingNode; // Time to dust off the old binary search robes and wizard hat. -/** Built-in value references. */ + let left = 0; + let right = childNodes.length; -var Symbol$1 = _root.Symbol; -var _Symbol = Symbol$1; + while (left < right) { + const middle = left + right >> 1; + const child = childNodes[middle]; + const start = locStart(child); + const end = locEnd(child); // The comment is completely contained by this child node. -/** Used for built-in method references. */ + if (start <= commentStart && commentEnd <= end) { + // Abandon the binary search at this level. + return decorateComment(child, comment, options, child); + } -var objectProto = Object.prototype; -/** Used to check objects for own properties. */ + if (end <= commentStart) { + // This child node falls completely before the comment. + // Because we will never consider this node or any nodes + // before it again, this node must be the closest preceding + // node we have encountered so far. + precedingNode = child; + left = middle + 1; + continue; + } -var hasOwnProperty = objectProto.hasOwnProperty; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ + if (commentEnd <= start) { + // This child node falls completely after the comment. + // Because we will never consider this node or any nodes after + // it again, this node must be the closest following node we + // have encountered so far. + followingNode = child; + right = middle; + continue; + } + /* istanbul ignore next */ -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`. - */ + throw new Error("Comment location overlaps with node location"); + } // We don't want comments inside of different expressions inside of the same + // template literal to move to another expression. -function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} + if (enclosingNode && enclosingNode.type === "TemplateLiteral") { + const { + quasis + } = enclosingNode; + const commentIndex = findExpressionIndexForComment(quasis, comment, options); - var result = nativeObjectToString.call(value); + if (precedingNode && findExpressionIndexForComment(quasis, precedingNode, options) !== commentIndex) { + precedingNode = null; + } - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; + if (followingNode && findExpressionIndexForComment(quasis, followingNode, options) !== commentIndex) { + followingNode = null; } } - return result; -} - -var _getRawTag = getRawTag; - -/** Used for built-in method references. */ -var objectProto$1 = Object.prototype; -/** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - -var nativeObjectToString$1 = objectProto$1.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$1.call(value); + return { + enclosingNode, + precedingNode, + followingNode + }; } -var _objectToString = objectToString; - -/** `Object#toString` result references. */ - -var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; -/** Built-in value references. */ - -var symToStringTag$1 = _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`. - */ +const returnFalse$1 = () => false; -function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; +function attach(comments, ast, text, options) { + if (!Array.isArray(comments)) { + return; } - return symToStringTag$1 && symToStringTag$1 in Object(value) ? _getRawTag(value) : _objectToString(value); -} + const tiesToBreak = []; + const { + locStart, + locEnd, + printer: { + handleComments = {} + } + } = options; // TODO: Make this as default behavior -var _baseGetTag = baseGetTag; + const { + avoidAstMutation, + ownLine: handleOwnLineComment = returnFalse$1, + endOfLine: handleEndOfLineComment = returnFalse$1, + remaining: handleRemainingComment = returnFalse$1 + } = handleComments; + const decoratedComments = comments.map((comment, index) => Object.assign(Object.assign({}, decorateComment(ast, comment, options)), {}, { + comment, + text, + options, + ast, + isLastComment: comments.length - 1 === index + })); -/** - * 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'; -} + for (const [index, context] of decoratedComments.entries()) { + const { + comment, + precedingNode, + enclosingNode, + followingNode, + text, + options, + ast, + isLastComment + } = context; -var isObjectLike_1 = isObjectLike; + if (options.parser === "json" || options.parser === "json5" || options.parser === "__js_expression" || options.parser === "__vue_expression") { + if (locStart(comment) - locStart(ast) <= 0) { + addLeadingComment$2(ast, comment); + continue; + } -/** `Object#toString` result references. */ + if (locEnd(comment) - locEnd(ast) >= 0) { + addTrailingComment$2(ast, comment); + continue; + } + } -var argsTag = '[object Arguments]'; -/** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ + let args; -function baseIsArguments(value) { - return isObjectLike_1(value) && _baseGetTag(value) == argsTag; -} + if (avoidAstMutation) { + args = [context]; + } else { + comment.enclosingNode = enclosingNode; + comment.precedingNode = precedingNode; + comment.followingNode = followingNode; + args = [comment, text, options, ast, isLastComment]; + } -var _baseIsArguments = baseIsArguments; + if (isOwnLineComment(text, options, decoratedComments, index)) { + comment.placement = "ownLine"; // If a comment exists on its own line, prefer a leading comment. + // We also need to check if it's the first line of the file. -/** Used for built-in method references. */ + if (handleOwnLineComment(...args)) ; else if (followingNode) { + // Always a leading comment. + addLeadingComment$2(followingNode, comment); + } else if (precedingNode) { + addTrailingComment$2(precedingNode, comment); + } else if (enclosingNode) { + addDanglingComment$2(enclosingNode, comment); + } else { + // There are no nodes, let's attach it to the root of the ast -var objectProto$2 = Object.prototype; -/** Used to check objects for own properties. */ + /* istanbul ignore next */ + addDanglingComment$2(ast, comment); + } + } else if (isEndOfLineComment(text, options, decoratedComments, index)) { + comment.placement = "endOfLine"; -var hasOwnProperty$1 = objectProto$2.hasOwnProperty; -/** Built-in value references. */ + if (handleEndOfLineComment(...args)) ; else if (precedingNode) { + // There is content before this comment on the same line, but + // none after it, so prefer a trailing comment of the previous node. + addTrailingComment$2(precedingNode, comment); + } else if (followingNode) { + addLeadingComment$2(followingNode, comment); + } else if (enclosingNode) { + addDanglingComment$2(enclosingNode, comment); + } else { + // There are no nodes, let's attach it to the root of the ast -var propertyIsEnumerable = objectProto$2.propertyIsEnumerable; -/** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ + /* istanbul ignore next */ + addDanglingComment$2(ast, comment); + } + } else { + comment.placement = "remaining"; -var isArguments = _baseIsArguments(function () { - return arguments; -}()) ? _baseIsArguments : function (value) { - return isObjectLike_1(value) && hasOwnProperty$1.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); -}; -var isArguments_1 = isArguments; + if (handleRemainingComment(...args)) ; else if (precedingNode && followingNode) { + // Otherwise, text exists both before and after the comment on + // the same line. If there is both a preceding and following + // node, use a tie-breaking algorithm to determine if it should + // be attached to the next or previous node. In the last case, + // simply attach the right node; + const tieCount = tiesToBreak.length; -/** - * 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$1 = Array.isArray; -var isArray_1 = isArray$1; + if (tieCount > 0) { + const lastTie = tiesToBreak[tieCount - 1]; -/** Built-in value references. */ + if (lastTie.followingNode !== followingNode) { + breakTies(tiesToBreak, text, options); + } + } -var spreadableSymbol = _Symbol ? _Symbol.isConcatSpreadable : undefined; -/** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ + tiesToBreak.push(context); + } else if (precedingNode) { + addTrailingComment$2(precedingNode, comment); + } else if (followingNode) { + addLeadingComment$2(followingNode, comment); + } else if (enclosingNode) { + addDanglingComment$2(enclosingNode, comment); + } else { + // There are no nodes, let's attach it to the root of the ast -function isFlattenable(value) { - return isArray_1(value) || isArguments_1(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); -} + /* istanbul ignore next */ + addDanglingComment$2(ast, comment); + } + } + } -var _isFlattenable = isFlattenable; + breakTies(tiesToBreak, text, options); -/** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ + if (!avoidAstMutation) { + for (const comment of comments) { + // These node references were useful for breaking ties, but we + // don't need them anymore, and they create cycles in the AST that + // may lead to infinite recursion if we don't delete them here. + delete comment.precedingNode; + delete comment.enclosingNode; + delete comment.followingNode; + } + } +} -function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - predicate || (predicate = _isFlattenable); - result || (result = []); +const isAllEmptyAndNoLineBreak = text => !/[\S\n\u2028\u2029]/.test(text); - while (++index < length) { - var value = array[index]; +function isOwnLineComment(text, options, decoratedComments, commentIndex) { + const { + comment, + precedingNode + } = decoratedComments[commentIndex]; + const { + locStart, + locEnd + } = options; + let start = locStart(comment); - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - _arrayPush(result, value); + if (precedingNode) { + // Find first comment on the same line + for (let index = commentIndex - 1; index >= 0; index--) { + const { + comment, + precedingNode: currentCommentPrecedingNode + } = decoratedComments[index]; + + if (currentCommentPrecedingNode !== precedingNode || !isAllEmptyAndNoLineBreak(text.slice(locEnd(comment), start))) { + break; } - } else if (!isStrict) { - result[result.length] = value; + + start = locStart(comment); } } - return result; + return hasNewline$9(text, start, { + backwards: true + }); } -var _baseFlatten = baseFlatten; +function isEndOfLineComment(text, options, decoratedComments, commentIndex) { + const { + comment, + followingNode + } = decoratedComments[commentIndex]; + const { + locStart, + locEnd + } = options; + let end = locEnd(comment); -/** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ + if (followingNode) { + // Find last comment on the same line + for (let index = commentIndex + 1; index < decoratedComments.length; index++) { + const { + comment, + followingNode: currentCommentFollowingNode + } = decoratedComments[index]; -function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? _baseFlatten(array, 1) : []; -} + if (currentCommentFollowingNode !== followingNode || !isAllEmptyAndNoLineBreak(text.slice(end, locStart(comment)))) { + break; + } -var flatten_1 = flatten; + end = locEnd(comment); + } + } -const cliDescriptor = { - key: key => key.length === 1 ? `-${key}` : `--${key}`, - value: value => lib$1.apiDescriptor.value(value), - pair: ({ - key, - value - }) => value === false ? `--no-${key}` : value === true ? cliDescriptor.key(key) : value === "" ? `${cliDescriptor.key(key)} without an argument` : `${cliDescriptor.key(key)}=${value}` -}; + return hasNewline$9(text, end); +} -class FlagSchema extends lib$1.ChoiceSchema { - constructor({ - name, - flags - }) { - super({ - name, - choices: flags - }); - this._flags = flags.slice().sort(); +function breakTies(tiesToBreak, text, options) { + const tieCount = tiesToBreak.length; + + if (tieCount === 0) { + return; } - preprocess(value, utils) { - if (typeof value === "string" && value.length !== 0 && !this._flags.includes(value)) { - const suggestion = this._flags.find(flag => leven_1$1(flag, value) < 3); + const { + precedingNode, + followingNode, + enclosingNode + } = tiesToBreak[0]; + const gapRegExp = options.printer.getGapRegex && options.printer.getGapRegex(enclosingNode) || /^[\s(]*$/; + let gapEndPos = options.locStart(followingNode); // Iterate backwards through tiesToBreak, examining the gaps + // between the tied comments. In order to qualify as leading, a + // comment must be separated from followingNode by an unbroken series of + // gaps (or other comments). Gaps should only contain whitespace or open + // parentheses. - if (suggestion) { - utils.logger.warn([`Unknown flag ${source.yellow(utils.descriptor.value(value))},`, `did you mean ${source.blue(utils.descriptor.value(suggestion))}?`].join(" ")); - return suggestion; - } + let indexOfFirstLeadingComment; + + for (indexOfFirstLeadingComment = tieCount; indexOfFirstLeadingComment > 0; --indexOfFirstLeadingComment) { + const { + comment, + precedingNode: currentCommentPrecedingNode, + followingNode: currentCommentFollowingNode + } = tiesToBreak[indexOfFirstLeadingComment - 1]; + assert__default['default'].strictEqual(currentCommentPrecedingNode, precedingNode); + assert__default['default'].strictEqual(currentCommentFollowingNode, followingNode); + const gap = text.slice(options.locEnd(comment), gapEndPos); + + if (gapRegExp.test(gap)) { + gapEndPos = options.locStart(comment); + } else { + // The gap string contained something other than whitespace or open + // parentheses. + break; } + } - return value; + for (const [i, { + comment + }] of tiesToBreak.entries()) { + if (i < indexOfFirstLeadingComment) { + addTrailingComment$2(precedingNode, comment); + } else { + addLeadingComment$2(followingNode, comment); + } } - expected() { - return "a flag"; + for (const node of [precedingNode, followingNode]) { + if (node.comments && node.comments.length > 1) { + node.comments.sort((a, b) => options.locStart(a) - options.locStart(b)); + } } + tiesToBreak.length = 0; } -let hasDeprecationWarned; +function printComment$3(path, options) { + const comment = path.getValue(); + comment.printed = true; + return options.printer.printComment(path, options); +} -function normalizeOptions(options, optionInfos, { - logger, - isCLI = false, - passThrough = false -} = {}) { - const unknown = !passThrough ? (key, value, options) => { - // Don't suggest `_` for unknown flags - const _options$schemas = options.schemas, - schemas = _objectWithoutPropertiesLoose(_options$schemas, ["_"]); +function findExpressionIndexForComment(quasis, comment, options) { + const startPos = options.locStart(comment) - 1; - return lib$1.levenUnknownHandler(key, value, Object.assign({}, options, { - schemas - })); - } : Array.isArray(passThrough) ? (key, value) => !passThrough.includes(key) ? undefined : { - [key]: value - } : (key, value) => ({ - [key]: value - }); - const descriptor = isCLI ? cliDescriptor : lib$1.apiDescriptor; - const schemas = optionInfosToSchemas(optionInfos, { - isCLI - }); - const normalizer = new lib$1.Normalizer(schemas, { - logger, - unknown, - descriptor - }); - const shouldSuppressDuplicateDeprecationWarnings = logger !== false; + for (let i = 1; i < quasis.length; ++i) { + if (startPos < options.locStart(quasis[i])) { + return i - 1; + } + } // We haven't found it, it probably means that some of the locations are off. + // Let's just return the first one. - if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) { - normalizer._hasDeprecationWarned = hasDeprecationWarned; + /* istanbul ignore next */ + + + return 0; +} + +function printLeadingComment(path, options) { + const comment = path.getValue(); + const parts = [printComment$3(path, options)]; + const { + printer, + originalText, + locStart, + locEnd + } = options; + const isBlock = printer.isBlockComment && printer.isBlockComment(comment); // Leading block comments should see if they need to stay on the + // same line or not. + + if (isBlock) { + const lineBreak = hasNewline$9(originalText, locEnd(comment)) ? hasNewline$9(originalText, locStart(comment), { + backwards: true + }) ? hardline$z : line$w : " "; + parts.push(lineBreak); + } else { + parts.push(hardline$z); } - const normalized = normalizer.normalize(options); + const index = skipNewline$1(originalText, skipSpaces$1(originalText, locEnd(comment))); - if (shouldSuppressDuplicateDeprecationWarnings) { - hasDeprecationWarned = normalizer._hasDeprecationWarned; + if (index !== false && hasNewline$9(originalText, index)) { + parts.push(hardline$z); } - return normalized; + return parts; } -function optionInfosToSchemas(optionInfos, { - isCLI -}) { - const schemas = []; +function printTrailingComment(path, options) { + const comment = path.getValue(); + const printed = printComment$3(path, options); + const { + printer, + originalText, + locStart + } = options; + const isBlock = printer.isBlockComment && printer.isBlockComment(comment); - if (isCLI) { - schemas.push(lib$1.AnySchema.create({ - name: "_" - })); + if (hasNewline$9(originalText, locStart(comment), { + backwards: true + })) { + // This allows comments at the end of nested structures: + // { + // x: 1, + // y: 2 + // // A comment + // } + // Those kinds of comments are almost always leading comments, but + // here it doesn't go "outside" the block and turns it into a + // trailing comment for `2`. We can simulate the above by checking + // if this a comment on its own line; normal trailing comments are + // always at the end of another expression. + const isLineBeforeEmpty = isPreviousLineEmpty$2(originalText, comment, locStart); + return lineSuffix$1([hardline$z, isLineBeforeEmpty ? hardline$z : "", printed]); } - for (const optionInfo of optionInfos) { - schemas.push(optionInfoToSchema(optionInfo, { - isCLI, - optionInfos - })); + let parts = [" ", printed]; // Trailing block comments never need a newline - if (optionInfo.alias && isCLI) { - schemas.push(lib$1.AliasSchema.create({ - name: optionInfo.alias, - sourceName: optionInfo.name - })); - } + if (!isBlock) { + parts = [lineSuffix$1(parts), breakParent$8]; } - return schemas; + return parts; } -function optionInfoToSchema(optionInfo, { - isCLI, - optionInfos -}) { - let SchemaConstructor; - const parameters = { - name: optionInfo.name - }; - const handlers = {}; - - switch (optionInfo.type) { - case "int": - SchemaConstructor = lib$1.IntegerSchema; +function printDanglingComments$e(path, options, sameIndent, filter) { + const parts = []; + const node = path.getValue(); - if (isCLI) { - parameters.preprocess = value => Number(value); - } + if (!node || !node.comments) { + return ""; + } - break; + path.each(() => { + const comment = path.getValue(); - case "string": - SchemaConstructor = lib$1.StringSchema; - break; + if (!comment.leading && !comment.trailing && (!filter || filter(comment))) { + parts.push(printComment$3(path, options)); + } + }, "comments"); - case "choice": - SchemaConstructor = lib$1.ChoiceSchema; - parameters.choices = optionInfo.choices.map(choiceInfo => typeof choiceInfo === "object" && choiceInfo.redirect ? Object.assign({}, choiceInfo, { - redirect: { - to: { - key: optionInfo.name, - value: choiceInfo.redirect - } - } - }) : choiceInfo); - break; + if (parts.length === 0) { + return ""; + } - case "boolean": - SchemaConstructor = lib$1.BooleanSchema; - break; + if (sameIndent) { + return join$u(hardline$z, parts); + } - case "flag": - SchemaConstructor = FlagSchema; - parameters.flags = flatten_1(optionInfos.map(optionInfo => [optionInfo.alias, optionInfo.description && optionInfo.name, optionInfo.oppositeDescription && `no-${optionInfo.name}`].filter(Boolean))); - break; + return indent$y([hardline$z, join$u(hardline$z, parts)]); +} - case "path": - SchemaConstructor = lib$1.StringSchema; - break; +function printCommentsSeparately$1(path, options, ignored) { + const value = path.getValue(); - default: - /* istanbul ignore next */ - throw new Error(`Unexpected type ${optionInfo.type}`); + if (!value) { + return {}; } - if (optionInfo.exception) { - parameters.validate = (value, schema, utils) => { - return optionInfo.exception(value) || schema.validate(value, utils); - }; - } else { - parameters.validate = (value, schema, utils) => { - return value === undefined || schema.validate(value, utils); - }; + let comments = value.comments || []; + + if (ignored) { + comments = comments.filter(comment => !ignored.has(comment)); } - /* istanbul ignore next */ + const isCursorNode = value === options.cursorNode; - if (optionInfo.redirect) { - handlers.redirect = value => !value ? undefined : { - to: { - key: optionInfo.redirect.option, - value: optionInfo.redirect.value - } + if (comments.length === 0) { + const maybeCursor = isCursorNode ? cursor : ""; + return { + leading: maybeCursor, + trailing: maybeCursor }; } - /* istanbul ignore next */ + const leadingParts = []; + const trailingParts = []; + path.each(() => { + const comment = path.getValue(); - if (optionInfo.deprecated) { - handlers.deprecated = true; - } // allow CLI overriding, e.g., prettier package.json --tab-width 1 --tab-width 2 + if (ignored && ignored.has(comment)) { + return; + } + const { + leading, + trailing + } = comment; - if (isCLI && !optionInfo.array) { - const originalPreprocess = parameters.preprocess || (x => x); + if (leading) { + leadingParts.push(printLeadingComment(path, options)); + } else if (trailing) { + trailingParts.push(printTrailingComment(path, options)); + } + }, "comments"); - parameters.preprocess = (value, schema, utils) => schema.preprocess(originalPreprocess(Array.isArray(value) ? value[value.length - 1] : value), utils); + if (isCursorNode) { + leadingParts.unshift(cursor); + trailingParts.push(cursor); } - return optionInfo.array ? lib$1.ArraySchema.create(Object.assign({}, isCLI ? { - preprocess: v => [].concat(v) - } : {}, handlers, { - valueSchema: SchemaConstructor.create(parameters) - })) : SchemaConstructor.create(Object.assign({}, parameters, handlers)); + return { + leading: leadingParts, + trailing: trailingParts + }; } -function normalizeApiOptions(options, optionInfos, opts) { - return normalizeOptions(options, optionInfos, opts); +function printComments$7(path, doc, options, ignored) { + const { + leading, + trailing + } = printCommentsSeparately$1(path, options, ignored); + + if (!leading && !trailing) { + return doc; + } + + return [leading, doc, trailing]; } -function normalizeCliOptions(options, optionInfos, opts) { - return normalizeOptions(options, optionInfos, Object.assign({ - isCLI: true - }, opts)); +function ensureAllCommentsPrinted(astComments) { + if (!astComments) { + return; + } + + for (const comment of astComments) { + if (!comment.printed) { + throw new Error('Comment "' + comment.value.trim() + '" was not printed. Please report this error!'); + } + + delete comment.printed; + } } -var optionsNormalizer = { - normalizeApiOptions, - normalizeCliOptions +var comments$1 = { + attach, + printComments: printComments$7, + printCommentsSeparately: printCommentsSeparately$1, + printDanglingComments: printDanglingComments$e, + getSortedChildNodes, + ensureAllCommentsPrinted }; -function locStart(node, opts) { - const { - ignoreDecorators - } = opts || {}; // Handle nodes with decorators. They should start at the first decorator +function getNodeHelper(path, count) { + const stackIndex = getNodeStackIndexHelper(path.stack, count); + return stackIndex === -1 ? null : path.stack[stackIndex]; +} - if (!ignoreDecorators) { - const decorators = node.declaration && node.declaration.decorators || node.decorators; +function getNodeStackIndexHelper(stack, count) { + for (let i = stack.length - 1; i >= 0; i -= 2) { + const value = stack[i]; - if (decorators && decorators.length > 0) { - return locStart(decorators[0]); + if (value && !Array.isArray(value) && --count < 0) { + return i; } } - return node.range ? node.range[0] : node.start; + return -1; } -function locEnd(node) { - const end = node.range ? node.range[1] : node.end; - return node.typeAnnotation ? Math.max(end, locEnd(node.typeAnnotation)) : end; -} +class AstPath { + constructor(value) { + this.stack = [value]; + } // The name of the current property is always the penultimate element of + // this.stack, and always a String. -function composeLoc(startNode, endNodeOrLength = startNode) { - const start = locStart(startNode); - const end = typeof endNodeOrLength === "number" ? start + endNodeOrLength : locEnd(endNodeOrLength); - return [start, end]; -} -var loc = { - locStart, - locEnd, - composeLoc -}; + getName() { + const { + stack + } = this; + const { + length + } = stack; -var jsTokens = createCommonjsModule(function (module, exports) { - // Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell - // License: MIT. (See LICENSE.) - Object.defineProperty(exports, "__esModule", { - value: true - }); // This regex comes from regex.coffee, and is inserted here by generate-index.js - // (run `npm run build`). + if (length > 1) { + return stack[length - 2]; + } // Since the name is always a string, null is a safe sentinel value to + // return if we do not know the name of the (root) value. - exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g; + /* istanbul ignore next */ - exports.matchToToken = function (match) { - var token = { - type: "invalid", - value: match[0], - closed: undefined - }; - if (match[1]) token.type = "string", token.closed = !!(match[3] || match[4]);else if (match[5]) token.type = "comment";else if (match[6]) token.type = "comment", token.closed = !!match[7];else if (match[8]) token.type = "regex";else if (match[9]) token.type = "number";else if (match[10]) token.type = "name";else if (match[11]) token.type = "punctuator";else if (match[12]) token.type = "whitespace"; - return token; - }; -}); -var identifier = createCommonjsModule(function (module, exports) { + return null; + } // The value of the current property is always the final element of + // this.stack. - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isIdentifierStart = isIdentifierStart; - exports.isIdentifierChar = isIdentifierChar; - exports.isIdentifierName = isIdentifierName; - let nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\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\u09fc\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\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\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\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; - let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; - const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; - const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - - function isInAstralSet(code, set) { - let pos = 0x10000; - - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - return false; + getValue() { + return getLast_1(this.stack); } - function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; + getNode(count = 0) { + return getNodeHelper(this, count); + } - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } + getParentNode(count = 0) { + return getNodeHelper(this, count + 1); + } // Temporarily push properties named by string arguments given after the + // callback function onto this.stack, then call the callback with a + // reference to this (modified) AstPath object. Note that the stack will + // be restored to its original state after the callback is finished, so it + // is probably a mistake to retain a reference to the path. - return isInAstralSet(code, astralIdentifierStartCodes); - } - function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; + call(callback, ...names) { + const { + stack + } = this; + const { + length + } = stack; + let value = getLast_1(stack); - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + for (const name of names) { + value = value[name]; + stack.push(name, value); } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); + const result = callback(this); + stack.length = length; + return result; } - function isIdentifierName(name) { - let isFirst = true; + callParent(callback, count = 0) { + const stackIndex = getNodeStackIndexHelper(this.stack, count + 1); + const parentValues = this.stack.splice(stackIndex + 1); + const result = callback(this); + this.stack.push(...parentValues); + return result; + } // Similar to AstPath.prototype.call, except that the value obtained by + // accessing this.getValue()[name1][name2]... should be array. The + // callback will be called with a reference to this path object for each + // element of the array. - for (let _i = 0, _Array$from = Array.from(name); _i < _Array$from.length; _i++) { - const char = _Array$from[_i]; - const cp = char.codePointAt(0); - if (isFirst) { - if (!isIdentifierStart(cp)) { - return false; - } + each(callback, ...names) { + const { + stack + } = this; + const { + length + } = stack; + let value = getLast_1(stack); - isFirst = false; - } else if (!isIdentifierChar(cp)) { - return false; - } + for (const name of names) { + value = value[name]; + stack.push(name, value); } - return !isFirst; - } -}); - -var keyword = createCommonjsModule(function (module, exports) { + for (let i = 0; i < value.length; ++i) { + stack.push(i, value[i]); + callback(this, i, value); + stack.length -= 2; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isReservedWord = isReservedWord; - exports.isStrictReservedWord = isStrictReservedWord; - exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; - exports.isStrictBindReservedWord = isStrictBindReservedWord; - exports.isKeyword = isKeyword; - const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] - }; - const keywords = new Set(reservedWords.keyword); - const reservedWordsStrictSet = new Set(reservedWords.strict); - const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); + stack.length = length; + } // Similar to AstPath.prototype.each, except that the results of the + // callback function invocations are stored in an array and returned at + // the end of the iteration. - function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; - } - function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); + map(callback, ...names) { + const result = []; + this.each((path, index, value) => { + result[index] = callback(path, index, value); + }, ...names); + return result; } + /** + * @param {() => void} callback + * @internal Unstable API. Don't use in plugins for now. + */ - function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); - } - function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); - } + try(callback) { + const { + stack + } = this; + const stackBackup = [...stack]; - function isKeyword(word) { - return keywords.has(word); + try { + return callback(); + } finally { + stack.length = 0; + stack.push(...stackBackup); + } } -}); + /** + * @param {...( + * | ((node: any, name: string | null, number: number | null) => boolean) + * | undefined + * )} predicates + */ -var lib$2 = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports, "__esModule", { - value: true - }); - Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function () { - return identifier.isIdentifierName; - } - }); - Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function () { - return identifier.isIdentifierChar; - } - }); - Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function () { - return identifier.isIdentifierStart; - } - }); - Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function () { - return keyword.isReservedWord; - } - }); - Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function () { - return keyword.isStrictBindOnlyReservedWord; - } - }); - Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function () { - return keyword.isStrictBindReservedWord; - } - }); - Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function () { - return keyword.isStrictReservedWord; - } - }); - Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function () { - return keyword.isKeyword; - } - }); -}); + match(...predicates) { + let stackPointer = this.stack.length - 1; + let name = null; + let node = this.stack[stackPointer--]; -var matchOperatorsRe$1 = /[|\\{}()[\]^$+*?.]/g; + for (const predicate of predicates) { + /* istanbul ignore next */ + if (node === undefined) { + return false; + } // skip index/array -var escapeStringRegexp$2 = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - return str.replace(matchOperatorsRe$1, '\\$&'); -}; + let number = null; -var colorName$2 = { - "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] -}; + if (typeof name === "number") { + number = name; + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; + } -var conversions$2 = createCommonjsModule(function (module) { - /* MIT license */ - // NOTE: conversions should only return primitive values (i.e. arrays, or - // values that give correct `typeof` results). - // do not use box values types (i.e. Number(), String(), etc.) - var reverseKeywords = {}; + if (predicate && !predicate(node, name, number)) { + return false; + } - for (var key in colorName$2) { - if (colorName$2.hasOwnProperty(key)) { - reverseKeywords[colorName$2[key]] = key; + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; } + + return true; } + /** + * Traverses the ancestors of the current node heading toward the tree root + * until it finds a node that matches the provided predicate function. Will + * return the first matching ancestor. If no such node exists, returns undefined. + * @param {(node: any, name: string, number: number | null) => boolean} predicate + * @internal Unstable API. Don't use in plugins for now. + */ - var convert = module.exports = { - 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'] - } - }; // hide .channels and .labels properties - for (var model in convert) { - if (convert.hasOwnProperty(model)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } + findAncestor(predicate) { + let stackPointer = this.stack.length - 1; + let name = null; + let node = this.stack[stackPointer--]; - if (!('labels' in convert[model])) { - throw new Error('missing channel labels property: ' + model); + while (node) { + // skip index/array + let number = null; + + if (typeof name === "number") { + number = name; + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; } - if (convert[model].labels.length !== convert[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); + if (name !== null && predicate(node, name, number)) { + return node; } - var channels = convert[model].channels; - var labels = convert[model].labels; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', { - value: channels - }); - Object.defineProperty(convert[model], 'labels', { - value: labels - }); + name = this.stack[stackPointer--]; + node = this.stack[stackPointer--]; } } - convert.rgb.hsl = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var min = Math.min(r, g, b); - var max = Math.max(r, g, b); - var delta = max - min; - var h; - var s; - var l; +} - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } +var astPath = AstPath; - h = Math.min(h * 60, 360); +const { + utils: { + stripTrailingHardline + } +} = doc; +const { + normalize +} = options$6; - if (h < 0) { - h += 360; - } +function printSubtree(path, print, options, printAstToDoc) { + if (options.printer.embed && options.embeddedLanguageFormatting === "auto") { + return options.printer.embed(path, print, (text, partialNextOptions, textToDocOptions) => textToDoc(text, partialNextOptions, options, printAstToDoc, textToDocOptions), options); + } +} - l = (min + max) / 2; +function textToDoc(text, partialNextOptions, parentOptions, printAstToDoc, // TODO: remove `stripTrailingHardline` in v3.0.0 +{ + stripTrailingHardline: shouldStripTrailingHardline = false +} = {}) { + const nextOptions = normalize(Object.assign(Object.assign(Object.assign({}, parentOptions), partialNextOptions), {}, { + parentParser: parentOptions.parser, + originalText: text + }), { + passThrough: true + }); + const result = parser$1.parse(text, nextOptions); + const { + ast + } = result; + text = result.text; + const astComments = ast.comments; + delete ast.comments; + comments$1.attach(astComments, ast, text, nextOptions); + nextOptions[Symbol.for("comments")] = astComments || []; + nextOptions[Symbol.for("tokens")] = ast.tokens || []; + const doc = printAstToDoc(ast, nextOptions); + comments$1.ensureAllCommentsPrinted(astComments); - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); + if (shouldStripTrailingHardline) { + // TODO: move this to `stripTrailingHardline` function in `/src/document/doc-utils.js` + if (typeof doc === "string") { + return doc.replace(/(?:\r?\n)*$/, ""); } - return [h, s * 100, l * 100]; - }; + return stripTrailingHardline(doc); + } + /* istanbul ignore next */ + + + return doc; +} + +var multiparser = { + printSubtree +}; + +const { + builders: { + hardline: hardline$y, + addAlignmentToDoc: addAlignmentToDoc$1 + }, + utils: { + propagateBreaks + } +} = doc; +const { + printComments: printComments$6 +} = comments$1; +/** + * Takes an abstract syntax tree (AST) and recursively converts it to a + * document (series of printing primitives). + * + * This is done by descending down the AST recursively. The recursion + * involves two functions that call each other: + * + * 1. mainPrint(), which is defined as an inner function here. + * It basically takes care of node caching. + * 2. callPluginPrintFunction(), which checks for some options, and + * ultimately calls the print() function provided by the plugin. + * + * The plugin function will call mainPrint() again for child nodes + * of the current node. mainPrint() will do its housekeeping, then call + * the plugin function again, and so on. + * + * All the while, these functions pass a "path" variable around, which + * is a stack-like data structure (AstPath) that maintains the current + * state of the recursion. It is called "path", because it represents + * the path to the current node through the Abstract Syntax Tree. + */ + +function printAstToDoc(ast, options, alignmentSize = 0) { + const { + printer + } = options; - convert.rgb.hsv = function (rgb) { - var rdif; - var gdif; - var bdif; - var h; - var s; - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var v = Math.max(r, g, b); - var diff = v - Math.min(r, g, b); + if (printer.preprocess) { + ast = printer.preprocess(ast, options); + } - var diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; - }; + const cache = new Map(); + const path = new astPath(ast); + let doc = mainPrint(); - if (diff === 0) { - h = s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); + if (alignmentSize > 0) { + // Add a hardline to make the indents take effect + // It should be removed in index.js format() + doc = addAlignmentToDoc$1([hardline$y, doc], alignmentSize, options.tabWidth); + } - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = 1 / 3 + rdif - bdif; - } else if (b === v) { - h = 2 / 3 + gdif - rdif; - } + propagateBreaks(doc); + return doc; - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } + function mainPrint(selector, args) { + if (selector === undefined || selector === path) { + return mainPrintInternal(args); } - return [h * 360, s * 100, v * 100]; - }; + if (Array.isArray(selector)) { + return path.call(() => mainPrintInternal(args), ...selector); + } - convert.rgb.hwb = function (rgb) { - var r = rgb[0]; - var g = rgb[1]; - var b = rgb[2]; - var h = convert.rgb.hsl(rgb)[0]; - var w = 1 / 255 * Math.min(r, Math.min(g, b)); - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - return [h, w * 100, b * 100]; - }; + return path.call(() => mainPrintInternal(args), selector); + } - convert.rgb.cmyk = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var c; - var m; - var y; - var k; - k = Math.min(1 - r, 1 - g, 1 - b); - c = (1 - r - k) / (1 - k) || 0; - m = (1 - g - k) / (1 - k) || 0; - y = (1 - b - k) / (1 - k) || 0; - return [c * 100, m * 100, y * 100, k * 100]; - }; - /** - * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - * */ + function mainPrintInternal(args) { + const value = path.getValue(); + const shouldCache = value && typeof value === "object" && args === undefined; + if (shouldCache && cache.has(value)) { + return cache.get(value); + } - function comparativeDistance(x, y) { - return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2); + const doc = callPluginPrintFunction(path, options, mainPrint, args); + + if (shouldCache) { + cache.set(value, doc); + } + + return doc; } +} - convert.rgb.keyword = function (rgb) { - var reversed = reverseKeywords[rgb]; +function printPrettierIgnoredNode(node, options) { + const { + originalText, + [Symbol.for("comments")]: comments, + locStart, + locEnd + } = options; + const start = locStart(node); + const end = locEnd(node); + const printedComments = new Set(); - if (reversed) { - return reversed; + for (const comment of comments) { + if (locStart(comment) >= start && locEnd(comment) <= end) { + comment.printed = true; + printedComments.add(comment); } + } - var currentClosestDistance = Infinity; - var currentClosestKeyword; + return { + doc: originalText.slice(start, end), + printedComments + }; +} - for (var keyword in colorName$2) { - if (colorName$2.hasOwnProperty(keyword)) { - var value = colorName$2[keyword]; // Compute comparative distance +function callPluginPrintFunction(path, options, printPath, args) { + const node = path.getValue(); + const { + printer + } = options; + let doc; + let printedComments; // Escape hatch - var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest + if (printer.hasPrettierIgnore && printer.hasPrettierIgnore(path)) { + ({ + doc, + printedComments + } = printPrettierIgnoredNode(node, options)); + } else { + if (node) { + try { + // Potentially switch to a different parser + doc = multiparser.printSubtree(path, printPath, options, printAstToDoc); + } catch (error) { + /* istanbul ignore if */ + if (process.env.PRETTIER_DEBUG) { + throw error; + } // Continue with current parser - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } } } - return currentClosestKeyword; - }; + if (!doc) { + doc = printer.print(path, options, printPath, args); + } + } // We let JSXElement print its comments itself because it adds () around + // UnionTypeAnnotation has to align the child without the comments - convert.keyword.rgb = function (keyword) { - return colorName$2[keyword]; - }; - convert.rgb.xyz = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; // assume sRGB + if (!printer.willPrintOwnComments || !printer.willPrintOwnComments(path, options)) { + // printComments will call the plugin print function and check for + // comments to print + doc = printComments$6(path, doc, options, printedComments); + } - r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; - g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; - b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; - var x = r * 0.4124 + g * 0.3576 + b * 0.1805; - var y = r * 0.2126 + g * 0.7152 + b * 0.0722; - var z = r * 0.0193 + g * 0.1192 + b * 0.9505; - return [x * 100, y * 100, z * 100]; - }; + return doc; +} - convert.rgb.lab = function (rgb) { - var xyz = convert.rgb.xyz(rgb); - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; - l = 116 * y - 16; - a = 500 * (x - y); - b = 200 * (y - z); - return [l, a, b]; - }; +var astToDoc = printAstToDoc; - convert.hsl.rgb = function (hsl) { - var h = hsl[0] / 360; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var t1; - var t2; - var t3; - var rgb; - var val; +const isJsonParser = ({ + parser +}) => parser === "json" || parser === "json5" || parser === "json-stringify"; - if (s === 0) { - val = l * 255; - return [val, val, val]; - } +function findCommonAncestor(startNodeAndParents, endNodeAndParents) { + const startNodeAndAncestors = [startNodeAndParents.node, ...startNodeAndParents.parentNodes]; + const endNodeAndAncestors = new Set([endNodeAndParents.node, ...endNodeAndParents.parentNodes]); + return startNodeAndAncestors.find(node => jsonSourceElements.has(node.type) && endNodeAndAncestors.has(node)); +} - if (l < 0.5) { - t2 = l * (1 + s); +function dropRootParents(parents) { + let lastParentIndex = parents.length - 1; + + for (;;) { + const parent = parents[lastParentIndex]; + + if (parent && (parent.type === "Program" || parent.type === "File")) { + lastParentIndex--; } else { - t2 = l + s - l * s; + break; } + } - t1 = 2 * l - t2; - rgb = [0, 0, 0]; + return parents.slice(0, lastParentIndex + 1); +} - for (var i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); +function findSiblingAncestors(startNodeAndParents, endNodeAndParents, { + locStart, + locEnd +}) { + let resultStartNode = startNodeAndParents.node; + let resultEndNode = endNodeAndParents.node; - if (t3 < 0) { - t3++; - } + if (resultStartNode === resultEndNode) { + return { + startNode: resultStartNode, + endNode: resultEndNode + }; + } - if (t3 > 1) { - t3--; - } + const startNodeStart = locStart(startNodeAndParents.node); - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } + for (const endParent of dropRootParents(endNodeAndParents.parentNodes)) { + if (locStart(endParent) >= startNodeStart) { + resultEndNode = endParent; + } else { + break; + } + } - rgb[i] = val * 255; + const endNodeEnd = locEnd(endNodeAndParents.node); + + for (const startParent of dropRootParents(startNodeAndParents.parentNodes)) { + if (locEnd(startParent) <= endNodeEnd) { + resultStartNode = startParent; + } else { + break; } + } - return rgb; + return { + startNode: resultStartNode, + endNode: resultEndNode }; +} - convert.hsl.hsv = function (hsl) { - var h = hsl[0]; - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var smin = s; - var lmin = Math.max(l, 0.01); - var sv; - var v; - l *= 2; - s *= l <= 1 ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - v = (l + s) / 2; - sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s); - return [h, sv * 100, v * 100]; - }; +function findNodeAtOffset(node, offset, options, predicate, parentNodes = [], type) { + const { + locStart, + locEnd + } = options; + const start = locStart(node); + const end = locEnd(node); - convert.hsv.rgb = function (hsv) { - var h = hsv[0] / 60; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var hi = Math.floor(h) % 6; - var f = h - Math.floor(h); - var p = 255 * v * (1 - s); - var q = 255 * v * (1 - s * f); - var t = 255 * v * (1 - s * (1 - f)); - v *= 255; + if (offset > end || offset < start || type === "rangeEnd" && offset === start || type === "rangeStart" && offset === end) { + return; + } - switch (hi) { - case 0: - return [v, t, p]; + for (const childNode of comments$1.getSortedChildNodes(node, options)) { + const childResult = findNodeAtOffset(childNode, offset, options, predicate, [node, ...parentNodes], type); - case 1: - return [q, v, p]; + if (childResult) { + return childResult; + } + } - case 2: - return [p, v, t]; + if (!predicate || predicate(node, parentNodes[0])) { + return { + node, + parentNodes + }; + } +} // See https://www.ecma-international.org/ecma-262/5.1/#sec-A.5 - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; +function isJsSourceElement(type, parentType) { + return parentType !== "DeclareExportDeclaration" && type !== "TypeParameterDeclaration" && (type === "Directive" || type === "TypeAlias" || type === "TSExportAssignment" || type.startsWith("Declare") || type.startsWith("TSDeclare") || type.endsWith("Statement") || type.endsWith("Declaration")); +} - case 5: - return [v, p, q]; - } - }; +const jsonSourceElements = new Set(["ObjectExpression", "ArrayExpression", "StringLiteral", "NumericLiteral", "BooleanLiteral", "NullLiteral", "UnaryExpression", "TemplateLiteral"]); +const graphqlSourceElements = new Set(["OperationDefinition", "FragmentDefinition", "VariableDefinition", "TypeExtensionDefinition", "ObjectTypeDefinition", "FieldDefinition", "DirectiveDefinition", "EnumTypeDefinition", "EnumValueDefinition", "InputValueDefinition", "InputObjectTypeDefinition", "SchemaDefinition", "OperationTypeDefinition", "InterfaceTypeDefinition", "UnionTypeDefinition", "ScalarTypeDefinition"]); - convert.hsv.hsl = function (hsv) { - var h = hsv[0]; - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var vmin = Math.max(v, 0.01); - var lmin; - var sl; - var l; - l = (2 - s) * v; - lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= lmin <= 1 ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - return [h, sl * 100, l * 100]; - }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb +function isSourceElement(opts, node, parentNode) { + /* istanbul ignore next */ + if (!node) { + return false; + } + switch (opts.parser) { + case "flow": + case "babel": + case "babel-flow": + case "babel-ts": + case "typescript": + case "espree": + case "meriyah": + case "__babel_estree": + return isJsSourceElement(node.type, parentNode && parentNode.type); - convert.hwb.rgb = function (hwb) { - var h = hwb[0] / 360; - var wh = hwb[1] / 100; - var bl = hwb[2] / 100; - var ratio = wh + bl; - var i; - var v; - var f; - var n; // wh + bl cant be > 1 + case "json": + case "json5": + case "json-stringify": + return jsonSourceElements.has(node.type); - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } + case "graphql": + return graphqlSourceElements.has(node.kind); - i = Math.floor(6 * h); - v = 1 - bl; - f = 6 * h - i; + case "vue": + return node.tag !== "root"; + } - if ((i & 0x01) !== 0) { - f = 1 - f; - } + return false; +} - n = wh + f * (v - wh); // linear interpolation +function calculateRange(text, opts, ast) { + let { + rangeStart: start, + rangeEnd: end, + locStart, + locEnd + } = opts; + assert__default['default'].ok(end > start); // Contract the range so that it has non-whitespace characters at its endpoints. + // This ensures we can format a range that doesn't end on a node. - var r; - var g; - var b; + const firstNonWhitespaceCharacterIndex = text.slice(start, end).search(/\S/); + const isAllWhitespace = firstNonWhitespaceCharacterIndex === -1; - switch (i) { - default: - case 6: - case 0: - r = v; - g = n; - b = wh; - break; + if (!isAllWhitespace) { + start += firstNonWhitespaceCharacterIndex; - case 1: - r = n; - g = v; - b = wh; + for (; end > start; --end) { + if (/\S/.test(text[end - 1])) { break; + } + } + } - case 2: - r = wh; - g = v; - b = n; - break; + const startNodeAndParents = findNodeAtOffset(ast, start, opts, (node, parentNode) => isSourceElement(opts, node, parentNode), [], "rangeStart"); + const endNodeAndParents = // No need find Node at `end`, it will be the same as `startNodeAndParents` + isAllWhitespace ? startNodeAndParents : findNodeAtOffset(ast, end, opts, node => isSourceElement(opts, node), [], "rangeEnd"); - case 3: - r = wh; - g = n; - b = v; - break; + if (!startNodeAndParents || !endNodeAndParents) { + return { + rangeStart: 0, + rangeEnd: 0 + }; + } - case 4: - r = n; - g = wh; - b = v; - break; + let startNode; + let endNode; - case 5: - r = v; - g = wh; - b = n; - break; - } + if (isJsonParser(opts)) { + const commonAncestor = findCommonAncestor(startNodeAndParents, endNodeAndParents); + startNode = commonAncestor; + endNode = commonAncestor; + } else { + ({ + startNode, + endNode + } = findSiblingAncestors(startNodeAndParents, endNodeAndParents, opts)); + } - return [r * 255, g * 255, b * 255]; + return { + rangeStart: Math.min(locStart(startNode), locStart(endNode)), + rangeEnd: Math.max(locEnd(startNode), locEnd(endNode)) }; +} - convert.cmyk.rgb = function (cmyk) { - var c = cmyk[0] / 100; - var m = cmyk[1] / 100; - var y = cmyk[2] / 100; - var k = cmyk[3] / 100; - var r; - var g; - var b; - r = 1 - Math.min(1, c * (1 - k) + k); - g = 1 - Math.min(1, m * (1 - k) + k); - b = 1 - Math.min(1, y * (1 - k) + k); - return [r * 255, g * 255, b * 255]; - }; +var rangeUtil = { + calculateRange, + findNodeAtOffset +}; - convert.xyz.rgb = function (xyz) { - var x = xyz[0] / 100; - var y = xyz[1] / 100; - var z = xyz[2] / 100; - var r; - var g; - var b; - r = x * 3.2406 + y * -1.5372 + z * -0.4986; - g = x * -0.9689 + y * 1.8758 + z * 0.0415; - b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB +const { + printer: { + printDocToString: printDocToString$2 + }, + debug: { + printDocToDebug + } +} = doc; +const { + getAlignmentSize: getAlignmentSize$1 +} = util$5; +const { + guessEndOfLine, + convertEndOfLineToChars, + countEndOfLineChars, + normalizeEndOfLine: normalizeEndOfLine$1 +} = endOfLine; +const normalizeOptions$2 = options$6.normalize; +const BOM = "\uFEFF"; +const CURSOR = Symbol("cursor"); - r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92; - g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92; - b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92; - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); - return [r * 255, g * 255, b * 255]; - }; +function attachComments(text, ast, opts) { + const astComments = ast.comments; - convert.xyz.lab = function (xyz) { - var x = xyz[0]; - var y = xyz[1]; - var z = xyz[2]; - var l; - var a; - var b; - x /= 95.047; - y /= 100; - z /= 108.883; - x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116; - y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116; - z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116; - l = 116 * y - 16; - a = 500 * (x - y); - b = 200 * (y - z); - return [l, a, b]; - }; + if (astComments) { + delete ast.comments; + comments$1.attach(astComments, ast, text, opts); + } - convert.lab.xyz = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var x; - var y; - var z; - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; - var y2 = Math.pow(y, 3); - var x2 = Math.pow(x, 3); - var z2 = Math.pow(z, 3); - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - x *= 95.047; - y *= 100; - z *= 108.883; - return [x, y, z]; - }; + opts[Symbol.for("comments")] = astComments || []; + opts[Symbol.for("tokens")] = ast.tokens || []; + opts.originalText = text; + return astComments; +} - convert.lab.lch = function (lab) { - var l = lab[0]; - var a = lab[1]; - var b = lab[2]; - var hr; - var h; - var c; - hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; +function coreFormat(originalText, opts, addAlignmentSize = 0) { + if (!originalText || originalText.trim().length === 0) { + return { + formatted: "", + cursorOffset: -1, + comments: [] + }; + } - if (h < 0) { - h += 360; + const { + ast, + text + } = parser$1.parse(originalText, opts); + + if (opts.cursorOffset >= 0) { + const nodeResult = rangeUtil.findNodeAtOffset(ast, opts.cursorOffset, opts); + + if (nodeResult && nodeResult.node) { + opts.cursorNode = nodeResult.node; } + } - c = Math.sqrt(a * a + b * b); - return [l, c, h]; - }; + const astComments = attachComments(text, ast, opts); + const doc = astToDoc(ast, opts, addAlignmentSize); + const result = printDocToString$2(doc, opts); + comments$1.ensureAllCommentsPrinted(astComments); // Remove extra leading indentation as well as the added indentation after last newline - convert.lch.lab = function (lch) { - var l = lch[0]; - var c = lch[1]; - var h = lch[2]; - var a; - var b; - var hr; - hr = h / 360 * 2 * Math.PI; - a = c * Math.cos(hr); - b = c * Math.sin(hr); - return [l, a, b]; - }; + if (addAlignmentSize > 0) { + const trimmed = result.formatted.trim(); - convert.rgb.ansi16 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; - var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization + if (result.cursorNodeStart !== undefined) { + result.cursorNodeStart -= result.formatted.indexOf(trimmed); + } - value = Math.round(value / 50); + result.formatted = trimmed + convertEndOfLineToChars(opts.endOfLine); + } - if (value === 0) { - return 30; + if (opts.cursorOffset >= 0) { + let oldCursorNodeStart; + let oldCursorNodeText; + let cursorOffsetRelativeToOldCursorNode; + let newCursorNodeStart; + let newCursorNodeText; + + if (opts.cursorNode && result.cursorNodeText) { + oldCursorNodeStart = opts.locStart(opts.cursorNode); + oldCursorNodeText = text.slice(oldCursorNodeStart, opts.locEnd(opts.cursorNode)); + cursorOffsetRelativeToOldCursorNode = opts.cursorOffset - oldCursorNodeStart; + newCursorNodeStart = result.cursorNodeStart; + newCursorNodeText = result.cursorNodeText; + } else { + oldCursorNodeStart = 0; + oldCursorNodeText = text; + cursorOffsetRelativeToOldCursorNode = opts.cursorOffset; + newCursorNodeStart = 0; + newCursorNodeText = result.formatted; } - var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255)); + if (oldCursorNodeText === newCursorNodeText) { + return { + formatted: result.formatted, + cursorOffset: newCursorNodeStart + cursorOffsetRelativeToOldCursorNode, + comments: astComments + }; + } // diff old and new cursor node texts, with a special cursor + // symbol inserted to find out where it moves to - if (value === 2) { - ansi += 60; + + const oldCursorNodeCharArray = oldCursorNodeText.split(""); + oldCursorNodeCharArray.splice(cursorOffsetRelativeToOldCursorNode, 0, CURSOR); + const newCursorNodeCharArray = newCursorNodeText.split(""); + const cursorNodeDiff = lib$6.diffArrays(oldCursorNodeCharArray, newCursorNodeCharArray); + let cursorOffset = newCursorNodeStart; + + for (const entry of cursorNodeDiff) { + if (entry.removed) { + if (entry.value.includes(CURSOR)) { + break; + } + } else { + cursorOffset += entry.count; + } } - return ansi; - }; + return { + formatted: result.formatted, + cursorOffset, + comments: astComments + }; + } - convert.hsv.ansi16 = function (args) { - // optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); + return { + formatted: result.formatted, + cursorOffset: -1, + comments: astComments }; +} - convert.rgb.ansi256 = function (args) { - var r = args[0]; - var g = args[1]; - var b = args[2]; // we use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. +function formatRange(originalText, opts) { + const { + ast, + text + } = parser$1.parse(originalText, opts); + const { + rangeStart, + rangeEnd + } = rangeUtil.calculateRange(text, opts, ast); + const rangeString = text.slice(rangeStart, rangeEnd); // Try to extend the range backwards to the beginning of the line. + // This is so we can detect indentation correctly and restore it. + // Use `Math.min` since `lastIndexOf` returns 0 when `rangeStart` is 0 - if (r === g && g === b) { - if (r < 8) { - return 16; - } + const rangeStart2 = Math.min(rangeStart, text.lastIndexOf("\n", rangeStart) + 1); + const indentString = text.slice(rangeStart2, rangeStart).match(/^\s*/)[0]; + const alignmentSize = getAlignmentSize$1(indentString, opts.tabWidth); + const rangeResult = coreFormat(rangeString, Object.assign(Object.assign({}, opts), {}, { + rangeStart: 0, + rangeEnd: Number.POSITIVE_INFINITY, + // Track the cursor offset only if it's within our range + cursorOffset: opts.cursorOffset > rangeStart && opts.cursorOffset <= rangeEnd ? opts.cursorOffset - rangeStart : -1, + // Always use `lf` to format, we'll replace it later + endOfLine: "lf" + }), alignmentSize); // Since the range contracts to avoid trailing whitespace, + // we need to remove the newline that was inserted by the `format` call. - if (r > 248) { - return 231; - } + const rangeTrimmed = rangeResult.formatted.trimEnd(); + let { + cursorOffset + } = opts; - return Math.round((r - 8) / 247 * 24) + 232; - } + if (cursorOffset > rangeEnd) { + // handle the case where the cursor was past the end of the range + cursorOffset += rangeTrimmed.length - rangeString.length; + } else if (rangeResult.cursorOffset >= 0) { + // handle the case where the cursor was in the range + cursorOffset = rangeResult.cursorOffset + rangeStart; + } // keep the cursor as it was if it was before the start of the range - var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5); - return ansi; - }; - convert.ansi16.rgb = function (args) { - var color = args % 10; // handle greyscale + let formatted = text.slice(0, rangeStart) + rangeTrimmed + text.slice(rangeEnd); - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } + if (opts.endOfLine !== "lf") { + const eol = convertEndOfLineToChars(opts.endOfLine); - color = color / 10.5 * 255; - return [color, color, color]; + if (cursorOffset >= 0 && eol === "\r\n") { + cursorOffset += countEndOfLineChars(formatted.slice(0, cursorOffset), "\n"); } - var mult = (~~(args > 50) + 1) * 0.5; - var r = (color & 1) * mult * 255; - var g = (color >> 1 & 1) * mult * 255; - var b = (color >> 2 & 1) * mult * 255; - return [r, g, b]; + formatted = formatted.replace(/\n/g, eol); + } + + return { + formatted, + cursorOffset, + comments: rangeResult.comments }; +} - convert.ansi256.rgb = function (args) { - // handle greyscale - if (args >= 232) { - var c = (args - 232) * 10 + 8; - return [c, c, c]; - } +function ensureIndexInText(text, index, defaultValue) { + if (typeof index !== "number" || Number.isNaN(index) || index < 0 || index > text.length) { + return defaultValue; + } - args -= 16; - var rem; - var r = Math.floor(args / 36) / 5 * 255; - var g = Math.floor((rem = args % 36) / 6) / 5 * 255; - var b = rem % 6 / 5 * 255; - return [r, g, b]; - }; + return index; +} - convert.rgb.hex = function (args) { - var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF); - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; - }; +function normalizeIndexes(text, options) { + let { + cursorOffset, + rangeStart, + rangeEnd + } = options; + cursorOffset = ensureIndexInText(text, cursorOffset, -1); + rangeStart = ensureIndexInText(text, rangeStart, 0); + rangeEnd = ensureIndexInText(text, rangeEnd, text.length); + return Object.assign(Object.assign({}, options), {}, { + cursorOffset, + rangeStart, + rangeEnd + }); +} - convert.hex.rgb = function (args) { - var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); +function normalizeInputAndOptions(text, options) { + let { + cursorOffset, + rangeStart, + rangeEnd, + endOfLine + } = normalizeIndexes(text, options); + const hasBOM = text.charAt(0) === BOM; - if (!match) { - return [0, 0, 0]; - } + if (hasBOM) { + text = text.slice(1); + cursorOffset--; + rangeStart--; + rangeEnd--; + } - var colorString = match[0]; + if (endOfLine === "auto") { + endOfLine = guessEndOfLine(text); + } // get rid of CR/CRLF parsing - if (match[0].length === 3) { - colorString = colorString.split('').map(function (char) { - return char + char; - }).join(''); - } - var integer = parseInt(colorString, 16); - var r = integer >> 16 & 0xFF; - var g = integer >> 8 & 0xFF; - var b = integer & 0xFF; - return [r, g, b]; + if (text.includes("\r")) { + const countCrlfBefore = index => countEndOfLineChars(text.slice(0, Math.max(index, 0)), "\r\n"); + + cursorOffset -= countCrlfBefore(cursorOffset); + rangeStart -= countCrlfBefore(rangeStart); + rangeEnd -= countCrlfBefore(rangeEnd); + text = normalizeEndOfLine$1(text); + } + + return { + hasBOM, + text, + options: normalizeIndexes(text, Object.assign(Object.assign({}, options), {}, { + cursorOffset, + rangeStart, + rangeEnd, + endOfLine + })) }; +} - convert.rgb.hcg = function (rgb) { - var r = rgb[0] / 255; - var g = rgb[1] / 255; - var b = rgb[2] / 255; - var max = Math.max(Math.max(r, g), b); - var min = Math.min(Math.min(r, g), b); - var chroma = max - min; - var grayscale; - var hue; +function hasPragma$5(text, options) { + const selectedParser = parser$1.resolveParser(options); + return !selectedParser.hasPragma || selectedParser.hasPragma(text); +} - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } +function formatWithCursor$1(originalText, originalOptions) { + let { + hasBOM, + text, + options + } = normalizeInputAndOptions(originalText, normalizeOptions$2(originalOptions)); - if (chroma <= 0) { - hue = 0; - } else if (max === r) { - hue = (g - b) / chroma % 6; - } else if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma + 4; + if (options.rangeStart >= options.rangeEnd && text !== "" || options.requirePragma && !hasPragma$5(text, options)) { + return { + formatted: originalText, + cursorOffset: originalOptions.cursorOffset, + comments: [] + }; + } + + let result; + + if (options.rangeStart > 0 || options.rangeEnd < text.length) { + result = formatRange(text, options); + } else { + if (!options.requirePragma && options.insertPragma && options.printer.insertPragma && !hasPragma$5(text, options)) { + text = options.printer.insertPragma(text); } - hue /= 6; - hue %= 1; - return [hue * 360, chroma * 100, grayscale * 100]; - }; + result = coreFormat(text, options); + } - convert.hsl.hcg = function (hsl) { - var s = hsl[1] / 100; - var l = hsl[2] / 100; - var c = 1; - var f = 0; + if (hasBOM) { + result.formatted = BOM + result.formatted; - if (l < 0.5) { - c = 2.0 * s * l; - } else { - c = 2.0 * s * (1.0 - l); + if (result.cursorOffset >= 0) { + result.cursorOffset++; } + } - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } + return result; +} - return [hsl[0], c * 100, f * 100]; - }; +var core$1 = { + formatWithCursor: formatWithCursor$1, - convert.hsv.hcg = function (hsv) { - var s = hsv[1] / 100; - var v = hsv[2] / 100; - var c = s * v; - var f = 0; + parse(originalText, originalOptions, massage) { + const { + text, + options + } = normalizeInputAndOptions(originalText, normalizeOptions$2(originalOptions)); + const parsed = parser$1.parse(text, options); - if (c < 1.0) { - f = (v - c) / (1 - c); + if (massage) { + parsed.ast = massageAst(parsed.ast, options); } - return [hsv[0], c * 100, f * 100]; - }; + return parsed; + }, - convert.hcg.rgb = function (hcg) { - var h = hcg[0] / 360; - var c = hcg[1] / 100; - var g = hcg[2] / 100; + formatAST(ast, options) { + options = normalizeOptions$2(options); + const doc = astToDoc(ast, options); + return printDocToString$2(doc, options); + }, - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } + // Doesn't handle shebang for now + formatDoc(doc, options) { + return formatWithCursor$1(printDocToDebug(doc), Object.assign(Object.assign({}, options), {}, { + parser: "__js_expression" + })).formatted; + }, - var pure = [0, 0, 0]; - var hi = h % 1 * 6; - var v = hi % 1; - var w = 1 - v; - var mg = 0; + printToDoc(originalText, options) { + options = normalizeOptions$2(options); + const { + ast, + text + } = parser$1.parse(originalText, options); + attachComments(text, ast, options); + return astToDoc(ast, options); + }, - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; - pure[1] = v; - pure[2] = 0; - break; + printDocToString(doc, options) { + return printDocToString$2(doc, normalizeOptions$2(options)); + } - case 1: - pure[0] = w; - pure[1] = 1; - pure[2] = 0; - break; +}; - case 2: - pure[0] = 0; - pure[1] = 1; - pure[2] = v; - break; +var concatMap = function (xs, fn) { + var res = []; - case 3: - pure[0] = 0; - pure[1] = w; - pure[2] = 1; - break; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray$1(x)) res.push.apply(res, x);else res.push(x); + } - case 4: - pure[0] = v; - pure[1] = 0; - pure[2] = 1; - break; + return res; +}; - default: - pure[0] = 1; - pure[1] = 0; - pure[2] = w; - } +var isArray$1 = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; - mg = (1.0 - c) * g; - return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255]; +var balancedMatch = balanced; + +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + var r = range(a, b, str); + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) }; +} - convert.hcg.hsv = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - var f = 0; +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} - if (v > 0.0) { - f = c / v; +balanced.range = range; + +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if (a === b) { + return [ai, bi]; } - return [hcg[0], f * 100, v * 100]; - }; + begs = []; + left = str.length; - convert.hcg.hsl = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var l = g * (1.0 - c) + 0.5 * c; - var s = 0; + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [begs.pop(), bi]; + } else { + beg = begs.pop(); - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; } - return [hcg[0], s * 100, l * 100]; - }; + if (begs.length) { + result = [left, right]; + } + } - convert.hcg.hwb = function (hcg) { - var c = hcg[1] / 100; - var g = hcg[2] / 100; - var v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; - }; + return result; +} - convert.hwb.hcg = function (hwb) { - var w = hwb[1] / 100; - var b = hwb[2] / 100; - var v = 1 - b; - var c = v - w; - var g = 0; +var braceExpansion = expandTop; +var escSlash = '\0SLASH' + Math.random() + '\0'; +var escOpen = '\0OPEN' + Math.random() + '\0'; +var escClose = '\0CLOSE' + Math.random() + '\0'; +var escComma = '\0COMMA' + Math.random() + '\0'; +var escPeriod = '\0PERIOD' + Math.random() + '\0'; - if (c < 1) { - g = (v - c) / (1 - c); - } +function numeric(str) { + return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash).split('\\{').join(escOpen).split('\\}').join(escClose).split('\\,').join(escComma).split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\').split(escOpen).join('{').split(escClose).join('}').split(escComma).join(',').split(escPeriod).join('.'); +} // Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} + + +function parseCommaParts(str) { + if (!str) return ['']; + var parts = []; + var m = balancedMatch('{', '}', str); + if (!m) return str.split(','); + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + p[p.length - 1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + + if (post.length) { + p[p.length - 1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + return parts; +} + +function expandTop(str) { + if (!str) return []; // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } - return [hwb[0], c * 100, g * 100]; - }; + return expand$1(escapeBraces(str), true).map(unescapeBraces); +} - convert.apple.rgb = function (apple) { - return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255]; - }; +function embrace(str) { + return '{' + str + '}'; +} - convert.rgb.apple = function (rgb) { - return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535]; - }; +function isPadded(el) { + return /^-?0\d/.test(el); +} - convert.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; - }; +function lte(i, y) { + return i <= y; +} - convert.gray.hsl = convert.gray.hsv = function (args) { - return [0, 0, args[0]]; - }; +function gte(i, y) { + return i >= y; +} - convert.gray.hwb = function (gray) { - return [0, 100, gray[0]]; - }; +function expand$1(str, isTop) { + var expansions = []; + var m = balancedMatch('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; - convert.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; - }; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand$1(str); + } - convert.gray.lab = function (gray) { - return [gray[0], 0, 0]; - }; + return [str]; + } - convert.gray.hex = function (gray) { - var val = Math.round(gray[0] / 100 * 255) & 0xFF; - var integer = (val << 16) + (val << 8) + val; - var string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; - }; + var n; - convert.rgb.gray = function (rgb) { - var val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; - }; -}); + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); -/* - this function routes a model to all other models. + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand$1(n[0], false).map(embrace); - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). + if (n.length === 1) { + var post = m.post.length ? expand$1(m.post, false) : ['']; + return post.map(function (p) { + return m.pre + n[0] + p; + }); + } + } + } // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + // no need to expand pre, since it is guaranteed to be free of brace-sets - conversions that are not possible simply are not included. -*/ -function buildGraph$2() { - var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + var pre = m.pre; + var post = m.post.length ? expand$1(m.post, false) : ['']; + var N; - var models = Object.keys(conversions$2); + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1; + var test = lte; + var reverse = y < x; - for (var len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } + if (reverse) { + incr *= -1; + test = gte; + } - return graph; -} // https://en.wikipedia.org/wiki/Breadth-first_search + var pad = n.some(isPadded); + N = []; + for (var i = x; test(i, y); i += incr) { + var c; -function deriveBFS$2(fromModel) { - var graph = buildGraph$2(); - var queue = [fromModel]; // unshift -> queue -> pop + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') c = ''; + } else { + c = String(i); - graph[fromModel].distance = 0; + if (pad) { + var need = width - c.length; - while (queue.length) { - var current = queue.pop(); - var adjacents = Object.keys(conversions$2[current]); + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) c = '-' + z + c.slice(1);else c = z + c; + } + } + } - for (var len = adjacents.length, i = 0; i < len; i++) { - var adjacent = adjacents[i]; - var node = graph[adjacent]; + N.push(c); + } + } else { + N = concatMap(n, function (el) { + return expand$1(el, false); + }); + } - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) expansions.push(expansion); } } - return graph; + return expansions; } -function link$2(from, to) { - return function (args) { - return to(from(args)); - }; -} +var minimatch_1 = minimatch; +minimatch.Minimatch = Minimatch; +var path$3 = { + sep: '/' +}; -function wrapConversion$2(toModel, graph) { - var path = [graph[toModel].parent, toModel]; - var fn = conversions$2[graph[toModel].parent][toModel]; - var cur = graph[toModel].parent; +try { + path$3 = require('path'); +} catch (er) {} - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link$2(conversions$2[graph[cur].parent][cur], fn); - cur = graph[cur].parent; +var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; +var plTypes = { + '!': { + open: '(?:(?!(?:', + close: '))[^/]*?)' + }, + '?': { + open: '(?:', + close: ')?' + }, + '+': { + open: '(?:', + close: ')+' + }, + '*': { + open: '(?:', + close: ')*' + }, + '@': { + open: '(?:', + close: ')' } +}; // any single thing other than / +// don't need to escape / when using new RegExp() - fn.conversion = path; - return fn; -} +var qmark = '[^/]'; // * => any number of characters -var route$2 = function (fromModel) { - var graph = deriveBFS$2(fromModel); - var conversion = {}; - var models = Object.keys(graph); +var star = qmark + '*?'; // ** when dots are allowed. Anything goes, except .. and . +// not (^ or / followed by one or two dots followed by $ or /), +// followed by anything, any number of times. - for (var len = models.length, i = 0; i < len; i++) { - var toModel = models[i]; - var node = graph[toModel]; +var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'; // not a ^ or / followed by a dot, +// followed by anything, any number of times. - if (node.parent === null) { - // no possible conversion, or this node is the source model. - continue; - } +var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'; // characters that need to be escaped in RegExp. - conversion[toModel] = wrapConversion$2(toModel, graph); - } +var reSpecials = charSet('().*{}+?[]^$\\!'); // "abc" -> { a:true, b:true, c:true } - return conversion; -}; +function charSet(s) { + return s.split('').reduce(function (set, c) { + set[c] = true; + return set; + }, {}); +} // normalizes slashes. -var convert$3 = {}; -var models$2 = Object.keys(conversions$2); -function wrapRaw$2(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } +var slashSplit = /\/+/; +minimatch.filter = filter; - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } +function filter(pattern, options) { + options = options || {}; + return function (p, i, list) { + return minimatch(p, pattern, options); + }; +} - return fn(args); - }; // preserve .conversion property if there is one +function ext(a, b) { + a = a || {}; + b = b || {}; + var t = {}; + Object.keys(b).forEach(function (k) { + t[k] = b[k]; + }); + Object.keys(a).forEach(function (k) { + t[k] = a[k]; + }); + return t; +} + +minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return minimatch; + var orig = minimatch; + var m = function minimatch(p, pattern, options) { + return orig.minimatch(p, pattern, ext(def, options)); + }; - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; + m.Minimatch = function Minimatch(pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)); + }; + + return m; +}; + +Minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return Minimatch; + return minimatch.defaults(def).Minimatch; +}; + +function minimatch(p, pattern, options) { + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required'); } - return wrappedFn; -} + if (!options) options = {}; // shortcut: comments match nothing. -function wrapRounded$2(fn) { - var wrappedFn = function (args) { - if (args === undefined || args === null) { - return args; - } + if (!options.nocomment && pattern.charAt(0) === '#') { + return false; + } // "" only matches "" - if (arguments.length > 1) { - args = Array.prototype.slice.call(arguments); - } - var result = fn(args); // we're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. + if (pattern.trim() === '') return p === ''; + return new Minimatch(pattern, options).match(p); +} - if (typeof result === 'object') { - for (var len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } +function Minimatch(pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options); + } - return result; - }; // preserve .conversion property if there is one + if (typeof pattern !== 'string') { + throw new TypeError('glob pattern string required'); + } + if (!options) options = {}; + pattern = pattern.trim(); // windows support: need to use /, not \ - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; + if (path$3.sep !== '/') { + pattern = pattern.split(path$3.sep).join('/'); } - return wrappedFn; + this.options = options; + this.set = []; + this.pattern = pattern; + this.regexp = null; + this.negate = false; + this.comment = false; + this.empty = false; // make the set of regexps etc. + + this.make(); } -models$2.forEach(function (fromModel) { - convert$3[fromModel] = {}; - Object.defineProperty(convert$3[fromModel], 'channels', { - value: conversions$2[fromModel].channels - }); - Object.defineProperty(convert$3[fromModel], 'labels', { - value: conversions$2[fromModel].labels - }); - var routes = route$2(fromModel); - var routeModels = Object.keys(routes); - routeModels.forEach(function (toModel) { - var fn = routes[toModel]; - convert$3[fromModel][toModel] = wrapRounded$2(fn); - convert$3[fromModel][toModel].raw = wrapRaw$2(fn); - }); -}); -var colorConvert$2 = convert$3; +Minimatch.prototype.debug = function () {}; -var ansiStyles$2 = createCommonjsModule(function (module) { +Minimatch.prototype.make = make; - const wrapAnsi16 = (fn, offset) => function () { - const code = fn.apply(colorConvert$2, arguments); - return `\u001B[${code + offset}m`; - }; +function make() { + // don't do it more than once. + if (this._made) return; + var pattern = this.pattern; + var options = this.options; // empty patterns and comments match nothing. - const wrapAnsi256 = (fn, offset) => function () { - const code = fn.apply(colorConvert$2, arguments); - return `\u001B[${38 + offset};5;${code}m`; - }; + if (!options.nocomment && pattern.charAt(0) === '#') { + this.comment = true; + return; + } - const wrapAnsi16m = (fn, offset) => function () { - const rgb = fn.apply(colorConvert$2, arguments); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; - }; + if (!pattern) { + this.empty = true; + return; + } // step 1: figure out negation, etc. - function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - 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], - gray: [90, 39], - // Bright color - 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], - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; // Fix humans - styles.color.grey = styles.color.gray; + this.parseNegate(); // step 2: expand braces - for (const groupName of Object.keys(styles)) { - const group = styles[groupName]; + var set = this.globSet = this.braceExpand(); + if (options.debug) this.debug = console.error; + this.debug(this.pattern, set); // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters - for (const styleName of Object.keys(group)) { - const style = group[styleName]; - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - group[styleName] = styles[styleName]; - codes.set(style[0], style[1]); - } + set = this.globParts = set.map(function (s) { + return s.split(slashSplit); + }); + this.debug(this.pattern, set); // glob --> regexps - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - } + set = set.map(function (s, si, set) { + return s.map(this.parse, this); + }, this); + this.debug(this.pattern, set); // filter out everything that didn't compile properly. - const ansi2ansi = n => n; + set = set.filter(function (s) { + return s.indexOf(false) === -1; + }); + this.debug(this.pattern, set); + this.set = set; +} - const rgb2rgb = (r, g, b) => [r, g, b]; +Minimatch.prototype.parseNegate = parseNegate; - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - styles.color.ansi = { - ansi: wrapAnsi16(ansi2ansi, 0) - }; - styles.color.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 0) - }; - styles.color.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 0) - }; - styles.bgColor.ansi = { - ansi: wrapAnsi16(ansi2ansi, 10) - }; - styles.bgColor.ansi256 = { - ansi256: wrapAnsi256(ansi2ansi, 10) - }; - styles.bgColor.ansi16m = { - rgb: wrapAnsi16m(rgb2rgb, 10) - }; +function parseNegate() { + var pattern = this.pattern; + var negate = false; + var options = this.options; + var negateOffset = 0; + if (options.nonegate) return; - for (let key of Object.keys(colorConvert$2)) { - if (typeof colorConvert$2[key] !== 'object') { - continue; - } + for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === '!'; i++) { + negate = !negate; + negateOffset++; + } - const suite = colorConvert$2[key]; + if (negateOffset) this.pattern = pattern.substr(negateOffset); + this.negate = negate; +} // Brace expansion: +// a{b,c}d -> abd acd +// a{b,}c -> abc ac +// a{0..3}d -> a0d a1d a2d a3d +// a{b,c{d,e}f}g -> abg acdfg acefg +// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg +// +// Invalid sets are not expanded. +// a{2..}b -> a{2..}b +// a{b}c -> a{b}c - if (key === 'ansi16') { - key = 'ansi'; - } - if ('ansi16' in suite) { - styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0); - styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10); - } +minimatch.braceExpand = function (pattern, options) { + return braceExpand(pattern, options); +}; - if ('ansi256' in suite) { - styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0); - styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10); - } +Minimatch.prototype.braceExpand = braceExpand; - if ('rgb' in suite) { - styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0); - styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10); - } +function braceExpand(pattern, options) { + if (!options) { + if (this instanceof Minimatch) { + options = this.options; + } else { + options = {}; } + } - return styles; - } // Make the export immutable + pattern = typeof pattern === 'undefined' ? this.pattern : pattern; + if (typeof pattern === 'undefined') { + throw new TypeError('undefined pattern'); + } - Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles - }); -}); + if (options.nobrace || !pattern.match(/\{.*\}/)) { + // shortcut. no need to expand. + return [pattern]; + } -const env$2 = process.env; -let forceColor$2; + return braceExpansion(pattern); +} // parse a component of the expanded set. +// At this point, no pattern may contain "/" in it +// so we're going to return a 2d array, where each entry is the full +// pattern, split on '/', and then turned into a regular expression. +// A regexp is made at the end which joins each array with an +// escaped /, and another full one which joins each regexp with |. +// +// Following the lead of Bash 4.1, note that "**" only has special meaning +// when it is the *only* thing in a path portion. Otherwise, any series +// of * is equivalent to a single *. Globstar behavior is enabled by +// default, and can be disabled by setting options.noglobstar. -if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) { - forceColor$2 = false; -} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) { - forceColor$2 = true; -} -if ('FORCE_COLOR' in env$2) { - forceColor$2 = env$2.FORCE_COLOR.length === 0 || parseInt(env$2.FORCE_COLOR, 10) !== 0; -} +Minimatch.prototype.parse = parse$9; +var SUBPARSE = {}; -function translateLevel$2(level) { - if (level === 0) { - return false; +function parse$9(pattern, isSub) { + if (pattern.length > 1024 * 64) { + throw new TypeError('pattern is too long'); } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} + var options = this.options; // shortcuts -function supportsColor$2(stream) { - if (forceColor$2 === false) { - return 0; - } + if (!options.noglobstar && pattern === '**') return GLOBSTAR; + if (pattern === '') return ''; + var re = ''; + var hasMagic = !!options.nocase; + var escaping = false; // ? => one single character - if (hasFlag('color=16m') || hasFlag('color=full') || hasFlag('color=truecolor')) { - return 3; - } + var patternListStack = []; + var negativeLists = []; + var stateChar; + var inClass = false; + var reClassStart = -1; + var classStart = -1; // . and .. never match anything that doesn't start with ., + // even when options.dot is set. - if (hasFlag('color=256')) { - return 2; - } + var patternStart = pattern.charAt(0) === '.' ? '' // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' : '(?!\\.)'; + var self = this; - if (stream && !stream.isTTY && forceColor$2 !== true) { - return 0; - } + function clearStateChar() { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case '*': + re += star; + hasMagic = true; + break; - const min = forceColor$2 ? 1 : 0; + case '?': + re += qmark; + hasMagic = true; + break; - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows - // release that supports 256 colors. Windows 10 build 14931 is the first release - // that supports 16m/TrueColor. - const osRelease = os__default['default'].release().split('.'); + default: + re += '\\' + stateChar; + break; + } - if (Number(process.versions.node.split('.')[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; + self.debug('clearStateChar %j %j', stateChar, re); + stateChar = false; } - - return 1; } - if ('CI' in env$2) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env$2) || env$2.CI_NAME === 'codeship') { - return 1; - } + for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { + this.debug('%s\t%s %s %j', pattern, i, re, c); // skip over any that are escaped. - return min; - } + if (escaping && reSpecials[c]) { + re += '\\' + c; + escaping = false; + continue; + } - if ('TEAMCITY_VERSION' in env$2) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env$2.TEAMCITY_VERSION) ? 1 : 0; - } + switch (c) { + case '/': + // completely not allowed, even escaped. + // Should already be path-split by now. + return false; - if (env$2.COLORTERM === 'truecolor') { - return 3; - } + case '\\': + clearStateChar(); + escaping = true; + continue; + // the various stateChar values + // for the "extglob" stuff. - if ('TERM_PROGRAM' in env$2) { - const version = parseInt((env$2.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + case '?': + case '*': + case '+': + case '@': + case '!': + this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c); // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp - switch (env$2.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; + if (inClass) { + this.debug(' in class'); + if (c === '!' && i === classStart + 1) c = '^'; + re += c; + continue; + } // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. - case 'Apple_Terminal': - return 2; - // No default - } - } - if (/-256(color)?$/i.test(env$2.TERM)) { - return 2; - } + self.debug('call clearStateChar %j', stateChar); + clearStateChar(); + stateChar = c; // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env$2.TERM)) { - return 1; - } + if (options.noext) clearStateChar(); + continue; - if ('COLORTERM' in env$2) { - return 1; - } + case '(': + if (inClass) { + re += '('; + continue; + } - if (env$2.TERM === 'dumb') { - return min; - } + if (!stateChar) { + re += '\\('; + continue; + } - return min; -} + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }); // negation is (?:(?!js)[^/]*) -function getSupportLevel$2(stream) { - const level = supportsColor$2(stream); - return translateLevel$2(level); -} + re += stateChar === '!' ? '(?:(?!(?:' : '(?:'; + this.debug('plType %j %j', stateChar, re); + stateChar = false; + continue; -var supportsColor_1$2 = { - supportsColor: getSupportLevel$2, - stdout: getSupportLevel$2(process.stdout), - stderr: getSupportLevel$2(process.stderr) -}; + case ')': + if (inClass || !patternListStack.length) { + re += '\\)'; + continue; + } -const TEMPLATE_REGEX$2 = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi; -const STYLE_REGEX$2 = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g; -const STRING_REGEX$2 = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/; -const ESCAPE_REGEX$2 = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi; -const ESCAPES$2 = new Map([['n', '\n'], ['r', '\r'], ['t', '\t'], ['b', '\b'], ['f', '\f'], ['v', '\v'], ['0', '\0'], ['\\', '\\'], ['e', '\u001B'], ['a', '\u0007']]); + clearStateChar(); + hasMagic = true; + var pl = patternListStack.pop(); // negation is (?:(?!js)[^/]*) + // The others are (?:) -function unescape$2(c) { - if (c[0] === 'u' && c.length === 5 || c[0] === 'x' && c.length === 3) { - return String.fromCharCode(parseInt(c.slice(1), 16)); - } + re += pl.close; - return ESCAPES$2.get(c) || c; -} + if (pl.type === '!') { + negativeLists.push(pl); + } -function parseArguments$2(name, args) { - const results = []; - const chunks = args.trim().split(/\s*,\s*/g); - let matches; + pl.reEnd = re.length; + continue; - for (const chunk of chunks) { - if (!isNaN(chunk)) { - results.push(Number(chunk)); - } else if (matches = chunk.match(STRING_REGEX$2)) { - results.push(matches[2].replace(ESCAPE_REGEX$2, (m, escape, chr) => escape ? unescape$2(escape) : chr)); - } else { - throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`); - } - } + case '|': + if (inClass || !patternListStack.length || escaping) { + re += '\\|'; + escaping = false; + continue; + } - return results; -} + clearStateChar(); + re += '|'; + continue; + // these are mostly the same in regexp and glob -function parseStyle$2(style) { - STYLE_REGEX$2.lastIndex = 0; - const results = []; - let matches; + case '[': + // swallow any state-tracking char before the [ + clearStateChar(); - while ((matches = STYLE_REGEX$2.exec(style)) !== null) { - const name = matches[1]; + if (inClass) { + re += '\\' + c; + continue; + } - if (matches[2]) { - const args = parseArguments$2(name, matches[2]); - results.push([name].concat(args)); - } else { - results.push([name]); - } - } + inClass = true; + classStart = i; + reClassStart = re.length; + re += c; + continue; - return results; -} + case ']': + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += '\\' + c; + escaping = false; + continue; + } // handle the case where we left a class open. + // "[z-a]" is valid, equivalent to "\[z-a\]" -function buildStyle$2(chalk, styles) { - const enabled = {}; - for (const layer of styles) { - for (const style of layer.styles) { - enabled[style[0]] = layer.inverse ? null : style.slice(1); - } - } + if (inClass) { + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i); - let current = chalk; + try { + RegExp('[' + cs + ']'); + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'; + hasMagic = hasMagic || sp[1]; + inClass = false; + continue; + } + } // finish up the class. - for (const styleName of Object.keys(enabled)) { - if (Array.isArray(enabled[styleName])) { - if (!(styleName in current)) { - throw new Error(`Unknown Chalk style: ${styleName}`); - } - if (enabled[styleName].length > 0) { - current = current[styleName].apply(current, enabled[styleName]); - } else { - current = current[styleName]; - } - } - } + hasMagic = true; + inClass = false; + re += c; + continue; - return current; -} + default: + // swallow any state char that wasn't consumed + clearStateChar(); -var templates$2 = (chalk, tmp) => { - const styles = []; - const chunks = []; - let chunk = []; // eslint-disable-next-line max-params + if (escaping) { + // no need + escaping = false; + } else if (reSpecials[c] && !(c === '^' && inClass)) { + re += '\\'; + } - tmp.replace(TEMPLATE_REGEX$2, (m, escapeChar, inverse, style, close, chr) => { - if (escapeChar) { - chunk.push(unescape$2(escapeChar)); - } else if (style) { - const str = chunk.join(''); - chunk = []; - chunks.push(styles.length === 0 ? str : buildStyle$2(chalk, styles)(str)); - styles.push({ - inverse, - styles: parseStyle$2(style) - }); - } else if (close) { - if (styles.length === 0) { - throw new Error('Found extraneous } in Chalk template literal'); - } + re += c; + } // switch - chunks.push(buildStyle$2(chalk, styles)(chunk.join(''))); - chunk = []; - styles.pop(); - } else { - chunk.push(chr); - } - }); - chunks.push(chunk.join('')); + } // for + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" - if (styles.length > 0) { - const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`; - throw new Error(errMsg); - } - return chunks.join(''); -}; + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + cs = pattern.substr(classStart + 1); + sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + '\\[' + sp[0]; + hasMagic = hasMagic || sp[1]; + } // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. -var chalk$2 = createCommonjsModule(function (module) { - const stdoutColor = supportsColor_1$2.stdout; - const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); // `supportsColor.level` → `ansiStyles.color[name]` mapping + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length); + this.debug('setting tail', re, pl); // maybe some even number of \, then maybe 1 \, followed by a | - const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m']; // `color-convert` models to exclude from the Chalk API due to conflicts and such + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = '\\'; + } // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. - const skipModels = new Set(['gray']); - const styles = Object.create(null); - function applyOptions(obj, options) { - options = options || {}; // Detect level if not set manually + return $1 + $1 + $2 + '|'; + }); + this.debug('tail=%j\n %s', tail, tail, pl, re); + var t = pl.type === '*' ? star : pl.type === '?' ? qmark : '\\' + pl.type; + hasMagic = true; + re = re.slice(0, pl.reStart) + t + '\\(' + tail; + } // handle trailing things that only matter at the very end. - const scLevel = stdoutColor ? stdoutColor.level : 0; - obj.level = options.level === undefined ? scLevel : options.level; - obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0; - } - function Chalk(options) { - // We check for this.template here since calling `chalk.constructor()` - // by itself will have a `this` of a previously constructed chalk object - if (!this || !(this instanceof Chalk) || this.template) { - const chalk = {}; - applyOptions(chalk, options); + clearStateChar(); - chalk.template = function () { - const args = [].slice.call(arguments); - return chalkTag.apply(null, [chalk.template].concat(args)); - }; + if (escaping) { + // trailing \\ + re += '\\\\'; + } // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot - Object.setPrototypeOf(chalk, Chalk.prototype); - Object.setPrototypeOf(chalk.template, chalk); - chalk.template.constructor = Chalk; - return chalk.template; - } - applyOptions(this, options); - } // Use bright blue on Windows as the normal blue color is illegible + var addPatternStart = false; + switch (re.charAt(0)) { + case '.': + case '[': + case '(': + addPatternStart = true; + } // Hack to work around lack of negative lookbehind in JS + // A pattern like: *.!(x).!(y|z) needs to ensure that a name + // like 'a.xyz.yz' doesn't match. So, the first negative + // lookahead, has to look ALL the way ahead, to the end of + // the pattern. - if (isSimpleWindowsTerm) { - ansiStyles$2.blue.open = '\u001B[94m'; - } - for (const key of Object.keys(ansiStyles$2)) { - ansiStyles$2[key].closeRe = new RegExp(escapeStringRegexp$2(ansiStyles$2[key].close), 'g'); - styles[key] = { - get() { - const codes = ansiStyles$2[key]; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key); - } + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n]; + var nlBefore = re.slice(0, nl.reStart); + var nlFirst = re.slice(nl.reStart, nl.reEnd - 8); + var nlLast = re.slice(nl.reEnd - 8, nl.reEnd); + var nlAfter = re.slice(nl.reEnd); + nlLast += nlAfter; // Handle nested stuff like *(*.js|!(*.json)), where open parens + // mean that we should *not* include the ) in the bit that is considered + // "after" the negated section. - }; - } + var openParensBefore = nlBefore.split('(').length - 1; + var cleanAfter = nlAfter; - styles.visible = { - get() { - return build.call(this, this._styles || [], true, 'visible'); + for (i = 0; i < openParensBefore; i++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, ''); } - }; - ansiStyles$2.color.closeRe = new RegExp(escapeStringRegexp$2(ansiStyles$2.color.close), 'g'); + nlAfter = cleanAfter; + var dollar = ''; - for (const model of Object.keys(ansiStyles$2.color.ansi)) { - if (skipModels.has(model)) { - continue; + if (nlAfter === '' && isSub !== SUBPARSE) { + dollar = '$'; } - styles[model] = { - get() { - const level = this.level; - return function () { - const open = ansiStyles$2.color[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles$2.color.close, - closeRe: ansiStyles$2.color.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); - }; - } + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast; + re = newRe; + } // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. - }; + + if (re !== '' && hasMagic) { + re = '(?=.)' + re; } - ansiStyles$2.bgColor.closeRe = new RegExp(escapeStringRegexp$2(ansiStyles$2.bgColor.close), 'g'); + if (addPatternStart) { + re = patternStart + re; + } // parsing just a piece of a larger pattern. - for (const model of Object.keys(ansiStyles$2.bgColor.ansi)) { - if (skipModels.has(model)) { - continue; - } - const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1); - styles[bgModel] = { - get() { - const level = this.level; - return function () { - const open = ansiStyles$2.bgColor[levelMapping[level]][model].apply(null, arguments); - const codes = { - open, - close: ansiStyles$2.bgColor.close, - closeRe: ansiStyles$2.bgColor.closeRe - }; - return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model); - }; - } + if (isSub === SUBPARSE) { + return [re, hasMagic]; + } // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. - }; + + if (!hasMagic) { + return globUnescape(pattern); } - const proto = Object.defineProperties(() => {}, styles); + var flags = options.nocase ? 'i' : ''; - function build(_styles, _empty, key) { - const builder = function () { - return applyStyle.apply(builder, arguments); - }; + try { + var regExp = new RegExp('^' + re + '$', flags); + } catch (er) { + // If it was an invalid regular expression, then it can't match + // anything. This trick looks for a character after the end of + // the string, which is of course impossible, except in multi-line + // mode, but it's not a /m regex. + return new RegExp('$.'); + } - builder._styles = _styles; - builder._empty = _empty; - const self = this; - Object.defineProperty(builder, 'level', { - enumerable: true, + regExp._glob = pattern; + regExp._src = re; + return regExp; +} - get() { - return self.level; - }, +minimatch.makeRe = function (pattern, options) { + return new Minimatch(pattern, options || {}).makeRe(); +}; - set(level) { - self.level = level; - } +Minimatch.prototype.makeRe = makeRe; - }); - Object.defineProperty(builder, 'enabled', { - enumerable: true, +function makeRe() { + if (this.regexp || this.regexp === false) return this.regexp; // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. - get() { - return self.enabled; - }, + var set = this.set; - set(enabled) { - self.enabled = enabled; - } + if (!set.length) { + this.regexp = false; + return this.regexp; + } - }); // See below for fix regarding invisible grey/dim combination on Windows + var options = this.options; + var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot; + var flags = options.nocase ? 'i' : ''; + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return p === GLOBSTAR ? twoStar : typeof p === 'string' ? regExpEscape(p) : p._src; + }).join('\\\/'); + }).join('|'); // must match entire pattern + // ending in a * or ** will make it less strict. - builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey'; // `__proto__` is used because we must return a function, but there is - // no way to create a function with a different prototype + re = '^(?:' + re + ')$'; // can match anything, as long as it's not this. - builder.__proto__ = proto; // eslint-disable-line no-proto + if (this.negate) re = '^(?!' + re + ').*$'; - return builder; + try { + this.regexp = new RegExp(re, flags); + } catch (ex) { + this.regexp = false; } - function applyStyle() { - // Support varags, but simply cast to string in case there's only one arg - const args = arguments; - const argsLen = args.length; - let str = String(arguments[0]); - - if (argsLen === 0) { - return ''; - } - - if (argsLen > 1) { - // Don't slice `arguments`, it prevents V8 optimizations - for (let a = 1; a < argsLen; a++) { - str += ' ' + args[a]; - } - } + return this.regexp; +} - if (!this.enabled || this.level <= 0 || !str) { - return this._empty ? '' : str; - } // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe, - // see https://github.com/chalk/chalk/issues/58 - // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop. +minimatch.match = function (list, pattern, options) { + options = options || {}; + var mm = new Minimatch(pattern, options); + list = list.filter(function (f) { + return mm.match(f); + }); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } - const originalDim = ansiStyles$2.dim.open; + return list; +}; - if (isSimpleWindowsTerm && this.hasGrey) { - ansiStyles$2.dim.open = ''; - } +Minimatch.prototype.match = match; - for (const code of this._styles.slice().reverse()) { - // Replace any instances already present with a re-opening code - // otherwise only the part of the string until said closing code - // will be colored, and the rest will simply be 'plain'. - str = code.open + str.replace(code.closeRe, code.open) + code.close; // Close the styling before a linebreak and reopen - // after next line to fix a bleed issue on macOS - // https://github.com/chalk/chalk/pull/92 +function match(f, partial) { + this.debug('match', f, this.pattern); // short-circuit in the case of busted things. + // comments, etc. - str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`); - } // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue + if (this.comment) return false; + if (this.empty) return f === ''; + if (f === '/' && partial) return true; + var options = this.options; // windows: need to use /, not \ + if (path$3.sep !== '/') { + f = f.split(path$3.sep).join('/'); + } // treat the test path as a set of pathparts. - ansiStyles$2.dim.open = originalDim; - return str; - } - function chalkTag(chalk, strings) { - if (!Array.isArray(strings)) { - // If chalk() was called by itself or with a string, - // return the string itself as a string. - return [].slice.call(arguments, 1).join(' '); - } + f = f.split(slashSplit); + this.debug(this.pattern, 'split', f); // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. - const args = [].slice.call(arguments, 2); - const parts = [strings.raw[0]]; + var set = this.set; + this.debug(this.pattern, 'set', set); // Find the basename of the path by looking for the last non-empty segment - for (let i = 1; i < strings.length; i++) { - parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&')); - parts.push(String(strings.raw[i])); - } + var filename; + var i; - return templates$2(chalk, parts.join('')); + for (i = f.length - 1; i >= 0; i--) { + filename = f[i]; + if (filename) break; } - Object.defineProperties(Chalk.prototype, styles); - module.exports = Chalk(); // eslint-disable-line new-cap - - module.exports.supportsColor = stdoutColor; - module.exports.default = module.exports; // For TypeScript -}); - -var lib$3 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.shouldHighlight = shouldHighlight; - exports.getChalk = getChalk; - exports.default = highlight; + for (i = 0; i < set.length; i++) { + var pattern = set[i]; + var file = f; - var _jsTokens = _interopRequireWildcard(jsTokens); + if (options.matchBase && pattern.length === 1) { + file = [filename]; + } - var _chalk = _interopRequireDefault(chalk$2); + var hit = this.matchOne(file, pattern, partial); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } + if (hit) { + if (options.flipNegate) return true; + return !this.negate; + } + } // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. - function _getRequireWildcardCache() { - if (typeof WeakMap !== "function") return null; - var cache = new WeakMap(); - _getRequireWildcardCache = function () { - return cache; - }; + if (options.flipNegate) return false; + return this.negate; +} // set partial to true to test if, for example, +// "/a/b" matches the start of "/*/b/*/d" +// Partial means, if you run out of file before you run +// out of pattern, then that's fine, as long as all +// the parts match. - return cache; - } - function _interopRequireWildcard(obj) { - if (obj && obj.__esModule) { - return obj; - } +Minimatch.prototype.matchOne = function (file, pattern, partial) { + var options = this.options; + this.debug('matchOne', { + 'this': this, + file: file, + pattern: pattern + }); + this.debug('matchOne', file.length, pattern.length); - if (obj === null || typeof obj !== "object" && typeof obj !== "function") { - return { - default: obj - }; - } + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + this.debug('matchOne loop'); + var p = pattern[pi]; + var f = file[fi]; + this.debug(pattern, p, f); // should be impossible. + // some invalid regexp stuff in the set. - var cache = _getRequireWildcardCache(); + if (p === false) return false; - if (cache && cache.has(obj)) { - return cache.get(obj); - } + if (p === GLOBSTAR) { + this.debug('GLOBSTAR', [pattern, p, f]); // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit - var newObj = {}; - var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + var fr = fi; + var pr = pi + 1; - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (pr === pl) { + this.debug('** at the end'); // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. - if (desc && (desc.get || desc.set)) { - Object.defineProperty(newObj, key, desc); - } else { - newObj[key] = obj[key]; + for (; fi < fl; fi++) { + if (file[fi] === '.' || file[fi] === '..' || !options.dot && file[fi].charAt(0) === '.') return false; } - } - } - newObj.default = obj; + return true; + } // ok, let's see if we can swallow whatever we can. - if (cache) { - cache.set(obj, newObj); - } - return newObj; - } + while (fr < fl) { + var swallowee = file[fr]; + this.debug('\nglobstar while', file, fr, pattern, pr, swallowee); // XXX remove this slice. Just pass the start index. - function getDefs(chalk) { - return { - keyword: chalk.cyan, - capitalized: chalk.yellow, - jsx_tag: chalk.yellow, - punctuator: chalk.yellow, - number: chalk.magenta, - string: chalk.green, - regex: chalk.magenta, - comment: chalk.grey, - invalid: chalk.white.bgRed.bold - }; - } + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug('globstar found match!', fr, fl, swallowee); // found a match. - const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - const JSX_TAG = /^[a-z][\w-]*$/i; - const BRACKET = /^[()[\]{}]$/; + return true; + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === '.' || swallowee === '..' || !options.dot && swallowee.charAt(0) === '.') { + this.debug('dot detected!', file, fr, pattern, pr); + break; + } // ** swallows a segment, and continue. - function getTokenType(match) { - const [offset, text] = match.slice(-2); - const token = (0, _jsTokens.matchToToken)(match); - if (token.type === "name") { - if ((0, lib$2.isKeyword)(token.value) || (0, lib$2.isReservedWord)(token.value)) { - return "keyword"; - } + this.debug('globstar swallow a segment, and continue'); + fr++; + } + } // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then - if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == ">> no match, partial?', file, fr, pattern, pr); + if (fr === fl) return true; } - } - - if (token.type === "punctuator" && BRACKET.test(token.value)) { - return "bracket"; - } - if (token.type === "invalid" && (token.value === "@" || token.value === "#")) { - return "punctuator"; - } + return false; + } // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. - return token.type; - } - function highlightTokens(defs, text) { - return text.replace(_jsTokens.default, function (...args) { - const type = getTokenType(args); - const colorize = defs[type]; + var hit; - if (colorize) { - return args[0].split(NEWLINE).map(str => colorize(str)).join("\n"); + if (typeof p === 'string') { + if (options.nocase) { + hit = f.toLowerCase() === p.toLowerCase(); } else { - return args[0]; + hit = f === p; } - }); - } - function shouldHighlight(options) { - return _chalk.default.supportsColor || options.forceColor; - } + this.debug('string match', p, f, hit); + } else { + hit = f.match(p); + this.debug('pattern match', p, f, hit); + } - function getChalk(options) { - let chalk = _chalk.default; + if (!hit) return false; + } // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + // now either we fell off the end of the pattern, or we're done. - if (options.forceColor) { - chalk = new _chalk.default.constructor({ - enabled: true, - level: 1 - }); - } - return chalk; - } + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true; + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial; + } else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + var emptyFileEnd = fi === fl - 1 && file[fi] === ''; + return emptyFileEnd; + } // should be unreachable. - function highlight(code, options = {}) { - if (shouldHighlight(options)) { - const chalk = getChalk(options); - const defs = getDefs(chalk); - return highlightTokens(defs, code); - } else { - return code; - } - } -}); -var lib$4 = createCommonjsModule(function (module, exports) { + throw new Error('wtf?'); +}; // replace stuff like \* with * - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.codeFrameColumns = codeFrameColumns; - exports.default = _default; - var _highlight = _interopRequireWildcard(lib$3); +function globUnescape(s) { + return s.replace(/\\(.)/g, '$1'); +} - function _getRequireWildcardCache() { - if (typeof WeakMap !== "function") return null; - var cache = new WeakMap(); +function regExpEscape(s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); +} - _getRequireWildcardCache = function () { - return cache; - }; +const copyProperty = (to, from, property, ignoreNonConfigurable) => { + // `Function#length` should reflect the parameters of `to` not `from` since we keep its body. + // `Function#prototype` is non-writable and non-configurable so can never be modified. + if (property === 'length' || property === 'prototype') { + return; + } // `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here. - return cache; + + if (property === 'arguments' || property === 'caller') { + return; } - function _interopRequireWildcard(obj) { - if (obj && obj.__esModule) { - return obj; - } + const toDescriptor = Object.getOwnPropertyDescriptor(to, property); + const fromDescriptor = Object.getOwnPropertyDescriptor(from, property); - if (obj === null || typeof obj !== "object" && typeof obj !== "function") { - return { - default: obj - }; - } + if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) { + return; + } - var cache = _getRequireWildcardCache(); + Object.defineProperty(to, property, fromDescriptor); +}; // `Object.defineProperty()` throws if the property exists, is not configurable and either: +// - one its descriptors is changed +// - it is non-writable and its value is changed - if (cache && cache.has(obj)) { - return cache.get(obj); - } - var newObj = {}; - var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; +const canCopyProperty = function (toDescriptor, fromDescriptor) { + return toDescriptor === undefined || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value); +}; - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; +const changePrototype = (to, from) => { + const fromPrototype = Object.getPrototypeOf(from); - if (desc && (desc.get || desc.set)) { - Object.defineProperty(newObj, key, desc); - } else { - newObj[key] = obj[key]; - } - } - } + if (fromPrototype === Object.getPrototypeOf(to)) { + return; + } - newObj.default = obj; + Object.setPrototypeOf(to, fromPrototype); +}; - if (cache) { - cache.set(obj, newObj); - } +const wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\n${fromBody}`; - return newObj; - } +const toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString'); +const toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name'); // We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected. +// We use `bind()` instead of a closure for the same reason. +// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times. - let deprecationWarningShown = false; +const changeToString = (to, from, name) => { + const withName = name === '' ? '' : `with ${name.trim()}() `; + const newToString = wrappedToString.bind(null, withName, from.toString()); // Ensure `to.toString.toString` is non-enumerable and has the same `same` - function getDefs(chalk) { - return { - gutter: chalk.grey, - marker: chalk.red.bold, - message: chalk.red.bold - }; - } + Object.defineProperty(newToString, 'name', toStringName); + Object.defineProperty(to, 'toString', Object.assign(Object.assign({}, toStringDescriptor), {}, { + value: newToString + })); +}; - const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; +const mimicFn = (to, from, { + ignoreNonConfigurable = false +} = {}) => { + const { + name + } = to; - function getMarkerLines(loc, source, opts) { - const startLoc = Object.assign({ - column: 0, - line: -1 - }, loc.start); - const endLoc = Object.assign({}, startLoc, loc.end); - const { - linesAbove = 2, - linesBelow = 3 - } = opts || {}; - const startLine = startLoc.line; - const startColumn = startLoc.column; - const endLine = endLoc.line; - const endColumn = endLoc.column; - let start = Math.max(startLine - (linesAbove + 1), 0); - let end = Math.min(source.length, endLine + linesBelow); + for (const property of Reflect.ownKeys(from)) { + copyProperty(to, from, property, ignoreNonConfigurable); + } - if (startLine === -1) { - start = 0; - } + changePrototype(to, from); + changeToString(to, from, name); + return to; +}; - if (endLine === -1) { - end = source.length; - } +var mimicFn_1 = mimicFn; - const lineDiff = endLine - startLine; - const markerLines = {}; +var pDefer = () => { + const ret = {}; + ret.promise = new Promise((resolve, reject) => { + ret.resolve = resolve; + ret.reject = reject; + }); + return ret; +}; - if (lineDiff) { - for (let i = 0; i <= lineDiff; i++) { - const lineNumber = i + startLine; +var dist$2 = createCommonjsModule(function (module, exports) { - if (!startColumn) { - markerLines[lineNumber] = true; - } else if (i === 0) { - const sourceLength = source[lineNumber - 1].length; - markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; - } else if (i === lineDiff) { - markerLines[lineNumber] = [0, endColumn]; - } else { - const sourceLength = source[lineNumber - i].length; - markerLines[lineNumber] = [0, sourceLength]; + var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); } } - } else { - if (startColumn === endColumn) { - if (startColumn) { - markerLines[startLine] = [startColumn, 0]; - } else { - markerLines[startLine] = true; + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); } - } else { - markerLines[startLine] = [startColumn, endColumn - startColumn]; } - } - return { - start, - end, - markerLines - }; - } + function step(result) { + result.done ? resolve(result.value) : new P(function (resolve) { + resolve(result.value); + }).then(fulfilled, rejected); + } - function codeFrameColumns(rawLines, loc, opts = {}) { - const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); - const chalk = (0, _highlight.getChalk)(opts); - const defs = getDefs(chalk); + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; - const maybeHighlight = (chalkFn, string) => { - return highlighted ? chalkFn(string) : string; + var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod }; + }; - const lines = rawLines.split(NEWLINE); - const { - start, - end, - markerLines - } = getMarkerLines(loc, lines, opts); - const hasColumns = loc.start && typeof loc.start.column === "number"; - const numberMaxWidth = String(end).length; - const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; - let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => { - const number = start + 1 + index; - const paddedNumber = ` ${number}`.slice(-numberMaxWidth); - const gutter = ` ${paddedNumber} | `; - const hasMarker = markerLines[number]; - const lastMarkerLine = !markerLines[number + 1]; - - if (hasMarker) { - let markerLine = ""; - - if (Array.isArray(hasMarker)) { - const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); - const numberOfMarkers = hasMarker[1] || 1; - markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); - - if (lastMarkerLine && opts.message) { - markerLine += " " + maybeHighlight(defs.message, opts.message); - } - } + Object.defineProperty(exports, "__esModule", { + value: true + }); - return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join(""); - } else { - return ` ${maybeHighlight(defs.gutter, gutter)}${line}`; - } - }).join("\n"); + const p_defer_1 = __importDefault(pDefer); - if (opts.message && !hasColumns) { - frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; - } + function mapAgeCleaner(map, property = 'maxAge') { + let processingKey; + let processingTimer; + let processingDeferred; - if (highlighted) { - return chalk.reset(frame); - } else { - return frame; - } - } + const cleanup = () => __awaiter(this, void 0, void 0, function* () { + if (processingKey !== undefined) { + // If we are already processing an item, we can safely exit + return; + } - function _default(rawLines, lineNumber, colNumber, opts = {}) { - if (!deprecationWarningShown) { - deprecationWarningShown = true; - const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; + const setupTimer = item => __awaiter(this, void 0, void 0, function* () { + processingDeferred = p_defer_1.default(); + const delay = item[1][property] - Date.now(); - if (process.emitWarning) { - process.emitWarning(message, "DeprecationWarning"); - } else { - const deprecationError = new Error(message); - deprecationError.name = "DeprecationWarning"; - console.warn(new Error(message)); - } - } + if (delay <= 0) { + // Remove the item immediately if the delay is equal to or below 0 + map.delete(item[0]); + processingDeferred.resolve(); + return; + } // Keep track of the current processed key - colNumber = Math.max(colNumber, 0); - const location = { - start: { - column: colNumber, - line: lineNumber - } - }; - return codeFrameColumns(rawLines, location, opts); - } -}); -const { - ConfigError: ConfigError$1 -} = errors; -const { - locStart: locStart$1, - locEnd: locEnd$1 -} = loc; // Use defineProperties()/getOwnPropertyDescriptor() to prevent -// triggering the parsers getters. + processingKey = item[0]; + processingTimer = setTimeout(() => { + // Remove the item when the timeout fires + map.delete(item[0]); -const ownNames = Object.getOwnPropertyNames; -const ownDescriptor = Object.getOwnPropertyDescriptor; + if (processingDeferred) { + processingDeferred.resolve(); + } + }, delay); // tslint:disable-next-line:strict-type-predicates -function getParsers(options) { - const parsers = {}; + if (typeof processingTimer.unref === 'function') { + // Don't hold up the process from exiting + processingTimer.unref(); + } - for (const plugin of options.plugins) { - // TODO: test this with plugins + return processingDeferred.promise; + }); - /* istanbul ignore next */ - if (!plugin.parsers) { - continue; - } + try { + for (const entry of map) { + yield setupTimer(entry); + } + } catch (_a) {// Do nothing if an error occurs, this means the timer was cleaned up and we should stop processing + } - for (const name of ownNames(plugin.parsers)) { - Object.defineProperty(parsers, name, ownDescriptor(plugin.parsers, name)); - } - } + processingKey = undefined; + }); - return parsers; -} + const reset = () => { + processingKey = undefined; -function resolveParser(opts, parsers) { - parsers = parsers || getParsers(opts); + if (processingTimer !== undefined) { + clearTimeout(processingTimer); + processingTimer = undefined; + } - if (typeof opts.parser === "function") { - // Custom parser API always works with JavaScript. - return { - parse: opts.parser, - astFormat: "estree", - locStart: locStart$1, - locEnd: locEnd$1 + if (processingDeferred !== undefined) { + // tslint:disable-line:early-exit + processingDeferred.reject(undefined); + processingDeferred = undefined; + } }; - } - if (typeof opts.parser === "string") { - if (Object.prototype.hasOwnProperty.call(parsers, opts.parser)) { - return parsers[opts.parser]; - } + const originalSet = map.set.bind(map); - try { - return { - parse: require(path__default['default'].resolve(process.cwd(), opts.parser)), - astFormat: "estree", - locStart: locStart$1, - locEnd: locEnd$1 - }; - } catch (err) { - /* istanbul ignore next */ - throw new ConfigError$1(`Couldn't resolve parser "${opts.parser}"`); - } - } -} + map.set = (key, value) => { + if (map.has(key)) { + // If the key already exist, remove it so we can add it back at the end of the map. + map.delete(key); + } // Call the original `map.set` -function parse(text, opts) { - const parsers = getParsers(opts); // Create a new object {parserName: parseFn}. Uses defineProperty() to only call - // the parsers getters when actually calling the parser `parse` function. - const parsersForCustomParserApi = Object.keys(parsers).reduce((object, parserName) => Object.defineProperty(object, parserName, { - enumerable: true, + const result = originalSet(key, value); // If we are already processing a key and the key added is the current processed key, stop processing it - get() { - return parsers[parserName].parse; - } + if (processingKey && processingKey === key) { + reset(); + } // Always run the cleanup method in case it wasn't started yet - }), {}); - const parser = resolveParser(opts, parsers); - try { - if (parser.preprocess) { - text = parser.preprocess(text, opts); - } + cleanup(); // tslint:disable-line:no-floating-promises - return { - text, - ast: parser.parse(text, parsersForCustomParserApi, opts) + return result; }; - } catch (error) { - const { - loc - } = error; - - if (loc) { - const codeFrame = lib$4; - error.codeFrame = codeFrame.codeFrameColumns(text, loc, { - highlightCode: true - }); - error.message += "\n" + error.codeFrame; - throw error; - } - /* istanbul ignore next */ - - - throw error.stack; - } -} - -var parser = { - parse, - resolveParser -}; - -const { - UndefinedParserError: UndefinedParserError$1 -} = errors; -const { - getSupportInfo: getSupportInfo$1 -} = support; -const { - resolveParser: resolveParser$1 -} = parser; -const hiddenDefaults = { - astFormat: "estree", - printer: {}, - originalText: undefined, - locStart: null, - locEnd: null -}; // Copy options and fill in default values. - -function normalize$1(options, opts) { - opts = opts || {}; - const rawOptions = Object.assign({}, options); - const supportOptions = getSupportInfo$1({ - plugins: options.plugins, - showUnreleased: true, - showDeprecated: true - }).options; - const defaults = Object.assign({}, hiddenDefaults, fromPairs_1(supportOptions.filter(optionInfo => optionInfo.default !== undefined).map(option => [option.name, option.default]))); - if (!rawOptions.parser) { - if (!rawOptions.filepath) { - const logger = opts.logger || console; - logger.warn("No parser and no filepath given, using 'babel' the parser now " + "but this will throw an error in the future. " + "Please specify a parser or a filepath so one can be inferred."); - rawOptions.parser = "babel"; - } else { - rawOptions.parser = inferParser(rawOptions.filepath, rawOptions.plugins); + cleanup(); // tslint:disable-line:no-floating-promises - if (!rawOptions.parser) { - throw new UndefinedParserError$1(`No parser could be inferred for file: ${rawOptions.filepath}`); - } - } + return map; } - const parser = resolveParser$1(optionsNormalizer.normalizeApiOptions(rawOptions, [supportOptions.find(x => x.name === "parser")], { - passThrough: true, - logger: false - })); - rawOptions.astFormat = parser.astFormat; - rawOptions.locEnd = parser.locEnd; - rawOptions.locStart = parser.locStart; - const plugin = getPlugin(rawOptions); - rawOptions.printer = plugin.printers[rawOptions.astFormat]; - const pluginDefaults = supportOptions.filter(optionInfo => optionInfo.pluginDefaults && optionInfo.pluginDefaults[plugin.name] !== undefined).reduce((reduced, optionInfo) => Object.assign(reduced, { - [optionInfo.name]: optionInfo.pluginDefaults[plugin.name] - }), {}); - const mixedDefaults = Object.assign({}, defaults, pluginDefaults); - Object.keys(mixedDefaults).forEach(k => { - if (rawOptions[k] == null) { - rawOptions[k] = mixedDefaults[k]; - } - }); + exports.default = mapAgeCleaner; // Add support for CJS - if (rawOptions.parser === "json") { - rawOptions.trailingComma = "none"; - } + module.exports = mapAgeCleaner; + module.exports.default = mapAgeCleaner; +}); - return optionsNormalizer.normalizeApiOptions(rawOptions, supportOptions, Object.assign({ - passThrough: Object.keys(hiddenDefaults) - }, opts)); -} +const decoratorInstanceMap = new WeakMap(); +const cacheStore = new WeakMap(); +/** +[Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input. -function getPlugin(options) { - const { - astFormat - } = options; // TODO: test this with plugins +@param fn - Function to be memoized. - /* istanbul ignore next */ +@example +``` +import mem = require('mem'); - if (!astFormat) { - throw new Error("getPlugin() requires astFormat to be set"); - } +let i = 0; +const counter = () => ++i; +const memoized = mem(counter); - const printerPlugin = options.plugins.find(plugin => plugin.printers && plugin.printers[astFormat]); // TODO: test this with plugins +memoized('foo'); +//=> 1 - /* istanbul ignore next */ +// Cached as it's the same arguments +memoized('foo'); +//=> 1 - if (!printerPlugin) { - throw new Error(`Couldn't find plugin for AST format "${astFormat}"`); - } +// Not cached anymore as the arguments changed +memoized('bar'); +//=> 2 - return printerPlugin; -} +memoized('bar'); +//=> 2 +``` +*/ -function getInterpreter(filepath) { - /* istanbul ignore next */ - if (typeof filepath !== "string") { - return ""; +const mem = (fn, { + cacheKey, + cache = new Map(), + maxAge +} = {}) => { + if (typeof maxAge === 'number') { + // TODO: Drop after https://github.com/SamVerschueren/map-age-cleaner/issues/5 + // @ts-expect-error + dist$2(cache); } - let fd; - - try { - fd = fs__default['default'].openSync(filepath, "r"); - } catch (err) { - // istanbul ignore next - return ""; - } + const memoized = function (...arguments_) { + const key = cacheKey ? cacheKey(arguments_) : arguments_[0]; + const cacheItem = cache.get(key); - try { - const liner = new readlines(fd); - const firstLine = liner.next().toString("utf8"); // #!/bin/env node, #!/usr/bin/env node + if (cacheItem) { + return cacheItem.data; + } - const m1 = firstLine.match(/^#!\/(?:usr\/)?bin\/env\s+(\S+)/); + const result = fn.apply(this, arguments_); + cache.set(key, { + data: result, + maxAge: maxAge ? Date.now() + maxAge : Number.POSITIVE_INFINITY + }); + return result; + }; - if (m1) { - return m1[1]; - } // #!/bin/node, #!/usr/bin/node, #!/usr/local/bin/node + mimicFn_1(memoized, fn, { + ignoreNonConfigurable: true + }); + cacheStore.set(memoized, cache); + return memoized; +}; +/** +@returns A [decorator](https://github.com/tc39/proposal-decorators) to memoize class methods or static class methods. +@example +``` +import mem = require('mem'); - const m2 = firstLine.match(/^#!\/(?:usr\/(?:local\/)?)?bin\/(\S+)/); +class Example { + index = 0 - if (m2) { - return m2[1]; + @mem.decorator() + counter() { + return ++this.index; } +} - return ""; - } catch (err) { - // There are some weird cases where paths are missing, causing Jest - // failures. It's unclear what these correspond to in the real world. +class ExampleWithOptions { + index = 0 - /* istanbul ignore next */ - return ""; - } finally { - try { - // There are some weird cases where paths are missing, causing Jest - // failures. It's unclear what these correspond to in the real world. - fs__default['default'].closeSync(fd); - } catch (err) {// nop + @mem.decorator({maxAge: 1000}) + counter() { + return ++this.index; } - } } +``` +*/ -function inferParser(filepath, plugins) { - const filename = path__default['default'].basename(filepath).toLowerCase(); - const languages = getSupportInfo$1({ - plugins - }).languages.filter(language => language.since !== null); // If the file has no extension, we can try to infer the language from the - // interpreter in the shebang line, if any; but since this requires FS access, - // do it last. - let language = languages.find(language => language.extensions && language.extensions.some(extension => filename.endsWith(extension)) || language.filenames && language.filenames.some(name => name.toLowerCase() === filename)); +mem.decorator = (options = {}) => (target, propertyKey, descriptor) => { + const input = target[propertyKey]; - if (!language && !filename.includes(".")) { - const interpreter = getInterpreter(filepath); - language = languages.find(language => language.interpreters && language.interpreters.includes(interpreter)); + if (typeof input !== 'function') { + throw new TypeError('The decorated value must be a function'); } - return language && language.parsers[0]; -} + delete descriptor.value; + delete descriptor.writable; -var options$1 = { - normalize: normalize$1, - hiddenDefaults, - inferParser + descriptor.get = function () { + if (!decoratorInstanceMap.has(this)) { + const value = mem(input, options); + decoratorInstanceMap.set(this, value); + return value; + } + + return decoratorInstanceMap.get(this); + }; }; +/** +Clear all cached data of a memoized function. -function massageAST(ast, options, parent) { - if (Array.isArray(ast)) { - return ast.map(e => massageAST(e, options, parent)).filter(Boolean); - } +@param fn - Memoized function. +*/ - if (!ast || typeof ast !== "object") { - return ast; - } - const newObj = {}; +mem.clear = fn => { + const cache = cacheStore.get(fn); - for (const key of Object.keys(ast)) { - if (typeof ast[key] !== "function") { - newObj[key] = massageAST(ast[key], options, ast); - } + if (!cache) { + throw new TypeError('Can\'t clear a function that was not memoized!'); } - if (options.printer.massageAstNode) { - const result = options.printer.massageAstNode(ast, newObj, parent); - - if (result === null) { - return; - } - - if (result) { - return result; - } + if (typeof cache.clear !== 'function') { + throw new TypeError('The cache Map can\'t be cleared!'); } - return newObj; -} - -var massageAst = massageAST; + cache.clear(); +}; -/** @type {import("assert")} */ +var dist$1 = mem; +var thirdParty = require("./third-party.js"); -const { - concat: concat$2, - line: line$1, - hardline: hardline$1, - breakParent: breakParent$1, - indent: indent$1, - lineSuffix: lineSuffix$1, - join: join$1, - cursor: cursor$2 -} = document.builders; -const { - hasNewline: hasNewline$1, - skipNewline: skipNewline$1, - skipSpaces: skipSpaces$1, - isPreviousLineEmpty: isPreviousLineEmpty$1, - addLeadingComment: addLeadingComment$1, - addDanglingComment: addDanglingComment$1, - addTrailingComment: addTrailingComment$1 -} = util; -const childNodesCacheKey = Symbol("child-nodes"); +const ParserEND = 0x110000; -function getSortedChildNodes(node, options, resultArray) { - if (!node) { - return; +class ParserError extends Error { + /* istanbul ignore next */ + constructor(msg, filename, linenumber) { + super('[ParserError] ' + msg, filename, linenumber); + this.name = 'ParserError'; + this.code = 'ParserError'; + if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError); } - const { - printer, - locStart, - locEnd - } = options; - - if (resultArray) { - if (printer.canAttachComment && printer.canAttachComment(node)) { - // This reverse insertion sort almost always takes constant - // time because we almost always (maybe always?) append the - // nodes in order anyway. - let i; - - for (i = resultArray.length - 1; i >= 0; --i) { - if (locStart(resultArray[i]) <= locStart(node) && locEnd(resultArray[i]) <= locEnd(node)) { - break; - } - } +} - resultArray.splice(i + 1, 0, node); - return; - } - } else if (node[childNodesCacheKey]) { - return node[childNodesCacheKey]; +class State { + constructor(parser) { + this.parser = parser; + this.buf = ''; + this.returned = null; + this.result = null; + this.resultTable = null; + this.resultArr = null; } - const childNodes = printer.getCommentChildNodes && printer.getCommentChildNodes(node, options) || typeof node === "object" && Object.keys(node).filter(n => n !== "enclosingNode" && n !== "precedingNode" && n !== "followingNode" && n !== "tokens" && n !== "comments").map(n => node[n]); - - if (!childNodes) { - return; - } +} - if (!resultArray) { - Object.defineProperty(node, childNodesCacheKey, { - value: resultArray = [], - enumerable: false - }); +class Parser { + constructor() { + this.pos = 0; + this.col = 0; + this.line = 0; + this.obj = {}; + this.ctx = this.obj; + this.stack = []; + this._buf = ''; + this.char = null; + this.ii = 0; + this.state = new State(this.parseStart); } - childNodes.forEach(childNode => { - getSortedChildNodes(childNode, options, resultArray); - }); - return resultArray; -} // As efficiently as possible, decorate the comment object with -// .precedingNode, .enclosingNode, and/or .followingNode properties, at -// least one of which is guaranteed to be defined. - - -function decorateComment(node, comment, options) { - const { - locStart, - locEnd - } = options; - const childNodes = getSortedChildNodes(node, options); - let precedingNode; - let followingNode; // Time to dust off the old binary search robes and wizard hat. - - let left = 0; - let right = childNodes.length; - - while (left < right) { - const middle = left + right >> 1; - const child = childNodes[middle]; + parse(str) { + /* istanbul ignore next */ + if (str.length === 0 || str.length == null) return; + this._buf = String(str); + this.ii = -1; + this.char = -1; + let getNext; - if (locStart(child) - locStart(comment) <= 0 && locEnd(comment) - locEnd(child) <= 0) { - // The comment is completely contained by this child node. - comment.enclosingNode = child; - decorateComment(child, comment, options); - return; // Abandon the binary search at this level. + while (getNext === false || this.nextChar()) { + getNext = this.runOne(); } - if (locEnd(child) - locStart(comment) <= 0) { - // This child node falls completely before the comment. - // Because we will never consider this node or any nodes - // before it again, this node must be the closest preceding - // node we have encountered so far. - precedingNode = child; - left = middle + 1; - continue; - } + this._buf = null; + } - if (locEnd(comment) - locStart(child) <= 0) { - // This child node falls completely after the comment. - // Because we will never consider this node or any nodes after - // it again, this node must be the closest following node we - // have encountered so far. - followingNode = child; - right = middle; - continue; + nextChar() { + if (this.char === 0x0A) { + ++this.line; + this.col = -1; } - /* istanbul ignore next */ + ++this.ii; + this.char = this._buf.codePointAt(this.ii); + ++this.pos; + ++this.col; + return this.haveBuffer(); + } - throw new Error("Comment location overlaps with node location"); - } // We don't want comments inside of different expressions inside of the same - // template literal to move to another expression. + haveBuffer() { + return this.ii < this._buf.length; + } + runOne() { + return this.state.parser.call(this, this.state.returned); + } - if (comment.enclosingNode && comment.enclosingNode.type === "TemplateLiteral") { - const { - quasis - } = comment.enclosingNode; - const commentIndex = findExpressionIndexForComment(quasis, comment, options); + finish() { + this.char = ParserEND; + let last; - if (precedingNode && findExpressionIndexForComment(quasis, precedingNode, options) !== commentIndex) { - precedingNode = null; - } + do { + last = this.state.parser; + this.runOne(); + } while (this.state.parser !== last); - if (followingNode && findExpressionIndexForComment(quasis, followingNode, options) !== commentIndex) { - followingNode = null; - } + this.ctx = null; + this.state = null; + this._buf = null; + return this.obj; } - if (precedingNode) { - comment.precedingNode = precedingNode; + next(fn) { + /* istanbul ignore next */ + if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn)); + this.state.parser = fn; } - if (followingNode) { - comment.followingNode = followingNode; + goto(fn) { + this.next(fn); + return this.runOne(); } -} -function attach(comments, ast, text, options) { - if (!Array.isArray(comments)) { - return; + call(fn, returnWith) { + if (returnWith) this.next(returnWith); + this.stack.push(this.state); + this.state = new State(fn); } - const tiesToBreak = []; - const { - locStart, - locEnd - } = options; - comments.forEach((comment, i) => { - if (options.parser === "json" || options.parser === "json5" || options.parser === "__js_expression" || options.parser === "__vue_expression") { - if (locStart(comment) - locStart(ast) <= 0) { - addLeadingComment$1(ast, comment); - return; - } - - if (locEnd(comment) - locEnd(ast) >= 0) { - addTrailingComment$1(ast, comment); - return; - } - } - - decorateComment(ast, comment, options); - const { - precedingNode, - enclosingNode, - followingNode - } = comment; - const pluginHandleOwnLineComment = options.printer.handleComments && options.printer.handleComments.ownLine ? options.printer.handleComments.ownLine : () => false; - const pluginHandleEndOfLineComment = options.printer.handleComments && options.printer.handleComments.endOfLine ? options.printer.handleComments.endOfLine : () => false; - const pluginHandleRemainingComment = options.printer.handleComments && options.printer.handleComments.remaining ? options.printer.handleComments.remaining : () => false; - const isLastComment = comments.length - 1 === i; + callNow(fn, returnWith) { + this.call(fn, returnWith); + return this.runOne(); + } - if (hasNewline$1(text, locStart(comment), { - backwards: true - })) { - // If a comment exists on its own line, prefer a leading comment. - // We also need to check if it's the first line of the file. - if (pluginHandleOwnLineComment(comment, text, options, ast, isLastComment)) ; else if (followingNode) { - // Always a leading comment. - addLeadingComment$1(followingNode, comment); - } else if (precedingNode) { - addTrailingComment$1(precedingNode, comment); - } else if (enclosingNode) { - addDanglingComment$1(enclosingNode, comment); - } else { - // There are no nodes, let's attach it to the root of the ast + return(value) { + /* istanbul ignore next */ + if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow')); + if (value === undefined) value = this.state.buf; + this.state = this.stack.pop(); + this.state.returned = value; + } - /* istanbul ignore next */ - addDanglingComment$1(ast, comment); - } - } else if (hasNewline$1(text, locEnd(comment))) { - if (pluginHandleEndOfLineComment(comment, text, options, ast, isLastComment)) ; else if (precedingNode) { - // There is content before this comment on the same line, but - // none after it, so prefer a trailing comment of the previous node. - addTrailingComment$1(precedingNode, comment); - } else if (followingNode) { - addLeadingComment$1(followingNode, comment); - } else if (enclosingNode) { - addDanglingComment$1(enclosingNode, comment); - } else { - // There are no nodes, let's attach it to the root of the ast + returnNow(value) { + this.return(value); + return this.runOne(); + } - /* istanbul ignore next */ - addDanglingComment$1(ast, comment); - } - } else { - if (pluginHandleRemainingComment(comment, text, options, ast, isLastComment)) ; else if (precedingNode && followingNode) { - // Otherwise, text exists both before and after the comment on - // the same line. If there is both a preceding and following - // node, use a tie-breaking algorithm to determine if it should - // be attached to the next or previous node. In the last case, - // simply attach the right node; - const tieCount = tiesToBreak.length; + consume() { + /* istanbul ignore next */ + if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer')); + this.state.buf += this._buf[this.ii]; + } - if (tieCount > 0) { - const lastTie = tiesToBreak[tieCount - 1]; + error(err) { + err.line = this.line; + err.col = this.col; + err.pos = this.pos; + return err; + } + /* istanbul ignore next */ - if (lastTie.followingNode !== comment.followingNode) { - breakTies(tiesToBreak, text, options); - } - } - tiesToBreak.push(comment); - } else if (precedingNode) { - addTrailingComment$1(precedingNode, comment); - } else if (followingNode) { - addLeadingComment$1(followingNode, comment); - } else if (enclosingNode) { - addDanglingComment$1(enclosingNode, comment); - } else { - // There are no nodes, let's attach it to the root of the ast + parseStart() { + throw new ParserError('Must declare a parseStart method'); + } - /* istanbul ignore next */ - addDanglingComment$1(ast, comment); - } - } - }); - breakTies(tiesToBreak, text, options); - comments.forEach(comment => { - // These node references were useful for breaking ties, but we - // don't need them anymore, and they create cycles in the AST that - // may lead to infinite recursion if we don't delete them here. - delete comment.precedingNode; - delete comment.enclosingNode; - delete comment.followingNode; - }); } -function breakTies(tiesToBreak, text, options) { - const tieCount = tiesToBreak.length; +Parser.END = ParserEND; +Parser.Error = ParserError; +var parser = Parser; - if (tieCount === 0) { - return; +var createDatetime = value => { + const date = new Date(value); + /* istanbul ignore if */ + + if (isNaN(date)) { + throw new TypeError('Invalid Datetime'); + } else { + return date; } +}; - const { - precedingNode, - followingNode, - enclosingNode - } = tiesToBreak[0]; - const gapRegExp = options.printer.getGapRegex && options.printer.getGapRegex(enclosingNode) || /^[\s(]*$/; - let gapEndPos = options.locStart(followingNode); // Iterate backwards through tiesToBreak, examining the gaps - // between the tied comments. In order to qualify as leading, a - // comment must be separated from followingNode by an unbroken series of - // gaps (or other comments). Gaps should only contain whitespace or open - // parentheses. +var formatNum = (d, num) => { + num = String(num); - let indexOfFirstLeadingComment; + while (num.length < d) num = '0' + num; - for (indexOfFirstLeadingComment = tieCount; indexOfFirstLeadingComment > 0; --indexOfFirstLeadingComment) { - const comment = tiesToBreak[indexOfFirstLeadingComment - 1]; - assert__default['default'].strictEqual(comment.precedingNode, precedingNode); - assert__default['default'].strictEqual(comment.followingNode, followingNode); - const gap = text.slice(options.locEnd(comment), gapEndPos); + return num; +}; - if (gapRegExp.test(gap)) { - gapEndPos = options.locStart(comment); - } else { - // The gap string contained something other than whitespace or open - // parentheses. - break; - } +class FloatingDateTime extends Date { + constructor(value) { + super(value + 'Z'); + this.isFloating = true; } - tiesToBreak.forEach((comment, i) => { - if (i < indexOfFirstLeadingComment) { - addTrailingComment$1(precedingNode, comment); - } else { - addLeadingComment$1(followingNode, comment); - } - }); - - for (const node of [precedingNode, followingNode]) { - if (node.comments && node.comments.length > 1) { - node.comments.sort((a, b) => options.locStart(a) - options.locStart(b)); - } + toISOString() { + const date = `${this.getUTCFullYear()}-${formatNum(2, this.getUTCMonth() + 1)}-${formatNum(2, this.getUTCDate())}`; + const time = `${formatNum(2, this.getUTCHours())}:${formatNum(2, this.getUTCMinutes())}:${formatNum(2, this.getUTCSeconds())}.${formatNum(3, this.getUTCMilliseconds())}`; + return `${date}T${time}`; } - tiesToBreak.length = 0; } -function printComment(commentPath, options) { - const comment = commentPath.getValue(); - comment.printed = true; - return options.printer.printComment(commentPath, options); -} +var createDatetimeFloat = value => { + const date = new FloatingDateTime(value); + /* istanbul ignore if */ -function findExpressionIndexForComment(quasis, comment, options) { - const startPos = options.locStart(comment) - 1; + if (isNaN(date)) { + throw new TypeError('Invalid Datetime'); + } else { + return date; + } +}; - for (let i = 1; i < quasis.length; ++i) { - if (startPos < options.locStart(quasis[i])) { - return i - 1; - } - } // We haven't found it, it probably means that some of the locations are off. - // Let's just return the first one. +const DateTime = global.Date; - /* istanbul ignore next */ +class Date$1 extends DateTime { + constructor(value) { + super(value); + this.isDate = true; + } + toISOString() { + return `${this.getUTCFullYear()}-${formatNum(2, this.getUTCMonth() + 1)}-${formatNum(2, this.getUTCDate())}`; + } - return 0; } -function printLeadingComment(commentPath, options) { - const comment = commentPath.getValue(); - const contents = printComment(commentPath, options); - /* istanbul ignore next */ +var createDate = value => { + const date = new Date$1(value); + /* istanbul ignore if */ - if (!contents) { - return ""; + if (isNaN(date)) { + throw new TypeError('Invalid Datetime'); + } else { + return date; } +}; - const isBlock = options.printer.isBlockComment && options.printer.isBlockComment(comment); // Leading block comments should see if they need to stay on the - // same line or not. +class Time extends Date { + constructor(value) { + super(`0000-01-01T${value}Z`); + this.isTime = true; + } - if (isBlock) { - const lineBreak = hasNewline$1(options.originalText, options.locEnd(comment)) ? hasNewline$1(options.originalText, options.locStart(comment), { - backwards: true - }) ? hardline$1 : line$1 : " "; - return concat$2([contents, lineBreak]); + toISOString() { + return `${formatNum(2, this.getUTCHours())}:${formatNum(2, this.getUTCMinutes())}:${formatNum(2, this.getUTCSeconds())}.${formatNum(3, this.getUTCMilliseconds())}`; } - return concat$2([contents, hardline$1]); } -function printTrailingComment(commentPath, options) { - const comment = commentPath.getValue(); - const contents = printComment(commentPath, options); - /* istanbul ignore next */ +var createTime = value => { + const date = new Time(value); + /* istanbul ignore if */ - if (!contents) { - return ""; + if (isNaN(date)) { + throw new TypeError('Invalid Datetime'); + } else { + return date; } +}; - const { - printer, - originalText, - locStart - } = options; - const isBlock = printer.isBlockComment && printer.isBlockComment(comment); +/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ - if (hasNewline$1(originalText, locStart(comment), { - backwards: true - })) { - // This allows comments at the end of nested structures: - // { - // x: 1, - // y: 2 - // // A comment - // } - // Those kinds of comments are almost always leading comments, but - // here it doesn't go "outside" the block and turns it into a - // trailing comment for `2`. We can simulate the above by checking - // if this a comment on its own line; normal trailing comments are - // always at the end of another expression. - const isLineBeforeEmpty = isPreviousLineEmpty$1(originalText, comment, locStart); - return lineSuffix$1(concat$2([hardline$1, isLineBeforeEmpty ? hardline$1 : "", contents])); - } - let printed = concat$2([" ", contents]); // Trailing block comments never need a newline +var tomlParser = makeParserClass(parser); +var makeParserClass_1 = makeParserClass; - if (!isBlock) { - printed = concat$2([lineSuffix$1(printed), breakParent$1]); +class TomlError extends Error { + constructor(msg) { + super(msg); + this.name = 'TomlError'; + /* istanbul ignore next */ + + if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError); + this.fromTOML = true; + this.wrapped = null; } - return printed; } -function printDanglingComments(path, options, sameIndent, filter) { - const parts = []; - const node = path.getValue(); - - if (!node || !node.comments) { - return ""; - } +TomlError.wrap = err => { + const terr = new TomlError(err.message); + terr.code = err.code; + terr.wrapped = err; + return terr; +}; - path.each(commentPath => { - const comment = commentPath.getValue(); +var TomlError_1 = TomlError; +const CTRL_I = 0x09; +const CTRL_J = 0x0A; +const CTRL_M = 0x0D; +const CTRL_CHAR_BOUNDARY = 0x1F; // the last non-character in the latin1 region of unicode, except DEL - if (comment && !comment.leading && !comment.trailing && (!filter || filter(comment))) { - parts.push(printComment(commentPath, options)); - } - }, "comments"); +const CHAR_SP = 0x20; +const CHAR_QUOT = 0x22; +const CHAR_NUM = 0x23; +const CHAR_APOS = 0x27; +const CHAR_PLUS$1 = 0x2B; +const CHAR_COMMA$2 = 0x2C; +const CHAR_HYPHEN = 0x2D; +const CHAR_PERIOD = 0x2E; +const CHAR_0 = 0x30; +const CHAR_1 = 0x31; +const CHAR_7 = 0x37; +const CHAR_9 = 0x39; +const CHAR_COLON = 0x3A; +const CHAR_EQUALS = 0x3D; +const CHAR_A = 0x41; +const CHAR_E = 0x45; +const CHAR_F = 0x46; +const CHAR_T = 0x54; +const CHAR_U = 0x55; +const CHAR_Z = 0x5A; +const CHAR_LOWBAR = 0x5F; +const CHAR_a = 0x61; +const CHAR_b = 0x62; +const CHAR_e = 0x65; +const CHAR_f = 0x66; +const CHAR_i = 0x69; +const CHAR_l = 0x6C; +const CHAR_n = 0x6E; +const CHAR_o = 0x6F; +const CHAR_r = 0x72; +const CHAR_s = 0x73; +const CHAR_t = 0x74; +const CHAR_u = 0x75; +const CHAR_x = 0x78; +const CHAR_z = 0x7A; +const CHAR_LCUB = 0x7B; +const CHAR_RCUB = 0x7D; +const CHAR_LSQB = 0x5B; +const CHAR_BSOL = 0x5C; +const CHAR_RSQB = 0x5D; +const CHAR_DEL = 0x7F; +const SURROGATE_FIRST = 0xD800; +const SURROGATE_LAST = 0xDFFF; +const escapes = { + [CHAR_b]: '\u0008', + [CHAR_t]: '\u0009', + [CHAR_n]: '\u000A', + [CHAR_f]: '\u000C', + [CHAR_r]: '\u000D', + [CHAR_QUOT]: '\u0022', + [CHAR_BSOL]: '\u005C' +}; - if (parts.length === 0) { - return ""; - } +function isDigit(cp) { + return cp >= CHAR_0 && cp <= CHAR_9; +} - if (sameIndent) { - return join$1(hardline$1, parts); - } +function isHexit(cp) { + return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9; +} - return indent$1(concat$2([hardline$1, join$1(hardline$1, parts)])); +function isBit(cp) { + return cp === CHAR_1 || cp === CHAR_0; } -function prependCursorPlaceholder(path, options, printed) { - if (path.getNode() === options.cursorNode && path.getValue()) { - return concat$2([cursor$2, printed, cursor$2]); - } +function isOctit(cp) { + return cp >= CHAR_0 && cp <= CHAR_7; +} - return printed; +function isAlphaNumQuoteHyphen(cp) { + return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN; } -function printComments(path, print, options, needsSemi) { - const value = path.getValue(); - const printed = print(path); - const comments = value && value.comments; +function isAlphaNumHyphen(cp) { + return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN; +} - if (!comments || comments.length === 0) { - return prependCursorPlaceholder(path, options, printed); - } +const _type = Symbol('type'); - const leadingParts = []; - const trailingParts = [needsSemi ? ";" : "", printed]; - path.each(commentPath => { - const comment = commentPath.getValue(); - const { - leading, - trailing - } = comment; +const _declared = Symbol('declared'); - if (leading) { - const contents = printLeadingComment(commentPath, options); - /* istanbul ignore next */ +const hasOwnProperty$a = Object.prototype.hasOwnProperty; +const defineProperty = Object.defineProperty; +const descriptor = { + configurable: true, + enumerable: true, + writable: true, + value: undefined +}; - if (!contents) { - return; - } +function hasKey(obj, key) { + if (hasOwnProperty$a.call(obj, key)) return true; + if (key === '__proto__') defineProperty(obj, '__proto__', descriptor); + return false; +} - leadingParts.push(contents); - const text = options.originalText; - const index = skipNewline$1(text, skipSpaces$1(text, options.locEnd(comment))); +const INLINE_TABLE = Symbol('inline-table'); - if (index !== false && hasNewline$1(text, index)) { - leadingParts.push(hardline$1); - } - } else if (trailing) { - trailingParts.push(printTrailingComment(commentPath, options)); +function InlineTable() { + return Object.defineProperties({}, { + [_type]: { + value: INLINE_TABLE } - }, "comments"); - return prependCursorPlaceholder(path, options, concat$2(leadingParts.concat(trailingParts))); + }); } -function ensureAllCommentsPrinted(astComments) { - if (!astComments) { - return; - } +function isInlineTable(obj) { + if (obj === null || typeof obj !== 'object') return false; + return obj[_type] === INLINE_TABLE; +} - astComments.forEach(comment => { - if (!comment.printed) { - throw new Error('Comment "' + comment.value.trim() + '" was not printed. Please report this error!'); - } +const TABLE = Symbol('table'); - delete comment.printed; +function Table() { + return Object.defineProperties({}, { + [_type]: { + value: TABLE + }, + [_declared]: { + value: false, + writable: true + } }); } -var comments = { - attach, - printComments, - printDanglingComments, - getSortedChildNodes, - ensureAllCommentsPrinted -}; - -function getNodeHelper(path, count) { - const stackIndex = getNodeStackIndexHelper(path.stack, count); - return stackIndex === -1 ? null : path.stack[stackIndex]; +function isTable(obj) { + if (obj === null || typeof obj !== 'object') return false; + return obj[_type] === TABLE; } -function getNodeStackIndexHelper(stack, count) { - for (let i = stack.length - 1; i >= 0; i -= 2) { - const value = stack[i]; +const _contentType = Symbol('content-type'); - if (value && !Array.isArray(value) && --count < 0) { - return i; +const INLINE_LIST = Symbol('inline-list'); + +function InlineList(type) { + return Object.defineProperties([], { + [_type]: { + value: INLINE_LIST + }, + [_contentType]: { + value: type } - } + }); +} - return -1; +function isInlineList(obj) { + if (obj === null || typeof obj !== 'object') return false; + return obj[_type] === INLINE_LIST; } -class FastPath { - constructor(value) { - this.stack = [value]; - } // The name of the current property is always the penultimate element of - // this.stack, and always a String. +const LIST = Symbol('list'); +function List() { + return Object.defineProperties([], { + [_type]: { + value: LIST + } + }); +} - getName() { - const { - stack - } = this; - const { - length - } = stack; +function isList(obj) { + if (obj === null || typeof obj !== 'object') return false; + return obj[_type] === LIST; +} // in an eval, to let bundlers not slurp in a util proxy - if (length > 1) { - return stack[length - 2]; - } // Since the name is always a string, null is a safe sentinel value to - // return if we do not know the name of the (root) value. - /* istanbul ignore next */ +let _custom; + +try { + const utilInspect = require('util').inspect; + _custom = utilInspect.custom; +} catch (_) { + /* eval require not available in transpiled bundle */ +} +/* istanbul ignore next */ - return null; - } // The value of the current property is always the final element of - // this.stack. +const _inspect = _custom || 'inspect'; + +class BoxedBigInt { + constructor(value) { + try { + this.value = global.BigInt.asIntN(64, value); + } catch (_) { + /* istanbul ignore next */ + this.value = null; + } - getValue() { - return getLast(this.stack); + Object.defineProperty(this, _type, { + value: INTEGER + }); } - getNode(count = 0) { - return getNodeHelper(this, count); + isNaN() { + return this.value === null; } - - getParentNode(count = 0) { - return getNodeHelper(this, count + 1); - } // Temporarily push properties named by string arguments given after the - // callback function onto this.stack, then call the callback with a - // reference to this (modified) FastPath object. Note that the stack will - // be restored to its original state after the callback is finished, so it - // is probably a mistake to retain a reference to the path. + /* istanbul ignore next */ - call(callback, ...names) { - const { - stack - } = this; - const { - length - } = stack; - let value = getLast(stack); + toString() { + return String(this.value); + } + /* istanbul ignore next */ - for (const name of names) { - value = value[name]; - stack.push(name, value); - } - const result = callback(this); - stack.length = length; - return result; + [_inspect]() { + return `[BigInt: ${this.toString()}]}`; } - callParent(callback, count = 0) { - const stackIndex = getNodeStackIndexHelper(this.stack, count + 1); - const parentValues = this.stack.splice(stackIndex + 1); - const result = callback(this); - this.stack.push(...parentValues); - return result; - } // Similar to FastPath.prototype.call, except that the value obtained by - // accessing this.getValue()[name1][name2]... should be array-like. The - // callback will be called with a reference to this path object for each - // element of the array. + valueOf() { + return this.value; + } +} - each(callback, ...names) { - const { - stack - } = this; - const { - length - } = stack; - let value = getLast(stack); +const INTEGER = Symbol('integer'); - for (const name of names) { - value = value[name]; - stack.push(name, value); - } +function Integer(value) { + let num = Number(value); // -0 is a float thing, not an int thing - for (let i = 0; i < value.length; ++i) { - if (i in value) { - stack.push(i, value[i]); // If the callback needs to know the value of i, call - // path.getName(), assuming path is the parameter name. + if (Object.is(num, -0)) num = 0; + /* istanbul ignore else */ - callback(this); - stack.length -= 2; + if (global.BigInt && !Number.isSafeInteger(num)) { + return new BoxedBigInt(value); + } else { + /* istanbul ignore next */ + return Object.defineProperties(new Number(num), { + isNaN: { + value: function () { + return isNaN(this); + } + }, + [_type]: { + value: INTEGER + }, + [_inspect]: { + value: () => `[Integer: ${value}]` } - } - - stack.length = length; - } // Similar to FastPath.prototype.each, except that the results of the - // callback function invocations are stored in an array and returned at - // the end of the iteration. + }); + } +} +function isInteger(obj) { + if (obj === null || typeof obj !== 'object') return false; + return obj[_type] === INTEGER; +} - map(callback, ...names) { - const { - stack - } = this; - const { - length - } = stack; - let value = getLast(stack); +const FLOAT = Symbol('float'); - for (const name of names) { - value = value[name]; - stack.push(name, value); +function Float(value) { + /* istanbul ignore next */ + return Object.defineProperties(new Number(value), { + [_type]: { + value: FLOAT + }, + [_inspect]: { + value: () => `[Float: ${value}]` } + }); +} - const result = new Array(value.length); +function isFloat(obj) { + if (obj === null || typeof obj !== 'object') return false; + return obj[_type] === FLOAT; +} - for (let i = 0; i < value.length; ++i) { - if (i in value) { - stack.push(i, value[i]); - result[i] = callback(this, i); - stack.length -= 2; - } - } +function tomlType(value) { + const type = typeof value; - stack.length = length; - return result; - } - /** - * @param {...( - * | ((node: any, name: string | null, number: number | null) => boolean) - * | undefined - * )} predicates - */ + if (type === 'object') { + /* istanbul ignore if */ + if (value === null) return 'null'; + if (value instanceof Date) return 'datetime'; + /* istanbul ignore else */ + if (_type in value) { + switch (value[_type]) { + case INLINE_TABLE: + return 'inline-table'; - match(...predicates) { - let stackPointer = this.stack.length - 1; - let name = null; - let node = this.stack[stackPointer--]; + case INLINE_LIST: + return 'inline-list'; - for (const predicate of predicates) { - /* istanbul ignore next */ - if (node === undefined) { - return false; - } // skip index/array + /* istanbul ignore next */ + case TABLE: + return 'table'; - let number = null; + /* istanbul ignore next */ - if (typeof name === "number") { - number = name; - name = this.stack[stackPointer--]; - node = this.stack[stackPointer--]; - } + case LIST: + return 'list'; - if (predicate && !predicate(node, name, number)) { - return false; - } + case FLOAT: + return 'float'; - name = this.stack[stackPointer--]; - node = this.stack[stackPointer--]; + case INTEGER: + return 'integer'; + } } - - return true; } + return type; } -var fastPath = FastPath; +function makeParserClass(Parser) { + class TOMLParser extends Parser { + constructor() { + super(); + this.ctx = this.obj = Table(); + } + /* MATCH HELPER */ -const { - utils: { - stripTrailingHardline: stripTrailingHardline$1 - } -} = document; -const { - normalize: normalize$2 -} = options$1; -function printSubtree(path, print, options, printAstToDoc) { - if (options.printer.embed && options.embeddedLanguageFormatting === "auto") { - return options.printer.embed(path, print, (text, partialNextOptions, textToDocOptions) => textToDoc(text, partialNextOptions, options, printAstToDoc, textToDocOptions), options); - } -} + atEndOfWord() { + return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine(); + } -function textToDoc(text, partialNextOptions, parentOptions, printAstToDoc, // TODO: remove `stripTrailingHardline` in v3.0.0 -{ - stripTrailingHardline: shouldStripTrailingHardline = false -} = {}) { - const nextOptions = normalize$2(Object.assign({}, parentOptions, partialNextOptions, { - parentParser: parentOptions.parser, - embeddedInHtml: !!(parentOptions.embeddedInHtml || parentOptions.parser === "html" || parentOptions.parser === "vue" || parentOptions.parser === "angular" || parentOptions.parser === "lwc"), - originalText: text - }), { - passThrough: true - }); - const result = parser.parse(text, nextOptions); - const { - ast - } = result; - text = result.text; - const astComments = ast.comments; - delete ast.comments; - comments.attach(astComments, ast, text, nextOptions); - nextOptions[Symbol.for("comments")] = astComments || []; - nextOptions[Symbol.for("tokens")] = ast.tokens || []; - const doc = printAstToDoc(ast, nextOptions); - comments.ensureAllCommentsPrinted(astComments); + atEndOfLine() { + return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M; + } - if (shouldStripTrailingHardline) { - // TODO: move this to `stripTrailingHardline` function in `/src/document/doc-utils.js` - if (typeof doc === "string") { - return doc.replace(/(?:\r?\n)*$/, ""); + parseStart() { + if (this.char === Parser.END) { + return null; + } else if (this.char === CHAR_LSQB) { + return this.call(this.parseTableOrList); + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment); + } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null; + } else if (isAlphaNumQuoteHyphen(this.char)) { + return this.callNow(this.parseAssignStatement); + } else { + throw this.error(new TomlError(`Unknown character "${this.char}"`)); + } + } // HELPER, this strips any whitespace and comments to the end of the line + // then RETURNS. Last state in a production. + + + parseWhitespaceToEOL() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null; + } else if (this.char === CHAR_NUM) { + return this.goto(this.parseComment); + } else if (this.char === Parser.END || this.char === CTRL_J) { + return this.return(); + } else { + throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line')); + } } + /* ASSIGNMENT: key = value */ - return stripTrailingHardline$1(doc, true); - } - /* istanbul ignore next */ + parseAssignStatement() { + return this.callNow(this.parseAssign, this.recordAssignStatement); + } - return doc; -} + recordAssignStatement(kv) { + let target = this.ctx; + let finalKey = kv.key.pop(); -var multiparser = { - printSubtree -}; + for (let kw of kv.key) { + if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")); + } -const doc = document; -const docBuilders$1 = doc.builders; -const { - concat: concat$3, - hardline: hardline$2, - addAlignmentToDoc: addAlignmentToDoc$1 -} = docBuilders$1; -const docUtils$1 = doc.utils; -/** - * Takes an abstract syntax tree (AST) and recursively converts it to a - * document (series of printing primitives). - * - * This is done by descending down the AST recursively. The recursion - * involves two functions that call each other: - * - * 1. printGenerically(), which is defined as an inner function here. - * It basically takes care of node caching. - * 2. callPluginPrintFunction(), which checks for some options, and - * ultimately calls the print() function provided by the plugin. - * - * The plugin function will call printGenerically() again for child nodes - * of the current node, which will do its housekeeping, then call the - * plugin function again, and so on. - * - * All the while, these functions pass a "path" variable around, which - * is a stack-like data structure (FastPath) that maintains the current - * state of the recursion. It is called "path", because it represents - * the path to the current node through the Abstract Syntax Tree. - */ + target = target[kw] = target[kw] || Table(); + } -function printAstToDoc(ast, options, alignmentSize = 0) { - const { - printer - } = options; + if (hasKey(target, finalKey)) { + throw this.error(new TomlError("Can't redefine existing key")); + } // unbox our numbers - if (printer.preprocess) { - ast = printer.preprocess(ast, options); - } - const cache = new Map(); + if (isInteger(kv.value) || isFloat(kv.value)) { + target[finalKey] = kv.value.valueOf(); + } else { + target[finalKey] = kv.value; + } - function printGenerically(path, args) { - const node = path.getValue(); - const shouldCache = node && typeof node === "object" && args === undefined; + return this.goto(this.parseWhitespaceToEOL); + } + /* ASSSIGNMENT expression, key = value possibly inside an inline table */ - if (shouldCache && cache.has(node)) { - return cache.get(node); - } // We let JSXElement print its comments itself because it adds () around - // UnionTypeAnnotation has to align the child without the comments + parseAssign() { + return this.callNow(this.parseKeyword, this.recordAssignKeyword); + } - let res; + recordAssignKeyword(key) { + if (this.state.resultTable) { + this.state.resultTable.push(key); + } else { + this.state.resultTable = [key]; + } - if (printer.willPrintOwnComments && printer.willPrintOwnComments(path, options)) { - res = callPluginPrintFunction(path, options, printGenerically, args); - } else { - // printComments will call the plugin print function and check for - // comments to print - res = comments.printComments(path, p => callPluginPrintFunction(p, options, printGenerically, args), options, args && args.needsSemi); + return this.goto(this.parseAssignKeywordPreDot); } - if (shouldCache) { - cache.set(node, res); + parseAssignKeywordPreDot() { + if (this.char === CHAR_PERIOD) { + return this.next(this.parseAssignKeywordPostDot); + } else if (this.char !== CHAR_SP && this.char !== CTRL_I) { + return this.goto(this.parseAssignEqual); + } } - return res; - } + parseAssignKeywordPostDot() { + if (this.char !== CHAR_SP && this.char !== CTRL_I) { + return this.callNow(this.parseKeyword, this.recordAssignKeyword); + } + } - let doc = printGenerically(new fastPath(ast)); + parseAssignEqual() { + if (this.char === CHAR_EQUALS) { + return this.next(this.parseAssignPreValue); + } else { + throw this.error(new TomlError('Invalid character, expected "="')); + } + } - if (alignmentSize > 0) { - // Add a hardline to make the indents take effect - // It should be removed in index.js format() - doc = addAlignmentToDoc$1(concat$3([hardline$2, doc]), alignmentSize, options.tabWidth); - } + parseAssignPreValue() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else { + return this.callNow(this.parseValue, this.recordAssignValue); + } + } - docUtils$1.propagateBreaks(doc); - return doc; -} + recordAssignValue(value) { + return this.returnNow({ + key: this.state.resultTable, + value: value + }); + } + /* COMMENTS: #...eol */ -function printPrettierIgnoredNode(node, options) { - const { - originalText, - [Symbol.for("comments")]: comments, - locStart, - locEnd - } = options; - const start = locStart(node); - const end = locEnd(node); - for (const comment of comments) { - if (locStart(comment) >= start && locEnd(comment) <= end) { - comment.printed = true; + parseComment() { + do { + if (this.char === Parser.END || this.char === CTRL_J) { + return this.return(); + } + } while (this.nextChar()); } - } + /* TABLES AND LISTS, [foo] and [[foo]] */ - return originalText.slice(start, end); -} -function callPluginPrintFunction(path, options, printPath, args) { - assert__default['default'].ok(path instanceof fastPath); - const node = path.getValue(); - const { - printer - } = options; // Escape hatch + parseTableOrList() { + if (this.char === CHAR_LSQB) { + this.next(this.parseList); + } else { + return this.goto(this.parseTable); + } + } + /* TABLE [foo.bar.baz] */ - if (printer.hasPrettierIgnore && printer.hasPrettierIgnore(path)) { - return printPrettierIgnoredNode(node, options); - } - if (node) { - try { - // Potentially switch to a different parser - const sub = multiparser.printSubtree(path, printPath, options, printAstToDoc); + parseTable() { + this.ctx = this.obj; + return this.goto(this.parseTableNext); + } - if (sub) { - return sub; + parseTableNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else { + return this.callNow(this.parseKeyword, this.parseTableMore); } - } catch (error) { - /* istanbul ignore if */ - if (process.env.PRETTIER_DEBUG) { - throw error; - } // Continue with current parser - } - } - return printer.print(path, options, printPath, args); -} + parseTableMore(keyword) { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === CHAR_RSQB) { + if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")); + } else { + this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table(); + this.ctx[_declared] = true; + } -var astToDoc = printAstToDoc; + return this.next(this.parseWhitespaceToEOL); + } else if (this.char === CHAR_PERIOD) { + if (!hasKey(this.ctx, keyword)) { + this.ctx = this.ctx[keyword] = Table(); + } else if (isTable(this.ctx[keyword])) { + this.ctx = this.ctx[keyword]; + } else if (isList(this.ctx[keyword])) { + this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; + } else { + throw this.error(new TomlError("Can't redefine existing key")); + } -function findSiblingAncestors(startNodeAndParents, endNodeAndParents, opts) { - let resultStartNode = startNodeAndParents.node; - let resultEndNode = endNodeAndParents.node; + return this.next(this.parseTableNext); + } else { + throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')); + } + } + /* LIST [[a.b.c]] */ - if (resultStartNode === resultEndNode) { - return { - startNode: resultStartNode, - endNode: resultEndNode - }; - } - for (const endParent of endNodeAndParents.parentNodes) { - if (endParent.type !== "Program" && endParent.type !== "File" && opts.locStart(endParent) >= opts.locStart(startNodeAndParents.node)) { - resultEndNode = endParent; - } else { - break; + parseList() { + this.ctx = this.obj; + return this.goto(this.parseListNext); } - } - for (const startParent of startNodeAndParents.parentNodes) { - if (startParent.type !== "Program" && startParent.type !== "File" && opts.locEnd(startParent) <= opts.locEnd(endNodeAndParents.node)) { - resultStartNode = startParent; - } else { - break; + parseListNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else { + return this.callNow(this.parseKeyword, this.parseListMore); + } } - } - return { - startNode: resultStartNode, - endNode: resultEndNode - }; -} + parseListMore(keyword) { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === CHAR_RSQB) { + if (!hasKey(this.ctx, keyword)) { + this.ctx[keyword] = List(); + } -function findNodeAtOffset(node, offset, options, predicate, parentNodes = []) { - if (offset < options.locStart(node) || offset > options.locEnd(node)) { - return; - } + if (isInlineList(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline array")); + } else if (isList(this.ctx[keyword])) { + const next = Table(); + this.ctx[keyword].push(next); + this.ctx = next; + } else { + throw this.error(new TomlError("Can't redefine an existing key")); + } + + return this.next(this.parseListEnd); + } else if (this.char === CHAR_PERIOD) { + if (!hasKey(this.ctx, keyword)) { + this.ctx = this.ctx[keyword] = Table(); + } else if (isInlineList(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline array")); + } else if (isInlineTable(this.ctx[keyword])) { + throw this.error(new TomlError("Can't extend an inline table")); + } else if (isList(this.ctx[keyword])) { + this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; + } else if (isTable(this.ctx[keyword])) { + this.ctx = this.ctx[keyword]; + } else { + throw this.error(new TomlError("Can't redefine an existing key")); + } - for (const childNode of comments.getSortedChildNodes(node, options)) { - const childResult = findNodeAtOffset(childNode, offset, options, predicate, [node, ...parentNodes]); + return this.next(this.parseListNext); + } else { + throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')); + } + } - if (childResult) { - return childResult; + parseListEnd(keyword) { + if (this.char === CHAR_RSQB) { + return this.next(this.parseWhitespaceToEOL); + } else { + throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')); + } } - } + /* VALUE string, number, boolean, inline list, inline object */ - if (!predicate || predicate(node)) { - return { - node, - parentNodes - }; - } -} // See https://www.ecma-international.org/ecma-262/5.1/#sec-A.5 + parseValue() { + if (this.char === Parser.END) { + throw this.error(new TomlError('Key without value')); + } else if (this.char === CHAR_QUOT) { + return this.next(this.parseDoubleString); + } -function isJsSourceElement(type) { - return type === "Directive" || type === "TypeAlias" || type === "TSExportAssignment" || type.startsWith("Declare") || type.startsWith("TSDeclare") || type.endsWith("Statement") || type.endsWith("Declaration"); -} + if (this.char === CHAR_APOS) { + return this.next(this.parseSingleString); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS$1) { + return this.goto(this.parseNumberSign); + } else if (this.char === CHAR_i) { + return this.next(this.parseInf); + } else if (this.char === CHAR_n) { + return this.next(this.parseNan); + } else if (isDigit(this.char)) { + return this.goto(this.parseNumberOrDateTime); + } else if (this.char === CHAR_t || this.char === CHAR_f) { + return this.goto(this.parseBoolean); + } else if (this.char === CHAR_LSQB) { + return this.call(this.parseInlineList, this.recordValue); + } else if (this.char === CHAR_LCUB) { + return this.call(this.parseInlineTable, this.recordValue); + } else { + throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table')); + } + } -const jsonSourceElements = new Set(["ObjectExpression", "ArrayExpression", "StringLiteral", "NumericLiteral", "BooleanLiteral", "NullLiteral"]); -const graphqlSourceElements = new Set(["OperationDefinition", "FragmentDefinition", "VariableDefinition", "TypeExtensionDefinition", "ObjectTypeDefinition", "FieldDefinition", "DirectiveDefinition", "EnumTypeDefinition", "EnumValueDefinition", "InputValueDefinition", "InputObjectTypeDefinition", "SchemaDefinition", "OperationTypeDefinition", "InterfaceTypeDefinition", "UnionTypeDefinition", "ScalarTypeDefinition"]); + recordValue(value) { + return this.returnNow(value); + } -function isSourceElement(opts, node) { - /* istanbul ignore next */ - if (node == null) { - return false; - } + parseInf() { + if (this.char === CHAR_n) { + return this.next(this.parseInf2); + } else { + throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); + } + } - switch (opts.parser) { - case "flow": - case "babel": - case "babel-flow": - case "babel-ts": - case "typescript": - return isJsSourceElement(node.type); + parseInf2() { + if (this.char === CHAR_f) { + if (this.state.buf === '-') { + return this.return(-Infinity); + } else { + return this.return(Infinity); + } + } else { + throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); + } + } - case "json": - return jsonSourceElements.has(node.type); + parseNan() { + if (this.char === CHAR_a) { + return this.next(this.parseNan2); + } else { + throw this.error(new TomlError('Unexpected character, expected "nan"')); + } + } - case "graphql": - return graphqlSourceElements.has(node.kind); + parseNan2() { + if (this.char === CHAR_n) { + return this.return(NaN); + } else { + throw this.error(new TomlError('Unexpected character, expected "nan"')); + } + } + /* KEYS, barewords or basic, literal, or dotted */ - case "vue": - return node.tag !== "root"; - } - return false; -} + parseKeyword() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseBasicString); + } else if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralString); + } else { + return this.goto(this.parseBareKey); + } + } + /* KEYS: barewords */ -function calculateRange(text, opts, ast) { - // Contract the range so that it has non-whitespace characters at its endpoints. - // This ensures we can format a range that doesn't end on a node. - const rangeStringOrig = text.slice(opts.rangeStart, opts.rangeEnd); - const startNonWhitespace = Math.max(opts.rangeStart + rangeStringOrig.search(/\S/), opts.rangeStart); - let endNonWhitespace; - for (endNonWhitespace = opts.rangeEnd; endNonWhitespace > opts.rangeStart; --endNonWhitespace) { - if (/\S/.test(text[endNonWhitespace - 1])) { - break; + parseBareKey() { + do { + if (this.char === Parser.END) { + throw this.error(new TomlError('Key ended without value')); + } else if (isAlphaNumHyphen(this.char)) { + this.consume(); + } else if (this.state.buf.length === 0) { + throw this.error(new TomlError('Empty bare keys are not allowed')); + } else { + return this.returnNow(); + } + } while (this.nextChar()); } - } + /* STRINGS, single quoted (literal) */ - const startNodeAndParents = findNodeAtOffset(ast, startNonWhitespace, opts, node => isSourceElement(opts, node)); - const endNodeAndParents = findNodeAtOffset(ast, endNonWhitespace, opts, node => isSourceElement(opts, node)); - if (!startNodeAndParents || !endNodeAndParents) { - return { - rangeStart: 0, - rangeEnd: 0 - }; - } + parseSingleString() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiStringMaybe); + } else { + return this.goto(this.parseLiteralString); + } + } - const { - startNode, - endNode - } = findSiblingAncestors(startNodeAndParents, endNodeAndParents, opts); - return { - rangeStart: Math.min(opts.locStart(startNode), opts.locStart(endNode)), - rangeEnd: Math.max(opts.locEnd(startNode), opts.locEnd(endNode)) - }; -} + parseLiteralString() { + do { + if (this.char === CHAR_APOS) { + return this.return(); + } else if (this.atEndOfLine()) { + throw this.error(new TomlError('Unterminated string')); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } -var rangeUtil = { - calculateRange, - findNodeAtOffset -}; + parseLiteralMultiStringMaybe() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiString); + } else { + return this.returnNow(); + } + } -const { - printer: { - printDocToString: printDocToString$1 - }, - debug: { - printDocToDebug - } -} = document; -const { - getAlignmentSize: getAlignmentSize$1 -} = util; -const { - guessEndOfLine: guessEndOfLine$1, - convertEndOfLineToChars: convertEndOfLineToChars$2, - countEndOfLineChars: countEndOfLineChars$1, - normalizeEndOfLine: normalizeEndOfLine$1 -} = endOfLine; -const normalizeOptions$1 = options$1.normalize; -const BOM = "\uFEFF"; -const CURSOR = Symbol("cursor"); + parseLiteralMultiString() { + if (this.char === CTRL_M) { + return null; + } else if (this.char === CTRL_J) { + return this.next(this.parseLiteralMultiStringContent); + } else { + return this.goto(this.parseLiteralMultiStringContent); + } + } -function attachComments(text, ast, opts) { - const astComments = ast.comments; + parseLiteralMultiStringContent() { + do { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiEnd); + } else if (this.char === Parser.END) { + throw this.error(new TomlError('Unterminated multi-line string')); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } - if (astComments) { - delete ast.comments; - comments.attach(astComments, ast, text, opts); - } + parseLiteralMultiEnd() { + if (this.char === CHAR_APOS) { + return this.next(this.parseLiteralMultiEnd2); + } else { + this.state.buf += "'"; + return this.goto(this.parseLiteralMultiStringContent); + } + } - opts[Symbol.for("comments")] = astComments || []; - opts[Symbol.for("tokens")] = ast.tokens || []; - opts.originalText = text; - return astComments; -} + parseLiteralMultiEnd2() { + if (this.char === CHAR_APOS) { + return this.return(); + } else { + this.state.buf += "''"; + return this.goto(this.parseLiteralMultiStringContent); + } + } + /* STRINGS double quoted */ -function coreFormat(text, opts, addAlignmentSize) { - if (!text || !text.trim().length) { - return { - formatted: "", - cursorOffset: -1 - }; - } - addAlignmentSize = addAlignmentSize || 0; - const parsed = parser.parse(text, opts); - const { - ast - } = parsed; - text = parsed.text; + parseDoubleString() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiStringMaybe); + } else { + return this.goto(this.parseBasicString); + } + } - if (opts.cursorOffset >= 0) { - const nodeResult = rangeUtil.findNodeAtOffset(ast, opts.cursorOffset, opts); + parseBasicString() { + do { + if (this.char === CHAR_BSOL) { + return this.call(this.parseEscape, this.recordEscapeReplacement); + } else if (this.char === CHAR_QUOT) { + return this.return(); + } else if (this.atEndOfLine()) { + throw this.error(new TomlError('Unterminated string')); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); + } - if (nodeResult && nodeResult.node) { - opts.cursorNode = nodeResult.node; + recordEscapeReplacement(replacement) { + this.state.buf += replacement; + return this.goto(this.parseBasicString); } - } - const astComments = attachComments(text, ast, opts); - const doc = astToDoc(ast, opts, addAlignmentSize); - const result = printDocToString$1(doc, opts); - comments.ensureAllCommentsPrinted(astComments); // Remove extra leading indentation as well as the added indentation after last newline + parseMultiStringMaybe() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiString); + } else { + return this.returnNow(); + } + } - if (addAlignmentSize > 0) { - const trimmed = result.formatted.trim(); + parseMultiString() { + if (this.char === CTRL_M) { + return null; + } else if (this.char === CTRL_J) { + return this.next(this.parseMultiStringContent); + } else { + return this.goto(this.parseMultiStringContent); + } + } - if (result.cursorNodeStart !== undefined) { - result.cursorNodeStart -= result.formatted.indexOf(trimmed); + parseMultiStringContent() { + do { + if (this.char === CHAR_BSOL) { + return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement); + } else if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiEnd); + } else if (this.char === Parser.END) { + throw this.error(new TomlError('Unterminated multi-line string')); + } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { + throw this.errorControlCharInString(); + } else { + this.consume(); + } + } while (this.nextChar()); } - result.formatted = trimmed + convertEndOfLineToChars$2(opts.endOfLine); - } + errorControlCharInString() { + let displayCode = '\\u00'; - if (opts.cursorOffset >= 0) { - let oldCursorNodeStart; - let oldCursorNodeText; - let cursorOffsetRelativeToOldCursorNode; - let newCursorNodeStart; - let newCursorNodeText; + if (this.char < 16) { + displayCode += '0'; + } - if (opts.cursorNode && result.cursorNodeText) { - oldCursorNodeStart = opts.locStart(opts.cursorNode); - oldCursorNodeText = text.slice(oldCursorNodeStart, opts.locEnd(opts.cursorNode)); - cursorOffsetRelativeToOldCursorNode = opts.cursorOffset - oldCursorNodeStart; - newCursorNodeStart = result.cursorNodeStart; - newCursorNodeText = result.cursorNodeText; - } else { - oldCursorNodeStart = 0; - oldCursorNodeText = text; - cursorOffsetRelativeToOldCursorNode = opts.cursorOffset; - newCursorNodeStart = 0; - newCursorNodeText = result.formatted; + displayCode += this.char.toString(16); + return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`)); } - if (oldCursorNodeText === newCursorNodeText) { - return { - formatted: result.formatted, - cursorOffset: newCursorNodeStart + cursorOffsetRelativeToOldCursorNode - }; - } // diff old and new cursor node texts, with a special cursor - // symbol inserted to find out where it moves to + recordMultiEscapeReplacement(replacement) { + this.state.buf += replacement; + return this.goto(this.parseMultiStringContent); + } + parseMultiEnd() { + if (this.char === CHAR_QUOT) { + return this.next(this.parseMultiEnd2); + } else { + this.state.buf += '"'; + return this.goto(this.parseMultiStringContent); + } + } - const oldCursorNodeCharArray = oldCursorNodeText.split(""); - oldCursorNodeCharArray.splice(cursorOffsetRelativeToOldCursorNode, 0, CURSOR); - const newCursorNodeCharArray = newCursorNodeText.split(""); - const cursorNodeDiff = index_es6.diffArrays(oldCursorNodeCharArray, newCursorNodeCharArray); - let cursorOffset = newCursorNodeStart; + parseMultiEnd2() { + if (this.char === CHAR_QUOT) { + return this.return(); + } else { + this.state.buf += '""'; + return this.goto(this.parseMultiStringContent); + } + } - for (const entry of cursorNodeDiff) { - if (entry.removed) { - if (entry.value.includes(CURSOR)) { - break; - } + parseMultiEscape() { + if (this.char === CTRL_M || this.char === CTRL_J) { + return this.next(this.parseMultiTrim); + } else if (this.char === CHAR_SP || this.char === CTRL_I) { + return this.next(this.parsePreMultiTrim); } else { - cursorOffset += entry.count; + return this.goto(this.parseEscape); } } - return { - formatted: result.formatted, - cursorOffset - }; - } + parsePreMultiTrim() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === CTRL_M || this.char === CTRL_J) { + return this.next(this.parseMultiTrim); + } else { + throw this.error(new TomlError("Can't escape whitespace")); + } + } - return { - formatted: result.formatted, - cursorOffset: -1 - }; -} + parseMultiTrim() { + // explicitly whitespace here, END should follow the same path as chars + if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { + return null; + } else { + return this.returnNow(); + } + } -function formatRange(text, opts) { - const parsed = parser.parse(text, opts); - const { - ast - } = parsed; - text = parsed.text; - const { - rangeStart, - rangeEnd - } = rangeUtil.calculateRange(text, opts, ast); - const rangeString = text.slice(rangeStart, rangeEnd); // Try to extend the range backwards to the beginning of the line. - // This is so we can detect indentation correctly and restore it. - // Use `Math.min` since `lastIndexOf` returns 0 when `rangeStart` is 0 + parseEscape() { + if (this.char in escapes) { + return this.return(escapes[this.char]); + } else if (this.char === CHAR_u) { + return this.call(this.parseSmallUnicode, this.parseUnicodeReturn); + } else if (this.char === CHAR_U) { + return this.call(this.parseLargeUnicode, this.parseUnicodeReturn); + } else { + throw this.error(new TomlError('Unknown escape character: ' + this.char)); + } + } - const rangeStart2 = Math.min(rangeStart, text.lastIndexOf("\n", rangeStart) + 1); - const indentString = text.slice(rangeStart2, rangeStart).match(/^\s*/)[0]; - const alignmentSize = getAlignmentSize$1(indentString, opts.tabWidth); - const rangeResult = coreFormat(rangeString, Object.assign({}, opts, { - rangeStart: 0, - rangeEnd: Infinity, - // Track the cursor offset only if it's within our range - cursorOffset: opts.cursorOffset > rangeStart && opts.cursorOffset < rangeEnd ? opts.cursorOffset - rangeStart : -1, - // Always use `lf` to format, we'll replace it later - endOfLine: "lf" - }), alignmentSize); // Since the range contracts to avoid trailing whitespace, - // we need to remove the newline that was inserted by the `format` call. + parseUnicodeReturn(char) { + try { + const codePoint = parseInt(char, 16); - const rangeTrimmed = rangeResult.formatted.trimEnd(); - let { - cursorOffset - } = opts; + if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) { + throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved')); + } - if (cursorOffset >= rangeEnd) { - // handle the case where the cursor was past the end of the range - cursorOffset = opts.cursorOffset + (rangeTrimmed.length - rangeString.length); - } else if (rangeResult.cursorOffset >= 0) { - // handle the case where the cursor was in the range - cursorOffset = rangeResult.cursorOffset + rangeStart; - } // keep the cursor as it was if it was before the start of the range + return this.returnNow(String.fromCodePoint(codePoint)); + } catch (err) { + throw this.error(TomlError.wrap(err)); + } + } + parseSmallUnicode() { + if (!isHexit(this.char)) { + throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')); + } else { + this.consume(); + if (this.state.buf.length >= 4) return this.return(); + } + } - let formatted = text.slice(0, rangeStart) + rangeTrimmed + text.slice(rangeEnd); + parseLargeUnicode() { + if (!isHexit(this.char)) { + throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')); + } else { + this.consume(); + if (this.state.buf.length >= 8) return this.return(); + } + } + /* NUMBERS */ - if (opts.endOfLine !== "lf") { - const eol = convertEndOfLineToChars$2(opts.endOfLine); - if (cursorOffset >= 0 && eol === "\r\n") { - cursorOffset += countEndOfLineChars$1(formatted.slice(0, cursorOffset), "\n"); + parseNumberSign() { + this.consume(); + return this.next(this.parseMaybeSignedInfOrNan); } - formatted = formatted.replace(/\n/g, eol); - } + parseMaybeSignedInfOrNan() { + if (this.char === CHAR_i) { + return this.next(this.parseInf); + } else if (this.char === CHAR_n) { + return this.next(this.parseNan); + } else { + return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart); + } + } - return { - formatted, - cursorOffset - }; -} + parseNumberIntegerStart() { + if (this.char === CHAR_0) { + this.consume(); + return this.next(this.parseNumberIntegerExponentOrDecimal); + } else { + return this.goto(this.parseNumberInteger); + } + } -function format(originalText, opts) { - const selectedParser = parser.resolveParser(opts); - const hasBOM = originalText.charAt(0) === BOM; - let text = hasBOM ? originalText.slice(1) : originalText; - const hasCursor = opts.cursorOffset >= 0; + parseNumberIntegerExponentOrDecimal() { + if (this.char === CHAR_PERIOD) { + this.consume(); + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else { + return this.returnNow(Integer(this.state.buf)); + } + } - if (!hasCursor) { - opts.cursorOffset = -1; - } + parseNumberInteger() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else if (this.char === CHAR_PERIOD) { + this.consume(); + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else { + const result = Integer(this.state.buf); + /* istanbul ignore if */ - const hasPragma = !selectedParser.hasPragma || selectedParser.hasPragma(text); + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')); + } else { + return this.returnNow(result); + } + } + } - if (opts.requirePragma && !hasPragma) { - return { - formatted: originalText, - cursorOffset: opts.cursorOffset - }; - } + parseNoUnder() { + if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) { + throw this.error(new TomlError('Unexpected character, expected digit')); + } else if (this.atEndOfWord()) { + throw this.error(new TomlError('Incomplete number')); + } - if (opts.endOfLine === "auto") { - opts.endOfLine = guessEndOfLine$1(text); - } + return this.returnNow(); + } - const hasRangeStart = opts.rangeStart > 0; - const hasRangeEnd = opts.rangeEnd < text.length; + parseNoUnderHexOctBinLiteral() { + if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) { + throw this.error(new TomlError('Unexpected character, expected digit')); + } else if (this.atEndOfWord()) { + throw this.error(new TomlError('Incomplete number')); + } - if (hasBOM) { - if (hasCursor) { - opts.cursorOffset--; + return this.returnNow(); } - if (hasRangeStart) { - opts.rangeStart--; + parseNumberFloat() { + if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else if (isDigit(this.char)) { + this.consume(); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else { + return this.returnNow(Float(this.state.buf)); + } } - if (hasRangeEnd) { - opts.rangeEnd--; + parseNumberExponentSign() { + if (isDigit(this.char)) { + return this.goto(this.parseNumberExponent); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS$1) { + this.consume(); + this.call(this.parseNoUnder, this.parseNumberExponent); + } else { + throw this.error(new TomlError('Unexpected character, expected -, + or digit')); + } } - } // get rid of CR/CRLF parsing + parseNumberExponent() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder); + } else { + return this.returnNow(Float(this.state.buf)); + } + } + /* NUMBERS or DATETIMES */ - if (text.includes("\r")) { - const countCrlfBefore = position => countEndOfLineChars$1(text.slice(0, position), "\r\n"); - if (hasCursor) { - opts.cursorOffset -= countCrlfBefore(opts.cursorOffset); + parseNumberOrDateTime() { + if (this.char === CHAR_0) { + this.consume(); + return this.next(this.parseNumberBaseOrDateTime); + } else { + return this.goto(this.parseNumberOrDateTimeOnly); + } } - if (hasRangeStart) { - opts.rangeStart -= countCrlfBefore(opts.rangeStart); + parseNumberOrDateTimeOnly() { + // note, if two zeros are in a row then it MUST be a date + if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnder, this.parseNumberInteger); + } else if (isDigit(this.char)) { + this.consume(); + if (this.state.buf.length > 4) this.next(this.parseNumberInteger); + } else if (this.char === CHAR_E || this.char === CHAR_e) { + this.consume(); + return this.next(this.parseNumberExponentSign); + } else if (this.char === CHAR_PERIOD) { + this.consume(); + return this.call(this.parseNoUnder, this.parseNumberFloat); + } else if (this.char === CHAR_HYPHEN) { + return this.goto(this.parseDateTime); + } else if (this.char === CHAR_COLON) { + return this.goto(this.parseOnlyTimeHour); + } else { + return this.returnNow(Integer(this.state.buf)); + } } - if (hasRangeEnd) { - opts.rangeEnd -= countCrlfBefore(opts.rangeEnd); + parseDateTimeOnly() { + if (this.state.buf.length < 4) { + if (isDigit(this.char)) { + return this.consume(); + } else if (this.char === CHAR_COLON) { + return this.goto(this.parseOnlyTimeHour); + } else { + throw this.error(new TomlError('Expected digit while parsing year part of a date')); + } + } else { + if (this.char === CHAR_HYPHEN) { + return this.goto(this.parseDateTime); + } else { + throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date')); + } + } } - text = normalizeEndOfLine$1(text); - } - - if (opts.rangeStart < 0) { - opts.rangeStart = 0; - } - - if (opts.rangeEnd > text.length) { - opts.rangeEnd = text.length; - } - - let result; - - if (hasRangeStart || hasRangeEnd) { - result = formatRange(text, opts); - } else { - if (!hasPragma && opts.insertPragma && opts.printer.insertPragma) { - text = opts.printer.insertPragma(text); + parseNumberBaseOrDateTime() { + if (this.char === CHAR_b) { + this.consume(); + return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin); + } else if (this.char === CHAR_o) { + this.consume(); + return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct); + } else if (this.char === CHAR_x) { + this.consume(); + return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex); + } else if (this.char === CHAR_PERIOD) { + return this.goto(this.parseNumberInteger); + } else if (isDigit(this.char)) { + return this.goto(this.parseDateTimeOnly); + } else { + return this.returnNow(Integer(this.state.buf)); + } } - result = coreFormat(text, opts); - } - - if (hasBOM) { - result.formatted = BOM + result.formatted; + parseIntegerHex() { + if (isHexit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnderHexOctBinLiteral); + } else { + const result = Integer(this.state.buf); + /* istanbul ignore if */ - if (hasCursor && result.cursorOffset >= 0) { - result.cursorOffset++; + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')); + } else { + return this.returnNow(result); + } + } } - } - - return result; -} -var core = { - formatWithCursor(text, opts) { - opts = normalizeOptions$1(opts); - return format(text, opts); - }, - - parse(text, opts, massage) { - opts = normalizeOptions$1(opts); - text = normalizeEndOfLine$1(text.charAt(0) === BOM ? text.slice(1) : text); - const parsed = parser.parse(text, opts); + parseIntegerOct() { + if (isOctit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnderHexOctBinLiteral); + } else { + const result = Integer(this.state.buf); + /* istanbul ignore if */ - if (massage) { - parsed.ast = massageAst(parsed.ast, opts); + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')); + } else { + return this.returnNow(result); + } + } } - return parsed; - }, - - formatAST(ast, opts) { - opts = normalizeOptions$1(opts); - const doc = astToDoc(ast, opts); - return printDocToString$1(doc, opts); - }, - - // Doesn't handle shebang for now - formatDoc(doc, opts) { - opts = normalizeOptions$1(Object.assign({}, opts, { - parser: "babel" - })); - const debug = printDocToDebug(doc); - return format(debug, opts).formatted; - }, - - printToDoc(originalText, opts) { - opts = normalizeOptions$1(opts); - const parsed = parser.parse(originalText, opts); - const { - ast, - text - } = parsed; - attachComments(text, ast, opts); - return astToDoc(ast, opts); - }, - - printDocToString(doc, opts) { - return printDocToString$1(doc, normalizeOptions$1(opts)); - } - -}; - -var concatMap = function (xs, fn) { - var res = []; - - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray$2(x)) res.push.apply(res, x);else res.push(x); - } - - return res; -}; - -var isArray$2 = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - -var balancedMatch = balanced; + parseIntegerBin() { + if (isBit(this.char)) { + this.consume(); + } else if (this.char === CHAR_LOWBAR) { + return this.call(this.parseNoUnderHexOctBinLiteral); + } else { + const result = Integer(this.state.buf); + /* istanbul ignore if */ -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - var r = range(a, b, str); - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} + if (result.isNaN()) { + throw this.error(new TomlError('Invalid number')); + } else { + return this.returnNow(result); + } + } + } + /* DATETIME */ -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} -balanced.range = range; + parseDateTime() { + // we enter here having just consumed the year and about to consume the hyphen + if (this.state.buf.length < 4) { + throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters')); + } -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; + this.state.result = this.state.buf; + this.state.buf = ''; + return this.next(this.parseDateMonth); + } - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; + parseDateMonth() { + if (this.char === CHAR_HYPHEN) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Months less than 10 must be zero padded to two characters')); + } - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [begs.pop(), bi]; + this.state.result += '-' + this.state.buf; + this.state.buf = ''; + return this.next(this.parseDateDay); + } else if (isDigit(this.char)) { + this.consume(); } else { - beg = begs.pop(); + throw this.error(new TomlError('Incomplete datetime')); + } + } - if (beg < left) { - left = beg; - right = bi; + parseDateDay() { + if (this.char === CHAR_T || this.char === CHAR_SP) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Days less than 10 must be zero padded to two characters')); } - bi = str.indexOf(b, i + 1); + this.state.result += '-' + this.state.buf; + this.state.buf = ''; + return this.next(this.parseStartTimeHour); + } else if (this.atEndOfWord()) { + return this.returnNow(createDate(this.state.result + '-' + this.state.buf)); + } else if (isDigit(this.char)) { + this.consume(); + } else { + throw this.error(new TomlError('Incomplete datetime')); } - - i = ai < bi && ai >= 0 ? ai : bi; } - if (begs.length) { - result = [left, right]; + parseStartTimeHour() { + if (this.atEndOfWord()) { + return this.returnNow(createDate(this.state.result)); + } else { + return this.goto(this.parseTimeHour); + } } - } - return result; -} + parseTimeHour() { + if (this.char === CHAR_COLON) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')); + } -var braceExpansion = expandTop; -var escSlash = '\0SLASH' + Math.random() + '\0'; -var escOpen = '\0OPEN' + Math.random() + '\0'; -var escClose = '\0CLOSE' + Math.random() + '\0'; -var escComma = '\0COMMA' + Math.random() + '\0'; -var escPeriod = '\0PERIOD' + Math.random() + '\0'; + this.state.result += 'T' + this.state.buf; + this.state.buf = ''; + return this.next(this.parseTimeMin); + } else if (isDigit(this.char)) { + this.consume(); + } else { + throw this.error(new TomlError('Incomplete datetime')); + } + } -function numeric$1(str) { - return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); -} + parseTimeMin() { + if (this.state.buf.length < 2 && isDigit(this.char)) { + this.consume(); + } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { + this.state.result += ':' + this.state.buf; + this.state.buf = ''; + return this.next(this.parseTimeSec); + } else { + throw this.error(new TomlError('Incomplete datetime')); + } + } -function escapeBraces(str) { - return str.split('\\\\').join(escSlash).split('\\{').join(escOpen).split('\\}').join(escClose).split('\\,').join(escComma).split('\\.').join(escPeriod); -} + parseTimeSec() { + if (isDigit(this.char)) { + this.consume(); -function unescapeBraces(str) { - return str.split(escSlash).join('\\').split(escOpen).join('{').split(escClose).join('}').split(escComma).join(',').split(escPeriod).join('.'); -} // Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} + if (this.state.buf.length === 2) { + this.state.result += ':' + this.state.buf; + this.state.buf = ''; + return this.next(this.parseTimeZoneOrFraction); + } + } else { + throw this.error(new TomlError('Incomplete datetime')); + } + } + parseOnlyTimeHour() { + /* istanbul ignore else */ + if (this.char === CHAR_COLON) { + if (this.state.buf.length < 2) { + throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')); + } -function parseCommaParts(str) { - if (!str) return ['']; - var parts = []; - var m = balancedMatch('{', '}', str); - if (!m) return str.split(','); - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - p[p.length - 1] += '{' + body + '}'; - var postParts = parseCommaParts(post); + this.state.result = this.state.buf; + this.state.buf = ''; + return this.next(this.parseOnlyTimeMin); + } else { + throw this.error(new TomlError('Incomplete time')); + } + } - if (post.length) { - p[p.length - 1] += postParts.shift(); - p.push.apply(p, postParts); - } + parseOnlyTimeMin() { + if (this.state.buf.length < 2 && isDigit(this.char)) { + this.consume(); + } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { + this.state.result += ':' + this.state.buf; + this.state.buf = ''; + return this.next(this.parseOnlyTimeSec); + } else { + throw this.error(new TomlError('Incomplete time')); + } + } - parts.push.apply(parts, p); - return parts; -} + parseOnlyTimeSec() { + if (isDigit(this.char)) { + this.consume(); -function expandTop(str) { - if (!str) return []; // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} + if (this.state.buf.length === 2) { + return this.next(this.parseOnlyTimeFractionMaybe); + } + } else { + throw this.error(new TomlError('Incomplete time')); + } + } - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } + parseOnlyTimeFractionMaybe() { + this.state.result += ':' + this.state.buf; - return expand(escapeBraces(str), true).map(unescapeBraces); -} + if (this.char === CHAR_PERIOD) { + this.state.buf = ''; + this.next(this.parseOnlyTimeFraction); + } else { + return this.return(createTime(this.state.result)); + } + } -function embrace(str) { - return '{' + str + '}'; -} + parseOnlyTimeFraction() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.atEndOfWord()) { + if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds')); + return this.returnNow(createTime(this.state.result + '.' + this.state.buf)); + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')); + } + } -function isPadded(el) { - return /^-?0\d/.test(el); -} + parseTimeZoneOrFraction() { + if (this.char === CHAR_PERIOD) { + this.consume(); + this.next(this.parseDateTimeFraction); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS$1) { + this.consume(); + this.next(this.parseTimeZoneHour); + } else if (this.char === CHAR_Z) { + this.consume(); + return this.return(createDatetime(this.state.result + this.state.buf)); + } else if (this.atEndOfWord()) { + return this.returnNow(createDatetimeFloat(this.state.result + this.state.buf)); + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')); + } + } -function lte(i, y) { - return i <= y; -} + parseDateTimeFraction() { + if (isDigit(this.char)) { + this.consume(); + } else if (this.state.buf.length === 1) { + throw this.error(new TomlError('Expected digit in milliseconds')); + } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS$1) { + this.consume(); + this.next(this.parseTimeZoneHour); + } else if (this.char === CHAR_Z) { + this.consume(); + return this.return(createDatetime(this.state.result + this.state.buf)); + } else if (this.atEndOfWord()) { + return this.returnNow(createDatetimeFloat(this.state.result + this.state.buf)); + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')); + } + } -function gte$1(i, y) { - return i >= y; -} + parseTimeZoneHour() { + if (isDigit(this.char)) { + this.consume(); // FIXME: No more regexps -function expand(str, isTop) { - var expansions = []; - var m = balancedMatch('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; + if (/\d\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep); + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected digit')); + } + } - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); + parseTimeZoneSep() { + if (this.char === CHAR_COLON) { + this.consume(); + this.next(this.parseTimeZoneMin); + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected colon')); + } } - return [str]; - } + parseTimeZoneMin() { + if (isDigit(this.char)) { + this.consume(); + if (/\d\d$/.test(this.state.buf)) return this.return(createDatetime(this.state.result + this.state.buf)); + } else { + throw this.error(new TomlError('Unexpected character in datetime, expected digit')); + } + } + /* BOOLEAN */ - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); + parseBoolean() { + /* istanbul ignore else */ + if (this.char === CHAR_t) { + this.consume(); + return this.next(this.parseTrue_r); + } else if (this.char === CHAR_f) { + this.consume(); + return this.next(this.parseFalse_a); + } + } - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); + parseTrue_r() { + if (this.char === CHAR_r) { + this.consume(); + return this.next(this.parseTrue_u); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); + } + } - if (n.length === 1) { - var post = m.post.length ? expand(m.post, false) : ['']; - return post.map(function (p) { - return m.pre + n[0] + p; - }); + parseTrue_u() { + if (this.char === CHAR_u) { + this.consume(); + return this.next(this.parseTrue_e); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); } } - } // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - // no need to expand pre, since it is guaranteed to be free of brace-sets + parseTrue_e() { + if (this.char === CHAR_e) { + return this.return(true); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); + } + } - var pre = m.pre; - var post = m.post.length ? expand(m.post, false) : ['']; - var N; + parseFalse_a() { + if (this.char === CHAR_a) { + this.consume(); + return this.next(this.parseFalse_l); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); + } + } - if (isSequence) { - var x = numeric$1(n[0]); - var y = numeric$1(n[1]); - var width = Math.max(n[0].length, n[1].length); - var incr = n.length == 3 ? Math.abs(numeric$1(n[2])) : 1; - var test = lte; - var reverse = y < x; + parseFalse_l() { + if (this.char === CHAR_l) { + this.consume(); + return this.next(this.parseFalse_s); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); + } + } - if (reverse) { - incr *= -1; - test = gte$1; + parseFalse_s() { + if (this.char === CHAR_s) { + this.consume(); + return this.next(this.parseFalse_e); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); + } } - var pad = n.some(isPadded); - N = []; + parseFalse_e() { + if (this.char === CHAR_e) { + return this.return(false); + } else { + throw this.error(new TomlError('Invalid boolean, expected true or false')); + } + } + /* INLINE LISTS */ - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') c = ''; + parseInlineList() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { + return null; + } else if (this.char === Parser.END) { + throw this.error(new TomlError('Unterminated inline array')); + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment); + } else if (this.char === CHAR_RSQB) { + return this.return(this.state.resultArr || InlineList()); } else { - c = String(i); + return this.callNow(this.parseValue, this.recordInlineListValue); + } + } - if (pad) { - var need = width - c.length; + recordInlineListValue(value) { + if (this.state.resultArr) { + const listType = this.state.resultArr[_contentType]; + const valueType = tomlType(value); - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) c = '-' + z + c.slice(1);else c = z + c; - } + if (listType !== valueType) { + throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`)); } + } else { + this.state.resultArr = InlineList(tomlType(value)); } - N.push(c); - } - } else { - N = concatMap(n, function (el) { - return expand(el, false); - }); - } + if (isFloat(value) || isInteger(value)) { + // unbox now that we've verified they're ok + this.state.resultArr.push(value.valueOf()); + } else { + this.state.resultArr.push(value); + } - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) expansions.push(expansion); + return this.goto(this.parseInlineListNext); } - } - - return expansions; -} - -var minimatch_1 = minimatch; -minimatch.Minimatch = Minimatch; -var path = { - sep: '/' -}; -try { - path = path__default['default']; -} catch (er) {} + parseInlineListNext() { + if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { + return null; + } else if (this.char === CHAR_NUM) { + return this.call(this.parseComment); + } else if (this.char === CHAR_COMMA$2) { + return this.next(this.parseInlineList); + } else if (this.char === CHAR_RSQB) { + return this.goto(this.parseInlineList); + } else { + throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')); + } + } + /* INLINE TABLE */ -var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; -var plTypes = { - '!': { - open: '(?:(?!(?:', - close: '))[^/]*?)' - }, - '?': { - open: '(?:', - close: ')?' - }, - '+': { - open: '(?:', - close: ')+' - }, - '*': { - open: '(?:', - close: ')*' - }, - '@': { - open: '(?:', - close: ')' - } -}; // any single thing other than / -// don't need to escape / when using new RegExp() -var qmark = '[^/]'; // * => any number of characters + parseInlineTable() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { + throw this.error(new TomlError('Unterminated inline array')); + } else if (this.char === CHAR_RCUB) { + return this.return(this.state.resultTable || InlineTable()); + } else { + if (!this.state.resultTable) this.state.resultTable = InlineTable(); + return this.callNow(this.parseAssign, this.recordInlineTableValue); + } + } -var star = qmark + '*?'; // ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. + recordInlineTableValue(kv) { + let target = this.state.resultTable; + let finalKey = kv.key.pop(); -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'; // not a ^ or / followed by a dot, -// followed by anything, any number of times. + for (let kw of kv.key) { + if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { + throw this.error(new TomlError("Can't redefine existing key")); + } -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'; // characters that need to be escaped in RegExp. + target = target[kw] = target[kw] || Table(); + } -var reSpecials = charSet('().*{}+?[]^$\\!'); // "abc" -> { a:true, b:true, c:true } + if (hasKey(target, finalKey)) { + throw this.error(new TomlError("Can't redefine existing key")); + } -function charSet(s) { - return s.split('').reduce(function (set, c) { - set[c] = true; - return set; - }, {}); -} // normalizes slashes. + if (isInteger(kv.value) || isFloat(kv.value)) { + target[finalKey] = kv.value.valueOf(); + } else { + target[finalKey] = kv.value; + } + return this.goto(this.parseInlineTableNext); + } -var slashSplit = /\/+/; -minimatch.filter = filter; + parseInlineTableNext() { + if (this.char === CHAR_SP || this.char === CTRL_I) { + return null; + } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { + throw this.error(new TomlError('Unterminated inline array')); + } else if (this.char === CHAR_COMMA$2) { + return this.next(this.parseInlineTable); + } else if (this.char === CHAR_RCUB) { + return this.goto(this.parseInlineTable); + } else { + throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')); + } + } -function filter(pattern, options) { - options = options || {}; - return function (p, i, list) { - return minimatch(p, pattern, options); - }; -} + } -function ext(a, b) { - a = a || {}; - b = b || {}; - var t = {}; - Object.keys(b).forEach(function (k) { - t[k] = b[k]; - }); - Object.keys(a).forEach(function (k) { - t[k] = a[k]; - }); - return t; + return TOMLParser; } +tomlParser.makeParserClass = makeParserClass_1; +tomlParser.TomlError = TomlError_1; -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch; - var orig = minimatch; - - var m = function minimatch(p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)); - }; +var parsePrettyError = prettyError; - m.Minimatch = function Minimatch(pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)); - }; +function prettyError(err, buf) { + /* istanbul ignore if */ + if (err.pos == null || err.line == null) return err; + let msg = err.message; + msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\n`; + /* istanbul ignore else */ - return m; -}; + if (buf && buf.split) { + const lines = buf.split(/\n/); + const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length; + let linePadding = ' '; -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch; - return minimatch.defaults(def).Minimatch; -}; + while (linePadding.length < lineNumWidth) linePadding += ' '; -function minimatch(p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required'); - } + for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) { + let lineNum = String(ii + 1); + if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum; - if (!options) options = {}; // shortcut: comments match nothing. + if (err.line === ii) { + msg += lineNum + '> ' + lines[ii] + '\n'; + msg += linePadding + ' '; - if (!options.nocomment && pattern.charAt(0) === '#') { - return false; - } // "" only matches "" + for (let hh = 0; hh < err.col; ++hh) { + msg += ' '; + } + msg += '^\n'; + } else { + msg += lineNum + ': ' + lines[ii] + '\n'; + } + } + } - if (pattern.trim() === '') return p === ''; - return new Minimatch(pattern, options).match(p); + err.message = msg + '\n'; + return err; } -function Minimatch(pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options); - } +var parseString_1$1 = parseString$2; - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required'); +function parseString$2(str) { + if (global.Buffer && global.Buffer.isBuffer(str)) { + str = str.toString('utf8'); } - if (!options) options = {}; - pattern = pattern.trim(); // windows support: need to use /, not \ + const parser = new tomlParser(); - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/'); + try { + parser.parse(str); + return parser.finish(); + } catch (err) { + throw parsePrettyError(err, str); } +} - this.options = options; - this.set = []; - this.pattern = pattern; - this.regexp = null; - this.negate = false; - this.comment = false; - this.empty = false; // make the set of regexps etc. +var loadToml = function (filePath, content) { + try { + return parseString_1$1(content); + } catch (error) { + error.message = `TOML Error in ${filePath}:\n${error.message}`; + throw error; + } +}; - this.make(); -} +// This is a generated file. Do not edit. +var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/; +var ID_Start = /[\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\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\u09FC\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\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\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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\uDD00-\uDD43]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; +var ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\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\u09FC\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-\u0AFF\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\u0C80-\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\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\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\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/; +var unicode = { + Space_Separator: Space_Separator, + ID_Start: ID_Start, + ID_Continue: ID_Continue +}; +var util$3 = { + isSpaceSeparator(c) { + return typeof c === 'string' && unicode.Space_Separator.test(c); + }, -Minimatch.prototype.debug = function () {}; + isIdStartChar(c) { + return typeof c === 'string' && (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c === '$' || c === '_' || unicode.ID_Start.test(c)); + }, -Minimatch.prototype.make = make; + isIdContinueChar(c) { + return typeof c === 'string' && (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c === '$' || c === '_' || c === '\u200C' || c === '\u200D' || unicode.ID_Continue.test(c)); + }, -function make() { - // don't do it more than once. - if (this._made) return; - var pattern = this.pattern; - var options = this.options; // empty patterns and comments match nothing. + isDigit(c) { + return typeof c === 'string' && /[0-9]/.test(c); + }, - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true; - return; + isHexDigit(c) { + return typeof c === 'string' && /[0-9A-Fa-f]/.test(c); } - if (!pattern) { - this.empty = true; - return; - } // step 1: figure out negation, etc. - +}; +let source$1; +let parseState; +let stack; +let pos; +let line$v; +let column; +let token; +let key; +let root$1; - this.parseNegate(); // step 2: expand braces +var parse$8 = function parse(text, reviver) { + source$1 = String(text); + parseState = 'start'; + stack = []; + pos = 0; + line$v = 1; + column = 0; + token = undefined; + key = undefined; + root$1 = undefined; - var set = this.globSet = this.braceExpand(); - if (options.debug) this.debug = console.error; - this.debug(this.pattern, set); // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters + do { + token = lex(); // This code is unreachable. + // if (!parseStates[parseState]) { + // throw invalidParseState() + // } - set = this.globParts = set.map(function (s) { - return s.split(slashSplit); - }); - this.debug(this.pattern, set); // glob --> regexps + parseStates[parseState](); + } while (token.type !== 'eof'); - set = set.map(function (s, si, set) { - return s.map(this.parse, this); - }, this); - this.debug(this.pattern, set); // filter out everything that didn't compile properly. + if (typeof reviver === 'function') { + return internalize({ + '': root$1 + }, '', reviver); + } - set = set.filter(function (s) { - return s.indexOf(false) === -1; - }); - this.debug(this.pattern, set); - this.set = set; -} + return root$1; +}; -Minimatch.prototype.parseNegate = parseNegate; +function internalize(holder, name, reviver) { + const value = holder[name]; -function parseNegate() { - var pattern = this.pattern; - var negate = false; - var options = this.options; - var negateOffset = 0; - if (options.nonegate) return; + if (value != null && typeof value === 'object') { + for (const key in value) { + const replacement = internalize(value, key, reviver); - for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === '!'; i++) { - negate = !negate; - negateOffset++; + if (replacement === undefined) { + delete value[key]; + } else { + value[key] = replacement; + } + } } - if (negateOffset) this.pattern = pattern.substr(negateOffset); - this.negate = negate; -} // Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c + return reviver.call(holder, name, value); +} +let lexState; +let buffer$2; +let doubleQuote; +let sign; +let c; -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options); -}; +function lex() { + lexState = 'default'; + buffer$2 = ''; + doubleQuote = false; + sign = 1; -Minimatch.prototype.braceExpand = braceExpand; + for (;;) { + c = peek(); // This code is unreachable. + // if (!lexStates[lexState]) { + // throw invalidLexState(lexState) + // } -function braceExpand(pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options; - } else { - options = {}; + const token = lexStates[lexState](); + + if (token) { + return token; } } +} + +function peek() { + if (source$1[pos]) { + return String.fromCodePoint(source$1.codePointAt(pos)); + } +} - pattern = typeof pattern === 'undefined' ? this.pattern : pattern; +function read() { + const c = peek(); - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern'); + if (c === '\n') { + line$v++; + column = 0; + } else if (c) { + column += c.length; + } else { + column++; } - if (options.nobrace || !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern]; + if (c) { + pos += c.length; } - return braceExpansion(pattern); -} // parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. + return c; +} +const lexStates = { + default() { + switch (c) { + case '\t': + case '\v': + case '\f': + case ' ': + case '\u00A0': + case '\uFEFF': + case '\n': + case '\r': + case '\u2028': + case '\u2029': + read(); + return; -Minimatch.prototype.parse = parse$1; -var SUBPARSE = {}; + case '/': + read(); + lexState = 'comment'; + return; -function parse$1(pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long'); - } + case undefined: + read(); + return newToken('eof'); + } - var options = this.options; // shortcuts + if (util$3.isSpaceSeparator(c)) { + read(); + return; + } // This code is unreachable. + // if (!lexStates[parseState]) { + // throw invalidLexState(parseState) + // } - if (!options.noglobstar && pattern === '**') return GLOBSTAR; - if (pattern === '') return ''; - var re = ''; - var hasMagic = !!options.nocase; - var escaping = false; // ? => one single character - var patternListStack = []; - var negativeLists = []; - var stateChar; - var inClass = false; - var reClassStart = -1; - var classStart = -1; // . and .. never match anything that doesn't start with ., - // even when options.dot is set. + return lexStates[parseState](); + }, - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' : '(?!\\.)'; - var self = this; + comment() { + switch (c) { + case '*': + read(); + lexState = 'multiLineComment'; + return; - function clearStateChar() { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star; - hasMagic = true; - break; + case '/': + read(); + lexState = 'singleLineComment'; + return; + } - case '?': - re += qmark; - hasMagic = true; - break; + throw invalidChar(read()); + }, - default: - re += '\\' + stateChar; - break; - } + multiLineComment() { + switch (c) { + case '*': + read(); + lexState = 'multiLineCommentAsterisk'; + return; - self.debug('clearStateChar %j %j', stateChar, re); - stateChar = false; + case undefined: + throw invalidChar(read()); } - } - - for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c); // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c; - escaping = false; - continue; - } + read(); + }, + multiLineCommentAsterisk() { switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false; + case '*': + read(); + return; - case '\\': - clearStateChar(); - escaping = true; - continue; - // the various stateChar values - // for the "extglob" stuff. + case '/': + read(); + lexState = 'default'; + return; - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c); // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp + case undefined: + throw invalidChar(read()); + } - if (inClass) { - this.debug(' in class'); - if (c === '!' && i === classStart + 1) c = '^'; - re += c; - continue; - } // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. + read(); + lexState = 'multiLineComment'; + }, + singleLineComment() { + switch (c) { + case '\n': + case '\r': + case '\u2028': + case '\u2029': + read(); + lexState = 'default'; + return; - self.debug('call clearStateChar %j', stateChar); - clearStateChar(); - stateChar = c; // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. + case undefined: + read(); + return newToken('eof'); + } - if (options.noext) clearStateChar(); - continue; + read(); + }, - case '(': - if (inClass) { - re += '('; - continue; - } + value() { + switch (c) { + case '{': + case '[': + return newToken('punctuator', read()); - if (!stateChar) { - re += '\\('; - continue; - } + case 'n': + read(); + literal$1('ull'); + return newToken('null', null); - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }); // negation is (?:(?!js)[^/]*) + case 't': + read(); + literal$1('rue'); + return newToken('boolean', true); - re += stateChar === '!' ? '(?:(?!(?:' : '(?:'; - this.debug('plType %j %j', stateChar, re); - stateChar = false; - continue; + case 'f': + read(); + literal$1('alse'); + return newToken('boolean', false); - case ')': - if (inClass || !patternListStack.length) { - re += '\\)'; - continue; + case '-': + case '+': + if (read() === '-') { + sign = -1; } - clearStateChar(); - hasMagic = true; - var pl = patternListStack.pop(); // negation is (?:(?!js)[^/]*) - // The others are (?:) + lexState = 'sign'; + return; - re += pl.close; + case '.': + buffer$2 = read(); + lexState = 'decimalPointLeading'; + return; - if (pl.type === '!') { - negativeLists.push(pl); - } + case '0': + buffer$2 = read(); + lexState = 'zero'; + return; - pl.reEnd = re.length; - continue; + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + buffer$2 = read(); + lexState = 'decimalInteger'; + return; - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|'; - escaping = false; - continue; - } + case 'I': + read(); + literal$1('nfinity'); + return newToken('numeric', Infinity); - clearStateChar(); - re += '|'; - continue; - // these are mostly the same in regexp and glob + case 'N': + read(); + literal$1('aN'); + return newToken('numeric', NaN); - case '[': - // swallow any state-tracking char before the [ - clearStateChar(); + case '"': + case "'": + doubleQuote = read() === '"'; + buffer$2 = ''; + lexState = 'string'; + return; + } - if (inClass) { - re += '\\' + c; - continue; - } + throw invalidChar(read()); + }, - inClass = true; - classStart = i; - reClassStart = re.length; - re += c; - continue; + identifierNameStartEscape() { + if (c !== 'u') { + throw invalidChar(read()); + } - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c; - escaping = false; - continue; - } // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" + read(); + const u = unicodeEscape(); + switch (u) { + case '$': + case '_': + break; - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i); + default: + if (!util$3.isIdStartChar(u)) { + throw invalidIdentifier(); + } - try { - RegExp('[' + cs + ']'); - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE); - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'; - hasMagic = hasMagic || sp[1]; - inClass = false; - continue; - } - } // finish up the class. + break; + } + buffer$2 += u; + lexState = 'identifierName'; + }, - hasMagic = true; - inClass = false; - re += c; - continue; + identifierName() { + switch (c) { + case '$': + case '_': + case '\u200C': + case '\u200D': + buffer$2 += read(); + return; - default: - // swallow any state char that wasn't consumed - clearStateChar(); + case '\\': + read(); + lexState = 'identifierNameEscape'; + return; + } - if (escaping) { - // no need - escaping = false; - } else if (reSpecials[c] && !(c === '^' && inClass)) { - re += '\\'; - } + if (util$3.isIdContinueChar(c)) { + buffer$2 += read(); + return; + } - re += c; - } // switch + return newToken('identifier', buffer$2); + }, - } // for - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" + identifierNameEscape() { + if (c !== 'u') { + throw invalidChar(read()); + } + read(); + const u = unicodeEscape(); - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1); - sp = this.parse(cs, SUBPARSE); - re = re.substr(0, reClassStart) + '\\[' + sp[0]; - hasMagic = hasMagic || sp[1]; - } // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. + switch (u) { + case '$': + case '_': + case '\u200C': + case '\u200D': + break; + default: + if (!util$3.isIdContinueChar(u)) { + throw invalidIdentifier(); + } - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length); - this.debug('setting tail', re, pl); // maybe some even number of \, then maybe 1 \, followed by a | + break; + } - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\'; - } // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. + buffer$2 += u; + lexState = 'identifierName'; + }, + + sign() { + switch (c) { + case '.': + buffer$2 = read(); + lexState = 'decimalPointLeading'; + return; + case '0': + buffer$2 = read(); + lexState = 'zero'; + return; - return $1 + $1 + $2 + '|'; - }); - this.debug('tail=%j\n %s', tail, tail, pl, re); - var t = pl.type === '*' ? star : pl.type === '?' ? qmark : '\\' + pl.type; - hasMagic = true; - re = re.slice(0, pl.reStart) + t + '\\(' + tail; - } // handle trailing things that only matter at the very end. + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + buffer$2 = read(); + lexState = 'decimalInteger'; + return; + case 'I': + read(); + literal$1('nfinity'); + return newToken('numeric', sign * Infinity); - clearStateChar(); + case 'N': + read(); + literal$1('aN'); + return newToken('numeric', NaN); + } - if (escaping) { - // trailing \\ - re += '\\\\'; - } // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot + throw invalidChar(read()); + }, + zero() { + switch (c) { + case '.': + buffer$2 += read(); + lexState = 'decimalPoint'; + return; - var addPatternStart = false; + case 'e': + case 'E': + buffer$2 += read(); + lexState = 'decimalExponent'; + return; - switch (re.charAt(0)) { - case '.': - case '[': - case '(': - addPatternStart = true; - } // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. + case 'x': + case 'X': + buffer$2 += read(); + lexState = 'hexadecimal'; + return; + } + return newToken('numeric', sign * 0); + }, - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n]; - var nlBefore = re.slice(0, nl.reStart); - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8); - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd); - var nlAfter = re.slice(nl.reEnd); - nlLast += nlAfter; // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. + decimalInteger() { + switch (c) { + case '.': + buffer$2 += read(); + lexState = 'decimalPoint'; + return; - var openParensBefore = nlBefore.split('(').length - 1; - var cleanAfter = nlAfter; + case 'e': + case 'E': + buffer$2 += read(); + lexState = 'decimalExponent'; + return; + } - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, ''); + if (util$3.isDigit(c)) { + buffer$2 += read(); + return; } - nlAfter = cleanAfter; - var dollar = ''; + return newToken('numeric', sign * Number(buffer$2)); + }, - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$'; + decimalPointLeading() { + if (util$3.isDigit(c)) { + buffer$2 += read(); + lexState = 'decimalFraction'; + return; } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast; - re = newRe; - } // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. + throw invalidChar(read()); + }, + decimalPoint() { + switch (c) { + case 'e': + case 'E': + buffer$2 += read(); + lexState = 'decimalExponent'; + return; + } - if (re !== '' && hasMagic) { - re = '(?=.)' + re; - } + if (util$3.isDigit(c)) { + buffer$2 += read(); + lexState = 'decimalFraction'; + return; + } - if (addPatternStart) { - re = patternStart + re; - } // parsing just a piece of a larger pattern. + return newToken('numeric', sign * Number(buffer$2)); + }, + decimalFraction() { + switch (c) { + case 'e': + case 'E': + buffer$2 += read(); + lexState = 'decimalExponent'; + return; + } - if (isSub === SUBPARSE) { - return [re, hasMagic]; - } // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. + if (util$3.isDigit(c)) { + buffer$2 += read(); + return; + } + return newToken('numeric', sign * Number(buffer$2)); + }, - if (!hasMagic) { - return globUnescape(pattern); - } + decimalExponent() { + switch (c) { + case '+': + case '-': + buffer$2 += read(); + lexState = 'decimalExponentSign'; + return; + } - var flags = options.nocase ? 'i' : ''; + if (util$3.isDigit(c)) { + buffer$2 += read(); + lexState = 'decimalExponentInteger'; + return; + } - try { - var regExp = new RegExp('^' + re + '$', flags); - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.'); - } + throw invalidChar(read()); + }, - regExp._glob = pattern; - regExp._src = re; - return regExp; -} + decimalExponentSign() { + if (util$3.isDigit(c)) { + buffer$2 += read(); + lexState = 'decimalExponentInteger'; + return; + } -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe(); -}; + throw invalidChar(read()); + }, -Minimatch.prototype.makeRe = makeRe; + decimalExponentInteger() { + if (util$3.isDigit(c)) { + buffer$2 += read(); + return; + } -function makeRe() { - if (this.regexp || this.regexp === false) return this.regexp; // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. + return newToken('numeric', sign * Number(buffer$2)); + }, - var set = this.set; + hexadecimal() { + if (util$3.isHexDigit(c)) { + buffer$2 += read(); + lexState = 'hexadecimalInteger'; + return; + } - if (!set.length) { - this.regexp = false; - return this.regexp; - } + throw invalidChar(read()); + }, - var options = this.options; - var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot; - var flags = options.nocase ? 'i' : ''; - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return p === GLOBSTAR ? twoStar : typeof p === 'string' ? regExpEscape(p) : p._src; - }).join('\\\/'); - }).join('|'); // must match entire pattern - // ending in a * or ** will make it less strict. + hexadecimalInteger() { + if (util$3.isHexDigit(c)) { + buffer$2 += read(); + return; + } - re = '^(?:' + re + ')$'; // can match anything, as long as it's not this. + return newToken('numeric', sign * Number(buffer$2)); + }, - if (this.negate) re = '^(?!' + re + ').*$'; + string() { + switch (c) { + case '\\': + read(); + buffer$2 += escape(); + return; - try { - this.regexp = new RegExp(re, flags); - } catch (ex) { - this.regexp = false; - } + case '"': + if (doubleQuote) { + read(); + return newToken('string', buffer$2); + } - return this.regexp; -} + buffer$2 += read(); + return; -minimatch.match = function (list, pattern, options) { - options = options || {}; - var mm = new Minimatch(pattern, options); - list = list.filter(function (f) { - return mm.match(f); - }); + case "'": + if (!doubleQuote) { + read(); + return newToken('string', buffer$2); + } - if (mm.options.nonull && !list.length) { - list.push(pattern); - } + buffer$2 += read(); + return; - return list; -}; + case '\n': + case '\r': + throw invalidChar(read()); -Minimatch.prototype.match = match; + case '\u2028': + case '\u2029': + separatorChar(c); + break; -function match(f, partial) { - this.debug('match', f, this.pattern); // short-circuit in the case of busted things. - // comments, etc. + case undefined: + throw invalidChar(read()); + } - if (this.comment) return false; - if (this.empty) return f === ''; - if (f === '/' && partial) return true; - var options = this.options; // windows: need to use /, not \ + buffer$2 += read(); + }, - if (path.sep !== '/') { - f = f.split(path.sep).join('/'); - } // treat the test path as a set of pathparts. + start() { + switch (c) { + case '{': + case '[': + return newToken('punctuator', read()); + // This code is unreachable since the default lexState handles eof. + // case undefined: + // return newToken('eof') + } + lexState = 'value'; + }, - f = f.split(slashSplit); - this.debug(this.pattern, 'split', f); // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. + beforePropertyName() { + switch (c) { + case '$': + case '_': + buffer$2 = read(); + lexState = 'identifierName'; + return; - var set = this.set; - this.debug(this.pattern, 'set', set); // Find the basename of the path by looking for the last non-empty segment + case '\\': + read(); + lexState = 'identifierNameStartEscape'; + return; - var filename; - var i; + case '}': + return newToken('punctuator', read()); - for (i = f.length - 1; i >= 0; i--) { - filename = f[i]; - if (filename) break; - } + case '"': + case "'": + doubleQuote = read() === '"'; + lexState = 'string'; + return; + } - for (i = 0; i < set.length; i++) { - var pattern = set[i]; - var file = f; + if (util$3.isIdStartChar(c)) { + buffer$2 += read(); + lexState = 'identifierName'; + return; + } - if (options.matchBase && pattern.length === 1) { - file = [filename]; + throw invalidChar(read()); + }, + + afterPropertyName() { + if (c === ':') { + return newToken('punctuator', read()); } - var hit = this.matchOne(file, pattern, partial); + throw invalidChar(read()); + }, - if (hit) { - if (options.flipNegate) return true; - return !this.negate; + beforePropertyValue() { + lexState = 'value'; + }, + + afterPropertyValue() { + switch (c) { + case ',': + case '}': + return newToken('punctuator', read()); } - } // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. + throw invalidChar(read()); + }, - if (options.flipNegate) return false; - return this.negate; -} // set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. + beforeArrayValue() { + if (c === ']') { + return newToken('punctuator', read()); + } + lexState = 'value'; + }, -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options; - this.debug('matchOne', { - 'this': this, - file: file, - pattern: pattern - }); - this.debug('matchOne', file.length, pattern.length); + afterArrayValue() { + switch (c) { + case ',': + case ']': + return newToken('punctuator', read()); + } - for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { - this.debug('matchOne loop'); - var p = pattern[pi]; - var f = file[fi]; - this.debug(pattern, p, f); // should be impossible. - // some invalid regexp stuff in the set. + throw invalidChar(read()); + }, - if (p === false) return false; + end() { + // This code is unreachable since it's handled by the default lexState. + // if (c === undefined) { + // read() + // return newToken('eof') + // } + throw invalidChar(read()); + } - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]); // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit +}; - var fr = fi; - var pr = pi + 1; +function newToken(type, value) { + return { + type, + value, + line: line$v, + column + }; +} - if (pr === pl) { - this.debug('** at the end'); // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. +function literal$1(s) { + for (const c of s) { + const p = peek(); - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || !options.dot && file[fi].charAt(0) === '.') return false; - } + if (p !== c) { + throw invalidChar(read()); + } - return true; - } // ok, let's see if we can swallow whatever we can. + read(); + } +} +function escape() { + const c = peek(); - while (fr < fl) { - var swallowee = file[fr]; - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee); // XXX remove this slice. Just pass the start index. + switch (c) { + case 'b': + read(); + return '\b'; - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee); // found a match. + case 'f': + read(); + return '\f'; - return true; - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || !options.dot && swallowee.charAt(0) === '.') { - this.debug('dot detected!', file, fr, pattern, pr); - break; - } // ** swallows a segment, and continue. + case 'n': + read(); + return '\n'; + case 'r': + read(); + return '\r'; - this.debug('globstar swallow a segment, and continue'); - fr++; - } - } // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then + case 't': + read(); + return '\t'; + + case 'v': + read(); + return '\v'; + case '0': + read(); - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr); - if (fr === fl) return true; + if (util$3.isDigit(peek())) { + throw invalidChar(read()); } - return false; - } // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. + return '\0'; + + case 'x': + read(); + return hexEscape(); + case 'u': + read(); + return unicodeEscape(); - var hit; + case '\n': + case '\u2028': + case '\u2029': + read(); + return ''; - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase(); - } else { - hit = f === p; + case '\r': + read(); + + if (peek() === '\n') { + read(); } - this.debug('string match', p, f, hit); - } else { - hit = f.match(p); - this.debug('pattern match', p, f, hit); - } + return ''; - if (!hit) return false; - } // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - // now either we fell off the end of the pattern, or we're done. + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + throw invalidChar(read()); + case undefined: + throw invalidChar(read()); + } - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true; - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial; - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = fi === fl - 1 && file[fi] === ''; - return emptyFileEnd; - } // should be unreachable. + return read(); +} +function hexEscape() { + let buffer = ''; + let c = peek(); - throw new Error('wtf?'); -}; // replace stuff like \* with * + if (!util$3.isHexDigit(c)) { + throw invalidChar(read()); + } + buffer += read(); + c = peek(); -function globUnescape(s) { - return s.replace(/\\(.)/g, '$1'); -} + if (!util$3.isHexDigit(c)) { + throw invalidChar(read()); + } -function regExpEscape(s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); + buffer += read(); + return String.fromCodePoint(parseInt(buffer, 16)); } -const copyProperty = (to, from, property, ignoreNonConfigurable) => { - // `Function#length` should reflect the parameters of `to` not `from` since we keep its body. - // `Function#prototype` is non-writable and non-configurable so can never be modified. - if (property === 'length' || property === 'prototype') { - return; +function unicodeEscape() { + let buffer = ''; + let count = 4; + + while (count-- > 0) { + const c = peek(); + + if (!util$3.isHexDigit(c)) { + throw invalidChar(read()); + } + + buffer += read(); } - const toDescriptor = Object.getOwnPropertyDescriptor(to, property); - const fromDescriptor = Object.getOwnPropertyDescriptor(from, property); + return String.fromCodePoint(parseInt(buffer, 16)); +} - if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) { - return; - } +const parseStates = { + start() { + if (token.type === 'eof') { + throw invalidEOF(); + } - Object.defineProperty(to, property, fromDescriptor); -}; // `Object.defineProperty()` throws if the property exists, is not configurable and either: -// - one its descriptors is changed -// - it is non-writable and its value is changed + push$1(); + }, + beforePropertyName() { + switch (token.type) { + case 'identifier': + case 'string': + key = token.value; + parseState = 'afterPropertyName'; + return; -const canCopyProperty = function (toDescriptor, fromDescriptor) { - return toDescriptor === undefined || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value); -}; + case 'punctuator': + // This code is unreachable since it's handled by the lexState. + // if (token.value !== '}') { + // throw invalidToken() + // } + pop(); + return; -const changePrototype = (to, from) => { - const fromPrototype = Object.getPrototypeOf(from); + case 'eof': + throw invalidEOF(); + } // This code is unreachable since it's handled by the lexState. + // throw invalidToken() - if (fromPrototype === Object.getPrototypeOf(to)) { - return; - } + }, - Object.setPrototypeOf(to, fromPrototype); -}; + afterPropertyName() { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'punctuator' || token.value !== ':') { + // throw invalidToken() + // } + if (token.type === 'eof') { + throw invalidEOF(); + } -const wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\n${fromBody}`; + parseState = 'beforePropertyValue'; + }, -const toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString'); -const toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name'); // We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected. -// We use `bind()` instead of a closure for the same reason. -// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times. + beforePropertyValue() { + if (token.type === 'eof') { + throw invalidEOF(); + } -const changeToString = (to, from, name) => { - const withName = name === '' ? '' : `with ${name.trim()}() `; - const newToString = wrappedToString.bind(null, withName, from.toString()); // Ensure `to.toString.toString` is non-enumerable and has the same `same` + push$1(); + }, - Object.defineProperty(newToString, 'name', toStringName); - Object.defineProperty(to, 'toString', Object.assign({}, toStringDescriptor, { - value: newToString - })); -}; + beforeArrayValue() { + if (token.type === 'eof') { + throw invalidEOF(); + } -const mimicFn = (to, from, { - ignoreNonConfigurable = false -} = {}) => { - const { - name - } = to; + if (token.type === 'punctuator' && token.value === ']') { + pop(); + return; + } - for (const property of Reflect.ownKeys(from)) { - copyProperty(to, from, property, ignoreNonConfigurable); - } + push$1(); + }, - changePrototype(to, from); - changeToString(to, from, name); - return to; -}; + afterPropertyValue() { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'punctuator') { + // throw invalidToken() + // } + if (token.type === 'eof') { + throw invalidEOF(); + } -var mimicFn_1 = mimicFn; + switch (token.value) { + case ',': + parseState = 'beforePropertyName'; + return; -var pDefer = () => { - const ret = {}; - ret.promise = new Promise((resolve, reject) => { - ret.resolve = resolve; - ret.reject = reject; - }); - return ret; -}; + case '}': + pop(); + } // This code is unreachable since it's handled by the lexState. + // throw invalidToken() -var dist = createCommonjsModule(function (module, exports) { + }, - var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } + afterArrayValue() { + // This code is unreachable since it's handled by the lexState. + // if (token.type !== 'punctuator') { + // throw invalidToken() + // } + if (token.type === 'eof') { + throw invalidEOF(); + } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } + switch (token.value) { + case ',': + parseState = 'beforeArrayValue'; + return; - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } + case ']': + pop(); + } // This code is unreachable since it's handled by the lexState. + // throw invalidToken() - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; + }, - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; + end() {// This code is unreachable since it's handled by the lexState. + // if (token.type !== 'eof') { + // throw invalidToken() + // } + } - Object.defineProperty(exports, "__esModule", { - value: true - }); +}; - const p_defer_1 = __importDefault(pDefer); +function push$1() { + let value; - function mapAgeCleaner(map, property = 'maxAge') { - let processingKey; - let processingTimer; - let processingDeferred; + switch (token.type) { + case 'punctuator': + switch (token.value) { + case '{': + value = {}; + break; - const cleanup = () => __awaiter(this, void 0, void 0, function* () { - if (processingKey !== undefined) { - // If we are already processing an item, we can safely exit - return; + case '[': + value = []; + break; } - const setupTimer = item => __awaiter(this, void 0, void 0, function* () { - processingDeferred = p_defer_1.default(); - const delay = item[1][property] - Date.now(); + break; - if (delay <= 0) { - // Remove the item immediately if the delay is equal to or below 0 - map.delete(item[0]); - processingDeferred.resolve(); - return; - } // Keep track of the current processed key + case 'null': + case 'boolean': + case 'numeric': + case 'string': + value = token.value; + break; + // This code is unreachable. + // default: + // throw invalidToken() + } + if (root$1 === undefined) { + root$1 = value; + } else { + const parent = stack[stack.length - 1]; - processingKey = item[0]; - processingTimer = setTimeout(() => { - // Remove the item when the timeout fires - map.delete(item[0]); + if (Array.isArray(parent)) { + parent.push(value); + } else { + parent[key] = value; + } + } - if (processingDeferred) { - processingDeferred.resolve(); - } - }, delay); // tslint:disable-next-line:strict-type-predicates + if (value !== null && typeof value === 'object') { + stack.push(value); - if (typeof processingTimer.unref === 'function') { - // Don't hold up the process from exiting - processingTimer.unref(); - } + if (Array.isArray(value)) { + parseState = 'beforeArrayValue'; + } else { + parseState = 'beforePropertyName'; + } + } else { + const current = stack[stack.length - 1]; - return processingDeferred.promise; - }); + if (current == null) { + parseState = 'end'; + } else if (Array.isArray(current)) { + parseState = 'afterArrayValue'; + } else { + parseState = 'afterPropertyValue'; + } + } +} - try { - for (const entry of map) { - yield setupTimer(entry); - } - } catch (_a) {// Do nothing if an error occurs, this means the timer was cleaned up and we should stop processing - } +function pop() { + stack.pop(); + const current = stack[stack.length - 1]; - processingKey = undefined; - }); + if (current == null) { + parseState = 'end'; + } else if (Array.isArray(current)) { + parseState = 'afterArrayValue'; + } else { + parseState = 'afterPropertyValue'; + } +} // This code is unreachable. +// function invalidParseState () { +// return new Error(`JSON5: invalid parse state '${parseState}'`) +// } +// This code is unreachable. +// function invalidLexState (state) { +// return new Error(`JSON5: invalid lex state '${state}'`) +// } - const reset = () => { - processingKey = undefined; - if (processingTimer !== undefined) { - clearTimeout(processingTimer); - processingTimer = undefined; - } +function invalidChar(c) { + if (c === undefined) { + return syntaxError$2(`JSON5: invalid end of input at ${line$v}:${column}`); + } - if (processingDeferred !== undefined) { - // tslint:disable-line:early-exit - processingDeferred.reject(undefined); - processingDeferred = undefined; - } - }; + return syntaxError$2(`JSON5: invalid character '${formatChar(c)}' at ${line$v}:${column}`); +} - const originalSet = map.set.bind(map); +function invalidEOF() { + return syntaxError$2(`JSON5: invalid end of input at ${line$v}:${column}`); +} // This code is unreachable. +// function invalidToken () { +// if (token.type === 'eof') { +// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) +// } +// const c = String.fromCodePoint(token.value.codePointAt(0)) +// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) +// } - map.set = (key, value) => { - if (map.has(key)) { - // If the key already exist, remove it so we can add it back at the end of the map. - map.delete(key); - } // Call the original `map.set` +function invalidIdentifier() { + column -= 5; + return syntaxError$2(`JSON5: invalid identifier character at ${line$v}:${column}`); +} - const result = originalSet(key, value); // If we are already processing a key and the key added is the current processed key, stop processing it +function separatorChar(c) { + console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`); +} - if (processingKey && processingKey === key) { - reset(); - } // Always run the cleanup method in case it wasn't started yet +function formatChar(c) { + const replacements = { + "'": "\\'", + '"': '\\"', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\v': '\\v', + '\0': '\\0', + '\u2028': '\\u2028', + '\u2029': '\\u2029' + }; + if (replacements[c]) { + return replacements[c]; + } - cleanup(); // tslint:disable-line:no-floating-promises + if (c < ' ') { + const hexString = c.charCodeAt(0).toString(16); + return '\\x' + ('00' + hexString).substring(hexString.length); + } - return result; - }; + return c; +} - cleanup(); // tslint:disable-line:no-floating-promises +function syntaxError$2(message) { + const err = new SyntaxError(message); + err.lineNumber = line$v; + err.columnNumber = column; + return err; +} - return map; +var stringify$3 = function stringify(value, replacer, space) { + const stack = []; + let indent = ''; + let propertyList; + let replacerFunc; + let gap = ''; + let quote; + + if (replacer != null && typeof replacer === 'object' && !Array.isArray(replacer)) { + space = replacer.space; + quote = replacer.quote; + replacer = replacer.replacer; } - exports.default = mapAgeCleaner; // Add support for CJS + if (typeof replacer === 'function') { + replacerFunc = replacer; + } else if (Array.isArray(replacer)) { + propertyList = []; - module.exports = mapAgeCleaner; - module.exports.default = mapAgeCleaner; -}); + for (const v of replacer) { + let item; -const cacheStore = new WeakMap(); + if (typeof v === 'string') { + item = v; + } else if (typeof v === 'number' || v instanceof String || v instanceof Number) { + item = String(v); + } -const mem = (fn, options = {}) => { - // Automatically use WeakMap unless the user provided their own cache - const weakCache = options.cache || new WeakMap(); - const { - cacheKey = ([firstArgument]) => firstArgument, - cache = new Map(), - maxAge - } = options; + if (item !== undefined && propertyList.indexOf(item) < 0) { + propertyList.push(item); + } + } + } - if (typeof maxAge === 'number') { - dist(cache); + if (space instanceof Number) { + space = Number(space); + } else if (space instanceof String) { + space = String(space); } - const memoized = function (...arguments_) { - const key = cacheKey(arguments_); // Prefer WeakMap if the key allows it + if (typeof space === 'number') { + if (space > 0) { + space = Math.min(10, Math.floor(space)); + gap = ' '.substr(0, space); + } + } else if (typeof space === 'string') { + gap = space.substr(0, 10); + } + + return serializeProperty('', { + '': value + }); - const bestCache = key && (typeof key === 'object' || typeof key === 'function') ? weakCache : cache; + function serializeProperty(key, holder) { + let value = holder[key]; - if (bestCache.has(key)) { - return bestCache.get(key).data; + if (value != null) { + if (typeof value.toJSON5 === 'function') { + value = value.toJSON5(key); + } else if (typeof value.toJSON === 'function') { + value = value.toJSON(key); + } } - const cacheItem = fn.apply(this, arguments_); - bestCache.set(key, { - data: cacheItem, - maxAge: maxAge ? Date.now() + maxAge : Infinity - }); - return cacheItem; - }; - - try { - // The below call will throw in some host environments - // See https://github.com/sindresorhus/mimic-fn/issues/10 - mimicFn_1(memoized, fn); - } catch (_) {} + if (replacerFunc) { + value = replacerFunc.call(holder, key, value); + } - cacheStore.set(memoized, cache); - return memoized; -}; + if (value instanceof Number) { + value = Number(value); + } else if (value instanceof String) { + value = String(value); + } else if (value instanceof Boolean) { + value = value.valueOf(); + } -var mem_1 = mem; + switch (value) { + case null: + return 'null'; -var clear = fn => { - if (!cacheStore.has(fn)) { - throw new Error('Can\'t clear a function that was not memoized!'); - } + case true: + return 'true'; - const cache = cacheStore.get(fn); + case false: + return 'false'; + } - if (typeof cache.clear === 'function') { - cache.clear(); - } -}; -mem_1.clear = clear; + if (typeof value === 'string') { + return quoteString(value); + } -var thirdParty = require("./third-party"); + if (typeof value === 'number') { + return String(value); + } -const ParserEND = 0x110000; + if (typeof value === 'object') { + return Array.isArray(value) ? serializeArray(value) : serializeObject(value); + } -class ParserError extends Error { - /* istanbul ignore next */ - constructor(msg, filename, linenumber) { - super('[ParserError] ' + msg, filename, linenumber); - this.name = 'ParserError'; - this.code = 'ParserError'; - if (Error.captureStackTrace) Error.captureStackTrace(this, ParserError); + return undefined; } -} + function quoteString(value) { + const quotes = { + "'": 0.1, + '"': 0.2 + }; + const replacements = { + "'": "\\'", + '"': '\\"', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\v': '\\v', + '\0': '\\0', + '\u2028': '\\u2028', + '\u2029': '\\u2029' + }; + let product = ''; -class State { - constructor(parser) { - this.parser = parser; - this.buf = ''; - this.returned = null; - this.result = null; - this.resultTable = null; - this.resultArr = null; - } + for (let i = 0; i < value.length; i++) { + const c = value[i]; + + switch (c) { + case "'": + case '"': + quotes[c]++; + product += c; + continue; + + case '\0': + if (util$3.isDigit(value[i + 1])) { + product += '\\x00'; + continue; + } -} + } -class Parser { - constructor() { - this.pos = 0; - this.col = 0; - this.line = 0; - this.obj = {}; - this.ctx = this.obj; - this.stack = []; - this._buf = ''; - this.char = null; - this.ii = 0; - this.state = new State(this.parseStart); - } + if (replacements[c]) { + product += replacements[c]; + continue; + } - parse(str) { - /* istanbul ignore next */ - if (str.length === 0 || str.length == null) return; - this._buf = String(str); - this.ii = -1; - this.char = -1; - let getNext; + if (c < ' ') { + let hexString = c.charCodeAt(0).toString(16); + product += '\\x' + ('00' + hexString).substring(hexString.length); + continue; + } - while (getNext === false || this.nextChar()) { - getNext = this.runOne(); + product += c; } - this._buf = null; + const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b); + product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]); + return quoteChar + product + quoteChar; } - nextChar() { - if (this.char === 0x0A) { - ++this.line; - this.col = -1; + function serializeObject(value) { + if (stack.indexOf(value) >= 0) { + throw TypeError('Converting circular structure to JSON5'); } - ++this.ii; - this.char = this._buf.codePointAt(this.ii); - ++this.pos; - ++this.col; - return this.haveBuffer(); - } + stack.push(value); + let stepback = indent; + indent = indent + gap; + let keys = propertyList || Object.keys(value); + let partial = []; - haveBuffer() { - return this.ii < this._buf.length; - } + for (const key of keys) { + const propertyString = serializeProperty(key, value); - runOne() { - return this.state.parser.call(this, this.state.returned); - } + if (propertyString !== undefined) { + let member = serializeKey(key) + ':'; - finish() { - this.char = ParserEND; - let last; + if (gap !== '') { + member += ' '; + } - do { - last = this.state.parser; - this.runOne(); - } while (this.state.parser !== last); + member += propertyString; + partial.push(member); + } + } - this.ctx = null; - this.state = null; - this._buf = null; - return this.obj; - } + let final; - next(fn) { - /* istanbul ignore next */ - if (typeof fn !== 'function') throw new ParserError('Tried to set state to non-existent state: ' + JSON.stringify(fn)); - this.state.parser = fn; - } + if (partial.length === 0) { + final = '{}'; + } else { + let properties; - goto(fn) { - this.next(fn); - return this.runOne(); - } + if (gap === '') { + properties = partial.join(','); + final = '{' + properties + '}'; + } else { + let separator = ',\n' + indent; + properties = partial.join(separator); + final = '{\n' + indent + properties + ',\n' + stepback + '}'; + } + } - call(fn, returnWith) { - if (returnWith) this.next(returnWith); - this.stack.push(this.state); - this.state = new State(fn); + stack.pop(); + indent = stepback; + return final; } - callNow(fn, returnWith) { - this.call(fn, returnWith); - return this.runOne(); - } + function serializeKey(key) { + if (key.length === 0) { + return quoteString(key); + } - return(value) { - /* istanbul ignore next */ - if (this.stack.length === 0) throw this.error(new ParserError('Stack underflow')); - if (value === undefined) value = this.state.buf; - this.state = this.stack.pop(); - this.state.returned = value; - } + const firstChar = String.fromCodePoint(key.codePointAt(0)); - returnNow(value) { - this.return(value); - return this.runOne(); - } + if (!util$3.isIdStartChar(firstChar)) { + return quoteString(key); + } - consume() { - /* istanbul ignore next */ - if (this.char === ParserEND) throw this.error(new ParserError('Unexpected end-of-buffer')); - this.state.buf += this._buf[this.ii]; - } + for (let i = firstChar.length; i < key.length; i++) { + if (!util$3.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { + return quoteString(key); + } + } - error(err) { - err.line = this.line; - err.col = this.col; - err.pos = this.pos; - return err; + return key; } - /* istanbul ignore next */ + function serializeArray(value) { + if (stack.indexOf(value) >= 0) { + throw TypeError('Converting circular structure to JSON5'); + } - parseStart() { - throw new ParserError('Must declare a parseStart method'); - } + stack.push(value); + let stepback = indent; + indent = indent + gap; + let partial = []; -} + for (let i = 0; i < value.length; i++) { + const propertyString = serializeProperty(String(i), value); + partial.push(propertyString !== undefined ? propertyString : 'null'); + } -Parser.END = ParserEND; -Parser.Error = ParserError; -var parser$1 = Parser; + let final; -var createDatetime = value => { - const date = new Date(value); - /* istanbul ignore if */ + if (partial.length === 0) { + final = '[]'; + } else { + if (gap === '') { + let properties = partial.join(','); + final = '[' + properties + ']'; + } else { + let separator = ',\n' + indent; + let properties = partial.join(separator); + final = '[\n' + indent + properties + ',\n' + stepback + ']'; + } + } - if (isNaN(date)) { - throw new TypeError('Invalid Datetime'); - } else { - return date; + stack.pop(); + indent = stepback; + return final; } }; -var formatNum = (d, num) => { - num = String(num); +const JSON5 = { + parse: parse$8, + stringify: stringify$3 +}; +var lib = JSON5; - while (num.length < d) num = '0' + num; +var dist = /*#__PURE__*/Object.freeze({ + __proto__: null, + 'default': lib +}); - return num; -}; +var require$$0$7 = /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(dist); -class FloatingDateTime extends Date { - constructor(value) { - super(value + 'Z'); - this.isFloating = true; - } +const { + parse: parse$7 +} = require$$0$7; - toISOString() { - const date = `${this.getUTCFullYear()}-${formatNum(2, this.getUTCMonth() + 1)}-${formatNum(2, this.getUTCDate())}`; - const time = `${formatNum(2, this.getUTCHours())}:${formatNum(2, this.getUTCMinutes())}:${formatNum(2, this.getUTCSeconds())}.${formatNum(3, this.getUTCMilliseconds())}`; - return `${date}T${time}`; +var loadJson5 = function (filePath, content) { + try { + return parse$7(content); + } catch (error) { + error.message = `JSON5 Error in ${filePath}:\n${error.message}`; + throw error; } +}; -} +var caller = function () { + // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi + var origPrepareStackTrace = Error.prepareStackTrace; -var createDatetimeFloat = value => { - const date = new FloatingDateTime(value); - /* istanbul ignore if */ + Error.prepareStackTrace = function (_, stack) { + return stack; + }; - if (isNaN(date)) { - throw new TypeError('Invalid Datetime'); - } else { - return date; - } + var stack = new Error().stack; + Error.prepareStackTrace = origPrepareStackTrace; + return stack[2].getFileName(); }; -const DateTime = global.Date; +var pathParse = createCommonjsModule(function (module) { -class Date$1 extends DateTime { - constructor(value) { - super(value); - this.isDate = true; - } + var isWindows = process.platform === 'win32'; // Regex to split a windows path into into [dir, root, basename, name, ext] - toISOString() { - return `${this.getUTCFullYear()}-${formatNum(2, this.getUTCMonth() + 1)}-${formatNum(2, this.getUTCDate())}`; + var splitWindowsRe = /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/; + var win32 = {}; + + function win32SplitPath(filename) { + return splitWindowsRe.exec(filename).slice(1); } -} + win32.parse = function (pathString) { + if (typeof pathString !== 'string') { + throw new TypeError("Parameter 'pathString' must be a string, not " + typeof pathString); + } -var createDate = value => { - const date = new Date$1(value); - /* istanbul ignore if */ + var allParts = win32SplitPath(pathString); - if (isNaN(date)) { - throw new TypeError('Invalid Datetime'); - } else { - return date; - } -}; + if (!allParts || allParts.length !== 5) { + throw new TypeError("Invalid path '" + pathString + "'"); + } -class Time extends Date { - constructor(value) { - super(`0000-01-01T${value}Z`); - this.isTime = true; - } + return { + root: allParts[1], + dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1), + base: allParts[2], + ext: allParts[4], + name: allParts[3] + }; + }; // Split a filename into [dir, root, basename, name, ext], unix version + // 'root' is just a slash, or nothing. - toISOString() { - return `${formatNum(2, this.getUTCHours())}:${formatNum(2, this.getUTCMinutes())}:${formatNum(2, this.getUTCSeconds())}.${formatNum(3, this.getUTCMilliseconds())}`; + + var splitPathRe = /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/; + var posix = {}; + + function posixSplitPath(filename) { + return splitPathRe.exec(filename).slice(1); } -} + posix.parse = function (pathString) { + if (typeof pathString !== 'string') { + throw new TypeError("Parameter 'pathString' must be a string, not " + typeof pathString); + } -var createTime = value => { - const date = new Time(value); - /* istanbul ignore if */ + var allParts = posixSplitPath(pathString); - if (isNaN(date)) { - throw new TypeError('Invalid Datetime'); - } else { - return date; - } -}; + if (!allParts || allParts.length !== 5) { + throw new TypeError("Invalid path '" + pathString + "'"); + } -/* eslint-disable no-new-wrappers, no-eval, camelcase, operator-linebreak */ + return { + root: allParts[1], + dir: allParts[0].slice(0, -1), + base: allParts[2], + ext: allParts[4], + name: allParts[3] + }; + }; + if (isWindows) module.exports = win32.parse;else + /* posix */ + module.exports = posix.parse; + module.exports.posix = posix.parse; + module.exports.win32 = win32.parse; +}); -var tomlParser = makeParserClass(parser$1); -var makeParserClass_1 = makeParserClass; +var parse$6 = path__default['default'].parse || pathParse; -class TomlError extends Error { - constructor(msg) { - super(msg); - this.name = 'TomlError'; - /* istanbul ignore next */ +var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { + var prefix = '/'; - if (Error.captureStackTrace) Error.captureStackTrace(this, TomlError); - this.fromTOML = true; - this.wrapped = null; + if (/^([A-Za-z]:)/.test(absoluteStart)) { + prefix = ''; + } else if (/^\\\\/.test(absoluteStart)) { + prefix = '\\\\'; } -} - -TomlError.wrap = err => { - const terr = new TomlError(err.message); - terr.code = err.code; - terr.wrapped = err; - return terr; -}; + var paths = [absoluteStart]; + var parsed = parse$6(absoluteStart); -var TomlError_1 = TomlError; -const CTRL_I = 0x09; -const CTRL_J = 0x0A; -const CTRL_M = 0x0D; -const CTRL_CHAR_BOUNDARY = 0x1F; // the last non-character in the latin1 region of unicode, except DEL + while (parsed.dir !== paths[paths.length - 1]) { + paths.push(parsed.dir); + parsed = parse$6(parsed.dir); + } -const CHAR_SP = 0x20; -const CHAR_QUOT = 0x22; -const CHAR_NUM = 0x23; -const CHAR_APOS = 0x27; -const CHAR_PLUS = 0x2B; -const CHAR_COMMA = 0x2C; -const CHAR_HYPHEN = 0x2D; -const CHAR_PERIOD = 0x2E; -const CHAR_0 = 0x30; -const CHAR_1 = 0x31; -const CHAR_7 = 0x37; -const CHAR_9 = 0x39; -const CHAR_COLON = 0x3A; -const CHAR_EQUALS = 0x3D; -const CHAR_A = 0x41; -const CHAR_E = 0x45; -const CHAR_F = 0x46; -const CHAR_T = 0x54; -const CHAR_U = 0x55; -const CHAR_Z = 0x5A; -const CHAR_LOWBAR = 0x5F; -const CHAR_a = 0x61; -const CHAR_b = 0x62; -const CHAR_e = 0x65; -const CHAR_f = 0x66; -const CHAR_i = 0x69; -const CHAR_l = 0x6C; -const CHAR_n = 0x6E; -const CHAR_o = 0x6F; -const CHAR_r = 0x72; -const CHAR_s = 0x73; -const CHAR_t = 0x74; -const CHAR_u = 0x75; -const CHAR_x = 0x78; -const CHAR_z = 0x7A; -const CHAR_LCUB = 0x7B; -const CHAR_RCUB = 0x7D; -const CHAR_LSQB = 0x5B; -const CHAR_BSOL = 0x5C; -const CHAR_RSQB = 0x5D; -const CHAR_DEL = 0x7F; -const SURROGATE_FIRST = 0xD800; -const SURROGATE_LAST = 0xDFFF; -const escapes = { - [CHAR_b]: '\u0008', - [CHAR_t]: '\u0009', - [CHAR_n]: '\u000A', - [CHAR_f]: '\u000C', - [CHAR_r]: '\u000D', - [CHAR_QUOT]: '\u0022', - [CHAR_BSOL]: '\u005C' + return paths.reduce(function (dirs, aPath) { + return dirs.concat(modules.map(function (moduleDir) { + return path__default['default'].resolve(prefix, aPath, moduleDir); + })); + }, []); }; -function isDigit(cp) { - return cp >= CHAR_0 && cp <= CHAR_9; -} +var nodeModulesPaths = function nodeModulesPaths(start, opts, request) { + var modules = opts && opts.moduleDirectory ? [].concat(opts.moduleDirectory) : ['node_modules']; -function isHexit(cp) { - return cp >= CHAR_A && cp <= CHAR_F || cp >= CHAR_a && cp <= CHAR_f || cp >= CHAR_0 && cp <= CHAR_9; -} + if (opts && typeof opts.paths === 'function') { + return opts.paths(request, start, function () { + return getNodeModulesDirs(start, modules); + }, opts); + } -function isBit(cp) { - return cp === CHAR_1 || cp === CHAR_0; -} + var dirs = getNodeModulesDirs(start, modules); + return opts && opts.paths ? dirs.concat(opts.paths) : dirs; +}; -function isOctit(cp) { - return cp >= CHAR_0 && cp <= CHAR_7; -} +var normalizeOptions$1 = function (x, opts) { + /** + * This file is purposefully a passthrough. It's expected that third-party + * environments will override it at runtime in order to inject special logic + * into `resolve` (by manipulating the options). One such example is the PnP + * code path in Yarn. + */ + return opts || {}; +}; -function isAlphaNumQuoteHyphen(cp) { - return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_APOS || cp === CHAR_QUOT || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN; -} +/* eslint no-invalid-this: 1 */ -function isAlphaNumHyphen(cp) { - return cp >= CHAR_A && cp <= CHAR_Z || cp >= CHAR_a && cp <= CHAR_z || cp >= CHAR_0 && cp <= CHAR_9 || cp === CHAR_LOWBAR || cp === CHAR_HYPHEN; -} +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice$1 = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; -const _type = Symbol('type'); +var implementation = function bind(that) { + var target = this; -const _declared = Symbol('declared'); + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } -const hasOwnProperty$2 = Object.prototype.hasOwnProperty; -const defineProperty = Object.defineProperty; -const descriptor = { - configurable: true, - enumerable: true, - writable: true, - value: undefined -}; + var args = slice$1.call(arguments, 1); + var bound; -function hasKey(obj, key) { - if (hasOwnProperty$2.call(obj, key)) return true; - if (key === '__proto__') defineProperty(obj, '__proto__', descriptor); - return false; -} + var binder = function () { + if (this instanceof bound) { + var result = target.apply(this, args.concat(slice$1.call(arguments))); -const INLINE_TABLE = Symbol('inline-table'); + if (Object(result) === result) { + return result; + } -function InlineTable() { - return Object.defineProperties({}, { - [_type]: { - value: INLINE_TABLE + return this; + } else { + return target.apply(that, args.concat(slice$1.call(arguments))); } - }); -} + }; -function isInlineTable(obj) { - if (obj === null || typeof obj !== 'object') return false; - return obj[_type] === INLINE_TABLE; -} + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; -const TABLE = Symbol('table'); + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } -function Table() { - return Object.defineProperties({}, { - [_type]: { - value: TABLE - }, - [_declared]: { - value: false, - writable: true - } - }); -} + bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); -function isTable(obj) { - if (obj === null || typeof obj !== 'object') return false; - return obj[_type] === TABLE; -} + if (target.prototype) { + var Empty = function Empty() {}; -const _contentType = Symbol('content-type'); + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } -const INLINE_LIST = Symbol('inline-list'); + return bound; +}; -function InlineList(type) { - return Object.defineProperties([], { - [_type]: { - value: INLINE_LIST - }, - [_contentType]: { - value: type - } - }); -} +var functionBind = Function.prototype.bind || implementation; -function isInlineList(obj) { - if (obj === null || typeof obj !== 'object') return false; - return obj[_type] === INLINE_LIST; -} +var src$2 = functionBind.call(Function.call, Object.prototype.hasOwnProperty); + +var assert$1 = true; +var async_hooks$1 = ">= 8"; +var buffer_ieee754$1 = "< 0.9.7"; +var buffer$1 = true; +var child_process$1 = true; +var cluster$1 = true; +var console$2 = true; +var constants$4 = true; +var crypto$1 = true; +var _debug_agent$1 = ">= 1 && < 8"; +var _debugger$1 = "< 8"; +var dgram$1 = true; +var diagnostics_channel$1 = [ + ">= 14.17 && < 15", + ">= 15.1" +]; +var dns$1 = true; +var domain$1 = ">= 0.7.12"; +var events$1 = true; +var freelist$1 = "< 6"; +var fs$5 = true; +var _http_agent$1 = ">= 0.11.1"; +var _http_client$1 = ">= 0.11.1"; +var _http_common$1 = ">= 0.11.1"; +var _http_incoming$1 = ">= 0.11.1"; +var _http_outgoing$1 = ">= 0.11.1"; +var _http_server$1 = ">= 0.11.1"; +var http$1 = true; +var http2$1 = ">= 8.8"; +var https$1 = true; +var inspector$1 = ">= 8"; +var _linklist$1 = "< 8"; +var module$3 = true; +var net$1 = true; +var os$1 = true; +var path$2 = true; +var perf_hooks$1 = ">= 8.5"; +var process$2 = ">= 1"; +var punycode$1 = true; +var querystring$1 = true; +var readline$1 = true; +var repl$1 = true; +var smalloc$1 = ">= 0.11.5 && < 3"; +var _stream_duplex$1 = ">= 0.9.4"; +var _stream_transform$1 = ">= 0.9.4"; +var _stream_wrap$1 = ">= 1.4.1"; +var _stream_passthrough$1 = ">= 0.9.4"; +var _stream_readable$1 = ">= 0.9.4"; +var _stream_writable$1 = ">= 0.9.4"; +var stream$6 = true; +var string_decoder$1 = true; +var sys$1 = [ + ">= 0.6 && < 0.7", + ">= 0.8" +]; +var timers$1 = true; +var _tls_common$1 = ">= 0.11.13"; +var _tls_legacy$1 = ">= 0.11.3 && < 10"; +var _tls_wrap$1 = ">= 0.11.3"; +var tls$1 = true; +var trace_events$1 = ">= 10"; +var tty$1 = true; +var url$1 = true; +var util$2 = true; +var v8$1 = ">= 1"; +var vm$1 = true; +var wasi$1 = ">= 13.4 && < 13.5"; +var worker_threads$1 = ">= 11.7"; +var zlib$1 = true; +var data$2 = { + assert: assert$1, + "node:assert": ">= 16", + "assert/strict": ">= 15", + "node:assert/strict": ">= 16", + async_hooks: async_hooks$1, + "node:async_hooks": ">= 16", + buffer_ieee754: buffer_ieee754$1, + buffer: buffer$1, + "node:buffer": ">= 16", + child_process: child_process$1, + "node:child_process": ">= 16", + cluster: cluster$1, + "node:cluster": ">= 16", + console: console$2, + "node:console": ">= 16", + constants: constants$4, + "node:constants": ">= 16", + crypto: crypto$1, + "node:crypto": ">= 16", + _debug_agent: _debug_agent$1, + _debugger: _debugger$1, + dgram: dgram$1, + "node:dgram": ">= 16", + diagnostics_channel: diagnostics_channel$1, + "node:diagnostics_channel": ">= 16", + dns: dns$1, + "node:dns": ">= 16", + "dns/promises": ">= 15", + "node:dns/promises": ">= 16", + domain: domain$1, + "node:domain": ">= 16", + events: events$1, + "node:events": ">= 16", + freelist: freelist$1, + fs: fs$5, + "node:fs": ">= 16", + "fs/promises": [ + ">= 10 && < 10.1", + ">= 14" +], + "node:fs/promises": ">= 16", + _http_agent: _http_agent$1, + "node:_http_agent": ">= 16", + _http_client: _http_client$1, + "node:_http_client": ">= 16", + _http_common: _http_common$1, + "node:_http_common": ">= 16", + _http_incoming: _http_incoming$1, + "node:_http_incoming": ">= 16", + _http_outgoing: _http_outgoing$1, + "node:_http_outgoing": ">= 16", + _http_server: _http_server$1, + "node:_http_server": ">= 16", + http: http$1, + "node:http": ">= 16", + http2: http2$1, + "node:http2": ">= 16", + https: https$1, + "node:https": ">= 16", + inspector: inspector$1, + "node:inspector": ">= 16", + _linklist: _linklist$1, + module: module$3, + "node:module": ">= 16", + net: net$1, + "node:net": ">= 16", + "node-inspect/lib/_inspect": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", + os: os$1, + "node:os": ">= 16", + path: path$2, + "node:path": ">= 16", + "path/posix": ">= 15.3", + "node:path/posix": ">= 16", + "path/win32": ">= 15.3", + "node:path/win32": ">= 16", + perf_hooks: perf_hooks$1, + "node:perf_hooks": ">= 16", + process: process$2, + "node:process": ">= 16", + punycode: punycode$1, + "node:punycode": ">= 16", + querystring: querystring$1, + "node:querystring": ">= 16", + readline: readline$1, + "node:readline": ">= 16", + repl: repl$1, + "node:repl": ">= 16", + smalloc: smalloc$1, + _stream_duplex: _stream_duplex$1, + "node:_stream_duplex": ">= 16", + _stream_transform: _stream_transform$1, + "node:_stream_transform": ">= 16", + _stream_wrap: _stream_wrap$1, + "node:_stream_wrap": ">= 16", + _stream_passthrough: _stream_passthrough$1, + "node:_stream_passthrough": ">= 16", + _stream_readable: _stream_readable$1, + "node:_stream_readable": ">= 16", + _stream_writable: _stream_writable$1, + "node:_stream_writable": ">= 16", + stream: stream$6, + "node:stream": ">= 16", + "stream/promises": ">= 15", + "node:stream/promises": ">= 16", + string_decoder: string_decoder$1, + "node:string_decoder": ">= 16", + sys: sys$1, + "node:sys": ">= 16", + timers: timers$1, + "node:timers": ">= 16", + "timers/promises": ">= 15", + "node:timers/promises": ">= 16", + _tls_common: _tls_common$1, + "node:_tls_common": ">= 16", + _tls_legacy: _tls_legacy$1, + _tls_wrap: _tls_wrap$1, + "node:_tls_wrap": ">= 16", + tls: tls$1, + "node:tls": ">= 16", + trace_events: trace_events$1, + "node:trace_events": ">= 16", + tty: tty$1, + "node:tty": ">= 16", + url: url$1, + "node:url": ">= 16", + util: util$2, + "node:util": ">= 16", + "util/types": ">= 15.3", + "node:util/types": ">= 16", + "v8/tools/arguments": ">= 10 && < 12", + "v8/tools/codemap": [ + ">= 4.4 && < 5", + ">= 5.2 && < 12" +], + "v8/tools/consarray": [ + ">= 4.4 && < 5", + ">= 5.2 && < 12" +], + "v8/tools/csvparser": [ + ">= 4.4 && < 5", + ">= 5.2 && < 12" +], + "v8/tools/logreader": [ + ">= 4.4 && < 5", + ">= 5.2 && < 12" +], + "v8/tools/profile_view": [ + ">= 4.4 && < 5", + ">= 5.2 && < 12" +], + "v8/tools/splaytree": [ + ">= 4.4 && < 5", + ">= 5.2 && < 12" +], + v8: v8$1, + "node:v8": ">= 16", + vm: vm$1, + "node:vm": ">= 16", + wasi: wasi$1, + worker_threads: worker_threads$1, + "node:worker_threads": ">= 16", + zlib: zlib$1, + "node:zlib": ">= 16" +}; + +function specifierIncluded$1(current, specifier) { + var nodeParts = current.split('.'); + var parts = specifier.split(' '); + var op = parts.length > 1 ? parts[0] : '='; + var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); -const LIST = Symbol('list'); + for (var i = 0; i < 3; ++i) { + var cur = parseInt(nodeParts[i] || 0, 10); + var ver = parseInt(versionParts[i] || 0, 10); -function List() { - return Object.defineProperties([], { - [_type]: { - value: LIST + if (cur === ver) { + continue; // eslint-disable-line no-restricted-syntax, no-continue } - }); -} -function isList(obj) { - if (obj === null || typeof obj !== 'object') return false; - return obj[_type] === LIST; -} // in an eval, to let bundlers not slurp in a util proxy + if (op === '<') { + return cur < ver; + } + if (op === '>=') { + return cur >= ver; + } -let _custom; + return false; + } -try { - const utilInspect = util__default['default'].inspect; - _custom = utilInspect.custom; -} catch (_) { - /* eval require not available in transpiled bundle */ + return op === '>='; } -/* istanbul ignore next */ - -const _inspect = _custom || 'inspect'; - -class BoxedBigInt { - constructor(value) { - try { - this.value = global.BigInt.asIntN(64, value); - } catch (_) { - /* istanbul ignore next */ - this.value = null; - } +function matchesRange$1(current, range) { + var specifiers = range.split(/ ?&& ?/); - Object.defineProperty(this, _type, { - value: INTEGER - }); + if (specifiers.length === 0) { + return false; } - isNaN() { - return this.value === null; + for (var i = 0; i < specifiers.length; ++i) { + if (!specifierIncluded$1(current, specifiers[i])) { + return false; + } } - /* istanbul ignore next */ + return true; +} - toString() { - return String(this.value); +function versionIncluded$1(nodeVersion, specifierValue) { + if (typeof specifierValue === 'boolean') { + return specifierValue; } - /* istanbul ignore next */ + var current = typeof nodeVersion === 'undefined' ? process.versions && process.versions.node && process.versions.node : nodeVersion; - [_inspect]() { - return `[BigInt: ${this.toString()}]}`; + if (typeof current !== 'string') { + throw new TypeError(typeof nodeVersion === 'undefined' ? 'Unable to determine current node version' : 'If provided, a valid node version is required'); } - valueOf() { - return this.value; + if (specifierValue && typeof specifierValue === 'object') { + for (var i = 0; i < specifierValue.length; ++i) { + if (matchesRange$1(current, specifierValue[i])) { + return true; + } + } + + return false; } + return matchesRange$1(current, specifierValue); } -const INTEGER = Symbol('integer'); +var isCoreModule = function isCore(x, nodeVersion) { + return src$2(data$2, x) && versionIncluded$1(nodeVersion, data$2[x]); +}; -function Integer(value) { - let num = Number(value); // -0 is a float thing, not an int thing +var realpathFS$1 = fs__default['default'].realpath && typeof fs__default['default'].realpath.native === 'function' ? fs__default['default'].realpath.native : fs__default['default'].realpath; - if (Object.is(num, -0)) num = 0; - /* istanbul ignore else */ +var defaultIsFile$1 = function isFile(file, cb) { + fs__default['default'].stat(file, function (err, stat) { + if (!err) { + return cb(null, stat.isFile() || stat.isFIFO()); + } - if (global.BigInt && !Number.isSafeInteger(num)) { - return new BoxedBigInt(value); - } else { - /* istanbul ignore next */ - return Object.defineProperties(new Number(num), { - isNaN: { - value: function () { - return isNaN(this); - } - }, - [_type]: { - value: INTEGER - }, - [_inspect]: { - value: () => `[Integer: ${value}]` - } - }); - } -} + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); +}; -function isInteger(obj) { - if (obj === null || typeof obj !== 'object') return false; - return obj[_type] === INTEGER; -} +var defaultIsDir$1 = function isDirectory(dir, cb) { + fs__default['default'].stat(dir, function (err, stat) { + if (!err) { + return cb(null, stat.isDirectory()); + } -const FLOAT = Symbol('float'); + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); + return cb(err); + }); +}; -function Float(value) { - /* istanbul ignore next */ - return Object.defineProperties(new Number(value), { - [_type]: { - value: FLOAT - }, - [_inspect]: { - value: () => `[Float: ${value}]` +var defaultRealpath = function realpath(x, cb) { + realpathFS$1(x, function (realpathErr, realPath) { + if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr);else cb(null, realpathErr ? x : realPath); + }); +}; + +var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) { + if (opts && opts.preserveSymlinks === false) { + realpath(x, cb); + } else { + cb(null, x); + } +}; + +var defaultReadPackage = function defaultReadPackage(readFile, pkgfile, cb) { + readFile(pkgfile, function (readFileErr, body) { + if (readFileErr) cb(readFileErr);else { + try { + var pkg = JSON.parse(body); + cb(null, pkg); + } catch (jsonErr) { + cb(null); + } } }); -} +}; -function isFloat(obj) { - if (obj === null || typeof obj !== 'object') return false; - return obj[_type] === FLOAT; -} +var getPackageCandidates$1 = function getPackageCandidates(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); -function tomlType(value) { - const type = typeof value; + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path__default['default'].join(dirs[i], x); + } - if (type === 'object') { - /* istanbul ignore if */ - if (value === null) return 'null'; - if (value instanceof Date) return 'datetime'; - /* istanbul ignore else */ + return dirs; +}; - if (_type in value) { - switch (value[_type]) { - case INLINE_TABLE: - return 'inline-table'; +var async$5 = function resolve(x, options, callback) { + var cb = callback; + var opts = options; - case INLINE_LIST: - return 'inline-list'; + if (typeof options === 'function') { + cb = opts; + opts = {}; + } - /* istanbul ignore next */ + if (typeof x !== 'string') { + var err = new TypeError('Path must be a string.'); + return process.nextTick(function () { + cb(err); + }); + } - case TABLE: - return 'table'; + opts = normalizeOptions$1(x, opts); + var isFile = opts.isFile || defaultIsFile$1; + var isDirectory = opts.isDirectory || defaultIsDir$1; + var readFile = opts.readFile || fs__default['default'].readFile; + var realpath = opts.realpath || defaultRealpath; + var readPackage = opts.readPackage || defaultReadPackage; - /* istanbul ignore next */ + if (opts.readFile && opts.readPackage) { + var conflictErr = new TypeError('`readFile` and `readPackage` are mutually exclusive.'); + return process.nextTick(function () { + cb(conflictErr); + }); + } - case LIST: - return 'list'; + var packageIterator = opts.packageIterator; + var extensions = opts.extensions || ['.js']; + var includeCoreModules = opts.includeCoreModules !== false; + var basedir = opts.basedir || path__default['default'].dirname(caller()); + var parent = opts.filename || basedir; + opts.paths = opts.paths || []; // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - case FLOAT: - return 'float'; + var absoluteStart = path__default['default'].resolve(basedir); + maybeRealpath(realpath, absoluteStart, opts, function (err, realStart) { + if (err) cb(err);else init(realStart); + }); + var res; - case INTEGER: - return 'integer'; + function init(basedir) { + if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { + res = path__default['default'].resolve(basedir, x); + if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; + + if (/\/$/.test(x) && res === basedir) { + loadAsDirectory(res, opts.package, onfile); + } else loadAsFile(res, opts.package, onfile); + } else if (includeCoreModules && isCoreModule(x)) { + return cb(null, x); + } else loadNodeModules(x, basedir, function (err, n, pkg) { + if (err) cb(err);else if (n) { + return maybeRealpath(realpath, n, opts, function (err, realN) { + if (err) { + cb(err); + } else { + cb(null, realN, pkg); + } + }); + } else { + var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + moduleError.code = 'MODULE_NOT_FOUND'; + cb(moduleError); } - } + }); } - return type; -} + function onfile(err, m, pkg) { + if (err) cb(err);else if (m) cb(null, m, pkg);else loadAsDirectory(res, function (err, d, pkg) { + if (err) cb(err);else if (d) { + maybeRealpath(realpath, d, opts, function (err, realD) { + if (err) { + cb(err); + } else { + cb(null, realD, pkg); + } + }); + } else { + var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + moduleError.code = 'MODULE_NOT_FOUND'; + cb(moduleError); + } + }); + } -function makeParserClass(Parser) { - class TOMLParser extends Parser { - constructor() { - super(); - this.ctx = this.obj = Table(); + function loadAsFile(x, thePackage, callback) { + var loadAsFilePackage = thePackage; + var cb = callback; + + if (typeof loadAsFilePackage === 'function') { + cb = loadAsFilePackage; + loadAsFilePackage = undefined; } - /* MATCH HELPER */ + var exts = [''].concat(extensions); + load(exts, x, loadAsFilePackage); - atEndOfWord() { - return this.char === CHAR_NUM || this.char === CTRL_I || this.char === CHAR_SP || this.atEndOfLine(); - } + function load(exts, x, loadPackage) { + if (exts.length === 0) return cb(null, undefined, loadPackage); + var file = x + exts[0]; + var pkg = loadPackage; + if (pkg) onpkg(null, pkg);else loadpkg(path__default['default'].dirname(file), onpkg); - atEndOfLine() { - return this.char === Parser.END || this.char === CTRL_J || this.char === CTRL_M; - } + function onpkg(err, pkg_, dir) { + pkg = pkg_; + if (err) return cb(err); - parseStart() { - if (this.char === Parser.END) { - return null; - } else if (this.char === CHAR_LSQB) { - return this.call(this.parseTableOrList); - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment); - } else if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null; - } else if (isAlphaNumQuoteHyphen(this.char)) { - return this.callNow(this.parseAssignStatement); - } else { - throw this.error(new TomlError(`Unknown character "${this.char}"`)); - } - } // HELPER, this strips any whitespace and comments to the end of the line - // then RETURNS. Last state in a production. + if (dir && pkg && opts.pathFilter) { + var rfile = path__default['default'].relative(dir, file); + var rel = rfile.slice(0, rfile.length - exts[0].length); + var r = opts.pathFilter(pkg, x, rel); + if (r) return load([''].concat(extensions.slice()), path__default['default'].resolve(dir, r), pkg); + } + isFile(file, onex); + } - parseWhitespaceToEOL() { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null; - } else if (this.char === CHAR_NUM) { - return this.goto(this.parseComment); - } else if (this.char === Parser.END || this.char === CTRL_J) { - return this.return(); - } else { - throw this.error(new TomlError('Unexpected character, expected only whitespace or comments till end of line')); + function onex(err, ex) { + if (err) return cb(err); + if (ex) return cb(null, file, pkg); + load(exts.slice(1), x, pkg); } } - /* ASSIGNMENT: key = value */ + } + function loadpkg(dir, cb) { + if (dir === '' || dir === '/') return cb(null); - parseAssignStatement() { - return this.callNow(this.parseAssign, this.recordAssignStatement); + if (process.platform === 'win32' && /^\w:[/\\]*$/.test(dir)) { + return cb(null); } - recordAssignStatement(kv) { - let target = this.ctx; - let finalKey = kv.key.pop(); + if (/[/\\]node_modules[/\\]*$/.test(dir)) return cb(null); + maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) { + if (unwrapErr) return loadpkg(path__default['default'].dirname(dir), cb); + var pkgfile = path__default['default'].join(pkgdir, 'package.json'); + isFile(pkgfile, function (err, ex) { + // on err, ex is false + if (!ex) return loadpkg(path__default['default'].dirname(dir), cb); + readPackage(readFile, pkgfile, function (err, pkgParam) { + if (err) cb(err); + var pkg = pkgParam; - for (let kw of kv.key) { - if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")); - } + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } - target = target[kw] = target[kw] || Table(); - } + cb(null, pkg, dir); + }); + }); + }); + } - if (hasKey(target, finalKey)) { - throw this.error(new TomlError("Can't redefine existing key")); - } // unbox our numbers + function loadAsDirectory(x, loadAsDirectoryPackage, callback) { + var cb = callback; + var fpkg = loadAsDirectoryPackage; + if (typeof fpkg === 'function') { + cb = fpkg; + fpkg = opts.package; + } - if (isInteger(kv.value) || isFloat(kv.value)) { - target[finalKey] = kv.value.valueOf(); - } else { - target[finalKey] = kv.value; - } + maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) { + if (unwrapErr) return cb(unwrapErr); + var pkgfile = path__default['default'].join(pkgdir, 'package.json'); + isFile(pkgfile, function (err, ex) { + if (err) return cb(err); + if (!ex) return loadAsFile(path__default['default'].join(x, 'index'), fpkg, cb); + readPackage(readFile, pkgfile, function (err, pkgParam) { + if (err) return cb(err); + var pkg = pkgParam; - return this.goto(this.parseWhitespaceToEOL); - } - /* ASSSIGNMENT expression, key = value possibly inside an inline table */ + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } + if (pkg && pkg.main) { + if (typeof pkg.main !== 'string') { + var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); + mainError.code = 'INVALID_PACKAGE_MAIN'; + return cb(mainError); + } - parseAssign() { - return this.callNow(this.parseKeyword, this.recordAssignKeyword); - } + if (pkg.main === '.' || pkg.main === './') { + pkg.main = 'index'; + } - recordAssignKeyword(key) { - if (this.state.resultTable) { - this.state.resultTable.push(key); - } else { - this.state.resultTable = [key]; - } + loadAsFile(path__default['default'].resolve(x, pkg.main), pkg, function (err, m, pkg) { + if (err) return cb(err); + if (m) return cb(null, m, pkg); + if (!pkg) return loadAsFile(path__default['default'].join(x, 'index'), pkg, cb); + var dir = path__default['default'].resolve(x, pkg.main); + loadAsDirectory(dir, pkg, function (err, n, pkg) { + if (err) return cb(err); + if (n) return cb(null, n, pkg); + loadAsFile(path__default['default'].join(x, 'index'), pkg, cb); + }); + }); + return; + } - return this.goto(this.parseAssignKeywordPreDot); - } + loadAsFile(path__default['default'].join(x, '/index'), pkg, cb); + }); + }); + }); + } - parseAssignKeywordPreDot() { - if (this.char === CHAR_PERIOD) { - return this.next(this.parseAssignKeywordPostDot); - } else if (this.char !== CHAR_SP && this.char !== CTRL_I) { - return this.goto(this.parseAssignEqual); - } - } + function processDirs(cb, dirs) { + if (dirs.length === 0) return cb(null, undefined); + var dir = dirs[0]; + isDirectory(path__default['default'].dirname(dir), isdir); - parseAssignKeywordPostDot() { - if (this.char !== CHAR_SP && this.char !== CTRL_I) { - return this.callNow(this.parseKeyword, this.recordAssignKeyword); - } + function isdir(err, isdir) { + if (err) return cb(err); + if (!isdir) return processDirs(cb, dirs.slice(1)); + loadAsFile(dir, opts.package, onfile); } - parseAssignEqual() { - if (this.char === CHAR_EQUALS) { - return this.next(this.parseAssignPreValue); - } else { - throw this.error(new TomlError('Invalid character, expected "="')); - } + function onfile(err, m, pkg) { + if (err) return cb(err); + if (m) return cb(null, m, pkg); + loadAsDirectory(dir, opts.package, ondir); } - parseAssignPreValue() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else { - return this.callNow(this.parseValue, this.recordAssignValue); - } + function ondir(err, n, pkg) { + if (err) return cb(err); + if (n) return cb(null, n, pkg); + processDirs(cb, dirs.slice(1)); } + } - recordAssignValue(value) { - return this.returnNow({ - key: this.state.resultTable, - value: value - }); - } - /* COMMENTS: #...eol */ + function loadNodeModules(x, start, cb) { + var thunk = function () { + return getPackageCandidates$1(x, start, opts); + }; + + processDirs(cb, packageIterator ? packageIterator(x, start, thunk, opts) : thunk()); + } +}; + +var assert = true; +var async_hooks = ">= 8"; +var buffer_ieee754 = "< 0.9.7"; +var buffer = true; +var child_process = true; +var cluster = true; +var console$1 = true; +var constants$3 = true; +var crypto = true; +var _debug_agent = ">= 1 && < 8"; +var _debugger = "< 8"; +var dgram = true; +var diagnostics_channel = ">= 15.1"; +var dns = true; +var domain = ">= 0.7.12"; +var events = true; +var freelist = "< 6"; +var fs$4 = true; +var _http_agent = ">= 0.11.1"; +var _http_client = ">= 0.11.1"; +var _http_common = ">= 0.11.1"; +var _http_incoming = ">= 0.11.1"; +var _http_outgoing = ">= 0.11.1"; +var _http_server = ">= 0.11.1"; +var http = true; +var http2 = ">= 8.8"; +var https = true; +var inspector = ">= 8.0.0"; +var _linklist = "< 8"; +var module$2 = true; +var net = true; +var os = true; +var path$1 = true; +var perf_hooks = ">= 8.5"; +var process$1 = ">= 1"; +var punycode = true; +var querystring = true; +var readline = true; +var repl = true; +var smalloc = ">= 0.11.5 && < 3"; +var _stream_duplex = ">= 0.9.4"; +var _stream_transform = ">= 0.9.4"; +var _stream_wrap = ">= 1.4.1"; +var _stream_passthrough = ">= 0.9.4"; +var _stream_readable = ">= 0.9.4"; +var _stream_writable = ">= 0.9.4"; +var stream$5 = true; +var string_decoder = true; +var sys = [ + ">= 0.6 && < 0.7", + ">= 0.8" +]; +var timers = true; +var _tls_common = ">= 0.11.13"; +var _tls_legacy = ">= 0.11.3 && < 10"; +var _tls_wrap = ">= 0.11.3"; +var tls = true; +var trace_events = ">= 10"; +var tty = true; +var url = true; +var util$1 = true; +var v8 = ">= 1"; +var vm = true; +var wasi = ">= 13.4 && < 13.5"; +var worker_threads = ">= 11.7"; +var zlib = true; +var data$1 = { + assert: assert, + "assert/strict": ">= 15", + async_hooks: async_hooks, + buffer_ieee754: buffer_ieee754, + buffer: buffer, + child_process: child_process, + cluster: cluster, + console: console$1, + constants: constants$3, + crypto: crypto, + _debug_agent: _debug_agent, + _debugger: _debugger, + dgram: dgram, + diagnostics_channel: diagnostics_channel, + dns: dns, + "dns/promises": ">= 15", + domain: domain, + events: events, + freelist: freelist, + fs: fs$4, + "fs/promises": [ + ">= 10 && < 10.1", + ">= 14" +], + _http_agent: _http_agent, + _http_client: _http_client, + _http_common: _http_common, + _http_incoming: _http_incoming, + _http_outgoing: _http_outgoing, + _http_server: _http_server, + http: http, + http2: http2, + https: https, + inspector: inspector, + _linklist: _linklist, + module: module$2, + net: net, + "node-inspect/lib/_inspect": ">= 7.6.0 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12", + os: os, + path: path$1, + "path/posix": ">= 15.3", + "path/win32": ">= 15.3", + perf_hooks: perf_hooks, + process: process$1, + punycode: punycode, + querystring: querystring, + readline: readline, + repl: repl, + smalloc: smalloc, + _stream_duplex: _stream_duplex, + _stream_transform: _stream_transform, + _stream_wrap: _stream_wrap, + _stream_passthrough: _stream_passthrough, + _stream_readable: _stream_readable, + _stream_writable: _stream_writable, + stream: stream$5, + "stream/promises": ">= 15", + string_decoder: string_decoder, + sys: sys, + timers: timers, + "timers/promises": ">= 15", + _tls_common: _tls_common, + _tls_legacy: _tls_legacy, + _tls_wrap: _tls_wrap, + tls: tls, + trace_events: trace_events, + tty: tty, + url: url, + util: util$1, + "util/types": ">= 15.3", + "v8/tools/arguments": ">= 10 && < 12", + "v8/tools/codemap": [ + ">= 4.4.0 && < 5", + ">= 5.2.0 && < 12" +], + "v8/tools/consarray": [ + ">= 4.4.0 && < 5", + ">= 5.2.0 && < 12" +], + "v8/tools/csvparser": [ + ">= 4.4.0 && < 5", + ">= 5.2.0 && < 12" +], + "v8/tools/logreader": [ + ">= 4.4.0 && < 5", + ">= 5.2.0 && < 12" +], + "v8/tools/profile_view": [ + ">= 4.4.0 && < 5", + ">= 5.2.0 && < 12" +], + "v8/tools/splaytree": [ + ">= 4.4.0 && < 5", + ">= 5.2.0 && < 12" +], + v8: v8, + vm: vm, + wasi: wasi, + worker_threads: worker_threads, + zlib: zlib +}; +var current = process.versions && process.versions.node && process.versions.node.split('.') || []; - parseComment() { - do { - if (this.char === Parser.END || this.char === CTRL_J) { - return this.return(); - } - } while (this.nextChar()); - } - /* TABLES AND LISTS, [foo] and [[foo]] */ +function specifierIncluded(specifier) { + var parts = specifier.split(' '); + var op = parts.length > 1 ? parts[0] : '='; + var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); + for (var i = 0; i < 3; ++i) { + var cur = parseInt(current[i] || 0, 10); + var ver = parseInt(versionParts[i] || 0, 10); - parseTableOrList() { - if (this.char === CHAR_LSQB) { - this.next(this.parseList); - } else { - return this.goto(this.parseTable); - } + if (cur === ver) { + continue; // eslint-disable-line no-restricted-syntax, no-continue } - /* TABLE [foo.bar.baz] */ - - parseTable() { - this.ctx = this.obj; - return this.goto(this.parseTableNext); + if (op === '<') { + return cur < ver; + } else if (op === '>=') { + return cur >= ver; + } else { + return false; } + } - parseTableNext() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else { - return this.callNow(this.parseKeyword, this.parseTableMore); - } - } + return op === '>='; +} - parseTableMore(keyword) { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === CHAR_RSQB) { - if (hasKey(this.ctx, keyword) && (!isTable(this.ctx[keyword]) || this.ctx[keyword][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")); - } else { - this.ctx = this.ctx[keyword] = this.ctx[keyword] || Table(); - this.ctx[_declared] = true; - } +function matchesRange(range) { + var specifiers = range.split(/ ?&& ?/); - return this.next(this.parseWhitespaceToEOL); - } else if (this.char === CHAR_PERIOD) { - if (!hasKey(this.ctx, keyword)) { - this.ctx = this.ctx[keyword] = Table(); - } else if (isTable(this.ctx[keyword])) { - this.ctx = this.ctx[keyword]; - } else if (isList(this.ctx[keyword])) { - this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; - } else { - throw this.error(new TomlError("Can't redefine existing key")); - } + if (specifiers.length === 0) { + return false; + } - return this.next(this.parseTableNext); - } else { - throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')); - } + for (var i = 0; i < specifiers.length; ++i) { + if (!specifierIncluded(specifiers[i])) { + return false; } - /* LIST [[a.b.c]] */ + } + return true; +} - parseList() { - this.ctx = this.obj; - return this.goto(this.parseListNext); - } +function versionIncluded(specifierValue) { + if (typeof specifierValue === 'boolean') { + return specifierValue; + } - parseListNext() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else { - return this.callNow(this.parseKeyword, this.parseListMore); + if (specifierValue && typeof specifierValue === 'object') { + for (var i = 0; i < specifierValue.length; ++i) { + if (matchesRange(specifierValue[i])) { + return true; } } - parseListMore(keyword) { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === CHAR_RSQB) { - if (!hasKey(this.ctx, keyword)) { - this.ctx[keyword] = List(); - } - - if (isInlineList(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline array")); - } else if (isList(this.ctx[keyword])) { - const next = Table(); - this.ctx[keyword].push(next); - this.ctx = next; - } else { - throw this.error(new TomlError("Can't redefine an existing key")); - } + return false; + } - return this.next(this.parseListEnd); - } else if (this.char === CHAR_PERIOD) { - if (!hasKey(this.ctx, keyword)) { - this.ctx = this.ctx[keyword] = Table(); - } else if (isInlineList(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline array")); - } else if (isInlineTable(this.ctx[keyword])) { - throw this.error(new TomlError("Can't extend an inline table")); - } else if (isList(this.ctx[keyword])) { - this.ctx = this.ctx[keyword][this.ctx[keyword].length - 1]; - } else if (isTable(this.ctx[keyword])) { - this.ctx = this.ctx[keyword]; - } else { - throw this.error(new TomlError("Can't redefine an existing key")); - } + return matchesRange(specifierValue); +} - return this.next(this.parseListNext); - } else { - throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')); - } - } +var core = {}; - parseListEnd(keyword) { - if (this.char === CHAR_RSQB) { - return this.next(this.parseWhitespaceToEOL); - } else { - throw this.error(new TomlError('Unexpected character, expected whitespace, . or ]')); - } - } - /* VALUE string, number, boolean, inline list, inline object */ +for (var mod in data$1) { + // eslint-disable-line no-restricted-syntax + if (Object.prototype.hasOwnProperty.call(data$1, mod)) { + core[mod] = versionIncluded(data$1[mod]); + } +} +var core_1 = core; - parseValue() { - if (this.char === Parser.END) { - throw this.error(new TomlError('Key without value')); - } else if (this.char === CHAR_QUOT) { - return this.next(this.parseDoubleString); - } +var isCore = function isCore(x) { + return isCoreModule(x); +}; - if (this.char === CHAR_APOS) { - return this.next(this.parseSingleString); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - return this.goto(this.parseNumberSign); - } else if (this.char === CHAR_i) { - return this.next(this.parseInf); - } else if (this.char === CHAR_n) { - return this.next(this.parseNan); - } else if (isDigit(this.char)) { - return this.goto(this.parseNumberOrDateTime); - } else if (this.char === CHAR_t || this.char === CHAR_f) { - return this.goto(this.parseBoolean); - } else if (this.char === CHAR_LSQB) { - return this.call(this.parseInlineList, this.recordValue); - } else if (this.char === CHAR_LCUB) { - return this.call(this.parseInlineTable, this.recordValue); - } else { - throw this.error(new TomlError('Unexpected character, expecting string, number, datetime, boolean, inline array or inline table')); - } - } +var realpathFS = fs__default['default'].realpathSync && typeof fs__default['default'].realpathSync.native === 'function' ? fs__default['default'].realpathSync.native : fs__default['default'].realpathSync; - recordValue(value) { - return this.returnNow(value); - } +var defaultIsFile = function isFile(file) { + try { + var stat = fs__default['default'].statSync(file); + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; + throw e; + } - parseInf() { - if (this.char === CHAR_n) { - return this.next(this.parseInf2); - } else { - throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); - } - } + return stat.isFile() || stat.isFIFO(); +}; - parseInf2() { - if (this.char === CHAR_f) { - if (this.state.buf === '-') { - return this.return(-Infinity); - } else { - return this.return(Infinity); - } - } else { - throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"')); - } - } +var defaultIsDir = function isDirectory(dir) { + try { + var stat = fs__default['default'].statSync(dir); + } catch (e) { + if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; + throw e; + } - parseNan() { - if (this.char === CHAR_a) { - return this.next(this.parseNan2); - } else { - throw this.error(new TomlError('Unexpected character, expected "nan"')); - } - } + return stat.isDirectory(); +}; - parseNan2() { - if (this.char === CHAR_n) { - return this.return(NaN); - } else { - throw this.error(new TomlError('Unexpected character, expected "nan"')); - } +var defaultRealpathSync = function realpathSync(x) { + try { + return realpathFS(x); + } catch (realpathErr) { + if (realpathErr.code !== 'ENOENT') { + throw realpathErr; } - /* KEYS, barewords or basic, literal, or dotted */ - + } - parseKeyword() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseBasicString); - } else if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralString); - } else { - return this.goto(this.parseBareKey); - } - } - /* KEYS: barewords */ + return x; +}; +var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) { + if (opts && opts.preserveSymlinks === false) { + return realpathSync(x); + } - parseBareKey() { - do { - if (this.char === Parser.END) { - throw this.error(new TomlError('Key ended without value')); - } else if (isAlphaNumHyphen(this.char)) { - this.consume(); - } else if (this.state.buf.length === 0) { - throw this.error(new TomlError('Empty bare keys are not allowed')); - } else { - return this.returnNow(); - } - } while (this.nextChar()); - } - /* STRINGS, single quoted (literal) */ + return x; +}; +var defaultReadPackageSync = function defaultReadPackageSync(readFileSync, pkgfile) { + var body = readFileSync(pkgfile); - parseSingleString() { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiStringMaybe); - } else { - return this.goto(this.parseLiteralString); - } - } + try { + var pkg = JSON.parse(body); + return pkg; + } catch (jsonErr) {} +}; - parseLiteralString() { - do { - if (this.char === CHAR_APOS) { - return this.return(); - } else if (this.atEndOfLine()) { - throw this.error(new TomlError('Unterminated string')); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } +var getPackageCandidates = function getPackageCandidates(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); - parseLiteralMultiStringMaybe() { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiString); - } else { - return this.returnNow(); - } - } + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path__default['default'].join(dirs[i], x); + } - parseLiteralMultiString() { - if (this.char === CTRL_M) { - return null; - } else if (this.char === CTRL_J) { - return this.next(this.parseLiteralMultiStringContent); - } else { - return this.goto(this.parseLiteralMultiStringContent); - } - } + return dirs; +}; - parseLiteralMultiStringContent() { - do { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiEnd); - } else if (this.char === Parser.END) { - throw this.error(new TomlError('Unterminated multi-line string')); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } +var sync$9 = function resolveSync(x, options) { + if (typeof x !== 'string') { + throw new TypeError('Path must be a string.'); + } - parseLiteralMultiEnd() { - if (this.char === CHAR_APOS) { - return this.next(this.parseLiteralMultiEnd2); - } else { - this.state.buf += "'"; - return this.goto(this.parseLiteralMultiStringContent); - } - } + var opts = normalizeOptions$1(x, options); + var isFile = opts.isFile || defaultIsFile; + var readFileSync = opts.readFileSync || fs__default['default'].readFileSync; + var isDirectory = opts.isDirectory || defaultIsDir; + var realpathSync = opts.realpathSync || defaultRealpathSync; + var readPackageSync = opts.readPackageSync || defaultReadPackageSync; - parseLiteralMultiEnd2() { - if (this.char === CHAR_APOS) { - return this.return(); - } else { - this.state.buf += "''"; - return this.goto(this.parseLiteralMultiStringContent); - } - } - /* STRINGS double quoted */ + if (opts.readFileSync && opts.readPackageSync) { + throw new TypeError('`readFileSync` and `readPackageSync` are mutually exclusive.'); + } + var packageIterator = opts.packageIterator; + var extensions = opts.extensions || ['.js']; + var includeCoreModules = opts.includeCoreModules !== false; + var basedir = opts.basedir || path__default['default'].dirname(caller()); + var parent = opts.filename || basedir; + opts.paths = opts.paths || []; // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - parseDoubleString() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiStringMaybe); - } else { - return this.goto(this.parseBasicString); - } - } + var absoluteStart = maybeRealpathSync(realpathSync, path__default['default'].resolve(basedir), opts); - parseBasicString() { - do { - if (this.char === CHAR_BSOL) { - return this.call(this.parseEscape, this.recordEscapeReplacement); - } else if (this.char === CHAR_QUOT) { - return this.return(); - } else if (this.atEndOfLine()) { - throw this.error(new TomlError('Unterminated string')); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); - } + if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { + var res = path__default['default'].resolve(absoluteStart, x); + if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; + var m = loadAsFileSync(res) || loadAsDirectorySync(res); + if (m) return maybeRealpathSync(realpathSync, m, opts); + } else if (includeCoreModules && isCoreModule(x)) { + return x; + } else { + var n = loadNodeModulesSync(x, absoluteStart); + if (n) return maybeRealpathSync(realpathSync, n, opts); + } - recordEscapeReplacement(replacement) { - this.state.buf += replacement; - return this.goto(this.parseBasicString); - } + var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); + err.code = 'MODULE_NOT_FOUND'; + throw err; - parseMultiStringMaybe() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiString); - } else { - return this.returnNow(); - } - } + function loadAsFileSync(x) { + var pkg = loadpkg(path__default['default'].dirname(x)); - parseMultiString() { - if (this.char === CTRL_M) { - return null; - } else if (this.char === CTRL_J) { - return this.next(this.parseMultiStringContent); - } else { - return this.goto(this.parseMultiStringContent); + if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { + var rfile = path__default['default'].relative(pkg.dir, x); + var r = opts.pathFilter(pkg.pkg, x, rfile); + + if (r) { + x = path__default['default'].resolve(pkg.dir, r); // eslint-disable-line no-param-reassign } } - parseMultiStringContent() { - do { - if (this.char === CHAR_BSOL) { - return this.call(this.parseMultiEscape, this.recordMultiEscapeReplacement); - } else if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiEnd); - } else if (this.char === Parser.END) { - throw this.error(new TomlError('Unterminated multi-line string')); - } else if (this.char === CHAR_DEL || this.char <= CTRL_CHAR_BOUNDARY && this.char !== CTRL_I && this.char !== CTRL_J && this.char !== CTRL_M) { - throw this.errorControlCharInString(); - } else { - this.consume(); - } - } while (this.nextChar()); + if (isFile(x)) { + return x; } - errorControlCharInString() { - let displayCode = '\\u00'; + for (var i = 0; i < extensions.length; i++) { + var file = x + extensions[i]; - if (this.char < 16) { - displayCode += '0'; + if (isFile(file)) { + return file; } - - displayCode += this.char.toString(16); - return this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${displayCode} instead`)); } + } - recordMultiEscapeReplacement(replacement) { - this.state.buf += replacement; - return this.goto(this.parseMultiStringContent); - } + function loadpkg(dir) { + if (dir === '' || dir === '/') return; - parseMultiEnd() { - if (this.char === CHAR_QUOT) { - return this.next(this.parseMultiEnd2); - } else { - this.state.buf += '"'; - return this.goto(this.parseMultiStringContent); - } + if (process.platform === 'win32' && /^\w:[/\\]*$/.test(dir)) { + return; } - parseMultiEnd2() { - if (this.char === CHAR_QUOT) { - return this.return(); - } else { - this.state.buf += '""'; - return this.goto(this.parseMultiStringContent); - } - } + if (/[/\\]node_modules[/\\]*$/.test(dir)) return; + var pkgfile = path__default['default'].join(maybeRealpathSync(realpathSync, dir, opts), 'package.json'); - parseMultiEscape() { - if (this.char === CTRL_M || this.char === CTRL_J) { - return this.next(this.parseMultiTrim); - } else if (this.char === CHAR_SP || this.char === CTRL_I) { - return this.next(this.parsePreMultiTrim); - } else { - return this.goto(this.parseEscape); - } + if (!isFile(pkgfile)) { + return loadpkg(path__default['default'].dirname(dir)); } - parsePreMultiTrim() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === CTRL_M || this.char === CTRL_J) { - return this.next(this.parseMultiTrim); - } else { - throw this.error(new TomlError("Can't escape whitespace")); - } - } + var pkg = readPackageSync(readFileSync, pkgfile); - parseMultiTrim() { - // explicitly whitespace here, END should follow the same path as chars - if (this.char === CTRL_J || this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M) { - return null; - } else { - return this.returnNow(); - } + if (pkg && opts.packageFilter) { + // v2 will pass pkgfile + pkg = opts.packageFilter(pkg, + /*pkgfile,*/ + dir); // eslint-disable-line spaced-comment } - parseEscape() { - if (this.char in escapes) { - return this.return(escapes[this.char]); - } else if (this.char === CHAR_u) { - return this.call(this.parseSmallUnicode, this.parseUnicodeReturn); - } else if (this.char === CHAR_U) { - return this.call(this.parseLargeUnicode, this.parseUnicodeReturn); - } else { - throw this.error(new TomlError('Unknown escape character: ' + this.char)); - } - } + return { + pkg: pkg, + dir: dir + }; + } - parseUnicodeReturn(char) { + function loadAsDirectorySync(x) { + var pkgfile = path__default['default'].join(maybeRealpathSync(realpathSync, x, opts), '/package.json'); + + if (isFile(pkgfile)) { try { - const codePoint = parseInt(char, 16); + var pkg = readPackageSync(readFileSync, pkgfile); + } catch (e) {} - if (codePoint >= SURROGATE_FIRST && codePoint <= SURROGATE_LAST) { - throw this.error(new TomlError('Invalid unicode, character in range 0xD800 - 0xDFFF is reserved')); + if (pkg && opts.packageFilter) { + // v2 will pass pkgfile + pkg = opts.packageFilter(pkg, + /*pkgfile,*/ + x); // eslint-disable-line spaced-comment + } + + if (pkg && pkg.main) { + if (typeof pkg.main !== 'string') { + var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); + mainError.code = 'INVALID_PACKAGE_MAIN'; + throw mainError; } - return this.returnNow(String.fromCodePoint(codePoint)); - } catch (err) { - throw this.error(TomlError.wrap(err)); - } - } + if (pkg.main === '.' || pkg.main === './') { + pkg.main = 'index'; + } - parseSmallUnicode() { - if (!isHexit(this.char)) { - throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')); - } else { - this.consume(); - if (this.state.buf.length >= 4) return this.return(); + try { + var m = loadAsFileSync(path__default['default'].resolve(x, pkg.main)); + if (m) return m; + var n = loadAsDirectorySync(path__default['default'].resolve(x, pkg.main)); + if (n) return n; + } catch (e) {} } } - parseLargeUnicode() { - if (!isHexit(this.char)) { - throw this.error(new TomlError('Invalid character in unicode sequence, expected hex')); - } else { - this.consume(); - if (this.state.buf.length >= 8) return this.return(); - } - } - /* NUMBERS */ + return loadAsFileSync(path__default['default'].join(x, '/index')); + } + function loadNodeModulesSync(x, start) { + var thunk = function () { + return getPackageCandidates(x, start, opts); + }; - parseNumberSign() { - this.consume(); - return this.next(this.parseMaybeSignedInfOrNan); - } + var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk(); - parseMaybeSignedInfOrNan() { - if (this.char === CHAR_i) { - return this.next(this.parseInf); - } else if (this.char === CHAR_n) { - return this.next(this.parseNan); - } else { - return this.callNow(this.parseNoUnder, this.parseNumberIntegerStart); - } - } + for (var i = 0; i < dirs.length; i++) { + var dir = dirs[i]; - parseNumberIntegerStart() { - if (this.char === CHAR_0) { - this.consume(); - return this.next(this.parseNumberIntegerExponentOrDecimal); - } else { - return this.goto(this.parseNumberInteger); + if (isDirectory(path__default['default'].dirname(dir))) { + var m = loadAsFileSync(dir); + if (m) return m; + var n = loadAsDirectorySync(dir); + if (n) return n; } } + } +}; - parseNumberIntegerExponentOrDecimal() { - if (this.char === CHAR_PERIOD) { - this.consume(); - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else { - return this.returnNow(Integer(this.state.buf)); - } - } +async$5.core = core_1; +async$5.isCore = isCore; +async$5.sync = sync$9; +var resolve$1 = async$5; - parseNumberInteger() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else if (this.char === CHAR_PERIOD) { - this.consume(); - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else { - const result = Integer(this.state.buf); - /* istanbul ignore if */ +let { + resolve +} = require; // In the VS Code and Atom extensions `require` is overridden and `require.resolve` doesn't support the 2nd argument. - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')); - } else { - return this.returnNow(result); - } - } +if (resolve.length === 1 || process.env.PRETTIER_FALLBACK_RESOLVE) { + // @ts-ignore + resolve = (id, options) => { + let basedir; + + if (options && options.paths && options.paths.length === 1) { + basedir = options.paths[0]; } - parseNoUnder() { - if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD || this.char === CHAR_E || this.char === CHAR_e) { - throw this.error(new TomlError('Unexpected character, expected digit')); - } else if (this.atEndOfWord()) { - throw this.error(new TomlError('Incomplete number')); - } + return resolve$1.sync(id, { + basedir + }); + }; +} - return this.returnNow(); - } +var resolve_1 = resolve; - parseNoUnderHexOctBinLiteral() { - if (this.char === CHAR_LOWBAR || this.char === CHAR_PERIOD) { - throw this.error(new TomlError('Unexpected character, expected digit')); - } else if (this.atEndOfWord()) { - throw this.error(new TomlError('Incomplete number')); - } +var semver$1 = createCommonjsModule(function (module, exports) { + exports = module.exports = SemVer; + var debug; + /* istanbul ignore next */ - return this.returnNow(); - } + if (typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments, 0); + args.unshift('SEMVER'); + console.log.apply(console, args); + }; + } else { + debug = function () {}; + } // Note: this is the semver.org version of the spec that it implements + // Not necessarily the package version of this code. - parseNumberFloat() { - if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else if (isDigit(this.char)) { - this.consume(); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else { - return this.returnNow(Float(this.state.buf)); - } - } - parseNumberExponentSign() { - if (isDigit(this.char)) { - return this.goto(this.parseNumberExponent); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume(); - this.call(this.parseNoUnder, this.parseNumberExponent); - } else { - throw this.error(new TomlError('Unexpected character, expected -, + or digit')); - } - } + exports.SEMVER_SPEC_VERSION = '2.0.0'; + var MAX_LENGTH = 256; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || + /* istanbul ignore next */ + 9007199254740991; // Max safe segment length for coercion. - parseNumberExponent() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder); - } else { - return this.returnNow(Float(this.state.buf)); - } - } - /* NUMBERS or DATETIMES */ + var MAX_SAFE_COMPONENT_LENGTH = 16; // The actual regexps go on exports.re + var re = exports.re = []; + var src = exports.src = []; + var R = 0; // The following Regular Expressions can be used for tokenizing, + // validating, and parsing SemVer version strings. + // ## Numeric Identifier + // A single `0`, or a non-zero digit followed by zero or more digits. - parseNumberOrDateTime() { - if (this.char === CHAR_0) { - this.consume(); - return this.next(this.parseNumberBaseOrDateTime); - } else { - return this.goto(this.parseNumberOrDateTimeOnly); - } - } + var NUMERICIDENTIFIER = R++; + src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; + var NUMERICIDENTIFIERLOOSE = R++; + src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; // ## Non-numeric Identifier + // Zero or more digits, followed by a letter or hyphen, and then zero or + // more letters, digits, or hyphens. - parseNumberOrDateTimeOnly() { - // note, if two zeros are in a row then it MUST be a date - if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnder, this.parseNumberInteger); - } else if (isDigit(this.char)) { - this.consume(); - if (this.state.buf.length > 4) this.next(this.parseNumberInteger); - } else if (this.char === CHAR_E || this.char === CHAR_e) { - this.consume(); - return this.next(this.parseNumberExponentSign); - } else if (this.char === CHAR_PERIOD) { - this.consume(); - return this.call(this.parseNoUnder, this.parseNumberFloat); - } else if (this.char === CHAR_HYPHEN) { - return this.goto(this.parseDateTime); - } else if (this.char === CHAR_COLON) { - return this.goto(this.parseOnlyTimeHour); - } else { - return this.returnNow(Integer(this.state.buf)); - } - } + var NONNUMERICIDENTIFIER = R++; + src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; // ## Main Version + // Three dot-separated numeric identifiers. - parseDateTimeOnly() { - if (this.state.buf.length < 4) { - if (isDigit(this.char)) { - return this.consume(); - } else if (this.char === CHAR_COLON) { - return this.goto(this.parseOnlyTimeHour); - } else { - throw this.error(new TomlError('Expected digit while parsing year part of a date')); - } - } else { - if (this.char === CHAR_HYPHEN) { - return this.goto(this.parseDateTime); - } else { - throw this.error(new TomlError('Expected hyphen (-) while parsing year part of date')); - } - } - } + var MAINVERSION = R++; + src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + '(' + src[NUMERICIDENTIFIER] + ')\\.' + '(' + src[NUMERICIDENTIFIER] + ')'; + var MAINVERSIONLOOSE = R++; + src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; // ## Pre-release Version Identifier + // A numeric identifier, or a non-numeric identifier. - parseNumberBaseOrDateTime() { - if (this.char === CHAR_b) { - this.consume(); - return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerBin); - } else if (this.char === CHAR_o) { - this.consume(); - return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerOct); - } else if (this.char === CHAR_x) { - this.consume(); - return this.call(this.parseNoUnderHexOctBinLiteral, this.parseIntegerHex); - } else if (this.char === CHAR_PERIOD) { - return this.goto(this.parseNumberInteger); - } else if (isDigit(this.char)) { - return this.goto(this.parseDateTimeOnly); - } else { - return this.returnNow(Integer(this.state.buf)); - } - } + var PRERELEASEIDENTIFIER = R++; + src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + '|' + src[NONNUMERICIDENTIFIER] + ')'; + var PRERELEASEIDENTIFIERLOOSE = R++; + src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + '|' + src[NONNUMERICIDENTIFIER] + ')'; // ## Pre-release Version + // Hyphen, followed by one or more dot-separated pre-release version + // identifiers. - parseIntegerHex() { - if (isHexit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnderHexOctBinLiteral); - } else { - const result = Integer(this.state.buf); - /* istanbul ignore if */ + var PRERELEASE = R++; + src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; + var PRERELEASELOOSE = R++; + src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; // ## Build Metadata Identifier + // Any combination of digits, letters, or hyphens. - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')); - } else { - return this.returnNow(result); - } - } + var BUILDIDENTIFIER = R++; + src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; // ## Build Metadata + // Plus sign, followed by one or more period-separated build metadata + // identifiers. + + var BUILD = R++; + src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; // ## Full Version String + // A main version, followed optionally by a pre-release version and + // build metadata. + // Note that the only major, minor, patch, and pre-release sections of + // the version string are capturing groups. The build metadata is not a + // capturing group, because it should not ever be used in version + // comparison. + + var FULL = R++; + var FULLPLAIN = 'v?' + src[MAINVERSION] + src[PRERELEASE] + '?' + src[BUILD] + '?'; + src[FULL] = '^' + FULLPLAIN + '$'; // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. + // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty + // common in the npm registry. + + var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + src[PRERELEASELOOSE] + '?' + src[BUILD] + '?'; + var LOOSE = R++; + src[LOOSE] = '^' + LOOSEPLAIN + '$'; + var GTLT = R++; + src[GTLT] = '((?:<|>)?=?)'; // Something like "2.*" or "1.2.x". + // Note that "x.x" is a valid xRange identifer, meaning "any version" + // Only the first item is strictly required. + + var XRANGEIDENTIFIERLOOSE = R++; + src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; + var XRANGEIDENTIFIER = R++; + src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; + var XRANGEPLAIN = R++; + src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + '(?:' + src[PRERELEASE] + ')?' + src[BUILD] + '?' + ')?)?'; + var XRANGEPLAINLOOSE = R++; + src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:' + src[PRERELEASELOOSE] + ')?' + src[BUILD] + '?' + ')?)?'; + var XRANGE = R++; + src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; + var XRANGELOOSE = R++; + src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; // Coercion. + // Extract anything that could conceivably be a part of a valid semver + + var COERCE = R++; + src[COERCE] = '(?:^|[^\\d])' + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:$|[^\\d])'; // Tilde ranges. + // Meaning is "reasonably at or greater than" + + var LONETILDE = R++; + src[LONETILDE] = '(?:~>?)'; + var TILDETRIM = R++; + src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; + re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); + var tildeTrimReplace = '$1~'; + var TILDE = R++; + src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; + var TILDELOOSE = R++; + src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; // Caret ranges. + // Meaning is "at least and backwards compatible with" + + var LONECARET = R++; + src[LONECARET] = '(?:\\^)'; + var CARETTRIM = R++; + src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; + re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); + var caretTrimReplace = '$1^'; + var CARET = R++; + src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; + var CARETLOOSE = R++; + src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; // A simple gt/lt/eq thing, or just "" to indicate "any version" + + var COMPARATORLOOSE = R++; + src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; + var COMPARATOR = R++; + src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; // An expression to strip any whitespace between the gtlt and the thing + // it modifies, so that `> 1.2.3` ==> `>1.2.3` + + var COMPARATORTRIM = R++; + src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; // this one has to use the /g flag + + re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); + var comparatorTrimReplace = '$1$2$3'; // Something like `1.2.3 - 1.2.4` + // Note that these all use the loose form, because they'll be + // checked against either the strict or loose comparator form + // later. + + var HYPHENRANGE = R++; + src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + '\\s+-\\s+' + '(' + src[XRANGEPLAIN] + ')' + '\\s*$'; + var HYPHENRANGELOOSE = R++; + src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + '\\s+-\\s+' + '(' + src[XRANGEPLAINLOOSE] + ')' + '\\s*$'; // Star ranges basically just allow anything at all. + + var STAR = R++; + src[STAR] = '(<|>)?=?\\s*\\*'; // Compile to actual regexp objects. + // All are flag-free, unless they were created above with a flag. + + for (var i = 0; i < R; i++) { + debug(i, src[i]); + + if (!re[i]) { + re[i] = new RegExp(src[i]); } + } - parseIntegerOct() { - if (isOctit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnderHexOctBinLiteral); - } else { - const result = Integer(this.state.buf); - /* istanbul ignore if */ + exports.parse = parse; - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')); - } else { - return this.returnNow(result); - } - } + function parse(version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; } - parseIntegerBin() { - if (isBit(this.char)) { - this.consume(); - } else if (this.char === CHAR_LOWBAR) { - return this.call(this.parseNoUnderHexOctBinLiteral); - } else { - const result = Integer(this.state.buf); - /* istanbul ignore if */ + if (version instanceof SemVer) { + return version; + } - if (result.isNaN()) { - throw this.error(new TomlError('Invalid number')); - } else { - return this.returnNow(result); - } - } + if (typeof version !== 'string') { + return null; } - /* DATETIME */ + if (version.length > MAX_LENGTH) { + return null; + } - parseDateTime() { - // we enter here having just consumed the year and about to consume the hyphen - if (this.state.buf.length < 4) { - throw this.error(new TomlError('Years less than 1000 must be zero padded to four characters')); - } + var r = options.loose ? re[LOOSE] : re[FULL]; - this.state.result = this.state.buf; - this.state.buf = ''; - return this.next(this.parseDateMonth); + if (!r.test(version)) { + return null; } - parseDateMonth() { - if (this.char === CHAR_HYPHEN) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Months less than 10 must be zero padded to two characters')); - } - - this.state.result += '-' + this.state.buf; - this.state.buf = ''; - return this.next(this.parseDateDay); - } else if (isDigit(this.char)) { - this.consume(); - } else { - throw this.error(new TomlError('Incomplete datetime')); - } + try { + return new SemVer(version, options); + } catch (er) { + return null; } + } - parseDateDay() { - if (this.char === CHAR_T || this.char === CHAR_SP) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Days less than 10 must be zero padded to two characters')); - } + exports.valid = valid; - this.state.result += '-' + this.state.buf; - this.state.buf = ''; - return this.next(this.parseStartTimeHour); - } else if (this.atEndOfWord()) { - return this.returnNow(createDate(this.state.result + '-' + this.state.buf)); - } else if (isDigit(this.char)) { - this.consume(); - } else { - throw this.error(new TomlError('Incomplete datetime')); - } + function valid(version, options) { + var v = parse(version, options); + return v ? v.version : null; + } + + exports.clean = clean; + + function clean(version, options) { + var s = parse(version.trim().replace(/^[=v]+/, ''), options); + return s ? s.version : null; + } + + exports.SemVer = SemVer; + + function SemVer(version, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; } - parseStartTimeHour() { - if (this.atEndOfWord()) { - return this.returnNow(createDate(this.state.result)); + if (version instanceof SemVer) { + if (version.loose === options.loose) { + return version; } else { - return this.goto(this.parseTimeHour); + version = version.version; } + } else if (typeof version !== 'string') { + throw new TypeError('Invalid Version: ' + version); } - parseTimeHour() { - if (this.char === CHAR_COLON) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')); - } - - this.state.result += 'T' + this.state.buf; - this.state.buf = ''; - return this.next(this.parseTimeMin); - } else if (isDigit(this.char)) { - this.consume(); - } else { - throw this.error(new TomlError('Incomplete datetime')); - } + if (version.length > MAX_LENGTH) { + throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters'); } - parseTimeMin() { - if (this.state.buf.length < 2 && isDigit(this.char)) { - this.consume(); - } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { - this.state.result += ':' + this.state.buf; - this.state.buf = ''; - return this.next(this.parseTimeSec); - } else { - throw this.error(new TomlError('Incomplete datetime')); - } + if (!(this instanceof SemVer)) { + return new SemVer(version, options); } - parseTimeSec() { - if (isDigit(this.char)) { - this.consume(); + debug('SemVer', version, options); + this.options = options; + this.loose = !!options.loose; + var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL]); - if (this.state.buf.length === 2) { - this.state.result += ':' + this.state.buf; - this.state.buf = ''; - return this.next(this.parseTimeZoneOrFraction); - } - } else { - throw this.error(new TomlError('Incomplete datetime')); - } + if (!m) { + throw new TypeError('Invalid Version: ' + version); } - parseOnlyTimeHour() { - /* istanbul ignore else */ - if (this.char === CHAR_COLON) { - if (this.state.buf.length < 2) { - throw this.error(new TomlError('Hours less than 10 must be zero padded to two characters')); - } + this.raw = version; // these are actually numbers - this.state.result = this.state.buf; - this.state.buf = ''; - return this.next(this.parseOnlyTimeMin); - } else { - throw this.error(new TomlError('Incomplete time')); - } + this.major = +m[1]; + this.minor = +m[2]; + this.patch = +m[3]; + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version'); } - parseOnlyTimeMin() { - if (this.state.buf.length < 2 && isDigit(this.char)) { - this.consume(); - } else if (this.state.buf.length === 2 && this.char === CHAR_COLON) { - this.state.result += ':' + this.state.buf; - this.state.buf = ''; - return this.next(this.parseOnlyTimeSec); - } else { - throw this.error(new TomlError('Incomplete time')); - } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version'); } - parseOnlyTimeSec() { - if (isDigit(this.char)) { - this.consume(); + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version'); + } // numberify any prerelease numeric ids - if (this.state.buf.length === 2) { - return this.next(this.parseOnlyTimeFractionMaybe); + + if (!m[4]) { + this.prerelease = []; + } else { + this.prerelease = m[4].split('.').map(function (id) { + if (/^[0-9]+$/.test(id)) { + var num = +id; + + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } } - } else { - throw this.error(new TomlError('Incomplete time')); - } + + return id; + }); } - parseOnlyTimeFractionMaybe() { - this.state.result += ':' + this.state.buf; + this.build = m[5] ? m[5].split('.') : []; + this.format(); + } - if (this.char === CHAR_PERIOD) { - this.state.buf = ''; - this.next(this.parseOnlyTimeFraction); - } else { - return this.return(createTime(this.state.result)); - } - } + SemVer.prototype.format = function () { + this.version = this.major + '.' + this.minor + '.' + this.patch; - parseOnlyTimeFraction() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.atEndOfWord()) { - if (this.state.buf.length === 0) throw this.error(new TomlError('Expected digit in milliseconds')); - return this.returnNow(createTime(this.state.result + '.' + this.state.buf)); - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')); - } + if (this.prerelease.length) { + this.version += '-' + this.prerelease.join('.'); } - parseTimeZoneOrFraction() { - if (this.char === CHAR_PERIOD) { - this.consume(); - this.next(this.parseDateTimeFraction); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume(); - this.next(this.parseTimeZoneHour); - } else if (this.char === CHAR_Z) { - this.consume(); - return this.return(createDatetime(this.state.result + this.state.buf)); - } else if (this.atEndOfWord()) { - return this.returnNow(createDatetimeFloat(this.state.result + this.state.buf)); - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')); - } - } + return this.version; + }; - parseDateTimeFraction() { - if (isDigit(this.char)) { - this.consume(); - } else if (this.state.buf.length === 1) { - throw this.error(new TomlError('Expected digit in milliseconds')); - } else if (this.char === CHAR_HYPHEN || this.char === CHAR_PLUS) { - this.consume(); - this.next(this.parseTimeZoneHour); - } else if (this.char === CHAR_Z) { - this.consume(); - return this.return(createDatetime(this.state.result + this.state.buf)); - } else if (this.atEndOfWord()) { - return this.returnNow(createDatetimeFloat(this.state.result + this.state.buf)); - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z')); - } - } + SemVer.prototype.toString = function () { + return this.version; + }; - parseTimeZoneHour() { - if (isDigit(this.char)) { - this.consume(); // FIXME: No more regexps + SemVer.prototype.compare = function (other) { + debug('SemVer.compare', this.version, this.options, other); - if (/\d\d$/.test(this.state.buf)) return this.next(this.parseTimeZoneSep); - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected digit')); - } + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); } - parseTimeZoneSep() { - if (this.char === CHAR_COLON) { - this.consume(); - this.next(this.parseTimeZoneMin); - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected colon')); - } - } + return this.compareMain(other) || this.comparePre(other); + }; - parseTimeZoneMin() { - if (isDigit(this.char)) { - this.consume(); - if (/\d\d$/.test(this.state.buf)) return this.return(createDatetime(this.state.result + this.state.buf)); - } else { - throw this.error(new TomlError('Unexpected character in datetime, expected digit')); - } + SemVer.prototype.compareMain = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); } - /* BOOLEAN */ + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + }; - parseBoolean() { - /* istanbul ignore else */ - if (this.char === CHAR_t) { - this.consume(); - return this.next(this.parseTrue_r); - } else if (this.char === CHAR_f) { - this.consume(); - return this.next(this.parseFalse_a); - } - } + SemVer.prototype.comparePre = function (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options); + } // NOT having a prerelease is > having one - parseTrue_r() { - if (this.char === CHAR_r) { - this.consume(); - return this.next(this.parseTrue_u); - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); - } - } - parseTrue_u() { - if (this.char === CHAR_u) { - this.consume(); - return this.next(this.parseTrue_e); - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); - } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; } - parseTrue_e() { - if (this.char === CHAR_e) { - return this.return(true); - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); - } - } + var i = 0; - parseFalse_a() { - if (this.char === CHAR_a) { - this.consume(); - return this.next(this.parseFalse_l); - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); - } - } + do { + var a = this.prerelease[i]; + var b = other.prerelease[i]; + debug('prerelease compare', i, a, b); - parseFalse_l() { - if (this.char === CHAR_l) { - this.consume(); - return this.next(this.parseFalse_s); + if (a === undefined && b === undefined) { + return 0; + } else if (b === undefined) { + return 1; + } else if (a === undefined) { + return -1; + } else if (a === b) { + continue; } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); + return compareIdentifiers(a, b); } - } + } while (++i); + }; // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. - parseFalse_s() { - if (this.char === CHAR_s) { - this.consume(); - return this.next(this.parseFalse_e); - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); - } - } - parseFalse_e() { - if (this.char === CHAR_e) { - return this.return(false); - } else { - throw this.error(new TomlError('Invalid boolean, expected true or false')); - } - } - /* INLINE LISTS */ + SemVer.prototype.inc = function (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc('pre', identifier); + break; + case 'preminor': + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc('pre', identifier); + break; - parseInlineList() { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { - return null; - } else if (this.char === Parser.END) { - throw this.error(new TomlError('Unterminated inline array')); - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment); - } else if (this.char === CHAR_RSQB) { - return this.return(this.state.resultArr || InlineList()); - } else { - return this.callNow(this.parseValue, this.recordInlineListValue); - } - } + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0; + this.inc('patch', identifier); + this.inc('pre', identifier); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. - recordInlineListValue(value) { - if (this.state.resultArr) { - const listType = this.state.resultArr[_contentType]; - const valueType = tomlType(value); + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier); + } + + this.inc('pre', identifier); + break; + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + + this.patch = 0; + this.prerelease = []; + break; + + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++; + } + + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0]; + } else { + var i = this.prerelease.length; + + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++; + i = -2; + } + } + + if (i === -1) { + // didn't increment anything + this.prerelease.push(0); + } + } - if (listType !== valueType) { - throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${listType} and ${valueType}`)); + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (this.prerelease[0] === identifier) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0]; + } + } else { + this.prerelease = [identifier, 0]; + } } - } else { - this.state.resultArr = InlineList(tomlType(value)); - } - if (isFloat(value) || isInteger(value)) { - // unbox now that we've verified they're ok - this.state.resultArr.push(value.valueOf()); - } else { - this.state.resultArr.push(value); - } + break; - return this.goto(this.parseInlineListNext); + default: + throw new Error('invalid increment argument: ' + release); } - parseInlineListNext() { - if (this.char === CHAR_SP || this.char === CTRL_I || this.char === CTRL_M || this.char === CTRL_J) { - return null; - } else if (this.char === CHAR_NUM) { - return this.call(this.parseComment); - } else if (this.char === CHAR_COMMA) { - return this.next(this.parseInlineList); - } else if (this.char === CHAR_RSQB) { - return this.goto(this.parseInlineList); - } else { - throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')); - } - } - /* INLINE TABLE */ + this.format(); + this.raw = this.version; + return this; + }; + exports.inc = inc; - parseInlineTable() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { - throw this.error(new TomlError('Unterminated inline array')); - } else if (this.char === CHAR_RCUB) { - return this.return(this.state.resultTable || InlineTable()); - } else { - if (!this.state.resultTable) this.state.resultTable = InlineTable(); - return this.callNow(this.parseAssign, this.recordInlineTableValue); - } + function inc(version, release, loose, identifier) { + if (typeof loose === 'string') { + identifier = loose; + loose = undefined; } - recordInlineTableValue(kv) { - let target = this.state.resultTable; - let finalKey = kv.key.pop(); + try { + return new SemVer(version, loose).inc(release, identifier).version; + } catch (er) { + return null; + } + } - for (let kw of kv.key) { - if (hasKey(target, kw) && (!isTable(target[kw]) || target[kw][_declared])) { - throw this.error(new TomlError("Can't redefine existing key")); - } + exports.diff = diff; - target = target[kw] = target[kw] || Table(); - } + function diff(version1, version2) { + if (eq(version1, version2)) { + return null; + } else { + var v1 = parse(version1); + var v2 = parse(version2); + var prefix = ''; - if (hasKey(target, finalKey)) { - throw this.error(new TomlError("Can't redefine existing key")); + if (v1.prerelease.length || v2.prerelease.length) { + prefix = 'pre'; + var defaultResult = 'prerelease'; } - if (isInteger(kv.value) || isFloat(kv.value)) { - target[finalKey] = kv.value.valueOf(); - } else { - target[finalKey] = kv.value; + for (var key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key; + } + } } - return this.goto(this.parseInlineTableNext); + return defaultResult; // may be undefined } + } - parseInlineTableNext() { - if (this.char === CHAR_SP || this.char === CTRL_I) { - return null; - } else if (this.char === Parser.END || this.char === CHAR_NUM || this.char === CTRL_J || this.char === CTRL_M) { - throw this.error(new TomlError('Unterminated inline array')); - } else if (this.char === CHAR_COMMA) { - return this.next(this.parseInlineTable); - } else if (this.char === CHAR_RCUB) { - return this.goto(this.parseInlineTable); - } else { - throw this.error(new TomlError('Invalid character, expected whitespace, comma (,) or close bracket (])')); - } + exports.compareIdentifiers = compareIdentifiers; + var numeric = /^[0-9]+$/; + + function compareIdentifiers(a, b) { + var anum = numeric.test(a); + var bnum = numeric.test(b); + + if (anum && bnum) { + a = +a; + b = +b; } + return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; } - return TOMLParser; -} -tomlParser.makeParserClass = makeParserClass_1; -tomlParser.TomlError = TomlError_1; + exports.rcompareIdentifiers = rcompareIdentifiers; -var parsePrettyError = prettyError; + function rcompareIdentifiers(a, b) { + return compareIdentifiers(b, a); + } -function prettyError(err, buf) { - /* istanbul ignore if */ - if (err.pos == null || err.line == null) return err; - let msg = err.message; - msg += ` at row ${err.line + 1}, col ${err.col + 1}, pos ${err.pos}:\n`; - /* istanbul ignore else */ + exports.major = major; - if (buf && buf.split) { - const lines = buf.split(/\n/); - const lineNumWidth = String(Math.min(lines.length, err.line + 3)).length; - let linePadding = ' '; + function major(a, loose) { + return new SemVer(a, loose).major; + } - while (linePadding.length < lineNumWidth) linePadding += ' '; + exports.minor = minor; - for (let ii = Math.max(0, err.line - 1); ii < Math.min(lines.length, err.line + 2); ++ii) { - let lineNum = String(ii + 1); - if (lineNum.length < lineNumWidth) lineNum = ' ' + lineNum; + function minor(a, loose) { + return new SemVer(a, loose).minor; + } - if (err.line === ii) { - msg += lineNum + '> ' + lines[ii] + '\n'; - msg += linePadding + ' '; + exports.patch = patch; - for (let hh = 0; hh < err.col; ++hh) { - msg += ' '; - } + function patch(a, loose) { + return new SemVer(a, loose).patch; + } - msg += '^\n'; - } else { - msg += lineNum + ': ' + lines[ii] + '\n'; - } - } + exports.compare = compare; + + function compare(a, b, loose) { + return new SemVer(a, loose).compare(new SemVer(b, loose)); } - err.message = msg + '\n'; - return err; -} + exports.compareLoose = compareLoose; -var parseString_1 = parseString; + function compareLoose(a, b) { + return compare(a, b, true); + } -function parseString(str) { - if (global.Buffer && global.Buffer.isBuffer(str)) { - str = str.toString('utf8'); + exports.rcompare = rcompare; + + function rcompare(a, b, loose) { + return compare(b, a, loose); } - const parser = new tomlParser(); + exports.sort = sort; - try { - parser.parse(str); - return parser.finish(); - } catch (err) { - throw parsePrettyError(err, str); + function sort(list, loose) { + return list.sort(function (a, b) { + return exports.compare(a, b, loose); + }); } -} -var loadToml = function (filePath, content) { - try { - return parseString_1(content); - } catch (error) { - error.message = `TOML Error in ${filePath}:\n${error.message}`; - throw error; + exports.rsort = rsort; + + function rsort(list, loose) { + return list.sort(function (a, b) { + return exports.rcompare(a, b, loose); + }); } -}; -// This is a generated file. Do not edit. -var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/; -var ID_Start = /[\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\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\u09FC\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\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\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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\uDD00-\uDD43]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/; -var ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\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\u09FC\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-\u0AFF\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\u0C80-\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\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\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\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\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\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/; -var unicode = { - Space_Separator: Space_Separator, - ID_Start: ID_Start, - ID_Continue: ID_Continue -}; -var util$2 = { - isSpaceSeparator(c) { - return typeof c === 'string' && unicode.Space_Separator.test(c); - }, + exports.gt = gt; - isIdStartChar(c) { - return typeof c === 'string' && (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c === '$' || c === '_' || unicode.ID_Start.test(c)); - }, + function gt(a, b, loose) { + return compare(a, b, loose) > 0; + } - isIdContinueChar(c) { - return typeof c === 'string' && (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c === '$' || c === '_' || c === '\u200C' || c === '\u200D' || unicode.ID_Continue.test(c)); - }, + exports.lt = lt; - isDigit(c) { - return typeof c === 'string' && /[0-9]/.test(c); - }, + function lt(a, b, loose) { + return compare(a, b, loose) < 0; + } - isHexDigit(c) { - return typeof c === 'string' && /[0-9A-Fa-f]/.test(c); + exports.eq = eq; + + function eq(a, b, loose) { + return compare(a, b, loose) === 0; } -}; -let source$1; -let parseState; -let stack; -let pos; -let line$2; -let column; -let token; -let key; -let root$1; + exports.neq = neq; -var parse$2 = function parse(text, reviver) { - source$1 = String(text); - parseState = 'start'; - stack = []; - pos = 0; - line$2 = 1; - column = 0; - token = undefined; - key = undefined; - root$1 = undefined; + function neq(a, b, loose) { + return compare(a, b, loose) !== 0; + } - do { - token = lex(); // This code is unreachable. - // if (!parseStates[parseState]) { - // throw invalidParseState() - // } + exports.gte = gte; - parseStates[parseState](); - } while (token.type !== 'eof'); + function gte(a, b, loose) { + return compare(a, b, loose) >= 0; + } - if (typeof reviver === 'function') { - return internalize({ - '': root$1 - }, '', reviver); + exports.lte = lte; + + function lte(a, b, loose) { + return compare(a, b, loose) <= 0; } - return root$1; -}; + exports.cmp = cmp; -function internalize(holder, name, reviver) { - const value = holder[name]; + function cmp(a, op, b, loose) { + switch (op) { + case '===': + if (typeof a === 'object') a = a.version; + if (typeof b === 'object') b = b.version; + return a === b; - if (value != null && typeof value === 'object') { - for (const key in value) { - const replacement = internalize(value, key, reviver); + case '!==': + if (typeof a === 'object') a = a.version; + if (typeof b === 'object') b = b.version; + return a !== b; - if (replacement === undefined) { - delete value[key]; - } else { - value[key] = replacement; - } + case '': + case '=': + case '==': + return eq(a, b, loose); + + case '!=': + return neq(a, b, loose); + + case '>': + return gt(a, b, loose); + + case '>=': + return gte(a, b, loose); + + case '<': + return lt(a, b, loose); + + case '<=': + return lte(a, b, loose); + + default: + throw new TypeError('Invalid operator: ' + op); } } - return reviver.call(holder, name, value); -} + exports.Comparator = Comparator; -let lexState; -let buffer; -let doubleQuote; -let sign; -let c; + function Comparator(comp, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; + } -function lex() { - lexState = 'default'; - buffer = ''; - doubleQuote = false; - sign = 1; + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } - for (;;) { - c = peek(); // This code is unreachable. - // if (!lexStates[lexState]) { - // throw invalidLexState(lexState) - // } + if (!(this instanceof Comparator)) { + return new Comparator(comp, options); + } - const token = lexStates[lexState](); + debug('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); - if (token) { - return token; + if (this.semver === ANY) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; } - } -} -function peek() { - if (source$1[pos]) { - return String.fromCodePoint(source$1.codePointAt(pos)); + debug('comp', this); } -} -function read() { - const c = peek(); + var ANY = {}; - if (c === '\n') { - line$2++; - column = 0; - } else if (c) { - column += c.length; - } else { - column++; - } + Comparator.prototype.parse = function (comp) { + var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; + var m = comp.match(r); - if (c) { - pos += c.length; - } + if (!m) { + throw new TypeError('Invalid comparator: ' + comp); + } - return c; -} + this.operator = m[1]; -const lexStates = { - default() { - switch (c) { - case '\t': - case '\v': - case '\f': - case ' ': - case '\u00A0': - case '\uFEFF': - case '\n': - case '\r': - case '\u2028': - case '\u2029': - read(); - return; + if (this.operator === '=') { + this.operator = ''; + } // if it literally is just '>' or '' then allow anything. - case '/': - read(); - lexState = 'comment'; - return; - case undefined: - read(); - return newToken('eof'); + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); } + }; - if (util$2.isSpaceSeparator(c)) { - read(); - return; - } // This code is unreachable. - // if (!lexStates[parseState]) { - // throw invalidLexState(parseState) - // } + Comparator.prototype.toString = function () { + return this.value; + }; + Comparator.prototype.test = function (version) { + debug('Comparator.test', version, this.options.loose); - return lexStates[parseState](); - }, + if (this.semver === ANY) { + return true; + } - comment() { - switch (c) { - case '*': - read(); - lexState = 'multiLineComment'; - return; + if (typeof version === 'string') { + version = new SemVer(version, this.options); + } - case '/': - read(); - lexState = 'singleLineComment'; - return; + return cmp(version, this.operator, this.semver, this.options); + }; + + Comparator.prototype.intersects = function (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required'); } - throw invalidChar(read()); - }, + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; + } - multiLineComment() { - switch (c) { - case '*': - read(); - lexState = 'multiLineCommentAsterisk'; - return; + var rangeTmp; - case undefined: - throw invalidChar(read()); + if (this.operator === '') { + rangeTmp = new Range(comp.value, options); + return satisfies(this.value, rangeTmp, options); + } else if (comp.operator === '') { + rangeTmp = new Range(this.value, options); + return satisfies(comp.semver, rangeTmp, options); } - read(); - }, + var sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); + var sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); + var sameSemVer = this.semver.version === comp.semver.version; + var differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); + var oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); + var oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); + return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; + }; + + exports.Range = Range; + + function Range(range, options) { + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; + } - multiLineCommentAsterisk() { - switch (c) { - case '*': - read(); - return; + if (range instanceof Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new Range(range.raw, options); + } + } - case '/': - read(); - lexState = 'default'; - return; + if (range instanceof Comparator) { + return new Range(range.value, options); + } - case undefined: - throw invalidChar(read()); + if (!(this instanceof Range)) { + return new Range(range, options); } - read(); - lexState = 'multiLineComment'; - }, + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; // First, split based on boolean or || - singleLineComment() { - switch (c) { - case '\n': - case '\r': - case '\u2028': - case '\u2029': - read(); - lexState = 'default'; - return; + this.raw = range; + this.set = range.split(/\s*\|\|\s*/).map(function (range) { + return this.parseRange(range.trim()); + }, this).filter(function (c) { + // throw out any that are not relevant for whatever reason + return c.length; + }); - case undefined: - read(); - return newToken('eof'); + if (!this.set.length) { + throw new TypeError('Invalid SemVer Range: ' + range); } - read(); - }, + this.format(); + } - value() { - switch (c) { - case '{': - case '[': - return newToken('punctuator', read()); + Range.prototype.format = function () { + this.range = this.set.map(function (comps) { + return comps.join(' ').trim(); + }).join('||').trim(); + return this.range; + }; - case 'n': - read(); - literal('ull'); - return newToken('null', null); + Range.prototype.toString = function () { + return this.range; + }; - case 't': - read(); - literal('rue'); - return newToken('boolean', true); + Range.prototype.parseRange = function (range) { + var loose = this.options.loose; + range = range.trim(); // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - case 'f': - read(); - literal('alse'); - return newToken('boolean', false); + var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; + range = range.replace(hr, hyphenReplace); + debug('hyphen replace', range); // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - case '-': - case '+': - if (read() === '-') { - sign = -1; - } + range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range, re[COMPARATORTRIM]); // `~ 1.2.3` => `~1.2.3` - lexState = 'sign'; - return; + range = range.replace(re[TILDETRIM], tildeTrimReplace); // `^ 1.2.3` => `^1.2.3` - case '.': - buffer = read(); - lexState = 'decimalPointLeading'; - return; + range = range.replace(re[CARETTRIM], caretTrimReplace); // normalize spaces - case '0': - buffer = read(); - lexState = 'zero'; - return; + range = range.split(/\s+/).join(' '); // At this point, the range is completely trimmed and + // ready to be split into comparators. - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - buffer = read(); - lexState = 'decimalInteger'; - return; + var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; + var set = range.split(' ').map(function (comp) { + return parseComparator(comp, this.options); + }, this).join(' ').split(/\s+/); - case 'I': - read(); - literal('nfinity'); - return newToken('numeric', Infinity); + if (this.options.loose) { + // in loose mode, throw out any that are not valid comparators + set = set.filter(function (comp) { + return !!comp.match(compRe); + }); + } - case 'N': - read(); - literal('aN'); - return newToken('numeric', NaN); + set = set.map(function (comp) { + return new Comparator(comp, this.options); + }, this); + return set; + }; - case '"': - case "'": - doubleQuote = read() === '"'; - buffer = ''; - lexState = 'string'; - return; + Range.prototype.intersects = function (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required'); } - throw invalidChar(read()); - }, + return this.set.some(function (thisComparators) { + return thisComparators.every(function (thisComparator) { + return range.set.some(function (rangeComparators) { + return rangeComparators.every(function (rangeComparator) { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + }; // Mostly just for testing and legacy API reasons - identifierNameStartEscape() { - if (c !== 'u') { - throw invalidChar(read()); - } - read(); - const u = unicodeEscape(); + exports.toComparators = toComparators; - switch (u) { - case '$': - case '_': - break; + function toComparators(range, options) { + return new Range(range, options).set.map(function (comp) { + return comp.map(function (c) { + return c.value; + }).join(' ').trim().split(' '); + }); + } // comprised of xranges, tildes, stars, and gtlt's at this point. + // already replaced the hyphen ranges + // turn into a set of JUST comparators. - default: - if (!util$2.isIdStartChar(u)) { - throw invalidIdentifier(); - } - break; - } + function parseComparator(comp, options) { + debug('comp', comp, options); + comp = replaceCarets(comp, options); + debug('caret', comp); + comp = replaceTildes(comp, options); + debug('tildes', comp); + comp = replaceXRanges(comp, options); + debug('xrange', comp); + comp = replaceStars(comp, options); + debug('stars', comp); + return comp; + } - buffer += u; - lexState = 'identifierName'; - }, + function isX(id) { + return !id || id.toLowerCase() === 'x' || id === '*'; + } // ~, ~> --> * (any, kinda silly) + // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 + // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 + // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 + // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 + // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 - identifierName() { - switch (c) { - case '$': - case '_': - case '\u200C': - case '\u200D': - buffer += read(); - return; - case '\\': - read(); - lexState = 'identifierNameEscape'; - return; - } + function replaceTildes(comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceTilde(comp, options); + }).join(' '); + } - if (util$2.isIdContinueChar(c)) { - buffer += read(); - return; - } + function replaceTilde(comp, options) { + var r = options.loose ? re[TILDELOOSE] : re[TILDE]; + return comp.replace(r, function (_, M, m, p, pr) { + debug('tilde', comp, _, M, m, p, pr); + var ret; - return newToken('identifier', buffer); - }, + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0 + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + } else if (pr) { + debug('replaceTilde pr', pr); + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0'; + } else { + // ~1.2.3 == >=1.2.3 <1.3.0 + ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0'; + } - identifierNameEscape() { - if (c !== 'u') { - throw invalidChar(read()); - } + debug('tilde return', ret); + return ret; + }); + } // ^ --> * (any, kinda silly) + // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 + // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 + // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 + // ^1.2.3 --> >=1.2.3 <2.0.0 + // ^1.2.0 --> >=1.2.0 <2.0.0 - read(); - const u = unicodeEscape(); - switch (u) { - case '$': - case '_': - case '\u200C': - case '\u200D': - break; + function replaceCarets(comp, options) { + return comp.trim().split(/\s+/).map(function (comp) { + return replaceCaret(comp, options); + }).join(' '); + } - default: - if (!util$2.isIdContinueChar(u)) { - throw invalidIdentifier(); - } + function replaceCaret(comp, options) { + debug('caret', comp, options); + var r = options.loose ? re[CARETLOOSE] : re[CARET]; + return comp.replace(r, function (_, M, m, p, pr) { + debug('caret', comp, _, M, m, p, pr); + var ret; - break; - } + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + } else if (isX(p)) { + if (M === '0') { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + } else { + ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; + } + } else if (pr) { + debug('replaceCaret pr', pr); - buffer += u; - lexState = 'identifierName'; - }, + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + m + '.' + (+p + 1); + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0'; + } + } else { + ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + (+M + 1) + '.0.0'; + } + } else { + debug('no pr'); - sign() { - switch (c) { - case '.': - buffer = read(); - lexState = 'decimalPointLeading'; - return; + if (M === '0') { + if (m === '0') { + ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + m + '.' + (+p + 1); + } else { + ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0'; + } + } else { + ret = '>=' + M + '.' + m + '.' + p + ' <' + (+M + 1) + '.0.0'; + } + } - case '0': - buffer = read(); - lexState = 'zero'; - return; + debug('caret return', ret); + return ret; + }); + } - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - buffer = read(); - lexState = 'decimalInteger'; - return; + function replaceXRanges(comp, options) { + debug('replaceXRanges', comp, options); + return comp.split(/\s+/).map(function (comp) { + return replaceXRange(comp, options); + }).join(' '); + } - case 'I': - read(); - literal('nfinity'); - return newToken('numeric', sign * Infinity); + function replaceXRange(comp, options) { + comp = comp.trim(); + var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]; + return comp.replace(r, function (ret, gtlt, M, m, p, pr) { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + var xM = isX(M); + var xm = xM || isX(m); + var xp = xm || isX(p); + var anyX = xp; - case 'N': - read(); - literal('aN'); - return newToken('numeric', NaN); - } + if (gtlt === '=' && anyX) { + gtlt = ''; + } - throw invalidChar(read()); - }, + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0'; + } else { + // nothing is forbidden + ret = '*'; + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0; + } - zero() { - switch (c) { - case '.': - buffer += read(); - lexState = 'decimalPoint'; - return; + p = 0; - case 'e': - case 'E': - buffer += read(); - lexState = 'decimalExponent'; - return; + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + // >1.2.3 => >= 1.2.4 + gtlt = '>='; - case 'x': - case 'X': - buffer += read(); - lexState = 'hexadecimal'; - return; - } + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<'; - return newToken('numeric', sign * 0); - }, + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } - decimalInteger() { - switch (c) { - case '.': - buffer += read(); - lexState = 'decimalPoint'; - return; + ret = gtlt + M + '.' + m + '.' + p; + } else if (xm) { + ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; + } else if (xp) { + ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; + } - case 'e': - case 'E': - buffer += read(); - lexState = 'decimalExponent'; - return; - } + debug('xRange return', ret); + return ret; + }); + } // Because * is AND-ed with everything else in the comparator, + // and '' means "any version", just remove the *s entirely. - if (util$2.isDigit(c)) { - buffer += read(); - return; - } - return newToken('numeric', sign * Number(buffer)); - }, + function replaceStars(comp, options) { + debug('replaceStars', comp, options); // Looseness is ignored here. star is always as loose as it gets! - decimalPointLeading() { - if (util$2.isDigit(c)) { - buffer += read(); - lexState = 'decimalFraction'; - return; - } + return comp.trim().replace(re[STAR], ''); + } // This function is passed to string.replace(re[HYPHENRANGE]) + // M, m, patch, prerelease, build + // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 + // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do + // 1.2 - 3.4 => >=1.2.0 <3.5.0 - throw invalidChar(read()); - }, - decimalPoint() { - switch (c) { - case 'e': - case 'E': - buffer += read(); - lexState = 'decimalExponent'; - return; + function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { + if (isX(fM)) { + from = ''; + } else if (isX(fm)) { + from = '>=' + fM + '.0.0'; + } else if (isX(fp)) { + from = '>=' + fM + '.' + fm + '.0'; + } else { + from = '>=' + from; } - if (util$2.isDigit(c)) { - buffer += read(); - lexState = 'decimalFraction'; - return; + if (isX(tM)) { + to = ''; + } else if (isX(tm)) { + to = '<' + (+tM + 1) + '.0.0'; + } else if (isX(tp)) { + to = '<' + tM + '.' + (+tm + 1) + '.0'; + } else if (tpr) { + to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; + } else { + to = '<=' + to; } - return newToken('numeric', sign * Number(buffer)); - }, + return (from + ' ' + to).trim(); + } // if ANY of the sets match ALL of its comparators, then pass - decimalFraction() { - switch (c) { - case 'e': - case 'E': - buffer += read(); - lexState = 'decimalExponent'; - return; - } - if (util$2.isDigit(c)) { - buffer += read(); - return; + Range.prototype.test = function (version) { + if (!version) { + return false; } - return newToken('numeric', sign * Number(buffer)); - }, - - decimalExponent() { - switch (c) { - case '+': - case '-': - buffer += read(); - lexState = 'decimalExponentSign'; - return; + if (typeof version === 'string') { + version = new SemVer(version, this.options); } - if (util$2.isDigit(c)) { - buffer += read(); - lexState = 'decimalExponentInteger'; - return; + for (var i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true; + } } - throw invalidChar(read()); - }, + return false; + }; - decimalExponentSign() { - if (util$2.isDigit(c)) { - buffer += read(); - lexState = 'decimalExponentInteger'; - return; + function testSet(set, version, options) { + for (var i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false; + } } - throw invalidChar(read()); - }, + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (i = 0; i < set.length; i++) { + debug(set[i].semver); - decimalExponentInteger() { - if (util$2.isDigit(c)) { - buffer += read(); - return; - } + if (set[i].semver === ANY) { + continue; + } - return newToken('numeric', sign * Number(buffer)); - }, + if (set[i].semver.prerelease.length > 0) { + var allowed = set[i].semver; - hexadecimal() { - if (util$2.isHexDigit(c)) { - buffer += read(); - lexState = 'hexadecimalInteger'; - return; - } + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { + return true; + } + } + } // Version has a -pre, but it's not one of the ones we like. - throw invalidChar(read()); - }, - hexadecimalInteger() { - if (util$2.isHexDigit(c)) { - buffer += read(); - return; + return false; } - return newToken('numeric', sign * Number(buffer)); - }, + return true; + } - string() { - switch (c) { - case '\\': - read(); - buffer += escape(); - return; + exports.satisfies = satisfies; - case '"': - if (doubleQuote) { - read(); - return newToken('string', buffer); - } + function satisfies(version, range, options) { + try { + range = new Range(range, options); + } catch (er) { + return false; + } - buffer += read(); - return; + return range.test(version); + } - case "'": - if (!doubleQuote) { - read(); - return newToken('string', buffer); - } + exports.maxSatisfying = maxSatisfying; - buffer += read(); - return; + function maxSatisfying(versions, range, options) { + var max = null; + var maxSV = null; - case '\n': - case '\r': - throw invalidChar(read()); + try { + var rangeObj = new Range(range, options); + } catch (er) { + return null; + } - case '\u2028': - case '\u2029': - separatorChar(c); - break; + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v; + maxSV = new SemVer(max, options); + } + } + }); + return max; + } - case undefined: - throw invalidChar(read()); - } + exports.minSatisfying = minSatisfying; - buffer += read(); - }, + function minSatisfying(versions, range, options) { + var min = null; + var minSV = null; - start() { - switch (c) { - case '{': - case '[': - return newToken('punctuator', read()); - // This code is unreachable since the default lexState handles eof. - // case undefined: - // return newToken('eof') + try { + var rangeObj = new Range(range, options); + } catch (er) { + return null; } - lexState = 'value'; - }, - - beforePropertyName() { - switch (c) { - case '$': - case '_': - buffer = read(); - lexState = 'identifierName'; - return; + versions.forEach(function (v) { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v; + minSV = new SemVer(min, options); + } + } + }); + return min; + } - case '\\': - read(); - lexState = 'identifierNameStartEscape'; - return; + exports.minVersion = minVersion; - case '}': - return newToken('punctuator', read()); + function minVersion(range, loose) { + range = new Range(range, loose); + var minver = new SemVer('0.0.0'); - case '"': - case "'": - doubleQuote = read() === '"'; - lexState = 'string'; - return; + if (range.test(minver)) { + return minver; } - if (util$2.isIdStartChar(c)) { - buffer += read(); - lexState = 'identifierName'; - return; + minver = new SemVer('0.0.0-0'); + + if (range.test(minver)) { + return minver; } - throw invalidChar(read()); - }, + minver = null; - afterPropertyName() { - if (c === ':') { - return newToken('punctuator', read()); - } + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i]; + comparators.forEach(function (comparator) { + // Clone to avoid manipulating the comparator's semver object. + var compver = new SemVer(comparator.semver.version); - throw invalidChar(read()); - }, + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } - beforePropertyValue() { - lexState = 'value'; - }, + compver.raw = compver.format(); - afterPropertyValue() { - switch (c) { - case ',': - case '}': - return newToken('punctuator', read()); - } + /* fallthrough */ - throw invalidChar(read()); - }, + case '': + case '>=': + if (!minver || gt(minver, compver)) { + minver = compver; + } - beforeArrayValue() { - if (c === ']') { - return newToken('punctuator', read()); - } + break; - lexState = 'value'; - }, + case '<': + case '<=': + /* Ignore maximum versions */ + break; - afterArrayValue() { - switch (c) { - case ',': - case ']': - return newToken('punctuator', read()); + /* istanbul ignore next */ + + default: + throw new Error('Unexpected operation: ' + comparator.operator); + } + }); } - throw invalidChar(read()); - }, + if (minver && range.test(minver)) { + return minver; + } - end() { - // This code is unreachable since it's handled by the default lexState. - // if (c === undefined) { - // read() - // return newToken('eof') - // } - throw invalidChar(read()); + return null; } -}; + exports.validRange = validRange; -function newToken(type, value) { - return { - type, - value, - line: line$2, - column - }; -} + function validRange(range, options) { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*'; + } catch (er) { + return null; + } + } // Determine if version is less than all the versions possible in the range -function literal(s) { - for (const c of s) { - const p = peek(); - if (p !== c) { - throw invalidChar(read()); - } + exports.ltr = ltr; - read(); - } -} + function ltr(version, range, options) { + return outside(version, range, '<', options); + } // Determine if version is greater than all the versions possible in the range. -function escape() { - const c = peek(); - switch (c) { - case 'b': - read(); - return '\b'; + exports.gtr = gtr; - case 'f': - read(); - return '\f'; + function gtr(version, range, options) { + return outside(version, range, '>', options); + } - case 'n': - read(); - return '\n'; + exports.outside = outside; - case 'r': - read(); - return '\r'; + function outside(version, range, hilo, options) { + version = new SemVer(version, options); + range = new Range(range, options); + var gtfn, ltefn, ltfn, comp, ecomp; - case 't': - read(); - return '\t'; + switch (hilo) { + case '>': + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = '>'; + ecomp = '>='; + break; - case 'v': - read(); - return '\v'; + case '<': + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = '<'; + ecomp = '<='; + break; - case '0': - read(); + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } // If it satisifes the range it is not outside - if (util$2.isDigit(peek())) { - throw invalidChar(read()); - } - return '\0'; + if (satisfies(version, range, options)) { + return false; + } // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. - case 'x': - read(); - return hexEscape(); - case 'u': - read(); - return unicodeEscape(); + for (var i = 0; i < range.set.length; ++i) { + var comparators = range.set[i]; + var high = null; + var low = null; + comparators.forEach(function (comparator) { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0'); + } - case '\n': - case '\u2028': - case '\u2029': - read(); - return ''; + high = high || comparator; + low = low || comparator; - case '\r': - read(); + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); // If the edge version comparator has a operator then our version + // isn't outside it - if (peek() === '\n') { - read(); - } + if (high.operator === comp || high.operator === ecomp) { + return false; + } // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range - return ''; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - throw invalidChar(read()); + if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false; + } + } - case undefined: - throw invalidChar(read()); + return true; } - return read(); -} - -function hexEscape() { - let buffer = ''; - let c = peek(); + exports.prerelease = prerelease; - if (!util$2.isHexDigit(c)) { - throw invalidChar(read()); + function prerelease(version, options) { + var parsed = parse(version, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; } - buffer += read(); - c = peek(); + exports.intersects = intersects; - if (!util$2.isHexDigit(c)) { - throw invalidChar(read()); + function intersects(r1, r2, options) { + r1 = new Range(r1, options); + r2 = new Range(r2, options); + return r1.intersects(r2); } - buffer += read(); - return String.fromCodePoint(parseInt(buffer, 16)); -} + exports.coerce = coerce; -function unicodeEscape() { - let buffer = ''; - let count = 4; + function coerce(version) { + if (version instanceof SemVer) { + return version; + } - while (count-- > 0) { - const c = peek(); + if (typeof version !== 'string') { + return null; + } - if (!util$2.isHexDigit(c)) { - throw invalidChar(read()); + var match = version.match(re[COERCE]); + + if (match == null) { + return null; } - buffer += read(); + return parse(match[1] + '.' + (match[2] || '0') + '.' + (match[3] || '0')); } +}); - return String.fromCodePoint(parseInt(buffer, 16)); +var hasOwnProperty$9 = Object.prototype.hasOwnProperty; +var pseudomap = PseudoMap; + +function PseudoMap(set) { + if (!(this instanceof PseudoMap)) // whyyyyyyy + throw new TypeError("Constructor PseudoMap requires 'new'"); + this.clear(); + + if (set) { + if (set instanceof PseudoMap || typeof Map === 'function' && set instanceof Map) set.forEach(function (value, key) { + this.set(key, value); + }, this);else if (Array.isArray(set)) set.forEach(function (kv) { + this.set(kv[0], kv[1]); + }, this);else throw new TypeError('invalid argument'); + } } -const parseStates = { - start() { - if (token.type === 'eof') { - throw invalidEOF(); - } +PseudoMap.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; + Object.keys(this._data).forEach(function (k) { + if (k !== 'size') fn.call(thisp, this._data[k].value, this._data[k].key); + }, this); +}; - push(); - }, +PseudoMap.prototype.has = function (k) { + return !!find(this._data, k); +}; - beforePropertyName() { - switch (token.type) { - case 'identifier': - case 'string': - key = token.value; - parseState = 'afterPropertyName'; - return; +PseudoMap.prototype.get = function (k) { + var res = find(this._data, k); + return res && res.value; +}; - case 'punctuator': - // This code is unreachable since it's handled by the lexState. - // if (token.value !== '}') { - // throw invalidToken() - // } - pop(); - return; +PseudoMap.prototype.set = function (k, v) { + set(this._data, k, v); +}; - case 'eof': - throw invalidEOF(); - } // This code is unreachable since it's handled by the lexState. - // throw invalidToken() +PseudoMap.prototype.delete = function (k) { + var res = find(this._data, k); - }, + if (res) { + delete this._data[res._index]; + this._data.size--; + } +}; - afterPropertyName() { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'punctuator' || token.value !== ':') { - // throw invalidToken() - // } - if (token.type === 'eof') { - throw invalidEOF(); - } +PseudoMap.prototype.clear = function () { + var data = Object.create(null); + data.size = 0; + Object.defineProperty(this, '_data', { + value: data, + enumerable: false, + configurable: true, + writable: false + }); +}; - parseState = 'beforePropertyValue'; +Object.defineProperty(PseudoMap.prototype, 'size', { + get: function () { + return this._data.size; }, + set: function (n) {}, + enumerable: true, + configurable: true +}); - beforePropertyValue() { - if (token.type === 'eof') { - throw invalidEOF(); - } +PseudoMap.prototype.values = PseudoMap.prototype.keys = PseudoMap.prototype.entries = function () { + throw new Error('iterators are not implemented in this version'); +}; // Either identical, or both NaN - push(); - }, - beforeArrayValue() { - if (token.type === 'eof') { - throw invalidEOF(); - } +function same(a, b) { + return a === b || a !== a && b !== b; +} - if (token.type === 'punctuator' && token.value === ']') { - pop(); - return; - } +function Entry$1(k, v, i) { + this.key = k; + this.value = v; + this._index = i; +} - push(); - }, +function find(data, k) { + for (var i = 0, s = '_' + k, key = s; hasOwnProperty$9.call(data, key); key = s + i++) { + if (same(data[key].key, k)) return data[key]; + } +} - afterPropertyValue() { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'punctuator') { - // throw invalidToken() - // } - if (token.type === 'eof') { - throw invalidEOF(); +function set(data, k, v) { + for (var i = 0, s = '_' + k, key = s; hasOwnProperty$9.call(data, key); key = s + i++) { + if (same(data[key].key, k)) { + data[key].value = v; + return; } + } - switch (token.value) { - case ',': - parseState = 'beforePropertyName'; - return; + data.size++; + data[key] = new Entry$1(k, v, key); +} - case '}': - pop(); - } // This code is unreachable since it's handled by the lexState. - // throw invalidToken() +var map$1 = createCommonjsModule(function (module) { + if (process.env.npm_package_name === 'pseudomap' && process.env.npm_lifecycle_script === 'test') process.env.TEST_PSEUDOMAP = 'true'; - }, + if (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) { + module.exports = Map; + } else { + module.exports = pseudomap; + } +}); - afterArrayValue() { - // This code is unreachable since it's handled by the lexState. - // if (token.type !== 'punctuator') { - // throw invalidToken() - // } - if (token.type === 'eof') { - throw invalidEOF(); - } +var yallist = Yallist; +Yallist.Node = Node; +Yallist.create = Yallist; - switch (token.value) { - case ',': - parseState = 'beforeArrayValue'; - return; +function Yallist(list) { + var self = this; - case ']': - pop(); - } // This code is unreachable since it's handled by the lexState. - // throw invalidToken() + if (!(self instanceof Yallist)) { + self = new Yallist(); + } - }, + self.tail = null; + self.head = null; + self.length = 0; - end() {// This code is unreachable since it's handled by the lexState. - // if (token.type !== 'eof') { - // throw invalidToken() - // } + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item); + }); + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]); + } } -}; - -function push() { - let value; + return self; +} - switch (token.type) { - case 'punctuator': - switch (token.value) { - case '{': - value = {}; - break; +Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list'); + } - case '[': - value = []; - break; - } + var next = node.next; + var prev = node.prev; - break; + if (next) { + next.prev = prev; + } - case 'null': - case 'boolean': - case 'numeric': - case 'string': - value = token.value; - break; - // This code is unreachable. - // default: - // throw invalidToken() + if (prev) { + prev.next = next; } - if (root$1 === undefined) { - root$1 = value; - } else { - const parent = stack[stack.length - 1]; + if (node === this.head) { + this.head = next; + } - if (Array.isArray(parent)) { - parent.push(value); - } else { - parent[key] = value; - } + if (node === this.tail) { + this.tail = prev; } - if (value !== null && typeof value === 'object') { - stack.push(value); + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; +}; - if (Array.isArray(value)) { - parseState = 'beforeArrayValue'; - } else { - parseState = 'beforePropertyName'; - } - } else { - const current = stack[stack.length - 1]; +Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return; + } - if (current == null) { - parseState = 'end'; - } else if (Array.isArray(current)) { - parseState = 'afterArrayValue'; - } else { - parseState = 'afterPropertyValue'; - } + if (node.list) { + node.list.removeNode(node); } -} -function pop() { - stack.pop(); - const current = stack[stack.length - 1]; + var head = this.head; + node.list = this; + node.next = head; - if (current == null) { - parseState = 'end'; - } else if (Array.isArray(current)) { - parseState = 'afterArrayValue'; - } else { - parseState = 'afterPropertyValue'; + if (head) { + head.prev = node; } -} // This code is unreachable. -// function invalidParseState () { -// return new Error(`JSON5: invalid parse state '${parseState}'`) -// } -// This code is unreachable. -// function invalidLexState (state) { -// return new Error(`JSON5: invalid lex state '${state}'`) -// } + this.head = node; -function invalidChar(c) { - if (c === undefined) { - return syntaxError(`JSON5: invalid end of input at ${line$2}:${column}`); + if (!this.tail) { + this.tail = node; } - return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line$2}:${column}`); -} + this.length++; +}; -function invalidEOF() { - return syntaxError(`JSON5: invalid end of input at ${line$2}:${column}`); -} // This code is unreachable. -// function invalidToken () { -// if (token.type === 'eof') { -// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`) -// } -// const c = String.fromCodePoint(token.value.codePointAt(0)) -// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`) -// } +Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return; + } + if (node.list) { + node.list.removeNode(node); + } -function invalidIdentifier() { - column -= 5; - return syntaxError(`JSON5: invalid identifier character at ${line$2}:${column}`); -} + var tail = this.tail; + node.list = this; + node.prev = tail; -function separatorChar(c) { - console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`); -} + if (tail) { + tail.next = node; + } -function formatChar(c) { - const replacements = { - "'": "\\'", - '"': '\\"', - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t', - '\v': '\\v', - '\0': '\\0', - '\u2028': '\\u2028', - '\u2029': '\\u2029' - }; + this.tail = node; - if (replacements[c]) { - return replacements[c]; + if (!this.head) { + this.head = node; } - if (c < ' ') { - const hexString = c.charCodeAt(0).toString(16); - return '\\x' + ('00' + hexString).substring(hexString.length); + this.length++; +}; + +Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]); } - return c; -} + return this.length; +}; -function syntaxError(message) { - const err = new SyntaxError(message); - err.lineNumber = line$2; - err.columnNumber = column; - return err; -} +Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } -var stringify = function stringify(value, replacer, space) { - const stack = []; - let indent = ''; - let propertyList; - let replacerFunc; - let gap = ''; - let quote; + return this.length; +}; - if (replacer != null && typeof replacer === 'object' && !Array.isArray(replacer)) { - space = replacer.space; - quote = replacer.quote; - replacer = replacer.replacer; +Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined; } - if (typeof replacer === 'function') { - replacerFunc = replacer; - } else if (Array.isArray(replacer)) { - propertyList = []; + var res = this.tail.value; + this.tail = this.tail.prev; - for (const v of replacer) { - let item; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } - if (typeof v === 'string') { - item = v; - } else if (typeof v === 'number' || v instanceof String || v instanceof Number) { - item = String(v); - } + this.length--; + return res; +}; - if (item !== undefined && propertyList.indexOf(item) < 0) { - propertyList.push(item); - } - } +Yallist.prototype.shift = function () { + if (!this.head) { + return undefined; } - if (space instanceof Number) { - space = Number(space); - } else if (space instanceof String) { - space = String(space); - } + var res = this.head.value; + this.head = this.head.next; - if (typeof space === 'number') { - if (space > 0) { - space = Math.min(10, Math.floor(space)); - gap = ' '.substr(0, space); - } - } else if (typeof space === 'string') { - gap = space.substr(0, 10); + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; } - return serializeProperty('', { - '': value - }); - - function serializeProperty(key, holder) { - let value = holder[key]; + this.length--; + return res; +}; - if (value != null) { - if (typeof value.toJSON5 === 'function') { - value = value.toJSON5(key); - } else if (typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - } +Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; - if (replacerFunc) { - value = replacerFunc.call(holder, key, value); - } + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this); + walker = walker.next; + } +}; - if (value instanceof Number) { - value = Number(value); - } else if (value instanceof String) { - value = String(value); - } else if (value instanceof Boolean) { - value = value.valueOf(); - } +Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this; - switch (value) { - case null: - return 'null'; + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this); + walker = walker.prev; + } +}; - case true: - return 'true'; +Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.next; + } - case false: - return 'false'; - } + if (i === n && walker !== null) { + return walker.value; + } +}; - if (typeof value === 'string') { - return quoteString(value); - } +Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.prev; + } - if (typeof value === 'number') { - return String(value); - } + if (i === n && walker !== null) { + return walker.value; + } +}; - if (typeof value === 'object') { - return Array.isArray(value) ? serializeArray(value) : serializeObject(value); - } +Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); - return undefined; + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; } - function quoteString(value) { - const quotes = { - "'": 0.1, - '"': 0.2 - }; - const replacements = { - "'": "\\'", - '"': '\\"', - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t', - '\v': '\\v', - '\0': '\\0', - '\u2028': '\\u2028', - '\u2029': '\\u2029' - }; - let product = ''; + return res; +}; - for (let i = 0; i < value.length; i++) { - const c = value[i]; +Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); - switch (c) { - case "'": - case '"': - quotes[c]++; - product += c; - continue; + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } - case '\0': - if (util$2.isDigit(value[i + 1])) { - product += '\\x00'; - continue; - } + return res; +}; - } +Yallist.prototype.reduce = function (fn, initial) { + var acc; + var walker = this.head; - if (replacements[c]) { - product += replacements[c]; - continue; - } + if (arguments.length > 1) { + acc = initial; + } else if (this.head) { + walker = this.head.next; + acc = this.head.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } - if (c < ' ') { - let hexString = c.charCodeAt(0).toString(16); - product += '\\x' + ('00' + hexString).substring(hexString.length); - continue; - } + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; + } - product += c; - } + return acc; +}; - const quoteChar = quote || Object.keys(quotes).reduce((a, b) => quotes[a] < quotes[b] ? a : b); - product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]); - return quoteChar + product + quoteChar; +Yallist.prototype.reduceReverse = function (fn, initial) { + var acc; + var walker = this.tail; + + if (arguments.length > 1) { + acc = initial; + } else if (this.tail) { + walker = this.tail.prev; + acc = this.tail.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); } - function serializeObject(value) { - if (stack.indexOf(value) >= 0) { - throw TypeError('Converting circular structure to JSON5'); - } + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; + } - stack.push(value); - let stepback = indent; - indent = indent + gap; - let keys = propertyList || Object.keys(value); - let partial = []; + return acc; +}; - for (const key of keys) { - const propertyString = serializeProperty(key, value); +Yallist.prototype.toArray = function () { + var arr = new Array(this.length); - if (propertyString !== undefined) { - let member = serializeKey(key) + ':'; + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.next; + } - if (gap !== '') { - member += ' '; - } + return arr; +}; - member += propertyString; - partial.push(member); - } - } +Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length); - let final; + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.prev; + } - if (partial.length === 0) { - final = '{}'; - } else { - let properties; + return arr; +}; - if (gap === '') { - properties = partial.join(','); - final = '{' + properties + '}'; - } else { - let separator = ',\n' + indent; - properties = partial.join(separator); - final = '{\n' + indent + properties + ',\n' + stepback + '}'; - } - } +Yallist.prototype.slice = function (from, to) { + to = to || this.length; - stack.pop(); - indent = stepback; - return final; + if (to < 0) { + to += this.length; } - function serializeKey(key) { - if (key.length === 0) { - return quoteString(key); - } + from = from || 0; - const firstChar = String.fromCodePoint(key.codePointAt(0)); + if (from < 0) { + from += this.length; + } - if (!util$2.isIdStartChar(firstChar)) { - return quoteString(key); - } + var ret = new Yallist(); - for (let i = firstChar.length; i < key.length; i++) { - if (!util$2.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) { - return quoteString(key); - } - } + if (to < from || to < 0) { + return ret; + } - return key; + if (from < 0) { + from = 0; } - function serializeArray(value) { - if (stack.indexOf(value) >= 0) { - throw TypeError('Converting circular structure to JSON5'); - } + if (to > this.length) { + to = this.length; + } - stack.push(value); - let stepback = indent; - indent = indent + gap; - let partial = []; + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next; + } - for (let i = 0; i < value.length; i++) { - const propertyString = serializeProperty(String(i), value); - partial.push(propertyString !== undefined ? propertyString : 'null'); - } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value); + } - let final; + return ret; +}; - if (partial.length === 0) { - final = '[]'; - } else { - if (gap === '') { - let properties = partial.join(','); - final = '[' + properties + ']'; - } else { - let separator = ',\n' + indent; - let properties = partial.join(separator); - final = '[\n' + indent + properties + ',\n' + stepback + ']'; - } - } +Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length; - stack.pop(); - indent = stepback; - return final; + if (to < 0) { + to += this.length; } -}; -const JSON5 = { - parse: parse$2, - stringify -}; -var lib$5 = JSON5; + from = from || 0; -var dist$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': lib$5 -}); + if (from < 0) { + from += this.length; + } -var require$$0$1 = getCjsExportFromNamespace(dist$1); + var ret = new Yallist(); -const { - parse: parse$3 -} = require$$0$1; + if (to < from || to < 0) { + return ret; + } -var loadJson5 = function (filePath, content) { - try { - return parse$3(content); - } catch (error) { - error.message = `JSON5 Error in ${filePath}:\n${error.message}`; - throw error; + if (from < 0) { + from = 0; } -}; -var caller = function () { - // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi - var origPrepareStackTrace = Error.prepareStackTrace; + if (to > this.length) { + to = this.length; + } - Error.prepareStackTrace = function (_, stack) { - return stack; - }; + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev; + } - var stack = new Error().stack; - Error.prepareStackTrace = origPrepareStackTrace; - return stack[2].getFileName(); -}; + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value); + } -var pathParse = createCommonjsModule(function (module) { + return ret; +}; - var isWindows = process.platform === 'win32'; // Regex to split a windows path into three parts: [*, device, slash, - // tail] windows-only +Yallist.prototype.reverse = function () { + var head = this.head; + var tail = this.tail; - var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/; // Regex to split the tail part of the above into [*, dir, basename, ext] + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev; + walker.prev = walker.next; + walker.next = p; + } - var splitTailRe = /^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/; - var win32 = {}; // Function to split a filename into [root, dir, basename, ext] + this.head = tail; + this.tail = head; + return this; +}; - function win32SplitPath(filename) { - // Separate device+slash from tail - var result = splitDeviceRe.exec(filename), - device = (result[1] || '') + (result[2] || ''), - tail = result[3] || ''; // Split the tail into dir, basename and extension +function push(self, item) { + self.tail = new Node(item, self.tail, null, self); - var result2 = splitTailRe.exec(tail), - dir = result2[1], - basename = result2[2], - ext = result2[3]; - return [device, dir, basename, ext]; + if (!self.head) { + self.head = self.tail; } - win32.parse = function (pathString) { - if (typeof pathString !== 'string') { - throw new TypeError("Parameter 'pathString' must be a string, not " + typeof pathString); - } + self.length++; +} - var allParts = win32SplitPath(pathString); +function unshift(self, item) { + self.head = new Node(item, null, self.head, self); - if (!allParts || allParts.length !== 4) { - throw new TypeError("Invalid path '" + pathString + "'"); - } + if (!self.tail) { + self.tail = self.head; + } - return { - root: allParts[0], - dir: allParts[0] + allParts[1].slice(0, -1), - base: allParts[2], - ext: allParts[3], - name: allParts[2].slice(0, allParts[2].length - allParts[3].length) - }; - }; // Split a filename into [root, dir, basename, ext], unix version - // 'root' is just a slash, or nothing. + self.length++; +} +function Node(value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list); + } - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - var posix = {}; + this.list = list; + this.value = value; - function posixSplitPath(filename) { - return splitPathRe.exec(filename).slice(1); + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; } - posix.parse = function (pathString) { - if (typeof pathString !== 'string') { - throw new TypeError("Parameter 'pathString' must be a string, not " + typeof pathString); - } + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } +} - var allParts = posixSplitPath(pathString); +var lruCache = LRUCache; // This will be a proper iterable 'Map' in engines that support it, +// or a fakey-fake PseudoMap in older versions. +// A linked list to keep track of recently-used-ness +// use symbols if possible, otherwise just _props - if (!allParts || allParts.length !== 4) { - throw new TypeError("Invalid path '" + pathString + "'"); - } +var hasSymbol = typeof Symbol === 'function' && process.env._nodeLRUCacheForceNoSymbol !== '1'; +var makeSymbol; - allParts[1] = allParts[1] || ''; - allParts[2] = allParts[2] || ''; - allParts[3] = allParts[3] || ''; - return { - root: allParts[0], - dir: allParts[0] + allParts[1].slice(0, -1), - base: allParts[2], - ext: allParts[3], - name: allParts[2].slice(0, allParts[2].length - allParts[3].length) - }; +if (hasSymbol) { + makeSymbol = function (key) { + return Symbol(key); + }; +} else { + makeSymbol = function (key) { + return '_' + key; }; +} - if (isWindows) module.exports = win32.parse;else - /* posix */ - module.exports = posix.parse; - module.exports.posix = posix.parse; - module.exports.win32 = win32.parse; -}); +var MAX = makeSymbol('max'); +var LENGTH = makeSymbol('length'); +var LENGTH_CALCULATOR = makeSymbol('lengthCalculator'); +var ALLOW_STALE = makeSymbol('allowStale'); +var MAX_AGE = makeSymbol('maxAge'); +var DISPOSE = makeSymbol('dispose'); +var NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet'); +var LRU_LIST = makeSymbol('lruList'); +var CACHE = makeSymbol('cache'); -var parse$4 = path__default['default'].parse || pathParse; +function naiveLength() { + return 1; +} // lruList is a yallist where the head is the youngest +// item, and the tail is the oldest. the list contains the Hit +// objects as the entries. +// Each Hit object has a reference to its Yallist.Node. This +// never changes. +// +// cache is a Map (or PseudoMap) that matches the keys to +// the Yallist.Node object. -var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { - var prefix = '/'; - if (/^([A-Za-z]:)/.test(absoluteStart)) { - prefix = ''; - } else if (/^\\\\/.test(absoluteStart)) { - prefix = '\\\\'; +function LRUCache(options) { + if (!(this instanceof LRUCache)) { + return new LRUCache(options); } - var paths = [absoluteStart]; - var parsed = parse$4(absoluteStart); - - while (parsed.dir !== paths[paths.length - 1]) { - paths.push(parsed.dir); - parsed = parse$4(parsed.dir); + if (typeof options === 'number') { + options = { + max: options + }; } - return paths.reduce(function (dirs, aPath) { - return dirs.concat(modules.map(function (moduleDir) { - return path__default['default'].resolve(prefix, aPath, moduleDir); - })); - }, []); -}; - -var nodeModulesPaths = function nodeModulesPaths(start, opts, request) { - var modules = opts && opts.moduleDirectory ? [].concat(opts.moduleDirectory) : ['node_modules']; - - if (opts && typeof opts.paths === 'function') { - return opts.paths(request, start, function () { - return getNodeModulesDirs(start, modules); - }, opts); + if (!options) { + options = {}; } - var dirs = getNodeModulesDirs(start, modules); - return opts && opts.paths ? dirs.concat(opts.paths) : dirs; -}; - -var normalizeOptions$2 = function (x, opts) { - /** - * This file is purposefully a passthrough. It's expected that third-party - * environments will override it at runtime in order to inject special logic - * into `resolve` (by manipulating the options). One such example is the PnP - * code path in Yarn. - */ - return opts || {}; -}; + var max = this[MAX] = options.max; // Kind of weird to have a default max of Infinity, but oh well. -var assert = true; -var async_hooks = ">= 8"; -var buffer_ieee754 = "< 0.9.7"; -var buffer$1 = true; -var child_process = true; -var cluster = true; -var console$1 = true; -var constants$1 = true; -var crypto = true; -var _debug_agent = ">= 1 && < 8"; -var _debugger = "< 8"; -var dgram = true; -var dns = true; -var domain = true; -var events = true; -var freelist = "< 6"; -var fs = true; -var _http_agent = ">= 0.11.1"; -var _http_client = ">= 0.11.1"; -var _http_common = ">= 0.11.1"; -var _http_incoming = ">= 0.11.1"; -var _http_outgoing = ">= 0.11.1"; -var _http_server = ">= 0.11.1"; -var http = true; -var http2 = ">= 8.8"; -var https = true; -var inspector = ">= 8.0.0"; -var _linklist = "< 8"; -var module$1 = true; -var net = true; -var os = true; -var path$1 = true; -var perf_hooks = ">= 8.5"; -var process$1 = ">= 1"; -var punycode = true; -var querystring = true; -var readline = true; -var repl = true; -var smalloc = ">= 0.11.5 && < 3"; -var _stream_duplex = ">= 0.9.4"; -var _stream_transform = ">= 0.9.4"; -var _stream_wrap = ">= 1.4.1"; -var _stream_passthrough = ">= 0.9.4"; -var _stream_readable = ">= 0.9.4"; -var _stream_writable = ">= 0.9.4"; -var stream = true; -var string_decoder = true; -var sys = true; -var timers = true; -var _tls_common = ">= 0.11.13"; -var _tls_legacy = ">= 0.11.3 && < 10"; -var _tls_wrap = ">= 0.11.3"; -var tls = true; -var trace_events = ">= 10"; -var tty = true; -var url = true; -var util$3 = true; -var v8 = ">= 1"; -var vm = true; -var wasi = ">= 13.4 && < 13.5"; -var worker_threads = ">= 11.7"; -var zlib = true; -var core$1 = { - assert: assert, - async_hooks: async_hooks, - buffer_ieee754: buffer_ieee754, - buffer: buffer$1, - child_process: child_process, - cluster: cluster, - console: console$1, - constants: constants$1, - crypto: crypto, - _debug_agent: _debug_agent, - _debugger: _debugger, - dgram: dgram, - dns: dns, - domain: domain, - events: events, - freelist: freelist, - fs: fs, - "fs/promises": [ - ">= 10 && < 10.1", - ">= 14" -], - _http_agent: _http_agent, - _http_client: _http_client, - _http_common: _http_common, - _http_incoming: _http_incoming, - _http_outgoing: _http_outgoing, - _http_server: _http_server, - http: http, - http2: http2, - https: https, - inspector: inspector, - _linklist: _linklist, - module: module$1, - net: net, - "node-inspect/lib/_inspect": ">= 7.6.0 && < 12", - "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12", - "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12", - os: os, - path: path$1, - perf_hooks: perf_hooks, - process: process$1, - punycode: punycode, - querystring: querystring, - readline: readline, - repl: repl, - smalloc: smalloc, - _stream_duplex: _stream_duplex, - _stream_transform: _stream_transform, - _stream_wrap: _stream_wrap, - _stream_passthrough: _stream_passthrough, - _stream_readable: _stream_readable, - _stream_writable: _stream_writable, - stream: stream, - string_decoder: string_decoder, - sys: sys, - timers: timers, - _tls_common: _tls_common, - _tls_legacy: _tls_legacy, - _tls_wrap: _tls_wrap, - tls: tls, - trace_events: trace_events, - tty: tty, - url: url, - util: util$3, - "v8/tools/arguments": ">= 10 && < 12", - "v8/tools/codemap": [ - ">= 4.4.0 && < 5", - ">= 5.2.0 && < 12" -], - "v8/tools/consarray": [ - ">= 4.4.0 && < 5", - ">= 5.2.0 && < 12" -], - "v8/tools/csvparser": [ - ">= 4.4.0 && < 5", - ">= 5.2.0 && < 12" -], - "v8/tools/logreader": [ - ">= 4.4.0 && < 5", - ">= 5.2.0 && < 12" -], - "v8/tools/profile_view": [ - ">= 4.4.0 && < 5", - ">= 5.2.0 && < 12" -], - "v8/tools/splaytree": [ - ">= 4.4.0 && < 5", - ">= 5.2.0 && < 12" -], - v8: v8, - vm: vm, - wasi: wasi, - worker_threads: worker_threads, - zlib: zlib -}; + if (!max || !(typeof max === 'number') || max <= 0) { + this[MAX] = Infinity; + } -var core$2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - assert: assert, - async_hooks: async_hooks, - buffer_ieee754: buffer_ieee754, - buffer: buffer$1, - child_process: child_process, - cluster: cluster, - console: console$1, - constants: constants$1, - crypto: crypto, - _debug_agent: _debug_agent, - _debugger: _debugger, - dgram: dgram, - dns: dns, - domain: domain, - events: events, - freelist: freelist, - fs: fs, - _http_agent: _http_agent, - _http_client: _http_client, - _http_common: _http_common, - _http_incoming: _http_incoming, - _http_outgoing: _http_outgoing, - _http_server: _http_server, - http: http, - http2: http2, - https: https, - inspector: inspector, - _linklist: _linklist, - module: module$1, - net: net, - os: os, - path: path$1, - perf_hooks: perf_hooks, - process: process$1, - punycode: punycode, - querystring: querystring, - readline: readline, - repl: repl, - smalloc: smalloc, - _stream_duplex: _stream_duplex, - _stream_transform: _stream_transform, - _stream_wrap: _stream_wrap, - _stream_passthrough: _stream_passthrough, - _stream_readable: _stream_readable, - _stream_writable: _stream_writable, - stream: stream, - string_decoder: string_decoder, - sys: sys, - timers: timers, - _tls_common: _tls_common, - _tls_legacy: _tls_legacy, - _tls_wrap: _tls_wrap, - tls: tls, - trace_events: trace_events, - tty: tty, - url: url, - util: util$3, - v8: v8, - vm: vm, - wasi: wasi, - worker_threads: worker_threads, - zlib: zlib, - 'default': core$1 -}); + var lc = options.length || naiveLength; -var data = getCjsExportFromNamespace(core$2); + if (typeof lc !== 'function') { + lc = naiveLength; + } -var current = process.versions && process.versions.node && process.versions.node.split('.') || []; + this[LENGTH_CALCULATOR] = lc; + this[ALLOW_STALE] = options.stale || false; + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this.reset(); +} // resize the cache when the max changes. -function specifierIncluded(specifier) { - var parts = specifier.split(' '); - var op = parts.length > 1 ? parts[0] : '='; - var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); - for (var i = 0; i < 3; ++i) { - var cur = Number(current[i] || 0); - var ver = Number(versionParts[i] || 0); +Object.defineProperty(LRUCache.prototype, 'max', { + set: function (mL) { + if (!mL || !(typeof mL === 'number') || mL <= 0) { + mL = Infinity; + } - if (cur === ver) { - continue; // eslint-disable-line no-restricted-syntax, no-continue + this[MAX] = mL; + trim(this); + }, + get: function () { + return this[MAX]; + }, + enumerable: true +}); +Object.defineProperty(LRUCache.prototype, 'allowStale', { + set: function (allowStale) { + this[ALLOW_STALE] = !!allowStale; + }, + get: function () { + return this[ALLOW_STALE]; + }, + enumerable: true +}); +Object.defineProperty(LRUCache.prototype, 'maxAge', { + set: function (mA) { + if (!mA || !(typeof mA === 'number') || mA < 0) { + mA = 0; } - if (op === '<') { - return cur < ver; - } else if (op === '>=') { - return cur >= ver; - } else { - return false; + this[MAX_AGE] = mA; + trim(this); + }, + get: function () { + return this[MAX_AGE]; + }, + enumerable: true +}); // resize the cache when the lengthCalculator changes. + +Object.defineProperty(LRUCache.prototype, 'lengthCalculator', { + set: function (lC) { + if (typeof lC !== 'function') { + lC = naiveLength; } - } - return op === '>='; -} + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach(function (hit) { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }, this); + } -function matchesRange(range) { - var specifiers = range.split(/ ?&& ?/); + trim(this); + }, + get: function () { + return this[LENGTH_CALCULATOR]; + }, + enumerable: true +}); +Object.defineProperty(LRUCache.prototype, 'length', { + get: function () { + return this[LENGTH]; + }, + enumerable: true +}); +Object.defineProperty(LRUCache.prototype, 'itemCount', { + get: function () { + return this[LRU_LIST].length; + }, + enumerable: true +}); - if (specifiers.length === 0) { - return false; - } +LRUCache.prototype.rforEach = function (fn, thisp) { + thisp = thisp || this; - for (var i = 0; i < specifiers.length; ++i) { - if (!specifierIncluded(specifiers[i])) { - return false; - } + for (var walker = this[LRU_LIST].tail; walker !== null;) { + var prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; } +}; - return true; -} +function forEachStep(self, fn, node, thisp) { + var hit = node.value; -function versionIncluded(specifierValue) { - if (typeof specifierValue === 'boolean') { - return specifierValue; - } + if (isStale(self, hit)) { + del$1(self, node); - if (specifierValue && typeof specifierValue === 'object') { - for (var i = 0; i < specifierValue.length; ++i) { - if (matchesRange(specifierValue[i])) { - return true; - } + if (!self[ALLOW_STALE]) { + hit = undefined; } - - return false; } - return matchesRange(specifierValue); + if (hit) { + fn.call(thisp, hit.value, hit.key, self); + } } -var core$3 = {}; +LRUCache.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; -for (var mod in data) { - // eslint-disable-line no-restricted-syntax - if (Object.prototype.hasOwnProperty.call(data, mod)) { - core$3[mod] = versionIncluded(data[mod]); + for (var walker = this[LRU_LIST].head; walker !== null;) { + var next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; } -} +}; -var core_1 = core$3; +LRUCache.prototype.keys = function () { + return this[LRU_LIST].toArray().map(function (k) { + return k.key; + }, this); +}; -var isCore = function isCore(x) { - return Object.prototype.hasOwnProperty.call(core_1, x); +LRUCache.prototype.values = function () { + return this[LRU_LIST].toArray().map(function (k) { + return k.value; + }, this); }; -var realpathFS = fs__default['default'].realpath && typeof fs__default['default'].realpath.native === 'function' ? fs__default['default'].realpath.native : fs__default['default'].realpath; +LRUCache.prototype.reset = function () { + if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { + this[LRU_LIST].forEach(function (hit) { + this[DISPOSE](hit.key, hit.value); + }, this); + } -var defaultIsFile = function isFile(file, cb) { - fs__default['default'].stat(file, function (err, stat) { - if (!err) { - return cb(null, stat.isFile() || stat.isFIFO()); - } + this[CACHE] = new map$1(); // hash of items by key - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); - }); + this[LRU_LIST] = new yallist(); // list of items in order of use recency + + this[LENGTH] = 0; // length of items in the list }; -var defaultIsDir = function isDirectory(dir, cb) { - fs__default['default'].stat(dir, function (err, stat) { - if (!err) { - return cb(null, stat.isDirectory()); +LRUCache.prototype.dump = function () { + return this[LRU_LIST].map(function (hit) { + if (!isStale(this, hit)) { + return { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }; } - - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); - return cb(err); + }, this).toArray().filter(function (h) { + return h; }); }; -var defaultRealpath = function realpath(x, cb) { - realpathFS(x, function (realpathErr, realPath) { - if (realpathErr && realpathErr.code !== 'ENOENT') cb(realpathErr);else cb(null, realpathErr ? x : realPath); - }); +LRUCache.prototype.dumpLru = function () { + return this[LRU_LIST]; }; +/* istanbul ignore next */ -var maybeRealpath = function maybeRealpath(realpath, x, opts, cb) { - if (opts && opts.preserveSymlinks === false) { - realpath(x, cb); - } else { - cb(null, x); - } -}; -var getPackageCandidates = function getPackageCandidates(x, start, opts) { - var dirs = nodeModulesPaths(start, opts, x); +LRUCache.prototype.inspect = function (n, opts) { + var str = 'LRUCache {'; + var extras = false; + var as = this[ALLOW_STALE]; - for (var i = 0; i < dirs.length; i++) { - dirs[i] = path__default['default'].join(dirs[i], x); + if (as) { + str += '\n allowStale: true'; + extras = true; } - return dirs; -}; - -var async = function resolve(x, options, callback) { - var cb = callback; - var opts = options; + var max = this[MAX]; - if (typeof options === 'function') { - cb = opts; - opts = {}; - } + if (max && max !== Infinity) { + if (extras) { + str += ','; + } - if (typeof x !== 'string') { - var err = new TypeError('Path must be a string.'); - return process.nextTick(function () { - cb(err); - }); + str += '\n max: ' + util__default['default'].inspect(max, opts); + extras = true; } - opts = normalizeOptions$2(x, opts); - var isFile = opts.isFile || defaultIsFile; - var isDirectory = opts.isDirectory || defaultIsDir; - var readFile = opts.readFile || fs__default['default'].readFile; - var realpath = opts.realpath || defaultRealpath; - var packageIterator = opts.packageIterator; - var extensions = opts.extensions || ['.js']; - var basedir = opts.basedir || path__default['default'].dirname(caller()); - var parent = opts.filename || basedir; - opts.paths = opts.paths || []; // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - - var absoluteStart = path__default['default'].resolve(basedir); - maybeRealpath(realpath, absoluteStart, opts, function (err, realStart) { - if (err) cb(err);else init(realStart); - }); - var res; - - function init(basedir) { - if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { - res = path__default['default'].resolve(basedir, x); - if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; + var maxAge = this[MAX_AGE]; - if (/\/$/.test(x) && res === basedir) { - loadAsDirectory(res, opts.package, onfile); - } else loadAsFile(res, opts.package, onfile); - } else if (isCore(x)) { - return cb(null, x); - } else loadNodeModules(x, basedir, function (err, n, pkg) { - if (err) cb(err);else if (n) { - return maybeRealpath(realpath, n, opts, function (err, realN) { - if (err) { - cb(err); - } else { - cb(null, realN, pkg); - } - }); - } else { - var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - moduleError.code = 'MODULE_NOT_FOUND'; - cb(moduleError); - } - }); - } + if (maxAge) { + if (extras) { + str += ','; + } - function onfile(err, m, pkg) { - if (err) cb(err);else if (m) cb(null, m, pkg);else loadAsDirectory(res, function (err, d, pkg) { - if (err) cb(err);else if (d) { - maybeRealpath(realpath, d, opts, function (err, realD) { - if (err) { - cb(err); - } else { - cb(null, realD, pkg); - } - }); - } else { - var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - moduleError.code = 'MODULE_NOT_FOUND'; - cb(moduleError); - } - }); + str += '\n maxAge: ' + util__default['default'].inspect(maxAge, opts); + extras = true; } - function loadAsFile(x, thePackage, callback) { - var loadAsFilePackage = thePackage; - var cb = callback; + var lc = this[LENGTH_CALCULATOR]; - if (typeof loadAsFilePackage === 'function') { - cb = loadAsFilePackage; - loadAsFilePackage = undefined; + if (lc && lc !== naiveLength) { + if (extras) { + str += ','; } - var exts = [''].concat(extensions); - load(exts, x, loadAsFilePackage); - - function load(exts, x, loadPackage) { - if (exts.length === 0) return cb(null, undefined, loadPackage); - var file = x + exts[0]; - var pkg = loadPackage; - if (pkg) onpkg(null, pkg);else loadpkg(path__default['default'].dirname(file), onpkg); - - function onpkg(err, pkg_, dir) { - pkg = pkg_; - if (err) return cb(err); - - if (dir && pkg && opts.pathFilter) { - var rfile = path__default['default'].relative(dir, file); - var rel = rfile.slice(0, rfile.length - exts[0].length); - var r = opts.pathFilter(pkg, x, rel); - if (r) return load([''].concat(extensions.slice()), path__default['default'].resolve(dir, r), pkg); - } + str += '\n length: ' + util__default['default'].inspect(this[LENGTH], opts); + extras = true; + } - isFile(file, onex); + var didFirst = false; + this[LRU_LIST].forEach(function (item) { + if (didFirst) { + str += ',\n '; + } else { + if (extras) { + str += ',\n'; } - function onex(err, ex) { - if (err) return cb(err); - if (ex) return cb(null, file, pkg); - load(exts.slice(1), x, pkg); - } + didFirst = true; + str += '\n '; } - } - function loadpkg(dir, cb) { - if (dir === '' || dir === '/') return cb(null); + var key = util__default['default'].inspect(item.key).split('\n').join('\n '); + var val = { + value: item.value + }; - if (process.platform === 'win32' && /^\w:[/\\]*$/.test(dir)) { - return cb(null); + if (item.maxAge !== maxAge) { + val.maxAge = item.maxAge; } - if (/[/\\]node_modules[/\\]*$/.test(dir)) return cb(null); - maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) { - if (unwrapErr) return loadpkg(path__default['default'].dirname(dir), cb); - var pkgfile = path__default['default'].join(pkgdir, 'package.json'); - isFile(pkgfile, function (err, ex) { - // on err, ex is false - if (!ex) return loadpkg(path__default['default'].dirname(dir), cb); - readFile(pkgfile, function (err, body) { - if (err) cb(err); + if (lc !== naiveLength) { + val.length = item.length; + } - try { - var pkg = JSON.parse(body); - } catch (jsonErr) {} + if (isStale(this, item)) { + val.stale = true; + } - if (pkg && opts.packageFilter) { - pkg = opts.packageFilter(pkg, pkgfile); - } + val = util__default['default'].inspect(val, opts).split('\n').join('\n '); + str += key + ' => ' + val; + }); - cb(null, pkg, dir); - }); - }); - }); + if (didFirst || extras) { + str += '\n'; } - function loadAsDirectory(x, loadAsDirectoryPackage, callback) { - var cb = callback; - var fpkg = loadAsDirectoryPackage; + str += '}'; + return str; +}; - if (typeof fpkg === 'function') { - cb = fpkg; - fpkg = opts.package; - } +LRUCache.prototype.set = function (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + var now = maxAge ? Date.now() : 0; + var len = this[LENGTH_CALCULATOR](value, key); - maybeRealpath(realpath, x, opts, function (unwrapErr, pkgdir) { - if (unwrapErr) return cb(unwrapErr); - var pkgfile = path__default['default'].join(pkgdir, 'package.json'); - isFile(pkgfile, function (err, ex) { - if (err) return cb(err); - if (!ex) return loadAsFile(path__default['default'].join(x, 'index'), fpkg, cb); - readFile(pkgfile, function (err, body) { - if (err) return cb(err); + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del$1(this, this[CACHE].get(key)); + return false; + } - try { - var pkg = JSON.parse(body); - } catch (jsonErr) {} + var node = this[CACHE].get(key); + var item = node.value; // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking - if (pkg && opts.packageFilter) { - pkg = opts.packageFilter(pkg, pkgfile); - } + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) { + this[DISPOSE](key, item.value); + } + } - if (pkg && pkg.main) { - if (typeof pkg.main !== 'string') { - var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); - mainError.code = 'INVALID_PACKAGE_MAIN'; - return cb(mainError); - } + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true; + } - if (pkg.main === '.' || pkg.main === './') { - pkg.main = 'index'; - } + var hit = new Entry(key, value, len, now, maxAge); // oversized objects fall out of cache automatically. - loadAsFile(path__default['default'].resolve(x, pkg.main), pkg, function (err, m, pkg) { - if (err) return cb(err); - if (m) return cb(null, m, pkg); - if (!pkg) return loadAsFile(path__default['default'].join(x, 'index'), pkg, cb); - var dir = path__default['default'].resolve(x, pkg.main); - loadAsDirectory(dir, pkg, function (err, n, pkg) { - if (err) return cb(err); - if (n) return cb(null, n, pkg); - loadAsFile(path__default['default'].join(x, 'index'), pkg, cb); - }); - }); - return; - } + if (hit.length > this[MAX]) { + if (this[DISPOSE]) { + this[DISPOSE](key, value); + } - loadAsFile(path__default['default'].join(x, '/index'), pkg, cb); - }); - }); - }); + return false; } - function processDirs(cb, dirs) { - if (dirs.length === 0) return cb(null, undefined); - var dir = dirs[0]; - isDirectory(path__default['default'].dirname(dir), isdir); - - function isdir(err, isdir) { - if (err) return cb(err); - if (!isdir) return processDirs(cb, dirs.slice(1)); - loadAsFile(dir, opts.package, onfile); - } + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); + trim(this); + return true; +}; - function onfile(err, m, pkg) { - if (err) return cb(err); - if (m) return cb(null, m, pkg); - loadAsDirectory(dir, opts.package, ondir); - } +LRUCache.prototype.has = function (key) { + if (!this[CACHE].has(key)) return false; + var hit = this[CACHE].get(key).value; - function ondir(err, n, pkg) { - if (err) return cb(err); - if (n) return cb(null, n, pkg); - processDirs(cb, dirs.slice(1)); - } + if (isStale(this, hit)) { + return false; } - function loadNodeModules(x, start, cb) { - var thunk = function () { - return getPackageCandidates(x, start, opts); - }; + return true; +}; - processDirs(cb, packageIterator ? packageIterator(x, start, thunk, opts) : thunk()); - } +LRUCache.prototype.get = function (key) { + return get$1(this, key, true); }; -var realpathFS$1 = fs__default['default'].realpathSync && typeof fs__default['default'].realpathSync.native === 'function' ? fs__default['default'].realpathSync.native : fs__default['default'].realpathSync; +LRUCache.prototype.peek = function (key) { + return get$1(this, key, false); +}; -var defaultIsFile$1 = function isFile(file) { - try { - var stat = fs__default['default'].statSync(file); - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; - throw e; - } +LRUCache.prototype.pop = function () { + var node = this[LRU_LIST].tail; + if (!node) return null; + del$1(this, node); + return node.value; +}; - return stat.isFile() || stat.isFIFO(); +LRUCache.prototype.del = function (key) { + del$1(this, this[CACHE].get(key)); }; -var defaultIsDir$1 = function isDirectory(dir) { - try { - var stat = fs__default['default'].statSync(dir); - } catch (e) { - if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; - throw e; - } +LRUCache.prototype.load = function (arr) { + // reset the cache + this.reset(); + var now = Date.now(); // A previous serialized cache has the most recent items first - return stat.isDirectory(); -}; + for (var l = arr.length - 1; l >= 0; l--) { + var hit = arr[l]; + var expiresAt = hit.e || 0; -var defaultRealpathSync = function realpathSync(x) { - try { - return realpathFS$1(x); - } catch (realpathErr) { - if (realpathErr.code !== 'ENOENT') { - throw realpathErr; + if (expiresAt === 0) { + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v); + } else { + var maxAge = expiresAt - now; // dont add already expired items + + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } } } +}; - return x; +LRUCache.prototype.prune = function () { + var self = this; + this[CACHE].forEach(function (value, key) { + get$1(self, key, false); + }); }; -var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) { - if (opts && opts.preserveSymlinks === false) { - return realpathSync(x); - } +function get$1(self, key, doUse) { + var node = self[CACHE].get(key); - return x; -}; + if (node) { + var hit = node.value; -var getPackageCandidates$1 = function getPackageCandidates(x, start, opts) { - var dirs = nodeModulesPaths(start, opts, x); + if (isStale(self, hit)) { + del$1(self, node); + if (!self[ALLOW_STALE]) hit = undefined; + } else { + if (doUse) { + self[LRU_LIST].unshiftNode(node); + } + } - for (var i = 0; i < dirs.length; i++) { - dirs[i] = path__default['default'].join(dirs[i], x); + if (hit) hit = hit.value; } - return dirs; -}; + return hit; +} -var sync = function resolveSync(x, options) { - if (typeof x !== 'string') { - throw new TypeError('Path must be a string.'); +function isStale(self, hit) { + if (!hit || !hit.maxAge && !self[MAX_AGE]) { + return false; } - var opts = normalizeOptions$2(x, options); - var isFile = opts.isFile || defaultIsFile$1; - var readFileSync = opts.readFileSync || fs__default['default'].readFileSync; - var isDirectory = opts.isDirectory || defaultIsDir$1; - var realpathSync = opts.realpathSync || defaultRealpathSync; - var packageIterator = opts.packageIterator; - var extensions = opts.extensions || ['.js']; - var basedir = opts.basedir || path__default['default'].dirname(caller()); - var parent = opts.filename || basedir; - opts.paths = opts.paths || []; // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - - var absoluteStart = maybeRealpathSync(realpathSync, path__default['default'].resolve(basedir), opts); + var stale = false; + var diff = Date.now() - hit.now; - if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { - var res = path__default['default'].resolve(absoluteStart, x); - if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; - var m = loadAsFileSync(res) || loadAsDirectorySync(res); - if (m) return maybeRealpathSync(realpathSync, m, opts); - } else if (isCore(x)) { - return x; + if (hit.maxAge) { + stale = diff > hit.maxAge; } else { - var n = loadNodeModulesSync(x, absoluteStart); - if (n) return maybeRealpathSync(realpathSync, n, opts); + stale = self[MAX_AGE] && diff > self[MAX_AGE]; } - var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; + return stale; +} - function loadAsFileSync(x) { - var pkg = loadpkg(path__default['default'].dirname(x)); +function trim(self) { + if (self[LENGTH] > self[MAX]) { + for (var walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + var prev = walker.prev; + del$1(self, walker); + walker = prev; + } + } +} - if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { - var rfile = path__default['default'].relative(pkg.dir, x); - var r = opts.pathFilter(pkg.pkg, x, rfile); +function del$1(self, node) { + if (node) { + var hit = node.value; - if (r) { - x = path__default['default'].resolve(pkg.dir, r); // eslint-disable-line no-param-reassign - } + if (self[DISPOSE]) { + self[DISPOSE](hit.key, hit.value); } - if (isFile(x)) { - return x; - } + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); + } +} // classy, since V8 prefers predictable objects. - for (var i = 0; i < extensions.length; i++) { - var file = x + extensions[i]; - if (isFile(file)) { - return file; - } - } - } +function Entry(key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; +} - function loadpkg(dir) { - if (dir === '' || dir === '/') return; +var sigmund_1 = sigmund; - if (process.platform === 'win32' && /^\w:[/\\]*$/.test(dir)) { +function sigmund(subject, maxSessions) { + maxSessions = maxSessions || 10; + var notes = []; + var analysis = ''; + var RE = RegExp; + + function psychoAnalyze(subject, session) { + if (session > maxSessions) return; + + if (typeof subject === 'function' || typeof subject === 'undefined') { return; } - if (/[/\\]node_modules[/\\]*$/.test(dir)) return; - var pkgfile = path__default['default'].join(maybeRealpathSync(realpathSync, dir, opts), 'package.json'); - - if (!isFile(pkgfile)) { - return loadpkg(path__default['default'].dirname(dir)); + if (typeof subject !== 'object' || !subject || subject instanceof RE) { + analysis += subject; + return; } - var body = readFileSync(pkgfile); + if (notes.indexOf(subject) !== -1 || session === maxSessions) return; + notes.push(subject); + analysis += '{'; + Object.keys(subject).forEach(function (issue, _, __) { + // pseudo-private values. skip those. + if (issue.charAt(0) === '_') return; + var to = typeof subject[issue]; + if (to === 'function' || to === 'undefined') return; + analysis += issue; + psychoAnalyze(subject[issue], session + 1); + }); + } - try { - var pkg = JSON.parse(body); - } catch (jsonErr) {} + psychoAnalyze(subject, 0); + return analysis; +} // vim: set softtabstop=4 shiftwidth=4: - if (pkg && opts.packageFilter) { - // v2 will pass pkgfile - pkg = opts.packageFilter(pkg, - /*pkgfile,*/ - dir); // eslint-disable-line spaced-comment - } +var fnmatch$1 = createCommonjsModule(function (module, exports) { + // Based on minimatch.js by isaacs + var platform = typeof process === "object" ? process.platform : "win32"; + if (module) module.exports = minimatch;else exports.minimatch = minimatch; + minimatch.Minimatch = Minimatch; + var cache = minimatch.cache = new lruCache({ + max: 100 + }), + GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; + var qmark = "[^/]" // * => any number of characters + , + star = qmark + "*?" // ** when dots are allowed. Anything goes, except .. and . + // not (^ or / followed by one or two dots followed by $ or /), + // followed by anything, any number of times. + , + twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?" // not a ^ or / followed by a dot, + // followed by anything, any number of times. + , + twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?" // characters that need to be escaped in RegExp. + , + reSpecials = charSet("().*{}+?[]^$\\!"); // "abc" -> { a:true, b:true, c:true } - return { - pkg: pkg, - dir: dir - }; - } + function charSet(s) { + return s.split("").reduce(function (set, c) { + set[c] = true; + return set; + }, {}); + } // normalizes slashes. - function loadAsDirectorySync(x) { - var pkgfile = path__default['default'].join(maybeRealpathSync(realpathSync, x, opts), '/package.json'); - if (isFile(pkgfile)) { - try { - var body = readFileSync(pkgfile, 'UTF8'); - var pkg = JSON.parse(body); - } catch (e) {} + var slashSplit = /\/+/; + minimatch.monkeyPatch = monkeyPatch; - if (pkg && opts.packageFilter) { - // v2 will pass pkgfile - pkg = opts.packageFilter(pkg, - /*pkgfile,*/ - x); // eslint-disable-line spaced-comment - } + function monkeyPatch() { + var desc = Object.getOwnPropertyDescriptor(String.prototype, "match"); + var orig = desc.value; - if (pkg && pkg.main) { - if (typeof pkg.main !== 'string') { - var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); - mainError.code = 'INVALID_PACKAGE_MAIN'; - throw mainError; - } + desc.value = function (p) { + if (p instanceof Minimatch) return p.match(this); + return orig.call(this, p); + }; - if (pkg.main === '.' || pkg.main === './') { - pkg.main = 'index'; - } + Object.defineProperty(String.prototype, desc); + } - try { - var m = loadAsFileSync(path__default['default'].resolve(x, pkg.main)); - if (m) return m; - var n = loadAsDirectorySync(path__default['default'].resolve(x, pkg.main)); - if (n) return n; - } catch (e) {} - } - } + minimatch.filter = filter; - return loadAsFileSync(path__default['default'].join(x, '/index')); + function filter(pattern, options) { + options = options || {}; + return function (p, i, list) { + return minimatch(p, pattern, options); + }; } - function loadNodeModulesSync(x, start) { - var thunk = function () { - return getPackageCandidates$1(x, start, opts); + function ext(a, b) { + a = a || {}; + b = b || {}; + var t = {}; + Object.keys(b).forEach(function (k) { + t[k] = b[k]; + }); + Object.keys(a).forEach(function (k) { + t[k] = a[k]; + }); + return t; + } + + minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return minimatch; + var orig = minimatch; + + var m = function minimatch(p, pattern, options) { + return orig.minimatch(p, pattern, ext(def, options)); }; - var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk(); + m.Minimatch = function Minimatch(pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)); + }; - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; + return m; + }; - if (isDirectory(path__default['default'].dirname(dir))) { - var m = loadAsFileSync(dir); - if (m) return m; - var n = loadAsDirectorySync(dir); - if (n) return n; - } + Minimatch.defaults = function (def) { + if (!def || !Object.keys(def).length) return Minimatch; + return minimatch.defaults(def).Minimatch; + }; + + function minimatch(p, pattern, options) { + if (typeof pattern !== "string") { + throw new TypeError("glob pattern string required"); } - } -}; -async.core = core_1; -async.isCore = isCore; -async.sync = sync; -var resolve = async; + if (!options) options = {}; // shortcut: comments match nothing. -let { - resolve: resolve$1 -} = require; // In the VS Code and Atom extensions `require` is overridden and `require.resolve` doesn't support the 2nd argument. + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } // "" only matches "" -if (resolve$1.length === 1 || process.env.PRETTIER_FALLBACK_RESOLVE) { - resolve$1 = (id, options) => { - let basedir; - if (options && options.paths && options.paths.length === 1) { - basedir = options.paths[0]; + if (pattern.trim() === "") return p === ""; + return new Minimatch(pattern, options).match(p); + } + + function Minimatch(pattern, options) { + if (!(this instanceof Minimatch)) { + return new Minimatch(pattern, options, cache); } - return resolve.sync(id, { - basedir - }); - }; -} + if (typeof pattern !== "string") { + throw new TypeError("glob pattern string required"); + } -var resolve_1 = resolve$1; + if (!options) options = {}; // windows: need to use /, not \ + // On other platforms, \ is a valid (albeit bad) filename char. -var semver$2 = createCommonjsModule(function (module, exports) { - exports = module.exports = SemVer; - var debug; - /* istanbul ignore next */ + if (platform === "win32") { + pattern = pattern.split("\\").join("/"); + } // lru storage. + // these things aren't particularly big, but walking down the string + // and turning it into a regexp can get pretty costly. - if (typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG)) { - debug = function () { - var args = Array.prototype.slice.call(arguments, 0); - args.unshift('SEMVER'); - console.log.apply(console, args); - }; - } else { - debug = function () {}; - } // Note: this is the semver.org version of the spec that it implements - // Not necessarily the package version of this code. + var cacheKey = pattern + "\n" + sigmund_1(options); + var cached = minimatch.cache.get(cacheKey); + if (cached) return cached; + minimatch.cache.set(cacheKey, this); + this.options = options; + this.set = []; + this.pattern = pattern; + this.regexp = null; + this.negate = false; + this.comment = false; + this.empty = false; // make the set of regexps etc. - exports.SEMVER_SPEC_VERSION = '2.0.0'; - var MAX_LENGTH = 256; - var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ - 9007199254740991; // Max safe segment length for coercion. + this.make(); + } - var MAX_SAFE_COMPONENT_LENGTH = 16; // The actual regexps go on exports.re + Minimatch.prototype.make = make; - var re = exports.re = []; - var src = exports.src = []; - var R = 0; // The following Regular Expressions can be used for tokenizing, - // validating, and parsing SemVer version strings. - // ## Numeric Identifier - // A single `0`, or a non-zero digit followed by zero or more digits. + function make() { + // don't do it more than once. + if (this._made) return; + var pattern = this.pattern; + var options = this.options; // empty patterns and comments match nothing. - var NUMERICIDENTIFIER = R++; - src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'; - var NUMERICIDENTIFIERLOOSE = R++; - src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'; // ## Non-numeric Identifier - // Zero or more digits, followed by a letter or hyphen, and then zero or - // more letters, digits, or hyphens. + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } - var NONNUMERICIDENTIFIER = R++; - src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'; // ## Main Version - // Three dot-separated numeric identifiers. + if (!pattern) { + this.empty = true; + return; + } // step 1: figure out negation, etc. - var MAINVERSION = R++; - src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' + '(' + src[NUMERICIDENTIFIER] + ')\\.' + '(' + src[NUMERICIDENTIFIER] + ')'; - var MAINVERSIONLOOSE = R++; - src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' + '(' + src[NUMERICIDENTIFIERLOOSE] + ')'; // ## Pre-release Version Identifier - // A numeric identifier, or a non-numeric identifier. - var PRERELEASEIDENTIFIER = R++; - src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] + '|' + src[NONNUMERICIDENTIFIER] + ')'; - var PRERELEASEIDENTIFIERLOOSE = R++; - src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] + '|' + src[NONNUMERICIDENTIFIER] + ')'; // ## Pre-release Version - // Hyphen, followed by one or more dot-separated pre-release version - // identifiers. + this.parseNegate(); // step 2: expand braces - var PRERELEASE = R++; - src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] + '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'; - var PRERELEASELOOSE = R++; - src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] + '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'; // ## Build Metadata Identifier - // Any combination of digits, letters, or hyphens. + var set = this.globSet = this.braceExpand(); + if (options.debug) console.error(this.pattern, set); // step 3: now we have a set, so turn each one into a series of path-portion + // matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters - var BUILDIDENTIFIER = R++; - src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'; // ## Build Metadata - // Plus sign, followed by one or more period-separated build metadata - // identifiers. + set = this.globParts = set.map(function (s) { + return s.split(slashSplit); + }); + if (options.debug) console.error(this.pattern, set); // glob --> regexps - var BUILD = R++; - src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'; // ## Full Version String - // A main version, followed optionally by a pre-release version and - // build metadata. - // Note that the only major, minor, patch, and pre-release sections of - // the version string are capturing groups. The build metadata is not a - // capturing group, because it should not ever be used in version - // comparison. + set = set.map(function (s, si, set) { + return s.map(this.parse, this); + }, this); + if (options.debug) console.error(this.pattern, set); // filter out everything that didn't compile properly. - var FULL = R++; - var FULLPLAIN = 'v?' + src[MAINVERSION] + src[PRERELEASE] + '?' + src[BUILD] + '?'; - src[FULL] = '^' + FULLPLAIN + '$'; // like full, but allows v1.2.3 and =1.2.3, which people do sometimes. - // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty - // common in the npm registry. + set = set.filter(function (s) { + return -1 === s.indexOf(false); + }); + if (options.debug) console.error(this.pattern, set); + this.set = set; + } - var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] + src[PRERELEASELOOSE] + '?' + src[BUILD] + '?'; - var LOOSE = R++; - src[LOOSE] = '^' + LOOSEPLAIN + '$'; - var GTLT = R++; - src[GTLT] = '((?:<|>)?=?)'; // Something like "2.*" or "1.2.x". - // Note that "x.x" is a valid xRange identifer, meaning "any version" - // Only the first item is strictly required. + Minimatch.prototype.parseNegate = parseNegate; - var XRANGEIDENTIFIERLOOSE = R++; - src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'; - var XRANGEIDENTIFIER = R++; - src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'; - var XRANGEPLAIN = R++; - src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' + '(?:' + src[PRERELEASE] + ')?' + src[BUILD] + '?' + ')?)?'; - var XRANGEPLAINLOOSE = R++; - src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' + '(?:' + src[PRERELEASELOOSE] + ')?' + src[BUILD] + '?' + ')?)?'; - var XRANGE = R++; - src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'; - var XRANGELOOSE = R++; - src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'; // Coercion. - // Extract anything that could conceivably be a part of a valid semver + function parseNegate() { + var pattern = this.pattern, + negate = false, + options = this.options, + negateOffset = 0; + if (options.nonegate) return; - var COERCE = R++; - src[COERCE] = '(?:^|[^\\d])' + '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' + '(?:$|[^\\d])'; // Tilde ranges. - // Meaning is "reasonably at or greater than" + for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) { + negate = !negate; + negateOffset++; + } - var LONETILDE = R++; - src[LONETILDE] = '(?:~>?)'; - var TILDETRIM = R++; - src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'; - re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g'); - var tildeTrimReplace = '$1~'; - var TILDE = R++; - src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'; - var TILDELOOSE = R++; - src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'; // Caret ranges. - // Meaning is "at least and backwards compatible with" + if (negateOffset) this.pattern = pattern.substr(negateOffset); + this.negate = negate; + } // Brace expansion: + // a{b,c}d -> abd acd + // a{b,}c -> abc ac + // a{0..3}d -> a0d a1d a2d a3d + // a{b,c{d,e}f}g -> abg acdfg acefg + // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg + // + // Invalid sets are not expanded. + // a{2..}b -> a{2..}b + // a{b}c -> a{b}c - var LONECARET = R++; - src[LONECARET] = '(?:\\^)'; - var CARETTRIM = R++; - src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'; - re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g'); - var caretTrimReplace = '$1^'; - var CARET = R++; - src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'; - var CARETLOOSE = R++; - src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'; // A simple gt/lt/eq thing, or just "" to indicate "any version" - var COMPARATORLOOSE = R++; - src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'; - var COMPARATOR = R++; - src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'; // An expression to strip any whitespace between the gtlt and the thing - // it modifies, so that `> 1.2.3` ==> `>1.2.3` + minimatch.braceExpand = function (pattern, options) { + return new Minimatch(pattern, options).braceExpand(); + }; - var COMPARATORTRIM = R++; - src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'; // this one has to use the /g flag + Minimatch.prototype.braceExpand = braceExpand; - re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g'); - var comparatorTrimReplace = '$1$2$3'; // Something like `1.2.3 - 1.2.4` - // Note that these all use the loose form, because they'll be - // checked against either the strict or loose comparator form - // later. + function braceExpand(pattern, options) { + options = options || this.options; + pattern = typeof pattern === "undefined" ? this.pattern : pattern; - var HYPHENRANGE = R++; - src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' + '\\s+-\\s+' + '(' + src[XRANGEPLAIN] + ')' + '\\s*$'; - var HYPHENRANGELOOSE = R++; - src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' + '\\s+-\\s+' + '(' + src[XRANGEPLAINLOOSE] + ')' + '\\s*$'; // Star ranges basically just allow anything at all. + if (typeof pattern === "undefined") { + throw new Error("undefined pattern"); + } - var STAR = R++; - src[STAR] = '(<|>)?=?\\s*\\*'; // Compile to actual regexp objects. - // All are flag-free, unless they were created above with a flag. + if (options.nobrace || !pattern.match(/\{.*\}/)) { + // shortcut. no need to expand. + return [pattern]; + } + + var escaping = false; // examples and comments refer to this crazy pattern: + // a{b,c{d,e},{f,g}h}x{y,z} + // expected: + // abxy + // abxz + // acdxy + // acdxz + // acexy + // acexz + // afhxy + // afhxz + // aghxy + // aghxz + // everything before the first \{ is just a prefix. + // So, we pluck that off, and work with the rest, + // and then prepend it to everything we find. - for (var i = 0; i < R; i++) { - debug(i, src[i]); + if (pattern.charAt(0) !== "{") { + // console.error(pattern) + var prefix = null; - if (!re[i]) { - re[i] = new RegExp(src[i]); - } - } + for (var i = 0, l = pattern.length; i < l; i++) { + var c = pattern.charAt(i); // console.error(i, c) - exports.parse = parse; + if (c === "\\") { + escaping = !escaping; + } else if (c === "{" && !escaping) { + prefix = pattern.substr(0, i); + break; + } + } // actually no sets, all { were escaped. - function parse(version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } - if (version instanceof SemVer) { - return version; - } + if (prefix === null) { + // console.error("no sets") + return [pattern]; + } - if (typeof version !== 'string') { - return null; - } + var tail = braceExpand(pattern.substr(i), options); + return tail.map(function (t) { + return prefix + t; + }); + } // now we have something like: + // {b,c{d,e},{f,g}h}x{y,z} + // walk through the set, expanding each part, until + // the set ends. then, we'll expand the suffix. + // If the set only has a single member, then'll put the {} back + // first, handle numeric sets, since they're easier - if (version.length > MAX_LENGTH) { - return null; - } - var r = options.loose ? re[LOOSE] : re[FULL]; + var numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/); - if (!r.test(version)) { - return null; - } + if (numset) { + // console.error("numset", numset[1], numset[2]) + var suf = braceExpand(pattern.substr(numset[0].length), options), + start = +numset[1], + end = +numset[2], + inc = start > end ? -1 : 1, + set = []; - try { - return new SemVer(version, options); - } catch (er) { - return null; - } - } + for (var i = start; i != end + inc; i += inc) { + // append all the suffixes + for (var ii = 0, ll = suf.length; ii < ll; ii++) { + set.push(i + suf[ii]); + } + } - exports.valid = valid; + return set; + } // ok, walk through the set + // We hope, somewhat optimistically, that there + // will be a } at the end. + // If the closing brace isn't found, then the pattern is + // interpreted as braceExpand("\\" + pattern) so that + // the leading \{ will be interpreted literally. - function valid(version, options) { - var v = parse(version, options); - return v ? v.version : null; - } - exports.clean = clean; + var i = 1 // skip the \{ + , + depth = 1, + set = [], + member = "", + escaping = false; - function clean(version, options) { - var s = parse(version.trim().replace(/^[=v]+/, ''), options); - return s ? s.version : null; - } + function addMember() { + set.push(member); + member = ""; + } // console.error("Entering for") - exports.SemVer = SemVer; - function SemVer(version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } + FOR: for (i = 1, l = pattern.length; i < l; i++) { + var c = pattern.charAt(i); // console.error("", i, c) - if (version instanceof SemVer) { - if (version.loose === options.loose) { - return version; + if (escaping) { + escaping = false; + member += "\\" + c; } else { - version = version.version; - } - } else if (typeof version !== 'string') { - throw new TypeError('Invalid Version: ' + version); - } + switch (c) { + case "\\": + escaping = true; + continue; - if (version.length > MAX_LENGTH) { - throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters'); - } + case "{": + depth++; + member += "{"; + continue; - if (!(this instanceof SemVer)) { - return new SemVer(version, options); - } + case "}": + depth--; // if this closes the actual set, then we're done - debug('SemVer', version, options); - this.options = options; - this.loose = !!options.loose; - var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL]); + if (depth === 0) { + addMember(); // pluck off the close-brace - if (!m) { - throw new TypeError('Invalid Version: ' + version); - } + i++; + break FOR; + } else { + member += c; + continue; + } - this.raw = version; // these are actually numbers + case ",": + if (depth === 1) { + addMember(); + } else { + member += c; + } - this.major = +m[1]; - this.minor = +m[2]; - this.patch = +m[3]; + continue; - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError('Invalid major version'); - } + default: + member += c; + continue; + } // switch - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError('Invalid minor version'); - } + } // else - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError('Invalid patch version'); - } // numberify any prerelease numeric ids + } // for + // now we've either finished the set, and the suffix is + // pattern.substr(i), or we have *not* closed the set, + // and need to escape the leading brace - if (!m[4]) { - this.prerelease = []; - } else { - this.prerelease = m[4].split('.').map(function (id) { - if (/^[0-9]+$/.test(id)) { - var num = +id; + if (depth !== 0) { + // console.error("didn't close", pattern) + return braceExpand("\\" + pattern, options); + } // x{y,z} -> ["xy", "xz"] + // console.error("set", set) + // console.error("suffix", pattern.substr(i)) - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num; - } - } - return id; - }); - } + var suf = braceExpand(pattern.substr(i), options); // ["b", "c{d,e}","{f,g}h"] -> + // [["b"], ["cd", "ce"], ["fh", "gh"]] - this.build = m[5] ? m[5].split('.') : []; - this.format(); - } + var addBraces = set.length === 1; // console.error("set pre-expanded", set) - SemVer.prototype.format = function () { - this.version = this.major + '.' + this.minor + '.' + this.patch; + set = set.map(function (p) { + return braceExpand(p, options); + }); // console.error("set expanded", set) + // [["b"], ["cd", "ce"], ["fh", "gh"]] -> + // ["b", "cd", "ce", "fh", "gh"] - if (this.prerelease.length) { - this.version += '-' + this.prerelease.join('.'); - } + set = set.reduce(function (l, r) { + return l.concat(r); + }); - return this.version; - }; + if (addBraces) { + set = set.map(function (s) { + return "{" + s + "}"; + }); + } // now attach the suffixes. - SemVer.prototype.toString = function () { - return this.version; - }; - SemVer.prototype.compare = function (other) { - debug('SemVer.compare', this.version, this.options, other); + var ret = []; - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + for (var i = 0, l = set.length; i < l; i++) { + for (var ii = 0, ll = suf.length; ii < ll; ii++) { + ret.push(set[i] + suf[ii]); + } } - return this.compareMain(other) || this.comparePre(other); - }; + return ret; + } // parse a component of the expanded set. + // At this point, no pattern may contain "/" in it + // so we're going to return a 2d array, where each entry is the full + // pattern, split on '/', and then turned into a regular expression. + // A regexp is made at the end which joins each array with an + // escaped /, and another full one which joins each regexp with |. + // + // Following the lead of Bash 4.1, note that "**" only has special meaning + // when it is the *only* thing in a path portion. Otherwise, any series + // of * is equivalent to a single *. Globstar behavior is enabled by + // default, and can be disabled by setting options.noglobstar. - SemVer.prototype.compareMain = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); - } - return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); - }; + Minimatch.prototype.parse = parse; + var SUBPARSE = {}; - SemVer.prototype.comparePre = function (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); - } // NOT having a prerelease is > having one + function parse(pattern, isSub) { + var options = this.options; // shortcuts + if (!options.noglobstar && pattern === "**") return GLOBSTAR; + if (pattern === "") return ""; + var re = "", + hasMagic = !!options.nocase, + escaping = false // ? => one single character + , + patternListStack = [], + plType, + stateChar, + inClass = false, + reClassStart = -1, + classStart = -1 // . and .. never match anything that doesn't start with ., + // even when options.dot is set. + , + patternStart = pattern.charAt(0) === "." ? "" // anything + // not (start or / followed by . or .. followed by / or end) + : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))" : "(?!\\.)"; - if (this.prerelease.length && !other.prerelease.length) { - return -1; - } else if (!this.prerelease.length && other.prerelease.length) { - return 1; - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0; - } + function clearStateChar() { + if (stateChar) { + // we had some state-tracking character + // that wasn't consumed by this pass. + switch (stateChar) { + case "*": + re += star; + hasMagic = true; + break; - var i = 0; + case "?": + re += qmark; + hasMagic = true; + break; - do { - var a = this.prerelease[i]; - var b = other.prerelease[i]; - debug('prerelease compare', i, a, b); + default: + re += "\\" + stateChar; + break; + } - if (a === undefined && b === undefined) { - return 0; - } else if (b === undefined) { - return 1; - } else if (a === undefined) { - return -1; - } else if (a === b) { - continue; - } else { - return compareIdentifiers(a, b); + stateChar = false; } - } while (++i); - }; // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - - - SemVer.prototype.inc = function (release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0; - this.patch = 0; - this.minor = 0; - this.major++; - this.inc('pre', identifier); - break; + } - case 'preminor': - this.prerelease.length = 0; - this.patch = 0; - this.minor++; - this.inc('pre', identifier); - break; + for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { + if (options.debug) { + console.error("%s\t%s %s %j", pattern, i, re, c); + } // skip over any that are escaped. - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0; - this.inc('patch', identifier); - this.inc('pre', identifier); - break; - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) { - this.inc('patch', identifier); - } + if (escaping && reSpecials[c]) { + re += "\\" + c; + escaping = false; + continue; + } - this.inc('pre', identifier); - break; + switch (c) { + case "/": + // completely not allowed, even escaped. + // Should already be path-split by now. + return false; - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { - this.major++; - } + case "\\": + clearStateChar(); + escaping = true; + continue; + // the various stateChar values + // for the "extglob" stuff. - this.minor = 0; - this.patch = 0; - this.prerelease = []; - break; + case "?": + case "*": + case "+": + case "@": + case "!": + if (options.debug) { + console.error("%s\t%s %s %j <-- stateChar", pattern, i, re, c); + } // all of those are literals inside a class, except that + // the glob [!a] means [^a] in regexp - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++; - } - this.patch = 0; - this.prerelease = []; - break; + if (inClass) { + if (c === "!" && i === classStart + 1) c = "^"; + re += c; + continue; + } // if we already have a stateChar, then it means + // that there was something like ** or +? in there. + // Handle the stateChar, then proceed with this one. - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) { - this.patch++; - } - this.prerelease = []; - break; - // This probably shouldn't be used publicly. - // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction. + clearStateChar(); + stateChar = c; // if extglob is disabled, then +(asdf|foo) isn't a thing. + // just clear the statechar *now*, rather than even diving into + // the patternList stuff. - case 'pre': - if (this.prerelease.length === 0) { - this.prerelease = [0]; - } else { - var i = this.prerelease.length; + if (options.noext) clearStateChar(); + continue; - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++; - i = -2; - } + case "(": + if (inClass) { + re += "("; + continue; } - if (i === -1) { - // didn't increment anything - this.prerelease.push(0); + if (!stateChar) { + re += "\\("; + continue; } - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0]; - } - } else { - this.prerelease = [identifier, 0]; - } - } + plType = stateChar; + patternListStack.push({ + type: plType, + start: i - 1, + reStart: re.length + }); // negation is (?:(?!js)[^/]*) - break; + re += stateChar === "!" ? "(?:(?!" : "(?:"; + stateChar = false; + continue; - default: - throw new Error('invalid increment argument: ' + release); - } + case ")": + if (inClass || !patternListStack.length) { + re += "\\)"; + continue; + } - this.format(); - this.raw = this.version; - return this; - }; + hasMagic = true; + re += ")"; + plType = patternListStack.pop().type; // negation is (?:(?!js)[^/]*) + // The others are (?:) - exports.inc = inc; + switch (plType) { + case "!": + re += "[^/]*?)"; + break; - function inc(version, release, loose, identifier) { - if (typeof loose === 'string') { - identifier = loose; - loose = undefined; - } + case "?": + case "+": + case "*": + re += plType; + // the default anyway + } - try { - return new SemVer(version, loose).inc(release, identifier).version; - } catch (er) { - return null; - } - } + continue; - exports.diff = diff; + case "|": + if (inClass || !patternListStack.length || escaping) { + re += "\\|"; + escaping = false; + continue; + } - function diff(version1, version2) { - if (eq(version1, version2)) { - return null; - } else { - var v1 = parse(version1); - var v2 = parse(version2); - var prefix = ''; + re += "|"; + continue; + // these are mostly the same in regexp and glob - if (v1.prerelease.length || v2.prerelease.length) { - prefix = 'pre'; - var defaultResult = 'prerelease'; - } + case "[": + // swallow any state-tracking char before the [ + clearStateChar(); - for (var key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return prefix + key; + if (inClass) { + re += "\\" + c; + continue; } - } - } - return defaultResult; // may be undefined - } - } + inClass = true; + classStart = i; + reClassStart = re.length; + re += c; + continue; - exports.compareIdentifiers = compareIdentifiers; - var numeric = /^[0-9]+$/; + case "]": + // a right bracket shall lose its special + // meaning and represent itself in + // a bracket expression if it occurs + // first in the list. -- POSIX.2 2.8.3.2 + if (i === classStart + 1 || !inClass) { + re += "\\" + c; + escaping = false; + continue; + } // finish up the class. - function compareIdentifiers(a, b) { - var anum = numeric.test(a); - var bnum = numeric.test(b); - if (anum && bnum) { - a = +a; - b = +b; - } + hasMagic = true; + inClass = false; + re += c; + continue; - return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; - } + default: + // swallow any state char that wasn't consumed + clearStateChar(); - exports.rcompareIdentifiers = rcompareIdentifiers; + if (escaping) { + // no need + escaping = false; + } else if (reSpecials[c] && !(c === "^" && inClass)) { + re += "\\"; + } - function rcompareIdentifiers(a, b) { - return compareIdentifiers(b, a); - } + re += c; + } // switch - exports.major = major; + } // for + // handle the case where we left a class open. + // "[abc" is valid, equivalent to "\[abc" - function major(a, loose) { - return new SemVer(a, loose).major; - } - exports.minor = minor; + if (inClass) { + // split where the last [ was, and escape it + // this is a huge pita. We now have to re-walk + // the contents of the would-be class to re-translate + // any characters that were passed through as-is + var cs = pattern.substr(classStart + 1), + sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + "\\[" + sp[0]; + hasMagic = hasMagic || sp[1]; + } // handle the case where we had a +( thing at the *end* + // of the pattern. + // each pattern list stack adds 3 chars, and we need to go through + // and escape any | chars that were passed through as-is for the regexp. + // Go through and escape them, taking care not to double-escape any + // | chars that were already escaped. - function minor(a, loose) { - return new SemVer(a, loose).minor; - } - exports.patch = patch; + var pl; - function patch(a, loose) { - return new SemVer(a, loose).patch; - } + while (pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + 3); // maybe some even number of \, then maybe 1 \, followed by a | - exports.compare = compare; + tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { + if (!$2) { + // the | isn't already escaped, so escape it. + $2 = "\\"; + } // need to escape all those slashes *again*, without escaping the + // one that we need for escaping the | character. As it works out, + // escaping an even number of slashes can be done by simply repeating + // it exactly after itself. That's why this trick works. + // + // I am sorry that you have to see this. - function compare(a, b, loose) { - return new SemVer(a, loose).compare(new SemVer(b, loose)); - } - exports.compareLoose = compareLoose; + return $1 + $1 + $2 + "|"; + }); // console.error("tail=%j\n %s", tail, tail) - function compareLoose(a, b) { - return compare(a, b, true); - } + var t = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type; + hasMagic = true; + re = re.slice(0, pl.reStart) + t + "\\(" + tail; + } // handle trailing things that only matter at the very end. - exports.rcompare = rcompare; - function rcompare(a, b, loose) { - return compare(b, a, loose); - } + clearStateChar(); - exports.sort = sort; + if (escaping) { + // trailing \\ + re += "\\\\"; + } // only need to apply the nodot start if the re starts with + // something that could conceivably capture a dot - function sort(list, loose) { - return list.sort(function (a, b) { - return exports.compare(a, b, loose); - }); - } - exports.rsort = rsort; + var addPatternStart = false; - function rsort(list, loose) { - return list.sort(function (a, b) { - return exports.rcompare(a, b, loose); - }); - } + switch (re.charAt(0)) { + case ".": + case "[": + case "(": + addPatternStart = true; + } // if the re is not "" at this point, then we need to make sure + // it doesn't match against an empty path part. + // Otherwise a/* will match a/, which it should not. - exports.gt = gt; - function gt(a, b, loose) { - return compare(a, b, loose) > 0; - } + if (re !== "" && hasMagic) re = "(?=.)" + re; + if (addPatternStart) re = patternStart + re; // parsing just a piece of a larger pattern. - exports.lt = lt; + if (isSub === SUBPARSE) { + return [re, hasMagic]; + } // skip the regexp for non-magical patterns + // unescape anything in it, though, so that it'll be + // an exact match against a file etc. - function lt(a, b, loose) { - return compare(a, b, loose) < 0; - } - exports.eq = eq; + if (!hasMagic) { + return globUnescape(pattern); + } - function eq(a, b, loose) { - return compare(a, b, loose) === 0; + var flags = options.nocase ? "i" : "", + regExp = new RegExp("^" + re + "$", flags); + regExp._glob = pattern; + regExp._src = re; + return regExp; } - exports.neq = neq; + minimatch.makeRe = function (pattern, options) { + return new Minimatch(pattern, options || {}).makeRe(); + }; - function neq(a, b, loose) { - return compare(a, b, loose) !== 0; - } + Minimatch.prototype.makeRe = makeRe; - exports.gte = gte; + function makeRe() { + if (this.regexp || this.regexp === false) return this.regexp; // at this point, this.set is a 2d array of partial + // pattern strings, or "**". + // + // It's better to use .match(). This function shouldn't + // be used, really, but it's pretty convenient sometimes, + // when you just want to work with a regex. - function gte(a, b, loose) { - return compare(a, b, loose) >= 0; - } + var set = this.set; + if (!set.length) return this.regexp = false; + var options = this.options; + var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot, + flags = options.nocase ? "i" : ""; + var re = set.map(function (pattern) { + return pattern.map(function (p) { + return p === GLOBSTAR ? twoStar : typeof p === "string" ? regExpEscape(p) : p._src; + }).join("\\\/"); + }).join("|"); // must match entire pattern + // ending in a * or ** will make it less strict. - exports.lte = lte; + re = "^(?:" + re + ")$"; // can match anything, as long as it's not this. - function lte(a, b, loose) { - return compare(a, b, loose) <= 0; + if (this.negate) re = "^(?!" + re + ").*$"; + + try { + return this.regexp = new RegExp(re, flags); + } catch (ex) { + return this.regexp = false; + } } - exports.cmp = cmp; + minimatch.match = function (list, pattern, options) { + var mm = new Minimatch(pattern, options); + list = list.filter(function (f) { + return mm.match(f); + }); - function cmp(a, op, b, loose) { - switch (op) { - case '===': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - return a === b; + if (options.nonull && !list.length) { + list.push(pattern); + } - case '!==': - if (typeof a === 'object') a = a.version; - if (typeof b === 'object') b = b.version; - return a !== b; + return list; + }; - case '': - case '=': - case '==': - return eq(a, b, loose); + Minimatch.prototype.match = match; - case '!=': - return neq(a, b, loose); + function match(f, partial) { + // console.error("match", f, this.pattern) + // short-circuit in the case of busted things. + // comments, etc. + if (this.comment) return false; + if (this.empty) return f === ""; + if (f === "/" && partial) return true; + var options = this.options; // windows: need to use /, not \ + // On other platforms, \ is a valid (albeit bad) filename char. - case '>': - return gt(a, b, loose); + if (platform === "win32") { + f = f.split("\\").join("/"); + } // treat the test path as a set of pathparts. - case '>=': - return gte(a, b, loose); - case '<': - return lt(a, b, loose); + f = f.split(slashSplit); - case '<=': - return lte(a, b, loose); + if (options.debug) { + console.error(this.pattern, "split", f); + } // just ONE of the pattern sets in this.set needs to match + // in order for it to be valid. If negating, then just one + // match means that we have failed. + // Either way, return on the first hit. - default: - throw new TypeError('Invalid operator: ' + op); - } - } - exports.Comparator = Comparator; + var set = this.set; // console.error(this.pattern, "set", set) - function Comparator(comp, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } + for (var i = 0, l = set.length; i < l; i++) { + var pattern = set[i]; + var hit = this.matchOne(f, pattern, partial); - if (comp instanceof Comparator) { - if (comp.loose === !!options.loose) { - return comp; - } else { - comp = comp.value; + if (hit) { + if (options.flipNegate) return true; + return !this.negate; } - } + } // didn't get any hits. this is success if it's a negative + // pattern, failure otherwise. - if (!(this instanceof Comparator)) { - return new Comparator(comp, options); - } - debug('comparator', comp, options); - this.options = options; - this.loose = !!options.loose; - this.parse(comp); + if (options.flipNegate) return false; + return this.negate; + } // set partial to true to test if, for example, + // "/a/b" matches the start of "/*/b/*/d" + // Partial means, if you run out of file before you run + // out of pattern, then that's fine, as long as all + // the parts match. - if (this.semver === ANY) { - this.value = ''; - } else { - this.value = this.operator + this.semver.version; - } - debug('comp', this); - } + Minimatch.prototype.matchOne = function (file, pattern, partial) { + var options = this.options; - var ANY = {}; + if (options.debug) { + console.error("matchOne", { + "this": this, + file: file, + pattern: pattern + }); + } - Comparator.prototype.parse = function (comp) { - var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var m = comp.match(r); + if (options.matchBase && pattern.length === 1) { + file = path__default['default'].basename(file.join("/")).split("/"); + } - if (!m) { - throw new TypeError('Invalid comparator: ' + comp); + if (options.debug) { + console.error("matchOne", file.length, pattern.length); } - this.operator = m[1]; + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + if (options.debug) { + console.error("matchOne loop"); + } - if (this.operator === '=') { - this.operator = ''; - } // if it literally is just '>' or '' then allow anything. + var p = pattern[pi], + f = file[fi]; + if (options.debug) { + console.error(pattern, p, f); + } // should be impossible. + // some invalid regexp stuff in the set. - if (!m[2]) { - this.semver = ANY; - } else { - this.semver = new SemVer(m[2], this.options.loose); - } - }; - Comparator.prototype.toString = function () { - return this.value; - }; + if (p === false) return false; - Comparator.prototype.test = function (version) { - debug('Comparator.test', version, this.options.loose); + if (p === GLOBSTAR) { + if (options.debug) console.error('GLOBSTAR', [pattern, p, f]); // "**" + // a/**/b/**/c would match the following: + // a/b/x/y/z/c + // a/x/y/z/b/c + // a/b/x/b/x/c + // a/b/c + // To do this, take the rest of the pattern after + // the **, and see if it would match the file remainder. + // If so, return success. + // If not, the ** "swallows" a segment, and try again. + // This is recursively awful. + // + // a/**/b/**/c matching a/b/x/y/z/c + // - a matches a + // - doublestar + // - matchOne(b/x/y/z/c, b/**/c) + // - b matches b + // - doublestar + // - matchOne(x/y/z/c, c) -> no + // - matchOne(y/z/c, c) -> no + // - matchOne(z/c, c) -> no + // - matchOne(c, c) yes, hit - if (this.semver === ANY) { - return true; - } + var fr = fi, + pr = pi + 1; - if (typeof version === 'string') { - version = new SemVer(version, this.options); - } + if (pr === pl) { + if (options.debug) console.error('** at the end'); // a ** at the end will just swallow the rest. + // We have found a match. + // however, it will not swallow /.x, unless + // options.dot is set. + // . and .. are *never* matched by **, for explosively + // exponential reasons. - return cmp(version, this.operator, this.semver, this.options); - }; + for (; fi < fl; fi++) { + if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".") return false; + } - Comparator.prototype.intersects = function (comp, options) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required'); - } + return true; + } // ok, let's see if we can swallow whatever we can. - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } - var rangeTmp; + WHILE: while (fr < fl) { + var swallowee = file[fr]; - if (this.operator === '') { - rangeTmp = new Range(comp.value, options); - return satisfies(this.value, rangeTmp, options); - } else if (comp.operator === '') { - rangeTmp = new Range(this.value, options); - return satisfies(comp.semver, rangeTmp, options); - } + if (options.debug) { + console.error('\nglobstar while', file, fr, pattern, pr, swallowee); + } // XXX remove this slice. Just pass the start index. - var sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); - var sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); - var sameSemVer = this.semver.version === comp.semver.version; - var differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); - var oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); - var oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); - return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; - }; - exports.Range = Range; + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + if (options.debug) console.error('globstar found match!', fr, fl, swallowee); // found a match. - function Range(range, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } + return true; + } else { + // can't swallow "." or ".." ever. + // can only swallow ".foo" when explicitly asked. + if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") { + if (options.debug) console.error("dot detected!", file, fr, pattern, pr); + break WHILE; + } // ** swallows a segment, and continue. - if (range instanceof Range) { - if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { - return range; - } else { - return new Range(range.raw, options); - } - } - if (range instanceof Comparator) { - return new Range(range.value, options); - } + if (options.debug) console.error('globstar swallow a segment, and continue'); + fr++; + } + } // no match was found. + // However, in partial mode, we can't say this is necessarily over. + // If there's more *pattern* left, then - if (!(this instanceof Range)) { - return new Range(range, options); - } - this.options = options; - this.loose = !!options.loose; - this.includePrerelease = !!options.includePrerelease; // First, split based on boolean or || + if (partial) { + // ran out of file + // console.error("\n>>> no match, partial?", file, fr, pattern, pr) + if (fr === fl) return true; + } + + return false; + } // something other than ** + // non-magic patterns just have to match exactly + // patterns with magic have been turned into regexps. - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(function (range) { - return this.parseRange(range.trim()); - }, this).filter(function (c) { - // throw out any that are not relevant for whatever reason - return c.length; - }); - if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range); - } + var hit; - this.format(); - } + if (typeof p === "string") { + if (options.nocase) { + hit = f.toLowerCase() === p.toLowerCase(); + } else { + hit = f === p; + } - Range.prototype.format = function () { - this.range = this.set.map(function (comps) { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; - }; + if (options.debug) { + console.error("string match", p, f, hit); + } + } else { + hit = f.match(p); - Range.prototype.toString = function () { - return this.range; - }; + if (options.debug) { + console.error("pattern match", p, f, hit); + } + } - Range.prototype.parseRange = function (range) { - var loose = this.options.loose; - range = range.trim(); // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + if (!hit) return false; + } // Note: ending in / means that we'll get a final "" + // at the end of the pattern. This can only match a + // corresponding "" at the end of the file. + // If the file ends in /, then it can only match a + // a pattern that ends in /, unless the pattern just + // doesn't have any more for it. But, a/b/ should *not* + // match "a/b/*", even though "" matches against the + // [^/]*? pattern, except in partial mode, where it might + // simply not be reached yet. + // However, a/b/ should still satisfy a/* + // now either we fell off the end of the pattern, or we're done. - var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]; - range = range.replace(hr, hyphenReplace); - debug('hyphen replace', range); // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace); - debug('comparator trim', range, re[COMPARATORTRIM]); // `~ 1.2.3` => `~1.2.3` + if (fi === fl && pi === pl) { + // ran out of pattern and filename at the same time. + // an exact hit! + return true; + } else if (fi === fl) { + // ran out of file, but still had pattern left. + // this is ok if we're doing the match as part of + // a glob fs traversal. + return partial; + } else if (pi === pl) { + // ran out of pattern, still have file left. + // this is only acceptable if we're on the very last + // empty segment of a file with a trailing slash. + // a/* should match a/b/ + var emptyFileEnd = fi === fl - 1 && file[fi] === ""; + return emptyFileEnd; + } // should be unreachable. - range = range.replace(re[TILDETRIM], tildeTrimReplace); // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[CARETTRIM], caretTrimReplace); // normalize spaces + throw new Error("wtf?"); + }; // replace stuff like \* with * - range = range.split(/\s+/).join(' '); // At this point, the range is completely trimmed and - // ready to be split into comparators. - var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]; - var set = range.split(' ').map(function (comp) { - return parseComparator(comp, this.options); - }, this).join(' ').split(/\s+/); + function globUnescape(s) { + return s.replace(/\\(.)/g, "$1"); + } - if (this.options.loose) { - // in loose mode, throw out any that are not valid comparators - set = set.filter(function (comp) { - return !!comp.match(compRe); - }); + function regExpEscape(s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + } +}); + +var __awaiter$1 = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - set = set.map(function (comp) { - return new Comparator(comp, this.options); - }, this); - return set; - }; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } - Range.prototype.intersects = function (range, options) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required'); + function step(result) { + result.done ? resolve(result.value) : new P(function (resolve) { + resolve(result.value); + }).then(fulfilled, rejected); } - return this.set.some(function (thisComparators) { - return thisComparators.every(function (thisComparator) { - return range.set.some(function (rangeComparators) { - return rangeComparators.every(function (rangeComparator) { - return thisComparator.intersects(rangeComparator, options); - }); - }); - }); - }); - }; // Mostly just for testing and legacy API reasons + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator$1 = undefined && undefined.__generator || function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [] + }, + f, + y, + t, + g; + return g = { + next: verb(0), + "throw": verb(1), + "return": verb(2) + }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { + return this; + }), g; - exports.toComparators = toComparators; + function verb(n) { + return function (v) { + return step([n, v]); + }; + } - function toComparators(range, options) { - return new Range(range, options).set.map(function (comp) { - return comp.map(function (c) { - return c.value; - }).join(' ').trim().split(' '); - }); - } // comprised of xranges, tildes, stars, and gtlt's at this point. - // already replaced the hyphen ranges - // turn into a set of JUST comparators. + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; - function parseComparator(comp, options) { - debug('comp', comp, options); - comp = replaceCarets(comp, options); - debug('caret', comp); - comp = replaceTildes(comp, options); - debug('tildes', comp); - comp = replaceXRanges(comp, options); - debug('xrange', comp); - comp = replaceStars(comp, options); - debug('stars', comp); - return comp; - } + switch (op[0]) { + case 0: + case 1: + t = op; + break; - function isX(id) { - return !id || id.toLowerCase() === 'x' || id === '*'; - } // ~, ~> --> * (any, kinda silly) - // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 - // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 - // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 - // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 - // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 + case 4: + _.label++; + return { + value: op[1], + done: false + }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; - function replaceTildes(comp, options) { - return comp.trim().split(/\s+/).map(function (comp) { - return replaceTilde(comp, options); - }).join(' '); - } + case 7: + op = _.ops.pop(); - function replaceTilde(comp, options) { - var r = options.loose ? re[TILDELOOSE] : re[TILDE]; - return comp.replace(r, function (_, M, m, p, pr) { - debug('tilde', comp, _, M, m, p, pr); - var ret; + _.trys.pop(); - if (isX(M)) { - ret = ''; - } else if (isX(m)) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (isX(p)) { - // ~1.2 == >=1.2.0 <1.3.0 - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } else if (pr) { - debug('replaceTilde pr', pr); - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0'; - } else { - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0'; - } + continue; - debug('tilde return', ret); - return ret; - }); - } // ^ --> * (any, kinda silly) - // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 - // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 - // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 - // ^1.2.3 --> >=1.2.3 <2.0.0 - // ^1.2.0 --> >=1.2.0 <2.0.0 + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } - function replaceCarets(comp, options) { - return comp.trim().split(/\s+/).map(function (comp) { - return replaceCaret(comp, options); - }).join(' '); - } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } - function replaceCaret(comp, options) { - debug('caret', comp, options); - var r = options.loose ? re[CARETLOOSE] : re[CARET]; - return comp.replace(r, function (_, M, m, p, pr) { - debug('caret', comp, _, M, m, p, pr); - var ret; + if (t && _.label < t[2]) { + _.label = t[2]; - if (isX(M)) { - ret = ''; - } else if (isX(m)) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (isX(p)) { - if (M === '0') { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } else { - ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'; - } - } else if (pr) { - debug('replaceCaret pr', pr); + _.ops.push(op); - if (M === '0') { - if (m === '0') { - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + m + '.' + (+p + 1); - } else { - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + M + '.' + (+m + 1) + '.0'; + break; } - } else { - ret = '>=' + M + '.' + m + '.' + p + '-' + pr + ' <' + (+M + 1) + '.0.0'; - } - } else { - debug('no pr'); - if (M === '0') { - if (m === '0') { - ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + m + '.' + (+p + 1); - } else { - ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0'; - } - } else { - ret = '>=' + M + '.' + m + '.' + p + ' <' + (+M + 1) + '.0.0'; - } + if (t[2]) _.ops.pop(); + + _.trys.pop(); + + continue; } - debug('caret return', ret); - return ret; - }); - } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } - function replaceXRanges(comp, options) { - debug('replaceXRanges', comp, options); - return comp.split(/\s+/).map(function (comp) { - return replaceXRange(comp, options); - }).join(' '); + if (op[0] & 5) throw op[1]; + return { + value: op[0] ? op[1] : void 0, + done: true + }; } +}; - function replaceXRange(comp, options) { - comp = comp.trim(); - var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]; - return comp.replace(r, function (ret, gtlt, M, m, p, pr) { - debug('xRange', comp, ret, gtlt, M, m, p, pr); - var xM = isX(M); - var xm = xM || isX(m); - var xp = xm || isX(p); - var anyX = xp; - - if (gtlt === '=' && anyX) { - gtlt = ''; - } +var __importStar$1 = undefined && undefined.__importStar || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0'; - } else { - // nothing is forbidden - ret = '*'; - } - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) { - m = 0; - } +var fs$3 = __importStar$1(fs__default['default']); +/** + * define the possible values: + * section: [section] + * param: key=value + * comment: ;this is a comment + */ - p = 0; - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - // >1.2.3 => >= 1.2.4 - gtlt = '>='; +var regex = { + section: /^\s*\[(([^#;]|\\#|\\;)+)\]\s*([#;].*)?$/, + param: /^\s*([\w\.\-\_]+)\s*[=:]\s*(.*?)\s*([#;].*)?$/, + comment: /^\s*[#;].*$/ +}; +/** + * Parses an .ini file + * @param file The location of the .ini file + */ - if (xm) { - M = +M + 1; - m = 0; - p = 0; - } else { - m = +m + 1; - p = 0; +function parse$5(file) { + return __awaiter$1(this, void 0, void 0, function () { + return __generator$1(this, function (_a) { + return [2 + /*return*/ + , new Promise(function (resolve, reject) { + fs$3.readFile(file, 'utf8', function (err, data) { + if (err) { + reject(err); + return; } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<'; - if (xm) { - M = +M + 1; - } else { - m = +m + 1; - } - } + resolve(parseString$1(data)); + }); + })]; + }); + }); +} - ret = gtlt + M + '.' + m + '.' + p; - } else if (xm) { - ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'; - } else if (xp) { - ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'; - } +var parse_1$5 = parse$5; - debug('xRange return', ret); - return ret; - }); - } // Because * is AND-ed with everything else in the comparator, - // and '' means "any version", just remove the *s entirely. +function parseSync$1(file) { + return parseString$1(fs$3.readFileSync(file, 'utf8')); +} +var parseSync_1$1 = parseSync$1; - function replaceStars(comp, options) { - debug('replaceStars', comp, options); // Looseness is ignored here. star is always as loose as it gets! +function parseString$1(data) { + var sectionBody = {}; + var sectionName = null; + var value = [[sectionName, sectionBody]]; + var lines = data.split(/\r\n|\r|\n/); + lines.forEach(function (line) { + var match; - return comp.trim().replace(re[STAR], ''); - } // This function is passed to string.replace(re[HYPHENRANGE]) - // M, m, patch, prerelease, build - // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 - // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do - // 1.2 - 3.4 => >=1.2.0 <3.5.0 + if (regex.comment.test(line)) { + return; + } + if (regex.param.test(line)) { + match = line.match(regex.param); + sectionBody[match[1]] = match[2]; + } else if (regex.section.test(line)) { + match = line.match(regex.section); + sectionName = match[1]; + sectionBody = {}; + value.push([sectionName, sectionBody]); + } + }); + return value; +} - function hyphenReplace($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) { - if (isX(fM)) { - from = ''; - } else if (isX(fm)) { - from = '>=' + fM + '.0.0'; - } else if (isX(fp)) { - from = '>=' + fM + '.' + fm + '.0'; - } else { - from = '>=' + from; +var parseString_1 = parseString$1; +var ini = /*#__PURE__*/Object.defineProperty({ + parse: parse_1$5, + parseSync: parseSync_1$1, + parseString: parseString_1 +}, '__esModule', { + value: true +}); + +var name$g = "editorconfig"; +var version$1 = "0.15.3"; +var description = "EditorConfig File Locator and Interpreter for Node.js"; +var keywords = [ + "editorconfig", + "core" +]; +var main = "src/index.js"; +var contributors = [ + "Hong Xu (topbug.net)", + "Jed Mao (https://github.com/jedmao/)", + "Trey Hunner (http://treyhunner.com)" +]; +var directories = { + bin: "./bin", + lib: "./lib" +}; +var scripts = { + clean: "rimraf dist", + prebuild: "npm run clean", + build: "tsc", + pretest: "npm run lint && npm run build && npm run copy && cmake .", + test: "ctest .", + "pretest:ci": "npm run pretest", + "test:ci": "ctest -VV --output-on-failure .", + lint: "npm run eclint && npm run tslint", + eclint: "eclint check --indent_size ignore \"src/**\"", + tslint: "tslint --project tsconfig.json --exclude package.json", + copy: "cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib", + prepub: "npm run lint && npm run build && npm run copy", + pub: "npm publish ./dist" +}; +var repository = { + type: "git", + url: "git://github.com/editorconfig/editorconfig-core-js.git" +}; +var bugs = "https://github.com/editorconfig/editorconfig-core-js/issues"; +var author = "EditorConfig Team"; +var license = "MIT"; +var dependencies = { + commander: "^2.19.0", + "lru-cache": "^4.1.5", + semver: "^5.6.0", + sigmund: "^1.0.1" +}; +var devDependencies = { + "@types/mocha": "^5.2.6", + "@types/node": "^10.12.29", + "@types/semver": "^5.5.0", + "cpy-cli": "^2.0.0", + eclint: "^2.8.1", + mocha: "^5.2.0", + rimraf: "^2.6.3", + should: "^13.2.3", + tslint: "^5.13.1", + typescript: "^3.3.3333" +}; +var require$$4$1 = { + name: name$g, + version: version$1, + description: description, + keywords: keywords, + main: main, + contributors: contributors, + directories: directories, + scripts: scripts, + repository: repository, + bugs: bugs, + author: author, + license: license, + dependencies: dependencies, + devDependencies: devDependencies +}; + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } } - if (isX(tM)) { - to = ''; - } else if (isX(tm)) { - to = '<' + (+tM + 1) + '.0.0'; - } else if (isX(tp)) { - to = '<' + tM + '.' + (+tm + 1) + '.0'; - } else if (tpr) { - to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr; - } else { - to = '<=' + to; + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } } - return (from + ' ' + to).trim(); - } // if ANY of the sets match ALL of its comparators, then pass + function step(result) { + result.done ? resolve(result.value) : new P(function (resolve) { + resolve(result.value); + }).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; - Range.prototype.test = function (version) { - if (!version) { - return false; - } +var __generator = undefined && undefined.__generator || function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [] + }, + f, + y, + t, + g; + return g = { + next: verb(0), + "throw": verb(1), + "return": verb(2) + }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { + return this; + }), g; - if (typeof version === 'string') { - version = new SemVer(version, this.options); - } + function verb(n) { + return function (v) { + return step([n, v]); + }; + } - for (var i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version, this.options)) { - return true; - } - } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); - return false; - }; + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; - function testSet(set, version, options) { - for (var i = 0; i < set.length; i++) { - if (!set[i].test(version)) { - return false; - } - } + switch (op[0]) { + case 0: + case 1: + t = op; + break; - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (i = 0; i < set.length; i++) { - debug(set[i].semver); + case 4: + _.label++; + return { + value: op[1], + done: false + }; - if (set[i].semver === ANY) { + case 5: + _.label++; + y = op[1]; + op = [0]; continue; - } - if (set[i].semver.prerelease.length > 0) { - var allowed = set[i].semver; + case 7: + op = _.ops.pop(); - if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { - return true; - } - } - } // Version has a -pre, but it's not one of the ones we like. + _.trys.pop(); + continue; - return false; - } + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } - return true; - } + if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { + _.label = op[1]; + break; + } - exports.satisfies = satisfies; + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } - function satisfies(version, range, options) { - try { - range = new Range(range, options); - } catch (er) { - return false; - } + if (t && _.label < t[2]) { + _.label = t[2]; - return range.test(version); - } + _.ops.push(op); - exports.maxSatisfying = maxSatisfying; + break; + } - function maxSatisfying(versions, range, options) { - var max = null; - var maxSV = null; + if (t[2]) _.ops.pop(); - try { - var rangeObj = new Range(range, options); - } catch (er) { - return null; - } + _.trys.pop(); - versions.forEach(function (v) { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v; - maxSV = new SemVer(max, options); - } + continue; } - }); - return max; - } - - exports.minSatisfying = minSatisfying; - - function minSatisfying(versions, range, options) { - var min = null; - var minSV = null; - try { - var rangeObj = new Range(range, options); - } catch (er) { - return null; + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; } - versions.forEach(function (v) { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v; - minSV = new SemVer(min, options); - } - } - }); - return min; + if (op[0] & 5) throw op[1]; + return { + value: op[0] ? op[1] : void 0, + done: true + }; } +}; - exports.minVersion = minVersion; +var __importStar = undefined && undefined.__importStar || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; - function minVersion(range, loose) { - range = new Range(range, loose); - var minver = new SemVer('0.0.0'); +var __importDefault = undefined && undefined.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; - if (range.test(minver)) { - return minver; - } +var fs$2 = __importStar(fs__default['default']); - minver = new SemVer('0.0.0-0'); +var path = __importStar(path__default['default']); - if (range.test(minver)) { - return minver; - } +var semver = __importStar(semver$1); - minver = null; +var fnmatch_1 = __importDefault(fnmatch$1); - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - comparators.forEach(function (comparator) { - // Clone to avoid manipulating the comparator's semver object. - var compver = new SemVer(comparator.semver.version); +var parseString = ini.parseString; - switch (comparator.operator) { - case '>': - if (compver.prerelease.length === 0) { - compver.patch++; - } else { - compver.prerelease.push(0); - } +var package_json_1 = __importDefault(require$$4$1); - compver.raw = compver.format(); +var knownProps = { + end_of_line: true, + indent_style: true, + indent_size: true, + insert_final_newline: true, + trim_trailing_whitespace: true, + charset: true +}; - /* fallthrough */ +function fnmatch(filepath, glob) { + var matchOptions = { + matchBase: true, + dot: true, + noext: true + }; + glob = glob.replace(/\*\*/g, '{*,**/**/**}'); + return fnmatch_1.default(filepath, glob, matchOptions); +} - case '': - case '>=': - if (!minver || gt(minver, compver)) { - minver = compver; - } +function getConfigFileNames(filepath, options) { + var paths = []; - break; + do { + filepath = path.dirname(filepath); + paths.push(path.join(filepath, options.config)); + } while (filepath !== options.root); - case '<': - case '<=': - /* Ignore maximum versions */ - break; + return paths; +} - /* istanbul ignore next */ +function processMatches(matches, version) { + // Set indent_size to 'tab' if indent_size is unspecified and + // indent_style is set to 'tab'. + if ('indent_style' in matches && matches.indent_style === 'tab' && !('indent_size' in matches) && semver.gte(version, '0.10.0')) { + matches.indent_size = 'tab'; + } // Set tab_width to indent_size if indent_size is specified and + // tab_width is unspecified - default: - throw new Error('Unexpected operation: ' + comparator.operator); - } - }); - } - if (minver && range.test(minver)) { - return minver; - } + if ('indent_size' in matches && !('tab_width' in matches) && matches.indent_size !== 'tab') { + matches.tab_width = matches.indent_size; + } // Set indent_size to tab_width if indent_size is 'tab' - return null; + + if ('indent_size' in matches && 'tab_width' in matches && matches.indent_size === 'tab') { + matches.indent_size = matches.tab_width; } - exports.validRange = validRange; + return matches; +} - function validRange(range, options) { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || '*'; - } catch (er) { - return null; - } - } // Determine if version is less than all the versions possible in the range +function processOptions(options, filepath) { + if (options === void 0) { + options = {}; + } + return { + config: options.config || '.editorconfig', + version: options.version || package_json_1.default.version, + root: path.resolve(options.root || path.parse(filepath).root) + }; +} - exports.ltr = ltr; +function buildFullGlob(pathPrefix, glob) { + switch (glob.indexOf('/')) { + case -1: + glob = '**/' + glob; + break; - function ltr(version, range, options) { - return outside(version, range, '<', options); - } // Determine if version is greater than all the versions possible in the range. + case 0: + glob = glob.substring(1); + break; + } + return path.join(pathPrefix, glob); +} - exports.gtr = gtr; +function extendProps(props, options) { + if (props === void 0) { + props = {}; + } - function gtr(version, range, options) { - return outside(version, range, '>', options); + if (options === void 0) { + options = {}; } - exports.outside = outside; + for (var key in options) { + if (options.hasOwnProperty(key)) { + var value = options[key]; + var key2 = key.toLowerCase(); + var value2 = value; - function outside(version, range, hilo, options) { - version = new SemVer(version, options); - range = new Range(range, options); - var gtfn, ltefn, ltfn, comp, ecomp; + if (knownProps[key2]) { + value2 = value.toLowerCase(); + } - switch (hilo) { - case '>': - gtfn = gt; - ltefn = lte; - ltfn = lt; - comp = '>'; - ecomp = '>='; - break; + try { + value2 = JSON.parse(value); + } catch (e) {} - case '<': - gtfn = lt; - ltefn = gte; - ltfn = gt; - comp = '<'; - ecomp = '<='; - break; + if (typeof value === 'undefined' || value === null) { + // null and undefined are values specific to JSON (no special meaning + // in editorconfig) & should just be returned as regular strings. + value2 = String(value); + } - default: - throw new TypeError('Must provide a hilo val of "<" or ">"'); - } // If it satisifes the range it is not outside + props[key2] = value2; + } + } + return props; +} - if (satisfies(version, range, options)) { - return false; - } // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. +function parseFromConfigs(configs, filepath, options) { + return processMatches(configs.reverse().reduce(function (matches, file) { + var pathPrefix = path.dirname(file.name); + file.contents.forEach(function (section) { + var glob = section[0]; + var options2 = section[1]; + if (!glob) { + return; + } - for (var i = 0; i < range.set.length; ++i) { - var comparators = range.set[i]; - var high = null; - var low = null; - comparators.forEach(function (comparator) { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0'); - } + var fullGlob = buildFullGlob(pathPrefix, glob); - high = high || comparator; - low = low || comparator; + if (!fnmatch(filepath, fullGlob)) { + return; + } - if (gtfn(comparator.semver, high.semver, options)) { - high = comparator; - } else if (ltfn(comparator.semver, low.semver, options)) { - low = comparator; - } - }); // If the edge version comparator has a operator then our version - // isn't outside it + matches = extendProps(matches, options2); + }); + return matches; + }, {}), options.version); +} - if (high.operator === comp || high.operator === ecomp) { - return false; - } // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range +function getConfigsForFiles(files) { + var configs = []; + for (var i in files) { + if (files.hasOwnProperty(i)) { + var file = files[i]; + var contents = ini.parseString(file.contents); + configs.push({ + name: file.name, + contents: contents + }); - if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { - return false; - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false; + if ((contents[0][1].root || '').toLowerCase() === 'true') { + break; } } - - return true; - } - - exports.prerelease = prerelease; - - function prerelease(version, options) { - var parsed = parse(version, options); - return parsed && parsed.prerelease.length ? parsed.prerelease : null; } - exports.intersects = intersects; - - function intersects(r1, r2, options) { - r1 = new Range(r1, options); - r2 = new Range(r2, options); - return r1.intersects(r2); - } + return configs; +} - exports.coerce = coerce; +function readConfigFiles(filepaths) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 + /*return*/ + , Promise.all(filepaths.map(function (name) { + return new Promise(function (resolve) { + fs$2.readFile(name, 'utf8', function (err, data) { + resolve({ + name: name, + contents: err ? '' : data + }); + }); + }); + }))]; + }); + }); +} - function coerce(version) { - if (version instanceof SemVer) { - return version; +function readConfigFilesSync(filepaths) { + var files = []; + var file; + filepaths.forEach(function (filepath) { + try { + file = fs$2.readFileSync(filepath, 'utf8'); + } catch (e) { + file = ''; } - if (typeof version !== 'string') { - return null; - } + files.push({ + name: filepath, + contents: file + }); + }); + return files; +} - var match = version.match(re[COERCE]); +function opts(filepath, options) { + if (options === void 0) { + options = {}; + } - if (match == null) { - return null; - } + var resolvedFilePath = path.resolve(filepath); + return [resolvedFilePath, processOptions(options, resolvedFilePath)]; +} - return parse(match[1] + '.' + (match[2] || '0') + '.' + (match[3] || '0')); +function parseFromFiles(filepath, files, options) { + if (options === void 0) { + options = {}; } -}); - -var hasOwnProperty$3 = Object.prototype.hasOwnProperty; -var pseudomap = PseudoMap; -function PseudoMap(set) { - if (!(this instanceof PseudoMap)) // whyyyyyyy - throw new TypeError("Constructor PseudoMap requires 'new'"); - this.clear(); + return __awaiter(this, void 0, void 0, function () { + var _a, resolvedFilePath, processedOptions; - if (set) { - if (set instanceof PseudoMap || typeof Map === 'function' && set instanceof Map) set.forEach(function (value, key) { - this.set(key, value); - }, this);else if (Array.isArray(set)) set.forEach(function (kv) { - this.set(kv[0], kv[1]); - }, this);else throw new TypeError('invalid argument'); - } + return __generator(this, function (_b) { + _a = opts(filepath, options), resolvedFilePath = _a[0], processedOptions = _a[1]; + return [2 + /*return*/ + , files.then(getConfigsForFiles).then(function (configs) { + return parseFromConfigs(configs, resolvedFilePath, processedOptions); + })]; + }); + }); } -PseudoMap.prototype.forEach = function (fn, thisp) { - thisp = thisp || this; - Object.keys(this._data).forEach(function (k) { - if (k !== 'size') fn.call(thisp, this._data[k].value, this._data[k].key); - }, this); -}; +var parseFromFiles_1 = parseFromFiles; -PseudoMap.prototype.has = function (k) { - return !!find(this._data, k); -}; +function parseFromFilesSync(filepath, files, options) { + if (options === void 0) { + options = {}; + } -PseudoMap.prototype.get = function (k) { - var res = find(this._data, k); - return res && res.value; -}; + var _a = opts(filepath, options), + resolvedFilePath = _a[0], + processedOptions = _a[1]; -PseudoMap.prototype.set = function (k, v) { - set(this._data, k, v); -}; + return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); +} -PseudoMap.prototype.delete = function (k) { - var res = find(this._data, k); +var parseFromFilesSync_1 = parseFromFilesSync; - if (res) { - delete this._data[res._index]; - this._data.size--; +function parse$4(_filepath, _options) { + if (_options === void 0) { + _options = {}; } -}; - -PseudoMap.prototype.clear = function () { - var data = Object.create(null); - data.size = 0; - Object.defineProperty(this, '_data', { - value: data, - enumerable: false, - configurable: true, - writable: false - }); -}; - -Object.defineProperty(PseudoMap.prototype, 'size', { - get: function () { - return this._data.size; - }, - set: function (n) {}, - enumerable: true, - configurable: true -}); - -PseudoMap.prototype.values = PseudoMap.prototype.keys = PseudoMap.prototype.entries = function () { - throw new Error('iterators are not implemented in this version'); -}; // Either identical, or both NaN + return __awaiter(this, void 0, void 0, function () { + var _a, resolvedFilePath, processedOptions, filepaths; -function same(a, b) { - return a === b || a !== a && b !== b; + return __generator(this, function (_b) { + _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1]; + filepaths = getConfigFileNames(resolvedFilePath, processedOptions); + return [2 + /*return*/ + , readConfigFiles(filepaths).then(getConfigsForFiles).then(function (configs) { + return parseFromConfigs(configs, resolvedFilePath, processedOptions); + })]; + }); + }); } -function Entry(k, v, i) { - this.key = k; - this.value = v; - this._index = i; -} +var parse_1$4 = parse$4; -function find(data, k) { - for (var i = 0, s = '_' + k, key = s; hasOwnProperty$3.call(data, key); key = s + i++) { - if (same(data[key].key, k)) return data[key]; +function parseSync(_filepath, _options) { + if (_options === void 0) { + _options = {}; } -} -function set(data, k, v) { - for (var i = 0, s = '_' + k, key = s; hasOwnProperty$3.call(data, key); key = s + i++) { - if (same(data[key].key, k)) { - data[key].value = v; - return; - } - } + var _a = opts(_filepath, _options), + resolvedFilePath = _a[0], + processedOptions = _a[1]; - data.size++; - data[key] = new Entry(k, v, key); + var filepaths = getConfigFileNames(resolvedFilePath, processedOptions); + var files = readConfigFilesSync(filepaths); + return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); } -var map = createCommonjsModule(function (module) { - if (process.env.npm_package_name === 'pseudomap' && process.env.npm_lifecycle_script === 'test') process.env.TEST_PSEUDOMAP = 'true'; - - if (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) { - module.exports = Map; - } else { - module.exports = pseudomap; - } +var parseSync_1 = parseSync; +var src$1 = /*#__PURE__*/Object.defineProperty({ + parseString: parseString, + parseFromFiles: parseFromFiles_1, + parseFromFilesSync: parseFromFilesSync_1, + parse: parse_1$4, + parseSync: parseSync_1 +}, '__esModule', { + value: true }); -var yallist = Yallist; -Yallist.Node = Node; -Yallist.create = Yallist; - -function Yallist(list) { - var self = this; +var editorconfigToPrettier = editorConfigToPrettier; - if (!(self instanceof Yallist)) { - self = new Yallist(); - } +function removeUnset(editorConfig) { + const result = {}; + const keys = Object.keys(editorConfig); - self.tail = null; - self.head = null; - self.length = 0; + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item); - }); - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]); + if (editorConfig[key] === "unset") { + continue; } + + result[key] = editorConfig[key]; } - return self; + return result; } -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list'); +function editorConfigToPrettier(editorConfig) { + if (!editorConfig) { + return null; } - var next = node.next; - var prev = node.prev; + editorConfig = removeUnset(editorConfig); - if (next) { - next.prev = prev; + if (Object.keys(editorConfig).length === 0) { + return null; } - if (prev) { - prev.next = next; - } + const result = {}; - if (node === this.head) { - this.head = next; + if (editorConfig.indent_style) { + result.useTabs = editorConfig.indent_style === "tab"; } - if (node === this.tail) { - this.tail = prev; + if (editorConfig.indent_size === "tab") { + result.useTabs = true; } - node.list.length--; - node.next = null; - node.prev = null; - node.list = null; -}; - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return; + if (result.useTabs && editorConfig.tab_width) { + result.tabWidth = editorConfig.tab_width; + } else if (editorConfig.indent_style === "space" && editorConfig.indent_size && editorConfig.indent_size !== "tab") { + result.tabWidth = editorConfig.indent_size; + } else if (editorConfig.tab_width !== undefined) { + result.tabWidth = editorConfig.tab_width; } - if (node.list) { - node.list.removeNode(node); + if (editorConfig.max_line_length && editorConfig.max_line_length !== "off") { + result.printWidth = editorConfig.max_line_length; } - var head = this.head; - node.list = this; - node.next = head; - - if (head) { - head.prev = node; + if (editorConfig.quote_type === "single") { + result.singleQuote = true; + } else if (editorConfig.quote_type === "double") { + result.singleQuote = false; } - this.head = node; + if (["cr", "crlf", "lf"].indexOf(editorConfig.end_of_line) !== -1) { + result.endOfLine = editorConfig.end_of_line; + } - if (!this.tail) { - this.tail = node; + if (editorConfig.insert_final_newline === false || editorConfig.insert_final_newline === true) { + result.insertFinalNewline = editorConfig.insert_final_newline; } - this.length++; -}; + return result; +} -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return; - } +// https://github.com/kirstein/find-project-root/blob/master/index.js - if (node.list) { - node.list.removeNode(node); - } - var tail = this.tail; - node.list = this; - node.prev = tail; +const MARKERS = [".git", ".hg"]; - if (tail) { - tail.next = node; - } +const markerExists = directory => MARKERS.some(mark => fs__default['default'].existsSync(path__default['default'].join(directory, mark))); - this.tail = node; +function findProjectRoot(directory) { + while (!markerExists(directory)) { + const parentDirectory = path__default['default'].resolve(directory, ".."); - if (!this.head) { - this.head = node; + if (parentDirectory === directory) { + break; + } + + directory = parentDirectory; } - this.length++; -}; + return directory; +} -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push$1(this, arguments[i]); - } +var findProjectRoot_1 = findProjectRoot; - return this.length; -}; +const jsonStringifyMem = fn => dist$1(fn, { + cacheKey: JSON.stringify +}); -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]); - } +const maybeParse = (filePath, parse) => filePath && parse(filePath, { + root: findProjectRoot_1(path__default['default'].dirname(path__default['default'].resolve(filePath))) +}); - return this.length; -}; +const editorconfigAsyncNoCache = async filePath => editorconfigToPrettier(await maybeParse(filePath, src$1.parse)); -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined; - } +const editorconfigAsyncWithCache = jsonStringifyMem(editorconfigAsyncNoCache); - var res = this.tail.value; - this.tail = this.tail.prev; +const editorconfigSyncNoCache = filePath => editorconfigToPrettier(maybeParse(filePath, src$1.parseSync)); - if (this.tail) { - this.tail.next = null; - } else { - this.head = null; - } +const editorconfigSyncWithCache = jsonStringifyMem(editorconfigSyncNoCache); - this.length--; - return res; -}; +function getLoadFunction(opts) { + if (!opts.editorconfig) { + return () => null; + } -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined; + if (opts.sync) { + return opts.cache ? editorconfigSyncWithCache : editorconfigSyncNoCache; } - var res = this.head.value; - this.head = this.head.next; + return opts.cache ? editorconfigAsyncWithCache : editorconfigAsyncNoCache; +} - if (this.head) { - this.head.prev = null; - } else { - this.tail = null; - } +function clearCache$2() { + dist$1.clear(editorconfigSyncWithCache); + dist$1.clear(editorconfigAsyncWithCache); +} - this.length--; - return res; +var resolveConfigEditorconfig = { + getLoadFunction, + clearCache: clearCache$2 }; -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this; +const _excluded$1 = ["overrides"]; - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this); - walker = walker.next; - } -}; +const getExplorerMemoized = dist$1(opts => { + const cosmiconfig = thirdParty["cosmiconfig" + (opts.sync ? "Sync" : "")]; + const explorer = cosmiconfig("prettier", { + cache: opts.cache, + transform: result => { + if (result && result.config) { + if (typeof result.config === "string") { + const dir = path__default['default'].dirname(result.filepath); + const modulePath = resolve_1(result.config, { + paths: [dir] + }); + result.config = require(modulePath); + } -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this; + if (typeof result.config !== "object") { + throw new Error("Config is only allowed to be an object, " + `but received ${typeof result.config} in "${result.filepath}"`); + } - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this); - walker = walker.prev; - } -}; + delete result.config.$schema; + } -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next; - } + return result; + }, + searchPlaces: ["package.json", ".prettierrc", ".prettierrc.json", ".prettierrc.yaml", ".prettierrc.yml", ".prettierrc.json5", ".prettierrc.js", ".prettierrc.cjs", "prettier.config.js", "prettier.config.cjs", ".prettierrc.toml"], + loaders: { + ".toml": loadToml, + ".json5": loadJson5 + } + }); + return explorer; +}, { + cacheKey: JSON.stringify +}); +/** @param {{ cache: boolean, sync: boolean }} opts */ - if (i === n && walker !== null) { - return walker.value; - } -}; +function getExplorer(opts) { + // Normalize opts before passing to a memoized function + opts = Object.assign({ + sync: false, + cache: false + }, opts); + return getExplorerMemoized(opts); +} -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev; - } +function _resolveConfig(filePath, opts, sync) { + opts = Object.assign({ + useCache: true + }, opts); + const loadOpts = { + cache: Boolean(opts.useCache), + sync: Boolean(sync), + editorconfig: Boolean(opts.editorconfig) + }; + const { + load, + search + } = getExplorer(loadOpts); + const loadEditorConfig = resolveConfigEditorconfig.getLoadFunction(loadOpts); + const arr = [opts.config ? load(opts.config) : search(filePath), loadEditorConfig(filePath)]; - if (i === n && walker !== null) { - return walker.value; - } -}; + const unwrapAndMerge = ([result, editorConfigured]) => { + const merged = Object.assign(Object.assign({}, editorConfigured), mergeOverrides(result, filePath)); -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this; - var res = new Yallist(); + for (const optionName of ["plugins", "pluginSearchDirs"]) { + if (Array.isArray(merged[optionName])) { + merged[optionName] = merged[optionName].map(value => typeof value === "string" && value.startsWith(".") // relative path + ? path__default['default'].resolve(path__default['default'].dirname(result.filepath), value) : value); + } + } - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)); - walker = walker.next; - } + if (!result && !editorConfigured) { + return null; + } // We are not using this option - return res; -}; -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this; - var res = new Yallist(); + delete merged.insertFinalNewline; + return merged; + }; - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)); - walker = walker.prev; + if (loadOpts.sync) { + return unwrapAndMerge(arr); } - return res; -}; + return Promise.all(arr).then(unwrapAndMerge); +} -Yallist.prototype.reduce = function (fn, initial) { - var acc; - var walker = this.head; +const resolveConfig = (filePath, opts) => _resolveConfig(filePath, opts, false); - if (arguments.length > 1) { - acc = initial; - } else if (this.head) { - walker = this.head.next; - acc = this.head.value; - } else { - throw new TypeError('Reduce of empty list with no initial value'); - } +resolveConfig.sync = (filePath, opts) => _resolveConfig(filePath, opts, true); - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i); - walker = walker.next; - } +function clearCache$1() { + dist$1.clear(getExplorerMemoized); + resolveConfigEditorconfig.clearCache(); +} - return acc; +async function resolveConfigFile(filePath) { + const { + search + } = getExplorer({ + sync: false + }); + const result = await search(filePath); + return result ? result.filepath : null; +} + +resolveConfigFile.sync = filePath => { + const { + search + } = getExplorer({ + sync: true + }); + const result = search(filePath); + return result ? result.filepath : null; }; -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc; - var walker = this.tail; +function mergeOverrides(configResult, filePath) { + const { + config, + filepath: configPath + } = configResult || {}; - if (arguments.length > 1) { - acc = initial; - } else if (this.tail) { - walker = this.tail.prev; - acc = this.tail.value; - } else { - throw new TypeError('Reduce of empty list with no initial value'); - } + const _ref = config || {}, + { + overrides + } = _ref, + options = _objectWithoutProperties(_ref, _excluded$1); - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i); - walker = walker.prev; + if (filePath && overrides) { + const relativeFilePath = path__default['default'].relative(path__default['default'].dirname(configPath), filePath); + + for (const override of overrides) { + if (pathMatchesGlobs(relativeFilePath, override.files, override.excludeFiles)) { + Object.assign(options, override.options); + } + } } - return acc; -}; + return options; +} // Based on eslint: https://github.com/eslint/eslint/blob/master/lib/config/config-ops.js -Yallist.prototype.toArray = function () { - var arr = new Array(this.length); - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value; - walker = walker.next; - } +function pathMatchesGlobs(filePath, patterns, excludedPatterns = []) { + const patternList = Array.isArray(patterns) ? patterns : [patterns]; + const excludedPatternList = Array.isArray(excludedPatterns) ? excludedPatterns : [excludedPatterns]; + const opts = { + matchBase: true, + dot: true + }; + return patternList.some(pattern => minimatch_1(filePath, pattern, opts)) && !excludedPatternList.some(excludedPattern => minimatch_1(filePath, excludedPattern, opts)); +} - return arr; +var resolveConfig_1 = { + resolveConfig, + resolveConfigFile, + clearCache: clearCache$1 }; -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length); +// A simple implementation of make-array +function make_array(subject) { + return Array.isArray(subject) ? subject : [subject]; +} - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value; - walker = walker.prev; - } +const REGEX_BLANK_LINE = /^\s+$/; +const REGEX_LEADING_EXCAPED_EXCLAMATION = /^\\!/; +const REGEX_LEADING_EXCAPED_HASH = /^\\#/; +const SLASH$1 = '/'; +const KEY_IGNORE$1 = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') +/* istanbul ignore next */ +: 'node-ignore'; - return arr; -}; +const define$1 = (object, key, value) => Object.defineProperty(object, key, { + value +}); -Yallist.prototype.slice = function (from, to) { - to = to || this.length; +const REGEX_REGEXP_RANGE$1 = /([0-z])-([0-z])/g; // Sanitize the range of a regular expression +// The cases are complicated, see test cases for details + +const sanitizeRange$1 = range => range.replace(REGEX_REGEXP_RANGE$1, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but +// fatal for JavaScript regular expression, so eliminate it. +: ''); // > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` +// '`foo/`' should not continue with the '`..`' + + +const DEFAULT_REPLACER_PREFIX = [// > Trailing spaces are ignored unless they are quoted with backslash ("\") +[// (a\ ) -> (a ) +// (a ) -> (a) +// (a \ ) -> (a ) +/\\?\s+$/, match => match.indexOf('\\') === 0 ? ' ' : ''], // replace (\ ) with ' ' +[/\\\s/g, () => ' '], // Escape metacharacters +// which is written down by users but means special for regular expressions. +// > There are 12 characters with special meanings: +// > - the backslash \, +// > - the caret ^, +// > - the dollar sign $, +// > - the period or dot ., +// > - the vertical bar or pipe symbol |, +// > - the question mark ?, +// > - the asterisk or star *, +// > - the plus sign +, +// > - the opening parenthesis (, +// > - the closing parenthesis ), +// > - and the opening square bracket [, +// > - the opening curly brace {, +// > These special characters are often called "metacharacters". +[/[\\^$.|*+(){]/g, match => `\\${match}`], [// > [abc] matches any character inside the brackets +// > (in this case a, b, or c); +/\[([^\]/]*)($|\])/g, (match, p1, p2) => p2 === ']' ? `[${sanitizeRange$1(p1)}]` : `\\${match}`], [// > a question mark (?) matches a single character +/(?!\\)\?/g, () => '[^/]'], // leading slash +[// > A leading slash matches the beginning of the pathname. +// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". +// A leading slash matches the beginning of the pathname +/^\//, () => '^'], // replace special metacharacter slash after the leading slash +[/\//g, () => '\\/'], [// > A leading "**" followed by a slash means match in all directories. +// > For example, "**/foo" matches file or directory "foo" anywhere, +// > the same as pattern "foo". +// > "**/foo/bar" matches file or directory "bar" anywhere that is directly +// > under directory "foo". +// Notice that the '*'s have been replaced as '\\*' +/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' +() => '^(?:.*\\/)?']]; +const DEFAULT_REPLACER_SUFFIX = [// starting +[// there will be no leading '/' +// (which has been replaced by section "leading slash") +// If starts with '**', adding a '^' to the regular expression also works +/^(?=[^^])/, function startingReplacer() { + return !/\/(?!$)/.test(this) // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^'; +}], // two globstars +[// Use lookahead assertions so that we could match more than one `'/**'` +/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories +// should not use '*', or it will be replaced by the next replacer +// Check if it is not the last `'/**'` +(match, index, str) => index + 6 < str.length // case: /**/ +// > A slash followed by two consecutive asterisks then a slash matches +// > zero or more directories. +// > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. +// '/**/' +? '(?:\\/[^\\/]+)*' // case: /** +// > A trailing `"/**"` matches everything inside. +// #21: everything inside but it should not include the current folder +: '\\/.+'], // intermediate wildcards +[// Never replace escaped '*' +// ignore rule '\*' will match the path '*' +// 'abc.*/' -> go +// 'abc.*' -> skip this rule +/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js' +// '*.js' doesn't match 'abc' +(match, p1) => `${p1}[^\\/]*`], // trailing wildcard +[/(\^|\\\/)?\\\*$/, (match, p1) => { + const prefix = p1 // '\^': + // '/*' does not match '' + // '/*' does not match everything + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*'; + return `${prefix}(?=$|\\/$)`; +}], [// unescape +/\\\\\\/g, () => '\\']]; +const POSITIVE_REPLACERS = [...DEFAULT_REPLACER_PREFIX, // 'f' +// matches +// - /f(end) +// - /f/ +// - (start)f(end) +// - (start)f/ +// doesn't match +// - oof +// - foo +// pseudo: +// -> (^|/)f(/|$) +// ending +[// 'js' will not match 'js.' +// 'ab' will not match 'abc' +/(?:[^*/])$/, // 'js*' will not match 'a.js' +// 'js/' will not match 'a.js' +// 'js' will match 'a.js' and 'a.js/' +match => `${match}(?=$|\\/)`], ...DEFAULT_REPLACER_SUFFIX]; +const NEGATIVE_REPLACERS = [...DEFAULT_REPLACER_PREFIX, // #24, #38 +// The MISSING rule of [gitignore docs](https://git-scm.com/docs/gitignore) +// A negative pattern without a trailing wildcard should not +// re-include the things inside that directory. +// eg: +// ['node_modules/*', '!node_modules'] +// should ignore `node_modules/a.js` +[/(?:[^*])$/, match => `${match}(?=$|\\/$)`], ...DEFAULT_REPLACER_SUFFIX]; // A simple cache, because an ignore rule only has only one certain meaning - if (to < 0) { - to += this.length; - } +const cache = Object.create(null); // @param {pattern} - from = from || 0; +const make_regex = (pattern, negative, ignorecase) => { + const r = cache[pattern]; - if (from < 0) { - from += this.length; + if (r) { + return r; } - var ret = new Yallist(); - - if (to < from || to < 0) { - return ret; - } + const replacers = negative ? NEGATIVE_REPLACERS : POSITIVE_REPLACERS; + const source = replacers.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); + return cache[pattern] = ignorecase ? new RegExp(source, 'i') : new RegExp(source); +}; // > A blank line matches no files, so it can serve as a separator for readability. - if (from < 0) { - from = 0; - } - if (to > this.length) { - to = this.length; - } +const checkPattern$1 = pattern => pattern && typeof pattern === 'string' && !REGEX_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment. +&& pattern.indexOf('#') !== 0; - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next; - } +const createRule$1 = (pattern, ignorecase) => { + const origin = pattern; + let negative = false; // > An optional prefix "!" which negates the pattern; - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value); + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); } - return ret; + pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_LEADING_EXCAPED_HASH, '#'); + const regex = make_regex(pattern, negative, ignorecase); + return { + origin, + pattern, + negative, + regex + }; }; -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length; - - if (to < 0) { - to += this.length; - } - - from = from || 0; - - if (from < 0) { - from += this.length; - } - - var ret = new Yallist(); - - if (to < from || to < 0) { - return ret; - } +class IgnoreBase { + constructor({ + ignorecase = true + } = {}) { + this._rules = []; + this._ignorecase = ignorecase; + define$1(this, KEY_IGNORE$1, true); - if (from < 0) { - from = 0; + this._initCache(); } - if (to > this.length) { - to = this.length; - } + _initCache() { + this._cache = Object.create(null); + } // @param {Array.|string|Ignore} pattern - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev; - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value); - } + add(pattern) { + this._added = false; - return ret; -}; + if (typeof pattern === 'string') { + pattern = pattern.split(/\r?\n/g); + } -Yallist.prototype.reverse = function () { - var head = this.head; - var tail = this.tail; + make_array(pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore, + // making the behavior changed. - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev; - walker.prev = walker.next; - walker.next = p; - } + if (this._added) { + this._initCache(); + } - this.head = tail; - this.tail = head; - return this; -}; + return this; + } // legacy -function push$1(self, item) { - self.tail = new Node(item, self.tail, null, self); - if (!self.head) { - self.head = self.tail; + addPattern(pattern) { + return this.add(pattern); } - self.length++; -} - -function unshift(self, item) { - self.head = new Node(item, null, self.head, self); - - if (!self.tail) { - self.tail = self.head; - } + _addPattern(pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE$1]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } - self.length++; -} + if (checkPattern$1(pattern)) { + const rule = createRule$1(pattern, this._ignorecase); + this._added = true; -function Node(value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list); + this._rules.push(rule); + } } - this.list = list; - this.value = value; - - if (prev) { - prev.next = this; - this.prev = prev; - } else { - this.prev = null; + filter(paths) { + return make_array(paths).filter(path => this._filter(path)); } - if (next) { - next.prev = this; - this.next = next; - } else { - this.next = null; + createFilter() { + return path => this._filter(path); } -} - -var lruCache = LRUCache; // This will be a proper iterable 'Map' in engines that support it, -// or a fakey-fake PseudoMap in older versions. -// A linked list to keep track of recently-used-ness -// use symbols if possible, otherwise just _props -var hasSymbol = typeof Symbol === 'function' && process.env._nodeLRUCacheForceNoSymbol !== '1'; -var makeSymbol; - -if (hasSymbol) { - makeSymbol = function (key) { - return Symbol(key); - }; -} else { - makeSymbol = function (key) { - return '_' + key; - }; -} - -var MAX = makeSymbol('max'); -var LENGTH = makeSymbol('length'); -var LENGTH_CALCULATOR = makeSymbol('lengthCalculator'); -var ALLOW_STALE = makeSymbol('allowStale'); -var MAX_AGE = makeSymbol('maxAge'); -var DISPOSE = makeSymbol('dispose'); -var NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet'); -var LRU_LIST = makeSymbol('lruList'); -var CACHE = makeSymbol('cache'); + ignores(path) { + return !this._filter(path); + } // @returns `Boolean` true if the `path` is NOT ignored -function naiveLength() { - return 1; -} // lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. + _filter(path, slices) { + if (!path) { + return false; + } -function LRUCache(options) { - if (!(this instanceof LRUCache)) { - return new LRUCache(options); - } + if (path in this._cache) { + return this._cache[path]; + } - if (typeof options === 'number') { - options = { - max: options - }; - } + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH$1); + } - if (!options) { - options = {}; - } + slices.pop(); + return this._cache[path] = slices.length // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + // If the path contains a parent directory, check the parent first + ? this._filter(slices.join(SLASH$1) + SLASH$1, slices) && this._test(path) // Or only test the path + : this._test(path); + } // @returns {Boolean} true if a file is NOT ignored - var max = this[MAX] = options.max; // Kind of weird to have a default max of Infinity, but oh well. - if (!max || !(typeof max === 'number') || max <= 0) { - this[MAX] = Infinity; - } + _test(path) { + // Explicitly define variable type by setting matched to `0` + let matched = 0; - var lc = options.length || naiveLength; + this._rules.forEach(rule => { + // if matched = true, then we only test negative rules + // if matched = false, then we test non-negative rules + if (!(matched ^ rule.negative)) { + matched = rule.negative ^ rule.regex.test(path); + } + }); - if (typeof lc !== 'function') { - lc = naiveLength; + return !matched; } - this[LENGTH_CALCULATOR] = lc; - this[ALLOW_STALE] = options.stale || false; - this[MAX_AGE] = options.maxAge || 0; - this[DISPOSE] = options.dispose; - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; - this.reset(); -} // resize the cache when the max changes. - - -Object.defineProperty(LRUCache.prototype, 'max', { - set: function (mL) { - if (!mL || !(typeof mL === 'number') || mL <= 0) { - mL = Infinity; - } - - this[MAX] = mL; - trim$2(this); - }, - get: function () { - return this[MAX]; - }, - enumerable: true -}); -Object.defineProperty(LRUCache.prototype, 'allowStale', { - set: function (allowStale) { - this[ALLOW_STALE] = !!allowStale; - }, - get: function () { - return this[ALLOW_STALE]; - }, - enumerable: true -}); -Object.defineProperty(LRUCache.prototype, 'maxAge', { - set: function (mA) { - if (!mA || !(typeof mA === 'number') || mA < 0) { - mA = 0; - } - - this[MAX_AGE] = mA; - trim$2(this); - }, - get: function () { - return this[MAX_AGE]; - }, - enumerable: true -}); // resize the cache when the lengthCalculator changes. - -Object.defineProperty(LRUCache.prototype, 'lengthCalculator', { - set: function (lC) { - if (typeof lC !== 'function') { - lC = naiveLength; - } +} // Windows +// -------------------------------------------------------------- - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC; - this[LENGTH] = 0; - this[LRU_LIST].forEach(function (hit) { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); - this[LENGTH] += hit.length; - }, this); - } +/* istanbul ignore if */ - trim$2(this); - }, - get: function () { - return this[LENGTH_CALCULATOR]; - }, - enumerable: true -}); -Object.defineProperty(LRUCache.prototype, 'length', { - get: function () { - return this[LENGTH]; - }, - enumerable: true -}); -Object.defineProperty(LRUCache.prototype, 'itemCount', { - get: function () { - return this[LRU_LIST].length; - }, - enumerable: true -}); -LRUCache.prototype.rforEach = function (fn, thisp) { - thisp = thisp || this; +if ( // Detect `process` so that it can run in browsers. +typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { + const filter = IgnoreBase.prototype._filter; + /* eslint no-control-regex: "off" */ - for (var walker = this[LRU_LIST].tail; walker !== null;) { - var prev = walker.prev; - forEachStep(this, fn, walker, thisp); - walker = prev; - } -}; + const make_posix = str => /^\\\\\?\\/.test(str) || /[^\x00-\x80]+/.test(str) ? str : str.replace(/\\/g, '/'); -function forEachStep(self, fn, node, thisp) { - var hit = node.value; + IgnoreBase.prototype._filter = function filterWin32(path, slices) { + path = make_posix(path); + return filter.call(this, path, slices); + }; +} - if (isStale(self, hit)) { - del(self, node); +var ignore$1 = options => new IgnoreBase(options); - if (!self[ALLOW_STALE]) { - hit = undefined; - } - } +const fsAsync = fs__default['default'].promises; +/** + * @param {string} filename + * @returns {Promise} + */ - if (hit) { - fn.call(thisp, hit.value, hit.key, self); +async function getFileContentOrNull(filename) { + try { + return await fsAsync.readFile(filename, "utf8"); + } catch (error) { + return handleError(filename, error); } } +/** + * @param {string} filename + * @returns {null | string} + */ -LRUCache.prototype.forEach = function (fn, thisp) { - thisp = thisp || this; - for (var walker = this[LRU_LIST].head; walker !== null;) { - var next = walker.next; - forEachStep(this, fn, walker, thisp); - walker = next; +getFileContentOrNull.sync = function (filename) { + try { + return fs__default['default'].readFileSync(filename, "utf8"); + } catch (error) { + return handleError(filename, error); } }; -LRUCache.prototype.keys = function () { - return this[LRU_LIST].toArray().map(function (k) { - return k.key; - }, this); -}; - -LRUCache.prototype.values = function () { - return this[LRU_LIST].toArray().map(function (k) { - return k.value; - }, this); -}; - -LRUCache.prototype.reset = function () { - if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { - this[LRU_LIST].forEach(function (hit) { - this[DISPOSE](hit.key, hit.value); - }, this); +function handleError(filename, error) { + if (error && error.code === "ENOENT") { + return null; } - this[CACHE] = new map(); // hash of items by key - - this[LRU_LIST] = new yallist(); // list of items in order of use recency - - this[LENGTH] = 0; // length of items in the list -}; - -LRUCache.prototype.dump = function () { - return this[LRU_LIST].map(function (hit) { - if (!isStale(this, hit)) { - return { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }; - } - }, this).toArray().filter(function (h) { - return h; - }); -}; - -LRUCache.prototype.dumpLru = function () { - return this[LRU_LIST]; -}; -/* istanbul ignore next */ - - -LRUCache.prototype.inspect = function (n, opts) { - var str = 'LRUCache {'; - var extras = false; - var as = this[ALLOW_STALE]; - - if (as) { - str += '\n allowStale: true'; - extras = true; - } + throw new Error(`Unable to read ${filename}: ${error.message}`); +} - var max = this[MAX]; +var getFileContentOrNull_1 = getFileContentOrNull; - if (max && max !== Infinity) { - if (extras) { - str += ','; - } +/** + * @param {string?} ignorePath + * @param {boolean?} withNodeModules + */ - str += '\n max: ' + util__default['default'].inspect(max, opts); - extras = true; - } - var maxAge = this[MAX_AGE]; +async function createIgnorer(ignorePath, withNodeModules) { + const ignoreContent = ignorePath ? await getFileContentOrNull_1(path__default['default'].resolve(ignorePath)) : null; + return _createIgnorer(ignoreContent, withNodeModules); +} +/** + * @param {string?} ignorePath + * @param {boolean?} withNodeModules + */ - if (maxAge) { - if (extras) { - str += ','; - } - str += '\n maxAge: ' + util__default['default'].inspect(maxAge, opts); - extras = true; - } +createIgnorer.sync = function (ignorePath, withNodeModules) { + const ignoreContent = !ignorePath ? null : getFileContentOrNull_1.sync(path__default['default'].resolve(ignorePath)); + return _createIgnorer(ignoreContent, withNodeModules); +}; +/** + * @param {null | string} ignoreContent + * @param {boolean?} withNodeModules + */ - var lc = this[LENGTH_CALCULATOR]; - if (lc && lc !== naiveLength) { - if (extras) { - str += ','; - } +function _createIgnorer(ignoreContent, withNodeModules) { + const ignorer = ignore$1().add(ignoreContent || ""); - str += '\n length: ' + util__default['default'].inspect(this[LENGTH], opts); - extras = true; + if (!withNodeModules) { + ignorer.add("node_modules"); } - var didFirst = false; - this[LRU_LIST].forEach(function (item) { - if (didFirst) { - str += ',\n '; - } else { - if (extras) { - str += ',\n'; - } + return ignorer; +} - didFirst = true; - str += '\n '; - } +var createIgnorer_1 = createIgnorer; - var key = util__default['default'].inspect(item.key).split('\n').join('\n '); - var val = { - value: item.value - }; +/** + * @typedef {{ ignorePath?: string, withNodeModules?: boolean, plugins: object }} FileInfoOptions + * @typedef {{ ignored: boolean, inferredParser: string | null }} FileInfoResult + */ - if (item.maxAge !== maxAge) { - val.maxAge = item.maxAge; - } +/** + * @param {string} filePath + * @param {FileInfoOptions} opts + * @returns {Promise} + * + * Please note that prettier.getFileInfo() expects opts.plugins to be an array of paths, + * not an object. A transformation from this array to an object is automatically done + * internally by the method wrapper. See withPlugins() in index.js. + */ - if (lc !== naiveLength) { - val.length = item.length; - } - if (isStale(this, item)) { - val.stale = true; - } +async function getFileInfo(filePath, opts) { + if (typeof filePath !== "string") { + throw new TypeError(`expect \`filePath\` to be a string, got \`${typeof filePath}\``); + } - val = util__default['default'].inspect(val, opts).split('\n').join('\n '); - str += key + ' => ' + val; + const ignorer = await createIgnorer_1(opts.ignorePath, opts.withNodeModules); + return _getFileInfo({ + ignorer, + filePath, + plugins: opts.plugins, + resolveConfig: opts.resolveConfig, + ignorePath: opts.ignorePath, + sync: false }); +} +/** + * @param {string} filePath + * @param {FileInfoOptions} opts + * @returns {FileInfoResult} + */ - if (didFirst || extras) { - str += '\n'; + +getFileInfo.sync = function (filePath, opts) { + if (typeof filePath !== "string") { + throw new TypeError(`expect \`filePath\` to be a string, got \`${typeof filePath}\``); } - str += '}'; - return str; + const ignorer = createIgnorer_1.sync(opts.ignorePath, opts.withNodeModules); + return _getFileInfo({ + ignorer, + filePath, + plugins: opts.plugins, + resolveConfig: opts.resolveConfig, + ignorePath: opts.ignorePath, + sync: true + }); }; -LRUCache.prototype.set = function (key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE]; - var now = maxAge ? Date.now() : 0; - var len = this[LENGTH_CALCULATOR](value, key); +function getFileParser(resolvedConfig, filePath, plugins) { + if (resolvedConfig && resolvedConfig.parser) { + return resolvedConfig.parser; + } - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)); - return false; - } + const inferredParser = options$6.inferParser(filePath, plugins); - var node = this[CACHE].get(key); - var item = node.value; // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking + if (inferredParser) { + return inferredParser; + } - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) { - this[DISPOSE](key, item.value); - } - } + return null; +} - item.now = now; - item.maxAge = maxAge; - item.value = value; - this[LENGTH] += len - item.length; - item.length = len; - this.get(key); - trim$2(this); - return true; +function _getFileInfo({ + ignorer, + filePath, + plugins, + resolveConfig = false, + ignorePath, + sync = false +}) { + const normalizedFilePath = normalizeFilePath(filePath, ignorePath); + const fileInfo = { + ignored: ignorer.ignores(normalizedFilePath), + inferredParser: null + }; + + if (fileInfo.ignored) { + return fileInfo; } - var hit = new Entry$1(key, value, len, now, maxAge); // oversized objects fall out of cache automatically. + let resolvedConfig; - if (hit.length > this[MAX]) { - if (this[DISPOSE]) { - this[DISPOSE](key, value); + if (resolveConfig) { + if (sync) { + resolvedConfig = resolveConfig_1.resolveConfig.sync(filePath); + } else { + return resolveConfig_1.resolveConfig(filePath).then(resolvedConfig => { + fileInfo.inferredParser = getFileParser(resolvedConfig, filePath, plugins); + return fileInfo; + }); } - - return false; } - this[LENGTH] += hit.length; - this[LRU_LIST].unshift(hit); - this[CACHE].set(key, this[LRU_LIST].head); - trim$2(this); - return true; -}; - -LRUCache.prototype.has = function (key) { - if (!this[CACHE].has(key)) return false; - var hit = this[CACHE].get(key).value; + fileInfo.inferredParser = getFileParser(resolvedConfig, filePath, plugins); + return fileInfo; +} - if (isStale(this, hit)) { - return false; - } +function normalizeFilePath(filePath, ignorePath) { + return ignorePath ? path__default['default'].relative(path__default['default'].dirname(ignorePath), filePath) : filePath; +} - return true; -}; +var getFileInfo_1 = getFileInfo; -LRUCache.prototype.get = function (key) { - return get(this, key, true); +const { + getMaxContinuousCount: getMaxContinuousCount$2, + getStringWidth: getStringWidth$3, + getAlignmentSize, + getIndentSize: getIndentSize$1, + skip, + skipWhitespace: skipWhitespace$1, + skipSpaces, + skipNewline, + skipToLineEnd, + skipEverythingButNewLine: skipEverythingButNewLine$1, + skipInlineComment, + skipTrailingComment, + hasNewline: hasNewline$8, + hasNewlineInRange: hasNewlineInRange$4, + hasSpaces, + isNextLineEmpty: isNextLineEmpty$d, + isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$2, + isPreviousLineEmpty: isPreviousLineEmpty$1, + getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$3, + makeString, + addLeadingComment: addLeadingComment$1, + addDanglingComment: addDanglingComment$1, + addTrailingComment: addTrailingComment$1 +} = util$5; +var utilShared = { + getMaxContinuousCount: getMaxContinuousCount$2, + getStringWidth: getStringWidth$3, + getAlignmentSize, + getIndentSize: getIndentSize$1, + skip, + skipWhitespace: skipWhitespace$1, + skipSpaces, + skipNewline, + skipToLineEnd, + skipEverythingButNewLine: skipEverythingButNewLine$1, + skipInlineComment, + skipTrailingComment, + hasNewline: hasNewline$8, + hasNewlineInRange: hasNewlineInRange$4, + hasSpaces, + isNextLineEmpty: isNextLineEmpty$d, + isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$2, + isPreviousLineEmpty: isPreviousLineEmpty$1, + getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$3, + makeString, + addLeadingComment: addLeadingComment$1, + addDanglingComment: addDanglingComment$1, + addTrailingComment: addTrailingComment$1 }; -LRUCache.prototype.peek = function (key) { - return get(this, key, false); -}; +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} -LRUCache.prototype.pop = function () { - var node = this[LRU_LIST].tail; - if (!node) return null; - del(this, node); - return node.value; -}; +var _listCacheClear = listCacheClear; -LRUCache.prototype.del = function (key) { - del(this, this[CACHE].get(key)); -}; +/** + * 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; +} -LRUCache.prototype.load = function (arr) { - // reset the cache - this.reset(); - var now = Date.now(); // A previous serialized cache has the most recent items first +var eq_1 = eq; - for (var l = arr.length - 1; l >= 0; l--) { - var hit = arr[l]; - var expiresAt = hit.e || 0; +/** + * 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`. + */ - if (expiresAt === 0) { - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v); - } else { - var maxAge = expiresAt - now; // dont add already expired items +function assocIndexOf(array, key) { + var length = array.length; - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge); - } + while (length--) { + if (eq_1(array[length][0], key)) { + return length; } } -}; -LRUCache.prototype.prune = function () { - var self = this; - this[CACHE].forEach(function (value, key) { - get(self, key, false); - }); -}; + return -1; +} -function get(self, key, doUse) { - var node = self[CACHE].get(key); +var _assocIndexOf = assocIndexOf; - if (node) { - var hit = node.value; +/** Used for built-in method references. */ - if (isStale(self, hit)) { - del(self, node); - if (!self[ALLOW_STALE]) hit = undefined; - } else { - if (doUse) { - self[LRU_LIST].unshiftNode(node); - } - } +var arrayProto = Array.prototype; +/** Built-in value references. */ - if (hit) hit = hit.value; - } +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`. + */ - return hit; -} +function listCacheDelete(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); -function isStale(self, hit) { - if (!hit || !hit.maxAge && !self[MAX_AGE]) { + if (index < 0) { return false; } - var stale = false; - var diff = Date.now() - hit.now; + var lastIndex = data.length - 1; - if (hit.maxAge) { - stale = diff > hit.maxAge; + if (index == lastIndex) { + data.pop(); } else { - stale = self[MAX_AGE] && diff > self[MAX_AGE]; + splice.call(data, index, 1); } - return stale; + --this.size; + return true; } -function trim$2(self) { - if (self[LENGTH] > self[MAX]) { - for (var walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - var prev = walker.prev; - del(self, walker); - walker = prev; - } - } -} +var _listCacheDelete = listCacheDelete; -function del(self, node) { - if (node) { - var hit = node.value; +/** + * 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. + */ - if (self[DISPOSE]) { - self[DISPOSE](hit.key, hit.value); - } +function listCacheGet(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); + return index < 0 ? undefined : data[index][1]; +} - self[LENGTH] -= hit.length; - self[CACHE].delete(hit.key); - self[LRU_LIST].removeNode(node); - } -} // classy, since V8 prefers predictable objects. +var _listCacheGet = listCacheGet; +/** + * 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 Entry$1(key, value, length, now, maxAge) { - this.key = key; - this.value = value; - this.length = length; - this.now = now; - this.maxAge = maxAge || 0; +function listCacheHas(key) { + return _assocIndexOf(this.__data__, key) > -1; } -var sigmund_1 = sigmund; - -function sigmund(subject, maxSessions) { - maxSessions = maxSessions || 10; - var notes = []; - var analysis = ''; - var RE = RegExp; - - function psychoAnalyze(subject, session) { - if (session > maxSessions) return; +var _listCacheHas = listCacheHas; - if (typeof subject === 'function' || typeof subject === 'undefined') { - return; - } +/** + * 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. + */ - if (typeof subject !== 'object' || !subject || subject instanceof RE) { - analysis += subject; - return; - } +function listCacheSet(key, value) { + var data = this.__data__, + index = _assocIndexOf(data, key); - if (notes.indexOf(subject) !== -1 || session === maxSessions) return; - notes.push(subject); - analysis += '{'; - Object.keys(subject).forEach(function (issue, _, __) { - // pseudo-private values. skip those. - if (issue.charAt(0) === '_') return; - var to = typeof subject[issue]; - if (to === 'function' || to === 'undefined') return; - analysis += issue; - psychoAnalyze(subject[issue], session + 1); - }); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; } - psychoAnalyze(subject, 0); - return analysis; -} // vim: set softtabstop=4 shiftwidth=4: - -var fnmatch = createCommonjsModule(function (module, exports) { - // Based on minimatch.js by isaacs - var platform = typeof process === "object" ? process.platform : "win32"; - if (module) module.exports = minimatch;else exports.minimatch = minimatch; - minimatch.Minimatch = Minimatch; - var cache = minimatch.cache = new lruCache({ - max: 100 - }), - GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}; - var qmark = "[^/]" // * => any number of characters - , - star = qmark + "*?" // ** when dots are allowed. Anything goes, except .. and . - // not (^ or / followed by one or two dots followed by $ or /), - // followed by anything, any number of times. - , - twoStarDot = "(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?" // not a ^ or / followed by a dot, - // followed by anything, any number of times. - , - twoStarNoDot = "(?:(?!(?:\\\/|^)\\.).)*?" // characters that need to be escaped in RegExp. - , - reSpecials = charSet("().*{}+?[]^$\\!"); // "abc" -> { a:true, b:true, c:true } - - function charSet(s) { - return s.split("").reduce(function (set, c) { - set[c] = true; - return set; - }, {}); - } // normalizes slashes. - - - var slashSplit = /\/+/; - minimatch.monkeyPatch = monkeyPatch; - - function monkeyPatch() { - var desc = Object.getOwnPropertyDescriptor(String.prototype, "match"); - var orig = desc.value; - - desc.value = function (p) { - if (p instanceof Minimatch) return p.match(this); - return orig.call(this, p); - }; + return this; +} - Object.defineProperty(String.prototype, desc); - } +var _listCacheSet = listCacheSet; - minimatch.filter = filter; +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - function filter(pattern, options) { - options = options || {}; - return function (p, i, list) { - return minimatch(p, pattern, options); - }; - } +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); - function ext(a, b) { - a = a || {}; - b = b || {}; - var t = {}; - Object.keys(b).forEach(function (k) { - t[k] = b[k]; - }); - Object.keys(a).forEach(function (k) { - t[k] = a[k]; - }); - return t; + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); } +} // Add methods to `ListCache`. - minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch; - var orig = minimatch; - - var m = function minimatch(p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)); - }; - m.Minimatch = function Minimatch(pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)); - }; +ListCache.prototype.clear = _listCacheClear; +ListCache.prototype['delete'] = _listCacheDelete; +ListCache.prototype.get = _listCacheGet; +ListCache.prototype.has = _listCacheHas; +ListCache.prototype.set = _listCacheSet; +var _ListCache = ListCache; - return m; - }; +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ - Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch; - return minimatch.defaults(def).Minimatch; - }; +function stackClear() { + this.__data__ = new _ListCache(); + this.size = 0; +} - function minimatch(p, pattern, options) { - if (typeof pattern !== "string") { - throw new TypeError("glob pattern string required"); - } +var _stackClear = stackClear; - if (!options) options = {}; // shortcut: comments match nothing. +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + this.size = data.size; + return result; +} - if (!options.nocomment && pattern.charAt(0) === "#") { - return false; - } // "" only matches "" +var _stackDelete = stackDelete; +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} - if (pattern.trim() === "") return p === ""; - return new Minimatch(pattern, options).match(p); - } +var _stackGet = stackGet; - function Minimatch(pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options, cache); - } +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} - if (typeof pattern !== "string") { - throw new TypeError("glob pattern string required"); - } +var _stackHas = stackHas; - if (!options) options = {}; // windows: need to use /, not \ - // On other platforms, \ is a valid (albeit bad) filename char. +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; +var _freeGlobal = freeGlobal; - if (platform === "win32") { - pattern = pattern.split("\\").join("/"); - } // lru storage. - // these things aren't particularly big, but walking down the string - // and turning it into a regexp can get pretty costly. +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; +/** Used as a reference to the global object. */ - var cacheKey = pattern + "\n" + sigmund_1(options); - var cached = minimatch.cache.get(cacheKey); - if (cached) return cached; - minimatch.cache.set(cacheKey, this); - this.options = options; - this.set = []; - this.pattern = pattern; - this.regexp = null; - this.negate = false; - this.comment = false; - this.empty = false; // make the set of regexps etc. +var root = _freeGlobal || freeSelf || Function('return this')(); +var _root = root; - this.make(); - } +/** Built-in value references. */ - Minimatch.prototype.make = make; +var Symbol$1 = _root.Symbol; +var _Symbol = Symbol$1; - function make() { - // don't do it more than once. - if (this._made) return; - var pattern = this.pattern; - var options = this.options; // empty patterns and comments match nothing. +/** Used for built-in method references. */ - if (!options.nocomment && pattern.charAt(0) === "#") { - this.comment = true; - return; - } +var objectProto$b = Object.prototype; +/** Used to check objects for own properties. */ - if (!pattern) { - this.empty = true; - return; - } // step 1: figure out negation, etc. +var hasOwnProperty$8 = objectProto$b.hasOwnProperty; +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString$1 = objectProto$b.toString; +/** Built-in value references. */ - this.parseNegate(); // step 2: expand braces +var symToStringTag$1 = _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`. + */ - var set = this.globSet = this.braceExpand(); - if (options.debug) console.error(this.pattern, set); // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters +function getRawTag(value) { + var isOwn = hasOwnProperty$8.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; - set = this.globParts = set.map(function (s) { - return s.split(slashSplit); - }); - if (options.debug) console.error(this.pattern, set); // glob --> regexps + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} - set = set.map(function (s, si, set) { - return s.map(this.parse, this); - }, this); - if (options.debug) console.error(this.pattern, set); // filter out everything that didn't compile properly. + var result = nativeObjectToString$1.call(value); - set = set.filter(function (s) { - return -1 === s.indexOf(false); - }); - if (options.debug) console.error(this.pattern, set); - this.set = set; + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } } - Minimatch.prototype.parseNegate = parseNegate; + return result; +} - function parseNegate() { - var pattern = this.pattern, - negate = false, - options = this.options, - negateOffset = 0; - if (options.nonegate) return; +var _getRawTag = getRawTag; - for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) { - negate = !negate; - negateOffset++; - } +/** Used for built-in method references. */ +var objectProto$a = Object.prototype; +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ - if (negateOffset) this.pattern = pattern.substr(negateOffset); - this.negate = negate; - } // Brace expansion: - // a{b,c}d -> abd acd - // a{b,}c -> abc ac - // a{0..3}d -> a0d a1d a2d a3d - // a{b,c{d,e}f}g -> abg acdfg acefg - // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg - // - // Invalid sets are not expanded. - // a{2..}b -> a{2..}b - // a{b}c -> a{b}c +var nativeObjectToString = objectProto$a.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); +} - minimatch.braceExpand = function (pattern, options) { - return new Minimatch(pattern, options).braceExpand(); - }; +var _objectToString = objectToString; - Minimatch.prototype.braceExpand = braceExpand; +/** `Object#toString` result references. */ - function braceExpand(pattern, options) { - options = options || this.options; - pattern = typeof pattern === "undefined" ? this.pattern : pattern; +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; +/** Built-in value references. */ - if (typeof pattern === "undefined") { - throw new Error("undefined pattern"); - } +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`. + */ - if (options.nobrace || !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern]; - } +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } - var escaping = false; // examples and comments refer to this crazy pattern: - // a{b,c{d,e},{f,g}h}x{y,z} - // expected: - // abxy - // abxz - // acdxy - // acdxz - // acexy - // acexz - // afhxy - // afhxz - // aghxy - // aghxz - // everything before the first \{ is just a prefix. - // So, we pluck that off, and work with the rest, - // and then prepend it to everything we find. + return symToStringTag && symToStringTag in Object(value) ? _getRawTag(value) : _objectToString(value); +} - if (pattern.charAt(0) !== "{") { - // console.error(pattern) - var prefix = null; +var _baseGetTag = baseGetTag; - for (var i = 0, l = pattern.length; i < l; i++) { - var c = pattern.charAt(i); // console.error(i, c) +/** + * 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$2(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} - if (c === "\\") { - escaping = !escaping; - } else if (c === "{" && !escaping) { - prefix = pattern.substr(0, i); - break; - } - } // actually no sets, all { were escaped. +var isObject_1 = isObject$2; +/** `Object#toString` result references. */ - if (prefix === null) { - // console.error("no sets") - return [pattern]; - } +var asyncTag = '[object AsyncFunction]', + funcTag$1 = '[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 + */ - var tail = braceExpand(pattern.substr(i), options); - return tail.map(function (t) { - return prefix + t; - }); - } // now we have something like: - // {b,c{d,e},{f,g}h}x{y,z} - // walk through the set, expanding each part, until - // the set ends. then, we'll expand the suffix. - // If the set only has a single member, then'll put the {} back - // first, handle numeric sets, since they're easier +function isFunction(value) { + if (!isObject_1(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 numset = pattern.match(/^\{(-?[0-9]+)\.\.(-?[0-9]+)\}/); + var tag = _baseGetTag(value); + return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag; +} - if (numset) { - // console.error("numset", numset[1], numset[2]) - var suf = braceExpand(pattern.substr(numset[0].length), options), - start = +numset[1], - end = +numset[2], - inc = start > end ? -1 : 1, - set = []; +var isFunction_1 = isFunction; - for (var i = start; i != end + inc; i += inc) { - // append all the suffixes - for (var ii = 0, ll = suf.length; ii < ll; ii++) { - set.push(i + suf[ii]); - } - } +/** Used to detect overreaching core-js shims. */ - return set; - } // ok, walk through the set - // We hope, somewhat optimistically, that there - // will be a } at the end. - // If the closing brace isn't found, then the pattern is - // interpreted as braceExpand("\\" + pattern) so that - // the leading \{ will be interpreted literally. +var coreJsData = _root['__core-js_shared__']; +var _coreJsData = coreJsData; +/** Used to detect methods masquerading as native. */ - var i = 1 // skip the \{ - , - depth = 1, - set = [], - member = "", - escaping = false; +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 addMember() { - set.push(member); - member = ""; - } // console.error("Entering for") +function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; +} - FOR: for (i = 1, l = pattern.length; i < l; i++) { - var c = pattern.charAt(i); // console.error("", i, c) +var _isMasked = isMasked; - if (escaping) { - escaping = false; - member += "\\" + c; - } else { - switch (c) { - case "\\": - escaping = true; - continue; +/** Used for built-in method references. */ +var funcProto$1 = Function.prototype; +/** Used to resolve the decompiled source of functions. */ - case "{": - depth++; - member += "{"; - continue; +var funcToString$1 = funcProto$1.toString; +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ - case "}": - depth--; // if this closes the actual set, then we're done +function toSource(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) {} - if (depth === 0) { - addMember(); // pluck off the close-brace + try { + return func + ''; + } catch (e) {} + } - i++; - break FOR; - } else { - member += c; - continue; - } + return ''; +} - case ",": - if (depth === 1) { - addMember(); - } else { - member += c; - } +var _toSource = toSource; - continue; +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ - default: - member += c; - continue; - } // switch +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +/** Used to detect host constructors (Safari). */ - } // else +var reIsHostCtor = /^\[object .+?Constructor\]$/; +/** Used for built-in method references. */ - } // for - // now we've either finished the set, and the suffix is - // pattern.substr(i), or we have *not* closed the set, - // and need to escape the leading brace +var funcProto = Function.prototype, + objectProto$9 = Object.prototype; +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; +/** Used to check objects for own properties. */ - if (depth !== 0) { - // console.error("didn't close", pattern) - return braceExpand("\\" + pattern, options); - } // x{y,z} -> ["xy", "xz"] - // console.error("set", set) - // console.error("suffix", pattern.substr(i)) +var hasOwnProperty$7 = objectProto$9.hasOwnProperty; +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty$7).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`. + */ - var suf = braceExpand(pattern.substr(i), options); // ["b", "c{d,e}","{f,g}h"] -> - // [["b"], ["cd", "ce"], ["fh", "gh"]] +function baseIsNative(value) { + if (!isObject_1(value) || _isMasked(value)) { + return false; + } - var addBraces = set.length === 1; // console.error("set pre-expanded", set) + var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; + return pattern.test(_toSource(value)); +} - set = set.map(function (p) { - return braceExpand(p, options); - }); // console.error("set expanded", set) - // [["b"], ["cd", "ce"], ["fh", "gh"]] -> - // ["b", "cd", "ce", "fh", "gh"] +var _baseIsNative = baseIsNative; - set = set.reduce(function (l, r) { - return l.concat(r); - }); +/** + * 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]; +} - if (addBraces) { - set = set.map(function (s) { - return "{" + s + "}"; - }); - } // now attach the suffixes. +var _getValue = getValue; +/** + * 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`. + */ - var ret = []; +function getNative(object, key) { + var value = _getValue(object, key); + return _baseIsNative(value) ? value : undefined; +} - for (var i = 0, l = set.length; i < l; i++) { - for (var ii = 0, ll = suf.length; ii < ll; ii++) { - ret.push(set[i] + suf[ii]); - } - } +var _getNative = getNative; - return ret; - } // parse a component of the expanded set. - // At this point, no pattern may contain "/" in it - // so we're going to return a 2d array, where each entry is the full - // pattern, split on '/', and then turned into a regular expression. - // A regexp is made at the end which joins each array with an - // escaped /, and another full one which joins each regexp with |. - // - // Following the lead of Bash 4.1, note that "**" only has special meaning - // when it is the *only* thing in a path portion. Otherwise, any series - // of * is equivalent to a single *. Globstar behavior is enabled by - // default, and can be disabled by setting options.noglobstar. +/* Built-in method references that are verified to be native. */ +var Map$1 = _getNative(_root, 'Map'); +var _Map = Map$1; - Minimatch.prototype.parse = parse; - var SUBPARSE = {}; +/* Built-in method references that are verified to be native. */ - function parse(pattern, isSub) { - var options = this.options; // shortcuts +var nativeCreate = _getNative(Object, 'create'); +var _nativeCreate = nativeCreate; - if (!options.noglobstar && pattern === "**") return GLOBSTAR; - if (pattern === "") return ""; - var re = "", - hasMagic = !!options.nocase, - escaping = false // ? => one single character - , - patternListStack = [], - plType, - stateChar, - inClass = false, - reClassStart = -1, - classStart = -1 // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - , - patternStart = pattern.charAt(0) === "." ? "" // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? "(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))" : "(?!\\.)"; +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ - function clearStateChar() { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case "*": - re += star; - hasMagic = true; - break; +function hashClear() { + this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; + this.size = 0; +} - case "?": - re += qmark; - hasMagic = true; - break; +var _hashClear = hashClear; - default: - re += "\\" + stateChar; - break; - } +/** + * 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; +} - stateChar = false; - } - } +var _hashDelete = hashDelete; - for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { - if (options.debug) { - console.error("%s\t%s %s %j", pattern, i, re, c); - } // skip over any that are escaped. +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; +/** Used for built-in method references. */ - if (escaping && reSpecials[c]) { - re += "\\" + c; - escaping = false; - continue; - } +var objectProto$8 = Object.prototype; +/** Used to check objects for own properties. */ - switch (c) { - case "/": - // completely not allowed, even escaped. - // Should already be path-split by now. - return false; +var hasOwnProperty$6 = objectProto$8.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. + */ - case "\\": - clearStateChar(); - escaping = true; - continue; - // the various stateChar values - // for the "extglob" stuff. +function hashGet(key) { + var data = this.__data__; - case "?": - case "*": - case "+": - case "@": - case "!": - if (options.debug) { - console.error("%s\t%s %s %j <-- stateChar", pattern, i, re, c); - } // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp + if (_nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? undefined : result; + } + return hasOwnProperty$6.call(data, key) ? data[key] : undefined; +} - if (inClass) { - if (c === "!" && i === classStart + 1) c = "^"; - re += c; - continue; - } // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. +var _hashGet = hashGet; +/** Used for built-in method references. */ - clearStateChar(); - stateChar = c; // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. +var objectProto$7 = Object.prototype; +/** Used to check objects for own properties. */ - if (options.noext) clearStateChar(); - continue; +var hasOwnProperty$5 = objectProto$7.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`. + */ - case "(": - if (inClass) { - re += "("; - continue; - } +function hashHas(key) { + var data = this.__data__; + return _nativeCreate ? data[key] !== undefined : hasOwnProperty$5.call(data, key); +} - if (!stateChar) { - re += "\\("; - continue; - } +var _hashHas = hashHas; - plType = stateChar; - patternListStack.push({ - type: plType, - start: i - 1, - reStart: re.length - }); // negation is (?:(?!js)[^/]*) +/** Used to stand-in for `undefined` hash values. */ - re += stateChar === "!" ? "(?:(?!" : "(?:"; - stateChar = false; - continue; +var HASH_UNDEFINED$1 = '__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. + */ - case ")": - if (inClass || !patternListStack.length) { - re += "\\)"; - continue; - } +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = _nativeCreate && value === undefined ? HASH_UNDEFINED$1 : value; + return this; +} - hasMagic = true; - re += ")"; - plType = patternListStack.pop().type; // negation is (?:(?!js)[^/]*) - // The others are (?:) +var _hashSet = hashSet; - switch (plType) { - case "!": - re += "[^/]*?)"; - break; +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - case "?": - case "+": - case "*": - re += plType; - // the default anyway - } +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + this.clear(); - continue; + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} // Add methods to `Hash`. - case "|": - if (inClass || !patternListStack.length || escaping) { - re += "\\|"; - escaping = false; - continue; - } - re += "|"; - continue; - // these are mostly the same in regexp and glob +Hash.prototype.clear = _hashClear; +Hash.prototype['delete'] = _hashDelete; +Hash.prototype.get = _hashGet; +Hash.prototype.has = _hashHas; +Hash.prototype.set = _hashSet; +var _Hash = Hash; - case "[": - // swallow any state-tracking char before the [ - clearStateChar(); +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ - if (inClass) { - re += "\\" + c; - continue; - } +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new _Hash(), + 'map': new (_Map || _ListCache)(), + 'string': new _Hash() + }; +} - inClass = true; - classStart = i; - reClassStart = re.length; - re += c; - continue; +var _mapCacheClear = mapCacheClear; - case "]": - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += "\\" + c; - escaping = false; - continue; - } // finish up the class. +/** + * 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; +} +var _isKeyable = isKeyable; - hasMagic = true; - inClass = false; - re += c; - continue; +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ - default: - // swallow any state char that wasn't consumed - clearStateChar(); +function getMapData(map, key) { + var data = map.__data__; + return _isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; +} - if (escaping) { - // no need - escaping = false; - } else if (reSpecials[c] && !(c === "^" && inClass)) { - re += "\\"; - } +var _getMapData = getMapData; - re += c; - } // switch +/** + * 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`. + */ - } // for - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" +function mapCacheDelete(key) { + var result = _getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} +var _mapCacheDelete = mapCacheDelete; - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - var cs = pattern.substr(classStart + 1), - sp = this.parse(cs, SUBPARSE); - re = re.substr(0, reClassStart) + "\\[" + sp[0]; - hasMagic = hasMagic || sp[1]; - } // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. +/** + * 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); +} - var pl; +var _mapCacheGet = mapCacheGet; - while (pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + 3); // maybe some even number of \, then maybe 1 \, followed by a | +/** + * 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`. + */ - tail = tail.replace(/((?:\\{2})*)(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = "\\"; - } // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. +function mapCacheHas(key) { + return _getMapData(this, key).has(key); +} +var _mapCacheHas = mapCacheHas; - return $1 + $1 + $2 + "|"; - }); // console.error("tail=%j\n %s", tail, tail) +/** + * 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. + */ - var t = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type; - hasMagic = true; - re = re.slice(0, pl.reStart) + t + "\\(" + tail; - } // handle trailing things that only matter at the very end. +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; +} +var _mapCacheSet = mapCacheSet; - clearStateChar(); +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - if (escaping) { - // trailing \\ - re += "\\\\"; - } // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot +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`. - var addPatternStart = false; - switch (re.charAt(0)) { - case ".": - case "[": - case "(": - addPatternStart = true; - } // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. +MapCache.prototype.clear = _mapCacheClear; +MapCache.prototype['delete'] = _mapCacheDelete; +MapCache.prototype.get = _mapCacheGet; +MapCache.prototype.has = _mapCacheHas; +MapCache.prototype.set = _mapCacheSet; +var _MapCache = MapCache; +/** Used as the size to enable large array optimizations. */ - if (re !== "" && hasMagic) re = "(?=.)" + re; - if (addPatternStart) re = patternStart + re; // parsing just a piece of a larger pattern. +var LARGE_ARRAY_SIZE$1 = 200; +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ - if (isSub === SUBPARSE) { - return [re, hasMagic]; - } // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof _ListCache) { + var pairs = data.__data__; - if (!hasMagic) { - return globUnescape(pattern); + if (!_Map || pairs.length < LARGE_ARRAY_SIZE$1 - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; } - var flags = options.nocase ? "i" : "", - regExp = new RegExp("^" + re + "$", flags); - regExp._glob = pattern; - regExp._src = re; - return regExp; + data = this.__data__ = new _MapCache(pairs); } - minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe(); - }; - - Minimatch.prototype.makeRe = makeRe; + data.set(key, value); + this.size = data.size; + return this; +} - function makeRe() { - if (this.regexp || this.regexp === false) return this.regexp; // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. +var _stackSet = stackSet; - var set = this.set; - if (!set.length) return this.regexp = false; - var options = this.options; - var twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot, - flags = options.nocase ? "i" : ""; - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return p === GLOBSTAR ? twoStar : typeof p === "string" ? regExpEscape(p) : p._src; - }).join("\\\/"); - }).join("|"); // must match entire pattern - // ending in a * or ** will make it less strict. +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ - re = "^(?:" + re + ")$"; // can match anything, as long as it's not this. +function Stack(entries) { + var data = this.__data__ = new _ListCache(entries); + this.size = data.size; +} // Add methods to `Stack`. - if (this.negate) re = "^(?!" + re + ").*$"; - try { - return this.regexp = new RegExp(re, flags); - } catch (ex) { - return this.regexp = false; - } - } +Stack.prototype.clear = _stackClear; +Stack.prototype['delete'] = _stackDelete; +Stack.prototype.get = _stackGet; +Stack.prototype.has = _stackHas; +Stack.prototype.set = _stackSet; +var _Stack = Stack; - minimatch.match = function (list, pattern, options) { - var mm = new Minimatch(pattern, options); - list = list.filter(function (f) { - return mm.match(f); - }); +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ - if (options.nonull && !list.length) { - list.push(pattern); - } +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); - return list; - }; + return this; +} - Minimatch.prototype.match = match; +var _setCacheAdd = setCacheAdd; - function match(f, partial) { - // console.error("match", f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false; - if (this.empty) return f === ""; - if (f === "/" && partial) return true; - var options = this.options; // windows: need to use /, not \ - // On other platforms, \ is a valid (albeit bad) filename char. +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} - if (platform === "win32") { - f = f.split("\\").join("/"); - } // treat the test path as a set of pathparts. +var _setCacheHas = setCacheHas; +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ - f = f.split(slashSplit); +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + this.__data__ = new _MapCache(); - if (options.debug) { - console.error(this.pattern, "split", f); - } // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. + while (++index < length) { + this.add(values[index]); + } +} // Add methods to `SetCache`. - var set = this.set; // console.error(this.pattern, "set", set) +SetCache.prototype.add = SetCache.prototype.push = _setCacheAdd; +SetCache.prototype.has = _setCacheHas; +var _SetCache = SetCache; - for (var i = 0, l = set.length; i < l; i++) { - var pattern = set[i]; - var hit = this.matchOne(f, pattern, partial); +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; - if (hit) { - if (options.flipNegate) return true; - return !this.negate; - } - } // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} - if (options.flipNegate) return false; - return this.negate; - } // set partial to true to test if, for example, - // "/a/b" matches the start of "/*/b/*/d" - // Partial means, if you run out of file before you run - // out of pattern, then that's fine, as long as all - // the parts match. +var _arraySome = arraySome; +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} - Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options; +var _cacheHas = cacheHas; - if (options.debug) { - console.error("matchOne", { - "this": this, - file: file, - pattern: pattern - }); - } +/** Used to compose bitmasks for value comparisons. */ - if (options.matchBase && pattern.length === 1) { - file = path__default['default'].basename(file.join("/")).split("/"); - } +var COMPARE_PARTIAL_FLAG$5 = 1, + COMPARE_UNORDERED_FLAG$3 = 2; +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ - if (options.debug) { - console.error("matchOne", file.length, pattern.length); - } +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, + arrLength = array.length, + othLength = other.length; - for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { - if (options.debug) { - console.error("matchOne loop"); - } + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } // Check that cyclic values are equal. - var p = pattern[pi], - f = file[fi]; - if (options.debug) { - console.error(pattern, p, f); - } // should be impossible. - // some invalid regexp stuff in the set. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } - if (p === false) return false; + var index = -1, + result = true, + seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new _SetCache() : undefined; + stack.set(array, other); + stack.set(other, array); // Ignore non-index properties. - if (p === GLOBSTAR) { - if (options.debug) console.error('GLOBSTAR', [pattern, p, f]); // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; - var fr = fi, - pr = pi + 1; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + } - if (pr === pl) { - if (options.debug) console.error('** at the end'); // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. + if (compared !== undefined) { + if (compared) { + continue; + } - for (; fi < fl; fi++) { - if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".") return false; - } + result = false; + break; + } // Recursively compare arrays (susceptible to call stack limits). - return true; - } // ok, let's see if we can swallow whatever we can. + if (seen) { + if (!_arraySome(other, function (othValue, othIndex) { + if (!_cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result = false; + break; + } + } - WHILE: while (fr < fl) { - var swallowee = file[fr]; + stack['delete'](array); + stack['delete'](other); + return result; +} - if (options.debug) { - console.error('\nglobstar while', file, fr, pattern, pr, swallowee); - } // XXX remove this slice. Just pass the start index. +var _equalArrays = equalArrays; +/** Built-in value references. */ - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - if (options.debug) console.error('globstar found match!', fr, fl, swallowee); // found a match. +var Uint8Array = _root.Uint8Array; +var _Uint8Array = Uint8Array; - return true; - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") { - if (options.debug) console.error("dot detected!", file, fr, pattern, pr); - break WHILE; - } // ** swallows a segment, and continue. +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + map.forEach(function (value, key) { + result[++index] = [key, value]; + }); + return result; +} +var _mapToArray = mapToArray; - if (options.debug) console.error('globstar swallow a segment, and continue'); - fr++; - } - } // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + set.forEach(function (value) { + result[++index] = value; + }); + return result; +} +var _setToArray = setToArray; - if (partial) { - // ran out of file - // console.error("\n>>> no match, partial?", file, fr, pattern, pr) - if (fr === fl) return true; - } +/** Used to compose bitmasks for value comparisons. */ - return false; - } // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. +var COMPARE_PARTIAL_FLAG$4 = 1, + COMPARE_UNORDERED_FLAG$2 = 2; +/** `Object#toString` result references. */ +var boolTag$1 = '[object Boolean]', + dateTag$1 = '[object Date]', + errorTag$1 = '[object Error]', + mapTag$2 = '[object Map]', + numberTag$1 = '[object Number]', + regexpTag$1 = '[object RegExp]', + setTag$2 = '[object Set]', + stringTag$1 = '[object String]', + symbolTag$1 = '[object Symbol]'; +var arrayBufferTag$1 = '[object ArrayBuffer]', + dataViewTag$2 = '[object DataView]'; +/** Used to convert symbols to primitives and strings. */ - var hit; +var symbolProto$1 = _Symbol ? _Symbol.prototype : undefined, + symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ - if (typeof p === "string") { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase(); - } else { - hit = f === p; - } +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag$2: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } - if (options.debug) { - console.error("string match", p, f, hit); - } - } else { - hit = f.match(p); + object = object.buffer; + other = other.buffer; - if (options.debug) { - console.error("pattern match", p, f, hit); - } + case arrayBufferTag$1: + if (object.byteLength != other.byteLength || !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) { + return false; } - if (!hit) return false; - } // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - // now either we fell off the end of the pattern, or we're done. + return true; + case boolTag$1: + case dateTag$1: + case numberTag$1: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq_1(+object, +other); - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true; - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial; - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = fi === fl - 1 && file[fi] === ""; - return emptyFileEnd; - } // should be unreachable. + case errorTag$1: + return object.name == other.name && object.message == other.message; + case regexpTag$1: + case stringTag$1: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == other + ''; - throw new Error("wtf?"); - }; // replace stuff like \* with * + case mapTag$2: + var convert = _mapToArray; + case setTag$2: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; + convert || (convert = _setToArray); - function globUnescape(s) { - return s.replace(/\\(.)/g, "$1"); - } + if (object.size != other.size && !isPartial) { + return false; + } // Assume cyclic values are equal. - function regExpEscape(s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - } -}); -var ini = createCommonjsModule(function (module, exports) { + var stacked = stack.get(object); - var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } + if (stacked) { + return stacked == other; } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } + bitmask |= COMPARE_UNORDERED_FLAG$2; // Recursively compare objects (susceptible to call stack limits). - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); + stack.set(object, other); + var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag$1: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; + } - var __generator = this && this.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; + return false; +} - function verb(n) { - return function (v) { - return step([n, v]); - }; - } +var _equalByTag = equalByTag; - function step(op) { - if (f) throw new TypeError("Generator is already executing."); +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; + while (++index < length) { + array[offset + index] = values[index]; + } - switch (op[0]) { - case 0: - case 1: - t = op; - break; + return array; +} - case 4: - _.label++; - return { - value: op[1], - done: false - }; +var _arrayPush = arrayPush; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; +/** + * 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; +var isArray_1 = isArray; - case 7: - op = _.ops.pop(); +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ - _.trys.pop(); +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object)); +} - continue; +var _baseGetAllKeys = baseGetAllKeys; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } + while (++index < length) { + var value = array[index]; - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } - if (t && _.label < t[2]) { - _.label = t[2]; + return result; +} - _.ops.push(op); +var _arrayFilter = arrayFilter; - break; - } +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} - if (t[2]) _.ops.pop(); +var stubArray_1 = stubArray; - _.trys.pop(); +/** Used for built-in method references. */ - continue; - } +var objectProto$6 = Object.prototype; +/** Built-in value references. */ - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } +var propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable; +/* Built-in method references for those with the same name as other `lodash` methods. */ - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } - }; +var nativeGetSymbols = Object.getOwnPropertySymbols; +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ - var __importStar = this && this.__importStar || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; - }; +var getSymbols = !nativeGetSymbols ? stubArray_1 : function (object) { + if (object == null) { + return []; + } - Object.defineProperty(exports, "__esModule", { - value: true + object = Object(object); + return _arrayFilter(nativeGetSymbols(object), function (symbol) { + return propertyIsEnumerable$1.call(object, symbol); }); +}; +var _getSymbols = getSymbols; - var fs = __importStar(fs__default['default']); - /** - * define the possible values: - * section: [section] - * param: key=value - * comment: ;this is a comment - */ +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } - var regex = { - section: /^\s*\[(([^#;]|\\#|\\;)+)\]\s*([#;].*)?$/, - param: /^\s*([\w\.\-\_]+)\s*[=:]\s*(.*?)\s*([#;].*)?$/, - comment: /^\s*[#;].*$/ - }; - /** - * Parses an .ini file - * @param file The location of the .ini file - */ + return result; +} - function parse(file) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , new Promise(function (resolve, reject) { - fs.readFile(file, 'utf8', function (err, data) { - if (err) { - reject(err); - return; - } +var _baseTimes = baseTimes; - resolve(parseString(data)); - }); - })]; - }); - }); - } +/** + * 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'; +} - exports.parse = parse; +var isObjectLike_1 = isObjectLike; - function parseSync(file) { - return parseString(fs.readFileSync(file, 'utf8')); - } +/** `Object#toString` result references. */ - exports.parseSync = parseSync; +var argsTag$2 = '[object Arguments]'; +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ - function parseString(data) { - var sectionBody = {}; - var sectionName = null; - var value = [[sectionName, sectionBody]]; - var lines = data.split(/\r\n|\r|\n/); - lines.forEach(function (line) { - var match; +function baseIsArguments(value) { + return isObjectLike_1(value) && _baseGetTag(value) == argsTag$2; +} - if (regex.comment.test(line)) { - return; - } +var _baseIsArguments = baseIsArguments; - if (regex.param.test(line)) { - match = line.match(regex.param); - sectionBody[match[1]] = match[2]; - } else if (regex.section.test(line)) { - match = line.match(regex.section); - sectionName = match[1]; - sectionBody = {}; - value.push([sectionName, sectionBody]); - } - }); - return value; - } +/** Used for built-in method references. */ - exports.parseString = parseString; -}); +var objectProto$5 = Object.prototype; +/** Used to check objects for own properties. */ -var name$1 = "editorconfig"; -var version$1 = "0.15.3"; -var description$1 = "EditorConfig File Locator and Interpreter for Node.js"; -var keywords = [ - "editorconfig", - "core" -]; -var main$1 = "src/index.js"; -var contributors = [ - "Hong Xu (topbug.net)", - "Jed Mao (https://github.com/jedmao/)", - "Trey Hunner (http://treyhunner.com)" -]; -var directories = { - bin: "./bin", - lib: "./lib" -}; -var scripts$1 = { - clean: "rimraf dist", - prebuild: "npm run clean", - build: "tsc", - pretest: "npm run lint && npm run build && npm run copy && cmake .", - test: "ctest .", - "pretest:ci": "npm run pretest", - "test:ci": "ctest -VV --output-on-failure .", - lint: "npm run eclint && npm run tslint", - eclint: "eclint check --indent_size ignore \"src/**\"", - tslint: "tslint --project tsconfig.json --exclude package.json", - copy: "cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib", - prepub: "npm run lint && npm run build && npm run copy", - pub: "npm publish ./dist" -}; -var repository$1 = { - type: "git", - url: "git://github.com/editorconfig/editorconfig-core-js.git" -}; -var bugs = "https://github.com/editorconfig/editorconfig-core-js/issues"; -var author$1 = "EditorConfig Team"; -var license$1 = "MIT"; -var dependencies$1 = { - commander: "^2.19.0", - "lru-cache": "^4.1.5", - semver: "^5.6.0", - sigmund: "^1.0.1" -}; -var devDependencies$1 = { - "@types/mocha": "^5.2.6", - "@types/node": "^10.12.29", - "@types/semver": "^5.5.0", - "cpy-cli": "^2.0.0", - eclint: "^2.8.1", - mocha: "^5.2.0", - rimraf: "^2.6.3", - should: "^13.2.3", - tslint: "^5.13.1", - typescript: "^3.3.3333" +var hasOwnProperty$4 = objectProto$5.hasOwnProperty; +/** Built-in value references. */ + +var propertyIsEnumerable = objectProto$5.propertyIsEnumerable; +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + +var isArguments = _baseIsArguments(function () { + return arguments; +}()) ? _baseIsArguments : function (value) { + return isObjectLike_1(value) && hasOwnProperty$4.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); }; -var _package$2 = { - name: name$1, - version: version$1, - description: description$1, - keywords: keywords, - main: main$1, - contributors: contributors, - directories: directories, - scripts: scripts$1, - repository: repository$1, - bugs: bugs, - author: author$1, - license: license$1, - dependencies: dependencies$1, - devDependencies: devDependencies$1 -}; - -var _package$3 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$1, - version: version$1, - description: description$1, - keywords: keywords, - main: main$1, - contributors: contributors, - directories: directories, - scripts: scripts$1, - repository: repository$1, - bugs: bugs, - author: author$1, - license: license$1, - dependencies: dependencies$1, - devDependencies: devDependencies$1, - 'default': _package$2 -}); +var isArguments_1 = isArguments; -var require$$4 = getCjsExportFromNamespace(_package$3); +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} -var src = createCommonjsModule(function (module, exports) { +var stubFalse_1 = stubFalse; - var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) { - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } +var isBuffer_1 = createCommonjsModule(function (module, exports) { + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + /** Detect the popular CommonJS extension `module.exports`. */ - function step(result) { - result.done ? resolve(result.value) : new P(function (resolve) { - resolve(result.value); - }).then(fulfilled, rejected); - } + var moduleExports = freeModule && freeModule.exports === freeExports; + /** Built-in value references. */ - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; + var Buffer = moduleExports ? _root.Buffer : undefined; + /* Built-in method references for those with the same name as other `lodash` methods. */ - var __generator = this && this.__generator || function (thisArg, body) { - var _ = { - label: 0, - sent: function () { - if (t[0] & 1) throw t[1]; - return t[1]; - }, - trys: [], - ops: [] - }, - f, - y, - t, - g; - return g = { - next: verb(0), - "throw": verb(1), - "return": verb(2) - }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { - return this; - }), g; + var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ - function verb(n) { - return function (v) { - return step([n, v]); - }; - } + var isBuffer = nativeIsBuffer || stubFalse_1; + module.exports = isBuffer; +}); - function step(op) { - if (f) throw new TypeError("Generator is already executing."); +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER$1 = 9007199254740991; +/** Used to detect unsigned integer values. */ - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; +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`. + */ - switch (op[0]) { - case 0: - case 1: - t = op; - break; +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length; +} - case 4: - _.label++; - return { - value: op[1], - done: false - }; +var _isIndex = isIndex; - case 5: - _.label++; - y = op[1]; - op = [0]; - continue; +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} - case 7: - op = _.ops.pop(); +var isLength_1 = isLength; - _.trys.pop(); +/** `Object#toString` result references. */ - continue; +var argsTag$1 = '[object Arguments]', + arrayTag$1 = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag$1 = '[object Map]', + numberTag = '[object Number]', + objectTag$2 = '[object Object]', + regexpTag = '[object RegExp]', + setTag$1 = '[object Set]', + stringTag = '[object String]', + weakMapTag$1 = '[object WeakMap]'; +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag$1 = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; +/** Used to identify `toStringTag` values of typed arrays. */ - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { - _ = 0; - continue; - } +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag] = typedArrayTags[setTag$1] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag$1] = false; +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ - if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { - _.label = op[1]; - break; - } +function baseIsTypedArray(value) { + return isObjectLike_1(value) && isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)]; +} - if (op[0] === 6 && _.label < t[1]) { - _.label = t[1]; - t = op; - break; - } +var _baseIsTypedArray = baseIsTypedArray; - if (t && _.label < t[2]) { - _.label = t[2]; +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function (value) { + return func(value); + }; +} - _.ops.push(op); +var _baseUnary = baseUnary; - break; - } +var _nodeUtil = createCommonjsModule(function (module, exports) { + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ - if (t[2]) _.ops.pop(); + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + /** Detect the popular CommonJS extension `module.exports`. */ - _.trys.pop(); + var moduleExports = freeModule && freeModule.exports === freeExports; + /** Detect free variable `process` from Node.js. */ - continue; - } + var freeProcess = moduleExports && _freeGlobal.process; + /** Used to access faster Node.js helpers. */ - op = body.call(thisArg, _); - } catch (e) { - op = [6, e]; - y = 0; - } finally { - f = t = 0; - } + var nodeUtil = function () { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; - if (op[0] & 5) throw op[1]; - return { - value: op[0] ? op[1] : void 0, - done: true - }; - } - }; + if (types) { + return types; + } // Legacy `process.binding('util')` for Node.js < 10. - var __importStar = this && this.__importStar || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result["default"] = mod; - return result; - }; - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }(); - Object.defineProperty(exports, "__esModule", { - value: true - }); + module.exports = nodeUtil; +}); - var fs = __importStar(fs__default['default']); +/* Node.js helper references. */ - var path = __importStar(path__default['default']); +var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray; +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ - var semver = __importStar(semver$2); +var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray; +var isTypedArray_1 = isTypedArray; - var fnmatch_1 = __importDefault(fnmatch); +/** Used for built-in method references. */ - exports.parseString = ini.parseString; +var objectProto$4 = Object.prototype; +/** Used to check objects for own properties. */ - var package_json_1 = __importDefault(require$$4); +var hasOwnProperty$3 = objectProto$4.hasOwnProperty; +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ - var knownProps = { - end_of_line: true, - indent_style: true, - indent_size: true, - insert_final_newline: true, - trim_trailing_whitespace: true, - charset: true - }; +function arrayLikeKeys(value, inherited) { + var isArr = isArray_1(value), + isArg = !isArr && isArguments_1(value), + isBuff = !isArr && !isArg && isBuffer_1(value), + isType = !isArr && !isArg && !isBuff && isTypedArray_1(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? _baseTimes(value.length, String) : [], + length = result.length; - function fnmatch$1(filepath, glob) { - var matchOptions = { - matchBase: true, - dot: true, - noext: true - }; - glob = glob.replace(/\*\*/g, '{*,**/**/**}'); - return fnmatch_1.default(filepath, glob, matchOptions); + for (var key in value) { + if ((inherited || hasOwnProperty$3.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties. + _isIndex(key, length)))) { + result.push(key); + } } - function getConfigFileNames(filepath, options) { - var paths = []; - - do { - filepath = path.dirname(filepath); - paths.push(path.join(filepath, options.config)); - } while (filepath !== options.root); + return result; +} - return paths; - } +var _arrayLikeKeys = arrayLikeKeys; - function processMatches(matches, version) { - // Set indent_size to 'tab' if indent_size is unspecified and - // indent_style is set to 'tab'. - if ('indent_style' in matches && matches.indent_style === 'tab' && !('indent_size' in matches) && semver.gte(version, '0.10.0')) { - matches.indent_size = 'tab'; - } // Set tab_width to indent_size if indent_size is specified and - // tab_width is unspecified +/** Used for built-in method references. */ +var objectProto$3 = Object.prototype; +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = typeof Ctor == 'function' && Ctor.prototype || objectProto$3; + return value === proto; +} - if ('indent_size' in matches && !('tab_width' in matches) && matches.indent_size !== 'tab') { - matches.tab_width = matches.indent_size; - } // Set indent_size to tab_width if indent_size is 'tab' +var _isPrototype = isPrototype; +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function (arg) { + return func(transform(arg)); + }; +} - if ('indent_size' in matches && 'tab_width' in matches && matches.indent_size === 'tab') { - matches.indent_size = matches.tab_width; - } +var _overArg = overArg; - return matches; - } +/* Built-in method references for those with the same name as other `lodash` methods. */ - function processOptions(options, filepath) { - if (options === void 0) { - options = {}; - } +var nativeKeys = _overArg(Object.keys, Object); +var _nativeKeys = nativeKeys; - return { - config: options.config || '.editorconfig', - version: options.version || package_json_1.default.version, - root: path.resolve(options.root || path.parse(filepath).root) - }; - } +/** Used for built-in method references. */ - function buildFullGlob(pathPrefix, glob) { - switch (glob.indexOf('/')) { - case -1: - glob = '**/' + glob; - break; +var objectProto$2 = Object.prototype; +/** Used to check objects for own properties. */ - case 0: - glob = glob.substring(1); - break; - } +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ - return path.join(pathPrefix, glob); +function baseKeys(object) { + if (!_isPrototype(object)) { + return _nativeKeys(object); } - function extendProps(props, options) { - if (props === void 0) { - props = {}; - } + var result = []; - if (options === void 0) { - options = {}; + for (var key in Object(object)) { + if (hasOwnProperty$2.call(object, key) && key != 'constructor') { + result.push(key); } + } - for (var key in options) { - if (options.hasOwnProperty(key)) { - var value = options[key]; - var key2 = key.toLowerCase(); - var value2 = value; - - if (knownProps[key2]) { - value2 = value.toLowerCase(); - } + return result; +} - try { - value2 = JSON.parse(value); - } catch (e) {} +var _baseKeys = baseKeys; - if (typeof value === 'undefined' || value === null) { - // null and undefined are values specific to JSON (no special meaning - // in editorconfig) & should just be returned as regular strings. - value2 = String(value); - } +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ - props[key2] = value2; - } - } +function isArrayLike(value) { + return value != null && isLength_1(value.length) && !isFunction_1(value); +} - return props; - } +var isArrayLike_1 = isArrayLike; - function parseFromConfigs(configs, filepath, options) { - return processMatches(configs.reverse().reduce(function (matches, file) { - var pathPrefix = path.dirname(file.name); - file.contents.forEach(function (section) { - var glob = section[0]; - var options2 = section[1]; +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ - if (!glob) { - return; - } +function keys(object) { + return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object); +} - var fullGlob = buildFullGlob(pathPrefix, glob); +var keys_1 = keys; - if (!fnmatch$1(filepath, fullGlob)) { - return; - } +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ - matches = extendProps(matches, options2); - }); - return matches; - }, {}), options.version); - } +function getAllKeys(object) { + return _baseGetAllKeys(object, keys_1, _getSymbols); +} - function getConfigsForFiles(files) { - var configs = []; +var _getAllKeys = getAllKeys; - for (var i in files) { - if (files.hasOwnProperty(i)) { - var file = files[i]; - var contents = ini.parseString(file.contents); - configs.push({ - name: file.name, - contents: contents - }); +/** Used to compose bitmasks for value comparisons. */ - if ((contents[0][1].root || '').toLowerCase() === 'true') { - break; - } - } - } +var COMPARE_PARTIAL_FLAG$3 = 1; +/** Used for built-in method references. */ - return configs; - } +var objectProto$1 = Object.prototype; +/** Used to check objects for own properties. */ - function readConfigFiles(filepaths) { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 - /*return*/ - , Promise.all(filepaths.map(function (name) { - return new Promise(function (resolve) { - fs.readFile(name, 'utf8', function (err, data) { - resolve({ - name: name, - contents: err ? '' : data - }); - }); - }); - }))]; - }); - }); - } +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ - function readConfigFilesSync(filepaths) { - var files = []; - var file; - filepaths.forEach(function (filepath) { - try { - file = fs.readFileSync(filepath, 'utf8'); - } catch (e) { - file = ''; - } +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, + objProps = _getAllKeys(object), + objLength = objProps.length, + othProps = _getAllKeys(other), + othLength = othProps.length; - files.push({ - name: filepath, - contents: file - }); - }); - return files; + if (objLength != othLength && !isPartial) { + return false; } - function opts(filepath, options) { - if (options === void 0) { - options = {}; - } + var index = objLength; - var resolvedFilePath = path.resolve(filepath); - return [resolvedFilePath, processOptions(options, resolvedFilePath)]; - } + while (index--) { + var key = objProps[index]; - function parseFromFiles(filepath, files, options) { - if (options === void 0) { - options = {}; + if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) { + return false; } + } // Check that cyclic values are equal. - return __awaiter(this, void 0, void 0, function () { - var _a, resolvedFilePath, processedOptions; - return __generator(this, function (_b) { - _a = opts(filepath, options), resolvedFilePath = _a[0], processedOptions = _a[1]; - return [2 - /*return*/ - , files.then(getConfigsForFiles).then(function (configs) { - return parseFromConfigs(configs, resolvedFilePath, processedOptions); - })]; - }); - }); - } + var objStacked = stack.get(object); + var othStacked = stack.get(other); - exports.parseFromFiles = parseFromFiles; + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } - function parseFromFilesSync(filepath, files, options) { - if (options === void 0) { - options = {}; - } + var result = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; - var _a = opts(filepath, options), - resolvedFilePath = _a[0], - processedOptions = _a[1]; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; - return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); - } + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } // Recursively compare objects (susceptible to call stack limits). - exports.parseFromFilesSync = parseFromFilesSync; - function parse(_filepath, _options) { - if (_options === void 0) { - _options = {}; + if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result = false; + break; } - return __awaiter(this, void 0, void 0, function () { - var _a, resolvedFilePath, processedOptions, filepaths; - - return __generator(this, function (_b) { - _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1]; - filepaths = getConfigFileNames(resolvedFilePath, processedOptions); - return [2 - /*return*/ - , readConfigFiles(filepaths).then(getConfigsForFiles).then(function (configs) { - return parseFromConfigs(configs, resolvedFilePath, processedOptions); - })]; - }); - }); + skipCtor || (skipCtor = key == 'constructor'); } - exports.parse = parse; + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. - function parseSync(_filepath, _options) { - if (_options === void 0) { - _options = {}; + if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; } + } - var _a = opts(_filepath, _options), - resolvedFilePath = _a[0], - processedOptions = _a[1]; + stack['delete'](object); + stack['delete'](other); + return result; +} - var filepaths = getConfigFileNames(resolvedFilePath, processedOptions); - var files = readConfigFilesSync(filepaths); - return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions); - } +var _equalObjects = equalObjects; - exports.parseSync = parseSync; -}); +/* Built-in method references that are verified to be native. */ -var editorconfigToPrettier = editorConfigToPrettier; +var DataView = _getNative(_root, 'DataView'); +var _DataView = DataView; -function removeUnset(editorConfig) { - const result = {}; - const keys = Object.keys(editorConfig); +/* Built-in method references that are verified to be native. */ - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; +var Promise$1 = _getNative(_root, 'Promise'); +var _Promise = Promise$1; - if (editorConfig[key] === "unset") { - continue; - } +/* Built-in method references that are verified to be native. */ - result[key] = editorConfig[key]; - } +var Set$1 = _getNative(_root, 'Set'); +var _Set = Set$1; - return result; -} +/* Built-in method references that are verified to be native. */ -function editorConfigToPrettier(editorConfig) { - if (!editorConfig) { - return null; - } +var WeakMap$1 = _getNative(_root, 'WeakMap'); +var _WeakMap = WeakMap$1; - editorConfig = removeUnset(editorConfig); +/** `Object#toString` result references. */ - if (Object.keys(editorConfig).length === 0) { - return null; - } +var mapTag = '[object Map]', + objectTag$1 = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; +var dataViewTag = '[object DataView]'; +/** Used to detect maps, sets, and weakmaps. */ - const result = {}; +var dataViewCtorString = _toSource(_DataView), + mapCtorString = _toSource(_Map), + promiseCtorString = _toSource(_Promise), + setCtorString = _toSource(_Set), + weakMapCtorString = _toSource(_WeakMap); +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ - if (editorConfig.indent_style) { - result.useTabs = editorConfig.indent_style === "tab"; - } +var getTag = _baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if (editorConfig.indent_size === "tab") { - result.useTabs = true; - } +if (_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag || _Map && getTag(new _Map()) != mapTag || _Promise && getTag(_Promise.resolve()) != promiseTag || _Set && getTag(new _Set()) != setTag || _WeakMap && getTag(new _WeakMap()) != weakMapTag) { + getTag = function (value) { + var result = _baseGetTag(value), + Ctor = result == objectTag$1 ? value.constructor : undefined, + ctorString = Ctor ? _toSource(Ctor) : ''; - if (result.useTabs && editorConfig.tab_width) { - result.tabWidth = editorConfig.tab_width; - } else if (editorConfig.indent_style === "space" && editorConfig.indent_size && editorConfig.indent_size !== "tab") { - result.tabWidth = editorConfig.indent_size; - } else if (editorConfig.tab_width !== undefined) { - result.tabWidth = editorConfig.tab_width; - } + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; - if (editorConfig.max_line_length && editorConfig.max_line_length !== "off") { - result.printWidth = editorConfig.max_line_length; - } + case mapCtorString: + return mapTag; - if (editorConfig.quote_type === "single") { - result.singleQuote = true; - } else if (editorConfig.quote_type === "double") { - result.singleQuote = false; - } + case promiseCtorString: + return promiseTag; - if (["cr", "crlf", "lf"].indexOf(editorConfig.end_of_line) !== -1) { - result.endOfLine = editorConfig.end_of_line; - } + case setCtorString: + return setTag; - return result; + case weakMapCtorString: + return weakMapTag; + } + } + + return result; + }; } -// https://github.com/kirstein/find-project-root/blob/master/index.js +var _getTag = getTag; +/** Used to compose bitmasks for value comparisons. */ -const MARKERS = [".git", ".hg"]; +var COMPARE_PARTIAL_FLAG$2 = 1; +/** `Object#toString` result references. */ -const markerExists = directory => MARKERS.some(mark => fs__default['default'].existsSync(path__default['default'].join(directory, mark))); +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; +/** Used for built-in method references. */ -function findProjectRoot(directory) { - while (!markerExists(directory)) { - const parentDirectory = path__default['default'].resolve(directory, ".."); +var objectProto = Object.prototype; +/** Used to check objects for own properties. */ - if (parentDirectory === directory) { - break; +var hasOwnProperty = objectProto.hasOwnProperty; +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray_1(object), + othIsArr = isArray_1(other), + objTag = objIsArr ? arrayTag : _getTag(object), + othTag = othIsArr ? arrayTag : _getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer_1(object)) { + if (!isBuffer_1(other)) { + return false; } - directory = parentDirectory; + objIsArr = true; + objIsObj = false; } - return directory; -} - -var findProjectRoot_1 = findProjectRoot; + if (isSameTag && !objIsObj) { + stack || (stack = new _Stack()); + return objIsArr || isTypedArray_1(object) ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack) : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } -const jsonStringifyMem = fn => mem_1(fn, { - cacheKey: JSON.stringify -}); + if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); -const maybeParse = (filePath, parse) => filePath && parse(filePath, { - root: findProjectRoot_1(path__default['default'].dirname(path__default['default'].resolve(filePath))) -}); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new _Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } -const editorconfigAsyncNoCache = async (filePath) => editorconfigToPrettier(await maybeParse(filePath, src.parse)); + if (!isSameTag) { + return false; + } -const editorconfigAsyncWithCache = jsonStringifyMem(editorconfigAsyncNoCache); + stack || (stack = new _Stack()); + return _equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} -const editorconfigSyncNoCache = filePath => editorconfigToPrettier(maybeParse(filePath, src.parseSync)); +var _baseIsEqualDeep = baseIsEqualDeep; -const editorconfigSyncWithCache = jsonStringifyMem(editorconfigSyncNoCache); +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ -function getLoadFunction(opts) { - if (!opts.editorconfig) { - return () => null; +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; } - if (opts.sync) { - return opts.cache ? editorconfigSyncWithCache : editorconfigSyncNoCache; + if (value == null || other == null || !isObjectLike_1(value) && !isObjectLike_1(other)) { + return value !== value && other !== other; } - return opts.cache ? editorconfigAsyncWithCache : editorconfigAsyncNoCache; + return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } -function clearCache() { - mem_1.clear(editorconfigSyncWithCache); - mem_1.clear(editorconfigAsyncWithCache); -} +var _baseIsEqual = baseIsEqual; -var resolveConfigEditorconfig = { - getLoadFunction, - clearCache -}; +/** Used to compose bitmasks for value comparisons. */ -const getExplorerMemoized = mem_1(opts => { - const cosmiconfig = thirdParty["cosmiconfig" + (opts.sync ? "Sync" : "")]; - const explorer = cosmiconfig("prettier", { - cache: opts.cache, - transform: result => { - if (result && result.config) { - if (typeof result.config === "string") { - const dir = path__default['default'].dirname(result.filepath); - const modulePath = resolve_1(result.config, { - paths: [dir] - }); - result.config = require(modulePath); - } +var COMPARE_PARTIAL_FLAG$1 = 1, + COMPARE_UNORDERED_FLAG$1 = 2; +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ - if (typeof result.config !== "object") { - throw new Error("Config is only allowed to be an object, " + `but received ${typeof result.config} in "${result.filepath}"`); - } +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; - delete result.config.$schema; - } + if (object == null) { + return !length; + } - return result; - }, - searchPlaces: ["package.json", ".prettierrc", ".prettierrc.json", ".prettierrc.yaml", ".prettierrc.yml", ".prettierrc.json5", ".prettierrc.js", ".prettierrc.cjs", "prettier.config.js", "prettier.config.cjs", ".prettierrc.toml"], - loaders: { - ".toml": loadToml, - ".json5": loadJson5 + object = Object(object); + + while (index--) { + var data = matchData[index]; + + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; } - }); - return explorer; -}, { - cacheKey: JSON.stringify -}); -/** @param {{ cache: boolean, sync: boolean }} opts */ + } -function getExplorer(opts) { - // Normalize opts before passing to a memoized function - opts = Object.assign({ - sync: false, - cache: false - }, opts); - return getExplorerMemoized(opts); -} + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; -function _resolveConfig(filePath, opts, sync) { - opts = Object.assign({ - useCache: true - }, opts); - const loadOpts = { - cache: !!opts.useCache, - sync: !!sync, - editorconfig: !!opts.editorconfig - }; - const { - load, - search - } = getExplorer(loadOpts); - const loadEditorConfig = resolveConfigEditorconfig.getLoadFunction(loadOpts); - const arr = [opts.config ? load(opts.config) : search(filePath), loadEditorConfig(filePath)]; + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new _Stack(); - const unwrapAndMerge = ([result, editorConfigured]) => { - const merged = Object.assign({}, editorConfigured, mergeOverrides(result, filePath)); - ["plugins", "pluginSearchDirs"].forEach(optionName => { - if (Array.isArray(merged[optionName])) { - merged[optionName] = merged[optionName].map(value => typeof value === "string" && value.startsWith(".") // relative path - ? path__default['default'].resolve(path__default['default'].dirname(result.filepath), value) : value); + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); } - }); - if (!result && !editorConfigured) { - return null; + if (!(result === undefined ? _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) { + return false; + } } - - return merged; - }; - - if (loadOpts.sync) { - return unwrapAndMerge(arr); } - return Promise.all(arr).then(unwrapAndMerge); + return true; } -const resolveConfig = (filePath, opts) => _resolveConfig(filePath, opts, false); - -resolveConfig.sync = (filePath, opts) => _resolveConfig(filePath, opts, true); +var _baseIsMatch = baseIsMatch; -function clearCache$1() { - mem_1.clear(getExplorerMemoized); - resolveConfigEditorconfig.clearCache(); -} +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ -async function resolveConfigFile(filePath) { - const { - search - } = getExplorer({ - sync: false - }); - const result = await search(filePath); - return result ? result.filepath : null; +function isStrictComparable(value) { + return value === value && !isObject_1(value); } -resolveConfigFile.sync = filePath => { - const { - search - } = getExplorer({ - sync: true - }); - const result = search(filePath); - return result ? result.filepath : null; -}; - -function mergeOverrides(configResult, filePath) { - const { - config, - filepath: configPath - } = configResult || {}; +var _isStrictComparable = isStrictComparable; - const _ref = config || {}, - { - overrides - } = _ref, - options = _objectWithoutPropertiesLoose(_ref, ["overrides"]); +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ - if (filePath && overrides) { - const relativeFilePath = path__default['default'].relative(path__default['default'].dirname(configPath), filePath); +function getMatchData(object) { + var result = keys_1(object), + length = result.length; - for (const override of overrides) { - if (pathMatchesGlobs(relativeFilePath, override.files, override.excludeFiles)) { - Object.assign(options, override.options); - } - } + while (length--) { + var key = result[length], + value = object[key]; + result[length] = [key, value, _isStrictComparable(value)]; } - return options; -} // Based on eslint: https://github.com/eslint/eslint/blob/master/lib/config/config-ops.js - - -function pathMatchesGlobs(filePath, patterns, excludedPatterns) { - const patternList = [].concat(patterns); - const excludedPatternList = [].concat(excludedPatterns || []); - const opts = { - matchBase: true, - dot: true - }; - return patternList.some(pattern => minimatch_1(filePath, pattern, opts)) && !excludedPatternList.some(excludedPattern => minimatch_1(filePath, excludedPattern, opts)); + return result; } -var resolveConfig_1 = { - resolveConfig, - resolveConfigFile, - clearCache: clearCache$1 -}; +var _getMatchData = getMatchData; -// A simple implementation of make-array -function make_array(subject) { - return Array.isArray(subject) ? subject : [subject]; -} +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function (object) { + if (object == null) { + return false; + } -const REGEX_BLANK_LINE = /^\s+$/; -const REGEX_LEADING_EXCAPED_EXCLAMATION = /^\\!/; -const REGEX_LEADING_EXCAPED_HASH = /^\\#/; -const SLASH = '/'; -const KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') -/* istanbul ignore next */ -: 'node-ignore'; + return object[key] === srcValue && (srcValue !== undefined || key in Object(object)); + }; +} -const define = (object, key, value) => Object.defineProperty(object, key, { - value -}); +var _matchesStrictComparable = matchesStrictComparable; -const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; // Sanitize the range of a regular expression -// The cases are complicated, see test cases for details +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ -const sanitizeRange = range => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but -// fatal for JavaScript regular expression, so eliminate it. -: ''); // > If the pattern ends with a slash, -// > it is removed for the purpose of the following description, -// > but it would only find a match with a directory. -// > In other words, foo/ will match a directory foo and paths underneath it, -// > but will not match a regular file or a symbolic link foo -// > (this is consistent with the way how pathspec works in general in Git). -// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' -// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call -// you could use option `mark: true` with `glob` -// '`foo/`' should not continue with the '`..`' +function baseMatches(source) { + var matchData = _getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return _matchesStrictComparable(matchData[0][0], matchData[0][1]); + } -const DEFAULT_REPLACER_PREFIX = [// > Trailing spaces are ignored unless they are quoted with backslash ("\") -[// (a\ ) -> (a ) -// (a ) -> (a) -// (a \ ) -> (a ) -/\\?\s+$/, match => match.indexOf('\\') === 0 ? ' ' : ''], // replace (\ ) with ' ' -[/\\\s/g, () => ' '], // Escape metacharacters -// which is written down by users but means special for regular expressions. -// > There are 12 characters with special meanings: -// > - the backslash \, -// > - the caret ^, -// > - the dollar sign $, -// > - the period or dot ., -// > - the vertical bar or pipe symbol |, -// > - the question mark ?, -// > - the asterisk or star *, -// > - the plus sign +, -// > - the opening parenthesis (, -// > - the closing parenthesis ), -// > - and the opening square bracket [, -// > - the opening curly brace {, -// > These special characters are often called "metacharacters". -[/[\\^$.|*+(){]/g, match => `\\${match}`], [// > [abc] matches any character inside the brackets -// > (in this case a, b, or c); -/\[([^\]/]*)($|\])/g, (match, p1, p2) => p2 === ']' ? `[${sanitizeRange(p1)}]` : `\\${match}`], [// > a question mark (?) matches a single character -/(?!\\)\?/g, () => '[^/]'], // leading slash -[// > A leading slash matches the beginning of the pathname. -// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". -// A leading slash matches the beginning of the pathname -/^\//, () => '^'], // replace special metacharacter slash after the leading slash -[/\//g, () => '\\/'], [// > A leading "**" followed by a slash means match in all directories. -// > For example, "**/foo" matches file or directory "foo" anywhere, -// > the same as pattern "foo". -// > "**/foo/bar" matches file or directory "bar" anywhere that is directly -// > under directory "foo". -// Notice that the '*'s have been replaced as '\\*' -/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' -() => '^(?:.*\\/)?']]; -const DEFAULT_REPLACER_SUFFIX = [// starting -[// there will be no leading '/' -// (which has been replaced by section "leading slash") -// If starts with '**', adding a '^' to the regular expression also works -/^(?=[^^])/, function startingReplacer() { - return !/\/(?!$)/.test(this) // > If the pattern does not contain a slash /, - // > Git treats it as a shell glob pattern - // Actually, if there is only a trailing slash, - // git also treats it as a shell glob pattern - ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for - // > consumption by fnmatch(3) - : '^'; -}], // two globstars -[// Use lookahead assertions so that we could match more than one `'/**'` -/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories -// should not use '*', or it will be replaced by the next replacer -// Check if it is not the last `'/**'` -(match, index, str) => index + 6 < str.length // case: /**/ -// > A slash followed by two consecutive asterisks then a slash matches -// > zero or more directories. -// > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. -// '/**/' -? '(?:\\/[^\\/]+)*' // case: /** -// > A trailing `"/**"` matches everything inside. -// #21: everything inside but it should not include the current folder -: '\\/.+'], // intermediate wildcards -[// Never replace escaped '*' -// ignore rule '\*' will match the path '*' -// 'abc.*/' -> go -// 'abc.*' -> skip this rule -/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js' -// '*.js' doesn't match 'abc' -(match, p1) => `${p1}[^\\/]*`], // trailing wildcard -[/(\^|\\\/)?\\\*$/, (match, p1) => { - const prefix = p1 // '\^': - // '/*' does not match '' - // '/*' does not match everything - // '\\\/': - // 'abc/*' does not match 'abc/' - ? `${p1}[^/]+` // 'a*' matches 'a' - // 'a*' matches 'aa' - : '[^/]*'; - return `${prefix}(?=$|\\/$)`; -}], [// unescape -/\\\\\\/g, () => '\\']]; -const POSITIVE_REPLACERS = [...DEFAULT_REPLACER_PREFIX, // 'f' -// matches -// - /f(end) -// - /f/ -// - (start)f(end) -// - (start)f/ -// doesn't match -// - oof -// - foo -// pseudo: -// -> (^|/)f(/|$) -// ending -[// 'js' will not match 'js.' -// 'ab' will not match 'abc' -/(?:[^*/])$/, // 'js*' will not match 'a.js' -// 'js/' will not match 'a.js' -// 'js' will match 'a.js' and 'a.js/' -match => `${match}(?=$|\\/)`], ...DEFAULT_REPLACER_SUFFIX]; -const NEGATIVE_REPLACERS = [...DEFAULT_REPLACER_PREFIX, // #24, #38 -// The MISSING rule of [gitignore docs](https://git-scm.com/docs/gitignore) -// A negative pattern without a trailing wildcard should not -// re-include the things inside that directory. -// eg: -// ['node_modules/*', '!node_modules'] -// should ignore `node_modules/a.js` -[/(?:[^*])$/, match => `${match}(?=$|\\/$)`], ...DEFAULT_REPLACER_SUFFIX]; // A simple cache, because an ignore rule only has only one certain meaning + return function (object) { + return object === source || _baseIsMatch(object, source, matchData); + }; +} -const cache = Object.create(null); // @param {pattern} +var _baseMatches = baseMatches; -const make_regex = (pattern, negative, ignorecase) => { - const r = cache[pattern]; +/** `Object#toString` result references. */ - if (r) { - return r; - } +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 + */ - const replacers = negative ? NEGATIVE_REPLACERS : POSITIVE_REPLACERS; - const source = replacers.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); - return cache[pattern] = ignorecase ? new RegExp(source, 'i') : new RegExp(source); -}; // > A blank line matches no files, so it can serve as a separator for readability. +function isSymbol(value) { + return typeof value == 'symbol' || isObjectLike_1(value) && _baseGetTag(value) == symbolTag; +} +var isSymbol_1 = isSymbol; -const checkPattern = pattern => pattern && typeof pattern === 'string' && !REGEX_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment. -&& pattern.indexOf('#') !== 0; +/** Used to match property names within property paths. */ -const createRule = (pattern, ignorecase) => { - const origin = pattern; - let negative = false; // > An optional prefix "!" which negates the pattern; +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`. + */ - if (pattern.indexOf('!') === 0) { - negative = true; - pattern = pattern.substr(1); +function isKey(value, object) { + if (isArray_1(value)) { + return false; } - pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that - // > begin with a literal "!", for example, `"\!important!.txt"`. - .replace(REGEX_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that - // > begin with a hash. - .replace(REGEX_LEADING_EXCAPED_HASH, '#'); - const regex = make_regex(pattern, negative, ignorecase); - return { - origin, - pattern, - negative, - regex - }; -}; - -class IgnoreBase { - constructor({ - ignorecase = true - } = {}) { - this._rules = []; - this._ignorecase = ignorecase; - define(this, KEY_IGNORE, true); + var type = typeof value; - this._initCache(); + if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol_1(value)) { + return true; } - _initCache() { - this._cache = Object.create(null); - } // @param {Array.|string|Ignore} pattern + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); +} + +var _isKey = isKey; +/** Error message constants. */ - add(pattern) { - this._added = false; +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; + */ - if (typeof pattern === 'string') { - pattern = pattern.split(/\r?\n/g); - } +function memoize(func, resolver) { + if (typeof func != 'function' || resolver != null && typeof resolver != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } - make_array(pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore, - // making the behavior changed. + var memoized = function () { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; - if (this._added) { - this._initCache(); + if (cache.has(key)) { + return cache.get(key); } - return this; - } // legacy + 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`. - addPattern(pattern) { - return this.add(pattern); - } - _addPattern(pattern) { - // #32 - if (pattern && pattern[KEY_IGNORE]) { - this._rules = this._rules.concat(pattern._rules); - this._added = true; - return; - } +memoize.Cache = _MapCache; +var memoize_1 = memoize; - if (checkPattern(pattern)) { - const rule = createRule(pattern, this._ignorecase); - this._added = true; +/** Used as the maximum memoize cache size. */ - this._rules.push(rule); +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_1(func, function (key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); } - } - filter(paths) { - return make_array(paths).filter(path => this._filter(path)); - } + return key; + }); + var cache = result.cache; + return result; +} - createFilter() { - return path => this._filter(path); - } +var _memoizeCapped = memoizeCapped; - ignores(path) { - return !this._filter(path); - } // @returns `Boolean` true if the `path` is NOT ignored +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; +/** Used to match backslashes in property paths. */ - _filter(path, slices) { - if (!path) { - return false; - } +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. + */ - if (path in this._cache) { - return this._cache[path]; - } +var stringToPath = _memoizeCapped(function (string) { + var result = []; - if (!slices) { - // path/to/a.js - // ['path', 'to', 'a.js'] - slices = path.split(SLASH); + if (string.charCodeAt(0) === 46 + /* . */ + ) { + result.push(''); } - slices.pop(); - return this._cache[path] = slices.length // > It is not possible to re-include a file if a parent directory of - // > that file is excluded. - // If the path contains a parent directory, check the parent first - ? this._filter(slices.join(SLASH) + SLASH, slices) && this._test(path) // Or only test the path - : this._test(path); - } // @returns {Boolean} true if a file is NOT ignored + string.replace(rePropName, function (match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match); + }); + return result; +}); +var _stringToPath = stringToPath; +/** + * 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); - _test(path) { - // Explicitly define variable type by setting matched to `0` - let matched = 0; + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } - this._rules.forEach(rule => { - // if matched = true, then we only test negative rules - // if matched = false, then we test non-negative rules - if (!(matched ^ rule.negative)) { - matched = rule.negative ^ rule.regex.test(path); - } - }); + return result; +} - return !matched; - } +var _arrayMap = arrayMap; -} // Windows -// -------------------------------------------------------------- +/** Used as references for various `Number` constants. */ -/* istanbul ignore if */ +var INFINITY$2 = 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 ( // Detect `process` so that it can run in browsers. -typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { - const filter = IgnoreBase.prototype._filter; - /* eslint no-control-regex: "off" */ + if (isArray_1(value)) { + // Recursively convert values (susceptible to call stack limits). + return _arrayMap(value, baseToString) + ''; + } - const make_posix = str => /^\\\\\?\\/.test(str) || /[^\x00-\x80]+/.test(str) ? str : str.replace(/\\/g, '/'); + if (isSymbol_1(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } - IgnoreBase.prototype._filter = function filterWin32(path, slices) { - path = make_posix(path); - return filter.call(this, path, slices); - }; + var result = value + ''; + return result == '0' && 1 / value == -INFINITY$2 ? '-0' : result; } -var ignore = options => new IgnoreBase(options); +var _baseToString = baseToString; /** - * @param {string} filename - * @returns {Promise} + * 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 getFileContentOrNull(filename) { - return new Promise((resolve, reject) => { - fs__default['default'].readFile(filename, "utf8", (error, data) => { - if (error && error.code !== "ENOENT") { - reject(createError(filename, error)); - } else { - resolve(error ? null : data); - } - }); - }); +function toString(value) { + return value == null ? '' : _baseToString(value); } -/** - * @param {string} filename - * @returns {null | string} - */ +var toString_1 = toString; -getFileContentOrNull.sync = function (filename) { - try { - return fs__default['default'].readFileSync(filename, "utf8"); - } catch (error) { - if (error && error.code === "ENOENT") { - return null; - } +/** + * 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. + */ - throw createError(filename, error); +function castPath(value, object) { + if (isArray_1(value)) { + return value; } -}; -function createError(filename, error) { - return new Error(`Unable to read ${filename}: ${error.message}`); + return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); } -var getFileContentOrNull_1 = getFileContentOrNull; +var _castPath = castPath; + +/** Used as references for various `Number` constants. */ +var INFINITY$1 = 1 / 0; /** - * @param {string?} ignorePath - * @param {boolean?} withNodeModules + * 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_1(value)) { + return value; + } -async function createIgnorer(ignorePath, withNodeModules) { - const ignoreContent = ignorePath ? await getFileContentOrNull_1(path__default['default'].resolve(ignorePath)) : null; - return _createIgnorer(ignoreContent, withNodeModules); + var result = value + ''; + return result == '0' && 1 / value == -INFINITY$1 ? '-0' : result; } -/** - * @param {string?} ignorePath - * @param {boolean?} withNodeModules - */ +var _toKey = toKey; -createIgnorer.sync = function (ignorePath, withNodeModules) { - const ignoreContent = !ignorePath ? null : getFileContentOrNull_1.sync(path__default['default'].resolve(ignorePath)); - return _createIgnorer(ignoreContent, withNodeModules); -}; /** - * @param {null | string} ignoreContent - * @param {boolean?} withNodeModules + * 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; -function _createIgnorer(ignoreContent, withNodeModules) { - const ignorer = ignore().add(ignoreContent || ""); - - if (!withNodeModules) { - ignorer.add("node_modules"); + while (object != null && index < length) { + object = object[_toKey(path[index++])]; } - return ignorer; + return index && index == length ? object : undefined; } -var createIgnorer_1 = createIgnorer; +var _baseGet = baseGet; /** - * @typedef {{ ignorePath?: string, withNodeModules?: boolean, plugins: object }} FileInfoOptions - * @typedef {{ ignored: boolean, inferredParser: string | null }} FileInfoResult + * 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; +} + +var get_1 = get; + /** - * @param {string} filePath - * @param {FileInfoOptions} opts - * @returns {Promise} + * The base implementation of `_.hasIn` without support for deep paths. * - * Please note that prettier.getFileInfo() expects opts.plugins to be an array of paths, - * not an object. A transformation from this array to an object is automatically done - * internally by the method wrapper. See withPlugins() in index.js. + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} +var _baseHasIn = baseHasIn; -async function getFileInfo(filePath, opts) { - if (typeof filePath !== "string") { - throw new TypeError(`expect \`filePath\` to be a string, got \`${typeof filePath}\``); - } - - const ignorer = await createIgnorer_1(opts.ignorePath, opts.withNodeModules); - return _getFileInfo({ - ignorer, - filePath, - plugins: opts.plugins, - resolveConfig: opts.resolveConfig, - ignorePath: opts.ignorePath, - sync: false - }); -} /** - * @param {string} filePath - * @param {FileInfoOptions} opts - * @returns {FileInfoResult} + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. */ +function hasPath(object, path, hasFunc) { + path = _castPath(path, object); + var index = -1, + length = path.length, + result = false; -getFileInfo.sync = function (filePath, opts) { - if (typeof filePath !== "string") { - throw new TypeError(`expect \`filePath\` to be a string, got \`${typeof filePath}\``); - } + while (++index < length) { + var key = _toKey(path[index]); - const ignorer = createIgnorer_1.sync(opts.ignorePath, opts.withNodeModules); - return _getFileInfo({ - ignorer, - filePath, - plugins: opts.plugins, - resolveConfig: opts.resolveConfig, - ignorePath: opts.ignorePath, - sync: true - }); -}; + if (!(result = object != null && hasFunc(object, key))) { + break; + } -function getFileParser(resolvedConfig, filePath, plugins) { - if (resolvedConfig && resolvedConfig.parser) { - return resolvedConfig.parser; + object = object[key]; } - const inferredParser = options$1.inferParser(filePath, plugins); - - if (inferredParser) { - return inferredParser; + if (result || ++index != length) { + return result; } - return null; + length = object == null ? 0 : object.length; + return !!length && isLength_1(length) && _isIndex(key, length) && (isArray_1(object) || isArguments_1(object)); } -function _getFileInfo({ - ignorer, - filePath, - plugins, - resolveConfig = false, - ignorePath, - sync = false -}) { - const normalizedFilePath = normalizeFilePath(filePath, ignorePath); - const fileInfo = { - ignored: ignorer.ignores(normalizedFilePath), - inferredParser: null - }; - - if (fileInfo.ignored) { - return fileInfo; - } - - let resolvedConfig; - - if (resolveConfig) { - if (sync) { - resolvedConfig = resolveConfig_1.resolveConfig.sync(filePath); - } else { - return resolveConfig_1.resolveConfig(filePath).then(resolvedConfig => { - fileInfo.inferredParser = getFileParser(resolvedConfig, filePath, plugins); - return fileInfo; - }); - } - } +var _hasPath = hasPath; - fileInfo.inferredParser = getFileParser(resolvedConfig, filePath, plugins); - return fileInfo; -} +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ -function normalizeFilePath(filePath, ignorePath) { - return ignorePath ? path__default['default'].relative(path__default['default'].dirname(ignorePath), filePath) : filePath; +function hasIn(object, path) { + return object != null && _hasPath(object, path, _baseHasIn); } -var getFileInfo_1 = getFileInfo; +var hasIn_1 = hasIn; -const { - getMaxContinuousCount: getMaxContinuousCount$1, - getStringWidth: getStringWidth$2, - getAlignmentSize: getAlignmentSize$2, - getIndentSize: getIndentSize$1, - skip: skip$1, - skipWhitespace: skipWhitespace$1, - skipSpaces: skipSpaces$2, - skipNewline: skipNewline$2, - skipToLineEnd: skipToLineEnd$1, - skipEverythingButNewLine: skipEverythingButNewLine$1, - skipInlineComment: skipInlineComment$1, - skipTrailingComment: skipTrailingComment$1, - hasNewline: hasNewline$2, - hasNewlineInRange: hasNewlineInRange$1, - hasSpaces: hasSpaces$1, - isNextLineEmpty: isNextLineEmpty$1, - isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$1, - isPreviousLineEmpty: isPreviousLineEmpty$2, - getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$1, - makeString: makeString$1, - addLeadingComment: addLeadingComment$2, - addDanglingComment: addDanglingComment$2, - addTrailingComment: addTrailingComment$2 -} = util; -var utilShared = { - getMaxContinuousCount: getMaxContinuousCount$1, - getStringWidth: getStringWidth$2, - getAlignmentSize: getAlignmentSize$2, - getIndentSize: getIndentSize$1, - skip: skip$1, - skipWhitespace: skipWhitespace$1, - skipSpaces: skipSpaces$2, - skipNewline: skipNewline$2, - skipToLineEnd: skipToLineEnd$1, - skipEverythingButNewLine: skipEverythingButNewLine$1, - skipInlineComment: skipInlineComment$1, - skipTrailingComment: skipTrailingComment$1, - hasNewline: hasNewline$2, - hasNewlineInRange: hasNewlineInRange$1, - hasSpaces: hasSpaces$1, - isNextLineEmpty: isNextLineEmpty$1, - isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$1, - isPreviousLineEmpty: isPreviousLineEmpty$2, - getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$1, - makeString: makeString$1, - addLeadingComment: addLeadingComment$2, - addDanglingComment: addDanglingComment$2, - addTrailingComment: addTrailingComment$2 -}; +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; /** - * Removes all key-value entries from the list cache. + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * * @private - * @name clear - * @memberOf ListCache - */ -function listCacheClear() { - this.__data__ = []; - this.size = 0; + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + +function baseMatchesProperty(path, srcValue) { + if (_isKey(path) && _isStrictComparable(srcValue)) { + return _matchesStrictComparable(_toKey(path), srcValue); + } + + return function (object) { + var objValue = get_1(object, path); + return objValue === undefined && objValue === srcValue ? hasIn_1(object, path) : _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; } -var _listCacheClear = listCacheClear; +var _baseMatchesProperty = baseMatchesProperty; /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. + * This method returns the first argument it receives. * * @static + * @since 0.1.0 * @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`. + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. * @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); + * console.log(_.identity(object) === object); * // => true */ -function eq(value, other) { - return value === other || value !== value && other !== other; +function identity$2(value) { + return value; } -var eq_1 = eq; +var identity_1 = identity$2; /** - * Gets the index at which the `key` is found in `array` of key-value pairs. + * The base implementation of `_.property` without support for deep paths. * * @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`. + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. */ +function baseProperty(key) { + return function (object) { + return object == null ? undefined : object[key]; + }; +} -function assocIndexOf(array, key) { - var length = array.length; +var _baseProperty = baseProperty; - while (length--) { - if (eq_1(array[length][0], key)) { - return length; - } - } +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ - return -1; +function basePropertyDeep(path) { + return function (object) { + return _baseGet(object, path); + }; } -var _assocIndexOf = assocIndexOf; +var _basePropertyDeep = basePropertyDeep; -/** Used for built-in method references. */ +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ -var arrayProto = Array.prototype; -/** Built-in value references. */ +function property$1(path) { + return _isKey(path) ? _baseProperty(_toKey(path)) : _basePropertyDeep(path); +} + +var property_1 = property$1; -var splice = arrayProto.splice; /** - * Removes `key` and its value from the list cache. + * The base implementation of `_.iteratee`. * * @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`. + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. */ -function listCacheDelete(key) { - var data = this.__data__, - index = _assocIndexOf(data, key); - - if (index < 0) { - return false; +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; } - var lastIndex = data.length - 1; + if (value == null) { + return identity_1; + } - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); + if (typeof value == 'object') { + return isArray_1(value) ? _baseMatchesProperty(value[0], value[1]) : _baseMatches(value); } - --this.size; - return true; + return property_1(value); } -var _listCacheDelete = listCacheDelete; +var _baseIteratee = baseIteratee; /** - * Gets the list cache value for `key`. + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. * * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); -function listCacheGet(key) { - var data = this.__data__, - index = _assocIndexOf(data, key); - return index < 0 ? undefined : data[index][1]; + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + + return -1; } -var _listCacheGet = listCacheGet; +var _baseFindIndex = baseFindIndex; /** - * Checks if a list cache value for `key` exists. + * The base implementation of `_.isNaN` without support for number objects. * * @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`. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. */ - -function listCacheHas(key) { - return _assocIndexOf(this.__data__, key) > -1; +function baseIsNaN(value) { + return value !== value; } -var _listCacheHas = listCacheHas; +var _baseIsNaN = baseIsNaN; /** - * Sets the list cache `key` to `value`. + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. * * @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. + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. */ +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; -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; + while (++index < length) { + if (array[index] === value) { + return index; + } } - return this; + return -1; } -var _listCacheSet = listCacheSet; +var _strictIndexOf = strictIndexOf; /** - * Creates an list cache object. + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. */ -function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); +function baseIndexOf(array, value, fromIndex) { + return value === value ? _strictIndexOf(array, value, fromIndex) : _baseFindIndex(array, _baseIsNaN, fromIndex); +} - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} // Add methods to `ListCache`. +var _baseIndexOf = baseIndexOf; +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ -ListCache.prototype.clear = _listCacheClear; -ListCache.prototype['delete'] = _listCacheDelete; -ListCache.prototype.get = _listCacheGet; -ListCache.prototype.has = _listCacheHas; -ListCache.prototype.set = _listCacheSet; -var _ListCache = ListCache; +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && _baseIndexOf(array, value, 0) > -1; +} + +var _arrayIncludes = arrayIncludes; /** - * Removes all key-value entries from the stack. + * This function is like `arrayIncludes` except that it accepts a comparator. * * @private - * @name clear - * @memberOf Stack + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; -function stackClear() { - this.__data__ = new _ListCache(); - this.size = 0; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + + return false; } -var _stackClear = stackClear; +var _arrayIncludesWith = arrayIncludesWith; /** - * Removes `key` and its value from the stack. + * This method returns `undefined`. * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] */ -function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - this.size = data.size; - return result; +function noop$1() {// No operation performed. } -var _stackDelete = stackDelete; +var noop_1 = noop$1; + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; /** - * Gets the stack value for `key`. + * Creates a set object of `values`. * * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. */ -function stackGet(key) { - return this.__data__.get(key); -} -var _stackGet = stackGet; +var createSet = !(_Set && 1 / _setToArray(new _Set([, -0]))[1] == INFINITY) ? noop_1 : function (values) { + return new _Set(values); +}; +var _createSet = createSet; + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; /** - * Checks if a stack value for `key` exists. + * The base implementation of `_.uniqBy` without support for iteratee shorthands. * * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. */ -function stackHas(key) { - return this.__data__.has(key); + +function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = _arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = _arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : _createSet(array); + + if (set) { + return _setToArray(set); + } + + isCommon = false; + includes = _cacheHas; + seen = new _SetCache(); + } else { + seen = iteratee ? [] : result; + } + + outer: while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + value = comparator || value !== 0 ? value : 0; + + if (isCommon && computed === computed) { + var seenIndex = seen.length; + + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + + if (iteratee) { + seen.push(computed); + } + + result.push(value); + } else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + + result.push(value); + } + } + + return result; } -var _stackHas = stackHas; +var _baseUniq = baseUniq; /** - * 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('')`) + * This method is like `_.uniq` except that it accepts `iteratee` which is + * invoked for each element in `array` to generate the criterion by which + * uniqueness is computed. The order of result values is determined by the + * order they occur in the array. The iteratee is invoked with one argument: + * (value). * * @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`. + * @since 4.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [iteratee=_.identity] The iteratee invoked per element. + * @returns {Array} Returns the new duplicate free array. * @example * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true + * _.uniqBy([2.1, 1.2, 2.3], Math.floor); + * // => [2.1, 1.2] * - * _.isObject(null); - * // => false + * // The `_.property` iteratee shorthand. + * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); + * // => [{ 'x': 1 }, { 'x': 2 }] */ -function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); -} -var isObject_1 = isObject; +function uniqBy(array, iteratee) { + return array && array.length ? _baseUniq(array, _baseIteratee(iteratee)) : []; +} -/** `Object#toString` result references. */ +var uniqBy_1 = uniqBy; -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 + * A specialized version of `baseAggregator` for arrays. * - * _.isFunction(_); - * // => true + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ +function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + + return accumulator; +} + +var _arrayAggregator = arrayAggregator; + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. * - * _.isFunction(/abc/); - * // => false + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. */ +function createBaseFor(fromRight) { + return function (object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; -function isFunction(value) { - if (!isObject_1(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. + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } - var tag = _baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + return object; + }; } -var isFunction_1 = isFunction; - -/** Used to detect overreaching core-js shims. */ +var _createBaseFor = createBaseFor; -var coreJsData = _root['__core-js_shared__']; -var _coreJsData = coreJsData; +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ -/** Used to detect methods masquerading as native. */ +var baseFor = _createBaseFor(); +var _baseFor = baseFor; -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. + * The base implementation of `_.forOwn` without support for iteratee shorthands. * * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. */ - -function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; +function baseForOwn(object, iteratee) { + return object && _baseFor(object, iteratee, keys_1); } -var _isMasked = isMasked; - -/** Used for built-in method references. */ -var funcProto = Function.prototype; -/** Used to resolve the decompiled source of functions. */ +var _baseForOwn = baseForOwn; -var funcToString = funcProto.toString; /** - * Converts `func` to its source code. + * Creates a `baseEach` or `baseEachRight` function. * * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. */ -function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} +function createBaseEach(eachFunc, fromRight) { + return function (collection, iteratee) { + if (collection == null) { + return collection; + } - try { - return func + ''; - } catch (e) {} - } + if (!isArrayLike_1(collection)) { + return eachFunc(collection, iteratee); + } - return ''; + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while (fromRight ? index-- : ++index < length) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + + return collection; + }; } -var _toSource = toSource; +var _createBaseEach = createBaseEach; /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. */ -var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; -/** Used to detect host constructors (Safari). */ - -var reIsHostCtor = /^\[object .+?Constructor\]$/; -/** Used for built-in method references. */ - -var funcProto$1 = Function.prototype, - objectProto$3 = Object.prototype; -/** Used to resolve the decompiled source of functions. */ - -var funcToString$1 = funcProto$1.toString; -/** Used to check objects for own properties. */ - -var hasOwnProperty$4 = objectProto$3.hasOwnProperty; -/** Used to detect if a method is native. */ +var baseEach = _createBaseEach(_baseForOwn); +var _baseEach = baseEach; -var reIsNative = RegExp('^' + funcToString$1.call(hasOwnProperty$4).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); /** - * The base implementation of `_.isNative` without bad shim checks. + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. */ -function baseIsNative(value) { - if (!isObject_1(value) || _isMasked(value)) { - return false; - } - - var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; - return pattern.test(_toSource(value)); +function baseAggregator(collection, setter, iteratee, accumulator) { + _baseEach(collection, function (value, key, collection) { + setter(accumulator, value, iteratee(value), collection); + }); + return accumulator; } -var _baseIsNative = baseIsNative; +var _baseAggregator = baseAggregator; /** - * Gets the value at `key` of `object`. + * Creates a function like `_.groupBy`. * * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. */ -function getValue(object, key) { - return object == null ? undefined : object[key]; + +function createAggregator(setter, initializer) { + return function (collection, iteratee) { + var func = isArray_1(collection) ? _arrayAggregator : _baseAggregator, + accumulator = initializer ? initializer() : {}; + return func(collection, setter, _baseIteratee(iteratee), accumulator); + }; } -var _getValue = getValue; +var _createAggregator = createAggregator; /** - * Gets the native function at `key` of `object`. + * Creates an array of elements split into two groups, the first of which + * contains elements `predicate` returns truthy for, the second of which + * contains elements `predicate` returns falsey for. The predicate is + * invoked with one argument: (value). * - * @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`. + * @static + * @memberOf _ + * @since 3.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the array of grouped elements. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': true }, + * { 'user': 'pebbles', 'age': 1, 'active': false } + * ]; + * + * _.partition(users, function(o) { return o.active; }); + * // => objects for [['fred'], ['barney', 'pebbles']] + * + * // The `_.matches` iteratee shorthand. + * _.partition(users, { 'age': 1, 'active': false }); + * // => objects for [['pebbles'], ['barney', 'fred']] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.partition(users, ['active', false]); + * // => objects for [['barney', 'pebbles'], ['fred']] + * + * // The `_.property` iteratee shorthand. + * _.partition(users, 'active'); + * // => objects for [['fred'], ['barney', 'pebbles']] */ -function getNative(object, key) { - var value = _getValue(object, key); - return _baseIsNative(value) ? value : undefined; -} +var partition = _createAggregator(function (result, value, key) { + result[key ? 0 : 1].push(value); +}, function () { + return [[], []]; +}); +var partition_1 = partition; -var _getNative = getNative; +var arrayUnion = (...arguments_) => { + return [...new Set([].concat(...arguments_))]; +}; -/* Built-in method references that are verified to be native. */ +/* + * merge2 + * https://github.com/teambition/merge2 + * + * Copyright (c) 2014-2020 Teambition + * Licensed under the MIT license. + */ -var Map$1 = _getNative(_root, 'Map'); -var _Map = Map$1; -/* Built-in method references that are verified to be native. */ +const PassThrough = stream_1__default['default'].PassThrough; +const slice = Array.prototype.slice; +var merge2_1 = merge2; -var nativeCreate = _getNative(Object, 'create'); -var _nativeCreate = nativeCreate; +function merge2() { + const streamsQueue = []; + const args = slice.call(arguments); + let merging = false; + let options = args[args.length - 1]; -/** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop(); + } else { + options = {}; + } -function hashClear() { - this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; - this.size = 0; -} + const doEnd = options.end !== false; + const doPipeError = options.pipeError === true; -var _hashClear = hashClear; + if (options.objectMode == null) { + options.objectMode = true; + } -/** - * 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; -} + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024; + } -var _hashDelete = hashDelete; + const mergedStream = PassThrough(options); -/** Used to stand-in for `undefined` hash values. */ + function addStream() { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)); + } -var HASH_UNDEFINED = '__lodash_hash_undefined__'; -/** Used for built-in method references. */ + mergeStream(); + return this; + } -var objectProto$4 = Object.prototype; -/** Used to check objects for own properties. */ + function mergeStream() { + if (merging) { + return; + } -var hasOwnProperty$5 = objectProto$4.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. - */ + merging = true; + let streams = streamsQueue.shift(); -function hashGet(key) { - var data = this.__data__; + if (!streams) { + process.nextTick(endStream); + return; + } - if (_nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } + if (!Array.isArray(streams)) { + streams = [streams]; + } - return hasOwnProperty$5.call(data, key) ? data[key] : undefined; -} + let pipesCount = streams.length + 1; -var _hashGet = hashGet; + function next() { + if (--pipesCount > 0) { + return; + } -/** Used for built-in method references. */ + merging = false; + mergeStream(); + } -var objectProto$5 = Object.prototype; -/** Used to check objects for own properties. */ + function pipe(stream) { + function onend() { + stream.removeListener('merge2UnpipeEnd', onend); + stream.removeListener('end', onend); -var hasOwnProperty$6 = objectProto$5.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`. - */ + if (doPipeError) { + stream.removeListener('error', onerror); + } -function hashHas(key) { - var data = this.__data__; - return _nativeCreate ? data[key] !== undefined : hasOwnProperty$6.call(data, key); -} + next(); + } -var _hashHas = hashHas; + function onerror(err) { + mergedStream.emit('error', err); + } // skip ended stream -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED$1 = '__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. - */ + if (stream._readableState.endEmitted) { + return next(); + } -function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = _nativeCreate && value === undefined ? HASH_UNDEFINED$1 : value; - return this; -} + stream.on('merge2UnpipeEnd', onend); + stream.on('end', onend); -var _hashSet = hashSet; + if (doPipeError) { + stream.on('error', onerror); + } -/** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ + stream.pipe(mergedStream, { + end: false + }); // compatible for old stream -function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); + stream.resume(); + } - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } -} // Add methods to `Hash`. + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]); + } + next(); + } -Hash.prototype.clear = _hashClear; -Hash.prototype['delete'] = _hashDelete; -Hash.prototype.get = _hashGet; -Hash.prototype.has = _hashHas; -Hash.prototype.set = _hashSet; -var _Hash = Hash; + function endStream() { + merging = false; // emit 'queueDrain' when all streams merged. -/** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ + mergedStream.emit('queueDrain'); -function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new _Hash(), - 'map': new (_Map || _ListCache)(), - 'string': new _Hash() - }; -} + if (doEnd) { + mergedStream.end(); + } + } -var _mapCacheClear = mapCacheClear; + mergedStream.setMaxListeners(0); + mergedStream.add = addStream; + mergedStream.on('unpipe', function (stream) { + stream.emit('merge2UnpipeEnd'); + }); -/** - * 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; -} + if (args.length) { + addStream.apply(null, args); + } -var _isKeyable = isKeyable; + return mergedStream; +} // check and pause streams for pipe. -/** - * 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; -} +function pauseStreams(streams, options) { + if (!Array.isArray(streams)) { + // Backwards-compat with old-style streams + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)); + } -var _getMapData = getMapData; + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error('Only readable stream can be merged.'); + } -/** - * 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`. - */ + streams.pause(); + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options); + } + } -function mapCacheDelete(key) { - var result = _getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; + return streams; } -var _mapCacheDelete = mapCacheDelete; +var array$1 = createCommonjsModule(function (module, exports) { -/** - * 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. - */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.splitWhen = exports.flatten = void 0; -function mapCacheGet(key) { - return _getMapData(this, key).get(key); -} + function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); + } -var _mapCacheGet = mapCacheGet; + exports.flatten = flatten; -/** - * 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 splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } else { + result[groupIndex].push(item); + } + } + + return result; + } -function mapCacheHas(key) { - return _getMapData(this, key).has(key); -} + exports.splitWhen = splitWhen; +}); -var _mapCacheHas = mapCacheHas; +var errno = createCommonjsModule(function (module, exports) { -/** - * 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. - */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.isEnoentCodeError = void 0; -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; -} + function isEnoentCodeError(error) { + return error.code === 'ENOENT'; + } -var _mapCacheSet = mapCacheSet; + exports.isEnoentCodeError = isEnoentCodeError; +}); -/** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ +var fs$1 = createCommonjsModule(function (module, exports) { -function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - this.clear(); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createDirentFromStats = void 0; + + class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); } -} // Add methods to `MapCache`. + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } -MapCache.prototype.clear = _mapCacheClear; -MapCache.prototype['delete'] = _mapCacheDelete; -MapCache.prototype.get = _mapCacheGet; -MapCache.prototype.has = _mapCacheHas; -MapCache.prototype.set = _mapCacheSet; -var _MapCache = MapCache; + exports.createDirentFromStats = createDirentFromStats; +}); -/** Used as the size to enable large array optimizations. */ +var path_1 = createCommonjsModule(function (module, exports) { -var LARGE_ARRAY_SIZE = 200; -/** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; + const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ -function stackSet(key, value) { - var data = this.__data__; + const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; + /** + * Designed to work only with simple paths: `dir\\file`. + */ - if (data instanceof _ListCache) { - var pairs = data.__data__; + function unixify(filepath) { + return filepath.replace(/\\/g, '/'); + } - if (!_Map || pairs.length < LARGE_ARRAY_SIZE - 1) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } + exports.unixify = unixify; - data = this.__data__ = new _MapCache(pairs); + function makeAbsolute(cwd, filepath) { + return path__default['default'].resolve(cwd, filepath); } - data.set(key, value); - this.size = data.size; - return this; -} + exports.makeAbsolute = makeAbsolute; -var _stackSet = stackSet; + function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); + } -/** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ + exports.escape = escape; -function Stack(entries) { - var data = this.__data__ = new _ListCache(entries); - this.size = data.size; -} // Add methods to `Stack`. + function removeLeadingDotSegment(entry) { + // We do not use `startsWith` because this is 10x slower than current implementation for some cases. + // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with + if (entry.charAt(0) === '.') { + const secondCharactery = entry.charAt(1); + + if (secondCharactery === '/' || secondCharactery === '\\') { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } + return entry; + } -Stack.prototype.clear = _stackClear; -Stack.prototype['delete'] = _stackDelete; -Stack.prototype.get = _stackGet; -Stack.prototype.has = _stackHas; -Stack.prototype.set = _stackSet; -var _Stack = Stack; + exports.removeLeadingDotSegment = removeLeadingDotSegment; +}); -/** Used to stand-in for `undefined` hash values. */ -var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; -/** - * Adds `value` to the array cache. +/*! + * is-extglob * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. */ +var isExtglob = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } -function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED$2); + var match; - return this; -} + while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } -var _setCacheAdd = setCacheAdd; + return false; +}; -/** - * Checks if `value` is in the array cache. +/*! + * is-glob * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. */ -function setCacheHas(value) { - return this.__data__.has(value); -} +var chars$1 = { + '{': '}', + '(': ')', + '[': ']' +}; +var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; +var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; -var _setCacheHas = setCacheHas; +var isGlob = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } -/** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ + if (isExtglob(str)) { + return true; + } -function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - this.__data__ = new _MapCache(); + var regex = strictRegex; + var match; // optionally relax regex - while (++index < length) { - this.add(values[index]); + if (options && options.strict === false) { + regex = relaxedRegex; } -} // Add methods to `SetCache`. + while (match = regex.exec(str)) { + if (match[2]) return true; + var idx = match.index + match[0].length; // if an open bracket/brace/paren is escaped, + // set the index to the next closing character -SetCache.prototype.add = SetCache.prototype.push = _setCacheAdd; -SetCache.prototype.has = _setCacheHas; -var _SetCache = SetCache; + var open = match[1]; + var close = open ? chars$1[open] : null; -/** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ -function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; + if (open && close) { + var n = str.indexOf(close, idx); - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; + if (n !== -1) { + idx = n + 1; + } } + + str = str.slice(idx); } return false; -} - -var _arraySome = arraySome; +}; +var pathPosixDirname = path__default['default'].posix.dirname; +var isWin32 = os__default['default'].platform() === 'win32'; +var slash$1 = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby$1 = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} */ -function cacheHas(cache, key) { - return cache.has(key); -} -var _cacheHas = cacheHas; +var globParent = function globParent(str, opts) { + var options = Object.assign({ + flipBackslashes: true + }, opts); // flip windows path separators -/** Used to compose bitmasks for value comparisons. */ + if (options.flipBackslashes && isWin32 && str.indexOf(slash$1) < 0) { + str = str.replace(backslash, slash$1); + } // special case for strings ending in enclosure containing path separator -var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; -/** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ -function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; + if (enclosure.test(str)) { + str += slash$1; + } // preserves full path in case of trailing path separator - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } // Check that cyclic values are equal. + str += 'a'; // remove path parts that are globby - var arrStacked = stack.get(array); - var othStacked = stack.get(other); + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby$1.test(str)); // remove escape chars and return result - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = bitmask & COMPARE_UNORDERED_FLAG ? new _SetCache() : undefined; - stack.set(array, other); - stack.set(other, array); // Ignore non-index properties. + return str.replace(escaped, '$1'); +}; - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; +var utils$a = createCommonjsModule(function (module, exports) { - if (customizer) { - var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); } - if (compared !== undefined) { - if (compared) { - continue; - } - - result = false; - break; - } // Recursively compare arrays (susceptible to call stack limits). - - - if (seen) { - if (!_arraySome(other, function (othValue, othIndex) { - if (!_cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - result = false; - break; + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); } - } - - stack['delete'](array); - stack['delete'](other); - return result; -} - -var _equalArrays = equalArrays; - -/** Built-in value references. */ - -var Uint8Array = _root.Uint8Array; -var _Uint8Array = Uint8Array; - -/** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ -function mapToArray(map) { - var index = -1, - result = Array(map.size); - map.forEach(function (value, key) { - result[++index] = [key, value]; - }); - return result; -} -var _mapToArray = mapToArray; + return false; + }; + /** + * Find a node of the given type + */ -/** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ -function setToArray(set) { - var index = -1, - result = Array(set.size); - set.forEach(function (value) { - result[++index] = value; - }); - return result; -} -var _setToArray = setToArray; + exports.find = (node, type) => node.nodes.find(node => node.type === type); + /** + * Find a node of the given type + */ -/** Used to compose bitmasks for value comparisons. */ -var COMPARE_PARTIAL_FLAG$1 = 1, - COMPARE_UNORDERED_FLAG$1 = 2; -/** `Object#toString` result references. */ + exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return (Number(max) - Number(min)) / Number(step) >= limit; + }; + /** + * Escape the given node with '\\' before node.value + */ -var boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - mapTag = '[object Map]', - numberTag = '[object Number]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]'; -var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]'; -/** Used to convert symbols to primitives and strings. */ -var symbolProto = _Symbol ? _Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; -/** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ + exports.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) return; -function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { - return false; + if (type && node.type === type || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; } + } + }; + /** + * Returns true if the given brace node should be enclosed in literal braces + */ - object = object.buffer; - other = other.buffer; - case arrayBufferTag: - if (object.byteLength != other.byteLength || !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) { - return false; - } + exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if (node.commas >> 0 + node.ranges >> 0 === 0) { + node.invalid = true; return true; + } - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq_1(+object, +other); + return false; + }; + /** + * Returns true if a brace node is invalid. + */ - case errorTag: - return object.name == other.name && object.message == other.message; - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == other + ''; + exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; - case mapTag: - var convert = _mapToArray; + if (block.commas >> 0 + block.ranges >> 0 === 0) { + block.invalid = true; + return true; + } - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1; - convert || (convert = _setToArray); + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } - if (object.size != other.size && !isPartial) { - return false; - } // Assume cyclic values are equal. + return false; + }; + /** + * Returns true if a node is an open or close node + */ - var stacked = stack.get(object); + exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } - if (stacked) { - return stacked == other; - } + return node.open === true || node.close === true; + }; + /** + * Reduce an array of text nodes. + */ - bitmask |= COMPARE_UNORDERED_FLAG$1; // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; + exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; + }, []); + /** + * Flatten an array + */ - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } + exports.flatten = (...args) => { + const result = []; - return false; -} + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); + } -var _equalByTag = equalByTag; + return result; + }; -/** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ + flat(args); + return result; + }; +}); -function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object)); -} +var stringify$2 = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils$a.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; -var _baseGetAllKeys = baseGetAllKeys; + if (node.value) { + if ((invalidBlock || invalidNode) && utils$a.isOpenOrClose(node)) { + return '\\' + node.value; + } -/** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ -function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; + return node.value; + } - while (++index < length) { - var value = array[index]; + if (node.value) { + return node.value; + } - if (predicate(value, index, array)) { - result[resIndex++] = value; + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } } - } - return result; -} + return output; + }; -var _arrayFilter = arrayFilter; + return stringify(ast); +}; -/** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] +/*! + * is-number * - * console.log(arrays[0] === arrays[1]); - * // => false + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. */ -function stubArray() { - return []; -} - -var stubArray_1 = stubArray; -/** Used for built-in method references. */ +var isNumber$1 = function (num) { + if (typeof num === 'number') { + return num - num === 0; + } -var objectProto$6 = Object.prototype; -/** Built-in value references. */ + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } -var propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable; -/* Built-in method references for those with the same name as other `lodash` methods. */ + return false; +}; -var nativeGetSymbols = Object.getOwnPropertySymbols; -/** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ +const toRegexRange = (min, max, options) => { + if (isNumber$1(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } -var getSymbols = !nativeGetSymbols ? stubArray_1 : function (object) { - if (object == null) { - return []; + if (max === void 0 || min === max) { + return String(min); } - object = Object(object); - return _arrayFilter(nativeGetSymbols(object), function (symbol) { - return propertyIsEnumerable$1.call(object, symbol); - }); -}; -var _getSymbols = getSymbols; + if (isNumber$1(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } -/** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ -function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); + let opts = Object.assign({ + relaxZeros: true + }, options); - while (++index < n) { - result[index] = iteratee(index); + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; } - return result; -} - -var _baseTimes = baseTimes; + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; -/** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ -function stubFalse() { - return false; -} + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } -var stubFalse_1 = stubFalse; + let a = Math.min(min, max); + let b = Math.max(min, max); -var isBuffer_1 = createCommonjsModule(function (module, exports) { - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; - /** Detect free variable `module`. */ + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - /** Detect the popular CommonJS extension `module.exports`. */ + if (opts.capture) { + return `(${result})`; + } - var moduleExports = freeModule && freeModule.exports === freeExports; - /** Built-in value references. */ + if (opts.wrap === false) { + return result; + } - var Buffer = moduleExports ? _root.Buffer : undefined; - /* Built-in method references for those with the same name as other `lodash` methods. */ + return `(?:${result})`; + } - var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ + let isPadded = hasPadding(min) || hasPadding(max); + let state = { + min, + max, + a, + b + }; + let positives = []; + let negatives = []; - var isBuffer = nativeIsBuffer || stubFalse_1; - module.exports = isBuffer; -}); + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER$2 = 9007199254740991; -/** Used to detect unsigned integer values. */ + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } -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`. - */ + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } -function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER$2 : length; - return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length; -} + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives); -var _isIndex = isIndex; + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && positives.length + negatives.length > 1) { + state.result = `(?:${state.result})`; + } -/** Used as references for various `Number` constants. */ -var MAX_SAFE_INTEGER$3 = 9007199254740991; -/** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ + toRegexRange.cache[cacheKey] = state; + return state.result; +}; -function isLength(value) { - return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$3; +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false) || []; + let onlyPositive = filterPatterns(pos, neg, '', false) || []; + let intersected = filterPatterns(neg, pos, '-?', true) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); } -var isLength_1 = isLength; +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + let stop = countNines(min, nines); + let stops = new Set([max]); -/** `Object#toString` result references. */ + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } -var argsTag$1 = '[object Arguments]', - arrayTag = '[object Array]', - boolTag$1 = '[object Boolean]', - dateTag$1 = '[object Date]', - errorTag$1 = '[object Error]', - funcTag$1 = '[object Function]', - mapTag$1 = '[object Map]', - numberTag$1 = '[object Number]', - objectTag = '[object Object]', - regexpTag$1 = '[object RegExp]', - setTag$1 = '[object Set]', - stringTag$1 = '[object String]', - weakMapTag = '[object WeakMap]'; -var arrayBufferTag$1 = '[object ArrayBuffer]', - dataViewTag$1 = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; -/** Used to identify `toStringTag` values of typed arrays. */ + stop = countZeros(max + 1, zeros) - 1; -var typedArrayTags = {}; -typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; -typedArrayTags[argsTag$1] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$1] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag] = false; -/** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } -function baseIsTypedArray(value) { - return isObjectLike_1(value) && isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)]; + stops = [...stops]; + stops.sort(compare); + return stops; } - -var _baseIsTypedArray = baseIsTypedArray; - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} */ -function baseUnary(func) { - return function (value) { - return func(value); - }; -} -var _baseUnary = baseUnary; -var _nodeUtil = createCommonjsModule(function (module, exports) { - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; - /** Detect free variable `module`. */ +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { + pattern: start, + count: [], + digits: 0 + }; + } - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; - /** Detect the popular CommonJS extension `module.exports`. */ + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; - var moduleExports = freeModule && freeModule.exports === freeExports; - /** Detect free variable `process` from Node.js. */ + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; - var freeProcess = moduleExports && _freeGlobal.process; - /** Used to access faster Node.js helpers. */ + if (startDigit === stopDigit) { + pattern += startDigit; + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit); + } else { + count++; + } + } - var nodeUtil = function () { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } - if (types) { - return types; - } // Legacy `process.binding('util')` for Node.js < 10. + return { + pattern, + count: [count], + digits + }; +} +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }(); + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; - module.exports = nodeUtil; -}); + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } -/* Node.js helper references. */ + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } -var nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray; -/** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } -var isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray; -var isTypedArray_1 = isTypedArray; + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } -/** Used for built-in method references. */ + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; -var objectProto$7 = Object.prototype; -/** Used to check objects for own properties. */ + for (let ele of arr) { + let { + string + } = ele; // only push if _both_ are negative... -var hasOwnProperty$7 = objectProto$7.hasOwnProperty; -/** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } // or _both_ are positive -function arrayLikeKeys(value, inherited) { - var isArr = isArray_1(value), - isArg = !isArr && isArguments_1(value), - isBuff = !isArr && !isArg && isBuffer_1(value), - isType = !isArr && !isArg && !isBuff && isTypedArray_1(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? _baseTimes(value.length, String) : [], - length = result.length; - for (var key in value) { - if ((inherited || hasOwnProperty$7.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. - isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays. - isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties. - _isIndex(key, length)))) { - result.push(key); + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); } } return result; } - -var _arrayLikeKeys = arrayLikeKeys; - -/** Used for built-in method references. */ -var objectProto$8 = Object.prototype; /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + * Zip strings */ -function isPrototype(value) { - var Ctor = value && value.constructor, - proto = typeof Ctor == 'function' && Ctor.prototype || objectProto$8; - return value === proto; -} -var _isPrototype = isPrototype; +function zip(a, b) { + let arr = []; -/** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ -function overArg(func, transform) { - return function (arg) { - return func(transform(arg)); - }; -} + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); -var _overArg = overArg; + return arr; +} -/* Built-in method references for those with the same name as other `lodash` methods. */ +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} -var nativeKeys = _overArg(Object.keys, Object); -var _nativeKeys = nativeKeys; +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} -/** Used for built-in method references. */ +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} -var objectProto$9 = Object.prototype; -/** Used to check objects for own properties. */ +function countZeros(integer, zeros) { + return integer - integer % Math.pow(10, zeros); +} -var hasOwnProperty$8 = objectProto$9.hasOwnProperty; -/** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; -function baseKeys(object) { - if (!_isPrototype(object)) { - return _nativeKeys(object); + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; } - var result = []; + return ''; +} - for (var key in Object(object)) { - if (hasOwnProperty$8.call(object, key) && key != 'constructor') { - result.push(key); - } - } +function toCharacterClass(a, b, options) { + return `[${a}${b - a === 1 ? '' : '-'}${b}]`; +} - return result; +function hasPadding(str) { + return /^-?(0+)\d/.test(str); } -var _baseKeys = baseKeys; +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } -/** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; -function isArrayLike(value) { - return value != null && isLength_1(value.length) && !isFunction_1(value); -} + switch (diff) { + case 0: + return ''; -var isArrayLike_1 = isArrayLike; + case 1: + return relax ? '0?' : '0'; + + case 2: + return relax ? '0{0,2}' : '00'; + default: + { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] + * Cache */ -function keys(object) { - return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object); -} -var keys_1 = keys; +toRegexRange.cache = {}; +toRegexRange.clearCache = () => toRegexRange.cache = {}; /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. + * Expose `toRegexRange` */ -function getAllKeys(object) { - return _baseGetAllKeys(object, keys_1, _getSymbols); -} -var _getAllKeys = getAllKeys; +var toRegexRange_1 = toRegexRange; -/** Used to compose bitmasks for value comparisons. */ +const isObject$1 = val => val !== null && typeof val === 'object' && !Array.isArray(val); -var COMPARE_PARTIAL_FLAG$2 = 1; -/** Used for built-in method references. */ +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; -var objectProto$a = Object.prototype; -/** Used to check objects for own properties. */ +const isValidValue = value => { + return typeof value === 'number' || typeof value === 'string' && value !== ''; +}; -var hasOwnProperty$9 = objectProto$a.hasOwnProperty; -/** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ +const isNumber = num => Number.isInteger(+num); -function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2, - objProps = _getAllKeys(object), - objLength = objProps.length, - othProps = _getAllKeys(other), - othLength = othProps.length; +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; - if (objLength != othLength && !isPartial) { - return false; + while (value[++index] === '0'); + + return index > 0; +}; + +const stringify$1 = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; } - var index = objLength; + return options.stringify === true; +}; - while (index--) { - var key = objProps[index]; +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'); + } - if (!(isPartial ? key in other : hasOwnProperty$9.call(other, key))) { - return false; - } - } // Check that cyclic values are equal. + if (toNumber === false) { + return String(input); + } + return input; +}; - var objStacked = stack.get(object); - var othStacked = stack.get(other); +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; + if (negative) { + input = input.slice(1); + maxLength--; } - var result = true; - stack.set(object, other); - stack.set(other, object); - var skipCtor = isPartial; - - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; + while (input.length < maxLength) input = '0' + input; - if (customizer) { - var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); - } // Recursively compare objects (susceptible to call stack limits). + return negative ? '-' + input : input; +}; +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; - if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { - result = false; - break; - } + if (parts.positives.length) { + positives = parts.positives.join('|'); + } - skipCtor || (skipCtor = key == 'constructor'); + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } - if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } + if (options.wrap) { + return `(${prefix}${result})`; } - stack['delete'](object); - stack['delete'](other); return result; -} - -var _equalObjects = equalObjects; - -/* Built-in method references that are verified to be native. */ +}; -var DataView = _getNative(_root, 'DataView'); -var _DataView = DataView; +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange_1(a, b, Object.assign({ + wrap: false + }, options)); + } -/* Built-in method references that are verified to be native. */ + let start = String.fromCharCode(a); + if (a === b) return start; + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; -var Promise$1 = _getNative(_root, 'Promise'); -var _Promise = Promise$1; +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } -/* Built-in method references that are verified to be native. */ + return toRegexRange_1(start, end, options); +}; -var Set$1 = _getNative(_root, 'Set'); -var _Set = Set$1; +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util__default['default'].inspect(...args)); +}; -/* Built-in method references that are verified to be native. */ +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; -var WeakMap$1 = _getNative(_root, 'WeakMap'); -var _WeakMap = WeakMap$1; +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } -/** `Object#toString` result references. */ + return []; +}; -var mapTag$2 = '[object Map]', - objectTag$1 = '[object Object]', - promiseTag = '[object Promise]', - setTag$2 = '[object Set]', - weakMapTag$1 = '[object WeakMap]'; -var dataViewTag$2 = '[object DataView]'; -/** Used to detect maps, sets, and weakmaps. */ +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); -var dataViewCtorString = _toSource(_DataView), - mapCtorString = _toSource(_Map), - promiseCtorString = _toSource(_Promise), - setCtorString = _toSource(_Set), - weakMapCtorString = _toSource(_WeakMap); -/** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } // fix negative zero -var getTag = _baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. -if (_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2 || _Map && getTag(new _Map()) != mapTag$2 || _Promise && getTag(_Promise.resolve()) != promiseTag || _Set && getTag(new _Set()) != setTag$2 || _WeakMap && getTag(new _WeakMap()) != weakMapTag$1) { - getTag = function (value) { - var result = _baseGetTag(value), - Ctor = result == objectTag$1 ? value.constructor : undefined, - ctorString = Ctor ? _toSource(Ctor) : ''; + if (a === 0) a = 0; + if (b === 0) b = 0; + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify$1(start, end, options) === false; + let format = options.transform || transform(toNumber); - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: - return dataViewTag$2; + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } - case mapCtorString: - return mapTag$2; + let parts = { + negatives: [], + positives: [] + }; - case promiseCtorString: - return promiseTag; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); - case setCtorString: - return setTag$2; + let range = []; + let index = 0; - case weakMapCtorString: - return weakMapTag$1; - } + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); } - return result; - }; -} - -var _getTag = getTag; + a = descending ? a - step : a + step; + index++; + } -/** Used to compose bitmasks for value comparisons. */ + if (options.toRegex === true) { + return step > 1 ? toSequence(parts, options) : toRegex(range, null, Object.assign({ + wrap: false + }, options)); + } -var COMPARE_PARTIAL_FLAG$3 = 1; -/** `Object#toString` result references. */ + return range; +}; -var argsTag$2 = '[object Arguments]', - arrayTag$1 = '[object Array]', - objectTag$2 = '[object Object]'; -/** Used for built-in method references. */ +const fillLetters = (start, end, step = 1, options = {}) => { + if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) { + return invalidRange(start, end, options); + } -var objectProto$b = Object.prototype; -/** Used to check objects for own properties. */ + let format = options.transform || (val => String.fromCharCode(val)); -var hasOwnProperty$a = objectProto$b.hasOwnProperty; -/** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); -function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray_1(object), - othIsArr = isArray_1(other), - objTag = objIsArr ? arrayTag$1 : _getTag(object), - othTag = othIsArr ? arrayTag$1 : _getTag(other); - objTag = objTag == argsTag$2 ? objectTag$2 : objTag; - othTag = othTag == argsTag$2 ? objectTag$2 : othTag; - var objIsObj = objTag == objectTag$2, - othIsObj = othTag == objectTag$2, - isSameTag = objTag == othTag; + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } - if (isSameTag && isBuffer_1(object)) { - if (!isBuffer_1(other)) { - return false; - } + let range = []; + let index = 0; - objIsArr = true; - objIsObj = false; + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; } - if (isSameTag && !objIsObj) { - stack || (stack = new _Stack()); - return objIsArr || isTypedArray_1(object) ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack) : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + if (options.toRegex === true) { + return toRegex(range, null, { + wrap: false, + options + }); } - if (!(bitmask & COMPARE_PARTIAL_FLAG$3)) { - var objIsWrapped = objIsObj && hasOwnProperty$a.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty$a.call(other, '__wrapped__'); + return range; +}; - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - stack || (stack = new _Stack()); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } +const fill$8 = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; } - if (!isSameTag) { - return false; + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); } - stack || (stack = new _Stack()); - return _equalObjects(object, other, bitmask, customizer, equalFunc, stack); -} + if (typeof step === 'function') { + return fill$8(start, end, 1, { + transform: step + }); + } -var _baseIsEqualDeep = baseIsEqualDeep; + if (isObject$1(step)) { + return fill$8(start, end, 0, step); + } -/** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ + let opts = Object.assign({}, options); + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; -function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; + if (!isNumber(step)) { + if (step != null && !isObject$1(step)) return invalidStep(step, opts); + return fill$8(start, end, 1, step); } - if (value == null || other == null || !isObjectLike_1(value) && !isObjectLike_1(other)) { - return value !== value && other !== other; + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); } - return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); -} + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; -var _baseIsEqual = baseIsEqual; +var fillRange = fill$8; -/** Used to compose bitmasks for value comparisons. */ +const compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils$a.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; -var COMPARE_PARTIAL_FLAG$4 = 1, - COMPARE_UNORDERED_FLAG$2 = 2; -/** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ + if (node.isOpen === true) { + return prefix + node.value; + } -function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; + if (node.isClose === true) { + return prefix + node.value; + } - if (object == null) { - return !length; - } + if (node.type === 'open') { + return invalid ? prefix + node.value : '('; + } - object = Object(object); + if (node.type === 'close') { + return invalid ? prefix + node.value : ')'; + } - while (index--) { - var data = matchData[index]; + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; + } - if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { - return false; + if (node.value) { + return node.value; } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; + if (node.nodes && node.ranges > 0) { + let args = utils$a.reduce(node.nodes); + let range = fillRange(...args, Object.assign(Object.assign({}, options), {}, { + wrap: false, + toRegex: true + })); - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; } - } else { - var stack = new _Stack(); + } - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); } + } - if (!(result === undefined ? _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$4 | COMPARE_UNORDERED_FLAG$2, customizer, stack) : result)) { - return false; + return output; + }; + + return walk(ast); +}; + +var compile_1 = compile; + +const append = (queue = '', stash = '', enclose = false) => { + let result = []; + queue = [].concat(queue); + stash = [].concat(stash); + if (!stash.length) return queue; + + if (!queue.length) { + return enclose ? utils$a.flatten(stash).map(ele => `{${ele}}`) : stash; + } + + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); } } } - return true; -} + return utils$a.flatten(result); +}; -var _baseIsMatch = baseIsMatch; +const expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; -/** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ + let walk = (node, parent = {}) => { + node.queue = []; + let p = parent; + let q = parent.queue; -function isStrictComparable(value) { - return value === value && !isObject_1(value); -} + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } -var _isStrictComparable = isStrictComparable; + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify$2(node, options))); + return; + } -/** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } -function getMatchData(object) { - var result = keys_1(object), - length = result.length; + if (node.nodes && node.ranges > 0) { + let args = utils$a.reduce(node.nodes); - while (length--) { - var key = result[length], - value = object[key]; - result[length] = [key, value, _isStrictComparable(value)]; - } + if (utils$a.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } - return result; -} + let range = fillRange(...args, options); -var _getMatchData = getMatchData; + if (range.length === 0) { + range = stringify$2(node, options); + } -/** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ -function matchesStrictComparable(key, srcValue) { - return function (object) { - if (object == null) { - return false; + q.push(append(q.pop(), range)); + node.nodes = []; + return; } - return object[key] === srcValue && (srcValue !== undefined || key in Object(object)); - }; -} + let enclose = utils$a.encloseBrace(node); + let queue = node.queue; + let block = node; -var _matchesStrictComparable = matchesStrictComparable; + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } -/** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; -function baseMatches(source) { - var matchData = _getMatchData(source); + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } - if (matchData.length == 1 && matchData[0][2]) { - return _matchesStrictComparable(matchData[0][0], matchData[0][1]); - } + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } - return function (object) { - return object === source || _baseIsMatch(object, source, matchData); + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } + + if (child.nodes) { + walk(child, node); + } + } + + return queue; }; -} -var _baseMatches = baseMatches; + return utils$a.flatten(walk(ast)); +}; -/** `Object#toString` result references. */ +var expand_1 = expand; -var symbolTag$1 = '[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 - */ +var constants$2 = { + MAX_LENGTH: 1024 * 64, + // Digits + CHAR_0: '0', -function isSymbol(value) { - return typeof value == 'symbol' || isObjectLike_1(value) && _baseGetTag(value) == symbolTag$1; -} + /* 0 */ + CHAR_9: '9', -var isSymbol_1 = isSymbol; + /* 9 */ + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', -/** Used to match property names within property paths. */ + /* A */ + CHAR_LOWERCASE_A: 'a', -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`. - */ + /* a */ + CHAR_UPPERCASE_Z: 'Z', -function isKey(value, object) { - if (isArray_1(value)) { - return false; - } + /* Z */ + CHAR_LOWERCASE_Z: 'z', - var type = typeof value; + /* z */ + CHAR_LEFT_PARENTHESES: '(', - if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol_1(value)) { - return true; - } + /* ( */ + CHAR_RIGHT_PARENTHESES: ')', - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); -} + /* ) */ + CHAR_ASTERISK: '*', -var _isKey = isKey; + /* * */ + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', -/** Error message constants. */ + /* & */ + CHAR_AT: '@', -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; - */ + /* @ */ + CHAR_BACKSLASH: '\\', -function memoize(func, resolver) { - if (typeof func != 'function' || resolver != null && typeof resolver != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } + /* \ */ + CHAR_BACKTICK: '`', - var memoized = function () { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; + /* ` */ + CHAR_CARRIAGE_RETURN: '\r', - if (cache.has(key)) { - return cache.get(key); - } + /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; + /* ^ */ + CHAR_COLON: ':', - memoized.cache = new (memoize.Cache || _MapCache)(); - return memoized; -} // Expose `MapCache`. + /* : */ + CHAR_COMMA: ',', + /* , */ + CHAR_DOLLAR: '$', -memoize.Cache = _MapCache; -var memoize_1 = memoize; + /* . */ + CHAR_DOT: '.', -/** Used as the maximum memoize cache size. */ + /* . */ + CHAR_DOUBLE_QUOTE: '"', -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. - */ + /* " */ + CHAR_EQUAL: '=', -function memoizeCapped(func) { - var result = memoize_1(func, function (key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } + /* = */ + CHAR_EXCLAMATION_MARK: '!', - return key; - }); - var cache = result.cache; - return result; -} + /* ! */ + CHAR_FORM_FEED: '\f', -var _memoizeCapped = memoizeCapped; + /* \f */ + CHAR_FORWARD_SLASH: '/', -/** Used to match property names within property paths. */ + /* / */ + CHAR_HASH: '#', -var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; -/** Used to match backslashes in property paths. */ + /* # */ + CHAR_HYPHEN_MINUS: '-', -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. - */ + /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', -var stringToPath = _memoizeCapped(function (string) { - var result = []; + /* < */ + CHAR_LEFT_CURLY_BRACE: '{', - if (string.charCodeAt(0) === 46 - /* . */ - ) { - result.push(''); - } + /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', - string.replace(rePropName, function (match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : number || match); - }); - return result; -}); -var _stringToPath = stringToPath; + /* [ */ + CHAR_LINE_FEED: '\n', -/** - * 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); + /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', + + /* \u00A0 */ + CHAR_PERCENT: '%', + + /* % */ + CHAR_PLUS: '+', + + /* + */ + CHAR_QUESTION_MARK: '?', - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } + /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', - return result; -} + /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', -var _arrayMap = arrayMap; + /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', -/** Used as references for various `Number` constants. */ + /* ] */ + CHAR_SEMICOLON: ';', -var INFINITY = 1 / 0; -/** Used to convert symbols to primitives and strings. */ + /* ; */ + CHAR_SINGLE_QUOTE: '\'', -var symbolProto$1 = _Symbol ? _Symbol.prototype : undefined, - symbolToString = symbolProto$1 ? symbolProto$1.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. - */ + /* ' */ + CHAR_SPACE: ' ', -function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } + /* */ + CHAR_TAB: '\t', - if (isArray_1(value)) { - // Recursively convert values (susceptible to call stack limits). - return _arrayMap(value, baseToString) + ''; - } + /* \t */ + CHAR_UNDERSCORE: '_', - if (isSymbol_1(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } + /* _ */ + CHAR_VERTICAL_LINE: '|', - var result = value + ''; - return result == '0' && 1 / value == -INFINITY ? '-0' : result; -} + /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' + /* \uFEFF */ -var _baseToString = baseToString; +}; /** - * 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' + * Constants */ -function toString(value) { - return value == null ? '' : _baseToString(value); -} -var toString_1 = toString; +const { + MAX_LENGTH: MAX_LENGTH$1, + CHAR_BACKSLASH, -/** - * 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. - */ + /* \ */ + CHAR_BACKTICK, -function castPath(value, object) { - if (isArray_1(value)) { - return value; - } + /* ` */ + CHAR_COMMA: CHAR_COMMA$1, - return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); -} + /* , */ + CHAR_DOT: CHAR_DOT$1, -var _castPath = castPath; + /* . */ + CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, -/** Used as references for various `Number` constants. */ + /* ( */ + CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, -var INFINITY$1 = 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. - */ + /* ) */ + CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, -function toKey(value) { - if (typeof value == 'string' || isSymbol_1(value)) { - return value; - } + /* { */ + CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, - var result = value + ''; - return result == '0' && 1 / value == -INFINITY$1 ? '-0' : result; -} + /* } */ + CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, -var _toKey = toKey; + /* [ */ + CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1, + + /* ] */ + CHAR_DOUBLE_QUOTE, + /* " */ + CHAR_SINGLE_QUOTE, + + /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = constants$2; /** - * 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. + * parse */ -function baseGet(object, path) { - path = _castPath(path, object); - var index = 0, - length = path.length; +const parse$3 = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } - while (object != null && index < length) { - object = object[_toKey(path[index++])]; + let opts = options || {}; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; + + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); } - return index && index == length ? object : undefined; -} + let ast = { + type: 'root', + input, + nodes: [] + }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + /** + * Helpers + */ -var _baseGet = baseGet; + const advance = () => input[index++]; -/** - * 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' - */ + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } -function get$1(object, path, defaultValue) { - var result = object == null ? undefined : _baseGet(object, path); - return result === undefined ? defaultValue : result; -} + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } -var get_1 = get$1; + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; -/** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ -function baseHasIn(object, key) { - return object != null && key in Object(object); -} + push({ + type: 'bos' + }); -var _baseHasIn = baseHasIn; + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + /** + * Invalid chars + */ -/** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + /** + * Escaped chars + */ -function hasPath(object, path, hasFunc) { - path = _castPath(path, object); - var index = -1, - length = path.length, - result = false; - while (++index < length) { - var key = _toKey(path[index]); + if (value === CHAR_BACKSLASH) { + push({ + type: 'text', + value: (options.keepEscaping ? value : '') + advance() + }); + continue; + } + /** + * Right square bracket (literal): ']' + */ - if (!(result = object != null && hasFunc(object, key))) { - break; + + if (value === CHAR_RIGHT_SQUARE_BRACKET$1) { + push({ + type: 'text', + value: '\\' + value + }); + continue; } + /** + * Left square bracket: '[' + */ - object = object[key]; - } - if (result || ++index != length) { - return result; - } + if (value === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + let next; - length = object == null ? 0 : object.length; - return !!length && isLength_1(length) && _isIndex(key, length) && (isArray_1(object) || isArguments_1(object)); -} + while (index < length && (next = advance())) { + value += next; -var _hasPath = hasPath; + if (next === CHAR_LEFT_SQUARE_BRACKET$1) { + brackets++; + continue; + } -/** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } -function hasIn(object, path) { - return object != null && _hasPath(object, path, _baseHasIn); -} + if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { + brackets--; -var hasIn_1 = hasIn; + if (brackets === 0) { + break; + } + } + } -/** Used to compose bitmasks for value comparisons. */ + push({ + type: 'text', + value + }); + continue; + } + /** + * Parentheses + */ -var COMPARE_PARTIAL_FLAG$5 = 1, - COMPARE_UNORDERED_FLAG$3 = 2; -/** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ -function baseMatchesProperty(path, srcValue) { - if (_isKey(path) && _isStrictComparable(srcValue)) { - return _matchesStrictComparable(_toKey(path), srcValue); - } + if (value === CHAR_LEFT_PARENTHESES$1) { + block = push({ + type: 'paren', + nodes: [] + }); + stack.push(block); + push({ + type: 'text', + value + }); + continue; + } - return function (object) { - var objValue = get_1(object, path); - return objValue === undefined && objValue === srcValue ? hasIn_1(object, path) : _baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$5 | COMPARE_UNORDERED_FLAG$3); - }; -} + if (value === CHAR_RIGHT_PARENTHESES$1) { + if (block.type !== 'paren') { + push({ + type: 'text', + value + }); + continue; + } -var _baseMatchesProperty = baseMatchesProperty; + block = stack.pop(); + push({ + type: 'text', + value + }); + block = stack[stack.length - 1]; + continue; + } + /** + * Quotes: '|"|` + */ -/** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ -function identity(value) { - return value; -} -var identity_1 = identity; + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; -/** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ -function baseProperty(key) { - return function (object) { - return object == null ? undefined : object[key]; - }; -} + if (options.keepQuotes !== true) { + value = ''; + } -var _baseProperty = baseProperty; + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } -/** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } -function basePropertyDeep(path) { - return function (object) { - return _baseGet(object, path); - }; -} + value += next; + } -var _basePropertyDeep = basePropertyDeep; + push({ + type: 'text', + value + }); + continue; + } + /** + * Left curly brace: '{' + */ + + + if (value === CHAR_LEFT_CURLY_BRACE$1) { + depth++; + let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + let brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + block = push(brace); + stack.push(block); + push({ + type: 'open', + value + }); + continue; + } + /** + * Right curly brace: '}' + */ + + + if (value === CHAR_RIGHT_CURLY_BRACE$1) { + if (block.type !== 'brace') { + push({ + type: 'text', + value + }); + continue; + } + + let type = 'close'; + block = stack.pop(); + block.close = true; + push({ + type, + value + }); + depth--; + block = stack[stack.length - 1]; + continue; + } + /** + * Comma: ',' + */ -/** - * Creates a function that returns the value at `path` of a given object. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - * @example - * - * var objects = [ - * { 'a': { 'b': 2 } }, - * { 'a': { 'b': 1 } } - * ]; - * - * _.map(objects, _.property('a.b')); - * // => [2, 1] - * - * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); - * // => [1, 2] - */ -function property(path) { - return _isKey(path) ? _baseProperty(_toKey(path)) : _basePropertyDeep(path); -} + if (value === CHAR_COMMA$1 && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { + type: 'text', + value: stringify$2(block) + }]; + } -var property_1 = property; + push({ + type: 'comma', + value + }); + block.commas++; + continue; + } + /** + * Dot: '.' + */ -/** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ -function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } + if (value === CHAR_DOT$1 && depth > 0 && block.commas === 0) { + let siblings = block.nodes; - if (value == null) { - return identity_1; - } + if (depth === 0 || siblings.length === 0) { + push({ + type: 'text', + value + }); + continue; + } - if (typeof value == 'object') { - return isArray_1(value) ? _baseMatchesProperty(value[0], value[1]) : _baseMatches(value); - } + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; - return property_1(value); -} + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } -var _baseIteratee = baseIteratee; + block.ranges++; + block.args = []; + continue; + } -/** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); + if (prev.type === 'range') { + siblings.pop(); + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } - while (fromRight ? index-- : ++index < length) { - if (predicate(array[index], index, array)) { - return index; + push({ + type: 'dot', + value + }); + continue; } - } + /** + * Text + */ - return -1; -} -var _baseFindIndex = baseFindIndex; + push({ + type: 'text', + value + }); + } // Mark imbalanced braces and brackets as invalid -/** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ -function baseIsNaN(value) { - return value !== value; -} -var _baseIsNaN = baseIsNaN; + do { + block = stack.pop(); -/** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); // get the location of the block on parent.nodes (block's siblings) - while (++index < length) { - if (array[index] === value) { - return index; + let parent = stack[stack.length - 1]; + let index = parent.nodes.indexOf(block); // replace the (invalid) block with it's nodes + + parent.nodes.splice(index, 1, ...block.nodes); } - } + } while (stack.length > 0); - return -1; -} + push({ + type: 'eos' + }); + return ast; +}; -var _strictIndexOf = strictIndexOf; +var parse_1$3 = parse$3; /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * Expand the given pattern or create a regex-compatible string. * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public */ -function baseIndexOf(array, value, fromIndex) { - return value === value ? _strictIndexOf(array, value, fromIndex) : _baseFindIndex(array, _baseIsNaN, fromIndex); -} -var _baseIndexOf = baseIndexOf; +const braces = (input, options = {}) => { + let output = []; -/** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); -function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && _baseIndexOf(array, value, 0) > -1; -} + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } -var _arrayIncludes = arrayIncludes; + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; /** - * This function is like `arrayIncludes` except that it accepts a comparator. + * Parse the given `str` with the given `options`. * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public */ -function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - - return false; -} -var _arrayIncludesWith = arrayIncludesWith; +braces.parse = (input, options = {}) => parse_1$3(input, options); /** - * This method returns `undefined`. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Util - * @example + * Creates a braces string from an AST, or an AST node. * - * _.times(2, _.noop); - * // => [undefined, undefined] + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function noop() {// No operation performed. -} -var noop_1 = noop; -/** Used as references for various `Number` constants. */ +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify$2(braces.parse(input, options), options); + } -var INFINITY$2 = 1 / 0; + return stringify$2(input, options); +}; /** - * Creates a set object of `values`. + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -var createSet = !(_Set && 1 / _setToArray(new _Set([, -0]))[1] == INFINITY$2) ? noop_1 : function (values) { - return new _Set(values); -}; -var _createSet = createSet; -/** Used as the size to enable large array optimizations. */ +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } -var LARGE_ARRAY_SIZE$1 = 200; + return compile_1(input, options); +}; /** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = _arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - - if (comparator) { - isCommon = false; - includes = _arrayIncludesWith; - } else if (length >= LARGE_ARRAY_SIZE$1) { - var set = iteratee ? null : _createSet(array); - - if (set) { - return _setToArray(set); - } - isCommon = false; - includes = _cacheHas; - seen = new _SetCache(); - } else { - seen = iteratee ? [] : result; +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); } - outer: while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - value = comparator || value !== 0 ? value : 0; - - if (isCommon && computed === computed) { - var seenIndex = seen.length; - - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } + let result = expand_1(input, options); // filter out empty strings if specified - if (iteratee) { - seen.push(computed); - } + if (options.noempty === true) { + result = result.filter(Boolean); + } // filter out duplicates if specified - result.push(value); - } else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } + if (options.nodupes === true) { + result = [...new Set(result)]; } return result; -} - -var _baseUniq = baseUniq; - +}; /** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public */ -function uniqBy(array, iteratee) { - return array && array.length ? _baseUniq(array, _baseIteratee(iteratee)) : []; -} -var uniqBy_1 = uniqBy; +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } + return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); +}; /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. + * Expose "braces" */ -function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; -} - -var _arrayAggregator = arrayAggregator; +var braces_1 = braces; +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. + * Posix glob regex */ -function createBaseFor(fromRight) { - return function (object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - - return object; - }; -} - -var _createBaseFor = createBaseFor; +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. + * Windows glob regex */ -var baseFor = _createBaseFor(); -var _baseFor = baseFor; - +const WINDOWS_CHARS = Object.assign(Object.assign({}, POSIX_CHARS), {}, { + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}); /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. + * POSIX Bracket Regex */ -function baseForOwn(object, iteratee) { - return object && _baseFor(object, iteratee, keys_1); -} - -var _baseForOwn = baseForOwn; +const POSIX_REGEX_SOURCE$1 = { + 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' +}; +var constants$1 = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, + // regular expressions + 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, + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + // Digits + CHAR_0: 48, -/** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ + /* 0 */ + CHAR_9: 57, -function createBaseEach(eachFunc, fromRight) { - return function (collection, iteratee) { - if (collection == null) { - return collection; - } + /* 9 */ + // Alphabet chars. + CHAR_UPPERCASE_A: 65, - if (!isArrayLike_1(collection)) { - return eachFunc(collection, iteratee); - } + /* A */ + CHAR_LOWERCASE_A: 97, - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); + /* a */ + CHAR_UPPERCASE_Z: 90, - while (fromRight ? index-- : ++index < length) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } + /* Z */ + CHAR_LOWERCASE_Z: 122, - return collection; - }; -} + /* z */ + CHAR_LEFT_PARENTHESES: 40, -var _createBaseEach = createBaseEach; + /* ( */ + CHAR_RIGHT_PARENTHESES: 41, -/** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ + /* ) */ + CHAR_ASTERISK: 42, -var baseEach = _createBaseEach(_baseForOwn); -var _baseEach = baseEach; + /* * */ + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, -/** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ + /* & */ + CHAR_AT: 64, -function baseAggregator(collection, setter, iteratee, accumulator) { - _baseEach(collection, function (value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; -} + /* @ */ + CHAR_BACKWARD_SLASH: 92, -var _baseAggregator = baseAggregator; + /* \ */ + CHAR_CARRIAGE_RETURN: 13, -/** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ + /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, -function createAggregator(setter, initializer) { - return function (collection, iteratee) { - var func = isArray_1(collection) ? _arrayAggregator : _baseAggregator, - accumulator = initializer ? initializer() : {}; - return func(collection, setter, _baseIteratee(iteratee), accumulator); - }; -} + /* ^ */ + CHAR_COLON: 58, -var _createAggregator = createAggregator; + /* : */ + CHAR_COMMA: 44, -/** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ + /* , */ + CHAR_DOT: 46, -var partition = _createAggregator(function (result, value, key) { - result[key ? 0 : 1].push(value); -}, function () { - return [[], []]; -}); -var partition_1 = partition; + /* . */ + CHAR_DOUBLE_QUOTE: 34, -var arrayUnion = (...arguments_) => { - return [...new Set([].concat(...arguments_))]; -}; + /* " */ + CHAR_EQUAL: 61, -/* - * merge2 - * https://github.com/teambition/merge2 - * - * Copyright (c) 2014-2020 Teambition - * Licensed under the MIT license. - */ + /* = */ + CHAR_EXCLAMATION_MARK: 33, + /* ! */ + CHAR_FORM_FEED: 12, -const PassThrough = stream__default['default'].PassThrough; -const slice = Array.prototype.slice; -var merge2_1 = merge2; + /* \f */ + CHAR_FORWARD_SLASH: 47, -function merge2() { - const streamsQueue = []; - const args = slice.call(arguments); - let merging = false; - let options = args[args.length - 1]; + /* / */ + CHAR_GRAVE_ACCENT: 96, - if (options && !Array.isArray(options) && options.pipe == null) { - args.pop(); - } else { - options = {}; - } + /* ` */ + CHAR_HASH: 35, - const doEnd = options.end !== false; - const doPipeError = options.pipeError === true; + /* # */ + CHAR_HYPHEN_MINUS: 45, - if (options.objectMode == null) { - options.objectMode = true; - } + /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, - if (options.highWaterMark == null) { - options.highWaterMark = 64 * 1024; - } + /* < */ + CHAR_LEFT_CURLY_BRACE: 123, - const mergedStream = PassThrough(options); + /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, - function addStream() { - for (let i = 0, len = arguments.length; i < len; i++) { - streamsQueue.push(pauseStreams(arguments[i], options)); - } + /* [ */ + CHAR_LINE_FEED: 10, - mergeStream(); - return this; - } + /* \n */ + CHAR_NO_BREAK_SPACE: 160, - function mergeStream() { - if (merging) { - return; - } + /* \u00A0 */ + CHAR_PERCENT: 37, - merging = true; - let streams = streamsQueue.shift(); + /* % */ + CHAR_PLUS: 43, - if (!streams) { - process.nextTick(endStream); - return; - } + /* + */ + CHAR_QUESTION_MARK: 63, - if (!Array.isArray(streams)) { - streams = [streams]; - } + /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, - let pipesCount = streams.length + 1; + /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, - function next() { - if (--pipesCount > 0) { - return; - } + /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, - merging = false; - mergeStream(); - } + /* ] */ + CHAR_SEMICOLON: 59, - function pipe(stream) { - function onend() { - stream.removeListener('merge2UnpipeEnd', onend); - stream.removeListener('end', onend); + /* ; */ + CHAR_SINGLE_QUOTE: 39, - if (doPipeError) { - stream.removeListener('error', onerror); - } + /* ' */ + CHAR_SPACE: 32, - next(); - } + /* */ + CHAR_TAB: 9, - function onerror(err) { - mergedStream.emit('error', err); - } // skip ended stream + /* \t */ + CHAR_UNDERSCORE: 95, + /* _ */ + CHAR_VERTICAL_LINE: 124, - if (stream._readableState.endEmitted) { - return next(); - } + /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, - stream.on('merge2UnpipeEnd', onend); - stream.on('end', onend); + /* \uFEFF */ + SEP: path__default['default'].sep, - if (doPipeError) { - stream.on('error', onerror); + /** + * Create EXTGLOB_CHARS + */ + extglobChars(chars) { + return { + '!': { + type: 'negate', + open: '(?:(?!(?:', + close: `))${chars.STAR})` + }, + '?': { + type: 'qmark', + open: '(?:', + close: ')?' + }, + '+': { + type: 'plus', + open: '(?:', + close: ')+' + }, + '*': { + type: 'star', + open: '(?:', + close: ')*' + }, + '@': { + type: 'at', + open: '(?:', + close: ')' } + }; + }, - stream.pipe(mergedStream, { - end: false - }); // compatible for old stream + /** + * Create GLOB_CHARS + */ + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } - stream.resume(); - } +}; - for (let i = 0; i < streams.length; i++) { - pipe(streams[i]); - } +var utils$9 = createCommonjsModule(function (module, exports) { - next(); - } + const win32 = process.platform === 'win32'; + const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL + } = constants$1; - function endStream() { - merging = false; // emit 'queueDrain' when all streams merged. + exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); - mergedStream.emit('queueDrain'); + exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); - if (doEnd) { - mergedStream.end(); - } - } + exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); - mergedStream.setMaxListeners(0); - mergedStream.add = addStream; - mergedStream.on('unpipe', function (stream) { - stream.emit('merge2UnpipeEnd'); - }); + exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); - if (args.length) { - addStream.apply(null, args); - } + exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); - return mergedStream; -} // check and pause streams for pipe. + exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); + }; + exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); -function pauseStreams(streams, options) { - if (!Array.isArray(streams)) { - // Backwards-compat with old-style streams - if (!streams._readableState && streams.pipe) { - streams = streams.pipe(PassThrough(options)); + if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { + return true; } - if (!streams._readableState || !streams.pause || !streams.pipe) { - throw new Error('Only readable stream can be merged.'); - } + return false; + }; - streams.pause(); - } else { - for (let i = 0, len = streams.length; i < len; i++) { - streams[i] = pauseStreams(streams[i], options); + exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; } - } - return streams; -} + return win32 === true || path__default['default'].sep === '\\'; + }; -var array$2 = createCommonjsModule(function (module, exports) { + exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; + }; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.splitWhen = exports.flatten = void 0; + exports.removePrefix = (input, state = {}) => { + let output = input; - function flatten(items) { - return items.reduce((collection, item) => [].concat(collection, item), []); - } + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } - exports.flatten = flatten; + return output; + }; - function splitWhen(items, predicate) { - const result = [[]]; - let groupIndex = 0; + exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; + let output = `${prepend}(?:${input})${append}`; - for (const item of items) { - if (predicate(item)) { - groupIndex++; - result[groupIndex] = []; - } else { - result[groupIndex].push(item); - } + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; } - return result; - } + return output; + }; +}); + +const { + CHAR_ASTERISK, + + /* * */ + CHAR_AT, - exports.splitWhen = splitWhen; -}); + /* @ */ + CHAR_BACKWARD_SLASH, -var errno = createCommonjsModule(function (module, exports) { + /* \ */ + CHAR_COMMA, - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isEnoentCodeError = void 0; + /* , */ + CHAR_DOT, - function isEnoentCodeError(error) { - return error.code === 'ENOENT'; - } + /* . */ + CHAR_EXCLAMATION_MARK, - exports.isEnoentCodeError = isEnoentCodeError; -}); + /* ! */ + CHAR_FORWARD_SLASH, -var fs$1 = createCommonjsModule(function (module, exports) { + /* / */ + CHAR_LEFT_CURLY_BRACE, - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.createDirentFromStats = void 0; + /* { */ + CHAR_LEFT_PARENTHESES, - class DirentFromStats { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); - } + /* ( */ + CHAR_LEFT_SQUARE_BRACKET, - } + /* [ */ + CHAR_PLUS, - function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); - } + /* + */ + CHAR_QUESTION_MARK, - exports.createDirentFromStats = createDirentFromStats; -}); + /* ? */ + CHAR_RIGHT_CURLY_BRACE, -var path_1 = createCommonjsModule(function (module, exports) { + /* } */ + CHAR_RIGHT_PARENTHESES, - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; - const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ + /* ) */ + CHAR_RIGHT_SQUARE_BRACKET + /* ] */ - const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; - /** - * Designed to work only with simple paths: `dir\\file`. - */ +} = constants$1; - function unixify(filepath) { - return filepath.replace(/\\/g, '/'); +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; + +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; } +}; +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not + * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ - exports.unixify = unixify; - function makeAbsolute(cwd, filepath) { - return path__default['default'].resolve(cwd, filepath); - } +const scan = (input, options) => { + const opts = options || {}; + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { + value: '', + depth: 0, + isGlob: false + }; - exports.makeAbsolute = makeAbsolute; + const eos = () => index >= length; - function escape(pattern) { - return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); - } + const peek = () => str.charCodeAt(index + 1); - exports.escape = escape; + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; - function removeLeadingDotSegment(entry) { - // We do not use `startsWith` because this is 10x slower than current implementation for some cases. - // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with - if (entry.charAt(0) === '.') { - const secondCharactery = entry.charAt(1); + while (index < length) { + code = advance(); + let next; - if (secondCharactery === '/' || secondCharactery === '\\') { - return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; } - } - return entry; - } + continue; + } - exports.removeLeadingDotSegment = removeLeadingDotSegment; -}); + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -var isExtglob = function isExtglob(str) { - if (typeof str !== 'string' || str === '') { - return false; - } + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } - var match; + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } - while (match = /(\\).|([@?!+*]\(.*\))/g.exec(str)) { - if (match[2]) return true; - str = str.slice(match.index + match[0].length); - } + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; - return false; -}; + if (scanToEnd === true) { + continue; + } -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ + break; + } -var chars = { - '{': '}', - '(': ')', - '[': ']' -}; -var strictRegex = /\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/; -var relaxedRegex = /\\(.)|(^!|[*?{}()[\]]|\(\?)/; + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; -var isGlob = function isGlob(str, options) { - if (typeof str !== 'string' || str === '') { - return false; - } + if (scanToEnd === true) { + continue; + } - if (isExtglob(str)) { - return true; - } + break; + } - var regex = strictRegex; - var match; // optionally relax regex + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; - if (options && options.strict === false) { - regex = relaxedRegex; - } + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } - while (match = regex.exec(str)) { - if (match[2]) return true; - var idx = match.index + match[0].length; // if an open bracket/brace/paren is escaped, - // set the index to the next closing character + if (scanToEnd === true) { + continue; + } - var open = match[1]; - var close = open ? chars[open] : null; + break; + } - if (open && close) { - var n = str.indexOf(close, idx); + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { + value: '', + depth: 0, + isGlob: false + }; + if (finished === true) continue; - if (n !== -1) { - idx = n + 1; + if (prev === CHAR_DOT && index === start + 1) { + start += 2; + continue; } - } - str = str.slice(idx); - } + lastIndex = index + 1; + continue; + } - return false; -}; + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; -var pathPosixDirname = path__default['default'].posix.dirname; -var isWin32 = os__default['default'].platform() === 'win32'; -var slash = '/'; -var backslash = /\\/g; -var enclosure = /[\{\[].*[\/]*.*[\}\]]$/; -var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; -var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; -/** - * @param {string} str - * @param {Object} opts - * @param {boolean} [opts.flipBackslashes=true] - */ + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; -var globParent = function globParent(str, opts) { - var options = Object.assign({ - flipBackslashes: true - }, opts); // flip windows path separators + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } - if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { - str = str.replace(backslash, slash); - } // special case for strings ending in enclosure containing path separator + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } - if (enclosure.test(str)) { - str += slash; - } // preserves full path in case of trailing path separator + continue; + } + break; + } + } - str += 'a'; // remove path parts that are globby + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; - do { - str = pathPosixDirname(str); - } while (isGlob(str) || globby.test(str)); // remove escape chars and return result + if (scanToEnd === true) { + continue; + } + break; + } - return str.replace(escaped, '$1'); -}; + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; -var utils$1 = createCommonjsModule(function (module, exports) { + if (scanToEnd === true) { + continue; + } - exports.isInteger = num => { - if (typeof num === 'number') { - return Number.isInteger(num); + break; } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isInteger(Number(num)); - } + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } - return false; - }; - /** - * Find a node of the given type - */ + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + if (scanToEnd === true) { + continue; + } - exports.find = (node, type) => node.nodes.find(node => node.type === type); - /** - * Find a node of the given type - */ + break; + } + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } - exports.exceedsLimit = (min, max, step = 1, limit) => { - if (limit === false) return false; - if (!exports.isInteger(min) || !exports.isInteger(max)) return false; - return (Number(max) - Number(min)) / Number(step) >= limit; - }; - /** - * Escape the given node with '\\' before node.value - */ + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } - exports.escapeNode = (block, n = 0, type) => { - let node = block.nodes[n]; - if (!node) return; + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } - if (type && node.type === type || node.type === 'open' || node.type === 'close') { - if (node.escaped !== true) { - node.value = '\\' + node.value; - node.escaped = true; + continue; } + + break; } - }; - /** - * Returns true if the given brace node should be enclosed in literal braces - */ + if (isGlob === true) { + finished = true; - exports.encloseBrace = node => { - if (node.type !== 'brace') return false; + if (scanToEnd === true) { + continue; + } - if (node.commas >> 0 + node.ranges >> 0 === 0) { - node.invalid = true; - return true; + break; } + } - return false; - }; - /** - * Returns true if a brace node is invalid. - */ + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + let base = str; + let prefix = ''; + let glob = ''; - exports.isInvalidBrace = block => { - if (block.type !== 'brace') return false; - if (block.invalid === true || block.dollar) return true; + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } - if (block.commas >> 0 + block.ranges >> 0 === 0) { - block.invalid = true; - return true; - } + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } - if (block.open !== true || block.close !== true) { - block.invalid = true; - return true; + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); } + } - return false; - }; - /** - * Returns true if a node is an open or close node - */ - + if (opts.unescape === true) { + if (glob) glob = utils$9.removeBackslashes(glob); - exports.isOpenOrClose = node => { - if (node.type === 'open' || node.type === 'close') { - return true; + if (base && backslashes === true) { + base = utils$9.removeBackslashes(base); } + } - return node.open === true || node.close === true; + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob }; - /** - * Reduce an array of text nodes. - */ - - exports.reduce = nodes => nodes.reduce((acc, node) => { - if (node.type === 'text') acc.push(node.value); - if (node.type === 'range') node.type = 'text'; - return acc; - }, []); - /** - * Flatten an array - */ + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } - exports.flatten = (...args) => { - const result = []; + state.tokens = tokens; + } - const flat = arr => { - for (let i = 0; i < arr.length; i++) { - let ele = arr[i]; - Array.isArray(ele) ? flat(ele) : ele !== void 0 && result.push(ele); - } + if (opts.parts === true || opts.tokens === true) { + let prevIndex; - return result; - }; + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); - flat(args); - return result; - }; -}); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } -var stringify$1 = (ast, options = {}) => { - let stringify = (node, parent = {}) => { - let invalidBlock = options.escapeInvalid && utils$1.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let output = ''; + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } - if (node.value) { - if ((invalidBlock || invalidNode) && utils$1.isOpenOrClose(node)) { - return '\\' + node.value; + if (idx !== 0 || value !== '') { + parts.push(value); } - return node.value; + prevIndex = i; } - if (node.value) { - return node.value; - } + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); - if (node.nodes) { - for (let child of node.nodes) { - output += stringify(child); + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; } } - return output; - }; + state.slashes = slashes; + state.parts = parts; + } - return stringify(ast); + return state; }; -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. +var scan_1 = scan; + +/** + * Constants */ -var isNumber = function (num) { - if (typeof num === 'number') { - return num - num === 0; + +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants$1; +/** + * Helpers + */ + +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); } - if (typeof num === 'string' && num.trim() !== '') { - return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + args.sort(); + const value = `[${args.join('-')}]`; + + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils$9.escapeRegex(v)).join('..'); } - return false; + return value; }; +/** + * Create the message for a syntax error + */ -const toRegexRange = (min, max, options) => { - if (isNumber(min) === false) { - throw new TypeError('toRegexRange: expected the first argument to be a number'); - } - if (max === void 0 || min === max) { - return String(min); - } +const syntaxError$1 = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; +/** + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} + */ - if (isNumber(max) === false) { - throw new TypeError('toRegexRange: expected the second argument to be a number.'); + +const parse$2 = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); } - let opts = Object.assign({ - relaxZeros: true - }, options); + input = REPLACEMENTS[input] || input; + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + let len = input.length; - if (typeof opts.strictZeros === 'boolean') { - opts.relaxZeros = opts.strictZeros === false; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); } - let relax = String(opts.relaxZeros); - let shorthand = String(opts.shorthand); - let capture = String(opts.capture); - let wrap = String(opts.wrap); - let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + const bos = { + type: 'bos', + value: '', + output: opts.prepend || '' + }; + const tokens = [bos]; + const capture = opts.capture ? '' : '?:'; + const win32 = utils$9.isWindows(options); // create constants based on platform, for windows or posix - if (toRegexRange.cache.hasOwnProperty(cacheKey)) { - return toRegexRange.cache[cacheKey].result; - } + const PLATFORM_CHARS = constants$1.globChars(win32); + const EXTGLOB_CHARS = constants$1.extglobChars(PLATFORM_CHARS); + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; - let a = Math.min(min, max); - let b = Math.max(min, max); + const globstar = opts => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; - if (Math.abs(a - b) === 1) { - let result = min + '|' + max; + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; - if (opts.capture) { - return `(${result})`; - } + if (opts.capture) { + star = `(${star})`; + } // minimatch options support - if (opts.wrap === false) { - return result; - } - return `(?:${result})`; + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; } - let isPadded = hasPadding(min) || hasPadding(max); - let state = { - min, - max, - a, - b + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens }; - let positives = []; - let negatives = []; + input = utils$9.removePrefix(input, state); + len = input.length; + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + /** + * Tokenizing helpers + */ - if (isPadded) { - state.isPadded = isPadded; - state.maxLen = String(state.max).length; - } + const eos = () => state.index === len - 1; - if (a < 0) { - let newMin = b < 0 ? Math.abs(b) : 1; - negatives = splitToPatterns(newMin, Math.abs(a), state, opts); - a = state.a = 0; - } + const peek = state.peek = (n = 1) => input[state.index + n]; - if (b >= 0) { - positives = splitToPatterns(a, b, state, opts); - } + const advance = state.advance = () => input[++state.index] || ''; - state.negatives = negatives; - state.positives = positives; - state.result = collatePatterns(negatives, positives); + const remaining = () => input.slice(state.index + 1); - if (opts.capture === true) { - state.result = `(${state.result})`; - } else if (opts.wrap !== false && positives.length + negatives.length > 1) { - state.result = `(?:${state.result})`; - } + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; - toRegexRange.cache[cacheKey] = state; - return state.result; -}; + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; -function collatePatterns(neg, pos, options) { - let onlyNegative = filterPatterns(neg, pos, '-', false) || []; - let onlyPositive = filterPatterns(pos, neg, '', false) || []; - let intersected = filterPatterns(neg, pos, '-?', true) || []; - let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); - return subpatterns.join('|'); -} + const negate = () => { + let count = 1; -function splitToRanges(min, max) { - let nines = 1; - let zeros = 1; - let stop = countNines(min, nines); - let stops = new Set([max]); + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } - while (min <= stop && stop <= max) { - stops.add(stop); - nines += 1; - stop = countNines(min, nines); - } + if (count % 2 === 0) { + return false; + } - stop = countZeros(max + 1, zeros) - 1; + state.negated = true; + state.start++; + return true; + }; - while (min < stop && stop <= max) { - stops.add(stop); - zeros += 1; - stop = countZeros(max + 1, zeros) - 1; - } + const increment = type => { + state[type]++; + stack.push(type); + }; - stops = [...stops]; - stops.sort(compare$1); - return stops; -} -/** - * Convert a range to a regex pattern - * @param {Number} `start` - * @param {Number} `stop` - * @return {String} - */ + const decrement = type => { + state[type]--; + stack.pop(); + }; + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ -function rangeToPattern(start, stop, options) { - if (start === stop) { - return { - pattern: start, - count: [], - digits: 0 - }; - } + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'); - let zipped = zip(start, stop); - let digits = zipped.length; - let pattern = ''; - let count = 0; + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } + } - for (let i = 0; i < digits; i++) { - let [startDigit, stopDigit] = zipped[i]; + if (extglobs.length && tok.type !== 'paren') { + extglobs[extglobs.length - 1].inner += tok.value; + } - if (startDigit === stopDigit) { - pattern += startDigit; - } else if (startDigit !== '0' || stopDigit !== '9') { - pattern += toCharacterClass(startDigit, stopDigit); - } else { - count++; + if (tok.value || tok.output) append(tok); + + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; } - } - if (count) { - pattern += options.shorthand === true ? '\\d' : '[0-9]'; - } + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; - return { - pattern, - count: [count], - digits + const extglobOpen = (type, value) => { + const token = Object.assign(Object.assign({}, EXTGLOB_CHARS[value]), {}, { + conditions: 1, + inner: '' + }); + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; + increment('parens'); + push({ + type, + value, + output: state.output ? '' : ONE_CHAR + }); + push({ + type: 'paren', + extglob: true, + value: advance(), + output + }); + extglobs.push(token); }; -} -function splitToPatterns(min, max, tok, options) { - let ranges = splitToRanges(min, max); - let tokens = []; - let start = min; - let prev; + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + let rest; - for (let i = 0; i < ranges.length; i++) { - let max = ranges[i]; - let obj = rangeToPattern(String(start), String(max), options); - let zeros = ''; + if (token.type === 'negate') { + let extglobStar = star; - if (!tok.isPadded && prev && prev.pattern === obj.pattern) { - if (prev.count.length > 1) { - prev.count.pop(); + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); } - prev.count.push(obj.count[0]); - prev.string = prev.pattern + toQuantifier(prev.count); - start = max + 1; - continue; - } + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } - if (tok.isPadded) { - zeros = padZeros(max, tok, options); + if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + output = token.close = `)${rest})${extglobStar})`; + } + + if (token.prev.type === 'bos') { + state.negatedExtglob = true; + } } - obj.string = zeros + obj.pattern + toQuantifier(obj.count); - tokens.push(obj); - start = max + 1; - prev = obj; - } + push({ + type: 'paren', + extglob: true, + value, + output + }); + decrement('parens'); + }; + /** + * Fast paths + */ - return tokens; -} -function filterPatterns(arr, comparison, prefix, intersection, options) { - let result = []; + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } - for (let ele of arr) { - let { - string - } = ele; // only push if _both_ are negative... + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } - if (!intersection && !contains(comparison, 'string', string)) { - result.push(prefix + string); - } // or _both_ are positive + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); + } - if (intersection && contains(comparison, 'string', string)) { - result.push(prefix + string); + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } + + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + + return star; + } + + return esc ? m : `\\${m}`; + }); + + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : m ? '\\' : ''; + }); + } } + + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + + state.output = utils$9.wrapOutput(output, state, options); + return state; } + /** + * Tokenize input until we reach end-of-string + */ - return result; -} -/** - * Zip strings - */ + while (!eos()) { + value = advance(); + + if (value === '\u0000') { + continue; + } + /** + * Escaped characters + */ -function zip(a, b) { - let arr = []; - for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + if (value === '\\') { + const next = peek(); - return arr; -} + if (next === '/' && opts.bash !== true) { + continue; + } -function compare$1(a, b) { - return a > b ? 1 : b > a ? -1 : 0; -} + if (next === '.' || next === ';') { + continue; + } -function contains(arr, key, val) { - return arr.some(ele => ele[key] === val); -} + if (!next) { + value += '\\'; + push({ + type: 'text', + value + }); + continue; + } // collapse slashes to reduce potential for exploits -function countNines(min, len) { - return Number(String(min).slice(0, -len) + '9'.repeat(len)); -} -function countZeros(integer, zeros) { - return integer - integer % Math.pow(10, zeros); -} + const match = /^\\+/.exec(remaining()); + let slashes = 0; -function toQuantifier(digits) { - let [start = 0, stop = ''] = digits; + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; - if (stop || start > 1) { - return `{${start + (stop ? ',' + stop : '')}}`; - } + if (slashes % 2 !== 0) { + value += '\\'; + } + } - return ''; -} + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } -function toCharacterClass(a, b, options) { - return `[${a}${b - a === 1 ? '' : '-'}${b}]`; -} + if (state.brackets === 0) { + push({ + type: 'text', + value + }); + continue; + } + } + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ -function hasPadding(str) { - return /^-?(0+)\d/.test(str); -} -function padZeros(value, tok, options) { - if (!tok.isPadded) { - return value; - } + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); - let diff = Math.abs(tok.maxLen - String(value).length); - let relax = options.relaxZeros !== false; + if (inner.includes('[')) { + prev.posix = true; - switch (diff) { - case 0: - return ''; + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; - case 1: - return relax ? '0?' : '0'; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); - case 2: - return relax ? '0{0,2}' : '00'; + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } - default: - { - return relax ? `0{0,${diff}}` : `0{${diff}}`; + continue; + } + } + } } - } -} -/** - * Cache - */ + if (value === '[' && peek() !== ':' || value === '-' && peek() === ']') { + value = `\\${value}`; + } -toRegexRange.cache = {}; + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } -toRegexRange.clearCache = () => toRegexRange.cache = {}; -/** - * Expose `toRegexRange` - */ + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } + prev.value += value; + append({ + value + }); + continue; + } + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ -var toRegexRange_1 = toRegexRange; -const isObject$1 = val => val !== null && typeof val === 'object' && !Array.isArray(val); + if (state.quotes === 1 && value !== '"') { + value = utils$9.escapeRegex(value); + prev.value += value; + append({ + value + }); + continue; + } + /** + * Double quotes + */ -const transform = toNumber => { - return value => toNumber === true ? Number(value) : String(value); -}; -const isValidValue = value => { - return typeof value === 'number' || typeof value === 'string' && value !== ''; -}; + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; -const isNumber$1 = num => Number.isInteger(+num); + if (opts.keepQuotes === true) { + push({ + type: 'text', + value + }); + } -const zeros = input => { - let value = `${input}`; - let index = -1; - if (value[0] === '-') value = value.slice(1); - if (value === '0') return false; + continue; + } + /** + * Parentheses + */ - while (value[++index] === '0'); - return index > 0; -}; + if (value === '(') { + increment('parens'); + push({ + type: 'paren', + value + }); + continue; + } -const stringify$2 = (start, end, options) => { - if (typeof start === 'string' || typeof end === 'string') { - return true; - } + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError$1('opening', '(')); + } - return options.stringify === true; -}; + const extglob = extglobs[extglobs.length - 1]; -const pad = (input, maxLength, toNumber) => { - if (maxLength > 0) { - let dash = input[0] === '-' ? '-' : ''; - if (dash) input = input.slice(1); - input = dash + input.padStart(dash ? maxLength - 1 : maxLength, '0'); - } + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } - if (toNumber === false) { - return String(input); - } + push({ + type: 'paren', + value, + output: state.parens ? ')' : '\\)' + }); + decrement('parens'); + continue; + } + /** + * Square brackets + */ - return input; -}; -const toMaxLen = (input, maxLength) => { - let negative = input[0] === '-' ? '-' : ''; + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError$1('closing', ']')); + } - if (negative) { - input = input.slice(1); - maxLength--; - } + value = `\\${value}`; + } else { + increment('brackets'); + } - while (input.length < maxLength) input = '0' + input; + push({ + type: 'bracket', + value + }); + continue; + } - return negative ? '-' + input : input; -}; + if (value === ']') { + if (opts.nobracket === true || prev && prev.type === 'bracket' && prev.value.length === 1) { + push({ + type: 'text', + value, + output: `\\${value}` + }); + continue; + } -const toSequence = (parts, options) => { - parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); - let prefix = options.capture ? '' : '?:'; - let positives = ''; - let negatives = ''; - let result; + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError$1('opening', '[')); + } - if (parts.positives.length) { - positives = parts.positives.join('|'); - } + push({ + type: 'text', + value, + output: `\\${value}` + }); + continue; + } - if (parts.negatives.length) { - negatives = `-(${prefix}${parts.negatives.join('|')})`; - } + decrement('brackets'); + const prevValue = prev.value.slice(1); - if (positives && negatives) { - result = `${positives}|${negatives}`; - } else { - result = positives || negatives; - } + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } - if (options.wrap) { - return `(${prefix}${result})`; - } + prev.value += value; + append({ + value + }); // when literal brackets are explicitly disabled + // assume we should match with a regex character class - return result; -}; + if (opts.literalBrackets === false || utils$9.hasRegexChars(prevValue)) { + continue; + } -const toRange = (a, b, isNumbers, options) => { - if (isNumbers) { - return toRegexRange_1(a, b, Object.assign({ - wrap: false - }, options)); - } + const escaped = utils$9.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters - let start = String.fromCharCode(a); - if (a === b) return start; - let stop = String.fromCharCode(b); - return `[${start}-${stop}]`; -}; + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } // when the user specifies nothing, try to match both -const toRegex = (start, end, options) => { - if (Array.isArray(start)) { - let wrap = options.wrap === true; - let prefix = options.capture ? '' : '?:'; - return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); - } - return toRegexRange_1(start, end, options); -}; + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + /** + * Braces + */ -const rangeError = (...args) => { - return new RangeError('Invalid range arguments: ' + util__default['default'].inspect(...args)); -}; -const invalidRange = (start, end, options) => { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; -}; + if (value === '{' && opts.nobrace !== true) { + increment('braces'); + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + braces.push(open); + push(open); + continue; + } -const invalidStep = (step, options) => { - if (options.strictRanges === true) { - throw new TypeError(`Expected step "${step}" to be a number`); - } + if (value === '}') { + const brace = braces[braces.length - 1]; - return []; -}; + if (opts.nobrace === true || !brace) { + push({ + type: 'text', + value, + output: value + }); + continue; + } -const fillNumbers = (start, end, step = 1, options = {}) => { - let a = Number(start); - let b = Number(end); + let output = ')'; - if (!Number.isInteger(a) || !Number.isInteger(b)) { - if (options.strictRanges === true) throw rangeError([start, end]); - return []; - } // fix negative zero + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); - if (a === 0) a = 0; - if (b === 0) b = 0; - let descending = a > b; - let startString = String(start); - let endString = String(end); - let stepString = String(step); - step = Math.max(Math.abs(step), 1); - let padded = zeros(startString) || zeros(endString) || zeros(stepString); - let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; - let toNumber = padded === false && stringify$2(start, end, options) === false; - let format = options.transform || transform(toNumber); + if (arr[i].type === 'brace') { + break; + } - if (options.toRegex && step === 1) { - return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); - } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } - let parts = { - negatives: [], - positives: [] - }; + output = expandRange(range, opts); + state.backtrack = true; + } - let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; - let range = []; - let index = 0; + for (const t of toks) { + state.output += t.output || t.value; + } + } - while (descending ? a >= b : a <= b) { - if (options.toRegex === true && step > 1) { - push(a); - } else { - range.push(pad(format(a, index), maxLen, toNumber)); + push({ + type: 'brace', + value, + output + }); + decrement('braces'); + braces.pop(); + continue; } + /** + * Pipes + */ - a = descending ? a - step : a + step; - index++; - } - - if (options.toRegex === true) { - return step > 1 ? toSequence(parts, options) : toRegex(range, null, Object.assign({ - wrap: false - }, options)); - } - - return range; -}; - -const fillLetters = (start, end, step = 1, options = {}) => { - if (!isNumber$1(start) && start.length > 1 || !isNumber$1(end) && end.length > 1) { - return invalidRange(start, end, options); - } - let format = options.transform || (val => String.fromCharCode(val)); + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } - let a = `${start}`.charCodeAt(0); - let b = `${end}`.charCodeAt(0); - let descending = a > b; - let min = Math.min(a, b); - let max = Math.max(a, b); + push({ + type: 'text', + value + }); + continue; + } + /** + * Commas + */ - if (options.toRegex && step === 1) { - return toRange(min, max, false, options); - } - let range = []; - let index = 0; + if (value === ',') { + let output = value; + const brace = braces[braces.length - 1]; - while (descending ? a >= b : a <= b) { - range.push(format(a, index)); - a = descending ? a - step : a + step; - index++; - } + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } - if (options.toRegex === true) { - return toRegex(range, null, { - wrap: false, - options - }); - } + push({ + type: 'comma', + value, + output + }); + continue; + } + /** + * Slashes + */ - return range; -}; -const fill$2 = (start, end, step, options = {}) => { - if (end == null && isValidValue(start)) { - return [start]; - } + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token - if (!isValidValue(start) || !isValidValue(end)) { - return invalidRange(start, end, options); - } + continue; + } - if (typeof step === 'function') { - return fill$2(start, end, 1, { - transform: step - }); - } + push({ + type: 'slash', + value, + output: SLASH_LITERAL + }); + continue; + } + /** + * Dots + */ - if (isObject$1(step)) { - return fill$2(start, end, 0, step); - } - let opts = Object.assign({}, options); - if (opts.capture === true) opts.wrap = true; - step = step || opts.step || 1; + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } - if (!isNumber$1(step)) { - if (step != null && !isObject$1(step)) return invalidStep(step, opts); - return fill$2(start, end, 1, step); - } + if (state.braces + state.parens === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ + type: 'text', + value, + output: DOT_LITERAL + }); + continue; + } - if (isNumber$1(start) && isNumber$1(end)) { - return fillNumbers(start, end, step, opts); - } + push({ + type: 'dot', + value, + output: DOT_LITERAL + }); + continue; + } + /** + * Question marks + */ - return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); -}; -var fillRange = fill$2; + if (value === '?') { + const isGroup = prev && prev.value === '('; -const compile = (ast, options = {}) => { - let walk = (node, parent = {}) => { - let invalidBlock = utils$1.isInvalidBrace(parent); - let invalidNode = node.invalid === true && options.escapeInvalid === true; - let invalid = invalidBlock === true || invalidNode === true; - let prefix = options.escapeInvalid === true ? '\\' : ''; - let output = ''; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } - if (node.isOpen === true) { - return prefix + node.value; - } + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; - if (node.isClose === true) { - return prefix + node.value; - } + if (next === '<' && !utils$9.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } - if (node.type === 'open') { - return invalid ? prefix + node.value : '('; - } + if (prev.value === '(' && !/[!=<:]/.test(next) || next === '<' && !/<([!=]|\w+>)/.test(remaining())) { + output = `\\${value}`; + } - if (node.type === 'close') { - return invalid ? prefix + node.value : ')'; - } + push({ + type: 'text', + value, + output + }); + continue; + } - if (node.type === 'comma') { - return node.prev.type === 'comma' ? '' : invalid ? node.value : '|'; - } + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ + type: 'qmark', + value, + output: QMARK_NO_DOT + }); + continue; + } - if (node.value) { - return node.value; + push({ + type: 'qmark', + value, + output: QMARK + }); + continue; } + /** + * Exclamation + */ - if (node.nodes && node.ranges > 0) { - let args = utils$1.reduce(node.nodes); - let range = fillRange(...args, Object.assign({}, options, { - wrap: false, - toRegex: true - })); - if (range.length !== 0) { - return args.length > 1 && range.length > 1 ? `(${range})` : range; + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } } - } - if (node.nodes) { - for (let child of node.nodes) { - output += walk(child, node); + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; } } + /** + * Plus + */ - return output; - }; - return walk(ast); -}; + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } -var compile_1 = compile; + if (prev && prev.value === '(' || opts.regex === false) { + push({ + type: 'plus', + value, + output: PLUS_LITERAL + }); + continue; + } -const append = (queue = '', stash = '', enclose = false) => { - let result = []; - queue = [].concat(queue); - stash = [].concat(stash); - if (!stash.length) return queue; + if (prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace') || state.parens > 0) { + push({ + type: 'plus', + value + }); + continue; + } - if (!queue.length) { - return enclose ? utils$1.flatten(stash).map(ele => `{${ele}}`) : stash; - } + push({ + type: 'plus', + value: PLUS_LITERAL + }); + continue; + } + /** + * Plain text + */ - for (let item of queue) { - if (Array.isArray(item)) { - for (let value of item) { - result.push(append(value, stash, enclose)); - } - } else { - for (let ele of stash) { - if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; - result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele); + + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ + type: 'at', + extglob: true, + value, + output: '' + }); + continue; } + + push({ + type: 'text', + value + }); + continue; } - } + /** + * Plain text + */ - return utils$1.flatten(result); -}; -const expand$1 = (ast, options = {}) => { - let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; + } - let walk = (node, parent = {}) => { - node.queue = []; - let p = parent; - let q = parent.queue; + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - while (p.type !== 'brace' && p.type !== 'root' && p.parent) { - p = p.parent; - q = p.queue; - } + if (match) { + value += match[0]; + state.index += match[0].length; + } - if (node.invalid || node.dollar) { - q.push(append(q.pop(), stringify$1(node, options))); - return; + push({ + type: 'text', + value + }); + continue; } + /** + * Stars + */ - if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { - q.push(append(q.pop(), ['{}'])); - return; + + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; } - if (node.nodes && node.ranges > 0) { - let args = utils$1.reduce(node.nodes); + let rest = remaining(); - if (utils$1.exceedsLimit(...args, options.step, rangeLimit)) { - throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; + } + + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; } - let range = fillRange(...args, options); + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); - if (range.length === 0) { - range = stringify$1(node, options); + if (opts.bash === true && (!isStart || rest[0] && rest[0] !== '/')) { + push({ + type: 'star', + value, + output: '' + }); + continue; } - q.push(append(q.pop(), range)); - node.nodes = []; - return; - } + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); - let enclose = utils$1.encloseBrace(node); - let queue = node.queue; - let block = node; + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ + type: 'star', + value, + output: '' + }); + continue; + } // strip consecutive `/**/` - while (block.type !== 'brace' && block.type !== 'root' && block.parent) { - block = block.parent; - queue = block.queue; - } - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; - if (child.type === 'comma' && node.type === 'brace') { - if (i === 1) queue.push(''); - queue.push(''); - continue; + if (after && after !== '/') { + break; + } + + rest = rest.slice(3); + consume('/**', 3); } - if (child.type === 'close') { - q.push(append(q.pop(), queue, enclose)); + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); continue; } - if (child.value && child.type !== 'open') { - queue.push(append(queue.pop(), child.value)); + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); continue; } - if (child.nodes) { - walk(child, node); + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + state.output += prior.output + prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: 'slash', + value: '/', + output: '' + }); + continue; } - } - - return queue; - }; - return utils$1.flatten(walk(ast)); -}; + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ + type: 'slash', + value: '/', + output: '' + }); + continue; + } // remove single star from output -var expand_1 = expand$1; -var constants$2 = { - MAX_LENGTH: 1024 * 64, - // Digits - CHAR_0: '0', + state.output = state.output.slice(0, -prev.output.length); // reset previous token to globstar - /* 0 */ - CHAR_9: '9', + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; // reset output with globstar - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 'A', + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } - /* A */ - CHAR_LOWERCASE_A: 'a', + const token = { + type: 'star', + value, + output: star + }; - /* a */ - CHAR_UPPERCASE_Z: 'Z', + if (opts.bash === true) { + token.output = '.*?'; - /* Z */ - CHAR_LOWERCASE_Z: 'z', + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } - /* z */ - CHAR_LEFT_PARENTHESES: '(', + push(token); + continue; + } - /* ( */ - CHAR_RIGHT_PARENTHESES: ')', + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } - /* ) */ - CHAR_ASTERISK: '*', + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + } else { + state.output += nodot; + prev.output += nodot; + } - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: '&', + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } - /* & */ - CHAR_AT: '@', + push(token); + } - /* @ */ - CHAR_BACKSLASH: '\\', + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ']')); + state.output = utils$9.escapeLast(state.output, '['); + decrement('brackets'); + } - /* \ */ - CHAR_BACKTICK: '`', + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ')')); + state.output = utils$9.escapeLast(state.output, '('); + decrement('parens'); + } - /* ` */ - CHAR_CARRIAGE_RETURN: '\r', + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', '}')); + state.output = utils$9.escapeLast(state.output, '{'); + decrement('braces'); + } - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: '^', + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ + type: 'maybe_slash', + value: '', + output: `${SLASH_LITERAL}?` + }); + } // rebuild the output if we had to backtrack at any point - /* ^ */ - CHAR_COLON: ':', - /* : */ - CHAR_COMMA: ',', + if (state.backtrack === true) { + state.output = ''; - /* , */ - CHAR_DOLLAR: '$', + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; - /* . */ - CHAR_DOT: '.', + if (token.suffix) { + state.output += token.suffix; + } + } + } - /* . */ - CHAR_DOUBLE_QUOTE: '"', + return state; +}; +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ - /* " */ - CHAR_EQUAL: '=', - /* = */ - CHAR_EXCLAMATION_MARK: '!', +parse$2.fastpaths = (input, options) => { + const opts = Object.assign({}, options); + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; - /* ! */ - CHAR_FORM_FEED: '\f', + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } - /* \f */ - CHAR_FORWARD_SLASH: '/', + input = REPLACEMENTS[input] || input; + const win32 = utils$9.isWindows(options); // create constants based on platform, for windows or posix - /* / */ - CHAR_HASH: '#', + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants$1.globChars(win32); + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { + negated: false, + prefix: '' + }; + let star = opts.bash === true ? '.*?' : STAR; - /* # */ - CHAR_HYPHEN_MINUS: '-', + if (opts.capture) { + star = `(${star})`; + } - /* - */ - CHAR_LEFT_ANGLE_BRACKET: '<', + const globstar = opts => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; - /* < */ - CHAR_LEFT_CURLY_BRACE: '{', + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; - /* { */ - CHAR_LEFT_SQUARE_BRACKET: '[', + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; - /* [ */ - CHAR_LINE_FEED: '\n', + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - /* \n */ - CHAR_NO_BREAK_SPACE: '\u00A0', + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; - /* \u00A0 */ - CHAR_PERCENT: '%', + case '**': + return nodot + globstar(opts); - /* % */ - CHAR_PLUS: '+', + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; - /* + */ - CHAR_QUESTION_MARK: '?', + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: '>', + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; - /* > */ - CHAR_RIGHT_CURLY_BRACE: '}', + default: + { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + const source = create(match[1]); + if (!source) return; + return source + DOT_LITERAL + match[2]; + } + } + }; - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: ']', + const output = utils$9.removePrefix(input, state); + let source = create(output); - /* ] */ - CHAR_SEMICOLON: ';', + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } - /* ; */ - CHAR_SINGLE_QUOTE: '\'', + return source; +}; - /* ' */ - CHAR_SPACE: ' ', +var parse_1$2 = parse$2; - /* */ - CHAR_TAB: '\t', +const isObject = val => val && typeof val === 'object' && !Array.isArray(val); +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ - /* \t */ - CHAR_UNDERSCORE: '_', - /* _ */ - CHAR_VERTICAL_LINE: '|', +const picomatch$1 = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch$1(input, options, returnState)); - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' - /* \uFEFF */ + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } -}; + return false; + }; -/** - * Constants - */ + return arrayMatcher; + } + const isState = isObject(glob) && glob.tokens && glob.input; -const { - MAX_LENGTH: MAX_LENGTH$2, - CHAR_BACKSLASH, + if (glob === '' || typeof glob !== 'string' && !isState) { + throw new TypeError('Expected pattern to be a non-empty string'); + } - /* \ */ - CHAR_BACKTICK, + const opts = options || {}; + const posix = utils$9.isWindows(options); + const regex = isState ? picomatch$1.compileRe(glob, options) : picomatch$1.makeRe(glob, options, false, true); + const state = regex.state; + delete regex.state; - /* ` */ - CHAR_COMMA: CHAR_COMMA$1, + let isIgnored = () => false; - /* , */ - CHAR_DOT, + if (opts.ignore) { + const ignoreOpts = Object.assign(Object.assign({}, options), {}, { + ignore: null, + onMatch: null, + onResult: null + }); + isIgnored = picomatch$1(opts.ignore, ignoreOpts, returnState); + } - /* . */ - CHAR_LEFT_PARENTHESES, + const matcher = (input, returnObject = false) => { + const { + isMatch, + match, + output + } = picomatch$1.test(input, regex, options, { + glob, + posix + }); + const result = { + glob, + state, + regex, + posix, + input, + output, + match, + isMatch + }; - /* ( */ - CHAR_RIGHT_PARENTHESES, + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } - /* ) */ - CHAR_LEFT_CURLY_BRACE, + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } - /* { */ - CHAR_RIGHT_CURLY_BRACE, + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } - /* } */ - CHAR_LEFT_SQUARE_BRACKET, + result.isMatch = false; + return returnObject ? result : false; + } - /* [ */ - CHAR_RIGHT_SQUARE_BRACKET, + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } - /* ] */ - CHAR_DOUBLE_QUOTE, + return returnObject ? result : true; + }; - /* " */ - CHAR_SINGLE_QUOTE, + if (returnState) { + matcher.state = state; + } - /* ' */ - CHAR_NO_BREAK_SPACE, - CHAR_ZERO_WIDTH_NOBREAK_SPACE -} = constants$2; + return matcher; +}; /** - * parse + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public */ -const parse$5 = (input, options = {}) => { + +picomatch$1.test = (input, regex, options, { + glob, + posix +} = {}) => { if (typeof input !== 'string') { - throw new TypeError('Expected a string'); + throw new TypeError('Expected input to be a string'); } - let opts = options || {}; - let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$2, opts.maxLength) : MAX_LENGTH$2; + if (input === '') { + return { + isMatch: false, + output: '' + }; + } - if (input.length > max) { - throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + const opts = options || {}; + const format = opts.format || (posix ? utils$9.toPosixSlashes : null); + let match = input === glob; + let output = match && format ? format(input) : input; + + if (match === false) { + output = format ? format(input) : input; + match = output === glob; } - let ast = { - type: 'root', - input, - nodes: [] + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch$1.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + + return { + isMatch: Boolean(match), + match, + output }; - let stack = [ast]; - let block = ast; - let prev = ast; - let brackets = 0; - let length = input.length; - let index = 0; - let depth = 0; - let value; - /** - * Helpers - */ +}; +/** + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public + */ - const advance = () => input[index++]; - const push = node => { - if (node.type === 'text' && prev.type === 'dot') { - prev.type = 'text'; - } +picomatch$1.matchBase = (input, glob, options, posix = utils$9.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch$1.makeRe(glob, options); + return regex.test(path__default['default'].basename(input)); +}; +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ - if (prev && prev.type === 'text' && node.type === 'text') { - prev.value += node.value; - return; - } - block.nodes.push(node); - node.parent = block; - node.prev = prev; - prev = node; - return node; - }; +picomatch$1.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str); +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ - push({ - type: 'bos' - }); - while (index < length) { - block = stack[stack.length - 1]; - value = advance(); - /** - * Invalid chars - */ +picomatch$1.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch$1.parse(p, options)); + return parse_1$2(pattern, Object.assign(Object.assign({}, options), {}, { + fastpaths: false + })); +}; +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ - if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { - continue; - } - /** - * Escaped chars - */ +picomatch$1.scan = (input, options) => scan_1(input, options); +/** + * Compile a regular expression from the `state` object returned by the + * [parse()](#parse) method. + * + * @param {Object} `state` + * @param {Object} `options` + * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. + * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. + * @return {RegExp} + * @api public + */ - if (value === CHAR_BACKSLASH) { - push({ - type: 'text', - value: (options.keepEscaping ? value : '') + advance() - }); - continue; - } - /** - * Right square bracket (literal): ']' - */ +picomatch$1.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; + } - if (value === CHAR_RIGHT_SQUARE_BRACKET) { - push({ - type: 'text', - value: '\\' + value - }); - continue; - } - /** - * Left square bracket: '[' - */ + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } - if (value === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - let next; + const regex = picomatch$1.toRegex(source, options); - while (index < length && (next = advance())) { - value += next; + if (returnState === true) { + regex.state = state; + } - if (next === CHAR_LEFT_SQUARE_BRACKET) { - brackets++; - continue; - } + return regex; +}; +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. + * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ - if (next === CHAR_BACKSLASH) { - value += advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - brackets--; +picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } - if (brackets === 0) { - break; - } - } - } + let parsed = { + negated: false, + fastpaths: true + }; - push({ - type: 'text', - value - }); - continue; - } - /** - * Parentheses - */ + if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + parsed.output = parse_1$2.fastpaths(input, options); + } + if (!parsed.output) { + parsed = parse_1$2(input, options); + } - if (value === CHAR_LEFT_PARENTHESES) { - block = push({ - type: 'paren', - nodes: [] - }); - stack.push(block); - push({ - type: 'text', - value - }); - continue; - } + return picomatch$1.compileRe(parsed, options, returnOutput, returnState); +}; +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ - if (value === CHAR_RIGHT_PARENTHESES) { - if (block.type !== 'paren') { - push({ - type: 'text', - value - }); - continue; - } - block = stack.pop(); - push({ - type: 'text', - value - }); - block = stack[stack.length - 1]; - continue; - } - /** - * Quotes: '|"|` - */ +picomatch$1.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; +/** + * Picomatch constants. + * @return {Object} + */ + + +picomatch$1.constants = constants$1; +/** + * Expose "picomatch" + */ +var picomatch_1 = picomatch$1; - if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { - let open = value; - let next; +var picomatch = picomatch_1; - if (options.keepQuotes !== true) { - value = ''; - } +const isEmptyString = val => val === '' || val === './'; +/** + * Returns an array of strings that match one or more glob patterns. + * + * ```js + * const mm = require('micromatch'); + * // mm(list, patterns[, options]); + * + * console.log(mm(['a.js', 'a.txt'], ['*.js'])); + * //=> [ 'a.js' ] + * ``` + * @param {String|Array} `list` List of strings to match. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) + * @return {Array} Returns an array of matches + * @summary false + * @api public + */ - while (index < length && (next = advance())) { - if (next === CHAR_BACKSLASH) { - value += next + advance(); - continue; - } - if (next === open) { - if (options.keepQuotes === true) value += next; - break; - } +const micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + let omit = new Set(); + let keep = new Set(); + let items = new Set(); + let negatives = 0; - value += next; - } + let onResult = state => { + items.add(state.output); - push({ - type: 'text', - value - }); - continue; + if (options && options.onResult) { + options.onResult(state); } - /** - * Left curly brace: '{' - */ + }; + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), Object.assign(Object.assign({}, options), {}, { + onResult + }), true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) negatives++; - if (value === CHAR_LEFT_CURLY_BRACE) { - depth++; - let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; - let brace = { - type: 'brace', - open: true, - close: false, - dollar, - depth, - commas: 0, - ranges: 0, - nodes: [] - }; - block = push(brace); - stack.push(block); - push({ - type: 'open', - value - }); - continue; + for (let item of list) { + let matched = isMatch(item, true); + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) continue; + + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } } - /** - * Right curly brace: '}' - */ + } + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter(item => !omit.has(item)); - if (value === CHAR_RIGHT_CURLY_BRACE) { - if (block.type !== 'brace') { - push({ - type: 'text', - value - }); - continue; - } + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(', ')}"`); + } - let type = 'close'; - block = stack.pop(); - block.close = true; - push({ - type, - value - }); - depth--; - block = stack[stack.length - 1]; - continue; + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; } - /** - * Comma: ',' - */ + } + return matches; +}; +/** + * Backwards compatibility + */ - if (value === CHAR_COMMA$1 && depth > 0) { - if (block.ranges > 0) { - block.ranges = 0; - let open = block.nodes.shift(); - block.nodes = [open, { - type: 'text', - value: stringify$1(block) - }]; - } - push({ - type: 'comma', - value - }); - block.commas++; - continue; - } - /** - * Dot: '.' - */ +micromatch.match = micromatch; +/** + * Returns a matcher function from the given glob `pattern` and `options`. + * The returned function takes a string to match as its only argument and returns + * true if the string is a match. + * + * ```js + * const mm = require('micromatch'); + * // mm.matcher(pattern[, options]); + * + * const isMatch = mm.matcher('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @param {String} `pattern` Glob pattern + * @param {Object} `options` + * @return {Function} Returns a matcher function. + * @api public + */ +micromatch.matcher = (pattern, options) => picomatch(pattern, options); +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const mm = require('micromatch'); + * // mm.isMatch(string, patterns[, options]); + * + * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(mm.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `[options]` See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ - if (value === CHAR_DOT && depth > 0 && block.commas === 0) { - let siblings = block.nodes; - if (depth === 0 || siblings.length === 0) { - push({ - type: 'text', - value - }); - continue; - } +micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); +/** + * Backwards compatibility + */ - if (prev.type === 'dot') { - block.range = []; - prev.value += value; - prev.type = 'range'; - if (block.nodes.length !== 3 && block.nodes.length !== 5) { - block.invalid = true; - block.ranges = 0; - prev.type = 'text'; - continue; - } +micromatch.any = micromatch.isMatch; +/** + * Returns a list of strings that _**do not match any**_ of the given `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.not(list, patterns[, options]); + * + * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); + * //=> ['b.b', 'c.c'] + * ``` + * @param {Array} `list` Array of strings to match. + * @param {String|Array} `patterns` One or more glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of strings that **do not match** the given patterns. + * @api public + */ - block.ranges++; - block.args = []; - continue; - } +micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = new Set(); + let items = []; - if (prev.type === 'range') { - siblings.pop(); - let before = siblings[siblings.length - 1]; - before.value += prev.value + value; - prev = before; - block.ranges--; - continue; - } + let onResult = state => { + if (options.onResult) options.onResult(state); + items.push(state.output); + }; - push({ - type: 'dot', - value - }); - continue; - } - /** - * Text - */ + let matches = micromatch(list, patterns, Object.assign(Object.assign({}, options), {}, { + onResult + })); + for (let item of items) { + if (!matches.includes(item)) { + result.add(item); + } + } - push({ - type: 'text', - value - }); - } // Mark imbalanced braces and brackets as invalid + return [...result]; +}; +/** + * Returns true if the given `string` contains the given pattern. Similar + * to [.isMatch](#isMatch) but the pattern can match any part of the string. + * + * ```js + * var mm = require('micromatch'); + * // mm.contains(string, pattern[, options]); + * + * console.log(mm.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(mm.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String|Array} `patterns` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any of the patterns matches any part of `str`. + * @api public + */ - do { - block = stack.pop(); +micromatch.contains = (str, pattern, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); + } - if (block.type !== 'root') { - block.nodes.forEach(node => { - if (!node.nodes) { - if (node.type === 'open') node.isOpen = true; - if (node.type === 'close') node.isClose = true; - if (!node.nodes) node.type = 'text'; - node.invalid = true; - } - }); // get the location of the block on parent.nodes (block's siblings) + if (Array.isArray(pattern)) { + return pattern.some(p => micromatch.contains(str, p, options)); + } - let parent = stack[stack.length - 1]; - let index = parent.nodes.indexOf(block); // replace the (invalid) block with it's nodes + if (typeof pattern === 'string') { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; + } - parent.nodes.splice(index, 1, ...block.nodes); + if (str.includes(pattern) || str.startsWith('./') && str.slice(2).includes(pattern)) { + return true; } - } while (stack.length > 0); + } - push({ - type: 'eos' - }); - return ast; + return micromatch.isMatch(str, pattern, Object.assign(Object.assign({}, options), {}, { + contains: true + })); }; +/** + * Filter the keys of the given object with the given `glob` pattern + * and `options`. Does not attempt to match nested keys. If you need this feature, + * use [glob-object][] instead. + * + * ```js + * const mm = require('micromatch'); + * // mm.matchKeys(object, patterns[, options]); + * + * const obj = { aa: 'a', ab: 'b', ac: 'c' }; + * console.log(mm.matchKeys(obj, '*b')); + * //=> { ab: 'b' } + * ``` + * @param {Object} `object` The object with keys to filter. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Object} Returns an object with only keys that match the given patterns. + * @api public + */ + + +micromatch.matchKeys = (obj, patterns, options) => { + if (!utils$9.isObject(obj)) { + throw new TypeError('Expected the first argument to be an object'); + } + + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; -var parse_1 = parse$5; + for (let key of keys) res[key] = obj[key]; + return res; +}; /** - * Expand the given pattern or create a regex-compatible string. + * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. * * ```js - * const braces = require('braces'); - * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] - * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * const mm = require('micromatch'); + * // mm.some(list, patterns[, options]); + * + * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // true + * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); + * // false * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {String} + * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list` * @api public */ -const braces = (input, options = {}) => { - let output = []; +micromatch.some = (list, patterns, options) => { + let items = [].concat(list); - if (Array.isArray(input)) { - for (let pattern of input) { - let result = braces.create(pattern, options); + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); - if (Array.isArray(result)) { - output.push(...result); - } else { - output.push(result); - } + if (items.some(item => isMatch(item))) { + return true; } - } else { - output = [].concat(braces.create(input, options)); } - if (options && options.expand === true && options.nodupes === true) { - output = [...new Set(output)]; + return false; +}; +/** + * Returns true if every string in the given `list` matches + * any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.every(list, patterns[, options]); + * + * console.log(mm.every('foo.js', ['foo.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // false + * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list` + * @api public + */ + + +micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + + if (!items.every(item => isMatch(item))) { + return false; + } } - return output; + return true; }; /** - * Parse the given `str` with the given `options`. + * Returns true if **all** of the given `patterns` match + * the specified string. * * ```js - * // braces.parse(pattern, [, options]); - * const ast = braces.parse('a/{b,c}/d'); - * console.log(ast); + * const mm = require('micromatch'); + * // mm.all(string, patterns[, options]); + * + * console.log(mm.all('foo.js', ['foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); + * // false + * + * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); + * // true * ``` - * @param {String} pattern Brace pattern to parse - * @param {Object} options - * @return {Object} Returns an AST + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` * @api public */ -braces.parse = (input, options = {}) => parse_1(input, options); +micromatch.all = (str, patterns, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); + } + + return [].concat(patterns).every(p => picomatch(p, options)(str)); +}; /** - * Creates a braces string from an AST, or an AST node. + * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. * * ```js - * const braces = require('braces'); - * let ast = braces.parse('foo/{a,b}/bar'); - * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * const mm = require('micromatch'); + * // mm.capture(pattern, string[, options]); + * + * console.log(mm.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(mm.capture('test/*.js', 'foo/bar.css')); + * //=> null * ``` - * @param {String} `input` Brace pattern or AST. - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. + * @param {String} `glob` Glob pattern to use for matching. + * @param {String} `input` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`. * @api public */ -braces.stringify = (input, options = {}) => { - if (typeof input === 'string') { - return stringify$1(braces.parse(input, options), options); - } +micromatch.capture = (glob, input, options) => { + let posix = utils$9.isWindows(options); + let regex = picomatch.makeRe(String(glob), Object.assign(Object.assign({}, options), {}, { + capture: true + })); + let match = regex.exec(posix ? utils$9.toPosixSlashes(input) : input); - return stringify$1(input, options); + if (match) { + return match.slice(1).map(v => v === void 0 ? '' : v); + } }; /** - * Compiles a brace pattern into a regex-compatible, optimized string. - * This method is called by the main [braces](#braces) function by default. + * Create a regular expression from the given glob `pattern`. * * ```js - * const braces = require('braces'); - * console.log(braces.compile('a/{b,c}/d')); - * //=> ['a/(b|c)/d'] + * const mm = require('micromatch'); + * // mm.makeRe(pattern[, options]); + * + * console.log(mm.makeRe('*.js')); + * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ * ``` - * @param {String} `input` Brace pattern or AST. + * @param {String} `pattern` A glob pattern to convert to regex. * @param {Object} `options` - * @return {Array} Returns an array of expanded values. + * @return {RegExp} Returns a regex created from the given pattern. * @api public */ -braces.compile = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } +micromatch.makeRe = (...args) => picomatch.makeRe(...args); +/** + * Scan a glob pattern to separate the pattern into segments. Used + * by the [split](#split) method. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.scan(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ - return compile_1(input, options); -}; + +micromatch.scan = (...args) => picomatch.scan(...args); /** - * Expands a brace pattern into an array. This method is called by the - * main [braces](#braces) function when `options.expand` is true. Before - * using this method it's recommended that you read the [performance notes](#performance)) - * and advantages of using [.compile](#compile) instead. + * Parse a glob pattern to create the source string for a regular + * expression. * * ```js - * const braces = require('braces'); - * console.log(braces.expand('a/{b,c}/d')); - * //=> ['a/b/d', 'a/c/d']; + * const mm = require('micromatch'); + * const state = mm(pattern[, options]); * ``` - * @param {String} `pattern` Brace pattern + * @param {String} `glob` * @param {Object} `options` - * @return {Array} Returns an array of expanded values. + * @return {Object} Returns an object with useful properties and output to be used as regex source string. * @api public */ -braces.expand = (input, options = {}) => { - if (typeof input === 'string') { - input = braces.parse(input, options); - } - - let result = expand_1(input, options); // filter out empty strings if specified - - if (options.noempty === true) { - result = result.filter(Boolean); - } // filter out duplicates if specified - +micromatch.parse = (patterns, options) => { + let res = []; - if (options.nodupes === true) { - result = [...new Set(result)]; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces_1(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } } - return result; + return res; }; /** - * Processes a brace pattern and returns either an expanded array - * (if `options.expand` is true), a highly optimized regex-compatible string. - * This method is called by the main [braces](#braces) function. + * Process the given brace `pattern`. * * ```js - * const braces = require('braces'); - * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) - * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * const { braces } = require('micromatch'); + * console.log(braces('foo/{a,b,c}/bar')); + * //=> [ 'foo/(a|b|c)/bar' ] + * + * console.log(braces('foo/{a,b,c}/bar', { expand: true })); + * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] * ``` - * @param {String} `pattern` Brace pattern - * @param {Object} `options` - * @return {Array} Returns an array of expanded values. + * @param {String} `pattern` String with brace pattern to process. + * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. + * @return {Array} * @api public */ -braces.create = (input, options = {}) => { - if (input === '' || input.length < 3) { - return [input]; +micromatch.braces = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + + if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { + return [pattern]; } - return options.expand !== true ? braces.compile(input, options) : braces.expand(input, options); + return braces_1(pattern, options); }; /** - * Expose "braces" + * Expand braces */ -var braces_1 = braces; - -const WIN_SLASH = '\\\\/'; -const WIN_NO_SLASH = `[^${WIN_SLASH}]`; -/** - * Posix glob regex - */ - -const DOT_LITERAL = '\\.'; -const PLUS_LITERAL = '\\+'; -const QMARK_LITERAL = '\\?'; -const SLASH_LITERAL = '\\/'; -const ONE_CHAR = '(?=.)'; -const QMARK = '[^/]'; -const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; -const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; -const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; -const NO_DOT = `(?!${DOT_LITERAL})`; -const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; -const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; -const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; -const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -const STAR = `${QMARK}*?`; -const POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR +micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + return micromatch.braces(pattern, Object.assign(Object.assign({}, options), {}, { + expand: true + })); }; /** - * Windows glob regex - */ - -const WINDOWS_CHARS = Object.assign({}, POSIX_CHARS, { - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` -}); -/** - * POSIX Bracket Regex + * Expose micromatch */ -const 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' -}; -var constants$3 = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE, - // regular expressions - 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, - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - '***': '*', - '**/**': '**', - '**/**/**': '**' - }, - // Digits - CHAR_0: 48, - - /* 0 */ - CHAR_9: 57, - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 65, +var micromatch_1 = micromatch; - /* A */ - CHAR_LOWERCASE_A: 97, +var pattern = createCommonjsModule(function (module, exports) { - /* a */ - CHAR_UPPERCASE_Z: 90, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; + const GLOBSTAR = '**'; + const ESCAPE_SYMBOL = '\\'; + const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; + const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[.*]/; + const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\(.*\|.*\)/; + const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\(.*\)/; + const BRACE_EXPANSIONS_SYMBOLS_RE = /{.*(?:,|\.\.).*}/; - /* Z */ - CHAR_LOWERCASE_Z: 122, + function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); + } - /* z */ - CHAR_LEFT_PARENTHESES: 40, + exports.isStaticPattern = isStaticPattern; - /* ( */ - CHAR_RIGHT_PARENTHESES: 41, + function isDynamicPattern(pattern, options = {}) { + /** + * A special case with an empty string is necessary for matching patterns that start with a forward slash. + * An empty string cannot be a dynamic pattern. + * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. + */ + if (pattern === '') { + return false; + } + /** + * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check + * filepath directly (without read directory). + */ - /* ) */ - CHAR_ASTERISK: 42, - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } - /* & */ - CHAR_AT: 64, + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } - /* @ */ - CHAR_BACKWARD_SLASH: 92, + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } - /* \ */ - CHAR_CARRIAGE_RETURN: 13, + if (options.braceExpansion !== false && BRACE_EXPANSIONS_SYMBOLS_RE.test(pattern)) { + return true; + } - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, + return false; + } - /* ^ */ - CHAR_COLON: 58, + exports.isDynamicPattern = isDynamicPattern; - /* : */ - CHAR_COMMA: 44, + function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; + } - /* , */ - CHAR_DOT: 46, + exports.convertToPositivePattern = convertToPositivePattern; - /* . */ - CHAR_DOUBLE_QUOTE: 34, + function convertToNegativePattern(pattern) { + return '!' + pattern; + } - /* " */ - CHAR_EQUAL: 61, + exports.convertToNegativePattern = convertToNegativePattern; - /* = */ - CHAR_EXCLAMATION_MARK: 33, + function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; + } - /* ! */ - CHAR_FORM_FEED: 12, + exports.isNegativePattern = isNegativePattern; - /* \f */ - CHAR_FORWARD_SLASH: 47, + function isPositivePattern(pattern) { + return !isNegativePattern(pattern); + } - /* / */ - CHAR_GRAVE_ACCENT: 96, + exports.isPositivePattern = isPositivePattern; - /* ` */ - CHAR_HASH: 35, + function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); + } - /* # */ - CHAR_HYPHEN_MINUS: 45, + exports.getNegativePatterns = getNegativePatterns; - /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, + function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); + } - /* < */ - CHAR_LEFT_CURLY_BRACE: 123, + exports.getPositivePatterns = getPositivePatterns; - /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, + function getBaseDirectory(pattern) { + return globParent(pattern, { + flipBackslashes: false + }); + } - /* [ */ - CHAR_LINE_FEED: 10, + exports.getBaseDirectory = getBaseDirectory; - /* \n */ - CHAR_NO_BREAK_SPACE: 160, + function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); + } - /* \u00A0 */ - CHAR_PERCENT: 37, + exports.hasGlobStar = hasGlobStar; - /* % */ - CHAR_PLUS: 43, + function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); + } - /* + */ - CHAR_QUESTION_MARK: 63, + exports.endsWithSlashGlobStar = endsWithSlashGlobStar; - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, + function isAffectDepthOfReadingPattern(pattern) { + const basename = path__default['default'].basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); + } - /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, + exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, + function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); + } - /* ] */ - CHAR_SEMICOLON: 59, + exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; - /* ; */ - CHAR_SINGLE_QUOTE: 39, + function expandBraceExpansion(pattern) { + return micromatch_1.braces(pattern, { + expand: true, + nodupes: true + }); + } - /* ' */ - CHAR_SPACE: 32, + exports.expandBraceExpansion = expandBraceExpansion; - /* */ - CHAR_TAB: 9, + function getPatternParts(pattern, options) { + let { + parts + } = picomatch.scan(pattern, Object.assign(Object.assign({}, options), { + parts: true + })); + /** + * The scan method returns an empty array in some cases. + * See micromatch/picomatch#58 for more details. + */ - /* \t */ - CHAR_UNDERSCORE: 95, + if (parts.length === 0) { + parts = [pattern]; + } + /** + * The scan method does not return an empty part for the pattern with a forward slash. + * This is another part of micromatch/picomatch#58. + */ - /* _ */ - CHAR_VERTICAL_LINE: 124, - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, + if (parts[0].startsWith('/')) { + parts[0] = parts[0].slice(1); + parts.unshift(''); + } - /* \uFEFF */ - SEP: path__default['default'].sep, + return parts; + } - /** - * Create EXTGLOB_CHARS - */ - extglobChars(chars) { - return { - '!': { - type: 'negate', - open: '(?:(?!(?:', - close: `))${chars.STAR})` - }, - '?': { - type: 'qmark', - open: '(?:', - close: ')?' - }, - '+': { - type: 'plus', - open: '(?:', - close: ')+' - }, - '*': { - type: 'star', - open: '(?:', - close: ')*' - }, - '@': { - type: 'at', - open: '(?:', - close: ')' - } - }; - }, + exports.getPatternParts = getPatternParts; - /** - * Create GLOB_CHARS - */ - globChars(win32) { - return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + function makeRe(pattern, options) { + return micromatch_1.makeRe(pattern, options); } -}; - -var utils$2 = createCommonjsModule(function (module, exports) { + exports.makeRe = makeRe; - const win32 = process.platform === 'win32'; - const { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL - } = constants$3; + function convertPatternsToRe(patterns, options) { + return patterns.map(pattern => makeRe(pattern, options)); + } - exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + exports.convertPatternsToRe = convertPatternsToRe; - exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); + function matchAny(entry, patternsRe) { + return patternsRe.some(patternRe => patternRe.test(entry)); + } - exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); + exports.matchAny = matchAny; +}); - exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +var stream$4 = createCommonjsModule(function (module, exports) { - exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.merge = void 0; - exports.removeBackslashes = str => { - return str.replace(REGEX_REMOVE_BACKSLASH, match => { - return match === '\\' ? '' : match; + function merge(streams) { + const mergedStream = merge2_1(streams); + streams.forEach(stream => { + stream.once('error', error => mergedStream.emit('error', error)); }); - }; - - exports.supportsLookbehinds = () => { - const segs = process.version.slice(1).split('.').map(Number); - - if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { - return true; - } + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; + } - return false; - }; + exports.merge = merge; - exports.isWindows = options => { - if (options && typeof options.windows === 'boolean') { - return options.windows; - } + function propagateCloseEventToSources(streams) { + streams.forEach(stream => stream.emit('close')); + } +}); - return win32 === true || path__default['default'].sep === '\\'; - }; +var string = createCommonjsModule(function (module, exports) { - exports.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) return input; - if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; - }; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.isEmpty = exports.isString = void 0; - exports.removePrefix = (input, state = {}) => { - let output = input; + function isString(input) { + return typeof input === 'string'; + } - if (output.startsWith('./')) { - output = output.slice(2); - state.prefix = './'; - } + exports.isString = isString; - return output; - }; + function isEmpty(input) { + return input === ''; + } - exports.wrapOutput = (input, state = {}, options = {}) => { - const prepend = options.contains ? '' : '^'; - const append = options.contains ? '' : '$'; - let output = `${prepend}(?:${input})${append}`; + exports.isEmpty = isEmpty; +}); - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } +var utils$8 = createCommonjsModule(function (module, exports) { - return output; - }; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; + exports.array = array$1; + exports.errno = errno; + exports.fs = fs$1; + exports.path = path_1; + exports.pattern = pattern; + exports.stream = stream$4; + exports.string = string; }); -const { - CHAR_ASTERISK, - - /* * */ - CHAR_AT, - - /* @ */ - CHAR_BACKWARD_SLASH, - - /* \ */ - CHAR_COMMA: CHAR_COMMA$2, +var tasks = createCommonjsModule(function (module, exports) { - /* , */ - CHAR_DOT: CHAR_DOT$1, + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; - /* . */ - CHAR_EXCLAMATION_MARK, + function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter(pattern => utils$8.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter(pattern => utils$8.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, + /* dynamic */ + false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, + /* dynamic */ + true); + return staticTasks.concat(dynamicTasks); + } - /* ! */ - CHAR_FORWARD_SLASH, + exports.generate = generate; - /* / */ - CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, + function convertPatternsToTasks(positive, negative, dynamic) { + const positivePatternsGroup = groupPatternsByBaseDirectory(positive); // When we have a global group – there is no reason to divide the patterns into independent tasks. + // In this case, the global task covers the rest. - /* { */ - CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, + if ('.' in positivePatternsGroup) { + const task = convertPatternGroupToTask('.', positive, negative, dynamic); + return [task]; + } - /* ( */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, + return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic); + } - /* [ */ - CHAR_PLUS: CHAR_PLUS$1, + exports.convertPatternsToTasks = convertPatternsToTasks; - /* + */ - CHAR_QUESTION_MARK, + function getPositivePatterns(patterns) { + return utils$8.pattern.getPositivePatterns(patterns); + } - /* ? */ - CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, + exports.getPositivePatterns = getPositivePatterns; - /* } */ - CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, + function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils$8.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils$8.pattern.convertToPositivePattern); + return positive; + } - /* ) */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1 - /* ] */ + exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; -} = constants$3; + function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils$8.pattern.getBaseDirectory(pattern); -const isPathSeparator = code => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; -}; + if (base in collection) { + collection[base].push(pattern); + } else { + collection[base] = [pattern]; + } -const depth = token => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; + return collection; + }, group); } -}; -/** - * Quickly scans a glob pattern and returns an object with a handful of - * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), - * `glob` (the actual pattern), and `negated` (true if the path starts with `!`). - * - * ```js - * const pm = require('picomatch'); - * console.log(pm.scan('foo/bar/*.js')); - * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } - * ``` - * @param {String} `str` - * @param {Object} `options` - * @return {Object} Returns an object with tokens and regex source string. - * @api public - */ + exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; -const scan = (input, options) => { - const opts = options || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { - value: '', - depth: 0, - isGlob: false - }; + function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map(base => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); + } - const eos = () => index >= length; + exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; - const peek = () => str.charCodeAt(index + 1); + function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils$8.pattern.convertToNegativePattern)) + }; + } - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; + exports.convertPatternGroupToTask = convertPatternGroupToTask; +}); - while (index < length) { - code = advance(); - let next; +var async$4 = createCommonjsModule(function (module, exports) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.read = void 0; - if (code === CHAR_LEFT_CURLY_BRACE$1) { - braceEscaped = true; + function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; } - continue; - } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE$1) { - braces++; + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; + callSuccessCallback(callback, lstat); + return; } - if (code === CHAR_LEFT_CURLY_BRACE$1) { - braces++; - continue; + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; } - if (braceEscaped !== true && code === CHAR_DOT$1 && (code = advance()) === CHAR_DOT$1) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; + callSuccessCallback(callback, stat); + }); + }); + } - if (scanToEnd === true) { - continue; - } + exports.read = read; - break; - } + function callFailureCallback(callback, error) { + callback(error); + } - if (braceEscaped !== true && code === CHAR_COMMA$2) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; + function callSuccessCallback(callback, result) { + callback(null, result); + } +}); - if (scanToEnd === true) { - continue; - } +var sync$8 = createCommonjsModule(function (module, exports) { - break; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.read = void 0; - if (code === CHAR_RIGHT_CURLY_BRACE$1) { - braces--; + function read(path, settings) { + const lstat = settings.fs.lstatSync(path); - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + + try { + const stat = settings.fs.statSync(path); + + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; } - if (scanToEnd === true) { - continue; + return stat; + } catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; } - break; + throw error; } + } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { - value: '', - depth: 0, - isGlob: false - }; - if (finished === true) continue; + exports.read = read; +}); - if (prev === CHAR_DOT$1 && index === start + 1) { - start += 2; - continue; - } +var fs_1$1 = createCommonjsModule(function (module, exports) { - lastIndex = index + 1; - continue; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; + exports.FILE_SYSTEM_ADAPTER = { + lstat: fs__default['default'].lstat, + stat: fs__default['default'].stat, + lstatSync: fs__default['default'].lstatSync, + statSync: fs__default['default'].statSync + }; + + function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS$1 || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); + } - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES$1) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; + exports.createFileSystemAdapter = createFileSystemAdapter; +}); - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } +class Settings$2 { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs_1$1.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } - if (code === CHAR_RIGHT_PARENTHESES$1) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } - continue; - } +} - break; - } - } +var _default$l = Settings$2; +var settings$3 = /*#__PURE__*/Object.defineProperty({ + default: _default$l +}, '__esModule', { + value: true +}); - if (code === CHAR_ASTERISK) { - if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; +var out$3 = createCommonjsModule(function (module, exports) { - if (scanToEnd === true) { - continue; - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.statSync = exports.stat = exports.Settings = void 0; + exports.Settings = settings$3.default; - break; + function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async$4.read(path, getSettings(), optionsOrSettingsOrCallback); + return; } - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; - - if (scanToEnd === true) { - continue; - } - - break; - } + async$4.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } - if (code === CHAR_LEFT_SQUARE_BRACKET$1) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } + exports.stat = stat; - if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; + function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync$8.read(path, settings); + } - if (scanToEnd === true) { - continue; - } + exports.statSync = statSync; - break; - } - } + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings$3.default) { + return settingsOrOptions; } - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; - } + return new settings$3.default(settingsOrOptions); + } +}); - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES$1) { - isGlob = token.isGlob = true; +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let promise$1; +var queueMicrotask_1 = typeof queueMicrotask === 'function' ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) // reuse resolved promise, and allocate it lazily +: cb => (promise$1 || (promise$1 = Promise.resolve())).then(cb).catch(err => setTimeout(() => { + throw err; +}, 0)); - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES$1) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } +/*! run-parallel. MIT License. Feross Aboukhadijeh */ +var runParallel_1 = runParallel; - if (code === CHAR_RIGHT_PARENTHESES$1) { - finished = true; - break; - } - } +function runParallel(tasks, cb) { + let results, pending, keys; + let isSync = true; - continue; - } + if (Array.isArray(tasks)) { + results = []; + pending = tasks.length; + } else { + keys = Object.keys(tasks); + results = {}; + pending = keys.length; + } - break; + function done(err) { + function end() { + if (cb) cb(err, results); + cb = null; } - if (isGlob === true) { - finished = true; + if (isSync) queueMicrotask_1(end);else end(); + } - if (scanToEnd === true) { - continue; - } + function each(i, err, result) { + results[i] = result; - break; + if (--pending === 0 || err) { + done(err); } } - if (opts.noext === true) { - isExtglob = false; - isGlob = false; + if (!pending) { + // empty + done(null); + } else if (keys) { + // object + keys.forEach(function (key) { + tasks[key](function (err, result) { + each(key, err, result); + }); + }); + } else { + // array + tasks.forEach(function (task, i) { + task(function (err, result) { + each(i, err, result); + }); + }); } - let base = str; - let prefix = ''; - let glob = ''; + isSync = false; +} - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; - } +var constants = createCommonjsModule(function (module, exports) { - if (base && isGlob === true && lastIndex > 0) { - base = str.slice(0, lastIndex); - glob = str.slice(lastIndex); - } else if (isGlob === true) { - base = ''; - glob = str; - } else { - base = str; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; + const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); + + if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); } - if (base && base !== '' && base !== '/' && base !== str) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); + const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); + const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); + const SUPPORTED_MAJOR_VERSION = 10; + const SUPPORTED_MINOR_VERSION = 10; + const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; + const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; + /** + * IS `true` for Node.js 10.10 and greater. + */ + + exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; +}); + +var fs = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createDirentFromStats = void 0; + + class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); } + } - if (opts.unescape === true) { - if (glob) glob = utils$2.removeBackslashes(glob); + function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); + } - if (base && backslashes === true) { - base = utils$2.removeBackslashes(base); + exports.createDirentFromStats = createDirentFromStats; +}); + +var utils$7 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.fs = void 0; + exports.fs = fs; +}); + +var common$1 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.joinPathSegments = void 0; + + function joinPathSegments(a, b, separator) { + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; } + + return a + separator + b; } - const state = { - prefix, - input, - start, - base, - glob, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated - }; + exports.joinPathSegments = joinPathSegments; +}); - if (opts.tokens === true) { - state.maxDepth = 0; +var async$3 = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; - if (!isPathSeparator(code)) { - tokens.push(token); + function read(directory, settings, callback) { + if (!settings.stats && constants.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; } - state.tokens = tokens; + readdir(directory, settings, callback); } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; + exports.read = read; - for (let idx = 0; idx < slashes.length; idx++) { - const n = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value = input.slice(n, i); + function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { + withFileTypes: true + }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value; - } + const entries = dirents.map(dirent => ({ + dirent, + name: dirent.name, + path: common$1.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; } - if (idx !== 0 || value !== '') { - parts.push(value); - } + const tasks = entries.map(entry => makeRplTaskEntry(entry, settings)); + runParallel_1(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } - prevIndex = i; - } + callSuccessCallback(callback, rplEntries); + }); + }); + } - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); + exports.readdirWithFileTypes = readdirWithFileTypes; - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; + function makeRplTaskEntry(entry, settings) { + return done => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; } - } - state.slashes = slashes; - state.parts = parts; - } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } - return state; -}; + done(null, entry); + return; + } -var scan_1 = scan; + entry.dirent = utils$7.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; + } -/** - * Constants - */ + function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map(name => { + const path = common$1.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return done => { + out$3.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } -const { - MAX_LENGTH: MAX_LENGTH$3, - POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS -} = constants$3; -/** - * Helpers - */ + const entry = { + name, + path, + dirent: utils$7.fs.createDirentFromStats(name, stats) + }; -const expandRange = (args, options) => { - if (typeof options.expandRange === 'function') { - return options.expandRange(...args, options); - } + if (settings.stats) { + entry.stats = stats; + } - args.sort(); - const value = `[${args.join('-')}]`; + done(null, entry); + }); + }; + }); + runParallel_1(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } - try { - /* eslint-disable-next-line no-new */ - new RegExp(value); - } catch (ex) { - return args.map(v => utils$2.escapeRegex(v)).join('..'); + callSuccessCallback(callback, entries); + }); + }); } - return value; -}; -/** - * Create the message for a syntax error - */ - - -const syntaxError$1 = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; -}; -/** - * Parse the given input string. - * @param {String} input - * @param {Object} options - * @return {Object} - */ - + exports.readdir = readdir; -const parse$6 = (input, options) => { - if (typeof input !== 'string') { - throw new TypeError('Expected a string'); + function callFailureCallback(callback, error) { + callback(error); } - input = REPLACEMENTS[input] || input; - const opts = Object.assign({}, options); - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$3, opts.maxLength) : MAX_LENGTH$3; - let len = input.length; - - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + function callSuccessCallback(callback, result) { + callback(null, result); } +}); - const bos = { - type: 'bos', - value: '', - output: opts.prepend || '' - }; - const tokens = [bos]; - const capture = opts.capture ? '' : '?:'; - const win32 = utils$2.isWindows(options); // create constants based on platform, for windows or posix +var sync$7 = createCommonjsModule(function (module, exports) { - const PLATFORM_CHARS = constants$3.globChars(win32); - const EXTGLOB_CHARS = constants$3.extglobChars(PLATFORM_CHARS); - const { - DOT_LITERAL, - PLUS_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK, - QMARK_NO_DOT, - STAR, - START_ANCHOR - } = PLATFORM_CHARS; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; - const globstar = opts => { - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; + function read(directory, settings) { + if (!settings.stats && constants.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } - const nodot = opts.dot ? '' : NO_DOT; - const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; - let star = opts.bash === true ? globstar(opts) : STAR; + return readdir(directory, settings); + } - if (opts.capture) { - star = `(${star})`; - } // minimatch options support + exports.read = read; + + function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { + withFileTypes: true + }); + return dirents.map(dirent => { + const entry = { + dirent, + name: dirent.name, + path: common$1.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils$7.fs.createDirentFromStats(entry.name, stats); + } catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } - if (typeof opts.noext === 'boolean') { - opts.noextglob = opts.noext; + return entry; + }); } - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: '', - output: '', - prefix: '', - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - input = utils$2.removePrefix(input, state); - len = input.length; - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; - /** - * Tokenizing helpers - */ + exports.readdirWithFileTypes = readdirWithFileTypes; - const eos = () => state.index === len - 1; + function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map(name => { + const entryPath = common$1.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = out$3.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils$7.fs.createDirentFromStats(name, stats) + }; - const peek = state.peek = (n = 1) => input[state.index + n]; + if (settings.stats) { + entry.stats = stats; + } - const advance = state.advance = () => input[++state.index]; + return entry; + }); + } - const remaining = () => input.slice(state.index + 1); + exports.readdir = readdir; +}); - const consume = (value = '', num = 0) => { - state.consumed += value; - state.index += num; - }; +var fs_1 = createCommonjsModule(function (module, exports) { - const append = token => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; + exports.FILE_SYSTEM_ADAPTER = { + lstat: fs__default['default'].lstat, + stat: fs__default['default'].stat, + lstatSync: fs__default['default'].lstatSync, + statSync: fs__default['default'].statSync, + readdir: fs__default['default'].readdir, + readdirSync: fs__default['default'].readdirSync }; - const negate = () => { - let count = 1; - - while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { - advance(); - state.start++; - count++; - } - - if (count % 2 === 0) { - return false; + function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; } - state.negated = true; - state.start++; - return true; - }; + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); + } - const increment = type => { - state[type]++; - stack.push(type); - }; + exports.createFileSystemAdapter = createFileSystemAdapter; +}); - const decrement = type => { - state[type]--; - stack.pop(); - }; - /** - * Push tokens onto the tokens array. This helper speeds up - * tokenizing by 1) helping us avoid backtracking as much as possible, - * and 2) helping us avoid creating extra tokens when consecutive - * characters are plain text. This improves performance and simplifies - * lookbehinds. - */ +class Settings$1 { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs_1.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new out$3.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } - const push = tok => { - if (prev.type === 'globstar') { - const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); - const isExtglob = tok.extglob === true || extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'); +} - if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = 'star'; - prev.value = '*'; - prev.output = star; - state.output += prev.output; - } - } +var _default$k = Settings$1; +var settings$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$k +}, '__esModule', { + value: true +}); - if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) { - extglobs[extglobs.length - 1].inner += tok.value; - } +var out$2 = createCommonjsModule(function (module, exports) { - if (tok.value || tok.output) append(tok); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Settings = exports.scandirSync = exports.scandir = void 0; + exports.Settings = settings$2.default; - if (prev && prev.type === 'text' && tok.type === 'text') { - prev.value += tok.value; - prev.output = (prev.output || '') + tok.value; + function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async$3.read(path, getSettings(), optionsOrSettingsOrCallback); return; } - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; + async$3.read(path, getSettings(optionsOrSettingsOrCallback), callback); + } - const extglobOpen = (type, value) => { - const token = Object.assign({}, EXTGLOB_CHARS[value], { - conditions: 1, - inner: '' - }); - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? '(' : '') + token.open; - increment('parens'); - push({ - type, - value, - output: state.output ? '' : ONE_CHAR - }); - push({ - type: 'paren', - extglob: true, - value: advance(), - output - }); - extglobs.push(token); - }; + exports.scandir = scandir; - const extglobClose = token => { - let output = token.close + (opts.capture ? ')' : ''); + function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync$7.read(path, settings); + } - if (token.type === 'negate') { - let extglobStar = star; + exports.scandirSync = scandirSync; - if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { - extglobStar = globstar(opts); - } + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings$2.default) { + return settingsOrOptions; + } - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } + return new settings$2.default(settingsOrOptions); + } +}); - if (token.prev.type === 'bos' && eos()) { - state.negatedExtglob = true; - } +function reusify(Constructor) { + var head = new Constructor(); + var tail = head; + + function get() { + var current = head; + + if (current.next) { + head = current.next; + } else { + head = new Constructor(); + tail = head; } - push({ - type: 'paren', - extglob: true, - value, - output - }); - decrement('parens'); - }; - /** - * Fast paths - */ + current.next = null; + return current; + } + function release(obj) { + tail.next = obj; + tail = obj; + } - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { - if (first === '\\') { - backslashes = true; - return m; - } + return { + get: get, + release: release + }; +} - if (first === '?') { - if (esc) { - return esc + first + (rest ? QMARK.repeat(rest.length) : ''); - } +var reusify_1 = reusify; - if (index === 0) { - return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); - } +function fastqueue(context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker; + worker = context; + context = null; + } - return QMARK.repeat(chars.length); - } + if (concurrency < 1) { + throw new Error('fastqueue concurrency must be greater than 1'); + } - if (first === '.') { - return DOT_LITERAL.repeat(chars.length); - } + var cache = reusify_1(Task); + var queueHead = null; + var queueTail = null; + var _running = 0; + var errorHandler = null; + var self = { + push: push, + drain: noop, + saturated: noop, + pause: pause, + paused: false, + concurrency: concurrency, + running: running, + resume: resume, + idle: idle, + length: length, + getQueue: getQueue, + unshift: unshift, + empty: noop, + kill: kill, + killAndDrain: killAndDrain, + error: error + }; + return self; - if (first === '*') { - if (esc) { - return esc + first + (rest ? star : ''); - } + function running() { + return _running; + } - return star; - } + function pause() { + self.paused = true; + } - return esc ? m : `\\${m}`; - }); + function length() { + var current = queueHead; + var counter = 0; - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ''); - } else { - output = output.replace(/\\+/g, m => { - return m.length % 2 === 0 ? '\\\\' : m ? '\\' : ''; - }); - } + while (current) { + current = current.next; + counter++; } - if (output === input && opts.contains === true) { - state.output = input; - return state; + return counter; + } + + function getQueue() { + var current = queueHead; + var tasks = []; + + while (current) { + tasks.push(current.value); + current = current.next; } - state.output = utils$2.wrapOutput(output, state, options); - return state; + return tasks; } - /** - * Tokenize input until we reach end-of-string - */ - - while (!eos()) { - value = advance(); + function resume() { + if (!self.paused) return; + self.paused = false; - if (value === '\u0000') { - continue; + for (var i = 0; i < self.concurrency; i++) { + _running++; + release(); } - /** - * Escaped characters - */ + } + function idle() { + return _running === 0 && self.length() === 0; + } - if (value === '\\') { - const next = peek(); + function push(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + current.errorHandler = errorHandler; - if (next === '/' && opts.bash !== true) { - continue; + if (_running === self.concurrency || self.paused) { + if (queueTail) { + queueTail.next = current; + queueTail = current; + } else { + queueHead = current; + queueTail = current; + self.saturated(); } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } - if (next === '.' || next === ';') { - continue; + function unshift(value, done) { + var current = cache.get(); + current.context = context; + current.release = release; + current.value = value; + current.callback = done || noop; + + if (_running === self.concurrency || self.paused) { + if (queueHead) { + current.next = queueHead; + queueHead = current; + } else { + queueHead = current; + queueTail = current; + self.saturated(); } + } else { + _running++; + worker.call(context, current.value, current.worked); + } + } - if (!next) { - value += '\\'; - push({ - type: 'text', - value - }); - continue; - } // collapse slashes to reduce potential for exploits + function release(holder) { + if (holder) { + cache.release(holder); + } + var next = queueHead; - const match = /^\\+/.exec(remaining()); - let slashes = 0; + if (next) { + if (!self.paused) { + if (queueTail === queueHead) { + queueTail = null; + } - if (match && match[0].length > 2) { - slashes = match[0].length; - state.index += slashes; + queueHead = next.next; + next.next = null; + worker.call(context, next.value, next.worked); - if (slashes % 2 !== 0) { - value += '\\'; + if (queueTail === null) { + self.empty(); } - } - - if (opts.unescape === true) { - value = advance() || ''; } else { - value += advance() || ''; - } - - if (state.brackets === 0) { - push({ - type: 'text', - value - }); - continue; + _running--; } + } else if (--_running === 0) { + self.drain(); } - /** - * If we're inside a regex character class, continue - * until we reach the closing bracket. - */ + } + function kill() { + queueHead = null; + queueTail = null; + self.drain = noop; + } - if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { - if (opts.posix !== false && value === ':') { - const inner = prev.value.slice(1); + function killAndDrain() { + queueHead = null; + queueTail = null; + self.drain(); + self.drain = noop; + } - if (inner.includes('[')) { - prev.posix = true; + function error(handler) { + errorHandler = handler; + } +} - if (inner.includes(':')) { - const idx = prev.value.lastIndexOf('['); - const pre = prev.value.slice(0, idx); - const rest = prev.value.slice(idx + 2); - const posix = POSIX_REGEX_SOURCE$1[rest]; +function noop() {} - if (posix) { - prev.value = pre + posix; - state.backtrack = true; - advance(); +function Task() { + this.value = null; + this.callback = noop; + this.next = null; + this.release = noop; + this.context = null; + this.errorHandler = null; + var self = this; - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR; - } + this.worked = function worked(err, result) { + var callback = self.callback; + var errorHandler = self.errorHandler; + var val = self.value; + self.value = null; + self.callback = noop; - continue; - } - } - } - } + if (self.errorHandler) { + errorHandler(err, val); + } - if (value === '[' && peek() !== ':' || value === '-' && peek() === ']') { - value = `\\${value}`; - } + callback.call(self.context, err, result); + self.release(self); + }; +} - if (value === ']' && (prev.value === '[' || prev.value === '[^')) { - value = `\\${value}`; - } +function queueAsPromised(context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker; + worker = context; + context = null; + } - if (opts.posix === true && value === '!' && prev.value === '[') { - value = '^'; - } + function asyncWrapper(arg, cb) { + worker.call(this, arg).then(function (res) { + cb(null, res); + }, cb); + } - prev.value += value; - append({ - value + var queue = fastqueue(context, asyncWrapper, concurrency); + var pushCb = queue.push; + var unshiftCb = queue.unshift; + queue.push = push; + queue.unshift = unshift; + return queue; + + function push(value) { + return new Promise(function (resolve, reject) { + pushCb(value, function (err, result) { + if (err) { + reject(err); + return; + } + + resolve(result); }); - continue; - } - /** - * If we're inside a quoted string, continue - * until we reach the closing double quote. - */ + }); + } + function unshift(value) { + return new Promise(function (resolve, reject) { + unshiftCb(value, function (err, result) { + if (err) { + reject(err); + return; + } - if (state.quotes === 1 && value !== '"') { - value = utils$2.escapeRegex(value); - prev.value += value; - append({ - value + resolve(result); }); - continue; - } - /** - * Double quotes - */ + }); + } +} +var queue = fastqueue; +var promise = queueAsPromised; +queue.promise = promise; - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; +var common = createCommonjsModule(function (module, exports) { - if (opts.keepQuotes === true) { - push({ - type: 'text', - value - }); - } + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; - continue; + function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; } - /** - * Parentheses - */ + return !settings.errorFilter(error); + } - if (value === '(') { - increment('parens'); - push({ - type: 'paren', - value - }); - continue; - } + exports.isFatalError = isFatalError; - if (value === ')') { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError$1('opening', '(')); - } + function isAppliedFilter(filter, value) { + return filter === null || filter(value); + } - const extglob = extglobs[extglobs.length - 1]; + exports.isAppliedFilter = isAppliedFilter; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } + function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); + } - push({ - type: 'paren', - value, - output: state.parens ? ')' : '\\)' - }); - decrement('parens'); - continue; + exports.replacePathSegmentSeparator = replacePathSegmentSeparator; + + function joinPathSegments(a, b, separator) { + if (a === '') { + return b; } /** - * Square brackets + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). */ - if (value === '[') { - if (opts.nobracket === true || !remaining().includes(']')) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError$1('closing', ']')); - } - - value = `\\${value}`; - } else { - increment('brackets'); - } - - push({ - type: 'bracket', - value - }); - continue; + if (a.endsWith(separator)) { + return a + b; } - if (value === ']') { - if (opts.nobracket === true || prev && prev.type === 'bracket' && prev.value.length === 1) { - push({ - type: 'text', - value, - output: `\\${value}` - }); - continue; - } + return a + separator + b; + } - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError$1('opening', '[')); - } + exports.joinPathSegments = joinPathSegments; +}); - push({ - type: 'text', - value, - output: `\\${value}` - }); - continue; - } +class Reader$1 { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } - decrement('brackets'); - const prevValue = prev.value.slice(1); +} - if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { - value = `/${value}`; - } +var _default$j = Reader$1; +var reader$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$j +}, '__esModule', { + value: true +}); - prev.value += value; - append({ - value - }); // when literal brackets are explicitly disabled - // assume we should match with a regex character class +class AsyncReader extends reader$1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = out$2.scandir; + this._emitter = new events_1__default['default'].EventEmitter(); + this._queue = queue(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; - if (opts.literalBrackets === false || utils$2.hasRegexChars(prevValue)) { - continue; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit('end'); } + }; + } - const escaped = utils$2.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); // when literal brackets are explicitly enabled - // assume we should escape the brackets to match literal characters - - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } // when the user specifies nothing, try to match both - - - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } - /** - * Braces - */ + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } - if (value === '{' && opts.nobrace !== true) { - increment('braces'); - const open = { - type: 'brace', - value, - output: '(', - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; - braces.push(open); - push(open); - continue; + destroy() { + if (this._isDestroyed) { + throw new Error('The reader is already destroyed'); } - if (value === '}') { - const brace = braces[braces.length - 1]; - - if (opts.nobrace === true || !brace) { - push({ - type: 'text', - value, - output: value - }); - continue; - } + this._isDestroyed = true; - let output = ')'; + this._queue.killAndDrain(); + } - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; + onEntry(callback) { + this._emitter.on('entry', callback); + } - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); + onError(callback) { + this._emitter.once('error', callback); + } - if (arr[i].type === 'brace') { - break; - } + onEnd(callback) { + this._emitter.once('end', callback); + } - if (arr[i].type !== 'dots') { - range.unshift(arr[i].value); - } - } + _pushToQueue(directory, base) { + const queueItem = { + directory, + base + }; - output = expandRange(range, opts); - state.backtrack = true; + this._queue.push(queueItem, error => { + if (error !== null) { + this._handleError(error); } + }); + } - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = '\\{'; - value = output = '\\}'; - state.output = out; - - for (const t of toks) { - state.output += t.output || t.value; - } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, undefined); + return; } - push({ - type: 'brace', - value, - output - }); - decrement('braces'); - braces.pop(); - continue; - } - /** - * Pipes - */ - - - if (value === '|') { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; + for (const entry of entries) { + this._handleEntry(entry, item.base); } - push({ - type: 'text', - value - }); - continue; - } - /** - * Commas - */ + done(null, undefined); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } - if (value === ',') { - let output = value; - const brace = braces[braces.length - 1]; + this._isFatalError = true; + this._isDestroyed = true; - if (brace && stack[stack.length - 1] === 'braces') { - brace.comma = true; - output = '|'; - } + this._emitter.emit('error', error); + } - push({ - type: 'comma', - value, - output - }); - continue; + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; } - /** - * Slashes - */ - - if (value === '/') { - // if the beginning of the glob is "./", advance the start - // to the current index, and don't add the "./" characters - // to the state. This greatly simplifies lookbehinds when - // checking for BOS characters like "!" and "." (not "./") - if (prev.type === 'dot' && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ''; - state.output = ''; - tokens.pop(); - prev = bos; // reset "prev" to the first token + const fullpath = entry.path; - continue; - } + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } - push({ - type: 'slash', - value, - output: SLASH_LITERAL - }); - continue; + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); } - /** - * Dots - */ + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, entry.path); + } + } - if (value === '.') { - if (state.braces > 0 && prev.type === 'dot') { - if (prev.value === '.') prev.output = DOT_LITERAL; - const brace = braces[braces.length - 1]; - prev.type = 'dots'; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } + _emitEntry(entry) { + this._emitter.emit('entry', entry); + } - if (state.braces + state.parens === 0 && prev.type !== 'bos' && prev.type !== 'slash') { - push({ - type: 'text', - value, - output: DOT_LITERAL - }); - continue; - } +} - push({ - type: 'dot', - value, - output: DOT_LITERAL - }); - continue; - } - /** - * Question marks - */ +var _default$i = AsyncReader; +var async$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$i +}, '__esModule', { + value: true +}); +class AsyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async$2.default(this._root, this._settings); + this._storage = new Set(); + } - if (value === '?') { - const isGroup = prev && prev.value === '('; + read(callback) { + this._reader.onError(error => { + callFailureCallback(callback, error); + }); - if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('qmark', value); - continue; - } + this._reader.onEntry(entry => { + this._storage.add(entry); + }); - if (prev && prev.type === 'paren') { - const next = peek(); - let output = value; + this._reader.onEnd(() => { + callSuccessCallback(callback, [...this._storage]); + }); - if (next === '<' && !utils$2.supportsLookbehinds()) { - throw new Error('Node.js v10 or higher is required for regex lookbehinds'); - } + this._reader.read(); + } - if (prev.value === '(' && !/[!=<:]/.test(next) || next === '<' && !/<([!=]|\w+>)/.test(remaining())) { - output = `\\${value}`; - } +} - push({ - type: 'text', - value, - output - }); - continue; - } +var _default$h = AsyncProvider; - if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { - push({ - type: 'qmark', - value, - output: QMARK_NO_DOT - }); - continue; - } +function callFailureCallback(callback, error) { + callback(error); +} - push({ - type: 'qmark', - value, - output: QMARK - }); - continue; - } - /** - * Exclamation - */ +function callSuccessCallback(callback, entries) { + callback(null, entries); +} +var async$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$h +}, '__esModule', { + value: true +}); - if (value === '!') { - if (opts.noextglob !== true && peek() === '(') { - if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { - extglobOpen('negate', value); - continue; +class StreamProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async$2.default(this._root, this._settings); + this._stream = new stream_1__default['default'].Readable({ + objectMode: true, + read: () => {}, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); } } + }); + } - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } - } - /** - * Plus - */ + read() { + this._reader.onError(error => { + this._stream.emit('error', error); + }); + this._reader.onEntry(entry => { + this._stream.push(entry); + }); - if (value === '+') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - extglobOpen('plus', value); - continue; - } + this._reader.onEnd(() => { + this._stream.push(null); + }); - if (prev && prev.value === '(' || opts.regex === false) { - push({ - type: 'plus', - value, - output: PLUS_LITERAL - }); - continue; - } + this._reader.read(); - if (prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace') || state.parens > 0) { - push({ - type: 'plus', - value - }); - continue; - } + return this._stream; + } - push({ - type: 'plus', - value: PLUS_LITERAL - }); - continue; - } - /** - * Plain text - */ +} +var _default$g = StreamProvider; +var stream$3 = /*#__PURE__*/Object.defineProperty({ + default: _default$g +}, '__esModule', { + value: true +}); - if (value === '@') { - if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { - push({ - type: 'at', - extglob: true, - value, - output: '' - }); - continue; - } +class SyncReader extends reader$1.default { + constructor() { + super(...arguments); + this._scandir = out$2.scandirSync; + this._storage = new Set(); + this._queue = new Set(); + } - push({ - type: 'text', - value - }); - continue; - } - /** - * Plain text - */ + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); - if (value !== '*') { - if (value === '$' || value === '^') { - value = `\\${value}`; - } + return [...this._storage]; + } - const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + _pushToQueue(directory, base) { + this._queue.add({ + directory, + base + }); + } - if (match) { - value += match[0]; - state.index += match[0].length; + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + + for (const entry of entries) { + this._handleEntry(entry, base); } + } catch (error) { + this._handleError(error); + } + } - push({ - type: 'text', - value - }); - continue; + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; } - /** - * Stars - */ + throw error; + } - if (prev && (prev.type === 'globstar' || prev.star === true)) { - prev.type = 'star'; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; + _handleEntry(entry, base) { + const fullpath = entry.path; + + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); } - let rest = remaining(); + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen('star', value); - continue; + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, entry.path); } + } - if (prev.type === 'star') { - if (opts.noglobstar === true) { - consume(value); - continue; - } + _pushToStorage(entry) { + this._storage.add(entry); + } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === 'slash' || prior.type === 'bos'; - const afterStar = before && (before.type === 'star' || before.type === 'globstar'); +} - if (opts.bash === true && (!isStart || rest[0] && rest[0] !== '/')) { - push({ - type: 'star', - value, - output: '' - }); - continue; - } +var _default$f = SyncReader; +var sync$6 = /*#__PURE__*/Object.defineProperty({ + default: _default$f +}, '__esModule', { + value: true +}); - const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); - const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); +class SyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync$6.default(this._root, this._settings); + } - if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { - push({ - type: 'star', - value, - output: '' - }); - continue; - } // strip consecutive `/**/` + read() { + return this._reader.read(); + } +} - while (rest.slice(0, 3) === '/**') { - const after = input[state.index + 4]; +var _default$e = SyncProvider; +var sync$5 = /*#__PURE__*/Object.defineProperty({ + default: _default$e +}, '__esModule', { + value: true +}); - if (after && after !== '/') { - break; - } +class Settings { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, undefined); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); + this.fsScandirSettings = new out$2.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } - rest = rest.slice(3); - consume('/**', 3); - } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } - if (prior.type === 'bos' && eos()) { - prev.type = 'globstar'; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); - continue; - } +} - if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = 'globstar'; - prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } +var _default$d = Settings; +var settings$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$d +}, '__esModule', { + value: true +}); - if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { - const end = rest[1] !== void 0 ? '|$' : ''; - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = 'globstar'; - prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; - prev.value += value; - state.output += prior.output + prev.output; - state.globstar = true; - consume(value + advance()); - push({ - type: 'slash', - value: '/', - output: '' - }); - continue; - } +var out$1 = createCommonjsModule(function (module, exports) { - if (prior.type === 'bos' && rest[0] === '/') { - prev.type = 'globstar'; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ - type: 'slash', - value: '/', - output: '' - }); - continue; - } // remove single star from output + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; + exports.Settings = settings$1.default; + function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + new async$1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } - state.output = state.output.slice(0, -prev.output.length); // reset previous token to globstar + new async$1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); + } - prev.type = 'globstar'; - prev.output = globstar(opts); - prev.value += value; // reset output with globstar + exports.walk = walk; - state.output += prev.output; - state.globstar = true; - consume(value); - continue; - } + function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync$5.default(directory, settings); + return provider.read(); + } - const token = { - type: 'star', - value, - output: star - }; + exports.walkSync = walkSync; - if (opts.bash === true) { - token.output = '.*?'; + function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream$3.default(directory, settings); + return provider.read(); + } - if (prev.type === 'bos' || prev.type === 'slash') { - token.output = nodot + token.output; - } + exports.walkStream = walkStream; - push(token); - continue; + function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings$1.default) { + return settingsOrOptions; } - if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { - token.output = value; - push(token); - continue; - } + return new settings$1.default(settingsOrOptions); + } +}); - if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { - if (prev.type === 'dot') { - state.output += NO_DOT_SLASH; - prev.output += NO_DOT_SLASH; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH; - prev.output += NO_DOTS_SLASH; - } else { - state.output += nodot; - prev.output += nodot; - } +class Reader { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new out$3.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } - if (peek() !== '*') { - state.output += ONE_CHAR; - prev.output += ONE_CHAR; - } + _getFullEntryPath(filepath) { + return path__default['default'].resolve(this._settings.cwd, filepath); + } + + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils$8.fs.createDirentFromStats(pattern, stats) + }; + + if (this._settings.stats) { + entry.stats = stats; } - push(token); + return entry; } - while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ']')); - state.output = utils$2.escapeLast(state.output, '['); - decrement('brackets'); + _isFatalError(error) { + return !utils$8.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; } - while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', ')')); - state.output = utils$2.escapeLast(state.output, '('); - decrement('parens'); +} + +var _default$c = Reader; +var reader = /*#__PURE__*/Object.defineProperty({ + default: _default$c +}, '__esModule', { + value: true +}); + +class ReaderStream extends reader.default { + constructor() { + super(...arguments); + this._walkStream = out$1.walkStream; + this._stat = out$3.stat; } - while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError$1('closing', '}')); - state.output = utils$2.escapeLast(state.output, '{'); - decrement('braces'); + dynamic(root, options) { + return this._walkStream(root, options); } - if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { - push({ - type: 'maybe_slash', - value: '', - output: `${SLASH_LITERAL}?` + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1__default['default'].PassThrough({ + objectMode: true }); - } // rebuild the output if we had to backtrack at any point + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options).then(entry => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } - if (state.backtrack === true) { - state.output = ''; + if (index === filepaths.length - 1) { + stream.end(); + } - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; + done(); + }).catch(done); + }; - if (token.suffix) { - state.output += token.suffix; - } + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); } + + return stream; } - return state; -}; -/** - * Fast paths for creating regular expressions for common glob patterns. - * This can significantly speed up processing and has very little downside - * impact when none of the fast paths match. - */ + _getEntry(filepath, pattern, options) { + return this._getStat(filepath).then(stats => this._makeEntry(stats, pattern)).catch(error => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } -parse$6.fastpaths = (input, options) => { - const opts = Object.assign({}, options); - const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH$3, opts.maxLength) : MAX_LENGTH$3; - const len = input.length; + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); +} + +var _default$b = ReaderStream; +var stream$2 = /*#__PURE__*/Object.defineProperty({ + default: _default$b +}, '__esModule', { + value: true +}); + +class Matcher { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + + this._fillStorage(); } - input = REPLACEMENTS[input] || input; - const win32 = utils$2.isWindows(options); // create constants based on platform, for windows or posix + _fillStorage() { + /** + * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). + * So, before expand patterns with brace expansion into separated patterns. + */ + const patterns = utils$8.pattern.expandPatternsWithBraceExpansion(this._patterns); - const { - DOT_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOTS_SLASH, - STAR, - START_ANCHOR - } = constants$3.globChars(win32); - const nodot = opts.dot ? NO_DOTS : NO_DOT; - const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; - const capture = opts.capture ? '' : '?:'; - const state = { - negated: false, - prefix: '' - }; - let star = opts.bash === true ? '.*?' : STAR; + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); - if (opts.capture) { - star = `(${star})`; + const sections = this._splitSegmentsIntoSections(segments); + + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } } - const globstar = opts => { - if (opts.noglobstar === true) return star; - return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; - }; + _getPatternSegments(pattern) { + const parts = utils$8.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map(part => { + const dynamic = utils$8.pattern.isDynamicPattern(part, this._settings); - const create = str => { - switch (str) { - case '*': - return `${nodot}${ONE_CHAR}${star}`; + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } - case '.*': - return `${DOT_LITERAL}${ONE_CHAR}${star}`; + return { + dynamic: true, + pattern: part, + patternRe: utils$8.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } - case '*.*': - return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + _splitSegmentsIntoSections(segments) { + return utils$8.array.splitWhen(segments, segment => segment.dynamic && utils$8.pattern.hasGlobStar(segment.pattern)); + } - case '*/*': - return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; +} - case '**': - return nodot + globstar(opts); +var _default$a = Matcher; +var matcher = /*#__PURE__*/Object.defineProperty({ + default: _default$a +}, '__esModule', { + value: true +}); - case '**/*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; +class PartialMatcher extends matcher.default { + match(filepath) { + const parts = filepath.split('/'); + const levels = parts.length; - case '**/*.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + const patterns = this._storage.filter(info => !info.complete || info.segments.length > levels); - case '**/.*': - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + for (const pattern of patterns) { + const section = pattern.sections[0]; + /** + * In this case, the pattern has a globstar and we must read all directories unconditionally, + * but only if the level has reached the end of the first group. + * + * fixtures/{a,b}/** + * ^ true/false ^ always true + */ + + if (!pattern.complete && levels > section.length) { + return true; + } - default: - { - const match = /^(.*?)\.(\w+)$/.exec(str); - if (!match) return; - const source = create(match[1]); - if (!source) return; - return source + DOT_LITERAL + match[2]; + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + + if (!segment.dynamic && segment.pattern === part) { + return true; } + + return false; + }); + + if (match) { + return true; + } } - }; - const output = utils$2.removePrefix(input, state); - let source = create(output); + return false; + } - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL}?`; +} + +var _default$9 = PartialMatcher; +var partial = /*#__PURE__*/Object.defineProperty({ + default: _default$9 +}, '__esModule', { + value: true +}); + +class DeepFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; } - return source; -}; + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); -var parse_1$1 = parse$6; + const negativeRe = this._getNegativePatternsRe(negative); -const isObject$2 = val => val && typeof val === 'object' && !Array.isArray(val); -/** - * Creates a matcher function from one or more glob patterns. The - * returned function takes a string to match as its first argument, - * and returns true if the string is a match. The returned matcher - * function also takes a boolean as the second argument that, when true, - * returns an object with additional information. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch(glob[, options]); - * - * const isMatch = picomatch('*.!(*a)'); - * console.log(isMatch('a.a')); //=> false - * console.log(isMatch('a.b')); //=> true - * ``` - * @name picomatch - * @param {String|Array} `globs` One or more glob patterns. - * @param {Object=} `options` - * @return {Function=} Returns a matcher function. - * @api public - */ + return entry => this._filter(basePath, entry, matcher, negativeRe); + } + + _getMatcher(patterns) { + return new partial.default(patterns, this._settings, this._micromatchOptions); + } + + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils$8.pattern.isAffectDepthOfReadingPattern); + return utils$8.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } -const picomatch = (glob, options, returnState = false) => { - if (Array.isArray(glob)) { - const fns = glob.map(input => picomatch(input, options, returnState)); + const filepath = utils$8.path.removeLeadingDotSegment(entry.path); - const arrayMatcher = str => { - for (const isMatch of fns) { - const state = isMatch(str); - if (state) return state; - } + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + /** + * Avoid unnecessary depth calculations when it doesn't matter. + */ + if (this._settings.deep === Infinity) { return false; - }; + } - return arrayMatcher; + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; } - const isState = isObject$2(glob) && glob.tokens && glob.input; + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split('/').length; - if (glob === '' || typeof glob !== 'string' && !isState) { - throw new TypeError('Expected pattern to be a non-empty string'); + if (basePath === '') { + return entryPathDepth; + } + + const basePathDepth = basePath.split('/').length; + return entryPathDepth - basePathDepth; } - const opts = options || {}; - const posix = utils$2.isWindows(options); - const regex = isState ? picomatch.compileRe(glob, options) : picomatch.makeRe(glob, options, false, true); - const state = regex.state; - delete regex.state; + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } - let isIgnored = () => false; + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } - if (opts.ignore) { - const ignoreOpts = Object.assign({}, options, { - ignore: null, - onMatch: null, - onResult: null - }); - isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils$8.pattern.matchAny(entryPath, patternsRe); } - const matcher = (input, returnObject = false) => { - const { - isMatch, - match, - output - } = picomatch.test(input, regex, options, { - glob, - posix - }); - const result = { - glob, - state, - regex, - posix, - input, - output, - match, - isMatch - }; +} - if (typeof opts.onResult === 'function') { - opts.onResult(result); - } +var _default$8 = DeepFilter; +var deep = /*#__PURE__*/Object.defineProperty({ + default: _default$8 +}, '__esModule', { + value: true +}); - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; - } +class EntryFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = new Map(); + } - if (isIgnored(input)) { - if (typeof opts.onIgnore === 'function') { - opts.onIgnore(result); - } + getFilter(positive, negative) { + const positiveRe = utils$8.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils$8.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return entry => this._filter(entry, positiveRe, negativeRe); + } - result.isMatch = false; - return returnObject ? result : false; + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; } - if (typeof opts.onMatch === 'function') { - opts.onMatch(result); + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; } - return returnObject ? result : true; - }; + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } - if (returnState) { - matcher.state = state; - } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); - return matcher; -}; -/** - * Test `input` with the given `regex`. This is used by the main - * `picomatch()` function to test the input string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.test(input, regex[, options]); - * - * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); - * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } - * ``` - * @param {String} `input` String to test. - * @param {RegExp} `regex` - * @return {Object} Returns an object with matching info. - * @api public - */ + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); + } + return isMatched; + } -picomatch.test = (input, regex, options, { - glob, - posix -} = {}) => { - if (typeof input !== 'string') { - throw new TypeError('Expected input to be a string'); + _isDuplicateEntry(entry) { + return this.index.has(entry.path); } - if (input === '') { - return { - isMatch: false, - output: '' - }; + _createIndexRecord(entry) { + this.index.set(entry.path, undefined); } - const opts = options || {}; - const format = opts.format || (posix ? utils$2.toPosixSlashes : null); - let match = input === glob; - let output = match && format ? format(input) : input; + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } - if (match === false) { - output = format ? format(input) : input; - match = output === glob; + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); } - if (match === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match = picomatch.matchBase(input, regex, options, posix); - } else { - match = regex.exec(output); + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; } + + const fullpath = utils$8.path.makeAbsolute(this._settings.cwd, entryPath); + return utils$8.pattern.matchAny(fullpath, patternsRe); } - return { - isMatch: Boolean(match), - match, - output - }; -}; -/** - * Match the basename of a filepath. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.matchBase(input, glob[, options]); - * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true - * ``` - * @param {String} `input` String to test. - * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). - * @return {Boolean} - * @api public - */ + _isMatchToPatterns(entryPath, patternsRe) { + const filepath = utils$8.path.removeLeadingDotSegment(entryPath); + return utils$8.pattern.matchAny(filepath, patternsRe); + } +} -picomatch.matchBase = (input, glob, options, posix = utils$2.isWindows(options)) => { - const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); - return regex.test(path__default['default'].basename(input)); -}; -/** - * Returns true if **any** of the given glob `patterns` match the specified `string`. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.isMatch(string, patterns[, options]); - * - * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true - * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false - * ``` - * @param {String|Array} str The string to test. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} [options] See available [options](#options). - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ +var _default$7 = EntryFilter; +var entry$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$7 +}, '__esModule', { + value: true +}); +class ErrorFilter { + constructor(_settings) { + this._settings = _settings; + } -picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); -/** - * Parse a glob pattern to create the source string for a regular - * expression. - * - * ```js - * const picomatch = require('picomatch'); - * const result = picomatch.parse(pattern[, options]); - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} Returns an object with useful properties and output to be used as a regex source string. - * @api public - */ + getFilter() { + return error => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils$8.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } -picomatch.parse = (pattern, options) => { - if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); - return parse_1$1(pattern, Object.assign({}, options, { - fastpaths: false - })); -}; -/** - * Scan a glob pattern to separate the pattern into segments. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.scan(input[, options]); - * - * const result = picomatch.scan('!./foo/*.js'); - * console.log(result); - * { prefix: '!./', - * input: '!./foo/*.js', - * start: 3, - * base: 'foo', - * glob: '*.js', - * isBrace: false, - * isBracket: false, - * isGlob: true, - * isExtglob: false, - * isGlobstar: false, - * negated: true } - * ``` - * @param {String} `input` Glob pattern to scan. - * @param {Object} `options` - * @return {Object} Returns an object with - * @api public - */ +} +var _default$6 = ErrorFilter; +var error$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$6 +}, '__esModule', { + value: true +}); -picomatch.scan = (input, options) => scan_1(input, options); -/** - * Create a regular expression from a parsed glob pattern. - * - * ```js - * const picomatch = require('picomatch'); - * const state = picomatch.parse('*.js'); - * // picomatch.compileRe(state[, options]); - * - * console.log(picomatch.compileRe(state)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `state` The object returned from the `.parse` method. - * @param {Object} `options` - * @return {RegExp} Returns a regex created from the given pattern. - * @api public - */ +class EntryTransformer { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return entry => this._transform(entry); + } -picomatch.compileRe = (parsed, options, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return parsed.output; + _transform(entry) { + let filepath = entry.path; + + if (this._settings.absolute) { + filepath = utils$8.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils$8.path.unixify(filepath); + } + + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += '/'; + } + + if (!this._settings.objectMode) { + return filepath; + } + + return Object.assign(Object.assign({}, entry), { + path: filepath + }); } - const opts = options || {}; - const prepend = opts.contains ? '' : '^'; - const append = opts.contains ? '' : '$'; - let source = `${prepend}(?:${parsed.output})${append}`; +} - if (parsed && parsed.negated === true) { - source = `^(?!${source}).*$`; +var _default$5 = EntryTransformer; +var entry = /*#__PURE__*/Object.defineProperty({ + default: _default$5 +}, '__esModule', { + value: true +}); + +class Provider { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error$1.default(this._settings); + this.entryFilter = new entry$1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry.default(this._settings); } - const regex = picomatch.toRegex(source, options); + _getRootDirectory(task) { + return path__default['default'].resolve(this._settings.cwd, task.base); + } - if (returnState === true) { - regex.state = parsed; + _getReaderOptions(task) { + const basePath = task.base === '.' ? '' : task.base; + return { + basePath, + pathSegmentSeparator: '/', + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.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() + }; } - return regex; -}; + _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: true, + strictSlashes: false + }; + } -picomatch.makeRe = (input, options, returnOutput = false, returnState = false) => { - if (!input || typeof input !== 'string') { - throw new TypeError('Expected a non-empty string'); +} + +var _default$4 = Provider; +var provider = /*#__PURE__*/Object.defineProperty({ + default: _default$4 +}, '__esModule', { + value: true +}); + +class ProviderAsync extends provider.default { + constructor() { + super(...arguments); + this._reader = new stream$2.default(this._settings); } - const opts = options || {}; - let parsed = { - negated: false, - fastpaths: true - }; - let prefix = ''; - let output; + read(task) { + const root = this._getRootDirectory(task); + + const options = this._getReaderOptions(task); - if (input.startsWith('./')) { - input = input.slice(2); - prefix = parsed.prefix = './'; + const entries = []; + return new Promise((resolve, reject) => { + const stream = this.api(root, task, options); + stream.once('error', reject); + stream.on('data', entry => entries.push(options.transform(entry))); + stream.once('end', () => resolve(entries)); + }); } - if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { - output = parse_1$1.fastpaths(input, options); + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + + return this._reader.static(task.patterns, options); } - if (output === undefined) { - parsed = parse_1$1(input, options); - parsed.prefix = prefix + (parsed.prefix || ''); - } else { - parsed.output = output; +} + +var _default$3 = ProviderAsync; +var async = /*#__PURE__*/Object.defineProperty({ + default: _default$3 +}, '__esModule', { + value: true +}); + +class ProviderStream extends provider.default { + constructor() { + super(...arguments); + this._reader = new stream$2.default(this._settings); } - return picomatch.compileRe(parsed, options, returnOutput, returnState); -}; -/** - * Create a regular expression from the given regex source string. - * - * ```js - * const picomatch = require('picomatch'); - * // picomatch.toRegex(source[, options]); - * - * const { output } = picomatch.parse('*.js'); - * console.log(picomatch.toRegex(output)); - * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ - * ``` - * @param {String} `source` Regular expression source string. - * @param {Object} `options` - * @return {RegExp} - * @api public - */ + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); -picomatch.toRegex = (source, options) => { - try { - const opts = options || {}; - return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); - } catch (err) { - if (options && options.debug === true) throw err; - return /$^/; + const source = this.api(root, task, options); + const destination = new stream_1__default['default'].Readable({ + objectMode: true, + read: () => {} + }); + source.once('error', error => destination.emit('error', error)).on('data', entry => destination.emit('data', options.transform(entry))).once('end', () => destination.emit('end')); + destination.once('close', () => source.destroy()); + return destination; } -}; -/** - * Picomatch constants. - * @return {Object} - */ + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } -picomatch.constants = constants$3; -/** - * Expose "picomatch" - */ + return this._reader.static(task.patterns, options); + } -var picomatch_1 = picomatch; +} -var picomatch$1 = picomatch_1; +var _default$2 = ProviderStream; +var stream$1 = /*#__PURE__*/Object.defineProperty({ + default: _default$2 +}, '__esModule', { + value: true +}); -const isEmptyString = val => typeof val === 'string' && (val === '' || val === './'); -/** - * Returns an array of strings that match one or more glob patterns. - * - * ```js - * const mm = require('micromatch'); - * // mm(list, patterns[, options]); - * - * console.log(mm(['a.js', 'a.txt'], ['*.js'])); - * //=> [ 'a.js' ] - * ``` - * @param {String|Array} list List of strings to match. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} options See available [options](#options) - * @return {Array} Returns an array of matches - * @summary false - * @api public - */ +class ReaderSync extends reader.default { + constructor() { + super(...arguments); + this._walkSync = out$1.walkSync; + this._statSync = out$3.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } -const micromatch = (list, patterns, options) => { - patterns = [].concat(patterns); - list = [].concat(list); - let omit = new Set(); - let keep = new Set(); - let items = new Set(); - let negatives = 0; + static(patterns, options) { + const entries = []; - let onResult = state => { - items.add(state.output); + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); - if (options && options.onResult) { - options.onResult(state); + const entry = this._getEntry(filepath, pattern, options); + + if (entry === null || !options.entryFilter(entry)) { + continue; + } + + entries.push(entry); } - }; - for (let i = 0; i < patterns.length; i++) { - let isMatch = picomatch$1(String(patterns[i]), Object.assign({}, options, { - onResult - }), true); - let negated = isMatch.state.negated || isMatch.state.negatedExtglob; - if (negated) negatives++; + return entries; + } - for (let item of list) { - let matched = isMatch(item, true); - let match = negated ? !matched.isMatch : matched.isMatch; - if (!match) continue; + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); - if (negated) { - omit.add(matched.output); - } else { - omit.delete(matched.output); - keep.add(matched.output); + return this._makeEntry(stats, pattern); + } catch (error) { + if (options.errorFilter(error)) { + return null; } + + throw error; } } - let result = negatives === patterns.length ? [...items] : [...keep]; - let matches = result.filter(item => !omit.has(item)); + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } - if (options && matches.length === 0) { - if (options.failglob === true) { - throw new Error(`No matches found for "${patterns.join(', ')}"`); - } +} - if (options.nonull === true || options.nullglob === true) { - return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; - } +var _default$1 = ReaderSync; +var sync$4 = /*#__PURE__*/Object.defineProperty({ + default: _default$1 +}, '__esModule', { + value: true +}); + +class ProviderSync extends provider.default { + constructor() { + super(...arguments); + this._reader = new sync$4.default(this._settings); } - return matches; -}; -/** - * Backwards compatibility - */ + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); -micromatch.match = micromatch; -/** - * Returns a matcher function from the given glob `pattern` and `options`. - * The returned function takes a string to match as its only argument and returns - * true if the string is a match. - * - * ```js - * const mm = require('micromatch'); - * // mm.matcher(pattern[, options]); - * - * const isMatch = mm.matcher('*.!(*a)'); - * console.log(isMatch('a.a')); //=> false - * console.log(isMatch('a.b')); //=> true - * ``` - * @param {String} `pattern` Glob pattern - * @param {Object} `options` - * @return {Function} Returns a matcher function. - * @api public - */ + const entries = this.api(root, task, options); + return entries.map(options.transform); + } -micromatch.matcher = (pattern, options) => picomatch$1(pattern, options); -/** - * Returns true if **any** of the given glob `patterns` match the specified `string`. - * - * ```js - * const mm = require('micromatch'); - * // mm.isMatch(string, patterns[, options]); - * - * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true - * console.log(mm.isMatch('a.a', 'b.*')); //=> false - * ``` - * @param {String} str The string to test. - * @param {String|Array} patterns One or more glob patterns to use for matching. - * @param {Object} [options] See available [options](#options). - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } -micromatch.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str); -/** - * Backwards compatibility - */ +} +var _default = ProviderSync; +var sync$3 = /*#__PURE__*/Object.defineProperty({ + default: _default +}, '__esModule', { + value: true +}); -micromatch.any = micromatch.isMatch; -/** - * Returns a list of strings that _**do not match any**_ of the given `patterns`. - * - * ```js - * const mm = require('micromatch'); - * // mm.not(list, patterns[, options]); - * - * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); - * //=> ['b.b', 'c.c'] - * ``` - * @param {Array} `list` Array of strings to match. - * @param {String|Array} `patterns` One or more glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Array} Returns an array of strings that **do not match** the given patterns. - * @api public - */ +var settings = createCommonjsModule(function (module, exports) { -micromatch.not = (list, patterns, options = {}) => { - patterns = [].concat(patterns).map(String); - let result = new Set(); - let items = []; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; + /** + * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. + * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 + */ - let onResult = state => { - if (options.onResult) options.onResult(state); - items.push(state.output); + const CPU_COUNT = Math.max(os__default['default'].cpus().length, 1); + exports.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs__default['default'].lstat, + lstatSync: fs__default['default'].lstatSync, + stat: fs__default['default'].stat, + statSync: fs__default['default'].statSync, + readdir: fs__default['default'].readdir, + readdirSync: fs__default['default'].readdirSync }; - let matches = micromatch(list, patterns, Object.assign({}, options, { - onResult - })); + class Settings { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + + if (this.onlyDirectories) { + this.onlyFiles = false; + } + + if (this.stats) { + this.objectMode = true; + } + } + + _getValue(option, value) { + return option === undefined ? value : option; + } + + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } + + } + + exports.default = Settings; +}); + +async function FastGlob(source, options) { + assertPatternsInput$1(source); + const works = getWorks(source, async.default, options); + const result = await Promise.all(works); + return utils$8.array.flatten(result); +} // https://github.com/typescript-eslint/typescript-eslint/issues/60 +// eslint-disable-next-line no-redeclare + - for (let item of items) { - if (!matches.includes(item)) { - result.add(item); - } +(function (FastGlob) { + function sync(source, options) { + assertPatternsInput$1(source); + const works = getWorks(source, sync$3.default, options); + return utils$8.array.flatten(works); } - return [...result]; -}; -/** - * Returns true if the given `string` contains the given pattern. Similar - * to [.isMatch](#isMatch) but the pattern can match any part of the string. - * - * ```js - * var mm = require('micromatch'); - * // mm.contains(string, pattern[, options]); - * - * console.log(mm.contains('aa/bb/cc', '*b')); - * //=> true - * console.log(mm.contains('aa/bb/cc', '*d')); - * //=> false - * ``` - * @param {String} `str` The string to match. - * @param {String|Array} `patterns` Glob pattern to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if the patter matches any part of `str`. - * @api public - */ + FastGlob.sync = sync; + function stream(source, options) { + assertPatternsInput$1(source); + const works = getWorks(source, stream$1.default, options); + /** + * The stream returned by the provider cannot work with an asynchronous iterator. + * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. + * This affects performance (+25%). I don't see best solution right now. + */ -micromatch.contains = (str, pattern, options) => { - if (typeof str !== 'string') { - throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); + return utils$8.stream.merge(works); } - if (Array.isArray(pattern)) { - return pattern.some(p => micromatch.contains(str, p, options)); + FastGlob.stream = stream; + + function generateTasks(source, options) { + assertPatternsInput$1(source); + const patterns = [].concat(source); + const settings$1 = new settings.default(options); + return tasks.generate(patterns, settings$1); } - if (typeof pattern === 'string') { - if (isEmptyString(str) || isEmptyString(pattern)) { - return false; - } + FastGlob.generateTasks = generateTasks; - if (str.includes(pattern) || str.startsWith('./') && str.slice(2).includes(pattern)) { - return true; - } + function isDynamicPattern(source, options) { + assertPatternsInput$1(source); + const settings$1 = new settings.default(options); + return utils$8.pattern.isDynamicPattern(source, settings$1); } - return micromatch.isMatch(str, pattern, Object.assign({}, options, { - contains: true - })); -}; -/** - * Filter the keys of the given object with the given `glob` pattern - * and `options`. Does not attempt to match nested keys. If you need this feature, - * use [glob-object][] instead. - * - * ```js - * const mm = require('micromatch'); - * // mm.matchKeys(object, patterns[, options]); - * - * const obj = { aa: 'a', ab: 'b', ac: 'c' }; - * console.log(mm.matchKeys(obj, '*b')); - * //=> { ab: 'b' } - * ``` - * @param {Object} `object` The object with keys to filter. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Object} Returns an object with only keys that match the given patterns. - * @api public - */ + FastGlob.isDynamicPattern = isDynamicPattern; + + function escapePath(source) { + assertPatternsInput$1(source); + return utils$8.path.escape(source); + } + FastGlob.escapePath = escapePath; +})(FastGlob || (FastGlob = {})); -micromatch.matchKeys = (obj, patterns, options) => { - if (!utils$2.isObject(obj)) { - throw new TypeError('Expected the first argument to be an object'); +function getWorks(source, _Provider, options) { + const patterns = [].concat(source); + const settings$1 = new settings.default(options); + const tasks$1 = tasks.generate(patterns, settings$1); + const provider = new _Provider(settings$1); + return tasks$1.map(provider.read, provider); +} + +function assertPatternsInput$1(input) { + const source = [].concat(input); + const isValidSource = source.every(item => utils$8.string.isString(item) && !utils$8.string.isEmpty(item)); + + if (!isValidSource) { + throw new TypeError('Patterns must be a string (non empty) or an array of strings'); } +} - let keys = micromatch(Object.keys(obj), patterns, options); - let res = {}; +var out = FastGlob; - for (let key of keys) res[key] = obj[key]; +const { + promisify: promisify$1 +} = util__default['default']; - return res; -}; -/** - * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. - * - * ```js - * const mm = require('micromatch'); - * // mm.some(list, patterns[, options]); - * - * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); - * // true - * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); - * // false - * ``` - * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ +async function isType(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + try { + const stats = await promisify$1(fs__default['default'][fsStatType])(filePath); + return stats[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } -micromatch.some = (list, patterns, options) => { - let items = [].concat(list); + throw error; + } +} - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch$1(String(pattern), options); +function isTypeSync(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } - if (items.some(item => isMatch(item))) { - return true; + try { + return fs__default['default'][fsStatType](filePath)[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; } + + throw error; } +} - return false; +var isFile = isType.bind(null, 'stat', 'isFile'); +var isDirectory$1 = isType.bind(null, 'stat', 'isDirectory'); +var isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); +var isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); +var isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); +var isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); +var pathType = { + isFile: isFile, + isDirectory: isDirectory$1, + isSymlink: isSymlink, + isFileSync: isFileSync, + isDirectorySync: isDirectorySync, + isSymlinkSync: isSymlinkSync }; -/** - * Returns true if every string in the given `list` matches - * any of the given glob `patterns`. - * - * ```js - * const mm = require('micromatch'); - * // mm.every(list, patterns[, options]); - * - * console.log(mm.every('foo.js', ['foo.js'])); - * // true - * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); - * // true - * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); - * // false - * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); - * // false - * ``` - * @param {String|Array} `list` The string or array of strings to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ - -micromatch.every = (list, patterns, options) => { - let items = [].concat(list); +const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; - for (let pattern of [].concat(patterns)) { - let isMatch = picomatch$1(String(pattern), options); +const getPath = (filepath, cwd) => { + const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; + return path__default['default'].isAbsolute(pth) ? pth : path__default['default'].join(cwd, pth); +}; - if (!items.every(item => isMatch(item))) { - return false; - } +const addExtensions = (file, extensions) => { + if (path__default['default'].extname(file)) { + return `**/${file}`; } - return true; + return `**/${file}.${getExtensions(extensions)}`; }; -/** - * Returns true if **all** of the given `patterns` match - * the specified string. - * - * ```js - * const mm = require('micromatch'); - * // mm.all(string, patterns[, options]); - * - * console.log(mm.all('foo.js', ['foo.js'])); - * // true - * - * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); - * // false - * - * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); - * // true - * - * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); - * // true - * ``` - * @param {String|Array} `str` The string to test. - * @param {String|Array} `patterns` One or more glob patterns to use for matching. - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns true if any patterns match `str` - * @api public - */ +const getGlob = (directory, options) => { + if (options.files && !Array.isArray(options.files)) { + throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``); + } -micromatch.all = (str, patterns, options) => { - if (typeof str !== 'string') { - throw new TypeError(`Expected a string: "${util__default['default'].inspect(str)}"`); + if (options.extensions && !Array.isArray(options.extensions)) { + throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``); + } + + if (options.files && options.extensions) { + return options.files.map(x => path__default['default'].posix.join(directory, addExtensions(x, options.extensions))); + } + + if (options.files) { + return options.files.map(x => path__default['default'].posix.join(directory, `**/${x}`)); + } + + if (options.extensions) { + return [path__default['default'].posix.join(directory, `**/*.${getExtensions(options.extensions)}`)]; } - return [].concat(patterns).every(p => picomatch$1(p, options)(str)); + return [path__default['default'].posix.join(directory, '**')]; }; -/** - * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. - * - * ```js - * const mm = require('micromatch'); - * // mm.capture(pattern, string[, options]); - * - * console.log(mm.capture('test/*.js', 'test/foo.js')); - * //=> ['foo'] - * console.log(mm.capture('test/*.js', 'foo/bar.css')); - * //=> null - * ``` - * @param {String} `glob` Glob pattern to use for matching. - * @param {String} `input` String to match - * @param {Object} `options` See available [options](#options) for changing how matches are performed - * @return {Boolean} Returns an array of captures if the input matches the glob pattern, otherwise `null`. - * @api public - */ +var dirGlob = async (input, options) => { + options = Object.assign({ + cwd: process.cwd() + }, options); + + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + } -micromatch.capture = (glob, input, options) => { - let posix = utils$2.isWindows(options); - let regex = picomatch$1.makeRe(String(glob), Object.assign({}, options, { - capture: true + const globs = await Promise.all([].concat(input).map(async x => { + const isDirectory = await pathType.isDirectory(getPath(x, options.cwd)); + return isDirectory ? getGlob(x, options) : x; })); - let match = regex.exec(posix ? utils$2.toPosixSlashes(input) : input); + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; - if (match) { - return match.slice(1).map(v => v === void 0 ? '' : v); +var sync$2 = (input, options) => { + options = Object.assign({ + cwd: process.cwd() + }, options); + + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); } + + const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x); + return [].concat.apply([], globs); // eslint-disable-line prefer-spread }; -/** - * Create a regular expression from the given glob `pattern`. - * - * ```js - * const mm = require('micromatch'); - * // mm.makeRe(pattern[, options]); - * - * console.log(mm.makeRe('*.js')); - * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ - * ``` - * @param {String} `pattern` A glob pattern to convert to regex. - * @param {Object} `options` - * @return {RegExp} Returns a regex created from the given pattern. - * @api public - */ +dirGlob.sync = sync$2; +// A simple implementation of make-array +function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; +} -micromatch.makeRe = (...args) => picomatch$1.makeRe(...args); -/** - * Scan a glob pattern to separate the pattern into segments. Used - * by the [split](#split) method. - * - * ```js - * const mm = require('micromatch'); - * const state = mm.scan(pattern[, options]); - * ``` - * @param {String} `pattern` - * @param {Object} `options` - * @return {Object} Returns an object with - * @api public - */ +const EMPTY = ''; +const SPACE = ' '; +const ESCAPE = '\\'; +const REGEX_TEST_BLANK_LINE = /^\s+$/; +const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; +const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; +const REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo, +// ./foo, +// ../foo, +// . +// .. +const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; +const SLASH = '/'; +const KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') +/* istanbul ignore next */ +: 'node-ignore'; -micromatch.scan = (...args) => picomatch$1.scan(...args); -/** - * Parse a glob pattern to create the source string for a regular - * expression. - * - * ```js - * const mm = require('micromatch'); - * const state = mm(pattern[, options]); - * ``` - * @param {String} `glob` - * @param {Object} `options` - * @return {Object} Returns an object with useful properties and output to be used as regex source string. - * @api public - */ +const define = (object, key, value) => Object.defineProperty(object, key, { + value +}); +const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; // Sanitize the range of a regular expression +// The cases are complicated, see test cases for details -micromatch.parse = (patterns, options) => { - let res = []; +const sanitizeRange = range => range.replace(REGEX_REGEXP_RANGE, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but +// fatal for JavaScript regular expression, so eliminate it. +: EMPTY); // See fixtures #59 - for (let pattern of [].concat(patterns || [])) { - for (let str of braces_1(String(pattern), options)) { - res.push(picomatch$1.parse(str, options)); - } - } - return res; -}; -/** - * Process the given brace `pattern`. - * - * ```js - * const { braces } = require('micromatch'); - * console.log(braces('foo/{a,b,c}/bar')); - * //=> [ 'foo/(a|b|c)/bar' ] - * - * console.log(braces('foo/{a,b,c}/bar', { expand: true })); - * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] - * ``` - * @param {String} `pattern` String with brace pattern to process. - * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. - * @return {Array} - * @api public - */ +const cleanRangeBackSlash = slashes => { + const { + length + } = slashes; + return slashes.slice(0, length - length % 2); +}; // > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` +// '`foo/`' should not continue with the '`..`' + +const REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\") +[// (a\ ) -> (a ) +// (a ) -> (a) +// (a \ ) -> (a ) +/\\?\s+$/, match => match.indexOf('\\') === 0 ? SPACE : EMPTY], // replace (\ ) with ' ' +[/\\\s/g, () => SPACE], // Escape metacharacters +// which is written down by users but means special for regular expressions. +// > There are 12 characters with special meanings: +// > - the backslash \, +// > - the caret ^, +// > - the dollar sign $, +// > - the period or dot ., +// > - the vertical bar or pipe symbol |, +// > - the question mark ?, +// > - the asterisk or star *, +// > - the plus sign +, +// > - the opening parenthesis (, +// > - the closing parenthesis ), +// > - and the opening square bracket [, +// > - the opening curly brace {, +// > These special characters are often called "metacharacters". +[/[\\$.|*+(){^]/g, match => `\\${match}`], [// > a question mark (?) matches a single character +/(?!\\)\?/g, () => '[^/]'], // leading slash +[// > A leading slash matches the beginning of the pathname. +// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". +// A leading slash matches the beginning of the pathname +/^\//, () => '^'], // replace special metacharacter slash after the leading slash +[/\//g, () => '\\/'], [// > A leading "**" followed by a slash means match in all directories. +// > For example, "**/foo" matches file or directory "foo" anywhere, +// > the same as pattern "foo". +// > "**/foo/bar" matches file or directory "bar" anywhere that is directly +// > under directory "foo". +// Notice that the '*'s have been replaced as '\\*' +/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' +() => '^(?:.*\\/)?'], // starting +[// there will be no leading '/' +// (which has been replaced by section "leading slash") +// If starts with '**', adding a '^' to the regular expression also works +/^(?=[^^])/, function startingReplacer() { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^'; +}], // two globstars +[// Use lookahead assertions so that we could match more than one `'/**'` +/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories +// should not use '*', or it will be replaced by the next replacer +// Check if it is not the last `'/**'` +(_, index, str) => index + 6 < str.length // case: /**/ +// > A slash followed by two consecutive asterisks then a slash matches +// > zero or more directories. +// > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. +// '/**/' +? '(?:\\/[^\\/]+)*' // case: /** +// > A trailing `"/**"` matches everything inside. +// #21: everything inside but it should not include the current folder +: '\\/.+'], // intermediate wildcards +[// Never replace escaped '*' +// ignore rule '\*' will match the path '*' +// 'abc.*/' -> go +// 'abc.*' -> skip this rule +/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js' +// '*.js' doesn't match 'abc' +(_, p1) => `${p1}[^\\/]*`], [// unescape, revert step 3 except for back slash +// For example, if a user escape a '\\*', +// after step 3, the result will be '\\\\\\*' +/\\\\\\(?=[$.|*+(){^])/g, () => ESCAPE], [// '\\\\' -> '\\' +/\\\\/g, () => ESCAPE], [// > The range notation, e.g. [a-zA-Z], +// > can be used to match one of the characters in a range. +// `\` is escaped by step 3 +/(\\)?\[([^\]/]*?)(\\*)($|\])/g, (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]' +? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation +// '[bar]' +// '[bar\\\\]' +? `[${sanitizeRange(range)}${endEscape}]` // Invalid range notaton +// '[bar\\]' -> '[bar\\\\]' +: '[]' : '[]'], // ending +[// 'js' will not match 'js.' +// 'ab' will not match 'abc' +/(?:[^*])$/, // WTF! +// https://git-scm.com/docs/gitignore +// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) +// which re-fixes #24, #38 +// > If there is a separator at the end of the pattern then the pattern +// > will only match directories, otherwise the pattern can match both +// > files and directories. +// 'js*' will not match 'a.js' +// 'js/' will not match 'a.js' +// 'js' will match 'a.js' and 'a.js/' +match => /\/$/.test(match) // foo/ will not match 'foo' +? `${match}$` // foo matches 'foo' and 'foo/' +: `${match}(?=$|\\/$)`], // trailing wildcard +[/(\^|\\\/)?\\\*$/, (_, p1) => { + const prefix = p1 // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*'; + return `${prefix}(?=$|\\/$)`; +}]]; // A simple cache, because an ignore rule only has only one certain meaning -micromatch.braces = (pattern, options) => { - if (typeof pattern !== 'string') throw new TypeError('Expected a string'); +const regexCache = Object.create(null); // @param {pattern} - if (options && options.nobrace === true || !/\{.*\}/.test(pattern)) { - return [pattern]; - } +const makeRegex = (pattern, negative, ignorecase) => { + const r = regexCache[pattern]; - return braces_1(pattern, options); -}; -/** - * Expand braces - */ + if (r) { + return r; + } // const replacers = negative + // ? NEGATIVE_REPLACERS + // : POSITIVE_REPLACERS -micromatch.braceExpand = (pattern, options) => { - if (typeof pattern !== 'string') throw new TypeError('Expected a string'); - return micromatch.braces(pattern, Object.assign({}, options, { - expand: true - })); + const source = REPLACERS.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); + return regexCache[pattern] = ignorecase ? new RegExp(source, 'i') : new RegExp(source); }; -/** - * Expose micromatch - */ - - -var micromatch_1 = micromatch; - -var pattern = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; - const GLOBSTAR = '**'; - const ESCAPE_SYMBOL = '\\'; - const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; - const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[.*]/; - const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\(.*\|.*\)/; - const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\(.*\)/; - const BRACE_EXPANSIONS_SYMBOLS_RE = /{.*(?:,|\.\.).*}/; - - function isStaticPattern(pattern, options = {}) { - return !isDynamicPattern(pattern, options); - } - - exports.isStaticPattern = isStaticPattern; - - function isDynamicPattern(pattern, options = {}) { - /** - * A special case with an empty string is necessary for matching patterns that start with a forward slash. - * An empty string cannot be a dynamic pattern. - * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. - */ - if (pattern === '') { - return false; - } - /** - * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check - * filepath directly (without read directory). - */ - - - if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { - return true; - } - - if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { - return true; - } - - if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { - return true; - } - - if (options.braceExpansion !== false && BRACE_EXPANSIONS_SYMBOLS_RE.test(pattern)) { - return true; - } - return false; - } +const isString = subject => typeof subject === 'string'; // > A blank line matches no files, so it can serve as a separator for readability. - exports.isDynamicPattern = isDynamicPattern; - function convertToPositivePattern(pattern) { - return isNegativePattern(pattern) ? pattern.slice(1) : pattern; - } +const checkPattern = pattern => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment. +&& pattern.indexOf('#') !== 0; - exports.convertToPositivePattern = convertToPositivePattern; +const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF); - function convertToNegativePattern(pattern) { - return '!' + pattern; +class IgnoreRule { + constructor(origin, pattern, negative, regex) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex; } - exports.convertToNegativePattern = convertToNegativePattern; - - function isNegativePattern(pattern) { - return pattern.startsWith('!') && pattern[1] !== '('; - } +} - exports.isNegativePattern = isNegativePattern; +const createRule = (pattern, ignorecase) => { + const origin = pattern; + let negative = false; // > An optional prefix "!" which negates the pattern; - function isPositivePattern(pattern) { - return !isNegativePattern(pattern); + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); } - exports.isPositivePattern = isPositivePattern; - - function getNegativePatterns(patterns) { - return patterns.filter(isNegativePattern); - } + pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); + const regex = makeRegex(pattern, negative, ignorecase); + return new IgnoreRule(origin, pattern, negative, regex); +}; - exports.getNegativePatterns = getNegativePatterns; +const throwError = (message, Ctor) => { + throw new Ctor(message); +}; - function getPositivePatterns(patterns) { - return patterns.filter(isPositivePattern); - } +const checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); + } // We don't know if we should ignore EMPTY, so throw - exports.getPositivePatterns = getPositivePatterns; - function getBaseDirectory(pattern) { - return globParent(pattern, { - flipBackslashes: false - }); - } + if (!path) { + return doThrow(`path must not be empty`, TypeError); + } // Check if it is a relative path - exports.getBaseDirectory = getBaseDirectory; - function hasGlobStar(pattern) { - return pattern.includes(GLOBSTAR); + if (checkPath.isNotRelative(path)) { + const r = '`path.relative()`d'; + return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); } - exports.hasGlobStar = hasGlobStar; + return true; +}; - function endsWithSlashGlobStar(pattern) { - return pattern.endsWith('/' + GLOBSTAR); - } +const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path); - exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +checkPath.isNotRelative = isNotRelative; - function isAffectDepthOfReadingPattern(pattern) { - const basename = path__default['default'].basename(pattern); - return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); - } +checkPath.convert = p => p; - exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +class Ignore { + constructor({ + ignorecase = true + } = {}) { + this._rules = []; + this._ignorecase = ignorecase; + define(this, KEY_IGNORE, true); - function expandPatternsWithBraceExpansion(patterns) { - return patterns.reduce((collection, pattern) => { - return collection.concat(expandBraceExpansion(pattern)); - }, []); + this._initCache(); } - exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; - - function expandBraceExpansion(pattern) { - return micromatch_1.braces(pattern, { - expand: true, - nodupes: true - }); + _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); } - exports.expandBraceExpansion = expandBraceExpansion; - - function getPatternParts(pattern, options) { - let { - parts - } = picomatch$1.scan(pattern, Object.assign(Object.assign({}, options), { - parts: true - })); - /** - * The scan method returns an empty array in some cases. - * See micromatch/picomatch#58 for more details. - */ - - if (parts.length === 0) { - parts = [pattern]; + _addPattern(pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; } - /** - * The scan method does not return an empty part for the pattern with a forward slash. - * This is another part of micromatch/picomatch#58. - */ + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignorecase); + this._added = true; - if (parts[0].startsWith('/')) { - parts[0] = parts[0].slice(1); - parts.unshift(''); + this._rules.push(rule); } + } // @param {Array | string | Ignore} pattern - return parts; - } - - exports.getPatternParts = getPatternParts; - - function makeRe(pattern, options) { - return micromatch_1.makeRe(pattern, options); - } - - exports.makeRe = makeRe; - function convertPatternsToRe(patterns, options) { - return patterns.map(pattern => makeRe(pattern, options)); - } + add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore, + // making the behavior changed. - exports.convertPatternsToRe = convertPatternsToRe; + if (this._added) { + this._initCache(); + } - function matchAny(entry, patternsRe) { - return patternsRe.some(patternRe => patternRe.test(entry)); - } + return this; + } // legacy - exports.matchAny = matchAny; -}); -var stream$1 = createCommonjsModule(function (module, exports) { + addPattern(pattern) { + return this.add(pattern); + } // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + // @returns {TestResult} true if a file is ignored - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.merge = void 0; - function merge(streams) { - const mergedStream = merge2_1(streams); - streams.forEach(stream => { - stream.once('error', error => mergedStream.emit('error', error)); - }); - mergedStream.once('close', () => propagateCloseEventToSources(streams)); - mergedStream.once('end', () => propagateCloseEventToSources(streams)); - return mergedStream; - } + _testOne(path, checkUnignored) { + let ignored = false; + let unignored = false; - exports.merge = merge; + this._rules.forEach(rule => { + const { + negative + } = rule; - function propagateCloseEventToSources(streams) { - streams.forEach(stream => stream.emit('close')); - } -}); + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } -var string$1 = createCommonjsModule(function (module, exports) { + const matched = rule.regex.test(path); - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.isEmpty = exports.isString = void 0; + if (matched) { + ignored = !negative; + unignored = negative; + } + }); - function isString(input) { - return typeof input === 'string'; - } + return { + ignored, + unignored + }; + } // @returns {TestResult} - exports.isString = isString; - function isEmpty(input) { - return input === ''; + _test(originalPath, cache, checkUnignored, slices) { + const path = originalPath // Supports nullable path + && checkPath.convert(originalPath); + checkPath(path, originalPath, throwError); + return this._t(path, cache, checkUnignored, slices); } - exports.isEmpty = isEmpty; -}); - -var utils$3 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; - exports.array = array$2; - exports.errno = errno; - exports.fs = fs$1; - exports.path = path_1; - exports.pattern = pattern; - exports.stream = stream$1; - exports.string = string$1; -}); - -var tasks = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; - - function generate(patterns, settings) { - const positivePatterns = getPositivePatterns(patterns); - const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); - const staticPatterns = positivePatterns.filter(pattern => utils$3.pattern.isStaticPattern(pattern, settings)); - const dynamicPatterns = positivePatterns.filter(pattern => utils$3.pattern.isDynamicPattern(pattern, settings)); - const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, - /* dynamic */ - false); - const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, - /* dynamic */ - true); - return staticTasks.concat(dynamicTasks); - } + _t(path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path]; + } - exports.generate = generate; + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH); + } - function convertPatternsToTasks(positive, negative, dynamic) { - const positivePatternsGroup = groupPatternsByBaseDirectory(positive); // When we have a global group – there is no reason to divide the patterns into independent tasks. - // In this case, the global task covers the rest. + slices.pop(); // If the path has no parent directory, just test it - if ('.' in positivePatternsGroup) { - const task = convertPatternGroupToTask('.', positive, negative, dynamic); - return [task]; + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored); } - return convertPatternGroupsToTasks(positivePatternsGroup, negative, dynamic); - } + const parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first - exports.convertPatternsToTasks = convertPatternsToTasks; - function getPositivePatterns(patterns) { - return utils$3.pattern.getPositivePatterns(patterns); + return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent : this._testOne(path, checkUnignored); } - exports.getPositivePatterns = getPositivePatterns; - - function getNegativePatternsAsPositive(patterns, ignore) { - const negative = utils$3.pattern.getNegativePatterns(patterns).concat(ignore); - const positive = negative.map(utils$3.pattern.convertToPositivePattern); - return positive; + ignores(path) { + return this._test(path, this._ignoreCache, false).ignored; } - exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; + createFilter() { + return path => !this.ignores(path); + } - function groupPatternsByBaseDirectory(patterns) { - const group = {}; - return patterns.reduce((collection, pattern) => { - const base = utils$3.pattern.getBaseDirectory(pattern); + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } // @returns {TestResult} - if (base in collection) { - collection[base].push(pattern); - } else { - collection[base] = [pattern]; - } - return collection; - }, group); + test(path) { + return this._test(path, this._testCache, true); } - exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +} - function convertPatternGroupsToTasks(positive, negative, dynamic) { - return Object.keys(positive).map(base => { - return convertPatternGroupToTask(base, positive[base], negative, dynamic); - }); - } +const factory = options => new Ignore(options); - exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +const returnFalse = () => false; - function convertPatternGroupToTask(base, positive, negative, dynamic) { - return { - dynamic, - positive, - negative, - base, - patterns: [].concat(positive, negative.map(utils$3.pattern.convertToNegativePattern)) - }; - } +const isPathValid = path => checkPath(path && checkPath.convert(path), path, returnFalse); - exports.convertPatternGroupToTask = convertPatternGroupToTask; -}); +factory.isPathValid = isPathValid; // Fixes typescript -var async$1 = createCommonjsModule(function (module, exports) { +factory.default = factory; +var ignore = factory; // Windows +// -------------------------------------------------------------- - Object.defineProperty(exports, "__esModule", { - value: true - }); +/* istanbul ignore if */ - function read(path, settings, callback) { - settings.fs.lstat(path, (lstatError, lstat) => { - if (lstatError !== null) { - return callFailureCallback(callback, lstatError); - } +if ( // Detect `process` so that it can run in browsers. +typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { + /* eslint no-control-regex: "off" */ + const makePosix = str => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, '/'); - if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { - return callSuccessCallback(callback, lstat); - } + checkPath.convert = makePosix; // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' - settings.fs.stat(path, (statError, stat) => { - if (statError !== null) { - if (settings.throwErrorOnBrokenSymbolicLink) { - return callFailureCallback(callback, statError); - } + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; - return callSuccessCallback(callback, lstat); - } + checkPath.isNotRelative = path => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path); +} - if (settings.markSymbolicLink) { - stat.isSymbolicLink = () => true; - } +var slash = path => { + const isExtendedLengthPath = /^\\\\\?\\/.test(path); + const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex - callSuccessCallback(callback, stat); - }); - }); + if (isExtendedLengthPath || hasNonAscii) { + return path; } - exports.read = read; + return path.replace(/\\/g, '/'); +}; - function callFailureCallback(callback, error) { - callback(error); - } +const { + promisify +} = util__default['default']; +const DEFAULT_IGNORE = ['**/node_modules/**', '**/flow-typed/**', '**/coverage/**', '**/.git']; +const readFileP = promisify(fs__default['default'].readFile); - function callSuccessCallback(callback, result) { - callback(null, result); +const mapGitIgnorePatternTo = base => ignore => { + if (ignore.startsWith('!')) { + return '!' + path__default['default'].posix.join(base, ignore.slice(1)); } -}); - -var sync$1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - function read(path, settings) { - const lstat = settings.fs.lstatSync(path); - - if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { - return lstat; - } - try { - const stat = settings.fs.statSync(path); + return path__default['default'].posix.join(base, ignore); +}; - if (settings.markSymbolicLink) { - stat.isSymbolicLink = () => true; - } +const parseGitIgnore = (content, options) => { + const base = slash(path__default['default'].relative(options.cwd, path__default['default'].dirname(options.fileName))); + return content.split(/\r?\n/).filter(Boolean).filter(line => !line.startsWith('#')).map(mapGitIgnorePatternTo(base)); +}; - return stat; - } catch (error) { - if (!settings.throwErrorOnBrokenSymbolicLink) { - return lstat; - } +const reduceIgnore = files => { + const ignores = ignore(); - throw error; - } + for (const file of files) { + ignores.add(parseGitIgnore(file.content, { + cwd: file.cwd, + fileName: file.filePath + })); } - exports.read = read; -}); - -var fs_1 = createCommonjsModule(function (module, exports) { + return ignores; +}; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.FILE_SYSTEM_ADAPTER = { - lstat: fs__default['default'].lstat, - stat: fs__default['default'].stat, - lstatSync: fs__default['default'].lstatSync, - statSync: fs__default['default'].statSync - }; +const ensureAbsolutePathForCwd = (cwd, p) => { + cwd = slash(cwd); - function createFileSystemAdapter(fsMethods) { - if (fsMethods === undefined) { - return exports.FILE_SYSTEM_ADAPTER; + if (path__default['default'].isAbsolute(p)) { + if (slash(p).startsWith(cwd)) { + return p; } - return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); + throw new Error(`Path ${p} is not in cwd ${cwd}`); } - exports.createFileSystemAdapter = createFileSystemAdapter; -}); - -var settings = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); + return path__default['default'].join(cwd, p); +}; - class Settings { - constructor(_options = {}) { - this._options = _options; - this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); - this.fs = fs_1.createFileSystemAdapter(this._options.fs); - this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); - } +const getIsIgnoredPredecate = (ignores, cwd) => { + return p => ignores.ignores(slash(path__default['default'].relative(cwd, ensureAbsolutePathForCwd(cwd, p.path || p)))); +}; - _getValue(option, value) { - return option === undefined ? value : option; - } +const getFile = async (file, cwd) => { + const filePath = path__default['default'].join(cwd, file); + const content = await readFileP(filePath, 'utf8'); + return { + cwd, + filePath, + content + }; +}; - } +const getFileSync = (file, cwd) => { + const filePath = path__default['default'].join(cwd, file); + const content = fs__default['default'].readFileSync(filePath, 'utf8'); + return { + cwd, + filePath, + content + }; +}; - exports.default = Settings; -}); +const normalizeOptions = ({ + ignore = [], + cwd = slash(process.cwd()) +} = {}) => { + return { + ignore, + cwd + }; +}; -var out = createCommonjsModule(function (module, exports) { +var gitignore = async options => { + options = normalizeOptions(options); + const paths = await out('**/.gitignore', { + ignore: DEFAULT_IGNORE.concat(options.ignore), + cwd: options.cwd + }); + const files = await Promise.all(paths.map(file => getFile(file, options.cwd))); + const ignores = reduceIgnore(files); + return getIsIgnoredPredecate(ignores, options.cwd); +}; - Object.defineProperty(exports, "__esModule", { - value: true +var sync$1 = options => { + options = normalizeOptions(options); + const paths = out.sync('**/.gitignore', { + ignore: DEFAULT_IGNORE.concat(options.ignore), + cwd: options.cwd }); - exports.Settings = settings.default; + const files = paths.map(file => getFileSync(file, options.cwd)); + const ignores = reduceIgnore(files); + return getIsIgnoredPredecate(ignores, options.cwd); +}; +gitignore.sync = sync$1; - function stat(path, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === 'function') { - return async$1.read(path, getSettings(), optionsOrSettingsOrCallback); - } +const { + Transform +} = stream_1__default['default']; - async$1.read(path, getSettings(optionsOrSettingsOrCallback), callback); +class ObjectTransform extends Transform { + constructor() { + super({ + objectMode: true + }); } - exports.stat = stat; +} - function statSync(path, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - return sync$1.read(path, settings); +class FilterStream$1 extends ObjectTransform { + constructor(filter) { + super(); + this._filter = filter; } - exports.statSync = statSync; - - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings.default) { - return settingsOrOptions; + _transform(data, encoding, callback) { + if (this._filter(data)) { + this.push(data); } - return new settings.default(settingsOrOptions); - } -}); - -var runParallel_1 = runParallel; - -function runParallel(tasks, cb) { - var results, pending, keys; - var isSync = true; - - if (Array.isArray(tasks)) { - results = []; - pending = tasks.length; - } else { - keys = Object.keys(tasks); - results = {}; - pending = keys.length; + callback(); } - function done(err) { - function end() { - if (cb) cb(err, results); - cb = null; - } +} - if (isSync) process.nextTick(end);else end(); +class UniqueStream$1 extends ObjectTransform { + constructor() { + super(); + this._pushed = new Set(); } - function each(i, err, result) { - results[i] = result; + _transform(data, encoding, callback) { + if (!this._pushed.has(data)) { + this.push(data); - if (--pending === 0 || err) { - done(err); + this._pushed.add(data); } - } - if (!pending) { - // empty - done(null); - } else if (keys) { - // object - keys.forEach(function (key) { - tasks[key](function (err, result) { - each(key, err, result); - }); - }); - } else { - // array - tasks.forEach(function (task, i) { - task(function (err, result) { - each(i, err, result); - }); - }); + callback(); } - isSync = false; } -var constants$4 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); - const MAJOR_VERSION = parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); - const MINOR_VERSION = parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); - const SUPPORTED_MAJOR_VERSION = 10; - const SUPPORTED_MINOR_VERSION = 10; - const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; - const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; - /** - * IS `true` for Node.js 10.10 and greater. - */ - - exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; -}); +var streamUtils = { + FilterStream: FilterStream$1, + UniqueStream: UniqueStream$1 +}; -var fs$2 = createCommonjsModule(function (module, exports) { +const { + FilterStream, + UniqueStream +} = streamUtils; - Object.defineProperty(exports, "__esModule", { - value: true - }); +const DEFAULT_FILTER = () => false; - class DirentFromStats { - constructor(name, stats) { - this.name = name; - this.isBlockDevice = stats.isBlockDevice.bind(stats); - this.isCharacterDevice = stats.isCharacterDevice.bind(stats); - this.isDirectory = stats.isDirectory.bind(stats); - this.isFIFO = stats.isFIFO.bind(stats); - this.isFile = stats.isFile.bind(stats); - this.isSocket = stats.isSocket.bind(stats); - this.isSymbolicLink = stats.isSymbolicLink.bind(stats); - } +const isNegative = pattern => pattern[0] === '!'; +const assertPatternsInput = patterns => { + if (!patterns.every(pattern => typeof pattern === 'string')) { + throw new TypeError('Patterns must be a string or an array of strings'); } +}; - function createDirentFromStats(name, stats) { - return new DirentFromStats(name, stats); +const checkCwdOption = (options = {}) => { + if (!options.cwd) { + return; } - exports.createDirentFromStats = createDirentFromStats; -}); + let stat; -var utils$4 = createCommonjsModule(function (module, exports) { + try { + stat = fs__default['default'].statSync(options.cwd); + } catch { + return; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.fs = fs$2; -}); + if (!stat.isDirectory()) { + throw new Error('The `cwd` option must be a path to a directory'); + } +}; -var async$2 = createCommonjsModule(function (module, exports) { +const getPathString = p => p.stats instanceof fs__default['default'].Stats ? p.path : p; - Object.defineProperty(exports, "__esModule", { - value: true - }); +const generateGlobTasks = (patterns, taskOptions) => { + patterns = arrayUnion([].concat(patterns)); + assertPatternsInput(patterns); + checkCwdOption(taskOptions); + const globTasks = []; + taskOptions = Object.assign({ + ignore: [], + expandDirectories: true + }, taskOptions); - function read(directory, settings, callback) { - if (!settings.stats && constants$4.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { - return readdirWithFileTypes(directory, settings, callback); + for (const [index, pattern] of patterns.entries()) { + if (isNegative(pattern)) { + continue; } - return readdir(directory, settings, callback); + const ignore = patterns.slice(index).filter(pattern => isNegative(pattern)).map(pattern => pattern.slice(1)); + const options = Object.assign(Object.assign({}, taskOptions), {}, { + ignore: taskOptions.ignore.concat(ignore) + }); + globTasks.push({ + pattern, + options + }); } - exports.read = read; - - function readdirWithFileTypes(directory, settings, callback) { - settings.fs.readdir(directory, { - withFileTypes: true - }, (readdirError, dirents) => { - if (readdirError !== null) { - return callFailureCallback(callback, readdirError); - } - - const entries = dirents.map(dirent => ({ - dirent, - name: dirent.name, - path: `${directory}${settings.pathSegmentSeparator}${dirent.name}` - })); + return globTasks; +}; - if (!settings.followSymbolicLinks) { - return callSuccessCallback(callback, entries); - } +const globDirs = (task, fn) => { + let options = {}; - const tasks = entries.map(entry => makeRplTaskEntry(entry, settings)); - runParallel_1(tasks, (rplError, rplEntries) => { - if (rplError !== null) { - return callFailureCallback(callback, rplError); - } + if (task.options.cwd) { + options.cwd = task.options.cwd; + } - callSuccessCallback(callback, rplEntries); - }); + if (Array.isArray(task.options.expandDirectories)) { + options = Object.assign(Object.assign({}, options), {}, { + files: task.options.expandDirectories }); + } else if (typeof task.options.expandDirectories === 'object') { + options = Object.assign(Object.assign({}, options), task.options.expandDirectories); } - exports.readdirWithFileTypes = readdirWithFileTypes; + return fn(task.pattern, options); +}; - function makeRplTaskEntry(entry, settings) { - return done => { - if (!entry.dirent.isSymbolicLink()) { - return done(null, entry); - } +const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern]; - settings.fs.stat(entry.path, (statError, stats) => { - if (statError !== null) { - if (settings.throwErrorOnBrokenSymbolicLink) { - return done(statError); - } +const getFilterSync = options => { + return options && options.gitignore ? gitignore.sync({ + cwd: options.cwd, + ignore: options.ignore + }) : DEFAULT_FILTER; +}; - return done(null, entry); - } +const globToTask = task => glob => { + const { + options + } = task; - entry.dirent = utils$4.fs.createDirentFromStats(entry.name, stats); - return done(null, entry); - }); - }; + if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { + options.ignore = dirGlob.sync(options.ignore); } - function readdir(directory, settings, callback) { - settings.fs.readdir(directory, (readdirError, names) => { - if (readdirError !== null) { - return callFailureCallback(callback, readdirError); - } + return { + pattern: glob, + options + }; +}; - const filepaths = names.map(name => `${directory}${settings.pathSegmentSeparator}${name}`); - const tasks = filepaths.map(filepath => { - return done => out.stat(filepath, settings.fsStatSettings, done); - }); - runParallel_1(tasks, (rplError, results) => { - if (rplError !== null) { - return callFailureCallback(callback, rplError); - } +var globby = async (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); - const entries = []; - names.forEach((name, index) => { - const stats = results[index]; - const entry = { - name, - path: filepaths[index], - dirent: utils$4.fs.createDirentFromStats(name, stats) - }; + const getFilter = async () => { + return options && options.gitignore ? gitignore({ + cwd: options.cwd, + ignore: options.ignore + }) : DEFAULT_FILTER; + }; - if (settings.stats) { - entry.stats = stats; - } + const getTasks = async () => { + const tasks = await Promise.all(globTasks.map(async task => { + const globs = await getPattern(task, dirGlob); + return Promise.all(globs.map(globToTask(task))); + })); + return arrayUnion(...tasks); + }; - entries.push(entry); - }); - callSuccessCallback(callback, entries); - }); - }); + const [filter, tasks] = await Promise.all([getFilter(), getTasks()]); + const paths = await Promise.all(tasks.map(task => out(task.pattern, task.options))); + return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_))); +}; + +var sync = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + const tasks = []; + + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); + tasks.push(...newTask); } - exports.readdir = readdir; + const filter = getFilterSync(options); + let matches = []; - function callFailureCallback(callback, error) { - callback(error); + for (const task of tasks) { + matches = arrayUnion(matches, out.sync(task.pattern, task.options)); } - function callSuccessCallback(callback, result) { - callback(null, result); + return matches.filter(path_ => !filter(path_)); +}; + +var stream = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + const tasks = []; + + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); + tasks.push(...newTask); } -}); -var sync$2 = createCommonjsModule(function (module, exports) { + const filter = getFilterSync(options); + const filterStream = new FilterStream(p => !filter(p)); + const uniqueStream = new UniqueStream(); + return merge2_1(tasks.map(task => out.stream(task.pattern, task.options))).pipe(filterStream).pipe(uniqueStream); +}; - Object.defineProperty(exports, "__esModule", { - value: true - }); +var generateGlobTasks_1 = generateGlobTasks; - function read(directory, settings) { - if (!settings.stats && constants$4.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { - return readdirWithFileTypes(directory, settings); - } +var hasMagic = (patterns, options) => [].concat(patterns).some(pattern => out.isDynamicPattern(pattern, options)); - return readdir(directory, settings); - } +var gitignore_1 = gitignore; +globby.sync = sync; +globby.stream = stream; +globby.generateGlobTasks = generateGlobTasks_1; +globby.hasMagic = hasMagic; +globby.gitignore = gitignore_1; - exports.read = read; +const _excluded = ["languageId"]; - function readdirWithFileTypes(directory, settings) { - const dirents = settings.fs.readdirSync(directory, { - withFileTypes: true - }); - return dirents.map(dirent => { - const entry = { - dirent, - name: dirent.name, - path: `${directory}${settings.pathSegmentSeparator}${dirent.name}` - }; +var createLanguage = function (linguistData, override) { + const { + languageId + } = linguistData, + rest = _objectWithoutProperties(linguistData, _excluded); - if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { - try { - const stats = settings.fs.statSync(entry.path); - entry.dirent = utils$4.fs.createDirentFromStats(entry.name, stats); - } catch (error) { - if (settings.throwErrorOnBrokenSymbolicLink) { - throw error; - } - } + return Object.assign(Object.assign({ + linguistLanguageId: languageId + }, rest), override(linguistData)); +}; + +/* + Copyright (C) 2013 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +var ast = createCommonjsModule(function (module) { + (function () { + + function isExpression(node) { + if (node == null) { + return false; } - return entry; - }); - } + switch (node.type) { + case 'ArrayExpression': + case 'AssignmentExpression': + case 'BinaryExpression': + case 'CallExpression': + case 'ConditionalExpression': + case 'FunctionExpression': + case 'Identifier': + case 'Literal': + case 'LogicalExpression': + case 'MemberExpression': + case 'NewExpression': + case 'ObjectExpression': + case 'SequenceExpression': + case 'ThisExpression': + case 'UnaryExpression': + case 'UpdateExpression': + return true; + } - exports.readdirWithFileTypes = readdirWithFileTypes; + return false; + } - function readdir(directory, settings) { - const names = settings.fs.readdirSync(directory); - return names.map(name => { - const entryPath = `${directory}${settings.pathSegmentSeparator}${name}`; - const stats = out.statSync(entryPath, settings.fsStatSettings); - const entry = { - name, - path: entryPath, - dirent: utils$4.fs.createDirentFromStats(name, stats) - }; + function isIterationStatement(node) { + if (node == null) { + return false; + } - if (settings.stats) { - entry.stats = stats; + switch (node.type) { + case 'DoWhileStatement': + case 'ForInStatement': + case 'ForStatement': + case 'WhileStatement': + return true; } - return entry; - }); - } + return false; + } - exports.readdir = readdir; -}); + function isStatement(node) { + if (node == null) { + return false; + } -var fs_1$1 = createCommonjsModule(function (module, exports) { + switch (node.type) { + case 'BlockStatement': + case 'BreakStatement': + case 'ContinueStatement': + case 'DebuggerStatement': + case 'DoWhileStatement': + case 'EmptyStatement': + case 'ExpressionStatement': + case 'ForInStatement': + case 'ForStatement': + case 'IfStatement': + case 'LabeledStatement': + case 'ReturnStatement': + case 'SwitchStatement': + case 'ThrowStatement': + case 'TryStatement': + case 'VariableDeclaration': + case 'WhileStatement': + case 'WithStatement': + return true; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.FILE_SYSTEM_ADAPTER = { - lstat: fs__default['default'].lstat, - stat: fs__default['default'].stat, - lstatSync: fs__default['default'].lstatSync, - statSync: fs__default['default'].statSync, - readdir: fs__default['default'].readdir, - readdirSync: fs__default['default'].readdirSync - }; + return false; + } + + function isSourceElement(node) { + return isStatement(node) || node != null && node.type === 'FunctionDeclaration'; + } + + function trailingStatement(node) { + switch (node.type) { + case 'IfStatement': + if (node.alternate != null) { + return node.alternate; + } + + return node.consequent; + + case 'LabeledStatement': + case 'ForStatement': + case 'ForInStatement': + case 'WhileStatement': + case 'WithStatement': + return node.body; + } - function createFileSystemAdapter(fsMethods) { - if (fsMethods === undefined) { - return exports.FILE_SYSTEM_ADAPTER; + return null; } - return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); - } + function isProblematicIfStatement(node) { + var current; - exports.createFileSystemAdapter = createFileSystemAdapter; -}); + if (node.type !== 'IfStatement') { + return false; + } -var settings$1 = createCommonjsModule(function (module, exports) { + if (node.alternate == null) { + return false; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + current = node.consequent; - class Settings { - constructor(_options = {}) { - this._options = _options; - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); - this.fs = fs_1$1.createFileSystemAdapter(this._options.fs); - this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); - this.stats = this._getValue(this._options.stats, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); - this.fsStatSettings = new out.Settings({ - followSymbolicLink: this.followSymbolicLinks, - fs: this.fs, - throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink - }); - } + do { + if (current.type === 'IfStatement') { + if (current.alternate == null) { + return true; + } + } - _getValue(option, value) { - return option === undefined ? value : option; + current = trailingStatement(current); + } while (current); + + return false; } - } + module.exports = { + isExpression: isExpression, + isStatement: isStatement, + isIterationStatement: isIterationStatement, + isSourceElement: isSourceElement, + isProblematicIfStatement: isProblematicIfStatement, + trailingStatement: trailingStatement + }; + })(); + /* vim: set sw=4 ts=4 et tw=80 : */ - exports.default = Settings; }); -var out$1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.Settings = settings$1.default; - - function scandir(path, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === 'function') { - return async$2.read(path, getSettings(), optionsOrSettingsOrCallback); - } - - async$2.read(path, getSettings(optionsOrSettingsOrCallback), callback); - } +/* + Copyright (C) 2013-2014 Yusuke Suzuki + Copyright (C) 2014 Ivan Nikulin + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +var code = createCommonjsModule(function (module) { + (function () { - exports.scandir = scandir; + var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch; // See `tools/generate-identifier-regex.js`. - function scandirSync(path, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - return sync$2.read(path, settings); - } + ES5Regex = { + // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart: + 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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/, + // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart: + NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/ + }; + ES6Regex = { + // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart: + 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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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]/, + // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart: + 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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/ + }; - exports.scandirSync = scandirSync; + function isDecimalDigit(ch) { + return 0x30 <= ch && ch <= 0x39; // 0..9 + } - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings$1.default) { - return settingsOrOptions; + function isHexDigit(ch) { + return 0x30 <= ch && ch <= 0x39 || // 0..9 + 0x61 <= ch && ch <= 0x66 || // a..f + 0x41 <= ch && ch <= 0x46; // A..F } - return new settings$1.default(settingsOrOptions); - } -}); + function isOctalDigit(ch) { + return ch >= 0x30 && ch <= 0x37; // 0..7 + } // 7.2 White Space -function reusify(Constructor) { - var head = new Constructor(); - var tail = head; - function get() { - var current = head; + NON_ASCII_WHITESPACES = [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF]; - if (current.next) { - head = current.next; - } else { - head = new Constructor(); - tail = head; - } + function isWhiteSpace(ch) { + return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0; + } // 7.3 Line Terminators - current.next = null; - return current; - } - function release(obj) { - tail.next = obj; - tail = obj; - } + function isLineTerminator(ch) { + return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; + } // 7.6 Identifier Names and Identifiers - return { - get: get, - release: release - }; -} -var reusify_1 = reusify; + function fromCodePoint(cp) { + if (cp <= 0xFFFF) { + return String.fromCharCode(cp); + } -function fastqueue(context, worker, concurrency) { - if (typeof context === 'function') { - concurrency = worker; - worker = context; - context = null; - } + var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800); + var cu2 = String.fromCharCode((cp - 0x10000) % 0x400 + 0xDC00); + return cu1 + cu2; + } - var cache = reusify_1(Task); - var queueHead = null; - var queueTail = null; - var _running = 0; - var self = { - push: push, - drain: noop$1, - saturated: noop$1, - pause: pause, - paused: false, - concurrency: concurrency, - running: running, - resume: resume, - idle: idle, - length: length, - getQueue: getQueue, - unshift: unshift, - empty: noop$1, - kill: kill, - killAndDrain: killAndDrain - }; - return self; + IDENTIFIER_START = new Array(0x80); - function running() { - return _running; - } + for (ch = 0; ch < 0x80; ++ch) { + IDENTIFIER_START[ch] = ch >= 0x61 && ch <= 0x7A || // a..z + ch >= 0x41 && ch <= 0x5A || // A..Z + ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore) + } - function pause() { - self.paused = true; - } + IDENTIFIER_PART = new Array(0x80); - function length() { - var current = queueHead; - var counter = 0; + for (ch = 0; ch < 0x80; ++ch) { + IDENTIFIER_PART[ch] = ch >= 0x61 && ch <= 0x7A || // a..z + ch >= 0x41 && ch <= 0x5A || // A..Z + ch >= 0x30 && ch <= 0x39 || // 0..9 + ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore) + } - while (current) { - current = current.next; - counter++; + function isIdentifierStartES5(ch) { + return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)); } - return counter; - } + function isIdentifierPartES5(ch) { + return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)); + } - function getQueue() { - var current = queueHead; - var tasks = []; + function isIdentifierStartES6(ch) { + return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)); + } - while (current) { - tasks.push(current.value); - current = current.next; + function isIdentifierPartES6(ch) { + return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)); } - return tasks; - } + module.exports = { + isDecimalDigit: isDecimalDigit, + isHexDigit: isHexDigit, + isOctalDigit: isOctalDigit, + isWhiteSpace: isWhiteSpace, + isLineTerminator: isLineTerminator, + isIdentifierStartES5: isIdentifierStartES5, + isIdentifierPartES5: isIdentifierPartES5, + isIdentifierStartES6: isIdentifierStartES6, + isIdentifierPartES6: isIdentifierPartES6 + }; + })(); + /* vim: set sw=4 ts=4 et tw=80 : */ - function resume() { - if (!self.paused) return; - self.paused = false; +}); - for (var i = 0; i < self.concurrency; i++) { - _running++; - release(); - } - } +/* + Copyright (C) 2013 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +var keyword = createCommonjsModule(function (module) { + (function () { - function idle() { - return _running === 0 && self.length() === 0; - } + var code$1 = code; - function push(value, done) { - var current = cache.get(); - current.context = context; - current.release = release; - current.value = value; - current.callback = done || noop$1; + function isStrictModeReservedWordES6(id) { + switch (id) { + case 'implements': + case 'interface': + case 'package': + case 'private': + case 'protected': + case 'public': + case 'static': + case 'let': + return true; - if (_running === self.concurrency || self.paused) { - if (queueTail) { - queueTail.next = current; - queueTail = current; - } else { - queueHead = current; - queueTail = current; - self.saturated(); + default: + return false; } - } else { - _running++; - worker.call(context, current.value, current.worked); } - } - - function unshift(value, done) { - var current = cache.get(); - current.context = context; - current.release = release; - current.value = value; - current.callback = done || noop$1; - if (_running === self.concurrency || self.paused) { - if (queueHead) { - current.next = queueHead; - queueHead = current; - } else { - queueHead = current; - queueTail = current; - self.saturated(); + function isKeywordES5(id, strict) { + // yield should not be treated as keyword under non-strict mode. + if (!strict && id === 'yield') { + return false; } - } else { - _running++; - worker.call(context, current.value, current.worked); - } - } - function release(holder) { - if (holder) { - cache.release(holder); + return isKeywordES6(id, strict); } - var next = queueHead; + function isKeywordES6(id, strict) { + if (strict && isStrictModeReservedWordES6(id)) { + return true; + } - if (next) { - if (!self.paused) { - if (queueTail === queueHead) { - queueTail = null; - } + switch (id.length) { + case 2: + return id === 'if' || id === 'in' || id === 'do'; - queueHead = next.next; - next.next = null; - worker.call(context, next.value, next.worked); + case 3: + return id === 'var' || id === 'for' || id === 'new' || id === 'try'; - if (queueTail === null) { - self.empty(); - } - } else { - _running--; - } - } else if (--_running === 0) { - self.drain(); - } - } + case 4: + return id === 'this' || id === 'else' || id === 'case' || id === 'void' || id === 'with' || id === 'enum'; - function kill() { - queueHead = null; - queueTail = null; - self.drain = noop$1; - } + case 5: + return id === 'while' || id === 'break' || id === 'catch' || id === 'throw' || id === 'const' || id === 'yield' || id === 'class' || id === 'super'; - function killAndDrain() { - queueHead = null; - queueTail = null; - self.drain(); - self.drain = noop$1; - } -} + case 6: + return id === 'return' || id === 'typeof' || id === 'delete' || id === 'switch' || id === 'export' || id === 'import'; -function noop$1() {} + case 7: + return id === 'default' || id === 'finally' || id === 'extends'; -function Task() { - this.value = null; - this.callback = noop$1; - this.next = null; - this.release = noop$1; - this.context = null; - var self = this; + case 8: + return id === 'function' || id === 'continue' || id === 'debugger'; - this.worked = function worked(err, result) { - var callback = self.callback; - self.value = null; - self.callback = noop$1; - callback.call(self.context, err, result); - self.release(self); - }; -} + case 10: + return id === 'instanceof'; -var queue = fastqueue; + default: + return false; + } + } -var common$2 = createCommonjsModule(function (module, exports) { + function isReservedWordES5(id, strict) { + return id === 'null' || id === 'true' || id === 'false' || isKeywordES5(id, strict); + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + function isReservedWordES6(id, strict) { + return id === 'null' || id === 'true' || id === 'false' || isKeywordES6(id, strict); + } - function isFatalError(settings, error) { - if (settings.errorFilter === null) { - return true; + function isRestrictedWord(id) { + return id === 'eval' || id === 'arguments'; } - return !settings.errorFilter(error); - } + function isIdentifierNameES5(id) { + var i, iz, ch; - exports.isFatalError = isFatalError; + if (id.length === 0) { + return false; + } - function isAppliedFilter(filter, value) { - return filter === null || filter(value); - } + ch = id.charCodeAt(0); - exports.isAppliedFilter = isAppliedFilter; + if (!code$1.isIdentifierStartES5(ch)) { + return false; + } - function replacePathSegmentSeparator(filepath, separator) { - return filepath.split(/[\\/]/).join(separator); - } + for (i = 1, iz = id.length; i < iz; ++i) { + ch = id.charCodeAt(i); - exports.replacePathSegmentSeparator = replacePathSegmentSeparator; + if (!code$1.isIdentifierPartES5(ch)) { + return false; + } + } - function joinPathSegments(a, b, separator) { - if (a === '') { - return b; + return true; } - return a + separator + b; - } - - exports.joinPathSegments = joinPathSegments; -}); + function decodeUtf16(lead, trail) { + return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; + } -var reader = createCommonjsModule(function (module, exports) { + function isIdentifierNameES6(id) { + var i, iz, ch, lowCh, check; - Object.defineProperty(exports, "__esModule", { - value: true - }); + if (id.length === 0) { + return false; + } - class Reader { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._root = common$2.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); - } + check = code$1.isIdentifierStartES6; - } + for (i = 0, iz = id.length; i < iz; ++i) { + ch = id.charCodeAt(i); - exports.default = Reader; -}); + if (0xD800 <= ch && ch <= 0xDBFF) { + ++i; -var async$3 = createCommonjsModule(function (module, exports) { + if (i >= iz) { + return false; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + lowCh = id.charCodeAt(i); - class AsyncReader extends reader.default { - constructor(_root, _settings) { - super(_root, _settings); - this._settings = _settings; - this._scandir = out$1.scandir; - this._emitter = new events__default['default'].EventEmitter(); - this._queue = queue(this._worker.bind(this), this._settings.concurrency); - this._isFatalError = false; - this._isDestroyed = false; + if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) { + return false; + } - this._queue.drain = () => { - if (!this._isFatalError) { - this._emitter.emit('end'); + ch = decodeUtf16(ch, lowCh); } - }; - } - read() { - this._isFatalError = false; - this._isDestroyed = false; - setImmediate(() => { - this._pushToQueue(this._root, this._settings.basePath); - }); - return this._emitter; - } + if (!check(ch)) { + return false; + } - destroy() { - if (this._isDestroyed) { - throw new Error('The reader is already destroyed'); + check = code$1.isIdentifierPartES6; } - this._isDestroyed = true; + return true; + } - this._queue.killAndDrain(); + function isIdentifierES5(id, strict) { + return isIdentifierNameES5(id) && !isReservedWordES5(id, strict); } - onEntry(callback) { - this._emitter.on('entry', callback); + function isIdentifierES6(id, strict) { + return isIdentifierNameES6(id) && !isReservedWordES6(id, strict); } - onError(callback) { - this._emitter.once('error', callback); - } + module.exports = { + isKeywordES5: isKeywordES5, + isKeywordES6: isKeywordES6, + isReservedWordES5: isReservedWordES5, + isReservedWordES6: isReservedWordES6, + isRestrictedWord: isRestrictedWord, + isIdentifierNameES5: isIdentifierNameES5, + isIdentifierNameES6: isIdentifierNameES6, + isIdentifierES5: isIdentifierES5, + isIdentifierES6: isIdentifierES6 + }; + })(); + /* vim: set sw=4 ts=4 et tw=80 : */ + +}); + +/* + Copyright (C) 2013 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +var utils$6 = createCommonjsModule(function (module, exports) { + (function () { + + exports.ast = ast; + exports.code = code; + exports.keyword = keyword; + })(); + /* vim: set sw=4 ts=4 et tw=80 : */ + +}); + +const isIdentifierName = utils$6.keyword.isIdentifierNameES5; +const { + getLast: getLast$d, + hasNewline: hasNewline$7, + skipWhitespace, + isNonEmptyArray: isNonEmptyArray$h, + isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$1 +} = util$5; +const { + locStart: locStart$o, + locEnd: locEnd$n, + hasSameLocStart +} = loc$6; +/** + * @typedef {import("./types/estree").Node} Node + * @typedef {import("./types/estree").TemplateLiteral} TemplateLiteral + * @typedef {import("./types/estree").Comment} Comment + * @typedef {import("./types/estree").MemberExpression} MemberExpression + * @typedef {import("./types/estree").OptionalMemberExpression} OptionalMemberExpression + * @typedef {import("./types/estree").CallExpression} CallExpression + * @typedef {import("./types/estree").OptionalCallExpression} OptionalCallExpression + * @typedef {import("./types/estree").Expression} Expression + * @typedef {import("./types/estree").Property} Property + * @typedef {import("./types/estree").ObjectTypeProperty} ObjectTypeProperty + * @typedef {import("./types/estree").TaggedTemplateExpression} TaggedTemplateExpression + * @typedef {import("./types/estree").Literal} Literal + * + * @typedef {import("../common/ast-path")} AstPath + */ +// We match any whitespace except line terminators because +// Flow annotation comments cannot be split across lines. For example: +// +// (this /* +// : any */).foo = 5; +// +// is not picked up by Flow (see https://github.com/facebook/flow/issues/7050), so +// removing the newline would create a type annotation that the user did not intend +// to create. + +const NON_LINE_TERMINATING_WHITE_SPACE = "(?:(?=.)\\s)"; +const FLOW_SHORTHAND_ANNOTATION = new RegExp(`^${NON_LINE_TERMINATING_WHITE_SPACE}*:`); +const FLOW_ANNOTATION = new RegExp(`^${NON_LINE_TERMINATING_WHITE_SPACE}*::`); +/** + * @param {Node} node + * @returns {boolean} + */ + +function hasFlowShorthandAnnotationComment$3(node) { + // https://flow.org/en/docs/types/comments/ + // Syntax example: const r = new (window.Request /*: Class */)(""); + return node.extra && node.extra.parenthesized && isNonEmptyArray$h(node.trailingComments) && isBlockComment$5(node.trailingComments[0]) && FLOW_SHORTHAND_ANNOTATION.test(node.trailingComments[0].value); +} +/** + * @param {Comment[]} comments + * @returns {boolean} + */ - onEnd(callback) { - this._emitter.once('end', callback); - } - _pushToQueue(directory, base) { - const queueItem = { - directory, - base - }; +function hasFlowAnnotationComment$2(comments) { + return comments && isBlockComment$5(comments[0]) && FLOW_ANNOTATION.test(comments[0].value); +} +/** + * @param {Node} node + * @param {(Node) => boolean} fn + * @returns {boolean} + */ - this._queue.push(queueItem, error => { - if (error !== null) { - this._handleError(error); - } - }); - } - _worker(item, done) { - this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { - if (error !== null) { - return done(error, undefined); - } +function hasNode$2(node, fn) { + if (!node || typeof node !== "object") { + return false; + } - for (const entry of entries) { - this._handleEntry(entry, item.base); - } + if (Array.isArray(node)) { + return node.some(value => hasNode$2(value, fn)); + } - done(null, undefined); - }); - } + const result = fn(node); + return typeof result === "boolean" ? result : Object.values(node).some(value => hasNode$2(value, fn)); +} +/** + * @param {Node} node + * @returns {boolean} + */ - _handleError(error) { - if (!common$2.isFatalError(this._settings, error)) { - return; - } - this._isFatalError = true; - this._isDestroyed = true; +function hasNakedLeftSide$3(node) { + return node.type === "AssignmentExpression" || node.type === "BinaryExpression" || node.type === "LogicalExpression" || node.type === "NGPipeExpression" || node.type === "ConditionalExpression" || isCallExpression$d(node) || isMemberExpression$a(node) || node.type === "SequenceExpression" || node.type === "TaggedTemplateExpression" || node.type === "BindExpression" || node.type === "UpdateExpression" && !node.prefix || node.type === "TSAsExpression" || node.type === "TSNonNullExpression"; +} - this._emitter.emit('error', error); - } +function getLeftSide$1(node) { + if (node.expressions) { + return node.expressions[0]; + } - _handleEntry(entry, base) { - if (this._isDestroyed || this._isFatalError) { - return; - } + return node.left || node.test || node.callee || node.object || node.tag || node.argument || node.expression; +} - const fullpath = entry.path; +function getLeftSidePathName$2(path, node) { + if (node.expressions) { + return ["expressions", 0]; + } - if (base !== undefined) { - entry.path = common$2.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); - } + if (node.left) { + return ["left"]; + } - if (common$2.isAppliedFilter(this._settings.entryFilter, entry)) { - this._emitEntry(entry); - } + if (node.test) { + return ["test"]; + } - if (entry.dirent.isDirectory() && common$2.isAppliedFilter(this._settings.deepFilter, entry)) { - this._pushToQueue(fullpath, entry.path); - } - } + if (node.object) { + return ["object"]; + } - _emitEntry(entry) { - this._emitter.emit('entry', entry); - } + if (node.callee) { + return ["callee"]; + } + if (node.tag) { + return ["tag"]; } - exports.default = AsyncReader; -}); + if (node.argument) { + return ["argument"]; + } -var async$4 = createCommonjsModule(function (module, exports) { + if (node.expression) { + return ["expression"]; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + throw new Error("Unexpected node has no left side."); +} +/** + * @param {Comment} comment + * @returns {boolean} + */ - class AsyncProvider { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new async$3.default(this._root, this._settings); - this._storage = new Set(); - } - read(callback) { - this._reader.onError(error => { - callFailureCallback(callback, error); - }); +function isBlockComment$5(comment) { + return comment.type === "Block" || comment.type === "CommentBlock" || // `meriyah` + comment.type === "MultiLine"; +} +/** + * @param {Comment} comment + * @returns {boolean} + */ - this._reader.onEntry(entry => { - this._storage.add(entry); - }); - this._reader.onEnd(() => { - callSuccessCallback(callback, [...this._storage]); - }); +function isLineComment$3(comment) { + return comment.type === "Line" || comment.type === "CommentLine" || // `meriyah` has `SingleLine`, `HashbangComment`, `HTMLOpen`, and `HTMLClose` + comment.type === "SingleLine" || comment.type === "HashbangComment" || comment.type === "HTMLOpen" || comment.type === "HTMLClose"; +} - this._reader.read(); - } +const exportDeclarationTypes = new Set(["ExportDefaultDeclaration", "ExportDefaultSpecifier", "DeclareExportDeclaration", "ExportNamedDeclaration", "ExportAllDeclaration"]); +/** + * @param {Node} node + * @returns {boolean} + */ - } +function isExportDeclaration(node) { + return node && exportDeclarationTypes.has(node.type); +} +/** + * @param {AstPath} path + * @returns {Node | null} + */ - exports.default = AsyncProvider; - function callFailureCallback(callback, error) { - callback(error); - } +function getParentExportDeclaration$2(path) { + const parentNode = path.getParentNode(); - function callSuccessCallback(callback, entries) { - callback(null, entries); + if (path.getName() === "declaration" && isExportDeclaration(parentNode)) { + return parentNode; } -}); - -var stream$2 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - class StreamProvider { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new async$3.default(this._root, this._settings); - this._stream = new stream__default['default'].Readable({ - objectMode: true, - read: () => {}, - destroy: this._reader.destroy.bind(this._reader) - }); - } + return null; +} +/** + * @param {Node} node + * @returns {boolean} + */ - read() { - this._reader.onError(error => { - this._stream.emit('error', error); - }); - this._reader.onEntry(entry => { - this._stream.push(entry); - }); +function isLiteral$3(node) { + return node.type === "BooleanLiteral" || node.type === "DirectiveLiteral" || node.type === "Literal" || node.type === "NullLiteral" || node.type === "NumericLiteral" || node.type === "BigIntLiteral" || node.type === "DecimalLiteral" || node.type === "RegExpLiteral" || node.type === "StringLiteral" || node.type === "TemplateLiteral" || node.type === "TSTypeLiteral" || node.type === "JSXText"; +} +/** + * @param {Node} node + * @returns {boolean} + */ - this._reader.onEnd(() => { - this._stream.push(null); - }); - this._reader.read(); +function isNumericLiteral$5(node) { + return node.type === "NumericLiteral" || node.type === "Literal" && typeof node.value === "number"; +} - return this._stream; - } +function isSignedNumericLiteral$2(node) { + return node.type === "UnaryExpression" && (node.operator === "+" || node.operator === "-") && isNumericLiteral$5(node.argument); +} +/** + * @param {Node} node + * @returns {boolean} + */ - } - exports.default = StreamProvider; -}); +function isStringLiteral$5(node) { + return node.type === "StringLiteral" || node.type === "Literal" && typeof node.value === "string"; +} +/** + * @param {Node} node + * @returns {boolean} + */ -var sync$3 = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports, "__esModule", { - value: true - }); +function isObjectType$2(node) { + return node.type === "ObjectTypeAnnotation" || node.type === "TSTypeLiteral"; +} +/** + * @param {Node} node + * @returns {boolean} + */ - class SyncReader extends reader.default { - constructor() { - super(...arguments); - this._scandir = out$1.scandirSync; - this._storage = new Set(); - this._queue = new Set(); - } - read() { - this._pushToQueue(this._root, this._settings.basePath); +function isFunctionOrArrowExpression$1(node) { + return node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression"; +} +/** + * @param {Node} node + * @returns {boolean} + */ - this._handleQueue(); - return [...this._storage]; - } +function isFunctionOrArrowExpressionWithBody(node) { + return node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression" && node.body.type === "BlockStatement"; +} +/** + * @param {Node} node + * @returns {boolean} + */ - _pushToQueue(directory, base) { - this._queue.add({ - directory, - base - }); - } - _handleQueue() { - for (const item of this._queue.values()) { - this._handleDirectory(item.directory, item.base); - } - } +function isTemplateLiteral(node) { + return node.type === "TemplateLiteral"; +} +/** + * Note: `inject` is used in AngularJS 1.x, `async` in Angular 2+ + * example: https://docs.angularjs.org/guide/unit-testing#using-beforeall- + * + * @param {CallExpression} node + * @returns {boolean} + */ - _handleDirectory(directory, base) { - try { - const entries = this._scandir(directory, this._settings.fsScandirSettings); - for (const entry of entries) { - this._handleEntry(entry, base); - } - } catch (error) { - this._handleError(error); - } - } +function isAngularTestWrapper(node) { + return isCallExpression$d(node) && node.callee.type === "Identifier" && (node.callee.name === "async" || node.callee.name === "inject" || node.callee.name === "fakeAsync"); +} +/** + * @param {Node} node + * @returns {boolean} + */ - _handleError(error) { - if (!common$2.isFatalError(this._settings, error)) { - return; - } - throw error; - } +function isJsxNode$7(node) { + return node.type === "JSXElement" || node.type === "JSXFragment"; +} - _handleEntry(entry, base) { - const fullpath = entry.path; +function isTheOnlyJsxElementInMarkdown$2(options, path) { + if (options.parentParser !== "markdown" && options.parentParser !== "mdx") { + return false; + } - if (base !== undefined) { - entry.path = common$2.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); - } + const node = path.getNode(); - if (common$2.isAppliedFilter(this._settings.entryFilter, entry)) { - this._pushToStorage(entry); - } + if (!node.expression || !isJsxNode$7(node.expression)) { + return false; + } - if (entry.dirent.isDirectory() && common$2.isAppliedFilter(this._settings.deepFilter, entry)) { - this._pushToQueue(fullpath, entry.path); - } - } + const parent = path.getParentNode(); + return parent.type === "Program" && parent.body.length === 1; +} - _pushToStorage(entry) { - this._storage.add(entry); - } +function isGetterOrSetter$1(node) { + return node.kind === "get" || node.kind === "set"; +} // TODO: This is a bad hack and we need a better way to distinguish between +// arrow functions and otherwise - } - exports.default = SyncReader; -}); +function isFunctionNotation$1(node) { + return isGetterOrSetter$1(node) || hasSameLocStart(node, node.value); +} // Hack to differentiate between the following two which have the same ast +// type T = { method: () => void }; +// type T = { method(): void }; -var sync$4 = createCommonjsModule(function (module, exports) { +/** + * @param {Node} node + * @returns {boolean} + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - class SyncProvider { - constructor(_root, _settings) { - this._root = _root; - this._settings = _settings; - this._reader = new sync$3.default(this._root, this._settings); - } +function isObjectTypePropertyAFunction$2(node) { + return (node.type === "ObjectTypeProperty" || node.type === "ObjectTypeInternalSlot") && node.value.type === "FunctionTypeAnnotation" && !node.static && !isFunctionNotation$1(node); +} // Hack to differentiate between the following two which have the same ast +// declare function f(a): void; +// var f: (a) => void; - read() { - return this._reader.read(); - } - } +function isTypeAnnotationAFunction$1(node) { + return (node.type === "TypeAnnotation" || node.type === "TSTypeAnnotation") && node.typeAnnotation.type === "FunctionTypeAnnotation" && !node.static && !hasSameLocStart(node, node.typeAnnotation); +} - exports.default = SyncProvider; -}); +const binaryishNodeTypes = new Set(["BinaryExpression", "LogicalExpression", "NGPipeExpression"]); +/** + * @param {Node} node + * @returns {boolean} + */ -var settings$2 = createCommonjsModule(function (module, exports) { +function isBinaryish$5(node) { + return binaryishNodeTypes.has(node.type); +} +/** + * @param {Node} node + * @returns {boolean} + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - class Settings { - constructor(_options = {}) { - this._options = _options; - this.basePath = this._getValue(this._options.basePath, undefined); - this.concurrency = this._getValue(this._options.concurrency, Infinity); - this.deepFilter = this._getValue(this._options.deepFilter, null); - this.entryFilter = this._getValue(this._options.entryFilter, null); - this.errorFilter = this._getValue(this._options.errorFilter, null); - this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path__default['default'].sep); - this.fsScandirSettings = new out$1.Settings({ - followSymbolicLinks: this._options.followSymbolicLinks, - fs: this._options.fs, - pathSegmentSeparator: this._options.pathSegmentSeparator, - stats: this._options.stats, - throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink - }); - } +function isMemberish$2(node) { + return isMemberExpression$a(node) || node.type === "BindExpression" && Boolean(node.object); +} - _getValue(option, value) { - return option === undefined ? value : option; - } +const simpleTypeAnnotations = new Set([// `any` +"AnyTypeAnnotation", "TSAnyKeyword", // `null` +"NullLiteralTypeAnnotation", "TSNullKeyword", // `this` +"ThisTypeAnnotation", "TSThisType", // `number` +"NumberTypeAnnotation", "TSNumberKeyword", // `void` +"VoidTypeAnnotation", "TSVoidKeyword", // `boolean` +"BooleanTypeAnnotation", "TSBooleanKeyword", // `bigint` +"BigIntTypeAnnotation", "TSBigIntKeyword", // `symbol` +"SymbolTypeAnnotation", "TSSymbolKeyword", // `string` +"StringTypeAnnotation", "TSStringKeyword", // literals +"BooleanLiteralTypeAnnotation", "StringLiteralTypeAnnotation", "BigIntLiteralTypeAnnotation", "NumberLiteralTypeAnnotation", "TSLiteralType", "TSTemplateLiteralType", // flow only, `empty`, `mixed` +"EmptyTypeAnnotation", "MixedTypeAnnotation", // typescript only, `never`, `object`, `undefined`, `unknown` +"TSNeverKeyword", "TSObjectKeyword", "TSUndefinedKeyword", "TSUnknownKeyword"]); +/** + * @param {Node} node + * @returns {boolean} + */ +function isSimpleType$2(node) { + if (!node) { + return false; } - exports.default = Settings; -}); + if ((node.type === "GenericTypeAnnotation" || node.type === "TSTypeReference") && !node.typeParameters) { + return true; + } -var out$2 = createCommonjsModule(function (module, exports) { + if (simpleTypeAnnotations.has(node.type)) { + return true; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.Settings = settings$2.default; + return false; +} - function walk(directory, optionsOrSettingsOrCallback, callback) { - if (typeof optionsOrSettingsOrCallback === 'function') { - return new async$4.default(directory, getSettings()).read(optionsOrSettingsOrCallback); - } +const unitTestRe = /^(skip|[fx]?(it|describe|test))$/; +/** + * @param {{callee: MemberExpression | OptionalMemberExpression}} node + * @returns {boolean} + */ - new async$4.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); - } +function isSkipOrOnlyBlock(node) { + return isMemberExpression$a(node.callee) && node.callee.object.type === "Identifier" && node.callee.property.type === "Identifier" && unitTestRe.test(node.callee.object.name) && (node.callee.property.name === "only" || node.callee.property.name === "skip"); +} +/** + * @param {CallExpression} node + * @returns {boolean} + */ - exports.walk = walk; - function walkSync(directory, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - const provider = new sync$4.default(directory, settings); - return provider.read(); - } +function isUnitTestSetUp(node) { + const unitTestSetUpRe = /^(before|after)(Each|All)$/; + return node.callee.type === "Identifier" && unitTestSetUpRe.test(node.callee.name) && node.arguments.length === 1; +} // eg; `describe("some string", (done) => {})` - exports.walkSync = walkSync; - function walkStream(directory, optionsOrSettings) { - const settings = getSettings(optionsOrSettings); - const provider = new stream$2.default(directory, settings); - return provider.read(); +function isTestCall$3(node, parent) { + if (node.type !== "CallExpression") { + return false; } - exports.walkStream = walkStream; + if (node.arguments.length === 1) { + if (isAngularTestWrapper(node) && parent && isTestCall$3(parent)) { + return isFunctionOrArrowExpression$1(node.arguments[0]); + } - function getSettings(settingsOrOptions = {}) { - if (settingsOrOptions instanceof settings$2.default) { - return settingsOrOptions; + if (isUnitTestSetUp(node)) { + return isAngularTestWrapper(node.arguments[0]); } + } else if (node.arguments.length === 2 || node.arguments.length === 3) { + if ((node.callee.type === "Identifier" && unitTestRe.test(node.callee.name) || isSkipOrOnlyBlock(node)) && (isTemplateLiteral(node.arguments[0]) || isStringLiteral$5(node.arguments[0]))) { + // it("name", () => { ... }, 2500) + if (node.arguments[2] && !isNumericLiteral$5(node.arguments[2])) { + return false; + } - return new settings$2.default(settingsOrOptions); + return (node.arguments.length === 2 ? isFunctionOrArrowExpression$1(node.arguments[1]) : isFunctionOrArrowExpressionWithBody(node.arguments[1]) && getFunctionParameters$6(node.arguments[1]).length <= 1) || isAngularTestWrapper(node.arguments[1]); + } } -}); -var reader$1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); + return false; +} +/** + * @param {Node} node + * @returns {boolean} + */ - class Reader { - constructor(_settings) { - this._settings = _settings; - this._fsStatSettings = new out.Settings({ - followSymbolicLink: this._settings.followSymbolicLinks, - fs: this._settings.fs, - throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks - }); - } - _getFullEntryPath(filepath) { - return path__default['default'].resolve(this._settings.cwd, filepath); - } +function isCallExpression$d(node) { + return node && (node.type === "CallExpression" || node.type === "OptionalCallExpression"); +} +/** + * @param {Node} node + * @returns {boolean} + */ - _makeEntry(stats, pattern) { - const entry = { - name: pattern, - path: pattern, - dirent: utils$3.fs.createDirentFromStats(pattern, stats) - }; - if (this._settings.stats) { - entry.stats = stats; - } +function isMemberExpression$a(node) { + return node && (node.type === "MemberExpression" || node.type === "OptionalMemberExpression"); +} +/** + * + * @param {any} node + * @returns {boolean} + */ - return entry; - } - _isFatalError(error) { - return !utils$3.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; - } +function isSimpleTemplateLiteral$1(node) { + let expressionsKey = "expressions"; + if (node.type === "TSTemplateLiteralType") { + expressionsKey = "types"; } - exports.default = Reader; -}); + const expressions = node[expressionsKey]; -var stream$3 = createCommonjsModule(function (module, exports) { + if (expressions.length === 0) { + return false; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + return expressions.every(expr => { + // Disallow comments since printDocToString can't print them here + if (hasComment$j(expr)) { + return false; + } // Allow `x` and `this` - class ReaderStream extends reader$1.default { - constructor() { - super(...arguments); - this._walkStream = out$2.walkStream; - this._stat = out.stat; - } - dynamic(root, options) { - return this._walkStream(root, options); - } + if (expr.type === "Identifier" || expr.type === "ThisExpression") { + return true; + } // Allow `a.b.c`, `a.b[c]`, and `this.x.y` - static(patterns, options) { - const filepaths = patterns.map(this._getFullEntryPath, this); - const stream = new stream__default['default'].PassThrough({ - objectMode: true - }); - stream._write = (index, _enc, done) => { - return this._getEntry(filepaths[index], patterns[index], options).then(entry => { - if (entry !== null && options.entryFilter(entry)) { - stream.push(entry); - } + if (isMemberExpression$a(expr)) { + let head = expr; - if (index === filepaths.length - 1) { - stream.end(); - } + while (isMemberExpression$a(head)) { + if (head.property.type !== "Identifier" && head.property.type !== "Literal" && head.property.type !== "StringLiteral" && head.property.type !== "NumericLiteral") { + return false; + } - done(); - }).catch(done); - }; + head = head.object; - for (let i = 0; i < filepaths.length; i++) { - stream.write(i); + if (hasComment$j(head)) { + return false; + } } - return stream; - } - - _getEntry(filepath, pattern, options) { - return this._getStat(filepath).then(stats => this._makeEntry(stats, pattern)).catch(error => { - if (options.errorFilter(error)) { - return null; - } + if (head.type === "Identifier" || head.type === "ThisExpression") { + return true; + } - throw error; - }); + return false; } - _getStat(filepath) { - return new Promise((resolve, reject) => { - this._stat(filepath, this._fsStatSettings, (error, stats) => { - return error === null ? resolve(stats) : reject(error); - }); - }); - } + return false; + }); +} +/** + * @param {string} tokenNode + * @param {string} keyword + * @returns {string} + */ - } - exports.default = ReaderStream; -}); +function getTypeScriptMappedTypeModifier$1(tokenNode, keyword) { + if (tokenNode === "+") { + return "+" + keyword; + } -var matcher = createCommonjsModule(function (module, exports) { + if (tokenNode === "-") { + return "-" + keyword; + } - Object.defineProperty(exports, "__esModule", { - value: true - }); + return keyword; +} +/** + * @param {string} text + * @param {Node} typeAnnotation + * @returns {boolean} + */ - class Matcher { - constructor(_patterns, _settings, _micromatchOptions) { - this._patterns = _patterns; - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this._storage = []; - this._fillStorage(); - } +function isFlowAnnotationComment$2(text, typeAnnotation) { + const start = locStart$o(typeAnnotation); + const end = skipWhitespace(text, locEnd$n(typeAnnotation)); + return end !== false && text.slice(start, start + 2) === "/*" && text.slice(end, end + 2) === "*/"; +} +/** + * @param {string} text + * @param {Node} node + * @returns {boolean} + */ - _fillStorage() { - /** - * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). - * So, before expand patterns with brace expansion into separated patterns. - */ - const patterns = utils$3.pattern.expandPatternsWithBraceExpansion(this._patterns); - for (const pattern of patterns) { - const segments = this._getPatternSegments(pattern); +function hasLeadingOwnLineComment$4(text, node) { + if (isJsxNode$7(node)) { + return hasNodeIgnoreComment$1(node); + } - const sections = this._splitSegmentsIntoSections(segments); + return hasComment$j(node, CommentCheckFlags$f.Leading, comment => hasNewline$7(text, locEnd$n(comment))); +} // Note: Quoting/unquoting numbers in TypeScript is not safe. +// +// let a = { 1: 1, 2: 2 } +// let b = { '1': 1, '2': 2 } +// +// declare let aa: keyof typeof a; +// declare let bb: keyof typeof b; +// +// aa = bb; +// ^^ +// Type '"1" | "2"' is not assignable to type '1 | 2'. +// Type '"1"' is not assignable to type '1 | 2'.(2322) +// +// And in Flow, you get: +// +// const x = { +// 0: 1 +// ^ Non-string literal property keys not supported. [unsupported-syntax] +// } +// +// Angular does not support unquoted numbers in expressions. +// +// So we play it safe and only unquote numbers for the JavaScript parsers. +// (Vue supports unquoted numbers in expressions, but let’s keep it simple.) +// +// Identifiers can be unquoted in more circumstances, though. - this._storage.push({ - complete: sections.length <= 1, - pattern, - segments, - sections - }); - } - } - _getPatternSegments(pattern) { - const parts = utils$3.pattern.getPatternParts(pattern, this._micromatchOptions); - return parts.map(part => { - const dynamic = utils$3.pattern.isDynamicPattern(part, this._settings); +function isStringPropSafeToUnquote$1(node, options) { + return options.parser !== "json" && isStringLiteral$5(node.key) && rawText$5(node.key).slice(1, -1) === node.key.value && (isIdentifierName(node.key.value) && // With `--strictPropertyInitialization`, TS treats properties with quoted names differently than unquoted ones. + // See https://github.com/microsoft/TypeScript/pull/20075 + !((options.parser === "typescript" || options.parser === "babel-ts") && node.type === "ClassProperty") || isSimpleNumber$1(node.key.value) && String(Number(node.key.value)) === node.key.value && (options.parser === "babel" || options.parser === "espree" || options.parser === "meriyah" || options.parser === "__babel_estree")); +} // Matches “simple” numbers like `123` and `2.5` but not `1_000`, `1e+100` or `0b10`. - if (!dynamic) { - return { - dynamic: false, - pattern: part - }; - } - return { - dynamic: true, - pattern: part, - patternRe: utils$3.pattern.makeRe(part, this._micromatchOptions) - }; - }); - } +function isSimpleNumber$1(numberString) { + return /^(\d+|\d+\.\d+)$/.test(numberString); +} +/** + * @param {Node} node + * @param {Node} parentNode + * @returns {boolean} + */ - _splitSegmentsIntoSections(segments) { - return utils$3.array.splitWhen(segments, segment => segment.dynamic && utils$3.pattern.hasGlobStar(segment.pattern)); - } - } +function isJestEachTemplateLiteral$1(node, parentNode) { + /** + * describe.each`table`(name, fn) + * describe.only.each`table`(name, fn) + * describe.skip.each`table`(name, fn) + * test.each`table`(name, fn) + * test.only.each`table`(name, fn) + * test.skip.each`table`(name, fn) + * + * Ref: https://github.com/facebook/jest/pull/6102 + */ + const jestEachTriggerRegex = /^[fx]?(describe|it|test)$/; + return parentNode.type === "TaggedTemplateExpression" && parentNode.quasi === node && parentNode.tag.type === "MemberExpression" && parentNode.tag.property.type === "Identifier" && parentNode.tag.property.name === "each" && (parentNode.tag.object.type === "Identifier" && jestEachTriggerRegex.test(parentNode.tag.object.name) || parentNode.tag.object.type === "MemberExpression" && parentNode.tag.object.property.type === "Identifier" && (parentNode.tag.object.property.name === "only" || parentNode.tag.object.property.name === "skip") && parentNode.tag.object.object.type === "Identifier" && jestEachTriggerRegex.test(parentNode.tag.object.object.name)); +} +/** + * @param {TemplateLiteral} template + * @returns {boolean} + */ - exports.default = Matcher; -}); -var partial = createCommonjsModule(function (module, exports) { +function templateLiteralHasNewLines(template) { + return template.quasis.some(quasi => quasi.value.raw.includes("\n")); +} +/** + * @param {TemplateLiteral | TaggedTemplateExpression} node + * @param {string} text + * @returns {boolean} + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - class PartialMatcher extends matcher.default { - match(filepath) { - const parts = filepath.split('/'); - const levels = parts.length; +function isTemplateOnItsOwnLine$2(node, text) { + return (node.type === "TemplateLiteral" && templateLiteralHasNewLines(node) || node.type === "TaggedTemplateExpression" && templateLiteralHasNewLines(node.quasi)) && !hasNewline$7(text, locStart$o(node), { + backwards: true + }); +} +/** + * @param {Node} node + * @returns {boolean} + */ - const patterns = this._storage.filter(info => !info.complete || info.segments.length > levels); - for (const pattern of patterns) { - const section = pattern.sections[0]; - /** - * In this case, the pattern has a globstar and we must read all directories unconditionally, - * but only if the level has reached the end of the first group. - * - * fixtures/{a,b}/** - * ^ true/false ^ always true - */ +function needsHardlineAfterDanglingComment$2(node) { + if (!hasComment$j(node)) { + return false; + } - if (!pattern.complete && levels > section.length) { - return true; - } + const lastDanglingComment = getLast$d(getComments$4(node, CommentCheckFlags$f.Dangling)); + return lastDanglingComment && !isBlockComment$5(lastDanglingComment); +} // Logic to check for args with multiple anonymous functions. For instance, +// the following call should be split on multiple lines for readability: +// source.pipe(map((x) => x + x), filter((x) => x % 2 === 0)) - const match = parts.every((part, index) => { - const segment = pattern.segments[index]; - if (segment.dynamic && segment.patternRe.test(part)) { - return true; - } +function isFunctionCompositionArgs$1(args) { + if (args.length <= 1) { + return false; + } - if (!segment.dynamic && segment.pattern === part) { - return true; - } + let count = 0; - return false; - }); + for (const arg of args) { + if (isFunctionOrArrowExpression$1(arg)) { + count += 1; - if (match) { + if (count > 1) { + return true; + } + } else if (isCallExpression$d(arg)) { + for (const childArg of arg.arguments) { + if (isFunctionOrArrowExpression$1(childArg)) { return true; } } - - return false; } - } - exports.default = PartialMatcher; -}); + return false; +} // Logic to determine if a call is a “long curried function call”. +// See https://github.com/prettier/prettier/issues/1420. +// +// `connect(a, b, c)(d)` +// In the above call expression, the second call is the parent node and the +// first call is the current node. -var deep = createCommonjsModule(function (module, exports) { +/** + * @param {AstPath} path + * @returns {boolean} + */ - Object.defineProperty(exports, "__esModule", { - value: true - }); - class DeepFilter { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - } +function isLongCurriedCallExpression$2(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + return isCallExpression$d(node) && isCallExpression$d(parent) && parent.callee === node && node.arguments.length > parent.arguments.length && parent.arguments.length > 0; +} +/** + * @param {any} node + * @param {number} depth + * @returns {boolean} + */ - getFilter(basePath, positive, negative) { - const matcher = this._getMatcher(positive); - const negativeRe = this._getNegativePatternsRe(negative); +function isSimpleCallArgument$1(node, depth) { + if (depth >= 2) { + return false; + } - return entry => this._filter(basePath, entry, matcher, negativeRe); - } + const isChildSimple = child => isSimpleCallArgument$1(child, depth + 1); - _getMatcher(patterns) { - return new partial.default(patterns, this._settings, this._micromatchOptions); - } + const regexpPattern = node.type === "Literal" && "regex" in node && node.regex.pattern || node.type === "RegExpLiteral" && node.pattern; - _getNegativePatternsRe(patterns) { - const affectDepthOfReadingPatterns = patterns.filter(utils$3.pattern.isAffectDepthOfReadingPattern); - return utils$3.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); - } + if (regexpPattern && regexpPattern.length > 5) { + return false; + } - _filter(basePath, entry, matcher, negativeRe) { - if (this._isSkippedByDeep(basePath, entry.path)) { - return false; - } + if (node.type === "Literal" || node.type === "BigIntLiteral" || node.type === "DecimalLiteral" || node.type === "BooleanLiteral" || node.type === "NullLiteral" || node.type === "NumericLiteral" || node.type === "RegExpLiteral" || node.type === "StringLiteral" || node.type === "Identifier" || node.type === "ThisExpression" || node.type === "Super" || node.type === "PrivateName" || node.type === "PrivateIdentifier" || node.type === "ArgumentPlaceholder" || node.type === "Import") { + return true; + } - if (this._isSkippedSymbolicLink(entry)) { - return false; - } + if (node.type === "TemplateLiteral") { + return node.quasis.every(element => !element.value.raw.includes("\n")) && node.expressions.every(isChildSimple); + } - const filepath = utils$3.path.removeLeadingDotSegment(entry.path); + if (node.type === "ObjectExpression") { + return node.properties.every(p => !p.computed && (p.shorthand || p.value && isChildSimple(p.value))); + } - if (this._isSkippedByPositivePatterns(filepath, matcher)) { - return false; - } + if (node.type === "ArrayExpression") { + return node.elements.every(x => x === null || isChildSimple(x)); + } - return this._isSkippedByNegativePatterns(filepath, negativeRe); - } + if (isCallLikeExpression$2(node)) { + return (node.type === "ImportExpression" || isSimpleCallArgument$1(node.callee, depth)) && getCallArguments$5(node).every(isChildSimple); + } - _isSkippedByDeep(basePath, entryPath) { - /** - * Avoid unnecessary depth calculations when it doesn't matter. - */ - if (this._settings.deep === Infinity) { - return false; - } + if (isMemberExpression$a(node)) { + return isSimpleCallArgument$1(node.object, depth) && isSimpleCallArgument$1(node.property, depth); + } - return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; - } + if (node.type === "UnaryExpression" && (node.operator === "!" || node.operator === "-")) { + return isSimpleCallArgument$1(node.argument, depth); + } - _getEntryLevel(basePath, entryPath) { - const entryPathDepth = entryPath.split('/').length; + if (node.type === "TSNonNullExpression") { + return isSimpleCallArgument$1(node.expression, depth); + } - if (basePath === '') { - return entryPathDepth; - } + return false; +} - const basePathDepth = basePath.split('/').length; - return entryPathDepth - basePathDepth; - } +function rawText$5(node) { + return node.extra ? node.extra.raw : node.raw; +} - _isSkippedSymbolicLink(entry) { - return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); - } +function identity$1(x) { + return x; +} - _isSkippedByPositivePatterns(entryPath, matcher) { - return !this._settings.baseNameMatch && !matcher.match(entryPath); - } +function isTSXFile$1(options) { + return options.filepath && /\.tsx$/i.test(options.filepath); +} +/** + * @param {any} options + * @param {("es5" | "all")} [level] + * @returns {boolean} + */ - _isSkippedByNegativePatterns(entryPath, patternsRe) { - return !utils$3.pattern.matchAny(entryPath, patternsRe); - } - } +function shouldPrintComma$b(options, level = "es5") { + return options.trailingComma === "es5" && level === "es5" || options.trailingComma === "all" && (level === "all" || level === "es5"); +} +/** + * Tests if an expression starts with `{`, or (if forbidFunctionClassAndDoExpr + * holds) `function`, `class`, or `do {}`. Will be overzealous if there's + * already necessary grouping parentheses. + * + * @param {Node} node + * @param {boolean} forbidFunctionClassAndDoExpr + * @returns {boolean} + */ - exports.default = DeepFilter; -}); -var entry = createCommonjsModule(function (module, exports) { +function startsWithNoLookaheadToken$2(node, forbidFunctionClassAndDoExpr) { + node = getLeftMost(node); - Object.defineProperty(exports, "__esModule", { - value: true - }); + switch (node.type) { + case "FunctionExpression": + case "ClassExpression": + case "DoExpression": + return forbidFunctionClassAndDoExpr; - class EntryFilter { - constructor(_settings, _micromatchOptions) { - this._settings = _settings; - this._micromatchOptions = _micromatchOptions; - this.index = new Map(); - } + case "ObjectExpression": + return true; - getFilter(positive, negative) { - const positiveRe = utils$3.pattern.convertPatternsToRe(positive, this._micromatchOptions); - const negativeRe = utils$3.pattern.convertPatternsToRe(negative, this._micromatchOptions); - return entry => this._filter(entry, positiveRe, negativeRe); - } + case "MemberExpression": + case "OptionalMemberExpression": + return startsWithNoLookaheadToken$2(node.object, forbidFunctionClassAndDoExpr); - _filter(entry, positiveRe, negativeRe) { - if (this._settings.unique && this._isDuplicateEntry(entry)) { + case "TaggedTemplateExpression": + if (node.tag.type === "FunctionExpression") { + // IIFEs are always already parenthesized return false; } - if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { - return false; - } + return startsWithNoLookaheadToken$2(node.tag, forbidFunctionClassAndDoExpr); - if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + case "CallExpression": + case "OptionalCallExpression": + if (node.callee.type === "FunctionExpression") { + // IIFEs are always already parenthesized return false; } - const filepath = this._settings.baseNameMatch ? entry.name : entry.path; - const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); + return startsWithNoLookaheadToken$2(node.callee, forbidFunctionClassAndDoExpr); - if (this._settings.unique && isMatched) { - this._createIndexRecord(entry); - } + case "ConditionalExpression": + return startsWithNoLookaheadToken$2(node.test, forbidFunctionClassAndDoExpr); - return isMatched; - } + case "UpdateExpression": + return !node.prefix && startsWithNoLookaheadToken$2(node.argument, forbidFunctionClassAndDoExpr); - _isDuplicateEntry(entry) { - return this.index.has(entry.path); - } + case "BindExpression": + return node.object && startsWithNoLookaheadToken$2(node.object, forbidFunctionClassAndDoExpr); - _createIndexRecord(entry) { - this.index.set(entry.path, undefined); - } + case "SequenceExpression": + return startsWithNoLookaheadToken$2(node.expressions[0], forbidFunctionClassAndDoExpr); - _onlyFileFilter(entry) { - return this._settings.onlyFiles && !entry.dirent.isFile(); - } + case "TSAsExpression": + case "TSNonNullExpression": + return startsWithNoLookaheadToken$2(node.expression, forbidFunctionClassAndDoExpr); - _onlyDirectoryFilter(entry) { - return this._settings.onlyDirectories && !entry.dirent.isDirectory(); - } + default: + return false; + } +} - _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { - if (!this._settings.absolute) { - return false; - } +const equalityOperators = { + "==": true, + "!=": true, + "===": true, + "!==": true +}; +const multiplicativeOperators = { + "*": true, + "/": true, + "%": true +}; +const bitshiftOperators = { + ">>": true, + ">>>": true, + "<<": true +}; - const fullpath = utils$3.path.makeAbsolute(this._settings.cwd, entryPath); - return utils$3.pattern.matchAny(fullpath, patternsRe); - } +function shouldFlatten$2(parentOp, nodeOp) { + if (getPrecedence$1(nodeOp) !== getPrecedence$1(parentOp)) { + return false; + } // ** is right-associative + // x ** y ** z --> x ** (y ** z) - _isMatchToPatterns(entryPath, patternsRe) { - const filepath = utils$3.path.removeLeadingDotSegment(entryPath); - return utils$3.pattern.matchAny(filepath, patternsRe); - } - } + if (parentOp === "**") { + return false; + } // x == y == z --> (x == y) == z - exports.default = EntryFilter; -}); -var error = createCommonjsModule(function (module, exports) { + if (equalityOperators[parentOp] && equalityOperators[nodeOp]) { + return false; + } // x * y % z --> (x * y) % z - Object.defineProperty(exports, "__esModule", { - value: true - }); - class ErrorFilter { - constructor(_settings) { - this._settings = _settings; - } + if (nodeOp === "%" && multiplicativeOperators[parentOp] || parentOp === "%" && multiplicativeOperators[nodeOp]) { + return false; + } // x * y / z --> (x * y) / z + // x / y * z --> (x / y) * z - getFilter() { - return error => this._isNonFatalError(error); - } - _isNonFatalError(error) { - return utils$3.errno.isEnoentCodeError(error) || this._settings.suppressErrors; - } + if (nodeOp !== parentOp && multiplicativeOperators[nodeOp] && multiplicativeOperators[parentOp]) { + return false; + } // x << y << z --> (x << y) << z + + if (bitshiftOperators[parentOp] && bitshiftOperators[nodeOp]) { + return false; } - exports.default = ErrorFilter; -}); + return true; +} -var entry$1 = createCommonjsModule(function (module, exports) { +const PRECEDENCE = {}; - Object.defineProperty(exports, "__esModule", { - value: true - }); +for (const [i, tier] of [["|>"], ["??"], ["||"], ["&&"], ["|"], ["^"], ["&"], ["==", "===", "!=", "!=="], ["<", ">", "<=", ">=", "in", "instanceof"], [">>", "<<", ">>>"], ["+", "-"], ["*", "/", "%"], ["**"]].entries()) { + for (const op of tier) { + PRECEDENCE[op] = i; + } +} - class EntryTransformer { - constructor(_settings) { - this._settings = _settings; - } +function getPrecedence$1(op) { + return PRECEDENCE[op]; +} - getTransformer() { - return entry => this._transform(entry); - } +function getLeftMost(node) { + while (node.left) { + node = node.left; + } - _transform(entry) { - let filepath = entry.path; + return node; +} - if (this._settings.absolute) { - filepath = utils$3.path.makeAbsolute(this._settings.cwd, filepath); - filepath = utils$3.path.unixify(filepath); - } +function isBitwiseOperator$1(operator) { + return Boolean(bitshiftOperators[operator]) || operator === "|" || operator === "^" || operator === "&"; +} - if (this._settings.markDirectories && entry.dirent.isDirectory()) { - filepath += '/'; - } +function hasRestParameter$1(node) { + if (node.rest) { + return true; + } - if (!this._settings.objectMode) { - return filepath; - } + const parameters = getFunctionParameters$6(node); + return parameters.length > 0 && getLast$d(parameters).type === "RestElement"; +} - return Object.assign(Object.assign({}, entry), { - path: filepath - }); - } +const functionParametersCache = new WeakMap(); +function getFunctionParameters$6(node) { + if (functionParametersCache.has(node)) { + return functionParametersCache.get(node); } - exports.default = EntryTransformer; -}); + const parameters = []; -var provider = createCommonjsModule(function (module, exports) { + if (node.this) { + parameters.push(node.this); + } // `params` vs `parameters` - see https://github.com/babel/babel/issues/9231 - Object.defineProperty(exports, "__esModule", { - value: true - }); - class Provider { - constructor(_settings) { - this._settings = _settings; - this.errorFilter = new error.default(this._settings); - this.entryFilter = new entry.default(this._settings, this._getMicromatchOptions()); - this.deepFilter = new deep.default(this._settings, this._getMicromatchOptions()); - this.entryTransformer = new entry$1.default(this._settings); - } + if (Array.isArray(node.parameters)) { + parameters.push(...node.parameters); + } else if (Array.isArray(node.params)) { + parameters.push(...node.params); + } - _getRootDirectory(task) { - return path__default['default'].resolve(this._settings.cwd, task.base); - } + if (node.rest) { + parameters.push(node.rest); + } - _getReaderOptions(task) { - const basePath = task.base === '.' ? '' : task.base; - return { - basePath, - pathSegmentSeparator: '/', - concurrency: this._settings.concurrency, - deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), - entryFilter: this.entryFilter.getFilter(task.positive, task.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() - }; - } + functionParametersCache.set(node, parameters); + return parameters; +} - _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: true, - strictSlashes: false - }; - } +function iterateFunctionParametersPath$1(path, iteratee) { + const node = path.getValue(); + let index = 0; + const callback = childPath => iteratee(childPath, index++); + + if (node.this) { + path.call(callback, "this"); } - exports.default = Provider; -}); + if (Array.isArray(node.parameters)) { + path.each(callback, "parameters"); + } else if (Array.isArray(node.params)) { + path.each(callback, "params"); + } -var async$5 = createCommonjsModule(function (module, exports) { + if (node.rest) { + path.call(callback, "rest"); + } +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +const callArgumentsCache = new WeakMap(); - class ProviderAsync extends provider.default { - constructor() { - super(...arguments); - this._reader = new stream$3.default(this._settings); - } +function getCallArguments$5(node) { + if (callArgumentsCache.has(node)) { + return callArgumentsCache.get(node); + } - read(task) { - const root = this._getRootDirectory(task); + let args = node.arguments; - const options = this._getReaderOptions(task); + if (node.type === "ImportExpression") { + args = [node.source]; - const entries = []; - return new Promise((resolve, reject) => { - const stream = this.api(root, task, options); - stream.once('error', reject); - stream.on('data', entry => entries.push(options.transform(entry))); - stream.once('end', () => resolve(entries)); - }); + if (node.attributes) { + args.push(node.attributes); } + } - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } + callArgumentsCache.set(node, args); + return args; +} - return this._reader.static(task.patterns, options); - } +function iterateCallArgumentsPath$2(path, iteratee) { + const node = path.getValue(); + + if (node.type === "ImportExpression") { + path.call(sourcePath => iteratee(sourcePath, 0), "source"); + if (node.attributes) { + path.call(sourcePath => iteratee(sourcePath, 1), "attributes"); + } + } else { + path.each(iteratee, "arguments"); } +} - exports.default = ProviderAsync; -}); +function isPrettierIgnoreComment$1(comment) { + return comment.value.trim() === "prettier-ignore" && !comment.unignore; +} -var stream$4 = createCommonjsModule(function (module, exports) { +function hasNodeIgnoreComment$1(node) { + return node && (node.prettierIgnore || hasComment$j(node, CommentCheckFlags$f.PrettierIgnore)); +} - Object.defineProperty(exports, "__esModule", { - value: true - }); +function hasIgnoreComment$2(path) { + const node = path.getValue(); + return hasNodeIgnoreComment$1(node); +} - class ProviderStream extends provider.default { - constructor() { - super(...arguments); - this._reader = new stream$3.default(this._settings); - } +const CommentCheckFlags$f = { + /** Check comment is a leading comment */ + Leading: 1 << 1, - read(task) { - const root = this._getRootDirectory(task); + /** Check comment is a trailing comment */ + Trailing: 1 << 2, - const options = this._getReaderOptions(task); + /** Check comment is a dangling comment */ + Dangling: 1 << 3, - const source = this.api(root, task, options); - const destination = new stream__default['default'].Readable({ - objectMode: true, - read: () => {} - }); - source.once('error', error => destination.emit('error', error)).on('data', entry => destination.emit('data', options.transform(entry))).once('end', () => destination.emit('end')); - destination.once('close', () => source.destroy()); - return destination; - } + /** Check comment is a block comment */ + Block: 1 << 4, - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); - } + /** Check comment is a line comment */ + Line: 1 << 5, - return this._reader.static(task.patterns, options); - } + /** Check comment is a `prettier-ignore` comment */ + PrettierIgnore: 1 << 6, + + /** Check comment is the first attached comment */ + First: 1 << 7, + + /** Check comment is the last attached comment */ + Last: 1 << 8 +}; +const getCommentTestFunction = (flags, fn) => { + if (typeof flags === "function") { + fn = flags; + flags = 0; } - exports.default = ProviderStream; -}); + if (flags || fn) { + return (comment, index, comments) => !(flags & CommentCheckFlags$f.Leading && !comment.leading || flags & CommentCheckFlags$f.Trailing && !comment.trailing || flags & CommentCheckFlags$f.Dangling && (comment.leading || comment.trailing) || flags & CommentCheckFlags$f.Block && !isBlockComment$5(comment) || flags & CommentCheckFlags$f.Line && !isLineComment$3(comment) || flags & CommentCheckFlags$f.First && index !== 0 || flags & CommentCheckFlags$f.Last && index !== comments.length - 1 || flags & CommentCheckFlags$f.PrettierIgnore && !isPrettierIgnoreComment$1(comment) || fn && !fn(comment)); + } +}; +/** + * @param {Node} node + * @param {number | function} [flags] + * @param {function} [fn] + * @returns {boolean} + */ -var sync$5 = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports, "__esModule", { - value: true - }); +function hasComment$j(node, flags, fn) { + if (!node || !isNonEmptyArray$h(node.comments)) { + return false; + } - class ReaderSync extends reader$1.default { - constructor() { - super(...arguments); - this._walkSync = out$2.walkSync; - this._statSync = out.statSync; - } + const test = getCommentTestFunction(flags, fn); + return test ? node.comments.some(test) : true; +} +/** + * @param {Node} node + * @param {number | function} [flags] + * @param {function} [fn] + * @returns {Comment[]} + */ - dynamic(root, options) { - return this._walkSync(root, options); - } - static(patterns, options) { - const entries = []; +function getComments$4(node, flags, fn) { + if (!node || !Array.isArray(node.comments)) { + return []; + } - for (const pattern of patterns) { - const filepath = this._getFullEntryPath(pattern); + const test = getCommentTestFunction(flags, fn); + return test ? node.comments.filter(test) : node.comments; +} +/** + * @param {Node} node + * @returns {boolean} + */ - const entry = this._getEntry(filepath, pattern, options); - if (entry === null || !options.entryFilter(entry)) { - continue; - } +const isNextLineEmpty$c = (node, { + originalText +}) => isNextLineEmptyAfterIndex$1(originalText, locEnd$n(node)); - entries.push(entry); - } +function isCallLikeExpression$2(node) { + return isCallExpression$d(node) || node.type === "NewExpression" || node.type === "ImportExpression"; +} - return entries; - } +function isObjectProperty$6(node) { + return node && (node.type === "ObjectProperty" || node.type === "Property" && !node.method && node.kind === "init"); +} - _getEntry(filepath, pattern, options) { - try { - const stats = this._getStat(filepath); +var utils$5 = { + getFunctionParameters: getFunctionParameters$6, + iterateFunctionParametersPath: iterateFunctionParametersPath$1, + getCallArguments: getCallArguments$5, + iterateCallArgumentsPath: iterateCallArgumentsPath$2, + hasRestParameter: hasRestParameter$1, + getLeftSide: getLeftSide$1, + getLeftSidePathName: getLeftSidePathName$2, + getParentExportDeclaration: getParentExportDeclaration$2, + getTypeScriptMappedTypeModifier: getTypeScriptMappedTypeModifier$1, + hasFlowAnnotationComment: hasFlowAnnotationComment$2, + hasFlowShorthandAnnotationComment: hasFlowShorthandAnnotationComment$3, + hasLeadingOwnLineComment: hasLeadingOwnLineComment$4, + hasNakedLeftSide: hasNakedLeftSide$3, + hasNode: hasNode$2, + hasIgnoreComment: hasIgnoreComment$2, + hasNodeIgnoreComment: hasNodeIgnoreComment$1, + identity: identity$1, + isBinaryish: isBinaryish$5, + isBlockComment: isBlockComment$5, + isCallLikeExpression: isCallLikeExpression$2, + isLineComment: isLineComment$3, + isPrettierIgnoreComment: isPrettierIgnoreComment$1, + isCallExpression: isCallExpression$d, + isMemberExpression: isMemberExpression$a, + isExportDeclaration, + isFlowAnnotationComment: isFlowAnnotationComment$2, + isFunctionCompositionArgs: isFunctionCompositionArgs$1, + isFunctionNotation: isFunctionNotation$1, + isFunctionOrArrowExpression: isFunctionOrArrowExpression$1, + isGetterOrSetter: isGetterOrSetter$1, + isJestEachTemplateLiteral: isJestEachTemplateLiteral$1, + isJsxNode: isJsxNode$7, + isLiteral: isLiteral$3, + isLongCurriedCallExpression: isLongCurriedCallExpression$2, + isSimpleCallArgument: isSimpleCallArgument$1, + isMemberish: isMemberish$2, + isNumericLiteral: isNumericLiteral$5, + isSignedNumericLiteral: isSignedNumericLiteral$2, + isObjectProperty: isObjectProperty$6, + isObjectType: isObjectType$2, + isObjectTypePropertyAFunction: isObjectTypePropertyAFunction$2, + isSimpleType: isSimpleType$2, + isSimpleNumber: isSimpleNumber$1, + isSimpleTemplateLiteral: isSimpleTemplateLiteral$1, + isStringLiteral: isStringLiteral$5, + isStringPropSafeToUnquote: isStringPropSafeToUnquote$1, + isTemplateOnItsOwnLine: isTemplateOnItsOwnLine$2, + isTestCall: isTestCall$3, + isTheOnlyJsxElementInMarkdown: isTheOnlyJsxElementInMarkdown$2, + isTSXFile: isTSXFile$1, + isTypeAnnotationAFunction: isTypeAnnotationAFunction$1, + isNextLineEmpty: isNextLineEmpty$c, + needsHardlineAfterDanglingComment: needsHardlineAfterDanglingComment$2, + rawText: rawText$5, + shouldPrintComma: shouldPrintComma$b, + isBitwiseOperator: isBitwiseOperator$1, + shouldFlatten: shouldFlatten$2, + startsWithNoLookaheadToken: startsWithNoLookaheadToken$2, + getPrecedence: getPrecedence$1, + hasComment: hasComment$j, + getComments: getComments$4, + CommentCheckFlags: CommentCheckFlags$f +}; - return this._makeEntry(stats, pattern); - } catch (error) { - if (options.errorFilter(error)) { - return null; - } +const { + getStringWidth: getStringWidth$2, + getIndentSize +} = util$5; +const { + builders: { + join: join$t, + hardline: hardline$x, + softline: softline$r, + group: group$A, + indent: indent$x, + align: align$5, + lineSuffixBoundary: lineSuffixBoundary$1, + addAlignmentToDoc + }, + printer: { + printDocToString: printDocToString$1 + }, + utils: { + mapDoc: mapDoc$3 + } +} = doc; +const { + isBinaryish: isBinaryish$4, + isJestEachTemplateLiteral, + isSimpleTemplateLiteral, + hasComment: hasComment$i, + isMemberExpression: isMemberExpression$9 +} = utils$5; - throw error; - } - } +function printTemplateLiteral$2(path, print, options) { + const node = path.getValue(); + const isTemplateLiteral = node.type === "TemplateLiteral"; - _getStat(filepath) { - return this._statSync(filepath, this._fsStatSettings); - } + if (isTemplateLiteral && isJestEachTemplateLiteral(node, path.getParentNode())) { + const printed = printJestEachTemplateLiteral(path, options, print); + if (printed) { + return printed; + } } - exports.default = ReaderSync; -}); - -var sync$6 = createCommonjsModule(function (module, exports) { + let expressionsKey = "expressions"; - Object.defineProperty(exports, "__esModule", { - value: true - }); + if (node.type === "TSTemplateLiteralType") { + expressionsKey = "types"; + } - class ProviderSync extends provider.default { - constructor() { - super(...arguments); - this._reader = new sync$5.default(this._settings); - } + const parts = []; + let expressions = path.map(print, expressionsKey); + const isSimple = isSimpleTemplateLiteral(node); - read(task) { - const root = this._getRootDirectory(task); + if (isSimple) { + expressions = expressions.map(doc => printDocToString$1(doc, Object.assign(Object.assign({}, options), {}, { + printWidth: Number.POSITIVE_INFINITY + })).formatted); + } - const options = this._getReaderOptions(task); + parts.push(lineSuffixBoundary$1, "`"); + path.each(childPath => { + const i = childPath.getName(); + parts.push(print()); + + if (i < expressions.length) { + // For a template literal of the following form: + // `someQuery { + // ${call({ + // a, + // b, + // })} + // }` + // the expression is on its own line (there is a \n in the previous + // quasi literal), therefore we want to indent the JavaScript + // expression inside at the beginning of ${ instead of the beginning + // of the `. + const { + tabWidth + } = options; + const quasi = childPath.getValue(); + const indentSize = getIndentSize(quasi.value.raw, tabWidth); + let printed = expressions[i]; - const entries = this.api(root, task, options); - return entries.map(options.transform); - } + if (!isSimple) { + const expression = node[expressionsKey][i]; // Breaks at the template element boundaries (${ and }) are preferred to breaking + // in the middle of a MemberExpression - api(root, task, options) { - if (task.dynamic) { - return this._reader.dynamic(root, options); + if (hasComment$i(expression) || isMemberExpression$9(expression) || expression.type === "ConditionalExpression" || expression.type === "SequenceExpression" || expression.type === "TSAsExpression" || isBinaryish$4(expression)) { + printed = [indent$x([softline$r, printed]), softline$r]; + } } - return this._reader.static(task.patterns, options); + const aligned = indentSize === 0 && quasi.value.raw.endsWith("\n") ? align$5(Number.NEGATIVE_INFINITY, printed) : addAlignmentToDoc(printed, indentSize, tabWidth); + parts.push(group$A(["${", aligned, lineSuffixBoundary$1, "}"])); } + }, "quasis"); + parts.push("`"); + return parts; +} - } - - exports.default = ProviderSync; -}); - -var settings$3 = createCommonjsModule(function (module, exports) { +function printJestEachTemplateLiteral(path, options, print) { + /** + * a | b | expected + * ${1} | ${1} | ${2} + * ${1} | ${2} | ${3} + * ${2} | ${1} | ${3} + */ + const node = path.getNode(); + const headerNames = node.quasis[0].value.raw.trim().split(/\s*\|\s*/); - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; - const CPU_COUNT = os__default['default'].cpus().length; - exports.DEFAULT_FILE_SYSTEM_ADAPTER = { - lstat: fs__default['default'].lstat, - lstatSync: fs__default['default'].lstatSync, - stat: fs__default['default'].stat, - statSync: fs__default['default'].statSync, - readdir: fs__default['default'].readdir, - readdirSync: fs__default['default'].readdirSync - }; + if (headerNames.length > 1 || headerNames.some(headerName => headerName.length > 0)) { + options.__inJestEach = true; + const expressions = path.map(print, "expressions"); + options.__inJestEach = false; + const parts = []; + const stringifiedExpressions = expressions.map(doc => "${" + printDocToString$1(doc, Object.assign(Object.assign({}, options), {}, { + printWidth: Number.POSITIVE_INFINITY, + endOfLine: "lf" + })).formatted + "}"); + const tableBody = [{ + hasLineBreak: false, + cells: [] + }]; - class Settings { - constructor(_options = {}) { - this._options = _options; - this.absolute = this._getValue(this._options.absolute, false); - this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); - this.braceExpansion = this._getValue(this._options.braceExpansion, true); - this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); - this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); - this.cwd = this._getValue(this._options.cwd, process.cwd()); - this.deep = this._getValue(this._options.deep, Infinity); - this.dot = this._getValue(this._options.dot, false); - this.extglob = this._getValue(this._options.extglob, true); - this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); - this.fs = this._getFileSystemMethods(this._options.fs); - this.globstar = this._getValue(this._options.globstar, true); - this.ignore = this._getValue(this._options.ignore, []); - this.markDirectories = this._getValue(this._options.markDirectories, false); - this.objectMode = this._getValue(this._options.objectMode, false); - this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); - this.onlyFiles = this._getValue(this._options.onlyFiles, true); - this.stats = this._getValue(this._options.stats, false); - this.suppressErrors = this._getValue(this._options.suppressErrors, false); - this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); - this.unique = this._getValue(this._options.unique, true); + for (let i = 1; i < node.quasis.length; i++) { + const row = getLast_1(tableBody); + const correspondingExpression = stringifiedExpressions[i - 1]; + row.cells.push(correspondingExpression); - if (this.onlyDirectories) { - this.onlyFiles = false; + if (correspondingExpression.includes("\n")) { + row.hasLineBreak = true; } - if (this.stats) { - this.objectMode = true; + if (node.quasis[i].value.raw.includes("\n")) { + tableBody.push({ + hasLineBreak: false, + cells: [] + }); } } - _getValue(option, value) { - return option === undefined ? value : option; - } + const maxColumnCount = Math.max(headerNames.length, ...tableBody.map(row => row.cells.length)); + const maxColumnWidths = Array.from({ + length: maxColumnCount + }).fill(0); + const table = [{ + cells: headerNames + }, ...tableBody.filter(row => row.cells.length > 0)]; - _getFileSystemMethods(methods = {}) { - return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + for (const { + cells + } of table.filter(row => !row.hasLineBreak)) { + for (const [index, cell] of cells.entries()) { + maxColumnWidths[index] = Math.max(maxColumnWidths[index], getStringWidth$2(cell)); + } } + parts.push(lineSuffixBoundary$1, "`", indent$x([hardline$x, join$t(hardline$x, table.map(row => join$t(" | ", row.cells.map((cell, index) => row.hasLineBreak ? cell : cell + " ".repeat(maxColumnWidths[index] - getStringWidth$2(cell))))))]), hardline$x, "`"); + return parts; } +} - exports.default = Settings; -}); +function printTemplateExpression(path, print) { + const node = path.getValue(); + let printed = print(); -async function FastGlob(source, options) { - assertPatternsInput(source); - const works = getWorks(source, async$5.default, options); - const result = await Promise.all(works); - return utils$3.array.flatten(result); -} // https://github.com/typescript-eslint/typescript-eslint/issues/60 -// eslint-disable-next-line no-redeclare + if (hasComment$i(node)) { + printed = group$A([indent$x([softline$r, printed]), softline$r]); + } + return ["${", printed, lineSuffixBoundary$1, "}"]; +} -(function (FastGlob) { - function sync(source, options) { - assertPatternsInput(source); - const works = getWorks(source, sync$6.default, options); - return utils$3.array.flatten(works); - } +function printTemplateExpressions$3(path, print) { + return path.map(path => printTemplateExpression(path, print), "expressions"); +} - FastGlob.sync = sync; +function escapeTemplateCharacters$2(doc, raw) { + return mapDoc$3(doc, currentDoc => { + if (typeof currentDoc === "string") { + return raw ? currentDoc.replace(/(\\*)`/g, "$1$1\\`") : uncookTemplateElementValue$1(currentDoc); + } - function stream(source, options) { - assertPatternsInput(source); - const works = getWorks(source, stream$4.default, options); - /** - * The stream returned by the provider cannot work with an asynchronous iterator. - * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. - * This affects performance (+25%). I don't see best solution right now. - */ + return currentDoc; + }); +} + +function uncookTemplateElementValue$1(cookedValue) { + return cookedValue.replace(/([\\`]|\${)/g, "\\$1"); +} + +var templateLiteral = { + printTemplateLiteral: printTemplateLiteral$2, + printTemplateExpressions: printTemplateExpressions$3, + escapeTemplateCharacters: escapeTemplateCharacters$2, + uncookTemplateElementValue: uncookTemplateElementValue$1 +}; - return utils$3.stream.merge(works); +const { + builders: { + indent: indent$w, + softline: softline$q, + literalline: literalline$5, + dedentToRoot: dedentToRoot$2 } +} = doc; +const { + escapeTemplateCharacters: escapeTemplateCharacters$1 +} = templateLiteral; - FastGlob.stream = stream; +function format$3(path, print, textToDoc) { + const node = path.getValue(); + let text = node.quasis[0].value.raw.replace(/((?:\\\\)*)\\`/g, (_, backslashes) => "\\".repeat(backslashes.length / 2) + "`"); + const indentation = getIndentation(text); + const hasIndent = indentation !== ""; - function generateTasks(source, options) { - assertPatternsInput(source); - const patterns = [].concat(source); - const settings = new settings$3.default(options); - return tasks.generate(patterns, settings); + if (hasIndent) { + text = text.replace(new RegExp(`^${indentation}`, "gm"), ""); } - FastGlob.generateTasks = generateTasks; + const doc = escapeTemplateCharacters$1(textToDoc(text, { + parser: "markdown", + __inJsTemplate: true + }, { + stripTrailingHardline: true + }), true); + return ["`", hasIndent ? indent$w([softline$q, doc]) : [literalline$5, dedentToRoot$2(doc)], softline$q, "`"]; +} - function isDynamicPattern(source, options) { - assertPatternsInput(source); - const settings = new settings$3.default(options); - return utils$3.pattern.isDynamicPattern(source, settings); - } +function getIndentation(str) { + const firstMatchedIndent = str.match(/^([^\S\n]*)\S/m); + return firstMatchedIndent === null ? "" : firstMatchedIndent[1]; +} - FastGlob.isDynamicPattern = isDynamicPattern; +var markdown = format$3; - function escapePath(source) { - assertPatternsInput(source); - return utils$3.path.escape(source); +const { + isNonEmptyArray: isNonEmptyArray$g +} = util$5; +const { + builders: { + indent: indent$v, + hardline: hardline$w, + softline: softline$p + }, + utils: { + mapDoc: mapDoc$2, + replaceNewlinesWithLiterallines: replaceNewlinesWithLiterallines$3, + cleanDoc: cleanDoc$3 } +} = doc; +const { + printTemplateExpressions: printTemplateExpressions$2 +} = templateLiteral; - FastGlob.escapePath = escapePath; -})(FastGlob || (FastGlob = {})); +function format$2(path, print, textToDoc) { + const node = path.getValue(); // Get full template literal with expressions replaced by placeholders -function getWorks(source, _Provider, options) { - const patterns = [].concat(source); - const settings = new settings$3.default(options); - const tasks$1 = tasks.generate(patterns, settings); - const provider = new _Provider(settings); - return tasks$1.map(provider.read, provider); + const rawQuasis = node.quasis.map(q => q.value.raw); + let placeholderID = 0; + const text = rawQuasis.reduce((prevVal, currVal, idx) => idx === 0 ? currVal : prevVal + "@prettier-placeholder-" + placeholderID++ + "-id" + currVal, ""); + const doc = textToDoc(text, { + parser: "scss" + }, { + stripTrailingHardline: true + }); + const expressionDocs = printTemplateExpressions$2(path, print); + return transformCssDoc(doc, node, expressionDocs); } -function assertPatternsInput(input) { - const source = [].concat(input); - const isValidSource = source.every(item => utils$3.string.isString(item) && !utils$3.string.isEmpty(item)); +function transformCssDoc(quasisDoc, parentNode, expressionDocs) { + const isEmpty = parentNode.quasis.length === 1 && !parentNode.quasis[0].value.raw.trim(); - if (!isValidSource) { - throw new TypeError('Patterns must be a string (non empty) or an array of strings'); + if (isEmpty) { + return "``"; } -} -var out$3 = FastGlob; - -const { - promisify -} = util__default['default']; + const newDoc = replacePlaceholders(quasisDoc, expressionDocs); + /* istanbul ignore if */ -async function isType(fsStatType, statsMethodName, filePath) { - if (typeof filePath !== 'string') { - throw new TypeError(`Expected a string, got ${typeof filePath}`); + if (!newDoc) { + throw new Error("Couldn't insert all the expressions"); } - try { - const stats = await promisify(fs__default['default'][fsStatType])(filePath); - return stats[statsMethodName](); - } catch (error) { - if (error.code === 'ENOENT') { - return false; - } + return ["`", indent$v([hardline$w, newDoc]), softline$p, "`"]; +} // Search all the placeholders in the quasisDoc tree +// and replace them with the expression docs one by one +// returns a new doc with all the placeholders replaced, +// or null if it couldn't replace any expression - throw error; - } -} -function isTypeSync(fsStatType, statsMethodName, filePath) { - if (typeof filePath !== 'string') { - throw new TypeError(`Expected a string, got ${typeof filePath}`); +function replacePlaceholders(quasisDoc, expressionDocs) { + if (!isNonEmptyArray$g(expressionDocs)) { + return quasisDoc; } - try { - return fs__default['default'][fsStatType](filePath)[statsMethodName](); - } catch (error) { - if (error.code === 'ENOENT') { - return false; - } + let replaceCounter = 0; + const newDoc = mapDoc$2(cleanDoc$3(quasisDoc), doc => { + if (typeof doc !== "string" || !doc.includes("@prettier-placeholder")) { + return doc; + } // When we have multiple placeholders in one line, like: + // ${Child}${Child2}:not(:first-child) - throw error; - } -} -var isFile = isType.bind(null, 'stat', 'isFile'); -var isDirectory = isType.bind(null, 'stat', 'isDirectory'); -var isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); -var isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); -var isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); -var isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); -var pathType = { - isFile: isFile, - isDirectory: isDirectory, - isSymlink: isSymlink, - isFileSync: isFileSync, - isDirectorySync: isDirectorySync, - isSymlinkSync: isSymlinkSync -}; + return doc.split(/@prettier-placeholder-(\d+)-id/).map((component, idx) => { + // The placeholder is always at odd indices + if (idx % 2 === 0) { + return replaceNewlinesWithLiterallines$3(component); + } // The component will always be a number at odd index -const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; -const getPath = (filepath, cwd) => { - const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; - return path__default['default'].isAbsolute(pth) ? pth : path__default['default'].join(cwd, pth); -}; + replaceCounter++; + return expressionDocs[component]; + }); + }); + return expressionDocs.length === replaceCounter ? newDoc : null; +} -const addExtensions = (file, extensions) => { - if (path__default['default'].extname(file)) { - return `**/${file}`; +var css = format$2; + +const { + builders: { + indent: indent$u, + join: join$s, + hardline: hardline$v } +} = doc; +const { + escapeTemplateCharacters, + printTemplateExpressions: printTemplateExpressions$1 +} = templateLiteral; - return `**/${file}.${getExtensions(extensions)}`; -}; +function format$1(path, print, textToDoc) { + const node = path.getValue(); + const numQuasis = node.quasis.length; -const getGlob = (directory, options) => { - if (options.files && !Array.isArray(options.files)) { - throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``); + if (numQuasis === 1 && node.quasis[0].value.raw.trim() === "") { + return "``"; } - if (options.extensions && !Array.isArray(options.extensions)) { - throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``); - } + const expressionDocs = printTemplateExpressions$1(path, print); + const parts = []; - if (options.files && options.extensions) { - return options.files.map(x => path__default['default'].posix.join(directory, addExtensions(x, options.extensions))); - } + for (let i = 0; i < numQuasis; i++) { + const templateElement = node.quasis[i]; + const isFirst = i === 0; + const isLast = i === numQuasis - 1; + const text = templateElement.value.cooked; + const lines = text.split("\n"); + const numLines = lines.length; + const expressionDoc = expressionDocs[i]; + const startsWithBlankLine = numLines > 2 && lines[0].trim() === "" && lines[1].trim() === ""; + const endsWithBlankLine = numLines > 2 && lines[numLines - 1].trim() === "" && lines[numLines - 2].trim() === ""; + const commentsAndWhitespaceOnly = lines.every(line => /^\s*(?:#[^\n\r]*)?$/.test(line)); // Bail out if an interpolation occurs within a comment. + + if (!isLast && /#[^\n\r]*$/.test(lines[numLines - 1])) { + return null; + } - if (options.files) { - return options.files.map(x => path__default['default'].posix.join(directory, `**/${x}`)); - } + let doc = null; - if (options.extensions) { - return [path__default['default'].posix.join(directory, `**/*.${getExtensions(options.extensions)}`)]; - } + if (commentsAndWhitespaceOnly) { + doc = printGraphqlComments(lines); + } else { + doc = textToDoc(text, { + parser: "graphql" + }, { + stripTrailingHardline: true + }); + } - return [path__default['default'].posix.join(directory, '**')]; -}; + if (doc) { + doc = escapeTemplateCharacters(doc, false); -var dirGlob = async (input, options) => { - options = Object.assign({ - cwd: process.cwd() - }, options); + if (!isFirst && startsWithBlankLine) { + parts.push(""); + } - if (typeof options.cwd !== 'string') { - throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + parts.push(doc); + + if (!isLast && endsWithBlankLine) { + parts.push(""); + } + } else if (!isFirst && !isLast && startsWithBlankLine) { + parts.push(""); + } + + if (expressionDoc) { + parts.push(expressionDoc); + } } - const globs = await Promise.all([].concat(input).map(async x => { - const isDirectory = await pathType.isDirectory(getPath(x, options.cwd)); - return isDirectory ? getGlob(x, options) : x; - })); - return [].concat.apply([], globs); // eslint-disable-line prefer-spread -}; + return ["`", indent$u([hardline$v, join$s(hardline$v, parts)]), hardline$v, "`"]; +} -var sync$7 = (input, options) => { - options = Object.assign({ - cwd: process.cwd() - }, options); +function printGraphqlComments(lines) { + const parts = []; + let seenComment = false; + const array = lines.map(textLine => textLine.trim()); - if (typeof options.cwd !== 'string') { - throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); - } + for (const [i, textLine] of array.entries()) { + // Lines are either whitespace only, or a comment (with potential whitespace + // around it). Drop whitespace-only lines. + if (textLine === "") { + continue; + } - const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x); - return [].concat.apply([], globs); // eslint-disable-line prefer-spread -}; -dirGlob.sync = sync$7; + if (array[i - 1] === "" && seenComment) { + // If a non-first comment is preceded by a blank (whitespace only) line, + // add in a blank line. + parts.push([hardline$v, textLine]); + } else { + parts.push(textLine); + } -// A simple implementation of make-array -function makeArray(subject) { - return Array.isArray(subject) ? subject : [subject]; + seenComment = true; + } // If `lines` was whitespace only, return `null`. + + + return parts.length === 0 ? null : join$s(hardline$v, parts); } -const EMPTY = ''; -const SPACE = ' '; -const ESCAPE = '\\'; -const REGEX_TEST_BLANK_LINE = /^\s+$/; -const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; -const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; -const REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo, -// ./foo, -// ../foo, -// . -// .. +var graphql = format$1; -const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; -const SLASH$1 = '/'; -const KEY_IGNORE$1 = typeof Symbol !== 'undefined' ? Symbol.for('node-ignore') -/* istanbul ignore next */ -: 'node-ignore'; +const { + builders: { + indent: indent$t, + line: line$u, + hardline: hardline$u, + group: group$z + }, + utils: { + mapDoc: mapDoc$1 + } +} = doc; +const { + printTemplateExpressions, + uncookTemplateElementValue +} = templateLiteral; // The counter is needed to distinguish nested embeds. -const define$1 = (object, key, value) => Object.defineProperty(object, key, { - value -}); +let htmlTemplateLiteralCounter = 0; -const REGEX_REGEXP_RANGE$1 = /([0-z])-([0-z])/g; // Sanitize the range of a regular expression -// The cases are complicated, see test cases for details +function format(path, print, textToDoc, options, { + parser +}) { + const node = path.getValue(); + const counter = htmlTemplateLiteralCounter; + htmlTemplateLiteralCounter = htmlTemplateLiteralCounter + 1 >>> 0; -const sanitizeRange$1 = range => range.replace(REGEX_REGEXP_RANGE$1, (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but -// fatal for JavaScript regular expression, so eliminate it. -: EMPTY); // See fixtures #59 + const composePlaceholder = index => `PRETTIER_HTML_PLACEHOLDER_${index}_${counter}_IN_JS`; + const text = node.quasis.map((quasi, index, quasis) => index === quasis.length - 1 ? quasi.value.cooked : quasi.value.cooked + composePlaceholder(index)).join(""); + const expressionDocs = printTemplateExpressions(path, print); -const cleanRangeBackSlash = slashes => { - const { - length - } = slashes; - return slashes.slice(0, length - length % 2); -}; // > If the pattern ends with a slash, -// > it is removed for the purpose of the following description, -// > but it would only find a match with a directory. -// > In other words, foo/ will match a directory foo and paths underneath it, -// > but will not match a regular file or a symbolic link foo -// > (this is consistent with the way how pathspec works in general in Git). -// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' -// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call -// you could use option `mark: true` with `glob` -// '`foo/`' should not continue with the '`..`' + if (expressionDocs.length === 0 && text.trim().length === 0) { + return "``"; + } + const placeholderRegex = new RegExp(composePlaceholder("(\\d+)"), "g"); + let topLevelCount = 0; + const doc = textToDoc(text, { + parser, -const REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\") -[// (a\ ) -> (a ) -// (a ) -> (a) -// (a \ ) -> (a ) -/\\?\s+$/, match => match.indexOf('\\') === 0 ? SPACE : EMPTY], // replace (\ ) with ' ' -[/\\\s/g, () => SPACE], // Escape metacharacters -// which is written down by users but means special for regular expressions. -// > There are 12 characters with special meanings: -// > - the backslash \, -// > - the caret ^, -// > - the dollar sign $, -// > - the period or dot ., -// > - the vertical bar or pipe symbol |, -// > - the question mark ?, -// > - the asterisk or star *, -// > - the plus sign +, -// > - the opening parenthesis (, -// > - the closing parenthesis ), -// > - and the opening square bracket [, -// > - the opening curly brace {, -// > These special characters are often called "metacharacters". -[/[\\$.|*+(){^]/g, match => `\\${match}`], [// > a question mark (?) matches a single character -/(?!\\)\?/g, () => '[^/]'], // leading slash -[// > A leading slash matches the beginning of the pathname. -// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". -// A leading slash matches the beginning of the pathname -/^\//, () => '^'], // replace special metacharacter slash after the leading slash -[/\//g, () => '\\/'], [// > A leading "**" followed by a slash means match in all directories. -// > For example, "**/foo" matches file or directory "foo" anywhere, -// > the same as pattern "foo". -// > "**/foo/bar" matches file or directory "bar" anywhere that is directly -// > under directory "foo". -// Notice that the '*'s have been replaced as '\\*' -/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' -() => '^(?:.*\\/)?'], // starting -[// there will be no leading '/' -// (which has been replaced by section "leading slash") -// If starts with '**', adding a '^' to the regular expression also works -/^(?=[^^])/, function startingReplacer() { - // If has a slash `/` at the beginning or middle - return !/\/(?!$)/.test(this) // > Prior to 2.22.1 - // > If the pattern does not contain a slash /, - // > Git treats it as a shell glob pattern - // Actually, if there is only a trailing slash, - // git also treats it as a shell glob pattern - // After 2.22.1 (compatible but clearer) - // > If there is a separator at the beginning or middle (or both) - // > of the pattern, then the pattern is relative to the directory - // > level of the particular .gitignore file itself. - // > Otherwise the pattern may also match at any level below - // > the .gitignore level. - ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for - // > consumption by fnmatch(3) - : '^'; -}], // two globstars -[// Use lookahead assertions so that we could match more than one `'/**'` -/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories -// should not use '*', or it will be replaced by the next replacer -// Check if it is not the last `'/**'` -(_, index, str) => index + 6 < str.length // case: /**/ -// > A slash followed by two consecutive asterisks then a slash matches -// > zero or more directories. -// > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. -// '/**/' -? '(?:\\/[^\\/]+)*' // case: /** -// > A trailing `"/**"` matches everything inside. -// #21: everything inside but it should not include the current folder -: '\\/.+'], // intermediate wildcards -[// Never replace escaped '*' -// ignore rule '\*' will match the path '*' -// 'abc.*/' -> go -// 'abc.*' -> skip this rule -/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js' -// '*.js' doesn't match 'abc' -(_, p1) => `${p1}[^\\/]*`], [// unescape, revert step 3 except for back slash -// For example, if a user escape a '\\*', -// after step 3, the result will be '\\\\\\*' -/\\\\\\(?=[$.|*+(){^])/g, () => ESCAPE], [// '\\\\' -> '\\' -/\\\\/g, () => ESCAPE], [// > The range notation, e.g. [a-zA-Z], -// > can be used to match one of the characters in a range. -// `\` is escaped by step 3 -/(\\)?\[([^\]/]*?)(\\*)($|\])/g, (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]' -? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation -// '[bar]' -// '[bar\\\\]' -? `[${sanitizeRange$1(range)}${endEscape}]` // Invalid range notaton -// '[bar\\]' -> '[bar\\\\]' -: '[]' : '[]'], // ending -[// 'js' will not match 'js.' -// 'ab' will not match 'abc' -/(?:[^*])$/, // WTF! -// https://git-scm.com/docs/gitignore -// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) -// which re-fixes #24, #38 -// > If there is a separator at the end of the pattern then the pattern -// > will only match directories, otherwise the pattern can match both -// > files and directories. -// 'js*' will not match 'a.js' -// 'js/' will not match 'a.js' -// 'js' will match 'a.js' and 'a.js/' -match => /\/$/.test(match) // foo/ will not match 'foo' -? `${match}$` // foo matches 'foo' and 'foo/' -: `${match}(?=$|\\/$)`], // trailing wildcard -[/(\^|\\\/)?\\\*$/, (_, p1) => { - const prefix = p1 // '\^': - // '/*' does not match EMPTY - // '/*' does not match everything - // '\\\/': - // 'abc/*' does not match 'abc/' - ? `${p1}[^/]+` // 'a*' matches 'a' - // 'a*' matches 'aa' - : '[^/]*'; - return `${prefix}(?=$|\\/$)`; -}]]; // A simple cache, because an ignore rule only has only one certain meaning + __onHtmlRoot(root) { + topLevelCount = root.children.length; + } -const regexCache = Object.create(null); // @param {pattern} + }, { + stripTrailingHardline: true + }); + const contentDoc = mapDoc$1(doc, doc => { + if (typeof doc !== "string") { + return doc; + } -const makeRegex = (pattern, negative, ignorecase) => { - const r = regexCache[pattern]; + const parts = []; + const components = doc.split(placeholderRegex); - if (r) { - return r; - } // const replacers = negative - // ? NEGATIVE_REPLACERS - // : POSITIVE_REPLACERS + for (let i = 0; i < components.length; i++) { + let component = components[i]; + if (i % 2 === 0) { + if (component) { + component = uncookTemplateElementValue(component); - const source = REPLACERS.reduce((prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern); - return regexCache[pattern] = ignorecase ? new RegExp(source, 'i') : new RegExp(source); -}; + if (options.__embeddedInHtml) { + component = component.replace(/<\/(script)\b/gi, "<\\/$1"); + } -const isString = subject => typeof subject === 'string'; // > A blank line matches no files, so it can serve as a separator for readability. + parts.push(component); + } + continue; + } -const checkPattern$1 = pattern => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment. -&& pattern.indexOf('#') !== 0; + const placeholderIndex = Number(component); + parts.push(expressionDocs[placeholderIndex]); + } -const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF); + return parts; + }); + const leadingWhitespace = /^\s/.test(text) ? " " : ""; + const trailingWhitespace = /\s$/.test(text) ? " " : ""; + const linebreak = options.htmlWhitespaceSensitivity === "ignore" ? hardline$u : leadingWhitespace && trailingWhitespace ? line$u : null; -class IgnoreRule { - constructor(origin, pattern, negative, regex) { - this.origin = origin; - this.pattern = pattern; - this.negative = negative; - this.regex = regex; + if (linebreak) { + return group$z(["`", indent$t([linebreak, group$z(contentDoc)]), linebreak, "`"]); } + return group$z(["`", leadingWhitespace, topLevelCount > 1 ? indent$t(group$z(contentDoc)) : group$z(contentDoc), trailingWhitespace, "`"]); } -const createRule$1 = (pattern, ignorecase) => { - const origin = pattern; - let negative = false; // > An optional prefix "!" which negates the pattern; +var html$1 = format; - if (pattern.indexOf('!') === 0) { - negative = true; - pattern = pattern.substr(1); - } +const { + hasComment: hasComment$h, + CommentCheckFlags: CommentCheckFlags$e, + isObjectProperty: isObjectProperty$5 +} = utils$5; - pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that - // > begin with a literal "!", for example, `"\!important!.txt"`. - .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that - // > begin with a hash. - .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); - const regex = makeRegex(pattern, negative, ignorecase); - return new IgnoreRule(origin, pattern, negative, regex); -}; +function getLanguage(path) { + if (isStyledJsx(path) || isStyledComponents(path) || isCssProp(path) || isAngularComponentStyles(path)) { + return "css"; + } -const throwError = (message, Ctor) => { - throw new Ctor(message); -}; + if (isGraphQL(path)) { + return "graphql"; + } -const checkPath = (path, originalPath, doThrow) => { - if (!isString(path)) { - return doThrow(`path must be a string, but got \`${originalPath}\``, TypeError); - } // We don't know if we should ignore EMPTY, so throw + if (isHtml(path)) { + return "html"; + } + if (isAngularComponentTemplate(path)) { + return "angular"; + } - if (!path) { - return doThrow(`path must not be empty`, TypeError); - } // Check if it is a relative path + if (isMarkdown(path)) { + return "markdown"; + } +} +function embed$5(path, print, textToDoc, options) { + const node = path.getValue(); - if (checkPath.isNotRelative(path)) { - const r = '`path.relative()`d'; - return doThrow(`path should be a ${r} string, but got "${originalPath}"`, RangeError); + if (node.type !== "TemplateLiteral" || // Bail out if any of the quasis have an invalid escape sequence + // (which would make the `cooked` value be `null`) + hasInvalidCookedValue(node)) { + return; } - return true; -}; - -const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path); + const language = getLanguage(path); -checkPath.isNotRelative = isNotRelative; + if (!language) { + return; + } -checkPath.convert = p => p; + if (language === "markdown") { + return markdown(path, print, textToDoc); + } -class Ignore { - constructor({ - ignorecase = true - } = {}) { - this._rules = []; - this._ignorecase = ignorecase; - define$1(this, KEY_IGNORE$1, true); + if (language === "css") { + return css(path, print, textToDoc); + } - this._initCache(); + if (language === "graphql") { + return graphql(path, print, textToDoc); } - _initCache() { - this._ignoreCache = Object.create(null); - this._testCache = Object.create(null); + if (language === "html" || language === "angular") { + return html$1(path, print, textToDoc, options, { + parser: language + }); } +} +/** + * md`...` + * markdown`...` + */ - _addPattern(pattern) { - // #32 - if (pattern && pattern[KEY_IGNORE$1]) { - this._rules = this._rules.concat(pattern._rules); - this._added = true; - return; - } - if (checkPattern$1(pattern)) { - const rule = createRule$1(pattern, this._ignorecase); - this._added = true; +function isMarkdown(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + return parent && parent.type === "TaggedTemplateExpression" && node.quasis.length === 1 && parent.tag.type === "Identifier" && (parent.tag.name === "md" || parent.tag.name === "markdown"); +} +/** + * Template literal in these contexts: + * + * css`` + * css.global`` + * css.resolve`` + */ + + +function isStyledJsx(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + return parentParent && node.quasis && parent.type === "JSXExpressionContainer" && parentParent.type === "JSXElement" && parentParent.openingElement.name.name === "style" && parentParent.openingElement.attributes.some(attribute => attribute.name.name === "jsx") || parent && parent.type === "TaggedTemplateExpression" && parent.tag.type === "Identifier" && parent.tag.name === "css" || parent && parent.type === "TaggedTemplateExpression" && parent.tag.type === "MemberExpression" && parent.tag.object.name === "css" && (parent.tag.property.name === "global" || parent.tag.property.name === "resolve"); +} +/** + * Angular Components can have: + * - Inline HTML template + * - Inline CSS styles + * + * ...which are both within template literals somewhere + * inside of the Component decorator factory. + * + * E.g. + * @Component({ + * template: `

...
`, + * styles: [`h1 { color: blue; }`] + * }) + */ + - this._rules.push(rule); - } - } // @param {Array | string | Ignore} pattern +function isAngularComponentStyles(path) { + return path.match(node => node.type === "TemplateLiteral", (node, name) => node.type === "ArrayExpression" && name === "elements", (node, name) => isObjectProperty$5(node) && node.key.type === "Identifier" && node.key.name === "styles" && name === "value", ...angularComponentObjectExpressionPredicates); +} +function isAngularComponentTemplate(path) { + return path.match(node => node.type === "TemplateLiteral", (node, name) => isObjectProperty$5(node) && node.key.type === "Identifier" && node.key.name === "template" && name === "value", ...angularComponentObjectExpressionPredicates); +} - add(pattern) { - this._added = false; - makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore, - // making the behavior changed. +const angularComponentObjectExpressionPredicates = [(node, name) => node.type === "ObjectExpression" && name === "properties", (node, name) => node.type === "CallExpression" && node.callee.type === "Identifier" && node.callee.name === "Component" && name === "arguments", (node, name) => node.type === "Decorator" && name === "expression"]; +/** + * styled-components template literals + */ - if (this._added) { - this._initCache(); - } +function isStyledComponents(path) { + const parent = path.getParentNode(); - return this; - } // legacy + if (!parent || parent.type !== "TaggedTemplateExpression") { + return false; + } + const { + tag + } = parent; - addPattern(pattern) { - return this.add(pattern); - } // | ignored : unignored - // negative | 0:0 | 0:1 | 1:0 | 1:1 - // -------- | ------- | ------- | ------- | -------- - // 0 | TEST | TEST | SKIP | X - // 1 | TESTIF | SKIP | TEST | X - // - SKIP: always skip - // - TEST: always test - // - TESTIF: only test if checkUnignored - // - X: that never happen - // @param {boolean} whether should check if the path is unignored, - // setting `checkUnignored` to `false` could reduce additional - // path matching. - // @returns {TestResult} true if a file is ignored + switch (tag.type) { + case "MemberExpression": + return (// styled.foo`` + isStyledIdentifier(tag.object) || // Component.extend`` + isStyledExtend(tag) + ); + case "CallExpression": + return (// styled(Component)`` + isStyledIdentifier(tag.callee) || tag.callee.type === "MemberExpression" && (tag.callee.object.type === "MemberExpression" && ( // styled.foo.attrs({})`` + isStyledIdentifier(tag.callee.object.object) || // Component.extend.attrs({})`` + isStyledExtend(tag.callee.object)) || // styled(Component).attrs({})`` + tag.callee.object.type === "CallExpression" && isStyledIdentifier(tag.callee.object.callee)) + ); - _testOne(path, checkUnignored) { - let ignored = false; - let unignored = false; + case "Identifier": + // css`` + return tag.name === "css"; - this._rules.forEach(rule => { - const { - negative - } = rule; + default: + return false; + } +} +/** + * JSX element with CSS prop + */ - if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { - return; - } - const matched = rule.regex.test(path); +function isCssProp(path) { + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + return parentParent && parent.type === "JSXExpressionContainer" && parentParent.type === "JSXAttribute" && parentParent.name.type === "JSXIdentifier" && parentParent.name.name === "css"; +} - if (matched) { - ignored = !negative; - unignored = negative; - } - }); +function isStyledIdentifier(node) { + return node.type === "Identifier" && node.name === "styled"; +} - return { - ignored, - unignored - }; - } // @returns {TestResult} +function isStyledExtend(node) { + return /^[A-Z]/.test(node.object.name) && node.property.name === "extend"; +} +/* + * react-relay and graphql-tag + * graphql`...` + * graphql.experimental`...` + * gql`...` + * GraphQL comment block + * + * This intentionally excludes Relay Classic tags, as Prettier does not + * support Relay Classic formatting. + */ - _test(originalPath, cache, checkUnignored, slices) { - const path = originalPath // Supports nullable path - && checkPath.convert(originalPath); - checkPath(path, originalPath, throwError); - return this._t(path, cache, checkUnignored, slices); - } +function isGraphQL(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + return hasLanguageComment(node, "GraphQL") || parent && (parent.type === "TaggedTemplateExpression" && (parent.tag.type === "MemberExpression" && parent.tag.object.name === "graphql" && parent.tag.property.name === "experimental" || parent.tag.type === "Identifier" && (parent.tag.name === "gql" || parent.tag.name === "graphql")) || parent.type === "CallExpression" && parent.callee.type === "Identifier" && parent.callee.name === "graphql"); +} - _t(path, cache, checkUnignored, slices) { - if (path in cache) { - return cache[path]; - } +function hasLanguageComment(node, languageName) { + // This checks for a leading comment that is exactly `/* GraphQL */` + // In order to be in line with other implementations of this comment tag + // we will not trim the comment value and we will expect exactly one space on + // either side of the GraphQL string + // Also see ./clean.js + return hasComment$h(node, CommentCheckFlags$e.Block | CommentCheckFlags$e.Leading, ({ + value + }) => value === ` ${languageName} `); +} +/** + * - html`...` + * - HTML comment block + */ - if (!slices) { - // path/to/a.js - // ['path', 'to', 'a.js'] - slices = path.split(SLASH$1); - } - slices.pop(); // If the path has no parent directory, just test it +function isHtml(path) { + return hasLanguageComment(path.getValue(), "HTML") || path.match(node => node.type === "TemplateLiteral", (node, name) => node.type === "TaggedTemplateExpression" && node.tag.type === "Identifier" && node.tag.name === "html" && name === "quasi"); +} - if (!slices.length) { - return cache[path] = this._testOne(path, checkUnignored); +function hasInvalidCookedValue({ + quasis +}) { + return quasis.some(({ + value: { + cooked } + }) => cooked === null); +} - const parent = this._t(slices.join(SLASH$1) + SLASH$1, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first +var embed_1$3 = embed$5; +const { + isBlockComment: isBlockComment$4 +} = utils$5; +const ignoredProperties$4 = new Set(["range", "raw", "comments", "leadingComments", "trailingComments", "innerComments", "extra", "start", "end", "loc", "flags", "errors", "tokens"]); - return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of - // > that file is excluded. - ? parent : this._testOne(path, checkUnignored); +const removeTemplateElementsValue = node => { + for (const templateElement of node.quasis) { + delete templateElement.value; } +}; - ignores(path) { - return this._test(path, this._ignoreCache, false).ignored; +function clean$7(ast, newObj, parent) { + if (ast.type === "Program") { + delete newObj.sourceType; } - createFilter() { - return path => !this.ignores(path); + if (ast.type === "BigIntLiteral" || ast.type === "BigIntLiteralTypeAnnotation") { + if (newObj.value) { + newObj.value = newObj.value.toLowerCase(); + } } - filter(paths) { - return makeArray(paths).filter(this.createFilter()); - } // @returns {TestResult} - + if (ast.type === "BigIntLiteral" || ast.type === "Literal") { + if (newObj.bigint) { + newObj.bigint = newObj.bigint.toLowerCase(); + } + } - test(path) { - return this._test(path, this._testCache, true); + if (ast.type === "DecimalLiteral") { + newObj.value = Number(newObj.value); } -} + if (ast.type === "Literal" && newObj.decimal) { + newObj.decimal = Number(newObj.decimal); + } // We remove extra `;` and add them when needed -const factory = options => new Ignore(options); -const returnFalse = () => false; + if (ast.type === "EmptyStatement") { + return null; + } // We move text around, including whitespaces and add {" "} -const isPathValid = path => checkPath(path && checkPath.convert(path), path, returnFalse); -factory.isPathValid = isPathValid; // Fixes typescript + if (ast.type === "JSXText") { + return null; + } -factory.default = factory; -var ignore$1 = factory; // Windows -// -------------------------------------------------------------- + if (ast.type === "JSXExpressionContainer" && (ast.expression.type === "Literal" || ast.expression.type === "StringLiteral") && ast.expression.value === " ") { + return null; + } // We change {'key': value} into {key: value}. + // And {key: value} into {'key': value}. + // Also for (some) number keys. -/* istanbul ignore if */ -if ( // Detect `process` so that it can run in browsers. -typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { - /* eslint no-control-regex: "off" */ - const makePosix = str => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, '/'); + if ((ast.type === "Property" || ast.type === "ObjectProperty" || ast.type === "MethodDefinition" || ast.type === "ClassProperty" || ast.type === "ClassMethod" || ast.type === "PropertyDefinition" || ast.type === "TSDeclareMethod" || ast.type === "TSPropertySignature" || ast.type === "ObjectTypeProperty") && typeof ast.key === "object" && ast.key && (ast.key.type === "Literal" || ast.key.type === "NumericLiteral" || ast.key.type === "StringLiteral" || ast.key.type === "Identifier")) { + delete newObj.key; + } // Remove raw and cooked values from TemplateElement when it's CSS + // styled-jsx - checkPath.convert = makePosix; // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' - // 'd:\\foo' - const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + if (ast.type === "JSXElement" && ast.openingElement.name.name === "style" && ast.openingElement.attributes.some(attr => attr.name.name === "jsx")) { + for (const { + type, + expression + } of newObj.children) { + if (type === "JSXExpressionContainer" && expression.type === "TemplateLiteral") { + removeTemplateElementsValue(expression); + } + } + } // CSS template literals in css prop - checkPath.isNotRelative = path => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path); -} -var slash$1 = path => { - const isExtendedLengthPath = /^\\\\\?\\/.test(path); - const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex + if (ast.type === "JSXAttribute" && ast.name.name === "css" && ast.value.type === "JSXExpressionContainer" && ast.value.expression.type === "TemplateLiteral") { + removeTemplateElementsValue(newObj.value.expression); + } // We change quotes - if (isExtendedLengthPath || hasNonAscii) { - return path; - } - return path.replace(/\\/g, '/'); -}; + if (ast.type === "JSXAttribute" && ast.value && ast.value.type === "Literal" && /["']|"|'/.test(ast.value.value)) { + newObj.value.value = newObj.value.value.replace(/["']|"|'/g, '"'); + } // Angular Components: Inline HTML template and Inline CSS styles -const { - promisify: promisify$1 -} = util__default['default']; -const DEFAULT_IGNORE = ['**/node_modules/**', '**/flow-typed/**', '**/coverage/**', '**/.git']; -const readFileP = promisify$1(fs__default['default'].readFile); -const mapGitIgnorePatternTo = base => ignore => { - if (ignore.startsWith('!')) { - return '!' + path__default['default'].posix.join(base, ignore.slice(1)); - } + const expression = ast.expression || ast.callee; - return path__default['default'].posix.join(base, ignore); -}; + if (ast.type === "Decorator" && expression.type === "CallExpression" && expression.callee.name === "Component" && expression.arguments.length === 1) { + const astProps = ast.expression.arguments[0].properties; -const parseGitIgnore = (content, options) => { - const base = slash$1(path__default['default'].relative(options.cwd, path__default['default'].dirname(options.fileName))); - return content.split(/\r?\n/).filter(Boolean).filter(line => !line.startsWith('#')).map(mapGitIgnorePatternTo(base)); -}; + for (const [index, prop] of newObj.expression.arguments[0].properties.entries()) { + switch (astProps[index].key.name) { + case "styles": + if (prop.value.type === "ArrayExpression") { + removeTemplateElementsValue(prop.value.elements[0]); + } -const reduceIgnore = files => { - return files.reduce((ignores, file) => { - ignores.add(parseGitIgnore(file.content, { - cwd: file.cwd, - fileName: file.filePath - })); - return ignores; - }, ignore$1()); -}; + break; -const ensureAbsolutePathForCwd = (cwd, p) => { - cwd = slash$1(cwd); + case "template": + if (prop.value.type === "TemplateLiteral") { + removeTemplateElementsValue(prop.value); + } - if (path__default['default'].isAbsolute(p)) { - if (p.startsWith(cwd)) { - return p; + break; + } } + } // styled-components, graphql, markdown - throw new Error(`Path ${p} is not in cwd ${cwd}`); - } - - return path__default['default'].join(cwd, p); -}; - -const getIsIgnoredPredecate = (ignores, cwd) => { - return p => ignores.ignores(slash$1(path__default['default'].relative(cwd, ensureAbsolutePathForCwd(cwd, p)))); -}; - -const getFile = async (file, cwd) => { - const filePath = path__default['default'].join(cwd, file); - const content = await readFileP(filePath, 'utf8'); - return { - cwd, - filePath, - content - }; -}; -const getFileSync = (file, cwd) => { - const filePath = path__default['default'].join(cwd, file); - const content = fs__default['default'].readFileSync(filePath, 'utf8'); - return { - cwd, - filePath, - content - }; -}; + if (ast.type === "TaggedTemplateExpression" && (ast.tag.type === "MemberExpression" || ast.tag.type === "Identifier" && (ast.tag.name === "gql" || ast.tag.name === "graphql" || ast.tag.name === "css" || ast.tag.name === "md" || ast.tag.name === "markdown" || ast.tag.name === "html") || ast.tag.type === "CallExpression")) { + removeTemplateElementsValue(newObj.quasi); + } -const normalizeOptions$3 = ({ - ignore = [], - cwd = slash$1(process.cwd()) -} = {}) => { - return { - ignore, - cwd - }; -}; + if (ast.type === "TemplateLiteral") { + // This checks for a leading comment that is exactly `/* GraphQL */` + // In order to be in line with other implementations of this comment tag + // we will not trim the comment value and we will expect exactly one space on + // either side of the GraphQL string + // Also see ./embed.js + const hasLanguageComment = ast.leadingComments && ast.leadingComments.some(comment => isBlockComment$4(comment) && ["GraphQL", "HTML"].some(languageName => comment.value === ` ${languageName} `)); -var gitignore = async options => { - options = normalizeOptions$3(options); - const paths = await out$3('**/.gitignore', { - ignore: DEFAULT_IGNORE.concat(options.ignore), - cwd: options.cwd - }); - const files = await Promise.all(paths.map(file => getFile(file, options.cwd))); - const ignores = reduceIgnore(files); - return getIsIgnoredPredecate(ignores, options.cwd); -}; + if (hasLanguageComment || parent.type === "CallExpression" && parent.callee.name === "graphql" || // TODO: check parser + // `flow` and `typescript` don't have `leadingComments` + !ast.leadingComments) { + removeTemplateElementsValue(newObj); + } + } -var sync$8 = options => { - options = normalizeOptions$3(options); - const paths = out$3.sync('**/.gitignore', { - ignore: DEFAULT_IGNORE.concat(options.ignore), - cwd: options.cwd - }); - const files = paths.map(file => getFileSync(file, options.cwd)); - const ignores = reduceIgnore(files); - return getIsIgnoredPredecate(ignores, options.cwd); -}; -gitignore.sync = sync$8; + if (ast.type === "InterpreterDirective") { + newObj.value = newObj.value.trimEnd(); + } // Prettier removes degenerate union and intersection types with only one member. -const { - Transform -} = stream__default['default']; -class ObjectTransform extends Transform { - constructor() { - super({ - objectMode: true - }); + if ((ast.type === "TSIntersectionType" || ast.type === "TSUnionType") && ast.types.length === 1) { + return newObj.types[0]; } - } -class FilterStream extends ObjectTransform { - constructor(filter) { - super(); - this._filter = filter; +clean$7.ignoredProperties = ignoredProperties$4; +var clean_1$4 = clean$7; + +const detectNewline = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); } - _transform(data, encoding, callback) { - if (this._filter(data)) { - this.push(data); - } + const newlines = string.match(/(?:\r?\n)/g) || []; - callback(); + if (newlines.length === 0) { + return; } -} + const crlf = newlines.filter(newline => newline === '\r\n').length; + const lf = newlines.length - crlf; + return crlf > lf ? '\r\n' : '\n'; +}; -class UniqueStream extends ObjectTransform { - constructor() { - super(); - this._pushed = new Set(); - } +var detectNewline_1 = detectNewline; - _transform(data, encoding, callback) { - if (!this._pushed.has(data)) { - this.push(data); +var graceful = string => typeof string === 'string' && detectNewline(string) || '\n'; +detectNewline_1.graceful = graceful; - this._pushed.add(data); - } +var extract_1 = extract$1; +var strip_1 = strip$1; +var parse_1$1 = parse$1; +var parseWithComments_1 = parseWithComments$1; +var print_1$1 = print$3; - callback(); - } +function _os() { + const data = os__default['default']; + _os = function () { + return data; + }; + + return data; } -var streamUtils = { - FilterStream, - UniqueStream -}; +function _detectNewline() { + const data = _interopRequireDefault(detectNewline_1); -const { - FilterStream: FilterStream$1, - UniqueStream: UniqueStream$1 -} = streamUtils; + _detectNewline = function () { + return data; + }; -const DEFAULT_FILTER = () => false; + return data; +} -const isNegative = pattern => pattern[0] === '!'; +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ -const assertPatternsInput$1 = patterns => { - if (!patterns.every(pattern => typeof pattern === 'string')) { - throw new TypeError('Patterns must be a string or an array of strings'); - } -}; -const checkCwdOption = (options = {}) => { - if (!options.cwd) { - return; - } +const commentEndRe = /\*\/$/; +const commentStartRe = /^\/\*\*/; +const docblockRe = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/; +const lineCommentRe = /(^|\s+)\/\/([^\r\n]*)/g; +const ltrimNewlineRe = /^(\r?\n)+/; +const multilineRe = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g; +const propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g; +const stringStartRe = /(\r?\n|^) *\* ?/g; +const STRING_ARRAY = []; - let stat; +function extract$1(contents) { + const match = contents.match(docblockRe); + return match ? match[0].trimLeft() : ''; +} - try { - stat = fs__default['default'].statSync(options.cwd); - } catch (_) { - return; - } +function strip$1(contents) { + const match = contents.match(docblockRe); + return match && match[0] ? contents.substring(match[0].length) : contents; +} - if (!stat.isDirectory()) { - throw new Error('The `cwd` option must be a path to a directory'); - } -}; +function parse$1(docblock) { + return parseWithComments$1(docblock).pragmas; +} -const getPathString = p => p.stats instanceof fs__default['default'].Stats ? p.path : p; +function parseWithComments$1(docblock) { + const line = (0, _detectNewline().default)(docblock) || _os().EOL; -const generateGlobTasks = (patterns, taskOptions) => { - patterns = arrayUnion([].concat(patterns)); - assertPatternsInput$1(patterns); - checkCwdOption(taskOptions); - const globTasks = []; - taskOptions = Object.assign({ - ignore: [], - expandDirectories: true - }, taskOptions); + docblock = docblock.replace(commentStartRe, '').replace(commentEndRe, '').replace(stringStartRe, '$1'); // Normalize multi-line directives - for (const [index, pattern] of patterns.entries()) { - if (isNegative(pattern)) { - continue; - } + let prev = ''; - const ignore = patterns.slice(index).filter(isNegative).map(pattern => pattern.slice(1)); - const options = Object.assign({}, taskOptions, { - ignore: taskOptions.ignore.concat(ignore) - }); - globTasks.push({ - pattern, - options - }); + while (prev !== docblock) { + prev = docblock; + docblock = docblock.replace(multilineRe, `${line}$1 $2${line}`); } - return globTasks; -}; - -const globDirs = (task, fn) => { - let options = {}; + docblock = docblock.replace(ltrimNewlineRe, '').trimRight(); + const result = Object.create(null); + const comments = docblock.replace(propertyRe, '').replace(ltrimNewlineRe, '').trimRight(); + let match; - if (task.options.cwd) { - options.cwd = task.options.cwd; - } + while (match = propertyRe.exec(docblock)) { + // strip linecomments from pragmas + const nextPragma = match[2].replace(lineCommentRe, ''); - if (Array.isArray(task.options.expandDirectories)) { - options = Object.assign({}, options, { - files: task.options.expandDirectories - }); - } else if (typeof task.options.expandDirectories === 'object') { - options = Object.assign({}, options, task.options.expandDirectories); + if (typeof result[match[1]] === 'string' || Array.isArray(result[match[1]])) { + result[match[1]] = STRING_ARRAY.concat(result[match[1]], nextPragma); + } else { + result[match[1]] = nextPragma; + } } - return fn(task.pattern, options); -}; + return { + comments, + pragmas: result + }; +} -const getPattern = (task, fn) => task.options.expandDirectories ? globDirs(task, fn) : [task.pattern]; +function print$3({ + comments = '', + pragmas = {} +}) { + const line = (0, _detectNewline().default)(comments) || _os().EOL; -const getFilterSync = options => { - return options && options.gitignore ? gitignore.sync({ - cwd: options.cwd, - ignore: options.ignore - }) : DEFAULT_FILTER; -}; + const head = '/**'; + const start = ' *'; + const tail = ' */'; + const keys = Object.keys(pragmas); + const printedObject = keys.map(key => printKeyValues(key, pragmas[key])).reduce((arr, next) => arr.concat(next), []).map(keyValue => start + ' ' + keyValue + line).join(''); -const globToTask = task => glob => { - const { - options - } = task; + if (!comments) { + if (keys.length === 0) { + return ''; + } - if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { - options.ignore = dirGlob.sync(options.ignore); + if (keys.length === 1 && !Array.isArray(pragmas[keys[0]])) { + const value = pragmas[keys[0]]; + return `${head} ${printKeyValues(keys[0], value)[0]}${tail}`; + } } - return { - pattern: glob, - options - }; -}; - -var globby$1 = async (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - - const getFilter = async () => { - return options && options.gitignore ? gitignore({ - cwd: options.cwd, - ignore: options.ignore - }) : DEFAULT_FILTER; - }; + const printedComments = comments.split(line).map(textLine => `${start} ${textLine}`).join(line) + line; + return head + line + (comments ? printedComments : '') + (comments && keys.length ? start + line : '') + printedObject + tail; +} - const getTasks = async () => { - const tasks = await Promise.all(globTasks.map(async task => { - const globs = await getPattern(task, dirGlob); - return Promise.all(globs.map(globToTask(task))); - })); - return arrayUnion(...tasks); - }; +function printKeyValues(key, valueOrArray) { + return STRING_ARRAY.concat(valueOrArray).map(value => `@${key} ${value}`.trim()); +} - const [filter, tasks] = await Promise.all([getFilter(), getTasks()]); - const paths = await Promise.all(tasks.map(task => out$3(task.pattern, task.options))); - return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_))); -}; +var build = /*#__PURE__*/Object.defineProperty({ + extract: extract_1, + strip: strip_1, + parse: parse_1$1, + parseWithComments: parseWithComments_1, + print: print_1$1 +}, '__esModule', { + value: true +}); -var sync$9 = (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - const tasks = globTasks.reduce((tasks, task) => { - const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); - const filter = getFilterSync(options); - return tasks.reduce((matches, task) => arrayUnion(matches, out$3.sync(task.pattern, task.options)), []).filter(path_ => !filter(path_)); -}; +const { + parseWithComments, + strip, + extract, + print: print$2 +} = build; +const { + getShebang +} = util$5; +const { + normalizeEndOfLine +} = endOfLine; -var stream$5 = (patterns, options) => { - const globTasks = generateGlobTasks(patterns, options); - const tasks = globTasks.reduce((tasks, task) => { - const newTask = getPattern(task, dirGlob.sync).map(globToTask(task)); - return tasks.concat(newTask); - }, []); - const filter = getFilterSync(options); - const filterStream = new FilterStream$1(p => !filter(p)); - const uniqueStream = new UniqueStream$1(); - return merge2_1(tasks.map(task => out$3.stream(task.pattern, task.options))).pipe(filterStream).pipe(uniqueStream); -}; +function parseDocBlock(text) { + const shebang = getShebang(text); -var generateGlobTasks_1 = generateGlobTasks; + if (shebang) { + text = text.slice(shebang.length + 1); + } -var hasMagic = (patterns, options) => [].concat(patterns).some(pattern => out$3.isDynamicPattern(pattern, options)); + const docBlock = extract(text); + const { + pragmas, + comments + } = parseWithComments(docBlock); + return { + shebang, + text, + pragmas, + comments + }; +} -var gitignore_1 = gitignore; -globby$1.sync = sync$9; -globby$1.stream = stream$5; -globby$1.generateGlobTasks = generateGlobTasks_1; -globby$1.hasMagic = hasMagic; -globby$1.gitignore = gitignore_1; +function hasPragma$4(text) { + const pragmas = Object.keys(parseDocBlock(text).pragmas); + return pragmas.includes("prettier") || pragmas.includes("format"); +} -var createLanguage = function (linguistData, override) { +function insertPragma$a(originalText) { const { - languageId - } = linguistData, - rest = _objectWithoutPropertiesLoose(linguistData, ["languageId"]); + shebang, + text, + pragmas, + comments + } = parseDocBlock(originalText); + const strippedText = strip(text); + const docBlock = print$2({ + pragmas: Object.assign({ + format: "" + }, pragmas), + comments: comments.trimStart() + }); + return (shebang ? `${shebang}\n` : "") + // normalise newlines (mitigate use of os.EOL by jest-docblock) + normalizeEndOfLine(docBlock) + (strippedText.startsWith("\n") ? "\n" : "\n\n") + strippedText; +} - return Object.assign({ - linguistLanguageId: languageId - }, rest, override(linguistData)); +var pragma$5 = { + hasPragma: hasPragma$4, + insertPragma: insertPragma$a }; const { - getLast: getLast$1, - hasNewline: hasNewline$3, - getNextNonSpaceNonCommentCharacterIndexWithStartIndex: getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1, + getLast: getLast$c, + hasNewline: hasNewline$6, + getNextNonSpaceNonCommentCharacterIndexWithStartIndex, getNextNonSpaceNonCommentCharacter: getNextNonSpaceNonCommentCharacter$1, - hasNewlineInRange: hasNewlineInRange$2, - isNodeIgnoreComment: isNodeIgnoreComment$1, - addLeadingComment: addLeadingComment$3, - addTrailingComment: addTrailingComment$3, - addDanglingComment: addDanglingComment$3, - getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$2 -} = util; + hasNewlineInRange: hasNewlineInRange$3, + addLeadingComment, + addTrailingComment, + addDanglingComment, + getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$2, + isNonEmptyArray: isNonEmptyArray$f +} = util$5; +const { + isBlockComment: isBlockComment$3, + getFunctionParameters: getFunctionParameters$5, + isPrettierIgnoreComment, + isJsxNode: isJsxNode$6, + hasFlowShorthandAnnotationComment: hasFlowShorthandAnnotationComment$2, + hasFlowAnnotationComment: hasFlowAnnotationComment$1, + hasIgnoreComment: hasIgnoreComment$1, + isCallLikeExpression: isCallLikeExpression$1, + getCallArguments: getCallArguments$4, + isCallExpression: isCallExpression$c, + isMemberExpression: isMemberExpression$8, + isObjectProperty: isObjectProperty$4 +} = utils$5; +const { + locStart: locStart$n, + locEnd: locEnd$m +} = loc$6; +/** + * @typedef {import("./types/estree").Node} Node + * @typedef {import("./types/estree").Comment} Comment + * @typedef {import("../common/ast-path")} AstPath + * + * @typedef {Object} CommentContext + * @property {Comment} comment + * @property {Node} precedingNode + * @property {Node} enclosingNode + * @property {Node} followingNode + * @property {string} text + * @property {any} options + * @property {Node} ast + * @property {boolean} isLastComment + */ -function handleOwnLineComment(comment, text, options, ast, isLastComment) { - const { - precedingNode, - enclosingNode, - followingNode - } = comment; - return handleLastFunctionArgComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleMemberExpressionComments(enclosingNode, followingNode, comment) || handleIfStatementComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleWhileComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleTryStatementComments(enclosingNode, precedingNode, followingNode, comment) || handleClassComments(enclosingNode, precedingNode, followingNode, comment) || handleImportSpecifierComments(enclosingNode, comment) || handleForComments(enclosingNode, precedingNode, comment) || handleUnionTypeComments(precedingNode, enclosingNode, followingNode, comment) || handleOnlyComments(enclosingNode, ast, comment, isLastComment) || handleImportDeclarationComments(text, enclosingNode, precedingNode, comment, options) || handleAssignmentPatternComments(enclosingNode, comment) || handleMethodNameComments(text, enclosingNode, precedingNode, comment, options) || handleLabeledStatementComments(enclosingNode, comment); -} +/** + * @param {CommentContext} context + * @returns {boolean} + */ -function handleEndOfLineComment(comment, text, options, ast, isLastComment) { - const { - precedingNode, - enclosingNode, - followingNode - } = comment; - return handleClosureTypeCastComments(followingNode, comment) || handleLastFunctionArgComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleConditionalExpressionComments(enclosingNode, precedingNode, followingNode, comment, text, options) || handleImportSpecifierComments(enclosingNode, comment) || handleIfStatementComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleWhileComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleTryStatementComments(enclosingNode, precedingNode, followingNode, comment) || handleClassComments(enclosingNode, precedingNode, followingNode, comment) || handleLabeledStatementComments(enclosingNode, comment) || handleCallExpressionComments(precedingNode, enclosingNode, comment) || handlePropertyComments(enclosingNode, comment) || handleOnlyComments(enclosingNode, ast, comment, isLastComment) || handleTypeAliasComments(enclosingNode, followingNode, comment) || handleVariableDeclaratorComments(enclosingNode, followingNode, comment); +function handleOwnLineComment(context) { + return [handleIgnoreComments, handleLastFunctionArgComments, handleMemberExpressionComments, handleIfStatementComments, handleWhileComments, handleTryStatementComments, handleClassComments, handleImportSpecifierComments, handleForComments, handleUnionTypeComments, handleOnlyComments, handleImportDeclarationComments, handleAssignmentPatternComments, handleMethodNameComments, handleLabeledStatementComments].some(fn => fn(context)); } +/** + * @param {CommentContext} context + * @returns {boolean} + */ -function handleRemainingComment(comment, text, options, ast, isLastComment) { - const { - precedingNode, - enclosingNode, - followingNode - } = comment; - if (handleIfStatementComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleWhileComments(text, precedingNode, enclosingNode, followingNode, comment, options) || handleObjectPropertyAssignment(enclosingNode, precedingNode, comment) || handleCommentInEmptyParens(text, enclosingNode, comment, options) || handleMethodNameComments(text, enclosingNode, precedingNode, comment, options) || handleOnlyComments(enclosingNode, ast, comment, isLastComment) || handleCommentAfterArrowParams(text, enclosingNode, comment, options) || handleFunctionNameComments(text, enclosingNode, precedingNode, comment, options) || handleTSMappedTypeComments(text, enclosingNode, precedingNode, followingNode, comment) || handleBreakAndContinueStatementComments(enclosingNode, comment) || handleTSFunctionTrailingComments(text, enclosingNode, followingNode, comment, options)) { - return true; - } +function handleEndOfLineComment(context) { + return [handleClosureTypeCastComments, handleLastFunctionArgComments, handleConditionalExpressionComments, handleImportSpecifierComments, handleIfStatementComments, handleWhileComments, handleTryStatementComments, handleClassComments, handleLabeledStatementComments, handleCallExpressionComments, handlePropertyComments, handleOnlyComments, handleTypeAliasComments, handleVariableDeclaratorComments].some(fn => fn(context)); +} +/** + * @param {CommentContext} context + * @returns {boolean} + */ - return false; + +function handleRemainingComment(context) { + return [handleIgnoreComments, handleIfStatementComments, handleWhileComments, handleObjectPropertyAssignment, handleCommentInEmptyParens, handleMethodNameComments, handleOnlyComments, handleCommentAfterArrowParams, handleFunctionNameComments, handleTSMappedTypeComments, handleBreakAndContinueStatementComments, handleTSFunctionTrailingComments].some(fn => fn(context)); } +/** + * @param {Node} node + * @returns {void} + */ + function addBlockStatementFirstComment(node, comment) { - const body = (node.body || node.properties).filter(n => n.type !== "EmptyStatement"); + // @ts-ignore + const firstNonEmptyNode = (node.body || node.properties).find(({ + type + }) => type !== "EmptyStatement"); - if (body.length === 0) { - addDanglingComment$3(node, comment); + if (firstNonEmptyNode) { + addLeadingComment(firstNonEmptyNode, comment); } else { - addLeadingComment$3(body[0], comment); + addDanglingComment(node, comment); } } +/** + * @param {Node} node + * @returns {void} + */ + function addBlockOrNotComment(node, comment) { if (node.type === "BlockStatement") { addBlockStatementFirstComment(node, comment); } else { - addLeadingComment$3(node, comment); + addLeadingComment(node, comment); } } -function handleClosureTypeCastComments(followingNode, comment) { +function handleClosureTypeCastComments({ + comment, + followingNode +}) { if (followingNode && isTypeCastComment(comment)) { - addLeadingComment$3(followingNode, comment); + addLeadingComment(followingNode, comment); return true; } @@ -37227,7 +41192,13 @@ function handleClosureTypeCastComments(followingNode, comment) { // } -function handleIfStatementComments(text, precedingNode, enclosingNode, followingNode, comment, options) { +function handleIfStatementComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text +}) { if (!enclosingNode || enclosingNode.type !== "IfStatement" || !followingNode) { return false; } // We unfortunately have no way using the AST or location of nodes to know @@ -37237,10 +41208,10 @@ function handleIfStatementComments(text, precedingNode, enclosingNode, following // it is a ). - const nextCharacter = getNextNonSpaceNonCommentCharacter$1(text, comment, options.locEnd); + const nextCharacter = getNextNonSpaceNonCommentCharacter$1(text, comment, locEnd$m); if (nextCharacter === ")") { - addTrailingComment$3(precedingNode, comment); + addTrailingComment(precedingNode, comment); return true; } // Comments before `else`: // - treat as trailing comments of the consequent, if it's a BlockStatement @@ -37249,9 +41220,9 @@ function handleIfStatementComments(text, precedingNode, enclosingNode, following if (precedingNode === enclosingNode.consequent && followingNode === enclosingNode.alternate) { if (precedingNode.type === "BlockStatement") { - addTrailingComment$3(precedingNode, comment); + addTrailingComment(precedingNode, comment); } else { - addDanglingComment$3(enclosingNode, comment); + addDanglingComment(enclosingNode, comment); } return true; @@ -37273,14 +41244,20 @@ function handleIfStatementComments(text, precedingNode, enclosingNode, following if (enclosingNode.consequent === followingNode) { - addLeadingComment$3(followingNode, comment); + addLeadingComment(followingNode, comment); return true; } return false; } -function handleWhileComments(text, precedingNode, enclosingNode, followingNode, comment, options) { +function handleWhileComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text +}) { if (!enclosingNode || enclosingNode.type !== "WhileStatement" || !followingNode) { return false; } // We unfortunately have no way using the AST or location of nodes to know @@ -37290,10 +41267,10 @@ function handleWhileComments(text, precedingNode, enclosingNode, followingNode, // it is a ). - const nextCharacter = getNextNonSpaceNonCommentCharacter$1(text, comment, options.locEnd); + const nextCharacter = getNextNonSpaceNonCommentCharacter$1(text, comment, locEnd$m); if (nextCharacter === ")") { - addTrailingComment$3(precedingNode, comment); + addTrailingComment(precedingNode, comment); return true; } @@ -37302,17 +41279,27 @@ function handleWhileComments(text, precedingNode, enclosingNode, followingNode, return true; } + if (enclosingNode.body === followingNode) { + addLeadingComment(followingNode, comment); + return true; + } + return false; } // Same as IfStatement but for TryStatement -function handleTryStatementComments(enclosingNode, precedingNode, followingNode, comment) { +function handleTryStatementComments({ + comment, + precedingNode, + enclosingNode, + followingNode +}) { if (!enclosingNode || enclosingNode.type !== "TryStatement" && enclosingNode.type !== "CatchClause" || !followingNode) { return false; } if (enclosingNode.type === "CatchClause" && precedingNode) { - addTrailingComment$3(precedingNode, comment); + addTrailingComment(precedingNode, comment); return true; } @@ -37334,39 +41321,58 @@ function handleTryStatementComments(enclosingNode, precedingNode, followingNode, return false; } -function handleMemberExpressionComments(enclosingNode, followingNode, comment) { - if (enclosingNode && (enclosingNode.type === "MemberExpression" || enclosingNode.type === "OptionalMemberExpression") && followingNode && followingNode.type === "Identifier") { - addLeadingComment$3(enclosingNode, comment); +function handleMemberExpressionComments({ + comment, + enclosingNode, + followingNode +}) { + if (isMemberExpression$8(enclosingNode) && followingNode && followingNode.type === "Identifier") { + addLeadingComment(enclosingNode, comment); return true; } return false; } -function handleConditionalExpressionComments(enclosingNode, precedingNode, followingNode, comment, text, options) { - const isSameLineAsPrecedingNode = precedingNode && !hasNewlineInRange$2(text, options.locEnd(precedingNode), options.locStart(comment)); +function handleConditionalExpressionComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text +}) { + const isSameLineAsPrecedingNode = precedingNode && !hasNewlineInRange$3(text, locEnd$m(precedingNode), locStart$n(comment)); if ((!precedingNode || !isSameLineAsPrecedingNode) && enclosingNode && (enclosingNode.type === "ConditionalExpression" || enclosingNode.type === "TSConditionalType") && followingNode) { - addLeadingComment$3(followingNode, comment); + addLeadingComment(followingNode, comment); return true; } return false; } -function handleObjectPropertyAssignment(enclosingNode, precedingNode, comment) { - if (enclosingNode && (enclosingNode.type === "ObjectProperty" || enclosingNode.type === "Property") && enclosingNode.shorthand && enclosingNode.key === precedingNode && enclosingNode.value.type === "AssignmentPattern") { - addTrailingComment$3(enclosingNode.value.left, comment); +function handleObjectPropertyAssignment({ + comment, + precedingNode, + enclosingNode +}) { + if (isObjectProperty$4(enclosingNode) && enclosingNode.shorthand && enclosingNode.key === precedingNode && enclosingNode.value.type === "AssignmentPattern") { + addTrailingComment(enclosingNode.value.left, comment); return true; } return false; } -function handleClassComments(enclosingNode, precedingNode, followingNode, comment) { +function handleClassComments({ + comment, + precedingNode, + enclosingNode, + followingNode +}) { if (enclosingNode && (enclosingNode.type === "ClassDeclaration" || enclosingNode.type === "ClassExpression" || enclosingNode.type === "DeclareClass" || enclosingNode.type === "DeclareInterface" || enclosingNode.type === "InterfaceDeclaration" || enclosingNode.type === "TSInterfaceDeclaration")) { - if (enclosingNode.decorators && enclosingNode.decorators.length > 0 && !(followingNode && followingNode.type === "Decorator")) { - addTrailingComment$3(enclosingNode.decorators[enclosingNode.decorators.length - 1], comment); + if (isNonEmptyArray$f(enclosingNode.decorators) && !(followingNode && followingNode.type === "Decorator")) { + addTrailingComment(getLast$c(enclosingNode.decorators), comment); return true; } @@ -37381,9 +41387,9 @@ function handleClassComments(enclosingNode, precedingNode, followingNode, commen for (const prop of ["implements", "extends", "mixins"]) { if (enclosingNode[prop] && followingNode === enclosingNode[prop][0]) { if (precedingNode && (precedingNode === enclosingNode.id || precedingNode === enclosingNode.typeParameters || precedingNode === enclosingNode.superClass)) { - addTrailingComment$3(precedingNode, comment); + addTrailingComment(precedingNode, comment); } else { - addDanglingComment$3(enclosingNode, comment, prop); + addDanglingComment(enclosingNode, comment, prop); } return true; @@ -37395,2134 +41401,1559 @@ function handleClassComments(enclosingNode, precedingNode, followingNode, commen return false; } -function handleMethodNameComments(text, enclosingNode, precedingNode, comment, options) { +function handleMethodNameComments({ + comment, + precedingNode, + enclosingNode, + text +}) { // This is only needed for estree parsers (flow, typescript) to attach // after a method name: // obj = { fn /*comment*/() {} }; if (enclosingNode && precedingNode && ( // "MethodDefinition" is handled in getCommentChildNodes enclosingNode.type === "Property" || enclosingNode.type === "TSDeclareMethod" || enclosingNode.type === "TSAbstractMethodDefinition") && precedingNode.type === "Identifier" && enclosingNode.key === precedingNode && // special Property case: { key: /*comment*/(value) }; - // comment should be attached to value instead of key - getNextNonSpaceNonCommentCharacter$1(text, precedingNode, options.locEnd) !== ":") { - addTrailingComment$3(precedingNode, comment); - return true; - } // Print comments between decorators and class methods as a trailing comment - // on the decorator node instead of the method node - - - if (precedingNode && enclosingNode && precedingNode.type === "Decorator" && (enclosingNode.type === "ClassMethod" || enclosingNode.type === "ClassProperty" || enclosingNode.type === "TSAbstractClassProperty" || enclosingNode.type === "TSAbstractMethodDefinition" || enclosingNode.type === "TSDeclareMethod" || enclosingNode.type === "MethodDefinition")) { - addTrailingComment$3(precedingNode, comment); - return true; - } - - return false; -} - -function handleFunctionNameComments(text, enclosingNode, precedingNode, comment, options) { - if (getNextNonSpaceNonCommentCharacter$1(text, comment, options.locEnd) !== "(") { - return false; - } - - if (precedingNode && enclosingNode && (enclosingNode.type === "FunctionDeclaration" || enclosingNode.type === "FunctionExpression" || enclosingNode.type === "ClassMethod" || enclosingNode.type === "MethodDefinition" || enclosingNode.type === "ObjectMethod")) { - addTrailingComment$3(precedingNode, comment); - return true; - } - - return false; -} - -function handleCommentAfterArrowParams(text, enclosingNode, comment, options) { - if (!(enclosingNode && enclosingNode.type === "ArrowFunctionExpression")) { - return false; - } - - const index = getNextNonSpaceNonCommentCharacterIndex$2(text, comment, options.locEnd); - - if (index !== false && text.slice(index, index + 2) === "=>") { - addDanglingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleCommentInEmptyParens(text, enclosingNode, comment, options) { - if (getNextNonSpaceNonCommentCharacter$1(text, comment, options.locEnd) !== ")") { - return false; - } // Only add dangling comments to fix the case when no params are present, - // i.e. a function without any argument. - - - if (enclosingNode && (isRealFunctionLikeNode(enclosingNode) && // `params` vs `parameters` - see https://github.com/babel/babel/issues/9231 - (enclosingNode.params || enclosingNode.parameters).length === 0 || (enclosingNode.type === "CallExpression" || enclosingNode.type === "OptionalCallExpression" || enclosingNode.type === "NewExpression") && enclosingNode.arguments.length === 0)) { - addDanglingComment$3(enclosingNode, comment); - return true; - } - - if (enclosingNode && enclosingNode.type === "MethodDefinition" && enclosingNode.value.params.length === 0) { - addDanglingComment$3(enclosingNode.value, comment); - return true; - } - - return false; -} - -function handleLastFunctionArgComments(text, precedingNode, enclosingNode, followingNode, comment, options) { - // Flow function type definitions - if (precedingNode && precedingNode.type === "FunctionTypeParam" && enclosingNode && enclosingNode.type === "FunctionTypeAnnotation" && followingNode && followingNode.type !== "FunctionTypeParam") { - addTrailingComment$3(precedingNode, comment); - return true; - } // Real functions and TypeScript function type definitions - - - if (precedingNode && (precedingNode.type === "Identifier" || precedingNode.type === "AssignmentPattern") && enclosingNode && isRealFunctionLikeNode(enclosingNode) && getNextNonSpaceNonCommentCharacter$1(text, comment, options.locEnd) === ")") { - addTrailingComment$3(precedingNode, comment); - return true; - } - - if (enclosingNode && enclosingNode.type === "FunctionDeclaration" && followingNode && followingNode.type === "BlockStatement") { - const functionParamRightParenIndex = (() => { - if ((enclosingNode.params || enclosingNode.parameters).length !== 0) { - return getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1(text, options.locEnd(getLast$1(enclosingNode.params || enclosingNode.parameters))); - } - - const functionParamLeftParenIndex = getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1(text, options.locEnd(enclosingNode.id)); - return functionParamLeftParenIndex !== false && getNextNonSpaceNonCommentCharacterIndexWithStartIndex$1(text, functionParamLeftParenIndex + 1); - })(); - - if (options.locStart(comment) > functionParamRightParenIndex) { - addBlockStatementFirstComment(followingNode, comment); - return true; - } - } - - return false; -} - -function handleImportSpecifierComments(enclosingNode, comment) { - if (enclosingNode && enclosingNode.type === "ImportSpecifier") { - addLeadingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleLabeledStatementComments(enclosingNode, comment) { - if (enclosingNode && enclosingNode.type === "LabeledStatement") { - addLeadingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleBreakAndContinueStatementComments(enclosingNode, comment) { - if (enclosingNode && (enclosingNode.type === "ContinueStatement" || enclosingNode.type === "BreakStatement") && !enclosingNode.label) { - addTrailingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleCallExpressionComments(precedingNode, enclosingNode, comment) { - if (enclosingNode && (enclosingNode.type === "CallExpression" || enclosingNode.type === "OptionalCallExpression") && precedingNode && enclosingNode.callee === precedingNode && enclosingNode.arguments.length > 0) { - addLeadingComment$3(enclosingNode.arguments[0], comment); - return true; - } - - return false; -} - -function handleUnionTypeComments(precedingNode, enclosingNode, followingNode, comment) { - if (enclosingNode && (enclosingNode.type === "UnionTypeAnnotation" || enclosingNode.type === "TSUnionType")) { - if (isNodeIgnoreComment$1(comment)) { - followingNode.prettierIgnore = true; - comment.unignore = true; - } - - if (precedingNode) { - addTrailingComment$3(precedingNode, comment); - return true; - } - - return false; - } - - if (followingNode && (followingNode.type === "UnionTypeAnnotation" || followingNode.type === "TSUnionType") && isNodeIgnoreComment$1(comment)) { - followingNode.types[0].prettierIgnore = true; - comment.unignore = true; - } - - return false; -} - -function handlePropertyComments(enclosingNode, comment) { - if (enclosingNode && (enclosingNode.type === "Property" || enclosingNode.type === "ObjectProperty")) { - addLeadingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleOnlyComments(enclosingNode, ast, comment, isLastComment) { - // With Flow the enclosingNode is undefined so use the AST instead. - if (ast && ast.body && ast.body.length === 0) { - if (isLastComment) { - addDanglingComment$3(ast, comment); - } else { - addLeadingComment$3(ast, comment); - } - - return true; - } else if (enclosingNode && enclosingNode.type === "Program" && enclosingNode.body.length === 0 && enclosingNode.directives && enclosingNode.directives.length === 0) { - if (isLastComment) { - addDanglingComment$3(enclosingNode, comment); - } else { - addLeadingComment$3(enclosingNode, comment); - } - - return true; - } - - return false; -} - -function handleForComments(enclosingNode, precedingNode, comment) { - if (enclosingNode && (enclosingNode.type === "ForInStatement" || enclosingNode.type === "ForOfStatement")) { - addLeadingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleImportDeclarationComments(text, enclosingNode, precedingNode, comment, options) { - if (precedingNode && precedingNode.type === "ImportSpecifier" && enclosingNode && enclosingNode.type === "ImportDeclaration" && hasNewline$3(text, options.locEnd(comment))) { - addTrailingComment$3(precedingNode, comment); - return true; - } - - return false; -} - -function handleAssignmentPatternComments(enclosingNode, comment) { - if (enclosingNode && enclosingNode.type === "AssignmentPattern") { - addLeadingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleTypeAliasComments(enclosingNode, followingNode, comment) { - if (enclosingNode && enclosingNode.type === "TypeAlias") { - addLeadingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleVariableDeclaratorComments(enclosingNode, followingNode, comment) { - if (enclosingNode && (enclosingNode.type === "VariableDeclarator" || enclosingNode.type === "AssignmentExpression") && followingNode && (followingNode.type === "ObjectExpression" || followingNode.type === "ArrayExpression" || followingNode.type === "TemplateLiteral" || followingNode.type === "TaggedTemplateExpression" || isBlockComment(comment))) { - addLeadingComment$3(followingNode, comment); - return true; - } - - return false; -} - -function handleTSFunctionTrailingComments(text, enclosingNode, followingNode, comment, options) { - if (!followingNode && enclosingNode && (enclosingNode.type === "TSMethodSignature" || enclosingNode.type === "TSDeclareFunction" || enclosingNode.type === "TSAbstractMethodDefinition") && getNextNonSpaceNonCommentCharacter$1(text, comment, options.locEnd) === ";") { - addTrailingComment$3(enclosingNode, comment); - return true; - } - - return false; -} - -function handleTSMappedTypeComments(text, enclosingNode, precedingNode, followingNode, comment) { - if (!enclosingNode || enclosingNode.type !== "TSMappedType") { - return false; - } - - if (followingNode && followingNode.type === "TSTypeParameter" && followingNode.name) { - addLeadingComment$3(followingNode.name, comment); - return true; - } - - if (precedingNode && precedingNode.type === "TSTypeParameter" && precedingNode.constraint) { - addTrailingComment$3(precedingNode.constraint, comment); - return true; - } - - return false; -} - -function isBlockComment(comment) { - return comment.type === "Block" || comment.type === "CommentBlock"; -} -/** - * @param {any} node - * @param {(comment: any) => boolean} fn - * @returns boolean - */ - - -function hasLeadingComment(node, fn = () => true) { - if (node.leadingComments) { - return node.leadingComments.some(fn); - } - - if (node.comments) { - return node.comments.some(comment => comment.leading && fn(comment)); - } - - return false; -} - -function isRealFunctionLikeNode(node) { - return node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression" || node.type === "FunctionDeclaration" || node.type === "ObjectMethod" || node.type === "ClassMethod" || node.type === "TSDeclareFunction" || node.type === "TSCallSignatureDeclaration" || node.type === "TSConstructSignatureDeclaration" || node.type === "TSConstructSignatureDeclaration" || node.type === "TSMethodSignature" || node.type === "TSConstructorType" || node.type === "TSFunctionType" || node.type === "TSDeclareMethod"; -} - -function getGapRegex(enclosingNode) { - if (enclosingNode && enclosingNode.type !== "BinaryExpression" && enclosingNode.type !== "LogicalExpression") { - // Support degenerate single-element unions and intersections. - // E.g.: `type A = /* 1 */ & B` - return /^[\s&(|]*$/; - } -} - -function getCommentChildNodes(node, options) { - // Prevent attaching comments to FunctionExpression in this case: - // class Foo { - // bar() // comment - // { - // baz(); - // } - // } - if ((options.parser === "typescript" || options.parser === "flow") && node.type === "MethodDefinition" && node.value && node.value.type === "FunctionExpression" && node.value.params.length === 0 && !node.value.returnType && (!node.value.typeParameters || node.value.typeParameters.length === 0) && node.value.body) { - return [...(node.decorators || []), node.key, node.value.body]; - } -} - -function isTypeCastComment(comment) { - return isBlockComment(comment) && comment.value[0] === "*" && // TypeScript expects the type to be enclosed in curly brackets, however - // Closure Compiler accepts types in parens and even without any delimiters at all. - // That's why we just search for "@type". - /@type\b/.test(comment.value); -} - -var comments$1 = { - handleOwnLineComment, - handleEndOfLineComment, - handleRemainingComment, - hasLeadingComment, - isBlockComment, - isTypeCastComment, - getGapRegex, - getCommentChildNodes -}; - -const { - builders: { - indent: indent$2, - join: join$2, - line: line$3, - hardline: hardline$3, - softline: softline$1, - literalline: literalline$1, - concat: concat$4, - group: group$1, - dedentToRoot: dedentToRoot$1 - }, - utils: { - mapDoc: mapDoc$1 - } -} = document; -const { - isBlockComment: isBlockComment$1, - hasLeadingComment: hasLeadingComment$1 -} = comments$1; - -function embed(path, print, textToDoc, options) { - const node = path.getValue(); - const parent = path.getParentNode(); - const parentParent = path.getParentNode(1); - - switch (node.type) { - case "TemplateLiteral": - { - const isCss = [isStyledJsx, isStyledComponents, isCssProp, isAngularComponentStyles].some(isIt => isIt(path)); - - if (isCss) { - // Get full template literal with expressions replaced by placeholders - const rawQuasis = node.quasis.map(q => q.value.raw); - let placeholderID = 0; - const text = rawQuasis.reduce((prevVal, currVal, idx) => { - return idx === 0 ? currVal : prevVal + "@prettier-placeholder-" + placeholderID++ + "-id" + currVal; - }, ""); - const doc = textToDoc(text, { - parser: "scss" - }, { - stripTrailingHardline: true - }); - return transformCssDoc(doc, path, print); - } - /* - * react-relay and graphql-tag - * graphql`...` - * graphql.experimental`...` - * gql`...` - * - * This intentionally excludes Relay Classic tags, as Prettier does not - * support Relay Classic formatting. - */ - - - if (isGraphQL(path)) { - const expressionDocs = node.expressions ? path.map(print, "expressions") : []; - const numQuasis = node.quasis.length; - - if (numQuasis === 1 && node.quasis[0].value.raw.trim() === "") { - return "``"; - } - - const parts = []; - - for (let i = 0; i < numQuasis; i++) { - const templateElement = node.quasis[i]; - const isFirst = i === 0; - const isLast = i === numQuasis - 1; - const text = templateElement.value.cooked; // Bail out if any of the quasis have an invalid escape sequence - // (which would make the `cooked` value be `null` or `undefined`) - - if (typeof text !== "string") { - return null; - } - - const lines = text.split("\n"); - const numLines = lines.length; - const expressionDoc = expressionDocs[i]; - const startsWithBlankLine = numLines > 2 && lines[0].trim() === "" && lines[1].trim() === ""; - const endsWithBlankLine = numLines > 2 && lines[numLines - 1].trim() === "" && lines[numLines - 2].trim() === ""; - const commentsAndWhitespaceOnly = lines.every(line => /^\s*(?:#[^\n\r]*)?$/.test(line)); // Bail out if an interpolation occurs within a comment. - - if (!isLast && /#[^\n\r]*$/.test(lines[numLines - 1])) { - return null; - } - - let doc = null; - - if (commentsAndWhitespaceOnly) { - doc = printGraphqlComments(lines); - } else { - doc = textToDoc(text, { - parser: "graphql" - }, { - stripTrailingHardline: true - }); - } - - if (doc) { - doc = escapeTemplateCharacters(doc, false); - - if (!isFirst && startsWithBlankLine) { - parts.push(""); - } - - parts.push(doc); - - if (!isLast && endsWithBlankLine) { - parts.push(""); - } - } else if (!isFirst && !isLast && startsWithBlankLine) { - parts.push(""); - } - - if (expressionDoc) { - parts.push(concat$4(["${", expressionDoc, "}"])); - } - } - - return concat$4(["`", indent$2(concat$4([hardline$3, join$2(hardline$3, parts)])), hardline$3, "`"]); - } - - const htmlParser = isHtml(path) ? "html" : isAngularComponentTemplate(path) ? "angular" : undefined; - - if (htmlParser) { - return printHtmlTemplateLiteral(path, print, textToDoc, htmlParser, options); - } - - break; - } - - case "TemplateElement": - { - /** - * md`...` - * markdown`...` - */ - if (parentParent && parentParent.type === "TaggedTemplateExpression" && parent.quasis.length === 1 && parentParent.tag.type === "Identifier" && (parentParent.tag.name === "md" || parentParent.tag.name === "markdown")) { - const text = parent.quasis[0].value.raw.replace(/((?:\\\\)*)\\`/g, (_, backslashes) => "\\".repeat(backslashes.length / 2) + "`"); - const indentation = getIndentation(text); - const hasIndent = indentation !== ""; - return concat$4([hasIndent ? indent$2(concat$4([softline$1, printMarkdown(text.replace(new RegExp(`^${indentation}`, "gm"), ""))])) : concat$4([literalline$1, dedentToRoot$1(printMarkdown(text))]), softline$1]); - } - - break; - } - } - - function printMarkdown(text) { - const doc = textToDoc(text, { - parser: "markdown", - __inJsTemplate: true - }, { - stripTrailingHardline: true - }); - return escapeTemplateCharacters(doc, true); - } -} - -function getIndentation(str) { - const firstMatchedIndent = str.match(/^([^\S\n]*)\S/m); - return firstMatchedIndent === null ? "" : firstMatchedIndent[1]; -} - -function uncook(cookedValue) { - return cookedValue.replace(/([\\`]|\${)/g, "\\$1"); -} - -function escapeTemplateCharacters(doc, raw) { - return mapDoc$1(doc, currentDoc => { - if (!currentDoc.parts) { - return currentDoc; - } - - const parts = currentDoc.parts.map(part => { - if (typeof part === "string") { - return raw ? part.replace(/(\\*)`/g, "$1$1\\`") : uncook(part); - } - - return part; - }); - return Object.assign({}, currentDoc, { - parts - }); - }); -} - -function transformCssDoc(quasisDoc, path, print) { - const parentNode = path.getValue(); - const isEmpty = parentNode.quasis.length === 1 && !parentNode.quasis[0].value.raw.trim(); - - if (isEmpty) { - return "``"; - } - - const expressionDocs = parentNode.expressions ? path.map(print, "expressions") : []; - const newDoc = replacePlaceholders(quasisDoc, expressionDocs); - /* istanbul ignore if */ - - if (!newDoc) { - throw new Error("Couldn't insert all the expressions"); - } - - return concat$4(["`", indent$2(concat$4([hardline$3, newDoc])), softline$1, "`"]); -} // Search all the placeholders in the quasisDoc tree -// and replace them with the expression docs one by one -// returns a new doc with all the placeholders replaced, -// or null if it couldn't replace any expression - - -function replacePlaceholders(quasisDoc, expressionDocs) { - if (!expressionDocs || !expressionDocs.length) { - return quasisDoc; - } - - let replaceCounter = 0; - const newDoc = mapDoc$1(quasisDoc, doc => { - if (!doc || !doc.parts || !doc.parts.length) { - return doc; - } - - let { - parts - } = doc; - const atIndex = parts.indexOf("@"); - const placeholderIndex = atIndex + 1; - - if (atIndex > -1 && typeof parts[placeholderIndex] === "string" && parts[placeholderIndex].startsWith("prettier-placeholder")) { - // If placeholder is split, join it - const at = parts[atIndex]; - const placeholder = parts[placeholderIndex]; - const rest = parts.slice(placeholderIndex + 1); - parts = parts.slice(0, atIndex).concat([at + placeholder]).concat(rest); - } - - const replacedParts = []; - parts.forEach(part => { - if (typeof part !== "string" || !part.includes("@prettier-placeholder")) { - replacedParts.push(part); - return; - } // When we have multiple placeholders in one line, like: - // ${Child}${Child2}:not(:first-child) - - - part.split(/@prettier-placeholder-(\d+)-id/).forEach((component, idx) => { - // The placeholder is always at odd indices - if (idx % 2 === 0) { - replacedParts.push(component); - return; - } // The component will always be a number at odd index - - - replacedParts.push("${", expressionDocs[component], "}"); - replaceCounter++; - }); - }); - return Object.assign({}, doc, { - parts: replacedParts - }); - }); - return expressionDocs.length === replaceCounter ? newDoc : null; -} - -function printGraphqlComments(lines) { - const parts = []; - let seenComment = false; - lines.map(textLine => textLine.trim()).forEach((textLine, i, array) => { - // Lines are either whitespace only, or a comment (with potential whitespace - // around it). Drop whitespace-only lines. - if (textLine === "") { - return; - } - - if (array[i - 1] === "" && seenComment) { - // If a non-first comment is preceded by a blank (whitespace only) line, - // add in a blank line. - parts.push(concat$4([hardline$3, textLine])); - } else { - parts.push(textLine); - } - - seenComment = true; - }); // If `lines` was whitespace only, return `null`. - - return parts.length === 0 ? null : join$2(hardline$3, parts); -} -/** - * Template literal in these contexts: - * - * css`` - * css.global`` - * css.resolve`` - */ + // comment should be attached to value instead of key + getNextNonSpaceNonCommentCharacter$1(text, precedingNode, locEnd$m) !== ":") { + addTrailingComment(precedingNode, comment); + return true; + } // Print comments between decorators and class methods as a trailing comment + // on the decorator node instead of the method node -function isStyledJsx(path) { - const node = path.getValue(); - const parent = path.getParentNode(); - const parentParent = path.getParentNode(1); - return parentParent && node.quasis && parent.type === "JSXExpressionContainer" && parentParent.type === "JSXElement" && parentParent.openingElement.name.name === "style" && parentParent.openingElement.attributes.some(attribute => attribute.name.name === "jsx") || parent && parent.type === "TaggedTemplateExpression" && parent.tag.type === "Identifier" && parent.tag.name === "css" || parent && parent.type === "TaggedTemplateExpression" && parent.tag.type === "MemberExpression" && parent.tag.object.name === "css" && (parent.tag.property.name === "global" || parent.tag.property.name === "resolve"); + if (precedingNode && enclosingNode && precedingNode.type === "Decorator" && (enclosingNode.type === "ClassMethod" || enclosingNode.type === "ClassProperty" || enclosingNode.type === "PropertyDefinition" || enclosingNode.type === "TSAbstractClassProperty" || enclosingNode.type === "TSAbstractMethodDefinition" || enclosingNode.type === "TSDeclareMethod" || enclosingNode.type === "MethodDefinition")) { + addTrailingComment(precedingNode, comment); + return true; + } + + return false; } -/** - * Angular Components can have: - * - Inline HTML template - * - Inline CSS styles - * - * ...which are both within template literals somewhere - * inside of the Component decorator factory. - * - * E.g. - * @Component({ - * template: `
...
`, - * styles: [`h1 { color: blue; }`] - * }) - */ +function handleFunctionNameComments({ + comment, + precedingNode, + enclosingNode, + text +}) { + if (getNextNonSpaceNonCommentCharacter$1(text, comment, locEnd$m) !== "(") { + return false; + } -function isAngularComponentStyles(path) { - return path.match(node => node.type === "TemplateLiteral", (node, name) => node.type === "ArrayExpression" && name === "elements", (node, name) => (node.type === "Property" || node.type === "ObjectProperty") && node.key.type === "Identifier" && node.key.name === "styles" && name === "value", ...angularComponentObjectExpressionPredicates); -} + if (precedingNode && enclosingNode && (enclosingNode.type === "FunctionDeclaration" || enclosingNode.type === "FunctionExpression" || enclosingNode.type === "ClassMethod" || enclosingNode.type === "MethodDefinition" || enclosingNode.type === "ObjectMethod")) { + addTrailingComment(precedingNode, comment); + return true; + } -function isAngularComponentTemplate(path) { - return path.match(node => node.type === "TemplateLiteral", (node, name) => (node.type === "Property" || node.type === "ObjectProperty") && node.key.type === "Identifier" && node.key.name === "template" && name === "value", ...angularComponentObjectExpressionPredicates); + return false; } -const angularComponentObjectExpressionPredicates = [(node, name) => node.type === "ObjectExpression" && name === "properties", (node, name) => node.type === "CallExpression" && node.callee.type === "Identifier" && node.callee.name === "Component" && name === "arguments", (node, name) => node.type === "Decorator" && name === "expression"]; -/** - * styled-components template literals - */ +function handleCommentAfterArrowParams({ + comment, + enclosingNode, + text +}) { + if (!(enclosingNode && enclosingNode.type === "ArrowFunctionExpression")) { + return false; + } -function isStyledComponents(path) { - const parent = path.getParentNode(); + const index = getNextNonSpaceNonCommentCharacterIndex$2(text, comment, locEnd$m); - if (!parent || parent.type !== "TaggedTemplateExpression") { - return false; + if (index !== false && text.slice(index, index + 2) === "=>") { + addDanglingComment(enclosingNode, comment); + return true; } - const { - tag - } = parent; + return false; +} - switch (tag.type) { - case "MemberExpression": - return (// styled.foo`` - isStyledIdentifier(tag.object) || // Component.extend`` - isStyledExtend(tag) - ); +function handleCommentInEmptyParens({ + comment, + enclosingNode, + text +}) { + if (getNextNonSpaceNonCommentCharacter$1(text, comment, locEnd$m) !== ")") { + return false; + } // Only add dangling comments to fix the case when no params are present, + // i.e. a function without any argument. - case "CallExpression": - return (// styled(Component)`` - isStyledIdentifier(tag.callee) || tag.callee.type === "MemberExpression" && (tag.callee.object.type === "MemberExpression" && ( // styled.foo.attrs({})`` - isStyledIdentifier(tag.callee.object.object) || // Component.extend.attrs({})`` - isStyledExtend(tag.callee.object)) || // styled(Component).attrs({})`` - tag.callee.object.type === "CallExpression" && isStyledIdentifier(tag.callee.object.callee)) - ); - case "Identifier": - // css`` - return tag.name === "css"; + if (enclosingNode && (isRealFunctionLikeNode(enclosingNode) && getFunctionParameters$5(enclosingNode).length === 0 || isCallLikeExpression$1(enclosingNode) && getCallArguments$4(enclosingNode).length === 0)) { + addDanglingComment(enclosingNode, comment); + return true; + } - default: - return false; + if (enclosingNode && (enclosingNode.type === "MethodDefinition" || enclosingNode.type === "TSAbstractMethodDefinition") && getFunctionParameters$5(enclosingNode.value).length === 0) { + addDanglingComment(enclosingNode.value, comment); + return true; } + + return false; } -/** - * JSX element with CSS prop - */ +function handleLastFunctionArgComments({ + comment, + precedingNode, + enclosingNode, + followingNode, + text +}) { + // Flow function type definitions + if (precedingNode && precedingNode.type === "FunctionTypeParam" && enclosingNode && enclosingNode.type === "FunctionTypeAnnotation" && followingNode && followingNode.type !== "FunctionTypeParam") { + addTrailingComment(precedingNode, comment); + return true; + } // Real functions and TypeScript function type definitions -function isCssProp(path) { - const parent = path.getParentNode(); - const parentParent = path.getParentNode(1); - return parentParent && parent.type === "JSXExpressionContainer" && parentParent.type === "JSXAttribute" && parentParent.name.type === "JSXIdentifier" && parentParent.name.name === "css"; -} -function isStyledIdentifier(node) { - return node.type === "Identifier" && node.name === "styled"; -} + if (precedingNode && (precedingNode.type === "Identifier" || precedingNode.type === "AssignmentPattern") && enclosingNode && isRealFunctionLikeNode(enclosingNode) && getNextNonSpaceNonCommentCharacter$1(text, comment, locEnd$m) === ")") { + addTrailingComment(precedingNode, comment); + return true; + } -function isStyledExtend(node) { - return /^[A-Z]/.test(node.object.name) && node.property.name === "extend"; -} -/* - * react-relay and graphql-tag - * graphql`...` - * graphql.experimental`...` - * gql`...` - * GraphQL comment block - * - * This intentionally excludes Relay Classic tags, as Prettier does not - * support Relay Classic formatting. - */ + if (enclosingNode && enclosingNode.type === "FunctionDeclaration" && followingNode && followingNode.type === "BlockStatement") { + const functionParamRightParenIndex = (() => { + const parameters = getFunctionParameters$5(enclosingNode); + if (parameters.length > 0) { + return getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd$m(getLast$c(parameters))); + } -function isGraphQL(path) { - const node = path.getValue(); - const parent = path.getParentNode(); - return hasLanguageComment(node, "GraphQL") || parent && (parent.type === "TaggedTemplateExpression" && (parent.tag.type === "MemberExpression" && parent.tag.object.name === "graphql" && parent.tag.property.name === "experimental" || parent.tag.type === "Identifier" && (parent.tag.name === "gql" || parent.tag.name === "graphql")) || parent.type === "CallExpression" && parent.callee.type === "Identifier" && parent.callee.name === "graphql"); -} + const functionParamLeftParenIndex = getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, locEnd$m(enclosingNode.id)); + return functionParamLeftParenIndex !== false && getNextNonSpaceNonCommentCharacterIndexWithStartIndex(text, functionParamLeftParenIndex + 1); + })(); -function hasLanguageComment(node, languageName) { - // This checks for a leading comment that is exactly `/* GraphQL */` - // In order to be in line with other implementations of this comment tag - // we will not trim the comment value and we will expect exactly one space on - // either side of the GraphQL string - // Also see ./clean.js - return hasLeadingComment$1(node, comment => isBlockComment$1(comment) && comment.value === ` ${languageName} `); -} -/** - * - html`...` - * - HTML comment block - */ + if (locStart$n(comment) > functionParamRightParenIndex) { + addBlockStatementFirstComment(followingNode, comment); + return true; + } + } + return false; +} -function isHtml(path) { - return hasLanguageComment(path.getValue(), "HTML") || path.match(node => node.type === "TemplateLiteral", (node, name) => node.type === "TaggedTemplateExpression" && node.tag.type === "Identifier" && node.tag.name === "html" && name === "quasi"); -} // The counter is needed to distinguish nested embeds. +function handleImportSpecifierComments({ + comment, + enclosingNode +}) { + if (enclosingNode && enclosingNode.type === "ImportSpecifier") { + addLeadingComment(enclosingNode, comment); + return true; + } + return false; +} -let htmlTemplateLiteralCounter = 0; +function handleLabeledStatementComments({ + comment, + enclosingNode +}) { + if (enclosingNode && enclosingNode.type === "LabeledStatement") { + addLeadingComment(enclosingNode, comment); + return true; + } -function printHtmlTemplateLiteral(path, print, textToDoc, parser, options) { - const node = path.getValue(); - const counter = htmlTemplateLiteralCounter; - htmlTemplateLiteralCounter = htmlTemplateLiteralCounter + 1 >>> 0; + return false; +} - const composePlaceholder = index => `PRETTIER_HTML_PLACEHOLDER_${index}_${counter}_IN_JS`; +function handleBreakAndContinueStatementComments({ + comment, + enclosingNode +}) { + if (enclosingNode && (enclosingNode.type === "ContinueStatement" || enclosingNode.type === "BreakStatement") && !enclosingNode.label) { + addTrailingComment(enclosingNode, comment); + return true; + } - const text = node.quasis.map((quasi, index, quasis) => index === quasis.length - 1 ? quasi.value.cooked : quasi.value.cooked + composePlaceholder(index)).join(""); - const expressionDocs = path.map(print, "expressions"); + return false; +} - if (expressionDocs.length === 0 && text.trim().length === 0) { - return "``"; +function handleCallExpressionComments({ + comment, + precedingNode, + enclosingNode +}) { + if (isCallExpression$c(enclosingNode) && precedingNode && enclosingNode.callee === precedingNode && enclosingNode.arguments.length > 0) { + addLeadingComment(enclosingNode.arguments[0], comment); + return true; } - const placeholderRegex = new RegExp(composePlaceholder("(\\d+)"), "g"); - let topLevelCount = 0; - const contentDoc = mapDoc$1(textToDoc(text, { - parser, + return false; +} - __onHtmlRoot(root) { - topLevelCount = root.children.length; +function handleUnionTypeComments({ + comment, + precedingNode, + enclosingNode, + followingNode +}) { + if (enclosingNode && (enclosingNode.type === "UnionTypeAnnotation" || enclosingNode.type === "TSUnionType")) { + if (isPrettierIgnoreComment(comment)) { + followingNode.prettierIgnore = true; + comment.unignore = true; } - }, { - stripTrailingHardline: true - }), doc => { - if (typeof doc !== "string") { - return doc; + if (precedingNode) { + addTrailingComment(precedingNode, comment); + return true; } - const parts = []; - const components = doc.split(placeholderRegex); + return false; + } - for (let i = 0; i < components.length; i++) { - let component = components[i]; + if (followingNode && (followingNode.type === "UnionTypeAnnotation" || followingNode.type === "TSUnionType") && isPrettierIgnoreComment(comment)) { + followingNode.types[0].prettierIgnore = true; + comment.unignore = true; + } - if (i % 2 === 0) { - if (component) { - component = uncook(component); + return false; +} - if (options.embeddedInHtml) { - component = component.replace(/<\/(script)\b/gi, "<\\/$1"); - } +function handlePropertyComments({ + comment, + enclosingNode +}) { + if (isObjectProperty$4(enclosingNode)) { + addLeadingComment(enclosingNode, comment); + return true; + } - parts.push(component); - } + return false; +} - continue; - } +function handleOnlyComments({ + comment, + enclosingNode, + followingNode, + ast, + isLastComment +}) { + // With Flow the enclosingNode is undefined so use the AST instead. + if (ast && ast.body && ast.body.length === 0) { + if (isLastComment) { + addDanglingComment(ast, comment); + } else { + addLeadingComment(ast, comment); + } + + return true; + } - const placeholderIndex = +component; - parts.push(concat$4(["${", group$1(expressionDocs[placeholderIndex]), "}"])); + if (enclosingNode && enclosingNode.type === "Program" && enclosingNode.body.length === 0 && !isNonEmptyArray$f(enclosingNode.directives)) { + if (isLastComment) { + addDanglingComment(enclosingNode, comment); + } else { + addLeadingComment(enclosingNode, comment); } - return concat$4(parts); - }); - const leadingWhitespace = /^\s/.test(text) ? " " : ""; - const trailingWhitespace = /\s$/.test(text) ? " " : ""; - const linebreak = options.htmlWhitespaceSensitivity === "ignore" ? hardline$3 : leadingWhitespace && trailingWhitespace ? line$3 : null; + return true; + } - if (linebreak) { - return group$1(concat$4(["`", indent$2(concat$4([linebreak, group$1(contentDoc)])), linebreak, "`"])); + if (followingNode && followingNode.type === "Program" && followingNode.body.length === 0 && enclosingNode && enclosingNode.type === "ModuleExpression") { + addDanglingComment(followingNode, comment); + return true; } - return group$1(concat$4(["`", leadingWhitespace, topLevelCount > 1 ? indent$2(group$1(contentDoc)) : group$1(contentDoc), trailingWhitespace, "`"])); + return false; } -var embed_1 = embed; +function handleForComments({ + comment, + enclosingNode +}) { + if (enclosingNode && (enclosingNode.type === "ForInStatement" || enclosingNode.type === "ForOfStatement")) { + addLeadingComment(enclosingNode, comment); + return true; + } -function clean(ast, newObj, parent) { - ["range", "raw", "comments", "leadingComments", "trailingComments", "innerComments", "extra", "start", "end", "loc", "flags", "errors", "tokens"].forEach(name => { - delete newObj[name]; - }); + return false; +} - if (ast.type === "Program") { - delete newObj.sourceType; +function handleImportDeclarationComments({ + comment, + precedingNode, + enclosingNode, + text +}) { + if (precedingNode && precedingNode.type === "ImportSpecifier" && enclosingNode && enclosingNode.type === "ImportDeclaration" && hasNewline$6(text, locEnd$m(comment))) { + addTrailingComment(precedingNode, comment); + return true; } - if (ast.type === "BigIntLiteral") { - if (newObj.value) { - newObj.value = newObj.value.toLowerCase(); - } + return false; +} - if (newObj.bigint) { - newObj.bigint = newObj.bigint.toLowerCase(); - } +function handleAssignmentPatternComments({ + comment, + enclosingNode +}) { + if (enclosingNode && enclosingNode.type === "AssignmentPattern") { + addLeadingComment(enclosingNode, comment); + return true; } - if (ast.type === "DecimalLiteral") { - newObj.value = Number(newObj.value); - } // We remove extra `;` and add them when needed + return false; +} +function handleTypeAliasComments({ + comment, + enclosingNode +}) { + if (enclosingNode && enclosingNode.type === "TypeAlias") { + addLeadingComment(enclosingNode, comment); + return true; + } - if (ast.type === "EmptyStatement") { - return null; - } // We move text around, including whitespaces and add {" "} + return false; +} +function handleVariableDeclaratorComments({ + comment, + enclosingNode, + followingNode +}) { + if (enclosingNode && (enclosingNode.type === "VariableDeclarator" || enclosingNode.type === "AssignmentExpression") && followingNode && (followingNode.type === "ObjectExpression" || followingNode.type === "ArrayExpression" || followingNode.type === "TemplateLiteral" || followingNode.type === "TaggedTemplateExpression" || isBlockComment$3(comment))) { + addLeadingComment(followingNode, comment); + return true; + } - if (ast.type === "JSXText") { - return null; + return false; +} + +function handleTSFunctionTrailingComments({ + comment, + enclosingNode, + followingNode, + text +}) { + if (!followingNode && enclosingNode && (enclosingNode.type === "TSMethodSignature" || enclosingNode.type === "TSDeclareFunction" || enclosingNode.type === "TSAbstractMethodDefinition") && getNextNonSpaceNonCommentCharacter$1(text, comment, locEnd$m) === ";") { + addTrailingComment(enclosingNode, comment); + return true; } - if (ast.type === "JSXExpressionContainer" && (ast.expression.type === "Literal" || ast.expression.type === "StringLiteral") && ast.expression.value === " ") { - return null; - } // We change {'key': value} into {key: value}. - // And {key: value} into {'key': value}. - // Also for (some) number keys. + return false; +} +function handleIgnoreComments({ + comment, + enclosingNode, + followingNode +}) { + if (isPrettierIgnoreComment(comment) && enclosingNode && enclosingNode.type === "TSMappedType" && followingNode && followingNode.type === "TSTypeParameter" && followingNode.constraint) { + enclosingNode.prettierIgnore = true; + comment.unignore = true; + return true; + } +} - if ((ast.type === "Property" || ast.type === "ObjectProperty" || ast.type === "MethodDefinition" || ast.type === "ClassProperty" || ast.type === "ClassMethod" || ast.type === "TSDeclareMethod" || ast.type === "TSPropertySignature" || ast.type === "ObjectTypeProperty") && typeof ast.key === "object" && ast.key && (ast.key.type === "Literal" || ast.key.type === "NumericLiteral" || ast.key.type === "StringLiteral" || ast.key.type === "Identifier")) { - delete newObj.key; +function handleTSMappedTypeComments({ + comment, + precedingNode, + enclosingNode, + followingNode +}) { + if (!enclosingNode || enclosingNode.type !== "TSMappedType") { + return false; } - if (ast.type === "OptionalMemberExpression" && ast.optional === false) { - newObj.type = "MemberExpression"; - delete newObj.optional; - } // Remove raw and cooked values from TemplateElement when it's CSS - // styled-jsx + if (followingNode && followingNode.type === "TSTypeParameter" && followingNode.name) { + addLeadingComment(followingNode.name, comment); + return true; + } + if (precedingNode && precedingNode.type === "TSTypeParameter" && precedingNode.constraint) { + addTrailingComment(precedingNode.constraint, comment); + return true; + } - if (ast.type === "JSXElement" && ast.openingElement.name.name === "style" && ast.openingElement.attributes.some(attr => attr.name.name === "jsx")) { - const templateLiterals = newObj.children.filter(child => child.type === "JSXExpressionContainer" && child.expression.type === "TemplateLiteral").map(container => container.expression); - const quasis = templateLiterals.reduce((quasis, templateLiteral) => quasis.concat(templateLiteral.quasis), []); - quasis.forEach(q => delete q.value); - } // CSS template literals in css prop + return false; +} +/** + * @param {Node} node + * @returns {boolean} + */ - if (ast.type === "JSXAttribute" && ast.name.name === "css" && ast.value.type === "JSXExpressionContainer" && ast.value.expression.type === "TemplateLiteral") { - newObj.value.expression.quasis.forEach(q => delete q.value); - } // We change quotes +function isRealFunctionLikeNode(node) { + return node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression" || node.type === "FunctionDeclaration" || node.type === "ObjectMethod" || node.type === "ClassMethod" || node.type === "TSDeclareFunction" || node.type === "TSCallSignatureDeclaration" || node.type === "TSConstructSignatureDeclaration" || node.type === "TSMethodSignature" || node.type === "TSConstructorType" || node.type === "TSFunctionType" || node.type === "TSDeclareMethod"; +} +/** + * @param {any} node + * @returns {Node[] | void} + */ - if (ast.type === "JSXAttribute" && ast.value && ast.value.type === "Literal" && /["']|"|'/.test(ast.value.value)) { - newObj.value.value = newObj.value.value.replace(/["']|"|'/g, '"'); - } // Angular Components: Inline HTML template and Inline CSS styles +function getCommentChildNodes(node, options) { + // Prevent attaching comments to FunctionExpression in this case: + // class Foo { + // bar() // comment + // { + // baz(); + // } + // } + if ((options.parser === "typescript" || options.parser === "flow" || options.parser === "espree" || options.parser === "meriyah" || options.parser === "__babel_estree") && node.type === "MethodDefinition" && node.value && node.value.type === "FunctionExpression" && getFunctionParameters$5(node.value).length === 0 && !node.value.returnType && !isNonEmptyArray$f(node.value.typeParameters) && node.value.body) { + return [...(node.decorators || []), node.key, node.value.body]; + } +} +/** + * @param {Comment} comment + * @returns {boolean} + */ - const expression = ast.expression || ast.callee; +function isTypeCastComment(comment) { + return isBlockComment$3(comment) && comment.value[0] === "*" && // TypeScript expects the type to be enclosed in curly brackets, however + // Closure Compiler accepts types in parens and even without any delimiters at all. + // That's why we just search for "@type". + /@type\b/.test(comment.value); +} +/** + * @param {AstPath} path + * @returns {boolean} + */ - if (ast.type === "Decorator" && expression.type === "CallExpression" && expression.callee.name === "Component" && expression.arguments.length === 1) { - const astProps = ast.expression.arguments[0].properties; - newObj.expression.arguments[0].properties.forEach((prop, index) => { - let templateLiteral = null; - switch (astProps[index].key.name) { - case "styles": - if (prop.value.type === "ArrayExpression") { - templateLiteral = prop.value.elements[0]; - } +function willPrintOwnComments$1(path +/*, options */ +) { + const node = path.getValue(); + const parent = path.getParentNode(); + return (node && (isJsxNode$6(node) || hasFlowShorthandAnnotationComment$2(node) || isCallExpression$c(parent) && (hasFlowAnnotationComment$1(node.leadingComments) || hasFlowAnnotationComment$1(node.trailingComments))) || parent && (parent.type === "JSXSpreadAttribute" || parent.type === "JSXSpreadChild" || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType" || (parent.type === "ClassDeclaration" || parent.type === "ClassExpression") && parent.superClass === node)) && (!hasIgnoreComment$1(path) || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType"); +} - break; +var comments = { + handleOwnLineComment, + handleEndOfLineComment, + handleRemainingComment, + isTypeCastComment, + getCommentChildNodes, + willPrintOwnComments: willPrintOwnComments$1 +}; - case "template": - if (prop.value.type === "TemplateLiteral") { - templateLiteral = prop.value; - } +const { + getFunctionParameters: getFunctionParameters$4, + getLeftSidePathName: getLeftSidePathName$1, + hasFlowShorthandAnnotationComment: hasFlowShorthandAnnotationComment$1, + hasNakedLeftSide: hasNakedLeftSide$2, + hasNode: hasNode$1, + isBitwiseOperator, + startsWithNoLookaheadToken: startsWithNoLookaheadToken$1, + shouldFlatten: shouldFlatten$1, + getPrecedence, + isCallExpression: isCallExpression$b, + isMemberExpression: isMemberExpression$7, + isObjectProperty: isObjectProperty$3 +} = utils$5; - break; - } +function needsParens(path, options) { + const parent = path.getParentNode(); - if (templateLiteral) { - templateLiteral.quasis.forEach(q => delete q.value); - } - }); - } // styled-components, graphql, markdown + if (!parent) { + return false; + } + const name = path.getName(); + const node = path.getNode(); // to avoid unexpected `}}` in HTML interpolations - if (ast.type === "TaggedTemplateExpression" && (ast.tag.type === "MemberExpression" || ast.tag.type === "Identifier" && (ast.tag.name === "gql" || ast.tag.name === "graphql" || ast.tag.name === "css" || ast.tag.name === "md" || ast.tag.name === "markdown" || ast.tag.name === "html") || ast.tag.type === "CallExpression")) { - newObj.quasi.quasis.forEach(quasi => delete quasi.value); + if (options.__isInHtmlInterpolation && !options.bracketSpacing && endsWithRightBracket(node) && isFollowedByRightBracket(path)) { + return true; + } // Only statements don't need parentheses. + + + if (isStatement(node)) { + return false; } - if (ast.type === "TemplateLiteral") { - // This checks for a leading comment that is exactly `/* GraphQL */` - // In order to be in line with other implementations of this comment tag - // we will not trim the comment value and we will expect exactly one space on - // either side of the GraphQL string - // Also see ./embed.js - const hasLanguageComment = ast.leadingComments && ast.leadingComments.some(comment => comment.type === "CommentBlock" && ["GraphQL", "HTML"].some(languageName => comment.value === ` ${languageName} `)); + if ( // Preserve parens if we have a Flow annotation comment, unless we're using the Flow + // parser. The Flow parser turns Flow comments into type annotation nodes in its + // AST, which we handle separately. + options.parser !== "flow" && hasFlowShorthandAnnotationComment$1(path.getValue())) { + return true; + } // Identifiers never need parentheses. - if (hasLanguageComment || parent.type === "CallExpression" && parent.callee.name === "graphql") { - newObj.quasis.forEach(quasi => delete quasi.value); - } // TODO: check parser - // `flow` and `typescript` don't have `leadingComments` + + if (node.type === "Identifier") { + // ...unless those identifiers are embed placeholders. They might be substituted by complex + // expressions, so the parens around them should not be dropped. Example (JS-in-HTML-in-JS): + // let tpl = html``; + // If the inner JS formatter removes the parens, the expression might change its meaning: + // f((a + b) / 2) vs f(a + b / 2) + if (node.extra && node.extra.parenthesized && /^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(node.name)) { + return true; + } // `for (async of []);` is invalid - if (!ast.leadingComments) { - newObj.quasis.forEach(quasi => { - if (quasi.value) { - delete quasi.value.cooked; - } - }); + if (name === "left" && node.name === "async" && parent.type === "ForOfStatement" && !parent.await) { + return true; } - } - if (ast.type === "InterpreterDirective") { - newObj.value = newObj.value.trimEnd(); + return false; } -} -var clean_1 = clean; + switch (parent.type) { + case "ParenthesizedExpression": + return false; -const detectNewline = string => { - if (typeof string !== 'string') { - throw new TypeError('Expected a string'); - } + case "ClassDeclaration": + case "ClassExpression": + { + // Add parens around the extends clause of a class. It is needed for almost + // all expressions. + if (name === "superClass" && (node.type === "ArrowFunctionExpression" || node.type === "AssignmentExpression" || node.type === "AwaitExpression" || node.type === "BinaryExpression" || node.type === "ConditionalExpression" || node.type === "LogicalExpression" || node.type === "NewExpression" || node.type === "ObjectExpression" || node.type === "ParenthesizedExpression" || node.type === "SequenceExpression" || node.type === "TaggedTemplateExpression" || node.type === "UnaryExpression" || node.type === "UpdateExpression" || node.type === "YieldExpression" || node.type === "TSNonNullExpression")) { + return true; + } - const newlines = string.match(/(?:\r?\n)/g) || []; + break; + } - if (newlines.length === 0) { - return; - } + case "ExportDefaultDeclaration": + { + return (// `export default function` or `export default class` can't be followed by + // anything after. So an expression like `export default (function(){}).toString()` + // needs to be followed by a parentheses + shouldWrapFunctionForExportDefault(path, options) || // `export default (foo, bar)` also needs parentheses + node.type === "SequenceExpression" + ); + } - const crlf = newlines.filter(newline => newline === '\r\n').length; - const lf = newlines.length - crlf; - return crlf > lf ? '\r\n' : '\n'; -}; + case "Decorator": + { + if (name === "expression") { + let hasCallExpression = false; + let hasMemberExpression = false; + let current = node; + + while (current) { + switch (current.type) { + case "MemberExpression": + hasMemberExpression = true; + current = current.object; + break; -var detectNewline_1 = detectNewline; + case "CallExpression": + if ( + /** @(x().y) */ + hasMemberExpression || + /** @(x().y()) */ + hasCallExpression) { + return true; + } -var graceful = string => typeof string === 'string' && detectNewline(string) || '\n'; -detectNewline_1.graceful = graceful; + hasCallExpression = true; + current = current.callee; + break; -var build = createCommonjsModule(function (module, exports) { + case "Identifier": + return false; - Object.defineProperty(exports, '__esModule', { - value: true - }); - exports.extract = extract; - exports.strip = strip; - exports.parse = parse; - exports.parseWithComments = parseWithComments; - exports.print = print; + default: + return true; + } + } - function _os() { - const data = os__default['default']; + return true; + } - _os = function () { - return data; - }; + break; + } - return data; - } + case "ExpressionStatement": + { + if (startsWithNoLookaheadToken$1(node, + /* forbidFunctionClassAndDoExpr */ + true)) { + return true; + } - function _detectNewline() { - const data = _interopRequireDefault(detectNewline_1); + break; + } - _detectNewline = function () { - return data; - }; + case "ArrowFunctionExpression": + { + if (name === "body" && node.type !== "SequenceExpression" && // these have parens added anyway + startsWithNoLookaheadToken$1(node, + /* forbidFunctionClassAndDoExpr */ + false)) { + return true; + } - return data; + break; + } } - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - /** - * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ + switch (node.type) { + case "UpdateExpression": + if (parent.type === "UnaryExpression") { + return node.prefix && (node.operator === "++" && parent.operator === "+" || node.operator === "--" && parent.operator === "-"); + } + + // else fallthrough + + case "UnaryExpression": + switch (parent.type) { + case "UnaryExpression": + return node.operator === parent.operator && (node.operator === "+" || node.operator === "-"); + + case "BindExpression": + return true; + + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; + + case "TaggedTemplateExpression": + return true; + + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; + case "BinaryExpression": + return name === "left" && parent.operator === "**"; - const commentEndRe = /\*\/$/; - const commentStartRe = /^\/\*\*/; - const docblockRe = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/; - const lineCommentRe = /(^|\s+)\/\/([^\r\n]*)/g; - const ltrimNewlineRe = /^(\r?\n)+/; - const multilineRe = /(?:^|\r?\n) *(@[^\r\n]*?) *\r?\n *(?![^@\r\n]*\/\/[^]*)([^@\r\n\s][^@\r\n]+?) *\r?\n/g; - const propertyRe = /(?:^|\r?\n) *@(\S+) *([^\r\n]*)/g; - const stringStartRe = /(\r?\n|^) *\* ?/g; - const STRING_ARRAY = []; + case "TSNonNullExpression": + return true; - function extract(contents) { - const match = contents.match(docblockRe); - return match ? match[0].trimLeft() : ''; - } + default: + return false; + } - function strip(contents) { - const match = contents.match(docblockRe); - return match && match[0] ? contents.substring(match[0].length) : contents; - } + case "BinaryExpression": + { + if (parent.type === "UpdateExpression" || parent.type === "PipelineTopicExpression" && node.operator === "|>") { + return true; + } // We add parentheses to any `a in b` inside `ForStatement` initializer + // https://github.com/prettier/prettier/issues/907#issuecomment-284304321 - function parse(docblock) { - return parseWithComments(docblock).pragmas; - } - function parseWithComments(docblock) { - const line = (0, _detectNewline().default)(docblock) || _os().EOL; + if (node.operator === "in" && isPathInForStatementInitializer(path)) { + return true; + } - docblock = docblock.replace(commentStartRe, '').replace(commentEndRe, '').replace(stringStartRe, '$1'); // Normalize multi-line directives + if (node.operator === "|>" && node.extra && node.extra.parenthesized) { + const grandParent = path.getParentNode(1); - let prev = ''; + if (grandParent.type === "BinaryExpression" && grandParent.operator === "|>") { + return true; + } + } + } + // fallthrough - while (prev !== docblock) { - prev = docblock; - docblock = docblock.replace(multilineRe, `${line}$1 $2${line}`); - } + case "TSTypeAssertion": + case "TSAsExpression": + case "LogicalExpression": + switch (parent.type) { + case "TSAsExpression": + // example: foo as unknown as Bar + return node.type !== "TSAsExpression"; - docblock = docblock.replace(ltrimNewlineRe, '').trimRight(); - const result = Object.create(null); - const comments = docblock.replace(propertyRe, '').replace(ltrimNewlineRe, '').trimRight(); - let match; + case "ConditionalExpression": + return node.type === "TSAsExpression"; - while (match = propertyRe.exec(docblock)) { - // strip linecomments from pragmas - const nextPragma = match[2].replace(lineCommentRe, ''); + case "CallExpression": + case "NewExpression": + case "OptionalCallExpression": + return name === "callee"; - if (typeof result[match[1]] === 'string' || Array.isArray(result[match[1]])) { - result[match[1]] = STRING_ARRAY.concat(result[match[1]], nextPragma); - } else { - result[match[1]] = nextPragma; - } - } + case "ClassExpression": + case "ClassDeclaration": + return name === "superClass"; - return { - comments, - pragmas: result - }; - } + case "TSTypeAssertion": + case "TaggedTemplateExpression": + case "UnaryExpression": + case "JSXSpreadAttribute": + case "SpreadElement": + case "SpreadProperty": + case "BindExpression": + case "AwaitExpression": + case "TSNonNullExpression": + case "UpdateExpression": + return true; - function print({ - comments = '', - pragmas = {} - }) { - const line = (0, _detectNewline().default)(comments) || _os().EOL; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; - const head = '/**'; - const start = ' *'; - const tail = ' */'; - const keys = Object.keys(pragmas); - const printedObject = keys.map(key => printKeyValues(key, pragmas[key])).reduce((arr, next) => arr.concat(next), []).map(keyValue => start + ' ' + keyValue + line).join(''); + case "AssignmentExpression": + case "AssignmentPattern": + return name === "left" && (node.type === "TSTypeAssertion" || node.type === "TSAsExpression"); - if (!comments) { - if (keys.length === 0) { - return ''; - } + case "LogicalExpression": + if (node.type === "LogicalExpression") { + return parent.operator !== node.operator; + } - if (keys.length === 1 && !Array.isArray(pragmas[keys[0]])) { - const value = pragmas[keys[0]]; - return `${head} ${printKeyValues(keys[0], value)[0]}${tail}`; - } - } + // else fallthrough - const printedComments = comments.split(line).map(textLine => `${start} ${textLine}`).join(line) + line; - return head + line + (comments ? printedComments : '') + (comments && keys.length ? start + line : '') + printedObject + tail; - } + case "BinaryExpression": + { + const { + operator, + type + } = node; - function printKeyValues(key, valueOrArray) { - return STRING_ARRAY.concat(valueOrArray).map(value => `@${key} ${value}`.trim()); - } -}); + if (!operator && type !== "TSTypeAssertion") { + return true; + } -const { - parseWithComments, - strip, - extract, - print -} = build; -const { - getShebang: getShebang$1 -} = util; -const { - normalizeEndOfLine: normalizeEndOfLine$2 -} = endOfLine; + const precedence = getPrecedence(operator); + const parentOperator = parent.operator; + const parentPrecedence = getPrecedence(parentOperator); -function parseDocBlock(text) { - const shebang = getShebang$1(text); + if (parentPrecedence > precedence) { + return true; + } - if (shebang) { - text = text.slice(shebang.length + 1); - } + if (name === "right" && parentPrecedence === precedence) { + return true; + } - const docBlock = extract(text); - const { - pragmas, - comments - } = parseWithComments(docBlock); - return { - shebang, - text, - pragmas, - comments - }; -} + if (parentPrecedence === precedence && !shouldFlatten$1(parentOperator, operator)) { + return true; + } -function hasPragma(text) { - const pragmas = Object.keys(parseDocBlock(text).pragmas); - return pragmas.includes("prettier") || pragmas.includes("format"); -} + if (parentPrecedence < precedence && operator === "%") { + return parentOperator === "+" || parentOperator === "-"; + } // Add parenthesis when working with bitwise operators + // It's not strictly needed but helps with code understanding -function insertPragma(originalText) { - const { - shebang, - text, - pragmas, - comments - } = parseDocBlock(originalText); - const strippedText = strip(text); - const docBlock = print({ - pragmas: Object.assign({ - format: "" - }, pragmas), - comments: comments.trimStart() - }); - return (shebang ? `${shebang}\n` : "") + // normalise newlines (mitigate use of os.EOL by jest-docblock) - normalizeEndOfLine$2(docBlock) + (strippedText.startsWith("\n") ? "\n" : "\n\n") + strippedText; -} -var pragma = { - hasPragma, - insertPragma -}; + if (isBitwiseOperator(parentOperator)) { + return true; + } -var ast = createCommonjsModule(function (module) { - /* - Copyright (C) 2013 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - (function () { + return false; + } - function isExpression(node) { - if (node == null) { - return false; + default: + return false; } - switch (node.type) { - case 'ArrayExpression': - case 'AssignmentExpression': - case 'BinaryExpression': - case 'CallExpression': - case 'ConditionalExpression': - case 'FunctionExpression': - case 'Identifier': - case 'Literal': - case 'LogicalExpression': - case 'MemberExpression': - case 'NewExpression': - case 'ObjectExpression': - case 'SequenceExpression': - case 'ThisExpression': - case 'UnaryExpression': - case 'UpdateExpression': - return true; - } + case "SequenceExpression": + switch (parent.type) { + case "ReturnStatement": + return false; - return false; - } + case "ForStatement": + // Although parentheses wouldn't hurt around sequence + // expressions in the head of for loops, traditional style + // dictates that e.g. i++, j++ should not be wrapped with + // parentheses. + return false; - function isIterationStatement(node) { - if (node == null) { - return false; - } + case "ExpressionStatement": + return name !== "expression"; - switch (node.type) { - case 'DoWhileStatement': - case 'ForInStatement': - case 'ForStatement': - case 'WhileStatement': + case "ArrowFunctionExpression": + // We do need parentheses, but SequenceExpressions are handled + // specially when printing bodies of arrow functions. + return name !== "body"; + + default: + // Otherwise err on the side of overparenthesization, adding + // explicit exceptions above if this proves overzealous. return true; } - return false; - } - - function isStatement(node) { - if (node == null) { - return false; + case "YieldExpression": + if (parent.type === "UnaryExpression" || parent.type === "AwaitExpression" || parent.type === "TSAsExpression" || parent.type === "TSNonNullExpression") { + return true; } - switch (node.type) { - case 'BlockStatement': - case 'BreakStatement': - case 'ContinueStatement': - case 'DebuggerStatement': - case 'DoWhileStatement': - case 'EmptyStatement': - case 'ExpressionStatement': - case 'ForInStatement': - case 'ForStatement': - case 'IfStatement': - case 'LabeledStatement': - case 'ReturnStatement': - case 'SwitchStatement': - case 'ThrowStatement': - case 'TryStatement': - case 'VariableDeclaration': - case 'WhileStatement': - case 'WithStatement': - return true; + if (name === "expression" && node.argument && node.argument.type === "PipelinePrimaryTopicReference" && parent.type === "PipelineTopicExpression") { + return true; } - return false; - } - - function isSourceElement(node) { - return isStatement(node) || node != null && node.type === 'FunctionDeclaration'; - } - - function trailingStatement(node) { - switch (node.type) { - case 'IfStatement': - if (node.alternate != null) { - return node.alternate; - } - - return node.consequent; - - case 'LabeledStatement': - case 'ForStatement': - case 'ForInStatement': - case 'WhileStatement': - case 'WithStatement': - return node.body; - } + // else fallthrough - return null; - } + case "AwaitExpression": + switch (parent.type) { + case "TaggedTemplateExpression": + case "UnaryExpression": + case "LogicalExpression": + case "SpreadElement": + case "SpreadProperty": + case "TSAsExpression": + case "TSNonNullExpression": + case "BindExpression": + return true; - function isProblematicIfStatement(node) { - var current; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; - if (node.type !== 'IfStatement') { - return false; - } + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; - if (node.alternate == null) { - return false; - } + case "ConditionalExpression": + return name === "test"; - current = node.consequent; + case "BinaryExpression": + { + if (!node.argument && parent.operator === "|>") { + return false; + } - do { - if (current.type === 'IfStatement') { - if (current.alternate == null) { return true; } - } - - current = trailingStatement(current); - } while (current); - - return false; - } - - module.exports = { - isExpression: isExpression, - isStatement: isStatement, - isIterationStatement: isIterationStatement, - isSourceElement: isSourceElement, - isProblematicIfStatement: isProblematicIfStatement, - trailingStatement: trailingStatement - }; - })(); - /* vim: set sw=4 ts=4 et tw=80 : */ -}); + default: + return false; + } -var code = createCommonjsModule(function (module) { - /* - Copyright (C) 2013-2014 Yusuke Suzuki - Copyright (C) 2014 Ivan Nikulin - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - (function () { + case "TSConditionalType": + if (name === "extendsType" && parent.type === "TSConditionalType") { + return true; + } - var ES6Regex, ES5Regex, NON_ASCII_WHITESPACES, IDENTIFIER_START, IDENTIFIER_PART, ch; // See `tools/generate-identifier-regex.js`. + // fallthrough - ES5Regex = { - // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierStart: - 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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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-\u1884\u1887-\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\u1C80-\u1C88\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\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-\uA7AE\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]/, - // ECMAScript 5.1/Unicode v9.0.0 NonAsciiIdentifierPart: - NonAsciiIdentifierPart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\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-\u19D9\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\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\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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]/ - }; - ES6Regex = { - // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierStart: - 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\u08B6-\u08BD\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\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\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\u1C80-\u1C88\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-\uA7AE\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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\uDD00-\uDD43]|\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]/, - // ECMAScript 6/Unicode v9.0.0 NonAsciiIdentifierPart: - 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\u08B6-\u08BD\u08D4-\u08E1\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\u0C80-\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\u0D54-\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\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\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-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\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\uDCB0-\uDCD3\uDCD8-\uDCFB\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\uDE3E\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[\uDC00-\uDC4A\uDC50-\uDC59\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]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\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\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\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]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\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]/ - }; + case "TSFunctionType": + case "TSConstructorType": + if (name === "checkType" && parent.type === "TSConditionalType") { + return true; + } - function isDecimalDigit(ch) { - return 0x30 <= ch && ch <= 0x39; // 0..9 - } + // fallthrough - function isHexDigit(ch) { - return 0x30 <= ch && ch <= 0x39 || // 0..9 - 0x61 <= ch && ch <= 0x66 || // a..f - 0x41 <= ch && ch <= 0x46; // A..F - } + case "TSUnionType": + case "TSIntersectionType": + if ((parent.type === "TSUnionType" || parent.type === "TSIntersectionType") && parent.types.length > 1 && (!node.types || node.types.length > 1)) { + return true; + } - function isOctalDigit(ch) { - return ch >= 0x30 && ch <= 0x37; // 0..7 - } // 7.2 White Space + // fallthrough + case "TSInferType": + if (node.type === "TSInferType" && parent.type === "TSRestType") { + return false; + } - NON_ASCII_WHITESPACES = [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF]; + // fallthrough - function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && NON_ASCII_WHITESPACES.indexOf(ch) >= 0; - } // 7.3 Line Terminators + case "TSTypeOperator": + return parent.type === "TSArrayType" || parent.type === "TSOptionalType" || parent.type === "TSRestType" || name === "objectType" && parent.type === "TSIndexedAccessType" || parent.type === "TSTypeOperator" || parent.type === "TSTypeAnnotation" && /^TSJSDoc/.test(path.getParentNode(1).type); + case "ArrayTypeAnnotation": + return parent.type === "NullableTypeAnnotation"; - function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; - } // 7.6 Identifier Names and Identifiers + case "IntersectionTypeAnnotation": + case "UnionTypeAnnotation": + return parent.type === "ArrayTypeAnnotation" || parent.type === "NullableTypeAnnotation" || parent.type === "IntersectionTypeAnnotation" || parent.type === "UnionTypeAnnotation" || name === "objectType" && (parent.type === "IndexedAccessType" || parent.type === "OptionalIndexedAccessType"); + case "NullableTypeAnnotation": + return parent.type === "ArrayTypeAnnotation" || name === "objectType" && (parent.type === "IndexedAccessType" || parent.type === "OptionalIndexedAccessType"); - function fromCodePoint(cp) { - if (cp <= 0xFFFF) { - return String.fromCharCode(cp); + case "FunctionTypeAnnotation": + { + const ancestor = parent.type === "NullableTypeAnnotation" ? path.getParentNode(1) : parent; + return ancestor.type === "UnionTypeAnnotation" || ancestor.type === "IntersectionTypeAnnotation" || ancestor.type === "ArrayTypeAnnotation" || name === "objectType" && (ancestor.type === "IndexedAccessType" || ancestor.type === "OptionalIndexedAccessType") || // We should check ancestor's parent to know whether the parentheses + // are really needed, but since ??T doesn't make sense this check + // will almost never be true. + ancestor.type === "NullableTypeAnnotation" || // See #5283 + parent.type === "FunctionTypeParam" && parent.name === null && getFunctionParameters$4(node).some(param => param.typeAnnotation && param.typeAnnotation.type === "NullableTypeAnnotation"); } - var cu1 = String.fromCharCode(Math.floor((cp - 0x10000) / 0x400) + 0xD800); - var cu2 = String.fromCharCode((cp - 0x10000) % 0x400 + 0xDC00); - return cu1 + cu2; - } - - IDENTIFIER_START = new Array(0x80); - - for (ch = 0; ch < 0x80; ++ch) { - IDENTIFIER_START[ch] = ch >= 0x61 && ch <= 0x7A || // a..z - ch >= 0x41 && ch <= 0x5A || // A..Z - ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore) - } - - IDENTIFIER_PART = new Array(0x80); + case "OptionalIndexedAccessType": + return name === "objectType" && parent.type === "IndexedAccessType"; - for (ch = 0; ch < 0x80; ++ch) { - IDENTIFIER_PART[ch] = ch >= 0x61 && ch <= 0x7A || // a..z - ch >= 0x41 && ch <= 0x5A || // A..Z - ch >= 0x30 && ch <= 0x39 || // 0..9 - ch === 0x24 || ch === 0x5F; // $ (dollar) and _ (underscore) - } + case "TypeofTypeAnnotation": + return name === "objectType" && (parent.type === "IndexedAccessType" || parent.type === "OptionalIndexedAccessType"); - function isIdentifierStartES5(ch) { - return ch < 0x80 ? IDENTIFIER_START[ch] : ES5Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)); - } + case "StringLiteral": + case "NumericLiteral": + case "Literal": + if (typeof node.value === "string" && parent.type === "ExpressionStatement" && !parent.directive) { + // To avoid becoming a directive + const grandParent = path.getParentNode(1); + return grandParent.type === "Program" || grandParent.type === "BlockStatement"; + } - function isIdentifierPartES5(ch) { - return ch < 0x80 ? IDENTIFIER_PART[ch] : ES5Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)); - } + return name === "object" && parent.type === "MemberExpression" && typeof node.value === "number"; - function isIdentifierStartES6(ch) { - return ch < 0x80 ? IDENTIFIER_START[ch] : ES6Regex.NonAsciiIdentifierStart.test(fromCodePoint(ch)); - } + case "AssignmentExpression": + { + const grandParent = path.getParentNode(1); - function isIdentifierPartES6(ch) { - return ch < 0x80 ? IDENTIFIER_PART[ch] : ES6Regex.NonAsciiIdentifierPart.test(fromCodePoint(ch)); - } + if (name === "body" && parent.type === "ArrowFunctionExpression") { + return true; + } - module.exports = { - isDecimalDigit: isDecimalDigit, - isHexDigit: isHexDigit, - isOctalDigit: isOctalDigit, - isWhiteSpace: isWhiteSpace, - isLineTerminator: isLineTerminator, - isIdentifierStartES5: isIdentifierStartES5, - isIdentifierPartES5: isIdentifierPartES5, - isIdentifierStartES6: isIdentifierStartES6, - isIdentifierPartES6: isIdentifierPartES6 - }; - })(); - /* vim: set sw=4 ts=4 et tw=80 : */ + if (name === "key" && (parent.type === "ClassProperty" || parent.type === "PropertyDefinition") && parent.computed) { + return false; + } -}); + if ((name === "init" || name === "update") && parent.type === "ForStatement") { + return false; + } -var keyword$1 = createCommonjsModule(function (module) { - /* - Copyright (C) 2013 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - (function () { + if (parent.type === "ExpressionStatement") { + return node.left.type === "ObjectPattern"; + } - var code$1 = code; + if (name === "key" && parent.type === "TSPropertySignature") { + return false; + } - function isStrictModeReservedWordES6(id) { - switch (id) { - case 'implements': - case 'interface': - case 'package': - case 'private': - case 'protected': - case 'public': - case 'static': - case 'let': - return true; + if (parent.type === "AssignmentExpression") { + return false; + } - default: + if (parent.type === "SequenceExpression" && grandParent && grandParent.type === "ForStatement" && (grandParent.init === parent || grandParent.update === parent)) { return false; - } - } + } - function isKeywordES5(id, strict) { - // yield should not be treated as keyword under non-strict mode. - if (!strict && id === 'yield') { - return false; - } + if (name === "value" && parent.type === "Property" && grandParent && grandParent.type === "ObjectPattern" && grandParent.properties.includes(parent)) { + return false; + } - return isKeywordES6(id, strict); - } + if (parent.type === "NGChainedExpression") { + return false; + } - function isKeywordES6(id, strict) { - if (strict && isStrictModeReservedWordES6(id)) { return true; } - switch (id.length) { - case 2: - return id === 'if' || id === 'in' || id === 'do'; - - case 3: - return id === 'var' || id === 'for' || id === 'new' || id === 'try'; + case "ConditionalExpression": + switch (parent.type) { + case "TaggedTemplateExpression": + case "UnaryExpression": + case "SpreadElement": + case "SpreadProperty": + case "BinaryExpression": + case "LogicalExpression": + case "NGPipeExpression": + case "ExportDefaultDeclaration": + case "AwaitExpression": + case "JSXSpreadAttribute": + case "TSTypeAssertion": + case "TypeCastExpression": + case "TSAsExpression": + case "TSNonNullExpression": + return true; - case 4: - return id === 'this' || id === 'else' || id === 'case' || id === 'void' || id === 'with' || id === 'enum'; + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; - case 5: - return id === 'while' || id === 'break' || id === 'catch' || id === 'throw' || id === 'const' || id === 'yield' || id === 'class' || id === 'super'; + case "ConditionalExpression": + return name === "test"; - case 6: - return id === 'return' || id === 'typeof' || id === 'delete' || id === 'switch' || id === 'export' || id === 'import'; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; - case 7: - return id === 'default' || id === 'finally' || id === 'extends'; + default: + return false; + } - case 8: - return id === 'function' || id === 'continue' || id === 'debugger'; + case "FunctionExpression": + switch (parent.type) { + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + // Not always necessary, but it's clearer to the reader if IIFEs are wrapped in parentheses. + // Is necessary if it is `expression` of `ExpressionStatement`. + return name === "callee"; - case 10: - return id === 'instanceof'; + case "TaggedTemplateExpression": + return true; + // This is basically a kind of IIFE. default: return false; } - } - function isReservedWordES5(id, strict) { - return id === 'null' || id === 'true' || id === 'false' || isKeywordES5(id, strict); - } + case "ArrowFunctionExpression": + switch (parent.type) { + case "PipelineTopicExpression": + return Boolean(node.extra && node.extra.parenthesized); - function isReservedWordES6(id, strict) { - return id === 'null' || id === 'true' || id === 'false' || isKeywordES6(id, strict); - } + case "BinaryExpression": + return parent.operator !== "|>" || node.extra && node.extra.parenthesized; - function isRestrictedWord(id) { - return id === 'eval' || id === 'arguments'; - } + case "NewExpression": + case "CallExpression": + case "OptionalCallExpression": + return name === "callee"; - function isIdentifierNameES5(id) { - var i, iz, ch; + case "MemberExpression": + case "OptionalMemberExpression": + return name === "object"; - if (id.length === 0) { - return false; - } + case "TSAsExpression": + case "TSNonNullExpression": + case "BindExpression": + case "TaggedTemplateExpression": + case "UnaryExpression": + case "LogicalExpression": + case "AwaitExpression": + case "TSTypeAssertion": + return true; - ch = id.charCodeAt(0); + case "ConditionalExpression": + return name === "test"; - if (!code$1.isIdentifierStartES5(ch)) { - return false; + default: + return false; } - for (i = 1, iz = id.length; i < iz; ++i) { - ch = id.charCodeAt(i); + case "ClassExpression": + switch (parent.type) { + case "NewExpression": + return name === "callee"; - if (!code$1.isIdentifierPartES5(ch)) { + default: return false; - } } - return true; - } - - function decodeUtf16(lead, trail) { - return (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - } - - function isIdentifierNameES6(id) { - var i, iz, ch, lowCh, check; + case "OptionalMemberExpression": + case "OptionalCallExpression": + { + const parentParent = path.getParentNode(1); - if (id.length === 0) { - return false; + if (name === "object" && parent.type === "MemberExpression" || name === "callee" && (parent.type === "CallExpression" || parent.type === "NewExpression") || parent.type === "TSNonNullExpression" && parentParent.type === "MemberExpression" && parentParent.object === parent) { + return true; + } } + // fallthrough - check = code$1.isIdentifierStartES6; + case "CallExpression": + case "MemberExpression": + case "TaggedTemplateExpression": + case "TSNonNullExpression": + if (name === "callee" && (parent.type === "BindExpression" || parent.type === "NewExpression")) { + let object = node; - for (i = 0, iz = id.length; i < iz; ++i) { - ch = id.charCodeAt(i); + while (object) { + switch (object.type) { + case "CallExpression": + case "OptionalCallExpression": + return true; - if (0xD800 <= ch && ch <= 0xDBFF) { - ++i; + case "MemberExpression": + case "OptionalMemberExpression": + case "BindExpression": + object = object.object; + break; + // tagged templates are basically member expressions from a grammar perspective + // see https://tc39.github.io/ecma262/#prod-MemberExpression - if (i >= iz) { - return false; - } + case "TaggedTemplateExpression": + object = object.tag; + break; - lowCh = id.charCodeAt(i); + case "TSNonNullExpression": + object = object.expression; + break; - if (!(0xDC00 <= lowCh && lowCh <= 0xDFFF)) { - return false; + default: + return false; } - - ch = decodeUtf16(ch, lowCh); } + } - if (!check(ch)) { - return false; - } + return false; - check = code$1.isIdentifierPartES6; + case "BindExpression": + return name === "callee" && (parent.type === "BindExpression" || parent.type === "NewExpression") || name === "object" && isMemberExpression$7(parent); + + case "NGPipeExpression": + if (parent.type === "NGRoot" || parent.type === "NGMicrosyntaxExpression" || parent.type === "ObjectProperty" && // Preserve parens for compatibility with AngularJS expressions + !(node.extra && node.extra.parenthesized) || parent.type === "ArrayExpression" || isCallExpression$b(parent) && parent.arguments[name] === node || name === "right" && parent.type === "NGPipeExpression" || name === "property" && parent.type === "MemberExpression" || parent.type === "AssignmentExpression") { + return false; } return true; - } - - function isIdentifierES5(id, strict) { - return isIdentifierNameES5(id) && !isReservedWordES5(id, strict); - } - function isIdentifierES6(id, strict) { - return isIdentifierNameES6(id) && !isReservedWordES6(id, strict); - } + case "JSXFragment": + case "JSXElement": + return name === "callee" || name === "left" && parent.type === "BinaryExpression" && parent.operator === "<" || parent.type !== "ArrayExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "AssignmentExpression" && parent.type !== "AssignmentPattern" && parent.type !== "BinaryExpression" && parent.type !== "NewExpression" && parent.type !== "ConditionalExpression" && parent.type !== "ExpressionStatement" && parent.type !== "JsExpressionRoot" && parent.type !== "JSXAttribute" && parent.type !== "JSXElement" && parent.type !== "JSXExpressionContainer" && parent.type !== "JSXFragment" && parent.type !== "LogicalExpression" && !isCallExpression$b(parent) && !isObjectProperty$3(parent) && parent.type !== "ReturnStatement" && parent.type !== "ThrowStatement" && parent.type !== "TypeCastExpression" && parent.type !== "VariableDeclarator" && parent.type !== "YieldExpression"; - module.exports = { - isKeywordES5: isKeywordES5, - isKeywordES6: isKeywordES6, - isReservedWordES5: isReservedWordES5, - isReservedWordES6: isReservedWordES6, - isRestrictedWord: isRestrictedWord, - isIdentifierNameES5: isIdentifierNameES5, - isIdentifierNameES6: isIdentifierNameES6, - isIdentifierES5: isIdentifierES5, - isIdentifierES6: isIdentifierES6 - }; - })(); - /* vim: set sw=4 ts=4 et tw=80 : */ + case "TypeAnnotation": + return name === "returnType" && parent.type === "ArrowFunctionExpression" && includesFunctionTypeInObjectType(node); + } -}); + return false; +} -var utils$5 = createCommonjsModule(function (module, exports) { - /* - Copyright (C) 2013 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - (function () { +function isStatement(node) { + return node.type === "BlockStatement" || node.type === "BreakStatement" || node.type === "ClassBody" || node.type === "ClassDeclaration" || node.type === "ClassMethod" || node.type === "ClassProperty" || node.type === "PropertyDefinition" || node.type === "ClassPrivateProperty" || node.type === "ContinueStatement" || node.type === "DebuggerStatement" || node.type === "DeclareClass" || node.type === "DeclareExportAllDeclaration" || node.type === "DeclareExportDeclaration" || node.type === "DeclareFunction" || node.type === "DeclareInterface" || node.type === "DeclareModule" || node.type === "DeclareModuleExports" || node.type === "DeclareVariable" || node.type === "DoWhileStatement" || node.type === "EnumDeclaration" || node.type === "ExportAllDeclaration" || node.type === "ExportDefaultDeclaration" || node.type === "ExportNamedDeclaration" || node.type === "ExpressionStatement" || node.type === "ForInStatement" || node.type === "ForOfStatement" || node.type === "ForStatement" || node.type === "FunctionDeclaration" || node.type === "IfStatement" || node.type === "ImportDeclaration" || node.type === "InterfaceDeclaration" || node.type === "LabeledStatement" || node.type === "MethodDefinition" || node.type === "ReturnStatement" || node.type === "SwitchStatement" || node.type === "ThrowStatement" || node.type === "TryStatement" || node.type === "TSDeclareFunction" || node.type === "TSEnumDeclaration" || node.type === "TSImportEqualsDeclaration" || node.type === "TSInterfaceDeclaration" || node.type === "TSModuleDeclaration" || node.type === "TSNamespaceExportDeclaration" || node.type === "TypeAlias" || node.type === "VariableDeclaration" || node.type === "WhileStatement" || node.type === "WithStatement"; +} - exports.ast = ast; - exports.code = code; - exports.keyword = keyword$1; - })(); - /* vim: set sw=4 ts=4 et tw=80 : */ +function isPathInForStatementInitializer(path) { + let i = 0; + let node = path.getValue(); -}); + while (node) { + const parent = path.getParentNode(i++); -const isIdentifierName = utils$5.keyword.isIdentifierNameES5; -const { - getLast: getLast$2, - hasNewline: hasNewline$4, - hasNewlineInRange: hasNewlineInRange$3, - hasIgnoreComment: hasIgnoreComment$1, - hasNodeIgnoreComment: hasNodeIgnoreComment$1, - skipWhitespace: skipWhitespace$2 -} = util; -/** - * @typedef {import("./types/estree").Node} Node - * @typedef {import("./types/estree").TemplateLiteral} TemplateLiteral - * @typedef {import("./types/estree").Comment} Comment - * @typedef {import("./types/estree").MemberExpression} MemberExpression - * @typedef {import("./types/estree").OptionalMemberExpression} OptionalMemberExpression - * @typedef {import("./types/estree").CallExpression} CallExpression - * @typedef {import("./types/estree").OptionalCallExpression} OptionalCallExpression - * @typedef {import("./types/estree").Expression} Expression - * @typedef {import("./types/estree").Property} Property - * @typedef {import("./types/estree").ObjectTypeProperty} ObjectTypeProperty - * @typedef {import("./types/estree").JSXElement} JSXElement - * @typedef {import("./types/estree").TaggedTemplateExpression} TaggedTemplateExpression - * @typedef {import("./types/estree").Literal} Literal - * - * @typedef {import("../common/fast-path")} FastPath - */ -// We match any whitespace except line terminators because -// Flow annotation comments cannot be split across lines. For example: -// -// (this /* -// : any */).foo = 5; -// -// is not picked up by Flow (see https://github.com/facebook/flow/issues/7050), so -// removing the newline would create a type annotation that the user did not intend -// to create. + if (parent && parent.type === "ForStatement" && parent.init === node) { + return true; + } -const NON_LINE_TERMINATING_WHITE_SPACE = "(?:(?=.)\\s)"; -const FLOW_SHORTHAND_ANNOTATION = new RegExp(`^${NON_LINE_TERMINATING_WHITE_SPACE}*:`); -const FLOW_ANNOTATION = new RegExp(`^${NON_LINE_TERMINATING_WHITE_SPACE}*::`); -/** - * @param {Node} node - * @returns {boolean} - */ + node = parent; + } -function hasFlowShorthandAnnotationComment(node) { - // https://flow.org/en/docs/types/comments/ - // Syntax example: const r = new (window.Request /*: Class */)(""); - return node.extra && node.extra.parenthesized && node.trailingComments && FLOW_SHORTHAND_ANNOTATION.test(node.trailingComments[0].value); + return false; } -/** - * @param {Comment[]} comments - * @returns {boolean} - */ - -function hasFlowAnnotationComment(comments) { - return comments && FLOW_ANNOTATION.test(comments[0].value); +function includesFunctionTypeInObjectType(node) { + return hasNode$1(node, n1 => n1.type === "ObjectTypeAnnotation" && hasNode$1(n1, n2 => n2.type === "FunctionTypeAnnotation" || undefined) || undefined); } -/** - * @param {Node} node - * @param {(Node) => boolean} fn - * @returns {boolean} - */ +function endsWithRightBracket(node) { + switch (node.type) { + case "ObjectExpression": + return true; -function hasNode(node, fn) { - if (!node || typeof node !== "object") { - return false; - } - - if (Array.isArray(node)) { - return node.some(value => hasNode(value, fn)); + default: + return false; } - - const result = fn(node); - return typeof result === "boolean" ? result : Object.keys(node).some(key => hasNode(node[key], fn)); } -/** - * @param {Node} node - * @returns {boolean} - */ - -function hasNakedLeftSide(node) { - return node.type === "AssignmentExpression" || node.type === "BinaryExpression" || node.type === "LogicalExpression" || node.type === "NGPipeExpression" || node.type === "ConditionalExpression" || node.type === "CallExpression" || node.type === "OptionalCallExpression" || node.type === "MemberExpression" || node.type === "OptionalMemberExpression" || node.type === "SequenceExpression" || node.type === "TaggedTemplateExpression" || node.type === "BindExpression" || node.type === "UpdateExpression" && !node.prefix || node.type === "TSAsExpression" || node.type === "TSNonNullExpression"; -} +function isFollowedByRightBracket(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + const name = path.getName(); -function getLeftSide(node) { - if (node.expressions) { - return node.expressions[0]; - } + switch (parent.type) { + case "NGPipeExpression": + if (typeof name === "number" && parent.arguments[name] === node && parent.arguments.length - 1 === name) { + return path.callParent(isFollowedByRightBracket); + } - return node.left || node.test || node.callee || node.object || node.tag || node.argument || node.expression; -} + break; -function getLeftSidePathName(path, node) { - if (node.expressions) { - return ["expressions", 0]; - } + case "ObjectProperty": + if (name === "value") { + const parentParent = path.getParentNode(1); + return getLast_1(parentParent.properties) === parent; + } - if (node.left) { - return ["left"]; - } + break; - if (node.test) { - return ["test"]; - } + case "BinaryExpression": + case "LogicalExpression": + if (name === "right") { + return path.callParent(isFollowedByRightBracket); + } - if (node.object) { - return ["object"]; - } + break; - if (node.callee) { - return ["callee"]; - } + case "ConditionalExpression": + if (name === "alternate") { + return path.callParent(isFollowedByRightBracket); + } - if (node.tag) { - return ["tag"]; - } + break; - if (node.argument) { - return ["argument"]; - } + case "UnaryExpression": + if (parent.prefix) { + return path.callParent(isFollowedByRightBracket); + } - if (node.expression) { - return ["expression"]; + break; } - throw new Error("Unexpected node has no left side."); -} - -const exportDeclarationTypes = new Set(["ExportDefaultDeclaration", "ExportDefaultSpecifier", "DeclareExportDeclaration", "ExportNamedDeclaration", "ExportAllDeclaration"]); -/** - * @param {Node} node - * @returns {boolean} - */ - -function isExportDeclaration(node) { - return node && exportDeclarationTypes.has(node.type); + return false; } -/** - * @param {FastPath} path - * @returns {Node | null} - */ +function shouldWrapFunctionForExportDefault(path, options) { + const node = path.getValue(); + const parent = path.getParentNode(); -function getParentExportDeclaration(path) { - const parentNode = path.getParentNode(); + if (node.type === "FunctionExpression" || node.type === "ClassExpression") { + return parent.type === "ExportDefaultDeclaration" || // in some cases the function is already wrapped + // (e.g. `export default (function() {})();`) + // in this case we don't need to add extra parens + !needsParens(path, options); + } - if (path.getName() === "declaration" && isExportDeclaration(parentNode)) { - return parentNode; + if (!hasNakedLeftSide$2(node) || parent.type !== "ExportDefaultDeclaration" && needsParens(path, options)) { + return false; } - return null; + return path.call(childPath => shouldWrapFunctionForExportDefault(childPath, options), ...getLeftSidePathName$1(path, node)); } -/** - * @param {Node} node - * @returns {boolean} - */ +var needsParens_1 = needsParens; -function isLiteral(node) { - return node.type === "BooleanLiteral" || node.type === "DirectiveLiteral" || node.type === "Literal" || node.type === "NullLiteral" || node.type === "NumericLiteral" || node.type === "BigIntLiteral" || node.type === "DecimalLiteral" || node.type === "RegExpLiteral" || node.type === "StringLiteral" || node.type === "TemplateLiteral" || node.type === "TSTypeLiteral" || node.type === "JSXText"; -} -/** - * @param {Node} node - * @returns {boolean} - */ - +function preprocess$3(ast, options) { + switch (options.parser) { + case "json": + case "json5": + case "json-stringify": + case "__js_expression": + case "__vue_expression": + return Object.assign(Object.assign({}, ast), {}, { + type: options.parser.startsWith("__") ? "JsExpressionRoot" : "JsonRoot", + node: ast, + comments: [], + rootMarker: options.rootMarker + }); -function isNumericLiteral(node) { - return node.type === "NumericLiteral" || node.type === "Literal" && typeof node.value === "number"; + default: + return ast; + } } -/** - * @param {Node} node - * @returns {boolean} - */ - -function isStringLiteral(node) { - return node.type === "StringLiteral" || node.type === "Literal" && typeof node.value === "string"; -} -/** - * @param {Node} node - * @returns {boolean} - */ +var printPreprocess$3 = preprocess$3; +const { + builders: { + join: join$r, + line: line$t, + group: group$y, + softline: softline$o, + indent: indent$s + } +} = doc; -function isObjectType(node) { - return node.type === "ObjectTypeAnnotation" || node.type === "TSTypeLiteral"; -} -/** - * @param {Node} node - * @returns {boolean} - */ +function printHtmlBinding$1(path, options, print) { + const node = path.getValue(); + if (options.__onHtmlBindingRoot && path.getName() === null) { + options.__onHtmlBindingRoot(node, options); + } -function isFunctionOrArrowExpression(node) { - return node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression"; -} -/** - * @param {Node} node - * @returns {boolean} - */ + if (node.type !== "File") { + return; + } + if (options.__isVueForBindingLeft) { + return path.call(functionDeclarationPath => { + const printed = join$r([",", line$t], functionDeclarationPath.map(print, "params")); + const { + params + } = functionDeclarationPath.getValue(); -function isFunctionOrArrowExpressionWithBody(node) { - return node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression" && node.body.type === "BlockStatement"; -} -/** - * @param {Node} node - * @returns {boolean} - */ + if (params.length === 1) { + return printed; + } + return ["(", indent$s([softline$o, group$y(printed)]), softline$o, ")"]; + }, "program", "body", 0); + } -function isTemplateLiteral(node) { - return node.type === "TemplateLiteral"; -} -/** - * Note: `inject` is used in AngularJS 1.x, `async` in Angular 2+ - * example: https://docs.angularjs.org/guide/unit-testing#using-beforeall- - * - * @param {Node} node - * @returns {boolean} - */ + if (options.__isVueBindings) { + return path.call(functionDeclarationPath => join$r([",", line$t], functionDeclarationPath.map(print, "params")), "program", "body", 0); + } +} // based on https://github.com/prettier/prettier/blob/main/src/language-html/syntax-vue.js isVueEventBindingExpression() -function isAngularTestWrapper(node) { - return (node.type === "CallExpression" || node.type === "OptionalCallExpression") && node.callee.type === "Identifier" && (node.callee.name === "async" || node.callee.name === "inject" || node.callee.name === "fakeAsync"); -} -/** - * @param {Node} node - * @returns {boolean} - */ +function isVueEventBindingExpression$3(node) { + switch (node.type) { + case "MemberExpression": + switch (node.property.type) { + case "Identifier": + case "NumericLiteral": + case "StringLiteral": + return isVueEventBindingExpression$3(node.object); + } + return false; -function isJSXNode(node) { - return node.type === "JSXElement" || node.type === "JSXFragment"; -} + case "Identifier": + return true; -function isTheOnlyJSXElementInMarkdown(options, path) { - if (options.parentParser !== "markdown" && options.parentParser !== "mdx") { - return false; + default: + return false; } +} - const node = path.getNode(); +var htmlBinding = { + isVueEventBindingExpression: isVueEventBindingExpression$3, + printHtmlBinding: printHtmlBinding$1 +}; - if (!node.expression || !isJSXNode(node.expression)) { - return false; +const { + printComments: printComments$5 +} = comments$1; +const { + getLast: getLast$b +} = util$5; +const { + builders: { + join: join$q, + line: line$s, + softline: softline$n, + group: group$x, + indent: indent$r, + align: align$4, + ifBreak: ifBreak$l, + indentIfBreak: indentIfBreak$3 + }, + utils: { + cleanDoc: cleanDoc$2, + getDocParts: getDocParts$5, + isConcat: isConcat$1 } +} = doc; +const { + hasLeadingOwnLineComment: hasLeadingOwnLineComment$3, + isBinaryish: isBinaryish$3, + isJsxNode: isJsxNode$5, + shouldFlatten, + hasComment: hasComment$g, + CommentCheckFlags: CommentCheckFlags$d, + isCallExpression: isCallExpression$a, + isMemberExpression: isMemberExpression$6, + isObjectProperty: isObjectProperty$2 +} = utils$5; +/** @typedef {import("../../document").Doc} Doc */ - const parent = path.getParentNode(); - return parent.type === "Program" && parent.body.length === 1; -} // Detect an expression node representing `{" "}` +let uid = 0; +function printBinaryishExpression$2(path, options, print) { + const node = path.getValue(); + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); + const isInsideParenthesis = node !== parent.body && (parent.type === "IfStatement" || parent.type === "WhileStatement" || parent.type === "SwitchStatement" || parent.type === "DoWhileStatement"); + const parts = printBinaryishExpressions(path, print, options, + /* isNested */ + false, isInsideParenthesis); // if ( + // this.hasPlugin("dynamicImports") && this.lookahead().type === tt.parenLeft + // ) { + // + // looks super weird, we want to break the children if the parent breaks + // + // if ( + // this.hasPlugin("dynamicImports") && + // this.lookahead().type === tt.parenLeft + // ) { -function isJSXWhitespaceExpression(node) { - return node.type === "JSXExpressionContainer" && isLiteral(node.expression) && node.expression.value === " " && !node.expression.comments; -} -/** - * @param {Node} node - * @returns {boolean} - */ + if (isInsideParenthesis) { + return parts; + } // Break between the parens in + // unaries or in a member or specific call expression, i.e. + // + // ( + // a && + // b && + // c + // ).call() -function isMemberExpressionChain(node) { - if (node.type !== "MemberExpression" && node.type !== "OptionalMemberExpression") { - return false; - } + if (isCallExpression$a(parent) && parent.callee === node || parent.type === "UnaryExpression" || isMemberExpression$6(parent) && !parent.computed) { + return group$x([indent$r([softline$n, ...parts]), softline$n]); + } // Avoid indenting sub-expressions in some cases where the first sub-expression is already + // indented accordingly. We should indent sub-expressions where the first case isn't indented. - if (node.object.type === "Identifier") { - return true; - } - return isMemberExpressionChain(node.object); -} + const shouldNotIndent = parent.type === "ReturnStatement" || parent.type === "ThrowStatement" || parent.type === "JSXExpressionContainer" && parentParent.type === "JSXAttribute" || node.operator !== "|" && parent.type === "JsExpressionRoot" || node.type !== "NGPipeExpression" && (parent.type === "NGRoot" && options.parser === "__ng_binding" || parent.type === "NGMicrosyntaxExpression" && parentParent.type === "NGMicrosyntax" && parentParent.body.length === 1) || node === parent.body && parent.type === "ArrowFunctionExpression" || node !== parent.body && parent.type === "ForStatement" || parent.type === "ConditionalExpression" && parentParent.type !== "ReturnStatement" && parentParent.type !== "ThrowStatement" && !isCallExpression$a(parentParent) || parent.type === "TemplateLiteral"; + const shouldIndentIfInlining = parent.type === "AssignmentExpression" || parent.type === "VariableDeclarator" || parent.type === "ClassProperty" || parent.type === "PropertyDefinition" || parent.type === "TSAbstractClassProperty" || parent.type === "ClassPrivateProperty" || isObjectProperty$2(parent); + const samePrecedenceSubExpression = isBinaryish$3(node.left) && shouldFlatten(node.operator, node.left.operator); -function isGetterOrSetter(node) { - return node.kind === "get" || node.kind === "set"; -} -/** - * @param {Node} nodeA - * @param {Node} nodeB - * @returns {boolean} - */ + if (shouldNotIndent || shouldInlineLogicalExpression$1(node) && !samePrecedenceSubExpression || !shouldInlineLogicalExpression$1(node) && shouldIndentIfInlining) { + return group$x(parts); + } + if (parts.length === 0) { + return ""; + } // If the right part is a JSX node, we include it in a separate group to + // prevent it breaking the whole chain, so we can print the expression like: + // + // foo && bar && ( + // + // + // + // ) + + + const hasJsx = isJsxNode$5(node.right); + const firstGroupIndex = parts.findIndex(part => typeof part !== "string" && !Array.isArray(part) && part.type === "group"); // Separate the leftmost expression, possibly with its leading comments. + + const headParts = parts.slice(0, firstGroupIndex === -1 ? 1 : firstGroupIndex + 1); + const rest = parts.slice(headParts.length, hasJsx ? -1 : undefined); + const groupId = Symbol("logicalChain-" + ++uid); + const chain = group$x([// Don't include the initial expression in the indentation + // level. The first item is guaranteed to be the first + // left-most expression. + ...headParts, indent$r(rest)], { + id: groupId + }); -function sameLocStart(nodeA, nodeB, options) { - return options.locStart(nodeA) === options.locStart(nodeB); -} // TODO: This is a bad hack and we need a better way to distinguish between -// arrow functions and otherwise + if (!hasJsx) { + return chain; + } + const jsxPart = getLast$b(parts); + return group$x([chain, indentIfBreak$3(jsxPart, { + groupId + })]); +} // For binary expressions to be consistent, we need to group +// subsequent operators with the same precedence level under a single +// group. Otherwise they will be nested such that some of them break +// onto new lines but not all. Operators with the same precedence +// level should either all break or not. Because we group them by +// precedence level and the AST is structured based on precedence +// level, things are naturally broken up correctly, i.e. `&&` is +// broken before `+`. -function isFunctionNotation(node, options) { - return isGetterOrSetter(node) || sameLocStart(node, node.value, options); -} // Hack to differentiate between the following two which have the same ast -// type T = { method: () => void }; -// type T = { method(): void }; -/** - * @param {Node} node - * @returns {boolean} - */ +function printBinaryishExpressions(path, print, options, isNested, isInsideParenthesis) { + /** @type{Doc[]} */ + let parts = []; + const node = path.getValue(); // We treat BinaryExpression and LogicalExpression nodes the same. + if (isBinaryish$3(node)) { + // Put all operators with the same precedence level in the same + // group. The reason we only need to do this with the `left` + // expression is because given an expression like `1 + 2 - 3`, it + // is always parsed like `((1 + 2) - 3)`, meaning the `left` side + // is where the rest of the expression will exist. Binary + // expressions on the right side mean they have a difference + // precedence level and should be treated as a separate group, so + // print them normally. (This doesn't hold for the `**` operator, + // which is unique in that it is right-associative.) + if (shouldFlatten(node.operator, node.left.operator)) { + // Flatten them out by recursively calling this function. + parts = [...parts, ...path.call(left => printBinaryishExpressions(left, print, options, + /* isNested */ + true, isInsideParenthesis), "left")]; + } else { + parts.push(group$x(print("left"))); + } -function isObjectTypePropertyAFunction(node, options) { - return (node.type === "ObjectTypeProperty" || node.type === "ObjectTypeInternalSlot") && node.value.type === "FunctionTypeAnnotation" && !node.static && !isFunctionNotation(node, options); -} // Hack to differentiate between the following two which have the same ast -// declare function f(a): void; -// var f: (a) => void; + const shouldInline = shouldInlineLogicalExpression$1(node); + const lineBeforeOperator = (node.operator === "|>" || node.type === "NGPipeExpression" || node.operator === "|" && options.parser === "__vue_expression") && !hasLeadingOwnLineComment$3(options.originalText, node.right); + const operator = node.type === "NGPipeExpression" ? "|" : node.operator; + const rightSuffix = node.type === "NGPipeExpression" && node.arguments.length > 0 ? group$x(indent$r([softline$n, ": ", join$q([softline$n, ":", ifBreak$l(" ")], path.map(print, "arguments").map(arg => align$4(2, group$x(arg))))])) : ""; + const right = shouldInline ? [operator, " ", print("right"), rightSuffix] : [lineBeforeOperator ? line$s : "", operator, lineBeforeOperator ? " " : line$s, print("right"), rightSuffix]; // If there's only a single binary expression, we want to create a group + // in order to avoid having a small right part like -1 be on its own line. + const parent = path.getParentNode(); + const shouldBreak = hasComment$g(node.left, CommentCheckFlags$d.Trailing | CommentCheckFlags$d.Line); + const shouldGroup = shouldBreak || !(isInsideParenthesis && node.type === "LogicalExpression") && parent.type !== node.type && node.left.type !== node.type && node.right.type !== node.type; + parts.push(lineBeforeOperator ? "" : " ", shouldGroup ? group$x(right, { + shouldBreak + }) : right); // The root comments are already printed, but we need to manually print + // the other ones since we don't call the normal print on BinaryExpression, + // only for the left and right parts -function isTypeAnnotationAFunction(node, options) { - return (node.type === "TypeAnnotation" || node.type === "TSTypeAnnotation") && node.typeAnnotation.type === "FunctionTypeAnnotation" && !node.static && !sameLocStart(node, node.typeAnnotation, options); -} + if (isNested && hasComment$g(node)) { + const printed = cleanDoc$2(printComments$5(path, parts, options)); + /* istanbul ignore else */ -const binaryishNodeTypes = new Set(["BinaryExpression", "LogicalExpression", "NGPipeExpression"]); -/** - * @param {Node} node - * @returns {boolean} - */ + if (isConcat$1(printed) || printed.type === "fill") { + parts = getDocParts$5(printed); + } else { + parts = [printed]; + } + } + } else { + // Our stopping case. Simply print the node normally. + parts.push(group$x(print())); + } -function isBinaryish(node) { - return binaryishNodeTypes.has(node.type); + return parts; } -/** - * @param {Node} node - * @returns {boolean} - */ - -function isMemberish(node) { - return node.type === "MemberExpression" || node.type === "OptionalMemberExpression" || node.type === "BindExpression" && Boolean(node.object); -} +function shouldInlineLogicalExpression$1(node) { + if (node.type !== "LogicalExpression") { + return false; + } -const flowTypeAnnotations = new Set(["AnyTypeAnnotation", "NullLiteralTypeAnnotation", "GenericTypeAnnotation", "ThisTypeAnnotation", "NumberTypeAnnotation", "VoidTypeAnnotation", "EmptyTypeAnnotation", "MixedTypeAnnotation", "BooleanTypeAnnotation", "BooleanLiteralTypeAnnotation", "StringTypeAnnotation"]); -/** - * @param {Node} node - * @returns {boolean} - */ + if (node.right.type === "ObjectExpression" && node.right.properties.length > 0) { + return true; + } -function isSimpleFlowType(node) { - return node && flowTypeAnnotations.has(node.type) && !(node.type === "GenericTypeAnnotation" && node.typeParameters); -} + if (node.right.type === "ArrayExpression" && node.right.elements.length > 0) { + return true; + } -const unitTestRe = /^(skip|[fx]?(it|describe|test))$/; -/** - * @param {CallExpression} node - * @returns {boolean} - */ + if (isJsxNode$5(node.right)) { + return true; + } -function isSkipOrOnlyBlock(node) { - return (node.callee.type === "MemberExpression" || node.callee.type === "OptionalMemberExpression") && node.callee.object.type === "Identifier" && node.callee.property.type === "Identifier" && unitTestRe.test(node.callee.object.name) && (node.callee.property.name === "only" || node.callee.property.name === "skip"); + return false; } -/** - * @param {CallExpression} node - * @returns {boolean} - */ +var binaryish = { + printBinaryishExpression: printBinaryishExpression$2, + shouldInlineLogicalExpression: shouldInlineLogicalExpression$1 +}; -function isUnitTestSetUp(node) { - const unitTestSetUpRe = /^(before|after)(Each|All)$/; - return node.callee.type === "Identifier" && unitTestSetUpRe.test(node.callee.name) && node.arguments.length === 1; -} // eg; `describe("some string", (done) => {})` +const { + builders: { + join: join$p, + line: line$r, + group: group$w + } +} = doc; +const { + hasNode, + hasComment: hasComment$f, + getComments: getComments$3 +} = utils$5; +const { + printBinaryishExpression: printBinaryishExpression$1 +} = binaryish; +/** @typedef {import("../../common/ast-path")} AstPath */ +function printAngular$1(path, options, print) { + const node = path.getValue(); // Angular nodes always starts with `NG` -function isTestCall(n, parent) { - if (n.type !== "CallExpression") { - return false; + if (!node.type.startsWith("NG")) { + return; } - if (n.arguments.length === 1) { - if (isAngularTestWrapper(n) && parent && isTestCall(parent)) { - return isFunctionOrArrowExpression(n.arguments[0]); - } + switch (node.type) { + case "NGRoot": + return [print("node"), !hasComment$f(node.node) ? "" : " //" + getComments$3(node.node)[0].value.trimEnd()]; - if (isUnitTestSetUp(n)) { - return isAngularTestWrapper(n.arguments[0]); - } - } else if (n.arguments.length === 2 || n.arguments.length === 3) { - if ((n.callee.type === "Identifier" && unitTestRe.test(n.callee.name) || isSkipOrOnlyBlock(n)) && (isTemplateLiteral(n.arguments[0]) || isStringLiteral(n.arguments[0]))) { - // it("name", () => { ... }, 2500) - if (n.arguments[2] && !isNumericLiteral(n.arguments[2])) { - return false; - } + case "NGPipeExpression": + return printBinaryishExpression$1(path, options, print); - return (n.arguments.length === 2 ? isFunctionOrArrowExpression(n.arguments[1]) : isFunctionOrArrowExpressionWithBody(n.arguments[1]) && n.arguments[1].params.length <= 1) || isAngularTestWrapper(n.arguments[1]); - } - } + case "NGChainedExpression": + return group$w(join$p([";", line$r], path.map(childPath => hasNgSideEffect(childPath) ? print() : ["(", print(), ")"], "expressions"))); - return false; -} -/** - * @param {Node} node - * @returns {boolean} - */ + case "NGEmptyExpression": + return ""; + case "NGQuotedExpression": + return [node.prefix, ": ", node.value.trim()]; -function hasLeadingComment$2(node) { - return node.comments && node.comments.some(comment => comment.leading); -} -/** - * @param {Node} node - * @returns {boolean} - */ + case "NGMicrosyntax": + return path.map((childPath, index) => [index === 0 ? "" : isNgForOf(childPath.getValue(), index, node) ? " " : [";", line$r], print()], "body"); + case "NGMicrosyntaxKey": + return /^[$_a-z][\w$]*(-[$_a-z][\w$])*$/i.test(node.name) ? node.name : JSON.stringify(node.name); -function hasTrailingComment(node) { - return node.comments && node.comments.some(comment => comment.trailing); -} -/** - * @param {Node} node - * @returns {boolean} - */ + case "NGMicrosyntaxExpression": + return [print("expression"), node.alias === null ? "" : [" as ", print("alias")]]; + case "NGMicrosyntaxKeyedExpression": + { + const index = path.getName(); + const parentNode = path.getParentNode(); + const shouldNotPrintColon = isNgForOf(node, index, parentNode) || (index === 1 && (node.key.name === "then" || node.key.name === "else") || index === 2 && node.key.name === "else" && parentNode.body[index - 1].type === "NGMicrosyntaxKeyedExpression" && parentNode.body[index - 1].key.name === "then") && parentNode.body[0].type === "NGMicrosyntaxExpression"; + return [print("key"), shouldNotPrintColon ? " " : ": ", print("expression")]; + } -function hasTrailingLineComment(node) { - return node.comments && node.comments.some(comment => comment.trailing && !comments$1.isBlockComment(comment)); -} -/** - * @param {CallExpression | OptionalCallExpression} node - * @returns {boolean} - */ + case "NGMicrosyntaxLet": + return ["let ", print("key"), node.value === null ? "" : [" = ", print("value")]]; + case "NGMicrosyntaxAs": + return [print("key"), " as ", print("alias")]; -function isCallOrOptionalCallExpression(node) { - return node.type === "CallExpression" || node.type === "OptionalCallExpression"; + default: + /* istanbul ignore next */ + throw new Error(`Unknown Angular node type: ${JSON.stringify(node.type)}.`); + } } -/** - * @param {Node} node - * @returns {boolean} - */ - -function hasDanglingComments(node) { - return node.comments && node.comments.some(comment => !comment.leading && !comment.trailing); +function isNgForOf(node, index, parentNode) { + return node.type === "NGMicrosyntaxKeyedExpression" && node.key.name === "of" && index === 1 && parentNode.body[0].type === "NGMicrosyntaxLet" && parentNode.body[0].value === null; } /** identify if an angular expression seems to have side effects */ /** - * @param {FastPath} path + * @param {AstPath} path * @returns {boolean} */ @@ -39541,4554 +42972,5054 @@ function hasNgSideEffect(path) { }); } -function isNgForOf(node, index, parentNode) { - return node.type === "NGMicrosyntaxKeyedExpression" && node.key.name === "of" && index === 1 && parentNode.body[0].type === "NGMicrosyntaxLet" && parentNode.body[0].value === null; -} +var angular = { + printAngular: printAngular$1 +}; + +const { + printComments: printComments$4, + printDanglingComments: printDanglingComments$d +} = comments$1; +const { + builders: { + line: line$q, + hardline: hardline$t, + softline: softline$m, + group: group$v, + indent: indent$q, + conditionalGroup: conditionalGroup$4, + fill: fill$7, + ifBreak: ifBreak$k, + lineSuffixBoundary, + join: join$o + }, + utils: { + willBreak: willBreak$5 + } +} = doc; +const { + getLast: getLast$a, + getPreferredQuote +} = util$5; +const { + isJsxNode: isJsxNode$4, + rawText: rawText$4, + isLiteral: isLiteral$2, + isCallExpression: isCallExpression$9, + isStringLiteral: isStringLiteral$4, + isBinaryish: isBinaryish$2, + hasComment: hasComment$e, + CommentCheckFlags: CommentCheckFlags$c, + hasNodeIgnoreComment +} = utils$5; +const { + willPrintOwnComments +} = comments; + +const isEmptyStringOrAnyLine = doc => doc === "" || doc === line$q || doc === hardline$t || doc === softline$m; /** - * - * @param {any} node - * @returns {boolean} + * @typedef {import("../../common/ast-path")} AstPath + * @typedef {import("../types/estree").Node} Node + * @typedef {import("../types/estree").JSXElement} JSXElement */ +// JSX expands children from the inside-out, instead of the outside-in. +// This is both to break children before attributes, +// and to ensure that when children break, their parents do as well. +// +// Any element that is written without any newlines and fits on a single line +// is left that way. +// Not only that, any user-written-line containing multiple JSX siblings +// should also be kept on one line if possible, +// so each user-written-line is wrapped in its own group. +// +// Elements that contain newlines or don't fit on a single line (recursively) +// are fully-split, using hardline and shouldBreak: true. +// +// To support that case properly, all leading and trailing spaces +// are stripped from the list of children, and replaced with a single hardline. -function isSimpleTemplateLiteral(node) { - if (node.expressions.length === 0) { - return false; +function printJsxElementInternal(path, options, print) { + const node = path.getValue(); + + if (node.type === "JSXElement" && isEmptyJsxElement(node)) { + return [print("openingElement"), print("closingElement")]; } - return node.expressions.every(expr => { - // Disallow comments since printDocToString can't print them here - if (expr.comments) { - return false; - } // Allow `x` and `this` + const openingLines = node.type === "JSXElement" ? print("openingElement") : print("openingFragment"); + const closingLines = node.type === "JSXElement" ? print("closingElement") : print("closingFragment"); + + if (node.children.length === 1 && node.children[0].type === "JSXExpressionContainer" && (node.children[0].expression.type === "TemplateLiteral" || node.children[0].expression.type === "TaggedTemplateExpression")) { + return [openingLines, ...path.map(print, "children"), closingLines]; + } // Convert `{" "}` to text nodes containing a space. + // This makes it easy to turn them into `jsxWhitespace` which + // can then print as either a space or `{" "}` when breaking. - if (expr.type === "Identifier" || expr.type === "ThisExpression") { - return true; - } // Allow `a.b.c`, `a.b[c]`, and `this.x.y` + node.children = node.children.map(child => { + if (isJsxWhitespaceExpression(child)) { + return { + type: "JSXText", + value: " ", + raw: " " + }; + } + return child; + }); + const containsTag = node.children.filter(isJsxNode$4).length > 0; + const containsMultipleExpressions = node.children.filter(child => child.type === "JSXExpressionContainer").length > 1; + const containsMultipleAttributes = node.type === "JSXElement" && node.openingElement.attributes.length > 1; // Record any breaks. Should never go from true to false, only false to true. - if (expr.type === "MemberExpression" || expr.type === "OptionalMemberExpression") { - let head = expr; + let forcedBreak = willBreak$5(openingLines) || containsTag || containsMultipleAttributes || containsMultipleExpressions; + const isMdxBlock = path.getParentNode().rootMarker === "mdx"; + const rawJsxWhitespace = options.singleQuote ? "{' '}" : '{" "}'; + const jsxWhitespace = isMdxBlock ? " " : ifBreak$k([rawJsxWhitespace, softline$m], " "); + const isFacebookTranslationTag = node.openingElement && node.openingElement.name && node.openingElement.name.name === "fbt"; + const children = printJsxChildren(path, options, print, jsxWhitespace, isFacebookTranslationTag); + const containsText = node.children.some(child => isMeaningfulJsxText(child)); // We can end up we multiple whitespace elements with empty string + // content between them. + // We need to remove empty whitespace and softlines before JSX whitespace + // to get the correct output. - while (head.type === "MemberExpression" || head.type === "OptionalMemberExpression") { - if (head.property.type !== "Identifier" && head.property.type !== "Literal" && head.property.type !== "StringLiteral" && head.property.type !== "NumericLiteral") { - return false; - } + for (let i = children.length - 2; i >= 0; i--) { + const isPairOfEmptyStrings = children[i] === "" && children[i + 1] === ""; + const isPairOfHardlines = children[i] === hardline$t && children[i + 1] === "" && children[i + 2] === hardline$t; + const isLineFollowedByJsxWhitespace = (children[i] === softline$m || children[i] === hardline$t) && children[i + 1] === "" && children[i + 2] === jsxWhitespace; + const isJsxWhitespaceFollowedByLine = children[i] === jsxWhitespace && children[i + 1] === "" && (children[i + 2] === softline$m || children[i + 2] === hardline$t); + const isDoubleJsxWhitespace = children[i] === jsxWhitespace && children[i + 1] === "" && children[i + 2] === jsxWhitespace; + const isPairOfHardOrSoftLines = children[i] === softline$m && children[i + 1] === "" && children[i + 2] === hardline$t || children[i] === hardline$t && children[i + 1] === "" && children[i + 2] === softline$m; - head = head.object; + if (isPairOfHardlines && containsText || isPairOfEmptyStrings || isLineFollowedByJsxWhitespace || isDoubleJsxWhitespace || isPairOfHardOrSoftLines) { + children.splice(i, 2); + } else if (isJsxWhitespaceFollowedByLine) { + children.splice(i + 1, 2); + } + } // Trim trailing lines (or empty strings) - if (head.comments) { - return false; - } - } - if (head.type === "Identifier" || head.type === "ThisExpression") { - return true; - } + while (children.length > 0 && isEmptyStringOrAnyLine(getLast$a(children))) { + children.pop(); + } // Trim leading lines (or empty strings) - return false; - } - return false; - }); -} -/** - * @param {ObjectTypeProperty} node - */ + while (children.length > 1 && isEmptyStringOrAnyLine(children[0]) && isEmptyStringOrAnyLine(children[1])) { + children.shift(); + children.shift(); + } // Tweak how we format children if outputting this element over multiple lines. + // Also detect whether we will force this element to output over multiple lines. -function getFlowVariance(node) { - if (!node.variance) { - return null; - } // Babel 7.0 currently uses variance node type, and flow should - // follow suit soon: - // https://github.com/babel/babel/issues/4722 + const multilineChildren = []; + for (const [i, child] of children.entries()) { + // There are a number of situations where we need to ensure we display + // whitespace as `{" "}` when outputting this element over multiple lines. + if (child === jsxWhitespace) { + if (i === 1 && children[i - 1] === "") { + if (children.length === 2) { + // Solitary whitespace + multilineChildren.push(rawJsxWhitespace); + continue; + } // Leading whitespace - const variance = node.variance.kind || node.variance; - switch (variance) { - case "plus": - return "+"; + multilineChildren.push([rawJsxWhitespace, hardline$t]); + continue; + } else if (i === children.length - 1) { + // Trailing whitespace + multilineChildren.push(rawJsxWhitespace); + continue; + } else if (children[i - 1] === "" && children[i - 2] === hardline$t) { + // Whitespace after line break + multilineChildren.push(rawJsxWhitespace); + continue; + } + } - case "minus": - return "-"; + multilineChildren.push(child); - default: - /* istanbul ignore next */ - return variance; - } -} -/** - * @param {FastPath} path - * @returns {boolean} - */ + if (willBreak$5(child)) { + forcedBreak = true; + } + } // If there is text we use `fill` to fit as much onto each line as possible. + // When there is no text (just tags and expressions) we use `group` + // to output each on a separate line. -function classPropMayCauseASIProblems(path) { - const node = path.getNode(); + const content = containsText ? fill$7(multilineChildren) : group$v(multilineChildren, { + shouldBreak: true + }); - if (node.type !== "ClassProperty") { - return false; + if (isMdxBlock) { + return content; } - const name = node.key && node.key.name; // this isn't actually possible yet with most parsers available today - // so isn't properly tested yet. + const multiLineElem = group$v([openingLines, indent$q([hardline$t, content]), hardline$t, closingLines]); - if ((name === "static" || name === "get" || name === "set") && !node.value && !node.typeAnnotation) { - return true; + if (forcedBreak) { + return multiLineElem; } -} -function classChildNeedsASIProtection(node) { - if (!node) { - return; - } + return conditionalGroup$4([group$v([openingLines, ...children, closingLines]), multiLineElem]); +} // JSX Children are strange, mostly for two reasons: +// 1. JSX reads newlines into string values, instead of skipping them like JS +// 2. up to one whitespace between elements within a line is significant, +// but not between lines. +// +// Leading, trailing, and lone whitespace all need to +// turn themselves into the rather ugly `{' '}` when breaking. +// +// We print JSX using the `fill` doc primitive. +// This requires that we give it an array of alternating +// content and whitespace elements. +// To ensure this we add dummy `""` content elements as needed. - if (node.static || node.accessibility // TypeScript - ) { - return false; - } - if (!node.computed) { - const name = node.key && node.key.name; +function printJsxChildren(path, options, print, jsxWhitespace, isFacebookTranslationTag) { + const parts = []; + path.each((childPath, i, children) => { + const child = childPath.getValue(); - if (name === "in" || name === "instanceof") { - return true; - } - } + if (isLiteral$2(child)) { + const text = rawText$4(child); // Contains a non-whitespace character - switch (node.type) { - case "ClassProperty": - case "TSAbstractClassProperty": - return node.computed; + if (isMeaningfulJsxText(child)) { + const words = text.split(matchJsxWhitespaceRegex); // Starts with whitespace - case "MethodDefinition": // Flow + if (words[0] === "") { + parts.push(""); + words.shift(); - case "TSAbstractMethodDefinition": // TypeScript + if (/\n/.test(words[0])) { + const next = children[i + 1]; + parts.push(separatorWithWhitespace(isFacebookTranslationTag, words[1], child, next)); + } else { + parts.push(jsxWhitespace); + } - case "ClassMethod": - case "ClassPrivateMethod": - { - // Babel - const isAsync = node.value ? node.value.async : node.async; - const isGenerator = node.value ? node.value.generator : node.generator; + words.shift(); + } - if (isAsync || node.kind === "get" || node.kind === "set") { - return false; + let endWhitespace; // Ends with whitespace + + if (getLast$a(words) === "") { + words.pop(); + endWhitespace = words.pop(); + } // This was whitespace only without a new line. + + + if (words.length === 0) { + return; } - if (node.computed || isGenerator) { - return true; + for (const [i, word] of words.entries()) { + if (i % 2 === 1) { + parts.push(line$q); + } else { + parts.push(word); + } } - return false; + if (endWhitespace !== undefined) { + if (/\n/.test(endWhitespace)) { + const next = children[i + 1]; + parts.push(separatorWithWhitespace(isFacebookTranslationTag, getLast$a(parts), child, next)); + } else { + parts.push(jsxWhitespace); + } + } else { + const next = children[i + 1]; + parts.push(separatorNoWhitespace(isFacebookTranslationTag, getLast$a(parts), child, next)); + } + } else if (/\n/.test(text)) { + // Keep (up to one) blank line between tags/expressions/text. + // Note: We don't keep blank lines between text elements. + if (text.match(/\n/g).length > 1) { + parts.push("", hardline$t); + } + } else { + parts.push("", jsxWhitespace); } + } else { + const printedChild = print(); + parts.push(printedChild); + const next = children[i + 1]; + const directlyFollowedByMeaningfulText = next && isMeaningfulJsxText(next); - case "TSIndexSignature": - return true; + if (directlyFollowedByMeaningfulText) { + const firstWord = trimJsxWhitespace(rawText$4(next)).split(matchJsxWhitespaceRegex)[0]; + parts.push(separatorNoWhitespace(isFacebookTranslationTag, firstWord, child, next)); + } else { + parts.push(hardline$t); + } + } + }, "children"); + return parts; +} - default: - /* istanbul ignore next */ - return false; +function separatorNoWhitespace(isFacebookTranslationTag, child, childNode, nextNode) { + if (isFacebookTranslationTag) { + return ""; + } + + if (childNode.type === "JSXElement" && !childNode.closingElement || nextNode && nextNode.type === "JSXElement" && !nextNode.closingElement) { + return child.length === 1 ? softline$m : hardline$t; } + + return softline$m; } -/** - * @param {string} tokenNode - * @param {string} keyword - * @returns {string} - */ +function separatorWithWhitespace(isFacebookTranslationTag, child, childNode, nextNode) { + if (isFacebookTranslationTag) { + return hardline$t; + } -function getTypeScriptMappedTypeModifier(tokenNode, keyword) { - if (tokenNode === "+") { - return "+" + keyword; - } else if (tokenNode === "-") { - return "-" + keyword; + if (child.length === 1) { + return childNode.type === "JSXElement" && !childNode.closingElement || nextNode && nextNode.type === "JSXElement" && !nextNode.closingElement ? hardline$t : softline$m; } - return keyword; + return hardline$t; } -function hasNewlineBetweenOrAfterDecorators(node, options) { - return hasNewlineInRange$3(options.originalText, options.locStart(node.decorators[0]), options.locEnd(getLast$2(node.decorators))) || hasNewline$4(options.originalText, options.locEnd(getLast$2(node.decorators))); -} // Only space, newline, carriage return, and tab are treated as whitespace -// inside JSX. +function maybeWrapJsxElementInParens(path, elem, options) { + const parent = path.getParentNode(); + /* istanbul ignore next */ + if (!parent) { + return elem; + } -const jsxWhitespaceChars = " \n\r\t"; -const matchJsxWhitespaceRegex = new RegExp("([" + jsxWhitespaceChars + "]+)"); -const containsNonJsxWhitespaceRegex = new RegExp("[^" + jsxWhitespaceChars + "]"); // Meaningful if it contains non-whitespace characters, -// or it contains whitespace without a new line. + const NO_WRAP_PARENTS = { + ArrayExpression: true, + JSXAttribute: true, + JSXElement: true, + JSXExpressionContainer: true, + JSXFragment: true, + ExpressionStatement: true, + CallExpression: true, + OptionalCallExpression: true, + ConditionalExpression: true, + JsExpressionRoot: true + }; -/** - * @param {Node} node - * @returns {boolean} - */ + if (NO_WRAP_PARENTS[parent.type]) { + return elem; + } -function isMeaningfulJSXText(node) { - return isLiteral(node) && (containsNonJsxWhitespaceRegex.test(rawText(node)) || !/\n/.test(rawText(node))); + const shouldBreak = path.match(undefined, node => node.type === "ArrowFunctionExpression", isCallExpression$9, node => node.type === "JSXExpressionContainer"); + const needsParens = needsParens_1(path, options); + return group$v([needsParens ? "" : ifBreak$k("("), indent$q([softline$m, elem]), softline$m, needsParens ? "" : ifBreak$k(")")], { + shouldBreak + }); } -/** - * @param {FastPath} path - * @returns {boolean} - */ - -function hasJsxIgnoreComment(path) { +function printJsxAttribute(path, options, print) { const node = path.getValue(); - const parent = path.getParentNode(); - - if (!parent || !node || !isJSXNode(node) || !isJSXNode(parent)) { - return false; - } // Lookup the previous sibling, ignoring any empty JSXText elements - + const parts = []; + parts.push(print("name")); - const index = parent.children.indexOf(node); - let prevSibling = null; + if (node.value) { + let res; - for (let i = index; i > 0; i--) { - const candidate = parent.children[i - 1]; + if (isStringLiteral$4(node.value)) { + const raw = rawText$4(node.value); // Unescape all quotes so we get an accurate preferred quote - if (candidate.type === "JSXText" && !isMeaningfulJSXText(candidate)) { - continue; + let final = raw.replace(/'/g, "'").replace(/"/g, '"'); + const quote = getPreferredQuote(final, options.jsxSingleQuote ? "'" : '"'); + const escape = quote === "'" ? "'" : """; + final = final.slice(1, -1).replace(new RegExp(quote, "g"), escape); + res = [quote, final, quote]; + } else { + res = print("value"); } - prevSibling = candidate; - break; + parts.push("=", res); } - return prevSibling && prevSibling.type === "JSXExpressionContainer" && prevSibling.expression.type === "JSXEmptyExpression" && prevSibling.expression.comments && prevSibling.expression.comments.some(comment => comment.value.trim() === "prettier-ignore"); + return parts; } -/** - * @param {JSXElement} node - * @returns {boolean} - */ +function printJsxExpressionContainer(path, options, print) { + const node = path.getValue(); + const parent = path.getParentNode(0); + const shouldInline = node.expression.type === "JSXEmptyExpression" || !hasComment$e(node.expression) && (node.expression.type === "ArrayExpression" || node.expression.type === "ObjectExpression" || node.expression.type === "ArrowFunctionExpression" || isCallExpression$9(node.expression) || node.expression.type === "FunctionExpression" || node.expression.type === "TemplateLiteral" || node.expression.type === "TaggedTemplateExpression" || node.expression.type === "DoExpression" || isJsxNode$4(parent) && (node.expression.type === "ConditionalExpression" || isBinaryish$2(node.expression))); -function isEmptyJSXElement(node) { - if (node.children.length === 0) { - return true; + if (shouldInline) { + return group$v(["{", print("expression"), lineSuffixBoundary, "}"]); } - if (node.children.length > 1) { - return false; - } // if there is one text child and does not contain any meaningful text - // we can treat the element as empty. - + return group$v(["{", indent$q([softline$m, print("expression")]), softline$m, lineSuffixBoundary, "}"]); +} - const child = node.children[0]; - return isLiteral(child) && !isMeaningfulJSXText(child); +function printJsxOpeningElement(path, options, print) { + const node = path.getValue(); + const nameHasComments = node.name && hasComment$e(node.name) || node.typeParameters && hasComment$e(node.typeParameters); // Don't break self-closing elements with no attributes and no comments + + if (node.selfClosing && node.attributes.length === 0 && !nameHasComments) { + return ["<", print("name"), print("typeParameters"), " />"]; + } // don't break up opening elements with a single long text attribute + + + if (node.attributes && node.attributes.length === 1 && node.attributes[0].value && isStringLiteral$4(node.attributes[0].value) && !node.attributes[0].value.value.includes("\n") && // We should break for the following cases: + //
+ //
+ !nameHasComments && !hasComment$e(node.attributes[0])) { + return group$v(["<", print("name"), print("typeParameters"), " ", ...path.map(print, "attributes"), node.selfClosing ? " />" : ">"]); + } + + const lastAttrHasTrailingComments = node.attributes.length > 0 && hasComment$e(getLast$a(node.attributes), CommentCheckFlags$c.Trailing); + const bracketSameLine = // Simple tags (no attributes and no comment in tag name) should be + // kept unbroken regardless of `jsxBracketSameLine` + node.attributes.length === 0 && !nameHasComments || options.jsxBracketSameLine && ( // We should print the bracket in a new line for the following cases: + //
+ //
+ !nameHasComments || node.attributes.length > 0) && !lastAttrHasTrailingComments; // We should print the opening element expanded if any prop value is a + // string literal with newlines + + const shouldBreak = node.attributes && node.attributes.some(attr => attr.value && isStringLiteral$4(attr.value) && attr.value.value.includes("\n")); + return group$v(["<", print("name"), print("typeParameters"), indent$q(path.map(() => [line$q, print()], "attributes")), node.selfClosing ? line$q : bracketSameLine ? ">" : softline$m, node.selfClosing ? "/>" : bracketSameLine ? "" : ">"], { + shouldBreak + }); } -/** - * @param {FastPath} path - * @returns {boolean} - */ +function printJsxClosingElement(path, options, print) { + const node = path.getValue(); + const parts = []; + parts.push(""); + return parts; } -/** - * @param {FastPath} path - * @returns {boolean} - */ +function printJsxOpeningClosingFragment(path, options +/*, print*/ +) { + const node = path.getValue(); + const nodeHasComment = hasComment$e(node); + const hasOwnLineComment = hasComment$e(node, CommentCheckFlags$c.Line); + const isOpeningFragment = node.type === "JSXOpeningFragment"; + return [isOpeningFragment ? "<" : ""]; +} -function isLastStatement(path) { - const parent = path.getParentNode(); +function printJsxElement(path, options, print) { + const elem = printComments$4(path, printJsxElementInternal(path, options, print), options); + return maybeWrapJsxElementInParens(path, elem, options); +} + +function printJsxEmptyExpression(path, options +/*, print*/ +) { + const node = path.getValue(); + const requiresHardline = hasComment$e(node, CommentCheckFlags$c.Line); + return [printDanglingComments$d(path, options, + /* sameIndent */ + !requiresHardline), requiresHardline ? hardline$t : ""]; +} // `JSXSpreadAttribute` and `JSXSpreadChild` - if (!parent) { - return true; - } +function printJsxSpreadAttribute(path, options, print) { const node = path.getValue(); - const body = (parent.body || parent.consequent).filter(stmt => stmt.type !== "EmptyStatement"); - return body[body.length - 1] === node; -} -/** - * @param {string} text - * @param {Node} typeAnnotation - * @returns {boolean} - */ + return ["{", path.call(p => { + const printed = ["...", print()]; + const node = p.getValue(); + if (!hasComment$e(node) || !willPrintOwnComments(p)) { + return printed; + } -function isFlowAnnotationComment(text, typeAnnotation, options) { - const start = options.locStart(typeAnnotation); - const end = skipWhitespace$2(text, options.locEnd(typeAnnotation)); - return end !== false && text.slice(start, start + 2) === "/*" && text.slice(end, end + 2) === "*/"; + return [indent$q([softline$m, printComments$4(p, printed, options)]), softline$m]; + }, node.type === "JSXSpreadAttribute" ? "argument" : "expression"), "}"]; } -/** - * @param {string} text - * @param {Node} node - * @returns {boolean} - */ +function printJsx$1(path, options, print) { + const node = path.getValue(); // JSX nodes always starts with `JSX` -function hasLeadingOwnLineComment(text, node, options) { - if (isJSXNode(node)) { - return hasNodeIgnoreComment$1(node); + if (!node.type.startsWith("JSX")) { + return; } - const res = node.comments && node.comments.some(comment => comment.leading && hasNewline$4(text, options.locEnd(comment))); - return res; -} // This recurses the return argument, looking for the first token -// (the leftmost leaf node) and, if it (or its parents) has any -// leadingComments, returns true (so it can be wrapped in parens). + switch (node.type) { + case "JSXAttribute": + return printJsxAttribute(path, options, print); + case "JSXIdentifier": + return String(node.name); -function returnArgumentHasLeadingComment(options, argument) { - if (hasLeadingOwnLineComment(options.originalText, argument, options)) { - return true; - } + case "JSXNamespacedName": + return join$o(":", [print("namespace"), print("name")]); - if (hasNakedLeftSide(argument)) { - let leftMost = argument; - let newLeftMost; + case "JSXMemberExpression": + return join$o(".", [print("object"), print("property")]); - while (newLeftMost = getLeftSide(leftMost)) { - leftMost = newLeftMost; + case "JSXSpreadAttribute": + return printJsxSpreadAttribute(path, options, print); - if (hasLeadingOwnLineComment(options.originalText, leftMost, options)) { - return true; + case "JSXSpreadChild": + { + // Same as `printJsxSpreadAttribute` + const printJsxSpreadChild = printJsxSpreadAttribute; + return printJsxSpreadChild(path, options, print); } - } - } - return false; -} // Note: Quoting/unquoting numbers in TypeScript is not safe. -// -// let a = { 1: 1, 2: 2 } -// let b = { '1': 1, '2': 2 } -// -// declare let aa: keyof typeof a; -// declare let bb: keyof typeof b; -// -// aa = bb; -// ^^ -// Type '"1" | "2"' is not assignable to type '1 | 2'. -// Type '"1"' is not assignable to type '1 | 2'.(2322) -// -// And in Flow, you get: -// -// const x = { -// 0: 1 -// ^ Non-string literal property keys not supported. [unsupported-syntax] -// } -// -// Angular does not support unquoted numbers in expressions. -// -// So we play it safe and only unquote numbers for the "babel" parser. -// (Vue supports unquoted numbers in expressions, but let’s keep it simple.) -// -// Identifiers can be unquoted in more circumstances, though. + case "JSXExpressionContainer": + return printJsxExpressionContainer(path, options, print); + case "JSXFragment": + case "JSXElement": + return printJsxElement(path, options, print); -function isStringPropSafeToUnquote(node, options) { - return options.parser !== "json" && isStringLiteral(node.key) && rawText(node.key).slice(1, -1) === node.key.value && (isIdentifierName(node.key.value) && // With `--strictPropertyInitialization`, TS treats properties with quoted names differently than unquoted ones. - // See https://github.com/microsoft/TypeScript/pull/20075 - !((options.parser === "typescript" || options.parser === "babel-ts") && node.type === "ClassProperty") || isSimpleNumber(node.key.value) && String(Number(node.key.value)) === node.key.value && options.parser === "babel"); -} // Matches “simple” numbers like `123` and `2.5` but not `1_000`, `1e+100` or `0b10`. + case "JSXOpeningElement": + return printJsxOpeningElement(path, options, print); + case "JSXClosingElement": + return printJsxClosingElement(path, options, print); -function isSimpleNumber(numberString) { - return /^(\d+|\d+\.\d+)$/.test(numberString); -} -/** - * @param {Node} node - * @param {Node} parentNode - * @returns {boolean} - */ + case "JSXOpeningFragment": + case "JSXClosingFragment": + return printJsxOpeningClosingFragment(path, options + /*, print*/ + ); + case "JSXEmptyExpression": + return printJsxEmptyExpression(path, options + /*, print*/ + ); -function isJestEachTemplateLiteral(node, parentNode) { - /** - * describe.each`table`(name, fn) - * describe.only.each`table`(name, fn) - * describe.skip.each`table`(name, fn) - * test.each`table`(name, fn) - * test.only.each`table`(name, fn) - * test.skip.each`table`(name, fn) - * - * Ref: https://github.com/facebook/jest/pull/6102 - */ - const jestEachTriggerRegex = /^[fx]?(describe|it|test)$/; - return parentNode.type === "TaggedTemplateExpression" && parentNode.quasi === node && parentNode.tag.type === "MemberExpression" && parentNode.tag.property.type === "Identifier" && parentNode.tag.property.name === "each" && (parentNode.tag.object.type === "Identifier" && jestEachTriggerRegex.test(parentNode.tag.object.name) || parentNode.tag.object.type === "MemberExpression" && parentNode.tag.object.property.type === "Identifier" && (parentNode.tag.object.property.name === "only" || parentNode.tag.object.property.name === "skip") && parentNode.tag.object.object.type === "Identifier" && jestEachTriggerRegex.test(parentNode.tag.object.object.name)); -} -/** - * @param {TemplateLiteral} template - * @returns {boolean} - */ + case "JSXText": + /* istanbul ignore next */ + throw new Error("JSXTest should be handled by JSXElement"); + default: + /* istanbul ignore next */ + throw new Error(`Unknown JSX node type: ${JSON.stringify(node.type)}.`); + } +} // Only space, newline, carriage return, and tab are treated as whitespace +// inside JSX. -function templateLiteralHasNewLines(template) { - return template.quasis.some(quasi => quasi.value.raw.includes("\n")); -} -/** - * @param {TemplateLiteral | TaggedTemplateExpression} n - * @param {string} text - * @returns {boolean} - */ +const jsxWhitespaceChars = " \n\r\t"; +const matchJsxWhitespaceRegex = new RegExp("([" + jsxWhitespaceChars + "]+)"); +const containsNonJsxWhitespaceRegex = new RegExp("[^" + jsxWhitespaceChars + "]"); -function isTemplateOnItsOwnLine(n, text, options) { - return (n.type === "TemplateLiteral" && templateLiteralHasNewLines(n) || n.type === "TaggedTemplateExpression" && templateLiteralHasNewLines(n.quasi)) && !hasNewline$4(text, options.locStart(n), { - backwards: true - }); -} +const trimJsxWhitespace = text => text.replace(new RegExp("(?:^" + matchJsxWhitespaceRegex.source + "|" + matchJsxWhitespaceRegex.source + "$)"), ""); /** - * @param {Node} node + * @param {JSXElement} node * @returns {boolean} */ -function needsHardlineAfterDanglingComment(node) { - if (!node.comments) { - return false; +function isEmptyJsxElement(node) { + if (node.children.length === 0) { + return true; } - const lastDanglingComment = getLast$2(node.comments.filter(comment => !comment.leading && !comment.trailing)); - return lastDanglingComment && !comments$1.isBlockComment(lastDanglingComment); -} // Logic to check for args with multiple anonymous functions. For instance, -// the following call should be split on multiple lines for readability: -// source.pipe(map((x) => x + x), filter((x) => x % 2 === 0)) - - -function isFunctionCompositionArgs(args) { - if (args.length <= 1) { + if (node.children.length > 1) { return false; - } - - let count = 0; - - for (const arg of args) { - if (isFunctionOrArrowExpression(arg)) { - count += 1; + } // if there is one text child and does not contain any meaningful text + // we can treat the element as empty. - if (count > 1) { - return true; - } - } else if (isCallOrOptionalCallExpression(arg)) { - for (const childArg of arg.arguments) { - if (isFunctionOrArrowExpression(childArg)) { - return true; - } - } - } - } - return false; -} // Logic to determine if a call is a “long curried function call”. -// See https://github.com/prettier/prettier/issues/1420. -// -// `connect(a, b, c)(d)` -// In the above call expression, the second call is the parent node and the -// first call is the current node. + const child = node.children[0]; + return isLiteral$2(child) && !isMeaningfulJsxText(child); +} // Meaningful if it contains non-whitespace characters, +// or it contains whitespace without a new line. /** - * @param {FastPath} path + * @param {Node} node * @returns {boolean} */ -function isLongCurriedCallExpression(path) { - const node = path.getValue(); - const parent = path.getParentNode(); - return isCallOrOptionalCallExpression(node) && isCallOrOptionalCallExpression(parent) && parent.callee === node && node.arguments.length > parent.arguments.length && parent.arguments.length > 0; +function isMeaningfulJsxText(node) { + return isLiteral$2(node) && (containsNonJsxWhitespaceRegex.test(rawText$4(node)) || !/\n/.test(rawText$4(node))); +} // Detect an expression node representing `{" "}` + + +function isJsxWhitespaceExpression(node) { + return node.type === "JSXExpressionContainer" && isLiteral$2(node.expression) && node.expression.value === " " && !hasComment$e(node.expression); } /** - * @param {any} node - * @param {number} depth + * @param {AstPath} path * @returns {boolean} */ -function isSimpleCallArgument(node, depth) { - if (depth >= 2) { +function hasJsxIgnoreComment$1(path) { + const node = path.getValue(); + const parent = path.getParentNode(); + + if (!parent || !node || !isJsxNode$4(node) || !isJsxNode$4(parent)) { return false; - } + } // Lookup the previous sibling, ignoring any empty JSXText elements - const isChildSimple = child => isSimpleCallArgument(child, depth + 1); - const regexpPattern = node.type === "Literal" && "regex" in node && node.regex.pattern || node.type === "RegExpLiteral" && node.pattern; + const index = parent.children.indexOf(node); + let prevSibling = null; - if (regexpPattern && regexpPattern.length > 5) { - return false; - } + for (let i = index; i > 0; i--) { + const candidate = parent.children[i - 1]; - if (node.type === "Literal" || node.type === "BigIntLiteral" || node.type === "DecimalLiteral" || node.type === "BooleanLiteral" || node.type === "NullLiteral" || node.type === "NumericLiteral" || node.type === "RegExpLiteral" || node.type === "StringLiteral" || node.type === "Identifier" || node.type === "ThisExpression" || node.type === "Super" || node.type === "PrivateName" || node.type === "ArgumentPlaceholder" || node.type === "Import") { - return true; - } + if (candidate.type === "JSXText" && !isMeaningfulJsxText(candidate)) { + continue; + } - if (node.type === "TemplateLiteral") { - return node.expressions.every(isChildSimple); + prevSibling = candidate; + break; } - if (node.type === "ObjectExpression") { - return node.properties.every(p => !p.computed && (p.shorthand || p.value && isChildSimple(p.value))); - } + return prevSibling && prevSibling.type === "JSXExpressionContainer" && prevSibling.expression.type === "JSXEmptyExpression" && hasNodeIgnoreComment(prevSibling.expression); +} - if (node.type === "ArrayExpression") { - return node.elements.every(x => x === null || isChildSimple(x)); - } +var jsx = { + hasJsxIgnoreComment: hasJsxIgnoreComment$1, + printJsx: printJsx$1 +}; - if (node.type === "ImportExpression") { - return isChildSimple(node.source); +// `Array.prototype.flat` method +// https://tc39.es/ecma262/#sec-array.prototype.flat +_export({ target: 'Array', proto: true }, { + flat: function flat(/* depthArg = 1 */) { + var depthArg = arguments.length ? arguments[0] : undefined; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; } +}); - if (node.type === "CallExpression" || node.type === "OptionalCallExpression" || node.type === "NewExpression") { - return isSimpleCallArgument(node.callee, depth) && node.arguments.every(isChildSimple); +const { + isNonEmptyArray: isNonEmptyArray$e +} = util$5; +const { + builders: { + indent: indent$p, + join: join$n, + line: line$p } +} = doc; +const { + isFlowAnnotationComment: isFlowAnnotationComment$1 +} = utils$5; - if (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") { - return isSimpleCallArgument(node.object, depth) && isSimpleCallArgument(node.property, depth); - } +function printOptionalToken$9(path) { + const node = path.getValue(); - if (node.type === "UnaryExpression" && (node.operator === "!" || node.operator === "-")) { - return isSimpleCallArgument(node.argument, depth); + if (!node.optional || // It's an optional computed method parsed by typescript-estree. + // "?" is printed in `printMethod`. + node.type === "Identifier" && node === path.getParentNode().key) { + return ""; } - if (node.type === "TSNonNullExpression") { - return isSimpleCallArgument(node.expression, depth); + if (node.type === "OptionalCallExpression" || node.type === "OptionalMemberExpression" && node.computed) { + return "?."; } - return false; -} - -function rawText(node) { - return node.extra ? node.extra.raw : node.raw; + return "?"; } -function identity$1(x) { - return x; -} +function printFunctionTypeParameters$4(path, options, print) { + const fun = path.getValue(); -function isTSXFile(options) { - return options.filepath && /\.tsx$/i.test(options.filepath); -} -/** - * @param {any} options - * @param {("es5" | "all")} [level] - * @returns {boolean} - */ + if (fun.typeArguments) { + return print("typeArguments"); + } + if (fun.typeParameters) { + return print("typeParameters"); + } -function shouldPrintComma(options, level = "es5") { - return options.trailingComma === "es5" && level === "es5" || options.trailingComma === "all" && (level === "all" || level === "es5"); + return ""; } -/** - * Tests if an expression starts with `{`, or (if forbidFunctionClassAndDoExpr - * holds) `function`, `class`, or `do {}`. Will be overzealous if there's - * already necessary grouping parentheses. - * - * @param {Node} node - * @param {boolean} forbidFunctionClassAndDoExpr - * @returns {boolean} - */ +function printTypeAnnotation$5(path, options, print) { + const node = path.getValue(); -function startsWithNoLookaheadToken(node, forbidFunctionClassAndDoExpr) { - node = getLeftMost(node); - - switch (node.type) { - case "FunctionExpression": - case "ClassExpression": - case "DoExpression": - return forbidFunctionClassAndDoExpr; - - case "ObjectExpression": - return true; + if (!node.typeAnnotation) { + return ""; + } - case "MemberExpression": - case "OptionalMemberExpression": - return startsWithNoLookaheadToken(node.object, forbidFunctionClassAndDoExpr); + const parentNode = path.getParentNode(); + const isDefinite = node.definite || parentNode && parentNode.type === "VariableDeclarator" && parentNode.definite; + const isFunctionDeclarationIdentifier = parentNode.type === "DeclareFunction" && parentNode.id === node; - case "TaggedTemplateExpression": - if (node.tag.type === "FunctionExpression") { - // IIFEs are always already parenthesized - return false; - } + if (isFlowAnnotationComment$1(options.originalText, node.typeAnnotation)) { + return [" /*: ", print("typeAnnotation"), " */"]; + } - return startsWithNoLookaheadToken(node.tag, forbidFunctionClassAndDoExpr); + return [isFunctionDeclarationIdentifier ? "" : isDefinite ? "!: " : ": ", print("typeAnnotation")]; +} - case "CallExpression": - case "OptionalCallExpression": - if (node.callee.type === "FunctionExpression") { - // IIFEs are always already parenthesized - return false; - } +function printBindExpressionCallee$2(path, options, print) { + return ["::", print("callee")]; +} - return startsWithNoLookaheadToken(node.callee, forbidFunctionClassAndDoExpr); +function printTypeScriptModifiers$2(path, options, print) { + const node = path.getValue(); - case "ConditionalExpression": - return startsWithNoLookaheadToken(node.test, forbidFunctionClassAndDoExpr); + if (!isNonEmptyArray$e(node.modifiers)) { + return ""; + } - case "UpdateExpression": - return !node.prefix && startsWithNoLookaheadToken(node.argument, forbidFunctionClassAndDoExpr); + return [join$n(" ", path.map(print, "modifiers")), " "]; +} - case "BindExpression": - return node.object && startsWithNoLookaheadToken(node.object, forbidFunctionClassAndDoExpr); +function adjustClause$1(node, clause, forceSpace) { + if (node.type === "EmptyStatement") { + return ";"; + } - case "SequenceExpression": - return startsWithNoLookaheadToken(node.expressions[0], forbidFunctionClassAndDoExpr); + if (node.type === "BlockStatement" || forceSpace) { + return [" ", clause]; + } - case "TSAsExpression": - return startsWithNoLookaheadToken(node.expression, forbidFunctionClassAndDoExpr); + return indent$p([line$p, clause]); +} - default: - return false; - } +function printRestSpread$2(path, options, print) { + return ["...", print("argument"), printTypeAnnotation$5(path, options, print)]; } -const equalityOperators = { - "==": true, - "!=": true, - "===": true, - "!==": true -}; -const multiplicativeOperators = { - "*": true, - "/": true, - "%": true -}; -const bitshiftOperators = { - ">>": true, - ">>>": true, - "<<": true +var misc$1 = { + printOptionalToken: printOptionalToken$9, + printFunctionTypeParameters: printFunctionTypeParameters$4, + printBindExpressionCallee: printBindExpressionCallee$2, + printTypeScriptModifiers: printTypeScriptModifiers$2, + printTypeAnnotation: printTypeAnnotation$5, + printRestSpread: printRestSpread$2, + adjustClause: adjustClause$1 }; -function shouldFlatten(parentOp, nodeOp) { - if (getPrecedence(nodeOp) !== getPrecedence(parentOp)) { - return false; - } // ** is right-associative - // x ** y ** z --> x ** (y ** z) - - - if (parentOp === "**") { - return false; - } // x == y == z --> (x == y) == z +const { + printDanglingComments: printDanglingComments$c +} = comments$1; +const { + builders: { + line: line$o, + softline: softline$l, + hardline: hardline$s, + group: group$u, + indent: indent$o, + ifBreak: ifBreak$j, + fill: fill$6 + } +} = doc; +const { + getLast: getLast$9, + hasNewline: hasNewline$5 +} = util$5; +const { + shouldPrintComma: shouldPrintComma$a, + hasComment: hasComment$d, + CommentCheckFlags: CommentCheckFlags$b, + isNextLineEmpty: isNextLineEmpty$b, + isNumericLiteral: isNumericLiteral$4, + isSignedNumericLiteral: isSignedNumericLiteral$1 +} = utils$5; +const { + locStart: locStart$m +} = loc$6; +const { + printOptionalToken: printOptionalToken$8, + printTypeAnnotation: printTypeAnnotation$4 +} = misc$1; +/** @typedef {import("../../document").Doc} Doc */ +function printArray$1(path, options, print) { + const node = path.getValue(); + /** @type{Doc[]} */ - if (equalityOperators[parentOp] && equalityOperators[nodeOp]) { - return false; - } // x * y % z --> (x * y) % z + const parts = []; + const openBracket = node.type === "TupleExpression" ? "#[" : "["; + const closeBracket = "]"; + if (node.elements.length === 0) { + if (!hasComment$d(node, CommentCheckFlags$b.Dangling)) { + parts.push(openBracket, closeBracket); + } else { + parts.push(group$u([openBracket, printDanglingComments$c(path, options), softline$l, closeBracket])); + } + } else { + const lastElem = getLast$9(node.elements); + const canHaveTrailingComma = !(lastElem && lastElem.type === "RestElement"); // JavaScript allows you to have empty elements in an array which + // changes its length based on the number of commas. The algorithm + // is that if the last argument is null, we need to force insert + // a comma to ensure JavaScript recognizes it. + // [,].length === 1 + // [1,].length === 1 + // [1,,].length === 2 + // + // Note that getLast returns null if the array is empty, but + // we already check for an empty array just above so we are safe - if (nodeOp === "%" && multiplicativeOperators[parentOp] || parentOp === "%" && multiplicativeOperators[nodeOp]) { - return false; - } // x * y / z --> (x * y) / z - // x / y * z --> (x / y) * z + const needsForcedTrailingComma = lastElem === null; + const groupId = Symbol("array"); + const shouldBreak = !options.__inJestEach && node.elements.length > 1 && node.elements.every((element, i, elements) => { + const elementType = element && element.type; + if (elementType !== "ArrayExpression" && elementType !== "ObjectExpression") { + return false; + } - if (nodeOp !== parentOp && multiplicativeOperators[nodeOp] && multiplicativeOperators[parentOp]) { - return false; - } // x << y << z --> (x << y) << z + const nextElement = elements[i + 1]; + if (nextElement && elementType !== nextElement.type) { + return false; + } - if (bitshiftOperators[parentOp] && bitshiftOperators[nodeOp]) { - return false; + const itemsKey = elementType === "ArrayExpression" ? "elements" : "properties"; + return element[itemsKey] && element[itemsKey].length > 1; + }); + const shouldUseConciseFormatting = isConciselyPrintedArray$1(node, options); + const trailingComma = !canHaveTrailingComma ? "" : needsForcedTrailingComma ? "," : !shouldPrintComma$a(options) ? "" : shouldUseConciseFormatting ? ifBreak$j(",", "", { + groupId + }) : ifBreak$j(","); + parts.push(group$u([openBracket, indent$o([softline$l, shouldUseConciseFormatting ? printArrayItemsConcisely(path, options, print, trailingComma) : [printArrayItems$3(path, options, "elements", print), trailingComma], printDanglingComments$c(path, options, + /* sameIndent */ + true)]), softline$l, closeBracket], { + shouldBreak, + id: groupId + })); } - return true; + parts.push(printOptionalToken$8(path), printTypeAnnotation$4(path, options, print)); + return parts; } -const PRECEDENCE = {}; -[["|>"], ["??"], ["||"], ["&&"], ["|"], ["^"], ["&"], ["==", "===", "!=", "!=="], ["<", ">", "<=", ">=", "in", "instanceof"], [">>", "<<", ">>>"], ["+", "-"], ["*", "/", "%"], ["**"]].forEach((tier, i) => { - tier.forEach(op => { - PRECEDENCE[op] = i; - }); -}); - -function getPrecedence(op) { - return PRECEDENCE[op]; +function isConciselyPrintedArray$1(node, options) { + return node.elements.length > 1 && node.elements.every(element => element && (isNumericLiteral$4(element) || isSignedNumericLiteral$1(element) && !hasComment$d(element.argument)) && !hasComment$d(element, CommentCheckFlags$b.Trailing | CommentCheckFlags$b.Line, comment => !hasNewline$5(options.originalText, locStart$m(comment), { + backwards: true + }))); } -function getLeftMost(node) { - while (node.left) { - node = node.left; - } +function printArrayItems$3(path, options, printPath, print) { + const printedElements = []; + let separatorParts = []; + path.each(childPath => { + printedElements.push(separatorParts, group$u(print())); + separatorParts = [",", line$o]; - return node; + if (childPath.getValue() && isNextLineEmpty$b(childPath.getValue(), options)) { + separatorParts.push(softline$l); + } + }, printPath); + return printedElements; } -function isBitwiseOperator(operator) { - return !!bitshiftOperators[operator] || operator === "|" || operator === "^" || operator === "&"; +function printArrayItemsConcisely(path, options, print, trailingComma) { + const parts = []; + path.each((childPath, i, elements) => { + const isLast = i === elements.length - 1; + parts.push([print(), isLast ? trailingComma : ","]); + + if (!isLast) { + parts.push(isNextLineEmpty$b(childPath.getValue(), options) ? [hardline$s, hardline$s] : hasComment$d(elements[i + 1], CommentCheckFlags$b.Leading | CommentCheckFlags$b.Line) ? hardline$s : line$o); + } + }, "elements"); + return fill$6(parts); } -var utils$6 = { - classChildNeedsASIProtection, - classPropMayCauseASIProblems, - getFlowVariance, - getLeftSidePathName, - getParentExportDeclaration, - getTypeScriptMappedTypeModifier, - hasDanglingComments, - hasFlowAnnotationComment, - hasFlowShorthandAnnotationComment, - hasLeadingComment: hasLeadingComment$2, - hasLeadingOwnLineComment, - hasNakedLeftSide, - hasNewlineBetweenOrAfterDecorators, - hasNgSideEffect, - hasNode, - hasPrettierIgnore, - hasTrailingComment, - hasTrailingLineComment, - identity: identity$1, - isBinaryish, - isCallOrOptionalCallExpression, - isEmptyJSXElement, - isExportDeclaration, - isFlowAnnotationComment, - isFunctionCompositionArgs, - isFunctionNotation, - isFunctionOrArrowExpression, - isGetterOrSetter, - isJestEachTemplateLiteral, - isJSXNode, - isJSXWhitespaceExpression, - isLastStatement, - isLiteral, - isLongCurriedCallExpression, - isSimpleCallArgument, - isMeaningfulJSXText, - isMemberExpressionChain, - isMemberish, - isNgForOf, - isNumericLiteral, - isObjectType, - isObjectTypePropertyAFunction, - isSimpleFlowType, - isSimpleNumber, - isSimpleTemplateLiteral, - isStringLiteral, - isStringPropSafeToUnquote, - isTemplateOnItsOwnLine, - isTestCall, - isTheOnlyJSXElementInMarkdown, - isTSXFile, - isTypeAnnotationAFunction, - matchJsxWhitespaceRegex, - needsHardlineAfterDanglingComment, - rawText, - returnArgumentHasLeadingComment, - shouldPrintComma, - isBitwiseOperator, - shouldFlatten, - startsWithNoLookaheadToken, - getPrecedence +var array = { + printArray: printArray$1, + printArrayItems: printArrayItems$3, + isConciselyPrintedArray: isConciselyPrintedArray$1 }; -/** @type {import("assert")} */ +const { + printDanglingComments: printDanglingComments$b +} = comments$1; +const { + getLast: getLast$8, + getPenultimate +} = util$5; +const { + getFunctionParameters: getFunctionParameters$3, + hasComment: hasComment$c, + CommentCheckFlags: CommentCheckFlags$a, + isFunctionCompositionArgs, + isJsxNode: isJsxNode$3, + isLongCurriedCallExpression: isLongCurriedCallExpression$1, + shouldPrintComma: shouldPrintComma$9, + getCallArguments: getCallArguments$3, + iterateCallArgumentsPath: iterateCallArgumentsPath$1, + isNextLineEmpty: isNextLineEmpty$a, + isCallExpression: isCallExpression$8, + isStringLiteral: isStringLiteral$3, + isObjectProperty: isObjectProperty$1 +} = utils$5; +const { + builders: { + line: line$n, + hardline: hardline$r, + softline: softline$k, + group: group$t, + indent: indent$n, + conditionalGroup: conditionalGroup$3, + ifBreak: ifBreak$i, + breakParent: breakParent$7 + }, + utils: { + willBreak: willBreak$4 + } +} = doc; +const { + ArgExpansionBailout: ArgExpansionBailout$2 +} = errors; +const { + isConciselyPrintedArray +} = array; +function printCallArguments(path, options, print) { + const node = path.getValue(); + const isDynamicImport = node.type === "ImportExpression"; + const args = getCallArguments$3(node); -const { - getLeftSidePathName: getLeftSidePathName$1, - hasFlowShorthandAnnotationComment: hasFlowShorthandAnnotationComment$1, - hasNakedLeftSide: hasNakedLeftSide$1, - hasNode: hasNode$1, - isBitwiseOperator: isBitwiseOperator$1, - startsWithNoLookaheadToken: startsWithNoLookaheadToken$1, - shouldFlatten: shouldFlatten$1, - getPrecedence: getPrecedence$1 -} = utils$6; + if (args.length === 0) { + return ["(", printDanglingComments$b(path, options, + /* sameIndent */ + true), ")"]; + } // useEffect(() => { ... }, [foo, bar, baz]) -function needsParens(path, options) { - const parent = path.getParentNode(); - if (!parent) { - return false; + if (isReactHookCallWithDepsArray(args)) { + return ["(", print(["arguments", 0]), ", ", print(["arguments", 1]), ")"]; } - const name = path.getName(); - const node = path.getNode(); // If the value of this path is some child of a Node and not a Node - // itself, then it doesn't need parentheses. Only Node objects (in - // fact, only Expression nodes) need parentheses. + let anyArgEmptyLine = false; + let hasEmptyLineFollowingFirstArg = false; + const lastArgIndex = args.length - 1; + const printedArguments = []; + iterateCallArgumentsPath$1(path, (argPath, index) => { + const arg = argPath.getNode(); + const parts = [print()]; - if (path.getValue() !== node) { - return false; - } // to avoid unexpected `}}` in HTML interpolations + if (index === lastArgIndex) ; else if (isNextLineEmpty$a(arg, options)) { + if (index === 0) { + hasEmptyLineFollowingFirstArg = true; + } + anyArgEmptyLine = true; + parts.push(",", hardline$r, hardline$r); + } else { + parts.push(",", line$n); + } - if (options.__isInHtmlInterpolation && !options.bracketSpacing && endsWithRightBracket(node) && isFollowedByRightBracket(path)) { - return true; - } // Only statements don't need parentheses. + printedArguments.push(parts); + }); + const maybeTrailingComma = // Dynamic imports cannot have trailing commas + !(isDynamicImport || node.callee && node.callee.type === "Import") && shouldPrintComma$9(options, "all") ? "," : ""; + function allArgsBrokenOut() { + return group$t(["(", indent$n([line$n, ...printedArguments]), maybeTrailingComma, line$n, ")"], { + shouldBreak: true + }); + } - if (isStatement(node)) { - return false; + if (anyArgEmptyLine || path.getParentNode().type !== "Decorator" && isFunctionCompositionArgs(args)) { + return allArgsBrokenOut(); } - if ( // Preserve parens if we have a Flow annotation comment, unless we're using the Flow - // parser. The Flow parser turns Flow comments into type annotation nodes in its - // AST, which we handle separately. - options.parser !== "flow" && hasFlowShorthandAnnotationComment$1(path.getValue())) { - return true; - } // Identifiers never need parentheses. + const shouldGroupFirst = shouldGroupFirstArg(args); + const shouldGroupLast = shouldGroupLastArg(args, options); + + if (shouldGroupFirst || shouldGroupLast) { + if (shouldGroupFirst ? printedArguments.slice(1).some(willBreak$4) : printedArguments.slice(0, -1).some(willBreak$4)) { + return allArgsBrokenOut(); + } // We want to print the last argument with a special flag - if (node.type === "Identifier") { - // ...unless those identifiers are embed placeholders. They might be substituted by complex - // expressions, so the parens around them should not be dropped. Example (JS-in-HTML-in-JS): - // let tpl = html``; - // If the inner JS formatter removes the parens, the expression might change its meaning: - // f((a + b) / 2) vs f(a + b / 2) - if (node.extra && node.extra.parenthesized && /^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/.test(node.name)) { - return true; - } + let printedExpanded = []; - return false; - } + try { + path.try(() => { + iterateCallArgumentsPath$1(path, (argPath, i) => { + if (shouldGroupFirst && i === 0) { + printedExpanded = [[print([], { + expandFirstArg: true + }), printedArguments.length > 1 ? "," : "", hasEmptyLineFollowingFirstArg ? hardline$r : line$n, hasEmptyLineFollowingFirstArg ? hardline$r : ""], ...printedArguments.slice(1)]; + } - if (parent.type === "ParenthesizedExpression") { - return false; - } // Add parens around the extends clause of a class. It is needed for almost - // all expressions. + if (shouldGroupLast && i === lastArgIndex) { + printedExpanded = [...printedArguments.slice(0, -1), print([], { + expandLastArg: true + })]; + } + }); + }); + } catch (caught) { + if (caught instanceof ArgExpansionBailout$2) { + return allArgsBrokenOut(); + } + /* istanbul ignore next */ - if ((parent.type === "ClassDeclaration" || parent.type === "ClassExpression") && parent.superClass === node && (node.type === "ArrowFunctionExpression" || node.type === "AssignmentExpression" || node.type === "AwaitExpression" || node.type === "BinaryExpression" || node.type === "ConditionalExpression" || node.type === "LogicalExpression" || node.type === "NewExpression" || node.type === "ObjectExpression" || node.type === "ParenthesizedExpression" || node.type === "SequenceExpression" || node.type === "TaggedTemplateExpression" || node.type === "UnaryExpression" || node.type === "UpdateExpression" || node.type === "YieldExpression")) { - return true; - } + throw caught; + } - if (parent.type === "ExportDefaultDeclaration") { - return (// `export default function` or `export default class` can't be followed by - // anything after. So an expression like `export default (function(){}).toString()` - // needs to be followed by a parentheses - shouldWrapFunctionForExportDefault(path, options) || // `export default (foo, bar)` also needs parentheses - node.type === "SequenceExpression" - ); + return [printedArguments.some(willBreak$4) ? breakParent$7 : "", conditionalGroup$3([["(", ...printedExpanded, ")"], shouldGroupFirst ? ["(", group$t(printedExpanded[0], { + shouldBreak: true + }), ...printedExpanded.slice(1), ")"] : ["(", ...printedArguments.slice(0, -1), group$t(getLast$8(printedExpanded), { + shouldBreak: true + }), ")"], allArgsBrokenOut()])]; } - if (parent.type === "Decorator" && parent.expression === node) { - let hasCallExpression = false; - let hasMemberExpression = false; - let current = node; - - while (current) { - switch (current.type) { - case "MemberExpression": - hasMemberExpression = true; - current = current.object; - break; + const contents = ["(", indent$n([softline$k, ...printedArguments]), ifBreak$i(maybeTrailingComma), softline$k, ")"]; - case "CallExpression": - if ( - /** @(x().y) */ - hasMemberExpression || - /** @(x().y()) */ - hasCallExpression) { - return true; - } + if (isLongCurriedCallExpression$1(path)) { + // By not wrapping the arguments in a group, the printer prioritizes + // breaking up these arguments rather than the args of the parent call. + return contents; + } - hasCallExpression = true; - current = current.callee; - break; + return group$t(contents, { + shouldBreak: printedArguments.some(willBreak$4) || anyArgEmptyLine + }); +} - case "Identifier": - return false; +function couldGroupArg(arg, arrowChainRecursion = false) { + return arg.type === "ObjectExpression" && (arg.properties.length > 0 || hasComment$c(arg)) || arg.type === "ArrayExpression" && (arg.elements.length > 0 || hasComment$c(arg)) || arg.type === "TSTypeAssertion" && couldGroupArg(arg.expression) || arg.type === "TSAsExpression" && couldGroupArg(arg.expression) || arg.type === "FunctionExpression" || arg.type === "ArrowFunctionExpression" && ( // we want to avoid breaking inside composite return types but not simple keywords + // https://github.com/prettier/prettier/issues/4070 + // export class Thing implements OtherThing { + // do: (type: Type) => Provider = memoize( + // (type: ObjectType): Provider => {} + // ); + // } + // https://github.com/prettier/prettier/issues/6099 + // app.get("/", (req, res): void => { + // res.send("Hello World!"); + // }); + !arg.returnType || !arg.returnType.typeAnnotation || arg.returnType.typeAnnotation.type !== "TSTypeReference" || // https://github.com/prettier/prettier/issues/7542 + isNonEmptyBlockStatement(arg.body)) && (arg.body.type === "BlockStatement" || arg.body.type === "ArrowFunctionExpression" && couldGroupArg(arg.body, true) || arg.body.type === "ObjectExpression" || arg.body.type === "ArrayExpression" || !arrowChainRecursion && (isCallExpression$8(arg.body) || arg.body.type === "ConditionalExpression") || isJsxNode$3(arg.body)) || arg.type === "DoExpression" || arg.type === "ModuleExpression"; +} - default: - return true; - } - } +function shouldGroupLastArg(args, options) { + const lastArg = getLast$8(args); + const penultimateArg = getPenultimate(args); + return !hasComment$c(lastArg, CommentCheckFlags$a.Leading) && !hasComment$c(lastArg, CommentCheckFlags$a.Trailing) && couldGroupArg(lastArg) && ( // If the last two arguments are of the same type, + // disable last element expansion. + !penultimateArg || penultimateArg.type !== lastArg.type) && ( // useMemo(() => func(), [foo, bar, baz]) + args.length !== 2 || penultimateArg.type !== "ArrowFunctionExpression" || lastArg.type !== "ArrayExpression") && !(args.length > 1 && lastArg.type === "ArrayExpression" && isConciselyPrintedArray(lastArg, options)); +} - return true; +function shouldGroupFirstArg(args) { + if (args.length !== 2) { + return false; } - if (parent.type === "ArrowFunctionExpression" && parent.body === node && node.type !== "SequenceExpression" && // these have parens added anyway - startsWithNoLookaheadToken$1(node, - /* forbidFunctionClassAndDoExpr */ - false) || parent.type === "ExpressionStatement" && startsWithNoLookaheadToken$1(node, - /* forbidFunctionClassAndDoExpr */ - true)) { + const [firstArg, secondArg] = args; + + if (firstArg.type === "ModuleExpression" && isTypeModuleObjectExpression(secondArg)) { return true; } - switch (node.type) { - case "SpreadElement": - case "SpreadProperty": - return parent.type === "MemberExpression" && name === "object" && parent.object === node; + return !hasComment$c(firstArg) && (firstArg.type === "FunctionExpression" || firstArg.type === "ArrowFunctionExpression" && firstArg.body.type === "BlockStatement") && secondArg.type !== "FunctionExpression" && secondArg.type !== "ArrowFunctionExpression" && secondArg.type !== "ConditionalExpression" && !couldGroupArg(secondArg); +} - case "UpdateExpression": - if (parent.type === "UnaryExpression") { - return node.prefix && (node.operator === "++" && parent.operator === "+" || node.operator === "--" && parent.operator === "-"); - } +function isReactHookCallWithDepsArray(args) { + return args.length === 2 && args[0].type === "ArrowFunctionExpression" && getFunctionParameters$3(args[0]).length === 0 && args[0].body.type === "BlockStatement" && args[1].type === "ArrayExpression" && !args.some(arg => hasComment$c(arg)); +} - // else fallthrough +function isNonEmptyBlockStatement(node) { + return node.type === "BlockStatement" && (node.body.some(node => node.type !== "EmptyStatement") || hasComment$c(node, CommentCheckFlags$a.Dangling)); +} // { type: "module" } - case "UnaryExpression": - switch (parent.type) { - case "UnaryExpression": - return node.operator === parent.operator && (node.operator === "+" || node.operator === "-"); - case "BindExpression": - return true; +function isTypeModuleObjectExpression(node) { + return node.type === "ObjectExpression" && node.properties.length === 1 && isObjectProperty$1(node.properties[0]) && node.properties[0].key.type === "Identifier" && node.properties[0].key.name === "type" && isStringLiteral$3(node.properties[0].value) && node.properties[0].value.value === "module"; +} - case "MemberExpression": - case "OptionalMemberExpression": - return name === "object"; +var callArguments = printCallArguments; - case "TaggedTemplateExpression": - return true; +const { + builders: { + softline: softline$j, + group: group$s, + indent: indent$m, + label: label$2 + } +} = doc; +const { + isNumericLiteral: isNumericLiteral$3, + isMemberExpression: isMemberExpression$5, + isCallExpression: isCallExpression$7 +} = utils$5; +const { + printOptionalToken: printOptionalToken$7 +} = misc$1; - case "NewExpression": - case "CallExpression": - case "OptionalCallExpression": - return name === "callee"; +function printMemberExpression$1(path, options, print) { + const node = path.getValue(); + const parent = path.getParentNode(); + let firstNonMemberParent; + let i = 0; - case "BinaryExpression": - return parent.operator === "**" && name === "left"; + do { + firstNonMemberParent = path.getParentNode(i); + i++; + } while (firstNonMemberParent && (isMemberExpression$5(firstNonMemberParent) || firstNonMemberParent.type === "TSNonNullExpression")); - case "TSNonNullExpression": - return true; + const objectDoc = print("object"); + const lookupDoc = printMemberLookup$1(path, options, print); + const shouldInline = firstNonMemberParent && (firstNonMemberParent.type === "NewExpression" || firstNonMemberParent.type === "BindExpression" || firstNonMemberParent.type === "AssignmentExpression" && firstNonMemberParent.left.type !== "Identifier") || node.computed || node.object.type === "Identifier" && node.property.type === "Identifier" && !isMemberExpression$5(parent) || (parent.type === "AssignmentExpression" || parent.type === "VariableDeclarator") && (isCallExpression$7(node.object) && node.object.arguments.length > 0 || node.object.type === "TSNonNullExpression" && isCallExpression$7(node.object.expression) && node.object.expression.arguments.length > 0 || objectDoc.label === "member-chain"); + return label$2(objectDoc.label === "member-chain" ? "member-chain" : "member", [objectDoc, shouldInline ? lookupDoc : group$s(indent$m([softline$j, lookupDoc]))]); +} - default: - return false; - } +function printMemberLookup$1(path, options, print) { + const property = print("property"); + const node = path.getValue(); + const optional = printOptionalToken$7(path); - case "BinaryExpression": - { - if (parent.type === "UpdateExpression" || parent.type === "PipelineTopicExpression" && node.operator === "|>") { - return true; - } + if (!node.computed) { + return [optional, ".", property]; + } - const isLeftOfAForStatement = node => { - let i = 0; + if (!node.property || isNumericLiteral$3(node.property)) { + return [optional, "[", property, "]"]; + } - while (node) { - const parent = path.getParentNode(i++); + return group$s([optional, "[", indent$m([softline$j, property]), softline$j, "]"]); +} - if (!parent) { - return false; - } +var member = { + printMemberExpression: printMemberExpression$1, + printMemberLookup: printMemberLookup$1 +}; - if (parent.type === "ForStatement" && parent.init === node) { - return true; - } +const { + printComments: printComments$3 +} = comments$1; +const { + getLast: getLast$7, + isNextLineEmptyAfterIndex, + getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$1 +} = util$5; +const { + isCallExpression: isCallExpression$6, + isMemberExpression: isMemberExpression$4, + isFunctionOrArrowExpression, + isLongCurriedCallExpression, + isMemberish: isMemberish$1, + isNumericLiteral: isNumericLiteral$2, + isSimpleCallArgument, + hasComment: hasComment$b, + CommentCheckFlags: CommentCheckFlags$9, + isNextLineEmpty: isNextLineEmpty$9 +} = utils$5; +const { + locEnd: locEnd$l +} = loc$6; +const { + builders: { + join: join$m, + hardline: hardline$q, + group: group$r, + indent: indent$l, + conditionalGroup: conditionalGroup$2, + breakParent: breakParent$6, + label: label$1 + }, + utils: { + willBreak: willBreak$3 + } +} = doc; +const { + printMemberLookup +} = member; +const { + printOptionalToken: printOptionalToken$6, + printFunctionTypeParameters: printFunctionTypeParameters$3, + printBindExpressionCallee: printBindExpressionCallee$1 +} = misc$1; // We detect calls on member expressions specially to format a +// common pattern better. The pattern we are looking for is this: +// +// arr +// .map(x => x + 1) +// .filter(x => x > 10) +// .some(x => x % 2) +// +// The way it is structured in the AST is via a nested sequence of +// MemberExpression and CallExpression. We need to traverse the AST +// and make groups out of it to print it in the desired way. - node = parent; - } +function printMemberChain(path, options, print) { + const parent = path.getParentNode(); + const isExpressionStatement = !parent || parent.type === "ExpressionStatement"; // The first phase is to linearize the AST by traversing it down. + // + // a().b() + // has the following AST structure: + // CallExpression(MemberExpression(CallExpression(Identifier))) + // and we transform it into + // [Identifier, CallExpression, MemberExpression, CallExpression] - return false; - }; + const printedNodes = []; // Here we try to retain one typed empty line after each call expression or + // the first group whether it is in parentheses or not - if (node.operator === "in" && isLeftOfAForStatement(node)) { - return true; - } + function shouldInsertEmptyLineAfter(node) { + const { + originalText + } = options; + const nextCharIndex = getNextNonSpaceNonCommentCharacterIndex$1(originalText, node, locEnd$l); + const nextChar = originalText.charAt(nextCharIndex); // if it is cut off by a parenthesis, we only account for one typed empty + // line after that parenthesis - if (node.operator === "|>" && node.extra && node.extra.parenthesized) { - const grandParent = path.getParentNode(1); + if (nextChar === ")") { + return nextCharIndex !== false && isNextLineEmptyAfterIndex(originalText, nextCharIndex + 1); + } - if (grandParent.type === "BinaryExpression" && grandParent.operator === "|>") { - return true; - } - } - } - // fallthrough + return isNextLineEmpty$9(node, options); + } - case "TSTypeAssertion": - case "TSAsExpression": - case "LogicalExpression": - switch (parent.type) { - case "ConditionalExpression": - return node.type === "TSAsExpression"; + function rec(path) { + const node = path.getValue(); - case "CallExpression": - case "NewExpression": - case "OptionalCallExpression": - return name === "callee"; + if (isCallExpression$6(node) && (isMemberish$1(node.callee) || isCallExpression$6(node.callee))) { + printedNodes.unshift({ + node, + printed: [printComments$3(path, [printOptionalToken$6(path), printFunctionTypeParameters$3(path, options, print), callArguments(path, options, print)], options), shouldInsertEmptyLineAfter(node) ? hardline$q : ""] + }); + path.call(callee => rec(callee), "callee"); + } else if (isMemberish$1(node)) { + printedNodes.unshift({ + node, + needsParens: needsParens_1(path, options), + printed: printComments$3(path, isMemberExpression$4(node) ? printMemberLookup(path, options, print) : printBindExpressionCallee$1(path, options, print), options) + }); + path.call(object => rec(object), "object"); + } else if (node.type === "TSNonNullExpression") { + printedNodes.unshift({ + node, + printed: printComments$3(path, "!", options) + }); + path.call(expression => rec(expression), "expression"); + } else { + printedNodes.unshift({ + node, + printed: print() + }); + } + } // Note: the comments of the root node have already been printed, so we + // need to extract this first call without printing them as they would + // if handled inside of the recursive call. - case "ClassExpression": - case "ClassDeclaration": - return name === "superClass" && parent.superClass === node; - case "TSTypeAssertion": - case "TaggedTemplateExpression": - case "UnaryExpression": - case "JSXSpreadAttribute": - case "SpreadElement": - case "SpreadProperty": - case "BindExpression": - case "AwaitExpression": - case "TSAsExpression": - case "TSNonNullExpression": - case "UpdateExpression": - return true; + const node = path.getValue(); + printedNodes.unshift({ + node, + printed: [printOptionalToken$6(path), printFunctionTypeParameters$3(path, options, print), callArguments(path, options, print)] + }); - case "MemberExpression": - case "OptionalMemberExpression": - return name === "object"; + if (node.callee) { + path.call(callee => rec(callee), "callee"); + } // Once we have a linear list of printed nodes, we want to create groups out + // of it. + // + // a().b.c().d().e + // will be grouped as + // [ + // [Identifier, CallExpression], + // [MemberExpression, MemberExpression, CallExpression], + // [MemberExpression, CallExpression], + // [MemberExpression], + // ] + // so that we can print it as + // a() + // .b.c() + // .d() + // .e + // The first group is the first node followed by + // - as many CallExpression as possible + // < fn()()() >.something() + // - as many array accessors as possible + // < fn()[0][1][2] >.something() + // - then, as many MemberExpression as possible but the last one + // < this.items >.something() - case "AssignmentExpression": - return parent.left === node && (node.type === "TSTypeAssertion" || node.type === "TSAsExpression"); - case "LogicalExpression": - if (node.type === "LogicalExpression") { - return parent.operator !== node.operator; - } + const groups = []; + let currentGroup = [printedNodes[0]]; + let i = 1; - // else fallthrough + for (; i < printedNodes.length; ++i) { + if (printedNodes[i].node.type === "TSNonNullExpression" || isCallExpression$6(printedNodes[i].node) || isMemberExpression$4(printedNodes[i].node) && printedNodes[i].node.computed && isNumericLiteral$2(printedNodes[i].node.property)) { + currentGroup.push(printedNodes[i]); + } else { + break; + } + } - case "BinaryExpression": - { - if (!node.operator && node.type !== "TSTypeAssertion") { - return true; - } + if (!isCallExpression$6(printedNodes[0].node)) { + for (; i + 1 < printedNodes.length; ++i) { + if (isMemberish$1(printedNodes[i].node) && isMemberish$1(printedNodes[i + 1].node)) { + currentGroup.push(printedNodes[i]); + } else { + break; + } + } + } - const po = parent.operator; - const pp = getPrecedence$1(po); - const no = node.operator; - const np = getPrecedence$1(no); + groups.push(currentGroup); + currentGroup = []; // Then, each following group is a sequence of MemberExpression followed by + // a sequence of CallExpression. To compute it, we keep adding things to the + // group until we has seen a CallExpression in the past and reach a + // MemberExpression - if (pp > np) { - return true; - } + let hasSeenCallExpression = false; - if (pp === np && name === "right") { - assert__default['default'].strictEqual(parent.right, node); - return true; - } + for (; i < printedNodes.length; ++i) { + if (hasSeenCallExpression && isMemberish$1(printedNodes[i].node)) { + // [0] should be appended at the end of the group instead of the + // beginning of the next one + if (printedNodes[i].node.computed && isNumericLiteral$2(printedNodes[i].node.property)) { + currentGroup.push(printedNodes[i]); + continue; + } - if (pp === np && !shouldFlatten$1(po, no)) { - return true; - } + groups.push(currentGroup); + currentGroup = []; + hasSeenCallExpression = false; + } - if (pp < np && no === "%") { - return po === "+" || po === "-"; - } // Add parenthesis when working with bitwise operators - // It's not strictly needed but helps with code understanding + if (isCallExpression$6(printedNodes[i].node) || printedNodes[i].node.type === "ImportExpression") { + hasSeenCallExpression = true; + } + currentGroup.push(printedNodes[i]); - if (isBitwiseOperator$1(po)) { - return true; - } + if (hasComment$b(printedNodes[i].node, CommentCheckFlags$9.Trailing)) { + groups.push(currentGroup); + currentGroup = []; + hasSeenCallExpression = false; + } + } - return false; - } + if (currentGroup.length > 0) { + groups.push(currentGroup); + } // There are cases like Object.keys(), Observable.of(), _.values() where + // they are the subject of all the chained calls and therefore should + // be kept on the same line: + // + // Object.keys(items) + // .filter(x => x) + // .map(x => x) + // + // In order to detect those cases, we use an heuristic: if the first + // node is an identifier with the name starting with a capital + // letter or just a sequence of _$. The rationale is that they are + // likely to be factories. - default: - return false; - } - case "SequenceExpression": - switch (parent.type) { - case "ReturnStatement": - return false; + function isFactory(name) { + return /^[A-Z]|^[$_]+$/.test(name); + } // In case the Identifier is shorter than tab width, we can keep the + // first call in a single line, if it's an ExpressionStatement. + // + // d3.scaleLinear() + // .domain([0, 100]) + // .range([0, width]); + // - case "ForStatement": - // Although parentheses wouldn't hurt around sequence - // expressions in the head of for loops, traditional style - // dictates that e.g. i++, j++ should not be wrapped with - // parentheses. - return false; - case "ExpressionStatement": - return name !== "expression"; + function isShort(name) { + return name.length <= options.tabWidth; + } - case "ArrowFunctionExpression": - // We do need parentheses, but SequenceExpressions are handled - // specially when printing bodies of arrow functions. - return name !== "body"; + function shouldNotWrap(groups) { + const hasComputed = groups[1].length > 0 && groups[1][0].node.computed; - default: - // Otherwise err on the side of overparenthesization, adding - // explicit exceptions above if this proves overzealous. - return true; - } + if (groups[0].length === 1) { + const firstNode = groups[0][0].node; + return firstNode.type === "ThisExpression" || firstNode.type === "Identifier" && (isFactory(firstNode.name) || isExpressionStatement && isShort(firstNode.name) || hasComputed); + } - case "YieldExpression": - if (parent.type === "UnaryExpression" || parent.type === "AwaitExpression" || parent.type === "TSAsExpression" || parent.type === "TSNonNullExpression") { - return true; - } + const lastNode = getLast$7(groups[0]).node; + return isMemberExpression$4(lastNode) && lastNode.property.type === "Identifier" && (isFactory(lastNode.property.name) || hasComputed); + } - // else fallthrough + const shouldMerge = groups.length >= 2 && !hasComment$b(groups[1][0].node) && shouldNotWrap(groups); - case "AwaitExpression": - switch (parent.type) { - case "TaggedTemplateExpression": - case "UnaryExpression": - case "LogicalExpression": - case "SpreadElement": - case "SpreadProperty": - case "TSAsExpression": - case "TSNonNullExpression": - case "BindExpression": - return true; + function printGroup(printedGroup) { + const printed = printedGroup.map(tuple => tuple.printed); // Checks if the last node (i.e. the parent node) needs parens and print + // accordingly - case "MemberExpression": - case "OptionalMemberExpression": - return name === "object"; + if (printedGroup.length > 0 && getLast$7(printedGroup).needsParens) { + return ["(", ...printed, ")"]; + } - case "NewExpression": - case "CallExpression": - case "OptionalCallExpression": - return name === "callee"; + return printed; + } - case "ConditionalExpression": - return parent.test === node; + function printIndentedGroup(groups) { + /* istanbul ignore next */ + if (groups.length === 0) { + return ""; + } - case "BinaryExpression": - { - if (!node.argument && parent.operator === "|>") { - return false; - } + return indent$l(group$r([hardline$q, join$m(hardline$q, groups.map(printGroup))])); + } - return true; - } + const printedGroups = groups.map(printGroup); + const oneLine = printedGroups; + const cutoff = shouldMerge ? 3 : 2; + const flatGroups = groups.flat(); + const nodeHasComment = flatGroups.slice(1, -1).some(node => hasComment$b(node.node, CommentCheckFlags$9.Leading)) || flatGroups.slice(0, -1).some(node => hasComment$b(node.node, CommentCheckFlags$9.Trailing)) || groups[cutoff] && hasComment$b(groups[cutoff][0].node, CommentCheckFlags$9.Leading); // If we only have a single `.`, we shouldn't do anything fancy and just + // render everything concatenated together. - default: - return false; - } + if (groups.length <= cutoff && !nodeHasComment) { + if (isLongCurriedCallExpression(path)) { + return oneLine; + } - case "TSJSDocFunctionType": - case "TSConditionalType": - if (parent.type === "TSConditionalType" && node === parent.extendsType) { - return true; - } + return group$r(oneLine); + } // Find out the last node in the first group and check if it has an + // empty line after - // fallthrough - case "TSFunctionType": - case "TSConstructorType": - if (parent.type === "TSConditionalType" && node === parent.checkType) { - return true; - } + const lastNodeBeforeIndent = getLast$7(groups[shouldMerge ? 1 : 0]).node; + const shouldHaveEmptyLineBeforeIndent = !isCallExpression$6(lastNodeBeforeIndent) && shouldInsertEmptyLineAfter(lastNodeBeforeIndent); + const expanded = [printGroup(groups[0]), shouldMerge ? groups.slice(1, 2).map(printGroup) : "", shouldHaveEmptyLineBeforeIndent ? hardline$q : "", printIndentedGroup(groups.slice(shouldMerge ? 2 : 1))]; + const callExpressions = printedNodes.map(({ + node + }) => node).filter(isCallExpression$6); - // fallthrough + function lastGroupWillBreakAndOtherCallsHaveFunctionArguments() { + const lastGroupNode = getLast$7(getLast$7(groups)).node; + const lastGroupDoc = getLast$7(printedGroups); + return isCallExpression$6(lastGroupNode) && willBreak$3(lastGroupDoc) && callExpressions.slice(0, -1).some(node => node.arguments.some(isFunctionOrArrowExpression)); + } - case "TSUnionType": - case "TSIntersectionType": - if (parent.type === "TSUnionType" || parent.type === "TSIntersectionType") { - return true; - } + let result; // We don't want to print in one line if at least one of these conditions occurs: + // * the chain has comments, + // * the chain is an expression statement and all the arguments are literal-like ("fluent configuration" pattern), + // * the chain is longer than 2 calls and has non-trivial arguments or more than 2 arguments in any call but the first one, + // * any group but the last one has a hard line, + // * the last call's arguments have a hard line and other calls have non-trivial arguments. - // fallthrough + if (nodeHasComment || callExpressions.length > 2 && callExpressions.some(expr => !expr.arguments.every(arg => isSimpleCallArgument(arg, 0))) || printedGroups.slice(0, -1).some(willBreak$3) || lastGroupWillBreakAndOtherCallsHaveFunctionArguments()) { + result = group$r(expanded); + } else { + result = [// We only need to check `oneLine` because if `expanded` is chosen + // that means that the parent group has already been broken + // naturally + willBreak$3(oneLine) || shouldHaveEmptyLineBeforeIndent ? breakParent$6 : "", conditionalGroup$2([oneLine, expanded])]; + } - case "TSInferType": - if (node.type === "TSInferType" && parent.type === "TSRestType") { - return false; - } + return label$1("member-chain", result); +} - // fallthrough +var memberChain = printMemberChain; - case "TSTypeOperator": - return parent.type === "TSArrayType" || parent.type === "TSOptionalType" || parent.type === "TSRestType" || parent.type === "TSIndexedAccessType" && node === parent.objectType || parent.type === "TSTypeOperator" || parent.type === "TSTypeAnnotation" && /^TSJSDoc/.test(path.getParentNode(1).type); +const { + builders: { + join: join$l, + group: group$q + } +} = doc; +const { + getCallArguments: getCallArguments$2, + hasFlowAnnotationComment, + isCallExpression: isCallExpression$5, + isMemberish, + isStringLiteral: isStringLiteral$2, + isTemplateOnItsOwnLine: isTemplateOnItsOwnLine$1, + isTestCall: isTestCall$2, + iterateCallArgumentsPath +} = utils$5; +const { + printOptionalToken: printOptionalToken$5, + printFunctionTypeParameters: printFunctionTypeParameters$2 +} = misc$1; - case "ArrayTypeAnnotation": - return parent.type === "NullableTypeAnnotation"; +function printCallExpression$2(path, options, print) { + const node = path.getValue(); + const parentNode = path.getParentNode(); + const isNew = node.type === "NewExpression"; + const isDynamicImport = node.type === "ImportExpression"; + const optional = printOptionalToken$5(path); + const args = getCallArguments$2(node); + + if ( // Dangling comments are not handled, all these special cases should have arguments #9668 + args.length > 0 && ( // We want to keep CommonJS- and AMD-style require calls, and AMD-style + // define calls, as a unit. + // e.g. `define(["some/lib"], (lib) => {` + !isDynamicImport && !isNew && isCommonsJsOrAmdCall(node, parentNode) || // Template literals as single arguments + args.length === 1 && isTemplateOnItsOwnLine$1(args[0], options.originalText) || // Keep test declarations on a single line + // e.g. `it('long name', () => {` + !isNew && isTestCall$2(node, parentNode))) { + const printed = []; + iterateCallArgumentsPath(path, () => { + printed.push(print()); + }); + return [isNew ? "new " : "", print("callee"), optional, printFunctionTypeParameters$2(path, options, print), "(", join$l(", ", printed), ")"]; + } // Inline Flow annotation comments following Identifiers in Call nodes need to + // stay with the Identifier. For example: + // + // foo /*:: */(bar); + // + // Here, we ensure that such comments stay between the Identifier and the Callee. - case "IntersectionTypeAnnotation": - case "UnionTypeAnnotation": - return parent.type === "ArrayTypeAnnotation" || parent.type === "NullableTypeAnnotation" || parent.type === "IntersectionTypeAnnotation" || parent.type === "UnionTypeAnnotation"; - case "NullableTypeAnnotation": - return parent.type === "ArrayTypeAnnotation"; + const isIdentifierWithFlowAnnotation = (options.parser === "babel" || options.parser === "babel-flow") && node.callee && node.callee.type === "Identifier" && hasFlowAnnotationComment(node.callee.trailingComments); - case "FunctionTypeAnnotation": - { - const ancestor = parent.type === "NullableTypeAnnotation" ? path.getParentNode(1) : parent; - return ancestor.type === "UnionTypeAnnotation" || ancestor.type === "IntersectionTypeAnnotation" || ancestor.type === "ArrayTypeAnnotation" || // We should check ancestor's parent to know whether the parentheses - // are really needed, but since ??T doesn't make sense this check - // will almost never be true. - ancestor.type === "NullableTypeAnnotation" || // See #5283 - parent.type === "FunctionTypeParam" && parent.name === null && node.params && node.params.some(param => param.typeAnnotation && param.typeAnnotation.type === "NullableTypeAnnotation"); - } + if (isIdentifierWithFlowAnnotation) { + node.callee.trailingComments[0].printed = true; + } // We detect calls on member lookups and possibly print them in a + // special chain format. See `printMemberChain` for more info. - case "StringLiteral": - case "NumericLiteral": - case "Literal": - if (typeof node.value === "string" && parent.type === "ExpressionStatement" && !parent.directive) { - // To avoid becoming a directive - const grandParent = path.getParentNode(1); - return grandParent.type === "Program" || grandParent.type === "BlockStatement"; - } - return parent.type === "MemberExpression" && typeof node.value === "number" && name === "object" && parent.object === node; + if (!isDynamicImport && !isNew && isMemberish(node.callee) && !path.call(path => needsParens_1(path, options), "callee")) { + return memberChain(path, options, print); + } - case "AssignmentExpression": - { - const grandParent = path.getParentNode(1); + const contents = [isNew ? "new " : "", isDynamicImport ? "import" : print("callee"), optional, isIdentifierWithFlowAnnotation ? `/*:: ${node.callee.trailingComments[0].value.slice(2).trim()} */` : "", printFunctionTypeParameters$2(path, options, print), callArguments(path, options, print)]; // We group here when the callee is itself a call expression. + // See `isLongCurriedCallExpression` for more info. - if (parent.type === "ArrowFunctionExpression" && parent.body === node) { - return true; - } else if (parent.type === "ClassProperty" && parent.key === node && parent.computed) { - return false; - } else if (parent.type === "TSPropertySignature" && parent.name === node) { - return false; - } else if (parent.type === "ForStatement" && (parent.init === node || parent.update === node)) { - return false; - } else if (parent.type === "ExpressionStatement") { - return node.left.type === "ObjectPattern"; - } else if (parent.type === "TSPropertySignature" && parent.key === node) { - return false; - } else if (parent.type === "AssignmentExpression") { - return false; - } else if (parent.type === "SequenceExpression" && grandParent && grandParent.type === "ForStatement" && (grandParent.init === parent || grandParent.update === parent)) { - return false; - } else if (parent.type === "Property" && parent.value === node) { - return false; - } else if (parent.type === "NGChainedExpression") { - return false; - } + if (isDynamicImport || isCallExpression$5(node.callee)) { + return group$q(contents); + } - return true; - } + return contents; +} - case "ConditionalExpression": - switch (parent.type) { - case "TaggedTemplateExpression": - case "UnaryExpression": - case "SpreadElement": - case "SpreadProperty": - case "BinaryExpression": - case "LogicalExpression": - case "NGPipeExpression": - case "ExportDefaultDeclaration": - case "AwaitExpression": - case "JSXSpreadAttribute": - case "TSTypeAssertion": - case "TypeCastExpression": - case "TSAsExpression": - case "TSNonNullExpression": - return true; +function isCommonsJsOrAmdCall(node, parentNode) { + if (node.callee.type !== "Identifier") { + return false; + } + + if (node.callee.name === "require") { + return true; + } + + if (node.callee.name === "define") { + const args = getCallArguments$2(node); + return parentNode.type === "ExpressionStatement" && (args.length === 1 || args.length === 2 && args[0].type === "ArrayExpression" || args.length === 3 && isStringLiteral$2(args[0]) && args[1].type === "ArrayExpression"); + } + + return false; +} + +var callExpression = { + printCallExpression: printCallExpression$2 +}; + +const { + isNonEmptyArray: isNonEmptyArray$d, + getStringWidth: getStringWidth$1 +} = util$5; +const { + builders: { + line: line$m, + group: group$p, + indent: indent$k, + indentIfBreak: indentIfBreak$2 + }, + utils: { + cleanDoc: cleanDoc$1, + willBreak: willBreak$2 + } +} = doc; +const { + hasLeadingOwnLineComment: hasLeadingOwnLineComment$2, + isBinaryish: isBinaryish$1, + isStringLiteral: isStringLiteral$1, + isLiteral: isLiteral$1, + isNumericLiteral: isNumericLiteral$1, + isCallExpression: isCallExpression$4, + isMemberExpression: isMemberExpression$3, + getCallArguments: getCallArguments$1, + rawText: rawText$3, + hasComment: hasComment$a, + isSignedNumericLiteral, + isObjectProperty +} = utils$5; +const { + shouldInlineLogicalExpression +} = binaryish; +const { + printCallExpression: printCallExpression$1 +} = callExpression; - case "NewExpression": - case "CallExpression": - case "OptionalCallExpression": - return name === "callee"; +function printAssignment$3(path, options, print, leftDoc, operator, rightPropertyName) { + const layout = chooseLayout(path, options, print, leftDoc, rightPropertyName); + const rightDoc = print(rightPropertyName, { + assignmentLayout: layout + }); - case "ConditionalExpression": - return name === "test" && parent.test === node; + switch (layout) { + // First break after operator, then the sides are broken independently on their own lines + case "break-after-operator": + return group$p([group$p(leftDoc), operator, group$p(indent$k([line$m, rightDoc]))]); + // First break right-hand side, then left-hand side - case "MemberExpression": - case "OptionalMemberExpression": - return name === "object"; + case "never-break-after-operator": + return group$p([group$p(leftDoc), operator, " ", rightDoc]); + // First break right-hand side, then after operator - default: - return false; + case "fluid": + { + const groupId = Symbol("assignment"); + return group$p([group$p(leftDoc), operator, group$p(indent$k(line$m), { + id: groupId + }), indentIfBreak$2(rightDoc, { + groupId + })]); } - case "FunctionExpression": - switch (parent.type) { - case "NewExpression": - case "CallExpression": - case "OptionalCallExpression": - // Not always necessary, but it's clearer to the reader if IIFEs are wrapped in parentheses. - // Is necessary if it is `expression` of `ExpressionStatement`. - return name === "callee"; + case "break-lhs": + return group$p([leftDoc, operator, " ", group$p(rightDoc)]); + // Parts of assignment chains aren't wrapped in groups. + // Once one of them breaks, the chain breaks too. - case "TaggedTemplateExpression": - return true; - // This is basically a kind of IIFE. + case "chain": + return [group$p(leftDoc), operator, line$m, rightDoc]; - default: - return false; - } + case "chain-tail": + return [group$p(leftDoc), operator, indent$k([line$m, rightDoc])]; - case "ArrowFunctionExpression": - switch (parent.type) { - case "PipelineTopicExpression": - return !!(node.extra && node.extra.parenthesized); + case "chain-tail-arrow-chain": + return [group$p(leftDoc), operator, rightDoc]; - case "BinaryExpression": - return parent.operator !== "|>" || node.extra && node.extra.parenthesized; + case "only-left": + return leftDoc; + } +} - case "NewExpression": - case "CallExpression": - case "OptionalCallExpression": - return name === "callee"; +function printAssignmentExpression$1(path, options, print) { + const node = path.getValue(); + return printAssignment$3(path, options, print, print("left"), [" ", node.operator], "right"); +} - case "MemberExpression": - case "OptionalMemberExpression": - return name === "object"; +function printVariableDeclarator$1(path, options, print) { + return printAssignment$3(path, options, print, print("id"), " =", "init"); +} - case "TSAsExpression": - case "BindExpression": - case "TaggedTemplateExpression": - case "UnaryExpression": - case "LogicalExpression": - case "AwaitExpression": - case "TSTypeAssertion": - return true; +function chooseLayout(path, options, print, leftDoc, rightPropertyName) { + const node = path.getValue(); + const rightNode = node[rightPropertyName]; - case "ConditionalExpression": - return name === "test"; + if (!rightNode) { + return "only-left"; + } // Short assignment chains (only 2 segments) are NOT formatted as chains. + // 1) a = b = c; (expression statements) + // 2) var/let/const a = b = c; - default: - return false; - } - case "ClassExpression": - switch (parent.type) { - case "NewExpression": - return name === "callee" && parent.callee === node; + const isTail = !isAssignment(rightNode); + const shouldUseChainFormatting = path.match(isAssignment, isAssignmentOrVariableDeclarator, node => !isTail || node.type !== "ExpressionStatement" && node.type !== "VariableDeclaration"); - default: - return false; - } + if (shouldUseChainFormatting) { + return !isTail ? "chain" : rightNode.type === "ArrowFunctionExpression" && rightNode.body.type === "ArrowFunctionExpression" ? "chain-tail-arrow-chain" : "chain-tail"; + } - case "OptionalMemberExpression": - case "OptionalCallExpression": - { - const parentParent = path.getParentNode(1); + const isHeadOfLongChain = !isTail && isAssignment(rightNode.right); - if (parent.type === "MemberExpression" && name === "object" || (parent.type === "CallExpression" || parent.type === "NewExpression") && name === "callee" || parent.type === "TSNonNullExpression" && parentParent.type === "MemberExpression" && parentParent.object === parent) { - return true; - } - } - // fallthrough + if (isHeadOfLongChain || hasLeadingOwnLineComment$2(options.originalText, rightNode)) { + return "break-after-operator"; + } - case "CallExpression": - case "MemberExpression": - case "TaggedTemplateExpression": - case "TSNonNullExpression": - if ((parent.type === "BindExpression" || parent.type === "NewExpression") && name === "callee") { - let object = node; + if (rightNode.type === "CallExpression" && rightNode.callee.name === "require" || // do not put values on a separate line from the key in json + options.parser === "json5" || options.parser === "json") { + return "never-break-after-operator"; + } - while (object) { - switch (object.type) { - case "CallExpression": - case "OptionalCallExpression": - return true; + if (isComplexDestructuring(node) || isComplexTypeAliasParams(node) || hasComplexTypeAnnotation(node)) { + return "break-lhs"; + } // wrapping object properties with very short keys usually doesn't add much value - case "MemberExpression": - case "OptionalMemberExpression": - case "BindExpression": - object = object.object; - break; - // tagged templates are basically member expressions from a grammar perspective - // see https://tc39.github.io/ecma262/#prod-MemberExpression - case "TaggedTemplateExpression": - object = object.tag; - break; + const hasShortKey = isObjectPropertyWithShortKey(node, leftDoc, options); - case "TSNonNullExpression": - object = object.expression; - break; + if (path.call(() => shouldBreakAfterOperator(path, options, print, hasShortKey), rightPropertyName)) { + return "break-after-operator"; + } - default: - return false; - } - } - } + if (hasShortKey || rightNode.type === "TemplateLiteral" || rightNode.type === "TaggedTemplateExpression" || rightNode.type === "BooleanLiteral" || isNumericLiteral$1(rightNode) || rightNode.type === "ClassExpression") { + return "never-break-after-operator"; + } - return false; + return "fluid"; +} - case "BindExpression": - return (parent.type === "BindExpression" || parent.type === "NewExpression") && name === "callee" || (parent.type === "MemberExpression" || parent.type === "OptionalMemberExpression") && name === "object"; +function shouldBreakAfterOperator(path, options, print, hasShortKey) { + const rightNode = path.getValue(); - case "NGPipeExpression": - if (parent.type === "NGRoot" || parent.type === "NGMicrosyntaxExpression" || parent.type === "ObjectProperty" && // Preserve parens for compatibility with AngularJS expressions - !(node.extra && node.extra.parenthesized) || parent.type === "ArrayExpression" || (parent.type === "CallExpression" || parent.type === "OptionalCallExpression") && parent.arguments[name] === node || parent.type === "NGPipeExpression" && name === "right" || parent.type === "MemberExpression" && name === "property" || parent.type === "AssignmentExpression") { - return false; - } + if (isBinaryish$1(rightNode) && !shouldInlineLogicalExpression(rightNode)) { + return true; + } + switch (rightNode.type) { + case "StringLiteralTypeAnnotation": + case "SequenceExpression": return true; - case "JSXFragment": - case "JSXElement": - return name === "callee" || parent.type === "BinaryExpression" && parent.operator === "<" && name === "left" || parent.type !== "ArrayExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "AssignmentExpression" && parent.type !== "AssignmentPattern" && parent.type !== "BinaryExpression" && parent.type !== "CallExpression" && parent.type !== "NewExpression" && parent.type !== "ConditionalExpression" && parent.type !== "ExpressionStatement" && parent.type !== "JsExpressionRoot" && parent.type !== "JSXAttribute" && parent.type !== "JSXElement" && parent.type !== "JSXExpressionContainer" && parent.type !== "JSXFragment" && parent.type !== "LogicalExpression" && parent.type !== "ObjectProperty" && parent.type !== "OptionalCallExpression" && parent.type !== "Property" && parent.type !== "ReturnStatement" && parent.type !== "ThrowStatement" && parent.type !== "TypeCastExpression" && parent.type !== "VariableDeclarator"; + case "ConditionalExpression": + { + const { + test + } = rightNode; + return isBinaryish$1(test) && !shouldInlineLogicalExpression(test); + } - case "TypeAnnotation": - return name === "returnType" && parent.type === "ArrowFunctionExpression" && includesFunctionTypeInObjectType(node); + case "ClassExpression": + return isNonEmptyArray$d(rightNode.decorators); + } + + if (hasShortKey) { + return false; + } + + let node = rightNode; + const propertiesForPath = []; + + for (;;) { + if (node.type === "UnaryExpression") { + node = node.argument; + propertiesForPath.push("argument"); + } else if (node.type === "TSNonNullExpression") { + node = node.expression; + propertiesForPath.push("expression"); + } else { + break; + } + } + + if (isStringLiteral$1(node) || path.call(() => isPoorlyBreakableMemberOrCallChain(path, options, print), ...propertiesForPath)) { + return true; + } + + return false; +} // prefer to break destructuring assignment +// if it includes default values or non-shorthand properties + + +function isComplexDestructuring(node) { + if (isAssignmentOrVariableDeclarator(node)) { + const leftNode = node.left || node.id; + return leftNode.type === "ObjectPattern" && leftNode.properties.length > 2 && leftNode.properties.some(property => isObjectProperty(property) && (!property.shorthand || property.value && property.value.type === "AssignmentPattern")); } return false; } -function isStatement(node) { - return node.type === "BlockStatement" || node.type === "BreakStatement" || node.type === "ClassBody" || node.type === "ClassDeclaration" || node.type === "ClassMethod" || node.type === "ClassProperty" || node.type === "ClassPrivateProperty" || node.type === "ContinueStatement" || node.type === "DebuggerStatement" || node.type === "DeclareClass" || node.type === "DeclareExportAllDeclaration" || node.type === "DeclareExportDeclaration" || node.type === "DeclareFunction" || node.type === "DeclareInterface" || node.type === "DeclareModule" || node.type === "DeclareModuleExports" || node.type === "DeclareVariable" || node.type === "DoWhileStatement" || node.type === "EnumDeclaration" || node.type === "ExportAllDeclaration" || node.type === "ExportDefaultDeclaration" || node.type === "ExportNamedDeclaration" || node.type === "ExpressionStatement" || node.type === "ForInStatement" || node.type === "ForOfStatement" || node.type === "ForStatement" || node.type === "FunctionDeclaration" || node.type === "IfStatement" || node.type === "ImportDeclaration" || node.type === "InterfaceDeclaration" || node.type === "LabeledStatement" || node.type === "MethodDefinition" || node.type === "ReturnStatement" || node.type === "SwitchStatement" || node.type === "ThrowStatement" || node.type === "TryStatement" || node.type === "TSDeclareFunction" || node.type === "TSEnumDeclaration" || node.type === "TSImportEqualsDeclaration" || node.type === "TSInterfaceDeclaration" || node.type === "TSModuleDeclaration" || node.type === "TSNamespaceExportDeclaration" || node.type === "TypeAlias" || node.type === "VariableDeclaration" || node.type === "WhileStatement" || node.type === "WithStatement"; +function isAssignment(node) { + return node.type === "AssignmentExpression"; } -function includesFunctionTypeInObjectType(node) { - return hasNode$1(node, n1 => n1.type === "ObjectTypeAnnotation" && hasNode$1(n1, n2 => n2.type === "FunctionTypeAnnotation" || undefined) || undefined); +function isAssignmentOrVariableDeclarator(node) { + return isAssignment(node) || node.type === "VariableDeclarator"; } -function endsWithRightBracket(node) { - switch (node.type) { - case "ObjectExpression": +function isComplexTypeAliasParams(node) { + const typeParams = getTypeParametersFromTypeAlias(node); + + if (isNonEmptyArray$d(typeParams)) { + const constraintPropertyName = node.type === "TSTypeAliasDeclaration" ? "constraint" : "bound"; + + if (typeParams.length > 1 && typeParams.some(param => param[constraintPropertyName] || param.default)) { return true; + } + } - default: - return false; + return false; +} + +function getTypeParametersFromTypeAlias(node) { + if (isTypeAlias(node) && node.typeParameters && node.typeParameters.params) { + return node.typeParameters.params; } + + return null; } -function isFollowedByRightBracket(path) { - const node = path.getValue(); - const parent = path.getParentNode(); - const name = path.getName(); +function isTypeAlias(node) { + return node.type === "TSTypeAliasDeclaration" || node.type === "TypeAlias"; +} - switch (parent.type) { - case "NGPipeExpression": - if (typeof name === "number" && parent.arguments[name] === node && parent.arguments.length - 1 === name) { - return path.callParent(isFollowedByRightBracket); - } +function hasComplexTypeAnnotation(node) { + if (node.type !== "VariableDeclarator") { + return false; + } - break; + const { + typeAnnotation + } = node.id; - case "ObjectProperty": - if (name === "value") { - const parentParent = path.getParentNode(1); - return parentParent.properties[parentParent.properties.length - 1] === parent; - } + if (!typeAnnotation || !typeAnnotation.typeAnnotation) { + return false; + } - break; + const typeParams = getTypeParametersFromTypeReference(typeAnnotation.typeAnnotation); + return isNonEmptyArray$d(typeParams) && typeParams.length > 1 && typeParams.some(param => isNonEmptyArray$d(getTypeParametersFromTypeReference(param)) || param.type === "TSConditionalType"); +} - case "BinaryExpression": - case "LogicalExpression": - if (name === "right") { - return path.callParent(isFollowedByRightBracket); - } +function getTypeParametersFromTypeReference(node) { + if (isTypeReference(node) && node.typeParameters && node.typeParameters.params) { + return node.typeParameters.params; + } - break; + return null; +} - case "ConditionalExpression": - if (name === "alternate") { - return path.callParent(isFollowedByRightBracket); - } +function isTypeReference(node) { + return node.type === "TSTypeReference" || node.type === "GenericTypeAnnotation"; +} +/** + * A chain with no calls at all or whose calls are all without arguments or with lone short arguments, + * excluding chains printed by `printMemberChain` + */ - break; - case "UnaryExpression": - if (parent.prefix) { - return path.callParent(isFollowedByRightBracket); - } +function isPoorlyBreakableMemberOrCallChain(path, options, print, deep = false) { + const node = path.getValue(); - break; + const goDeeper = () => isPoorlyBreakableMemberOrCallChain(path, options, print, true); + + if (node.type === "TSNonNullExpression") { + return path.call(goDeeper, "expression"); } - return false; -} + if (isCallExpression$4(node)) { + /** @type {any} TODO */ + const doc = printCallExpression$1(path, options, print); -function shouldWrapFunctionForExportDefault(path, options) { - const node = path.getValue(); - const parent = path.getParentNode(); + if (doc.label === "member-chain") { + return false; + } - if (node.type === "FunctionExpression" || node.type === "ClassExpression") { - return parent.type === "ExportDefaultDeclaration" || // in some cases the function is already wrapped - // (e.g. `export default (function() {})();`) - // in this case we don't need to add extra parens - !needsParens(path, options); + const args = getCallArguments$1(node); + const isPoorlyBreakableCall = args.length === 0 || args.length === 1 && isLoneShortArgument(args[0], options); + + if (!isPoorlyBreakableCall) { + return false; + } + + if (isCallExpressionWithComplexTypeArguments(node, print)) { + return false; + } + + return path.call(goDeeper, "callee"); } - if (!hasNakedLeftSide$1(node) || parent.type !== "ExportDefaultDeclaration" && needsParens(path, options)) { - return false; + if (isMemberExpression$3(node)) { + return path.call(goDeeper, "object"); } - return path.call(childPath => shouldWrapFunctionForExportDefault(childPath, options), ...getLeftSidePathName$1(path, node)); + return deep && (node.type === "Identifier" || node.type === "ThisExpression"); } -var needsParens_1 = needsParens; +const LONE_SHORT_ARGUMENT_THRESHOLD_RATE = 0.25; -const { - builders: { - concat: concat$5, - join: join$3, - line: line$4 +function isLoneShortArgument(node, { + printWidth +}) { + if (hasComment$a(node)) { + return false; } -} = document; -function printHtmlBinding(path, options, print) { - const node = path.getValue(); + const threshold = printWidth * LONE_SHORT_ARGUMENT_THRESHOLD_RATE; - if (options.__onHtmlBindingRoot && path.getName() === null) { - options.__onHtmlBindingRoot(node, options); + if (node.type === "ThisExpression" || node.type === "Identifier" && node.name.length <= threshold || isSignedNumericLiteral(node) && !hasComment$a(node.argument)) { + return true; } - if (node.type !== "File") { - return; + const regexpPattern = node.type === "Literal" && "regex" in node && node.regex.pattern || node.type === "RegExpLiteral" && node.pattern; + + if (regexpPattern) { + return regexpPattern.length <= threshold; } - if (options.__isVueForBindingLeft) { - return path.call(functionDeclarationPath => { - const { - params - } = functionDeclarationPath.getValue(); - return concat$5([params.length > 1 ? "(" : "", join$3(concat$5([",", line$4]), functionDeclarationPath.map(print, "params")), params.length > 1 ? ")" : ""]); - }, "program", "body", 0); + if (isStringLiteral$1(node)) { + return rawText$3(node).length <= threshold; } - if (options.__isVueSlotScope) { - return path.call(functionDeclarationPath => join$3(concat$5([",", line$4]), functionDeclarationPath.map(print, "params")), "program", "body", 0); + if (node.type === "TemplateLiteral") { + return node.expressions.length === 0 && node.quasis[0].value.raw.length <= threshold && !node.quasis[0].value.raw.includes("\n"); } -} // based on https://github.com/prettier/prettier/blob/master/src/language-html/syntax-vue.js isVueEventBindingExpression() + return isLiteral$1(node); +} -function isVueEventBindingExpression(node) { - switch (node.type) { - case "MemberExpression": - switch (node.property.type) { - case "Identifier": - case "NumericLiteral": - case "StringLiteral": - return isVueEventBindingExpression(node.object); - } +function isObjectPropertyWithShortKey(node, keyDoc, options) { + if (!isObjectProperty(node)) { + return false; + } // TODO: for performance, it might make sense to use a more lightweight + // version of cleanDoc, such that it would stop once it detects that + // the doc can't be reduced to a string. - return false; - case "Identifier": - return true; + keyDoc = cleanDoc$1(keyDoc); + const MIN_OVERLAP_FOR_BREAK = 3; // ↓↓ - insufficient overlap for a line break + // key1: longValue1, + // ↓↓↓↓↓↓ - overlap is long enough to break + // key2abcd: + // longValue2 - default: - return false; - } + return typeof keyDoc === "string" && getStringWidth$1(keyDoc) < options.tabWidth + MIN_OVERLAP_FOR_BREAK; } -var htmlBinding = { - isVueEventBindingExpression, - printHtmlBinding -}; +function isCallExpressionWithComplexTypeArguments(node, print) { + const typeArgs = getTypeArgumentsFromCallExpression(node); -function preprocess(ast, options) { - switch (options.parser) { - case "json": - case "json5": - case "json-stringify": - case "__js_expression": - case "__vue_expression": - return Object.assign({}, ast, { - type: options.parser.startsWith("__") ? "JsExpressionRoot" : "JsonRoot", - node: ast, - comments: [], - rootMarker: options.rootMarker - }); + if (isNonEmptyArray$d(typeArgs)) { + if (typeArgs.length > 1) { + return true; + } - default: - return ast; + if (typeArgs.length === 1) { + const firstArg = typeArgs[0]; + + if (firstArg.type === "TSUnionType" || firstArg.type === "UnionTypeAnnotation" || firstArg.type === "TSIntersectionType" || firstArg.type === "IntersectionTypeAnnotation") { + return true; + } + } + + const typeArgsKeyName = node.typeParameters ? "typeParameters" : "typeArguments"; + + if (willBreak$2(print(typeArgsKeyName))) { + return true; + } } + + return false; +} + +function getTypeArgumentsFromCallExpression(node) { + return node.typeParameters && node.typeParameters.params || node.typeArguments && node.typeArguments.params; } -var preprocess_1 = preprocess; +var assignment = { + printVariableDeclarator: printVariableDeclarator$1, + printAssignmentExpression: printAssignmentExpression$1, + printAssignment: printAssignment$3 +}; const { - getLast: getLast$3, - getPenultimate: getPenultimate$1, - isNextLineEmpty: isNextLineEmpty$2 -} = util; + getNextNonSpaceNonCommentCharacter +} = util$5; const { - hasLeadingComment: hasLeadingComment$3, - hasTrailingComment: hasTrailingComment$1, - isFunctionCompositionArgs: isFunctionCompositionArgs$1, - isJSXNode: isJSXNode$1, - isLongCurriedCallExpression: isLongCurriedCallExpression$1, - shouldPrintComma: shouldPrintComma$1 -} = utils$6; + printDanglingComments: printDanglingComments$a +} = comments$1; const { builders: { - concat: concat$6, - line: line$5, - hardline: hardline$4, - softline: softline$2, - group: group$2, - indent: indent$3, - conditionalGroup: conditionalGroup$1, - ifBreak: ifBreak$1, - breakParent: breakParent$2 + line: line$l, + hardline: hardline$p, + softline: softline$i, + group: group$o, + indent: indent$j, + ifBreak: ifBreak$h }, utils: { + removeLines: removeLines$2, willBreak: willBreak$1 } -} = document; +} = doc; +const { + getFunctionParameters: getFunctionParameters$2, + iterateFunctionParametersPath, + isSimpleType: isSimpleType$1, + isTestCall: isTestCall$1, + isTypeAnnotationAFunction, + isObjectType: isObjectType$1, + isObjectTypePropertyAFunction: isObjectTypePropertyAFunction$1, + hasRestParameter, + shouldPrintComma: shouldPrintComma$8, + hasComment: hasComment$9, + isNextLineEmpty: isNextLineEmpty$8 +} = utils$5; +const { + locEnd: locEnd$k +} = loc$6; +const { + ArgExpansionBailout: ArgExpansionBailout$1 +} = errors; +const { + printFunctionTypeParameters: printFunctionTypeParameters$1 +} = misc$1; -function printCallArguments(path, options, print) { - const node = path.getValue(); - const isDynamicImport = node.type === "ImportExpression"; - const args = isDynamicImport ? [node.source] : node.arguments; +function printFunctionParameters$3(path, print, options, expandArg, printTypeParams) { + const functionNode = path.getValue(); + const parameters = getFunctionParameters$2(functionNode); + const typeParams = printTypeParams ? printFunctionTypeParameters$1(path, options, print) : ""; - if (args.length === 0) { - return concat$6(["(", comments.printDanglingComments(path, options, + if (parameters.length === 0) { + return [typeParams, "(", printDanglingComments$a(path, options, /* sameIndent */ - true), ")"]); - } // useEffect(() => { ... }, [foo, bar, baz]) - - - if (args.length === 2 && args[0].type === "ArrowFunctionExpression" && args[0].params.length === 0 && args[0].body.type === "BlockStatement" && args[1].type === "ArrayExpression" && !args.some(arg => arg.comments)) { - return concat$6(["(", path.call(print, "arguments", 0), ", ", path.call(print, "arguments", 1), ")"]); - } // func( - // ({ - // a, - // - // b - // }) => {} - // ); + true, comment => getNextNonSpaceNonCommentCharacter(options.originalText, comment, locEnd$k) === ")"), ")"]; + } + const parent = path.getParentNode(); + const isParametersInTestCall = isTestCall$1(parent); + const shouldHugParameters = shouldHugFunctionParameters$1(functionNode); + const printed = []; + iterateFunctionParametersPath(path, (parameterPath, index) => { + const isLastParameter = index === parameters.length - 1; - function shouldBreakForArrowFunctionInArguments(arg, argPath) { - if (!arg || arg.type !== "ArrowFunctionExpression" || !arg.body || arg.body.type !== "BlockStatement" || !arg.params || arg.params.length < 1) { - return false; + if (isLastParameter && functionNode.rest) { + printed.push("..."); } - let shouldBreak = false; - argPath.each(paramPath => { - const printed = concat$6([print(paramPath)]); - shouldBreak = shouldBreak || willBreak$1(printed); - }, "params"); - return shouldBreak; - } - - let anyArgEmptyLine = false; - let shouldBreakForArrowFunction = false; - let hasEmptyLineFollowingFirstArg = false; - const lastArgIndex = args.length - 1; + printed.push(print()); - const printArgument = (argPath, index) => { - const arg = argPath.getNode(); - const parts = [print(argPath)]; + if (isLastParameter) { + return; + } - if (index === lastArgIndex) ; else if (isNextLineEmpty$2(options.originalText, arg, options.locEnd)) { - if (index === 0) { - hasEmptyLineFollowingFirstArg = true; - } + printed.push(","); - anyArgEmptyLine = true; - parts.push(",", hardline$4, hardline$4); + if (isParametersInTestCall || shouldHugParameters) { + printed.push(" "); + } else if (isNextLineEmpty$8(parameters[index], options)) { + printed.push(hardline$p, hardline$p); } else { - parts.push(",", line$5); + printed.push(line$l); } + }); // If the parent is a call with the first/last argument expansion and this is the + // params of the first/last argument, we don't want the arguments to break and instead + // want the whole expression to be on a new line. + // + // Good: Bad: + // verylongcall( verylongcall(( + // (a, b) => { a, + // } b, + // ) ) => { + // }) - shouldBreakForArrowFunction = shouldBreakForArrowFunctionInArguments(arg, argPath); - return concat$6(parts); - }; - - const printedArguments = isDynamicImport ? [path.call(path => printArgument(path, 0), "source")] : path.map(printArgument, "arguments"); - const maybeTrailingComma = // Dynamic imports cannot have trailing commas - !(isDynamicImport || node.callee && node.callee.type === "Import") && shouldPrintComma$1(options, "all") ? "," : ""; - - function allArgsBrokenOut() { - return group$2(concat$6(["(", indent$3(concat$6([line$5, concat$6(printedArguments)])), maybeTrailingComma, line$5, ")"]), { - shouldBreak: true - }); - } + if (expandArg) { + if (willBreak$1(typeParams) || willBreak$1(printed)) { + // Removing lines in this case leads to broken or ugly output + throw new ArgExpansionBailout$1(); + } - if (path.getParentNode().type !== "Decorator" && isFunctionCompositionArgs$1(args)) { - return allArgsBrokenOut(); - } + return group$o([removeLines$2(typeParams), "(", removeLines$2(printed), ")"]); + } // Single object destructuring should hug + // + // function({ + // a, + // b, + // c + // }) {} - const shouldGroupFirst = shouldGroupFirstArg(args); - const shouldGroupLast = shouldGroupLastArg(args); - if (shouldGroupFirst || shouldGroupLast) { - const shouldBreak = (shouldGroupFirst ? printedArguments.slice(1).some(willBreak$1) : printedArguments.slice(0, -1).some(willBreak$1)) || anyArgEmptyLine || shouldBreakForArrowFunction; // We want to print the last argument with a special flag + const hasNotParameterDecorator = parameters.every(node => !node.decorators); - let printedExpanded = []; - let i = 0; + if (shouldHugParameters && hasNotParameterDecorator) { + return [typeParams, "(", ...printed, ")"]; + } // don't break in specs, eg; `it("should maintain parens around done even when long", (done) => {})` - const printArgument = argPath => { - if (shouldGroupFirst && i === 0) { - printedExpanded = [concat$6([argPath.call(p => print(p, { - expandFirstArg: true - })), printedArguments.length > 1 ? "," : "", hasEmptyLineFollowingFirstArg ? hardline$4 : line$5, hasEmptyLineFollowingFirstArg ? hardline$4 : ""])].concat(printedArguments.slice(1)); - } - if (shouldGroupLast && i === args.length - 1) { - printedExpanded = printedArguments.slice(0, -1).concat(argPath.call(p => print(p, { - expandLastArg: true - }))); - } + if (isParametersInTestCall) { + return [typeParams, "(", ...printed, ")"]; + } - i++; - }; + const isFlowShorthandWithOneArg = (isObjectTypePropertyAFunction$1(parent) || isTypeAnnotationAFunction(parent) || parent.type === "TypeAlias" || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType" || parent.type === "IntersectionTypeAnnotation" || parent.type === "FunctionTypeAnnotation" && parent.returnType === functionNode) && parameters.length === 1 && parameters[0].name === null && // `type q = (this: string) => void;` + functionNode.this !== parameters[0] && parameters[0].typeAnnotation && functionNode.typeParameters === null && isSimpleType$1(parameters[0].typeAnnotation) && !functionNode.rest; - if (isDynamicImport) { - path.call(printArgument, "source"); - } else { - path.each(printArgument, "arguments"); + if (isFlowShorthandWithOneArg) { + if (options.arrowParens === "always") { + return ["(", ...printed, ")"]; } - const somePrintedArgumentsWillBreak = printedArguments.some(willBreak$1); - const simpleConcat = concat$6(["(", concat$6(printedExpanded), ")"]); - return concat$6([somePrintedArgumentsWillBreak ? breakParent$2 : "", conditionalGroup$1([!somePrintedArgumentsWillBreak && !node.typeArguments && !node.typeParameters ? simpleConcat : ifBreak$1(allArgsBrokenOut(), simpleConcat), shouldGroupFirst ? concat$6(["(", group$2(printedExpanded[0], { - shouldBreak: true - }), concat$6(printedExpanded.slice(1)), ")"]) : concat$6(["(", concat$6(printedArguments.slice(0, -1)), group$2(getLast$3(printedExpanded), { - shouldBreak: true - }), ")"]), allArgsBrokenOut()], { - shouldBreak - })]); - } - - const contents = concat$6(["(", indent$3(concat$6([softline$2, concat$6(printedArguments)])), ifBreak$1(maybeTrailingComma), softline$2, ")"]); - - if (isLongCurriedCallExpression$1(path)) { - // By not wrapping the arguments in a group, the printer prioritizes - // breaking up these arguments rather than the args of the parent call. - return contents; + return printed; } - return group$2(contents, { - shouldBreak: printedArguments.some(willBreak$1) || anyArgEmptyLine - }); + return [typeParams, "(", indent$j([softline$i, ...printed]), ifBreak$h(!hasRestParameter(functionNode) && shouldPrintComma$8(options, "all") ? "," : ""), softline$i, ")"]; } -function couldGroupArg(arg) { - return arg.type === "ObjectExpression" && (arg.properties.length > 0 || arg.comments) || arg.type === "ArrayExpression" && (arg.elements.length > 0 || arg.comments) || arg.type === "TSTypeAssertion" && couldGroupArg(arg.expression) || arg.type === "TSAsExpression" && couldGroupArg(arg.expression) || arg.type === "FunctionExpression" || arg.type === "ArrowFunctionExpression" && ( // we want to avoid breaking inside composite return types but not simple keywords - // https://github.com/prettier/prettier/issues/4070 - // export class Thing implements OtherThing { - // do: (type: Type) => Provider = memoize( - // (type: ObjectType): Provider => {} - // ); - // } - // https://github.com/prettier/prettier/issues/6099 - // app.get("/", (req, res): void => { - // res.send("Hello World!"); - // }); - !arg.returnType || !arg.returnType.typeAnnotation || arg.returnType.typeAnnotation.type !== "TSTypeReference") && (arg.body.type === "BlockStatement" || arg.body.type === "ArrowFunctionExpression" || arg.body.type === "ObjectExpression" || arg.body.type === "ArrayExpression" || arg.body.type === "CallExpression" || arg.body.type === "OptionalCallExpression" || arg.body.type === "ConditionalExpression" || isJSXNode$1(arg.body)); -} +function shouldHugFunctionParameters$1(node) { + if (!node) { + return false; + } -function shouldGroupLastArg(args) { - const lastArg = getLast$3(args); - const penultimateArg = getPenultimate$1(args); - return !hasLeadingComment$3(lastArg) && !hasTrailingComment$1(lastArg) && couldGroupArg(lastArg) && ( // If the last two arguments are of the same type, - // disable last element expansion. - !penultimateArg || penultimateArg.type !== lastArg.type); -} + const parameters = getFunctionParameters$2(node); -function shouldGroupFirstArg(args) { - if (args.length !== 2) { + if (parameters.length !== 1) { return false; } - const [firstArg, secondArg] = args; - return (!firstArg.comments || !firstArg.comments.length) && (firstArg.type === "FunctionExpression" || firstArg.type === "ArrowFunctionExpression" && firstArg.body.type === "BlockStatement") && secondArg.type !== "FunctionExpression" && secondArg.type !== "ArrowFunctionExpression" && secondArg.type !== "ConditionalExpression" && !couldGroupArg(secondArg); + const [parameter] = parameters; + return !hasComment$9(parameter) && (parameter.type === "ObjectPattern" || parameter.type === "ArrayPattern" || parameter.type === "Identifier" && parameter.typeAnnotation && (parameter.typeAnnotation.type === "TypeAnnotation" || parameter.typeAnnotation.type === "TSTypeAnnotation") && isObjectType$1(parameter.typeAnnotation.typeAnnotation) || parameter.type === "FunctionTypeParam" && isObjectType$1(parameter.typeAnnotation) || parameter.type === "AssignmentPattern" && (parameter.left.type === "ObjectPattern" || parameter.left.type === "ArrayPattern") && (parameter.right.type === "Identifier" || parameter.right.type === "ObjectExpression" && parameter.right.properties.length === 0 || parameter.right.type === "ArrayExpression" && parameter.right.elements.length === 0)); } -var callArguments = printCallArguments; - -const { - isNumericLiteral: isNumericLiteral$1 -} = utils$6; -const { - builders: { - concat: concat$7, - softline: softline$3, - group: group$3, - indent: indent$4 - } -} = document; - -function printOptionalToken(path) { - const node = path.getValue(); +function getReturnTypeNode(functionNode) { + let returnTypeNode; - if (!node.optional || // It's an optional computed method parsed by typescript-estree. - // "?" is printed in `printMethod`. - node.type === "Identifier" && node === path.getParentNode().key) { - return ""; - } + if (functionNode.returnType) { + returnTypeNode = functionNode.returnType; - if (node.type === "OptionalCallExpression" || node.type === "OptionalMemberExpression" && node.computed) { - return "?."; + if (returnTypeNode.typeAnnotation) { + returnTypeNode = returnTypeNode.typeAnnotation; + } + } else if (functionNode.typeAnnotation) { + returnTypeNode = functionNode.typeAnnotation; } - return "?"; -} + return returnTypeNode; +} // When parameters are grouped, the return type annotation breaks first. -function printFunctionTypeParameters(path, options, print) { - const fun = path.getValue(); - if (fun.typeArguments) { - return path.call(print, "typeArguments"); - } +function shouldGroupFunctionParameters$3(functionNode, returnTypeDoc) { + const returnTypeNode = getReturnTypeNode(functionNode); - if (fun.typeParameters) { - return path.call(print, "typeParameters"); + if (!returnTypeNode) { + return false; } - return ""; -} + const typeParameters = functionNode.typeParameters && functionNode.typeParameters.params; -function printMemberLookup(path, options, print) { - const property = path.call(print, "property"); - const n = path.getValue(); - const optional = printOptionalToken(path); + if (typeParameters) { + if (typeParameters.length > 1) { + return false; + } - if (!n.computed) { - return concat$7([optional, ".", property]); - } + if (typeParameters.length === 1) { + const typeParameter = typeParameters[0]; - if (!n.property || isNumericLiteral$1(n.property)) { - return concat$7([optional, "[", property, "]"]); + if (typeParameter.constraint || typeParameter.default) { + return false; + } + } } - return group$3(concat$7([optional, "[", indent$4(concat$7([softline$3, property])), softline$3, "]"])); -} - -function printBindExpressionCallee(path, options, print) { - return concat$7(["::", path.call(print, "callee")]); + return getFunctionParameters$2(functionNode).length === 1 && (isObjectType$1(returnTypeNode) || willBreak$1(returnTypeDoc)); } -var misc = { - printOptionalToken, - printFunctionTypeParameters, - printMemberLookup, - printBindExpressionCallee +var functionParameters = { + printFunctionParameters: printFunctionParameters$3, + shouldHugFunctionParameters: shouldHugFunctionParameters$1, + shouldGroupFunctionParameters: shouldGroupFunctionParameters$3 }; const { - getLast: getLast$4, - isNextLineEmpty: isNextLineEmpty$3, - isNextLineEmptyAfterIndex: isNextLineEmptyAfterIndex$2, - getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$3 -} = util; + printComments: printComments$2, + printDanglingComments: printDanglingComments$9 +} = comments$1; const { - hasLeadingComment: hasLeadingComment$4, - hasTrailingComment: hasTrailingComment$2, - isCallOrOptionalCallExpression: isCallOrOptionalCallExpression$1, - isFunctionOrArrowExpression: isFunctionOrArrowExpression$1, - isLongCurriedCallExpression: isLongCurriedCallExpression$2, - isMemberish: isMemberish$1, - isNumericLiteral: isNumericLiteral$2, - isSimpleCallArgument: isSimpleCallArgument$1 -} = utils$6; + getLast: getLast$6 +} = util$5; const { builders: { - concat: concat$8, - join: join$4, - hardline: hardline$5, - group: group$4, - indent: indent$5, - conditionalGroup: conditionalGroup$2, - breakParent: breakParent$3 - }, - utils: { - willBreak: willBreak$2 + group: group$n, + join: join$k, + line: line$k, + softline: softline$h, + indent: indent$i, + align: align$3, + ifBreak: ifBreak$g } -} = document; +} = doc; const { - printOptionalToken: printOptionalToken$1, - printFunctionTypeParameters: printFunctionTypeParameters$1, - printMemberLookup: printMemberLookup$1, - printBindExpressionCallee: printBindExpressionCallee$1 -} = misc; // We detect calls on member expressions specially to format a -// common pattern better. The pattern we are looking for is this: -// -// arr -// .map(x => x + 1) -// .filter(x => x > 10) -// .some(x => x % 2) -// -// The way it is structured in the AST is via a nested sequence of -// MemberExpression and CallExpression. We need to traverse the AST -// and make groups out of it to print it in the desired way. - -function printMemberChain(path, options, print) { - const parent = path.getParentNode(); - const isExpressionStatement = !parent || parent.type === "ExpressionStatement"; // The first phase is to linearize the AST by traversing it down. - // - // a().b() - // has the following AST structure: - // CallExpression(MemberExpression(CallExpression(Identifier))) - // and we transform it into - // [Identifier, CallExpression, MemberExpression, CallExpression] - - const printedNodes = []; // Here we try to retain one typed empty line after each call expression or - // the first group whether it is in parentheses or not - - function shouldInsertEmptyLineAfter(node) { - const { - originalText - } = options; - const nextCharIndex = getNextNonSpaceNonCommentCharacterIndex$3(originalText, node, options.locEnd); - const nextChar = originalText.charAt(nextCharIndex); // if it is cut off by a parenthesis, we only account for one typed empty - // line after that parenthesis - - if (nextChar === ")") { - return nextCharIndex !== false && isNextLineEmptyAfterIndex$2(originalText, nextCharIndex + 1); - } + locStart: locStart$l +} = loc$6; +const { + isSimpleType, + isObjectType, + hasLeadingOwnLineComment: hasLeadingOwnLineComment$1, + isObjectTypePropertyAFunction, + shouldPrintComma: shouldPrintComma$7 +} = utils$5; +const { + printAssignment: printAssignment$2 +} = assignment; +const { + printFunctionParameters: printFunctionParameters$2, + shouldGroupFunctionParameters: shouldGroupFunctionParameters$2 +} = functionParameters; +const { + printArrayItems: printArrayItems$2 +} = array; - return isNextLineEmpty$3(originalText, node, options.locEnd); +function shouldHugType$2(node) { + if (isSimpleType(node) || isObjectType(node)) { + return true; } - function rec(path) { - const node = path.getValue(); + if (node.type === "UnionTypeAnnotation" || node.type === "TSUnionType") { + const voidCount = node.types.filter(node => node.type === "VoidTypeAnnotation" || node.type === "TSVoidKeyword" || node.type === "NullLiteralTypeAnnotation" || node.type === "TSNullKeyword").length; + const hasObject = node.types.some(node => node.type === "ObjectTypeAnnotation" || node.type === "TSTypeLiteral" || // This is a bit aggressive but captures Array<{x}> + node.type === "GenericTypeAnnotation" || node.type === "TSTypeReference"); - if (isCallOrOptionalCallExpression$1(node) && (isMemberish$1(node.callee) || isCallOrOptionalCallExpression$1(node.callee))) { - printedNodes.unshift({ - node, - printed: concat$8([comments.printComments(path, () => concat$8([printOptionalToken$1(path), printFunctionTypeParameters$1(path, options, print), callArguments(path, options, print)]), options), shouldInsertEmptyLineAfter(node) ? hardline$5 : ""]) - }); - path.call(callee => rec(callee), "callee"); - } else if (isMemberish$1(node)) { - printedNodes.unshift({ - node, - needsParens: needsParens_1(path, options), - printed: comments.printComments(path, () => node.type === "OptionalMemberExpression" || node.type === "MemberExpression" ? printMemberLookup$1(path, options, print) : printBindExpressionCallee$1(path, options, print), options) - }); - path.call(object => rec(object), "object"); - } else if (node.type === "TSNonNullExpression") { - printedNodes.unshift({ - node, - printed: comments.printComments(path, () => "!", options) - }); - path.call(expression => rec(expression), "expression"); - } else { - printedNodes.unshift({ - node, - printed: path.call(print) - }); + if (node.types.length - 1 === voidCount && hasObject) { + return true; } - } // Note: the comments of the root node have already been printed, so we - // need to extract this first call without printing them as they would - // if handled inside of the recursive call. + } + return false; +} +function printOpaqueType$1(path, options, print) { + const semi = options.semi ? ";" : ""; const node = path.getValue(); - printedNodes.unshift({ - node, - printed: concat$8([printOptionalToken$1(path), printFunctionTypeParameters$1(path, options, print), callArguments(path, options, print)]) - }); + const parts = []; + parts.push("opaque type ", print("id"), print("typeParameters")); - if (node.callee) { - path.call(callee => rec(callee), "callee"); - } // Once we have a linear list of printed nodes, we want to create groups out - // of it. - // - // a().b.c().d().e - // will be grouped as - // [ - // [Identifier, CallExpression], - // [MemberExpression, MemberExpression, CallExpression], - // [MemberExpression, CallExpression], - // [MemberExpression], - // ] - // so that we can print it as - // a() - // .b.c() - // .d() - // .e - // The first group is the first node followed by - // - as many CallExpression as possible - // < fn()()() >.something() - // - as many array accessors as possible - // < fn()[0][1][2] >.something() - // - then, as many MemberExpression as possible but the last one - // < this.items >.something() + if (node.supertype) { + parts.push(": ", print("supertype")); + } + if (node.impltype) { + parts.push(" = ", print("impltype")); + } - const groups = []; - let currentGroup = [printedNodes[0]]; - let i = 1; + parts.push(semi); + return parts; +} - for (; i < printedNodes.length; ++i) { - if (printedNodes[i].node.type === "TSNonNullExpression" || isCallOrOptionalCallExpression$1(printedNodes[i].node) || (printedNodes[i].node.type === "MemberExpression" || printedNodes[i].node.type === "OptionalMemberExpression") && printedNodes[i].node.computed && isNumericLiteral$2(printedNodes[i].node.property)) { - currentGroup.push(printedNodes[i]); - } else { - break; - } - } +function printTypeAlias$2(path, options, print) { + const semi = options.semi ? ";" : ""; + const node = path.getValue(); + const parts = []; - if (!isCallOrOptionalCallExpression$1(printedNodes[0].node)) { - for (; i + 1 < printedNodes.length; ++i) { - if (isMemberish$1(printedNodes[i].node) && isMemberish$1(printedNodes[i + 1].node)) { - currentGroup.push(printedNodes[i]); - } else { - break; - } - } + if (node.declare) { + parts.push("declare "); } - groups.push(currentGroup); - currentGroup = []; // Then, each following group is a sequence of MemberExpression followed by - // a sequence of CallExpression. To compute it, we keep adding things to the - // group until we has seen a CallExpression in the past and reach a - // MemberExpression + parts.push("type ", print("id"), print("typeParameters")); + const rightPropertyName = node.type === "TSTypeAliasDeclaration" ? "typeAnnotation" : "right"; + return [printAssignment$2(path, options, print, parts, " =", rightPropertyName), semi]; +} // `TSIntersectionType` and `IntersectionTypeAnnotation` - let hasSeenCallExpression = false; - for (; i < printedNodes.length; ++i) { - if (hasSeenCallExpression && isMemberish$1(printedNodes[i].node)) { - // [0] should be appended at the end of the group instead of the - // beginning of the next one - if (printedNodes[i].node.computed && isNumericLiteral$2(printedNodes[i].node.property)) { - currentGroup.push(printedNodes[i]); - continue; +function printIntersectionType$2(path, options, print) { + const node = path.getValue(); + const types = path.map(print, "types"); + const result = []; + let wasIndented = false; + + for (let i = 0; i < types.length; ++i) { + if (i === 0) { + result.push(types[i]); + } else if (isObjectType(node.types[i - 1]) && isObjectType(node.types[i])) { + // If both are objects, don't indent + result.push([" & ", wasIndented ? indent$i(types[i]) : types[i]]); + } else if (!isObjectType(node.types[i - 1]) && !isObjectType(node.types[i])) { + // If no object is involved, go to the next line if it breaks + result.push(indent$i([" &", line$k, types[i]])); + } else { + // If you go from object to non-object or vis-versa, then inline it + if (i > 1) { + wasIndented = true; } - groups.push(currentGroup); - currentGroup = []; - hasSeenCallExpression = false; + result.push(" & ", i > 1 ? indent$i(types[i]) : types[i]); } + } - if (isCallOrOptionalCallExpression$1(printedNodes[i].node) || printedNodes[i].node.type === "ImportExpression") { - hasSeenCallExpression = true; - } + return group$n(result); +} // `TSUnionType` and `UnionTypeAnnotation` - currentGroup.push(printedNodes[i]); - if (printedNodes[i].node.comments && printedNodes[i].node.comments.some(comment => comment.trailing)) { - groups.push(currentGroup); - currentGroup = []; - hasSeenCallExpression = false; - } - } +function printUnionType$2(path, options, print) { + const node = path.getValue(); // single-line variation + // A | B | C + // multi-line variation + // | A + // | B + // | C - if (currentGroup.length > 0) { - groups.push(currentGroup); - } // There are cases like Object.keys(), Observable.of(), _.values() where - // they are the subject of all the chained calls and therefore should - // be kept on the same line: - // - // Object.keys(items) - // .filter(x => x) - // .map(x => x) - // - // In order to detect those cases, we use an heuristic: if the first - // node is an identifier with the name starting with a capital - // letter or just a sequence of _$. The rationale is that they are - // likely to be factories. + const parent = path.getParentNode(); // If there's a leading comment, the parent is doing the indentation + const shouldIndent = parent.type !== "TypeParameterInstantiation" && parent.type !== "TSTypeParameterInstantiation" && parent.type !== "GenericTypeAnnotation" && parent.type !== "TSTypeReference" && parent.type !== "TSTypeAssertion" && parent.type !== "TupleTypeAnnotation" && parent.type !== "TSTupleType" && !(parent.type === "FunctionTypeParam" && !parent.name && path.getParentNode(1).this !== parent) && !((parent.type === "TypeAlias" || parent.type === "VariableDeclarator" || parent.type === "TSTypeAliasDeclaration") && hasLeadingOwnLineComment$1(options.originalText, node)); // { + // a: string + // } | null | void + // should be inlined and not be printed in the multi-line variant - function isFactory(name) { - return /^[A-Z]|^[$_]+$/.test(name); - } // In case the Identifier is shorter than tab width, we can keep the - // first call in a single line, if it's an ExpressionStatement. - // - // d3.scaleLinear() - // .domain([0, 100]) - // .range([0, width]); - // + const shouldHug = shouldHugType$2(node); // We want to align the children but without its comment, so it looks like + // | child1 + // // comment + // | child2 + const printed = path.map(typePath => { + let printedType = print(); - function isShort(name) { - return name.length <= options.tabWidth; + if (!shouldHug) { + printedType = align$3(2, printedType); + } + + return printComments$2(typePath, printedType, options); + }, "types"); + + if (shouldHug) { + return join$k(" | ", printed); } - function shouldNotWrap(groups) { - const hasComputed = groups[1].length && groups[1][0].node.computed; + const shouldAddStartLine = shouldIndent && !hasLeadingOwnLineComment$1(options.originalText, node); + const code = [ifBreak$g([shouldAddStartLine ? line$k : "", "| "]), join$k([line$k, "| "], printed)]; - if (groups[0].length === 1) { - const firstNode = groups[0][0].node; - return firstNode.type === "ThisExpression" || firstNode.type === "Identifier" && (isFactory(firstNode.name) || isExpressionStatement && isShort(firstNode.name) || hasComputed); - } + if (needsParens_1(path, options)) { + return group$n([indent$i(code), softline$h]); + } - const lastNode = getLast$4(groups[0]).node; - return (lastNode.type === "MemberExpression" || lastNode.type === "OptionalMemberExpression") && lastNode.property.type === "Identifier" && (isFactory(lastNode.property.name) || hasComputed); + if (parent.type === "TupleTypeAnnotation" && parent.types.length > 1 || parent.type === "TSTupleType" && parent.elementTypes.length > 1) { + return group$n([indent$i([ifBreak$g(["(", softline$h]), code]), softline$h, ifBreak$g(")")]); } - const shouldMerge = groups.length >= 2 && !groups[1][0].node.comments && shouldNotWrap(groups); + return group$n(shouldIndent ? indent$i(code) : code); +} // `TSFunctionType` and `FunctionTypeAnnotation` - function printGroup(printedGroup) { - const printed = printedGroup.map(tuple => tuple.printed); // Checks if the last node (i.e. the parent node) needs parens and print - // accordingly - if (printedGroup.length > 0 && printedGroup[printedGroup.length - 1].needsParens) { - return concat$8(["(", ...printed, ")"]); - } +function printFunctionType$2(path, options, print) { + const node = path.getValue(); + const parts = []; // FunctionTypeAnnotation is ambiguous: + // declare function foo(a: B): void; OR + // var A: (a: B) => void; - return concat$8(printed); - } + const parent = path.getParentNode(0); + const parentParent = path.getParentNode(1); + const parentParentParent = path.getParentNode(2); + let isArrowFunctionTypeAnnotation = node.type === "TSFunctionType" || !((parent.type === "ObjectTypeProperty" || parent.type === "ObjectTypeInternalSlot") && !parent.variance && !parent.optional && locStart$l(parent) === locStart$l(node) || parent.type === "ObjectTypeCallProperty" || parentParentParent && parentParentParent.type === "DeclareFunction"); + let needsColon = isArrowFunctionTypeAnnotation && (parent.type === "TypeAnnotation" || parent.type === "TSTypeAnnotation"); // Sadly we can't put it inside of AstPath::needsColon because we are + // printing ":" as part of the expression and it would put parenthesis + // around :( - function printIndentedGroup(groups) { - /* istanbul ignore next */ - if (groups.length === 0) { - return ""; - } + const needsParens = needsColon && isArrowFunctionTypeAnnotation && (parent.type === "TypeAnnotation" || parent.type === "TSTypeAnnotation") && parentParent.type === "ArrowFunctionExpression"; - return indent$5(group$4(concat$8([hardline$5, join$4(hardline$5, groups.map(printGroup))]))); + if (isObjectTypePropertyAFunction(parent)) { + isArrowFunctionTypeAnnotation = true; + needsColon = true; } - const printedGroups = groups.map(printGroup); - const oneLine = concat$8(printedGroups); - const cutoff = shouldMerge ? 3 : 2; - const flatGroups = flatten_1(groups); - const hasComment = flatGroups.slice(1, -1).some(node => hasLeadingComment$4(node.node)) || flatGroups.slice(0, -1).some(node => hasTrailingComment$2(node.node)) || groups[cutoff] && hasLeadingComment$4(groups[cutoff][0].node); // If we only have a single `.`, we shouldn't do anything fancy and just - // render everything concatenated together. + if (needsParens) { + parts.push("("); + } - if (groups.length <= cutoff && !hasComment) { - if (isLongCurriedCallExpression$2(path)) { - return oneLine; - } + const parametersDoc = printFunctionParameters$2(path, print, options, + /* expandArg */ + false, + /* printTypeParams */ + true); // The returnType is not wrapped in a TypeAnnotation, so the colon + // needs to be added separately. - return group$4(oneLine); - } // Find out the last node in the first group and check if it has an - // empty line after + const returnTypeDoc = node.returnType || node.predicate || node.typeAnnotation ? [isArrowFunctionTypeAnnotation ? " => " : ": ", print("returnType"), print("predicate"), print("typeAnnotation")] : ""; + const shouldGroupParameters = shouldGroupFunctionParameters$2(node, returnTypeDoc); + parts.push(shouldGroupParameters ? group$n(parametersDoc) : parametersDoc); + if (returnTypeDoc) { + parts.push(returnTypeDoc); + } - const lastNodeBeforeIndent = getLast$4(groups[shouldMerge ? 1 : 0]).node; - const shouldHaveEmptyLineBeforeIndent = !isCallOrOptionalCallExpression$1(lastNodeBeforeIndent) && shouldInsertEmptyLineAfter(lastNodeBeforeIndent); - const expanded = concat$8([printGroup(groups[0]), shouldMerge ? concat$8(groups.slice(1, 2).map(printGroup)) : "", shouldHaveEmptyLineBeforeIndent ? hardline$5 : "", printIndentedGroup(groups.slice(shouldMerge ? 2 : 1))]); - const callExpressions = printedNodes.map(({ - node - }) => node).filter(isCallOrOptionalCallExpression$1); + if (needsParens) { + parts.push(")"); + } - function lastGroupWillBreakAndOtherCallsHaveFunctionArguments() { - const lastGroupNode = getLast$4(getLast$4(groups)).node; - const lastGroupDoc = getLast$4(printedGroups); - return isCallOrOptionalCallExpression$1(lastGroupNode) && willBreak$2(lastGroupDoc) && callExpressions.slice(0, -1).some(n => n.arguments.some(isFunctionOrArrowExpression$1)); - } // We don't want to print in one line if at least one of these conditions occurs: - // * the chain has comments, - // * the chain is an expression statement and all the arguments are literal-like ("fluent configuration" pattern), - // * the chain is longer than 2 calls and has non-trivial arguments or more than 2 arguments in any call but the first one, - // * any group but the last one has a hard line, - // * the last call's arguments have a hard line and other calls have non-trivial arguments. + return group$n(parts); +} // `TSTupleType` and `TupleTypeAnnotation` - if (hasComment || callExpressions.length > 2 && callExpressions.some(expr => !expr.arguments.every(arg => isSimpleCallArgument$1(arg, 0))) || printedGroups.slice(0, -1).some(willBreak$2) || lastGroupWillBreakAndOtherCallsHaveFunctionArguments()) { - return group$4(expanded); - } +function printTupleType$2(path, options, print) { + const node = path.getValue(); + const typesField = node.type === "TSTupleType" ? "elementTypes" : "types"; + const hasRest = node[typesField].length > 0 && getLast$6(node[typesField]).type === "TSRestType"; + return group$n(["[", indent$i([softline$h, printArrayItems$2(path, options, typesField, print)]), ifBreak$g(shouldPrintComma$7(options, "all") && !hasRest ? "," : ""), printDanglingComments$9(path, options, + /* sameIndent */ + true), softline$h, "]"]); +} // `TSIndexedAccessType`, `IndexedAccessType`, and `OptionalIndexedAccessType` + - return concat$8([// We only need to check `oneLine` because if `expanded` is chosen - // that means that the parent group has already been broken - // naturally - willBreak$2(oneLine) || shouldHaveEmptyLineBeforeIndent ? breakParent$3 : "", conditionalGroup$2([oneLine, expanded])]); +function printIndexedAccessType$2(path, options, print) { + const node = path.getValue(); + const leftDelimiter = node.type === "OptionalIndexedAccessType" && node.optional ? "?.[" : "["; + return [print("objectType"), leftDelimiter, print("indexType"), "]"]; } -var memberChain = printMemberChain; +var typeAnnotation = { + printOpaqueType: printOpaqueType$1, + printTypeAlias: printTypeAlias$2, + printIntersectionType: printIntersectionType$2, + printUnionType: printUnionType$2, + printFunctionType: printFunctionType$2, + printTupleType: printTupleType$2, + printIndexedAccessType: printIndexedAccessType$2, + shouldHugType: shouldHugType$2 +}; +const { + printDanglingComments: printDanglingComments$8 +} = comments$1; const { builders: { - concat: concat$9, - softline: softline$4, - group: group$5, - indent: indent$6, - join: join$5, - line: line$6, - ifBreak: ifBreak$2 - } -} = document; + join: join$j, + line: line$j, + hardline: hardline$o, + softline: softline$g, + group: group$m, + indent: indent$h, + ifBreak: ifBreak$f + } +} = doc; const { - shouldPrintComma: shouldPrintComma$2 -} = utils$6; -/** - * @typedef {import("../../document").Doc} Doc - */ - -function printModuleSource(path, options, print) { - const node = path.getValue(); - return node.source ? concat$9([" from ", path.call(print, "source")]) : ""; -} + isTestCall, + hasComment: hasComment$8, + CommentCheckFlags: CommentCheckFlags$8, + isTSXFile, + shouldPrintComma: shouldPrintComma$6, + getFunctionParameters: getFunctionParameters$1 +} = utils$5; +const { + createGroupIdMapper: createGroupIdMapper$1 +} = util$5; +const { + shouldHugType: shouldHugType$1 +} = typeAnnotation; +const getTypeParametersGroupId$2 = createGroupIdMapper$1("typeParameters"); -function printModuleSpecifiers(path, options, print) { +function printTypeParameters$2(path, options, print, paramsKey) { const node = path.getValue(); - /** @type{Doc[]} */ - const parts = [node.type === "ImportDeclaration" ? " " : ""]; + if (!node[paramsKey]) { + return ""; + } // for TypeParameterDeclaration typeParameters is a single node - if (node.specifiers && node.specifiers.length > 0) { - const standalonesSpecifiers = []; - const groupedSpecifiers = []; - path.each(specifierPath => { - const specifierType = path.getValue().type; - if (specifierType === "ExportNamespaceSpecifier" || specifierType === "ExportDefaultSpecifier" || specifierType === "ImportNamespaceSpecifier" || specifierType === "ImportDefaultSpecifier") { - standalonesSpecifiers.push(print(specifierPath)); - } else if (specifierType === "ExportSpecifier" || specifierType === "ImportSpecifier") { - groupedSpecifiers.push(print(specifierPath)); - } else { - /* istanbul ignore next */ - throw new Error(`Unknown specifier type ${JSON.stringify(specifierType)}`); - } - }, "specifiers"); - parts.push(join$5(", ", standalonesSpecifiers)); + if (!Array.isArray(node[paramsKey])) { + return print(paramsKey); + } - if (groupedSpecifiers.length !== 0) { - if (standalonesSpecifiers.length !== 0) { - parts.push(", "); - } + const grandparent = path.getNode(2); + const isParameterInTestCall = grandparent && isTestCall(grandparent); + const shouldInline = isParameterInTestCall || node[paramsKey].length === 0 || node[paramsKey].length === 1 && (shouldHugType$1(node[paramsKey][0]) || node[paramsKey][0].type === "NullableTypeAnnotation"); - const canBreak = groupedSpecifiers.length > 1 || standalonesSpecifiers.length > 0 || node.specifiers.some(node => node.comments); + if (shouldInline) { + return ["<", join$j(", ", path.map(print, paramsKey)), printDanglingCommentsForInline(path, options), ">"]; + } // Keep comma if the file extension is .tsx and + // has one type parameter that isn't extend with any types. + // Because, otherwise formatted result will be invalid as tsx. - if (canBreak) { - parts.push(group$5(concat$9(["{", indent$6(concat$9([options.bracketSpacing ? line$6 : softline$4, join$5(concat$9([",", line$6]), groupedSpecifiers)])), ifBreak$2(shouldPrintComma$2(options) ? "," : ""), options.bracketSpacing ? line$6 : softline$4, "}"]))); - } else { - parts.push(concat$9(["{", options.bracketSpacing ? " " : "", concat$9(groupedSpecifiers), options.bracketSpacing ? " " : "", "}"])); - } - } - } else { - parts.push("{}"); - } - return concat$9(parts); + const trailingComma = node.type === "TSTypeParameterInstantiation" // https://github.com/microsoft/TypeScript/issues/21984 + ? "" : getFunctionParameters$1(node).length === 1 && isTSXFile(options) && !node[paramsKey][0].constraint && path.getParentNode().type === "ArrowFunctionExpression" ? "," : shouldPrintComma$6(options, "all") ? ifBreak$f(",") : ""; + return group$m(["<", indent$h([softline$g, join$j([",", line$j], path.map(print, paramsKey))]), trailingComma, softline$g, ">"], { + id: getTypeParametersGroupId$2(node) + }); } -var module$2 = { - printModuleSource, - printModuleSpecifiers -}; +function printDanglingCommentsForInline(path, options) { + const node = path.getValue(); -const { - isJSXNode: isJSXNode$2 -} = utils$6; -const { - hasNewlineInRange: hasNewlineInRange$4 -} = util; -const { - builders: { - concat: concat$a, - line: line$7, - softline: softline$5, - group: group$6, - indent: indent$7, - align: align$1, - ifBreak: ifBreak$3, - dedent: dedent$1, - breakParent: breakParent$4 + if (!hasComment$8(node, CommentCheckFlags$8.Dangling)) { + return ""; } -} = document; -/** - * @typedef {import("../../document").Doc} Doc - * @typedef {import("../../common/fast-path")} FastPath - * - * @typedef {any} Options - Prettier options (TBD ...) - * - * @typedef {Object} OperatorOptions - * @property {() => Array} beforeParts - Parts to print before the `?`. - * @property {(breakClosingParen: boolean) => Array} afterParts - Parts to print after the conditional expression. - * @property {boolean} shouldCheckJsx - Whether to check for and print in JSX mode. - * @property {string} conditionalNodeType - The type of the conditional expression node, ie "ConditionalExpression" or "TSConditionalType". - * @property {string} consequentNodePropertyName - The property at which the consequent node can be found on the main node, eg "consequent". - * @property {string} alternateNodePropertyName - The property at which the alternate node can be found on the main node, eg "alternate". - * @property {string[]} testNodePropertyNames - The properties at which the test nodes can be found on the main node, eg "test". - */ -// If we have nested conditional expressions, we want to print them in JSX mode -// if there's at least one JSXElement somewhere in the tree. -// -// A conditional expression chain like this should be printed in normal mode, -// because there aren't JSXElements anywhere in it: -// -// isA ? "A" : isB ? "B" : isC ? "C" : "Unknown"; -// -// But a conditional expression chain like this should be printed in JSX mode, -// because there is a JSXElement in the last ConditionalExpression: -// -// isA ? "A" : isB ? "B" : isC ? "C" : Unknown; -// -// This type of ConditionalExpression chain is structured like this in the AST: -// -// ConditionalExpression { -// test: ..., -// consequent: ..., -// alternate: ConditionalExpression { -// test: ..., -// consequent: ..., -// alternate: ConditionalExpression { -// test: ..., -// consequent: ..., -// alternate: ..., -// } -// } -// } -// -// We want to traverse over that shape and convert it into a flat structure so -// that we can find if there's a JSXElement somewhere inside. -function getConditionalChainContents(node) { - // Given this code: - // - // // Using a ConditionalExpression as the consequent is uncommon, but should - // // be handled. - // A ? B : C ? D : E ? F ? G : H : I - // - // which has this AST: - // - // ConditionalExpression { - // test: Identifier(A), - // consequent: Identifier(B), - // alternate: ConditionalExpression { - // test: Identifier(C), - // consequent: Identifier(D), - // alternate: ConditionalExpression { - // test: Identifier(E), - // consequent: ConditionalExpression { - // test: Identifier(F), - // consequent: Identifier(G), - // alternate: Identifier(H), - // }, - // alternate: Identifier(I), - // } - // } - // } - // - // we should return this Array: - // - // [ - // Identifier(A), - // Identifier(B), - // Identifier(C), - // Identifier(D), - // Identifier(E), - // Identifier(F), - // Identifier(G), - // Identifier(H), - // Identifier(I) - // ]; - // - // This loses the information about whether each node was the test, - // consequent, or alternate, but we don't care about that here- we are only - // flattening this structure to find if there's any JSXElements inside. - const nonConditionalExpressions = []; - - function recurse(node) { - if (node.type === "ConditionalExpression") { - recurse(node.test); - recurse(node.consequent); - recurse(node.alternate); - } else { - nonConditionalExpressions.push(node); - } + const hasOnlyBlockComments = !hasComment$8(node, CommentCheckFlags$8.Line); + const printed = printDanglingComments$8(path, options, + /* sameIndent */ + hasOnlyBlockComments); + + if (hasOnlyBlockComments) { + return printed; } - recurse(node); - return nonConditionalExpressions; + return [printed, hardline$o]; } -function conditionalExpressionChainContainsJSX(node) { - return getConditionalChainContents(node).some(isJSXNode$2); -} -/** - * The following is the shared logic for - * ternary operators, namely ConditionalExpression - * and TSConditionalType - * @param {FastPath} path - The path to the ConditionalExpression/TSConditionalType node. - * @param {Options} options - Prettier options - * @param {Function} print - Print function to call recursively - * @param {OperatorOptions} operatorOptions - * @returns {Doc} - */ +function printTypeParameter$2(path, options, print) { + const node = path.getValue(); + const parts = []; + const parent = path.getParentNode(); + if (parent.type === "TSMappedType") { + parts.push("[", print("name")); -function printTernaryOperator(path, options, print, operatorOptions) { - const node = path.getValue(); - const consequentNode = node[operatorOptions.consequentNodePropertyName]; - const alternateNode = node[operatorOptions.alternateNodePropertyName]; - const parts = []; // We print a ConditionalExpression in either "JSX mode" or "normal mode". - // See tests/jsx/conditional-expression.js for more info. + if (node.constraint) { + parts.push(" in ", print("constraint")); + } - let jsxMode = false; - const parent = path.getParentNode(); - const isParentTest = parent.type === operatorOptions.conditionalNodeType && operatorOptions.testNodePropertyNames.some(prop => parent[prop] === node); - let forceNoIndent = parent.type === operatorOptions.conditionalNodeType && !isParentTest; // Find the outermost non-ConditionalExpression parent, and the outermost - // ConditionalExpression parent. We'll use these to determine if we should - // print in JSX mode. + if (parent.nameType) { + parts.push(" as ", path.callParent(() => print("nameType"))); + } - let currentParent; - let previousParent; - let i = 0; + parts.push("]"); + return parts; + } - do { - previousParent = currentParent || node; - currentParent = path.getParentNode(i); - i++; - } while (currentParent && currentParent.type === operatorOptions.conditionalNodeType && operatorOptions.testNodePropertyNames.every(prop => currentParent[prop] !== previousParent)); + if (node.variance) { + parts.push(print("variance")); + } - const firstNonConditionalParent = currentParent || parent; - const lastConditionalParent = previousParent; + parts.push(print("name")); - if (operatorOptions.shouldCheckJsx && (isJSXNode$2(node[operatorOptions.testNodePropertyNames[0]]) || isJSXNode$2(consequentNode) || isJSXNode$2(alternateNode) || conditionalExpressionChainContainsJSX(lastConditionalParent))) { - jsxMode = true; - forceNoIndent = true; // Even though they don't need parens, we wrap (almost) everything in - // parens when using ?: within JSX, because the parens are analogous to - // curly braces in an if statement. + if (node.bound) { + parts.push(": ", print("bound")); + } - const wrap = doc => concat$a([ifBreak$3("(", ""), indent$7(concat$a([softline$5, doc])), softline$5, ifBreak$3(")", "")]); // The only things we don't wrap are: - // * Nested conditional expressions in alternates - // * null - // * undefined + if (node.constraint) { + parts.push(" extends ", print("constraint")); + } + if (node.default) { + parts.push(" = ", print("default")); + } - const isNil = node => node.type === "NullLiteral" || node.type === "Literal" && node.value === null || node.type === "Identifier" && node.name === "undefined"; + return parts; +} - parts.push(" ? ", isNil(consequentNode) ? path.call(print, operatorOptions.consequentNodePropertyName) : wrap(path.call(print, operatorOptions.consequentNodePropertyName)), " : ", alternateNode.type === operatorOptions.conditionalNodeType || isNil(alternateNode) ? path.call(print, operatorOptions.alternateNodePropertyName) : wrap(path.call(print, operatorOptions.alternateNodePropertyName))); - } else { - // normal mode - const part = concat$a([line$7, "? ", consequentNode.type === operatorOptions.conditionalNodeType ? ifBreak$3("", "(") : "", align$1(2, path.call(print, operatorOptions.consequentNodePropertyName)), consequentNode.type === operatorOptions.conditionalNodeType ? ifBreak$3("", ")") : "", line$7, ": ", alternateNode.type === operatorOptions.conditionalNodeType ? path.call(print, operatorOptions.alternateNodePropertyName) : align$1(2, path.call(print, operatorOptions.alternateNodePropertyName))]); - parts.push(parent.type !== operatorOptions.conditionalNodeType || parent[operatorOptions.alternateNodePropertyName] === node || isParentTest ? part : options.useTabs ? dedent$1(indent$7(part)) : align$1(Math.max(0, options.tabWidth - 2), part)); - } // We want a whole chain of ConditionalExpressions to all - // break if any of them break. That means we should only group around the - // outer-most ConditionalExpression. +var typeParameters = { + printTypeParameter: printTypeParameter$2, + printTypeParameters: printTypeParameters$2, + getTypeParametersGroupId: getTypeParametersGroupId$2 +}; + +const { + printComments: printComments$1 +} = comments$1; +const { + printString: printString$3, + printNumber: printNumber$3 +} = util$5; +const { + isNumericLiteral, + isSimpleNumber, + isStringLiteral, + isStringPropSafeToUnquote, + rawText: rawText$2 +} = utils$5; +const { + printAssignment: printAssignment$1 +} = assignment; +const needsQuoteProps = new WeakMap(); +function printPropertyKey$4(path, options, print) { + const node = path.getNode(); - const comments = flatten_1([...operatorOptions.testNodePropertyNames.map(propertyName => node[propertyName].comments), consequentNode.comments, alternateNode.comments]).filter(Boolean); - const shouldBreak = comments.some(comment => comments$1.isBlockComment(comment) && hasNewlineInRange$4(options.originalText, options.locStart(comment), options.locEnd(comment))); + if (node.computed) { + return ["[", print("key"), "]"]; + } - const maybeGroup = doc => parent === firstNonConditionalParent ? group$6(doc, { - shouldBreak - }) : shouldBreak ? concat$a([doc, breakParent$4]) : doc; // Break the closing paren to keep the chain right after it: - // (a - // ? b - // : c - // ).call() + const parent = path.getParentNode(); + const { + key + } = node; // flow has `Identifier` key, other parsers use `PrivateIdentifier` (ESTree) or `PrivateName` + if (node.type === "ClassPrivateProperty" && key.type === "Identifier") { + return ["#", print("key")]; + } - const breakClosingParen = !jsxMode && (parent.type === "MemberExpression" || parent.type === "OptionalMemberExpression" || parent.type === "NGPipeExpression" && parent.left === node) && !parent.computed; - const result = maybeGroup(concat$a([].concat((testDoc => - /** - * a - * ? b - * : multiline - * test - * node - * ^^ align(2) - * ? d - * : e - */ - parent.type === operatorOptions.conditionalNodeType && parent[operatorOptions.alternateNodePropertyName] === node ? align$1(2, testDoc) : testDoc)(concat$a(operatorOptions.beforeParts())), forceNoIndent ? concat$a(parts) : indent$7(concat$a(parts)), operatorOptions.afterParts(breakClosingParen)))); - return isParentTest ? group$6(concat$a([indent$7(concat$a([softline$5, result])), softline$5])) : result; + if (options.quoteProps === "consistent" && !needsQuoteProps.has(parent)) { + const objectHasStringProp = (parent.properties || parent.body || parent.members).some(prop => !prop.computed && prop.key && isStringLiteral(prop.key) && !isStringPropSafeToUnquote(prop, options)); + needsQuoteProps.set(parent, objectHasStringProp); + } + + if ((key.type === "Identifier" || isNumericLiteral(key) && isSimpleNumber(printNumber$3(rawText$2(key))) && // Avoid converting 999999999999999999999 to 1e+21, 0.99999999999999999 to 1 and 1.0 to 1. + String(key.value) === printNumber$3(rawText$2(key)) && // Quoting number keys is safe in JS and Flow, but not in TypeScript (as + // mentioned in `isStringPropSafeToUnquote`). + !(options.parser === "typescript" || options.parser === "babel-ts")) && (options.parser === "json" || options.quoteProps === "consistent" && needsQuoteProps.get(parent))) { + // a -> "a" + // 1 -> "1" + // 1.5 -> "1.5" + const prop = printString$3(JSON.stringify(key.type === "Identifier" ? key.name : key.value.toString()), options); + return path.call(keyPath => printComments$1(keyPath, prop, options), "key"); + } + + if (isStringPropSafeToUnquote(node, options) && (options.quoteProps === "as-needed" || options.quoteProps === "consistent" && !needsQuoteProps.get(parent))) { + // 'a' -> a + // '1' -> 1 + // '1.5' -> 1.5 + return path.call(keyPath => printComments$1(keyPath, /^\d/.test(key.value) ? printNumber$3(key.value) : key.value, options), "key"); + } + + return print("key"); } -var ternary = printTernaryOperator; +function printProperty$1(path, options, print) { + const node = path.getValue(); -/** @typedef {import("../document").Doc} Doc */ + if (node.shorthand) { + return print("value"); + } -/** @type {import("assert")} */ -// TODO(azz): anything that imports from main shouldn't be in a `language-*` dir. + return printAssignment$1(path, options, print, printPropertyKey$4(path, options, print), ":", "value"); +} + +var property = { + printProperty: printProperty$1, + printPropertyKey: printPropertyKey$4 +}; + +/** @typedef {import("../../document/doc-builders").Doc} Doc */ const { - getNextNonSpaceNonCommentCharacter: getNextNonSpaceNonCommentCharacter$2, - hasNewline: hasNewline$5, - hasNewlineInRange: hasNewlineInRange$5, - getLast: getLast$5, - getStringWidth: getStringWidth$3, - printString: printString$1, - printNumber: printNumber$1, - hasIgnoreComment: hasIgnoreComment$2, - hasNodeIgnoreComment: hasNodeIgnoreComment$2, - getIndentSize: getIndentSize$2, - getPreferredQuote: getPreferredQuote$1 -} = util; + printDanglingComments: printDanglingComments$7, + printCommentsSeparately +} = comments$1; const { - isNextLineEmpty: isNextLineEmpty$4, - getNextNonSpaceNonCommentCharacterIndex: getNextNonSpaceNonCommentCharacterIndex$4 -} = utilShared; + getNextNonSpaceNonCommentCharacterIndex +} = util$5; const { builders: { - concat: concat$b, - join: join$6, - line: line$8, - hardline: hardline$6, - softline: softline$6, - literalline: literalline$2, - group: group$7, - indent: indent$8, - align: align$2, - conditionalGroup: conditionalGroup$3, - fill: fill$3, - ifBreak: ifBreak$4, - lineSuffixBoundary: lineSuffixBoundary$1, - addAlignmentToDoc: addAlignmentToDoc$2 + line: line$i, + softline: softline$f, + group: group$l, + indent: indent$g, + ifBreak: ifBreak$e, + hardline: hardline$n, + join: join$i, + indentIfBreak: indentIfBreak$1 }, utils: { - willBreak: willBreak$3, - isLineNext: isLineNext$1, - isEmpty: isEmpty$1, removeLines: removeLines$1, - normalizeParts: normalizeParts$1 - }, - printer: { - printDocToString: printDocToString$2 + willBreak } -} = document; +} = doc; const { - insertPragma: insertPragma$1 -} = pragma; + ArgExpansionBailout +} = errors; const { - printHtmlBinding: printHtmlBinding$1, - isVueEventBindingExpression: isVueEventBindingExpression$1 -} = htmlBinding; + getFunctionParameters, + hasLeadingOwnLineComment, + isFlowAnnotationComment, + isJsxNode: isJsxNode$2, + isTemplateOnItsOwnLine, + shouldPrintComma: shouldPrintComma$5, + startsWithNoLookaheadToken, + isBinaryish, + isLineComment: isLineComment$2, + hasComment: hasComment$7, + getComments: getComments$2, + CommentCheckFlags: CommentCheckFlags$7, + isCallLikeExpression, + isCallExpression: isCallExpression$3, + getCallArguments, + hasNakedLeftSide: hasNakedLeftSide$1, + getLeftSide +} = utils$5; const { - classChildNeedsASIProtection: classChildNeedsASIProtection$1, - classPropMayCauseASIProblems: classPropMayCauseASIProblems$1, - getFlowVariance: getFlowVariance$1, - getLeftSidePathName: getLeftSidePathName$2, - getParentExportDeclaration: getParentExportDeclaration$1, - getTypeScriptMappedTypeModifier: getTypeScriptMappedTypeModifier$1, - hasDanglingComments: hasDanglingComments$1, - hasFlowAnnotationComment: hasFlowAnnotationComment$1, - hasFlowShorthandAnnotationComment: hasFlowShorthandAnnotationComment$2, - hasLeadingOwnLineComment: hasLeadingOwnLineComment$1, - hasNakedLeftSide: hasNakedLeftSide$2, - hasNewlineBetweenOrAfterDecorators: hasNewlineBetweenOrAfterDecorators$1, - hasNgSideEffect: hasNgSideEffect$1, - hasPrettierIgnore: hasPrettierIgnore$1, - hasTrailingComment: hasTrailingComment$3, - hasTrailingLineComment: hasTrailingLineComment$1, - identity: identity$2, - isBinaryish: isBinaryish$1, - isCallOrOptionalCallExpression: isCallOrOptionalCallExpression$2, - isEmptyJSXElement: isEmptyJSXElement$1, - isExportDeclaration: isExportDeclaration$1, - isFlowAnnotationComment: isFlowAnnotationComment$1, - isFunctionNotation: isFunctionNotation$1, - isGetterOrSetter: isGetterOrSetter$1, - isJestEachTemplateLiteral: isJestEachTemplateLiteral$1, - isJSXNode: isJSXNode$3, - isJSXWhitespaceExpression: isJSXWhitespaceExpression$1, - isLastStatement: isLastStatement$1, - isLiteral: isLiteral$1, - isMeaningfulJSXText: isMeaningfulJSXText$1, - isMemberExpressionChain: isMemberExpressionChain$1, - isMemberish: isMemberish$2, - isNgForOf: isNgForOf$1, - isNumericLiteral: isNumericLiteral$3, - isObjectType: isObjectType$1, - isObjectTypePropertyAFunction: isObjectTypePropertyAFunction$1, - isSimpleFlowType: isSimpleFlowType$1, - isSimpleNumber: isSimpleNumber$1, - isSimpleTemplateLiteral: isSimpleTemplateLiteral$1, - isStringLiteral: isStringLiteral$1, - isStringPropSafeToUnquote: isStringPropSafeToUnquote$1, - isTemplateOnItsOwnLine: isTemplateOnItsOwnLine$1, - isTestCall: isTestCall$1, - isTheOnlyJSXElementInMarkdown: isTheOnlyJSXElementInMarkdown$1, - isTSXFile: isTSXFile$1, - isTypeAnnotationAFunction: isTypeAnnotationAFunction$1, - matchJsxWhitespaceRegex: matchJsxWhitespaceRegex$1, - needsHardlineAfterDanglingComment: needsHardlineAfterDanglingComment$1, - rawText: rawText$1, - returnArgumentHasLeadingComment: returnArgumentHasLeadingComment$1, - shouldPrintComma: shouldPrintComma$3, - shouldFlatten: shouldFlatten$2, - startsWithNoLookaheadToken: startsWithNoLookaheadToken$2 -} = utils$6; + locEnd: locEnd$j +} = loc$6; const { - printOptionalToken: printOptionalToken$2, - printFunctionTypeParameters: printFunctionTypeParameters$2, - printMemberLookup: printMemberLookup$2, - printBindExpressionCallee: printBindExpressionCallee$2 -} = misc; + printFunctionParameters: printFunctionParameters$1, + shouldGroupFunctionParameters: shouldGroupFunctionParameters$1 +} = functionParameters; const { - printModuleSource: printModuleSource$1, - printModuleSpecifiers: printModuleSpecifiers$1 -} = module$2; -const needsQuoteProps = new WeakMap(); -let uid = 0; + printPropertyKey: printPropertyKey$3 +} = property; +const { + printFunctionTypeParameters +} = misc$1; + +function printFunction$2(path, print, options, args) { + const node = path.getValue(); + let expandArg = false; + + if ((node.type === "FunctionDeclaration" || node.type === "FunctionExpression") && args && args.expandLastArg) { + const parent = path.getParentNode(); + + if (isCallExpression$3(parent) && getCallArguments(parent).length > 1) { + expandArg = true; + } + } + + const parts = []; // For TypeScript the TSDeclareFunction node shares the AST + // structure with FunctionDeclaration + + if (node.type === "TSDeclareFunction" && node.declare) { + parts.push("declare "); + } + + if (node.async) { + parts.push("async "); + } + + if (node.generator) { + parts.push("function* "); + } else { + parts.push("function "); + } + + if (node.id) { + parts.push(print("id")); + } + + const parametersDoc = printFunctionParameters$1(path, print, options, expandArg); + const returnTypeDoc = printReturnType(path, print, options); + const shouldGroupParameters = shouldGroupFunctionParameters$1(node, returnTypeDoc); + parts.push(printFunctionTypeParameters(path, options, print), group$l([shouldGroupParameters ? group$l(parametersDoc) : parametersDoc, returnTypeDoc]), node.body ? " " : "", print("body")); + + if (options.semi && (node.declare || !node.body)) { + parts.push(";"); + } + + return parts; +} + +function printMethod$2(path, options, print) { + const node = path.getNode(); + const { + kind + } = node; + const value = node.value || node; + const parts = []; + + if (!kind || kind === "init" || kind === "method" || kind === "constructor") { + if (value.async) { + parts.push("async "); + } + } else { + assert__default['default'].ok(kind === "get" || kind === "set"); + parts.push(kind, " "); + } // A `getter`/`setter` can't be a generator, but it's recoverable -function genericPrint(path, options, printPath, args) { - const node = path.getValue(); - let needsParens = false; - const linesWithoutParens = printPathNoParens(path, options, printPath, args); - if (!node || isEmpty$1(linesWithoutParens)) { - return linesWithoutParens; + if (value.generator) { + parts.push("*"); } - const parentExportDecl = getParentExportDeclaration$1(path); - const decorators = []; + parts.push(printPropertyKey$3(path, options, print), node.optional || node.key.optional ? "?" : ""); - if (node.type === "ClassMethod" || node.type === "ClassPrivateMethod" || node.type === "ClassProperty" || node.type === "TSAbstractClassProperty" || node.type === "ClassPrivateProperty" || node.type === "MethodDefinition" || node.type === "TSAbstractMethodDefinition" || node.type === "TSDeclareMethod") ; else if (node.decorators && node.decorators.length > 0 && // If the parent node is an export declaration and the decorator - // was written before the export, the export will be responsible - // for printing the decorators. - !(parentExportDecl && options.locStart(parentExportDecl, { - ignoreDecorators: true - }) > options.locStart(node.decorators[0]))) { - const shouldBreak = node.type === "ClassExpression" || node.type === "ClassDeclaration" || hasNewlineBetweenOrAfterDecorators$1(node, options); - const separator = shouldBreak ? hardline$6 : line$8; - path.each(decoratorPath => { - let decorator = decoratorPath.getValue(); - - if (decorator.expression) { - decorator = decorator.expression; - } else { - decorator = decorator.callee; - } + if (node === value) { + parts.push(printMethodInternal$1(path, options, print)); + } else if (value.type === "FunctionExpression") { + parts.push(path.call(path => printMethodInternal$1(path, options, print), "value")); + } else { + parts.push(print("value")); + } - decorators.push(printPath(decoratorPath), separator); - }, "decorators"); + return parts; +} - if (parentExportDecl) { - decorators.unshift(hardline$6); - } - } else if (isExportDeclaration$1(node) && node.declaration && node.declaration.decorators && node.declaration.decorators.length > 0 && // Only print decorators here if they were written before the export, - // otherwise they are printed by the node.declaration - options.locStart(node, { - ignoreDecorators: true - }) > options.locStart(node.declaration.decorators[0])) { - // Export declarations are responsible for printing any decorators - // that logically apply to node.declaration. - path.each(decoratorPath => { - const decorator = decoratorPath.getValue(); - const prefix = decorator.type === "Decorator" ? "" : "@"; - decorators.push(prefix, printPath(decoratorPath), hardline$6); - }, "declaration", "decorators"); +function printMethodInternal$1(path, options, print) { + const node = path.getNode(); + const parametersDoc = printFunctionParameters$1(path, print, options); + const returnTypeDoc = printReturnType(path, print, options); + const shouldGroupParameters = shouldGroupFunctionParameters$1(node, returnTypeDoc); + const parts = [printFunctionTypeParameters(path, options, print), group$l([shouldGroupParameters ? group$l(parametersDoc) : parametersDoc, returnTypeDoc])]; + + if (node.body) { + parts.push(" ", print("body")); } else { - // Nodes with decorators can't have parentheses, so we can avoid - // computing pathNeedsParens() except in this case. - needsParens = needsParens_1(path, options); + parts.push(options.semi ? ";" : ""); } + return parts; +} + +function printArrowFunctionSignature(path, options, print, args) { + const node = path.getValue(); const parts = []; - if (needsParens) { - parts.unshift("("); + if (node.async) { + parts.push("async "); } - parts.push(linesWithoutParens); + if (shouldPrintParamsWithoutParens$1(path, options)) { + parts.push(print(["params", 0])); + } else { + const expandArg = args && (args.expandLastArg || args.expandFirstArg); + let returnTypeDoc = printReturnType(path, print, options); - if (needsParens) { - const node = path.getValue(); + if (expandArg) { + if (willBreak(returnTypeDoc)) { + throw new ArgExpansionBailout(); + } - if (hasFlowShorthandAnnotationComment$2(node)) { - parts.push(" /*"); - parts.push(node.trailingComments[0].value.trimStart()); - parts.push("*/"); - node.trailingComments[0].printed = true; + returnTypeDoc = group$l(removeLines$1(returnTypeDoc)); } - parts.push(")"); + parts.push(group$l([printFunctionParameters$1(path, print, options, expandArg, + /* printTypeParams */ + true), returnTypeDoc])); } - if (decorators.length > 0) { - return group$7(concat$b(decorators.concat(parts))); + const dangling = printDanglingComments$7(path, options, + /* sameIndent */ + true, comment => { + const nextCharacter = getNextNonSpaceNonCommentCharacterIndex(options.originalText, comment, locEnd$j); + return nextCharacter !== false && options.originalText.slice(nextCharacter, nextCharacter + 2) === "=>"; + }); + + if (dangling) { + parts.push(" ", dangling); } - return concat$b(parts); + return parts; } -function printDecorators(path, options, print) { - const node = path.getValue(); - return group$7(concat$b([join$6(line$8, path.map(print, "decorators")), hasNewlineBetweenOrAfterDecorators$1(node, options) ? hardline$6 : line$8])); +function printArrowChain(path, args, signatures, shouldBreak, bodyDoc, tailNode) { + const name = path.getName(); + const parent = path.getParentNode(); + const isCallee = isCallLikeExpression(parent) && name === "callee"; + const isAssignmentRhs = Boolean(args && args.assignmentLayout); + const shouldPutBodyOnSeparateLine = tailNode.body.type !== "BlockStatement" && tailNode.body.type !== "ObjectExpression"; + const shouldBreakBeforeChain = isCallee && shouldPutBodyOnSeparateLine || args && args.assignmentLayout === "chain-tail-arrow-chain"; + const groupId = Symbol("arrow-chain"); + return group$l([group$l(indent$g([isCallee || isAssignmentRhs ? softline$f : "", group$l(join$i([" =>", line$i], signatures), { + shouldBreak + })]), { + id: groupId, + shouldBreak: shouldBreakBeforeChain + }), " =>", indentIfBreak$1(shouldPutBodyOnSeparateLine ? indent$g([line$i, bodyDoc]) : [" ", bodyDoc], { + groupId + }), isCallee ? ifBreak$e(softline$f, "", { + groupId + }) : ""]); } -function printPathNoParens(path, options, print, args) { - const n = path.getValue(); - const semi = options.semi ? ";" : ""; +function printArrowFunction$1(path, options, print, args) { + let node = path.getValue(); + /** @type {Doc[]} */ - if (!n) { - return ""; - } + const signatures = []; + const body = []; + let chainShouldBreak = false; - if (typeof n === "string") { - return n; - } + (function rec() { + const doc = printArrowFunctionSignature(path, options, print, args); + + if (signatures.length === 0) { + signatures.push(doc); + } else { + const { + leading, + trailing + } = printCommentsSeparately(path, options); + signatures.push([leading, doc]); + body.unshift(trailing); + } + + chainShouldBreak = chainShouldBreak || // Always break the chain if: + node.returnType && getFunctionParameters(node).length > 0 || node.typeParameters || getFunctionParameters(node).some(param => param.type !== "Identifier"); - const htmlBinding = printHtmlBinding$1(path, options, print); + if (node.body.type !== "ArrowFunctionExpression" || args && args.expandLastArg) { + body.unshift(print("body", args)); + } else { + node = node.body; + path.call(rec, "body"); + } + })(); - if (htmlBinding) { - return htmlBinding; + if (signatures.length > 1) { + return printArrowChain(path, args, signatures, chainShouldBreak, body, node); } - /** @type{Doc[]} */ + const parts = signatures; + parts.push(" =>"); // We want to always keep these types of nodes on the same line + // as the arrow. - let parts = []; + if (!hasLeadingOwnLineComment(options.originalText, node.body) && (node.body.type === "ArrayExpression" || node.body.type === "ObjectExpression" || node.body.type === "BlockStatement" || isJsxNode$2(node.body) || isTemplateOnItsOwnLine(node.body, options.originalText) || node.body.type === "ArrowFunctionExpression" || node.body.type === "DoExpression")) { + return group$l([...parts, " ", body]); + } // We handle sequence expressions as the body of arrows specially, + // so that the required parentheses end up on their own lines. - switch (n.type) { - case "JsExpressionRoot": - return path.call(print, "node"); - case "JsonRoot": - return concat$b([path.call(print, "node"), hardline$6]); + if (node.body.type === "SequenceExpression") { + return group$l([...parts, group$l([" (", indent$g([softline$f, body]), softline$f, ")"])]); + } // if the arrow function is expanded as last argument, we are adding a + // level of indentation and need to add a softline to align the closing ) + // with the opening (, or if it's inside a JSXExpression (e.g. an attribute) + // we should align the expression's closing } with the line with the opening {. - case "File": - // Print @babel/parser's InterpreterDirective here so that - // leading comments on the `Program` node get printed after the hashbang. - if (n.program && n.program.interpreter) { - parts.push(path.call(programPath => programPath.call(print, "interpreter"), "program")); - } - parts.push(path.call(print, "program")); - return concat$b(parts); + const shouldAddSoftLine = (args && args.expandLastArg || path.getParentNode().type === "JSXExpressionContainer") && !hasComment$7(node); + const printTrailingComma = args && args.expandLastArg && shouldPrintComma$5(options, "all"); // In order to avoid confusion between + // a => a ? a : a + // a <= a ? a : a - case "Program": - { - const hasContents = !n.body.every(({ - type - }) => type === "EmptyStatement") || n.comments; // Babel 6 + const shouldAddParens = node.body.type === "ConditionalExpression" && !startsWithNoLookaheadToken(node.body, + /* forbidFunctionAndClass */ + false); + return group$l([...parts, group$l([indent$g([line$i, shouldAddParens ? ifBreak$e("", "(") : "", body, shouldAddParens ? ifBreak$e("", ")") : ""]), shouldAddSoftLine ? [ifBreak$e(printTrailingComma ? "," : ""), softline$f] : ""])]); +} - if (n.directives) { - const directivesCount = n.directives.length; - path.map((childPath, index) => { - parts.push(print(childPath), semi, hardline$6); +function canPrintParamsWithoutParens(node) { + const parameters = getFunctionParameters(node); + return parameters.length === 1 && !node.typeParameters && !hasComment$7(node, CommentCheckFlags$7.Dangling) && parameters[0].type === "Identifier" && !parameters[0].typeAnnotation && !hasComment$7(parameters[0]) && !parameters[0].optional && !node.predicate && !node.returnType; +} - if ((index < directivesCount - 1 || hasContents) && isNextLineEmpty$4(options.originalText, childPath.getValue(), options.locEnd)) { - parts.push(hardline$6); - } - }, "directives"); - } +function shouldPrintParamsWithoutParens$1(path, options) { + if (options.arrowParens === "always") { + return false; + } - parts.push(path.call(bodyPath => { - return printStatementSequence(bodyPath, options, print); - }, "body")); - parts.push(comments.printDanglingComments(path, options, - /* sameIndent */ - true)); // Only force a trailing newline if there were any contents. + if (options.arrowParens === "avoid") { + const node = path.getValue(); + return canPrintParamsWithoutParens(node); + } // Fallback default; should be unreachable - if (hasContents) { - parts.push(hardline$6); - } + /* istanbul ignore next */ - return concat$b(parts); - } - // Babel extension. - case "EmptyStatement": - return ""; + return false; +} +/** @returns {Doc} */ - case "ExpressionStatement": - // Detect Flow and TypeScript directives - if (n.directive) { - return concat$b([nodeStr(n.expression, options, true), semi]); - } - if (options.parser === "__vue_event_binding") { - const parent = path.getParentNode(); +function printReturnType(path, print, options) { + const node = path.getValue(); + const returnType = print("returnType"); - if (parent.type === "Program" && parent.body.length === 1 && parent.body[0] === n) { - return concat$b([path.call(print, "expression"), isVueEventBindingExpression$1(n.expression) ? ";" : ""]); - } - } // Do not append semicolon after the only JSX element in a program + if (node.returnType && isFlowAnnotationComment(options.originalText, node.returnType)) { + return [" /*: ", returnType, " */"]; + } + const parts = [returnType]; // prepend colon to TypeScript type annotation - return concat$b([path.call(print, "expression"), isTheOnlyJSXElementInMarkdown$1(options, path) ? "" : semi]); - // Babel non-standard node. Used for Closure-style type casts. See postprocess.js. + if (node.returnType && node.returnType.typeAnnotation) { + parts.unshift(": "); + } - case "ParenthesizedExpression": - { - const shouldHug = !n.expression.comments; + if (node.predicate) { + // The return type will already add the colon, but otherwise we + // need to do it ourselves + parts.push(node.returnType ? " " : ": ", print("predicate")); + } - if (shouldHug) { - return concat$b(["(", path.call(print, "expression"), ")"]); - } + return parts; +} // `ReturnStatement` and `ThrowStatement` - return group$7(concat$b(["(", indent$8(concat$b([softline$6, path.call(print, "expression")])), softline$6, ")"])); - } - case "AssignmentExpression": - return printAssignment(n.left, path.call(print, "left"), concat$b([" ", n.operator]), n.right, path.call(print, "right"), options); +function printReturnOrThrowArgument(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + const parts = []; - case "BinaryExpression": - case "LogicalExpression": - case "NGPipeExpression": - { - const parent = path.getParentNode(); - const parentParent = path.getParentNode(1); - const isInsideParenthesis = n !== parent.body && (parent.type === "IfStatement" || parent.type === "WhileStatement" || parent.type === "SwitchStatement" || parent.type === "DoWhileStatement"); - const parts = printBinaryishExpressions(path, print, options, - /* isNested */ - false, isInsideParenthesis); // if ( - // this.hasPlugin("dynamicImports") && this.lookahead().type === tt.parenLeft - // ) { - // - // looks super weird, we want to break the children if the parent breaks - // - // if ( - // this.hasPlugin("dynamicImports") && - // this.lookahead().type === tt.parenLeft - // ) { - - if (isInsideParenthesis) { - return concat$b(parts); - } // Break between the parens in - // unaries or in a member or specific call expression, i.e. - // - // ( - // a && - // b && - // c - // ).call() + if (node.argument) { + if (returnArgumentHasLeadingComment(options, node.argument)) { + parts.push([" (", indent$g([hardline$n, print("argument")]), hardline$n, ")"]); + } else if (isBinaryish(node.argument) || node.argument.type === "SequenceExpression") { + parts.push(group$l([ifBreak$e(" (", " "), indent$g([softline$f, print("argument")]), softline$f, ifBreak$e(")")])); + } else { + parts.push(" ", print("argument")); + } + } + const comments = getComments$2(node); + const lastComment = getLast_1(comments); + const isLastCommentLine = lastComment && isLineComment$2(lastComment); - if ((parent.type === "CallExpression" || parent.type === "OptionalCallExpression") && parent.callee === n || parent.type === "UnaryExpression" || (parent.type === "MemberExpression" || parent.type === "OptionalMemberExpression") && !parent.computed) { - return group$7(concat$b([indent$8(concat$b([softline$6, concat$b(parts)])), softline$6])); - } // Avoid indenting sub-expressions in some cases where the first sub-expression is already - // indented accordingly. We should indent sub-expressions where the first case isn't indented. + if (isLastCommentLine) { + parts.push(semi); + } + if (hasComment$7(node, CommentCheckFlags$7.Dangling)) { + parts.push(" ", printDanglingComments$7(path, options, + /* sameIndent */ + true)); + } - const shouldNotIndent = parent.type === "ReturnStatement" || parent.type === "ThrowStatement" || parent.type === "JSXExpressionContainer" && parentParent.type === "JSXAttribute" || n.operator !== "|" && parent.type === "JsExpressionRoot" || n.type !== "NGPipeExpression" && (parent.type === "NGRoot" && options.parser === "__ng_binding" || parent.type === "NGMicrosyntaxExpression" && parentParent.type === "NGMicrosyntax" && parentParent.body.length === 1) || n === parent.body && parent.type === "ArrowFunctionExpression" || n !== parent.body && parent.type === "ForStatement" || parent.type === "ConditionalExpression" && parentParent.type !== "ReturnStatement" && parentParent.type !== "ThrowStatement" && parentParent.type !== "CallExpression" && parentParent.type !== "OptionalCallExpression" || parent.type === "TemplateLiteral"; - const shouldIndentIfInlining = parent.type === "AssignmentExpression" || parent.type === "VariableDeclarator" || parent.type === "ClassProperty" || parent.type === "TSAbstractClassProperty" || parent.type === "ClassPrivateProperty" || parent.type === "ObjectProperty" || parent.type === "Property"; - const samePrecedenceSubExpression = isBinaryish$1(n.left) && shouldFlatten$2(n.operator, n.left.operator); + if (!isLastCommentLine) { + parts.push(semi); + } - if (shouldNotIndent || shouldInlineLogicalExpression(n) && !samePrecedenceSubExpression || !shouldInlineLogicalExpression(n) && shouldIndentIfInlining) { - return group$7(concat$b(parts)); - } + return parts; +} - if (parts.length === 0) { - return ""; - } // If the right part is a JSX node, we include it in a separate group to - // prevent it breaking the whole chain, so we can print the expression like: - // - // foo && bar && ( - // - // - // - // ) - - - const hasJSX = isJSXNode$3(n.right); - const firstGroupIndex = parts.findIndex(part => typeof part !== "string" && part.type === "group"); // Separate the leftmost expression, possibly with its leading comments. - - const headParts = parts.slice(0, firstGroupIndex === -1 ? 1 : firstGroupIndex + 1); - const rest = concat$b(parts.slice(headParts.length, hasJSX ? -1 : undefined)); - const groupId = Symbol("logicalChain-" + ++uid); - const chain = group$7(concat$b([// Don't include the initial expression in the indentation - // level. The first item is guaranteed to be the first - // left-most expression. - ...headParts, indent$8(rest)]), { - id: groupId - }); +function printReturnStatement$1(path, options, print) { + return ["return", printReturnOrThrowArgument(path, options, print)]; +} - if (!hasJSX) { - return chain; - } +function printThrowStatement$1(path, options, print) { + return ["throw", printReturnOrThrowArgument(path, options, print)]; +} // This recurses the return argument, looking for the first token +// (the leftmost leaf node) and, if it (or its parents) has any +// leadingComments, returns true (so it can be wrapped in parens). - const jsxPart = getLast$5(parts); - return group$7(concat$b([chain, ifBreak$4(indent$8(jsxPart), jsxPart, { - groupId - })])); - } - case "AssignmentPattern": - return concat$b([path.call(print, "left"), " = ", path.call(print, "right")]); +function returnArgumentHasLeadingComment(options, argument) { + if (hasLeadingOwnLineComment(options.originalText, argument)) { + return true; + } - case "TSTypeAssertion": - { - const shouldBreakAfterCast = !(n.expression.type === "ArrayExpression" || n.expression.type === "ObjectExpression"); - const castGroup = group$7(concat$b(["<", indent$8(concat$b([softline$6, path.call(print, "typeAnnotation")])), softline$6, ">"])); - const exprContents = concat$b([ifBreak$4("("), indent$8(concat$b([softline$6, path.call(print, "expression")])), softline$6, ifBreak$4(")")]); + if (hasNakedLeftSide$1(argument)) { + let leftMost = argument; + let newLeftMost; - if (shouldBreakAfterCast) { - return conditionalGroup$3([concat$b([castGroup, path.call(print, "expression")]), concat$b([castGroup, group$7(exprContents, { - shouldBreak: true - })]), concat$b([castGroup, path.call(print, "expression")])]); - } + while (newLeftMost = getLeftSide(leftMost)) { + leftMost = newLeftMost; - return group$7(concat$b([castGroup, path.call(print, "expression")])); + if (hasLeadingOwnLineComment(options.originalText, leftMost)) { + return true; } + } + } - case "OptionalMemberExpression": - case "MemberExpression": - { - const parent = path.getParentNode(); - let firstNonMemberParent; - let i = 0; + return false; +} - do { - firstNonMemberParent = path.getParentNode(i); - i++; - } while (firstNonMemberParent && (firstNonMemberParent.type === "MemberExpression" || firstNonMemberParent.type === "OptionalMemberExpression" || firstNonMemberParent.type === "TSNonNullExpression")); +var _function = { + printFunction: printFunction$2, + printArrowFunction: printArrowFunction$1, + printMethod: printMethod$2, + printReturnStatement: printReturnStatement$1, + printThrowStatement: printThrowStatement$1, + printMethodInternal: printMethodInternal$1, + shouldPrintParamsWithoutParens: shouldPrintParamsWithoutParens$1 +}; - const shouldInline = firstNonMemberParent && (firstNonMemberParent.type === "NewExpression" || firstNonMemberParent.type === "BindExpression" || firstNonMemberParent.type === "VariableDeclarator" && firstNonMemberParent.id.type !== "Identifier" || firstNonMemberParent.type === "AssignmentExpression" && firstNonMemberParent.left.type !== "Identifier") || n.computed || n.object.type === "Identifier" && n.property.type === "Identifier" && parent.type !== "MemberExpression" && parent.type !== "OptionalMemberExpression"; - return concat$b([path.call(print, "object"), shouldInline ? printMemberLookup$2(path, options, print) : group$7(indent$8(concat$b([softline$6, printMemberLookup$2(path, options, print)])))]); - } +const { + isNonEmptyArray: isNonEmptyArray$c, + hasNewline: hasNewline$4 +} = util$5; +const { + builders: { + line: line$h, + hardline: hardline$m, + join: join$h, + breakParent: breakParent$5, + group: group$k + } +} = doc; +const { + locStart: locStart$k, + locEnd: locEnd$i +} = loc$6; +const { + getParentExportDeclaration: getParentExportDeclaration$1 +} = utils$5; - case "MetaProperty": - return concat$b([path.call(print, "meta"), ".", path.call(print, "property")]); +function printClassMemberDecorators$1(path, options, print) { + const node = path.getValue(); + return group$k([join$h(line$h, path.map(print, "decorators")), hasNewlineBetweenOrAfterDecorators(node, options) ? hardline$m : line$h]); +} - case "BindExpression": - if (n.object) { - parts.push(path.call(print, "object")); - } +function printDecoratorsBeforeExport$1(path, options, print) { + // Export declarations are responsible for printing any decorators + // that logically apply to node.declaration. + return [join$h(hardline$m, path.map(print, "declaration", "decorators")), hardline$m]; +} - parts.push(group$7(indent$8(concat$b([softline$6, printBindExpressionCallee$2(path, options, print)])))); - return concat$b(parts); +function printDecorators$1(path, options, print) { + const node = path.getValue(); + const { + decorators + } = node; - case "Identifier": - { - return concat$b([n.name, printOptionalToken$2(path), printTypeAnnotation(path, options, print)]); - } + if (!isNonEmptyArray$c(decorators) || // If the parent node is an export declaration and the decorator + // was written before the export, the export will be responsible + // for printing the decorators. + hasDecoratorsBeforeExport$1(path.getParentNode())) { + return; + } - case "V8IntrinsicIdentifier": - return concat$b(["%", n.name]); + const shouldBreak = node.type === "ClassExpression" || node.type === "ClassDeclaration" || hasNewlineBetweenOrAfterDecorators(node, options); + return [getParentExportDeclaration$1(path) ? hardline$m : shouldBreak ? breakParent$5 : "", join$h(line$h, path.map(print, "decorators")), line$h]; +} - case "SpreadElement": - case "SpreadElementPattern": - case "SpreadProperty": - case "SpreadPropertyPattern": - case "RestElement": - case "ObjectTypeSpreadProperty": - return concat$b(["...", path.call(print, "argument"), printTypeAnnotation(path, options, print)]); +function hasNewlineBetweenOrAfterDecorators(node, options) { + return node.decorators.some(decorator => hasNewline$4(options.originalText, locEnd$i(decorator))); +} - case "FunctionDeclaration": - case "FunctionExpression": - parts.push(printFunctionDeclaration(path, print, options)); +function hasDecoratorsBeforeExport$1(node) { + if (node.type !== "ExportDefaultDeclaration" && node.type !== "ExportNamedDeclaration" && node.type !== "DeclareExportDeclaration") { + return false; + } - if (!n.body) { - parts.push(semi); - } + const decorators = node.declaration && node.declaration.decorators; + return isNonEmptyArray$c(decorators) && locStart$k(node, { + ignoreDecorators: true + }) > locStart$k(decorators[0]); +} - return concat$b(parts); +var decorators = { + printDecorators: printDecorators$1, + printClassMemberDecorators: printClassMemberDecorators$1, + printDecoratorsBeforeExport: printDecoratorsBeforeExport$1, + hasDecoratorsBeforeExport: hasDecoratorsBeforeExport$1 +}; - case "ArrowFunctionExpression": - { - if (n.async) { - parts.push("async "); - } +const { + isNonEmptyArray: isNonEmptyArray$b, + createGroupIdMapper +} = util$5; +const { + printComments, + printDanglingComments: printDanglingComments$6 +} = comments$1; +const { + builders: { + join: join$g, + line: line$g, + hardline: hardline$l, + softline: softline$e, + group: group$j, + indent: indent$f, + ifBreak: ifBreak$d + } +} = doc; +const { + hasComment: hasComment$6, + CommentCheckFlags: CommentCheckFlags$6 +} = utils$5; +const { + getTypeParametersGroupId: getTypeParametersGroupId$1 +} = typeParameters; +const { + printMethod: printMethod$1 +} = _function; +const { + printOptionalToken: printOptionalToken$4, + printTypeAnnotation: printTypeAnnotation$3 +} = misc$1; +const { + printPropertyKey: printPropertyKey$2 +} = property; +const { + printAssignment +} = assignment; +const { + printClassMemberDecorators +} = decorators; - if (shouldPrintParamsWithoutParens(path, options)) { - parts.push(path.call(print, "params", 0)); - } else { - parts.push(group$7(concat$b([printFunctionParams(path, print, options, - /* expandLast */ - args && (args.expandLastArg || args.expandFirstArg), - /* printTypeParams */ - true), printReturnType(path, print, options)]))); - } +function printClass$2(path, options, print) { + const node = path.getValue(); + const parts = []; - const dangling = comments.printDanglingComments(path, options, - /* sameIndent */ - true, comment => { - const nextCharacter = getNextNonSpaceNonCommentCharacterIndex$4(options.originalText, comment, options.locEnd); - return nextCharacter !== false && options.originalText.slice(nextCharacter, nextCharacter + 2) === "=>"; - }); + if (node.declare) { + parts.push("declare "); + } - if (dangling) { - parts.push(" ", dangling); - } + if (node.abstract) { + parts.push("abstract "); + } + + parts.push("class"); // Keep old behaviour of extends in same line + // If there is only on extends and there are not comments + + const groupMode = node.id && hasComment$6(node.id, CommentCheckFlags$6.Trailing) || node.superClass && hasComment$6(node.superClass) || isNonEmptyArray$b(node.extends) || // DeclareClass + isNonEmptyArray$b(node.mixins) || isNonEmptyArray$b(node.implements); + const partsGroup = []; + const extendsParts = []; + + if (node.id) { + partsGroup.push(" ", print("id")); + } - parts.push(" =>"); - const body = path.call(bodyPath => print(bodyPath, args), "body"); // We want to always keep these types of nodes on the same line - // as the arrow. + partsGroup.push(print("typeParameters")); - if (!hasLeadingOwnLineComment$1(options.originalText, n.body, options) && (n.body.type === "ArrayExpression" || n.body.type === "ObjectExpression" || n.body.type === "BlockStatement" || isJSXNode$3(n.body) || isTemplateOnItsOwnLine$1(n.body, options.originalText, options) || n.body.type === "ArrowFunctionExpression" || n.body.type === "DoExpression")) { - return group$7(concat$b([concat$b(parts), " ", body])); - } // We handle sequence expressions as the body of arrows specially, - // so that the required parentheses end up on their own lines. + if (node.superClass) { + const printed = ["extends ", printSuperClass(path, options, print), print("superTypeParameters")]; + const printedWithComments = path.call(superClass => printComments(superClass, printed, options), "superClass"); + if (groupMode) { + extendsParts.push(line$g, group$j(printedWithComments)); + } else { + extendsParts.push(" ", printedWithComments); + } + } else { + extendsParts.push(printList(path, options, print, "extends")); + } - if (n.body.type === "SequenceExpression") { - return group$7(concat$b([concat$b(parts), group$7(concat$b([" (", indent$8(concat$b([softline$6, body])), softline$6, ")"]))])); - } // if the arrow function is expanded as last argument, we are adding a - // level of indentation and need to add a softline to align the closing ) - // with the opening (, or if it's inside a JSXExpression (e.g. an attribute) - // we should align the expression's closing } with the line with the opening {. + extendsParts.push(printList(path, options, print, "mixins"), printList(path, options, print, "implements")); + if (groupMode) { + let printedPartsGroup; - const shouldAddSoftLine = (args && args.expandLastArg || path.getParentNode().type === "JSXExpressionContainer") && !(n.comments && n.comments.length); - const printTrailingComma = args && args.expandLastArg && shouldPrintComma$3(options, "all"); // In order to avoid confusion between - // a => a ? a : a - // a <= a ? a : a + if (shouldIndentOnlyHeritageClauses(node)) { + printedPartsGroup = [...partsGroup, indent$f(extendsParts)]; + } else { + printedPartsGroup = indent$f([...partsGroup, extendsParts]); + } - const shouldAddParens = n.body.type === "ConditionalExpression" && !startsWithNoLookaheadToken$2(n.body, - /* forbidFunctionAndClass */ - false); - return group$7(concat$b([concat$b(parts), group$7(concat$b([indent$8(concat$b([line$8, shouldAddParens ? ifBreak$4("", "(") : "", body, shouldAddParens ? ifBreak$4("", ")") : ""])), shouldAddSoftLine ? concat$b([ifBreak$4(printTrailingComma ? "," : ""), softline$6]) : ""]))])); - } + parts.push(group$j(printedPartsGroup, { + id: getHeritageGroupId(node) + })); + } else { + parts.push(...partsGroup, ...extendsParts); + } - case "YieldExpression": - parts.push("yield"); + parts.push(" ", print("body")); + return parts; +} - if (n.delegate) { - parts.push("*"); - } +const getHeritageGroupId = createGroupIdMapper("heritageGroup"); - if (n.argument) { - parts.push(" ", path.call(print, "argument")); - } +function printHardlineAfterHeritage$2(node) { + return ifBreak$d(hardline$l, "", { + groupId: getHeritageGroupId(node) + }); +} - return concat$b(parts); +function hasMultipleHeritage(node) { + return ["superClass", "extends", "mixins", "implements"].filter(key => Boolean(node[key])).length > 1; +} - case "AwaitExpression": - { - parts.push("await"); +function shouldIndentOnlyHeritageClauses(node) { + return node.typeParameters && !hasComment$6(node.typeParameters, CommentCheckFlags$6.Trailing | CommentCheckFlags$6.Line) && !hasMultipleHeritage(node); +} - if (n.argument) { - parts.push(" ", path.call(print, "argument")); - } +function printList(path, options, print, listName) { + const node = path.getValue(); - const parent = path.getParentNode(); + if (!isNonEmptyArray$b(node[listName])) { + return ""; + } - if ((parent.type === "CallExpression" || parent.type === "OptionalCallExpression") && parent.callee === n || (parent.type === "MemberExpression" || parent.type === "OptionalMemberExpression") && parent.object === n) { - return group$7(concat$b([indent$8(concat$b([softline$6, concat$b(parts)])), softline$6])); - } + const printedLeadingComments = printDanglingComments$6(path, options, + /* sameIndent */ + true, ({ + marker + }) => marker === listName); + return [shouldIndentOnlyHeritageClauses(node) ? ifBreak$d(" ", line$g, { + groupId: getTypeParametersGroupId$1(node.typeParameters) + }) : line$g, printedLeadingComments, printedLeadingComments && hardline$l, listName, group$j(indent$f([line$g, join$g([",", line$g], path.map(print, listName))]))]; +} - return concat$b(parts); - } +function printSuperClass(path, options, print) { + const printed = print("superClass"); + const parent = path.getParentNode(); - case "ImportSpecifier": - if (n.importKind) { - parts.push(path.call(print, "importKind"), " "); - } + if (parent.type === "AssignmentExpression") { + return group$j(ifBreak$d(["(", indent$f([softline$e, printed]), softline$e, ")"], printed)); + } - parts.push(path.call(print, "imported")); + return printed; +} - if (n.local && n.local.name !== n.imported.name) { - parts.push(" as ", path.call(print, "local")); - } +function printClassMethod$2(path, options, print) { + const node = path.getValue(); + const parts = []; - return concat$b(parts); + if (isNonEmptyArray$b(node.decorators)) { + parts.push(printClassMemberDecorators(path, options, print)); + } - case "ExportSpecifier": - parts.push(path.call(print, "local")); + if (node.accessibility) { + parts.push(node.accessibility + " "); + } // "readonly" and "declare" are supported by only "babel-ts" + // https://github.com/prettier/prettier/issues/9760 - if (n.exported && n.exported.name !== n.local.name) { - parts.push(" as ", path.call(print, "exported")); - } - return concat$b(parts); + if (node.readonly) { + parts.push("readonly "); + } - case "ImportNamespaceSpecifier": - parts.push("* as "); - parts.push(path.call(print, "local")); - return concat$b(parts); + if (node.declare) { + parts.push("declare "); + } - case "ImportDefaultSpecifier": - return path.call(print, "local"); + if (node.static) { + parts.push("static "); + } - case "TSExportAssignment": - return concat$b(["export = ", path.call(print, "expression"), semi]); + if (node.type === "TSAbstractMethodDefinition" || node.abstract) { + parts.push("abstract "); + } - case "ExportDefaultDeclaration": - case "ExportNamedDeclaration": - return printExportDeclaration(path, options, print); + if (node.override) { + parts.push("override "); + } - case "DeclareExportDeclaration": - return concat$b(["declare ", printExportDeclaration(path, options, print)]); + parts.push(printMethod$1(path, options, print)); + return parts; +} - case "ExportAllDeclaration": - parts.push("export"); +function printClassProperty$2(path, options, print) { + const node = path.getValue(); + const parts = []; + const semi = options.semi ? ";" : ""; - if (n.exportKind === "type") { - parts.push(" type"); - } + if (isNonEmptyArray$b(node.decorators)) { + parts.push(printClassMemberDecorators(path, options, print)); + } - parts.push(" *"); + if (node.accessibility) { + parts.push(node.accessibility + " "); + } - if (n.exported) { - parts.push(" as ", path.call(print, "exported")); - } + if (node.declare) { + parts.push("declare "); + } - parts.push(printModuleSource$1(path, options, print), semi); - return concat$b(parts); + if (node.static) { + parts.push("static "); + } - case "ExportNamespaceSpecifier": - return concat$b(["* as ", path.call(print, "exported")]); + if (node.type === "TSAbstractClassProperty" || node.abstract) { + parts.push("abstract "); + } - case "ExportDefaultSpecifier": - return path.call(print, "exported"); + if (node.override) { + parts.push("override "); + } - case "ImportDeclaration": - { - parts.push("import"); + if (node.readonly) { + parts.push("readonly "); + } - if (n.importKind && n.importKind !== "value") { - parts.push(" ", n.importKind); - } + if (node.variance) { + parts.push(print("variance")); + } - if (n.specifiers && n.specifiers.length > 0) { - parts.push(printModuleSpecifiers$1(path, options, print)); - parts.push(printModuleSource$1(path, options, print)); - } else if (n.importKind && n.importKind === "type" || // import {} from 'x' - /{\s*}/.test(options.originalText.slice(options.locStart(n), options.locStart(n.source)))) { - parts.push(" {}", printModuleSource$1(path, options, print)); - } else { - parts.push(" ", path.call(print, "source")); - } + parts.push(printPropertyKey$2(path, options, print), printOptionalToken$4(path), printTypeAnnotation$3(path, options, print)); + return [printAssignment(path, options, print, parts, " =", "value"), semi]; +} - if (Array.isArray(n.attributes) && n.attributes.length !== 0) { - parts.push(" with ", concat$b(path.map(print, "attributes"))); - } +var _class = { + printClass: printClass$2, + printClassMethod: printClassMethod$2, + printClassProperty: printClassProperty$2, + printHardlineAfterHeritage: printHardlineAfterHeritage$2 +}; - parts.push(semi); - return concat$b(parts); - } +const { + isNonEmptyArray: isNonEmptyArray$a +} = util$5; +const { + builders: { + join: join$f, + line: line$f, + group: group$i, + indent: indent$e, + ifBreak: ifBreak$c + } +} = doc; +const { + hasComment: hasComment$5, + identity, + CommentCheckFlags: CommentCheckFlags$5 +} = utils$5; +const { + getTypeParametersGroupId +} = typeParameters; +const { + printTypeScriptModifiers: printTypeScriptModifiers$1 +} = misc$1; - case "ImportAttribute": - return concat$b([path.call(print, "key"), ": ", path.call(print, "value")]); +function printInterface$2(path, options, print) { + const node = path.getValue(); + const parts = []; - case "Import": - return "import"; + if (node.declare) { + parts.push("declare "); + } - case "TSModuleBlock": - case "BlockStatement": - { - const naked = path.call(bodyPath => { - return printStatementSequence(bodyPath, options, print); - }, "body"); - const hasContent = n.body.some(node => node.type !== "EmptyStatement"); - const hasDirectives = n.directives && n.directives.length > 0; - const parent = path.getParentNode(); - const parentParent = path.getParentNode(1); + if (node.type === "TSInterfaceDeclaration") { + parts.push(node.abstract ? "abstract " : "", printTypeScriptModifiers$1(path, options, print)); + } - if (!hasContent && !hasDirectives && !hasDanglingComments$1(n) && (parent.type === "ArrowFunctionExpression" || parent.type === "FunctionExpression" || parent.type === "FunctionDeclaration" || parent.type === "ObjectMethod" || parent.type === "ClassMethod" || parent.type === "ClassPrivateMethod" || parent.type === "ForStatement" || parent.type === "WhileStatement" || parent.type === "DoWhileStatement" || parent.type === "DoExpression" || parent.type === "CatchClause" && !parentParent.finalizer || parent.type === "TSModuleDeclaration")) { - return "{}"; - } + parts.push("interface"); + const partsGroup = []; + const extendsParts = []; - parts.push("{"); // Babel 6 + if (node.type !== "InterfaceTypeAnnotation") { + partsGroup.push(" ", print("id"), print("typeParameters")); + } - if (hasDirectives) { - path.each(childPath => { - parts.push(indent$8(concat$b([hardline$6, print(childPath), semi]))); + const shouldIndentOnlyHeritageClauses = node.typeParameters && !hasComment$5(node.typeParameters, CommentCheckFlags$5.Trailing | CommentCheckFlags$5.Line); - if (isNextLineEmpty$4(options.originalText, childPath.getValue(), options.locEnd)) { - parts.push(hardline$6); - } - }, "directives"); - } + if (isNonEmptyArray$a(node.extends)) { + extendsParts.push(shouldIndentOnlyHeritageClauses ? ifBreak$c(" ", line$f, { + groupId: getTypeParametersGroupId(node.typeParameters) + }) : line$f, "extends ", (node.extends.length === 1 ? identity : indent$e)(join$f([",", line$f], path.map(print, "extends")))); + } - if (hasContent) { - parts.push(indent$8(concat$b([hardline$6, naked]))); - } + if (node.id && hasComment$5(node.id, CommentCheckFlags$5.Trailing) || isNonEmptyArray$a(node.extends)) { + if (shouldIndentOnlyHeritageClauses) { + parts.push(group$i([...partsGroup, indent$e(extendsParts)])); + } else { + parts.push(group$i(indent$e([...partsGroup, ...extendsParts]))); + } + } else { + parts.push(...partsGroup, ...extendsParts); + } - parts.push(comments.printDanglingComments(path, options)); - parts.push(hardline$6, "}"); - return concat$b(parts); - } + parts.push(" ", print("body")); + return group$i(parts); +} - case "ReturnStatement": - return concat$b(["return", printReturnAndThrowArgument(path, options, print)]); +var _interface = { + printInterface: printInterface$2 +}; - case "NewExpression": - case "ImportExpression": - case "OptionalCallExpression": - case "CallExpression": - { - const isNew = n.type === "NewExpression"; - const isDynamicImport = n.type === "ImportExpression"; - const optional = printOptionalToken$2(path); - const args = isDynamicImport ? [n.source] : n.arguments; - - if ( // We want to keep CommonJS- and AMD-style require calls, and AMD-style - // define calls, as a unit. - // e.g. `define(["some/lib", (lib) => {` - !isDynamicImport && !isNew && n.callee.type === "Identifier" && (n.callee.name === "require" || n.callee.name === "define") || // Template literals as single arguments - args.length === 1 && isTemplateOnItsOwnLine$1(args[0], options.originalText, options) || // Keep test declarations on a single line - // e.g. `it('long name', () => {` - !isNew && isTestCall$1(n, path.getParentNode())) { - return concat$b([isNew ? "new " : "", path.call(print, "callee"), optional, printFunctionTypeParameters$2(path, options, print), concat$b(["(", isDynamicImport ? path.call(print, "source") : join$6(", ", path.map(print, "arguments")), ")"])]); - } // Inline Flow annotation comments following Identifiers in Call nodes need to - // stay with the Identifier. For example: - // - // foo /*:: */(bar); - // - // Here, we ensure that such comments stay between the Identifier and the Callee. +const { + isNonEmptyArray: isNonEmptyArray$9 +} = util$5; +const { + builders: { + softline: softline$d, + group: group$h, + indent: indent$d, + join: join$e, + line: line$e, + ifBreak: ifBreak$b, + hardline: hardline$k + } +} = doc; +const { + printDanglingComments: printDanglingComments$5 +} = comments$1; +const { + hasComment: hasComment$4, + CommentCheckFlags: CommentCheckFlags$4, + shouldPrintComma: shouldPrintComma$4, + needsHardlineAfterDanglingComment: needsHardlineAfterDanglingComment$1 +} = utils$5; +const { + locStart: locStart$j, + hasSameLoc +} = loc$6; +const { + hasDecoratorsBeforeExport, + printDecoratorsBeforeExport +} = decorators; +/** + * @typedef {import("../../document").Doc} Doc + */ +function printImportDeclaration$1(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + /** @type{Doc[]} */ - const isIdentifierWithFlowAnnotation = n.callee && n.callee.type === "Identifier" && hasFlowAnnotationComment$1(n.callee.trailingComments); + const parts = []; + const { + importKind + } = node; + parts.push("import"); - if (isIdentifierWithFlowAnnotation) { - n.callee.trailingComments[0].printed = true; - } // We detect calls on member lookups and possibly print them in a - // special chain format. See `printMemberChain` for more info. + if (importKind && importKind !== "value") { + parts.push(" ", importKind); + } + parts.push(printModuleSpecifiers(path, options, print), printModuleSource(path, options, print), printImportAssertions(path, options, print), semi); + return parts; +} - if (!isDynamicImport && !isNew && isMemberish$2(n.callee) && !path.call(path => needsParens_1(path, options), "callee")) { - return memberChain(path, options, print); - } +function printExportDeclaration$2(path, options, print) { + const node = path.getValue(); + /** @type{Doc[]} */ - const contents = concat$b([isNew ? "new " : "", isDynamicImport ? "import" : path.call(print, "callee"), optional, isIdentifierWithFlowAnnotation ? `/*:: ${n.callee.trailingComments[0].value.slice(2).trim()} */` : "", printFunctionTypeParameters$2(path, options, print), callArguments(path, options, print)]); // We group here when the callee is itself a call expression. - // See `isLongCurriedCallExpression` for more info. + const parts = []; // Only print decorators here if they were written before the export, + // otherwise they are printed by the node.declaration - if (isDynamicImport || isCallOrOptionalCallExpression$2(n.callee)) { - return group$7(contents); - } + if (hasDecoratorsBeforeExport(node)) { + parts.push(printDecoratorsBeforeExport(path, options, print)); + } - return contents; - } + const { + type, + exportKind, + declaration + } = node; + parts.push("export"); + const isDefaultExport = node.default || type === "ExportDefaultDeclaration"; - case "ObjectTypeInternalSlot": - return concat$b([n.static ? "static " : "", "[[", path.call(print, "id"), "]]", printOptionalToken$2(path), n.method ? "" : ": ", path.call(print, "value")]); + if (isDefaultExport) { + parts.push(" default"); + } - case "ObjectExpression": - case "ObjectPattern": - case "ObjectTypeAnnotation": - case "TSInterfaceBody": - case "TSTypeLiteral": - case "RecordExpression": - { - let propertiesField; + if (hasComment$4(node, CommentCheckFlags$4.Dangling)) { + parts.push(" ", printDanglingComments$5(path, options, + /* sameIndent */ + true)); - if (n.type === "TSTypeLiteral") { - propertiesField = "members"; - } else if (n.type === "TSInterfaceBody") { - propertiesField = "body"; - } else { - propertiesField = "properties"; - } + if (needsHardlineAfterDanglingComment$1(node)) { + parts.push(hardline$k); + } + } - const isTypeAnnotation = n.type === "ObjectTypeAnnotation"; - const fields = []; + if (declaration) { + parts.push(" ", print("declaration")); + } else { + parts.push(exportKind === "type" ? " type" : "", printModuleSpecifiers(path, options, print), printModuleSource(path, options, print), printImportAssertions(path, options, print)); + } - if (isTypeAnnotation) { - fields.push("indexers", "callProperties", "internalSlots"); - } + if (shouldExportDeclarationPrintSemi(node, options)) { + parts.push(";"); + } - fields.push(propertiesField); - const firstProperty = fields.map(field => n[field][0]).sort((a, b) => options.locStart(a) - options.locStart(b))[0]; - const parent = path.getParentNode(0); - const isFlowInterfaceLikeBody = isTypeAnnotation && parent && (parent.type === "InterfaceDeclaration" || parent.type === "DeclareInterface" || parent.type === "DeclareClass") && path.getName() === "body"; - const shouldBreak = n.type === "TSInterfaceBody" || isFlowInterfaceLikeBody || n.type === "ObjectPattern" && parent.type !== "FunctionDeclaration" && parent.type !== "FunctionExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "ObjectMethod" && parent.type !== "ClassMethod" && parent.type !== "ClassPrivateMethod" && parent.type !== "AssignmentPattern" && parent.type !== "CatchClause" && n.properties.some(property => property.value && (property.value.type === "ObjectPattern" || property.value.type === "ArrayPattern")) || n.type !== "ObjectPattern" && firstProperty && hasNewlineInRange$5(options.originalText, options.locStart(n), options.locStart(firstProperty)); - const separator = isFlowInterfaceLikeBody ? ";" : n.type === "TSInterfaceBody" || n.type === "TSTypeLiteral" ? ifBreak$4(semi, ";") : ","; - const leftBrace = n.type === "RecordExpression" ? "#{" : n.exact ? "{|" : "{"; - const rightBrace = n.exact ? "|}" : "}"; // Unfortunately, things are grouped together in the ast can be - // interleaved in the source code. So we need to reorder them before - // printing them. - - const propsAndLoc = []; - fields.forEach(field => { - path.each(childPath => { - const node = childPath.getValue(); - propsAndLoc.push({ - node, - printed: print(childPath), - loc: options.locStart(node) - }); - }, field); - }); - let separatorParts = []; - const props = propsAndLoc.sort((a, b) => a.loc - b.loc).map(prop => { - const result = concat$b(separatorParts.concat(group$7(prop.printed))); - separatorParts = [separator, line$8]; + return parts; +} - if ((prop.node.type === "TSPropertySignature" || prop.node.type === "TSMethodSignature" || prop.node.type === "TSConstructSignatureDeclaration") && hasNodeIgnoreComment$2(prop.node)) { - separatorParts.shift(); - } +function printExportAllDeclaration$2(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + /** @type{Doc[]} */ - if (isNextLineEmpty$4(options.originalText, prop.node, options.locEnd)) { - separatorParts.push(hardline$6); - } + const parts = []; + const { + exportKind, + exported + } = node; + parts.push("export"); - return result; - }); + if (exportKind === "type") { + parts.push(" type"); + } - if (n.inexact) { - let printed; + parts.push(" *"); - if (hasDanglingComments$1(n)) { - const hasLineComments = !n.comments.every(comments$1.isBlockComment); - const printedDanglingComments = comments.printDanglingComments(path, options, - /* sameIndent */ - true); - printed = concat$b([printedDanglingComments, hasLineComments || hasNewline$5(options.originalText, options.locEnd(n.comments[n.comments.length - 1])) ? hardline$6 : line$8, "..."]); - } else { - printed = "..."; - } + if (exported) { + parts.push(" as ", print("exported")); + } - props.push(concat$b(separatorParts.concat(printed))); - } + parts.push(printModuleSource(path, options, print), printImportAssertions(path, options, print), semi); + return parts; +} - const lastElem = getLast$5(n[propertiesField]); - const canHaveTrailingSeparator = !(n.inexact || lastElem && lastElem.type === "RestElement"); - let content; +function shouldExportDeclarationPrintSemi(node, options) { + if (!options.semi) { + return false; + } - if (props.length === 0) { - if (!hasDanglingComments$1(n)) { - return concat$b([leftBrace, rightBrace, printTypeAnnotation(path, options, print)]); - } + const { + type, + declaration + } = node; + const isDefaultExport = node.default || type === "ExportDefaultDeclaration"; - content = group$7(concat$b([leftBrace, comments.printDanglingComments(path, options), softline$6, rightBrace, printOptionalToken$2(path), printTypeAnnotation(path, options, print)])); - } else { - content = concat$b([leftBrace, indent$8(concat$b([options.bracketSpacing ? line$8 : softline$6, concat$b(props)])), ifBreak$4(canHaveTrailingSeparator && (separator !== "," || shouldPrintComma$3(options)) ? separator : ""), concat$b([options.bracketSpacing ? line$8 : softline$6, rightBrace]), printOptionalToken$2(path), printTypeAnnotation(path, options, print)]); - } // If we inline the object as first argument of the parent, we don't want - // to create another group so that the object breaks before the return - // type + if (!declaration) { + return true; + } + const { + type: declarationType + } = declaration; - if (path.match(node => node.type === "ObjectPattern" && !node.decorators, (node, name, number) => shouldHugArguments(node) && (name === "params" || name === "parameters") && number === 0) || path.match(shouldHugType, (node, name) => name === "typeAnnotation", (node, name) => name === "typeAnnotation", (node, name, number) => shouldHugArguments(node) && (name === "params" || name === "parameters") && number === 0)) { - return content; - } + if (isDefaultExport && declarationType !== "ClassDeclaration" && declarationType !== "FunctionDeclaration" && declarationType !== "TSInterfaceDeclaration" && declarationType !== "DeclareClass" && declarationType !== "DeclareFunction" && declarationType !== "TSDeclareFunction" && declarationType !== "EnumDeclaration") { + return true; + } - return group$7(content, { - shouldBreak - }); - } - // Babel 6 + return false; +} - case "ObjectProperty": // Non-standard AST node type. +function printModuleSource(path, options, print) { + const node = path.getValue(); - case "Property": - if (n.method || n.kind === "get" || n.kind === "set") { - return printMethod(path, options, print); - } + if (!node.source) { + return ""; + } + /** @type{Doc[]} */ - if (n.shorthand) { - parts.push(path.call(print, "value")); - } else { - parts.push(printAssignment(n.key, printPropertyKey(path, options, print), ":", n.value, path.call(print, "value"), options)); - } - return concat$b(parts); - // Babel 6 + const parts = []; - case "ClassMethod": - case "ClassPrivateMethod": - case "MethodDefinition": - case "TSAbstractMethodDefinition": - case "TSDeclareMethod": - if (n.decorators && n.decorators.length !== 0) { - parts.push(printDecorators(path, options, print)); - } + if (!shouldNotPrintSpecifiers(node, options)) { + parts.push(" from"); + } + + parts.push(" ", print("source")); + return parts; +} + +function printModuleSpecifiers(path, options, print) { + const node = path.getValue(); + + if (shouldNotPrintSpecifiers(node, options)) { + return ""; + } + /** @type{Doc[]} */ - if (n.accessibility) { - parts.push(n.accessibility + " "); - } - if (n.static) { - parts.push("static "); - } + const parts = [" "]; - if (n.type === "TSAbstractMethodDefinition" || n.abstract) { - parts.push("abstract "); - } + if (isNonEmptyArray$9(node.specifiers)) { + const standaloneSpecifiers = []; + const groupedSpecifiers = []; + path.each(() => { + const specifierType = path.getValue().type; - parts.push(printMethod(path, options, print)); - return concat$b(parts); + if (specifierType === "ExportNamespaceSpecifier" || specifierType === "ExportDefaultSpecifier" || specifierType === "ImportNamespaceSpecifier" || specifierType === "ImportDefaultSpecifier") { + standaloneSpecifiers.push(print()); + } else if (specifierType === "ExportSpecifier" || specifierType === "ImportSpecifier") { + groupedSpecifiers.push(print()); + } else { + /* istanbul ignore next */ + throw new Error(`Unknown specifier type ${JSON.stringify(specifierType)}`); + } + }, "specifiers"); + parts.push(join$e(", ", standaloneSpecifiers)); - case "ObjectMethod": - return printMethod(path, options, print); + if (groupedSpecifiers.length > 0) { + if (standaloneSpecifiers.length > 0) { + parts.push(", "); + } - case "Decorator": - return concat$b(["@", path.call(print, "expression"), path.call(print, "callee")]); + const canBreak = groupedSpecifiers.length > 1 || standaloneSpecifiers.length > 0 || node.specifiers.some(node => hasComment$4(node)); - case "ArrayExpression": - case "ArrayPattern": - case "TupleExpression": - { - const openBracket = n.type === "TupleExpression" ? "#[" : "["; - const closeBracket = "]"; + if (canBreak) { + parts.push(group$h(["{", indent$d([options.bracketSpacing ? line$e : softline$d, join$e([",", line$e], groupedSpecifiers)]), ifBreak$b(shouldPrintComma$4(options) ? "," : ""), options.bracketSpacing ? line$e : softline$d, "}"])); + } else { + parts.push(["{", options.bracketSpacing ? " " : "", ...groupedSpecifiers, options.bracketSpacing ? " " : "", "}"]); + } + } + } else { + parts.push("{}"); + } - if (n.elements.length === 0) { - if (!hasDanglingComments$1(n)) { - parts.push(openBracket, closeBracket); - } else { - parts.push(group$7(concat$b([openBracket, comments.printDanglingComments(path, options), softline$6, closeBracket]))); - } - } else { - const lastElem = getLast$5(n.elements); - const canHaveTrailingComma = !(lastElem && lastElem.type === "RestElement"); // JavaScript allows you to have empty elements in an array which - // changes its length based on the number of commas. The algorithm - // is that if the last argument is null, we need to force insert - // a comma to ensure JavaScript recognizes it. - // [,].length === 1 - // [1,].length === 1 - // [1,,].length === 2 - // - // Note that getLast returns null if the array is empty, but - // we already check for an empty array just above so we are safe - - const needsForcedTrailingComma = canHaveTrailingComma && lastElem === null; - const shouldBreak = !options.__inJestEach && n.elements.length > 1 && n.elements.every((element, i, elements) => { - const elementType = element && element.type; - - if (elementType !== "ArrayExpression" && elementType !== "ObjectExpression") { - return false; - } + return parts; +} - const nextElement = elements[i + 1]; +function shouldNotPrintSpecifiers(node, options) { + const { + type, + importKind, + source, + specifiers + } = node; - if (nextElement && elementType !== nextElement.type) { - return false; - } + if (type !== "ImportDeclaration" || isNonEmptyArray$9(specifiers) || importKind === "type") { + return false; + } // TODO: check tokens - const itemsKey = elementType === "ArrayExpression" ? "elements" : "properties"; - return element[itemsKey] && element[itemsKey].length > 1; - }); - parts.push(group$7(concat$b([openBracket, indent$8(concat$b([softline$6, printArrayItems(path, options, "elements", print)])), needsForcedTrailingComma ? "," : "", ifBreak$4(canHaveTrailingComma && !needsForcedTrailingComma && shouldPrintComma$3(options) ? "," : ""), comments.printDanglingComments(path, options, - /* sameIndent */ - true), softline$6, closeBracket]), { - shouldBreak - })); - } - parts.push(printOptionalToken$2(path), printTypeAnnotation(path, options, print)); - return concat$b(parts); - } + return !/{\s*}/.test(options.originalText.slice(locStart$j(node), locStart$j(source))); +} - case "SequenceExpression": - { - const parent = path.getParentNode(0); +function printImportAssertions(path, options, print) { + const node = path.getNode(); - if (parent.type === "ExpressionStatement" || parent.type === "ForStatement") { - // For ExpressionStatements and for-loop heads, which are among - // the few places a SequenceExpression appears unparenthesized, we want - // to indent expressions after the first. - const parts = []; - path.each(p => { - if (p.getName() === 0) { - parts.push(print(p)); - } else { - parts.push(",", indent$8(concat$b([line$8, print(p)]))); - } - }, "expressions"); - return group$7(concat$b(parts)); - } + if (isNonEmptyArray$9(node.assertions)) { + return [" assert {", options.bracketSpacing ? " " : "", join$e(", ", path.map(print, "assertions")), options.bracketSpacing ? " " : "", "}"]; + } - return group$7(concat$b([join$6(concat$b([",", line$8]), path.map(print, "expressions"))])); - } + return ""; +} - case "ThisExpression": - return "this"; +function printModuleSpecifier$1(path, options, print) { + const node = path.getNode(); + const { + type, + importKind + } = node; + /** @type{Doc[]} */ - case "Super": - return "super"; + const parts = []; - case "NullLiteral": - // Babel 6 Literal split - return "null"; + if (type === "ImportSpecifier" && importKind) { + parts.push(importKind, " "); + } - case "RegExpLiteral": - // Babel 6 Literal split - return printRegex(n); + const isImport = type.startsWith("Import"); + const leftSideProperty = isImport ? "imported" : "local"; + const rightSideProperty = isImport ? "local" : "exported"; + let left = ""; + let right = ""; - case "NumericLiteral": - // Babel 6 Literal split - return printNumber$1(n.extra.raw); + if (type === "ExportNamespaceSpecifier" || type === "ImportNamespaceSpecifier") { + left = "*"; + } else if (node[leftSideProperty]) { + left = print(leftSideProperty); + } - case "DecimalLiteral": - return printNumber$1(n.value) + "m"; + if (node[rightSideProperty] && (!node[leftSideProperty] || // import {a as a} from '.' + !hasSameLoc(node[leftSideProperty], node[rightSideProperty]))) { + right = print(rightSideProperty); + } - case "BigIntLiteral": - // babel: n.extra.raw, flow: n.bigint - return (n.bigint || n.extra.raw).toLowerCase(); + parts.push(left, left && right ? " as " : "", right); + return parts; +} - case "BooleanLiteral": // Babel 6 Literal split +var module$1 = { + printImportDeclaration: printImportDeclaration$1, + printExportDeclaration: printExportDeclaration$2, + printExportAllDeclaration: printExportAllDeclaration$2, + printModuleSpecifier: printModuleSpecifier$1 +}; - case "StringLiteral": // Babel 6 Literal split +const { + printDanglingComments: printDanglingComments$4 +} = comments$1; +const { + builders: { + line: line$d, + softline: softline$c, + group: group$g, + indent: indent$c, + ifBreak: ifBreak$a, + hardline: hardline$j + } +} = doc; +const { + getLast: getLast$5, + hasNewlineInRange: hasNewlineInRange$2, + hasNewline: hasNewline$3, + isNonEmptyArray: isNonEmptyArray$8 +} = util$5; +const { + shouldPrintComma: shouldPrintComma$3, + hasComment: hasComment$3, + getComments: getComments$1, + CommentCheckFlags: CommentCheckFlags$3, + isNextLineEmpty: isNextLineEmpty$7 +} = utils$5; +const { + locStart: locStart$i, + locEnd: locEnd$h +} = loc$6; +const { + printOptionalToken: printOptionalToken$3, + printTypeAnnotation: printTypeAnnotation$2 +} = misc$1; +const { + shouldHugFunctionParameters +} = functionParameters; +const { + shouldHugType +} = typeAnnotation; +const { + printHardlineAfterHeritage: printHardlineAfterHeritage$1 +} = _class; +/** @typedef {import("../../document").Doc} Doc */ - case "Literal": - if (n.regex) { - return printRegex(n.regex); - } // typescript +function printObject$3(path, options, print) { + const semi = options.semi ? ";" : ""; + const node = path.getValue(); + let propertiesField; + if (node.type === "TSTypeLiteral") { + propertiesField = "members"; + } else if (node.type === "TSInterfaceBody") { + propertiesField = "body"; + } else { + propertiesField = "properties"; + } - if (n.bigint) { - return n.raw.toLowerCase(); - } + const isTypeAnnotation = node.type === "ObjectTypeAnnotation"; + const fields = [propertiesField]; - if (typeof n.value === "number") { - return printNumber$1(n.raw); - } + if (isTypeAnnotation) { + fields.push("indexers", "callProperties", "internalSlots"); + } - if (typeof n.value !== "string") { - return "" + n.value; - } + const firstProperty = fields.map(field => node[field][0]).sort((a, b) => locStart$i(a) - locStart$i(b))[0]; + const parent = path.getParentNode(0); + const isFlowInterfaceLikeBody = isTypeAnnotation && parent && (parent.type === "InterfaceDeclaration" || parent.type === "DeclareInterface" || parent.type === "DeclareClass") && path.getName() === "body"; + const shouldBreak = node.type === "TSInterfaceBody" || isFlowInterfaceLikeBody || node.type === "ObjectPattern" && parent.type !== "FunctionDeclaration" && parent.type !== "FunctionExpression" && parent.type !== "ArrowFunctionExpression" && parent.type !== "ObjectMethod" && parent.type !== "ClassMethod" && parent.type !== "ClassPrivateMethod" && parent.type !== "AssignmentPattern" && parent.type !== "CatchClause" && node.properties.some(property => property.value && (property.value.type === "ObjectPattern" || property.value.type === "ArrayPattern")) || node.type !== "ObjectPattern" && firstProperty && hasNewlineInRange$2(options.originalText, locStart$i(node), locStart$i(firstProperty)); + const separator = isFlowInterfaceLikeBody ? ";" : node.type === "TSInterfaceBody" || node.type === "TSTypeLiteral" ? ifBreak$a(semi, ";") : ","; + const leftBrace = node.type === "RecordExpression" ? "#{" : node.exact ? "{|" : "{"; + const rightBrace = node.exact ? "|}" : "}"; // Unfortunately, things are grouped together in the ast can be + // interleaved in the source code. So we need to reorder them before + // printing them. - return nodeStr(n, options); + const propsAndLoc = []; - case "Directive": - return path.call(print, "value"); - // Babel 6 + for (const field of fields) { + path.each(childPath => { + const node = childPath.getValue(); + propsAndLoc.push({ + node, + printed: print(), + loc: locStart$i(node) + }); + }, field); + } - case "DirectiveLiteral": - return nodeStr(n, options); + if (fields.length > 1) { + propsAndLoc.sort((a, b) => a.loc - b.loc); + } + /** @type {Doc[]} */ - case "UnaryExpression": - parts.push(n.operator); - if (/[a-z]$/.test(n.operator)) { - parts.push(" "); - } + let separatorParts = []; + const props = propsAndLoc.map(prop => { + const result = [...separatorParts, group$g(prop.printed)]; + separatorParts = [separator, line$d]; - if (n.argument.comments && n.argument.comments.length > 0) { - parts.push(group$7(concat$b(["(", indent$8(concat$b([softline$6, path.call(print, "argument")])), softline$6, ")"]))); - } else { - parts.push(path.call(print, "argument")); - } + if ((prop.node.type === "TSPropertySignature" || prop.node.type === "TSMethodSignature" || prop.node.type === "TSConstructSignatureDeclaration") && hasComment$3(prop.node, CommentCheckFlags$3.PrettierIgnore)) { + separatorParts.shift(); + } - return concat$b(parts); + if (isNextLineEmpty$7(prop.node, options)) { + separatorParts.push(hardline$j); + } - case "UpdateExpression": - parts.push(path.call(print, "argument"), n.operator); + return result; + }); - if (n.prefix) { - parts.reverse(); - } + if (node.inexact) { + let printed; - return concat$b(parts); + if (hasComment$3(node, CommentCheckFlags$3.Dangling)) { + const hasLineComments = hasComment$3(node, CommentCheckFlags$3.Line); + const printedDanglingComments = printDanglingComments$4(path, options, + /* sameIndent */ + true); + printed = [printedDanglingComments, hasLineComments || hasNewline$3(options.originalText, locEnd$h(getLast$5(getComments$1(node)))) ? hardline$j : line$d, "..."]; + } else { + printed = ["..."]; + } - case "ConditionalExpression": - return ternary(path, options, print, { - beforeParts: () => [path.call(print, "test")], - afterParts: breakClosingParen => [breakClosingParen ? softline$6 : ""], - shouldCheckJsx: true, - conditionalNodeType: "ConditionalExpression", - consequentNodePropertyName: "consequent", - alternateNodePropertyName: "alternate", - testNodePropertyNames: ["test"] - }); + props.push([...separatorParts, ...printed]); + } - case "VariableDeclaration": - { - const printed = path.map(childPath => { - return print(childPath); - }, "declarations"); // We generally want to terminate all variable declarations with a - // semicolon, except when they in the () part of for loops. + const lastElem = getLast$5(node[propertiesField]); + const canHaveTrailingSeparator = !(node.inexact || lastElem && lastElem.type === "RestElement" || lastElem && (lastElem.type === "TSPropertySignature" || lastElem.type === "TSCallSignatureDeclaration" || lastElem.type === "TSMethodSignature" || lastElem.type === "TSConstructSignatureDeclaration") && hasComment$3(lastElem, CommentCheckFlags$3.PrettierIgnore)); + let content; - const parentNode = path.getParentNode(); - const isParentForLoop = parentNode.type === "ForStatement" || parentNode.type === "ForInStatement" || parentNode.type === "ForOfStatement"; - const hasValue = n.declarations.some(decl => decl.init); - let firstVariable; + if (props.length === 0) { + if (!hasComment$3(node, CommentCheckFlags$3.Dangling)) { + return [leftBrace, rightBrace, printTypeAnnotation$2(path, options, print)]; + } - if (printed.length === 1 && !n.declarations[0].comments) { - firstVariable = printed[0]; - } else if (printed.length > 0) { - // Indent first var to comply with eslint one-var rule - firstVariable = indent$8(printed[0]); - } + content = group$g([leftBrace, printDanglingComments$4(path, options), softline$c, rightBrace, printOptionalToken$3(path), printTypeAnnotation$2(path, options, print)]); + } else { + content = [isFlowInterfaceLikeBody && isNonEmptyArray$8(node.properties) ? printHardlineAfterHeritage$1(parent) : "", leftBrace, indent$c([options.bracketSpacing ? line$d : softline$c, ...props]), ifBreak$a(canHaveTrailingSeparator && (separator !== "," || shouldPrintComma$3(options)) ? separator : ""), options.bracketSpacing ? line$d : softline$c, rightBrace, printOptionalToken$3(path), printTypeAnnotation$2(path, options, print)]; + } // If we inline the object as first argument of the parent, we don't want + // to create another group so that the object breaks before the return + // type - parts = [n.declare ? "declare " : "", n.kind, firstVariable ? concat$b([" ", firstVariable]) : "", indent$8(concat$b(printed.slice(1).map(p => concat$b([",", hasValue && !isParentForLoop ? hardline$6 : line$8, p]))))]; - if (!(isParentForLoop && parentNode.body !== n)) { - parts.push(semi); - } + if (path.match(node => node.type === "ObjectPattern" && !node.decorators, (node, name, number) => shouldHugFunctionParameters(node) && (name === "params" || name === "parameters" || name === "this" || name === "rest") && number === 0) || path.match(shouldHugType, (node, name) => name === "typeAnnotation", (node, name) => name === "typeAnnotation", (node, name, number) => shouldHugFunctionParameters(node) && (name === "params" || name === "parameters" || name === "this" || name === "rest") && number === 0) || // Assignment printing logic (printAssignment) is responsible + // for adding a group if needed + !shouldBreak && path.match(node => node.type === "ObjectPattern", node => node.type === "AssignmentExpression" || node.type === "VariableDeclarator")) { + return content; + } - return group$7(concat$b(parts)); - } + return group$g(content, { + shouldBreak + }); +} - case "TSTypeAliasDeclaration": - { - if (n.declare) { - parts.push("declare "); - } +var object$1 = { + printObject: printObject$3 +}; - const printed = printAssignmentRight(n.id, n.typeAnnotation, n.typeAnnotation && path.call(print, "typeAnnotation"), options); - parts.push("type ", path.call(print, "id"), path.call(print, "typeParameters"), " =", printed, semi); - return group$7(concat$b(parts)); - } +/** @typedef {import("../../document").Doc} Doc */ - case "VariableDeclarator": - return printAssignment(n.id, path.call(print, "id"), " =", n.init, n.init && path.call(print, "init"), options); - case "WithStatement": - return group$7(concat$b(["with (", path.call(print, "object"), ")", adjustClause(n.body, path.call(print, "body"))])); +const { + printDanglingComments: printDanglingComments$3 +} = comments$1; +const { + printString: printString$2, + printNumber: printNumber$2 +} = util$5; +const { + builders: { + hardline: hardline$i, + softline: softline$b, + group: group$f, + indent: indent$b + } +} = doc; +const { + getParentExportDeclaration, + isFunctionNotation, + isGetterOrSetter, + rawText: rawText$1, + shouldPrintComma: shouldPrintComma$2 +} = utils$5; +const { + locStart: locStart$h, + locEnd: locEnd$g +} = loc$6; +const { + printClass: printClass$1 +} = _class; +const { + printOpaqueType, + printTypeAlias: printTypeAlias$1, + printIntersectionType: printIntersectionType$1, + printUnionType: printUnionType$1, + printFunctionType: printFunctionType$1, + printTupleType: printTupleType$1, + printIndexedAccessType: printIndexedAccessType$1 +} = typeAnnotation; +const { + printInterface: printInterface$1 +} = _interface; +const { + printTypeParameter: printTypeParameter$1, + printTypeParameters: printTypeParameters$1 +} = typeParameters; +const { + printExportDeclaration: printExportDeclaration$1, + printExportAllDeclaration: printExportAllDeclaration$1 +} = module$1; +const { + printArrayItems: printArrayItems$1 +} = array; +const { + printObject: printObject$2 +} = object$1; +const { + printPropertyKey: printPropertyKey$1 +} = property; +const { + printOptionalToken: printOptionalToken$2, + printTypeAnnotation: printTypeAnnotation$1, + printRestSpread: printRestSpread$1 +} = misc$1; - case "IfStatement": - { - const con = adjustClause(n.consequent, path.call(print, "consequent")); - const opening = group$7(concat$b(["if (", group$7(concat$b([indent$8(concat$b([softline$6, path.call(print, "test")])), softline$6])), ")", con])); - parts.push(opening); +function printFlow$1(path, options, print) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; + /** @type{Doc[]} */ - if (n.alternate) { - const commentOnOwnLine = hasTrailingComment$3(n.consequent) && n.consequent.comments.some(comment => comment.trailing && !comments$1.isBlockComment(comment)) || needsHardlineAfterDanglingComment$1(n); - const elseOnSameLine = n.consequent.type === "BlockStatement" && !commentOnOwnLine; - parts.push(elseOnSameLine ? " " : hardline$6); + const parts = []; - if (hasDanglingComments$1(n)) { - parts.push(comments.printDanglingComments(path, options, true), commentOnOwnLine ? hardline$6 : " "); - } + switch (node.type) { + case "DeclareClass": + return printFlowDeclaration(path, printClass$1(path, options, print)); - parts.push("else", group$7(adjustClause(n.alternate, path.call(print, "alternate"), n.alternate.type === "IfStatement"))); - } + case "DeclareFunction": + return printFlowDeclaration(path, ["function ", print("id"), node.predicate ? " " : "", print("predicate"), semi]); - return concat$b(parts); - } + case "DeclareModule": + return printFlowDeclaration(path, ["module ", print("id"), " ", print("body")]); - case "ForStatement": - { - const body = adjustClause(n.body, path.call(print, "body")); // We want to keep dangling comments above the loop to stay consistent. - // Any comment positioned between the for statement and the parentheses - // is going to be printed before the statement. + case "DeclareModuleExports": + return printFlowDeclaration(path, ["module.exports", ": ", print("typeAnnotation"), semi]); - const dangling = comments.printDanglingComments(path, options, - /* sameLine */ - true); - const printedComments = dangling ? concat$b([dangling, softline$6]) : ""; + case "DeclareVariable": + return printFlowDeclaration(path, ["var ", print("id"), semi]); - if (!n.init && !n.test && !n.update) { - return concat$b([printedComments, group$7(concat$b(["for (;;)", body]))]); - } + case "DeclareOpaqueType": + return printFlowDeclaration(path, printOpaqueType(path, options, print)); - return concat$b([printedComments, group$7(concat$b(["for (", group$7(concat$b([indent$8(concat$b([softline$6, path.call(print, "init"), ";", line$8, path.call(print, "test"), ";", line$8, path.call(print, "update")])), softline$6])), ")", body]))]); - } + case "DeclareInterface": + return printFlowDeclaration(path, printInterface$1(path, options, print)); - case "WhileStatement": - return group$7(concat$b(["while (", group$7(concat$b([indent$8(concat$b([softline$6, path.call(print, "test")])), softline$6])), ")", adjustClause(n.body, path.call(print, "body"))])); + case "DeclareTypeAlias": + return printFlowDeclaration(path, printTypeAlias$1(path, options, print)); - case "ForInStatement": - // Note: esprima can't actually parse "for each (". - return group$7(concat$b([n.each ? "for each (" : "for (", path.call(print, "left"), " in ", path.call(print, "right"), ")", adjustClause(n.body, path.call(print, "body"))])); + case "DeclareExportDeclaration": + return printFlowDeclaration(path, printExportDeclaration$1(path, options, print)); - case "ForOfStatement": - return group$7(concat$b(["for", n.await ? " await" : "", " (", path.call(print, "left"), " of ", path.call(print, "right"), ")", adjustClause(n.body, path.call(print, "body"))])); + case "DeclareExportAllDeclaration": + return printFlowDeclaration(path, printExportAllDeclaration$1(path, options, print)); - case "DoWhileStatement": - { - const clause = adjustClause(n.body, path.call(print, "body")); - const doBody = group$7(concat$b(["do", clause])); - parts = [doBody]; + case "OpaqueType": + return printOpaqueType(path, options, print); - if (n.body.type === "BlockStatement") { - parts.push(" "); - } else { - parts.push(hardline$6); - } + case "TypeAlias": + return printTypeAlias$1(path, options, print); - parts.push("while ("); - parts.push(group$7(concat$b([indent$8(concat$b([softline$6, path.call(print, "test")])), softline$6])), ")", semi); - return concat$b(parts); - } + case "IntersectionTypeAnnotation": + return printIntersectionType$1(path, options, print); - case "DoExpression": - return concat$b(["do ", path.call(print, "body")]); + case "UnionTypeAnnotation": + return printUnionType$1(path, options, print); - case "BreakStatement": - parts.push("break"); + case "FunctionTypeAnnotation": + return printFunctionType$1(path, options, print); - if (n.label) { - parts.push(" ", path.call(print, "label")); - } + case "TupleTypeAnnotation": + return printTupleType$1(path, options, print); - parts.push(semi); - return concat$b(parts); + case "GenericTypeAnnotation": + return [print("id"), printTypeParameters$1(path, options, print, "typeParameters")]; - case "ContinueStatement": - parts.push("continue"); + case "IndexedAccessType": + case "OptionalIndexedAccessType": + return printIndexedAccessType$1(path, options, print); + // Type Annotations for Facebook Flow, typically stripped out or + // transformed away before printing. - if (n.label) { - parts.push(" ", path.call(print, "label")); - } + case "TypeAnnotation": + return print("typeAnnotation"); - parts.push(semi); - return concat$b(parts); + case "TypeParameter": + return printTypeParameter$1(path, options, print); - case "LabeledStatement": - if (n.body.type === "EmptyStatement") { - return concat$b([path.call(print, "label"), ":;"]); - } + case "TypeofTypeAnnotation": + return ["typeof ", print("argument")]; - return concat$b([path.call(print, "label"), ": ", path.call(print, "body")]); + case "ExistsTypeAnnotation": + return "*"; - case "TryStatement": - return concat$b(["try ", path.call(print, "block"), n.handler ? concat$b([" ", path.call(print, "handler")]) : "", n.finalizer ? concat$b([" finally ", path.call(print, "finalizer")]) : ""]); + case "EmptyTypeAnnotation": + return "empty"; - case "CatchClause": - if (n.param) { - const hasComments = n.param.comments && n.param.comments.some(comment => !comments$1.isBlockComment(comment) || comment.leading && hasNewline$5(options.originalText, options.locEnd(comment)) || comment.trailing && hasNewline$5(options.originalText, options.locStart(comment), { - backwards: true - })); - const param = path.call(print, "param"); - return concat$b(["catch ", hasComments ? concat$b(["(", indent$8(concat$b([softline$6, param])), softline$6, ") "]) : concat$b(["(", param, ") "]), path.call(print, "body")]); - } + case "MixedTypeAnnotation": + return "mixed"; - return concat$b(["catch ", path.call(print, "body")]); + case "ArrayTypeAnnotation": + return [print("elementType"), "[]"]; - case "ThrowStatement": - return concat$b(["throw", printReturnAndThrowArgument(path, options, print)]); - // Note: ignoring n.lexical because it has no printing consequences. + case "BooleanLiteralTypeAnnotation": + return String(node.value); - case "SwitchStatement": - return concat$b([group$7(concat$b(["switch (", indent$8(concat$b([softline$6, path.call(print, "discriminant")])), softline$6, ")"])), " {", n.cases.length > 0 ? indent$8(concat$b([hardline$6, join$6(hardline$6, path.map(casePath => { - const caseNode = casePath.getValue(); - return concat$b([casePath.call(print), n.cases.indexOf(caseNode) !== n.cases.length - 1 && isNextLineEmpty$4(options.originalText, caseNode, options.locEnd) ? hardline$6 : ""]); - }, "cases"))])) : "", hardline$6, "}"]); + case "EnumDeclaration": + return ["enum ", print("id"), " ", print("body")]; - case "SwitchCase": + case "EnumBooleanBody": + case "EnumNumberBody": + case "EnumStringBody": + case "EnumSymbolBody": { - if (n.test) { - parts.push("case ", path.call(print, "test"), ":"); - } else { - parts.push("default:"); - } - - const consequent = n.consequent.filter(node => node.type !== "EmptyStatement"); - - if (consequent.length > 0) { - const cons = path.call(consequentPath => { - return printStatementSequence(consequentPath, options, print); - }, "consequent"); - parts.push(consequent.length === 1 && consequent[0].type === "BlockStatement" ? concat$b([" ", cons]) : indent$8(concat$b([hardline$6, cons]))); - } + if (node.type === "EnumSymbolBody" || node.explicitType) { + let type = null; - return concat$b(parts); - } - // JSX extensions below. + switch (node.type) { + case "EnumBooleanBody": + type = "boolean"; + break; - case "DebuggerStatement": - return concat$b(["debugger", semi]); + case "EnumNumberBody": + type = "number"; + break; - case "JSXAttribute": - parts.push(path.call(print, "name")); + case "EnumStringBody": + type = "string"; + break; - if (n.value) { - let res; + case "EnumSymbolBody": + type = "symbol"; + break; + } - if (isStringLiteral$1(n.value)) { - const raw = rawText$1(n.value); // Unescape all quotes so we get an accurate preferred quote + parts.push("of ", type, " "); + } - let final = raw.replace(/'/g, "'").replace(/"/g, '"'); - const quote = getPreferredQuote$1(final, options.jsxSingleQuote ? "'" : '"'); - const escape = quote === "'" ? "'" : """; - final = final.slice(1, -1).replace(new RegExp(quote, "g"), escape); - res = concat$b([quote, final, quote]); + if (node.members.length === 0 && !node.hasUnknownMembers) { + parts.push(group$f(["{", printDanglingComments$3(path, options), softline$b, "}"])); } else { - res = path.call(print, "value"); + const members = node.members.length > 0 ? [hardline$i, printArrayItems$1(path, options, "members", print), node.hasUnknownMembers || shouldPrintComma$2(options) ? "," : ""] : []; + parts.push(group$f(["{", indent$b([...members, ...(node.hasUnknownMembers ? [hardline$i, "..."] : [])]), printDanglingComments$3(path, options, + /* sameIndent */ + true), hardline$i, "}"])); } - parts.push("=", res); + return parts; } - return concat$b(parts); + case "EnumBooleanMember": + case "EnumNumberMember": + case "EnumStringMember": + return [print("id"), " = ", typeof node.init === "object" ? print("init") : String(node.init)]; - case "JSXIdentifier": - return "" + n.name; + case "EnumDefaultedMember": + return print("id"); - case "JSXNamespacedName": - return join$6(":", [path.call(print, "namespace"), path.call(print, "name")]); + case "FunctionTypeParam": + { + const name = node.name ? print("name") : path.getParentNode().this === node ? "this" : ""; + return [name, printOptionalToken$2(path), name ? ": " : "", print("typeAnnotation")]; + } - case "JSXMemberExpression": - return join$6(".", [path.call(print, "object"), path.call(print, "property")]); + case "InterfaceDeclaration": + case "InterfaceTypeAnnotation": + return printInterface$1(path, options, print); - case "TSQualifiedName": - return join$6(".", [path.call(print, "left"), path.call(print, "right")]); + case "ClassImplements": + case "InterfaceExtends": + return [print("id"), print("typeParameters")]; - case "JSXSpreadAttribute": - case "JSXSpreadChild": + case "NullableTypeAnnotation": + return ["?", print("typeAnnotation")]; + + case "Variance": { - return concat$b(["{", path.call(p => { - const printed = concat$b(["...", print(p)]); - const n = p.getValue(); + const { + kind + } = node; + assert__default['default'].ok(kind === "plus" || kind === "minus"); + return kind === "plus" ? "+" : "-"; + } - if (!n.comments || !n.comments.length || !willPrintOwnComments(p)) { - return printed; - } + case "ObjectTypeCallProperty": + if (node.static) { + parts.push("static "); + } + + parts.push(print("value")); + return parts; - return concat$b([indent$8(concat$b([softline$6, comments.printComments(p, () => printed, options)])), softline$6]); - }, n.type === "JSXSpreadAttribute" ? "argument" : "expression"), "}"]); + case "ObjectTypeIndexer": + { + return [node.variance ? print("variance") : "", "[", print("id"), node.id ? ": " : "", print("key"), "]: ", print("value")]; } - case "JSXExpressionContainer": + case "ObjectTypeProperty": { - const parent = path.getParentNode(0); - const hasComments = n.expression.comments && n.expression.comments.length > 0; - const shouldInline = n.expression.type === "JSXEmptyExpression" || !hasComments && (n.expression.type === "ArrayExpression" || n.expression.type === "ObjectExpression" || n.expression.type === "ArrowFunctionExpression" || n.expression.type === "CallExpression" || n.expression.type === "OptionalCallExpression" || n.expression.type === "FunctionExpression" || n.expression.type === "TemplateLiteral" || n.expression.type === "TaggedTemplateExpression" || n.expression.type === "DoExpression" || isJSXNode$3(parent) && (n.expression.type === "ConditionalExpression" || isBinaryish$1(n.expression))); + let modifier = ""; - if (shouldInline) { - return group$7(concat$b(["{", path.call(print, "expression"), lineSuffixBoundary$1, "}"])); + if (node.proto) { + modifier = "proto "; + } else if (node.static) { + modifier = "static "; } - return group$7(concat$b(["{", indent$8(concat$b([softline$6, path.call(print, "expression")])), softline$6, lineSuffixBoundary$1, "}"])); + return [modifier, isGetterOrSetter(node) ? node.kind + " " : "", node.variance ? print("variance") : "", printPropertyKey$1(path, options, print), printOptionalToken$2(path), isFunctionNotation(node) ? "" : ": ", print("value")]; } - case "JSXFragment": - case "JSXElement": - { - const elem = comments.printComments(path, () => printJSXElement(path, options, print), options); - return maybeWrapJSXElementInParens(path, elem, options); - } + case "ObjectTypeAnnotation": + return printObject$2(path, options, print); - case "JSXOpeningElement": - { - const n = path.getValue(); - const nameHasComments = n.name && n.name.comments && n.name.comments.length > 0 || n.typeParameters && n.typeParameters.comments && n.typeParameters.comments.length > 0; // Don't break self-closing elements with no attributes and no comments - - if (n.selfClosing && !n.attributes.length && !nameHasComments) { - return concat$b(["<", path.call(print, "name"), path.call(print, "typeParameters"), " />"]); - } // don't break up opening elements with a single long text attribute - - - if (n.attributes && n.attributes.length === 1 && n.attributes[0].value && isStringLiteral$1(n.attributes[0].value) && !n.attributes[0].value.value.includes("\n") && // We should break for the following cases: - //
- //
- !nameHasComments && (!n.attributes[0].comments || !n.attributes[0].comments.length)) { - return group$7(concat$b(["<", path.call(print, "name"), path.call(print, "typeParameters"), " ", concat$b(path.map(print, "attributes")), n.selfClosing ? " />" : ">"])); - } - - const lastAttrHasTrailingComments = n.attributes.length && hasTrailingComment$3(getLast$5(n.attributes)); - const bracketSameLine = // Simple tags (no attributes and no comment in tag name) should be - // kept unbroken regardless of `jsxBracketSameLine` - !n.attributes.length && !nameHasComments || options.jsxBracketSameLine && ( // We should print the bracket in a new line for the following cases: - //
- //
- !nameHasComments || n.attributes.length) && !lastAttrHasTrailingComments; // We should print the opening element expanded if any prop value is a - // string literal with newlines - - const shouldBreak = n.attributes && n.attributes.some(attr => attr.value && isStringLiteral$1(attr.value) && attr.value.value.includes("\n")); - return group$7(concat$b(["<", path.call(print, "name"), path.call(print, "typeParameters"), concat$b([indent$8(concat$b(path.map(attr => concat$b([line$8, print(attr)]), "attributes"))), n.selfClosing ? line$8 : bracketSameLine ? ">" : softline$6]), n.selfClosing ? "/>" : bracketSameLine ? "" : ">"]), { - shouldBreak - }); - } + case "ObjectTypeInternalSlot": + return [node.static ? "static " : "", "[[", print("id"), "]]", printOptionalToken$2(path), node.method ? "" : ": ", print("value")]; + // Same as `RestElement` - case "JSXClosingElement": - return concat$b([""]); + case "ObjectTypeSpreadProperty": + return printRestSpread$1(path, options, print); - case "JSXOpeningFragment": - case "JSXClosingFragment": - { - const hasComment = n.comments && n.comments.length; - const hasOwnLineComment = hasComment && !n.comments.every(comments$1.isBlockComment); - const isOpeningFragment = n.type === "JSXOpeningFragment"; - return concat$b([isOpeningFragment ? "<" : ""]); + case "QualifiedTypeIdentifier": + return [print("qualification"), ".", print("id")]; + + case "StringLiteralTypeAnnotation": + return printString$2(rawText$1(node), options); + + case "NumberLiteralTypeAnnotation": + assert__default['default'].strictEqual(typeof node.value, "number"); + // fall through + + case "BigIntLiteralTypeAnnotation": + if (node.extra) { + return printNumber$2(node.extra.raw); } - case "JSXText": - /* istanbul ignore next */ - throw new Error("JSXTest should be handled by JSXElement"); + return printNumber$2(node.raw); - case "JSXEmptyExpression": + case "TypeCastExpression": { - const requiresHardline = n.comments && !n.comments.every(comments$1.isBlockComment); - return concat$b([comments.printDanglingComments(path, options, - /* sameIndent */ - !requiresHardline), requiresHardline ? hardline$6 : ""]); + return ["(", print("expression"), printTypeAnnotation$1(path, options, print), ")"]; } - case "ClassBody": - if (!n.comments && n.body.length === 0) { - return "{}"; - } + case "TypeParameterDeclaration": + case "TypeParameterInstantiation": + { + const printed = printTypeParameters$1(path, options, print, "params"); - return concat$b(["{", n.body.length > 0 ? indent$8(concat$b([hardline$6, path.call(bodyPath => { - return printStatementSequence(bodyPath, options, print); - }, "body")])) : comments.printDanglingComments(path, options), hardline$6, "}"]); + if (options.parser === "flow") { + const start = locStart$h(node); + const end = locEnd$g(node); + const commentStartIndex = options.originalText.lastIndexOf("/*", start); + const commentEndIndex = options.originalText.indexOf("*/", end); - case "ClassProperty": - case "TSAbstractClassProperty": - case "ClassPrivateProperty": - { - if (n.decorators && n.decorators.length !== 0) { - parts.push(printDecorators(path, options, print)); - } + if (commentStartIndex !== -1 && commentEndIndex !== -1) { + const comment = options.originalText.slice(commentStartIndex + 2, commentEndIndex).trim(); - if (n.accessibility) { - parts.push(n.accessibility + " "); + if (comment.startsWith("::") && !comment.includes("/*") && !comment.includes("*/")) { + return ["/*:: ", printed, " */"]; + } + } } - if (n.declare) { - parts.push("declare "); - } + return printed; + } - if (n.static) { - parts.push("static "); - } + case "InferredPredicate": + return "%checks"; + // Unhandled types below. If encountered, nodes of these types should + // be either left alone or desugared into AST types that are fully + // supported by the pretty-printer. - if (n.type === "TSAbstractClassProperty" || n.abstract) { - parts.push("abstract "); - } + case "DeclaredPredicate": + return ["%checks(", print("value"), ")"]; - if (n.readonly) { - parts.push("readonly "); - } + case "AnyTypeAnnotation": + return "any"; - const variance = getFlowVariance$1(n); + case "BooleanTypeAnnotation": + return "boolean"; - if (variance) { - parts.push(variance); - } + case "BigIntTypeAnnotation": + return "bigint"; - parts.push(printPropertyKey(path, options, print), printOptionalToken$2(path), printTypeAnnotation(path, options, print)); + case "NullLiteralTypeAnnotation": + return "null"; - if (n.value) { - parts.push(" =", printAssignmentRight(n.key, n.value, path.call(print, "value"), options)); - } + case "NumberTypeAnnotation": + return "number"; - parts.push(semi); - return group$7(concat$b(parts)); - } + case "SymbolTypeAnnotation": + return "symbol"; - case "ClassDeclaration": - case "ClassExpression": - if (n.declare) { - parts.push("declare "); - } + case "StringTypeAnnotation": + return "string"; - parts.push(concat$b(printClass(path, options, print))); - return concat$b(parts); + case "VoidTypeAnnotation": + return "void"; - case "TSInterfaceHeritage": - case "TSExpressionWithTypeArguments": - // Babel AST - parts.push(path.call(print, "expression")); + case "ThisTypeAnnotation": + return "this"; + // These types are unprintable because they serve as abstract + // supertypes for other (printable) types. - if (n.typeParameters) { - parts.push(path.call(print, "typeParameters")); - } + case "Node": + case "Printable": + case "SourceLocation": + case "Position": + case "Statement": + case "Function": + case "Pattern": + case "Expression": + case "Declaration": + case "Specifier": + case "NamedSpecifier": + case "Comment": + case "MemberTypeAnnotation": // Flow - return concat$b(parts); + case "Type": + /* istanbul ignore next */ + throw new Error("unprintable type: " + JSON.stringify(node.type)); + } +} - case "TemplateElement": - return join$6(literalline$2, n.value.raw.split(/\r?\n/g)); +function printFlowDeclaration(path, printed) { + const parentExportDecl = getParentExportDeclaration(path); - case "TemplateLiteral": - { - const parentNode = path.getParentNode(); + if (parentExportDecl) { + assert__default['default'].strictEqual(parentExportDecl.type, "DeclareExportDeclaration"); + return printed; + } // If the parent node has type DeclareExportDeclaration, then it + // will be responsible for printing the "declare" token. Otherwise + // it needs to be printed with this non-exported declaration node. - if (isJestEachTemplateLiteral$1(n, parentNode)) { - const printed = printJestEachTemplateLiteral(path, options, print); - if (printed) { - return printed; - } - } + return ["declare ", printed]; +} + +var flow = { + printFlow: printFlow$1 +}; + +const { + hasNewlineInRange: hasNewlineInRange$1 +} = util$5; +const { + isJsxNode: isJsxNode$1, + isBlockComment: isBlockComment$2, + getComments, + isCallExpression: isCallExpression$2, + isMemberExpression: isMemberExpression$2 +} = utils$5; +const { + locStart: locStart$g, + locEnd: locEnd$f +} = loc$6; +const { + builders: { + line: line$c, + softline: softline$a, + group: group$e, + indent: indent$a, + align: align$2, + ifBreak: ifBreak$9, + dedent: dedent$3, + breakParent: breakParent$4 + } +} = doc; +/** + * @typedef {import("../../document").Doc} Doc + * @typedef {import("../../common/ast-path")} AstPath + * + * @typedef {any} Options - Prettier options (TBD ...) + */ +// If we have nested conditional expressions, we want to print them in JSX mode +// if there's at least one JSXElement somewhere in the tree. +// +// A conditional expression chain like this should be printed in normal mode, +// because there aren't JSXElements anywhere in it: +// +// isA ? "A" : isB ? "B" : isC ? "C" : "Unknown"; +// +// But a conditional expression chain like this should be printed in JSX mode, +// because there is a JSXElement in the last ConditionalExpression: +// +// isA ? "A" : isB ? "B" : isC ? "C" : Unknown; +// +// This type of ConditionalExpression chain is structured like this in the AST: +// +// ConditionalExpression { +// test: ..., +// consequent: ..., +// alternate: ConditionalExpression { +// test: ..., +// consequent: ..., +// alternate: ConditionalExpression { +// test: ..., +// consequent: ..., +// alternate: ..., +// } +// } +// } - let expressions = path.map(print, "expressions"); - const isSimple = isSimpleTemplateLiteral$1(n); +function conditionalExpressionChainContainsJsx(node) { + // Given this code: + // + // // Using a ConditionalExpression as the consequent is uncommon, but should + // // be handled. + // A ? B : C ? D : E ? F ? G : H : I + // + // which has this AST: + // + // ConditionalExpression { + // test: Identifier(A), + // consequent: Identifier(B), + // alternate: ConditionalExpression { + // test: Identifier(C), + // consequent: Identifier(D), + // alternate: ConditionalExpression { + // test: Identifier(E), + // consequent: ConditionalExpression { + // test: Identifier(F), + // consequent: Identifier(G), + // alternate: Identifier(H), + // }, + // alternate: Identifier(I), + // } + // } + // } + // + // We don't care about whether each node was the test, consequent, or alternate + // We are only checking if there's any JSXElements inside. + const conditionalExpressions = [node]; - if (isSimple) { - expressions = expressions.map(doc => printDocToString$2(doc, Object.assign({}, options, { - printWidth: Infinity - })).formatted); - } + for (let index = 0; index < conditionalExpressions.length; index++) { + const conditionalExpression = conditionalExpressions[index]; - parts.push(lineSuffixBoundary$1, "`"); - path.each(childPath => { - const i = childPath.getName(); - parts.push(print(childPath)); - - if (i < expressions.length) { - // For a template literal of the following form: - // `someQuery { - // ${call({ - // a, - // b, - // })} - // }` - // the expression is on its own line (there is a \n in the previous - // quasi literal), therefore we want to indent the JavaScript - // expression inside at the beginning of ${ instead of the beginning - // of the `. - const { - tabWidth - } = options; - const quasi = childPath.getValue(); - const indentSize = getIndentSize$2(quasi.value.raw, tabWidth); - let printed = expressions[i]; - - if (!isSimple) { - // Breaks at the template element boundaries (${ and }) are preferred to breaking - // in the middle of a MemberExpression - if (n.expressions[i].comments && n.expressions[i].comments.length || n.expressions[i].type === "MemberExpression" || n.expressions[i].type === "OptionalMemberExpression" || n.expressions[i].type === "ConditionalExpression" || n.expressions[i].type === "SequenceExpression" || n.expressions[i].type === "TSAsExpression" || isBinaryish$1(n.expressions[i])) { - printed = concat$b([indent$8(concat$b([softline$6, printed])), softline$6]); - } - } + for (const property of ["test", "consequent", "alternate"]) { + const node = conditionalExpression[property]; - const aligned = indentSize === 0 && quasi.value.raw.endsWith("\n") ? align$2(-Infinity, printed) : addAlignmentToDoc$2(printed, indentSize, tabWidth); - parts.push(group$7(concat$b(["${", aligned, lineSuffixBoundary$1, "}"]))); - } - }, "quasis"); - parts.push("`"); - return concat$b(parts); + if (isJsxNode$1(node)) { + return true; } - case "TaggedTemplateExpression": - return concat$b([path.call(print, "tag"), path.call(print, "typeParameters"), path.call(print, "quasi")]); - // These types are unprintable because they serve as abstract - // supertypes for other (printable) types. - - case "Node": - case "Printable": - case "SourceLocation": - case "Position": - case "Statement": - case "Function": - case "Pattern": - case "Expression": - case "Declaration": - case "Specifier": - case "NamedSpecifier": - case "Comment": - case "MemberTypeAnnotation": // Flow - - case "Type": - /* istanbul ignore next */ - throw new Error("unprintable type: " + JSON.stringify(n.type)); - // Type Annotations for Facebook Flow, typically stripped out or - // transformed away before printing. - - case "TypeAnnotation": - case "TSTypeAnnotation": - if (n.typeAnnotation) { - return path.call(print, "typeAnnotation"); + if (node.type === "ConditionalExpression") { + conditionalExpressions.push(node); } - /* istanbul ignore next */ + } + } + return false; +} - return ""; +function printTernaryTest(path, options, print) { + const node = path.getValue(); + const isConditionalExpression = node.type === "ConditionalExpression"; + const alternateNodePropertyName = isConditionalExpression ? "alternate" : "falseType"; + const parent = path.getParentNode(); + const printed = isConditionalExpression ? print("test") : [print("checkType"), " ", "extends", " ", print("extendsType")]; + /** + * a + * ? b + * : multiline + * test + * node + * ^^ align(2) + * ? d + * : e + */ - case "TSNamedTupleMember": - return concat$b([path.call(print, "label"), n.optional ? "?" : "", ": ", path.call(print, "elementType")]); + if (parent.type === node.type && parent[alternateNodePropertyName] === node) { + return align$2(2, printed); + } - case "TSTupleType": - case "TupleTypeAnnotation": - { - const typesField = n.type === "TSTupleType" ? "elementTypes" : "types"; - const hasRest = n[typesField].length > 0 && getLast$5(n[typesField]).type === "TSRestType"; - return group$7(concat$b(["[", indent$8(concat$b([softline$6, printArrayItems(path, options, typesField, print)])), ifBreak$4(shouldPrintComma$3(options, "all") && !hasRest ? "," : ""), comments.printDanglingComments(path, options, - /* sameIndent */ - true), softline$6, "]"])); - } + return printed; +} - case "ExistsTypeAnnotation": - return "*"; +const ancestorNameMap = new Map([["AssignmentExpression", "right"], ["VariableDeclarator", "init"], ["ReturnStatement", "argument"], ["ThrowStatement", "argument"], ["UnaryExpression", "argument"], ["YieldExpression", "argument"]]); - case "EmptyTypeAnnotation": - return "empty"; +function shouldExtraIndentForConditionalExpression(path) { + const node = path.getValue(); - case "AnyTypeAnnotation": - return "any"; + if (node.type !== "ConditionalExpression") { + return false; + } - case "MixedTypeAnnotation": - return "mixed"; + let parent; + let child = node; - case "ArrayTypeAnnotation": - return concat$b([path.call(print, "elementType"), "[]"]); + for (let ancestorCount = 0; !parent; ancestorCount++) { + const node = path.getParentNode(ancestorCount); - case "BooleanTypeAnnotation": - return "boolean"; + if (isCallExpression$2(node) && node.callee === child || isMemberExpression$2(node) && node.object === child || node.type === "TSNonNullExpression" && node.expression === child) { + child = node; + continue; + } // Reached chain root - case "BooleanLiteralTypeAnnotation": - return "" + n.value; - case "DeclareClass": - return printFlowDeclaration(path, printClass(path, options, print)); + if (node.type === "NewExpression" && node.callee === child || node.type === "TSAsExpression" && node.expression === child) { + parent = path.getParentNode(ancestorCount + 1); + child = node; + } else { + parent = node; + } + } // Do not add indent to direct `ConditionalExpression` - case "TSDeclareFunction": - // For TypeScript the TSDeclareFunction node shares the AST - // structure with FunctionDeclaration - return concat$b([n.declare ? "declare " : "", printFunctionDeclaration(path, print, options), semi]); - case "DeclareFunction": - return printFlowDeclaration(path, ["function ", path.call(print, "id"), n.predicate ? " " : "", path.call(print, "predicate"), semi]); + if (child === node) { + return false; + } - case "DeclareModule": - return printFlowDeclaration(path, ["module ", path.call(print, "id"), " ", path.call(print, "body")]); + return parent[ancestorNameMap.get(parent.type)] === child; +} +/** + * The following is the shared logic for + * ternary operators, namely ConditionalExpression + * and TSConditionalType + * @param {AstPath} path - The path to the ConditionalExpression/TSConditionalType node. + * @param {Options} options - Prettier options + * @param {Function} print - Print function to call recursively + * @returns {Doc} + */ - case "DeclareModuleExports": - return printFlowDeclaration(path, ["module.exports", ": ", path.call(print, "typeAnnotation"), semi]); - case "DeclareVariable": - return printFlowDeclaration(path, ["var ", path.call(print, "id"), semi]); +function printTernary$2(path, options, print) { + const node = path.getValue(); + const isConditionalExpression = node.type === "ConditionalExpression"; + const consequentNodePropertyName = isConditionalExpression ? "consequent" : "trueType"; + const alternateNodePropertyName = isConditionalExpression ? "alternate" : "falseType"; + const testNodePropertyNames = isConditionalExpression ? ["test"] : ["checkType", "extendsType"]; + const consequentNode = node[consequentNodePropertyName]; + const alternateNode = node[alternateNodePropertyName]; + const parts = []; // We print a ConditionalExpression in either "JSX mode" or "normal mode". + // See tests/jsx/conditional-expression.js for more info. - case "DeclareExportAllDeclaration": - return concat$b(["declare export *", printModuleSource$1(path, options, print)]); + let jsxMode = false; + const parent = path.getParentNode(); + const isParentTest = parent.type === node.type && testNodePropertyNames.some(prop => parent[prop] === node); + let forceNoIndent = parent.type === node.type && !isParentTest; // Find the outermost non-ConditionalExpression parent, and the outermost + // ConditionalExpression parent. We'll use these to determine if we should + // print in JSX mode. - case "DeclareOpaqueType": - case "OpaqueType": - { - parts.push("opaque type ", path.call(print, "id"), path.call(print, "typeParameters")); + let currentParent; + let previousParent; + let i = 0; - if (n.supertype) { - parts.push(": ", path.call(print, "supertype")); - } + do { + previousParent = currentParent || node; + currentParent = path.getParentNode(i); + i++; + } while (currentParent && currentParent.type === node.type && testNodePropertyNames.every(prop => currentParent[prop] !== previousParent)); - if (n.impltype) { - parts.push(" = ", path.call(print, "impltype")); - } + const firstNonConditionalParent = currentParent || parent; + const lastConditionalParent = previousParent; - parts.push(semi); + if (isConditionalExpression && (isJsxNode$1(node[testNodePropertyNames[0]]) || isJsxNode$1(consequentNode) || isJsxNode$1(alternateNode) || conditionalExpressionChainContainsJsx(lastConditionalParent))) { + jsxMode = true; + forceNoIndent = true; // Even though they don't need parens, we wrap (almost) everything in + // parens when using ?: within JSX, because the parens are analogous to + // curly braces in an if statement. - if (n.type === "DeclareOpaqueType") { - return printFlowDeclaration(path, parts); - } + const wrap = doc => [ifBreak$9("("), indent$a([softline$a, doc]), softline$a, ifBreak$9(")")]; // The only things we don't wrap are: + // * Nested conditional expressions in alternates + // * null + // * undefined - return concat$b(parts); - } - case "EnumDeclaration": - return concat$b(["enum ", path.call(print, "id"), " ", path.call(print, "body")]); + const isNil = node => node.type === "NullLiteral" || node.type === "Literal" && node.value === null || node.type === "Identifier" && node.name === "undefined"; - case "EnumBooleanBody": - case "EnumNumberBody": - case "EnumStringBody": - case "EnumSymbolBody": - { - if (n.type === "EnumSymbolBody" || n.explicitType) { - let type = null; + parts.push(" ? ", isNil(consequentNode) ? print(consequentNodePropertyName) : wrap(print(consequentNodePropertyName)), " : ", alternateNode.type === node.type || isNil(alternateNode) ? print(alternateNodePropertyName) : wrap(print(alternateNodePropertyName))); + } else { + // normal mode + const part = [line$c, "? ", consequentNode.type === node.type ? ifBreak$9("", "(") : "", align$2(2, print(consequentNodePropertyName)), consequentNode.type === node.type ? ifBreak$9("", ")") : "", line$c, ": ", alternateNode.type === node.type ? print(alternateNodePropertyName) : align$2(2, print(alternateNodePropertyName))]; + parts.push(parent.type !== node.type || parent[alternateNodePropertyName] === node || isParentTest ? part : options.useTabs ? dedent$3(indent$a(part)) : align$2(Math.max(0, options.tabWidth - 2), part)); + } // We want a whole chain of ConditionalExpressions to all + // break if any of them break. That means we should only group around the + // outer-most ConditionalExpression. - switch (n.type) { - case "EnumBooleanBody": - type = "boolean"; - break; - case "EnumNumberBody": - type = "number"; - break; + const comments = [...testNodePropertyNames.map(propertyName => getComments(node[propertyName])), getComments(consequentNode), getComments(alternateNode)].flat(); + const shouldBreak = comments.some(comment => isBlockComment$2(comment) && hasNewlineInRange$1(options.originalText, locStart$g(comment), locEnd$f(comment))); - case "EnumStringBody": - type = "string"; - break; + const maybeGroup = doc => parent === firstNonConditionalParent ? group$e(doc, { + shouldBreak + }) : shouldBreak ? [doc, breakParent$4] : doc; // Break the closing paren to keep the chain right after it: + // (a + // ? b + // : c + // ).call() - case "EnumSymbolBody": - type = "symbol"; - break; - } - parts.push("of ", type, " "); - } + const breakClosingParen = !jsxMode && (isMemberExpression$2(parent) || parent.type === "NGPipeExpression" && parent.left === node) && !parent.computed; + const shouldExtraIndent = shouldExtraIndentForConditionalExpression(path); + const result = maybeGroup([printTernaryTest(path, options, print), forceNoIndent ? parts : indent$a(parts), isConditionalExpression && breakClosingParen && !shouldExtraIndent ? softline$a : ""]); + return isParentTest || shouldExtraIndent ? group$e([indent$a([softline$a, result]), softline$a]) : result; +} - if (n.members.length === 0) { - parts.push(group$7(concat$b(["{", comments.printDanglingComments(path, options), softline$6, "}"]))); - } else { - parts.push(group$7(concat$b(["{", indent$8(concat$b([hardline$6, printArrayItems(path, options, "members", print), shouldPrintComma$3(options) ? "," : ""])), comments.printDanglingComments(path, options, - /* sameIndent */ - true), hardline$6, "}"]))); - } +var ternary = { + printTernary: printTernary$2 +}; - return concat$b(parts); - } +const { + builders: { + hardline: hardline$h + } +} = doc; +const { + getLeftSidePathName, + hasNakedLeftSide, + isJsxNode, + isTheOnlyJsxElementInMarkdown: isTheOnlyJsxElementInMarkdown$1, + hasComment: hasComment$2, + CommentCheckFlags: CommentCheckFlags$2, + isNextLineEmpty: isNextLineEmpty$6 +} = utils$5; +const { + shouldPrintParamsWithoutParens +} = _function; +/** + * @typedef {import("../../document").Doc} Doc + * @typedef {import("../../common/ast-path")} AstPath + */ - case "EnumBooleanMember": - case "EnumNumberMember": - case "EnumStringMember": - return concat$b([path.call(print, "id"), " = ", typeof n.init === "object" ? path.call(print, "init") : String(n.init)]); +function printStatementSequence(path, options, print, property) { + const node = path.getValue(); + const parts = []; + const isClassBody = node.type === "ClassBody"; + const lastStatement = getLastStatement(node[property]); + path.each((path, index, statements) => { + const node = path.getValue(); // Skip printing EmptyStatement nodes to avoid leaving stray + // semicolons lying around. - case "EnumDefaultedMember": - return path.call(print, "id"); + if (node.type === "EmptyStatement") { + return; + } - case "FunctionTypeAnnotation": - case "TSFunctionType": - { - // FunctionTypeAnnotation is ambiguous: - // declare function foo(a: B): void; OR - // var A: (a: B) => void; - const parent = path.getParentNode(0); - const parentParent = path.getParentNode(1); - const parentParentParent = path.getParentNode(2); - let isArrowFunctionTypeAnnotation = n.type === "TSFunctionType" || !((parent.type === "ObjectTypeProperty" || parent.type === "ObjectTypeInternalSlot") && !getFlowVariance$1(parent) && !parent.optional && options.locStart(parent) === options.locStart(n) || parent.type === "ObjectTypeCallProperty" || parentParentParent && parentParentParent.type === "DeclareFunction"); - let needsColon = isArrowFunctionTypeAnnotation && (parent.type === "TypeAnnotation" || parent.type === "TSTypeAnnotation"); // Sadly we can't put it inside of FastPath::needsColon because we are - // printing ":" as part of the expression and it would put parenthesis - // around :( + const printed = print(); // in no-semi mode, prepend statement with semicolon if it might break ASI + // don't prepend the only JSX element in a program with semicolon - const needsParens = needsColon && isArrowFunctionTypeAnnotation && (parent.type === "TypeAnnotation" || parent.type === "TSTypeAnnotation") && parentParent.type === "ArrowFunctionExpression"; + if (!options.semi && !isClassBody && !isTheOnlyJsxElementInMarkdown$1(options, path) && statementNeedsASIProtection(path, options)) { + if (hasComment$2(node, CommentCheckFlags$2.Leading)) { + parts.push(print([], { + needsSemi: true + })); + } else { + parts.push(";", printed); + } + } else { + parts.push(printed); + } - if (isObjectTypePropertyAFunction$1(parent, options)) { - isArrowFunctionTypeAnnotation = true; - needsColon = true; - } + if (!options.semi && isClassBody && isClassProperty(node) && // `ClassBody` don't allow `EmptyStatement`, + // so we can use `statements` to get next node + shouldPrintSemicolonAfterClassProperty(node, statements[index + 1])) { + parts.push(";"); + } - if (needsParens) { - parts.push("("); - } + if (node !== lastStatement) { + parts.push(hardline$h); - parts.push(printFunctionParams(path, print, options, - /* expandArg */ - false, - /* printTypeParams */ - true)); // The returnType is not wrapped in a TypeAnnotation, so the colon - // needs to be added separately. + if (isNextLineEmpty$6(node, options)) { + parts.push(hardline$h); + } + } + }, property); + return parts; +} - if (n.returnType || n.predicate || n.typeAnnotation) { - parts.push(isArrowFunctionTypeAnnotation ? " => " : ": ", path.call(print, "returnType"), path.call(print, "predicate"), path.call(print, "typeAnnotation")); - } +function getLastStatement(statements) { + for (let i = statements.length - 1; i >= 0; i--) { + const statement = statements[i]; - if (needsParens) { - parts.push(")"); - } + if (statement.type !== "EmptyStatement") { + return statement; + } + } +} - return group$7(concat$b(parts)); - } +function statementNeedsASIProtection(path, options) { + const node = path.getNode(); - case "TSRestType": - return concat$b(["...", path.call(print, "typeAnnotation")]); + if (node.type !== "ExpressionStatement") { + return false; + } - case "TSOptionalType": - return concat$b([path.call(print, "typeAnnotation"), "?"]); + return path.call(childPath => expressionNeedsASIProtection(childPath, options), "expression"); +} - case "FunctionTypeParam": - return concat$b([path.call(print, "name"), printOptionalToken$2(path), n.name ? ": " : "", path.call(print, "typeAnnotation")]); +function expressionNeedsASIProtection(path, options) { + const node = path.getValue(); - case "GenericTypeAnnotation": - return concat$b([path.call(print, "id"), path.call(print, "typeParameters")]); + switch (node.type) { + case "ParenthesizedExpression": + case "TypeCastExpression": + case "ArrayExpression": + case "ArrayPattern": + case "TemplateLiteral": + case "TemplateElement": + case "RegExpLiteral": + return true; - case "DeclareInterface": - case "InterfaceDeclaration": - case "InterfaceTypeAnnotation": - case "TSInterfaceDeclaration": + case "ArrowFunctionExpression": { - if (n.type === "DeclareInterface" || n.declare) { - parts.push("declare "); + if (!shouldPrintParamsWithoutParens(path, options)) { + return true; } - if (n.type === "TSInterfaceDeclaration") { - parts.push(n.abstract ? "abstract " : "", printTypeScriptModifiers(path, options, print)); - } + break; + } - parts.push("interface"); - const partsGroup = []; - const extendsParts = []; + case "UnaryExpression": + { + const { + prefix, + operator + } = node; - if (n.type !== "InterfaceTypeAnnotation") { - partsGroup.push(" ", path.call(print, "id"), path.call(print, "typeParameters")); + if (prefix && (operator === "+" || operator === "-")) { + return true; } - const shouldIndentOnlyHeritageClauses = n.typeParameters && !hasTrailingLineComment$1(n.typeParameters); + break; + } - if (n.extends && n.extends.length !== 0) { - extendsParts.push(shouldIndentOnlyHeritageClauses ? ifBreak$4(" ", line$8, { - groupId: getTypeParametersGroupId(n.typeParameters) - }) : line$8, "extends ", (n.extends.length === 1 ? identity$2 : indent$8)(join$6(concat$b([",", line$8]), path.map(print, "extends")))); + case "BindExpression": + { + if (!node.object) { + return true; } - if (n.id && hasTrailingComment$3(n.id) || n.extends && n.extends.length !== 0) { - const printedExtends = concat$b(extendsParts); + break; + } - if (shouldIndentOnlyHeritageClauses) { - parts.push(group$7(concat$b(partsGroup.concat(ifBreak$4(indent$8(printedExtends), printedExtends))))); - } else { - parts.push(group$7(indent$8(concat$b(partsGroup.concat(printedExtends))))); - } - } else { - parts.push(...partsGroup, ...extendsParts); + case "Literal": + { + if (node.regex) { + return true; } - parts.push(" ", path.call(print, "body")); - return group$7(concat$b(parts)); + break; } - case "ClassImplements": - case "InterfaceExtends": - return concat$b([path.call(print, "id"), path.call(print, "typeParameters")]); - - case "TSClassImplements": - return concat$b([path.call(print, "expression"), path.call(print, "typeParameters")]); - - case "TSIntersectionType": - case "IntersectionTypeAnnotation": + default: { - const types = path.map(print, "types"); - const result = []; - let wasIndented = false; - - for (let i = 0; i < types.length; ++i) { - if (i === 0) { - result.push(types[i]); - } else if (isObjectType$1(n.types[i - 1]) && isObjectType$1(n.types[i])) { - // If both are objects, don't indent - result.push(concat$b([" & ", wasIndented ? indent$8(types[i]) : types[i]])); - } else if (!isObjectType$1(n.types[i - 1]) && !isObjectType$1(n.types[i])) { - // If no object is involved, go to the next line if it breaks - result.push(indent$8(concat$b([" &", line$8, types[i]]))); - } else { - // If you go from object to non-object or vis-versa, then inline it - if (i > 1) { - wasIndented = true; - } - - result.push(" & ", i > 1 ? indent$8(types[i]) : types[i]); - } + if (isJsxNode(node)) { + return true; } - - return group$7(concat$b(result)); } + } - case "TSUnionType": - case "UnionTypeAnnotation": - { - // single-line variation - // A | B | C - // multi-line variation - // | A - // | B - // | C - const parent = path.getParentNode(); // If there's a leading comment, the parent is doing the indentation - - const shouldIndent = parent.type !== "TypeParameterInstantiation" && parent.type !== "TSTypeParameterInstantiation" && parent.type !== "GenericTypeAnnotation" && parent.type !== "TSTypeReference" && parent.type !== "TSTypeAssertion" && parent.type !== "TupleTypeAnnotation" && parent.type !== "TSTupleType" && !(parent.type === "FunctionTypeParam" && !parent.name) && !((parent.type === "TypeAlias" || parent.type === "VariableDeclarator" || parent.type === "TSTypeAliasDeclaration") && hasLeadingOwnLineComment$1(options.originalText, n, options)); // { - // a: string - // } | null | void - // should be inlined and not be printed in the multi-line variant - - const shouldHug = shouldHugType(n); // We want to align the children but without its comment, so it looks like - // | child1 - // // comment - // | child2 - - const printed = path.map(typePath => { - let printedType = typePath.call(print); - - if (!shouldHug) { - printedType = align$2(2, printedType); - } + if (needsParens_1(path, options)) { + return true; + } - return comments.printComments(typePath, () => printedType, options); - }, "types"); + if (!hasNakedLeftSide(node)) { + return false; + } - if (shouldHug) { - return join$6(" | ", printed); - } + return path.call(childPath => expressionNeedsASIProtection(childPath, options), ...getLeftSidePathName(path, node)); +} - const shouldAddStartLine = shouldIndent && !hasLeadingOwnLineComment$1(options.originalText, n, options); - const code = concat$b([ifBreak$4(concat$b([shouldAddStartLine ? line$8 : "", "| "])), join$6(concat$b([line$8, "| "]), printed)]); +function printBody$1(path, options, print) { + return printStatementSequence(path, options, print, "body"); +} - if (needsParens_1(path, options)) { - return group$7(concat$b([indent$8(code), softline$6])); - } +function printSwitchCaseConsequent$1(path, options, print) { + return printStatementSequence(path, options, print, "consequent"); +} - if (parent.type === "TupleTypeAnnotation" && parent.types.length > 1 || parent.type === "TSTupleType" && parent.elementTypes.length > 1) { - return group$7(concat$b([indent$8(concat$b([ifBreak$4(concat$b(["(", softline$6])), code])), softline$6, ifBreak$4(")")])); - } +const isClassProperty = ({ + type +}) => type === "ClassProperty" || type === "PropertyDefinition" || type === "ClassPrivateProperty"; +/** + * @returns {boolean} + */ - return group$7(shouldIndent ? indent$8(code) : code); - } - case "NullableTypeAnnotation": - return concat$b(["?", path.call(print, "typeAnnotation")]); +function shouldPrintSemicolonAfterClassProperty(node, nextNode) { + const name = node.key && node.key.name; // this isn't actually possible yet with most parsers available today + // so isn't properly tested yet. - case "TSNullKeyword": - case "NullLiteralTypeAnnotation": - return "null"; + if ((name === "static" || name === "get" || name === "set") && !node.value && !node.typeAnnotation) { + return true; + } - case "ThisTypeAnnotation": - return "this"; + if (!nextNode) { + return false; + } - case "NumberTypeAnnotation": - return "number"; + if (nextNode.static || nextNode.accessibility // TypeScript + ) { + return false; + } - case "SymbolTypeAnnotation": - return "symbol"; + if (!nextNode.computed) { + const name = nextNode.key && nextNode.key.name; - case "ObjectTypeCallProperty": - if (n.static) { - parts.push("static "); - } + if (name === "in" || name === "instanceof") { + return true; + } + } - parts.push(path.call(print, "value")); - return concat$b(parts); + switch (nextNode.type) { + case "ClassProperty": + case "PropertyDefinition": + case "TSAbstractClassProperty": + return nextNode.computed; - case "ObjectTypeIndexer": - { - const variance = getFlowVariance$1(n); - return concat$b([variance || "", "[", path.call(print, "id"), n.id ? ": " : "", path.call(print, "key"), "]: ", path.call(print, "value")]); - } + case "MethodDefinition": // Flow - case "ObjectTypeProperty": + case "TSAbstractMethodDefinition": // TypeScript + + case "ClassMethod": + case "ClassPrivateMethod": { - const variance = getFlowVariance$1(n); - let modifier = ""; + // Babel + const isAsync = nextNode.value ? nextNode.value.async : nextNode.async; - if (n.proto) { - modifier = "proto "; - } else if (n.static) { - modifier = "static "; + if (isAsync || nextNode.kind === "get" || nextNode.kind === "set") { + return false; } - return concat$b([modifier, isGetterOrSetter$1(n) ? n.kind + " " : "", variance || "", printPropertyKey(path, options, print), printOptionalToken$2(path), isFunctionNotation$1(n, options) ? "" : ": ", path.call(print, "value")]); - } - - case "QualifiedTypeIdentifier": - return concat$b([path.call(print, "qualification"), ".", path.call(print, "id")]); - - case "StringLiteralTypeAnnotation": - return nodeStr(n, options); + const isGenerator = nextNode.value ? nextNode.value.generator : nextNode.generator; - case "NumberLiteralTypeAnnotation": - assert__default['default'].strictEqual(typeof n.value, "number"); + if (nextNode.computed || isGenerator) { + return true; + } - if (n.extra != null) { - return printNumber$1(n.extra.raw); + return false; } - return printNumber$1(n.raw); - - case "StringTypeAnnotation": - return "string"; + case "TSIndexSignature": + return true; + } + /* istanbul ignore next */ - case "DeclareTypeAlias": - case "TypeAlias": - { - if (n.type === "DeclareTypeAlias" || n.declare) { - parts.push("declare "); - } - const printed = printAssignmentRight(n.id, n.right, path.call(print, "right"), options); - parts.push("type ", path.call(print, "id"), path.call(print, "typeParameters"), " =", printed, semi); - return group$7(concat$b(parts)); - } + return false; +} - case "TypeCastExpression": - { - return concat$b(["(", path.call(print, "expression"), printTypeAnnotation(path, options, print), ")"]); - } +var statement = { + printBody: printBody$1, + printSwitchCaseConsequent: printSwitchCaseConsequent$1 +}; - case "TypeParameterDeclaration": - case "TypeParameterInstantiation": - { - const value = path.getValue(); - const commentStart = options.originalText.slice(0, options.locStart(value)).lastIndexOf("/*"); // As noted in the TypeCastExpression comments above, we're able to use a normal whitespace regex here - // because we know for sure that this is a type definition. +const { + printDanglingComments: printDanglingComments$2 +} = comments$1; +const { + isNonEmptyArray: isNonEmptyArray$7 +} = util$5; +const { + builders: { + hardline: hardline$g, + indent: indent$9 + } +} = doc; +const { + hasComment: hasComment$1, + CommentCheckFlags: CommentCheckFlags$1, + isNextLineEmpty: isNextLineEmpty$5 +} = utils$5; +const { + printHardlineAfterHeritage +} = _class; +const { + printBody +} = statement; +/** @typedef {import("../../document").Doc} Doc */ - const commentSyntax = commentStart >= 0 && options.originalText.slice(commentStart).match(/^\/\*\s*::/); +function printBlock$3(path, options, print) { + const node = path.getValue(); + const parts = []; - if (commentSyntax) { - return concat$b(["/*:: ", printTypeParameters(path, options, print, "params"), " */"]); - } + if (node.type === "StaticBlock") { + parts.push("static "); + } - return printTypeParameters(path, options, print, "params"); - } + if (node.type === "ClassBody" && isNonEmptyArray$7(node.body)) { + const parent = path.getParentNode(); + parts.push(printHardlineAfterHeritage(parent)); + } - case "TSTypeParameterDeclaration": - case "TSTypeParameterInstantiation": - return printTypeParameters(path, options, print, "params"); + parts.push("{"); + const printed = printBlockBody$1(path, options, print); - case "TSTypeParameter": - case "TypeParameter": - { - const parent = path.getParentNode(); + if (printed) { + parts.push(indent$9([hardline$g, printed]), hardline$g); + } else { + const parent = path.getParentNode(); + const parentParent = path.getParentNode(1); - if (parent.type === "TSMappedType") { - parts.push("[", path.call(print, "name")); + if (!(parent.type === "ArrowFunctionExpression" || parent.type === "FunctionExpression" || parent.type === "FunctionDeclaration" || parent.type === "ObjectMethod" || parent.type === "ClassMethod" || parent.type === "ClassPrivateMethod" || parent.type === "ForStatement" || parent.type === "WhileStatement" || parent.type === "DoWhileStatement" || parent.type === "DoExpression" || parent.type === "CatchClause" && !parentParent.finalizer || parent.type === "TSModuleDeclaration" || parent.type === "TSDeclareFunction" || node.type === "StaticBlock" || node.type === "ClassBody")) { + parts.push(hardline$g); + } + } - if (n.constraint) { - parts.push(" in ", path.call(print, "constraint")); - } + parts.push("}"); + return parts; +} - parts.push("]"); - return concat$b(parts); - } +function printBlockBody$1(path, options, print) { + const node = path.getValue(); + const nodeHasDirectives = isNonEmptyArray$7(node.directives); + const nodeHasBody = node.body.some(node => node.type !== "EmptyStatement"); + const nodeHasComment = hasComment$1(node, CommentCheckFlags$1.Dangling); - const variance = getFlowVariance$1(n); + if (!nodeHasDirectives && !nodeHasBody && !nodeHasComment) { + return ""; + } - if (variance) { - parts.push(variance); - } + const parts = []; // Babel 6 - parts.push(path.call(print, "name")); + if (nodeHasDirectives) { + path.each((childPath, index, directives) => { + parts.push(print()); - if (n.bound) { - parts.push(": "); - parts.push(path.call(print, "bound")); - } + if (index < directives.length - 1 || nodeHasBody || nodeHasComment) { + parts.push(hardline$g); - if (n.constraint) { - parts.push(" extends ", path.call(print, "constraint")); + if (isNextLineEmpty$5(childPath.getValue(), options)) { + parts.push(hardline$g); } + } + }, "directives"); + } - if (n.default) { - parts.push(" = ", path.call(print, "default")); - } // Keep comma if the file extension is .tsx and - // has one type parameter that isn't extend with any types. - // Because, otherwise formatted result will be invalid as tsx. + if (nodeHasBody) { + parts.push(printBody(path, options, print)); + } + if (nodeHasComment) { + parts.push(printDanglingComments$2(path, options, + /* sameIndent */ + true)); + } - const grandParent = path.getNode(2); + if (node.type === "Program") { + const parent = path.getParentNode(); - if (parent.params && parent.params.length === 1 && isTSXFile$1(options) && !n.constraint && grandParent.type === "ArrowFunctionExpression") { - parts.push(","); - } + if (!parent || parent.type !== "ModuleExpression") { + parts.push(hardline$g); + } + } - return concat$b(parts); - } + return parts; +} - case "TypeofTypeAnnotation": - return concat$b(["typeof ", path.call(print, "argument")]); +var block$1 = { + printBlock: printBlock$3, + printBlockBody: printBlockBody$1 +}; - case "VoidTypeAnnotation": - return "void"; +const { + printDanglingComments: printDanglingComments$1 +} = comments$1; +const { + hasNewlineInRange +} = util$5; +const { + builders: { + join: join$d, + line: line$b, + hardline: hardline$f, + softline: softline$9, + group: group$d, + indent: indent$8, + conditionalGroup: conditionalGroup$1, + ifBreak: ifBreak$8 + } +} = doc; +const { + isLiteral, + getTypeScriptMappedTypeModifier, + shouldPrintComma: shouldPrintComma$1, + isCallExpression: isCallExpression$1, + isMemberExpression: isMemberExpression$1 +} = utils$5; +const { + locStart: locStart$f, + locEnd: locEnd$e +} = loc$6; +const { + printOptionalToken: printOptionalToken$1, + printTypeScriptModifiers +} = misc$1; +const { + printTernary: printTernary$1 +} = ternary; +const { + printFunctionParameters, + shouldGroupFunctionParameters +} = functionParameters; +const { + printTemplateLiteral: printTemplateLiteral$1 +} = templateLiteral; +const { + printArrayItems +} = array; +const { + printObject: printObject$1 +} = object$1; +const { + printClassProperty: printClassProperty$1, + printClassMethod: printClassMethod$1 +} = _class; +const { + printTypeParameter, + printTypeParameters +} = typeParameters; +const { + printPropertyKey +} = property; +const { + printFunction: printFunction$1, + printMethodInternal +} = _function; +const { + printInterface +} = _interface; +const { + printBlock: printBlock$2 +} = block$1; +const { + printTypeAlias, + printIntersectionType, + printUnionType, + printFunctionType, + printTupleType, + printIndexedAccessType +} = typeAnnotation; + +function printTypescript$1(path, options, print) { + const node = path.getValue(); // TypeScript nodes always starts with `TS` + + if (!node.type.startsWith("TS")) { + return; + } - case "InferredPredicate": - return "%checks"; - // Unhandled types below. If encountered, nodes of these types should - // be either left alone or desugared into AST types that are fully - // supported by the pretty-printer. + if (node.type.endsWith("Keyword")) { + return node.type.slice(2, -7).toLowerCase(); + } - case "DeclaredPredicate": - return concat$b(["%checks(", path.call(print, "value"), ")"]); + const semi = options.semi ? ";" : ""; + const parts = []; - case "TSAbstractKeyword": - return "abstract"; + switch (node.type) { + case "TSThisType": + return "this"; - case "TSAnyKeyword": - return "any"; + case "TSTypeAssertion": + { + const shouldBreakAfterCast = !(node.expression.type === "ArrayExpression" || node.expression.type === "ObjectExpression"); + const castGroup = group$d(["<", indent$8([softline$9, print("typeAnnotation")]), softline$9, ">"]); + const exprContents = [ifBreak$8("("), indent$8([softline$9, print("expression")]), softline$9, ifBreak$8(")")]; - case "TSAsyncKeyword": - return "async"; + if (shouldBreakAfterCast) { + return conditionalGroup$1([[castGroup, print("expression")], [castGroup, group$d(exprContents, { + shouldBreak: true + })], [castGroup, print("expression")]]); + } - case "TSBooleanKeyword": - return "boolean"; + return group$d([castGroup, print("expression")]); + } - case "TSBigIntKeyword": - return "bigint"; + case "TSDeclareFunction": + return printFunction$1(path, print, options); - case "TSConstKeyword": - return "const"; + case "TSExportAssignment": + return ["export = ", print("expression"), semi]; - case "TSDeclareKeyword": - return "declare"; + case "TSModuleBlock": + return printBlock$2(path, options, print); - case "TSExportKeyword": - return "export"; + case "TSInterfaceBody": + case "TSTypeLiteral": + return printObject$1(path, options, print); - case "TSNeverKeyword": - return "never"; + case "TSTypeAliasDeclaration": + return printTypeAlias(path, options, print); - case "TSNumberKeyword": - return "number"; + case "TSQualifiedName": + return join$d(".", [print("left"), print("right")]); - case "TSObjectKeyword": - return "object"; + case "TSAbstractMethodDefinition": + case "TSDeclareMethod": + return printClassMethod$1(path, options, print); - case "TSProtectedKeyword": - return "protected"; + case "TSAbstractClassProperty": + return printClassProperty$1(path, options, print); - case "TSPrivateKeyword": - return "private"; + case "TSInterfaceHeritage": + case "TSExpressionWithTypeArguments": + // Babel AST + parts.push(print("expression")); - case "TSPublicKeyword": - return "public"; + if (node.typeParameters) { + parts.push(print("typeParameters")); + } - case "TSReadonlyKeyword": - return "readonly"; + return parts; - case "TSSymbolKeyword": - return "symbol"; + case "TSTemplateLiteralType": + return printTemplateLiteral$1(path, print, options); - case "TSStaticKeyword": - return "static"; + case "TSNamedTupleMember": + return [print("label"), node.optional ? "?" : "", ": ", print("elementType")]; - case "TSStringKeyword": - return "string"; + case "TSRestType": + return ["...", print("typeAnnotation")]; - case "TSUndefinedKeyword": - return "undefined"; + case "TSOptionalType": + return [print("typeAnnotation"), "?"]; - case "TSUnknownKeyword": - return "unknown"; + case "TSInterfaceDeclaration": + return printInterface(path, options, print); - case "TSVoidKeyword": - return "void"; + case "TSClassImplements": + return [print("expression"), print("typeParameters")]; - case "TSAsExpression": - return concat$b([path.call(print, "expression"), " as ", path.call(print, "typeAnnotation")]); + case "TSTypeParameterDeclaration": + case "TSTypeParameterInstantiation": + return printTypeParameters(path, options, print, "params"); - case "TSArrayType": - return concat$b([path.call(print, "elementType"), "[]"]); + case "TSTypeParameter": + return printTypeParameter(path, options, print); - case "TSPropertySignature": + case "TSAsExpression": { - if (n.export) { - parts.push("export "); - } + parts.push(print("expression"), " as ", print("typeAnnotation")); + const parent = path.getParentNode(); - if (n.accessibility) { - parts.push(n.accessibility + " "); + if (isCallExpression$1(parent) && parent.callee === node || isMemberExpression$1(parent) && parent.object === node) { + return group$d([indent$8([softline$9, ...parts]), softline$9]); } - if (n.static) { - parts.push("static "); - } + return parts; + } + + case "TSArrayType": + return [print("elementType"), "[]"]; - if (n.readonly) { + case "TSPropertySignature": + { + if (node.readonly) { parts.push("readonly "); } - parts.push(printPropertyKey(path, options, print), printOptionalToken$2(path)); + parts.push(printPropertyKey(path, options, print), printOptionalToken$1(path)); - if (n.typeAnnotation) { - parts.push(": "); - parts.push(path.call(print, "typeAnnotation")); + if (node.typeAnnotation) { + parts.push(": ", print("typeAnnotation")); } // This isn't valid semantically, but it's in the AST so we can print it. - if (n.initializer) { - parts.push(" = ", path.call(print, "initializer")); + if (node.initializer) { + parts.push(" = ", print("initializer")); } - return concat$b(parts); + return parts; } case "TSParameterProperty": - if (n.accessibility) { - parts.push(n.accessibility + " "); + if (node.accessibility) { + parts.push(node.accessibility + " "); } - if (n.export) { + if (node.export) { parts.push("export "); } - if (n.static) { + if (node.static) { parts.push("static "); } - if (n.readonly) { - parts.push("readonly "); + if (node.override) { + parts.push("override "); } - parts.push(path.call(print, "parameter")); - return concat$b(parts); + if (node.readonly) { + parts.push("readonly "); + } - case "TSTypeReference": - return concat$b([path.call(print, "typeName"), printTypeParameters(path, options, print, "typeParameters")]); + parts.push(print("parameter")); + return parts; case "TSTypeQuery": - return concat$b(["typeof ", path.call(print, "exprName")]); + return ["typeof ", print("exprName")]; case "TSIndexSignature": { @@ -44097,253 +48028,222 @@ function printPathNoParens(path, options, print, args) { // aren't, this is more like a computed property name than an array. // So we leave off the trailing comma when there's just one parameter. - const trailingComma = n.parameters.length > 1 ? ifBreak$4(shouldPrintComma$3(options) ? "," : "") : ""; - const parametersGroup = group$7(concat$b([indent$8(concat$b([softline$6, join$6(concat$b([", ", softline$6]), path.map(print, "parameters"))])), trailingComma, softline$6])); - return concat$b([n.export ? "export " : "", n.accessibility ? concat$b([n.accessibility, " "]) : "", n.static ? "static " : "", n.readonly ? "readonly " : "", "[", n.parameters ? parametersGroup : "", n.typeAnnotation ? "]: " : "]", n.typeAnnotation ? path.call(print, "typeAnnotation") : "", parent.type === "ClassBody" ? semi : ""]); + const trailingComma = node.parameters.length > 1 ? ifBreak$8(shouldPrintComma$1(options) ? "," : "") : ""; + const parametersGroup = group$d([indent$8([softline$9, join$d([", ", softline$9], path.map(print, "parameters"))]), trailingComma, softline$9]); + return [node.export ? "export " : "", node.accessibility ? [node.accessibility, " "] : "", node.static ? "static " : "", node.readonly ? "readonly " : "", node.declare ? "declare " : "", "[", node.parameters ? parametersGroup : "", node.typeAnnotation ? "]: " : "]", node.typeAnnotation ? print("typeAnnotation") : "", parent.type === "ClassBody" ? semi : ""]; } case "TSTypePredicate": - return concat$b([n.asserts ? "asserts " : "", path.call(print, "parameterName"), n.typeAnnotation ? concat$b([" is ", path.call(print, "typeAnnotation")]) : ""]); + return [node.asserts ? "asserts " : "", print("parameterName"), node.typeAnnotation ? [" is ", print("typeAnnotation")] : ""]; case "TSNonNullExpression": - return concat$b([path.call(print, "expression"), "!"]); - - case "TSThisType": - return "this"; + return [print("expression"), "!"]; case "TSImportType": - return concat$b([!n.isTypeOf ? "" : "typeof ", "import(", path.call(print, n.parameter ? "parameter" : "argument"), ")", !n.qualifier ? "" : concat$b([".", path.call(print, "qualifier")]), printTypeParameters(path, options, print, "typeParameters")]); + return [!node.isTypeOf ? "" : "typeof ", "import(", print(node.parameter ? "parameter" : "argument"), ")", !node.qualifier ? "" : [".", print("qualifier")], printTypeParameters(path, options, print, "typeParameters")]; case "TSLiteralType": - return path.call(print, "literal"); + return print("literal"); case "TSIndexedAccessType": - return concat$b([path.call(print, "objectType"), "[", path.call(print, "indexType"), "]"]); + return printIndexedAccessType(path, options, print); case "TSConstructSignatureDeclaration": case "TSCallSignatureDeclaration": case "TSConstructorType": { - if (n.type !== "TSCallSignatureDeclaration") { + if (node.type === "TSConstructorType" && node.abstract) { + parts.push("abstract "); + } + + if (node.type !== "TSCallSignatureDeclaration") { parts.push("new "); } - parts.push(group$7(printFunctionParams(path, print, options, + parts.push(group$d(printFunctionParameters(path, print, options, /* expandArg */ false, /* printTypeParams */ true))); - if (n.returnType || n.typeAnnotation) { - const isType = n.type === "TSConstructorType"; - parts.push(isType ? " => " : ": ", path.call(print, "returnType"), path.call(print, "typeAnnotation")); + if (node.returnType || node.typeAnnotation) { + const isType = node.type === "TSConstructorType"; + parts.push(isType ? " => " : ": ", print("returnType"), print("typeAnnotation")); } - return concat$b(parts); + return parts; } case "TSTypeOperator": - return concat$b([n.operator, " ", path.call(print, "typeAnnotation")]); + return [node.operator, " ", print("typeAnnotation")]; case "TSMappedType": { - const shouldBreak = hasNewlineInRange$5(options.originalText, options.locStart(n), options.locEnd(n)); - return group$7(concat$b(["{", indent$8(concat$b([options.bracketSpacing ? line$8 : softline$6, n.readonly ? concat$b([getTypeScriptMappedTypeModifier$1(n.readonly, "readonly"), " "]) : "", printTypeScriptModifiers(path, options, print), path.call(print, "typeParameter"), n.optional ? getTypeScriptMappedTypeModifier$1(n.optional, "?") : "", n.typeAnnotation ? ": " : "", path.call(print, "typeAnnotation"), ifBreak$4(semi, "")])), comments.printDanglingComments(path, options, + const shouldBreak = hasNewlineInRange(options.originalText, locStart$f(node), locEnd$e(node)); + return group$d(["{", indent$8([options.bracketSpacing ? line$b : softline$9, node.readonly ? [getTypeScriptMappedTypeModifier(node.readonly, "readonly"), " "] : "", printTypeScriptModifiers(path, options, print), print("typeParameter"), node.optional ? getTypeScriptMappedTypeModifier(node.optional, "?") : "", node.typeAnnotation ? ": " : "", print("typeAnnotation"), ifBreak$8(semi)]), printDanglingComments$1(path, options, /* sameIndent */ - true), options.bracketSpacing ? line$8 : softline$6, "}"]), { + true), options.bracketSpacing ? line$b : softline$9, "}"], { shouldBreak }); } case "TSMethodSignature": - parts.push(n.accessibility ? concat$b([n.accessibility, " "]) : "", n.export ? "export " : "", n.static ? "static " : "", n.readonly ? "readonly " : "", n.computed ? "[" : "", path.call(print, "key"), n.computed ? "]" : "", printOptionalToken$2(path), printFunctionParams(path, print, options, - /* expandArg */ - false, - /* printTypeParams */ - true)); + { + const kind = node.kind && node.kind !== "method" ? `${node.kind} ` : ""; + parts.push(node.accessibility ? [node.accessibility, " "] : "", kind, node.export ? "export " : "", node.static ? "static " : "", node.readonly ? "readonly " : "", // "abstract" and "declare" are supported by only "babel-ts" + // https://github.com/prettier/prettier/issues/9760 + node.abstract ? "abstract " : "", node.declare ? "declare " : "", node.computed ? "[" : "", print("key"), node.computed ? "]" : "", printOptionalToken$1(path)); + const parametersDoc = printFunctionParameters(path, print, options, + /* expandArg */ + false, + /* printTypeParams */ + true); + const returnTypePropertyName = node.returnType ? "returnType" : "typeAnnotation"; + const returnTypeNode = node[returnTypePropertyName]; + const returnTypeDoc = returnTypeNode ? print(returnTypePropertyName) : ""; + const shouldGroupParameters = shouldGroupFunctionParameters(node, returnTypeDoc); + parts.push(shouldGroupParameters ? group$d(parametersDoc) : parametersDoc); - if (n.returnType || n.typeAnnotation) { - parts.push(": ", path.call(print, "returnType"), path.call(print, "typeAnnotation")); - } + if (returnTypeNode) { + parts.push(": ", group$d(returnTypeDoc)); + } - return group$7(concat$b(parts)); + return group$d(parts); + } case "TSNamespaceExportDeclaration": - parts.push("export as namespace ", path.call(print, "id")); + parts.push("export as namespace ", print("id")); if (options.semi) { parts.push(";"); } - return group$7(concat$b(parts)); + return group$d(parts); case "TSEnumDeclaration": - if (n.declare) { + if (node.declare) { parts.push("declare "); } - if (n.modifiers) { + if (node.modifiers) { parts.push(printTypeScriptModifiers(path, options, print)); } - if (n.const) { + if (node.const) { parts.push("const "); } - parts.push("enum ", path.call(print, "id"), " "); + parts.push("enum ", print("id"), " "); - if (n.members.length === 0) { - parts.push(group$7(concat$b(["{", comments.printDanglingComments(path, options), softline$6, "}"]))); + if (node.members.length === 0) { + parts.push(group$d(["{", printDanglingComments$1(path, options), softline$9, "}"])); } else { - parts.push(group$7(concat$b(["{", indent$8(concat$b([hardline$6, printArrayItems(path, options, "members", print), shouldPrintComma$3(options, "es5") ? "," : ""])), comments.printDanglingComments(path, options, + parts.push(group$d(["{", indent$8([hardline$f, printArrayItems(path, options, "members", print), shouldPrintComma$1(options, "es5") ? "," : ""]), printDanglingComments$1(path, options, /* sameIndent */ - true), hardline$6, "}"]))); + true), hardline$f, "}"])); } - return concat$b(parts); + return parts; case "TSEnumMember": - parts.push(path.call(print, "id")); + parts.push(print("id")); - if (n.initializer) { - parts.push(" = ", path.call(print, "initializer")); + if (node.initializer) { + parts.push(" = ", print("initializer")); } - return concat$b(parts); + return parts; case "TSImportEqualsDeclaration": - if (n.isExport) { + if (node.isExport) { parts.push("export "); } - parts.push("import ", path.call(print, "id"), " = ", path.call(print, "moduleReference")); + parts.push("import "); + + if (node.importKind && node.importKind !== "value") { + parts.push(node.importKind, " "); + } + + parts.push(print("id"), " = ", print("moduleReference")); if (options.semi) { parts.push(";"); } - return group$7(concat$b(parts)); + return group$d(parts); case "TSExternalModuleReference": - return concat$b(["require(", path.call(print, "expression"), ")"]); + return ["require(", print("expression"), ")"]; case "TSModuleDeclaration": { const parent = path.getParentNode(); - const isExternalModule = isLiteral$1(n.id); + const isExternalModule = isLiteral(node.id); const parentIsDeclaration = parent.type === "TSModuleDeclaration"; - const bodyIsDeclaration = n.body && n.body.type === "TSModuleDeclaration"; + const bodyIsDeclaration = node.body && node.body.type === "TSModuleDeclaration"; if (parentIsDeclaration) { parts.push("."); } else { - if (n.declare) { + if (node.declare) { parts.push("declare "); } parts.push(printTypeScriptModifiers(path, options, print)); - const textBetweenNodeAndItsId = options.originalText.slice(options.locStart(n), options.locStart(n.id)); // Global declaration looks like this: + const textBetweenNodeAndItsId = options.originalText.slice(locStart$f(node), locStart$f(node.id)); // Global declaration looks like this: // (declare)? global { ... } - const isGlobalDeclaration = n.id.type === "Identifier" && n.id.name === "global" && !/namespace|module/.test(textBetweenNodeAndItsId); + const isGlobalDeclaration = node.id.type === "Identifier" && node.id.name === "global" && !/namespace|module/.test(textBetweenNodeAndItsId); if (!isGlobalDeclaration) { parts.push(isExternalModule || /(^|\s)module(\s|$)/.test(textBetweenNodeAndItsId) ? "module " : "namespace "); } } - parts.push(path.call(print, "id")); + parts.push(print("id")); if (bodyIsDeclaration) { - parts.push(path.call(print, "body")); - } else if (n.body) { - parts.push(" ", group$7(path.call(print, "body"))); + parts.push(print("body")); + } else if (node.body) { + parts.push(" ", group$d(print("body"))); } else { parts.push(semi); } - return concat$b(parts); + return parts; } - - case "PrivateName": - return concat$b(["#", path.call(print, "id")]); // TODO: Temporary auto-generated node type. To remove when typescript-estree has proper support for private fields. case "TSPrivateIdentifier": - return n.escapedText; + return node.escapedText; case "TSConditionalType": - return ternary(path, options, print, { - beforeParts: () => [path.call(print, "checkType"), " ", "extends", " ", path.call(print, "extendsType")], - afterParts: () => [], - shouldCheckJsx: false, - conditionalNodeType: "TSConditionalType", - consequentNodePropertyName: "trueType", - alternateNodePropertyName: "falseType", - testNodePropertyNames: ["checkType", "extendsType"] - }); + return printTernary$1(path, options, print); case "TSInferType": - return concat$b(["infer", " ", path.call(print, "typeParameter")]); - - case "InterpreterDirective": - parts.push("#!", n.value, hardline$6); - - if (isNextLineEmpty$4(options.originalText, n, options.locEnd)) { - parts.push(hardline$6); - } - - return concat$b(parts); - - case "NGRoot": - return concat$b([].concat(path.call(print, "node"), !n.node.comments || n.node.comments.length === 0 ? [] : concat$b([" //", n.node.comments[0].value.trimEnd()]))); - - case "NGChainedExpression": - return group$7(join$6(concat$b([";", line$8]), path.map(childPath => hasNgSideEffect$1(childPath) ? print(childPath) : concat$b(["(", print(childPath), ")"]), "expressions"))); - - case "NGEmptyExpression": - return ""; - - case "NGQuotedExpression": - return concat$b([n.prefix, ": ", n.value.trim()]); - - case "NGMicrosyntax": - return concat$b(path.map((childPath, index) => concat$b([index === 0 ? "" : isNgForOf$1(childPath.getValue(), index, n) ? " " : concat$b([";", line$8]), print(childPath)]), "body")); - - case "NGMicrosyntaxKey": - return /^[$_a-z][\w$]*(-[$_a-z][\w$])*$/i.test(n.name) ? n.name : JSON.stringify(n.name); - - case "NGMicrosyntaxExpression": - return concat$b([path.call(print, "expression"), n.alias === null ? "" : concat$b([" as ", path.call(print, "alias")])]); + return ["infer", " ", print("typeParameter")]; - case "NGMicrosyntaxKeyedExpression": - { - const index = path.getName(); - const parentNode = path.getParentNode(); - const shouldNotPrintColon = isNgForOf$1(n, index, parentNode) || (index === 1 && (n.key.name === "then" || n.key.name === "else") || index === 2 && n.key.name === "else" && parentNode.body[index - 1].type === "NGMicrosyntaxKeyedExpression" && parentNode.body[index - 1].key.name === "then") && parentNode.body[0].type === "NGMicrosyntaxExpression"; - return concat$b([path.call(print, "key"), shouldNotPrintColon ? " " : ": ", path.call(print, "expression")]); - } + case "TSIntersectionType": + return printIntersectionType(path, options, print); - case "NGMicrosyntaxLet": - return concat$b(["let ", path.call(print, "key"), n.value === null ? "" : concat$b([" = ", path.call(print, "value")])]); + case "TSUnionType": + return printUnionType(path, options, print); - case "NGMicrosyntaxAs": - return concat$b([path.call(print, "key"), " as ", path.call(print, "alias")]); + case "TSFunctionType": + return printFunctionType(path, options, print); - case "PipelineBareFunction": - return path.call(print, "callee"); + case "TSTupleType": + return printTupleType(path, options, print); - case "PipelineTopicExpression": - return path.call(print, "expression"); + case "TSTypeReference": + return [print("typeName"), printTypeParameters(path, options, print, "typeParameters")]; - case "PipelinePrimaryTopicReference": - { - parts.push("#"); - return concat$b(parts); - } + case "TSTypeAnnotation": + return print("typeAnnotation"); - case "ArgumentPlaceholder": - return "?"; + case "TSEmptyBodyFunctionExpression": + return printMethodInternal(path, options, print); // These are not valid TypeScript. Printing them just for the sake of error recovery. case "TSJSDocAllType": @@ -44353,1213 +48253,956 @@ function printPathNoParens(path, options, print, args) { return "?"; case "TSJSDocNullableType": - return concat$b(["?", path.call(print, "typeAnnotation")]); + return ["?", print("typeAnnotation")]; case "TSJSDocNonNullableType": - return concat$b(["!", path.call(print, "typeAnnotation")]); - - case "TSJSDocFunctionType": - return concat$b(["function(", // The parameters could be here, but typescript-estree doesn't convert them anyway (throws an error). - "): ", path.call(print, "typeAnnotation")]); + return ["!", print("typeAnnotation")]; default: /* istanbul ignore next */ - throw new Error("unknown type: " + JSON.stringify(n.type)); + throw new Error(`Unknown TypeScript node type: ${JSON.stringify(node.type)}.`); } } -function printStatementSequence(path, options, print) { - const printed = []; - const bodyNode = path.getNode(); - const isClass = bodyNode.type === "ClassBody"; - path.map((stmtPath, i) => { - const stmt = stmtPath.getValue(); // Just in case the AST has been modified to contain falsy - // "statements," it's safer simply to skip them. - - /* istanbul ignore if */ - - if (!stmt) { - return; - } // Skip printing EmptyStatement nodes to avoid leaving stray - // semicolons lying around. - +var typescript = { + printTypescript: printTypescript$1 +}; - if (stmt.type === "EmptyStatement") { - return; - } +const { + hasNewline: hasNewline$2 +} = util$5; +const { + builders: { + join: join$c, + hardline: hardline$e + }, + utils: { + replaceNewlinesWithLiterallines: replaceNewlinesWithLiterallines$2 + } +} = doc; +const { + isLineComment: isLineComment$1, + isBlockComment: isBlockComment$1 +} = utils$5; +const { + locStart: locStart$e, + locEnd: locEnd$d +} = loc$6; - const stmtPrinted = print(stmtPath); - const text = options.originalText; - const parts = []; // in no-semi mode, prepend statement with semicolon if it might break ASI - // don't prepend the only JSX element in a program with semicolon +function printComment$2(commentPath, options) { + const comment = commentPath.getValue(); - if (!options.semi && !isClass && !isTheOnlyJSXElementInMarkdown$1(options, stmtPath) && stmtNeedsASIProtection(stmtPath, options)) { - if (stmt.comments && stmt.comments.some(comment => comment.leading)) { - parts.push(print(stmtPath, { - needsSemi: true - })); - } else { - parts.push(";", stmtPrinted); - } - } else { - parts.push(stmtPrinted); - } + if (isLineComment$1(comment)) { + // Supports `//`, `#!`, `` + return options.originalText.slice(locStart$e(comment), locEnd$d(comment)).trimEnd(); + } - if (!options.semi && isClass) { - if (classPropMayCauseASIProblems$1(stmtPath)) { - parts.push(";"); - } else if (stmt.type === "ClassProperty") { - const nextChild = bodyNode.body[i + 1]; + if (isBlockComment$1(comment)) { + if (isIndentableBlockComment(comment)) { + const printed = printIndentableBlockComment(comment); // We need to prevent an edge case of a previous trailing comment + // printed as a `lineSuffix` which causes the comments to be + // interleaved. See https://github.com/prettier/prettier/issues/4412 - if (classChildNeedsASIProtection$1(nextChild)) { - parts.push(";"); - } + if (comment.trailing && !hasNewline$2(options.originalText, locStart$e(comment), { + backwards: true + })) { + return [hardline$e, printed]; } - } - if (isNextLineEmpty$4(text, stmt, options.locEnd) && !isLastStatement$1(stmtPath)) { - parts.push(hardline$6); + return printed; } - printed.push(concat$b(parts)); - }); - return join$6(hardline$6, printed); -} - -function printPropertyKey(path, options, print) { - const node = path.getNode(); - - if (node.computed) { - return concat$b(["[", path.call(print, "key"), "]"]); - } - - const parent = path.getParentNode(); - const { - key - } = node; - - if (node.type === "ClassPrivateProperty" && // flow has `Identifier` key, and babel has `PrivateName` key - key.type === "Identifier") { - return concat$b(["#", path.call(print, "key")]); - } - - if (options.quoteProps === "consistent" && !needsQuoteProps.has(parent)) { - const objectHasStringProp = (parent.properties || parent.body || parent.members).some(prop => !prop.computed && prop.key && isStringLiteral$1(prop.key) && !isStringPropSafeToUnquote$1(prop, options)); - needsQuoteProps.set(parent, objectHasStringProp); - } - - if ((key.type === "Identifier" || isNumericLiteral$3(key) && isSimpleNumber$1(printNumber$1(rawText$1(key))) && // Avoid converting 999999999999999999999 to 1e+21, 0.99999999999999999 to 1 and 1.0 to 1. - String(key.value) === printNumber$1(rawText$1(key)) && // Quoting number keys is safe in JS and Flow, but not in TypeScript (as - // mentioned in `isStringPropSafeToUnquote`). - !(options.parser === "typescript" || options.parser === "babel-ts")) && (options.parser === "json" || options.quoteProps === "consistent" && needsQuoteProps.get(parent))) { - // a -> "a" - // 1 -> "1" - // 1.5 -> "1.5" - const prop = printString$1(JSON.stringify(key.type === "Identifier" ? key.name : key.value.toString()), options); - return path.call(keyPath => comments.printComments(keyPath, () => prop, options), "key"); + const commentEnd = locEnd$d(comment); + const isInsideFlowComment = options.originalText.slice(commentEnd - 3, commentEnd) === "*-/"; + return ["/*", replaceNewlinesWithLiterallines$2(comment.value), isInsideFlowComment ? "*-/" : "*/"]; } + /* istanbul ignore next */ - if (isStringPropSafeToUnquote$1(node, options) && (options.quoteProps === "as-needed" || options.quoteProps === "consistent" && !needsQuoteProps.get(parent))) { - // 'a' -> a - // '1' -> 1 - // '1.5' -> 1.5 - return path.call(keyPath => comments.printComments(keyPath, () => /^\d/.test(key.value) ? printNumber$1(key.value) : key.value, options), "key"); - } - return path.call(print, "key"); + throw new Error("Not a comment: " + JSON.stringify(comment)); } -function printMethod(path, options, print) { - const node = path.getNode(); - const { - kind - } = node; - const value = node.value || node; - const parts = []; - - if (!kind || kind === "init" || kind === "method" || kind === "constructor") { - if (value.async) { - parts.push("async "); - } - - if (value.generator) { - parts.push("*"); - } - } else { - assert__default['default'].ok(kind === "get" || kind === "set"); - parts.push(kind, " "); - } - - parts.push(printPropertyKey(path, options, print), node.optional || node.key.optional ? "?" : "", node === value ? printMethodInternal(path, options, print) : path.call(path => printMethodInternal(path, options, print), "value")); - return concat$b(parts); +function isIndentableBlockComment(comment) { + // If the comment has multiple lines and every line starts with a star + // we can fix the indentation of each line. The stars in the `/*` and + // `*/` delimiters are not included in the comment value, so add them + // back first. + const lines = `*${comment.value}*`.split("\n"); + return lines.length > 1 && lines.every(line => line.trim()[0] === "*"); } -function printMethodInternal(path, options, print) { - const parts = [printFunctionTypeParameters$2(path, options, print), group$7(concat$b([printFunctionParams(path, print, options), printReturnType(path, print, options)]))]; - - if (path.getNode().body) { - parts.push(" ", path.call(print, "body")); - } else { - parts.push(options.semi ? ";" : ""); - } - - return concat$b(parts); +function printIndentableBlockComment(comment) { + const lines = comment.value.split("\n"); + return ["/*", join$c(hardline$e, lines.map((line, index) => index === 0 ? line.trimEnd() : " " + (index < lines.length - 1 ? line.trim() : line.trimStart()))), "*/"]; } -function printJestEachTemplateLiteral(path, options, print) { - /** - * a | b | expected - * ${1} | ${1} | ${2} - * ${1} | ${2} | ${3} - * ${2} | ${1} | ${3} - */ - const node = path.getNode(); - const headerNames = node.quasis[0].value.raw.trim().split(/\s*\|\s*/); - - if (headerNames.length > 1 || headerNames.some(headerName => headerName.length !== 0)) { - options.__inJestEach = true; - const expressions = path.map(print, "expressions"); - options.__inJestEach = false; - const parts = []; - const stringifiedExpressions = expressions.map(doc => "${" + printDocToString$2(doc, Object.assign({}, options, { - printWidth: Infinity, - endOfLine: "lf" - })).formatted + "}"); - const tableBody = [{ - hasLineBreak: false, - cells: [] - }]; - - for (let i = 1; i < node.quasis.length; i++) { - const row = tableBody[tableBody.length - 1]; - const correspondingExpression = stringifiedExpressions[i - 1]; - row.cells.push(correspondingExpression); - - if (correspondingExpression.includes("\n")) { - row.hasLineBreak = true; - } - - if (node.quasis[i].value.raw.includes("\n")) { - tableBody.push({ - hasLineBreak: false, - cells: [] - }); - } - } +var comment = { + printComment: printComment$2 +}; - const maxColumnCount = Math.max(headerNames.length, ...tableBody.map(row => row.cells.length)); - const maxColumnWidths = Array.from({ - length: maxColumnCount - }).fill(0); - const table = [{ - cells: headerNames - }, ...tableBody.filter(row => row.cells.length !== 0)]; +const { + printString: printString$1, + printNumber: printNumber$1 +} = util$5; - for (const { - cells - } of table.filter(row => !row.hasLineBreak)) { - cells.forEach((cell, index) => { - maxColumnWidths[index] = Math.max(maxColumnWidths[index], getStringWidth$3(cell)); - }); - } +function printLiteral$1(path, options +/*, print*/ +) { + const node = path.getNode(); - parts.push(lineSuffixBoundary$1, "`", indent$8(concat$b([hardline$6, join$6(hardline$6, table.map(row => join$6(" | ", row.cells.map((cell, index) => row.hasLineBreak ? cell : cell + " ".repeat(maxColumnWidths[index] - getStringWidth$3(cell))))))])), hardline$6, "`"); - return concat$b(parts); - } -} + switch (node.type) { + case "RegExpLiteral": + // Babel 6 Literal split + return printRegex(node); -function printTypeAnnotation(path, options, print) { - const node = path.getValue(); + case "BigIntLiteral": + // babel: node.extra.raw, flow: node.bigint + return printBigInt(node.bigint || node.extra.raw); - if (!node.typeAnnotation) { - return ""; - } + case "NumericLiteral": + // Babel 6 Literal split + return printNumber$1(node.extra.raw); - const parentNode = path.getParentNode(); - const isDefinite = node.definite || parentNode && parentNode.type === "VariableDeclarator" && parentNode.definite; - const isFunctionDeclarationIdentifier = parentNode.type === "DeclareFunction" && parentNode.id === node; + case "StringLiteral": + // Babel 6 Literal split + return printString$1(node.extra.raw, options); - if (isFlowAnnotationComment$1(options.originalText, node.typeAnnotation, options)) { - return concat$b([" /*: ", path.call(print, "typeAnnotation"), " */"]); - } + case "NullLiteral": + // Babel 6 Literal split + return "null"; - return concat$b([isFunctionDeclarationIdentifier ? "" : isDefinite ? "!: " : ": ", path.call(print, "typeAnnotation")]); -} + case "BooleanLiteral": + // Babel 6 Literal split + return String(node.value); -function printFunctionParams(path, print, options, expandArg, printTypeParams) { - const fun = path.getValue(); - const parent = path.getParentNode(); - const paramsField = fun.parameters ? "parameters" : "params"; - const isParametersInTestCall = isTestCall$1(parent); - const shouldHugParameters = shouldHugArguments(fun); - const shouldExpandParameters = expandArg && !(fun[paramsField] && fun[paramsField].some(n => n.comments)); - const typeParams = printTypeParams ? printFunctionTypeParameters$2(path, options, print) : ""; - let printed = []; - - if (fun[paramsField]) { - const lastArgIndex = fun[paramsField].length - 1; - printed = path.map((childPath, index) => { - const parts = []; - const param = childPath.getValue(); - parts.push(print(childPath)); + case "DecimalLiteral": + return printNumber$1(node.value) + "m"; - if (index === lastArgIndex) { - if (fun.rest) { - parts.push(",", line$8); + case "Literal": + { + if (node.regex) { + return printRegex(node.regex); } - } else if (isParametersInTestCall || shouldHugParameters || shouldExpandParameters) { - parts.push(", "); - } else if (isNextLineEmpty$4(options.originalText, param, options.locEnd)) { - parts.push(",", hardline$6, hardline$6); - } else { - parts.push(",", line$8); - } - - return concat$b(parts); - }, paramsField); - } - - if (fun.rest) { - printed.push(concat$b(["...", path.call(print, "rest")])); - } - if (printed.length === 0) { - return concat$b([typeParams, "(", comments.printDanglingComments(path, options, - /* sameIndent */ - true, comment => getNextNonSpaceNonCommentCharacter$2(options.originalText, comment, options.locEnd) === ")"), ")"]); - } - - const lastParam = getLast$5(fun[paramsField]); // If the parent is a call with the first/last argument expansion and this is the - // params of the first/last argument, we don't want the arguments to break and instead - // want the whole expression to be on a new line. - // - // Good: Bad: - // verylongcall( verylongcall(( - // (a, b) => { a, - // } b, - // }) ) => { - // }) - - if (shouldExpandParameters) { - return group$7(concat$b([removeLines$1(typeParams), "(", concat$b(printed.map(removeLines$1)), ")"])); - } // Single object destructuring should hug - // - // function({ - // a, - // b, - // c - // }) {} - - - const hasNotParameterDecorator = fun[paramsField].every(param => !param.decorators); - - if (shouldHugParameters && hasNotParameterDecorator) { - return concat$b([typeParams, "(", concat$b(printed), ")"]); - } // don't break in specs, eg; `it("should maintain parens around done even when long", (done) => {})` + if (node.bigint) { + return printBigInt(node.raw); + } + if (node.decimal) { + return printNumber$1(node.decimal) + "m"; + } - if (isParametersInTestCall) { - return concat$b([typeParams, "(", concat$b(printed), ")"]); - } + const { + value + } = node; - const isFlowShorthandWithOneArg = (isObjectTypePropertyAFunction$1(parent, options) || isTypeAnnotationAFunction$1(parent, options) || parent.type === "TypeAlias" || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType" || parent.type === "IntersectionTypeAnnotation" || parent.type === "FunctionTypeAnnotation" && parent.returnType === fun) && fun[paramsField].length === 1 && fun[paramsField][0].name === null && fun[paramsField][0].typeAnnotation && fun.typeParameters === null && isSimpleFlowType$1(fun[paramsField][0].typeAnnotation) && !fun.rest; + if (typeof value === "number") { + return printNumber$1(node.raw); + } - if (isFlowShorthandWithOneArg) { - if (options.arrowParens === "always") { - return concat$b(["(", concat$b(printed), ")"]); - } + if (typeof value === "string") { + return printString$1(node.raw, options); + } - return concat$b(printed); + return String(value); + } } - - const canHaveTrailingComma = !(lastParam && lastParam.type === "RestElement") && !fun.rest; - return concat$b([typeParams, "(", indent$8(concat$b([softline$6, concat$b(printed)])), ifBreak$4(canHaveTrailingComma && shouldPrintComma$3(options, "all") ? "," : ""), softline$6, ")"]); } -function shouldPrintParamsWithoutParens(path, options) { - if (options.arrowParens === "always") { - return false; - } - - if (options.arrowParens === "avoid") { - const node = path.getValue(); - return canPrintParamsWithoutParens(node); - } // Fallback default; should be unreachable - - /* istanbul ignore next */ - - - return false; +function printBigInt(raw) { + return raw.toLowerCase(); } -function canPrintParamsWithoutParens(node) { - return node.params.length === 1 && !node.rest && !node.typeParameters && !hasDanglingComments$1(node) && node.params[0].type === "Identifier" && !node.params[0].typeAnnotation && !node.params[0].comments && !node.params[0].optional && !node.predicate && !node.returnType; +function printRegex({ + pattern, + flags +}) { + flags = flags.split("").sort().join(""); + return `/${pattern}/${flags}`; } -function printFunctionDeclaration(path, print, options) { - const n = path.getValue(); - const parts = []; - - if (n.async) { - parts.push("async "); - } - - if (n.generator) { - parts.push("function* "); - } else { - parts.push("function "); - } - - if (n.id) { - parts.push(path.call(print, "id")); - } +var literal = { + printLiteral: printLiteral$1 +}; - parts.push(printFunctionTypeParameters$2(path, options, print), group$7(concat$b([printFunctionParams(path, print, options), printReturnType(path, print, options)])), n.body ? " " : "", path.call(print, "body")); - return concat$b(parts); -} +/** @typedef {import("../document").Doc} Doc */ +// TODO(azz): anything that imports from main shouldn't be in a `language-*` dir. -function printReturnType(path, print, options) { - const n = path.getValue(); - const returnType = path.call(print, "returnType"); - if (n.returnType && isFlowAnnotationComment$1(options.originalText, n.returnType, options)) { - return concat$b([" /*: ", returnType, " */"]); +const { + printDanglingComments +} = comments$1; +const { + hasNewline: hasNewline$1 +} = util$5; +const { + builders: { + join: join$b, + line: line$a, + hardline: hardline$d, + softline: softline$8, + group: group$c, + indent: indent$7 + }, + utils: { + replaceNewlinesWithLiterallines: replaceNewlinesWithLiterallines$1 } +} = doc; +const { + insertPragma: insertPragma$9 +} = pragma$5; +const { + hasFlowShorthandAnnotationComment, + hasComment, + CommentCheckFlags, + isTheOnlyJsxElementInMarkdown, + isBlockComment, + isLineComment, + isNextLineEmpty: isNextLineEmpty$4, + needsHardlineAfterDanglingComment, + rawText, + hasIgnoreComment, + isCallExpression, + isMemberExpression +} = utils$5; +const { + locStart: locStart$d, + locEnd: locEnd$c +} = loc$6; +const { + printHtmlBinding, + isVueEventBindingExpression: isVueEventBindingExpression$2 +} = htmlBinding; +const { + printAngular +} = angular; +const { + printJsx, + hasJsxIgnoreComment +} = jsx; +const { + printFlow +} = flow; +const { + printTypescript +} = typescript; +const { + printOptionalToken, + printBindExpressionCallee, + printTypeAnnotation, + adjustClause, + printRestSpread +} = misc$1; +const { + printImportDeclaration, + printExportDeclaration, + printExportAllDeclaration, + printModuleSpecifier +} = module$1; +const { + printTernary +} = ternary; +const { + printTemplateLiteral +} = templateLiteral; +const { + printArray +} = array; +const { + printObject +} = object$1; +const { + printClass, + printClassMethod, + printClassProperty +} = _class; +const { + printProperty +} = property; +const { + printFunction, + printArrowFunction, + printMethod, + printReturnStatement, + printThrowStatement +} = _function; +const { + printCallExpression +} = callExpression; +const { + printVariableDeclarator, + printAssignmentExpression +} = assignment; +const { + printBinaryishExpression +} = binaryish; +const { + printSwitchCaseConsequent +} = statement; +const { + printMemberExpression +} = member; +const { + printBlock: printBlock$1, + printBlockBody +} = block$1; +const { + printComment: printComment$1 +} = comment; +const { + printLiteral +} = literal; +const { + printDecorators +} = decorators; - const parts = [returnType]; // prepend colon to TypeScript type annotation - - if (n.returnType && n.returnType.typeAnnotation) { - parts.unshift(": "); - } +function genericPrint$6(path, options, print, args) { + const printed = printPathNoParens(path, options, print, args); - if (n.predicate) { - // The return type will already add the colon, but otherwise we - // need to do it ourselves - parts.push(n.returnType ? " " : ": ", path.call(print, "predicate")); + if (!printed) { + return ""; } - return concat$b(parts); -} - -function printExportDeclaration(path, options, print) { - const decl = path.getValue(); - const semi = options.semi ? ";" : ""; - /** @type{Doc[]} */ - - const parts = ["export "]; - const isDefault = decl.default || decl.type === "ExportDefaultDeclaration"; + const node = path.getValue(); + const { + type + } = node; // Their decorators are handled themselves, and they can't have parentheses - if (isDefault) { - parts.push("default "); + if (type === "ClassMethod" || type === "ClassPrivateMethod" || type === "ClassProperty" || type === "PropertyDefinition" || type === "TSAbstractClassProperty" || type === "ClassPrivateProperty" || type === "MethodDefinition" || type === "TSAbstractMethodDefinition" || type === "TSDeclareMethod") { + return printed; } - parts.push(comments.printDanglingComments(path, options, - /* sameIndent */ - true)); + const printedDecorators = printDecorators(path, options, print); // Nodes with decorators can't have parentheses and don't need leading semicolons - if (needsHardlineAfterDanglingComment$1(decl)) { - parts.push(hardline$6); + if (printedDecorators) { + return group$c([...printedDecorators, printed]); } - if (decl.declaration) { - parts.push(path.call(print, "declaration")); + const needsParens = needsParens_1(path, options); - if (isDefault && decl.declaration.type !== "ClassDeclaration" && decl.declaration.type !== "FunctionDeclaration" && decl.declaration.type !== "TSInterfaceDeclaration" && decl.declaration.type !== "DeclareClass" && decl.declaration.type !== "DeclareFunction" && decl.declaration.type !== "TSDeclareFunction" && decl.declaration.type !== "EnumDeclaration") { - parts.push(semi); - } - } else { - parts.push(decl.exportKind === "type" ? "type " : ""); - parts.push(printModuleSpecifiers$1(path, options, print)); - parts.push(printModuleSource$1(path, options, print)); - parts.push(semi); + if (!needsParens) { + return args && args.needsSemi ? [";", printed] : printed; } - return concat$b(parts); -} - -function printFlowDeclaration(path, parts) { - const parentExportDecl = getParentExportDeclaration$1(path); + const parts = [args && args.needsSemi ? ";(" : "(", printed]; - if (parentExportDecl) { - assert__default['default'].strictEqual(parentExportDecl.type, "DeclareExportDeclaration"); - } else { - // If the parent node has type DeclareExportDeclaration, then it - // will be responsible for printing the "declare" token. Otherwise - // it needs to be printed with this non-exported declaration node. - parts.unshift("declare "); + if (hasFlowShorthandAnnotationComment(node)) { + const [comment] = node.trailingComments; + parts.push(" /*", comment.value.trimStart(), "*/"); + comment.printed = true; } - return concat$b(parts); + parts.push(")"); + return parts; } -function printTypeScriptModifiers(path, options, print) { - const n = path.getValue(); +function printPathNoParens(path, options, print, args) { + const node = path.getValue(); + const semi = options.semi ? ";" : ""; - if (!n.modifiers || !n.modifiers.length) { + if (!node) { return ""; } - return concat$b([join$6(" ", path.map(print, "modifiers")), " "]); -} - -const typeParametersGroupIds = new WeakMap(); - -function getTypeParametersGroupId(node) { - if (!typeParametersGroupIds.has(node)) { - typeParametersGroupIds.set(node, Symbol("typeParameters")); - } - - return typeParametersGroupIds.get(node); -} - -function printTypeParameters(path, options, print, paramsKey) { - const n = path.getValue(); - - if (!n[paramsKey]) { - return ""; - } // for TypeParameterDeclaration typeParameters is a single node - - - if (!Array.isArray(n[paramsKey])) { - return path.call(print, paramsKey); + if (typeof node === "string") { + return node; } - const grandparent = path.getNode(2); - const greatGrandParent = path.getNode(3); - const greatGreatGrandParent = path.getNode(4); - const isParameterInTestCall = grandparent != null && isTestCall$1(grandparent); - const shouldInline = isParameterInTestCall || n[paramsKey].length === 0 || n[paramsKey].length === 1 && (shouldHugType(n[paramsKey][0]) || n[paramsKey][0].type === "GenericTypeAnnotation" && shouldHugType(n[paramsKey][0].id) || n[paramsKey][0].type === "TSTypeReference" && shouldHugType(n[paramsKey][0].typeName) || n[paramsKey][0].type === "NullableTypeAnnotation" || // See https://github.com/prettier/prettier/pull/6467 for the context. - greatGreatGrandParent && greatGreatGrandParent.type === "VariableDeclarator" && grandparent.type === "TSTypeAnnotation" && greatGrandParent.type !== "ArrowFunctionExpression" && n[paramsKey][0].type !== "TSUnionType" && n[paramsKey][0].type !== "UnionTypeAnnotation" && n[paramsKey][0].type !== "TSIntersectionType" && n[paramsKey][0].type !== "IntersectionTypeAnnotation" && n[paramsKey][0].type !== "TSConditionalType" && n[paramsKey][0].type !== "TSMappedType" && n[paramsKey][0].type !== "TSTypeOperator" && n[paramsKey][0].type !== "TSIndexedAccessType" && n[paramsKey][0].type !== "TSArrayType"); - - function printDanglingCommentsForInline(n) { - if (!hasDanglingComments$1(n)) { - return ""; - } - - const hasOnlyBlockComments = n.comments.every(comments$1.isBlockComment); - const printed = comments.printDanglingComments(path, options, - /* sameIndent */ - hasOnlyBlockComments); + for (const printer of [printLiteral, printHtmlBinding, printAngular, printJsx, printFlow, printTypescript]) { + const printed = printer(path, options, print); - if (hasOnlyBlockComments) { + if (typeof printed !== "undefined") { return printed; } - - return concat$b([printed, hardline$6]); } + /** @type{Doc[]} */ - if (shouldInline) { - return concat$b(["<", join$6(", ", path.map(print, paramsKey)), printDanglingCommentsForInline(n), ">"]); - } - return group$7(concat$b(["<", indent$8(concat$b([softline$6, join$6(concat$b([",", line$8]), path.map(print, paramsKey))])), ifBreak$4(options.parser !== "typescript" && options.parser !== "babel-ts" && shouldPrintComma$3(options, "all") ? "," : ""), softline$6, ">"]), { - id: getTypeParametersGroupId(n) - }); -} + let parts = []; -function printClass(path, options, print) { - const n = path.getValue(); - const parts = []; + switch (node.type) { + case "JsExpressionRoot": + return print("node"); - if (n.abstract) { - parts.push("abstract "); - } + case "JsonRoot": + return [print("node"), hardline$d]; - parts.push("class"); // Keep old behaviour of extends in same line - // If there is only on extends and there are not comments + case "File": + // Print @babel/parser's InterpreterDirective here so that + // leading comments on the `Program` node get printed after the hashbang. + if (node.program && node.program.interpreter) { + parts.push(print(["program", "interpreter"])); + } - const groupMode = n.id && hasTrailingComment$3(n.id) || n.superClass && n.superClass.comments && n.superClass.comments.length !== 0 || n.extends && n.extends.length !== 0 || // DeclareClass - n.mixins && n.mixins.length !== 0 || n.implements && n.implements.length !== 0; - const partsGroup = []; - const extendsParts = []; + parts.push(print("program")); + return parts; - if (n.id) { - partsGroup.push(" ", path.call(print, "id")); - } + case "Program": + return printBlockBody(path, options, print); + // Babel extension. - partsGroup.push(path.call(print, "typeParameters")); - const hasMultipleHeritage = ["superClass", "extends", "mixins", "implements"].filter(key => !!n[key]).length > 1; - const shouldIndentOnlyHeritageClauses = n.typeParameters && !hasTrailingLineComment$1(n.typeParameters) && !hasMultipleHeritage; + case "EmptyStatement": + return ""; - function printList(listName) { - if (n[listName] && n[listName].length !== 0) { - const printedLeadingComments = comments.printDanglingComments(path, options, - /* sameIndent */ - true, ({ - marker - }) => marker === listName); - extendsParts.push(shouldIndentOnlyHeritageClauses ? ifBreak$4(" ", line$8, { - groupId: getTypeParametersGroupId(n.typeParameters) - }) : line$8, printedLeadingComments, printedLeadingComments && hardline$6, listName, group$7(indent$8(concat$b([line$8, join$6(concat$b([",", line$8]), path.map(print, listName))])))); - } - } + case "ExpressionStatement": + // Detect Flow and TypeScript directives + if (node.directive) { + return [printDirective(node.expression, options), semi]; + } - if (n.superClass) { - const printed = concat$b(["extends ", path.call(print, "superClass"), path.call(print, "superTypeParameters")]); - const printedWithComments = path.call(superClass => comments.printComments(superClass, () => printed, options), "superClass"); + if (options.parser === "__vue_event_binding") { + const parent = path.getParentNode(); - if (groupMode) { - extendsParts.push(line$8, group$7(printedWithComments)); - } else { - extendsParts.push(" ", printedWithComments); - } - } else { - printList("extends"); - } + if (parent.type === "Program" && parent.body.length === 1 && parent.body[0] === node) { + return [print("expression"), isVueEventBindingExpression$2(node.expression) ? ";" : ""]; + } + } // Do not append semicolon after the only JSX element in a program - printList("mixins"); - printList("implements"); - if (groupMode) { - const printedExtends = concat$b(extendsParts); + return [print("expression"), isTheOnlyJsxElementInMarkdown(options, path) ? "" : semi]; + // Babel non-standard node. Used for Closure-style type casts. See postprocess.js. - if (shouldIndentOnlyHeritageClauses) { - parts.push(group$7(concat$b(partsGroup.concat(ifBreak$4(indent$8(printedExtends), printedExtends))))); - } else { - parts.push(group$7(indent$8(concat$b(partsGroup.concat(printedExtends))))); - } - } else { - parts.push(...partsGroup, ...extendsParts); - } + case "ParenthesizedExpression": + { + const shouldHug = !hasComment(node.expression) && (node.expression.type === "ObjectExpression" || node.expression.type === "ArrayExpression"); - parts.push(" ", path.call(print, "body")); - return parts; -} + if (shouldHug) { + return ["(", print("expression"), ")"]; + } -function separatorNoWhitespace(isFacebookTranslationTag, child, childNode, nextNode) { - if (isFacebookTranslationTag) { - return ""; - } + return group$c(["(", indent$7([softline$8, print("expression")]), softline$8, ")"]); + } - if (childNode.type === "JSXElement" && !childNode.closingElement || nextNode && nextNode.type === "JSXElement" && !nextNode.closingElement) { - return child.length === 1 ? softline$6 : hardline$6; - } + case "AssignmentExpression": + return printAssignmentExpression(path, options, print); - return softline$6; -} + case "VariableDeclarator": + return printVariableDeclarator(path, options, print); -function separatorWithWhitespace(isFacebookTranslationTag, child, childNode, nextNode) { - if (isFacebookTranslationTag) { - return hardline$6; - } + case "BinaryExpression": + case "LogicalExpression": + return printBinaryishExpression(path, options, print); - if (child.length === 1) { - return childNode.type === "JSXElement" && !childNode.closingElement || nextNode && nextNode.type === "JSXElement" && !nextNode.closingElement ? hardline$6 : softline$6; - } + case "AssignmentPattern": + return [print("left"), " = ", print("right")]; - return hardline$6; -} // JSX Children are strange, mostly for two reasons: -// 1. JSX reads newlines into string values, instead of skipping them like JS -// 2. up to one whitespace between elements within a line is significant, -// but not between lines. -// -// Leading, trailing, and lone whitespace all need to -// turn themselves into the rather ugly `{' '}` when breaking. -// -// We print JSX using the `fill` doc primitive. -// This requires that we give it an array of alternating -// content and whitespace elements. -// To ensure this we add dummy `""` content elements as needed. + case "OptionalMemberExpression": + case "MemberExpression": + { + return printMemberExpression(path, options, print); + } + + case "MetaProperty": + return [print("meta"), ".", print("property")]; + case "BindExpression": + if (node.object) { + parts.push(print("object")); + } -function printJSXChildren(path, options, print, jsxWhitespace, isFacebookTranslationTag) { - const n = path.getValue(); - const children = []; // using `map` instead of `each` because it provides `i` + parts.push(group$c(indent$7([softline$8, printBindExpressionCallee(path, options, print)]))); + return parts; - path.map((childPath, i) => { - const child = childPath.getValue(); + case "Identifier": + { + return [node.name, printOptionalToken(path), printTypeAnnotation(path, options, print)]; + } - if (isLiteral$1(child)) { - const text = rawText$1(child); // Contains a non-whitespace character + case "V8IntrinsicIdentifier": + return ["%", node.name]; - if (isMeaningfulJSXText$1(child)) { - const words = text.split(matchJsxWhitespaceRegex$1); // Starts with whitespace + case "SpreadElement": + case "SpreadElementPattern": + case "SpreadProperty": + case "SpreadPropertyPattern": + case "RestElement": + return printRestSpread(path, options, print); - if (words[0] === "") { - children.push(""); - words.shift(); + case "FunctionDeclaration": + case "FunctionExpression": + return printFunction(path, print, options, args); - if (/\n/.test(words[0])) { - const next = n.children[i + 1]; - children.push(separatorWithWhitespace(isFacebookTranslationTag, words[1], child, next)); - } else { - children.push(jsxWhitespace); - } + case "ArrowFunctionExpression": + return printArrowFunction(path, options, print, args); - words.shift(); - } + case "YieldExpression": + parts.push("yield"); - let endWhitespace; // Ends with whitespace + if (node.delegate) { + parts.push("*"); + } - if (getLast$5(words) === "") { - words.pop(); - endWhitespace = words.pop(); - } // This was whitespace only without a new line. + if (node.argument) { + parts.push(" ", print("argument")); + } + return parts; - if (words.length === 0) { - return; - } + case "AwaitExpression": + { + parts.push("await"); - words.forEach((word, i) => { - if (i % 2 === 1) { - children.push(line$8); - } else { - children.push(word); - } - }); + if (node.argument) { + parts.push(" ", print("argument")); + const parent = path.getParentNode(); - if (endWhitespace !== undefined) { - if (/\n/.test(endWhitespace)) { - const next = n.children[i + 1]; - children.push(separatorWithWhitespace(isFacebookTranslationTag, getLast$5(children), child, next)); - } else { - children.push(jsxWhitespace); + if (isCallExpression(parent) && parent.callee === node || isMemberExpression(parent) && parent.object === node) { + parts = [indent$7([softline$8, ...parts]), softline$8]; + const parentAwaitOrBlock = path.findAncestor(node => node.type === "AwaitExpression" || node.type === "BlockStatement"); + + if (!parentAwaitOrBlock || parentAwaitOrBlock.type !== "AwaitExpression") { + return group$c(parts); + } } - } else { - const next = n.children[i + 1]; - children.push(separatorNoWhitespace(isFacebookTranslationTag, getLast$5(children), child, next)); - } - } else if (/\n/.test(text)) { - // Keep (up to one) blank line between tags/expressions/text. - // Note: We don't keep blank lines between text elements. - if (text.match(/\n/g).length > 1) { - children.push(""); - children.push(hardline$6); } - } else { - children.push(""); - children.push(jsxWhitespace); - } - } else { - const printedChild = print(childPath); - children.push(printedChild); - const next = n.children[i + 1]; - const directlyFollowedByMeaningfulText = next && isMeaningfulJSXText$1(next); - if (directlyFollowedByMeaningfulText) { - const firstWord = rawText$1(next).trim().split(matchJsxWhitespaceRegex$1)[0]; - children.push(separatorNoWhitespace(isFacebookTranslationTag, firstWord, child, next)); - } else { - children.push(hardline$6); + return parts; } - } - }, "children"); - return children; -} // JSX expands children from the inside-out, instead of the outside-in. -// This is both to break children before attributes, -// and to ensure that when children break, their parents do as well. -// -// Any element that is written without any newlines and fits on a single line -// is left that way. -// Not only that, any user-written-line containing multiple JSX siblings -// should also be kept on one line if possible, -// so each user-written-line is wrapped in its own group. -// -// Elements that contain newlines or don't fit on a single line (recursively) -// are fully-split, using hardline and shouldBreak: true. -// -// To support that case properly, all leading and trailing spaces -// are stripped from the list of children, and replaced with a single hardline. + case "ExportDefaultDeclaration": + case "ExportNamedDeclaration": + return printExportDeclaration(path, options, print); -function printJSXElement(path, options, print) { - const n = path.getValue(); + case "ExportAllDeclaration": + return printExportAllDeclaration(path, options, print); - if (n.type === "JSXElement" && isEmptyJSXElement$1(n)) { - return concat$b([path.call(print, "openingElement"), path.call(print, "closingElement")]); - } + case "ImportDeclaration": + return printImportDeclaration(path, options, print); - const openingLines = n.type === "JSXElement" ? path.call(print, "openingElement") : path.call(print, "openingFragment"); - const closingLines = n.type === "JSXElement" ? path.call(print, "closingElement") : path.call(print, "closingFragment"); + case "ImportSpecifier": + case "ExportSpecifier": + case "ImportNamespaceSpecifier": + case "ExportNamespaceSpecifier": + case "ImportDefaultSpecifier": + case "ExportDefaultSpecifier": + return printModuleSpecifier(path, options, print); - if (n.children.length === 1 && n.children[0].type === "JSXExpressionContainer" && (n.children[0].expression.type === "TemplateLiteral" || n.children[0].expression.type === "TaggedTemplateExpression")) { - return concat$b([openingLines, concat$b(path.map(print, "children")), closingLines]); - } // Convert `{" "}` to text nodes containing a space. - // This makes it easy to turn them into `jsxWhitespace` which - // can then print as either a space or `{" "}` when breaking. + case "ImportAttribute": + return [print("key"), ": ", print("value")]; + case "Import": + return "import"; - n.children = n.children.map(child => { - if (isJSXWhitespaceExpression$1(child)) { - return { - type: "JSXText", - value: " ", - raw: " " - }; - } + case "BlockStatement": + case "StaticBlock": + case "ClassBody": + return printBlock$1(path, options, print); - return child; - }); - const containsTag = n.children.filter(isJSXNode$3).length > 0; - const containsMultipleExpressions = n.children.filter(child => child.type === "JSXExpressionContainer").length > 1; - const containsMultipleAttributes = n.type === "JSXElement" && n.openingElement.attributes.length > 1; // Record any breaks. Should never go from true to false, only false to true. + case "ThrowStatement": + return printThrowStatement(path, options, print); - let forcedBreak = willBreak$3(openingLines) || containsTag || containsMultipleAttributes || containsMultipleExpressions; - const isMdxBlock = path.getParentNode().rootMarker === "mdx"; - const rawJsxWhitespace = options.singleQuote ? "{' '}" : '{" "}'; - const jsxWhitespace = isMdxBlock ? concat$b([" "]) : ifBreak$4(concat$b([rawJsxWhitespace, softline$6]), " "); - const isFacebookTranslationTag = n.openingElement && n.openingElement.name && n.openingElement.name.name === "fbt"; - const children = printJSXChildren(path, options, print, jsxWhitespace, isFacebookTranslationTag); - const containsText = n.children.some(child => isMeaningfulJSXText$1(child)); // We can end up we multiple whitespace elements with empty string - // content between them. - // We need to remove empty whitespace and softlines before JSX whitespace - // to get the correct output. + case "ReturnStatement": + return printReturnStatement(path, options, print); - for (let i = children.length - 2; i >= 0; i--) { - const isPairOfEmptyStrings = children[i] === "" && children[i + 1] === ""; - const isPairOfHardlines = children[i] === hardline$6 && children[i + 1] === "" && children[i + 2] === hardline$6; - const isLineFollowedByJSXWhitespace = (children[i] === softline$6 || children[i] === hardline$6) && children[i + 1] === "" && children[i + 2] === jsxWhitespace; - const isJSXWhitespaceFollowedByLine = children[i] === jsxWhitespace && children[i + 1] === "" && (children[i + 2] === softline$6 || children[i + 2] === hardline$6); - const isDoubleJSXWhitespace = children[i] === jsxWhitespace && children[i + 1] === "" && children[i + 2] === jsxWhitespace; - const isPairOfHardOrSoftLines = children[i] === softline$6 && children[i + 1] === "" && children[i + 2] === hardline$6 || children[i] === hardline$6 && children[i + 1] === "" && children[i + 2] === softline$6; + case "NewExpression": + case "ImportExpression": + case "OptionalCallExpression": + case "CallExpression": + return printCallExpression(path, options, print); - if (isPairOfHardlines && containsText || isPairOfEmptyStrings || isLineFollowedByJSXWhitespace || isDoubleJSXWhitespace || isPairOfHardOrSoftLines) { - children.splice(i, 2); - } else if (isJSXWhitespaceFollowedByLine) { - children.splice(i + 1, 2); - } - } // Trim trailing lines (or empty strings) + case "ObjectExpression": + case "ObjectPattern": + case "RecordExpression": + return printObject(path, options, print); + // Babel 6 + case "ObjectProperty": // Non-standard AST node type. - while (children.length && (isLineNext$1(getLast$5(children)) || isEmpty$1(getLast$5(children)))) { - children.pop(); - } // Trim leading lines (or empty strings) + case "Property": + if (node.method || node.kind === "get" || node.kind === "set") { + return printMethod(path, options, print); + } + return printProperty(path, options, print); - while (children.length && (isLineNext$1(children[0]) || isEmpty$1(children[0])) && (isLineNext$1(children[1]) || isEmpty$1(children[1]))) { - children.shift(); - children.shift(); - } // Tweak how we format children if outputting this element over multiple lines. - // Also detect whether we will force this element to output over multiple lines. + case "ObjectMethod": + return printMethod(path, options, print); + case "Decorator": + return ["@", print("expression")]; - const multilineChildren = []; - children.forEach((child, i) => { - // There are a number of situations where we need to ensure we display - // whitespace as `{" "}` when outputting this element over multiple lines. - if (child === jsxWhitespace) { - if (i === 1 && children[i - 1] === "") { - if (children.length === 2) { - // Solitary whitespace - multilineChildren.push(rawJsxWhitespace); - return; - } // Leading whitespace + case "ArrayExpression": + case "ArrayPattern": + case "TupleExpression": + return printArray(path, options, print); + case "SequenceExpression": + { + const parent = path.getParentNode(0); - multilineChildren.push(concat$b([rawJsxWhitespace, hardline$6])); - return; - } else if (i === children.length - 1) { - // Trailing whitespace - multilineChildren.push(rawJsxWhitespace); - return; - } else if (children[i - 1] === "" && children[i - 2] === hardline$6) { - // Whitespace after line break - multilineChildren.push(rawJsxWhitespace); - return; + if (parent.type === "ExpressionStatement" || parent.type === "ForStatement") { + // For ExpressionStatements and for-loop heads, which are among + // the few places a SequenceExpression appears unparenthesized, we want + // to indent expressions after the first. + const parts = []; + path.each((expressionPath, index) => { + if (index === 0) { + parts.push(print()); + } else { + parts.push(",", indent$7([line$a, print()])); + } + }, "expressions"); + return group$c(parts); + } + + return group$c(join$b([",", line$a], path.map(print, "expressions"))); } - } - multilineChildren.push(child); + case "ThisExpression": + return "this"; - if (willBreak$3(child)) { - forcedBreak = true; - } - }); // If there is text we use `fill` to fit as much onto each line as possible. - // When there is no text (just tags and expressions) we use `group` - // to output each on a separate line. + case "Super": + return "super"; - const content = containsText ? fill$3(multilineChildren) : group$7(concat$b(multilineChildren), { - shouldBreak: true - }); + case "Directive": + return [print("value"), semi]; + // Babel 6 - if (isMdxBlock) { - return content; - } + case "DirectiveLiteral": + return printDirective(node, options); - const multiLineElem = group$7(concat$b([openingLines, indent$8(concat$b([hardline$6, content])), hardline$6, closingLines])); + case "UnaryExpression": + parts.push(node.operator); - if (forcedBreak) { - return multiLineElem; - } + if (/[a-z]$/.test(node.operator)) { + parts.push(" "); + } - return conditionalGroup$3([group$7(concat$b([openingLines, concat$b(children), closingLines])), multiLineElem]); -} + if (hasComment(node.argument)) { + parts.push(group$c(["(", indent$7([softline$8, print("argument")]), softline$8, ")"])); + } else { + parts.push(print("argument")); + } -function maybeWrapJSXElementInParens(path, elem, options) { - const parent = path.getParentNode(); - /* istanbul ignore next */ + return parts; - if (!parent) { - return elem; - } + case "UpdateExpression": + parts.push(print("argument"), node.operator); - const NO_WRAP_PARENTS = { - ArrayExpression: true, - JSXAttribute: true, - JSXElement: true, - JSXExpressionContainer: true, - JSXFragment: true, - ExpressionStatement: true, - CallExpression: true, - OptionalCallExpression: true, - ConditionalExpression: true, - JsExpressionRoot: true - }; + if (node.prefix) { + parts.reverse(); + } - if (NO_WRAP_PARENTS[parent.type]) { - return elem; - } + return parts; - const shouldBreak = path.match(undefined, node => node.type === "ArrowFunctionExpression", isCallOrOptionalCallExpression$2, node => node.type === "JSXExpressionContainer"); - const needsParens = needsParens_1(path, options); - return group$7(concat$b([needsParens ? "" : ifBreak$4("("), indent$8(concat$b([softline$6, elem])), softline$6, needsParens ? "" : ifBreak$4(")")]), { - shouldBreak - }); -} + case "ConditionalExpression": + return printTernary(path, options, print); -function shouldInlineLogicalExpression(node) { - if (node.type !== "LogicalExpression") { - return false; - } + case "VariableDeclaration": + { + const printed = path.map(print, "declarations"); // We generally want to terminate all variable declarations with a + // semicolon, except when they in the () part of for loops. - if (node.right.type === "ObjectExpression" && node.right.properties.length !== 0) { - return true; - } + const parentNode = path.getParentNode(); + const isParentForLoop = parentNode.type === "ForStatement" || parentNode.type === "ForInStatement" || parentNode.type === "ForOfStatement"; + const hasValue = node.declarations.some(decl => decl.init); + let firstVariable; - if (node.right.type === "ArrayExpression" && node.right.elements.length !== 0) { - return true; - } + if (printed.length === 1 && !hasComment(node.declarations[0])) { + firstVariable = printed[0]; + } else if (printed.length > 0) { + // Indent first var to comply with eslint one-var rule + firstVariable = indent$7(printed[0]); + } - if (isJSXNode$3(node.right)) { - return true; - } + parts = [node.declare ? "declare " : "", node.kind, firstVariable ? [" ", firstVariable] : "", indent$7(printed.slice(1).map(p => [",", hasValue && !isParentForLoop ? hardline$d : line$a, p]))]; - return false; -} // For binary expressions to be consistent, we need to group -// subsequent operators with the same precedence level under a single -// group. Otherwise they will be nested such that some of them break -// onto new lines but not all. Operators with the same precedence -// level should either all break or not. Because we group them by -// precedence level and the AST is structured based on precedence -// level, things are naturally broken up correctly, i.e. `&&` is -// broken before `+`. + if (!(isParentForLoop && parentNode.body !== node)) { + parts.push(semi); + } + return group$c(parts); + } -function printBinaryishExpressions(path, print, options, isNested, isInsideParenthesis) { - /** @type{Doc[]} */ - let parts = []; - const node = path.getValue(); // We treat BinaryExpression and LogicalExpression nodes the same. + case "WithStatement": + return group$c(["with (", print("object"), ")", adjustClause(node.body, print("body"))]); - if (isBinaryish$1(node)) { - // Put all operators with the same precedence level in the same - // group. The reason we only need to do this with the `left` - // expression is because given an expression like `1 + 2 - 3`, it - // is always parsed like `((1 + 2) - 3)`, meaning the `left` side - // is where the rest of the expression will exist. Binary - // expressions on the right side mean they have a difference - // precedence level and should be treated as a separate group, so - // print them normally. (This doesn't hold for the `**` operator, - // which is unique in that it is right-associative.) - if (shouldFlatten$2(node.operator, node.left.operator)) { - // Flatten them out by recursively calling this function. - parts = parts.concat(path.call(left => printBinaryishExpressions(left, print, options, - /* isNested */ - true, isInsideParenthesis), "left")); - } else { - parts.push(group$7(path.call(print, "left"))); - } + case "IfStatement": + { + const con = adjustClause(node.consequent, print("consequent")); + const opening = group$c(["if (", group$c([indent$7([softline$8, print("test")]), softline$8]), ")", con]); + parts.push(opening); - const shouldInline = shouldInlineLogicalExpression(node); - const lineBeforeOperator = (node.operator === "|>" || node.type === "NGPipeExpression" || node.operator === "|" && options.parser === "__vue_expression") && !hasLeadingOwnLineComment$1(options.originalText, node.right, options); - const operator = node.type === "NGPipeExpression" ? "|" : node.operator; - const rightSuffix = node.type === "NGPipeExpression" && node.arguments.length !== 0 ? group$7(indent$8(concat$b([softline$6, ": ", join$6(concat$b([softline$6, ":", ifBreak$4(" ")]), path.map(print, "arguments").map(arg => align$2(2, group$7(arg))))]))) : ""; - const right = shouldInline ? concat$b([operator, " ", path.call(print, "right"), rightSuffix]) : concat$b([lineBeforeOperator ? line$8 : "", operator, lineBeforeOperator ? " " : line$8, path.call(print, "right"), rightSuffix]); // If there's only a single binary expression, we want to create a group - // in order to avoid having a small right part like -1 be on its own line. + if (node.alternate) { + const commentOnOwnLine = hasComment(node.consequent, CommentCheckFlags.Trailing | CommentCheckFlags.Line) || needsHardlineAfterDanglingComment(node); + const elseOnSameLine = node.consequent.type === "BlockStatement" && !commentOnOwnLine; + parts.push(elseOnSameLine ? " " : hardline$d); - const parent = path.getParentNode(); - const shouldBreak = hasTrailingLineComment$1(node.left); - const shouldGroup = shouldBreak || !(isInsideParenthesis && node.type === "LogicalExpression") && parent.type !== node.type && node.left.type !== node.type && node.right.type !== node.type; - parts.push(lineBeforeOperator ? "" : " ", shouldGroup ? group$7(right, { - shouldBreak - }) : right); // The root comments are already printed, but we need to manually print - // the other ones since we don't call the normal print on BinaryExpression, - // only for the left and right parts + if (hasComment(node, CommentCheckFlags.Dangling)) { + parts.push(printDanglingComments(path, options, true), commentOnOwnLine ? hardline$d : " "); + } - if (isNested && node.comments) { - parts = normalizeParts$1(comments.printComments(path, () => concat$b(parts), options).parts); - } - } else { - // Our stopping case. Simply print the node normally. - parts.push(group$7(path.call(print))); - } + parts.push("else", group$c(adjustClause(node.alternate, print("alternate"), node.alternate.type === "IfStatement"))); + } - return parts; -} + return parts; + } -function printAssignmentRight(leftNode, rightNode, printedRight, options) { - if (hasLeadingOwnLineComment$1(options.originalText, rightNode, options)) { - return indent$8(concat$b([line$8, printedRight])); - } + case "ForStatement": + { + const body = adjustClause(node.body, print("body")); // We want to keep dangling comments above the loop to stay consistent. + // Any comment positioned between the for statement and the parentheses + // is going to be printed before the statement. - const canBreak = isBinaryish$1(rightNode) && !shouldInlineLogicalExpression(rightNode) || rightNode.type === "ConditionalExpression" && isBinaryish$1(rightNode.test) && !shouldInlineLogicalExpression(rightNode.test) || rightNode.type === "StringLiteralTypeAnnotation" || rightNode.type === "ClassExpression" && rightNode.decorators && rightNode.decorators.length || (leftNode.type === "Identifier" || isStringLiteral$1(leftNode) || leftNode.type === "MemberExpression") && (isStringLiteral$1(rightNode) || isMemberExpressionChain$1(rightNode)) && // do not put values on a separate line from the key in json - options.parser !== "json" && options.parser !== "json5" || rightNode.type === "SequenceExpression"; + const dangling = printDanglingComments(path, options, + /* sameLine */ + true); + const printedComments = dangling ? [dangling, softline$8] : ""; - if (canBreak) { - return group$7(indent$8(concat$b([line$8, printedRight]))); - } + if (!node.init && !node.test && !node.update) { + return [printedComments, group$c(["for (;;)", body])]; + } - return concat$b([" ", printedRight]); -} + return [printedComments, group$c(["for (", group$c([indent$7([softline$8, print("init"), ";", line$a, print("test"), ";", line$a, print("update")]), softline$8]), ")", body])]; + } -function printAssignment(leftNode, printedLeft, operator, rightNode, printedRight, options) { - if (!rightNode) { - return printedLeft; - } + case "WhileStatement": + return group$c(["while (", group$c([indent$7([softline$8, print("test")]), softline$8]), ")", adjustClause(node.body, print("body"))]); - const printed = printAssignmentRight(leftNode, rightNode, printedRight, options); - return group$7(concat$b([printedLeft, operator, printed])); -} + case "ForInStatement": + return group$c(["for (", print("left"), " in ", print("right"), ")", adjustClause(node.body, print("body"))]); -function adjustClause(node, clause, forceSpace) { - if (node.type === "EmptyStatement") { - return ";"; - } + case "ForOfStatement": + return group$c(["for", node.await ? " await" : "", " (", print("left"), " of ", print("right"), ")", adjustClause(node.body, print("body"))]); - if (node.type === "BlockStatement" || forceSpace) { - return concat$b([" ", clause]); - } + case "DoWhileStatement": + { + const clause = adjustClause(node.body, print("body")); + const doBody = group$c(["do", clause]); + parts = [doBody]; - return indent$8(concat$b([line$8, clause])); -} + if (node.body.type === "BlockStatement") { + parts.push(" "); + } else { + parts.push(hardline$d); + } -function nodeStr(node, options, isFlowOrTypeScriptDirectiveLiteral) { - const raw = rawText$1(node); - const isDirectiveLiteral = isFlowOrTypeScriptDirectiveLiteral || node.type === "DirectiveLiteral"; - return printString$1(raw, options, isDirectiveLiteral); -} + parts.push("while (", group$c([indent$7([softline$8, print("test")]), softline$8]), ")", semi); + return parts; + } -function printRegex(node) { - const flags = node.flags.split("").sort().join(""); - return `/${node.pattern}/${flags}`; -} + case "DoExpression": + return [node.async ? "async " : "", "do ", print("body")]; -function exprNeedsASIProtection(path, options) { - const node = path.getValue(); - const maybeASIProblem = needsParens_1(path, options) || node.type === "ParenthesizedExpression" || node.type === "TypeCastExpression" || node.type === "ArrowFunctionExpression" && !shouldPrintParamsWithoutParens(path, options) || node.type === "ArrayExpression" || node.type === "ArrayPattern" || node.type === "UnaryExpression" && node.prefix && (node.operator === "+" || node.operator === "-") || node.type === "TemplateLiteral" || node.type === "TemplateElement" || isJSXNode$3(node) || node.type === "BindExpression" && !node.object || node.type === "RegExpLiteral" || node.type === "Literal" && node.pattern || node.type === "Literal" && node.regex; + case "BreakStatement": + parts.push("break"); - if (maybeASIProblem) { - return true; - } + if (node.label) { + parts.push(" ", print("label")); + } - if (!hasNakedLeftSide$2(node)) { - return false; - } + parts.push(semi); + return parts; - return path.call(childPath => exprNeedsASIProtection(childPath, options), ...getLeftSidePathName$2(path, node)); -} + case "ContinueStatement": + parts.push("continue"); -function stmtNeedsASIProtection(path, options) { - const node = path.getNode(); + if (node.label) { + parts.push(" ", print("label")); + } - if (node.type !== "ExpressionStatement") { - return false; - } + parts.push(semi); + return parts; - return path.call(childPath => exprNeedsASIProtection(childPath, options), "expression"); -} + case "LabeledStatement": + if (node.body.type === "EmptyStatement") { + return [print("label"), ":;"]; + } -function shouldHugType(node) { - if (isSimpleFlowType$1(node) || isObjectType$1(node)) { - return true; - } + return [print("label"), ": ", print("body")]; - if (node.type === "UnionTypeAnnotation" || node.type === "TSUnionType") { - const voidCount = node.types.filter(n => n.type === "VoidTypeAnnotation" || n.type === "TSVoidKeyword" || n.type === "NullLiteralTypeAnnotation" || n.type === "TSNullKeyword").length; - const hasObject = node.types.some(n => n.type === "ObjectTypeAnnotation" || n.type === "TSTypeLiteral" || // This is a bit aggressive but captures Array<{x}> - n.type === "GenericTypeAnnotation" || n.type === "TSTypeReference"); + case "TryStatement": + return ["try ", print("block"), node.handler ? [" ", print("handler")] : "", node.finalizer ? [" finally ", print("finalizer")] : ""]; - if (node.types.length - 1 === voidCount && hasObject) { - return true; - } - } + case "CatchClause": + if (node.param) { + const parameterHasComments = hasComment(node.param, comment => !isBlockComment(comment) || comment.leading && hasNewline$1(options.originalText, locEnd$c(comment)) || comment.trailing && hasNewline$1(options.originalText, locStart$d(comment), { + backwards: true + })); + const param = print("param"); + return ["catch ", parameterHasComments ? ["(", indent$7([softline$8, param]), softline$8, ") "] : ["(", param, ") "], print("body")]; + } - return false; -} + return ["catch ", print("body")]; + // Note: ignoring n.lexical because it has no printing consequences. -function shouldHugArguments(fun) { - if (!fun || fun.rest) { - return false; - } + case "SwitchStatement": + return [group$c(["switch (", indent$7([softline$8, print("discriminant")]), softline$8, ")"]), " {", node.cases.length > 0 ? indent$7([hardline$d, join$b(hardline$d, path.map((casePath, index, cases) => { + const caseNode = casePath.getValue(); + return [print(), index !== cases.length - 1 && isNextLineEmpty$4(caseNode, options) ? hardline$d : ""]; + }, "cases"))]) : "", hardline$d, "}"]; - const params = fun.params || fun.parameters; + case "SwitchCase": + { + if (node.test) { + parts.push("case ", print("test"), ":"); + } else { + parts.push("default:"); + } - if (!params || params.length !== 1) { - return false; - } + const consequent = node.consequent.filter(node => node.type !== "EmptyStatement"); - const param = params[0]; - return !param.comments && (param.type === "ObjectPattern" || param.type === "ArrayPattern" || param.type === "Identifier" && param.typeAnnotation && (param.typeAnnotation.type === "TypeAnnotation" || param.typeAnnotation.type === "TSTypeAnnotation") && isObjectType$1(param.typeAnnotation.typeAnnotation) || param.type === "FunctionTypeParam" && isObjectType$1(param.typeAnnotation) || param.type === "AssignmentPattern" && (param.left.type === "ObjectPattern" || param.left.type === "ArrayPattern") && (param.right.type === "Identifier" || param.right.type === "ObjectExpression" && param.right.properties.length === 0 || param.right.type === "ArrayExpression" && param.right.elements.length === 0)); -} + if (consequent.length > 0) { + const cons = printSwitchCaseConsequent(path, options, print); + parts.push(consequent.length === 1 && consequent[0].type === "BlockStatement" ? [" ", cons] : indent$7([hardline$d, cons])); + } -function printArrayItems(path, options, printPath, print) { - const printedElements = []; - let separatorParts = []; - path.each(childPath => { - printedElements.push(concat$b(separatorParts)); - printedElements.push(group$7(print(childPath))); - separatorParts = [",", line$8]; + return parts; + } + // JSX extensions below. - if (childPath.getValue() && isNextLineEmpty$4(options.originalText, childPath.getValue(), options.locEnd)) { - separatorParts.push(softline$6); - } - }, printPath); - return concat$b(printedElements); -} + case "DebuggerStatement": + return ["debugger", semi]; -function printReturnAndThrowArgument(path, options, print) { - const node = path.getValue(); - const semi = options.semi ? ";" : ""; - const parts = []; + case "ClassDeclaration": + case "ClassExpression": + return printClass(path, options, print); - if (node.argument) { - if (returnArgumentHasLeadingComment$1(options, node.argument)) { - parts.push(concat$b([" (", indent$8(concat$b([hardline$6, path.call(print, "argument")])), hardline$6, ")"])); - } else if (isBinaryish$1(node.argument) || node.argument.type === "SequenceExpression") { - parts.push(group$7(concat$b([ifBreak$4(" (", " "), indent$8(concat$b([softline$6, path.call(print, "argument")])), softline$6, ifBreak$4(")")]))); - } else { - parts.push(" ", path.call(print, "argument")); - } - } + case "ClassMethod": + case "ClassPrivateMethod": + case "MethodDefinition": + return printClassMethod(path, options, print); - const lastComment = Array.isArray(node.comments) && node.comments[node.comments.length - 1]; - const isLastCommentLine = lastComment && (lastComment.type === "CommentLine" || lastComment.type === "Line"); + case "ClassProperty": + case "PropertyDefinition": + case "ClassPrivateProperty": + return printClassProperty(path, options, print); - if (isLastCommentLine) { - parts.push(semi); - } + case "TemplateElement": + return replaceNewlinesWithLiterallines$1(node.value.raw); - if (hasDanglingComments$1(node)) { - parts.push(" ", comments.printDanglingComments(path, options, - /* sameIndent */ - true)); - } + case "TemplateLiteral": + return printTemplateLiteral(path, print, options); - if (!isLastCommentLine) { - parts.push(semi); - } + case "TaggedTemplateExpression": + return [print("tag"), print("typeParameters"), print("quasi")]; - return concat$b(parts); -} + case "PrivateIdentifier": + return ["#", print("name")]; -function willPrintOwnComments(path -/*, options */ -) { - const node = path.getValue(); - const parent = path.getParentNode(); - return (node && (isJSXNode$3(node) || hasFlowShorthandAnnotationComment$2(node) || parent && (parent.type === "CallExpression" || parent.type === "OptionalCallExpression") && (hasFlowAnnotationComment$1(node.leadingComments) || hasFlowAnnotationComment$1(node.trailingComments))) || parent && (parent.type === "JSXSpreadAttribute" || parent.type === "JSXSpreadChild" || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType" || (parent.type === "ClassDeclaration" || parent.type === "ClassExpression") && parent.superClass === node)) && (!hasIgnoreComment$2(path) || parent.type === "UnionTypeAnnotation" || parent.type === "TSUnionType"); -} + case "PrivateName": + return ["#", print("id")]; -function canAttachComment(node) { - return node.type && node.type !== "CommentBlock" && node.type !== "CommentLine" && node.type !== "Line" && node.type !== "Block" && node.type !== "EmptyStatement" && node.type !== "TemplateElement" && node.type !== "Import"; -} + case "InterpreterDirective": + parts.push("#!", node.value, hardline$d); -function printComment$1(commentPath, options) { - const comment = commentPath.getValue(); + if (isNextLineEmpty$4(node, options)) { + parts.push(hardline$d); + } - switch (comment.type) { - case "CommentBlock": - case "Block": + return parts; + + case "PipelineBareFunction": + return print("callee"); + + case "PipelineTopicExpression": + return print("expression"); + + case "PipelinePrimaryTopicReference": + return "#"; + + case "ArgumentPlaceholder": + return "?"; + + case "ModuleExpression": { - if (isIndentableBlockComment(comment)) { - const printed = printIndentableBlockComment(comment); // We need to prevent an edge case of a previous trailing comment - // printed as a `lineSuffix` which causes the comments to be - // interleaved. See https://github.com/prettier/prettier/issues/4412 - - if (comment.trailing && !hasNewline$5(options.originalText, options.locStart(comment), { - backwards: true - })) { - return concat$b([hardline$6, printed]); - } + parts.push("module {"); + const printed = print("body"); - return printed; + if (printed) { + parts.push(indent$7([hardline$d, printed]), hardline$d); } - const commentEnd = options.locEnd(comment); - const isInsideFlowComment = options.originalText.slice(commentEnd - 3, commentEnd) === "*-/"; - return "/*" + comment.value + (isInsideFlowComment ? "*-/" : "*/"); + parts.push("}"); + return parts; } - case "CommentLine": - case "Line": - // Supports `//`, `#!`, `` - return options.originalText.slice(options.locStart(comment), options.locEnd(comment)).trimEnd(); - default: /* istanbul ignore next */ - throw new Error("Not a comment: " + JSON.stringify(comment)); + throw new Error("unknown type: " + JSON.stringify(node.type)); } } -function isIndentableBlockComment(comment) { - // If the comment has multiple lines and every line starts with a star - // we can fix the indentation of each line. The stars in the `/*` and - // `*/` delimiters are not included in the comment value, so add them - // back first. - const lines = `*${comment.value}*`.split("\n"); - return lines.length > 1 && lines.every(line => line.trim()[0] === "*"); +function printDirective(node, options) { + const raw = rawText(node); + const rawContent = raw.slice(1, -1); // Check for the alternate quote, to determine if we're allowed to swap + // the quotes on a DirectiveLiteral. + + if (rawContent.includes('"') || rawContent.includes("'")) { + return raw; + } + + const enclosingQuote = options.singleQuote ? "'" : '"'; // Directives are exact code unit sequences, which means that you can't + // change the escape sequences they use. + // See https://github.com/prettier/prettier/issues/1555 + // and https://tc39.github.io/ecma262/#directive-prologue + + return enclosingQuote + rawContent + enclosingQuote; } -function printIndentableBlockComment(comment) { - const lines = comment.value.split("\n"); - return concat$b(["/*", join$6(hardline$6, lines.map((line, index) => index === 0 ? line.trimEnd() : " " + (index < lines.length - 1 ? line.trim() : line.trimStart()))), "*/"]); +function canAttachComment$1(node) { + return node.type && !isBlockComment(node) && !isLineComment(node) && node.type !== "EmptyStatement" && node.type !== "TemplateElement" && node.type !== "Import" && // `babel-ts` don't have similar node for `class Foo { bar() /* bat */; }` + node.type !== "TSEmptyBodyFunctionExpression"; } var printerEstree = { - preprocess: preprocess_1, - print: genericPrint, - embed: embed_1, - insertPragma: insertPragma$1, - massageAstNode: clean_1, - hasPrettierIgnore: hasPrettierIgnore$1, - willPrintOwnComments, - canAttachComment, + preprocess: printPreprocess$3, + print: genericPrint$6, + embed: embed_1$3, + insertPragma: insertPragma$9, + massageAstNode: clean_1$4, + + hasPrettierIgnore(path) { + return hasIgnoreComment(path) || hasJsxIgnoreComment(path); + }, + + willPrintOwnComments: comments.willPrintOwnComments, + canAttachComment: canAttachComment$1, printComment: printComment$1, - isBlockComment: comments$1.isBlockComment, + isBlockComment, handleComments: { - ownLine: comments$1.handleOwnLineComment, - endOfLine: comments$1.handleEndOfLineComment, - remaining: comments$1.handleRemainingComment + // TODO: Make this as default behavior + avoidAstMutation: true, + ownLine: comments.handleOwnLineComment, + endOfLine: comments.handleEndOfLineComment, + remaining: comments.handleRemainingComment }, - getGapRegex: comments$1.getGapRegex, - getCommentChildNodes: comments$1.getCommentChildNodes + getCommentChildNodes: comments.getCommentChildNodes }; const { - concat: concat$c, - hardline: hardline$7, - indent: indent$9, - join: join$7 -} = document.builders; + builders: { + hardline: hardline$c, + indent: indent$6, + join: join$a + } +} = doc; -function genericPrint$1(path, options, print) { +function genericPrint$5(path, options, print) { const node = path.getValue(); switch (node.type) { case "JsonRoot": - return concat$c([path.call(print, "node"), hardline$7]); + return [print("node"), hardline$c]; case "ArrayExpression": - return node.elements.length === 0 ? "[]" : concat$c(["[", indent$9(concat$c([hardline$7, join$7(concat$c([",", hardline$7]), path.map(print, "elements"))])), hardline$7, "]"]); + { + if (node.elements.length === 0) { + return "[]"; + } + + const printed = path.map(() => path.getValue() === null ? "null" : print(), "elements"); + return ["[", indent$6([hardline$c, join$a([",", hardline$c], printed)]), hardline$c, "]"]; + } case "ObjectExpression": - return node.properties.length === 0 ? "{}" : concat$c(["{", indent$9(concat$c([hardline$7, join$7(concat$c([",", hardline$7]), path.map(print, "properties"))])), hardline$7, "}"]); + return node.properties.length === 0 ? "{}" : ["{", indent$6([hardline$c, join$a([",", hardline$c], path.map(print, "properties"))]), hardline$c, "}"]; case "ObjectProperty": - return concat$c([path.call(print, "key"), ": ", path.call(print, "value")]); + return [print("key"), ": ", print("value")]; case "UnaryExpression": - return concat$c([node.operator === "+" ? "" : node.operator, path.call(print, "argument")]); + return [node.operator === "+" ? "" : node.operator, print("argument")]; case "NullLiteral": return "null"; @@ -45572,7 +49215,22 @@ function genericPrint$1(path, options, print) { return JSON.stringify(node.value); case "Identifier": - return JSON.stringify(node.name); + { + const parent = path.getParentNode(); + + if (parent && parent.type === "ObjectProperty" && parent.key === node) { + return JSON.stringify(node.name); + } + + return node.name; + } + + case "TemplateLiteral": + // There is only one `TemplateElement` + return print(["quasis", 0]); + + case "TemplateElement": + return JSON.stringify(node.value.cooked); default: /* istanbul ignore next */ @@ -45580,36 +49238,57 @@ function genericPrint$1(path, options, print) { } } -function clean$1(node, newNode +const ignoredProperties$3 = new Set(["start", "end", "extra", "loc", "comments", "leadingComments", "trailingComments", "innerComments", "errors", "range", "tokens"]); + +function clean$6(node, newNode /*, parent*/ ) { - delete newNode.start; - delete newNode.end; - delete newNode.extra; - delete newNode.loc; - delete newNode.comments; - delete newNode.errors; - delete newNode.range; + const { + type + } = node; // We print quoted key - if (node.type === "Identifier") { - return { + if (type === "ObjectProperty" && node.key.type === "Identifier") { + newNode.key = { type: "StringLiteral", - value: node.name + value: node.key.name }; + return; } - if (node.type === "UnaryExpression" && node.operator === "+") { + if (type === "UnaryExpression" && node.operator === "+") { return newNode.argument; + } // We print holes in array as `null` + + + if (type === "ArrayExpression") { + for (const [index, element] of node.elements.entries()) { + if (element === null) { + newNode.elements.splice(index, 0, { + type: "NullLiteral" + }); + } + } + + return; + } // We print `TemplateLiteral` as string + + + if (type === "TemplateLiteral") { + return { + type: "StringLiteral", + value: node.quasis[0].value.cooked + }; } } +clean$6.ignoredProperties = ignoredProperties$3; var printerEstreeJson = { - preprocess: preprocess_1, - print: genericPrint$1, - massageAstNode: clean$1 + preprocess: printPreprocess$3, + print: genericPrint$5, + massageAstNode: clean$6 }; -const CATEGORY_COMMON = "Common"; // format based on https://github.com/prettier/prettier/blob/master/src/main/core-options.js +const CATEGORY_COMMON = "Common"; // format based on https://github.com/prettier/prettier/blob/main/src/main/core-options.js var commonOptions = { bracketSpacing: { @@ -45655,9 +49334,9 @@ var commonOptions = { } }; -const CATEGORY_JAVASCRIPT = "JavaScript"; // format based on https://github.com/prettier/prettier/blob/master/src/main/core-options.js +const CATEGORY_JAVASCRIPT = "JavaScript"; // format based on https://github.com/prettier/prettier/blob/main/src/main/core-options.js -var options$2 = { +var options$5 = { arrowParens: { since: "1.9.0", category: CATEGORY_JAVASCRIPT, @@ -45747,18 +49426,18 @@ var options$2 = { } }; -var name$2 = "JavaScript"; -var type = "programming"; -var tmScope = "source.js"; -var aceMode = "javascript"; -var codemirrorMode = "javascript"; -var codemirrorMimeType = "text/javascript"; -var color = "#f1e05a"; -var aliases = [ +var name$f = "JavaScript"; +var type$f = "programming"; +var tmScope$f = "source.js"; +var aceMode$f = "javascript"; +var codemirrorMode$b = "javascript"; +var codemirrorMimeType$b = "text/javascript"; +var color$a = "#f1e05a"; +var aliases$6 = [ "js", "node" ]; -var extensions = [ +var extensions$f = [ ".js", "._js", ".bones", @@ -45773,6 +49452,7 @@ var extensions = [ ".jsfl", ".jsm", ".jss", + ".jsx", ".mjs", ".njs", ".pac", @@ -45781,183 +49461,99 @@ var extensions = [ ".xsjs", ".xsjslib" ]; -var filenames = [ +var filenames$4 = [ "Jakefile" ]; -var interpreters = [ +var interpreters$1 = [ "chakra", "d8", "gjs", "js", "node", + "nodejs", "qjs", "rhino", "v8", "v8-shell" ]; -var languageId = 183; -var JavaScript = { - name: name$2, - type: type, - tmScope: tmScope, - aceMode: aceMode, - codemirrorMode: codemirrorMode, - codemirrorMimeType: codemirrorMimeType, - color: color, - aliases: aliases, - extensions: extensions, - filenames: filenames, - interpreters: interpreters, - languageId: languageId -}; - -var JavaScript$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$2, - type: type, - tmScope: tmScope, - aceMode: aceMode, - codemirrorMode: codemirrorMode, - codemirrorMimeType: codemirrorMimeType, - color: color, - aliases: aliases, - extensions: extensions, - filenames: filenames, - interpreters: interpreters, - languageId: languageId, - 'default': JavaScript -}); - -var name$3 = "JSX"; -var type$1 = "programming"; -var group$8 = "JavaScript"; -var extensions$1 = [ - ".jsx" -]; -var tmScope$1 = "source.js.jsx"; -var aceMode$1 = "javascript"; -var codemirrorMode$1 = "jsx"; -var codemirrorMimeType$1 = "text/jsx"; -var languageId$1 = 178; -var JSX = { - name: name$3, - type: type$1, - group: group$8, - extensions: extensions$1, - tmScope: tmScope$1, - aceMode: aceMode$1, - codemirrorMode: codemirrorMode$1, - codemirrorMimeType: codemirrorMimeType$1, - languageId: languageId$1 +var languageId$f = 183; +var require$$0$6 = { + name: name$f, + type: type$f, + tmScope: tmScope$f, + aceMode: aceMode$f, + codemirrorMode: codemirrorMode$b, + codemirrorMimeType: codemirrorMimeType$b, + color: color$a, + aliases: aliases$6, + extensions: extensions$f, + filenames: filenames$4, + interpreters: interpreters$1, + languageId: languageId$f }; -var JSX$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$3, - type: type$1, - group: group$8, - extensions: extensions$1, - tmScope: tmScope$1, - aceMode: aceMode$1, - codemirrorMode: codemirrorMode$1, - codemirrorMimeType: codemirrorMimeType$1, - languageId: languageId$1, - 'default': JSX -}); - -var name$4 = "TypeScript"; -var type$2 = "programming"; -var color$1 = "#2b7489"; -var aliases$1 = [ +var name$e = "TypeScript"; +var type$e = "programming"; +var color$9 = "#2b7489"; +var aliases$5 = [ "ts" ]; -var interpreters$1 = [ +var interpreters = [ "deno", "ts-node" ]; -var extensions$2 = [ +var extensions$e = [ ".ts" ]; -var tmScope$2 = "source.ts"; -var aceMode$2 = "typescript"; -var codemirrorMode$2 = "javascript"; -var codemirrorMimeType$2 = "application/typescript"; -var languageId$2 = 378; -var TypeScript = { - name: name$4, - type: type$2, - color: color$1, - aliases: aliases$1, - interpreters: interpreters$1, - extensions: extensions$2, - tmScope: tmScope$2, - aceMode: aceMode$2, - codemirrorMode: codemirrorMode$2, - codemirrorMimeType: codemirrorMimeType$2, - languageId: languageId$2 +var tmScope$e = "source.ts"; +var aceMode$e = "typescript"; +var codemirrorMode$a = "javascript"; +var codemirrorMimeType$a = "application/typescript"; +var languageId$e = 378; +var require$$1$3 = { + name: name$e, + type: type$e, + color: color$9, + aliases: aliases$5, + interpreters: interpreters, + extensions: extensions$e, + tmScope: tmScope$e, + aceMode: aceMode$e, + codemirrorMode: codemirrorMode$a, + codemirrorMimeType: codemirrorMimeType$a, + languageId: languageId$e }; -var TypeScript$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$4, - type: type$2, - color: color$1, - aliases: aliases$1, - interpreters: interpreters$1, - extensions: extensions$2, - tmScope: tmScope$2, - aceMode: aceMode$2, - codemirrorMode: codemirrorMode$2, - codemirrorMimeType: codemirrorMimeType$2, - languageId: languageId$2, - 'default': TypeScript -}); - -var name$5 = "TSX"; -var type$3 = "programming"; -var group$9 = "TypeScript"; -var extensions$3 = [ +var name$d = "TSX"; +var type$d = "programming"; +var group$b = "TypeScript"; +var extensions$d = [ ".tsx" ]; -var tmScope$3 = "source.tsx"; -var aceMode$3 = "javascript"; -var codemirrorMode$3 = "jsx"; -var codemirrorMimeType$3 = "text/jsx"; -var languageId$3 = 94901924; -var TSX = { - name: name$5, - type: type$3, - group: group$9, - extensions: extensions$3, - tmScope: tmScope$3, - aceMode: aceMode$3, - codemirrorMode: codemirrorMode$3, - codemirrorMimeType: codemirrorMimeType$3, - languageId: languageId$3 +var tmScope$d = "source.tsx"; +var aceMode$d = "javascript"; +var codemirrorMode$9 = "jsx"; +var codemirrorMimeType$9 = "text/jsx"; +var languageId$d = 94901924; +var require$$2$2 = { + name: name$d, + type: type$d, + group: group$b, + extensions: extensions$d, + tmScope: tmScope$d, + aceMode: aceMode$d, + codemirrorMode: codemirrorMode$9, + codemirrorMimeType: codemirrorMimeType$9, + languageId: languageId$d }; -var TSX$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$5, - type: type$3, - group: group$9, - extensions: extensions$3, - tmScope: tmScope$3, - aceMode: aceMode$3, - codemirrorMode: codemirrorMode$3, - codemirrorMimeType: codemirrorMimeType$3, - languageId: languageId$3, - 'default': TSX -}); - -var name$6 = "JSON"; -var type$4 = "data"; -var tmScope$4 = "source.json"; -var aceMode$4 = "json"; -var codemirrorMode$4 = "javascript"; -var codemirrorMimeType$4 = "application/json"; -var searchable = false; -var extensions$4 = [ +var name$c = "JSON"; +var type$c = "data"; +var tmScope$c = "source.json"; +var aceMode$c = "json"; +var codemirrorMode$8 = "javascript"; +var codemirrorMimeType$8 = "application/json"; +var extensions$c = [ ".json", ".avsc", ".geojson", @@ -45975,55 +49571,41 @@ var extensions$4 = [ ".yy", ".yyp" ]; -var filenames$1 = [ +var filenames$3 = [ ".arcconfig", ".htmlhintrc", + ".imgbotconfig", ".tern-config", ".tern-project", ".watchmanconfig", + "Pipfile.lock", "composer.lock", "mcmod.info" ]; -var languageId$4 = 174; -var _JSON = { - name: name$6, - type: type$4, - tmScope: tmScope$4, - aceMode: aceMode$4, - codemirrorMode: codemirrorMode$4, - codemirrorMimeType: codemirrorMimeType$4, - searchable: searchable, - extensions: extensions$4, - filenames: filenames$1, - languageId: languageId$4 +var languageId$c = 174; +var require$$3$1 = { + name: name$c, + type: type$c, + tmScope: tmScope$c, + aceMode: aceMode$c, + codemirrorMode: codemirrorMode$8, + codemirrorMimeType: codemirrorMimeType$8, + extensions: extensions$c, + filenames: filenames$3, + languageId: languageId$c }; -var _JSON$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$6, - type: type$4, - tmScope: tmScope$4, - aceMode: aceMode$4, - codemirrorMode: codemirrorMode$4, - codemirrorMimeType: codemirrorMimeType$4, - searchable: searchable, - extensions: extensions$4, - filenames: filenames$1, - languageId: languageId$4, - 'default': _JSON -}); - -var name$7 = "JSON with Comments"; -var type$5 = "data"; +var name$b = "JSON with Comments"; +var type$b = "data"; var group$a = "JSON"; -var tmScope$5 = "source.js"; -var aceMode$5 = "javascript"; -var codemirrorMode$5 = "javascript"; -var codemirrorMimeType$5 = "text/javascript"; -var aliases$2 = [ +var tmScope$b = "source.js"; +var aceMode$b = "javascript"; +var codemirrorMode$7 = "javascript"; +var codemirrorMimeType$7 = "text/javascript"; +var aliases$4 = [ "jsonc" ]; -var extensions$5 = [ +var extensions$b = [ ".jsonc", ".sublime-build", ".sublime-commands", @@ -46045,115 +49627,88 @@ var filenames$2 = [ ".jscsrc", ".jshintrc", ".jslintrc", + "api-extractor.json", + "devcontainer.json", "jsconfig.json", "language-configuration.json", - "tsconfig.json" + "tsconfig.json", + "tslint.json" ]; -var languageId$5 = 423; -var JSON_with_Comments = { - name: name$7, - type: type$5, +var languageId$b = 423; +var require$$4 = { + name: name$b, + type: type$b, group: group$a, - tmScope: tmScope$5, - aceMode: aceMode$5, - codemirrorMode: codemirrorMode$5, - codemirrorMimeType: codemirrorMimeType$5, - aliases: aliases$2, - extensions: extensions$5, + tmScope: tmScope$b, + aceMode: aceMode$b, + codemirrorMode: codemirrorMode$7, + codemirrorMimeType: codemirrorMimeType$7, + aliases: aliases$4, + extensions: extensions$b, filenames: filenames$2, - languageId: languageId$5 + languageId: languageId$b }; -var JSON_with_Comments$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$7, - type: type$5, - group: group$a, - tmScope: tmScope$5, - aceMode: aceMode$5, - codemirrorMode: codemirrorMode$5, - codemirrorMimeType: codemirrorMimeType$5, - aliases: aliases$2, - extensions: extensions$5, - filenames: filenames$2, - languageId: languageId$5, - 'default': JSON_with_Comments -}); - -var name$8 = "JSON5"; -var type$6 = "data"; -var extensions$6 = [ +var name$a = "JSON5"; +var type$a = "data"; +var extensions$a = [ ".json5" ]; -var tmScope$6 = "source.js"; -var aceMode$6 = "javascript"; +var tmScope$a = "source.js"; +var aceMode$a = "javascript"; var codemirrorMode$6 = "javascript"; var codemirrorMimeType$6 = "application/json"; -var languageId$6 = 175; -var JSON5$1 = { - name: name$8, - type: type$6, - extensions: extensions$6, - tmScope: tmScope$6, - aceMode: aceMode$6, +var languageId$a = 175; +var require$$5 = { + name: name$a, + type: type$a, + extensions: extensions$a, + tmScope: tmScope$a, + aceMode: aceMode$a, codemirrorMode: codemirrorMode$6, codemirrorMimeType: codemirrorMimeType$6, - languageId: languageId$6 + languageId: languageId$a }; -var JSON5$2 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$8, - type: type$6, - extensions: extensions$6, - tmScope: tmScope$6, - aceMode: aceMode$6, - codemirrorMode: codemirrorMode$6, - codemirrorMimeType: codemirrorMimeType$6, - languageId: languageId$6, - 'default': JSON5$1 -}); - -var require$$0$2 = getCjsExportFromNamespace(JavaScript$1); - -var require$$1 = getCjsExportFromNamespace(JSX$1); - -var require$$2 = getCjsExportFromNamespace(TypeScript$1); - -var require$$3 = getCjsExportFromNamespace(TSX$1); - -var require$$4$1 = getCjsExportFromNamespace(_JSON$1); - -var require$$5 = getCjsExportFromNamespace(JSON_with_Comments$1); - -var require$$6 = getCjsExportFromNamespace(JSON5$2); - -const languages = [createLanguage(require$$0$2, data => ({ +const languages$7 = [createLanguage(require$$0$6, data => ({ since: "0.0.0", - parsers: ["babel", "flow"], + parsers: ["babel", "espree", "meriyah", "babel-flow", "babel-ts", "flow", "typescript"], vscodeLanguageIds: ["javascript", "mongo"], - interpreters: data.interpreters.concat(["nodejs"]) -})), createLanguage(require$$0$2, () => ({ + extensions: [...data.extensions.filter(extension => extension !== ".jsx"), // WeiXin Script (Weixin Mini Programs) + // https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/ + ".wxs"] +})), createLanguage(require$$0$6, () => ({ name: "Flow", since: "0.0.0", - parsers: ["babel", "flow"], + parsers: ["flow", "babel-flow"], vscodeLanguageIds: ["javascript"], aliases: [], filenames: [], extensions: [".js.flow"] -})), createLanguage(require$$1, () => ({ +})), createLanguage(require$$0$6, () => ({ + name: "JSX", since: "0.0.0", - parsers: ["babel", "flow"], - vscodeLanguageIds: ["javascriptreact"] -})), createLanguage(require$$2, () => ({ + parsers: ["babel", "babel-flow", "babel-ts", "flow", "typescript", "espree", "meriyah"], + vscodeLanguageIds: ["javascriptreact"], + aliases: undefined, + filenames: undefined, + extensions: [".jsx"], + group: "JavaScript", + interpreters: undefined, + tmScope: "source.js.jsx", + aceMode: "javascript", + codemirrorMode: "jsx", + codemirrorMimeType: "text/jsx", + color: undefined +})), createLanguage(require$$1$3, () => ({ since: "1.4.0", parsers: ["typescript", "babel-ts"], vscodeLanguageIds: ["typescript"] -})), createLanguage(require$$3, () => ({ +})), createLanguage(require$$2$2, () => ({ since: "1.4.0", parsers: ["typescript", "babel-ts"], vscodeLanguageIds: ["typescriptreact"] -})), createLanguage(require$$4$1, () => ({ +})), createLanguage(require$$3$1, () => ({ name: "JSON.stringify", since: "1.13.0", parsers: ["json-stringify"], @@ -46161,26 +49716,26 @@ const languages = [createLanguage(require$$0$2, data => ({ extensions: [], // .json file defaults to json instead of json-stringify filenames: ["package.json", "package-lock.json", "composer.json"] -})), createLanguage(require$$4$1, data => ({ +})), createLanguage(require$$3$1, data => ({ since: "1.5.0", parsers: ["json"], vscodeLanguageIds: ["json"], - filenames: data.filenames.concat([".prettierrc"]) -})), createLanguage(require$$5, data => ({ + extensions: data.extensions.filter(extension => extension !== ".jsonl") +})), createLanguage(require$$4, data => ({ since: "1.5.0", parsers: ["json"], vscodeLanguageIds: ["jsonc"], - filenames: data.filenames.concat([".eslintrc"]) -})), createLanguage(require$$6, () => ({ + filenames: [...data.filenames, ".eslintrc"] +})), createLanguage(require$$5, () => ({ since: "1.13.0", parsers: ["json5"], vscodeLanguageIds: ["json5"] }))]; -const printers = { +const printers$5 = { estree: printerEstree, "estree-json": printerEstreeJson }; -const parsers = { +const parsers$6 = { // JS - Babel get babel() { return require("./parser-babel").parsers.babel; @@ -46246,34 +49801,46 @@ const parsers = { // JS - Angular Directive get __ng_directive() { return require("./parser-angular").parsers.__ng_directive; + }, + + // JS - espree + get espree() { + return require("./parser-espree").parsers.espree; + }, + + // JS - meriyah + get meriyah() { + return require("./parser-meriyah").parsers.meriyah; + }, + + // JS - Babel Estree + get __babel_estree() { + return require("./parser-babel").parsers.__babel_estree; } }; var languageJs = { - languages, - options: options$2, - printers, - parsers + languages: languages$7, + options: options$5, + printers: printers$5, + parsers: parsers$6 }; const { - isFrontMatterNode: isFrontMatterNode$1 -} = util; - -function clean$2(ast, newObj, parent) { - ["raw", // front-matter - "raws", "sourceIndex", "source", "before", "after", "trailingComma"].forEach(name => { - delete newObj[name]; - }); + isFrontMatterNode: isFrontMatterNode$4 +} = util$5; +const ignoredProperties$2 = new Set(["raw", // front-matter +"raws", "sourceIndex", "source", "before", "after", "trailingComma"]); - if (isFrontMatterNode$1(ast) && ast.lang === "yaml") { +function clean$5(ast, newObj, parent) { + if (isFrontMatterNode$4(ast) && ast.lang === "yaml") { delete newObj.value; } - if (ast.type === "css-comment" && parent.type === "css-root" && parent.nodes.length !== 0) { + if (ast.type === "css-comment" && parent.type === "css-root" && parent.nodes.length > 0) { // --insert-pragma // first non-front-matter comment - if (parent.nodes[0] === ast || isFrontMatterNode$1(parent.nodes[0]) && parent.nodes[1] === ast) { + if (parent.nodes[0] === ast || isFrontMatterNode$4(parent.nodes[0]) && parent.nodes[1] === ast) { /** * something * @@ -46287,7 +49854,7 @@ function clean$2(ast, newObj, parent) { } // Last comment is not parsed, when omitting semicolon, #8675 - if (parent.type === "css-root" && getLast(parent.nodes) === ast) { + if (parent.type === "css-root" && getLast_1(parent.nodes) === ast) { return null; } } @@ -46354,7 +49921,7 @@ function clean$2(ast, newObj, parent) { if ((ast.type === "media-value" || ast.type === "media-type" || ast.type === "value-number" || ast.type === "selector-root-invalid" || ast.type === "selector-class" || ast.type === "selector-combinator" || ast.type === "selector-tag") && newObj.value) { newObj.value = newObj.value.replace(/([\d+.Ee-]+)([A-Za-z]*)/g, (match, numStr, unit) => { const num = Number(numStr); - return isNaN(num) ? match : num + unit.toLowerCase(); + return Number.isNaN(num) ? match : num + unit.toLowerCase(); }); } @@ -46377,53 +49944,20 @@ function clean$2(ast, newObj, parent) { } } +clean$5.ignoredProperties = ignoredProperties$2; + function cleanCSSStrings(value) { return value.replace(/'/g, '"').replace(/\\([^\dA-Fa-f])/g, "$1"); } -var clean_1$1 = clean$2; +var clean_1$3 = clean$5; const { builders: { - hardline: hardline$8, - concat: concat$d, - markAsRoot: markAsRoot$1 - } -} = document; -const DELIMITER_MAP = { - "---": "yaml", - "+++": "toml" -}; - -function parse$7(text) { - const delimiterRegex = Object.keys(DELIMITER_MAP).map(escapeStringRegexp).join("|"); - const match = text.match( // trailing spaces after delimiters are allowed - new RegExp(`^(${delimiterRegex})([^\\n]*)\\n(?:([\\s\\S]*?)\\n)?\\1[^\\n\\S]*(\\n|$)`)); - - if (match === null) { - return { - frontMatter: null, - content: text - }; + hardline: hardline$b, + markAsRoot: markAsRoot$3 } - - const [raw, delimiter, language, value] = match; - let lang = DELIMITER_MAP[delimiter]; - - if (lang !== "toml" && language && language.trim()) { - lang = language.trim(); - } - - return { - frontMatter: { - type: "front-matter", - lang, - value, - raw: raw.replace(/\n$/, "") - }, - content: raw.replace(/[^\n]/g, " ") + text.slice(raw.length) - }; -} +} = doc; function print$1(node, textToDoc) { if (node.lang === "yaml") { @@ -46433,63 +49967,106 @@ function print$1(node, textToDoc) { }, { stripTrailingHardline: true }) : ""; - return markAsRoot$1(concat$d(["---", hardline$8, doc, doc ? hardline$8 : "", "---"])); + return markAsRoot$3([node.startDelimiter, hardline$b, doc, doc ? hardline$b : "", node.endDelimiter]); } } -var frontMatter = { - parse: parse$7, - print: print$1 -}; +var print_1 = print$1; const { builders: { - hardline: hardline$9, - concat: concat$e + hardline: hardline$a } -} = document; -const { - print: printFrontMatter -} = frontMatter; +} = doc; -function embed$1(path, print, textToDoc +function embed$4(path, print, textToDoc /*, options */ ) { const node = path.getValue(); if (node.type === "front-matter") { - const doc = printFrontMatter(node, textToDoc); - return doc ? concat$e([doc, hardline$9]) : ""; + const doc = print_1(node, textToDoc); + return doc ? [doc, hardline$a] : ""; } } -var embed_1$1 = embed$1; +var embed_1$2 = embed$4; -const { - parse: parseFrontMatter -} = frontMatter; +const frontMatterRegex = new RegExp("^(?-{3}|\\+{3})" + // trailing spaces after delimiters are allowed +"(?[^\\n]*)" + "\\n(?:|(?.*?)\\n)" + // In some markdown processors such as pandoc, +// "..." can be used as the end delimiter for YAML front-matter. +// Adding `\.{3}` make the regex matches `+++\n...`, but we'll exclude it later +"(?\\k|\\.{3})" + "[^\\S\\n]*(?:\\n|$)", "s"); -function hasPragma$1(text) { - return pragma.hasPragma(parseFrontMatter(text).content); +function parse(text) { + const match = text.match(frontMatterRegex); + + if (!match) { + return { + content: text + }; + } + + const { + startDelimiter, + language, + value = "", + endDelimiter + } = match.groups; + let lang = language.trim() || "yaml"; + + if (startDelimiter === "+++") { + lang = "toml"; + } // Only allow yaml to parse with a different end delimiter + + + if (lang !== "yaml" && startDelimiter !== endDelimiter) { + return { + content: text + }; + } + + const [raw] = match; + const frontMatter = { + type: "front-matter", + lang, + value, + startDelimiter, + endDelimiter, + raw: raw.replace(/\n$/, "") + }; + return { + frontMatter, + content: raw.replace(/[^\n]/g, " ") + text.slice(raw.length) + }; } -function insertPragma$2(text) { +var parse_1 = parse; + +function hasPragma$3(text) { + return pragma$5.hasPragma(parse_1(text).content); +} + +function insertPragma$8(text) { const { frontMatter, content - } = parseFrontMatter(text); - return (frontMatter ? frontMatter.raw + "\n\n" : "") + pragma.insertPragma(content); + } = parse_1(text); + return (frontMatter ? frontMatter.raw + "\n\n" : "") + pragma$5.insertPragma(content); } -var pragma$1 = { - hasPragma: hasPragma$1, - insertPragma: insertPragma$2 +var pragma$4 = { + hasPragma: hasPragma$3, + insertPragma: insertPragma$8 }; +const { + isNonEmptyArray: isNonEmptyArray$6 +} = util$5; const colorAdjusterFunctions = new Set(["red", "green", "blue", "alpha", "a", "rgb", "hue", "h", "saturation", "s", "lightness", "l", "whiteness", "w", "blackness", "b", "tint", "shade", "blend", "blenda", "contrast", "hsl", "hsla", "hwb", "hwba"]); -function getAncestorCounter(path, typeOrTypes) { - const types = [].concat(typeOrTypes); +function getAncestorCounter$1(path, typeOrTypes) { + const types = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes]; let counter = -1; let ancestorNode; @@ -46502,18 +50079,18 @@ function getAncestorCounter(path, typeOrTypes) { return -1; } -function getAncestorNode(path, typeOrTypes) { - const counter = getAncestorCounter(path, typeOrTypes); +function getAncestorNode$2(path, typeOrTypes) { + const counter = getAncestorCounter$1(path, typeOrTypes); return counter === -1 ? null : path.getParentNode(counter); } -function getPropOfDeclNode(path) { - const declAncestorNode = getAncestorNode(path, "css-decl"); +function getPropOfDeclNode$1(path) { + const declAncestorNode = getAncestorNode$2(path, "css-decl"); return declAncestorNode && declAncestorNode.prop && declAncestorNode.prop.toLowerCase(); } function hasSCSSInterpolation(groupList) { - if (groupList && groupList.length) { + if (isNonEmptyArray$6(groupList)) { for (let i = groupList.length - 1; i > 0; i--) { // If we find `#{`, return true. if (groupList[i].type === "word" && groupList[i].value === "{" && groupList[i - 1].type === "word" && groupList[i - 1].value.endsWith("#")) { @@ -46526,7 +50103,7 @@ function hasSCSSInterpolation(groupList) { } function hasStringOrFunction(groupList) { - if (groupList && groupList.length) { + if (isNonEmptyArray$6(groupList)) { for (let i = 0; i < groupList.length; i++) { if (groupList[i].type === "string" || groupList[i].type === "func") { return true; @@ -46537,56 +50114,56 @@ function hasStringOrFunction(groupList) { return false; } -function isSCSS(parser, text) { +function isSCSS$1(parser, text) { const hasExplicitParserChoice = parser === "less" || parser === "scss"; const IS_POSSIBLY_SCSS = /(\w\s*:\s*[^:}]+|#){|@import[^\n]+(?:url|,)/; return hasExplicitParserChoice ? parser === "scss" : IS_POSSIBLY_SCSS.test(text); } function isSCSSVariable(node) { - return !!(node && node.type === "word" && node.value.startsWith("$")); + return Boolean(node && node.type === "word" && node.value.startsWith("$")); } -function isWideKeywords(value) { +function isWideKeywords$1(value) { return ["initial", "inherit", "unset", "revert"].includes(value.toLowerCase()); } -function isKeyframeAtRuleKeywords(path, value) { - const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); +function isKeyframeAtRuleKeywords$1(path, value) { + const atRuleAncestorNode = getAncestorNode$2(path, "css-atrule"); return atRuleAncestorNode && atRuleAncestorNode.name && atRuleAncestorNode.name.toLowerCase().endsWith("keyframes") && ["from", "to"].includes(value.toLowerCase()); } -function maybeToLowerCase(value) { +function maybeToLowerCase$1(value) { return value.includes("$") || value.includes("@") || value.includes("#") || value.startsWith("%") || value.startsWith("--") || value.startsWith(":--") || value.includes("(") && value.includes(")") ? value : value.toLowerCase(); } -function insideValueFunctionNode(path, functionName) { - const funcAncestorNode = getAncestorNode(path, "value-func"); +function insideValueFunctionNode$1(path, functionName) { + const funcAncestorNode = getAncestorNode$2(path, "value-func"); return funcAncestorNode && funcAncestorNode.value && funcAncestorNode.value.toLowerCase() === functionName; } -function insideICSSRuleNode(path) { - const ruleAncestorNode = getAncestorNode(path, "css-rule"); +function insideICSSRuleNode$1(path) { + const ruleAncestorNode = getAncestorNode$2(path, "css-rule"); return ruleAncestorNode && ruleAncestorNode.raws && ruleAncestorNode.raws.selector && (ruleAncestorNode.raws.selector.startsWith(":import") || ruleAncestorNode.raws.selector.startsWith(":export")); } -function insideAtRuleNode(path, atRuleNameOrAtRuleNames) { - const atRuleNames = [].concat(atRuleNameOrAtRuleNames); - const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); +function insideAtRuleNode$1(path, atRuleNameOrAtRuleNames) { + const atRuleNames = Array.isArray(atRuleNameOrAtRuleNames) ? atRuleNameOrAtRuleNames : [atRuleNameOrAtRuleNames]; + const atRuleAncestorNode = getAncestorNode$2(path, "css-atrule"); return atRuleAncestorNode && atRuleNames.includes(atRuleAncestorNode.name.toLowerCase()); } -function insideURLFunctionInImportAtRuleNode(path) { +function insideURLFunctionInImportAtRuleNode$1(path) { const node = path.getValue(); - const atRuleAncestorNode = getAncestorNode(path, "css-atrule"); + const atRuleAncestorNode = getAncestorNode$2(path, "css-atrule"); return atRuleAncestorNode && atRuleAncestorNode.name === "import" && node.groups[0].value === "url" && node.groups.length === 2; } -function isURLFunctionNode(node) { +function isURLFunctionNode$1(node) { return node.type === "value-func" && node.value.toLowerCase() === "url"; } -function isLastNode(path, node) { +function isLastNode$1(path, node) { const parentNode = path.getParentNode(); /* istanbul ignore next */ @@ -46600,7 +50177,7 @@ function isLastNode(path, node) { return nodes && nodes.indexOf(node) === nodes.length - 1; } -function isDetachedRulesetDeclarationNode(node) { +function isDetachedRulesetDeclarationNode$1(node) { // If a Less file ends up being parsed with the SCSS parser, Less // variable declarations will be parsed as atrules with names ending // with a colon, so keep the original case then. @@ -46613,31 +50190,31 @@ function isDetachedRulesetDeclarationNode(node) { return typeof node.selector === "string" && /^@.+:.*$/.test(node.selector) || node.selector.value && /^@.+:.*$/.test(node.selector.value); } -function isForKeywordNode(node) { +function isForKeywordNode$1(node) { return node.type === "value-word" && ["from", "through", "end"].includes(node.value); } -function isIfElseKeywordNode(node) { +function isIfElseKeywordNode$1(node) { return node.type === "value-word" && ["and", "or", "not"].includes(node.value); } -function isEachKeywordNode(node) { +function isEachKeywordNode$1(node) { return node.type === "value-word" && node.value === "in"; } -function isMultiplicationNode(node) { +function isMultiplicationNode$1(node) { return node.type === "value-operator" && node.value === "*"; } -function isDivisionNode(node) { +function isDivisionNode$1(node) { return node.type === "value-operator" && node.value === "/"; } -function isAdditionNode(node) { +function isAdditionNode$1(node) { return node.type === "value-operator" && node.value === "+"; } -function isSubtractionNode(node) { +function isSubtractionNode$1(node) { return node.type === "value-operator" && node.value === "-"; } @@ -46645,19 +50222,19 @@ function isModuloNode(node) { return node.type === "value-operator" && node.value === "%"; } -function isMathOperatorNode(node) { - return isMultiplicationNode(node) || isDivisionNode(node) || isAdditionNode(node) || isSubtractionNode(node) || isModuloNode(node); +function isMathOperatorNode$1(node) { + return isMultiplicationNode$1(node) || isDivisionNode$1(node) || isAdditionNode$1(node) || isSubtractionNode$1(node) || isModuloNode(node); } -function isEqualityOperatorNode(node) { +function isEqualityOperatorNode$1(node) { return node.type === "value-word" && ["==", "!="].includes(node.value); } -function isRelationalOperatorNode(node) { +function isRelationalOperatorNode$1(node) { return node.type === "value-word" && ["<", ">", "<=", ">="].includes(node.value); } -function isSCSSControlDirectiveNode(node) { +function isSCSSControlDirectiveNode$1(node) { return node.type === "css-atrule" && ["if", "else", "for", "each", "while"].includes(node.name); } @@ -46670,43 +50247,43 @@ function isSCSSNestedPropertyNode(node) { return node.selector.replace(/\/\*.*?\*\//, "").replace(/\/\/.*?\n/, "").trim().endsWith(":"); } -function isDetachedRulesetCallNode(node) { +function isDetachedRulesetCallNode$1(node) { return node.raws && node.raws.params && /^\(\s*\)$/.test(node.raws.params); } -function isTemplatePlaceholderNode(node) { +function isTemplatePlaceholderNode$1(node) { return node.name.startsWith("prettier-placeholder"); } -function isTemplatePropNode(node) { +function isTemplatePropNode$1(node) { return node.prop.startsWith("@prettier-placeholder"); } -function isPostcssSimpleVarNode(currentNode, nextNode) { +function isPostcssSimpleVarNode$1(currentNode, nextNode) { return currentNode.value === "$$" && currentNode.type === "value-func" && nextNode && nextNode.type === "value-word" && !nextNode.raws.before; } -function hasComposesNode(node) { +function hasComposesNode$1(node) { return node.value && node.value.type === "value-root" && node.value.group && node.value.group.type === "value-value" && node.prop.toLowerCase() === "composes"; } -function hasParensAroundNode(node) { +function hasParensAroundNode$1(node) { return node.value && node.value.group && node.value.group.group && node.value.group.group.type === "value-paren_group" && node.value.group.group.open !== null && node.value.group.group.close !== null; } -function hasEmptyRawBefore(node) { +function hasEmptyRawBefore$1(node) { return node.raws && node.raws.before === ""; } -function isKeyValuePairNode(node) { +function isKeyValuePairNode$1(node) { return node.type === "value-comma_group" && node.groups && node.groups[1] && node.groups[1].type === "value-colon"; } function isKeyValuePairInParenGroupNode(node) { - return node.type === "value-paren_group" && node.groups && node.groups[0] && isKeyValuePairNode(node.groups[0]); + return node.type === "value-paren_group" && node.groups && node.groups[0] && isKeyValuePairNode$1(node.groups[0]); } -function isSCSSMapItemNode(path) { +function isSCSSMapItemNode$1(path) { const node = path.getValue(); // Ignore empty item (i.e. `$key: ()`) if (node.groups.length === 0) { @@ -46719,7 +50296,7 @@ function isSCSSMapItemNode(path) { return false; } - const declNode = getAncestorNode(path, "css-decl"); // SCSS map declaration (i.e. `$map: (key: value, other-key: other-value)`) + const declNode = getAncestorNode$2(path, "css-decl"); // SCSS map declaration (i.e. `$map: (key: value, other-key: other-value)`) if (declNode && declNode.prop && declNode.prop.startsWith("$")) { return true; @@ -46738,35 +50315,52 @@ function isSCSSMapItemNode(path) { return false; } -function isInlineValueCommentNode(node) { +function isInlineValueCommentNode$1(node) { return node.type === "value-comment" && node.inline; } -function isHashNode(node) { +function isHashNode$1(node) { return node.type === "value-word" && node.value === "#"; } -function isLeftCurlyBraceNode(node) { +function isLeftCurlyBraceNode$1(node) { return node.type === "value-word" && node.value === "{"; } -function isRightCurlyBraceNode(node) { +function isRightCurlyBraceNode$1(node) { return node.type === "value-word" && node.value === "}"; } -function isWordNode(node) { +function isWordNode$1(node) { return ["value-word", "value-atword"].includes(node.type); } -function isColonNode(node) { - return node.type === "value-colon"; +function isColonNode$1(node) { + return node && node.type === "value-colon"; +} + +function isKeyInValuePairNode$1(node, parentNode) { + if (!isKeyValuePairNode$1(parentNode)) { + return false; + } + + const { + groups + } = parentNode; + const index = groups.indexOf(node); + + if (index === -1) { + return false; + } + + return isColonNode$1(groups[index + 1]); } -function isMediaAndSupportsKeywords(node) { +function isMediaAndSupportsKeywords$1(node) { return node.value && ["not", "and", "or"].includes(node.value.toLowerCase()); } -function isColorAdjusterFuncNode(node) { +function isColorAdjusterFuncNode$1(node) { if (node.type !== "value-func") { return false; } @@ -46775,20 +50369,18 @@ function isColorAdjusterFuncNode(node) { } // TODO: only check `less` when we don't use `less` to parse `css` -function isLessParser(options) { +function isLessParser$1(options) { return options.parser === "css" || options.parser === "less"; } -function lastLineHasInlineComment(text) { +function lastLineHasInlineComment$1(text) { return /\/\//.test(text.split(/[\n\r]/).pop()); } function stringifyNode(node) { if (node.groups) { const open = node.open && node.open.value ? node.open.value : ""; - const groups = node.groups.reduce((previousValue, currentValue, index) => { - return previousValue + stringifyNode(currentValue) + (node.groups[0].type === "comma_group" && index !== node.groups.length - 1 ? "," : ""); - }, ""); + const groups = node.groups.reduce((previousValue, currentValue, index) => previousValue + stringifyNode(currentValue) + (node.groups[0].type === "comma_group" && index !== node.groups.length - 1 ? "," : ""), ""); const close = node.close && node.close.value ? node.close.value : ""; return open + groups + close; } @@ -46803,12 +50395,346 @@ function stringifyNode(node) { return before + quote + atword + value + quote + unit + group + after; } -var utils$7 = { - getAncestorCounter, - getAncestorNode, - getPropOfDeclNode, +function isAtWordPlaceholderNode$1(node) { + return node && node.type === "value-atword" && node.value.startsWith("prettier-placeholder-"); +} + +var utils$4 = { + getAncestorCounter: getAncestorCounter$1, + getAncestorNode: getAncestorNode$2, + getPropOfDeclNode: getPropOfDeclNode$1, hasSCSSInterpolation, hasStringOrFunction, + maybeToLowerCase: maybeToLowerCase$1, + insideValueFunctionNode: insideValueFunctionNode$1, + insideICSSRuleNode: insideICSSRuleNode$1, + insideAtRuleNode: insideAtRuleNode$1, + insideURLFunctionInImportAtRuleNode: insideURLFunctionInImportAtRuleNode$1, + isKeyframeAtRuleKeywords: isKeyframeAtRuleKeywords$1, + isWideKeywords: isWideKeywords$1, + isSCSS: isSCSS$1, + isSCSSVariable, + isLastNode: isLastNode$1, + isLessParser: isLessParser$1, + isSCSSControlDirectiveNode: isSCSSControlDirectiveNode$1, + isDetachedRulesetDeclarationNode: isDetachedRulesetDeclarationNode$1, + isRelationalOperatorNode: isRelationalOperatorNode$1, + isEqualityOperatorNode: isEqualityOperatorNode$1, + isMultiplicationNode: isMultiplicationNode$1, + isDivisionNode: isDivisionNode$1, + isAdditionNode: isAdditionNode$1, + isSubtractionNode: isSubtractionNode$1, + isModuloNode, + isMathOperatorNode: isMathOperatorNode$1, + isEachKeywordNode: isEachKeywordNode$1, + isForKeywordNode: isForKeywordNode$1, + isURLFunctionNode: isURLFunctionNode$1, + isIfElseKeywordNode: isIfElseKeywordNode$1, + hasComposesNode: hasComposesNode$1, + hasParensAroundNode: hasParensAroundNode$1, + hasEmptyRawBefore: hasEmptyRawBefore$1, + isSCSSNestedPropertyNode, + isDetachedRulesetCallNode: isDetachedRulesetCallNode$1, + isTemplatePlaceholderNode: isTemplatePlaceholderNode$1, + isTemplatePropNode: isTemplatePropNode$1, + isPostcssSimpleVarNode: isPostcssSimpleVarNode$1, + isKeyValuePairNode: isKeyValuePairNode$1, + isKeyValuePairInParenGroupNode, + isKeyInValuePairNode: isKeyInValuePairNode$1, + isSCSSMapItemNode: isSCSSMapItemNode$1, + isInlineValueCommentNode: isInlineValueCommentNode$1, + isHashNode: isHashNode$1, + isLeftCurlyBraceNode: isLeftCurlyBraceNode$1, + isRightCurlyBraceNode: isRightCurlyBraceNode$1, + isWordNode: isWordNode$1, + isColonNode: isColonNode$1, + isMediaAndSupportsKeywords: isMediaAndSupportsKeywords$1, + isColorAdjusterFuncNode: isColorAdjusterFuncNode$1, + lastLineHasInlineComment: lastLineHasInlineComment$1, + stringifyNode, + isAtWordPlaceholderNode: isAtWordPlaceholderNode$1 +}; + +var lineColumnToIndex = function (lineColumn, text) { + let index = 0; + + for (let i = 0; i < lineColumn.line - 1; ++i) { + index = text.indexOf("\n", index) + 1; + } + + return index + lineColumn.column; +}; + +const { + getLast: getLast$4, + skipEverythingButNewLine +} = util$5; + +function calculateLocStart(node, text) { + // value-* nodes have this + if (typeof node.sourceIndex === "number") { + return node.sourceIndex; + } + + return node.source ? lineColumnToIndex(node.source.start, text) - 1 : null; +} + +function calculateLocEnd(node, text) { + if (node.type === "css-comment" && node.inline) { + return skipEverythingButNewLine(text, node.source.startOffset); + } + + const endNode = node.nodes && getLast$4(node.nodes); + + if (endNode && node.source && !node.source.end) { + node = endNode; + } + + if (node.source && node.source.end) { + return lineColumnToIndex(node.source.end, text); + } + + return null; +} + +function calculateLoc(node, text) { + if (node.source) { + node.source.startOffset = calculateLocStart(node, text); + node.source.endOffset = calculateLocEnd(node, text); + } + + for (const key in node) { + const child = node[key]; + + if (key === "source" || !child || typeof child !== "object") { + continue; + } + + if (child.type === "value-root" || child.type === "value-unknown") { + calculateValueNodeLoc(child, getValueRootOffset(node), child.text || child.value); + } else { + calculateLoc(child, text); + } + } +} + +function calculateValueNodeLoc(node, rootOffset, text) { + if (node.source) { + node.source.startOffset = calculateLocStart(node, text) + rootOffset; + node.source.endOffset = calculateLocEnd(node, text) + rootOffset; + } + + for (const key in node) { + const child = node[key]; + + if (key === "source" || !child || typeof child !== "object") { + continue; + } + + calculateValueNodeLoc(child, rootOffset, text); + } +} + +function getValueRootOffset(node) { + let result = node.source.startOffset; + + if (typeof node.prop === "string") { + result += node.prop.length; + } + + if (node.type === "css-atrule" && typeof node.name === "string") { + result += 1 + node.name.length + node.raws.afterName.match(/^\s*:?\s*/)[0].length; + } + + if (node.type !== "css-atrule" && node.raws && typeof node.raws.between === "string") { + result += node.raws.between.length; + } + + return result; +} +/** + * Workaround for a bug: quotes and asterisks in inline comments corrupt loc data of subsequent nodes. + * This function replaces the quotes and asterisks with spaces. Later, when the comments are printed, + * their content is extracted from the original text. + * - https://github.com/prettier/prettier/issues/7780 + * - https://github.com/shellscape/postcss-less/issues/145 + * - https://github.com/prettier/prettier/issues/8130 + * @param text {string} + */ + + +function replaceQuotesInInlineComments(text) { + /** @typedef { 'initial' | 'single-quotes' | 'double-quotes' | 'url' | 'comment-block' | 'comment-inline' } State */ + + /** @type {State} */ + let state = "initial"; + /** @type {State} */ + + let stateToReturnFromQuotes = "initial"; + let inlineCommentStartIndex; + let inlineCommentContainsQuotes = false; + const inlineCommentsToReplace = []; + + for (let i = 0; i < text.length; i++) { + const c = text[i]; + + switch (state) { + case "initial": + if (c === "'") { + state = "single-quotes"; + continue; + } + + if (c === '"') { + state = "double-quotes"; + continue; + } + + if ((c === "u" || c === "U") && text.slice(i, i + 4).toLowerCase() === "url(") { + state = "url"; + i += 3; + continue; + } + + if (c === "*" && text[i - 1] === "/") { + state = "comment-block"; + continue; + } + + if (c === "/" && text[i - 1] === "/") { + state = "comment-inline"; + inlineCommentStartIndex = i - 1; + continue; + } + + continue; + + case "single-quotes": + if (c === "'" && text[i - 1] !== "\\") { + state = stateToReturnFromQuotes; + stateToReturnFromQuotes = "initial"; + } + + if (c === "\n" || c === "\r") { + return text; // invalid input + } + + continue; + + case "double-quotes": + if (c === '"' && text[i - 1] !== "\\") { + state = stateToReturnFromQuotes; + stateToReturnFromQuotes = "initial"; + } + + if (c === "\n" || c === "\r") { + return text; // invalid input + } + + continue; + + case "url": + if (c === ")") { + state = "initial"; + } + + if (c === "\n" || c === "\r") { + return text; // invalid input + } + + if (c === "'") { + state = "single-quotes"; + stateToReturnFromQuotes = "url"; + continue; + } + + if (c === '"') { + state = "double-quotes"; + stateToReturnFromQuotes = "url"; + continue; + } + + continue; + + case "comment-block": + if (c === "/" && text[i - 1] === "*") { + state = "initial"; + } + + continue; + + case "comment-inline": + if (c === '"' || c === "'" || c === "*") { + inlineCommentContainsQuotes = true; + } + + if (c === "\n" || c === "\r") { + if (inlineCommentContainsQuotes) { + inlineCommentsToReplace.push([inlineCommentStartIndex, i]); + } + + state = "initial"; + inlineCommentContainsQuotes = false; + } + + continue; + } + } + + for (const [start, end] of inlineCommentsToReplace) { + text = text.slice(0, start) + text.slice(start, end).replace(/["'*]/g, " ") + text.slice(end); + } + + return text; +} + +function locStart$c(node) { + return node.source.startOffset; +} + +function locEnd$b(node) { + return node.source.endOffset; +} + +var loc$5 = { + locStart: locStart$c, + locEnd: locEnd$b, + calculateLoc, + replaceQuotesInInlineComments +}; + +const { + printNumber, + printString, + hasNewline, + isFrontMatterNode: isFrontMatterNode$3, + isNextLineEmpty: isNextLineEmpty$3, + isNonEmptyArray: isNonEmptyArray$5 +} = util$5; +const { + builders: { + join: join$9, + line: line$9, + hardline: hardline$9, + softline: softline$7, + group: group$9, + fill: fill$5, + indent: indent$5, + dedent: dedent$2, + ifBreak: ifBreak$7, + breakParent: breakParent$3 + }, + utils: { + removeLines, + getDocParts: getDocParts$4 + } +} = doc; +const { + insertPragma: insertPragma$7 +} = pragma$4; +const { + getAncestorNode: getAncestorNode$1, + getPropOfDeclNode, maybeToLowerCase, insideValueFunctionNode, insideICSSRuleNode, @@ -46817,7 +50743,6 @@ var utils$7 = { isKeyframeAtRuleKeywords, isWideKeywords, isSCSS, - isSCSSVariable, isLastNode, isLessParser, isSCSSControlDirectiveNode, @@ -46828,7 +50753,6 @@ var utils$7 = { isDivisionNode, isAdditionNode, isSubtractionNode, - isModuloNode, isMathOperatorNode, isEachKeywordNode, isForKeywordNode, @@ -46837,13 +50761,12 @@ var utils$7 = { hasComposesNode, hasParensAroundNode, hasEmptyRawBefore, - isSCSSNestedPropertyNode, + isKeyValuePairNode, + isKeyInValuePairNode, isDetachedRulesetCallNode, isTemplatePlaceholderNode, isTemplatePropNode, isPostcssSimpleVarNode, - isKeyValuePairNode, - isKeyValuePairInParenGroupNode, isSCSSMapItemNode, isInlineValueCommentNode, isHashNode, @@ -46854,89 +50777,18 @@ var utils$7 = { isMediaAndSupportsKeywords, isColorAdjusterFuncNode, lastLineHasInlineComment, - stringifyNode -}; - -const { - printNumber: printNumber$2, - printString: printString$2, - hasIgnoreComment: hasIgnoreComment$3, - hasNewline: hasNewline$6, - isFrontMatterNode: isFrontMatterNode$2, - isNextLineEmpty: isNextLineEmpty$5 -} = util; -const { - builders: { - concat: concat$f, - join: join$8, - line: line$9, - hardline: hardline$a, - softline: softline$7, - group: group$b, - fill: fill$4, - indent: indent$a, - dedent: dedent$2, - ifBreak: ifBreak$5, - breakParent: breakParent$5 - }, - utils: { - removeLines: removeLines$2 - } -} = document; -const { - insertPragma: insertPragma$3 -} = pragma$1; + isAtWordPlaceholderNode +} = utils$4; const { - getAncestorNode: getAncestorNode$1, - getPropOfDeclNode: getPropOfDeclNode$1, - maybeToLowerCase: maybeToLowerCase$1, - insideValueFunctionNode: insideValueFunctionNode$1, - insideICSSRuleNode: insideICSSRuleNode$1, - insideAtRuleNode: insideAtRuleNode$1, - insideURLFunctionInImportAtRuleNode: insideURLFunctionInImportAtRuleNode$1, - isKeyframeAtRuleKeywords: isKeyframeAtRuleKeywords$1, - isWideKeywords: isWideKeywords$1, - isSCSS: isSCSS$1, - isLastNode: isLastNode$1, - isLessParser: isLessParser$1, - isSCSSControlDirectiveNode: isSCSSControlDirectiveNode$1, - isDetachedRulesetDeclarationNode: isDetachedRulesetDeclarationNode$1, - isRelationalOperatorNode: isRelationalOperatorNode$1, - isEqualityOperatorNode: isEqualityOperatorNode$1, - isMultiplicationNode: isMultiplicationNode$1, - isDivisionNode: isDivisionNode$1, - isAdditionNode: isAdditionNode$1, - isSubtractionNode: isSubtractionNode$1, - isMathOperatorNode: isMathOperatorNode$1, - isEachKeywordNode: isEachKeywordNode$1, - isForKeywordNode: isForKeywordNode$1, - isURLFunctionNode: isURLFunctionNode$1, - isIfElseKeywordNode: isIfElseKeywordNode$1, - hasComposesNode: hasComposesNode$1, - hasParensAroundNode: hasParensAroundNode$1, - hasEmptyRawBefore: hasEmptyRawBefore$1, - isKeyValuePairNode: isKeyValuePairNode$1, - isDetachedRulesetCallNode: isDetachedRulesetCallNode$1, - isTemplatePlaceholderNode: isTemplatePlaceholderNode$1, - isTemplatePropNode: isTemplatePropNode$1, - isPostcssSimpleVarNode: isPostcssSimpleVarNode$1, - isSCSSMapItemNode: isSCSSMapItemNode$1, - isInlineValueCommentNode: isInlineValueCommentNode$1, - isHashNode: isHashNode$1, - isLeftCurlyBraceNode: isLeftCurlyBraceNode$1, - isRightCurlyBraceNode: isRightCurlyBraceNode$1, - isWordNode: isWordNode$1, - isColonNode: isColonNode$1, - isMediaAndSupportsKeywords: isMediaAndSupportsKeywords$1, - isColorAdjusterFuncNode: isColorAdjusterFuncNode$1, - lastLineHasInlineComment: lastLineHasInlineComment$1 -} = utils$7; + locStart: locStart$b, + locEnd: locEnd$a +} = loc$5; -function shouldPrintComma$4(options) { +function shouldPrintComma(options) { return options.trailingComma === "es5" || options.trailingComma === "all"; } -function genericPrint$2(path, options, print) { +function genericPrint$4(path, options, print) { const node = path.getValue(); /* istanbul ignore if */ @@ -46950,25 +50802,25 @@ function genericPrint$2(path, options, print) { switch (node.type) { case "front-matter": - return concat$f([node.raw, hardline$a]); + return [node.raw, hardline$9]; case "css-root": { const nodes = printNodeSequence(path, options, print); const after = node.raws.after.trim(); - return concat$f([nodes, after ? ` ${after}` : "", nodes.parts.length && !options.__isHTMLStyleAttribute ? hardline$a : ""]); + return [nodes, after ? ` ${after}` : "", getDocParts$4(nodes).length > 0 ? hardline$9 : ""]; } case "css-comment": { const isInlineComment = node.inline || node.raws.inline; - const text = options.originalText.slice(options.locStart(node), options.locEnd(node)); + const text = options.originalText.slice(locStart$b(node), locEnd$a(node)); return isInlineComment ? text.trimEnd() : text; } case "css-rule": { - return concat$f([path.call(print, "selector"), node.important ? " !important" : "", node.nodes ? concat$f([node.selector && node.selector.type === "selector-unknown" && lastLineHasInlineComment$1(node.selector.value) ? line$9 : " ", "{", node.nodes.length > 0 ? indent$a(concat$f([hardline$a, printNodeSequence(path, options, print)])) : "", hardline$a, "}", isDetachedRulesetDeclarationNode$1(node) ? ";" : ""]) : ";"]); + return [print("selector"), node.important ? " !important" : "", node.nodes ? [node.selector && node.selector.type === "selector-unknown" && lastLineHasInlineComment(node.selector.value) ? line$9 : " ", "{", node.nodes.length > 0 ? indent$5([hardline$9, printNodeSequence(path, options, print)]) : "", hardline$9, "}", isDetachedRulesetDeclarationNode(node) ? ";" : ""] : ";"]; } case "css-decl": @@ -46979,38 +50831,38 @@ function genericPrint$2(path, options, print) { } = node.raws; const trimmedBetween = rawBetween.trim(); const isColon = trimmedBetween === ":"; - let value = hasComposesNode$1(node) ? removeLines$2(path.call(print, "value")) : path.call(print, "value"); + let value = hasComposesNode(node) ? removeLines(print("value")) : print("value"); - if (!isColon && lastLineHasInlineComment$1(trimmedBetween)) { - value = indent$a(concat$f([hardline$a, dedent$2(value)])); + if (!isColon && lastLineHasInlineComment(trimmedBetween)) { + value = indent$5([hardline$9, dedent$2(value)]); } - return concat$f([node.raws.before.replace(/[\s;]/g, ""), insideICSSRuleNode$1(path) ? node.prop : maybeToLowerCase$1(node.prop), trimmedBetween.startsWith("//") ? " " : "", trimmedBetween, node.extend ? "" : " ", isLessParser$1(options) && node.extend && node.selector ? concat$f(["extend(", path.call(print, "selector"), ")"]) : "", value, node.raws.important ? node.raws.important.replace(/\s*!\s*important/i, " !important") : node.important ? " !important" : "", node.raws.scssDefault ? node.raws.scssDefault.replace(/\s*!default/i, " !default") : node.scssDefault ? " !default" : "", node.raws.scssGlobal ? node.raws.scssGlobal.replace(/\s*!global/i, " !global") : node.scssGlobal ? " !global" : "", node.nodes ? concat$f([" {", indent$a(concat$f([softline$7, printNodeSequence(path, options, print)])), softline$7, "}"]) : isTemplatePropNode$1(node) && !parentNode.raws.semicolon && options.originalText[options.locEnd(node) - 1] !== ";" ? "" : options.__isHTMLStyleAttribute && isLastNode$1(path, node) ? ifBreak$5(";", "") : ";"]); + return [node.raws.before.replace(/[\s;]/g, ""), insideICSSRuleNode(path) ? node.prop : maybeToLowerCase(node.prop), trimmedBetween.startsWith("//") ? " " : "", trimmedBetween, node.extend ? "" : " ", isLessParser(options) && node.extend && node.selector ? ["extend(", print("selector"), ")"] : "", value, node.raws.important ? node.raws.important.replace(/\s*!\s*important/i, " !important") : node.important ? " !important" : "", node.raws.scssDefault ? node.raws.scssDefault.replace(/\s*!default/i, " !default") : node.scssDefault ? " !default" : "", node.raws.scssGlobal ? node.raws.scssGlobal.replace(/\s*!global/i, " !global") : node.scssGlobal ? " !global" : "", node.nodes ? [" {", indent$5([softline$7, printNodeSequence(path, options, print)]), softline$7, "}"] : isTemplatePropNode(node) && !parentNode.raws.semicolon && options.originalText[locEnd$a(node) - 1] !== ";" ? "" : options.__isHTMLStyleAttribute && isLastNode(path, node) ? ifBreak$7(";") : ";"]; } case "css-atrule": { const parentNode = path.getParentNode(); - const isTemplatePlaceholderNodeWithoutSemiColon = isTemplatePlaceholderNode$1(node) && !parentNode.raws.semicolon && options.originalText[options.locEnd(node) - 1] !== ";"; + const isTemplatePlaceholderNodeWithoutSemiColon = isTemplatePlaceholderNode(node) && !parentNode.raws.semicolon && options.originalText[locEnd$a(node) - 1] !== ";"; - if (isLessParser$1(options)) { + if (isLessParser(options)) { if (node.mixin) { - return concat$f([path.call(print, "selector"), node.important ? " !important" : "", isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]); + return [print("selector"), node.important ? " !important" : "", isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; } if (node.function) { - return concat$f([node.name, concat$f([path.call(print, "params")]), isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]); + return [node.name, print("params"), isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; } if (node.variable) { - return concat$f(["@", node.name, ": ", node.value ? concat$f([path.call(print, "value")]) : "", node.raws.between.trim() ? node.raws.between.trim() + " " : "", node.nodes ? concat$f(["{", indent$a(concat$f([node.nodes.length > 0 ? softline$7 : "", printNodeSequence(path, options, print)])), softline$7, "}"]) : "", isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]); + return ["@", node.name, ": ", node.value ? print("value") : "", node.raws.between.trim() ? node.raws.between.trim() + " " : "", node.nodes ? ["{", indent$5([node.nodes.length > 0 ? softline$7 : "", printNodeSequence(path, options, print)]), softline$7, "}"] : "", isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; } } - return concat$f(["@", // If a Less file ends up being parsed with the SCSS parser, Less + return ["@", // If a Less file ends up being parsed with the SCSS parser, Less // variable declarations will be parsed as at-rules with names ending // with a colon, so keep the original case then. - isDetachedRulesetCallNode$1(node) || node.name.endsWith(":") ? node.name : maybeToLowerCase$1(node.name), node.params ? concat$f([isDetachedRulesetCallNode$1(node) ? "" : isTemplatePlaceholderNode$1(node) ? node.raws.afterName === "" ? "" : node.name.endsWith(":") ? " " : /^\s*\n\s*\n/.test(node.raws.afterName) ? concat$f([hardline$a, hardline$a]) : /^\s*\n/.test(node.raws.afterName) ? hardline$a : " " : " ", path.call(print, "params")]) : "", node.selector ? indent$a(concat$f([" ", path.call(print, "selector")])) : "", node.value ? group$b(concat$f([" ", path.call(print, "value"), isSCSSControlDirectiveNode$1(node) ? hasParensAroundNode$1(node) ? " " : line$9 : ""])) : node.name === "else" ? " " : "", node.nodes ? concat$f([isSCSSControlDirectiveNode$1(node) ? "" : node.selector && !node.selector.nodes && typeof node.selector.value === "string" && lastLineHasInlineComment$1(node.selector.value) || !node.selector && typeof node.params === "string" && lastLineHasInlineComment$1(node.params) ? line$9 : " ", "{", indent$a(concat$f([node.nodes.length > 0 ? softline$7 : "", printNodeSequence(path, options, print)])), softline$7, "}"]) : isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]); + isDetachedRulesetCallNode(node) || node.name.endsWith(":") ? node.name : maybeToLowerCase(node.name), node.params ? [isDetachedRulesetCallNode(node) ? "" : isTemplatePlaceholderNode(node) ? node.raws.afterName === "" ? "" : node.name.endsWith(":") ? " " : /^\s*\n\s*\n/.test(node.raws.afterName) ? [hardline$9, hardline$9] : /^\s*\n/.test(node.raws.afterName) ? hardline$9 : " " : " ", print("params")] : "", node.selector ? indent$5([" ", print("selector")]) : "", node.value ? group$9([" ", print("value"), isSCSSControlDirectiveNode(node) ? hasParensAroundNode(node) ? " " : line$9 : ""]) : node.name === "else" ? " " : "", node.nodes ? [isSCSSControlDirectiveNode(node) ? "" : node.selector && !node.selector.nodes && typeof node.selector.value === "string" && lastLineHasInlineComment(node.selector.value) || !node.selector && typeof node.params === "string" && lastLineHasInlineComment(node.params) ? line$9 : " ", "{", indent$5([node.nodes.length > 0 ? softline$7 : "", printNodeSequence(path, options, print)]), softline$7, "}"] : isTemplatePlaceholderNodeWithoutSemiColon ? "" : ";"]; } // postcss-media-query-parser @@ -47024,14 +50876,14 @@ function genericPrint$2(path, options, print) { return; } - parts.push(childPath.call(print)); + parts.push(print()); }, "nodes"); - return group$b(indent$a(join$8(line$9, parts))); + return group$9(indent$5(join$9(line$9, parts))); } case "media-query": { - return concat$f([join$8(" ", path.map(print, "nodes")), isLastNode$1(path, node) ? "" : ","]); + return [join$9(" ", path.map(print, "nodes")), isLastNode(path, node) ? "" : ","]; } case "media-type": @@ -47045,17 +50897,17 @@ function genericPrint$2(path, options, print) { return node.value; } - return concat$f(["(", concat$f(path.map(print, "nodes")), ")"]); + return ["(", ...path.map(print, "nodes"), ")"]; } case "media-feature": { - return maybeToLowerCase$1(adjustStrings(node.value.replace(/ +/g, " "), options)); + return maybeToLowerCase(adjustStrings(node.value.replace(/ +/g, " "), options)); } case "media-colon": { - return concat$f([node.value, " "]); + return [node.value, " "]; } case "media-value": @@ -47070,7 +50922,7 @@ function genericPrint$2(path, options, print) { case "media-url": { - return adjustStrings(node.value.replace(/^url\(\s+/gi, "url(").replace(/\s+\)$/gi, ")"), options); + return adjustStrings(node.value.replace(/^url\(\s+/gi, "url(").replace(/\s+\)$/g, ")"), options); } case "media-unknown": @@ -47081,12 +50933,12 @@ function genericPrint$2(path, options, print) { case "selector-root": { - return group$b(concat$f([insideAtRuleNode$1(path, "custom-selector") ? concat$f([getAncestorNode$1(path, "css-atrule").customSelector, line$9]) : "", join$8(concat$f([",", insideAtRuleNode$1(path, ["extend", "custom-selector", "nest"]) ? line$9 : hardline$a]), path.map(print, "nodes"))])); + return group$9([insideAtRuleNode(path, "custom-selector") ? [getAncestorNode$1(path, "css-atrule").customSelector, line$9] : "", join$9([",", insideAtRuleNode(path, ["extend", "custom-selector", "nest"]) ? line$9 : hardline$9], path.map(print, "nodes"))]); } case "selector-selector": { - return group$b(indent$a(concat$f(path.map(print, "nodes")))); + return group$9(indent$5(path.map(print, "nodes"))); } case "selector-comment": @@ -47104,22 +50956,22 @@ function genericPrint$2(path, options, print) { const parentNode = path.getParentNode(); const index = parentNode && parentNode.nodes.indexOf(node); const prevNode = index && parentNode.nodes[index - 1]; - return concat$f([node.namespace ? concat$f([node.namespace === true ? "" : node.namespace.trim(), "|"]) : "", prevNode.type === "selector-nesting" ? node.value : adjustNumbers(isKeyframeAtRuleKeywords$1(path, node.value) ? node.value.toLowerCase() : node.value)]); + return [node.namespace ? [node.namespace === true ? "" : node.namespace.trim(), "|"] : "", prevNode.type === "selector-nesting" ? node.value : adjustNumbers(isKeyframeAtRuleKeywords(path, node.value) ? node.value.toLowerCase() : node.value)]; } case "selector-id": { - return concat$f(["#", node.value]); + return ["#", node.value]; } case "selector-class": { - return concat$f([".", adjustNumbers(adjustStrings(node.value, options))]); + return [".", adjustNumbers(adjustStrings(node.value, options))]; } case "selector-attribute": { - return concat$f(["[", node.namespace ? concat$f([node.namespace === true ? "" : node.namespace.trim(), "|"]) : "", node.attribute.trim(), node.operator ? node.operator : "", node.value ? quoteAttributeValue(adjustStrings(node.value.trim(), options), options) : "", node.insensitive ? " i" : "", "]"]); + return ["[", node.namespace ? [node.namespace === true ? "" : node.namespace.trim(), "|"] : "", node.attribute.trim(), node.operator ? node.operator : "", node.value ? quoteAttributeValue(adjustStrings(node.value.trim(), options), options) : "", node.insensitive ? " i" : "", "]"]; } case "selector-combinator": @@ -47127,22 +50979,22 @@ function genericPrint$2(path, options, print) { if (node.value === "+" || node.value === ">" || node.value === "~" || node.value === ">>>") { const parentNode = path.getParentNode(); const leading = parentNode.type === "selector-selector" && parentNode.nodes[0] === node ? "" : line$9; - return concat$f([leading, node.value, isLastNode$1(path, node) ? "" : " "]); + return [leading, node.value, isLastNode(path, node) ? "" : " "]; } const leading = node.value.trim().startsWith("(") ? line$9 : ""; const value = adjustNumbers(adjustStrings(node.value.trim(), options)) || line$9; - return concat$f([leading, value]); + return [leading, value]; } case "selector-universal": { - return concat$f([node.namespace ? concat$f([node.namespace === true ? "" : node.namespace.trim(), "|"]) : "", node.value]); + return [node.namespace ? [node.namespace === true ? "" : node.namespace.trim(), "|"] : "", node.value]; } case "selector-pseudo": { - return concat$f([maybeToLowerCase$1(node.value), node.nodes && node.nodes.length > 0 ? concat$f(["(", join$8(", ", path.map(print, "nodes")), ")"]) : ""]); + return [maybeToLowerCase(node.value), isNonEmptyArray$5(node.nodes) ? ["(", join$9(", ", path.map(print, "nodes")), ")"] : ""]; } case "selector-nesting": @@ -47155,14 +51007,14 @@ function genericPrint$2(path, options, print) { const ruleAncestorNode = getAncestorNode$1(path, "css-rule"); // Nested SCSS property if (ruleAncestorNode && ruleAncestorNode.isSCSSNesterProperty) { - return adjustNumbers(adjustStrings(maybeToLowerCase$1(node.value), options)); + return adjustNumbers(adjustStrings(maybeToLowerCase(node.value), options)); } // originalText has to be used for Less, see replaceQuotesInInlineComments in loc.js const parentNode = path.getParentNode(); if (parentNode.raws && parentNode.raws.selector) { - const start = options.locStart(parentNode); + const start = locStart$b(parentNode); const end = start + parentNode.raws.selector.length; return options.originalText.slice(start, end).trim(); } // Same reason above @@ -47171,10 +51023,10 @@ function genericPrint$2(path, options, print) { const grandParent = path.getParentNode(1); if (parentNode.type === "value-paren_group" && grandParent && grandParent.type === "value-func" && grandParent.value === "selector") { - const start = options.locStart(parentNode.open) + 1; - const end = options.locEnd(parentNode.close) - 1; + const start = locStart$b(parentNode.open) + 1; + const end = locEnd$a(parentNode.close) - 1; const selector = options.originalText.slice(start, end).trim(); - return lastLineHasInlineComment$1(selector) ? concat$f([breakParent$5, selector]) : selector; + return lastLineHasInlineComment(selector) ? [breakParent$3, selector] : selector; } return node.value; @@ -47184,25 +51036,26 @@ function genericPrint$2(path, options, print) { case "value-value": case "value-root": { - return path.call(print, "group"); + return print("group"); } case "value-comment": { - return options.originalText.slice(options.locStart(node), options.locEnd(node)); + return options.originalText.slice(locStart$b(node), locEnd$a(node)); } case "value-comma_group": { const parentNode = path.getParentNode(); const parentParentNode = path.getParentNode(1); - const declAncestorProp = getPropOfDeclNode$1(path); + const declAncestorProp = getPropOfDeclNode(path); const isGridValue = declAncestorProp && parentNode.type === "value-value" && (declAncestorProp === "grid" || declAncestorProp.startsWith("grid-template")); const atRuleAncestorNode = getAncestorNode$1(path, "css-atrule"); - const isControlDirective = atRuleAncestorNode && isSCSSControlDirectiveNode$1(atRuleAncestorNode); + const isControlDirective = atRuleAncestorNode && isSCSSControlDirectiveNode(atRuleAncestorNode); + const hasInlineComment = node.groups.some(node => isInlineValueCommentNode(node)); const printed = path.map(print, "groups"); const parts = []; - const insideURLFunction = insideValueFunctionNode$1(path, "url"); + const insideURLFunction = insideValueFunctionNode(path, "url"); let insideSCSSInterpolationInString = false; let didBreak = false; @@ -47214,7 +51067,7 @@ function genericPrint$2(path, options, print) { const iNextNextNode = node.groups[i + 2]; if (insideURLFunction) { - if (iNextNode && isAdditionNode$1(iNextNode) || isAdditionNode$1(iNode)) { + if (iNextNode && isAdditionNode(iNextNode) || isAdditionNode(iNode)) { parts.push(" "); } @@ -47227,7 +51080,7 @@ function genericPrint$2(path, options, print) { } // styled.div` background: var(--${one}); ` - if (iNode.type === "value-word" && iNode.value.endsWith("-") && iNextNode.type === "value-atword" && iNextNode.value.startsWith("prettier-placeholder-")) { + if (iNode.type === "value-word" && iNode.value.endsWith("-") && isAtWordPlaceholderNode(iNextNode)) { continue; } // Ignore spaces before/after string interpolation (i.e. `"#{my-fn("_")}"`) @@ -47245,7 +51098,7 @@ function genericPrint$2(path, options, print) { } // Ignore colon (i.e. `:`) - if (isColonNode$1(iNode) || isColonNode$1(iNextNode)) { + if (isColonNode(iNode) || isColonNode(iNextNode)) { continue; } // Ignore `@` in Less (i.e. `@@var;`) @@ -47275,60 +51128,67 @@ function genericPrint$2(path, options, print) { } // Ignore `$$` (i.e. `background-color: $$(style)Color;`) - if (isPostcssSimpleVarNode$1(iNode, iNextNode)) { + if (isPostcssSimpleVarNode(iNode, iNextNode)) { continue; } // Ignore spaces after `#` and after `{` and before `}` in SCSS interpolation (i.e. `#{variable}`) - if (isHashNode$1(iNode) || isLeftCurlyBraceNode$1(iNode) || isRightCurlyBraceNode$1(iNextNode) || isLeftCurlyBraceNode$1(iNextNode) && hasEmptyRawBefore$1(iNextNode) || isRightCurlyBraceNode$1(iNode) && hasEmptyRawBefore$1(iNextNode)) { + if (isHashNode(iNode) || isLeftCurlyBraceNode(iNode) || isRightCurlyBraceNode(iNextNode) || isLeftCurlyBraceNode(iNextNode) && hasEmptyRawBefore(iNextNode) || isRightCurlyBraceNode(iNode) && hasEmptyRawBefore(iNextNode)) { continue; } // Ignore css variables and interpolation in SCSS (i.e. `--#{$var}`) - if (iNode.value === "--" && isHashNode$1(iNextNode)) { + if (iNode.value === "--" && isHashNode(iNextNode)) { continue; } // Formatting math operations - const isMathOperator = isMathOperatorNode$1(iNode); - const isNextMathOperator = isMathOperatorNode$1(iNextNode); // Print spaces before and after math operators beside SCSS interpolation as is + const isMathOperator = isMathOperatorNode(iNode); + const isNextMathOperator = isMathOperatorNode(iNextNode); // Print spaces before and after math operators beside SCSS interpolation as is // (i.e. `#{$var}+5`, `#{$var} +5`, `#{$var}+ 5`, `#{$var} + 5`) // (i.e. `5+#{$var}`, `5 +#{$var}`, `5+ #{$var}`, `5 + #{$var}`) - if ((isMathOperator && isHashNode$1(iNextNode) || isNextMathOperator && isRightCurlyBraceNode$1(iNode)) && hasEmptyRawBefore$1(iNextNode)) { + if ((isMathOperator && isHashNode(iNextNode) || isNextMathOperator && isRightCurlyBraceNode(iNode)) && hasEmptyRawBefore(iNextNode)) { + continue; + } // absolute paths are only parsed as one token if they are part of url(/abs/path) call + // but if you have custom -fb-url(/abs/path/) then it is parsed as "division /" and rest + // of the path. We don't want to put a space after that first division in this case. + + + if (!iPrevNode && isDivisionNode(iNode)) { continue; } // Print spaces before and after addition and subtraction math operators as is in `calc` function // due to the fact that it is not valid syntax // (i.e. `calc(1px+1px)`, `calc(1px+ 1px)`, `calc(1px +1px)`, `calc(1px + 1px)`) - if (insideValueFunctionNode$1(path, "calc") && (isAdditionNode$1(iNode) || isAdditionNode$1(iNextNode) || isSubtractionNode$1(iNode) || isSubtractionNode$1(iNextNode)) && hasEmptyRawBefore$1(iNextNode)) { + if (insideValueFunctionNode(path, "calc") && (isAdditionNode(iNode) || isAdditionNode(iNextNode) || isSubtractionNode(iNode) || isSubtractionNode(iNextNode)) && hasEmptyRawBefore(iNextNode)) { continue; } // Print spaces after `+` and `-` in color adjuster functions as is (e.g. `color(red l(+ 20%))`) // Adjusters with signed numbers (e.g. `color(red l(+20%))`) output as-is. - const isColorAdjusterNode = (isAdditionNode$1(iNode) || isSubtractionNode$1(iNode)) && i === 0 && (iNextNode.type === "value-number" || iNextNode.isHex) && parentParentNode && isColorAdjusterFuncNode$1(parentParentNode) && !hasEmptyRawBefore$1(iNextNode); - const requireSpaceBeforeOperator = iNextNextNode && iNextNextNode.type === "value-func" || iNextNextNode && isWordNode$1(iNextNextNode) || iNode.type === "value-func" || isWordNode$1(iNode); - const requireSpaceAfterOperator = iNextNode.type === "value-func" || isWordNode$1(iNextNode) || iPrevNode && iPrevNode.type === "value-func" || iPrevNode && isWordNode$1(iPrevNode); // Formatting `/`, `+`, `-` sign + const isColorAdjusterNode = (isAdditionNode(iNode) || isSubtractionNode(iNode)) && i === 0 && (iNextNode.type === "value-number" || iNextNode.isHex) && parentParentNode && isColorAdjusterFuncNode(parentParentNode) && !hasEmptyRawBefore(iNextNode); + const requireSpaceBeforeOperator = iNextNextNode && iNextNextNode.type === "value-func" || iNextNextNode && isWordNode(iNextNextNode) || iNode.type === "value-func" || isWordNode(iNode); + const requireSpaceAfterOperator = iNextNode.type === "value-func" || isWordNode(iNextNode) || iPrevNode && iPrevNode.type === "value-func" || iPrevNode && isWordNode(iPrevNode); // Formatting `/`, `+`, `-` sign - if (!(isMultiplicationNode$1(iNextNode) || isMultiplicationNode$1(iNode)) && !insideValueFunctionNode$1(path, "calc") && !isColorAdjusterNode && (isDivisionNode$1(iNextNode) && !requireSpaceBeforeOperator || isDivisionNode$1(iNode) && !requireSpaceAfterOperator || isAdditionNode$1(iNextNode) && !requireSpaceBeforeOperator || isAdditionNode$1(iNode) && !requireSpaceAfterOperator || isSubtractionNode$1(iNextNode) || isSubtractionNode$1(iNode)) && (hasEmptyRawBefore$1(iNextNode) || isMathOperator && (!iPrevNode || iPrevNode && isMathOperatorNode$1(iPrevNode)))) { + if (!(isMultiplicationNode(iNextNode) || isMultiplicationNode(iNode)) && !insideValueFunctionNode(path, "calc") && !isColorAdjusterNode && (isDivisionNode(iNextNode) && !requireSpaceBeforeOperator || isDivisionNode(iNode) && !requireSpaceAfterOperator || isAdditionNode(iNextNode) && !requireSpaceBeforeOperator || isAdditionNode(iNode) && !requireSpaceAfterOperator || isSubtractionNode(iNextNode) || isSubtractionNode(iNode)) && (hasEmptyRawBefore(iNextNode) || isMathOperator && (!iPrevNode || iPrevNode && isMathOperatorNode(iPrevNode)))) { continue; } // Add `hardline` after inline comment (i.e. `// comment\n foo: bar;`) - if (isInlineValueCommentNode$1(iNode)) { + if (isInlineValueCommentNode(iNode)) { if (parentNode.type === "value-paren_group") { - parts.push(dedent$2(hardline$a)); + parts.push(dedent$2(hardline$9)); continue; } - parts.push(hardline$a); + parts.push(hardline$9); continue; } // Handle keywords in SCSS control directive - if (isControlDirective && (isEqualityOperatorNode$1(iNextNode) || isRelationalOperatorNode$1(iNextNode) || isIfElseKeywordNode$1(iNextNode) || isEachKeywordNode$1(iNode) || isForKeywordNode$1(iNode))) { + if (isControlDirective && (isEqualityOperatorNode(iNextNode) || isRelationalOperatorNode(iNextNode) || isIfElseKeywordNode(iNextNode) || isEachKeywordNode(iNode) || isForKeywordNode(iNode))) { parts.push(" "); continue; } // At-rule `namespace` should be in one line @@ -47342,7 +51202,7 @@ function genericPrint$2(path, options, print) { if (isGridValue) { if (iNode.source && iNextNode.source && iNode.source.start.line !== iNextNode.source.start.line) { - parts.push(hardline$a); + parts.push(hardline$9); didBreak = true; } else { parts.push(" "); @@ -47362,37 +51222,45 @@ function genericPrint$2(path, options, print) { if (iNextNode && iNextNode.value === "...") { continue; + } + + if (isAtWordPlaceholderNode(iNode) && isAtWordPlaceholderNode(iNextNode) && locEnd$a(iNode) === locStart$b(iNextNode)) { + continue; } // Be default all values go through `line` parts.push(line$9); } + if (hasInlineComment) { + parts.push(breakParent$3); + } + if (didBreak) { - parts.unshift(hardline$a); + parts.unshift(hardline$9); } if (isControlDirective) { - return group$b(indent$a(concat$f(parts))); + return group$9(indent$5(parts)); } // Indent is not needed for import url when url is very long // and node has two groups // when type is value-comma_group // example @import url("verylongurl") projection,tv - if (insideURLFunctionInImportAtRuleNode$1(path)) { - return group$b(fill$4(parts)); + if (insideURLFunctionInImportAtRuleNode(path)) { + return group$9(fill$5(parts)); } - return group$b(indent$a(fill$4(parts))); + return group$9(indent$5(fill$5(parts))); } case "value-paren_group": { const parentNode = path.getParentNode(); - if (parentNode && isURLFunctionNode$1(parentNode) && (node.groups.length === 1 || node.groups.length > 0 && node.groups[0].type === "value-comma_group" && node.groups[0].groups.length > 0 && node.groups[0].groups[0].type === "value-word" && node.groups[0].groups[0].value.startsWith("data:"))) { - return concat$f([node.open ? path.call(print, "open") : "", join$8(",", path.map(print, "groups")), node.close ? path.call(print, "close") : ""]); + if (parentNode && isURLFunctionNode(parentNode) && (node.groups.length === 1 || node.groups.length > 0 && node.groups[0].type === "value-comma_group" && node.groups[0].groups.length > 0 && node.groups[0].groups[0].type === "value-word" && node.groups[0].groups[0].value.startsWith("data:"))) { + return [node.open ? print("open") : "", join$9(",", path.map(print, "groups")), node.close ? print("close") : ""]; } if (!node.open) { @@ -47401,36 +51269,39 @@ function genericPrint$2(path, options, print) { for (let i = 0; i < printed.length; i++) { if (i !== 0) { - res.push(concat$f([",", line$9])); + res.push([",", line$9]); } res.push(printed[i]); } - return group$b(indent$a(fill$4(res))); + return group$9(indent$5(fill$5(res))); } - const isSCSSMapItem = isSCSSMapItemNode$1(path); - const lastItem = node.groups[node.groups.length - 1]; + const isSCSSMapItem = isSCSSMapItemNode(path); + const lastItem = getLast_1(node.groups); const isLastItemComment = lastItem && lastItem.type === "value-comment"; - return group$b(concat$f([node.open ? path.call(print, "open") : "", indent$a(concat$f([softline$7, join$8(concat$f([",", line$9]), path.map(childPath => { + const isKey = isKeyInValuePairNode(node, parentNode); + const printed = group$9([node.open ? print("open") : "", indent$5([softline$7, join$9([",", line$9], path.map(childPath => { const node = childPath.getValue(); - const printed = print(childPath); // Key/Value pair in open paren already indented + const printed = print(); // Key/Value pair in open paren already indented - if (isKeyValuePairNode$1(node) && node.type === "value-comma_group" && node.groups && node.groups[2] && node.groups[2].type === "value-paren_group") { - printed.contents.contents.parts[1] = group$b(printed.contents.contents.parts[1]); - return group$b(dedent$2(printed)); + if (isKeyValuePairNode(node) && node.type === "value-comma_group" && node.groups && node.groups[0].type !== "value-paren_group" && node.groups[2] && node.groups[2].type === "value-paren_group") { + const parts = getDocParts$4(printed.contents.contents); + parts[1] = group$9(parts[1]); + return group$9(dedent$2(printed)); } return printed; - }, "groups"))])), ifBreak$5(!isLastItemComment && isSCSS$1(options.parser, options.originalText) && isSCSSMapItem && shouldPrintComma$4(options) ? "," : ""), softline$7, node.close ? path.call(print, "close") : ""]), { - shouldBreak: isSCSSMapItem + }, "groups"))]), ifBreak$7(!isLastItemComment && isSCSS(options.parser, options.originalText) && isSCSSMapItem && shouldPrintComma(options) ? "," : ""), softline$7, node.close ? print("close") : ""], { + shouldBreak: isSCSSMapItem && !isKey }); + return isKey ? dedent$2(printed) : printed; } case "value-func": { - return concat$f([node.value, insideAtRuleNode$1(path, "supports") && isMediaAndSupportsKeywords$1(node) ? " " : "", path.call(print, "group")]); + return [node.value, insideAtRuleNode(path, "supports") && isMediaAndSupportsKeywords(node) ? " " : "", print("group")]; } case "value-paren": @@ -47440,7 +51311,7 @@ function genericPrint$2(path, options, print) { case "value-number": { - return concat$f([printCssNumber(node.value), maybeToLowerCase$1(node.unit)]); + return [printCssNumber(node.value), maybeToLowerCase(node.unit)]; } case "value-operator": @@ -47450,7 +51321,7 @@ function genericPrint$2(path, options, print) { case "value-word": { - if (node.isColor && node.isHex || isWideKeywords$1(node.value)) { + if (node.isColor && node.isHex || isWideKeywords(node.value)) { return node.value.toLowerCase(); } @@ -47462,9 +51333,9 @@ function genericPrint$2(path, options, print) { const parentNode = path.getParentNode(); const index = parentNode && parentNode.groups.indexOf(node); const prevNode = index && parentNode.groups[index - 1]; - return concat$f([node.value, // Don't add spaces on escaped colon `:`, e.g: grid-template-rows: [row-1-00\:00] auto; - prevNode && prevNode.value[prevNode.value.length - 1] === "\\" || // Don't add spaces on `:` in `url` function (i.e. `url(fbglyph: cross-outline, fig-white)`) - insideValueFunctionNode$1(path, "url") ? "" : line$9]); + return [node.value, // Don't add spaces on escaped colon `:`, e.g: grid-template-rows: [row-1-00\:00] auto; + prevNode && typeof prevNode.value === "string" && getLast_1(prevNode.value) === "\\" || // Don't add spaces on `:` in `url` function (i.e. `url(fbglyph: cross-outline, fig-white)`) + insideValueFunctionNode(path, "url") ? "" : line$9]; } // TODO: confirm this code is dead @@ -47472,17 +51343,17 @@ function genericPrint$2(path, options, print) { case "value-comma": { - return concat$f([node.value, " "]); + return [node.value, " "]; } case "value-string": { - return printString$2(node.raws.quote + node.value + node.raws.quote, options); + return printString(node.raws.quote + node.value + node.raws.quote, options); } case "value-atword": { - return concat$f(["@", node.value]); + return ["@", node.value]; } case "value-unicode-range": @@ -47502,46 +51373,42 @@ function genericPrint$2(path, options, print) { } function printNodeSequence(path, options, print) { - const node = path.getValue(); const parts = []; - let i = 0; - path.map(pathChild => { - const prevNode = node.nodes[i - 1]; + path.each((pathChild, i, nodes) => { + const prevNode = nodes[i - 1]; if (prevNode && prevNode.type === "css-comment" && prevNode.text.trim() === "prettier-ignore") { const childNode = pathChild.getValue(); - parts.push(options.originalText.slice(options.locStart(childNode), options.locEnd(childNode))); + parts.push(options.originalText.slice(locStart$b(childNode), locEnd$a(childNode))); } else { - parts.push(pathChild.call(print)); + parts.push(print()); } - if (i !== node.nodes.length - 1) { - if (node.nodes[i + 1].type === "css-comment" && !hasNewline$6(options.originalText, options.locStart(node.nodes[i + 1]), { + if (i !== nodes.length - 1) { + if (nodes[i + 1].type === "css-comment" && !hasNewline(options.originalText, locStart$b(nodes[i + 1]), { backwards: true - }) && !isFrontMatterNode$2(node.nodes[i]) || node.nodes[i + 1].type === "css-atrule" && node.nodes[i + 1].name === "else" && node.nodes[i].type !== "css-comment") { + }) && !isFrontMatterNode$3(nodes[i]) || nodes[i + 1].type === "css-atrule" && nodes[i + 1].name === "else" && nodes[i].type !== "css-comment") { parts.push(" "); } else { - parts.push(options.__isHTMLStyleAttribute ? line$9 : hardline$a); + parts.push(options.__isHTMLStyleAttribute ? line$9 : hardline$9); - if (isNextLineEmpty$5(options.originalText, pathChild.getValue(), options.locEnd) && !isFrontMatterNode$2(node.nodes[i])) { - parts.push(hardline$a); + if (isNextLineEmpty$3(options.originalText, pathChild.getValue(), locEnd$a) && !isFrontMatterNode$3(nodes[i])) { + parts.push(hardline$9); } } } - - i++; }, "nodes"); - return concat$f(parts); + return parts; } -const STRING_REGEX$3 = /(["'])(?:(?!\1)[^\\]|\\[\S\s])*\1/g; +const STRING_REGEX = /(["'])(?:(?!\1)[^\\]|\\.)*\1/gs; const NUMBER_REGEX = /(?:\d*\.\d+|\d+\.?)(?:[Ee][+-]?\d+)?/g; const STANDARD_UNIT_REGEX = /[A-Za-z]+/g; const WORD_PART_REGEX = /[$@]?[A-Z_a-z\u0080-\uFFFF][\w\u0080-\uFFFF-]*/g; -const ADJUST_NUMBERS_REGEX = new RegExp(STRING_REGEX$3.source + "|" + `(${WORD_PART_REGEX.source})?` + `(${NUMBER_REGEX.source})` + `(${STANDARD_UNIT_REGEX.source})?`, "g"); +const ADJUST_NUMBERS_REGEX = new RegExp(STRING_REGEX.source + "|" + `(${WORD_PART_REGEX.source})?` + `(${NUMBER_REGEX.source})` + `(${STANDARD_UNIT_REGEX.source})?`, "g"); function adjustStrings(value, options) { - return value.replace(STRING_REGEX$3, match => printString$2(match, options)); + return value.replace(STRING_REGEX, match => printString(match, options)); } function quoteAttributeValue(value, options) { @@ -47550,182 +51417,122 @@ function quoteAttributeValue(value, options) { } function adjustNumbers(value) { - return value.replace(ADJUST_NUMBERS_REGEX, (match, quote, wordPart, number, unit) => !wordPart && number ? printCssNumber(number) + maybeToLowerCase$1(unit || "") : match); + return value.replace(ADJUST_NUMBERS_REGEX, (match, quote, wordPart, number, unit) => !wordPart && number ? printCssNumber(number) + maybeToLowerCase(unit || "") : match); } function printCssNumber(rawNumber) { - return printNumber$2(rawNumber) // Remove trailing `.0`. + return printNumber(rawNumber) // Remove trailing `.0`. .replace(/\.0(?=$|e)/, ""); } var printerPostcss = { - print: genericPrint$2, - embed: embed_1$1, - insertPragma: insertPragma$3, - hasPrettierIgnore: hasIgnoreComment$3, - massageAstNode: clean_1$1 + print: genericPrint$4, + embed: embed_1$2, + insertPragma: insertPragma$7, + massageAstNode: clean_1$3 }; -var options$3 = { +var options$4 = { singleQuote: commonOptions.singleQuote }; var name$9 = "CSS"; -var type$7 = "markup"; -var tmScope$7 = "source.css"; -var aceMode$7 = "css"; -var codemirrorMode$7 = "css"; -var codemirrorMimeType$7 = "text/css"; -var color$2 = "#563d7c"; -var extensions$7 = [ +var type$9 = "markup"; +var tmScope$9 = "source.css"; +var aceMode$9 = "css"; +var codemirrorMode$5 = "css"; +var codemirrorMimeType$5 = "text/css"; +var color$8 = "#563d7c"; +var extensions$9 = [ ".css" ]; -var languageId$7 = 50; -var CSS = { +var languageId$9 = 50; +var require$$0$5 = { name: name$9, - type: type$7, - tmScope: tmScope$7, - aceMode: aceMode$7, - codemirrorMode: codemirrorMode$7, - codemirrorMimeType: codemirrorMimeType$7, - color: color$2, - extensions: extensions$7, - languageId: languageId$7 + type: type$9, + tmScope: tmScope$9, + aceMode: aceMode$9, + codemirrorMode: codemirrorMode$5, + codemirrorMimeType: codemirrorMimeType$5, + color: color$8, + extensions: extensions$9, + languageId: languageId$9 }; -var CSS$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$9, - type: type$7, - tmScope: tmScope$7, - aceMode: aceMode$7, - codemirrorMode: codemirrorMode$7, - codemirrorMimeType: codemirrorMimeType$7, - color: color$2, - extensions: extensions$7, - languageId: languageId$7, - 'default': CSS -}); - -var name$a = "PostCSS"; +var name$8 = "PostCSS"; var type$8 = "markup"; var tmScope$8 = "source.postcss"; -var group$c = "CSS"; +var group$8 = "CSS"; var extensions$8 = [ ".pcss", ".postcss" ]; var aceMode$8 = "text"; var languageId$8 = 262764437; -var PostCSS = { - name: name$a, +var require$$1$2 = { + name: name$8, type: type$8, tmScope: tmScope$8, - group: group$c, + group: group$8, extensions: extensions$8, aceMode: aceMode$8, languageId: languageId$8 }; -var PostCSS$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$a, - type: type$8, - tmScope: tmScope$8, - group: group$c, - extensions: extensions$8, - aceMode: aceMode$8, - languageId: languageId$8, - 'default': PostCSS -}); - -var name$b = "Less"; -var type$9 = "markup"; -var group$d = "CSS"; -var extensions$9 = [ +var name$7 = "Less"; +var type$7 = "markup"; +var color$7 = "#1d365d"; +var extensions$7 = [ ".less" ]; -var tmScope$9 = "source.css.less"; -var aceMode$9 = "less"; -var codemirrorMode$8 = "css"; -var codemirrorMimeType$8 = "text/css"; -var languageId$9 = 198; -var Less = { - name: name$b, - type: type$9, - group: group$d, - extensions: extensions$9, - tmScope: tmScope$9, - aceMode: aceMode$9, - codemirrorMode: codemirrorMode$8, - codemirrorMimeType: codemirrorMimeType$8, - languageId: languageId$9 +var tmScope$7 = "source.css.less"; +var aceMode$7 = "less"; +var codemirrorMode$4 = "css"; +var codemirrorMimeType$4 = "text/css"; +var languageId$7 = 198; +var require$$2$1 = { + name: name$7, + type: type$7, + color: color$7, + extensions: extensions$7, + tmScope: tmScope$7, + aceMode: aceMode$7, + codemirrorMode: codemirrorMode$4, + codemirrorMimeType: codemirrorMimeType$4, + languageId: languageId$7 }; -var Less$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$b, - type: type$9, - group: group$d, - extensions: extensions$9, - tmScope: tmScope$9, - aceMode: aceMode$9, - codemirrorMode: codemirrorMode$8, - codemirrorMimeType: codemirrorMimeType$8, - languageId: languageId$9, - 'default': Less -}); - -var name$c = "SCSS"; -var type$a = "markup"; -var tmScope$a = "source.css.scss"; -var group$e = "CSS"; -var aceMode$a = "scss"; -var codemirrorMode$9 = "css"; -var codemirrorMimeType$9 = "text/x-scss"; -var extensions$a = [ +var name$6 = "SCSS"; +var type$6 = "markup"; +var color$6 = "#c6538c"; +var tmScope$6 = "source.css.scss"; +var aceMode$6 = "scss"; +var codemirrorMode$3 = "css"; +var codemirrorMimeType$3 = "text/x-scss"; +var extensions$6 = [ ".scss" ]; -var languageId$a = 329; -var SCSS = { - name: name$c, - type: type$a, - tmScope: tmScope$a, - group: group$e, - aceMode: aceMode$a, - codemirrorMode: codemirrorMode$9, - codemirrorMimeType: codemirrorMimeType$9, - extensions: extensions$a, - languageId: languageId$a +var languageId$6 = 329; +var require$$3 = { + name: name$6, + type: type$6, + color: color$6, + tmScope: tmScope$6, + aceMode: aceMode$6, + codemirrorMode: codemirrorMode$3, + codemirrorMimeType: codemirrorMimeType$3, + extensions: extensions$6, + languageId: languageId$6 }; -var SCSS$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$c, - type: type$a, - tmScope: tmScope$a, - group: group$e, - aceMode: aceMode$a, - codemirrorMode: codemirrorMode$9, - codemirrorMimeType: codemirrorMimeType$9, - extensions: extensions$a, - languageId: languageId$a, - 'default': SCSS -}); - -var require$$0$3 = getCjsExportFromNamespace(CSS$1); - -var require$$1$1 = getCjsExportFromNamespace(PostCSS$1); - -var require$$2$1 = getCjsExportFromNamespace(Less$1); - -var require$$3$1 = getCjsExportFromNamespace(SCSS$1); - -const languages$1 = [createLanguage(require$$0$3, () => ({ +const languages$6 = [createLanguage(require$$0$5, data => ({ since: "1.4.0", parsers: ["css"], - vscodeLanguageIds: ["css"] -})), createLanguage(require$$1$1, () => ({ + vscodeLanguageIds: ["css"], + extensions: [...data.extensions, // `WeiXin Style Sheets`(Weixin Mini Programs) + // https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/ + ".wxss"] +})), createLanguage(require$$1$2, () => ({ since: "1.4.0", parsers: ["css"], vscodeLanguageIds: ["postcss"] @@ -47733,15 +51540,15 @@ const languages$1 = [createLanguage(require$$0$3, () => ({ since: "1.4.0", parsers: ["less"], vscodeLanguageIds: ["less"] -})), createLanguage(require$$3$1, () => ({ +})), createLanguage(require$$3, () => ({ since: "1.4.0", parsers: ["scss"], vscodeLanguageIds: ["scss"] }))]; -const printers$1 = { +const printers$4 = { postcss: printerPostcss }; -const parsers$1 = { +const parsers$5 = { // TODO: switch these to just `postcss` and use `language` instead. get css() { return require("./parser-postcss").parsers.css; @@ -47757,16 +51564,29 @@ const parsers$1 = { }; var languageCss = { - languages: languages$1, - options: options$3, - printers: printers$1, - parsers: parsers$1 + languages: languages$6, + options: options$4, + printers: printers$4, + parsers: parsers$5 }; -var clean$3 = function (ast, newNode) { - delete newNode.loc; - delete newNode.selfClosing; // (Glimmer/HTML) ignore TextNode whitespace +function locStart$a(node) { + return node.loc.start.offset; +} + +function locEnd$9(node) { + return node.loc.end.offset; +} +var loc$4 = { + locStart: locStart$a, + locEnd: locEnd$9 +}; + +function clean$4(ast, newNode +/*, parent*/ +) { + // (Glimmer/HTML) ignore TextNode if (ast.type === "TextNode") { const trimmed = ast.chars.trim(); @@ -47774,11 +51594,19 @@ var clean$3 = function (ast, newNode) { return null; } - newNode.chars = trimmed; + newNode.chars = trimmed.replace(/[\t\n\f\r ]+/g, " "); + } // `class` is reformatted + + + if (ast.type === "AttrNode" && ast.name.toLowerCase() === "class") { + delete newNode.value; } -}; +} -var index = [ +clean$4.ignoredProperties = new Set(["loc", "selfClosing"]); +var clean_1$2 = clean$4; + +var htmlVoidElements = [ "area", "base", "basefont", @@ -47804,48 +51632,56 @@ var index = [ "wbr" ]; -var htmlVoidElements = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': index -}); +function isLastNodeOfSiblings$1(path) { + const node = path.getValue(); + const parentNode = path.getParentNode(0); + + if (isParentOfSomeType$1(path, ["ElementNode"]) && getLast_1(parentNode.children) === node) { + return true; + } + + if (isParentOfSomeType$1(path, ["Block"]) && getLast_1(parentNode.body) === node) { + return true; + } -var htmlVoidElements$1 = getCjsExportFromNamespace(htmlVoidElements); + return false; +} function isUppercase(string) { return string.toUpperCase() === string; } function isGlimmerComponent(node) { - return isNodeOfSomeType(node, ["ElementNode"]) && typeof node.tag === "string" && (isUppercase(node.tag[0]) || node.tag.includes(".")); + return isNodeOfSomeType$1(node, ["ElementNode"]) && typeof node.tag === "string" && (isUppercase(node.tag[0]) || node.tag.includes(".")); } -const voidTags = new Set(htmlVoidElements$1); +const voidTags = new Set(htmlVoidElements); -function isVoid(node) { - return isGlimmerComponent(node) && (node.children === 0 || node.children.every(n => isWhitespaceNode(n))) || voidTags.has(node.tag); +function isVoid$1(node) { + return isGlimmerComponent(node) && node.children.every(node => isWhitespaceNode$1(node)) || voidTags.has(node.tag); } -function isWhitespaceNode(node) { - return isNodeOfSomeType(node, ["TextNode"]) && !/\S/.test(node.chars); +function isWhitespaceNode$1(node) { + return isNodeOfSomeType$1(node, ["TextNode"]) && !/\S/.test(node.chars); } -function isNodeOfSomeType(node, types) { - return node && types.some(type => node.type === type); +function isNodeOfSomeType$1(node, types) { + return node && types.includes(node.type); } -function isParentOfSomeType(path, types) { +function isParentOfSomeType$1(path, types) { const parentNode = path.getParentNode(0); - return isNodeOfSomeType(parentNode, types); + return isNodeOfSomeType$1(parentNode, types); } -function isPreviousNodeOfSomeType(path, types) { - const previousNode = getPreviousNode(path); - return isNodeOfSomeType(previousNode, types); +function isPreviousNodeOfSomeType$1(path, types) { + const previousNode = getPreviousNode$1(path); + return isNodeOfSomeType$1(previousNode, types); } -function isNextNodeOfSomeType(path, types) { - const nextNode = getNextNode(path); - return isNodeOfSomeType(nextNode, types); +function isNextNodeOfSomeType$1(path, types) { + const nextNode = getNextNode$1(path); + return isNodeOfSomeType$1(nextNode, types); } function getSiblingNode(path, offset) { @@ -47856,219 +51692,309 @@ function getSiblingNode(path, offset) { return index !== -1 && children[index + offset]; } -function getPreviousNode(path, lookBack = 1) { +function getPreviousNode$1(path, lookBack = 1) { return getSiblingNode(path, -lookBack); } -function getNextNode(path) { +function getNextNode$1(path) { return getSiblingNode(path, 1); } function isPrettierIgnoreNode(node) { - return isNodeOfSomeType(node, ["MustacheCommentStatement"]) && typeof node.value === "string" && node.value.trim() === "prettier-ignore"; + return isNodeOfSomeType$1(node, ["MustacheCommentStatement"]) && typeof node.value === "string" && node.value.trim() === "prettier-ignore"; } -function hasPrettierIgnore$2(path) { +function hasPrettierIgnore$7(path) { const node = path.getValue(); - const previousPreviousNode = getPreviousNode(path, 2); + const previousPreviousNode = getPreviousNode$1(path, 2); return isPrettierIgnoreNode(node) || isPrettierIgnoreNode(previousPreviousNode); } -var utils$8 = { - getNextNode, - getPreviousNode, - hasPrettierIgnore: hasPrettierIgnore$2, - isNextNodeOfSomeType, - isNodeOfSomeType, - isParentOfSomeType, - isPreviousNodeOfSomeType, - isVoid, - isWhitespaceNode -}; - -const { - concat: concat$g, - group: group$f, - hardline: hardline$b, - ifBreak: ifBreak$6, - indent: indent$b, - join: join$9, - line: line$a, - softline: softline$8 -} = document.builders; -const { +var utils$3 = { getNextNode: getNextNode$1, getPreviousNode: getPreviousNode$1, - hasPrettierIgnore: hasPrettierIgnore$3, + hasPrettierIgnore: hasPrettierIgnore$7, + isLastNodeOfSiblings: isLastNodeOfSiblings$1, isNextNodeOfSomeType: isNextNodeOfSomeType$1, isNodeOfSomeType: isNodeOfSomeType$1, isParentOfSomeType: isParentOfSomeType$1, isPreviousNodeOfSomeType: isPreviousNodeOfSomeType$1, isVoid: isVoid$1, isWhitespaceNode: isWhitespaceNode$1 -} = utils$8; // Formatter based on @glimmerjs/syntax's built-in test formatter: +}; + +const { + builders: { + dedent: dedent$1, + fill: fill$4, + group: group$7, + hardline: hardline$8, + ifBreak: ifBreak$6, + indent: indent$4, + join: join$8, + line: line$8, + softline: softline$6, + literalline: literalline$4 + }, + utils: { + getDocParts: getDocParts$3, + replaceEndOfLineWith: replaceEndOfLineWith$3 + } +} = doc; +const { + isNonEmptyArray: isNonEmptyArray$4 +} = util$5; +const { + locStart: locStart$9, + locEnd: locEnd$8 +} = loc$4; +const { + getNextNode, + getPreviousNode, + hasPrettierIgnore: hasPrettierIgnore$6, + isLastNodeOfSiblings, + isNextNodeOfSomeType, + isNodeOfSomeType, + isParentOfSomeType, + isPreviousNodeOfSomeType, + isVoid, + isWhitespaceNode +} = utils$3; +const NEWLINES_TO_PRESERVE_MAX = 2; // Formatter based on @glimmerjs/syntax's built-in test formatter: // https://github.com/glimmerjs/glimmer-vm/blob/master/packages/%40glimmer/syntax/lib/generation/print.ts -function print$2(path, options, print) { - const n = path.getValue(); +function print(path, options, print) { + const node = path.getValue(); /* istanbul ignore if*/ - if (!n) { + if (!node) { return ""; } - if (hasPrettierIgnore$3(path)) { - const startOffset = locationToOffset(options.originalText, n.loc.start.line - 1, n.loc.start.column); - const endOffset = locationToOffset(options.originalText, n.loc.end.line - 1, n.loc.end.column); - const ignoredText = options.originalText.slice(startOffset, endOffset); - return ignoredText; + if (hasPrettierIgnore$6(path)) { + return options.originalText.slice(locStart$9(node), locEnd$8(node)); } - switch (n.type) { + switch (node.type) { case "Block": case "Program": case "Template": { - return group$f(concat$g(path.map(print, "body"))); + return group$7(path.map(print, "body")); } case "ElementNode": { - // TODO: make it whitespace sensitive - const bim = isNextNodeOfSomeType$1(path, ["ElementNode"]) ? hardline$b : ""; + const startingTag = group$7(printStartingTag(path, print)); + const escapeNextElementNode = options.htmlWhitespaceSensitivity === "ignore" && isNextNodeOfSomeType(path, ["ElementNode"]) ? softline$6 : ""; + + if (isVoid(node)) { + return [startingTag, escapeNextElementNode]; + } + + const endingTag = [""]; - if (isVoid$1(n)) { - return concat$g([group$f(printStartingTag(path, print)), bim]); + if (node.children.length === 0) { + return [startingTag, indent$4(endingTag), escapeNextElementNode]; } - const isWhitespaceOnly = n.children.every(n => isWhitespaceNode$1(n)); - return concat$g([group$f(printStartingTag(path, print)), group$f(concat$g([isWhitespaceOnly ? "" : indent$b(printChildren(path, options, print)), n.children.length ? hardline$b : "", concat$g([""])])), bim]); + if (options.htmlWhitespaceSensitivity === "ignore") { + return [startingTag, indent$4(printChildren$3(path, options, print)), hardline$8, indent$4(endingTag), escapeNextElementNode]; + } + + return [startingTag, indent$4(group$7(printChildren$3(path, options, print))), indent$4(endingTag), escapeNextElementNode]; } case "BlockStatement": { const pp = path.getParentNode(1); - const isElseIf = pp && pp.inverse && pp.inverse.body.length === 1 && pp.inverse.body[0] === n && pp.inverse.body[0].path.parts[0] === "if"; + const isElseIf = pp && pp.inverse && pp.inverse.body.length === 1 && pp.inverse.body[0] === node && pp.inverse.body[0].path.parts[0] === "if"; if (isElseIf) { - return concat$g([printElseIfBlock(path, print), printProgram(path, print), printInverse(path, print)]); + return [printElseIfBlock(path, print), printProgram(path, print, options), printInverse(path, print, options)]; } - return concat$g([printOpenBlock(path, print), group$f(concat$g([printProgram(path, print), printInverse(path, print), printCloseBlock(path, print)]))]); + return [printOpenBlock(path, print), group$7([printProgram(path, print, options), printInverse(path, print, options), printCloseBlock(path, print, options)])]; } case "ElementModifierStatement": { - return group$f(concat$g(["{{", printPathAndParams(path, print), softline$8, "}}"])); + return group$7(["{{", printPathAndParams(path, print), "}}"]); } case "MustacheStatement": { - const isParentOfSpecifiedTypes = isParentOfSomeType$1(path, ["AttrNode", "ConcatStatement"]); - const isChildOfElementNodeAndDoesNotHaveParams = isParentOfSomeType$1(path, ["ElementNode"]) && doesNotHaveHashParams(n) && doesNotHavePositionalParams(n); - const shouldBreakOpeningMustache = isParentOfSpecifiedTypes || isChildOfElementNodeAndDoesNotHaveParams; - return group$f(concat$g([printOpeningMustache(n), shouldBreakOpeningMustache ? indent$b(softline$8) : "", printPathAndParams(path, print), softline$8, printClosingMustache(n)])); + return group$7([printOpeningMustache(node), printPathAndParams(path, print), printClosingMustache(node)]); } case "SubExpression": { - return group$f(concat$g(["(", printSubExpressionPathAndParams(path, print), softline$8, ")"])); + return group$7(["(", printSubExpressionPathAndParams(path, print), softline$6, ")"]); } case "AttrNode": { - const isText = n.value.type === "TextNode"; - const isEmptyText = isText && n.value.chars === ""; // If the text is empty and the value's loc start and end columns are the + const isText = node.value.type === "TextNode"; + const isEmptyText = isText && node.value.chars === ""; // If the text is empty and the value's loc start and end offsets are the // same, there is no value for this AttrNode and it should be printed // without the `=""`. Example: `` -> `` - const isEmptyValue = isEmptyText && n.value.loc.start.column === n.value.loc.end.column; + if (isEmptyText && locStart$9(node.value) === locEnd$8(node.value)) { + return node.name; + } // Let's assume quotes inside the content of text nodes are already + // properly escaped with entities, otherwise the parse wouldn't have parsed them. - if (isEmptyValue) { - return concat$g([n.name]); - } - const value = path.call(print, "value"); - const quotedValue = isText ? printStringLiteral(value.parts.join(), options) : value; - return concat$g([n.name, "=", quotedValue]); + const quote = isText ? chooseEnclosingQuote(options, node.value.chars).quote : node.value.type === "ConcatStatement" ? chooseEnclosingQuote(options, node.value.parts.filter(part => part.type === "TextNode").map(part => part.chars).join("")).quote : ""; + const valueDoc = print("value"); + return [node.name, "=", quote, node.name === "class" && quote ? group$7(indent$4(valueDoc)) : valueDoc, quote]; } case "ConcatStatement": { - const quote = options.singleQuote ? "'" : '"'; - return concat$g([quote, ...path.map(partPath => print(partPath), "parts"), quote]); + return path.map(print, "parts"); } case "Hash": { - return concat$g([join$9(line$a, path.map(print, "pairs"))]); + return join$8(line$8, path.map(print, "pairs")); } case "HashPair": { - return concat$g([n.key, "=", path.call(print, "value")]); + return [node.key, "=", print("value")]; } case "TextNode": { - const maxLineBreaksToPreserve = 2; - const isFirstElement = !getPreviousNode$1(path); - const isLastElement = !getNextNode$1(path); - const isWhitespaceOnly = !/\S/.test(n.chars); - const lineBreaksCount = countNewLines(n.chars); - let leadingLineBreaksCount = countLeadingNewLines(n.chars); - let trailingLineBreaksCount = countTrailingNewLines(n.chars); - - if ((isFirstElement || isLastElement) && isWhitespaceOnly && isParentOfSomeType$1(path, ["Block", "ElementNode", "Template"])) { - return ""; - } + /* if `{{my-component}}` (or any text containing "{{") + * makes it to the TextNode, it means it was escaped, + * so let's print it escaped, ie.; `\{{my-component}}` */ + let text = node.chars.replace(/{{/g, "\\{{"); + const attrName = getCurrentAttributeName(path); - if (isWhitespaceOnly && lineBreaksCount) { - leadingLineBreaksCount = Math.min(lineBreaksCount, maxLineBreaksToPreserve); - trailingLineBreaksCount = 0; - } else { - if (isNextNodeOfSomeType$1(path, ["BlockStatement", "ElementNode"])) { - trailingLineBreaksCount = Math.max(trailingLineBreaksCount, 1); - } + if (attrName) { + // TODO: format style and srcset attributes + if (attrName === "class") { + const formattedClasses = text.trim().split(/\s+/).join(" "); + let leadingSpace = false; + let trailingSpace = false; + + if (isParentOfSomeType(path, ["ConcatStatement"])) { + if (isPreviousNodeOfSomeType(path, ["MustacheStatement"]) && /^\s/.test(text)) { + leadingSpace = true; + } - if (isPreviousNodeOfSomeType$1(path, ["BlockStatement", "ElementNode"])) { - leadingLineBreaksCount = Math.max(leadingLineBreaksCount, 1); + if (isNextNodeOfSomeType(path, ["MustacheStatement"]) && /\s$/.test(text) && formattedClasses !== "") { + trailingSpace = true; + } + } + + return [leadingSpace ? line$8 : "", formattedClasses, trailingSpace ? line$8 : ""]; } + + return replaceEndOfLineWith$3(text, literalline$4); } - const inAttrNode = path.stack.includes("attributes"); + const whitespacesOnlyRE = /^[\t\n\f\r ]*$/; + const isWhitespaceOnly = whitespacesOnlyRE.test(text); + const isFirstElement = !getPreviousNode(path); + const isLastElement = !getNextNode(path); - if (inAttrNode) { - // TODO: format style and srcset attributes - // and cleanup concat that is not necessary - if (!isInAttributeOfName(path, "class")) { - return concat$g([n.chars]); + if (options.htmlWhitespaceSensitivity !== "ignore") { + // https://infra.spec.whatwg.org/#ascii-whitespace + const leadingWhitespacesRE = /^[\t\n\f\r ]*/; + const trailingWhitespacesRE = /[\t\n\f\r ]*$/; // let's remove the file's final newline + // https://github.com/ember-cli/ember-new-output/blob/1a04c67ddd02ccb35e0ff41bb5cbce34b31173ef/.editorconfig#L16 + + const shouldTrimTrailingNewlines = isLastElement && isParentOfSomeType(path, ["Template"]); + const shouldTrimLeadingNewlines = isFirstElement && isParentOfSomeType(path, ["Template"]); + + if (isWhitespaceOnly) { + if (shouldTrimLeadingNewlines || shouldTrimTrailingNewlines) { + return ""; + } + + let breaks = [line$8]; + const newlines = countNewLines(text); + + if (newlines) { + breaks = generateHardlines(newlines); + } + + if (isLastNodeOfSiblings(path)) { + breaks = breaks.map(newline => dedent$1(newline)); + } + + return breaks; } - let leadingSpace = ""; - let trailingSpace = ""; + const [lead] = text.match(leadingWhitespacesRE); + const [tail] = text.match(trailingWhitespacesRE); + let leadBreaks = []; - if (isParentOfSomeType$1(path, ["ConcatStatement"])) { - if (isPreviousNodeOfSomeType$1(path, ["MustacheStatement"])) { - leadingSpace = " "; + if (lead) { + leadBreaks = [line$8]; + const leadingNewlines = countNewLines(lead); + + if (leadingNewlines) { + leadBreaks = generateHardlines(leadingNewlines); } - if (isNextNodeOfSomeType$1(path, ["MustacheStatement"])) { - trailingSpace = " "; + text = text.replace(leadingWhitespacesRE, ""); + } + + let trailBreaks = []; + + if (tail) { + if (!shouldTrimTrailingNewlines) { + trailBreaks = [line$8]; + const trailingNewlines = countNewLines(tail); + + if (trailingNewlines) { + trailBreaks = generateHardlines(trailingNewlines); + } + + if (isLastNodeOfSiblings(path)) { + trailBreaks = trailBreaks.map(hardline => dedent$1(hardline)); + } } + + text = text.replace(trailingWhitespacesRE, ""); } - return concat$g([...generateHardlines(leadingLineBreaksCount, maxLineBreaksToPreserve), n.chars.replace(/^\s+/g, leadingSpace).replace(/\s+$/, trailingSpace), ...generateHardlines(trailingLineBreaksCount, maxLineBreaksToPreserve)]); + return [...leadBreaks, fill$4(getTextValueParts$1(text)), ...trailBreaks]; + } + + const lineBreaksCount = countNewLines(text); + let leadingLineBreaksCount = countLeadingNewLines(text); + let trailingLineBreaksCount = countTrailingNewLines(text); + + if ((isFirstElement || isLastElement) && isWhitespaceOnly && isParentOfSomeType(path, ["Block", "ElementNode", "Template"])) { + return ""; + } + + if (isWhitespaceOnly && lineBreaksCount) { + leadingLineBreaksCount = Math.min(lineBreaksCount, NEWLINES_TO_PRESERVE_MAX); + trailingLineBreaksCount = 0; + } else { + if (isNextNodeOfSomeType(path, ["BlockStatement", "ElementNode"])) { + trailingLineBreaksCount = Math.max(trailingLineBreaksCount, 1); + } + + if (isPreviousNodeOfSomeType(path, ["BlockStatement", "ElementNode"])) { + leadingLineBreaksCount = Math.max(leadingLineBreaksCount, 1); + } } let leadingSpace = ""; let trailingSpace = ""; - if (trailingLineBreaksCount === 0 && isNextNodeOfSomeType$1(path, ["MustacheStatement"])) { + if (trailingLineBreaksCount === 0 && isNextNodeOfSomeType(path, ["MustacheStatement"])) { trailingSpace = " "; } - if (leadingLineBreaksCount === 0 && isPreviousNodeOfSomeType$1(path, ["MustacheStatement"])) { + if (leadingLineBreaksCount === 0 && isPreviousNodeOfSomeType(path, ["MustacheStatement"])) { leadingSpace = " "; } @@ -48082,48 +52008,45 @@ function print$2(path, options, print) { trailingSpace = ""; } - let text = n.chars; - /* if `{{my-component}}` (or any text starting with a mustache) - * makes it to the TextNode, - * it means it was escaped, - * so let's print it escaped, ie.; `\{{my-component}}` */ - - if (text.startsWith("{{") && text.includes("}}")) { - text = "\\" + text; - } - - return concat$g([...generateHardlines(leadingLineBreaksCount, maxLineBreaksToPreserve), text.replace(/^\s+/g, leadingSpace).replace(/\s+$/, trailingSpace), ...generateHardlines(trailingLineBreaksCount, maxLineBreaksToPreserve)]); + text = text.replace(/^[\t\n\f\r ]+/g, leadingSpace).replace(/[\t\n\f\r ]+$/, trailingSpace); + return [...generateHardlines(leadingLineBreaksCount), fill$4(getTextValueParts$1(text)), ...generateHardlines(trailingLineBreaksCount)]; } case "MustacheCommentStatement": { - const dashes = n.value.includes("}}") ? "--" : ""; - return concat$g(["{{!", dashes, n.value, dashes, "}}"]); + const start = locStart$9(node); + const end = locEnd$8(node); // Starts with `{{~` + + const isLeftWhiteSpaceSensitive = options.originalText.charAt(start + 2) === "~"; // Ends with `{{~` + + const isRightWhitespaceSensitive = options.originalText.charAt(end - 3) === "~"; + const dashes = node.value.includes("}}") ? "--" : ""; + return ["{{", isLeftWhiteSpaceSensitive ? "~" : "", "!", dashes, node.value, dashes, isRightWhitespaceSensitive ? "~" : "", "}}"]; } case "PathExpression": { - return n.original; + return node.original; } case "BooleanLiteral": { - return String(n.value); + return String(node.value); } case "CommentStatement": { - return concat$g([""]); + return [""]; } case "StringLiteral": { - return printStringLiteral(n.value, options); + return printStringLiteral(node.value, options); } case "NumberLiteral": { - return String(n.value); + return String(node.value); } case "UndefinedLiteral": @@ -48139,38 +52062,60 @@ function print$2(path, options, print) { /* istanbul ignore next */ default: - throw new Error("unknown glimmer type: " + JSON.stringify(n.type)); + throw new Error("unknown glimmer type: " + JSON.stringify(node.type)); } } /* ElementNode print helpers */ +function sortByLoc(a, b) { + return locStart$9(a) - locStart$9(b); +} + function printStartingTag(path, print) { const node = path.getValue(); - return concat$g(["<", node.tag, printAttributesLike(path, print), printBlockParams(node), printStartingTagEndMarker(node)]); + const types = ["attributes", "modifiers", "comments"].filter(property => isNonEmptyArray$4(node[property])); + const attributes = types.flatMap(type => node[type]).sort(sortByLoc); + + for (const attributeType of types) { + path.each(attributePath => { + const index = attributes.indexOf(attributePath.getValue()); + attributes.splice(index, 1, [line$8, print()]); + }, attributeType); + } + + if (isNonEmptyArray$4(node.blockParams)) { + attributes.push(line$8, printBlockParams(node)); + } + + return ["<", node.tag, indent$4(attributes), printStartingTagEndMarker(node)]; } -function printAttributesLike(path, print) { +function printChildren$3(path, options, print) { const node = path.getValue(); - return indent$b(concat$g([node.attributes.length ? line$a : "", join$9(line$a, path.map(print, "attributes")), node.modifiers.length ? line$a : "", join$9(line$a, path.map(print, "modifiers")), node.comments.length ? line$a : "", join$9(line$a, path.map(print, "comments"))])); -} + const isEmpty = node.children.every(node => isWhitespaceNode(node)); -function printChildren(path, options, print) { - return concat$g(path.map((childPath, childIndex) => { - if (childIndex === 0) { - return concat$g([softline$8, print(childPath, options, print)]); + if (options.htmlWhitespaceSensitivity === "ignore" && isEmpty) { + return ""; + } + + return path.map((childPath, childIndex) => { + const printedChild = print(); + + if (childIndex === 0 && options.htmlWhitespaceSensitivity === "ignore") { + return [softline$6, printedChild]; } - return print(childPath, options, print); - }, "children")); + return printedChild; + }, "children"); } function printStartingTagEndMarker(node) { - if (isVoid$1(node)) { - return ifBreak$6(concat$g([softline$8, "/>"]), concat$g([" />", softline$8])); + if (isVoid(node)) { + return ifBreak$6([softline$6, "/>"], [" />", softline$6]); } - return ifBreak$6(concat$g([softline$8, ">"]), ">"); + return ifBreak$6([softline$6, ">"], ">"); } /* MustacheStatement print helpers */ @@ -48178,13 +52123,13 @@ function printStartingTagEndMarker(node) { function printOpeningMustache(node) { const mustache = node.escaped === false ? "{{{" : "{{"; const strip = node.strip && node.strip.open ? "~" : ""; - return concat$g([mustache, strip]); + return [mustache, strip]; } function printClosingMustache(node) { const mustache = node.escaped === false ? "}}}" : "}}"; const strip = node.strip && node.strip.close ? "~" : ""; - return concat$g([strip, mustache]); + return [strip, mustache]; } /* BlockStatement print helpers */ @@ -48192,92 +52137,117 @@ function printClosingMustache(node) { function printOpeningBlockOpeningMustache(node) { const opening = printOpeningMustache(node); const strip = node.openStrip.open ? "~" : ""; - return concat$g([opening, strip, "#"]); + return [opening, strip, "#"]; } function printOpeningBlockClosingMustache(node) { const closing = printClosingMustache(node); const strip = node.openStrip.close ? "~" : ""; - return concat$g([strip, closing]); + return [strip, closing]; } function printClosingBlockOpeningMustache(node) { const opening = printOpeningMustache(node); const strip = node.closeStrip.open ? "~" : ""; - return concat$g([opening, strip, "/"]); + return [opening, strip, "/"]; } function printClosingBlockClosingMustache(node) { const closing = printClosingMustache(node); const strip = node.closeStrip.close ? "~" : ""; - return concat$g([strip, closing]); + return [strip, closing]; } function printInverseBlockOpeningMustache(node) { const opening = printOpeningMustache(node); const strip = node.inverseStrip.open ? "~" : ""; - return concat$g([opening, strip]); + return [opening, strip]; } function printInverseBlockClosingMustache(node) { const closing = printClosingMustache(node); const strip = node.inverseStrip.close ? "~" : ""; - return concat$g([strip, closing]); + return [strip, closing]; } function printOpenBlock(path, print) { const node = path.getValue(); - return group$f(concat$g([printOpeningBlockOpeningMustache(node), printPathAndParams(path, print), printBlockParams(node.program), softline$8, printOpeningBlockClosingMustache(node)])); + const openingMustache = printOpeningBlockOpeningMustache(node); + const closingMustache = printOpeningBlockClosingMustache(node); + const attributes = [printPath(path, print)]; + const params = printParams(path, print); + + if (params) { + attributes.push(line$8, params); + } + + if (isNonEmptyArray$4(node.program.blockParams)) { + const block = printBlockParams(node.program); + attributes.push(line$8, block); + } + + return group$7([openingMustache, indent$4(attributes), softline$6, closingMustache]); } -function printElseBlock(node) { - return concat$g([hardline$b, printInverseBlockOpeningMustache(node), "else", printInverseBlockClosingMustache(node)]); +function printElseBlock(node, options) { + return [options.htmlWhitespaceSensitivity === "ignore" ? hardline$8 : "", printInverseBlockOpeningMustache(node), "else", printInverseBlockClosingMustache(node)]; } function printElseIfBlock(path, print) { const parentNode = path.getParentNode(1); - return concat$g([printInverseBlockOpeningMustache(parentNode), "else ", printPathAndParams(path, print), printInverseBlockClosingMustache(parentNode)]); + return [printInverseBlockOpeningMustache(parentNode), "else if ", printParams(path, print), printInverseBlockClosingMustache(parentNode)]; } -function printCloseBlock(path, print) { +function printCloseBlock(path, print, options) { const node = path.getValue(); - return concat$g([blockStatementHasOnlyWhitespaceInProgram(node) ? softline$8 : hardline$b, printClosingBlockOpeningMustache(node), path.call(print, "path"), printClosingBlockClosingMustache(node)]); + + if (options.htmlWhitespaceSensitivity === "ignore") { + const escape = blockStatementHasOnlyWhitespaceInProgram(node) ? softline$6 : hardline$8; + return [escape, printClosingBlockOpeningMustache(node), print("path"), printClosingBlockClosingMustache(node)]; + } + + return [printClosingBlockOpeningMustache(node), print("path"), printClosingBlockClosingMustache(node)]; } function blockStatementHasOnlyWhitespaceInProgram(node) { - return isNodeOfSomeType$1(node, ["BlockStatement"]) && node.program.body.every(n => isWhitespaceNode$1(n)); + return isNodeOfSomeType(node, ["BlockStatement"]) && node.program.body.every(node => isWhitespaceNode(node)); } function blockStatementHasElseIf(node) { - return blockStatementHasElse(node) && node.inverse.body.length === 1 && isNodeOfSomeType$1(node.inverse.body[0], ["BlockStatement"]) && node.inverse.body[0].path.parts[0] === "if"; + return blockStatementHasElse(node) && node.inverse.body.length === 1 && isNodeOfSomeType(node.inverse.body[0], ["BlockStatement"]) && node.inverse.body[0].path.parts[0] === "if"; } function blockStatementHasElse(node) { - return isNodeOfSomeType$1(node, ["BlockStatement"]) && node.inverse; + return isNodeOfSomeType(node, ["BlockStatement"]) && node.inverse; } -function printProgram(path, print) { +function printProgram(path, print, options) { const node = path.getValue(); if (blockStatementHasOnlyWhitespaceInProgram(node)) { return ""; } - const program = path.call(print, "program"); - return indent$b(concat$g([hardline$b, program])); + const program = print("program"); + + if (options.htmlWhitespaceSensitivity === "ignore") { + return indent$4([hardline$8, program]); + } + + return indent$4(program); } -function printInverse(path, print) { +function printInverse(path, print, options) { const node = path.getValue(); - const inverse = path.call(print, "inverse"); - const parts = concat$g([hardline$b, inverse]); + const inverse = print("inverse"); + const printed = options.htmlWhitespaceSensitivity === "ignore" ? [hardline$8, inverse] : inverse; if (blockStatementHasElseIf(node)) { - return parts; + return printed; } if (blockStatementHasElse(node)) { - return concat$g([printElseBlock(node), indent$b(parts)]); + return [printElseBlock(node, options), indent$4(printed)]; } return ""; @@ -48285,8 +52255,22 @@ function printInverse(path, print) { /* TextNode print helpers */ -function isInAttributeOfName(path, type) { - return isParentOfSomeType$1(path, ["AttrNode"]) && path.getParentNode().name.toLowerCase() === type || isParentOfSomeType$1(path, ["ConcatStatement"]) && path.getParentNode(1).name.toLowerCase() === type; +function getTextValueParts$1(value) { + return getDocParts$3(join$8(line$8, splitByHtmlWhitespace$2(value))); +} + +function splitByHtmlWhitespace$2(string) { + return string.split(/[\t\n\f\r ]+/); +} + +function getCurrentAttributeName(path) { + for (let depth = 0; depth < 2; depth++) { + const parentNode = path.getParentNode(depth); + + if (parentNode && parentNode.type === "AttrNode") { + return parentNode.name.toLowerCase(); + } + } } function countNewLines(string) { @@ -48309,8 +52293,8 @@ function countTrailingNewLines(string) { return countNewLines(newLines); } -function generateHardlines(number = 0, max = 0) { - return new Array(Math.min(number, max)).fill(hardline$b); +function generateHardlines(number = 0) { + return new Array(Math.min(number, NEWLINES_TO_PRESERVE_MAX)).fill(hardline$8); } /* StringLiteral print helpers */ @@ -48326,6 +52310,14 @@ function generateHardlines(number = 0, max = 0) { function printStringLiteral(stringLiteral, options) { + const { + quote, + regex + } = chooseEnclosingQuote(options, stringLiteral); + return [quote, stringLiteral.replace(regex, `\\${quote}`), quote]; +} + +function chooseEnclosingQuote(options, stringLiteral) { const double = { quote: '"', regex: /"/g @@ -48346,9 +52338,7 @@ function printStringLiteral(stringLiteral, options) { shouldUseAlternateQuote = numPreferredQuotes > numAlternateQuotes; } - const enclosingQuote = shouldUseAlternateQuote ? alternate : preferred; - const escapedStringLiteral = stringLiteral.replace(enclosingQuote.regex, `\\${enclosingQuote.quote}`); - return concat$g([enclosingQuote.quote, escapedStringLiteral, enclosingQuote.quote]); + return shouldUseAlternateQuote ? alternate : preferred; } /* SubExpression print helpers */ @@ -48361,7 +52351,7 @@ function printSubExpressionPathAndParams(path, print) { return p; } - return indent$b(concat$g([p, line$a, group$f(params)])); + return indent$4([p, line$8, group$7(params)]); } /* misc. print helpers */ @@ -48374,256 +52364,220 @@ function printPathAndParams(path, print) { return p; } - return indent$b(group$f(concat$g([p, line$a, params]))); + return [indent$4([p, line$8, params]), softline$6]; } function printPath(path, print) { - return path.call(print, "path"); + return print("path"); } function printParams(path, print) { const node = path.getValue(); const parts = []; - if (node.params.length) { + if (node.params.length > 0) { const params = path.map(print, "params"); parts.push(...params); } if (node.hash && node.hash.pairs.length > 0) { - const hash = path.call(print, "hash"); + const hash = print("hash"); parts.push(hash); } - if (!parts.length) { + if (parts.length === 0) { return ""; } - return join$9(line$a, parts); + return join$8(line$8, parts); } function printBlockParams(node) { - if (!node || !node.blockParams.length) { - return ""; - } - - return concat$g([" as |", node.blockParams.join(" "), "|"]); -} -/* istanbul ignore next - https://github.com/glimmerjs/glimmer-vm/blob/master/packages/%40glimmer/compiler/lib/location.ts#L5-L29 -*/ - - -function locationToOffset(source, line, column) { - let seenLines = 0; - let seenChars = 0; // eslint-disable-next-line no-constant-condition - - while (true) { - if (seenChars === source.length) { - return null; - } - - let nextLine = source.indexOf("\n", seenChars); - - if (nextLine === -1) { - nextLine = source.length; - } - - if (seenLines === line) { - if (seenChars + column > nextLine) { - return null; - } - - return seenChars + column; - } else if (nextLine === -1) { - return null; - } - - seenLines += 1; - seenChars = nextLine + 1; - } -} - -function doesNotHaveHashParams(node) { - return node.hash.pairs.length === 0; -} - -function doesNotHavePositionalParams(node) { - return node.params.length === 0; + return ["as |", node.blockParams.join(" "), "|"]; } var printerGlimmer = { - print: print$2, - massageAstNode: clean$3 + print, + massageAstNode: clean_1$2 }; -var name$d = "Handlebars"; -var type$b = "markup"; -var group$g = "HTML"; +var name$5 = "Handlebars"; +var type$5 = "markup"; +var color$5 = "#f7931e"; var aliases$3 = [ "hbs", "htmlbars" ]; -var extensions$b = [ +var extensions$5 = [ ".handlebars", ".hbs" ]; -var tmScope$b = "text.html.handlebars"; -var aceMode$b = "handlebars"; -var languageId$b = 155; -var Handlebars = { - name: name$d, - type: type$b, - group: group$g, +var tmScope$5 = "text.html.handlebars"; +var aceMode$5 = "handlebars"; +var languageId$5 = 155; +var require$$0$4 = { + name: name$5, + type: type$5, + color: color$5, aliases: aliases$3, - extensions: extensions$b, - tmScope: tmScope$b, - aceMode: aceMode$b, - languageId: languageId$b + extensions: extensions$5, + tmScope: tmScope$5, + aceMode: aceMode$5, + languageId: languageId$5 }; -var Handlebars$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$d, - type: type$b, - group: group$g, - aliases: aliases$3, - extensions: extensions$b, - tmScope: tmScope$b, - aceMode: aceMode$b, - languageId: languageId$b, - 'default': Handlebars -}); - -var require$$0$4 = getCjsExportFromNamespace(Handlebars$1); - -const languages$2 = [createLanguage(require$$0$4, () => ({ - since: null, - // unreleased +const languages$5 = [createLanguage(require$$0$4, () => ({ + since: "2.3.0", parsers: ["glimmer"], vscodeLanguageIds: ["handlebars"] }))]; -const printers$2 = { +const printers$3 = { glimmer: printerGlimmer }; -const parsers$2 = { +const parsers$4 = { get glimmer() { return require("./parser-glimmer").parsers.glimmer; } }; var languageHandlebars = { - languages: languages$2, - printers: printers$2, - parsers: parsers$2 + languages: languages$5, + printers: printers$3, + parsers: parsers$4 }; function hasPragma$2(text) { return /^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(text); } -function insertPragma$4(text) { +function insertPragma$6(text) { return "# @format\n\n" + text; } -var pragma$2 = { +var pragma$3 = { hasPragma: hasPragma$2, - insertPragma: insertPragma$4 + insertPragma: insertPragma$6 +}; + +function locStart$8(node) { + if (typeof node.start === "number") { + return node.start; + } + + return node.loc && node.loc.start; +} + +function locEnd$7(node) { + if (typeof node.end === "number") { + return node.end; + } + + return node.loc && node.loc.end; +} + +var loc$3 = { + locStart: locStart$8, + locEnd: locEnd$7 }; const { - concat: concat$h, - join: join$a, - hardline: hardline$c, - line: line$b, - softline: softline$9, - group: group$h, - indent: indent$c, - ifBreak: ifBreak$7 -} = document.builders; + builders: { + join: join$7, + hardline: hardline$7, + line: line$7, + softline: softline$5, + group: group$6, + indent: indent$3, + ifBreak: ifBreak$5 + } +} = doc; const { - hasIgnoreComment: hasIgnoreComment$4, - isNextLineEmpty: isNextLineEmpty$6 -} = util; + isNextLineEmpty: isNextLineEmpty$2, + isNonEmptyArray: isNonEmptyArray$3 +} = util$5; const { insertPragma: insertPragma$5 -} = pragma$2; +} = pragma$3; +const { + locStart: locStart$7, + locEnd: locEnd$6 +} = loc$3; function genericPrint$3(path, options, print) { - const n = path.getValue(); + const node = path.getValue(); - if (!n) { + if (!node) { return ""; } - if (typeof n === "string") { - return n; + if (typeof node === "string") { + return node; } - switch (n.kind) { + switch (node.kind) { case "Document": { const parts = []; - path.map((pathChild, index) => { - parts.push(concat$h([pathChild.call(print)])); + path.each((pathChild, index, definitions) => { + parts.push(print()); - if (index !== n.definitions.length - 1) { - parts.push(hardline$c); + if (index !== definitions.length - 1) { + parts.push(hardline$7); - if (isNextLineEmpty$6(options.originalText, pathChild.getValue(), options.locEnd)) { - parts.push(hardline$c); + if (isNextLineEmpty$2(options.originalText, pathChild.getValue(), locEnd$6)) { + parts.push(hardline$7); } } }, "definitions"); - return concat$h([concat$h(parts), hardline$c]); + return [...parts, hardline$7]; } case "OperationDefinition": { - const hasOperation = options.originalText[options.locStart(n)] !== "{"; - const hasName = !!n.name; - return concat$h([hasOperation ? n.operation : "", hasOperation && hasName ? concat$h([" ", path.call(print, "name")]) : "", n.variableDefinitions && n.variableDefinitions.length ? group$h(concat$h(["(", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.map(print, "variableDefinitions"))])), softline$9, ")"])) : "", printDirectives(path, print, n), n.selectionSet ? !hasOperation && !hasName ? "" : " " : "", path.call(print, "selectionSet")]); + const hasOperation = options.originalText[locStart$7(node)] !== "{"; + const hasName = Boolean(node.name); + return [hasOperation ? node.operation : "", hasOperation && hasName ? [" ", print("name")] : "", hasOperation && !hasName && isNonEmptyArray$3(node.variableDefinitions) ? " " : "", isNonEmptyArray$3(node.variableDefinitions) ? group$6(["(", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.map(print, "variableDefinitions"))]), softline$5, ")"]) : "", printDirectives(path, print, node), node.selectionSet ? !hasOperation && !hasName ? "" : " " : "", print("selectionSet")]; } case "FragmentDefinition": { - return concat$h(["fragment ", path.call(print, "name"), n.variableDefinitions && n.variableDefinitions.length ? group$h(concat$h(["(", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.map(print, "variableDefinitions"))])), softline$9, ")"])) : "", " on ", path.call(print, "typeCondition"), printDirectives(path, print, n), " ", path.call(print, "selectionSet")]); + return ["fragment ", print("name"), isNonEmptyArray$3(node.variableDefinitions) ? group$6(["(", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.map(print, "variableDefinitions"))]), softline$5, ")"]) : "", " on ", print("typeCondition"), printDirectives(path, print, node), " ", print("selectionSet")]; } case "SelectionSet": { - return concat$h(["{", indent$c(concat$h([hardline$c, join$a(hardline$c, path.call(selectionsPath => printSequence(selectionsPath, options, print), "selections"))])), hardline$c, "}"]); + return ["{", indent$3([hardline$7, join$7(hardline$7, path.call(selectionsPath => printSequence(selectionsPath, options, print), "selections"))]), hardline$7, "}"]; } case "Field": { - return group$h(concat$h([n.alias ? concat$h([path.call(print, "alias"), ": "]) : "", path.call(print, "name"), n.arguments.length > 0 ? group$h(concat$h(["(", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.call(argsPath => printSequence(argsPath, options, print), "arguments"))])), softline$9, ")"])) : "", printDirectives(path, print, n), n.selectionSet ? " " : "", path.call(print, "selectionSet")])); + return group$6([node.alias ? [print("alias"), ": "] : "", print("name"), node.arguments.length > 0 ? group$6(["(", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.call(argsPath => printSequence(argsPath, options, print), "arguments"))]), softline$5, ")"]) : "", printDirectives(path, print, node), node.selectionSet ? " " : "", print("selectionSet")]); } case "Name": { - return n.value; + return node.value; } case "StringValue": { - if (n.block) { - return concat$h(['"""', hardline$c, join$a(hardline$c, n.value.replace(/"""/g, "\\$&").split("\n")), hardline$c, '"""']); + if (node.block) { + return ['"""', hardline$7, join$7(hardline$7, node.value.replace(/"""/g, "\\$&").split("\n")), hardline$7, '"""']; } - return concat$h(['"', n.value.replace(/["\\]/g, "\\$&").replace(/\n/g, "\\n"), '"']); + return ['"', node.value.replace(/["\\]/g, "\\$&").replace(/\n/g, "\\n"), '"']; } case "IntValue": case "FloatValue": case "EnumValue": { - return n.value; + return node.value; } case "BooleanValue": { - return n.value ? "true" : "false"; + return node.value ? "true" : "false"; } case "NullValue": @@ -48633,158 +52587,164 @@ function genericPrint$3(path, options, print) { case "Variable": { - return concat$h(["$", path.call(print, "name")]); + return ["$", print("name")]; } case "ListValue": { - return group$h(concat$h(["[", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.map(print, "values"))])), softline$9, "]"])); + return group$6(["[", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.map(print, "values"))]), softline$5, "]"]); } case "ObjectValue": { - return group$h(concat$h(["{", options.bracketSpacing && n.fields.length > 0 ? " " : "", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.map(print, "fields"))])), softline$9, ifBreak$7("", options.bracketSpacing && n.fields.length > 0 ? " " : ""), "}"])); + return group$6(["{", options.bracketSpacing && node.fields.length > 0 ? " " : "", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.map(print, "fields"))]), softline$5, ifBreak$5("", options.bracketSpacing && node.fields.length > 0 ? " " : ""), "}"]); } case "ObjectField": case "Argument": { - return concat$h([path.call(print, "name"), ": ", path.call(print, "value")]); + return [print("name"), ": ", print("value")]; } case "Directive": { - return concat$h(["@", path.call(print, "name"), n.arguments.length > 0 ? group$h(concat$h(["(", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.call(argsPath => printSequence(argsPath, options, print), "arguments"))])), softline$9, ")"])) : ""]); + return ["@", print("name"), node.arguments.length > 0 ? group$6(["(", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.call(argsPath => printSequence(argsPath, options, print), "arguments"))]), softline$5, ")"]) : ""]; } case "NamedType": { - return path.call(print, "name"); + return print("name"); } case "VariableDefinition": { - return concat$h([path.call(print, "variable"), ": ", path.call(print, "type"), n.defaultValue ? concat$h([" = ", path.call(print, "defaultValue")]) : "", printDirectives(path, print, n)]); + return [print("variable"), ": ", print("type"), node.defaultValue ? [" = ", print("defaultValue")] : "", printDirectives(path, print, node)]; } case "ObjectTypeExtension": case "ObjectTypeDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", n.kind === "ObjectTypeExtension" ? "extend " : "", "type ", path.call(print, "name"), n.interfaces.length > 0 ? concat$h([" implements ", concat$h(printInterfaces(path, options, print))]) : "", printDirectives(path, print, n), n.fields.length > 0 ? concat$h([" {", indent$c(concat$h([hardline$c, join$a(hardline$c, path.call(fieldsPath => printSequence(fieldsPath, options, print), "fields"))])), hardline$c, "}"]) : ""]); + return [print("description"), node.description ? hardline$7 : "", node.kind === "ObjectTypeExtension" ? "extend " : "", "type ", print("name"), node.interfaces.length > 0 ? [" implements ", ...printInterfaces(path, options, print)] : "", printDirectives(path, print, node), node.fields.length > 0 ? [" {", indent$3([hardline$7, join$7(hardline$7, path.call(fieldsPath => printSequence(fieldsPath, options, print), "fields"))]), hardline$7, "}"] : ""]; } case "FieldDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", path.call(print, "name"), n.arguments.length > 0 ? group$h(concat$h(["(", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.call(argsPath => printSequence(argsPath, options, print), "arguments"))])), softline$9, ")"])) : "", ": ", path.call(print, "type"), printDirectives(path, print, n)]); + return [print("description"), node.description ? hardline$7 : "", print("name"), node.arguments.length > 0 ? group$6(["(", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.call(argsPath => printSequence(argsPath, options, print), "arguments"))]), softline$5, ")"]) : "", ": ", print("type"), printDirectives(path, print, node)]; } case "DirectiveDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", "directive ", "@", path.call(print, "name"), n.arguments.length > 0 ? group$h(concat$h(["(", indent$c(concat$h([softline$9, join$a(concat$h([ifBreak$7("", ", "), softline$9]), path.call(argsPath => printSequence(argsPath, options, print), "arguments"))])), softline$9, ")"])) : "", n.repeatable ? " repeatable" : "", concat$h([" on ", join$a(" | ", path.map(print, "locations"))])]); + return [print("description"), node.description ? hardline$7 : "", "directive ", "@", print("name"), node.arguments.length > 0 ? group$6(["(", indent$3([softline$5, join$7([ifBreak$5("", ", "), softline$5], path.call(argsPath => printSequence(argsPath, options, print), "arguments"))]), softline$5, ")"]) : "", node.repeatable ? " repeatable" : "", " on ", join$7(" | ", path.map(print, "locations"))]; } case "EnumTypeExtension": case "EnumTypeDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", n.kind === "EnumTypeExtension" ? "extend " : "", "enum ", path.call(print, "name"), printDirectives(path, print, n), n.values.length > 0 ? concat$h([" {", indent$c(concat$h([hardline$c, join$a(hardline$c, path.call(valuesPath => printSequence(valuesPath, options, print), "values"))])), hardline$c, "}"]) : ""]); + return [print("description"), node.description ? hardline$7 : "", node.kind === "EnumTypeExtension" ? "extend " : "", "enum ", print("name"), printDirectives(path, print, node), node.values.length > 0 ? [" {", indent$3([hardline$7, join$7(hardline$7, path.call(valuesPath => printSequence(valuesPath, options, print), "values"))]), hardline$7, "}"] : ""]; } case "EnumValueDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", path.call(print, "name"), printDirectives(path, print, n)]); + return [print("description"), node.description ? hardline$7 : "", print("name"), printDirectives(path, print, node)]; } case "InputValueDefinition": { - return concat$h([path.call(print, "description"), n.description ? n.description.block ? hardline$c : line$b : "", path.call(print, "name"), ": ", path.call(print, "type"), n.defaultValue ? concat$h([" = ", path.call(print, "defaultValue")]) : "", printDirectives(path, print, n)]); + return [print("description"), node.description ? node.description.block ? hardline$7 : line$7 : "", print("name"), ": ", print("type"), node.defaultValue ? [" = ", print("defaultValue")] : "", printDirectives(path, print, node)]; } case "InputObjectTypeExtension": case "InputObjectTypeDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", n.kind === "InputObjectTypeExtension" ? "extend " : "", "input ", path.call(print, "name"), printDirectives(path, print, n), n.fields.length > 0 ? concat$h([" {", indent$c(concat$h([hardline$c, join$a(hardline$c, path.call(fieldsPath => printSequence(fieldsPath, options, print), "fields"))])), hardline$c, "}"]) : ""]); + return [print("description"), node.description ? hardline$7 : "", node.kind === "InputObjectTypeExtension" ? "extend " : "", "input ", print("name"), printDirectives(path, print, node), node.fields.length > 0 ? [" {", indent$3([hardline$7, join$7(hardline$7, path.call(fieldsPath => printSequence(fieldsPath, options, print), "fields"))]), hardline$7, "}"] : ""]; } case "SchemaDefinition": { - return concat$h(["schema", printDirectives(path, print, n), " {", n.operationTypes.length > 0 ? indent$c(concat$h([hardline$c, join$a(hardline$c, path.call(opsPath => printSequence(opsPath, options, print), "operationTypes"))])) : "", hardline$c, "}"]); + return ["schema", printDirectives(path, print, node), " {", node.operationTypes.length > 0 ? indent$3([hardline$7, join$7(hardline$7, path.call(opsPath => printSequence(opsPath, options, print), "operationTypes"))]) : "", hardline$7, "}"]; } case "OperationTypeDefinition": { - return concat$h([path.call(print, "operation"), ": ", path.call(print, "type")]); + return [print("operation"), ": ", print("type")]; } case "InterfaceTypeExtension": case "InterfaceTypeDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", n.kind === "InterfaceTypeExtension" ? "extend " : "", "interface ", path.call(print, "name"), n.interfaces.length > 0 ? concat$h([" implements ", concat$h(printInterfaces(path, options, print))]) : "", printDirectives(path, print, n), n.fields.length > 0 ? concat$h([" {", indent$c(concat$h([hardline$c, join$a(hardline$c, path.call(fieldsPath => printSequence(fieldsPath, options, print), "fields"))])), hardline$c, "}"]) : ""]); + return [print("description"), node.description ? hardline$7 : "", node.kind === "InterfaceTypeExtension" ? "extend " : "", "interface ", print("name"), node.interfaces.length > 0 ? [" implements ", ...printInterfaces(path, options, print)] : "", printDirectives(path, print, node), node.fields.length > 0 ? [" {", indent$3([hardline$7, join$7(hardline$7, path.call(fieldsPath => printSequence(fieldsPath, options, print), "fields"))]), hardline$7, "}"] : ""]; } case "FragmentSpread": { - return concat$h(["...", path.call(print, "name"), printDirectives(path, print, n)]); + return ["...", print("name"), printDirectives(path, print, node)]; } case "InlineFragment": { - return concat$h(["...", n.typeCondition ? concat$h([" on ", path.call(print, "typeCondition")]) : "", printDirectives(path, print, n), " ", path.call(print, "selectionSet")]); + return ["...", node.typeCondition ? [" on ", print("typeCondition")] : "", printDirectives(path, print, node), " ", print("selectionSet")]; } case "UnionTypeExtension": case "UnionTypeDefinition": { - return group$h(concat$h([path.call(print, "description"), n.description ? hardline$c : "", group$h(concat$h([n.kind === "UnionTypeExtension" ? "extend " : "", "union ", path.call(print, "name"), printDirectives(path, print, n), n.types.length > 0 ? concat$h([" =", ifBreak$7("", " "), indent$c(concat$h([ifBreak$7(concat$h([line$b, " "])), join$a(concat$h([line$b, "| "]), path.map(print, "types"))]))]) : ""]))])); + return group$6([print("description"), node.description ? hardline$7 : "", group$6([node.kind === "UnionTypeExtension" ? "extend " : "", "union ", print("name"), printDirectives(path, print, node), node.types.length > 0 ? [" =", ifBreak$5("", " "), indent$3([ifBreak$5([line$7, " "]), join$7([line$7, "| "], path.map(print, "types"))])] : ""])]); } case "ScalarTypeExtension": case "ScalarTypeDefinition": { - return concat$h([path.call(print, "description"), n.description ? hardline$c : "", n.kind === "ScalarTypeExtension" ? "extend " : "", "scalar ", path.call(print, "name"), printDirectives(path, print, n)]); + return [print("description"), node.description ? hardline$7 : "", node.kind === "ScalarTypeExtension" ? "extend " : "", "scalar ", print("name"), printDirectives(path, print, node)]; } case "NonNullType": { - return concat$h([path.call(print, "type"), "!"]); + return [print("type"), "!"]; } case "ListType": { - return concat$h(["[", path.call(print, "type"), "]"]); + return ["[", print("type"), "]"]; } default: /* istanbul ignore next */ - throw new Error("unknown graphql type: " + JSON.stringify(n.kind)); + throw new Error("unknown graphql type: " + JSON.stringify(node.kind)); } } -function printDirectives(path, print, n) { - if (n.directives.length === 0) { +function printDirectives(path, print, node) { + if (node.directives.length === 0) { return ""; } - return group$h(concat$h([line$b, join$a(line$b, path.map(print, "directives"))])); + const printed = join$7(line$7, path.map(print, "directives")); + + if (node.kind === "FragmentDefinition" || node.kind === "OperationDefinition") { + return group$6([line$7, printed]); + } + + return [" ", group$6(indent$3([softline$5, printed]))]; } function printSequence(sequencePath, options, print) { const count = sequencePath.getValue().length; return sequencePath.map((path, i) => { - const printed = print(path); + const printed = print(); - if (isNextLineEmpty$6(options.originalText, path.getValue(), options.locEnd) && i < count - 1) { - return concat$h([printed, hardline$c]); + if (isNextLineEmpty$2(options.originalText, path.getValue(), locEnd$6) && i < count - 1) { + return [printed, hardline$7]; } return printed; }); } -function canAttachComment$1(node) { +function canAttachComment(node) { return node.kind && node.kind !== "Comment"; } -function printComment$2(commentPath) { +function printComment(commentPath) { const comment = commentPath.getValue(); if (comment.kind === "Comment") { @@ -48813,72 +52773,64 @@ function printInterfaces(path, options, print) { const textBetween = options.originalText.slice(interfaceNode.loc.end, nextInterfaceNode.loc.start); const hasComment = textBetween.includes("#"); const separator = textBetween.replace(/#.*/g, "").trim(); - parts.push(separator === "," ? "," : " &"); - parts.push(hasComment ? line$b : " "); + parts.push(separator === "," ? "," : " &", hasComment ? line$7 : " "); } } return parts; } -function clean$4(node, newNode -/*, parent*/ -) { - delete newNode.loc; - delete newNode.comments; +function clean$3() +/*node, newNode , parent*/ +{} + +clean$3.ignoredProperties = new Set(["loc", "comments"]); + +function hasPrettierIgnore$5(path) { + const node = path.getValue(); + return node && Array.isArray(node.comments) && node.comments.some(comment => comment.value.trim() === "prettier-ignore"); } var printerGraphql = { print: genericPrint$3, - massageAstNode: clean$4, - hasPrettierIgnore: hasIgnoreComment$4, + massageAstNode: clean$3, + hasPrettierIgnore: hasPrettierIgnore$5, insertPragma: insertPragma$5, - printComment: printComment$2, - canAttachComment: canAttachComment$1 + printComment, + canAttachComment }; -var options$4 = { +var options$3 = { bracketSpacing: commonOptions.bracketSpacing }; -var name$e = "GraphQL"; -var type$c = "data"; -var extensions$c = [ +var name$4 = "GraphQL"; +var type$4 = "data"; +var color$4 = "#e10098"; +var extensions$4 = [ ".graphql", ".gql", ".graphqls" ]; -var tmScope$c = "source.graphql"; -var aceMode$c = "text"; -var languageId$c = 139; -var GraphQL = { - name: name$e, - type: type$c, - extensions: extensions$c, - tmScope: tmScope$c, - aceMode: aceMode$c, - languageId: languageId$c +var tmScope$4 = "source.graphql"; +var aceMode$4 = "text"; +var languageId$4 = 139; +var require$$0$3 = { + name: name$4, + type: type$4, + color: color$4, + extensions: extensions$4, + tmScope: tmScope$4, + aceMode: aceMode$4, + languageId: languageId$4 }; -var GraphQL$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$e, - type: type$c, - extensions: extensions$c, - tmScope: tmScope$c, - aceMode: aceMode$c, - languageId: languageId$c, - 'default': GraphQL -}); - -var require$$0$5 = getCjsExportFromNamespace(GraphQL$1); - -const languages$3 = [createLanguage(require$$0$5, () => ({ +const languages$4 = [createLanguage(require$$0$3, () => ({ since: "1.5.0", parsers: ["graphql"], vscodeLanguageIds: ["graphql"] }))]; -const printers$3 = { +const printers$2 = { graphql: printerGraphql }; const parsers$3 = { @@ -48888,60 +52840,82 @@ const parsers$3 = { }; var languageGraphql = { - languages: languages$3, - options: options$4, - printers: printers$3, + languages: languages$4, + options: options$3, + printers: printers$2, parsers: parsers$3 }; -var json = { - "cjkPattern": "(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u3000-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?", +function locStart$6(node) { + return node.position.start.offset; +} + +function locEnd$5(node) { + return node.position.end.offset; +} + +var loc$2 = { + locStart: locStart$6, + locEnd: locEnd$5 +}; + +var require$$2 = { + "cjkPattern": "(?:[\\u02ea-\\u02eb\\u1100-\\u11ff\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u303f\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u3190-\\u3191\\u3196-\\u31ba\\u31c0-\\u31e3\\u31f0-\\u321e\\u322a-\\u3247\\u3260-\\u327e\\u328a-\\u32b0\\u32c0-\\u32cb\\u32d0-\\u3370\\u337b-\\u337f\\u33e0-\\u33fe\\u3400-\\u4db5\\u4e00-\\u9fef\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufe10-\\ufe1f\\ufe30-\\ufe6f\\uff00-\\uffef]|[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67]|\\ud83c[\\ude00\\ude50-\\ude51]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])(?:[\\ufe00-\\ufe0f]|\\udb40[\\udd00-\\uddef])?", "kPattern": "[\\u1100-\\u11ff\\u3001-\\u3003\\u3008-\\u3011\\u3013-\\u301f\\u302e-\\u3030\\u3037\\u30fb\\u3131-\\u318e\\u3200-\\u321e\\u3260-\\u327e\\ua960-\\ua97c\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\ufe45-\\ufe46\\uff61-\\uff65\\uffa0-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]", "punctuationPattern": "[\\u0021-\\u002f\\u003a-\\u0040\\u005b-\\u0060\\u007b-\\u007e\\u00a1\\u00a7\\u00ab\\u00b6-\\u00b7\\u00bb\\u00bf\\u037e\\u0387\\u055a-\\u055f\\u0589-\\u058a\\u05be\\u05c0\\u05c3\\u05c6\\u05f3-\\u05f4\\u0609-\\u060a\\u060c-\\u060d\\u061b\\u061e-\\u061f\\u066a-\\u066d\\u06d4\\u0700-\\u070d\\u07f7-\\u07f9\\u0830-\\u083e\\u085e\\u0964-\\u0965\\u0970\\u09fd\\u0a76\\u0af0\\u0c77\\u0c84\\u0df4\\u0e4f\\u0e5a-\\u0e5b\\u0f04-\\u0f12\\u0f14\\u0f3a-\\u0f3d\\u0f85\\u0fd0-\\u0fd4\\u0fd9-\\u0fda\\u104a-\\u104f\\u10fb\\u1360-\\u1368\\u1400\\u166e\\u169b-\\u169c\\u16eb-\\u16ed\\u1735-\\u1736\\u17d4-\\u17d6\\u17d8-\\u17da\\u1800-\\u180a\\u1944-\\u1945\\u1a1e-\\u1a1f\\u1aa0-\\u1aa6\\u1aa8-\\u1aad\\u1b5a-\\u1b60\\u1bfc-\\u1bff\\u1c3b-\\u1c3f\\u1c7e-\\u1c7f\\u1cc0-\\u1cc7\\u1cd3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205e\\u207d-\\u207e\\u208d-\\u208e\\u2308-\\u230b\\u2329-\\u232a\\u2768-\\u2775\\u27c5-\\u27c6\\u27e6-\\u27ef\\u2983-\\u2998\\u29d8-\\u29db\\u29fc-\\u29fd\\u2cf9-\\u2cfc\\u2cfe-\\u2cff\\u2d70\\u2e00-\\u2e2e\\u2e30-\\u2e4f\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301f\\u3030\\u303d\\u30a0\\u30fb\\ua4fe-\\ua4ff\\ua60d-\\ua60f\\ua673\\ua67e\\ua6f2-\\ua6f7\\ua874-\\ua877\\ua8ce-\\ua8cf\\ua8f8-\\ua8fa\\ua8fc\\ua92e-\\ua92f\\ua95f\\ua9c1-\\ua9cd\\ua9de-\\ua9df\\uaa5c-\\uaa5f\\uaade-\\uaadf\\uaaf0-\\uaaf1\\uabeb\\ufd3e-\\ufd3f\\ufe10-\\ufe19\\ufe30-\\ufe52\\ufe54-\\ufe61\\ufe63\\ufe68\\ufe6a-\\ufe6b\\uff01-\\uff03\\uff05-\\uff0a\\uff0c-\\uff0f\\uff1a-\\uff1b\\uff1f-\\uff20\\uff3b-\\uff3d\\uff3f\\uff5b\\uff5d\\uff5f-\\uff65]|\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|\\ud801[\\udd6f]|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud803[\\udf55-\\udf59]|\\ud804[\\udc47-\\udc4d\\udcbb-\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74-\\udd75\\uddc5-\\uddc8\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\udc3b\\udde2\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70-\\udc71\\udef7-\\udef8\\udfff]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e-\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|\\ud81b[\\ude97-\\ude9a\\udfe2]|\\ud82f[\\udc9f]|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e-\\udd5f]" }; const { - getLast: getLast$6 -} = util; + getLast: getLast$3 +} = util$5; +const { + locStart: locStart$5, + locEnd: locEnd$4 +} = loc$2; const { cjkPattern, kPattern, - punctuationPattern -} = json; -const INLINE_NODE_TYPES = ["liquidNode", "inlineCode", "emphasis", "strong", "delete", "link", "linkReference", "image", "imageReference", "footnote", "footnoteReference", "sentence", "whitespace", "word", "break", "inlineMath"]; -const INLINE_NODE_WRAPPER_TYPES = INLINE_NODE_TYPES.concat(["tableCell", "paragraph", "heading"]); + punctuationPattern: punctuationPattern$1 +} = require$$2; +const INLINE_NODE_TYPES$1 = ["liquidNode", "inlineCode", "emphasis", "strong", "delete", "wikiLink", "link", "linkReference", "image", "imageReference", "footnote", "footnoteReference", "sentence", "whitespace", "word", "break", "inlineMath"]; +const INLINE_NODE_WRAPPER_TYPES$1 = [...INLINE_NODE_TYPES$1, "tableCell", "paragraph", "heading"]; const kRegex = new RegExp(kPattern); -const punctuationRegex = new RegExp(punctuationPattern); +const punctuationRegex = new RegExp(punctuationPattern$1); /** * split text into whitespaces and words * @param {string} text - * @return {Array<{ type: "whitespace", value: " " | "\n" | "" } | { type: "word", value: string }>} */ -function splitText(text, options) { +function splitText$2(text, options) { const KIND_NON_CJK = "non-cjk"; const KIND_CJ_LETTER = "cj-letter"; const KIND_K_LETTER = "k-letter"; const KIND_CJK_PUNCTUATION = "cjk-punctuation"; + /** @type {Array<{ type: "whitespace", value: " " | "\n" | "" } | { type: "word", value: string }>} */ + const nodes = []; - (options.proseWrap === "preserve" ? text : text.replace(new RegExp(`(${cjkPattern})\n(${cjkPattern})`, "g"), "$1$2")).split(/([\t\n ]+)/).forEach((token, index, tokens) => { + const tokens = (options.proseWrap === "preserve" ? text : text.replace(new RegExp(`(${cjkPattern})\n(${cjkPattern})`, "g"), "$1$2")).split(/([\t\n ]+)/); + + for (const [index, token] of tokens.entries()) { // whitespace if (index % 2 === 1) { nodes.push({ type: "whitespace", value: /\n/.test(token) ? "\n" : " " }); - return; + continue; } // word separated by whitespace if ((index === 0 || index === tokens.length - 1) && token === "") { - return; + continue; } - token.split(new RegExp(`(${cjkPattern})`)).forEach((innerToken, innerIndex, innerTokens) => { + const innerTokens = token.split(new RegExp(`(${cjkPattern})`)); + + for (const [innerIndex, innerToken] of innerTokens.entries()) { if ((innerIndex === 0 || innerIndex === innerTokens.length - 1) && innerToken === "") { - return; + continue; } // non-CJK word @@ -48952,11 +52926,11 @@ function splitText(text, options) { value: innerToken, kind: KIND_NON_CJK, hasLeadingPunctuation: punctuationRegex.test(innerToken[0]), - hasTrailingPunctuation: punctuationRegex.test(getLast$6(innerToken)) + hasTrailingPunctuation: punctuationRegex.test(getLast$3(innerToken)) }); } - return; + continue; } // CJK character @@ -48973,12 +52947,13 @@ function splitText(text, options) { hasLeadingPunctuation: false, hasTrailingPunctuation: false }); - }); - }); + } + } + return nodes; function appendNode(node) { - const lastNode = getLast$6(nodes); + const lastNode = getLast$3(nodes); if (lastNode && lastNode.type === "word") { if (lastNode.kind === KIND_NON_CJK && node.kind === KIND_CJ_LETTER && !lastNode.hasTrailingPunctuation || lastNode.kind === KIND_CJ_LETTER && node.kind === KIND_NON_CJK && !node.hasLeadingPunctuation) { @@ -49003,7 +52978,7 @@ function splitText(text, options) { } } -function getOrderedListItemInfo(orderListItem, originalText) { +function getOrderedListItemInfo$1(orderListItem, originalText) { const [, numberText, marker, leadingSpaces] = originalText.slice(orderListItem.position.start.offset, orderListItem.position.end.offset).match(/^\s*(\d+)(\.|\))(\s*)/); return { numberText, @@ -49012,7 +52987,7 @@ function getOrderedListItemInfo(orderListItem, originalText) { }; } -function hasGitDiffFriendlyOrderedList(node, options) { +function hasGitDiffFriendlyOrderedList$1(node, options) { if (!node.ordered) { return false; } @@ -49021,127 +52996,111 @@ function hasGitDiffFriendlyOrderedList(node, options) { return false; } - const firstNumber = Number(getOrderedListItemInfo(node.children[0], options.originalText).numberText); - const secondNumber = Number(getOrderedListItemInfo(node.children[1], options.originalText).numberText); + const firstNumber = Number(getOrderedListItemInfo$1(node.children[0], options.originalText).numberText); + const secondNumber = Number(getOrderedListItemInfo$1(node.children[1], options.originalText).numberText); if (firstNumber === 0 && node.children.length > 2) { - const thirdNumber = Number(getOrderedListItemInfo(node.children[2], options.originalText).numberText); + const thirdNumber = Number(getOrderedListItemInfo$1(node.children[2], options.originalText).numberText); return secondNumber === 1 && thirdNumber === 1; } return secondNumber === 1; -} // workaround for https://github.com/remarkjs/remark/issues/351 -// leading and trailing newlines are stripped by remark +} // The final new line should not include in value +// https://github.com/remarkjs/remark/issues/512 -function getFencedCodeBlockValue(node, originalText) { - const text = originalText.trimEnd().slice(node.position.start.offset, node.position.end.offset); - const leadingSpaceCount = text.match(/^\s*/)[0].length; - const replaceRegex = new RegExp(`^\\s{0,${leadingSpaceCount}}`); - const lineContents = text.split("\n"); - const markerStyle = text[leadingSpaceCount]; // ` or ~ - - const marker = text.slice(leadingSpaceCount).match(new RegExp(`^[${markerStyle}]+`))[0]; // https://spec.commonmark.org/0.28/#example-104: Closing fences may be indented by 0-3 spaces - // https://spec.commonmark.org/0.28/#example-93: The closing code fence must be at least as long as the opening fence - - const hasEndMarker = new RegExp(`^\\s{0,3}${marker}`).test(lineContents[lineContents.length - 1].slice(getIndent(lineContents.length - 1))); - return lineContents.slice(1, hasEndMarker ? -1 : undefined).map((x, i) => x.slice(getIndent(i + 1)).replace(replaceRegex, "")).join("\n"); +function getFencedCodeBlockValue$2(node, originalText) { + const { + value + } = node; - function getIndent(lineIndex) { - return node.position.indent[lineIndex - 1] - 1; + if (node.position.end.offset === originalText.length && value.endsWith("\n") && // Code block has no end mark + originalText.endsWith("\n")) { + return value.slice(0, -1); } + + return value; } -function mapAst(ast, handler) { +function mapAst$1(ast, handler) { return function preorder(node, index, parentStack) { - parentStack = parentStack || []; const newNode = Object.assign({}, handler(node, index, parentStack)); if (newNode.children) { - newNode.children = newNode.children.map((child, index) => { - return preorder(child, index, [newNode].concat(parentStack)); - }); + newNode.children = newNode.children.map((child, index) => preorder(child, index, [newNode, ...parentStack])); } return newNode; - }(ast, null, null); + }(ast, null, []); } -function isAutolink(node, options) { +function isAutolink$1(node) { if (!node || node.type !== "link" || node.children.length !== 1) { return false; } const child = node.children[0]; - return child && options.locStart(node) === options.locStart(child) && options.locEnd(node) === options.locEnd(child); + return child && locStart$5(node) === locStart$5(child) && locEnd$4(node) === locEnd$4(child); } -var utils$9 = { - mapAst, - splitText, - punctuationPattern, - getFencedCodeBlockValue, - getOrderedListItemInfo, - hasGitDiffFriendlyOrderedList, - INLINE_NODE_TYPES, - INLINE_NODE_WRAPPER_TYPES, - isAutolink +var utils$2 = { + mapAst: mapAst$1, + splitText: splitText$2, + punctuationPattern: punctuationPattern$1, + getFencedCodeBlockValue: getFencedCodeBlockValue$2, + getOrderedListItemInfo: getOrderedListItemInfo$1, + hasGitDiffFriendlyOrderedList: hasGitDiffFriendlyOrderedList$1, + INLINE_NODE_TYPES: INLINE_NODE_TYPES$1, + INLINE_NODE_WRAPPER_TYPES: INLINE_NODE_WRAPPER_TYPES$1, + isAutolink: isAutolink$1 }; const { - getParserName: getParserName$1, - getMaxContinuousCount: getMaxContinuousCount$2 -} = util; + inferParserByLanguage: inferParserByLanguage$1, + getMaxContinuousCount: getMaxContinuousCount$1 +} = util$5; const { builders: { - hardline: hardline$d, - literalline: literalline$3, - concat: concat$i, + hardline: hardline$6, markAsRoot: markAsRoot$2 }, utils: { - mapDoc: mapDoc$2 + replaceNewlinesWithLiterallines } -} = document; -const { - print: printFrontMatter$1 -} = frontMatter; +} = doc; const { getFencedCodeBlockValue: getFencedCodeBlockValue$1 -} = utils$9; +} = utils$2; -function embed$2(path, print, textToDoc, options) { +function embed$3(path, print, textToDoc, options) { const node = path.getValue(); if (node.type === "code" && node.lang !== null) { - // only look for the first string so as to support [markdown-preview-enhanced](https://shd101wyy.github.io/markdown-preview-enhanced/#/code-chunk) - const langMatch = node.lang.match(/^[\w-]+/); - const lang = langMatch ? langMatch[0] : ""; - const parser = getParserName$1(lang, options); + const parser = inferParserByLanguage$1(node.lang, options); if (parser) { const styleUnit = options.__inJsTemplate ? "~" : "`"; - const style = styleUnit.repeat(Math.max(3, getMaxContinuousCount$2(node.value, styleUnit) + 1)); + const style = styleUnit.repeat(Math.max(3, getMaxContinuousCount$1(node.value, styleUnit) + 1)); const doc = textToDoc(getFencedCodeBlockValue$1(node, options.originalText), { parser }, { stripTrailingHardline: true }); - return markAsRoot$2(concat$i([style, node.lang, node.meta ? " " + node.meta : "", hardline$d, replaceNewlinesWithLiterallines(doc), hardline$d, style])); + return markAsRoot$2([style, node.lang, node.meta ? " " + node.meta : "", hardline$6, replaceNewlinesWithLiterallines(doc), hardline$6, style]); } } switch (node.type) { case "front-matter": - return printFrontMatter$1(node, textToDoc); + return print_1(node, textToDoc); // MDX case "importExport": - return concat$i([textToDoc(node.value, { + return [textToDoc(node.value, { parser: "babel" }, { stripTrailingHardline: true - }), hardline$d]); + }), hardline$6]; case "jsx": return textToDoc(`<$>${node.value}`, { @@ -49153,46 +53112,38 @@ function embed$2(path, print, textToDoc, options) { } return null; - - function replaceNewlinesWithLiterallines(doc) { - return mapDoc$2(doc, currentDoc => typeof currentDoc === "string" && currentDoc.includes("\n") ? concat$i(currentDoc.split(/(\n)/g).map((v, i) => i % 2 === 0 ? v : literalline$3)) : currentDoc); - } } -var embed_1$2 = embed$2; +var embed_1$1 = embed$3; -const { - parse: parseFrontMatter$1 -} = frontMatter; const pragmas = ["format", "prettier"]; -function startWithPragma(text) { +function startWithPragma$1(text) { const pragma = `@(${pragmas.join("|")})`; const regex = new RegExp([``, ``].join("|"), "m"); const matched = text.match(regex); return matched && matched.index === 0; } -var pragma$3 = { - startWithPragma, - hasPragma: text => startWithPragma(parseFrontMatter$1(text).content.trimStart()), +var pragma$2 = { + startWithPragma: startWithPragma$1, + hasPragma: text => startWithPragma$1(parse_1(text).content.trimStart()), insertPragma: text => { - const extracted = parseFrontMatter$1(text); + const extracted = parse_1(text); const pragma = ``; return extracted.frontMatter ? `${extracted.frontMatter.raw}\n\n${pragma}\n\n${extracted.content}` : `${pragma}\n\n${extracted.content}`; } }; const { - getOrderedListItemInfo: getOrderedListItemInfo$1, - mapAst: mapAst$1, + getOrderedListItemInfo, + mapAst, splitText: splitText$1 -} = utils$9; // 0x0 ~ 0x10ffff -// eslint-disable-next-line no-control-regex +} = utils$2; // 0x0 ~ 0x10ffff -const isSingleCharRegex = /^([\u0000-\uffff]|[\ud800-\udbff][\udc00-\udfff])$/; +const isSingleCharRegex = /^.$/su; -function preprocess$1(ast, options) { +function preprocess$2(ast, options) { ast = restoreUnescapedCharacter(ast, options); ast = mergeContinuousTexts(ast); ast = transformInlineCode(ast); @@ -49205,36 +53156,34 @@ function preprocess$1(ast, options) { } function transformImportExport(ast) { - return mapAst$1(ast, node => { + return mapAst(ast, node => { if (node.type !== "import" && node.type !== "export") { return node; } - return Object.assign({}, node, { + return Object.assign(Object.assign({}, node), {}, { type: "importExport" }); }); } function transformInlineCode(ast) { - return mapAst$1(ast, node => { + return mapAst(ast, node => { if (node.type !== "inlineCode") { return node; } - return Object.assign({}, node, { + return Object.assign(Object.assign({}, node), {}, { value: node.value.replace(/\s+/g, " ") }); }); } function restoreUnescapedCharacter(ast, options) { - return mapAst$1(ast, node => { - return node.type !== "text" ? node : Object.assign({}, node, { - value: node.value !== "*" && node.value !== "_" && node.value !== "$" && // handle these cases in printer - isSingleCharRegex.test(node.value) && node.position.end.offset - node.position.start.offset !== node.value.length ? options.originalText.slice(node.position.start.offset, node.position.end.offset) : node.value - }); - }); + return mapAst(ast, node => node.type !== "text" || node.value === "*" || node.value === "_" || // handle these cases in printer + !isSingleCharRegex.test(node.value) || node.position.end.offset - node.position.start.offset === node.value.length ? node : Object.assign(Object.assign({}, node), {}, { + value: options.originalText.slice(node.position.start.offset, node.position.end.offset) + })); } function mergeContinuousImportExport(ast) { @@ -49249,13 +53198,13 @@ function mergeContinuousImportExport(ast) { } function mergeChildren(ast, shouldMerge, mergeNode) { - return mapAst$1(ast, node => { + return mapAst(ast, node => { if (!node.children) { return node; } const children = node.children.reduce((current, child) => { - const lastChild = current[current.length - 1]; + const lastChild = getLast_1(current); if (lastChild && shouldMerge(lastChild, child)) { current.splice(-1, 1, mergeNode(lastChild, child)); @@ -49265,7 +53214,7 @@ function mergeChildren(ast, shouldMerge, mergeNode) { return current; }, []); - return Object.assign({}, node, { + return Object.assign(Object.assign({}, node), {}, { children }); }); @@ -49283,7 +53232,7 @@ function mergeContinuousTexts(ast) { } function splitTextIntoSentences(ast, options) { - return mapAst$1(ast, (node, index, [parentNode]) => { + return mapAst(ast, (node, index, [parentNode]) => { if (node.type !== "text") { return node; } @@ -49311,7 +53260,7 @@ function splitTextIntoSentences(ast, options) { } function transformIndentedCodeblockAndMarkItsParentList(ast, options) { - return mapAst$1(ast, (node, index, parentStack) => { + return mapAst(ast, (node, index, parentStack) => { if (node.type === "code") { // the first char may point to `\n`, e.g. `\n\t\tbar`, just ignore it const isIndented = /^\n?( {4,}|\t)/.test(options.originalText.slice(node.position.start.offset, node.position.end.offset)); @@ -49337,8 +53286,8 @@ function transformIndentedCodeblockAndMarkItsParentList(ast, options) { } function markAlignedList(ast, options) { - return mapAst$1(ast, (node, index, parentStack) => { - if (node.type === "list" && node.children.length !== 0) { + return mapAst(ast, (node, index, parentStack) => { + if (node.type === "list" && node.children.length > 0) { // if one of its parents is not aligned, it's not possible to be aligned in sub-lists for (let i = 0; i < parentStack.length; i++) { const parent = parentStack[i]; @@ -49369,7 +53318,7 @@ function markAlignedList(ast, options) { } const [firstItem, secondItem] = list.children; - const firstInfo = getOrderedListItemInfo$1(firstItem, options.originalText); + const firstInfo = getOrderedListItemInfo(firstItem, options.originalText); if (firstInfo.leadingSpaces.length > 1) { /** @@ -49439,64 +53388,127 @@ function markAlignedList(ast, options) { */ - const secondInfo = getOrderedListItemInfo$1(secondItem, options.originalText); + const secondInfo = getOrderedListItemInfo(secondItem, options.originalText); return secondInfo.leadingSpaces.length > 1; } } -var preprocess_1$1 = preprocess$1; +var printPreprocess$2 = preprocess$2; const { - getLast: getLast$7, - getMinNotPresentContinuousCount: getMinNotPresentContinuousCount$1, - getMaxContinuousCount: getMaxContinuousCount$3, - getStringWidth: getStringWidth$4 -} = util; + isFrontMatterNode: isFrontMatterNode$2 +} = util$5; +const { + startWithPragma +} = pragma$2; +const ignoredProperties$1 = new Set(["position", "raw" // front-matter +]); + +function clean$2(ast, newObj, parent) { + // for codeblock + if (ast.type === "front-matter" || ast.type === "code" || ast.type === "yaml" || ast.type === "import" || ast.type === "export" || ast.type === "jsx") { + delete newObj.value; + } + + if (ast.type === "list") { + delete newObj.isAligned; + } + + if (ast.type === "list" || ast.type === "listItem") { + delete newObj.spread; + delete newObj.loose; + } // texts can be splitted or merged + + + if (ast.type === "text") { + return null; + } + + if (ast.type === "inlineCode") { + newObj.value = ast.value.replace(/[\t\n ]+/g, " "); + } + + if (ast.type === "wikiLink") { + newObj.value = ast.value.trim().replace(/[\t\n]+/g, " "); + } + + if (ast.type === "definition" || ast.type === "linkReference") { + newObj.label = ast.label.trim().replace(/[\t\n ]+/g, " ").toLowerCase(); + } + + if ((ast.type === "definition" || ast.type === "link" || ast.type === "image") && ast.title) { + newObj.title = ast.title.replace(/\\(["')])/g, "$1"); + } // for insert pragma + + + if (parent && parent.type === "root" && parent.children.length > 0 && (parent.children[0] === ast || isFrontMatterNode$2(parent.children[0]) && parent.children[1] === ast) && ast.type === "html" && startWithPragma(ast.value)) { + return null; + } +} + +clean$2.ignoredProperties = ignoredProperties$1; +var clean_1$1 = clean$2; + +const { + getLast: getLast$2, + getMinNotPresentContinuousCount, + getMaxContinuousCount, + getStringWidth, + isNonEmptyArray: isNonEmptyArray$2 +} = util$5; const { builders: { - breakParent: breakParent$6, - concat: concat$j, - join: join$b, - line: line$c, - literalline: literalline$4, - markAsRoot: markAsRoot$3, - hardline: hardline$e, - softline: softline$a, - ifBreak: ifBreak$8, - fill: fill$5, - align: align$3, - indent: indent$d, - group: group$i + breakParent: breakParent$2, + join: join$6, + line: line$6, + literalline: literalline$3, + markAsRoot: markAsRoot$1, + hardline: hardline$5, + softline: softline$4, + ifBreak: ifBreak$4, + fill: fill$3, + align: align$1, + indent: indent$2, + group: group$5, + hardlineWithoutBreakParent }, utils: { - normalizeDoc: normalizeDoc$1 + normalizeDoc, + replaceEndOfLineWith: replaceEndOfLineWith$2 }, printer: { - printDocToString: printDocToString$3 + printDocToString } -} = document; +} = doc; const { - replaceEndOfLineWith: replaceEndOfLineWith$1, - isFrontMatterNode: isFrontMatterNode$3 -} = util; + insertPragma: insertPragma$4 +} = pragma$2; const { - getFencedCodeBlockValue: getFencedCodeBlockValue$2, - hasGitDiffFriendlyOrderedList: hasGitDiffFriendlyOrderedList$1, - splitText: splitText$2, - punctuationPattern: punctuationPattern$1, - INLINE_NODE_TYPES: INLINE_NODE_TYPES$1, - INLINE_NODE_WRAPPER_TYPES: INLINE_NODE_WRAPPER_TYPES$1, - isAutolink: isAutolink$1 -} = utils$9; + locStart: locStart$4, + locEnd: locEnd$3 +} = loc$2; +const { + getFencedCodeBlockValue, + hasGitDiffFriendlyOrderedList, + splitText, + punctuationPattern, + INLINE_NODE_TYPES, + INLINE_NODE_WRAPPER_TYPES, + isAutolink +} = utils$2; +/** + * @typedef {import("../document").Doc} Doc + */ + const TRAILING_HARDLINE_NODES = new Set(["importExport"]); -const SINGLE_LINE_NODE_TYPES = ["heading", "tableCell", "link"]; +const SINGLE_LINE_NODE_TYPES = ["heading", "tableCell", "link", "wikiLink"]; const SIBLING_NODE_TYPES = new Set(["listItem", "definition", "footnoteDefinition"]); -function genericPrint$4(path, options, print) { +function genericPrint$2(path, options, print) { const node = path.getValue(); if (shouldRemainTheSameContent(path)) { - return concat$j(splitText$2(options.originalText.slice(node.position.start.offset, node.position.end.offset), options).map(node => node.type === "word" ? node.value : node.value === "" ? "" : printLine(path, node.value, options))); + return splitText(options.originalText.slice(node.position.start.offset, node.position.end.offset), options).map(node => node.type === "word" ? node.value : node.value === "" ? "" : printLine(path, node.value, options)); } switch (node.type) { @@ -49508,24 +53520,24 @@ function genericPrint$4(path, options, print) { return ""; } - return concat$j([normalizeDoc$1(printRoot(path, options, print)), !TRAILING_HARDLINE_NODES.has(getLastDescendantNode(node).type) ? hardline$e : ""]); + return [normalizeDoc(printRoot(path, options, print)), !TRAILING_HARDLINE_NODES.has(getLastDescendantNode$2(node).type) ? hardline$5 : ""]; case "paragraph": - return printChildren$1(path, options, print, { - postprocessor: fill$5 + return printChildren$2(path, options, print, { + postprocessor: fill$3 }); case "sentence": - return printChildren$1(path, options, print); + return printChildren$2(path, options, print); case "word": { - let escapedValue = node.value.replace(/[$*]/g, "\\$&") // escape all `*` and `$` (math) - .replace(new RegExp([`(^|${punctuationPattern$1})(_+)`, `(_+)(${punctuationPattern$1}|$)`].join("|"), "g"), (_, text1, underscore1, underscore2, text2) => (underscore1 ? `${text1}${underscore1}` : `${underscore2}${text2}`).replace(/_/g, "\\_")); // escape all `_` except concating with non-punctuation, e.g. `1_2_3` is not considered emphasis + let escapedValue = node.value.replace(/\*/g, "\\$&") // escape all `*` + .replace(new RegExp([`(^|${punctuationPattern})(_+)`, `(_+)(${punctuationPattern}|$)`].join("|"), "g"), (_, text1, underscore1, underscore2, text2) => (underscore1 ? `${text1}${underscore1}` : `${underscore2}${text2}`).replace(/_/g, "\\_")); // escape all `_` except concating with non-punctuation, e.g. `1_2_3` is not considered emphasis const isFirstSentence = (node, name, index) => node.type === "sentence" && index === 0; - const isLastChildAutolink = (node, name, index) => isAutolink$1(node.children[index - 1], options); + const isLastChildAutolink = (node, name, index) => isAutolink(node.children[index - 1]); if (escapedValue !== node.value && (path.match(undefined, isFirstSentence, isLastChildAutolink) || path.match(undefined, isFirstSentence, (node, name, index) => node.type === "emphasis" && index === 0, isLastChildAutolink))) { // backslash is parsed as part of autolinks, so we need to remove it @@ -49551,7 +53563,7 @@ function genericPrint$4(path, options, print) { { let style; - if (isAutolink$1(node.children[0], options)) { + if (isAutolink(node.children[0])) { style = options.originalText[node.position.start.offset]; } else { const parentNode = path.getParentNode(); @@ -49559,25 +53571,38 @@ function genericPrint$4(path, options, print) { const prevNode = parentNode.children[index - 1]; const nextNode = parentNode.children[index + 1]; const hasPrevOrNextWord = // `1*2*3` is considered emphasis but `1_2_3` is not - prevNode && prevNode.type === "sentence" && prevNode.children.length > 0 && getLast$7(prevNode.children).type === "word" && !getLast$7(prevNode.children).hasTrailingPunctuation || nextNode && nextNode.type === "sentence" && nextNode.children.length > 0 && nextNode.children[0].type === "word" && !nextNode.children[0].hasLeadingPunctuation; - style = hasPrevOrNextWord || getAncestorNode$2(path, "emphasis") ? "*" : "_"; + prevNode && prevNode.type === "sentence" && prevNode.children.length > 0 && getLast$2(prevNode.children).type === "word" && !getLast$2(prevNode.children).hasTrailingPunctuation || nextNode && nextNode.type === "sentence" && nextNode.children.length > 0 && nextNode.children[0].type === "word" && !nextNode.children[0].hasLeadingPunctuation; + style = hasPrevOrNextWord || getAncestorNode(path, "emphasis") ? "*" : "_"; } - return concat$j([style, printChildren$1(path, options, print), style]); + return [style, printChildren$2(path, options, print), style]; } case "strong": - return concat$j(["**", printChildren$1(path, options, print), "**"]); + return ["**", printChildren$2(path, options, print), "**"]; case "delete": - return concat$j(["~~", printChildren$1(path, options, print), "~~"]); + return ["~~", printChildren$2(path, options, print), "~~"]; case "inlineCode": { - const backtickCount = getMinNotPresentContinuousCount$1(node.value, "`"); + const backtickCount = getMinNotPresentContinuousCount(node.value, "`"); const style = "`".repeat(backtickCount || 1); const gap = backtickCount && !/^\s/.test(node.value) ? " " : ""; - return concat$j([style, gap, node.value, gap, style]); + return [style, gap, node.value, gap, style]; + } + + case "wikiLink": + { + let contents = ""; + + if (options.proseWrap === "preserve") { + contents = node.value; + } else { + contents = node.value.replace(/[\t\n]+/g, " "); + } + + return ["[[", contents, "]]"]; } case "link": @@ -49587,61 +53612,61 @@ function genericPrint$4(path, options, print) { const mailto = "mailto:"; const url = // is parsed as { url: "mailto:hello@example.com" } node.url.startsWith(mailto) && options.originalText.slice(node.position.start.offset + 1, node.position.start.offset + 1 + mailto.length) !== mailto ? node.url.slice(mailto.length) : node.url; - return concat$j(["<", url, ">"]); + return ["<", url, ">"]; } case "[": - return concat$j(["[", printChildren$1(path, options, print), "](", printUrl(node.url, ")"), printTitle(node.title, options), ")"]); + return ["[", printChildren$2(path, options, print), "](", printUrl(node.url, ")"), printTitle(node.title, options), ")"]; default: return options.originalText.slice(node.position.start.offset, node.position.end.offset); } case "image": - return concat$j(["![", node.alt || "", "](", printUrl(node.url, ")"), printTitle(node.title, options), ")"]); + return ["![", node.alt || "", "](", printUrl(node.url, ")"), printTitle(node.title, options), ")"]; case "blockquote": - return concat$j(["> ", align$3("> ", printChildren$1(path, options, print))]); + return ["> ", align$1("> ", printChildren$2(path, options, print))]; case "heading": - return concat$j(["#".repeat(node.depth) + " ", printChildren$1(path, options, print)]); + return ["#".repeat(node.depth) + " ", printChildren$2(path, options, print)]; case "code": { if (node.isIndented) { // indented code block const alignment = " ".repeat(4); - return align$3(alignment, concat$j([alignment, concat$j(replaceEndOfLineWith$1(node.value, hardline$e))])); + return align$1(alignment, [alignment, ...replaceEndOfLineWith$2(node.value, hardline$5)]); } // fenced code block const styleUnit = options.__inJsTemplate ? "~" : "`"; - const style = styleUnit.repeat(Math.max(3, getMaxContinuousCount$3(node.value, styleUnit) + 1)); - return concat$j([style, node.lang || "", node.meta ? " " + node.meta : "", hardline$e, concat$j(replaceEndOfLineWith$1(getFencedCodeBlockValue$2(node, options.originalText), hardline$e)), hardline$e, style]); + const style = styleUnit.repeat(Math.max(3, getMaxContinuousCount(node.value, styleUnit) + 1)); + return [style, node.lang || "", node.meta ? " " + node.meta : "", hardline$5, ...replaceEndOfLineWith$2(getFencedCodeBlockValue(node, options.originalText), hardline$5), hardline$5, style]; } case "html": { const parentNode = path.getParentNode(); - const value = parentNode.type === "root" && getLast$7(parentNode.children) === node ? node.value.trimEnd() : node.value; - const isHtmlComment = /^$/.test(value); - return concat$j(replaceEndOfLineWith$1(value, isHtmlComment ? hardline$e : markAsRoot$3(literalline$4))); + const value = parentNode.type === "root" && getLast$2(parentNode.children) === node ? node.value.trimEnd() : node.value; + const isHtmlComment = /^$/s.test(value); + return replaceEndOfLineWith$2(value, isHtmlComment ? hardline$5 : markAsRoot$1(literalline$3)); } case "list": { const nthSiblingIndex = getNthListSiblingIndex(node, path.getParentNode()); - const isGitDiffFriendlyOrderedList = hasGitDiffFriendlyOrderedList$1(node, options); - return printChildren$1(path, options, print, { + const isGitDiffFriendlyOrderedList = hasGitDiffFriendlyOrderedList(node, options); + return printChildren$2(path, options, print, { processor: (childPath, index) => { const prefix = getPrefix(); const childNode = childPath.getValue(); if (childNode.children.length === 2 && childNode.children[1].type === "html" && childNode.children[0].position.start.column !== childNode.children[1].position.start.column) { - return concat$j([prefix, printListItem(childPath, options, print, prefix)]); + return [prefix, printListItem(childPath, options, print, prefix)]; } - return concat$j([prefix, align$3(" ".repeat(prefix.length), printListItem(childPath, options, print, prefix))]); + return [prefix, align$1(" ".repeat(prefix.length), printListItem(childPath, options, print, prefix))]; function getPrefix() { const rawPrefix = node.ordered ? (index === 0 ? node.start : isGitDiffFriendlyOrderedList ? 1 : node.start + index) + (nthSiblingIndex % 2 === 0 ? ". " : ") ") : nthSiblingIndex % 2 === 0 ? "- " : "* "; @@ -49655,7 +53680,7 @@ function genericPrint$4(path, options, print) { case "thematicBreak": { - const counter = getAncestorCounter$1(path, "list"); + const counter = getAncestorCounter(path, "list"); if (counter === -1) { return "---"; @@ -49666,21 +53691,21 @@ function genericPrint$4(path, options, print) { } case "linkReference": - return concat$j(["[", printChildren$1(path, options, print), "]", node.referenceType === "full" ? concat$j(["[", node.identifier, "]"]) : node.referenceType === "collapsed" ? "[]" : ""]); + return ["[", printChildren$2(path, options, print), "]", node.referenceType === "full" ? ["[", node.identifier, "]"] : node.referenceType === "collapsed" ? "[]" : ""]; case "imageReference": switch (node.referenceType) { case "full": - return concat$j(["![", node.alt || "", "][", node.identifier, "]"]); + return ["![", node.alt || "", "][", node.identifier, "]"]; default: - return concat$j(["![", node.alt, "]", node.referenceType === "collapsed" ? "[]" : ""]); + return ["![", node.alt, "]", node.referenceType === "collapsed" ? "[]" : ""]; } case "definition": { - const lineOrSpace = options.proseWrap === "always" ? line$c : " "; - return group$i(concat$j([concat$j(["[", node.identifier, "]:"]), indent$d(concat$j([lineOrSpace, printUrl(node.url), node.title === null ? "" : concat$j([lineOrSpace, printTitle(node.title, options, false)])]))])); + const lineOrSpace = options.proseWrap === "always" ? line$6 : " "; + return group$5(["[", node.identifier, "]:", indent$2([lineOrSpace, printUrl(node.url), node.title === null ? "" : [lineOrSpace, printTitle(node.title, options, false)]])]); } // `footnote` requires `.use(footnotes, {inlineNotes: true})`, we are not using this option // https://github.com/remarkjs/remark-footnotes#optionsinlinenotes @@ -49688,49 +53713,49 @@ function genericPrint$4(path, options, print) { /* istanbul ignore next */ case "footnote": - return concat$j(["[^", printChildren$1(path, options, print), "]"]); + return ["[^", printChildren$2(path, options, print), "]"]; case "footnoteReference": - return concat$j(["[^", node.identifier, "]"]); + return ["[^", node.identifier, "]"]; case "footnoteDefinition": { const nextNode = path.getParentNode().children[path.getName() + 1]; const shouldInlineFootnote = node.children.length === 1 && node.children[0].type === "paragraph" && (options.proseWrap === "never" || options.proseWrap === "preserve" && node.children[0].position.start.line === node.children[0].position.end.line); - return concat$j(["[^", node.identifier, "]: ", shouldInlineFootnote ? printChildren$1(path, options, print) : group$i(concat$j([align$3(" ".repeat(4), printChildren$1(path, options, print, { - processor: (childPath, index) => { - return index === 0 ? group$i(concat$j([softline$a, childPath.call(print)])) : childPath.call(print); - } - })), nextNode && nextNode.type === "footnoteDefinition" ? softline$a : ""]))]); + return ["[^", node.identifier, "]: ", shouldInlineFootnote ? printChildren$2(path, options, print) : group$5([align$1(" ".repeat(4), printChildren$2(path, options, print, { + processor: (childPath, index) => index === 0 ? group$5([softline$4, print()]) : print() + })), nextNode && nextNode.type === "footnoteDefinition" ? softline$4 : ""])]; } case "table": return printTable(path, options, print); case "tableCell": - return printChildren$1(path, options, print); + return printChildren$2(path, options, print); case "break": - return /\s/.test(options.originalText[node.position.start.offset]) ? concat$j([" ", markAsRoot$3(literalline$4)]) : concat$j(["\\", hardline$e]); + return /\s/.test(options.originalText[node.position.start.offset]) ? [" ", markAsRoot$1(literalline$3)] : ["\\", hardline$5]; case "liquidNode": - return concat$j(replaceEndOfLineWith$1(node.value, hardline$e)); + return replaceEndOfLineWith$2(node.value, hardline$5); // MDX + // fallback to the original text if multiparser failed + // or `embeddedLanguageFormatting: "off"` case "importExport": + return [node.value, hardline$5]; + case "jsx": - // fallback to the original text if multiparser failed - // or `embeddedLanguageFormatting: "off"` - return concat$j([node.value, hardline$e]); + return node.value; case "math": - return concat$j(["$$", hardline$e, node.value ? concat$j([concat$j(replaceEndOfLineWith$1(node.value, hardline$e)), hardline$e]) : "", "$$"]); + return ["$$", hardline$5, node.value ? [...replaceEndOfLineWith$2(node.value, hardline$5), hardline$5] : "", "$$"]; case "inlineMath": { // remark-math trims content but we don't want to remove whitespaces // since it's very possible that it's recognized as math accidentally - return options.originalText.slice(options.locStart(node), options.locEnd(node)); + return options.originalText.slice(locStart$4(node), locEnd$3(node)); } case "tableRow": // handled in "table" @@ -49746,17 +53771,17 @@ function genericPrint$4(path, options, print) { function printListItem(path, options, print, listPrefix) { const node = path.getValue(); const prefix = node.checked === null ? "" : node.checked ? "[x] " : "[ ] "; - return concat$j([prefix, printChildren$1(path, options, print, { + return [prefix, printChildren$2(path, options, print, { processor: (childPath, index) => { if (index === 0 && childPath.getValue().type !== "list") { - return align$3(" ".repeat(prefix.length), childPath.call(print)); + return align$1(" ".repeat(prefix.length), print()); } const alignment = " ".repeat(clamp(options.tabWidth - listPrefix.length, 0, 3) // 4+ will cause indented code block ); - return concat$j([alignment, align$3(alignment, childPath.call(print))]); + return [alignment, align$1(alignment, print())]; } - })]); + })]; } function alignListPrefix(prefix, options) { @@ -49775,8 +53800,6 @@ function getNthListSiblingIndex(node, parentNode) { } function getNthSiblingIndex(node, parentNode, condition) { - condition = condition || (() => true); - let index = -1; for (const childNode of parentNode.children) { @@ -49792,8 +53815,8 @@ function getNthSiblingIndex(node, parentNode, condition) { } } -function getAncestorCounter$1(path, typeOrTypes) { - const types = [].concat(typeOrTypes); +function getAncestorCounter(path, typeOrTypes) { + const types = Array.isArray(typeOrTypes) ? typeOrTypes : [typeOrTypes]; let counter = -1; let ancestorNode; @@ -49806,101 +53829,93 @@ function getAncestorCounter$1(path, typeOrTypes) { return -1; } -function getAncestorNode$2(path, typeOrTypes) { - const counter = getAncestorCounter$1(path, typeOrTypes); +function getAncestorNode(path, typeOrTypes) { + const counter = getAncestorCounter(path, typeOrTypes); return counter === -1 ? null : path.getParentNode(counter); } function printLine(path, value, options) { if (options.proseWrap === "preserve" && value === "\n") { - return hardline$e; + return hardline$5; } - const isBreakable = options.proseWrap === "always" && !getAncestorNode$2(path, SINGLE_LINE_NODE_TYPES); - return value !== "" ? isBreakable ? line$c : " " : isBreakable ? softline$a : ""; + const isBreakable = options.proseWrap === "always" && !getAncestorNode(path, SINGLE_LINE_NODE_TYPES); + return value !== "" ? isBreakable ? line$6 : " " : isBreakable ? softline$4 : ""; } function printTable(path, options, print) { - const hardlineWithoutBreakParent = hardline$e.parts[0]; const node = path.getValue(); - const contents = []; // { [rowIndex: number]: { [columnIndex: number]: string } } - - path.map(rowPath => { - const rowContents = []; - rowPath.map(cellPath => { - rowContents.push(printDocToString$3(cellPath.call(print), options).formatted); - }, "children"); - contents.push(rowContents); - }, "children"); // Get the width of each column + const columnMaxWidths = []; // { [rowIndex: number]: { [columnIndex: number]: {text: string, width: number} } } - const columnMaxWidths = contents.reduce((currentWidths, rowContents) => currentWidths.map((width, columnIndex) => Math.max(width, getStringWidth$4(rowContents[columnIndex]))), contents[0].map(() => 3) // minimum width = 3 (---, :--, :-:, --:) - ); - const alignedTable = join$b(hardlineWithoutBreakParent, [printRow(contents[0]), printSeparator(), join$b(hardlineWithoutBreakParent, contents.slice(1).map(rowContents => printRow(rowContents)))]); + const contents = path.map(rowPath => rowPath.map((cellPath, columnIndex) => { + const text = printDocToString(print(), options).formatted; + const width = getStringWidth(text); + columnMaxWidths[columnIndex] = Math.max(columnMaxWidths[columnIndex] || 3, // minimum width = 3 (---, :--, :-:, --:) + width); + return { + text, + width + }; + }, "children"), "children"); + const alignedTable = printTableContents( + /* isCompact */ + false); if (options.proseWrap !== "never") { - return concat$j([breakParent$6, alignedTable]); + return [breakParent$2, alignedTable]; } // Only if the --prose-wrap never is set and it exceeds the print width. - const compactTable = join$b(hardlineWithoutBreakParent, [printRow(contents[0], - /* isCompact */ - true), printSeparator( + const compactTable = printTableContents( /* isCompact */ - true), join$b(hardlineWithoutBreakParent, contents.slice(1).map(rowContents => printRow(rowContents, - /* isCompact */ - true)))]); - return concat$j([breakParent$6, group$i(ifBreak$8(compactTable, alignedTable))]); - - function printSeparator(isCompact) { - return concat$j(["| ", join$b(" | ", columnMaxWidths.map((width, index) => { - const spaces = isCompact ? 3 : width; + true); + return [breakParent$2, group$5(ifBreak$4(compactTable, alignedTable))]; - switch (node.align[index]) { - case "left": - return ":" + "-".repeat(spaces - 1); + function printTableContents(isCompact) { + /** @type{Doc[]} */ + const parts = [printRow(contents[0], isCompact), printAlign(isCompact)]; - case "right": - return "-".repeat(spaces - 1) + ":"; + if (contents.length > 1) { + parts.push(join$6(hardlineWithoutBreakParent, contents.slice(1).map(rowContents => printRow(rowContents, isCompact)))); + } - case "center": - return ":" + "-".repeat(spaces - 2) + ":"; + return join$6(hardlineWithoutBreakParent, parts); + } - default: - return "-".repeat(spaces); - } - })), " |"]); + function printAlign(isCompact) { + const align = columnMaxWidths.map((width, index) => { + const align = node.align[index]; + const first = align === "center" || align === "left" ? ":" : "-"; + const last = align === "center" || align === "right" ? ":" : "-"; + const middle = isCompact ? "-" : "-".repeat(width - 2); + return `${first}${middle}${last}`; + }); + return `| ${align.join(" | ")} |`; } function printRow(rowContents, isCompact) { - return concat$j(["| ", join$b(" | ", isCompact ? rowContents : rowContents.map((rowContent, columnIndex) => { - switch (node.align[columnIndex]) { - case "right": - return alignRight(rowContent, columnMaxWidths[columnIndex]); - - case "center": - return alignCenter(rowContent, columnMaxWidths[columnIndex]); - - default: - return alignLeft(rowContent, columnMaxWidths[columnIndex]); + const columns = rowContents.map(({ + text, + width + }, columnIndex) => { + if (isCompact) { + return text; } - })), " |"]); - } - function alignLeft(text, width) { - const spaces = width - getStringWidth$4(text); - return concat$j([text, " ".repeat(spaces)]); - } + const spaces = columnMaxWidths[columnIndex] - width; + const align = node.align[columnIndex]; + let before = 0; - function alignRight(text, width) { - const spaces = width - getStringWidth$4(text); - return concat$j([" ".repeat(spaces), text]); - } + if (align === "right") { + before = spaces; + } else if (align === "center") { + before = Math.floor(spaces / 2); + } - function alignCenter(text, width) { - const spaces = width - getStringWidth$4(text); - const left = Math.floor(spaces / 2); - const right = spaces - left; - return concat$j([" ".repeat(left), text, " ".repeat(right)]); + const after = spaces - before; + return `${" ".repeat(before)}${text}${" ".repeat(after)}`; + }); + return `| ${columns.join(" | ")} |`; } } @@ -49915,8 +53930,9 @@ function printRoot(path, options, print) { const { children } = path.getValue(); - children.forEach((childNode, index) => { - switch (isPrettierIgnore(childNode)) { + + for (const [index, childNode] of children.entries()) { + switch (isPrettierIgnore$2(childNode)) { case "start": if (ignoreStart === null) { ignoreStart = { @@ -49941,14 +53957,15 @@ function printRoot(path, options, print) { break; } - }); - return printChildren$1(path, options, print, { + } + + return printChildren$2(path, options, print, { processor: (childPath, index) => { - if (ignoreRanges.length !== 0) { + if (ignoreRanges.length > 0) { const ignoreRange = ignoreRanges[0]; if (index === ignoreRange.start.index) { - return concat$j([children[ignoreRange.start.index].value, options.originalText.slice(ignoreRange.start.offset, ignoreRange.end.offset), children[ignoreRange.end.index].value]); + return [children[ignoreRange.start.index].value, options.originalText.slice(ignoreRange.start.offset, ignoreRange.end.offset), children[ignoreRange.end.index].value]; } if (ignoreRange.start.index < index && index < ignoreRange.end.index) { @@ -49961,21 +53978,22 @@ function printRoot(path, options, print) { } } - return childPath.call(print); + return print(); } }); } -function printChildren$1(path, options, print, events) { - events = events || {}; - const postprocessor = events.postprocessor || concat$j; +function printChildren$2(path, options, print, events = {}) { + const { + postprocessor + } = events; - const processor = events.processor || (childPath => childPath.call(print)); + const processor = events.processor || (() => print()); const node = path.getValue(); const parts = []; let lastChildNode; - path.map((childPath, index) => { + path.each((childPath, index) => { const childNode = childPath.getValue(); const result = processor(childPath, index); @@ -49987,22 +54005,22 @@ function printChildren$1(path, options, print, events) { options }; - if (!shouldNotPrePrintHardline(childNode, data)) { - parts.push(hardline$e); // Can't find a case to pass `shouldPrePrintTripleHardline` + if (shouldPrePrintHardline(childNode, data)) { + parts.push(hardline$5); // Can't find a case to pass `shouldPrePrintTripleHardline` /* istanbul ignore next */ if (lastChildNode && TRAILING_HARDLINE_NODES.has(lastChildNode.type)) { if (shouldPrePrintTripleHardline(childNode, data)) { - parts.push(hardline$e); + parts.push(hardline$5); } } else { if (shouldPrePrintDoubleHardline(childNode, data) || shouldPrePrintTripleHardline(childNode, data)) { - parts.push(hardline$e); + parts.push(hardline$5); } if (shouldPrePrintTripleHardline(childNode, data)) { - parts.push(hardline$e); + parts.push(hardline$5); } } } @@ -50011,14 +54029,14 @@ function printChildren$1(path, options, print, events) { lastChildNode = childNode; } }, "children"); - return postprocessor(parts); + return postprocessor ? postprocessor(parts) : parts; } -function getLastDescendantNode(node) { +function getLastDescendantNode$2(node) { let current = node; - while (current.children && current.children.length !== 0) { - current = current.children[current.children.length - 1]; + while (isNonEmptyArray$2(current.children)) { + current = getLast$2(current.children); } return current; @@ -50026,7 +54044,7 @@ function getLastDescendantNode(node) { /** @return {false | 'next' | 'start' | 'end'} */ -function isPrettierIgnore(node) { +function isPrettierIgnore$2(node) { if (node.type !== "html") { return false; } @@ -50035,11 +54053,11 @@ function isPrettierIgnore(node) { return match === null ? false : match[1] ? match[1] : "next"; } -function shouldNotPrePrintHardline(node, data) { +function shouldPrePrintHardline(node, data) { const isFirstNode = data.parts.length === 0; - const isInlineNode = INLINE_NODE_TYPES$1.includes(node.type); - const isInlineHTML = node.type === "html" && INLINE_NODE_WRAPPER_TYPES$1.includes(data.parentNode.type); - return isFirstNode || isInlineNode || isInlineHTML; + const isInlineNode = INLINE_NODE_TYPES.includes(node.type); + const isInlineHTML = node.type === "html" && INLINE_NODE_WRAPPER_TYPES.includes(data.parentNode.type); + return !isFirstNode && !isInlineNode && !isInlineHTML; } function shouldPrePrintDoubleHardline(node, data) { @@ -50047,7 +54065,7 @@ function shouldPrePrintDoubleHardline(node, data) { const isSiblingNode = isSequence && SIBLING_NODE_TYPES.has(node.type); const isInTightListItem = data.parentNode.type === "listItem" && !data.parentNode.loose; const isPrevNodeLooseListItem = data.prevNode && data.prevNode.type === "listItem" && data.prevNode.loose; - const isPrevNodePrettierIgnore = isPrettierIgnore(data.prevNode) === "next"; + const isPrevNodePrettierIgnore = isPrettierIgnore$2(data.prevNode) === "next"; const isBlockHtmlWithoutBlankLineBetweenPrevHtml = node.type === "html" && data.prevNode && data.prevNode.type === "html" && data.prevNode.position.end.line + 1 === node.position.start.line; const isHtmlDirectAfterListItem = node.type === "html" && data.parentNode.type === "listItem" && data.prevNode && data.prevNode.type === "paragraph" && data.prevNode.position.end.line + 1 === node.position.start.line; return isPrevNodeLooseListItem || !(isSiblingNode || isInTightListItem || isPrevNodePrettierIgnore || isBlockHtmlWithoutBlankLineBetweenPrevHtml || isHtmlDirectAfterListItem); @@ -50060,20 +54078,22 @@ function shouldPrePrintTripleHardline(node, data) { } function shouldRemainTheSameContent(path) { - const ancestorNode = getAncestorNode$2(path, ["linkReference", "imageReference"]); + const ancestorNode = getAncestorNode(path, ["linkReference", "imageReference"]); return ancestorNode && (ancestorNode.type !== "linkReference" || ancestorNode.referenceType !== "full"); } +/** + * @param {string} url + * @param {string[] | string} [dangerousCharOrChars] + * @returns {string} + */ -function printUrl(url, dangerousCharOrChars) { - const dangerousChars = [" "].concat(dangerousCharOrChars || []); + +function printUrl(url, dangerousCharOrChars = []) { + const dangerousChars = [" ", ...(Array.isArray(dangerousCharOrChars) ? dangerousCharOrChars : [dangerousCharOrChars])]; return new RegExp(dangerousChars.map(x => `\\${x}`).join("|")).test(url) ? `<${url}>` : url; } -function printTitle(title, options, printSpace) { - if (printSpace == null) { - printSpace = true; - } - +function printTitle(title, options, printSpace = true) { if (!title) { return ""; } @@ -50102,82 +54122,42 @@ function clamp(value, min, max) { return value < min ? min : value > max ? max : value; } -function clean$5(ast, newObj, parent) { - delete newObj.position; - delete newObj.raw; // front-matter - // for codeblock - - if (ast.type === "front-matter" || ast.type === "code" || ast.type === "yaml" || ast.type === "import" || ast.type === "export" || ast.type === "jsx") { - delete newObj.value; - } - - if (ast.type === "list") { - delete newObj.isAligned; - } - - if (ast.type === "list" || ast.type === "listItem") { - delete newObj.spread; - delete newObj.loose; - } // texts can be splitted or merged - - - if (ast.type === "text") { - return null; - } - - if (ast.type === "inlineCode") { - newObj.value = ast.value.replace(/[\t\n ]+/g, " "); - } - - if (ast.type === "definition" || ast.type === "linkReference") { - newObj.label = ast.label.trim().replace(/[\t\n ]+/g, " ").toLowerCase(); - } - - if ((ast.type === "definition" || ast.type === "link" || ast.type === "image") && ast.title) { - newObj.title = ast.title.replace(/\\(["')])/g, "$1"); - } // for insert pragma - - - if (parent && parent.type === "root" && parent.children.length > 0 && (parent.children[0] === ast || isFrontMatterNode$3(parent.children[0]) && parent.children[1] === ast) && ast.type === "html" && pragma$3.startWithPragma(ast.value)) { - return null; - } -} - function hasPrettierIgnore$4(path) { - const index = +path.getName(); + const index = Number(path.getName()); if (index === 0) { return false; } const prevNode = path.getParentNode().children[index - 1]; - return isPrettierIgnore(prevNode) === "next"; + return isPrettierIgnore$2(prevNode) === "next"; } var printerMarkdown = { - preprocess: preprocess_1$1, - print: genericPrint$4, - embed: embed_1$2, - massageAstNode: clean$5, + preprocess: printPreprocess$2, + print: genericPrint$2, + embed: embed_1$1, + massageAstNode: clean_1$1, hasPrettierIgnore: hasPrettierIgnore$4, - insertPragma: pragma$3.insertPragma + insertPragma: insertPragma$4 }; -var options$5 = { +var options$2 = { proseWrap: commonOptions.proseWrap, singleQuote: commonOptions.singleQuote }; -var name$f = "Markdown"; -var type$d = "prose"; -var aliases$4 = [ +var name$3 = "Markdown"; +var type$3 = "prose"; +var color$3 = "#083fa1"; +var aliases$2 = [ "pandoc" ]; -var aceMode$d = "markdown"; -var codemirrorMode$a = "gfm"; -var codemirrorMimeType$a = "text/x-gfm"; +var aceMode$3 = "markdown"; +var codemirrorMode$2 = "gfm"; +var codemirrorMimeType$2 = "text/x-gfm"; var wrap = true; -var extensions$d = [ +var extensions$3 = [ ".md", ".markdown", ".mdown", @@ -50187,52 +54167,36 @@ var extensions$d = [ ".mkdn", ".mkdown", ".ronn", + ".scd", ".workbook" ]; -var filenames$3 = [ +var filenames$1 = [ "contents.lr" ]; -var tmScope$d = "source.gfm"; -var languageId$d = 222; -var Markdown = { - name: name$f, - type: type$d, - aliases: aliases$4, - aceMode: aceMode$d, - codemirrorMode: codemirrorMode$a, - codemirrorMimeType: codemirrorMimeType$a, +var tmScope$3 = "source.gfm"; +var languageId$3 = 222; +var require$$0$2 = { + name: name$3, + type: type$3, + color: color$3, + aliases: aliases$2, + aceMode: aceMode$3, + codemirrorMode: codemirrorMode$2, + codemirrorMimeType: codemirrorMimeType$2, wrap: wrap, - extensions: extensions$d, - filenames: filenames$3, - tmScope: tmScope$d, - languageId: languageId$d + extensions: extensions$3, + filenames: filenames$1, + tmScope: tmScope$3, + languageId: languageId$3 }; -var Markdown$1 = /*#__PURE__*/Object.freeze({ - __proto__: null, - name: name$f, - type: type$d, - aliases: aliases$4, - aceMode: aceMode$d, - codemirrorMode: codemirrorMode$a, - codemirrorMimeType: codemirrorMimeType$a, - wrap: wrap, - extensions: extensions$d, - filenames: filenames$3, - tmScope: tmScope$d, - languageId: languageId$d, - 'default': Markdown -}); - -var require$$0$6 = getCjsExportFromNamespace(Markdown$1); - -const languages$4 = [createLanguage(require$$0$6, data => ({ +const languages$3 = [createLanguage(require$$0$2, data => ({ since: "1.8.0", parsers: ["markdown"], vscodeLanguageIds: ["markdown"], - filenames: data.filenames.concat(["README"]), + filenames: [...data.filenames, "README"], extensions: data.extensions.filter(extension => extension !== ".mdx") -})), createLanguage(require$$0$6, () => ({ +})), createLanguage(require$$0$2, () => ({ name: "MDX", since: "1.15.0", parsers: ["mdx"], @@ -50240,10 +54204,10 @@ const languages$4 = [createLanguage(require$$0$6, data => ({ filenames: [], extensions: [".mdx"] }))]; -const printers$4 = { +const printers$1 = { mdast: printerMarkdown }; -const parsers$4 = { +const parsers$2 = { /* istanbul ignore next */ get remark() { return require("./parser-markdown").parsers.remark; @@ -50259,29 +54223,24 @@ const parsers$4 = { }; var languageMarkdown = { - languages: languages$4, - options: options$5, - printers: printers$4, - parsers: parsers$4 + languages: languages$3, + options: options$2, + printers: printers$1, + parsers: parsers$2 }; const { - isFrontMatterNode: isFrontMatterNode$4 -} = util; - -var clean$6 = function (ast, newNode) { - delete newNode.sourceSpan; - delete newNode.startSourceSpan; - delete newNode.endSourceSpan; - delete newNode.nameSpan; - delete newNode.valueSpan; + isFrontMatterNode: isFrontMatterNode$1 +} = util$5; +const ignoredProperties = new Set(["sourceSpan", "startSourceSpan", "endSourceSpan", "nameSpan", "valueSpan"]); +function clean$1(ast, newNode) { if (ast.type === "text" || ast.type === "comment") { return null; } // may be formatted by multiparser - if (isFrontMatterNode$4(ast) || ast.type === "yaml" || ast.type === "toml") { + if (isFrontMatterNode$1(ast) || ast.type === "yaml" || ast.type === "toml") { return null; } @@ -50292,9 +54251,12 @@ var clean$6 = function (ast, newNode) { if (ast.type === "docType") { delete newNode.value; } -}; +} + +clean$1.ignoredProperties = ignoredProperties; +var clean_1 = clean$1; -var index$1 = [ +var htmlTagNames = [ "a", "abbr", "acronym", @@ -50445,11 +54407,6 @@ var index$1 = [ "xmp" ]; -var htmlTagNames = /*#__PURE__*/Object.freeze({ - __proto__: null, - 'default': index$1 -}); - var a = [ "accesskey", "charset", @@ -50572,10 +54529,10 @@ var colgroup = [ "valign", "width" ]; -var data$1 = [ +var data = [ "value" ]; -var del$1 = [ +var del = [ "cite", "datetime" ]; @@ -50597,7 +54554,7 @@ var div = [ var dl = [ "compact" ]; -var embed$3 = [ +var embed$2 = [ "height", "src", "type", @@ -50677,6 +54634,7 @@ var iframe = [ "allowusermedia", "frameborder", "height", + "loading", "longdesc", "marginheight", "marginwidth", @@ -50697,6 +54655,7 @@ var img = [ "height", "hspace", "ismap", + "loading", "longdesc", "name", "referrerpolicy", @@ -50766,11 +54725,12 @@ var li = [ "type", "value" ]; -var link$3 = [ +var link = [ "as", "charset", "color", "crossorigin", + "disabled", "href", "hreflang", "imagesizes", @@ -50786,7 +54746,7 @@ var link$3 = [ "title", "type" ]; -var map$1 = [ +var map = [ "name" ]; var menu = [ @@ -50895,7 +54855,7 @@ var select = [ var slot = [ "name" ]; -var source$2 = [ +var source = [ "media", "sizes", "src", @@ -51021,7 +54981,7 @@ var video = [ "src", "width" ]; -var index$2 = { +var htmlElementAttributes = { "*": [ "accesskey", "autocapitalize", @@ -51065,15 +55025,15 @@ var index$2 = { caption: caption, col: col, colgroup: colgroup, - data: data$1, - del: del$1, + data: data, + del: del, details: details, dfn: dfn, dialog: dialog, dir: dir, div: div, dl: dl, - embed: embed$3, + embed: embed$2, fieldset: fieldset, font: font, form: form, @@ -51096,8 +55056,8 @@ var index$2 = { label: label, legend: legend, li: li, - link: link$3, - map: map$1, + link: link, + map: map, menu: menu, meta: meta, meter: meter, @@ -51114,7 +55074,7 @@ var index$2 = { script: script, select: select, slot: slot, - source: source$2, + source: source, style: style, table: table, tbody: tbody, @@ -51130,91 +55090,7 @@ var index$2 = { video: video }; -var htmlElementAttributes = /*#__PURE__*/Object.freeze({ - __proto__: null, - a: a, - abbr: abbr, - applet: applet, - area: area, - audio: audio, - base: base, - basefont: basefont, - bdo: bdo, - blockquote: blockquote, - body: body, - br: br, - button: button, - canvas: canvas, - caption: caption, - col: col, - colgroup: colgroup, - data: data$1, - del: del$1, - details: details, - dfn: dfn, - dialog: dialog, - dir: dir, - div: div, - dl: dl, - embed: embed$3, - fieldset: fieldset, - font: font, - form: form, - frame: frame, - frameset: frameset, - h1: h1, - h2: h2, - h3: h3, - h4: h4, - h5: h5, - h6: h6, - head: head, - hr: hr, - html: html, - iframe: iframe, - img: img, - input: input, - ins: ins, - isindex: isindex, - label: label, - legend: legend, - li: li, - link: link$3, - map: map$1, - menu: menu, - meta: meta, - meter: meter, - object: object, - ol: ol, - optgroup: optgroup, - option: option, - output: output, - p: p, - param: param, - pre: pre, - progress: progress, - q: q, - script: script, - select: select, - slot: slot, - source: source$2, - style: style, - table: table, - tbody: tbody, - td: td, - textarea: textarea, - tfoot: tfoot, - th: th, - thead: thead, - time: time, - tr: tr, - track: track, - ul: ul, - video: video, - 'default': index$2 -}); - -var json$1 = { +var require$$1$1 = { "CSS_DISPLAY_TAGS": { "area": "none", "base": "none", @@ -51310,573 +55186,1851 @@ var json$1 = { "CSS_WHITE_SPACE_DEFAULT": "normal" }; -var htmlTagNames$1 = getCjsExportFromNamespace(htmlTagNames); +/** + * @typedef {import("../common/ast-path")} AstPath + */ + + +const { + inferParserByLanguage, + isFrontMatterNode +} = util$5; +const { + CSS_DISPLAY_TAGS, + CSS_DISPLAY_DEFAULT, + CSS_WHITE_SPACE_TAGS, + CSS_WHITE_SPACE_DEFAULT +} = require$$1$1; +const HTML_TAGS = arrayToMap(htmlTagNames); +const HTML_ELEMENT_ATTRIBUTES = mapObject(htmlElementAttributes, arrayToMap); // https://infra.spec.whatwg.org/#ascii-whitespace + +const HTML_WHITESPACE = new Set(["\t", "\n", "\f", "\r", " "]); + +const htmlTrimStart = string => string.replace(/^[\t\n\f\r ]+/, ""); + +const htmlTrimEnd = string => string.replace(/[\t\n\f\r ]+$/, ""); + +const htmlTrim$1 = string => htmlTrimStart(htmlTrimEnd(string)); + +const htmlTrimLeadingBlankLines = string => string.replace(/^[\t\f\r ]*?\n/g, ""); + +const htmlTrimPreserveIndentation$1 = string => htmlTrimLeadingBlankLines(htmlTrimEnd(string)); + +const splitByHtmlWhitespace$1 = string => string.split(/[\t\n\f\r ]+/); + +const getLeadingHtmlWhitespace = string => string.match(/^[\t\n\f\r ]*/)[0]; + +const getLeadingAndTrailingHtmlWhitespace$1 = string => { + const [, leadingWhitespace, text, trailingWhitespace] = string.match(/^([\t\n\f\r ]*)(.*?)([\t\n\f\r ]*)$/s); + return { + leadingWhitespace, + trailingWhitespace, + text + }; +}; + +const hasHtmlWhitespace$1 = string => /[\t\n\f\r ]/.test(string); + +function arrayToMap(array) { + const map = Object.create(null); + + for (const value of array) { + map[value] = true; + } + + return map; +} + +function mapObject(object, fn) { + const newObject = Object.create(null); + + for (const [key, value] of Object.entries(object)) { + newObject[key] = fn(value, key); + } + + return newObject; +} + +function shouldPreserveContent$1(node, options) { + // unterminated node in ie conditional comment + // e.g. + if (node.type === "ieConditionalComment" && node.lastChild && !node.lastChild.isSelfClosing && !node.lastChild.endSourceSpan) { + return true; + } // incomplete html in ie conditional comment + // e.g. + + + if (node.type === "ieConditionalComment" && !node.complete) { + return true; + } // TODO: handle non-text children in
+
+
+  if (isPreLikeNode$1(node) && node.children.some(child => child.type !== "text" && child.type !== "interpolation")) {
+    return true;
+  }
+
+  if (isVueNonHtmlBlock$1(node, options) && !isScriptLikeTag$1(node) && node.type !== "interpolation") {
+    return true;
+  }
+
+  return false;
+}
+
+function hasPrettierIgnore$3(node) {
+  /* istanbul ignore next */
+  if (node.type === "attribute") {
+    return false;
+  }
+  /* istanbul ignore next */
+
+
+  if (!node.parent) {
+    return false;
+  }
+
+  if (typeof node.index !== "number" || node.index === 0) {
+    return false;
+  }
+
+  const prevNode = node.parent.children[node.index - 1];
+  return isPrettierIgnore$1(prevNode);
+}
+
+function isPrettierIgnore$1(node) {
+  return node.type === "comment" && node.value.trim() === "prettier-ignore";
+}
+
+function getPrettierIgnoreAttributeCommentData$1(value) {
+  const match = value.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/s);
+
+  if (!match) {
+    return false;
+  }
+
+  if (!match[1]) {
+    return true;
+  }
+
+  return match[1].split(/\s+/);
+}
+/** there's no opening/closing tag or it's considered not breakable */
+
+
+function isTextLikeNode$1(node) {
+  return node.type === "text" || node.type === "comment";
+}
+
+function isScriptLikeTag$1(node) {
+  return node.type === "element" && (node.fullName === "script" || node.fullName === "style" || node.fullName === "svg:style" || isUnknownNamespace(node) && (node.name === "script" || node.name === "style"));
+}
+
+function canHaveInterpolation$1(node) {
+  return node.children && !isScriptLikeTag$1(node);
+}
+
+function isWhitespaceSensitiveNode$1(node) {
+  return isScriptLikeTag$1(node) || node.type === "interpolation" || isIndentationSensitiveNode$1(node);
+}
+
+function isIndentationSensitiveNode$1(node) {
+  return getNodeCssStyleWhiteSpace(node).startsWith("pre");
+}
+
+function isLeadingSpaceSensitiveNode$1(node, options) {
+  const isLeadingSpaceSensitive = _isLeadingSpaceSensitiveNode();
+
+  if (isLeadingSpaceSensitive && !node.prev && node.parent && node.parent.tagDefinition && node.parent.tagDefinition.ignoreFirstLf) {
+    return node.type === "interpolation";
+  }
+
+  return isLeadingSpaceSensitive;
+
+  function _isLeadingSpaceSensitiveNode() {
+    if (isFrontMatterNode(node)) {
+      return false;
+    }
+
+    if ((node.type === "text" || node.type === "interpolation") && node.prev && (node.prev.type === "text" || node.prev.type === "interpolation")) {
+      return true;
+    }
+
+    if (!node.parent || node.parent.cssDisplay === "none") {
+      return false;
+    }
+
+    if (isPreLikeNode$1(node.parent)) {
+      return true;
+    }
+
+    if (!node.prev && (node.parent.type === "root" || isPreLikeNode$1(node) && node.parent || isScriptLikeTag$1(node.parent) || isVueCustomBlock$1(node.parent, options) || !isFirstChildLeadingSpaceSensitiveCssDisplay(node.parent.cssDisplay))) {
+      return false;
+    }
+
+    if (node.prev && !isNextLeadingSpaceSensitiveCssDisplay(node.prev.cssDisplay)) {
+      return false;
+    }
+
+    return true;
+  }
+}
+
+function isTrailingSpaceSensitiveNode$1(node, options) {
+  if (isFrontMatterNode(node)) {
+    return false;
+  }
+
+  if ((node.type === "text" || node.type === "interpolation") && node.next && (node.next.type === "text" || node.next.type === "interpolation")) {
+    return true;
+  }
+
+  if (!node.parent || node.parent.cssDisplay === "none") {
+    return false;
+  }
+
+  if (isPreLikeNode$1(node.parent)) {
+    return true;
+  }
+
+  if (!node.next && (node.parent.type === "root" || isPreLikeNode$1(node) && node.parent || isScriptLikeTag$1(node.parent) || isVueCustomBlock$1(node.parent, options) || !isLastChildTrailingSpaceSensitiveCssDisplay(node.parent.cssDisplay))) {
+    return false;
+  }
+
+  if (node.next && !isPrevTrailingSpaceSensitiveCssDisplay(node.next.cssDisplay)) {
+    return false;
+  }
+
+  return true;
+}
+
+function isDanglingSpaceSensitiveNode$1(node) {
+  return isDanglingSpaceSensitiveCssDisplay(node.cssDisplay) && !isScriptLikeTag$1(node);
+}
+
+function forceNextEmptyLine$1(node) {
+  return isFrontMatterNode(node) || node.next && node.sourceSpan.end && node.sourceSpan.end.line + 1 < node.next.sourceSpan.start.line;
+}
+/** firstChild leadingSpaces and lastChild trailingSpaces */
+
+
+function forceBreakContent$1(node) {
+  return forceBreakChildren$1(node) || node.type === "element" && node.children.length > 0 && (["body", "script", "style"].includes(node.name) || node.children.some(child => hasNonTextChild(child))) || node.firstChild && node.firstChild === node.lastChild && node.firstChild.type !== "text" && hasLeadingLineBreak(node.firstChild) && (!node.lastChild.isTrailingSpaceSensitive || hasTrailingLineBreak(node.lastChild));
+}
+/** spaces between children */
+
+
+function forceBreakChildren$1(node) {
+  return node.type === "element" && node.children.length > 0 && (["html", "head", "ul", "ol", "select"].includes(node.name) || node.cssDisplay.startsWith("table") && node.cssDisplay !== "table-cell");
+}
+
+function preferHardlineAsLeadingSpaces$1(node) {
+  return preferHardlineAsSurroundingSpaces(node) || node.prev && preferHardlineAsTrailingSpaces(node.prev) || hasSurroundingLineBreak(node);
+}
+
+function preferHardlineAsTrailingSpaces(node) {
+  return preferHardlineAsSurroundingSpaces(node) || node.type === "element" && node.fullName === "br" || hasSurroundingLineBreak(node);
+}
+
+function hasSurroundingLineBreak(node) {
+  return hasLeadingLineBreak(node) && hasTrailingLineBreak(node);
+}
+
+function hasLeadingLineBreak(node) {
+  return node.hasLeadingSpaces && (node.prev ? node.prev.sourceSpan.end.line < node.sourceSpan.start.line : node.parent.type === "root" || node.parent.startSourceSpan.end.line < node.sourceSpan.start.line);
+}
+
+function hasTrailingLineBreak(node) {
+  return node.hasTrailingSpaces && (node.next ? node.next.sourceSpan.start.line > node.sourceSpan.end.line : node.parent.type === "root" || node.parent.endSourceSpan && node.parent.endSourceSpan.start.line > node.sourceSpan.end.line);
+}
+
+function preferHardlineAsSurroundingSpaces(node) {
+  switch (node.type) {
+    case "ieConditionalComment":
+    case "comment":
+    case "directive":
+      return true;
+
+    case "element":
+      return ["script", "select"].includes(node.name);
+  }
+
+  return false;
+}
+
+function getLastDescendant$1(node) {
+  return node.lastChild ? getLastDescendant$1(node.lastChild) : node;
+}
+
+function hasNonTextChild(node) {
+  return node.children && node.children.some(child => child.type !== "text");
+}
+
+function _inferScriptParser(node) {
+  const {
+    type,
+    lang
+  } = node.attrMap;
+
+  if (type === "module" || type === "text/javascript" || type === "text/babel" || type === "application/javascript" || lang === "jsx") {
+    return "babel";
+  }
+
+  if (type === "application/x-typescript" || lang === "ts" || lang === "tsx") {
+    return "typescript";
+  }
+
+  if (type === "text/markdown") {
+    return "markdown";
+  }
+
+  if (type === "text/html") {
+    return "html";
+  }
+
+  if (type && (type.endsWith("json") || type.endsWith("importmap"))) {
+    return "json";
+  }
+
+  if (type === "text/x-handlebars-template") {
+    return "glimmer";
+  }
+}
+
+function inferStyleParser(node) {
+  const {
+    lang
+  } = node.attrMap;
+
+  if (!lang || lang === "postcss" || lang === "css") {
+    return "css";
+  }
+
+  if (lang === "scss") {
+    return "scss";
+  }
+
+  if (lang === "less") {
+    return "less";
+  }
+}
 
-var htmlElementAttributes$1 = getCjsExportFromNamespace(htmlElementAttributes);
+function inferScriptParser$1(node, options) {
+  if (node.name === "script" && !node.attrMap.src) {
+    if (!node.attrMap.lang && !node.attrMap.type) {
+      return "babel";
+    }
 
-const {
-  getParserName: getParserName$2,
-  isFrontMatterNode: isFrontMatterNode$5
-} = util;
-const {
-  CSS_DISPLAY_TAGS,
-  CSS_DISPLAY_DEFAULT,
-  CSS_WHITE_SPACE_TAGS,
-  CSS_WHITE_SPACE_DEFAULT
-} = json$1;
-const HTML_TAGS = arrayToMap(htmlTagNames$1);
-const HTML_ELEMENT_ATTRIBUTES = mapObject(htmlElementAttributes$1, arrayToMap); // https://infra.spec.whatwg.org/#ascii-whitespace
+    return _inferScriptParser(node);
+  }
 
-const HTML_WHITESPACE = new Set(["\t", "\n", "\f", "\r", " "]);
+  if (node.name === "style") {
+    return inferStyleParser(node);
+  }
 
-const htmlTrimStart = string => string.replace(/^[\t\n\f\r ]+/, "");
+  if (options && isVueNonHtmlBlock$1(node, options)) {
+    return _inferScriptParser(node) || !("src" in node.attrMap) && inferParserByLanguage(node.attrMap.lang, options);
+  }
+}
 
-const htmlTrimEnd = string => string.replace(/[\t\n\f\r ]+$/, "");
+function isBlockLikeCssDisplay(cssDisplay) {
+  return cssDisplay === "block" || cssDisplay === "list-item" || cssDisplay.startsWith("table");
+}
 
-const htmlTrim = string => htmlTrimStart(htmlTrimEnd(string));
+function isFirstChildLeadingSpaceSensitiveCssDisplay(cssDisplay) {
+  return !isBlockLikeCssDisplay(cssDisplay) && cssDisplay !== "inline-block";
+}
 
-const htmlTrimLeadingBlankLines = string => string.replace(/^[\t\f\r ]*?\n/g, "");
+function isLastChildTrailingSpaceSensitiveCssDisplay(cssDisplay) {
+  return !isBlockLikeCssDisplay(cssDisplay) && cssDisplay !== "inline-block";
+}
 
-const htmlTrimPreserveIndentation = string => htmlTrimLeadingBlankLines(htmlTrimEnd(string));
+function isPrevTrailingSpaceSensitiveCssDisplay(cssDisplay) {
+  return !isBlockLikeCssDisplay(cssDisplay);
+}
 
-const splitByHtmlWhitespace = string => string.split(/[\t\n\f\r ]+/);
+function isNextLeadingSpaceSensitiveCssDisplay(cssDisplay) {
+  return !isBlockLikeCssDisplay(cssDisplay);
+}
 
-const getLeadingHtmlWhitespace = string => string.match(/^[\t\n\f\r ]*/)[0];
+function isDanglingSpaceSensitiveCssDisplay(cssDisplay) {
+  return !isBlockLikeCssDisplay(cssDisplay) && cssDisplay !== "inline-block";
+}
 
-const getLeadingAndTrailingHtmlWhitespace = string => {
-  const [, leadingWhitespace, text, trailingWhitespace] = string.match(/^([\t\n\f\r ]*)([\S\s]*?)([\t\n\f\r ]*)$/);
-  return {
-    leadingWhitespace,
-    trailingWhitespace,
-    text
-  };
-};
+function isPreLikeNode$1(node) {
+  return getNodeCssStyleWhiteSpace(node).startsWith("pre");
+}
+/**
+ * @param {AstPath} path
+ * @param {(any) => boolean} predicate
+ */
 
-const hasHtmlWhitespace = string => /[\t\n\f\r ]/.test(string);
 
-function arrayToMap(array) {
-  const map = Object.create(null);
+function countParents$1(path, predicate) {
+  let counter = 0;
 
-  for (const value of array) {
-    map[value] = true;
+  for (let i = path.stack.length - 1; i >= 0; i--) {
+    const value = path.stack[i];
+
+    if (value && typeof value === "object" && !Array.isArray(value) && predicate(value)) {
+      counter++;
+    }
   }
 
-  return map;
+  return counter;
 }
 
-function mapObject(object, fn) {
-  const newObject = Object.create(null);
+function hasParent(node, fn) {
+  let current = node;
+
+  while (current) {
+    if (fn(current)) {
+      return true;
+    }
 
-  for (const key of Object.keys(object)) {
-    newObject[key] = fn(object[key], key);
+    current = current.parent;
   }
 
-  return newObject;
+  return false;
 }
 
-function shouldPreserveContent(node, options) {
-  // unterminated node in ie conditional comment
-  // e.g. 
-  if (node.type === "ieConditionalComment" && node.lastChild && !node.lastChild.isSelfClosing && !node.lastChild.endSourceSpan) {
-    return true;
-  } // incomplete html in ie conditional comment
-  // e.g. 
-
+function getNodeCssStyleDisplay$1(node, options) {
+  if (node.prev && node.prev.type === "comment") {
+    // 
+    const match = node.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/);
 
-  if (node.type === "ieConditionalComment" && !node.complete) {
-    return true;
-  } // TODO: handle non-text children in 
+    if (match) {
+      return match[1];
+    }
+  }
 
+  let isInSvgForeignObject = false;
 
-  if (isPreLikeNode(node) && node.children.some(child => child.type !== "text" && child.type !== "interpolation")) {
-    return true;
+  if (node.type === "element" && node.namespace === "svg") {
+    if (hasParent(node, parent => parent.fullName === "svg:foreignObject")) {
+      isInSvgForeignObject = true;
+    } else {
+      return node.name === "svg" ? "inline-block" : "block";
+    }
   }
 
-  if (isVueNonHtmlBlock(node, options) && !isScriptLikeTag(node) && node.type !== "interpolation") {
-    return true;
+  switch (options.htmlWhitespaceSensitivity) {
+    case "strict":
+      return "inline";
+
+    case "ignore":
+      return "block";
+
+    default:
+      {
+        // See https://github.com/prettier/prettier/issues/8151
+        if (options.parser === "vue" && node.parent && node.parent.type === "root") {
+          return "block";
+        }
+
+        return node.type === "element" && (!node.namespace || isInSvgForeignObject || isUnknownNamespace(node)) && CSS_DISPLAY_TAGS[node.name] || CSS_DISPLAY_DEFAULT;
+      }
   }
+}
 
-  return false;
+function isUnknownNamespace(node) {
+  return node.type === "element" && !node.hasExplicitNamespace && !["html", "svg"].includes(node.namespace);
 }
 
-function hasPrettierIgnore$5(node) {
-  /* istanbul ignore next */
-  if (node.type === "attribute") {
-    return false;
-  }
-  /* istanbul ignore next */
+function getNodeCssStyleWhiteSpace(node) {
+  return node.type === "element" && (!node.namespace || isUnknownNamespace(node)) && CSS_WHITE_SPACE_TAGS[node.name] || CSS_WHITE_SPACE_DEFAULT;
+}
 
+function getMinIndentation(text) {
+  let minIndentation = Number.POSITIVE_INFINITY;
 
-  if (!node.parent) {
-    return false;
-  }
+  for (const lineText of text.split("\n")) {
+    if (lineText.length === 0) {
+      continue;
+    }
 
-  if (typeof node.index !== "number" || node.index === 0) {
-    return false;
+    if (!HTML_WHITESPACE.has(lineText[0])) {
+      return 0;
+    }
+
+    const indentation = getLeadingHtmlWhitespace(lineText).length;
+
+    if (lineText.length === indentation) {
+      continue;
+    }
+
+    if (indentation < minIndentation) {
+      minIndentation = indentation;
+    }
   }
 
-  const prevNode = node.parent.children[node.index - 1];
-  return isPrettierIgnore$1(prevNode);
+  return minIndentation === Number.POSITIVE_INFINITY ? 0 : minIndentation;
 }
 
-function isPrettierIgnore$1(node) {
-  return node.type === "comment" && node.value.trim() === "prettier-ignore";
+function dedentString$1(text, minIndent = getMinIndentation(text)) {
+  return minIndent === 0 ? text : text.split("\n").map(lineText => lineText.slice(minIndent)).join("\n");
 }
 
-function getPrettierIgnoreAttributeCommentData(value) {
-  const match = value.trim().match(/^prettier-ignore-attribute(?:\s+([^]+))?$/);
+function shouldNotPrintClosingTag$1(node, options) {
+  return !node.isSelfClosing && !node.endSourceSpan && (hasPrettierIgnore$3(node) || shouldPreserveContent$1(node.parent, options));
+}
 
-  if (!match) {
-    return false;
-  }
+function countChars$1(text, char) {
+  let counter = 0;
 
-  if (!match[1]) {
-    return true;
+  for (let i = 0; i < text.length; i++) {
+    if (text[i] === char) {
+      counter++;
+    }
   }
 
-  return match[1].split(/\s+/);
+  return counter;
 }
-/** there's no opening/closing tag or it's considered not breakable */
+
+function unescapeQuoteEntities$1(text) {
+  return text.replace(/'/g, "'").replace(/"/g, '"');
+} // top-level elements (excluding